aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
Diffstat (limited to 'main')
-rw-r--r--main/7zip/7-zip-flags.patch49
-rw-r--r--main/7zip/7-zip-musl.patch63
-rw-r--r--main/7zip/APKBUILD55
-rw-r--r--main/7zip/armv7.patch21
-rw-r--r--main/aaudit/APKBUILD3
-rw-r--r--main/abi-compliance-checker/APKBUILD18
-rw-r--r--main/abseil-cpp/0002-abseil.patch58
-rw-r--r--main/abseil-cpp/APKBUILD163
-rw-r--r--main/abuild/0001-abuild-allow-packages-to-install-under-run.patch29
-rw-r--r--main/abuild/0001-abuild-pass-APORTS_BOOTSTRAP-to-bubblewrap.patch24
-rw-r--r--main/abuild/0001-abuild-skip-var-run-in-fhs-check.patch29
-rw-r--r--main/abuild/APKBUILD92
-rw-r--r--main/abuild/mr128-newapkbuild-fetch-rust-deps-in-prepare.patch110
-rw-r--r--main/abuild/mr131-newapkbuild-change-cmake-build-type.patch33
-rw-r--r--main/abuild/mr60-newapkbuild-use-abuild-meson.patch34
-rw-r--r--main/acct/APKBUILD2
-rw-r--r--main/acf-alpine-baselayout/APKBUILD6
-rw-r--r--main/acf-alpine-conf/APKBUILD6
-rw-r--r--main/acf-chrony/APKBUILD6
-rw-r--r--main/acf-core/APKBUILD13
-rw-r--r--main/acf-freeswitch-vmail/APKBUILD6
-rw-r--r--main/acf-freeswitch/APKBUILD2
-rw-r--r--main/acf-kamailio/APKBUILD1
-rw-r--r--main/acf-lib/APKBUILD9
-rw-r--r--main/acf-mariadb/APKBUILD1
-rw-r--r--main/acf-opennhrp/APKBUILD6
-rw-r--r--main/acf-openntpd/APKBUILD6
-rw-r--r--main/acf-openssl/APKBUILD8
-rw-r--r--main/acf-openvpn/APKBUILD6
-rw-r--r--main/acf-postgresql/APKBUILD7
-rw-r--r--main/acf-samba/APKBUILD6
-rw-r--r--main/acf-snort/APKBUILD8
-rw-r--r--main/acf-tinydns/APKBUILD6
-rw-r--r--main/acf-weblog/APKBUILD6
-rw-r--r--main/ack/APKBUILD8
-rw-r--r--main/acl/APKBUILD10
-rw-r--r--main/aconf/APKBUILD7
-rw-r--r--main/acpi/APKBUILD4
-rw-r--r--main/acpica/APKBUILD16
-rw-r--r--main/acpica/disable-werror.patch13
-rw-r--r--main/acpid/APKBUILD70
-rw-r--r--main/acpid/acpid.confd7
-rw-r--r--main/acpid/acpid.initd28
-rw-r--r--main/acpid/acpid.post-deinstall10
-rw-r--r--main/acpid/anything3
-rw-r--r--main/acpid/handler.sh42
-rw-r--r--main/acpid/lfs64.patch13
-rw-r--r--main/acpid/lid-closed21
-rw-r--r--main/acpid/power-supply-ac30
-rw-r--r--main/acpid/suspend7
-rw-r--r--main/ada/APKBUILD60
-rw-r--r--main/ada/use-system-simdjson-cxxopts.patch63
-rw-r--r--main/akms/APKBUILD7
-rw-r--r--main/alpine-base/APKBUILD41
-rw-r--r--main/alpine-baselayout/20locale.sh3
-rw-r--r--main/alpine-baselayout/APKBUILD60
-rw-r--r--main/alpine-baselayout/alpine-baselayout.post-install45
-rw-r--r--main/alpine-baselayout/alpine-baselayout.pre-upgrade20
-rw-r--r--main/alpine-baselayout/group19
-rw-r--r--main/alpine-baselayout/inittab2
-rw-r--r--main/alpine-baselayout/locale.sh3
-rw-r--r--main/alpine-baselayout/mkmntdirs.c67
-rw-r--r--main/alpine-baselayout/passwd12
-rw-r--r--main/alpine-baselayout/profile22
-rw-r--r--main/alpine-conf/APKBUILD9
-rw-r--r--main/alpine-conf/setup-disk-add-loongarch64-support.patch24
-rw-r--r--main/alpine-git-mirror-syncd/APKBUILD8
-rw-r--r--main/alpine-ipxe/APKBUILD3
-rw-r--r--main/alpine-make-rootfs/APKBUILD8
-rw-r--r--main/alpine-sdk/APKBUILD1
-rw-r--r--main/alsa-lib/APKBUILD8
-rw-r--r--main/alsa-ucm-conf/APKBUILD24
-rw-r--r--main/alsa-utils/APKBUILD27
-rw-r--r--main/alsa-utils/musl-locale.patch28
-rw-r--r--main/alsa-utils/musl-types.patch28
-rw-r--r--main/altermime/APKBUILD6
-rw-r--r--main/amavis/APKBUILD17
-rw-r--r--main/amavis/amavisd-conf.patch12
-rw-r--r--main/amavisd-milter/APKBUILD21
-rw-r--r--main/aom/APKBUILD66
-rw-r--r--main/aom/posix-implicit.patch13
-rw-r--r--main/apache-mod-auth-kerb/APKBUILD2
-rw-r--r--main/apache-mod-auth-ntlm-winbind/APKBUILD17
-rw-r--r--main/apache-mod-auth-radius/APKBUILD13
-rw-r--r--main/apache-mod-fcgid/APKBUILD3
-rw-r--r--main/apache2-mod-wsgi/APKBUILD6
-rw-r--r--main/apache2-mod-wsgi/apache2-mod-wsgi.post-install14
-rw-r--r--main/apache2/APKBUILD56
-rw-r--r--main/apache2/conf/0014-httpd-.conf-LoadModule.patch2
-rw-r--r--main/apache2/fix-unknown-xmlChar-error.patch13
-rw-r--r--main/apcupsd/APKBUILD29
-rw-r--r--main/apcupsd/apcupsd.initd1
-rw-r--r--main/apcupsd/manify-with-mandoc.patch15
-rw-r--r--main/apg/APKBUILD6
-rw-r--r--main/api-sanity-checker/APKBUILD7
-rw-r--r--main/apk-tools/APKBUILD23
-rw-r--r--main/aports-build/APKBUILD23
-rw-r--r--main/aports-build/aports-build28
-rw-r--r--main/aports-build/aports-build.initd33
-rw-r--r--main/aports-build/mqtt-exec.aports-build.confd2
-rw-r--r--main/aports-build/report-build-errors.lua20
-rw-r--r--main/apparmor/0001-Fix-linking-against-gettext-on-musl-libc.patch40
-rw-r--r--main/apparmor/0006-utils-adjust-rc-functions-for-aa-remove-unknown.patch28
-rw-r--r--main/apparmor/APKBUILD206
-rw-r--r--main/apparmor/apparmor.initd91
-rw-r--r--main/apparmor/fix-dnsmasq-profile.patch12
-rw-r--r--main/apr-util/APKBUILD40
-rw-r--r--main/apr/APKBUILD30
-rw-r--r--main/apr/CVE-2021-35940.patch53
-rw-r--r--main/argon2/APKBUILD4
-rw-r--r--main/argp-standalone/001-throw-in-funcdef.patch79
-rw-r--r--main/argp-standalone/APKBUILD19
-rw-r--r--main/argp-standalone/gnu89-inline.patch7
-rw-r--r--main/arm-trusted-firmware/APKBUILD72
-rw-r--r--main/arm-trusted-firmware/key_t.patch13
-rw-r--r--main/arm-trusted-firmware/rk3399.patch53
-rw-r--r--main/arpon/APKBUILD12
-rw-r--r--main/arpon/arpon.initd20
-rw-r--r--main/arpwatch/APKBUILD16
-rw-r--r--main/arpwatch/fix-time-h.patch33
-rw-r--r--main/asciidoc/APKBUILD43
-rw-r--r--main/asciidoctor/APKBUILD8
-rw-r--r--main/aspell-de/APKBUILD4
-rw-r--r--main/aspell-fr/APKBUILD18
-rw-r--r--main/aspell-ru/APKBUILD14
-rw-r--r--main/aspell-uk/APKBUILD10
-rw-r--r--main/aspell/APKBUILD17
-rw-r--r--main/aspell/CVE-2019-25051.patch96
-rw-r--r--main/asterisk/30-asterisk-mariadb.patch35
-rw-r--r--main/asterisk/41-asterisk-ALLPERMS.patch15
-rw-r--r--main/asterisk/APKBUILD64
-rw-r--r--main/asterisk/gethostbyname_r.patch15
-rw-r--r--main/at-spi2-atk/APKBUILD30
-rw-r--r--main/at-spi2-core/APKBUILD58
-rw-r--r--main/atf/APKBUILD10
-rw-r--r--main/atk/APKBUILD31
-rw-r--r--main/atop/APKBUILD24
-rw-r--r--main/atop/atop-include-macros.patch10
-rw-r--r--main/atop/atop.initd6
-rw-r--r--main/atop/gcc13.patch12
-rw-r--r--main/attr/APKBUILD15
-rw-r--r--main/audit/APKBUILD35
-rw-r--r--main/audit/musl.patch37
-rw-r--r--main/audit/test-uid-42.patch76
-rw-r--r--main/augeas/APKBUILD12
-rw-r--r--main/augeas/xsi-strerror.patch16
-rw-r--r--main/aumix/APKBUILD5
-rw-r--r--main/autoconf-archive/APKBUILD4
-rw-r--r--main/autoconf/APKBUILD10
-rw-r--r--main/automake/APKBUILD6
-rw-r--r--main/avahi-ui/APKBUILD14
-rw-r--r--main/avahi-ui/gnome-nettool.pngbin4509 -> 4142 bytes
-rw-r--r--main/avahi/APKBUILD121
-rw-r--r--main/avahi/CVE-2021-3502.patch (renamed from main/avahi/CVE-2021-36217.patch)0
-rw-r--r--main/avahi/CVE-2023-1981.patch56
-rw-r--r--main/avahi/CVE-2023-38469.patch44
-rw-r--r--main/avahi/CVE-2023-38470.patch55
-rw-r--r--main/avahi/CVE-2023-38471.patch116
-rw-r--r--main/avahi/CVE-2023-38472.patch43
-rw-r--r--main/avahi/CVE-2023-38473.patch107
-rw-r--r--main/avahi/Fetch-build-db-from-upstream-git.patch74
-rw-r--r--main/avahi/build-db-Use-the-same-database-format-that-the-C-code-exp.patch109
-rw-r--r--main/awall/APKBUILD10
-rwxr-xr-xmain/awall/setup-firewall4
-rw-r--r--main/awstats/APKBUILD16
-rw-r--r--main/awstats/CVE-2020-35176.patch30
-rw-r--r--main/axel/APKBUILD8
-rw-r--r--main/b43-fwcutter/APKBUILD2
-rw-r--r--main/bacula/APKBUILD37
-rw-r--r--main/base64/0001-add-a-pkg-config-file.patch57
-rw-r--r--main/base64/APKBUILD71
-rw-r--r--main/bash-completion/APKBUILD26
-rw-r--r--main/bash/APKBUILD55
-rw-r--r--main/bash/bashrc16
-rw-r--r--main/bash/profile-bashrc.sh8
-rw-r--r--main/batctl/APKBUILD9
-rw-r--r--main/bats/APKBUILD5
-rw-r--r--main/bc/APKBUILD10
-rw-r--r--main/bcache-tools/APKBUILD11
-rw-r--r--main/bctoolbox/APKBUILD34
-rw-r--r--main/bctoolbox/fix-cmake-path.patch14
-rw-r--r--main/bdftopcf/APKBUILD18
-rw-r--r--main/bearssl/APKBUILD19
-rw-r--r--main/beep/APKBUILD2
-rw-r--r--main/bind/APKBUILD45
-rw-r--r--main/bind/bind.post-install6
-rw-r--r--main/binutils/APKBUILD100
-rw-r--r--main/binutils/LoongArch-Modify-inconsistent-behavior-of-ld-with-un.patch60
-rw-r--r--main/binutils/binutils-mips-disable-assert.patch14
-rw-r--r--main/binutils/binutils-ppc-fix-machine-options.patch41
-rw-r--r--main/binutils/binutils-ppc64le-assertion.patch32
-rw-r--r--main/binutils/binutils-s390x-1.patch147
-rw-r--r--main/binutils/binutils-s390x-2.patch51
-rw-r--r--main/binutils/gold-mips.patch39
-rw-r--r--main/binutils/ld-bfd-mips.patch19
-rw-r--r--main/bison/APKBUILD11
-rw-r--r--main/bluez-firmware/APKBUILD7
-rw-r--r--main/bluez-headers/APKBUILD35
-rw-r--r--main/bluez/004-Move-the-43xx-firmware-into-lib-firmware.patch23
-rw-r--r--main/bluez/APKBUILD117
-rw-r--r--main/bluez/bluetooth.initd5
-rw-r--r--main/bluez/fix-endianness.patch9
-rw-r--r--main/bluez/fix-musl.patch12
-rw-r--r--main/bluez/musl.patch13
-rw-r--r--main/bluez/test-mesh-crypto.patch69
-rw-r--r--main/bmd-tools/APKBUILD4
-rw-r--r--main/bonding/APKBUILD1
-rw-r--r--main/boost1.78/0001-revert-cease-dependence-on-range.patch49
-rw-r--r--main/boost1.78/bjam-no-skip-install.patch73
-rw-r--r--main/boost1.78/boost-1.78.0-interprocess-musl-include.patch23
-rw-r--r--main/boost1.79/0001-revert-cease-dependence-on-range.patch49
-rw-r--r--main/boost1.79/boost-1.79.0-fix-segfault-in-array-erase.patch50
-rw-r--r--main/boost1.82/APKBUILD (renamed from main/boost1.79/APKBUILD)74
-rw-r--r--main/boost1.82/boost-1.57.0-python-abi_letters.patch (renamed from main/boost1.78/boost-1.57.0-python-abi_letters.patch)0
-rw-r--r--main/boost1.82/boost-1.57.0-python-libpython_dep.patch (renamed from main/boost1.78/boost-1.57.0-python-libpython_dep.patch)0
-rw-r--r--main/boost1.82/boost-fix-i386-stack-alignment.patch48
-rw-r--r--main/boost1.82/boost-phoenix-uarg.patch11
-rw-r--r--main/boost1.84/APKBUILD (renamed from main/boost1.78/APKBUILD)101
-rw-r--r--main/boost1.84/boost-1.57.0-python-abi_letters.patch (renamed from main/boost1.79/boost-1.57.0-python-abi_letters.patch)0
-rw-r--r--main/boost1.84/boost-1.57.0-python-libpython_dep.patch (renamed from main/boost1.79/boost-1.57.0-python-libpython_dep.patch)0
-rw-r--r--main/boost1.84/boost-phoenix-uarg.patch11
-rw-r--r--main/botan/APKBUILD14
-rw-r--r--main/botan3/APKBUILD67
-rw-r--r--main/bridge-utils/APKBUILD4
-rw-r--r--main/bridge/APKBUILD12
-rw-r--r--main/brotli/0545759b2ed9b69e3f21fd0ac954bee78f3104b6.patch48
-rw-r--r--main/brotli/838.patch49
-rw-r--r--main/brotli/APKBUILD90
-rw-r--r--main/brotli/build-tool-against-shared-lib.patch16
-rw-r--r--main/brotli/optimize-mips-s390x.patch37
-rw-r--r--main/bsd-compat-headers/APKBUILD27
-rw-r--r--main/bsd-compat-headers/cdefs.h (renamed from main/libc-dev/sys-cdefs.h)5
-rw-r--r--main/bsd-compat-headers/queue.h (renamed from main/libc-dev/sys-queue.h)0
-rw-r--r--main/bsd-compat-headers/tree.h (renamed from main/libc-dev/sys-tree.h)23
-rw-r--r--main/btrfs-progs/APKBUILD60
-rw-r--r--main/btrfs-progs/btrfs-scan.initd12
-rw-r--r--main/btrfs-progs/remove-sphinx_rtd_theme.patch28
-rw-r--r--main/bubblewrap/APKBUILD6
-rw-r--r--main/busybox-initscripts/APKBUILD87
-rw-r--r--main/busybox-initscripts/busybox-initscripts.post-install49
l---------main/busybox-initscripts/busybox-initscripts.post-upgrade1
-rw-r--r--main/busybox-initscripts/crond.initd11
-rw-r--r--main/busybox-initscripts/dvbdev18
-rw-r--r--main/busybox-initscripts/httpd.initd11
-rw-r--r--main/busybox-initscripts/klogd.initd12
-rw-r--r--main/busybox-initscripts/mdev.conf141
-rw-r--r--main/busybox-initscripts/ntpd.initd13
-rw-r--r--main/busybox-initscripts/persistent-storage68
-rwxr-xr-xmain/busybox-initscripts/ptpdev15
-rw-r--r--main/busybox-initscripts/ptpdev.bats49
-rw-r--r--main/busybox-initscripts/udhcpd.initd11
-rwxr-xr-xmain/busybox-initscripts/usbdev25
-rw-r--r--main/busybox/0001-avoid-redefined-warnings-when-building-with-utmps.patch16
-rw-r--r--main/busybox/0001-modutils-check-ELF-header-before-calling-finit_modul.patch (renamed from main/busybox/0001-modutils-check-ELF-header-before-calling-finit_module.patch)133
-rw-r--r--main/busybox/0001-wget-add-header-Accept.patch75
-rw-r--r--main/busybox/0002-adduser-default-to-sbin-nologin-as-shell-for-system-.patch (renamed from main/busybox/0001-adduser-default-to-sbin-nologin-as-shell-for-system-.patch)7
-rw-r--r--main/busybox/0003-ash-add-built-in-BB_ASH_VERSION-variable.patch (renamed from main/busybox/0001-ash-add-built-in-BB_ASH_VERSION-variable.patch)13
-rw-r--r--main/busybox/0004-Avoid-redefined-warnings-when-buiding-with-utmps.patch108
-rw-r--r--main/busybox/0005-libbb-sockaddr2str-ensure-only-printable-characters-.patch (renamed from main/busybox/0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch)12
-rw-r--r--main/busybox/0006-modinfo-add-k-option-for-kernel-version.patch (renamed from main/busybox/0001-modinfo-add-k-option-for-kernel-version.patch)10
-rw-r--r--main/busybox/0007-nologin-Install-applet-to-sbin-instead-of-usr-sbin.patch (renamed from main/busybox/0001-nologin-Install-applet-to-sbin-instead-of-usr-sbin.patch)10
-rw-r--r--main/busybox/0008-pgrep-add-support-for-matching-against-UID-and-RUID.patch (renamed from main/busybox/0001-pgrep-add-support-for-matching-against-UID-and-RUID.patch)46
-rw-r--r--main/busybox/0009-properly-fix-wget-https-support.patch (renamed from main/busybox/0001-properly-fix-wget-https-support.patch)15
-rw-r--r--main/busybox/0010-sed-check-errors-writing-file-with-sed-i.patch63
-rw-r--r--main/busybox/0011-fsck-resolve-LABEL-.-UUID-.-spec-to-device.patch (renamed from main/busybox/0002-fsck-resolve-LABEL-.-UUID-.-spec-to-device.patch)9
-rw-r--r--main/busybox/0012-nslookup-sanitize-all-printed-strings-with-printable.patch (renamed from main/busybox/0002-nslookup-sanitize-all-printed-strings-with-printable.patch)13
-rw-r--r--main/busybox/0013-ash-exec-busybox.static.patch (renamed from main/busybox/0003-ash-exec-busybox.static.patch)11
-rw-r--r--main/busybox/0013-ash-fix-unsafe-use-of-mempcpy.patch32
-rw-r--r--main/busybox/0014-app-location-for-cpio-vi-and-lspci.patch (renamed from main/busybox/0004-app-location-for-cpio-vi-and-lspci.patch)10
-rw-r--r--main/busybox/0014-ash-fix-use-after-free-in-bash-pattern-substitution.patch81
-rw-r--r--main/busybox/0015-ed-don-t-use-memcpy-with-overlapping-memory-regions.patch34
-rw-r--r--main/busybox/0015-udhcpc-set-default-discover-retries-to-5.patch (renamed from main/busybox/0005-udhcpc-set-default-discover-retries-to-5.patch)18
-rw-r--r--main/busybox/0016-ash-don-t-read-past-end-of-var-in-subvareval-for-bas.patch88
-rw-r--r--main/busybox/0016-ping-make-ping-work-without-root-privileges.patch (renamed from main/busybox/0006-ping-make-ping-work-without-root-privileges.patch)27
-rw-r--r--main/busybox/0017-ash-Fix-use-after-free-on-idx-variable.patch94
-rw-r--r--main/busybox/0017-fbsplash-support-console-switching.patch (renamed from main/busybox/0007-fbsplash-support-console-switching.patch)29
-rw-r--r--main/busybox/0018-fbsplash-support-image-and-bar-alignment-and-positio.patch (renamed from main/busybox/0008-fbsplash-support-image-and-bar-alignment-and-positio.patch)24
-rw-r--r--main/busybox/0019-depmod-support-generating-kmod-binary-index-files.patch (renamed from main/busybox/0009-depmod-support-generating-kmod-binary-index-files.patch)28
-rw-r--r--main/busybox/0020-Add-flag-for-not-following-symlinks-when-recursing.patch (renamed from main/busybox/0010-Add-flag-for-not-following-symlinks-when-recursing.patch)10
-rw-r--r--main/busybox/0021-udhcpc-Don-t-background-if-n-is-given.patch (renamed from main/busybox/0012-udhcpc-Don-t-background-if-n-is-given.patch)14
-rw-r--r--main/busybox/0023-tests-fix-tarball-creation.patch29
-rw-r--r--main/busybox/0024-tests-musl-doesn-t-seem-to-recognize-UTC0-as-a-timez.patch (renamed from main/busybox/test-timezone-workaround.patch)20
-rw-r--r--main/busybox/0025-Hackfix-to-disable-HW-acceleration-for-MD5-SHA1-on-x.patch46
-rw-r--r--main/busybox/0026-lineedit-Handle-SIGWINCH-gracefully.patch61
-rw-r--r--main/busybox/0027-umount-Implement-O-option-to-unmount-by-mount-option.patch195
-rw-r--r--main/busybox/0028-ash-use-after-free-in-bash-pattern-substitution.patch34
-rw-r--r--main/busybox/0029-awk-fix-use-after-realloc-CVE-2021-42380-closes-1560.patch82
-rw-r--r--main/busybox/0030-shell-avoid-segfault-on-0-0-0-09J-.-Closes-15216.patch80
-rw-r--r--main/busybox/0031-ash-initialize-basepf.buf-in-ash.patch58
-rw-r--r--main/busybox/0032-install-Fix-chown-resetting-suid-sgid-bits-from-chmo.patch53
-rw-r--r--main/busybox/0033-find-fix-xdev-depth-and-delete.patch230
-rw-r--r--main/busybox/0034-udhcp-Avoid-leaking-uninitialized-stale-data.patch75
-rw-r--r--main/busybox/0035-ash-fix-handling-of-single-quoted-strings-in-pattern.patch90
-rw-r--r--main/busybox/0036-fix-dos-in-math.patch31
-rw-r--r--main/busybox/0037-awk.c-fix-CVE-2023-42366-bug-15874.patch34
-rw-r--r--main/busybox/0038-tsort-avoid-use-after-free.patch80
-rw-r--r--main/busybox/APKBUILD355
-rw-r--r--main/busybox/CVE-2022-30065.patch63
-rw-r--r--main/busybox/acpid.initd (renamed from main/busybox-initscripts/acpid.initd)5
-rw-r--r--main/busybox/busybox-extras.post-install2
-rw-r--r--main/busybox/busybox-extras.pre-deinstall1
-rw-r--r--main/busybox/busybox.post-install10
-rw-r--r--main/busybox/busybox.post-upgrade11
-rw-r--r--main/busybox/busyboxconfig29
-rw-r--r--main/busybox/busyboxconfig-extras27
-rw-r--r--main/busybox/crond.confd (renamed from main/busybox-initscripts/crond.confd)0
-rw-r--r--main/busybox/crond.initd12
-rw-r--r--main/busybox/dad.if-up3
-rw-r--r--main/busybox/default.script2
-rw-r--r--main/busybox/dnsd.initd (renamed from main/busybox-initscripts/dnsd.initd)6
-rw-r--r--main/busybox/httpd.initd (renamed from main/busybox-initscripts/inetd.initd)4
-rw-r--r--main/busybox/inetd.initd13
-rw-r--r--main/busybox/klogd.confd (renamed from main/busybox-initscripts/klogd.confd)0
-rw-r--r--main/busybox/klogd.initd15
-rw-r--r--main/busybox/loadkmap.confd (renamed from main/busybox-initscripts/loadkmap.confd)0
-rw-r--r--main/busybox/loadkmap.initd (renamed from main/busybox-initscripts/loadkmap.initd)0
-rw-r--r--main/busybox/mdev.initd (renamed from main/busybox-initscripts/mdev.initd)33
-rw-r--r--main/busybox/ntpd.confd (renamed from main/busybox-initscripts/ntpd.confd)0
-rw-r--r--main/busybox/ntpd.initd15
-rw-r--r--main/busybox/rdate.confd (renamed from main/busybox-initscripts/rdate.confd)2
-rw-r--r--main/busybox/rdate.initd (renamed from main/busybox-initscripts/rdate.initd)0
-rw-r--r--main/busybox/syslog.confd (renamed from main/busybox-initscripts/syslog.confd)0
-rw-r--r--main/busybox/syslog.initd (renamed from main/busybox-initscripts/syslog.initd)5
-rw-r--r--main/busybox/test-fix-tarball-creation.patch16
-rw-r--r--main/busybox/udhcpc.conf11
-rw-r--r--main/busybox/udhcpd.initd12
-rw-r--r--main/busybox/watchdog.confd (renamed from main/busybox-initscripts/watchdog.confd)0
-rw-r--r--main/busybox/watchdog.initd (renamed from main/busybox-initscripts/watchdog.initd)6
-rw-r--r--main/bwm-ng/APKBUILD12
-rw-r--r--main/bwm-ng/format-security.patch13
-rw-r--r--main/byacc/APKBUILD5
-rw-r--r--main/byobu/APKBUILD22
-rw-r--r--main/bzip2/APKBUILD18
-rw-r--r--main/bzip2/bzip2-1.0.4-makefile-CFLAGS.patch4
-rw-r--r--main/bzip2/bzip2.pc.in11
-rw-r--r--main/c-ares/APKBUILD31
-rw-r--r--main/ca-certificates/APKBUILD24
-rw-r--r--main/ca-certificates/ca-certificates.trigger2
-rw-r--r--main/cairo/APKBUILD24
-rw-r--r--main/cairo/fix-type1-subset-indexing.patch153
-rw-r--r--main/cargo-auditable/0001-Fix-tests-on-Rust-1.77.patch46
-rw-r--r--main/cargo-auditable/APKBUILD42
-rw-r--r--main/ccache/APKBUILD33
-rw-r--r--main/ccache/ioctl.patch7
-rw-r--r--main/ccache/system-xxhash.patch77
-rw-r--r--main/cciss_vol_status/APKBUILD5
-rw-r--r--main/cdparanoia/APKBUILD11
-rw-r--r--main/cdparanoia/format-security.patch17
-rw-r--r--main/cgdb/APKBUILD12
-rw-r--r--main/cgit/APKBUILD7
-rw-r--r--main/charybdis/APKBUILD67
-rw-r--r--main/charybdis/charybdis.confd3
-rw-r--r--main/charybdis/charybdis.initd9
-rw-r--r--main/charybdis/charybdis.pre-install5
-rw-r--r--main/charybdis/fix-missing-include.patch12
-rw-r--r--main/check/APKBUILD10
-rw-r--r--main/checkbashisms/APKBUILD36
-rw-r--r--main/chrony/APKBUILD28
-rw-r--r--main/chrony/chronyd.initd82
-rw-r--r--main/chrony/fix-tests.patch12
-rw-r--r--main/chrony/max_resolve_interval.patch4
-rw-r--r--main/chrpath/APKBUILD5
-rw-r--r--main/cifs-utils/APKBUILD18
-rw-r--r--main/cifs-utils/cifs.upcall.request-key.conf2
-rw-r--r--main/ciwiki/APKBUILD32
-rw-r--r--main/ciwiki/gcc-10.patch17
-rw-r--r--main/cjdns/APKBUILD49
-rw-r--r--main/cjdns/cjdns.post-install5
-rw-r--r--main/cjdns/no-march-flag.patch11
-rw-r--r--main/cjson/APKBUILD14
-rw-r--r--main/ckbcomp/APKBUILD8
-rw-r--r--main/cksfv/APKBUILD2
-rw-r--r--main/clang/APKBUILD195
-rw-r--r--main/clang/llvm-hello.patch63
-rw-r--r--main/clang15/10-add-musl-triples.patch (renamed from main/clang/10-add-musl-triples.patch)0
-rw-r--r--main/clang15/30-Enable-stack-protector-by-default-for-Alpine-Linux.patch (renamed from main/clang/30-Enable-stack-protector-by-default-for-Alpine-Linux.patch)13
-rw-r--r--main/clang15/APKBUILD397
-rw-r--r--main/clang15/clang-001-fortify-include.patch36
-rw-r--r--main/clang15/clang-002-fortify-enable.patch29
-rw-r--r--main/clang15/clang-003-as-needed.patch31
-rw-r--r--main/clang15/clang-default-fno-semantic-interposition.patch39
-rw-r--r--main/clang16/10-add-musl-triples.patch39
-rw-r--r--main/clang16/30-Enable-stack-protector-by-default-for-Alpine-Linux.patch90
-rw-r--r--main/clang16/9008-Clang-Support-more-stdio-builtins.patch196
-rw-r--r--main/clang16/9012-Call-printName-to-get-name-of-Decl.patch72
-rw-r--r--main/clang16/APKBUILD494
-rw-r--r--main/clang16/clang-001-fortify-include.patch36
-rw-r--r--main/clang16/clang-002-fortify-enable.patch29
-rw-r--r--main/clang16/clang-003-as-needed.patch31
-rw-r--r--main/clang16/clang-default-fno-semantic-interposition.patch39
-rw-r--r--main/clang16/clang16.pre-upgrade13
-rw-r--r--main/clang17/10-add-musl-triples.patch39
-rw-r--r--main/clang17/30-Enable-stack-protector-by-default-for-Alpine-Linux.patch90
-rw-r--r--main/clang17/APKBUILD500
-rw-r--r--main/clang17/clang-001-fortify-include.patch36
-rw-r--r--main/clang17/clang-002-fortify-enable.patch29
-rw-r--r--main/clang17/clang-003-as-needed.patch31
-rw-r--r--main/cloog/APKBUILD38
-rw-r--r--main/clucene/APKBUILD8
-rw-r--r--main/clucene/clucene-pthread.patch12
-rw-r--r--main/cmake/APKBUILD94
-rw-r--r--main/cmocka/APKBUILD38
-rw-r--r--main/cmocka/musl_uintptr.patch35
-rw-r--r--main/cmocka/wordsize.patch1281
-rw-r--r--main/cmph/APKBUILD16
-rw-r--r--main/command-not-found/APKBUILD2
-rw-r--r--main/compat-pvgrub/APKBUILD16
-rw-r--r--main/compiler-rt/APKBUILD89
-rw-r--r--main/compiler-rt/link-execinfo.patch11
-rw-r--r--main/compiler-rt/sanitizer-ppc64-musl.patch39
-rw-r--r--main/compiler-rt/xray-ppc64-musl.patch63
-rw-r--r--main/confuse/APKBUILD17
-rw-r--r--main/conky/APKBUILD61
-rw-r--r--main/conntrack-tools/APKBUILD14
-rw-r--r--main/coreutils/APKBUILD47
-rw-r--r--main/coreutils/renameat2-fakeroot.patch18
-rw-r--r--main/cppunit/APKBUILD11
-rw-r--r--main/cracklib/APKBUILD53
-rw-r--r--main/cracklib/fix-trigger-warning.patch39
-rw-r--r--main/cramfs/APKBUILD15
-rw-r--r--main/crconf/APKBUILD3
-rw-r--r--main/cryptsetup/APKBUILD43
-rw-r--r--main/cryptsetup/dmcrypt.initd25
-rw-r--r--main/cryptsetup/flush-stdout.patch18
-rw-r--r--main/ctags/APKBUILD56
-rw-r--r--main/ctags/disable-check-genfile.patch19
-rw-r--r--main/cunit/APKBUILD12
-rw-r--r--main/cups/APKBUILD64
-rw-r--r--main/cups/cups.pre-install4
-rw-r--r--main/curl/APKBUILD100
-rw-r--r--main/curl/easy_lock.patch24
-rw-r--r--main/cutter/APKBUILD16
-rw-r--r--main/cutter/musl-fix.patch36
-rw-r--r--main/cvechecker/APKBUILD5
-rw-r--r--main/cvs/APKBUILD67
-rw-r--r--main/cvs/add-libbsd.patch12
-rw-r--r--main/cvs/cvs_1.12.13+real-26.patch14614
-rw-r--r--main/cvs/getcwd.patch21
-rw-r--r--main/cvs/install-sh.patch12
-rw-r--r--main/cvs/mktime-configure.patch201
-rw-r--r--main/cxxopts/APKBUILD35
-rw-r--r--main/cyrus-sasl/APKBUILD16
-rw-r--r--main/cython/APKBUILD22
-rw-r--r--main/cython/cython-test-fix.patch23
-rw-r--r--main/czmq/APKBUILD4
-rw-r--r--main/d-feet/APKBUILD6
-rw-r--r--main/dahdi-linux-lts/APKBUILD86
-rw-r--r--main/dahdi-linux-lts/dahdi-bri_dchan.patch167
-rw-r--r--main/dahdi-linux-lts/dahdi-depmod.patch22
-rw-r--r--main/dahdi-linux-lts/kernel-5.6.patch499
-rw-r--r--main/dahdi-linux-lts/kernel-5.9.patch249
-rw-r--r--main/dahdi-linux-lts/kernel-compat-5.4.patch11
-rw-r--r--main/dahdi-linux/APKBUILD25
-rw-r--r--main/dahdi-tools/APKBUILD47
-rw-r--r--main/dahdi-tools/dahdi-tools.initd21
-rw-r--r--main/dahdi-tools/fix-musl.patch36
-rw-r--r--main/dansguardian/APKBUILD45
-rw-r--r--main/dansguardian/cstring.patch12
-rw-r--r--main/dansguardian/gcc11.patch222
-rw-r--r--main/daq/APKBUILD39
-rw-r--r--main/daq/fix-includes.patch33
-rw-r--r--main/darkhttpd/APKBUILD15
-rw-r--r--main/dash/APKBUILD45
-rw-r--r--main/dash/dash.post-install3
l---------main/dash/dash.post-upgrade1
-rw-r--r--main/dash/dash.pre-deinstall3
-rw-r--r--main/datefudge/APKBUILD4
-rw-r--r--main/dav1d/APKBUILD45
-rw-r--r--main/dav1d/fix-rv64.patch91
-rw-r--r--main/db/APKBUILD23
-rw-r--r--main/dbus-glib/APKBUILD22
-rw-r--r--main/dbus/0001-build-Treat-with-x-yes-the-same-as-with-x-auto.patch27
-rw-r--r--main/dbus/0002-Move-DBUS_X_-definitions-into-PKG_CHECK_MODULES-bloc.patch37
-rw-r--r--main/dbus/0003-Emit-an-error-when-with-x-was-given-but-no-X11-libs-.patch37
-rw-r--r--main/dbus/0004-Add-have_x11-no-if-without-x-was-given-to-make-later.patch25
-rw-r--r--main/dbus/0005-Convert-if-calls-to-AS_IF-macro-for-the-block-that-h.patch52
-rw-r--r--main/dbus/APKBUILD71
-rw-r--r--main/dbus/dbus.confd3
-rw-r--r--main/dbus/dbus.initd2
-rw-r--r--main/dconf/APKBUILD34
-rw-r--r--main/dconf/systemd-userunit.patch42
-rw-r--r--main/ddate/APKBUILD6
-rw-r--r--main/debian-archive-keyring/APKBUILD6
-rw-r--r--main/debian-devscripts/APKBUILD68
-rw-r--r--main/debootstrap/APKBUILD6
-rw-r--r--main/dejagnu/APKBUILD15
-rw-r--r--main/dev86/APKBUILD6
-rw-r--r--main/devicemaster-linux/APKBUILD2
-rw-r--r--main/dhcp/01-dhclient-script-fix-bare-ip.patch13
-rw-r--r--main/dhcp/02-dhclient-script-remove-bashisms.patch28
-rw-r--r--main/dhcp/APKBUILD144
-rw-r--r--main/dhcp/dhcp.pre-install2
-rw-r--r--main/dhcp/dhcrelay.confd3
-rw-r--r--main/dhcp/dhcrelay.initd8
-rw-r--r--main/dhcp/dhcrelay.pre-install2
-rw-r--r--main/dhcp/fix-unwind-import.patch (renamed from main/dhcp/03-fix-unwind-import.patch)0
-rw-r--r--main/dhcpcd-dbus/APKBUILD38
-rw-r--r--main/dhcpcd-dbus/fix-dhcpcd.patch22
-rw-r--r--main/dhcpcd/APKBUILD21
-rw-r--r--main/dhcpcd/busybox-logger.patch6
-rw-r--r--main/dhcpcd/dhcpcd.initd10
-rw-r--r--main/dhcpcd/dhcpcd.pre-install9
-rw-r--r--main/dialog/APKBUILD17
-rw-r--r--main/diffutils/APKBUILD18
-rw-r--r--main/diffutils/skip-test-presue-output-tty.patch24
-rw-r--r--main/distcc/APKBUILD13
-rw-r--r--main/distcc/distccd.initd1
-rw-r--r--main/djbdns/APKBUILD62
-rw-r--r--main/djbdns/djbdns-1.05-jumbo-josb.patch2
-rwxr-xr-xmain/djbdns/dnscache.monthly2
-rw-r--r--main/djbdns/implicit.patch35
-rw-r--r--main/dkimproxy/APKBUILD16
-rw-r--r--main/dmidecode/APKBUILD7
-rw-r--r--main/dmraid/APKBUILD15
-rw-r--r--main/dmraid/lfs64.patch15
-rw-r--r--main/dmvpn/APKBUILD25
-rw-r--r--main/dns-root-hints/APKBUILD95
-rw-r--r--main/dns-root-hints/dns-root-hints.crond2
-rw-r--r--main/dns-root-hints/named.root10
-rw-r--r--main/dns-root-hints/named.root.sigbin72 -> 95 bytes
-rwxr-xr-xmain/dns-root-hints/update-dns-root-hints58
-rw-r--r--main/dnsmasq/0000-underflow.patch37
-rw-r--r--main/dnsmasq/0001-Fix-infinite-loop-when-invoking-SetFilterA-dbus-meth.patch38
-rw-r--r--main/dnsmasq/0001-Retry-on-interrupted-error-in-tftp.patch27
-rw-r--r--main/dnsmasq/0002-Add-safety-checks-to-places-pointed-by-Coverity.patch45
-rw-r--r--main/dnsmasq/0002-Fix-breakage-in-DBus-FilterA-and-FilterAAAA-methods.patch133
-rw-r--r--main/dnsmasq/0003-Small-safeguard-to-unexpected-data.patch30
-rw-r--r--main/dnsmasq/0004-Fix-bunch-of-warnings-in-auth.c.patch80
-rw-r--r--main/dnsmasq/0005-Fix-few-coverity-warnings-in-lease-tools.patch92
-rw-r--r--main/dnsmasq/0006-Fix-coverity-formats-issues-in-blockdata.patch23
-rw-r--r--main/dnsmasq/0007-Retry-dhcp6-ping-on-interrupts.patch23
-rw-r--r--main/dnsmasq/0008-Fix-coverity-warnings-on-dbus.patch84
-rw-r--r--main/dnsmasq/0009-Address-coverity-issues-detected-in-util.c.patch58
-rw-r--r--main/dnsmasq/0010-Fix-coverity-detected-issues-in-option.c.patch135
-rw-r--r--main/dnsmasq/0011-Fix-coverity-detected-issue-in-radv.c.patch23
-rw-r--r--main/dnsmasq/0012-Fix-coverity-detected-issues-in-cache.c.patch23
-rw-r--r--main/dnsmasq/0013-Fix-coverity-issues-detected-in-domain-match.c.patch61
-rw-r--r--main/dnsmasq/0014-Fix-coverity-detected-issues-in-dnsmasq.c.patch69
-rw-r--r--main/dnsmasq/0015-Fix-coverity-issues-in-dnssec.c.patch35
-rw-r--r--main/dnsmasq/0020-fix-domain-match-local.patch276
-rw-r--r--main/dnsmasq/0021-build_server_array.patch70
-rw-r--r--main/dnsmasq/0022-Fix-problems-with-upper-case-in-domain-match.patch84
-rw-r--r--main/dnsmasq/0023-Optimize-inserting-records-into-server-list.patch69
-rw-r--r--main/dnsmasq/0024-Fix-massive-confusion-on-server-reload.patch238
-rw-r--r--main/dnsmasq/0025-reuse-server.patch87
-rw-r--r--main/dnsmasq/APKBUILD98
-rw-r--r--main/dnsmasq/CVE-2022-0934.patch189
l---------main/dnsmasq/dnsmasq-dnssec-dbus.pre-install1
l---------main/dnsmasq/dnsmasq-dnssec-dbus.pre-upgrade1
-rw-r--r--main/dnssec-root/APKBUILD2
-rw-r--r--main/dnstop/APKBUILD36
-rw-r--r--main/doas-sudo-shim/APKBUILD8
-rw-r--r--main/doas/APKBUILD20
-rw-r--r--main/doas/configuration-directory.patch492
-rw-r--r--main/doas/doas.conf4
-rwxr-xr-xmain/doas/doas.post-install32
-rw-r--r--[-rwxr-xr-x]main/doas/doas.post-upgrade84
-rw-r--r--main/docbook-xml/APKBUILD29
-rw-r--r--main/docbook-xml/docbook-xml.pre-deinstall (renamed from main/docbook-xml/docbook-xml.post-deinstall)0
-rw-r--r--main/docbook-xsl/APKBUILD5
l---------[-rw-r--r--]main/docbook-xsl/docbook-xsl.post-install30
-rw-r--r--main/docbook-xsl/docbook-xsl.post-upgrade49
-rw-r--r--main/docbook-xsl/docbook-xsl.pre-deinstall (renamed from main/docbook-xsl/docbook-xsl.post-deinstall)3
-rw-r--r--main/docbook2x/APKBUILD37
-rw-r--r--main/docs/APKBUILD7
-rw-r--r--main/dosfstools/APKBUILD3
-rw-r--r--main/dovecot/APKBUILD55
-rw-r--r--main/dovecot/CVE-2022-30550.patch155
-rw-r--r--main/dovecot/Support-openssl-3.0.patch45
-rw-r--r--main/dovecot/submission-proxy-Add-IPV6-prefix-to-IPv6-addresses.patch27
-rw-r--r--main/doxygen/APKBUILD14
-rw-r--r--main/doxygen/remove-usage-of-fstat64.patch23
-rw-r--r--main/dpkg/APKBUILD33
-rw-r--r--main/drbd-utils/APKBUILD54
-rw-r--r--main/drbd-utils/drbdsetup-permissions.patch8
-rw-r--r--main/drbd-utils/fix-drbdsetup_events2.c.patch16
-rw-r--r--main/dropbear/APKBUILD28
-rw-r--r--main/dropbear/dropbear-fix-utmp.patch157
-rw-r--r--main/dropbear/dropbear-options_sftp-server_path.patch4
-rw-r--r--main/dropbear/dropbear.initd11
-rw-r--r--main/dropbear/new-config.h-location.patch11
-rw-r--r--main/dtach/APKBUILD13
-rw-r--r--main/dtc/APKBUILD27
-rw-r--r--main/dtc/fix-tests-for-Python3.12.patch43
-rw-r--r--main/dtc/pylibfdt-fix-with-Python-3.10.patch58
-rw-r--r--main/dtc/pyscm.patch19
-rw-r--r--main/e2fsprogs/APKBUILD71
-rw-r--r--main/e2fsprogs/lfs64.patch42
-rw-r--r--main/ed/APKBUILD6
-rw-r--r--main/efi-mkkeys/APKBUILD2
-rw-r--r--main/efi-mkuki/APKBUILD6
-rw-r--r--main/efibootmgr/APKBUILD23
-rw-r--r--main/efibootmgr/efivar.patch14
-rw-r--r--main/efitools/APKBUILD11
-rw-r--r--main/efivar/APKBUILD20
-rw-r--r--main/efivar/fix-build-riscv64.patch12
-rw-r--r--main/efivar/musl-compat.patch231
-rw-r--r--main/efivar/ppc64le-compat.patch22
-rw-r--r--main/eggdrop/APKBUILD64
-rw-r--r--main/eggdrop/eggdrop.post-install6
-rw-r--r--main/eggdrop/gseen.mod.patch5133
-rw-r--r--main/eggdrop/logs2html.mod.patch3417
-rw-r--r--main/elfutils/APKBUILD98
-rw-r--r--main/elfutils/error.h27
-rw-r--r--main/elinks/APKBUILD60
-rw-r--r--main/ell/0001-build-fix-time.h-related-breakage-on-musl.patch79
-rw-r--r--main/ell/APKBUILD12
-rw-r--r--main/ell/use-libgen-basename.patch10
-rw-r--r--main/email/APKBUILD6
-rw-r--r--main/encfs/APKBUILD48
-rw-r--r--main/encodings/APKBUILD17
-rw-r--r--main/esh/APKBUILD5
-rw-r--r--main/espeak/APKBUILD7
-rw-r--r--main/etckeeper/APKBUILD36
-rw-r--r--main/ethtool/APKBUILD16
-rw-r--r--main/eudev/78-sound-card.rules_Import_ID_PATH_early.patch42
-rw-r--r--main/eudev/APKBUILD51
-rw-r--r--main/eudev/eudev-hwids.trigger5
-rw-r--r--main/eudev/no-sgx.patch17
-rw-r--r--main/eudev/setup-udev28
-rw-r--r--main/eventlog/APKBUILD2
-rw-r--r--main/execline/APKBUILD13
-rw-r--r--main/expat/APKBUILD20
-rw-r--r--main/expect/APKBUILD10
-rw-r--r--main/ez-ipupdate/APKBUILD39
-rw-r--r--main/ez-ipupdate/implicit.patch26
-rw-r--r--main/f2fs-tools/APKBUILD11
-rw-r--r--main/f2fs-tools/no-lfs64.patch458
-rw-r--r--main/fail2ban/APKBUILD31
-rw-r--r--main/fail2ban/CVE-2021-32749.patch155
-rw-r--r--main/fail2ban/alpine-sshd.filterd1
-rwxr-xr-xmain/fail2ban/fail2ban.initd60
-rw-r--r--main/fail2ban/python-3.10.patch77
-rw-r--r--main/fail2ban/setuptools59.patch10
-rw-r--r--main/fakeroot/APKBUILD43
-rw-r--r--main/fakeroot/do-not-redefine-id_t.patch21
-rw-r--r--main/fakeroot/fakeroot-skip-ipc-sanity-check.patch29
-rw-r--r--main/fakeroot/fix-format.patch25
-rw-r--r--main/fakeroot/t-xattr.patch16
-rw-r--r--main/fakeroot/xstatjunk.patch10
-rw-r--r--main/fcgi/APKBUILD6
-rw-r--r--main/fcgiwrap/APKBUILD15
-rw-r--r--main/fcgiwrap/no-buffering.patch58
-rw-r--r--main/ferm/APKBUILD12
-rw-r--r--main/fftw/APKBUILD51
-rw-r--r--main/file/APKBUILD24
-rw-r--r--main/findutils/APKBUILD18
-rw-r--r--main/fish/APKBUILD57
-rw-r--r--main/flac/APKBUILD68
-rw-r--r--main/flashcache-utils/APKBUILD28
-rw-r--r--main/flashrom/APKBUILD30
-rwxr-xr-xmain/flashrom/flashrom.post-install15
-rw-r--r--main/flashrom/musl-ffs.patch10
-rw-r--r--main/flex/APKBUILD14
-rw-r--r--main/flite/APKBUILD13
-rw-r--r--main/fmt/APKBUILD42
-rw-r--r--main/fmt/Fix-handling-of-static-separator.patch32
-rw-r--r--main/font-adobe-100dpi/APKBUILD39
-rw-r--r--main/font-adobe-75dpi/APKBUILD37
-rw-r--r--main/font-adobe-utopia-100dpi/APKBUILD39
-rw-r--r--main/font-adobe-utopia-75dpi/APKBUILD39
-rw-r--r--main/font-adobe-utopia-type1/APKBUILD37
-rw-r--r--main/font-alias/APKBUILD13
-rw-r--r--main/font-arabic-misc/APKBUILD36
-rw-r--r--main/font-bh-100dpi/APKBUILD37
-rw-r--r--main/font-bh-75dpi/APKBUILD37
-rw-r--r--main/font-bh-lucidatypewriter-100dpi/APKBUILD40
-rw-r--r--main/font-bh-lucidatypewriter-75dpi/APKBUILD40
-rw-r--r--main/font-bh-ttf/APKBUILD36
-rw-r--r--main/font-bh-type1/APKBUILD40
-rw-r--r--main/font-bitstream-100dpi/APKBUILD39
-rw-r--r--main/font-bitstream-75dpi/APKBUILD39
-rw-r--r--main/font-bitstream-speedo/APKBUILD38
-rw-r--r--main/font-bitstream-type1/APKBUILD39
-rw-r--r--main/font-cantarell/APKBUILD (renamed from main/ttf-cantarell/APKBUILD)12
-rw-r--r--main/font-cronyx-cyrillic/APKBUILD37
-rw-r--r--main/font-cursor-misc/APKBUILD25
-rw-r--r--main/font-daewoo-misc/APKBUILD40
-rw-r--r--main/font-dec-misc/APKBUILD36
-rw-r--r--main/font-dejavu/45-dejavu.conf (renamed from main/ttf-dejavu/45-dejavu.conf)0
-rw-r--r--main/font-dejavu/90-tt-dejavu.conf (renamed from main/ttf-dejavu/90-tt-dejavu.conf)0
-rw-r--r--main/font-dejavu/APKBUILD (renamed from main/ttf-dejavu/APKBUILD)39
-rw-r--r--main/font-droid/45-droid.conf (renamed from main/ttf-droid/45-droid.conf)0
-rw-r--r--main/font-droid/65-ttf-droid-sans.conf (renamed from main/ttf-droid/65-ttf-droid-sans.conf)0
-rw-r--r--main/font-droid/65-ttf-droid-serif.conf (renamed from main/ttf-droid/65-ttf-droid-serif.conf)0
-rw-r--r--main/font-droid/90-tt-droid.conf (renamed from main/ttf-droid/90-tt-droid.conf)0
-rw-r--r--main/font-droid/APKBUILD (renamed from main/ttf-droid/APKBUILD)25
-rw-r--r--main/font-freefont/APKBUILD27
-rw-r--r--main/font-ibm-type1/APKBUILD37
-rw-r--r--main/font-isas-misc/APKBUILD35
-rw-r--r--main/font-jis-misc/APKBUILD38
-rw-r--r--main/font-liberation-sans-narrow/APKBUILD4
-rw-r--r--main/font-linux-libertine/APKBUILD12
-rw-r--r--main/font-micro-misc/APKBUILD36
-rw-r--r--main/font-misc-cyrillic/APKBUILD37
-rw-r--r--main/font-misc-ethiopic/APKBUILD27
-rw-r--r--main/font-misc-meltho/APKBUILD42
-rw-r--r--main/font-misc-misc/APKBUILD25
-rw-r--r--main/font-mutt-misc/APKBUILD36
-rw-r--r--main/font-schumacher-misc/APKBUILD36
-rw-r--r--main/font-screen-cyrillic/APKBUILD37
-rw-r--r--main/font-sony-misc/APKBUILD25
-rw-r--r--main/font-sun-misc/APKBUILD36
-rw-r--r--main/font-terminus/APKBUILD (renamed from main/terminus-font/APKBUILD)19
-rw-r--r--main/font-tlwg/APKBUILD27
-rw-r--r--main/font-unifont/APKBUILD55
-rw-r--r--main/font-util/APKBUILD17
-rw-r--r--main/font-vollkorn/APKBUILD10
-rw-r--r--main/font-winitzki-cyrillic/APKBUILD36
-rw-r--r--main/font-xfree86-type1/APKBUILD36
-rw-r--r--main/fontconfig/APKBUILD13
-rw-r--r--main/fortify-headers/0000-do-not-mess-with-ppoll.patch34
-rw-r--r--main/fortify-headers/0001-add-initial-clang-support.patch762
-rw-r--r--main/fortify-headers/0002-avoid-__extension__-with-clang.patch144
-rw-r--r--main/fortify-headers/0003-Disable-wrapping-of-ppoll.patch53
-rw-r--r--main/fortify-headers/APKBUILD25
-rw-r--r--main/fping/APKBUILD14
-rw-r--r--main/fping/int-conversion.patch34
-rw-r--r--main/fping/unprivileged-ping.patch28
-rw-r--r--main/fprobe-ulog/APKBUILD28
-rw-r--r--main/fprobe/APKBUILD31
-rw-r--r--main/freeradius-client/APKBUILD14
-rw-r--r--main/freeradius/APKBUILD14
-rw-r--r--main/freeradius/remove-eap-from-default-mods.patch2
-rw-r--r--main/freeswitch-sounds-en-us-callie-32000/APKBUILD7
-rw-r--r--main/freeswitch-sounds-en-us-callie-8000/APKBUILD7
-rw-r--r--main/freeswitch-sounds-es-mx-maria-44100/APKBUILD7
-rw-r--r--main/freeswitch-sounds-fr-ca-june-8000/APKBUILD5
-rw-r--r--main/freeswitch-sounds-fr-fr-sibylle-8000/APKBUILD1
-rw-r--r--main/freeswitch-sounds-music-32000/APKBUILD7
-rw-r--r--main/freeswitch-sounds-music-8000/APKBUILD7
-rw-r--r--main/freeswitch-sounds-pt-br-karina-8000/APKBUILD7
-rw-r--r--main/freeswitch-sounds-ru-RU-elena-32000/APKBUILD7
-rw-r--r--main/freeswitch-sounds-ru-RU-elena-8000/APKBUILD7
-rw-r--r--main/freeswitch/APKBUILD59
-rw-r--r--main/freeswitch/configure-lua53.patch21
-rw-r--r--main/freeswitch/explicit-darwin-macro.patch15
-rw-r--r--main/freeswitch/fix-undeclared-function-s390x.patch21
-rw-r--r--main/freeswitch/include-lua53.patch48
-rw-r--r--main/freeswitch/modules.conf6
-rw-r--r--main/freetdm/APKBUILD5
-rw-r--r--main/freetds/APKBUILD18
-rw-r--r--main/freetds/fix-includes.patch13
-rw-r--r--main/freetype/APKBUILD51
-rw-r--r--main/freetype/pcf-family-names.patch13
-rw-r--r--main/freetype/subpixel.patch9
-rw-r--r--main/freetype/table-validation-modules.patch (renamed from main/freetype/0001-Enable-table-validation-modules.patch)0
-rw-r--r--main/fribidi/APKBUILD10
-rw-r--r--main/fsarchiver/APKBUILD10
-rw-r--r--main/fstrm/APKBUILD9
-rw-r--r--main/fts/APKBUILD46
-rw-r--r--main/fuse/APKBUILD9
-rw-r--r--main/fuse3/APKBUILD35
-rw-r--r--main/fuse3/dont-mknod-dev-fuse.patch14
-rw-r--r--main/fuse3/fix-realpath.patch28
-rw-r--r--main/gawk/APKBUILD8
-rw-r--r--main/gc/0001-Fix-gctest-with-musl-libc-on-s390x.patch22
-rw-r--r--main/gc/APKBUILD24
-rw-r--r--main/gcc/0001-posix_memalign.patch8
-rw-r--r--main/gcc/0002-gcc-poison-system-directories.patch74
-rw-r--r--main/gcc/0003-specs-turn-on-Wl-z-now-by-default.patch24
-rw-r--r--main/gcc/0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch28
-rw-r--r--main/gcc/0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch64
-rw-r--r--main/gcc/0006-Enable-Wformat-and-Wformat-security-by-default.patch12
-rw-r--r--main/gcc/0007-Enable-Wtrampolines-by-default.patch12
-rw-r--r--main/gcc/0008-Disable-ssp-on-nostdlib-nodefaultlibs-and-ffreestand.patch26
-rw-r--r--main/gcc/0009-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch14
-rw-r--r--main/gcc/0010-Don-t-declare-asprintf-if-defined-as-a-macro.patch8
-rw-r--r--main/gcc/0011-libiberty-copy-PIC-objects-during-build-process.patch10
-rw-r--r--main/gcc/0012-libgcc_s.patch (renamed from main/gcc/0013-libgcc_s.patch)32
-rw-r--r--main/gcc/0012-libitm-disable-FORTIFY.patch33
-rw-r--r--main/gcc/0013-nopie.patch (renamed from main/gcc/0014-nopie.patch)14
-rw-r--r--main/gcc/0014-ada-fix-shared-linking.patch (renamed from main/gcc/0019-ada-fix-shared-linking.patch)8
-rw-r--r--main/gcc/0015-build-fix-CXXFLAGS_FOR_BUILD-passing.patch (renamed from main/gcc/0020-build-fix-CXXFLAGS_FOR_BUILD-passing.patch)10
-rw-r--r--main/gcc/0015-libffi-use-__linux__-instead-of-__gnu_linux__-for-mu.patch25
-rw-r--r--main/gcc/0016-add-fortify-headers-paths.patch (renamed from main/gcc/0021-add-fortify-headers-paths.patch)10
-rw-r--r--main/gcc/0016-dlang-update-zlib-binding.patch425
-rw-r--r--main/gcc/0017-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch (renamed from main/gcc/0022-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch)24
-rw-r--r--main/gcc/0017-dlang-use-libucontext-on-mips64.patch24
-rw-r--r--main/gcc/0018-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch (renamed from main/gcc/0023-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch)24
-rw-r--r--main/gcc/0018-dlang-libdruntime-define-fcntl.h-constants-for-mips6.patch38
-rw-r--r--main/gcc/0019-aarch64-disable-multilib-support.patch (renamed from main/gcc/0025-aarch64-disable-multilib-support.patch)8
-rw-r--r--main/gcc/0020-s390x-disable-multilib-support.patch (renamed from main/gcc/0026-s390x-disable-multilib-support.patch)6
-rw-r--r--main/gcc/0021-ppc64-le-disable-multilib-support.patch (renamed from main/gcc/0027-ppc64-le-disable-multilib-support.patch)12
-rw-r--r--main/gcc/0022-x86_64-disable-multilib-support.patch (renamed from main/gcc/0028-x86_64-disable-multilib-support.patch)8
-rw-r--r--main/gcc/0023-riscv-disable-multilib-support.patch (renamed from main/gcc/0029-riscv-disable-multilib-support.patch)16
-rw-r--r--main/gcc/0024-always-build-libgcc_eh.a.patch (renamed from main/gcc/0030-always-build-libgcc_eh.a.patch)14
-rw-r--r--main/gcc/0024-mips64-disable-multilib-support.patch48
-rw-r--r--main/gcc/0025-ada-libgnarl-compatibility-for-musl.patch (renamed from main/gcc/0031-ada-libgnarl-compatibility-for-musl.patch)14
-rw-r--r--main/gcc/0026-ada-musl-support-fixes.patch (renamed from main/gcc/0032-ada-musl-support-fixes.patch)42
-rw-r--r--main/gcc/0027-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch (renamed from main/gcc/0039-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch)77
-rw-r--r--main/gcc/0028-configure-fix-detection-of-atomic-builtins-in-libato.patch (renamed from main/gcc/0040-configure-fix-detection-of-atomic-builtins-in-libato.patch)12
-rw-r--r--main/gcc/0029-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch27
-rw-r--r--main/gcc/0030-gdc-unconditionally-link-libgphobos-against-libucont.patch (renamed from main/gcc/0048-gdc-unconditionally-link-libgphobos-against-libucont.patch)13
-rw-r--r--main/gcc/0031-druntime-link-against-libucontext-on-all-platforms.patch54
-rw-r--r--main/gcc/0032-libgnat-time_t-is-always-64-bit-on-musl-libc.patch25
-rw-r--r--main/gcc/0033-gcc-go-Fix-handling-of-signal-34-on-musl.patch43
-rw-r--r--main/gcc/0033-libphobos-do-not-use-LFS64-symbols.patch44
-rw-r--r--main/gcc/0034-There-are-more-than-one-st_-a-m-c-tim-fields-in-stru.patch27
-rw-r--r--main/gcc/0034-libgo-fix-lfs64-use.patch195
-rw-r--r--main/gcc/0035-gcc-go-signal-34-is-special-on-musl-libc.patch29
-rw-r--r--main/gcc/0036-PR110792-Early-clobber-issues-with-rot32di2-on-i386.patch186
-rw-r--r--main/gcc/0036-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch27
-rw-r--r--main/gcc/0037-gcc-go-link-to-libucontext.patch25
-rw-r--r--main/gcc/0037-loongarch-disable-multilib-support.patch61
-rw-r--r--main/gcc/0038-Use-generic-errstr.go-implementation-on-musl.patch48
-rw-r--r--main/gcc/0041-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch84
-rw-r--r--main/gcc/0042-Fix-attempt-to-use-poisoned-calloc-error-in-libgccji.patch80
-rw-r--r--main/gcc/0043-stddef.h-add-support-for-musl-typedef-macro-guards.patch106
-rw-r--r--main/gcc/0044-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch63
-rw-r--r--main/gcc/0045-libgo-include-asm-ptrace.h-for-pt_regs-definition-on.patch58
-rw-r--r--main/gcc/0046-Disable-fsplit-stack-support-on-non-glibc-targets.patch115
-rw-r--r--main/gcc/0047-x86-Properly-disable-fsplit-stack-support-on-non-gli.patch94
-rw-r--r--main/gcc/0049-properly-disable-fsplit-stack-on-non-glibc-targets-P.patch298
-rw-r--r--main/gcc/0050-x86-Fix-fsplit-stack-feature-detection-via-TARGET_CA.patch75
-rw-r--r--main/gcc/0051-go-gospec-forcibly-disable-fsplit-stack-support.patch33
-rw-r--r--main/gcc/APKBUILD382
-rw-r--r--main/gcc/gcc-go.post-install8
-rw-r--r--main/gcc/libgo-musl-1.2.3.patch13
-rw-r--r--main/gcompat/APKBUILD91
-rw-r--r--main/gcr/APKBUILD68
-rw-r--r--main/gcr/dont-run-gpg-tests.patch12
-rw-r--r--main/gcr/fix-64-bit-time_t-32-bit.patch14
-rw-r--r--main/gcr/fix-build-without-systemd.patch28
-rw-r--r--main/gcr/fix-meson-invalid-kw-argument.patch61
-rw-r--r--main/gd/APKBUILD17
-rw-r--r--main/gdb/APKBUILD46
-rw-r--r--main/gdb/gcore-sh.patch54
-rw-r--r--main/gdbm/APKBUILD2
-rw-r--r--main/gdk-pixbuf/APKBUILD48
-rw-r--r--main/gdl/APKBUILD32
-rw-r--r--main/gengetopt/APKBUILD12
-rw-r--r--main/geoip/APKBUILD9
-rw-r--r--main/gettext-tiny/APKBUILD32
-rw-r--r--main/gettext-tiny/line-length.patch15
-rw-r--r--main/gettext-tiny/respect-cflags.patch11
-rw-r--r--main/gettext-tiny/xgettext-version.patch25
-rw-r--r--main/gettext/APKBUILD58
-rw-r--r--main/gettext/cwd.patch14
-rw-r--r--main/gettext/musl-realpath.patch45
-rw-r--r--main/gettext/skip-tests-libunistring-1.0.patch55
-rw-r--r--main/gettext/skip-tests-musl.patch34
-rw-r--r--main/ghi/APKBUILD25
-rw-r--r--main/ghostscript-fonts/APKBUILD26
-rw-r--r--main/ghostscript/APKBUILD35
-rw-r--r--main/giflib/APKBUILD37
-rw-r--r--main/giflib/CVE-2021-40633.patch30
-rw-r--r--main/giflib/correct-document-page-install.patch58
-rw-r--r--main/giflib/dont-build-html-pages-images.patch18
-rw-r--r--main/giflib/giflib-restore-deprecated-functions.patch17
-rw-r--r--main/git/APKBUILD225
-rw-r--r--main/gitolite/APKBUILD13
-rw-r--r--main/glib/0001-gquark-fix-initialization-with-c-constructors.patch47
-rw-r--r--main/glib/APKBUILD126
-rw-r--r--main/glib/alwaysbash.patch16
-rw-r--r--main/glib/fix-tests.patch457
-rw-r--r--main/glib/flaky-tests.patch83
-rw-r--r--main/glib/musl-libintl.patch22
-rw-r--r--main/glib/tests-machine-id.patch41
-rw-r--r--main/glslang/APKBUILD11
-rw-r--r--main/glu/APKBUILD15
-rw-r--r--main/gmp/APKBUILD27
-rw-r--r--main/gnokii/APKBUILD84
-rw-r--r--main/gnokii/gnokii-0.6.31-gcc5.patch27
-rw-r--r--main/gnokii/gnokii.patch11
-rw-r--r--main/gnu-efi/APKBUILD13
-rw-r--r--main/gnupg/0001-Include-sys-select.h-for-FD_SETSIZE.patch31
-rw-r--r--main/gnupg/0110-avoid-simple-memory-dumps-via-ptrace.patch18
-rw-r--r--main/gnupg/0210-dirmngr-hkp-avoid-potential-race-condition-when-some-host-die.patch207
-rw-r--r--main/gnupg/0220-dirmngr-avoid-need-for-hkp-housekeeping.patch232
-rw-r--r--main/gnupg/0310-gpg-default-to-3072-bit-keys.patch93
-rw-r--r--main/gnupg/0320-gpg-default-to-aes256.patch37
-rw-r--r--main/gnupg/0330-gpg-default-to-sha512-for-all-signature-types-on-rsa-keys.patch12
-rw-r--r--main/gnupg/0410-make-gpg-zip-use-tar-from-path.patch29
-rw-r--r--main/gnupg/0420-gpg-drop-import-clean-from-default-keyserver-import-options.patch24
-rw-r--r--main/gnupg/70-gpg-import-Ed25519-private-keys-as-MPIs.patch53
-rw-r--r--main/gnupg/APKBUILD54
-rw-r--r--main/gnupg/HACK-revert-rfc4880bis-default.patch207
-rw-r--r--main/gnutls/APKBUILD48
-rw-r--r--main/gnutls/skip-crq.patch22
-rw-r--r--main/gnutls/skip-ktls.patch137
-rw-r--r--main/gnutls/tests-certtool.patch33
-rw-r--r--main/goaccess/APKBUILD10
-rw-r--r--main/gobject-introspection/APKBUILD52
-rw-r--r--main/gobject-introspection/musl-time64.patch41
-rw-r--r--main/gperf/APKBUILD15
-rw-r--r--main/gpm/APKBUILD2
-rw-r--r--main/gpsd/APKBUILD26
-rw-r--r--main/gpsd/timepps.h12
-rw-r--r--main/gptfdisk/0001-Fix-failure-crash-of-sgdisk-when-compiled-with-lates.patch57
-rw-r--r--main/gptfdisk/0002-Updated-guid.cc-to-deal-with-minor-change-in-libuuid.patch39
-rw-r--r--main/gptfdisk/APKBUILD26
-rw-r--r--main/gptfdisk/fix-musl.patch58
-rw-r--r--main/graphene/APKBUILD10
-rw-r--r--main/graphite2/APKBUILD48
-rw-r--r--main/graphviz/0001-clone-nameclash.patch87
-rw-r--r--main/graphviz/APKBUILD96
-rw-r--r--main/grep/APKBUILD26
-rw-r--r--main/grep/fix-tests.patch23
-rw-r--r--main/groff/APKBUILD25
-rw-r--r--main/groff/site.tmac17
-rw-r--r--main/gross/APKBUILD19
-rw-r--r--main/gross/fix-shadow-declaration.patch13
-rw-r--r--main/grub/0001-Fix-grub-mkconfig-detection-of-linux-edge-virt.patch43
-rw-r--r--main/grub/0001-loader-drop-argv-argument-in-grub_initrd_load.patch178
-rw-r--r--main/grub/0002-efi-add-definition-of-LoadFile2-protocol.patch64
-rw-r--r--main/grub/0002-ensure-grub-mkconfig-ignores-.apk-new-files.patch22
-rw-r--r--main/grub/0003-efi-implemented-LoadFile2-initrd-loading-protocol-fo.patch187
-rw-r--r--main/grub/0003-prevent-harmless-LVM-warnings-from-grub-probe.patch20
-rw-r--r--main/grub/0004-Handle-encrypted-zfs-root-partition.patch34
-rw-r--r--main/grub/0004-linux-ignore-FDT-unless-we-need-to-modify-it.patch83
-rw-r--r--main/grub/0005-Alpine-Linux-fixes-for-menu.patch (renamed from main/grub/alpine-mkconfig.patch)22
-rw-r--r--main/grub/0005-loader-Move-arm64-linux-loader-to-common-code.patch79
-rw-r--r--main/grub/0006-RISC-V-Update-image-header.patch87
-rw-r--r--main/grub/0006-build-force-no-pie.patch (renamed from main/grub/fix-gcc-no-pie-specs.patch)15
-rw-r--r--main/grub/0007-RISC-V-Use-common-linux-loader.patch123
-rw-r--r--main/grub/0007-uefi-firmware-remove-fsetup-check.patch30
-rw-r--r--main/grub/0008-fix-build-error-in-binutils-2.36.patch44
-rw-r--r--main/grub/0009-fix-kernel-version-detection.patch64
-rw-r--r--main/grub/0010-riscv-binutils-2.38.patch39
-rw-r--r--main/grub/0011-mkconfig-ignore-apk-new-files.patch30
-rw-r--r--main/grub/0012-remove-udevadm-usage.patch137
-rw-r--r--main/grub/APKBUILD107
-rw-r--r--main/grub/grub.post-upgrade3
-rw-r--r--main/grub/grub.trigger9
-rw-r--r--main/grub/lang-C.UTF-8.patch13
-rw-r--r--main/grub/update-grub9
-rw-r--r--main/gsm/APKBUILD24
-rw-r--r--main/gsm/gsm-makefile.patch39
-rw-r--r--main/gst-plugins-base/APKBUILD40
-rw-r--r--main/gstreamer/APKBUILD25
-rw-r--r--main/gtest/APKBUILD20
-rw-r--r--main/gtk+2.0/APKBUILD112
-rw-r--r--main/gtk+2.0/gtk+2.0.post-deinstall7
-rw-r--r--main/gtk+2.0/gtk+2.0.post-install4
l---------main/gtk+2.0/gtk+2.0.post-upgrade1
-rw-r--r--main/gtk+2.0/gtk2-fixdso.patch15
-rw-r--r--main/gtk+2.0/xid-collision-debug.patch15
-rw-r--r--main/gtk+3.0/APKBUILD114
-rw-r--r--main/gtk+3.0/gtk+3.0.post-deinstall2
l---------main/gtk+3.0/gtk+3.0.post-upgrade1
-rw-r--r--main/gtk+3.0/gtk+3.0.trigger (renamed from main/gtk+3.0/gtk+3.0.post-install)1
-rw-r--r--main/gtk+3.0/gtk-update-icon-cache.trigger (renamed from main/gtk+2.0/gtk-update-icon-cache.trigger)4
-rw-r--r--main/gtk-doc/APKBUILD8
-rw-r--r--main/guile/APKBUILD71
-rw-r--r--main/guile/failing-encoding-test.patch26
-rw-r--r--main/guile/failing-filesys-test.patch24
-rw-r--r--main/gummiboot/APKBUILD13
-rw-r--r--main/gvpe/APKBUILD31
-rw-r--r--main/gyp/APKBUILD39
-rw-r--r--main/gyp/cmake.patch45
-rw-r--r--main/gyp/fips.patch47
-rw-r--r--main/gyp/py3.8.patch72
-rw-r--r--main/gzip/APKBUILD5
-rw-r--r--main/haproxy/APKBUILD13
-rw-r--r--main/haproxy/haproxy.pre-install2
-rw-r--r--main/harfbuzz/APKBUILD79
-rw-r--r--main/haserl/APKBUILD39
-rw-r--r--main/haveged/APKBUILD2
-rw-r--r--main/hdparm/APKBUILD8
-rw-r--r--main/heimdal/APKBUILD39
-rw-r--r--main/heimdal/CVE-2022-45142.patch22
-rw-r--r--main/heimdal/autoconf-270.patch27
-rw-r--r--main/heimdal/silence-include-headers-redirect-warnings.patch20
-rw-r--r--main/help2man/APKBUILD4
-rw-r--r--main/hicolor-icon-theme/APKBUILD6
-rw-r--r--main/highlight/APKBUILD17
-rw-r--r--main/hiredis/APKBUILD18
-rw-r--r--main/hostapd/0001-hostapd-Add-the-missing-CONFIG_SAE-option-to-the-def.patch30
-rw-r--r--main/hostapd/APKBUILD99
-rw-r--r--main/hostapd/hostapd.confd13
-rw-r--r--main/hostapd/hostapd.initd52
-rw-r--r--main/htop/APKBUILD15
-rw-r--r--main/hunspell-en/APKBUILD62
-rw-r--r--main/hunspell-en/apostrophe.patch36
-rw-r--r--main/hunspell-pt-br/APKBUILD23
-rw-r--r--main/hunspell/APKBUILD22
-rw-r--r--main/hunspell/CVE-2019-16707.patch22
-rw-r--r--main/hvtools/APKBUILD4
-rw-r--r--main/hwdata/APKBUILD74
-rw-r--r--main/hwids/APKBUILD70
-rw-r--r--main/hwloc/APKBUILD57
-rw-r--r--main/hylafax/APKBUILD18
-rw-r--r--main/hylafax/format-security.patch110
-rw-r--r--main/hylafax/tiff-4.5.patch1566
-rw-r--r--main/hylafax/tiff-compat.patch (renamed from main/hylafax/libtiff-42-compatibility.patch)2
-rw-r--r--main/hylafaxplus/APKBUILD10
-rw-r--r--main/hypermail/APKBUILD45
-rw-r--r--main/hypermail/modernc.patch13
-rw-r--r--main/iaxmodem/APKBUILD37
-rw-r--r--main/iaxmodem/fix-printf.patch11
-rw-r--r--main/iaxmodem/fix-use-after-free.patch142
-rw-r--r--main/icecast/APKBUILD13
-rw-r--r--main/icon-naming-utils/APKBUILD4
-rw-r--r--main/icu/001-fix-heap-buffer-overflow.patch31
-rw-r--r--main/icu/APKBUILD39
-rw-r--r--main/icu/skip-flawed-tests.patch44
-rw-r--r--main/icu/standardize-vtzone-output.patch33
-rw-r--r--main/iftop/APKBUILD10
-rw-r--r--main/iftop/format-security.patch52
-rw-r--r--main/ifupdown-ng/01-add-onlink-to-default-route.patch30
-rw-r--r--main/ifupdown-ng/APKBUILD33
-rw-r--r--main/ifupdown/APKBUILD38
-rw-r--r--main/ifupdown/busybox-compat.patch40
-rw-r--r--main/ifupdown/ifupdown-alpine-ifstate.patch13
-rw-r--r--main/ifupdown/ifupdown-no-dpkg.patch26
-rw-r--r--main/ifupdown/makefile-arch.patch10
-rw-r--r--main/ifupdown/musl-macros-archlinux.patch13
-rw-r--r--main/ifupdown/musl-macros-main.patch13
-rw-r--r--main/igmpproxy/APKBUILD15
-rw-r--r--main/ilbc/APKBUILD34
-rw-r--r--main/imake/APKBUILD13
-rw-r--r--main/imap/APKBUILD11
-rw-r--r--main/imlib2/APKBUILD24
-rw-r--r--main/in-sync/APKBUILD4
-rw-r--r--main/indent/APKBUILD31
-rw-r--r--main/inih/APKBUILD15
-rw-r--r--main/iniparser/APKBUILD28
-rw-r--r--main/iniparser/CVE-2023-33461.patch45
-rw-r--r--main/inotify-tools/APKBUILD13
-rw-r--r--main/installkernel/APKBUILD13
-rw-r--r--main/installkernel/installkernel19
-rw-r--r--main/intel-ucode/APKBUILD22
-rw-r--r--main/intltool/APKBUILD35
-rw-r--r--main/intltool/intltool-perl-regexp.patch50
-rw-r--r--main/iperf3/APKBUILD21
-rw-r--r--main/iperf3/build-fixes.patch20
-rw-r--r--main/iperf3/remove-pg-flags.patch29
-rw-r--r--main/iproute2-qos/APKBUILD17
-rw-r--r--main/iproute2-qos/qos.initd2
-rw-r--r--main/iproute2/APKBUILD27
-rw-r--r--main/ipset/APKBUILD30
-rw-r--r--main/ipset/basename-include.patch12
-rw-r--r--main/ipset/ipset.initd26
-rw-r--r--main/iptables/APKBUILD104
-rw-r--r--main/iptables/ebtables.initd6
-rw-r--r--main/iptables/fix-u_int16_t.patch163
-rw-r--r--main/iptables/fix-xtables.patch10
-rw-r--r--main/iptables/iptables.initd118
-rw-r--r--main/iptables/iptables.post-upgrade21
-rw-r--r--main/iputils/APKBUILD71
-rw-r--r--main/ipvsadm/APKBUILD5
-rw-r--r--main/irqbalance/APKBUILD9
-rw-r--r--main/irqbalance/aarch64-sigsegv.patch11
-rw-r--r--main/irqbalance/irqbalance.initd25
-rw-r--r--main/irssi/APKBUILD104
-rw-r--r--main/iscsi-scst/APKBUILD6
-rw-r--r--main/isl25/APKBUILD (renamed from main/isl/APKBUILD)27
-rw-r--r--main/isl26/APKBUILD (renamed from main/isl22/APKBUILD)18
-rw-r--r--main/iso-codes/APKBUILD12
-rw-r--r--main/iucode-tool/APKBUILD7
-rw-r--r--main/ivykis/APKBUILD12
-rw-r--r--main/iw/APKBUILD4
-rw-r--r--main/jack/APKBUILD40
-rw-r--r--main/jack/importlib.patch22
-rw-r--r--main/jack/increase-api-version.patch4
-rw-r--r--main/jansson/APKBUILD7
-rw-r--r--main/jbig2dec/APKBUILD11
-rw-r--r--main/jemalloc/APKBUILD43
-rw-r--r--main/jfsutils/APKBUILD35
-rw-r--r--main/jfsutils/gcc-10.patch72
-rw-r--r--main/jfsutils/jfsutils-include-sysmacros.patch10
-rw-r--r--main/jfsutils/missing-stdinth.patch11
-rw-r--r--main/jfsutils/musl-fix-includes.patch18
-rw-r--r--main/jitterentropy-library/01-disable-gcc-optimisation.patch6
-rw-r--r--main/jitterentropy-library/02-fix-s390x-stack-corruption.patch66
-rw-r--r--main/jitterentropy-library/03-fix-dangling-pointer.patch25
-rw-r--r--main/jitterentropy-library/04-fix-memory-leak.patch27
-rw-r--r--[-rwxr-xr-x]main/jitterentropy-library/APKBUILD29
-rw-r--r--main/joe/APKBUILD23
-rw-r--r--main/joe/c99.patch59
-rw-r--r--main/joe/protos.patch409
-rw-r--r--main/jpeg/APKBUILD4
-rw-r--r--main/jq/APKBUILD22
-rw-r--r--main/json-c/APKBUILD13
-rw-r--r--main/jwhois/APKBUILD54
-rw-r--r--main/jwhois/automake.patch11
-rw-r--r--main/jwhois/jwhois-libiconv.patch10
-rw-r--r--main/jwhois/no-gnulib.patch52
-rw-r--r--main/kamailio/APKBUILD129
-rw-r--r--main/kamailio/kamailio.initd31
-rw-r--r--main/kbd/APKBUILD33
-rw-r--r--main/kbd/error.h20
-rw-r--r--main/kea/APKBUILD287
-rw-r--r--main/kea/configs-fix-paths.patch116
-rw-r--r--main/kea/disable-db-tests.patch18
-rw-r--r--main/kea/kea-admin-remove-builddir.patch19
-rw-r--r--main/kea/kea-common.post-upgrade14
-rw-r--r--main/kea/kea-common.pre-install6
-rw-r--r--main/kea/kea.confd.in17
-rw-r--r--main/kea/kea.initd.in45
-rw-r--r--main/kea/move-api-files-to-doc.patch18
-rw-r--r--main/kea/put-LOCKFILE_DIR-to-runstatedir.patch13
-rw-r--r--main/kea/python3.12.patch90
-rw-r--r--main/keyutils/APKBUILD4
-rw-r--r--main/kmod/APKBUILD21
-rw-r--r--main/kmod/kmod-static-nodes.initd19
-rw-r--r--main/kmod/kmod.trigger17
-rw-r--r--main/kmod/portable-basename.patch106
-rw-r--r--main/knock/APKBUILD8
-rw-r--r--main/knot/APKBUILD23
-rw-r--r--main/knot/knotd.initd3
-rw-r--r--main/krb5/APKBUILD12
-rw-r--r--main/krb5/mit-krb5_krb5-config_LDFLAGS.patch12
-rw-r--r--main/kyua/APKBUILD14
-rw-r--r--main/lame/APKBUILD29
-rw-r--r--main/lame/id3tagfix.patch29
-rw-r--r--main/lame/lame.pc.in10
-rw-r--r--main/lang/APKBUILD4
-rw-r--r--main/lcms2/APKBUILD54
-rw-r--r--main/ldapvi/APKBUILD18
-rw-r--r--main/ldb/APKBUILD27
-rw-r--r--main/ldb/strtoull.patch89
-rw-r--r--main/lddtree/0001-use-musl-ldso-conf.patch79
-rw-r--r--main/lddtree/APKBUILD23
-rw-r--r--main/ldns/APKBUILD15
-rw-r--r--main/ldoc/APKBUILD24
-rw-r--r--main/ldoc/lua5.4.patch10
-rw-r--r--main/less/APKBUILD13
-rw-r--r--main/less/CVE-2024-32487.patch67
-rw-r--r--main/leveldb/APKBUILD38
-rw-r--r--main/lftp/APKBUILD4
-rw-r--r--main/libaio/APKBUILD16
-rw-r--r--main/libaio/libaio-optional-werror.patch31
-rw-r--r--main/libarchive/APKBUILD25
-rw-r--r--main/libart-lgpl/APKBUILD2
-rw-r--r--main/libasr/0002-Replace-missing-res_randomid-with-the-more-secure-ar.patch64
-rw-r--r--main/libasr/APKBUILD40
-rw-r--r--main/libassuan/APKBUILD11
-rw-r--r--main/libatomic_ops/APKBUILD50
-rw-r--r--main/libavif/APKBUILD66
-rw-r--r--main/libax25/APKBUILD42
-rw-r--r--main/libax25/musl.patch10
-rw-r--r--main/libbpf/10-consolidate-lib-dirs.patch18
-rw-r--r--main/libbpf/APKBUILD41
-rw-r--r--main/libbsd/APKBUILD12
-rw-r--r--main/libbsd/disable-fpurge-test.patch22
-rw-r--r--main/libburn/APKBUILD9
-rw-r--r--main/libc-dev/APKBUILD59
-rw-r--r--main/libc-dev/sgidefs.h13
-rw-r--r--main/libcap-ng/APKBUILD8
-rw-r--r--main/libcap/APKBUILD49
-rw-r--r--main/libcbor/APKBUILD7
-rw-r--r--main/libclc/APKBUILD52
-rw-r--r--main/libconfig/APKBUILD6
-rw-r--r--main/libdaemon/APKBUILD7
-rw-r--r--main/libdbi/APKBUILD8
-rw-r--r--main/libde265/APKBUILD57
-rw-r--r--main/libde265/disable_tools.patch31
-rw-r--r--main/libdnet/APKBUILD17
-rw-r--r--main/libdrm/APKBUILD37
-rw-r--r--main/libdwarf/APKBUILD53
-rw-r--r--main/libeatmydata/APKBUILD38
-rw-r--r--main/libeatmydata/lfs64.patch22
-rw-r--r--main/libeconf/0001-Fix-build-with-musl-libc-on-ppc64le.patch29
-rw-r--r--main/libeconf/APKBUILD14
-rw-r--r--main/libedit/APKBUILD17
-rw-r--r--main/libepoxy/APKBUILD6
-rw-r--r--main/libestr/APKBUILD11
-rw-r--r--main/libev/APKBUILD4
-rw-r--r--main/libevent/APKBUILD5
-rw-r--r--main/libexecinfo/10-execinfo.patch64
-rw-r--r--main/libexecinfo/20-define-gnu-source.patch24
-rw-r--r--main/libexecinfo/30-linux-makefile.patch44
-rw-r--r--main/libexecinfo/APKBUILD50
-rw-r--r--main/libfastjson/APKBUILD12
-rw-r--r--main/libffi/APKBUILD23
-rw-r--r--main/libffi/pax-dlmmap.patch120
-rw-r--r--main/libfido2/APKBUILD8
-rw-r--r--main/libfontenc/APKBUILD15
-rw-r--r--main/libgcrypt/APKBUILD11
-rw-r--r--main/libgpg-error/APKBUILD15
-rw-r--r--main/libical/APKBUILD6
-rw-r--r--main/libice/APKBUILD27
-rw-r--r--main/libid3tag/APKBUILD34
-rw-r--r--main/libid3tag/CVE-2008-2109.patch11
-rw-r--r--main/libidn/APKBUILD12
-rw-r--r--main/libidn/format-security.patch129
-rw-r--r--main/libidn2/APKBUILD10
-rw-r--r--main/libimagequant/APKBUILD41
-rw-r--r--main/libisoburn/APKBUILD19
-rw-r--r--main/libisofs/APKBUILD7
-rw-r--r--main/libjpeg-turbo/APKBUILD57
-rw-r--r--main/libkcapi/APKBUILD88
-rw-r--r--main/libkcapi/no-werror.patch13
-rw-r--r--main/libks/APKBUILD19
-rw-r--r--main/libksba/APKBUILD11
-rw-r--r--main/liblockfile/APKBUILD4
-rw-r--r--main/liblogging/APKBUILD23
-rw-r--r--main/liblognorm/APKBUILD14
-rw-r--r--main/libmaxminddb/APKBUILD11
-rw-r--r--[-rwxr-xr-x]main/libmaxminddb/libmaxminddb.confd5
-rwxr-xr-xmain/libmaxminddb/libmaxminddb.cron5
-rwxr-xr-xmain/libmaxminddb/libmaxminddb.post-upgrade10
-rw-r--r--main/libmd/APKBUILD6
-rw-r--r--main/libmemcached/APKBUILD61
-rw-r--r--main/libmemcached/fix-ppc64le-ptr-check.patch20
-rw-r--r--main/libmemcached/musl-fixes.patch58
-rw-r--r--main/libmilter/APKBUILD12
-rw-r--r--main/libmnl/APKBUILD9
-rw-r--r--main/libnet/APKBUILD11
-rw-r--r--main/libnet/fix-types.patch15
-rw-r--r--main/libnetfilter_acct/APKBUILD12
-rw-r--r--main/libnetfilter_conntrack/APKBUILD27
-rw-r--r--main/libnetfilter_conntrack/fix_build_with_kernel_5.15_and_musl.patch56
-rw-r--r--main/libnetfilter_cthelper/APKBUILD10
-rw-r--r--main/libnetfilter_cttimeout/APKBUILD10
-rw-r--r--main/libnetfilter_log/APKBUILD10
-rw-r--r--main/libnetfilter_queue/APKBUILD7
-rw-r--r--main/libnfnetlink/APKBUILD13
-rw-r--r--main/libnftnl/APKBUILD15
-rw-r--r--main/libnl/APKBUILD48
-rw-r--r--main/libnl/fix-includes.patch25
-rw-r--r--main/libnl/fix-strerror_r.patch50
-rw-r--r--main/libnl/libnl-1.1-flags.patch11
-rw-r--r--main/libnl/libnl-1.1-vlan-header.patch80
-rw-r--r--main/libnl3/APKBUILD18
-rw-r--r--main/libnl3/fix-tests.patch46
-rw-r--r--main/libnvme/APKBUILD60
-rw-r--r--main/libnvme/doc-test.patch14
-rw-r--r--main/libnvme/sysfs-test-getc-eof.patch11
-rw-r--r--main/libogg/APKBUILD30
-rw-r--r--main/libotr/APKBUILD13
-rw-r--r--main/libotr/socklen-t.patch12
-rw-r--r--main/libpaper/APKBUILD38
-rw-r--r--main/libpcap/APKBUILD6
-rw-r--r--main/libpciaccess/APKBUILD30
-rw-r--r--main/libpciaccess/limits_h.patch10
-rw-r--r--main/libpng/APKBUILD33
-rw-r--r--main/libpng/dont-run-pngtest.patch12
-rw-r--r--main/libpng/libpng-fix-arm-neon.patch8
-rw-r--r--main/libpri/APKBUILD31
-rw-r--r--main/libpsl/APKBUILD44
-rw-r--r--main/libpthread-stubs/APKBUILD38
-rw-r--r--main/librelp/APKBUILD31
-rw-r--r--main/librelp/implicit-decl.patch12
-rw-r--r--main/libresample/APKBUILD6
-rw-r--r--main/libretls/APKBUILD11
-rw-r--r--main/librsync/APKBUILD29
-rw-r--r--main/librtlsdr/APKBUILD34
-rw-r--r--main/librtlsdr/correct_udev_rules_path.patch11
-rw-r--r--main/libsamplerate/APKBUILD4
-rw-r--r--main/libseccomp/APKBUILD8
-rw-r--r--main/libseccomp/tests-11-basic-errors-support-older-kernels.patch108
-rw-r--r--main/libsecret/APKBUILD16
-rw-r--r--main/libshout/APKBUILD11
-rw-r--r--main/libsm/APKBUILD18
-rw-r--r--main/libsndfile/APKBUILD26
-rw-r--r--main/libsodium/APKBUILD16
-rw-r--r--main/libspf2/APKBUILD8
-rw-r--r--main/libspf2/CVE-2023-42118.patch26
-rw-r--r--main/libspf2/implicit.patch13
-rw-r--r--main/libsrtp/APKBUILD19
-rw-r--r--main/libssh2/APKBUILD33
-rw-r--r--main/libssh2/add-strict-KEX-to-fix-CVE-2023-48795-Terrapin-Attack.patch436
-rw-r--r--main/libtasn1/APKBUILD21
-rw-r--r--main/libtheora/APKBUILD4
-rw-r--r--main/libtirpc/APKBUILD27
-rw-r--r--main/libtirpc/soname-suffix.patch12
-rw-r--r--main/libtool/APKBUILD2
-rw-r--r--main/libtxc_dxtn/APKBUILD39
-rw-r--r--main/libucontext/0001-common-trampoline-Ensure-omission-of-frame-pointer.patch47
-rw-r--r--main/libucontext/APKBUILD6
-rw-r--r--main/libucontext0/APKBUILD31
-rw-r--r--main/libunistring/APKBUILD4
-rw-r--r--main/libunwind/APKBUILD27
-rw-r--r--main/libunwind/Remove-the-useless-endina.h-for-loongarch64.patch25
-rw-r--r--main/libunwind/fix-libunwind-pc-in.patch3
-rw-r--r--main/libunwind/force-enable-man.patch25
-rw-r--r--main/libunwind/musl-mips-fix.patch95
-rw-r--r--main/libunwind/ppc64-musl.patch11
-rw-r--r--main/liburing/APKBUILD15
-rw-r--r--main/libusb-compat/APKBUILD17
-rw-r--r--main/libusb-compat/fix-headers.patch10
-rw-r--r--main/libusb/APKBUILD6
-rw-r--r--main/libutempter/APKBUILD8
-rw-r--r--main/libuv/APKBUILD13
-rw-r--r--main/libva/APKBUILD7
-rw-r--r--main/libvdpau/APKBUILD6
-rw-r--r--main/libverto/APKBUILD7
-rw-r--r--main/libvorbis/APKBUILD7
-rw-r--r--main/libwebp/APKBUILD37
-rw-r--r--main/libwebsockets/APKBUILD17
-rw-r--r--main/libx11/APKBUILD15
-rw-r--r--main/libxau/APKBUILD19
-rw-r--r--main/libxaw/APKBUILD23
-rw-r--r--main/libxcb/APKBUILD8
-rw-r--r--main/libxcomposite/APKBUILD17
-rw-r--r--main/libxcursor/APKBUILD9
-rw-r--r--main/libxdamage/APKBUILD13
-rw-r--r--main/libxdmcp/APKBUILD13
-rw-r--r--main/libxext/APKBUILD18
-rw-r--r--main/libxfixes/APKBUILD16
-rw-r--r--main/libxfont/APKBUILD34
-rw-r--r--main/libxft/APKBUILD12
-rw-r--r--main/libxft/emoji.patch861
-rw-r--r--main/libxi/APKBUILD12
-rw-r--r--main/libxinerama/APKBUILD16
-rw-r--r--main/libxkbcommon/APKBUILD38
-rw-r--r--main/libxkbcommon/allow-skip-test.patch84
-rw-r--r--main/libxkbfile/APKBUILD22
-rw-r--r--main/libxml2/APKBUILD61
-rw-r--r--main/libxml2/libxml2-2.9.8-python3-unicode-errors.patch34
-rw-r--r--main/libxmu/APKBUILD33
-rw-r--r--main/libxpm/APKBUILD26
-rw-r--r--main/libxrandr/APKBUILD11
-rw-r--r--main/libxrender/APKBUILD24
-rw-r--r--main/libxshmfence/APKBUILD13
-rw-r--r--main/libxslt/APKBUILD36
-rw-r--r--main/libxt/APKBUILD18
-rw-r--r--main/libxtst/APKBUILD25
-rw-r--r--main/libxv/APKBUILD26
-rw-r--r--main/libxvmc/APKBUILD34
-rw-r--r--main/libxxf86vm/APKBUILD29
-rw-r--r--main/lighttpd/APKBUILD63
-rw-r--r--main/lighttpd/lighttpd.conf40
-rw-r--r--main/linenoise/APKBUILD11
-rw-r--r--main/links/APKBUILD13
-rw-r--r--main/links/configure.patch57
-rw-r--r--main/linux-firmware/APKBUILD171
-rw-r--r--main/linux-headers/APKBUILD62
-rw-r--r--main/linux-headers/include-uapi-linux-swab-Fix-potentially-missing-__always_inline.patch55
-rw-r--r--main/linux-lts/0001-powerpc-boot-wrapper-Add-z-notext-flag-for-ppc64le.patch28
-rw-r--r--main/linux-lts/0002-x86-Compress-vmlinux-with-zstd-19-instead-of-22.patch30
-rw-r--r--main/linux-lts/0003-kexec-add-kexec_load_disabled-boot-option.patch36
-rw-r--r--main/linux-lts/0004-objtool-respect-AWK-setting.patch26
-rw-r--r--main/linux-lts/0005-powerpc-config-defang-gcc-check-for-stack-protector-.patch (renamed from main/linux-lts/0001-powerpc-config-defang-gcc-check-for-stack-protector-.patch)15
-rw-r--r--main/linux-lts/APKBUILD217
-rw-r--r--main/linux-lts/lts.aarch64.config429
-rw-r--r--main/linux-lts/lts.armv7.config281
-rw-r--r--main/linux-lts/lts.loongarch64.config885
-rw-r--r--main/linux-lts/lts.ppc64le.config85
-rw-r--r--main/linux-lts/lts.s390x.config111
-rw-r--r--main/linux-lts/lts.x86.config317
-rw-r--r--main/linux-lts/lts.x86_64.config641
-rw-r--r--main/linux-lts/ppc-export_mmu_feature_keys_as_non-GPL.patch42
-rw-r--r--main/linux-lts/virt.aarch64.config160
-rw-r--r--main/linux-lts/virt.armv7.config117
-rw-r--r--main/linux-lts/virt.ppc64le.config121
-rw-r--r--main/linux-lts/virt.x86.config149
-rw-r--r--main/linux-lts/virt.x86_64.config171
-rw-r--r--main/linux-lts/vmlinux-zstd.patch18
-rw-r--r--main/linux-octeon/APKBUILD219
-rw-r--r--main/linux-octeon/config-octeon.mips643296
-rw-r--r--main/linux-octeon/kvm-fallthrough.patch13
-rw-r--r--main/linux-octeon/octeon-disable-devicetree-deprecation-warning.patch30
-rw-r--r--main/linux-octeon/octeon-rd_name.patch123
-rw-r--r--main/linux-octeon/ubnt-e200-sdio-underclock.patch78
-rw-r--r--main/linux-pam/APKBUILD91
-rw-r--r--main/linux-pam/base-account.pamd3
-rw-r--r--main/linux-pam/base-auth.pamd17
-rw-r--r--main/linux-pam/base-password.pamd6
-rw-r--r--main/linux-pam/base-session-noninteractive.pamd5
-rw-r--r--main/linux-pam/base-session.pamd14
-rw-r--r--main/linux-pam/login.pamd6
-rw-r--r--main/linux-pam/other.pamd12
-rw-r--r--main/linux-pam/pam_namespace.patch39
-rw-r--r--main/linux-pam/su.pamd10
-rw-r--r--main/linux-pam/system-local-login.pamd6
-rw-r--r--main/linux-pam/system-login.pamd23
-rw-r--r--main/linux-rpi/APKBUILD182
-rw-r--r--main/linux-rpi/common-changes.config (renamed from main/linux-rpi/config-changes-rpi.armhf)3
l---------main/linux-rpi/config-changes-rpi.aarch641
l---------main/linux-rpi/config-changes-rpi.armv71
l---------main/linux-rpi/config-changes-rpi2.armhf1
l---------main/linux-rpi/config-changes-rpi2.armv71
l---------main/linux-rpi/config-changes-rpi4.aarch641
l---------main/linux-rpi/config-changes-rpi4.armv71
-rw-r--r--main/lksctp-tools/APKBUILD9
-rw-r--r--main/lld/APKBUILD74
-rw-r--r--main/llvm-runtimes/APKBUILD153
-rw-r--r--main/llvm-runtimes/armv6-arch.patch.noauto18
-rw-r--r--main/llvm-runtimes/compiler-rt-lsan-dtp-offset.patch70
-rw-r--r--main/llvm-runtimes/compiler-rt-ppc-fixes.patch118
-rw-r--r--main/llvm-runtimes/compiler-rt-sanitizer-supported-arch.patch (renamed from main/compiler-rt/sanitizer-supported-arch.patch)10
-rw-r--r--main/llvm-runtimes/fix-msan-with-musl.patch37
-rw-r--r--main/llvm-runtimes/libunwind-link-libssp.patch22
-rw-r--r--main/llvm13/APKBUILD298
-rw-r--r--main/llvm13/fix-LLVMConfig-cmake-install-prefix.patch24
-rw-r--r--main/llvm15/0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch (renamed from main/llvm14/0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch)4
-rw-r--r--main/llvm15/APKBUILD (renamed from main/llvm14/APKBUILD)195
-rw-r--r--main/llvm15/allocscore.patch20
-rw-r--r--main/llvm15/fix-memory-mf_exec-on-aarch64.patch (renamed from main/llvm13/fix-memory-mf_exec-on-aarch64.patch)4
-rw-r--r--main/llvm15/install-prefix.patch (renamed from main/llvm14/install-prefix.patch)5
-rw-r--r--main/llvm15/lfs64.patch120
-rw-r--r--main/llvm15/llvm-stack-size.patch34
-rw-r--r--main/llvm15/llvm15.pre-upgrade17
-rw-r--r--main/llvm15/rust-feature-tables.patch31
-rw-r--r--main/llvm16/0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch (renamed from main/llvm13/0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch)4
-rw-r--r--main/llvm16/9001-CMake-Quote-variables-where-TARGET-may-be-a-value.patch143
-rw-r--r--main/llvm16/9002-LV-Convert-consecutive-ptr-uniforms.ll-to-use-opaque.patch557
-rw-r--r--main/llvm16/9003-LV-Add-test-where-pointer-is-incorrectly-marked-as-u.patch55
-rw-r--r--main/llvm16/9004-LV-Don-t-consider-pointer-as-uniform-if-it-is-also-s.patch129
-rw-r--r--main/llvm16/9011-AArch64CompressJumpTables-prevent-over-compression.patch165
-rw-r--r--main/llvm16/APKBUILD362
-rw-r--r--main/llvm16/LoongArch-Assume-no-op-addrspacecasts-by-default.patch84
-rw-r--r--main/llvm16/allocscore.patch20
-rw-r--r--main/llvm16/fix-memory-mf_exec-on-aarch64.patch (renamed from main/llvm14/fix-memory-mf_exec-on-aarch64.patch)14
-rw-r--r--main/llvm16/install-prefix.patch31
-rw-r--r--main/llvm16/llvm-stack-size.patch23
-rw-r--r--main/llvm16/ppc64le-miscompile.patch81
-rw-r--r--main/llvm16/rust-feature-tables.patch31
-rw-r--r--main/llvm17/0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch22
-rw-r--r--main/llvm17/0001-Revert-Pseudo-Probe-Make-.pseudo_probe-GC-able.patch132
-rw-r--r--main/llvm17/APKBUILD330
-rw-r--r--main/llvm17/allocscore.patch20
-rw-r--r--main/llvm17/fix-hexagon-tests.patch36
-rw-r--r--main/llvm17/fix-memory-mf_exec-on-aarch64.patch27
-rw-r--r--main/llvm17/install-prefix.patch31
-rw-r--r--main/llvm17/llvm-stack-size.patch23
-rw-r--r--main/llvm17/rust-feature-tables.patch31
-rw-r--r--main/llvm17/workaround-codegen-riscv-xtheadmempair-miscompile.patch19
-rw-r--r--main/lm-sensors/APKBUILD45
-rw-r--r--main/lm-sensors/lm-sensors.post-upgrade12
-rw-r--r--main/lmdb/APKBUILD16
-rw-r--r--main/lmdb/cacheflush.patch12
-rw-r--r--main/lmdb/lmdb-make.patch4
-rw-r--r--main/lockfile-progs/APKBUILD4
-rw-r--r--main/log4cplus/APKBUILD54
-rw-r--r--main/logcheck/APKBUILD24
-rw-r--r--main/logcheck/logcheck.post-install2
-rw-r--r--main/logcheck/run-lock.patch16
-rw-r--r--main/logrotate/APKBUILD19
-rw-r--r--main/logrotate/syslog1
-rw-r--r--main/logtail/APKBUILD6
-rw-r--r--main/lsof/APKBUILD31
-rw-r--r--main/lsof/hassecurity.patch11
-rw-r--r--main/lsyncd/APKBUILD18
-rw-r--r--main/ltrace/APKBUILD4
-rw-r--r--main/lttng-ust/APKBUILD11
-rw-r--r--main/lua-alt-getopt/APKBUILD7
-rw-r--r--main/lua-aports/APKBUILD8
-rw-r--r--main/lua-asn1/APKBUILD25
-rw-r--r--main/lua-augeas/APKBUILD5
-rw-r--r--main/lua-b64/APKBUILD3
-rw-r--r--main/lua-bit32/APKBUILD2
-rw-r--r--main/lua-busted/APKBUILD86
-rw-r--r--main/lua-busted/use-cjson.patch8
-rw-r--r--main/lua-cjson/APKBUILD3
-rw-r--r--main/lua-cliargs/APKBUILD51
-rw-r--r--main/lua-cliargs/support-cjson.patch27
-rw-r--r--main/lua-cmsgpack/APKBUILD3
-rw-r--r--main/lua-cqueues/APKBUILD5
-rw-r--r--main/lua-curl/APKBUILD3
-rw-r--r--main/lua-dbi/APKBUILD8
-rw-r--r--main/lua-discount/APKBUILD12
-rw-r--r--main/lua-dns/APKBUILD10
-rw-r--r--main/lua-evdev/APKBUILD15
-rw-r--r--main/lua-expat/APKBUILD13
-rw-r--r--main/lua-feedparser/APKBUILD7
-rw-r--r--main/lua-file-magic/APKBUILD5
-rw-r--r--main/lua-filesize/APKBUILD1
-rw-r--r--main/lua-filesystem/APKBUILD17
-rw-r--r--main/lua-gversion/APKBUILD1
-rw-r--r--main/lua-hashids/APKBUILD2
-rw-r--r--main/lua-iconv/APKBUILD15
-rw-r--r--main/lua-inspect/APKBUILD1
-rw-r--r--main/lua-json4/APKBUILD1
-rw-r--r--main/lua-ldap/APKBUILD8
-rw-r--r--main/lua-ldbus/APKBUILD58
-rw-r--r--main/lua-luassert/APKBUILD44
-rw-r--r--main/lua-luaxml/APKBUILD2
-rw-r--r--main/lua-lub/APKBUILD1
-rw-r--r--main/lua-lustache/APKBUILD1
-rw-r--r--main/lua-lxc/APKBUILD2
-rw-r--r--main/lua-lyaml/APKBUILD7
-rw-r--r--main/lua-lzlib/APKBUILD3
-rw-r--r--main/lua-lzmq/APKBUILD22
-rw-r--r--main/lua-maxminddb/APKBUILD3
-rw-r--r--main/lua-md5/APKBUILD3
-rw-r--r--main/lua-mediator/APKBUILD42
-rw-r--r--main/lua-microlight/APKBUILD1
-rw-r--r--main/lua-mosquitto/0001-handle-lookup-errors-when-connecting.patch49
-rw-r--r--main/lua-mosquitto/APKBUILD13
-rw-r--r--main/lua-mqtt-publish/APKBUILD14
-rw-r--r--main/lua-mqtt-publish/restore-sigpipe-handler.patch23
-rw-r--r--main/lua-openrc/APKBUILD6
-rw-r--r--main/lua-optarg/APKBUILD10
-rw-r--r--main/lua-ossl/APKBUILD16
-rw-r--r--main/lua-pc/APKBUILD3
-rw-r--r--main/lua-penlight/APKBUILD17
-rw-r--r--main/lua-posix/APKBUILD9
-rw-r--r--main/lua-posixtz/APKBUILD3
-rw-r--r--main/lua-pty/APKBUILD15
-rw-r--r--main/lua-resty-core/APKBUILD7
-rw-r--r--main/lua-resty-lrucache/APKBUILD11
-rw-r--r--main/lua-rex/APKBUILD28
-rw-r--r--main/lua-say/APKBUILD42
-rw-r--r--main/lua-schema/APKBUILD2
-rw-r--r--main/lua-sec/APKBUILD9
-rw-r--r--main/lua-soap/APKBUILD27
-rw-r--r--main/lua-socket/0001-Create-socket-on-first-sendto-if-family-agnostic-udp.patch49
-rw-r--r--main/lua-socket/APKBUILD27
-rw-r--r--main/lua-socket/git.patch6609
-rw-r--r--main/lua-socket/lua-cflags.patch18
-rw-r--r--main/lua-sql/APKBUILD21
-rw-r--r--main/lua-sqlite/APKBUILD6
-rw-r--r--main/lua-stdlib/APKBUILD7
-rw-r--r--main/lua-stringy/APKBUILD5
-rw-r--r--main/lua-struct/APKBUILD4
-rw-r--r--main/lua-subprocess/APKBUILD73
-rw-r--r--main/lua-system/APKBUILD62
-rw-r--r--main/lua-term/APKBUILD53
-rw-r--r--main/lua-uuid/APKBUILD12
-rw-r--r--main/lua-xctrl/APKBUILD2
-rw-r--r--main/lua-yaml/APKBUILD27
-rw-r--r--main/lua5.1/APKBUILD13
-rw-r--r--main/lua5.2/APKBUILD51
-rw-r--r--main/lua5.3/APKBUILD12
-rw-r--r--main/lua5.4/APKBUILD20
-rw-r--r--main/lua5.4/CVE-2022-28805.patch23
-rw-r--r--main/lua5.4/fix-double-free.patch56
-rw-r--r--main/luajit/APKBUILD33
-rw-r--r--main/luajit/fix-compilation-error-on-ppc.patch26
-rw-r--r--main/luajit/fix-lual_newstate-returns-null-on-ppc64le.patch24
-rw-r--r--main/luajit/fix-tests-alpine.patch3
-rw-r--r--main/lutok/APKBUILD15
-rw-r--r--main/lvm2/0001-lvresize-use-POSIX-shell.patch124
-rw-r--r--main/lvm2/APKBUILD133
-rw-r--r--main/lvm2/default-udev-sync.patch15
-rw-r--r--main/lvm2/fix-stdio-usage.patch67
-rw-r--r--main/lvm2/library_dir-default-config.patch2
-rw-r--r--main/lvm2/lvm.initd12
-rw-r--r--main/lvm2/lvmlockd.initd11
-rw-r--r--main/lvm2/mallinfo.patch11
-rw-r--r--main/lvm2/mlockall-default-config.patch22
-rw-r--r--main/lvm2/no-systemd.patch13
-rw-r--r--main/lxc-templates-legacy/0001-Update-alpine-keys-URI-fix-package-verification.patch66
-rw-r--r--main/lxc-templates-legacy/0001-alpine-fix-arch-and-enable-mips64-and-s390x.patch85
-rw-r--r--main/lxc-templates-legacy/0002-alpine-use-https-repository-by-default.patch25
-rw-r--r--main/lxc-templates-legacy/0003-alpine-add-riscv64-key.patch26
-rw-r--r--main/lxc-templates-legacy/0004-alpine-only-create-missing-device-node.patch (renamed from main/lxc-templates-legacy/alpine-skip-mknod-when-existing.patch)37
-rw-r--r--main/lxc-templates-legacy/APKBUILD23
-rw-r--r--main/lxc-templates-legacy/add-mips64-s390x.patch15
-rw-r--r--main/lxc-templates-legacy/add-riscv64-key.patch12
-rw-r--r--main/lxc/APKBUILD105
-rw-r--r--main/lynx/APKBUILD12
-rw-r--r--main/lynx/CVE-2021-38165.patch45
-rw-r--r--main/lz4/APKBUILD37
-rw-r--r--main/lz4/CVE-2021-3520.patch22
-rw-r--r--main/lzip/APKBUILD4
-rw-r--r--main/lzo/APKBUILD4
-rw-r--r--main/m4/0001-test-execute-main.c-set-default-handler-for-SIGPIPE-.patch37
-rw-r--r--main/m4/APKBUILD12
-rw-r--r--main/macifrename/APKBUILD11
-rw-r--r--main/mailcap/APKBUILD6
-rw-r--r--main/mailx/00-Makefiles.patch88
-rw-r--r--main/mailx/02-Base-fixes-1.patch178
-rw-r--r--main/mailx/APKBUILD51
-rw-r--r--main/mailx/CCEQ.patch17
-rw-r--r--main/mailx/mailx-8.1.1.patch31
-rw-r--r--main/mailx/mailx-gcc4.patch12
-rw-r--r--main/mailx/musl-fix.patch126
-rw-r--r--main/mailx/respect-flags.patch15
-rw-r--r--main/make/APKBUILD15
-rw-r--r--main/makedepend/APKBUILD19
-rw-r--r--main/man-pages-posix/APKBUILD3
-rw-r--r--main/man-pages/APKBUILD42
-rw-r--r--main/man-pages/gnumakefile-shell.patch13
-rw-r--r--main/man-pages/no-install-T.patch33
-rw-r--r--main/mandoc/APKBUILD25
-rw-r--r--main/mandoc/dynamic-tagfile-support.patch131
-rw-r--r--main/mandoc/mandoc-apropos.post-deinstall (renamed from main/mandoc/mandoc.post-deinstall)0
-rw-r--r--main/mandoc/mandoc-apropos.trigger3
-rw-r--r--main/mariadb-connector-c/APKBUILD26
-rw-r--r--main/mariadb-connector-c/incorrect-sys-poll.patch11
-rw-r--r--main/mariadb-connector-c/unused-parameter.patch25
-rw-r--r--main/mariadb/APKBUILD222
-rw-r--r--main/mariadb/gcc13.patch40
-rw-r--r--main/mariadb/lfs64.patch936
-rwxr-xr-x[-rw-r--r--]main/mariadb/mariadb.initd0
-rw-r--r--main/mariadb/mariadb.pre-install2
-rw-r--r--main/mariadb/revert-c432c9ef.patch23
-rw-r--r--main/mawk/APKBUILD12
-rw-r--r--main/mbedtls/APKBUILD43
-rw-r--r--main/mc/APKBUILD8
-rw-r--r--main/mc/fix-cchar_t.patch11
-rw-r--r--main/mdadm/APKBUILD8
-rw-r--r--main/mdadm/lfs64.patch641
-rw-r--r--main/mdev-conf/APKBUILD28
-rw-r--r--main/mdevd/APKBUILD20
-rw-r--r--main/mdevd/mdevd-init.initd2
-rw-r--r--main/memcached/APKBUILD9
-rw-r--r--main/mesa/0001-radeonsi-On-Aarch64-force-persistent-buffers-to-GTT.patch38
-rw-r--r--main/mesa/APKBUILD287
-rw-r--r--main/mesa/add-use-elf-tls.patch29
-rw-r--r--main/mesa/disable-rgb10-by-default.patch25
-rw-r--r--main/mesa/enable-mali-t600.patch27
-rw-r--r--main/mesa/musl-fix-includes.patch13
-rw-r--r--main/mesa/no-unlink-megadrivers.patch24
-rw-r--r--main/meson/APKBUILD33
-rwxr-xr-x[-rw-r--r--]main/meson/abuild-meson54
-rw-r--r--main/mg/APKBUILD8
-rw-r--r--main/mini_httpd/APKBUILD14
-rw-r--r--main/minicom/APKBUILD13
-rw-r--r--main/mkfontscale/APKBUILD4
-rw-r--r--main/mkfontscale/mkfontscale.trigger4
-rw-r--r--main/mkinitfs/0001-mkinitfs.in-ensure-when-run-in-chroot-that-correct-k.patch39
-rw-r--r--main/mkinitfs/APKBUILD26
-rw-r--r--main/mkinitfs/mkinitfs.trigger48
-rw-r--r--main/mksh/APKBUILD8
-rw-r--r--main/mlmmj/APKBUILD16
-rw-r--r--main/mlmmj/gcc-10.patch22
-rw-r--r--main/monit/APKBUILD18
-rw-r--r--main/monit/monit.confd8
-rw-r--r--main/monit/monit.initd47
-rw-r--r--main/mosh/APKBUILD79
-rw-r--r--main/mosh/fix-makefile.am.patch10
-rw-r--r--main/mosh/fix-ppc64le-build-with-musl.patch4
-rw-r--r--main/mosquitto/APKBUILD23
-rw-r--r--main/mpc1/APKBUILD10
-rw-r--r--main/mpdecimal/10-pthreads.patch32
-rw-r--r--main/mpdecimal/APKBUILD11
-rw-r--r--main/mpfr4/APKBUILD22
-rw-r--r--main/mpg123/APKBUILD5
-rw-r--r--main/mqtt-exec/0001-Let-library-generate-client-id-when-unset.patch68
-rw-r--r--main/mqtt-exec/0001-authentication-expose-authentication-with-credential.patch89
-rw-r--r--main/mqtt-exec/APKBUILD31
-rw-r--r--main/mqtt-exec/mqtt-exec.confd28
-rw-r--r--main/mqtt-exec/mqtt-exec.initd14
-rw-r--r--main/mqtt-exec/restore-default-sigpipe-handler.patch17
-rw-r--r--main/mrtg/APKBUILD3
-rw-r--r--main/mt-st/APKBUILD9
-rw-r--r--main/mtd-utils/APKBUILD11
-rw-r--r--main/mtools/APKBUILD8
-rw-r--r--main/mtx/APKBUILD35
-rw-r--r--main/multipath-tools/0001-Disable-Werror-and-O2.patch2
-rw-r--r--main/multipath-tools/APKBUILD36
-rw-r--r--main/multipath-tools/fix-basename.patch14
-rw-r--r--main/multipath-tools/multipath.initd2
-rw-r--r--main/multipath-tools/multipathd.confd4
-rw-r--r--main/multipath-tools/multipathd.initd13
-rw-r--r--main/musl-fts/APKBUILD47
-rw-r--r--main/musl-legacy-error/APKBUILD21
-rw-r--r--main/musl-legacy-error/error.h60
-rw-r--r--main/musl-locales/APKBUILD40
-rw-r--r--main/musl-locales/add-all-available-locales.patch24
-rw-r--r--main/musl-nscd/APKBUILD10
-rw-r--r--main/musl-nscd/musl-nscd.initd5
-rw-r--r--main/musl-nscd/musl-nscd.pre-install2
-rw-r--r--main/musl-obstack/APKBUILD4
-rw-r--r--main/musl/APKBUILD75
-rw-r--r--main/nagios-plugins/APKBUILD22
-rw-r--r--main/nagios/APKBUILD11
-rw-r--r--main/nano/APKBUILD16
-rw-r--r--main/nasm/APKBUILD9
-rw-r--r--main/ncdu/APKBUILD10
-rw-r--r--main/ncftp/APKBUILD2
-rw-r--r--main/ncurses/APKBUILD186
-rw-r--r--main/ncurses/cleanup-pkgconfig-ldflags.patch26
-rw-r--r--main/ndisc6/APKBUILD11
-rw-r--r--main/ndisc6/rdnssd-fix-merge-hook-regex.patch17
-rw-r--r--main/neon/APKBUILD26
-rw-r--r--main/net-snmp/0001-snmpd-always-exit-after-displaying-usage.patch50
-rw-r--r--main/net-snmp/APKBUILD39
-rw-r--r--main/net-snmp/fix-fd_mask.patch11
-rw-r--r--main/net-snmp/fix-pkgconf-version.patch13
-rw-r--r--main/net-tools/0001-Revert-sscanf-pattern-is-Lu-not-llu-for-long-long-un.patch45
-rw-r--r--main/net-tools/APKBUILD12
-rw-r--r--main/net-tools/git.patch26170
-rw-r--r--main/net-tools/musl-fixes.patch94
-rw-r--r--main/netcat-openbsd/0001-port-to-linux-with-libsd.patch438
-rw-r--r--main/netcat-openbsd/0002-connect-timeout.patch121
-rw-r--r--main/netcat-openbsd/0003-get-sev-by-name.patch34
-rw-r--r--main/netcat-openbsd/0004-send-crlf.patch173
-rw-r--r--main/netcat-openbsd/0005-quit-timer.patch140
-rw-r--r--main/netcat-openbsd/0006-udp-scan-timeout.patch60
-rw-r--r--main/netcat-openbsd/0007-verbose-numeric-port.patch58
-rw-r--r--main/netcat-openbsd/0008-dccp-support.patch262
-rw-r--r--main/netcat-openbsd/0009-serialized-handling-multiple-clients.patch75
-rw-r--r--main/netcat-openbsd/0010-misc-failures-and-features.patch404
-rw-r--r--main/netcat-openbsd/APKBUILD51
-rw-r--r--main/netcat-openbsd/b64.patch14
-rw-r--r--main/netcf/APKBUILD24
-rw-r--r--main/nettle/APKBUILD11
-rw-r--r--main/network-extras/APKBUILD5
-rw-r--r--main/newt/APKBUILD22
-rw-r--r--main/newt/fix-includes.patch8
-rw-r--r--main/nfdump/APKBUILD33
-rw-r--r--main/nfs-utils/APKBUILD59
-rw-r--r--main/nfs-utils/include-unistd.patch20
-rw-r--r--main/nfs-utils/musl-stat64.patch50
-rw-r--r--main/nfs-utils/nfs.initd2
-rw-r--r--main/nfs-utils/nfsidmap.request-key.conf2
-rw-r--r--main/nftables/APKBUILD51
-rw-r--r--main/nftables/nftables.confd24
-rw-r--r--main/nftables/nftables.initd148
-rw-r--r--main/nftables/nftables.nft12
-rw-r--r--main/nghttp2/APKBUILD58
-rw-r--r--main/nghttp2/disable-failing-musl-unittest.patch13
-rw-r--r--main/nginx/APKBUILD182
-rw-r--r--main/nginx/CVE-2023-44487.patch71
-rw-r--r--main/nginx/naxsi~assert.patch23
-rw-r--r--main/nginx/naxsi~compat.patch133
-rw-r--r--main/nginx/naxsi~ff-header.patch62
-rw-r--r--main/nginx/nchan~dont-fail-redis-cluster-before-consensus.patch49
-rw-r--r--main/nginx/nchan~fix-redis-race-condition.patch270
-rw-r--r--main/nginx/nginx-module-vts~cast-key-length-to-correct-type.patch24
-rw-r--r--main/nginx/nginx-module-vts~fix-uri-overflow.patch30
-rw-r--r--main/nginx/nginx-module-vts~set-histogram-buckets-on-first-request.patch147
-rw-r--r--main/nginx/nginx-tests~fix-openssl-3.2.0-compatibility.patch113
-rw-r--r--main/nginx/nginx-upload-module~fix-nginx-compat.patch40
-rw-r--r--main/nginx/nginx-upload-module~fixes.patch620
-rw-r--r--main/nginx/nginx-upload-progress-module~fix-http2.patch44
-rw-r--r--main/nginx/nginx-upload-progress-module~fix.patch937
-rw-r--r--main/nginx/nginx.conf10
-rw-r--r--main/nginx/nginx.post-upgrade47
-rw-r--r--main/nginx/ngx-fancyindex~fix-404-on-fs-root.patch27
-rw-r--r--main/nginx/ngx-fancyindex~fix-missing-saturday.patch25
-rw-r--r--main/nginx/njs~nginx-1.20.x-compat.patch15
-rw-r--r--main/nginx/no-werror.patch11
-rw-r--r--main/nginx/stream.conf2
-rw-r--r--main/nginx/traffic-accounting-nginx-module~fix-memory-leak.patch253
-rw-r--r--main/nginx/zstd-nginx-module~fix-infinite-loop.patch47
-rw-r--r--main/ngircd/APKBUILD5
-rw-r--r--main/ngrep/APKBUILD4
-rw-r--r--main/ngtcp2/APKBUILD69
-rw-r--r--main/nikto/APKBUILD41
-rw-r--r--main/nikto/CVE-2018-11652.patch101
-rw-r--r--main/nikto/nikto.conf.base82
-rw-r--r--main/nload/APKBUILD19
-rw-r--r--main/nmap/APKBUILD21
-rw-r--r--main/nodejs/APKBUILD130
-rw-r--r--main/nodejs/base64.gyp15
-rw-r--r--main/nodejs/disable-running-gyp-on-shared-deps.patch8
-rw-r--r--main/nodejs/fix-build-with-system-c-ares.patch535
-rw-r--r--main/nodejs/nodejs.pc.in10
-rw-r--r--main/nodejs/system-ada.patch36
-rw-r--r--main/nodejs/system-base64.patch33
-rw-r--r--main/npth/APKBUILD12
-rw-r--r--main/nrpe/APKBUILD20
-rw-r--r--main/nsd/APKBUILD15
-rw-r--r--main/nspr/APKBUILD22
-rw-r--r--main/nspr/fix-getproto.patch13
-rw-r--r--main/nspr/fix-sgidefs-usage.patch40
-rw-r--r--main/nspr/lfs64.patch15
-rw-r--r--main/nss-pam-ldapd/APKBUILD9
-rw-r--r--main/nss/APKBUILD165
-rw-r--r--main/nss/gyp-config.patch49
-rw-r--r--main/nss/no-werror.patch12
-rw-r--r--main/nss/nss-config.in145
-rw-r--r--main/nss/nss-softokn.pc.in11
-rw-r--r--main/nss/nss-util.pc.in11
-rw-r--r--main/nss/nss.pc.in11
-rw-r--r--main/ntfs-3g/APKBUILD10
-rw-r--r--main/numactl/APKBUILD47
-rw-r--r--main/numactl/musl.patch21
-rw-r--r--main/nvme-cli/APKBUILD50
-rw-r--r--main/obex-data-server/APKBUILD5
-rw-r--r--main/oidentd/APKBUILD17
-rw-r--r--main/one-context/APKBUILD19
-rw-r--r--main/oniguruma/APKBUILD4
-rw-r--r--main/open-iscsi/0001-Don-t-use-GNU-sed.patch25
-rw-r--r--main/open-iscsi/APKBUILD35
-rw-r--r--main/open-iscsi/bash.patch79
-rw-r--r--main/open-isns/APKBUILD37
-rw-r--r--main/open-lldp/APKBUILD67
-rw-r--r--main/open-lldp/lldpad.confd1
-rwxr-xr-xmain/open-lldp/lldpad.initd12
-rw-r--r--main/open-lldp/open-lldp.confd2
-rwxr-xr-xmain/open-lldp/open-lldp.initd24
-rw-r--r--main/open-lldp/reopenstdout.patch13
-rw-r--r--main/openjade/APKBUILD14
-rw-r--r--main/openjpeg/APKBUILD8
-rw-r--r--main/openjpeg/fix-cmakelists.patch11
-rw-r--r--main/openldap/0001-Fix-build-issue-in-clients-tools-common.c.patch26
-rw-r--r--main/openldap/0002-Add-UNIX_LINK_LIBS-to-slapi-Makefile.patch23
-rw-r--r--main/openldap/0003-Add-mqtt-overlay.patch (renamed from main/openldap/openldap-mqtt-overlay.patch)18
-rw-r--r--main/openldap/0004-Fix-manpages.patch (renamed from main/openldap/fix-manpages.patch)25
-rw-r--r--main/openldap/0005-Correct-command-line-syntax-in-lloadd-tests.patch (renamed from main/openldap/fix-lloadd-tests.patch)33
-rw-r--r--main/openldap/0007-Use-correct-extension-for-slapd-modules.patch44
-rw-r--r--main/openldap/0008-Remove-pidfile-and-argsfile.patch35
-rw-r--r--main/openldap/0009-Include-more-schemas-in-default-config.patch44
-rw-r--r--main/openldap/APKBUILD52
-rw-r--r--main/openldap/cacheflush.patch12
-rw-r--r--main/openldap/lloadd.confd8
-rw-r--r--main/openldap/lloadd.initd2
-rw-r--r--main/openldap/openldap-2.4-ppolicy.patch13
-rw-r--r--main/openldap/openldap-2.4.11-libldap_r.patch11
-rw-r--r--main/openldap/slapd.confd21
-rw-r--r--main/openldap/slapd.initd33
-rw-r--r--main/openldap/tests-make-add-missing-dependency.patch13
-rw-r--r--main/opennhrp/APKBUILD30
-rw-r--r--main/openntpd/APKBUILD4
-rw-r--r--main/openntpd/openntpd.confd3
-rw-r--r--main/openobex/APKBUILD30
-rw-r--r--main/openrc/0001-call-sbin-mkmntdirs-in-localmount-OpenRC-service.patch111
-rw-r--r--main/openrc/0003-rc-pull-in-sysinit-and-boot-as-stacked-levels-when-n.patch4
-rw-r--r--main/openrc/0009-Based-on-the-vrf-patch-it-adds-support-to-run-servic.patch30
-rw-r--r--main/openrc/0009-fix-bootmisc-mv-error.patch27
-rw-r--r--main/openrc/0010-noexec-devfs.patch14
-rw-r--r--main/openrc/APKBUILD81
-rw-r--r--main/openrc/hostname.initd3
-rw-r--r--main/openrc/hwdrivers.initd7
-rw-r--r--main/openrc/machine-id.initd3
-rwxr-xr-xmain/openrc/modloop.initd3
-rw-r--r--main/openrc/modules.initd3
-rw-r--r--main/openrc/networking.initd5
-rw-r--r--main/openrc/openrc.post-install7
-rw-r--r--main/openrc/openrc.post-upgrade44
-rw-r--r--main/openrc/seedrng.patch640
-rw-r--r--main/openrc/supervise-daemon-defaults.patch31
-rw-r--r--main/openrc/sysctl-readme.patch11
-rw-r--r--main/openresolv/APKBUILD11
-rw-r--r--main/openresolv/detect_init-remove-irrelevant.patch14
-rw-r--r--main/opensbi/APKBUILD7
-rw-r--r--main/opensmtpd/APKBUILD93
-rw-r--r--main/opensmtpd/aliases63
-rw-r--r--main/opensmtpd/opensmtpd.pre-install9
-rw-r--r--main/opensmtpd/smtpd.conf.patch21
-rw-r--r--main/opensmtpd/smtpd.confd8
-rw-r--r--main/opensmtpd/smtpd.initd41
-rw-r--r--main/opensp/APKBUILD6
-rw-r--r--main/openssh/APKBUILD73
-rw-r--r--main/openssh/default-internal-sftp.patch14
-rw-r--r--main/openssh/fix-utmp.patch29
-rw-r--r--main/openssh/fix-verify-dns-segfault.patch57
-rw-r--r--main/openssh/gss-serv.c.patch15
-rw-r--r--main/openssh/include-config-dir.patch26
-rw-r--r--main/openssh/sftp-interactive.patch14
-rw-r--r--main/openssh/sshd.initd2
-rw-r--r--main/openssh/sshd.pam6
-rw-r--r--main/openssl/APKBUILD127
-rw-r--r--main/openssl/man-section.patch51
-rw-r--r--main/openssl/ppc64.patch96
-rw-r--r--main/openssl3/APKBUILD172
-rw-r--r--main/openssl3/man-section.patch31
-rw-r--r--main/openvpn-ad-check/APKBUILD37
-rw-r--r--main/openvpn-auth-ldap/APKBUILD10
-rw-r--r--main/openvpn/APKBUILD23
-rw-r--r--main/opus/APKBUILD48
-rw-r--r--main/opus/arm32.patch27
-rw-r--r--main/opusfile/APKBUILD21
-rw-r--r--main/orc/APKBUILD24
-rw-r--r--main/ortp/APKBUILD18
-rw-r--r--main/ortp/fix-cmake-path.patch13
-rw-r--r--main/ortp/fix-pkgconfig-pc-file.patch18
-rw-r--r--main/p11-kit/APKBUILD36
-rw-r--r--main/p7zip/APKBUILD69
-rw-r--r--main/pahole/APKBUILD37
-rw-r--r--main/pam-pgsql/APKBUILD10
-rw-r--r--main/pango/APKBUILD36
-rw-r--r--main/pango/disable-broken-test.patch12
-rw-r--r--main/parallel/APKBUILD16
-rw-r--r--main/parallel/completion-dir.patch18
-rw-r--r--main/parted/APKBUILD29
-rw-r--r--main/patch/0003-memory-allocation.patch88
-rw-r--r--main/patch/0004-fix-memleak.patch100
-rw-r--r--main/patch/APKBUILD19
-rw-r--r--main/patchelf/APKBUILD39
-rw-r--r--main/patchelf/fix-completion.patch57
-rw-r--r--main/patchutils/APKBUILD2
-rw-r--r--main/pax-utils/APKBUILD35
-rw-r--r--main/pciutils/APKBUILD24
-rw-r--r--main/pciutils/fix-linking-pci-malloc-Makefile.patch11
-rw-r--r--main/pciutils/pread.patch13
-rw-r--r--main/pcmciautils/APKBUILD17
-rw-r--r--main/pcre/APKBUILD4
-rw-r--r--main/pcre2/APKBUILD47
-rw-r--r--main/pcsc-lite/APKBUILD20
-rw-r--r--main/pcsc-lite/pcscd.initd6
-rw-r--r--main/perdition/APKBUILD9
-rw-r--r--main/perl-apache-logformat-compiler/APKBUILD25
-rw-r--r--main/perl-apache-session/APKBUILD2
-rw-r--r--main/perl-archive-zip/APKBUILD8
-rw-r--r--main/perl-astro-suntime/APKBUILD4
-rw-r--r--main/perl-async-mergepoint/APKBUILD22
-rw-r--r--main/perl-authen-sasl/APKBUILD16
-rw-r--r--main/perl-b-cow/APKBUILD6
-rw-r--r--main/perl-b-hooks-endofscope/APKBUILD27
-rw-r--r--main/perl-boolean/APKBUILD20
-rw-r--r--main/perl-business-hours/APKBUILD28
-rw-r--r--main/perl-cache-cache/APKBUILD26
-rw-r--r--main/perl-cache-simple-timedexpiry/APKBUILD8
-rw-r--r--main/perl-canary-stability/APKBUILD11
-rw-r--r--main/perl-capture-tiny/APKBUILD33
-rw-r--r--main/perl-carp-clan/APKBUILD8
-rw-r--r--main/perl-carp/APKBUILD4
-rw-r--r--main/perl-cgi-emulate-psgi/APKBUILD25
-rw-r--r--main/perl-cgi-fast/APKBUILD4
-rw-r--r--main/perl-cgi-psgi/APKBUILD21
-rw-r--r--main/perl-cgi-session/APKBUILD9
-rw-r--r--main/perl-cgi/APKBUILD37
-rw-r--r--main/perl-class-accessor-chained/APKBUILD39
-rw-r--r--main/perl-class-accessor/APKBUILD10
-rw-r--r--main/perl-class-container/APKBUILD43
-rw-r--r--main/perl-class-data-inheritable/APKBUILD2
-rw-r--r--main/perl-class-inspector/APKBUILD2
-rw-r--r--main/perl-class-load/APKBUILD26
-rw-r--r--main/perl-class-method-modifiers/APKBUILD25
-rw-r--r--main/perl-class-mix/APKBUILD25
-rw-r--r--main/perl-class-returnvalue/APKBUILD4
-rw-r--r--main/perl-class-singleton/APKBUILD4
-rw-r--r--main/perl-class-tiny/APKBUILD27
-rw-r--r--main/perl-clone/APKBUILD12
-rw-r--r--main/perl-common-sense/APKBUILD23
-rw-r--r--main/perl-compress-raw-bzip2/APKBUILD28
-rw-r--r--main/perl-compress-raw-zlib/APKBUILD22
-rw-r--r--main/perl-config-autoconf/APKBUILD18
-rw-r--r--main/perl-config-grammar/APKBUILD21
-rw-r--r--main/perl-config-inifiles/APKBUILD36
-rw-r--r--main/perl-control-x10/APKBUILD8
-rw-r--r--main/perl-convert-asn1/APKBUILD4
-rw-r--r--main/perl-convert-binhex/APKBUILD25
-rw-r--r--main/perl-convert-color/APKBUILD36
-rw-r--r--main/perl-convert-tnef/APKBUILD23
-rw-r--r--main/perl-convert-uulib/APKBUILD10
-rw-r--r--main/perl-cpan-meta-check/APKBUILD26
-rw-r--r--main/perl-cpanel-json-xs/APKBUILD5
-rw-r--r--main/perl-cps/APKBUILD25
-rw-r--r--main/perl-crypt-des/APKBUILD36
-rw-r--r--main/perl-crypt-eksblowfish/APKBUILD39
-rw-r--r--main/perl-crypt-openssl-guess/APKBUILD6
-rw-r--r--main/perl-crypt-openssl-random/APKBUILD47
-rw-r--r--main/perl-crypt-openssl-rsa/APKBUILD12
-rw-r--r--main/perl-crypt-openssl-rsa/no-sslv23-padding.patch15
-rw-r--r--main/perl-crypt-rijndael/APKBUILD2
-rw-r--r--main/perl-crypt-ssleay/APKBUILD44
-rw-r--r--main/perl-crypt-x509/APKBUILD26
-rw-r--r--main/perl-cryptx/APKBUILD41
-rw-r--r--main/perl-css-minifier-xs/APKBUILD2
-rw-r--r--main/perl-css-squish/APKBUILD31
-rw-r--r--main/perl-data-guid/APKBUILD6
-rw-r--r--main/perl-data-hexdump/APKBUILD2
-rw-r--r--main/perl-data-optlist/APKBUILD6
-rw-r--r--main/perl-data-page-pageset/APKBUILD41
-rw-r--r--main/perl-data-page/APKBUILD28
-rw-r--r--main/perl-data-uuid/APKBUILD18
-rw-r--r--main/perl-date-format/APKBUILD32
-rw-r--r--main/perl-datetime-format-mail/APKBUILD4
-rw-r--r--main/perl-datetime-format-w3cdtf/APKBUILD24
-rw-r--r--main/perl-datetime-locale/APKBUILD41
-rw-r--r--main/perl-datetime-timezone/APKBUILD20
-rw-r--r--main/perl-datetime/APKBUILD7
-rw-r--r--main/perl-dbd-mysql/APKBUILD31
-rw-r--r--main/perl-dbd-odbc/APKBUILD8
-rw-r--r--main/perl-dbd-pg/APKBUILD29
-rw-r--r--main/perl-dbd-sqlite/APKBUILD8
-rw-r--r--main/perl-dbd-sqlite/fix-test.patch11
-rw-r--r--main/perl-dbi/APKBUILD2
-rw-r--r--main/perl-dbix-dbschema/APKBUILD8
-rw-r--r--main/perl-dbix-searchbuilder/APKBUILD30
-rw-r--r--main/perl-devel-checkbin/APKBUILD31
-rw-r--r--main/perl-devel-checklib/APKBUILD32
-rw-r--r--main/perl-devel-globaldestruction/APKBUILD33
-rw-r--r--main/perl-devel-overloadinfo/APKBUILD2
-rw-r--r--main/perl-devel-stacktrace-ashtml/APKBUILD4
-rw-r--r--main/perl-devel-stacktrace/APKBUILD21
-rw-r--r--main/perl-devel-symdump/APKBUILD33
-rw-r--r--main/perl-device-serialport/APKBUILD30
-rw-r--r--main/perl-digest-hmac/APKBUILD4
-rw-r--r--main/perl-digest-md5/APKBUILD13
-rw-r--r--main/perl-digest-sha1/APKBUILD26
-rw-r--r--main/perl-dist-checkconflicts/APKBUILD35
-rw-r--r--main/perl-email-address-list/APKBUILD4
-rw-r--r--main/perl-email-address/APKBUILD8
-rw-r--r--main/perl-email-date-format/APKBUILD35
-rw-r--r--main/perl-encode-hanextra/APKBUILD26
-rw-r--r--main/perl-encode-hanextra/perl-5.26.patch12
-rw-r--r--main/perl-encode-locale/APKBUILD17
-rw-r--r--main/perl-encode/APKBUILD26
-rw-r--r--main/perl-error/APKBUILD10
-rw-r--r--main/perl-eval-closure/APKBUILD35
-rw-r--r--main/perl-exception-class/APKBUILD2
-rw-r--r--main/perl-exporter-tiny/APKBUILD26
-rw-r--r--main/perl-exporter/APKBUILD29
-rw-r--r--main/perl-extutils-cchecker/APKBUILD26
-rw-r--r--main/perl-extutils-config/APKBUILD33
-rw-r--r--main/perl-extutils-helpers/APKBUILD33
-rw-r--r--main/perl-extutils-installpaths/APKBUILD21
-rw-r--r--main/perl-extutils-pkgconfig/APKBUILD28
-rw-r--r--main/perl-fcgi-procmanager/APKBUILD6
-rw-r--r--main/perl-fcgi/APKBUILD6
-rw-r--r--main/perl-file-copy-recursive/APKBUILD8
-rw-r--r--main/perl-file-listing/APKBUILD7
-rw-r--r--main/perl-file-next/APKBUILD2
-rw-r--r--main/perl-file-remove/APKBUILD3
-rw-r--r--main/perl-file-rsync/APKBUILD16
-rw-r--r--main/perl-file-sharedir-install/APKBUILD24
-rw-r--r--main/perl-file-sharedir/APKBUILD9
-rw-r--r--main/perl-file-slurp-tiny/APKBUILD35
-rw-r--r--main/perl-file-slurp/APKBUILD21
-rw-r--r--main/perl-file-slurper/APKBUILD27
-rw-r--r--main/perl-file-tail/APKBUILD24
-rw-r--r--main/perl-file-temp/APKBUILD7
-rw-r--r--main/perl-file-which/APKBUILD2
-rw-r--r--main/perl-filesys-notify-simple/APKBUILD2
-rw-r--r--main/perl-font-afm/APKBUILD33
-rw-r--r--main/perl-future/APKBUILD28
-rw-r--r--main/perl-gd/APKBUILD8
-rw-r--r--main/perl-gdgraph/APKBUILD9
-rw-r--r--main/perl-gdtextutil/APKBUILD35
-rw-r--r--main/perl-getopt-long/APKBUILD29
-rw-r--r--main/perl-hash-multivalue/APKBUILD4
-rw-r--r--main/perl-heap/APKBUILD22
-rw-r--r--main/perl-html-formatter/APKBUILD2
-rw-r--r--main/perl-html-formattext-withlinks-andtables/APKBUILD28
-rw-r--r--main/perl-html-formattext-withlinks/APKBUILD2
-rw-r--r--main/perl-html-mason/APKBUILD26
-rw-r--r--main/perl-html-parser/APKBUILD16
-rw-r--r--main/perl-html-quoted/APKBUILD12
-rw-r--r--main/perl-html-rewriteattributes/APKBUILD24
-rw-r--r--main/perl-html-scrubber/APKBUILD26
-rw-r--r--main/perl-html-tagset/APKBUILD29
-rw-r--r--main/perl-html-tree/APKBUILD28
-rw-r--r--main/perl-http-body/APKBUILD33
-rw-r--r--main/perl-http-cookiejar/APKBUILD37
-rw-r--r--main/perl-http-cookies/APKBUILD8
-rw-r--r--main/perl-http-daemon/APKBUILD31
-rw-r--r--main/perl-http-date/APKBUILD14
-rw-r--r--main/perl-http-message/APKBUILD11
-rw-r--r--main/perl-http-negotiate/APKBUILD4
-rw-r--r--main/perl-importer/APKBUILD4
-rw-r--r--main/perl-inc-latest/APKBUILD8
-rw-r--r--main/perl-inline-c/APKBUILD31
-rw-r--r--main/perl-inline/APKBUILD8
-rw-r--r--main/perl-io-captureoutput/APKBUILD38
-rw-r--r--main/perl-io-html/APKBUILD2
-rw-r--r--main/perl-io-multiplex/APKBUILD12
-rw-r--r--main/perl-io-socket-inet6/APKBUILD23
-rw-r--r--main/perl-io-socket-ssl/APKBUILD4
-rw-r--r--main/perl-io-stringy/APKBUILD12
-rw-r--r--main/perl-io-tty/APKBUILD10
-rw-r--r--main/perl-io/APKBUILD8
-rw-r--r--main/perl-ipc-run/APKBUILD36
-rw-r--r--main/perl-ipc-run3/APKBUILD22
-rw-r--r--main/perl-ipc-sharelite/APKBUILD38
-rw-r--r--main/perl-ipc-system-simple/APKBUILD2
-rw-r--r--main/perl-javascript-minifier-xs/APKBUILD2
-rw-r--r--main/perl-javascript-minifier/APKBUILD3
-rw-r--r--main/perl-json-maybexs/APKBUILD9
-rw-r--r--main/perl-json/APKBUILD8
-rw-r--r--main/perl-ldap/APKBUILD2
-rw-r--r--main/perl-libwww/APKBUILD42
-rw-r--r--main/perl-list-allutils/APKBUILD19
-rw-r--r--main/perl-list-moreutils-xs/APKBUILD2
-rw-r--r--main/perl-list-moreutils/APKBUILD2
-rw-r--r--main/perl-list-someutils-xs/APKBUILD28
-rw-r--r--main/perl-list-someutils/APKBUILD26
-rw-r--r--main/perl-list-utilsby/APKBUILD25
-rw-r--r--main/perl-locale-maketext-fuzzy/APKBUILD4
-rw-r--r--main/perl-locale-maketext-lexicon/APKBUILD31
-rw-r--r--main/perl-log-any/APKBUILD25
-rw-r--r--main/perl-log-dispatch/APKBUILD7
-rw-r--r--main/perl-lwp-mediatypes/APKBUILD18
-rw-r--r--main/perl-lwp-protocol-https/APKBUILD40
-rw-r--r--main/perl-lwp-useragent-determined/APKBUILD19
-rw-r--r--main/perl-mail-authenticationresults/APKBUILD9
-rw-r--r--main/perl-mail-dkim/APKBUILD36
-rw-r--r--main/perl-mail-domainkeys/APKBUILD28
-rw-r--r--main/perl-mail-imapclient/APKBUILD2
-rw-r--r--main/perl-mail-spf/APKBUILD58
-rw-r--r--main/perl-mailtools/APKBUILD25
-rw-r--r--main/perl-math-round/APKBUILD35
-rw-r--r--main/perl-metrics-any/APKBUILD6
-rw-r--r--main/perl-mime-base64/APKBUILD2
-rw-r--r--main/perl-mime-lite/APKBUILD2
-rw-r--r--main/perl-mime-tools/APKBUILD41
-rw-r--r--main/perl-mime-types/APKBUILD21
-rw-r--r--main/perl-module-build-tiny/APKBUILD50
-rw-r--r--main/perl-module-build/APKBUILD28
-rw-r--r--main/perl-module-implementation/APKBUILD27
-rw-r--r--main/perl-module-install/APKBUILD33
-rw-r--r--main/perl-module-metadata/APKBUILD27
-rw-r--r--main/perl-module-pluggable/APKBUILD33
-rw-r--r--main/perl-module-refresh/APKBUILD24
-rw-r--r--main/perl-module-runtime/APKBUILD30
-rw-r--r--main/perl-module-scandeps/APKBUILD6
-rw-r--r--main/perl-module-util/APKBUILD33
-rw-r--r--main/perl-module-versions-report/APKBUILD31
-rw-r--r--main/perl-moo/APKBUILD7
-rw-r--r--main/perl-mozilla-ca/APKBUILD26
-rw-r--r--main/perl-mro-compat/APKBUILD24
-rw-r--r--main/perl-namespace-autoclean/APKBUILD2
-rw-r--r--main/perl-namespace-clean/APKBUILD35
-rw-r--r--main/perl-net-cidr-lite/APKBUILD4
-rw-r--r--main/perl-net-cidr/APKBUILD2
-rw-r--r--main/perl-net-dns-resolver-mock/APKBUILD7
-rw-r--r--main/perl-net-dns-resolver-programmable/APKBUILD10
-rw-r--r--main/perl-net-dns/APKBUILD23
-rw-r--r--main/perl-net-http/APKBUILD6
-rw-r--r--main/perl-net-ip/APKBUILD27
-rw-r--r--main/perl-net-libidn/APKBUILD30
-rw-r--r--main/perl-net-openssh/APKBUILD6
-rw-r--r--main/perl-net-rblclient/APKBUILD12
-rw-r--r--main/perl-net-server/APKBUILD33
-rw-r--r--main/perl-net-smtp-ssl/APKBUILD24
-rw-r--r--main/perl-net-smtp-tls-butmaintained/APKBUILD33
-rw-r--r--main/perl-net-snmp/APKBUILD29
-rw-r--r--main/perl-net-snpp/APKBUILD28
-rw-r--r--main/perl-net-ssleay/APKBUILD14
-rw-r--r--main/perl-net-telnet/APKBUILD2
-rw-r--r--main/perl-netaddr-ip/APKBUILD32
-rw-r--r--main/perl-package-anon/APKBUILD30
-rw-r--r--main/perl-package-deprecationmanager/APKBUILD39
-rw-r--r--main/perl-package-stash-xs/APKBUILD27
-rw-r--r--main/perl-package-stash/APKBUILD2
-rw-r--r--main/perl-parallel-forkmanager/APKBUILD25
-rw-r--r--main/perl-params-classify/APKBUILD20
-rw-r--r--main/perl-params-util/APKBUILD4
-rw-r--r--main/perl-params-validate/APKBUILD6
-rw-r--r--main/perl-params-validationcompiler/APKBUILD6
-rw-r--r--main/perl-parse-recdescent/APKBUILD33
-rw-r--r--main/perl-parse-syslog/APKBUILD4
-rw-r--r--main/perl-parse-yapp/APKBUILD2
-rw-r--r--main/perl-path-class/APKBUILD32
-rw-r--r--main/perl-path-tiny/APKBUILD6
-rw-r--r--main/perl-pathtools/APKBUILD42
-rw-r--r--main/perl-php-serialization/APKBUILD25
-rw-r--r--main/perl-pod-coverage/APKBUILD19
-rw-r--r--main/perl-pod-parser/APKBUILD6
-rw-r--r--main/perl-posix-strftime-compiler/APKBUILD13
-rw-r--r--main/perl-probe-perl/APKBUILD32
-rw-r--r--main/perl-proc-wait3/APKBUILD38
-rw-r--r--main/perl-protocol-websocket/APKBUILD6
-rw-r--r--main/perl-regexp-common/APKBUILD25
-rw-r--r--main/perl-regexp-ipv6/APKBUILD31
-rw-r--r--main/perl-role-basic/APKBUILD33
-rw-r--r--main/perl-role-tiny/APKBUILD3
-rw-r--r--main/perl-scalar-list-utils/APKBUILD44
-rw-r--r--main/perl-scope-guard/APKBUILD31
-rw-r--r--main/perl-scope-upper/APKBUILD27
-rw-r--r--main/perl-server-starter/APKBUILD17
-rw-r--r--main/perl-set-intspan/APKBUILD23
-rw-r--r--main/perl-snmp-session/APKBUILD19
-rw-r--r--main/perl-socket-getaddrinfo/APKBUILD2
-rw-r--r--main/perl-socket/APKBUILD31
-rw-r--r--main/perl-socket6/APKBUILD24
-rw-r--r--main/perl-specio/APKBUILD2
-rw-r--r--main/perl-stream-buffered/APKBUILD26
-rw-r--r--main/perl-string-shellquote/APKBUILD35
-rw-r--r--main/perl-struct-dumb/APKBUILD28
-rw-r--r--main/perl-sub-exporter-progressive/APKBUILD34
-rw-r--r--main/perl-sub-exporter/APKBUILD4
-rw-r--r--main/perl-sub-identify/APKBUILD24
-rw-r--r--main/perl-sub-info/APKBUILD34
-rw-r--r--main/perl-sub-install/APKBUILD38
-rw-r--r--main/perl-sub-name/APKBUILD44
-rw-r--r--main/perl-sub-quote/APKBUILD27
-rw-r--r--main/perl-sub-uplevel/APKBUILD31
-rw-r--r--main/perl-super/APKBUILD12
-rw-r--r--main/perl-switch/APKBUILD31
-rw-r--r--main/perl-symbol-global-name/APKBUILD24
-rw-r--r--main/perl-syntax-keyword-try/APKBUILD37
-rw-r--r--main/perl-sys-hostname-long/APKBUILD18
-rw-r--r--main/perl-sys-mmap/APKBUILD6
-rw-r--r--main/perl-term-readkey/APKBUILD2
-rw-r--r--main/perl-term-table/APKBUILD31
-rw-r--r--main/perl-test-cpan-meta/APKBUILD4
-rw-r--r--main/perl-test-deep/APKBUILD8
-rw-r--r--main/perl-test-eol/APKBUILD2
-rw-r--r--main/perl-test-exception/APKBUILD34
-rw-r--r--main/perl-test-failwarnings/APKBUILD26
-rw-r--r--main/perl-test-fatal/APKBUILD22
-rw-r--r--main/perl-test-file-sharedir/APKBUILD28
-rw-r--r--main/perl-test-fork/APKBUILD8
-rw-r--r--main/perl-test-harness/APKBUILD33
-rw-r--r--main/perl-test-identity/APKBUILD23
-rw-r--r--main/perl-test-leaktrace/APKBUILD2
-rw-r--r--main/perl-test-longstring/APKBUILD10
-rw-r--r--main/perl-test-manifest/APKBUILD4
-rw-r--r--main/perl-test-metrics-any/APKBUILD2
-rw-r--r--main/perl-test-mockmodule/APKBUILD4
-rw-r--r--main/perl-test-mockobject/APKBUILD10
-rw-r--r--main/perl-test-mockrandom/APKBUILD20
-rw-r--r--main/perl-test-mocktime/APKBUILD23
-rw-r--r--main/perl-test-needs/APKBUILD6
-rw-r--r--main/perl-test-notabs/APKBUILD2
-rw-r--r--main/perl-test-nowarnings/APKBUILD2
-rw-r--r--main/perl-test-number-delta/APKBUILD33
-rw-r--r--main/perl-test-output/APKBUILD6
-rw-r--r--main/perl-test-pod-coverage/APKBUILD26
-rw-r--r--main/perl-test-pod/APKBUILD22
-rw-r--r--main/perl-test-refcount/APKBUILD24
-rw-r--r--main/perl-test-requires/APKBUILD24
-rw-r--r--main/perl-test-requiresinternet/APKBUILD2
-rw-r--r--main/perl-test-script/APKBUILD31
-rw-r--r--main/perl-test-sharedfork/APKBUILD2
-rw-r--r--main/perl-test-simple/APKBUILD6
-rw-r--r--main/perl-test-taint/APKBUILD22
-rw-r--r--main/perl-test-tcp/APKBUILD20
-rw-r--r--main/perl-test-warn/APKBUILD21
-rw-r--r--main/perl-test-warnings/APKBUILD4
-rw-r--r--main/perl-test-without-module/APKBUILD8
-rw-r--r--main/perl-test-without/APKBUILD2
-rw-r--r--main/perl-test2-plugin-nowarnings/APKBUILD31
-rw-r--r--main/perl-test2-suite/APKBUILD4
-rw-r--r--main/perl-text-autoformat/APKBUILD6
-rw-r--r--main/perl-text-csv/APKBUILD8
-rw-r--r--main/perl-text-password-pronounceable/APKBUILD4
-rw-r--r--main/perl-text-reform/APKBUILD4
-rw-r--r--main/perl-text-soundex/APKBUILD42
-rw-r--r--main/perl-text-vfile-asdata/APKBUILD31
-rw-r--r--main/perl-text-wikiformat/APKBUILD33
-rw-r--r--main/perl-text-wrapper/APKBUILD21
-rw-r--r--main/perl-time-hires/APKBUILD45
-rw-r--r--main/perl-time-parsedate/APKBUILD12
-rw-r--r--main/perl-timedate/APKBUILD27
-rw-r--r--main/perl-tk/APKBUILD4
-rw-r--r--main/perl-tree-dag_node/APKBUILD2
-rw-r--r--main/perl-try-tiny/APKBUILD23
-rw-r--r--main/perl-type-tiny/APKBUILD6
-rw-r--r--main/perl-universal-can/APKBUILD15
-rw-r--r--main/perl-universal-isa/APKBUILD15
-rw-r--r--main/perl-unix-syslog/APKBUILD23
-rw-r--r--main/perl-uri/APKBUILD21
-rw-r--r--main/perl-variable-magic/APKBUILD48
-rw-r--r--main/perl-want/APKBUILD42
-rw-r--r--main/perl-www-robotrules/APKBUILD4
-rw-r--r--main/perl-x10/APKBUILD4
-rw-r--r--main/perl-xml-namespacesupport/APKBUILD4
-rw-r--r--main/perl-xml-parser/APKBUILD28
-rw-r--r--main/perl-xml-rss/APKBUILD8
-rw-r--r--main/perl-xml-sax-base/APKBUILD4
-rw-r--r--main/perl-xml-sax/APKBUILD8
-rw-r--r--main/perl-xml-simple/APKBUILD2
-rw-r--r--main/perl-xml-xpath/APKBUILD13
-rw-r--r--main/perl-xs-parse-keyword/APKBUILD37
-rw-r--r--main/perl-yaml-libyaml/APKBUILD36
-rw-r--r--main/perl-yaml-syck/APKBUILD2
-rw-r--r--main/perl-yaml-tiny/APKBUILD28
-rw-r--r--main/perl-yaml/APKBUILD26
-rw-r--r--main/perl/APKBUILD136
-rw-r--r--main/perl/digest-sha-cflags.patch17
-rw-r--r--main/perl/musl-locale.patch37
-rw-r--r--main/perl/zlib-no-zsolo.patch11
-rw-r--r--main/pgpool/APKBUILD34
-rw-r--r--main/pgpool/musl-compat.patch10
-rw-r--r--main/pgpool/pgpool.confd5
-rw-r--r--main/pgpool/pgpool.initd11
-rw-r--r--main/pgtcl/APKBUILD81
-rw-r--r--main/pgtcl/pgtcl-tests.patch91
-rw-r--r--main/pigz/APKBUILD15
-rw-r--r--main/pinentry/APKBUILD13
-rw-r--r--main/pinentry/pinentry-curses-ss.post-deinstall12
-rw-r--r--main/pingu/APKBUILD18
-rw-r--r--main/pixman/APKBUILD33
-rw-r--r--main/pixman/scaling-test.patch14
-rw-r--r--main/pjproject/APKBUILD42
-rw-r--r--main/pjproject/execinfo.patch78
-rw-r--r--main/pjproject/libpjsua2-install.patch26
-rw-r--r--main/pkgconf/APKBUILD18
-rw-r--r--main/pm-utils/APKBUILD2
-rw-r--r--main/pmacct/APKBUILD56
-rw-r--r--main/po4a/APKBUILD24
-rw-r--r--main/policyd-spf-fs/APKBUILD24
-rw-r--r--main/policyd-spf-fs/format-security.patch22
-rw-r--r--main/poppler/APKBUILD54
-rw-r--r--main/poppler/dont-enforce-build-type.patch26
-rw-r--r--main/popt/APKBUILD18
-rw-r--r--main/portaudio/APKBUILD4
-rw-r--r--main/postfix-policyd-spf-perl/APKBUILD15
-rw-r--r--main/postfix/APKBUILD27
-rw-r--r--main/postfix/dict_redis.c250
-rw-r--r--main/postfix/dict_redis.h39
-rw-r--r--main/postfix/postfix-redis.patch136
-rw-r--r--main/postgresql-common/APKBUILD20
-rw-r--r--main/postgresql-common/pg_versions4
-rw-r--r--main/postgresql-common/postgresql-common.trigger2
-rw-r--r--main/postgresql-common/postgresql.confd30
-rw-r--r--main/postgresql-common/postgresql.initd8
-rw-r--r--main/postgresql13/disable-broken-tests.patch119
-rw-r--r--main/postgresql13/disable-test-collate.icu.utf8.patch20
-rw-r--r--main/postgresql13/fix-test-temp-schema-cleanup.patch14
-rw-r--r--main/postgresql13/initdb.patch14
-rw-r--r--main/postgresql13/plperl-5.36-new-warnings-category.patch38
-rw-r--r--main/postgresql14/disable-broken-tests.patch119
-rw-r--r--main/postgresql14/disable-test-collate.icu.utf8.patch20
-rw-r--r--main/postgresql15/APKBUILD (renamed from main/postgresql14/APKBUILD)79
-rw-r--r--main/postgresql15/czech-snowball-stemmer.patch (renamed from main/postgresql14/czech-snowball-stemmer.patch)0
-rw-r--r--main/postgresql15/disable-html-docs.patch (renamed from main/postgresql13/disable-html-docs.patch)0
-rw-r--r--main/postgresql15/dont-use-locale-a-on-musl.patch31
-rw-r--r--main/postgresql15/external-libpq.patch.txt (renamed from main/postgresql13/external-libpq.patch.txt)0
-rw-r--r--main/postgresql15/fix-test-check_guc.patch13
-rw-r--r--main/postgresql15/fix-test-postgres_fdw.patch13
-rw-r--r--main/postgresql15/fix-tests-on-musl.patch96
-rw-r--r--main/postgresql15/icu-collations-hack.patch893
-rw-r--r--main/postgresql15/initdb.patch (renamed from main/postgresql14/initdb.patch)0
-rw-r--r--main/postgresql15/jit-datalayout-mismatch-on-s390x-and-x86.patch (renamed from main/postgresql14/jit-datalayout-mismatch-on-s390x-and-x86.patch)0
-rw-r--r--main/postgresql15/libpgport-pkglibdir.patch.txt (renamed from main/postgresql14/libpgport-pkglibdir.patch.txt)19
-rw-r--r--main/postgresql15/make-split-headers.patch (renamed from main/postgresql13/make-split-headers.patch)0
-rw-r--r--main/postgresql15/per-version-dirs.patch (renamed from main/postgresql14/per-version-dirs.patch)27
-rw-r--r--main/postgresql15/perl-rpath.patch (renamed from main/postgresql13/perl-rpath.patch)0
-rw-r--r--main/postgresql15/pg_config-add-major-version.patch (renamed from main/postgresql13/pg_config-add-major-version.patch)0
-rw-r--r--main/postgresql15/pltcl_create_tables.sql (renamed from main/postgresql13/pltcl_create_tables.sql)0
-rw-r--r--main/postgresql15/postgresql15.post-install (renamed from main/postgresql13/postgresql13.post-install)0
-rw-r--r--main/postgresql15/postgresql15.pre-deinstall (renamed from main/postgresql13/postgresql13.pre-deinstall)0
-rw-r--r--main/postgresql15/remove-libecpg_compat.patch (renamed from main/postgresql13/remove-libecpg_compat.patch)0
-rw-r--r--main/postgresql15/unix_socket_directories.patch (renamed from main/postgresql13/unix_socket_directories.patch)0
-rw-r--r--main/postgresql16/APKBUILD (renamed from main/postgresql13/APKBUILD)104
-rw-r--r--main/postgresql16/czech-snowball-stemmer.patch (renamed from main/postgresql13/czech-snowball-stemmer.patch)49
-rw-r--r--main/postgresql16/disable-html-docs.patch (renamed from main/postgresql14/disable-html-docs.patch)0
-rw-r--r--main/postgresql16/dont-use-locale-a-on-musl.patch31
-rw-r--r--main/postgresql16/external-libpq.patch.txt (renamed from main/postgresql14/external-libpq.patch.txt)0
-rw-r--r--main/postgresql16/fix-test-check_guc.patch13
-rw-r--r--main/postgresql16/fix-tests-on-musl.patch96
-rw-r--r--main/postgresql16/icu-collations-hack.patch892
-rw-r--r--main/postgresql16/initdb.patch14
-rw-r--r--main/postgresql16/jit-datalayout-mismatch-on-s390x-and-x86.patch (renamed from main/postgresql13/jit-datalayout-mismatch-on-s390x.patch)53
-rw-r--r--main/postgresql16/libpgport-pkglibdir.patch.txt (renamed from main/postgresql13/libpgport-pkglibdir.patch.txt)19
-rw-r--r--main/postgresql16/make-split-headers.patch (renamed from main/postgresql14/make-split-headers.patch)0
-rw-r--r--main/postgresql16/per-version-dirs.patch (renamed from main/postgresql13/per-version-dirs.patch)27
-rw-r--r--main/postgresql16/perl-rpath.patch (renamed from main/postgresql14/perl-rpath.patch)0
-rw-r--r--main/postgresql16/pg_config-add-major-version.patch (renamed from main/postgresql14/pg_config-add-major-version.patch)2
-rw-r--r--main/postgresql16/pltcl_create_tables.sql (renamed from main/postgresql14/pltcl_create_tables.sql)0
-rw-r--r--main/postgresql16/postgresql16.post-install (renamed from main/postgresql14/postgresql14.post-install)0
-rw-r--r--main/postgresql16/postgresql16.pre-deinstall (renamed from main/postgresql14/postgresql14.pre-deinstall)0
-rw-r--r--main/postgresql16/remove-libecpg_compat.patch (renamed from main/postgresql14/remove-libecpg_compat.patch)0
-rw-r--r--main/postgresql16/skip-test-icu.patch32
-rw-r--r--main/postgresql16/unix_socket_directories.patch (renamed from main/postgresql14/unix_socket_directories.patch)0
-rw-r--r--main/pound/APKBUILD45
-rw-r--r--main/pound/openssl-1.1.patch345
-rw-r--r--main/pound/pound.cfg54
-rw-r--r--main/pound/pound.initd26
-rw-r--r--main/powerpc-utils/APKBUILD10
-rw-r--r--main/powertop/APKBUILD41
-rw-r--r--main/powertop/musl-fix-headers.patch22
-rw-r--r--main/ppp/0001-Revert-lock-path-to-var-lock-435.patch61
-rw-r--r--main/ppp/0011-build-sys-don-t-put-connect-errors-log-to-etc-ppp.patch60
-rw-r--r--main/ppp/APKBUILD129
-rw-r--r--main/ppp/fix-linux-5.15-include.patch11
-rw-r--r--main/ppp/fix-paths.patch9
-rw-r--r--main/ppp/fix-pppd-magic.h.patch11
-rw-r--r--main/ppp/musl-fix-headers.patch4
-rw-r--r--main/ppp/pppd.confd1
-rwxr-xr-xmain/ppp/pppd.initd4
-rw-r--r--main/pptpd/APKBUILD56
-rw-r--r--main/pptpd/fix_MSG_TRYHARD.patch13
-rw-r--r--main/pptpd/options.pptp11
-rw-r--r--main/pptpd/pptpd.conf88
-rw-r--r--main/pptpd/pptpd.confd5
-rw-r--r--main/pptpd/pptpd.initd20
-rw-r--r--main/pptpd/pptpd.patch32
-rw-r--r--main/privoxy/APKBUILD11
-rw-r--r--main/privoxy/privoxy.logrotate2
-rw-r--r--main/procps-ng/APKBUILD (renamed from main/procps/APKBUILD)59
-rw-r--r--main/procps/musl-fixes.patch41
-rw-r--r--main/protobuf-c/APKBUILD15
-rw-r--r--main/protobuf/APKBUILD135
-rw-r--r--main/protobuf/exclude.patch40
-rw-r--r--main/protobuf/protoc-cmake.patch27
-rw-r--r--main/protobuf/ruby-fix-cflags.patch14
-rw-r--r--main/protobuf/skip-failing-tests.patch130
-rw-r--r--main/protobuf/soversion.patch39
-rw-r--r--main/protobuf/trim-rakefile.patch29
-rw-r--r--main/proxychains-ng/APKBUILD13
-rw-r--r--main/psmisc/APKBUILD13
-rw-r--r--main/psmisc/include_limits.patch45
-rw-r--r--main/psmisc/musl_ptregs.patch20
-rw-r--r--main/pspg/APKBUILD10
-rw-r--r--main/psqlodbc/APKBUILD12
-rw-r--r--main/pssh/APKBUILD24
-rw-r--r--main/pstree/APKBUILD26
-rw-r--r--main/pth/APKBUILD40
-rw-r--r--main/pth/pth-2.0.5-parallelfix.patch15
-rw-r--r--main/pth/pth-2.0.6-ldflags.patch17
-rw-r--r--main/pth/pth-2.0.6-sigstack.patch22
-rw-r--r--main/putty/APKBUILD10
-rw-r--r--main/pwgen/APKBUILD2
-rw-r--r--main/py3-alabaster/APKBUILD22
-rw-r--r--main/py3-appdirs/APKBUILD17
-rw-r--r--main/py3-asn1/APKBUILD30
-rw-r--r--main/py3-atomicwrites/APKBUILD28
-rw-r--r--main/py3-attrs/APKBUILD34
-rw-r--r--main/py3-attrs/check.py10
-rw-r--r--main/py3-babel/APKBUILD28
-rw-r--r--main/py3-bcrypt/APKBUILD31
-rw-r--r--main/py3-build/APKBUILD31
-rw-r--r--main/py3-cairo/APKBUILD15
-rw-r--r--main/py3-cairo/fix-tests.patch33
-rw-r--r--main/py3-calver/APKBUILD44
-rw-r--r--main/py3-calver/version-placeholder.patch11
-rw-r--r--main/py3-certifi/APKBUILD24
-rw-r--r--main/py3-certifi/use-alpine-system-certs.patch52
-rw-r--r--main/py3-cffi/APKBUILD41
-rw-r--r--main/py3-cffi/fix-setuptools-deprecation.patch8
-rw-r--r--main/py3-cffi/musl-compat.patch0
-rw-r--r--main/py3-chardet/APKBUILD24
-rw-r--r--main/py3-charset-normalizer/APKBUILD30
-rw-r--r--main/py3-coverage/APKBUILD23
-rw-r--r--main/py3-cparser/APKBUILD25
-rw-r--r--main/py3-dbus/APKBUILD38
-rw-r--r--main/py3-distlib/10-remove-funky-test.patch11
-rw-r--r--main/py3-distlib/APKBUILD33
-rw-r--r--main/py3-dnspython/0001-ignore-setuptools-scm.patch10
-rw-r--r--main/py3-dnspython/APKBUILD36
-rw-r--r--main/py3-dnspython/pyproject-set-license-to-table.patch23
-rw-r--r--main/py3-docutils/APKBUILD50
-rw-r--r--main/py3-editables/APKBUILD30
-rw-r--r--main/py3-elementpath/APKBUILD30
-rw-r--r--main/py3-elftools/APKBUILD24
-rw-r--r--main/py3-exceptiongroup/APKBUILD41
-rw-r--r--main/py3-exceptiongroup/use-flit-core.patch38
-rw-r--r--main/py3-extras/APKBUILD22
-rw-r--r--main/py3-filelock/APKBUILD34
-rw-r--r--main/py3-fixtures/APKBUILD32
-rw-r--r--main/py3-fixtures/python-3.9-support.patch136
-rw-r--r--main/py3-flit-core/APKBUILD9
-rw-r--r--main/py3-funcsigs/APKBUILD17
-rw-r--r--main/py3-future/APKBUILD26
-rw-r--r--main/py3-future/python-3.9-support.patch194
-rw-r--r--main/py3-future/test_ftp.patch15
-rw-r--r--main/py3-gobject3/APKBUILD29
-rw-r--r--main/py3-gpep517/APKBUILD36
-rw-r--r--main/py3-gpep517/default-bytecode-levels.patch16
-rw-r--r--main/py3-gpep517/gpep5176
-rw-r--r--main/py3-hatch-vcs/APKBUILD35
-rw-r--r--main/py3-hatchling/APKBUILD25
-rw-r--r--main/py3-html5lib/APKBUILD37
-rw-r--r--main/py3-hypothesis/APKBUILD41
-rw-r--r--main/py3-idna/APKBUILD31
-rw-r--r--main/py3-imagesize/APKBUILD18
-rw-r--r--main/py3-iniconfig/APKBUILD47
-rw-r--r--main/py3-iniconfig/unittest_tests.patch477
-rw-r--r--main/py3-installer/APKBUILD29
-rw-r--r--main/py3-installer/default-bytecode-levels.patch10
-rw-r--r--main/py3-jinja2/APKBUILD20
-rw-r--r--main/py3-lxc/APKBUILD15
-rw-r--r--main/py3-lxml/APKBUILD36
-rw-r--r--main/py3-lxml/fix-test_elementtree-with-expat-2.6.0.patch100
-rw-r--r--main/py3-lxml/libxml-2.11.0.patch12
-rw-r--r--main/py3-mako/APKBUILD21
-rw-r--r--main/py3-markdown/APKBUILD29
-rw-r--r--main/py3-markupsafe/APKBUILD20
-rw-r--r--main/py3-meld3/APKBUILD26
-rw-r--r--main/py3-mimeparse/APKBUILD26
-rw-r--r--main/py3-mock/APKBUILD24
-rw-r--r--main/py3-more-itertools/APKBUILD30
-rw-r--r--main/py3-olefile/APKBUILD20
-rw-r--r--main/py3-ordered-set/APKBUILD38
-rw-r--r--main/py3-packaging/APKBUILD33
-rw-r--r--main/py3-parsing/APKBUILD32
-rw-r--r--main/py3-pathspec/APKBUILD34
-rw-r--r--main/py3-pbr/APKBUILD20
-rw-r--r--main/py3-pep517/APKBUILD25
-rw-r--r--main/py3-pexpect/APKBUILD29
-rw-r--r--main/py3-pluggy/APKBUILD33
-rw-r--r--main/py3-pluggy/eliminate-setuptools_scm.patch55
-rw-r--r--main/py3-ply/APKBUILD33
-rw-r--r--main/py3-pretend/APKBUILD21
-rw-r--r--main/py3-ptyprocess/APKBUILD10
-rw-r--r--main/py3-py/0001-remove-setuptools_scm.patch12
-rw-r--r--main/py3-py/APKBUILD18
-rw-r--r--main/py3-pygments/APKBUILD31
-rw-r--r--main/py3-pygments/build-with-setuptools.patch31
-rw-r--r--main/py3-pynacl/APKBUILD36
-rw-r--r--main/py3-pynacl/ppc64le-disable-configure-segfaultcheck.patch14
-rw-r--r--main/py3-pytest-timeout/APKBUILD26
-rw-r--r--main/py3-pytest/0001-remove-setuptools_scm.patch31
-rw-r--r--main/py3-pytest/APKBUILD28
-rw-r--r--main/py3-requests/APKBUILD20
-rw-r--r--main/py3-setuptools-stage0/APKBUILD71
-rw-r--r--main/py3-setuptools/APKBUILD55
-rw-r--r--main/py3-setuptools_scm/APKBUILD44
-rw-r--r--main/py3-setuptools_scm/typing-ext.patch67
-rw-r--r--main/py3-six/APKBUILD21
-rw-r--r--main/py3-snowballstemmer/APKBUILD10
-rw-r--r--main/py3-sortedcontainers/APKBUILD13
-rw-r--r--main/py3-sphinx/APKBUILD26
-rw-r--r--main/py3-sphinx_rtd_theme/APKBUILD33
-rw-r--r--main/py3-sphinxcontrib-applehelp/APKBUILD25
-rw-r--r--main/py3-sphinxcontrib-devhelp/APKBUILD25
-rw-r--r--main/py3-sphinxcontrib-htmlhelp/APKBUILD26
-rw-r--r--main/py3-sphinxcontrib-jsmath/APKBUILD16
-rw-r--r--main/py3-sphinxcontrib-qthelp/APKBUILD25
-rw-r--r--main/py3-sphinxcontrib-serializinghtml/APKBUILD24
-rw-r--r--main/py3-sphinxcontrib-websupport/APKBUILD31
-rw-r--r--main/py3-sphinxcontrib-websupport/remove-six.patch26
-rw-r--r--main/py3-tappy/APKBUILD17
-rw-r--r--main/py3-testtools/APKBUILD17
-rw-r--r--main/py3-toml/APKBUILD31
-rw-r--r--main/py3-tomli/APKBUILD36
-rw-r--r--main/py3-trove-classifiers/APKBUILD40
-rw-r--r--main/py3-tz/APKBUILD19
-rw-r--r--main/py3-urllib3/APKBUILD26
-rw-r--r--main/py3-wcag-contrast-ratio/APKBUILD30
-rw-r--r--main/py3-wcwidth/APKBUILD25
-rw-r--r--main/py3-webencodings/APKBUILD32
-rw-r--r--main/py3-wheel/APKBUILD48
-rw-r--r--main/py3-wheel/use-system-packaging.patch56
-rw-r--r--main/py3-xmlschema/APKBUILD23
-rw-r--r--main/py3-yaml/APKBUILD35
-rw-r--r--main/py3-yaml/cython3.patch296
-rw-r--r--main/python3/APKBUILD194
-rw-r--r--main/python3/arm-alignment.patch17
-rw-r--r--main/python3/custom-bluetooth-h-path.patch63
-rw-r--r--main/python3/externally-managed22
-rw-r--r--main/python3/fix-xattrs-glibc.patch15
-rw-r--r--main/quagga/APKBUILD16
-rw-r--r--main/rabbitmq-c/APKBUILD33
-rw-r--r--main/radvd/APKBUILD9
-rw-r--r--main/rarian/APKBUILD9
-rw-r--r--main/raspberrypi-bootloader/APKBUILD31
-rw-r--r--main/raspberrypi-bootloader/raspberrypi-bootloader-common.trigger3
-rw-r--r--main/raspberrypi-bootloader/update-raspberrypi-bootloader47
-rw-r--r--main/raspberrypi-userland/10-local-rpi.rules7
-rw-r--r--main/raspberrypi-userland/APKBUILD104
-rw-r--r--main/raspberrypi-userland/dont-build-moved-utils.patch20
-rw-r--r--main/raspberrypi-userland/raspberrypi-userland-udev.post-install9
-rw-r--r--main/raspberrypi/APKBUILD66
-rw-r--r--main/razor/APKBUILD4
-rw-r--r--main/rdfind/APKBUILD36
-rw-r--r--main/rdfind/disable-makefile-test-failing.patch44
-rw-r--r--main/rdiff-backup/0001-Resolve-runtime-dependency-on-setuptools-to-get-vers.patch147
-rw-r--r--main/rdiff-backup/0002-remove-setuptools_scm.patch10
-rw-r--r--main/rdiff-backup/APKBUILD37
-rw-r--r--main/re2c/APKBUILD12
-rw-r--r--main/readline/APKBUILD29
-rw-r--r--main/readline/fix-rl_do_undo-crash.patch127
-rw-r--r--main/redis/APKBUILD33
-rw-r--r--main/redis/redis.pre-install2
-rw-r--r--main/rgb/APKBUILD29
-rw-r--r--main/rhash/APKBUILD14
-rw-r--r--main/rhash/byteorder.patch13
-rw-r--r--main/rlog/APKBUILD4
-rw-r--r--main/rng-tools/01-fix-ignorefail.patch27
-rw-r--r--main/rng-tools/02-fix-random_step-boundary.patch23
-rw-r--r--main/rng-tools/03-correct-linux-poolsize.patch55
-rw-r--r--main/rng-tools/APKBUILD52
-rw-r--r--main/rng-tools/README.Alpine8
l---------main/rng-tools/rng-tools-extra.pre-install1
l---------main/rng-tools/rng-tools-extra.pre-upgrade1
-rw-r--r--main/rng-tools/rng-tools.pre-install7
l---------main/rng-tools/rng-tools.pre-upgrade1
-rw-r--r--main/rng-tools/rngd-extra.confd4
-rw-r--r--main/rng-tools/rngd-extra.confd-arm7
-rw-r--r--main/rng-tools/rngd-extra.initd5
-rw-r--r--main/rng-tools/rngd.confd4
-rw-r--r--main/rng-tools/rngd.confd-arm7
-rw-r--r--main/rng-tools/rngd.initd5
-rw-r--r--main/rp-pppoe/APKBUILD14
-rw-r--r--main/rp-pppoe/musl-fix.patch13
-rw-r--r--main/rpcbind/APKBUILD4
-rw-r--r--main/rpcsvc-proto/APKBUILD9
-rw-r--r--main/rrdcollect/APKBUILD12
-rw-r--r--main/rrdtool/APKBUILD28
-rw-r--r--main/rrdtool/fix-build-date-output.patch53
-rw-r--r--main/rrdtool/libm-underlinking.patch11
-rw-r--r--main/rrdtool/no-posix-fallocate.patch12
-rw-r--r--main/rsnapshot/APKBUILD4
-rw-r--r--main/rssh/APKBUILD4
-rw-r--r--main/rsync/APKBUILD42
-rw-r--r--main/rsyslog/APKBUILD18
-rw-r--r--main/rsyslog/musl-fix.patch13
-rw-r--r--main/rsyslog/queue.patch614
-rw-r--r--main/rsyslog/rsyslog.logrotate1
-rw-r--r--main/rtapd/APKBUILD7
-rw-r--r--main/rtmpdump/APKBUILD2
-rw-r--r--main/rtnppd/APKBUILD17
-rw-r--r--main/rtpproxy/APKBUILD13
-rw-r--r--main/rtpproxy/format-security.patch13
-rw-r--r--main/ruby-augeas/APKBUILD2
-rw-r--r--main/ruby-bundler/APKBUILD12
-rw-r--r--main/ruby-bundler/manpages.patch20
-rw-r--r--main/ruby-debug/APKBUILD11
-rw-r--r--main/ruby-debug/gemspec.patch9
-rw-r--r--main/ruby-matrix/APKBUILD2
-rw-r--r--main/ruby-minitest/APKBUILD14
-rw-r--r--main/ruby-minitest/gemspec.patch15
-rw-r--r--main/ruby-minitest/test-remove-hoe.patch16
-rw-r--r--main/ruby-net-ftp/APKBUILD6
-rw-r--r--main/ruby-net-ftp/gemspec.patch2
-rw-r--r--main/ruby-net-imap/APKBUILD12
-rw-r--r--main/ruby-net-imap/gemspec.patch12
-rw-r--r--main/ruby-net-pop/APKBUILD8
-rw-r--r--main/ruby-net-pop/gemspec.patch2
-rw-r--r--main/ruby-net-smtp/APKBUILD10
-rw-r--r--main/ruby-net-smtp/gemspec.patch9
-rw-r--r--main/ruby-net-smtp/renew-test-certs.patch263
-rw-r--r--main/ruby-power_assert/APKBUILD6
-rw-r--r--main/ruby-prime/APKBUILD2
-rw-r--r--main/ruby-racc/APKBUILD79
-rw-r--r--main/ruby-rake-compiler/APKBUILD45
-rw-r--r--main/ruby-rake-compiler/gemfile-remove-unwanted-files.patch25
-rw-r--r--main/ruby-rake/APKBUILD6
-rw-r--r--main/ruby-rbs/APKBUILD6
-rw-r--r--main/ruby-rbs/gemspec.patch11
-rw-r--r--main/ruby-rexml/APKBUILD8
-rw-r--r--main/ruby-rr/APKBUILD8
-rw-r--r--main/ruby-rr/gemspec.patch20
-rw-r--r--main/ruby-rss/APKBUILD14
-rw-r--r--main/ruby-rss/gemspec.patch17
-rw-r--r--main/ruby-test-unit-rr/APKBUILD2
-rw-r--r--main/ruby-test-unit-ruby-core/APKBUILD46
-rw-r--r--main/ruby-test-unit/APKBUILD4
-rw-r--r--main/ruby-typeprof/APKBUILD6
-rw-r--r--main/ruby-typeprof/gemspec.patch5
-rw-r--r--main/ruby/APKBUILD26
-rw-r--r--main/ruby/dont-install-bundled-gems.patch10
-rw-r--r--main/ruby/fix-get_main_stack.patch6
-rw-r--r--main/run-parts/APKBUILD3
-rw-r--r--main/rust-bindgen/APKBUILD30
-rw-r--r--main/rust/0001-Add-new-Tier-3-target-loongarch64-unknown-linux-musl.patch64
-rw-r--r--main/rust/0002-tests-Add-loongarch64-unknown-linux-musl-target.patch26
-rw-r--r--main/rust/0005-configure.py-add-flag-for-loongarch64-musl-root.patch25
-rw-r--r--main/rust/0006-ci-Add-support-for-dist-loongarch64-musl.patch121
-rw-r--r--main/rust/0007-Promote-loongarch64-unknown-linux-musl-to-Tier-2-wit.patch47
-rw-r--r--main/rust/0008-vendor-libc-Add-support-for-loongarch64-linux-musl.patch760
-rw-r--r--main/rust/0009-vendor-libc-0.2.148-Add-support-for-loongarch64-linu.patch761
-rw-r--r--main/rust/0010-vendor-libc-0.2.150-Add-support-for-loongarch64-linu.patch761
-rw-r--r--main/rust/0011-vendor-compiler_builtins-Add-support-for-loongarch64.patch42
-rw-r--r--main/rust/0012-vendor-openssl-src-Add-support-for-loongarch64-linux.patch25
-rw-r--r--main/rust/APKBUILD504
-rw-r--r--main/rust/alpine-move-py-scripts-to-share.patch26
-rw-r--r--main/rust/alpine-target.patch209
-rwxr-xr-xmain/rust/check-rustc109
-rw-r--r--main/rust/do-not-install-libunwind-source.patch19
-rw-r--r--main/rust/gcc-eh-libunwind.patch37
-rw-r--r--main/rust/install-template-shebang.patch10
-rw-r--r--main/rust/musl-fix-linux_musl_base.patch58
-rw-r--r--main/rust/need-rpath.patch62
-rw-r--r--main/rust/need-ssp_nonshared.patch29
-rw-r--r--main/rust/no-export-ld-library-path.patch30
-rw-r--r--main/rust/revert-rustc_codegen_ssa-use-try_canonicalize-in-rpath.patch39
-rw-r--r--main/rust/system-wasm-ld.patch13
-rw-r--r--main/s390-tools/0009-link-libexecinfo.patch12
-rw-r--r--main/s390-tools/APKBUILD27
-rw-r--r--main/s390-tools/lfs64.patch43
-rw-r--r--main/s390-tools/no-execinfo.patch56
-rw-r--r--main/s390-tools/osasnmpd-Fix-missing-semicolon.patch32
-rw-r--r--main/s390-tools/zipl-disable-fortify-source.patch13
-rw-r--r--main/s6-dns/APKBUILD19
-rw-r--r--main/s6-dns/s6-dns.pc7
-rw-r--r--main/s6-linux-init/APKBUILD10
-rw-r--r--main/s6-linux-utils/APKBUILD17
-rw-r--r--main/s6-networking/APKBUILD10
-rw-r--r--main/s6-portable-utils/APKBUILD17
-rw-r--r--main/s6-rc/APKBUILD10
-rw-r--r--main/s6/APKBUILD16
-rw-r--r--main/s6/s6-svscanboot22
-rw-r--r--main/s6/s6.initd2
-rw-r--r--main/s6/s6.pre-install2
l---------[-rw-r--r--]main/s6/s6.pre-upgrade6
-rw-r--r--main/samba/APKBUILD277
-rw-r--r--main/samba/default-config.patch41
-rw-r--r--main/samba/missing-headers.patch6
-rw-r--r--main/samba/netapp.patch85
-rw-r--r--main/samba/netdb-defines.patch19
-rw-r--r--main/samba/netgroup.patch15
-rw-r--r--main/samba/samba.initd2
-rw-r--r--main/samurai/APKBUILD7
-rw-r--r--main/sanlock/APKBUILD60
-rw-r--r--main/sanlock/basename-include.patch8
-rw-r--r--main/sanlock/c23.patch40
-rw-r--r--main/sanlock/sanlock.confd5
-rw-r--r--main/sanlock/sanlock.initd11
-rw-r--r--main/sanlock/sanlock.pre-install7
-rw-r--r--main/sanlock/wdmd.confd5
-rw-r--r--main/sanlock/wdmd.initd7
-rw-r--r--main/sbsigntool/APKBUILD14
-rw-r--r--main/sc/APKBUILD28
-rw-r--r--main/sc/format-security.patch49
-rw-r--r--main/scdoc/APKBUILD16
-rw-r--r--main/scons/APKBUILD27
-rw-r--r--main/scons/broken-tests.patch21
-rw-r--r--main/screen/APKBUILD13
-rw-r--r--main/scstadmin/APKBUILD37
-rw-r--r--main/scudo-malloc/0001-Add-makefile.patch68
-rw-r--r--main/scudo-malloc/0001-scudo-Detach-the-hooks-from-Scudo-s-internal-impleme.patch782
-rw-r--r--main/scudo-malloc/APKBUILD52
-rw-r--r--main/seabios/APKBUILD5
-rw-r--r--main/secureboot-hook/APKBUILD8
-rw-r--r--main/secureboot-hook/secureboot.conf11
-rw-r--r--main/secureboot-hook/secureboot.hook16
-rw-r--r--main/sed/APKBUILD22
-rw-r--r--main/sendpage/APKBUILD35
-rw-r--r--main/ser2net/APKBUILD20
-rw-r--r--main/serf/APKBUILD20
-rw-r--r--main/serf/scons-py3.patch24
-rw-r--r--main/setup-box/APKBUILD43
-rw-r--r--main/sfic/APKBUILD25
-rw-r--r--main/shared-mime-info/APKBUILD11
-rw-r--r--main/shared-mime-info/shared-mime-info.trigger2
-rw-r--r--main/sharutils/APKBUILD14
-rw-r--r--main/sharutils/format-security.patch31
-rw-r--r--main/shorewall-core/APKBUILD2
-rw-r--r--main/shorewall6/APKBUILD4
-rw-r--r--main/simdjson/APKBUILD35
-rw-r--r--main/sipcalc/APKBUILD7
-rw-r--r--main/sipp/APKBUILD50
-rw-r--r--main/sipp/libtinfo.patch13
-rw-r--r--main/sipsak/APKBUILD12
-rw-r--r--main/sircbot/APKBUILD6
-rw-r--r--main/skalibs/APKBUILD11
-rw-r--r--main/skytraq-datalogger/APKBUILD5
-rw-r--r--main/slang/APKBUILD53
-rw-r--r--main/slang/disable-rpath.patch14
-rw-r--r--main/slang/fix-slarray-32bit.patch19
-rw-r--r--main/smartmontools/APKBUILD8
-rw-r--r--main/smokeping/APKBUILD74
-rw-r--r--main/smokeping/smokeping-2.8.2-no-3rd-party.patch26
-rw-r--r--main/smokeping/smokeping-2.8.2-paths.patch107
-rw-r--r--main/smokeping/smokeping-config.patch135
-rw-r--r--main/smokeping/smokeping-silence.patch22
-rw-r--r--main/smokeping/smokeping.initd8
-rw-r--r--main/snappy/APKBUILD25
-rw-r--r--main/snappy/fix-inline.patch13
-rw-r--r--main/snappy/no-include-gtest.patch14
-rw-r--r--main/sngtc_client/APKBUILD6
-rw-r--r--main/sngtc_client/int-conversion.patch13
-rw-r--r--main/snmptt/APKBUILD11
-rw-r--r--main/snort-extra/APKBUILD34
-rw-r--r--main/snort/APKBUILD106
-rw-r--r--main/snort/gcc13.patch12
-rw-r--r--main/snort/logrotate10
-rw-r--r--main/snort/no-libunwind.patch25
-rw-r--r--main/snort/snort.confd2
-rw-r--r--main/snort/snort.initd29
-rw-r--r--main/snowball/APKBUILD47
-rw-r--r--main/snowball/libstemmer-library.patch47
-rw-r--r--main/sntpc/APKBUILD14
-rw-r--r--main/sntpc/format-security.patch22
-rw-r--r--main/sntpc/sntpc.initd2
-rw-r--r--main/socat/APKBUILD18
-rw-r--r--main/sofia-sip/APKBUILD21
-rw-r--r--main/sofia-sip/Support-forking-SIP-calls.patch186
-rw-r--r--main/softhsm/APKBUILD8
-rw-r--r--main/source-highlight/APKBUILD9
-rw-r--r--main/source-highlight/gcc12.patch82
-rw-r--r--main/spamassassin/APKBUILD6
-rwxr-xr-x[-rw-r--r--]main/spamassassin/spamd.crond12
-rw-r--r--main/spandsp/APKBUILD8
-rw-r--r--main/spandsp3/APKBUILD2
-rw-r--r--main/spawn-fcgi/APKBUILD22
-rw-r--r--main/speedtest-cli/APKBUILD26
-rw-r--r--main/speex/APKBUILD2
-rw-r--r--main/speexdsp/APKBUILD2
-rw-r--r--main/spice-protocol/APKBUILD12
-rw-r--r--main/spice/APKBUILD46
-rw-r--r--main/spice/failing-tests.patch36
-rw-r--r--main/spice/fix-build.patch7
-rw-r--r--main/spirv-headers/APKBUILD9
-rw-r--r--main/spirv-llvm-translator/APKBUILD65
-rw-r--r--main/spirv-tools/APKBUILD11
-rw-r--r--main/sprunge/APKBUILD6
-rw-r--r--main/sqlite-tcl/APKBUILD13
-rw-r--r--main/sqlite-tcl/include-stdint.patch10
-rw-r--r--main/sqlite/APKBUILD44
-rw-r--r--main/sqsh/APKBUILD7
-rw-r--r--main/squark/APKBUILD5
-rw-r--r--main/squashfs-tools/APKBUILD34
-rw-r--r--main/squashfs-tools/fix-compat.patch12
-rw-r--r--main/squid/APKBUILD72
-rw-r--r--main/squid/squid.initd1
-rw-r--r--main/squid/squid.pre-install4
-rw-r--r--main/ssh-getkey-ldap/APKBUILD12
-rw-r--r--main/sshfs/APKBUILD4
-rw-r--r--main/sshguard/APKBUILD13
-rw-r--r--main/sshguard/sshguard.confd6
-rw-r--r--main/sshguard/sshguard.initd13
-rw-r--r--main/sshpass/APKBUILD7
-rw-r--r--main/ssmtp/APKBUILD17
-rw-r--r--main/ssmtp/cast.patch38
-rw-r--r--main/static-routing/APKBUILD1
-rw-r--r--main/statserial/APKBUILD32
-rw-r--r--main/stfl/APKBUILD27
-rw-r--r--main/stfl/ncurses.patch26
-rw-r--r--main/strace/APKBUILD13
-rw-r--r--main/strongswan/0001-charon-add-optional-source-and-remote-overrides-for-.patch580
-rw-r--r--main/strongswan/0002-vici-send-certificates-for-ike-sa-events.patch (renamed from main/strongswan/1002-vici-send-certificates-for-ike-sa-events.patch)42
-rw-r--r--main/strongswan/0003-vici-add-support-for-individual-sa-state-changes.patch (renamed from main/strongswan/1003-vici-add-support-for-individual-sa-state-changes.patch)23
-rw-r--r--main/strongswan/APKBUILD69
-rw-r--r--main/strongswan/charon.logrotate2
-rw-r--r--main/strongswan/disable_test_time_printf_hook.patch51
-rw-r--r--main/su-exec/APKBUILD4
-rw-r--r--main/subunit/APKBUILD33
-rw-r--r--main/subversion/APKBUILD100
-rw-r--r--main/supervisor/APKBUILD24
-rw-r--r--main/swig/APKBUILD18
-rw-r--r--main/swish-e/APKBUILD30
-rw-r--r--main/swish-e/format-security.patch13
-rw-r--r--main/sysfsutils/APKBUILD2
-rw-r--r--main/sysklogd/APKBUILD10
-rwxr-xr-xmain/sysklogd/sysklogd.daily2
-rw-r--r--main/syslinux/APKBUILD6
-rwxr-xr-xmain/syslinux/update-extlinux11
-rw-r--r--main/syslog-ng/APKBUILD108
-rw-r--r--main/syslog-ng/pyversion.patch15
-rw-r--r--main/syslog-ng/syslog-ng.conf4
-rw-r--r--main/talloc/APKBUILD12
-rw-r--r--main/tar/APKBUILD30
-rw-r--r--main/tar/ignore-apk-tools-checksums.patch19
-rw-r--r--main/tarsnap/APKBUILD38
-rw-r--r--main/tcl-tls/APKBUILD5
-rw-r--r--main/tcl/APKBUILD7
-rw-r--r--main/tcpdump/APKBUILD29
-rw-r--r--main/tcpflow/APKBUILD12
-rw-r--r--main/tcpflow/fix-type.patch10
-rw-r--r--main/tcpflow/format-security.patch13
-rw-r--r--main/tdb/APKBUILD6
-rw-r--r--main/termrec/APKBUILD2
-rw-r--r--main/testdisk/APKBUILD11
-rw-r--r--main/tevent/APKBUILD14
-rw-r--r--main/tevent/fix-public-header.patch13
-rw-r--r--main/tevent/python-3.10.patch34
-rw-r--r--main/texinfo/APKBUILD9
-rw-r--r--main/texinfo/texinfo.pre-deinstall3
-rwxr-xr-xmain/texinfo/texinfo.trigger7
-rw-r--r--main/tftp-hpa/APKBUILD17
-rw-r--r--main/tftp-hpa/fix-prompt-flush.patch13
-rw-r--r--main/thin-provisioning-tools/APKBUILD47
-rw-r--r--main/thin-provisioning-tools/paths.patch30
-rw-r--r--main/tiff/APKBUILD86
-rw-r--r--main/tig/APKBUILD18
-rw-r--r--main/tinc/APKBUILD11
-rw-r--r--main/tiny-cloud/APKBUILD79
-rw-r--r--main/tiny-cloud/tiny-cloud-alpine.post-install5
-rw-r--r--main/tiny-cloud/tiny-cloud-aws.post-install5
-rw-r--r--main/tiny-cloud/tiny-cloud-azure.post-install5
-rw-r--r--main/tiny-cloud/tiny-cloud-gcp.post-install5
-rw-r--r--main/tiny-cloud/tiny-cloud-nocloud.post-install5
-rw-r--r--main/tiny-cloud/tiny-cloud-oci.post-install5
-rw-r--r--main/tiny-cloud/tiny-cloud-openrc.pre-upgrade15
-rw-r--r--main/tiny-cloud/tiny-cloud.pre-upgrade6
-rw-r--r--main/tinyproxy/APKBUILD21
-rw-r--r--main/tinyproxy/CVE-2022-40468.patch28
-rw-r--r--main/tinyproxy/tinyproxy.initd2
-rw-r--r--main/tinyxml2/APKBUILD11
-rw-r--r--main/tipidee/APKBUILD86
-rw-r--r--main/tipidee/httpd.run19
-rw-r--r--main/tipidee/httpsd.run23
-rw-r--r--main/tipidee/logger.run5
-rw-r--r--main/tipidee/tipidee.conf18
-rw-r--r--main/tipidee/tipidee.confd33
-rw-r--r--main/tipidee/tipidee.initd65
-rw-r--r--main/tipidee/tipidee.post-deinstall3
-rw-r--r--main/tipidee/tipidee.post-install3
-rw-r--r--main/tipidee/tipidee.pre-install7
-rw-r--r--main/tk/APKBUILD8
-rw-r--r--main/tmux/APKBUILD12
-rw-r--r--main/tolua++/APKBUILD2
-rw-r--r--main/tree/0001-remove-03-cflag.patch25
-rw-r--r--main/tree/APKBUILD18
-rw-r--r--main/ttf-freefont/APKBUILD29
-rw-r--r--main/ttf-tlwg/APKBUILD19
-rw-r--r--main/tunnel/APKBUILD6
-rw-r--r--main/tzdata/APKBUILD33
-rw-r--r--main/u-boot/APKBUILD54
-rw-r--r--main/u-boot/fix-build-with-binutils-2.38.patch42
-rw-r--r--main/u-boot/fix-tools-build.patch14
-rw-r--r--main/u-boot/hifive-unmatched-ramdisk.patch19
-rwxr-xr-xmain/u-boot/update-u-boot15
-rw-r--r--main/ucarp/APKBUILD3
-rw-r--r--main/udev-init-scripts/APKBUILD9
-rw-r--r--main/udev-init-scripts/udev-init-scripts.post-install10
l---------main/udev-init-scripts/udev-init-scripts.post-upgrade1
-rw-r--r--main/udns/APKBUILD30
-rw-r--r--main/ulogd/APKBUILD47
-rw-r--r--main/ulogd/musl-fixes.patch10
-rw-r--r--main/ulogd/ulogd.confd8
-rw-r--r--main/ulogd/ulogd.initd33
-rw-r--r--main/ulogd/ulogd.logrotate2
-rw-r--r--main/umix/APKBUILD26
-rw-r--r--main/umurmur/APKBUILD6
-rw-r--r--main/umurmur/umurmur.initd1
-rw-r--r--main/umurmur/umurmur.post-install2
-rw-r--r--main/unbound/APKBUILD24
-rw-r--r--main/unbound/unbound.initd2
-rw-r--r--main/unfs3/APKBUILD30
-rw-r--r--main/unfs3/fix-tcp.patch55
-rw-r--r--main/unfs3/gcc-10.patch42
-rw-r--r--main/unfs3/implicit.patch25
-rw-r--r--main/unfs3/lfs64.patch30
-rw-r--r--main/unfs3/unfs3-0.9.22-musl.patch34
-rw-r--r--main/unifont/APKBUILD25
-rw-r--r--main/unionfs-fuse/APKBUILD19
-rw-r--r--main/unionfs-fuse/test-exepath.patch33
-rw-r--r--main/unixodbc/APKBUILD8
-rw-r--r--main/unzip/08-allow-greater-hostver-values.patch14
-rw-r--r--main/unzip/13-remove-build-date.patch17
-rw-r--r--main/unzip/21-fix-warning-messages-on-big-files.patch15
-rw-r--r--main/unzip/APKBUILD47
-rw-r--r--main/unzip/CVE-2014-8139.patch (renamed from main/unzip/fix-CVE-2014-8139.patch)0
-rw-r--r--main/unzip/CVE-2021-4217.patch54
-rw-r--r--main/unzip/CVE-2022-0529-and-CVE-2022-0530.patch173
-rw-r--r--main/unzip/large-symlinks.patch38
-rw-r--r--main/unzip/unzip-6.0-exec-shield.patch10
-rw-r--r--main/unzip/unzip-6.0-format-secure.patch90
-rw-r--r--main/unzip/unzip-6.0-timestamp.patch41
-rw-r--r--main/unzip/zipbomb-manpage.patch25
-rw-r--r--main/unzip/zipbomb-part1.patch25
-rw-r--r--main/unzip/zipbomb-part2.patch (renamed from main/unzip/CVE-2019-13232.patch)138
-rw-r--r--main/unzip/zipbomb-part3.patch112
-rw-r--r--main/unzip/zipbomb-part4.patch25
-rw-r--r--main/unzip/zipbomb-part5.patch26
-rw-r--r--main/unzip/zipbomb-part6.patch95
-rw-r--r--main/unzip/zipbomb-switch.patch215
-rw-r--r--main/usb-modeswitch/APKBUILD16
-rw-r--r--main/usbutils/APKBUILD22
-rw-r--r--main/usbutils/hwdata.patch4
-rw-r--r--main/userspace-rcu/APKBUILD6
-rw-r--r--main/util-linux/0001-libblkid-Fix-segfault-when-blkid.conf-doesn-t-exist.patch78
-rw-r--r--main/util-linux/APKBUILD197
-rw-r--r--main/util-linux/login.pamd6
-rw-r--r--main/util-linux/rfkill.initd12
-rw-r--r--main/util-linux/su-l.pamd6
-rw-r--r--main/util-linux/utmps.patch78
-rw-r--r--main/util-macros/APKBUILD13
-rw-r--r--main/utmps/APKBUILD10
-rw-r--r--main/utmps/utmps.pre-install2
-rw-r--r--main/uvncrepeater/APKBUILD5
-rw-r--r--main/uwsgi/APKBUILD21
-rw-r--r--main/uwsgi/musl-fix-python.patch13
-rw-r--r--main/v86d/APKBUILD21
-rw-r--r--main/vala/APKBUILD10
-rw-r--r--main/valgrind/0001-Bug-478624-Valgrind-incompatibility-with-binutils-2..patch136
-rw-r--r--main/valgrind/APKBUILD53
-rw-r--r--main/valgrind/musl.supp46
-rw-r--r--main/valgrind/uclibc.patch10
-rw-r--r--main/valgrind/valgrind-3.13.0-malloc.patch24
-rw-r--r--main/vanessa_adt/APKBUILD2
-rw-r--r--main/vanessa_logger/APKBUILD3
-rw-r--r--main/vanessa_socket/APKBUILD10
-rw-r--r--main/varnish/APKBUILD26
-rw-r--r--main/vde2/APKBUILD63
-rw-r--r--main/vde2/inline.patch21
-rw-r--r--main/vde2/musl-build-fix.patch15
-rw-r--r--main/vde2/vde2.post-down37
-rw-r--r--main/vde2/vde2.pre-install6
-rw-r--r--main/vde2/vde2.pre-up74
-rw-r--r--main/vde2/vde_cryptcab-compile-against-openssl-1.1.0.patch92
-rw-r--r--main/vim/APKBUILD156
-rw-r--r--main/vim/vimrc1
-rw-r--r--main/vlan/APKBUILD4
-rw-r--r--main/vulkan-headers/APKBUILD34
-rw-r--r--main/vulkan-loader/APKBUILD45
-rw-r--r--main/vulkan-tools/APKBUILD49
-rw-r--r--main/wasi-compiler-rt/APKBUILD66
-rw-r--r--main/wasi-libc/APKBUILD37
-rw-r--r--main/wasi-libc/no-double-build.patch11
-rw-r--r--main/wasi-libcxx/APKBUILD136
-rw-r--r--main/wasi-sdk/APKBUILD22
-rw-r--r--main/wayland-protocols/APKBUILD21
-rw-r--r--main/wayland/APKBUILD54
-rw-r--r--main/wayland/tests-ignore-debugger.patch14
-rw-r--r--main/wget/APKBUILD10
-rw-r--r--main/which/APKBUILD7
-rw-r--r--main/wipe/APKBUILD24
-rw-r--r--main/wireguard-tools/APKBUILD4
-rw-r--r--main/wireless-regdb/APKBUILD5
-rw-r--r--main/wireless-tools/APKBUILD18
-rw-r--r--main/wireless-tools/flags.patch54
-rw-r--r--main/wpa_supplicant/0001-nl80211-add-extra-ies-only-if-allowed-by-driver.patch69
-rw-r--r--main/wpa_supplicant/0002-AP-guard-FT-SAE-code-with-CONFIG_IEEE80211R_AP.patch56
-rw-r--r--main/wpa_supplicant/APKBUILD29
-rw-r--r--main/wpa_supplicant/CVE-2023-52160.patch210
-rw-r--r--main/wpa_supplicant/config35
-rw-r--r--main/wpa_supplicant/eloop.patch16
-rw-r--r--main/wpa_supplicant/unsafe-renegotiation-1.patch103
-rw-r--r--main/wpa_supplicant/unsafe-renegotiation-2.patch105
-rw-r--r--main/wpa_supplicant/wpa_supplicant.initd1
-rw-r--r--main/xcb-proto/APKBUILD7
-rw-r--r--main/xcb-util/APKBUILD14
-rw-r--r--main/xen/APKBUILD192
-rw-r--r--main/xen/qemu-xen_paths.patch2
-rw-r--r--main/xen/stubdom-hack.patch2
-rw-r--r--main/xen/xenstored.initd3
-rw-r--r--main/xen/xsa401-4.16-1.patch170
-rw-r--r--main/xen/xsa401-4.16-2.patch191
-rw-r--r--main/xen/xsa402-4.16-1.patch43
-rw-r--r--main/xen/xsa402-4.16-2.patch213
-rw-r--r--main/xen/xsa402-4.16-3.patch284
-rw-r--r--main/xen/xsa402-4.16-4.patch83
-rw-r--r--main/xen/xsa402-4.16-5.patch148
-rw-r--r--main/xen/xsa404-4.16-1.patch239
-rw-r--r--main/xen/xsa404-4.16-2.patch85
-rw-r--r--main/xen/xsa404-4.16-3.patch177
-rw-r--r--main/xfsprogs/APKBUILD23
-rw-r--r--main/xfsprogs/fix-mmap.patch32
-rw-r--r--main/xfsprogs/missing-signal.h.patch12
-rw-r--r--main/xkbcomp/APKBUILD9
-rw-r--r--main/xkeyboard-config/APKBUILD17
-rw-r--r--main/xkeyboard-config/fix-syntax-error.patch58
-rw-r--r--main/xl2tpd/APKBUILD7
-rw-r--r--main/xmlindent/APKBUILD7
-rw-r--r--main/xmlrpc-c/APKBUILD39
-rw-r--r--main/xmlrpc-c/format-security.patch13
-rw-r--r--main/xmlto/APKBUILD5
-rw-r--r--main/xorgproto/APKBUILD8
-rw-r--r--main/xtables-addons-lts/APKBUILD21
-rw-r--r--main/xtables-addons-rpi/APKBUILD63
-rw-r--r--main/xtables-addons/APKBUILD4
-rw-r--r--main/xtrans/APKBUILD15
-rw-r--r--main/xxhash/APKBUILD41
-rw-r--r--main/xz/APKBUILD32
-rw-r--r--main/xz/xzgrep-ZDI-CAN-16587.patch94
-rw-r--r--main/yajl/APKBUILD41
-rw-r--r--main/yaml/APKBUILD11
-rw-r--r--main/yash/APKBUILD107
-rw-r--r--main/yash/default-yashrc.patch25
-rw-r--r--main/yash/global-yashrc8
-rw-r--r--main/yash/sample-yashrc.patch27
-rw-r--r--main/yash/yash.post-install11
-rw-r--r--main/yash/yash.post-upgrade14
-rw-r--r--main/yash/yash.pre-deinstall3
-rw-r--r--main/yasm/74184586228af6c362f970c84fce58da3fcbdec8.patch18
-rw-r--r--main/yasm/APKBUILD36
-rw-r--r--main/yx/APKBUILD5
-rw-r--r--main/zd1211-firmware/APKBUILD27
-rw-r--r--main/zeromq/APKBUILD65
-rw-r--r--main/zeromq/test-driver.patch11
-rw-r--r--main/zfs-lts/APKBUILD25
-rw-r--r--main/zfs-lts/aarch64-disable-neon.patch158
-rw-r--r--main/zfs-rpi/APKBUILD35
-rw-r--r--main/zfs-rpi/aarch64-disable-neon.patch158
-rw-r--r--main/zfs/APKBUILD78
-rw-r--r--main/zfs/alpine-bash-completion-dir.patch10
-rw-r--r--main/zfs/dont-fsck-or-mount-umount-fstab-entries.patch98
-rw-r--r--main/zip/APKBUILD24
-rw-r--r--main/zip/format-security.patch24
-rw-r--r--main/zlib/APKBUILD18
-rw-r--r--main/zlib/Fix-CC-logic-in-configure.patch43
-rw-r--r--main/zlib/configure-Pass-LDFLAGS-to-link-tests.patch74
-rw-r--r--main/zlib/crc32.patch51
-rw-r--r--main/zmap/APKBUILD55
-rw-r--r--main/zmap/byacc.patch12
-rw-r--r--main/zonenotify/APKBUILD3
-rw-r--r--main/zsh/APKBUILD18
-rw-r--r--main/zsh/implicit.patch550
-rw-r--r--main/zsh/skip-test-failing-on-musl.patch25
-rw-r--r--main/zstd/APKBUILD73
3021 files changed, 70138 insertions, 109159 deletions
diff --git a/main/7zip/7-zip-flags.patch b/main/7zip/7-zip-flags.patch
new file mode 100644
index 00000000000..dea4c07ec31
--- /dev/null
+++ b/main/7zip/7-zip-flags.patch
@@ -0,0 +1,49 @@
+diff --git a/CPP/7zip/7zip_gcc.mak b/CPP/7zip/7zip_gcc.mak
+index a8eb6e3..7a16e9e 100755
+--- a/CPP/7zip/7zip_gcc.mak
++++ b/CPP/7zip/7zip_gcc.mak
+@@ -24,7 +24,7 @@ PROGPATH_STATIC = $(O)/$(PROG)s
+
+
+ ifneq ($(CC), xlc)
+-CFLAGS_WARN_WALL = -Werror -Wall -Wextra
++CFLAGS_WARN_WALL = -Wall -Wextra
+ endif
+
+ # for object file
+@@ -32,7 +32,7 @@ endif
+ # -save-temps
+ CFLAGS_BASE_LIST = -c
+ # CFLAGS_BASE_LIST = -S
+-CFLAGS_BASE = -O2 $(CFLAGS_BASE_LIST) $(CFLAGS_WARN_WALL) $(CFLAGS_WARN) \
++CFLAGS_BASE = $(CFLAGS_BASE_LIST) $(CFLAGS_WARN_WALL) $(CFLAGS_WARN) \
+ -DNDEBUG -D_REENTRANT -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
+ -fPIC
+
+@@ -149,7 +149,7 @@ endif
+
+
+
+-CFLAGS = $(MY_ARCH_2) $(LOCAL_FLAGS) $(CFLAGS_BASE2) $(CFLAGS_BASE) $(FLAGS_FLTO) $(CC_SHARED) -o $@
++CFLAGS += $(MY_ARCH_2) $(LOCAL_FLAGS) $(CFLAGS_BASE2) $(CFLAGS_BASE) $(FLAGS_FLTO) $(CC_SHARED) -o $@
+
+
+ ifdef IS_MINGW
+@@ -208,7 +208,7 @@ $(O):
+ # -Wl,--print-gc-sections
+
+ ifneq ($(CC), $(CROSS_COMPILE)clang)
+-LFLAGS_STRIP = -s
++LFLAGS_STRIP =
+ endif
+
+ LFLAGS_ALL = $(LFLAGS_STRIP) $(MY_ARCH_2) $(LDFLAGS) $(FLAGS_FLTO) $(LD_arch) $(OBJS) $(MY_LIBS) $(LIB2)
+@@ -1285,7 +1285,7 @@ predef_cc:
+ $(CC) $(CFLAGS) -E $(SHOW_PREDEF) ../../../../C/CpuArch.c > predef_cc_log
+ # $(CC) $(CFLAGS) -E -dM - < /dev/null
+ predef_cxx:
+- $(CXX) $(CFLAGS) -E $(SHOW_PREDEF) ../../../Common/CrcReg.cpp > predef_cxx_log
++ $(CXX) $(CXXFLAGS) -E $(SHOW_PREDEF) ../../../Common/CrcReg.cpp > predef_cxx_log
+
+ predef: predef_cc predef_cxx
+
diff --git a/main/7zip/7-zip-musl.patch b/main/7zip/7-zip-musl.patch
new file mode 100644
index 00000000000..d184e4525ee
--- /dev/null
+++ b/main/7zip/7-zip-musl.patch
@@ -0,0 +1,63 @@
+diff -ru a/C/CpuArch.c b/C/CpuArch.c
+--- a/C/CpuArch.c 2021-07-13 05:10:00.000000000 -0400
++++ b/C/CpuArch.c 2022-03-05 11:08:23.363390656 -0500
+@@ -421,8 +421,6 @@
+
+ #ifdef USE_HWCAP
+
+-#include <asm/hwcap.h>
+-
+ #define MY_HWCAP_CHECK_FUNC_2(name1, name2) \
+ BoolInt CPU_IsSupported_ ## name1() { return (getauxval(AT_HWCAP) & (HWCAP_ ## name2)) ? 1 : 0; }
+
+diff -ru a/C/Threads.c b/C/Threads.c
+--- a/C/Threads.c 2021-12-21 08:00:00.000000000 -0500
++++ b/C/Threads.c 2022-03-05 11:07:47.203504536 -0500
+@@ -257,7 +257,7 @@
+ */
+
+ // ret2 =
+- pthread_attr_setaffinity_np(&attr, sizeof(*cpuSet), cpuSet);
++ //pthread_attr_setaffinity_np(&attr, sizeof(*cpuSet), cpuSet);
+ // if (ret2) ret = ret2;
+ #endif
+ }
+@@ -267,14 +267,12 @@
+ if (!ret)
+ {
+ p->_created = 1;
+- /*
+ if (cpuSet)
+ {
+ // ret2 =
+ pthread_setaffinity_np(p->_tid, sizeof(*cpuSet), cpuSet);
+ // if (ret2) ret = ret2;
+ }
+- */
+ }
+ }
+ // ret2 =
+diff -ru a/C/Threads.h b/C/Threads.h
+--- a/C/Threads.h 2021-12-21 08:00:00.000000000 -0500
++++ b/C/Threads.h 2022-03-05 11:07:47.203504536 -0500
+@@ -19,6 +19,7 @@
+ #endif
+
+ #include <pthread.h>
++#include <sched.h>
+
+ #endif
+
+diff -ru a/CPP/Windows/SystemInfo.cpp b/CPP/Windows/SystemInfo.cpp
+--- a/CPP/Windows/SystemInfo.cpp 2021-11-06 04:19:39.000000000 -0400
++++ b/CPP/Windows/SystemInfo.cpp 2022-03-05 11:26:27.178812388 -0500
+@@ -36,9 +36,6 @@
+ #endif
+ */
+
+-#ifdef MY_CPU_ARM_OR_ARM64
+-#include <asm/hwcap.h>
+-#endif
+ #endif
+
+ #ifdef __linux__
diff --git a/main/7zip/APKBUILD b/main/7zip/APKBUILD
new file mode 100644
index 00000000000..bdfebbfbe90
--- /dev/null
+++ b/main/7zip/APKBUILD
@@ -0,0 +1,55 @@
+# Maintainer: Alex Xu (Hello71) <alex_y_xu@yahoo.ca>
+pkgname=7zip
+pkgver=23.01
+_pkgver=${pkgver//./}
+pkgrel=0
+pkgdesc="File archiver with a high compression ratio"
+url="https://7-zip.org/"
+arch="all"
+license="LGPL-2.0-only"
+subpackages="$pkgname-doc"
+source="https://7-zip.org/a/7z$_pkgver-src.tar.xz
+ armv7.patch
+ 7-zip-flags.patch
+ 7-zip-musl.patch
+ "
+builddir="$srcdir"
+
+provides="7zip-virtual p7zip=$pkgver-r$pkgrel"
+replaces="p7zip"
+provider_priority=100
+
+build() {
+ cd CPP/7zip/Bundles/Alone2
+ mkdir -p b/g
+ # TODO: enable asm (requires jwasm or uasm)
+ # DISABLE_RAR: RAR codec is non-free
+ # -D_GNU_SOURCE: broken sched.h defines
+ make -f ../../cmpl_gcc.mak \
+ CC="${CC:-cc} $CFLAGS $LDFLAGS -D_GNU_SOURCE" \
+ CXX="${CXX:-c++} $CXXFLAGS $LDFLAGS -D_GNU_SOURCE" \
+ DISABLE_RAR=1
+}
+
+check() {
+ # no proper test suite so just try to compress and decompress some files
+ mkdir tmp
+ CPP/7zip/Bundles/Alone2/b/g/7zz a tmp/7z$_pkgver-src.7z Asm C CPP DOC
+ cd tmp
+ ../CPP/7zip/Bundles/Alone2/b/g/7zz x 7z$_pkgver-src.7z
+ # TODO: check if extracted result is identical
+}
+
+package() {
+ install -Dm755 CPP/7zip/Bundles/Alone2/b/g/7zz "$pkgdir"/usr/bin/7zz
+ ln -s 7zz "$pkgdir"/usr/bin/7z
+
+ install -Dm644 "$builddir"/DOC/* -t "$pkgdir"/usr/share/doc/$pkgname/
+}
+
+sha512sums="
+e39f660c023aa65e55388be225b5591fe2a5c9138693f3c9107e2eb4ce97fafde118d3375e01ada99d29de9633f56221b5b3d640c982178884670cd84c8aa986 7z2301-src.tar.xz
+e52e542709a23ced76b651adf54609efae705801e940e74310ae4e67070bdb3841da5b801362aa0329b77993cdc3f6cd63ac2802240b16cde865f9d01bb1936d armv7.patch
+dfecb69861d00ee47311d83930adf80321b3c95ae01ce325677bde7aee6aa880a1979b0aa2909d9acb7a88ff31f910ac545ac218a0b5fd9e1270df2276b46d44 7-zip-flags.patch
+c652a87ad95f61901820adb61f3d1ceacedcb8aeaf9e89b2b728b7372eff67d9669eb363d5b2d2fb848ff2d8c5a727134fe13cc77d1215df7b2d32fe87711ebf 7-zip-musl.patch
+"
diff --git a/main/7zip/armv7.patch b/main/7zip/armv7.patch
new file mode 100644
index 00000000000..a9f9fc47df9
--- /dev/null
+++ b/main/7zip/armv7.patch
@@ -0,0 +1,21 @@
+we don't have neon on armv7
+--
+diff --git a/C/SwapBytes.c b/C/SwapBytes.c
+index 0bfe95c..834fe4b 100755
+--- a/C/SwapBytes.c
++++ b/C/SwapBytes.c
+@@ -331,12 +331,12 @@ ShufBytes_256(void *items8, const void *lim8, const void *mask128_ptr)
+
+ // compile message "NEON intrinsics not available with the soft-float ABI"
+ #elif defined(MY_CPU_ARM_OR_ARM64) || \
+- (defined(__ARM_ARCH) && (__ARM_ARCH >= 7))
++ (defined(__ARM_ARCH) && (__ARM_ARCH >= 8))
+ // #elif defined(MY_CPU_ARM64)
+
+ #if defined(__clang__) && (__clang_major__ >= 8) \
+ || defined(__GNUC__) && (__GNUC__ >= 8)
+- #if (defined(__ARM_ARCH) && (__ARM_ARCH >= 7)) \
++ #if (defined(__ARM_ARCH) && (__ARM_ARCH >= 8)) \
+ || defined(MY_CPU_ARM64)
+ #define USE_SWAP_128
+ #endif
diff --git a/main/aaudit/APKBUILD b/main/aaudit/APKBUILD
index a7b44e9e95a..585ff1d8760 100644
--- a/main/aaudit/APKBUILD
+++ b/main/aaudit/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=aaudit
pkgver=0.7.2
-pkgrel=2
+pkgrel=3
pkgdesc="Alpine Auditor"
url="https://alpinelinux.org"
arch="noarch"
@@ -19,6 +19,7 @@ source="aaudit-common.lua
aaudit-server.json
"
_luaver="5.2"
+options="!check"
package() {
mkdir -p "$pkgdir"/etc/aaudit \
diff --git a/main/abi-compliance-checker/APKBUILD b/main/abi-compliance-checker/APKBUILD
index cdb13ccc660..9b4b39d984a 100644
--- a/main/abi-compliance-checker/APKBUILD
+++ b/main/abi-compliance-checker/APKBUILD
@@ -2,29 +2,19 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=abi-compliance-checker
pkgver=2.3
-pkgrel=0
+pkgrel=3
pkgdesc="A tool for checking backward compatibility of a C/C++ library"
url="https://github.com/lvc/abi-compliance-checker"
arch="noarch"
-license="LGPL-2.0-or-later"
+license="LGPL-2.1-or-later"
depends="perl build-base"
-depends_dev=""
-makedepends="$depends_dev perl-dev"
+makedepends="perl-dev"
options="!check"
-install=""
-subpackages=""
source="$pkgname-$pkgver.tar.gz::https://github.com/lvc/abi-compliance-checker/archive/$pkgver.tar.gz"
-builddir="${srcdir}"/$pkgname-$pkgver
-
-build() {
- return 0
-}
-
package() {
- cd "$builddir"
mkdir -p "$pkgdir"/usr
- perl Makefile.pl -install --prefix=/usr --destdir="$pkgdir"
+ perl Makefile.pl -install --destdir="$pkgdir"
}
sha512sums="dda5b65c36028da302ed2a8070de72f85fa0ecbc573bdc73d9a06fc6162f8850773b586c7bef8fd48b5ccb2918fbfdf8e70dd16de94cc5fa70617d35579edf2b abi-compliance-checker-2.3.tar.gz"
diff --git a/main/abseil-cpp/0002-abseil.patch b/main/abseil-cpp/0002-abseil.patch
new file mode 100644
index 00000000000..5a8055a9b0e
--- /dev/null
+++ b/main/abseil-cpp/0002-abseil.patch
@@ -0,0 +1,58 @@
+Patch-Source: https://github.com/void-linux/void-packages/blob/master/srcpkgs/mozc/patches/abseil.patch
+
+Ported from grpc's patches
+
+An all-in-one patch that fixes several issues:
+
+1) UnscaledCycleClock not fully implemented for ppc*-musl (disabled on musl)
+2) powerpc stacktrace implementation only works on glibc (disabled on musl)
+4) examine_stack.cpp makes glibc assumptions on powerpc (fixed)
+
+--- a/absl/debugging/internal/examine_stack.cc
++++ b/absl/debugging/internal/examine_stack.cc
+@@ -33,6 +33,10 @@
+ #include <csignal>
+ #include <cstdio>
+
++#if defined(__powerpc__)
++#include <asm/ptrace.h>
++#endif
++
+ #include "absl/base/attributes.h"
+ #include "absl/base/internal/raw_logging.h"
+ #include "absl/base/macros.h"
+@@ -174,8 +178,10 @@
+ return reinterpret_cast<void*>(context->uc_mcontext.pc);
+ #elif defined(__powerpc64__)
+ return reinterpret_cast<void*>(context->uc_mcontext.gp_regs[32]);
++#elif defined(__powerpc__) && defined(__GLIBC__)
++ return reinterpret_cast<void*>(context->uc_mcontext.regs->nip);
+ #elif defined(__powerpc__)
+- return reinterpret_cast<void*>(context->uc_mcontext.uc_regs->gregs[32]);
++ return reinterpret_cast<void*>(((struct pt_regs *)context->uc_regs)->nip);
+ #elif defined(__riscv)
+ return reinterpret_cast<void*>(context->uc_mcontext.__gregs[REG_PC]);
+ #elif defined(__s390__) && !defined(__s390x__)
+--- a/absl/debugging/internal/stacktrace_config.h
++++ b/absl/debugging/internal/stacktrace_config.h
+@@ -60,7 +60,7 @@
+ #elif defined(__i386__) || defined(__x86_64__)
+ #define ABSL_STACKTRACE_INL_HEADER \
+ "absl/debugging/internal/stacktrace_x86-inl.inc"
+-#elif defined(__ppc__) || defined(__PPC__)
++#elif (defined(__ppc__) || defined(__PPC__)) && defined(__GLIBC__)
+ #define ABSL_STACKTRACE_INL_HEADER \
+ "absl/debugging/internal/stacktrace_powerpc-inl.inc"
+ #elif defined(__aarch64__)
+--- a/absl/base/internal/unscaledcycleclock_config.h
++++ b/absl/base/internal/unscaledcycleclock_config.h
+@@ -21,7 +21,8 @@
+
+ // The following platforms have an implementation of a hardware counter.
+ #if defined(__i386__) || defined(__x86_64__) || defined(__aarch64__) || \
+- defined(__powerpc__) || defined(__ppc__) || defined(__riscv) || \
++ defined(__riscv) || \
++ ((defined(__powerpc__) || defined(__ppc__)) && defined(__GLIBC__)) || \
+ defined(_M_IX86) || (defined(_M_X64) && !defined(_M_ARM64EC))
+ #define ABSL_HAVE_UNSCALED_CYCLECLOCK_IMPLEMENTATION 1
+ #else
diff --git a/main/abseil-cpp/APKBUILD b/main/abseil-cpp/APKBUILD
new file mode 100644
index 00000000000..7a3628ce00f
--- /dev/null
+++ b/main/abseil-cpp/APKBUILD
@@ -0,0 +1,163 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Duncan Bellamy <dunk@denkimushi.com>
+pkgname=abseil-cpp
+pkgver=20230802.1
+pkgrel=0
+pkgdesc="Abseil Common Libraries (C++) "
+url="https://abseil.io/"
+arch="all"
+license="Apache-2.0"
+depends_dev="linux-headers"
+makedepends="
+ $depends_dev
+ cmake
+ gtest-dev
+ samurai
+ "
+checkdepends="tzdata"
+subpackages="$pkgname-dev"
+source="https://github.com/abseil/abseil-cpp/archive/$pkgver/abseil-cpp-$pkgver.tar.gz
+ 0002-abseil.patch
+ "
+
+_libs="
+ atomic_hook_test_helper
+ bad_any_cast_impl
+ bad_optional_access
+ bad_variant_access
+ base
+ city
+ civil_time
+ cord
+ cord_internal
+ cordz_functions
+ cordz_handle
+ cordz_info
+ cordz_sample_token
+ crc32c
+ crc_cord_state
+ crc_cpu_detect
+ crc_internal
+ debugging_internal
+ demangle_internal
+ die_if_null
+ examine_stack
+ exception_safety_testing
+ exponential_biased
+ failure_signal_handler
+ flags
+ flags_commandlineflag
+ flags_commandlineflag_internal
+ flags_config
+ flags_internal
+ flags_marshalling
+ flags_parse
+ flags_private_handle_accessor
+ flags_program_name
+ flags_reflection
+ flags_usage
+ flags_usage_internal
+ graphcycles_internal
+ hash
+ hash_generator_testing
+ hashtablez_sampler
+ int128
+ kernel_timeout_internal
+ leak_check
+ log_entry
+ log_flags
+ log_globals
+ log_initialize
+ log_internal_check_op
+ log_internal_conditions
+ log_internal_format
+ log_internal_globals
+ log_internal_log_sink_set
+ log_internal_message
+ log_internal_nullguard
+ log_internal_proto
+ log_internal_test_actions
+ log_internal_test_helpers
+ log_internal_test_matchers
+ log_severity
+ log_sink
+ low_level_hash
+ malloc_internal
+ per_thread_sem_test_common
+ periodic_sampler
+ pow10_helper
+ random_distributions
+ random_internal_distribution_test_util
+ random_internal_platform
+ random_internal_pool_urbg
+ random_internal_randen
+ random_internal_randen_hwaes
+ random_internal_randen_hwaes_impl
+ random_internal_randen_slow
+ random_internal_seed_material
+ random_seed_gen_exception
+ random_seed_sequences
+ raw_hash_set
+ raw_logging_internal
+ scoped_mock_log
+ scoped_set_env
+ spinlock_test_common
+ spinlock_wait
+ stack_consumption
+ stacktrace
+ status
+ statusor
+ str_format_internal
+ strerror
+ string_view
+ strings
+ strings_internal
+ symbolize
+ synchronization
+ test_instance_tracker
+ throw_delegate
+ time
+ time_internal_test_util
+ time_zone
+ "
+
+for _lib in $_libs; do
+ subpackages="$subpackages $pkgname-${_lib//_/-}:abseillib"
+done
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_CXX_STANDARD=17 \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=ON \
+ -DABSL_BUILD_TESTING=ON \
+ -DABSL_BUILD_TEST_HELPERS=ON \
+ -DABSL_USE_EXTERNAL_GOOGLETEST=ON \
+ -DABSL_PROPAGATE_CXX_STD=ON \
+ -DABSL_FIND_GOOGLETEST=ON
+ cmake --build build
+}
+
+# disable broken tests
+check() {
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest --test-dir build -E "absl_str_format_convert_test|absl_mutex_test\
+|absl_notification_test|absl_per_thread_sem_test|absl_sysinfo_test|absl_random_beta_distribution_test|absl_cord_rep_btree_navigator_test"
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+abseillib() {
+ pkgdesc="Abseil Common C++ library: $subpkgname"
+
+ local libname="${subpkgname#"$pkgname"-}"
+ amove usr/lib/libabsl_${libname//-/_}.so.*
+}
+
+sha512sums="
+14390380655c41483a98487e3b012110dd8d1743fdd68d8cde7e0d7c2730312d564b15726d8c9d2fff237d2fce3983bbbb5213f59612c7c6feaeb402dff9609f abseil-cpp-20230802.1.tar.gz
+aca4f4d89c38ca9038fdeb5b9e92c68d7ce0dda79f83335238f5e8de08c1a4d1e1ddd00e9ad6da18f0ab4ee22b58d73039f5523dc9311c7dbe1998f0f59a0e58 0002-abseil.patch
+"
diff --git a/main/abuild/0001-abuild-allow-packages-to-install-under-run.patch b/main/abuild/0001-abuild-allow-packages-to-install-under-run.patch
new file mode 100644
index 00000000000..312df410af6
--- /dev/null
+++ b/main/abuild/0001-abuild-allow-packages-to-install-under-run.patch
@@ -0,0 +1,29 @@
+From c48f8498e72928778a0501f8c958f0f61c214858 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Sat, 20 Apr 2024 08:16:55 +0200
+Subject: [PATCH] abuild: allow packages to install under run
+
+I have some vauge memory that it is conveinent for Docker users that the
+state dir under /run exists.
+
+Allow this for alpine 3.20 and revisit later.
+---
+ abuild.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/abuild.in b/abuild.in
+index ac0b6ff..f873620 100644
+--- a/abuild.in
++++ b/abuild.in
+@@ -782,7 +782,7 @@ postcheck() {
+ msg "Running postcheck for $name"
+ # checking for FHS compat
+ if ! options_has "!fhs"; then
+- for i in srv usr/local opt run var/run tmp var/tmp var/lock var/empty home sys proc mnt dev; do
++ for i in srv usr/local opt var/run tmp var/tmp var/lock var/empty home sys proc mnt dev; do
+ for j in "$dir"/"$i"/* "$dir"/"$i"/.[!.]* "$dir"/"$i"/..?*; do
+ if [ -L "$j" ] || [ -e "$j" ]; then
+ error "Packages must not put anything under /$i"
+--
+2.44.0
+
diff --git a/main/abuild/0001-abuild-pass-APORTS_BOOTSTRAP-to-bubblewrap.patch b/main/abuild/0001-abuild-pass-APORTS_BOOTSTRAP-to-bubblewrap.patch
new file mode 100644
index 00000000000..9baacd2b23d
--- /dev/null
+++ b/main/abuild/0001-abuild-pass-APORTS_BOOTSTRAP-to-bubblewrap.patch
@@ -0,0 +1,24 @@
+From eeca95d195652ef3506a154e9d18fd98f0dbf5b2 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Fri, 19 Apr 2024 23:41:45 +0200
+Subject: [PATCH] abuild: pass APORTS_BOOTSTRAP to bubblewrap
+
+---
+ abuild.in | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/abuild.in b/abuild.in
+index 3e41902..ac0b6ff 100644
+--- a/abuild.in
++++ b/abuild.in
+@@ -2627,6 +2627,7 @@ rootbld() {
+ --setenv REPODEST "$REPODEST" \
+ --setenv ABUILD_USERDIR "$ABUILD_USERDIR" \
+ ${ABUILD_BOOTSTRAP:+--setenv ABUILD_BOOTSTRAP "$ABUILD_BOOTSTRAP"} \
++ ${APORTS_BOOTSTRAP:+--setenv APORTS_BOOTSTRAP "$APORTS_BOOTSTRAP"} \
+ --setenv SOURCE_DATE_EPOCH "$SOURCE_DATE_EPOCH" \
+ --setenv ABUILD_LAST_COMMIT "$ABUILD_LAST_COMMIT" \
+ --setenv PATH ${USE_CCACHE:+/usr/lib/ccache/bin:}/bin:/usr/bin:/sbin:/usr/sbin \
+--
+2.44.0
+
diff --git a/main/abuild/0001-abuild-skip-var-run-in-fhs-check.patch b/main/abuild/0001-abuild-skip-var-run-in-fhs-check.patch
new file mode 100644
index 00000000000..31a2ea3ba7d
--- /dev/null
+++ b/main/abuild/0001-abuild-skip-var-run-in-fhs-check.patch
@@ -0,0 +1,29 @@
+From 68d6aa65f43557de008abc7ec97856906bf5e657 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Sun, 21 Apr 2024 10:35:19 +0200
+Subject: [PATCH] abuild: skip /var/run in fhs check
+
+We have many package containing directories under /var/run. Allow those
+for now.
+
+Partially reverts commit 08d2d81587d9 (abuild: extend fhs check)
+---
+ abuild.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/abuild.in b/abuild.in
+index f873620..0f70a4b 100644
+--- a/abuild.in
++++ b/abuild.in
+@@ -782,7 +782,7 @@ postcheck() {
+ msg "Running postcheck for $name"
+ # checking for FHS compat
+ if ! options_has "!fhs"; then
+- for i in srv usr/local opt var/run tmp var/tmp var/lock var/empty home sys proc mnt dev; do
++ for i in srv usr/local opt tmp var/tmp var/lock var/empty home sys proc mnt dev; do
+ for j in "$dir"/"$i"/* "$dir"/"$i"/.[!.]* "$dir"/"$i"/..?*; do
+ if [ -L "$j" ] || [ -e "$j" ]; then
+ error "Packages must not put anything under /$i"
+--
+2.44.0
+
diff --git a/main/abuild/APKBUILD b/main/abuild/APKBUILD
index 7f029cc0969..2aab2588e86 100644
--- a/main/abuild/APKBUILD
+++ b/main/abuild/APKBUILD
@@ -1,44 +1,47 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=abuild
-pkgver=3.9.0
+pkgver=3.13.0
_ver=${pkgver%_git*}
-pkgrel=2
+pkgrel=3
pkgdesc="Script to build Alpine Packages"
url="https://git.alpinelinux.org/cgit/abuild/"
arch="all"
license="GPL-2.0-only"
-depends="fakeroot scanelf openssl apk-tools>=2.0.7-r1 libc-utils
- attr tar pkgconf patch lzip"
-if [ "$CBUILD" = "$CHOST" ]; then
- depends="$depends curl"
-fi
+depends="
+ apk-tools>=2.0.7-r1
+ attr
+ cmd:getcap
+ fakeroot
+ musl-utils
+ lzip
+ openssl>3
+ patch
+ pkgconf
+ scanelf
+ tar
+ "
makedepends_build="pkgconfig scdoc"
-makedepends_host="openssl1.1-compat-dev zlib-dev"
+makedepends_host="openssl-dev>3 zlib-dev"
makedepends="$makedepends_host $makedepends_build"
-checkdepends="bats"
+checkdepends="cmd:setcap kyua git"
install="$pkgname.pre-install $pkgname.pre-upgrade"
subpackages="
apkbuild-cpan:cpan:noarch
apkbuild-gem-resolver:gems:noarch
apkbuild-pypi:pypi:noarch
abuild-rootbld:_rootbld:noarch
+ abuild-sudo:_sudo
$pkgname-doc
"
options="suid"
pkggroups="abuild"
source="https://gitlab.alpinelinux.org/alpine/abuild/-/archive/$pkgver/abuild-$pkgver.tar.gz
- mr60-newapkbuild-use-abuild-meson.patch
- mr128-newapkbuild-fetch-rust-deps-in-prepare.patch
- mr131-newapkbuild-change-cmake-build-type.patch
+ 0001-abuild-pass-APORTS_BOOTSTRAP-to-bubblewrap.patch
+ 0001-abuild-allow-packages-to-install-under-run.patch
+ 0001-abuild-skip-var-run-in-fhs-check.patch
"
builddir="$srcdir"/abuild-$pkgver
-prepare() {
- default_prepare
-
- sed -i -e "/^CHOST=/s/=.*/=$CHOST/" abuild.conf
-}
-
build() {
make VERSION="$pkgver-r$pkgrel"
}
@@ -51,6 +54,33 @@ package() {
make install VERSION="$pkgver-r$pkgrel" DESTDIR="$pkgdir"
install -m 644 abuild.conf "$pkgdir"/etc/abuild.conf
+
+ case "$CARCH" in
+ x86*|ppc64le)
+ # binutils only supports it here
+ cat >>"$pkgdir"/usr/share/abuild/default.conf <<-EOF
+
+ # binutils ld.bfd supports this on this architecture; default to it
+ export RUSTFLAGS="\$RUSTFLAGS -Clink-arg=-Wl,-z,pack-relative-relocs"
+ export LDFLAGS="\$LDFLAGS -Wl,-z,pack-relative-relocs"
+ EOF
+ esac
+
+ case "$CARCH" in
+ x86_64)
+ # https://lists.alpinelinux.org/~alpine/devel/%3C1628515011.zujvcn248v.none%40localhost%3E
+ # note that this is x86-exclusive. on other architectures, this is pretty much always bad
+ # https://github.com/rust-lang/rust/pull/106380
+ cat >>"$pkgdir"/usr/share/abuild/default.conf <<-EOF
+
+ # -fno-plt has very slight improvements to general code size and speed on x86-only,
+ # for the common system dynamic linking case
+ export CFLAGS="\$CFLAGS -fno-plt"
+ export CXXFLAGS="\$CXXFLAGS -fno-plt"
+ EOF
+ ;;
+ esac
+
install -d -m 775 -g abuild "$pkgdir"/var/cache/distfiles
}
@@ -59,16 +89,14 @@ cpan() {
depends="perl perl-libwww perl-json perl-module-build perl-module-build-tiny
perl-lwp-protocol-https"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/apkbuild-cpan "$subpkgdir"/usr/bin/
+ amove usr/bin/apkbuild-cpan
}
gems() {
pkgdesc="APKBUILD dependency resolver for RubyGems"
depends="ruby ruby-augeas"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/apkbuild-gem-resolver "$subpkgdir"/usr/bin/
+ amove usr/bin/apkbuild-gem-resolver
}
pypi() {
@@ -76,8 +104,7 @@ pypi() {
depends="perl perl-libwww perl-json perl-module-build-tiny perl-lwp-protocol-https
perl-ipc-system-simple"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/apkbuild-pypi "$subpkgdir"/usr/bin/
+ amove usr/bin/apkbuild-pypi
}
_rootbld() {
@@ -86,9 +113,18 @@ _rootbld() {
mkdir -p "$subpkgdir"
}
+_sudo() {
+ pkgdesc="Simple privilege elevation tools for building packages"
+ depends=""
+ install_if="$pkgname=$pkgver-r$pkgrel"
+
+ amove usr/bin/abuild-sudo usr/bin/abuild-apk usr/bin/abuild-adduser \
+ usr/bin/abuild-addgroup
+}
+
sha512sums="
-a3075b18d4a085ca796d1c2df703c3e7c80e682623175eb0822479f3a6d96ffba571f283bdec8ae3db832e296f9e58bdd0f58097b86b503a91fbb40148084a68 abuild-3.9.0.tar.gz
-a52fa7978d61f1636dbe3d120fee4e3fab6fae018a91f662c082f4eab37e6fd63d74c55124fd50fa3a676a8af71ba858cebf93f3ca21f95b03d3478fa1e55e6b mr60-newapkbuild-use-abuild-meson.patch
-f8d5c131cefb1c10d34962994ee3158fd8155acf68616fe471a7d07ce15e04d184bdfa3c181ec19bd1ca95e0f5acf1664f14a52b29451b2760aa580222e75f73 mr128-newapkbuild-fetch-rust-deps-in-prepare.patch
-56b71c3feff5a17d9550e1947fe316b7c7aa397f9e365532410e492ea992b8bfcfbb97041ddc2128c7bb9772e9e03584a9f5d5f5bcced00a1082e7374f02801a mr131-newapkbuild-change-cmake-build-type.patch
+9aa46693984bd65a1a940d4547239e0a10170e82f186ab231b0d3a26b09a75cf258fae0e16f936e79cf52353dce9fc8a18881e84042b7961f390aba3f34d88da abuild-3.13.0.tar.gz
+2d7cf76202bd50e97fa3ed517c82dd94cbddd27b43d51e41e97c4281092565046aa55cab0869b20753c6bc1d592194528700a779426b67177b9ee7632c943742 0001-abuild-pass-APORTS_BOOTSTRAP-to-bubblewrap.patch
+f7a4240972d33be36931527f4764cb8852989f724406cc079567e71875e7ca7b4c897755770a26f9901ebe9faf166d0e8eb88cb028cbf012f55ddd6efad47e6e 0001-abuild-allow-packages-to-install-under-run.patch
+b94819e61a0a5a7a835bbf7d879371ff1f1573e93c40bb9f7a05b8a54fafbf8fe9234ddaefc2f0dc280d918639fe4193422fa8a56225c622d65466049efe9824 0001-abuild-skip-var-run-in-fhs-check.patch
"
diff --git a/main/abuild/mr128-newapkbuild-fetch-rust-deps-in-prepare.patch b/main/abuild/mr128-newapkbuild-fetch-rust-deps-in-prepare.patch
deleted file mode 100644
index 298f717e3ba..00000000000
--- a/main/abuild/mr128-newapkbuild-fetch-rust-deps-in-prepare.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-Patch-Source: https://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/128
---
-From 29611f3a6929b4edecd89506e666f963fa25ae52 Mon Sep 17 00:00:00 2001
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Thu, 16 Dec 2021 00:19:07 +0100
-Subject: [PATCH 1/2] newapkbuild: fetch rust dependencies in prepare phase
-
-Fetch all dependencies in the prepare phase and do not access network
-in the following phases.
----
- newapkbuild.in | 27 ++++++++++++++++++++++++---
- 1 file changed, 24 insertions(+), 3 deletions(-)
-
-diff --git a/newapkbuild.in b/newapkbuild.in
-index c58d519..0182ad2 100644
---- a/newapkbuild.in
-+++ b/newapkbuild.in
-@@ -30,6 +30,12 @@ is_github_url() {
- return 1
- }
-
-+prepare_rust() {
-+ cat >>APKBUILD<<__EOF__
-+ cargo fetch --locked
-+__EOF__
-+}
-+
- # Build sections
- build_make() {
- cat >>APKBUILD<<__EOF__
-@@ -104,7 +110,7 @@ __EOF__
-
- build_rust() {
- cat >>APKBUILD<<__EOF__
-- cargo build --release --locked
-+ cargo build --frozen --release
- __EOF__
- }
-
-@@ -150,7 +156,7 @@ __EOF__
-
- check_rust() {
- cat >>APKBUILD<<__EOF__
-- cargo test --release --locked
-+ cargo test --frozen --release
- __EOF__
- }
-
-@@ -199,7 +205,7 @@ __EOF__
-
- package_rust() {
- cat >>APKBUILD<<__EOF__
-- cargo install --locked --path . --root="\$pkgdir/usr"
-+ cargo install --frozen --offline --path . --root="\$pkgdir/usr"
- rm "\$pkgdir"/usr/.crates*
- __EOF__
- }
-@@ -333,6 +339,21 @@ __EOF__
- fi
- fi
-
-+ case "$buildtype" in
-+ rust)
-+ cat >>APKBUILD<<__EOF__
-+prepare() {
-+ default_prepare
-+
-+__EOF__
-+ prepare_rust
-+ cat >>APKBUILD<<__EOF__
-+}
-+
-+__EOF__
-+ ;;
-+ esac
-+
- # Create build() function
- cat >>APKBUILD<<__EOF__
- build() {
---
-GitLab
-
-
-From 0a9374e4ffa8202ba011497ea39fb5443d7ef9a5 Mon Sep 17 00:00:00 2001
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Thu, 16 Dec 2021 00:23:48 +0100
-Subject: [PATCH 2/2] newapkbuild: do not run cargo test with --release
-
-It takes a longer time to compile and, most importantly, it may cause
-unnecessary rebuild of everything in the package phase (installation).
----
- newapkbuild.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/newapkbuild.in b/newapkbuild.in
-index 0182ad2..9e8643d 100644
---- a/newapkbuild.in
-+++ b/newapkbuild.in
-@@ -156,7 +156,7 @@ __EOF__
-
- check_rust() {
- cat >>APKBUILD<<__EOF__
-- cargo test --frozen --release
-+ cargo test --frozen
- __EOF__
- }
-
---
-GitLab
-
diff --git a/main/abuild/mr131-newapkbuild-change-cmake-build-type.patch b/main/abuild/mr131-newapkbuild-change-cmake-build-type.patch
deleted file mode 100644
index 5b98b499a41..00000000000
--- a/main/abuild/mr131-newapkbuild-change-cmake-build-type.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-Patch-Source: https://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/131
---
-From 6c43d67a053be0476384fcf8252c07fa2a235a87 Mon Sep 17 00:00:00 2001
-From: psykose <alice@ayaya.dev>
-Date: Thu, 30 Dec 2021 21:48:50 +0000
-Subject: [PATCH] newapkbuild: refine default cmake format
-
-MinSizeRel is a better recommended default- of course it can still be
-overriden.
-the dot is redundant- we already specify -B and so the dot is implicitly
-cwd.
----
- newapkbuild.in | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/newapkbuild.in b/newapkbuild.in
-index c58d519..63b387d 100644
---- a/newapkbuild.in
-+++ b/newapkbuild.in
-@@ -65,8 +65,8 @@ build_cmake() {
- -DCMAKE_INSTALL_PREFIX=/usr \\
- -DCMAKE_INSTALL_LIBDIR=lib \\
- -DBUILD_SHARED_LIBS=True \\
-- -DCMAKE_BUILD_TYPE=None \\
-- \$CMAKE_CROSSOPTS .
-+ -DCMAKE_BUILD_TYPE=MinSizeRel \\
-+ \$CMAKE_CROSSOPTS
- cmake --build build
- __EOF__
- }
---
-GitLab
-
diff --git a/main/abuild/mr60-newapkbuild-use-abuild-meson.patch b/main/abuild/mr60-newapkbuild-use-abuild-meson.patch
deleted file mode 100644
index 44aefd46bf4..00000000000
--- a/main/abuild/mr60-newapkbuild-use-abuild-meson.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-Patch-Source: https://gitlab.alpinelinux.org/alpine/abuild/-/merge_requests/60
---
-From 55b66b3ad702ba673384126d98026043cdf949ef Mon Sep 17 00:00:00 2001
-From: Leo <thinkabit.ukim@gmail.com>
-Date: Tue, 7 Jul 2020 13:37:31 -0300
-Subject: [PATCH] newapkbuild: use meson-abuild helper instead of meson
-
-abuild-meson is a shellscript that wraps around meson and passes options
-meant for packaging software that uses meson, for Alpine Linux.
----
- newapkbuild.in | 7 +------
- 1 file changed, 1 insertion(+), 6 deletions(-)
-
-diff --git a/newapkbuild.in b/newapkbuild.in
-index c58d519..d7a2eb5 100644
---- a/newapkbuild.in
-+++ b/newapkbuild.in
-@@ -78,12 +78,7 @@ build_meson() {
- # TODO For cross compilation a cross_file needs to be created.
-
- cat >>APKBUILD<<__EOF__
-- meson \\
-- --prefix=/usr \\
-- --sysconfdir=/etc \\
-- --mandir=/usr/share/man \\
-- --localstatedir=/var \\
-- --buildtype=plain \\
-+ abuild-meson \\
- . output
- meson compile \${JOBS:+-j \${JOBS}} -C output
- __EOF__
---
-GitLab
-
diff --git a/main/acct/APKBUILD b/main/acct/APKBUILD
index 3b665ea853a..769a8545410 100644
--- a/main/acct/APKBUILD
+++ b/main/acct/APKBUILD
@@ -3,7 +3,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=acct
pkgver=6.6.4
-pkgrel=1
+pkgrel=2
pkgdesc="The GNU Accounting Utilities"
url="https://www.gnu.org/software/acct/"
arch="all"
diff --git a/main/acf-alpine-baselayout/APKBUILD b/main/acf-alpine-baselayout/APKBUILD
index 992cf75240f..5efd2a78ce1 100644
--- a/main/acf-alpine-baselayout/APKBUILD
+++ b/main/acf-alpine-baselayout/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Ted Trask <ttrask01@yahoo.com>
# Maintainer: Ted Trask <ttrask01@yahoo.com>
pkgname=acf-alpine-baselayout
-pkgver=0.13.3
-pkgrel=2
+pkgver=0.13.4
+pkgrel=0
pkgdesc="Web-based system administration interface for alpine-baselayout"
url="https://gitlab.alpinelinux.org/acf/acf-alpine-baselayout"
arch="noarch"
@@ -17,5 +17,5 @@ package() {
}
sha512sums="
-cd94b419a248f26d009e01cc47dee8ac8693cd42756429c62e9f817017d283ec78c1ceeb549e4c43eac360505b979a5e713971b64b1e9e977fd3ec8a4f6f1547 acf-alpine-baselayout-v0.13.3.tar.gz
+f1f888c6da169c6603892ec10beee15ba943c470ee78c76e24a27be6e50df963cc8f77624b181966a892309fb2a0d8ffa9176497e6d2e6d3eecb0231cd73652b acf-alpine-baselayout-v0.13.4.tar.gz
"
diff --git a/main/acf-alpine-conf/APKBUILD b/main/acf-alpine-conf/APKBUILD
index 73bacc523c2..8f38fd3f965 100644
--- a/main/acf-alpine-conf/APKBUILD
+++ b/main/acf-alpine-conf/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Ted Trask <ttrask01@yahoo.com>
# Maintainer: Ted Trask <ttrask01@yahoo.com>
pkgname=acf-alpine-conf
-pkgver=0.9.0
-pkgrel=6
+pkgver=0.9.1
+pkgrel=0
pkgdesc="Web-based system administration interface for alpine-conf"
url="https://gitlab.alpinelinux.org/acf/acf-alpine-conf"
arch="noarch"
@@ -17,5 +17,5 @@ package() {
}
sha512sums="
-11fa3d69408bb4f37e2dc14f0e08428c6dd111017ba546ee6641571f0cef8f3290a074075ca1618e65c5992d315fbbcc246ceb55fa8656f7701b7c901baedb02 acf-alpine-conf-v0.9.0.tar.gz
+d94d4ed2d22f77917fb0ef55b17571aeac152203dfa098d0175f58e75f95a69bce71f4f2bb362e24c44d8c7f5d5bdc0e618bd0121534f3e3843a3f6781005818 acf-alpine-conf-v0.9.1.tar.gz
"
diff --git a/main/acf-chrony/APKBUILD b/main/acf-chrony/APKBUILD
index 0668c13bddf..f241dc17945 100644
--- a/main/acf-chrony/APKBUILD
+++ b/main/acf-chrony/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Ted Trask <ttrask01@yahoo.com>
# Maintainer: Ted Trask <ttrask01@yahoo.com>
pkgname=acf-chrony
-pkgver=0.8.0
-pkgrel=4
+pkgver=0.8.1
+pkgrel=0
pkgdesc="Web-based system administration interface for chrony"
url="https://gitlab.alpinelinux.org/acf/acf-chrony"
arch="noarch"
@@ -17,5 +17,5 @@ package() {
}
sha512sums="
-a53e07a90f1aaf65437eb19fb3080241afc4a4fb430033052d84a131407398d69733a874a54cfa807f4afb4d0435db30eccf1f2be2869a38cdc6095f4720ff85 acf-chrony-v0.8.0.tar.gz
+da76afb4225cc55d9beaf88230d844fccb86956832c1e036b084407d4fd4e6db4209fc60296d2c5c475dc61cad78bbbd0f28ffdb6324957c82d78a4b4a9a83bc acf-chrony-v0.8.1.tar.gz
"
diff --git a/main/acf-core/APKBUILD b/main/acf-core/APKBUILD
index b654db9fdc6..f7c0a9053f4 100644
--- a/main/acf-core/APKBUILD
+++ b/main/acf-core/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: Ted Trask <ttrask01@yahoo.com>
# Maintainer: Ted Trask <ttrask01@yahoo.com>
-_luaversion="5.2"
+_luaversion="5.4"
pkgname=acf-core
-pkgver=0.22.0
-pkgrel=2
+pkgver=0.24.0
+pkgrel=0
pkgdesc="Web-based system administration interface framework"
url="https://gitlab.alpinelinux.org/acf/acf-core"
arch="noarch"
@@ -13,14 +13,15 @@ install="$pkgname.post-upgrade"
depends="acf-jquery acf-lib acf-skins haserl-lua$_luaversion lua$_luaversion
lua$_luaversion-posix lua$_luaversion-md5 lua-json4
lua$_luaversion-subprocess"
-source="https://gitlab.alpinelinux.org/acf/acf-core/-/archive/v$pkgver/acf-core-v$pkgver.tar.gz"
+source="https://gitlab.alpinelinux.org/acf/acf-core/-/archive/v$pkgver/acf-core-v$pkgver.tar.gz
+ "
builddir="$srcdir/$pkgname-v$pkgver"
package() {
sed "s~luadir=.*~luadir=\${prefix}/share/lua/$_luaversion/acf~" -i config.mk
# fix shebang
- sed -i -e "1s:#!/usr/bin/haserl :#!/usr/bin/haserl-lua$_luaversion :" \
+ sed -i -e "1s:#!/usr/bin/haserl[^ ]* :#!/usr/bin/haserl-lua$_luaversion :" \
www/cgi-bin/acf
sed -i -e "1s:#!/usr/bin/lua.*:#!/usr/bin/lua$_luaversion:" \
@@ -31,5 +32,5 @@ package() {
}
sha512sums="
-0d379a92a55f11a894a64bbe8c577e279c33527003eb78c88e5a23f7cd3a5516fc2038e1bb7fdefc54bab5f70a1a3645c2d2d6dd2de16497fd425df75ac9011e acf-core-v0.22.0.tar.gz
+66f184c156f1306f20fb2219f25447c757c883e8a05adbdd149c3c97e8f16b7613cbe44d4e211deaa74a34dd422e20f0b52c73c77f7b24931949a959d2cd234e acf-core-v0.24.0.tar.gz
"
diff --git a/main/acf-freeswitch-vmail/APKBUILD b/main/acf-freeswitch-vmail/APKBUILD
index e24eb108ca3..f51963263c5 100644
--- a/main/acf-freeswitch-vmail/APKBUILD
+++ b/main/acf-freeswitch-vmail/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Ted Trask <ttrask01@yahoo.com>
pkgname=acf-freeswitch-vmail
pkgver=0.6.2
-pkgrel=4
+pkgrel=5
pkgdesc="ACF for a web interface for freeswitch voicemail"
url="https://gitlab.alpinelinux.org/acf/acf-freeswitch-vmail"
arch="noarch"
@@ -10,7 +10,7 @@ license="GPL-2.0-only"
options="!check" # no test suite
depends="acf-core lua-sql-sqlite3 lua-socket freeswitch"
install="$pkgname.post-upgrade"
-source="https://gitlab.alpinelinux.org/acf/acf-freeswitch-vmail/-/archive/v$pkgver/acf-freeswitch-vmail-v$pkgver.tar.gz"
+source="$pkgname-$pkgver-2.tar.gz::https://gitlab.alpinelinux.org/acf/acf-freeswitch-vmail/-/archive/v$pkgver/acf-freeswitch-vmail-v$pkgver.tar.gz"
builddir="$srcdir/$pkgname-v$pkgver"
package() {
@@ -18,5 +18,5 @@ package() {
}
sha512sums="
-5109b231f9c949b222240b42cee5dd82f9fb3dad2c1bc28443c969179ba420cd0b416e02d83b88d3530a98c0cc18f539a6645b7b5143465470f4b11cb9142efa acf-freeswitch-vmail-v0.6.2.tar.gz
+5109b231f9c949b222240b42cee5dd82f9fb3dad2c1bc28443c969179ba420cd0b416e02d83b88d3530a98c0cc18f539a6645b7b5143465470f4b11cb9142efa acf-freeswitch-vmail-0.6.2-2.tar.gz
"
diff --git a/main/acf-freeswitch/APKBUILD b/main/acf-freeswitch/APKBUILD
index b78ddc278ac..a0d7c490424 100644
--- a/main/acf-freeswitch/APKBUILD
+++ b/main/acf-freeswitch/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Ted Trask <ttrask01@yahoo.com>
pkgname=acf-freeswitch
pkgver=0.8.0
-pkgrel=4
+pkgrel=5
pkgdesc="ACF for freeswitch"
url="https://gitlab.alpinelinux.org/acf/acf-freeswitch"
arch="noarch"
diff --git a/main/acf-kamailio/APKBUILD b/main/acf-kamailio/APKBUILD
index 548151f8449..a4a094ec773 100644
--- a/main/acf-kamailio/APKBUILD
+++ b/main/acf-kamailio/APKBUILD
@@ -9,7 +9,6 @@ arch="noarch"
license="GPL-2.0-only"
options="!check" # no test suite
depends="acf-core kamailio acf-db-lib"
-makedepends="acf-db-lib"
source="https://gitlab.alpinelinux.org/acf/acf-kamailio/-/archive/v$pkgver/acf-kamailio-v$pkgver.tar.gz"
builddir="$srcdir/$pkgname-v$pkgver"
diff --git a/main/acf-lib/APKBUILD b/main/acf-lib/APKBUILD
index 6cd443beb7f..457ea511986 100644
--- a/main/acf-lib/APKBUILD
+++ b/main/acf-lib/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: Ted Trask <ttrask01@yahoo.com>
# Maintainer: Ted Trask <ttrask01@yahoo.com>
-_luaversions="5.1 5.2"
+_luaversions="5.1 5.2 5.3 5.4"
pkgname=acf-lib
-pkgver=0.11.0
-pkgrel=2
+pkgver=0.11.1
+pkgrel=0
pkgdesc="Lua libraries for ACF"
url="https://gitlab.alpinelinux.org/acf/acf-lib"
arch="noarch"
@@ -19,7 +19,6 @@ builddir="$srcdir/$pkgname-v$pkgver"
package() {
mkdir -p "$pkgdir"
echo "package with pkgdir=$pkgdir"
- cd "$builddir"
for _i in $_luaversions; do
sed "s~luadir=.*~luadir=\${prefix}/share/lua/$_i/acf~" -i config.mk
make DESTDIR="$pkgdir-lua$_i" install
@@ -39,5 +38,5 @@ for _i in $_luaversions; do
done
sha512sums="
-5284f0aa81491c83c89def0a957424958d709881f9a10a435b5ff0cffb5ffa26622986605ca6f9d034f183cc5f5778fa1f9d668eeb23bf054df1effd5bc43302 acf-lib-v0.11.0.tar.gz
+7ad8cfe6475f7febaaf0ed8774d78d4e53a4ebfa0de9d65249b0c4c1ef316211c4d3e5339dc502f8c8d27906f6c8b3e54a74e3b5d00b8b5cf26e6b01861b2aef acf-lib-v0.11.1.tar.gz
"
diff --git a/main/acf-mariadb/APKBUILD b/main/acf-mariadb/APKBUILD
index 99e5ef1382c..4d0777a36d1 100644
--- a/main/acf-mariadb/APKBUILD
+++ b/main/acf-mariadb/APKBUILD
@@ -9,7 +9,6 @@ arch="noarch"
license="GPL-2.0-only"
options="!check" # no test suite
depends="acf-core mariadb mariadb-client lua-sql-mysql acf-db-lib"
-makedepends="acf-db-lib"
replaces="acf-mysql"
source="https://gitlab.alpinelinux.org/acf/acf-mariadb/-/archive/v$pkgver/acf-mariadb-v$pkgver.tar.gz"
builddir="$srcdir/$pkgname-v$pkgver"
diff --git a/main/acf-opennhrp/APKBUILD b/main/acf-opennhrp/APKBUILD
index ca9649fa27a..3d34495c4f5 100644
--- a/main/acf-opennhrp/APKBUILD
+++ b/main/acf-opennhrp/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Ted Trask <ttrask01@yahoo.com>
# Maintainer: Ted Trask <ttrask01@yahoo.com>
pkgname=acf-opennhrp
-pkgver=0.10.0
-pkgrel=4
+pkgver=0.10.1
+pkgrel=0
pkgdesc="Web-based system administration interface for opennhrp"
url="https://gitlab.alpinelinux.org/acf/acf-opennhrp"
arch="noarch"
@@ -17,5 +17,5 @@ package() {
}
sha512sums="
-591ca14d1ab143115006dd596215f6228d271b08d7014169261fff9a09d1f1688a3a534f1fe74e3f20e42dca1f382b01860099f756eacd3ec5ed774f915b3311 acf-opennhrp-v0.10.0.tar.gz
+e30974d8ef5da9239291ae4b8975eea3da657c7fcf06076991d00ca53b825c6fe424c11c1a181c40c12289a7de34e746828daeaca27e877db3643963772b709a acf-opennhrp-v0.10.1.tar.gz
"
diff --git a/main/acf-openntpd/APKBUILD b/main/acf-openntpd/APKBUILD
index 01d879b6ca3..6ea5e6e0fb6 100644
--- a/main/acf-openntpd/APKBUILD
+++ b/main/acf-openntpd/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Ted Trask <ttrask01@yahoo.com>
# Maintainer: Ted Trask <ttrask01@yahoo.com>
pkgname=acf-openntpd
-pkgver=0.9.0
-pkgrel=4
+pkgver=0.9.1
+pkgrel=0
pkgdesc="Web-based system administration interface for openntpd"
url="https://gitlab.alpinelinux.org/acf/acf-openntpd"
arch="noarch"
@@ -17,5 +17,5 @@ package() {
}
sha512sums="
-a81894ecc0735e37a0c40182bf5b6bfc862bda215828f497bc30311b682d5c2bbebbe5604d705dd05dc163622fbbca8197b3a3fc1319fbd4633949ed50eddb28 acf-openntpd-v0.9.0.tar.gz
+9141853d297bdbc4e115d15d1e7871306a7aeaa7acfacfabc462f8d63049b1e86bb05fa19661f98ac3e044ecb23f7266aff55efa575a19d992340899e767b32b acf-openntpd-v0.9.1.tar.gz
"
diff --git a/main/acf-openssl/APKBUILD b/main/acf-openssl/APKBUILD
index 94aa782c674..e9793bf2185 100644
--- a/main/acf-openssl/APKBUILD
+++ b/main/acf-openssl/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: Ted Trask <ttrask01@yahoo.com>
# Maintainer: Ted Trask <ttrask01@yahoo.com>
pkgname=acf-openssl
-pkgver=0.10.1
-pkgrel=6
-pkgdesc="Web-based system administration interface for open/librelssl"
+pkgver=0.11.0
+pkgrel=0
+pkgdesc="Web-based system administration interface for open/libressl"
url="https://gitlab.alpinelinux.org/acf/acf-openssl"
arch="noarch"
license="GPL-2.0-only"
@@ -17,5 +17,5 @@ package() {
}
sha512sums="
-08c8302ae528960350d10b73c9b733b4a8a0aee931345c9154a17850364f37e99cd8d28e35c94e0dc35f61bbbd952e8c4efccbc766e870ede52ef05a63e763fe acf-openssl-v0.10.1.tar.gz
+5808224bdc6607811ab063108be289b826f6a19233b073355c533a0164c74519d1ffd6b831add55b6259acff29be5a524d37ff516bedc7f055c03db0ec379bd0 acf-openssl-v0.11.0.tar.gz
"
diff --git a/main/acf-openvpn/APKBUILD b/main/acf-openvpn/APKBUILD
index e33d0efe17a..cd078e0bd68 100644
--- a/main/acf-openvpn/APKBUILD
+++ b/main/acf-openvpn/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Ted Trask <ttrask01@yahoo.com>
# Maintainer: Ted Trask <ttrask01@yahoo.com>
pkgname=acf-openvpn
-pkgver=0.11.1
-pkgrel=4
+pkgver=0.11.2
+pkgrel=0
pkgdesc="Web-based system administration interface for openvpn"
url="https://gitlab.alpinelinux.org/acf/acf-openvpn"
arch="noarch"
@@ -17,5 +17,5 @@ package() {
}
sha512sums="
-dccdd4f8c4a6be7d2492f779120678fcd98aeda97f81e1a426b3c542a65e7d9e1fd13622ff074e64b2a3a107be4bb5eb4df07f3fbfc3c5c29055e40b8196cb19 acf-openvpn-v0.11.1.tar.gz
+3587d0a54853de30cb6c1879ade29cdfcd8fec1d29304e44a36c2d5a7f164f454a61d19f8fb35c301a1152c9d75f7726b1961c14031d3bdfb29ff074c73691b2 acf-openvpn-v0.11.2.tar.gz
"
diff --git a/main/acf-postgresql/APKBUILD b/main/acf-postgresql/APKBUILD
index e90e5aad215..b0afaa6c2fe 100644
--- a/main/acf-postgresql/APKBUILD
+++ b/main/acf-postgresql/APKBUILD
@@ -1,15 +1,14 @@
# Contributor: Ted Trask <ttrask01@yahoo.com>
# Maintainer: Ted Trask <ttrask01@yahoo.com>
pkgname=acf-postgresql
-pkgver=0.11.0
-pkgrel=4
+pkgver=0.12.0
+pkgrel=0
pkgdesc="ACF module for postgresql"
url="https://gitlab.alpinelinux.org/acf/acf-postgresql"
arch="noarch"
license="GPL-2.0-only"
options="!check" # no test suite
depends="acf-core postgresql acf-db-lib lua-sql-postgres"
-makedepends="acf-db-lib"
source="https://gitlab.alpinelinux.org/acf/acf-postgresql/-/archive/v$pkgver/acf-postgresql-v$pkgver.tar.gz"
builddir="$srcdir/$pkgname-v$pkgver"
@@ -18,5 +17,5 @@ package() {
}
sha512sums="
-86edb5f1218171c053e54f196430fa3e38b9259c7ae3c1d548333f8ae3abec869b030ca534f8b780b5dc13ea66d031916db3c066102293562d6f9a23d3c1986a acf-postgresql-v0.11.0.tar.gz
+c1f399858fff853e53ce7f67a0192650e884361a5c3db1f0daf2622ddf0349dd20f10e74f295f516e5c3a41e0970448081985a036a1442a2fdc85ff01dbf4975 acf-postgresql-v0.12.0.tar.gz
"
diff --git a/main/acf-samba/APKBUILD b/main/acf-samba/APKBUILD
index d25de8b9bd9..64ecb65f08a 100644
--- a/main/acf-samba/APKBUILD
+++ b/main/acf-samba/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Ted Trask <ttrask01@yahoo.com>
# Maintainer: Ted Trask <ttrask01@yahoo.com>
pkgname=acf-samba
-pkgver=0.10.0
-pkgrel=4
+pkgver=0.10.1
+pkgrel=0
pkgdesc="Web-based system administration interface for samba"
url="https://gitlab.alpinelinux.org/acf/acf-samba"
arch="noarch"
@@ -17,5 +17,5 @@ package() {
}
sha512sums="
-1fd9876d30dcb477e2587a58a34e98348870f47a2029a0d8f4a1272642fb6fa4c532aece0c685bbacef2e435ff62691c5463a1cda497a72589d883b518ad42ff acf-samba-v0.10.0.tar.gz
+d2a4a9da90bd9eaec47bc2595582b7231d444bca0b1b875a3fa62fc9c1172b2ac884d02171a0f4e7ab8a2d53327a79221e276f428b6c8a4bdf5e52bf8f6c5552 acf-samba-v0.10.1.tar.gz
"
diff --git a/main/acf-snort/APKBUILD b/main/acf-snort/APKBUILD
index d3b1df53502..c7a3f2cdf7b 100644
--- a/main/acf-snort/APKBUILD
+++ b/main/acf-snort/APKBUILD
@@ -1,11 +1,11 @@
# Contributor: Ted Trask <ttrask01@yahoo.com>
# Maintainer: Ted Trask <ttrask01@yahoo.com>
pkgname=acf-snort
-pkgver=0.8.0
-pkgrel=4
+pkgver=0.8.1
+pkgrel=0
pkgdesc="Web-based system administration interface for snort"
url="https://gitlab.alpinelinux.org/acf/acf-snort"
-arch="noarch"
+arch="noarch !ppc64le !riscv64" # blocked by snort -> luajit
license="GPL-2.0-only"
options="!check" # no test suite
depends="acf-core snort"
@@ -17,5 +17,5 @@ package() {
}
sha512sums="
-416c23f2c610b9060d36e2b634a43b839b1102bfa51494e49469c40f34e349c36d7c9bc208df6fefc827724821ce7b9227c4ee3ef7d4c70d2e85c7b01030c788 acf-snort-v0.8.0.tar.gz
+c174d03bcb1ac9e84bb396b4959b37c2915a79d9fcb646cfd2ed1df6e02bc8410672ce4c4968eebfadf984673949de0291b3b255b18ae769cd3e58cb3f76b6a5 acf-snort-v0.8.1.tar.gz
"
diff --git a/main/acf-tinydns/APKBUILD b/main/acf-tinydns/APKBUILD
index 44ad438eb90..c19184052b0 100644
--- a/main/acf-tinydns/APKBUILD
+++ b/main/acf-tinydns/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Ted Trask <ttrask01@yahoo.com>
# Maintainer: Ted Trask <ttrask01@yahoo.com>
pkgname=acf-tinydns
-pkgver=0.11.0
-pkgrel=4
+pkgver=0.11.1
+pkgrel=0
pkgdesc="Web-based system administration interface for tinydns"
url="https://gitlab.alpinelinux.org/acf/acf-tinydns"
arch="noarch"
@@ -17,5 +17,5 @@ package() {
}
sha512sums="
-2237d95e124988de0c61ebf370b3c320cb19d32bcf2cef2a33591f51a9e84b5b4cf7edea60e5b49da170737e5c38b299f03ad60deffc30da93beba3db4b4b9c7 acf-tinydns-v0.11.0.tar.gz
+e97fd8bed947f103e0f90b0e5a49cff676ae496583c0e96c97935e0d8d3ac6b23816f42d4a1f210545e8c5970d3ae7bb66a0aa2f28d7b262087ae595e8033ac2 acf-tinydns-v0.11.1.tar.gz
"
diff --git a/main/acf-weblog/APKBUILD b/main/acf-weblog/APKBUILD
index 679b728167e..54cd77a92d5 100644
--- a/main/acf-weblog/APKBUILD
+++ b/main/acf-weblog/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Ted Trask <ttrask01@yahoo.com>
pkgname=acf-weblog
pkgver=0.11.1
-pkgrel=3
+pkgrel=4
pkgdesc="ACF for web proxy (squid and dansguardian) logfiles"
url="https://gitlab.alpinelinux.org/acf/acf-weblog"
arch="noarch"
@@ -10,7 +10,7 @@ license="GPL-2.0-only"
options="!check" # no test suite
depends="acf-core lua-sql-postgres wget postgresql-client lua-subprocess"
install="$pkgname.post-upgrade"
-source="https://gitlab.alpinelinux.org/acf/acf-weblog/-/archive/v$pkgver/acf-weblog-v$pkgver.tar.gz
+source="$pkgname-$pkgver.tar.gz::https://gitlab.alpinelinux.org/acf/acf-weblog/-/archive/v$pkgver/acf-weblog-v$pkgver.tar.gz
acf-weblog-update-schema
"
builddir="$srcdir/$pkgname-v$pkgver"
@@ -22,6 +22,6 @@ package() {
}
sha512sums="
-90f2b1c68e4afd849261410105a442ffb3b83cb1e3c70abaef24ede41773c602bd6d743bf5ef805b5b93619dc0ca3215638f8d1beaa071a408f15f2944b6cf51 acf-weblog-v0.11.1.tar.gz
+90f2b1c68e4afd849261410105a442ffb3b83cb1e3c70abaef24ede41773c602bd6d743bf5ef805b5b93619dc0ca3215638f8d1beaa071a408f15f2944b6cf51 acf-weblog-0.11.1.tar.gz
98474adf2b60b30dbe060753db9b8c8d70696e063cfae810f7aab59cba229e45e15abe368609bd9ab3480c594fd6e9545c5c128fcdc81908df4463f86cb475e3 acf-weblog-update-schema
"
diff --git a/main/ack/APKBUILD b/main/ack/APKBUILD
index 567f52036c4..06a4aba7660 100644
--- a/main/ack/APKBUILD
+++ b/main/ack/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Sheila Aman <sheila@vulpine.house>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=ack
-pkgver=3.5.0
+pkgver=3.7.0
pkgrel=1
pkgdesc="A Perl-powered replacement for grep"
url="https://beyondgrep.com/"
@@ -11,7 +11,7 @@ depends="perl-file-next perl"
makedepends="perl-dev"
checkdepends="bash"
subpackages="$pkgname-doc"
-source="https://search.cpan.org/CPAN/authors/id/P/PE/PETDANCE/ack-v$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/P/PE/PETDANCE/ack-v$pkgver.tar.gz"
builddir="$srcdir/$pkgname-v$pkgver"
build() {
@@ -28,4 +28,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="f5b9321fc62cf2ab86fa7dc933dd44245314ebd26bee2d8769f85c15fc8b4493d0757ca4430708f0ebea5692f9c73ad17cc00bc46d1f611b8489b30811df307d ack-v3.5.0.tar.gz"
+sha512sums="
+3d97309956ce65f972a7636d195b13031f4441981d5bdddf0b67e577c32c88972f7ed02ffafbbf73c4db9a22f200f95cce9c8eb2a6f47fd60143d93469038f57 ack-v3.7.0.tar.gz
+"
diff --git a/main/acl/APKBUILD b/main/acl/APKBUILD
index 367c811b86b..415e2aaefcb 100644
--- a/main/acl/APKBUILD
+++ b/main/acl/APKBUILD
@@ -2,7 +2,7 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=acl
-pkgver=2.3.1
+pkgver=2.3.2
pkgrel=0
pkgdesc="Access control list utilities"
url="https://savannah.nongnu.org/projects/acl"
@@ -16,7 +16,6 @@ options="!check"
source="https://download.savannah.nongnu.org/releases/acl/acl-$pkgver.tar.gz"
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -27,8 +26,11 @@ build() {
}
package() {
- cd "$builddir"
DESTDIR="$pkgdir" make install
+
+ # fix install path of pkgconf files
+ mkdir -p "$pkgdir"/usr/lib/
+ mv "$pkgdir"/lib/pkgconfig "$pkgdir"/usr/lib/
}
libacl() {
@@ -38,5 +40,5 @@ libacl() {
}
sha512sums="
-f101e27058c959f4c412f475c3fc77a90d1ead8728701e4ce04ff08b34139d35e0e72278c9ac7622ba6054e81c0aeca066e09491b5f5666462e3866705a0e892 acl-2.3.1.tar.gz
+31aeb39958d8af5d08933dd3a89333a41025c3eb49fc461fa3c291caca51dad575ec13faeb7deba9b3c2ebf7615be7d45e2b78e50d4f83d8ec933c95931a7682 acl-2.3.2.tar.gz
"
diff --git a/main/aconf/APKBUILD b/main/aconf/APKBUILD
index cd3e537b637..0759a05cdfe 100644
--- a/main/aconf/APKBUILD
+++ b/main/aconf/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Kaarle Ritvanen <kunkku@alpinelinux.org>
pkgname=aconf
pkgver=0.8.1
-pkgrel=1
+pkgrel=2
pkgdesc="Alpine Configurator"
url="https://gitlab.alpinelinux.org/kunkku/aconf/"
arch="noarch"
@@ -16,7 +16,6 @@ source="https://dev.alpinelinux.org/archive/aconf/aconf-$pkgver.tar.xz
$pkgname.initd"
options="!check"
-
_modules="dnsmasq dns-zone network openssh strongswan"
_escape() {
echo ${1//-/_}
@@ -29,15 +28,11 @@ for _m in $_modules; do
eval "_deps_$_e=$_m"
done
-_deps_dns_zone=
-_deps_network=
-
package() {
make LUA_VERSION=$_luaver ROOT_DIR=$pkgdir install
install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
}
-
_moddir=usr/share/lua/$_luaver/$pkgname/modules
_augdir=usr/share/$pkgname/augeas
diff --git a/main/acpi/APKBUILD b/main/acpi/APKBUILD
index 0b927197943..827c5d1223c 100644
--- a/main/acpi/APKBUILD
+++ b/main/acpi/APKBUILD
@@ -1,7 +1,7 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=acpi
pkgver=1.7
-pkgrel=4
+pkgrel=7
pkgdesc="ACPI client for battery, power, and thermal readings"
url="https://sourceforge.net/projects/acpiclient/files/acpiclient/"
arch="all"
diff --git a/main/acpica/APKBUILD b/main/acpica/APKBUILD
index 4129ae6ed58..22c92c96cf7 100644
--- a/main/acpica/APKBUILD
+++ b/main/acpica/APKBUILD
@@ -1,22 +1,23 @@
# Contributor: Roger Pau Monne <roger.pau@entel.upc.edu>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=acpica
-pkgver=20210930
+pkgver=20230628
pkgrel=0
pkgdesc="ACPI Component Architecture utilities"
url="https://www.acpica.org"
-arch="all !mips64"
+arch="all"
license="GPL-2.0-only OR BSD-3-Clause OR Intel-ACPI"
makedepends="flex bison"
subpackages="iasl"
options="!check"
-source="acpica-unix-$pkgver.tar.gz::https://acpica.org/sites/acpica/files/acpica-unix-$pkgver.tar.gz
- disable-werror.patch
- "
+source="acpica-unix-$pkgver.tar.gz::https://downloadmirror.intel.com/783549/acpica-unix-$pkgver.tar.gz"
builddir="$srcdir"/acpica-unix-$pkgver
build() {
- make
+ # binutils 2.40 has a bug specifically on this code
+ # careful with the format here- in abuild.conf we append a new -Wl block for this
+ export LDFLAGS="${LDFLAGS/-Wl,-z,pack-relative-relocs}"
+ make NOWERROR=TRUE
}
package() {
@@ -30,6 +31,5 @@ iasl() {
}
sha512sums="
-b02470bdda891eb7ca556ec4eee3387f80535b43b213f61e68e3913f4f8173dbf4c2dadaf28ad181ecc76171d40175d5ea5734dbc1237b3c3d2fba3072314c9e acpica-unix-20210930.tar.gz
-1f5049568d612d4debf3690e0d918d8d56abbed14ade7b2e6282eba17b25934b695d1a9fe10f99469efe8d4382c4546481d0579afdf5cdb9695fcdc93559fbab disable-werror.patch
+d726e69ebd8b8110690e3aff8d1919b43b0a2185efdeb9131ea8d89d321ca3a318a89c721ea740ae366f31ed3d1c11c2906f8807ee8a190e6f67fe5b2023cea4 acpica-unix-20230628.tar.gz
"
diff --git a/main/acpica/disable-werror.patch b/main/acpica/disable-werror.patch
deleted file mode 100644
index da0c7c8889b..00000000000
--- a/main/acpica/disable-werror.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/generate/unix/Makefile.config b/generate/unix/Makefile.config
-index a1f0313..8c4e8e7 100644
---- a/generate/unix/Makefile.config
-+++ b/generate/unix/Makefile.config
-@@ -194,7 +194,7 @@ CWARNINGFLAGS = \
- -Wall\
- -Wbad-function-cast\
- -Wdeclaration-after-statement\
-- -Werror\
-+ -Wno-pointer-to-int-cast\
- -Wformat=2\
- -Wmissing-declarations\
- -Wmissing-prototypes\
diff --git a/main/acpid/APKBUILD b/main/acpid/APKBUILD
new file mode 100644
index 00000000000..86765b675f3
--- /dev/null
+++ b/main/acpid/APKBUILD
@@ -0,0 +1,70 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=acpid
+pkgver=2.0.34
+pkgrel=4
+pkgdesc="The ACPI Daemon (acpid) With Netlink Support"
+url="https://sourceforge.net/projects/acpid2/"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="linux-headers"
+install="$pkgname.post-deinstall"
+subpackages="$pkgname-doc $pkgname-openrc"
+source="https://downloads.sourceforge.net/sourceforge/acpid2/acpid-$pkgver.tar.xz
+ handler.sh
+ power-supply-ac
+ lid-closed
+ suspend
+ anything
+ $pkgname.initd
+ $pkgname.confd
+
+ lfs64.patch
+ "
+options="!check" # no tests provided
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/ \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --docdir=/usr/share/doc/acpid \
+ --localstatedir=/var
+ make
+}
+
+package() {
+ make install DESTDIR="$pkgdir"
+
+ cd "$pkgdir"
+
+ install -D -m 755 "$srcdir"/handler.sh -t etc/acpi/
+ install -D -m 644 "$srcdir"/anything -t etc/acpi/events/
+
+ install -D -m 755 -t usr/share/acpid/ \
+ "$srcdir"/lid-closed \
+ "$srcdir"/power-supply-ac \
+ "$srcdir"/suspend
+
+ install -D -m 755 "$srcdir"/$pkgname.initd etc/init.d/$pkgname
+ install -D -m 644 "$srcdir"/$pkgname.confd etc/conf.d/$pkgname
+}
+
+openrc() {
+ default_openrc
+ replaces="busybox-openrc" # overwrites /etc/init.d/acpid
+}
+
+sha512sums="
+2bf92295b55bb44fe83074b3e0c1ae639f63edaeea84b2184ae95b38852be40f380d5413110b8c0fcb2efc2ec01bf4764e1dcb97022fc724bebbfc35c0b63c81 acpid-2.0.34.tar.xz
+050c81446ac563d5d4c5d63a3e0b41558d5934427589114dc8b3215b72a1bd5923e0b8812e6d2265a6f53b6b0bcf8d7cc84d8ea6f2993ceea49c3c864c89c42c handler.sh
+2478afa7cc072f84907789bd90d0d85c8a2f450a29a09637d764d665fd5e68ac7dee3a4ef9e183136e5b0745504c52e7357c5cdb172328c7e7318aa77ecd9c52 power-supply-ac
+f6df3e75198e779826c187038804ba80e7a445567342ac912ff4e5d894ce936fb9347146c302c7d7c9bbc8b3a0e47aeee9d23a4b297ee37e3938b7310a1b5ad9 lid-closed
+8ec95453c21c5801a0864a5a91fd1d714f29d10a50658e93f027a395dcff91cd0e1ea5047ece199131e6205a422ae6f1887b388068630a0579995e3069d6a3bd suspend
+2e04e5c8a428bfc653b4d56f5a2ff4472169a094ed9eee4b02ea88c755848e4803a0edeb054e152516ee50cb67c8c2be2c43e2e9db9dc80b7fcf218b8907ef6c anything
+c647112006486abb469fdb60c2a91699e6922dac8b09642fa70d4341c9029748f99539d5befc8951adf57a6b382cf5a65adfd208bc2f19cab39b680120504e61 acpid.initd
+b8f62dc7d5a2d1338936af79b3e7165cc1c652be0be9e7f8eb00d964c1c1ef91767f16e8662eaa77920d914b966ae208c8480e44cb2dca0de4bfed01f302a089 acpid.confd
+a2ba48439f94a079a5d9a4295306b1478a2e025ba32c6b45b46b1b718b209966c2cea2c46c08d17a7d627418e602c4de255f652721d4219bf0c3fff5a8607ad7 lfs64.patch
+"
diff --git a/main/acpid/acpid.confd b/main/acpid/acpid.confd
new file mode 100644
index 00000000000..2b3d30484fc
--- /dev/null
+++ b/main/acpid/acpid.confd
@@ -0,0 +1,7 @@
+# Configuration file for /etc/init.d/acpid (from acpid package)
+
+# Additional arguments to pass to acpid.
+command_args="--logevents"
+
+# Uncomment to use process supervisor.
+#supervisor="supervise-daemon"
diff --git a/main/acpid/acpid.initd b/main/acpid/acpid.initd
new file mode 100644
index 00000000000..c2d60f97a21
--- /dev/null
+++ b/main/acpid/acpid.initd
@@ -0,0 +1,28 @@
+#!/sbin/openrc-run
+
+description="The ACPI Daemon"
+
+extra_started_commands="reload"
+description_reload="Reload configuration"
+
+command="/sbin/acpid"
+command_args="--foreground ${command_args:-}"
+command_background="yes"
+pidfile="/run/$RC_SVCNAME.pid"
+
+depend() {
+ need dev localmount
+ after hwdrivers modules
+ provide acpid
+ keyword -vserver -lxc
+}
+
+reload() {
+ ebegin "Reloading $RC_SVCNAME configuration"
+ if [ "$supervisor" ]; then
+ $supervisor "$RC_SVCNAME" --signal HUP
+ else
+ start-stop-daemon --pidfile "$pidfile" --signal HUP
+ fi
+ eend $?
+}
diff --git a/main/acpid/acpid.post-deinstall b/main/acpid/acpid.post-deinstall
new file mode 100644
index 00000000000..9403b477559
--- /dev/null
+++ b/main/acpid/acpid.post-deinstall
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+cat >&2 <<EOF
+*
+* Run the following command to reinstall /etc/init.d/acpid from busybox:
+* > apk fix busybox-openrc
+*
+EOF
+
+exit 0
diff --git a/main/acpid/anything b/main/acpid/anything
new file mode 100644
index 00000000000..d1828989b0c
--- /dev/null
+++ b/main/acpid/anything
@@ -0,0 +1,3 @@
+# Pass all events to our one handler script
+event=.*
+action=/etc/acpi/handler.sh %e
diff --git a/main/acpid/handler.sh b/main/acpid/handler.sh
new file mode 100644
index 00000000000..9a6cbafec06
--- /dev/null
+++ b/main/acpid/handler.sh
@@ -0,0 +1,42 @@
+#!/bin/sh
+# vim: set ts=4 sw=4:
+#
+# This is the default ACPI handler script that is configured in
+# /etc/acpi/events/anything to be called for every ACPI event.
+# You can edit it and add your own actions; treat it as a configuration file.
+#
+# lid-closed, power-supply-ac and suspend are scripts located in
+# /usr/share/acpid/.
+#
+PATH="/usr/share/acpid:$PATH"
+alias log='logger -t acpid'
+
+# <dev-class>:<dev-name>:<notif-value>:<sup-value>
+case "$1:$2:$3:$4" in
+
+button/power:PWRF:* | button/power:PBTN:*)
+ log 'Power button pressed'
+ # If we have a lid (notebook), suspend to RAM, otherwise power off.
+ if [ -e /proc/acpi/button/lid/LID ]; then
+ suspend
+ else
+ poweroff
+ fi
+;;
+button/sleep:SLPB:*)
+ log 'Sleep button pressed'
+ suspend
+;;
+button/lid:*:close:*)
+ log 'Lid closed'
+ # Suspend to RAM if AC adapter is not connected.
+ power-supply-ac || suspend
+;;
+ac_adapter:*:*:*0)
+ log 'AC adapter unplugged'
+ # Suspend to RAM if notebook's lid is closed.
+ lid-closed && suspend
+;;
+esac
+
+exit 0
diff --git a/main/acpid/lfs64.patch b/main/acpid/lfs64.patch
new file mode 100644
index 00000000000..31838b12d07
--- /dev/null
+++ b/main/acpid/lfs64.patch
@@ -0,0 +1,13 @@
+--- a/sock.c
++++ b/sock.c
+@@ -54,8 +54,8 @@
+ static int
+ isfdtype(int fd, int fdtype)
+ {
+- struct stat64 st;
+- if (fstat64(fd, &st) != 0)
++ struct stat st;
++ if (fstat(fd, &st) != 0)
+ return -1;
+ return ((st.st_mode & S_IFMT) == (mode_t)fdtype);
+ }
diff --git a/main/acpid/lid-closed b/main/acpid/lid-closed
new file mode 100644
index 00000000000..57ffb713bd5
--- /dev/null
+++ b/main/acpid/lid-closed
@@ -0,0 +1,21 @@
+#!/bin/sh
+# This script exits with status 0 if the latop's lid is closed, 1 if opened,
+# 10 if /proc/acpi/button/lid/LID/state does not exist or is not readable.
+set -u
+
+STATE_FILE='/proc/acpi/button/lid/LID/state'
+
+verbose=false
+[ "${1:-}" = '-v' ] && verbose=true
+
+if ! [ -r "$STATE_FILE" ]; then
+ $verbose && echo "$STATE_FILE does not exist or is not readable!" >&2
+ exit 10
+fi
+
+read -r _ state < "$STATE_FILE" || exit 10
+
+[ "$state" = 'closed' ]; rc=$?
+
+$verbose && echo $rc
+exit $rc
diff --git a/main/acpid/power-supply-ac b/main/acpid/power-supply-ac
new file mode 100644
index 00000000000..9fb6ba74825
--- /dev/null
+++ b/main/acpid/power-supply-ac
@@ -0,0 +1,30 @@
+#!/bin/sh
+# This script exits with status 0 when the computer is on AC power (or no AC
+# power supply found), 1 otherwise (i.e. running on battery).
+set -u
+
+verbose=false
+[ "${1:-}" = '-v' ] && verbose=true
+
+# If we do not have any power supplies, assume we are on AC.
+rc=0
+
+# Iterate through power supplies sysfs knows about.
+for ps in /sys/class/power_supply/*; do
+ # Ignore batteries.
+ [ -r $ps/type ] && [ "$(cat $ps/type)" = 'Battery' ] && continue
+
+ # Ignore when no online info (we return 0 when no AC power found).
+ [ -r $ps/online ] || continue
+
+ # We know we have an AC adaptor, our default return changes to failed.
+ rc=1
+
+ if [ "$(cat $ps/online)" -eq 1 ]; then
+ rc=0
+ break
+ fi
+done
+
+$verbose && echo $rc
+exit $rc
diff --git a/main/acpid/suspend b/main/acpid/suspend
new file mode 100644
index 00000000000..f787037da67
--- /dev/null
+++ b/main/acpid/suspend
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+if command -v zzz >/dev/null; then
+ zzz "$@"
+else
+ echo 'mem' > /sys/power/state
+fi
diff --git a/main/ada/APKBUILD b/main/ada/APKBUILD
new file mode 100644
index 00000000000..1812539a50c
--- /dev/null
+++ b/main/ada/APKBUILD
@@ -0,0 +1,60 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=ada
+# NOTE: The primary use of this library is for main/nodejs and community/nodejs-current.
+pkgver=2.7.7
+pkgrel=1
+pkgdesc="WHATWG-compliant and fast URL parser written in modern C++"
+url="https://ada-url.github.io/ada"
+arch="all"
+license="( Apache-2.0 OR MIT ) AND MPL-2.0"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ cmake
+ cxxopts-dev
+ fmt-dev
+ gtest-dev
+ samurai
+ "
+checkdepends="simdjson-dev"
+subpackages="$pkgname-static $pkgname-dev $pkgname-libs"
+source="https://github.com/ada-url/ada/archive/v$pkgver/ada-$pkgver.tar.gz
+ use-system-simdjson-cxxopts.patch
+ "
+
+build() {
+ local crossopts=
+ [ "$CBUILD" != "$CHOST" ] && crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+
+ local shared; for shared in OFF ON; do
+ cmake -G Ninja -B build \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=$shared \
+ -DBUILD_TESTING="$(want_check && echo ON || echo OFF)" \
+ -DADA_BENCHMARKS=OFF \
+ $crossopts
+ cmake --build build
+ done
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ install -m644 build/src/libada.a -t "$pkgdir"/usr/lib/
+}
+
+tools() {
+ pkgdesc="$pkgdesc (cli tools)"
+ amove usr/bin
+}
+
+sha512sums="
+987782dacee5115f061f5579257fddf3ed26cdb8654279ce47915bef03abe7ca9904f0f4082b774be23772a3400925e908db45d9da935c7683269aae0ac2186a ada-2.7.7.tar.gz
+63b4585bb29df3d922f31eefd60e37029c10ef654aa0bd098bffae622f6d74520d9e47ae76cadb9347eb6cea5140386f8c794bf9236f8c1ad014007e5597c1db use-system-simdjson-cxxopts.patch
+"
diff --git a/main/ada/use-system-simdjson-cxxopts.patch b/main/ada/use-system-simdjson-cxxopts.patch
new file mode 100644
index 00000000000..7d991171669
--- /dev/null
+++ b/main/ada/use-system-simdjson-cxxopts.patch
@@ -0,0 +1,63 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -34,29 +34,12 @@
+ # CPM requires git as an implicit dependency
+ find_package(Git QUIET)
+ # We use googletest in the tests
+- if(Git_FOUND AND ADA_TESTING)
+- CPMAddPackage(
+- NAME GTest
+- GITHUB_REPOSITORY google/googletest
+- VERSION 1.14.0
+- OPTIONS "BUILD_GMOCK OFF" "INSTALL_GTEST OFF"
+- )
++ if(ADA_TESTING)
++ find_package(GTest)
+ endif()
+- # We use simdjson in both the benchmarks and tests
+- if(Git_FOUND AND (ADA_TESTING OR ADA_BENCHMARKS))
+- CPMAddPackage("gh:simdjson/simdjson@3.3.0")
+- endif()
+ # We use Google Benchmark, but it does not build under several 32-bit systems.
+ if(Git_FOUND AND ADA_BENCHMARKS AND (CMAKE_SIZEOF_VOID_P EQUAL 8))
+- CPMAddPackage(
+- NAME benchmark
+- GITHUB_REPOSITORY google/benchmark
+- GIT_TAG f91b6b4
+- OPTIONS "BENCHMARK_ENABLE_TESTING OFF"
+- "BENCHMARK_ENABLE_INSTALL OFF"
+- "BENCHMARK_ENABLE_WERROR OFF"
+-
+- )
++ find_package(benchmark)
+ endif()
+
+ if (ADA_TESTING AND NOT EMSCRIPTEN)
+--- a/tools/CMakeLists.txt
++++ b/tools/CMakeLists.txt
+@@ -1 +1,6 @@
+-add_subdirectory(cli)
+\ No newline at end of file
++add_subdirectory(cli)
++target_link_libraries(adaparse PRIVATE ada)
++target_include_directories(adaparse PUBLIC "$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>")
++
++find_package(cxxopts)
++target_link_libraries(adaparse PRIVATE cxxopts::cxxopts)
+--- a/tools/cli/CMakeLists.txt
++++ b/tools/cli/CMakeLists.txt
+@@ -8,12 +8,8 @@
+ "$<TARGET_FILE:ada>" # <--this is in-file
+ "$<TARGET_FILE_DIR:adaparse>") # <--this is out-file path
+ endif()
+-CPMAddPackage("gh:fmtlib/fmt#7.1.3")
+-CPMAddPackage(
+- GITHUB_REPOSITORY jarro2783/cxxopts
+- VERSION 3.1.1
+- OPTIONS "CXXOPTS_BUILD_EXAMPLES NO" "CXXOPTS_BUILD_TESTS NO" "CXXOPTS_ENABLE_INSTALL YES"
+-)
++find_package(cxxopts)
++find_package(fmt)
+ target_link_libraries(adaparse PRIVATE cxxopts::cxxopts fmt::fmt)
+
+ if(MSVC OR MINGW)
diff --git a/main/akms/APKBUILD b/main/akms/APKBUILD
index a2eb726d00b..b4608bf4593 100644
--- a/main/akms/APKBUILD
+++ b/main/akms/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=akms
-pkgver=0.2.0
+pkgver=0.2.1
pkgrel=0
pkgdesc="Alpine Kernel Module Support"
url="https://github.com/jirutka/akms"
@@ -12,10 +12,9 @@ makedepends="asciidoctor"
triggers="$pkgname.trigger=/usr/src/*"
install="$pkgname.pre-install $pkgname.post-install $pkgname.pre-deinstall"
subpackages="$pkgname-doc"
-source="https://github.com/jirutka/akms/archive/v$pkgver/$pkgname-$pkgver.tar.gz
+source="https://github.com/jirutka/akms/archive/v$pkgver/akms-$pkgver.tar.gz
modules-load.conf
"
-builddir="$srcdir/$pkgname-$pkgver"
options="!check" # no tests provided
build() {
@@ -30,6 +29,6 @@ package() {
}
sha512sums="
-dd07b18d17f681ca2866dde7ec70996e430be939dca1a2c745133db0211d117ec183ef611d13a4131709eced96186194f4f1dd97c6a40e92fb040e3aefe24768 akms-0.2.0.tar.gz
+ed66ff111ba8c4c3ee1aa252781089c435b1bbd9ac6c5b38292640e317573713343b2175dcb1ab1c071e9f6caf378589f29f02ed0fd80d4a1f18471fd109c4ca akms-0.2.1.tar.gz
e61ebacae17e4e6b9ec39c0673d46c7764cba7f1378208341688f201c396a1599f8a518ce0849f36da0de2710391014f45d90ab09f6b36a579970d1672b0d71d modules-load.conf
"
diff --git a/main/alpine-base/APKBUILD b/main/alpine-base/APKBUILD
index 08c293d04b5..4f075d6c91a 100644
--- a/main/alpine-base/APKBUILD
+++ b/main/alpine-base/APKBUILD
@@ -1,28 +1,43 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=alpine-base
-pkgver=3.16.0
+pkgver=3.20.0_alpha20240329
pkgrel=0
pkgdesc="Meta package for minimal alpine base"
url="https://alpinelinux.org"
arch="noarch"
license="MIT"
-depends="alpine-baselayout alpine-conf apk-tools busybox busybox-suid busybox-initscripts
- openrc libc-utils alpine-keys"
-makedepends=""
-install=""
-subpackages=""
+depends="
+ alpine-baselayout
+ alpine-conf
+ alpine-release
+ apk-tools
+ busybox
+ busybox-mdev-openrc
+ busybox-openrc
+ busybox-suid
+ musl-utils
+ openrc
+ "
+subpackages="alpine-release:release"
replaces="alpine-baselayout"
-source=""
+options="!check"
build() {
return 0
}
package() {
- mkdir -p "$pkgdir"/etc
+ mkdir -p "$pkgdir"
+}
+
+release() {
+ depends="alpine-keys"
+ pkgdesc="Alpine release data"
+
+ mkdir -p "$subpkgdir"/etc
# create /etc/alpine-release
- echo $pkgver > "$pkgdir"/etc/alpine-release
+ echo $pkgver > "$subpkgdir"/etc/alpine-release
local _ver="$(echo "$pkgver" | grep -E -o '^[0-9]+\.[0-9]+')"
local _rel="v$_ver"
case "$pkgver" in
@@ -33,14 +48,14 @@ package() {
esac
# create /etc/issue
- cat >"$pkgdir"/etc/issue<<EOF
+ cat >"$subpkgdir"/etc/issue<<EOF
Welcome to Alpine Linux $_ver
Kernel \\r on an \\m (\\l)
EOF
# create os-release
- cat >"$pkgdir"/etc/os-release<<EOF
+ cat >"$subpkgdir"/etc/os-release<<EOF
NAME="Alpine Linux"
ID=alpine
VERSION_ID=$pkgver
@@ -50,8 +65,8 @@ BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"
EOF
# create secfixes.d repository list
- mkdir -p "$pkgdir"/etc/secfixes.d
- cat >"$pkgdir"/etc/secfixes.d/alpine<<EOF
+ mkdir -p "$subpkgdir"/etc/secfixes.d
+ cat >"$subpkgdir"/etc/secfixes.d/alpine<<EOF
https://secdb.alpinelinux.org/$_rel/main.json
https://secdb.alpinelinux.org/$_rel/community.json
EOF
diff --git a/main/alpine-baselayout/20locale.sh b/main/alpine-baselayout/20locale.sh
new file mode 100644
index 00000000000..9b9fde51f51
--- /dev/null
+++ b/main/alpine-baselayout/20locale.sh
@@ -0,0 +1,3 @@
+export CHARSET=${CHARSET:-UTF-8}
+export LANG=${LANG:-C.UTF-8}
+export LC_COLLATE=${LC_COLLATE:-C}
diff --git a/main/alpine-baselayout/APKBUILD b/main/alpine-baselayout/APKBUILD
index a31f17c3808..e89705e76f1 100644
--- a/main/alpine-baselayout/APKBUILD
+++ b/main/alpine-baselayout/APKBUILD
@@ -1,23 +1,23 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=alpine-baselayout
-pkgver=3.2.0
-pkgrel=23
+pkgver=3.6.4
+pkgrel=0
pkgdesc="Alpine base dir structure and init scripts"
url="https://git.alpinelinux.org/cgit/aports/tree/main/alpine-baselayout"
-arch="all"
+arch="noarch"
license="GPL-2.0-only"
pkggroups="shadow"
-options="!fhs !check"
-depends="$pkgname-data=${pkgver}-r${pkgrel}"
+replaces_priority=1000
+options="!fhs !check keepdirs"
+depends="$pkgname-data=$pkgver-r$pkgrel"
subpackages="$pkgname-data"
install="$pkgname.pre-install $pkgname.pre-upgrade $pkgname.post-upgrade
$pkgname.post-install"
-_nbver=6.2
-source="mkmntdirs.c
- crontab
+_nbver=6.4
+source="crontab
color_prompt.sh.disabled
- locale.sh
+ 20locale.sh
aliases.conf
blacklist.conf
@@ -41,9 +41,6 @@ prepare() {
}
build() {
- ${CC:-${CROSS_COMPILE}gcc} $CPPFLAGS $CFLAGS $LDFLAGS \
- "$srcdir"/mkmntdirs.c -o "$builddir"/mkmntdirs
-
# generate shadow
awk -F: '{
pw = ":!:"
@@ -61,6 +58,7 @@ data() {
amove etc/hostname
amove etc/hosts
amove etc/inittab
+ amove etc/nsswitch.conf
amove etc/modules
amove etc/mtab
amove etc/passwd
@@ -80,17 +78,16 @@ package() {
dev/pts \
dev/shm \
etc \
- etc/apk \
- etc/conf.d \
etc/crontabs \
- etc/init.d \
etc/modprobe.d \
etc/modules-load.d \
+ etc/network \
etc/network/if-down.d \
etc/network/if-post-down.d \
etc/network/if-pre-up.d \
etc/network/if-up.d \
etc/opt \
+ etc/periodic \
etc/periodic/15min \
etc/periodic/daily \
etc/periodic/hourly \
@@ -99,10 +96,11 @@ package() {
etc/profile.d \
etc/sysctl.d \
home \
+ lib \
lib/firmware \
- lib/mdev \
lib/modules-load.d \
lib/sysctl.d \
+ media \
media/cdrom \
media/floppy \
media/usb \
@@ -113,8 +111,11 @@ package() {
sbin \
srv \
sys \
+ usr \
usr/bin \
+ usr/lib \
usr/lib/modules-load.d \
+ usr/local \
usr/local/bin \
usr/local/lib \
usr/local/share \
@@ -122,11 +123,13 @@ package() {
usr/share \
usr/share/man \
usr/share/misc \
+ var \
var/cache \
var/cache/misc \
var/lib \
var/lib/misc \
var/local \
+ var/lock \
var/lock/subsys \
var/log \
var/opt \
@@ -138,12 +141,11 @@ package() {
install -d -m 0555 var/empty
install -d -m 0700 "$pkgdir"/root
install -d -m 1777 "$pkgdir"/tmp "$pkgdir"/var/tmp
- install -m755 "$builddir"/mkmntdirs "$pkgdir"/sbin/mkmntdirs
install -m600 "$srcdir"/crontab "$pkgdir"/etc/crontabs/root
install -m644 \
"$srcdir"/color_prompt.sh.disabled \
- "$srcdir"/locale.sh \
+ "$srcdir"/20locale.sh \
"$pkgdir"/etc/profile.d/
install -m644 \
"$srcdir"/aliases.conf \
@@ -235,6 +237,13 @@ package() {
Bourne-compatible shells (like ash, bash or zsh) when started as a
login shell.
EOF
+ cat > "$pkgdir"/etc/nsswitch.conf <<-EOF
+ # musl itself does not support NSS, however some third-party DNS
+ # implementations use the nsswitch.conf file to determine what
+ # policy to follow.
+ # Editing this file is not recommended.
+ hosts: files dns
+ EOF
install -m644 \
"$srcdir"/group \
@@ -255,18 +264,17 @@ package() {
}
sha512sums="
-199a34716b1f029407b08679fed4fda58384a1ccefbbec9abe1c64f4a3f7ad2a89bc7c02fc19a7f791f7c6bb87f9f0c708cb3f18c027cb7f54f25976eba4b839 mkmntdirs.c
6e169c0975a1ad1ad871a863e8ee83f053de9ad0b58d94952efa4c28a8c221445d9e9732ad8b52832a50919c2f39aa965a929b3d5b3f9e62f169e2b2e0813d82 crontab
558071efdce2fe92afe4277006235b1a6368b070337c7567e5632a1a3fe531f87ca692eb36f3dda498d4d29d1f834fc8f7139f2985669ae3400b6d103d6f4c5e color_prompt.sh.disabled
-b2fc9b72846a43a45ba9a8749e581cef34d1915836833b51b7919dfbf4e275b7d55fec4dea7b23df3796380910971a41331e53e8cf0d304834e3da02cc135e5a locale.sh
+03361d912cf29c127608697ee14bfa5972f82a5c475e653378ca5f7670cbd8183efc7c8c339ff046ff6537944fe00c4a732bb6b552aecaecd1214ed3e11bdf90 20locale.sh
bfe947bdd69e7d93b32c8cb4e2cabe5717cb6c1e1f49a74015ac2cfb13e96d1f12c4be23ae93a1d61aaa3760d33a032fa9bd99f227fb21223a76b5f5908acc65 aliases.conf
0a1e1afa580751e80bf26057b65fadffe269c0552e7a1903de498f94973ba3da8453b51f25e649968ca5f4841266f5ccf951700fa28465a8614b83d07344de60 blacklist.conf
49109d434b577563849c43dd8141961ca798dada74d4d3f49003dac1911f522c43438b8241fa254e4faacdd90058f4d39a7d69b1f493f6d57422c1f706547c95 i386.conf
9dda8c9d1896baf1217aa05ae2936e909300a22a98da9f4c3ba29136852477bf4764321b6a1abb15e93ee58f4a6e77ddfc42cbb12cbbb53cf0f431ace444f72f kms.conf
-806b8f23f823a9471846d12fa6b55690b95eedb4c613b82aefaba7ffef23f83e17552befd891a487864f72ef24e395d8611738933f684a85eb4c336cb20994f8 group
-fdab6f8fec2a556ab817d90a73635a927ea04dbc4e0470ed59ee6a62c87393f9534c9b746b09a776d938c25b8af9c9fb1686578e24f8307d1d074921ade1bdc7 inittab
-06d12a7b9ca14fe17e412d0f24814620b67d035ae859be7906cbf4782dd69e359a6a555dafb98060b7fb7e4714aaa676c88d9017cded36e6d8398e23369bb290 passwd
-dfc810763c5d94ef6bd149bdb0b152712c0c0aadc7ad3c5c916e2c6e8ed57246e3cdac50d2743b9d009267bdbd47e91b6ad58fe6d068baf132043c38e8fd820d profile
-eadc83e47fcc354ab83fd109bee452bda170886fb684e67faf615930c11480919505f4af60c685b124efc54af0ded9522663132f911eac6622144f8b4c8be695 protocols-6.2
-adfae0d2f569c2a2f413b7e27683a007fc8ca689b8c3349672fe0dcb6208c192ede4402eff09c604b7e7b4fd9d8df93b875efa5bdaa6c14ff1d8022a7caad5cd services-6.2
+b5eb01165c714861e860f17c0156911ff882a9010306b7fc4cdb22251acf8b1c91a3fa1d44cc41cb3d9b50892e2f98f43da57b002c5c33200c1bf49c3d2d587d group
+37d7b8348e604b12c055d9d7e79afb568ededea7153ff552c9f383cffd537d9c78cfd9facd612d2a6753fc626ff608a6d22d62637585a33166aa28f59fabed22 inittab
+f0d12f365839e7e262ec91e151119de7f2f253e9d0443157de4d52e183f421fbbb9eb0a83b9267a9ee850bebe41bff3c3cef553f9bda6e70d59a754a955be57d passwd
+4eb857ed59c2edb257636d2bf196989e514a273e9701e9f076c9ae8c1589b4898269180569960acf072c0981ec7ea54014fd230f014401d6bb92314285d1e6aa profile
+3a00083bcdf5a9e884c9d07877d52311e3d99e79cbee656e236ba06e08ba0dddb7ba76494fdc9dd1a826c48e197a790a69e6bb458e9df64832d6b5e904e9fd15 protocols-6.4
+47b0f3ee73af2d259bd206a026204be0ea25531a895a0b035a904b38fe5407bc3dd2beab7f8fcb3d760587e6159702ebdb9cbc4f508942befdf7f10c10c87888 services-6.4
"
diff --git a/main/alpine-baselayout/alpine-baselayout.post-install b/main/alpine-baselayout/alpine-baselayout.post-install
index 4092e1b7dce..7cfe97d6357 100644
--- a/main/alpine-baselayout/alpine-baselayout.post-install
+++ b/main/alpine-baselayout/alpine-baselayout.post-install
@@ -1,45 +1,14 @@
#!/bin/sh
-create_vserver_startstop() {
- cat <<__EOF__
-#!/bin/sh
-
-# This file is for compatibility
-case \${0##*/} in
-rcL)
- RUNLEVEL=1 /sbin/rc sysinit || exit 1
- /sbin/rc boot || exit 1
- /sbin/rc \${1:-default}
- exit 0
- ;;
-rcK)
- /sbin/rc shutdown
- ;;
-esac
-
-__EOF__
-}
-
-# create compat start/stop scripts for vserver guests
-if [ -x /sbin/rc ] && [ "$( /sbin/rc --sys )" = "VSERVER" ]; then
- # create rcL and rcK
- if ! [ -e /etc/init.d/rcL ]; then
- create_vserver_startstop > /etc/init.d/rcL
- chmod +x /etc/init.d/rcL
- fi
- if ! [ -e /etc/init.d/rcK ]; then
- ln -s rcL /etc/init.d/rcK
- fi
-fi
-
-# force /etc/shadow to be owned by root and not be world readable
-chown root:shadow /etc/shadow
-chmod 640 /etc/shadow
-
# update color_prompt.sh symlink (if exists) after we renamed color_prompt to
# color_prompt.sh.disabled.
-case "$(readlink /etc/profile.d/color_prompt.sh 2>/dev/null || true)" in
- color_prompt) ln -sf color_prompt.sh.disabled /etc/profile.d/color_prompt.sh;;
+case "$(readlink etc/profile.d/color_prompt.sh 2>/dev/null || true)" in
+ color_prompt) ln -sf color_prompt.sh.disabled etc/profile.d/color_prompt.sh;;
esac
+# the /etc/group file is created after /etc/shadow. Needed to apply the group
+# properly.
+chown root:shadow etc/shadow
+chown root:shadow etc/shadow-
+
exit 0
diff --git a/main/alpine-baselayout/alpine-baselayout.pre-upgrade b/main/alpine-baselayout/alpine-baselayout.pre-upgrade
index 6f7b23d5aab..f876e443749 100644
--- a/main/alpine-baselayout/alpine-baselayout.pre-upgrade
+++ b/main/alpine-baselayout/alpine-baselayout.pre-upgrade
@@ -1,7 +1,7 @@
#!/bin/sh
# we need to have our modprobe.d files with .conf suffix
-for i in /etc/modprobe.d/*; do
+for i in etc/modprobe.d/*; do
# ignore files that does not exist (i.e if modprobe.d is empty)
[ -r "$i" ] || continue
@@ -15,18 +15,18 @@ for i in /etc/modprobe.d/*; do
done
# migrate /var/run directory to /run
-if [ -d /var/run ] && [ ! -L /var/run ]; then
- cp -a /var/run/* /run 2>/dev/null
- rm -rf /var/run
- ln -s ../run /var/run
+if [ -d var/run ] && [ ! -L var/run ]; then
+ cp -a var/run/* run 2>/dev/null
+ rm -rf var/run
+ ln -s ../run var/run
fi
# migrate /var/spool/mail directory to /var/mail
-if [ -d /var/spool/mail ] && [ ! -L /var/spool/mail ]; then
- mkdir -p /var/mail
- cp -a /var/spool/mail/* /var/mail/ 2>/dev/null
- rm -rf /var/spool/mail
- ln -s ../mail /var/spool/mail
+if [ -d var/spool/mail ] && [ ! -L var/spool/mail ]; then
+ mkdir -p var/mail
+ cp -a var/spool/mail/* var/mail/ 2>/dev/null
+ rm -rf var/spool/mail
+ ln -s ../mail var/spool/mail
fi
addgroup -S -g 42 shadow 2>/dev/null
diff --git a/main/alpine-baselayout/group b/main/alpine-baselayout/group
index 23b124be309..4a0d2913666 100644
--- a/main/alpine-baselayout/group
+++ b/main/alpine-baselayout/group
@@ -1,46 +1,33 @@
root:x:0:root
bin:x:1:root,bin,daemon
daemon:x:2:root,bin,daemon
-sys:x:3:root,bin,adm
-adm:x:4:root,adm,daemon
+sys:x:3:root,bin
+adm:x:4:root,daemon
tty:x:5:
-disk:x:6:root,adm
+disk:x:6:root
lp:x:7:lp
-mem:x:8:
kmem:x:9:
wheel:x:10:root
floppy:x:11:root
mail:x:12:mail
news:x:13:news
uucp:x:14:uucp
-man:x:15:man
cron:x:16:cron
-console:x:17:
audio:x:18:
cdrom:x:19:
dialout:x:20:root
ftp:x:21:
sshd:x:22:
input:x:23:
-at:x:25:at
tape:x:26:root
video:x:27:root
netdev:x:28:
-readproc:x:30:
-squid:x:31:squid
-xfs:x:33:xfs
kvm:x:34:kvm
games:x:35:
shadow:x:42:
-cdrw:x:80:
www-data:x:82:
-usb:x:85:
-vpopmail:x:89:
users:x:100:games
ntp:x:123:
-nofiles:x:200:
-smmsp:x:209:smmsp
-locate:x:245:
abuild:x:300:
utmp:x:406:
ping:x:999:
diff --git a/main/alpine-baselayout/inittab b/main/alpine-baselayout/inittab
index 960aa40577e..5294b8f53b1 100644
--- a/main/alpine-baselayout/inittab
+++ b/main/alpine-baselayout/inittab
@@ -13,7 +13,7 @@ tty5::respawn:/sbin/getty 38400 tty5
tty6::respawn:/sbin/getty 38400 tty6
# Put a getty on the serial port
-#ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100
+#ttyS0::respawn:/sbin/getty -L 115200 ttyS0 vt100
# Stuff to do for the 3-finger salute
::ctrlaltdel:/sbin/reboot
diff --git a/main/alpine-baselayout/locale.sh b/main/alpine-baselayout/locale.sh
deleted file mode 100644
index bf75c082729..00000000000
--- a/main/alpine-baselayout/locale.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-export CHARSET=UTF-8
-export LANG=C.UTF-8
-export LC_COLLATE=C
diff --git a/main/alpine-baselayout/mkmntdirs.c b/main/alpine-baselayout/mkmntdirs.c
deleted file mode 100644
index eaeae7321ef..00000000000
--- a/main/alpine-baselayout/mkmntdirs.c
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- * Create mount directories in fstab
- *
- * Copyright(c) 2008 Natanael Copa <natanael.copa@gmail.com>
- * May be distributed under the terms of GPL-2
- *
- * usage: mkmntdirs [fstab]
- *
- */
-
-#include <sys/stat.h>
-#include <sys/types.h>
-
-#include <err.h>
-#include <mntent.h>
-#include <stdio.h>
-#include <string.h>
-
-
-#ifdef DEBUG
-#define mkdir_recursive(p) puts((p))
-#else
-static void mkdir_recursive(char *path)
-{
- char *s = path;
- while (1) {
- int c = '\0';
- while (*s) {
- if (*s == '/') {
- do {
- ++s;
- } while (*s == '/');
- c = *s; /* Save the current char */
- *s = '\0'; /* and replace it with nul. */
- break;
- }
- ++s;
- }
- mkdir(path, 0755);
- if (c == '\0')
- return;
- *s = c;
- }
-}
-#endif
-
-int main(int argc, const char *argv[])
-{
- const char *filename = "/etc/fstab";
- FILE *f;
- struct mntent *ent;
- if (argc == 2)
- filename = argv[1];
-
- f = setmntent(filename, "r");
- if (f == NULL)
- err(1, "%s", filename);
-
- while ((ent = getmntent(f)) != NULL) {
- if (strcmp(ent->mnt_dir, "none") != 0)
- mkdir_recursive(ent->mnt_dir);
- }
-
- endmntent(f);
- return 0;
-}
-
diff --git a/main/alpine-baselayout/passwd b/main/alpine-baselayout/passwd
index cc124a93bd4..1130fa0b21c 100644
--- a/main/alpine-baselayout/passwd
+++ b/main/alpine-baselayout/passwd
@@ -1,7 +1,6 @@
-root:x:0:0:root:/root:/bin/ash
+root:x:0:0:root:/root:/bin/sh
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
-adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
@@ -9,19 +8,10 @@ halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/mail:/sbin/nologin
news:x:9:13:news:/usr/lib/news:/sbin/nologin
uucp:x:10:14:uucp:/var/spool/uucppublic:/sbin/nologin
-operator:x:11:0:operator:/root:/sbin/nologin
-man:x:13:15:man:/usr/man:/sbin/nologin
-postmaster:x:14:12:postmaster:/var/mail:/sbin/nologin
cron:x:16:16:cron:/var/spool/cron:/sbin/nologin
ftp:x:21:21::/var/lib/ftp:/sbin/nologin
sshd:x:22:22:sshd:/dev/null:/sbin/nologin
-at:x:25:25:at:/var/spool/cron/atjobs:/sbin/nologin
-squid:x:31:31:Squid:/var/cache/squid:/sbin/nologin
-xfs:x:33:33:X Font Server:/etc/X11/fs:/sbin/nologin
games:x:35:35:games:/usr/games:/sbin/nologin
-cyrus:x:85:12::/usr/cyrus:/sbin/nologin
-vpopmail:x:89:89::/var/vpopmail:/sbin/nologin
ntp:x:123:123:NTP:/var/empty:/sbin/nologin
-smmsp:x:209:209:smmsp:/var/spool/mqueue:/sbin/nologin
guest:x:405:100:guest:/dev/null:/sbin/nologin
nobody:x:65534:65534:nobody:/:/sbin/nologin
diff --git a/main/alpine-baselayout/profile b/main/alpine-baselayout/profile
index 7544958197c..fbc3ba0cd50 100644
--- a/main/alpine-baselayout/profile
+++ b/main/alpine-baselayout/profile
@@ -1,24 +1,5 @@
-# Append "$1" to $PATH when not already in.
-# Copied from Arch Linux, see #12803 for details.
-append_path () {
- case ":$PATH:" in
- *:"$1":*)
- ;;
- *)
- PATH="${PATH:+$PATH:}$1"
- ;;
- esac
-}
+export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
-append_path "/usr/local/sbin"
-append_path "/usr/local/bin"
-append_path "/usr/sbin"
-append_path "/usr/bin"
-append_path "/sbin"
-append_path "/bin"
-unset -f append_path
-
-export PATH
export PAGER=less
umask 022
@@ -34,7 +15,6 @@ else
PS1='${HOSTNAME%%.*}:$PWD'
[ "$(id -u)" -eq 0 ] && PS1="${PS1}# " || PS1="${PS1}\$ "
fi
-export PS1
for script in /etc/profile.d/*.sh ; do
if [ -r "$script" ] ; then
diff --git a/main/alpine-conf/APKBUILD b/main/alpine-conf/APKBUILD
index 9c22ea0a01c..cf36c5d62e3 100644
--- a/main/alpine-conf/APKBUILD
+++ b/main/alpine-conf/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=alpine-conf
-pkgver=3.14.2
+pkgver=3.17.2
pkgrel=0
pkgdesc="Alpine configuration management scripts"
url="https://git.alpinelinux.org/alpine-conf/about"
@@ -9,16 +9,14 @@ license="MIT"
depends="openrc>=0.24.1-r6 busybox>=1.26.1-r3"
checkdepends="kyua"
source="https://gitlab.alpinelinux.org/alpine/alpine-conf/-/archive/$pkgver/alpine-conf-$pkgver.tar.gz
+ setup-disk-add-loongarch64-support.patch
"
-builddir="$srcdir"/$pkgname-$pkgver
build() {
- cd "$builddir"
make VERSION=$pkgver-r$pkgrel
}
package() {
- cd "$builddir"
make install PREFIX= DESTDIR="$pkgdir"
for i in commit exclude include status update; do
ln -s lbu "$pkgdir"/sbin/lbu_$i
@@ -30,5 +28,6 @@ check() {
}
sha512sums="
-beb1e283db82cda8ce892c1a209d15011ad0ac5f061a5040d8ef0dddf7668c31a6dd7568451078e4b44f519744ea5488f973e9d00735e925568f8d6e710d6f6b alpine-conf-3.14.2.tar.gz
+4459ba5004a9c4272e606af9f4c21119d3c8ab8f55543c79a7b3469f0574232cf286cbb5887f338f1371d013236522f630bdf3f096c62fb886ce226d4065f386 alpine-conf-3.17.2.tar.gz
+c8b2ff058e65e774de5254ee5f0b62360bf83e746790190c73f55cedcaf568f431902768d147310b4d6b1f1d80b87849cf09790384a38b650f6f889a36c8a6c1 setup-disk-add-loongarch64-support.patch
"
diff --git a/main/alpine-conf/setup-disk-add-loongarch64-support.patch b/main/alpine-conf/setup-disk-add-loongarch64-support.patch
new file mode 100644
index 00000000000..a9f8120aeae
--- /dev/null
+++ b/main/alpine-conf/setup-disk-add-loongarch64-support.patch
@@ -0,0 +1,24 @@
+From 1512b22ae7cbd99f5f77a027fbd2b6acb3ec1615 Mon Sep 17 00:00:00 2001
+From: Jingyun Hua <huajingyun@loongson.cn>
+Date: Mon, 18 Mar 2024 10:48:17 +0800
+Subject: [PATCH] setup-disk: add loongarch64 support
+
+---
+ setup-disk.in | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/setup-disk.in b/setup-disk.in
+index 56f5152..7f01bfb 100755
+--- a/setup-disk.in
++++ b/setup-disk.in
+@@ -322,6 +322,7 @@ setup_grub() {
+ arm*) target=arm-efi ; fwa=arm ;;
+ aarch64) target=arm64-efi ; fwa=aa64 ;;
+ riscv64) target=riscv64-efi ; fwa=riscv64 ;;
++ loongarch64) target=loongarch64-efi ; fwa=loongarch64 ;;
+ esac
+
+ # currently disabling nvram so grub doesnt call efibootmgr
+--
+2.27.0
+
diff --git a/main/alpine-git-mirror-syncd/APKBUILD b/main/alpine-git-mirror-syncd/APKBUILD
index d465f2e7006..cc0325f4fd6 100644
--- a/main/alpine-git-mirror-syncd/APKBUILD
+++ b/main/alpine-git-mirror-syncd/APKBUILD
@@ -3,14 +3,14 @@
pkgname=alpine-git-mirror-syncd
_shortname=git-mirror-syncd
pkgver=0.3.1
-pkgrel=0
+pkgrel=2
pkgdesc="Lua script that listens on MQTT and synchronizes Git mirrors when notified about changes"
url="https://github.com/jirutka/alpine-git-mirror-syncd"
arch="noarch"
license="MIT"
depends="ca-certificates git lua5.1 lua5.1-cjson lua5.1-mosquitto"
-source="https://github.com/jirutka/$pkgname/archive/v$pkgver/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+subpackages="$pkgname-openrc"
+source="https://github.com/jirutka/alpine-git-mirror-syncd/archive/v$pkgver/alpine-git-mirror-syncd-$pkgver.tar.gz"
options="!check" # upstream does not provide any tests yet
prepare() {
@@ -20,8 +20,6 @@ prepare() {
}
package() {
- cd "$builddir"
-
install -D -m 755 $_shortname.lua "$pkgdir"/usr/bin/$_shortname
install -D -m 644 config.lua.example "$pkgdir"/etc/$_shortname/config.lua
install -D -m 755 etc/init.d/$_shortname "$pkgdir"/etc/init.d/$_shortname
diff --git a/main/alpine-ipxe/APKBUILD b/main/alpine-ipxe/APKBUILD
index a54db2b92bd..879730524d0 100644
--- a/main/alpine-ipxe/APKBUILD
+++ b/main/alpine-ipxe/APKBUILD
@@ -5,7 +5,7 @@ pkgver=1.20.1
pkgrel=1
pkgdesc="iPXE build for Alpine Linux netboot"
url="https://boot.alpinelinux.org"
-arch="x86 x86_64 aarch64"
+arch="x86 aarch64"
license="GPL-2.0-or-later"
makedepends="xz-dev perl coreutils bash syslinux xorriso"
options="!strip !check !archcheck !tracedeps" # no tests
@@ -56,6 +56,7 @@ build() {
CERT="$srcdir"/alpine-netboot-ca.crt,"$srcdir"/DST_Root_CA_X3.pem \
TRUST="$srcdir"/alpine-netboot-ca.crt,"$srcdir"/DST_Root_CA_X3.pem \
EXTRA_CFLAGS="-fcommon" \
+ NO_WERROR=1 \
$_targets
}
diff --git a/main/alpine-make-rootfs/APKBUILD b/main/alpine-make-rootfs/APKBUILD
index f0d18ef3616..8aa6ac4289b 100644
--- a/main/alpine-make-rootfs/APKBUILD
+++ b/main/alpine-make-rootfs/APKBUILD
@@ -1,22 +1,20 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=alpine-make-rootfs
-pkgver=0.6.0
+pkgver=0.7.0
pkgrel=0
pkgdesc="Make customized Alpine Linux rootfs (base image) for containers"
url="https://github.com/alpinelinux/alpine-make-rootfs"
arch="noarch"
license="MIT"
depends="tar"
-source="$pkgname-$pkgver.tar.gz::https://github.com/alpinelinux/$pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+source="$pkgname-$pkgver.tar.gz::https://github.com/alpinelinux/alpine-make-rootfs/archive/v$pkgver.tar.gz"
options="!check" # no suitable tests provided
package() {
- cd "$builddir"
make install DESTDIR="$pkgdir" PREFIX=/usr
}
sha512sums="
-2ea723071c469318006a0e5d8fcc22f7cd9ebfb6ebc271e20951f5999a1521811f12850dfcd91533cd3f6572eafaa6b001112a32c8f6c00fd626f9aa1e9a372b alpine-make-rootfs-0.6.0.tar.gz
+3c8fbe9b27a08e484b01848d1d836a65ef1a07535938b5767a643c92e37cf75ffaba525030da1fe4c9d50c363f8f10f5030b9403161579a3720e1e9b438cfa35 alpine-make-rootfs-0.7.0.tar.gz
"
diff --git a/main/alpine-sdk/APKBUILD b/main/alpine-sdk/APKBUILD
index cfe8dca095a..3163037ae9c 100644
--- a/main/alpine-sdk/APKBUILD
+++ b/main/alpine-sdk/APKBUILD
@@ -7,6 +7,7 @@ pkgdesc="Alpine Software Development Kit meta package"
depends="abuild build-base git"
arch="noarch"
license="GPL-2.0"
+options="!check"
build() {
# meta package
diff --git a/main/alsa-lib/APKBUILD b/main/alsa-lib/APKBUILD
index 20a3b8c8282..2ec22ccd222 100644
--- a/main/alsa-lib/APKBUILD
+++ b/main/alsa-lib/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=alsa-lib
-pkgver=1.2.7.1
+pkgver=1.2.11
pkgrel=0
pkgdesc="Advanced Linux Sound Architecture (ALSA) library"
url="https://alsa-project.org/"
@@ -12,6 +12,10 @@ source="https://alsa-project.org/files/pub/lib/alsa-lib-$pkgver.tar.bz2
remove-test.patch
fix-PATH_MAX-on-ppc64le.patch
"
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
./configure \
@@ -39,7 +43,7 @@ package() {
}
sha512sums="
-2a0b4205e8bf602b56a6f5007ba219799e5443827393058e439adf5b391bb6c4815a48bb994b5d108b9f31a90db0eb43a96a0d7741216e2d710dc63d372de27e alsa-lib-1.2.7.1.tar.bz2
+7bf2c541dff5262c0302a1c716ca10cdb5105f4e0ad48f3341c3c7e975b0c3ea835a298a05974c3e216a85912c368d8025ba3cdda3ff04a7683133ce5b2a286d alsa-lib-1.2.11.tar.bz2
e15318431fe2d5bd1e42ef793f223e3e5995890d7befe6daa3d7456ccf5cb2f51eb79171539cecae13032a9b8a798ea35e04c89b27c7ef9567e2c03fb8db4512 remove-test.patch
f980d153c2f179e2f8fd90180d19250e5a5e12388f31d86a233d89be72ae7e96b944a8f435f0a11c6140378ac38eaa937175e1c100395ec4f635a9a6a4b1ae25 fix-PATH_MAX-on-ppc64le.patch
"
diff --git a/main/alsa-ucm-conf/APKBUILD b/main/alsa-ucm-conf/APKBUILD
new file mode 100644
index 00000000000..2cb410359a2
--- /dev/null
+++ b/main/alsa-ucm-conf/APKBUILD
@@ -0,0 +1,24 @@
+# Contributor: Minecrell <minecrell@minecrell.net>
+# Maintainer: Minecrell <minecrell@minecrell.net>
+pkgname=alsa-ucm-conf
+pkgver=1.2.11
+pkgrel=1
+pkgdesc="ALSA Use Case Manager configuration"
+url="https://alsa-project.org"
+arch="noarch"
+license="BSD-3-Clause"
+source="https://alsa-project.org/files/pub/lib/alsa-ucm-conf-$pkgver.tar.bz2"
+options="!check" # no tests
+provider_priority=10
+# replaced files from downstream pmos
+replaces="device-purism-librem5"
+
+package() {
+ mkdir -p "$pkgdir"/usr/share/alsa
+ cp -r ucm2 "$pkgdir"/usr/share/alsa
+ find "$pkgdir"/usr/share/alsa \( -name '*.md' -o -name '.gitignore' \) -delete
+}
+
+sha512sums="
+b202e7410a579789be0005564b4868f70bca0fd8664c02add95fc9ff90ab64faebda978fbd3e83a3274c37242dccf8efbebd03f529e35ca3033daf55f425cb8d alsa-ucm-conf-1.2.11.tar.bz2
+"
diff --git a/main/alsa-utils/APKBUILD b/main/alsa-utils/APKBUILD
index 8c72835a6ba..2182cb5e837 100644
--- a/main/alsa-utils/APKBUILD
+++ b/main/alsa-utils/APKBUILD
@@ -1,28 +1,35 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=alsa-utils
-pkgver=1.2.7
-pkgrel=0
+pkgver=1.2.11
+pkgrel=1
pkgdesc="Advanced Linux Sound Architecture (ALSA) utilities"
url="https://alsa-project.org/"
arch="all"
options="!check" # No test suite, applets use ncurses / don't have --version
license="GPL-2.0-or-later"
makedepends="alsa-lib-dev fftw-dev ncurses-dev pciutils-dev xmlto"
-depends="dialog"
+depends="dialog alsa-ucm-conf"
subpackages="$pkgname-dbg alsaconf::noarch $pkgname-doc $pkgname-openrc"
source="https://alsa-project.org/files/pub/utils/alsa-utils-$pkgver.tar.bz2
alsaconf.patch
alsa.initd
alsa.confd
+ musl-locale.patch
+ musl-types.patch
"
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
- --disable-nls
+ --disable-nls \
+ --with-alsactl-lock-dir=/run/lock
make
}
@@ -33,16 +40,16 @@ package() {
}
alsaconf() {
- depends="alsa-utils bash"
- cd "$builddir"
- mkdir -p "$subpkgdir"/usr/sbin
- mv "$pkgdir"/usr/sbin/alsaconf \
- "$subpkgdir"/usr/sbin
+ depends="$pkgname=$pkgver-r$pkgrel bash"
+
+ amove usr/sbin/alsaconf
}
sha512sums="
-1be8f617315193e6033653ac96a14bd1c3272cd9d8f3776cdb1357f35f5353652acd5975cfc5bd16278cd496f5bf409bb60432818a526282edad9a4c718a97c9 alsa-utils-1.2.7.tar.bz2
+5ce76807b53357584bfb4ace5acfdac4db9168ffaf5cdd1e499738eec046c36112bf84a99970f66368063a9baf73bad93af2d439630572f3eba5c9321071172d alsa-utils-1.2.11.tar.bz2
f04155e1e391c7f36d44422c8e769bf9370117f6bbea6c0664e9858f7a676cc958e4260e4b4d226e71d0716f6be4e6fdd60f1d07cb7e9922fff378ceec01c47d alsaconf.patch
c66959a4a1a24a727c9c91a455caa5fa093c523d17a563b56ec2449a02ff30c83683db555006954b1fe571446cf4a117cc41de8c8b869a6e875d386595b3cc1f alsa.initd
d7e212e9f624b09168117b46c66289204a23915adf0d1b0c9ae258049430397b8f2d86d3b5f7e3087151948a031c4eab863e8195a6c7b1276704e9cba9c2d2a7 alsa.confd
+4b4b4d6406d57f592ecec9a79b5e401d1e1025e4f0b0d51ba233a5d2fcd1ce27ef336fda0242e7ff7d229d00428b7030d1d5789c9c306f824938366530eff6d9 musl-locale.patch
+ee74137d5bf431090a2603c87c94f19063d9a62921b3c6bc1f19317e006a7ec278b66da9ccfb1b64fa5da46852f6a84ac2511b9ce74969799d0fca4cd9b2bc8d musl-types.patch
"
diff --git a/main/alsa-utils/musl-locale.patch b/main/alsa-utils/musl-locale.patch
new file mode 100644
index 00000000000..84bc89ba04e
--- /dev/null
+++ b/main/alsa-utils/musl-locale.patch
@@ -0,0 +1,28 @@
+Patch-Source: https://github.com/alsa-project/alsa-utils/commit/8c229270f6bae83b705a03714c46067a7aa57b02.patch
+--
+From 8c229270f6bae83b705a03714c46067a7aa57b02 Mon Sep 17 00:00:00 2001
+From: Michael Opdenacker <michael.opdenacker@bootlin.com>
+Date: Tue, 19 Sep 2023 13:14:29 +0200
+Subject: [PATCH] topology: include locale.h
+
+This solves an issue compiling with the musl libc.
+
+Fixes: https://github.com/alsa-project/alsa-utils/issues/239
+Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+---
+ topology/topology.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/topology/topology.c b/topology/topology.c
+index 1840ffe6..5d03a8b1 100644
+--- a/topology/topology.c
++++ b/topology/topology.c
+@@ -32,6 +32,7 @@
+ #include <sys/stat.h>
+ #include <getopt.h>
+ #include <assert.h>
++#include <locale.h>
+
+ #include <alsa/asoundlib.h>
+ #include <alsa/topology.h>
diff --git a/main/alsa-utils/musl-types.patch b/main/alsa-utils/musl-types.patch
new file mode 100644
index 00000000000..7eaf00b79ca
--- /dev/null
+++ b/main/alsa-utils/musl-types.patch
@@ -0,0 +1,28 @@
+Patch-Source: https://github.com/alsa-project/alsa-utils/commit/0925ad7f09b2dc77015784f9ac2f5e34dd0dd5c3.patch
+--
+From 0925ad7f09b2dc77015784f9ac2f5e34dd0dd5c3 Mon Sep 17 00:00:00 2001
+From: Michael Opdenacker <michael.opdenacker@bootlin.com>
+Date: Tue, 19 Sep 2023 13:14:30 +0200
+Subject: [PATCH] nhlt-dmic-info.c: include sys/types.h
+
+This fixes an issue compiling with the musl libc.
+
+Fixes: https://github.com/alsa-project/alsa-utils/issues/238
+Signed-off-by: Michael Opdenacker <michael.opdenacker@bootlin.com>
+Signed-off-by: Jaroslav Kysela <perex@perex.cz>
+---
+ nhlt/nhlt-dmic-info.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/nhlt/nhlt-dmic-info.c b/nhlt/nhlt-dmic-info.c
+index 3f6c64d9..331555a8 100644
+--- a/nhlt/nhlt-dmic-info.c
++++ b/nhlt/nhlt-dmic-info.c
+@@ -33,6 +33,7 @@
+ #include <fcntl.h>
+ #include <getopt.h>
+ #include <sys/stat.h>
++#include <sys/types.h>
+ #include <arpa/inet.h>
+
+ int debug = 0;
diff --git a/main/altermime/APKBUILD b/main/altermime/APKBUILD
index b23ad947c6f..3db166af4dc 100644
--- a/main/altermime/APKBUILD
+++ b/main/altermime/APKBUILD
@@ -3,11 +3,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=altermime
pkgver=0.3.11
-pkgrel=1
+pkgrel=4
pkgdesc="alterMIME - MIME encoded email pack alteration tool"
url="https://pldaniels.com/altermime"
arch="all"
-license="custom:altermime"
+license="BSD-2-Clause"
# no check provided by upstream
options="!check"
subpackages="$pkgname-doc"
@@ -20,8 +20,6 @@ build() {
package() {
install -Dm755 $pkgname "$pkgdir"/usr/bin/$pkgname
- install -Dm644 LICENCE \
- "$pkgdir"/usr/share/licenses/$pkgname/LICENCE
install -Dm644 README \
"$pkgdir"/usr/share/doc/$pkgname/README
}
diff --git a/main/amavis/APKBUILD b/main/amavis/APKBUILD
index 943d4bb7fd0..e159254e7b0 100644
--- a/main/amavis/APKBUILD
+++ b/main/amavis/APKBUILD
@@ -1,10 +1,10 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=amavis
-pkgver=2.12.2
+pkgver=2.13.0
pkgrel=1
pkgdesc="High-performance interface between mailer (MTA) and content checkers"
url="https://gitlab.com/amavis/amavis"
-arch="noarch !x86" # perl-db
+arch="noarch"
license="GPL-2.0-or-later BSD-2-Clause-Views"
provides="amavisd-new=$pkgver-r$pkgrel"
depends="sed file perl perl-archive-zip perl-carp perl-convert-tnef
@@ -15,7 +15,6 @@ depends="sed file perl perl-archive-zip perl-carp perl-convert-tnef
perl-io-socket-inet6 perl-io-socket-ssl
perl-mail-spamassassin
"
-makedepends=""
install="$pkgname.pre-install"
options="!check"
subpackages="$pkgname-openrc"
@@ -30,6 +29,7 @@ builddir="$srcdir"/$pkgname-v$pkgver
package() {
_amavis_home=/var/amavis
+ _perl_vendorlib="$pkgdir"/usr/share/perl5/vendor_perl
for dir in $_amavis_home/tmp \
$_amavis_home/var \
@@ -40,18 +40,23 @@ package() {
install -dm750 -o amavis -g amavis "${pkgdir}$dir"
done
+ cd bin
for file in amavisd amavisd-nanny amavisd-release; do
install -Dm755 -o root -g amavis "$file" "$pkgdir/usr/sbin/$file"
done
+ cd ..
- install -Dm640 -o root -g amavis amavisd.conf "$pkgdir"/etc/amavisd.conf
+ install -Dm640 -o root -g amavis conf/amavisd.conf "$pkgdir"/etc/amavisd.conf
install -Dm755 "$srcdir"/amavisd.initd "$pkgdir"/etc/init.d/amavisd
install -Dm644 "$srcdir"/amavisd.confd "$pkgdir"/etc/conf.d/amavisd
+
+ mkdir -p -m 0755 $_perl_vendorlib
+ cp -pr lib/* $_perl_vendorlib
}
sha512sums="
-7ef5ba670b530bf19352ba8aebd57a171e32d90adffc0b248b93a39f740fe4bb8ddf1d5ecdd46d0c9e1b4ca1a9ff0a9e86e73900e73a1a2cac514656c3a7db01 amavis-v2.12.2.tar.gz
+6e0a7d6914d1aa53efd2c5d525cea846e125907e1c9e25b89dcc6caab65296fb4998c6cae17124406a016e9bc60f5f0de30660f88f8543823dae9d4e1a198270 amavis-v2.13.0.tar.gz
6a9dd16a6b52f3d1fbd16887f29ccceddc58e88a02e681f23c1fe54b7e24feea5089d52813f4f3e87d9242daf79d2b2ea1e7c451d83d7de943403e71dc61c4e5 amavisd.initd
a5ce3583c34197f335372728cf92da23bae2cd7a9ae48daff6eaadbf66fbd5be6bb8b480b0fce1ea2b3a662b0a54d1d2f1f277d2f9a06d9630b57fa5d7ac2635 amavisd.confd
-87f9c4489fb377e6e1315edcef75940b1a61a30c418106c1ef48eef4f425746333c550b270e0e6727fe89a68239f673f24392d81a53157ad487d3d2da1e95b4c amavisd-conf.patch
+aede1b93303492f06a16a0f9a862dfa64117ac80596ec420308e89cc1794be2e0be4adf66e312ecedac10e6fd7b981097fa0aadddb0bced334e6d32e7a73d217 amavisd-conf.patch
"
diff --git a/main/amavis/amavisd-conf.patch b/main/amavis/amavisd-conf.patch
index 708bd4a2650..3da8c1f0faa 100644
--- a/main/amavis/amavisd-conf.patch
+++ b/main/amavis/amavisd-conf.patch
@@ -1,13 +1,13 @@
---- a/amavisd.conf
-+++ b/amavisd.conf
+--- a/conf/amavisd.conf
++++ b/conf/amavisd.conf
@@ -17,15 +17,15 @@
# truncation in /proc/<pid>/stat and ps -e output
$max_servers = 2; # num of pre-forked children (2..30 is common), -m
--$daemon_user = 'vscan'; # (no default; customary: vscan or amavis), -u
--$daemon_group = 'vscan'; # (no default; customary: vscan or amavis), -g
-+$daemon_user = 'amavis'; # (no default; customary: vscan or amavis), -u
-+$daemon_group = 'amavis'; # (no default; customary: vscan or amavis), -g
+-$daemon_user = 'vscan'; # (no default; customary: vscan or amavis), -u
+-@daemon_groups = 'vscan'; # (leave empty to use $daemon_user's supplementary groups), -g
++$daemon_user = 'amavis'; # (no default; customary: vscan or amavis), -u
++@daemon_groups = 'amavis'; # (no default; customary: vscan or amavis), -g
$mydomain = 'example.com'; # a convenient default for other settings
diff --git a/main/amavisd-milter/APKBUILD b/main/amavisd-milter/APKBUILD
index 45299851b62..93a5e589406 100644
--- a/main/amavisd-milter/APKBUILD
+++ b/main/amavisd-milter/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Elias Werberich <elias@werberich.de>
# Maintainer: Noel Kuntze <noel.kuntze@thermi.consulting>
pkgname=amavisd-milter
-pkgver=1.7.1
-pkgrel=2
+pkgver=1.7.2
+pkgrel=0
pkgdesc="sendmail milter for amavisd-new using the AM.PDP protocol"
url="https://github.com/prehor/amavisd-milter"
arch="all !x86" #amavis isn't build for x86
@@ -16,12 +16,19 @@ source="
amavisd-milter.confd
"
+prepare() {
+ default_prepare
+
+ update_config_sub
+ chmod +x aclocal/install-sh
+}
+
build() {
./configure \
--build=$CBUILD \
--host=$CHOST \
- --target="" \
- --prefix=/usr
+ --prefix=/usr \
+ --disable-dependency-tracking
make
}
@@ -38,6 +45,8 @@ package() {
install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
-sha512sums="db2fd53a3047a21fb20743fce7d01899eb92efffc62159d3022e0b5014dbfb3667e1664868734d84b58f5daadd8270d3e05a68c60a01a1ac35d104105cc86586 amavisd-milter-1.7.1.tar.gz
+sha512sums="
+639a5a4f92131f9b8d004255819e36dedd529ec95f8290663c6ea5860dbbce049a822ba0e68158228716778265009b93024e9102defdf9250d4e889157008181 amavisd-milter-1.7.2.tar.gz
3f631248da7ecc36790123bad82b0d17a110947dd84aa03fc1e81c3ed99db43ae52d3cef10c048a9147d86973a8d730494b6c289f96195dbafab2804538191fd amavisd-milter.initd
-f44ab528c65050e23a2e78dafd937dae5bc73bd83ff780d7a193d47744674f3991c9d1ae99c4fb8ce1762c50ed6ca5fb604eb2c4cf69fe2e27e8a4076b6f2eec amavisd-milter.confd"
+f44ab528c65050e23a2e78dafd937dae5bc73bd83ff780d7a193d47744674f3991c9d1ae99c4fb8ce1762c50ed6ca5fb604eb2c4cf69fe2e27e8a4076b6f2eec amavisd-milter.confd
+"
diff --git a/main/aom/APKBUILD b/main/aom/APKBUILD
new file mode 100644
index 00000000000..d6abef214a3
--- /dev/null
+++ b/main/aom/APKBUILD
@@ -0,0 +1,66 @@
+# Contributor: Oleg Titov <oleg.titov@gmail.com>
+# Maintainer: Oleg Titov <oleg.titov@gmail.com>
+pkgname=aom
+pkgver=3.8.2
+pkgrel=0
+pkgdesc="Alliance for Open Media (AOM) AV1 codec SDK"
+url="https://aomedia.org/"
+arch="all"
+license="BSD-2-Clause AND custom"
+options="!check" # tests run for 5+ hours
+makedepends="
+ cmake
+ linux-headers
+ nasm
+ perl
+ python3
+ samurai
+ "
+subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
+source="https://storage.googleapis.com/aom-releases/libaom-$pkgver.tar.gz
+ posix-implicit.patch
+ "
+builddir="$srcdir/libaom-$pkgver"
+
+# secfixes:
+# 3.1.1-r0:
+# - CVE-2021-30473
+# - CVE-2021-30474
+# - CVE-2021-30475
+
+build() {
+ local _neon_opt=
+ case "$CARCH" in
+ armhf) _neon_opt="-DENABLE_NEON=OFF" ;;
+ armv7) _neon_opt="-DAOM_NEON_INTRIN_FLAG=-mfpu=neon" ;;
+ esac
+
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DENABLE_TESTS="$(want_check && echo ON || echo OFF)" \
+ $_neon_opt
+ cmake --build build
+}
+
+check() {
+ local _testdata="$builddir"/test_data
+ mkdir -p $_testdata
+ export LIBAOM_TEST_DATA_PATH=$_testdata
+ ninja -C build testdata
+ ninja -C build runtests
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ install -Dm 644 -t "$pkgdir"/usr/share/doc/"$pkgname"/ \
+ README.md LICENSE PATENTS
+}
+
+sha512sums="
+539cb86645f1675e3f2d45c7c10d5d66ef7d36eaddf0c2d50f1a532287c70f780c8ce6dd8959f4bb112fd74e2b63501652e8e1eba5d18bf03a926ad158f6cfb0 libaom-3.8.2.tar.gz
+14e241f4bf8f181c323cc7db16ea791e3a5ccf6f7f82b854b468f167e7f7210ab66cfacd85806693ba604c58e91ff6a45a5c49dc17a200d5fd65eb3788d397b5 posix-implicit.patch
+"
diff --git a/main/aom/posix-implicit.patch b/main/aom/posix-implicit.patch
new file mode 100644
index 00000000000..b295f41e909
--- /dev/null
+++ b/main/aom/posix-implicit.patch
@@ -0,0 +1,13 @@
+https://bugs.gentoo.org/869419
+
+POSIX_C_SOURCE is needed for ftello.
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -269,6 +269,7 @@ add_library(aom_rtcd OBJECT ${AOM_RTCD_SOURCES})
+ add_dependencies(aom_rtcd aom_version)
+
+ if(ENABLE_EXAMPLES)
++ add_definitions(-D_POSIX_C_SOURCE=200112L)
+ add_library(aom_encoder_stats OBJECT ${AOM_ENCODER_STATS_SOURCES})
+ set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_encoder_stats)
+ endif()
diff --git a/main/apache-mod-auth-kerb/APKBUILD b/main/apache-mod-auth-kerb/APKBUILD
index 69aaac30948..98dd4dff282 100644
--- a/main/apache-mod-auth-kerb/APKBUILD
+++ b/main/apache-mod-auth-kerb/APKBUILD
@@ -3,7 +3,7 @@
pkgname=apache-mod-auth-kerb
_pkgname=mod_auth_kerb
pkgver=5.4
-pkgrel=8
+pkgrel=9
pkgdesc="A Kerberos authentication module for the Apache Http Server"
url="https://sourceforge.net/projects/modauthkerb/"
arch="all"
diff --git a/main/apache-mod-auth-ntlm-winbind/APKBUILD b/main/apache-mod-auth-ntlm-winbind/APKBUILD
index 8685a24c3a4..628443ee3db 100644
--- a/main/apache-mod-auth-ntlm-winbind/APKBUILD
+++ b/main/apache-mod-auth-ntlm-winbind/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Jeff Bilyk <jbilyk@gmail.com>
-# Maintainer: Natanael Copa <natanael.copa@gmail.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=apache-mod-auth-ntlm-winbind
pkgver=0.1
-pkgrel=6
+pkgrel=9
pkgdesc="Authentication module for Apache using NTLM protocol with winbind helper"
url="http://samba.org/ftp/unpacked/lorikeet/mod_auth_ntlm_winbind/"
arch="all"
@@ -10,19 +10,20 @@ license="Apache-2.0"
depends="apache2 samba samba-winbind"
makedepends="autoconf apache2-dev apr-util-dev apr-dev"
source="http://samba.org/ftp/unpacked/lorikeet/mod_auth_ntlm_winbind/mod_auth_ntlm_winbind.c
-http://samba.org/ftp/unpacked/lorikeet/mod_auth_ntlm_winbind/configure.in
-http://samba.org/ftp/unpacked/lorikeet/mod_auth_ntlm_winbind/Makefile.in
-mod-auth-ntlm-winbind.conf"
+ http://samba.org/ftp/unpacked/lorikeet/mod_auth_ntlm_winbind/configure.in
+ http://samba.org/ftp/unpacked/lorikeet/mod_auth_ntlm_winbind/Makefile.in
+ mod-auth-ntlm-winbind.conf
+ "
+builddir="$srcdir"
+options="!check"
build() {
- cd "$srcdir"
autoconf
./configure
- make DESTDIR="$pkgdir" || return 1
+ make DESTDIR="$pkgdir"
}
package() {
- cd "$srcdir"
mkdir -p "$pkgdir"/etc/apache2/conf.d
mkdir -p "$pkgdir"/usr/lib/apache2
install mod-auth-ntlm-winbind.conf "$pkgdir"/etc/apache2/conf.d/mod-auth-ntlm-winbind.conf
diff --git a/main/apache-mod-auth-radius/APKBUILD b/main/apache-mod-auth-radius/APKBUILD
index a0e2a4c6cb9..af40c456228 100644
--- a/main/apache-mod-auth-radius/APKBUILD
+++ b/main/apache-mod-auth-radius/APKBUILD
@@ -3,16 +3,15 @@
pkgname=apache-mod-auth-radius
_pkgname=mod_auth_radius
pkgver=1.6.0
-pkgrel=0
+pkgrel=3
pkgdesc="Apache authentication module to become RADIUS client for AAA requests"
url="http://freeradius.org/mod_auth_radius/"
arch="all"
-license="BSD"
+license="Apache-1.0"
depends="apache2"
makedepends="apache2-dev freeradius-dev"
-install=""
options="!check"
-source="$pkgname_$pkgver.tar.gz::https://github.com/FreeRADIUS/mod_auth_radius/archive/v$pkgver.tar.gz
+source="$pkgname-$pkgver.tar.gz::https://github.com/FreeRADIUS/mod_auth_radius/archive/v$pkgver.tar.gz
mod-auth-radius.conf"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -28,5 +27,7 @@ package() {
install -D -m644 ../../mod-auth-radius.conf "$pkgdir"/etc/apache2/conf.d/mod-auth-radius.conf
}
-sha512sums="e128855ab198b35030b798c16538fa33c1698f0f179fccb0d160c2d2cce08f1a7b2ecfaefdc19ae7f21802d38705b7a08414444ac52041b7365a5633e5e66159 1.6.0.tar.gz
-f5f8bb154e290c4f1d1af899b24ee2011d8fe88fbf31a3fd865e9dfd9927cc8e23cb022be996ec3c43ed79309814ad63efe7f3cd5b3ed670d23a572b3e561f54 mod-auth-radius.conf"
+sha512sums="
+e128855ab198b35030b798c16538fa33c1698f0f179fccb0d160c2d2cce08f1a7b2ecfaefdc19ae7f21802d38705b7a08414444ac52041b7365a5633e5e66159 apache-mod-auth-radius-1.6.0.tar.gz
+f5f8bb154e290c4f1d1af899b24ee2011d8fe88fbf31a3fd865e9dfd9927cc8e23cb022be996ec3c43ed79309814ad63efe7f3cd5b3ed670d23a572b3e561f54 mod-auth-radius.conf
+"
diff --git a/main/apache-mod-fcgid/APKBUILD b/main/apache-mod-fcgid/APKBUILD
index f816a1c3f2c..3433067e3d4 100644
--- a/main/apache-mod-fcgid/APKBUILD
+++ b/main/apache-mod-fcgid/APKBUILD
@@ -3,7 +3,7 @@
pkgname=apache-mod-fcgid
_pkgreal=mod_fcgid
pkgver=2.3.9
-pkgrel=4
+pkgrel=5
pkgdesc="FastCGI module for Apache 2.x"
url="https://httpd.apache.org/mod_fcgid/"
arch="all"
@@ -15,6 +15,7 @@ source="https://www.apache.org/dist/httpd/mod_fcgid/$_pkgreal-$pkgver.tar.gz
$_pkgreal.conf
"
builddir="$srcdir"/$_pkgreal-$pkgver
+options="!check"
build() {
./configure.apxs
diff --git a/main/apache2-mod-wsgi/APKBUILD b/main/apache2-mod-wsgi/APKBUILD
index bba5063a273..addb41c5371 100644
--- a/main/apache2-mod-wsgi/APKBUILD
+++ b/main/apache2-mod-wsgi/APKBUILD
@@ -2,8 +2,8 @@
# Maintainer: Matt Smith <mcs@darkregion.net>
pkgname=apache2-mod-wsgi
_realname=mod_wsgi
-pkgver=4.9.0
-pkgrel=0
+pkgver=5.0.0
+pkgrel=1
pkgdesc="Python WSGI Module for Apache2"
url="https://github.com/GrahamDumpleton/mod_wsgi"
arch="all"
@@ -33,6 +33,6 @@ package() {
}
sha512sums="
-9dc34d431171321094a9713444895d9754eff4e69ad1e86c8d3cd77bc1ca0a4c10b697e7f8cf14902d6bfaf205c8842e62fa944bb38f66f1c54fd36af95a09d6 apache2-mod-wsgi-4.9.0.tar.gz
+3ecc3ad2fd05164929915541be61201db8d35d1e27183ce26c67583b836bb404bd10c88a2ada94714a14140a7f885eb67256cf02bf47aa0dbd81aecd0894a984 apache2-mod-wsgi-5.0.0.tar.gz
5b36a458bd3539e58ea61ec405c4f5c5e0001a644263b0e1f8421a5c7fc7884b6df1355674a9d9b610780b5e9db6ce66d0ae1bbc0e512ecb027c3757209152c8 apache2-mod-wsgi.apache2.conf
"
diff --git a/main/apache2-mod-wsgi/apache2-mod-wsgi.post-install b/main/apache2-mod-wsgi/apache2-mod-wsgi.post-install
index 327b0156b9d..3f849f7e049 100644
--- a/main/apache2-mod-wsgi/apache2-mod-wsgi.post-install
+++ b/main/apache2-mod-wsgi/apache2-mod-wsgi.post-install
@@ -1,10 +1,12 @@
#!/bin/sh
-echo "*" >&2
-echo "* To finish installing apache2-mod-wsgi:" >&2
-echo "* 1) See if you need to modify the apache2 config:" >&2
-echo "* /etc/apache2/conf.d/wsgi-module.conf" >&2
-echo "* 2) Restart apache2 when done." >&2
-echo "*" >&2
+cat <<EOF >&2
+*
+* To finish installing apache2-mod-wsgi:
+* 1) See if you need to modify the apache2 config:
+* /etc/apache2/conf.d/wsgi-module.conf
+* 2) Restart apache2 when done.
+*
+EOF
exit 0
diff --git a/main/apache2/APKBUILD b/main/apache2/APKBUILD
index 1202ca36a6b..5bec2c9ed4a 100644
--- a/main/apache2/APKBUILD
+++ b/main/apache2/APKBUILD
@@ -2,7 +2,7 @@
# Contributor: Valery Kartel <valery.kartel@gmail.com>
pkgname=apache2
_pkgreal=httpd
-pkgver=2.4.54
+pkgver=2.4.59
pkgrel=0
pkgdesc="A high performance Unix-based HTTP server"
url="https://httpd.apache.org/"
@@ -11,12 +11,25 @@ license="Apache-2.0"
install="$pkgname.pre-install $pkgname.pre-upgrade"
pkgusers="apache"
pkggroups="apache"
-makedepends="apr-dev apr-util-dev autoconf automake brotli-dev libxml2-dev
- lua-dev nghttp2-dev openssl1.1-compat-dev pcre-dev sed zlib-dev"
+makedepends="
+ apr-dev
+ apr-util-dev
+ autoconf
+ automake
+ brotli-dev
+ libxml2-dev
+ lua-dev
+ nghttp2-dev
+ openssl-dev
+ pcre2-dev
+ sed
+ zlib-dev
+ "
subpackages="$pkgname-ctl
$pkgname-error:_error:noarch
$pkgname-dev
$pkgname-doc
+ $pkgname-openrc
$pkgname-brotli
$pkgname-http2
$pkgname-icons::noarch
@@ -46,12 +59,26 @@ source="https://dlcdn.apache.org/$_pkgreal/$_pkgreal-$pkgver.tar.bz2
conf/0012-httpd.conf-MIMEMagicFile.patch
conf/0013-httpd-.conf-IfModule.patch
conf/0014-httpd-.conf-LoadModule.patch
+ fix-unknown-xmlChar-error.patch
"
-options="suid"
-[ "$CARCH" = "riscv64" ] && options="$options textrels"
+options="suid !check"
builddir="$srcdir"/$_pkgreal-$pkgver
# secfixes:
+# 2.4.59-r0:
+# - CVE-2023-38709
+# - CVE-2024-24795
+# - CVE-2024-27316
+# 2.4.58-r0:
+# - CVE-2023-45802
+# - CVE-2023-43622
+# - CVE-2023-31122
+# 2.4.56-r0:
+# - CVE-2023-25690
+# - CVE-2023-27522
+# 2.4.55-r0:
+# - CVE-2022-36760
+# - CVE-2022-37436
# 2.4.54-r0:
# - CVE-2022-26377
# - CVE-2022-28330
@@ -137,11 +164,7 @@ builddir="$srcdir"/$_pkgreal-$pkgver
# - CVE-2017-7679
prepare() {
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$(basename $i);;
- esac
- done
+ default_prepare
cat "$srcdir/alpine.layout" >> config.layout
}
@@ -199,7 +222,7 @@ package() {
mv "$pkgdir"/etc/apache2/extra "$pkgdir"/etc/apache2/conf.d
for file in "$pkgdir"/etc/apache2/conf.d/httpd-*; do
mv "$file" \
- "$(dirname $file)/${file#$pkgdir/etc/apache2/conf.d/httpd-}"
+ "$(dirname $file)/${file#"$pkgdir"/etc/apache2/conf.d/httpd-}"
done
sed -Ei \
's:^(\t?#?LoadModule .+ )lib/apache2/:\1modules/:;ta;b;:a;s/^#?LoadModule (dav.*|lbmethod_.+|.*ldap|lua|proxy.*|ssl|xml2enc)_module //;tb;b;:b;d' \
@@ -245,7 +268,7 @@ _mv_conf() {
_load_mod() {
_make_conf_dir
echo "LoadModule $1_module modules/mod_$1.so" >> \
- "$_conf_dir"/${subpkgname#$pkgname-}.conf
+ "$_conf_dir"/${subpkgname#"$pkgname"-}.conf
}
_load_mods() {
@@ -268,7 +291,6 @@ dev() {
mv "$pkgdir"/usr/bin/apxs \
"$subpkgdir"/usr/bin/apxs
-
install -d "$subpkgdir"/usr/share/apache2
mv "$pkgdir"/usr/share/apache2/build \
"$subpkgdir"/usr/share/apache2/
@@ -333,7 +355,7 @@ ctl() {
ssl() {
pkgdesc="SSL/TLS module for the Apache HTTP Server"
install="apache2-ssl.post-install"
- depends="apache2 openssl"
+ depends="apache2 openssl>3"
install -d "$subpkgdir"/usr/lib/apache2
mv "$pkgdir"/usr/lib/apache2/mod_ssl.so \
@@ -395,8 +417,9 @@ _lua() {
"$subpkgdir"/usr/lib/apache2/
_load_mods
}
+
sha512sums="
-228493b2ff32c4142c6e484d304f2ea12e467498605fe12adce2b61388d8efe7b2e96ae2fd0abd1dc88a5f12d625e007d8da0ae5628cff2a5272806754f41e18 httpd-2.4.54.tar.bz2
+209da0bbac5e2564d4590302515b35495be6402273ff4024aa93e85e44554c95e053201d606383936425a41e1b5b97e6b40055dcbb385eb691a5029a6f3158c2 httpd-2.4.59.tar.bz2
8e62b101f90c67babe864bcb74f711656180b011df3fd4b541dc766b980b72aa409e86debf3559a55be359471c1cad81b8779ef3a55add8d368229fc7e9544fc apache2.confd
18e8859c7d99c4483792a5fd20127873aad8fa396cafbdb6f2c4253451ffe7a1093a3859ce719375e0769739c93704c88897bd087c63e1ef585e26dcc1f5dd9b apache2.logrotate
81a2d2a297d8049ba1b021b879ec863767149e056d9bdb2ac8acf63572b254935ec96c2e1580eba86639ea56433eec5c41341e4f1501f9072745dccdb3602701 apache2.initd
@@ -414,5 +437,6 @@ a3936713f8ffcbf2bb633035873249b94fa8ace9fdb758405264f075f755fbcfec4d08794f79e469
eb09b3bcbab70f6a48d5efe8fc4bd62cc2b3f46def97c09d8454b846a065c02d18bd846313c421897c8d13be728e4b2ca790e2a5c5c6add3821d9e572bacfab2 0011-httpd.conf-IncludeOptional.patch
695742f569720d7bad9306acc40456de3a12ff2ff3a108499afc3fed2e8b13883027c6e14a3fac3efe387a70386b958605b5bbfd0147ec06bb87fad30f3b66fa 0012-httpd.conf-MIMEMagicFile.patch
efbba3c3475bebe5c63ce8d6eaf153cf2c46188e282a65830571c8b7dbc1e657ab9ce160dc82e331097ac483fe632f5201fde6f3f5de32fe5c52dcc7dee66216 0013-httpd-.conf-IfModule.patch
-56e7bb9743d153416b15c32bb5435e4cf85d84204a02f28767c8dcba08eec1ac302521d57ce74154d3e9f7a3644ab3f8a9318150e21f8559eb67e387087a0821 0014-httpd-.conf-LoadModule.patch
+223b0c3f141977fa4e249bcf09b3b2449d6cc9ebbad50621a6b2bd5d3b661fcf0369ece4e2055792bbcddac68f323a19f0f9dc893237676a244e03dc4260958e 0014-httpd-.conf-LoadModule.patch
+ca3165e5802a25c271cbc15569b3dcda71b141cce6d91b803d23ba08d99e957d6bd0782d40dfbc913ef714aefff1263ad420663bf2dc693b15e73c6ee8e70575 fix-unknown-xmlChar-error.patch
"
diff --git a/main/apache2/conf/0014-httpd-.conf-LoadModule.patch b/main/apache2/conf/0014-httpd-.conf-LoadModule.patch
index 6d34deb5015..8ee0a53b010 100644
--- a/main/apache2/conf/0014-httpd-.conf-LoadModule.patch
+++ b/main/apache2/conf/0014-httpd-.conf-LoadModule.patch
@@ -48,7 +48,7 @@ index 683a091..0648e8e 100644
-# LoadFile /usr/lib/libxml2.so
-# LoadModule proxy_html_module modules/mod_proxy_html.so
-# LoadModule xml2enc_module modules/mod_xml2enc.so
-+LoadFile /usr/lib/libxml2.so
++LoadFile /usr/lib/libxml2.so.2
+LoadModule proxy_html_module modules/mod_proxy_html.so
+LoadModule xml2enc_module modules/mod_xml2enc.so
#
diff --git a/main/apache2/fix-unknown-xmlChar-error.patch b/main/apache2/fix-unknown-xmlChar-error.patch
new file mode 100644
index 00000000000..cc9cf8a7109
--- /dev/null
+++ b/main/apache2/fix-unknown-xmlChar-error.patch
@@ -0,0 +1,13 @@
+diff --git a/modules/filters/mod_xml2enc.c b/modules/filters/mod_xml2enc.c
+index 76046b4..f5b3cc7 100644
+--- a/modules/filters/mod_xml2enc.c
++++ b/modules/filters/mod_xml2enc.c
+@@ -36,6 +36,7 @@
+
+ /* libxml2 */
+ #include <libxml/encoding.h>
++#include <libxml/xmlstring.h>
+
+ #if defined(__clang__)
+ #pragma clang diagnostic pop
+
diff --git a/main/apcupsd/APKBUILD b/main/apcupsd/APKBUILD
index fda125aa29e..8f906de7abf 100644
--- a/main/apcupsd/APKBUILD
+++ b/main/apcupsd/APKBUILD
@@ -1,32 +1,34 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=apcupsd
pkgver=3.14.14
-pkgrel=2
+pkgrel=6
pkgdesc="A Daemon to control APC UPSes"
subpackages="$pkgname-doc $pkgname-webif $pkgname-openrc"
url="http://www.apcupsd.org"
arch="all"
-license="GPL-2.0-only"
+license="GPL-2.0-or-later"
depends="util-linux"
-makedepends="net-snmp-dev linux-headers gd-dev libusb-compat-dev"
+makedepends="
+ gd-dev
+ libusb-compat-dev
+ linux-headers
+ mandoc
+ net-snmp-dev
+ "
options="!check" # no test suite included
source="https://sourceforge.net/projects/apcupsd/files/apcupsd%20-%20Stable/$pkgver/apcupsd-$pkgver.tar.gz
apcupsd.initd
apcupsd.powerfail.initd
apcupsd-alpine.patch
+ manify-with-mandoc.patch
"
-_builddir="$srcdir/$pkgname-$pkgver"
-
prepare() {
- cd "$_builddir"
update_config_sub
default_prepare
}
build() {
- cd "$_builddir"
-
export CHARSET="ISO8859-1"
export LANG="C"
@@ -44,7 +46,6 @@ build() {
}
package() {
- cd "$_builddir"
make DESTDIR=$pkgdir install
install -D -m755 "$srcdir"/apcupsd.initd "$pkgdir"/etc/init.d/apcupsd
install -D -m755 "$srcdir"/apcupsd.powerfail.initd \
@@ -52,12 +53,14 @@ package() {
}
webif() {
- cd "$_builddir"
mkdir -p "$subpkgdir"/usr/share/webapps/apcupsd
mv "$pkgdir"/etc/apcupsd/*.cgi "$subpkgdir"/usr/share/webapps/apcupsd
}
-sha512sums="c953bbf3e08f809748a7978a3952604176390d1cd276f187fe096d9bc3c8993b52127e8350c0363387da41318e24b4d1e00ea58df71f3bb8f50c9a5a64cd2d7f apcupsd-3.14.14.tar.gz
-cd9cb3c812dfd72660007807965cac866dfb2ce4bd8200668f08e94fdcce874cce2ec87a0d832b8f37f254908d093aff0cc2db26e9403d5e613dc192072da617 apcupsd.initd
+sha512sums="
+c953bbf3e08f809748a7978a3952604176390d1cd276f187fe096d9bc3c8993b52127e8350c0363387da41318e24b4d1e00ea58df71f3bb8f50c9a5a64cd2d7f apcupsd-3.14.14.tar.gz
+82bff9001e86e2eb082e0bdebce69563458bb9e864f6f70622aa7d173d5134522f295b7f2496a9ef74aa6075e52026f714810c49a866026ee834acb8adbb3c70 apcupsd.initd
8d1c266bd86cd1cdf4fccdd171a877957bf5e26e1bb8c20e4c9c6b362a63d8cc1b887a1661939e4e56228a8d23dfc81fe782806b5d1527423c2ef7872cbeb881 apcupsd.powerfail.initd
-4f0712519213c4ef14f41eeef681c5498fac7bf42f205de8a855938f8e834d9488d86820d7c883e89d0d305ee287e17e2d321dbbc98ae12f8487bf58aa0d4a6b apcupsd-alpine.patch"
+4f0712519213c4ef14f41eeef681c5498fac7bf42f205de8a855938f8e834d9488d86820d7c883e89d0d305ee287e17e2d321dbbc98ae12f8487bf58aa0d4a6b apcupsd-alpine.patch
+151d6c2f2a150a9ffbf411042e8f5df883c79b2ac15292e009edc58338d790917b1afd01dc588c08741be70cc6de6bb1b13b4ddd233e5907efaebb7c5c33e311 manify-with-mandoc.patch
+"
diff --git a/main/apcupsd/apcupsd.initd b/main/apcupsd/apcupsd.initd
index 67b1138de94..ab9595fa708 100644
--- a/main/apcupsd/apcupsd.initd
+++ b/main/apcupsd/apcupsd.initd
@@ -15,6 +15,7 @@ depend() {
start() {
rm -f /etc/apcupsd/powerfail
+ rm -f /etc/nologin
export SERVICE="${SVCNAME}"
diff --git a/main/apcupsd/manify-with-mandoc.patch b/main/apcupsd/manify-with-mandoc.patch
new file mode 100644
index 00000000000..cb1aa8bb281
--- /dev/null
+++ b/main/apcupsd/manify-with-mandoc.patch
@@ -0,0 +1,15 @@
+cmd:col is no longer provided by util-linux-misc
+since 2.40, it was disabled for musl libc in
+https://github.com/util-linux/util-linux/commit/8886d84e25a457702b45194d69a47313f76dc6bc
+
+--- a/autoconf/targets.mak
++++ b/autoconf/targets.mak
+@@ -298,7 +298,7 @@
+ # Format a manpage into plain text
+ define MANIFY
+ @$(ECHO) " MAN " $(1) -\> $(2)
+- $(V)man ./$(1) | col -b > $(2)
++ $(V)mandoc -Tascii ./$(1) > $(2)
+ endef
+
+ # Rule to build a Windows resource object from the source RC file
diff --git a/main/apg/APKBUILD b/main/apg/APKBUILD
index fce949153f2..6011e20a9e6 100644
--- a/main/apg/APKBUILD
+++ b/main/apg/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=apg
pkgver=2.2.3
-pkgrel=6
+pkgrel=7
pkgdesc="Automated Password Generator."
url="https://linux.die.net/man/1/apg" # Original homepage is dead
arch="all"
@@ -9,16 +9,14 @@ license="BSD-3-Clause"
# no check provided by upstream
options="!check"
subpackages="$pkgname-doc"
-source="https://launchpad.net/ubuntu/+archive/primary/+files/${pkgname}_${pkgver}.orig.tar.gz"
+source="https://launchpad.net/ubuntu/+archive/primary/+files/${pkgname}_$pkgver.orig.tar.gz"
build() {
- cd "$builddir"
sed -i 's:^#\(CS_LIBS = -lnsl\)$:\1:' Makefile
make
}
package() {
- cd "$builddir"
for i in apg apgbfm; do
install -D -m755 $i "$pkgdir"/usr/bin/$i
install -D -m644 doc/man/$i.1 "$pkgdir"/usr/share/man/man1/$i.1
diff --git a/main/api-sanity-checker/APKBUILD b/main/api-sanity-checker/APKBUILD
index dbdee62a9ca..33aea3a9ee9 100644
--- a/main/api-sanity-checker/APKBUILD
+++ b/main/api-sanity-checker/APKBUILD
@@ -2,18 +2,19 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=api-sanity-checker
pkgver=1.98.7
-pkgrel=1
+pkgrel=4
pkgdesc="A tool for creating automated test suites from any set of C sources"
url="https://lvc.github.io/api-sanity-checker/"
arch="noarch"
-license="LGPL-2.0-or-later"
+license="LGPL-2.1-or-later"
depends="perl build-base"
makedepends="perl-dev abi-compliance-checker"
source="$pkgname-$pkgver.tar.gz::https://github.com/lvc/api-sanity-checker/archive/$pkgver.tar.gz"
+options="!check"
package() {
mkdir -p "$pkgdir"/usr
- perl Makefile.pl -install --prefix=/usr --destdir="$pkgdir"
+ perl Makefile.pl -install --destdir="$pkgdir"
}
sha512sums="fe88fa7c31b4914cc234efb5568b29a1dc0f21abf6cea7f3354b03e232c8ce205a7b86abc7613334cec60510154a75357363d7a6fc504a153f16a4ed2d59e019 api-sanity-checker-1.98.7.tar.gz"
diff --git a/main/apk-tools/APKBUILD b/main/apk-tools/APKBUILD
index 59f5710424f..8d91e7a456a 100644
--- a/main/apk-tools/APKBUILD
+++ b/main/apk-tools/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=apk-tools
-pkgver=2.12.9
-pkgrel=5
+pkgver=2.14.4
+pkgrel=0
pkgdesc="Alpine Package Keeper - package manager for alpine"
arch="all"
url="https://gitlab.alpinelinux.org/alpine/apk-tools"
@@ -9,9 +9,14 @@ license="GPL-2.0-only"
subpackages="$pkgname-dbg $pkgname-dev $pkgname-static $pkgname-doc $pkgname-zsh-completion"
# Musl 1.2 introduced new ABI for time64 => upgrading apk-tools
# while staying on musl <1.2 causes missing symbols
-depends="musl>=1.2"
-makedepends_build="openssl lua5.3 lua5.3-lzlib scdoc"
-makedepends_host="zlib-dev openssl1.1-compat-dev zlib-static openssl1.1-compat-libs-static linux-headers"
+# starting with musl 1.2.3_git (pre 1.2.3), we added DT_RELR
+# it is possible for old systems to upgrade, and apk-tools would upgrade first,
+# which would upgrade to a binary that cannot run until musl is upgraded.
+# forcing this constraint makes apk upgrade musl as part of the 'critical' transaction,
+# and update musl first.
+depends="musl>=1.2.3_git20230424"
+makedepends_build="openssl>3 lua5.3 lua5.3-lzlib scdoc"
+makedepends_host="zlib-dev openssl-dev zlib-static openssl-libs-static linux-headers"
makedepends="$makedepends_build $makedepends_host"
_lua="no"
if [ "$CBUILD" = "$CHOST" ]; then
@@ -22,7 +27,7 @@ if [ "$CBUILD" = "$CHOST" ]; then
# ca-certificates-bundle needed for https certificate validation
depends="$depends ca-certificates-bundle"
fi
-source="https://gitlab.alpinelinux.org/alpine/$pkgname/-/archive/v$pkgver/$pkgname-v$pkgver.tar.gz
+source="https://gitlab.alpinelinux.org/alpine/apk-tools/-/archive/v$pkgver/apk-tools-v$pkgver.tar.gz
_apk
"
builddir="$srcdir/$pkgname-v$pkgver"
@@ -50,8 +55,8 @@ check() {
package() {
make DESTDIR="$pkgdir" LUA="$_lua" install
- install -d "$pkgdir"/var/lib/apk \
- "$pkgdir"/var/cache/misc \
+ install -d "$pkgdir"/lib/apk/db \
+ "$pkgdir"/lib/apk/exec \
"$pkgdir"/etc/apk/keys \
"$pkgdir"/etc/apk/protected_paths.d
@@ -86,6 +91,6 @@ luaapk() {
}
sha512sums="
-2e299e50c5ca8733f04fad971247146ff4bebb697c3589e4692c9a940ede89432dd9fea48004dc947cb493db1206a336ac0ad1e876b02683183d69b4a127d1c6 apk-tools-v2.12.9.tar.gz
+33aa67a1752e4188cd52a869df4bcf4e397bca082ce407e6ada3735621d56e17219c5c47e73ae90102bb0db2b6a479ff9da0466c5fd5e7dedfb903a74056592c apk-tools-v2.14.4.tar.gz
7870676720f5007eee9482786e02246f8e3474afb90e76c9c83aebe914747a8e007b5d2eed6441933f4922024b3f0664db270f21981ad6c2db877a110b0cd79e _apk
"
diff --git a/main/aports-build/APKBUILD b/main/aports-build/APKBUILD
index 7e9d595e70b..7003ad374e1 100644
--- a/main/aports-build/APKBUILD
+++ b/main/aports-build/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=aports-build
-pkgver=1.5.3
-pkgrel=0
+pkgver=1.5.5
+pkgrel=4
pkgdesc="MQTT based build-on-git-push scripts for Alpine Linux"
url="https://alpinelinux.org"
arch="noarch"
@@ -9,25 +9,17 @@ license="GPL-2.0"
options="!check"
depends="abuild>2.20.0 build-base mosquitto-clients openssh-client mqtt-exec
rsync lua-aports>1.0.0 lua5.2-cjson lua5.2-mqtt-publish pigz git"
-depends_dev=""
makedepends="$depends_dev mosquitto-dev"
install="$pkgname.pre-install"
-subpackages=""
-
+subpackages="$pkgname-openrc"
source="aports-build
- aports-build.initd
mqtt-exec.aports-build.confd
report-build-errors.lua
"
builddir="$srcdir"
-build() {
- cd "$builddir"
-}
-
package() {
- cd "$builddir"
install -Dm755 "$srcdir"/aports-build \
"$pkgdir"/usr/bin/aports-build
install -d "$pkgdir"/etc/init.d
@@ -46,7 +38,8 @@ package() {
EOF
}
-sha512sums="81c039c6999fddde2489fccdc48b29760c80ea1ff5265cc2d7f73d6575e0173a0f51b89a4d49e5100e2d841b6260adc48e4ab00e8608d52b3b69b17a590467ad aports-build
-821035bda47152c341ec94bf960fa67e3377051826712ceb74f39103e6e422777b6e082231bfb87865653d2b93b7d3154cfc24abf65a52e3e66da69412dd7e41 aports-build.initd
-62ed5cb6d1fef03fa707512c8c99c572a91e64706ebcc2e7097108811818615618bab908292d0ba0ad2afe93a27333d9c91deb347d6c99703eb8983d1ee5f480 mqtt-exec.aports-build.confd
-cf0d8e65e517857ee781e451a1d3e6404cd72aeb5c7dba25017229ff79c4c43425712d2fcbbaad89af45a358e86f33467ac1df47e8fba0f30f81d84794e1206c report-build-errors.lua"
+sha512sums="
+2a0f8649130b8f91a5949a2b12d5e97438ef87d2fb18877c5840df6abc1df3f97055322b56da69fbcce532e1faf498486fcb0d00641b759057ab35c628db8477 aports-build
+36bd362d66c4df04fe9da1d83f490e4f156f8c5ab2f2795cafb37a204c8ce772a9011172ac4f503faeaa861fdb00426d46346be8f233138cc2942681642916b8 mqtt-exec.aports-build.confd
+939ba54ab4159bc8fcd0cb08f16f67dac05d29c77005da6fca0463048ab991765665b35f2feb978bfd8409bd13fdbdf3d47a7652df842e76504d076ac040c337 report-build-errors.lua
+"
diff --git a/main/aports-build/aports-build b/main/aports-build/aports-build
index 423eb9b8d8b..dcf7f626a82 100644
--- a/main/aports-build/aports-build
+++ b/main/aports-build/aports-build
@@ -58,7 +58,7 @@ log() {
create_release() {
local release="$1"
local release_deps="abuild apk-tools alpine-conf busybox fakeroot
- xorriso rsync openssh-client squashfs-tools acct mkinitfs
+ xorriso rsync squashfs-tools acct mkinitfs
mtools"
case "$arch" in
aarch64|arm*) release_deps="$release_deps mtools grub-efi";;
@@ -82,8 +82,12 @@ create_release() {
if $use_network; then
log "uploading $release release"
- ssh $upload_host mkdir -p "${upload_iso#${upload_host}:}"
- rsync -ruva $rsync_opts "$releasedir"/* "$upload_iso" || return 1
+ rsync --archive \
+ --update \
+ --verbose \
+ --mkpath \
+ $rsync_opts \
+ "$releasedir"/* "$upload_iso" || return 1
fi
)
local rc=$?
@@ -92,6 +96,16 @@ create_release() {
}
build() {
+ # before starting a build cycle, we might have some stale deps that weren't
+ # removed from the previous run. this happens if buildrepo/abuild crash for
+ # some reason, builders crash, network goes offline and a rare hang in buildrepo
+ # happens (and then it gets killed), ..
+ # clean up the environment before starting. this should always make it consistent, because:
+ # - abuild cleans up after each build
+ # - if it doesn't, that means it crashed, which means buildrepo failed too (unless keep-going is set, but it's not by default)
+ # - so, buildrepo is started again, and prunes the deps, ..
+ # hence, no build should have stale makedepends installed with just this deletion at the start.
+ abuild-apk del .makedepends\*
( $buildrepo "$@" || echo "FAIL" ) | while read line; do
case "$line" in
FAIL) return 1;;
@@ -190,7 +204,13 @@ while true; do
log "uploading packages to $repo"
$use_network && for i in $upload_pkg; do
- rsync -rui --delete-delay --delay-updates $rsync_opts \
+ rsync --recursive \
+ --update \
+ --itemize-changes \
+ --delete-delay \
+ --delay-updates \
+ --mkpath \
+ $rsync_opts \
$repo/$arch $i/$repo/ > /tmp/upload-$repo
if [ $? -ne 0 ]; then
rc=1
diff --git a/main/aports-build/aports-build.initd b/main/aports-build/aports-build.initd
deleted file mode 100644
index 723bf175bcd..00000000000
--- a/main/aports-build/aports-build.initd
+++ /dev/null
@@ -1,33 +0,0 @@
-#!/sbin/openrc-run
-
-# this script is deprecated but kept for a migration period
-
-: ${mqtt_broker:="msg.alpinelinux.org"}
-: ${git_branch:=master}
-: ${mqtt_topic:="git/aports/$git_branch"}
-
-command=/usr/bin/mqtt-exec
-pidfile=/var/run/aports-build/mqtt-exec.pid
-command_args="-h ${mqtt_broker:-msg.alpinelinux.org} -t $mqtt_topic -- /usr/bin/aports-build"
-start_stop_daemon_args="--stdout /dev/null --stderr /dev/null --background --make-pid --user buildozer"
-
-depend() {
- need net
-}
-
-start() {
- eerror "Please migrate to mqtt-exec.aports-build"
- return 1
-}
-
-stop_post() {
- # remove build status
- if [ -f /etc/aports-build.conf ]; then
- . /etc/aports-build.conf
- fi
- : ${hostname:=$(hostname)}
- : ${mqtthost:="msg.alpinelinux.org"}
- : ${status_clear:="mosquitto_pub -h $mqtthost -t build/$hostname -r -n"}
- $status_clear
- return 0
-}
diff --git a/main/aports-build/mqtt-exec.aports-build.confd b/main/aports-build/mqtt-exec.aports-build.confd
index 75e3f12a7e0..3e670be10c6 100644
--- a/main/aports-build/mqtt-exec.aports-build.confd
+++ b/main/aports-build/mqtt-exec.aports-build.confd
@@ -15,4 +15,4 @@ mqtt_broker="msg.alpinelinux.org"
mqtt_topics="git/aports/$git_branch git/aports/$git_branch/release"
will_topic="build/$(hostname)"
will_retain=yes
-
+supervisor=supervise-daemon
diff --git a/main/aports-build/report-build-errors.lua b/main/aports-build/report-build-errors.lua
index 275b213f863..3621765783a 100644
--- a/main/aports-build/report-build-errors.lua
+++ b/main/aports-build/report-build-errors.lua
@@ -6,6 +6,26 @@ local f = io.open("/proc/sys/kernel/hostname")
hostname = f:read()
f:close()
+local function read_mosquitto_conf()
+ local cfg = {}
+ local f = io.open((os.getenv("XDG_CONFIG_HOME") or "").."/mosquitto_pub") or io.open((os.getenv("HOME") or "").."/.config/mosquitto_pub")
+ if f == nil then
+ return cfg
+ end
+ for line in f:lines() do
+ key,value = line:match("^%-%-([^ ]+)%s+(.*)")
+ if key and value then
+ cfg[key] = value
+ end
+ end
+ f:close()
+ return cfg
+end
+local mcfg = read_mosquitto_conf()
+publish.hostname = mcfg.hostname or "localhost"
+publish.username = mcfg.username
+publish.password = mcfg.pw
+
local m = {}
function shell_escape(args)
diff --git a/main/apparmor/0001-Fix-linking-against-gettext-on-musl-libc.patch b/main/apparmor/0001-Fix-linking-against-gettext-on-musl-libc.patch
new file mode 100644
index 00000000000..4180cf65817
--- /dev/null
+++ b/main/apparmor/0001-Fix-linking-against-gettext-on-musl-libc.patch
@@ -0,0 +1,40 @@
+From 183849ec988c7326bcb9bf729d087e262d121b67 Mon Sep 17 00:00:00 2001
+From: allgdante <allan.garret@gmail.com>
+Date: Wed, 4 Jul 2018 16:57:19 +0200
+Subject: [PATCH 1/7] Fix linking against gettext on musl libc
+
+Both parser and binutils must be linked against gettext
+---
+ binutils/Makefile | 2 +-
+ parser/Makefile | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/binutils/Makefile b/binutils/Makefile
+index 7fb71813..52e55f70 100644
+--- a/binutils/Makefile
++++ b/binutils/Makefile
+@@ -52,7 +52,7 @@ SRCS = aa_enabled.c
+ HDRS =
+ TOOLS = aa-enabled aa-exec
+
+-AALIB = -Wl,-Bstatic -lapparmor -Wl,-Bdynamic -lpthread
++AALIB = -Wl,-Bstatic -lapparmor -Wl,-Bdynamic -lpthread -lintl
+
+ ifdef USE_SYSTEM
+ # Using the system libapparmor so Makefile dependencies can't be used
+diff --git a/parser/Makefile b/parser/Makefile
+index 5d799f6a..000540a3 100644
+--- a/parser/Makefile
++++ b/parser/Makefile
+@@ -90,7 +90,7 @@ AAREDIR= libapparmor_re
+ AAREOBJECT = ${AAREDIR}/libapparmor_re.a
+ AAREOBJECTS = $(AAREOBJECT)
+ AARE_LDFLAGS = -static-libgcc -static-libstdc++ -L. $(LDFLAGS)
+-AALIB = -Wl,-Bstatic -lapparmor -Wl,-Bdynamic -lpthread
++AALIB = -Wl,-Bstatic -lapparmor -Wl,-Bdynamic -lpthread -lintl
+
+ ifdef USE_SYSTEM
+ # Using the system libapparmor so Makefile dependencies can't be used
+--
+2.20.1
+
diff --git a/main/apparmor/0006-utils-adjust-rc-functions-for-aa-remove-unknown.patch b/main/apparmor/0006-utils-adjust-rc-functions-for-aa-remove-unknown.patch
new file mode 100644
index 00000000000..14dddeae1e1
--- /dev/null
+++ b/main/apparmor/0006-utils-adjust-rc-functions-for-aa-remove-unknown.patch
@@ -0,0 +1,28 @@
+From 72a3291fc94210401e5dac3b2fa328b2bb40998d Mon Sep 17 00:00:00 2001
+From: allgdante <allan.garret@gmail.com>
+Date: Thu, 5 Jul 2018 17:32:46 +0200
+Subject: [PATCH 6/7] utils: adjust rc functions for aa-remove-unknown
+
+Update the path to the rc.apparmor.functions file to the one we can find
+inside Alpine.
+No intended functional changes
+---
+ utils/aa-remove-unknown | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/utils/aa-remove-unknown b/utils/aa-remove-unknown
+index d3bd9144..0b9ead7d 100644
+--- a/utils/aa-remove-unknown
++++ b/utils/aa-remove-unknown
+@@ -15,7 +15,7 @@
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
+ # ----------------------------------------------------------------------
+
+-APPARMOR_FUNCTIONS=/lib/apparmor/rc.apparmor.functions
++APPARMOR_FUNCTIONS=/usr/libexec/apparmor/rc.apparmor.functions
+ APPARMORFS=/sys/kernel/security/apparmor
+ PROFILES="${APPARMORFS}/profiles"
+ REMOVE="${APPARMORFS}/.remove"
+--
+2.20.1
+
diff --git a/main/apparmor/APKBUILD b/main/apparmor/APKBUILD
new file mode 100644
index 00000000000..981d56e5f4a
--- /dev/null
+++ b/main/apparmor/APKBUILD
@@ -0,0 +1,206 @@
+# Contributor: Allan Garret <allan.garret@gmail.com>
+# Maintainer: Allan Garret <allan.garret@gmail.com>
+pkgname=apparmor
+pkgver=3.1.7
+pkgrel=1
+pkgdesc="Linux application security framework - mandatory access control for programs"
+url="https://gitlab.com/apparmor/apparmor/wikis/home"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="
+ autoconf
+ automake
+ bash
+ bison
+ flex
+ gettext-dev
+ libtool
+ linux-headers
+ linux-pam-dev
+ perl-dev
+ py3-setuptools
+ python3-dev
+ sed
+ swig
+ "
+checkdepends="
+ dejagnu
+ py3-notify2
+ py3-psutil
+ py3-pyflakes
+ "
+subpackages="
+ libapparmor:_libapparmor
+ libapparmor-dev
+ py3-$pkgname-pyc
+ py3-$pkgname:_py3_apparmor
+ perl-$pkgname:_perl_apparmor
+ $pkgname-utils:_apparmor_utils
+ $pkgname-utils-lang:_apparmor_utils_lang
+ $pkgname-profiles:_apparmor_profiles:noarch
+ $pkgname-pam:_apparmor_pam
+ $pkgname-vim:_apparmor_vim:noarch
+ $pkgname-openrc
+ $pkgname-doc
+ $pkgname-lang
+ "
+source="
+ https://launchpad.net/apparmor/${pkgver%.*}/$pkgver/+download/apparmor-$pkgver.tar.gz
+
+ apparmor.initd
+
+ 0001-Fix-linking-against-gettext-on-musl-libc.patch
+ 0006-utils-adjust-rc-functions-for-aa-remove-unknown.patch
+ fix-dnsmasq-profile.patch
+ "
+options="!check" # checkdepends in community
+
+# test_entries_since_login fails
+[ "$CARCH" = "s390x" ] && options="!check"
+
+prepare() {
+ default_prepare
+
+ common/list_af_names.sh > parser/base_af_names.h
+}
+
+build() {
+ export PYTHON_VERSION=3
+ export PYTHON_VERSIONS=python3
+ export PYTHON=/usr/bin/python3
+
+ (
+ cd "$builddir"/libraries/libapparmor
+ msg "Building: libapparmor"
+ ./configure \
+ --prefix=/usr \
+ --with-python \
+ --with-perl
+ make
+ )
+
+ msg "Building: apparmor parser"
+ make -C parser
+
+ msg "Building: apparmor-binutils"
+ make -C binutils
+
+ msg "Building: apparmor-utils"
+ make -C utils
+
+ msg "Building: apparmor-profiles"
+ make -C profiles
+
+ msg "Building: apparmor-pam"
+ make -C changehat/pam_apparmor
+
+ msg "Building: apparmor-vim"
+ make -C utils/vim
+}
+
+check() {
+ cd "$builddir"/libraries/libapparmor
+ make check
+
+ cd "$builddir"
+ make -C parser check
+ make -C binutils check
+ make -j1 -e PYFLAKES=pyflakes-3 -C utils check
+}
+
+package() {
+ make -C libraries/libapparmor install DESTDIR="$pkgdir"
+ make -C changehat/pam_apparmor install DESTDIR="$pkgdir"
+ make -C binutils install DESTDIR="$pkgdir" BINDIR="$pkgdir/usr/bin"
+ make -C parser install DESTDIR="$pkgdir" BINDIR="$pkgdir/usr/bin"
+ make -C profiles install DESTDIR="$pkgdir"
+ make -C utils install \
+ DESTDIR="$pkgdir" \
+ BINDIR="$pkgdir/usr/bin" \
+ VIM_INSTALL_PATH="$pkgdir/usr/share/vim/vimfiles/syntax"
+
+ mv "$pkgdir"/lib "$pkgdir"/usr/lib
+
+ mkdir -p "$pkgdir"/usr/libexec/apparmor "$pkgdir"/lib
+ mv "$pkgdir"/usr/lib/lib/apparmor/rc.apparmor.functions \
+ "$pkgdir"/usr/libexec/apparmor/
+ mv "$pkgdir"/usr/lib/lib/security "$pkgdir"/lib
+ rm -r "$pkgdir"/usr/lib/lib/
+
+ install -Dm755 "$srcdir"/apparmor.initd \
+ "$pkgdir"/etc/init.d/apparmor
+
+ install -Dm644 changehat/pam_apparmor/README \
+ "$pkgdir"/usr/share/doc/apparmor/README.pam_apparmor
+}
+
+_libapparmor() {
+ pkgdesc="AppArmor library"
+
+ amove usr/lib/libapparmor.so.*
+}
+
+_py3_apparmor() {
+ pkgdesc="Python3 module for apparmor"
+ depends="libapparmor=$pkgver-r$pkgrel python3"
+
+ amove usr/lib/python3*/site-packages/LibAppArmor*
+}
+
+_perl_apparmor() {
+ pkgdesc="Perl module for apparmor"
+ depends="libapparmor=$pkgver-r$pkgrel perl"
+
+ amove usr/lib/perl5
+}
+
+_apparmor_utils() {
+ pkgdesc="AppArmor userspace utilities"
+ depends="py3-apparmor libapparmor=$pkgver-r$pkgrel perl python3 bash"
+
+ amove etc/apparmor/easyprof.conf
+ amove etc/apparmor/logprof.conf
+ amove etc/apparmor/notify.conf
+ amove etc/apparmor/severity.db
+ amove usr/bin
+ amove usr/sbin
+ amove usr/lib/python3*/site-packages/apparmor*
+ amove usr/share/apparmor/easyprof
+}
+
+_apparmor_utils_lang() {
+ pkgdesc="Languages for package $subpkgname"
+ install_if="$pkgname-utils=$pkgver-r$pkgrel lang"
+
+ amove usr/share/locale/*/LC_MESSAGES/*utils.mo
+}
+
+_apparmor_profiles() {
+ pkgdesc="AppArmor sample pre-made profiles"
+ depends="apparmor"
+
+ amove etc/apparmor.d
+ amove usr/share/apparmor/extra-profiles
+}
+
+_apparmor_pam() {
+ pkgdesc="AppArmor PAM library"
+ depends="libapparmor=$pkgver-r$pkgrel linux-pam"
+
+ amove lib/security
+}
+
+_apparmor_vim() {
+ pkgdesc="AppArmor VIM support"
+ install_if="$pkgname-vim=$pkgver-r$pkgrel vim"
+
+ amove usr/share/vim
+}
+
+sha512sums="
+7984a3cfd251f82c08604eb3c584ea5a84600c5fbe3a25834ba550c7a1bebb8b1b0216092a9a497eac2ba32a3f880495d024acf641212bce0041698ac5ff8552 apparmor-3.1.7.tar.gz
+1a57cc577ba3aedfbe10ef6148c1e8f5d0bbf65c99e60eec80c52409c9dab59ae002024500c6e4fd0e01e8c7aeb0c85e3e6b41cacee08c17fdd869d31bca614e apparmor.initd
+e94f44427ed3c6f64462170939ffc92ce9ac1a58c61c7c7c3483fe16fe8e1c419daade9d56cdd342132e4d823dcac1963a86ad889f10bf71fd52b7f54c4694ed 0001-Fix-linking-against-gettext-on-musl-libc.patch
+38ebb30a0185f8eabd9103925959da365f64ef485f66ffb10180ac596fc172f9c98df39baec0b035138e9ab32056148e69a066faba9faebf9e92bf7a09c150c0 0006-utils-adjust-rc-functions-for-aa-remove-unknown.patch
+cbe6eb9dd46e3ace122d5bc386596d5106a301b82a9ac1681f31a967013d3db67a8d674d54605444f30c3a136677ff3b26fad80f78d0f02dbe18a9f10f64672a fix-dnsmasq-profile.patch
+"
diff --git a/main/apparmor/apparmor.initd b/main/apparmor/apparmor.initd
new file mode 100644
index 00000000000..15058f28953
--- /dev/null
+++ b/main/apparmor/apparmor.initd
@@ -0,0 +1,91 @@
+#!/sbin/openrc-run
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+description="Load all configured profiles for the AppArmor security module."
+description_reload="Reload all profiles"
+
+extra_started_commands="reload"
+
+aa_action() {
+ local arg=$1
+ local return
+
+ shift
+ $*
+ return=$?
+
+ if [ ${return} -eq 0 ]; then
+ aa_log_success_msg $arg
+ else
+ aa_log_failure_msg arg
+ fi
+
+ return $return
+}
+
+aa_log_action_start() {
+ ebegin $1
+}
+
+aa_log_action_end() {
+ eend $1
+}
+
+aa_log_success_msg() {
+ einfo $1
+}
+
+aa_log_warning_msg() {
+ ewarn $1
+}
+
+aa_log_failure_msg() {
+ eerror $1
+}
+
+aa_log_skipped_msg() {
+ einfo $1
+}
+
+aa_log_daemon_msg() {
+ einfo $1
+}
+
+aa_log_end_msg() {
+ eend $1
+}
+
+. /usr/libexec/apparmor/rc.apparmor.functions
+
+start() {
+ ebegin "Starting AppArmor"
+ eindent
+
+ if ! is_apparmor_loaded ; then
+ load_module
+ if [ $? -ne 0 ]; then
+ eerror "AppArmor kernel support is not present"
+ eend 1
+ return 1
+ fi
+ fi
+
+ parse_profiles load
+
+ eoutdent
+}
+
+stop() {
+ ebegin "Stopping AppArmor"
+ eindent
+ apparmor_stop
+ eoutdent
+}
+
+reload() {
+ # todo: split out clean_profiles into its own function upstream
+ # so we can do parse_profiles reload && clean_profiles
+ # and do a proper reload instead of restart
+ apparmor_restart
+}
diff --git a/main/apparmor/fix-dnsmasq-profile.patch b/main/apparmor/fix-dnsmasq-profile.patch
new file mode 100644
index 00000000000..9a92065702a
--- /dev/null
+++ b/main/apparmor/fix-dnsmasq-profile.patch
@@ -0,0 +1,12 @@
+diff --git a/profiles/apparmor.d/usr.sbin.dnsmasq b/profiles/apparmor.d/usr.sbin.dnsmasq
+index 7ae9a14..0005b14 100644
+--- a/profiles/apparmor.d/usr.sbin.dnsmasq
++++ b/profiles/apparmor.d/usr.sbin.dnsmasq
+@@ -66,6 +66,7 @@ profile dnsmasq /usr/{bin,sbin}/dnsmasq flags=(attach_disconnected) {
+ /var/lib/misc/dnsmasq.leases rw, # Required only for DHCP server usage
+
+ /{,usr/}bin/{ba,da,}sh ix, # Required to execute --dhcp-script argument
++ /bin/busybox ix, # /bin/sh is a symlink of busybox on Alpine
+
+ # access to iface mtu needed for Router Advertisement messages in IPv6
+ # Neighbor Discovery protocol (RFC 2461)
diff --git a/main/apr-util/APKBUILD b/main/apr-util/APKBUILD
index f3fe4bec27f..8f24097ca52 100644
--- a/main/apr-util/APKBUILD
+++ b/main/apr-util/APKBUILD
@@ -1,19 +1,35 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=apr-util
-pkgver=1.6.1
-pkgrel=12
+pkgver=1.6.3
+pkgrel=1
pkgdesc="The Apache Portable Runtime Utility Library"
url="https://apr.apache.org/"
arch="all"
license="Apache-2.0"
-subpackages="$pkgname-dev $pkgname-dbd_pgsql $pkgname-dbd_mysql
- $pkgname-dbd_sqlite3 $pkgname-ldap"
-depends_dev="expat-dev openldap-dev sqlite-dev libpq-dev
- openssl1.1-compat-dev mariadb-dev"
-makedepends="$depends_dev apr-dev bash chrpath openssl"
+subpackages="
+ $pkgname-dev
+ $pkgname-dbd_pgsql
+ $pkgname-dbd_mysql
+ $pkgname-dbd_sqlite3
+ $pkgname-ldap
+ "
+depends_dev="
+ expat-dev
+ gdbm-dev
+ libpq-dev
+ mariadb-dev
+ openldap-dev
+ openssl-dev>3
+ sqlite-dev
+ "
+makedepends="$depends_dev apr-dev bash chrpath openssl>3"
source="https://www.apache.org/dist/apr/apr-util-$pkgver.tar.bz2
musl-fix-testsuite.patch"
+# secfixes:
+# 1.6.3-r0:
+# - CVE-2022-25147
+
build() {
./configure \
--build=$CBUILD \
@@ -27,8 +43,8 @@ build() {
--with-crypto \
--with-openssl \
--without-sqlite2 \
- --without-berkeley-db \
- --with-dbm=ndbm
+ --with-dbm=ndbm \
+ --with-ndbm
make
}
@@ -45,9 +61,7 @@ package() {
_mv_mod() {
pkgdesc="The Apache Portable Runtime Utility Library - $2 driver"
depends=
- local _moddir="usr/lib/apr-util-1"
- mkdir -p "$subpkgdir"/$_moddir
- mv "$pkgdir"/$_moddir/apr_$1*.so "$subpkgdir"/$_moddir/
+ amove usr/lib/apr-util-1/apr_$1*.so
}
dbd_pgsql() { _mv_mod dbd_pgsql "PostgreSQL"; }
@@ -56,6 +70,6 @@ dbd_sqlite3() { _mv_mod dbd_sqlite "SQLite3"; }
ldap() { _mv_mod ldap "LDAP"; }
sha512sums="
-40eff8a37c0634f7fdddd6ca5e596b38de15fd10767a34c30bbe49c632816e8f3e1e230678034f578dd5816a94f246fb5dfdf48d644829af13bf28de3225205d apr-util-1.6.1.tar.bz2
+8050a481eeda7532ef3751dbd8a5aa6c48354d52904a856ef9709484f4b0cc2e022661c49ddf55ec58253db22708ee0607dfa7705d9270e8fee117ae4f06a0fe apr-util-1.6.3.tar.bz2
4672c55bbe78a401483dd21f29dd1f92d70887191f3d4945a616223c18e39e051609a3b52a5547a9dbcc54e315cf5866e5dfb5ef9507c3914e9d74a67e75a00e musl-fix-testsuite.patch
"
diff --git a/main/apr/APKBUILD b/main/apr/APKBUILD
index 431eb17f363..b069a4d96db 100644
--- a/main/apr/APKBUILD
+++ b/main/apr/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=apr
-pkgver=1.7.0
-pkgrel=2
+pkgver=1.7.4
+pkgrel=0
pkgdesc="The Apache Portable Runtime"
url="https://apr.apache.org/"
arch="all"
@@ -12,26 +12,39 @@ subpackages="$pkgname-dev"
source="https://www.apache.org/dist/apr/apr-$pkgver.tar.bz2
apr-1.6.2-dont-test-dlclose.patch
semtimedop-s390x.patch
- CVE-2021-35940.patch
"
# secfixes:
+# 1.7.1-r0:
+# - CVE-2022-24963
+# - CVE-2022-25147
+# - CVE-2022-28331
# 1.7.0-r2:
-# - CVE-2021-35940.patch
+# - CVE-2021-35940
build() {
+ case "$CARCH" in
+ x86)
+ # apr before 1.7.3 implicitly disabled these for i*86
+ # now that they're enabled, it seems to fail tests instead
+ local atomics=no
+ ;;
+ *)
+ local atomics=yes
+ ;;
+ esac
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--datadir=/usr/share \
- --enable-nonportable-atomics \
+ --enable-nonportable-atomics=$atomics \
--with-devrandom=/dev/urandom
make
}
check() {
- make check
+ make -j1 check
}
package() {
@@ -41,7 +54,7 @@ package() {
# basicly everything thats not a *.so* file belongs to the -dev package
# we override the pre-defined func.
dev() {
- depends="$pkgname $depends_dev"
+ depends="$pkgname=$pkgver-r$pkgrel $depends_dev"
mkdir -p "$subpkgdir"
mv "$pkgdir"/* "$subpkgdir"/
mkdir -p "$pkgdir"/usr/lib
@@ -49,8 +62,7 @@ dev() {
}
sha512sums="
-3dc42d5caf17aab16f5c154080f020d5aed761e22db4c5f6506917f6bfd2bf8becfb40af919042bd4ce1077d5de74aa666f5edfba7f275efba78e8893c115148 apr-1.7.0.tar.bz2
+2342c997765ea2ca96eac158e5fd260232dba68fc41b90a79a7ba9b25c539fc217981867362090e0ebebe632289257c342275e3c5baedb698c474ef8f49a9dcd apr-1.7.4.tar.bz2
9fb931e45f30fbe68af56849dfca148c09cdf85e300af14fb259cbd43470113288680bdb21189d4cf13f5ce95f8d28666822535e017e64ace5324339ab50cbef apr-1.6.2-dont-test-dlclose.patch
5d1afa9419d0481e7c3369724e8b4c1e199cbfd5d031bd9d9fc4f46ee0d3819353ff03c3b2c508d5b939f66ef4549953bbf9cdae7ff934002b9a01d824c843e8 semtimedop-s390x.patch
-33c072ad4e27afee4b93df5b1076a8d858c6f4ef57df4e2dd1bf750f8b0390cb130744aa3bf67c4de359b35a558da07e479b10e0028ec935aa9a1ea4820c995e CVE-2021-35940.patch
"
diff --git a/main/apr/CVE-2021-35940.patch b/main/apr/CVE-2021-35940.patch
deleted file mode 100644
index 0b72ab964cd..00000000000
--- a/main/apr/CVE-2021-35940.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-Patch-Source: https://dist.apache.org/repos/dist/release/apr/patches/apr-1.7.0-CVE-2021-35940.patch
-SECURITY: CVE-2021-35940 (cve.mitre.org)
-
-Restore fix for CVE-2017-12613 which was missing in 1.7.x branch, though
-was addressed in 1.6.x in 1.6.3 and later via r1807976.
-
-The fix was merged back to 1.7.x in r1891198.
-
-Since this was a regression in 1.7.0, a new CVE name has been assigned
-to track this, CVE-2021-35940.
-
-Thanks to Iveta Cesalova <icesalov redhat.com> for reporting this issue.
-
-https://svn.apache.org/viewvc?view=revision&revision=1891198
-
-Index: time/unix/time.c
-===================================================================
---- a/time/unix/time.c (revision 1891197)
-+++ b/time/unix/time.c (revision 1891198)
-@@ -142,6 +142,9 @@
- static const int dayoffset[12] =
- {306, 337, 0, 31, 61, 92, 122, 153, 184, 214, 245, 275};
-
-+ if (xt->tm_mon < 0 || xt->tm_mon >= 12)
-+ return APR_EBADDATE;
-+
- /* shift new year to 1st March in order to make leap year calc easy */
-
- if (xt->tm_mon < 2)
-Index: time/win32/time.c
-===================================================================
---- a/time/win32/time.c (revision 1891197)
-+++ b/time/win32/time.c (revision 1891198)
-@@ -54,6 +54,9 @@
- static const int dayoffset[12] =
- {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334};
-
-+ if (tm->wMonth < 1 || tm->wMonth > 12)
-+ return APR_EBADDATE;
-+
- /* Note; the caller is responsible for filling in detailed tm_usec,
- * tm_gmtoff and tm_isdst data when applicable.
- */
-@@ -228,6 +231,9 @@
- static const int dayoffset[12] =
- {306, 337, 0, 31, 61, 92, 122, 153, 184, 214, 245, 275};
-
-+ if (xt->tm_mon < 0 || xt->tm_mon >= 12)
-+ return APR_EBADDATE;
-+
- /* shift new year to 1st March in order to make leap year calc easy */
-
- if (xt->tm_mon < 2)
diff --git a/main/argon2/APKBUILD b/main/argon2/APKBUILD
index b3eb0b1e8a5..02726519e41 100644
--- a/main/argon2/APKBUILD
+++ b/main/argon2/APKBUILD
@@ -4,11 +4,11 @@
pkgname=argon2
_pkgname=phc-winner-argon2
pkgver=20190702
-pkgrel=1
+pkgrel=5
pkgdesc="The password hash Argon2, winner of PHC"
url="https://github.com/P-H-C/phc-winner-argon2"
arch="all"
-license="Apache-2.0 CC0-1.0"
+license="Apache-2.0 OR CC0-1.0"
subpackages="$pkgname-static $pkgname-dev $pkgname-libs"
source="$pkgname-$pkgver.tar.gz::https://github.com/P-H-C/$_pkgname/archive/$pkgver.tar.gz
"
diff --git a/main/argp-standalone/001-throw-in-funcdef.patch b/main/argp-standalone/001-throw-in-funcdef.patch
deleted file mode 100644
index 4a90751e1e6..00000000000
--- a/main/argp-standalone/001-throw-in-funcdef.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-# --- T2-COPYRIGHT-NOTE-BEGIN ---
-# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
-#
-# T2 SDE: package/.../rng-tools/throw-in-funcdef.patch.argp-standalone
-# Copyright (C) 2006 The T2 SDE Project
-#
-# More information can be found in the files COPYING and README.
-#
-# This patch file is dual-licensed. It is available under the license the
-# patched project is licensed under, as long as it is an OpenSource license
-# as defined at http://www.opensource.org/ (e.g. BSD, X11) or 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.
-# --- T2-COPYRIGHT-NOTE-END ---
-
-
-No __THROW in function implementation.
- --jsaw
-
---- argp-standalone-1.4-test2/argp.h.orig 2006-01-06 02:29:59.000000000 +0100
-+++ argp-standalone-1.4-test2/argp.h 2006-01-06 02:41:10.000000000 +0100
-@@ -560,17 +560,17 @@
- # endif
-
- # ifndef ARGP_EI
--# define ARGP_EI extern __inline__
-+# define ARGP_EI extern inline
- # endif
-
- ARGP_EI void
--__argp_usage (__const struct argp_state *__state) __THROW
-+__argp_usage (__const struct argp_state *__state)
- {
- __argp_state_help (__state, stderr, ARGP_HELP_STD_USAGE);
- }
-
- ARGP_EI int
--__option_is_short (__const struct argp_option *__opt) __THROW
-+__option_is_short (__const struct argp_option *__opt)
- {
- if (__opt->flags & OPTION_DOC)
- return 0;
-@@ -582,7 +582,7 @@
- }
-
- ARGP_EI int
--__option_is_end (__const struct argp_option *__opt) __THROW
-+__option_is_end (__const struct argp_option *__opt)
- {
- return !__opt->key && !__opt->name && !__opt->doc && !__opt->group;
- }
---- argp-standalone-1.4-test2/argp-parse.c.orig 2006-01-06 02:47:48.000000000 +0100
-+++ argp-standalone-1.4-test2/argp-parse.c 2006-01-06 02:48:16.000000000 +0100
-@@ -1290,13 +1290,13 @@
- /* Defined here, in case a user is not inlining the definitions in
- * argp.h */
- void
--__argp_usage (__const struct argp_state *__state) __THROW
-+__argp_usage (__const struct argp_state *__state)
- {
- __argp_state_help (__state, stderr, ARGP_HELP_STD_USAGE);
- }
-
- int
--__option_is_short (__const struct argp_option *__opt) __THROW
-+__option_is_short (__const struct argp_option *__opt)
- {
- if (__opt->flags & OPTION_DOC)
- return 0;
-@@ -1310,7 +1310,7 @@
- }
-
- int
--__option_is_end (__const struct argp_option *__opt) __THROW
-+__option_is_end (__const struct argp_option *__opt)
- {
- return !__opt->key && !__opt->name && !__opt->doc && !__opt->group;
- }
diff --git a/main/argp-standalone/APKBUILD b/main/argp-standalone/APKBUILD
index 5799c19d1fc..4dc43fae938 100644
--- a/main/argp-standalone/APKBUILD
+++ b/main/argp-standalone/APKBUILD
@@ -1,17 +1,15 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=argp-standalone
-pkgver=1.3
-pkgrel=4
+pkgver=1.5.0
+pkgrel=1
pkgdesc="Hierarchial argument parsing library broken out from glibc"
url="http://www.lysator.liu.se/~nisse/misc/"
arch="all"
-license="GPL-2.0-or-later"
+license="LGPL-2.1-or-later"
makedepends="libtool automake autoconf"
-source="http://www.lysator.liu.se/~nisse/misc/argp-standalone-$pkgver.tar.gz
- 001-throw-in-funcdef.patch
- gnu89-inline.patch
- "
+source="$pkgname-$pkgver.tar.gz::https://github.com/argp-standalone/argp-standalone/archive/refs/tags/$pkgver.tar.gz
+ gnu89-inline.patch"
prepare() {
default_prepare
@@ -39,6 +37,7 @@ package() {
install -D -m755 libargp.a "$pkgdir"/usr/lib/libargp.a
}
-sha512sums="58c3feb8852b90248fff39e49b5019bd0dcf646790c3eaf70c3262eb81dda31a61dc0a45963c7b4a010e80fc14b37288dcb3b3ef48d02f2d33dd72c1c62e62d9 argp-standalone-1.3.tar.gz
-5e4cdeeb16e6a4fb46a00ab95f3da9276ee554eec00bb2a05da7467961234ba3f9a630aafa7ceb5feb429a84ece8bf03b869fa996b86468f4716935a914c79a4 001-throw-in-funcdef.patch
-69f1d8a4fcd542346f98bc1fb7151db748483fc2f331c8c35114e0891d867b41c603ddaa5f3130aaaf1c640e02c51ac71cee71b62c09301b146812e9059e9ade gnu89-inline.patch"
+sha512sums="
+fa2eb61ea00f7a13385e5c1e579dd88471d6ba3a13b6353e924fe71914b90b40688b42a9f1789bc246e03417fee1788b1990753cda8c8d4a544e85f26b63f9e2 argp-standalone-1.5.0.tar.gz
+42b2072b68d9287cfde2f5023af0a6c24bc34a7af6df036a313d5c4fa2762688b12476c688caf010176c069184305325f3134756f0c4e19aa4b06278e3f233e0 gnu89-inline.patch
+"
diff --git a/main/argp-standalone/gnu89-inline.patch b/main/argp-standalone/gnu89-inline.patch
index 71978eba585..bcb15d8d550 100644
--- a/main/argp-standalone/gnu89-inline.patch
+++ b/main/argp-standalone/gnu89-inline.patch
@@ -1,12 +1,11 @@
diff --git a/configure.ac b/configure.ac
-index 4658839..09f0267 100644
+index 932b9da..b4f85bb 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -79,16 +79,10 @@ AC_CHECK_DECLS([program_invocation_name, program_invocation_short_name],
-
+@@ -80,15 +80,10 @@ AC_CHECK_DECLS([program_invocation_name, program_invocation_short_name],
# Set these flags *last*, or else the test programs won't compile
if test x$GCC = xyes ; then
-- # Using -ggdb3 makes (some versions of) Redhat's gcc-2.96 dump core
+ # Using -ggdb3 makes (some versions of) Redhat's gcc-2.96 dump core
- if "$CC" --version | grep '^2\.96$' 1>/dev/null 2>&1; then
- true
- else
diff --git a/main/arm-trusted-firmware/APKBUILD b/main/arm-trusted-firmware/APKBUILD
index aff371ab3ea..9ea39c7d997 100644
--- a/main/arm-trusted-firmware/APKBUILD
+++ b/main/arm-trusted-firmware/APKBUILD
@@ -2,37 +2,83 @@
# Contributor: Maxim Karasev <begs@disroot.org>
# Maintainer: Bart Ribbers <bribbers@disroot.org>
pkgname=arm-trusted-firmware
-pkgver=2.6
+pkgver=2.8.14
pkgrel=1
pkgdesc="ARM Trusted Firmware-A (TF-A)"
url="https://github.com/ARM-software/arm-trusted-firmware"
-arch="aarch64"
+# no lld on s390x, but it doesn't matter anyway as this is arm firmware
+arch="all !s390x"
license="BSD-3-Clause"
-makedepends="dtc"
-source="https://github.com/ARM-software/arm-trusted-firmware/archive/v$pkgver/arm-trusted-firmware-v$pkgver.tar.gz"
+makedepends="
+ clang
+ dtc
+ lld
+ llvm
+ openssl-dev
+ "
+subpackages="$pkgname-tools"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ARM-software/arm-trusted-firmware/archive/refs/tags/lts-v$pkgver.tar.gz
+ key_t.patch
+ rk3399.patch
+ "
options="!check" # No tests
+builddir="$srcdir/$pkgname-lts-v$pkgver"
_plats="
imx8mq
+ rk3328
+ rk3399
sun50i_a64
sun50i_h6
"
build() {
unset LDFLAGS
- for plat in $_plats; do
- msg "Building ATF for $plat"
- make PLAT=$plat bl31
- done
+ if [ "$CARCH" = "aarch64" ]; then
+ for plat in $_plats; do
+ case "$plat" in
+ sun50i_a64|sun50i_h6)
+ local opts="SUNXI_SETUP_REGULATORS=1 SUNXI_AMEND_DTB=1"
+ ;;
+ esac
+
+ msg "Building ATF for $plat (opts='$opts')"
+ LDFLAGS="$LDFLAGS -no-warn-rwx-segment" make E=0 PLAT=$plat bl31 $opts
+ done
+ fi
+
+ make -C tools/fiptool
+ make -C tools/cert_create
}
package() {
- for plat in $_plats; do
- install -D "$builddir"/build/$plat/release/bl31.bin \
- "$pkgdir"/usr/share/$pkgname/$plat/bl31.bin
- done
+ install -d "$pkgdir"/usr/share/$pkgname
+ if [ "$CARCH" = "aarch64" ]; then
+ for plat in $_plats; do
+ case $plat in
+ rk33*)
+ local path="$builddir"/build/$plat/release/bl31/bl31.elf
+ ;;
+ *)
+ local path="$builddir"/build/$plat/release/bl31.bin
+ ;;
+ esac
+ install -D $path -t "$pkgdir"/usr/share/$pkgname/$plat/
+ done
+ fi
+ install -Dm755 -t "$pkgdir"/usr/bin tools/fiptool/fiptool
+ install -Dm755 -t "$pkgdir"/usr/bin tools/cert_create/cert_create
+}
+
+tools() {
+ pkgdesc="$pkgdesc (tools)"
+
+ amove usr/bin/fiptool
+ amove usr/bin/cert_create
}
sha512sums="
-8b20964b1b672898268e27424984af0ef9e95b38f426370ed4b802f67fc204db5f467886707dce77e4560548e01777a6c36d4eb801842c7d1f2ff6ca5d9b7dd1 arm-trusted-firmware-v2.6.tar.gz
+3283c13ba442a8d6231049c69091872888ae1b6cfb2ab1aea0c0aab28e34bb7cc82b99ec26fdfd96cd8cd0019e30fe6244c71aee183e8127397639a6621c58d5 arm-trusted-firmware-2.8.14.tar.gz
+71f59abbb3c53d975afe0f20456e8bd943f005aeeb14633f609ad7b7617d51c479a505b54f9c49f77e02ecdea233bc8dffecd31b79b86a38d9ad39f6b0dc1129 key_t.patch
+4b26d06cc5f23cd73515927624c164745dd144a0255a717052d80d904a58e001cb7b334ce1fa20cf21ba18b6e0f024da011321cb2c53dfb44ddd52ee24e31a66 rk3399.patch
"
diff --git a/main/arm-trusted-firmware/key_t.patch b/main/arm-trusted-firmware/key_t.patch
new file mode 100644
index 00000000000..07c6cf16b28
--- /dev/null
+++ b/main/arm-trusted-firmware/key_t.patch
@@ -0,0 +1,13 @@
+without it /usr/include/bits/alltypes.h defines key_t as int
+
+--- a/tools/cert_create/Makefile
++++ b/tools/cert_create/Makefile
+@@ -49,7 +49,7 @@ endif
+ # from setting the OPENSSL_DIR path.
+ $(eval $(call SELECT_OPENSSL_API_VERSION))
+
+-HOSTCCFLAGS := -Wall -std=c99
++HOSTCCFLAGS := -Wall -std=c99 -D__DEFINED_key_t=1
+
+ ifeq (${DEBUG},1)
+ HOSTCCFLAGS += -g -O0 -DDEBUG -DLOG_LEVEL=40
diff --git a/main/arm-trusted-firmware/rk3399.patch b/main/arm-trusted-firmware/rk3399.patch
new file mode 100644
index 00000000000..ffbb4755071
--- /dev/null
+++ b/main/arm-trusted-firmware/rk3399.patch
@@ -0,0 +1,53 @@
+
+
+
+diff --git a/plat/rockchip/rk3399/drivers/m0/Makefile b/plat/rockchip/rk3399/drivers/m0/Makefile
+index 79e09f0..5ab6d28 100644
+--- a/plat/rockchip/rk3399/drivers/m0/Makefile
++++ b/plat/rockchip/rk3399/drivers/m0/Makefile
+@@ -33,16 +33,16 @@ C_SOURCES := src/dram.c \
+ C_SOURCES_PMU := src/suspend.c
+
+ # Flags definition
+-COMMON_FLAGS := -g -mcpu=$(ARCH) -mthumb -Wall -O3 -nostdlib -mfloat-abi=soft
++COMMON_FLAGS := -g -mcpu=$(ARCH) --target=arm-none-eabi -mthumb -Wall -O3 -nostdlib -mfloat-abi=soft
+ CFLAGS := -ffunction-sections -fdata-sections -fomit-frame-pointer -fno-common
+ ASFLAGS := -Wa,--gdwarf-2
+ LDFLAGS := -Wl,--gc-sections -Wl,--build-id=none
+
+ # Cross tool
+-CC := ${M0_CROSS_COMPILE}gcc
++CC := clang
+ CPP := ${M0_CROSS_COMPILE}cpp
+ AR := ${M0_CROSS_COMPILE}ar
+-OC := ${M0_CROSS_COMPILE}objcopy
++OC := llvm-objcopy
+ OD := ${M0_CROSS_COMPILE}objdump
+ NM := ${M0_CROSS_COMPILE}nm
+
+
+Needed to stop linker errors with ldd:
+ld.lld: error: section .ARM.exidx virtual address range overlaps with .m0_bin
+489>>> .ARM.exidx range is [0x0, 0xF]
+490>>> .m0_bin range is [0x0, 0x267]
+491ld.lld: error: section .ARM.exidx load address range overlaps with .m0_bin
+492>>> .ARM.exidx range is [0x0, 0xF]
+493>>> .m0_bin range is [0x0, 0x267]
+494ld.lld: error: section .ARM.exidx virtual address range overlaps with .m0_bin
+495>>> .ARM.exidx range is [0x0, 0xF]
+496>>> .m0_bin range is [0x0, 0x347]
+497ld.lld: error: section .ARM.exidx load address range overlaps with .m0_bin
+498>>> .ARM.exidx range is [0x0, 0xF]
+499>>> .m0_bin range is [0x0, 0x347]
+
+diff --git a/plat/rockchip/rk3399/drivers/m0/src/rk3399m0.ld.S b/plat/rockchip/rk3399/drivers/m0/src/rk3399m0.ld.S
+index bfe054e..fedb012 100644
+--- a/plat/rockchip/rk3399/drivers/m0/src/rk3399m0.ld.S
++++ b/plat/rockchip/rk3399/drivers/m0/src/rk3399m0.ld.S
+@@ -22,5 +22,5 @@ SECTIONS {
+ *(.co_stack*)
+ }
+
+- /DISCARD/ : { *(.comment) *(.note*) }
++ /DISCARD/ : { *(.comment) *(.note*) *(.ARM.exidx) }
+ }
diff --git a/main/arpon/APKBUILD b/main/arpon/APKBUILD
index f331e358bb5..7b0ccc5d78a 100644
--- a/main/arpon/APKBUILD
+++ b/main/arpon/APKBUILD
@@ -3,7 +3,7 @@
pkgname=arpon
pkgver=3.0
_realver=3.0-ng
-pkgrel=6
+pkgrel=8
pkgdesc="Arp handler inspectiON is a handler daemon with tools to handle all ARP aspects"
url="https://arpon.sourceforge.io/"
arch="all"
@@ -34,12 +34,16 @@ check() {
package() {
DESTDIR="$pkgdir" cmake --install build
+ # Pid file is created at runtime
+ rm -r "$pkgdir"/var/run
install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
}
-sha512sums="e6338018d65f3f8300958e168a9eb6f6be85cba21ae0aee4b03e9838a29a06afbf2448c2f104367aa18389cc549e4489bcf8dad384ad46eadf2884a0908238af ArpON-3.0-ng.tar.gz
+sha512sums="
+e6338018d65f3f8300958e168a9eb6f6be85cba21ae0aee4b03e9838a29a06afbf2448c2f104367aa18389cc549e4489bcf8dad384ad46eadf2884a0908238af ArpON-3.0-ng.tar.gz
d7ac9e46a43ac332926efe959373790ca2b5ae07e9a02186bff257014928ed5a101ff6d8b6224a7291f7bb25fe5555510cbf688a062d85afb7b7d9b3f6285ee9 fix-ppc64le-werror.patch
eb4b9087a61c31fa99a7c4104e20172101b4ac3abcd448a41bdd31a81768a3dc996c9b220fd50b3c8906c050c4362c0cef300f5625cb02a7f51246783a915786 arpon-gcc8.patch
-9a7c862c3b07e31da091906b61339680b23af154c088eb259f2540916273d8e5f4dc6af5f883564d5b2ede6552b55376aa37b413270f837067ec5ce3d61a076f arpon.initd
-c368acd8b0f9945a750e5c39a22fdad2a10f117270cd07f641333fbb9c22223cbf18809665d8675732408e820da5a806dac10c78ab0b9f2dae58cacbe58c61c1 arpon.confd"
+2fc675315b8d01563263dbca55310167be3656fa143ede9bad3a24edc3aa32e7b765cf2edb5164527942e4f2a4c74891f76ec737a9aac8a0770a2445af4a542f arpon.initd
+c368acd8b0f9945a750e5c39a22fdad2a10f117270cd07f641333fbb9c22223cbf18809665d8675732408e820da5a806dac10c78ab0b9f2dae58cacbe58c61c1 arpon.confd
+"
diff --git a/main/arpon/arpon.initd b/main/arpon/arpon.initd
index 1c664bcf52e..89eaaa1b5cf 100644
--- a/main/arpon/arpon.initd
+++ b/main/arpon/arpon.initd
@@ -1,24 +1,14 @@
#!/sbin/openrc-run
-NAME=arpon
-DAEMON=/usr/sbin/$NAME
+command=/usr/sbin/arpon
+command_args="-d $ARPON_OPTS"
+pidfile=/var/run/arpon.pid
depend() {
need net
after firewall
}
-start() {
- ebegin "Starting ${NAME}"
- start-stop-daemon --start --quiet \
- --pidfile /var/run/${NAME}.pid \
- --exec ${DAEMON} -- -d ${ARPON_OPTS}
- eend $?
-}
-
-stop() {
- ebegin "Stopping ${NAME}"
- start-stop-daemon --stop --quiet \
- --pidfile /var/run/${NAME}.pid
- eend $?
+start_pre() {
+ checkpath -f "$pidfile"
}
diff --git a/main/arpwatch/APKBUILD b/main/arpwatch/APKBUILD
index 22860803d70..6c70670b97d 100644
--- a/main/arpwatch/APKBUILD
+++ b/main/arpwatch/APKBUILD
@@ -1,12 +1,12 @@
# Contributor: Michael Mason <ms13sp@gmail.com>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=arpwatch
-pkgver=3.3
+pkgver=3.6
pkgrel=0
pkgdesc="Ethernet monitoring program"
url="https://www-nrg.ee.lbl.gov/"
arch="all"
-license="BSD-4-Clause-Shortened"
+license="BSD-3-Clause"
pkgusers="arpwatch"
depends="python3"
makedepends="libpcap-dev"
@@ -19,17 +19,12 @@ source="https://ee.lbl.gov/downloads/arpwatch/arpwatch-$pkgver.tar.gz
22_alpine_bihourly_script.patch
53_stop-using-_getshort.patch
remove-freebsd-arpwatch.patch
+ fix-time-h.patch
"
-prepare() {
- default_prepare
-
- update_config_sub
- update_config_guess
-}
-
build() {
export PYTHON=python3
+
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -55,10 +50,11 @@ package() {
}
sha512sums="
-4e3d542917dc9060ae7b35b40f41cb696eb36e68846194a76f025c5ecb1df1e67d5c1c66ba3c7e581e1f915b988d05cb7805f28d410784bd27dc3a448dccdece arpwatch-3.3.tar.gz
+5ba47b15f294396f79efa4b72743169b9eb36747d675144e8f456a23d3987dc0d719d9b97704e7eeec0795f03ee7ef7e8fe8a4ba1ee35d19ab8ec6b077d345e8 arpwatch-3.6.tar.gz
854f6361bf02586516db4f50afdee729c047cd788985f72f475e592e0e744c24d7d765f0391d733dbf417048c26b6d43c00eb63c58e6798bdb2366b93cbfe03a arpwatch.confd
83fc559aecd82cefd430104df23fc7680ac14d2c27f74d4543585382166e16a65563e00122281e886278993a9ca574daa5b2b2100884369c3a3146a66b68a0f7 arpwatch.initd
b537220b7a19f7f28d1b60cfea6ef2e4d0c852ac83907fdd2515e467c3d16529b0c5a25ee653536e674c63d47a00709fc89fd6085efc5ba4a12f392df5ae5788 22_alpine_bihourly_script.patch
6eae9b143deea1655b3adb45640329d1c6d15c0bf6172a229ed142bb59e6c53b73ad19dc38adc42fe547f0bae1310394b19c9f8efe1af3a7dbf889c3742008c1 53_stop-using-_getshort.patch
68298d7967c281bbda6fe7d64f9af427eb39ac1a0011283b14ea1004396949595acc6947ddcabb385acdc83abe6255bf79ff92e5b8b1c33c67c26830b82ecd64 remove-freebsd-arpwatch.patch
+fdc05ac57e2c7007d6313fe1c38b25d999f347f218aeda6e9e59ec50791825549a5b73b70fb975d78803cbc0078341b6365379df3de02445e4af5e92e32685a8 fix-time-h.patch
"
diff --git a/main/arpwatch/fix-time-h.patch b/main/arpwatch/fix-time-h.patch
new file mode 100644
index 00000000000..2d99092c152
--- /dev/null
+++ b/main/arpwatch/fix-time-h.patch
@@ -0,0 +1,33 @@
+diff --git a/report.c b/report.c
+index 9c77755..a4f0db1 100644
+--- a/report.c
++++ b/report.c
+@@ -37,7 +37,6 @@ static const char rcsid[] __attribute__((unused)) =
+ #include <sys/param.h>
+ #include <sys/types.h> /* concession to AIX */
+ #include <sys/socket.h>
+-#include <sys/time.h>
+ #include <sys/wait.h>
+
+ #if __STDC__
+@@ -59,9 +58,18 @@ struct rtentry;
+ #include <stdlib.h>
+ #include <string.h>
+ #include <syslog.h>
+-#ifdef TIME_WITH_SYS_TIME
+-#include <time.h>
++
++#if TIME_WITH_SYS_TIME
++# include <sys/time.h>
++# include <time.h>
++#else
++# if HAVE_SYS_TIME_H
++# include <sys/time.h>
++# else
++# include <time.h>
++# endif
+ #endif
++
+ #include <unistd.h>
+
+ #include "gnuc.h"
diff --git a/main/asciidoc/APKBUILD b/main/asciidoc/APKBUILD
index 9aafab2c196..e89ffe27a15 100644
--- a/main/asciidoc/APKBUILD
+++ b/main/asciidoc/APKBUILD
@@ -1,45 +1,36 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=asciidoc
-pkgver=9.1.1
-pkgrel=0
+pkgver=10.2.0
+pkgrel=5
pkgdesc="Text based documentation"
url="https://asciidoc.org/"
arch="noarch"
-license="GPL-2.0-or-later and GPL-1.0-or-later"
-depends="python3 libxml2-utils docbook-xsl source-highlight"
-makedepends="autoconf automake"
-subpackages="$pkgname-doc"
-# There is a upstream-created tarball but it has depth=1 which unpacks
-# everything into $srcdir instead of $srcdir/$pkgname-$pkgver
-source="$pkgname-$pkgver.tar.gz::https://github.com/asciidoc/asciidoc-py3/archive/$pkgver.tar.gz"
-builddir="$srcdir/asciidoc-py-$pkgver"
+license="GPL-2.0-or-later AND MIT"
+depends="python3 libxml2-utils docbook-xsl"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest py3-pytest-mock"
+subpackages="$pkgname-pyc $pkgname-doc"
+source="https://github.com/asciidoc-py/asciidoc-py/releases/download/$pkgver/asciidoc-$pkgver.tar.gz"
+options="!check" # py3-pytest-mock
replaces="$pkgname-vim"
-prepare() {
- default_prepare
- autoreconf -fi
-}
-
build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info
- make
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
}
check() {
- make test
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- make DESTDIR="$pkgdir" install
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+ install -Dm644 doc/*.1 -t "$pkgdir"/usr/share/man/man1/
+ install -Dm644 asciidoc/api.py -t "$pkgdir"/usr/lib/python3*/site-packages/asciidoc/
}
sha512sums="
-444de69e3b87af984327873d5be1162157db5f7fb353e1fbbd24b4938ce0238fd474a67c9d3461fb7b069e7b029c63fbaf1ba8dd9cf7b91fbfa81e5429db404c asciidoc-9.1.1.tar.gz
+e8f97559a169504bd2b47a5a4108268d08dbeb98e304486e64761c2603963f4610a0f96c443fdbb8ea289586f015d066681c8ad2946610864662d6df5d7ba9d6 asciidoc-10.2.0.tar.gz
"
diff --git a/main/asciidoctor/APKBUILD b/main/asciidoctor/APKBUILD
index 31e0e5f4ba0..63827d49046 100644
--- a/main/asciidoctor/APKBUILD
+++ b/main/asciidoctor/APKBUILD
@@ -1,10 +1,10 @@
# Contributor: Seung Soo Mun <hamletmun@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=asciidoctor
-pkgver=2.0.17
-pkgrel=1
+pkgver=2.0.22
+pkgrel=0
pkgdesc="Converter for AsciiDoc to HTML5, DocBook 5 (or 4.5) and other formats"
-url="https://rubygems.org/gems/$pkgname"
+url="https://rubygems.org/gems/asciidoctor"
arch="noarch"
license="MIT"
options="!check"
@@ -34,5 +34,5 @@ package() {
}
sha512sums="
-41ebc833c7b8bded5704034c7fcf7d2f26643a24de24eda57db1a0ac94976e775bf0f093f46faaa99c5007c61af325aa5b02e5321159a88daac3397800adbd03 asciidoctor-2.0.17.gem
+1c9cd3bdbb7f4467b73e99b29ab655d521213d51c0151f6aee21cfd1d943c6456c1ef23bfdbf180057b70590341d92fcda2be0bf5e1c741e7068ff0901bd282c asciidoctor-2.0.22.gem
"
diff --git a/main/aspell-de/APKBUILD b/main/aspell-de/APKBUILD
index 7f94b3789d1..78d4665e09d 100644
--- a/main/aspell-de/APKBUILD
+++ b/main/aspell-de/APKBUILD
@@ -1,13 +1,13 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=aspell-de
pkgver=20161207
-pkgrel=0
+pkgrel=1
_lang=${pkgname##*-}
_name=${pkgname%%-*}6-$_lang-$pkgver-7-0
pkgdesc="German dictionary for aspell"
url="http://aspell.net/"
arch="noarch"
-license="GPL-2.0"
+license="GPL-2.0-or-later"
options="!check" # No test suite
makedepends="aspell-dev"
source="https://ftp.gnu.org/gnu/aspell/dict/$_lang/$_name.tar.bz2"
diff --git a/main/aspell-fr/APKBUILD b/main/aspell-fr/APKBUILD
index 458c2065e10..ed1f42bc464 100644
--- a/main/aspell-fr/APKBUILD
+++ b/main/aspell-fr/APKBUILD
@@ -2,25 +2,23 @@
pkgname=aspell-fr
pkgver=0.50_p3
_ver=${pkgver/_p/-}
-pkgrel=1
+pkgrel=3
pkgdesc="French dictionary for aspell"
url="http://aspell.net/"
arch="noarch"
-license="GPL-2.0"
-depends=""
+license="GPL-2.0-or-later"
makedepends="aspell-dev"
source="https://ftp.gnu.org/gnu/aspell/dict/fr/aspell-fr-$_ver.tar.bz2"
+builddir="$srcdir"/aspell-fr-$_ver
+options="!check"
-_builddir="$srcdir"/aspell-fr-$_ver
-build () {
- cd "$_builddir"
- ./configure || return 1
- make || return 1
+build() {
+ ./configure
+ make
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
}
sha512sums="bb5d1faada9283521096a19a8f5abada2a19cc02717f6dde57846ef46a4df253113b10a2bb72d2b0e32e4a3ab24b541a5acd9f4595b908d2f6cd2fc448d8bc3b aspell-fr-0.50-3.tar.bz2"
diff --git a/main/aspell-ru/APKBUILD b/main/aspell-ru/APKBUILD
index d6e6636d436..90dd70cf860 100644
--- a/main/aspell-ru/APKBUILD
+++ b/main/aspell-ru/APKBUILD
@@ -1,29 +1,27 @@
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Maintainer: Valery Kartel <valery.kartel@gmail.com>
pkgname=aspell-ru
-pkgver=0.99f7
-pkgrel=0
+pkgver=0.99_p7
+pkgrel=2
_lang=${pkgname##*-}
-_name=${pkgname%%-*}6-$_lang-$pkgver-1
+_name=${pkgname%%-*}6-$_lang-${pkgver//_p/f}-1
pkgdesc="Russian dictionary for aspell"
url="http://aspell.net/"
arch="noarch"
-license="GPL-2.0"
+license="custom"
options="!check" # No test suite
makedepends="aspell-dev"
source="https://ftp.gnu.org/gnu/aspell/dict/$_lang/$_name.tar.bz2"
builddir="$srcdir"/$_name
-build () {
- cd "$builddir"
+build() {
./configure
make
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
- install -D -m644 Copyright "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+ install -Dm644 Copyright "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
sha512sums="789fe15f5502b54008a41f2afb5635dcb7bb0a36e61b300ee48b2429c339793f5c4808d6063f13f1f8455ce251912433890e7d01ca59d8b0924ecd2987ceb430 aspell6-ru-0.99f7-1.tar.bz2"
diff --git a/main/aspell-uk/APKBUILD b/main/aspell-uk/APKBUILD
index 47552196133..06c887039df 100644
--- a/main/aspell-uk/APKBUILD
+++ b/main/aspell-uk/APKBUILD
@@ -1,28 +1,26 @@
# Maintainer: Valery Kartel <valery.kartel@gmail.com>
pkgname=aspell-uk
pkgver=1.4.0
-pkgrel=1
+pkgrel=3
_lang=${pkgname##*-}
_name=${pkgname%%-*}6-$_lang-$pkgver-0
pkgdesc="Ukrainian dictionary for aspell"
url="http://aspell.net/"
arch="noarch"
-license="GPL-2.0"
+license="LGPL-2.0-or-later"
options="!check" # No test suite
makedepends="aspell-dev"
source="https://ftp.gnu.org/gnu/aspell/dict/$_lang/$_name.tar.bz2"
builddir="$srcdir"/$_name
-build () {
- cd "$builddir"
+build() {
./configure
make
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
- install -D -m644 Copyright "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+ install -Dm644 Copyright "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
sha512sums="2e66465d17695dd3147241f13d611571f8a80a15886c69728d2f34019fb4834e56e4c0834d9e898927522b54d75f78a32dd3435b2c16eb86cf9cfa11070f0799 aspell6-uk-1.4.0-0.tar.bz2"
diff --git a/main/aspell/APKBUILD b/main/aspell/APKBUILD
index 92cc7a92e31..0fdc677e08e 100644
--- a/main/aspell/APKBUILD
+++ b/main/aspell/APKBUILD
@@ -1,18 +1,17 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
# Contributor: Valery Kartel <valery.kartel@gmail.com>
pkgname=aspell
-pkgver=0.60.8
-pkgrel=1
+pkgver=0.60.8.1
+pkgrel=0
pkgdesc="A spell checker designed to eventually replace Ispell"
url="http://aspell.net/"
arch="all"
-license="LGPL-2.0-or-later"
+license="LGPL-2.1-or-later"
subpackages="$pkgname-compat::noarch $pkgname-utils $pkgname-dev $pkgname-doc
$pkgname-lang $pkgname-libs"
depends_dev="$pkgname-utils"
makedepends="ncurses-dev perl gettext-dev"
-source="https://ftp.gnu.org/gnu/aspell/aspell-$pkgver.tar.gz
- CVE-2019-25051.patch"
+source="https://ftp.gnu.org/gnu/aspell/aspell-$pkgver.tar.gz"
# secfixes:
# 0.60.8-r1:
@@ -26,8 +25,7 @@ prepare() {
}
build() {
- cd "$builddir"
- LDFLAGS="-lintl" \
+ LDFLAGS="$LDFLAGS -lintl" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -40,12 +38,10 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
@@ -72,6 +68,5 @@ libs() {
}
sha512sums="
-8ef4952c553b6234dfe777240d2d97beb13ef9201e18d56bee3b5068d13525db3625b7130d9f5122f7c529da0ccb0c70eb852a81472a7d15fb7c4ee5ba21cd29 aspell-0.60.8.tar.gz
-529f3f4737d2e19f7571f4c8666b1cd089cc4e9dfdaa52dc468919f01ce9f8f8112d8fe8afda295b3dfb92f5e0c2bbd79bf1ec69f06c163c32eb28f0168ab263 CVE-2019-25051.patch
+80fa9d7f5f4b8bf66388825ae28403713a2e3eda81fc31f2f452c3e2fe8349cd0fa8f0e4d0d3f8cffe215817229af25aa7be2dba358cb9cdc97e9d2834ba5ca7 aspell-0.60.8.1.tar.gz
"
diff --git a/main/aspell/CVE-2019-25051.patch b/main/aspell/CVE-2019-25051.patch
deleted file mode 100644
index 2f15d380ec0..00000000000
--- a/main/aspell/CVE-2019-25051.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From 0718b375425aad8e54e1150313b862e4c6fd324a Mon Sep 17 00:00:00 2001
-From: Kevin Atkinson <kevina@gnu.org>
-Date: Sat, 21 Dec 2019 20:32:47 +0000
-Subject: [PATCH] objstack: assert that the alloc size will fit within a chunk
- to prevent a buffer overflow
-
-Bug found using OSS-Fuze.
----
- common/objstack.hpp | 18 ++++++++++++++----
- 1 file changed, 14 insertions(+), 4 deletions(-)
-
-diff --git a/common/objstack.hpp b/common/objstack.hpp
-index 3997bf7..bd97ccd 100644
---- a/common/objstack.hpp
-+++ b/common/objstack.hpp
-@@ -5,6 +5,7 @@
- #include "parm_string.hpp"
- #include <stdlib.h>
- #include <assert.h>
-+#include <stddef.h>
-
- namespace acommon {
-
-@@ -26,6 +27,12 @@ class ObjStack
- byte * temp_end;
- void setup_chunk();
- void new_chunk();
-+ bool will_overflow(size_t sz) const {
-+ return offsetof(Node,data) + sz > chunk_size;
-+ }
-+ void check_size(size_t sz) {
-+ assert(!will_overflow(sz));
-+ }
-
- ObjStack(const ObjStack &);
- void operator=(const ObjStack &);
-@@ -56,7 +63,7 @@ class ObjStack
- void * alloc_bottom(size_t size) {
- byte * tmp = bottom;
- bottom += size;
-- if (bottom > top) {new_chunk(); tmp = bottom; bottom += size;}
-+ if (bottom > top) {check_size(size); new_chunk(); tmp = bottom; bottom += size;}
- return tmp;
- }
- // This alloc_bottom will insure that the object is aligned based on the
-@@ -66,7 +73,7 @@ class ObjStack
- align_bottom(align);
- byte * tmp = bottom;
- bottom += size;
-- if (bottom > top) {new_chunk(); goto loop;}
-+ if (bottom > top) {check_size(size); new_chunk(); goto loop;}
- return tmp;
- }
- char * dup_bottom(ParmString str) {
-@@ -79,7 +86,7 @@ class ObjStack
- // always be aligned as such.
- void * alloc_top(size_t size) {
- top -= size;
-- if (top < bottom) {new_chunk(); top -= size;}
-+ if (top < bottom) {check_size(size); new_chunk(); top -= size;}
- return top;
- }
- // This alloc_top will insure that the object is aligned based on
-@@ -88,7 +95,7 @@ class ObjStack
- {loop:
- top -= size;
- align_top(align);
-- if (top < bottom) {new_chunk(); goto loop;}
-+ if (top < bottom) {check_size(size); new_chunk(); goto loop;}
- return top;
- }
- char * dup_top(ParmString str) {
-@@ -117,6 +124,7 @@ class ObjStack
- void * alloc_temp(size_t size) {
- temp_end = bottom + size;
- if (temp_end > top) {
-+ check_size(size);
- new_chunk();
- temp_end = bottom + size;
- }
-@@ -131,6 +139,7 @@ class ObjStack
- } else {
- size_t s = temp_end - bottom;
- byte * p = bottom;
-+ check_size(size);
- new_chunk();
- memcpy(bottom, p, s);
- temp_end = bottom + size;
-@@ -150,6 +159,7 @@ class ObjStack
- } else {
- size_t s = temp_end - bottom;
- byte * p = bottom;
-+ check_size(size);
- new_chunk();
- memcpy(bottom, p, s);
- temp_end = bottom + size;
diff --git a/main/asterisk/30-asterisk-mariadb.patch b/main/asterisk/30-asterisk-mariadb.patch
deleted file mode 100644
index 4f50fff2e5a..00000000000
--- a/main/asterisk/30-asterisk-mariadb.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-Use mariadb instead of mysql
-
-diff --git a/addons/cdr_mysql.c b/addons/cdr_mysql.c
-index 00c75dd..bc405bb 100644
---- a/addons/cdr_mysql.c
-+++ b/addons/cdr_mysql.c
-@@ -43,6 +43,7 @@
- #include "asterisk.h"
-
- #include <mysql/mysql.h>
-+#include <mysql/mariadb_version.h>
- #include <mysql/errmsg.h>
-
- #include "asterisk/config.h"
-@@ -648,7 +649,7 @@ static int my_load_module(int reload)
- res |= my_load_config_string(cfg, "global", "ssl_cert", &ssl_cert, "");
- res |= my_load_config_string(cfg, "global", "ssl_key", &ssl_key, "");
-
-- res |= my_load_config_number(cfg, "global", "port", &dbport, MYSQL_PORT);
-+ res |= my_load_config_number(cfg, "global", "port", &dbport, MARIADB_PORT);
- res |= my_load_config_number(cfg, "global", "timeout", &timeout, 0);
- res |= my_load_config_string(cfg, "global", "compat", &compat, "no");
- res |= my_load_config_string(cfg, "global", "cdrzone", &cdrzone, "");
-diff --git a/addons/res_config_mysql.c b/addons/res_config_mysql.c
-index ae43485..94d3b35 100644
---- a/addons/res_config_mysql.c
-+++ b/addons/res_config_mysql.c
-@@ -33,6 +33,7 @@
- #include <sys/stat.h>
-
- #include <mysql/mysql.h>
-+#include <mysql/mariadb_version.h>
- #include <mysql/errmsg.h>
-
- #include "asterisk/channel.h"
diff --git a/main/asterisk/41-asterisk-ALLPERMS.patch b/main/asterisk/41-asterisk-ALLPERMS.patch
new file mode 100644
index 00000000000..adc0cb07c2b
--- /dev/null
+++ b/main/asterisk/41-asterisk-ALLPERMS.patch
@@ -0,0 +1,15 @@
+taken from http://lists.busybox.net/pipermail/buildroot/2019-October/265032.html
+
+--- a/res/res_crypto.c
++++ b/res/res_crypto.c
+@@ -77,6 +77,10 @@
+ */
+ #define RSA_PKCS1_OAEP_PADDING_SIZE (1 + 2 * SHA_DIGEST_LENGTH)
+
++#ifndef ALLPERMS
++# define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO)
++#endif
++
+ struct ast_key {
+ /*! Name of entity */
+ char name[80];
diff --git a/main/asterisk/APKBUILD b/main/asterisk/APKBUILD
index f19a684766b..2a80ead90d0 100644
--- a/main/asterisk/APKBUILD
+++ b/main/asterisk/APKBUILD
@@ -3,7 +3,7 @@
# Contributor: Timo Teras <timo.teras@iki.fi>
# Maintainer: Timo Teras <timo.teras@iki.fi>
pkgname=asterisk
-pkgver=18.11.2
+pkgver=20.5.2
pkgrel=0
pkgdesc="Modular Open Source PBX System"
pkgusers="asterisk"
@@ -17,7 +17,6 @@ makedepends="
bluez-dev
bsd-compat-headers
curl-dev
- dahdi-tools-dev
findutils
freetds-dev
imap-dev
@@ -25,16 +24,14 @@ makedepends="
libcap-dev
libedit-dev
libogg-dev
- libpri-dev
libresample
libsrtp-dev
libtool
libxml2-dev
lua-dev
- mariadb-connector-c-dev
ncurses-dev
newt-dev
- openssl1.1-compat-dev
+ openssl-dev>3
opus-dev
opusfile-dev
pjproject-dev
@@ -52,13 +49,25 @@ makedepends="
zlib-dev
"
install="$pkgname.pre-install $pkgname.pre-upgrade"
-subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc $pkgname-pgsql $pkgname-odbc
- $pkgname-tds $pkgname-fax $pkgname-sample-config:config:noarch
- $pkgname-sounds-moh:sound_moh:noarch $pkgname-sounds-en:sound_en:noarch
- $pkgname-mobile $pkgname-curl:_curl $pkgname-srtp $pkgname-dahdi
- $pkgname-speex $pkgname-opus $pkgname-alsa $pkgname-cdr-mysql:cdr_mysql
- $pkgname-openrc"
-
+subpackages="
+ $pkgname-dbg
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-pgsql
+ $pkgname-odbc
+ $pkgname-tds
+ $pkgname-fax
+ $pkgname-sample-config:config:noarch
+ $pkgname-sounds-moh:sound_moh:noarch
+ $pkgname-sounds-en:sound_en:noarch
+ $pkgname-mobile
+ $pkgname-curl:_curl
+ $pkgname-srtp
+ $pkgname-speex
+ $pkgname-opus
+ $pkgname-alsa
+ $pkgname-openrc
+ "
# Using commit from https://github.com/traud/asterisk-opus/commits/asterisk-13.7
_opus_commit=90e8780faccc79e68c07775c6ab2fe1ffaccfa08
_download="https://downloads.asterisk.org/pub/telephony/asterisk/releases"
@@ -67,14 +76,23 @@ source="$_download/asterisk-$pkgver.tar.gz
asterisk-13.7-$_opus_commit.tar.gz::https://github.com/traud/asterisk-opus/archive/$_opus_commit.tar.gz
10-musl-mutex-init.patch
20-musl-astmm-fix.patch
- 30-asterisk-mariadb.patch
40-asterisk-cdefs.patch
+ 41-asterisk-ALLPERMS.patch
+ gethostbyname_r.patch
asterisk.initd
asterisk.confd
asterisk.logrotate
"
# secfixes:
+# 20.5.1-r0:
+# - CVE-2023-37457
+# - CVE-2023-49294
+# - CVE-2023-49786
+# 18.15.1-r0:
+# - CVE-2022-37325
+# - CVE-2022-42706
+# - CVE-2022-42705
# 18.11.2-r0:
# - CVE-2022-26498
# - CVE-2022-26499
@@ -107,6 +125,7 @@ source="$_download/asterisk-$pkgver.tar.gz
prepare() {
default_prepare
update_config_guess
+ update_config_sub
# asteriskssl does not have direct references to libssl, but looks up
# symbols from it using dlsym(RTLD_NEXT), so use --no-as-needed for it.
@@ -136,13 +155,13 @@ build() {
--with-unixodbc \
--with-postgres \
--with-tds \
- --with-dahdi \
- --with-pri \
- --with-tonezone \
--with-resample \
--with-sqlite3 \
--with-speex \
--with-asound \
+ --without-dahdi \
+ --without-pri \
+ --without-tonezone \
--without-x11 \
--without-pjproject-bundled \
--with-spandsp \
@@ -161,11 +180,12 @@ build() {
# and add the non-default modules we need
./menuselect/menuselect \
+ --enable app_voicemail_imap \
--enable chan_mobile \
--enable app_meetme \
- --enable cdr_mysql \
--disable BUILD_NATIVE \
--enable codec_opus_open_source \
+ --enable chan_alsa \
menuselect.makeopts
# build
@@ -187,9 +207,6 @@ package() {
chown -R asterisk:asterisk "$pkgdir"/var/*/asterisk
chown -R asterisk:asterisk "$pkgdir"/etc/asterisk
chmod -R u=rwX,g=rX,o= "$pkgdir"/etc/asterisk
-
- # let alpine-baselayout set permissions of /tmp
- rm -r "$pkgdir"/tmp
}
dev() {
@@ -207,9 +224,7 @@ tds() { amove usr/lib/asterisk/modules/*_tds*; }
fax() { amove usr/lib/asterisk/modules/*_fax*; }
mobile() { amove usr/lib/asterisk/modules/*_mobile*; }
_curl() { amove usr/lib/asterisk/modules/*_curl*; }
-cdr_mysql() { amove usr/lib/asterisk/modules/*cdr_mysql*; }
srtp() { amove usr/lib/asterisk/modules/*_srtp*; }
-dahdi() { amove usr/lib/asterisk/modules/*_dahdi*; }
speex() { amove usr/lib/asterisk/modules/*_speex*; }
opus() { amove usr/lib/asterisk/modules/codec_opus_open_source.so; }
alsa() { amove usr/lib/asterisk/modules/*_alsa*; }
@@ -240,13 +255,14 @@ sound_en() {
}
sha512sums="
-6b33949edb26b8dec5c4c79fe07f4fe3c82a83014944b142ffe5cdf9e626a7240e65c31f9215136ab964b14e077829c4ae99e1b0c2067e8b8ac016f628281e06 asterisk-18.11.2.tar.gz
+ff2d6ddd5b6031b6e4fcb15c82149c3272031b617bf5bca87af1d085464fcd9af6bd373e9431077ce58a558b50c6b2c9cd4d94e739ecc312371cd605e4746a84 asterisk-20.5.2.tar.gz
aacef3f4796fb1abd33266998b53909cb4b36e7cc5ad2f7bac68bdc43e9a9072d9a4e2e7e681bddfa31f3d04575eb248afe6ea95da780c67e4829c1e22adfe1b asterisk-addon-mp3-r201.patch.gz
69d82b878728f99b7bf7e862025cbc01aa5b6b9332a5372059ea89a788c66fd351f1103989b3573a7a4ba9ff533f3ee2ff5d88de938440e05d6246e41a882306 asterisk-13.7-90e8780faccc79e68c07775c6ab2fe1ffaccfa08.tar.gz
771237ba6d42ab62d914f2702234b23fd0bc8c22f2aa33b0e745c9170163c8046f6d48ecb299faab3d6fb397f1aa046421083c3cc88510c9779861c522f357dd 10-musl-mutex-init.patch
0fae11b42894ab3d405bc50e9275b9084712b482fbf9b4259ea938667fc5cbe413655f3ff83da0f607151bb2b6e49c2f741b5ada6944dbb478f076ef8d86380a 20-musl-astmm-fix.patch
-616de74bdd3c4a6e899128c73e31f5ff219095d2afe321f85a51f518ec2e9dac9b63396eed8e2568c295f1beb90f9a506c72d28211a973b35185bfffd24af37e 30-asterisk-mariadb.patch
ba33f11169284f190b7dabab1da7d2751cb65d7976408db635a892fa17d7552e1660350017e7aada3464ecc7d9d6e99d6ad76d66c0036de062a386cffbc948e6 40-asterisk-cdefs.patch
+8c7dd38b7317642d3bbd7e90d8bd57f1e7b57ec57955634eebf71bb373c0d418ea3b42a2a248f625a3d3aaad3648f43e27903f5e5a92733c7a2f03de1a87f1d1 41-asterisk-ALLPERMS.patch
+90c8a777108f9d974917d57600aa1d154412415b1085b55ca2c0230aa3e566c35cdd82003e946a348c4f69229dbf9b120983bd4d4eaa4f65a491a0fc11ba84e8 gethostbyname_r.patch
0044c5db468ec8f2385d18d476f89976f6d036448583a4ef8017ce7a6f8f72105337e6b20037ffe47f561d2877fc9c86720aef23ab037df89b36dc140a5924c4 asterisk.initd
ab6b6f08ff43268cbb1abb7ed7d678949991ba495682a644bbaeb017d6adbff0a43297905fd73ae8db1786a28d5b5904f1bc253209a0e388c8a27f26c6ce14ed asterisk.confd
449b5808d90c813c23432274fba47e53227e3a924a55719d2f9e5a90fd2dfb33660a5c85c7e8f11fbb1cd93387e5c68329ed5583f7a64c2451fadad62a9f87dd asterisk.logrotate
diff --git a/main/asterisk/gethostbyname_r.patch b/main/asterisk/gethostbyname_r.patch
new file mode 100644
index 00000000000..c8cd47335bb
--- /dev/null
+++ b/main/asterisk/gethostbyname_r.patch
@@ -0,0 +1,15 @@
+we do have this function- but the autoconf doesn't detect it properly. work
+around a static/non-static mixed declaration by making it match the headers
+diff --git a/main/utils.c b/main/utils.c
+index 6111b86..f989cca 100644
+--- a/main/utils.c
++++ b/main/utils.c
+@@ -96,7 +96,7 @@ AST_MUTEX_DEFINE_STATIC(__mutex);
+ routine is derived from code originally written and placed in the public
+ domain by Enzo Michelangeli <em@em.no-ip.com> */
+
+-static int gethostbyname_r (const char *name, struct hostent *ret, char *buf,
++int gethostbyname_r (const char *name, struct hostent *ret, char *buf,
+ size_t buflen, struct hostent **result,
+ int *h_errnop)
+ {
diff --git a/main/at-spi2-atk/APKBUILD b/main/at-spi2-atk/APKBUILD
deleted file mode 100644
index 480186c24df..00000000000
--- a/main/at-spi2-atk/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=at-spi2-atk
-pkgver=2.38.0
-pkgrel=0
-pkgdesc="A GTK+ module that bridges ATK to D-Bus at-spi"
-url="https://www.freedesktop.org/wiki/Accessibility/AT-SPI2/"
-arch="all"
-options="!check" # Requires dbus daemon running.
-license="LGPL-2.0-or-later"
-depends_dev="atk-dev"
-makedepends="$depends_dev dbus-dev glib-dev at-spi2-core-dev meson libxml2-dev"
-checkdepends="dbus"
-subpackages="$pkgname-dev"
-source="https://download.gnome.org/sources/at-spi2-atk/${pkgver%.*}/at-spi2-atk-$pkgver.tar.xz"
-
-build() {
- abuild-meson . output
- meson compile ${JOBS:+-j ${JOBS}} -C output
-}
-
-check() {
- meson test --no-rebuild -v -C output
-}
-
-package() {
- DESTDIR="$pkgdir" meson install --no-rebuild -C output
-}
-
-sha512sums="2f40ecbc55b0fbaa57ade952a75583bc8fbfde234cce9248489e9ae06e0597d98c2f4c77d8279758dec29da97e06cde5708d30a1238d91bebd023b2320f38528 at-spi2-atk-2.38.0.tar.xz"
diff --git a/main/at-spi2-core/APKBUILD b/main/at-spi2-core/APKBUILD
index 6e7e7a26fb7..01a49a7aa2e 100644
--- a/main/at-spi2-core/APKBUILD
+++ b/main/at-spi2-core/APKBUILD
@@ -1,25 +1,43 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=at-spi2-core
-pkgver=2.44.1
+pkgver=2.52.0
pkgrel=0
pkgdesc="Protocol definitions and daemon for D-Bus at-spi"
url="https://www.freedesktop.org/wiki/Accessibility/AT-SPI2/"
arch="all"
options="!check" # Requires running dbus daemon.
-license="LGPL-2.0-or-later"
-makedepends="libxtst-dev dbus-dev glib-dev gobject-introspection-dev gtk-doc meson"
-subpackages="$pkgname-dbg $pkgname-dev $pkgname-lang $pkgname-doc"
+license="LGPL-2.1-or-later"
+makedepends="
+ dbus-dev
+ glib-dev
+ gobject-introspection-dev
+ gtk-doc
+ libxml2-dev
+ libxtst-dev
+ meson
+ "
+subpackages="
+ $pkgname-dbg
+ $pkgname-dev
+ $pkgname-lang
+ libatk-1.0:libatk
+ libatk-bridge-2.0:libatk_bridge
+ "
source="https://download.gnome.org/sources/at-spi2-core/${pkgver%.*}/at-spi2-core-$pkgver.tar.xz"
+# both were merged into this
+replaces="atk at-spi2-atk"
+
build() {
abuild-meson \
- -Dx11=yes \
- -Dintrospection=yes \
- -Ddocs=true \
+ -Db_lto=true \
+ -Dx11=enabled \
+ -Dintrospection=enabled \
+ -Ddocs=false \
-Ddbus_daemon=/usr/bin/dbus-daemon \
. build
- meson compile ${JOBS:+-j ${JOBS}} -C build
+ meson compile -C build
}
package() {
@@ -27,6 +45,26 @@ package() {
rm -rf "$pkgdir"/usr/lib/systemd
}
+dev() {
+ default_dev
+ replaces="atk-dev at-spi2-atk-dev"
+}
+
+libatk() {
+ pkgdesc="ATK library accessibility interfaces (1.0)"
+ amove \
+ usr/lib/libatk-1.0* \
+ usr/lib/girepository-1.0/Atk-1.0.typelib
+}
+
+libatk_bridge() {
+ pkgdesc="GTK+2.0 module that bridges ATK to D-Bus at-spi"
+ amove \
+ usr/lib/gnome-settings-daemon-3.0 \
+ usr/lib/gtk-2.0 \
+ usr/lib/libatk-bridge-2.0*
+}
+
sha512sums="
-8d85df75f886c4a19d829d14e5a9412b607b9cbe2d1b7ecb95b4082602f0624e90747fe955f96d378c3a52bc0e732074b97008bb34e6acc2722c7056b2c0504e at-spi2-core-2.44.1.tar.xz
+0482cae97cf5e2295ab56f6ae83db9e1047813a1c3c2b6cd6012f95dfabec1f7a93d0045a1a7c3fabb7a389f71dc43f797b2ad9242e97ddf565cf63948ae146b at-spi2-core-2.52.0.tar.xz
"
diff --git a/main/atf/APKBUILD b/main/atf/APKBUILD
index f0d90dd3e52..6dcc27901e3 100644
--- a/main/atf/APKBUILD
+++ b/main/atf/APKBUILD
@@ -1,14 +1,14 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=atf
pkgver=0.21
-pkgrel=2
+pkgrel=7
pkgdesc="libraries to write tests in C, C++ and shell"
-url="https://github.com/jmmv/atf"
+url="https://github.com/freebsd/atf"
arch="all"
license="BSD-2-Clause AND BSD-3-Clause"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
-source="https://github.com/jmmv/atf/releases/download/atf-$pkgver/atf-$pkgver.tar.gz"
+source="https://github.com/freebsd/atf/releases/download/atf-$pkgver/atf-$pkgver.tar.gz"
prepare() {
default_prepare
@@ -16,7 +16,7 @@ prepare() {
}
build() {
- ./configure \
+ ATF_SHELL=/bin/sh ./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
diff --git a/main/atk/APKBUILD b/main/atk/APKBUILD
deleted file mode 100644
index dd8c681811e..00000000000
--- a/main/atk/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=atk
-pkgver=2.38.0
-pkgrel=0
-pkgdesc="A library providing a set of interfaces for accessibility"
-url="https://www.gtk.org/"
-arch="all"
-license="LGPL-2.0-or-later"
-makedepends="glib-dev gobject-introspection-dev musl-utils meson gtk-doc"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-source="https://download.gnome.org/sources/atk/${pkgver%.*}/atk-$pkgver.tar.xz"
-
-build() {
- abuild-meson \
- -Ddocs=true \
- output .
- meson compile ${JOBS:+-j ${JOBS}} -C output
-}
-
-check() {
- meson test --no-rebuild -v -C output
-}
-
-package() {
- DESTDIR="$pkgdir" meson install --no-rebuild -C output
-}
-
-sha512sums="
-dffd0a0814a9183027c38a985d86cb6544858e9e7d655843e153440467957d6bc1abd9c9479a57078aea018053410438a30a9befb7414dc79020b223cd2c774b atk-2.38.0.tar.xz
-"
diff --git a/main/atop/APKBUILD b/main/atop/APKBUILD
index 0915ff3967e..c2e6c242e08 100644
--- a/main/atop/APKBUILD
+++ b/main/atop/APKBUILD
@@ -1,27 +1,25 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=atop
-pkgver=2.7.1
-pkgrel=1
+pkgver=2.10.0
+pkgrel=0
pkgdesc="Resource-specific view of processes"
url="https://www.atoptool.nl/"
arch="all"
license="GPL-2.0-or-later"
-makedepends="zlib-dev ncurses-dev linux-headers"
+makedepends="glib-dev linux-headers ncurses-dev zlib-dev"
subpackages="$pkgname-doc $pkgname-openrc"
-source="https://www.atoptool.nl/download/atop-$pkgver.tar.gz
+source="$pkgname-$pkgver.tgz::https://www.atoptool.nl/download/atop-$pkgver.tar.gz
atop-daily-bb.patch
- atop-include-macros.patch
make-cron-background.patch
+ gcc13.patch
atop.initd
-"
-options="suid !check"
+ "
+options="!check"
prepare() {
default_prepare
- sed -i -e '/^CFLAGS/s: = -O : += :' \
- -e '/DEFPATH/d' \
- -e '/^LDFLAGS/s: = : += :' Makefile
+ sed -i -e '/DEFPATH/d' Makefile
cp "$srcdir"/atop.initd atop.init
chmod a+rx atop.init
@@ -42,9 +40,9 @@ package() {
}
sha512sums="
-f5013dbc25b86f07c9892555705bb3db2eeb949478f53e6e5545308b0c7c173c4c7a8ed0eae1f173e075210f81fceee09d7a9d90de76c4f011e38ad4a76b780b atop-2.7.1.tar.gz
+72a9307ed0cfa9c0157c81e8acbb4850ae339b50481ce2e1b828cad4b3354bfc8f56866c9c4df72ea34941359719d088f7936182d1478a6ac8f4e1bdf4bee7f4 atop-2.10.0.tgz
664225450074962aac0e13484c9b2feaf08620bbe1e0f9c5dc1b02f1ecd315224cd04df53134f2d107210fc9223a64d8885ae70d33d0663c2335fa6d46f6ddfd atop-daily-bb.patch
-f30c9e6051332af8c8cafcd881f89a0e2d2a8e1d84eee8ac0c8c6b58f3ae3431fcf9c40dea6d03e271f8969802de449d33b4323c13045bdb38a539732c81a8b6 atop-include-macros.patch
e563894eceadf63ff153714829218b8f78dd21a129b90817960bdb4452768f41ed884dc9967f94b979e42f04d6434fcbd423bcf1651976a5ad60c34b206ce7e9 make-cron-background.patch
-172c9d367b936427ccbbbd1140c7808ec8ffe3194b3557ba024820dac8fa68c9919f7dc34d332e91283fde64d731db7bdbfee3c2d6caad3cd291e0f1c227cb03 atop.initd
+5727287f891ab9487a33b13754cd02468725aad5daef9e46aac507eef9871e8f9cfbfa546f47dbe25ee25e0924b773e5966f0d82a39947d0b8792e08260f1a7b gcc13.patch
+efbf36d933a8be90ebf2fd54a188cd1c9bc9b8d87755625aba85831a83f3a087dbe6e953f7ce36b38d9909b9ab747e0e9186ad0e85382d5b4e8690c9cfdc0d40 atop.initd
"
diff --git a/main/atop/atop-include-macros.patch b/main/atop/atop-include-macros.patch
deleted file mode 100644
index d535d1065b6..00000000000
--- a/main/atop/atop-include-macros.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/photosyst.c
-+++ b/photosyst.c
-@@ -152,6 +152,7 @@
- static const char rcsid[] = "$Id: photosyst.c,v 1.38 2010/11/19 07:40:40 gerlof Exp $";
-
- #include <sys/types.h>
-+#include <sys/sysmacros.h>
- #include <stdio.h>
- #include <string.h>
- #include <unistd.h>
diff --git a/main/atop/atop.initd b/main/atop/atop.initd
index e86d79be913..33bf977e1bd 100644
--- a/main/atop/atop.initd
+++ b/main/atop/atop.initd
@@ -3,11 +3,13 @@
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/sys-process/atop/files/atop.rc,v 1.1 2005/06/14 23:01:10 vapier Exp $
+pidfile="/var/run/atop.pid"
+
_daily=/etc/periodic/daily/atop
start(){
ebegin "Starting atop"
if [ -f "$_daily" ] ; then
- start-stop-daemon --start --quiet --exec "$_daily"
+ start-stop-daemon --start --quiet --pidfile "$pidfile" --exec "$_daily"
eend $?
else
eend 1 "/etc/cron.d/atop doesnt exist!"
@@ -16,6 +18,6 @@ start(){
stop(){
ebegin "Stopping atop"
- start-stop-daemon --stop --pidfile /var/run/atop.pid
+ start-stop-daemon --stop --pidfile "$pidfile"
eend $?
}
diff --git a/main/atop/gcc13.patch b/main/atop/gcc13.patch
new file mode 100644
index 00000000000..4287ef279c9
--- /dev/null
+++ b/main/atop/gcc13.patch
@@ -0,0 +1,12 @@
+diff --git a/drawbar.c b/drawbar.c
+index 659ed6a..a5a1cc5 100644
+--- a/drawbar.c
++++ b/drawbar.c
+@@ -110,6 +110,7 @@
+ #include <unistd.h>
+ #include <regex.h>
+ #include <sys/utsname.h>
++#include <time.h>
+
+ #include "atop.h"
+ #include "showgeneric.h"
diff --git a/main/attr/APKBUILD b/main/attr/APKBUILD
index 60ce2f2c18e..91cd96f17bb 100644
--- a/main/attr/APKBUILD
+++ b/main/attr/APKBUILD
@@ -1,15 +1,15 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=attr
-pkgver=2.5.1
-pkgrel=1
+pkgver=2.5.2
+pkgrel=0
pkgdesc="utilities for managing filesystem extended attributes"
options="checkroot !check" # attr.test fails with no error message
url="https://savannah.nongnu.org/projects/attr"
arch="all"
-license="GPL-2.0-or-later"
+license="LGPL-2.1-or-later"
checkdepends="perl"
-subpackages="$pkgname-dev $pkgname-doc lib$pkgname:libs"
+subpackages="$pkgname-static $pkgname-dev $pkgname-doc lib$pkgname:libs"
source="https://download.savannah.nongnu.org/releases/attr/attr-$pkgver.tar.gz"
build() {
@@ -30,8 +30,7 @@ build() {
--mandir=/usr/share/man \
--docdir=/usr/share/doc/attr \
--datadir=/usr/share \
- --disable-nls \
- --disable-static
+ --disable-nls
make
}
@@ -56,4 +55,6 @@ libs() {
default_libs
}
-sha512sums="8b4c043d61f8f3e0cd098e701181069f51117b85fd6ba18bfe9af77d894ea671232377d4793ffc822e9259ceee6ac71d75732eb93b2830c6cb5d0d918ba2d21b attr-2.5.1.tar.gz"
+sha512sums="
+7b8f210ab2233d82d282d36c10ac2f4b10e1ba9bd0f02e1f4e69b8f610cb3266bfac9796349b51b2f92fa6ef2c66c62f1a9c4ae18e202b00af3e251e3b469a24 attr-2.5.2.tar.gz
+"
diff --git a/main/audit/APKBUILD b/main/audit/APKBUILD
index d706e91a993..959f7006b6b 100644
--- a/main/audit/APKBUILD
+++ b/main/audit/APKBUILD
@@ -1,22 +1,31 @@
# Contributor: Dermot Bradley <dermot_bradley@yahoo.com>
-# Maintainer: Tycho Andersen <tycho@docker.com>
+# Contributor: Tycho Andersen <tycho@docker.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=audit
-pkgver=3.0.8
+pkgver=4.0.1
pkgrel=0
pkgdesc="User space tools for kernel auditing"
url="https://people.redhat.com/sgrubb/audit/"
arch="all"
-license="GPL-2.0-or-later"
+license="LGPL-2.1-or-later"
depends_dev="linux-headers"
makedepends="$depends_dev swig libcap-ng-dev python3"
install="$pkgname.pre-install"
-subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-libs $pkgname-openrc"
+subpackages="
+ $pkgname-static
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-libs
+ $pkgname-openrc
+ "
source="https://people.redhat.com/sgrubb/audit/audit-$pkgver.tar.gz
0003-all-get-rid-of-strndupa.patch
usr-paths.patch
musl.patch
+ test-uid-42.patch
auditd.initd
- auditd.confd"
+ auditd.confd
+ "
build() {
./configure \
@@ -39,21 +48,29 @@ check() {
package() {
make DESTDIR="$pkgdir" install
+
install -Dm755 "$srcdir"/auditd.initd "$pkgdir"/etc/init.d/auditd
install -Dm644 "$srcdir"/auditd.confd "$pkgdir"/etc/conf.d/auditd
+
+ cd "$pkgdir"
+ rm -r usr/lib/systemd/system \
+ usr/libexec/initscripts/legacy-actions/auditd
+ rmdir -vp --ignore-fail-on-non-empty usr/lib/systemd \
+ usr/libexec/initscripts/legacy-actions
}
static() {
pkgdesc="Static libaudit libraries"
- mkdir -p "$subpkgdir"/usr/lib/
- mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib/
+
+ amove usr/lib/*.a
}
sha512sums="
-8379bf425d68381d182300e628e42de8460d2f3e15b2395e10880f94b9989656852a50a9bece75b632ec8a04c40c9e666ff4c9d6b25ace3a8f50d2011506afab audit-3.0.8.tar.gz
+7fbc426d0ddea340a36ceab52ac090e8e3dfb3450ebf50b478324a097f19ab4bb2cf78a2532644acb17e6114b59b8fda718affda9da62fb84181e3abf76039df audit-4.0.1.tar.gz
f3f2c4ee745e99877c981d889c5cbb0379d073a9b7634c1480ae603a21a13045f9978b51f8cb53c8d0ba414d249bb859af7bca7e302c464b3fc3c6463ecca762 0003-all-get-rid-of-strndupa.patch
90c7d213a0b4ef27bf643e046dd2b3c5909706c62fba24ef34ecb32ff07b73fda13ed04c616a7cf8148115fc977aa1096b61e717abd5bd32f72f7bb4ac07999f usr-paths.patch
-a347c45cb1cd3c93ece5352218f1e7bc38938f3cbaf060158e4df40e9f027afbc3c6a3651f25e26e45ab9f2c96af2181d2638b09ed747a4348d0fc88af798798 musl.patch
+68e49b5056197b555dc95eeb7ee7f26b3fe9a7b2d38ad5c5d788c8bd90c5f410a2001ce8513ab3ebb663a58b0999a5fab00c9d754cb09bd0559852f14d90b722 musl.patch
+a8379c26553f524a4684ee660fe1e3422d720080f137ac9ebc17873cf90d13b6b81a5fde2d9b076ee32a2c1115240146bc12daca9a22ec53e7986c7454278794 test-uid-42.patch
b3d7ceba02b6b4406222c3b142fcfdf2b612dc52eebc490cfd121d696e4ef7c6cc5e27813d67937c464ed4c3cd283de9ccfcb75e63405a447523fa4641e79da3 auditd.initd
69d8777772ded7a8c0db2bcf84961b121bb355fa0d4ba0e14e311f8a8bfe665cbd2b7ac632d73477f9dfa9a6eec357a7ed458fe9b3e7b5ede75b166f3f092ab7 auditd.confd
"
diff --git a/main/audit/musl.patch b/main/audit/musl.patch
index c96ce65350d..9db71cfa198 100644
--- a/main/audit/musl.patch
+++ b/main/audit/musl.patch
@@ -1,6 +1,6 @@
--- a/auparse/auparse.h
+++ b/auparse/auparse.h
-@@ -51,7 +51,7 @@
+@@ -55,7 +55,7 @@
void auparse_destroy(auparse_state_t *au);
void auparse_destroy_ext(auparse_state_t *au, auparse_destroy_what_t what);
auparse_state_t *auparse_init(ausource_t source, const void *b)
@@ -9,3 +9,38 @@
int auparse_new_buffer(auparse_state_t *au, const char *data, size_t data_len)
__attr_access ((__read_only__, 2, 3));
int auparse_feed(auparse_state_t *au, const char *data, size_t data_len)
+--- a/audisp/plugins/remote/queue.c
++++ b/audisp/plugins/remote/queue.c
+@@ -49,10 +49,8 @@
+ };
+
+ /* Local Declarations */
+-static int full_pread(int fd, void *buf, size_t size, off_t offset)
+- __attr_access ((__write_only__, 2, 3));
+-static int full_pwrite(int fd, const void *buf, size_t size, off_t offset)
+- __attr_access ((__read_only__, 2, 3));
++static int full_pread(int fd, void *buf, size_t size, off_t offset);
++static int full_pwrite(int fd, const void *buf, size_t size, off_t offset);
+
+ /* Compile-time expression verification */
+ #define verify(E) do { \
+--- a/audisp/plugins/remote/queue.h
++++ b/audisp/plugins/remote/queue.h
+@@ -53,15 +53,14 @@
+ * On error, return NULL and set errno. */
+ struct queue *q_open(int q_flags, const char *path, size_t num_entries,
+ size_t entry_size)
+- __attribute_malloc__ __attr_dealloc (q_close, 1) __wur;
++ __attribute__((__malloc__));
+
+ /* Add DATA to tail of Q. Return 0 on success, -1 on error and set errno. */
+ int q_append(struct queue *q, const char *data);
+
+ /* Peek at head of Q, storing it into BUF of SIZE. Return 1 if an entry
+ * exists, 0 if queue is empty. On error, return -1 and set errno. */
+-int q_peek(struct queue *q, char *buf, size_t size)
+- __attr_access ((__write_only__, 2, 3));
++int q_peek(struct queue *q, char *buf, size_t size);
+
+ /* Drop head of Q and return 0. On error, return -1 and set errno. */
+ int q_drop_head(struct queue *q);
diff --git a/main/audit/test-uid-42.patch b/main/audit/test-uid-42.patch
new file mode 100644
index 00000000000..f1d096451ef
--- /dev/null
+++ b/main/audit/test-uid-42.patch
@@ -0,0 +1,76 @@
+uid 42 is not gdm on Alpine
+
+--- a/auparse/test/auparse_test.ref
++++ b/auparse/test/auparse_test.ref
+@@ -188,7 +188,7 @@
+ uid=0 (root)
+ subj=system_u:system_r:init_t:s0 (system_u:system_r:init_t:s0)
+ old-auid=4294967295 (unset)
+- auid=42 (gdm)
++ auid=42 (unknown(42))
+ tty=(none) ((none))
+ old-ses=4294967295 (4294967295)
+ ses=1 (1)
+@@ -209,7 +209,7 @@
+ items=0 (0)
+ ppid=1 (1)
+ pid=2288 (2288)
+- auid=42 (gdm)
++ auid=42 (unknown(42))
+ uid=0 (root)
+ gid=0 (root)
+ euid=0 (root)
+@@ -389,7 +389,7 @@
+ uid=0 (root)
+ subj=system_u:system_r:init_t:s0 (system_u:system_r:init_t:s0)
+ old-auid=4294967295 (unset)
+- auid=42 (gdm)
++ auid=42 (unknown(42))
+ tty=(none) ((none))
+ old-ses=4294967295 (4294967295)
+ ses=1 (1)
+@@ -410,7 +410,7 @@
+ items=0 (0)
+ ppid=1 (1)
+ pid=2288 (2288)
+- auid=42 (gdm)
++ auid=42 (unknown(42))
+ uid=0 (root)
+ gid=0 (root)
+ euid=0 (root)
+@@ -587,7 +587,7 @@
+ uid=0 (root)
+ subj=system_u:system_r:init_t:s0 (system_u:system_r:init_t:s0)
+ old-auid=4294967295 (unset)
+- auid=42 (gdm)
++ auid=42 (unknown(42))
+ tty=(none) ((none))
+ old-ses=4294967295 (4294967295)
+ ses=1 (1)
+@@ -608,7 +608,7 @@
+ items=0 (0)
+ ppid=1 (1)
+ pid=2288 (2288)
+- auid=42 (gdm)
++ auid=42 (unknown(42))
+ uid=0 (root)
+ gid=0 (root)
+ euid=0 (root)
+@@ -874,7 +874,7 @@
+ uid=0 (root)
+ subj=system_u:system_r:init_t:s0 (system_u:system_r:init_t:s0)
+ old-auid=4294967295 (unset)
+- auid=42 (gdm)
++ auid=42 (unknown(42))
+ tty=(none) ((none))
+ old-ses=4294967295 (4294967295)
+ ses=1 (1)
+@@ -895,7 +895,7 @@
+ items=0 (0)
+ ppid=1 (1)
+ pid=2288 (2288)
+- auid=42 (gdm)
++ auid=42 (unknown(42))
+ uid=0 (root)
+ gid=0 (root)
+ euid=0 (root)
diff --git a/main/augeas/APKBUILD b/main/augeas/APKBUILD
index 85803b78033..aae4701c32c 100644
--- a/main/augeas/APKBUILD
+++ b/main/augeas/APKBUILD
@@ -1,15 +1,16 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=augeas
pkgver=1.12.0
-pkgrel=0
+pkgrel=6
pkgdesc="A configuration editing tool"
url="http://augeas.net"
arch="all"
-license="LGPL-2.0-or-later"
+license="LGPL-2.1-or-later"
makedepends="autoconf automake libxml2-dev readline-dev libtool"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-tests::noarch $pkgname-libs"
source="http://download.augeas.net/augeas-$pkgver.tar.gz
fix-test.patch
+ xsi-strerror.patch
acf.aug
awall.aug
"
@@ -75,7 +76,10 @@ static() {
mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib/
}
-sha512sums="4f61d4abbf338e915dfae212560d39792674bc757f05f500afa80c6170abc214ffb99cab2cf5bbd1c2338d11a6909e5fc3ff7112a2246fca69f7b39ac283da40 augeas-1.12.0.tar.gz
+sha512sums="
+4f61d4abbf338e915dfae212560d39792674bc757f05f500afa80c6170abc214ffb99cab2cf5bbd1c2338d11a6909e5fc3ff7112a2246fca69f7b39ac283da40 augeas-1.12.0.tar.gz
9768878b2f8710436ef1eba7868c22b5eff1d2d549434bf76aced72ebdb4af4f769ea638dedf42ac9b617aaa53d1a767ed6b18868dd0bb3cf72cb3889f6d933a fix-test.patch
+3d849cc223beb2a6e39f0082cb9fb8ca9f0683a91899e86c0e41672a7bc5691d156d1cb43cb55f4be29f56376ae0a54e48d61624c74d7a2d52beaffaa998c501 xsi-strerror.patch
74d728abdf4d3eebdeb3823c1d2588c214fd52734c8855fe3ddbfb6465d31c88d093df356e42effdd3dbdff1a62c52894c7aa840bd6ea8df4995c4f3aa53e919 acf.aug
-fe83e70ddeced87fea4c4dbdfb90b7497bc5fd01b6b097f0f49c52894b4dc1d93cf217ae7aa98abeaba0a9f8e8e18a1d426b6c203b318afde9cd5164cbe604b1 awall.aug"
+fe83e70ddeced87fea4c4dbdfb90b7497bc5fd01b6b097f0f49c52894b4dc1d93cf217ae7aa98abeaba0a9f8e8e18a1d426b6c203b318afde9cd5164cbe604b1 awall.aug
+"
diff --git a/main/augeas/xsi-strerror.patch b/main/augeas/xsi-strerror.patch
new file mode 100644
index 00000000000..bea49b695b4
--- /dev/null
+++ b/main/augeas/xsi-strerror.patch
@@ -0,0 +1,16 @@
+use_gnu is set with gnu source and for other things,
+so force the xsi fallback
+--
+diff --git a/src/internal.c b/src/internal.c
+index ef83b71..5fae2e4 100644
+--- a/src/internal.c
++++ b/src/internal.c
+@@ -431,7 +431,7 @@ char *cleanpath(char *path) {
+
+ const char *xstrerror(int errnum, char *buf, size_t len) {
+ #ifdef HAVE_STRERROR_R
+-# ifdef __USE_GNU
++# if 0
+ /* Annoying linux specific API contract */
+ return strerror_r(errnum, buf, len);
+ # else
diff --git a/main/aumix/APKBUILD b/main/aumix/APKBUILD
index 5111a26cca2..7579e7f38f4 100644
--- a/main/aumix/APKBUILD
+++ b/main/aumix/APKBUILD
@@ -1,17 +1,18 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=aumix
pkgver=2.9.1
-pkgrel=8
+pkgrel=10
pkgdesc="color text mode sound mixer"
url="https://sourceforge.net/projects/aumix/"
arch="all"
license="GPL-2.0-or-later"
makedepends="ncurses-dev linux-headers"
-subpackages="$pkgname-doc"
+subpackages="$pkgname-doc $pkgname-openrc"
source="https://downloads.sourceforge.net/aumix/$pkgver/aumix-$pkgver.tar.bz2
gcc-10.patch
aumix.initd
"
+options="!check"
prepare() {
default_prepare
diff --git a/main/autoconf-archive/APKBUILD b/main/autoconf-archive/APKBUILD
index 43f4159b1e9..ea1f02b4f7a 100644
--- a/main/autoconf-archive/APKBUILD
+++ b/main/autoconf-archive/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Roberto Oliveira <robertoguimaraes8@gmail.com>
pkgname=autoconf-archive
-pkgver=2022.02.11
+pkgver=2023.02.20
pkgrel=0
pkgdesc="Collection of re-usable GNU Autoconf macros"
url="https://www.gnu.org/software/autoconf-archive"
@@ -28,5 +28,5 @@ package() {
}
sha512sums="
-243e06a356ea2c0fddc527febd4241da49fe4c11fb64b548873744a54e079860739d7a1da842833b99540acde3f6a2ebfddc41897306cc2e61e2c6037a7d22ff autoconf-archive-2022.02.11.tar.xz
+a744f5aa0c1a813b81ad1528aebf7511bde7f470f34626d2057ed6664127120182e031fec5d22027d4a204544266135f202b8ef453bff70a3b0315c506c82528 autoconf-archive-2023.02.20.tar.xz
"
diff --git a/main/autoconf/APKBUILD b/main/autoconf/APKBUILD
index c7fc2f51215..0d0bc977c41 100644
--- a/main/autoconf/APKBUILD
+++ b/main/autoconf/APKBUILD
@@ -1,10 +1,10 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=autoconf
-pkgver=2.71
+pkgver=2.72
pkgrel=0
pkgdesc="GNU tool for automatically configuring source code"
arch="noarch"
-license="GPL-2.0-or-later"
+license="GPL-3.0-or-later WITH Autoconf-exception-3.0"
url="https://www.gnu.org/software/autoconf"
depends="m4 perl"
subpackages="$pkgname-doc"
@@ -26,8 +26,10 @@ check() {
package() {
make DESTDIR="$pkgdir" install
rm -f "$pkgdir"/usr/share/info/dir
- # conflict with bintuils
+ # conflict with binutils
rm -f "$pkgdir"/usr/share/info/standards.info
}
-sha512sums="2bc5331f9807da8754b2ee623a30299cc0d103d6f98068a4c22263aab67ff148b7ad3a1646bd274e604bc08a8ef0ac2601e6422e641ad0cfab2222d60a58c5a8 autoconf-2.71.tar.gz"
+sha512sums="
+3f71d459e2127ef2c98b37f11f5284f0c92318ad8d31c5b6034bed370adfe9f3d0f7a12f87e2efced06c11e2a159de4d4a292b751104e83daf11342f25ba9721 autoconf-2.72.tar.gz
+"
diff --git a/main/automake/APKBUILD b/main/automake/APKBUILD
index 31ab53d03c0..e12a3bccd4a 100644
--- a/main/automake/APKBUILD
+++ b/main/automake/APKBUILD
@@ -1,15 +1,16 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=automake
pkgver=1.16.5
-pkgrel=0
+pkgrel=2
pkgdesc="GNU tool for automatically creating Makefiles"
url="https://www.gnu.org/software/automake"
arch="noarch"
-license="GPL-2.0-or-later MIT Public-Domain"
+license="GPL-2.0-or-later"
depends="perl"
makedepends="autoconf"
subpackages="$pkgname-doc"
source="https://ftp.gnu.org/gnu/automake/automake-$pkgver.tar.xz
+ $pkgname-python3.10.patch::https://github.com/autotools-mirror/automake/commit/930a9a73f4bb776ec334eff4cf6e182802841daa.patch
"
# many tests have bashisms
@@ -33,4 +34,5 @@ package() {
sha512sums="
3084ae543aa3fb5a05104ffb2e66cfa9a53080f2343c44809707fd648516869511500dba50dae67ff10f92a1bf3b5a92b2a0fa01cda30adb69b9da03994d9d88 automake-1.16.5.tar.xz
+cd22baa12751be72b35a926127c85d793d1ccf69c48d4d0911b2cbd2b9f1249d6eecae4f90be60847a7880861abf59cc10b8846367885e1c6aadc4dd2d0219a0 automake-python3.10.patch
"
diff --git a/main/avahi-ui/APKBUILD b/main/avahi-ui/APKBUILD
index 7011a3c558f..365ff88fcc2 100644
--- a/main/avahi-ui/APKBUILD
+++ b/main/avahi-ui/APKBUILD
@@ -1,17 +1,17 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=avahi-ui
pkgver=0.8
-pkgrel=2
+pkgrel=8
pkgdesc="Gtk user interface library for Avahi"
url="https://www.avahi.org/"
arch="all"
-license="LGPL-2.0-or-later"
+license="LGPL-2.1-or-later"
depends_dev="gdbm-dev"
-makedepends="$depends_dev py3-gobject3-dev py3-dbus-dev intltool libevent-dev
+makedepends="$depends_dev py3-gobject3-dev py3-dbus-dev libevent-dev
gobject-introspection-dev expat-dev libdaemon-dev glib-dev dbus-dev
libcap-dev python3-dev autoconf automake libtool avahi-dev gtk+3.0-dev"
subpackages="$pkgname-dev $pkgname-tools $pkgname-gtk3"
-source="http://www.avahi.org/download/avahi-$pkgver.tar.gz
+source="https://www.avahi.org/download/avahi-$pkgver.tar.gz
system-avahi.patch
gnome-nettool.png"
_subdirs="avahi-ui avahi-python"
@@ -86,6 +86,8 @@ gtk3() {
"$subpkgdir"/usr/lib/
}
-sha512sums="c6ba76feb6e92f70289f94b3bf12e5f5c66c11628ce0aeb3cadfb72c13a5d1a9bd56d71bdf3072627a76cd103b9b056d9131aa49ffe11fa334c24ab3b596c7de avahi-0.8.tar.gz
+sha512sums="
+c6ba76feb6e92f70289f94b3bf12e5f5c66c11628ce0aeb3cadfb72c13a5d1a9bd56d71bdf3072627a76cd103b9b056d9131aa49ffe11fa334c24ab3b596c7de avahi-0.8.tar.gz
99723e66889601044ac5ca919e79aa328083cb377bb3d270f3e8d2baee27505f967949f72faa0424756e5f18b1359fd7f7fb30636861d47455ff7b92ed48bcfa system-avahi.patch
-d8e92fcdd82759f8de536ebfa356fe208c27b2d998ce5bb51d585dffc163dc16228be4a7108644fe1a11defbe750244bc8105a430b1397297cdef4cb83ab0db5 gnome-nettool.png"
+261183cd4659b2c2fd4df53c109f310f62c726bbd590d158a270a0fe461167c6409460f811c5188435004a4da79b843505921465018a2e57c40c4bac84b3c096 gnome-nettool.png
+"
diff --git a/main/avahi-ui/gnome-nettool.png b/main/avahi-ui/gnome-nettool.png
index 227d0678a3a..1603bdafeef 100644
--- a/main/avahi-ui/gnome-nettool.png
+++ b/main/avahi-ui/gnome-nettool.png
Binary files differ
diff --git a/main/avahi/APKBUILD b/main/avahi/APKBUILD
index 2b0508dcea0..513042c6f34 100644
--- a/main/avahi/APKBUILD
+++ b/main/avahi/APKBUILD
@@ -1,32 +1,73 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=avahi
pkgver=0.8
-pkgrel=6
+pkgrel=17
pkgdesc="multicast/unicast DNS-SD framework"
url="https://www.avahi.org/"
arch="all"
license="LGPL-2.1-or-later"
pkgusers="avahi"
pkggroups="avahi"
+depends_openrc="dbus"
depends_dev="gdbm-dev"
-makedepends="$depends_dev
- intltool gobject-introspection-dev expat-dev
- libdaemon-dev glib-dev dbus-dev libcap-dev
- gettext-dev autoconf automake libtool
- libevent-dev"
+makedepends="
+ $depends_dev
+ autoconf
+ automake
+ dbus-dev
+ expat-dev
+ gettext-dev
+ glib-dev
+ gobject-introspection-dev
+ libcap-dev
+ libdaemon-dev
+ libevent-dev
+ libtool
+ py3-dbus
+ py3-gobject3-dev
+ py3-setuptools
+ python3-dev
+ python3-gdbm
+ xz
+ "
install="$pkgname.pre-install"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-tools $pkgname-glib
- $pkgname-libs $pkgname-compat-howl:howl
- $pkgname-compat-libdns_sd:lidns_sd $pkgname-lang
+subpackages="
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-tools
+ $pkgname-glib
+ $pkgname-libs
+ py3-avahi:py3
+ $pkgname-compat-howl:howl
+ $pkgname-compat-libdns_sd:lidns_sd
+ $pkgname-lang
+ $pkgname-openrc
"
source="https://github.com/lathiat/avahi/releases/download/v$pkgver/avahi-$pkgver.tar.gz
CVE-2021-3468.patch
- CVE-2021-36217.patch
+ CVE-2021-3502.patch
+ CVE-2023-1981.patch
+ CVE-2023-38469.patch
+ CVE-2023-38470.patch
+ CVE-2023-38471.patch
+ CVE-2023-38472.patch
+ CVE-2023-38473.patch
+ Fetch-build-db-from-upstream-git.patch
+ build-db-Use-the-same-database-format-that-the-C-code-exp.patch
"
# secfixes:
+# 0.8-r16:
+# - CVE-2023-38470
+# 0.8-r15:
+# - CVE-2023-38469
+# - CVE-2023-38471
+# 0.8-r14:
+# - CVE-2023-1981
+# - CVE-2023-38472
+# - CVE-2023-38473
# 0.8-r5:
-# - CVE-2021-36217
+# - CVE-2021-3502
# 0.8-r4:
# - CVE-2021-3468
# 0.7-r2:
@@ -61,7 +102,7 @@ build() {
--disable-xmltoman \
--enable-compat-libdns_sd \
--enable-compat-howl \
- --disable-python \
+ --enable-python \
--with-dbus-sys=/usr/share/dbus-1/system.d \
--with-distro="gentoo"
make
@@ -79,54 +120,70 @@ package() {
ln -s avahi-compat-howl.pc "$pkgdir"/usr/lib/pkgconfig/howl.pc
ln -s avahi-compat-libdns_sd.pc "$pkgdir"/usr/lib/pkgconfig/libdns_sd.pc
ln -s avahi-compat-libdns_sd/dns_sd.h "$pkgdir"/usr/include/
+
+ # XXX these are added since the python support, but are broken
+ rm -v "$pkgdir"/usr/bin/avahi-bookmarks
+ rm -v "$pkgdir"/usr/bin/avahi-discover
+ rm -v "$pkgdir"/usr/share/applications/avahi-discover.desktop
+ rmdir -p "$pkgdir"/usr/share/applications/ || true
+
+ # can't install tmpfs
+ rm -r "$pkgdir"/var/run
}
tools() {
pkgdesc="Command line tools for mDNS browsing and publishing"
- mkdir -p "$subpkgdir"/usr/bin
- cd "$pkgdir"/usr/bin
- mv avahi-browse* avahi-publish* avahi-resolve* avahi-set* \
- "$subpkgdir"/usr/bin/
+ amove \
+ usr/bin/avahi-browse* \
+ usr/bin/avahi-publish* \
+ usr/bin/avahi-resolve* \
+ usr/bin/avahi-set*
}
glib() {
pkgdesc="Glib libraries and GObject wrapper for avahi"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libavahi-glib.so.* \
- "$pkgdir"/usr/lib/libavahi-gobject.so.* \
- "$subpkgdir"/usr/lib/
+ amove usr/lib/libavahi-glib.so.* \
+ usr/lib/libavahi-gobject.so.*
}
libs() {
pkgdesc="Libraries for avahi run-time use"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libavahi-common.so.* \
- "$pkgdir"/usr/lib/libavahi-client.so.* \
- "$subpkgdir"/usr/lib/
+ amove usr/lib/libavahi-common.so.* \
+ usr/lib/libavahi-client.so.*
}
-
howl() {
pkgdesc="Libraries for howl compatibility"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libhowl.so.* \
- "$subpkgdir"/usr/lib/
+ amove usr/lib/libhowl.so.*
}
lidns_sd() {
pkgdesc="Libraries for Apple Bonjour mDNSResponder compatibility"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libdns_sd.so.* \
- "$subpkgdir"/usr/lib/
+ amove usr/lib/libdns_sd.so.*
+}
+
+py3() {
+ pkgdesc="Python Avahi module"
+ depends="py3-dbus python3"
+
+ amove usr/lib/python*
}
sha512sums="
c6ba76feb6e92f70289f94b3bf12e5f5c66c11628ce0aeb3cadfb72c13a5d1a9bd56d71bdf3072627a76cd103b9b056d9131aa49ffe11fa334c24ab3b596c7de avahi-0.8.tar.gz
743430a532b8ec246672cd0997b7831efc15c461cbfe0461faac5d6525293297efb7c06f759b2bcd71d1842ba165464fd334508534e6c247211d613061c49da5 CVE-2021-3468.patch
-9e4688ffd8e512c0f614fd24fff2a2a1c66e009069229a6f81dcd382edfff5a8635e0551533c7f9271973a87e62e199fdb34a5560dab27c0a328f531c94f757d CVE-2021-36217.patch
+9e4688ffd8e512c0f614fd24fff2a2a1c66e009069229a6f81dcd382edfff5a8635e0551533c7f9271973a87e62e199fdb34a5560dab27c0a328f531c94f757d CVE-2021-3502.patch
+6be9c7bdeb98828c55069b4570dd6ac87354ed59df6445683ed78a26e40fad194dbb745a5df32b0fc7abb9a393e655334a31833db996ccb39e71d8a801adea6a CVE-2023-1981.patch
+7ebaa7220c72c8bc16d34fad54dc4dd173541e5e97f066b53b8c6e9af01a5e910eab1db998d34708af86a92329c65aa3a398f16279a7204117afd84362a3100c CVE-2023-38469.patch
+ea593c570ea7ce133ef4e47a5557b4b1dccdd45bba87bd1e948409c7abdb394eeea2d2cda2bf2f5b720b2c3cf41aee2b6bb189b55b842077024aaf7947e1a3c6 CVE-2023-38470.patch
+b69d63a0490447e3aa2c9f0179d9b76d49fb5d9cce6b02459c1ef561379217c9157790938def9775527c1109e21e99970434eb56ca61337b2c3df1c5a79ab5a1 CVE-2023-38471.patch
+98e141a8f17303a235b926dda452f4b9671e11395ea70e4a7e2ea8c446fb52a84796de273fcc08c556c8b3895cf703b58e5ccc7dc15b3da4c28aa0f9ebaaa2b0 CVE-2023-38472.patch
+66f40c5ed8e771530c381c7c32ba47562b372b48a41af5aa3b972e350b77afac521934e2fc0d2122b1456f331920dd74bd9846d5efca39b9e3db7e47711e3695 CVE-2023-38473.patch
+302db5f4c8339b7f074aa4b2f2e8108e33e128db26f10a201a63bd09f9c2bde600929e586e00d7f7c448019eefbc3e97eb8b419079253f5f4fb60e477a577fa1 Fetch-build-db-from-upstream-git.patch
+e4e923dbaa0c729a8685b71f1487f337fd7c68b464b04643127a2f7a3a34b24f87869c9c185632229b25f350425ea979ddb329eda043548d55ae86f5c905dd11 build-db-Use-the-same-database-format-that-the-C-code-exp.patch
"
diff --git a/main/avahi/CVE-2021-36217.patch b/main/avahi/CVE-2021-3502.patch
index 7b0449a2e4e..7b0449a2e4e 100644
--- a/main/avahi/CVE-2021-36217.patch
+++ b/main/avahi/CVE-2021-3502.patch
diff --git a/main/avahi/CVE-2023-1981.patch b/main/avahi/CVE-2023-1981.patch
new file mode 100644
index 00000000000..64acceaf5f4
--- /dev/null
+++ b/main/avahi/CVE-2023-1981.patch
@@ -0,0 +1,56 @@
+From a2696da2f2c50ac43b6c4903f72290d5c3fa9f6f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
+Date: Thu, 17 Nov 2022 01:51:53 +0100
+Subject: [PATCH] Emit error if requested service is not found
+
+It currently just crashes instead of replying with error. Check return
+value and emit error instead of passing NULL pointer to reply.
+
+Fixes #375
+---
+ avahi-daemon/dbus-protocol.c | 20 ++++++++++++++------
+ 1 file changed, 14 insertions(+), 6 deletions(-)
+
+diff --git a/avahi-daemon/dbus-protocol.c b/avahi-daemon/dbus-protocol.c
+index 70d7687..406d0b4 100644
+--- a/avahi-daemon/dbus-protocol.c
++++ b/avahi-daemon/dbus-protocol.c
+@@ -375,10 +375,14 @@ static DBusHandlerResult dbus_get_alternative_host_name(DBusConnection *c, DBusM
+ }
+
+ t = avahi_alternative_host_name(n);
+- avahi_dbus_respond_string(c, m, t);
+- avahi_free(t);
++ if (t) {
++ avahi_dbus_respond_string(c, m, t);
++ avahi_free(t);
+
+- return DBUS_HANDLER_RESULT_HANDLED;
++ return DBUS_HANDLER_RESULT_HANDLED;
++ } else {
++ return avahi_dbus_respond_error(c, m, AVAHI_ERR_NOT_FOUND, "Hostname not found");
++ }
+ }
+
+ static DBusHandlerResult dbus_get_alternative_service_name(DBusConnection *c, DBusMessage *m, DBusError *error) {
+@@ -389,10 +393,14 @@ static DBusHandlerResult dbus_get_alternative_service_name(DBusConnection *c, DB
+ }
+
+ t = avahi_alternative_service_name(n);
+- avahi_dbus_respond_string(c, m, t);
+- avahi_free(t);
++ if (t) {
++ avahi_dbus_respond_string(c, m, t);
++ avahi_free(t);
+
+- return DBUS_HANDLER_RESULT_HANDLED;
++ return DBUS_HANDLER_RESULT_HANDLED;
++ } else {
++ return avahi_dbus_respond_error(c, m, AVAHI_ERR_NOT_FOUND, "Service not found");
++ }
+ }
+
+ static DBusHandlerResult dbus_create_new_entry_group(DBusConnection *c, DBusMessage *m, DBusError *error) {
+--
+2.42.0
+
diff --git a/main/avahi/CVE-2023-38469.patch b/main/avahi/CVE-2023-38469.patch
new file mode 100644
index 00000000000..aba8b491f9b
--- /dev/null
+++ b/main/avahi/CVE-2023-38469.patch
@@ -0,0 +1,44 @@
+From a337a1ba7d15853fb56deef1f464529af6e3a1cf Mon Sep 17 00:00:00 2001
+From: Evgeny Vereshchagin <evvers@ya.ru>
+Date: Mon, 23 Oct 2023 20:29:31 +0000
+Subject: [PATCH 1/2] core: reject overly long TXT resource records
+
+Closes https://github.com/lathiat/avahi/issues/455
+
+CVE-2023-38469
+---
+ avahi-core/rr.c | 9 ++++++++-
+ 1 file changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/avahi-core/rr.c b/avahi-core/rr.c
+index 2bb892445..9c04ebbdb 100644
+--- a/avahi-core/rr.c
++++ b/avahi-core/rr.c
+@@ -32,6 +32,7 @@
+ #include <avahi-common/malloc.h>
+ #include <avahi-common/defs.h>
+
++#include "dns.h"
+ #include "rr.h"
+ #include "log.h"
+ #include "util.h"
+@@ -689,11 +690,17 @@ int avahi_record_is_valid(AvahiRecord *r) {
+ case AVAHI_DNS_TYPE_TXT: {
+
+ AvahiStringList *strlst;
++ size_t used = 0;
+
+- for (strlst = r->data.txt.string_list; strlst; strlst = strlst->next)
++ for (strlst = r->data.txt.string_list; strlst; strlst = strlst->next) {
+ if (strlst->size > 255 || strlst->size <= 0)
+ return 0;
+
++ used += 1+strlst->size;
++ if (used > AVAHI_DNS_RDATA_MAX)
++ return 0;
++ }
++
+ return 1;
+ }
+ }
+
diff --git a/main/avahi/CVE-2023-38470.patch b/main/avahi/CVE-2023-38470.patch
new file mode 100644
index 00000000000..577cb1c1944
--- /dev/null
+++ b/main/avahi/CVE-2023-38470.patch
@@ -0,0 +1,55 @@
+From 94cb6489114636940ac683515417990b55b5d66c Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
+Date: Tue, 11 Apr 2023 15:29:59 +0200
+Subject: [PATCH] Ensure each label is at least one byte long
+
+The only allowed exception is single dot, where it should return empty
+string.
+
+Fixes #454.
+---
+ avahi-common/domain-test.c | 14 ++++++++++++++
+ avahi-common/domain.c | 2 +-
+ 2 files changed, 15 insertions(+), 1 deletion(-)
+
+diff --git a/avahi-common/domain-test.c b/avahi-common/domain-test.c
+index cf763ec..3acc1c1 100644
+--- a/avahi-common/domain-test.c
++++ b/avahi-common/domain-test.c
+@@ -45,6 +45,20 @@ int main(AVAHI_GCC_UNUSED int argc, AVAHI_GCC_UNUSED char *argv[]) {
+ printf("%s\n", s = avahi_normalize_name_strdup("fo\\\\o\\..f oo."));
+ avahi_free(s);
+
++ printf("%s\n", s = avahi_normalize_name_strdup("."));
++ avahi_free(s);
++
++ s = avahi_normalize_name_strdup(",.=.}.=.?-.}.=.?.?.}.}.?.?.?.z.?.?.}.}."
++ "}.?.?.?.r.=.=.}.=.?.}}.}.?.?.?.zM.=.=.?.?.}.}.?.?.}.}.}"
++ ".?.?.?.r.=.=.}.=.?.}}.}.?.?.?.zM.=.=.?.?.}.}.?.?.?.zM.?`"
++ "?.}.}.}.?.?.?.r.=.?.}.=.?.?.}.?.?.?.}.=.?.?.}??.}.}.?.?."
++ "?.z.?.?.}.}.}.?.?.?.r.=.=.}.=.?.}}.}.?.?.?.zM.?`?.}.}.}."
++ "??.?.zM.?`?.}.}.}.?.?.?.r.=.?.}.=.?.?.}.?.?.?.}.=.?.?.}?"
++ "?.}.}.?.?.?.z.?.?.}.}.}.?.?.?.r.=.=.}.=.?.}}.}.?.?.?.zM."
++ "?`?.}.}.}.?.?.?.r.=.=.?.?`.?.?}.}.}.?.?.?.r.=.?.}.=.?.?."
++ "}.?.?.?.}.=.?.?.}");
++ assert(s == NULL);
++
+ printf("%i\n", avahi_domain_equal("\\065aa bbb\\.\\046cc.cc\\\\.dee.fff.", "Aaa BBB\\.\\.cc.cc\\\\.dee.fff"));
+ printf("%i\n", avahi_domain_equal("A", "a"));
+
+diff --git a/avahi-common/domain.c b/avahi-common/domain.c
+index 3b1ab68..e66d241 100644
+--- a/avahi-common/domain.c
++++ b/avahi-common/domain.c
+@@ -201,7 +201,7 @@ char *avahi_normalize_name(const char *s, char *ret_s, size_t size) {
+ }
+
+ if (!empty) {
+- if (size < 1)
++ if (size < 2)
+ return NULL;
+
+ *(r++) = '.';
+--
+2.44.0
+
diff --git a/main/avahi/CVE-2023-38471.patch b/main/avahi/CVE-2023-38471.patch
new file mode 100644
index 00000000000..b7de51b4d91
--- /dev/null
+++ b/main/avahi/CVE-2023-38471.patch
@@ -0,0 +1,116 @@
+From d486bca7e7912c6a4b547a3c607db0d0d3124bbf Mon Sep 17 00:00:00 2001
+From: Michal Sekletar <msekleta@redhat.com>
+Date: Mon, 23 Oct 2023 13:38:35 +0200
+Subject: [PATCH] core: extract host name using avahi_unescape_label()
+
+Previously we could create invalid escape sequence when we split the
+string on dot. For example, from valid host name "foo\\.bar" we have
+created invalid name "foo\\" and tried to set that as the host name
+which crashed the daemon.
+
+Fixes #453
+
+CVE-2023-38471
+---
+ avahi-core/server.c | 27 +++++++++++++++++++++------
+ 1 file changed, 21 insertions(+), 6 deletions(-)
+
+diff --git a/avahi-core/server.c b/avahi-core/server.c
+index c32637af8..f6a21bb77 100644
+--- a/avahi-core/server.c
++++ b/avahi-core/server.c
+@@ -1295,7 +1295,11 @@ static void update_fqdn(AvahiServer *s) {
+ }
+
+ int avahi_server_set_host_name(AvahiServer *s, const char *host_name) {
+- char *hn = NULL;
++ char label_escaped[AVAHI_LABEL_MAX*4+1];
++ char label[AVAHI_LABEL_MAX];
++ char *hn = NULL, *h;
++ size_t len;
++
+ assert(s);
+
+ AVAHI_CHECK_VALIDITY(s, !host_name || avahi_is_valid_host_name(host_name), AVAHI_ERR_INVALID_HOST_NAME);
+@@ -1305,17 +1309,28 @@ int avahi_server_set_host_name(AvahiServer *s, const char *host_name) {
+ else
+ hn = avahi_normalize_name_strdup(host_name);
+
+- hn[strcspn(hn, ".")] = 0;
++ h = hn;
++ if (!avahi_unescape_label((const char **)&hn, label, sizeof(label))) {
++ avahi_free(h);
++ return AVAHI_ERR_INVALID_HOST_NAME;
++ }
++
++ avahi_free(h);
++
++ h = label_escaped;
++ len = sizeof(label_escaped);
++ if (!avahi_escape_label(label, strlen(label), &h, &len))
++ return AVAHI_ERR_INVALID_HOST_NAME;
+
+- if (avahi_domain_equal(s->host_name, hn) && s->state != AVAHI_SERVER_COLLISION) {
+- avahi_free(hn);
++ if (avahi_domain_equal(s->host_name, label_escaped) && s->state != AVAHI_SERVER_COLLISION)
+ return avahi_server_set_errno(s, AVAHI_ERR_NO_CHANGE);
+- }
+
+ withdraw_host_rrs(s);
+
+ avahi_free(s->host_name);
+- s->host_name = hn;
++ s->host_name = avahi_strdup(label_escaped);
++ if (!s->host_name)
++ return AVAHI_ERR_NO_MEMORY;
+
+ update_fqdn(s);
+
+From b675f70739f404342f7f78635d6e2dcd85a13460 Mon Sep 17 00:00:00 2001
+From: Evgeny Vereshchagin <evvers@ya.ru>
+Date: Tue, 24 Oct 2023 22:04:51 +0000
+Subject: [PATCH 2/2] core: return errors from avahi_server_set_host_name
+ properly
+
+It's a follow-up to 894f085f402e023a98cbb6f5a3d117bd88d93b09
+---
+ avahi-core/server.c | 9 ++++++---
+ 1 file changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/avahi-core/server.c b/avahi-core/server.c
+index f6a21bb77..84df6b5de 100644
+--- a/avahi-core/server.c
++++ b/avahi-core/server.c
+@@ -1309,10 +1309,13 @@ int avahi_server_set_host_name(AvahiServer *s, const char *host_name) {
+ else
+ hn = avahi_normalize_name_strdup(host_name);
+
++ if (!hn)
++ return avahi_server_set_errno(s, AVAHI_ERR_NO_MEMORY);
++
+ h = hn;
+ if (!avahi_unescape_label((const char **)&hn, label, sizeof(label))) {
+ avahi_free(h);
+- return AVAHI_ERR_INVALID_HOST_NAME;
++ return avahi_server_set_errno(s, AVAHI_ERR_INVALID_HOST_NAME);
+ }
+
+ avahi_free(h);
+@@ -1320,7 +1323,7 @@ int avahi_server_set_host_name(AvahiServer *s, const char *host_name) {
+ h = label_escaped;
+ len = sizeof(label_escaped);
+ if (!avahi_escape_label(label, strlen(label), &h, &len))
+- return AVAHI_ERR_INVALID_HOST_NAME;
++ return avahi_server_set_errno(s, AVAHI_ERR_INVALID_HOST_NAME);
+
+ if (avahi_domain_equal(s->host_name, label_escaped) && s->state != AVAHI_SERVER_COLLISION)
+ return avahi_server_set_errno(s, AVAHI_ERR_NO_CHANGE);
+@@ -1330,7 +1333,7 @@ int avahi_server_set_host_name(AvahiServer *s, const char *host_name) {
+ avahi_free(s->host_name);
+ s->host_name = avahi_strdup(label_escaped);
+ if (!s->host_name)
+- return AVAHI_ERR_NO_MEMORY;
++ return avahi_server_set_errno(s, AVAHI_ERR_NO_MEMORY);
+
+ update_fqdn(s);
+
diff --git a/main/avahi/CVE-2023-38472.patch b/main/avahi/CVE-2023-38472.patch
new file mode 100644
index 00000000000..775663c68c3
--- /dev/null
+++ b/main/avahi/CVE-2023-38472.patch
@@ -0,0 +1,43 @@
+From b024ae5749f4aeba03478e6391687c3c9c8dee40 Mon Sep 17 00:00:00 2001
+From: Michal Sekletar <msekleta@redhat.com>
+Date: Thu, 19 Oct 2023 17:36:44 +0200
+Subject: [PATCH] core: make sure there is rdata to process before parsing it
+
+Fixes #452
+
+CVE-2023-38472
+---
+ avahi-client/client-test.c | 3 +++
+ avahi-daemon/dbus-entry-group.c | 2 +-
+ 2 files changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/avahi-client/client-test.c b/avahi-client/client-test.c
+index b3366d8..ba97998 100644
+--- a/avahi-client/client-test.c
++++ b/avahi-client/client-test.c
+@@ -258,6 +258,9 @@ int main (AVAHI_GCC_UNUSED int argc, AVAHI_GCC_UNUSED char *argv[]) {
+ printf("%s\n", avahi_strerror(avahi_entry_group_add_service (group, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, 0, "Lathiat's Site", "_http._tcp", NULL, NULL, 80, "foo=bar", NULL)));
+ printf("add_record: %d\n", avahi_entry_group_add_record (group, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, 0, "TestX", 0x01, 0x10, 120, "\5booya", 6));
+
++ error = avahi_entry_group_add_record (group, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, 0, "TestX", 0x01, 0x10, 120, "", 0);
++ assert(error != AVAHI_OK);
++
+ avahi_entry_group_commit (group);
+
+ domain = avahi_domain_browser_new (avahi, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, NULL, AVAHI_DOMAIN_BROWSER_BROWSE, 0, avahi_domain_browser_callback, (char*) "omghai3u");
+diff --git a/avahi-daemon/dbus-entry-group.c b/avahi-daemon/dbus-entry-group.c
+index 4e879a5..aa23d4b 100644
+--- a/avahi-daemon/dbus-entry-group.c
++++ b/avahi-daemon/dbus-entry-group.c
+@@ -340,7 +340,7 @@ DBusHandlerResult avahi_dbus_msg_entry_group_impl(DBusConnection *c, DBusMessage
+ if (!(r = avahi_record_new_full (name, clazz, type, ttl)))
+ return avahi_dbus_respond_error(c, m, AVAHI_ERR_NO_MEMORY, NULL);
+
+- if (avahi_rdata_parse (r, rdata, size) < 0) {
++ if (!rdata || avahi_rdata_parse (r, rdata, size) < 0) {
+ avahi_record_unref (r);
+ return avahi_dbus_respond_error(c, m, AVAHI_ERR_INVALID_RDATA, NULL);
+ }
+--
+2.42.0
+
diff --git a/main/avahi/CVE-2023-38473.patch b/main/avahi/CVE-2023-38473.patch
new file mode 100644
index 00000000000..812da0b9450
--- /dev/null
+++ b/main/avahi/CVE-2023-38473.patch
@@ -0,0 +1,107 @@
+From b448c9f771bada14ae8de175695a9729f8646797 Mon Sep 17 00:00:00 2001
+From: Michal Sekletar <msekleta@redhat.com>
+Date: Wed, 11 Oct 2023 17:45:44 +0200
+Subject: [PATCH] common: derive alternative host name from its unescaped
+ version
+
+Normalization of input makes sure we don't have to deal with special
+cases like unescaped dot at the end of label.
+
+Fixes #451 #487
+CVE-2023-38473
+---
+ avahi-common/alternative-test.c | 3 +++
+ avahi-common/alternative.c | 27 +++++++++++++++++++--------
+ 2 files changed, 22 insertions(+), 8 deletions(-)
+
+diff --git a/avahi-common/alternative-test.c b/avahi-common/alternative-test.c
+index 9255435..681fc15 100644
+--- a/avahi-common/alternative-test.c
++++ b/avahi-common/alternative-test.c
+@@ -31,6 +31,9 @@ int main(AVAHI_GCC_UNUSED int argc, AVAHI_GCC_UNUSED char *argv[]) {
+ const char* const test_strings[] = {
+ "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
+ "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXüüüüüüü",
++ ").",
++ "\\.",
++ "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\\\\",
+ "gurke",
+ "-",
+ " #",
+diff --git a/avahi-common/alternative.c b/avahi-common/alternative.c
+index b3d39f0..a094e6d 100644
+--- a/avahi-common/alternative.c
++++ b/avahi-common/alternative.c
+@@ -49,15 +49,20 @@ static void drop_incomplete_utf8(char *c) {
+ }
+
+ char *avahi_alternative_host_name(const char *s) {
++ char label[AVAHI_LABEL_MAX], alternative[AVAHI_LABEL_MAX*4+1];
++ char *alt, *r, *ret;
+ const char *e;
+- char *r;
++ size_t len;
+
+ assert(s);
+
+ if (!avahi_is_valid_host_name(s))
+ return NULL;
+
+- if ((e = strrchr(s, '-'))) {
++ if (!avahi_unescape_label(&s, label, sizeof(label)))
++ return NULL;
++
++ if ((e = strrchr(label, '-'))) {
+ const char *p;
+
+ e++;
+@@ -74,19 +79,18 @@ char *avahi_alternative_host_name(const char *s) {
+
+ if (e) {
+ char *c, *m;
+- size_t l;
+ int n;
+
+ n = atoi(e)+1;
+ if (!(m = avahi_strdup_printf("%i", n)))
+ return NULL;
+
+- l = e-s-1;
++ len = e-label-1;
+
+- if (l >= AVAHI_LABEL_MAX-1-strlen(m)-1)
+- l = AVAHI_LABEL_MAX-1-strlen(m)-1;
++ if (len >= AVAHI_LABEL_MAX-1-strlen(m)-1)
++ len = AVAHI_LABEL_MAX-1-strlen(m)-1;
+
+- if (!(c = avahi_strndup(s, l))) {
++ if (!(c = avahi_strndup(label, len))) {
+ avahi_free(m);
+ return NULL;
+ }
+@@ -100,7 +104,7 @@ char *avahi_alternative_host_name(const char *s) {
+ } else {
+ char *c;
+
+- if (!(c = avahi_strndup(s, AVAHI_LABEL_MAX-1-2)))
++ if (!(c = avahi_strndup(label, AVAHI_LABEL_MAX-1-2)))
+ return NULL;
+
+ drop_incomplete_utf8(c);
+@@ -109,6 +113,13 @@ char *avahi_alternative_host_name(const char *s) {
+ avahi_free(c);
+ }
+
++ alt = alternative;
++ len = sizeof(alternative);
++ ret = avahi_escape_label(r, strlen(r), &alt, &len);
++
++ avahi_free(r);
++ r = avahi_strdup(ret);
++
+ assert(avahi_is_valid_host_name(r));
+
+ return r;
+--
+2.42.0
+
diff --git a/main/avahi/Fetch-build-db-from-upstream-git.patch b/main/avahi/Fetch-build-db-from-upstream-git.patch
new file mode 100644
index 00000000000..613a20f53cc
--- /dev/null
+++ b/main/avahi/Fetch-build-db-from-upstream-git.patch
@@ -0,0 +1,74 @@
+Patch-Source: https://salsa.debian.org/utopia-team/avahi/-/blob/b1a3a539ac0b6d79a7a0b87dccbb99028e10ec63/debian/patches/Fetch-build-db-from-upstream-git.patch
+this is needed when building python
+--
+From: Andreas Henriksson <andreas@fatal.se>
+Date: Sat, 26 Oct 2019 15:49:35 +0200
+Subject: Fetch build-db from upstream git
+
+Fetch the build-db file from:
+https://raw.githubusercontent.com/lathiat/avahi/master/service-type-database/build-db
+
+This file is missing dist tarball, likely caused by changes in:
+https://github.com/lathiat/avahi/pull/134
+
+Carry it as a patch for now.
+---
+ service-type-database/build-db | 49 ++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 49 insertions(+)
+ create mode 100755 service-type-database/build-db
+
+diff --git a/service-type-database/build-db b/service-type-database/build-db
+new file mode 100755
+index 0000000..78ee892
+--- /dev/null
++++ b/service-type-database/build-db
+@@ -0,0 +1,49 @@
++#!/usr/bin/env python
++# -*-python-*-
++# This file is part of avahi.
++#
++# avahi is free software; you can redistribute it and/or modify it
++# under the terms of the GNU Lesser General Public License as
++# published by the Free Software Foundation; either version 2 of the
++# License, or (at your option) any later version.
++#
++# avahi 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 Lesser General Public
++# License along with avahi; if not, write to the Free Software
++# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
++# USA.
++
++try:
++ import anydbm as dbm
++except ImportError:
++ import dbm
++
++import sys
++
++if len(sys.argv) > 1:
++ infn = sys.argv[1]
++else:
++ infn = "service-types"
++
++if len(sys.argv) > 2:
++ outfn = sys.argv[2]
++else:
++ outfn = infn + ".db"
++
++db = dbm.open(outfn, "n")
++
++for ln in open(infn, "r"):
++ ln = ln.strip(" \r\n\t")
++
++ if ln == "" or ln.startswith("#"):
++ continue
++
++ t, n = ln.split(":", 1)
++
++ db[t.strip()] = n.strip()
++
++db.close()
diff --git a/main/avahi/build-db-Use-the-same-database-format-that-the-C-code-exp.patch b/main/avahi/build-db-Use-the-same-database-format-that-the-C-code-exp.patch
new file mode 100644
index 00000000000..76211f4c89d
--- /dev/null
+++ b/main/avahi/build-db-Use-the-same-database-format-that-the-C-code-exp.patch
@@ -0,0 +1,109 @@
+Patch-Source: https://salsa.debian.org/utopia-team/avahi/-/blob/b1a3a539ac0b6d79a7a0b87dccbb99028e10ec63/debian/patches/build-db-Use-the-same-database-format-that-the-C-code-exp.patch
+this is needed to build the python module
+--
+From: Simon McVittie <smcv@debian.org>
+Date: Thu, 7 May 2020 12:13:56 +0100
+Subject: build-db: Use the same database format that the C code expects
+
+Otherwise, Python 2 anydbm will preferentially choose Berkeley DB format
+(dbhash/bsddb), which is neither GNU gdbm nor traditional Unix (n)dbm.
+
+Signed-off-by: Simon McVittie <smcv@debian.org>
+Fixes: https://github.com/lathiat/avahi/issues/260
+---
+ configure.ac | 11 ++++++++---
+ service-type-database/Makefile.am | 4 ++--
+ service-type-database/build-db | 27 +++++++++++++++++++++------
+ 3 files changed, 31 insertions(+), 11 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 58db8c7..5aea4e7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -871,9 +871,14 @@ if test "x$HAVE_PYTHON" = "xyes" ; then
+ fi
+
+ AM_CHECK_PYMOD(socket,,,[AC_MSG_ERROR(Could not find Python module socket)])
+- if test "x$HAVE_GDBM" = "xyes" || test "x$HAVE_DBM" = "xyes"; then
+- AM_CHECK_PYMOD(anydbm,,,[
+- AM_CHECK_PYMOD(dbm,,,[AC_MSG_ERROR(Could not find Python module dbm)])
++ if test "x$HAVE_GDBM" = "xyes"; then
++ AM_CHECK_PYMOD([dbm.gnu], [], [], [
++ AM_CHECK_PYMOD([gdbm], [], [], [AC_MSG_ERROR(Could not find Python module dbm.gnu or gdbm)])
++ ])
++ fi
++ if test "x$HAVE_DBM" = "xyes"; then
++ AM_CHECK_PYMOD([dbm.ndbm], [], [], [
++ AM_CHECK_PYMOD([dbm], [], [], [AC_MSG_ERROR(Could not find Python module dbm.ndbm or dbm)])
+ ])
+ fi
+ fi
+diff --git a/service-type-database/Makefile.am b/service-type-database/Makefile.am
+index f9fa082..0ead0f6 100644
+--- a/service-type-database/Makefile.am
++++ b/service-type-database/Makefile.am
+@@ -28,7 +28,7 @@ noinst_SCRIPTS=build-db
+ pkglibdata_DATA+=service-types.db
+
+ service-types.db: service-types
+- $(AM_V_GEN)$(PYTHON) build-db $< $@.coming && \
++ $(AM_V_GEN)$(PYTHON) build-db --gnu $< $@.coming && \
+ mv $@.coming $@
+
+ CLEANFILES = service-types.db
+@@ -44,7 +44,7 @@ service-types.db.pag: service-types.db
+ service-types.db.dir: service-types.db
+ $(AM_V_GEN)mv service-types.db.coming.dir service-types.db.dir
+ service-types.db: service-types build-db
+- $(AM_V_GEN)$(PYTHON) build-db $< $@.coming && \
++ $(AM_V_GEN)$(PYTHON) build-db --ndbm $< $@.coming && \
+ if test -f "$@.coming"; then mv $@.coming $@; fi
+
+ CLEANFILES = service-types.db*
+diff --git a/service-type-database/build-db b/service-type-database/build-db
+index 78ee892..6415d27 100755
+--- a/service-type-database/build-db
++++ b/service-type-database/build-db
+@@ -17,13 +17,28 @@
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+ # USA.
+
+-try:
+- import anydbm as dbm
+-except ImportError:
+- import dbm
+-
+ import sys
+
++if sys.argv[1] == '--gnu':
++ if sys.version_info >= (3,):
++ import dbm.gnu as chosen_dbm
++ else:
++ import gdbm as chosen_dbm
++
++ sys.argv[1:] = sys.argv[2:]
++elif sys.argv[1] == '--ndbm':
++ if sys.version_info >= (3,):
++ import dbm.ndbm as chosen_dbm
++ else:
++ import dbm as chosen_dbm
++
++ sys.argv[1:] = sys.argv[2:]
++else:
++ if sys.version_info >= (3,):
++ import dbm as chosen_dbm
++ else:
++ import anydbm as chosen_dbm
++
+ if len(sys.argv) > 1:
+ infn = sys.argv[1]
+ else:
+@@ -34,7 +49,7 @@ if len(sys.argv) > 2:
+ else:
+ outfn = infn + ".db"
+
+-db = dbm.open(outfn, "n")
++db = chosen_dbm.open(outfn, "n")
+
+ for ln in open(infn, "r"):
+ ln = ln.strip(" \r\n\t")
diff --git a/main/awall/APKBUILD b/main/awall/APKBUILD
index 5503262464b..089daa2389f 100644
--- a/main/awall/APKBUILD
+++ b/main/awall/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Kaarle Ritvanen <kunkku@alpinelinux.org>
# Maintainer: Kaarle Ritvanen <kunkku@alpinelinux.org>
pkgname=awall
-pkgver=1.12.0
+pkgver=1.12.3
pkgrel=0
pkgdesc="Alpine Wall"
url="https://gitlab.alpinelinux.org/alpine/awall"
@@ -9,12 +9,12 @@ _luaver=5.4
arch="noarch"
license="GPL-2.0-only"
replaces="awall-nat"
-depends="drill ip6tables ipset iptables lua$_luaver lua$_luaver-alt-getopt
+depends="drill ipset iptables lua$_luaver lua$_luaver-alt-getopt
lua$_luaver-cjson lua$_luaver-pc lua$_luaver-posix lua-schema
lua$_luaver-stringy lua$_luaver-lyaml xtables-addons"
subpackages="$pkgname-masquerade $pkgname-policies"
triggers="$pkgname.trigger=/usr/share/awall"
-source="$url/-/archive/v$pkgver/awall-v$pkgver.tar.bz2
+source="https://gitlab.alpinelinux.org/alpine/awall/-/archive/v$pkgver/awall-v$pkgver.tar.bz2
awall-init
setup-firewall
"
@@ -51,7 +51,7 @@ policies() {
}
sha512sums="
-1e5b2bb3a64229c79959bd44dfa02c3b6230135eb0368bdc83ee5f0ce97ff9c02259442a3e8f9ae4eb62aaab97186537de15e5a548c720c7bed1aac8ecf30aa2 awall-v1.12.0.tar.bz2
+2c2b3e5b6d6e67809e20a13861e50110dc3a021f1c9aff5c3cdb92dcd6998494ae56469334d78c833228022772ced4b05367bb92be7e8a3c7a437420cdba6074 awall-v1.12.3.tar.bz2
e83ea3281c298092530e45fa5b62f6f85b9e5109b11e109799465ea832608294c7d9c4c3f5b0f321dfc0e82040daf3a17d066e9dea65cb0dbae2c453ea9e62cd awall-init
-1cd4b7fa5fc6c9ac6667dff5cc00d96a3cc42aaccafe3c5562d3dcfd9f22ddec9cfe5a9339fee8001b67ccb8e8b81c9417f39a461e5052af9bf74a2753559bf7 setup-firewall
+3a444b0bff5d36c504bc98e71687319778a037240b1170fa7f0bc534d19b3c41a3e4e871a3e3c27304a934e6c2d6b1cd589586a01250244394d014dc858606d9 setup-firewall
"
diff --git a/main/awall/setup-firewall b/main/awall/setup-firewall
index 06e3b769a5e..62605e1d1bb 100755
--- a/main/awall/setup-firewall
+++ b/main/awall/setup-firewall
@@ -102,7 +102,7 @@ if [ "$DHCP_ZONES" ]; then
enable_policy dhcp
fi
-egrep -q "^https?://" /etc/apk/repositories && enable_policy web-client
+grep -E -q "^https?://" /etc/apk/repositories && enable_policy web-client
enable_if_running ntp-client chronyd ntpd openntpd
enable_if_running ssh-server dropbear sshd
@@ -132,6 +132,6 @@ enable_service() {
}
enable_service iptables
-if ip -o address | egrep -q '^[0-9]+: [^ ]+ +inet6 '; then
+if ip -o address | grep -E -q '^[0-9]+: [^ ]+ +inet6 '; then
enable_service ip6tables
fi
diff --git a/main/awstats/APKBUILD b/main/awstats/APKBUILD
index f7270f008ca..72a52043e1a 100644
--- a/main/awstats/APKBUILD
+++ b/main/awstats/APKBUILD
@@ -1,19 +1,20 @@
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=awstats
-pkgver=7.8
-pkgrel=1
+pkgver=7.9
+pkgrel=0
pkgdesc="Free real-time logfile analyzer to get advanced statistics"
-url="http://awstats.sourceforge.net/"
+url="https://awstats.sourceforge.net/"
arch="noarch"
license="GPL-3.0-or-later"
depends="perl perl-uri"
subpackages="$pkgname-doc"
options="!check" # no testsuite
-source="https://prdownloads.sourceforge.net/awstats/awstats-$pkgver.tar.gz
- CVE-2020-35176.patch"
+source="https://prdownloads.sourceforge.net/awstats/awstats-$pkgver.tar.gz"
# secfixes:
+# 7.9-r0:
+# - CVE-2022-46391
# 7.8-r1:
# - CVE-2020-35176
# 7.6-r2:
@@ -60,5 +61,6 @@ package() {
"$pkgdir"/usr/lib/$pkgname/cgi-bin/plugins/example
}
-sha512sums="b532f74a8b420841b1ae7eea73fd341049925af01688a06114f53807c14c6a4edc4ca4f671b2b9c1aee8024ba25ccf69b6eae391250e5722d2fd719de4cf87e2 awstats-7.8.tar.gz
-d012866662206ffba9f84af437824324bf402a49ecb67161833b3f9593ccd4327db4b465d305c3ca78e5b29917acd469760faac6f7678055d4de01621f689c63 CVE-2020-35176.patch"
+sha512sums="
+1270c7486a5558a54abc7b43cd92ffcea356ff4c00271bb824758ef4f5736eff559dd38eb7bc7bff8d45efa970a60ddcc5771762a3c3a32f003b0e39c55814d9 awstats-7.9.tar.gz
+"
diff --git a/main/awstats/CVE-2020-35176.patch b/main/awstats/CVE-2020-35176.patch
deleted file mode 100644
index 3e707c35dc4..00000000000
--- a/main/awstats/CVE-2020-35176.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 0d4d4c05f8e73be8f71dd361dc55cbd52858b823 Mon Sep 17 00:00:00 2001
-From: Beuc <beuc@beuc.net>
-Date: Thu, 17 Dec 2020 18:14:43 +0100
-Subject: [PATCH] Only look for configuration in dedicated awstats directories
-
-Fixes #195/CVE-2020-35176
----
- wwwroot/cgi-bin/awstats.pl | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/wwwroot/cgi-bin/awstats.pl b/wwwroot/cgi-bin/awstats.pl
-index e709b7f5..8341c0a5 100755
---- a/wwwroot/cgi-bin/awstats.pl
-+++ b/wwwroot/cgi-bin/awstats.pl
-@@ -1711,13 +1711,13 @@ sub Read_Config {
- # Check config file in common possible directories :
- # Windows : "$DIR" (same dir than awstats.pl)
- # Standard, Mandrake and Debian package : "/etc/awstats"
-- # Other possible directories : "/usr/local/etc/awstats", "/etc"
-+ # Other possible directories : "/usr/local/etc/awstats",
- # FHS standard, Suse package : "/etc/opt/awstats"
- my $configdir = shift;
- my @PossibleConfigDir = (
- "$DIR",
- "/etc/awstats",
-- "/usr/local/etc/awstats", "/etc",
-+ "/usr/local/etc/awstats",
- "/etc/opt/awstats"
- );
-
diff --git a/main/axel/APKBUILD b/main/axel/APKBUILD
index 46a783dc03b..6383b8a0ac3 100644
--- a/main/axel/APKBUILD
+++ b/main/axel/APKBUILD
@@ -1,16 +1,16 @@
# Contributor:
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=axel
-pkgver=2.17.11
+pkgver=2.17.13
pkgrel=0
pkgdesc="A multiple-connection concurrent downloader"
url="https://github.com/axel-download-accelerator/axel"
arch="all"
options="!check" # has no checks
license="GPL-2.0-or-later WITH OpenSSL-Exception"
-makedepends="openssl1.1-compat-dev"
+makedepends="openssl-dev>3"
subpackages="$pkgname-doc"
-source="$url/releases/download/v$pkgver/axel-$pkgver.tar.xz"
+source="https://github.com/axel-download-accelerator/axel/releases/download/v$pkgver/axel-$pkgver.tar.xz"
# secfixes:
# 2.17.8-r0:
@@ -33,5 +33,5 @@ package() {
}
sha512sums="
-111e8b3bbb70e717bee8b3c318c18d0121776301c609c0894376a371238dd839f5dae7edda6738d2b89296fd4b6ac1083399acf62308eaa479b6d70b080e65a1 axel-2.17.11.tar.xz
+e36129de893c3c56fe89f7ff3accba9803b4e6d3b5094ed4266c10b33639b973c2fdc41beaf0a80d4fb5e62339580383497a15b4b7caad7d70c8fc581c0c4fc2 axel-2.17.13.tar.xz
"
diff --git a/main/b43-fwcutter/APKBUILD b/main/b43-fwcutter/APKBUILD
index 07cca21a000..1e9c7e26da3 100644
--- a/main/b43-fwcutter/APKBUILD
+++ b/main/b43-fwcutter/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=b43-fwcutter
pkgver=019
-pkgrel=1
+pkgrel=3
pkgdesc="Tool to extract firmware from Broadcom drivers"
url="https://wireless.wiki.kernel.org/en/users/Drivers/b43"
arch="all"
diff --git a/main/bacula/APKBUILD b/main/bacula/APKBUILD
index 947154bd0d1..6ab6a822874 100644
--- a/main/bacula/APKBUILD
+++ b/main/bacula/APKBUILD
@@ -1,13 +1,13 @@
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=bacula
-pkgver=11.0.6
-pkgrel=1
+pkgver=13.0.3
+pkgrel=0
pkgdesc="Enterprise ready, network based backup program"
-url="https://www.bacula.org"
+url="https://www.bacula.org/"
arch="all"
license="AGPL-3.0-or-later WITH OpenSSL-Exception"
-makedepends="autoconf automake libtool mariadb-connector-c-dev ncurses-dev openssl1.1-compat-dev libpq-dev
+makedepends="autoconf automake libtool mariadb-connector-c-dev ncurses-dev openssl-dev>3 libpq-dev
sqlite-dev zlib-dev lzo-dev acl-dev"
install="$pkgname.pre-install $pkgname.post-upgrade"
subpackages="$pkgname-doc $pkgname-mysql $pkgname-pgsql $pkgname-sqlite
@@ -16,7 +16,7 @@ subpackages="$pkgname-doc $pkgname-mysql $pkgname-pgsql $pkgname-sqlite
pkgusers="bacula"
pkggroups="bacula"
somask="libbaccats-$pkgver.so"
-source="https://downloads.sourceforge.net/project/$pkgname/$pkgname/$pkgver/$pkgname-$pkgver.tar.gz
+source="https://downloads.sourceforge.net/project/bacula/bacula/$pkgver/bacula-$pkgver.tar.gz
bacula-dir.initd
bacula-sd.initd
bacula-fd.initd
@@ -27,6 +27,11 @@ options="!check" #no test suite provided
_bworkdir="/var/lib/$pkgname"
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
./configure \
--build=$CBUILD \
@@ -35,7 +40,7 @@ build() {
--sysconfdir=/etc/$pkgname \
--localstatedir=/var \
--mandir=/usr/share/man \
- --docdir=/usr/share/doc \
+ --docdir=/usr/share/doc/bacula \
--infodir=/usr/share/info \
--with-pid-dir=/run/$pkgname \
--with-subsys-dir=/run/lock/subsys \
@@ -65,8 +70,8 @@ package() {
make DESTDIR="$pkgdir" install
local daemon; for daemon in dir sd fd; do
- install -Dm755 "$srcdir"/$pkgname-${daemon}.initd \
- "$pkgdir"/etc/init.d/$pkgname-${daemon}
+ install -Dm755 "$srcdir"/$pkgname-$daemon.initd \
+ "$pkgdir"/etc/init.d/$pkgname-$daemon
done
install -Dm644 examples/sample-query.sql \
@@ -94,20 +99,24 @@ package() {
done
find "$pkgdir"/usr/lib -iname libbaccats* -type l -delete
+
+ # resolves conflict with community/bat
+ # this manpage is for a program that isn't built here
+ rm "$pkgdir"/usr/share/man/man1/bat.1*
}
_mv_backend() {
mkdir -p "$subpkgdir"/usr/lib
mkdir -p "$subpkgdir"/etc/$pkgname/scripts
- mv "$pkgdir"/usr/lib/libbaccats-${1}-${pkgver}.so \
+ mv "$pkgdir"/usr/lib/libbaccats-$1-$pkgver.so \
"$subpkgdir"/usr/lib
- ln -s libbaccats-${pkgver}.so "$subpkgdir"/usr/lib/libbaccats.so
- ln -s libbaccats-${1}-${pkgver}.so \
- "$subpkgdir"/usr/lib/libbaccats-${pkgver}.so
+ ln -s libbaccats-$pkgver.so "$subpkgdir"/usr/lib/libbaccats.so
+ ln -s libbaccats-$1-$pkgver.so \
+ "$subpkgdir"/usr/lib/libbaccats-$pkgver.so
- mv "$pkgdir"/etc/$pkgname/scripts/*_${1}_* \
+ mv "$pkgdir"/etc/$pkgname/scripts/*_$1_* \
"$subpkgdir"/etc/$pkgname/scripts
}
@@ -157,7 +166,7 @@ client() {
}
sha512sums="
-44abc9e3598f3d3beea3e85cca0867e4b9b77c4e7a17cb1902a5e952b049fb2b15f8f6319436fce1dd92ad52d26f04d7225dd052372ecc30aa55fb668a639149 bacula-11.0.6.tar.gz
+59ec616535959bde26b5b03a60355f3f8d80ae7a719a079d354f41c0f103b0e467177b6f813ef3eb4d30866f73c393d766e8337e20bb97f19ffd7eba5e5c59c5 bacula-13.0.3.tar.gz
bb954bb94bffa68ba80872046782a73012487291f019fb8d7ff77fc7f4325e25bee88612b3279b4db7d3c2002ac7448ffabcda62da7bab54642a7413904abc91 bacula-dir.initd
0505b9a74520af6982d5df4390525976f8e009e641d0acfe8f24b2ec9f155166a65eecbabee9ff70ffe188d523effa64f958acd8f657410b1c002a6d736e8aee bacula-sd.initd
91a53cb566cfd91b42a319bd6ff9947047cae187c6ec198767853d1a0253667d6c2c58f0e72ed43a7b9f40b76e705cafde7a1d6ac86577fa0f64f44b031dec11 bacula-fd.initd
diff --git a/main/base64/0001-add-a-pkg-config-file.patch b/main/base64/0001-add-a-pkg-config-file.patch
new file mode 100644
index 00000000000..5f2127c4695
--- /dev/null
+++ b/main/base64/0001-add-a-pkg-config-file.patch
@@ -0,0 +1,57 @@
+Patch-Source: https://github.com/aklomp/base64/pull/128 (modified)
+From aac03091256296f73254c70966e561e273365364 Mon Sep 17 00:00:00 2001
+From: "lauren n. liberda" <lauren@selfisekai.rocks>
+Date: Sat, 16 Dec 2023 05:25:23 +0100
+Subject: [PATCH] add a pkg-config file
+
+---
+ CMakeLists.txt | 8 ++++++++
+ cmake/base64.pc.in | 10 ++++++++++
+ 2 files changed, 18 insertions(+)
+ create mode 100644 cmake/base64.pc.in
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 56076e4..4d06310 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -235,6 +235,10 @@ if (BASE64_BUILD_TESTS)
+ add_subdirectory(test)
+ endif()
+
++########################################################################
++# pkg-config file
++configure_file("${CMAKE_CURRENT_LIST_DIR}/cmake/base64.pc.in" "${CMAKE_CURRENT_BINARY_DIR}/base64.pc" @ONLY)
++
+ ########################################################################
+ # base64
+ if (BASE64_BUILD_CLI)
+@@ -276,6 +280,10 @@ install(FILES
+ "${CMAKE_CURRENT_BINARY_DIR}/base64-config-version.cmake"
+ DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
+ )
++install(FILES
++ "${CMAKE_CURRENT_BINARY_DIR}/base64.pc"
++ DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig"
++)
+
+ install(EXPORT base64-targets
+ NAMESPACE aklomp::
+diff --git a/cmake/base64.pc.in b/cmake/base64.pc.in
+new file mode 100644
+index 0000000..fd97b49
+--- /dev/null
++++ b/cmake/base64.pc.in
+@@ -0,0 +1,10 @@
++prefix="@CMAKE_INSTALL_PREFIX@"
++exec_prefix="${prefix}"
++libdir="${prefix}/@CMAKE_INSTALL_LIBDIR@"
++includedir="${prefix}/@CMAKE_INSTALL_INCLUDEDIR@"
++
++Name: @PROJECT_NAME@
++Description: Fast Base64 stream encoder/decoder in C99, with SIMD acceleration
++Version: @PROJECT_VERSION@
++Cflags: -I${includedir}
++Libs: -L${libdir} -lbase64
+--
+2.43.0
+
diff --git a/main/base64/APKBUILD b/main/base64/APKBUILD
new file mode 100644
index 00000000000..e53af1248e4
--- /dev/null
+++ b/main/base64/APKBUILD
@@ -0,0 +1,71 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=base64
+# NOTE: The primary use of this library is for main/nodejs.
+pkgver=0.5.2
+pkgrel=0
+pkgdesc="Fast Base64 stream encoder/decoder in C99, with SIMD acceleration"
+url="https://github.com/aklomp/base64"
+arch="all"
+license="BSD-2-Clause"
+makedepends="
+ clang
+ cmake
+ samurai
+ "
+subpackages="
+ $pkgname-dev
+ lib$pkgname
+ "
+source="
+ https://github.com/aklomp/base64/archive/v$pkgver/base64-$pkgver.tar.gz
+ 0001-add-a-pkg-config-file.patch
+ "
+
+build() {
+ local crossopts=
+ [ "$CBUILD" != "$CHOST" ] \
+ && crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+
+ export CFLAGS="$CFLAGS -Wno-unused-command-line-argument"
+ # Upstream recommends building with clang due to better support for NEON
+ # intrinsics.
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_C_COMPILER=clang \
+ -DCMAKE_CXX_COMPILER=clang++ \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_VERBOSE_MAKEFILE=ON \
+ -DBUILD_SHARED_LIBS=ON \
+ -DBASE64_BUILD_CLI=ON \
+ -DBASE64_BUILD_TESTS=$(want_check && echo ON || echo OFF) \
+ -DBASE64_WITH_OpenMP=OFF \
+ $crossopts
+ cmake --build build
+}
+
+check() {
+ # XXX: https://github.com/aklomp/base64/issues/124
+ #ctest --test-dir build --output-on-failure
+
+ ./build/bin/base64 build/bin/libbase64.so > test.b64
+ ./build/bin/base64 -d test.b64 > test.bin
+ cmp build/bin/libbase64.so test.bin
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ cd "$pkgdir"
+ rm -f usr/bin/test_base64
+ rm -f usr/bin/benchmark
+}
+
+libbase64() {
+ default_libs
+}
+
+sha512sums="
+9f8ca8a6e9feb8ad98158d675ec3331e83c77401d2633de0e43b62e794682a9d63c03e1c2599981ad3cdb249e263964f6a79084dbdf2ca19a1e1eed6195a98f4 base64-0.5.2.tar.gz
+0f2e6b6258821861822d1077cd607000a4aafe5bdc6b670dc2e1c6faf77cfcee8c13a39fd876a26da3e2600072205a66e9f90ade1d2f37715cebf7000fcc805c 0001-add-a-pkg-config-file.patch
+"
diff --git a/main/bash-completion/APKBUILD b/main/bash-completion/APKBUILD
index fc2dea20444..aa9080cf276 100644
--- a/main/bash-completion/APKBUILD
+++ b/main/bash-completion/APKBUILD
@@ -2,17 +2,16 @@
# Contributor: Sheila Aman <sheila@vulpine.house>
# Maintainer: Lucas Ramage <ramage.lucas@protonmail.com>
pkgname=bash-completion
-pkgver=2.11
-pkgrel=4
+pkgver=2.12.0
+pkgrel=0
pkgdesc="Command-line tab-completion for bash"
-options="!check" # 7 Tests fail
url="https://github.com/scop/bash-completion"
arch="noarch"
license="GPL-2.0-or-later"
depends="bash"
makedepends="autoconf automake bc grep iputils musl-utils procps psmisc sed usbutils"
checkdepends="py3-pexpect py3-pytest"
-subpackages="$pkgname-doc"
+subpackages="$pkgname-dev $pkgname-doc"
source="https://github.com/scop/bash-completion/releases/download/$pkgver/bash-completion-$pkgver.tar.xz"
# Provided by other packages
@@ -69,16 +68,29 @@ check() {
}
package() {
- make -j1 DESTDIR="$pkgdir" install
+ make DESTDIR="$pkgdir" install
+
+ # /etc/profile sources profile.d, and this occurs only in login shells
+ # it should not then load completions or expect the bashrc to source the profile directory.
+ # so, we move the sourcing script to /etc/bash, and include it from the bashrc when present.
+ mkdir -p "$pkgdir"/etc/bash
+ mv "$pkgdir"/etc/profile.d/bash_completion.sh \
+ "$pkgdir"/etc/bash/
+ rmdir -p "$pkgdir"/etc/profile.d/ || true
mkdir -p "$pkgdir"/usr/share/doc/$pkgname/
- install -m644 AUTHORS CHANGES CONTRIBUTING.md README.md \
+ install -m644 AUTHORS CHANGELOG.md CONTRIBUTING.md README.md \
"$pkgdir"/usr/share/doc/$pkgname/
cd "$pkgdir"/usr/share/bash-completion/completions
for c in $_conflicting; do
rm -f $c
done
+
+ mkdir -p "$pkgdir"/usr/lib
+ mv "$pkgdir"/usr/share/pkgconfig "$pkgdir"/usr/lib/pkgconfig
}
-sha512sums="41585f730b5114d397831ba36d10d05643c6a6179e746ddc49aa1cbef61ea5525fd2f09b2e474adee14e647f99df8d5983ee48e29a59d8a30e1daf7fb1837e06 bash-completion-2.11.tar.xz"
+sha512sums="
+f8a12f607c98021d37ade11da14118a282bd4afdf7b25029ee69679c0bc708afded83e47bdf2b81eeb708b8cbd53f2a13dae0641ac6a4dbcf45faeeb1cc7ec8a bash-completion-2.12.0.tar.xz
+"
diff --git a/main/bash/APKBUILD b/main/bash/APKBUILD
index e5309b99bcd..d102c470be0 100644
--- a/main/bash/APKBUILD
+++ b/main/bash/APKBUILD
@@ -2,22 +2,23 @@
# Contributor: TBK <alpine@jjtc.eu>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=bash
-pkgver=5.1.16
+pkgver=5.2.26
_patchlevel=${pkgver##*.}
_myver=${pkgver%.*}
_patchbase=${_myver/./}
-pkgrel=2
+pkgrel=0
pkgdesc="The GNU Bourne Again shell"
url="https://www.gnu.org/software/bash/bash.html"
arch="all"
license="GPL-3.0-or-later"
makedepends_build="bison flex"
-makedepends_host="readline-dev>8 ncurses-dev"
+makedepends_host="readline-dev>8 ncurses-dev musl-libintl"
install="$pkgname.post-install $pkgname.post-upgrade $pkgname.pre-deinstall"
subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc"
source="https://ftp.gnu.org/gnu/bash/bash-$_myver.tar.gz
bashrc
bash-noinfo.patch
+ profile-bashrc.sh
"
# generate url's to patches. note: no forks allowed!
_i=1
@@ -84,6 +85,7 @@ package() {
mkdir -p "$pkgdir"/etc/bash
make DESTDIR="$pkgdir" install
install -Dm644 "$srcdir"/bashrc "$pkgdir"/etc/bash/bashrc
+ install -Dm644 "$srcdir"/profile-bashrc.sh "$pkgdir"/etc/profile.d/00-bashrc.sh
rm -rf "$pkgdir"/usr/share/locale
}
@@ -95,23 +97,34 @@ dev() {
}
sha512sums="
-c44a0ce381469219548a3a27589af3fea4f22eda1ca4e9434b59fc16da81b471c29ce18e31590e0860a6a251a664b68c2b45e3a17d22cfc02799ffd9a208390c bash-5.1.tar.gz
-4542e19f2c6c31fff1f412379d5e36c65767cf2d91f1311e8d43f2566e2e50ab8dddff6045aec9b0272ed7387aa9b35daf6b0844478c0bda94d961efcf6f3ae3 bashrc
+5647636223ba336bf33e0c65e516d8ebcf6932de8b44f37bc468eedb87579c628ad44213f78534beb10f47aebb9c6fa670cb0bed3b4e7717e5faf7e9a1ef81ae bash-5.2.tar.gz
+a9ff38b7a11c7a4935726dddcdde320a0d9616f50bae390f149e23d47bdf07a4c6e09ade2eea2dd9fa8dc449f3d1992a327e19cd57af1b8aad77b39d681c7dff bashrc
9d8845491d0fe335bdd8e9a2bd98bda54bfed2ae3c35b2196c6d5a38bdf96c4d97572ba7d6b19ab605ef4e8f001f64cf3312f87dedebb9e37a95ad2c44e33cdb bash-noinfo.patch
-1cd86805a2639614372aec29a710bc456e330abcbbaa0867820c94f714a1fa5fb5c1b18aa2c10263ae0bce9dad7579c7af2f732282315c1c34bfd6a90777bfd2 bash51-001
-923e7822a9629645347d3aea0058fb5e2d52223507159a62369309f264612df44a84931c19e0ccb3852e98ce672dfbd454477090b4041b5a0de477c94eb61088 bash51-002
-01e952dcfdae58624723d64912ea3444eed2fdcd266ba1a929b95ec3abd70f914bf400607c3f7bb7a94ac2925f794f91f37c1929d5bb987de2ba7f60a19cb8bd bash51-003
-10ff24cd91a2cd88818bfa7218050843af6b409e43fcca89f5ec70d8266020c6c2a55132426271f165cd0f154f49eb0f8ec2761b80fc066c921b83120bb543ce bash51-004
-fa83d894fe874a05b9a7d47b8bca8e5b7f4067221d82e8b1af616d17725592c3737c621f2a8ad3c917b29846012c37c85acd34dcbb43eb6b05065ccce89b260c bash51-005
-b9b6e3d71f7b7718e2e8598ec8e337dcc675571fb233c29e5230ebf14eab2249204531f2fe8c4d1459c5fed10acb679048588d1e457e98dbc00ffc4d2cd227e3 bash51-006
-e4ebdc47e780ddc2588ecdfcfe00cb618039c7044e250ab2b836b0735c461ebacd15beaf2145e277c70b7f51cded55bd8dde7757df810f33f8dae306ee5ba571 bash51-007
-97f9558a08a66cc9da62c285bf9118b39328e25ed3b9277728e0539b1ac0adef176a090e39cd96dc03d6fd900d8155bd58040cb3390a09f637bab1de8af3faf6 bash51-008
-2d3c65162ec4e5c3dfeb439891950ef2c43973a84122fcdf6b56c388466c7e671dbc9b236d2253f01411b668c365855263995dbacb8e6f9e9dbcb7e6c2cc518c bash51-009
-aac4a0b72b559566334f1029c52754f4c98185af99e09436e401d83ab81bab7882d0d8050674b30f171733f3628157777a264566e927e93db2ea5a18d26630f1 bash51-010
-bb9e47a570bb9758c365831f9650b9379b60862b8cef572edc3cd833df96ebb8b9612de474bdc2a03ff4efc2275f871d55962295385e38f3658874488e974b81 bash51-011
-59819914b6821d9f4af0aade7b9b7ea92368c2b8eb8407cea11dfeee7208905dd06bdef7a049d7b1c4fac41c44d9a130b95a061957a9649050b37471b3044cf1 bash51-012
-67535155f49a7f54f151e62aba9274f82d01f33a1a1a7e5efd1aa0d63ba2d078765f0b5e22cb24db7132eff2d8c5852a3688298baa5217b8b6e159aae065d748 bash51-013
-f658ab7ef01ba1d26f735e24b23bf35687e15b0d5d20f90da233d000745a55bdba142c11e9fba52e3b84470ec625fab60cc74cd6be533d990496a3795c658e88 bash51-014
-fd4bc85f942a3a16c545f7e951a24f620ff2d884640dea6e05f305aaf88ed41862bfb05eea2258881608de696f9dc7a0fe3bebb51a011f50b720ea7a66699184 bash51-015
-020b3f3db77ca603a27a3423323538db5c9844be17ee428cf7cda80bebdcc715d30eab6c95773541cb8d14f3ad9e6142bf0adcda0e745ee638242508cc0ab05f bash51-016
+9b44e2fc4a37fb97bdd75f1563a7b472c3f1260f2da5542f8f063b7647cf751006e70c683c573d0eea4c4bd64863b90997472f5fbc3f9c1ee775cd662b6eab31 profile-bashrc.sh
+d1e5d508a4a1888052434adff551732c4215372174adb19dce9514faa18c78ee690e1c0fd9858e15c76fbb910ccace7e62751c3c266f5db253dbffda8c882409 bash52-001
+2484262d6cb32303c761793af2c352062421054149fcf3f591a590e409bb21985683a1e50669547e396eea46f1081ae0821076c3975357dc6c850f94cdd527c1 bash52-002
+c8dac54c8b1805dc756efd06be3092a4de1c45bc1e97b574ca49bf4152515a545d154a84c1d9a82747c79d676b8330254856380bc929d8e835b10af743d66cbb bash52-003
+64bab53225ab2f0b974988c9b1ad5d2d2bb256ce384bb9d4646d1e75411a8eefc7ce2a7ee470345bff276e71147e9b5149a5d9b25bd5308f7bad77b8f68b5c84 bash52-004
+9971ebef50d2a776226d68dbb11feaac85522f66824a0e54faa97b0a14cc242eb8daae2c4364ec59cea5413824be7cbc149c02d1452f211588c505f030b13ee0 bash52-005
+aa46d8a5523374a269ea3d1b4b75ae4e3d918ef4f6d89331bed5da24505bcfac321864071f29161e56487c611d35fe1351c2a2ea226ccaeecef55d01a5a5f2c7 bash52-006
+a2f5ce78c651ec220852989a8b2325d0f1a3739f6494796124324e5883290f74b7e360f91d540c339e1ca3030e54b91301241bb481e965f9fdf915d5fd5accd1 bash52-007
+1f317f3c2313ede7b67c4e396dfad453787f4a30ff77fc53aae482c7dbb752f60c1f33cb414dcc3055a55b77c8c80aeda9626e5b066a79af8a082c6e056340e2 bash52-008
+71fffb71e5876e7abea7e769f4438f2f8d3843d7dfec13f1ba7e79ead5b001d7543c92eb3a628b393f8652bf136e4768c1d1c7b55c155cafe83886b900396e68 bash52-009
+12d120e39593d3f23aa86e510b0eda514ec69ef42e910e5855e4c7510354e8504e5d6949770448f5632ce482c9ab468f4ba82a8a38b4a8237cdd7b54f742946a bash52-010
+83a7584ca8ee512839183e329183476a2c8bcb995e3dc9d5188f04f11760bd3cb0f2d29d12bca2661b7ce8ab125d44d35d839f735992ca6c27f936d609ac4683 bash52-011
+8f969cb36ee81ac47a4c3c6ee7fbe62159192fa4f14cb48973eccd55c458e6a093adc3045ee1c379544d8183d77813977a43cad5d225322d8816540a1cb8893b bash52-012
+5aaa82d88ec98382e241cbf1a4356a9e69888432301f1c974038b59fd8be08ad2a52b782f51ac673bad72bc4e07d1eb45b926595ebe6d53223dcb7f15f3883a7 bash52-013
+5b6e846b30691e398ee5628226278ffd9def64ef1edd8d77dd4bd681405c339fce39f820837cf8e09c0478b39ecb3a8db01c3e0afb88bdecb7bf362d797e4884 bash52-014
+eb1bd6b3bf8811d765f222cd48360eb7f3f0aaa4f29f1b6c1f17635b819e5e4734ec4e7fcfde551fd7a6299a7d67869ea0bc5cc86cc523bc4a64d30e433df493 bash52-015
+11c3197870570050767887a7497b52549caf2bf74e69c5a4eb95ff316942177da0a1150819f7051eb690841796b98d9a81f784204d18ad176cd2c29473e466d4 bash52-016
+1844d1f4fbce0ae1dd8f2b9c152decc7cc645b7c0c66e84ed129072251e990f2da2220917957e98dd8b1299d2d10fb2dd23e184e40457063c1d554bb132ef1e5 bash52-017
+b454ba8a311b0943f9669425891499fe8d4b5f1a90899bf6c4d0969699e21f8f8e08d0b0e23a7cf5c97aa6b21384ae907ed710254053e7edd43328aa6003780c bash52-018
+d009b0a571a3e23ab723c6c6fd4b28c48db1a927d690b4c42d7ed2fa51052aaf662026a2de9e4ee3676087eac844f8b57adae567556228c4fd8fb4ed3c8a1b94 bash52-019
+a5a927e90ac3daead54e90f8ff99dbda0fd652c3df83b7bcde0adb136fc4ba8498810e5bfa1d7f0c143422bf1f4622a4669c96e505bccad7c9a271d7e0668187 bash52-020
+c3a61e975819919d7ba120f322fc5e9a420b21f03d7bf989a5e7b6a99bfe35372744277040e88361ee383ab53b05d607d52ff2000b401de038af67c91728b48f bash52-021
+12a669f3b6ba936be31a85c50bfe52689f3deea02eedb31100ab113b1e74d8104934e615965b4bf7f3b1cf5ad71870211b0bd910bf0862e8ce603505b4b1db3f bash52-022
+59a2e9e4ee4938ba868552eecdbed5f5d797e143bf6f69fde5c50a4e478c19ce36d562b9f51f65d7da5fe216050276bfe1eb430c151c845cffa77d3fdc9ce771 bash52-023
+ff77920ba4c8df7cb8841d94f483a5678a65ff2aab3f03b02b21eba7daaea15d05af26d2fc7f468509c2047f682908d78cd94254e0688496280e345d010aac24 bash52-024
+20e708ff483ae2ba655c069fbaccdef59d81f52ba787d97fd1b997522248e9e7e1d7773a35f3a6e44c4521a7a5be273ffa25c580533e6d1d1bfb5e49040530c3 bash52-025
+571993da2b8067ef5b7b705aee65dd414ee70b216ffbcb9fab7c08807b87a72465594c3f1576c795ae86bf951911cdde70ad1037e851b88ee379c4237ccff6fe bash52-026
"
diff --git a/main/bash/bashrc b/main/bash/bashrc
index b851cf50b08..c880a4ba850 100644
--- a/main/bash/bashrc
+++ b/main/bash/bashrc
@@ -1,14 +1,14 @@
-# Do not edit this file.
-# Place your readable configs in /etc/profile.d/*.sh
-
if [[ $- != *i* ]] ; then
# Shell is non-interactive. Be done now!
return
fi
-if [ -d /etc/profile.d/ ]; then
- for f in /etc/profile.d/*.sh; do
- [ -r "$f" ] && . "$f"
- done
- unset f
+# set fallback PS1; only if currently set to upstream bash default
+if [ "$PS1" = '\s-\v\$ ' ]; then
+ PS1='\h:\w\$ '
fi
+
+for f in /etc/bash/*.sh; do
+ [ -r "$f" ] && . "$f"
+done
+unset f
diff --git a/main/bash/profile-bashrc.sh b/main/bash/profile-bashrc.sh
new file mode 100644
index 00000000000..f4bd6f76d59
--- /dev/null
+++ b/main/bash/profile-bashrc.sh
@@ -0,0 +1,8 @@
+if [ -n "$BASH_VERSION" ] && [ "$BASH" != "/bin/sh" ]; then
+ # if we're bash (and not /bin/sh bash), also source the bashrc
+ # by default, bash sources the bashrc for non-login,
+ # and only /etc/profile on login (-l). so, make it do both on login.
+ # this ensures that login-shell bash (e.g. -bash or bash -l) still sources the
+ # system bashrc, which e.g. loads bash-completion
+ . /etc/bash/bashrc
+fi
diff --git a/main/batctl/APKBUILD b/main/batctl/APKBUILD
index d09134295d6..05465496909 100644
--- a/main/batctl/APKBUILD
+++ b/main/batctl/APKBUILD
@@ -1,13 +1,12 @@
# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
pkgname=batctl
-pkgver=2022.0
-pkgrel=1
+pkgver=2023.3
+pkgrel=0
pkgdesc="B.A.T.M.A.N. advanced control and management tool"
url="https://www.open-mesh.org/"
arch="all"
license="GPL-2.0-only AND MIT"
-depends_dev="libnl3-dev linux-headers"
-makedepends="$depends_dev"
+makedepends="libnl3-dev linux-headers"
subpackages="$pkgname-doc"
source="https://downloads.open-mesh.org/batman/releases/batman-adv-$pkgver/batctl-$pkgver.tar.gz"
options="!check" # No test suite.
@@ -21,5 +20,5 @@ package() {
}
sha512sums="
-4e839119914c471818dcdc6ee0850802f0141dade8303be92fd0fc6f4cf492e37e482401f4e519d815f3928c84b247a5d5e0000128eb958702b8a99ff6f4975e batctl-2022.0.tar.gz
+050a65269f48a1d362ec71fdaa0af18e16d542c1b280e84c0c35b2bf48e22dc77f34bc200f8535b51ba929c77ea005caae96b61400b6cadf6fdbb2f4ae8ae129 batctl-2023.3.tar.gz
"
diff --git a/main/bats/APKBUILD b/main/bats/APKBUILD
index 6f8285b5111..a8c6fa0e660 100644
--- a/main/bats/APKBUILD
+++ b/main/bats/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Jose-Luis Rivas <ghostbar@riseup.net>
pkgname=bats
-pkgver=1.6.0
+pkgver=1.11.0
pkgrel=0
pkgdesc="Bash Automated Testing System"
options="!check" # Test passes CI/locally, fails on builders
@@ -19,6 +19,7 @@ check() {
package() {
./install.sh "$pkgdir"/usr
}
+
sha512sums="
-c76a219c0d6e8016bac90229b842c0666c1a63ae4c063c644a1cb2c78234e5b2685576889ca2c71cd1a6adfd3281be4c01e907b183873777e58e0d749e07d23c bats-1.6.0.zip
+2d4219fda896114be3f346d5236d17d044c229c2019112bc93627979318c53d67c7c9172aa387e9051514fd359049016d8e4ae7c3cfd5863374dd83bfa8a7751 bats-1.11.0.zip
"
diff --git a/main/bc/APKBUILD b/main/bc/APKBUILD
index d311816fbf6..158f5b50cd2 100644
--- a/main/bc/APKBUILD
+++ b/main/bc/APKBUILD
@@ -2,18 +2,16 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=bc
pkgver=1.07.1
-pkgrel=1
+pkgrel=4
pkgdesc="An arbitrary precision numeric processing language (calculator)"
url="https://www.gnu.org/software/bc/bc.html"
arch="all"
-license="GPL-2.0-or-later"
+license="GPL-3.0-or-later"
makedepends="ed flex bison readline-dev texinfo"
subpackages="$pkgname-doc"
-source="https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+source="https://ftp.gnu.org/gnu/bc/bc-$pkgver.tar.gz"
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -26,12 +24,10 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
diff --git a/main/bcache-tools/APKBUILD b/main/bcache-tools/APKBUILD
index d7bf07f5088..479096d4168 100644
--- a/main/bcache-tools/APKBUILD
+++ b/main/bcache-tools/APKBUILD
@@ -1,14 +1,15 @@
# Maintainer:
pkgname=bcache-tools
pkgver=1.1
-pkgrel=0
+pkgrel=3
pkgdesc="tools for managing bcache"
url="https://bcache.evilpiepirate.org/"
arch="all"
-license="GPL-2.0-only"
+license="GPL-2.0-or-later"
makedepends="eudev-dev util-linux-dev linux-headers coreutils"
-subpackages="$pkgname-doc"
+subpackages="$pkgname-dbg $pkgname-doc"
source="https://git.kernel.org/pub/scm/linux/kernel/git/colyli/bcache-tools.git/snapshot/bcache-tools-$pkgver.tar.gz"
+options="!check"
build() {
make
@@ -22,4 +23,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="4ccbef47255bf3644a50242a79951b1f3720e71a55eb1e07dc6b8486df0245da99a77bba751b50197d489b4c5d738e5284aabc014c2f7f44816ddf6a1bb807ca bcache-tools-1.1.tar.gz"
+sha512sums="
+4ccbef47255bf3644a50242a79951b1f3720e71a55eb1e07dc6b8486df0245da99a77bba751b50197d489b4c5d738e5284aabc014c2f7f44816ddf6a1bb807ca bcache-tools-1.1.tar.gz
+"
diff --git a/main/bctoolbox/APKBUILD b/main/bctoolbox/APKBUILD
index 7a220d8cf34..696fda93d7a 100644
--- a/main/bctoolbox/APKBUILD
+++ b/main/bctoolbox/APKBUILD
@@ -1,19 +1,21 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=bctoolbox
-pkgver=5.1.45
+pkgver=5.3.38
pkgrel=0
pkgdesc="Utilities library used by Belledonne Communications softwares like belle-sip, mediastreamer2 and linphone"
url="https://github.com/BelledonneCommunications/bctoolbox"
arch="all"
-license="GPL-2.0-or-later"
+license="GPL-3.0-or-later"
options="!check" # bcunit not available
-makedepends="cmake mbedtls-dev"
+makedepends="cmake mbedtls-dev samurai"
subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/BelledonneCommunications/bctoolbox/archive/$pkgver.tar.gz"
+source="$pkgname-$pkgver.tar.gz::https://github.com/BelledonneCommunications/bctoolbox/archive/$pkgver.tar.gz
+ fix-cmake-path.patch
+ "
build() {
- cmake \
+ cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=MinSizeRel \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_MODULE_PATH=/usr/lib/cmake \
@@ -22,29 +24,21 @@ build() {
-DENABLE_MBEDTLS=YES \
-DENABLE_POLARSSL=NO \
-DENABLE_STATIC=NO \
+ -DENABLE_STRICT=NO \
-DENABLE_TESTS_COMPONENT=OFF \
- -DENABLE_SHARED=YES .
- make
+ -DBUILD_SHARED_LIBS=YES
+ cmake --build build
}
check() {
- make check
+ ctest --test-dir build --output-on-failure
}
package() {
- make DESTDIR="$pkgdir" install
-}
-
-dev() {
- default_dev
- mkdir -p "$subpkgdir"/usr/lib/cmake/bctoolbox
- mv "$pkgdir"/usr/share/bctoolbox/cmake/* "$subpkgdir"/usr/lib/cmake/bctoolbox
- # Remove empty dirs
- rmdir "$pkgdir"/usr/share/bctoolbox/cmake
- rmdir "$pkgdir"/usr/share/bctoolbox
- rmdir "$pkgdir"/usr/share
+ DESTDIR="$pkgdir" cmake --install build
}
sha512sums="
-488d296f3d0328858692d865ce4c315bd9f2baa9fbe9577a1fd214735d8bbe83005f082239c277607d8561682d220e0da0f30b695911780b1a7ec27cfea1c247 bctoolbox-5.1.45.tar.gz
+dbf95ff60b537b16596761a9e45f77e47baf9615813dd884694cd1a78decf447e25a4da629b8907f2caaef7a7f2b4e33241899b27f491acb1e18a5ed3b821a0e bctoolbox-5.3.38.tar.gz
+78011cadf2602834a2f1eb819cdb302d59d0d00b296d99ce79fb8834c1a93611b73022727697ede07bfe0ec36797a7e71740264962d12995385fd09ae4f799bd fix-cmake-path.patch
"
diff --git a/main/bctoolbox/fix-cmake-path.patch b/main/bctoolbox/fix-cmake-path.patch
new file mode 100644
index 00000000000..5a2d7594a92
--- /dev/null
+++ b/main/bctoolbox/fix-cmake-path.patch
@@ -0,0 +1,14 @@
+Adapted from https://github.com/OpenMandrivaAssociation/bctoolbox/blob/master/bctoolbox-5.3.6-cmake-fix_cmake_path.patch
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -167,7 +167,7 @@
+ endif()
+
+ include(CMakePackageConfigHelpers)
+-set(CMAKE_MODULES_INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/cmake")
++set(CMAKE_MODULES_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}")
+ configure_package_config_file("cmake/${PROJECT_NAME}Config.cmake.in" "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
+ INSTALL_DESTINATION "${CMAKE_MODULES_INSTALL_DIR}"
+ PATH_VARS CMAKE_MODULES_INSTALL_DIR
+
diff --git a/main/bdftopcf/APKBUILD b/main/bdftopcf/APKBUILD
index 5bc70925800..4aa8c158253 100644
--- a/main/bdftopcf/APKBUILD
+++ b/main/bdftopcf/APKBUILD
@@ -1,20 +1,17 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=bdftopcf
-pkgver=1.1
-pkgrel=0
+pkgver=1.1.1
+pkgrel=5
pkgdesc="X.Org font utility"
-url="http://xorg.freedesktop.org"
+url="https://xorg.freedesktop.org/"
arch="all"
license="MIT"
options="!check" # No test suite.
-depends=""
-makedepends="libxfont-dev util-macros"
-install=""
+makedepends="util-macros xorgproto"
subpackages="$pkgname-doc"
-source="https://www.x.org/releases/individual/app/$pkgname-$pkgver.tar.bz2"
+source="https://www.x.org/releases/individual/util/bdftopcf-$pkgver.tar.xz"
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -26,8 +23,9 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
-sha512sums="7b790e8d512ca2812ac889c156ef91c48798b4744a6857e5b17e0128764b5afa8c5426fe5de05a9819d64745116718db4221b3e657e3c2633465e87179c44bec bdftopcf-1.1.tar.bz2"
+sha512sums="
+257dc9ae29f2cf1496aad91ccba534348d87f881d75431aa6611a8154cb817d17588c464ab6c6c6bc51e6060baa8dcfcb9fd8c037cdaea8d18287651fa6b7ea9 bdftopcf-1.1.1.tar.xz
+"
diff --git a/main/bearssl/APKBUILD b/main/bearssl/APKBUILD
index d1223377dd2..b394447ef3f 100644
--- a/main/bearssl/APKBUILD
+++ b/main/bearssl/APKBUILD
@@ -1,22 +1,23 @@
-# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
# Contributor: Laurent Bercot <ska-devel@skarnet.org>
+# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
pkgname=bearssl
-pkgver=0.6
-pkgrel=2
+pkgver=0.6_git20230221
+_pkgcommit=79c060eea3eea1257797f15ea1608a9a9923aa6f
+pkgrel=0
pkgdesc="The BearSSL implementation of the SSL/TLS protocol"
url="https://bearssl.org/"
arch="all"
license="MIT"
-subpackages="$pkgname-dev"
+subpackages="$pkgname-static $pkgname-dev $pkgname-libs"
source="
- https://bearssl.org/$pkgname-$pkgver.tar.gz
+ bearssl-$pkgver.tar.gz::https://bearssl.org/gitweb/?p=BearSSL;a=snapshot;h=$_pkgcommit;sf=tgz
bearssl-brssl-dynamic.patch
libbearssl.pc
"
-builddir="$srcdir/$pkgname-$pkgver"
+
+builddir=$PWD/src/BearSSL-${_pkgcommit:0:7}
build() {
- cd "$builddir"
make \
CC="${CC:-gcc}" \
CFLAGS="-W -Wall -fPIC $CFLAGS" \
@@ -28,7 +29,7 @@ build() {
}
package() {
- mkdir -p -m 0755 -- "$pkgdir"/bin "$pkgdir"/lib "$pkgdir"/usr/include "$pkgdir"/usr/lib
+ mkdir -p "$pkgdir"/bin "$pkgdir"/lib "$pkgdir"/usr/include "$pkgdir"/usr/lib
cp -f "$builddir/build/brssl" "$pkgdir/bin/"
cp -f "$builddir"/inc/* "$pkgdir/usr/include/"
cp -f "$builddir/build/libbearssl.a" "$pkgdir/usr/lib/"
@@ -45,7 +46,7 @@ check() {
}
sha512sums="
-f9ed25683cfc6c4abe7f1203a2b82ed101ee4c9e0f9ab60755b6a09c8d1e8e4f64d413624e7bb9c4b0033f909a2e4568a1d916cc6ce4736222900691e1f8359a bearssl-0.6.tar.gz
+bffe5171f3ef27d8f141a43f5b485dcb659b20f1fc65d68c8f6e04f26dd99aadfc39a5943f5d6952f032533e2a709da9083c634f3dcc387b5c2ad64c1785bf6b bearssl-0.6_git20230221.tar.gz
f5fe047862eb355a662ccb1b95c2ca4a870ac0f8d3f4cada5396d2f6a6635647db53fbeb038f9a7651b84d6cda32b6415ce0f69a8da92636d3b3b76578114d5c bearssl-brssl-dynamic.patch
d9cb508709909522a19142a2d8fc988fcb1f33796ace4e21908070925ec402c73fd0778a170a50d3d89bab1263e40a40401a9e593cb4f2a8e314fc52f9965696 libbearssl.pc
"
diff --git a/main/beep/APKBUILD b/main/beep/APKBUILD
index 716a1f1f8a1..b5a50ce0209 100644
--- a/main/beep/APKBUILD
+++ b/main/beep/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=beep
pkgver=1.4.12
-pkgrel=0
+pkgrel=1
pkgdesc="A terminal bell"
url="https://github.com/spkr-beep/beep"
arch="all"
diff --git a/main/bind/APKBUILD b/main/bind/APKBUILD
index 3b45936b28c..0453b03dbfa 100644
--- a/main/bind/APKBUILD
+++ b/main/bind/APKBUILD
@@ -3,19 +3,21 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Contributor: ungleich <alpinelinux@ungleich.ch>
-# Maintainer:
+# Maintainer: Mike Crute <mike@crute.us>
pkgname=bind
-pkgver=9.18.3
+pkgver=9.18.25
_ver=${pkgver%_p*}
_p=${pkgver#*_p}
_major=${pkgver%%.*}
[ "$_p" != "$pkgver" ] && _ver="$_ver-P$_p"
-pkgrel=2
+pkgrel=1
pkgdesc="The ISC DNS server"
url="https://www.isc.org/"
arch="all"
license="MPL-2.0"
-options="!check" # requires bind server
+# check: requires bind server
+# fhs: creates /var/run; TODO: fix?
+options="!check !fhs"
pkgusers="named"
pkggroups="named"
depends="dns-root-hints bind-tools"
@@ -30,10 +32,11 @@ makedepends="
libcap-dev
libuv-dev
libxml2-dev
+ json-c-dev
linux-headers
nghttp2-dev
openldap-dev
- openssl1.1-compat-dev
+ openssl-dev>3
perl
protobuf-c-dev
$_depends_root_keys
@@ -61,6 +64,28 @@ source="
"
# secfixes:
+# 9.18.24-r0:
+# - CVE-2023-4408
+# - CVE-2023-5517
+# - CVE-2023-5679
+# - CVE-2023-5680
+# - CVE-2023-6516
+# - CVE-2023-50387
+# - CVE-2023-50868
+# 9.18.19-r0:
+# - CVE-2023-3341
+# - CVE-2023-4236
+# 9.18.11-r0:
+# - CVE-2022-3094
+# - CVE-2022-3736
+# - CVE-2022-3924
+# 9.18.7-r0:
+# - CVE-2022-2795
+# - CVE-2022-2881
+# - CVE-2022-2906
+# - CVE-2022-3080
+# - CVE-2022-38177
+# - CVE-2022-38178
# 9.16.27-r0:
# - CVE-2022-0396
# - CVE-2021-25220
@@ -145,6 +170,7 @@ build() {
--infodir=/usr/share/info \
--with-gssapi=yes \
--with-libxml2 \
+ --with-json-c \
--with-openssl=yes \
--enable-dnstap \
--enable-largefile \
@@ -196,7 +222,6 @@ _dnssec_tools() {
"$subpkgdir"/usr/bin/
}
-
plugins() {
pkgdesc="The ISC DNS server plugins"
depends="$_depends_plugins"
@@ -207,7 +232,7 @@ plugins() {
tools() {
pkgdesc="The ISC DNS tools"
- depends="$depends_tools"
+ depends=""
mkdir -p "$subpkgdir"/usr/bin
for i in "$pkgdir"/usr/bin/*; do
@@ -228,7 +253,7 @@ tools() {
root_keys() {
pkgdesc="ISC BIND DNSSEC Root Keys"
- depends="$depends_root_keys"
+ depends=""
local _dir _file _link
_dir="usr/share/$_root_keys_upstream"
@@ -250,7 +275,7 @@ libs() {
pkgdesc="$pkgdesc (libraries)"
local dir= file=
for dir in lib usr/lib; do
- for file in "$pkgdir"/$dir/lib*.so; do
+ for file in "$pkgdir"/"$dir"/lib*.so; do
[ -f "$file" ] || continue
mkdir -p "$subpkgdir"/$dir
mv "$file" "$subpkgdir"/$dir/
@@ -265,7 +290,7 @@ _gpgfingerprints="
"
sha512sums="
-eeb2c376172469cd9d788a48487dec026ef28f6a82c474c546464a6caf510ff8f005c780ad85de9a096f4201f41e7db3b6ddfdb8c31c10d62b727f160d918d94 bind-9.18.3.tar.xz
+af2b751b72121a6e98d762110bff183984ab5312d0e080b4ff091f3176437d8be570a8d849034ae4df5eee4e8795f32196d94859262e44f2ce55d8b3d895ba6e bind-9.18.25.tar.xz
3d1d3e954aaee5e125f6b6f3cb660b51fc91d803df4cad43c47dbe97f19789cef20b5ca2834624668f0d761a5b81ac72db8959745d6eb293ca1154a1b390a007 named.initd
127bdcc0b5079961f0951344bc3fad547450c81aee2149eac8c41a8c0c973ea0ffe3f956684c6fcb735a29c43d2ff48c153b6a71a0f15757819a72c492488ddf named.confd
d2f61d02d7829af51faf14fbe2bafe8bc90087e6b6697c6275a269ebbddcaa14a234fff5c41da793e945e8ff1de3de0858a40334e0d24289eab98df4bb721ac5 named.conf.authoritative
diff --git a/main/bind/bind.post-install b/main/bind/bind.post-install
index aa1b7a85e59..94c1424e798 100644
--- a/main/bind/bind.post-install
+++ b/main/bind/bind.post-install
@@ -1,7 +1,7 @@
#!/bin/sh
# Generate key required for reload to work -> creates /etc/bind/rndc.key
-if ! [ -f /etc/bind/rndc.key ]; then
- rndc-confgen -a
- chown named:named /etc/bind/rndc.key
+if ! [ -f etc/bind/rndc.key ]; then
+ rndc-confgen -a -c etc/bind/rndc.key
+ chown named:named etc/bind/rndc.key
fi
diff --git a/main/binutils/APKBUILD b/main/binutils/APKBUILD
index 17fab6ace8b..e0c32f5079d 100644
--- a/main/binutils/APKBUILD
+++ b/main/binutils/APKBUILD
@@ -1,30 +1,29 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=binutils
-pkgver=2.38
-pkgrel=3
+pkgver=2.42
+pkgrel=0
pkgdesc="Tools necessary to build programs"
url="https://www.gnu.org/software/binutils/"
makedepends_build="bison flex texinfo"
makedepends_host="zlib-dev"
-makedepends="$makedepends_build $makedepends_host"
arch="all"
-license="GPL-2.0 GPL-3.0-or-later LGPL-2.0 BSD"
+license="GPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-3-Clause"
subpackages="$pkgname-dev $pkgname-doc"
source="https://ftp.gnu.org/gnu/binutils/binutils-$pkgver.tar.xz
- binutils-ld-fix-static-linking.patch
- gold-mips.patch
- ld-bfd-mips.patch
0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch
- binutils-mips-disable-assert.patch
- binutils-ppc-fix-machine-options.patch
- binutils-s390x-1.patch
- binutils-s390x-2.patch
- binutils-ppc64le-assertion.patch
+ binutils-ld-fix-static-linking.patch
+ LoongArch-Modify-inconsistent-behavior-of-ld-with-un.patch
"
builddir="$srcdir/$pkgname-$pkgver"
+options="!check"
+
+if [ -z "$BOOTSTRAP" ]; then
+ makedepends_host="$makedepends_host jansson-dev zstd-dev"
+ _noboot_configure="--enable-jansson --with-zstd"
+fi
-if [ "$CHOST" = "$CBUILD" ] && [ "$CBUILD" = "$CTARGET" ] && [ "$CTARGET_ARCH" != "riscv64" ]; then
+if [ "$CHOST" = "$CBUILD" ] && [ "$CBUILD" = "$CTARGET" ] && [ "$CTARGET_ARCH" != "riscv64" ] && [ "$CTARGET_ARCH" != "loongarch64" ]; then
subpackages="$subpackages $pkgname-gold"
fi
@@ -35,6 +34,14 @@ if [ "$CHOST" != "$CTARGET" ]; then
fi
# secfixes:
+# 2.40-r10:
+# - CVE-2023-1972
+# 2.40-r0:
+# - CVE-2023-1579
+# 2.39-r2:
+# - CVE-2022-38533
+# 2.39-r0:
+# - CVE-2022-38126
# 2.35.2-r1:
# - CVE-2021-3487
# 2.32-r0:
@@ -58,7 +65,7 @@ build() {
_plugin_configure="--disable-plugins"
fi
- if [ "$CHOST" = "$CBUILD" ] && [ "$CBUILD" = "$CTARGET" ] && [ "$CTARGET_ARCH" != "riscv64" ]; then
+ if [ "$CHOST" = "$CBUILD" ] && [ "$CBUILD" = "$CTARGET" ] && [ "$CTARGET_ARCH" != "riscv64" ] && [ "$CTARGET_ARCH" != "loongarch64" ]; then
_gold_configure="--enable-gold"
fi
@@ -66,15 +73,12 @@ build() {
_arch_configure="--enable-targets=x86_64-pep"
fi
- if [ "$CTARGET_ARCH" = "riscv64" ]; then
+ if [ "$CTARGET_ARCH" = "riscv64" ] || [ "$CTARGET_ARCH" = "loongarch64" ]; then
_gold_configure="--disable-gold"
fi
- case "$CTARGET_ARCH" in
- mips*) _hash_style_configure="--enable-default-hash-style=sysv" ;;
- *) _hash_style_configure="--enable-default-hash-style=gnu" ;;
- esac
-
+ CFLAGS="$CFLAGS -O2" \
+ CXXFLAGS="$CXXFLAGS -O2" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -84,20 +88,29 @@ build() {
--prefix=/usr \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
- --disable-multilib \
- --enable-ld=default \
+ --sysconfdir=/etc \
+ $_arch_configure \
+ $_cross_configure \
$_gold_configure \
- --enable-64-bit-bfd \
$_plugin_configure \
- --enable-relro \
- --enable-deterministic-archives \
- $_cross_configure \
- $_arch_configure \
- $_hash_style_configure \
- --with-pic \
- --disable-werror \
+ $_noboot_configure \
+ --disable-gdb \
+ --disable-gprofng \
+ --disable-multilib \
--disable-nls \
+ --disable-werror \
+ --enable-64-bit-bfd \
+ --enable-colored-disassembly \
+ --enable-default-execstack=no \
+ --enable-default-hash-style=gnu \
+ --enable-deterministic-archives \
+ --enable-ld=default \
+ --enable-new-dtags \
+ --enable-relro \
+ --enable-threads \
+ --with-bugurl="https://gitlab.alpinelinux.org/alpine/aports/-/issues" \
--with-mmap \
+ --with-pic \
--with-system-zlib
make
}
@@ -117,33 +130,18 @@ package() {
fi
}
-libs() {
- pkgdesc="Runtime libraries from binutils - libbfd and libopcodes"
-
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/lib*.so "$subpkgdir"/usr/lib/
-}
-
gold() {
pkgdesc="GNU binutils - gold linker"
if [ -e "$pkgdir"/usr/bin/ld.gold ]; then
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/ld.gold "$subpkgdir"/usr/bin
+ amove usr/bin/ld.gold
fi
- mkdir -p "$subpkgdir"/usr/$CTARGET/bin
- mv "$pkgdir"/usr/$CTARGET/bin/ld.gold "$subpkgdir"/usr/$CTARGET/bin/ld.gold
+ amove usr/$CTARGET/bin/ld.gold
}
sha512sums="
-8bf0b0d193c9c010e0518ee2b2e5a830898af206510992483b427477ed178396cd210235e85fd7bd99a96fc6d5eedbeccbd48317a10f752b7336ada8b2bb826d binutils-2.38.tar.xz
-ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch
-f55cf2e0bf82f97583a1abe10710e4013ecf7d64f1da2ef8659a44a06d0dd8beaf58dab98a183488ea137f03e32d62efc878d95f018f836f8cec870bc448556f gold-mips.patch
-314d2ef9071c89940aa6c8118e8a1e2f191a5d0a4bf596da1ad9cc84f884d8bc7dea8bd7b9fc3f8f1bddd3fd41c6eb017e1e804044b3bf084df1ed9e6e095e2d ld-bfd-mips.patch
+155f3ba14cd220102f4f29a4f1e5cfee3c48aa03b74603460d05afb73c70d6657a9d87eee6eb88bf13203fe6f31177a5c9addc04384e956e7da8069c8ecd20a6 binutils-2.42.tar.xz
70ec22bd72ef6dddecfd970613387dd4a8cdc8730dd3cbf03d5a0c3a7c4d839383167bb06dad21bf7c235329fd44b5dc4aefe762f68544f17155cf002bf1be4a 0001-Revert-PR25882-.gnu.attributes-are-not-checked-for-s.patch
-609cd90d8b334eb309f586b17b9d335a08d3dbb6def7c3eb5c010028fcb681674031e5b9d853aa7a39a50304356a86afc184b85562b3f228f8197f4d29395c8f binutils-mips-disable-assert.patch
-27ea91e0e406e2ed464fd692cf92a07e338781789f2d968c8b95d9d5545985056a6f7f500df3952e5ab42165db28b741aa33d6b717e880b11a2e41fe406b13c4 binutils-ppc-fix-machine-options.patch
-a9efe2689624865f0ff33d4776a5bd295bcad6484bdd38d0ca490fea43691c4933ab33d17478851998eef12922dbf83d6c3225bb1f8faf92a1367d086390f7d3 binutils-s390x-1.patch
-0e291df80ad279005265634014d0935d2c115a5ed708d25407094b7ad4ddf267d1fb7fcbcb2d9ad73bd305b4e3974628b820bd1f249f56c095e4896872434cc9 binutils-s390x-2.patch
-63e58f45df3570279cb1ee5215ba3de77de012cac20da9cdd23f86a93890056e1efa397521559cfd0716d5239604607c440d8f4d089d83c98b8fbc1b5c5305f8 binutils-ppc64le-assertion.patch
+ecee33b0e435aa704af1c334e560f201638ff79e199aa11ed78a72f7c9b46f85fbb227af5748e735fd681d1965fcc42ac81b0c8824e540430ce0c706c81e8b49 binutils-ld-fix-static-linking.patch
+f901833707dbe38c6519df91f03c51886e7f11aabd0c2dbe869eb6ffedb38201c020a6d34b3fa8aaa7d195349a0dd934709ca41109047348a7f303d2a8bf4f75 LoongArch-Modify-inconsistent-behavior-of-ld-with-un.patch
"
diff --git a/main/binutils/LoongArch-Modify-inconsistent-behavior-of-ld-with-un.patch b/main/binutils/LoongArch-Modify-inconsistent-behavior-of-ld-with-un.patch
new file mode 100644
index 00000000000..2b2d75ef435
--- /dev/null
+++ b/main/binutils/LoongArch-Modify-inconsistent-behavior-of-ld-with-un.patch
@@ -0,0 +1,60 @@
+From 268391acb9fa956bad24533e2cc0d1459dea1b3d Mon Sep 17 00:00:00 2001
+From: ticat_fp <fanpeng@loongson.cn>
+Date: Mon, 26 Feb 2024 11:11:35 +0800
+Subject: [PATCH] LoongArch: Modify inconsistent behavior of ld with
+ --unresolved-symbols=ignore-all
+
+Remove duplicated check when producing executable files that reference external symbols
+defined in other files. RELOC_FOR_GLOBAL_SYMBOL will check it.
+
+Testcase is:
+resolv.c:
+int main(int argc, char *argv[]) {
+ return argc;
+}
+
+t.c:
+
+extern const struct my_struct ms1;
+static const struct my_struct *ms = &ms1;
+
+t.h:
+typedef struct my_struct {
+ char *str;
+ int i;
+} my_struct;
+
+Compiling and linking command with:
+gcc t.c -c ; gcc resolv.c -c
+gcc resolv.o t.o -o resolv -Wl,--unresolved-symbols=ignore-all
+
+Got error as:
+~/install/usr/bin/ld: t.o:(.data.rel+0x0): undefined reference to `ms1'
+collect2: error: ld returned 1 exit status
+---
+ bfd/elfnn-loongarch.c | 9 +--------
+ 1 file changed, 1 insertion(+), 8 deletions(-)
+
+diff --git a/bfd/elfnn-loongarch.c b/bfd/elfnn-loongarch.c
+index 1b5009e13b2..e96e0f53608 100644
+--- a/bfd/elfnn-loongarch.c
++++ b/bfd/elfnn-loongarch.c
+@@ -2868,14 +2868,7 @@ loongarch_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
+ else if (resolved_dynly)
+ {
+ if (h->dynindx == -1)
+- {
+- if (h->root.type == bfd_link_hash_undefined)
+- (*info->callbacks->undefined_symbol)
+- (info, name, input_bfd, input_section,
+- rel->r_offset, true);
+-
+- outrel.r_info = ELFNN_R_INFO (0, r_type);
+- }
++ outrel.r_info = ELFNN_R_INFO (0, r_type);
+ else
+ outrel.r_info = ELFNN_R_INFO (h->dynindx, r_type);
+
+--
+2.27.0
+
diff --git a/main/binutils/binutils-mips-disable-assert.patch b/main/binutils/binutils-mips-disable-assert.patch
deleted file mode 100644
index 1a78858033e..00000000000
--- a/main/binutils/binutils-mips-disable-assert.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff -urN binutils-2.35.2.orig/bfd/elfxx-mips.c binutils-2.35.2/bfd/elfxx-mips.c
---- binutils-2.35.2.orig/bfd/elfxx-mips.c 2021-01-30 01:38:03.000000000 -0700
-+++ binutils-2.35.2/bfd/elfxx-mips.c 2021-05-13 17:35:34.706913601 -0600
-@@ -6744,8 +6744,10 @@
- in the relocation. */
- if (h != NULL && ! SYMBOL_REFERENCES_LOCAL (info, &h->root))
- {
-+#if 0
- BFD_ASSERT (htab->root.target_os == is_vxworks
- || h->global_got_area != GGA_NONE);
-+#endif
- indx = h->root.dynindx;
- if (SGI_COMPAT (output_bfd))
- defined_p = h->root.def_regular;
diff --git a/main/binutils/binutils-ppc-fix-machine-options.patch b/main/binutils/binutils-ppc-fix-machine-options.patch
deleted file mode 100644
index 703ecf98a37..00000000000
--- a/main/binutils/binutils-ppc-fix-machine-options.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Fix for DARN opcode error during ppc64le compilation of rng-tools which
-occurs with binutils 2.38 but not with binutils 2.37..
-
-https://sourceware.org/git/?p=binutils-gdb.git;a=commitdiff;h=cebc89b9328;hp=9cbed90ee623d75e31994e7943960c997ba565f2
-
-
-diff -aur a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c
---- a/gas/config/tc-ppc.c
-+++ b/gas/config/tc-ppc.c
-@@ -5965,7 +5965,30 @@
- options do not count as a new machine, instead they add
- to currently selected opcodes. */
- ppc_cpu_t machine_sticky = 0;
-- new_cpu = ppc_parse_cpu (ppc_cpu, &machine_sticky, cpu_string);
-+ /* Unfortunately, some versions of gcc emit a .machine
-+ directive very near the start of the compiler's assembly
-+ output file. This is bad because it overrides user -Wa
-+ cpu selection. Worse, there are versions of gcc that
-+ emit the *wrong* cpu, not even respecting the -mcpu given
-+ to gcc. See gcc pr101393. And to compound the problem,
-+ as of 20220222 gcc doesn't pass the correct cpu option to
-+ gas on the command line. See gcc pr59828. Hack around
-+ this by keeping sticky options for an early .machine. */
-+ asection *sec;
-+ for (sec = stdoutput->sections; sec != NULL; sec = sec->next)
-+ {
-+ segment_info_type *info = seg_info (sec);
-+ /* Are the frags for this section perturbed from their
-+ initial state? Even .align will count here. */
-+ if (info != NULL
-+ && (info->frchainP->frch_root != info->frchainP->frch_last
-+ || info->frchainP->frch_root->fr_type != rs_fill
-+ || info->frchainP->frch_root->fr_fix != 0))
-+ break;
-+ }
-+ new_cpu = ppc_parse_cpu (ppc_cpu,
-+ sec == NULL ? &sticky : &machine_sticky,
-+ cpu_string);
- if (new_cpu != 0)
- ppc_cpu = new_cpu;
- else
diff --git a/main/binutils/binutils-ppc64le-assertion.patch b/main/binutils/binutils-ppc64le-assertion.patch
deleted file mode 100644
index cd6113e6f8b..00000000000
--- a/main/binutils/binutils-ppc64le-assertion.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 97dd8079feb35456d7b387a594b5e00f7654b3b8 Mon Sep 17 00:00:00 2001
-From: Alan Modra <amodra@gmail.com>
-Date: Thu, 23 Jun 2022 17:50:30 +0930
-Subject: [PATCH] PowerPC64: fix assertion in ppc_build_one_stub with -Os code
-
-save_res stubs aren't written in ppc_build_one_stub, their offsets
-(which are zero) should not be checked.
-
- * elf64-ppc.c (ppc_build_one_stub): Don't check save_res offsets.
-
-(cherry picked from commit 570e911f4e533fad33ad5e4e1102929cf7e80bd7)
----
- bfd/elf64-ppc.c | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c
-index cb12ed476d8..df503341fe9 100644
---- a/bfd/elf64-ppc.c
-+++ b/bfd/elf64-ppc.c
-@@ -11700,7 +11700,8 @@ ppc_build_one_stub (struct bfd_hash_entry *gen_entry, void *in_arg)
- if (htab == NULL)
- return false;
-
-- BFD_ASSERT (stub_entry->stub_offset >= stub_entry->group->stub_sec->size);
-+ BFD_ASSERT (stub_entry->stub_offset >= stub_entry->group->stub_sec->size
-+ || stub_entry->type.main == ppc_stub_save_res);
- loc = stub_entry->group->stub_sec->contents + stub_entry->stub_offset;
-
- htab->stub_count[stub_entry->type.main - 1] += 1;
---
-2.31.1
-
diff --git a/main/binutils/binutils-s390x-1.patch b/main/binutils/binutils-s390x-1.patch
deleted file mode 100644
index fab51a2fad6..00000000000
--- a/main/binutils/binutils-s390x-1.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-From 82a5bb730a16f8c7962568030268e784b4fb42c8 Mon Sep 17 00:00:00 2001
-From: Stefan Liebler <stli@linux.ibm.com>
-Date: Thu, 28 Apr 2022 14:29:58 +0200
-Subject: [PATCH] s390: Avoid dynamic TLS relocs in PIE
-
-No dynamic relocs are needed for TLS defined in an executable, the
-TP relative offset is known at link time.
-
-Fixes
-FAIL: Build pr22263-1
-
-bfd/
- PR ld/22263
- * elf64-s390.c (elf_s390_tls_transition): Use bfd_link_dll
- instead of bfd_link_pic for TLS.
- (elf_s390_check_relocs): Likewise.
- (allocate_dynrelocs): Likewise.
- (elf_s390_relocate_section): Likewise.
-
-(cherry picked from commit 26b1426577b5dcb32d149c64cca3e603b81948a9)
----
- bfd/elf64-s390.c | 26 +++++++++++++-------------
- 1 file changed, 13 insertions(+), 13 deletions(-)
-
-diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c
-index e780efa7181..00ee386baab 100644
---- a/bfd/elf64-s390.c
-+++ b/bfd/elf64-s390.c
-@@ -774,7 +774,7 @@ elf_s390_tls_transition (struct bfd_link_info *info,
- int r_type,
- int is_local)
- {
-- if (bfd_link_pic (info))
-+ if (bfd_link_dll (info))
- return r_type;
-
- switch (r_type)
-@@ -1026,7 +1026,7 @@ elf_s390_check_relocs (bfd *abfd,
- case R_390_TLS_GOTIE20:
- case R_390_TLS_GOTIE64:
- case R_390_TLS_IEENT:
-- if (bfd_link_pic (info))
-+ if (bfd_link_dll (info))
- info->flags |= DF_STATIC_TLS;
- /* Fall through */
-
-@@ -1107,7 +1107,7 @@ elf_s390_check_relocs (bfd *abfd,
- if (r_type == R_390_TLS_LE64 && bfd_link_pie (info))
- break;
-
-- if (!bfd_link_pic (info))
-+ if (!bfd_link_dll (info))
- break;
- info->flags |= DF_STATIC_TLS;
- /* Fall through */
-@@ -1571,7 +1571,7 @@ allocate_dynrelocs (struct elf_link_hash_entry *h,
- to R_390_TLS_LE64 requiring no TLS entry. For GOTIE12 and IEENT
- we can save the dynamic TLS relocation. */
- if (h->got.refcount > 0
-- && !bfd_link_pic (info)
-+ && !bfd_link_dll (info)
- && h->dynindx == -1
- && elf_s390_hash_entry(h)->tls_type >= GOT_TLS_IE)
- {
-@@ -2662,7 +2662,7 @@ elf_s390_relocate_section (bfd *output_bfd,
-
- /* Relocations for tls literal pool entries. */
- case R_390_TLS_IE64:
-- if (bfd_link_pic (info))
-+ if (bfd_link_dll (info))
- {
- Elf_Internal_Rela outrel;
- asection *sreloc;
-@@ -2690,7 +2690,7 @@ elf_s390_relocate_section (bfd *output_bfd,
- else if (h != NULL)
- {
- tls_type = elf_s390_hash_entry(h)->tls_type;
-- if (!bfd_link_pic (info) && h->dynindx == -1 && tls_type >= GOT_TLS_IE)
-+ if (!bfd_link_dll (info) && h->dynindx == -1 && tls_type >= GOT_TLS_IE)
- r_type = R_390_TLS_LE64;
- }
- if (r_type == R_390_TLS_GD64 && tls_type >= GOT_TLS_IE)
-@@ -2801,14 +2801,14 @@ elf_s390_relocate_section (bfd *output_bfd,
- if (local_got_offsets == NULL)
- abort();
- off = local_got_offsets[r_symndx];
-- if (bfd_link_pic (info))
-+ if (bfd_link_dll (info))
- goto emit_tls_relocs;
- }
- else
- {
- off = h->got.offset;
- tls_type = elf_s390_hash_entry(h)->tls_type;
-- if (bfd_link_pic (info) || h->dynindx != -1 || tls_type < GOT_TLS_IE)
-+ if (bfd_link_dll (info) || h->dynindx != -1 || tls_type < GOT_TLS_IE)
- goto emit_tls_relocs;
- }
-
-@@ -2825,7 +2825,7 @@ elf_s390_relocate_section (bfd *output_bfd,
- break;
-
- case R_390_TLS_LDM64:
-- if (! bfd_link_pic (info))
-+ if (! bfd_link_dll (info))
- /* The literal pool entry this relocation refers to gets ignored
- by the optimized code of the local exec model. Do nothing
- and the value will turn out zero. */
-@@ -2900,7 +2900,7 @@ elf_s390_relocate_section (bfd *output_bfd,
- continue;
-
- case R_390_TLS_LDO64:
-- if (bfd_link_pic (info) || (input_section->flags & SEC_DEBUGGING))
-+ if (bfd_link_dll (info) || (input_section->flags & SEC_DEBUGGING))
- relocation -= dtpoff_base (info);
- else
- /* When converting LDO to LE, we must negate. */
-@@ -2922,7 +2922,7 @@ elf_s390_relocate_section (bfd *output_bfd,
-
- if (r_type == R_390_TLS_LOAD)
- {
-- if (!bfd_link_pic (info) && (h == NULL || h->dynindx == -1))
-+ if (!bfd_link_dll (info) && (h == NULL || h->dynindx == -1))
- {
- /* IE->LE transition. Four valid cases:
- lg %rx,(0,%ry) -> sllg %rx,%ry,0
-@@ -2972,7 +2972,7 @@ elf_s390_relocate_section (bfd *output_bfd,
- invalid_tls_insn (input_bfd, input_section, rel);
- return false;
- }
-- if (!bfd_link_pic (info) && (h == NULL || h->dynindx == -1))
-+ if (!bfd_link_dll (info) && (h == NULL || h->dynindx == -1))
- {
- /* GD->LE transition.
- brasl %r14,__tls_get_addr@plt -> brcl 0,. */
-@@ -2991,7 +2991,7 @@ elf_s390_relocate_section (bfd *output_bfd,
- }
- else if (r_type == R_390_TLS_LDCALL)
- {
-- if (!bfd_link_pic (info))
-+ if (!bfd_link_dll (info))
- {
- unsigned int insn0, insn1;
-
---
-2.27.0
-
diff --git a/main/binutils/binutils-s390x-2.patch b/main/binutils/binutils-s390x-2.patch
deleted file mode 100644
index 75d7a931a32..00000000000
--- a/main/binutils/binutils-s390x-2.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 9a01457e02e7bb594ff9a9ac62a38c909e2e3083 Mon Sep 17 00:00:00 2001
-From: Stefan Liebler <stli@linux.ibm.com>
-Date: Thu, 28 Apr 2022 14:30:55 +0200
-Subject: [PATCH] s390: Add DT_JMPREL pointing to .rela.[i]plt with static-pie
-
-In static-pie case, there are IRELATIVE-relocs in
-.rela.iplt (htab->irelplt), which will later be grouped
-to .rela.plt. On s390, the IRELATIVE relocations are
-always located in .rela.iplt - even for non-static case.
-Ensure that DT_JMPREL, DT_PLTRELA, DT_PLTRELASZ is added
-to the dynamic section even if htab->srelplt->size == 0.
-See _bfd_elf_add_dynamic_tags in bfd/elflink.c.
-
-bfd/
- elf64-s390.c (elf_s390_size_dynamic_sections):
- Enforce DT_JMPREL via htab->elf.dt_jmprel_required.
-
-(cherry picked from commit d942d8db12adf4c9e5c7d9ed6496a779ece7149e)
----
- bfd/elf64-s390.c | 15 ++++++++++++++-
- 1 file changed, 14 insertions(+), 1 deletion(-)
-
-diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c
-index 00ee386baab..0b851f7ac0e 100644
---- a/bfd/elf64-s390.c
-+++ b/bfd/elf64-s390.c
-@@ -1876,7 +1876,20 @@ elf_s390_size_dynamic_sections (bfd *output_bfd ATTRIBUTE_UNUSED,
- else if (startswith (bfd_section_name (s), ".rela"))
- {
- if (s->size != 0 && s != htab->elf.srelplt)
-- relocs = true;
-+ {
-+ relocs = true;
-+ if (s == htab->elf.irelplt)
-+ {
-+ /* In static-pie case, there are IRELATIVE-relocs in
-+ .rela.iplt (htab->irelplt), which will later be grouped
-+ to .rela.plt. On s390, the IRELATIVE relocations are
-+ always located in .rela.iplt - even for non-static case.
-+ Ensure that DT_JMPREL, DT_PLTRELA, DT_PLTRELASZ is added
-+ to the dynamic section even if htab->srelplt->size == 0.
-+ See _bfd_elf_add_dynamic_tags in bfd/elflink.c. */
-+ htab->elf.dt_jmprel_required = true;
-+ }
-+ }
-
- /* We use the reloc_count field as a counter if we need
- to copy relocs into the output file. */
---
-2.27.0
-
diff --git a/main/binutils/gold-mips.patch b/main/binutils/gold-mips.patch
deleted file mode 100644
index 291a2aae6a0..00000000000
--- a/main/binutils/gold-mips.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-# DP: Fix gold on mips64 targets.
-
-gold/
-
-2016-08-09 Aurelien Jarno <aurelien@aurel32.net>
-
- * configure.tgt: Add mips64el*-*-*|mips64le*-*-* and mips64*-*-*.
-
-
---- a/gold/configure.tgt
-+++ b/gold/configure.tgt
-@@ -153,6 +153,13 @@ aarch64*-*)
- targ_big_endian=false
- targ_extra_big_endian=true
- ;;
-+mips*64*el*-*-*|mips*64*le*-*-*)
-+ targ_obj=mips
-+ targ_machine=EM_MIPS_RS3_LE
-+ targ_size=64
-+ targ_big_endian=false
-+ targ_extra_big_endian=true
-+ ;;
- mips*el*-*-*|mips*le*-*-*)
- targ_obj=mips
- targ_machine=EM_MIPS_RS3_LE
-@@ -160,6 +167,13 @@ mips*el*-*-*|mips*le*-*-*)
- targ_big_endian=false
- targ_extra_big_endian=true
- ;;
-+mips*64*-*-*)
-+ targ_obj=mips
-+ targ_machine=EM_MIPS
-+ targ_size=64
-+ targ_big_endian=true
-+ targ_extra_big_endian=false
-+ ;;
- mips*-*-*)
- targ_obj=mips
- targ_machine=EM_MIPS
diff --git a/main/binutils/ld-bfd-mips.patch b/main/binutils/ld-bfd-mips.patch
deleted file mode 100644
index 2991c885712..00000000000
--- a/main/binutils/ld-bfd-mips.patch
+++ /dev/null
@@ -1,19 +0,0 @@
---- ./ld/configure.tgt.orig
-+++ ./ld/configure.tgt
-@@ -541,12 +541,12 @@
- ;;
- mips*-*-windiss) targ_emul=elf32mipswindiss
- ;;
--mips64*el-*-linux-*) targ_emul=elf32ltsmipn32
-- targ_extra_emuls="elf32btsmipn32 elf32ltsmip elf32btsmip elf64ltsmip elf64btsmip"
-+mips64*el-*-linux-*) targ_emul=elf64ltsmip
-+ targ_extra_emuls="elf32ltsmipn32 elf32btsmipn32 elf32ltsmip elf32btsmip elf64btsmip"
- targ_extra_libpath=$targ_extra_emuls
- ;;
--mips64*-*-linux-*) targ_emul=elf32btsmipn32
-- targ_extra_emuls="elf32ltsmipn32 elf32btsmip elf32ltsmip elf64btsmip elf64ltsmip"
-+mips64*-*-linux-*) targ_emul=elf64btsmip
-+ targ_extra_emuls="elf32btsmipn32 elf32ltsmipn32 elf32btsmip elf32ltsmip elf64ltsmip"
- targ_extra_libpath=$targ_extra_emuls
- ;;
- mips*el-*-linux-*) targ_emul=elf32ltsmip
diff --git a/main/bison/APKBUILD b/main/bison/APKBUILD
index fab20a4ab14..f3424ec3fc1 100644
--- a/main/bison/APKBUILD
+++ b/main/bison/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=bison
-pkgver=3.7.6
-pkgrel=0
+pkgver=3.8.2
+pkgrel=1
pkgdesc="The GNU general-purpose parser generator"
arch="all"
license="GPL-3.0-or-later"
@@ -21,6 +21,9 @@ subpackages="$pkgname-doc"
# - CVE-2020-24980
build() {
+ # work around temporary failure for armhf
+ CFLAGS="$CFLAGS -O2" \
+ CXXFLAGS="$CXXFLAGS -O2" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -41,4 +44,6 @@ package() {
rmdir -p "$pkgdir"/usr/lib 2>/dev/null || true
}
-sha512sums="6c1c9b825fbd2c94b8903f03a7e68e6832599f7bbd8d3c49864537c11b038c45a15de02fd36128d662af314334c83515bbc132df84e9acc6c651e98649c65bad bison-3.7.6.tar.xz"
+sha512sums="
+d4d23af6671406e97257892f90651b67f2ab95219831372be032190b7156c10a3435d457857e677445df8b2327aacccc15344acbbc3808a6f332a93cce23b444 bison-3.8.2.tar.xz
+"
diff --git a/main/bluez-firmware/APKBUILD b/main/bluez-firmware/APKBUILD
index e13d3d2c333..b52cb5c15e8 100644
--- a/main/bluez-firmware/APKBUILD
+++ b/main/bluez-firmware/APKBUILD
@@ -1,12 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=bluez-firmware
pkgver=1.2
-pkgrel=1
+pkgrel=2
pkgdesc="Firmware for Broadcom BCM203x Blutonium devices"
-url="http://www.bluez.org/"
+url="https://www.bluez.org/"
arch="all"
license="GPL-2.0-or-later"
-source="http://bluez.sf.net/download/bluez-firmware-$pkgver.tar.gz"
+source="https://distfiles.alpinelinux.org/distfiles/edge/bluez-firmware-$pkgver.tar.gz"
+options="!check"
build() {
./configure \
diff --git a/main/bluez-headers/APKBUILD b/main/bluez-headers/APKBUILD
new file mode 100644
index 00000000000..1741f6517a9
--- /dev/null
+++ b/main/bluez-headers/APKBUILD
@@ -0,0 +1,35 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=bluez-headers
+pkgver=5.73
+pkgrel=0
+pkgdesc="Bluez development headers"
+url="https://www.bluez.org/"
+arch="noarch"
+license="GPL-2.0-or-later"
+depends="!bluez-dev"
+source="https://www.kernel.org/pub/linux/bluetooth/bluez-$pkgver.tar.xz"
+builddir="$srcdir/bluez-$pkgver"
+options="!check" # just headers
+
+package() {
+ local headers="
+ bluetooth
+ bnep
+ cmtp
+ hci
+ hci_lib
+ hidp
+ l2cap
+ rfcomm
+ sco
+ sdp
+ sdp_lib
+ "
+ for header in $headers; do
+ install -Dm644 ./lib/$header.h -t "$pkgdir"/usr/include/bluetooth
+ done
+}
+
+sha512sums="
+20090da036d3d614706b14a757b02acf138859d8f0476aa7f68d57635dfb3632ce7d8bb3456320904d72333d1314a5fe14dcb8ece307e6d31ce6d2d516de25e8 bluez-5.73.tar.xz
+"
diff --git a/main/bluez/004-Move-the-43xx-firmware-into-lib-firmware.patch b/main/bluez/004-Move-the-43xx-firmware-into-lib-firmware.patch
index 80b052d5b72..67410c76f61 100644
--- a/main/bluez/004-Move-the-43xx-firmware-into-lib-firmware.patch
+++ b/main/bluez/004-Move-the-43xx-firmware-into-lib-firmware.patch
@@ -1,20 +1,13 @@
-From 76681284b0ea49852041fdb97a35175089a08781 Mon Sep 17 00:00:00 2001
-From: Phil Elwell <phil@raspberrypi.org>
-Date: Tue, 23 Feb 2016 17:52:29 +0000
-Subject: [PATCH 4/4] Move the 43xx firmware into /lib/firmware
-
----
- tools/hciattach_bcm43xx.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
---- a/tools/hciattach_bcm43xx.c
-+++ b/tools/hciattach_bcm43xx.c
-@@ -43,7 +43,7 @@
- #include "hciattach.h"
+diff --git a/tools/hciattach.h b/tools/hciattach.h
+index dfa4c1e..c21dbda 100644
+--- a/tools/hciattach.h
++++ b/tools/hciattach.h
+@@ -41,7 +41,7 @@
+ #define HCI_UART_VND_DETECT 5
#ifndef FIRMWARE_DIR
-#define FIRMWARE_DIR "/etc/firmware"
-+#define FIRMWARE_DIR "/lib/firmware/brcm"
++#define FIRMWARE_DIR "/lib/firmware"
#endif
- #define FW_EXT ".hcd"
+ int read_hci_event(int fd, unsigned char *buf, int size);
diff --git a/main/bluez/APKBUILD b/main/bluez/APKBUILD
index 43a60730053..456ebb1b5eb 100644
--- a/main/bluez/APKBUILD
+++ b/main/bluez/APKBUILD
@@ -1,18 +1,30 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=bluez
-pkgver=5.64
+# Make sure to also update the obexd-enhanced package if updating bluez
+pkgver=5.73
pkgrel=0
pkgdesc="Tools for the Bluetooth protocol stack"
-url="http://www.bluez.org/"
+url="https://www.bluez.org/"
arch="all"
-license="GPL-2.0-or-later"
+license="GPL-2.0-or-later AND BSD-2-Clause AND MIT"
depends="dbus"
replaces="udev"
-makedepends="dbus-dev libusb-compat-dev eudev-dev json-c-dev
- libical-dev readline-dev glib-dev linux-headers
- autoconf automake libtool ell-dev py3-docutils"
+makedepends="
+ dbus-dev
+ ell-dev
+ eudev-dev
+ glib-dev
+ json-c-dev
+ libical-dev
+ libtool
+ linux-headers
+ py3-docutils
+ py3-pygments
+ readline-dev
+ "
subpackages="
+ $pkgname-dbg
$pkgname-dev
$pkgname-doc
$pkgname-libs
@@ -25,7 +37,6 @@ subpackages="
$pkgname-hid2hci
$pkgname-meshctl
$pkgname-obexd
- $pkgname-plugins
$pkgname-zsh-completion
"
source="https://www.kernel.org/pub/linux/bluetooth/bluez-$pkgver.tar.xz
@@ -41,27 +52,15 @@ source="https://www.kernel.org/pub/linux/bluetooth/bluez-$pkgver.tar.xz
005-hostname-Use-phone-class-for-handhelds.patch
disable-lock-test.patch
fix-endianness.patch
- musl.patch
test-mesh-crypto.patch
- fix-musl.patch
"
-case "$CARCH" in
- # crypto tests assume little-endian
- mips*) options="!check";;
-esac
-
# secfixes:
# 5.54-r0:
# - CVE-2020-0556
-prepare() {
- default_prepare
-
- autoreconf -vif
-}
-
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -81,20 +80,27 @@ build() {
}
check() {
- make check
+ make check || {
+ cat test-suite.log
+ return 1
+ }
}
package() {
- make install DESTDIR="$pkgdir"
+ make DESTDIR="$pkgdir" install install-pluginLTLIBRARIES
+
install -D -m644 src/main.conf "$pkgdir"/etc/bluetooth/main.conf
install -Dm755 "$srcdir"/bluetooth.initd "$pkgdir"/etc/init.d/bluetooth
install -Dm755 "$srcdir"/rfcomm.initd "$pkgdir"/etc/init.d/rfcomm
install -Dm644 "$srcdir"/rfcomm.confd "$pkgdir"/etc/conf.d/rfcomm
- # Fix shebang for the installed binary
- sed 's|^#!/usr/bin/python$|#!/usr/bin/env python3|g' -i test/simple-agent
install -Dm755 test/simple-agent "$pkgdir"/usr/bin/bluez-simple-agent
+ install -Dm755 tools/btmgmt -t "$pkgdir"/usr/bin/
+ install -Dm755 attrib/gatttool -t "$pkgdir"/usr/bin/
+
+ install -Dm644 "$srcdir"/org.bluez.obex.service \
+ "$pkgdir"/usr/share/dbus-1/services/org.bluez.obex.service
# Autostart mpris-proxy to pass through MPRIS control over BlueZ
install -Dm644 "$srcdir"/mpris-proxy.desktop -t "$pkgdir"/etc/xdg/autostart/
@@ -102,63 +108,50 @@ package() {
btmgmt() {
pkgdesc="Bluez tool for the Bluetooth Management API"
- install -Dm755 "$builddir"/tools/btmgmt "$subpkgdir"/usr/bin/btmgmt
+ amove usr/bin/btmgmt
}
btmon() {
pkgdesc="Bluez bluetooth monitor"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/btmon "$subpkgdir"/usr/bin/
+ amove usr/bin/btmon
}
cups() {
pkgdesc="Bluez backend for CUPS"
- mkdir -p "$subpkgdir"/usr/lib/
- mv "$pkgdir"/usr/lib/cups "$subpkgdir"/usr/lib/
+ amove usr/lib/cups
}
hid2hci() {
pkgdesc="Put HID proxying bluetooth HCI's into HCI mode"
replaces="bluez"
- mkdir -p "$subpkgdir"
- mv "$pkgdir"/lib "$subpkgdir"/
+ amove /lib
}
deprecated() {
pkgdesc="Deprecated bluetooth tools"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/ciptool \
- "$builddir"/attrib/gatttool \
- "$pkgdir"/usr/bin/hciattach \
- "$pkgdir"/usr/bin/hciconfig \
- "$pkgdir"/usr/bin/hcidump \
- "$pkgdir"/usr/bin/hcitool \
- "$pkgdir"/usr/bin/rfcomm \
- "$pkgdir"/usr/bin/sdptool \
- "$subpkgdir"/usr/bin/
+ amove \
+ usr/bin/ciptool \
+ usr/bin/gatttool \
+ usr/bin/hciattach \
+ usr/bin/hciconfig \
+ usr/bin/hcidump \
+ usr/bin/hcitool \
+ usr/bin/rfcomm \
+ usr/bin/sdptool
}
meshctl() {
pkgdesc="Bluez tool for interacting with bluetooth mesh networks"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/meshctl "$subpkgdir"/usr/bin/
+ amove usr/bin/meshctl
}
obexd() {
pkgdesc="Bluez OBEX daemon"
- mkdir -p "$subpkgdir"/usr/lib/bluetooth
- mv "$pkgdir"/usr/lib/bluetooth/obexd "$subpkgdir"/usr/lib/bluetooth
- install -Dm644 "$srcdir"/org.bluez.obex.service \
- "$subpkgdir"/usr/share/dbus-1/services/org.bluez.obex.service
-}
-
-plugins() {
- pkgdesc="Bluez plugins (PS3 Sixaxis controller)"
- cd "$builddir"
- make DESTDIR="$subpkgdir" install-pluginLTLIBRARIES
-
- # These are installed but should not be part of this package
- rm $subpkgdir/usr/lib/libbluetooth.so*
+ provides="obexd"
+ provider_priority=100
+ amove \
+ usr/lib/bluetooth/obexd \
+ usr/share/dbus-1/services/org.bluez.obex.service
}
openrc() {
@@ -187,8 +180,8 @@ openrc() {
}
sha512sums="
-f11f9974b29c5c6fce3890d7e42425c1cb02e42c1b8f49c5cc4b249234e67b64317d0e5e82721e2fbf1b53269c8569a9c869d59ce42b5e927f6622f0753e53cd bluez-5.64.tar.xz
-e1d64fac673cceb657684b1bc5c36ff6d05f7cc5832d940863129adacd5b8ade1315b14df039a61f061950ac99e155266530efe2d2d35ea3c145b0469698a726 bluetooth.initd
+20090da036d3d614706b14a757b02acf138859d8f0476aa7f68d57635dfb3632ce7d8bb3456320904d72333d1314a5fe14dcb8ece307e6d31ce6d2d516de25e8 bluez-5.73.tar.xz
+5442f4f489718e51c50611c143803f2cc99e540b55a72af20ea2921b256774a6c7c5e273f2bedb745753d8c67d3fb7c938750fb48feac7460b32bd1cca029a28 bluetooth.initd
8d7b7c8938a2316ce0a855e9bdf1ef8fcdf33d23f4011df828270a088b88b140a19c432e83fef15355d0829e3c86be05b63e7718fef88563254ea239b8dc12ac rfcomm.initd
a70aa0dbbabe7e29ee81540a6f98bf191a850da55a28f678975635caf34b363cf4d461a801b3484120ee28fdd21240bd456a4f5d706262700924bd2e9a0972fb rfcomm.confd
d6766a4992ed4141569d6d82a802a771a5cb4c08873bfb0fdbedeea4d738bf9b56d9e0452ec19b7635418b1af4ab9b1735692043d629cbed3ce0eda6f51e1c6f org.bluez.obex.service
@@ -196,11 +189,9 @@ d6766a4992ed4141569d6d82a802a771a5cb4c08873bfb0fdbedeea4d738bf9b56d9e0452ec19b76
73202915fda01d420b2864da77b1c25af5a55c815e9be6546400a0940bfb6097d83322790bc22a80ec0fcd557144fdd1877e243a79285a7f040ff96ba3600b94 001-bcm43xx-Add-bcm43xx-3wire-variant.patch
d5fd1c962bd846eaa6fff879bab85f753eb367d514f82d133b5d3242e1da989af5eddd942c60a87d5b67783e060f91bfa0f74fb1e8e6699cdee6e5bbe6a431ea 002-bcm43xx-The-UART-speed-must-be-reset-after-the-firmw.patch
784e9644c8de4e2693e2eeed988a245608b8cb14e1fc0dff8795c60c527b2e8d0c87862cfbfd6b850b47ae80cdf993a5ed3f477078ea1068fd7374899c7a1a77 003-Increase-firmware-load-timeout-to-30s.patch
-42ac04044a8c66e07487598b3a75ef52efc32999ebce4e7c63f6198e2f603f4a1442e74600e43a0938cb4f52d4db0298aa99050b18144b84990cda71748e9de5 004-Move-the-43xx-firmware-into-lib-firmware.patch
+6d864d893aaf08d7a04f5cb27a6b2767c361cd41e479f27ed84d9fbbd2677298c15e31161a614af098df8faf3da54b71cf315fe8e9a9a2f671e4720c7b8b457b 004-Move-the-43xx-firmware-into-lib-firmware.patch
ac635f9bca0e983835940572eb1b96ad70cf60fb84d5b0fde38c76ea6d1b13ef7d9adf81468b9fed779c890ab69dd5dfabf21970bff018466115c424668b82fb 005-hostname-Use-phone-class-for-handhelds.patch
04c4889372c8e790bb338dde7ffa76dc32fcf7370025c71b9184fcf17fd01ade4a6613d84d648303af3bbc54043ad489f29fc0cd4679ec8c9029dcb846d7e026 disable-lock-test.patch
-93ef2fe4e72cfa50d577adbae8de7449d3d070ab00d888bcc378d8a1783191130bf555f63cea781595701a5ef8b34355feae276423b10b1e22e2e43d10e09eac fix-endianness.patch
-641e425333d269833eed624edec0e29cba04bb0ff6570f6afda178a164fc2bb77456fa88957fe49f36000d3601ac00bb7ba089400977c1577e9c226e74baa3d6 musl.patch
-9c57bb1abf1b4927441a2a25c3c2599b0da82850e6b945d09e824e25be7c7efa99e54999cf5b799a1093303202badf08833cc4ccb36203901dfa516031ea8eb0 test-mesh-crypto.patch
-2e92639512c11e69d3c47e222a012b4f58fa7727d18b3639130e8fe91654773b1205ddbe650efe49a26ec41a64d39ddba2806503272e09252c51d194e3ced33d fix-musl.patch
+2f54da5e77893d1d8b7164ddac5561a9e536c2b93b1d33dcbd97e74c0fd45588f1f50dc1d9d8519297871e3a376948082a2e45e27d823ec81cdedecd8dba3f0c fix-endianness.patch
+b5d6f7d2df755a9b8cffaeef13d232ba1bab27544bc59e2299bbd6a8017768cf7781f3ca65e430a149a26f0b30ae74b8510529ce161705bb6f41ae512cc2dbac test-mesh-crypto.patch
"
diff --git a/main/bluez/bluetooth.initd b/main/bluez/bluetooth.initd
index 3e5ec982f83..4fb1c0bfbb7 100644
--- a/main/bluez/bluetooth.initd
+++ b/main/bluez/bluetooth.initd
@@ -2,9 +2,8 @@
name="Bluetooth"
command="/usr/lib/bluetooth/bluetoothd"
-pidfile="/var/run/bluetoothd.pid"
-start_stop_daemon_args="--background --make-pidfile"
-
+pidfile="/run/bluetoothd.pid"
+command_background=true
depend() {
after coldplug udev-postmount
diff --git a/main/bluez/fix-endianness.patch b/main/bluez/fix-endianness.patch
index c60e229329c..44bbf44ddc5 100644
--- a/main/bluez/fix-endianness.patch
+++ b/main/bluez/fix-endianness.patch
@@ -1,13 +1,12 @@
+diff --git a/src/shared/util.h b/src/shared/util.h
+index ce57b53..da99a4c 100644
--- a/src/shared/util.h
+++ b/src/shared/util.h
-@@ -15,6 +15,7 @@
- #include <byteswap.h>
+@@ -17,6 +17,7 @@
#include <string.h>
#include <sys/types.h>
+ #include <sys/uio.h>
+#include <endian.h>
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]))
#define BIT(n) (1 << (n))
---
-2.30.2
-
diff --git a/main/bluez/fix-musl.patch b/main/bluez/fix-musl.patch
deleted file mode 100644
index 436fc5d2bf0..00000000000
--- a/main/bluez/fix-musl.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/tools/mesh-cfgtest.c b/tools/mesh-cfgtest.c
-index fa0474f..9b68314 100644
---- a/tools/mesh-cfgtest.c
-+++ b/tools/mesh-cfgtest.c
-@@ -26,6 +26,7 @@
- #include <time.h>
- #include <unistd.h>
- #include <sys/stat.h>
-+#include <limits.h> /* PATH_MAX */
-
- #include <ell/ell.h>
-
diff --git a/main/bluez/musl.patch b/main/bluez/musl.patch
deleted file mode 100644
index cd8f08568f4..00000000000
--- a/main/bluez/musl.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/mesh/net.h b/mesh/net.h
-index 150240f..a3dec2b 100644
---- a/mesh/net.h
-+++ b/mesh/net.h
-@@ -21,6 +21,8 @@
- #define __packed __attribute__((packed))
- #endif
-
-+#include <sys/time.h> /* for timeval */
-+
- struct mesh_io;
- struct mesh_node;
-
diff --git a/main/bluez/test-mesh-crypto.patch b/main/bluez/test-mesh-crypto.patch
index 90fc2933117..ccaf8001e64 100644
--- a/main/bluez/test-mesh-crypto.patch
+++ b/main/bluez/test-mesh-crypto.patch
@@ -1,14 +1,61 @@
Requires kernel option that might not be enabled on the builder
https://bugzilla.kernel.org/show_bug.cgi?id=206815
-diff --git a/Makefile.am b/Makefile.am
-index ff0df21..a384c31 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -539,7 +539,6 @@ unit_test_midi_LDADD = src/libshared-glib.la \
- endif
+diff --git a/unit/test-mesh-crypto.c b/unit/test-mesh-crypto.c
+--- a/unit/test-mesh-crypto.c
++++ b/unit/test-mesh-crypto.c
+@@ -2137,55 +2137,5 @@
+ {
+ l_log_set_stderr();
- if MESH
--unit_tests += unit/test-mesh-crypto
- unit_test_mesh_crypto_CPPFLAGS = $(ell_cflags)
- unit_test_mesh_crypto_SOURCES = unit/test-mesh-crypto.c \
- mesh/crypto.h ell/internal ell/ell.h
+- /* Section 8.1 Sample Data Tests */
+- check_s1(&s8_1_1);
+- check_k1(&s8_1_2);
+- check_k2(&s8_1_3);
+- check_k2(&s8_1_4);
+- check_k3(&s8_1_5);
+- check_k4(&s8_1_6);
+-
+- /* Section 8.2 Sample Data Tests */
+- check_k4(&s8_2_1);
+- check_k2(&s8_2_2);
+- check_k2(&s8_2_3);
+- check_k3(&s8_2_4);
+- check_k128(&s8_2_5);
+- check_k128(&s8_2_6);
+-
+- /* Section 8.3 Sample Data Tests */
+- check_encrypt(&s8_3_1);
+- check_decrypt(&s8_3_1);
+- check_encrypt(&s8_3_2);
+- check_decrypt(&s8_3_2);
+- check_encrypt(&s8_3_3);
+- check_decrypt(&s8_3_3);
+- check_encrypt(&s8_3_4);
+- check_decrypt(&s8_3_4);
+- check_encrypt(&s8_3_5);
+- check_decrypt(&s8_3_5);
+- check_encrypt(&s8_3_6);
+- check_decrypt(&s8_3_6);
+- check_encrypt(&s8_3_7);
+- check_decrypt(&s8_3_7);
+- check_encrypt(&s8_3_8); /* Single segment tester unavailable */
+- check_decrypt(&s8_3_8); /* Single segment tester unavailable */
+- check_encrypt(&s8_3_9);
+- check_decrypt(&s8_3_9);
+- check_encrypt(&s8_3_10);
+- check_decrypt(&s8_3_10);
+- check_encrypt(&s8_3_11); /* Single segment tester unavailable */
+- check_decrypt(&s8_3_11); /* Single segment tester unavailable */
+- check_encrypt(&s8_3_22);
+- check_decrypt(&s8_3_22);
+-
+- /* Section 8.4 Beacon Sample Data */
+- check_beacon(&s8_4_3);
+- check_beacon(&s8_4_6_1);
+- check_beacon(&s8_4_6_2);
+-
+- /* Section 8.6 Mesh Proxy Service sample data */
+- check_id_beacon(&s8_6_2);
+-
+ return 0;
+ }
diff --git a/main/bmd-tools/APKBUILD b/main/bmd-tools/APKBUILD
index 482eb62e9af..83338f1f40c 100644
--- a/main/bmd-tools/APKBUILD
+++ b/main/bmd-tools/APKBUILD
@@ -1,16 +1,18 @@
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=bmd-tools
pkgver=1.0.2
-pkgrel=2
+pkgrel=5
pkgdesc="Tools for Blackmagic USB video encoders"
url="https://github.com/fabled/bmd-tools"
arch="all"
license="MIT"
makedepends="libusb-dev"
+subpackages="$pkgname-openrc"
source="bmd-tools-$pkgver.tar.gz::https://github.com/fabled/bmd-tools/archive/v$pkgver.tar.gz
bmd-streamer.initd
bmd-streamer.confd
"
+options="!check"
build() {
make
diff --git a/main/bonding/APKBUILD b/main/bonding/APKBUILD
index 39d2643009c..b2b3e8d8c57 100644
--- a/main/bonding/APKBUILD
+++ b/main/bonding/APKBUILD
@@ -11,6 +11,7 @@ url="https://wiki.alpinelinux.org/wiki/Bonding"
arch="noarch"
license="GPL-2.0-or-later"
source="bonding.pre-up bonding.up bonding.post-down"
+options="!check"
package() {
cd "$srcdir"
diff --git a/main/boost1.78/0001-revert-cease-dependence-on-range.patch b/main/boost1.78/0001-revert-cease-dependence-on-range.patch
deleted file mode 100644
index a6002074ab9..00000000000
--- a/main/boost1.78/0001-revert-cease-dependence-on-range.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 436e1dbe6fcd31523d261d18ad011392f1d6fbbc Mon Sep 17 00:00:00 2001
-From: Oliver Kowalke <oliver.kowalke@gmail.com>
-Date: Sun, 1 Dec 2019 20:40:28 +0100
-Subject: [PATCH] Revert "Cease dependence on Range"
-
-This reverts commit 0c556bb59241e682bbcd3f572815149c5a9b17db.
-
-see #44 (One test fails to compile after boostorg/coroutine submodule updated)
----
- boost/coroutine/asymmetric_coroutine.hpp | 12 +++---------
- 1 file changed, 3 insertions(+), 9 deletions(-)
-
-diff --git a/boost/coroutine/asymmetric_coroutine.hpp b/boost/coroutine/asymmetric_coroutine.hpp
-index ea96981..640896f 100644
---- a/boost/coroutine/asymmetric_coroutine.hpp
-+++ b/boost/coroutine/asymmetric_coroutine.hpp
-@@ -14,6 +14,7 @@
- #include <boost/assert.hpp>
- #include <boost/config.hpp>
- #include <boost/move/move.hpp>
-+#include <boost/range.hpp>
- #include <boost/throw_exception.hpp>
- #include <boost/utility/explicit_operator_bool.hpp>
-
-@@ -2354,19 +2355,12 @@ end( push_coroutine< R > & c)
-
- }
-
--// forward declaration of Boost.Range traits to break dependency on it
--template<typename C, typename Enabler>
--struct range_mutable_iterator;
--
--template<typename C, typename Enabler>
--struct range_const_iterator;
--
- template< typename Arg >
--struct range_mutable_iterator< coroutines::push_coroutine< Arg >, void >
-+struct range_mutable_iterator< coroutines::push_coroutine< Arg > >
- { typedef typename coroutines::push_coroutine< Arg >::iterator type; };
-
- template< typename R >
--struct range_mutable_iterator< coroutines::pull_coroutine< R >, void >
-+struct range_mutable_iterator< coroutines::pull_coroutine< R > >
- { typedef typename coroutines::pull_coroutine< R >::iterator type; };
-
- }
---
-2.24.1
-
diff --git a/main/boost1.78/bjam-no-skip-install.patch b/main/boost1.78/bjam-no-skip-install.patch
deleted file mode 100644
index bf63081f524..00000000000
--- a/main/boost1.78/bjam-no-skip-install.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-Patch-Source: https://github.com/bfgroup/b2/commit/78fd284a42caabe8815cb0870b46e5567872e75b
-From 78fd284a42caabe8815cb0870b46e5567872e75b Mon Sep 17 00:00:00 2001
-From: Dmitry <grisumbras@gmail.com>
-Date: Sat, 11 Dec 2021 16:58:23 +0300
-Subject: [PATCH] Don't skip install targets if there's <build>no in ureqs
- (#113)
-
----
- src/tools/stage.jam | 4 ++++
- test/install_build_no.py | 26 ++++++++++++++++++++++++++
- test/test_all.py | 1 +
- 3 files changed, 31 insertions(+)
- create mode 100755 test/install_build_no.py
-
-diff --git a/src/tools/stage.jam b/src/tools/stage.jam
-index c5f02e3ba4..325129dc81 100644
---- a/tools/build/src/tools/stage.jam
-+++ b/tools/build/src/tools/stage.jam
-@@ -478,6 +478,10 @@ class install-target-class : basic-target
- return [ sequence.unique $(result2) ] ;
- }
-
-+ rule skip-from-usage-requirements ( )
-+ {
-+ }
-+
- # Returns true iff 'type' is subtype of some element of 'types-to-include'.
- #
- local rule include-type ( type : types-to-include * )
-diff --git a/test/install_build_no.py b/test/install_build_no.py
-new file mode 100755
-index 0000000000..0ccf3c5cc6
---- /dev/null
-+++ b/tools/build/test/install_build_no.py
-@@ -0,0 +1,26 @@
-+#!/usr/bin/python
-+
-+# Copyright 2021 Dmitry Arkhipov (grisumbras@gmail.com)
-+# Distributed under the Boost Software License, Version 1.0.
-+# (See accompanying file LICENSE.txt or https://www.bfgroup.xyz/b2/LICENSE.txt)
-+
-+# Check that <build>no in usage-requirements of dependencies does not affect
-+# install rule, i.e. a skipped installed target does not affect insallation of
-+# other targets.
-+
-+import BoostBuild
-+
-+t = BoostBuild.Tester()
-+
-+t.write("a.cpp", "int main() {}\n")
-+
-+t.write("jamroot.jam", """
-+make x : : maker : <build>no ;
-+exe a : a.cpp ;
-+install install : x a ;
-+""")
-+
-+t.run_build_system()
-+t.expect_addition("install/a.exe")
-+
-+t.cleanup()
-diff --git a/test/test_all.py b/test/test_all.py
-index b7ef5ad701..9ed729d017 100644
---- a/tools/build/test/test_all.py
-+++ b/tools/build/test/test_all.py
-@@ -250,6 +250,7 @@ def reorder_tests(tests, first_test):
- "inherit_toolset",
- "inherited_dependency",
- "inline",
-+ "install_build_no",
- "libjpeg",
- "liblzma",
- "libpng",
diff --git a/main/boost1.78/boost-1.78.0-interprocess-musl-include.patch b/main/boost1.78/boost-1.78.0-interprocess-musl-include.patch
deleted file mode 100644
index 5a6f8a97c5a..00000000000
--- a/main/boost1.78/boost-1.78.0-interprocess-musl-include.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Patch-Source: https://github.com/boostorg/interprocess/commit/d002a0d929ecb031843d806c2bda69e013442e13
-From: Leonardo Neumann <leonardo@neumann.dev.br>
-Date: Mon, 13 Dec 2021 01:07:20 -0300
-Subject: [PATCH] Fix missing sys/stat.h include on musl-based systems
-
-Boost 1.78.0 fails to build on musl-based systems because musl does
-not include sys/stat.h by default.
-
-Fixes #161 ("Boost compiler error")
---- a/boost/interprocess/permissions.hpp
-+++ b/boost/interprocess/permissions.hpp
-@@ -29,6 +29,10 @@
-
- #include <boost/interprocess/detail/win32_api.hpp>
-
-+#else
-+
-+#include <sys/stat.h>
-+
- #endif
-
- #endif //#ifndef BOOST_INTERPROCESS_DOXYGEN_INVOKED
-
diff --git a/main/boost1.79/0001-revert-cease-dependence-on-range.patch b/main/boost1.79/0001-revert-cease-dependence-on-range.patch
deleted file mode 100644
index a6002074ab9..00000000000
--- a/main/boost1.79/0001-revert-cease-dependence-on-range.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 436e1dbe6fcd31523d261d18ad011392f1d6fbbc Mon Sep 17 00:00:00 2001
-From: Oliver Kowalke <oliver.kowalke@gmail.com>
-Date: Sun, 1 Dec 2019 20:40:28 +0100
-Subject: [PATCH] Revert "Cease dependence on Range"
-
-This reverts commit 0c556bb59241e682bbcd3f572815149c5a9b17db.
-
-see #44 (One test fails to compile after boostorg/coroutine submodule updated)
----
- boost/coroutine/asymmetric_coroutine.hpp | 12 +++---------
- 1 file changed, 3 insertions(+), 9 deletions(-)
-
-diff --git a/boost/coroutine/asymmetric_coroutine.hpp b/boost/coroutine/asymmetric_coroutine.hpp
-index ea96981..640896f 100644
---- a/boost/coroutine/asymmetric_coroutine.hpp
-+++ b/boost/coroutine/asymmetric_coroutine.hpp
-@@ -14,6 +14,7 @@
- #include <boost/assert.hpp>
- #include <boost/config.hpp>
- #include <boost/move/move.hpp>
-+#include <boost/range.hpp>
- #include <boost/throw_exception.hpp>
- #include <boost/utility/explicit_operator_bool.hpp>
-
-@@ -2354,19 +2355,12 @@ end( push_coroutine< R > & c)
-
- }
-
--// forward declaration of Boost.Range traits to break dependency on it
--template<typename C, typename Enabler>
--struct range_mutable_iterator;
--
--template<typename C, typename Enabler>
--struct range_const_iterator;
--
- template< typename Arg >
--struct range_mutable_iterator< coroutines::push_coroutine< Arg >, void >
-+struct range_mutable_iterator< coroutines::push_coroutine< Arg > >
- { typedef typename coroutines::push_coroutine< Arg >::iterator type; };
-
- template< typename R >
--struct range_mutable_iterator< coroutines::pull_coroutine< R >, void >
-+struct range_mutable_iterator< coroutines::pull_coroutine< R > >
- { typedef typename coroutines::pull_coroutine< R >::iterator type; };
-
- }
---
-2.24.1
-
diff --git a/main/boost1.79/boost-1.79.0-fix-segfault-in-array-erase.patch b/main/boost1.79/boost-1.79.0-fix-segfault-in-array-erase.patch
deleted file mode 100644
index f853bc25dd0..00000000000
--- a/main/boost1.79/boost-1.79.0-fix-segfault-in-array-erase.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-Patch-Source: https://www.boost.org/users/history/version_1_79_0.html , known-issues
-diff -ur boost_1_79_0/boost/json/impl/array.ipp boost_1_79_0/boost/json/impl/array.ipp
---- boost_1_79_0/boost/json/impl/array.ipp 2022-04-06 17:02:43.000000000 -0400
-+++ boost_1_79_0/boost/json/impl/array.ipp 2022-04-13 20:55:20.464359478 -0400
-@@ -491,8 +491,11 @@
- auto const p = &(*t_)[0] +
- (pos - &(*t_)[0]);
- destroy(p, p + 1);
-- relocate(p, p + 1, 1);
- --t_->size;
-+ if(t_->size > 0)
-+ relocate(p, p + 1,
-+ t_->size - (p -
-+ &(*t_)[0]));
- return p;
- }
-
-diff -ur boost_1_79_0/libs/json/test/array.cpp boost_1_79_0/libs/json/test/array.cpp
---- boost_1_79_0/libs/json/test/array.cpp 2022-04-06 17:02:43.000000000 -0400
-+++ boost_1_79_0/libs/json/test/array.cpp 2022-04-13 20:53:32.671782680 -0400
-@@ -1270,6 +1270,21 @@
- }
-
- void
-+ testIssue692()
-+ {
-+ array a;
-+ object obj;
-+ obj["test1"] = "hello";
-+ a.push_back(obj);
-+ a.push_back(obj);
-+ a.push_back(obj);
-+ a.push_back(obj);
-+ a.push_back(obj);
-+ while(a.size())
-+ a.erase(a.begin());
-+ }
-+
-+ void
- run()
- {
- testDestroy();
-@@ -1283,6 +1298,7 @@
- testExceptions();
- testEquality();
- testHash();
-+ testIssue692();
- }
- };
-
diff --git a/main/boost1.79/APKBUILD b/main/boost1.82/APKBUILD
index 2292013a42d..d6102ce927e 100644
--- a/main/boost1.79/APKBUILD
+++ b/main/boost1.82/APKBUILD
@@ -1,14 +1,14 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=boost1.79
-pkgver=1.79.0
+pkgname=boost1.82
+pkgver=1.82.0
_pkgver="${pkgver//./_}"
-pkgrel=1
+pkgrel=5
pkgdesc="Free peer-reviewed portable C++ source libraries"
url="https://www.boost.org/"
arch="all"
license="BSL-1.0"
depends="$pkgname-libs"
-depends_dev="$pkgname linux-headers bzip2-dev icu-dev xz-dev zlib-dev"
+depends_dev="$pkgname linux-headers bzip2-dev icu-dev xz-dev zlib-dev zstd-dev"
makedepends="$depends_dev python3-dev>=3.8 flex bison"
subpackages="
$pkgname-static
@@ -17,15 +17,13 @@ subpackages="
boost-dev:_dev
"
source="https://boostorg.jfrog.io/artifactory/main/release/$pkgver/source/boost_$_pkgver.tar.bz2
+ boost-fix-i386-stack-alignment.patch
boost-1.57.0-python-abi_letters.patch
boost-1.57.0-python-libpython_dep.patch
- 0001-revert-cease-dependence-on-range.patch
- boost-1.79.0-fix-segfault-in-array-erase.patch
+ boost-phoenix-uarg.patch
"
builddir="$srcdir/boost_$_pkgver"
-
-_enginedir="tools/build/src/engine"
-_bjam="$builddir"/$_enginedir/b2
+options="!check" # some tests fail now, figure it out later
_libs="
atomic
@@ -56,20 +54,22 @@ _libs="
timer
type_erasure
unit_test_framework
+ url
wave
wserialization
json
nowide
"
for _lib in $_libs; do
- subpackages="$subpackages $pkgname-${_lib}:_boostlib"
+ subpackages="$subpackages $pkgname-$_lib:_boostlib"
done; unset -v _lib
subpackages="$subpackages $pkgname-libs"
# Claim the unversioned name, this must be removed once we switch our
# boost to a new version
+_previousver=1.81
provides="boost=$pkgver-r$pkgrel"
-replaces="boost boost1.78"
+replaces="boost$_previousver"
_set_options() {
local _python="$(_pyversion python3)"
@@ -88,6 +88,8 @@ _set_options() {
link=shared,static
cflags=-fno-strict-aliasing
--layout=system
+ --without-graph_parallel
+ --without-mpi
-q
-j${JOBS:-2}
"
@@ -102,7 +104,7 @@ prepare() {
# create user-config.jam
cat > user-config.jam <<-__EOF__
- using gcc : : $CC : <cxxflags>"$CXXFLAGS" <linkflags>"$LDFLAGS" ;
+ using gcc : : $CXX : <cflags>"$CFLAGS" <cxxflags>"$CXXFLAGS" <linkflags>"$LDFLAGS" ;
using python : $PY3_VERSION : /usr/bin/python3 : /usr/include/python${PY3_VERSION}$abiflags : : : : $abiflags ;
__EOF__
@@ -111,42 +113,39 @@ prepare() {
build() {
_set_options
- msg "Building bjam"
- cd "$builddir"/$_enginedir
- CC= ./build.sh gcc
+ msg "Building b2"
+ cd "$builddir"/tools/build
+ ./bootstrap.sh --cxxflags="$CXXFLAGS $LDFLAGS"
msg "Building bcp"
cd "$builddir"/tools/bcp
- "$_bjam" -j${JOBS:-2}
+ ../build/b2 -j${JOBS:-2}
msg "Building boost"
cd "$builddir"
-
- "$_bjam" $_options
+ ./bootstrap.sh --with-toolset=gcc --with-icu --with-python=python3
+ ./b2 $_options
}
check() {
cd "$builddir"/tools/build/test
- PATH="${_bjam%/*}:$PATH" python3 test_all.py --default-bjam
+ PATH="$pkgdir/usr/bin:$PATH" python3 test_all.py --default-bjam
}
package() {
_set_options
- install -Dm755 "$_bjam" \
- "$pkgdir"/usr/bin/b2
- ln -s b2 "$pkgdir"/usr/bin/bjam # old name for b2 binary
-
- install -Dm755 dist/bin/bcp "$pkgdir"/usr/bin/bcp
-
install -Dm644 LICENSE_1_0.txt \
"$pkgdir"/usr/share/licenses/$pkgname/LICENSE_1_0.txt
- "$pkgdir"/usr/bin/bjam $_options \
+ ./b2 $_options \
--includedir="$pkgdir"/usr/include \
--libdir="$pkgdir"/usr/lib \
install
+
+ install -Dm755 -t "$pkgdir"/usr/bin dist/bin/bcp b2
+ ln -s b2 "$pkgdir"/usr/bin/bjam # old name for b2 binary
}
static() {
@@ -156,20 +155,19 @@ static() {
# Claim the unversioned name, this must be removed once we switch our
# boost to a new version
provides="boost-static=$pkgver-r$pkgrel"
- replaces="boost-static"
+ replaces="boost$_previousver-static"
amove usr/lib/lib*.a
}
_boostlib() {
- local name="${subpkgname#$pkgname-}"
+ local name="${subpkgname#"$pkgname"-}"
pkgdesc="Boost $name shared library"
- depends="$depends__boostlib"
# Claim the unversioned name, this must be removed once we switch our
# boost to a new version
provides="boost-$name=$pkgver-r$pkgrel"
- replaces="boost-$name"
+ replaces="boost$_previousver-$name"
amove usr/lib/libboost_$name*.so.[0-9]*
}
@@ -180,7 +178,6 @@ libs() {
# Claim the unversioned name, this must be removed once we switch our
# boost to a new version
provides="boost-libs=$pkgver-r$pkgrel"
- replaces="boost-libs"
pkgdesc="Boost shared libraries"
depends="$depends_libs"
@@ -191,15 +188,12 @@ libs() {
done
mkdir -p "$subpkgdir"
- rmdir "$pkgdir"/usr/lib >/dev/null 2>&1 || :
}
dev() {
- # Claim the unversioned name, this must be removed once we switch our
- # boost to a new version. Replace previous boost version for clean -dev
- # upgrade
default_dev
- replaces="boost1.78-dev"
+ # Replace previous boost version for clean -dev upgrade
+ replaces="boost$_previousver-dev"
}
_dev() {
@@ -212,7 +206,7 @@ doc() {
# Claim the unversioned name, this must be removed once we switch our
# boost to a new version
provides="boost-doc=$pkgver-r$pkgrel"
- replaces="boost-doc"
+ replaces="boost$_previousver-doc"
default_doc
}
@@ -222,9 +216,9 @@ _pyversion() {
}
sha512sums="
-70909e0561c213d10a1fdd692f9ae7b293d3cdc63e925bdc207da9e9bba6e86474341100e7ee5de6d94f9561196b1a3a1597055a7b7382babf8931131170a312 boost_1_79_0.tar.bz2
+6fddc452ca67f99f5c181e21c73d96feb7346e10886477c91b4abc2cdf447750599e0d42f935ef591222200ef6c033de078a7ad2bb577c81fa56a249b17420cb boost_1_82_0.tar.bz2
+f7a2f6945dc1203c5d6500180e77c532585ceb27e93465e3293b6c5b926da5039e3240b69953e1ddfc072e106db2d1bfb52c984384fd15749b74960c8b5b3200 boost-fix-i386-stack-alignment.patch
d96d4d37394a31764ed817d0bc4a99cffa68a75ff1ecfd4417b9e1e5ae2c31a96ed24f948c6f2758ffdac01328d2402c4cf0d33a37107e4f5f721e636daebd66 boost-1.57.0-python-abi_letters.patch
132c4b62815d605c2d3c9038427fa4f422612a33711d47b2862f2311516af8a371d6b75bf078a7bffe20be863f8d21fb9fe74dc1a1bac3a10d061e9768ec3e02 boost-1.57.0-python-libpython_dep.patch
-9b53d2fe2dddd592e43db03c26fadd6c07d4c45a980ae4c775b7a914346a3914f6e0c3ef42dad5e2ea4568afb86c9967e09444ff609cfba1e1d39f4980b22ad6 0001-revert-cease-dependence-on-range.patch
-17db69e7b41665b2fae5630aa5edf15f0b8d00aa04e8597b198eb4f530793e8227d0234ceb9c8a9859fac3a4ceb5b9eb51721329b91497a422d4ff579739b964 boost-1.79.0-fix-segfault-in-array-erase.patch
+7fad4b81ae5df38f740148153bcb5b4b31c12061f1264404b96a324e0d2f06943530cbcf9002d17772fb4ad87dcf0ba8bf4ed397725ee448a4d310df5d0383ad boost-phoenix-uarg.patch
"
diff --git a/main/boost1.78/boost-1.57.0-python-abi_letters.patch b/main/boost1.82/boost-1.57.0-python-abi_letters.patch
index 7df3ee7047d..7df3ee7047d 100644
--- a/main/boost1.78/boost-1.57.0-python-abi_letters.patch
+++ b/main/boost1.82/boost-1.57.0-python-abi_letters.patch
diff --git a/main/boost1.78/boost-1.57.0-python-libpython_dep.patch b/main/boost1.82/boost-1.57.0-python-libpython_dep.patch
index 57bfc26774e..57bfc26774e 100644
--- a/main/boost1.78/boost-1.57.0-python-libpython_dep.patch
+++ b/main/boost1.82/boost-1.57.0-python-libpython_dep.patch
diff --git a/main/boost1.82/boost-fix-i386-stack-alignment.patch b/main/boost1.82/boost-fix-i386-stack-alignment.patch
new file mode 100644
index 00000000000..0b85b5b92fa
--- /dev/null
+++ b/main/boost1.82/boost-fix-i386-stack-alignment.patch
@@ -0,0 +1,48 @@
+From 2a5e11babb2a9e992fb96461a61d36f2b54b207b Mon Sep 17 00:00:00 2001
+From: Niels Dossche <niels.dossche@ugent.be>
+Date: Wed, 25 Jan 2023 09:05:19 +0100
+Subject: [PATCH] Make sure the i386 sysv stack is aligned
+
+SysV ABI requires a stack alignment of 16 bytes. Currently, for i386
+with SysV ABI, the trampoline function is entered with an unaligned
+stack. This causes problems for the context-function that is jumped to
+as its stack is also unaligned. This causes a crash for our use-case
+because the context function contains an SSE instruction which reads
+from the stack. The SSE instruction requires the correct alignment.
+Fix it by changing the 0x2c offset to 0x30, such that the stack remains
+aligned.
+---
+ src/asm/make_i386_sysv_elf_gas.S | 4 ++--
+ src/asm/make_i386_sysv_macho_gas.S | 4 ++--
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/libs/context/src/asm/make_i386_sysv_elf_gas.S b/libs/context/src/asm/make_i386_sysv_elf_gas.S
+index 0b7ab81..9261e56 100644
+--- a/libs/context/src/asm/make_i386_sysv_elf_gas.S
++++ b/libs/context/src/asm/make_i386_sysv_elf_gas.S
+@@ -40,8 +40,8 @@ make_fcontext:
+ /* shift address in EAX to lower 16 byte boundary */
+ andl $-16, %eax
+
+- /* reserve space for context-data on context-stack */
+- leal -0x2c(%eax), %eax
++ /* reserve space for context-data on context-stack, and align the stack */
++ leal -0x34(%eax), %eax
+
+ /* third arg of make_fcontext() == address of context-function */
+ /* stored in EBX */
+diff --git a/libs/context/src/asm/make_i386_sysv_macho_gas.S b/libs/context/src/asm/make_i386_sysv_macho_gas.S
+index fdcdb7c..519e406 100644
+--- a/libs/context/src/asm/make_i386_sysv_macho_gas.S
++++ b/libs/context/src/asm/make_i386_sysv_macho_gas.S
+@@ -38,8 +38,8 @@ _make_fcontext:
+ /* shift address in EAX to lower 16 byte boundary */
+ andl $-16, %eax
+
+- /* reserve space for context-data on context-stack */
+- leal -0x2c(%eax), %eax
++ /* reserve space for context-data on context-stack, and align the stack */
++ leal -0x34(%eax), %eax
+
+ /* third arg of make_fcontext() == address of context-function */
+ /* stored in EBX */
diff --git a/main/boost1.82/boost-phoenix-uarg.patch b/main/boost1.82/boost-phoenix-uarg.patch
new file mode 100644
index 00000000000..491f3722e6f
--- /dev/null
+++ b/main/boost1.82/boost-phoenix-uarg.patch
@@ -0,0 +1,11 @@
+diff --git a/boost/phoenix/stl.hpp b/boost/phoenix/stl.hpp
+index 254820a83..c1013bc97 100644
+--- a/boost/phoenix/stl.hpp
++++ b/boost/phoenix/stl.hpp
+@@ -11,6 +11,5 @@
+
+ #include <boost/phoenix/stl/algorithm.hpp>
+ #include <boost/phoenix/stl/container.hpp>
+-#include <boost/phoenix/stl/tuple.hpp>
+
+ #endif
diff --git a/main/boost1.78/APKBUILD b/main/boost1.84/APKBUILD
index bdb83372e5a..bb9c0ba8455 100644
--- a/main/boost1.78/APKBUILD
+++ b/main/boost1.84/APKBUILD
@@ -1,31 +1,28 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=boost1.78
-pkgver=1.78.0
+pkgname=boost1.84
+pkgver=1.84.0
_pkgver="${pkgver//./_}"
-pkgrel=2
+pkgrel=1
pkgdesc="Free peer-reviewed portable C++ source libraries"
url="https://www.boost.org/"
arch="all"
license="BSL-1.0"
depends="$pkgname-libs"
-depends_dev="$pkgname linux-headers bzip2-dev icu-dev xz-dev zlib-dev"
+depends_dev="$pkgname linux-headers bzip2-dev icu-dev xz-dev zlib-dev zstd-dev"
makedepends="$depends_dev python3-dev>=3.8 flex bison"
subpackages="
$pkgname-static
$pkgname-dev
$pkgname-doc
+ boost-dev:_dev
"
source="https://boostorg.jfrog.io/artifactory/main/release/$pkgver/source/boost_$_pkgver.tar.bz2
boost-1.57.0-python-abi_letters.patch
boost-1.57.0-python-libpython_dep.patch
- 0001-revert-cease-dependence-on-range.patch
- bjam-no-skip-install.patch
- boost-1.78.0-interprocess-musl-include.patch
+ boost-phoenix-uarg.patch
"
builddir="$srcdir/boost_$_pkgver"
-
-_enginedir="tools/build/src/engine"
-_bjam="$builddir"/$_enginedir/b2
+options="!check" # some tests fail now, figure it out later
_libs="
atomic
@@ -56,16 +53,24 @@ _libs="
timer
type_erasure
unit_test_framework
+ url
wave
wserialization
json
nowide
"
for _lib in $_libs; do
- subpackages="$subpackages $pkgname-${_lib}:_boostlib"
+ subpackages="$subpackages $pkgname-$_lib:_boostlib"
+ depends_libs="$depends_libs $pkgname-$_lib"
done; unset -v _lib
subpackages="$subpackages $pkgname-libs"
+# Claim the unversioned name, this must be removed once we switch our
+# boost to a new version
+_previousver=1.82
+provides="boost=$pkgver-r$pkgrel"
+replaces="boost$_previousver"
+
_set_options() {
local _python="$(_pyversion python3)"
export PY3_VERSION="$_python"
@@ -83,6 +88,8 @@ _set_options() {
link=shared,static
cflags=-fno-strict-aliasing
--layout=system
+ --without-graph_parallel
+ --without-mpi
-q
-j${JOBS:-2}
"
@@ -97,7 +104,7 @@ prepare() {
# create user-config.jam
cat > user-config.jam <<-__EOF__
- using gcc : : $CC : <cxxflags>"$CXXFLAGS" <linkflags>"$LDFLAGS" ;
+ using gcc : : $CXX : <cflags>"$CFLAGS" <cxxflags>"$CXXFLAGS" <linkflags>"$LDFLAGS" ;
using python : $PY3_VERSION : /usr/bin/python3 : /usr/include/python${PY3_VERSION}$abiflags : : : : $abiflags ;
__EOF__
@@ -106,55 +113,62 @@ prepare() {
build() {
_set_options
- msg "Building bjam"
- cd "$builddir"/$_enginedir
- CC= ./build.sh gcc
+ msg "Building b2"
+ cd "$builddir"/tools/build
+ ./bootstrap.sh --cxxflags="$CXXFLAGS $LDFLAGS"
msg "Building bcp"
cd "$builddir"/tools/bcp
- "$_bjam" -j${JOBS:-2}
+ ../build/b2 -j${JOBS:-2}
msg "Building boost"
cd "$builddir"
-
- "$_bjam" $_options
+ ./bootstrap.sh --with-toolset=gcc --with-icu --with-python=python3
+ ./b2 $_options
}
check() {
cd "$builddir"/tools/build/test
- PATH="${_bjam%/*}:$PATH" python3 test_all.py --default-bjam
+ PATH="$pkgdir/usr/bin:$PATH" python3 test_all.py --default-bjam
}
package() {
_set_options
- install -Dm755 "$_bjam" \
- "$pkgdir"/usr/bin/b2
- ln -s b2 "$pkgdir"/usr/bin/bjam # old name for b2 binary
-
- install -Dm755 dist/bin/bcp "$pkgdir"/usr/bin/bcp
-
install -Dm644 LICENSE_1_0.txt \
"$pkgdir"/usr/share/licenses/$pkgname/LICENSE_1_0.txt
- "$pkgdir"/usr/bin/bjam $_options \
+ ./b2 $_options \
--includedir="$pkgdir"/usr/include \
--libdir="$pkgdir"/usr/lib \
install
+
+ install -Dm755 -t "$pkgdir"/usr/bin dist/bin/bcp b2
+ ln -s b2 "$pkgdir"/usr/bin/bjam # old name for b2 binary
}
static() {
pkgdesc="Boost static libraries"
depends="$depends_static"
+ # Claim the unversioned name, this must be removed once we switch our
+ # boost to a new version
+ provides="boost-static=$pkgver-r$pkgrel"
+ replaces="boost$_previousver-static"
+
amove usr/lib/lib*.a
}
_boostlib() {
- local name="${subpkgname#$pkgname-}"
+ local name="${subpkgname#"$pkgname"-}"
pkgdesc="Boost $name shared library"
- depends="$depends__boostlib"
+
+ # Claim the unversioned name, this must be removed once we switch our
+ # boost to a new version
+ provides="boost-$name=$pkgver-r$pkgrel"
+ replaces="boost$_previousver-$name"
+ depends=
amove usr/lib/libboost_$name*.so.[0-9]*
}
@@ -162,24 +176,31 @@ _boostlib() {
libs() {
default_libs
+ # Claim the unversioned name, this must be removed once we switch our
+ # boost to a new version
+ provides="boost-libs=$pkgver-r$pkgrel"
pkgdesc="Boost shared libraries"
- depends="$depends_libs"
- local _pkg; for _pkg in $origsubpackages; do
- case "$_pkg" in
- *:_boostlib) depends="$depends ${_pkg%%:*}" ;;
- esac
- done
-
mkdir -p "$subpkgdir"
- rmdir "$pkgdir"/usr/lib >/dev/null 2>&1 || :
}
dev() {
default_dev
- replaces="boost1.77-dev"
+ # Replace previous boost version for clean -dev upgrade
+ replaces="boost$_previousver-dev"
+}
+
+_dev() {
+ # This makes boost-dev be a metapackage that depends on boostX.Y-dev
+ mkdir -p "$subpkgdir"
+ depends="$pkgname-dev=$pkgver-r$pkgrel"
}
doc() {
+ # Claim the unversioned name, this must be removed once we switch our
+ # boost to a new version
+ provides="boost-doc=$pkgver-r$pkgrel"
+ replaces="boost$_previousver-doc"
+
default_doc
}
@@ -188,10 +209,8 @@ _pyversion() {
}
sha512sums="
-9c34a387a203b99aa773eb0c59f5abac7a99ba10e4623653e793c1d5b29b99b88e0e4e0d4e2e4ca5d497c42f2e46e23bab66417722433a457dc818d7670bcbbf boost_1_78_0.tar.bz2
+5dfeb35198bb096e46cf9e131ef0334cb95bc0bf09f343f291b860b112598b3c36111bd8c232439c401a2b2fb832fa0c399a8d5b96afc60bd359dff070154497 boost_1_84_0.tar.bz2
d96d4d37394a31764ed817d0bc4a99cffa68a75ff1ecfd4417b9e1e5ae2c31a96ed24f948c6f2758ffdac01328d2402c4cf0d33a37107e4f5f721e636daebd66 boost-1.57.0-python-abi_letters.patch
132c4b62815d605c2d3c9038427fa4f422612a33711d47b2862f2311516af8a371d6b75bf078a7bffe20be863f8d21fb9fe74dc1a1bac3a10d061e9768ec3e02 boost-1.57.0-python-libpython_dep.patch
-9b53d2fe2dddd592e43db03c26fadd6c07d4c45a980ae4c775b7a914346a3914f6e0c3ef42dad5e2ea4568afb86c9967e09444ff609cfba1e1d39f4980b22ad6 0001-revert-cease-dependence-on-range.patch
-3e6679ce66b5fb5e89ba9500c7fdc94f0f7ede0c821cd89d488a618ecd7e6f2edd80b4a1928402a569f6e33fdefbd709bd16868b3d703a070c6117a65ac4761c bjam-no-skip-install.patch
-18d3944abd74a8f3b4dc53f39f47b4138a03b50f49f7a2cb7ccc49528d9a6c547d29b5589c620e02e0a6080c417fb33cd2b4d5a67644815d520091463771ed87 boost-1.78.0-interprocess-musl-include.patch
+7fad4b81ae5df38f740148153bcb5b4b31c12061f1264404b96a324e0d2f06943530cbcf9002d17772fb4ad87dcf0ba8bf4ed397725ee448a4d310df5d0383ad boost-phoenix-uarg.patch
"
diff --git a/main/boost1.79/boost-1.57.0-python-abi_letters.patch b/main/boost1.84/boost-1.57.0-python-abi_letters.patch
index 7df3ee7047d..7df3ee7047d 100644
--- a/main/boost1.79/boost-1.57.0-python-abi_letters.patch
+++ b/main/boost1.84/boost-1.57.0-python-abi_letters.patch
diff --git a/main/boost1.79/boost-1.57.0-python-libpython_dep.patch b/main/boost1.84/boost-1.57.0-python-libpython_dep.patch
index 57bfc26774e..57bfc26774e 100644
--- a/main/boost1.79/boost-1.57.0-python-libpython_dep.patch
+++ b/main/boost1.84/boost-1.57.0-python-libpython_dep.patch
diff --git a/main/boost1.84/boost-phoenix-uarg.patch b/main/boost1.84/boost-phoenix-uarg.patch
new file mode 100644
index 00000000000..491f3722e6f
--- /dev/null
+++ b/main/boost1.84/boost-phoenix-uarg.patch
@@ -0,0 +1,11 @@
+diff --git a/boost/phoenix/stl.hpp b/boost/phoenix/stl.hpp
+index 254820a83..c1013bc97 100644
+--- a/boost/phoenix/stl.hpp
++++ b/boost/phoenix/stl.hpp
+@@ -11,6 +11,5 @@
+
+ #include <boost/phoenix/stl/algorithm.hpp>
+ #include <boost/phoenix/stl/container.hpp>
+-#include <boost/phoenix/stl/tuple.hpp>
+
+ #endif
diff --git a/main/botan/APKBUILD b/main/botan/APKBUILD
index 938831a6764..35b0f776b83 100644
--- a/main/botan/APKBUILD
+++ b/main/botan/APKBUILD
@@ -1,13 +1,13 @@
# Contributor: tcely <tcely@users.noreply.github.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=botan
-pkgver=2.19.1
-pkgrel=2
+pkgver=2.19.4
+pkgrel=0
pkgdesc="Crypto and TLS for C++11"
url="https://botan.randombit.net/"
arch="all"
license="BSD-2-Clause"
-depends_dev="boost-dev bzip2-dev openssl1.1-compat-dev sqlite-dev xz-dev zlib-dev"
+depends_dev="boost-dev bzip2-dev sqlite-dev xz-dev zlib-dev"
makedepends="$depends_dev python3"
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
source="https://botan.randombit.net/releases/Botan-$pkgver.tar.xz"
@@ -28,7 +28,8 @@ builddir="$srcdir/Botan-$pkgver"
# - CVE-2018-9127
case $CARCH in
- ppc64le|aarch64|armhf|armv7) options="$options !check" ;; # 3 tests timeout
+ arm*|riscv64)
+ options="$options !check" ;; # several tests fail
esac
build() {
@@ -41,7 +42,6 @@ build() {
--with-bzip2 \
--with-lzma \
--with-openmp \
- --with-openssl \
--with-sqlite3 \
--with-zlib \
--with-os-feature=getrandom \
@@ -56,9 +56,11 @@ check() {
package() {
make DESTDIR="$pkgdir" install
+ # botan3 keeps the main name
+ mv "$pkgdir"/usr/bin/botan "$pkgdir"/usr/bin/botan2
rm -rf "$pkgdir"/usr/lib/python*
}
sha512sums="
-e604be0e7e82da89e3e1949d3035a87dc63314bd9854d5fe5129ccb3ed5bc78edb0406c7f8ad1a152b59a63b6d98ba207a0851a08428c3452cce794614b5eef5 Botan-2.19.1.tar.xz
+2fab4347367703dce8302b7710698ed228c6cc6dd609c39829ba17ad580407ed40d822862d467aa7aea4bfd633c1f1d1c0d437e86376f453845cc609596335d8 Botan-2.19.4.tar.xz
"
diff --git a/main/botan3/APKBUILD b/main/botan3/APKBUILD
new file mode 100644
index 00000000000..2a046dba6f9
--- /dev/null
+++ b/main/botan3/APKBUILD
@@ -0,0 +1,67 @@
+# Contributor: tcely <tcely@users.noreply.github.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=botan3
+pkgver=3.4.0
+pkgrel=0
+pkgdesc="Crypto and TLS for C++11 (v3)"
+url="https://botan.randombit.net/"
+arch="all"
+license="BSD-2-Clause"
+depends_dev="
+ boost-dev
+ bzip2-dev
+ sqlite-dev
+ xz-dev
+ zlib-dev
+ "
+makedepends="
+ $depends_dev
+ python3
+ "
+subpackages="$pkgname-dev $pkgname-doc py3-$pkgname:py3 $pkgname-libs"
+source="https://botan.randombit.net/releases/Botan-$pkgver.tar.xz"
+builddir="$srcdir/Botan-$pkgver"
+
+case "$CARCH" in
+riscv64)
+ options="!check" ;; # several tests fail
+esac
+
+build() {
+ # botan benefits from -O3. Upstream is using it when testing.
+ export CXXFLAGS="$CXXFLAGS -O3" CFLAGS="$CFLAGS -O3"
+
+ python3 ./configure.py \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --with-boost \
+ --with-bzip2 \
+ --with-lzma \
+ --with-sqlite3 \
+ --with-zlib \
+ --with-os-feature=getrandom \
+ --disable-static
+
+ make
+}
+
+check() {
+ LD_LIBRARY_PATH="$builddir" \
+ timeout 600 \
+ ./botan-test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+py3() {
+ pkgdesc="$pkgdesc (python module)"
+ depends="$pkgname-libs=$pkgver-r$pkgrel"
+
+ amove usr/lib/python*
+}
+
+sha512sums="
+509a0e7afa8d27fb40035d2b8e1914736c67ce2c71dc1c37993da5ee465225de78077b984ffe10175ee854633d2bb5f45186b95c5256a9fb4d8a694b6d8ddef3 Botan-3.4.0.tar.xz
+"
diff --git a/main/bridge-utils/APKBUILD b/main/bridge-utils/APKBUILD
index 79de768e863..198d418a7c8 100644
--- a/main/bridge-utils/APKBUILD
+++ b/main/bridge-utils/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=bridge-utils
pkgver=1.7.1
-pkgrel=0
+pkgrel=2
pkgdesc="Tools for configuring the Linux kernel 802.1d Ethernet Bridge"
url="https://wiki.linuxfoundation.org/networking/bridge/"
arch="all"
@@ -10,6 +10,8 @@ subpackages="$pkgname-doc"
makedepends="autoconf linux-headers"
source="https://git.kernel.org/pub/scm/network/bridge/bridge-utils.git/snapshot/bridge-utils-$pkgver.tar.gz
fix-PATH_MAX-on-ppc64le.patch"
+options="!check"
+
prepare() {
default_prepare
autoconf
diff --git a/main/bridge/APKBUILD b/main/bridge/APKBUILD
index 950862e6f91..1718385fca8 100644
--- a/main/bridge/APKBUILD
+++ b/main/bridge/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=bridge
pkgver=1.5
-pkgrel=4
+pkgrel=5
pkgdesc="Scripts for configuring network bridge interfaces"
url="https://wiki.alpinelinux.org/wiki/Bridge"
arch="noarch"
@@ -10,9 +10,17 @@ license="GPL-2.0-or-later"
source="bridge.pre-up"
builddir="$srcdir"
+options="!check"
+
+# secfixes:
+# 0:
+# - CVE-2021-42533
+# - CVE-2021-42719
+# - CVE-2021-42720
+# - CVE-2021-42722
+# - CVE-2021-42725
package() {
- cd "$builddir"
install -Dm755 "$srcdir"/bridge.pre-up \
"$pkgdir"/etc/network/if-pre-up.d/bridge
install -d "$pkgdir"/etc/network/if-post-down.d
diff --git a/main/brotli/0545759b2ed9b69e3f21fd0ac954bee78f3104b6.patch b/main/brotli/0545759b2ed9b69e3f21fd0ac954bee78f3104b6.patch
deleted file mode 100644
index a0ce815a263..00000000000
--- a/main/brotli/0545759b2ed9b69e3f21fd0ac954bee78f3104b6.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 0545759b2ed9b69e3f21fd0ac954bee78f3104b6 Mon Sep 17 00:00:00 2001
-From: Evgenii Kliuchnikov <eustas.ru@gmail.com>
-Date: Fri, 28 Aug 2020 10:14:08 +0200
-Subject: [PATCH] Address issues noted in #833
-
----
- bootstrap | 16 +++++++++-------
- 1 file changed, 9 insertions(+), 7 deletions(-)
-
-diff --git a/bootstrap b/bootstrap
-index 92d458f2..33525890 100755
---- a/bootstrap
-+++ b/bootstrap
-@@ -1,4 +1,4 @@
--# !/bin/sh -e
-+#!/bin/sh -e
-
- if [ `uname -s` = "Darwin" ]; then
- echo "WARNING: OSX autogen build is not supported"
-@@ -13,20 +13,22 @@ autoreconf --version >/dev/null 2>&1 || { echo >&2 "'autoconf' $REQUIRED"; exit
-
- # If libtool is not installed -> "error: Libtool library used but 'LIBTOOL' is undefined"
-
-+if [ ! -e "./m4" ]; then
- mkdir m4 2>/dev/null
-+fi
-
- BROTLI_ABI_HEX=`sed -n 's/#define BROTLI_ABI_VERSION 0x//p' c/common/version.h`
- BROTLI_ABI_INT=`echo "ibase=16;$BROTLI_ABI_HEX" | bc`
--BROTLI_ABI_CURRENT=`expr $BROTLI_ABI_INT / 16777216`
--BROTLI_ABI_REVISION=`expr $BROTLI_ABI_INT / 4096 % 4096`
--BROTLI_ABI_AGE=`expr $BROTLI_ABI_INT % 4096`
-+BROTLI_ABI_CURRENT=`echo "$BROTLI_ABI_INT / 16777216" | bc`
-+BROTLI_ABI_REVISION=`echo "$BROTLI_ABI_INT / 4096 % 4096" | bc`
-+BROTLI_ABI_AGE=`echo "$BROTLI_ABI_INT % 4096" | bc`
- BROTLI_ABI_INFO="$BROTLI_ABI_CURRENT:$BROTLI_ABI_REVISION:$BROTLI_ABI_AGE"
-
- BROTLI_VERSION_HEX=`sed -n 's/#define BROTLI_VERSION 0x//p' c/common/version.h`
- BROTLI_VERSION_INT=`echo "ibase=16;$BROTLI_VERSION_HEX" | bc`
--BROTLI_VERSION_MAJOR=`expr $BROTLI_VERSION_INT / 16777216`
--BROTLI_VERSION_MINOR=`expr $BROTLI_VERSION_INT / 4096 % 4096`
--BROTLI_VERSION_PATCH=`expr $BROTLI_VERSION_INT % 4096`
-+BROTLI_VERSION_MAJOR=`echo "$BROTLI_VERSION_INT / 16777216" | bc`
-+BROTLI_VERSION_MINOR=`echo "$BROTLI_VERSION_INT / 4096 % 4096" | bc`
-+BROTLI_VERSION_PATCH=`echo "$BROTLI_VERSION_INT % 4096" | bc`
- BROTLI_VERSION="$BROTLI_VERSION_MAJOR.$BROTLI_VERSION_MINOR.$BROTLI_VERSION_PATCH"
-
- sed -i.bak -r "s/[0-9]+:[0-9]+:[0-9]+/$BROTLI_ABI_INFO/" Makefile.am
diff --git a/main/brotli/838.patch b/main/brotli/838.patch
deleted file mode 100644
index b3a100a6622..00000000000
--- a/main/brotli/838.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-Upstream: Yes
-Reason: Fixes #11948
-From 092446fafb4bfb81738853b7c7f76b293cd92a80 Mon Sep 17 00:00:00 2001
-From: Evgenii Kliuchnikov <eustas.ru@gmail.com>
-Date: Wed, 2 Sep 2020 10:49:49 +0200
-Subject: [PATCH] Revert "Add runtime linker path to pkg-config files (#740)"
-
-This reverts commit 31754d4ffce14153b5c2addf7a11019ec23f51c1.
----
- scripts/libbrotlicommon.pc.in | 2 +-
- scripts/libbrotlidec.pc.in | 2 +-
- scripts/libbrotlienc.pc.in | 2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/scripts/libbrotlicommon.pc.in b/scripts/libbrotlicommon.pc.in
-index 10ca969e..2a8cf7a3 100644
---- a/scripts/libbrotlicommon.pc.in
-+++ b/scripts/libbrotlicommon.pc.in
-@@ -7,5 +7,5 @@ Name: libbrotlicommon
- URL: https://github.com/google/brotli
- Description: Brotli common dictionary library
- Version: @PACKAGE_VERSION@
--Libs: -L${libdir} -R${libdir} -lbrotlicommon
-+Libs: -L${libdir} -lbrotlicommon
- Cflags: -I${includedir}
-diff --git a/scripts/libbrotlidec.pc.in b/scripts/libbrotlidec.pc.in
-index e7c3124f..6f8ef2e4 100644
---- a/scripts/libbrotlidec.pc.in
-+++ b/scripts/libbrotlidec.pc.in
-@@ -7,6 +7,6 @@ Name: libbrotlidec
- URL: https://github.com/google/brotli
- Description: Brotli decoder library
- Version: @PACKAGE_VERSION@
--Libs: -L${libdir} -R${libdir} -lbrotlidec
-+Libs: -L${libdir} -lbrotlidec
- Requires.private: libbrotlicommon >= 1.0.2
- Cflags: -I${includedir}
-diff --git a/scripts/libbrotlienc.pc.in b/scripts/libbrotlienc.pc.in
-index 4dd0811b..2098afe2 100644
---- a/scripts/libbrotlienc.pc.in
-+++ b/scripts/libbrotlienc.pc.in
-@@ -7,6 +7,6 @@ Name: libbrotlienc
- URL: https://github.com/google/brotli
- Description: Brotli encoder library
- Version: @PACKAGE_VERSION@
--Libs: -L${libdir} -R${libdir} -lbrotlienc
-+Libs: -L${libdir} -lbrotlienc
- Requires.private: libbrotlicommon >= 1.0.2
- Cflags: -I${includedir}
diff --git a/main/brotli/APKBUILD b/main/brotli/APKBUILD
index d371e0f7bce..e0cb5bc03e6 100644
--- a/main/brotli/APKBUILD
+++ b/main/brotli/APKBUILD
@@ -1,67 +1,97 @@
# Contributor: prspkt <prspkt@protonmail.com>
# Maintainer: prspkt <prspkt@protonmail.com>
pkgname=brotli
-pkgver=1.0.9
-pkgrel=6
+pkgver=1.1.0
+pkgrel=2
pkgdesc="Generic lossless compressor"
url="https://github.com/google/brotli"
arch="all"
license="MIT"
-makedepends_build="automake autoconf libtool"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends_build="cmake samurai"
+subpackages="
+ $pkgname-doc
+ $pkgname-static
+ $pkgname-dev
+ $pkgname-libs
+ "
if [ -z "$BOOTSTRAP" ]; then
- makedepends_host="python3-dev"
- python="py3-$pkgname:py3"
+ makedepends_host="python3-dev py3-gpep517 py3-setuptools py3-wheel"
+ subpackages="$subpackages py3-$pkgname-pyc py3-$pkgname:py3"
fi
-subpackages="$pkgname-doc $pkgname-static $pkgname-dev $pkgname-libs $python"
-source="$pkgname-$pkgver.tar.gz::https://github.com/google/brotli/archive/v$pkgver.tar.gz
+source="$pkgname-$pkgver.tar.gz::https://github.com/google/brotli/archive/refs/tags/v$pkgver.tar.gz
optimize-mips-s390x.patch
- build-tool-against-shared-lib.patch
- 838.patch
- 0545759b2ed9b69e3f21fd0ac954bee78f3104b6.patch
"
# secfixes:
# 1.0.9-r0:
# - CVE-2020-8927
-# use sysroot when cross compiling to avoid libtool pulling in host libs
-[ "$CBUILD" != "$CHOST" ] && _cross_configure="--with-sysroot=$CBUILDROOT"
-
prepare() {
default_prepare
sed -i 's,/usr/bin/env bash,/bin/sh,' tests/*.sh
- sh ./bootstrap
}
build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --target=$CTARGET \
- --prefix=/usr \
- $_cross_configure \
- make
+ # -flto=auto does not work when cross-compiling
+ if [ "$CBUILD" != "$CHOST" ]; then
+ export CFLAGS="$CFLAGS -O2"
+ else
+ export CFLAGS="$CFLAGS -flto=auto -O2"
+ fi
+
+ # static libs, see https://github.com/google/brotli/issues/795
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=OFF
+ cmake --build build
+
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=ON
+ cmake --build build
+
+ if [ -z "$BOOTSTRAP" ]; then
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+ fi
}
check() {
- make check
+ ctest --output-on-failure --test-dir build
+
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ cd python; ../.testenv/bin/python3 -m unittest discover -v -p '*_test.py'
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
+
+ local file; for file in common dec enc; do
+ install -D -m 755 "$builddir"/build/libbrotli$file.a \
+ "$pkgdir"/usr/lib/
+ done
local man; for man in docs/*.?; do
install -D -m644 $man "$pkgdir"/usr/share/man/man${man##*.}/${man##*/}
done
+
+ if [ -z "$BOOTSTRAP" ]; then
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+ fi
}
py3() {
- cd "$builddir"
- python3 setup.py install --prefix=/usr --root="$subpkgdir"
+ pkgdesc="$pkgdesc (python bindings)"
+
+ amove usr/lib/python3*
}
-sha512sums="b8e2df955e8796ac1f022eb4ebad29532cb7e3aa6a4b6aee91dbd2c7d637eee84d9a144d3e878895bb5e62800875c2c01c8f737a1261020c54feacf9f676b5f5 brotli-1.0.9.tar.gz
-59e934578ce23b703f8f25f56578f8e9fd1466a9844b6f67b542acd6496df352548e3762697dc3851cfd0f8e1bad170bfdaa3e8a87c901fe81e2f3042e3aee84 optimize-mips-s390x.patch
-f4a7653a0f7ef69f059d7f744a48c7731c8e66f977ce2e66cd106f697e82aa1f005923898d216a3d8be143b2dc8db1927c09daedb981818e752640a333d75fbc build-tool-against-shared-lib.patch
-58ef677595f0db80b7d1353e42603cc30ef9b0b9530927f731ee31ac60ad9a3b2aac960a5cd100f8b10e547c9534e1ebf78c53550b52eed6fb3b7fb853317d20 838.patch
-6b7953f09c7ce4219dd9411d53fcd495e0de92f210c53be43dcd235a47050b10933b347fcc8e92d7e3fd89b12375eb0deea61b01eb279902079fa7b7aca62a5a 0545759b2ed9b69e3f21fd0ac954bee78f3104b6.patch"
+sha512sums="
+6eb280d10d8e1b43d22d00fa535435923c22ce8448709419d676ff47d4a644102ea04f488fc65a179c6c09fee12380992e9335bad8dfebd5d1f20908d10849d9 brotli-1.1.0.tar.gz
+3f91155c76c27268b94515087d042b6669f790027cb394c694ec492bf2d5a9a98272fc501d179b4b3736a8be3e016189d2d996ee50ae3e07b52f21857cbfc391 optimize-mips-s390x.patch
+"
diff --git a/main/brotli/build-tool-against-shared-lib.patch b/main/brotli/build-tool-against-shared-lib.patch
deleted file mode 100644
index af7f2b3eebf..00000000000
--- a/main/brotli/build-tool-against-shared-lib.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Upstream: no.
-Reason: Without it the tool is linked staticlly.
- GH has an issue requesting an option to build against the shared lib.
-URL: https://github.com/google/brotli/issues/803
-
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -183,7 +183,7 @@
-
- # Build the brotli executable
- add_executable(brotli ${BROTLI_CLI_C})
--target_link_libraries(brotli ${BROTLI_LIBRARIES_STATIC})
-+target_link_libraries(brotli ${BROTLI_LIBRARIES})
-
- # Installation
- if(NOT BROTLI_BUNDLED_MODE)
diff --git a/main/brotli/optimize-mips-s390x.patch b/main/brotli/optimize-mips-s390x.patch
index 812028555db..0619c7de45f 100644
--- a/main/brotli/optimize-mips-s390x.patch
+++ b/main/brotli/optimize-mips-s390x.patch
@@ -2,8 +2,8 @@ diff --git a/c/common/platform.h b/c/common/platform.h
index 84c448c..853fa83 100755
--- a/c/common/platform.h
+++ b/c/common/platform.h
-@@ -223,12 +223,21 @@ OR:
- #define BROTLI_TARGET_RISCV64
+@@ -213,6 +213,14 @@
+ #define BROTLI_TARGET_LOONGARCH64
#endif
+#if defined(__s390x__)
@@ -14,28 +14,11 @@ index 84c448c..853fa83 100755
+#define BROTLI_TARGET_MIPS64
+#endif
+
- #if defined(BROTLI_BUILD_64_BIT)
- #define BROTLI_64_BITS 1
- #elif defined(BROTLI_BUILD_32_BIT)
- #define BROTLI_64_BITS 0
- #elif defined(BROTLI_TARGET_X64) || defined(BROTLI_TARGET_ARMV8_64) || \
-- defined(BROTLI_TARGET_POWERPC64) || defined(BROTLI_TARGET_RISCV64)
-+ defined(BROTLI_TARGET_POWERPC64) || defined(BROTLI_TARGET_RISCV64) || \
-+ defined(BROTLI_TARGET_S390X) || defined(BROTLI_TARGET_MIPS64)
- #define BROTLI_64_BITS 1
- #else
- #define BROTLI_64_BITS 0
-@@ -279,7 +288,7 @@ OR:
- #define BROTLI_ALIGNED_READ (!!1)
- #elif defined(BROTLI_TARGET_X86) || defined(BROTLI_TARGET_X64) || \
- defined(BROTLI_TARGET_ARMV7) || defined(BROTLI_TARGET_ARMV8_ANY) || \
-- defined(BROTLI_TARGET_RISCV64)
-+ defined(BROTLI_TARGET_RISCV64) || defined(BROTLI_TARGET_S390X)
- /* Allow unaligned read only for white-listed CPUs. */
- #define BROTLI_ALIGNED_READ (!!0)
- #else
-@@ -289,22 +298,42 @@ OR:
- #if BROTLI_ALIGNED_READ
+ #if defined(BROTLI_TARGET_X64) || defined(BROTLI_TARGET_ARMV8_64) || \
+ defined(BROTLI_TARGET_POWERPC64) || defined(BROTLI_TARGET_RISCV64) || \
+ defined(BROTLI_TARGET_LOONGARCH64)
+@@ -285,22 +293,42 @@
+
/* Portable unaligned memory access: read / write values via memcpy. */
static BROTLI_INLINE uint16_t BrotliUnalignedRead16(const void* p) {
+#if defined(__mips__) && (!defined(__mips_isa_rev) || __mips_isa_rev < 6)
@@ -75,9 +58,9 @@ index 84c448c..853fa83 100755
memcpy(p, &v, sizeof v);
+#endif
}
- #else /* BROTLI_ALIGNED_READ */
- /* Unaligned memory access is allowed: just cast pointer to requested type. */
-@@ -385,31 +414,20 @@ static BROTLI_INLINE void BrotliUnalignedWrite64(void* p, uint64_t v) {
+
+ #if BROTLI_LITTLE_ENDIAN
+@@ -311,31 +339,20 @@
#define BROTLI_UNALIGNED_STORE64LE BrotliUnalignedWrite64
#elif BROTLI_BIG_ENDIAN /* BROTLI_LITTLE_ENDIAN */
/* Explain compiler to byte-swap values. */
diff --git a/main/bsd-compat-headers/APKBUILD b/main/bsd-compat-headers/APKBUILD
new file mode 100644
index 00000000000..01dfd4e3495
--- /dev/null
+++ b/main/bsd-compat-headers/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=bsd-compat-headers
+pkgver=0.7.2
+pkgrel=6
+pkgdesc="BSD compatibility headers (cdefs, queue, tree)"
+url="https://gitlab.alpinelinux.org/alpine/aports"
+arch="noarch"
+license="BSD-2-Clause AND BSD-3-Clause"
+source="
+ cdefs.h
+ queue.h
+ tree.h
+"
+builddir="$srcdir"
+options="!check" # just headers
+
+package() {
+ mkdir -p "$pkgdir"
+ install -Dm644 -t "$pkgdir"/usr/include/sys \
+ cdefs.h queue.h tree.h
+}
+sha512sums="
+37c8fc73c7aea7b490f7850927e2bb91d12137c9e59e22c084146d515696dbc7973b5de92f4c987ba080dd2502ba83127006442c3f019b6447a620c0cae73178 cdefs.h
+2f0d5e6e4dc3350285cf17009265dddcbe12431c111868eea39bc8cb038ab7c1f2acacbb21735c4e9d4a1fd106a8fc0f8611ea33987d4faba37dde5ce6da0750 queue.h
+d9ac210d81feb8ad2655bc80fb065d3fe20ae4417b32b4a1711e6738a4870140005c13373b5d1846ef3ce5ae6da45f2dacef2092881eded0a2e94f6a07752ef3 tree.h
+"
diff --git a/main/libc-dev/sys-cdefs.h b/main/bsd-compat-headers/cdefs.h
index 209a623c0f0..562dffef2db 100644
--- a/main/libc-dev/sys-cdefs.h
+++ b/main/bsd-compat-headers/cdefs.h
@@ -1,3 +1,6 @@
+#ifndef _SYS_CDEFS_H_
+#define _SYS_CDEFS_H_
+
#warning usage of non-standard #include <sys/cdefs.h> is deprecated
#undef __P
@@ -24,3 +27,5 @@
# define __THROW
# define __NTH(fct) fct
#endif
+
+#endif /* _SYS_CDEFS_H_ */
diff --git a/main/libc-dev/sys-queue.h b/main/bsd-compat-headers/queue.h
index a38499a2673..a38499a2673 100644
--- a/main/libc-dev/sys-queue.h
+++ b/main/bsd-compat-headers/queue.h
diff --git a/main/libc-dev/sys-tree.h b/main/bsd-compat-headers/tree.h
index eaea56aae39..e13d3c4da9b 100644
--- a/main/libc-dev/sys-tree.h
+++ b/main/bsd-compat-headers/tree.h
@@ -1,5 +1,6 @@
/* $NetBSD: tree.h,v 1.20 2013/09/14 13:20:45 joerg Exp $ */
/* $OpenBSD: tree.h,v 1.13 2011/07/09 00:19:45 pirofti Exp $ */
+/* Modified by Void Linux. */
/*
* Copyright 2002 Niels Provos <provos@citi.umich.edu>
* All rights reserved.
@@ -28,6 +29,20 @@
#ifndef _SYS_TREE_H_
#define _SYS_TREE_H_
+#ifdef __GNUC__
+#define __GNUC_PREREQ__(x, y) \
+ ((__GNUC__ == (x) && __GNUC_MINOR__ >= (y)) || \
+ (__GNUC__ > (x)))
+#else
+#define __GNUC_PREREQ__(x, y) 0
+#endif
+
+#if __GNUC_PREREQ__(2, 7) || defined(__lint__)
+#define _sys_tree_h_unused __attribute__((__unused__))
+#else
+#define _sys_tree_h_unused /* delete */
+#endif
+
/*
* This file defines data structures for different types of trees:
* splay trees and red-black trees.
@@ -130,7 +145,7 @@ name##_SPLAY_FIND(struct name *head, struct type *elm) \
return (NULL); \
} \
\
-static __inline __unused struct type * \
+static __inline _sys_tree_h_unused struct type * \
name##_SPLAY_NEXT(struct name *head, struct type *elm) \
{ \
name##_SPLAY(head, elm); \
@@ -144,7 +159,7 @@ name##_SPLAY_NEXT(struct name *head, struct type *elm) \
return (elm); \
} \
\
-static __unused __inline struct type * \
+static _sys_tree_h_unused __inline struct type * \
name##_SPLAY_MIN_MAX(struct name *head, int val) \
{ \
name##_SPLAY_MINMAX(head, val); \
@@ -377,7 +392,7 @@ struct { \
#define RB_PROTOTYPE(name, type, field, cmp) \
RB_PROTOTYPE_INTERNAL(name, type, field, cmp,)
#define RB_PROTOTYPE_STATIC(name, type, field, cmp) \
- RB_PROTOTYPE_INTERNAL(name, type, field, cmp, __unused static)
+ RB_PROTOTYPE_INTERNAL(name, type, field, cmp, _sys_tree_h_unused static)
#define RB_PROTOTYPE_INTERNAL(name, type, field, cmp, attr) \
attr void name##_RB_INSERT_COLOR(struct name *, struct type *); \
attr void name##_RB_REMOVE_COLOR(struct name *, struct type *, struct type *);\
@@ -396,7 +411,7 @@ attr struct type *name##_RB_MINMAX(struct name *, int); \
#define RB_GENERATE(name, type, field, cmp) \
RB_GENERATE_INTERNAL(name, type, field, cmp,)
#define RB_GENERATE_STATIC(name, type, field, cmp) \
- RB_GENERATE_INTERNAL(name, type, field, cmp, __unused static)
+ RB_GENERATE_INTERNAL(name, type, field, cmp, _sys_tree_h_unused static)
#define RB_GENERATE_INTERNAL(name, type, field, cmp, attr) \
attr void \
name##_RB_INSERT_COLOR(struct name *head, struct type *elm) \
diff --git a/main/btrfs-progs/APKBUILD b/main/btrfs-progs/APKBUILD
index 078b06c4b27..b5c9d374d53 100644
--- a/main/btrfs-progs/APKBUILD
+++ b/main/btrfs-progs/APKBUILD
@@ -2,44 +2,53 @@
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=btrfs-progs
-pkgver=5.18.1
-pkgrel=0
+pkgver=6.8
+pkgrel=1
pkgdesc="BTRFS filesystem utilities"
url="https://btrfs.wiki.kernel.org"
arch="all"
-license="GPL-2.0-or-later LGPL-3.0-or-later"
+license="GPL-2.0-or-later"
depends_dev="linux-headers"
makedepends="$depends_dev
acl-dev
asciidoc
attr-dev
- autoconf
- automake
e2fsprogs-dev
- libtool
+ eudev-dev
lzo-dev
py3-setuptools
+ py3-sphinx
python3-dev
util-linux-dev
xmlto
zlib-dev
zstd-dev
- eudev-dev
- py3-sphinx"
-subpackages="$pkgname-doc
+ "
+checkdepends="
+ acl
+ coreutils
+ libaio-dev
+ liburing-dev
+ losetup
+ xz
+ "
+subpackages="
+ $pkgname-doc
$pkgname-static
$pkgname-dev
$pkgname-bash-completion
py3-$pkgname:py3
$pkgname-libs
- $pkgname-extra"
-source="https://www.kernel.org/pub/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v$pkgver.tar.xz"
+ $pkgname-extra
+ $pkgname-openrc
+ "
+source="https://www.kernel.org/pub/linux/kernel/people/kdave/btrfs-progs/btrfs-progs-v$pkgver.tar.xz
+ btrfs-scan.initd
+ remove-sphinx_rtd_theme.patch
+ "
builddir="$srcdir/$pkgname-v$pkgver"
-
-prepare() {
- default_prepare
- ./autogen.sh
-}
+# most pass, one fails to build (fsstress renameat2)
+options="!check"
build() {
./configure \
@@ -53,8 +62,12 @@ build() {
make
}
+check() {
+ make test
+}
+
package() {
- make -j1 DESTDIR="$pkgdir" install install_python
+ make DESTDIR="$pkgdir" install install_python
mkdir -p "$pkgdir"/usr/share/doc/$pkgname
install -m644 README.md CHANGES \
@@ -68,6 +81,8 @@ package() {
install -Dm644 btrfs-completion \
"$pkgdir"/usr/share/bash-completion/completions/btrfs
+
+ install -Dm755 "$srcdir"/btrfs-scan.initd "$pkgdir"/etc/init.d/btrfs-scan
}
py3() {
@@ -75,19 +90,18 @@ py3() {
provides="py-btrfs-progs=$pkgver-r$pkgrel" # for backward compatibility
replaces="py-btrfs-progs" # for backward compatibility
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/python* "$subpkgdir"/usr/lib/
+ amove usr/lib/python*
}
extra() {
depends="$pkgname"
pkgdesc="BTRFS filesystem extra utilities"
- mkdir -p "$subpkgdir"
- mv "$pkgdir"/usr "$subpkgdir"/
- rmdir "$subpkgdir"/usr/lib
+ amove usr/sbin
}
sha512sums="
-265a03b0db00a231ad51bb75fb161dee0a7a51cd120a696ca0524f08ef635b18afe43b391fa9889a4a79734ccc3931e4374bd950eb26dc47ddc8482368efed0e btrfs-progs-v5.18.1.tar.xz
+adce7c15ef5a19c4fc513f1743b4f65f2c72aa4490703d36c93230abb305c576bd69a32c4bcf19c2b58aee5b5755e0d54fb82fe649a5fe021366eb0d89af4261 btrfs-progs-v6.8.tar.xz
+8f8757e094e5cb3b2748e2b41ba3c50d4535e24c5ced3b31eea6457f61f9fe90894a51d512d306ec8ea20ace6bb8dfe00422d3cbea9734568b492a044d4b2018 btrfs-scan.initd
+c8354118cc4f17d19213a99580c2d8c0cf3173a91c5e42a62c8a7d3b2b66395419136b9761d70503ced0fc959cf8071ae2e2dc1667f000bf0ac86eddc9253bb3 remove-sphinx_rtd_theme.patch
"
diff --git a/main/btrfs-progs/btrfs-scan.initd b/main/btrfs-progs/btrfs-scan.initd
new file mode 100644
index 00000000000..67a9771f6cf
--- /dev/null
+++ b/main/btrfs-progs/btrfs-scan.initd
@@ -0,0 +1,12 @@
+#!/sbin/openrc-run
+
+name="btrfs-scan"
+
+depend() {
+ before localmount
+}
+
+start() {
+ /sbin/modprobe btrfs
+ /sbin/btrfs device scan
+}
diff --git a/main/btrfs-progs/remove-sphinx_rtd_theme.patch b/main/btrfs-progs/remove-sphinx_rtd_theme.patch
new file mode 100644
index 00000000000..ef63dfb7860
--- /dev/null
+++ b/main/btrfs-progs/remove-sphinx_rtd_theme.patch
@@ -0,0 +1,28 @@
+With this patch, py3-sphinx_rtd_theme is not needed
+as makedepends and can remain in the community repo
+
+
+--- a/Documentation/conf.py
++++ b/Documentation/conf.py
+@@ -35,7 +35,7 @@
+
+ # The theme to use for HTML and HTML Help pages. See the documentation for
+ # a list of builtin themes.
+-html_theme = 'sphinx_rtd_theme'
++html_theme = 'default'
+
+ # Add any paths that contain custom static files (such as style sheets) here,
+ # relative to this directory. They are copied after the builtin static files,
+@@ -75,8 +75,6 @@
+ ('mkfs.btrfs', 'mkfs.btrfs', 'create a btrfs filesystem', '', 8),
+ ('btrfs-man5', 'btrfs', 'topics about the BTRFS filesystem (mount options, supported file attributes and other)', '', 5),
+ ]
+-
+-extensions = [ 'sphinx_rtd_theme' ]
+
+ # Cross reference with document and label
+ # Syntax: :docref`Title <rawdocname:label>`
+--- a/Documentation/requirements.txt
++++ /dev/null
+@@ -1 +0,0 @@
+-sphinx_rtd_theme
diff --git a/main/bubblewrap/APKBUILD b/main/bubblewrap/APKBUILD
index ebc23f8f14d..781bfcf3d26 100644
--- a/main/bubblewrap/APKBUILD
+++ b/main/bubblewrap/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=bubblewrap
-pkgver=0.6.2
+pkgver=0.9.0
pkgrel=0
pkgdesc="Unprivileged sandboxing tool"
url="https://github.com/containers/bubblewrap"
@@ -20,7 +20,7 @@ build() {
abuild-meson \
-Drequire_userns=true \
. output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
package() {
@@ -28,5 +28,5 @@ package() {
}
sha512sums="
-09b89836242941bd5d1975a64a9543caae77c344ace7baf06670fddbfce28be22728cf0a7e4c2df142b2d89a903df92cfd4671b442058953ea4ebb099eb05577 bubblewrap-0.6.2.tar.gz
+5197eeae5a6364c19421dc956861f14777831bc5f651a5ccf461c60499fbb4ff965c24afc31063f028f817236734c08031bcc087e3146798627fa421d6b09591 bubblewrap-0.9.0.tar.gz
"
diff --git a/main/busybox-initscripts/APKBUILD b/main/busybox-initscripts/APKBUILD
deleted file mode 100644
index 65bec6c6760..00000000000
--- a/main/busybox-initscripts/APKBUILD
+++ /dev/null
@@ -1,87 +0,0 @@
-# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=busybox-initscripts
-pkgver=4.1
-pkgrel=1
-pkgdesc="Init scripts for busybox daemons"
-url="https://git.alpinelinux.org/aports/tree/main/busybox-initscripts"
-arch="noarch"
-license="GPL-2.0-only"
-depends="busybox openrc>=0.24.1-r6 mdev-conf=$pkgver-r$pkgrel"
-makedepends=""
-install="$pkgname.post-install $pkgname.post-upgrade"
-subpackages="mdev-conf:_mdev_conf"
-checkdepends="bats"
-replaces="alpine-baselayout openntpd"
-source="acpid.initd crond.initd dnsd.initd httpd.initd inetd.initd klogd.initd
- mdev.initd ntpd.initd rdate.initd syslog.initd udhcpd.initd loadkmap.initd
- watchdog.initd crond.confd klogd.confd ntpd.confd rdate.confd syslog.confd
- watchdog.confd loadkmap.confd mdev.conf dvbdev usbdev persistent-storage
- ptpdev
- ptpdev.bats
- "
-
-check() {
- cd "$srcdir"
- msg "running tests"
- bats *.bats
-}
-
-package() {
- local i
- cd "$srcdir"
-
- mkdir -p "$pkgdir"/etc/conf.d "$pkgdir"/etc/init.d "$pkgdir"/lib/mdev\
- "$pkgdir"/etc/acpi/PWRF
- for i in *.initd; do
- install -m755 "$srcdir"/$i "$pkgdir"/etc/init.d/${i%.*} || return 1
- done
- for i in *.confd; do
- install -m644 "$srcdir"/$i "$pkgdir"/etc/conf.d/${i%.*} || return 1
- done
- install -m644 mdev.conf "$pkgdir"/etc
- install -m755 dvbdev persistent-storage ptpdev usbdev \
- "$pkgdir"/lib/mdev/
-
- # poweroff script for acpid
- cat >"$pkgdir"/etc/acpi/PWRF/00000080 <<EOF
-#!/bin/sh
-poweroff
-EOF
- chmod +x "$pkgdir"/etc/acpi/PWRF/00000080
-}
-
-_mdev_conf() {
- pkgdesc="Configuration files for mdev and mdevd"
- depends=
- amove etc/mdev.conf lib/mdev
-}
-
-sha512sums="
-dd548670114a92404b8e35fb915fdbe5994498b05b0a418583271c3dd72fb7800950e42c095c902a014eb198c046b8a346d43dccd8e7a158048ae33767c572ed acpid.initd
-c9d0fb0f8cc27d661d3b4e58c56eb598ca368890576e18ffffd42efdf68ba35537656be9be319b2e2818aa0152d3ca8611bece2433512fbfcd4eed7988765549 crond.initd
-612a7ffb475fd23d33b2a7266b621537ca59b4abd8cb5a9ce03771800ec4f7622a8ff380320f8d768291e4d1a68adfff28f369776a80125940ee40b2e4a5db4d dnsd.initd
-66bfd7d2a03f4e8a50f08b7057091bfef8e36001eb7c07574ec45da6d75db05a88ae37dbd51e3e3fc7b00a784bf69f8416682ce0454ca16cc072358abdf4d2ce httpd.initd
-9f7c96a7af5e0f6450b6100b7f99e3fe52759f797dca3a92e8e4ad7c08e6acf384fba2496a4e1e8b77f60ba23195bf2bf58013b16aa03f649a16d6f8aad3f8a9 inetd.initd
-e8deb44d6a7c4cf7e1ced3436ad8c97ed86ff211d2db270cdd4a96e0cc4e6720909a821c35bc2830769da2304f9d6fc732051e205c8e22fe9a65d2798dfe3c42 klogd.initd
-1aed59fb048f0636ee8a095a089a20554a20eda84c70485a894ae60b0f97b792b7ce8e832557457258f59a2750735c4a25e247364ccf1180e9652b292a5f9e8d mdev.initd
-c30d3936e045c01fdc9d1e9d1c0d2cd79b6dabb453400f067bc4eefa239a41c98bbe3fcd3ae53792e0e6d8fcf4aebc727e4524ec3ccd5741d5659a0a351c1c7e ntpd.initd
-a95d03564712803fc58c48534f2fbbf23dd8418ffd3a6a06f840e969627892eea518b4fe17f059850665fc056cedf972c26aee52c309805987fb5c59a710bd30 rdate.initd
-acfd45bda4526ab551a30faec1742ad1569aa85e0d315959c3e3a3d6a693f94c74efeb57a00b8791524651e8a61d3f7ea3e3e08a4b0291ec46309f594ee8124c syslog.initd
-1d4574ec7cc6d7e9952bb50b4fcb10a910868688da03a25aede492835313c686247bde1faa17f50243d61a93bfc1d8fa54cf821d7be908581e365b0f1b6a5588 udhcpd.initd
-1b61a0f1eb40f2ea14bf3ed3441996f343d70fd45858d443f21244f133dcdf1c64433c3deaef769eee4e3e698b405f25e1bbc185a25c351a88ce7d120d61cf00 loadkmap.initd
-0a4f989068f00dd8599433ea1fe0713c405ed871750b918e32db2d6bccefc8b870ea2e16864d1b7c3dd57d63e04b41aa0bf9c882c1a9e8108def141d12072e90 watchdog.initd
-34c6f3197064bb91619b899b28a201bd4d920b18bded3845440b2cb36dc6f16cabf447c96878349b16e46c30184cbe48bac00a01c5f7cf1be038c0b7136064c5 crond.confd
-f9bf43b72142bbb4c0665c1268a3d91586ef8a057dfe64c53b6923815d2db1f669b8080a38311ad89cda0b783a8628700fc5414d834a21d8e48515760bb910f7 klogd.confd
-b0ba67585f39d83320ed6de183d7463a0e163807b9f3dc6f0baa212236056f22aeb2c5399dfdcd54929eb5ae06a15714c2fed133b5888869ed9d9cf589cef843 ntpd.confd
-3d6c4d358e226e0c0462f2003bcf0b6787f91a53f4d6b6db5bfe7748bb0dd392d7cc454058ea8a9b649e8dd2629963a5ad1257c36af04367caeb1923f954daf7 rdate.confd
-bf8173ee33a5d2b61cbdbc1b070e599a17a21e5433a0d8aa9beef71e4ac831304076af8e7e58dc594cdee61562329793afdc57af91e5496bf5fffb9b734a3d9c syslog.confd
-359af0a4a1841dd6557eaf3e71d39f0d7a2687bad6a8fc6ef436eccf72a40f85c6400a3b7880c7f64d8e460b6af8a0ff3dd5ffc3a4b1aa8eb0d8f7eaf99ee3e4 watchdog.confd
-acbba3385fb2c416362eb9176f24146b617a2e394ee0e00b9eff89350f82468a5ab8396f4f52b0aaf03d341ac6150c73182e808fa3f29a2dc71c69271cdfb811 loadkmap.confd
-b5c299d5dcd854eb23717aab6938e2e1c9572d10ed667595b4a98f9cddca9f81c3f8f7ae508b62db5fe203c45c696d3c2a9ce62761aa329b2bcfcc5e5a3a9224 mdev.conf
-ebd82f935da2ca89097234dd8a8f47e179a423652c151123a1f3343f3e1e7bfaba2b8800380e988d4e8f4294545d3a9ab6708ae2e77c5b108b5f091bbce8f94a dvbdev
-b2dcf0ded9264334d79fbbb05dd12d649dc3119a060db5893f0e8aeca2141323961c3ba4c822a0ffb00dba848742d5cb374dc77e776b57cecde352a3e8e30f8a usbdev
-0f54666072a8ee32965cc1b5205a6d35bc2ba6655f298c37ba9ccd72949fa7c41b1e540ec91f41b11f4b261ace614cdcc42dccf390bf0a22698d0ba499feae39 persistent-storage
-46b9379a5def08ce0afffae546693c19be158ca4fa4ce3c619ec81e0adbaa087ea5dd6df10abbfcd59bfdaf351d7170a7d24c2b403eceeb80f4f04f090630227 ptpdev
-5e1f6fabd7845f9cd6f90477f10a0b428b4414caed18a6dfe8e86e2ce3d373521d593aa6a9ee475b138a18b15c7a403a2bb0e1987b1dbdb6d465ebd7d5836a86 ptpdev.bats
-"
diff --git a/main/busybox-initscripts/busybox-initscripts.post-install b/main/busybox-initscripts/busybox-initscripts.post-install
deleted file mode 100644
index c393627437f..00000000000
--- a/main/busybox-initscripts/busybox-initscripts.post-install
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/sh
-
-# this is for upgraders
-addgroup -S -g 23 input 2>/dev/null
-
-# this is for upgraders
-if [ -L /etc/runlevels/boot/mdev ] && ! [ -L /etc/runlevels/sysinit/mdev ]; then
- mkdir -p /etc/runlevels/sysinit
- mv /etc/runlevels/boot/mdev /etc/runlevels/sysinit/ 2>/dev/null
-fi
-
-rename_service() {
- oldname="$1"
- newname="$2"
-
- ret=1
- for link in /run/openrc/*/${oldname} /etc/runlevels/*/${oldname}; do
- newlink="${link%/*}/${newname}"
- if [ -L "$link" ] && ! [ -L "$newlink" ]; then
- target="$(readlink $link)"
- ln -s "${target%/*}/$newname" "$newlink"
- rm "$link"
- ret=0
- continue
- fi
- if [ -d "$link" ] && ! [ -d "$newlink" ]; then
- mv "$link" "$newlink"
- ret=0
- fi
- done
-
- return $ret
-}
-
-# cron was renamed to crond
-rename_service cron crond
-
-# keymaps was renamed to loadkmap
-rename_service keymaps loadkmap && cat 1>&2 <<-EOF
-*
-* The OpenRC keymaps service was renamed to loadkmap. You might want
-* to rename your previous configuration file /etc/conf.d/keymaps to
-* /etc/conf.d/loadkmap. Also make sure that /etc/init.d/keymaps was
-* removed and remove it manually if it wasn't.
-*
-EOF
-
-exit 0
-
diff --git a/main/busybox-initscripts/busybox-initscripts.post-upgrade b/main/busybox-initscripts/busybox-initscripts.post-upgrade
deleted file mode 120000
index ef17c501472..00000000000
--- a/main/busybox-initscripts/busybox-initscripts.post-upgrade
+++ /dev/null
@@ -1 +0,0 @@
-busybox-initscripts.post-install \ No newline at end of file
diff --git a/main/busybox-initscripts/crond.initd b/main/busybox-initscripts/crond.initd
deleted file mode 100644
index afaf384acd8..00000000000
--- a/main/busybox-initscripts/crond.initd
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/sbin/openrc-run
-
-name="busybox $SVCNAME"
-command="/usr/sbin/$SVCNAME"
-pidfile="/var/run/$SVCNAME.pid"
-command_args="$CRON_OPTS"
-
-depend() {
- need localmount
- need logger
-}
diff --git a/main/busybox-initscripts/dvbdev b/main/busybox-initscripts/dvbdev
deleted file mode 100644
index f0186c176cd..00000000000
--- a/main/busybox-initscripts/dvbdev
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/sh
-
-# MDEV=dvb0.demux1 -> ADAPTER=dvb0 -> N=0
-ADAPTER=${MDEV%.*}
-N=${ADAPTER#dvb}
-# MDEV=dvb0.demux1 -> DEVB_DEV=demux1
-DVB_DEV=${MDEV#*.}
-
-case "$ACTION" in
- add|"")
- mkdir -p dvb/adapter${N}
- mv ${MDEV} dvb/adapter${N}/${DVB_DEV}
- ;;
- remove)
- rm -f dvb/adapter${N}/${DVB_DEV}
- rmdir dvb/adapter${N} 2>/dev/null
- rmdir dvb/ 2>/dev/null
-esac
diff --git a/main/busybox-initscripts/httpd.initd b/main/busybox-initscripts/httpd.initd
deleted file mode 100644
index 001aeb5a383..00000000000
--- a/main/busybox-initscripts/httpd.initd
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/sbin/openrc-run
-
-name="busybox $SVCNAME"
-command="/usr/sbin/$SVCNAME"
-command_args="$HTTPD_OPTS"
-
-depend() {
- need net localmount
- after firewall
-}
-
diff --git a/main/busybox-initscripts/klogd.initd b/main/busybox-initscripts/klogd.initd
deleted file mode 100644
index 6f83ca1c302..00000000000
--- a/main/busybox-initscripts/klogd.initd
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/sbin/openrc-run
-
-name="busybox klogd"
-command="/sbin/klogd"
-command_args="${KLOGD_OPTS}"
-pidfile="/var/run/klogd.pid"
-
-depend() {
- need clock hostname localmount syslog
- before net
- keyword -vserver -lxc
-}
diff --git a/main/busybox-initscripts/mdev.conf b/main/busybox-initscripts/mdev.conf
deleted file mode 100644
index 0857942cabe..00000000000
--- a/main/busybox-initscripts/mdev.conf
+++ /dev/null
@@ -1,141 +0,0 @@
-#
-# This is a sample mdev.conf.
-#
-
-# Devices:
-# Syntax: %s %d:%d %s
-# devices user:group mode
-
-$MODALIAS=.* root:root 0660 @modprobe -q -b "$MODALIAS"
-
-# null does already exist; therefore ownership has to be changed with command
-null root:root 0666 @chmod 666 $MDEV
-zero root:root 0666
-grsec root:root 0660
-full root:root 0666
-
-random root:root 0666
-urandom root:root 0444
-hwrandom root:root 0660
-
-console root:tty 0600
-
-# load frambuffer console when first frambuffer is found
-fb0 root:video 0660 @modprobe -q -b fbcon
-vchiq root:video 0660
-
-fd0 root:floppy 0660
-kmem root:root 0640
-mem root:root 0640
-port root:root 0640
-ptmx root:tty 0666
-
-# Kernel-based Virtual Machine.
-kvm root:kvm 660
-
-# ram.*
-ram([0-9]*) root:disk 0660 >rd/%1
-loop([0-9]+) root:disk 0660 >loop/%1
-
-# persistent storage
-dasd.* root:disk 0660 */lib/mdev/persistent-storage
-mmcblk.* root:disk 0660 */lib/mdev/persistent-storage
-nbd.* root:disk 0660 */lib/mdev/persistent-storage
-nvme.* root:disk 0660 */lib/mdev/persistent-storage
-sd[a-z].* root:disk 0660 */lib/mdev/persistent-storage
-sr[0-9]+ root:cdrom 0660 */lib/mdev/persistent-storage
-vd[a-z].* root:disk 0660 */lib/mdev/persistent-storage
-xvd[a-z].* root:disk 0660 */lib/mdev/persistent-storage
-
-md[0-9] root:disk 0660
-
-tty root:tty 0666
-tty[0-9] root:root 0600
-tty[0-9][0-9] root:tty 0660
-ttyS[0-9]* root:uucp 0660
-pty.* root:tty 0660
-vcs[0-9]* root:tty 0660
-vcsa[0-9]* root:tty 0660
-
-# rpi bluetooth
-#ttyAMA0 root:tty 660 @btattach -B /dev/$MDEV -P bcm -S 115200 -N &
-
-ttyACM[0-9] root:dialout 0660 @ln -sf $MDEV modem
-ttyUSB[0-9] root:dialout 0660 @ln -sf $MDEV modem
-ttyLTM[0-9] root:dialout 0660 @ln -sf $MDEV modem
-ttySHSF[0-9] root:dialout 0660 @ln -sf $MDEV modem
-slamr root:dialout 0660 @ln -sf $MDEV slamr0
-slusb root:dialout 0660 @ln -sf $MDEV slusb0
-fuse root:root 0666
-
-# dri device
-dri/.* root:video 0660
-card[0-9] root:video 0660 =dri/
-
-# alsa sound devices and audio stuff
-pcm.* root:audio 0660 =snd/
-control.* root:audio 0660 =snd/
-midi.* root:audio 0660 =snd/
-seq root:audio 0660 =snd/
-timer root:audio 0660 =snd/
-
-adsp root:audio 0660 >sound/
-audio root:audio 0660 >sound/
-dsp root:audio 0660 >sound/
-mixer root:audio 0660 >sound/
-sequencer.* root:audio 0660 >sound/
-
-SUBSYSTEM=sound;.* root:audio 0660
-
-# PTP devices
-ptp[0-9] root:root 0660 */lib/mdev/ptpdev
-
-# virtio-ports
-SUBSYSTEM=virtio-ports;vport.* root:root 0600 @mkdir -p virtio-ports; ln -sf ../$MDEV virtio-ports/$(cat /sys/class/virtio-ports/$MDEV/name)
-
-# misc stuff
-agpgart root:root 0660 >misc/
-psaux root:root 0660 >misc/
-rtc root:root 0664 >misc/
-
-# input stuff
-event[0-9]+ root:input 0640 =input/
-mice root:input 0640 =input/
-mouse[0-9] root:input 0640 =input/
-js[0-9] root:input 0640 =input/
-ts[0-9] root:input 0600 =input/
-
-# v4l stuff
-vbi[0-9] root:video 0660 >v4l/
-video[0-9]+ root:video 0660 >v4l/
-
-# dvb stuff
-dvb.* root:video 0660 */lib/mdev/dvbdev
-
-# load drivers for usb devices
-usb[0-9]+ root:root 0660 */lib/mdev/usbdev
-
-# net devices
-# 666 is fine: https://www.kernel.org/doc/Documentation/networking/tuntap.txt
-net/tun[0-9]* root:netdev 0666
-net/tap[0-9]* root:netdev 0666
-
-# zaptel devices
-zap(.*) root:dialout 0660 =zap/%1
-dahdi!(.*) root:dialout 0660 =dahdi/%1
-dahdi/(.*) root:dialout 0660 =dahdi/%1
-
-# raid controllers
-cciss!(.*) root:disk 0660 =cciss/%1
-cciss/(.*) root:disk 0660 =cciss/%1
-ida!(.*) root:disk 0660 =ida/%1
-ida/(.*) root:disk 0660 =ida/%1
-rd!(.*) root:disk 0660 =rd/%1
-rd/(.*) root:disk 0660 =rd/%1
-
-# tape devices
-nst[0-9]+.* root:tape 0660
-st[0-9]+.* root:tape 0660
-
-# fallback for any!device -> any/device
-(.*)!(.*) root:root 0660 =%1/%2
diff --git a/main/busybox-initscripts/ntpd.initd b/main/busybox-initscripts/ntpd.initd
deleted file mode 100644
index ad738057da4..00000000000
--- a/main/busybox-initscripts/ntpd.initd
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/sbin/openrc-run
-
-name="busybox $SVCNAME"
-command="/usr/sbin/$SVCNAME"
-command_args="${NTPD_OPTS:--N -p pool.ntp.org}"
-pidfile="/var/run/$SVCNAME.pid"
-
-depend() {
- need net
- provide ntp-client
- use dns
-}
-
diff --git a/main/busybox-initscripts/persistent-storage b/main/busybox-initscripts/persistent-storage
deleted file mode 100644
index ea689482947..00000000000
--- a/main/busybox-initscripts/persistent-storage
+++ /dev/null
@@ -1,68 +0,0 @@
-#!/bin/sh
-
-symlink_action() {
- case "$ACTION" in
- add) ln -sf "$1" "$2";;
- remove) rm -f "$2";;
- esac
-}
-
-# cdrom symlink
-case "$MDEV" in
- sr*|xvd*)
- caps="$(cat /sys/block/$MDEV/capability 2>/dev/null)"
- if [ $(( 0x${caps:-0} & 8 )) -gt 0 ]; then
- symlink_action $MDEV cdrom
- fi
-esac
-
-# by-id symlinks
-mkdir -p disk/by-id
-
-partition=$(cat /sys/class/block/$MDEV/partition 2>/dev/null)
-case "$partition" in
- [0-9]*) partsuffix="-part$partition";;
-esac
-
-wwid=$(cat /sys/class/block/$MDEV/wwid 2>/dev/null)
-: ${wwid:=$(cat /sys/class/block/$MDEV/device/wwid 2>/dev/null)}
-
-if [ -n "$wwid" ]; then
- case "$MDEV" in
- nvme*) symlink_action ../../$MDEV disk/by-id/nvme-${wwid}${partsuffix};;
- esac
- case "$wwid" in
- naa.*) symlink_action ../../$MDEV disk/by-id/wwn-0x${wwid#naa.};;
- esac
-fi
-
-serial=$(sed -E -e 's/^\s+//' -e 's/\s+$//' -e 's/ /_/g' \
- /sys/class/block/$MDEV/device/serial 2>/dev/null)
-
-model=$(sed -E -e 's/^\s+//' -e 's/\s+$//' -e 's/ /_/g' \
- /sys/class/block/$MDEV/device/model 2>/dev/null)
-
-if [ -n "$serial" ] && [ -n "$model" ]; then
- case "$MDEV" in
- nvme*) symlink_action ../../$MDEV disk/by-id/nvme-${model}_${serial}${partsuffix};;
- esac
-fi
-
-# virtio-blk
-if [ -n "$serial" ]; then
- case "$MDEV" in
- vd*) symlink_action ../../$MDEV disk/by-id/virtio-${serial}${partsuffix};;
- esac
-fi
-
-# by-uuid, by-partuuid
-eval $(blkid /dev/$MDEV | cut -d: -f2-)
-if [ -n "$UUID" ]; then
- mkdir -p disk/by-uuid
- symlink_action ../../$MDEV disk/by-uuid/$UUID
-fi
-if [ -n "$PARTUUID" ]; then
- mkdir -p disk/by-partuuid
- symlink_action ../../$MDEV disk/by-partuuid/$PARTUUID
-fi
-
diff --git a/main/busybox-initscripts/ptpdev b/main/busybox-initscripts/ptpdev
deleted file mode 100755
index 56757fba282..00000000000
--- a/main/busybox-initscripts/ptpdev
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-
-symlink_action() {
- case "$ACTION" in
- add) ln -sf "$1" "$2";;
- remove) rm -f "$2";;
- esac
-}
-
-clock_name=$(cat ${SYSFS:-/sys}/class/ptp/$MDEV/clock_name 2>/dev/null | sed -e 's/ /_/g')
-case "$clock_name" in
- KVM_virtual_PTP) symlink_action $MDEV ptp_kvm ;;
- ptp_vmw) symlink_action $MDEV ptp_vmw ;;
- hyperv) symlink_action $MDEV ptp_hyperv ;;
-esac
diff --git a/main/busybox-initscripts/ptpdev.bats b/main/busybox-initscripts/ptpdev.bats
deleted file mode 100644
index 7c43c482d0e..00000000000
--- a/main/busybox-initscripts/ptpdev.bats
+++ /dev/null
@@ -1,49 +0,0 @@
-setup() {
- mdevscript=${BATS_TEST_FILENAME%.bats}
- root="$BATS_FILE_TMPDIR"
- mkdir -p "$root"/dev "$root"/sys "$root"/bin
- PATH="$root/bin:$PATH"
- export SYSFS="$root/sys"
-
- mkdir -p "$root"/sys/class/ptp/ptp0 \
- "$root"/sys/class/ptp/ptp1 \
- "$root"/sys/class/ptp/ptp2
-
- echo "KVM virtual PTP" > "$root"/sys/class/ptp/ptp0/clock_name
- echo "ptp vmw" > "$root"/sys/class/ptp/ptp1/clock_name
- echo hyperv > "$root"/sys/class/ptp/ptp2/clock_name
-
- cd "$root"/dev
-}
-
-teardown() {
- rm -r "$root"
-}
-
-@test "ptpdev kvm" {
- MDEV=ptp0 ACTION=add sh $mdevscript
- [ $(readlink ptp_kvm) = ptp0 ]
-
- MDEV=ptp0 ACTION=remove sh $mdevscript
- run readlink ptp_kvm
- [ "$status" -ne 0 ]
-}
-
-@test "ptpdev vmw" {
- MDEV=ptp1 ACTION=add sh $mdevscript
- [ $(readlink ptp_vmw) = ptp1 ]
-
- MDEV=ptp1 ACTION=remove sh $mdevscript
- run readlink ptp_vmw
- [ "$status" -ne 0 ]
-}
-
-@test "ptpdev hyperv" {
- MDEV=ptp2 ACTION=add sh $mdevscript
- run readlink ptp_hyperv
- [ $(readlink ptp_hyperv) = ptp2 ]
-
- MDEV=ptp2 ACTION=remove sh $mdevscript
- run readlink ptp_hyperv
- [ "$status" -ne 0 ]
-}
diff --git a/main/busybox-initscripts/udhcpd.initd b/main/busybox-initscripts/udhcpd.initd
deleted file mode 100644
index 02c7620d275..00000000000
--- a/main/busybox-initscripts/udhcpd.initd
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/sbin/openrc-run
-
-name="busybox $SVCNAME"
-command="/usr/sbin/$SVCNAME"
-command_args="$UDHCPD_OPTS "
-pidfile="/var/run/$SVCNAME.pid"
-
-depend() {
- need net
- after firewall
-}
diff --git a/main/busybox-initscripts/usbdev b/main/busybox-initscripts/usbdev
deleted file mode 100755
index c811736ddae..00000000000
--- a/main/busybox-initscripts/usbdev
+++ /dev/null
@@ -1,25 +0,0 @@
-#!/bin/sh
-
-# mdev -s will not set SUBSYSTEM or DEVNAME so we trigger a hotplug event
-if [ "$SUBSYSTEM" != "usb" ] || [ "$DEVTYPE" != "usb_device" ]; then
- uev=/sys/bus/usb/devices/$MDEV/uevent
- [ -e "$uev" ] && echo "add" > "$uev"
- exit
-fi
-
-[ -n "$DEVNAME" ] || exit
-
-case "$ACTION" in
-add)
- mkdir -p "${DEVNAME%/*}"
- mv $MDEV $DEVNAME
- # autoload driver
- for i in /sys/$DEVPATH/*/modalias; do
- [ -e "$i" ] && echo $i
- done | xargs sort -u | xargs modprobe -a 2>/dev/null
- ;;
-remove)
- rm $DEVNAME
- ;;
-esac
-
diff --git a/main/busybox/0001-avoid-redefined-warnings-when-building-with-utmps.patch b/main/busybox/0001-avoid-redefined-warnings-when-building-with-utmps.patch
deleted file mode 100644
index 246e9b079ce..00000000000
--- a/main/busybox/0001-avoid-redefined-warnings-when-building-with-utmps.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Mon, 06 Sep 2021 23:13:05 +0200
-Subject: [PATCH] Avoid redefined warnings when building with utmps
-
---- a/include/libbb.h
-+++ b/include/libbb.h
-@@ -107,6 +107,9 @@
- # define _PATH_UTMPX _PATH_UTMP
- # else
- # if !defined(__FreeBSD__)
-+/* _PATH_UTMP and _PATH_WTMP are defined both in paths.h and utmps/utmp.h. */
-+# undef _PATH_UTMP
-+# undef _PATH_WTMP
- # include <utmp.h>
- # else
- # define _PATH_UTMPX "/var/run/utx.active"
diff --git a/main/busybox/0001-modutils-check-ELF-header-before-calling-finit_module.patch b/main/busybox/0001-modutils-check-ELF-header-before-calling-finit_modul.patch
index 813010e5f24..dd83a7605fe 100644
--- a/main/busybox/0001-modutils-check-ELF-header-before-calling-finit_module.patch
+++ b/main/busybox/0001-modutils-check-ELF-header-before-calling-finit_modul.patch
@@ -1,14 +1,10 @@
-Patch-Source: http://lists.busybox.net/pipermail/busybox/2021-January/088398.html
-Patch-Source: http://lists.busybox.net/pipermail/busybox/2021-January/088399.html
-See-Also: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13427
-
-The purpose of this patch is to remove confusing error messages
-"Module has invalid ELF structures" produced by kernel when loading gzip
-compressed kernel modules using busybox modprobe.
---
+From e1a02faa656420a3c32fc8733e0566c2e430e6d6 Mon Sep 17 00:00:00 2001
From: Qu Wenruo <wqu@suse.com>
-Date: Sun, 03 Jan 2021 04:10:52 +0000
-Subject: [PATCH v2] modutils: check ELF header before calling finit_module()
+Date: Sun, 3 Jan 2021 16:00:14 +0000
+Subject: [PATCH] modutils: check ELF header before calling finit_module()
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
finit_module() and init_module() system calls have clear specification
to only accept valid ELF image.
@@ -21,22 +17,26 @@ Treat the kernel better by just doing a very basic ELF header check
before calling finit_module().
Signed-off-by: Qu Wenruo <wqu at suse.com>
+---
+ modutils/modprobe-small.c | 33 ++++++++++++++++++++++++++++++++-
+ modutils/modutils.c | 37 ++++++++++++++++++++++++++++++++++++-
+ 2 files changed, 68 insertions(+), 2 deletions(-)
-diff --git a/modutils/modutils.c b/modutils/modutils.c
-index f7ad5e8058fe..037d609e42df 100644
---- a/modutils/modutils.c
-+++ b/modutils/modutils.c
-@@ -7,6 +7,7 @@
- */
- #include "modutils.h"
-
-+#include <elf.h>
- #include <sys/syscall.h>
+diff --git a/modutils/modprobe-small.c b/modutils/modprobe-small.c
+index b61651621..4763e0811 100644
+--- a/modutils/modprobe-small.c
++++ b/modutils/modprobe-small.c
+@@ -24,6 +24,7 @@
+ //kbuild:lib-$(CONFIG_MODPROBE_SMALL) += modprobe-small.o
- #define init_module(mod, len, opts) syscall(__NR_init_module, mod, len, opts)
-@@ -186,6 +187,33 @@ void* FAST_FUNC try_to_mmap_module(const char *filename, size_t *image_size_p)
+ #include "libbb.h"
++#include <elf.h> /* for ELF header magic */
+ /* After libbb.h, since it needs sys/types.h on some systems */
+ #include <sys/utsname.h> /* uname() */
+ #include <fnmatch.h>
+@@ -249,6 +250,33 @@ static const char *moderror(int err)
+ }
}
- #endif
+#ifdef __NR_finit_module
+/*
@@ -65,46 +65,36 @@ index f7ad5e8058fe..037d609e42df 100644
+}
+#endif
+
- /* Return:
- * 0 on success,
- * -errno on open/read error,
-@@ -212,12 +240,19 @@ int FAST_FUNC bb_init_module(const char *filename, const char *options)
- * to only allow loading of modules off of secure storage (like a read-
- * only rootfs) which needs the finit_module call. If it fails, we fall
- * back to normal module loading to support compressed modules.
-+ *
-+ * Note that finit_module()/init_module() only accept ELF image, do
-+ * basic check before calling finit_module() to avoid kernel
-+ * complaining.
- */
- # ifdef __NR_finit_module
+ static int load_module(const char *fname, const char *options)
+ {
+ #if 1
+@@ -272,7 +300,10 @@ static int load_module(const char *fname, const char *options)
{
- int fd = open(filename, O_RDONLY | O_CLOEXEC);
+ int fd = open(fname, O_RDONLY | O_CLOEXEC);
if (fd >= 0) {
-- rc = finit_module(fd, options, 0) != 0;
+- r = finit_module(fd, options, 0) != 0;
+ if (!check_elf_header(fd))
-+ rc = finit_module(fd, options, 0) != 0;
++ r = finit_module(fd, options, 0) != 0;
+ else
-+ rc = 1;
++ r = 1;
close(fd);
- if (rc == 0)
- return rc;
-
-diff --git a/modutils/modprobe-small.c b/modutils/modprobe-small.c
-index db44a2ed0ab5..d2cd6a64c1d0 100644
---- a/modutils/modprobe-small.c
-+++ b/modutils/modprobe-small.c
-@@ -24,6 +24,7 @@
- //kbuild:lib-$(CONFIG_MODPROBE_SMALL) += modprobe-small.o
-
- #include "libbb.h"
-+#include <elf.h> /* for ELF header magic */
- /* After libbb.h, since it needs sys/types.h on some systems */
- #include <sys/utsname.h> /* uname() */
- #include <fnmatch.h>
-@@ -249,6 +250,33 @@ static const char *moderror(int err)
+ }
}
+diff --git a/modutils/modutils.c b/modutils/modutils.c
+index f7ad5e805..037d609e4 100644
+--- a/modutils/modutils.c
++++ b/modutils/modutils.c
+@@ -7,6 +7,7 @@
+ */
+ #include "modutils.h"
+
++#include <elf.h>
+ #include <sys/syscall.h>
+
+ #define init_module(mod, len, opts) syscall(__NR_init_module, mod, len, opts)
+@@ -186,6 +187,33 @@ void* FAST_FUNC try_to_mmap_module(const char *filename, size_t *image_size_p)
}
+ #endif
+#ifdef __NR_finit_module
+/*
@@ -133,20 +123,27 @@ index db44a2ed0ab5..d2cd6a64c1d0 100644
+}
+#endif
+
- static int load_module(const char *fname, const char *options)
- {
- #if 1
-@@ -272,7 +300,10 @@ static int load_module(const char *fname, const char *options)
+ /* Return:
+ * 0 on success,
+ * -errno on open/read error,
+@@ -212,12 +240,19 @@ int FAST_FUNC bb_init_module(const char *filename, const char *options)
+ * to only allow loading of modules off of secure storage (like a read-
+ * only rootfs) which needs the finit_module call. If it fails, we fall
+ * back to normal module loading to support compressed modules.
++ *
++ * Note that finit_module()/init_module() only accept ELF image, do
++ * basic check before calling finit_module() to avoid kernel
++ * complaining.
+ */
+ # ifdef __NR_finit_module
{
- int fd = open(fname, O_RDONLY | O_CLOEXEC);
+ int fd = open(filename, O_RDONLY | O_CLOEXEC);
if (fd >= 0) {
-- r = finit_module(fd, options, 0) != 0;
+- rc = finit_module(fd, options, 0) != 0;
+ if (!check_elf_header(fd))
-+ r = finit_module(fd, options, 0) != 0;
++ rc = finit_module(fd, options, 0) != 0;
+ else
-+ r = 1;
++ rc = 1;
close(fd);
- }
- }
---
-2.29.2
+ if (rc == 0)
+ return rc;
diff --git a/main/busybox/0001-wget-add-header-Accept.patch b/main/busybox/0001-wget-add-header-Accept.patch
new file mode 100644
index 00000000000..20d8d3a65a4
--- /dev/null
+++ b/main/busybox/0001-wget-add-header-Accept.patch
@@ -0,0 +1,75 @@
+From fd46eb7e14fa6891a9e767409a7f9dab4f2c0dfb Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Mon, 11 Mar 2024 12:47:15 +0100
+Subject: [PATCH] wget: add header Accept: */*
+
+Some servers (like https://netfilter.org) returns failure if the Accept
+header is missing. Both GNU wget and curl adds this header, so make
+busybox do the same.
+
+fixes: https://bugs.busybox.net/show_bug.cgi?id=15982
+
+function old new delta
+wget_main 3120 3144 +24
+.rodata 79296 79310 +14
+wget_user_headers 76 84 +8
+------------------------------------------------------------------------------
+(add/remove: 0/0 grow/shrink: 3/0 up/down: 46/0) Total: 46 bytes
+ text data bss dec hex filename
+ 825278 14260 2008 841546 cd74a busybox_old
+ 825324 14260 2008 841592 cd778 busybox_unstripped
+---
+ networking/wget.c | 10 ++++++++--
+ 1 file changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/networking/wget.c b/networking/wget.c
+index 199ddd4da..48486fdee 100644
+--- a/networking/wget.c
++++ b/networking/wget.c
+@@ -212,14 +212,16 @@ enum {
+ HDR_USER_AGENT = (1<<1),
+ HDR_RANGE = (1<<2),
+ HDR_CONTENT_TYPE = (1<<3),
+- HDR_AUTH = (1<<4) * ENABLE_FEATURE_WGET_AUTHENTICATION,
+- HDR_PROXY_AUTH = (1<<5) * ENABLE_FEATURE_WGET_AUTHENTICATION,
++ HDR_ACCEPT = (1<<4),
++ HDR_AUTH = (1<<5) * ENABLE_FEATURE_WGET_AUTHENTICATION,
++ HDR_PROXY_AUTH = (1<<6) * ENABLE_FEATURE_WGET_AUTHENTICATION,
+ };
+ static const char wget_user_headers[] ALIGN1 =
+ "Host:\0"
+ "User-Agent:\0"
+ "Range:\0"
+ "Content-Type:\0"
++ "Accept:\0"
+ # if ENABLE_FEATURE_WGET_AUTHENTICATION
+ "Authorization:\0"
+ "Proxy-Authorization:\0"
+@@ -229,6 +231,7 @@ static const char wget_user_headers[] ALIGN1 =
+ # define USR_HEADER_USER_AGENT (G.user_headers & HDR_USER_AGENT)
+ # define USR_HEADER_RANGE (G.user_headers & HDR_RANGE)
+ # define USR_HEADER_CONTENT_TYPE (G.user_headers & HDR_CONTENT_TYPE)
++# define USR_HEADER_ACCEPT (G.user_headers & HDR_ACCEPT)
+ # define USR_HEADER_AUTH (G.user_headers & HDR_AUTH)
+ # define USR_HEADER_PROXY_AUTH (G.user_headers & HDR_PROXY_AUTH)
+ #else /* No long options, no user-headers :( */
+@@ -236,6 +239,7 @@ static const char wget_user_headers[] ALIGN1 =
+ # define USR_HEADER_USER_AGENT 0
+ # define USR_HEADER_RANGE 0
+ # define USR_HEADER_CONTENT_TYPE 0
++# define USR_HEADER_ACCEPT 0
+ # define USR_HEADER_AUTH 0
+ # define USR_HEADER_PROXY_AUTH 0
+ #endif
+@@ -1232,6 +1236,8 @@ static void download_one_url(const char *url)
+ SENDFMT(sfp, "Host: %s\r\n", target.host);
+ if (!USR_HEADER_USER_AGENT)
+ SENDFMT(sfp, "User-Agent: %s\r\n", G.user_agent);
++ if (!USR_HEADER_ACCEPT)
++ SENDFMT(sfp, "Accept: */*\r\n");
+
+ /* Ask server to close the connection as soon as we are done
+ * (IOW: we do not intend to send more requests)
+--
+2.44.0
+
diff --git a/main/busybox/0001-adduser-default-to-sbin-nologin-as-shell-for-system-.patch b/main/busybox/0002-adduser-default-to-sbin-nologin-as-shell-for-system-.patch
index 47f9f9a6176..040db3b82ff 100644
--- a/main/busybox/0001-adduser-default-to-sbin-nologin-as-shell-for-system-.patch
+++ b/main/busybox/0002-adduser-default-to-sbin-nologin-as-shell-for-system-.patch
@@ -1,15 +1,18 @@
-From eceebc4fbf064ca04d0f0a639c8a7c600190170f Mon Sep 17 00:00:00 2001
+From b99ef11a68832b2141926c229dd25ea600107ed1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Sun, 13 Jan 2019 19:07:16 +0100
Subject: [PATCH] adduser: default to /sbin/nologin as shell for system
accounts
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
---
loginutils/adduser.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/loginutils/adduser.c b/loginutils/adduser.c
-index b2b5be5b3..9326a9795 100644
+index d3c795afa..7ce29fa04 100644
--- a/loginutils/adduser.c
+++ b/loginutils/adduser.c
@@ -235,7 +235,7 @@ int adduser_main(int argc UNUSED_PARAM, char **argv)
diff --git a/main/busybox/0001-ash-add-built-in-BB_ASH_VERSION-variable.patch b/main/busybox/0003-ash-add-built-in-BB_ASH_VERSION-variable.patch
index d8f5ea008da..18031946898 100644
--- a/main/busybox/0001-ash-add-built-in-BB_ASH_VERSION-variable.patch
+++ b/main/busybox/0003-ash-add-built-in-BB_ASH_VERSION-variable.patch
@@ -1,7 +1,10 @@
-From df5fffa062ebc46bd13d65c84a4abca6ae1c614d Mon Sep 17 00:00:00 2001
+From 53b13dbc8312dfa4326751f063437894c5e5a43d Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Wed, 10 Mar 2021 23:38:57 -0700
Subject: [PATCH] ash: add built-in $BB_ASH_VERSION variable
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
This is helpful for detecting if the shell is busybox ash or not,
which is necessary for enabling ash-specific features in /etc/profile
@@ -23,10 +26,10 @@ Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
1 file changed, 20 insertions(+), 8 deletions(-)
diff --git a/shell/ash.c b/shell/ash.c
-index 827643808..5f8f41ee9 100644
+index 18ccc1329..cb38582fc 100644
--- a/shell/ash.c
+++ b/shell/ash.c
-@@ -153,6 +153,14 @@
+@@ -158,6 +158,14 @@
//config: you to run the specified command or builtin,
//config: even when there is a function with the same name.
//config:
@@ -41,7 +44,7 @@ index 827643808..5f8f41ee9 100644
//config:endif # ash options
//applet:IF_ASH(APPLET(ash, BB_DIR_BIN, BB_SUID_DROP))
-@@ -2138,6 +2146,9 @@ static const struct {
+@@ -2142,6 +2150,9 @@ static const struct {
{ VSTRFIXED|VTEXTFIXED , "PS1=$ " , NULL },
{ VSTRFIXED|VTEXTFIXED , "PS2=> " , NULL },
{ VSTRFIXED|VTEXTFIXED , "PS4=+ " , NULL },
@@ -51,7 +54,7 @@ index 827643808..5f8f41ee9 100644
#if ENABLE_ASH_GETOPTS
{ VSTRFIXED|VTEXTFIXED , defoptindvar, getoptsreset },
#endif
-@@ -2197,19 +2208,20 @@ extern struct globals_var *BB_GLOBAL_CONST ash_ptr_to_globals_var;
+@@ -2201,19 +2212,20 @@ extern struct globals_var *BB_GLOBAL_CONST ash_ptr_to_globals_var;
#define vps1 varinit[VAR_OFFSET1 + 2]
#define vps2 varinit[VAR_OFFSET1 + 3]
#define vps4 varinit[VAR_OFFSET1 + 4]
diff --git a/main/busybox/0004-Avoid-redefined-warnings-when-buiding-with-utmps.patch b/main/busybox/0004-Avoid-redefined-warnings-when-buiding-with-utmps.patch
new file mode 100644
index 00000000000..b0f2b45f5bb
--- /dev/null
+++ b/main/busybox/0004-Avoid-redefined-warnings-when-buiding-with-utmps.patch
@@ -0,0 +1,108 @@
+From a7f1a174c2f5fd4ee7e130e08dfc79abc65e8a5e Mon Sep 17 00:00:00 2001
+From: Laurent Bercot <ska-devel@skarnet.org>
+Date: Fri, 22 Jul 2022 08:34:50 +0200
+Subject: [PATCH] Avoid redefined warnings when buiding with utmps
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Do not use _PATH_UTMP or _PATH_WTMP, and do not touch
+the files directly.
+
+---
+ include/libbb.h | 8 +++-----
+ libbb/messages.c | 4 ++--
+ libbb/utmp.c | 10 ++++++----
+ util-linux/last_fancy.c | 2 +-
+ 4 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/include/libbb.h b/include/libbb.h
+index cca33a177..2b72e7ac4 100644
+--- a/include/libbb.h
++++ b/include/libbb.h
+@@ -107,14 +107,12 @@
+ # define _PATH_UTMPX _PATH_UTMP
+ # else
+ # if !defined(__FreeBSD__)
+-# include <utmp.h>
++# include <utmpx.h>
++# define _CORRECT_PATH_UTMPX "/run/utmps/utmp"
++# define _CORRECT_PATH_WTMP "/var/log/wtmp"
+ # else
+ # define _PATH_UTMPX "/var/run/utx.active"
+ # endif
+-# include <utmpx.h>
+-# if defined _PATH_UTMP && !defined _PATH_UTMPX
+-# define _PATH_UTMPX _PATH_UTMP
+-# endif
+ # endif
+ #endif
+ #if ENABLE_LOCALE_SUPPORT
+diff --git a/libbb/messages.c b/libbb/messages.c
+index 6914d5701..689dd0c6d 100644
+--- a/libbb/messages.c
++++ b/libbb/messages.c
+@@ -42,8 +42,8 @@ const int const_int_0 = 0;
+ #if ENABLE_FEATURE_WTMP
+ /* This is usually something like "/var/adm/wtmp" or "/var/log/wtmp" */
+ const char bb_path_wtmp_file[] ALIGN1 =
+-# if defined _PATH_WTMP
+- _PATH_WTMP;
++# if defined _CORRECT_PATH_WTMP
++ _CORRECT_PATH_WTMP;
+ # elif defined WTMP_FILE
+ WTMP_FILE;
+ # else
+diff --git a/libbb/utmp.c b/libbb/utmp.c
+index bd07670db..0a2ef2c8e 100644
+--- a/libbb/utmp.c
++++ b/libbb/utmp.c
+@@ -8,11 +8,13 @@
+ */
+ #include "libbb.h"
+
++#if 0
+ static void touch(const char *filename)
+ {
+ if (access(filename, R_OK | W_OK) == -1)
+ close(open(filename, O_WRONLY | O_CREAT, 0664));
+ }
++#endif
+
+ void FAST_FUNC write_new_utmp(pid_t pid, int new_type, const char *tty_name, const char *username, const char *hostname)
+ {
+@@ -45,8 +47,8 @@ void FAST_FUNC write_new_utmp(pid_t pid, int new_type, const char *tty_name, con
+ tty_name += 3;
+ strncpy(id, tty_name, width);
+
+- touch(_PATH_UTMPX);
+- //utmpxname(_PATH_UTMPX);
++ //touch(_CORRECT_PATH_UTMPX);
++ //utmpxname(_CORRECT_PATH_UTMPX);
+ setutxent();
+ /* Append new one (hopefully, unless we collide on ut_id) */
+ pututxline(&utent);
+@@ -67,8 +69,8 @@ void FAST_FUNC update_utmp(pid_t pid, int new_type, const char *tty_name, const
+ struct utmpx utent;
+ struct utmpx *utp;
+
+- touch(_PATH_UTMPX);
+- //utmpxname(_PATH_UTMPX);
++ //touch(_CORRECT_PATH_UTMPX);
++ //utmpxname(_CORRECT_PATH_UTMPX);
+ setutxent();
+
+ /* Did init/getty/telnetd/sshd/... create an entry for us?
+diff --git a/util-linux/last_fancy.c b/util-linux/last_fancy.c
+index 648236229..aa7a62bbe 100644
+--- a/util-linux/last_fancy.c
++++ b/util-linux/last_fancy.c
+@@ -159,7 +159,7 @@ int last_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
+ int last_main(int argc UNUSED_PARAM, char **argv)
+ {
+ struct utmpx ut;
+- const char *filename = _PATH_WTMP;
++ const char *filename = _CORRECT_PATH_WTMP;
+ llist_t *zlist;
+ off_t pos;
+ time_t start_time;
diff --git a/main/busybox/0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch b/main/busybox/0005-libbb-sockaddr2str-ensure-only-printable-characters-.patch
index 1d1716e3b0c..95616c793d3 100644
--- a/main/busybox/0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch
+++ b/main/busybox/0005-libbb-sockaddr2str-ensure-only-printable-characters-.patch
@@ -1,8 +1,11 @@
-From 0c8da1bead8ffaf270b4b723ead2c517371405d7 Mon Sep 17 00:00:00 2001
+From 6a678ab440ec8c0d21843569182eeb452c289a58 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Sun, 3 Apr 2022 12:14:33 +0000
-Subject: [PATCH 1/2] libbb: sockaddr2str: ensure only printable characters are
+Date: Sun, 3 Apr 2022 18:13:37 +0000
+Subject: [PATCH] libbb: sockaddr2str: ensure only printable characters are
returned for the hostname part
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
CVE: Pending
Upstream-Status: Pending
@@ -35,6 +38,3 @@ index 0e0b247b8..02c061e67 100644
/*return xstrdup(host);*/
}
---
-2.35.1
-
diff --git a/main/busybox/0001-modinfo-add-k-option-for-kernel-version.patch b/main/busybox/0006-modinfo-add-k-option-for-kernel-version.patch
index f1bf02fdd2f..51144d4e1f0 100644
--- a/main/busybox/0001-modinfo-add-k-option-for-kernel-version.patch
+++ b/main/busybox/0006-modinfo-add-k-option-for-kernel-version.patch
@@ -1,7 +1,10 @@
-From 8fed81a74070cb42e1dff1a8c2382bd123385e22 Mon Sep 17 00:00:00 2001
+From 592cc544acebfb1179bf91083870a235f72f2f64 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Thu, 28 Apr 2022 16:03:16 +0200
+Date: Thu, 28 Apr 2022 23:04:01 +0200
Subject: [PATCH] modinfo: add -k option for kernel version
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
It is useful to be able to specify kernel version when generating
initramfs and similar for a kernel version that might not be the running
@@ -135,6 +138,3 @@ index 0a86c3296..53bc02880 100644
}
}
---
-2.36.0
-
diff --git a/main/busybox/0001-nologin-Install-applet-to-sbin-instead-of-usr-sbin.patch b/main/busybox/0007-nologin-Install-applet-to-sbin-instead-of-usr-sbin.patch
index 0cc4db95c91..5fbcacc0d9d 100644
--- a/main/busybox/0001-nologin-Install-applet-to-sbin-instead-of-usr-sbin.patch
+++ b/main/busybox/0007-nologin-Install-applet-to-sbin-instead-of-usr-sbin.patch
@@ -1,19 +1,23 @@
-From fa5c4b2e60a98944863097b448960d0744916b1f Mon Sep 17 00:00:00 2001
+From 9d796b508575b2e1673512d4103e6049af189bc6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
-Date: Wed, 13 Feb 2019 22:32:44 +0100
+Date: Wed, 13 Feb 2019 18:41:43 +0100
Subject: [PATCH] nologin: Install applet to /sbin instead of /usr/sbin
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
This is required to retain compatibility with our old custom nologin
applet written in C which was also installed to /sbin.
Compatibility with the old path is required because login shell paths
are hardcoded in /etc/passwd.
+
---
util-linux/nologin.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/util-linux/nologin.c b/util-linux/nologin.c
-index 5e5e42305..b03470ac6 100644
+index 5a8b047a5..d3b6fe77e 100644
--- a/util-linux/nologin.c
+++ b/util-linux/nologin.c
@@ -19,7 +19,7 @@
diff --git a/main/busybox/0001-pgrep-add-support-for-matching-against-UID-and-RUID.patch b/main/busybox/0008-pgrep-add-support-for-matching-against-UID-and-RUID.patch
index 7abfb09b763..165504283c2 100644
--- a/main/busybox/0001-pgrep-add-support-for-matching-against-UID-and-RUID.patch
+++ b/main/busybox/0008-pgrep-add-support-for-matching-against-UID-and-RUID.patch
@@ -1,7 +1,10 @@
-From 648255c510f9a3f668651842b58798f07ad4c64a Mon Sep 17 00:00:00 2001
+From 513d186f420176c3a1be8843fee6a42cbd57cb35 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Mon, 22 Nov 2021 18:33:02 -0600
+Date: Mon, 22 Nov 2021 11:06:05 -0600
Subject: [PATCH] pgrep: add support for matching against UID and RUID
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
This is standard functionality on every other pgrep implementation I
found, namely the ones in Illumos, FreeBSD, Linux procps, and macOS.
@@ -22,7 +25,7 @@ Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
1 file changed, 33 insertions(+), 4 deletions(-)
diff --git a/procps/pgrep.c b/procps/pgrep.c
-index 6d25c247e..6a12ac23b 100644
+index 82e00322f..c1f7208f5 100644
--- a/procps/pgrep.c
+++ b/procps/pgrep.c
@@ -42,6 +42,8 @@
@@ -33,36 +36,36 @@ index 6d25c247e..6a12ac23b 100644
+//usage: "\n -U UID Match against UID"
//usage:
//usage:#define pkill_trivial_usage
- //usage: "[-l|-SIGNAL] [-xfvno] [-s SID|-P PPID|PATTERN]"
-@@ -55,6 +57,8 @@
- //usage: "\n -v Negate the match"
+ //usage: "[-l|-SIGNAL] [-xfvnoe] [-s SID|-P PPID|PATTERN]"
+@@ -56,6 +58,8 @@
//usage: "\n -n Signal the newest process only"
//usage: "\n -o Signal the oldest process only"
+ //usage: "\n -e Display name and PID of the process being killed"
+//usage: "\n -u EUID Match against effective UID"
+//usage: "\n -U UID Match against UID"
#include "libbb.h"
#include "xregex.h"
-@@ -64,7 +68,7 @@
+@@ -65,7 +69,7 @@
#define pkill (ENABLE_PKILL && (!ENABLE_PGREP || applet_name[1] == 'k'))
enum {
-- /* "vlafxons:+P:+" */
-+ /* "vlafxonu:U:s:+P:+" */
+- /* "vlafxones:+P:+" */
++ /* "vlafxoneu:U:s:+P:+" */
OPTBIT_V = 0, /* must be first, we need OPT_INVERT = 0/1 */
OPTBIT_L,
OPTBIT_A,
-@@ -72,6 +76,8 @@ enum {
- OPTBIT_X,
+@@ -74,6 +78,8 @@ enum {
OPTBIT_O,
OPTBIT_N,
+ OPTBIT_E, /* should be pkill-only, do we care? */
+ OPTBIT_U,
+ OPTBIT_UL,
OPTBIT_S,
OPTBIT_P,
};
-@@ -85,6 +91,8 @@ enum {
- #define OPT_LAST (opt & (1 << OPTBIT_N))
+@@ -88,6 +94,8 @@ enum {
+ #define OPT_ECHO (opt & (1 << OPTBIT_E))
#define OPT_SID (opt & (1 << OPTBIT_S))
#define OPT_PPID (opt & (1 << OPTBIT_P))
+#define OPT_EUID (opt & (1 << OPTBIT_UL))
@@ -70,7 +73,7 @@ index 6d25c247e..6a12ac23b 100644
static void act(unsigned pid, char *cmd, int signo)
{
-@@ -105,7 +113,8 @@ int pgrep_main(int argc UNUSED_PARAM, char **argv)
+@@ -112,7 +120,8 @@ int pgrep_main(int argc UNUSED_PARAM, char **argv)
unsigned opt;
int scan_mask;
int matched_pid;
@@ -80,18 +83,18 @@ index 6d25c247e..6a12ac23b 100644
char *cmd_last;
procps_status_t *proc;
/* These are initialized to 0 */
-@@ -131,7 +140,9 @@ int pgrep_main(int argc UNUSED_PARAM, char **argv)
+@@ -138,7 +147,9 @@ int pgrep_main(int argc UNUSED_PARAM, char **argv)
/* Parse remaining options */
ppid2match = -1;
sid2match = -1;
-- opt = getopt32(argv, "vlafxons:+P:+", &sid2match, &ppid2match);
+- opt = getopt32(argv, "vlafxones:+P:+", &sid2match, &ppid2match);
+ uid2match = -1;
+ euid2match = -1;
-+ opt = getopt32(argv, "vlafxonu:U:s:+P:+", &euid_arg, &uid_arg, &sid2match, &ppid2match);
++ opt = getopt32(argv, "vlafxoneu:U:s:+P:+", &euid_arg, &uid_arg, &sid2match, &ppid2match);
argv += optind;
if (pkill && OPT_LIST) { /* -l: print the whole signal list */
-@@ -147,8 +158,18 @@ int pgrep_main(int argc UNUSED_PARAM, char **argv)
+@@ -154,8 +165,18 @@ int pgrep_main(int argc UNUSED_PARAM, char **argv)
if (OPT_FULL)
scan_mask |= PSSCAN_ARGVN;
@@ -111,7 +114,7 @@ index 6d25c247e..6a12ac23b 100644
bb_show_usage();
if (argv[0])
-@@ -170,6 +191,10 @@ int pgrep_main(int argc UNUSED_PARAM, char **argv)
+@@ -177,6 +198,10 @@ int pgrep_main(int argc UNUSED_PARAM, char **argv)
continue;
if (sid2match >= 0 && sid2match != proc->sid)
continue;
@@ -122,7 +125,7 @@ index 6d25c247e..6a12ac23b 100644
}
cmdlen = -1;
-@@ -202,6 +227,10 @@ int pgrep_main(int argc UNUSED_PARAM, char **argv)
+@@ -209,6 +234,10 @@ int pgrep_main(int argc UNUSED_PARAM, char **argv)
goto got_it;
if (sid2match >= 0 && sid2match != proc->sid)
goto got_it;
@@ -133,6 +136,3 @@ index 6d25c247e..6a12ac23b 100644
}
match = !argv[0]; /* if no PATTERN, then it's a match, else... */
---
-2.34.0
-
diff --git a/main/busybox/0001-properly-fix-wget-https-support.patch b/main/busybox/0009-properly-fix-wget-https-support.patch
index 7e59be7030b..9feff7c104d 100644
--- a/main/busybox/0001-properly-fix-wget-https-support.patch
+++ b/main/busybox/0009-properly-fix-wget-https-support.patch
@@ -1,7 +1,10 @@
-From ad8843a3df89aabfa6ebae841de32f22a48c2166 Mon Sep 17 00:00:00 2001
+From a93754ca66630221d10d1307b9cd165bed63d68e Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Wed, 30 May 2018 09:52:20 +0000
+Date: Wed, 30 May 2018 09:40:33 +0000
Subject: [PATCH] properly fix wget https support
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
See: https://git.alpinelinux.org/cgit/aports/commit/?id=1d0560a9b6b5597b191e5aff69a31c2fe0aba273
---
@@ -9,7 +12,7 @@ See: https://git.alpinelinux.org/cgit/aports/commit/?id=1d0560a9b6b5597b191e5aff
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/networking/wget.c b/networking/wget.c
-index 6a9604421..96dd4c403 100644
+index 9ec0e67b9..66959058c 100644
--- a/networking/wget.c
+++ b/networking/wget.c
@@ -57,7 +57,6 @@
@@ -20,7 +23,7 @@ index 6a9604421..96dd4c403 100644
//config: help
//config: wget will use internal TLS code to connect to https:// URLs.
//config: It also enables FTPS support, but it's not well tested yet.
-@@ -760,10 +759,8 @@ static void spawn_ssl_client(const char *host, int network_fd, int flags)
+@@ -772,10 +771,8 @@ static void spawn_ssl_client(const char *host, int network_fd, int flags)
int pid;
char *servername, *p;
@@ -33,7 +36,7 @@ index 6a9604421..96dd4c403 100644
servername = xstrdup(host);
p = strrchr(servername, ':');
-@@ -780,14 +777,14 @@ static void spawn_ssl_client(const char *host, int network_fd, int flags)
+@@ -792,14 +789,14 @@ static void spawn_ssl_client(const char *host, int network_fd, int flags)
close(sp[0]);
xmove_fd(sp[1], 0);
xdup2(0, 1);
@@ -50,7 +53,7 @@ index 6a9604421..96dd4c403 100644
xmove_fd(network_fd, 3);
argv[0] = (char*)"ssl_client";
-@@ -795,8 +792,14 @@ static void spawn_ssl_client(const char *host, int network_fd, int flags)
+@@ -807,8 +804,14 @@ static void spawn_ssl_client(const char *host, int network_fd, int flags)
//TODO: if (!is_ip_address(servername))...
argv[2] = (char*)"-n";
argv[3] = servername;
diff --git a/main/busybox/0010-sed-check-errors-writing-file-with-sed-i.patch b/main/busybox/0010-sed-check-errors-writing-file-with-sed-i.patch
new file mode 100644
index 00000000000..f1cc0a860dd
--- /dev/null
+++ b/main/busybox/0010-sed-check-errors-writing-file-with-sed-i.patch
@@ -0,0 +1,63 @@
+From 97e305025e987e77da488133ded31c1e81a0282b Mon Sep 17 00:00:00 2001
+From: Dominique Martinet <dominique.martinet@atmark-techno.com>
+Date: Wed, 16 Nov 2022 07:08:13 +0900
+Subject: [PATCH] sed: check errors writing file with sed -i
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+sed would currently not error if write failed when modifying a file.
+
+This can be reproduced with the following 'script':
+$ sudo mount -t tmpfs tmpfs -o size=1M /tmp/m
+$ sudo chmod 777 /tmp/m
+$ echo foo > /tmp/m/foo
+$ dd if=/dev/zero of=/tmp/m/fill bs=4k
+dd: error writing '/tmp/m/fill': No space left on device
+256+0 records in
+255+0 records out
+1044480 bytes (1.0 MB, 1020 KiB) copied, 0.00234567 s, 445 MB/s
+$ busybox sed -i -e 's/.*/bar/' /tmp/m/foo
+$ echo $?
+0
+$ cat /tmp/m/foo
+<empty>
+
+new behaviour:
+$ echo foo > /tmp/m/foo
+$ ./busybox sed -i -e 's/.*/bar/' /tmp/m/foo
+sed: write error
+$ echo $?
+4
+$ cat /tmp/m/foo
+foo
+
+function old new delta
+sed_main 754 801 +47
+------------------------------------------------------------------------------
+(add/remove: 0/0 grow/shrink: 1/0 up/down: 47/0) Total: 47 bytes
+ text data bss dec hex filename
+ 66957 2398 1552 70907 114fb busybox_old
+ 67004 2398 1552 70954 1152a busybox_unstripped
+
+Signed-off-by: Dominique Martinet <dominique.martinet@atmark-techno.com>
+---
+ editors/sed.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/editors/sed.c b/editors/sed.c
+index 00dde60be..6179c5e80 100644
+--- a/editors/sed.c
++++ b/editors/sed.c
+@@ -1648,6 +1648,11 @@ int sed_main(int argc UNUSED_PARAM, char **argv)
+ fchown(nonstdoutfd, statbuf.st_uid, statbuf.st_gid);
+
+ process_files();
++ fflush(G.nonstdout);
++ if (ferror(G.nonstdout)) {
++ xfunc_error_retval = 4; /* It's what gnu sed exits with... */
++ bb_simple_error_msg_and_die(bb_msg_write_error);
++ }
+ fclose(G.nonstdout);
+ G.nonstdout = stdout;
+
diff --git a/main/busybox/0002-fsck-resolve-LABEL-.-UUID-.-spec-to-device.patch b/main/busybox/0011-fsck-resolve-LABEL-.-UUID-.-spec-to-device.patch
index fd2503e7b93..fe1a0038f99 100644
--- a/main/busybox/0002-fsck-resolve-LABEL-.-UUID-.-spec-to-device.patch
+++ b/main/busybox/0011-fsck-resolve-LABEL-.-UUID-.-spec-to-device.patch
@@ -1,14 +1,17 @@
-From 2e673aac06d661038001286fd389d1b45c511c66 Mon Sep 17 00:00:00 2001
+From df153459261ed2683ebb7ab766eaee6b741426ae Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Tue, 28 Nov 2017 13:23:17 +0100
+Date: Tue, 28 Nov 2017 16:30:23 +0100
Subject: [PATCH] fsck: resolve LABEL=.../UUID=... spec to device
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
---
e2fsprogs/fsck.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/e2fsprogs/fsck.c b/e2fsprogs/fsck.c
-index f5aa3dbe4..e2edc9747 100644
+index 028f8a803..7a0921979 100644
--- a/e2fsprogs/fsck.c
+++ b/e2fsprogs/fsck.c
@@ -60,6 +60,7 @@
diff --git a/main/busybox/0002-nslookup-sanitize-all-printed-strings-with-printable.patch b/main/busybox/0012-nslookup-sanitize-all-printed-strings-with-printable.patch
index 01c45c9ba67..63d72fead06 100644
--- a/main/busybox/0002-nslookup-sanitize-all-printed-strings-with-printable.patch
+++ b/main/busybox/0012-nslookup-sanitize-all-printed-strings-with-printable.patch
@@ -1,8 +1,10 @@
-From 812b407e545b70b16cf32aade135b5c32eaf674f Mon Sep 17 00:00:00 2001
+From 2365aa9b62dd703cd279b94ede25ebb274cfe723 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Sun, 3 Apr 2022 12:16:45 +0000
-Subject: [PATCH 2/2] nslookup: sanitize all printed strings with
- printable_string
+Date: Sun, 3 Apr 2022 20:44:51 +0000
+Subject: [PATCH] nslookup: sanitize all printed strings with printable_string
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
Otherwise, terminal sequences can be injected, which enables various terminal injection
attacks from DNS results.
@@ -63,6 +65,3 @@ index 6da97baf4..4bdcde1b8 100644
cp += n;
printf("\tserial = %lu\n", ns_get32(cp));
---
-2.35.1
-
diff --git a/main/busybox/0003-ash-exec-busybox.static.patch b/main/busybox/0013-ash-exec-busybox.static.patch
index 8247e357f8d..0458530deb6 100644
--- a/main/busybox/0003-ash-exec-busybox.static.patch
+++ b/main/busybox/0013-ash-exec-busybox.static.patch
@@ -1,17 +1,20 @@
-From d06a13f4cd81aeda9b02d4da90ef2b941899d6c5 Mon Sep 17 00:00:00 2001
+From 69002bff6372fa6f7463271face3b3ead13aee4f Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Thu, 4 Aug 2016 11:03:07 +0200
+Date: Thu, 4 Aug 2016 02:09:48 +0200
Subject: [PATCH] ash: exec busybox.static
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
---
shell/ash.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/shell/ash.c b/shell/ash.c
-index 051cc671f..73470eab2 100644
+index cb38582fc..55ee4f56a 100644
--- a/shell/ash.c
+++ b/shell/ash.c
-@@ -7991,6 +7991,8 @@ tryexec(IF_FEATURE_SH_STANDALONE(int applet_no,) const char *cmd, char **argv, c
+@@ -8278,6 +8278,8 @@ tryexec(IF_FEATURE_SH_STANDALONE(int applet_no,) const char *cmd, char **argv, c
}
/* re-exec ourselves with the new arguments */
execve(bb_busybox_exec_path, argv, envp);
diff --git a/main/busybox/0013-ash-fix-unsafe-use-of-mempcpy.patch b/main/busybox/0013-ash-fix-unsafe-use-of-mempcpy.patch
deleted file mode 100644
index 944fd383182..00000000000
--- a/main/busybox/0013-ash-fix-unsafe-use-of-mempcpy.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 7750b5a25a8cf9081b7c248687c876d0068e85bb Mon Sep 17 00:00:00 2001
-From: Denys Vlasenko <vda.linux@googlemail.com>
-Date: Tue, 1 Mar 2022 09:56:54 +0100
-Subject: [PATCH] ash: fix unsafe use of mempcpy
-
-function old new delta
-subevalvar 1549 1557 +8
-
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
----
- shell/ash.c | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/shell/ash.c b/shell/ash.c
-index 54335c5dd..44ec2eafd 100644
---- a/shell/ash.c
-+++ b/shell/ash.c
-@@ -7191,7 +7191,13 @@ subevalvar(char *start, char *str, int strloc,
- len = orig_len - pos;
-
- if (!quotes) {
-- loc = mempcpy(startp, startp + pos, len);
-+ /* want: loc = mempcpy(startp, startp + pos, len)
-+ * but it does not allow overlapping arguments */
-+ loc = startp;
-+ while (--len >= 0) {
-+ *loc = loc[pos];
-+ loc++;
-+ }
- } else {
- for (vstr = startp; pos != 0; pos--) {
- if ((unsigned char)*vstr == CTLESC)
diff --git a/main/busybox/0004-app-location-for-cpio-vi-and-lspci.patch b/main/busybox/0014-app-location-for-cpio-vi-and-lspci.patch
index 2ca4bcd36de..768462fb44c 100644
--- a/main/busybox/0004-app-location-for-cpio-vi-and-lspci.patch
+++ b/main/busybox/0014-app-location-for-cpio-vi-and-lspci.patch
@@ -1,9 +1,13 @@
-From 97d4a0ffc6f58813fd91e5728d474b984f29b9a6 Mon Sep 17 00:00:00 2001
+From 42739bd6e55d90a9435ba76ea4bf7fbd49a68862 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Tue, 27 Dec 2016 20:46:59 +0100
+Date: Tue, 27 Dec 2016 19:38:39 +0100
Subject: [PATCH] app location for cpio, vi and lspci
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
Adjust location to where alpine linux installs them
+
---
archival/cpio.c | 2 +-
editors/vi.c | 2 +-
@@ -24,7 +28,7 @@ index 7149782d7..ee80efd9f 100644
//kbuild:lib-$(CONFIG_CPIO) += cpio.o
diff --git a/editors/vi.c b/editors/vi.c
-index 3dbe5b471..b29c16098 100644
+index 2645afe87..70c594353 100644
--- a/editors/vi.c
+++ b/editors/vi.c
@@ -176,7 +176,7 @@
diff --git a/main/busybox/0014-ash-fix-use-after-free-in-bash-pattern-substitution.patch b/main/busybox/0014-ash-fix-use-after-free-in-bash-pattern-substitution.patch
deleted file mode 100644
index 6ff2b8286e7..00000000000
--- a/main/busybox/0014-ash-fix-use-after-free-in-bash-pattern-substitution.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From 103728181bfd9a60537166d036e5baca7b67cc1f Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren@soeren-tempel.net>
-Date: Sat, 29 Jan 2022 06:11:12 +0100
-Subject: [PATCH] ash: fix use-after-free in bash pattern substitution
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-At Alpine Linux downstream, we were made aware of a segmentation fault
-occurring during string replacement in BusyBox ash [0]. Further
-debugging revealed that the segmentation fault occurs due to a
-use-after-free in BusyBox's bash pattern substitution implementation.
-Specially, the problem is that the repl variable (pointing to the
-replacement string) points to a value in the stack string. However, when
-accessing the repl pointer in Line 7350 it is possible that the stack
-has been moved since the last repl assignment due to the STPUTC
-invocations in Line 7317 and 7321 (since STPUTC may grow the stack via
-realloc(3)).
-
-For this reason, the code in Line 7350 may access an unmapped memory
-region and therefore causes a segmentation fault if prior STPUTC
-invocations moved the stack via realloc(3). The valgrind output
-for this edge case looks as follows:
-
- Invalid read of size 1
- at 0x15D8DD: subevalvar (ash.c:7350)
- by 0x15DC43: evalvar (ash.c:7666)
- by 0x15B717: argstr (ash.c:6893)
- by 0x15BAEC: expandarg (ash.c:8090)
- by 0x15F4CC: evalcommand (ash.c:10429)
- by 0x15B26C: evaltree (ash.c:9365)
- by 0x15E4FC: cmdloop (ash.c:13569)
- by 0x15FD8B: ash_main (ash.c:14748)
- by 0x115BF2: run_applet_no_and_exit (appletlib.c:967)
- by 0x115F16: run_applet_and_exit (appletlib.c:986)
- by 0x115EF9: busybox_main (appletlib.c:917)
- by 0x115EF9: run_applet_and_exit (appletlib.c:979)
- by 0x115F8F: main (appletlib.c:1126)
- Address 0x48b8646 is 2,054 bytes inside a block of size 4,776 free'd
- at 0x48A6FC9: realloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
- by 0x116E86: xrealloc (xfuncs_printf.c:61)
- by 0x1565DB: growstackblock (ash.c:1736)
- by 0x156EF7: growstackstr (ash.c:1775)
- by 0x156F1A: _STPUTC (ash.c:1816)
- by 0x15D843: subevalvar (ash.c:7317)
- by 0x15DC43: evalvar (ash.c:7666)
- by 0x15B717: argstr (ash.c:6893)
- by 0x15BAEC: expandarg (ash.c:8090)
- by 0x15F4CC: evalcommand (ash.c:10429)
- by 0x15B26C: evaltree (ash.c:9365)
- by 0x15E4FC: cmdloop (ash.c:13569)
-
-A testcase for reproducing this edge case is provided in the downstream
-bug report [1]. This commit fixes the issue by reconstructing the repl
-pointer relative to stackblock() via strloc and slash_pos.
-
-[0]: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13469
-[1]: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13469#note_210530
-
-Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
----
- shell/ash.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/shell/ash.c b/shell/ash.c
-index 55df54bd0..24f9a8270 100644
---- a/shell/ash.c
-+++ b/shell/ash.c
-@@ -7346,6 +7346,12 @@ subevalvar(char *start, char *str, int strloc,
- idx = loc;
- }
-
-+ // The STPUTC invocations above may resize and move the
-+ // stack via realloc(3). Since repl is a pointer into the
-+ // stack, we need to reconstruct it relative to stackblock().
-+ if (slash_pos >= 0)
-+ repl = (char *)stackblock() + strloc + slash_pos + 1;
-+
- //bb_error_msg("repl:'%s'", repl);
- for (loc = (char*)repl; *loc; loc++) {
- char *restart_detect = stackblock();
diff --git a/main/busybox/0015-ed-don-t-use-memcpy-with-overlapping-memory-regions.patch b/main/busybox/0015-ed-don-t-use-memcpy-with-overlapping-memory-regions.patch
deleted file mode 100644
index 5697a5559a1..00000000000
--- a/main/busybox/0015-ed-don-t-use-memcpy-with-overlapping-memory-regions.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 65bb493f2475368161431ed72816fd0c61e479b1 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
-Date: Tue, 8 Feb 2022 09:29:21 +0100
-Subject: [PATCH] ed: don't use memcpy with overlapping memory regions
-
-The memcpy invocations in the subCommand function, modified by this
-commit, previously used memcpy with overlapping memory regions. This is
-undefined behavior. On Alpine Linux, it causes BusyBox ed to crash since
-we compile BusyBox with -D_FORTIFY_SOURCE=2 and our fortify-headers
-implementation catches this source of undefined behavior [0]. The issue
-can only be triggered if the replacement string is the same size or
-shorter than the old string.
-
-Looking at the code, it seems to me that a memmove(3) is what was
-actually intended here, this commit modifies the code accordingly.
-
-[0]: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13504
----
- editors/ed.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/editors/ed.c b/editors/ed.c
-index 209ce9942..4a84f7433 100644
---- a/editors/ed.c
-+++ b/editors/ed.c
-@@ -720,7 +720,7 @@ static void subCommand(const char *cmd, int num1, int num2)
- if (deltaLen <= 0) {
- memcpy(&lp->data[offset], newStr, newLen);
- if (deltaLen) {
-- memcpy(&lp->data[offset + newLen],
-+ memmove(&lp->data[offset + newLen],
- &lp->data[offset + oldLen],
- lp->len - offset - oldLen);
-
diff --git a/main/busybox/0005-udhcpc-set-default-discover-retries-to-5.patch b/main/busybox/0015-udhcpc-set-default-discover-retries-to-5.patch
index ea158345699..7dd08dd963f 100644
--- a/main/busybox/0005-udhcpc-set-default-discover-retries-to-5.patch
+++ b/main/busybox/0015-udhcpc-set-default-discover-retries-to-5.patch
@@ -1,20 +1,24 @@
-From 7f626404022bb69cd314e2eea33a721d75cc933d Mon Sep 17 00:00:00 2001
+From 050863f09d1ea42cedd8935580cf570032fed339 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Thu, 4 Aug 2016 12:46:55 +0200
+Date: Thu, 4 Aug 2016 13:17:00 +0200
Subject: [PATCH] udhcpc: set default discover retries to 5
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
Some slower nics needs more attempts to get a lease
+
---
networking/udhcp/d6_dhcpc.c | 4 ++--
networking/udhcp/dhcpc.c | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/networking/udhcp/d6_dhcpc.c b/networking/udhcp/d6_dhcpc.c
-index 8d11a7539..794441953 100644
+index cdd06188e..3d0ec98f9 100644
--- a/networking/udhcp/d6_dhcpc.c
+++ b/networking/udhcp/d6_dhcpc.c
-@@ -1135,7 +1135,7 @@ static void client_background(void)
- //usage: "\n -s PROG Run PROG at DHCP events (default "CONFIG_UDHCPC_DEFAULT_SCRIPT")"
+@@ -1137,7 +1137,7 @@ static void client_background(void)
+ //usage: "\n -s PROG Run PROG at DHCP events (default "CONFIG_UDHCPC6_DEFAULT_SCRIPT")"
//usage: "\n -B Request broadcast replies"
//usage: "\n -t N Send up to N discover packets"
-//usage: "\n -T SEC Pause between packets (default 3)"
@@ -22,7 +26,7 @@ index 8d11a7539..794441953 100644
//usage: "\n -A SEC Wait if lease is not obtained (default 20)"
//usage: USE_FOR_MMU(
//usage: "\n -b Background if lease is not obtained"
-@@ -1180,7 +1180,7 @@ int udhcpc6_main(int argc UNUSED_PARAM, char **argv)
+@@ -1182,7 +1182,7 @@ int udhcpc6_main(int argc UNUSED_PARAM, char **argv)
llist_t *list_x = NULL;
int tryagain_timeout = 20;
int discover_timeout = 3;
@@ -32,7 +36,7 @@ index 8d11a7539..794441953 100644
struct in6_addr ipv6_buf;
struct in6_addr *requested_ipv6;
diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c
-index 331f13a8c..0c1b58d7c 100644
+index c757fb37c..424d6dade 100644
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -1173,7 +1173,7 @@ static void client_background(void)
diff --git a/main/busybox/0016-ash-don-t-read-past-end-of-var-in-subvareval-for-bas.patch b/main/busybox/0016-ash-don-t-read-past-end-of-var-in-subvareval-for-bas.patch
deleted file mode 100644
index 3527fa57224..00000000000
--- a/main/busybox/0016-ash-don-t-read-past-end-of-var-in-subvareval-for-bas.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From fa52ac9781f479de8ab4d8526276244c0a0471f4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren@soeren-tempel.net>
-Date: Mon, 28 Feb 2022 08:36:50 +0100
-Subject: [PATCH] ash: don't read past end of var in subvareval for bash
- substitutions
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Without this patch, BusyBox handles bash pattern substitutions without
-a terminating '/' character incorrectly.
-
-Consider the following shell script:
-
- _bootstrapver=5.0.211-r0
- _referencesdir="/usr/${_bootstrapver/-*}/Sources"
- echo $_referencesdir
-
-This should output `/usr/5.0.211/Sources`. However, without this patch
-it instead outputs `/usr/5.0.211Sources`. This is due to the fact that
-BusyBox expects the bash pattern substitutions to always be terminated
-with a '/' (at least in this part of subvareval) and thus reads passed
-the substitution itself and consumes the '/' character which is part of
-the literal string. If there is no '/' after the substitution then
-BusyBox might perform an out-of-bounds read under certain circumstances.
-
-When replacing the bash pattern substitution with `${_bootstrapver/-*/}`,
-or with this patch applied, ash outputs the correct value.
-
-Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
----
- shell/ash.c | 4 ++++
- shell/ash_test/ash-vars/var_bash_repl_unterminated.right | 1 +
- shell/ash_test/ash-vars/var_bash_repl_unterminated.tests | 2 ++
- shell/hush_test/hush-vars/var_bash_repl_unterminated.right | 1 +
- shell/hush_test/hush-vars/var_bash_repl_unterminated.tests | 2 ++
- 5 files changed, 10 insertions(+)
- create mode 100644 shell/ash_test/ash-vars/var_bash_repl_unterminated.right
- create mode 100755 shell/ash_test/ash-vars/var_bash_repl_unterminated.tests
- create mode 100644 shell/hush_test/hush-vars/var_bash_repl_unterminated.right
- create mode 100755 shell/hush_test/hush-vars/var_bash_repl_unterminated.tests
-
-diff --git a/shell/ash.c b/shell/ash.c
-index adb0f223a..54335c5dd 100644
---- a/shell/ash.c
-+++ b/shell/ash.c
-@@ -7081,6 +7081,10 @@ subevalvar(char *start, char *str, int strloc,
- *repl = '\0';
- break;
- }
-+ if ((unsigned char)*repl == CTLENDVAR) { /* ${v/pattern} (no trailing /, no repl) */
-+ repl = NULL;
-+ break;
-+ }
- /* Handle escaped slashes, e.g. "${v/\//_}" (they are CTLESC'ed by this point) */
- if ((unsigned char)*repl == CTLESC && repl[1])
- repl++;
-diff --git a/shell/ash_test/ash-vars/var_bash_repl_unterminated.right b/shell/ash_test/ash-vars/var_bash_repl_unterminated.right
-new file mode 100644
-index 000000000..5bff3a6fa
---- /dev/null
-+++ b/shell/ash_test/ash-vars/var_bash_repl_unterminated.right
-@@ -0,0 +1 @@
-+b/d
-diff --git a/shell/ash_test/ash-vars/var_bash_repl_unterminated.tests b/shell/ash_test/ash-vars/var_bash_repl_unterminated.tests
-new file mode 100755
-index 000000000..c9513343d
---- /dev/null
-+++ b/shell/ash_test/ash-vars/var_bash_repl_unterminated.tests
-@@ -0,0 +1,2 @@
-+a=b-c
-+echo ${a/-*}/d
-diff --git a/shell/hush_test/hush-vars/var_bash_repl_unterminated.right b/shell/hush_test/hush-vars/var_bash_repl_unterminated.right
-new file mode 100644
-index 000000000..5bff3a6fa
---- /dev/null
-+++ b/shell/hush_test/hush-vars/var_bash_repl_unterminated.right
-@@ -0,0 +1 @@
-+b/d
-diff --git a/shell/hush_test/hush-vars/var_bash_repl_unterminated.tests b/shell/hush_test/hush-vars/var_bash_repl_unterminated.tests
-new file mode 100755
-index 000000000..c9513343d
---- /dev/null
-+++ b/shell/hush_test/hush-vars/var_bash_repl_unterminated.tests
-@@ -0,0 +1,2 @@
-+a=b-c
-+echo ${a/-*}/d
diff --git a/main/busybox/0006-ping-make-ping-work-without-root-privileges.patch b/main/busybox/0016-ping-make-ping-work-without-root-privileges.patch
index ed352298b85..661f0469a04 100644
--- a/main/busybox/0006-ping-make-ping-work-without-root-privileges.patch
+++ b/main/busybox/0016-ping-make-ping-work-without-root-privileges.patch
@@ -1,17 +1,20 @@
-From 278c73292f2cfc1ecef2dac71efdc7201c021211 Mon Sep 17 00:00:00 2001
+From 19c6c34fb6318605e58a9b209cf742d559c0d467 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Tue, 29 Mar 2016 18:59:22 +0200
+Date: Tue, 29 Mar 2016 09:23:08 +0200
Subject: [PATCH] ping: make ping work without root privileges
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
---
networking/ping.c | 115 +++++++++++++++++++++++++++++++++++++---------
1 file changed, 94 insertions(+), 21 deletions(-)
diff --git a/networking/ping.c b/networking/ping.c
-index c4a15e06e..a2dccb57f 100644
+index 9805695a1..5e4488abd 100644
--- a/networking/ping.c
+++ b/networking/ping.c
-@@ -170,6 +170,7 @@ enum {
+@@ -208,6 +208,7 @@ enum {
pingsock = 0,
};
@@ -19,7 +22,7 @@ index c4a15e06e..a2dccb57f 100644
static void
#if ENABLE_PING6
create_icmp_socket(len_and_sockaddr *lsa)
-@@ -186,9 +187,23 @@ create_icmp_socket(void)
+@@ -224,9 +225,23 @@ create_icmp_socket(void)
#endif
sock = socket(AF_INET, SOCK_RAW, 1); /* 1 == ICMP */
if (sock < 0) {
@@ -46,7 +49,7 @@ index c4a15e06e..a2dccb57f 100644
}
xmove_fd(sock, pingsock);
-@@ -241,10 +256,12 @@ static void ping4(len_and_sockaddr *lsa)
+@@ -279,10 +294,12 @@ static void ping4(len_and_sockaddr *lsa)
bb_simple_perror_msg("recvfrom");
continue;
}
@@ -62,7 +65,7 @@ index c4a15e06e..a2dccb57f 100644
if (pkt->icmp_id != G.myid)
continue; /* not our ping */
if (pkt->icmp_type == ICMP_ECHOREPLY)
-@@ -653,19 +670,21 @@ static void unpack_tail(int sz, uint32_t *tp,
+@@ -691,19 +708,21 @@ static void unpack_tail(int sz, uint32_t *tp,
}
static int unpack4(char *buf, int sz, struct sockaddr_in *from)
{
@@ -90,7 +93,7 @@ index c4a15e06e..a2dccb57f 100644
if (icmppkt->icmp_id != myid)
return 0; /* not our ping */
-@@ -677,7 +696,7 @@ static int unpack4(char *buf, int sz, struct sockaddr_in *from)
+@@ -715,7 +734,7 @@ static int unpack4(char *buf, int sz, struct sockaddr_in *from)
tp = (uint32_t *) icmppkt->icmp_data;
unpack_tail(sz, tp,
inet_ntoa(*(struct in_addr *) &from->sin_addr.s_addr),
@@ -99,7 +102,7 @@ index c4a15e06e..a2dccb57f 100644
return 1;
}
if (icmppkt->icmp_type != ICMP_ECHO) {
-@@ -727,11 +746,31 @@ static void ping4(len_and_sockaddr *lsa)
+@@ -765,11 +784,31 @@ static void ping4(len_and_sockaddr *lsa)
int sockopt;
pingaddr.sin = lsa->u.sin;
@@ -132,7 +135,7 @@ index c4a15e06e..a2dccb57f 100644
}
/* enable broadcast pings */
-@@ -748,6 +787,15 @@ static void ping4(len_and_sockaddr *lsa)
+@@ -786,6 +825,15 @@ static void ping4(len_and_sockaddr *lsa)
setsockopt_int(pingsock, IPPROTO_IP, IP_MULTICAST_TTL, opt_ttl);
}
@@ -148,7 +151,7 @@ index c4a15e06e..a2dccb57f 100644
signal(SIGINT, print_stats_and_exit);
/* start the ping's going ... */
-@@ -785,10 +833,33 @@ static void ping6(len_and_sockaddr *lsa)
+@@ -823,10 +871,33 @@ static void ping6(len_and_sockaddr *lsa)
char control_buf[CMSG_SPACE(36)];
pingaddr.sin6 = lsa->u.sin6;
@@ -183,7 +186,7 @@ index c4a15e06e..a2dccb57f 100644
{
struct icmp6_filter filt;
if (!(option_mask32 & OPT_VERBOSE)) {
-@@ -934,12 +1005,14 @@ static int common_ping_main(int opt, char **argv)
+@@ -972,12 +1043,14 @@ static int common_ping_main(int opt, char **argv)
interval = INT_MAX/1000000;
G.interval_us = interval * 1000000;
diff --git a/main/busybox/0017-ash-Fix-use-after-free-on-idx-variable.patch b/main/busybox/0017-ash-Fix-use-after-free-on-idx-variable.patch
deleted file mode 100644
index 22a2578e396..00000000000
--- a/main/busybox/0017-ash-Fix-use-after-free-on-idx-variable.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From 3813e89e3622b034b0e51acae496493a717555cc Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
-Date: Wed, 1 Jun 2022 11:51:40 +0200
-Subject: [PATCH] ash: Fix use-after-free on idx variable
-
-Consider the following code from ash.c:
-
- STPUTC(*idx, expdest);
- if (quotes && (unsigned char)*idx == CTLESC) {
-
-The idx variable points to a value in the stack string (as managed
-by STPUTC). STPUTC may resize this stack string via realloc(3). If
-this happens, the idx pointer needs to be updated. Otherwise,
-dereferencing idx may result in a use-after free.
-
-The valgrind output for this edge case looks as follows:
-
- Invalid read of size 1
- at 0x113AD7: subevalvar (ash.c:7326)
- by 0x112EC7: evalvar (ash.c:7674)
- by 0x113219: argstr (ash.c:6891)
- by 0x113D10: expandarg (ash.c:8098)
- by 0x118989: evalcommand (ash.c:10377)
- by 0x116744: evaltree (ash.c:9373)
- by 0x1170DC: cmdloop (ash.c:13577)
- by 0x1191E4: ash_main (ash.c:14756)
- by 0x10CB3B: run_applet_no_and_exit (appletlib.c:967)
- by 0x10CBCA: run_applet_and_exit (appletlib.c:986)
- by 0x10CBCA: main (appletlib.c:1126)
- Address 0x48b4099 is 857 bytes inside a block of size 2,736 free'd
- at 0x48A6FC9: realloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
- by 0x125B03: xrealloc (xfuncs_printf.c:61)
- by 0x10F9D2: growstackblock (ash.c:1736)
- by 0x10FA4E: growstackstr (ash.c:1775)
- by 0x10FA71: _STPUTC (ash.c:1816)
- by 0x113A94: subevalvar (ash.c:7325)
- by 0x112EC7: evalvar (ash.c:7674)
- by 0x113219: argstr (ash.c:6891)
- by 0x113D10: expandarg (ash.c:8098)
- by 0x118989: evalcommand (ash.c:10377)
- by 0x116744: evaltree (ash.c:9373)
- by 0x1170DC: cmdloop (ash.c:13577)
- Block was alloc'd at
- at 0x48A26D5: malloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
- by 0x125AE9: xmalloc (xfuncs_printf.c:50)
- by 0x10ED56: stalloc (ash.c:1622)
- by 0x10F9FF: growstackblock (ash.c:1746)
- by 0x10FB2A: growstackto (ash.c:1783)
- by 0x10FB47: makestrspace (ash.c:1795)
- by 0x10FDE7: memtodest (ash.c:6390)
- by 0x10FE91: strtodest (ash.c:6417)
- by 0x112CC5: varvalue (ash.c:7558)
- by 0x112D80: evalvar (ash.c:7603)
- by 0x113219: argstr (ash.c:6891)
- by 0x113D10: expandarg (ash.c:8098)
-
-This patch fixes this issue by updating the pointers again via
-the restart label if STPUTC re-sized the stack. This issue
-has been reported to us at Alpine Linux downstream.
-
-Also: Move the second realloc-check inside the if statement
-that follows so it isn't done twice if the condition evaluates
-to false.
-
-See also:
-
-* https://gitlab.alpinelinux.org/alpine/aports/-/issues/13900
-* http://lists.busybox.net/pipermail/busybox/2022-April/089655.html
----
- shell/ash.c | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/shell/ash.c b/shell/ash.c
-index ef4a47afe..cbc50eefe 100644
---- a/shell/ash.c
-+++ b/shell/ash.c
-@@ -7323,13 +7323,15 @@ subevalvar(char *start, char *str, int strloc,
- if (idx >= end)
- break;
- STPUTC(*idx, expdest);
-+ if (stackblock() != restart_detect)
-+ goto restart;
- if (quotes && (unsigned char)*idx == CTLESC) {
- idx++;
- len++;
- STPUTC(*idx, expdest);
-+ if (stackblock() != restart_detect)
-+ goto restart;
- }
-- if (stackblock() != restart_detect)
-- goto restart;
- idx++;
- len++;
- rmesc++;
diff --git a/main/busybox/0007-fbsplash-support-console-switching.patch b/main/busybox/0017-fbsplash-support-console-switching.patch
index 8d1950587e1..d5ec3f8b104 100644
--- a/main/busybox/0007-fbsplash-support-console-switching.patch
+++ b/main/busybox/0017-fbsplash-support-console-switching.patch
@@ -1,17 +1,20 @@
-From 8fb815ec846d9ac64c89ac21cededc17f0b804c3 Mon Sep 17 00:00:00 2001
+From 7a5d2b057b1aad464500073f15fa7547d2738ecf Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
-Date: Mon, 24 Sep 2012 07:58:29 +0300
+Date: Mon, 24 Sep 2012 06:42:10 +0300
Subject: [PATCH] fbsplash: support console switching
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
---
miscutils/fbsplash.c | 82 ++++++++++++++++++++++++++++++++++++++++----
1 file changed, 75 insertions(+), 7 deletions(-)
diff --git a/miscutils/fbsplash.c b/miscutils/fbsplash.c
-index bc3c61055..1c206ef53 100644
+index 2934d8eb7..ae257e8bc 100644
--- a/miscutils/fbsplash.c
+++ b/miscutils/fbsplash.c
-@@ -47,7 +47,7 @@
+@@ -46,7 +46,7 @@
//kbuild:lib-$(CONFIG_FBSPLASH) += fbsplash.o
//usage:#define fbsplash_trivial_usage
@@ -20,7 +23,7 @@ index bc3c61055..1c206ef53 100644
//usage:#define fbsplash_full_usage "\n\n"
//usage: " -s Image"
//usage: "\n -c Hide cursor"
-@@ -57,11 +57,17 @@
+@@ -56,11 +56,17 @@
//usage: "\n BAR_R,BAR_G,BAR_B,IMG_LEFT,IMG_TOP"
//usage: "\n -f Control pipe (else exit after drawing image)"
//usage: "\n commands: 'NN' (% for progress bar) or 'exit'"
@@ -38,7 +41,7 @@ index bc3c61055..1c206ef53 100644
/* If you want logging messages on /tmp/fbsplash.log... */
#define DEBUG 0
-@@ -75,6 +81,8 @@ struct globals {
+@@ -74,6 +80,8 @@ struct globals {
unsigned char *addr; // pointer to framebuffer memory
unsigned ns[9]; // n-parameters
const char *image_filename;
@@ -47,7 +50,7 @@ index bc3c61055..1c206ef53 100644
struct fb_var_screeninfo scr_var;
struct fb_fix_screeninfo scr_fix;
unsigned bytes_per_pixel;
-@@ -488,6 +496,11 @@ static void init(const char *cfg_filename)
+@@ -487,6 +495,11 @@ static void init(const char *cfg_filename)
config_close(parser);
}
@@ -59,7 +62,7 @@ index bc3c61055..1c206ef53 100644
int fbsplash_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
int fbsplash_main(int argc UNUSED_PARAM, char **argv)
-@@ -497,6 +510,9 @@ int fbsplash_main(int argc UNUSED_PARAM, char **argv)
+@@ -496,6 +509,9 @@ int fbsplash_main(int argc UNUSED_PARAM, char **argv)
char *num_buf;
unsigned num;
bool bCursorOff;
@@ -69,7 +72,7 @@ index bc3c61055..1c206ef53 100644
INIT_G();
-@@ -504,8 +520,9 @@ int fbsplash_main(int argc UNUSED_PARAM, char **argv)
+@@ -503,8 +519,9 @@ int fbsplash_main(int argc UNUSED_PARAM, char **argv)
fb_device = "/dev/fb0";
cfg_filename = NULL;
fifo_filename = NULL;
@@ -81,7 +84,7 @@ index bc3c61055..1c206ef53 100644
// parse configuration file
if (cfg_filename)
-@@ -515,11 +532,43 @@ int fbsplash_main(int argc UNUSED_PARAM, char **argv)
+@@ -514,11 +531,43 @@ int fbsplash_main(int argc UNUSED_PARAM, char **argv)
if (!G.image_filename)
bb_show_usage();
@@ -126,7 +129,7 @@ index bc3c61055..1c206ef53 100644
}
fb_drawimage();
-@@ -527,6 +576,7 @@ int fbsplash_main(int argc UNUSED_PARAM, char **argv)
+@@ -526,6 +575,7 @@ int fbsplash_main(int argc UNUSED_PARAM, char **argv)
if (!fifo_filename)
return EXIT_SUCCESS;
@@ -134,7 +137,7 @@ index bc3c61055..1c206ef53 100644
fp = xfopen_stdin(fifo_filename);
if (fp != stdin) {
// For named pipes, we want to support this:
-@@ -542,8 +592,9 @@ int fbsplash_main(int argc UNUSED_PARAM, char **argv)
+@@ -541,8 +591,9 @@ int fbsplash_main(int argc UNUSED_PARAM, char **argv)
// and become an additional writer :)
open(fifo_filename, O_WRONLY); // errors are ignored
}
@@ -145,7 +148,7 @@ index bc3c61055..1c206ef53 100644
// Block on read, waiting for some input.
// Use of <stdio.h> style I/O allows to correctly
// handle a case when we have many buffered lines
-@@ -558,12 +609,29 @@ int fbsplash_main(int argc UNUSED_PARAM, char **argv)
+@@ -557,12 +608,29 @@ int fbsplash_main(int argc UNUSED_PARAM, char **argv)
#if DEBUG
DEBUG_MESSAGE(itoa(num));
#endif
diff --git a/main/busybox/0008-fbsplash-support-image-and-bar-alignment-and-positio.patch b/main/busybox/0018-fbsplash-support-image-and-bar-alignment-and-positio.patch
index ab3421e22ad..f91f5642f22 100644
--- a/main/busybox/0008-fbsplash-support-image-and-bar-alignment-and-positio.patch
+++ b/main/busybox/0018-fbsplash-support-image-and-bar-alignment-and-positio.patch
@@ -1,18 +1,22 @@
-From cc005e48ebd831199789d9dfb1a9307e743ecdaa Mon Sep 17 00:00:00 2001
+From 0a205b68300cea1a8905aa9c12926fe70d75eca8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
-Date: Fri, 21 Nov 2014 16:06:34 +0200
+Date: Fri, 21 Nov 2014 15:15:43 +0200
Subject: [PATCH] fbsplash: support image and bar alignment and positioning
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
Needed to center a splash screen image in the initramfs.
+
---
miscutils/fbsplash.c | 93 ++++++++++++++++++++++++++++++++------------
1 file changed, 69 insertions(+), 24 deletions(-)
diff --git a/miscutils/fbsplash.c b/miscutils/fbsplash.c
-index 1c206ef53..500e04fcc 100644
+index ae257e8bc..2c6413157 100644
--- a/miscutils/fbsplash.c
+++ b/miscutils/fbsplash.c
-@@ -54,7 +54,7 @@
+@@ -53,7 +53,7 @@
//usage: "\n -d Framebuffer device (default /dev/fb0)"
//usage: "\n -i Config file (var=value):"
//usage: "\n BAR_LEFT,BAR_TOP,BAR_WIDTH,BAR_HEIGHT"
@@ -21,7 +25,7 @@ index 1c206ef53..500e04fcc 100644
//usage: "\n -f Control pipe (else exit after drawing image)"
//usage: "\n commands: 'NN' (% for progress bar) or 'exit'"
//usage: "\n -T Switch to TTY to hide all console messages"
-@@ -73,13 +73,39 @@
+@@ -72,13 +72,39 @@
#define ESC "\033"
@@ -62,7 +66,7 @@ index 1c206ef53..500e04fcc 100644
const char *image_filename;
int silent_tty, fd_tty_s;
bool do_not_draw;
-@@ -96,16 +122,6 @@ struct globals {
+@@ -95,16 +121,6 @@ struct globals {
SET_PTR_TO_GLOBALS(xzalloc(sizeof(G))); \
} while (0)
@@ -79,7 +83,7 @@ index 1c206ef53..500e04fcc 100644
#if DEBUG
#define DEBUG_MESSAGE(strMessage, args...) \
if (G.bdebug_messages) { \
-@@ -386,7 +402,7 @@ static void fb_drawimage(void)
+@@ -385,7 +401,7 @@ static void fb_drawimage(void)
FILE *theme_file;
char *read_ptr;
unsigned char *pixline;
@@ -88,7 +92,7 @@ index 1c206ef53..500e04fcc 100644
if (LONE_DASH(G.image_filename)) {
theme_file = stdin;
-@@ -436,18 +452,39 @@ static void fb_drawimage(void)
+@@ -435,18 +451,39 @@ static void fb_drawimage(void)
line_size = width*3;
pixline = xmalloc(line_size);
@@ -135,7 +139,7 @@ index 1c206ef53..500e04fcc 100644
for (i = 0; i < width; i++) {
unsigned thispix = fb_pixel_value(pixel[0], pixel[1], pixel[2]);
fb_write_pixel(src, thispix);
-@@ -466,11 +503,15 @@ static void fb_drawimage(void)
+@@ -465,11 +502,15 @@ static void fb_drawimage(void)
*/
static void init(const char *cfg_filename)
{
@@ -152,7 +156,7 @@ index 1c206ef53..500e04fcc 100644
#if DEBUG
"DEBUG\0"
#endif
-@@ -479,14 +520,18 @@ static void init(const char *cfg_filename)
+@@ -478,14 +519,18 @@ static void init(const char *cfg_filename)
parser_t *parser = config_open2(cfg_filename, xfopen_stdin);
while (config_read(parser, token, 2, 2, "#=",
(PARSE_NORMAL | PARSE_MIN_DIE) & ~(PARSE_TRIM | PARSE_COLLAPSE))) {
diff --git a/main/busybox/0009-depmod-support-generating-kmod-binary-index-files.patch b/main/busybox/0019-depmod-support-generating-kmod-binary-index-files.patch
index 9f697a564be..62481f6f507 100644
--- a/main/busybox/0009-depmod-support-generating-kmod-binary-index-files.patch
+++ b/main/busybox/0019-depmod-support-generating-kmod-binary-index-files.patch
@@ -1,13 +1,17 @@
-From 8d76137506e9c65404280694e56d9a7629d58280 Mon Sep 17 00:00:00 2001
+From 4eb6d6b1f36e9bf976549f3071beb1192e11c4ca Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
-Date: Sun, 25 Oct 2015 22:21:41 +0200
+Date: Sun, 25 Oct 2015 12:33:58 +0200
Subject: [PATCH] depmod: support generating kmod binary index files
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
This allows to use busybox depmod, and run daemons using libkmod (or
even kmod modprobe if needed).
About +1500 bytes when enabled. This patch merges some depmod code
paths, so when this is disabled it shrinks the code size a little bit.
+
---
modutils/Config.src | 9 ++
modutils/depmod.c | 281 ++++++++++++++++++++++++++++++++++++--------
@@ -37,7 +41,7 @@ index 188296814..7a4c037ad 100644
bool "Support module.symbols file"
default y
diff --git a/modutils/depmod.c b/modutils/depmod.c
-index b5244fc60..26e223753 100644
+index bb42bbefe..9b034db0a 100644
--- a/modutils/depmod.c
+++ b/modutils/depmod.c
@@ -2,7 +2,7 @@
@@ -49,7 +53,7 @@ index b5244fc60..26e223753 100644
* Copyright (c) 2008 Vladimir Dronnikov
*
* Licensed under GPLv2 or later, see file LICENSE in this source tree.
-@@ -26,6 +26,24 @@
+@@ -25,6 +25,24 @@
#include "modutils.h"
#include <sys/utsname.h> /* uname() */
@@ -74,7 +78,7 @@ index b5244fc60..26e223753 100644
/*
* Theory of operation:
* - iterate over all modules and record their full path
-@@ -53,18 +71,12 @@ static int FAST_FUNC parse_module(const char *fname, struct stat *sb UNUSED_PARA
+@@ -53,18 +71,12 @@ static int FAST_FUNC parse_module(struct recursive_state *state,
for (ptr = image; ptr < image + len - 10; ptr++) {
if (is_prefixed_with(ptr, "depends=")) {
@@ -95,7 +99,7 @@ index b5244fc60..26e223753 100644
} else if (ENABLE_FEATURE_MODUTILS_SYMBOLS
&& is_prefixed_with(ptr, "__ksymtab_")
) {
-@@ -74,9 +86,10 @@ static int FAST_FUNC parse_module(const char *fname, struct stat *sb UNUSED_PARA
+@@ -74,9 +86,10 @@ static int FAST_FUNC parse_module(struct recursive_state *state,
) {
continue;
}
@@ -301,7 +305,7 @@ index b5244fc60..26e223753 100644
getopt32(argv, "aAb:eF:nruqC:", &moddir_base, NULL, NULL);
argv += optind;
-@@ -210,53 +382,60 @@ int depmod_main(int argc UNUSED_PARAM, char **argv)
+@@ -211,53 +383,60 @@ int depmod_main(int argc UNUSED_PARAM, char **argv)
}
/* Generate dependency and alias files */
@@ -396,10 +400,10 @@ index b5244fc60..26e223753 100644
if (ENABLE_FEATURE_CLEAN_UP)
moddb_free(&modules);
diff --git a/modutils/modprobe.c b/modutils/modprobe.c
-index 0a372a049..20a60c1a6 100644
+index 235706fd5..604d9e6b5 100644
--- a/modutils/modprobe.c
+++ b/modutils/modprobe.c
-@@ -192,21 +192,6 @@ struct globals {
+@@ -191,21 +191,6 @@ struct globals {
static int read_config(const char *path);
@@ -422,10 +426,10 @@ index 0a372a049..20a60c1a6 100644
{
return moddb_get_or_create(&G.db, module);
diff --git a/modutils/modutils.c b/modutils/modutils.c
-index 6f7cd9721..257089af4 100644
+index 037d609e4..502ad5422 100644
--- a/modutils/modutils.c
+++ b/modutils/modutils.c
-@@ -66,6 +66,21 @@ void FAST_FUNC moddb_free(module_db *db)
+@@ -67,6 +67,21 @@ void FAST_FUNC moddb_free(module_db *db)
}
}
@@ -447,7 +451,7 @@ index 6f7cd9721..257089af4 100644
void FAST_FUNC replace(char *s, char what, char with)
{
while (*s) {
-@@ -75,6 +90,22 @@ void FAST_FUNC replace(char *s, char what, char with)
+@@ -76,6 +91,22 @@ void FAST_FUNC replace(char *s, char what, char with)
}
}
diff --git a/main/busybox/0010-Add-flag-for-not-following-symlinks-when-recursing.patch b/main/busybox/0020-Add-flag-for-not-following-symlinks-when-recursing.patch
index e647d8d0330..44a3492e5ec 100644
--- a/main/busybox/0010-Add-flag-for-not-following-symlinks-when-recursing.patch
+++ b/main/busybox/0020-Add-flag-for-not-following-symlinks-when-recursing.patch
@@ -1,7 +1,10 @@
-From 03293c16e509501ce7ec952900413138475f125d Mon Sep 17 00:00:00 2001
+From 333b48438e3001cddbc902bd6f5fc7eb116997ca Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Fri, 25 Jul 2014 15:28:33 +0200
+Date: Fri, 25 Jul 2014 02:10:50 +0200
Subject: [PATCH] Add flag for not following symlinks when recursing
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
function old new delta
.rodata 7934 7967 +33
@@ -10,12 +13,13 @@ packed_usage 1704 1720 +16
diff_main 1665 1662 -3
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 3/1 up/down: 66/-3) Total: 63 bytes
+
---
editors/diff.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/editors/diff.c b/editors/diff.c
-index 280091756..42a36e2d4 100644
+index 1adc4cbc7..f7c0f5250 100644
--- a/editors/diff.c
+++ b/editors/diff.c
@@ -113,6 +113,9 @@
diff --git a/main/busybox/0012-udhcpc-Don-t-background-if-n-is-given.patch b/main/busybox/0021-udhcpc-Don-t-background-if-n-is-given.patch
index 523768bb943..9ce7adfac09 100644
--- a/main/busybox/0012-udhcpc-Don-t-background-if-n-is-given.patch
+++ b/main/busybox/0021-udhcpc-Don-t-background-if-n-is-given.patch
@@ -1,7 +1,10 @@
-From 0cd01228c1e4173683637c4e582448656b26c05f Mon Sep 17 00:00:00 2001
+From b6a7520ce7c77f14f61794e6a84c865042a31db3 Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Thu, 6 Jul 2017 11:40:14 +0200
+Date: Thu, 6 Jul 2017 07:05:15 +0200
Subject: [PATCH] udhcpc: Don't background if -n is given
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
we need add -b to our udhcpc options to prevent boot forever if there are no
dhcp server. We also need a way for users to disable this behavior by making
@@ -15,16 +18,17 @@ introducing this change.
See also: https://bugs.busybox.net/11691
[0]: https://git.busybox.net/busybox/commit/?id=87e216294af9eec39c0c1d553555f8a98c15db38
+
---
networking/udhcp/d6_dhcpc.c | 20 +++++++-------------
networking/udhcp/dhcpc.c | 20 +++++++-------------
2 files changed, 14 insertions(+), 26 deletions(-)
diff --git a/networking/udhcp/d6_dhcpc.c b/networking/udhcp/d6_dhcpc.c
-index 8d11a7539..0284a0fd8 100644
+index 3d0ec98f9..cc3afa921 100644
--- a/networking/udhcp/d6_dhcpc.c
+++ b/networking/udhcp/d6_dhcpc.c
-@@ -1401,25 +1401,19 @@ int udhcpc6_main(int argc UNUSED_PARAM, char **argv)
+@@ -1403,25 +1403,19 @@ int udhcpc6_main(int argc UNUSED_PARAM, char **argv)
leasefail:
change_listen_mode(LISTEN_NONE);
d6_run_script_no_option("leasefail");
@@ -58,7 +62,7 @@ index 8d11a7539..0284a0fd8 100644
timeout = tryagain_timeout;
packet_num = 0;
diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c
-index bbf95caca..8e034ac8a 100644
+index 424d6dade..06ad59fe5 100644
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -1456,25 +1456,19 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
diff --git a/main/busybox/0023-tests-fix-tarball-creation.patch b/main/busybox/0023-tests-fix-tarball-creation.patch
new file mode 100644
index 00000000000..e4221e779b8
--- /dev/null
+++ b/main/busybox/0023-tests-fix-tarball-creation.patch
@@ -0,0 +1,29 @@
+From 9448774028839a834a554384a7c64e89fd9c3486 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
+Date: Wed, 4 Jan 2023 08:30:41 +0100
+Subject: [PATCH] tests: fix tarball creation
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Without this patch, the chmod 644 invocation takes away the executable
+bit from the input_dir directory, thus preventing the chmod of the files
+within the input_dir directory (due to lack of x-bit).
+
+---
+ testsuite/tar.tests | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/testsuite/tar.tests b/testsuite/tar.tests
+index 0f2e89112..18e571af3 100755
+--- a/testsuite/tar.tests
++++ b/testsuite/tar.tests
+@@ -67,7 +67,7 @@ testing "tar hardlinks and repeated files" '\
+ ln input_hard1 input_hard2
+ mkdir input_dir
+ >input_dir/file
+-chmod -R 644 *
++for f in *; do [ "$f" = "input_dir" ] || chmod -R 644 "$f"; done
+ chmod 755 input_dir
+ tar cf test.tar input input_dir/ input_hard1 input_hard2 input_hard1 input_dir/ input
+ tar tvf test.tar | sed "s/.*[0-9] input/input/"
diff --git a/main/busybox/test-timezone-workaround.patch b/main/busybox/0024-tests-musl-doesn-t-seem-to-recognize-UTC0-as-a-timez.patch
index 35814eed4cd..de2cb3648e1 100644
--- a/main/busybox/test-timezone-workaround.patch
+++ b/main/busybox/0024-tests-musl-doesn-t-seem-to-recognize-UTC0-as-a-timez.patch
@@ -1,10 +1,22 @@
-musl doesn't seem to recognize UTC0 as a timezone. UTC works though.
+From 707d69bf1e7a5f2e29309239d599933350cbfd59 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
+Date: Wed, 4 Jan 2023 08:04:07 +0100
+Subject: [PATCH] tests: musl doesn't seem to recognize UTC0 as a timezone
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+UTC works though.
TODO: Figure out if musl /should/ regonize UTC0.
+---
+ testsuite/date/date-timezone | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
-diff -upr busybox-1.35.0.orig/testsuite/date/date-timezone busybox-1.35.0/testsuite/date/date-timezone
---- busybox-1.35.0.orig/testsuite/date/date-timezone 2022-03-02 22:53:12.337143305 +0100
-+++ busybox-1.35.0/testsuite/date/date-timezone 2022-03-02 22:53:24.047137763 +0100
+diff --git a/testsuite/date/date-timezone b/testsuite/date/date-timezone
+index 8628aa1d7..720ce4f26 100644
+--- a/testsuite/date/date-timezone
++++ b/testsuite/date/date-timezone
@@ -1,17 +1,17 @@
# FEATURE: CONFIG_FEATURE_TIMEZONE
diff --git a/main/busybox/0025-Hackfix-to-disable-HW-acceleration-for-MD5-SHA1-on-x.patch b/main/busybox/0025-Hackfix-to-disable-HW-acceleration-for-MD5-SHA1-on-x.patch
new file mode 100644
index 00000000000..a3030da2efd
--- /dev/null
+++ b/main/busybox/0025-Hackfix-to-disable-HW-acceleration-for-MD5-SHA1-on-x.patch
@@ -0,0 +1,46 @@
+From 3ead51e53687e94a51beb793661363df27b00814 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
+Date: Thu, 5 Jan 2023 15:47:55 +0100
+Subject: [PATCH] Hackfix to disable HW acceleration for MD5/SHA1 on x86
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This causes a direct segfault with musl libc.
+
+See: http://lists.busybox.net/pipermail/busybox/2023-January/090078.html
+---
+ libbb/hash_md5_sha.c | 6 +++---
+ 2 files changed, 3 insertions(+), 5 deletions(-)
+
+diff --git a/libbb/hash_md5_sha.c b/libbb/hash_md5_sha.c
+index 880ffab01..a006422ab 100644
+--- a/libbb/hash_md5_sha.c
++++ b/libbb/hash_md5_sha.c
+@@ -14,7 +14,7 @@
+ #define NEED_SHA512 (ENABLE_SHA512SUM || ENABLE_USE_BB_CRYPT_SHA)
+
+ #if ENABLE_SHA1_HWACCEL || ENABLE_SHA256_HWACCEL
+-# if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
++# if defined(__GNUC__) && defined(__x86_64__)
+ static void cpuid(unsigned *eax, unsigned *ebx, unsigned *ecx, unsigned *edx)
+ {
+ asm ("cpuid"
+@@ -1173,7 +1173,7 @@ void FAST_FUNC sha1_begin(sha1_ctx_t *ctx)
+ ctx->total64 = 0;
+ ctx->process_block = sha1_process_block64;
+ #if ENABLE_SHA1_HWACCEL
+-# if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
++# if defined(__GNUC__) && defined(__x86_64__)
+ {
+ if (!shaNI) {
+ unsigned eax = 7, ebx = ebx, ecx = 0, edx = edx;
+@@ -1227,7 +1227,7 @@ void FAST_FUNC sha256_begin(sha256_ctx_t *ctx)
+ /*ctx->total64 = 0; - done by prepending two 32-bit zeros to init256 */
+ ctx->process_block = sha256_process_block64;
+ #if ENABLE_SHA256_HWACCEL
+-# if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
++# if defined(__GNUC__) && defined(__x86_64__)
+ {
+ if (!shaNI) {
+ unsigned eax = 7, ebx = ebx, ecx = 0, edx = edx;
diff --git a/main/busybox/0026-lineedit-Handle-SIGWINCH-gracefully.patch b/main/busybox/0026-lineedit-Handle-SIGWINCH-gracefully.patch
new file mode 100644
index 00000000000..43f48b1228f
--- /dev/null
+++ b/main/busybox/0026-lineedit-Handle-SIGWINCH-gracefully.patch
@@ -0,0 +1,61 @@
+From 63bb934c9e48d3ba1dc7f8001d423ea84b9a00c2 Mon Sep 17 00:00:00 2001
+From: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
+Date: Thu, 19 Jan 2023 17:18:18 +0100
+Subject: [PATCH] lineedit: Handle SIGWINCH gracefully
+
+Since 1.16.0 a resize of the terminal emulator resulted in ash printing
+a new command line. This fixes the issue by retrying read_key() in
+lineedit_read_key() on SIGWINCH, rendering reception of SIGWINCH
+transparent to callers of read_line_input().
+
+Fixes https://bugs.busybox.net/show_bug.cgi?id=15256
+---
+ libbb/lineedit.c | 11 +++++++++--
+ 1 file changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/libbb/lineedit.c b/libbb/lineedit.c
+index d6b2e76ff..a47d9e508 100644
+--- a/libbb/lineedit.c
++++ b/libbb/lineedit.c
+@@ -2149,7 +2149,7 @@ static void cmdedit_setwidth(void)
+ redraw((new_y >= cmdedit_y ? new_y : cmdedit_y), command_len - cursor);
+ }
+
+-static void win_changed(int nsig UNUSED_PARAM)
++static void win_changed(int nsig)
+ {
+ if (S.ok_to_redraw) {
+ /* We are in read_key(), safe to redraw immediately */
+@@ -2157,6 +2157,7 @@ static void win_changed(int nsig UNUSED_PARAM)
+ cmdedit_setwidth();
+ fflush_all();
+ errno = sv_errno;
++ bb_got_signal = nsig;
+ } else {
+ /* Signal main loop that redraw is necessary */
+ S.SIGWINCH_count++;
+@@ -2186,7 +2187,9 @@ static int lineedit_read_key(char *read_key_buffer, int timeout)
+ * Note: read_key sets errno to 0 on success.
+ */
+ for (;;) {
+- if ((state->flags & LI_INTERRUPTIBLE) && bb_got_signal) {
++ if ((state->flags & LI_INTERRUPTIBLE) && bb_got_signal
++ && (bb_got_signal != SIGWINCH)
++ ) {
+ errno = EINTR;
+ return -1;
+ }
+@@ -2197,6 +2200,10 @@ static int lineedit_read_key(char *read_key_buffer, int timeout)
+ IF_FEATURE_EDITING_WINCH(S.ok_to_redraw = 0;)
+ if (errno != EINTR)
+ break;
++ if (bb_got_signal == SIGWINCH) {
++ bb_got_signal = 0;
++ continue;
++ }
+ if (state->flags & LI_INTERRUPTIBLE) {
+ /* LI_INTERRUPTIBLE bails out on EINTR,
+ * but nothing really guarantees that bb_got_signal
+--
+2.39.1
+
diff --git a/main/busybox/0027-umount-Implement-O-option-to-unmount-by-mount-option.patch b/main/busybox/0027-umount-Implement-O-option-to-unmount-by-mount-option.patch
new file mode 100644
index 00000000000..2b330e527b3
--- /dev/null
+++ b/main/busybox/0027-umount-Implement-O-option-to-unmount-by-mount-option.patch
@@ -0,0 +1,195 @@
+From 7ea459b570760f8e836d05e58422dbd3a7d1b016 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
+Date: Sun, 19 Jun 2022 17:49:41 +0200
+Subject: [PATCH] umount: Implement -O option to unmount by mount options
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This commit adds an implementation of the umount -O option, as provided
+by util-linux's mount(8) implementation, to BusyBox. Similar to -t, the
+option is intended to be used in conjunction with -a thereby allowing
+users to filter which file systems are unmounted by mount options.
+Multiple options can be specified with -O, all of which need to match.
+Each option can be prefixed with `no` to indicate that no action should
+be taken for a mount point with this mount option. The "no" prefix
+interpretation can be disabled using the "+" prefix.
+
+At Alpine, this feature is often requested by users as the OpenRC
+netmount service uses `umount -a -O _netdev` to amount all network
+file systems [1] [2].
+
+This implementation is functionally equivalent to the util-linux
+implementation with the exception that it implements no special handling
+for `key="value"` mount options to keep the implementation simple.
+Therefore, filesystems mounted with options like `foo="bar"` won't
+be matched by `umount -a -O foo`.
+
+[1]: https://gitlab.alpinelinux.org/alpine/aports/-/issues/9923
+[2]: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13789
+
+Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
+Signed-off-by: Sören Tempel <soeren+git@soeren-tempel.net>
+---
+ include/libbb.h | 1 +
+ libbb/Kbuild.src | 1 +
+ libbb/match_fsopts.c | 69 ++++++++++++++++++++++++++++++++++++++++++++
+ util-linux/umount.c | 10 +++++--
+ 4 files changed, 78 insertions(+), 3 deletions(-)
+ create mode 100644 libbb/match_fsopts.c
+
+diff --git a/include/libbb.h b/include/libbb.h
+index cca33a177..ad41adec8 100644
+--- a/include/libbb.h
++++ b/include/libbb.h
+@@ -1586,6 +1586,7 @@ const struct hwtype *get_hwntype(int type) FAST_FUNC;
+
+
+ extern int fstype_matches(const char *fstype, const char *comma_list) FAST_FUNC;
++extern int fsopts_matches(const char *opts_list, const char *reqopts_list) FAST_FUNC;
+ #ifdef HAVE_MNTENT_H
+ extern struct mntent *find_mount_point(const char *name, int subdir_too) FAST_FUNC;
+ #endif
+diff --git a/libbb/Kbuild.src b/libbb/Kbuild.src
+index 653025e56..4bb8260b9 100644
+--- a/libbb/Kbuild.src
++++ b/libbb/Kbuild.src
+@@ -120,6 +120,7 @@ lib-y += xrealloc_vector.o
+
+ lib-$(CONFIG_MOUNT) += match_fstype.o
+ lib-$(CONFIG_UMOUNT) += match_fstype.o
++lib-$(CONFIG_UMOUNT) += match_fsopts.o
+
+ lib-$(CONFIG_FEATURE_UTMP) += utmp.o
+
+diff --git a/libbb/match_fsopts.c b/libbb/match_fsopts.c
+new file mode 100644
+index 000000000..b1cc85c3c
+--- /dev/null
++++ b/libbb/match_fsopts.c
+@@ -0,0 +1,69 @@
++/* vi: set sw=4 ts=4: */
++/*
++ * Match fsopts for use in mount unmount -O.
++ *
++ * Returns 1 for a match, otherwise 0.
++ *
++ * Licensed under GPLv2 or later, see file LICENSE in this source tree.
++ */
++
++#include "libbb.h"
++
++static int fsopt_matches(const char *opts_list, const char *opt, size_t optlen)
++{
++ int match = 1;
++
++ if (optlen >= 2 && opt[0] == 'n' && opt[1] == 'o') {
++ match--;
++ opt += 2; optlen -= 2;
++ }
++
++ /* The alone "no" is an error, all matching ends with False. */
++ if (optlen == 0)
++ return 0;
++
++ /* The "no" prefix interpretation can be disabled by the "+" prefix. */
++ if (match && optlen > 1 && *opt == '+') {
++ opt++; optlen--;
++ }
++
++ while (1) {
++ if (strncmp(opts_list, opt, optlen) == 0) {
++ const char *after_opt = opts_list + optlen;
++ if (*after_opt == '\0' || *after_opt == ',')
++ return match;
++ }
++
++ opts_list = strchr(opts_list, ',');
++ if (!opts_list)
++ break;
++ opts_list++;
++ }
++
++ return !match;
++}
++
++/* This function implements the mnt_match_options function from libmount. */
++int FAST_FUNC fsopts_matches(const char *opts_list, const char *reqopts_list)
++{
++ if (!reqopts_list)
++ return 1; /* no options requested, match anything */
++
++ while (1) {
++ size_t len;
++ const char *comma = strchr(reqopts_list, ',');
++ if (!comma)
++ len = strlen(reqopts_list);
++ else
++ len = comma - reqopts_list;
++
++ if (len && !fsopt_matches(opts_list, reqopts_list, len))
++ return 0;
++
++ if (!comma)
++ break;
++ reqopts_list = ++comma;
++ }
++
++ return 1;
++}
+diff --git a/util-linux/umount.c b/util-linux/umount.c
+index 23da32868..7a54cafb0 100644
+--- a/util-linux/umount.c
++++ b/util-linux/umount.c
+@@ -41,7 +41,7 @@
+ //kbuild:lib-$(CONFIG_UMOUNT) += umount.o
+
+ //usage:#define umount_trivial_usage
+-//usage: "[-rlf"IF_FEATURE_MTAB_SUPPORT("m")IF_FEATURE_MOUNT_LOOP("d")IF_FEATURE_UMOUNT_ALL("a")"] [-t FSTYPE] FILESYSTEM|DIRECTORY"
++//usage: "[-rlf"IF_FEATURE_MTAB_SUPPORT("m")IF_FEATURE_MOUNT_LOOP("d")IF_FEATURE_UMOUNT_ALL("a")"] [-t FSTYPE] [-O FSOPT] FILESYSTEM|DIRECTORY"
+ //usage:#define umount_full_usage "\n\n"
+ //usage: "Unmount filesystems\n"
+ //usage: IF_FEATURE_UMOUNT_ALL(
+@@ -57,6 +57,7 @@
+ //usage: "\n -d Free loop device if it has been used"
+ //usage: )
+ //usage: "\n -t FSTYPE[,...] Unmount only these filesystem type(s)"
++//usage: "\n -O FSOPT[,...] Unmount only filesystem mounted with the given options"
+ //usage:
+ //usage:#define umount_example_usage
+ //usage: "$ umount /dev/hdc1\n"
+@@ -82,7 +83,7 @@ static struct mntent *getmntent_r(FILE* stream, struct mntent* result,
+ #endif
+
+ /* ignored: -c -v -i */
+-#define OPTION_STRING "fldnrat:" "cvi"
++#define OPTION_STRING "fldnrat:O:" "cvi"
+ #define OPT_FORCE (1 << 0) // Same as MNT_FORCE
+ #define OPT_LAZY (1 << 1) // Same as MNT_DETACH
+ #define OPT_FREELOOP (1 << 2)
+@@ -96,6 +97,7 @@ int umount_main(int argc UNUSED_PARAM, char **argv)
+ int doForce;
+ struct mntent me;
+ FILE *fp;
++ char *opts = NULL;
+ char *fstype = NULL;
+ int status = EXIT_SUCCESS;
+ unsigned opt;
+@@ -105,7 +107,7 @@ int umount_main(int argc UNUSED_PARAM, char **argv)
+ struct mtab_list *next;
+ } *mtl, *m;
+
+- opt = getopt32(argv, OPTION_STRING, &fstype);
++ opt = getopt32(argv, OPTION_STRING, &fstype, &opts);
+ //argc -= optind;
+ argv += optind;
+
+@@ -133,6 +135,8 @@ int umount_main(int argc UNUSED_PARAM, char **argv)
+ /* Match fstype (fstype==NULL matches always) */
+ if (!fstype_matches(me.mnt_type, fstype))
+ continue;
++ if (!fsopts_matches(me.mnt_opts, opts))
++ continue;
+ m = xzalloc(sizeof(*m));
+ m->next = mtl;
+ m->device = xstrdup(me.mnt_fsname);
diff --git a/main/busybox/0028-ash-use-after-free-in-bash-pattern-substitution.patch b/main/busybox/0028-ash-use-after-free-in-bash-pattern-substitution.patch
new file mode 100644
index 00000000000..a8c13e4a572
--- /dev/null
+++ b/main/busybox/0028-ash-use-after-free-in-bash-pattern-substitution.patch
@@ -0,0 +1,34 @@
+From 3e83699ce23400d75c7ddaa7ebfdec015177caa7 Mon Sep 17 00:00:00 2001
+From: Karsten Sperling <ksperling@apple.com>
+Date: Thu, 18 May 2023 16:47:49 +0200
+Subject: [PATCH] ash: use-after-free in bash pattern substitution
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Commit daa66ed6 fixed a number of use-after-free bugs in bash pattern
+substitution, however one "unguarded" STPUTC remained, which is fixed here.
+
+function old new delta
+subevalvar 1564 1576 +12
+
+Signed-off-by: Karsten Sperling <ksperling@apple.com>
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+Signed-off-by: Sören Tempel <soeren+git@soeren-tempel.net>
+---
+ shell/ash.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/shell/ash.c b/shell/ash.c
+index d2c5c5d50..51b627fcc 100644
+--- a/shell/ash.c
++++ b/shell/ash.c
+@@ -7370,6 +7370,8 @@ subevalvar(char *start, char *str, int strloc,
+ char *restart_detect = stackblock();
+ if (quotes && *loc == '\\') {
+ STPUTC(CTLESC, expdest);
++ if (stackblock() != restart_detect)
++ goto restart;
+ len++;
+ }
+ STPUTC(*loc, expdest);
diff --git a/main/busybox/0029-awk-fix-use-after-realloc-CVE-2021-42380-closes-1560.patch b/main/busybox/0029-awk-fix-use-after-realloc-CVE-2021-42380-closes-1560.patch
new file mode 100644
index 00000000000..e49bff43992
--- /dev/null
+++ b/main/busybox/0029-awk-fix-use-after-realloc-CVE-2021-42380-closes-1560.patch
@@ -0,0 +1,82 @@
+From 5b1deb2b98a0513b101c600e856d64edd9d47a2e Mon Sep 17 00:00:00 2001
+From: Denys Vlasenko <vda.linux@googlemail.com>
+Date: Fri, 26 May 2023 18:52:52 +0200
+Subject: [PATCH] awk: fix use-after-realloc (CVE-2021-42380), closes 15601
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+---
+ editors/awk.c | 26 ++++++++++++++++-----
+ 2 files changed, 75 insertions(+), 6 deletions(-)
+
+diff --git a/editors/awk.c b/editors/awk.c
+index 728ee8685..2af823808 100644
+--- a/editors/awk.c
++++ b/editors/awk.c
+@@ -555,7 +555,7 @@ struct globals {
+ const char *g_progname;
+ int g_lineno;
+ int nfields;
+- int maxfields; /* used in fsrealloc() only */
++ unsigned maxfields;
+ var *Fields;
+ char *g_pos;
+ char g_saved_ch;
+@@ -1931,9 +1931,9 @@ static void fsrealloc(int size)
+ {
+ int i, newsize;
+
+- if (size >= maxfields) {
+- /* Sanity cap, easier than catering for overflows */
+- if (size > 0xffffff)
++ if ((unsigned)size >= maxfields) {
++ /* Sanity cap, easier than catering for over/underflows */
++ if ((unsigned)size > 0xffffff)
+ bb_die_memory_exhausted();
+
+ i = maxfields;
+@@ -2891,6 +2891,7 @@ static var *evaluate(node *op, var *res)
+ uint32_t opinfo;
+ int opn;
+ node *op1;
++ var *old_Fields_ptr;
+
+ opinfo = op->info;
+ opn = (opinfo & OPNMASK);
+@@ -2899,10 +2900,16 @@ static var *evaluate(node *op, var *res)
+ debug_printf_eval("opinfo:%08x opn:%08x\n", opinfo, opn);
+
+ /* execute inevitable things */
++ old_Fields_ptr = NULL;
+ if (opinfo & OF_RES1) {
+ if ((opinfo & OF_REQUIRED) && !op1)
+ syntax_error(EMSG_TOO_FEW_ARGS);
+ L.v = evaluate(op1, TMPVAR0);
++ /* Does L.v point to $n variable? */
++ if ((size_t)(L.v - Fields) < maxfields) {
++ /* yes, remember where Fields[] is */
++ old_Fields_ptr = Fields;
++ }
+ if (opinfo & OF_STR1) {
+ L.s = getvar_s(L.v);
+ debug_printf_eval("L.s:'%s'\n", L.s);
+@@ -2921,8 +2928,15 @@ static var *evaluate(node *op, var *res)
+ */
+ if (opinfo & OF_RES2) {
+ R.v = evaluate(op->r.n, TMPVAR1);
+- //TODO: L.v may be invalid now, set L.v to NULL to catch bugs?
+- //L.v = NULL;
++ /* Seen in $5=$$5=$0:
++ * Evaluation of R.v ($$5=$0 expression)
++ * made L.v ($5) invalid. It's detected here.
++ */
++ if (old_Fields_ptr) {
++ //if (old_Fields_ptr != Fields)
++ // debug_printf_eval("L.v moved\n");
++ L.v += Fields - old_Fields_ptr;
++ }
+ if (opinfo & OF_STR2) {
+ R.s = getvar_s(R.v);
+ debug_printf_eval("R.s:'%s'\n", R.s);
diff --git a/main/busybox/0030-shell-avoid-segfault-on-0-0-0-09J-.-Closes-15216.patch b/main/busybox/0030-shell-avoid-segfault-on-0-0-0-09J-.-Closes-15216.patch
new file mode 100644
index 00000000000..4017548e9d0
--- /dev/null
+++ b/main/busybox/0030-shell-avoid-segfault-on-0-0-0-09J-.-Closes-15216.patch
@@ -0,0 +1,80 @@
+From f69ade3845f9c1cc8cf47251d5f3ba41aab2ce21 Mon Sep 17 00:00:00 2001
+From: Denys Vlasenko <vda.linux@googlemail.com>
+Date: Mon, 12 Jun 2023 16:51:43 +0200
+Subject: [PATCH] shell: avoid segfault on ${0::0/0~09J}. Closes 15216
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+function old new delta
+evaluate_string 1011 1053 +42
+
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+---
+ shell/math.c | 39 +++++++++++++++++++++++++++++++++++----
+ 1 file changed, 35 insertions(+), 4 deletions(-)
+
+diff --git a/shell/math.c b/shell/math.c
+index 76d22c9bd..727c29467 100644
+--- a/shell/math.c
++++ b/shell/math.c
+@@ -577,6 +577,28 @@ static arith_t strto_arith_t(const char *nptr, char **endptr)
+ # endif
+ #endif
+
++//TODO: much better estimation than expr_len/2? Such as:
++//static unsigned estimate_nums_and_names(const char *expr)
++//{
++// unsigned count = 0;
++// while (*(expr = skip_whitespace(expr)) != '\0') {
++// const char *p;
++// if (isdigit(*expr)) {
++// while (isdigit(*++expr))
++// continue;
++// count++;
++// continue;
++// }
++// p = endofname(expr);
++// if (p != expr) {
++// expr = p;
++// count++;
++// continue;
++// }
++// }
++// return count;
++//}
++
+ static arith_t
+ evaluate_string(arith_state_t *math_state, const char *expr)
+ {
+@@ -584,10 +606,12 @@ evaluate_string(arith_state_t *math_state, const char *expr)
+ const char *errmsg;
+ const char *start_expr = expr = skip_whitespace(expr);
+ unsigned expr_len = strlen(expr) + 2;
+- /* Stack of integers */
+- /* The proof that there can be no more than strlen(startbuf)/2+1
+- * integers in any given correct or incorrect expression
+- * is left as an exercise to the reader. */
++ /* Stack of integers/names */
++ /* There can be no more than strlen(startbuf)/2+1
++ * integers/names in any given correct or incorrect expression.
++ * (modulo "09v09v09v09v09v" case,
++ * but we have code to detect that early)
++ */
+ var_or_num_t *const numstack = alloca((expr_len / 2) * sizeof(numstack[0]));
+ var_or_num_t *numstackptr = numstack;
+ /* Stack of operator tokens */
+@@ -652,6 +676,13 @@ evaluate_string(arith_state_t *math_state, const char *expr)
+ numstackptr->var = NULL;
+ errno = 0;
+ numstackptr->val = strto_arith_t(expr, (char**) &expr);
++ /* A number can't be followed by another number, or a variable name.
++ * We'd catch this later anyway, but this would require numstack[]
++ * to be twice as deep to handle strings where _every_ char is
++ * a new number or name. Example: 09v09v09v09v09v09v09v09v09v
++ */
++ if (isalnum(*expr) || *expr == '_')
++ goto err;
+ //bb_error_msg("val:%lld", numstackptr->val);
+ if (errno)
+ numstackptr->val = 0; /* bash compat */
diff --git a/main/busybox/0031-ash-initialize-basepf.buf-in-ash.patch b/main/busybox/0031-ash-initialize-basepf.buf-in-ash.patch
new file mode 100644
index 00000000000..51e5301954d
--- /dev/null
+++ b/main/busybox/0031-ash-initialize-basepf.buf-in-ash.patch
@@ -0,0 +1,58 @@
+From ed4a24dfd10539e144ed4b7de008f8791d09a551 Mon Sep 17 00:00:00 2001
+From: zhuyan <zhuyan34@huawei.com>
+Date: Tue, 29 Aug 2023 20:50:32 +0800
+Subject: [PATCH] ash: initialize basepf.buf in ash
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+When I planned to print the command in read_line_input, I found that after
+the system started, the command printed for the first time was always
+garbled.
+
+After analysis, it is found that in the init() function of ash, the
+variable basepf.buf is not initialized after applying for memory, resulting
+in garbled initial data. Then assign it to the global variable
+g_parsefile->buf in ash.c, and then pass g_parsefile->buf to the parameter
+command of the function read_line_input in the function preadfd(), and
+finally cause it to be garbled when the command is printed by
+read_line_input.
+
+The call stack is as follows:
+ #0 read_line_input (st=0xb6fff220, prompt=0xb6ffc910 "\\[\\033[32m\\]\\h \\w\\[\\033[m\\] \\$ ", command=command@entry=0xb6ffc230 "P\325\377\266P\325\377\266", maxsize=maxsize@entry=1024) at libbb/lineedit.c:2461
+ #1 0x0043ef8c in preadfd () at shell/ash.c:10812
+ #2 preadbuffer () at shell/ash.c:10914
+ #3 pgetc () at shell/ash.c:10997
+ #4 0x00440c20 in pgetc_eatbnl () at shell/ash.c:11039
+ #5 0x00440cbc in xxreadtoken () at shell/ash.c:13157
+ #6 0x00440f40 in readtoken () at shell/ash.c:13268
+ #7 0x00441234 in list (nlflag=nlflag@entry=1) at shell/ash.c:11782
+ #8 0x004420e8 in parsecmd (interact=<optimized out>) at shell/ash.c:13344
+ #9 0x00442c34 in cmdloop (top=top@entry=1) at shell/ash.c:13549
+ #10 0x00444e4c in ash_main (argc=<optimized out>, argv=0x444e4c <ash_main+1328>) at shell/ash.c:14747
+ #11 0x00407954 in run_applet_no_and_exit (applet_no=9, name=<optimized out>, argv=0xbefffd34) at libbb/appletlib.c:1024
+ #12 0x00407b68 in run_applet_and_exit (name=0xbefffe56 "ash", argv=0x9) at libbb/appletlib.c:1047
+ #13 0x00407f88 in main (argc=<optimized out>, argv=0xbefffd34) at libbb/appletlib.c:1181
+
+Fixes: 82dd14a510ca ("ash: use CONFIG_FEATURE_EDITING_MAX_LEN")
+
+Signed-off-by: zhuyan <zhuyan34@huawei.com>
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+Signed-off-by: Sören Tempel <soeren+git@soeren-tempel.net>
+---
+ shell/ash.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/shell/ash.c b/shell/ash.c
+index e1d93da73..771fc8bf9 100644
+--- a/shell/ash.c
++++ b/shell/ash.c
+@@ -14484,7 +14484,7 @@ static NOINLINE void
+ init(void)
+ {
+ /* we will never free this */
+- basepf.next_to_pgetc = basepf.buf = ckmalloc(IBUFSIZ);
++ basepf.next_to_pgetc = basepf.buf = ckzalloc(IBUFSIZ);
+ basepf.linno = 1;
+
+ sigmode[SIGCHLD - 1] = S_DFL; /* ensure we install handler even if it is SIG_IGNed */
diff --git a/main/busybox/0032-install-Fix-chown-resetting-suid-sgid-bits-from-chmo.patch b/main/busybox/0032-install-Fix-chown-resetting-suid-sgid-bits-from-chmo.patch
new file mode 100644
index 00000000000..795275fa760
--- /dev/null
+++ b/main/busybox/0032-install-Fix-chown-resetting-suid-sgid-bits-from-chmo.patch
@@ -0,0 +1,53 @@
+From 6d22c9abc29d43e919e819ff004fcd84a90de60b Mon Sep 17 00:00:00 2001
+From: Nero <nero@w1r3.net>
+Date: Sat, 23 Sep 2023 11:50:04 +0000
+Subject: [PATCH] install: Fix chown resetting suid/sgid bits from chmod
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Since Linux 2.2.13, chown(2) resets the suid/gid bits for all users.
+This patch changes the ordering so that chmod gets called after chown.
+
+This behavior follows GNU coreutils.
+
+Signed-off-by: Nero <nero@w1r3.net>
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+---
+ coreutils/install.c | 16 +++++++++-------
+ 1 file changed, 9 insertions(+), 7 deletions(-)
+
+diff --git a/coreutils/install.c b/coreutils/install.c
+index c0f1c538a..00f8be87e 100644
+--- a/coreutils/install.c
++++ b/coreutils/install.c
+@@ -244,6 +244,15 @@ int install_main(int argc, char **argv)
+ }
+ }
+
++ /* Set the user and group id */
++ /* (must be before chmod, or else chown may clear suid/gid bits) */
++ if ((opts & (OPT_OWNER|OPT_GROUP))
++ && lchown(dest, uid, gid) == -1
++ ) {
++ bb_perror_msg("can't change %s of %s", "ownership", dest);
++ ret = EXIT_FAILURE;
++ }
++
+ /* Set the file mode (always, not only with -m).
+ * GNU coreutils 6.10 is not affected by umask. */
+ if (chmod(dest, mode) == -1) {
+@@ -254,13 +263,6 @@ int install_main(int argc, char **argv)
+ if (use_default_selinux_context)
+ setdefaultfilecon(dest);
+ #endif
+- /* Set the user and group id */
+- if ((opts & (OPT_OWNER|OPT_GROUP))
+- && lchown(dest, uid, gid) == -1
+- ) {
+- bb_perror_msg("can't change %s of %s", "ownership", dest);
+- ret = EXIT_FAILURE;
+- }
+ next:
+ if (ENABLE_FEATURE_CLEAN_UP && isdir)
+ free(dest);
diff --git a/main/busybox/0033-find-fix-xdev-depth-and-delete.patch b/main/busybox/0033-find-fix-xdev-depth-and-delete.patch
new file mode 100644
index 00000000000..4cd8d9bdcc8
--- /dev/null
+++ b/main/busybox/0033-find-fix-xdev-depth-and-delete.patch
@@ -0,0 +1,230 @@
+From e49db109bba7ff0b84fe7ba4f1f08405a6b72419 Mon Sep 17 00:00:00 2001
+From: Dominique Martinet <dominique.martinet@atmark-techno.com>
+Date: Fri, 27 Oct 2023 06:42:35 +0900
+Subject: [PATCH] find: fix -xdev -depth (and -delete)
+
+find -xdev with -depth would check for same_fs after the subdirectory
+has been processed (because the check is done in the file/dir action,
+which is evaluated too late in the -depth case)
+This renders `find -xdev -delete` useless, as reported in 2012 here:
+https://bugs.busybox.net/show_bug.cgi?id=5756
+
+The bug report suggested adding an extra hook, which would be required
+if we were to keep the current xdev approach that allows all filesystems
+given in argument, but GNU findutils and OpenBSD find actually stop on
+the first filesystem boundary e.g. for the following tree:
+
+$ find test -exec stat --format "%d %n" {} +
+27 test
+27 test/file
+59 test/tmpfs
+27 test/tmpfs/bind
+27 test/tmpfs/bind/file
+59 test/tmpfs/file
+(Where 'test/tmpfs' is a tmpfs, and 'test/tmpfs/bind' is a bind mount
+to a neighboring directory in the same filesystem as 'test' -- also
+tested with a symlink and -follow for openbsd which has no bind mount)
+
+Then `find test test/tmpfs -xdev` does not print test/tmpfs/bind/file.
+
+This makes the implementation much simpler (although it's a bit ugly to
+carry the parent st_dev as an argument to the function) and smaller
+code, and would allow for easy addition of rm/cp --one-file-system if
+we want to do that later.
+
+Note: this also no longer stores the stat result in 'status' in
+recursive_action1 as that was not used and doing this saves 10 bytes
+
+function old new delta
+recursive_action1 361 385 +24
+parse_params 1503 1510 +7
+recursive_action 63 65 +2
+fileAction 206 127 -79
+find_main 520 417 -103
+------------------------------------------------------------------------------
+(add/remove: 0/0 grow/shrink: 3/2 up/down: 33/-182) Total: -149 bytes
+ text data bss dec hex filename
+ 78267 1582 1552 81401 13df9 busybox_old
+ 78118 1582 1552 81252 13d64 busybox_unstripped
+---
+ findutils/find.c | 44 ++--------------------------------------
+ include/libbb.h | 1 +
+ libbb/recursive_action.c | 19 ++++++++++-------
+ 3 files changed, 15 insertions(+), 49 deletions(-)
+
+diff --git a/findutils/find.c b/findutils/find.c
+index bb6ad31e5edc..e88fbd3ba3bf 100644
+--- a/findutils/find.c
++++ b/findutils/find.c
+@@ -488,7 +488,6 @@ struct globals {
+ #endif
+ action ***actions;
+ smallint need_print;
+- smallint xdev_on;
+ smalluint exitstatus;
+ recurse_flags_t recurse_flags;
+ IF_FEATURE_FIND_EXEC_PLUS(unsigned max_argv_len;)
+@@ -988,26 +987,10 @@ static int FAST_FUNC fileAction(
+ struct stat *statbuf)
+ {
+ int r;
+- int same_fs = 1;
+-
+-#if ENABLE_FEATURE_FIND_XDEV
+- if (S_ISDIR(statbuf->st_mode) && G.xdev_count) {
+- int i;
+- for (i = 0; i < G.xdev_count; i++) {
+- if (G.xdev_dev[i] == statbuf->st_dev)
+- goto found;
+- }
+- //bb_error_msg("'%s': not same fs", fileName);
+- same_fs = 0;
+- found: ;
+- }
+-#endif
+
+ #if ENABLE_FEATURE_FIND_MAXDEPTH
+ if (state->depth < G.minmaxdepth[0]) {
+- if (same_fs)
+- return TRUE; /* skip this, continue recursing */
+- return SKIP; /* stop recursing */
++ return TRUE; /* skip this, continue recursing */
+ }
+ if (state->depth > G.minmaxdepth[1])
+ return SKIP; /* stop recursing */
+@@ -1024,11 +1007,6 @@ static int FAST_FUNC fileAction(
+ return SKIP;
+ }
+ #endif
+- /* -xdev stops on mountpoints, but AFTER mountpoit itself
+- * is processed as usual */
+- if (!same_fs) {
+- return SKIP;
+- }
+
+ /* Cannot return 0: our caller, recursive_action(),
+ * will perror() and skip dirs (if called on dir) */
+@@ -1266,7 +1244,7 @@ static action*** parse_params(char **argv)
+ #if ENABLE_FEATURE_FIND_XDEV
+ else if (parm == OPT_XDEV) {
+ dbg("%d", __LINE__);
+- G.xdev_on = 1;
++ G.recurse_flags |= ACTION_XDEV;
+ }
+ #endif
+ #if ENABLE_FEATURE_FIND_MAXDEPTH
+@@ -1685,24 +1663,6 @@ int find_main(int argc UNUSED_PARAM, char **argv)
+ G.actions = parse_params(&argv[firstopt]);
+ argv[firstopt] = NULL;
+
+-#if ENABLE_FEATURE_FIND_XDEV
+- if (G.xdev_on) {
+- struct stat stbuf;
+-
+- G.xdev_count = firstopt;
+- G.xdev_dev = xzalloc(G.xdev_count * sizeof(G.xdev_dev[0]));
+- for (i = 0; argv[i]; i++) {
+- /* not xstat(): shouldn't bomb out on
+- * "find not_exist exist -xdev" */
+- if (stat(argv[i], &stbuf) == 0)
+- G.xdev_dev[i] = stbuf.st_dev;
+- /* else G.xdev_dev[i] stays 0 and
+- * won't match any real device dev_t
+- */
+- }
+- }
+-#endif
+-
+ for (i = 0; argv[i]; i++) {
+ if (!recursive_action(argv[i],
+ G.recurse_flags,/* flags */
+diff --git a/include/libbb.h b/include/libbb.h
+index 5d0fe924eed1..d903330cccb0 100644
+--- a/include/libbb.h
++++ b/include/libbb.h
+@@ -512,6 +512,7 @@ enum {
+ ACTION_DEPTHFIRST = (1 << 3),
+ ACTION_QUIET = (1 << 4),
+ ACTION_DANGLING_OK = (1 << 5),
++ ACTION_XDEV = (1 << 6),
+ };
+ typedef uint8_t recurse_flags_t;
+ typedef struct recursive_state {
+diff --git a/libbb/recursive_action.c b/libbb/recursive_action.c
+index b1c4bfad7ccf..d4b40afdead3 100644
+--- a/libbb/recursive_action.c
++++ b/libbb/recursive_action.c
+@@ -62,13 +62,15 @@ static int FAST_FUNC true_action(struct recursive_state *state UNUSED_PARAM,
+ * ACTION_FOLLOWLINKS mainly controls handling of links to dirs.
+ * 0: lstat(statbuf). Calls fileAction on link name even if points to dir.
+ * 1: stat(statbuf). Calls dirAction and optionally recurse on link to dir.
++ *
++ * If ACTION_XDEV, stop on different filesystem _after_ it has been processed
+ */
+
+-static int recursive_action1(recursive_state_t *state, const char *fileName)
++static int recursive_action1(recursive_state_t *state, const char *fileName, dev_t parentDev)
+ {
+ struct stat statbuf;
+ unsigned follow;
+- int status;
++ int status = TRUE;
+ DIR *dir;
+ struct dirent *next;
+
+@@ -76,8 +78,7 @@ static int recursive_action1(recursive_state_t *state, const char *fileName)
+ if (state->depth == 0)
+ follow = ACTION_FOLLOWLINKS | ACTION_FOLLOWLINKS_L0;
+ follow &= state->flags;
+- status = (follow ? stat : lstat)(fileName, &statbuf);
+- if (status < 0) {
++ if ((follow ? stat : lstat)(fileName, &statbuf) < 0) {
+ #ifdef DEBUG_RECURS_ACTION
+ bb_error_msg("status=%d flags=%x", status, state->flags);
+ #endif
+@@ -114,6 +115,10 @@ static int recursive_action1(recursive_state_t *state, const char *fileName)
+ return TRUE;
+ }
+
++ /* skip cross devices -- we still need to process action */
++ if ((state->flags & ACTION_XDEV) && parentDev != 0 && statbuf.st_dev != parentDev)
++ goto skip_recurse;
++
+ dir = opendir(fileName);
+ if (!dir) {
+ /* findutils-4.1.20 reports this */
+@@ -121,7 +126,6 @@ static int recursive_action1(recursive_state_t *state, const char *fileName)
+ /* To trigger: "find -exec rm -rf {} \;" */
+ goto done_nak_warn;
+ }
+- status = TRUE;
+ while ((next = readdir(dir)) != NULL) {
+ char *nextFile;
+ int s;
+@@ -132,7 +136,7 @@ static int recursive_action1(recursive_state_t *state, const char *fileName)
+
+ /* process every file (NB: ACTION_RECURSE is set in flags) */
+ state->depth++;
+- s = recursive_action1(state, nextFile);
++ s = recursive_action1(state, nextFile, statbuf.st_dev);
+ if (s == FALSE)
+ status = FALSE;
+ free(nextFile);
+@@ -146,6 +150,7 @@ static int recursive_action1(recursive_state_t *state, const char *fileName)
+ }
+ closedir(dir);
+
++skip_recurse:
+ if (state->flags & ACTION_DEPTHFIRST) {
+ if (!state->dirAction(state, fileName, &statbuf))
+ goto done_nak_warn;
+@@ -177,5 +182,5 @@ int FAST_FUNC recursive_action(const char *fileName,
+ state.fileAction = fileAction ? fileAction : true_action;
+ state.dirAction = dirAction ? dirAction : true_action;
+
+- return recursive_action1(&state, fileName);
++ return recursive_action1(&state, fileName, 0);
+ }
+--
+2.39.2
+
diff --git a/main/busybox/0034-udhcp-Avoid-leaking-uninitialized-stale-data.patch b/main/busybox/0034-udhcp-Avoid-leaking-uninitialized-stale-data.patch
new file mode 100644
index 00000000000..d61c5fbfb93
--- /dev/null
+++ b/main/busybox/0034-udhcp-Avoid-leaking-uninitialized-stale-data.patch
@@ -0,0 +1,75 @@
+From e265c8d4c039729f2a68f3b1fb589c13c38d86f8 Mon Sep 17 00:00:00 2001
+From: Russ Dill <russ.dill@gmail.com>
+Date: Mon, 2 Oct 2023 12:34:50 -0700
+Subject: [PATCH] udhcp: Avoid leaking uninitialized/stale data
+
+I noticed a commit in connman:
+
+"gdhcp: Avoid leaking stack data via unitiialized variable" [1]
+
+Since gdhcp is just BusyBox udhcp with the serial numbers filed off, I
+checked if BusyBox udhcp has a related issue.
+
+The issue is that the get_option logic assumes any data within the
+memory area of the buffer is "valid". This reduces the complexity of the
+function at the cost of reading past the end of the actually received
+data in the case of specially crafted packets. This is not a problem
+for the udhcp_recv_kernel_packet data path as the entire memory
+area is zeroed. However, d4/d6_recv_raw_packet does not zero the
+memory.
+
+Note that a related commit [2] is not required as we are zeroing
+any data that can be read by the get_option function.
+
+[1] https://git.kernel.org/pub/scm/network/connman/connman.git/commit/?id=a74524b3e3fad81b0fd1084ffdf9f2ea469cd9b1
+[2] https://git.kernel.org/pub/scm/network/connman/connman.git/commit/?id=58d397ba74873384aee449690a9070bacd5676fa
+
+function old new delta
+d4_recv_raw_packet 484 497 +13
+d6_recv_raw_packet 216 228 +12
+.rodata 105390 105381 -9
+------------------------------------------------------------------------------
+(add/remove: 0/0 grow/shrink: 2/1 up/down: 25/-9) Total: 16 bytes
+
+Signed-off-by: Russ Dill <russ.dill@gmail.com>
+Cc: Colin Wee <cwee@tesla.com>
+Cc: Denys Vlasenko <vda.linux@googlemail.com>
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+---
+ networking/udhcp/d6_dhcpc.c | 1 +
+ networking/udhcp/dhcpc.c | 3 ++-
+ 2 files changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/networking/udhcp/d6_dhcpc.c b/networking/udhcp/d6_dhcpc.c
+index cdd06188e..a72fd31bd 100644
+--- a/networking/udhcp/d6_dhcpc.c
++++ b/networking/udhcp/d6_dhcpc.c
+@@ -961,6 +961,7 @@ static NOINLINE int d6_recv_raw_packet(struct in6_addr *peer_ipv6, struct d6_pac
+ d6_dump_packet(&packet.data);
+
+ bytes -= sizeof(packet.ip6) + sizeof(packet.udp);
++ memset(d6_pkt, 0, sizeof(*d6_pkt));
+ memcpy(d6_pkt, &packet.data, bytes);
+ return bytes;
+ }
+diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c
+index 200a2fb8a..07e2eadfe 100644
+--- a/networking/udhcp/dhcpc.c
++++ b/networking/udhcp/dhcpc.c
+@@ -966,7 +966,7 @@ static NOINLINE int d4_recv_raw_packet(struct dhcp_packet *dhcp_pkt, int fd)
+ check = packet.udp.check;
+ packet.udp.check = 0;
+ if (check && check != inet_cksum(&packet, bytes)) {
+- log1s("packet with bad UDP checksum received, ignoring");
++ log1s("packet with bad UDP checksum, ignoring");
+ return -2;
+ }
+ skip_udp_sum_check:
+@@ -981,6 +981,7 @@ static NOINLINE int d4_recv_raw_packet(struct dhcp_packet *dhcp_pkt, int fd)
+ udhcp_dump_packet(&packet.data);
+
+ bytes -= sizeof(packet.ip) + sizeof(packet.udp);
++ memset(dhcp_pkt, 0, sizeof(*dhcp_pkt));
+ memcpy(dhcp_pkt, &packet.data, bytes);
+ return bytes;
+ }
diff --git a/main/busybox/0035-ash-fix-handling-of-single-quoted-strings-in-pattern.patch b/main/busybox/0035-ash-fix-handling-of-single-quoted-strings-in-pattern.patch
new file mode 100644
index 00000000000..eace128fb9c
--- /dev/null
+++ b/main/busybox/0035-ash-fix-handling-of-single-quoted-strings-in-pattern.patch
@@ -0,0 +1,90 @@
+From c5a1be25ba6dd705382ce6c25d96a32f79974c04 Mon Sep 17 00:00:00 2001
+From: Denys Vlasenko <vda.linux@googlemail.com>
+Date: Mon, 26 Feb 2024 16:26:15 +0100
+Subject: [PATCH] ash: fix handling of single-quoted strings in pattern
+ substitution
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+function old new delta
+subevalvar 1576 1588 +12
+
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+Signed-off-by: Sören Tempel <soeren+git@soeren-tempel.net>
+---
+ shell/ash.c | 5 +++++
+ shell/ash_test/ash-quoting/dollar_repl_bash2.right | 4 ++++
+ shell/ash_test/ash-quoting/dollar_repl_bash2.tests | 8 ++++++++
+ shell/hush_test/hush-quoting/dollar_repl_bash2.right | 4 ++++
+ shell/hush_test/hush-quoting/dollar_repl_bash2.tests | 8 ++++++++
+ 5 files changed, 29 insertions(+)
+ create mode 100644 shell/ash_test/ash-quoting/dollar_repl_bash2.right
+ create mode 100755 shell/ash_test/ash-quoting/dollar_repl_bash2.tests
+ create mode 100644 shell/hush_test/hush-quoting/dollar_repl_bash2.right
+ create mode 100755 shell/hush_test/hush-quoting/dollar_repl_bash2.tests
+
+diff --git a/shell/ash.c b/shell/ash.c
+index 771fc8bf9..4ca4c6c56 100644
+--- a/shell/ash.c
++++ b/shell/ash.c
+@@ -7073,6 +7073,11 @@ subevalvar(char *start, char *str, int strloc,
+ repl = NULL;
+ break;
+ }
++ /* Skip over quoted 'str'. Example: ${var/'/'} - second / is not a separator */
++ if ((unsigned char)*repl == CTLQUOTEMARK) {
++ while ((unsigned char)*++repl != CTLQUOTEMARK)
++ continue;
++ }
+ if (*repl == '/') {
+ *repl = '\0';
+ break;
+diff --git a/shell/ash_test/ash-quoting/dollar_repl_bash2.right b/shell/ash_test/ash-quoting/dollar_repl_bash2.right
+new file mode 100644
+index 000000000..e3fcd5807
+--- /dev/null
++++ b/shell/ash_test/ash-quoting/dollar_repl_bash2.right
+@@ -0,0 +1,4 @@
++axxb
++axxb
++axxb
++axxb
+diff --git a/shell/ash_test/ash-quoting/dollar_repl_bash2.tests b/shell/ash_test/ash-quoting/dollar_repl_bash2.tests
+new file mode 100755
+index 000000000..45c7a10e2
+--- /dev/null
++++ b/shell/ash_test/ash-quoting/dollar_repl_bash2.tests
+@@ -0,0 +1,8 @@
++v="x/x"
++# The second / is quoted, should not be treated as separator
++echo a${v/'/'}b
++# The second / is escaped, should not be treated as separator
++echo a${v/\/}b
++
++echo "a${v/'/'}b"
++echo "a${v/\/}b"
+diff --git a/shell/hush_test/hush-quoting/dollar_repl_bash2.right b/shell/hush_test/hush-quoting/dollar_repl_bash2.right
+new file mode 100644
+index 000000000..e3fcd5807
+--- /dev/null
++++ b/shell/hush_test/hush-quoting/dollar_repl_bash2.right
+@@ -0,0 +1,4 @@
++axxb
++axxb
++axxb
++axxb
+diff --git a/shell/hush_test/hush-quoting/dollar_repl_bash2.tests b/shell/hush_test/hush-quoting/dollar_repl_bash2.tests
+new file mode 100755
+index 000000000..45c7a10e2
+--- /dev/null
++++ b/shell/hush_test/hush-quoting/dollar_repl_bash2.tests
+@@ -0,0 +1,8 @@
++v="x/x"
++# The second / is quoted, should not be treated as separator
++echo a${v/'/'}b
++# The second / is escaped, should not be treated as separator
++echo a${v/\/}b
++
++echo "a${v/'/'}b"
++echo "a${v/\/}b"
diff --git a/main/busybox/0036-fix-dos-in-math.patch b/main/busybox/0036-fix-dos-in-math.patch
new file mode 100644
index 00000000000..0fb95fea741
--- /dev/null
+++ b/main/busybox/0036-fix-dos-in-math.patch
@@ -0,0 +1,31 @@
+From cc9543fed1f916f62a63cfbe9eaefba3df8e22cb Mon Sep 17 00:00:00 2001
+From: Denys Vlasenko <vda.linux@googlemail.com>
+Date: Sun, 2 Jul 2023 19:32:12 +0200
+Subject: shell/math: avoid $((3**999999999999999999)) to take years
+
+diff --git a/shell/math.c b/shell/math.c
+index b06d1ae3c..e90a38f05 100644
+--- a/shell/math.c
++++ b/shell/math.c
+@@ -422,8 +422,19 @@ arith_apply(arith_state_t *math_state, operator op, var_or_num_t *numstack, var_
+ if (right_side_val < 0)
+ return "exponent less than 0";
+ c = 1;
+- while (--right_side_val >= 0)
++ while (right_side_val != 0) {
++ if ((right_side_val & 1) == 0) {
++ /* this if() block is not necessary for correctness,
++ * but otherwise echo $((3**999999999999999999))
++ * takes a VERY LONG time
++ * (and it's not interruptible by ^C)
++ */
++ rez *= rez;
++ right_side_val >>= 1;
++ }
+ c *= rez;
++ right_side_val--;
++ }
+ rez = c;
+ }
+ else /*if (op == TOK_DIV || op == TOK_DIV_ASSIGN
+--
diff --git a/main/busybox/0037-awk.c-fix-CVE-2023-42366-bug-15874.patch b/main/busybox/0037-awk.c-fix-CVE-2023-42366-bug-15874.patch
new file mode 100644
index 00000000000..177e174b493
--- /dev/null
+++ b/main/busybox/0037-awk.c-fix-CVE-2023-42366-bug-15874.patch
@@ -0,0 +1,34 @@
+From 5cf8b332429a1dd9afef3337bae92aeddaeff993 Mon Sep 17 00:00:00 2001
+From: Valery Ushakov <uwe@stderr.spb.ru>
+Date: Wed, 24 Jan 2024 22:24:41 +0300
+Subject: [PATCH] awk.c: fix CVE-2023-42366 (bug #15874)
+
+Make sure we don't read past the end of the string in next_token()
+when backslash is the last character in an (invalid) regexp.
+
+https://bugs.busybox.net/show_bug.cgi?id=15874
+---
+ editors/awk.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/editors/awk.c b/editors/awk.c
+index 728ee8685..be48df7c7 100644
+--- a/editors/awk.c
++++ b/editors/awk.c
+@@ -1165,9 +1165,11 @@ static uint32_t next_token(uint32_t expected)
+ s[-1] = bb_process_escape_sequence((const char **)&pp);
+ if (*p == '\\')
+ *s++ = '\\';
+- if (pp == p)
++ if (pp == p) {
++ if (*p == '\0')
++ syntax_error(EMSG_UNEXP_EOS);
+ *s++ = *p++;
+- else
++ } else
+ p = pp;
+ }
+ }
+--
+2.34.1
+
diff --git a/main/busybox/0038-tsort-avoid-use-after-free.patch b/main/busybox/0038-tsort-avoid-use-after-free.patch
new file mode 100644
index 00000000000..8f23e37d6d7
--- /dev/null
+++ b/main/busybox/0038-tsort-avoid-use-after-free.patch
@@ -0,0 +1,80 @@
+From 2cc9d436e80632157b99e18d413a62b2d44d321a Mon Sep 17 00:00:00 2001
+From: Ron Yorston <rmy@pobox.com>
+Date: Tue, 22 Aug 2023 09:38:03 +0100
+Subject: tsort: avoid use-after-free
+
+When the input data contained a cycle it was possible for tsort to
+attempt to access freed nodes. This sometimes resulted in the
+test case 'echo a b b a | tsort' crashing.
+
+Don't free nodes when they're removed from the graph.
+
+function old new delta
+tsort_main 621 596 -25
+------------------------------------------------------------------------------
+(add/remove: 0/0 grow/shrink: 0/1 up/down: 0/-25) Total: -25 bytes
+
+Signed-off-by: Ron Yorston <rmy@pobox.com>
+Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
+---
+ coreutils/tsort.c | 20 +++++++++++++++++---
+ 1 file changed, 17 insertions(+), 3 deletions(-)
+
+diff --git a/coreutils/tsort.c b/coreutils/tsort.c
+index a451ed2ff..e1ee6bcd7 100644
+--- a/coreutils/tsort.c
++++ b/coreutils/tsort.c
+@@ -101,6 +101,10 @@ int tsort_main(int argc UNUSED_PARAM, char **argv)
+ ssize_t len;
+ struct node *a;
+ int cycles;
++ unsigned i;
++#if ENABLE_FEATURE_CLEAN_UP
++ unsigned max_len;
++#endif
+
+ INIT_G();
+
+@@ -152,9 +156,11 @@ int tsort_main(int argc UNUSED_PARAM, char **argv)
+ * - if any nodes are left, they form cycles.
+ */
+ cycles = 0;
++#if ENABLE_FEATURE_CLEAN_UP
++ max_len = G.nodes_len;
++#endif
+ while (G.nodes_len) {
+ struct node *n;
+- unsigned i;
+
+ /* Search for first node with no incoming edges */
+ for (i = 0; i < G.nodes_len; i++) {
+@@ -173,16 +179,24 @@ int tsort_main(int argc UNUSED_PARAM, char **argv)
+ /* Remove the node (need no longer maintain sort) */
+ n = G.nodes[i];
+ G.nodes[i] = G.nodes[--G.nodes_len];
++#if ENABLE_FEATURE_CLEAN_UP
++ /* Keep reference to removed node so it can be freed */
++ G.nodes[G.nodes_len] = n;
++#endif
+
+ /* And remove its outgoing edges */
+ for (i = 0; i < n->out_count; i++)
+ n->out[i]->in_count--;
+- free(n->out);
+
+ puts(n->name);
+- free(n);
++ }
++#if ENABLE_FEATURE_CLEAN_UP
++ for (i = 0; i < max_len; i++) {
++ free(G.nodes[i]->out);
++ free(G.nodes[i]);
+ }
+ free(G.nodes);
++#endif
+
+ fflush_stdout_and_exit(cycles ? 1 : 0);
+ }
+--
+cgit v1.2.3
+
diff --git a/main/busybox/APKBUILD b/main/busybox/APKBUILD
index 7c685460e2e..fb15152e280 100644
--- a/main/busybox/APKBUILD
+++ b/main/busybox/APKBUILD
@@ -4,60 +4,89 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Sören Tempel <soeren+alpine@soeren-tempel.net>
pkgname=busybox
-pkgver=1.35.0
-pkgrel=17
+pkgver=1.36.1
+pkgrel=25
pkgdesc="Size optimized toolbox of many common UNIX utilities"
url="https://busybox.net/"
arch="all"
license="GPL-2.0-only"
makedepends_build="perl"
-makedepends_host="linux-headers openssl-dev"
-# Only build with UTMPS support if we are not bootstraping.
+makedepends_host="linux-headers openssl-dev>3"
+# Only build with utmps support if we are not bootstraping.
# skalibs-static is needed for utmps-static
[ -z "$BOOTSTRAP" ] && makedepends_host="$makedepends_host utmps-dev utmps-static skalibs-static"
makedepends="$makedepends_build $makedepends_host"
checkdepends="zip"
-provides="/bin/sh"
-provider_priority=100
install="$pkgname.post-install $pkgname.post-upgrade
$pkgname-extras.post-install $pkgname-extras.pre-deinstall"
-subpackages="$pkgname-static $pkgname-doc $pkgname-suid $pkgname-extras ssl_client $pkgname-ifupdown"
+subpackages="
+ $pkgname-static
+ $pkgname-doc
+ $pkgname-suid
+ ssl_client
+ $pkgname-ifupdown::noarch
+ $pkgname-binsh::noarch
+ $pkgname-openrc
+ $pkgname-mdev-openrc:mdev_openrc
+ $pkgname-extras
+ $pkgname-extras-openrc:extras_openrc
+ "
options="suid net" # net needed for check()
replaces="busybox-initscripts" # move of default.script
triggers="busybox.trigger=/bin:/usr/bin:/sbin:/usr/sbin:/lib/modules/*"
+
+_openrc_files="acpid.initd
+ crond.confd crond.initd
+ klogd.confd klogd.initd
+ ntpd.confd ntpd.initd
+ rdate.confd rdate.initd
+ syslog.confd syslog.initd
+ loadkmap.confd loadkmap.initd
+ watchdog.confd watchdog.initd"
+_mdev_openrc_files="mdev.initd"
+_extras_openrc_files="dnsd.initd httpd.initd inetd.initd udhcpd.initd"
+
source="https://busybox.net/downloads/busybox-$pkgver.tar.bz2
- 0001-nologin-Install-applet-to-sbin-instead-of-usr-sbin.patch
- 0001-adduser-default-to-sbin-nologin-as-shell-for-system-.patch
- 0001-properly-fix-wget-https-support.patch
- 0001-modutils-check-ELF-header-before-calling-finit_module.patch
- 0002-fsck-resolve-LABEL-.-UUID-.-spec-to-device.patch
- 0003-ash-exec-busybox.static.patch
- 0004-app-location-for-cpio-vi-and-lspci.patch
- 0005-udhcpc-set-default-discover-retries-to-5.patch
- 0006-ping-make-ping-work-without-root-privileges.patch
- 0007-fbsplash-support-console-switching.patch
- 0008-fbsplash-support-image-and-bar-alignment-and-positio.patch
- 0009-depmod-support-generating-kmod-binary-index-files.patch
- 0010-Add-flag-for-not-following-symlinks-when-recursing.patch
- 0012-udhcpc-Don-t-background-if-n-is-given.patch
- 0013-ash-fix-unsafe-use-of-mempcpy.patch
- 0014-ash-fix-use-after-free-in-bash-pattern-substitution.patch
- 0015-ed-don-t-use-memcpy-with-overlapping-memory-regions.patch
- 0016-ash-don-t-read-past-end-of-var-in-subvareval-for-bas.patch
- 0017-ash-Fix-use-after-free-on-idx-variable.patch
-
- 0001-ash-add-built-in-BB_ASH_VERSION-variable.patch
-
- 0001-pgrep-add-support-for-matching-against-UID-and-RUID.patch
-
- 0001-avoid-redefined-warnings-when-building-with-utmps.patch
- test-fix-tarball-creation.patch
- test-timezone-workaround.patch
-
- 0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch
- 0002-nslookup-sanitize-all-printed-strings-with-printable.patch
- 0001-modinfo-add-k-option-for-kernel-version.patch
- CVE-2022-30065.patch
+ 0001-modutils-check-ELF-header-before-calling-finit_modul.patch
+ 0002-adduser-default-to-sbin-nologin-as-shell-for-system-.patch
+ 0003-ash-add-built-in-BB_ASH_VERSION-variable.patch
+ 0004-Avoid-redefined-warnings-when-buiding-with-utmps.patch
+ 0005-libbb-sockaddr2str-ensure-only-printable-characters-.patch
+ 0006-modinfo-add-k-option-for-kernel-version.patch
+ 0007-nologin-Install-applet-to-sbin-instead-of-usr-sbin.patch
+ 0008-pgrep-add-support-for-matching-against-UID-and-RUID.patch
+ 0009-properly-fix-wget-https-support.patch
+ 0010-sed-check-errors-writing-file-with-sed-i.patch
+ 0011-fsck-resolve-LABEL-.-UUID-.-spec-to-device.patch
+ 0012-nslookup-sanitize-all-printed-strings-with-printable.patch
+ 0013-ash-exec-busybox.static.patch
+ 0014-app-location-for-cpio-vi-and-lspci.patch
+ 0015-udhcpc-set-default-discover-retries-to-5.patch
+ 0016-ping-make-ping-work-without-root-privileges.patch
+ 0017-fbsplash-support-console-switching.patch
+ 0018-fbsplash-support-image-and-bar-alignment-and-positio.patch
+ 0019-depmod-support-generating-kmod-binary-index-files.patch
+ 0020-Add-flag-for-not-following-symlinks-when-recursing.patch
+ 0021-udhcpc-Don-t-background-if-n-is-given.patch
+
+ 0023-tests-fix-tarball-creation.patch
+ 0024-tests-musl-doesn-t-seem-to-recognize-UTC0-as-a-timez.patch
+ 0025-Hackfix-to-disable-HW-acceleration-for-MD5-SHA1-on-x.patch
+ 0026-lineedit-Handle-SIGWINCH-gracefully.patch
+ 0027-umount-Implement-O-option-to-unmount-by-mount-option.patch
+ 0028-ash-use-after-free-in-bash-pattern-substitution.patch
+ 0029-awk-fix-use-after-realloc-CVE-2021-42380-closes-1560.patch
+ 0030-shell-avoid-segfault-on-0-0-0-09J-.-Closes-15216.patch
+ 0031-ash-initialize-basepf.buf-in-ash.patch
+ 0032-install-Fix-chown-resetting-suid-sgid-bits-from-chmo.patch
+ 0033-find-fix-xdev-depth-and-delete.patch
+ 0034-udhcp-Avoid-leaking-uninitialized-stale-data.patch
+ 0035-ash-fix-handling-of-single-quoted-strings-in-pattern.patch
+ 0036-fix-dos-in-math.patch
+ 0037-awk.c-fix-CVE-2023-42366-bug-15874.patch
+ 0038-tsort-avoid-use-after-free.patch
+
+ 0001-wget-add-header-Accept.patch
acpid.logrotate
busyboxconfig
@@ -66,9 +95,17 @@ source="https://busybox.net/downloads/busybox-$pkgver.tar.bz2
dad.if-up
ssl_client.c
default.script
- "
+ udhcpc.conf
+ $_openrc_files
+ $_mdev_openrc_files
+ $_extras_openrc_files
+"
# secfixes:
+# 1.36.1-r25:
+# - CVE-2023-42366
+# 1.36.1-r2:
+# - CVE-2022-48174
# 1.35.0-r17:
# - CVE-2022-30065
# 1.35.0-r7:
@@ -103,7 +140,6 @@ source="https://busybox.net/downloads/busybox-$pkgver.tar.bz2
# - CVE-2021-42376
# - CVE-2021-42377
-
_staticdir="$srcdir"/build-static
_dyndir="$srcdir"/build-dynamic
_dyndir_extras="$srcdir"/build-dynamic-extras
@@ -119,15 +155,21 @@ prepare() {
}
build() {
+ local _extra_cflags= _extra_libs=
+ if [ -z "$BOOTSTRAP" ] ; then
+ _extra_cflags="$(pkg-config --cflags --static utmps)"
+ _extra_libs="$(pkg-config --libs --static utmps)"
+ fi
+
# build bbsuid
msg "Building bbsuid"
- ${CC:-${CROSS_COMPILE}gcc} ${CPPFLAGS} ${CFLAGS} \
- ${LDFLAGS} "$srcdir"/bbsuid.c -o "$_dyndir"/bbsuid
+ ${CC:-${CROSS_COMPILE}gcc} $CPPFLAGS $CFLAGS \
+ $LDFLAGS "$srcdir"/bbsuid.c -o "$_dyndir"/bbsuid
msg "Building ssl_client"
# shellcheck disable=SC2046 # Allow wordsplitting for pkg-config
- ${CC:-${CROSS_COMPILE}gcc} ${CPPFLAGS} ${CFLAGS} $(pkg-config --cflags libcrypto libssl) \
- "$srcdir"/ssl_client.c -o "$_dyndir"/ssl_client ${LDFLAGS} $(pkg-config --libs libcrypto libssl)
+ ${CC:-${CROSS_COMPILE}gcc} $CPPFLAGS $CFLAGS $(pkg-config --cflags libcrypto libssl) \
+ "$srcdir"/ssl_client.c -o "$_dyndir"/ssl_client $LDFLAGS $(pkg-config --libs libcrypto libssl)
# build dynamic
cd "$_dyndir"
@@ -138,14 +180,6 @@ build() {
-e "s/CONFIG_EXTRA_COMPAT=y/CONFIG_EXTRA_COMPAT=n/" \
.config
make -C "$builddir" O="$PWD" silentoldconfig
-
- local _extra_cflags="" _extra_libs=""
- if [ -z "$BOOTSTRAP" ]; then
- _extra_cflags="$(pkg-config --cflags --static utmps)"
- _extra_libs="$(pkg-config --libs --static utmps)"
- fi
-
- # NOTE: Defining CONFIG_EXTRA_LDLIBS in .config doesn't work, the second -l is ignored.
make CONFIG_EXTRA_CFLAGS="$_extra_cflags" CONFIG_EXTRA_LDLIBS="$_extra_libs"
# build dynamic (extras)
@@ -156,7 +190,10 @@ build() {
-e "s/CONFIG_EXTRA_COMPAT=y/CONFIG_EXTRA_COMPAT=n/" \
.config
make -C "$builddir" O="$PWD" silentoldconfig
- make
+ make CONFIG_EXTRA_CFLAGS="$_extra_cflags" CONFIG_EXTRA_LDLIBS="$_extra_libs"
+ # Yes, the above command line is verbose, but it needs to be duplicated verbatim
+ # for every build. Because the busybox build system is extremely brittle and
+ # breaks on *any* attempt to factorize it.
# build static
cd "$_staticdir"
@@ -171,31 +208,44 @@ build() {
-e "s/CONFIG_EXTRA_COMPAT=y/CONFIG_EXTRA_COMPAT=n/" \
.config
make -C "$builddir" O="$PWD" silentoldconfig
- make
+ make CONFIG_EXTRA_CFLAGS="$_extra_cflags" CONFIG_EXTRA_LDLIBS="$_extra_libs"
mv busybox busybox.static
}
check() {
+ local _extra_cflags= _extra_libs=
+ if [ -z "$BOOTSTRAP" ] ; then
+ _extra_cflags="$(pkg-config --cflags --static utmps)"
+ _extra_libs="$(pkg-config --libs --static utmps)"
+ fi
+
# Set VERBOSE to see expected outcome of each test (runtest -v flag).
# Set DEBUG to enable command trace (see testsuite/testing.sh).
cd "$_dyndir"
- SKIP_KNOWN_BUGS=1 make -C "$builddir" O="$PWD" V=1 check
+ SKIP_KNOWN_BUGS=1 make -C "$builddir" O="$PWD" V=1 check CONFIG_EXTRA_CFLAGS="$_extra_cflags" CONFIG_EXTRA_LDLIBS="$_extra_libs"
cd "$_dyndir_extras"
- SKIP_KNOWN_BUGS=1 make -C "$builddir" O="$PWD" V=1 check
+ SKIP_KNOWN_BUGS=1 make -C "$builddir" O="$PWD" V=1 check CONFIG_EXTRA_CFLAGS="$_extra_cflags" CONFIG_EXTRA_LDLIBS="$_extra_libs"
}
package() {
- cd "$_dyndir"
+ local file
mkdir -p "$pkgdir"/usr/sbin "$pkgdir"/usr/bin "$pkgdir"/tmp \
"$pkgdir"/var/cache/misc "$pkgdir"/bin "$pkgdir"/sbin \
- "$pkgdir"/usr/share/man/man1
+ "$pkgdir"/usr/share/man/man1 \
+ "$pkgdir"/etc/conf.d "$pkgdir"/etc/init.d
chmod 1777 "$pkgdir"/tmp
- install -m755 busybox "$pkgdir"/bin/busybox
- # we need /bin/sh to be able to execute post-install
- ln -s /bin/busybox "$pkgdir"/bin/sh
+ cd "$srcdir"
+ for file in *.confd ; do
+ install -D -m 0644 $file "$pkgdir"/etc/conf.d/${file%%\.confd}
+ done
+ for file in *.initd ; do
+ install -D -m 0755 $file "$pkgdir"/etc/init.d/${file%%\.initd}
+ done
+ cd "$_dyndir"
+ install -m755 busybox "$pkgdir"/bin/busybox
install -m 644 docs/busybox.1 "$pkgdir"/usr/share/man/man1/busybox.1
#ifupdown needs those dirs to be present
@@ -211,11 +261,10 @@ package() {
install -Dm644 "$srcdir"/acpid.logrotate \
"$pkgdir/etc/logrotate.d/acpid"
- mkdir -p "$pkgdir"/var/lib/udhcpd
- install -Dm644 "$builddir"/examples/udhcp/udhcpd.conf \
- "$pkgdir"/etc/udhcpd.conf
+ install -Dm644 "$srcdir"/udhcpc.conf "$pkgdir"/etc/udhcpc/udhcpc.conf
cat >"$pkgdir"/etc/securetty <<EOF
console
+tty0
tty1
tty2
tty3
@@ -230,25 +279,53 @@ tty11
hvc0
ttyS0
ttyS1
+ttyS2
+ttyGS0
ttyAMA0
ttyAMA1
+ttyTCU0
+ttyTHS0
+ttyTHS1
+ttymxc0
+ttymxc2
EOF
# script for udhcpc
install -Dm755 "$srcdir"/default.script \
"$pkgdir"/usr/share/udhcpc/default.script
+ # Install a list of symlinks installed by busybox. This is useful for
+ # building and analyzing Alpine-based images which contain busybox, where
+ # you don't want to run busybox --list-path at analysis or build time.
+ if [ "$CHOST" = "$CBUILD" ]; then
+ mkdir -p "$pkgdir"/etc/busybox-paths.d
+ "$pkgdir"/bin/busybox --list-path > "$pkgdir"/etc/busybox-paths.d/busybox
+ fi
}
extras() {
pkgdesc="Additional binaries of Busybox"
- depends="$pkgname"
+ depends="$pkgname=$pkgver-r$pkgrel"
install -Dm755 "$_dyndir_extras"/busybox "$subpkgdir"/bin/busybox-extras
+
+ # Install a list of symlinks installed by busybox-extras. This is useful for
+ # building and analyzing Alpine-based images which contain busybox, where
+ # you don't want to run busybox --list-path at analysis or build time.
+ if [ "$CHOST" = "$CBUILD" ]; then
+ mkdir -p "$subpkgdir"/etc/busybox-paths.d
+ "$subpkgdir"/bin/busybox-extras --list-path > "$subpkgdir"/etc/busybox-paths.d/busybox-extras
+ fi
+
+ # Configuration file and lease directory used by udhcpd which
+ # is part of busybox-extras, hence the files are installed here.
+ mkdir -p "$subpkgdir"/var/lib/udhcpd
+ install -Dm644 "$builddir"/examples/udhcp/udhcpd.conf \
+ "$subpkgdir"/etc/udhcpd.conf
}
suid() {
pkgdesc="suid binaries of Busybox"
- depends="$pkgname"
+ depends="$pkgname=$pkgver-r$pkgrel"
cd "$_dyndir"
mkdir -p "$subpkgdir"/bin
@@ -266,7 +343,7 @@ ssl_client() {
pkgdesc="EXternal ssl_client for busybox wget"
local _sslver=$(pkg-config --modversion libssl)
# automatically pull in if both busybox and libssl is installed
- install_if="$pkgname=$pkgver-r$pkgrel libssl${_sslver%.*}"
+ install_if="$pkgname=$pkgver-r$pkgrel libssl${_sslver%%.*}"
mkdir -p "$subpkgdir"/usr/bin
install -m755 "$_dyndir"/ssl_client \
"$subpkgdir"/usr/bin/ssl_client
@@ -279,41 +356,117 @@ ifupdown() {
mkdir -p "$subpkgdir"
}
+binsh() {
+ pkgdesc="busybox ash /bin/sh"
+ provides="/bin/sh"
+ provider_priority=100
+
+ mkdir -p "$subpkgdir"/bin
+
+ ln -s /bin/busybox "$subpkgdir"/bin/sh
+}
+
+_helper_openrc() {
+ local file
+ for file ; do
+ if test ${file%%\.confd} != $file ; then
+ amove "etc/conf.d/${file%%\.confd}"
+ elif test ${file%%\.initd} != $file ; then
+ amove "etc/init.d/${file%%\.initd}"
+ fi
+ done
+}
+
+openrc() {
+ depends="openrc>=0.24.1-r6"
+ replaces="openntpd busybox-initscripts acpid-openrc"
+ _helper_openrc $_openrc_files
+ # poweroff script for acpid
+ mkdir -p "$subpkgdir"/etc/acpi/PWRF
+ { echo '#!/bin/sh' ; echo poweroff ; } > "$subpkgdir"/etc/acpi/PWRF/00000080
+ chmod 0755 "$subpkgdir"/etc/acpi/PWRF/00000080
+}
+
+mdev_openrc() {
+ depends="openrc>=0.24.1-r6 mdev-conf"
+ replaces="busybox-initscripts"
+ provides="dev-openrc"
+ provider_priority=30
+ _helper_openrc $_mdev_openrc_files
+}
+
+extras_openrc() {
+ depends="openrc>=0.24.1-r6 busybox-extras"
+ replaces="busybox-initscripts"
+ _helper_openrc $_extras_openrc_files
+}
+
sha512sums="
-62b2e718b6669271380445ed6db249618d777a4e8d5e6d879fa39ffee43887b6a2e93ceef874c615c565ad492deb772b03a19b7475c403202741579fb151e16a busybox-1.35.0.tar.bz2
-ead3403578c071c2216de17ab0543984c1f1509c12c062f03af49141547c3ea21356f3e8f0f0695550f05a41a1379dd73fc3cc18dcd78addbb411f247351e353 0001-nologin-Install-applet-to-sbin-instead-of-usr-sbin.patch
-a2787a3ecaf6746dadef62166e8ee6ecaa166147e5ad8b917c5838536057c875bab5f9cf40c3e05eba74d575484ac662929ac3799d58432d3a99ac46f364f302 0001-adduser-default-to-sbin-nologin-as-shell-for-system-.patch
-1efe1c4894ae983fed5ac848125f8603f157b9d91c952c53f4192b48d3e50967e05559851148397b583f34fb02d480393547904b4635e4248248be567ab268ea 0001-properly-fix-wget-https-support.patch
-0cac9b944928500293e366b42e03211d4159d05b622da60664825e5ee87c9bf6d5a8ea5e794584713f7464efb4cdc431e02f439c717b7e62b1864a228bc8cbac 0001-modutils-check-ELF-header-before-calling-finit_module.patch
-d8694293edc8cd55cecafeb902f03c01af318e13966f399365cf792b840793891ac086bb67ef83e7a5a2e01b246497a6c6511cb6a856834f6672dee4bca76896 0002-fsck-resolve-LABEL-.-UUID-.-spec-to-device.patch
-8c34dd5ce9a6e84279fa6494cbae0b254778976f341af1d0ccc2a3afb405fb22d374e9623ea83d1500da77c7463db2ed5218d2c9f49350a21114bd0bb17fd87d 0003-ash-exec-busybox.static.patch
-f9745497abd4d04621f089c62d9f2104c30d54f342125f597292253f2974d385c5f4a46e7d87a5d1b641b11b34ba5221183dd5dad1e3bbe74a787fb8d6a994b7 0004-app-location-for-cpio-vi-and-lspci.patch
-f12916e70f7cc1ef4f6d85d09b9a496a52a494e6318029fdce9a9c812ab5c7b2a046c33b66834127bf809f243c91a53c3c5e27efca026a96fe6b03421de26e60 0005-udhcpc-set-default-discover-retries-to-5.patch
-89215c328a46afc686c458a133dd88dcda817586df60eb041a694715e73dc78a297fc0f9a92e8ee7d0a39ce7f6053a6b8e38f3ee078ff90ed13fac2608510105 0006-ping-make-ping-work-without-root-privileges.patch
-7873b98c676a92faea61511d50c1efac1220354d20afd53de19e2c8f1472559cb333b9dd4e0d6432616d8c5f59885f1503c448c86a912e8031c9bfed628c2db1 0007-fbsplash-support-console-switching.patch
-2c56906dac70dea6276e4c573707cb06c4c8b53defcd33b1e5a28f928e7dafe905a52ce40571de430e4af7e00a75ecc0f249d2fec02da5f3d9edd4e904919a35 0008-fbsplash-support-image-and-bar-alignment-and-positio.patch
-df02adb3e3cd3349cc8d070911e3392164cb2e30bd72cae7ceaa974b2db6f958fdcedf809abc7b4bee37c729a4d20abf127f615b0e238a667d572137abe6a79e 0009-depmod-support-generating-kmod-binary-index-files.patch
-ecbe5c890d966f09280c7eb534109f785c68e292765f17ed7ff62fcc61d20f61443c4155add0a1ebfb67ce8564e104c1aa22a8ef0400e119b0bca2bca3671f2d 0010-Add-flag-for-not-following-symlinks-when-recursing.patch
-3ae5ecf3ea66c8d98762432026806fdb67b13a28075c6a3cb6e811a34ef89c2f0ed651946003aaad97fb4b7f74d132af3c394c114b7a72e1d20b319b739c5a6e 0012-udhcpc-Don-t-background-if-n-is-given.patch
-6b1ebc6da26c355a63c166f4c8d1774e7a9c5456ec76b773395a2158cb4848cf245fa5553843666c0a46f4c97d03e08815abae777f2b80bbb69d916618f94761 0013-ash-fix-unsafe-use-of-mempcpy.patch
-3eb7609054fa8e03d7e366f7debc5cb0630ff65d521a91be84803bdef3854f81e29d26a9567c501a121e94a55d3a3477894e774508f80def775f2ecc812805e7 0014-ash-fix-use-after-free-in-bash-pattern-substitution.patch
-0040800382a6e3adcc6a8094b821488c7e297fc80304afba23a4fca43b7b26ac699378dfbd930ebbf9985336b3e431301f7ca93e2d041a071902a48740d263ef 0015-ed-don-t-use-memcpy-with-overlapping-memory-regions.patch
-4c95dc4bf6aff9018bfb52b400f6d8375a1d22493b44ea516cb12dba6556f12797a3cba55768d2e59ff57c0f3247ec1ff95edb8f17561f3d37ec18d83ca47eb0 0016-ash-don-t-read-past-end-of-var-in-subvareval-for-bas.patch
-ccdf098fb15eaa316708181469a1193d6eec7067131e7b7645e0219bf03cfd07f4f79e8f62c1e560f6146dcc38186a29bdee08aaa39f290e11d020b8f07d2f65 0017-ash-Fix-use-after-free-on-idx-variable.patch
-6d100fe44da2b97c2cbdda253d0504b487212d195144d9315cddbe8c51d18fae3745701923b170b40e35f54b592f94f02cadbffd9cb716661c12a7f1da022763 0001-ash-add-built-in-BB_ASH_VERSION-variable.patch
-e33dbc27d77c4636f4852d5d5216ef60a9a4343484e4559e391c13c813bf65c782b889914eff2e1f038d74cf02cb0d23824ebbb1044b5f8c86260d5a1bbc4e4d 0001-pgrep-add-support-for-matching-against-UID-and-RUID.patch
-2640698e5108434991a8491fcc508bd991d2111b14bb6957385393a36603e1d81fdf826ad7b150d487d2a924630ee54c0fc4f979214e90feca9ba7d2fd96a865 0001-avoid-redefined-warnings-when-building-with-utmps.patch
-9b66151ef51293292b3829adaf721e5453c0710b1d151ab7e959aff0ffae2ec704e686161909cbbfc09c700e23e7200f5e14539ccc5583bccaa11193ea0cffce test-fix-tarball-creation.patch
-f65052adc4df305c22f79cc2819d7750b528ad66289512fc15c442c4347ebd6bc14340e60f2c5209d2e7d2e7feb7d19f372e02dca2451dd36787c5f6908c21d8 test-timezone-workaround.patch
-b52050678e79e4da856956906d07fcb620cbf35f2ef6b5a8ee3b8d244ea63b4b98eef505451184d5b4937740d91eef154ed748c30d329ac485be51b37626f251 0001-libbb-sockaddr2str-ensure-only-printable-characters-.patch
-ead4ad65d270d8659e1898fa16f76b6cbcf567d8aba238eacccda3764edb4362240d9359d6389873bedc126d405f805fc6dfce653a7181618ebcc67c94bd08d2 0002-nslookup-sanitize-all-printed-strings-with-printable.patch
-4f6ddd59d6096943f617b0938fca428114190b8b37732d6783faab291451a2c30c452ed39299db22d1d9679d007022f87d43e93b38a4f6ced64a8659e9233773 0001-modinfo-add-k-option-for-kernel-version.patch
-22e2fa8f7a6105fd9990f93b71c235980fd4eab62269939a0e3a920fe517ee4f913c6bd0148a554b67fe01d1660bf0fd76a80e9dcac290b4b8b2c304ef6080a9 CVE-2022-30065.patch
+8c0c754c9ae04b5e6b23596283a7d3a4ef96225fe179f92d6f6a99c69c0caa95b1aa56c267f52d7c807f6cc69e1f0b7dd29a8ac624098f601738f8c0c57980d4 busybox-1.36.1.tar.bz2
+17249174b24ba77b6138d640eee4eebcda567a86656623122d8b31044a762ea472096c406d70ba1a1f79450236fa259d4f46c363fa25db6cc4d44950e7a4b223 0001-modutils-check-ELF-header-before-calling-finit_modul.patch
+7ebb1ab462083564d2ace3e5719464326b91a40cfcf6117de4b393d3f01ed7acd37a583725323dce4220e255ba742428e0160072a90e4d566b4d7053d1f4a37f 0002-adduser-default-to-sbin-nologin-as-shell-for-system-.patch
+f7caad3ef18db7de6deff0fb7b7a7e82fff613d4245f334b56a11e982c40ebcfc6160c235e49d0b4fa7d39b58c0e4924e14473a3770a66d1ef7d4df379b6d858 0003-ash-add-built-in-BB_ASH_VERSION-variable.patch
+383cbc2f2f644dc34678d145ea27696a7fa7f46b8952a3448de78d516cb0452872abbc37cb3dcf2b6725c6f7675b972554404b462dec377a8e61c3b73c1cd890 0004-Avoid-redefined-warnings-when-buiding-with-utmps.patch
+ce30a642e6804827ef4f7e453d162747143a52dc905950998e996d84767d19548bbbd51bd25530575670c5942137f6926e3cb6f8668e7410569d695bb4165170 0005-libbb-sockaddr2str-ensure-only-printable-characters-.patch
+fa0c2f58e5bb8f646bc8451ce00375d860ded228fb7ec4ed61e3920e41990822be1fcdd8cdf9c0342318ba263516a71a837549a9bf52875b1ba652fbc7c54f92 0006-modinfo-add-k-option-for-kernel-version.patch
+7313809f283d68521308f7178f6d6e458ee5c826f4c50f40a4595c7a71042d0fe83d938ad2af08e95cbfbc7c0c690fb6c2b2578c2f3e41055bf06bc5cc22d2f2 0007-nologin-Install-applet-to-sbin-instead-of-usr-sbin.patch
+24b57ec15205a006310096c63829c8e09820aa8a816a9652bbf9f90efc3e6d28893be1d917deac9793121cd9cca811773272776ead121cc30e9e77cbe904cbcd 0008-pgrep-add-support-for-matching-against-UID-and-RUID.patch
+63dae6bf0adb2def1436bed2bcd6ea889bbf666799a8282345e6a4bbf2b567732456fdb20439df870ead5bf242ce2b403170075429b951c5fdf53c134c9e9ef3 0009-properly-fix-wget-https-support.patch
+7fea95c4d686b4f5cc5d86b3f5e0df246767b2f86349d36a9596c05af10e7d616edaee2597bcbe96c73b8d307ca6286d276308dce52b881085e67eaaa2b23542 0010-sed-check-errors-writing-file-with-sed-i.patch
+2ddf584e1e960a45675e08f6bd4e61a80251bed0fe76ad968b79f4a15d0da89039a3ca62ee6f9605c56ca7e86d8c5696e8ec235acb90bed0998073fef1a4b2dd 0011-fsck-resolve-LABEL-.-UUID-.-spec-to-device.patch
+05b00a98c2d5a2cab89bb6b6b80a39cea5fc2f5ea27589d39232fb2f8b85e2fca78cef84f55de202702274c1c7f7802dd04497a212834ae931297767a9186dc9 0012-nslookup-sanitize-all-printed-strings-with-printable.patch
+85d85dcf1fc9c54ed7cbb7ffac36971b6d0a1024e7b6df7fcdccb7e3832bf6b1fa0b0d2e2b7990d0154b752af35a9e8b9b815e244226a9d190c56bf09e9094eb 0013-ash-exec-busybox.static.patch
+42a61fa7ad5eeb757f1985331d10ac3a9977aeed8add0eff16aba3da20be0b0e19ed4b9544b6efa75c31d481af5353d7a9707750f5dcb99975f40591bed49a03 0014-app-location-for-cpio-vi-and-lspci.patch
+a4a440645f1e8be9b1a92d8611190425e339049cf3e21e837f41b348796b3bb81c4369846d837359e7fbc74a32c34cea7e6924d77ca0865550c84f47fd73a1de 0015-udhcpc-set-default-discover-retries-to-5.patch
+c1c522487cde86f73efb4800f610d54674d3fa381a0266598cf6c1b002b2b18be9011014b26d5d5ab82c22f6a9eaa920f32cfbb956790880497ff4316c26a64d 0016-ping-make-ping-work-without-root-privileges.patch
+a9f7dd37b2722265089b39d24d47e9c4911ff1e31f9dd1c3d5ba49bca7656f3fd2b42dcfd2f837ba5ae6b850dd1b02bb6af9a97a3980fe098daf1c20fb2a4630 0017-fbsplash-support-console-switching.patch
+5653c818400c38966726adf1c99b603f6f760179a291c13b5320b79e0ef63d1ad9251b276d6eed68a6b8c95bfabd95eccce9d73edbc2ea888b994d6a02763050 0018-fbsplash-support-image-and-bar-alignment-and-positio.patch
+ce4316e44148562addc1f5839166ca9314ee6f26dae218617c287791a8d9239e374f993688a9299e24c9a237e4c21e481a0b35baa4e8b123ce9e2b23d065001c 0019-depmod-support-generating-kmod-binary-index-files.patch
+80c426dc2ea6cafa359a078a4a283735db0b3611a6c953ee7b7b2ec00c41a1263b61085c37447fcc50a01c229db93fa8fa675b8c995040eb31e9ed6f3723a0cf 0020-Add-flag-for-not-following-symlinks-when-recursing.patch
+22c1d3233b210b8a334f31101eb6ff15d276eaef009758cff57a642b660ebe38114d7f3c8055113f12d6620acc8a8f0a2fe51dbede9100cd3d0eb5cdd2d01e39 0021-udhcpc-Don-t-background-if-n-is-given.patch
+923c29b050f456210fbb06d72c77f53eff2179757e8595a8e9cd1ad3f1d4d300c525bec88de3170fa16dbe6a0ea498cdf01ab5a20a289af913ca05b27abab27d 0023-tests-fix-tarball-creation.patch
+192fe9b535b3ae4cfbd8455d642e9c73b134ddbdf9265b3ebd1a185122bbb1064cf2c1f01840a8cf35d0665969846ff7168c215fdce96b46b031d73c16f7622f 0024-tests-musl-doesn-t-seem-to-recognize-UTC0-as-a-timez.patch
+0a0e4c425879d8250b4dee925dc9feb2595ed68b1fdb5c22e78f3452e46dc17c882ea47f119c2308915f4105b69e5c6f38156131bee1fe9ba0ff684bfd10a049 0025-Hackfix-to-disable-HW-acceleration-for-MD5-SHA1-on-x.patch
+09358ed36d6c13a50119a9d96898fdc2d3e6ca089659780604425ae3d32960a17c3083de81a131b1cf9a9a2b449e40a8ed6af3a8b916247571ebc41765ab365b 0026-lineedit-Handle-SIGWINCH-gracefully.patch
+e3670ab567818a42593698546dcdabaa447c10682261c128901b4390eb2bf2dbea9e84f8f2dcdd6d67c82bf93bb1eed14406e5a8dd723b4670d1995b6100651f 0027-umount-Implement-O-option-to-unmount-by-mount-option.patch
+d3bd84c42487de573c0c5165a847fd233ddcd4d53a61b1e03c30a46b6dba3993e741f12daf167b8347fb7a420b188f4027582f16e92dc822eb3293804dfc62f8 0028-ash-use-after-free-in-bash-pattern-substitution.patch
+5f8c1a848f28aff2b28085950c561e1a51dfcea043da455e3daf9b960025dd8789ecfe43370553cb727d4ec239aa23c42e3ae5f6ef1cd5768d69c80c31b8f39e 0029-awk-fix-use-after-realloc-CVE-2021-42380-closes-1560.patch
+28748a431718f270b2d0023d09f059e6a32501afb9fd243c4b127fec28bc9312ffb7fdcc1563544a2cb29bed66383ecfea7957d557f7b21402ec3bdb6938004f 0030-shell-avoid-segfault-on-0-0-0-09J-.-Closes-15216.patch
+f12c2d5cdb3a6b81f109029b22a6b1064a32aee5a2c5ff0b0a290f9090d5eda060b35f62f2faba3315012e1a4366aad90afd84bf46d77c1a007e97f5cf21aca3 0031-ash-initialize-basepf.buf-in-ash.patch
+0d71e70ed3de87f11a8a94e00b26e74d437b7ae96292507f1d42c850f461a4ea9de28d19f4fbfee087042fa6b14362e7046618d5dd0833cfac96954002766a60 0032-install-Fix-chown-resetting-suid-sgid-bits-from-chmo.patch
+724cfa5dd9eba1b4de448d2e29762821492435e1687d5345b000309f8b38a20f735d57ee6e44c476add94ccb42dd01157d95b75c2da191d04e924dd6635992de 0033-find-fix-xdev-depth-and-delete.patch
+7e929e71b398502f91b429b29c43a93ac05d2281cd8b021a5398f4ecaedd8061c048833ecc8f012adade2a197de85f18cb12f9513867222ea17f0acb9e7d9161 0034-udhcp-Avoid-leaking-uninitialized-stale-data.patch
+5ae02b7e3d8f040bdf78f2465f918cca1683898574d018dfde0b6ab9270e39f58b6adad3936537ea9eab52fe9b78bf05443d99e1bfd72fa1466a0330bc640d77 0035-ash-fix-handling-of-single-quoted-strings-in-pattern.patch
+decfd9df491944775ab0a51db1b922b45b6437d4e02429bf4d15642674df541fcc76b247497050f2f279ed727c5460c10f3b88992d8c311ac6716eb20f0dc08e 0036-fix-dos-in-math.patch
+bff815bf9c8cd0856dde87eb90e2fe56f105dccb426e4f5da9425e30d449d7ee7ccc3b3324aee5136b276678e7be12afbcc368c7ca92d2c1bdcf22ed92ea1f4f 0037-awk.c-fix-CVE-2023-42366-bug-15874.patch
+525df8ef0f78c79b74a62619729e4746c265aa0598036f74b3d7bbf2bf54dbdcf789ebfe7b1e0f8b21751f7e7c06a0a6125c0f166a551763199acb634164af82 0038-tsort-avoid-use-after-free.patch
+bff27cf4a311bc7f5af857f431ba5cca9861e3875815e81384c90419fa817d5d00812acaf0045342ab8f5355003135e9c0340547c1045e0144f6b9d01465838e 0001-wget-add-header-Accept.patch
aa93095e20de88730f526c6f463cef711b290b9582cdbd8c1ba2bd290019150cbeaa7007c2e15f0362d5b9315dd63f60511878f0ea05e893f4fdfb4a54af3fb1 acpid.logrotate
-20ad8edb3741ffffa99bdb4c00603ddfc76564c869cb46736f878eba01cc3d3f611dd8049625a66ad7f018ce485a9d9592ec133fc8fe7f13da3d69daa6c545ec busyboxconfig
-9dc49c5ff0750cd713f49ee566a19e705e6b68e360a82e2c99b15a5271c7e8a5c47aaf399a03828befbe4e9ccbebb3de766cc0cfc1672848a939b5ae97b44aa1 busyboxconfig-extras
+076f13b9d85ebf23aff8c0a2f313d3ca05f4d1c0d3ed06b0bc274d41deda3bd4808a8381f7c0411e8188b67315cc7ac8dced1b4473cda3c247773dbce2b71f55 busyboxconfig
+cfd96023125ca27c6eddb13af490a36e5e7d2fcfd0847363e48f1fa5ce237e93e6a9fe4577feeb35291d79d6240ae5e6a518b9258966e0fac27e30a43172b792 busyboxconfig-extras
0becc2186d6c32fb0c401cf7bc0e46268b38ce8892db33be1daf40273024c1c02d518283f44086a313a2ccef34230a1d945ec148cc173f26e6aa9d88a7426e54 bbsuid.c
-6321c1d96d8938a3b5eab21731de289ede136fff550f98127c509452bfb17769ccf94b118491f7b81d3c60e1bbb3e80bb07186e4ce07e29724a52f0daba9b218 dad.if-up
+afc27da5f95bec3e3ccb5b1fcb5bd80a8317d8753e6c70cc0750d0875313e44bf2e487472c8499d7bbe5afba3e583c75548ccdcff4dcadc94bb791f53fb77ba3 dad.if-up
26eac967d6cfe13b7dc973112de145543ac0bdda9e9dd3a69bbd8c133ae6a20387abe9377917efb770b191130d3a6385ff5738abc84a8216d7b86ae88b159260 ssl_client.c
-c3194ccffe7300a0f55d50fb56d38c8df55d588adac13056fd0be2676594974477f94de5570a5a882bc864c3711cf67aa43b6ad6808e672f4533dd0f7363d2f5 default.script
+e56f9d74f7d471893ff9c3fde319b989e1854c9b12f06c1b6739694b07165ae256b5c555bc75c92986265df7f0a276001aba73853855c7a0fb3404a091a92c86 default.script
+5f9ff70f99a970e88460c0de81a6637d8a82252fba6715e259833f16ed8cbfc3440972b1fa454eb77dbbcd1e244774c96b4eef96f71a2b67a9039a0dd5e6fc1e udhcpc.conf
+fcb532233fd7ba8cad302d037b88cff00ee8b96b37c90b34fc823479208cf7cdda48818c972ce2c4703b7283fd58e99ba8a724818f884f3b09eaa7e2d6ffad21 acpid.initd
+34c6f3197064bb91619b899b28a201bd4d920b18bded3845440b2cb36dc6f16cabf447c96878349b16e46c30184cbe48bac00a01c5f7cf1be038c0b7136064c5 crond.confd
+0e8266b1bf1d533de7531f32b27c815db00378df6e9ee98232ba3b9cb4f3e1770db65290d338ac0745aca52dd99c3c128dde3fa81ed110dd02c4a298a2f62b1b crond.initd
+f9bf43b72142bbb4c0665c1268a3d91586ef8a057dfe64c53b6923815d2db1f669b8080a38311ad89cda0b783a8628700fc5414d834a21d8e48515760bb910f7 klogd.confd
+50b975ac94722e8584249a73b7f36134cb954ad19716b7f3437a6e2cde2a81465ef153b04a0b8e734fc7971320df71cd8c75e669bb4da86233c1991bc516260f klogd.initd
+b0ba67585f39d83320ed6de183d7463a0e163807b9f3dc6f0baa212236056f22aeb2c5399dfdcd54929eb5ae06a15714c2fed133b5888869ed9d9cf589cef843 ntpd.confd
+9e0aedd8f0d546532ad99fb5d3043e222d3f85bfebe2a01609a47b1eef5339750e81753c12eeb79852cefc88e9ff28c54b8858be44702c871c32ca82390d71d2 ntpd.initd
+11b2a71c38c87d95cd19307481b5f05d9aa980f1ee8348a90b14d698a78b5d0109974fef782ae6538177bcf8bb9fc9cd6f8e4a368ff6b6266276745f1394c2e0 rdate.confd
+a95d03564712803fc58c48534f2fbbf23dd8418ffd3a6a06f840e969627892eea518b4fe17f059850665fc056cedf972c26aee52c309805987fb5c59a710bd30 rdate.initd
+bf8173ee33a5d2b61cbdbc1b070e599a17a21e5433a0d8aa9beef71e4ac831304076af8e7e58dc594cdee61562329793afdc57af91e5496bf5fffb9b734a3d9c syslog.confd
+a13a6add6f7fb10a3a2563391b6f8b68161249147e9f50e6d857c5689123f6d974368ce4f13b8d93312fa38d05f604d67c4c976d8a7eef301af50a3a6ad50c23 syslog.initd
+acbba3385fb2c416362eb9176f24146b617a2e394ee0e00b9eff89350f82468a5ab8396f4f52b0aaf03d341ac6150c73182e808fa3f29a2dc71c69271cdfb811 loadkmap.confd
+1b61a0f1eb40f2ea14bf3ed3441996f343d70fd45858d443f21244f133dcdf1c64433c3deaef769eee4e3e698b405f25e1bbc185a25c351a88ce7d120d61cf00 loadkmap.initd
+359af0a4a1841dd6557eaf3e71d39f0d7a2687bad6a8fc6ef436eccf72a40f85c6400a3b7880c7f64d8e460b6af8a0ff3dd5ffc3a4b1aa8eb0d8f7eaf99ee3e4 watchdog.confd
+53d19009e571dcd3920890c88da815709bfadfffc6946e2dec347d80291622475381a61e9b5cccc15f69f15c0778c192c0112a9f70f379205490b1924ad44a20 watchdog.initd
+6ce0b2a8fe69cc7ea657c5b9076aba51c8f0beeaafa4a887d8673bcc9f9cf8ee40f4b07d2d901ec7a1a1e4f29c150c496559559e803595d0bd487dec56b530a2 mdev.initd
+8af4a5652c418274c3f9ea2698d5026ebea78cd6cbd78e7779125d039aa5807fe92a44e70062b53fe6b830c3fe479f0e6d6ee4a61f37cf4814e895cf1b6ea215 dnsd.initd
+b8ffad8394dee7c2613a047cc34d6b7d650b576c6c9c8427c1ecf9148ca57e4cb3ea9fbc13525f104dde8e30bc78fe3ad4747d534b55750f5c76e8f98368cd33 httpd.initd
+7b286eaba66a4c86366eec38cd94d8547a15bff72923456edf8c683d4e02bf55d85628adbdb7c1c44f3b16b545ea0ca238afa14a73fc1ade0c33ed7e9fcf2b49 inetd.initd
+4a8d1e924284fca730a262fedc3cb76b4f4689a6c650b0c5544b65eeab6cfd9e8eb91f448d9ebbba6efbb056695428c1b26e5eaeb7233bae090676d1789954cc udhcpd.initd
"
diff --git a/main/busybox/CVE-2022-30065.patch b/main/busybox/CVE-2022-30065.patch
deleted file mode 100644
index 4a9cd67c987..00000000000
--- a/main/busybox/CVE-2022-30065.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 3c284dcb726ff6599d3b87fb366fb04411cf5595 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Fri, 17 Jun 2022 09:52:11 +0000
-Subject: [PATCH 1/2] awk: fix use after free (CVE-2022-30065)
-
-fixes https://bugs.busybox.net/show_bug.cgi?id=14781
-
-Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
----
- editors/awk.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/editors/awk.c b/editors/awk.c
-index 079d0bde5..728ee8685 100644
---- a/editors/awk.c
-+++ b/editors/awk.c
-@@ -3128,6 +3128,9 @@ static var *evaluate(node *op, var *res)
-
- case XC( OC_MOVE ):
- debug_printf_eval("MOVE\n");
-+ /* make sure that we never return a temp var */
-+ if (L.v == TMPVAR0)
-+ L.v = res;
- /* if source is a temporary string, jusk relink it to dest */
- if (R.v == TMPVAR1
- && !(R.v->type & VF_NUMBER)
---
-2.36.1
-
-
-From 30c8f8e69230ef27f116a2c10ca2e4a6cc343dad Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Thu, 16 Jun 2022 21:54:48 +0200
-Subject: [PATCH 2/2] awk: add tests for CVE-2022-30065
-
-Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
----
- testsuite/awk.tests | 11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/testsuite/awk.tests b/testsuite/awk.tests
-index 93e25d8c1..6c3a03c37 100755
---- a/testsuite/awk.tests
-+++ b/testsuite/awk.tests
-@@ -479,4 +479,15 @@ testing 'awk backslash+newline eaten with no trace' \
- "Hello world\n" \
- '' ''
-
-+testing 'awk use-after-free (CVE-2022-30065)' \
-+ "awk '\$3i\$3in\$9=\$r||\$9=i6/6-9f'" \
-+ "" \
-+ "" \
-+ ""
-+
-+testing 'awk assign while test' \
-+ "awk '\$1==\$1=\"foo\" {print \$1}'" \
-+ "foo\n" \
-+ "" \
-+ "foo"
- exit $FAILCOUNT
---
-2.36.1
-
diff --git a/main/busybox-initscripts/acpid.initd b/main/busybox/acpid.initd
index 2e73b777bbb..ec31833ad7f 100644
--- a/main/busybox-initscripts/acpid.initd
+++ b/main/busybox/acpid.initd
@@ -2,8 +2,9 @@
name="busybox acpid"
command="/sbin/acpid"
-command_args="$ACPID_OPTS"
-pidfile="/var/run/acpid.pid"
+command_args="$ACPID_OPTS -f"
+pidfile="/run/acpid.pid"
+command_background=true
start_stop_daemon_args="-g wheel -k 027"
depend() {
diff --git a/main/busybox/busybox-extras.post-install b/main/busybox/busybox-extras.post-install
index a0327a69107..dc663a554fd 100644
--- a/main/busybox/busybox-extras.post-install
+++ b/main/busybox/busybox-extras.post-install
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/busybox sh
# Create all symlinks
exec /bin/busybox-extras --install -s
diff --git a/main/busybox/busybox-extras.pre-deinstall b/main/busybox/busybox-extras.pre-deinstall
index 5ae91ccbc22..2634c6a31cb 100644
--- a/main/busybox/busybox-extras.pre-deinstall
+++ b/main/busybox/busybox-extras.pre-deinstall
@@ -1,7 +1,6 @@
#!/bin/sh
# Remove all symlinks to busybox-extras
-cd /
for link in $(busybox-extras --list-full); do
if [ -L "$link" ] && [ "$(readlink $link)" = "/bin/busybox-extras" ]; then
rm "$link"
diff --git a/main/busybox/busybox.post-install b/main/busybox/busybox.post-install
index 30c436115c5..f575396bb1a 100644
--- a/main/busybox/busybox.post-install
+++ b/main/busybox/busybox.post-install
@@ -1,5 +1,11 @@
-#!/bin/sh
+#!/bin/busybox sh
# We need the symlinks early
/bin/busybox mkdir -p "/bin" "/sbin" "/usr/bin" "/usr/sbin"
-exec /bin/busybox --install -s
+/bin/busybox --install -s || exit 1
+
+# can't be in pre-install since adduser/group may not available then
+addgroup -S klogd 2>/dev/null
+adduser -S -D -H -h /dev/null -s /sbin/nologin -G klogd -g klogd klogd 2>/dev/null
+
+exit 0
diff --git a/main/busybox/busybox.post-upgrade b/main/busybox/busybox.post-upgrade
index b478cbe0cb7..66fd1c49325 100644
--- a/main/busybox/busybox.post-upgrade
+++ b/main/busybox/busybox.post-upgrade
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/busybox sh
# remove links that has been relocated or removed
# - generate a list of all symlinks in bin dirs and a list with all busybox
@@ -14,7 +14,6 @@
# - use sed to strip the leading and training ' chars
# - finally pass the list to rm for removing the symlinks that points to
# busybox but does not exist in the `busybox --list-all` list
-cd /
( find bin sbin usr/bin usr/sbin -maxdepth 1 -type l; busybox --list-all) \
| sort | uniq -u \
| xargs -r stat -c "%N" 2>/dev/null \
@@ -29,4 +28,10 @@ for link in /bin/ping /bin/ping6; do
done
# We need the symlinks early
-exec /bin/busybox --install -s
+/bin/busybox --install -s || exit 1
+
+# can't be in pre-upgrade since adduser/group may not available then
+addgroup -S klogd 2>/dev/null
+adduser -S -D -H -h /dev/null -s /sbin/nologin -G klogd -g klogd klogd 2>/dev/null
+
+exit 0
diff --git a/main/busybox/busyboxconfig b/main/busybox/busyboxconfig
index ebf00edc786..f6f2c943a85 100644
--- a/main/busybox/busyboxconfig
+++ b/main/busybox/busyboxconfig
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Busybox version: 1.35.0
-# Wed Dec 29 18:18:16 2021
+# Busybox version: 1.36.1
+# Sat Aug 5 10:51:22 2023
#
CONFIG_HAVE_DOT_CONFIG=y
@@ -22,7 +22,7 @@ CONFIG_FEATURE_DEVPTS=y
CONFIG_FEATURE_UTMP=y
CONFIG_FEATURE_WTMP=y
CONFIG_FEATURE_PIDFILE=y
-CONFIG_PID_FILE_PATH="/var/run"
+CONFIG_PID_FILE_PATH="/run"
CONFIG_BUSYBOX=y
# CONFIG_FEATURE_SHOW_SCRIPT is not set
CONFIG_FEATURE_INSTALLER=y
@@ -53,7 +53,7 @@ CONFIG_EXTRA_CFLAGS=""
CONFIG_EXTRA_LDFLAGS=""
CONFIG_EXTRA_LDLIBS=""
# CONFIG_USE_PORTABLE_CODE is not set
-CONFIG_STACK_OPTIMIZATION_386=y
+# CONFIG_STACK_OPTIMIZATION_386 is not set
# CONFIG_STATIC_LIBGCC is not set
#
@@ -93,6 +93,9 @@ CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
CONFIG_PASSWORD_MINLEN=6
CONFIG_MD5_SMALL=0
+CONFIG_SHA1_SMALL=0
+# CONFIG_SHA1_HWACCEL is not set
+# CONFIG_SHA256_HWACCEL is not set
CONFIG_SHA3_SMALL=0
CONFIG_FEATURE_NON_POSIX_CP=y
# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
@@ -123,6 +126,9 @@ CONFIG_UNICODE_WIDE_WCHARS=y
# CONFIG_UNICODE_BIDI_SUPPORT is not set
# CONFIG_UNICODE_NEUTRAL_TABLE is not set
CONFIG_UNICODE_PRESERVE_BROKEN=y
+# CONFIG_LOOP_CONFIGURE is not set
+# CONFIG_NO_LOOP_CONFIGURE is not set
+CONFIG_TRY_LOOP_CONFIGURE=y
#
# Applets
@@ -233,7 +239,7 @@ CONFIG_FEATURE_DATE_ISOFMT=y
CONFIG_FEATURE_DATE_COMPAT=y
CONFIG_DD=y
CONFIG_FEATURE_DD_SIGNAL_HANDLING=y
-# CONFIG_FEATURE_DD_THIRD_STATUS_LINE is not set
+CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y
CONFIG_FEATURE_DD_IBS_OBS=y
CONFIG_FEATURE_DD_STATUS=y
CONFIG_DF=y
@@ -338,6 +344,7 @@ CONFIG_FEATURE_TR_CLASSES=y
CONFIG_FEATURE_TR_EQUIV=y
CONFIG_TRUE=y
CONFIG_TRUNCATE=y
+# CONFIG_TSORT is not set
CONFIG_TTY=y
CONFIG_UNAME=y
CONFIG_UNAME_OSNAME="Linux"
@@ -417,7 +424,7 @@ CONFIG_CMP=y
CONFIG_DIFF=y
CONFIG_FEATURE_DIFF_LONG_OPTIONS=y
CONFIG_FEATURE_DIFF_DIR=y
-CONFIG_ED=y
+# CONFIG_ED is not set
# CONFIG_PATCH is not set
CONFIG_SED=y
CONFIG_VI=y
@@ -650,7 +657,7 @@ CONFIG_FEATURE_MDEV_RENAME=y
CONFIG_FEATURE_MDEV_RENAME_REGEXP=y
CONFIG_FEATURE_MDEV_EXEC=y
CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y
-# CONFIG_FEATURE_MDEV_DAEMON is not set
+CONFIG_FEATURE_MDEV_DAEMON=y
CONFIG_MESG=y
CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y
# CONFIG_MKE2FS is not set
@@ -832,10 +839,12 @@ CONFIG_READAHEAD=y
CONFIG_RFKILL=y
# CONFIG_RUNLEVEL is not set
# CONFIG_RX is not set
+# CONFIG_SEEDRNG is not set
# CONFIG_SETFATTR is not set
CONFIG_SETSERIAL=y
CONFIG_STRINGS=y
CONFIG_TIME=y
+CONFIG_TREE=y
# CONFIG_TS is not set
CONFIG_TTYSIZE=y
# CONFIG_UBIATTACH is not set
@@ -903,7 +912,7 @@ CONFIG_IFENSLAVE=y
# CONFIG_IFPLUGD is not set
CONFIG_IFUP=y
CONFIG_IFDOWN=y
-CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate"
+CONFIG_IFUPDOWN_IFSTATE_PATH="/run/ifstate"
CONFIG_FEATURE_IFUPDOWN_IP=y
CONFIG_FEATURE_IFUPDOWN_IPV4=y
CONFIG_FEATURE_IFUPDOWN_IPV6=y
@@ -997,7 +1006,7 @@ CONFIG_FEATURE_WGET_TIMEOUT=y
CONFIG_FEATURE_WGET_HTTPS=y
# CONFIG_FEATURE_WGET_OPENSSL is not set
CONFIG_WHOIS=y
-# CONFIG_ZCIP is not set
+CONFIG_ZCIP=y
# CONFIG_UDHCPD is not set
# CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set
# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set
@@ -1008,6 +1017,7 @@ CONFIG_UDHCPC=y
CONFIG_FEATURE_UDHCPC_ARPING=y
CONFIG_FEATURE_UDHCPC_SANITIZEOPT=y
CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
+CONFIG_UDHCPC6_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script"
CONFIG_UDHCPC6=y
CONFIG_FEATURE_UDHCPC6_RFC3646=y
CONFIG_FEATURE_UDHCPC6_RFC4704=y
@@ -1142,6 +1152,7 @@ CONFIG_ASH_MAIL=y
CONFIG_ASH_ECHO=y
CONFIG_ASH_PRINTF=y
CONFIG_ASH_TEST=y
+# CONFIG_ASH_SLEEP is not set
CONFIG_ASH_HELP=y
CONFIG_ASH_GETOPTS=y
CONFIG_ASH_CMDCMD=y
diff --git a/main/busybox/busyboxconfig-extras b/main/busybox/busyboxconfig-extras
index 34ed93e6ae1..acb8cd776eb 100644
--- a/main/busybox/busyboxconfig-extras
+++ b/main/busybox/busyboxconfig-extras
@@ -1,7 +1,7 @@
#
# Automatically generated make config: don't edit
-# Busybox version: 1.35.0
-# Wed Dec 29 18:19:30 2021
+# Busybox version: 1.36.1
+# Tue May 23 20:12:51 2023
#
CONFIG_HAVE_DOT_CONFIG=y
@@ -22,7 +22,7 @@ CONFIG_FEATURE_DEVPTS=y
# CONFIG_FEATURE_UTMP is not set
# CONFIG_FEATURE_WTMP is not set
CONFIG_FEATURE_PIDFILE=y
-CONFIG_PID_FILE_PATH="/var/run"
+CONFIG_PID_FILE_PATH="/run"
CONFIG_BUSYBOX=y
# CONFIG_FEATURE_SHOW_SCRIPT is not set
CONFIG_FEATURE_INSTALLER=y
@@ -53,7 +53,7 @@ CONFIG_EXTRA_CFLAGS=""
CONFIG_EXTRA_LDFLAGS=""
CONFIG_EXTRA_LDLIBS=""
# CONFIG_USE_PORTABLE_CODE is not set
-CONFIG_STACK_OPTIMIZATION_386=y
+# CONFIG_STACK_OPTIMIZATION_386 is not set
# CONFIG_STATIC_LIBGCC is not set
#
@@ -92,8 +92,11 @@ CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set
# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set
CONFIG_PASSWORD_MINLEN=6
-CONFIG_MD5_SMALL=1
-CONFIG_SHA3_SMALL=1
+CONFIG_MD5_SMALL=0
+CONFIG_SHA1_SMALL=0
+# CONFIG_SHA1_HWACCEL is not set
+# CONFIG_SHA256_HWACCEL is not set
+CONFIG_SHA3_SMALL=0
# CONFIG_FEATURE_NON_POSIX_CP is not set
# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set
# CONFIG_FEATURE_USE_SENDFILE is not set
@@ -123,6 +126,9 @@ CONFIG_LAST_SUPPORTED_WCHAR=0
# CONFIG_UNICODE_BIDI_SUPPORT is not set
# CONFIG_UNICODE_NEUTRAL_TABLE is not set
# CONFIG_UNICODE_PRESERVE_BROKEN is not set
+# CONFIG_LOOP_CONFIGURE is not set
+# CONFIG_NO_LOOP_CONFIGURE is not set
+CONFIG_TRY_LOOP_CONFIGURE=y
#
# Applets
@@ -326,6 +332,7 @@ CONFIG_GZIP_FAST=0
# CONFIG_FEATURE_TR_EQUIV is not set
# CONFIG_TRUE is not set
# CONFIG_TRUNCATE is not set
+# CONFIG_TSORT is not set
# CONFIG_TTY is not set
# CONFIG_UNAME is not set
CONFIG_UNAME_OSNAME=""
@@ -747,7 +754,7 @@ CONFIG_FEATURE_BEEP_LENGTH_MS=0
# CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set
# CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set
# CONFIG_FEATURE_CHAT_CLR_ABORT is not set
-# CONFIG_CONSPY is not set
+CONFIG_CONSPY=y
# CONFIG_CROND is not set
# CONFIG_FEATURE_CROND_D is not set
# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set
@@ -808,10 +815,12 @@ CONFIG_READAHEAD=y
# CONFIG_RFKILL is not set
# CONFIG_RUNLEVEL is not set
# CONFIG_RX is not set
+# CONFIG_SEEDRNG is not set
# CONFIG_SETFATTR is not set
# CONFIG_SETSERIAL is not set
# CONFIG_STRINGS is not set
# CONFIG_TIME is not set
+# CONFIG_TREE is not set
# CONFIG_TS is not set
# CONFIG_TTYSIZE is not set
# CONFIG_UBIATTACH is not set
@@ -938,7 +947,7 @@ CONFIG_FAKEIDENTD=y
# CONFIG_SSL_CLIENT is not set
# CONFIG_TC is not set
# CONFIG_FEATURE_TC_INGRESS is not set
-# CONFIG_TCPSVD is not set
+CONFIG_TCPSVD=y
# CONFIG_UDPSVD is not set
CONFIG_TELNET=y
CONFIG_FEATURE_TELNET_TTYPE=y
@@ -984,6 +993,7 @@ CONFIG_DUMPLEASES=y
# CONFIG_FEATURE_UDHCPC_ARPING is not set
# CONFIG_FEATURE_UDHCPC_SANITIZEOPT is not set
CONFIG_UDHCPC_DEFAULT_SCRIPT=""
+CONFIG_UDHCPC6_DEFAULT_SCRIPT=""
# CONFIG_UDHCPC6 is not set
# CONFIG_FEATURE_UDHCPC6_RFC3646 is not set
# CONFIG_FEATURE_UDHCPC6_RFC4704 is not set
@@ -1118,6 +1128,7 @@ CONFIG_BASH_IS_NONE=y
# CONFIG_ASH_ECHO is not set
# CONFIG_ASH_PRINTF is not set
# CONFIG_ASH_TEST is not set
+# CONFIG_ASH_SLEEP is not set
# CONFIG_ASH_HELP is not set
# CONFIG_ASH_GETOPTS is not set
# CONFIG_ASH_CMDCMD is not set
diff --git a/main/busybox-initscripts/crond.confd b/main/busybox/crond.confd
index 542af1ed1d7..542af1ed1d7 100644
--- a/main/busybox-initscripts/crond.confd
+++ b/main/busybox/crond.confd
diff --git a/main/busybox/crond.initd b/main/busybox/crond.initd
new file mode 100644
index 00000000000..992037210b6
--- /dev/null
+++ b/main/busybox/crond.initd
@@ -0,0 +1,12 @@
+#!/sbin/openrc-run
+
+name="busybox $RC_SVCNAME"
+command="/usr/sbin/$SVCNAME"
+pidfile="/run/$RC_SVCNAME.pid"
+command_args="$CRON_OPTS -f"
+command_background=true
+
+depend() {
+ need localmount
+ need logger
+}
diff --git a/main/busybox/dad.if-up b/main/busybox/dad.if-up
index 6774ed4697a..7903822c8fd 100644
--- a/main/busybox/dad.if-up
+++ b/main/busybox/dad.if-up
@@ -8,8 +8,9 @@ has_flag() {
}
counter=100
-while [ $(( counter-- )) -gt 0 ] &&
+while [ "$counter" -gt 0 ] &&
has_flag tentative &&
! has_flag dadfailed; do
sleep 0.2
+ counter=$((counter - 1))
done
diff --git a/main/busybox/default.script b/main/busybox/default.script
index e2cd5218d64..fd66e830c62 100644
--- a/main/busybox/default.script
+++ b/main/busybox/default.script
@@ -120,7 +120,7 @@ resolvconf() {
echo "nameserver $i" >> "$RESOLV_CONF.$$"
done
chmod a+r "$RESOLV_CONF.$$"
- mv "$RESOLV_CONF.$$" "$RESOLV_CONF"
+ mv -f "$RESOLV_CONF.$$" "$RESOLV_CONF"
}
bound() {
diff --git a/main/busybox-initscripts/dnsd.initd b/main/busybox/dnsd.initd
index dc6ddb730b0..42e4a34c13a 100644
--- a/main/busybox-initscripts/dnsd.initd
+++ b/main/busybox/dnsd.initd
@@ -1,9 +1,9 @@
#!/sbin/openrc-run
-name="busybox $SVCNAME"
-command="/usr/sbin/$SVCNAME"
+name="busybox $RC_SVCNAME"
+command="/usr/sbin/$RC_SVCNAME"
command_args="$DNSD_OPTS"
-pidfile="/var/run/$SVCNAME.pid"
+pidfile="/run/$SVCNAME.pid"
command_background=true
depend() {
diff --git a/main/busybox-initscripts/inetd.initd b/main/busybox/httpd.initd
index 2f0c6fa3162..bf957305213 100644
--- a/main/busybox-initscripts/inetd.initd
+++ b/main/busybox/httpd.initd
@@ -2,8 +2,8 @@
name="busybox $SVCNAME"
command="/usr/sbin/$SVCNAME"
-command_args="-f $INETD_OPTS"
-pidfile="/var/run/$SVCNAME.pid"
+command_args="$HTTPD_OPTS -f"
+pidfile="/run/$RC_SVCNAME.pid"
command_background=true
depend() {
diff --git a/main/busybox/inetd.initd b/main/busybox/inetd.initd
new file mode 100644
index 00000000000..5ef7b395ff9
--- /dev/null
+++ b/main/busybox/inetd.initd
@@ -0,0 +1,13 @@
+#!/sbin/openrc-run
+
+name="busybox $RC_SVCNAME"
+command="/usr/sbin/$RC_SVCNAME"
+command_args="-f $INETD_OPTS"
+pidfile="/run/$RC_SVCNAME.pid"
+command_background=true
+
+depend() {
+ need net localmount
+ after firewall
+}
+
diff --git a/main/busybox-initscripts/klogd.confd b/main/busybox/klogd.confd
index 100deedaac5..100deedaac5 100644
--- a/main/busybox-initscripts/klogd.confd
+++ b/main/busybox/klogd.confd
diff --git a/main/busybox/klogd.initd b/main/busybox/klogd.initd
new file mode 100644
index 00000000000..274b7d96913
--- /dev/null
+++ b/main/busybox/klogd.initd
@@ -0,0 +1,15 @@
+#!/sbin/openrc-run
+
+name="busybox klogd"
+command="/sbin/klogd"
+command_args="${KLOGD_OPTS} -n"
+command_user="klogd"
+pidfile="/run/klogd.pid"
+command_background=true
+capabilities="^cap_syslog"
+
+depend() {
+ need clock hostname localmount logger
+ before net
+ keyword -vserver -lxc
+}
diff --git a/main/busybox-initscripts/loadkmap.confd b/main/busybox/loadkmap.confd
index 2bdbc0608c2..2bdbc0608c2 100644
--- a/main/busybox-initscripts/loadkmap.confd
+++ b/main/busybox/loadkmap.confd
diff --git a/main/busybox-initscripts/loadkmap.initd b/main/busybox/loadkmap.initd
index 7149dd729e0..7149dd729e0 100644
--- a/main/busybox-initscripts/loadkmap.initd
+++ b/main/busybox/loadkmap.initd
diff --git a/main/busybox-initscripts/mdev.initd b/main/busybox/mdev.initd
index 9dbb9948965..630d83777d6 100644
--- a/main/busybox-initscripts/mdev.initd
+++ b/main/busybox/mdev.initd
@@ -1,39 +1,40 @@
#!/sbin/openrc-run
+description="the mdev device manager"
+
depend() {
provide dev
need sysfs dev-mount
before checkfs fsck
- keyword -vserver -lxc
+ keyword -containers -vserver -lxc
}
-start() {
- # check if udev is specified on cmd line
- if get_bootparam "udev"; then
- ewarn "Skipping mdev as udev requested in kernel cmdline"
- return 0
- fi
-
+_start_service () {
ebegin "Starting busybox mdev"
mkdir -p /dev
-
- # use mdev for hotplug
echo "/sbin/mdev" > /proc/sys/kernel/hotplug
-
+ eend $?
+}
+
+_start_coldplug () {
+ ebegin "Scanning hardware for mdev"
# mdev -s will not create /dev/usb[1-9] devices with recent kernels
- # so we trigger hotplug events for usb for now
+ # so we manually trigger events for usb
for i in $(find /sys/devices -name 'usb[0-9]*'); do
[ -e $i/uevent ] && echo add > $i/uevent
done
-
- # create devices
+ # trigger the rest of the coldplug
mdev -s
eend $?
}
+start() {
+ _start_service
+ _start_coldplug
+}
+
stop() {
ebegin "Stopping busybox mdev"
- echo "" > /proc/sys/kernel/hotplug
+ echo > /proc/sys/kernel/hotplug
eend
}
-
diff --git a/main/busybox-initscripts/ntpd.confd b/main/busybox/ntpd.confd
index c5b4c1c1d43..c5b4c1c1d43 100644
--- a/main/busybox-initscripts/ntpd.confd
+++ b/main/busybox/ntpd.confd
diff --git a/main/busybox/ntpd.initd b/main/busybox/ntpd.initd
new file mode 100644
index 00000000000..9850b48800e
--- /dev/null
+++ b/main/busybox/ntpd.initd
@@ -0,0 +1,15 @@
+#!/sbin/openrc-run
+
+name="busybox $RC_SVCNAME"
+command="/usr/sbin/$RC_SVCNAME"
+command_args="${NTPD_OPTS:--N -p pool.ntp.org} -n"
+command_user="ntp"
+pidfile="/run/$SVCNAME.pid"
+command_background=true
+capabilities="^cap_sys_time"
+
+depend() {
+ need net
+ provide ntp-client
+ use dns
+}
diff --git a/main/busybox-initscripts/rdate.confd b/main/busybox/rdate.confd
index 93c67861696..03eadfdb1fb 100644
--- a/main/busybox-initscripts/rdate.confd
+++ b/main/busybox/rdate.confd
@@ -1,2 +1,2 @@
# Set the ntp server here
-NTP_HOST=pool.net.org
+NTP_HOST=pool.ntp.org
diff --git a/main/busybox-initscripts/rdate.initd b/main/busybox/rdate.initd
index 708429f17bb..708429f17bb 100644
--- a/main/busybox-initscripts/rdate.initd
+++ b/main/busybox/rdate.initd
diff --git a/main/busybox-initscripts/syslog.confd b/main/busybox/syslog.confd
index 2f00667118c..2f00667118c 100644
--- a/main/busybox-initscripts/syslog.confd
+++ b/main/busybox/syslog.confd
diff --git a/main/busybox-initscripts/syslog.initd b/main/busybox/syslog.initd
index 629d86843b2..3b20345d706 100644
--- a/main/busybox-initscripts/syslog.initd
+++ b/main/busybox/syslog.initd
@@ -4,8 +4,9 @@ description="Message logging system"
name="busybox syslog"
command="/sbin/syslogd"
-command_args="${SYSLOGD_OPTS}"
-pidfile="/var/run/syslogd.pid"
+command_args="${SYSLOGD_OPTS} -n"
+pidfile="/run/syslogd.pid"
+command_background=true
start_stop_daemon_args="-g wheel -k 027"
depend() {
diff --git a/main/busybox/test-fix-tarball-creation.patch b/main/busybox/test-fix-tarball-creation.patch
deleted file mode 100644
index a071dc4f239..00000000000
--- a/main/busybox/test-fix-tarball-creation.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Without this patch, the chmod 644 invocation takes away the executable
-bit from the input_dir directory, thus preventing the chmod of the files
-within the input_dir directory (due to lack of x-bit).
-
-diff -upr a/testsuite/tar.tests b/testsuite/tar.tests
---- a/testsuite/tar.tests 2021-12-26 17:53:21.000000000 +0100
-+++ b/testsuite/tar.tests 2022-03-02 20:48:55.873880158 +0100
-@@ -67,7 +67,7 @@ testing "tar hardlinks and repeated file
- ln input_hard1 input_hard2
- mkdir input_dir
- >input_dir/file
--chmod -R 644 *
-+for f in *; do [ "$f" = "input_dir" ] || chmod -R 644 "$f"; done
- chmod 755 input_dir
- tar cf test.tar input input_dir/ input_hard1 input_hard2 input_hard1 input_dir/ input
- tar tvf test.tar | sed "s/.*[0-9] input/input/"
diff --git a/main/busybox/udhcpc.conf b/main/busybox/udhcpc.conf
new file mode 100644
index 00000000000..0407c553ffb
--- /dev/null
+++ b/main/busybox/udhcpc.conf
@@ -0,0 +1,11 @@
+# Do not overwrite /etc/resolv.conf
+#RESOLV_CONF="no"
+
+# Use alternative path for resolv.conf
+#RESOLV_CONF="/tmp/resolv.conf"
+
+# Prevent overwriting of resolv.conf on a per-interface basis
+#NO_DNS="eth1 wlan1"
+
+# List of interfaces where DHCP routes are ignored
+#NO_GATEWAY="eth1 wlan1"
diff --git a/main/busybox/udhcpd.initd b/main/busybox/udhcpd.initd
new file mode 100644
index 00000000000..e4dabd5b343
--- /dev/null
+++ b/main/busybox/udhcpd.initd
@@ -0,0 +1,12 @@
+#!/sbin/openrc-run
+
+name="busybox $RC_SVCNAME"
+command="/usr/sbin/$RC_SVCNAME"
+command_args="$UDHCPD_OPTS -f"
+pidfile="/run/$SVCNAME.pid"
+command_background=true
+
+depend() {
+ need net
+ after firewall
+}
diff --git a/main/busybox-initscripts/watchdog.confd b/main/busybox/watchdog.confd
index 5cfd2c2cc40..5cfd2c2cc40 100644
--- a/main/busybox-initscripts/watchdog.confd
+++ b/main/busybox/watchdog.confd
diff --git a/main/busybox-initscripts/watchdog.initd b/main/busybox/watchdog.initd
index 5b0435c920a..d87210044a0 100644
--- a/main/busybox-initscripts/watchdog.initd
+++ b/main/busybox/watchdog.initd
@@ -2,8 +2,10 @@
name="busybox watchdog"
command="/sbin/watchdog"
-command_args="${WATCHDOG_OPTS} ${WATCHDOG_DEV}"
-pidfile="/var/run/watchdog.pid"
+command_args="${WATCHDOG_OPTS} -F ${WATCHDOG_DEV}"
+pidfile="/run/watchdog.pid"
+command_background=true
+
depend() {
need dev
after hwdrivers
diff --git a/main/bwm-ng/APKBUILD b/main/bwm-ng/APKBUILD
index f6878a9bcb4..ad50d1ac887 100644
--- a/main/bwm-ng/APKBUILD
+++ b/main/bwm-ng/APKBUILD
@@ -1,14 +1,17 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=bwm-ng
pkgver=0.6.3
-pkgrel=0
+pkgrel=3
pkgdesc="A small and simple console-based live bandwidth monitor"
url="http://www.gropp.org/"
arch="all"
license="GPL-2.0-or-later"
subpackages="$pkgname-doc"
makedepends="ncurses-dev autoconf automake libtool"
-source="$pkgname-$pkgver.tgz::https://github.com/vgropp/bwm-ng/archive/v$pkgver.tar.gz"
+source="$pkgname-$pkgver.tgz::https://github.com/vgropp/bwm-ng/archive/v$pkgver.tar.gz
+ format-security.patch
+ "
+options="!check"
prepare() {
default_prepare
@@ -32,4 +35,7 @@ package() {
make -j1 DESTDIR="$pkgdir" install
}
-sha512sums="85ce29e6ffa9643b4e7c1d731f4e928ddca8cfdc71c86b65ec4e55058b951eb8da9ab80139145300518223589d5fece5bdc11ede91a1ea394d569993ccdb0ab8 bwm-ng-0.6.3.tgz"
+sha512sums="
+85ce29e6ffa9643b4e7c1d731f4e928ddca8cfdc71c86b65ec4e55058b951eb8da9ab80139145300518223589d5fece5bdc11ede91a1ea394d569993ccdb0ab8 bwm-ng-0.6.3.tgz
+e377d29ce10f8c8605412427bc05a2aeabe5e4bbb6813a2f9117e9f92b54c8a77e1dc03fe85fd997ae3f17edc146a0982d2e75a7acab2ea2532d9151138a9a37 format-security.patch
+"
diff --git a/main/bwm-ng/format-security.patch b/main/bwm-ng/format-security.patch
new file mode 100644
index 00000000000..f4022abb64d
--- /dev/null
+++ b/main/bwm-ng/format-security.patch
@@ -0,0 +1,13 @@
+diff --git a/src/output.c b/src/output.c
+index f5f01cd..b451832 100644
+--- a/src/output.c
++++ b/src/output.c
+@@ -151,7 +151,7 @@ int print_header(int option) {
+ erase();
+ mvwprintw(stdscr,1,2,"bwm-ng v" VERSION" (probing every %2.3fs), press 'h' for help",(float)delay/1000);
+ mvwprintw(stdscr,2,2,"input: %s type: %s",input2str(),output_type2str());
+- wprintw(stdscr,show_all_if2str());
++ wprintw(stdscr, "%s", show_all_if2str());
+ mvwprintw(stdscr,3,2,"%c iface Rx Tx Total",(char)IDLE_CHARS[option]);
+ /* go to next char for next run */
+ option++;
diff --git a/main/byacc/APKBUILD b/main/byacc/APKBUILD
index c8293b85243..8ed4cf89294 100644
--- a/main/byacc/APKBUILD
+++ b/main/byacc/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Nathan Angelacos <nangel@alpinelinux.org>
pkgname=byacc
-pkgver=20220128
+pkgver=20240109
pkgrel=0
pkgdesc="The Berkeley Yacc general-purpose parser generator"
url="https://invisible-island.net/byacc/byacc.html"
@@ -27,8 +27,9 @@ check() {
package() {
make DESTDIR="$pkgdir" install
+ ln -sfv yacc "$pkgdir"/usr/bin/byacc
}
sha512sums="
-e8ae4c56f5be4cc0ef1d281c43f02c6296fdc40f630269f2a61af511f270ae059ad185b9718190b8133018f7b74b7ca6f84ced5d63a359960b52ea2a3ef562ea byacc-20220128.tgz
+d1c50ede256a6c960243a16f4bfcafb5c78c19c82f10c567443b59a3ccacdcde37d09da491e22e0601b1b7864ba3f16068ca2eaf7c250d0bcb26449b735cb5b5 byacc-20240109.tgz
"
diff --git a/main/byobu/APKBUILD b/main/byobu/APKBUILD
index 689a1cb4ccb..a58e8c1a50d 100644
--- a/main/byobu/APKBUILD
+++ b/main/byobu/APKBUILD
@@ -1,15 +1,21 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=byobu
-pkgver=5.133
-pkgrel=1
+pkgver=6.12
+pkgrel=0
pkgdesc="An enhancement of the GNU Screen"
-url="https://launchpad.net/byobu"
+url="https://byobu.org"
arch="noarch"
-license="GPL-3.0"
-depends="python3 tmux"
+license="GPL-3.0-or-later"
+depends="python3 tmux py3-newt"
+makedepends="automake autoconf libtool"
subpackages="$pkgname-doc"
-source="https://launchpad.net/byobu/trunk/$pkgver/+download/byobu_$pkgver.orig.tar.gz"
+source="$pkgname-$pkgver.tar.gz::https://github.com/dustinkirkland/byobu/archive/refs/tags/$pkgver.tar.gz"
+
+prepare() {
+ sh autogen.sh
+ default_prepare
+}
build() {
./configure \
@@ -26,4 +32,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="4c0ef7a3b483e48c57f3e97dae1c7c77084797016efb677b201f2b56c6b9f4b771739d9a6d9a4fb612203a22e9fa460db80fde30c837b102ad830b1b2919db6c byobu_5.133.orig.tar.gz"
+sha512sums="
+285c45ee333eb0be9fad797a28a5daf829b4575e19e9cee64a04f1dc4ccef1c505e6659c190d741c2f3aa5f546fe36fbfe75e36e79ce3cd1661a4738c40e221f byobu-6.12.tar.gz
+"
diff --git a/main/bzip2/APKBUILD b/main/bzip2/APKBUILD
index 4b0d4da0802..6e5ba04a741 100644
--- a/main/bzip2/APKBUILD
+++ b/main/bzip2/APKBUILD
@@ -1,9 +1,9 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=bzip2
pkgver=1.0.8
-pkgrel=1
+pkgrel=6
pkgdesc="A high-quality data compression program"
-url="http://sources.redhat.com/bzip2"
+url="https://sourceware.org/bzip2/"
arch="all"
license="bzip2-1.0.6"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc libbz2"
@@ -13,6 +13,7 @@ source="https://sourceware.org/pub/bzip2/bzip2-$pkgver.tar.gz
bzip2-1.0.2-progress.patch
bzip2-1.0.3-no-test.patch
saneso.patch
+ bzip2.pc.in
"
# secfixes:
@@ -51,6 +52,10 @@ package() {
install -D libbz2.so.$pkgver "$pkgdir"/usr/lib/libbz2.so.$pkgver
ln -s libbz2.so.$pkgver "$pkgdir"/usr/lib/libbz2.so
ln -s libbz2.so.$pkgver "$pkgdir"/usr/lib/libbz2.so.${pkgver%%.*}
+
+ mkdir -p "$pkgdir"/usr/lib/pkgconfig/
+ sed "s|@VERSION@|$pkgver|" "$srcdir"/bzip2.pc.in \
+ > "$pkgdir"/usr/lib/pkgconfig/bzip2.pc
}
libbz2() {
@@ -59,9 +64,12 @@ libbz2() {
mv "$pkgdir"/usr/lib/*.so.* "$subpkgdir"/usr/lib/
}
-sha512sums="083f5e675d73f3233c7930ebe20425a533feedeaaa9d8cc86831312a6581cefbe6ed0d08d2fa89be81082f2a5abdabca8b3c080bf97218a1bd59dc118a30b9f3 bzip2-1.0.8.tar.gz
-58cc37430555520b6e35db2740e699cf37eacdd82989c21a222a593e36288710a0defb003662d4238235c12b3764bfc89cd646e6be9d0a08d54bd2c9baa6ad15 bzip2-1.0.4-makefile-CFLAGS.patch
+sha512sums="
+083f5e675d73f3233c7930ebe20425a533feedeaaa9d8cc86831312a6581cefbe6ed0d08d2fa89be81082f2a5abdabca8b3c080bf97218a1bd59dc118a30b9f3 bzip2-1.0.8.tar.gz
+d0430ae96d7a2d4e658a101c84262ba11048e3e3110ae9d7855b36792abc7827c0daba3cdcdec629130a9d3beb128052de458242e494a35962e903e50eddfe45 bzip2-1.0.4-makefile-CFLAGS.patch
2d9a306bc0f552a58916ebc702d32350a225103c487e070d2082121a54e07f1813d3228f43293cc80a4bee62053fd597294c99a1751b1685cd678f4e5c6a2fe7 bzip2-1.0.4-man-links.patch
b6810c73428f17245e0d7c2decd00c88986cd8ad1cfe4982defe34bdab808d53870ed92cb513b2d00c15301747ceb6ca958fb0e0458d0663b7d8f7c524f7ba4e bzip2-1.0.2-progress.patch
aefcafaaadc7f19b20fe023e0bd161127b9f32e0cd364621f6e5c03e95fb976e7e69e354ec46673a554392519532a3bfe56d982a5cde608c10e0b18c3847a030 bzip2-1.0.3-no-test.patch
-dd624110ce06426d2990ad1de96f5b6a2790c599030fb8848e26b64aa847cf956806f7a539fe61c6005d99bfc135920fc704f274862d2557ab1861adb7391d45 saneso.patch"
+dd624110ce06426d2990ad1de96f5b6a2790c599030fb8848e26b64aa847cf956806f7a539fe61c6005d99bfc135920fc704f274862d2557ab1861adb7391d45 saneso.patch
+e17c6f8f88a89d38667a68cd1397c863663c7996a9f18481f3f6ed35902044220c01e5fe19f114159fceac068a4dd32c2ddc903f0d0901cdf722c841dd9f2b93 bzip2.pc.in
+"
diff --git a/main/bzip2/bzip2-1.0.4-makefile-CFLAGS.patch b/main/bzip2/bzip2-1.0.4-makefile-CFLAGS.patch
index cf146188c3b..6acdc28a10d 100644
--- a/main/bzip2/bzip2-1.0.4-makefile-CFLAGS.patch
+++ b/main/bzip2/bzip2-1.0.4-makefile-CFLAGS.patch
@@ -8,7 +8,7 @@
BIGFILES=-D_FILE_OFFSET_BITS=64
-CFLAGS=-Wall -Winline -O2 -g $(BIGFILES)
-+CFLAGS+=-Wall -Winline $(BIGFILES) $(CPPFLAGS)
++CFLAGS+=-Wall -Winline $(BIGFILES) $(CPPFLAGS) -O2
# Where you want it installed when you do 'make install'
PREFIX=/usr/local
@@ -19,7 +19,7 @@
CC=gcc
BIGFILES=-D_FILE_OFFSET_BITS=64
-CFLAGS=-fpic -fPIC -Wall -Winline -O2 -g $(BIGFILES)
-+CFLAGS+=-fpic -fPIC -Wall -Winline $(BIGFILES) $(CPPFLAGS)
++CFLAGS+=-fpic -fPIC -Wall -Winline $(BIGFILES) $(CPPFLAGS) -O2
OBJS= blocksort.o \
huffman.o \
diff --git a/main/bzip2/bzip2.pc.in b/main/bzip2/bzip2.pc.in
new file mode 100644
index 00000000000..a4dd68259ce
--- /dev/null
+++ b/main/bzip2/bzip2.pc.in
@@ -0,0 +1,11 @@
+prefix=/usr
+exec_prefix=/usr
+bindir=${exec_prefix}/bin
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: bzip2
+Description: A file compression library
+Version: @VERSION@
+Libs: -L${libdir} -lbz2
+Cflags: -I${includedir}
diff --git a/main/c-ares/APKBUILD b/main/c-ares/APKBUILD
index adf9d6de258..0919f690620 100644
--- a/main/c-ares/APKBUILD
+++ b/main/c-ares/APKBUILD
@@ -1,17 +1,19 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=c-ares
-pkgver=1.18.1
+pkgver=1.28.1
pkgrel=0
-pkgdesc="An asynchronously DNS/names resolver library"
-url="https://c-ares.haxx.se/"
+pkgdesc="Asynchronous DNS/names resolver library"
+url="https://c-ares.org/"
arch="all"
-options="!check"
license="MIT"
-subpackages="$pkgname-doc $pkgname-static $pkgname-dev"
+makedepends="gtest-dev"
+subpackages="$pkgname-doc $pkgname-static $pkgname-dev $pkgname-utils::noarch"
source="https://c-ares.haxx.se/download/c-ares-$pkgver.tar.gz"
# secfixes:
+# 1.27.0-r0:
+# - CVE-2024-25629
# 1.17.2-r0:
# - CVE-2021-3672
@@ -27,19 +29,20 @@ build() {
}
check() {
- # This is only needed for < 1.14.0, where the .sh file was not
- # distributed properly - see https://da.gd/carestest
- echo "#!/bin/true" > test/fuzzcheck.sh
- chmod a+x test/fuzzcheck.sh
-
- make -C test check
+ test/arestest --gtest_filter=-*.Live*
}
-
package() {
- make -j1 DESTDIR="$pkgdir" install
+ make DESTDIR="$pkgdir" install
+ cd src/tools
+ install -Dm755 -t "$pkgdir"/usr/bin \
+ adig ahost
+}
+
+utils() {
+ amove usr/bin
}
sha512sums="
-1276ec0799916019f8c0af6b55a139701bd15e0ca4a00811d07963893978bc96c107b980f0fd49f81aa70bc8b3b8cd671195ba357c390772d4c2c5643c50c5a5 c-ares-1.18.1.tar.gz
+9a24f40002b661d97c9b49a617d2e6b12bad1c9f22e872611252d051ec650f886c010207939fac6992610b3cd5a87588f802d7dfa1310ced7c6621ea2f99dd90 c-ares-1.28.1.tar.gz
"
diff --git a/main/ca-certificates/APKBUILD b/main/ca-certificates/APKBUILD
index 9d6e2cbcf71..15de66d5d8c 100644
--- a/main/ca-certificates/APKBUILD
+++ b/main/ca-certificates/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=ca-certificates
-pkgver=20211220
+pkgver=20240226
pkgrel=0
pkgdesc="Common CA certificates PEM files from Mozilla"
url="https://www.mozilla.org/en-US/about/governance/policies/security-group/certs/"
@@ -9,10 +9,9 @@ arch="all"
# There is a GPL-2.0-or-later script inside the source but it is not shipped
license="MPL-2.0 AND MIT"
makedepends_build="perl"
-makedepends_host="openssl1.1-compat-dev"
-subpackages="$pkgname-doc $pkgname-bundle"
-# c_rehash is either in libcrypto1.0 or openssl depending on package, grr. replace both of them
-replaces="libcrypto1.0 openssl openssl1.0"
+makedepends_host="openssl-dev>3"
+subpackages="$pkgname-doc $pkgname-bundle::noarch"
+replaces="openssl"
options="!fhs !check"
triggers="ca-certificates.trigger=/usr/share/ca-certificates:/usr/local/share/ca-certificates:/etc/ssl/certs:/etc/ca-certificates/update.d"
install="$pkgname.post-deinstall"
@@ -26,15 +25,15 @@ package() {
make install DESTDIR="$pkgdir"
(
- echo "# Automatically generated by $pkgname-$pkgver-$pkgrel"
+ echo "# Automatically generated by $pkgname-$pkgver-r$pkgrel"
echo "# $(date -u)"
- echo "# Do not edit."
+ echo "#"
cd "$pkgdir"/usr/share/ca-certificates
find . -name '*.crt' | sort | cut -b3-
) > "$pkgdir"/etc/ca-certificates.conf
# generate the bundle in similar way as update-ca-certificates would do
- for i in $(ls *.crt | sort); do
+ find -- *.crt | sort | while read -r i; do
cat "$i"
printf "\n"
done > "$pkgdir"/etc/ssl/certs/ca-certificates.crt
@@ -55,15 +54,20 @@ package() {
bundle() {
pkgdesc="Pre generated bundle of Mozilla certificates"
- replaces="libressl2.7-libcrypto"
+ replaces="libressl2.7-libcrypto libcrypto1.1"
provides="$pkgname-cacert=$pkgver-r$pkgrel"
mkdir -p "$subpkgdir"/etc/ssl/certs
mv "$pkgdir"/etc/ssl/certs/ca-certificates.crt \
"$subpkgdir"/etc/ssl/certs/
ln -s certs/ca-certificates.crt \
"$subpkgdir"/etc/ssl/cert.pem
+
+ # Symlinks for OpenSSL 1.1 compatibility
+ mkdir -p "$subpkgdir"/etc/ssl1.1/
+ ln -s /etc/ssl/certs "$subpkgdir"/etc/ssl1.1/
+ ln -s /etc/ssl/cert.pem "$subpkgdir"/etc/ssl1.1/
}
sha512sums="
-6b486384c80b29632939a28524acfeeedc60f5df44da86bc16ce79f3cf2ff464455e963ebeb410c3072829b9083215961b32c18673ff77b211652d4c1e870799 ca-certificates-20211220.tar.bz2
+48a872010eab178dc64aa09ee7d977403b73416e870d0cd2a2dcf004fb86f1468547c116ef82413c3603ac1b9bc20ea70fd169a9426ae756b234ea9fa0287dca ca-certificates-20240226.tar.bz2
"
diff --git a/main/ca-certificates/ca-certificates.trigger b/main/ca-certificates/ca-certificates.trigger
index eff198163eb..a68e9c7d928 100644
--- a/main/ca-certificates/ca-certificates.trigger
+++ b/main/ca-certificates/ca-certificates.trigger
@@ -1,3 +1,3 @@
#!/bin/sh
-/usr/sbin/update-ca-certificates --fresh &> /dev/null
+/usr/sbin/update-ca-certificates &> /dev/null
exit 0
diff --git a/main/cairo/APKBUILD b/main/cairo/APKBUILD
index 5b075754c3d..b5c8cd8947a 100644
--- a/main/cairo/APKBUILD
+++ b/main/cairo/APKBUILD
@@ -1,14 +1,14 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=cairo
-pkgver=1.17.6
-pkgrel=2
+pkgver=1.18.0
+pkgrel=0
pkgdesc="A vector graphics library"
url="https://cairographics.org/"
arch="all"
options="!check" # Recursive dependency on gtk+2.0 for check.
-license="LGPL-2.0-or-later MPL-1.1"
+license="LGPL-2.1-or-later OR MPL-1.1"
depends_dev="
- $pkgname-tools
+ $pkgname-tools=$pkgver-r$pkgrel
fontconfig-dev
freetype-dev
libxext-dev
@@ -16,7 +16,8 @@ depends_dev="
pixman-dev
xcb-util-dev
"
-makedepends="$depends_dev
+makedepends="
+ $depends_dev
expat-dev
glib-dev
gtk-doc
@@ -34,9 +35,7 @@ subpackages="
"
source="https://gitlab.freedesktop.org/cairo/cairo/-/archive/$pkgver/cairo-$pkgver.tar.bz2
musl-stacksize.patch
- fix-type1-subset-indexing.patch
"
-builddir="$srcdir/$pkgname-$pkgver"
# secfixes:
# 1.17.4-r1:
@@ -48,14 +47,16 @@ builddir="$srcdir/$pkgname-$pkgver"
build() {
abuild-meson \
+ -Db_lto=true \
-Ddefault_library=both \
-Dgtk_doc=true \
- output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ -Dtests="$(want_check && echo enabled || echo disabled)" \
+ . output
+ meson compile -C output
}
check() {
- meson test --no-rebuild -v -C output
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
@@ -76,7 +77,6 @@ tools() {
}
sha512sums="
-1537b34ca49b853f4f60a7ceac0c1b878e7e2874f1ca3a37ab6ccbb704a37872314447016ad07b82312b302bb6df86b71265232a802ccdb9fb8cd18f211ff185 cairo-1.17.6.tar.bz2
+bd702f3b64061f8add954c243c9b59f5d44271adfa76d997941ddab629ff8018c2a1d3368edf2362573e0018c342c61483de58240c63e15e1e6035d2511d3e40 cairo-1.18.0.tar.bz2
86f26fe41deb5e14f553c999090d1ec1d92a534fa7984112c9a7f1d6c6a8f1b7bb735947e8ec3f26e817f56410efe8cc46c5e682f6a278d49b40a683513740e0 musl-stacksize.patch
-fe9badbffceea378cab893f8a13f76e7c411bba18bab69a768ceda68b05357a94b41bb9f025d05f0ae7d1d324f0cdf98bf5a2c27b35db45f3fc5a70bfa091113 fix-type1-subset-indexing.patch
"
diff --git a/main/cairo/fix-type1-subset-indexing.patch b/main/cairo/fix-type1-subset-indexing.patch
deleted file mode 100644
index 87ce4b8abd8..00000000000
--- a/main/cairo/fix-type1-subset-indexing.patch
+++ /dev/null
@@ -1,153 +0,0 @@
-Patch-Source: https://github.com/freedesktop/cairo/commit/ff4fd6f960deb7afdac233465a1f4e807234ad15
-From ff4fd6f960deb7afdac233465a1f4e807234ad15 Mon Sep 17 00:00:00 2001
-From: Adrian Johnson <ajohnson@redneon.com>
-Date: Sun, 3 Apr 2022 20:03:58 +0930
-Subject: [PATCH] Fix type1-subset indexing
-
-Fixes #551
----
- src/cairo-type1-subset.c | 50 ++++++++++++++++++++++++++--------------
- 1 file changed, 33 insertions(+), 17 deletions(-)
-
-diff --git a/src/cairo-type1-subset.c b/src/cairo-type1-subset.c
-index 73f414dc4..0166f7a78 100644
---- a/src/cairo-type1-subset.c
-+++ b/src/cairo-type1-subset.c
-@@ -70,7 +70,7 @@ typedef struct _cairo_type1_font_subset {
- struct {
- unsigned int font_id;
- char *base_font;
-- unsigned int num_glyphs;
-+ unsigned int num_glyphs; /* Num /CharStrings in font */
- double x_min, y_min, x_max, y_max;
- double ascent, descent;
- double units_per_em;
-@@ -81,6 +81,9 @@ typedef struct _cairo_type1_font_subset {
- unsigned long trailer_size;
- } base;
-
-+ /* Num glyphs in subset. May be greater than
-+ * scaled_font_subset->num_glyphs due to glyphs required by the
-+ * SEAC operator. */
- int num_glyphs;
-
- /* The glyphs and glyph_names arrays are indexed by the order of
-@@ -89,12 +92,12 @@ typedef struct _cairo_type1_font_subset {
- * function is used to map the glyph index to the glyph order in
- * the Charstrings. */
-
-- glyph_data_t *glyphs;
-- char **glyph_names;
- cairo_array_t glyphs_array;
-+ glyph_data_t *glyphs; /* pointer to first element of above array */
- cairo_array_t glyph_names_array;
-+ char **glyph_names; /* pointer to first element of above array */
-
-- int num_subrs;
-+ int num_subrs; /* Num /Subrs routines in the font */
- cairo_bool_t subset_subrs;
- struct {
- const char *subr_string;
-@@ -102,12 +105,17 @@ typedef struct _cairo_type1_font_subset {
- const char *np;
- int np_length;
- cairo_bool_t used;
-- } *subrs;
-+ } *subrs; /* array with num_subrs elements */
-
-- /* Indexed by subset_index this maps to the glyph order in the
-- * glyph_names and glyphs arrays. Has font->num_glyphs
-- * elements. */
-- int *subset_index_to_glyphs;
-+ /* Maps scaled_font_subset index to glyphs_array.
-+ * Array size = scaled_font_subset->num_glyphs. */
-+ int *scaled_subset_index_to_glyphs;
-+
-+ /* Keeps track of the glyphs that will be emitted in the subset.
-+ * Allocated size = base.num_glyphs. Number of entries = num_glyphs.
-+ * Array values are glyph_array indexes.
-+ */
-+ int *type1_subset_index_to_glyphs;
-
- cairo_output_stream_t *output;
- cairo_array_t contents;
-@@ -159,7 +167,12 @@ _cairo_type1_font_subset_init (cairo_type1_font_subset_t *font,
-
- _cairo_array_init (&font->glyphs_array, sizeof (glyph_data_t));
- _cairo_array_init (&font->glyph_names_array, sizeof (char *));
-- font->subset_index_to_glyphs = NULL;
-+ font->scaled_subset_index_to_glyphs = calloc (scaled_font_subset->num_glyphs, sizeof font->scaled_subset_index_to_glyphs[0]);
-+ if (unlikely (font->scaled_subset_index_to_glyphs == NULL))
-+ return _cairo_error (CAIRO_STATUS_NO_MEMORY);
-+
-+
-+ font->type1_subset_index_to_glyphs = NULL;
- font->base.num_glyphs = 0;
- font->num_subrs = 0;
- font->subset_subrs = TRUE;
-@@ -180,7 +193,7 @@ cairo_type1_font_subset_use_glyph (cairo_type1_font_subset_t *font, int glyph)
- return;
-
- font->glyphs[glyph].subset_index = font->num_glyphs;
-- font->subset_index_to_glyphs[font->num_glyphs] = glyph;
-+ font->type1_subset_index_to_glyphs[font->num_glyphs] = glyph;
- font->num_glyphs++;
- }
-
-@@ -552,7 +565,7 @@ cairo_type1_font_subset_write_header (cairo_type1_font_subset_t *font,
- }
- } else {
- for (i = 1; i < font->scaled_font_subset->num_glyphs; i++) {
-- glyph = font->scaled_font_subset->glyphs[i];
-+ glyph = font->scaled_subset_index_to_glyphs[i];
- _cairo_output_stream_printf (font->output,
- "dup %d /%s put\n",
- i,
-@@ -1391,8 +1404,8 @@ cairo_type1_font_subset_write_private_dict (cairo_type1_font_subset_t *font,
- font->glyphs = _cairo_array_index (&font->glyphs_array, 0);
- font->glyph_names = _cairo_array_index (&font->glyph_names_array, 0);
- font->base.num_glyphs = _cairo_array_num_elements (&font->glyphs_array);
-- font->subset_index_to_glyphs = calloc (font->base.num_glyphs, sizeof font->subset_index_to_glyphs[0]);
-- if (unlikely (font->subset_index_to_glyphs == NULL))
-+ font->type1_subset_index_to_glyphs = calloc (font->base.num_glyphs, sizeof font->type1_subset_index_to_glyphs[0]);
-+ if (unlikely (font->type1_subset_index_to_glyphs == NULL))
- return _cairo_error (CAIRO_STATUS_NO_MEMORY);
-
- backend = font->scaled_font_subset->scaled_font->backend;
-@@ -1414,6 +1427,7 @@ cairo_type1_font_subset_write_private_dict (cairo_type1_font_subset_t *font,
- return status;
-
- cairo_type1_font_subset_use_glyph (font, index);
-+ font->scaled_subset_index_to_glyphs[i] = index;
- }
-
- /* Go through the charstring of each glyph in use, get the glyph
-@@ -1421,7 +1435,7 @@ cairo_type1_font_subset_write_private_dict (cairo_type1_font_subset_t *font,
- * seac operator (which may cause font->num_glyphs to increase
- * while this loop is executing). Also subset the Subrs. */
- for (j = 0; j < font->num_glyphs; j++) {
-- glyph = font->subset_index_to_glyphs[j];
-+ glyph = font->type1_subset_index_to_glyphs[j];
- font->build_stack.sp = 0;
- font->ps_stack.sp = 0;
- status = cairo_type1_font_subset_parse_charstring (font,
-@@ -1711,7 +1725,9 @@ _cairo_type1_font_subset_fini (cairo_type1_font_subset_t *font)
-
- free (font->base.base_font);
-
-- free (font->subset_index_to_glyphs);
-+ free (font->scaled_subset_index_to_glyphs);
-+
-+ free (font->type1_subset_index_to_glyphs);
-
- free (font->cleartext);
-
-@@ -1765,7 +1781,7 @@ _cairo_type1_subset_init (cairo_type1_subset_t *type1_subset,
- goto fail2;
-
- for (i = 0; i < font.scaled_font_subset->num_glyphs; i++) {
-- glyph = font.scaled_font_subset->glyphs[i];
-+ glyph = font.scaled_subset_index_to_glyphs[i];
- type1_subset->widths[i] = font.glyphs[glyph].width;
- }
-
diff --git a/main/cargo-auditable/0001-Fix-tests-on-Rust-1.77.patch b/main/cargo-auditable/0001-Fix-tests-on-Rust-1.77.patch
new file mode 100644
index 00000000000..cffcc1d4a93
--- /dev/null
+++ b/main/cargo-auditable/0001-Fix-tests-on-Rust-1.77.patch
@@ -0,0 +1,46 @@
+From 5317a27244fc428335c4e7a1d066ae0f65f0d496 Mon Sep 17 00:00:00 2001
+From: "Sergey \"Shnatsel\" Davidoff" <shnatsel@gmail.com>
+Date: Mon, 25 Mar 2024 21:58:58 +0000
+Subject: [PATCH] Fix tests on Rust 1.77
+
+---
+ cargo-auditable/tests/it.rs | 19 ++++++++++++++++++-
+ 1 file changed, 18 insertions(+), 1 deletion(-)
+
+diff --git a/cargo-auditable/tests/it.rs b/cargo-auditable/tests/it.rs
+index 24e58e2..84231aa 100644
+--- a/cargo-auditable/tests/it.rs
++++ b/cargo-auditable/tests/it.rs
+@@ -110,11 +110,28 @@ where
+ binaries
+ })
+ .for_each(|(package, binary)| {
+- bins.entry(package).or_insert(Vec::new()).push(binary);
++ bins.entry(pkgid_to_bin_name(&package))
++ .or_insert(Vec::new())
++ .push(binary);
+ });
+ bins
+ }
+
++fn pkgid_to_bin_name(pkgid: &str) -> String {
++ // the input is string in the format such as
++ // "path+file:///home/shnatsel/Code/cargo-auditable/cargo-auditable/tests/fixtures/lib_and_bin_crate#0.1.0"
++ // (for full docs see `cargo pkgid`)
++ // and we need just the crate name, e.g. "lib_and_bin_crate"
++ pkgid
++ .rsplit_once(std::path::MAIN_SEPARATOR)
++ .unwrap()
++ .1
++ .split_once('#')
++ .unwrap()
++ .0
++ .to_owned()
++}
++
+ fn ensure_build_succeeded(output: &Output) {
+ if !output.status.success() {
+ let stderr = std::io::stderr();
+--
+2.44.0
+
diff --git a/main/cargo-auditable/APKBUILD b/main/cargo-auditable/APKBUILD
new file mode 100644
index 00000000000..9d6d8f6b251
--- /dev/null
+++ b/main/cargo-auditable/APKBUILD
@@ -0,0 +1,42 @@
+# Maintainer: team/rust <alpine@ptrcnull.me>
+pkgname=cargo-auditable
+pkgver=0.6.2
+pkgrel=0
+pkgdesc="Cargo wrapper for embedding auditing data"
+url="https://github.com/rust-secure-code/cargo-auditable"
+arch="all"
+license="MIT OR Apache-2.0"
+depends="cmd:cargo"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/rust-secure-code/cargo-auditable/archive/refs/tags/v$pkgver.tar.gz
+ 0001-Fix-tests-on-Rust-1.77.patch
+ "
+options="net"
+
+prepare() {
+ default_prepare
+
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ msg "building cargo auditable"
+ cargo build --release --frozen
+ msg "rebuilding with cargo-auditable itself"
+ PATH="$PATH:$PWD/target/release" \
+ cargo auditable build --release --frozen
+}
+
+check() {
+ cargo test --frozen
+}
+
+package() {
+ install -Dm755 target/release/cargo-auditable -t "$pkgdir"/usr/bin/
+ install -Dm644 cargo-auditable/cargo-auditable.1 -t "$pkgdir"/usr/share/man/man1/
+}
+
+sha512sums="
+3656f124d8e43fbb4518d9aa3ad9e40a7cae61c56fa4718e9ff886934b2fcb5b2f116551c63ca17712c203ac93daf2b28a22efe41e556013189dec0ad9248f1f cargo-auditable-0.6.2.tar.gz
+b5a871ea32bbfba1c6cda46c97ed5793f5dafeb237fc7da2462408d7125ac75519cad9ba6af159a4ce8abe6285b19c65048ba37c3e4a3c05f81625482d575235 0001-Fix-tests-on-Rust-1.77.patch
+"
diff --git a/main/ccache/APKBUILD b/main/ccache/APKBUILD
index 2a1642b3052..3b3db4886ea 100644
--- a/main/ccache/APKBUILD
+++ b/main/ccache/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=ccache
-pkgver=4.6.1
+pkgver=4.9.1
pkgrel=0
pkgdesc="fast C/C++ compiler cache"
url="https://ccache.dev/"
@@ -14,17 +14,23 @@ makedepends="
linux-headers
perl
samurai
+ xxhash-dev
zstd-dev
"
checkdepends="bash util-linux-misc python3 redis"
subpackages="$pkgname-doc"
source="https://github.com/ccache/ccache/releases/download/v$pkgver/ccache-$pkgver.tar.xz
- ioctl.patch"
+ ioctl.patch
+ system-xxhash.patch
+ "
+
+prepare() {
+ default_prepare
-# XXX: https://github.com/ccache/ccache/issues/1014
-case "$CARCH" in
-s390x) options="!check" ;;
-esac
+ # The riscv64 builder seems to have setgid bit set,
+ # which causes tests 2, 22, and 34 to fail.
+ chmod -v -s .
+}
build() {
cmake -B build -G Ninja \
@@ -35,10 +41,7 @@ build() {
}
check() {
- case $CARCH in
- armhf) echo "SKIP make -C build test on $CARCH" ;;
- *) ninja -C build test ;;
- esac
+ ctest --output-on-failure --test-dir build
}
package() {
@@ -48,13 +51,13 @@ package() {
mkdir -p "$pkgdir"/usr/lib/ccache/bin
for link in cc gcc g++ cpp c++ $CHOST-cc $CHOST-gcc \
- $CHOST-g++ $CHOST-cpp $CHOST-c++ \
- clang clang++; do
- ln -sf /usr/bin/ccache "$pkgdir"/usr/lib/ccache/bin/$link
+ $CHOST-g++ $CHOST-c++ c89 c99; do
+ ln -sf ../../../bin/ccache "$pkgdir"/usr/lib/ccache/bin/$link
done
}
sha512sums="
-361427ccecd74e8c25ca6a98ef3d3c125d81862196767eb383f6f8159fed8e1695cd5bc8731cb591c23c55352f0114a088b32a673717711efbfbb178a6c08c82 ccache-4.6.1.tar.xz
-785ce34305a3bb6c24117341157356c2bd2272eca9d58fa20acd14a023abe6f784c88d9c55656d2f37320392bb73a61c52cd8b6bd9ac7c5316c8ed187dd6f5fb ioctl.patch
+5ae4537a7e546b779c80f5adadce1349a84da3a47b255bda06cb2678ee5403307f013c08c8541a21f6f1fb36a0b64bdbcf785fbd2fcfe3009150117250e75b0b ccache-4.9.1.tar.xz
+231b016e9f80442d679a5d5b58deae94c633882be6a8e87f70b33f436762bc5cbb370888763a003032115960aa987011fbfda5deb089d946cfd1878872ad3be3 ioctl.patch
+4c117b78ed95c7e3b573e31ca11aa3b82a9007b49170bab563b96bab3f1342ee0d33cb31def0bd5ca9fdd00737cdef53f4e9e41613ea1b48e26ae0106fd3540e system-xxhash.patch
"
diff --git a/main/ccache/ioctl.patch b/main/ccache/ioctl.patch
index 256e54155ca..1abfc45ae22 100644
--- a/main/ccache/ioctl.patch
+++ b/main/ccache/ioctl.patch
@@ -5,9 +5,9 @@ int explicitly.
See https://www.openwall.com/lists/musl/2020/01/20/2
---- ccache-4.4.2.orig/src/Util.cpp 2021-09-28 21:39:22.000000000 +0200
-+++ ccache-4.4.2/src/Util.cpp 2021-11-05 16:16:59.972620042 +0100
-@@ -253,7 +253,7 @@ clone_file(const std::string& src, const
+--- a/src/storage/local/LocalStorage.cpp
++++ b/src/storage/local/LocalStorage.cpp
+@@ -263,7 +263,7 @@
}
}
@@ -15,3 +15,4 @@ See https://www.openwall.com/lists/musl/2020/01/20/2
+ if (ioctl(*dest_fd, (int)FICLONE, *src_fd) != 0) {
throw core::Error(strerror(errno));
}
+
diff --git a/main/ccache/system-xxhash.patch b/main/ccache/system-xxhash.patch
new file mode 100644
index 00000000000..9fe511081f4
--- /dev/null
+++ b/main/ccache/system-xxhash.patch
@@ -0,0 +1,77 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 55cfaa4..47d849f 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -1,3 +1,6 @@
++find_package(PkgConfig REQUIRED)
++pkg_check_modules(xxhash REQUIRED libxxhash)
++
+ set(
+ source_files
+ Args.cpp
+@@ -48,10 +51,10 @@ set(THREADS_PREFER_PTHREAD_FLAG ON)
+ find_package(Threads REQUIRED)
+ target_link_libraries(
+ ccache_framework
+- PRIVATE standard_settings standard_warnings ZSTD::ZSTD Threads::Threads third_party
++ PRIVATE standard_settings standard_warnings ZSTD::ZSTD Threads::Threads third_party ${xxhash_LIBRARIES}
+ )
+
+-target_include_directories(ccache_framework PUBLIC ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
++target_include_directories(ccache_framework PUBLIC ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${xxhash_INCLUDE_DIRS})
+
+ if(REDIS_STORAGE_BACKEND)
+ target_compile_definitions(ccache_framework PUBLIC -DHAVE_REDIS_STORAGE_BACKEND)
+diff --git a/src/third_party/CMakeLists.txt b/src/third_party/CMakeLists.txt
+index 0d6ffb3..f05a102 100644
+--- a/src/third_party/CMakeLists.txt
++++ b/src/third_party/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-add_library(third_party STATIC format.cpp httplib.cpp url.cpp xxhash.c)
++add_library(third_party STATIC format.cpp httplib.cpp url.cpp)
+ if(NOT MSVC)
+ target_sources(third_party PRIVATE getopt_long.c)
+ else()
+@@ -29,16 +29,6 @@ int main()
+
+ file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/xxhdispatchtest.c" "${xxhdispatchtest}")
+
+-try_compile(USE_XXH_DISPATCH ${CMAKE_CURRENT_BINARY_DIR}
+- "${CMAKE_CURRENT_BINARY_DIR}/xxhdispatchtest.c"
+- CMAKE_FLAGS "-DINCLUDE_DIRECTORIES=${CMAKE_CURRENT_SOURCE_DIR}"
+- COMPILE_DEFINITIONS "-DXXH_STATIC_LINKING_ONLY")
+-
+-target_compile_definitions(third_party INTERFACE "-DXXH_STATIC_LINKING_ONLY")
+-if(USE_XXH_DISPATCH)
+- target_sources(third_party PRIVATE xxh_x86dispatch.c)
+- target_compile_definitions(third_party INTERFACE "-DUSE_XXH_DISPATCH")
+-endif()
+
+ # Treat third party headers as system files (no warning for those headers).
+ target_include_directories(
+diff --git a/src/util/XXH3_128.hpp b/src/util/XXH3_128.hpp
+index 309ac7c..f9865a6 100644
+--- a/src/util/XXH3_128.hpp
++++ b/src/util/XXH3_128.hpp
+@@ -25,7 +25,7 @@
+ #ifdef USE_XXH_DISPATCH
+ # include <third_party/xxh_x86dispatch.h>
+ #else
+-# include <third_party/xxhash.h>
++# include <xxhash.h>
+ #endif
+
+ #include <cstdint>
+diff --git a/src/util/XXH3_64.hpp b/src/util/XXH3_64.hpp
+index 61f0fab..11b416b 100644
+--- a/src/util/XXH3_64.hpp
++++ b/src/util/XXH3_64.hpp
+@@ -21,7 +21,7 @@
+ #ifdef USE_XXH_DISPATCH
+ # include "third_party/xxh_x86dispatch.h"
+ #else
+-# include "third_party/xxhash.h"
++# include <xxhash.h>
+ #endif
+
+ #include <cstdint>
diff --git a/main/cciss_vol_status/APKBUILD b/main/cciss_vol_status/APKBUILD
index 56abfcf517b..5e7ddc08105 100644
--- a/main/cciss_vol_status/APKBUILD
+++ b/main/cciss_vol_status/APKBUILD
@@ -1,16 +1,15 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=cciss_vol_status
pkgver=1.12a
-pkgrel=0
+pkgrel=2
pkgdesc="Drivers for the HP (previously Compaq) Smart Array controllers which provide hardware RAID capability"
-url="http://cciss.sourceforge.net/"
+url="https://cciss.sourceforge.net/"
arch="all"
license="GPL-2.0-or-later"
makedepends="linux-headers"
subpackages="$pkgname-doc"
source="https://downloads.sourceforge.net/cciss/cciss_vol_status-$pkgver.tar.gz"
-
build() {
./configure \
--build=$CBUILD \
diff --git a/main/cdparanoia/APKBUILD b/main/cdparanoia/APKBUILD
index 2d1c905184a..7c0b721efe8 100644
--- a/main/cdparanoia/APKBUILD
+++ b/main/cdparanoia/APKBUILD
@@ -2,15 +2,16 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=cdparanoia
pkgver=10.2
-pkgrel=10
+pkgrel=14
pkgdesc="An audio CD extraction application"
-url="http://www.xiph.org/paranoia"
+url="https://www.xiph.org/paranoia"
arch="all"
options="!check" # Build system has test suite commented out.
-license="LGPL-2.0-or-later"
+license="GPL-2.0-or-later"
makedepends="libtool autoconf automake linux-headers"
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
-source="http://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-$pkgver.src.tgz
+source="https://downloads.xiph.org/releases/cdparanoia/cdparanoia-III-$pkgver.src.tgz
+ format-security.patch
gcc.patch
fix-includes.patch"
builddir="$srcdir/$pkgname-III-$pkgver"
@@ -42,6 +43,7 @@ package() {
libs() {
pkgdesc="Libraries for libcdda_paranoia (Paranoia III)"
+ license="LGPL-2.1-or-later"
replaces="cdparanoia"
install -d "$subpkgdir"/usr
mv "$pkgdir"/usr/lib "$subpkgdir"/usr/
@@ -49,6 +51,7 @@ libs() {
sha512sums="
4ab0a0f5ef44d56c1af72d1fc1035566a1a89c4eeddb9e8baea675fe51c06138d913342afc8bed167d9fa55672fa25a2763ce21f7e24c1232e4739aff20733a7 cdparanoia-III-10.2.src.tgz
+be88cbe9fb611e56eb180de15422b31436226728246397f8460ea56444ea59537efdcde39ffee170ea8d6cf1784ec71df98c1a65c436f7e59a1057e952384a1c format-security.patch
27bf216e8b5b9d6971e3999166544025f166587df06065b89657dac62d0d53c01b76f53146c1e9a400dd71460567fadb8fd4ce00576836f972914d69e8855909 gcc.patch
e8a5ef0f5bcdba697d2d49e31346832bfa2460e6f6cac9256420f57c74a5da2945bdc664368c91365a880ba76e638f58773468d8e8bd16e7afcaff955a1a82ce fix-includes.patch
"
diff --git a/main/cdparanoia/format-security.patch b/main/cdparanoia/format-security.patch
new file mode 100644
index 00000000000..16527551a4a
--- /dev/null
+++ b/main/cdparanoia/format-security.patch
@@ -0,0 +1,17 @@
+diff --git a/main.c b/main.c
+index 664acac..d568fb1 100644
+--- a/main.c
++++ b/main.c
+@@ -588,10 +588,10 @@ static void callback(long inpos, int function){
+ buffer[aheadposition+19]='>';
+ }
+
+- fprintf(stderr,buffer);
++ fprintf(stderr, "%s", buffer);
+
+ if (logfile != NULL && function==-1) {
+- fprintf(logfile,buffer+1);
++ fprintf(logfile, "%s", buffer+1);
+ fprintf(logfile,"\n\n");
+ fflush(logfile);
+ }
diff --git a/main/cgdb/APKBUILD b/main/cgdb/APKBUILD
index 13465c19430..f3d6b5edfcd 100644
--- a/main/cgdb/APKBUILD
+++ b/main/cgdb/APKBUILD
@@ -2,18 +2,22 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=cgdb
pkgver=0.8.0
-pkgrel=0
+pkgrel=2
pkgdesc="The Curses Debugger"
arch="all"
-license="GPL-2.0"
+license="GPL-2.0-or-later"
url="https://cgdb.github.io/"
depends="gdb"
makedepends="flex bison texinfo help2man ncurses-dev readline-dev"
source="http://cgdb.me/files/cgdb-$pkgver.tar.gz"
subpackages="$pkgname-doc"
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
- cd "$builddir"
CFLAGS="$CFLAGS -std=c11" \
CXXFLAGS="$CXXFLAGS -std=c++11" \
./configure \
@@ -25,12 +29,10 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make install \
pkgconfigdir="/usr/lib/pkgconfig" \
DESTDIR="$pkgdir"
diff --git a/main/cgit/APKBUILD b/main/cgit/APKBUILD
index 930ead579d5..9bccf905f5a 100644
--- a/main/cgit/APKBUILD
+++ b/main/cgit/APKBUILD
@@ -2,17 +2,18 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=cgit
pkgver=1.2.3
-pkgrel=2
+pkgrel=5
_gitver=2.25.1
pkgdesc="A fast webinterface for git"
url="https://git.zx2c4.com/cgit/"
arch="all"
-license="GPL-2.0-only"
-makedepends="openssl1.1-compat-dev zlib-dev lua5.3-dev asciidoc"
+license="GPL-2.0-or-later"
+makedepends="openssl-dev>3 zlib-dev lua5.3-dev asciidoc"
subpackages="$pkgname-doc"
source="http://git.zx2c4.com/cgit/snapshot/cgit-$pkgver.tar.xz
https://www.kernel.org/pub/software/scm/git/git-$_gitver.tar.gz
"
+options="!check"
_makeopts="NO_ICONV=YesPlease
NO_GETTEXT=YesPlease
diff --git a/main/charybdis/APKBUILD b/main/charybdis/APKBUILD
deleted file mode 100644
index 1e1d7284abb..00000000000
--- a/main/charybdis/APKBUILD
+++ /dev/null
@@ -1,67 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=charybdis
-pkgver=4.1.2
-pkgrel=4
-pkgdesc="A highly-scalable IRCv3-compliant IRC daemon"
-url="https://github.com/charybdis-ircd/charybdis"
-arch="all"
-license="GPL-2.0-or-later"
-pkgusers="ircd"
-makedepends="automake autoconf libtool
- bison flex openssl1.1-compat-dev zlib-dev file
- sqlite-dev libltdl"
-install="$pkgname.pre-install"
-subpackages="$pkgname-openrc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/charybdis-ircd/charybdis/archive/charybdis-$pkgver.tar.gz
- $pkgname.initd
- $pkgname.confd
- fix-missing-include.patch
- "
-builddir="$srcdir"/$pkgname-$pkgname-$pkgver
-
-prepare() {
- default_prepare
- ./autogen.sh
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc/charybdis \
- --localstatedir=/var/lib \
- --libexecdir=/usr/lib \
- --libdir=/usr/lib/charybdis \
- --enable-epoll \
- --with-custom-branding=alpinelinux \
- --enable-openssl \
- --enable-ipv6 \
- --with-shared-sqlite \
- --with-rundir=/var/run/charybdis \
- --with-logdir=/var/log/charybdis \
- --with-moduledir=/usr/lib/charybdis/modules \
- --with-program-prefix=charybdis-
- make -j1
-}
-
-check() {
- make check
-}
-
-package() {
- make -j1 DESTDIR="$pkgdir" install
- install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/charybdis-ircd
- install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/charybdis-ircd
- install -d -o ircd "$pkgdir"/var/run/charybdis
- install -d -o ircd "$pkgdir"/var/lib/charybdis
- install -d -o ircd "$pkgdir"/var/log/charybdis
-}
-
-sha512sums="
-409d64f1e6660c667699013436f434e419c5a8fb49acc9db0f2f707d0aee55d93df58c81beb60fb736cf8bd64499a64519a32d15b384aa628801eb2f20620545 charybdis-4.1.2.tar.gz
-7c5288f5a1f070a534ecfb306b233802515fff916411e7eb7837398f0f126f38b9338a046d5e4fc211f6f8328404b1f2db71aac2b8ef968173a700b09faa5f7a charybdis.initd
-1886b312b0ea40945de45db7a379bff2a3af426155fb77676e03f21f8d1d733e057fb5c3cb65fb72bb56008c4c92f3d2d0010563f871fd0802446de443ddfd5e charybdis.confd
-9266961cbe610eca9b4ad91384244587fd80539e3076c4a291466434be2feeebe8711e5f356e7b8bc0ec0abf41a93ac5ddd9010914f1a5e4f00647249ce9a642 fix-missing-include.patch
-"
diff --git a/main/charybdis/charybdis.confd b/main/charybdis/charybdis.confd
deleted file mode 100644
index b91c0d9276a..00000000000
--- a/main/charybdis/charybdis.confd
+++ /dev/null
@@ -1,3 +0,0 @@
-CHARYBDIS_USER="ircd"
-CHARYBDIS_PID="/var/run/charybdis/ircd.pid"
-CHARYBDIS_CONF="/etc/charybdis/ircd.conf"
diff --git a/main/charybdis/charybdis.initd b/main/charybdis/charybdis.initd
deleted file mode 100644
index 779d6425dc8..00000000000
--- a/main/charybdis/charybdis.initd
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/sbin/openrc-run
-
-command="/usr/bin/charybdis"
-command_user="${CHARYBDIS_USER:-ircd}"
-
-depend() {
- use net
- provide ircd
-}
diff --git a/main/charybdis/charybdis.pre-install b/main/charybdis/charybdis.pre-install
deleted file mode 100644
index 8675cb94138..00000000000
--- a/main/charybdis/charybdis.pre-install
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-adduser -S -D -h /var/run/charybdis -s /sbin/nologin -g ircd ircd 2>/dev/null
-
-exit 0
diff --git a/main/charybdis/fix-missing-include.patch b/main/charybdis/fix-missing-include.patch
deleted file mode 100644
index b4fc8f0a24f..00000000000
--- a/main/charybdis/fix-missing-include.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/librb/include/rb_lib.h b/librb/include/rb_lib.h
-index c02dff6..17a5b6b 100644
---- a/librb/include/rb_lib.h
-+++ b/librb/include/rb_lib.h
-@@ -9,6 +9,7 @@
- #include <fcntl.h>
- #include <signal.h>
- #include <ctype.h>
-+#include <time.h>
-
- #ifdef __GNUC__
- #undef alloca
diff --git a/main/check/APKBUILD b/main/check/APKBUILD
index f41e34a8edd..7cb794b82f3 100644
--- a/main/check/APKBUILD
+++ b/main/check/APKBUILD
@@ -1,12 +1,12 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=check
pkgver=0.15.2
-pkgrel=0
+pkgrel=5
pkgdesc="A unit test framework for C"
url="https://libcheck.github.io/check/"
arch="all"
-license="LGPL-2.0-or-later"
+license="LGPL-2.1-or-later"
makedepends="pkgconfig texinfo autoconf automake libtool"
checkdepends="diffutils gawk"
subpackages="$pkgname-doc $pkgname-dev"
@@ -38,4 +38,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="77fb34348bc1b1517801865afee5064121a245c10685e6bb6b8f743552646a0643cfdf9fd3dfbf9b2297d9430dfdd49616cf7daf41298d2dbd699f10d654a025 check-0.15.2.tar.gz"
+sha512sums="
+77fb34348bc1b1517801865afee5064121a245c10685e6bb6b8f743552646a0643cfdf9fd3dfbf9b2297d9430dfdd49616cf7daf41298d2dbd699f10d654a025 check-0.15.2.tar.gz
+"
diff --git a/main/checkbashisms/APKBUILD b/main/checkbashisms/APKBUILD
deleted file mode 100644
index 1be57cb0062..00000000000
--- a/main/checkbashisms/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=checkbashisms
-pkgver=2.22.1
-pkgrel=0
-pkgdesc="Check shell scripts for POXIX compliance"
-url="https://tracker.debian.org/pkg/devscripts"
-arch="noarch"
-license="GPL-2.0-or-later"
-depends="perl"
-subpackages="$pkgname-doc $pkgname-bash-completion"
-source="https://ftp.debian.org/debian/pool/main/d/devscripts/devscripts_$pkgver.tar.xz"
-builddir="$srcdir/devscripts-$pkgver/scripts"
-
-check() {
- printf '#!/bin/sh\necho "hello world"\n' > ./testfile
- perl ./checkbashisms --version
- perl ./checkbashisms ./testfile
-}
-
-prepare() {
- default_prepare
- mv "$pkgname".pl "$pkgname"
- sed -i "s/###VERSION###/$pkgver/" "$pkgname"
-}
-
-package() {
- install -Dm755 "$pkgname" "$pkgdir/usr/bin/$pkgname"
- install -Dm644 "$pkgname".1 \
- "$pkgdir/usr/share/man/man1/$pkgname".1
- install -Dm644 "$pkgname".bash_completion \
- $pkgdir/usr/share/bash-completion/completions/"$pkgname"
-}
-
-sha512sums="
-260603e1a655035c5aca3c9734db1bc6aa7e9aa017ece7e9158c57e06a1ee548922ec2defdd9dcb4560743d78aef08d30695b1bc833bd4d77fe1c7497d157c45 devscripts_2.22.1.tar.xz
-"
diff --git a/main/chrony/APKBUILD b/main/chrony/APKBUILD
index 1b2791e0c7a..488d57f84f8 100644
--- a/main/chrony/APKBUILD
+++ b/main/chrony/APKBUILD
@@ -2,20 +2,19 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=chrony
-pkgver=4.2
+pkgver=4.5
pkgrel=0
pkgdesc="NTP client and server programs"
-url="https://chrony.tuxfamily.org"
+url="https://chrony-project.org/"
pkgusers="$pkgname"
pkggroups="$pkgname"
arch="all"
-license="GPL-2.0-only"
+license="GPL-2.0-or-later"
install="$pkgname.pre-install $pkgname.pre-upgrade"
-makedepends="asciidoctor libcap-dev texinfo nettle-dev gnutls-dev"
+makedepends="asciidoctor libcap-dev texinfo nettle-dev gnutls-dev libseccomp-dev"
checkdepends="bash"
-subpackages="$pkgname-doc $pkgname-openrc"
-source="https://download.tuxfamily.org/chrony/chrony-$pkgver.tar.gz
- fix-tests.patch
+subpackages="$pkgname-dbg $pkgname-doc $pkgname-openrc"
+source="https://chrony-project.org/releases/chrony-$pkgver.tar.gz
max_resolve_interval.patch
chronyd.confd
@@ -39,14 +38,18 @@ prepare() {
}
build() {
- CPPFLAGS="$CPPFLAGS -I./pps-tools/" ./configure \
+ CPPFLAGS="$CPPFLAGS -I./pps-tools/" \
+ CFLAGS="$CFLAGS -flto=auto" \
+ ./configure \
--prefix=/usr \
--mandir=/usr/share/man \
--sysconfdir=/etc/$pkgname \
+ --chronyrundir=/run/chrony \
--disable-readline \
--with-user=$pkgname \
--with-sendmail=/usr/sbin/sendmail \
- --enable-ntp-signd
+ --enable-ntp-signd \
+ --enable-scfilter
make all docs
}
@@ -80,11 +83,10 @@ package() {
}
sha512sums="
-7f946b27de605b3ebea62cf23916dfad77c99e8b2338ba239ede6b8216ce436b3d4d87770f371c8d8e006507c51d5c831b51f067957abd2935adfdec3f5aa67d chrony-4.2.tar.gz
-067d47224a8c075ec8f63ffc58e65b030fdf228a72c4f03d50a2f2c17414da65bb5d27c7c2e4ba99e909f452041db83eaebe3c9e34c0c8fce18e05ebb489735e fix-tests.patch
-b26581ed32680585edea5b8163a0062a87f648394c0f363c77a7d01a36608fcf4d005d9e6ab179ed2827b8a08f598f7bad4801bb5e135cad5107eb77fb19b247 max_resolve_interval.patch
+58a449e23186da799064b16ab16f799c1673296984b152b43e87c620d86e272c55365e83439d410fc89e4e0ba0befd7d5c625eac78a6665813b7ea75444f71b5 chrony-4.5.tar.gz
+f6f2056d1e70785f66b0fbec6e3ec9b0184785eac262e28e2a2c4d5a49762bf780ed7c2c7990a93f6ef063c167cea01fb8828705be558d0b8ff8c07d6962239f max_resolve_interval.patch
c1ce577ed1af9f3d88a6a2880a4834ae0c6a7f45870d9396d2aacd7716eb8de346ce458e1a45fdd48b1e8b8f5cd3afcba9534ac47fedb517604c9d910a342fac chronyd.confd
-1501161812ad12679d47a1b671d2ddbe94ec5825d5e225729057abc3b8869cb813acd8bdd7adaba0cd786afdf04280228e327a3b83f89a11d06bf3cb826c5269 chronyd.initd
+cc19b01a2a2cc26738f52c2c15d88db47240dcd00987ce5e75ba69fae8385b83a2643946f390d7ce0b73826b8de878989788b36ae5e43b2daac4477cbf9752f6 chronyd.initd
663c6316bcca762de119d88e4bb6536bfe0fea19939fe1b673900847619e7f1d6783b789b38ebba97b5dc3778dedf798bafd65f00f8bd7e312bfed7df0caaf71 chrony.conf
eb11fc19243d1789016d88eb7645bfe67c46304547781489bf36eb1dd4c252d523681ff835a6488fa0ef62b6b9e2f781c672279f4439f5d5640a3f214a113048 timepps.h
"
diff --git a/main/chrony/chronyd.initd b/main/chrony/chronyd.initd
index e6ad293dd60..08b4d31a121 100644
--- a/main/chrony/chronyd.initd
+++ b/main/chrony/chronyd.initd
@@ -1,11 +1,10 @@
#!/sbin/openrc-run
-# Copyright 1999-2007 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/chrony/files/chronyd.rc,v 1.8 2007/03/22 14:32:09 tove Exp $
command="/usr/sbin/chronyd"
description="NTP daemon"
-pidfile="/var/run/chrony/chronyd.pid"
+pidfile="/run/chrony/chronyd.pid"
+required_files="$CFGFILE"
+command_args="-f $CFGFILE $ARGS"
depend() {
need net
@@ -14,71 +13,20 @@ depend() {
use dns
}
-checkconfig() {
- # Note that /etc/chrony/chrony.keys is *NOT* checked. This
- # is because the user may have specified another key
- # file, and we don't want to force the user to use that
- # exact name for the key file.
- if [ ! -f "${CFGFILE}" ] ; then
- eerror "Please create ${CFGFILE} and the"
- eerror "chrony key file (usually /etc/chrony/chrony.keys)"
- eerror "by using the"
- eerror ""
- eerror " chrony.conf.example"
- eerror " chrony.keys.example"
- eerror ""
- eerror "files (from the documentation directory)"
- eerror "as templates."
- return 1
- else
- # Actually, I tried it, and chrony seems to ignore the pidfile
- # option. I'm going to leave it here anyway, since you never
- # know if it might be handy
- _cfg_pidfile=`awk '/^ *pidfile/{print $2}' "${CFGFILE}"`
- if [ -n "$_cfg_pidfile" ] ; then
- pidfile="$_cfg_pidfile"
- fi
- fi
- return 0
-}
-
-setxtrarg() {
- if [ -c /dev/rtc ]; then
- grep -q '^rtcfile' "${CFGFILE}" && ARGS="${ARGS} -s"
- fi
- grep -q '^dumponexit$' "${CFGFILE}" && ARGS="${ARGS} -r"
- return 0
-}
-
start() {
- checkconfig || return $?
- setxtrarg
-
- # If we are configured to run in a VRF, provide a hint for that
- RC_VRF_EXEC=""
- if [ -n "$vrf" ]; then
- RC_VRF_EXEC="/sbin/ip vrf exec $vrf"
+ if [ -c /dev/rtc ]; then
+ grep -q '^rtcfile' "${CFGFILE}" && command_args="$command_args -s"
fi
-
- local daemon_args=
+ grep -q '^dumponexit$' "${CFGFILE}" && command_args="$command_args -r"
if yesno "$FAST_STARTUP"; then
- ARGS="${ARGS} -n"
- daemon_args="--background"
+ # this option makes it stay in foreground and let openrc do the tracking,
+ # so we have to set pidfile to a dir that exists earlier.
+ # the reason this is not the default is because there is no 'readiness',
+ # self-backgrounding chrony waits for time to sync before continuing,
+ # and this form does not.
+ command_args="$command_args -n"
+ command_background=true
+ pidfile=/run/chronyd.pid
fi
-
- ebegin "Starting chronyd"
- eval ${RC_VRF_EXEC} start-stop-daemon $daemon_args --start --quiet \
- --exec "${command}" \
- --pidfile "${pidfile}" \
- -- -f "${CFGFILE}" ${ARGS}
- eend $? "Failed to start chronyd"
-}
-
-stop() {
- checkconfig || return $?
-
- ebegin "Stopping chronyd"
- start-stop-daemon --stop --quiet \
- --pidfile "${pidfile}"
- eend $? "Failed to stop chronyd"
+ default_start
}
diff --git a/main/chrony/fix-tests.patch b/main/chrony/fix-tests.patch
deleted file mode 100644
index 6291fb0469e..00000000000
--- a/main/chrony/fix-tests.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -upr chrony-3.2.orig/test/unit/test.c chrony-3.2/test/unit/test.c
---- chrony-3.2.orig/test/unit/test.c 2017-11-29 11:32:23.610059580 +0100
-+++ chrony-3.2/test/unit/test.c 2017-11-29 11:32:51.213742887 +0100
-@@ -23,6 +23,8 @@
- #include <logging.h>
- #include <localp.h>
-
-+#include <sys/param.h>
-+
- #include "test.h"
-
- void
diff --git a/main/chrony/max_resolve_interval.patch b/main/chrony/max_resolve_interval.patch
index 6343d912235..d6a5f373e9f 100644
--- a/main/chrony/max_resolve_interval.patch
+++ b/main/chrony/max_resolve_interval.patch
@@ -2,12 +2,12 @@ Try fix behaviour when network is not available at bootup
--- ./ntp_sources.c.orig
+++ ./ntp_sources.c
-@@ -87,7 +85,7 @@
+@@ -109,7 +109,7 @@
#define RESOLVE_INTERVAL_UNIT 7
#define MIN_RESOLVE_INTERVAL 2
-#define MAX_RESOLVE_INTERVAL 9
+#define MAX_RESOLVE_INTERVAL 6
- #define MIN_REPLACEMENT_INTERVAL 8
+ #define MAX_REPLACEMENT_INTERVAL 9
static struct UnresolvedSource *unresolved_sources = NULL;
diff --git a/main/chrpath/APKBUILD b/main/chrpath/APKBUILD
index f2bc440be44..089a7c79a6c 100644
--- a/main/chrpath/APKBUILD
+++ b/main/chrpath/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=chrpath
pkgver=0.16
-pkgrel=2
+pkgrel=4
pkgdesc="Modify rpath of compiled programs"
url="https://tracker.debian.org/pkg/chrpath"
arch="all"
@@ -15,7 +15,6 @@ prepare() {
}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -28,12 +27,10 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" docdir=/usr/share/doc/$pkgname-$pkgver \
install
}
diff --git a/main/cifs-utils/APKBUILD b/main/cifs-utils/APKBUILD
index 03ccae8f85a..b4cbeb796aa 100644
--- a/main/cifs-utils/APKBUILD
+++ b/main/cifs-utils/APKBUILD
@@ -1,18 +1,19 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=cifs-utils
-pkgver=6.15
-pkgrel=0
+pkgver=7.0
+pkgrel=3
pkgdesc="CIFS filesystem user-space tools"
url="https://wiki.samba.org/index.php/LinuxCIFS_utils"
arch="all"
-license="GPL-2.0-or-later"
+license="GPL-3.0-or-later"
makedepends="libcap-dev keyutils-dev krb5-dev talloc-dev
autoconf automake samba-dev py3-docutils"
subpackages="$pkgname-doc $pkgname-dev"
source="https://ftp.samba.org/pub/linux-cifs/cifs-utils/cifs-utils-$pkgver.tar.bz2
musl-fix-includes.patch
xattr_size_max.patch
+ cifs.upcall.request-key.conf
"
options="suid"
@@ -27,6 +28,8 @@ options="suid"
prepare() {
default_prepare
+ update_config_sub
+
autoreconf -i
}
@@ -44,13 +47,16 @@ check() {
package() {
make DESTDIR="$pkgdir" install
- rm -r $pkgdir/usr/bin
- # set mount.cifs uid, to enable none root mounting form fstab
+ rm -r "$pkgdir"/usr/bin
+ # set mount.cifs uid, to enable non-root mounting from fstab
chmod +s $pkgdir/sbin/mount.cifs
+ mkdir -p "$pkgdir"/etc/request-key.d
+ install -Dm644 "$srcdir"/cifs.upcall.request-key.conf "$pkgdir"/etc/request-key.d/
}
sha512sums="
-eedb8066563db584595a8ba7cb7a603e6b763ac2c1261430d605c327fcc5a831acd48b58ea55dd243af778dfdc827ab8c6daf4015764ff550dcffc2182773510 cifs-utils-6.15.tar.bz2
+4c57741af0c4567a78f352c73caca998881666a5ed36536275cfa775efd66ff1a44ebe539a8ed96c409c5b08a1378266964ce667a27e9fc7f2d43999c63dd0eb cifs-utils-7.0.tar.bz2
99a2fab05bc2f14a600f89526ae0ed2c183cfa179fe386cb327075f710aee3aed5ae823f7c2f51913d1217c2371990d6d4609fdb8d80288bd3a6139df3c8aebe musl-fix-includes.patch
2a9366ec1ddb0389c535d2fa889f63287cb8374535a47232de102c7e50b6874f67a3d5ef3318df23733300fd8459c7ec4b11f3211508aca7800b756119308e98 xattr_size_max.patch
+4b5f32e6b80858858713ffa918bf592e39deeebe03e2d05cff965e13fde8ca8c20a7b5283bce89c0a0cb0d9447044f71807698274ed9d5fd8c71f450fdc29512 cifs.upcall.request-key.conf
"
diff --git a/main/cifs-utils/cifs.upcall.request-key.conf b/main/cifs-utils/cifs.upcall.request-key.conf
new file mode 100644
index 00000000000..1a6e1b7d52a
--- /dev/null
+++ b/main/cifs-utils/cifs.upcall.request-key.conf
@@ -0,0 +1,2 @@
+#OP TYPE DESCRIPTION CALLOUT INFO PROGRAM ARG1 ARG2 ARG3 ...
+create cifs.spnego * * /usr/sbin/cifs.upcall %k
diff --git a/main/ciwiki/APKBUILD b/main/ciwiki/APKBUILD
deleted file mode 100644
index aa2ebc88025..00000000000
--- a/main/ciwiki/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: ScrumpyJack <scrumpyjack@st.ilet.to>
-# Maintainer: ScrumpyJack <scrumpyjack@st.ilet.to>
-pkgname=ciwiki
-pkgver=2.0.5
-pkgrel=2
-pkgdesc="personal lightweight wiki written in C"
-url="http://ciwiki.sourceforge.net/"
-arch="all"
-license="GPL-2.0-or-later"
-options="!check"
-subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/project/ciwiki/ciwiki-$pkgver.tar.gz
- gcc-10.patch
- "
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --mandir=/usr/share/man \
- --libexecdir=/usr/lib/ciwiki
- make
-}
-
-package() {
- make install DESTDIR="$pkgdir"
-
-}
-
-sha512sums="ce4aefb8fa7cc0630b1d1841260452d50f762a8c8b3e8da1fb0c878cada9ccfc1824d1e20004db8bc8f9c77a0658879e3fa97c4914e73618b404937fb5ea1c29 ciwiki-2.0.5.tar.gz
-d6843ea7a757ad3ebc59f550c8fbebe5c12ddf7345f31c5cac9aca3929f263264d9eb6dbc48c0edb107e2d122b299017da94bf6909a5db565b7a7872ff415ea3 gcc-10.patch"
diff --git a/main/ciwiki/gcc-10.patch b/main/ciwiki/gcc-10.patch
deleted file mode 100644
index 52aaf26142d..00000000000
--- a/main/ciwiki/gcc-10.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Upstream: Should be
-Reason: Fixes compilation under gcc-10
-
-diff --git a/src/wiki.c b/src/wiki.c
-index cb88f72..b2be314 100755
---- a/src/wiki.c
-+++ b/src/wiki.c
-@@ -29,8 +29,7 @@ extern int upload_status;
- extern int lgindex;
- extern int Exec_allowed;
- extern int Upload_allowed;
--
--int loginform;
-+extern int loginform;
-
- /* read wiki page */
- static char *
diff --git a/main/cjdns/APKBUILD b/main/cjdns/APKBUILD
deleted file mode 100644
index 9044aa21e72..00000000000
--- a/main/cjdns/APKBUILD
+++ /dev/null
@@ -1,49 +0,0 @@
-# Maintainer: kpcyrd <git@rxv.cc>
-# Contributor: kpcyrd <git@rxv.cc>
-# Contributor: Bartłomiej Piotrowski <bpiotrowski@alpinelinux.org>
-pkgname=cjdns
-pkgver=21.1
-pkgrel=2
-pkgdesc="A routing engine designed for security, scalability, speed and ease of use"
-url="https://github.com/cjdelisle/cjdns"
-#arch="all !mips64 !s390x !ppc64le !riscv64"
-license="GPL-3.0-or-later"
-makedepends="nodejs python3 linux-headers libseccomp-dev"
-install="$pkgname.post-install"
-subpackages="$pkgname-doc $pkgname-openrc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/cjdelisle/cjdns/archive/cjdns-v$pkgver.tar.gz
- no-march-flag.patch"
-
-builddir="$srcdir/$pkgname-$pkgname-v$pkgver"
-
-build() {
- export CJDNS_RELEASE_VERSION="$pkgver"
- node ./node_build/make.js
-}
-
-check() {
- ./cjdroute --help >/dev/null
-}
-
-package() {
- install -Dm755 cjdroute "$pkgdir/usr/sbin/cjdroute"
- install -Dm755 contrib/openrc/cjdns "$pkgdir/etc/init.d/cjdns"
- install -Dm644 doc/man/cjdroute.1 \
- "$pkgdir/usr/share/man/man1/cjdroute.1"
- install -Dm644 doc/man/cjdroute.conf.5 \
- "$pkgdir/usr/share/man/man5/cjdroute.conf.5"
- install -Dm 644 README.md "$pkgdir/usr/share/doc/$pkgname/README.md"
- install -Dm644 -t "$pkgdir/usr/share/doc/$pkgname" \
- doc/admin-api.md \
- doc/configure.md \
- doc/djc_layer_model.md \
- doc/nat-gateway.md \
- doc/network-services.md \
- doc/non-root-user.md \
- doc/security_specification.md \
- doc/shorewall_and_vpn_gateway_howto.md \
- doc/tunnel.md
-}
-
-sha512sums="5a50b22ce018a8e799ebaa11c0c2998d8a75489c2e54da11b4d9f07f2b00073af34328c431b90afbe6e8796302f2137aa62625dcdd56c0cced785fc2b280ccf6 cjdns-21.1.tar.gz
-571c675a83c5464d31ca1dc130d559dea1866013f7e4445fb16a5f9c9d9f9b63c07a9a9714f47abbb3a62ff334b4eeaadd849cb90818bec88be773d525ff7d5f no-march-flag.patch"
diff --git a/main/cjdns/cjdns.post-install b/main/cjdns/cjdns.post-install
deleted file mode 100644
index 0e091e941c1..00000000000
--- a/main/cjdns/cjdns.post-install
+++ /dev/null
@@ -1,5 +0,0 @@
-#!/bin/sh
-
-umask 007
-[ ! -f /etc/cjdroute.conf ] && \
- cjdroute --genconf > /etc/cjdroute.conf
diff --git a/main/cjdns/no-march-flag.patch b/main/cjdns/no-march-flag.patch
deleted file mode 100644
index 29132d4f0cf..00000000000
--- a/main/cjdns/no-march-flag.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/node_build/make.js
-+++ b/node_build/make.js
-@@ -27,7 +27,7 @@
-
- var CFLAGS = process.env['CFLAGS'];
- var LDFLAGS = process.env['LDFLAGS'];
--var NO_MARCH_FLAG = ['arm', 'ppc', 'ppc64'];
-+var NO_MARCH_FLAG = ['arm', 'arm64', 'mips', 'mips64', 'mips64el', 'mipsel', 'ppc', 'ppc64'];
-
- Builder.configure({
- systemName: process.env['SYSTEM'] || process.platform,
diff --git a/main/cjson/APKBUILD b/main/cjson/APKBUILD
index ce429c26154..06ea4c62d15 100644
--- a/main/cjson/APKBUILD
+++ b/main/cjson/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=cjson
-pkgver=1.7.15
-pkgrel=3
+pkgver=1.7.17
+pkgrel=0
pkgdesc="Lighweight JSON parser in C"
url="https://github.com/DaveGamble/cJSON"
arch="all"
@@ -12,6 +12,11 @@ subpackages="$pkgname-dev"
source="$pkgname-$pkgver.tar.gz::https://github.com/DaveGamble/cJSON/archive/v$pkgver.tar.gz"
builddir="$srcdir/cJSON-$pkgver"
+# secfixes:
+# 1.7.17-r0:
+# - CVE-2023-50472
+# - CVE-2023-50471
+
build() {
if [ "$CBUILD" != "$CHOST" ]; then
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
@@ -19,9 +24,8 @@ build() {
cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
- -DBUILD_SHARED_LIBS=True \
+ -DBUILD_SHARED_AND_STATIC_LIBS=True \
-DCMAKE_BUILD_TYPE=MinSizeRel \
- -DCMAKE_C_FLAGS="$CFLAGS" \
$CMAKE_CROSSOPTS
cmake --build build
}
@@ -36,5 +40,5 @@ package() {
}
sha512sums="
-0b32a758c597fcc90c8ed0af493c9bccd611b9d4f9a03e87de3f7337bb9a28990b810befd44bc321a0cb42cbcd0b026d45761f9bab7bd798f920b7b6975fb124 cjson-1.7.15.tar.gz
+4feebafa5225297fa3e6a7bf23f8d31b5c3e172f437078c5a07528522ad58ca2e9c72dd9e8611241d2b8321e9aa0a1a9af7743689d1c2001d1d9cb624aae6fa8 cjson-1.7.17.tar.gz
"
diff --git a/main/ckbcomp/APKBUILD b/main/ckbcomp/APKBUILD
index 4b9770b262c..aa990809f26 100644
--- a/main/ckbcomp/APKBUILD
+++ b/main/ckbcomp/APKBUILD
@@ -1,15 +1,15 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=ckbcomp
-pkgver=1.208
+pkgver=1.226
pkgrel=0
pkgdesc="Compile a XKB keyboard description to a keymap"
-url="https://packages.debian.org/sid/console-setup"
+url="https://salsa.debian.org/installer-team/console-setup"
arch="noarch"
license="GPL-2.0-or-later"
depends="perl"
options="!check"
subpackages="$pkgname-doc"
-source="https://deb.debian.org/debian/pool/main/c/console-setup/console-setup_$pkgver.tar.xz"
+source="https://salsa.debian.org/installer-team/console-setup/-/archive/$pkgver/console-setup-$pkgver.tar.gz"
builddir="$srcdir"/console-setup-$pkgver
package() {
@@ -18,5 +18,5 @@ package() {
}
sha512sums="
-2fbc68bd6cf10e61eae50cef8fa8e26cc293f22d8303969032e2b693e9e4424cd87bcb7a411868694f7fac66365b3ac2f414dd281bc3dd3ad22d52a25e268313 console-setup_1.208.tar.xz
+419cd3d09a10e36586c325d939b80e6e096963890e88294635599a9122e7964a420dccaa9c682574cb73b816fafe893e97f8f56ad100b8e0e2a073730542f5c8 console-setup-1.226.tar.gz
"
diff --git a/main/cksfv/APKBUILD b/main/cksfv/APKBUILD
index a783d2bb5e0..7b11cb48570 100644
--- a/main/cksfv/APKBUILD
+++ b/main/cksfv/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=cksfv
pkgver=1.3.15
-pkgrel=1
+pkgrel=3
pkgdesc="Simple File Verification"
url="http://zakalwe.fi/~shd/foss/cksfv"
arch="all"
diff --git a/main/clang/APKBUILD b/main/clang/APKBUILD
deleted file mode 100644
index 0df023ebc9c..00000000000
--- a/main/clang/APKBUILD
+++ /dev/null
@@ -1,195 +0,0 @@
-# Contributor Eric Molitor <eric@molitor.org>
-# Contributor Patrick Gansterer <paroga@paroga.com>
-# Contributor Travis Tilley <ttilley@gmail.com>
-# Contributor omni <omni+alpine@hack.org>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=clang
-# Note: Update together with llvm.
-pkgver=14.0.6
-pkgrel=0
-_llvmver=${pkgver%%.*}
-pkgdesc="A C language family front-end for LLVM"
-arch="all"
-url="https://llvm.org/"
-license="Apache-2.0"
-options="!check" # fail to build
-makedepends="
- cmake
- libxml2-dev
- libxml2-utils
- llvm$_llvmver-dev
- llvm$_llvmver-static
- llvm$_llvmver-test-utils
- samurai
- python3
- py3-sphinx
- " # py3-recommonmark is also needed for -doc, but currently in testing
-checkdepends="diffutils bash gtest-dev"
-depends_dev="$pkgname=$pkgver-r$pkgrel $pkgname-extra-tools=$pkgver-r$pkgrel"
-subpackages="$pkgname-static $pkgname-doc $pkgname-libs
- $pkgname-analyzer::noarch
- $pkgname-dev
- $pkgname-extra-tools:extra
- py3-$pkgname:python:noarch
- "
-source="https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/clang-$pkgver.src.tar.xz
- https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/clang-tools-extra-$pkgver.src.tar.xz
- 10-add-musl-triples.patch
- 30-Enable-stack-protector-by-default-for-Alpine-Linux.patch
- llvm-hello.patch
- "
-builddir="$srcdir/clang-$pkgver.src"
-
-prepare() {
- mv "$srcdir/clang-tools-extra-$pkgver.src" "$builddir/tools/extra"
- # Substitute python hashbangs with python3.
- # Some scripts do not have a *.py postfix, thus iterate over all files.
- grep -l -R "^#!/usr/bin/env python$" . | while read -r f; do
- sed -i "$f" -e 's|^#!/usr/bin/env python$|&3|'
- done
- default_prepare
-}
-
-build() {
- mkdir -p "$builddir"/build
- cd "$builddir"/build
-
- python_version=$(python3 -V | sed 's/.*\([0-9]\{1,\}\.[0-9]\{1,\}\)\..*/\1/')
-
- # NOTE: DO NOT change CMAKE_BUILD_TYPE! Buildmodes like None will enable
- # debug assertions for LLVM!
- cmake .. -G Ninja -Wno-dev \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_EXE_LINKER_FLAGS_RELEASE_INIT="$LDFLAGS -Wl,-z,stack-size=2097152" \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCLANG_VENDOR=Alpine \
- -DLLVM_EXTERNAL_LIT=/usr/bin/lit \
- -DCLANG_BUILD_EXAMPLES=OFF \
- -DCLANG_INCLUDE_DOCS=ON \
- -DCLANG_PYTHON_BINDINGS_VERSIONS="$python_version" \
- -DLLVM_BUILD_DOCS=ON \
- -DLLVM_ENABLE_SPHINX=OFF \
- -DSPHINX_WARNINGS_AS_ERRORS=OFF \
- -DCLANG_INCLUDE_TESTS=ON \
- -DCLANG_PLUGIN_SUPPORT=ON \
- -DLIBCLANG_BUILD_STATIC=ON \
- -DLLVM_ENABLE_EH=ON \
- -DLLVM_ENABLE_RTTI=ON \
- -DCLANG_BUILT_STANDALONE=ON
-
- ninja clang-tblgen
- ninja
-}
-
-check() {
- ninja -C build check-all
-}
-
-package() {
- DESTDIR="$pkgdir" ninja -C build install
- install -m 644 build/lib/libclang.a "$pkgdir"/usr/lib
-}
-
-static() {
- pkgdesc="Static libraries for clang"
-
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib/
-}
-
-dev() {
- default_dev
-
- # move back usr/lib/clang/x.y.z/include with files such as altivec.h, msa.h etc
- # these are needed to build programs *with* clang, not *against* it.
- mv "$subpkgdir"/usr/lib/clang "$pkgdir"/usr/lib/
-}
-
-analyzer() {
- pkgdesc="Clang source code analysis framework"
- depends="$pkgname=$pkgver-r$pkgrel perl python3"
-
- cd "$pkgdir"
-
- install -dm0755 \
- "$subpkgdir"/usr/bin \
- "$subpkgdir"/usr/lib \
- "$subpkgdir"/usr/libexec \
- "$subpkgdir"/usr/share
-
- mv usr/bin/scan-* "$subpkgdir"/usr/bin/
- mv usr/bin/analyze-build "$subpkgdir"/usr/bin/
- mv usr/bin/intercept-build "$subpkgdir"/usr/bin/
- mv usr/libexec/*-analyzer "$subpkgdir"/usr/libexec/
- mv usr/libexec/analyze-* "$subpkgdir"/usr/libexec/
- mv usr/libexec/intercept-* "$subpkgdir"/usr/libexec/
- mv usr/share/scan-* "$subpkgdir"/usr/share/
- mv usr/lib/libear "$subpkgdir"/usr/lib
-}
-
-extra() {
- pkgdesc="Extra tools built using Clang’s tooling APIs"
-
- cd "$pkgdir"
-
- install -dm0755 \
- "$subpkgdir"/usr/bin \
- "$subpkgdir"/usr/share/clang \
- "$subpkgdir"/usr/share/emacs/site-lisp
-
- # FIXME: Make sure this is the right list of binaries for -extra-tools
- mv usr/bin/clang-apply-replacements \
- usr/bin/clang-change-namespace \
- usr/bin/clang-check \
- usr/bin/clang-doc \
- usr/bin/clang-extdef-mapping \
- usr/bin/clang-format \
- usr/bin/clang-include-fixer \
- usr/bin/clang-move \
- usr/bin/clang-offload-bundler \
- usr/bin/clang-offload-wrapper \
- usr/bin/clang-query \
- usr/bin/clang-refactor \
- usr/bin/clang-rename \
- usr/bin/clang-reorder-fields \
- usr/bin/clang-repl \
- usr/bin/clang-scan-deps \
- usr/bin/clang-tidy \
- usr/bin/clangd* \
- usr/bin/c-index-test \
- usr/bin/diagtool \
- usr/bin/find-all-symbols \
- usr/bin/git-clang-format \
- usr/bin/hmaptool \
- usr/bin/modularize \
- usr/bin/pp-trace \
- usr/bin/run-clang-tidy \
- "$subpkgdir"/usr/bin
- mv usr/share/clang/clang-include-fixer* \
- usr/share/clang/clang-format*.py \
- usr/share/clang/*clang-tidy* \
- usr/share/clang/run-find-all-symbols.py \
- "$subpkgdir"/usr/share/clang
- mv usr/share/clang/clang-*.el \
- "$subpkgdir"/usr/share/emacs/site-lisp
-}
-
-python() {
- pkgdesc="Clang Python Bindings"
- depends="$pkgname-libs=$pkgver-r$pkgrel python3"
-
- local sitedir=$(python3 -c "import site; print(site.getsitepackages()[0])")
-
- amove usr/lib/python*
-
- # actually a python module..
- mv "$pkgdir"/usr/lib/libscanbuild "$subpkgdir"/"$sitedir"
-}
-
-sha512sums="
-5f5497b57dd116225e90f321902f1015beb50c0b1bb90d0fc6c026f13aa748feabe44f98eb75e86f98f3b1785ad5e850210732f3eae75b942ecd520527dcd30b clang-14.0.6.src.tar.xz
-b55fd9872e52a27599e27fa665cf39af3d172814c0e7246ea0e57286e9eea42bf816f8b6d350334f3fe5e2fae35a8e59d59e71a3a5de330ecb0622ef7655e63f clang-tools-extra-14.0.6.src.tar.xz
-5809d931656cac13b91bc91aac63df072b0403708ac718bf01546d9d520ff2c4163ee11411439dce5bb683a3bfa044b62443b6f66a1419c9086d20e79a018071 10-add-musl-triples.patch
-8d2433160c20e7f4a66dc6e0b4af34fb91f0ef215655c4364ca4d1a65c85e295a9604657ea82fef7414e865e50b3018f4b900398d2ee777224bf1246984fbe54 30-Enable-stack-protector-by-default-for-Alpine-Linux.patch
-e49ac24ebbd2922374c8f0562ef5ba40f481bfc9531303ff391c43d1e0306df360f1bc0e94093521d278ed33662defacf6e7ce644482fb0150259b20f44bba77 llvm-hello.patch
-"
diff --git a/main/clang/llvm-hello.patch b/main/clang/llvm-hello.patch
deleted file mode 100644
index b5cd37a3ed0..00000000000
--- a/main/clang/llvm-hello.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-Taken from https://reviews.llvm.org/D120301
-
-diff --git a/tools/extra/test/CMakeLists.txt b/tools/extra/test/CMakeLists.txt
---- a/tools/extra/test/CMakeLists.txt
-+++ b/tools/extra/test/CMakeLists.txt
-@@ -15,10 +15,15 @@
-
- string(REPLACE ${CMAKE_CFG_INTDIR} ${LLVM_BUILD_MODE} CLANG_TOOLS_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR})
-
-+if (TARGET LLVMHello)
-+ set (LLVM_HAS_LLVM_HELLO 1)
-+endif()
-+
- llvm_canonicalize_cmake_booleans(
- CLANG_TIDY_ENABLE_STATIC_ANALYZER
- CLANG_PLUGIN_SUPPORT
- LLVM_INSTALL_TOOLCHAIN_ONLY
-+ LLVM_HAS_LLVM_HELLO
- )
-
- configure_lit_site_cfg(
-@@ -97,7 +102,10 @@
- endif()
-
- if(TARGET CTTestTidyModule)
-- list(APPEND CLANG_TOOLS_TEST_DEPS CTTestTidyModule LLVMHello)
-+ list(APPEND CLANG_TOOLS_TEST_DEPS CTTestTidyModule)
-+ if (TARGET LLVMHello)
-+ list(APPEND CLANG_TOOLS_TEST_DEPS CTTestTidyModule)
-+ endif()
- target_include_directories(CTTestTidyModule PUBLIC BEFORE "${CLANG_TOOLS_SOURCE_DIR}")
- if(CLANG_PLUGIN_SUPPORT AND (WIN32 OR CYGWIN))
- set(LLVM_LINK_COMPONENTS
-diff --git a/tools/extra/test/clang-tidy/CTTestTidyModule.cpp b/tools/extra/test/clang-tidy/CTTestTidyModule.cpp
---- a/tools/extra/test/clang-tidy/CTTestTidyModule.cpp
-+++ b/tools/extra/test/clang-tidy/CTTestTidyModule.cpp
-@@ -1,4 +1,4 @@
--// REQUIRES: plugins
-+// REQUIRES: plugins, llvm-hello
- // RUN: clang-tidy -checks='-*,mytest*' --list-checks -load %llvmshlibdir/CTTestTidyModule%pluginext -load %llvmshlibdir/LLVMHello%pluginext | FileCheck --check-prefix=CHECK-LIST %s
- // CHECK-LIST: Enabled checks:
- // CHECK-LIST-NEXT: mytest1
-diff --git a/tools/extra/test/lit.cfg.py b/tools/extra/test/lit.cfg.py
---- a/tools/extra/test/lit.cfg.py
-+++ b/tools/extra/test/lit.cfg.py
-@@ -155,3 +155,6 @@
- # Plugins (loadable modules)
- if config.has_plugins and config.llvm_plugin_ext:
- config.available_features.add('plugins')
-+
-+if config.has_llvm_hello:
-+ config.available_features.add("llvm-hello")
-diff --git a/tools/extra/test/lit.site.cfg.py.in b/tools/extra/test/lit.site.cfg.py.in
---- a/tools/extra/test/lit.site.cfg.py.in
-+++ b/tools/extra/test/lit.site.cfg.py.in
-@@ -13,6 +13,7 @@
- config.target_triple = "@TARGET_TRIPLE@"
- config.clang_tidy_staticanalyzer = @CLANG_TIDY_ENABLE_STATIC_ANALYZER@
- config.has_plugins = @CLANG_PLUGIN_SUPPORT@ & ~@LLVM_INSTALL_TOOLCHAIN_ONLY@
-+config.has_llvm_hello = @LLVM_HAS_LLVM_HELLO@
-
- # Support substitution of the tools and libs dirs with user parameters. This is
- # used when we can't determine the tool dir at configuration time.
diff --git a/main/clang/10-add-musl-triples.patch b/main/clang15/10-add-musl-triples.patch
index 0ed9c81675f..0ed9c81675f 100644
--- a/main/clang/10-add-musl-triples.patch
+++ b/main/clang15/10-add-musl-triples.patch
diff --git a/main/clang/30-Enable-stack-protector-by-default-for-Alpine-Linux.patch b/main/clang15/30-Enable-stack-protector-by-default-for-Alpine-Linux.patch
index 344df992868..bae4532c16a 100644
--- a/main/clang/30-Enable-stack-protector-by-default-for-Alpine-Linux.patch
+++ b/main/clang15/30-Enable-stack-protector-by-default-for-Alpine-Linux.patch
@@ -67,3 +67,16 @@
// Test default stack protector values for Darwin platforms
// RUN: %clang -target armv7k-apple-watchos2.0 -### %s 2>&1 | FileCheck %s -check-prefix=SSP_WATCHOS
+--- a/lib/Driver/ToolChains/Gnu.cpp
++++ b/lib/Driver/ToolChains/Gnu.cpp
+@@ -563,6 +563,10 @@
+ // The profile runtime also needs access to system libraries.
+ getToolChain().addProfileRTLibs(Args, CmdArgs);
+
++ if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles, options::OPT_nodefaultlibs)) {
++ CmdArgs.push_back("-lssp_nonshared");
++ }
++
+ if (D.CCCIsCXX() &&
+ !Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs,
+ options::OPT_r)) {
diff --git a/main/clang15/APKBUILD b/main/clang15/APKBUILD
new file mode 100644
index 00000000000..cb5cba6274b
--- /dev/null
+++ b/main/clang15/APKBUILD
@@ -0,0 +1,397 @@
+# Contributor Eric Molitor <eric@molitor.org>
+# Contributor Patrick Gansterer <paroga@paroga.com>
+# Contributor Travis Tilley <ttilley@gmail.com>
+# Contributor omni <omni+alpine@hack.org>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=clang15
+pkgver=15.0.7
+pkgrel=19
+_llvmver=${pkgver%%.*}
+pkgdesc="C language family front-end for LLVM"
+arch="all"
+url="https://llvm.org/"
+license="Apache-2.0 WITH LLVM-exception"
+options="!check" # fail to build
+makedepends="
+ cmake
+ help2man
+ libxml2-dev
+ llvm$_llvmver-dev
+ llvm$_llvmver-static
+ llvm$_llvmver-test-utils
+ samurai
+ python3
+ "
+checkdepends="diffutils bash gtest-dev"
+depends="fortify-headers>=1.1-r2"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+subpackages="
+ $pkgname-static
+ $pkgname-headers
+ $pkgname-libclang
+ $pkgname-libs
+ $pkgname-dev
+ $pkgname-ccache
+ $pkgname-extra-tools:extra
+ "
+source="https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/clang-$pkgver.src.tar.xz
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/clang-tools-extra-$pkgver.src.tar.xz
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/cmake-$pkgver.src.tar.xz
+ 10-add-musl-triples.patch
+ 30-Enable-stack-protector-by-default-for-Alpine-Linux.patch
+
+ clang-default-fno-semantic-interposition.patch
+ clang-001-fortify-include.patch
+ clang-002-fortify-enable.patch
+ clang-003-as-needed.patch
+ "
+builddir="$srcdir/clang-$pkgver.src"
+
+prepare() {
+ mv "$srcdir/clang-tools-extra-$pkgver.src" "$builddir/tools/extra"
+ default_prepare
+}
+
+# Whether is this package the default (latest) clang version.
+_default_clang="no"
+
+if [ "$_default_clang" = yes ]; then
+ subpackages="
+ $subpackages
+ $pkgname-doc
+ $pkgname-analyzer::noarch
+ $pkgname-bash-completion:bash:noarch
+ $pkgname-emacs::noarch
+ py3-$pkgname:python:noarch
+ "
+ provides="clang=$pkgver-r$pkgrel"
+ replaces="clang"
+ depends_dev="$depends_dev $pkgname-extra-tools=$pkgver-r$pkgrel"
+fi
+
+build() {
+ local python_version=$(python3 -V | sed 's/.*\([0-9]\{1,\}\.[0-9]\{1,\}\)\..*/\1/')
+
+ if [ $_default_clang = yes ]; then
+ local extras=ON
+ else
+ local extras=OFF
+ fi
+
+ cmake -B build -G Ninja -Wno-dev \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr/lib/llvm$_llvmver \
+ -DCMAKE_MODULE_PATH="$srcdir/cmake-$pkgver.src/Modules" \
+ -DCLANG_BUILT_STANDALONE=ON \
+ -DCLANG_ENABLE_ARCMT=$extras \
+ -DCLANG_ENABLE_STATIC_ANALYZER=$extras \
+ -DCLANG_INCLUDE_TESTS="$(want_check && echo ON || echo OFF)" \
+ -DCLANG_LINK_CLANG_DYLIB=ON \
+ -DCLANG_PLUGIN_SUPPORT=ON \
+ -DCLANG_PYTHON_BINDINGS_VERSIONS="$python_version" \
+ -DCLANG_VENDOR=Alpine \
+ -DENABLE_LINKER_BUILD_ID=ON \
+ -DLIBCLANG_BUILD_STATIC=ON
+
+ ninja -C build clang-tblgen
+ ninja -C build
+
+ if [ "$_default_clang" = yes ]; then
+ help2man --no-info \
+ --source "Alpine" \
+ --name "Alpine Clang $pkgver-r$pkgrel" \
+ --version-string "$pkgver-r$pkgrel" \
+ --help-option "--help-hidden" \
+ ./build/bin/clang > clang.1
+ fi
+}
+
+check() {
+ ninja -C build check-all
+}
+
+package() {
+ # the libraries should always exactly match, not just by soname
+ depends="
+ $pkgname-headers=$pkgver-r$pkgrel
+ $pkgname-libs=$pkgver-r$pkgrel
+ gcc
+ libstdc++-dev
+ "
+
+ DESTDIR="$pkgdir" cmake --install build
+ mkdir -p "$pkgdir"/usr/bin
+
+ install -Dm644 build/lib/libclang.a -t "$pkgdir"/usr/lib/llvm$_llvmver/lib/
+
+ if [ $_default_clang = "yes" ]; then
+ rm "$pkgdir"/usr/lib/llvm$_llvmver/share/clang/clang-format-bbedit.applescript \
+ "$pkgdir"/usr/lib/llvm$_llvmver/share/clang/clang-doc-default-stylesheet.css \
+ "$pkgdir"/usr/lib/llvm$_llvmver/share/clang/index.js
+
+ mkdir -p "$pkgdir"/usr/share/bash-completion/completions
+ mv "$pkgdir"/usr/lib/llvm$_llvmver/share/clang/bash-autocomplete.sh \
+ "$pkgdir"/usr/share/bash-completion/completions/clang
+
+ mkdir -p "$pkgdir"/usr/share/emacs/site-lisp
+ mv "$pkgdir"/usr/lib/llvm$_llvmver/share/clang/clang-*.el \
+ "$pkgdir"/usr/share/emacs/site-lisp
+ rmdir -p usr/lib/llvm$_llvmver/share/emacs || true
+
+ mv "$pkgdir"/usr/lib/llvm$_llvmver/share/man "$pkgdir"/usr/share/
+ # XXX: scan-build specifically needs to stay in llvm path, but scan-view has to not be
+ # everything uses different path lookup logic..
+ mv "$pkgdir"/usr/lib/llvm$_llvmver/share/scan-view "$pkgdir"/usr/share/
+
+ local sitedir=$(python3 -c "import site; print(site.getsitepackages()[0])")
+ mv "$pkgdir"/usr/lib/llvm$_llvmver/lib/python3* "$pkgdir"/usr/lib
+ mkdir -p "$pkgdir"/"$sitedir"
+ mv "$pkgdir"/usr/lib/llvm$_llvmver/lib/libscanbuild "$pkgdir"/"$sitedir"
+
+ # symlink everything in the bin dir,
+ # into /usr/bin.
+ local clangexes="
+ analyze-build
+ c-index-test
+ clang
+ clang-cl
+ clang-cpp
+ clang-linker-wrapper
+ clang-nvlink-wrapper
+ clang-pseudo
+ clang++
+ clang-$_llvmver
+ clang-apply-replacements
+ clang-change-namespace
+ clang-check
+ clang-doc
+ clang-extdef-mapping
+ clang-format
+ clang-include-fixer
+ clang-move
+ clang-offload-bundler
+ clang-offload-packager
+ clang-offload-wrapper
+ clang-query
+ clang-refactor
+ clang-rename
+ clang-reorder-fields
+ clang-repl
+ clang-scan-deps
+ clang-tidy
+ clangd
+ diagtool
+ find-all-symbols
+ git-clang-format
+ hmaptool
+ intercept-build
+ modularize
+ pp-trace
+ run-clang-tidy
+ scan-build
+ scan-build-py
+ scan-view
+ "
+ for clangexe in $clangexes; do
+ ln -sfv ../lib/llvm$_llvmver/bin/$clangexe "$pkgdir"/usr/bin/$clangexe
+ done
+ ln -sfv ../lib/llvm$_llvmver/bin/clang-$_llvmver "$pkgdir"/usr/bin/clang++-$_llvmver
+
+ install -Dm644 "$builddir"/clang.1 -t "$pkgdir"/usr/share/man/man1/
+ else
+ ln -sfv ../lib/llvm$_llvmver/bin/clang-$_llvmver "$pkgdir"/usr/bin/clang-$_llvmver
+ ln -sfv ../lib/llvm$_llvmver/bin/clang-$_llvmver "$pkgdir"/usr/bin/clang++-$_llvmver
+
+ # delete things we don't want non-latest of
+ rm -r "$pkgdir"/usr/lib/llvm$_llvmver/share
+ rm -r "$pkgdir"/usr/lib/llvm$_llvmver/lib/python3*
+ fi
+
+ local libs="
+ libclang-cpp.so
+ libclang-cpp.so.$_llvmver
+ libclang.so
+ libclang.so.$_llvmver
+ libclang.so.$pkgver
+ "
+ for lib in $libs; do
+ ln -sfv ../lib/llvm$_llvmver/lib/$lib "$pkgdir"/usr/lib/$lib
+ done
+
+ # compat symlink back to fix clang with -no-canonical-prefixes
+ mkdir -p "$pkgdir"/usr/lib/clang
+ ln -sfv ../../lib/llvm$_llvmver/lib/clang/$pkgver "$pkgdir"/usr/lib/clang/$pkgver
+}
+
+dev() {
+ default_dev
+ _default_replace
+
+ # move cmake to -dev
+ amove usr/lib/llvm$_llvmver/lib/cmake/clang
+
+ # create cmakedir symlinks, so find_package works
+ # llvm does the same thing- versioned, plus unversioned default.
+ mkdir -p "$subpkgdir"/usr/lib/cmake
+ ln -sfv ../llvm$_llvmver/lib/cmake/clang "$subpkgdir"/usr/lib/cmake/clang$_llvmver
+ if [ $_default_clang = yes ]; then
+ ln -sfv clang$_llvmver "$subpkgdir"/usr/lib/cmake/clang
+ fi
+}
+
+static() {
+ default_static
+ _default_replace
+}
+
+bash() {
+ default_bashcomp
+ _default_replace
+}
+
+libs() {
+ default_libs
+ # this can fail depending on the symlinks and is already moved
+ amove usr/lib/libclang-cpp.so.* || true
+ amove usr/lib/llvm$_llvmver/lib/libclang-cpp.so.*
+ _default_replace
+}
+
+libclang() {
+ _default_replace
+ replaces="$replaces clang-libs"
+ depends="$pkgname-headers=$pkgver-r$pkgrel"
+
+ # we add an extra subpackage for this so things that link to libclang don't
+ # have to pull libclang-cpp too (separate)
+ amove usr/lib/libclang.so.*
+ amove usr/lib/llvm$_llvmver/lib/libclang.so.*
+}
+
+analyzer() {
+ pkgdesc="Clang source code analysis framework"
+ depends="$pkgname=$pkgver-r$pkgrel py3-$pkgname=$pkgver-r$pkgrel perl python3"
+ _default_replace
+
+ amove \
+ usr/bin/scan* \
+ usr/bin/analyze-build* \
+ usr/bin/intercept-build* \
+ usr/lib/llvm$_llvmver/bin/scan* \
+ usr/lib/llvm$_llvmver/bin/analyze-build* \
+ usr/lib/llvm$_llvmver/bin/intercept-build* \
+ usr/lib/llvm$_llvmver/libexec/*-analyzer* \
+ usr/lib/llvm$_llvmver/libexec/analyze-* \
+ usr/lib/llvm$_llvmver/libexec/intercept-* \
+ usr/lib/llvm$_llvmver/lib/libear* \
+ usr/lib/llvm$_llvmver/share/scan-build \
+ usr/share/scan-view
+}
+
+headers() {
+ _default_replace
+ amove usr/lib/llvm$_llvmver/lib/clang/$pkgver/include
+}
+
+extra() {
+ pkgdesc="Extra tools built using Clang’s tooling APIs"
+ _default_replace
+
+ if [ "$_default_clang" = "yes" ]; then
+ amove \
+ usr/bin/amdgpu-arch \
+ usr/bin/clang-apply-replacements* \
+ usr/bin/clang-change-namespace* \
+ usr/bin/clang-check* \
+ usr/bin/clang-doc* \
+ usr/bin/clang-include-fixer* \
+ usr/bin/clang-move* \
+ usr/bin/clang-offload-bundler* \
+ usr/bin/clang-pseudo* \
+ usr/bin/clang-query* \
+ usr/bin/clang-refactor* \
+ usr/bin/clang-rename* \
+ usr/bin/clang-reorder-fields* \
+ usr/bin/clang-repl* \
+ usr/bin/clang-scan-deps* \
+ usr/bin/clang-tidy* \
+ usr/bin/clangd* \
+ usr/bin/c-index-test* \
+ usr/bin/diagtool* \
+ usr/bin/find-all-symbols* \
+ usr/bin/hmaptool* \
+ usr/bin/modularize* \
+ usr/bin/nvptx-arch \
+ usr/bin/pp-trace* \
+ usr/bin/run-clang-tidy*
+ fi
+
+ amove \
+ usr/lib/llvm$_llvmver/bin/clang-apply-replacements* \
+ usr/lib/llvm$_llvmver/bin/clang-change-namespace* \
+ usr/lib/llvm$_llvmver/bin/clang-doc* \
+ usr/lib/llvm$_llvmver/bin/clang-format* \
+ usr/lib/llvm$_llvmver/bin/clang-include-fixer* \
+ usr/lib/llvm$_llvmver/bin/clang-move* \
+ usr/lib/llvm$_llvmver/bin/clang-offload-bundler* \
+ usr/lib/llvm$_llvmver/bin/clang-pseudo* \
+ usr/lib/llvm$_llvmver/bin/clang-query* \
+ usr/lib/llvm$_llvmver/bin/clang-refactor* \
+ usr/lib/llvm$_llvmver/bin/clang-rename* \
+ usr/lib/llvm$_llvmver/bin/clang-reorder-fields* \
+ usr/lib/llvm$_llvmver/bin/clang-repl* \
+ usr/lib/llvm$_llvmver/bin/clang-scan-deps* \
+ usr/lib/llvm$_llvmver/bin/clang-tidy* \
+ usr/lib/llvm$_llvmver/bin/clangd* \
+ usr/lib/llvm$_llvmver/bin/diagtool* \
+ usr/lib/llvm$_llvmver/bin/find-all-symbols* \
+ usr/lib/llvm$_llvmver/bin/git-clang-format* \
+ usr/lib/llvm$_llvmver/bin/hmaptool* \
+ usr/lib/llvm$_llvmver/bin/modularize* \
+ usr/lib/llvm$_llvmver/bin/pp-trace* \
+ usr/lib/llvm$_llvmver/bin/run-clang-tidy*
+}
+
+emacs() {
+ pkgdesc="clang plugin for emacs"
+ install_if="$pkgname-extra-tools=$pkgver-r$pkgrel emacs"
+
+ amove usr/share/emacs
+}
+
+python() {
+ pkgdesc="Clang Python Bindings"
+ depends="$pkgname-libs=$pkgver-r$pkgrel python3"
+ provides="py3-clang=$pkgver-r$pkgrel"
+ replaces="py3-clang"
+
+ amove usr/lib/python*
+}
+
+ccache() {
+ pkgdesc="$pkgdesc (ccache symlinks)"
+ install_if="$pkgname=$pkgver-r$pkgrel ccache"
+
+ mkdir -p "$subpkgdir"/usr/lib/ccache/bin
+ ln -sfv /usr/bin/ccache "$subpkgdir"/usr/lib/ccache/bin/clang-$_llvmver
+ ln -sfv /usr/bin/ccache "$subpkgdir"/usr/lib/ccache/bin/clang++-$_llvmver
+}
+
+_default_replace() {
+ if [ "$_default_clang" = yes ]; then
+ replaces="clang${subpkgname#"$pkgname"}"
+ provides="$replaces=$pkgver-r$pkgrel"
+ fi
+}
+
+sha512sums="
+9fd2736a9f5993ddbb5b3c507fe497234a6def64f6f418f379d1ca56c9c361ad1ae9a5445ab938230fbc1671ec00b4f802a412b048569023863c20dc6bb46a1f clang-15.0.7.src.tar.xz
+dd95d261d3a1618967b698e97ac0b41204d872d7479c0c832fcf5a91fe447af6a97fa794de07b3e271285867b30b905688f090e98f516b9df4cdfb3bad9defc6 clang-tools-extra-15.0.7.src.tar.xz
+85097a6eaee0df004567905f7e5ce8ca02e3b46c6fc66fa552fe99734642e6ee61685de4e5e6e8b505963334d7b91d98ecd9c5870e6bdd3f0018ee5b963ffa96 cmake-15.0.7.src.tar.xz
+5809d931656cac13b91bc91aac63df072b0403708ac718bf01546d9d520ff2c4163ee11411439dce5bb683a3bfa044b62443b6f66a1419c9086d20e79a018071 10-add-musl-triples.patch
+b9b5529bcf460767796ddbc6f7d8c479b62d63c74d39297b3c7c79a2f6898272ac52a2f2d1ea2bd601e869cecf23c0cd69fbcd613b8c6299b14a1be8203fd089 30-Enable-stack-protector-by-default-for-Alpine-Linux.patch
+6896d6c5358b8b83c97c7cb31f60042f33a1326cfad093a0f23dcacd10ef418f845964f6de948a5873494dae5180e51a4b2b0cec937aa5597765362779da6f35 clang-default-fno-semantic-interposition.patch
+aa2dff990278e0258763934eaa528827baa1733eeb7dc36cc7f1500a4919b8d11870a0522f20f210d454322e3faf5945e9afaeffc9f3a3c4fd422b706370a663 clang-001-fortify-include.patch
+751f8acef2bfd1b50c065dea2ad0c3a20cadd4ff4c842ae519b5085c48372127b49a75d3fd0bd32291f5a69119340e5568a9fba6d94e6f354b14233986f61328 clang-002-fortify-enable.patch
+5f98f147d7d66315e9a56ae6fee602a053d40e57a8b1ee4f2ef1764203bb6fdb9082c8e825c535a9388213a38b49d2702b1e936fcf56560c4a2a56b7e6dd232c clang-003-as-needed.patch
+"
diff --git a/main/clang15/clang-001-fortify-include.patch b/main/clang15/clang-001-fortify-include.patch
new file mode 100644
index 00000000000..968c26e5131
--- /dev/null
+++ b/main/clang15/clang-001-fortify-include.patch
@@ -0,0 +1,36 @@
+From eca9994181dc355cfba61e726c038832d5ff6975 Mon Sep 17 00:00:00 2001
+From: Daniel Kolesa <daniel@octaforge.org>
+Date: Sun, 23 Oct 2022 00:47:57 +0200
+Subject: [PATCH 1/4] clang: add fortify include paths for musl triplets
+
+When we have fortify headers this lets them get included.
+---
+ lib/Driver/ToolChains/Linux.cpp | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/lib/Driver/ToolChains/Linux.cpp b/lib/Driver/ToolChains/Linux.cpp
+index 7fcdcf125..d5df4a240 100644
+--- a/lib/Driver/ToolChains/Linux.cpp
++++ b/lib/Driver/ToolChains/Linux.cpp
+@@ -622,10 +622,14 @@ void Linux::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
+ if (getTriple().getOS() == llvm::Triple::RTEMS)
+ return;
+
+- // Add an include of '/include' directly. This isn't provided by default by
+- // system GCCs, but is often used with cross-compiling GCCs, and harmless to
+- // add even when Clang is acting as-if it were a system compiler.
+- addExternCSystemInclude(DriverArgs, CC1Args, concat(SysRoot, "/include"));
++ if (getTriple().isMusl()) {
++ addExternCSystemInclude(DriverArgs, CC1Args, concat(SysRoot, "/usr/include/fortify"));
++ } else {
++ // Preserve original clang behavior for non-musl triples, but for musl
++ // this just gets in the way and none of our crosstoolchains are ever
++ // actually built this way (and we'd have to figure out fortify for it)
++ addExternCSystemInclude(DriverArgs, CC1Args, concat(SysRoot, "/include"));
++ }
+
+ addExternCSystemInclude(DriverArgs, CC1Args, concat(SysRoot, "/usr/include"));
+
+--
+2.38.0
+
diff --git a/main/clang15/clang-002-fortify-enable.patch b/main/clang15/clang-002-fortify-enable.patch
new file mode 100644
index 00000000000..30100c9cba4
--- /dev/null
+++ b/main/clang15/clang-002-fortify-enable.patch
@@ -0,0 +1,29 @@
+From 0a876ce2825f1e54bec7059a387e43a2e0386665 Mon Sep 17 00:00:00 2001
+From: Daniel Kolesa <daniel@octaforge.org>
+Date: Sun, 23 Oct 2022 01:02:35 +0200
+Subject: [PATCH 2/4] clang: enable fortify by default on optimizing musl
+ targets
+
+---
+ lib/Frontend/InitPreprocessor.cpp | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/lib/Frontend/InitPreprocessor.cpp b/lib/Frontend/InitPreprocessor.cpp
+index 20bfbf144..9095c0f2f 100644
+--- a/lib/Frontend/InitPreprocessor.cpp
++++ b/lib/Frontend/InitPreprocessor.cpp
+@@ -1288,6 +1288,11 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
+ Builder.defineMacro("__GLIBCXX_BITSIZE_INT_N_0", "128");
+ }
+
++ // Enable fortify by default on musl when optimizing, but not with asan
++ if (TI.getTriple().isMusl() && LangOpts.Optimize &&
++ !LangOpts.Sanitize.has(SanitizerKind::Address))
++ Builder.defineMacro("_FORTIFY_SOURCE", "2");
++
+ // Get other target #defines.
+ TI.getTargetDefines(LangOpts, Builder);
+ }
+--
+2.38.0
+
diff --git a/main/clang15/clang-003-as-needed.patch b/main/clang15/clang-003-as-needed.patch
new file mode 100644
index 00000000000..a92836fe07a
--- /dev/null
+++ b/main/clang15/clang-003-as-needed.patch
@@ -0,0 +1,31 @@
+forces as-needed regardless of ldflags
+From f59f126a9344f265e3766003766d7a66b6a638e3 Mon Sep 17 00:00:00 2001
+From: Daniel Kolesa <daniel@octaforge.org>
+Date: Sun, 23 Oct 2022 01:26:37 +0200
+Subject: [PATCH 3/4] clang: use --as-needed by default
+
+---
+ clang/lib/Driver/ToolChains/Gnu.cpp | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
+index f203cae1d..9e181a79a 100644
+--- a/lib/Driver/ToolChains/Gnu.cpp
++++ b/lib/Driver/ToolChains/Gnu.cpp
+@@ -560,6 +560,13 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
+ bool NeedsSanitizerDeps = addSanitizerRuntimes(ToolChain, Args, CmdArgs);
+ bool NeedsXRayDeps = addXRayRuntime(ToolChain, Args, CmdArgs);
+ addLinkerCompressDebugSectionsOption(ToolChain, Args, CmdArgs);
++
++ // Use --as-needed by default for all explicit linker inputs on Linux
++ // We don't reset it afterwards because explicit argument does not
++ // get reset either (and that is permitted, so it should be fine)
++ if (Triple.isOSLinux())
++ CmdArgs.push_back("--as-needed");
++
+ AddLinkerInputs(ToolChain, Inputs, Args, CmdArgs, JA);
+
+ addHIPRuntimeLibArgs(ToolChain, Args, CmdArgs);
+--
+2.38.0
+
diff --git a/main/clang15/clang-default-fno-semantic-interposition.patch b/main/clang15/clang-default-fno-semantic-interposition.patch
new file mode 100644
index 00000000000..01022aff209
--- /dev/null
+++ b/main/clang15/clang-default-fno-semantic-interposition.patch
@@ -0,0 +1,39 @@
+Patch-Source: https://github.com/chimera-linux/cports/commit/77fdf96a59bddfca32b6737335f01afaf64ff380
+reference: https://maskray.me/blog/2021-05-09-fno-semantic-interposition
+
+in general, this is not '100% safe'.
+however:
+- we only use clang in a few places
+- chimera has had good success with this flag and not seen issues
+so, it should be fine to default in our clang too. it should bring some
+noticable performance gains paired with pic.
+
+--
+From 73b8ed17fed2145b29bde40a0c658712e34d48c3 Mon Sep 17 00:00:00 2001
+From: Daniel Kolesa <daniel@octaforge.org>
+Date: Tue, 28 Feb 2023 01:59:26 +0100
+Subject: [PATCH] clang: default to -fno-semantic-interposition on supported
+ targets
+
+---
+ clang/lib/Driver/ToolChains/Clang.cpp | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
+index 3704ed85..d3d67a22 100644
+--- a/lib/Driver/ToolChains/Clang.cpp
++++ b/lib/Driver/ToolChains/Clang.cpp
+@@ -5072,9 +5072,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
+ // The supported targets need to call AsmPrinter::getSymbolPreferLocal.
+ bool SupportsLocalAlias =
+ Triple.isAArch64() || Triple.isRISCV() || Triple.isX86();
+- if (!A)
+- CmdArgs.push_back("-fhalf-no-semantic-interposition");
+- else if (A->getOption().matches(options::OPT_fsemantic_interposition))
++ if (A && A->getOption().matches(options::OPT_fsemantic_interposition))
+ A->render(Args, CmdArgs);
+ else if (!SupportsLocalAlias)
+ CmdArgs.push_back("-fhalf-no-semantic-interposition");
+--
+2.39.0
+
diff --git a/main/clang16/10-add-musl-triples.patch b/main/clang16/10-add-musl-triples.patch
new file mode 100644
index 00000000000..0ed9c81675f
--- /dev/null
+++ b/main/clang16/10-add-musl-triples.patch
@@ -0,0 +1,39 @@
+--- a/lib/Driver/ToolChains/Gnu.cpp
++++ b/lib/Driver/ToolChains/Gnu.cpp
+@@ -2073,7 +2073,7 @@
+ static const char *const AArch64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const AArch64Triples[] = {
+ "aarch64-none-linux-gnu", "aarch64-linux-gnu", "aarch64-redhat-linux",
+- "aarch64-suse-linux"};
++ "aarch64-suse-linux", "aarch64-linux-musl"};
+ static const char *const AArch64beLibDirs[] = {"/lib"};
+ static const char *const AArch64beTriples[] = {"aarch64_be-none-linux-gnu",
+ "aarch64_be-linux-gnu"};
+@@ -2085,7 +2085,9 @@
+ "armv7l-linux-musleabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "arm-linux-musleabihf",
++ "armv7l-linux-musleabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi"};
+ static const char *const ARMebHFTriples[] = {
+@@ -2101,7 +2103,7 @@
+ "x86_64-redhat-linux", "x86_64-suse-linux",
+ "x86_64-manbo-linux-gnu", "x86_64-linux-gnu",
+ "x86_64-slackware-linux", "x86_64-unknown-linux",
+- "x86_64-amazon-linux"};
++ "x86_64-amazon-linux", "x86_64-linux-musl"};
+ static const char *const X32Triples[] = {"x86_64-linux-gnux32",
+ "x86_64-pc-linux-gnux32"};
+ static const char *const X32LibDirs[] = {"/libx32", "/lib"};
+@@ -2110,6 +2112,7 @@
+ "i586-linux-gnu", "i686-linux-gnu", "i686-pc-linux-gnu",
+ "i386-redhat-linux6E", "i686-redhat-linux", "i386-redhat-linux",
+ "i586-suse-linux", "i686-montavista-linux", "i686-gnu",
++ "i686-linux-musl",
+ };
+
+ static const char *const M68kLibDirs[] = {"/lib"};
diff --git a/main/clang16/30-Enable-stack-protector-by-default-for-Alpine-Linux.patch b/main/clang16/30-Enable-stack-protector-by-default-for-Alpine-Linux.patch
new file mode 100644
index 00000000000..9e8a976b68f
--- /dev/null
+++ b/main/clang16/30-Enable-stack-protector-by-default-for-Alpine-Linux.patch
@@ -0,0 +1,90 @@
+diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
+index 4f23403..da6883e 100644
+--- a/lib/Driver/ToolChains/Gnu.cpp
++++ b/lib/Driver/ToolChains/Gnu.cpp
+@@ -588,6 +588,10 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
+ CmdArgs.push_back("-lm");
+ }
+
++ if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles, options::OPT_nodefaultlibs)) {
++ CmdArgs.push_back("-lssp_nonshared");
++ }
++
+ // Silence warnings when linking C code with a C++ '-stdlib' argument.
+ Args.ClaimAllArgs(options::OPT_stdlib_EQ);
+
+diff --git a/lib/Driver/ToolChains/Linux.h b/lib/Driver/ToolChains/Linux.h
+index 52439174..d754b543 100644
+--- a/lib/Driver/ToolChains/Linux.h
++++ b/lib/Driver/ToolChains/Linux.h
+@@ -11,6 +11,7 @@
+
+ #include "Gnu.h"
+ #include "clang/Driver/ToolChain.h"
++#include "clang/Basic/LangOptions.h"
+
+ namespace clang {
+ namespace driver {
+@@ -63,7 +64,15 @@ public:
+ const llvm::opt::ArgList &DriverArgs, const JobAction &JA,
+ const llvm::fltSemantics *FPType = nullptr) const override;
+
+ const char *getDefaultLinker() const override;
++ LangOptions::StackProtectorMode
++ GetDefaultStackProtectorLevel(bool KernelOrKext) const override {
++ StringRef VendorName = Linux::getTriple().getVendorName();
++ if (VendorName.compare("alpine") == 0)
++ return LangOptions::SSPStrong;
++
++ return LangOptions::SSPOff;
++ }
+
+ protected:
+ Tool *buildAssembler() const override;
+diff --git a/test/Driver/fsanitize.c b/test/Driver/fsanitize.c
+index 8ad6dc25..1619b59a 100644
+--- a/test/Driver/fsanitize.c
++++ b/test/Driver/fsanitize.c
+@@ -695,12 +695,12 @@
+ // RUN: %clang -fno-sanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=NOSP
+ // NOSP-NOT: "-fsanitize=safe-stack"
+
+-// RUN: %clang --target=x86_64-linux-gnu -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=NO-SP
++// RUN: %clang --target=x86_64-linux-gnu -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=SP
+ // RUN: %clang --target=x86_64-linux-gnu -fsanitize=address,safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=SP-ASAN
+ // RUN: %clang --target=x86_64-linux-gnu -fstack-protector -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=SP
+ // RUN: %clang --target=x86_64-linux-gnu -fsanitize=safe-stack -fstack-protector-all -### %s 2>&1 | FileCheck %s -check-prefix=SP
+-// RUN: %clang --target=arm-linux-androideabi -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=NO-SP
+-// RUN: %clang --target=aarch64-linux-android -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=NO-SP
++// RUN: %clang --target=arm-linux-androideabi -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=SP
++// RUN: %clang --target=aarch64-linux-android -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=SP
+ // RUN: %clang --target=i386-contiki-unknown -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=NO-SP
+ // NO-SP-NOT: stack-protector
+ // NO-SP: "-fsanitize=safe-stack"
+diff --git a/test/Driver/stack-protector.c b/test/Driver/stack-protector.c
+index 16937691..80987f67 100644
+--- a/test/Driver/stack-protector.c
++++ b/test/Driver/stack-protector.c
+@@ -33,6 +33,22 @@
+ // SSP-PS4-BUF: "-stack-protector" "2"
+ // SSP-PS4-BUF: "-stack-protector-buffer-size" "16"
+
++// Test default stack protector values for Alpine
++
++// RUN: %clang -target x86_64-alpine-linux-musl -### %s 2>&1 | FileCheck %s -check-prefix=ALPINE
++// ALPINE: "-stack-protector" "2"
++
++// RUN: %clang -target x86_64-alpine-linux-musl -fstack-protector -### %s 2>&1 | FileCheck %s -check-prefix=ALPINE_SPS
++// ALPINE_SPS: "-stack-protector" "2"
++
++// RUN: %clang -target x86_64-alpine-linux-musl -fstack-protector-all -### %s 2>&1 | FileCheck %s -check-prefix=ALPINE_ALL
++// ALPINE_ALL: "-stack-protector" "3"
++// ALPINE_ALL-NOT: "-stack-protector-buffer-size"
++
++// RUN: %clang -target x86_64-alpine-linux-musl -fno-stack-protector -### %s 2>&1 | FileCheck %s -check-prefix=ALPINE_NOSSP
++// ALPINE_NOSSP-NOT: "-stack-protector"
++// ALPINE_NOSSP-NOT: "-stack-protector-buffer-size"
++
+ // Test default stack protector values for Darwin platforms
+
+ // RUN: %clang -target armv7k-apple-watchos2.0 -### %s 2>&1 | FileCheck %s -check-prefix=SSP_WATCHOS
diff --git a/main/clang16/9008-Clang-Support-more-stdio-builtins.patch b/main/clang16/9008-Clang-Support-more-stdio-builtins.patch
new file mode 100644
index 00000000000..22e72cd350b
--- /dev/null
+++ b/main/clang16/9008-Clang-Support-more-stdio-builtins.patch
@@ -0,0 +1,196 @@
+From d67f31b2fdf74d999b8a0b298361daee3503c2f5 Mon Sep 17 00:00:00 2001
+From: Qiu Chaofan <qiucofan@cn.ibm.com>
+Date: Tue, 23 May 2023 16:22:32 +0800
+Subject: [PATCH 08/10] [Clang] Support more stdio builtins
+
+Add more builtins for stdio functions as in GCC, along with their
+mutations under IEEE float128 ABI.
+
+Reviewed By: tuliom
+
+Differential Revision: https://reviews.llvm.org/D150087
+
+Gentoo-Component: clang
+---
+ clang/include/clang/Basic/Builtins.def | 36 +++++++-----
+ clang/lib/CodeGen/CGBuiltin.cpp | 24 ++++++--
+ .../CodeGen/PowerPC/ppc64-f128-builtins.c | 57 +++++++++++++++++++
+ 3 files changed, 99 insertions(+), 18 deletions(-)
+
+diff --git a/clang/include/clang/Basic/Builtins.def b/clang/include/clang/Basic/Builtins.def
+index 41f124556446..e6a89da1912c 100644
+--- a/include/clang/Basic/Builtins.def
++++ b/include/clang/Basic/Builtins.def
+@@ -551,7 +551,6 @@ BUILTIN(__builtin_assume_aligned, "v*vC*z.", "nctE")
+ BUILTIN(__builtin_bcmp, "ivC*vC*z", "FnE")
+ BUILTIN(__builtin_bcopy, "vv*v*z", "n")
+ BUILTIN(__builtin_bzero, "vv*z", "nF")
+-BUILTIN(__builtin_fprintf, "iP*cC*.", "Fp:1:")
+ BUILTIN(__builtin_free, "vv*", "nF")
+ BUILTIN(__builtin_malloc, "v*z", "nF")
+ BUILTIN(__builtin_memchr, "v*vC*iz", "nFE")
+@@ -562,7 +561,6 @@ BUILTIN(__builtin_memmove, "v*v*vC*z", "nFE")
+ BUILTIN(__builtin_mempcpy, "v*v*vC*z", "nF")
+ BUILTIN(__builtin_memset, "v*v*iz", "nF")
+ BUILTIN(__builtin_memset_inline, "vv*iIz", "n")
+-BUILTIN(__builtin_printf, "icC*.", "Fp:0:")
+ BUILTIN(__builtin_stpcpy, "c*c*cC*", "nF")
+ BUILTIN(__builtin_stpncpy, "c*c*cC*z", "nF")
+ BUILTIN(__builtin_strcasecmp, "icC*cC*", "nF")
+@@ -599,10 +597,20 @@ BUILTIN(__builtin_setjmp, "iv**", "j")
+ BUILTIN(__builtin_longjmp, "vv**i", "r")
+ BUILTIN(__builtin_unwind_init, "v", "")
+ BUILTIN(__builtin_eh_return_data_regno, "iIi", "ncE")
+-BUILTIN(__builtin_snprintf, "ic*zcC*.", "nFp:2:")
+-BUILTIN(__builtin_sprintf, "ic*cC*.", "nFP:1:")
+-BUILTIN(__builtin_vsnprintf, "ic*zcC*a", "nFP:2:")
+-BUILTIN(__builtin_vsprintf, "ic*cC*a", "nFP:1:")
++BUILTIN(__builtin_fprintf, "iP*RcC*R.", "nFp:1:")
++BUILTIN(__builtin_printf, "icC*R.", "nFp:0:")
++BUILTIN(__builtin_sprintf, "ic*RcC*R.", "nFp:1:")
++BUILTIN(__builtin_snprintf, "ic*RzcC*R.", "nFp:2:")
++BUILTIN(__builtin_vprintf, "icC*Ra", "nFP:0:")
++BUILTIN(__builtin_vfprintf, "iP*RcC*Ra", "nFP:1:")
++BUILTIN(__builtin_vsprintf, "ic*RcC*Ra", "nFP:1:")
++BUILTIN(__builtin_vsnprintf, "ic*RzcC*Ra", "nFP:2:")
++BUILTIN(__builtin_fscanf, "iP*RcC*R.", "Fs:1:")
++BUILTIN(__builtin_scanf, "icC*R.", "Fs:0:")
++BUILTIN(__builtin_sscanf, "icC*RcC*R.", "Fs:1:")
++BUILTIN(__builtin_vfscanf, "iP*RcC*Ra", "FS:1:")
++BUILTIN(__builtin_vscanf, "icC*Ra", "FS:0:")
++BUILTIN(__builtin_vsscanf, "icC*RcC*Ra", "FS:1:")
+ BUILTIN(__builtin_thread_pointer, "v*", "nc")
+ BUILTIN(__builtin_launder, "v*v*", "ntE")
+ LANGBUILTIN(__builtin_is_constant_evaluated, "b", "nE", CXX_LANG)
+@@ -631,14 +639,14 @@ BUILTIN(__builtin___strlcpy_chk, "zc*cC*zz", "nF")
+ BUILTIN(__builtin___strncat_chk, "c*c*cC*zz", "nF")
+ BUILTIN(__builtin___strncpy_chk, "c*c*cC*zz", "nF")
+ BUILTIN(__builtin___stpncpy_chk, "c*c*cC*zz", "nF")
+-BUILTIN(__builtin___snprintf_chk, "ic*zizcC*.", "Fp:4:")
+-BUILTIN(__builtin___sprintf_chk, "ic*izcC*.", "Fp:3:")
+-BUILTIN(__builtin___vsnprintf_chk, "ic*zizcC*a", "FP:4:")
+-BUILTIN(__builtin___vsprintf_chk, "ic*izcC*a", "FP:3:")
+-BUILTIN(__builtin___fprintf_chk, "iP*icC*.", "Fp:2:")
+-BUILTIN(__builtin___printf_chk, "iicC*.", "Fp:1:")
+-BUILTIN(__builtin___vfprintf_chk, "iP*icC*a", "FP:2:")
+-BUILTIN(__builtin___vprintf_chk, "iicC*a", "FP:1:")
++BUILTIN(__builtin___snprintf_chk, "ic*RzizcC*R.", "Fp:4:")
++BUILTIN(__builtin___sprintf_chk, "ic*RizcC*R.", "Fp:3:")
++BUILTIN(__builtin___vsnprintf_chk, "ic*RzizcC*Ra", "FP:4:")
++BUILTIN(__builtin___vsprintf_chk, "ic*RizcC*Ra", "FP:3:")
++BUILTIN(__builtin___fprintf_chk, "iP*RicC*R.", "Fp:2:")
++BUILTIN(__builtin___printf_chk, "iicC*R.", "Fp:1:")
++BUILTIN(__builtin___vfprintf_chk, "iP*RicC*Ra", "FP:2:")
++BUILTIN(__builtin___vprintf_chk, "iicC*Ra", "FP:1:")
+
+ BUILTIN(__builtin_unpredictable, "LiLi" , "nc")
+ BUILTIN(__builtin_expect, "LiLiLi" , "ncE")
+diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp
+index f72e04a425d9..cc3c5cc5028a 100644
+--- a/lib/CodeGen/CGBuiltin.cpp
++++ b/lib/CodeGen/CGBuiltin.cpp
+@@ -98,13 +98,29 @@ llvm::Constant *CodeGenModule::getBuiltinLibFunction(const FunctionDecl *FD,
+
+ // TODO: This list should be expanded or refactored after all GCC-compatible
+ // std libcall builtins are implemented.
+- static SmallDenseMap<unsigned, StringRef, 8> F128Builtins{
++ static SmallDenseMap<unsigned, StringRef, 64> F128Builtins{
++ {Builtin::BI__builtin___fprintf_chk, "__fprintf_chkieee128"},
++ {Builtin::BI__builtin___printf_chk, "__printf_chkieee128"},
++ {Builtin::BI__builtin___snprintf_chk, "__snprintf_chkieee128"},
++ {Builtin::BI__builtin___sprintf_chk, "__sprintf_chkieee128"},
++ {Builtin::BI__builtin___vfprintf_chk, "__vfprintf_chkieee128"},
++ {Builtin::BI__builtin___vprintf_chk, "__vprintf_chkieee128"},
++ {Builtin::BI__builtin___vsnprintf_chk, "__vsnprintf_chkieee128"},
++ {Builtin::BI__builtin___vsprintf_chk, "__vsprintf_chkieee128"},
++ {Builtin::BI__builtin_fprintf, "__fprintfieee128"},
+ {Builtin::BI__builtin_printf, "__printfieee128"},
++ {Builtin::BI__builtin_snprintf, "__snprintfieee128"},
++ {Builtin::BI__builtin_sprintf, "__sprintfieee128"},
++ {Builtin::BI__builtin_vfprintf, "__vfprintfieee128"},
++ {Builtin::BI__builtin_vprintf, "__vprintfieee128"},
+ {Builtin::BI__builtin_vsnprintf, "__vsnprintfieee128"},
+ {Builtin::BI__builtin_vsprintf, "__vsprintfieee128"},
+- {Builtin::BI__builtin_sprintf, "__sprintfieee128"},
+- {Builtin::BI__builtin_snprintf, "__snprintfieee128"},
+- {Builtin::BI__builtin_fprintf, "__fprintfieee128"},
++ {Builtin::BI__builtin_fscanf, "__fscanfieee128"},
++ {Builtin::BI__builtin_scanf, "__scanfieee128"},
++ {Builtin::BI__builtin_sscanf, "__sscanfieee128"},
++ {Builtin::BI__builtin_vfscanf, "__vfscanfieee128"},
++ {Builtin::BI__builtin_vscanf, "__vscanfieee128"},
++ {Builtin::BI__builtin_vsscanf, "__vsscanfieee128"},
+ {Builtin::BI__builtin_nexttowardf128, "__nexttowardieee128"},
+ };
+
+diff --git a/clang/test/CodeGen/PowerPC/ppc64-f128-builtins.c b/clang/test/CodeGen/PowerPC/ppc64-f128-builtins.c
+index 635e7fadbbf0..b7e6cc9a2eb4 100644
+--- a/test/CodeGen/PowerPC/ppc64-f128-builtins.c
++++ b/test/CodeGen/PowerPC/ppc64-f128-builtins.c
+@@ -52,6 +52,63 @@ void test_snprintf(void) {
+ __builtin_snprintf(buf, 20, "%.Lf", x);
+ }
+
++// IEEE128-LABEL: define dso_local void @test_scanf
++// IEEE128: call signext i32 (ptr, ...) @__scanfieee128
++// PPC128-LABEL: define dso_local void @test_scanf
++// PPC128: call signext i32 (ptr, ...) @scanf
++void test_scanf(int *x) {
++ __builtin_scanf("%d", x);
++}
++
++// IEEE128-LABEL: define dso_local void @test_sscanf
++// IEEE128: call signext i32 (ptr, ptr, ...) @__sscanfieee128
++// PPC128-LABEL: define dso_local void @test_sscanf
++// PPC128: call signext i32 (ptr, ptr, ...) @sscanf
++void test_sscanf(int *x) {
++ __builtin_sscanf(buf, "%d", x);
++}
++
++// IEEE128-LABEL: define dso_local void @test_vprintf
++// IEEE128: call signext i32 @__vprintfieee128
++// PPC128-LABEL: define dso_local void @test_vprintf
++// PPC128: call signext i32 @vprintf
++void test_vprintf(const char *fmt, ...) {
++ __builtin_va_list args;
++ __builtin_va_start(args, fmt);
++ __builtin_vprintf(fmt, args);
++ __builtin_va_end(args);
++}
++
++// IEEE128-LABEL: define dso_local void @test_vscanf
++// IEEE128: call signext i32 @__vscanfieee128
++// PPC128-LABEL: define dso_local void @test_vscanf
++// PPC128: call signext i32 @vscanf
++void test_vscanf(const char *fmt, ...) {
++ __builtin_va_list args;
++ __builtin_va_start(args, fmt);
++ __builtin_vscanf(fmt, args);
++ __builtin_va_end(args);
++}
++
++// IEEE128-LABEL: define dso_local void @test_vsscanf
++// IEEE128: call signext i32 @__vsscanfieee128
++// PPC128-LABEL: define dso_local void @test_vsscanf
++// PPC128: call signext i32 @vsscanf
++void test_vsscanf(const char *fmt, ...) {
++ __builtin_va_list args;
++ __builtin_va_start(args, fmt);
++ __builtin_vsscanf(buf, fmt, args);
++ __builtin_va_end(args);
++}
++
++// IEEE128-LABEL: define dso_local void @test_snprintf_chk
++// IEEE128: call signext i32 (ptr, i64, i32, i64, ptr, ...) @__snprintf_chkieee128
++// PPC128-LABEL: define dso_local void @test_snprintf_chk
++// PPC128: call signext i32 (ptr, i64, i32, i64, ptr, ...) @__snprintf_chk
++void test_snprintf_chk(long double x) {
++ __builtin___snprintf_chk(buf, 20, 1, 20, "%.Lf", x);
++}
++
+ // GLIBC has special handling of 'nexttoward'
+
+ // IEEE128-LABEL: define dso_local fp128 @test_nexttoward
+--
+2.41.0
+
diff --git a/main/clang16/9012-Call-printName-to-get-name-of-Decl.patch b/main/clang16/9012-Call-printName-to-get-name-of-Decl.patch
new file mode 100644
index 00000000000..cd41ac579cd
--- /dev/null
+++ b/main/clang16/9012-Call-printName-to-get-name-of-Decl.patch
@@ -0,0 +1,72 @@
+From 91daf2a98bf10c6974c79305eca4ac13b76b19d1 Mon Sep 17 00:00:00 2001
+From: Dan McGregor <danismostlikely@gmail.com>
+Date: Tue, 2 May 2023 11:53:48 -0400
+Subject: [PATCH] Call printName to get name of Decl
+
+Rather than sending a name directly to the stream, use printName
+to preserve any PrintingPolicy. This ensures that names are properly
+affected by path remapping.
+
+Fixes: https://github.com/llvm/llvm-project/issues/62192
+Differential Revision: https://reviews.llvm.org/D149272
+
+(cherry picked from commit ea6ecdbfe09d4318f2d616af794e2930f996e393)
+---
+ clang/docs/ReleaseNotes.rst | 2 ++
+ clang/lib/AST/Decl.cpp | 4 ++--
+ clang/lib/AST/DeclarationName.cpp | 4 ++--
+ clang/test/CodeGen/debug-prefix-map.cpp | 11 +++++++++++
+ 4 files changed, 17 insertions(+), 4 deletions(-)
+ create mode 100644 clang/test/CodeGen/debug-prefix-map.cpp
+
+diff --git a/clang/lib/AST/Decl.cpp b/clang/lib/AST/Decl.cpp
+index e60cc28f6e0f..24de6156c0f5 100644
+--- a/lib/AST/Decl.cpp
++++ b/lib/AST/Decl.cpp
+@@ -1626,8 +1626,8 @@ Module *Decl::getOwningModuleForLinkage(bool IgnoreLinkage) const {
+ llvm_unreachable("unknown module kind");
+ }
+
+-void NamedDecl::printName(raw_ostream &OS, const PrintingPolicy&) const {
+- OS << Name;
++void NamedDecl::printName(raw_ostream &OS, const PrintingPolicy &Policy) const {
++ Name.print(OS, Policy);
+ }
+
+ void NamedDecl::printName(raw_ostream &OS) const {
+diff --git a/clang/lib/AST/DeclarationName.cpp b/clang/lib/AST/DeclarationName.cpp
+index c1219041a466..da8b3886c340 100644
+--- a/lib/AST/DeclarationName.cpp
++++ b/lib/AST/DeclarationName.cpp
+@@ -117,12 +117,12 @@ static void printCXXConstructorDestructorName(QualType ClassType,
+ Policy.adjustForCPlusPlus();
+
+ if (const RecordType *ClassRec = ClassType->getAs<RecordType>()) {
+- OS << *ClassRec->getDecl();
++ ClassRec->getDecl()->printName(OS, Policy);
+ return;
+ }
+ if (Policy.SuppressTemplateArgsInCXXConstructors) {
+ if (auto *InjTy = ClassType->getAs<InjectedClassNameType>()) {
+- OS << *InjTy->getDecl();
++ InjTy->getDecl()->printName(OS, Policy);
+ return;
+ }
+ }
+diff --git a/clang/test/CodeGen/debug-prefix-map.cpp b/clang/test/CodeGen/debug-prefix-map.cpp
+new file mode 100644
+index 000000000000..5e90aedd8ed7
+--- /dev/null
++++ b/test/CodeGen/debug-prefix-map.cpp
+@@ -0,0 +1,11 @@
++// RUN: %clang_cc1 -debug-info-kind=standalone -fdebug-prefix-map=%p=./UNLIKELY_PATH/empty -S %s -emit-llvm -o - | FileCheck %s
++
++struct alignas(64) an {
++ struct {
++ unsigned char x{0};
++ } arr[64];
++};
++
++struct an *pan = new an;
++
++// CHECK: !DISubprogram(name: "(unnamed struct at ./UNLIKELY_PATH/empty{{/|\\\\}}{{.*}}",
diff --git a/main/clang16/APKBUILD b/main/clang16/APKBUILD
new file mode 100644
index 00000000000..ad06a8df029
--- /dev/null
+++ b/main/clang16/APKBUILD
@@ -0,0 +1,494 @@
+# Contributor Eric Molitor <eric@molitor.org>
+# Contributor Patrick Gansterer <paroga@paroga.com>
+# Contributor Travis Tilley <ttilley@gmail.com>
+# Contributor omni <omni+alpine@hack.org>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=clang16
+pkgver=16.0.6
+pkgrel=5
+_llvmver=${pkgver%%.*}
+pkgdesc="C language family front-end for LLVM"
+arch="all"
+url="https://llvm.org/"
+license="Apache-2.0 WITH LLVM-exception"
+options="!check" # fail to build
+install="$pkgname.pre-upgrade"
+makedepends="
+ cmake
+ help2man
+ libxml2-dev
+ llvm$_llvmver-dev
+ llvm$_llvmver-static
+ llvm$_llvmver-test-utils
+ samurai
+ python3
+ "
+checkdepends="diffutils bash gtest-dev"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+subpackages="
+ $pkgname-static
+ $pkgname-headers
+ $pkgname-libclang
+ $pkgname-libs
+ $pkgname-dev
+ $pkgname-ccache
+ $pkgname-extra-tools:extra
+ "
+source="https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/clang-$pkgver.src.tar.xz
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/clang-tools-extra-$pkgver.src.tar.xz
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/cmake-$pkgver.src.tar.xz
+ 10-add-musl-triples.patch
+ 30-Enable-stack-protector-by-default-for-Alpine-Linux.patch
+
+ clang-default-fno-semantic-interposition.patch
+ clang-001-fortify-include.patch
+ clang-002-fortify-enable.patch
+ clang-003-as-needed.patch
+ 9008-Clang-Support-more-stdio-builtins.patch
+ 9012-Call-printName-to-get-name-of-Decl.patch
+ "
+builddir="$srcdir/clang-$pkgver.src"
+
+prepare() {
+ mv "$srcdir/clang-tools-extra-$pkgver.src" "$builddir/tools/extra"
+ default_prepare
+ mv "$srcdir"/cmake-${pkgver//_/}.src "$srcdir"/cmake
+}
+
+# Whether is this package the default (latest) clang version.
+_default_clang="no"
+
+if [ "$_default_clang" = yes ]; then
+ subpackages="
+ $subpackages
+ $pkgname-doc
+ $pkgname-analyzer::noarch
+ $pkgname-bash-completion:bash:noarch
+ $pkgname-emacs::noarch
+ py3-$pkgname:python:noarch
+ "
+ provides="clang=$pkgver-r$pkgrel"
+ replaces="clang"
+ depends_dev="$depends_dev $pkgname-extra-tools=$pkgver-r$pkgrel"
+fi
+
+build() {
+ local python_version=$(python3 -V | sed 's/.*\([0-9]\{1,\}\.[0-9]\{1,\}\)\..*/\1/')
+
+ if [ $_default_clang = yes ]; then
+ local extras=ON
+ else
+ local extras=OFF
+ fi
+
+ cmake -B build -G Ninja -Wno-dev \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr/lib/llvm$_llvmver \
+ -DCMAKE_MODULE_PATH="$srcdir/cmake-$pkgver.src/Modules" \
+ -DCLANG_BUILT_STANDALONE=ON \
+ -DCLANG_CONFIG_FILE_SYSTEM_DIR=/etc/clang$_llvmver \
+ -DCLANG_ENABLE_ARCMT=$extras \
+ -DCLANG_ENABLE_STATIC_ANALYZER=$extras \
+ -DCLANG_INCLUDE_TESTS="$(want_check && echo ON || echo OFF)" \
+ -DCMAKE_INSTALL_RPATH=/usr/lib/llvm$_llvmver/lib \
+ -DCLANG_LINK_CLANG_DYLIB=ON \
+ -DCLANG_PLUGIN_SUPPORT=ON \
+ -DCLANG_PYTHON_BINDINGS_VERSIONS="$python_version" \
+ -DCLANG_SYSTEMZ_DEFAULT_ARCH=z196 \
+ -DCLANG_VENDOR=Alpine \
+ -DENABLE_LINKER_BUILD_ID=ON \
+ -DLIBCLANG_BUILD_STATIC=ON
+
+ ninja -C build clang-tblgen
+ ninja -C build
+
+ if [ "$_default_clang" = yes ]; then
+ help2man --no-info \
+ --source "Alpine" \
+ --name "Alpine Clang $pkgver-r$pkgrel" \
+ --version-string "$pkgver-r$pkgrel" \
+ --help-option "--help-hidden" \
+ ./build/bin/clang > clang.1
+ fi
+}
+
+check() {
+ ninja -C build check-all
+}
+
+package() {
+ # the libraries should always exactly match, not just by soname
+ # gcc is for libgcc-dev which we don't have split
+ depends="
+ $pkgname-headers=$pkgver-r$pkgrel
+ $pkgname-libs=$pkgver-r$pkgrel
+ fortify-headers>=1.1-r2
+ gcc
+ libstdc++-dev
+ llvm$_llvmver-linker-tools
+ musl-dev
+ "
+
+ # create system config
+ # clang doesn't really have a way to set default -march abi options, so use the system config dir
+ # see the clang UsersManual for how this config directory is parsed / fallback order.
+ # this is set based on our gcc baseline. see the --with arguments in main/gcc.
+ mkdir -p "$pkgdir"/etc/clang$_llvmver
+ case "$CARCH" in
+ x86_64)
+ # unsurprisingly, this is the same as gcc
+ touch config.cfg
+ ;;
+ x86)
+ # clang defaults to pentium4 on i*86- triples.
+ # see https://github.com/llvm/llvm-project/issues/61347
+ cat > config.cfg <<-EOF
+ -march=pentium-m -mfpmath=sse
+ EOF
+ ;;
+ armhf)
+ # clang defaults to 'armv6' for armhf, i.e. no -zk.
+ # -zk is also a deprecated name for -kz.
+ cat > config.cfg <<-EOF
+ -march=armv6kz
+ -mfpu=vfp
+ -mtune=arm1176jzf-s
+ EOF
+ ;;
+ armv7)
+ # clang defaults to neon fpu and non-thumb.
+ # XXX: but seemingly changing it from this makes it not really work on armv7
+ # cat > config.cfg <<-EOF
+ # -mfpu=vfpv3-d16
+ # -mthumb
+ # EOF
+ touch config.cfg
+ ;;
+ s390x)
+ # this is correct, as this is the one thing that we have a build-time -D for.
+ # see -DCLANG_SYSTEMZ_DEFAULT_ARCH.
+ touch config.cfg
+ ;;
+ ppc64le)
+ # this is seemingly correct, clang defaults to secureplt for musl and elfv2.
+ touch config.cfg
+ ;;
+ riscv64)
+ # this is correct, as clang defaults to rvXLENimafdc (-gc) for non-unknown.
+ # this is our target already.
+ touch config.cfg
+ ;;
+ aarch64)
+ # XXX: this defaults to
+ # CmdArgs.push_back("-mfpu=crypto-neon-fp-armv8");
+ # is that correct? armv8 is always neon, but the others are unclear.
+ # the output still runs on an rpi4 that normally doesn't have "crypto", so maybe that is misleading
+ # (Gnu.cpp)
+ touch config.cfg
+ ;;
+ loongarch64)
+ touch config.cfg
+ ;;
+ esac
+ # the target triple being built for
+ # in LLVM, we set -DLLVM_DEFAULT_TARGET_TRIPLE to the same thing,
+ # so that is the default triple, and one of the checked files.
+ # it's possible to do CBUILD-clang.cfg and similar to make it per-tool
+ mv config.cfg "$pkgdir"/etc/clang$_llvmver/$CBUILD.cfg
+
+ DESTDIR="$pkgdir" cmake --install build
+ mkdir -p "$pkgdir"/usr/bin
+
+ install -Dm644 build/lib/libclang.a -t "$pkgdir"/usr/lib/llvm$_llvmver/lib/
+
+ if [ $_default_clang = "yes" ]; then
+ rm "$pkgdir"/usr/lib/llvm$_llvmver/share/clang/clang-format-bbedit.applescript \
+ "$pkgdir"/usr/lib/llvm$_llvmver/share/clang/clang-doc-default-stylesheet.css \
+ "$pkgdir"/usr/lib/llvm$_llvmver/share/clang/index.js
+
+ mkdir -p "$pkgdir"/usr/share/bash-completion/completions
+ mv "$pkgdir"/usr/lib/llvm$_llvmver/share/clang/bash-autocomplete.sh \
+ "$pkgdir"/usr/share/bash-completion/completions/clang
+
+ mkdir -p "$pkgdir"/usr/share/emacs/site-lisp
+ mv "$pkgdir"/usr/lib/llvm$_llvmver/share/clang/clang-*.el \
+ "$pkgdir"/usr/share/emacs/site-lisp
+ rmdir -p usr/lib/llvm$_llvmver/share/emacs || true
+
+ mv "$pkgdir"/usr/lib/llvm$_llvmver/share/man "$pkgdir"/usr/share/
+ # XXX: scan-build specifically needs to stay in llvm path, but scan-view has to not be
+ # everything uses different path lookup logic..
+ mv "$pkgdir"/usr/lib/llvm$_llvmver/share/scan-view "$pkgdir"/usr/share/
+
+ local sitedir=$(python3 -c "import site; print(site.getsitepackages()[0])")
+ mv "$pkgdir"/usr/lib/llvm$_llvmver/lib/python3* "$pkgdir"/usr/lib
+ mkdir -p "$pkgdir"/"$sitedir"
+ mv "$pkgdir"/usr/lib/llvm$_llvmver/lib/libscanbuild "$pkgdir"/"$sitedir"
+
+ # symlink everything in the bin dir,
+ # into /usr/bin.
+ local clangexes="
+ analyze-build
+ amdgpu-arch
+ c-index-test
+ clang
+ clang-cl
+ clang-cpp
+ clang-include-cleaner
+ clang-linker-wrapper
+ clang-pseudo
+ clang++
+ clang-$_llvmver
+ clang-apply-replacements
+ clang-change-namespace
+ clang-check
+ clang-doc
+ clang-extdef-mapping
+ clang-format
+ clang-include-fixer
+ clang-move
+ clang-offload-bundler
+ clang-offload-packager
+ clang-query
+ clang-refactor
+ clang-rename
+ clang-reorder-fields
+ clang-repl
+ clang-scan-deps
+ clang-tidy
+ clangd
+ diagtool
+ find-all-symbols
+ git-clang-format
+ hmaptool
+ intercept-build
+ modularize
+ nvptx-arch
+ pp-trace
+ run-clang-tidy
+ scan-build
+ scan-build-py
+ scan-view
+ "
+ for clangexe in $clangexes; do
+ ln -sfv ../lib/llvm$_llvmver/bin/$clangexe "$pkgdir"/usr/bin/$clangexe
+ done
+ ln -sfv ../lib/llvm$_llvmver/bin/clang-$_llvmver "$pkgdir"/usr/bin/clang++-$_llvmver
+
+ install -Dm644 "$builddir"/clang.1 -t "$pkgdir"/usr/share/man/man1/
+ else
+ ln -sfv ../lib/llvm$_llvmver/bin/clang-$_llvmver "$pkgdir"/usr/bin/clang-$_llvmver
+ ln -sfv ../lib/llvm$_llvmver/bin/clang-$_llvmver "$pkgdir"/usr/bin/clang++-$_llvmver
+
+ # delete things we don't want non-latest of
+ rm -r "$pkgdir"/usr/lib/llvm$_llvmver/share
+ rm -r "$pkgdir"/usr/lib/llvm$_llvmver/lib/python3*
+ fi
+
+ local libs="
+ libclang-cpp.so
+ libclang-cpp.so.$_llvmver
+ libclang.so
+ libclang.so.$_llvmver
+ libclang.so.$pkgver
+ "
+ for lib in $libs; do
+ ln -sfv ../lib/llvm$_llvmver/lib/$lib "$pkgdir"/usr/lib/$lib
+ done
+
+ # compat symlink back to fix clang with -no-canonical-prefixes
+ mkdir -p "$pkgdir"/usr/lib/clang/
+ ln -sfv ../llvm$_llvmver/lib/clang/$_llvmver "$pkgdir"/usr/lib/clang/$_llvmver
+}
+
+dev() {
+ default_dev
+ _default_replace
+
+ # move cmake to -dev
+ amove usr/lib/llvm$_llvmver/lib/cmake/clang
+
+ # create cmakedir symlinks, so find_package works
+ # llvm does the same thing- versioned, plus unversioned default.
+ mkdir -p "$subpkgdir"/usr/lib/cmake
+ ln -sfv ../llvm$_llvmver/lib/cmake/clang "$subpkgdir"/usr/lib/cmake/clang$_llvmver
+ if [ $_default_clang = yes ]; then
+ ln -sfv clang$_llvmver "$subpkgdir"/usr/lib/cmake/clang
+ fi
+}
+
+static() {
+ default_static
+ _default_replace
+}
+
+bash() {
+ default_bashcomp
+ _default_replace
+}
+
+libs() {
+ default_libs
+ # this can fail depending on the symlinks and is already moved
+ amove usr/lib/libclang-cpp.so.* || true
+ amove usr/lib/llvm$_llvmver/lib/libclang-cpp.so*
+ _default_replace
+}
+
+libclang() {
+ _default_replace
+ replaces="$replaces clang-libs"
+ depends="$pkgname-headers=$pkgver-r$pkgrel"
+
+ # we add an extra subpackage for this so things that link to libclang don't
+ # have to pull libclang-cpp too (separate)
+ amove usr/lib/libclang.so.*
+ amove usr/lib/llvm$_llvmver/lib/libclang.so*
+}
+
+analyzer() {
+ pkgdesc="Clang source code analysis framework"
+ depends="$pkgname=$pkgver-r$pkgrel py3-$pkgname=$pkgver-r$pkgrel perl python3"
+ _default_replace
+
+ amove \
+ usr/bin/scan* \
+ usr/bin/analyze-build* \
+ usr/bin/intercept-build* \
+ usr/lib/llvm$_llvmver/bin/scan* \
+ usr/lib/llvm$_llvmver/bin/analyze-build* \
+ usr/lib/llvm$_llvmver/bin/intercept-build* \
+ usr/lib/llvm$_llvmver/libexec/*-analyzer* \
+ usr/lib/llvm$_llvmver/libexec/analyze-* \
+ usr/lib/llvm$_llvmver/libexec/intercept-* \
+ usr/lib/llvm$_llvmver/lib/libear* \
+ usr/lib/llvm$_llvmver/share/scan-build \
+ usr/share/scan-view
+}
+
+headers() {
+ _default_replace
+ amove usr/lib/llvm$_llvmver/lib/clang/$_llvmver/include
+}
+
+extra() {
+ pkgdesc="Extra tools built using Clang's tooling APIs"
+ _default_replace
+
+ if [ "$_default_clang" = "yes" ]; then
+ amove \
+ usr/bin/amdgpu-arch \
+ usr/bin/clang-apply-replacements* \
+ usr/bin/clang-change-namespace* \
+ usr/bin/clang-check* \
+ usr/bin/clang-doc* \
+ usr/bin/clang-extdef-mapping* \
+ usr/bin/clang-format* \
+ usr/bin/clang-include-cleaner* \
+ usr/bin/clang-include-fixer* \
+ usr/bin/clang-move* \
+ usr/bin/clang-offload-bundler* \
+ usr/bin/clang-pseudo* \
+ usr/bin/clang-query* \
+ usr/bin/clang-refactor* \
+ usr/bin/clang-rename* \
+ usr/bin/clang-reorder-fields* \
+ usr/bin/clang-repl* \
+ usr/bin/clang-scan-deps* \
+ usr/bin/clang-tidy* \
+ usr/bin/clangd* \
+ usr/bin/c-index-test* \
+ usr/bin/diagtool* \
+ usr/bin/find-all-symbols* \
+ usr/bin/git-clang-format* \
+ usr/bin/hmaptool* \
+ usr/bin/modularize* \
+ usr/bin/nvptx-arch \
+ usr/bin/pp-trace* \
+ usr/bin/run-clang-tidy* \
+ usr/lib/llvm$_llvmver/bin/clang-check* \
+ usr/lib/llvm$_llvmver/bin/clang-extdef-mapping* \
+ usr/lib/llvm$_llvmver/share/clang/clang* \
+ usr/lib/llvm$_llvmver/share/clang/run-find-all-symbols.py
+ fi
+
+ amove \
+ usr/lib/llvm$_llvmver/bin/clang-apply-replacements* \
+ usr/lib/llvm$_llvmver/bin/clang-change-namespace* \
+ usr/lib/llvm$_llvmver/bin/clang-doc* \
+ usr/lib/llvm$_llvmver/bin/clang-format* \
+ usr/lib/llvm$_llvmver/bin/clang-include-cleaner* \
+ usr/lib/llvm$_llvmver/bin/clang-include-fixer* \
+ usr/lib/llvm$_llvmver/bin/clang-move* \
+ usr/lib/llvm$_llvmver/bin/clang-offload-bundler* \
+ usr/lib/llvm$_llvmver/bin/clang-pseudo* \
+ usr/lib/llvm$_llvmver/bin/clang-query* \
+ usr/lib/llvm$_llvmver/bin/clang-refactor* \
+ usr/lib/llvm$_llvmver/bin/clang-rename* \
+ usr/lib/llvm$_llvmver/bin/clang-reorder-fields* \
+ usr/lib/llvm$_llvmver/bin/clang-repl* \
+ usr/lib/llvm$_llvmver/bin/clang-scan-deps* \
+ usr/lib/llvm$_llvmver/bin/clang-tidy* \
+ usr/lib/llvm$_llvmver/bin/clangd* \
+ usr/lib/llvm$_llvmver/bin/c-index-test* \
+ usr/lib/llvm$_llvmver/bin/diagtool* \
+ usr/lib/llvm$_llvmver/bin/find-all-symbols* \
+ usr/lib/llvm$_llvmver/bin/git-clang-format* \
+ usr/lib/llvm$_llvmver/bin/hmaptool* \
+ usr/lib/llvm$_llvmver/bin/modularize* \
+ usr/lib/llvm$_llvmver/bin/pp-trace* \
+ usr/lib/llvm$_llvmver/bin/run-clang-tidy*
+}
+
+emacs() {
+ _default_replace
+ pkgdesc="clang plugin for emacs"
+ install_if="$pkgname-extra-tools=$pkgver-r$pkgrel emacs"
+
+ amove usr/share/emacs
+}
+
+python() {
+ pkgdesc="Clang Python Bindings"
+ depends="$pkgname-libs=$pkgver-r$pkgrel python3"
+ provides="py3-clang=$pkgver-r$pkgrel"
+ replaces="py3-clang"
+
+ amove usr/lib/python*
+}
+
+ccache() {
+ _default_replace
+ pkgdesc="$pkgdesc (ccache symlinks)"
+ install_if="$pkgname=$pkgver-r$pkgrel ccache"
+ replaces="$replaces ccache"
+
+ mkdir -p "$subpkgdir"/usr/lib/ccache/bin
+ ln -sfv ../../../bin/ccache "$subpkgdir"/usr/lib/ccache/bin/clang-$_llvmver
+ ln -sfv ../../../bin/ccache "$subpkgdir"/usr/lib/ccache/bin/clang++-$_llvmver
+ if [ "$_default_clang" = yes ]; then
+ ln -sfv ../../../bin/ccache "$subpkgdir"/usr/lib/ccache/bin/clang++
+ ln -sfv ../../../bin/ccache "$subpkgdir"/usr/lib/ccache/bin/clang
+ fi
+}
+
+_default_replace() {
+ if [ "$_default_clang" = yes ]; then
+ replaces="clang${subpkgname#"$pkgname"} clang15${subpkgname#"$pkgname"}"
+ provides="clang${subpkgname#"$pkgname"}=$pkgver-r$pkgrel"
+ fi
+}
+
+sha512sums="
+92c65b882e1504f4a9b8a3f6b8a24061505987aaacc8bb835115b4e4d74ac3a8c98343a308567b07c6b42bb99877c300bce3c4a5a25ada77abe65606aa25188d clang-16.0.6.src.tar.xz
+ec1a0834f223e393d24c11586b744167a41cea6c39d1bb18c433d2fb736501950fdff42f1eb0caa13c75bcb8ef9ac309eb0687644307698ec0420ff8a769c710 clang-tools-extra-16.0.6.src.tar.xz
+52ecd941d2d85a5b668caa5d0d40480cb6a97b3bf1174e634c2a93e9ef6d03670ca7e96abb0a60cb33ba537b93d5788754dab1f2f45c1f623f788162717d088b cmake-16.0.6.src.tar.xz
+5809d931656cac13b91bc91aac63df072b0403708ac718bf01546d9d520ff2c4163ee11411439dce5bb683a3bfa044b62443b6f66a1419c9086d20e79a018071 10-add-musl-triples.patch
+dcb67bf472ddb0404403c5cd1cea89e32c8bf63557fcf304b4d129cfc037e8e229348d44846c69917196b4777f7d659ac4407328a30de2513d91a490b968661e 30-Enable-stack-protector-by-default-for-Alpine-Linux.patch
+6896d6c5358b8b83c97c7cb31f60042f33a1326cfad093a0f23dcacd10ef418f845964f6de948a5873494dae5180e51a4b2b0cec937aa5597765362779da6f35 clang-default-fno-semantic-interposition.patch
+aa2dff990278e0258763934eaa528827baa1733eeb7dc36cc7f1500a4919b8d11870a0522f20f210d454322e3faf5945e9afaeffc9f3a3c4fd422b706370a663 clang-001-fortify-include.patch
+751f8acef2bfd1b50c065dea2ad0c3a20cadd4ff4c842ae519b5085c48372127b49a75d3fd0bd32291f5a69119340e5568a9fba6d94e6f354b14233986f61328 clang-002-fortify-enable.patch
+5f98f147d7d66315e9a56ae6fee602a053d40e57a8b1ee4f2ef1764203bb6fdb9082c8e825c535a9388213a38b49d2702b1e936fcf56560c4a2a56b7e6dd232c clang-003-as-needed.patch
+0928f379068e0bf819074f9cefad6247705c2571a08e995036e8432becdae0daf81dbc02548097fb544bb0c3fe02cac4039eb7d0dfcd51d03c3952ec3524b727 9008-Clang-Support-more-stdio-builtins.patch
+1d6d1dd5719ff1e93e55c8fd0fde115a0145d0d27c53e9a60bcf32a2e55afceac0dc28c41e1e2b1d2e5c1b8a16350c080b6c34b72595381f433e01130b52d162 9012-Call-printName-to-get-name-of-Decl.patch
+"
diff --git a/main/clang16/clang-001-fortify-include.patch b/main/clang16/clang-001-fortify-include.patch
new file mode 100644
index 00000000000..968c26e5131
--- /dev/null
+++ b/main/clang16/clang-001-fortify-include.patch
@@ -0,0 +1,36 @@
+From eca9994181dc355cfba61e726c038832d5ff6975 Mon Sep 17 00:00:00 2001
+From: Daniel Kolesa <daniel@octaforge.org>
+Date: Sun, 23 Oct 2022 00:47:57 +0200
+Subject: [PATCH 1/4] clang: add fortify include paths for musl triplets
+
+When we have fortify headers this lets them get included.
+---
+ lib/Driver/ToolChains/Linux.cpp | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/lib/Driver/ToolChains/Linux.cpp b/lib/Driver/ToolChains/Linux.cpp
+index 7fcdcf125..d5df4a240 100644
+--- a/lib/Driver/ToolChains/Linux.cpp
++++ b/lib/Driver/ToolChains/Linux.cpp
+@@ -622,10 +622,14 @@ void Linux::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
+ if (getTriple().getOS() == llvm::Triple::RTEMS)
+ return;
+
+- // Add an include of '/include' directly. This isn't provided by default by
+- // system GCCs, but is often used with cross-compiling GCCs, and harmless to
+- // add even when Clang is acting as-if it were a system compiler.
+- addExternCSystemInclude(DriverArgs, CC1Args, concat(SysRoot, "/include"));
++ if (getTriple().isMusl()) {
++ addExternCSystemInclude(DriverArgs, CC1Args, concat(SysRoot, "/usr/include/fortify"));
++ } else {
++ // Preserve original clang behavior for non-musl triples, but for musl
++ // this just gets in the way and none of our crosstoolchains are ever
++ // actually built this way (and we'd have to figure out fortify for it)
++ addExternCSystemInclude(DriverArgs, CC1Args, concat(SysRoot, "/include"));
++ }
+
+ addExternCSystemInclude(DriverArgs, CC1Args, concat(SysRoot, "/usr/include"));
+
+--
+2.38.0
+
diff --git a/main/clang16/clang-002-fortify-enable.patch b/main/clang16/clang-002-fortify-enable.patch
new file mode 100644
index 00000000000..30100c9cba4
--- /dev/null
+++ b/main/clang16/clang-002-fortify-enable.patch
@@ -0,0 +1,29 @@
+From 0a876ce2825f1e54bec7059a387e43a2e0386665 Mon Sep 17 00:00:00 2001
+From: Daniel Kolesa <daniel@octaforge.org>
+Date: Sun, 23 Oct 2022 01:02:35 +0200
+Subject: [PATCH 2/4] clang: enable fortify by default on optimizing musl
+ targets
+
+---
+ lib/Frontend/InitPreprocessor.cpp | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/lib/Frontend/InitPreprocessor.cpp b/lib/Frontend/InitPreprocessor.cpp
+index 20bfbf144..9095c0f2f 100644
+--- a/lib/Frontend/InitPreprocessor.cpp
++++ b/lib/Frontend/InitPreprocessor.cpp
+@@ -1288,6 +1288,11 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
+ Builder.defineMacro("__GLIBCXX_BITSIZE_INT_N_0", "128");
+ }
+
++ // Enable fortify by default on musl when optimizing, but not with asan
++ if (TI.getTriple().isMusl() && LangOpts.Optimize &&
++ !LangOpts.Sanitize.has(SanitizerKind::Address))
++ Builder.defineMacro("_FORTIFY_SOURCE", "2");
++
+ // Get other target #defines.
+ TI.getTargetDefines(LangOpts, Builder);
+ }
+--
+2.38.0
+
diff --git a/main/clang16/clang-003-as-needed.patch b/main/clang16/clang-003-as-needed.patch
new file mode 100644
index 00000000000..a92836fe07a
--- /dev/null
+++ b/main/clang16/clang-003-as-needed.patch
@@ -0,0 +1,31 @@
+forces as-needed regardless of ldflags
+From f59f126a9344f265e3766003766d7a66b6a638e3 Mon Sep 17 00:00:00 2001
+From: Daniel Kolesa <daniel@octaforge.org>
+Date: Sun, 23 Oct 2022 01:26:37 +0200
+Subject: [PATCH 3/4] clang: use --as-needed by default
+
+---
+ clang/lib/Driver/ToolChains/Gnu.cpp | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
+index f203cae1d..9e181a79a 100644
+--- a/lib/Driver/ToolChains/Gnu.cpp
++++ b/lib/Driver/ToolChains/Gnu.cpp
+@@ -560,6 +560,13 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
+ bool NeedsSanitizerDeps = addSanitizerRuntimes(ToolChain, Args, CmdArgs);
+ bool NeedsXRayDeps = addXRayRuntime(ToolChain, Args, CmdArgs);
+ addLinkerCompressDebugSectionsOption(ToolChain, Args, CmdArgs);
++
++ // Use --as-needed by default for all explicit linker inputs on Linux
++ // We don't reset it afterwards because explicit argument does not
++ // get reset either (and that is permitted, so it should be fine)
++ if (Triple.isOSLinux())
++ CmdArgs.push_back("--as-needed");
++
+ AddLinkerInputs(ToolChain, Inputs, Args, CmdArgs, JA);
+
+ addHIPRuntimeLibArgs(ToolChain, Args, CmdArgs);
+--
+2.38.0
+
diff --git a/main/clang16/clang-default-fno-semantic-interposition.patch b/main/clang16/clang-default-fno-semantic-interposition.patch
new file mode 100644
index 00000000000..01022aff209
--- /dev/null
+++ b/main/clang16/clang-default-fno-semantic-interposition.patch
@@ -0,0 +1,39 @@
+Patch-Source: https://github.com/chimera-linux/cports/commit/77fdf96a59bddfca32b6737335f01afaf64ff380
+reference: https://maskray.me/blog/2021-05-09-fno-semantic-interposition
+
+in general, this is not '100% safe'.
+however:
+- we only use clang in a few places
+- chimera has had good success with this flag and not seen issues
+so, it should be fine to default in our clang too. it should bring some
+noticable performance gains paired with pic.
+
+--
+From 73b8ed17fed2145b29bde40a0c658712e34d48c3 Mon Sep 17 00:00:00 2001
+From: Daniel Kolesa <daniel@octaforge.org>
+Date: Tue, 28 Feb 2023 01:59:26 +0100
+Subject: [PATCH] clang: default to -fno-semantic-interposition on supported
+ targets
+
+---
+ clang/lib/Driver/ToolChains/Clang.cpp | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
+index 3704ed85..d3d67a22 100644
+--- a/lib/Driver/ToolChains/Clang.cpp
++++ b/lib/Driver/ToolChains/Clang.cpp
+@@ -5072,9 +5072,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA,
+ // The supported targets need to call AsmPrinter::getSymbolPreferLocal.
+ bool SupportsLocalAlias =
+ Triple.isAArch64() || Triple.isRISCV() || Triple.isX86();
+- if (!A)
+- CmdArgs.push_back("-fhalf-no-semantic-interposition");
+- else if (A->getOption().matches(options::OPT_fsemantic_interposition))
++ if (A && A->getOption().matches(options::OPT_fsemantic_interposition))
+ A->render(Args, CmdArgs);
+ else if (!SupportsLocalAlias)
+ CmdArgs.push_back("-fhalf-no-semantic-interposition");
+--
+2.39.0
+
diff --git a/main/clang16/clang16.pre-upgrade b/main/clang16/clang16.pre-upgrade
new file mode 100644
index 00000000000..2aebb754d8a
--- /dev/null
+++ b/main/clang16/clang16.pre-upgrade
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+ver_old=$2
+
+if [ "$(apk version -t "$ver_old" '16.0.0-r8')" = '<' ]; then
+ # in -r7 we changed this directory containing a symlink, to a symlink itself
+ # in -r8 we added the pre-upgrade, so check for < -r8
+ if [ -d /usr/lib/clang/16 ]; then
+ rm -r /usr/lib/clang/16
+ fi
+fi
+
+exit 0
diff --git a/main/clang17/10-add-musl-triples.patch b/main/clang17/10-add-musl-triples.patch
new file mode 100644
index 00000000000..0ed9c81675f
--- /dev/null
+++ b/main/clang17/10-add-musl-triples.patch
@@ -0,0 +1,39 @@
+--- a/lib/Driver/ToolChains/Gnu.cpp
++++ b/lib/Driver/ToolChains/Gnu.cpp
+@@ -2073,7 +2073,7 @@
+ static const char *const AArch64LibDirs[] = {"/lib64", "/lib"};
+ static const char *const AArch64Triples[] = {
+ "aarch64-none-linux-gnu", "aarch64-linux-gnu", "aarch64-redhat-linux",
+- "aarch64-suse-linux"};
++ "aarch64-suse-linux", "aarch64-linux-musl"};
+ static const char *const AArch64beLibDirs[] = {"/lib"};
+ static const char *const AArch64beTriples[] = {"aarch64_be-none-linux-gnu",
+ "aarch64_be-linux-gnu"};
+@@ -2085,7 +2085,9 @@
+ "armv7l-linux-musleabihf",
+ "armv7hl-redhat-linux-gnueabi",
+ "armv6hl-suse-linux-gnueabi",
+- "armv7hl-suse-linux-gnueabi"};
++ "armv7hl-suse-linux-gnueabi",
++ "arm-linux-musleabihf",
++ "armv7l-linux-musleabihf"};
+ static const char *const ARMebLibDirs[] = {"/lib"};
+ static const char *const ARMebTriples[] = {"armeb-linux-gnueabi"};
+ static const char *const ARMebHFTriples[] = {
+@@ -2101,7 +2103,7 @@
+ "x86_64-redhat-linux", "x86_64-suse-linux",
+ "x86_64-manbo-linux-gnu", "x86_64-linux-gnu",
+ "x86_64-slackware-linux", "x86_64-unknown-linux",
+- "x86_64-amazon-linux"};
++ "x86_64-amazon-linux", "x86_64-linux-musl"};
+ static const char *const X32Triples[] = {"x86_64-linux-gnux32",
+ "x86_64-pc-linux-gnux32"};
+ static const char *const X32LibDirs[] = {"/libx32", "/lib"};
+@@ -2110,6 +2112,7 @@
+ "i586-linux-gnu", "i686-linux-gnu", "i686-pc-linux-gnu",
+ "i386-redhat-linux6E", "i686-redhat-linux", "i386-redhat-linux",
+ "i586-suse-linux", "i686-montavista-linux", "i686-gnu",
++ "i686-linux-musl",
+ };
+
+ static const char *const M68kLibDirs[] = {"/lib"};
diff --git a/main/clang17/30-Enable-stack-protector-by-default-for-Alpine-Linux.patch b/main/clang17/30-Enable-stack-protector-by-default-for-Alpine-Linux.patch
new file mode 100644
index 00000000000..9e8a976b68f
--- /dev/null
+++ b/main/clang17/30-Enable-stack-protector-by-default-for-Alpine-Linux.patch
@@ -0,0 +1,90 @@
+diff --git a/lib/Driver/ToolChains/Gnu.cpp b/lib/Driver/ToolChains/Gnu.cpp
+index 4f23403..da6883e 100644
+--- a/lib/Driver/ToolChains/Gnu.cpp
++++ b/lib/Driver/ToolChains/Gnu.cpp
+@@ -588,6 +588,10 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
+ CmdArgs.push_back("-lm");
+ }
+
++ if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nostartfiles, options::OPT_nodefaultlibs)) {
++ CmdArgs.push_back("-lssp_nonshared");
++ }
++
+ // Silence warnings when linking C code with a C++ '-stdlib' argument.
+ Args.ClaimAllArgs(options::OPT_stdlib_EQ);
+
+diff --git a/lib/Driver/ToolChains/Linux.h b/lib/Driver/ToolChains/Linux.h
+index 52439174..d754b543 100644
+--- a/lib/Driver/ToolChains/Linux.h
++++ b/lib/Driver/ToolChains/Linux.h
+@@ -11,6 +11,7 @@
+
+ #include "Gnu.h"
+ #include "clang/Driver/ToolChain.h"
++#include "clang/Basic/LangOptions.h"
+
+ namespace clang {
+ namespace driver {
+@@ -63,7 +64,15 @@ public:
+ const llvm::opt::ArgList &DriverArgs, const JobAction &JA,
+ const llvm::fltSemantics *FPType = nullptr) const override;
+
+ const char *getDefaultLinker() const override;
++ LangOptions::StackProtectorMode
++ GetDefaultStackProtectorLevel(bool KernelOrKext) const override {
++ StringRef VendorName = Linux::getTriple().getVendorName();
++ if (VendorName.compare("alpine") == 0)
++ return LangOptions::SSPStrong;
++
++ return LangOptions::SSPOff;
++ }
+
+ protected:
+ Tool *buildAssembler() const override;
+diff --git a/test/Driver/fsanitize.c b/test/Driver/fsanitize.c
+index 8ad6dc25..1619b59a 100644
+--- a/test/Driver/fsanitize.c
++++ b/test/Driver/fsanitize.c
+@@ -695,12 +695,12 @@
+ // RUN: %clang -fno-sanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=NOSP
+ // NOSP-NOT: "-fsanitize=safe-stack"
+
+-// RUN: %clang --target=x86_64-linux-gnu -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=NO-SP
++// RUN: %clang --target=x86_64-linux-gnu -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=SP
+ // RUN: %clang --target=x86_64-linux-gnu -fsanitize=address,safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=SP-ASAN
+ // RUN: %clang --target=x86_64-linux-gnu -fstack-protector -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=SP
+ // RUN: %clang --target=x86_64-linux-gnu -fsanitize=safe-stack -fstack-protector-all -### %s 2>&1 | FileCheck %s -check-prefix=SP
+-// RUN: %clang --target=arm-linux-androideabi -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=NO-SP
+-// RUN: %clang --target=aarch64-linux-android -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=NO-SP
++// RUN: %clang --target=arm-linux-androideabi -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=SP
++// RUN: %clang --target=aarch64-linux-android -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=SP
+ // RUN: %clang --target=i386-contiki-unknown -fsanitize=safe-stack -### %s 2>&1 | FileCheck %s -check-prefix=NO-SP
+ // NO-SP-NOT: stack-protector
+ // NO-SP: "-fsanitize=safe-stack"
+diff --git a/test/Driver/stack-protector.c b/test/Driver/stack-protector.c
+index 16937691..80987f67 100644
+--- a/test/Driver/stack-protector.c
++++ b/test/Driver/stack-protector.c
+@@ -33,6 +33,22 @@
+ // SSP-PS4-BUF: "-stack-protector" "2"
+ // SSP-PS4-BUF: "-stack-protector-buffer-size" "16"
+
++// Test default stack protector values for Alpine
++
++// RUN: %clang -target x86_64-alpine-linux-musl -### %s 2>&1 | FileCheck %s -check-prefix=ALPINE
++// ALPINE: "-stack-protector" "2"
++
++// RUN: %clang -target x86_64-alpine-linux-musl -fstack-protector -### %s 2>&1 | FileCheck %s -check-prefix=ALPINE_SPS
++// ALPINE_SPS: "-stack-protector" "2"
++
++// RUN: %clang -target x86_64-alpine-linux-musl -fstack-protector-all -### %s 2>&1 | FileCheck %s -check-prefix=ALPINE_ALL
++// ALPINE_ALL: "-stack-protector" "3"
++// ALPINE_ALL-NOT: "-stack-protector-buffer-size"
++
++// RUN: %clang -target x86_64-alpine-linux-musl -fno-stack-protector -### %s 2>&1 | FileCheck %s -check-prefix=ALPINE_NOSSP
++// ALPINE_NOSSP-NOT: "-stack-protector"
++// ALPINE_NOSSP-NOT: "-stack-protector-buffer-size"
++
+ // Test default stack protector values for Darwin platforms
+
+ // RUN: %clang -target armv7k-apple-watchos2.0 -### %s 2>&1 | FileCheck %s -check-prefix=SSP_WATCHOS
diff --git a/main/clang17/APKBUILD b/main/clang17/APKBUILD
new file mode 100644
index 00000000000..f892903a235
--- /dev/null
+++ b/main/clang17/APKBUILD
@@ -0,0 +1,500 @@
+# Contributor Eric Molitor <eric@molitor.org>
+# Contributor Patrick Gansterer <paroga@paroga.com>
+# Contributor Travis Tilley <ttilley@gmail.com>
+# Contributor omni <omni+alpine@hack.org>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=clang17
+pkgver=17.0.6
+pkgrel=1
+_llvmver=${pkgver%%.*}
+pkgdesc="C language family front-end for LLVM"
+arch="all"
+url="https://llvm.org/"
+license="Apache-2.0 WITH LLVM-exception"
+options="!check" # fail to build
+makedepends="
+ cmake
+ help2man
+ libxml2-dev
+ llvm$_llvmver-dev
+ llvm$_llvmver-gtest
+ llvm$_llvmver-static
+ llvm$_llvmver-test-utils
+ samurai
+ python3
+ "
+checkdepends="diffutils bash gtest-dev"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+subpackages="
+ $pkgname-static
+ $pkgname-headers
+ $pkgname-libclang
+ $pkgname-libs
+ $pkgname-dev
+ $pkgname-ccache
+ $pkgname-extra-tools:extra
+ "
+source="https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/clang-$pkgver.src.tar.xz
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/clang-tools-extra-$pkgver.src.tar.xz
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/cmake-$pkgver.src.tar.xz
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/llvm-$pkgver.src.tar.xz
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/third-party-$pkgver.src.tar.xz
+ 10-add-musl-triples.patch
+ 30-Enable-stack-protector-by-default-for-Alpine-Linux.patch
+
+ clang-001-fortify-include.patch
+ clang-002-fortify-enable.patch
+ clang-003-as-needed.patch
+ "
+builddir="$srcdir/clang-$pkgver.src"
+
+prepare() {
+ mv "$srcdir/clang-tools-extra-$pkgver.src" "$builddir/tools/extra"
+ default_prepare
+ mv "$srcdir"/cmake-${pkgver//_/}.src "$srcdir"/cmake
+ mv "$srcdir"/third-party-${pkgver//_/}.src "$srcdir"/thirtd-party
+}
+
+# Whether is this package the default (latest) clang version.
+_default_clang="yes"
+
+if [ "$_default_clang" = yes ]; then
+ subpackages="
+ $subpackages
+ $pkgname-doc
+ $pkgname-analyzer::noarch
+ $pkgname-bash-completion:bash:noarch
+ $pkgname-emacs::noarch
+ py3-$pkgname:python:noarch
+ "
+ provides="clang=$pkgver-r$pkgrel"
+ replaces="clang"
+ depends_dev="$depends_dev $pkgname-extra-tools=$pkgver-r$pkgrel"
+fi
+
+build() {
+ local python_version=$(python3 -V | sed 's/.*\([0-9]\{1,\}\.[0-9]\{1,\}\)\..*/\1/')
+
+ if [ $_default_clang = yes ]; then
+ local extras=ON
+ else
+ local extras=OFF
+ fi
+
+ cmake -B build -G Ninja -Wno-dev \
+ -DCLANG_BUILT_STANDALONE=ON \
+ -DCLANG_CONFIG_FILE_SYSTEM_DIR=/etc/clang$_llvmver \
+ -DCLANG_DEFAULT_PIE_ON_LINUX=ON \
+ -DCLANG_ENABLE_ARCMT=$extras \
+ -DCLANG_ENABLE_STATIC_ANALYZER=$extras \
+ -DCLANG_INCLUDE_TESTS="$(want_check && echo ON || echo OFF)" \
+ -DCLANG_LINK_CLANG_DYLIB=ON \
+ -DCLANG_PLUGIN_SUPPORT=ON \
+ -DCLANG_PYTHON_BINDINGS_VERSIONS="$python_version" \
+ -DCLANG_SYSTEMZ_DEFAULT_ARCH=z196 \
+ -DCLANG_VENDOR=Alpine \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr/lib/llvm$_llvmver \
+ -DCMAKE_INSTALL_RPATH=/usr/lib/llvm$_llvmver/lib \
+ -DCMAKE_MODULE_PATH="$srcdir/cmake-$pkgver.src/Modules" \
+ -DENABLE_LINKER_BUILD_ID=ON \
+ -DLIBCLANG_BUILD_STATIC=ON \
+ -DLLVM_INCLUDE_TESTS=OFF \
+ -DLLVM_EXTERNAL_LIT=/usr/bin/lit \
+ -DLLVM_BUILD_TESTS=ON \
+ -DLLVM_ENABLE_RTTI=ON \
+ -DLLVM_LINK_LLVM_DYLIB=ON \
+ -DLLVM_MAIN_SRC_DIR="$srcdir/llvm-$pkgver.src"
+
+ ninja -C build clang-tblgen
+ ninja -C build
+
+ if [ "$_default_clang" = yes ]; then
+ help2man --no-info \
+ --source "Alpine" \
+ --name "Alpine Clang $pkgver-r$pkgrel" \
+ --version-string "$pkgver-r$pkgrel" \
+ --help-option "--help-hidden" \
+ ./build/bin/clang > clang.1
+ fi
+}
+
+check() {
+ ninja -C build check-all
+}
+
+package() {
+ # the libraries should always exactly match, not just by soname
+ # gcc is for libgcc-dev which we don't have split
+ depends="
+ $pkgname-headers=$pkgver-r$pkgrel
+ $pkgname-libs=$pkgver-r$pkgrel
+ fortify-headers>=1.1-r2
+ gcc
+ libstdc++-dev
+ llvm$_llvmver-linker-tools
+ musl-dev
+ "
+
+ # create system config
+ # clang doesn't really have a way to set default -march abi options, so use the system config dir
+ # see the clang UsersManual for how this config directory is parsed / fallback order.
+ # this is set based on our gcc baseline. see the --with arguments in main/gcc.
+ mkdir -p "$pkgdir"/etc/clang$_llvmver
+ case "$CARCH" in
+ x86_64)
+ # unsurprisingly, this is the same as gcc
+ touch config.cfg
+ ;;
+ x86)
+ # clang defaults to pentium4 on i*86- triples.
+ # see https://github.com/llvm/llvm-project/issues/61347
+ cat > config.cfg <<-EOF
+ -march=pentium-m -mfpmath=sse
+ EOF
+ ;;
+ armhf)
+ # clang defaults to 'armv6' for armhf, i.e. no -zk.
+ # -zk is also a deprecated name for -kz.
+ cat > config.cfg <<-EOF
+ -march=armv6kz
+ -mfpu=vfp
+ -mtune=arm1176jzf-s
+ EOF
+ ;;
+ armv7)
+ # clang defaults to neon fpu and non-thumb.
+ # XXX: but seemingly changing it from this makes it not really work on armv7
+ # cat > config.cfg <<-EOF
+ # -mfpu=vfpv3-d16
+ # -mthumb
+ # EOF
+ touch config.cfg
+ ;;
+ s390x)
+ # this is correct, as this is the one thing that we have a build-time -D for.
+ # see -DCLANG_SYSTEMZ_DEFAULT_ARCH.
+ touch config.cfg
+ ;;
+ ppc64le)
+ # this is seemingly correct, clang defaults to secureplt for musl and elfv2.
+ touch config.cfg
+ ;;
+ riscv64)
+ # this is correct, as clang defaults to rvXLENimafdc (-gc) for non-unknown.
+ # this is our target already.
+ touch config.cfg
+ ;;
+ aarch64)
+ # XXX: this defaults to
+ # CmdArgs.push_back("-mfpu=crypto-neon-fp-armv8");
+ # is that correct? armv8 is always neon, but the others are unclear.
+ # the output still runs on an rpi4 that normally doesn't have "crypto", so maybe that is misleading
+ # (Gnu.cpp)
+ touch config.cfg
+ ;;
+ loongarch64)
+ touch config.cfg
+ ;;
+ esac
+ # the target triple being built for
+ # in LLVM, we set -DLLVM_DEFAULT_TARGET_TRIPLE to the same thing,
+ # so that is the default triple, and one of the checked files.
+ # it's possible to do CBUILD-clang.cfg and similar to make it per-tool
+ mv config.cfg "$pkgdir"/etc/clang$_llvmver/$CBUILD.cfg
+
+ DESTDIR="$pkgdir" cmake --install build
+ mkdir -p "$pkgdir"/usr/bin
+
+ install -Dm644 build/lib/libclang.a -t "$pkgdir"/usr/lib/llvm$_llvmver/lib/
+
+ if [ $_default_clang = "yes" ]; then
+ rm "$pkgdir"/usr/lib/llvm$_llvmver/share/clang/clang-format-bbedit.applescript \
+ "$pkgdir"/usr/lib/llvm$_llvmver/share/clang/clang-doc-default-stylesheet.css \
+ "$pkgdir"/usr/lib/llvm$_llvmver/share/clang/index.js
+
+ mkdir -p "$pkgdir"/usr/share/bash-completion/completions
+ mv "$pkgdir"/usr/lib/llvm$_llvmver/share/clang/bash-autocomplete.sh \
+ "$pkgdir"/usr/share/bash-completion/completions/clang
+
+ mkdir -p "$pkgdir"/usr/share/emacs/site-lisp
+ mv "$pkgdir"/usr/lib/llvm$_llvmver/share/clang/clang-*.el \
+ "$pkgdir"/usr/share/emacs/site-lisp
+ rmdir -p usr/lib/llvm$_llvmver/share/emacs || true
+
+ mv "$pkgdir"/usr/lib/llvm$_llvmver/share/man "$pkgdir"/usr/share/
+ # XXX: scan-build specifically needs to stay in llvm path, but scan-view has to not be
+ # everything uses different path lookup logic..
+ mv "$pkgdir"/usr/lib/llvm$_llvmver/share/scan-view "$pkgdir"/usr/share/
+
+ local sitedir=$(python3 -c "import site; print(site.getsitepackages()[0])")
+ mv "$pkgdir"/usr/lib/llvm$_llvmver/lib/python3* "$pkgdir"/usr/lib
+ mkdir -p "$pkgdir"/"$sitedir"
+ mv "$pkgdir"/usr/lib/llvm$_llvmver/lib/libscanbuild "$pkgdir"/"$sitedir"
+
+ # symlink everything in the bin dir,
+ # into /usr/bin.
+ local clangexes="
+ analyze-build
+ amdgpu-arch
+ c-index-test
+ clang
+ clang-cl
+ clang-cpp
+ clang-include-cleaner
+ clang-linker-wrapper
+ clang-pseudo
+ clang++
+ clang-$_llvmver
+ clang-apply-replacements
+ clang-change-namespace
+ clang-check
+ clang-doc
+ clang-extdef-mapping
+ clang-format
+ clang-include-fixer
+ clang-move
+ clang-offload-bundler
+ clang-offload-packager
+ clang-query
+ clang-refactor
+ clang-rename
+ clang-reorder-fields
+ clang-repl
+ clang-scan-deps
+ clang-tidy
+ clangd
+ diagtool
+ find-all-symbols
+ git-clang-format
+ hmaptool
+ intercept-build
+ modularize
+ nvptx-arch
+ pp-trace
+ run-clang-tidy
+ scan-build
+ scan-build-py
+ scan-view
+ "
+ for clangexe in $clangexes; do
+ ln -sfv ../lib/llvm$_llvmver/bin/$clangexe "$pkgdir"/usr/bin/$clangexe
+ done
+ ln -sfv ../lib/llvm$_llvmver/bin/clang-$_llvmver "$pkgdir"/usr/bin/clang++-$_llvmver
+
+ install -Dm644 "$builddir"/clang.1 -t "$pkgdir"/usr/share/man/man1/
+ else
+ ln -sfv ../lib/llvm$_llvmver/bin/clang-$_llvmver "$pkgdir"/usr/bin/clang-$_llvmver
+ ln -sfv ../lib/llvm$_llvmver/bin/clang-$_llvmver "$pkgdir"/usr/bin/clang++-$_llvmver
+
+ # delete things we don't want non-latest of
+ rm -r "$pkgdir"/usr/lib/llvm$_llvmver/share
+ rm -r "$pkgdir"/usr/lib/llvm$_llvmver/lib/python3*
+ fi
+
+ local libs="
+ libclang-cpp.so
+ libclang-cpp.so.$_llvmver
+ libclang.so
+ libclang.so.$_llvmver
+ libclang.so.$pkgver
+ "
+ for lib in $libs; do
+ ln -sfv ../lib/llvm$_llvmver/lib/$lib "$pkgdir"/usr/lib/$lib
+ done
+
+ # compat symlink back to fix clang with -no-canonical-prefixes
+ mkdir -p "$pkgdir"/usr/lib/clang/
+ ln -sfv ../llvm$_llvmver/lib/clang/$_llvmver "$pkgdir"/usr/lib/clang/$_llvmver
+}
+
+dev() {
+ default_dev
+ _default_replace
+
+ # move cmake to -dev
+ amove usr/lib/llvm$_llvmver/lib/cmake/clang
+
+ # create cmakedir symlinks, so find_package works
+ # llvm does the same thing- versioned, plus unversioned default.
+ mkdir -p "$subpkgdir"/usr/lib/cmake
+ ln -sfv ../llvm$_llvmver/lib/cmake/clang "$subpkgdir"/usr/lib/cmake/clang$_llvmver
+ if [ $_default_clang = yes ]; then
+ ln -sfv clang$_llvmver "$subpkgdir"/usr/lib/cmake/clang
+ fi
+}
+
+static() {
+ default_static
+ _default_replace
+}
+
+bash() {
+ default_bashcomp
+ _default_replace
+}
+
+libs() {
+ default_libs
+ # this can fail depending on the symlinks and is already moved
+ amove usr/lib/libclang-cpp.so.* || true
+ amove usr/lib/llvm$_llvmver/lib/libclang-cpp.so*
+ _default_replace
+}
+
+libclang() {
+ _default_replace
+ replaces="$replaces clang-libs"
+ depends="$pkgname-headers=$pkgver-r$pkgrel"
+
+ # we add an extra subpackage for this so things that link to libclang don't
+ # have to pull libclang-cpp too (separate)
+ amove usr/lib/libclang.so.*
+ amove usr/lib/llvm$_llvmver/lib/libclang.so*
+}
+
+analyzer() {
+ pkgdesc="Clang source code analysis framework"
+ depends="$pkgname=$pkgver-r$pkgrel py3-$pkgname=$pkgver-r$pkgrel perl python3"
+ _default_replace
+
+ amove \
+ usr/bin/scan* \
+ usr/bin/analyze-build* \
+ usr/bin/intercept-build* \
+ usr/lib/llvm$_llvmver/bin/scan* \
+ usr/lib/llvm$_llvmver/bin/analyze-build* \
+ usr/lib/llvm$_llvmver/bin/intercept-build* \
+ usr/lib/llvm$_llvmver/libexec/*-analyzer* \
+ usr/lib/llvm$_llvmver/libexec/analyze-* \
+ usr/lib/llvm$_llvmver/libexec/intercept-* \
+ usr/lib/llvm$_llvmver/lib/libear* \
+ usr/lib/llvm$_llvmver/share/scan-build \
+ usr/share/scan-view
+}
+
+headers() {
+ _default_replace
+ amove usr/lib/llvm$_llvmver/lib/clang/$_llvmver/include
+}
+
+extra() {
+ pkgdesc="Extra tools built using Clang's tooling APIs"
+ _default_replace
+
+ if [ "$_default_clang" = "yes" ]; then
+ amove \
+ usr/bin/amdgpu-arch \
+ usr/bin/clang-apply-replacements* \
+ usr/bin/clang-change-namespace* \
+ usr/bin/clang-check* \
+ usr/bin/clang-doc* \
+ usr/bin/clang-extdef-mapping* \
+ usr/bin/clang-format* \
+ usr/bin/clang-include-cleaner* \
+ usr/bin/clang-include-fixer* \
+ usr/bin/clang-move* \
+ usr/bin/clang-offload-bundler* \
+ usr/bin/clang-pseudo* \
+ usr/bin/clang-query* \
+ usr/bin/clang-refactor* \
+ usr/bin/clang-rename* \
+ usr/bin/clang-reorder-fields* \
+ usr/bin/clang-repl* \
+ usr/bin/clang-scan-deps* \
+ usr/bin/clang-tidy* \
+ usr/bin/clangd* \
+ usr/bin/c-index-test* \
+ usr/bin/diagtool* \
+ usr/bin/find-all-symbols* \
+ usr/bin/git-clang-format* \
+ usr/bin/hmaptool* \
+ usr/bin/modularize* \
+ usr/bin/nvptx-arch \
+ usr/bin/pp-trace* \
+ usr/bin/run-clang-tidy*
+ fi
+
+ amove \
+ usr/lib/llvm$_llvmver/bin/clang-apply-replacements* \
+ usr/lib/llvm$_llvmver/bin/clang-change-namespace* \
+ usr/lib/llvm$_llvmver/bin/clang-check* \
+ usr/lib/llvm$_llvmver/bin/clang-doc* \
+ usr/lib/llvm$_llvmver/bin/clang-extdef-mapping* \
+ usr/lib/llvm$_llvmver/bin/clang-format* \
+ usr/lib/llvm$_llvmver/bin/clang-include-cleaner* \
+ usr/lib/llvm$_llvmver/bin/clang-include-fixer* \
+ usr/lib/llvm$_llvmver/bin/clang-move* \
+ usr/lib/llvm$_llvmver/bin/clang-offload-bundler* \
+ usr/lib/llvm$_llvmver/bin/clang-pseudo* \
+ usr/lib/llvm$_llvmver/bin/clang-query* \
+ usr/lib/llvm$_llvmver/bin/clang-refactor* \
+ usr/lib/llvm$_llvmver/bin/clang-rename* \
+ usr/lib/llvm$_llvmver/bin/clang-reorder-fields* \
+ usr/lib/llvm$_llvmver/bin/clang-repl* \
+ usr/lib/llvm$_llvmver/bin/clang-scan-deps* \
+ usr/lib/llvm$_llvmver/bin/clang-tidy* \
+ usr/lib/llvm$_llvmver/bin/clangd* \
+ usr/lib/llvm$_llvmver/bin/c-index-test* \
+ usr/lib/llvm$_llvmver/bin/diagtool* \
+ usr/lib/llvm$_llvmver/bin/find-all-symbols* \
+ usr/lib/llvm$_llvmver/bin/git-clang-format* \
+ usr/lib/llvm$_llvmver/bin/hmaptool* \
+ usr/lib/llvm$_llvmver/bin/modularize* \
+ usr/lib/llvm$_llvmver/bin/pp-trace* \
+ usr/lib/llvm$_llvmver/bin/run-clang-tidy* \
+ usr/lib/llvm$_llvmver/share/clang/clang* \
+ usr/lib/llvm$_llvmver/share/clang/run-find-all-symbols.py
+}
+
+emacs() {
+ _default_replace
+ pkgdesc="clang plugin for emacs"
+ install_if="$pkgname-extra-tools=$pkgver-r$pkgrel emacs"
+
+ amove usr/share/emacs
+}
+
+python() {
+ pkgdesc="Clang Python Bindings"
+ depends="$pkgname-libs=$pkgver-r$pkgrel python3"
+ provides="py3-clang=$pkgver-r$pkgrel"
+ replaces="py3-clang"
+
+ amove usr/lib/python*
+}
+
+ccache() {
+ _default_replace
+ pkgdesc="$pkgdesc (ccache symlinks)"
+ install_if="$pkgname=$pkgver-r$pkgrel ccache"
+ replaces="$replaces ccache"
+
+ mkdir -p "$subpkgdir"/usr/lib/ccache/bin
+ ln -sfv ../../../bin/ccache "$subpkgdir"/usr/lib/ccache/bin/clang-$_llvmver
+ ln -sfv ../../../bin/ccache "$subpkgdir"/usr/lib/ccache/bin/clang++-$_llvmver
+ if [ "$_default_clang" = yes ]; then
+ ln -sfv ../../../bin/ccache "$subpkgdir"/usr/lib/ccache/bin/clang++
+ ln -sfv ../../../bin/ccache "$subpkgdir"/usr/lib/ccache/bin/clang
+ fi
+}
+
+_default_replace() {
+ if [ "$_default_clang" = yes ]; then
+ replaces="clang${subpkgname#"$pkgname"} clang16${subpkgname#"$pkgname"}"
+ provides="clang${subpkgname#"$pkgname"}=$pkgver-r$pkgrel"
+ fi
+}
+
+sha512sums="
+da6f670a52d60c46bbe6bfa2870106f6a6714c9566fab293b8c624a555308104a1a05cd065643091d7006ef4533a9a722dff1fccaf26f348a0c0a5c7b9331439 clang-17.0.6.src.tar.xz
+5110dd36ee1c966d22760000f0c28cf070fd00b05445d418d264dbd3b48426a203f934e402d408fab2602dbf39a29d66898cc7c69c1a52b5e0e6e7097f9db877 clang-tools-extra-17.0.6.src.tar.xz
+b2c5e404ca36542d44e1a7f2801bbcecbcf5f1e8c63b793bb2308228483406bdfe002720aadb913c0228cd2bbe5998465eaadc4a49fad6a5eb6ff907fa5fd45a cmake-17.0.6.src.tar.xz
+bf9b04d0d45c67168b195c550cd8326e3a01176f92776705846aad3956a494bcb7a053b0b0bde19abd68dc0068e5c97ef99dee7eadfdb727bc0d758b2684f3bd llvm-17.0.6.src.tar.xz
+242dada4800c5e558f5f243e6aa0905d90ca3f82cc81baf14c60de543a7e737d4c2f3471122f2c641dc4f0724e4ebf5cf137761a231b34aab2a12f1cfc902c53 third-party-17.0.6.src.tar.xz
+5809d931656cac13b91bc91aac63df072b0403708ac718bf01546d9d520ff2c4163ee11411439dce5bb683a3bfa044b62443b6f66a1419c9086d20e79a018071 10-add-musl-triples.patch
+dcb67bf472ddb0404403c5cd1cea89e32c8bf63557fcf304b4d129cfc037e8e229348d44846c69917196b4777f7d659ac4407328a30de2513d91a490b968661e 30-Enable-stack-protector-by-default-for-Alpine-Linux.patch
+aa2dff990278e0258763934eaa528827baa1733eeb7dc36cc7f1500a4919b8d11870a0522f20f210d454322e3faf5945e9afaeffc9f3a3c4fd422b706370a663 clang-001-fortify-include.patch
+751f8acef2bfd1b50c065dea2ad0c3a20cadd4ff4c842ae519b5085c48372127b49a75d3fd0bd32291f5a69119340e5568a9fba6d94e6f354b14233986f61328 clang-002-fortify-enable.patch
+5f98f147d7d66315e9a56ae6fee602a053d40e57a8b1ee4f2ef1764203bb6fdb9082c8e825c535a9388213a38b49d2702b1e936fcf56560c4a2a56b7e6dd232c clang-003-as-needed.patch
+"
diff --git a/main/clang17/clang-001-fortify-include.patch b/main/clang17/clang-001-fortify-include.patch
new file mode 100644
index 00000000000..968c26e5131
--- /dev/null
+++ b/main/clang17/clang-001-fortify-include.patch
@@ -0,0 +1,36 @@
+From eca9994181dc355cfba61e726c038832d5ff6975 Mon Sep 17 00:00:00 2001
+From: Daniel Kolesa <daniel@octaforge.org>
+Date: Sun, 23 Oct 2022 00:47:57 +0200
+Subject: [PATCH 1/4] clang: add fortify include paths for musl triplets
+
+When we have fortify headers this lets them get included.
+---
+ lib/Driver/ToolChains/Linux.cpp | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/lib/Driver/ToolChains/Linux.cpp b/lib/Driver/ToolChains/Linux.cpp
+index 7fcdcf125..d5df4a240 100644
+--- a/lib/Driver/ToolChains/Linux.cpp
++++ b/lib/Driver/ToolChains/Linux.cpp
+@@ -622,10 +622,14 @@ void Linux::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
+ if (getTriple().getOS() == llvm::Triple::RTEMS)
+ return;
+
+- // Add an include of '/include' directly. This isn't provided by default by
+- // system GCCs, but is often used with cross-compiling GCCs, and harmless to
+- // add even when Clang is acting as-if it were a system compiler.
+- addExternCSystemInclude(DriverArgs, CC1Args, concat(SysRoot, "/include"));
++ if (getTriple().isMusl()) {
++ addExternCSystemInclude(DriverArgs, CC1Args, concat(SysRoot, "/usr/include/fortify"));
++ } else {
++ // Preserve original clang behavior for non-musl triples, but for musl
++ // this just gets in the way and none of our crosstoolchains are ever
++ // actually built this way (and we'd have to figure out fortify for it)
++ addExternCSystemInclude(DriverArgs, CC1Args, concat(SysRoot, "/include"));
++ }
+
+ addExternCSystemInclude(DriverArgs, CC1Args, concat(SysRoot, "/usr/include"));
+
+--
+2.38.0
+
diff --git a/main/clang17/clang-002-fortify-enable.patch b/main/clang17/clang-002-fortify-enable.patch
new file mode 100644
index 00000000000..30100c9cba4
--- /dev/null
+++ b/main/clang17/clang-002-fortify-enable.patch
@@ -0,0 +1,29 @@
+From 0a876ce2825f1e54bec7059a387e43a2e0386665 Mon Sep 17 00:00:00 2001
+From: Daniel Kolesa <daniel@octaforge.org>
+Date: Sun, 23 Oct 2022 01:02:35 +0200
+Subject: [PATCH 2/4] clang: enable fortify by default on optimizing musl
+ targets
+
+---
+ lib/Frontend/InitPreprocessor.cpp | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/lib/Frontend/InitPreprocessor.cpp b/lib/Frontend/InitPreprocessor.cpp
+index 20bfbf144..9095c0f2f 100644
+--- a/lib/Frontend/InitPreprocessor.cpp
++++ b/lib/Frontend/InitPreprocessor.cpp
+@@ -1288,6 +1288,11 @@ static void InitializePredefinedMacros(const TargetInfo &TI,
+ Builder.defineMacro("__GLIBCXX_BITSIZE_INT_N_0", "128");
+ }
+
++ // Enable fortify by default on musl when optimizing, but not with asan
++ if (TI.getTriple().isMusl() && LangOpts.Optimize &&
++ !LangOpts.Sanitize.has(SanitizerKind::Address))
++ Builder.defineMacro("_FORTIFY_SOURCE", "2");
++
+ // Get other target #defines.
+ TI.getTargetDefines(LangOpts, Builder);
+ }
+--
+2.38.0
+
diff --git a/main/clang17/clang-003-as-needed.patch b/main/clang17/clang-003-as-needed.patch
new file mode 100644
index 00000000000..a92836fe07a
--- /dev/null
+++ b/main/clang17/clang-003-as-needed.patch
@@ -0,0 +1,31 @@
+forces as-needed regardless of ldflags
+From f59f126a9344f265e3766003766d7a66b6a638e3 Mon Sep 17 00:00:00 2001
+From: Daniel Kolesa <daniel@octaforge.org>
+Date: Sun, 23 Oct 2022 01:26:37 +0200
+Subject: [PATCH 3/4] clang: use --as-needed by default
+
+---
+ clang/lib/Driver/ToolChains/Gnu.cpp | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
+index f203cae1d..9e181a79a 100644
+--- a/lib/Driver/ToolChains/Gnu.cpp
++++ b/lib/Driver/ToolChains/Gnu.cpp
+@@ -560,6 +560,13 @@ void tools::gnutools::Linker::ConstructJob(Compilation &C, const JobAction &JA,
+ bool NeedsSanitizerDeps = addSanitizerRuntimes(ToolChain, Args, CmdArgs);
+ bool NeedsXRayDeps = addXRayRuntime(ToolChain, Args, CmdArgs);
+ addLinkerCompressDebugSectionsOption(ToolChain, Args, CmdArgs);
++
++ // Use --as-needed by default for all explicit linker inputs on Linux
++ // We don't reset it afterwards because explicit argument does not
++ // get reset either (and that is permitted, so it should be fine)
++ if (Triple.isOSLinux())
++ CmdArgs.push_back("--as-needed");
++
+ AddLinkerInputs(ToolChain, Inputs, Args, CmdArgs, JA);
+
+ addHIPRuntimeLibArgs(ToolChain, Args, CmdArgs);
+--
+2.38.0
+
diff --git a/main/cloog/APKBUILD b/main/cloog/APKBUILD
deleted file mode 100644
index 75f6ec4cdcb..00000000000
--- a/main/cloog/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=cloog
-pkgver=0.20.0
-pkgrel=1
-pkgdesc="The Chunky Loop Generator"
-url="http://www.cloog.org/"
-arch="all"
-license="GPL-2.0-or-later"
-depends_dev="gmp-dev isl-dev"
-makedepends_host="$depends_dev"
-makedepends="$makedepends_host"
-subpackages="$pkgname-dev"
-source="https://github.com/periscop/cloog/releases/download/cloog-$pkgver/cloog-$pkgver.tar.gz"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --localstatedir=/var \
- --with-sysroot=${CBUILDROOT} \
- --with-isl=system
- make
-}
-
-check() {
- make -j1 check
-}
-
-package() {
- make DESTDIR="$pkgdir" INSTALL="install -D" install
-}
-
-sha512sums="d00cbefd348b45d9d482320a088f7ae736440046b99469cbdfbb177a38dcef182c3305f0a567a1f5699c23b7108db6fd5ad6dfbc071d63ccca1d6bfc1b198565 cloog-0.20.0.tar.gz"
diff --git a/main/clucene/APKBUILD b/main/clucene/APKBUILD
index 4e5054e54ec..f5fa22d8139 100644
--- a/main/clucene/APKBUILD
+++ b/main/clucene/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=clucene
pkgver=2.3.3.4
-pkgrel=14
+pkgrel=22
pkgdesc="A C++ port of Lucene"
-url="https://www.sourceforge.net/projects/clucene"
+url="https://www.sourceforge.net/projects/clucene/"
arch="all"
-license="LGPL-2.0-or-later or Apache-2.0"
+license="LGPL-2.0-or-later OR Apache-2.0"
options="!check" # fixme: build cl_test
depends_dev="zlib-dev boost-dev"
makedepends="cmake $depends_dev samurai"
@@ -14,6 +14,7 @@ subpackages="$pkgname-dev $pkgname-contribs"
source="https://downloads.sourceforge.net/clucene/clucene-core-$pkgver.tar.gz
clucene-core-2.3.3.4-pkgconfig.patch
clucene-core-2.3.3.4-install_contribs_lib.patch
+ clucene-pthread.patch
"
builddir="$srcdir/$pkgname-core-$pkgver"
@@ -53,4 +54,5 @@ sha512sums="
1c9da9077edcebd46563bd9e47d330518e0b30061016650a759cfe051e9748fdad8932a472b1cca53a6adafed5f41656527271fc5f55ddfcefb558f0d83286b4 clucene-core-2.3.3.4.tar.gz
b357cb5a1c5d66219f3168724a71af3ebf5c45c752a612d3a69c170b739acc065dc17c261c3a730298ea6c637fe820637a100f73ab03d931734f80bb598fbf55 clucene-core-2.3.3.4-pkgconfig.patch
0aa92635949089196e4e7c579e78761e8751987ef5036320a161a4aaa67da3c63756398c903419c76ea0fbdc8a949e871fcb65be98179a9853a24a5a4cacfde3 clucene-core-2.3.3.4-install_contribs_lib.patch
+bc8f50fda6ccc5baf1783ae138c8e83aa9d0273373a2e4a0ce40797fb2c814defa5105da4586079bdeeb3dff8642e98e4bc7700368c34448ac22085002d2e56f clucene-pthread.patch
"
diff --git a/main/clucene/clucene-pthread.patch b/main/clucene/clucene-pthread.patch
new file mode 100644
index 00000000000..7aed18cce89
--- /dev/null
+++ b/main/clucene/clucene-pthread.patch
@@ -0,0 +1,12 @@
+diff --git a/src/shared/CLucene/LuceneThreads.h b/src/shared/CLucene/LuceneThreads.h
+index 97072ee..4ee241e 100644
+--- a/src/shared/CLucene/LuceneThreads.h
++++ b/src/shared/CLucene/LuceneThreads.h
+@@ -7,6 +7,7 @@
+ #ifndef _LuceneThreads_h
+ #define _LuceneThreads_h
+
++#include <pthread.h>
+
+ CL_NS_DEF(util)
+ class CLuceneThreadIdCompare;
diff --git a/main/cmake/APKBUILD b/main/cmake/APKBUILD
index 85266e12682..b169e2869f2 100644
--- a/main/cmake/APKBUILD
+++ b/main/cmake/APKBUILD
@@ -1,51 +1,65 @@
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=cmake
-pkgver=3.23.2
-pkgrel=0
+pkgver=3.29.2
+pkgrel=1
pkgdesc="Cross-platform, open-source make system"
url="https://www.cmake.org/"
arch="all"
license="BSD-3-Clause"
-makedepends="bzip2-dev curl-dev expat-dev libarchive-dev linux-headers
- libuv-dev ncurses-dev rhash-dev xz-dev zlib-dev py3-sphinx"
-options="!check"
-checkdepends="file musl-utils"
-subpackages="$pkgname-doc $pkgname-bash-completion
+makedepends="
+ bzip2-dev
+ expat-dev
+ libarchive-dev
+ libuv-dev
+ linux-headers
+ ncurses-dev
+ py3-sphinx
+ rhash-dev
+ samurai
+ xz-dev
+ zlib-dev
+ "
+checkdepends="file"
+subpackages="
+ ccmake
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-emacs::noarch
+ $pkgname-vim::noarch
"
case $pkgver in
*.*.*.*) _v=v${pkgver%.*.*};;
*.*.*) _v=v${pkgver%.*};;
esac
-
-source="https://www.cmake.org/files/$_v/cmake-$pkgver.tar.gz
- "
-
-_parallel_opt() {
- local i n
- for i in $MAKEOPTS; do
- case "$i" in
- -j*) n=${i#-j};;
- esac;
- done
- [ -n "$n" ] && echo "--parallel $n"
-}
+source="https://www.cmake.org/files/$_v/cmake-$pkgver.tar.gz"
+options="!check"
build() {
- # jsoncpp needs cmake to build so to avoid recursive build
- # dependency, we use the bundled version of jsoncpp.
- # Do NOT remove --no-system-jsoncpp unless you consulted
- # maintainer
+ # jsoncpp/cppdap/curl/nghttp2 needs cmake to build so to avoid recursive build
+ # dependency, we use the bundled version.
+ # Do NOT remove --no-system-*
+
./bootstrap \
--prefix=/usr \
--mandir=/share/man \
--datadir=/share/$pkgname \
--docdir=/share/doc/$pkgname \
--sphinx-man \
- --system-libs \
+ --no-system-cppdap \
+ --no-system-curl \
--no-system-jsoncpp \
- $(_parallel_opt)
- make
+ --no-system-nghttp2 \
+ --system-bzip2 \
+ --system-expat \
+ --system-libarchive \
+ --system-liblzma \
+ --system-librhash \
+ --system-libuv \
+ --system-zlib \
+ --generator=Ninja \
+ --parallel="${JOBS:-2}"
+ ninja
}
check() {
@@ -53,9 +67,29 @@ check() {
}
package() {
- cd $startdir/src/$pkgname-$pkgver
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" ninja install
+}
+
+ccmake() {
+ pkgdesc="$pkgdesc (ccmake configurator)"
+
+ amove usr/bin/ccmake
+}
+
+emacs() {
+ pkgdesc="$pkgdesc (emacs mode)"
+ install_if="$pkgname=$pkgver-r$pkgrel emacs"
+
+ amove usr/share/emacs
}
+
+vim() {
+ pkgdesc="$pkgdesc (vim files)"
+ install_if="$pkgname=$pkgver-r$pkgrel vim"
+
+ amove usr/share/vim
+}
+
sha512sums="
-0925adf973d642fd76d4089b61b3882babb0a85050c4c57d5f5f3bd6b17564a9feb0beed236cd636e25f69072fa30b67ea3f80932380b6b6576f2dd78b8e6931 cmake-3.23.2.tar.gz
+0dad9e0e3ad9c1178d337cd3a14e9ce145e011175e9d9fce4961d12b8fe37091f9fdf05f4303cdd846408955b11bac3cfe5064f852833b99e31f5a7b82a9d1eb cmake-3.29.2.tar.gz
"
diff --git a/main/cmocka/APKBUILD b/main/cmocka/APKBUILD
index 3ee25dc51aa..77bab67d354 100644
--- a/main/cmocka/APKBUILD
+++ b/main/cmocka/APKBUILD
@@ -1,54 +1,40 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=cmocka
-pkgver=1.1.5
+pkgver=1.1.7
pkgrel=2
pkgdesc="An elegant unit testing framework for C with support for mock objects"
url="https://cmocka.org/"
arch="all"
license="Apache-2.0"
-depends=""
-makedepends="cmake"
+makedepends="cmake samurai"
subpackages="$pkgname-dev"
-source="https://cmocka.org/files/${pkgver%.*}/$pkgname-$pkgver.tar.xz
+source="https://cmocka.org/files/${pkgver%.*}/cmocka-$pkgver.tar.xz
wordsize.patch
- musl_uintptr.patch"
-builddir="$srcdir/$pkgname-$pkgver"
-
-prepare() {
- default_prepare
-
- # Just one single test (customer_database_test) is breaking on ppc64le.
- if [ "$CARCH" = "ppc64le" ]; then
- sed -i '/customer_database_test/d' "$builddir"/example/CMakeLists.txt
- fi
-}
+ "
build() {
- mkdir -p "$builddir"/build
- cd "$builddir"/build
-
- cmake .. \
+ cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DBUILD_SHARED_LIBS=True \
-DCMAKE_BUILD_TYPE=MinSizeRel \
- -DCMAKE_C_FLAGS="$CFLAGS" \
-DUNIT_TESTING=ON
- make
+ cmake --build build
}
check() {
cd "$builddir"/build
# If some tests fail, run them again in verbose mode.
- make test || ctest --rerun-failed --extra-verbose
+ ninja test || ctest --rerun-failed --extra-verbose
}
package() {
- make -C "$builddir"/build DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
}
-sha512sums="cad7f04757183d004f6eaad39036fc0e24c5e0e987f80e85bc43bc66dba22389cb02b08e25531cc28a541d0a24a86b29be134a2d6fc339128e87d66952f502bd cmocka-1.1.5.tar.xz
-773b8675f38eda0ca4df919c23646f029390892dd8f8675ce67c2f736f112d243d4e03aff4f013983bbefc2657cfa6c7563416b7b6dd15dd7aa4015228bb6ad1 wordsize.patch
-b20b5c0d172a9df756ec093a3df4bf5bdf2a0c06a3d3ad39ec001248ccb86e6fd3dcedfc9ce42e8309cc01ea34fadffd4ebcc0fb3af9f5e795e7fe40c461ac60 musl_uintptr.patch"
+sha512sums="
+fe451893474dce1270e12af707a9a8fe1f0217e1782b4e1a67d25dadf56ff4a5e7dbc9ba4431f774aedffa46a40a28a6a0488df24feefb2f93e90fd2369c2c88 cmocka-1.1.7.tar.xz
+060595aba90467b4d552cae7f0228d73ead2af32cd6a501ddfd5c5cdfd23d3ba397c795c7678bfa1d1e52ab54bebdcfb49ee5c7dd6adab48b41d392db6f3fef1 wordsize.patch
+"
diff --git a/main/cmocka/musl_uintptr.patch b/main/cmocka/musl_uintptr.patch
deleted file mode 100644
index 9c9ca5735e7..00000000000
--- a/main/cmocka/musl_uintptr.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-commit f81e5b71ce78f33250347914dacc75c8463bf102
-Author: Breno Leitao <breno.leitao@gmail.com>
-Date: Wed Mar 29 15:22:38 2017 -0300
-
- include: Check for previous declaration of uintptr_t
-
- Adding a extra check before declaring uintptr_t. Currently musl uses
- macro __DEFINED_uintptr_t once it defines uintptr_t type. Checking
- this macro before defining it, and, defining it when uintptr_t is
- defined.
-
- Signed-off-by: Breno Leitao <breno.leitao@gmail.com>
-
-diff --git a/include/cmocka.h b/include/cmocka.h
-index 303d0ae..a2bfc40 100644
---- a/include/cmocka.h
-+++ b/include/cmocka.h
-@@ -110,7 +110,7 @@
- ((LargestIntegralType)(value))
-
- /* Smallest integral type capable of holding a pointer. */
--#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED)
-+#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED) && !defined(__DEFINED_uintptr_t)
- # if defined(_WIN32)
- /* WIN32 is an ILP32 platform */
- typedef unsigned int uintptr_t;
-@@ -136,6 +136,8 @@
-
- # define _UINTPTR_T
- # define _UINTPTR_T_DEFINED
-+# define __DEFINED_uintptr_t
-+
- #endif /* !defined(_UINTPTR_T) || !defined(_UINTPTR_T_DEFINED) */
-
- /* Perform an unsigned cast to uintptr_t. */
diff --git a/main/cmocka/wordsize.patch b/main/cmocka/wordsize.patch
index 816dc3fda00..f849b41ff4b 100644
--- a/main/cmocka/wordsize.patch
+++ b/main/cmocka/wordsize.patch
@@ -1,17 +1,1282 @@
---- cmocka-1.1.5/include/cmocka.h.orig
-+++ cmocka-1.1.5/include/cmocka.h
-@@ -57,12 +57,9 @@
+Patch-Source: https://gitlab.com/cmocka/cmocka/-/commit/0e70150002ab7bcb626109b287f23c62ecf97565
+--
+From 0e70150002ab7bcb626109b287f23c62ecf97565 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@cryptomilk.org>
+Date: Mon, 5 Oct 2020 13:28:11 +0200
+Subject: [PATCH] cmocka: Replace LargestIntegralType with uintmax_t
+
+This requires #include <stdint.h>
+
+Fixes #38
+Fixes #49
+---
+ example/allocate_module_test.c | 1 +
+ example/assert_macro_test.c | 1 +
+ example/assert_module_test.c | 1 +
+ example/calculator_test.c | 1 +
+ example/mock/chef_wrap/chef.c | 1 +
+ example/mock/chef_wrap/waiter_test_wrap.c | 1 +
+ include/cmocka.h | 162 ++++++++--------------
+ src/cmocka.c | 148 ++++++++++----------
+ tests/test_alloc.c | 1 +
+ tests/test_assert_macros.c | 1 +
+ tests/test_assert_macros_fail.c | 1 +
+ tests/test_basics.c | 1 +
+ tests/test_cmockery.c | 1 +
+ tests/test_double_macros.c | 1 +
+ tests/test_exception_handler.c | 1 +
+ tests/test_fixtures.c | 1 +
+ tests/test_float_macros.c | 1 +
+ tests/test_group_fixtures.c | 1 +
+ tests/test_group_setup_assert.c | 1 +
+ tests/test_group_setup_fail.c | 1 +
+ tests/test_groups.c | 1 +
+ tests/test_ordering.c | 1 +
+ tests/test_ordering_fail.c | 1 +
+ tests/test_returns.c | 1 +
+ tests/test_returns_fail.c | 1 +
+ tests/test_setup_fail.c | 1 +
+ tests/test_skip.c | 1 +
+ tests/test_skip_filter.c | 1 +
+ tests/test_strmatch.c | 1 +
+ tests/test_wildcard.c | 1 +
+ 30 files changed, 156 insertions(+), 182 deletions(-)
+
+diff --git a/example/allocate_module_test.c b/example/allocate_module_test.c
+index 562aea2..eb3602f 100644
+--- a/example/allocate_module_test.c
++++ b/example/allocate_module_test.c
+@@ -16,6 +16,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+
+ extern void leak_memory(void);
+diff --git a/example/assert_macro_test.c b/example/assert_macro_test.c
+index 2cd355c..093a884 100644
+--- a/example/assert_macro_test.c
++++ b/example/assert_macro_test.c
+@@ -16,6 +16,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+
+ #include "assert_macro.h"
+diff --git a/example/assert_module_test.c b/example/assert_module_test.c
+index f387754..41b5a75 100644
+--- a/example/assert_module_test.c
++++ b/example/assert_module_test.c
+@@ -16,6 +16,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+
+ #include "assert_module.h"
+diff --git a/example/calculator_test.c b/example/calculator_test.c
+index ab8cad8..a3d862a 100644
+--- a/example/calculator_test.c
++++ b/example/calculator_test.c
+@@ -16,6 +16,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include "cmocka.h"
+ #include <stdio.h>
+
+diff --git a/example/mock/chef_wrap/chef.c b/example/mock/chef_wrap/chef.c
+index 1429cde..1c74125 100644
+--- a/example/mock/chef_wrap/chef.c
++++ b/example/mock/chef_wrap/chef.c
+@@ -18,6 +18,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+ #include <stdio.h>
+ #include <errno.h>
+diff --git a/example/mock/chef_wrap/waiter_test_wrap.c b/example/mock/chef_wrap/waiter_test_wrap.c
+index 4146818..04fe721 100644
+--- a/example/mock/chef_wrap/waiter_test_wrap.c
++++ b/example/mock/chef_wrap/waiter_test_wrap.c
+@@ -24,6 +24,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+
+ #include "waiter_test_wrap.h"
+diff --git a/include/cmocka.h b/include/cmocka.h
+index a21d965..6f56520 100644
+--- a/include/cmocka.h
++++ b/include/cmocka.h
+@@ -57,32 +57,13 @@ int __stdcall IsDebuggerPresent();
+ * @{
*/
- /* If __WORDSIZE is not set, try to figure it out and default to 32 bit. */
-+#include <bits/reg.h>
- #ifndef __WORDSIZE
+-/* If __WORDSIZE is not set, try to figure it out and default to 32 bit. */
+-#ifndef __WORDSIZE
-# if (defined(__x86_64__) && !defined(__ILP32__)) || defined(__sparc_v9__) || defined(__sparcv9)
-# define __WORDSIZE 64
-# else
-# define __WORDSIZE 32
-# endif
-+#error __WORDSIZE not defined
+-#endif
++/* XXX: stdint.h is a new requirement to include, but things haven't adapted
++ to it yet, so include it here too.
++ since it's a requirement to use the header at all, there's no harm in
++ including it? */
++#include <stdint.h>
+
+-#ifdef DOXYGEN
+-/**
+- * Largest integral type. This type should be large enough to hold any
+- * pointer or integer supported by the compiler.
+- */
+-typedef uintmax_t LargestIntegralType;
+-#else /* DOXGEN */
+-#ifndef LargestIntegralType
+-# if __WORDSIZE == 64 && !defined(_WIN64)
+-# define LargestIntegralType unsigned long int
+-# else
+-# define LargestIntegralType unsigned long long int
+-# endif
+-#endif /* LargestIntegralType */
+-#endif /* DOXYGEN */
+-
+-/* Printf format used to display LargestIntegralType as a hexidecimal. */
++/* Printf format used to display uintmax_t as a hexidecimal. */
+ #ifndef LargestIntegralTypePrintfFormat
+ # ifdef _WIN32
+ # define LargestIntegralTypePrintfFormat "0x%I64x"
+@@ -95,7 +76,7 @@ typedef uintmax_t LargestIntegralType;
+ # endif /* _WIN32 */
+ #endif /* LargestIntegralTypePrintfFormat */
+
+-/* Printf format used to display LargestIntegralType as a decimal. */
++/* Printf format used to display uintmax_t as a decimal. */
+ #ifndef LargestIntegralTypePrintfFormatDecimal
+ # ifdef _WIN32
+ # define LargestIntegralTypePrintfFormatDecimal "%I64u"
+@@ -116,44 +97,15 @@ typedef uintmax_t LargestIntegralType;
+ # define DoublePrintfFormat "%f"
+ #endif /* DoublePrintfFormat */
+
+-/* Perform an unsigned cast to LargestIntegralType. */
++/* Perform an unsigned cast to uintmax_t. */
+ #define cast_to_largest_integral_type(value) \
+- ((LargestIntegralType)(value))
+-
+-/* Smallest integral type capable of holding a pointer. */
+-#if !defined(_UINTPTR_T) && !defined(_UINTPTR_T_DEFINED) && !defined(HAVE_UINTPTR_T)
+-# if defined(_WIN32)
+- /* WIN32 is an ILP32 platform */
+- typedef unsigned int uintptr_t;
+-# elif defined(_WIN64)
+- typedef unsigned long int uintptr_t;
+-# else /* _WIN32 */
+-
+-/* ILP32 and LP64 platforms */
+-# ifdef __WORDSIZE /* glibc */
+-# if __WORDSIZE == 64
+- typedef unsigned long int uintptr_t;
+-# else
+- typedef unsigned int uintptr_t;
+-# endif /* __WORDSIZE == 64 */
+-# else /* __WORDSIZE */
+-# if defined(_LP64) || defined(_I32LPx)
+- typedef unsigned long int uintptr_t;
+-# else
+- typedef unsigned int uintptr_t;
+-# endif
+-# endif /* __WORDSIZE */
+-# endif /* _WIN32 */
+-
+-# define _UINTPTR_T
+-# define _UINTPTR_T_DEFINED
+-#endif /* !defined(_UINTPTR_T) || !defined(_UINTPTR_T_DEFINED) */
++ ((uintmax_t)(value))
+
+ /* Perform an unsigned cast to uintptr_t. */
+ #define cast_to_pointer_integral_type(value) \
+- ((uintptr_t)((size_t)(value)))
++ ((uintptr_t)(value))
+
+-/* Perform a cast of a pointer to LargestIntegralType */
++/* Perform a cast of a pointer to uintmax_t */
+ #define cast_ptr_to_largest_integral_type(value) \
+ cast_to_largest_integral_type(cast_to_pointer_integral_type(value))
+
+@@ -240,7 +192,7 @@ cast_to_largest_integral_type(cast_to_pointer_integral_type(value))
+ *
+ * @see will_return()
+ */
+-LargestIntegralType mock(void);
++uintmax_t mock(void);
+ #else
+ #define mock() _mock(__func__, __FILE__, __LINE__)
#endif
+@@ -324,7 +276,7 @@ type mock_ptr_type(#type);
+ * @see mock()
+ * @see will_return_count()
+ */
+-void will_return(#function, LargestIntegralType value);
++void will_return(#function, uintmax_t value);
+ #else
+ #define will_return(function, value) \
+ _will_return(#function, __FILE__, __LINE__, \
+@@ -347,7 +299,7 @@ void will_return(#function, LargestIntegralType value);
+ *
+ * @see mock()
+ */
+-void will_return_count(#function, LargestIntegralType value, int count);
++void will_return_count(#function, uintmax_t value, int count);
+ #else
+ #define will_return_count(function, value, count) \
+ _will_return(#function, __FILE__, __LINE__, \
+@@ -370,7 +322,7 @@ void will_return_count(#function, LargestIntegralType value, int count);
+ * @see will_return_count()
+ * @see mock()
+ */
+-void will_return_always(#function, LargestIntegralType value);
++void will_return_always(#function, uintmax_t value);
+ #else
+ #define will_return_always(function, value) \
+ will_return_count(function, (value), WILL_RETURN_ALWAYS)
+@@ -398,7 +350,7 @@ void will_return_always(#function, LargestIntegralType value);
+ * @see will_return_count()
+ * @see mock()
+ */
+-void will_return_maybe(#function, LargestIntegralType value);
++void will_return_maybe(#function, uintmax_t value);
+ #else
+ #define will_return_maybe(function, value) \
+ will_return_count(function, (value), WILL_RETURN_ONCE)
+@@ -494,7 +446,7 @@ void expect_check(#function, #parameter, #check_function, const void *check_data
+ *
+ * @see check_expected().
+ */
+-void expect_in_set(#function, #parameter, LargestIntegralType value_array[]);
++void expect_in_set(#function, #parameter, uintmax_t value_array[]);
+ #else
+ #define expect_in_set(function, parameter, value_array) \
+ expect_in_set_count(function, parameter, value_array, 1)
+@@ -519,7 +471,7 @@ void expect_in_set(#function, #parameter, LargestIntegralType value_array[]);
+ *
+ * @see check_expected().
+ */
+-void expect_in_set_count(#function, #parameter, LargestIntegralType value_array[], size_t count);
++void expect_in_set_count(#function, #parameter, uintmax_t value_array[], size_t count);
+ #else
+ #define expect_in_set_count(function, parameter, value_array, count) \
+ _expect_in_set(#function, #parameter, __FILE__, __LINE__, value_array, \
+@@ -541,7 +493,7 @@ void expect_in_set_count(#function, #parameter, LargestIntegralType value_array[
+ *
+ * @see check_expected().
+ */
+-void expect_not_in_set(#function, #parameter, LargestIntegralType value_array[]);
++void expect_not_in_set(#function, #parameter, uintmax_t value_array[]);
+ #else
+ #define expect_not_in_set(function, parameter, value_array) \
+ expect_not_in_set_count(function, parameter, value_array, 1)
+@@ -566,7 +518,7 @@ void expect_not_in_set(#function, #parameter, LargestIntegralType value_array[])
+ *
+ * @see check_expected().
+ */
+-void expect_not_in_set_count(#function, #parameter, LargestIntegralType value_array[], size_t count);
++void expect_not_in_set_count(#function, #parameter, uintmax_t value_array[], size_t count);
+ #else
+ #define expect_not_in_set_count(function, parameter, value_array, count) \
+ _expect_not_in_set( \
+@@ -592,7 +544,7 @@ void expect_not_in_set_count(#function, #parameter, LargestIntegralType value_ar
+ *
+ * @see check_expected().
+ */
+-void expect_in_range(#function, #parameter, LargestIntegralType minimum, LargestIntegralType maximum);
++void expect_in_range(#function, #parameter, uintmax_t minimum, uintmax_t maximum);
+ #else
+ #define expect_in_range(function, parameter, minimum, maximum) \
+ expect_in_range_count(function, parameter, minimum, maximum, 1)
+@@ -619,7 +571,7 @@ void expect_in_range(#function, #parameter, LargestIntegralType minimum, Largest
+ *
+ * @see check_expected().
+ */
+-void expect_in_range_count(#function, #parameter, LargestIntegralType minimum, LargestIntegralType maximum, size_t count);
++void expect_in_range_count(#function, #parameter, uintmax_t minimum, uintmax_t maximum, size_t count);
+ #else
+ #define expect_in_range_count(function, parameter, minimum, maximum, count) \
+ _expect_in_range(#function, #parameter, __FILE__, __LINE__, minimum, \
+@@ -643,7 +595,7 @@ void expect_in_range_count(#function, #parameter, LargestIntegralType minimum, L
+ *
+ * @see check_expected().
+ */
+-void expect_not_in_range(#function, #parameter, LargestIntegralType minimum, LargestIntegralType maximum);
++void expect_not_in_range(#function, #parameter, uintmax_t minimum, uintmax_t maximum);
+ #else
+ #define expect_not_in_range(function, parameter, minimum, maximum) \
+ expect_not_in_range_count(function, parameter, minimum, maximum, 1)
+@@ -670,7 +622,7 @@ void expect_not_in_range(#function, #parameter, LargestIntegralType minimum, Lar
+ *
+ * @see check_expected().
+ */
+-void expect_not_in_range_count(#function, #parameter, LargestIntegralType minimum, LargestIntegralType maximum, size_t count);
++void expect_not_in_range_count(#function, #parameter, uintmax_t minimum, uintmax_t maximum, size_t count);
+ #else
+ #define expect_not_in_range_count(function, parameter, minimum, maximum, \
+ count) \
+@@ -695,7 +647,7 @@ void expect_not_in_range_count(#function, #parameter, LargestIntegralType minimu
+ * @see expect_memory()
+ * @see expect_any()
+ */
+-void expect_value(#function, #parameter, LargestIntegralType value);
++void expect_value(#function, #parameter, uintmax_t value);
+ #else
+ #define expect_value(function, parameter, value) \
+ expect_value_count(function, parameter, value, 1)
+@@ -722,7 +674,7 @@ void expect_value(#function, #parameter, LargestIntegralType value);
+ * @see expect_not_string()
+ * @see expect_not_memory()
+ */
+-void expect_value_count(#function, #parameter, LargestIntegralType value, size_t count);
++void expect_value_count(#function, #parameter, uintmax_t value, size_t count);
+ #else
+ #define expect_value_count(function, parameter, value, count) \
+ _expect_value(#function, #parameter, __FILE__, __LINE__, \
+@@ -743,7 +695,7 @@ void expect_value_count(#function, #parameter, LargestIntegralType value, size_t
+ *
+ * @see check_expected().
+ */
+-void expect_not_value(#function, #parameter, LargestIntegralType value);
++void expect_not_value(#function, #parameter, uintmax_t value);
+ #else
+ #define expect_not_value(function, parameter, value) \
+ expect_not_value_count(function, parameter, value, 1)
+@@ -767,7 +719,7 @@ void expect_not_value(#function, #parameter, LargestIntegralType value);
+ *
+ * @see check_expected().
+ */
+-void expect_not_value_count(#function, #parameter, LargestIntegralType value, size_t count);
++void expect_not_value_count(#function, #parameter, uintmax_t value, size_t count);
+ #else
+ #define expect_not_value_count(function, parameter, value, count) \
+ _expect_not_value(#function, #parameter, __FILE__, __LINE__, \
+@@ -1438,7 +1390,7 @@ void assert_memory_not_equal(const void *a, const void *b, size_t size);
+ *
+ * @param[in] maximum The maximum value allowed.
+ */
+-void assert_in_range(LargestIntegralType value, LargestIntegralType minimum, LargestIntegralType maximum);
++void assert_in_range(uintmax_t value, uintmax_t minimum, uintmax_t maximum);
+ #else
+ #define assert_in_range(value, minimum, maximum) \
+ _assert_in_range( \
+@@ -1461,7 +1413,7 @@ void assert_in_range(LargestIntegralType value, LargestIntegralType minimum, Lar
+ *
+ * @param[in] maximum The maximum value to compare.
+ */
+-void assert_not_in_range(LargestIntegralType value, LargestIntegralType minimum, LargestIntegralType maximum);
++void assert_not_in_range(uintmax_t value, uintmax_t minimum, uintmax_t maximum);
+ #else
+ #define assert_not_in_range(value, minimum, maximum) \
+ _assert_not_in_range( \
+@@ -1483,7 +1435,7 @@ void assert_not_in_range(LargestIntegralType value, LargestIntegralType minimum,
+ *
+ * @param[in] count The size of the values array.
+ */
+-void assert_in_set(LargestIntegralType value, LargestIntegralType values[], size_t count);
++void assert_in_set(uintmax_t value, uintmax_t values[], size_t count);
+ #else
+ #define assert_in_set(value, values, number_of_values) \
+ _assert_in_set(value, values, number_of_values, __FILE__, __LINE__)
+@@ -1502,7 +1454,7 @@ void assert_in_set(LargestIntegralType value, LargestIntegralType values[], size
+ *
+ * @param[in] count The size of the values array.
+ */
+-void assert_not_in_set(LargestIntegralType value, LargestIntegralType values[], size_t count);
++void assert_not_in_set(uintmax_t value, uintmax_t values[], size_t count);
+ #else
+ #define assert_not_in_set(value, values, number_of_values) \
+ _assert_not_in_set(value, values, number_of_values, __FILE__, __LINE__)
+@@ -2181,8 +2133,8 @@ void expect_assert_failure(function fn_call);
+ typedef void (*UnitTestFunction)(void **state);
+
+ /* Function that determines whether a function parameter value is correct. */
+-typedef int (*CheckParameterValue)(const LargestIntegralType value,
+- const LargestIntegralType check_value_data);
++typedef int (*CheckParameterValue)(const uintmax_t value,
++ const uintmax_t check_value_data);
+
+ /* Type of the unit test function. */
+ typedef enum UnitTestFunctionType {
+@@ -2236,7 +2188,7 @@ typedef struct CheckParameterEvent {
+ SourceLocation location;
+ const char *parameter_name;
+ CheckParameterValue check_value;
+- LargestIntegralType check_value_data;
++ uintmax_t check_value_data;
+ } CheckParameterEvent;
+
+ /* Used by expect_assert_failure() and mock_assert(). */
+@@ -2245,7 +2197,7 @@ extern jmp_buf global_expect_assert_env;
+ extern const char * global_last_failed_assert;
+
+ /* Retrieves a value for the given function, as set by "will_return". */
+-LargestIntegralType _mock(const char * const function, const char* const file,
++uintmax_t _mock(const char * const function, const char* const file,
+ const int line);
+
+ void _expect_function_call(
+@@ -2261,36 +2213,36 @@ void _expect_check(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+ const CheckParameterValue check_function,
+- const LargestIntegralType check_data, CheckParameterEvent * const event,
++ const uintmax_t check_data, CheckParameterEvent * const event,
+ const int count);
+
+ void _expect_in_set(
+ const char* const function, const char* const parameter,
+- const char* const file, const int line, const LargestIntegralType values[],
++ const char* const file, const int line, const uintmax_t values[],
+ const size_t number_of_values, const int count);
+ void _expect_not_in_set(
+ const char* const function, const char* const parameter,
+- const char* const file, const int line, const LargestIntegralType values[],
++ const char* const file, const int line, const uintmax_t values[],
+ const size_t number_of_values, const int count);
+
+ void _expect_in_range(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+- const LargestIntegralType minimum,
+- const LargestIntegralType maximum, const int count);
++ const uintmax_t minimum,
++ const uintmax_t maximum, const int count);
+ void _expect_not_in_range(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+- const LargestIntegralType minimum,
+- const LargestIntegralType maximum, const int count);
++ const uintmax_t minimum,
++ const uintmax_t maximum, const int count);
+
+ void _expect_value(
+ const char* const function, const char* const parameter,
+- const char* const file, const int line, const LargestIntegralType value,
++ const char* const file, const int line, const uintmax_t value,
+ const int count);
+ void _expect_not_value(
+ const char* const function, const char* const parameter,
+- const char* const file, const int line, const LargestIntegralType value,
++ const char* const file, const int line, const uintmax_t value,
+ const int count);
+
+ void _expect_string(
+@@ -2317,17 +2269,17 @@ void _expect_any(
+
+ void _check_expected(
+ const char * const function_name, const char * const parameter_name,
+- const char* file, const int line, const LargestIntegralType value);
++ const char* file, const int line, const uintmax_t value);
+
+ void _will_return(const char * const function_name, const char * const file,
+- const int line, const LargestIntegralType value,
++ const int line, const uintmax_t value,
+ const int count);
+-void _assert_true(const LargestIntegralType result,
++void _assert_true(const uintmax_t result,
+ const char* const expression,
+ const char * const file, const int line);
+-void _assert_return_code(const LargestIntegralType result,
++void _assert_return_code(const uintmax_t result,
+ size_t rlen,
+- const LargestIntegralType error,
++ const uintmax_t error,
+ const char * const expression,
+ const char * const file,
+ const int line);
+@@ -2344,10 +2296,10 @@ void _assert_double_not_equal(const double a, const double n,
+ const double epsilon, const char* const file,
+ const int line);
+ void _assert_int_equal(
+- const LargestIntegralType a, const LargestIntegralType b,
++ const uintmax_t a, const uintmax_t b,
+ const char * const file, const int line);
+ void _assert_int_not_equal(
+- const LargestIntegralType a, const LargestIntegralType b,
++ const uintmax_t a, const uintmax_t b,
+ const char * const file, const int line);
+ void _assert_string_equal(const char * const a, const char * const b,
+ const char * const file, const int line);
+@@ -2360,16 +2312,16 @@ void _assert_memory_not_equal(const void * const a, const void * const b,
+ const size_t size, const char* const file,
+ const int line);
+ void _assert_in_range(
+- const LargestIntegralType value, const LargestIntegralType minimum,
+- const LargestIntegralType maximum, const char* const file, const int line);
++ const uintmax_t value, const uintmax_t minimum,
++ const uintmax_t maximum, const char* const file, const int line);
+ void _assert_not_in_range(
+- const LargestIntegralType value, const LargestIntegralType minimum,
+- const LargestIntegralType maximum, const char* const file, const int line);
++ const uintmax_t value, const uintmax_t minimum,
++ const uintmax_t maximum, const char* const file, const int line);
+ void _assert_in_set(
+- const LargestIntegralType value, const LargestIntegralType values[],
++ const uintmax_t value, const uintmax_t values[],
+ const size_t number_of_values, const char* const file, const int line);
+ void _assert_not_in_set(
+- const LargestIntegralType value, const LargestIntegralType values[],
++ const uintmax_t value, const uintmax_t values[],
+ const size_t number_of_values, const char* const file, const int line);
+
+ void* _test_malloc(const size_t size, const char* file, const int line);
+diff --git a/src/cmocka.c b/src/cmocka.c
+index 52897e1..62d4284 100644
+--- a/src/cmocka.c
++++ b/src/cmocka.c
+@@ -1,6 +1,6 @@
+ /*
+ * Copyright 2008 Google Inc.
+- * Copyright 2014-2018 Andreas Schneider <asn@cryptomilk.org>
++ * Copyright 2014-2020 Andreas Schneider <asn@cryptomilk.org>
+ * Copyright 2015 Jakub Hrozek <jakub.hrozek@posteo.se>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+@@ -111,14 +111,14 @@
+
+
+ /*
+- * Declare and initialize a LargestIntegralType variable name
++ * Declare and initialize a uintmax_t variable name
+ * with value the conversion of ptr.
+ */
+ #define declare_initialize_value_pointer_pointer(name, ptr) \
+- LargestIntegralType name ; \
+- name = (LargestIntegralType) (uintptr_t) ptr
++ uintmax_t name ; \
++ name = (uintmax_t)((uintptr_t)(ptr))
+
+-/* Cast a LargestIntegralType to pointer_type. */
++/* Cast a uintmax_t to pointer_type. */
+ #define cast_largest_integral_type_to_pointer( \
+ pointer_type, largest_integral_type) \
+ ((pointer_type)(uintptr_t)(largest_integral_type))
+@@ -158,7 +158,7 @@ typedef int (*EqualityFunction)(const void *left, const void *right);
+ /* Value of a symbol and the place it was declared. */
+ typedef struct SymbolValue {
+ SourceLocation location;
+- LargestIntegralType value;
++ uintmax_t value;
+ } SymbolValue;
+
+ /*
+@@ -183,14 +183,14 @@ typedef void (*CleanupListValue)(const void *value, void *cleanup_value_data);
+ /* Structure used to check the range of integer types.a */
+ typedef struct CheckIntegerRange {
+ CheckParameterEvent event;
+- LargestIntegralType minimum;
+- LargestIntegralType maximum;
++ uintmax_t minimum;
++ uintmax_t maximum;
+ } CheckIntegerRange;
+
+ /* Structure used to check whether an integer value is in a set. */
+ typedef struct CheckIntegerSet {
+ CheckParameterEvent event;
+- const LargestIntegralType *set;
++ const uintmax_t *set;
+ size_t size_of_set;
+ } CheckIntegerSet;
+
+@@ -702,7 +702,7 @@ static void free_value(const void *value, void *cleanup_value_data) {
+ static void free_symbol_map_value(const void *value,
+ void *cleanup_value_data) {
+ SymbolMapValue * const map_value = (SymbolMapValue*)value;
+- const LargestIntegralType children = cast_ptr_to_largest_integral_type(cleanup_value_data);
++ const uintmax_t children = cast_ptr_to_largest_integral_type(cleanup_value_data);
+ assert_non_null(value);
+ if (children == 0) {
+ list_free(&map_value->symbol_values_list_head,
+@@ -947,14 +947,14 @@ static size_t check_for_leftover_values(
+
+
+ /* Get the next return value for the specified mock function. */
+-LargestIntegralType _mock(const char * const function, const char* const file,
++uintmax_t _mock(const char * const function, const char* const file,
+ const int line) {
+ void *result;
+ const int rc = get_symbol_value(&global_function_result_map_head,
+ &function, 1, &result);
+ if (rc) {
+ SymbolValue * const symbol = (SymbolValue*)result;
+- const LargestIntegralType value = symbol->value;
++ const uintmax_t value = symbol->value;
+ global_last_mock_value_location = symbol->location;
+ if (rc == 1) {
+ free(symbol);
+@@ -1055,7 +1055,7 @@ void _function_called(const char *const function,
+
+ /* Add a return value for the specified mock function name. */
+ void _will_return(const char * const function_name, const char * const file,
+- const int line, const LargestIntegralType value,
++ const int line, const uintmax_t value,
+ const int count) {
+ SymbolValue * const return_value =
+ (SymbolValue*)malloc(sizeof(*return_value));
+@@ -1077,7 +1077,7 @@ void _expect_check(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+ const CheckParameterValue check_function,
+- const LargestIntegralType check_data,
++ const uintmax_t check_data,
+ CheckParameterEvent * const event, const int count) {
+ CheckParameterEvent * const check =
+ event ? event : (CheckParameterEvent*)malloc(sizeof(*check));
+@@ -1241,8 +1241,8 @@ static int double_values_not_equal_display_error(const double left,
+
+ /* Returns 1 if the specified values are equal. If the values are not equal
+ * an error is displayed and 0 is returned. */
+-static int values_equal_display_error(const LargestIntegralType left,
+- const LargestIntegralType right) {
++static int values_equal_display_error(const uintmax_t left,
++ const uintmax_t right) {
+ const int equal = left == right;
+ if (!equal) {
+ cm_print_error(LargestIntegralTypePrintfFormat " != "
+@@ -1254,8 +1254,8 @@ static int values_equal_display_error(const LargestIntegralType left,
+ /*
+ * Returns 1 if the specified values are not equal. If the values are equal
+ * an error is displayed and 0 is returned. */
+-static int values_not_equal_display_error(const LargestIntegralType left,
+- const LargestIntegralType right) {
++static int values_not_equal_display_error(const uintmax_t left,
++ const uintmax_t right) {
+ const int not_equal = left != right;
+ if (!not_equal) {
+ cm_print_error(LargestIntegralTypePrintfFormat " == "
+@@ -1273,12 +1273,12 @@ static int values_not_equal_display_error(const LargestIntegralType left,
+ * displayed.
+ */
+ static int value_in_set_display_error(
+- const LargestIntegralType value,
++ const uintmax_t value,
+ const CheckIntegerSet * const check_integer_set, const int invert) {
+ int succeeded = invert;
+ assert_non_null(check_integer_set);
+ {
+- const LargestIntegralType * const set = check_integer_set->set;
++ const uintmax_t * const set = check_integer_set->set;
+ const size_t size_of_set = check_integer_set->size_of_set;
+ size_t i;
+ for (i = 0; i < size_of_set; i++) {
+@@ -1310,8 +1310,8 @@ static int value_in_set_display_error(
+ * specified range an error is displayed and 0 is returned.
+ */
+ static int integer_in_range_display_error(
+- const LargestIntegralType value, const LargestIntegralType range_min,
+- const LargestIntegralType range_max) {
++ const uintmax_t value, const uintmax_t range_min,
++ const uintmax_t range_max) {
+ if (value >= range_min && value <= range_max) {
+ return 1;
+ }
+@@ -1330,8 +1330,8 @@ static int integer_in_range_display_error(
+ * specified range an error is displayed and zero is returned.
+ */
+ static int integer_not_in_range_display_error(
+- const LargestIntegralType value, const LargestIntegralType range_min,
+- const LargestIntegralType range_max) {
++ const uintmax_t value, const uintmax_t range_min,
++ const uintmax_t range_max) {
+ if (value < range_min || value > range_max) {
+ return 1;
+ }
+@@ -1431,8 +1431,8 @@ static int memory_not_equal_display_error(
+
+
+ /* CheckParameterValue callback to check whether a value is within a set. */
+-static int check_in_set(const LargestIntegralType value,
+- const LargestIntegralType check_value_data) {
++static int check_in_set(const uintmax_t value,
++ const uintmax_t check_value_data) {
+ return value_in_set_display_error(value,
+ cast_largest_integral_type_to_pointer(CheckIntegerSet*,
+ check_value_data), 0);
+@@ -1440,8 +1440,8 @@ static int check_in_set(const LargestIntegralType value,
+
+
+ /* CheckParameterValue callback to check whether a value isn't within a set. */
+-static int check_not_in_set(const LargestIntegralType value,
+- const LargestIntegralType check_value_data) {
++static int check_not_in_set(const uintmax_t value,
++ const uintmax_t check_value_data) {
+ return value_in_set_display_error(value,
+ cast_largest_integral_type_to_pointer(CheckIntegerSet*,
+ check_value_data), 1);
+@@ -1453,12 +1453,12 @@ static int check_not_in_set(const LargestIntegralType value,
+ static void expect_set(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+- const LargestIntegralType values[], const size_t number_of_values,
++ const uintmax_t values[], const size_t number_of_values,
+ const CheckParameterValue check_function, const int count) {
+ CheckIntegerSet * const check_integer_set =
+ (CheckIntegerSet*)malloc(sizeof(*check_integer_set) +
+ (sizeof(values[0]) * number_of_values));
+- LargestIntegralType * const set = (LargestIntegralType*)(
++ uintmax_t * const set = (uintmax_t*)(
+ check_integer_set + 1);
+ declare_initialize_value_pointer_pointer(check_data, check_integer_set);
+ assert_non_null(values);
+@@ -1476,7 +1476,7 @@ static void expect_set(
+ void _expect_in_set(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+- const LargestIntegralType values[], const size_t number_of_values,
++ const uintmax_t values[], const size_t number_of_values,
+ const int count) {
+ expect_set(function, parameter, file, line, values, number_of_values,
+ check_in_set, count);
+@@ -1487,7 +1487,7 @@ void _expect_in_set(
+ void _expect_not_in_set(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+- const LargestIntegralType values[], const size_t number_of_values,
++ const uintmax_t values[], const size_t number_of_values,
+ const int count) {
+ expect_set(function, parameter, file, line, values, number_of_values,
+ check_not_in_set, count);
+@@ -1495,8 +1495,8 @@ void _expect_not_in_set(
+
+
+ /* CheckParameterValue callback to check whether a value is within a range. */
+-static int check_in_range(const LargestIntegralType value,
+- const LargestIntegralType check_value_data) {
++static int check_in_range(const uintmax_t value,
++ const uintmax_t check_value_data) {
+ CheckIntegerRange * const check_integer_range =
+ cast_largest_integral_type_to_pointer(CheckIntegerRange*,
+ check_value_data);
+@@ -1507,8 +1507,8 @@ static int check_in_range(const LargestIntegralType value,
+
+
+ /* CheckParameterValue callback to check whether a value is not within a range. */
+-static int check_not_in_range(const LargestIntegralType value,
+- const LargestIntegralType check_value_data) {
++static int check_not_in_range(const uintmax_t value,
++ const uintmax_t check_value_data) {
+ CheckIntegerRange * const check_integer_range =
+ cast_largest_integral_type_to_pointer(CheckIntegerRange*,
+ check_value_data);
+@@ -1523,7 +1523,7 @@ static int check_not_in_range(const LargestIntegralType value,
+ static void expect_range(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+- const LargestIntegralType minimum, const LargestIntegralType maximum,
++ const uintmax_t minimum, const uintmax_t maximum,
+ const CheckParameterValue check_function, const int count) {
+ CheckIntegerRange * const check_integer_range =
+ (CheckIntegerRange*)malloc(sizeof(*check_integer_range));
+@@ -1539,7 +1539,7 @@ static void expect_range(
+ void _expect_in_range(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+- const LargestIntegralType minimum, const LargestIntegralType maximum,
++ const uintmax_t minimum, const uintmax_t maximum,
+ const int count) {
+ expect_range(function, parameter, file, line, minimum, maximum,
+ check_in_range, count);
+@@ -1550,7 +1550,7 @@ void _expect_in_range(
+ void _expect_not_in_range(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+- const LargestIntegralType minimum, const LargestIntegralType maximum,
++ const uintmax_t minimum, const uintmax_t maximum,
+ const int count) {
+ expect_range(function, parameter, file, line, minimum, maximum,
+ check_not_in_range, count);
+@@ -1559,8 +1559,8 @@ void _expect_not_in_range(
+
+ /* CheckParameterValue callback to check whether a value is equal to an
+ * expected value. */
+-static int check_value(const LargestIntegralType value,
+- const LargestIntegralType check_value_data) {
++static int check_value(const uintmax_t value,
++ const uintmax_t check_value_data) {
+ return values_equal_display_error(value, check_value_data);
+ }
+
+@@ -1569,7 +1569,7 @@ static int check_value(const LargestIntegralType value,
+ void _expect_value(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+- const LargestIntegralType value, const int count) {
++ const uintmax_t value, const int count) {
+ _expect_check(function, parameter, file, line, check_value, value, NULL,
+ count);
+ }
+@@ -1577,8 +1577,8 @@ void _expect_value(
+
+ /* CheckParameterValue callback to check whether a value is not equal to an
+ * expected value. */
+-static int check_not_value(const LargestIntegralType value,
+- const LargestIntegralType check_value_data) {
++static int check_not_value(const uintmax_t value,
++ const uintmax_t check_value_data) {
+ return values_not_equal_display_error(value, check_value_data);
+ }
+
+@@ -1587,15 +1587,15 @@ static int check_not_value(const LargestIntegralType value,
+ void _expect_not_value(
+ const char* const function, const char* const parameter,
+ const char* const file, const int line,
+- const LargestIntegralType value, const int count) {
++ const uintmax_t value, const int count) {
+ _expect_check(function, parameter, file, line, check_not_value, value,
+ NULL, count);
+ }
+
+
+ /* CheckParameterValue callback to check whether a parameter equals a string. */
+-static int check_string(const LargestIntegralType value,
+- const LargestIntegralType check_value_data) {
++static int check_string(const uintmax_t value,
++ const uintmax_t check_value_data) {
+ return string_equal_display_error(
+ cast_largest_integral_type_to_pointer(char*, value),
+ cast_largest_integral_type_to_pointer(char*, check_value_data));
+@@ -1616,8 +1616,8 @@ void _expect_string(
+
+ /* CheckParameterValue callback to check whether a parameter is not equals to
+ * a string. */
+-static int check_not_string(const LargestIntegralType value,
+- const LargestIntegralType check_value_data) {
++static int check_not_string(const uintmax_t value,
++ const uintmax_t check_value_data) {
+ return string_not_equal_display_error(
+ cast_largest_integral_type_to_pointer(char*, value),
+ cast_largest_integral_type_to_pointer(char*, check_value_data));
+@@ -1637,8 +1637,8 @@ void _expect_not_string(
+
+ /* CheckParameterValue callback to check whether a parameter equals an area of
+ * memory. */
+-static int check_memory(const LargestIntegralType value,
+- const LargestIntegralType check_value_data) {
++static int check_memory(const uintmax_t value,
++ const uintmax_t check_value_data) {
+ CheckMemoryData * const check = cast_largest_integral_type_to_pointer(
+ CheckMemoryData*, check_value_data);
+ assert_non_null(check);
+@@ -1681,8 +1681,8 @@ void _expect_memory(
+
+ /* CheckParameterValue callback to check whether a parameter is not equal to
+ * an area of memory. */
+-static int check_not_memory(const LargestIntegralType value,
+- const LargestIntegralType check_value_data) {
++static int check_not_memory(const uintmax_t value,
++ const uintmax_t check_value_data) {
+ CheckMemoryData * const check = cast_largest_integral_type_to_pointer(
+ CheckMemoryData*, check_value_data);
+ assert_non_null(check);
+@@ -1704,8 +1704,8 @@ void _expect_not_memory(
+
+
+ /* CheckParameterValue callback that always returns 1. */
+-static int check_any(const LargestIntegralType value,
+- const LargestIntegralType check_value_data) {
++static int check_any(const uintmax_t value,
++ const uintmax_t check_value_data) {
+ (void)value;
+ (void)check_value_data;
+ return 1;
+@@ -1723,7 +1723,7 @@ void _expect_any(
+
+ void _check_expected(
+ const char * const function_name, const char * const parameter_name,
+- const char* file, const int line, const LargestIntegralType value) {
++ const char* file, const int line, const uintmax_t value) {
+ void *result = NULL;
+ const char* symbols[] = {function_name, parameter_name};
+ const int rc = get_symbol_value(&global_function_parameter_map_head,
+@@ -1780,7 +1780,7 @@ void mock_assert(const int result, const char* const expression,
+ }
+
+
+-void _assert_true(const LargestIntegralType result,
++void _assert_true(const uintmax_t result,
+ const char * const expression,
+ const char * const file, const int line) {
+ if (!result) {
+@@ -1789,14 +1789,14 @@ void _assert_true(const LargestIntegralType result,
+ }
+ }
+
+-void _assert_return_code(const LargestIntegralType result,
++void _assert_return_code(const uintmax_t result,
+ size_t rlen,
+- const LargestIntegralType error,
++ const uintmax_t error,
+ const char * const expression,
+ const char * const file,
+ const int line)
+ {
+- LargestIntegralType valmax;
++ uintmax_t valmax;
+
+
+ switch (rlen) {
+@@ -1872,7 +1872,7 @@ void _assert_double_not_equal(const double a,
+ }
+
+ void _assert_int_equal(
+- const LargestIntegralType a, const LargestIntegralType b,
++ const uintmax_t a, const uintmax_t b,
+ const char * const file, const int line) {
+ if (!values_equal_display_error(a, b)) {
+ _fail(file, line);
+@@ -1881,7 +1881,7 @@ void _assert_int_equal(
+
+
+ void _assert_int_not_equal(
+- const LargestIntegralType a, const LargestIntegralType b,
++ const uintmax_t a, const uintmax_t b,
+ const char * const file, const int line) {
+ if (!values_not_equal_display_error(a, b)) {
+ _fail(file, line);
+@@ -1925,8 +1925,8 @@ void _assert_memory_not_equal(const void * const a, const void * const b,
+
+
+ void _assert_in_range(
+- const LargestIntegralType value, const LargestIntegralType minimum,
+- const LargestIntegralType maximum, const char* const file,
++ const uintmax_t value, const uintmax_t minimum,
++ const uintmax_t maximum, const char* const file,
+ const int line) {
+ if (!integer_in_range_display_error(value, minimum, maximum)) {
+ _fail(file, line);
+@@ -1934,16 +1934,16 @@ void _assert_in_range(
+ }
+
+ void _assert_not_in_range(
+- const LargestIntegralType value, const LargestIntegralType minimum,
+- const LargestIntegralType maximum, const char* const file,
++ const uintmax_t value, const uintmax_t minimum,
++ const uintmax_t maximum, const char* const file,
+ const int line) {
+ if (!integer_not_in_range_display_error(value, minimum, maximum)) {
+ _fail(file, line);
+ }
+ }
+
+-void _assert_in_set(const LargestIntegralType value,
+- const LargestIntegralType values[],
++void _assert_in_set(const uintmax_t value,
++ const uintmax_t values[],
+ const size_t number_of_values, const char* const file,
+ const int line) {
+ CheckIntegerSet check_integer_set;
+@@ -1954,8 +1954,8 @@ void _assert_in_set(const LargestIntegralType value,
+ }
+ }
+
+-void _assert_not_in_set(const LargestIntegralType value,
+- const LargestIntegralType values[],
++void _assert_not_in_set(const uintmax_t value,
++ const uintmax_t values[],
+ const size_t number_of_values, const char* const file,
+ const int line) {
+ CheckIntegerSet check_integer_set;
+@@ -3079,8 +3079,8 @@ int _cmocka_run_group_tests(const char *group_name,
+ size_t i;
+ int rc;
+
+- /* Make sure LargestIntegralType is at least the size of a pointer. */
+- assert_true(sizeof(LargestIntegralType) >= sizeof(void*));
++ /* Make sure uintmax_t is at least the size of a pointer. */
++ assert_true(sizeof(uintmax_t) >= sizeof(void*));
+
+ cm_tests = libc_calloc(1, sizeof(struct CMUnitTestState) * num_tests);
+ if (cm_tests == NULL) {
+@@ -3370,8 +3370,8 @@ int _run_tests(const UnitTest * const tests, const size_t number_of_tests) {
+ print_message("[==========] Running %"PRIdS " test(s).\n",
+ number_of_tests - setups - teardowns);
+
+- /* Make sure LargestIntegralType is at least the size of a pointer. */
+- assert_true(sizeof(LargestIntegralType) >= sizeof(void*));
++ /* Make sure uintmax_t is at least the size of a pointer. */
++ assert_true(sizeof(uintmax_t) >= sizeof(void*));
+
+ while (current_test < number_of_tests) {
+ const ListNode *test_check_point = NULL;
+diff --git a/tests/test_alloc.c b/tests/test_alloc.c
+index 966814a..3948084 100644
+--- a/tests/test_alloc.c
++++ b/tests/test_alloc.c
+@@ -3,6 +3,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+ #include <cmocka_private.h>
+
+diff --git a/tests/test_assert_macros.c b/tests/test_assert_macros.c
+index 1a00880..3a7a0fe 100644
+--- a/tests/test_assert_macros.c
++++ b/tests/test_assert_macros.c
+@@ -3,6 +3,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+ #include <cmocka_private.h>
+
+diff --git a/tests/test_assert_macros_fail.c b/tests/test_assert_macros_fail.c
+index aea919a..fc354d4 100644
+--- a/tests/test_assert_macros_fail.c
++++ b/tests/test_assert_macros_fail.c
+@@ -3,6 +3,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+ #include <cmocka_private.h>
+
+diff --git a/tests/test_basics.c b/tests/test_basics.c
+index 1bb493f..9866d81 100644
+--- a/tests/test_basics.c
++++ b/tests/test_basics.c
+@@ -20,6 +20,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+
+ static int setup(void **state) {
+diff --git a/tests/test_cmockery.c b/tests/test_cmockery.c
+index 83a7451..027b1ac 100644
+--- a/tests/test_cmockery.c
++++ b/tests/test_cmockery.c
+@@ -17,6 +17,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmockery/cmockery.h>
+
+ /* A test case that does nothing and succeeds. */
+diff --git a/tests/test_double_macros.c b/tests/test_double_macros.c
+index 138c579..b892272 100644
+--- a/tests/test_double_macros.c
++++ b/tests/test_double_macros.c
+@@ -20,6 +20,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+
+ /* A test case that does check if double is equal. */
+diff --git a/tests/test_exception_handler.c b/tests/test_exception_handler.c
+index 23c19cd..769eed8 100644
+--- a/tests/test_exception_handler.c
++++ b/tests/test_exception_handler.c
+@@ -1,6 +1,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+
+ #include <signal.h>
+diff --git a/tests/test_fixtures.c b/tests/test_fixtures.c
+index 6d39487..e6d05d1 100644
+--- a/tests/test_fixtures.c
++++ b/tests/test_fixtures.c
+@@ -1,6 +1,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+
+ #include <stdlib.h>
+diff --git a/tests/test_float_macros.c b/tests/test_float_macros.c
+index a9c7251..6ce8906 100644
+--- a/tests/test_float_macros.c
++++ b/tests/test_float_macros.c
+@@ -20,6 +20,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+
+ /* A test case that does check if float is equal. */
+diff --git a/tests/test_group_fixtures.c b/tests/test_group_fixtures.c
+index 64f0ab7..e9b4ad3 100644
+--- a/tests/test_group_fixtures.c
++++ b/tests/test_group_fixtures.c
+@@ -4,6 +4,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+
+ static int group_setup(void **state)
+diff --git a/tests/test_group_setup_assert.c b/tests/test_group_setup_assert.c
+index eef61f8..92f88b6 100644
+--- a/tests/test_group_setup_assert.c
++++ b/tests/test_group_setup_assert.c
+@@ -4,6 +4,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+
+ static int group_setup_failing(void **state)
+diff --git a/tests/test_group_setup_fail.c b/tests/test_group_setup_fail.c
+index 7815c03..1f2e701 100644
+--- a/tests/test_group_setup_fail.c
++++ b/tests/test_group_setup_fail.c
+@@ -4,6 +4,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+
+ static int group_setup_failing(void **state)
+diff --git a/tests/test_groups.c b/tests/test_groups.c
+index af9e2b8..ea936c0 100644
+--- a/tests/test_groups.c
++++ b/tests/test_groups.c
+@@ -20,6 +20,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+
+ static int setup(void **state) {
+diff --git a/tests/test_ordering.c b/tests/test_ordering.c
+index 817c0ba..fab2568 100644
+--- a/tests/test_ordering.c
++++ b/tests/test_ordering.c
+@@ -3,6 +3,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+ #include <cmocka_private.h>
+
+diff --git a/tests/test_ordering_fail.c b/tests/test_ordering_fail.c
+index 652f5ad..88b4e29 100644
+--- a/tests/test_ordering_fail.c
++++ b/tests/test_ordering_fail.c
+@@ -3,6 +3,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+ #include <cmocka_private.h>
+
+diff --git a/tests/test_returns.c b/tests/test_returns.c
+index b9370c9..574fa00 100644
+--- a/tests/test_returns.c
++++ b/tests/test_returns.c
+@@ -3,6 +3,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+ #include <cmocka_private.h>
+
+diff --git a/tests/test_returns_fail.c b/tests/test_returns_fail.c
+index 81197d3..fa7f291 100644
+--- a/tests/test_returns_fail.c
++++ b/tests/test_returns_fail.c
+@@ -3,6 +3,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+ #include <cmocka_private.h>
+
+diff --git a/tests/test_setup_fail.c b/tests/test_setup_fail.c
+index e3f8df8..9affaa6 100644
+--- a/tests/test_setup_fail.c
++++ b/tests/test_setup_fail.c
+@@ -3,6 +3,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+
+ static int setup_fail(void **state) {
+diff --git a/tests/test_skip.c b/tests/test_skip.c
+index 127161a..0a6953d 100644
+--- a/tests/test_skip.c
++++ b/tests/test_skip.c
+@@ -17,6 +17,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+
+ /* A test case that does check if an int is equal. */
+diff --git a/tests/test_skip_filter.c b/tests/test_skip_filter.c
+index e40209e..56dc262 100644
+--- a/tests/test_skip_filter.c
++++ b/tests/test_skip_filter.c
+@@ -19,6 +19,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+
+ static void test_skip1(void **state)
+diff --git a/tests/test_strmatch.c b/tests/test_strmatch.c
+index f2d966b..f8d088c 100644
+--- a/tests/test_strmatch.c
++++ b/tests/test_strmatch.c
+@@ -19,6 +19,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
+
+ #include "../src/cmocka.c"
+diff --git a/tests/test_wildcard.c b/tests/test_wildcard.c
+index 10ee195..3b85bb3 100644
+--- a/tests/test_wildcard.c
++++ b/tests/test_wildcard.c
+@@ -17,6 +17,7 @@
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
++#include <stdint.h>
+ #include <cmocka.h>
- #ifdef DOXYGEN
+ static void test_ok1(void **state)
diff --git a/main/cmph/APKBUILD b/main/cmph/APKBUILD
index 74a20752f7f..f51d564c8ba 100644
--- a/main/cmph/APKBUILD
+++ b/main/cmph/APKBUILD
@@ -1,16 +1,20 @@
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
+# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=cmph
pkgver=2.0.2
-pkgrel=0
+pkgrel=5
pkgdesc="A minimal hash C library - utility application"
-url="http://cmph.sourceforge.net/"
+url="https://cmph.sourceforge.net/"
arch="all"
-license="LGPL-2.0-or-later MPL-1.1"
+license="LGPL-2.0-or-later AND MPL-1.1"
subpackages="$pkgname-dev $pkgname-doc libcmph:lib"
source="https://downloads.sourceforge.net/cmph/cmph-$pkgver.tar.gz"
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
- cd "$builddir"
./configure \
--disable-static \
--build=$CBUILD \
@@ -23,12 +27,10 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
diff --git a/main/command-not-found/APKBUILD b/main/command-not-found/APKBUILD
index 137947fdc51..da8e136add6 100644
--- a/main/command-not-found/APKBUILD
+++ b/main/command-not-found/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
pkgname=command-not-found
pkgver=0.3
-pkgrel=0
+pkgrel=1
pkgdesc="friendly command not found handling"
url="https://github.com/kaniini/command-not-found"
arch="noarch"
diff --git a/main/compat-pvgrub/APKBUILD b/main/compat-pvgrub/APKBUILD
index 0b46906f38e..01ec5c75465 100644
--- a/main/compat-pvgrub/APKBUILD
+++ b/main/compat-pvgrub/APKBUILD
@@ -1,25 +1,19 @@
-# Contributor:
-# Maintainer:
+# Contributor:
+# Maintainer:
pkgname=compat-pvgrub
pkgver=1
-pkgrel=1
+pkgrel=2
pkgdesc="compatibility support for PV-GRUB 1.x"
url="https://www.alpinelinux.org/"
arch="noarch"
license="ISC"
-depends=""
-depends_dev=""
makedepends="$depends_dev"
triggers="compat-pvgrub.trigger=/boot"
-install=""
-subpackages=""
source="update-pvgrub"
-
-_builddir="$srcdir"
+builddir="$srcdir"
+options="!check"
package() {
- cd "$_builddir"
-
mkdir -p "$pkgdir"/boot/grub "$pkgdir"/sbin
touch "$pkgdir"/boot/grub/.keep-compat-pvgrub
diff --git a/main/compiler-rt/APKBUILD b/main/compiler-rt/APKBUILD
deleted file mode 100644
index c363680d612..00000000000
--- a/main/compiler-rt/APKBUILD
+++ /dev/null
@@ -1,89 +0,0 @@
-# Contributor: Eric Molitor <eric@molitor.org>
-# Contributor: Travis Tilley <ttilley@gmail.com>
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=compiler-rt
-# Note: Update together with llvm.
-pkgver=14.0.6
-pkgrel=0
-_llvmver=${pkgver%%.*}
-pkgdesc="LLVM compiler-rt runtime libraries"
-arch="all"
-url="https://llvm.org/"
-license="Apache-2.0"
-makedepends="
- clang
- cmake
- libexecinfo-dev
- linux-headers
- llvm-dev~$_llvmver
- llvm-static~$_llvmver
- llvm-test-utils~$_llvmver
- python3
- samurai
- "
-checkdepends="gtest-dev"
-provides="$pkgname-static=$pkgver-r$pkgrel" # for backward compatibility (Alpine <3.16)
-source="https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/compiler-rt-$pkgver.src.tar.xz
- https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/llvm-$pkgver.src.tar.xz
- xray-ppc64-musl.patch
-
- link-execinfo.patch
- sanitizer-supported-arch.patch
- sanitizer-ppc64-musl.patch
- "
-builddir="$srcdir/$pkgname-$pkgver.src"
-options="!check" # tests fail to build
-
-case "$CARCH" in
- # Sanitizers are broken on other arches.
- # Keep in sync with sanitizer-supported-arch.patch.
- aarch64 | ppc64le | x86_64) _build_sanitizers='ON';;
- *) _build_sanitizers='OFF';;
-esac
-
-prepare() {
- default_prepare
-
- sed -i 's|/usr/bin/env python$|/usr/bin/python3|' \
- lib/hwasan/scripts/hwasan_symbolize
-
- cd "$srcdir"
-
- # monorepo layout
- ln -sfv llvm-$pkgver.src llvm
-}
-
-build() {
- # compiler-rt uses llvm intrinsic types for testing
- # and therefore requires clang
- # It also needs LLVM source for testing purposes
- cmake -G Ninja -B build -Wno-dev \
- -DCMAKE_C_COMPILER=clang \
- -DCMAKE_CXX_COMPILER=clang++ \
- -DCMAKE_BUILD_TYPE=MinSizeRel \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCOMPILER_RT_INCLUDE_TESTS="$(want_check && echo ON || echo OFF)" \
- -DCOMPILER_RT_BUILD_SANITIZERS=$_build_sanitizers \
- -DCOMPILER_RT_BUILD_XRAY=ON \
- -DCOMPILER_RT_INSTALL_PATH="/usr/lib/clang/$pkgver" \
- -DLLVM_EXTERNAL_LIT="/usr/bin/lit"
- cmake --build build
-}
-
-check() {
- ninja -C build check-compiler-rt
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --install build
-}
-
-sha512sums="
-c0e63071cb99bca837b83fd0e3597cf45cc635f73ab88a1ec48e863a1633f42bd402ea7c5130e8fa0f550b9574c1ecac1799b92b789565e4ead955cf60060907 compiler-rt-14.0.6.src.tar.xz
-6461bdde27aac17fa44c3e99a85ec47ffb181d0d4e5c3ef1c4286a59583e3b0c51af3c8081a300f45b99524340773a3011380059e3b3a571c3b0a8733e96fc1d llvm-14.0.6.src.tar.xz
-8ed6746474f135ebf77a0888957126ef3a5ded97551632198cf15659104d792487920324b74569dfc46140d26f0a268e2378d6f8878c1c9013b8e6f199eeb3b7 xray-ppc64-musl.patch
-50c68838f79c948b3a0bff6cb120f8c68cac9ad2254d6409b1cddf79cc8a776d1142b29678445d92b62fadc66f353fe89e14dac7aa6c3b4f08d883a06615d7e3 link-execinfo.patch
-9aaac8aa9217509cf377b44e20a8c8294b9972e03e9d4f7c1b0ac7c22bcdac6f6a0888ab16b7542e1d6b89a5ac9054c5d8ef8acd1ae1002cca2d0b3df86136a6 sanitizer-supported-arch.patch
-aed5efa8a9c4f3bcb3b377d3c69c3fef387ef73d712bb58d60622d02d09f42b827cd810cd0648ca2a0ed6cca794f98a6176522e528488caf2f9ce08e0138c931 sanitizer-ppc64-musl.patch
-"
diff --git a/main/compiler-rt/link-execinfo.patch b/main/compiler-rt/link-execinfo.patch
deleted file mode 100644
index 8da49fb38be..00000000000
--- a/main/compiler-rt/link-execinfo.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/lib/scudo/standalone/CMakeLists.txt
-+++ b/lib/scudo/standalone/CMakeLists.txt
-@@ -137,6 +137,8 @@
-
- append_list_if(FUCHSIA zircon SCUDO_LINK_LIBS)
-
-+list(APPEND SCUDO_LINK_LIBS execinfo)
-+
- if(COMPILER_RT_HAS_SCUDO_STANDALONE)
- add_compiler_rt_object_libraries(RTScudoStandalone
- ARCHS ${SCUDO_STANDALONE_SUPPORTED_ARCH}
diff --git a/main/compiler-rt/sanitizer-ppc64-musl.patch b/main/compiler-rt/sanitizer-ppc64-musl.patch
deleted file mode 100644
index b6f3e0050a7..00000000000
--- a/main/compiler-rt/sanitizer-ppc64-musl.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-Patch-Source: https://github.com/void-linux/void-packages/blob/c907a54de30ad0b19fbf9f37d5b67cabe5c7744d/srcpkgs/llvm12/patches/compiler-rt-sanitizer-ppc64-musl.patch
-
-Updated to llvm14
-
---- a/lib/sanitizer_common/sanitizer_linux.cpp
-+++ b/lib/sanitizer_common/sanitizer_linux.cpp
-@@ -74,6 +74,10 @@
- #include <sys/utsname.h>
- #endif
-
-+#if SANITIZER_LINUX && defined(__powerpc__)
-+#include <asm/ptrace.h>
-+#endif
-+
- #if SANITIZER_LINUX && !SANITIZER_ANDROID
- #include <sys/personality.h>
- #endif
---- a/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
-+++ b/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
-@@ -92,7 +92,7 @@
- # include <utime.h>
- # include <sys/ptrace.h>
- # if defined(__mips64) || defined(__aarch64__) || defined(__arm__) || \
-- defined(__hexagon__) || SANITIZER_RISCV64
-+ defined(__hexagon__) || SANITIZER_RISCV64 || defined(__powerpc__)
- # include <asm/ptrace.h>
- # ifdef __arm__
- typedef struct user_fpregs elf_fpregset_t;
---- a/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
-+++ b/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
-@@ -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__) || SANITIZER_RISCV64 || defined(__powerpc__)) && !SANITIZER_ANDROID
- // GLIBC 2.20+ sys/user does not include asm/ptrace.h
- # include <asm/ptrace.h>
- #endif
diff --git a/main/compiler-rt/xray-ppc64-musl.patch b/main/compiler-rt/xray-ppc64-musl.patch
deleted file mode 100644
index d1c55ba1957..00000000000
--- a/main/compiler-rt/xray-ppc64-musl.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-Patch-Source: https://github.com/void-linux/void-packages/blob/c907a54de30ad0b19fbf9f37d5b67cabe5c7744d/srcpkgs/llvm12/patches/compiler-rt-xray-ppc64-musl.patch
---- a/lib/xray/xray_powerpc64.inc
-+++ b/lib/xray/xray_powerpc64.inc
-@@ -12,7 +12,13 @@
-
- #include <cstdint>
- #include <mutex>
-+#ifdef __GLIBC__
- #include <sys/platform/ppc.h>
-+#else
-+#include <cctype>
-+#include <cstring>
-+#include <cstdlib>
-+#endif
-
- #include "xray_defs.h"
-
-@@ -20,13 +26,45 @@ namespace __xray {
-
- ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
- CPU = 0;
-+#ifdef __GLIBC__
- return __ppc_get_timebase();
-+#else
-+ return __builtin_ppc_get_timebase();
-+#endif
- }
-
- inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
- static std::mutex M;
- std::lock_guard<std::mutex> Guard(M);
-+#ifdef __GLIBC__
- return __ppc_get_timebase_freq();
-+#else
-+ /* FIXME: a less dirty implementation? */
-+ static uint64_t base;
-+ if (!base) {
-+ FILE *f = fopen("/proc/cpuinfo", "rb");
-+ if (f) {
-+ ssize_t nr;
-+ /* virtually always big enough to hold the line */
-+ char buf[512];
-+ while (fgets(buf, sizeof(buf), f)) {
-+ char *ret = strstr(buf, "timebase");
-+ if (!ret) {
-+ continue;
-+ }
-+ ret += sizeof("timebase") - 1;
-+ ret = strchr(ret, ':');
-+ if (!ret) {
-+ continue;
-+ }
-+ base = strtoul(ret + 1, nullptr, 10);
-+ break;
-+ }
-+ fclose(f);
-+ }
-+ }
-+ return base;
-+#endif
- }
-
- inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/main/confuse/APKBUILD b/main/confuse/APKBUILD
index 102d1620345..7e2d3e8ad31 100644
--- a/main/confuse/APKBUILD
+++ b/main/confuse/APKBUILD
@@ -1,26 +1,31 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=confuse
pkgver=3.3
-pkgrel=0
+pkgrel=4
pkgdesc="C library for parsing configuration files"
-url="https://github.com/martinh/libconfuse"
+url="https://github.com/libconfuse/libconfuse"
arch="all"
license="ISC"
makedepends="flex bison"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://github.com/martinh/libconfuse/releases/download/v$pkgver/confuse-$pkgver.tar.xz"
-
+subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
+source="https://github.com/libconfuse/libconfuse/releases/download/v$pkgver/confuse-$pkgver.tar.xz"
# secfixes:
# 3.2.2-r0:
# - CVE-2018-14447
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--enable-shared \
+ --enable-static \
--disable-nls
make
}
@@ -29,10 +34,8 @@ check() {
make check
}
-
package() {
make DESTDIR="$pkgdir" install
- install -D -m644 libconfuse.pc "$pkgdir"/usr/lib/pkgconfig/libconfuse.pc
}
sha512sums="93cc62d98166199315f65a2f6f540a9c0d33592b69a2c6a57fd17f132aecc6ece39b9813b96c9a49ae2b66a99b7eba1188a9ce9e360e1c5fb4b973619e7088a0 confuse-3.3.tar.xz"
diff --git a/main/conky/APKBUILD b/main/conky/APKBUILD
index bebff925afa..5566bbfd3bf 100644
--- a/main/conky/APKBUILD
+++ b/main/conky/APKBUILD
@@ -1,27 +1,41 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=conky
-pkgver=1.12.2
-pkgrel=1
-pkgdesc="An advanced, highly configurable system monitor for X based on torsmo"
-url="http://conky.sourceforge.net/"
+pkgver=1.20.1
+pkgrel=0
+pkgdesc="Advanced, highly configurable system monitor for X based on torsmo"
+url="https://github.com/brndnmtthws/conky"
arch="all"
-license="custom"
-makedepends="alsa-lib-dev libxml2-dev curl-dev wireless-tools-dev
- libxft-dev glib-dev libxdamage-dev libxext-dev imlib2-dev lua5.3-dev
- cairo-dev tolua++ ncurses-dev linux-headers cmake gawk libxinerama-dev"
+license="GPL-3.0-or-later"
+makedepends="
+ alsa-lib-dev
+ cairo-dev
+ cmake
+ curl-dev
+ gawk
+ glib-dev
+ imlib2-dev
+ libxdamage-dev
+ libxext-dev
+ libxft-dev
+ libxinerama-dev
+ libxml2-dev
+ linux-headers
+ lua5.4-dev
+ ncurses-dev
+ pango-dev
+ samurai
+ tolua++
+ wayland-dev
+ libxi-dev
+ wayland-protocols
+ wireless-tools-dev
+ "
subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/brndnmtthws/conky/archive/v$pkgver.tar.gz"
-
-# temp allow textrels on riscv64
-[ "$CARCH" = "riscv64" ] && options="$options textrels"
-
-prepare() {
- sed -i -e '32 iinclude(CheckIncludeFile)' CMakeLists.txt
- default_prepare
-}
+options="!check"
build() {
- cmake . \
+ cmake -B build -G Ninja \
-DRELEASE=ON \
-DCMAKE_BUILD_TYPE=MinSizeRel \
-DCMAKE_INSTALL_PREFIX=/usr \
@@ -29,16 +43,19 @@ build() {
-DBUILD_XDBE=ON \
-DBUILD_IMLIB2=ON \
-DBUILD_RSS=ON \
- -DBUILD_WEATHER_METAR=ON \
-DBUILD_WLAN=ON \
-DBUILD_I18N=OFF \
- -DBUILD_LUA_CAIRO=ON
- make
+ -DBUILD_LUA_CAIRO=ON \
+ -DBUILD_WAYLAND=ON \
+ -DLUA_LIBRARIES="/usr/lib/lua5.4/liblua.so"
+ cmake --build build
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
install -D -m644 COPYING $pkgdir/usr/share/licenses/$pkgname/LICENSE
}
-sha512sums="55280953da437efe36320e4c12f74d95b8406bd7d8b7d93c6582f9b346c1c80a94b71d1c27860f6274de9171865fca91e330dfc39feb80bb2f453a538bc5ce1a conky-1.12.2.tar.gz"
+sha512sums="
+60b4da92a42b3ff1a2490c50c7a02eab27a5ce3e91d4e9e0a83d6f0f1089f22c20adec817011afea84bcd99ff19e8f776d852ff4c9249ef47412b58eaa9233da conky-1.20.1.tar.gz
+"
diff --git a/main/conntrack-tools/APKBUILD b/main/conntrack-tools/APKBUILD
index 6ee991ade95..530da858444 100644
--- a/main/conntrack-tools/APKBUILD
+++ b/main/conntrack-tools/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=conntrack-tools
-pkgver=1.4.6
-pkgrel=2
+pkgver=1.4.8
+pkgrel=0
pkgdesc="Connection tracking userspace tools"
url="https://www.netfilter.org/projects/conntrack-tools/"
arch="all"
@@ -19,11 +19,17 @@ makedepends="
libtirpc-dev
linux-headers
"
-source="https://www.netfilter.org/projects/conntrack-tools/files/conntrack-tools-$pkgver.tar.bz2
+source="https://www.netfilter.org/projects/conntrack-tools/files/conntrack-tools-$pkgver.tar.xz
conntrackd.initd
conntrackd.confd
conntrackd.logrotate
"
+options="!check"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
export CFLAGS="$CFLAGS -D_GNU_SOURCE $(pkgconf --cflags libtirpc)"
@@ -48,7 +54,7 @@ package() {
}
sha512sums="
-a48260308a12b11b584fcf4658ec2c4c1adb2801c9cf9a73fc259e5c30d2fbe401aca21e931972413f03e415f98fbf9bd678d2126faa6c6d5748e8a652e58f1a conntrack-tools-1.4.6.tar.bz2
+95d8f6f068c1342ad7e767537e722272a4f5bd8b46b952713ade053a1043aa9ababbe5ce658ede9c77b6de5221b97ad8833777caffd69b67dd70a99f2b45afdf conntrack-tools-1.4.8.tar.xz
f1d96a8107ff1f95b626d592121b59104a3a013970cad8112fde237db2db514d1383e520adf46bf1384831d8d91ec943838a9391b32c3d1ce2bf6aa83c86e18d conntrackd.initd
fd8cfab207867844db6671a8395efadca792d6085c3436381e574dc52f3b4e41d9526b3db6114dd98e534a5419ca19f291d21c091f8cf0426024d73d18133e6f conntrackd.confd
1e4e6414bbf4210fab83d1a8cd7198bf11f2638d378abd674b1b66bd6ab6bdc048fc4052c3e263bd02dfc8085d007f3092f24e818f8579a940aa3b5af19c1766 conntrackd.logrotate
diff --git a/main/coreutils/APKBUILD b/main/coreutils/APKBUILD
index bfb618b72a8..dbe7dea9d08 100644
--- a/main/coreutils/APKBUILD
+++ b/main/coreutils/APKBUILD
@@ -2,25 +2,30 @@
# Contributor: Michael Mason <ms13sp@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=coreutils
-pkgver=9.1
-pkgrel=0
+pkgver=9.5
+pkgrel=1
pkgdesc="The basic file, shell and text manipulation utilities"
url="https://www.gnu.org/software/coreutils/"
arch="all"
license="GPL-3.0-or-later"
-makedepends="bash acl-dev attr-dev utmps-dev perl automake autoconf"
-subpackages="$pkgname-doc"
+makedepends="acl-dev attr-dev utmps-dev perl openssl-dev"
+subpackages="$pkgname-doc $pkgname-env $pkgname-fmt $pkgname-sha512sum:_sha512sum"
install="$pkgname.post-deinstall"
source="https://ftp.gnu.org/gnu/coreutils/coreutils-$pkgver.tar.xz
+ renameat2-fakeroot.patch
"
-options="!check"
+options="!check" # FAIL: tests/cp/reflink-auto
# secfixes:
+# 9.4-r2:
+# - CVE-2024-0684
# 8.30-r0:
# - CVE-2017-18018
build() {
- CFLAGS="$CFLAGS -I/usr/include/utmps" LIBS="-lutmps -lskarnet -lrt" ./configure \
+ CFLAGS="$CFLAGS -I/usr/include/utmps -flto=auto" \
+ LIBS="-lutmps -lskarnet" \
+ ./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
@@ -29,11 +34,23 @@ build() {
--infodir=/usr/share/info \
--disable-nls \
--enable-no-install-program=hostname,su,kill,uptime \
- --enable-single-binary=symlinks
+ --enable-single-binary=symlinks \
+ --enable-single-binary-exceptions=env,fmt,sha512sum \
+ --with-openssl
make
}
+check() {
+ make check
+}
+
package() {
+ # we put this separately
+ depends="
+ coreutils-env=$pkgver-r$pkgrel
+ coreutils-fmt=$pkgver-r$pkgrel
+ coreutils-sha512sum=$pkgver-r$pkgrel
+ "
make DESTDIR="$pkgdir" install
rm -rf "$pkgdir"/usr/lib/charset.alias
@@ -60,11 +77,19 @@ package() {
rm "$pkgdir"/usr/bin/groups
}
-# XXX - some gnulib tests broken, find a way to patch out gnulib tests
-check() {
- make check
+env() {
+ amove usr/bin/env
+}
+
+fmt() {
+ amove usr/bin/fmt
+}
+
+_sha512sum() {
+ amove usr/bin/sha512sum
}
sha512sums="
-a6ee2c549140b189e8c1b35e119d4289ec27244ec0ed9da0ac55202f365a7e33778b1dc7c4e64d1669599ff81a8297fe4f5adbcc8a3a2f75c919a43cd4b9bdfa coreutils-9.1.tar.xz
+2ca0deac4dc10a80fd0c6fd131252e99d457fd03b7bd626a6bc74fe5a0529c0a3d48ce1f5da1d3b3a7a150a1ce44f0fbb6b68a6ac543dfd5baa3e71f5d65401c coreutils-9.5.tar.xz
+a0317f6f42a0f821c6ec6745ff0f6be4ed9d2330ef1f886947a80a0f24dcddc6a28660c1d661da996577cc26b02c095a8aa058e553050acf90bce445ab07136a renameat2-fakeroot.patch
"
diff --git a/main/coreutils/renameat2-fakeroot.patch b/main/coreutils/renameat2-fakeroot.patch
new file mode 100644
index 00000000000..c4cf5909825
--- /dev/null
+++ b/main/coreutils/renameat2-fakeroot.patch
@@ -0,0 +1,18 @@
+calling the syscall directly for renameat2 breaks fakeroot.
+Force fallback til musl has implemented renameat2.
+
+ref: https://gitlab.alpinelinux.org/alpine/aports/-/issues/16016
+
+diff --git a/lib/renameatu.c b/lib/renameatu.c
+index 6893232..a6b278d 100644
+--- a/lib/renameatu.c
++++ b/lib/renameatu.c
+@@ -109,7 +109,7 @@ renameatu (int fd1, char const *src, int fd2, char const *dst,
+ #ifdef HAVE_RENAMEAT2
+ ret_val = renameat2 (fd1, src, fd2, dst, flags);
+ err = errno;
+-#elif defined SYS_renameat2
++#elif defined SYS_renameat2 && defined BREAK_FAKEROOT
+ ret_val = syscall (SYS_renameat2, fd1, src, fd2, dst, flags);
+ err = errno;
+ #endif
diff --git a/main/cppunit/APKBUILD b/main/cppunit/APKBUILD
index d5e483ac4cf..5106cc70e98 100644
--- a/main/cppunit/APKBUILD
+++ b/main/cppunit/APKBUILD
@@ -1,14 +1,19 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=cppunit
pkgver=1.15.1
-pkgrel=0
+pkgrel=4
pkgdesc="C++ unit testing framework"
-url="http://www.freedesktop.org/wiki/Software/cppunit/"
+url="https://www.freedesktop.org/wiki/Software/cppunit/"
arch="all"
-license="LGPL-2.0-or-later"
+license="LGPL-2.1-or-later"
subpackages="$pkgname-dev $pkgname-doc"
source="https://dev-www.libreoffice.org/src/cppunit-$pkgver.tar.gz"
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
LIBS="-ldl" ./configure \
--build=$CBUILD \
diff --git a/main/cracklib/APKBUILD b/main/cracklib/APKBUILD
index 814eebe04bd..6b89634f77b 100644
--- a/main/cracklib/APKBUILD
+++ b/main/cracklib/APKBUILD
@@ -1,31 +1,38 @@
# Contributor: Michael Mason <ms13sp@gmail.com>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=cracklib
-pkgver=2.9.7
-pkgrel=4
-pkgdesc="A library used to enforce strong passwords"
+pkgver=2.9.11
+pkgrel=7
+pkgdesc="Library used to enforce strong passwords"
url="https://github.com/cracklib/cracklib"
arch="all"
-license="LGPL-2.0-or-later"
+license="LGPL-2.1-or-later"
triggers="$pkgname.trigger=/usr/share/cracklib"
-makedepends="zlib-dev"
-subpackages="$pkgname-dev $pkgname-words::noarch"
-source="https://github.com/cracklib/cracklib/releases/download/v$pkgver/cracklib-$pkgver.tar.bz2
+makedepends="autoconf automake libtool gettext-dev python3-dev zlib-dev"
+subpackages="py3-$pkgname-pyc py3-$pkgname:py $pkgname-doc $pkgname-dev $pkgname-words::noarch"
+source="https://github.com/cracklib/cracklib/releases/download/v$pkgver/cracklib-$pkgver.tar.xz
https://github.com/cracklib/cracklib/releases/download/v$pkgver/cracklib-words-$pkgver.gz
- fix-trigger-warning.patch
"
# secfixes:
# 2.9.7-r0:
# - CVE-2016-6318
+prepare() {
+ default_prepare
+ update_config_sub
+
+ # need to reconf for py>=3.10
+ autoreconf -fvi
+}
+
build() {
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
- --without-python \
- --disable-nls
+ --disable-nls \
+ --disable-static
make
}
@@ -35,14 +42,20 @@ check() {
package() {
make DESTDIR="$pkgdir" install
-
- # Remove static lib
- rm "$pkgdir"/usr/lib/libcrack.a
-
for x in "$pkgdir"/usr/share/cracklib/*; do
- gzip -c "$x" > "$x".gz
+ gzip -9 -c "$x" > "$x".gz
rm "$x"
done
+
+ install -Dm644 "$srcdir"/cracklib-words-$pkgver.gz "$pkgdir"/usr/share/cracklib/cracklib-words.gz
+
+ find "$pkgdir"/usr/lib/python* -name "*.opt-1.pyc" -delete
+ find "$pkgdir"/usr/lib/python* -name "test_cracklib*" -delete
+}
+
+py() {
+ pkgdesc="$pkgdesc (python module)"
+ amove usr/lib/python*
}
words() {
@@ -50,10 +63,10 @@ words() {
license="Public-Domain"
depends=""
- cd "$srcdir"
- install -m644 -D $pkgname-words-$pkgver.gz "$subpkgdir"/usr/share/cracklib/$pkgname-words.gz
+ amove usr/share/cracklib/cracklib-words.gz
}
-sha512sums="f6bf65ac092ba46ff78ddbc115692260fb76dc71219cd679d2ea935ebfb9e709fbb30259a7406743ed00dbdc415335b3ac9d9fcba1d204ea36d5eb96bf1333a2 cracklib-2.9.7.tar.bz2
-1fa34b0a2e16d6906982b248f1757bf5bf8154d8d7e8bab94a4ac25080c41434d3828a2c8dd5065e9be586f36480ab70375f09e0bb64eb495d96a460619e2bae cracklib-words-2.9.7.gz
-f9cececd7ba4636bc5d2b9b2acf7c40563a32c1725f6bdcc0f7604ecc4c8cb31656972bfb17a302427bb17b5b8be24c44fd3fd9e1a891745c02f3243e0087216 fix-trigger-warning.patch"
+sha512sums="
+c32e509f757344a1f0b7032ad3b6dc47a8759852a94e511c92073d85bce55f45d48c389d9eb34c993e1d61ad5c1542150672f3e8bc147148ebbb04d3319a2409 cracklib-2.9.11.tar.xz
+d1983e8e8fcb9abee4701581d66008eda2d7ad6ee8d017b7fed225b71bd333fa6199338f37fd120c1c6bf1c8a75025692f4118d97e8c384e578000bed59c6aed cracklib-words-2.9.11.gz
+"
diff --git a/main/cracklib/fix-trigger-warning.patch b/main/cracklib/fix-trigger-warning.patch
deleted file mode 100644
index 21ec638b27b..00000000000
--- a/main/cracklib/fix-trigger-warning.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From: Dermot Bradley <dermot_bradley@yahoo.com>
-Date: Sat, 12 Sep 2020 20:03 +0100
-Subject: [PATCH] cracklib: prevent "line out of order" warnings
-
-Workaround for handling excessively long lines in cracklib-words.gz file.
-Ensure that all lines read from any words files are truncated to 1023
-characters as the cracklib-packer utility (run by the Alpine package trigger)
-breaks up long lines on this boundary and processes them separately as if
-they were seperate lines and it can potentially generate "line out of order"
-warnings.
-
-It also ignores blank lines in word files, this prevents "skipping line"
-warnings when blank lines are encountered.
-
-Upstream PR 33 has been raised with this fix.
-
----
-
---- a/util/cracklib-format
-+++ b/util/cracklib-format
-@@ -3,8 +3,17 @@
- # This preprocesses a set of word lists into a suitable form for input
- # into cracklib-packer
- #
-+# Truncates lines longer than 1022 characters long as cracklib-packer
-+# does not handle them correctly.
-+#
-+# The last part of the pipeline uses 'grep -v' to remove any blank
-+# lines (possibly introduced by earlier parts of the pipeline) as
-+# cracklib-packer will generate "skipping line" warnings otherwise.
-+#
- gzip -cdf "$@" |
-- grep -v '^\(#\|$\)' |
-+ grep -a -v '^#' |
- tr '[A-Z]' '[a-z]' |
- tr -cd '\012[a-z][0-9]' |
-+ cut -c 1-1022 |
-+ grep -v '^$' |
- env LC_ALL=C sort -u
diff --git a/main/cramfs/APKBUILD b/main/cramfs/APKBUILD
index 854df0ecf03..00f20674201 100644
--- a/main/cramfs/APKBUILD
+++ b/main/cramfs/APKBUILD
@@ -1,25 +1,22 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=cramfs
pkgver=1.1
-pkgrel=3
+pkgrel=6
pkgdesc="Linux filesystem designed to be simple, small, and to compress things well"
arch="all"
url="https://sourceforge.net/projects/cramfs/"
-license='GPL'
-depends=
+license="GPL-2.0-or-later"
makedepends="zlib-dev linux-headers"
-source="https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+source="https://downloads.sourceforge.net/cramfs/cramfs-$pkgver.tar.gz
mkcramfs-include-sysmacros.patch"
+options="!check"
build() {
- cd "$srcdir/$pkgname-$pkgver"
- make CFLAGS="$CFLAGS -D_GNU_SOURCE" || return 1
+ make CFLAGS="$CFLAGS -D_GNU_SOURCE"
}
package() {
- cd "$srcdir/$pkgname-$pkgver"
- install -d "$pkgdir"/sbin
- install mkcramfs cramfsck "$pkgdir"/sbin
+ install -Dm755 -t "$pkgdir"/sbin mkcramfs cramfsck
}
sha512sums="6c18dbe32df57f7d132fb2a59a917ad381156ca1f720c1ad0997ca81c62e82fd43ebb0339c5a66d5b144a72ce5c7ae93596522fe2698259f2b68c31db26e3b63 cramfs-1.1.tar.gz
diff --git a/main/crconf/APKBUILD b/main/crconf/APKBUILD
index 7332669bf35..7ff1546293e 100644
--- a/main/crconf/APKBUILD
+++ b/main/crconf/APKBUILD
@@ -2,7 +2,7 @@
pkgname=crconf
pkgver=0_pre2
_realver=pre2
-pkgrel=1
+pkgrel=3
pkgdesc="Linux crypto layer configuration tool"
url="https://sourceforge.net/projects/crconf/"
arch="all"
@@ -11,6 +11,7 @@ makedepends="linux-headers"
source="https://downloads.sourceforge.net/project/crconf/crconf-$_realver.tar.gz"
builddir="$srcdir"/$pkgname-$_realver
+options="!check"
build() {
make
diff --git a/main/cryptsetup/APKBUILD b/main/cryptsetup/APKBUILD
index 4a0dbb4d23b..3ffefa0c066 100644
--- a/main/cryptsetup/APKBUILD
+++ b/main/cryptsetup/APKBUILD
@@ -1,23 +1,27 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=cryptsetup
-pkgver=2.4.3
+pkgver=2.7.2
pkgrel=0
pkgdesc="Userspace setup tool for transparent encryption of block devices using the Linux 2.6 cryptoapi"
url="https://gitlab.com/cryptsetup/cryptsetup"
arch="all"
-license="GPL-2.0-or-later WITH OpenSSL-Exception"
-makedepends_build="bash coreutils"
-makedepends_host="lvm2-dev openssl1.1-compat-dev popt-dev util-linux-dev
- json-c-dev argon2-dev"
+license="GPL-2.0-or-later WITH cryptsetup-OpenSSL-exception"
+makedepends_build="asciidoctor bash coreutils"
+makedepends_host="
+ argon2-dev
+ json-c-dev
+ lvm2-dev
+ openssl-dev>3
+ popt-dev
+ util-linux-dev
+ "
makedepends="$makedepends_build $makedepends_host"
checkdepends="device-mapper which sharutils"
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs $pkgname-openrc"
source="https://www.kernel.org/pub/linux/utils/cryptsetup/v${pkgver%.*}/cryptsetup-$pkgver.tar.gz
dmcrypt.initd
dmcrypt.confd
-
- flush-stdout.patch
"
# secfixes:
@@ -29,6 +33,9 @@ source="https://www.kernel.org/pub/linux/utils/cryptsetup/v${pkgver%.*}/cryptset
build() {
# Disable support for external tokens since it requires
# dlvsym(3) which is a GNU extension and not available in musl.
+ if [ -z "$BOOTSTRAP" ]; then
+ export CFLAGS="$CFLAGS -flto=auto"
+ fi
./configure \
--build="$CBUILD" \
--host="$CHOST" \
@@ -57,19 +64,27 @@ package() {
install -Dm755 "$srcdir"/dmcrypt.initd "$pkgdir"/etc/init.d/dmcrypt
mkdir -p "$pkgdir"/usr/share/doc/$pkgname/
- install -m644 README.md FAQ docs/v$pkgver-ReleaseNotes \
- "$pkgdir"/usr/share/doc/$pkgname/
+ install -m644 README.md FAQ.md docs/v$pkgver-ReleaseNotes \
+ -t "$pkgdir"/usr/share/doc/$pkgname/
+
+ # mandoc does not support the .so directive which replace the
+ # content of a man page with that of another. cryptsetup uses
+ # several man pages which just contain an .so directive. Replace
+ # these with symlinks to make them work by default in mandoc.
+ #
+ # See https://inbox.vuxu.org/mandoc-tech/20101024194129.GJ20876@iris.usta.de/#r
+ grep -l -R '^\.so ' "$pkgdir"/usr/share/man | \
+ xargs awk '/^\.so/ { system("ln -fs " $2 " " FILENAME) }'
}
libs() {
pkgdesc="Cryptsetup shared library"
- mkdir -p "$subpkgdir"
- mv "$pkgdir"/lib "$subpkgdir"/
+
+ amove /lib
}
sha512sums="
-a6c8a33e62853fd5757239b5ec3529bd7d994c6d70db65188b7bd121ee59347a89b57f72d5ebdf521027f5a00951db2fb8acfcbbf1902e8697b006c4fe13c9f2 cryptsetup-2.4.3.tar.gz
-a3ca3e648749136ee724692b61488cd855f118eb93435942c2b04964a34fe49d0f0da4ef64cd2531c1c0f650e77808cf5d802789fd7664398248ead668bb35e5 dmcrypt.initd
+ba8f4aeda997242372e3e2eb4527babfd0ebf31fd28a2e894d7648d37b9a7a1845fb286f2769b3b3741340d68cdd7877d2f9be743bb3e4db9c053accf4640093 cryptsetup-2.7.2.tar.gz
+2a7abe572809d070579ceaeeeb25f050d32408756c1086ddf0e16f41bde239cfb1b8b95e1009362188faccd8060926cbf48a04714e8ddbb09ae3c903f6a490c8 dmcrypt.initd
74422d5e1614b43af894ea01da1ea80d805ec7f77981cbb80a6b1a4becad737a8825d7269812499095a7f50d39fa7da5bf4e4edae63529b1fe87b9176943a733 dmcrypt.confd
-529187851def5fbc08e995eba90d3f013f1cf8469dcb9344f83d1e3c73c71467ca4ed62c8282ec27ebfa30ccc33653fdd1aea8d1d80e1ac4293d51865c9a6200 flush-stdout.patch
"
diff --git a/main/cryptsetup/dmcrypt.initd b/main/cryptsetup/dmcrypt.initd
index 85c77f7c1df..62111c2dae2 100644
--- a/main/cryptsetup/dmcrypt.initd
+++ b/main/cryptsetup/dmcrypt.initd
@@ -57,7 +57,7 @@ dm_crypt_execute() {
target=${swap}
# swap contents do not need to be preserved between boots, luks not required.
# suspend2 users should have initramfs's init handling their swap partition either way.
- : ${options:='-c aes -h sha1 -d /dev/urandom'}
+ : ${options:='-s 256 -c aes -d /dev/urandom'}
: ${pre_mount:='mkswap ${dev}'}
fi
@@ -76,12 +76,25 @@ dm_crypt_execute() {
arg2="${source}"
arg3="${target}"
fi
+ # This hack works around the lack of isLuks equivalents for alternative types
+ # Required feature request: https://gitlab.com/cryptsetup/cryptsetup/-/issues/824
+ # tcrypt can't work this way since tcryptDump requires a password
+ if cryptsetup bitlkDump ${source} >/dev/null 2>&1 ; then
+ arg1="open --type bitlk"
+ arg2="${source}"
+ arg3="${target}"
+ fi
+ if cryptsetup fvault2Dump ${source} >/dev/null 2>&1 ; then
+ arg1="open --type fvault2"
+ arg2="${source}"
+ arg3="${target}"
+ fi
# Older versions reported:
# ${target} is active:
# Newer versions report:
# ${target} is active[ and is in use.]
- if cryptsetup status ${target} | egrep -q ' is active' ; then
+ if cryptsetup status ${target} | grep -qE ' is active' ; then
einfo "dm-crypt mapping ${target} is already configured"
return
fi
@@ -220,6 +233,12 @@ dm_crypt_execute() {
eval "${pre_mount}" > /dev/null
ewend $? || cryptfs_status=1
fi
+ if [ -n "${post_mount}" ] ; then
+ dev="/dev/mapper/${target}"
+ eval ebegin \"" post_mount: ${post_mount}"\"
+ eval "${post_mount}" > /dev/null
+ ewend $? || cryptfs_status=1
+ fi
fi
}
@@ -301,7 +320,7 @@ stop() {
# Break down all mappings
header=true
- egrep "^(target|swap)=" ${conf_file} | \
+ grep -E "^(target|swap)=" ${conf_file} | \
while read line ; do
${header} && einfo "Removing dm-crypt mappings"
header=false
diff --git a/main/cryptsetup/flush-stdout.patch b/main/cryptsetup/flush-stdout.patch
deleted file mode 100644
index 9698460b29f..00000000000
--- a/main/cryptsetup/flush-stdout.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-diff -upr cryptsetup-2.4.0.orig/src/utils_tools.c cryptsetup-2.4.0/src/utils_tools.c
---- cryptsetup-2.4.0.orig/src/utils_tools.c 2021-08-29 15:17:46.989874344 +0200
-+++ cryptsetup-2.4.0/src/utils_tools.c 2021-08-29 15:18:45.543241866 +0200
-@@ -79,10 +79,13 @@ void tool_log(int level, const char *msg
-
- case CRYPT_LOG_NORMAL:
- fprintf(stdout, "%s", msg);
-+ fflush(stdout);
- break;
- case CRYPT_LOG_VERBOSE:
-- if (params && params->verbose)
-+ if (params && params->verbose) {
- fprintf(stdout, "%s", msg);
-+ fflush(stdout);
-+ }
- break;
- case CRYPT_LOG_ERROR:
- fprintf(stderr, "%s", msg);
diff --git a/main/ctags/APKBUILD b/main/ctags/APKBUILD
deleted file mode 100644
index 97da953b840..00000000000
--- a/main/ctags/APKBUILD
+++ /dev/null
@@ -1,56 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Contributor: Michael Mason <ms13sp@gmail.com>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=ctags
-pkgver=5.9.20220605.0
-_realver="p$pkgver"
-pkgrel=0
-pkgdesc="Generator of tags for all types of C/C++ languages"
-url="https://ctags.io/"
-arch="all"
-license="GPL-2.0-or-later"
-checkdepends="diffutils python3"
-makedepends="autoconf automake pkgconf py3-docutils"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/universal-ctags/ctags/archive/$_realver.tar.gz
- disable-check-genfile.patch"
-builddir="$srcdir"/$pkgname-$_realver
-
-# secfixes:
-# 5.8-r5:
-# - CVE-2014-7204
-
-prepare() {
- default_prepare
- ./autogen.sh
-
- # Fail, likely due to compatibility issues with musl's iconv.
- # Alternative solution: Build ctags with --disable-iconv.
- rm -r Tmain/input-encoding-option.d \
- Tmain/output-encoding-option.d
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --disable-external-sort
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="
-dafa299b1541c41c81933b2657e060186dc64a9bb6fda8eee1b9c1a507edf089d496441a6d138c4ac894952833011755795de9773a8e48ffc50c9c40a6705580 ctags-5.9.20220605.0.tar.gz
-185b0647ddaba90ae386c40d75cd8cf8613a89b4d1d0d0905eb78ba3afad57cf273ab2d826053e49d22278f9d3cec97780c8f15aef13c7582658ca24708abf14 disable-check-genfile.patch
-"
diff --git a/main/ctags/disable-check-genfile.patch b/main/ctags/disable-check-genfile.patch
deleted file mode 100644
index 1135411ffba..00000000000
--- a/main/ctags/disable-check-genfile.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-The check-genfile target only works when run from inside a Git
-repository. Since we build ctags from a tagged tarball and not from the
-Git repository, invoking `git diff` fails with a usage error and causes
-`make check` to fail.
-
-This should be reported upstream.
-
-diff -upr a/makefiles/testing.mak b/makefiles/testing.mak
---- a/makefiles/testing.mak 2021-10-02 15:48:41.000000000 +0200
-+++ b/makefiles/testing.mak 2021-10-10 12:07:32.081801888 +0200
-@@ -5,7 +5,7 @@ EXTRA_DIST += misc/units misc/units.py m
- EXTRA_DIST += misc/tlib misc/mini-geany.expected
- MAN_TEST_TMPDIR = ManTest
-
--check: tmain units tlib man-test check-genfile
-+check: tmain units tlib man-test
-
- # We may use CLEANFILES, DISTCLEANFILES, or etc.
- # clean-tlib and clean-gcov are not included
diff --git a/main/cunit/APKBUILD b/main/cunit/APKBUILD
index ae369ebcb62..39f5e5c4d98 100644
--- a/main/cunit/APKBUILD
+++ b/main/cunit/APKBUILD
@@ -4,20 +4,19 @@ pkgname=cunit
_pkgname=CUnit
pkgver=2.1.3
_pkgver=${pkgver%.*}-${pkgver##*.}
-pkgrel=2
+pkgrel=7
pkgdesc="Automated testing framework for C"
-url="http://cunit.sourceforge.net/"
+url="https://cunit.sourceforge.net/"
arch="all"
-license="GPL-2.0"
+license="GPL-2.0-or-later"
makedepends="automake autoconf libtool bash"
subpackages="$pkgname-dev $pkgname-doc"
-source="https://downloads.sourceforge.net/project/$pkgname/$_pkgname/$_pkgver/$_pkgname-$_pkgver.tar.bz2
+source="https://downloads.sourceforge.net/project/cunit/$_pkgname/$_pkgver/$_pkgname-$_pkgver.tar.bz2
path-makefile.patch"
builddir="$srcdir/$_pkgname-$_pkgver"
prepare() {
default_prepare
- cd "$builddir"
libtoolize --force --copy
aclocal
autoheader
@@ -28,7 +27,6 @@ prepare() {
}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -46,12 +44,10 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
diff --git a/main/cups/APKBUILD b/main/cups/APKBUILD
index 7578be4ab4b..8f043d71a37 100644
--- a/main/cups/APKBUILD
+++ b/main/cups/APKBUILD
@@ -1,20 +1,35 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=cups
-pkgver=2.4.2
-pkgrel=0
+pkgver=2.4.7
+pkgrel=3
pkgdesc="The CUPS Printing System"
url="https://github.com/OpenPrinting/cups/"
arch="all"
-license="GPL-2.0-only"
-subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc $pkgname-libs ipptool $pkgname-client
- $pkgname-lang $pkgname-openrc"
+license="Apache-2.0"
depends_dev="libgcrypt-dev gnutls-dev zlib-dev"
-makedepends="$depends_dev libpaper-dev dbus-dev libjpeg-turbo-dev avahi-dev
- linux-headers libusb-dev"
+makedepends="
+ $depends_dev
+ avahi-dev
+ dbus-dev
+ libjpeg-turbo-dev
+ libpaper-dev
+ libusb-dev
+ linux-headers
+ "
depends="cups-client poppler-utils openssl dbus"
install="cups.pre-install"
pkggroups="lp lpadmin"
pkgusers="lp"
+subpackages="
+ $pkgname-dbg
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-libs
+ ipptool
+ $pkgname-client
+ $pkgname-lang
+ $pkgname-openrc
+ "
source="$pkgname-$pkgver.tar.gz::https://github.com/OpenPrinting/cups/archive/v$pkgver.tar.gz
$pkgname.logrotate
cupsd.initd
@@ -22,8 +37,13 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/OpenPrinting/cups/archive/v$
cups-nostrip.patch
default-config-no-gssapi.patch
"
+options="!check"
# secfixes:
+# 2.4.7-r0:
+# - CVE-2023-4504
+# 2.4.2-r7:
+# - CVE-2023-32324
# 2.4.2-r0:
# - CVE-2022-26691
# 2.3.3-r0:
@@ -35,11 +55,6 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/OpenPrinting/cups/archive/v$
# 2.2.10-r0:
# - CVE-2018-4700
-prepare() {
- default_prepare
- update_config_sub
-}
-
build() {
./configure \
--build=$CBUILD \
@@ -69,7 +84,7 @@ build() {
--enable-ssl=yes \
--enable-gnutls \
--disable-launchd \
- --with-optim="$CFLAGS"
+ --with-optim="$CFLAGS -flto=auto"
make
}
@@ -89,7 +104,8 @@ package() {
sed -i 's|^Exec=htmlview http://localhost:631/|Exec=xdg-open http://localhost:631/|g' \
usr/share/applications/cups.desktop
fi
- find usr/share/cups/model -name "*.ppd" | xargs gzip -n9f
+ find usr/share/cups/model \( -name "*.ppd" -a ! -name "*.gz" \) \
+ -exec gzip -n9f {} \+
}
dev() {
@@ -106,8 +122,7 @@ libs() {
depends=""
replaces="libcups"
- cd "$pkgdir"
- _mv usr/lib/*.so*
+ amove 'usr/lib/*.so*'
install -d "$pkgdir"/etc/cups
}
@@ -115,8 +130,7 @@ ipptool() {
pkgdesc="Perform internet printing protocol requests"
depends=""
- cd "$pkgdir"
- _mv usr/bin/ipptool \
+ amove usr/bin/ipptool \
usr/share/cups/ipptool
}
@@ -124,8 +138,7 @@ client() {
pkgdesc="CUPS command-line client programs"
depends=""
- cd "$pkgdir"
- _mv usr/bin \
+ amove usr/bin \
usr/sbin/cupsaccept \
usr/sbin/cupsctl \
usr/sbin/cupsdisable \
@@ -136,15 +149,14 @@ client() {
usr/sbin/lpmove
}
-_mv() {
- local i; for i in "$@"; do
- mkdir -p "$subpkgdir"/${i%/*}
- mv "$pkgdir"/$i "$subpkgdir"/${i%/*}/
- done
+doc() {
+ default_doc
+
+ amove usr/share/cups/help
}
sha512sums="
-1942a677a78df0dcfaaae4b93cf7bf4ba59865d270d89d893831cb47a02f6b7e581c56bbb9264d39504b46d81c3b17ba89f7c5e21f20628f12ddf7161ac6a574 cups-2.4.2.tar.gz
+27ca505a2868aa7bc248bac892aafe2a837633e73b6059d3ab4812264e3b0e786ef075751e8cc4300ce6bc43ef095e3d77dd3fce88ce8e72ca69b65093427bca cups-2.4.7.tar.gz
cf64211da59e79285f99d437c02fdd7db462855fb2920ec9563ba47bd8a9e5cbd10555094940ceedeb41ac805c4f0ddb9147481470112a11a76220d0298aef79 cups.logrotate
2c2683f755a220166b3a1653fdd1a6daa9718c8f0bbdff2e2d5e61d1133306260d63a83d3ff41619b5cf84c4913fae5822b79553e2822858f38fa3613f4c7082 cupsd.initd
148eb01f0861e1cd0861a174a5c5262c49b079b27b972b4e90656b9b9357ec710e861604c30e897818f550e9c1cdcefcd8c8bc955ba4a333902a74cdd8dfb5a6 cups-no-export-ssllibs.patch
diff --git a/main/cups/cups.pre-install b/main/cups/cups.pre-install
index cdb75cac568..96486eb25e9 100644
--- a/main/cups/cups.pre-install
+++ b/main/cups/cups.pre-install
@@ -1,8 +1,8 @@
#!/bin/sh
addgroup -S lpadmin 2>/dev/null
-addgroup -S lp 2>/dev/null
-adduser -S -G lp -g lp lp 2>/dev/null
+addgroup -S -g 7 lp 2>/dev/null
+adduser -S -G lp -g lp -u 4 lp 2>/dev/null
addgroup lp lp 2>/dev/null
exit 0
diff --git a/main/curl/APKBUILD b/main/curl/APKBUILD
index 7cb27856346..b434ea1ec7e 100644
--- a/main/curl/APKBUILD
+++ b/main/curl/APKBUILD
@@ -8,27 +8,74 @@
# this aport from arch=all WILL be reverted.
pkgname=curl
-pkgver=7.84.0
+pkgver=8.7.1
pkgrel=0
pkgdesc="URL retrival utility and library"
url="https://curl.se/"
arch="all"
license="curl"
depends="ca-certificates"
-depends_dev="openssl1.1-compat-dev nghttp2-dev zlib-dev brotli-dev"
+depends_dev="
+ brotli-dev
+ c-ares-dev
+ libidn2-dev
+ libpsl-dev
+ nghttp2-dev
+ openssl-dev>3
+ zlib-dev
+ zstd-dev
+ "
checkdepends="nghttp2 python3"
makedepends_host="$depends_dev"
-makedepends_build="autoconf automake groff libtool perl"
+makedepends_build="groff perl"
subpackages="$pkgname-dbg $pkgname-static $pkgname-doc $pkgname-dev libcurl"
[ -z "$BOOTSTRAP" ] && subpackages="$subpackages $pkgname-zsh-completion $pkgname-fish-completion"
-source="
- https://curl.se/download/curl-$pkgver.tar.xz
- easy_lock.patch
- "
+source="https://curl.se/download/curl-$pkgver.tar.xz"
options="net" # Required for running tests
[ -n "$BOOTSTRAP" ] && options="$options !check" # remove python3 dependency
# secfixes:
+# 8.7.1-r0:
+# - CVE-2024-2004
+# - CVE-2024-2379
+# - CVE-2024-2398
+# - CVE-2024-2466
+# 8.6.0-r0:
+# - CVE-2024-0853
+# 8.5.0-r0:
+# - CVE-2023-46218
+# - CVE-2023-46219
+# 8.4.0-r0:
+# - CVE-2023-38545
+# - CVE-2023-38546
+# 8.3.0-r0:
+# - CVE-2023-38039
+# 8.1.0-r0:
+# - CVE-2023-28319
+# - CVE-2023-28320
+# - CVE-2023-28321
+# - CVE-2023-28322
+# 8.0.0-r0:
+# - CVE-2023-27533
+# - CVE-2023-27534
+# - CVE-2023-27535
+# - CVE-2023-27536
+# - CVE-2023-27537
+# - CVE-2023-27538
+# 7.88.0-r0:
+# - CVE-2023-23914
+# - CVE-2023-23915
+# - CVE-2023-23916
+# 7.87.0-r0:
+# - CVE-2022-43551
+# - CVE-2022-43552
+# 7.86.0-r0:
+# - CVE-2022-32221
+# - CVE-2022-35260
+# - CVE-2022-42915
+# - CVE-2022-42916
+# 7.85.0-r0:
+# - CVE-2022-35252
# 7.84.0-r0:
# - CVE-2022-32205
# - CVE-2022-32206
@@ -139,61 +186,56 @@ options="net" # Required for running tests
# 0:
# - CVE-2021-22897
-prepare() {
- default_prepare
- autoreconf -vfi
-}
-
build() {
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
+ --enable-ares \
--enable-ipv6 \
--enable-unix-sockets \
--enable-static \
- --with-openssl \
- --without-libidn \
- --without-libidn2 \
+ --with-libidn2 \
--with-nghttp2 \
+ --with-openssl \
+ --with-zsh-functions-dir \
+ --with-fish-functions-dir \
--disable-ldap \
--with-pic \
+ --enable-websockets \
--without-libssh2 # https://bugs.alpinelinux.org/issues/10222
make
# generation of completions is not supported when cross-compiling.
- [ -z "$BOOTSTRAP" ] && make -C scripts/
+ if [ -z "$BOOTSTRAP" ]; then
+ make -C scripts/
+ fi
}
check() {
- make -C tests nonflaky-test
+ make -C tests
+ make -j1 -C tests TFLAGS="-j$JOBS" nonflaky-test
}
package() {
+ # depends on exactly the same build of libcurl
+ depends="libcurl=$pkgver-r$pkgrel"
+
make install DESTDIR="$pkgdir"
if [ -z "$BOOTSTRAP" ]; then
install -Dm644 scripts/_curl -t \
"$pkgdir"/usr/share/zsh/site-functions/
install -Dm644 scripts/curl.fish -t \
- "$pkgdir"/usr/share/fish/completions/
+ "$pkgdir"/usr/share/fish/vendor_completions.d/
fi
}
libcurl() {
pkgdesc="The multiprotocol file transfer library"
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/lib "$subpkgdir"/usr
-}
-
-static() {
- pkgdesc="$pkgdesc (static library)"
-
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib
+ amove usr/lib
}
sha512sums="
-86231866a35593a1637fbc0c6af3b6761bdfd99fb35580cc52970c36f19604f93dce59fea67a1d5bb4b455f719307599c7916c77d14f2b661f6bf7fb1ca716ce curl-7.84.0.tar.xz
-287a9f2c501d790cf2db27d6f3887da6417afe38a218fc8b14039beab6055869cd75eda83e79bc8579e8dd5e35e1c9f6644d52f6b708577f9f61d5ff86feee73 easy_lock.patch
+5bbde9d5648e9226f5490fa951690aaf159149345f3a315df2ba58b2468f3e59ca32e8a49734338afc861803a4f81caac6d642a4699b72c6310ebfb1f618aad2 curl-8.7.1.tar.xz
"
diff --git a/main/curl/easy_lock.patch b/main/curl/easy_lock.patch
deleted file mode 100644
index 73a4b9d2f2b..00000000000
--- a/main/curl/easy_lock.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 3f6beb669e4edc170e167aa6cca3b4a6ec4501e9 Mon Sep 17 00:00:00 2001
-From: Daniel Stenberg <daniel@haxx.se>
-Date: Mon, 27 Jun 2022 08:46:21 +0200
-Subject: [PATCH] easy_lock.h: include sched.h if available to fix build
-
-Patched-by: Harry Sintonen
----
- lib/easy_lock.h | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/lib/easy_lock.h b/lib/easy_lock.h
-index 819f50ce815b8..1f54289ceb2d3 100644
---- a/lib/easy_lock.h
-+++ b/lib/easy_lock.h
-@@ -36,6 +36,9 @@
-
- #elif defined (HAVE_ATOMIC)
- #include <stdatomic.h>
-+#if defined(HAVE_SCHED_YIELD)
-+#include <sched.h>
-+#endif
-
- #define curl_simple_lock atomic_bool
- #define CURL_SIMPLE_LOCK_INIT false
diff --git a/main/cutter/APKBUILD b/main/cutter/APKBUILD
index 8d2a310b4e3..71380dd9e24 100644
--- a/main/cutter/APKBUILD
+++ b/main/cutter/APKBUILD
@@ -2,27 +2,25 @@
# Maintainer: Michael Mason <ms13sp@gmail.com>
pkgname=cutter
pkgver=1.04
-pkgrel=1
+pkgrel=5
pkgdesc="A program that allows firewall administrators to abort TCP/IP connections"
url="http://www.digitage.co.uk/digitage/software/linux-security/cutter"
arch="all"
-license="GPL-2.0"
+license="GPL-2.0-or-later"
makedepends="linux-headers"
options="!check"
-source="http://www.digitage.co.uk/digitage/files/cutter/$pkgname-$pkgver.tgz
+source="http://dev.alpinelinux.org/archive/cutter/cutter-$pkgver.tgz
musl-fix.patch"
-builddir="$srcdir/$pkgname-$pkgver"
-
build() {
- cd "$builddir"
make
}
package() {
- cd "$builddir"
install -m755 -D $pkgname "$pkgdir"/usr/sbin/$pkgname
}
-sha512sums="79c17ec8c17e696a79aa8b11fda347f2e6929eb35f9a37da450acf6aff7ab9471e13eaef24708f90f3f0c2791fade2eb944443b98df3d3ae4eef0c408abc7b3a cutter-1.04.tgz
-815ffcfbae6865443b49390f1c5dc583243009150271804468aad00102b136ac2e6abe565efa18d15f4411690444ca6fdd1184a8b31e61f5a62115f87f6d53dc musl-fix.patch"
+sha512sums="
+79c17ec8c17e696a79aa8b11fda347f2e6929eb35f9a37da450acf6aff7ab9471e13eaef24708f90f3f0c2791fade2eb944443b98df3d3ae4eef0c408abc7b3a cutter-1.04.tgz
+fca7cabce0b142c31bcbbede138f20c7389e58d8ad9d82480526b5ab90165ce6493d54c3a3e9270f02bccc08ae248a7b4d62b34bb26c117e6f4b18106c37106d musl-fix.patch
+"
diff --git a/main/cutter/musl-fix.patch b/main/cutter/musl-fix.patch
index e8ff6de41d9..16f4e189d0a 100644
--- a/main/cutter/musl-fix.patch
+++ b/main/cutter/musl-fix.patch
@@ -1,6 +1,19 @@
---- ./cutter.c.orig
-+++ ./cutter.c
-@@ -47,7 +47,6 @@
+diff --git a/Makefile b/Makefile
+index 1f11226..d347768 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,5 +1,5 @@
+ cutter: cutter.c
+- cc cutter.c -o cutter
++ cc $(CFLAGS) cutter.c -o cutter $(LDFLAGS)
+
+ clean:
+ rm -f cutter.o cutter
+diff --git a/cutter.c b/cutter.c
+index 1c639c9..0d0466b 100644
+--- a/cutter.c
++++ b/cutter.c
+@@ -44,7 +44,6 @@
#include <linux/socket.h>
#include <linux/ip.h>
#include <linux/tcp.h>
@@ -8,3 +21,20 @@
#include <fcntl.h>
#include <netpacket/packet.h>
#include <net/ethernet.h> /* the L2 protocols */
+@@ -54,6 +53,7 @@
+ #include <arpa/inet.h>
+ #include <net/if.h>
+ #include <errno.h>
++#include <time.h>
+
+ #define ETHHDR sizeof(struct ethhdr)
+ #define TCPHDR sizeof(struct tcphdr)
+@@ -129,7 +129,7 @@ int getnexthop(in_addr_t ip, char *intf, in_addr_t *gateway)
+ dest_ip = gateway_ip = flags = refcnt = use
+ = metric = mask = mtu = window = irtt = -1;
+
+- if (sscanf(buff, "%s %8lx %8lx %4x %d %d %d %8lx %d %d %d",
++ if (sscanf(buff, "%s %8x %8x %4x %d %d %d %8x %d %d %d",
+ iface, &dest_ip, &gateway_ip, &flags, &refcnt,
+ &use, &metric, &mask, &mtu, &window, &irtt
+ ) == 11) {
diff --git a/main/cvechecker/APKBUILD b/main/cvechecker/APKBUILD
index 7e7c4641e57..80a351ed825 100644
--- a/main/cvechecker/APKBUILD
+++ b/main/cvechecker/APKBUILD
@@ -3,11 +3,11 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=cvechecker
pkgver=4.0
-pkgrel=1
+pkgrel=4
pkgdesc="A local CVE checker tool"
url="https://github.com/sjvermeu/cvechecker/wiki"
arch="all"
-license="GPL-3.0"
+license="GPL-3.0-or-later"
depends="gawk wget libxslt jq"
makedepends="libconfig-dev sqlite-dev mariadb-connector-c-dev
argp-standalone autoconf automake libbsd-dev"
@@ -19,7 +19,6 @@ builddir="$srcdir"/$pkgname-$pkgname-$pkgver
prepare() {
default_prepare
- cd "$builddir"
aclocal && \
autoheader && \
automake -ac && \
diff --git a/main/cvs/APKBUILD b/main/cvs/APKBUILD
deleted file mode 100644
index 108fadb6bbf..00000000000
--- a/main/cvs/APKBUILD
+++ /dev/null
@@ -1,67 +0,0 @@
-# Contributor: Michael Mason <ms13sp@gmail.com>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=cvs
-pkgver=1.12.13
-pkgrel=1
-pkgdesc="Concurrent Versions System"
-url="https://www.nongnu.org/cvs/"
-arch="all"
-license="GPL-2.0-or-later"
-options="!check" # Tests fail - src/lib/test-getdate.sh
-makedepends="
- autoconf
- automake
- gettext-dev
- libbsd-dev
- texinfo
- zlib-dev
-"
-subpackages="$pkgname-doc"
-source="https://ftp.gnu.org/non-gnu/cvs/source/feature/$pkgver/cvs-$pkgver.tar.gz
- cvs_1.12.13+real-26.patch
- install-sh.patch
- mktime-configure.patch
- getcwd.patch
- add-libbsd.patch
- "
-
-# secfixes:
-# 1.12.12-r0:
-# - CVE-2010-3846
-# - CVE-2012-0804
-# - CVE-2017-12836
-prepare() {
- default_prepare
- update_config_sub
- autoreconf -fi
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --with-external-zlib \
- --with-tmpdir=/tmp
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="
-acd658b7ffa29a67e33f294073a0f80a27aa4e19dc2185cfa43f862d34e511bcf9802012b8e6957f82c7532fdabbb058b33686e0e6046cdd1f1aa9af619e92e9 cvs-1.12.13.tar.gz
-510a8a3ed392108f360f3477af45f863ea3603b8c3f90504dfc018e3ef5ed79e69fcd3e38c82b46061cc82a53859d8ab209ae6f8ee07134f7db98bc3f1e38f06 cvs_1.12.13+real-26.patch
-44e0b683f8178804d029957e78af046197142181564bfb0209da2682f9817e6c661a9e0dd390d236c9ebdc937df920269e708bb7d7c84ca942341fd413a1b265 install-sh.patch
-a430f2659e1f96bc4ba2205567662eb5863c0c73b2e0c43eba86b23734b3874663e389e74e6011c6a0e9f4074d676adfd6c88fbe20f11ca33ba3223a93dad02c mktime-configure.patch
-99a9107603a933c164070787a3e270f8b1d82fb6930763061f019a42c0d88e4ac981941ccc0851ae051df757caef5d6c9a9e9b87d3378e7361cc78f48460f4a1 getcwd.patch
-eecdd7f8a31ae63901e6b7336c7aac5827dd33ce2c80bb7d629ffb3dc65927eae75f59f6a949e290471982f22265f02eaa17febd6e6ea5f799edcfcbccd3b511 add-libbsd.patch
-"
diff --git a/main/cvs/add-libbsd.patch b/main/cvs/add-libbsd.patch
deleted file mode 100644
index 1b018a7a12c..00000000000
--- a/main/cvs/add-libbsd.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- old/src/Makefile.am
-+++ new/src/Makefile.am
-@@ -117,7 +117,8 @@
- $(ZLIB_LIBS) \
- $(LIB_CLOCK_GETTIME) \
- $(LIB_NANOSLEEP) \
-- $(LIBINTL)
-+ $(LIBINTL) \
-+ -lbsd
-
- # General
- EXTRA_DIST = \
diff --git a/main/cvs/cvs_1.12.13+real-26.patch b/main/cvs/cvs_1.12.13+real-26.patch
deleted file mode 100644
index 756fbdbd463..00000000000
--- a/main/cvs/cvs_1.12.13+real-26.patch
+++ /dev/null
@@ -1,14614 +0,0 @@
-This patch is taken without modification from ubuntu 18.04
-https://packages.ubuntu.com/bionic/cvs
-
-Original download URL:
-http://archive.ubuntu.com/ubuntu/pool/universe/c/cvs/cvs_1.12.13+real-26.diff.gz
-
-
---- cvs-1.12.13+real.orig/AUTHORS
-+++ cvs-1.12.13+real/AUTHORS
-@@ -57,6 +57,12 @@
- There have been many, many contributions not listed here. Consult the
- individual ChangeLog files in each directory for a more complete idea.
-
-+Thorsten Glaser <tg@mirbsd.org> is responsible for the MirOS extensions,
-+some of which were inspired by changes to GNU CVS 1.11.1p1 by other BSDs,
-+and by changes from the previous Debian package; he did the MirBSD port
-+as well as the MirPorts Framework and new Debian packaging, all of which
-+include some original development work and fixes.
-+
- In addition to the above contributors, the following Beta testers
- deserve special mention for their support. This is only a partial
- list; if you have helped in this way and would like to be listed, let
-@@ -88,3 +94,6 @@
- Many contributors have added code to the "contrib" directory. See the
- README file there for a list of what is available. There is also a
- contributed GNU Emacs CVS-mode in tools/pcl-cvs.
-+
-+
-+$MirOS: src/gnu/usr.bin/cvs/AUTHORS,v 1.6 2016/11/08 23:08:09 tg Exp $
---- cvs-1.12.13+real.orig/DEVEL-CVS
-+++ cvs-1.12.13+real/DEVEL-CVS
-@@ -7,7 +7,8 @@
- Policies regarding the CVS source repository:
-
- By checking items into the repository, developers agree to permit
--distribution of such items under the terms of the GNU Public License.
-+distribution of such items under the terms of the GNU General Public
-+License.
-
- ----------------------------------------------------------------------
- Procedure for dealing with people who want to be developers:
---- cvs-1.12.13+real.orig/FAQ
-+++ cvs-1.12.13+real/FAQ
-@@ -3097,7 +3097,7 @@
- If you want to allow read access, check out an entire tree somewhere.
- You have to do this anyway to build it.
-
-- Note: If you are using a stupid file system that can't inherit file
-+ Note: If you are using a stupid filesystem that can't inherit file
- groups from the parent directory (even with the "setgid" (Octal 2000)
- bit set), you might have to modify CVS (or RCS) to reset the group
- every time you create a new file. I have not tested this.
-@@ -7234,7 +7234,7 @@
-
- It will respond:
-
-- Directory /Repos/<dir> added to the repository
-+ Directory /Repos/<dir> put under version control
-
- and will create both a matching directory in the Repository and a
- ./CVS administrative directory within the local <dir> directory.
-@@ -7541,7 +7541,7 @@
- available on Sun, HP, SGI and OSF/1 platforms.
-
- ClearCase uses a special Unix filesystem type, called "mvfs" for
-- "multi-version file system". Conceptually, mvfs adds another dimension
-+ "multi-version filesystem". Conceptually, mvfs adds another dimension
- to a regular Unix filesystem. The new axis is used to store the
- different versions of files and to provide a tree-hierarchical view of
- a collection of objects that might be scattered across any number of
-@@ -7644,7 +7644,7 @@
-
- Shapetools includes a build mechanism (called Shape, not surprisingly)
- that is aware of the version mechanism, and some dependency tracking.
-- It is based on a file system extension called Attributed File System,
-+ It is based on a filesystem extension called Attributed Filesystem,
- which allows arbitrary-sized "attributes" to be associated with a
- file. Files are version controlled in a manner similar to RCS.
- Configurations are managed through the Shapefile, an extension of the
---- cvs-1.12.13+real.orig/MINOR-BUGS
-+++ cvs-1.12.13+real/MINOR-BUGS
-@@ -59,3 +59,15 @@
- belong under the "checkout" function? Perhaps it is more logically
- grouped with the "history" function or we should create a new "info"
- function?
-+
-+
-+Note that it is the opinion of the MirBSD founder that the CVSROOT
-+environment variable ought to *never* be set at all. This prevents
-+a lot of trouble. Almost all CVS tutorials stating otherwise (or
-+recommending pserver) are perceived bogus.
-+
-+"cvs annotate -b" does not do what people would expect, I think,
-+but neither does it do that under MidnightBSD/DragonFly, where
-+it came from.
-+
-+$MirOS: src/gnu/usr.bin/cvs/MINOR-BUGS,v 1.5 2016/11/08 23:04:31 tg Exp $
---- cvs-1.12.13+real.orig/NEWS
-+++ cvs-1.12.13+real/NEWS
-@@ -1,3 +1,11 @@
-+Changes since 1.12.13:
-+**********************
-+
-+* many which are only documented in MirBSD CVS
-+
-+* A new command line option, --allow-root-regexp, was added which allows
-+ acceptable repositories to be specified using a list of regular expressions.
-+
- Changes since 1.12.12:
- **********************
-
-@@ -669,7 +677,7 @@
- from the server.
-
- * The configure script now tests whether it is building CVS on a case
-- insensitive file system. If it is, CVS assumes that all file systems on this
-+ insensitive filesystem. If it is, CVS assumes that all filesystems on this
- platform will be case insensitive. This is useful for getting the case
- insensitivity flag set correctly when compiling on Mac OS X and under Cygwin
- on Windows. Autodetection can be overridden using the
---- cvs-1.12.13+real.orig/TODO
-+++ cvs-1.12.13+real/TODO
-@@ -33,14 +33,14 @@
- 66. Length of the CVS temporary files must be limited to 14 characters for
- System-V stupid support. As well as the length on the CVS.adm files.
-
--72. Consider re-design of the module -t options to use the file system more
-+72. Consider re-design of the module -t options to use the filesystem more
- intuitively.
-
- 73. Consider an option (in .cvsrc?) to automatically add files that are new
- and specified to commit.
-
- 79. Might be nice to have some sort of interface to Sun's Translucent
-- (?) File System and tagged revisions.
-+ (?) filesystem and tagged revisions.
-
- 82. Maybe the import stuff should allow an arbitrary revision to be
- specified.
-@@ -215,7 +215,7 @@
- machine or directory. But there are other cases, like where the
- user might want to change from :pserver: to :ext:, use a different
- server (if there are two server machines which share the
-- repository using a networked file system), etc.
-+ repository using a networked filesystem), etc.
-
- The status quo is a bit of a mess (as of, say, CVS 1.9). It is
- that the -d global option has two moderately different uses. One
-@@ -334,7 +334,7 @@
-
- 165. The "import" command will create RCS files automatically, but will
- screw-up when trying to create long file names on short file name
-- file systems. Perhaps import should be a bit more cautious.
-+ filesystems. Perhaps import should be a bit more cautious.
-
- 166. There really needs to be a "Getting Started" document which describes
- some of the new CVS philosophies. Folks coming straight from SCCS or
---- cvs-1.12.13+real.orig/configure.in
-+++ cvs-1.12.13+real/configure.in
-@@ -4,6 +4,8 @@
- [Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995,
- 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
- Free Software Foundation, Inc.
-+Copyright (c) 2003, 2004, 2005, 2010, 2011, 2012, 2013, 2015, 2016, 2017
-+ mirabilos <m@mirbsd.org>
-
- 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
-@@ -15,11 +17,12 @@
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.])
-
--AC_INIT([Concurrent Versions System (CVS)],[1.12.13],
-- [bug-cvs@nongnu.org],[cvs])
-+AC_INIT([Concurrent Versions System (CVS)],[1.12.13-MirDebian-25],
-+ [miros-discuss@mirbsd.org],[cvs])
- AC_CONFIG_SRCDIR(src/cvs.h)
- AC_CONFIG_AUX_DIR(build-aux)
- AM_INIT_AUTOMAKE([gnu 1.9.2 dist-bzip2 no-define])
-+AM_GNU_GETTEXT_VERSION([0.14.4])
- AC_PREREQ(2.59)
-
- AC_PREFIX_PROGRAM(cvs)
-@@ -155,6 +158,8 @@
- AC_CHECK_HEADERS(\
- direct.h \
- fcntl.h \
-+ getopt.h \
-+ inttypes.h \
- io.h \
- memory.h \
- ndbm.h \
-@@ -162,11 +167,14 @@
- syslog.h \
- sys/bsdtypes.h \
- sys/file.h \
-+ sys/inttypes.h \
- sys/param.h \
- sys/resource.h \
- sys/select.h \
- unistd.h \
-- utime.h\
-+ utime.h \
-+ wctype.h \
-+ zlib.h \
- )
- AC_HEADER_STAT
-
-@@ -180,6 +188,8 @@
- AC_CHECK_MEMBERS([struct stat.st_rdev])
-
- AC_FUNC_FSEEKO
-+AC_FUNC_ALLOCA
-+AC_CHECK_FUNCS([fseeko])
- if test $ac_cv_func_fseeko = no; then
- AC_LIBOBJ(fseeko)
- AC_LIBOBJ(ftello)
-@@ -1207,7 +1217,7 @@
- [case-sensitivity],
- AC_HELP_STRING(
- [--enable-case-sensitivity],
-- [Force CVS to expect a case sensitive file system. Enabling this on a case
-+ [Force CVS to expect a case sensitive filesystem. Enabling this on a case
- insensitive system should have little effect on the server or client
- operation, though client users may ocassionally be suprised that the CVS
- server appears to be case sensitive. Disabling this for a case sensitive
-@@ -1216,7 +1226,7 @@
- Disabling this for a case sensitive client will cause the client to ask
- servers to behave case insensitively, which could cause confusion for
- users, but also probably no real harm. (default autoselects based on the
-- case sensitivity of the file system containing the current working
-+ case sensitivity of the filesystem containing the current working
- directory)]),
- [case "$enable_case_sensitivity" in
- yes | no | auto) ;;
-@@ -1227,7 +1237,7 @@
- [enable_case_sensitivity=auto])
-
- acx_forced=' (forced)'
--AC_MSG_CHECKING([for a case sensitive file system])
-+AC_MSG_CHECKING([for a case sensitive filesystem])
- if test $enable_case_sensitivity = auto; then
- dnl
- dnl Check for a case insensitive filesystem, like Mac OS X and Windows have.
-@@ -1249,7 +1259,7 @@
- if test $enable_case_sensitivity = no; then
- AC_DEFINE([FILENAMES_CASE_INSENSITIVE], [1],
- [Define if this executable will be running on case insensitive
-- file systems. In the client case, this means that it will request
-+ filesystems. In the client case, this means that it will request
- that the server pretend to be case insensitive if it isn't
- already.])
- dnl Compile fncase.c (containing fncase() & fncmp()) to handle file name
-@@ -1444,7 +1454,7 @@
- [config-override],
- AC_HELP_STRING(
- [--enable-config-override],
-- [Set to a comma-seperated list of paths to directories (designated by
-+ [Set to a comma-separated list of paths to directories (designated by
- trailing `/') and files, specifies the path prefixes (for directories) and
- paths to files the CVS server commands will allow configuration to be read
- from. Specify `--enable-config-override=no' to disable config file
---- cvs-1.12.13+real.orig/contrib/cvs_acls.html
-+++ cvs-1.12.13+real/contrib/cvs_acls.html
-@@ -280,7 +280,7 @@
- <p>A final note about the repository matching pattern. The example above
- uses ``ALL'' but note that this means that the cvs_acls script will run
- for each and every commit in your repository. Obviously, in a large
--repository this adds up to a lot of overhead that may not be necesary.
-+repository this adds up to a lot of overhead that may not be necessary.
- A better strategy is to use a repository pattern that is more specific
- to the areas that you wish to secure.</p>
- <p>3. Install this file as $CVSROOT/CVSROOT/cvs_acls and make it executable.</p>
---- cvs-1.12.13+real.orig/contrib/cvs_acls.in
-+++ cvs-1.12.13+real/contrib/cvs_acls.in
-@@ -309,7 +309,7 @@
- A final note about the repository matching pattern. The example above
- uses "ALL" but note that this means that the cvs_acls script will run
- for each and every commit in your repository. Obviously, in a large
--repository this adds up to a lot of overhead that may not be necesary.
-+repository this adds up to a lot of overhead that may not be necessary.
- A better strategy is to use a repository pattern that is more specific
- to the areas that you wish to secure.
-
---- cvs-1.12.13+real.orig/contrib/rcs2log.1
-+++ cvs-1.12.13+real/contrib/rcs2log.1
-@@ -1,3 +1,4 @@
-+.\" $MirOS: src/gnu/usr.bin/cvs/contrib/rcs2log.1,v 1.2 2011/05/06 22:44:59 tg Exp $
- .\"
- .\" Copyright 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
- .\"
-@@ -25,17 +26,17 @@
- .Sh SYNOPSIS
- .Nm rcs2log
- .Bk -words
-+.Op Fl nRv
- .Op Fl c Ar changelog
- .Op Fl h Ar hostname
- .Op Fl i Ar indent
- .Op Fl l Ar length
--.Op Fl R
-+.Op Fl L Ar file
- .Op Fl r Ar option
- .Op Fl t Ar tabwidth
- .Op Fl u Ar login<TAB>fullname<TAB>mailaddr
--.Op Fl v
--.Op Fl -help
--.Op Fl -version
-+.Op Fl \-help
-+.Op Fl \-version
- .Op Ar file ...
- .Ek
- .Sh DESCRIPTION
-@@ -62,6 +63,14 @@
- Try to limit log lines to
- .Ar length
- characters (default 79).
-+.It Fl L Ar file
-+Use rlog-format
-+.Ar file
-+for source of logs.
-+.It Fl n
-+Obsolete, use
-+.Fl u
-+instead (whose syntax differs).
- .It Fl R
- If no
- .Ar file Ns Li (s)
-@@ -83,9 +92,9 @@
- .Ar mailaddr .
- .It Fl v
- Append RCS revision to file names in log lines.
--.It Fl -help
-+.It Fl \-help
- Output help.
--.It Fl -version
-+.It Fl \-version
- Output version number.
- .El
- .Sh SEE ALSO
---- cvs-1.12.13+real.orig/contrib/rcs2log.sh
-+++ cvs-1.12.13+real/contrib/rcs2log.sh
-@@ -1,4 +1,5 @@
- #! /bin/sh
-+# $MirOS: src/gnu/usr.bin/cvs/contrib/rcs2log.sh,v 1.6 2011/05/06 22:44:59 tg Exp $
-
- # Copyright (C) 1995-2005 The Free Software Foundation, Inc.
-
-@@ -31,6 +32,7 @@
- -i INDENT Indent change log lines by INDENT spaces (default 8).
- -l LENGTH Try to limit log lines to LENGTH characters (default 79).
- -L FILE Use rlog-format FILE for source of logs.
-+ -n Obsolete, use -u instead (whose syntax differs).
- -R If no FILEs are given and RCS is used, recurse through working directory.
- -r OPTION Pass OPTION to subsidiary log command.
- -t TABWIDTH Tab stops are every TABWIDTH characters (default 8).
-@@ -199,7 +201,7 @@
- m[9]="Oct"; m[10]="Nov"; m[11]="Dec"
- '
-
--logdir=`$MKTEMP -d $TMPDIR/rcs2log.XXXXXX`
-+logdir=$($MKTEMP -d $TMPDIR/rcs2log.XXXXXXXXXX)
- test -n "$logdir" || exit
- llogout=$logdir/l
- trap exit 1 2 13 15
-@@ -632,7 +634,7 @@
- # Sort the log entries, first by date+time (in reverse order),
- # then by author, then by log entry, and finally by file name and revision
- # (just in case).
--sort -t"$SOH" +2 -4r +4 +0 |
-+sort -t"$SOH" -k 3,4r -k 5 -k 1 |
-
- # Finally, reformat the sorted log entries.
- $AWK -F"$SOH" '
---- cvs-1.12.13+real.orig/contrib/sccs2rcs.in
-+++ cvs-1.12.13+real/contrib/sccs2rcs.in
-@@ -1,4 +1,5 @@
- #! @CSH@ -f
-+# $MirOS: src/gnu/usr.bin/cvs/contrib/sccs2rcs.in,v 1.2 2011/05/06 21:50:27 tg Exp $
-
- # Copyright (C) 1995-2005 The Free Software Foundation, Inc.
-
-@@ -219,7 +220,7 @@
- # we expected in the output we have other problems.
- # Note: Solaris awk does not like the following line. Use gawk
- # mawk, or nawk instead.
-- set date = `sccs prs -r$rev $file | @AWK@ '/^D / {print (substr($3,0,2)+0<70?20:19) $3, $4; exit}'`
-+ set date = `sccs prs -r$rev $file | @AWK@ '/^D / {print (substr($3,1,2)+0<70?20:19) $3, $4; exit}'`
- set author = `sccs prs -r$rev $file | @AWK@ '/^D / {print $5; exit}'`
- echo ""
- echo "==> file $file, rev=$rev, date=$date, author=$author"
---- cvs-1.12.13+real.orig/debian/NEWS
-+++ cvs-1.12.13+real/debian/NEWS
-@@ -0,0 +1,88 @@
-+cvs (2:1.12.13+real-23) unstable; urgency=low
-+
-+ Starting from this version, environment variables that are
-+ defined but empty are handled the same as undefined ones,
-+ except CVSREAD and CVSREADONLYFS (whose mere presence in
-+ the environment enables the functionality).
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Fri, 28 Apr 2017 19:10:30 +0200
-+
-+cvs (2:1.12.13+real-22) unstable; urgency=low
-+
-+ Newly created repositories (from “cvs init”) now rely on
-+ CVSUMASK for the permissions of the “history” and “val-tags”
-+ files instead of creating them as world-writable.
-+
-+ Newly created repositories contain a LogHistory configuration
-+ setting to only record write operations in the “history” file.
-+
-+ If you are used to the previous behaviour, you can restore it
-+ by altering (or removing, in which case the (commented-out)
-+ default of logging everything will be used) the LogHistory
-+ configuration setting and changing the permissions on the
-+ “history” and “val-tags” files so that every user can write
-+ into them.
-+
-+ If you did not deliberately open your repository to all users
-+ on your system, you might wish to change all existing repos
-+ to this behaviour. To do this, check out the CVSROOT module,
-+ edit the “config” file adding “LogHistory=TMAR”, check that
-+ change in, release the CVSROOT module, and chmod the “history”
-+ and “val-tags” files to either 0664 (if all users in the same
-+ group should be able to commit) or 0644 (if only you wish to
-+ commit), possibly 0660 or 0600 is non-committers should also
-+ be denied reading.
-+
-+ Contact me (mirabilos) in #cvs on irc.freenode.net if you have
-+ any questions about this change or require further support.
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Tue, 28 Mar 2017 19:54:01 +0200
-+
-+cvs (2:1.12.13+real-7) unstable; urgency=high
-+
-+ rcs2log no longer lives in the PATH, the contributed script
-+ and its manpage are in /usr/share/cvs/contrib/rcs2log now.
-+
-+ Some contrib files (and their documentation) are no longer
-+ shipped with the binary package (antique, insecure, useless).
-+
-+ -rHEAD in "cvs diff" now, consistently with all other cvs
-+ subcommands, means "tip of the trunk (MAIN branch)"; to
-+ access the tip of the another branch, use its name; as a
-+ compatibility aid, -r.bhead (only in diff) points to the
-+ tip of the sticky branch.
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Sun, 04 Dec 2011 20:10:09 +0000
-+
-+cvs (2:1.12.13+real-5) unstable; urgency=low
-+
-+ This cvs package is a totally new packaging and has almost
-+ nothing in common with what was in Debian before. The most
-+ visible changes are outlined below:
-+
-+ pserver is no longer officially supported; the cvs package
-+ does not install any service, inetd, or something similar.
-+ If you want to set up a CVS server, use SSH, as shown in:
-+ * http://www.stremler.net/Code/cvs_tricks/cvs-over-ssh.html
-+ * http://www.stremler.net/Code/cvs_tricks/cvs-over-ssh-advanced.html
-+ * http://www.stremler.net/Code/cvs_tricks/cvs-over-ssh-advanced2.html
-+
-+ Consequentially, PAM is also no longer supported, and this
-+ package does not set up or manage any repositories; that's
-+ the system administrator's job now.
-+
-+ For running "cvs admin" tasks the user must be a member of
-+ the new "_cvsadmin" system group, or the repository be set
-+ up (UserAdminOptions in CVSROOT/config) to allow everyone.
-+
-+ The date format for $Id$ and similar in checkouts has been
-+ switched back from ISO 8601 to the standard RCS format, to
-+ keep checksums over checkouts/exports consistent. This, as
-+ well as the fact that only the :local: and :extssh: access
-+ methods are officially supported, is not negotiable.
-+
-+ Please direct feature requests upstream, not to the BTS. I
-+ do quite an amount of hacking CVS, but prefer to care only
-+ about the packaging bits with "full power" in Debian.
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Sat, 11 Jun 2011 05:01:49 +0000
---- cvs-1.12.13+real.orig/debian/changelog
-+++ cvs-1.12.13+real/debian/changelog
-@@ -0,0 +1,294 @@
-+cvs (2:1.12.13+real-26) unstable; urgency=low
-+
-+ * Policy 4.1.3 (no changes)
-+ * Debhelper 11, prompted by lintian…
-+ * Update VCS-* to new repository caused by Alioth deprecation
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Fri, 05 Jan 2018 20:06:42 +0100
-+
-+cvs (2:1.12.13+real-25) unstable; urgency=low
-+
-+ * Update from MirBSD (0AB8.4)
-+ - support LOGM response
-+ * Policy 4.1.1 (no changes)
-+ * Use “?=” in debian/rules for dpkg-architecture fields (lintian)
-+ * Update watch file
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Sun, 19 Nov 2017 18:10:56 +0100
-+
-+cvs (2:1.12.13+real-24) unstable; urgency=high
-+
-+ * Update from MirBSD
-+ - fix for CVE-2017-12836 (Closes: #871810)
-+ - more robust $CVSROOT parsing
-+ * Policy 4.0.1
-+ - add nodoc build option
-+ ‣ I’m unclear on how this mixes with build profiles and/or
-+ Build-Depends exclusion; should I exclude ghostscript,
-+ groff, texinfo, texlive-* with <!nodocs> now, or are
-+ DEB_BUILD_OPTIONS=nodoc and the profile independent of
-+ each other? Info and patches welcome.
-+ * Drop explicit (thus redundant) autotools-dev B-D (lintian)
-+ * Update lintian overrides
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Sat, 12 Aug 2017 22:18:41 +0200
-+
-+cvs (2:1.12.13+real-23) unstable; urgency=low
-+
-+ * Improve documentation:
-+ - on CVSREADONLYFS
-+ - regarding the formerly world-writable files
-+ - fix typos, thanks lintian
-+ * Remove testsuite logfiles on clean properly
-+ * With most environment variables, handle them being defined but
-+ empty as undefined, not enabled (fixes the testsuite creating
-+ spurious ~/.in and ~/.out files); exceptions:
-+ - CVS_PASSWORD (just triggers an error, as previously)
-+ - CVSREAD, CVSREADONLYFS (mere presence enables them)
-+ Note this in the Debian NEWS file
-+ * Fix some spelling in the/and comments
-+ * Emit better errors when multiple LogHistory config options occur
-+ * Fix some corner cases in the testsuite
-+ * Repair the noredirect-writeproxy testsuite mode
-+ * Apply the OpenBSD patch for flowcontrol with fast HDD and slow network
-+ * Override a false positive lintian warning
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Fri, 28 Apr 2017 21:33:27 +0200
-+
-+cvs (2:1.12.13+real-22) unstable; urgency=low
-+
-+ * cvs init: Change default history logging configuration
-+ to only log write operations by adding “LogHistory=TMAR”
-+ * Testsuite: Alter to cope with this explicit option
-+ * cvs init: Rely on CVSUMASK for history and val-tags files
-+ in newly created repositories (Closes: #858769)
-+ * Add a NEWS.Debian entry verbosely documenting this change
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Tue, 28 Mar 2017 20:01:39 +0200
-+
-+cvs (2:1.12.13+real-21) unstable; urgency=medium
-+
-+ [ Sylvain Beucler ]
-+ * Add --allow-root-regexp option, for Savannah
-+
-+ [ Thorsten Glaser ]
-+ * Always add --build=/--host= to avoid config.guess being too smart
-+ * Fix testsuite for --allow-root-regexp in the “deny” case
-+ * Some minor documentation fixes (wording and formatting)
-+ * Remove unnecessary autopoint from Build-Depends; optimise them
-+ * Harmonise PDF version 1.4 across all generated PDFs
-+ * Generate all PDFs using the PA4 paper size (prints on Letter and A4)
-+ * Disable parallel build because the testsuite is not safe
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Mon, 09 Jan 2017 23:19:38 +0000
-+
-+cvs (2:1.12.13+real-20) unstable; urgency=low
-+
-+ * Do not spew into syslog when 'cvs pserver' is called from a tty
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Wed, 09 Nov 2016 04:17:18 +0100
-+
-+cvs (2:1.12.13+real-19) unstable; urgency=low
-+
-+ * Update from MirBSD CVS:
-+ - Fix some spelling mistakes
-+ - Greatly improve the manpage introduction (even going so far
-+ as to add a “how not to be totally lost in info” section)
-+ - Improve documentation cross-references
-+ - Apply TCP_NODELAY patch from CVS mailing list
-+ * Switch (experimentally) to debhelper compat 10
-+ * Enhances cvs2svn (>= 2.4.0-4~) as it’s added relevant patches
-+ * Make cross-buildable (Closes: #842847)
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Tue, 08 Nov 2016 23:22:39 +0000
-+
-+cvs (2:1.12.13+real-18) unstable; urgency=low
-+
-+ [ esr ]
-+ * Correct a bug in the manpage
-+
-+ [ Sergei Trofimovich ]
-+ * Fix a memory leak
-+
-+ [ Thorsten Glaser ]
-+ * Several sanity and getdate fixes
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Sun, 23 Oct 2016 00:34:10 +0200
-+
-+cvs (2:1.12.13+real-17) unstable; urgency=medium
-+
-+ * Fix a use-after-free bug
-+ * Correctly use autoconf to detect long double
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Sat, 22 Oct 2016 05:42:39 +0200
-+
-+cvs (2:1.12.13+real-16) unstable; urgency=medium
-+
-+ * Take back the package (Closes: #764397)
-+ * Fix typo in changelog entry for cvs (2:1.12.13+real-9) and others
-+ * Bump Policy; no changes
-+ * Update code with bugfixes from MirBSD 0AB7.2 (Closes: #839669)
-+ * Actually use correct getdate implementation
-+ * groff now needs an explicit ghostscript dependency for ps2pdf
-+ * Remove stuff unnecessary with dh-autoreconf
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Sat, 22 Oct 2016 02:58:34 +0200
-+
-+cvs (2:1.12.13+real-15) unstable; urgency=low
-+
-+ * QA upload.
-+ * Orphan the package.
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Tue, 07 Oct 2014 17:58:58 +0000
-+
-+cvs (2:1.12.13+real-14) unstable; urgency=low
-+
-+ * debian/control: Move VCS-* fields to Alioth collab-maint git
-+ * Remove now-useless RCS IDs
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Tue, 08 Jul 2014 16:10:54 +0200
-+
-+cvs (2:1.12.13+real-12) unstable; urgency=medium
-+
-+ * Add texlive-fonts-recommended B-D (thanks Norbert Preining)
-+ to fix FTBFS in sid (thanks Daniel Schepler) (Closes: #739138)
-+ * Policy 3.9.5 (no changes AFAICT)
-+ * Check distfile with upstream signing key (thanks lintian)
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Sun, 16 Feb 2014 14:07:36 +0000
-+
-+cvs (2:1.12.13+real-11) unstable; urgency=medium
-+
-+ * Add workaround for eglibc crypt(3) returning NULL
-+ * If DEB_BUILD_OPTIONS contains “sanity” run testsuite after build
-+ * Drop obsolete texi2html B-D (thanks lintian) that was unused anyway
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Thu, 18 Jul 2013 21:52:12 +0000
-+
-+cvs (2:1.12.13+real-10) unstable; urgency=low
-+
-+ [ Daniel Schepler ]
-+ * Use dh-autoreconf to regenerate configure script and avoid unnecessary
-+ compilation of mktime.c, which doesn't work on x32 as is.
-+ * Add texlive-latex-recommended to fix just another FTBFS
-+
-+ [ Thorsten Glaser ]
-+ * Do not compress *.pdf files (cf. #704093)
-+ * Allow root to commit
-+ * Policy 3.9.4
-+ * Make cvs.texinfo compatible with newer makeinfo (Closes: #711298)
-+ * Actually use a fixed mktime.m4 (Closes: #698908)
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Wed, 26 Jun 2013 19:40:39 +0000
-+
-+cvs (2:1.12.13+real-9) unstable; urgency=low
-+
-+ * Fix watch file: mangle Epoch away, too
-+ * Remove old conffile /etc/pam.d/cvs (Closes: #669957)
-+ * Policy 3.9.3 (no changes)
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Sun, 22 Apr 2012 15:10:16 +0000
-+
-+cvs (2:1.12.13+real-8) unstable; urgency=high
-+
-+ * Brown paper bag change: sanity.sh (the testsuite) was corrupted
-+ during checkout of the packaging VCS in the -7 (all PASS again)
-+ * Bonus change: use hardening build flags; fix resulting warnings
-+ * Urgency due to riding on the previous upload’s security fix
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Tue, 07 Feb 2012 20:39:42 +0000
-+
-+cvs (2:1.12.13+real-7) unstable; urgency=high
-+
-+ * Drop unsafe scripts from contrib, add NEWS entry for that
-+ (Closes: #658947)
-+ * debian/rules: cleanup (remove install/check, dh_installdirs;
-+ switch to dh_prep if extant)
-+ * Use -Wl,--as-needed for the link to appease dpkg-shlibdebs
-+ * Update maintainer scripts from template jupp (better comments)
-+ * Drop csh-using contrib script from package, with NEWS entry
-+ * Demote rcs2log(1) to contrib, add NEWS entry
-+ * Stop shipping a patch to rcs(1) with the binary package, ffs
-+ * Don’t ship cvshelp.man either, it’s antiquated and not useful
-+ * Fix meaning of -rHEAD for the diff subcommand (with NEWS entry)
-+ * Make the testsuite again usable (full PASS)
-+ * Apply suggested patch for CVE-2012-0804 from Petr Pisar
-+ * Update lintian overrides
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Tue, 07 Feb 2012 18:01:44 +0000
-+
-+cvs (2:1.12.13+real-6) unstable; urgency=low
-+
-+ * d/watch: mangle the +real away until 1.12.14 is out,
-+ as this is an artefact from the old (epoch 1) packaging
-+ * Demote mksh to Suggests, recommended (hah!) by many
-+ (Closes: #631110) (merges back
-+ 2:1.12.13+real-5debianderivatethatcannotbenamed1)
-+ * Honour Policy §11.4; fix by YOSHINO Yoshihito (Closes: #631936)
-+ * Use upstream-source-in-CVS packaging, clean up
-+ * d/rules: Add build-{arch,indep} targets as aliases to build
-+ * Bring d/copyright more in sync with this distfile’s reality
-+ * d/control: Reword package description. (Closes: #631826)
-+ * If sleeping at exit, sleep another 20 ms (2 HZ), to avoid
-+ possible race conditions. (Should work around LP: #12230)
-+ * Update in sync with MirPorts 1.12.13-12 = MirOS BSD 0AAF.1
-+ * Stop installing cvsbug(8), use reportbug instead
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Thu, 28 Jul 2011 16:02:02 +0000
-+
-+cvs (2:1.12.13+real-5) unstable; urgency=low
-+
-+ * Drop PAM entirely, it was specific to Debian anyway
-+ * Add cvs-switchroot, from src/scripts/mnt-cvsroot (Closes: #41685)
-+ * Drop some old and irrelevant changelogs from the binary package
-+ * Update from MirPorts 1.12.13-11 = MirOS BSD 0AAE.2
-+ * Revert most of 65_login_cvspass_message and just be silent if the
-+ pserver client password file doesn't exist and create it silently
-+ if needed (Closes: #524146)
-+ * Honour noexec flag in 'cvs -n init' (Closes: #151982)
-+ * Sync modules option list with cederqvist (Closes: #226888)
-+ * Apply patch for assert on negated version numbers on diff
-+ (Closes: #297551)
-+ From: Peter Moulder <Peter.Moulder@infotech.monash.edu.au>
-+ * Change cvs add dir message (Closes: #294094)
-+ * Accept port when using extssh connection method (Closes: #151882)
-+ * Write a new command for direct ,v file download (Closes: #421119)
-+ * Drop broken libbsd.fd.o headers and shut up gcc 4.6 warnings
-+ * Fix piuparts breakage: ignore delgroup non-existence on purge
-+ * Deliver a NEWS.Debian (Closes: #626106)
-+ * d/README.source: Update, call to automake is now also needed
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Sat, 11 Jun 2011 05:32:56 +0000
-+
-+cvs (2:1.12.13+real-4) unstable; urgency=low
-+
-+ * Renamed .orig.tar.gz due to archive pathname conflict
-+ * d/README.source: Document patch location (VCS-CVS, VCS-Browser alike)
-+ * New build from MirPorts 1.12.13-10 = MirOS BSD 0AAE.1
-+ - Contains changes from cvs
-+ (1:1.12.13-12debianderivatethatcannotbenamed1):
-+ + Apply fix from Kees Cook to avoid %n in writable memory (LP: #296453)
-+ - Other BTS relevant changes:
-+ + Allow CVSROOT-less “version” (LP: #97683) and “cvs version”
-+ + Update loginfo documentation, ‘%{t}’ is indeed gone (Closes: #329151)
-+ + Lower syslog level from emergency (Closes: #563856)
-+ + Fix awk substr start argument, thanks John Hughes (Closes: #518600)
-+ + Rename nodes with colons in them (Closes: #113809)
-+ + Fix typo (Closes: #464137)
-+ + Document missing rcs2log(1) options (Closes: #306354) and fix dashes
-+ * Upload new package to Debian unstable (Closes: #306432)
-+ (Closes: #458864) (Closes: #464134) (Closes: #479752)
-+ (Closes: #576035) (Closes: #614700) (Closes: #617578)
-+ - Drop PAM (Closes: #340984) (Closes: #393436)
-+ - No longer installs repositories (Closes: #168300)
-+ (Closes: #408117) (Closes: #482301) (Closes: #499790)
-+ (Closes: #511643) (Closes: #607297)
-+ - Deprecate pserver (Closes: #343169) (Closes: #495938)
-+ - Drop Origin and Bugs headers again (upload to Debian proper)
-+ and old (pre-Debian upload) private repo changelog entries
-+ - Thank you, Steve, for handing over package maintainership!
-+ * Clarify package description (LP: #377411)
-+ * Build with Kerberos V support (Closes: #60800) (LP: #157760)
-+ * Recommends: openssh-client; Suggests: rcs
-+
-+ -- Thorsten Glaser <tg@mirbsd.de> Sat, 07 May 2011 01:00:39 +0000
---- cvs-1.12.13+real.orig/debian/compat
-+++ cvs-1.12.13+real/debian/compat
-@@ -0,0 +1 @@
-+11
---- cvs-1.12.13+real.orig/debian/control
-+++ cvs-1.12.13+real/debian/control
-@@ -0,0 +1,41 @@
-+Source: cvs
-+Section: vcs
-+Priority: optional
-+Maintainer: Thorsten Glaser <tg@mirbsd.de>
-+Homepage: http://www.nongnu.org/cvs/
-+Build-Depends: debhelper (>= 11), bsdmainutils,
-+ ghostscript, groff, libbsd-dev, libkrb5-dev | heimdal-dev, procps,
-+ texinfo, texlive-latex-recommended, texlive-fonts-recommended, zlib1g-dev
-+Standards-Version: 4.1.3
-+VCS-git: https://evolvis.org/anonscm/git/alioth/cvs.git -b master
-+VCS-Browser: https://evolvis.org/plugins/scmgit/cgi-bin/gitweb.cgi?p=alioth/cvs.git;a=shortlog;h=refs/heads/master
-+
-+Package: cvs
-+Architecture: any
-+Multi-Arch: foreign
-+Depends: ${misc:Depends}, ${shlibs:Depends}, adduser,
-+ dpkg (>= 1.15.4) | install-info
-+Recommends: openssh-client
-+Suggests: mksh (>= 40~), rcs
-+Enhances: rcs, cvs2svn (>= 2.4.0-4~)
-+Replaces: cvs-doc
-+Conflicts: cvs-doc
-+Provides: cvs-doc
-+Description: Concurrent Versions System
-+ CVS is a version control system, which allows you to keep access
-+ to old versions of files (usually source code), keep a log of
-+ who, when, and why changes occurred, etc., like RCS or SCCS.
-+ It handles multiple developers, multiple directories, triggers to
-+ enable/log/control various operations, and can work over a wide
-+ area network. The texinfo manual provides further information on
-+ more tasks that it can perform.
-+ .
-+ There are some tasks that are not covered by CVS. They can be done in
-+ conjunction with CVS but will tend to require some script-writing and
-+ software other than CVS. These tasks are bug-tracking, build management
-+ (that is, make and make-like tools), and automated testing. However,
-+ CVS makes these tasks easier.
-+ .
-+ This package contains a CVS binary which can act as both client and
-+ server, although there is no CVS dæmon; to access remote repositories,
-+ please use :extssh: not :pserver: any more.
---- cvs-1.12.13+real.orig/debian/copyright
-+++ cvs-1.12.13+real/debian/copyright
-@@ -0,0 +1,117 @@
-+This package was debianised by Thorsten Glaser <tg@mirbsd.de> on
-+Wed Sep 15 21:52:29 UTC 2010.
-+
-+It was downloaded from:
-+http://ftp.gnu.org/non-gnu/cvs/source/feature/1.12.13/cvs-1.12.13.tar.gz
-+
-+
-+GNU CVS itself is Copyright © 1986-2005
-+ The Free Software Foundation, Inc.
-+with portions contributed by others.
-+
-+It is licenced under the GNU General Public License, version 2 or later,
-+with a good part available under either GPLv1 or LGPLv2.x. On Debian sy‐
-+stems the licence can be found at: /usr/share/common-licenses/GPL-2
-+
-+Parts of the code are covered by the following GPL-compatible copyright:
-+
-+ * Copyright (c) 1993 Bob Withers
-+ * All Rights Reserved
-+ *
-+ * Permission to use, copy, modify, and distribute this software and
-+ * its documentation for any purpose and without fee is hereby granted
-+ * provided that the above copyright notice appears in all copies and
-+ * that both the copyright notice and this permission notice appear in
-+ * supporting documentation.
-+
-+One header file, which almost certainly does not fall under copyright
-+law, is covered by the four-clause UCB licence, however in 1999 the
-+advertising clause was rescinded, so it’s GPL compatible now:
-+
-+ * Copyright (c) 1989 The Regents of the University of California.
-+ * All rights reserved.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ * 1. Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in the
-+ * documentation and/or other materials provided with the distribution.
-+ * 3. All advertising materials mentioning features or use of this software
-+ * must display the following acknowledgement:
-+ * This product includes software developed by the University of
-+ * California, Berkeley and its contributors.
-+ * 4. Neither the name of the University nor the names of its contributors
-+ * may be used to endorse or promote products derived from this software
-+ * without specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-+ * SUCH DAMAGE.
-+
-+Parts and the packaging are covered by the following GPL-compatible licence:
-+
-+# Copyright © 2005, 2008, 2011, 2017
-+# mirabilos <m@mirbsd.org>
-+#
-+# Provided that these terms and disclaimer and all copyright notices
-+# are retained or reproduced in an accompanying document, permission
-+# is granted to deal in this work without restriction, including un‐
-+# limited rights to use, publicly perform, distribute, sell, modify,
-+# merge, give away, or sublicence.
-+#
-+# This work is provided “AS IS” and WITHOUT WARRANTY of any kind, to
-+# the utmost extent permitted by applicable law, neither express nor
-+# implied; without malicious intent or gross negligence. In no event
-+# may a licensor, author or contributor be held liable for indirect,
-+# direct, other damage, loss, or other issues arising in any way out
-+# of dealing in the work, even if advised of the possibility of such
-+# damage or existence of a defect, except proven that it results out
-+# of said person’s immediate fault when using the work as intended.
-+
-+CVS also includes a convenience copy of zlib which is not used;
-+it’s covered by these (GPL-compatible) terms:
-+
-+ Copyright (C) 1995-2005 Jean-loup Gailly and Mark Adler
-+
-+ This software is provided 'as-is', without any express or implied
-+ warranty. In no event will the authors be held liable for any damages
-+ arising from the use of this software.
-+
-+ Permission is granted to anyone to use this software for any purpose,
-+ including commercial applications, and to alter it and redistribute it
-+ freely, subject to the following restrictions:
-+
-+ 1. The origin of this software must not be misrepresented; you must not
-+ claim that you wrote the original software. If you use this software
-+ in a product, an acknowledgment in the product documentation would be
-+ appreciated but is not required.
-+ 2. Altered source versions must be plainly marked as such, and must not be
-+ misrepresented as being the original software.
-+ 3. This notice may not be removed or altered from any source distribution.
-+
-+zlib, again, contains contributed material under terms as those:
-+
-+ * Copyright (c) 1997
-+ * Christian Michelsen Research AS
-+ * Advanced Computing
-+ * Fantoftvegen 38, 5036 BERGEN, Norway
-+ * http://www.cmr.no
-+ *
-+ * Permission to use, copy, modify, distribute and sell this software
-+ * and its documentation for any purpose is hereby granted without fee,
-+ * provided that the above copyright notice appear in all copies and
-+ * that both that copyright notice and this permission notice appear
-+ * in supporting documentation. Christian Michelsen Research AS makes no
-+ * representations about the suitability of this software for any
-+ * purpose. It is provided "as is" without express or implied warranty.
---- cvs-1.12.13+real.orig/debian/cvs-switchroot
-+++ cvs-1.12.13+real/debian/cvs-switchroot
-@@ -0,0 +1,99 @@
-+#!/bin/mksh
-+# $MirOS: src/scripts/mnt-cvsroot,v 1.19 2016/10/21 21:09:59 tg Exp $
-+#-
-+# Copyright © 2005, 2008, 2011
-+# mirabilos <m@mirbsd.org>
-+#
-+# Provided that these terms and disclaimer and all copyright notices
-+# are retained or reproduced in an accompanying document, permission
-+# is granted to deal in this work without restriction, including un‐
-+# limited rights to use, publicly perform, distribute, sell, modify,
-+# merge, give away, or sublicence.
-+#
-+# This work is provided “AS IS” and WITHOUT WARRANTY of any kind, to
-+# the utmost extent permitted by applicable law, neither express nor
-+# implied; without malicious intent or gross negligence. In no event
-+# may a licensor, author or contributor be held liable for indirect,
-+# direct, other damage, loss, or other issues arising in any way out
-+# of dealing in the work, even if advised of the possibility of such
-+# damage or existence of a defect, except proven that it results out
-+# of said person’s immediate fault when using the work as intended.
-+#-
-+# Change CVSROOT of a checked out tree (and save space with it)
-+# With option -T: change Tag instead of Root
-+
-+me=${0##*/}
-+function die {
-+ print -ru2 -- "$me: $*"
-+ exit 1
-+}
-+
-+if [[ $1 = -T ]]; then
-+ tagmode=-T
-+ fn=Tag
-+ shift
-+else
-+ tagmode=
-+ fn=Root
-+fi
-+newroot=$1
-+useroot=0
-+if [[ $newroot = - ]]; then
-+ shift
-+ newroot=$(realpath "$1")
-+ [[ -d $newroot ]] && if [[ -d $newroot/CVS ]]; then
-+ newroot=$newroot/CVS/$fn
-+ else
-+ newroot=$newroot/$fn
-+ fi
-+ useroot=1
-+fi
-+if [[ -z $newroot || $newroot = -? ]]; then
-+ print -u2 "Syntax: $me newroot [dir [...]]"
-+ print -u2 "\t$me - .../CVS/Root [dir [...]]"
-+ print -u2 "\t$me -T - .../CVS/Tag [dir [...]]"
-+ exit 1
-+fi
-+shift
-+
-+[[ -n $1 ]] || set -- .
-+
-+# realpath(2)ise arguments
-+set -A arg
-+i=0
-+for name in "$@"; do
-+ arg[i++]=$(realpath "$name")
-+done
-+
-+T="$(mktemp ${arg[0]}/$me.XXXXXXXXXX)" || die fatal: cannot mktemp
-+
-+if (( useroot )); then
-+ rm -f "$T"
-+ ln "$newroot" "$T" || cp "$newroot" "$T" || \
-+ die "fatal: cannot copy '$newroot' to temporary '$T'"
-+fi
-+
-+trap 'rm -f "$T"; exit 0' 0
-+trap 'rm -f "$T"; trap - EXIT; exit 1' 1 2 3 5 13 15
-+
-+if (( !useroot )); then
-+ chmod 664 "$T"
-+ print -r -- "$newroot" >"$T"
-+fi
-+
-+let rv=0
-+find "${arg[@]}" -path \*/CVS/$fn -print0 |&
-+while IFS= read -d '' -pr name; do
-+ rm "$name" || die "error: cannot rm <$name>"
-+ ln -f "$T" "$name" || if ! U="$(mktemp ${arg[0]}/$me.XXXXXXXXXX)"; then
-+ cp "$T" "$name"
-+ elif cat "$T" >"$U" && ln -f "$U" "$name"; then
-+ rm -f "$T"
-+ T="$U"
-+ else
-+ rm -f "$U"
-+ cp "$T" "$name"
-+ fi
-+done
-+
-+exit 0
---- cvs-1.12.13+real.orig/debian/cvs-switchroot.1
-+++ cvs-1.12.13+real/debian/cvs-switchroot.1
-@@ -0,0 +1,76 @@
-+.Dd June 10, 2011
-+.Dt CVS\-SWITCHROOT 1
-+.Os
-+.Sh NAME
-+.Nm cvs\-switchroot
-+.Nd change repository or tag in a cvs working copy
-+.Sh SYNOPSIS
-+.Nm
-+.Op Fl T
-+.Ar newroot
-+.Op Ar
-+.Pp
-+.Nm
-+.Op Fl T
-+\-\&
-+.Ar srcpath
-+.Op Ar
-+.Sh DESCRIPTION
-+The
-+.Nm
-+utility manipulates a CVS working copy directly,
-+modifying the information stored in the administrative
-+subdirectory and saving space by hardlinking if possible.
-+.Pp
-+If the
-+.Fl T
-+option is given, the sticky tag is operated on,
-+otherwise, the repository path
-+.Pq Ev CVSROOT .
-+.Pp
-+The information (Tag or Root) is set to the same as in
-+.Ar srcpath
-+if the first non-option argument
-+.Ar newroot
-+is a sole dash
-+.Pq Sq \-\& ,
-+the literal value
-+.Ar newroot
-+otherwise.
-+.Sh EXAMPLES
-+Change all
-+.Pa Root
-+information in the current sandbox to
-+.Pa /cvs :
-+.Bd -literal -offset ident
-+$ cvs-switchroot /cvs .
-+.Ed
-+.Pp
-+Set all roots in the current working directory and all
-+its subdirectories to the
-+.Pa Root
-+of the parent directory:
-+.Bd -literal -offset ident
-+$ cvs-switchroot \- .. .
-+.Ed
-+.Pp
-+Hardlink the
-+.Pa Tag
-+information in the current working directory, for example
-+.Pa /usr/src ,
-+and
-+.Pa /usr/ports
-+with each other:
-+.Bd -literal -offset ident
-+$ cvs-switchroot \-T \- . . /usr/ports
-+.Ed
-+.Sh SEE ALSO
-+.Xr cvs 1
-+.Sh HISTORY
-+.Nm
-+has existed in the MirBSD source tree since 2005.
-+It was added to Debian's cvs package in 2011.
-+.Sh CAVEATS
-+.Nm
-+depends on
-+.Nm mksh .
---- cvs-1.12.13+real.orig/debian/doc-base
-+++ cvs-1.12.13+real/debian/doc-base
-@@ -0,0 +1,21 @@
-+Document: cvs-doc
-+Title: Cederqvist - The CVS manual
-+Author: FSF, Derek R. Price, Ximbiot, Signum Support AB, and others
-+Abstract: This manual describes how to use and administer CVS.
-+ It is both a manual and a tutorial, as well as a reference guide,
-+ also known as The Cederqvist, and *the* book to read before using CVS.
-+Section: Programming
-+
-+Format: HTML
-+Index: /usr/share/doc/cvs/cvs.html
-+Files: /usr/share/doc/cvs/cvs.html*
-+
-+Format: Text
-+Files: /usr/share/doc/cvs/cvs.txt*
-+
-+Format: PDF
-+Files: /usr/share/doc/cvs/cvs.pdf*
-+
-+Format: Info
-+Index: /usr/share/info/cvs.info.gz
-+Files: /usr/share/info/cvs.info*
---- cvs-1.12.13+real.orig/debian/doc-base.client
-+++ cvs-1.12.13+real/debian/doc-base.client
-@@ -0,0 +1,18 @@
-+Document: cvs-doc-client
-+Title: CVS client/server protocol description
-+Abstract: This document describes the client/server protocol used by CVS.
-+Section: Programming
-+
-+Format: HTML
-+Index: /usr/share/doc/cvs/cvsclient.html
-+Files: /usr/share/doc/cvs/cvsclient.html*
-+
-+Format: Text
-+Files: /usr/share/doc/cvs/cvsclient.txt*
-+
-+Format: PDF
-+Files: /usr/share/doc/cvs/cvsclient.pdf*
-+
-+Format: Info
-+Index: /usr/share/info/cvsclient.info.gz
-+Files: /usr/share/info/cvsclient.info*
---- cvs-1.12.13+real.orig/debian/doc-base.faq
-+++ cvs-1.12.13+real/debian/doc-base.faq
-@@ -0,0 +1,10 @@
-+Document: cvs-doc-faq
-+Title: CVS - Frequently Asked Questions
-+Author: David Grubbs, Dr. Pascal Molli, and others
-+Abstract: Packaged FAQ-O-MATIC dump containing a number of answers
-+ to frequently asked questions about CVS. The document may be out of
-+ date; http://ximbiot.com/cvs/wiki/CVS%20FAQ contains an updated version.
-+Section: Programming
-+
-+Format: Text
-+Files: /usr/share/doc/cvs/FAQ*
---- cvs-1.12.13+real.orig/debian/doc-base.intro
-+++ cvs-1.12.13+real/debian/doc-base.intro
-@@ -0,0 +1,7 @@
-+Document: cvs-doc-intro
-+Title: Introduction to using CVS
-+Author: Steven Pemberton <Steven.Pemberton@cwi.nl>
-+Section: Programming
-+
-+Format: Text
-+Files: /usr/share/cvs/contrib/intro.doc*
---- cvs-1.12.13+real.orig/debian/doc-base.paper
-+++ cvs-1.12.13+real/debian/doc-base.paper
-@@ -0,0 +1,14 @@
-+Document: cvs-doc-paper
-+Title: CVS II: Parallelizing Software Development
-+Author: Brian Berliner <berliner@prisma.com>
-+Abstract: This paper is the cvs USENIX article, Winter 1990.
-+ The program described in this paper fills a need in the UNIX community
-+ for a freely available tool to manage software revision and release
-+ control in a multi-developer, multi-directory, multi-group environment.
-+ This tool also addresses the increasing need for tracking third-party
-+ vendor source distributions while trying to maintain local modifications
-+ to earlier releases.
-+Section: Programming
-+
-+Format: PDF
-+Files: /usr/share/doc/cvs/cvs-paper.pdf*
---- cvs-1.12.13+real.orig/debian/doc-base.rcsfiles
-+++ cvs-1.12.13+real/debian/doc-base.rcsfiles
-@@ -0,0 +1,11 @@
-+Document: cvs-doc-rcsfiles
-+Title: RCS file format description
-+Author: Jim Kingdon
-+Abstract: This file attempts to document the RCS file format (which is
-+ implemented by a great many tools, both free and non-free, both by
-+ calling GNU RCS and by reimplementing access to RCS files) in some
-+ standard separate from any one tool.
-+Section: Programming
-+
-+Format: Text
-+Files: /usr/share/doc/cvs/RCSFILES*
---- cvs-1.12.13+real.orig/debian/docs
-+++ cvs-1.12.13+real/debian/docs
-@@ -0,0 +1,20 @@
-+AUTHORS
-+BUGS
-+DEVEL-CVS
-+FAQ
-+HACKING
-+MINOR-BUGS
-+NEWS
-+PROJECTS
-+README
-+TODO
-+debian/builddir/doc/*.html
-+debian/builddir/doc/*.txt
-+debian/builddir/doc/cvs.pdf
-+debian/builddir/doc/cvsclient.pdf
-+debian/stagedir/clogs/ChangeLog.*
-+doc/HACKING.DOCS
-+doc/RCSFILES
-+doc/cvs-paper.ms
-+doc/cvs-paper.pdf
-+doc/writeproxy.rtf
---- cvs-1.12.13+real.orig/debian/info
-+++ cvs-1.12.13+real/debian/info
-@@ -0,0 +1 @@
-+debian/stagedir/usr/share/info/*.info
---- cvs-1.12.13+real.orig/debian/install
-+++ cvs-1.12.13+real/debian/install
-@@ -0,0 +1,11 @@
-+#contrib/cvs_acls.html usr/share/cvs/contrib/
-+contrib/descend.man usr/share/cvs/contrib/
-+contrib/descend.sh usr/share/cvs/contrib/
-+contrib/rcs2log.1 usr/share/cvs/contrib/
-+contrib/rcs2sccs.sh usr/share/cvs/contrib/
-+contrib/sandbox_status.man usr/share/cvs/contrib/
-+debian/cvs-switchroot usr/bin/
-+debian/lintian/cvs usr/share/lintian/overrides/
-+debian/stagedir/usr/bin/cvs usr/bin/
-+#debian/stagedir/usr/bin/cvsbug usr/bin/
-+debian/stagedir/usr/share/cvs/contrib/* usr/share/cvs/contrib/
---- cvs-1.12.13+real.orig/debian/lintian/cvs
-+++ cvs-1.12.13+real/debian/lintian/cvs
-@@ -0,0 +1,2 @@
-+# see #469523 for justification; even moreso with Policy §12.3
-+cvs: arch-dep-package-has-big-usr-share *
---- cvs-1.12.13+real.orig/debian/manpages
-+++ cvs-1.12.13+real/debian/manpages
-@@ -0,0 +1,4 @@
-+debian/cvs-switchroot.1
-+debian/stagedir/usr/share/man/man1/cvs.1
-+debian/stagedir/usr/share/man/man5/cvs.5
-+#debian/stagedir/usr/share/man/man8/cvsbug.8
---- cvs-1.12.13+real.orig/debian/postinst
-+++ cvs-1.12.13+real/debian/postinst
-@@ -0,0 +1,56 @@
-+#!/bin/sh
-+
-+set -e
-+
-+# This maintainer script can be called the following ways:
-+#
-+# * new-postinst "configure" [$most_recently_configured_version]
-+# The package is unpacked; all dependencies are unpacked and, when there
-+# are no circular dependencies, configured.
-+#
-+# * old-postinst "abort-upgrade" $new_version
-+# * conflictors-postinst "abort-remove" "in-favour" $package
-+# $new_version
-+# * postinst "abort-remove"
-+# * deconfigureds-postinst "abort-deconfigure" "in-favour"
-+# $failed_install_package $fip_version ["removing"
-+# $conflicting_package $cp_version]
-+# The package is unpacked; all dependencies are at least Half-Installed,
-+# previously been configured, and not removed. In some error situations,
-+# dependencies may not be even fully unpacked.
-+#
-+# * postinst "triggered" "${triggers[*]}"
-+# For trigger-only calls, i.e. if "configure" is not called.
-+
-+# upgrade case from Epoch 1 Debian CVS
-+nukes='/etc/cvs.conf /etc/cvs-cron.conf /etc/cvs-pserver.conf /etc/cron.weekly/cvs /etc/pam.d/cvs'
-+for x in $nukes; do
-+ test -e "$x" || continue
-+ rm -f $nukes
-+ test -x /usr/sbin/update-inetd && update-inetd --remove "^cvspserver"
-+ break
-+done
-+
-+case $1 in
-+configure)
-+ addgroup --force-badname --system _cvsadmin
-+ ;;
-+
-+abort-upgrade|abort-remove|abort-deconfigure)
-+ ;;
-+
-+triggered)
-+ ;;
-+
-+*)
-+ echo >&2 "postinst called with unknown subcommand '$1'"
-+ exit 1
-+ ;;
-+esac
-+
-+# dh_installdeb will replace this with shell code automatically
-+# generated by other debhelper scripts.
-+
-+#DEBHELPER#
-+
-+exit 0
---- cvs-1.12.13+real.orig/debian/postrm
-+++ cvs-1.12.13+real/debian/postrm
-@@ -0,0 +1,51 @@
-+#!/bin/sh
-+
-+set -e
-+
-+# This maintainer script can be called the following ways:
-+#
-+# * postrm "remove"
-+# * postrm "purge"
-+# * old-postrm "upgrade" $new_version
-+# * disappearers-postrm "disappear" $overwriter $o_version
-+# The package's files have been removed or replaced; only Essential pak-
-+# kages may be available; skip gracefully actions requiring Depends.
-+#
-+# * new-postrm "failed-upgrade" $old_version
-+# * new-postrm "failed-upgrade" $old_version $new_version # 1.18.5, stretch
-+# Called when 'old-postrm "upgrade"' fails; the new package is unpacked,
-+# Essential packages and Pre-Depends are available; the latter have been
-+# configured and never removed but may be Unpacked or Half-Configured.
-+#
-+# * new-postrm "abort-install" [$old_version]
-+# * new-postrm "abort-install" $old_version $new_version # 1.18.5, stretch
-+# * new-postrm "abort-upgrade" $old_version
-+# * new-postrm "abort-upgrade" $old_version $new_version # 1.18.5, stretch
-+# Called when preinst fails; package is not unpacked. Essential packages
-+# and (unpacked or Half-Configured) Pre-Depends are available.
-+
-+case $1 in
-+remove)
-+ ;;
-+
-+purge)
-+ rm -f /etc/cvs.conf /etc/cvs-cron.conf /etc/cvs-pserver.conf /etc/cron.weekly/cvs /etc/pam.d/cvs
-+ test -x /usr/sbin/update-inetd && update-inetd --remove "^cvspserver"
-+ (delgroup --system --only-if-empty _cvsadmin || :)
-+ ;;
-+
-+upgrade|disappear|failed-upgrade|abort-install|abort-upgrade)
-+ ;;
-+
-+*)
-+ echo >&2 "postrm called with unknown subcommand '$1'"
-+ exit 1
-+ ;;
-+esac
-+
-+# dh_installdeb will replace this with shell code automatically
-+# generated by other debhelper scripts.
-+
-+#DEBHELPER#
-+
-+exit 0
---- cvs-1.12.13+real.orig/debian/rules
-+++ cvs-1.12.13+real/debian/rules
-@@ -0,0 +1,181 @@
-+#!/usr/bin/make -f
-+
-+DEB_BUILD_ARCH?=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
-+DEB_HOST_ARCH?=$(shell dpkg-architecture -qDEB_HOST_ARCH)
-+DEB_BUILD_GNU_TYPE?=$(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
-+DEB_HOST_GNU_TYPE?=$(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
-+
-+# is ${CC} defined anywhere (other than implicit rules?)
-+ifneq (,$(findstring $(origin CC),default undefined))
-+# no - then default to gcc (or cross-gcc)
-+ifneq (${DEB_BUILD_ARCH},${DEB_HOST_ARCH})
-+CC= ${DEB_HOST_GNU_TYPE}-gcc
-+else
-+CC= gcc
-+endif
-+endif
-+
-+CONFIGURE_ENV:= CC='${CC}'
-+EXTRA_CFLAGS= -Wall -fno-strict-aliasing -Wformat
-+# addresses part of #698908
-+EXTRA_CFLAGS+= -fwrapv
-+# for now. uses are mostly checked.
-+EXTRA_CFLAGS+= -Wno-unused-result
-+EXTRA_CPPFLAGS= -D_GNU_SOURCE -DUSE_LIBBSD
-+
-+ifneq (,$(wildcard /usr/share/dpkg/buildflags.mk))
-+# dpkg-dev (>= 1.16.1~)
-+DEB_CFLAGS_MAINT_APPEND=${EXTRA_CFLAGS}
-+DEB_CPPFLAGS_MAINT_APPEND=${EXTRA_CPPFLAGS}
-+DEB_BUILD_MAINT_OPTIONS=hardening=+all
-+DPKG_EXPORT_BUILDFLAGS= Yes
-+include /usr/share/dpkg/buildflags.mk
-+else
-+# old-fashioned way to determine build flags
-+CFLAGS= -O$(if $(findstring noopt,${DEB_BUILD_OPTIONS}),0,2) -g
-+CFLAGS+= ${EXTRA_CFLAGS}
-+CPPFLAGS+= ${EXTRA_CPPFLAGS}
-+CONFIGURE_ENV+= CFLAGS='${CFLAGS}'
-+CONFIGURE_ENV+= CPPFLAGS='${CPPFLAGS}'
-+CONFIGURE_ENV+= LDFLAGS='${LDFLAGS}'
-+endif
-+
-+LIBS+= -lbsd
-+
-+CONFIGURE_ENV+= LIBS='${LIBS}'
-+CONFIGURE_ENV+= CSH=/bin/csh
-+
-+CONFIGURE_ARGS:= --build=${DEB_BUILD_GNU_TYPE} \
-+ --host=${DEB_HOST_GNU_TYPE} \
-+ --prefix=/usr \
-+ --infodir=/usr/share/info \
-+ --mandir=/usr/share/man \
-+ --sysconfdir=/etc \
-+ --disable-dependency-tracking \
-+ --disable-maintainer-mode \
-+ --disable-pam \
-+ --disable-nls \
-+ --enable-client \
-+ --enable-password-authenticated-client \
-+ --enable-server \
-+ --enable-proxy \
-+ --enable-case-sensitivity \
-+ --enable-encryption \
-+ --disable-lock-compatibility \
-+ --enable-rootcommit \
-+ --disable-old-info-format-support \
-+ --enable-config-override=no \
-+ --without-krb4 \
-+ --with-gssapi \
-+ --with-external-zlib \
-+ --with-rsh=ssh \
-+ --with-editor=/usr/bin/editor \
-+ --with-tmpdir=/var/tmp \
-+ --with-umask=002 \
-+ --with-cvs-admin-group=_cvsadmin
-+
-+MAKE_ARGS:= MAKEINFO=makeinfo
-+MAKE_ARGS+= MAKEINFOFLAGS=--no-split
-+
-+CLEANFILES:= autom4te.cache build-aux/config.guess \
-+ build-aux/config.sub cvs.spec debian/.*_stamp \
-+ debian/CVSTEMP debian/builddir debian/stagedir \
-+ doc/cvs-paper.pdf doc/cvs.1 doc/cvs.info* \
-+ doc/cvs.pdf doc/cvsclient.info* doc/cvsclient.pdf \
-+ doc/getdate-cvs.texi emx/Makefile os2/Makefile \
-+ vms/config.h windows-NT/config.h
-+
-+debian/.configure_stamp:
-+ dh_testdir
-+ -rm -rf ${CLEANFILES}
-+ cp /usr/share/misc/config.guess /usr/share/misc/config.sub build-aux/
-+ dh_autoreconf
-+ mkdir debian/builddir debian/stagedir
-+ cd debian/builddir && \
-+ env ${CONFIGURE_ENV} sh ../../configure ${CONFIGURE_ARGS}
-+ # generate PDF 1.4 by default
-+ ln -s ../../../build-aux/texinfo.tex debian/builddir/doc/texinfo-r.tex
-+ printf '%s\n' \
-+ '\pdfminorversion4\relax\pdfobjcompresslevel0\relax%' \
-+ '\input texinfo-r.tex' \
-+ >debian/builddir/doc/texinfo.tex
-+ @:>$@
-+
-+build-indep:
-+build build-arch: debian/.build_stamp
-+
-+debian/.build_stamp: debian/.configure_stamp
-+ dh_testdir
-+ cd debian/builddir && ${MAKE} ${MAKE_ARGS}
-+ifeq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
-+ cd debian/builddir && ${MAKE} -C doc ${MAKE_ARGS} doc html info pdf txt
-+endif
-+ifneq (,$(filter sanity,$(DEB_BUILD_OPTIONS)))
-+ # run the testsuite after build (DEB_BUILD_OPTIONS=sanity)
-+ # warning: this takes a *lot* of time!
-+ # idea: run this under Valgrind to take even more time ;)
-+ cd debian/builddir && ${MAKE} ${MAKE_ARGS} check
-+endif
-+ @:>$@
-+
-+clean:
-+ dh_testdir
-+ dh_autoreconf_clean
-+ -rm -rf ${CLEANFILES}
-+ dh_clean
-+
-+binary-indep:
-+
-+binary-arch: debian/.build_stamp
-+ dh_testdir
-+ dh_testroot
-+ if test -x "$$(which dh_prep)"; then dh_prep; else dh_clean -k; fi
-+ -rm -rf debian/stagedir
-+ mkdir -p debian/stagedir/clogs
-+ cd debian/builddir && \
-+ ${MAKE} ${MAKE_ARGS} DESTDIR=${CURDIR}/debian/stagedir install
-+ cat ChangeLog ChangeLog.zoo >debian/stagedir/clogs/ChangeLog
-+ cat doc/ChangeLog doc/ChangeLog.fsf >debian/stagedir/clogs/ChangeLog.doc
-+ #cat lib/ChangeLog lib/ChangeLog.fsf >debian/stagedir/clogs/ChangeLog.lib
-+ #cat src/ChangeLog src/ChangeLog-97 src/ChangeLog-96 src/ChangeLog-9395 \
-+ # src/ChangeLog-9194 >debian/stagedir/clogs/ChangeLog.src
-+ cp src/ChangeLog debian/stagedir/clogs/ChangeLog.src
-+ cp contrib/ChangeLog debian/stagedir/clogs/ChangeLog.contrib
-+ cp diff/ChangeLog debian/stagedir/clogs/ChangeLog.diff
-+ #cp m4/ChangeLog debian/stagedir/clogs/ChangeLog.m4
-+ #cp man/ChangeLog debian/stagedir/clogs/ChangeLog.man
-+ #cp tools/ChangeLog debian/stagedir/clogs/ChangeLog.tools
-+ # fat and nonsensical to ship this
-+ rm -f debian/stagedir/usr/share/cvs/contrib/rcs-5.7-commitid.patch
-+ # uses csh
-+ rm -f debian/stagedir/usr/share/cvs/contrib/sccs2rcs
-+ # unsafe
-+ rm -f debian/stagedir/usr/share/cvs/contrib/commit_prep
-+ rm -f debian/stagedir/usr/share/cvs/contrib/cvs_acls
-+ rm -f debian/stagedir/usr/share/cvs/contrib/log
-+ rm -f debian/stagedir/usr/share/cvs/contrib/log_accum
-+ rm -f debian/stagedir/usr/share/cvs/contrib/mfpipe
-+ rm -f debian/stagedir/usr/share/cvs/contrib/rcslock
-+ # we ship cvs-switchroot(1) instead
-+ rm -f debian/stagedir/usr/share/cvs/contrib/newcvsroot
-+ dh_installchangelogs debian/stagedir/clogs/ChangeLog
-+ifneq (,$(filter nodoc,$(DEB_BUILD_OPTIONS)))
-+ # this will cause lintian warnings as it installs the doc-base files
-+endif
-+ dh_installdocs
-+ dh_install
-+ dh_installinfo
-+ dh_installman
-+ dh_link
-+ dh_strip
-+ dh_compress -X.pdf
-+ cd debian/cvs/usr/share/cvs/contrib && chmod +x descend.sh rcs2sccs.sh
-+ dh_fixperms
-+ dh_installdeb
-+ dh_shlibdeps
-+ dh_gencontrol
-+ dh_md5sums
-+ dh_builddeb -- -Zgzip -z9
-+
-+binary: binary-indep binary-arch
-+.PHONY: binary binary-arch binary-indep build build-arch build-indep clean
---- cvs-1.12.13+real.orig/debian/source.lintian-overrides
-+++ cvs-1.12.13+real/debian/source.lintian-overrides
-@@ -0,0 +1,16 @@
-+# desired method of keeping changes is as VCS working tree
-+cvs source: direct-changes-in-diff-but-no-patch-system *
-+
-+# not my fault
-+cvs source: source-contains-cvs-control-dir zlib/CVS
-+cvs source: source-contains-cvs-control-dir zlib/os2/CVS
-+cvs source: deprecated-configure-filename
-+
-+# not part of the binary package, and not legally a problem
-+cvs source: license-problem-gfdl-non-official-text doc/getdate-cvs.texi *
-+
-+# no, thanks
-+cvs source: no-dep5-copyright
-+
-+# too complex for now, requires ssh and rsync to localhost
-+cvs source: testsuite-autopkgtest-missing
---- cvs-1.12.13+real.orig/debian/source/format
-+++ cvs-1.12.13+real/debian/source/format
-@@ -0,0 +1 @@
-+1.0
---- cvs-1.12.13+real.orig/debian/upstream/signing-key.asc
-+++ cvs-1.12.13+real/debian/upstream/signing-key.asc
-@@ -0,0 +1,25 @@
-+-----BEGIN PGP PUBLIC KEY BLOCK-----
-+Version: GnuPG v1
-+
-+mQGiBD4u3XQRBACN7F6Ducb4gaJw7LJPCaNbk4+eW/EWjiC+aoJhnNocWGfeKM2d
-+NYRDPuyW6IqAmMPGBq0HAdSmi64BQg5mC8Q7NGujfzVDefACELuwQRUxFadbcAXn
-+1eGUHGsst93FFwlhY+SH3Yuo1plvNBnlMhDt9ylT3/s38zKG874+A44L4wCg/7fh
-+u0zqxFA0w22lXobhkKO4upED/0zA5BJ+d8brNLe6RpIQXTUzPxZ+UoU5RG9wlzv/
-+zabSS6eAPpmeoIPeKdSwRO/G0/f3Qn/vxDKVTqRzNKpusKJz8TS+gDBZSFjQ1L3U
-+TL6qh5kdnTy/yETg8wiUMXVaTqWtXP2eFEoHoto6dVP46BuULqQK980EmR6jg/ul
-+EGC/BACD5iO81tygsm6OBEu59hJ+GykU60+9Mzz1/qPYdejJmJkmdoJZWplJULGD
-+270nQlDarPJzMCpyrUzAZYdnmO6dwic/4hIxJENQ3GBrhbdr6YuuNgTxIXJJxTH7
-+qTJqRrHLw9Cvk1oPFYlzE2vQuDNlrqxXg/V06l4/ZJfotj3mI7RNRGVyZWsgUi4g
-+UHJpY2UgKEdldCBDVlMgU3VwcG9ydCBhdCA8aHR0cDovL3hpbWJpb3QuY29tPiEp
-+IDxkZXJla0B4aW1iaW90LmNvbT6IYQQTEQIAGQUCPi7ddAQLBwMCAxUCAwMWAgEC
-+HgECF4AAEgkQLD1OTBfyMaQHZUdQRwABAVEoAJ9o9E9Ya1dKUi1xRepkcpWqzjjt
-+OgCgqSQSvoBA3NLu8/US2RAb+Xn1vAK5AQ0EPi7dehAEAJgUmO0vNtZJj4qUyyFd
-+lw9wH9jQVRwblKxItr/0eO28ta+JOXWH668/wcyJFbVCulanS/o1crbq1bq3662Q
-+EiHaZuB4hUJHCmkrfnxSvyw+w3tvk1ByiWw4uhsIiYCLpq6h/w9Yv0bSXOctGWFv
-+/dnZw1f/N1PLU955Ze7hofVrAAMGA/9dw6G1LznEO2zjfTYHZtEKSlAtvRGqyOQc
-+7htMOXagUpPAF/KGHnBETWVyuEfNNW1c/EQ3LQi+L23q9u0L+cAcWiR4SBCejEII
-+3bFE3hPLGxfa0LamJrq0kkSDoYm6OWB4WNPSGBCSZywwdLnLjqXiCU1+rT6qZcvN
-+JEKFAJUOA4hOBBgRAgAGBQI+Lt16ABIJECw9TkwX8jGkB2VHUEcAAQE9AACfTWlS
-+/WpC3LgkF8rcbbap9M8U/RkAoL2DhkJHX3uYYJzagVUiWJffkLnR
-+=hls5
-+-----END PGP PUBLIC KEY BLOCK-----
---- cvs-1.12.13+real.orig/debian/watch
-+++ cvs-1.12.13+real/debian/watch
-@@ -0,0 +1,3 @@
-+version=3
-+opts="dversionmangle=s/^[0-9]+://;s/\+real$//,pgpsigurlmangle=s/$/.sig/" \
-+https://ftp.gnu.org/non-gnu/cvs/source/feature/([0-9.]*)/ cvs-([0-9.]*)\.tar\.gz
---- cvs-1.12.13+real.orig/diff/analyze.c
-+++ cvs-1.12.13+real/diff/analyze.c
-@@ -358,7 +358,7 @@
- else
- {
- int c;
-- struct partition part;
-+ struct partition part = { 0, 0, 0, 0 };
-
- /* Find a point of correspondence in the middle of the files. */
-
---- cvs-1.12.13+real.orig/diff/diff3.c
-+++ cvs-1.12.13+real/diff/diff3.c
-@@ -1439,14 +1439,13 @@
- int const mapping[3], rev_mapping[3];
- {
- int i;
-- int oddoneout;
-+ int oddoneout = 0;
- char *cp;
- struct diff3_block *ptr;
- int line;
- size_t length;
-- int dontprint;
-+ int dontprint = 0;
- static int skew_increment[3] = { 2, 3, 1 }; /* 0==>2==>1==>3 */
-- char const *line_prefix = tab_align_flag ? "\t" : " ";
-
- for (ptr = diff; ptr; ptr = D_NEXT (ptr))
- {
-@@ -1503,7 +1502,7 @@
- line = 0;
- do
- {
-- printf_output (line_prefix);
-+ printf_output (tab_align_flag ? "\t" : " ");
- cp = D_RELNUM (ptr, realfile, line);
- length = D_RELLEN (ptr, realfile, line);
- write_output (cp, length);
-@@ -1555,11 +1554,12 @@
- int leading_dot, start, num;
- {
- write_output (".\n", 2);
-- if (leading_dot)
-+ if (leading_dot) {
- if (num == 1)
- printf_output ("%ds/^\\.//\n", start);
- else
- printf_output ("%d,%ds/^\\.//\n", start, start + num - 1);
-+ }
- }
-
- /*
-@@ -1750,11 +1750,12 @@
- do
- {
- c = getc (infile);
-- if (c == EOF)
-+ if (c == EOF) {
- if (ferror (infile))
- diff3_perror_with_exit ("input file");
- else if (feof (infile))
- diff3_fatal ("input file shrank");
-+ }
- cc = c;
- write_output (&cc, 1);
- }
-@@ -1804,7 +1805,7 @@
- linesread += i;
- while (0 <= --i)
- while ((c = getc (infile)) != '\n')
-- if (c == EOF)
-+ if (c == EOF) {
- if (ferror (infile))
- diff3_perror_with_exit ("input file");
- else if (feof (infile))
-@@ -1813,6 +1814,7 @@
- diff3_fatal ("input file shrank");
- return conflicts_found;
- }
-+ }
- }
- /* Copy rest of common file. */
- while ((c = getc (infile)) != EOF || !(ferror (infile) | feof (infile)))
---- cvs-1.12.13+real.orig/diff/ifdef.c
-+++ cvs-1.12.13+real/diff/ifdef.c
-@@ -189,7 +189,7 @@
-
- default:
- {
-- int value;
-+ int value = 0;
- char *speclim;
-
- f = scan_printf_spec (spec);
-@@ -322,7 +322,7 @@
-
- default:
- {
-- int value;
-+ int value = 0;
- char *speclim;
-
- f = scan_printf_spec (spec);
---- cvs-1.12.13+real.orig/diff/side.c
-+++ cvs-1.12.13+real/diff/side.c
-@@ -122,7 +122,7 @@
- break;
-
- case '\b':
-- if (in_position != 0 && --in_position < out_bound)
-+ if (in_position != 0 && --in_position < out_bound) {
- if (out_position <= in_position)
- /* Add spaces to make up for suppressed tab past out_bound. */
- for (; out_position < in_position; out_position++)
-@@ -133,6 +133,7 @@
- cc = c;
- write_output (&cc, 1);
- }
-+ }
- break;
-
- case '\f':
---- cvs-1.12.13+real.orig/diff/util.c
-+++ cvs-1.12.13+real/diff/util.c
-@@ -235,7 +235,7 @@
- close (pipes[0]);
- }
-
-- execl (PR_PROGRAM, PR_PROGRAM, "-f", "-h", name, 0);
-+ execl (PR_PROGRAM, PR_PROGRAM, "-f", "-h", name, NULL);
- pfatal_with_name (PR_PROGRAM);
- }
- else
---- cvs-1.12.13+real.orig/doc/HACKING.DOCS
-+++ cvs-1.12.13+real/doc/HACKING.DOCS
-@@ -16,7 +16,9 @@
- @strong{ ... } Similar to @emph{}, but the effect is to
- bracket with asterisks in info files (* ... *)
- and in bold in PDF & probably in postscript &
-- HTML.
-+ HTML. It will cause spurious links in info if
-+ used in some circumstances; if in doubt, use
-+ @empy{ ... } instead then.
- @noindent Suppresses indentation of the following
- paragraph. This can ocassionally be useful
- after examples and the like.
-@@ -44,3 +46,6 @@
-
- For more on using texinfo docs, see the `info texinfo' documentation or
- http://www.gnu.org/manual/texinfo/texinfo.html .
-+
-+
-+$MirOS: src/gnu/usr.bin/cvs/doc/HACKING.DOCS,v 1.3 2010/09/19 19:42:52 tg Exp $
---- cvs-1.12.13+real.orig/doc/Makefile.am
-+++ cvs-1.12.13+real/doc/Makefile.am
-@@ -1,4 +1,5 @@
- ## Process this file with automake to produce Makefile.in
-+# $MirOS: src/gnu/usr.bin/cvs/doc/Makefile.am,v 1.5 2017/01/09 22:54:22 tg Exp $
- # Makefile for GNU CVS documentation (excluding man pages - see ../man).
- #
- # Copyright (C) 1986-2005 The Free Software Foundation, Inc.
-@@ -84,7 +85,7 @@
- # It is possible that an implicit .ms.ps target could be safely defined. I
- # don't recall looking into it.
- cvs-paper.ps: cvs-paper.ms
-- $(ROFF) -t -p -ms -Tps $(srcdir)/cvs-paper.ms >cvs-paper.ps-t
-+ $(ROFF) -t -p -ms -Tps -P-p28c,21c $(srcdir)/cvs-paper.ms >cvs-paper.ps-t
- cp cvs-paper.ps-t $@
- -@rm -f cvs-paper.ps-t
-
-@@ -92,8 +93,8 @@
- # Nothing in $(srcdir) be rebuilt, and this will always be rebuilt when it
- # is dependant on cvs-paper.ps and cvs-paper.ps isn't distributed.
- $(srcdir)/cvs-paper.pdf: cvs-paper.ms
-- $(ROFF) -t -p -ms -Tps $(srcdir)/cvs-paper.ms >cvs-paper.ps-t
-- ps2pdf cvs-paper.ps-t cvs-paper.pdf-t
-+ $(ROFF) -t -p -ms -Tps -P-p28c,21c $(srcdir)/cvs-paper.ms >cvs-paper.ps-t
-+ ps2pdf14 -sPAPERSIZE=pa4 cvs-paper.ps-t cvs-paper.pdf-t
- cp cvs-paper.pdf-t $@
- -@rm -f cvs-paper.pdf-t cvs-paper.ps-t
-
---- cvs-1.12.13+real.orig/doc/cvs-paper.ms
-+++ cvs-1.12.13+real/doc/cvs-paper.ms
-@@ -1,4 +1,5 @@
- .\" soelim cvs.ms | pic | tbl | troff -ms
-+.\" $MirOS: src/gnu/usr.bin/cvs/doc/cvs-paper.ms,v 1.3 2017/08/12 17:37:55 tg Exp $
- .\" @(#)cvs.ms 1.2 92/01/30
- .\"
- .\" troff source to the cvs USENIX article, Winter 1990, Washington, D.C.
-@@ -108,7 +109,7 @@
- .SM
- SCCS
- .LG
--[Bell] serialize file modifications by
-+[Bell] serialise file modifications by
- allowing only one developer to have a writable copy of a particular file at
- any one point in time.
- That developer is said to
-@@ -312,7 +313,7 @@
- the copy, and then merges the modified copy with the original.
- This paradigm allows developers to work in isolation from one another since
- changes are made to copies of objects.
--Because locks are not used, development is not serialized and can proceed
-+Because locks are not used, development is not serialised and can proceed
- in parallel.
- Developers, however, must merge objects after the changes have been made.
- In particular, a developer must resolve conflicts when the same object has
-@@ -853,7 +854,7 @@
- it has been checked out, takes only 1.5 wall clock minutes.
- Updating the \fIcomplete\fP 128 MByte source tree under \fBcvs\fP control
- (17243 files/1005 directories) takes roughly 28 wall clock minutes and
--utilizes one-third of the machine.
-+utilises one-third of the machine.
- For now this is entirely acceptable; improvements on these numbers will
- possibly be made in the future.
- .NH 2
-@@ -923,7 +924,7 @@
- .IP \(bu 3
- Security of the source repository is currently not dealt with directly.
- The usual UNIX approach of user-group-other security permissions through
--the file system is utilized, but nothing else.
-+the filesystem is utilised, but nothing else.
- \fBcvs\fP could likely be a set-group-id executable that checks a
- protected database to verify user access permissions for particular objects
- before allowing any operations to affect those objects.
---- cvs-1.12.13+real.orig/doc/cvs.man.footer
-+++ cvs-1.12.13+real/doc/cvs.man.footer
-@@ -1,3 +1,4 @@
-+.\" $MirOS: src/gnu/usr.bin/cvs/doc/cvs.man.footer,v 1.6 2017/01/08 19:42:05 tg Exp $
- .SH "AUTHORS"
- .TP
- Dick Grune
-@@ -26,15 +27,13 @@
- Have helped maintain
- .B cvs
- for many years.
--.TP
-+.PP
- And many others too numerous to mention here.
- .SH "SEE ALSO"
- The most comprehensive manual for CVS is
--Version Management with CVS by Per Cederqvist et al. Depending on
--your system, you may be able to get it with the
--.B info CVS
--command or it may be available as cvs.pdf (Portable Document Format),
--cvs.ps (PostScript), cvs.texinfo (Texinfo source), or cvs.html.
-+Version Management with CVS by Per Cederqvist et al. (see
-+.I NOTE
-+at top).
- .SP
- For CVS updates, more information on documentation, software related
- to CVS, development of CVS, and more, see:
-@@ -43,7 +42,6 @@
- .PD 0
- .IP "" 4
- .B http://www.nongnu.org/cvs/
--.in -1i
- .SP
- .BR ci ( 1 ),
- .BR co ( 1 ),
-@@ -54,5 +52,7 @@
- .BR patch ( 1 ),
- .BR rcs ( 1 ),
- .BR rcsdiff ( 1 ),
-+.BR rcsintro ( 1 ),
- .BR rcsmerge ( 1 ),
--.BR rlog ( 1 ).
-+.BR rlog ( 1 ),
-+.BR re_format ( 7 ).
---- cvs-1.12.13+real.orig/doc/cvs.man.header
-+++ cvs-1.12.13+real/doc/cvs.man.header
-@@ -1,3 +1,5 @@
-+.\" $MirOS: src/gnu/usr.bin/cvs/doc/cvs.man.header,v 1.6 2016/11/08 21:12:15 tg Exp $
-+.\"
- .\" This is the man page for CVS. It is auto-generated from the
- .\" cvs.man.header, cvs.texinfo, & cvs.man.footer files. Please make changes
- .\" there. A full copyright & license notice may also be found in cvs.texinfo.
-@@ -5,6 +7,7 @@
- .\" Man page autogeneration, including this header file, is
- .\" Copyright 2004-2005 The Free Software Foundation, Inc.,
- .\" Derek R. Price, & Ximbiot <http://ximbiot.com>.
-+.\" Copyright (c) 2004, 2010, 2012, 2016 mirabilos <m@mirbsd.org>.
- .\"
- .\" This documentation is free software; you can redistribute it and/or modify
- .\" it under the terms of the GNU General Public License as published by
-@@ -23,7 +26,9 @@
- .ds Rv \\$3
- .ds Dt \\$4
- ..
--.TH CVS 1 "\*(Dt"
-+.de IX
-+..
-+.TH CVS 1
- .\" Full space in nroff; half space in troff
- .de SP
- .if n .sp
-@@ -51,11 +56,82 @@
- .IX "release control system" "cvs command" "" "\fLcvs\fP \- concurrent versions system"
- .IX "source control system" "cvs command" "" "\fLcvs\fP \- concurrent versions system"
- .IX revisions "cvs command" "" "\fLcvs\fP \- source control"
--This manpage is a summary of some of the features of
--\fBcvs\fP. It is auto-generated from an appendix of the CVS manual.
--For more in-depth documentation, please consult the
--Cederqvist manual (via the
--.B info CVS
--command or otherwise,
--as described in the SEE ALSO section of this manpage). Cross-references
--in this man page refer to nodes in the same.
-+.\"
-+This manual page is a summary of parts of the \fBcvs\fP documentation
-+and automatically generated from an appendix of the CVS manual
-+(the \fICederqvist\fP), which is also the target of all cross-references
-+found in this manual page; please refer to the full CVS manual
-+for more in-depth documentation of the Concurrent Versions System.
-+.PP
-+If you're reading this manual page as part of the MirBSD online (HTML)
-+manual pages archive, follow the cvs(GNU) link to the Cederqvist
-+(and the cvsclient(GNU) link to the client/server protocol description,
-+if necessary).
-+.PP
-+If you installed
-+.B cvs
-+via the Debian or MirPorts Framework package management systems,
-+.br
-+.RS
-+.B /usr/mpkg/share/doc/cvs/cvs.pdf
-+(MirPorts Framework) or
-+.br
-+.B /usr/share/doc/cvs/cvs.pdf
-+(Debian), respectively,
-+.RE
-+are versions of the Cederqvist rendered as books, for printing
-+and reading on screen.
-+.PP
-+If you have a Texinfo reader such as
-+.B info
-+installed (part of the base system on MirBSD; part of the
-+.I info
-+package on Debian), you can read the Cederqvist by entering:
-+.br
-+.RS
-+.B info
-+.I cvs
-+.RE
-+.PP
-+Quick introduction to
-+.B info
-+so you aren't immediately lost:
-+.RS 4n
-+.TP 3n
-+.I arrow\ keys
-+to move on the page
-+.TP 3n
-+.I Tab
-+to move to the next hyperlink
-+.TP 3n
-+.I Return
-+to activate the hyperlink under the cursor
-+.TP 3n
-+.BI l \ (lowercase\ ell)
-+to go to the previously visited page
-+.TP 3n
-+.IB Page\ Up/ b,\ Page\ Down/Space
-+to move by screen pages, including advancing to the previous
-+(or next, respectively) section at the first (last) screen page
-+.TP 3n
-+.B p,\ n
-+to go to the previous (next) page on the current navigation hierarchy level
-+.TP 3n
-+.B t
-+to go to the "Top" page, i.e. the start of the document
-+.TP 3n
-+.BI / <search-term>Return
-+to start a search from the current cursor position and jump to the first result
-+.TP 3n
-+.BI / Return
-+to jump to the next result in an ongoing search
-+.TP 3n
-+.B q
-+to exit the
-+.B info
-+viewer
-+.RE
-+.PP
-+Other ways to read further documentation are described in the
-+.I SEE\ ALSO
-+section of this manual page.
---- cvs-1.12.13+real.orig/doc/cvs.texinfo
-+++ cvs-1.12.13+real/doc/cvs.texinfo
-@@ -1,6 +1,18 @@
- \input texinfo @c -*-texinfo-*-
- @comment Documentation for CVS.
- @setfilename cvs.info
-+@set MBSDPATCHLEVEL -MirOS-0AB8.1
-+@tex
-+ % set PA4 paper size (can print on both DIN ISO A4 and US Letter)
-+ \globaldefs = 1%
-+ \afourpaper%
-+ \internalpagesizes{46\baselineskip}{160mm}%
-+ {\voffset}{\hoffset}%
-+ {\bindingoffset}{36pt}%
-+ {28truecm}{21truecm}%
-+ \globaldefs = 0%
-+@end tex
-+@comment $MirOS: src/gnu/usr.bin/cvs/doc/cvs.texinfo,v 1.37 2017/11/18 22:37:49 tg Exp $
- @macro copyleftnotice
- @noindent
- Copyright @copyright{} 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-@@ -9,7 +21,11 @@
-
- @multitable @columnfractions .12 .88
- @item Portions
--@item @tab Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005
-+@item @tab Copyright @copyright{} 2003, 2004, 2005, 2007, 2009, 2010, 2011,
-+ 2013, 2014, 2015, 2016, 2017
-+ mirabilos, The MirOS Project
-+@item @tab Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-+ 2007
- Derek R. Price,
- @item @tab Copyright @copyright{} 2002, 2003, 2004, 2005
- Ximbiot @url{http://ximbiot.com},
-@@ -51,6 +67,15 @@
- @comment MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- @comment GNU General Public License for more details.
-
-+@comment It should be noted that the Texinfo manual is distributed
-+@comment under the above notice in all forms, except for the manpage
-+@comment generated from it, and that the manual and the source code
-+@comment of CVS often need to stay synchronised; therefore, exchanging
-+@comment between these three entities under these two licences seems
-+@comment to be granted, and the statement above can be interpreted as
-+@comment explicit dual-licence grant. As a major contributor to this
-+@comment documentation for MirBSD, I do not oppose. --mirabilos
-+
- @c See ../README for A4 vs. US letter size.
- @c When we provided A4 postscript, and people tried to
- @c print it on US letter, the usual complaint was that the
-@@ -103,7 +128,7 @@
- @end direntry
- @dircategory Individual utilities
- @direntry
--* cvs: (cvs)CVS commands. Concurrent Versions System
-+* cvs: (cvs)CVS command list. Concurrent Versions System
- @end direntry
-
- @comment The titlepage section does not appear in the Info file.
-@@ -111,12 +136,12 @@
- @sp 4
- @comment The title is printed in a large font.
- @center @titlefont{Version Management}
--@sp
-+@sp 1
- @center @titlefont{with}
--@sp
-+@sp 1
- @center @titlefont{CVS}
- @sp 2
--@center for @sc{cvs} @value{VERSION}
-+@center for @sc{cvs} @value{VERSION}@value{MBSDPATCHLEVEL}
- @comment -release-
- @sp 3
- @center Per Cederqvist et al
-@@ -141,13 +166,20 @@
- @node Top
- @top
-
-+@ifnotinfo
-+@anchor{Cederqvist}
-+@end ifnotinfo
- This info manual describes how to use and administer
--@sc{cvs} version @value{VERSION}.
-+@sc{cvs} version @value{VERSION}@value{MBSDPATCHLEVEL} and up.
- @end ifnottex
-
- @ifinfo
- @copyleftnotice
-+@anchor{Cederqvist}
- @end ifinfo
-+@iftex
-+@anchor{Cederqvist}
-+@end iftex
-
- @c This menu is pretty long. Not sure how easily that
- @c can be fixed (no brilliant ideas right away)...
-@@ -181,6 +213,7 @@
- * Troubleshooting:: Some tips when nothing works
- * Credits:: Some of the contributors to this manual
- * BUGS:: Dealing with bugs in CVS or this manual
-+* CVS command list:: Alphabetical list of all CVS commands
- * Index:: Index
- @end menu
-
-@@ -327,7 +360,7 @@
- you wind up requiring the entire repository to be
- checked out.
-
--If you modularize your work, and construct a build
-+If you modularise your work, and construct a build
- system that will share files (via links, mounts,
- @code{VPATH} in @file{Makefile}s, etc.), you can
- arrange your disk usage however you like.
-@@ -483,11 +516,11 @@
- As a way of introducing @sc{cvs}, we'll go through a
- typical work-session using @sc{cvs}. The first thing
- to understand is that @sc{cvs} stores all files in a
--centralized @dfn{repository} (@pxref{Repository}); this
-+centralised @dfn{repository} (@pxref{Repository}); this
- section assumes that a repository is set up.
- @c I'm not sure that the sentence concerning the
- @c repository quite tells the user what they need to
--@c know at this point. Might need to expand on "centralized"
-+@c know at this point. Might need to expand on "centralised"
- @c slightly (maybe not here, maybe further down in the example?)
-
- Suppose you are working on a simple compiler. The source
-@@ -742,7 +775,7 @@
- @c /home/joe/sources. But this node is too long
- @c as it is; need a little reorganization...
-
--@cindex :local:, setting up
-+@cindex local method, setting up
- @sc{cvs} can access a repository by a variety of
- means. It might be on the local computer, or it might
- be on a computer across the room or across the world.
-@@ -1037,10 +1070,6 @@
- if you want to allow read-only access to some directories
- (@pxref{config}).
-
--@c CVS seems to use CVSUMASK in picking permissions for
--@c val-tags, but maybe we should say more about this.
--@c Like val-tags gets created by someone who doesn't
--@c have CVSUMASK set right?
- @cindex CVSROOT/val-tags file, and read-only access to projects
- @cindex val-tags file, and read-only access to projects
- Also note that users must have write access to the
-@@ -1072,7 +1101,7 @@
- @c FIXME: Need more discussion of which
- @c group should own the file in the repository.
- @c Include a somewhat detailed example of the usual
--@c case where CVSUMASK is 007, the developers are all
-+@c case where CVSUMASK is 002, the developers are all
- @c in a group, and that group owns stuff in the
- @c repository. Need to talk about group ownership of
- @c newly-created directories/files (on some unices,
-@@ -1152,7 +1181,7 @@
- sure).
-
- If you are using local @sc{cvs} and the repository is on a
--networked file system which is served by the Samba SMB
-+networked filesystem which is served by the Samba SMB
- server, some people have reported problems with
- permissions. Enabling WRITE=YES in the samba
- configuration is said to fix/workaround it.
-@@ -1551,7 +1580,7 @@
- This file lists the files and directories in the
- working directory.
- The first character of each line indicates what sort of
--line it is. If the character is unrecognized, programs
-+line it is. If the character is unrecognised, programs
- reading the file should silently skip that line, to
- allow for future expansion.
-
-@@ -1780,7 +1809,7 @@
- @cindex CVSROOT, module name
- @cindex Defining modules (intro)
-
--@c FIXME: this node should be reorganized into "general
-+@c FIXME: this node should be reorganised into "general
- @c information about admin files" and put the "editing
- @c admin files" stuff up front rather than jumping into
- @c the details of modules right away. Then the
-@@ -1931,14 +1960,23 @@
- on what each developer uses).
-
- The repository should be accessible
--(directly or via a networked file system) from all
-+(directly or via a networked filesystem) from all
- machines which want to use @sc{cvs} in server or local
- mode; the client machines need not have any access to
- it other than via the @sc{cvs} protocol. It is not
--possible to use @sc{cvs} to read from a repository
-+normally possible to use @sc{cvs} to read from a repository
- which one only has read access to; @sc{cvs} needs to be
- able to create lock files (@pxref{Concurrency}).
-
-+If the environment variable @code{$CVSREADONLYFS} is defined,
-+however, CVS will allow read-only access without creating any
-+history entries or reader lock files. This allows doing most
-+usual repository operations except checkin in a fast way,
-+although if any other user is accessing the same data at the
-+same time, it may lead to corrupt data. This mode is best used
-+for publicly accessible anonymous CVS mirrors, not the main
-+working repository.
-+
- @cindex init (subcommand)
- To create a repository, run the @code{cvs init}
- command. It will set up an empty repository in the
-@@ -1954,9 +1992,18 @@
- you run @code{cvs init} on an already set-up
- repository.
-
--@code{cvs init} will enable history logging; if you
--don't want that, remove the history file after running
--@code{cvs init}. @xref{history file}.
-+The repository is created honouring the @code{$CVSUMASK}
-+setting (@pxref{CVSUMASK}), even the @file{history} and
-+@file{val-tags} files are not created world-writable any
-+more as in previous CVS versions. History logging is,
-+accordingly, configured to log write operations only; if
-+you don’t want that, edit or remove the @samp{LogHistory}
-+entry in the @file{config} file (@pxref{config}) and make
-+sure that all users who need to write that file can do so,
-+for example by using a @code{$CVSUMASK} of 002 (which is
-+also the default) and putting everyone into the same Unix
-+group (consider the security implications if you really
-+want to enable world-writable logging).
-
- @node Backing up
- @section Backing up a repository
-@@ -2103,6 +2150,9 @@
- * Write proxies:: Distributing load across several CVS servers
- @end menu
-
-+For the protocol specification,
-+@pxref{Top, the CVS client/server protocol,, cvsclient, The CVS client/server protocol}.
-+
- @node Server requirements
- @subsection Server requirements
-
-@@ -2236,7 +2286,7 @@
- through and @var{port} is the port number on the HTTP proxy server to connect
- via. @var{port} defaults to 8080.
-
--@strong{NOTE: An HTTP proxy server is not the same as a @sc{cvs} write proxy
-+@emph{NOTE: An HTTP proxy server is not the same as a @sc{cvs} write proxy
- server - please see @ref{Write proxies} for more on @sc{cvs} write proxies.}
-
- For example, to connect pserver via a web proxy listening on port 8000 of
-@@ -2246,7 +2296,7 @@
- :pserver;proxy=www.myproxy.net;proxyport=8000:@var{pserver_connection_string}
- @end example
-
--@strong{NOTE: In the above example, @var{pserver_connection_string} is still
-+@emph{NOTE: In the above example, @var{pserver_connection_string} is still
- required to connect and authenticate to the CVS server, as noted in the
- upcoming sections on password authentication, @code{gserver}, and
- @code{kserver}. The example above only demonstrates a modification to the
-@@ -2369,7 +2419,7 @@
- machine to the filename of the server you want to use,
- for example @file{/usr/local/bin/cvs-1.6}.
- For the @code{ext} and @code{fork} methods, you may
--also specify @var{CVS_SERVER} as an otpion in the
-+also specify @var{CVS_SERVER} as an option in the
- @var{CVSROOT} so that you may use different servers for
- differnt roots. See @ref{Remote repositories} for more
- details.
-@@ -2377,21 +2427,23 @@
- There is no need to edit @file{inetd.conf} or start a
- @sc{cvs} server daemon.
-
--@cindex :server:, setting up
--@cindex :ext:, setting up
-+@cindex server method, setting up
-+@cindex ext method, setting up
- @cindex Kerberos, using kerberized rsh
- @cindex SSH (rsh replacement)
- @cindex rsh replacements (Kerberized, SSH, &c)
- There are two access methods that you use in @code{CVSROOT}
- for rsh. @code{:server:} specifies an internal rsh
- client, which is supported only by some @sc{cvs} ports.
-+This is not supported on most Unix-style systems.
- @code{:ext:} specifies an external rsh program. By
- default this is @code{rsh} (unless otherwise specified
- by the @file{--with-rsh} flag to configure) but you may set the
- @code{CVS_RSH} environment variable to invoke another
- program which can access the remote server (for
- example, @code{remsh} on HP-UX 9 because @code{rsh} is
--something different). It must be a program which can
-+something different, or @code{ssh} to allow the use of secure
-+and/or compressed connections). It must be a program which can
- transmit data to and from the server without modifying
- it; for example the Windows NT @code{rsh} is not
- suitable since it by default translates between CRLF
-@@ -2405,6 +2457,12 @@
- to be inapplicable; consult the documentation for your rsh
- replacement.
-
-+In the Debian and MirBSD versions of @sc{cvs}, you can
-+also specify @code{:extssh:} to force use of the Secure
-+Shell, or @code{:ext=prog:} or @code{:ext=/path/to/prog:}
-+to specify the remote shell to use without needing to
-+touch the @code{CVS_RSH} environment variable.
-+
- You may choose to specify the @var{CVS_RSH} option as a method option
- in the @var{CVSROOT} string to allow you to use different connection tools
- for different roots (@pxref{The connection method}). For example, allowing
-@@ -2501,15 +2559,19 @@
- The @samp{--allow-root} option specifies the allowable
- @sc{cvsroot} directory. Clients which attempt to use a
- different @sc{cvsroot} directory will not be allowed to
--connect. If there is more than one @sc{cvsroot}
--directory which you want to allow, repeat the option.
-+connect. To allow a whole class of @sc{cvsroot}, specify
-+a POSIX extended regular expression to match allowed
-+directories with the @samp{--allow-root-regexp} option.
-+These options may be used in conjunction, and both options
-+may be repeated to allow access to multiple @sc{cvsroot}
-+directories and classes of directories.
- (Unfortunately, many versions of @code{inetd} have very small
- limits on the number of arguments and/or the total length
- of the command. The usual solution to this problem is
- to have @code{inetd} run a shell script which then invokes
- @sc{cvs} with the necessary arguments.)
-
-- If your @code{inetd} wants a symbolic service
-+If your @code{inetd} wants a symbolic service
- name instead of a raw port number, then put this in
- @file{/etc/services}:
-
-@@ -2675,7 +2737,7 @@
- (@code{info-cvs@@nongnu.org} or @code{bug-cvs@@nongnu.org}) if you use the
- @sc{cvs} PAM support.
-
--@strong{WARNING: Using PAM gives the system administrator much more
-+@emph{WARNING: Using PAM gives the system administrator much more
- flexibility about how @sc{cvs} users are authenticated but
- no more security than other methods. See below for more.}
-
-@@ -2776,7 +2838,7 @@
- @cindex Login (subcommand)
- @cindex Password client, using
- @cindex Authenticated client, using
--@cindex :pserver:, setting up
-+@cindex pserver method, setting up
- To run a @sc{cvs} command on a remote repository via
- the password-authenticating server, one specifies the
- @code{pserver} protocol, optional username, repository host, an
-@@ -2887,7 +2949,7 @@
- @c FIXME: The bit about "access to the repository
- @c implies general access to the system is *not* specific
- @c to pserver; it applies to kerberos and SSH and
--@c everything else too. Should reorganize the
-+@c everything else too. Should reorganise the
- @c documentation to make this clear.
- The separate @sc{cvs} password file (@pxref{Password
- authentication server}) allows people
-@@ -2940,8 +3002,8 @@
-
- @cindex GSSAPI
- @cindex Security, GSSAPI
--@cindex :gserver:, setting up
--@cindex Kerberos, using :gserver:
-+@cindex gserver method, setting up
-+@cindex Kerberos, using gserver method
- GSSAPI is a generic interface to network security
- systems such as Kerberos 5.
- If you have a working GSSAPI library, you can have
-@@ -2992,9 +3054,9 @@
- @node Kerberos authenticated
- @subsection Direct connection with Kerberos
-
--@cindex Kerberos, using :kserver:
-+@cindex Kerberos, using kserver method
- @cindex Security, Kerberos
--@cindex :kserver:, setting up
-+@cindex kserver method, setting up
- The easiest way to use Kerberos is to use the Kerberos
- @code{rsh}, as described in @ref{Connecting via rsh}.
- The main disadvantage of using rsh is that all the data
-@@ -3039,7 +3101,7 @@
- @subsection Connecting with fork
-
- @cindex fork, access method
--@cindex :fork:, setting up
-+@cindex fork method, setting up
- This access method allows you to connect to a
- repository on your local disk via the remote protocol.
- In other words it does pretty much the same thing as
-@@ -3065,7 +3127,7 @@
- cvs -d :fork:/usr/local/cvsroot checkout foo
- @end example
-
--@cindex CVS_SERVER, and :fork:
-+@cindex CVS_SERVER, and fork method
- As with @code{:ext:}, the server is called @samp{cvs}
- by default, or the value of the @code{CVS_SERVER}
- environment variable.
-@@ -3994,7 +4056,7 @@
- tag.
-
- @noindent
--@strong{WARNING: the commands in this section are
-+@emph{WARNING: the commands in this section are
- dangerous; they permanently discard historical
- information and it can be difficult or impossible to
- recover from errors. If you are a @sc{cvs}
-@@ -4024,7 +4086,7 @@
- trigger warnings and will not be deleted.
-
- @noindent
--@strong{WARNING: Moving branch tags is very dangerous! If you think
-+@emph{WARNING: Moving branch tags is very dangerous! If you think
- you need the @code{-B} option, think again and ask your @sc{cvs}
- administrator about it (if that isn't you). There is almost certainly
- another way to accomplish what you want to accomplish.}
-@@ -4055,7 +4117,7 @@
- name are ignored with a warning message.
-
- @noindent
--@strong{WARNING: Moving branch tags is very dangerous! If you think you
-+@emph{WARNING: Moving branch tags is very dangerous! If you think you
- need the @code{-B} option, think again and ask your @sc{cvs}
- administrator about it (if that isn't you). There is almost certainly
- another way to accomplish what you want to accomplish.}
-@@ -4257,7 +4319,7 @@
- @c until it is ready for the main trunk. The whole
- @c thing is generally speaking more akin to the
- @c "Revision management" node although it isn't clear to
--@c me whether policy matters should be centralized or
-+@c me whether policy matters should be centralised or
- @c distributed throughout the relevant sections.
- Suppose that release 1.0 of tc has been made. You are continuing to
- develop tc, planning to create release 1.1 in a couple of months. After a
-@@ -4904,7 +4966,7 @@
- directory need not change anything. Therefore, there
- is no conflict.
-
--@strong{WARNING: In versions of @sc{cvs} prior to 1.12.2, there was a
-+@emph{WARNING: In versions of @sc{cvs} prior to 1.12.2, there was a
- major problem with using @samp{-kk} on merges. Namely, @samp{-kk}
- overrode any default keyword expansion mode set in the archive file in
- the repository. This could, unfortunately for some users, cause data
-@@ -5104,7 +5166,7 @@
- @file{backend.c} to the repository:
-
- @c This example used to specify
--@c -m "Optimizer and code generation passes."
-+@c -m "Optimiser and code generation passes."
- @c to the cvs add command, but that doesn't work
- @c client/server (see log2 in sanity.sh). Should fix CVS,
- @c but also seems strange to document things which
-@@ -5266,7 +5328,7 @@
- cvs add: oj.c, version 1.1.1.1, resurrected
- @end example
-
--If you realize your mistake before you run the
-+If you realise your mistake before you run the
- @code{remove} command you can use @code{update} to
- resurrect the file:
-
-@@ -5712,12 +5774,12 @@
- @node user-defined logging
- @section User-defined logging
-
--@c FIXME: probably should centralize this information
-+@c FIXME: probably should centralise this information
- @c here, at least to some extent. Maybe by moving the
- @c loginfo, etc., nodes here and replacing
- @c the "user-defined logging" node with one node for
- @c each method.
--You can customize @sc{cvs} to log various kinds of
-+You can customise @sc{cvs} to log various kinds of
- actions, in whatever manner you choose. These
- mechanisms operate by executing a script at various
- times. The script might append a message to a file
-@@ -5736,7 +5798,7 @@
- @samp{-o}, @samp{-e}, and @samp{-t} options in the
- modules file. For a more flexible way of giving
- notifications to various users, which requires less in
--the way of keeping centralized scripts up to date, use
-+the way of keeping centralised scripts up to date, use
- the @code{cvs watch add} command (@pxref{Getting
- Notified}); this command is useful even if you are not
- using @code{cvs watch on}.
-@@ -5968,7 +6030,7 @@
- locks, have all developers put "edit -c", "commit -c" in their
- .cvsrc file, and turn on watches in the repository. This
- prevents them from doing a @code{cvs edit} if anyone is
--already editting the file. It also may
-+already editing the file. It also may
- be possible to use plain watches together with suitable
- procedures (not enforced by software), to avoid having
- two people edit at the same time.
-@@ -6451,7 +6513,7 @@
- You can now go ahead and commit this as revision 1.7.
-
- @example
--$ cvs commit -m "Initialize scanner. Use symbolic exit values." driver.c
-+$ cvs commit -m "Initialise scanner. Use symbolic exit values." driver.c
- Checking in driver.c;
- /usr/local/cvsroot/yoyodyne/tc/driver.c,v <-- driver.c
- new revision: 1.7; previous revision: 1.6
-@@ -6630,7 +6692,7 @@
- put "edit -c" and "commit -c" into all .cvsrc files,
- and make files default to read only by turning on watches
- or putting "cvs -r" into all .cvsrc files.
--This prevents multiple people from editting a file at
-+This prevents multiple people from editing a file at
- the same time (unless explicitly overriden with @samp{-f}).
-
- @c I'm a little dissatisfied with this presentation,
-@@ -6875,7 +6937,7 @@
- There are two additional options that @code{cvs edit} understands as of
- @sc{cvs} client and server versions 1.12.10 but @code{cvs watch} does not.
- The first is @code{-c}, which causes @code{cvs edit} to fail if anyone else
--is editting the file. This is probably only useful when @samp{edit -c} and
-+is editing the file. This is probably only useful when @samp{edit -c} and
- @samp{commit -c} are specified in all developers' @file{.cvsrc} files. This
- behavior may be overriden this via the @code{-f} option, which overrides
- @code{-c} and allows multiple edits to succeed.
-@@ -6992,7 +7054,7 @@
- cons. Let it be said that a lot of this is a matter of
- opinion or what works given different groups' working
- styles, but here is a brief description of some of the
--issues. There are many ways to organize a team of
-+issues. There are many ways to organise a team of
- developers. @sc{cvs} does not try to enforce a certain
- organization. It is a tool that can be used in several
- ways.
-@@ -7014,7 +7076,7 @@
- many groups is that they occur rarely and usually are
- relatively straightforward to resolve.
-
--The rarity of serious conflicts may be surprising, until one realizes
-+The rarity of serious conflicts may be surprising, until one realises
- that they occur only when two developers disagree on the proper design
- for a given section of code; such a disagreement suggests that the
- team has not been communicating properly in the first place. In order
-@@ -7182,6 +7244,15 @@
- @item $@splitrcskeyword{Date}$
- The date and time (UTC) the revision was checked in.
-
-+@cindex Mdocdate keyword
-+@item $@splitrcskeyword{Mdocdate}$
-+The date (UTC) the revision was checked in, in a format suitable
-+for the Berkeley mdoc macro processing.
-+
-+@example
-+$Mdocdate: November 18 2017 $
-+@end example
-+
- @cindex Header keyword
- @item $@splitrcskeyword{Header}$
- A standard header containing the full pathname of the
-@@ -7336,7 +7407,7 @@
- the source files so that it gets passed through to
- generated files. For example, if you are managing
- computer program source code, you might include a
--variable which is initialized to contain that string.
-+variable which is initialised to contain that string.
- Or some C compilers may provide a @code{#pragma ident}
- directive. Or a document management system might
- provide a way to pass a string through to generated
-@@ -7550,13 +7621,14 @@
- A list may be used. The this example:
-
- @example
-- # Add a "MyBSD" keyword and restrict keyword
-- # expansion to the MyBSD, Name and Date keywords.
-+ # Add a "MyBSD" keyword and restrict keyword expansion
-+ # to the MyBSD, Name, Date and Mdocdate keywords.
- LocalKeyword=MyBSD=CVSHeader
-- KeywordExpand=iMyBSD,Name,Date
-+ KeywordExpand=iMyBSD,Name,Date,Mdocdate
- @end example
-
--would allow $@splitrcskeyword{MyBSD}$, $@splitrcskeyword{Name}$, and
-+would allow $@splitrcskeyword{MyBSD}$, $@splitrcskeyword{Name}$,
-+$@splitrcskeyword{Mdocdate} and
- $@splitrcskeyword{Date}$ to be expanded.
-
- It is also possible to configure an exclusion list
-@@ -7595,7 +7667,7 @@
- has been around a long time. However, that patch
- implemented these features using @code{tag=} and
- @code{tagexpand=} keywords and those keywords are NOT
--recognized.
-+recognised.
-
- @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- @node Log keyword
-@@ -7742,7 +7814,7 @@
- $ cvs import -m "Import of FSF v. 0.05" fsf/wdiff FSF_DIST WDIFF_0_05
- @end example
-
--@strong{WARNING: If you use a release tag that already exists in one of the
-+@emph{WARNING: If you use a release tag that already exists in one of the
- repository archives, files removed by an import may not be detected.}
-
- For files that have not been modified locally, the newly created
-@@ -7786,7 +7858,12 @@
-
- You can also revert local changes completely and return
- to the latest vendor release by changing the `head'
--revision back to the vendor branch on all files. For
-+revision back to the vendor branch on all files. This
-+does, however, produce weird results if you should ever
-+edit this file again, for anyone looking at the output
-+from the @code{log} command or CVSweb. To fix this,
-+first commit a revision of the file which equals the
-+vendor branch, then use @code{admin} @samp{-b}. For
- example, if you have a checked-out copy of the sources
- in @file{~/work.d/wdiff}, and you want to revert to the
- vendor's version for all the files in that directory,
-@@ -7853,6 +7930,10 @@
- @code{cvs import}. It takes as an argument the vendor
- branch to import to. The default is @samp{-b 1.1.1}.
-
-+Vendor branches can only be in the format 1.1.x where
-+@samp{x} is an @emph{uneven} number, because branch
-+tags use even numbers.
-+
- For example, suppose that there are two teams, the red
- team and the blue team, that are sending you sources.
- You want to import the red team's efforts to branch
-@@ -8030,7 +8111,7 @@
-
- When @code{PreservePermissions} is in use, some @sc{cvs}
- operations (such as @samp{cvs status}) will not
--recognize a file's hard link structure, and so will
-+recognise a file's hard link structure, and so will
- emit spurious warnings about mismatching hard links.
- The reason is that @sc{cvs}'s internal structure does not
- make it easy for these operations to collect all the
-@@ -8094,16 +8175,18 @@
- This appendix describes the overall structure of
- @sc{cvs} commands, and describes some commands in
- detail (others are described elsewhere; for a quick
--reference to @sc{cvs} commands, @pxref{Invoking CVS}).
-+reference to @sc{cvs} commands, @pxref{Invoking CVS},
-+and for an alphabetical list of all @sc{cvs} commands,
-+@pxref{CVS command list}).
- @c The idea is that we want to move the commands which
- @c are described here into the main body of the manual,
- @c in the process reorganizing the manual to be
--@c organized around what the user wants to do, not
--@c organized around CVS commands.
-+@c organised around what the user wants to do, not
-+@c organised around CVS commands.
- @c
- @c Note that many users do expect a manual which is
--@c organized by command. At least some users do.
--@c One good addition to the "organized by command"
-+@c organised by command. At least some users do.
-+@c One good addition to the "organised by command"
- @c section (if any) would be "see also" links.
- @c The awk manual might be a good example; it has a
- @c reference manual which is more verbose than Invoking
-@@ -8117,19 +8200,20 @@
- * Global options:: Options you give to the left of cvs_command
- * Common options:: Options you give to the right of cvs_command
- * Date input formats:: Acceptable formats for date specifications
--* admin:: Administration
-+* admin:: Administration front-end for RCS
- * annotate:: What revision modified each line of a file?
- * checkout:: Checkout sources for editing
- * commit:: Check files into the repository
- * diff:: Show differences between revisions
- * export:: Export sources from CVS, similar to checkout
--* history:: Show status of files and users
-+* history:: Show repository access history
- * import:: Import sources into CVS, using vendor branches
--* log:: Show log messages for files
-+* log:: Print out history information for files
- * ls & rls:: List files in the repository
--* rdiff:: 'patch' format diffs between releases
-+* rdiff:: Create 'patch' format diffs between revisions
- * release:: Indicate that a directory is no longer in use
- * server & pserver:: Act as a server for a client on stdin/stdout
-+* suck:: Download RCS ,v file raw
- * update:: Bring work tree in sync with repository
- @end menu
-
-@@ -8375,6 +8459,31 @@
- @samp{-N} in the @file{~/.cvsrc} entry for @samp{log},
- you may need to use @samp{-f} to show the tag names.
-
-+@item -g
-+Forges group-writable permissions on files in the working copy.
-+This option is typically used when you have multiple users sharing
-+a single checked out source tree, allowing them to operate their
-+shells with a less dangerous umask at the expense of @sc{cvs} security.
-+To use this feature, create a directory to hold the checked-out
-+source tree, set it to a private group, and set up the directory
-+such that files created under it inherit the gid of the directory.
-+On BSD systems, this occurs automatically. On SYSV systems and
-+GNU/Linux, the sgid bit must be set on the directory for this.
-+The users who are to share the checked out tree must be placed in
-+that group which owns the directory.
-+
-+Note that the sharing of a single checked-out source tree is very
-+different from giving several users access to a common @sc{cvs} repository.
-+Access to a common @sc{cvs} repository already maintains shared group-write
-+permissions and does not require this option.
-+
-+Due to the security implications, setting this option globally in
-+your @file{.cvsrc} file is strongly discouraged; if you must, ensure
-+all source checkouts are "firewalled" within a private group or a
-+private mode 0700 directory.
-+
-+This option is a MidnightBSD extension merged into Debian and MirBSD @sc{cvs}.
-+
- @item -H
- @itemx --help
- Display usage information about the specified @samp{cvs_command}
-@@ -8498,7 +8607,7 @@
- which are listed with the individual commands, may have
- different behavior from one @sc{cvs} command to the other).
-
--@strong{Note: the @samp{history} command is an exception; it supports
-+@emph{Note: the @samp{history} command is an exception; it supports
- many options that conflict even with these standard options.}
-
- @table @code
-@@ -8523,7 +8632,7 @@
- slightly different way; @pxref{history options}).
-
- For a complete description of the date formats accepted by @sc{cvs},
--@ref{Date input formats}.
-+@pxref{Date input formats}.
- @c What other formats should we accept? I don't want
- @c to start accepting a whole mess of non-standard
- @c new formats (there are a lot which are in wide use in
-@@ -8610,7 +8719,7 @@
- @code{annotate}, @code{checkout}, @code{export},
- @code{rdiff}, @code{rtag}, and @code{update}.
-
--@strong{WARNING: The @code{commit} and @code{remove}
-+@emph{WARNING: The @code{commit} and @code{remove}
- commands also have a
- @samp{-f} option, but it has a different behavior for
- those commands. See @ref{commit options}, and
-@@ -8631,7 +8740,7 @@
- @code{checkout}, @code{diff}, @code{export}, @code{import},
- @code{rdiff}, and @code{update} commands.
-
--@strong{WARNING: Prior to CVS version 1.12.2, the @samp{-k} flag
-+@emph{WARNING: Prior to CVS version 1.12.2, the @samp{-k} flag
- overrode the @samp{-kb} indication for a binary file. This could
- sometimes corrupt binary files. @xref{Merging and keywords}, for
- more.}
-@@ -8660,7 +8769,7 @@
- specified to run in the modules
- database (@pxref{modules}); this option bypasses it).
-
--@strong{Note: this is not the same as the @samp{cvs -n}
-+@emph{Note: this is not the same as the @samp{cvs -n}
- program option, which you can specify to the left of a cvs command!}
-
- Available with the @code{checkout}, @code{commit}, @code{export},
-@@ -8688,14 +8797,21 @@
- @item -r @var{tag}[:@var{date}]
- @cindex HEAD, special tag
- @cindex BASE, special tag
-+@cindex BASE, special date
- Use the revision specified by the @var{tag} argument (and the @var{date}
- argument for the commands which accept it) instead of the
- default @dfn{head} revision. As well as arbitrary tags defined
- with the @code{tag} or @code{rtag} command, two special tags are
- always available: @samp{HEAD} refers to the most recent version
--available in the repository, and @samp{BASE} refers to the
-+available in the repository (also known as the tip of the @samp{MAIN}
-+branch, also known as trunk; the name of a branch refers to its tip;
-+this version of @sc{cvs} introduces @samp{.bhead}, but only for the
-+@sc{diff} command, for the same), and @samp{BASE} refers to the
- revision you last checked out into the current working directory.
-
-+@c fixed: HEAD is changed now; .bhead is the name of the branch,
-+@c but added for cases where it is unknown.
-+@c --mirabilos
- @c FIXME: What does HEAD really mean? I believe that
- @c the current answer is the head of the default branch
- @c for all cvs commands except diff. For diff, it
-@@ -8735,12 +8851,19 @@
- the name of a branch is interpreted as the most recent
- revision on that branch.
-
-+As a Debian and MirBSD @sc{cvs} extension, specifying @samp{BASE} as the
-+@var{date} portion of the argument yields the @emph{base revision} of the
-+branch specified by the @var{tag} portion of the argument, i.e. the revision
-+on the parent branch the @var{tag} branch split off, or, where both
-+branches were the same.
-+This option has not received very much testing, beware!
-+
- Specifying the @samp{-q} global option along with the
- @samp{-r} command option is often useful, to suppress
- the warning messages when the @sc{rcs} file
- does not contain the specified tag.
-
--@strong{Note: this is not the same as the overall @samp{cvs -r} option,
-+@emph{Note: this is not the same as the overall @samp{cvs -r} option,
- which you can specify to the left of a @sc{cvs} command!}
-
- @samp{-r @var{tag}} is available with the @code{commit} and @code{history}
-@@ -8765,7 +8888,7 @@
-
- @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- @node admin
--@appendixsec admin---Administration
-+@appendixsec admin---Administration front-end for RCS
- @cindex Admin (subcommand)
-
- @itemize @bullet
-@@ -8863,7 +8986,7 @@
- a future release of @sc{cvs}.
-
- @item -i
--Useless with @sc{cvs}. This creates and initializes a
-+Useless with @sc{cvs}. This creates and initialises a
- new @sc{rcs} file, without depositing a revision. With
- @sc{cvs}, add files with the @code{cvs add} command
- (@pxref{Adding files}).
-@@ -9135,7 +9258,10 @@
-
- @itemize @bullet
- @item
--Synopsis: annotate [options] files@dots{}
-+Synopsis:
-+annotate [options] files@dots{}
-+
-+rannotate [options] files@dots{}
- @item
- Requires: repository.
- @item
-@@ -9144,7 +9270,10 @@
-
- For each file in @var{files}, print the head revision
- of the trunk, together with information on the last
--modification for each line.
-+modification for each line. If backwards annotation
-+is requested, show the first modification after the
-+specified revision. (Backwards annotation currently
-+appears to be broken.)
-
- @menu
- * annotate options:: annotate options
-@@ -9160,6 +9289,10 @@
- them):
-
- @table @code
-+@item -b
-+Backwards, show when a line was removed.
-+Currently appears to be broken.
-+
- @item -l
- Local directory only, no recursion.
-
-@@ -9455,8 +9588,7 @@
-
- @itemize @bullet
- @item
--Synopsis: commit [-lnRf] [-m 'log_message' |
---F file] [-r revision] [files@dots{}]
-+Synopsis: commit [-lnRf] [-m 'log_message' | -F file] [-r revision] [files@dots{}]
- @item
- Requires: working directory, repository.
- @item
-@@ -9501,8 +9633,11 @@
-
- At @code{commit}, a unique commitid is placed in the @sc{rcs}
- file inside the repository. All files committed at once
--get the same commitid. The commitid can be retrieved with
--the @code{log} and @code{status} command; see @ref{log},
-+get the same commitid, a string consisting only of hexadecimal
-+digits (usually 16 in GNU @sc{cvs}, 19 in Debian and MirBSD @sc{cvs}).
-+FSF GNU @sc{cvs} 1.11 and OpenBSD OpenCVS do not support commitids yet.
-+The commitid can be retrieved with
-+the @code{log} and @code{status} command; see @ref{log} and
- @ref{File status}.
-
- @menu
-@@ -9621,7 +9756,7 @@
- group would like to work on this software with you, but
- without disturbing main-line development, you could
- commit your change to a new branch. Others can then
--checkout your experimental stuff and utilize the full
-+checkout your experimental stuff and utilise the full
- benefit of @sc{cvs} conflict resolution. The scenario might
- look like:
-
-@@ -9685,7 +9820,7 @@
- under them will be compared.
-
- The exit status for diff is different than for other
--@sc{cvs} commands; for details @ref{Exit status}.
-+@sc{cvs} commands; for details @pxref{Exit status}.
-
- @menu
- * diff options:: diff options
-@@ -10394,7 +10529,7 @@
-
- @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- @node history
--@appendixsec history---Show status of files and users
-+@appendixsec history---Show repository access history
- @cindex history (subcommand)
-
- @itemize @bullet
-@@ -10425,7 +10560,7 @@
- (@file{$CVSROOT/CVSROOT/history}) with read and write permissions for all
- users (@pxref{Creating a repository}).
-
--@strong{Note: @code{history} uses @samp{-f}, @samp{-l},
-+@emph{Note: @code{history} uses @samp{-f}, @samp{-l},
- @samp{-n}, and @samp{-p} in ways that conflict with the
- normal use inside @sc{cvs} (@pxref{Common options}).}
-
-@@ -10774,12 +10909,14 @@
-
- @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- @node log
--@appendixsec log---Print out log information for files
-+@appendixsec log---Print out history information for files
- @cindex log (subcommand)
-
- @itemize @bullet
- @item
- Synopsis: log [options] [files@dots{}]
-+
-+rlog [options] [files@dots{}]
- @item
- Requires: repository, working directory.
- @item
-@@ -10805,7 +10942,7 @@
- the @code{$TZ} environment variable, which can be set to
- govern how @code{log} displays dates.
-
--@strong{Note: @code{log} uses @samp{-R} in a way that conflicts
-+@emph{Note: @code{log} uses @samp{-R} in a way that conflicts
- with the normal use inside @sc{cvs} (@pxref{Common options}).}
-
- @menu
-@@ -10997,13 +11134,15 @@
-
- @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- @node ls & rls
--@appendixsec ls & rls
-+@appendixsec ls & rls---List files in the repository
- @cindex ls (subcommand)
- @cindex rls (subcommand)
-
- @itemize @bullet
- @item
- ls [-e | -l] [-RP] [-r tag[:date]] [-D date] [path@dots{}]
-+
-+rls [-e | -l] [-RP] [-r tag[:date]] [-D date] [path@dots{}]
- @item
- Requires: repository for @code{rls}, repository & working directory for
- @code{ls}.
-@@ -11095,7 +11234,7 @@
-
- @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- @node rdiff
--@appendixsec rdiff---'patch' format diffs between releases
-+@appendixsec rdiff---Create 'patch' format diffs between revisions
- @cindex rdiff (subcommand)
-
- @itemize @bullet
-@@ -11173,6 +11312,9 @@
- @item -c
- Use the context diff format. This is the default format.
-
-+@item -p
-+Show which C function each change is in.
-+
- @item -s
- Create a summary change report instead of a patch. The
- summary includes information about files that were
-@@ -11231,7 +11373,7 @@
-
- @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- @node release
--@appendixsec release---Indicate that a Module is no longer in use
-+@appendixsec release---Indicate that a directory is no longer in use
- @cindex release (subcommand)
-
- @itemize @bullet
-@@ -11282,7 +11424,7 @@
- succeeds. If this flag is not given your files will
- remain in your working directory.
-
--@strong{WARNING: The @code{release} command deletes
-+@emph{WARNING: The @code{release} command deletes
- all directories and files recursively. This
- has the very serious side-effect that any directory
- that you have created inside your checked-out sources,
-@@ -11386,6 +11528,25 @@
- @end table
-
- @c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-+@node suck
-+@appendixsec suck---Download RCS ,v file raw
-+@cindex suck (subcommand)
-+
-+@itemize @bullet
-+@item
-+suck module/pa/th
-+@item
-+Requires: repository
-+@end itemize
-+
-+Locates the file module/pa/th,v or module/pa/Attic/th,v and downloads
-+it raw as RCS comma-v file.
-+
-+Output consists of the real pathname of the comma-v file, relative to
-+the CVS repository, followed by a newline and the binary file content
-+immediately thereafter.
-+
-+@c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- @node update
- @appendixsec update---Bring work tree in sync with repository
- @cindex update (subcommand)
-@@ -11635,6 +11796,8 @@
- references to where each command or feature is
- described in detail. For other references run the
- @code{cvs --help} command, or see @ref{Index}.
-+For an alphabetical list of all @sc{cvs} commands,
-+@pxref{CVS command list}).
-
- A @sc{cvs} command looks like:
-
-@@ -11646,10 +11809,15 @@
-
- @table @code
- @item --allow-root=@var{rootdir}
--Specify legal @sc{cvsroot} directory (server only) (not
--in @sc{cvs} 1.9 and older). See @ref{Password
-+Specify acceptable @sc{cvsroot} directory (server only).
-+Appeared in @sc{cvs} 1.10. See @ref{Password
- authentication server}.
-
-+@item --allow-root-regexp=@var{rootdir}
-+Specify a POSIX extended regular expression which matches acceptable
-+@sc{cvsroot} directories (server only). Appeared in @sc{cvs}
-+1.12.14. See @ref{Password authentication server}.
-+
- @item -a
- Authenticate all communication (client only) (not in @sc{cvs}
- 1.9 and older). See @ref{Global options}.
-@@ -11669,6 +11837,10 @@
- Do not read the @file{~/.cvsrc} file. See @ref{Global
- options}.
-
-+@item -g
-+Set the umask to allow group writable permissions in
-+the working copy. See @ref{Global options}.
-+
- @item -H
- @itemx --help
- Print a help message. See @ref{Global options}.
-@@ -11730,6 +11902,7 @@
- @example
- $@splitrcskeyword{Author}: joe $
- $@splitrcskeyword{Date}: 1993/12/09 03:21:13 $
-+$@splitrcskeyword{Mdocdate}: December 9 1993 $
- $@splitrcskeyword{CVSHeader}: files/file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $
- $@splitrcskeyword{Header}: /home/files/file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $
- $@splitrcskeyword{Id}: file1,v 1.1 1993/12/09 03:21:13 joe Exp harry $
-@@ -11756,6 +11929,7 @@
-
- @table @code
- @c ------------------------------------------------------------
-+@anchor{add}
- @item add [@var{options}] [@var{files}@dots{}]
- Add a new file/directory. See @ref{Adding files}.
-
-@@ -11877,7 +12051,8 @@
- @item -j @var{tag}[:@var{date}]
- Merge in the change specified by @var{tag}, or when @var{date} is specified
- and @var{tag} is a branch tag, the version from the branch @var{tag} as it
--existed on @var{date}. See @ref{checkout options}.
-+existed on @var{date}. See @ref{checkout options}. Also,
-+see @ref{Common options}.
-
- @item -k @var{kflag}
- Use @var{kflag} keyword expansion. See
-@@ -11907,7 +12082,7 @@
- @item -r @var{tag}[:@var{date}]
- Checkout the revision already tagged with @var{tag} or, when @var{date} is
- specified and @var{tag} is a branch tag, the version from the branch @var{tag}
--as it existed on @var{date}. This . See @ref{Common options}.
-+as it existed on @var{date}. See @ref{Common options}.
-
- @item -s
- Like -c, but include module status. See @ref{checkout options}.
-@@ -11992,6 +12167,7 @@
- @end table
-
- @c ------------------------------------------------------------
-+@anchor{edit}
- @item edit [@var{options}] [@var{files}@dots{}]
- Get ready to edit a watched file. See @ref{Editing files}.
-
-@@ -12003,7 +12179,7 @@
- @ref{Editing files}.
-
- @item -c
--Check edits: Edit fails if someone else is already editting the file.
-+Check edits: Edit fails if someone else is already editing the file.
- Requires a @sc{cvs} client and server both of version 1.12.10 or greater.
-
- @item -f
-@@ -12018,6 +12194,7 @@
- @end table
-
- @c ------------------------------------------------------------
-+@anchor{editors}
- @item editors [@var{options}] [@var{files}@dots{}]
- See who is editing a watched file. See @ref{Watch information}.
-
-@@ -12163,14 +12340,17 @@
- @end table
-
- @c ------------------------------------------------------------
-+@anchor{init}
- @item init
- Create a @sc{cvs} repository if it doesn't exist. See
- @ref{Creating a repository}.
-
- @c ------------------------------------------------------------
-+@anchor{kserver}
- @item kserver
- Kerberos authenticated server.
--See @ref{Kerberos authenticated}.
-+@xref{server & pserver}.
-+@xref{Kerberos authenticated}.
-
- @c ------------------------------------------------------------
- @item log [@var{options}] [@var{files}@dots{}]
-@@ -12211,21 +12391,55 @@
- @end table
-
- @c ------------------------------------------------------------
-+@anchor{login}
- @item login
- Prompt for password for authenticating server. See
- @ref{Password authentication client}.
-
- @c ------------------------------------------------------------
-+@anchor{logout}
- @item logout
- Remove stored password for authenticating server. See
- @ref{Password authentication client}.
-
- @c ------------------------------------------------------------
-+@anchor{ls}
-+@item ls [@var{options}] [@var{path}@dots{}]
-+List files available from CVS. See @ref{ls & rls}.
-+
-+@table @code
-+@item -d
-+Show dead revisions (with tag when specified).
-+See @ref{ls & rls options}.
-+
-+@item -e
-+Display in CVS/Entries format.
-+
-+@item -l
-+Display all details.
-+
-+@item -P
-+Prune empty directories. See @ref{Moving directories}.
-+
-+@item -R
-+List recursively. @xref{Recursive behavior}.
-+
-+@item -D @var{date}
-+Show files from date. See @ref{Common options}.
-+
-+@item -r @var{rev}
-+Show files with revision or tag.
-+@end table
-+
-+@c ------------------------------------------------------------
-+@anchor{pserver}
- @item pserver
- Password authenticated server.
--See @ref{Password authentication server}.
-+@xref{server & pserver}.
-+@xref{Password authentication server}.
-
- @c ------------------------------------------------------------
-+@anchor{rannotate}
- @item rannotate [@var{options}] [@var{modules}@dots{}]
- Show last revision where each line was modified. See
- @ref{annotate}.
-@@ -12298,7 +12512,7 @@
- @end table
-
- @c ------------------------------------------------------------
--@item release [@var{options}] @var{directory}
-+@item release [@var{options}] @var{directories}@dots{}
- Indicate that a directory is no longer in use. See
- @ref{release}.
-
-@@ -12308,6 +12522,7 @@
- @end table
-
- @c ------------------------------------------------------------
-+@anchor{remove}
- @item remove [@var{options}] [@var{files}@dots{}]
- Remove an entry from the repository. See @ref{Removing files}.
-
-@@ -12324,6 +12539,7 @@
- @end table
-
- @c ------------------------------------------------------------
-+@anchor{rlog}
- @item rlog [@var{options}] [@var{files}@dots{}]
- Print out history information for modules. See @ref{log}.
-
-@@ -12361,9 +12577,40 @@
- @end table
-
- @c ------------------------------------------------------------
-+@anchor{rls}
-+@item rls [@var{options}] [@var{path}@dots{}]
-+List files in a module. See @ref{ls & rls}.
-+
-+@table @code
-+@item -d
-+Show dead revisions (with tag when specified).
-+See @ref{ls & rls options}.
-+
-+@item -e
-+Display in CVS/Entries format.
-+
-+@item -l
-+Display all details.
-+
-+@item -P
-+Prune empty directories. See @ref{Moving directories}.
-+
-+@item -R
-+List recursively. @xref{Recursive behavior}.
-+
-+@item -D @var{date}
-+Show files from date. See @ref{Common options}.
-+
-+@item -r @var{rev}
-+Show files with revision or tag.
-+@end table
-+
-+@c ------------------------------------------------------------
-+@anchor{rtag}
- @item rtag [@var{options}] @var{tag} @var{modules}@dots{}
- Add a symbolic tag to a module.
--See @ref{Revisions} and @ref{Branching and merging}.
-+@xref{Tagging by date/tag}.
-+@xref{Creating a branch}.
-
- @table @code
- @item -a
-@@ -12407,10 +12654,18 @@
- @end table
-
- @c ------------------------------------------------------------
-+@anchor{server}
- @item server
--Rsh server. See @ref{Connecting via rsh}.
-+SSH/rsh server.
-+@xref{server & pserver}.
-+@xref{Connecting via rsh}.
-
- @c ------------------------------------------------------------
-+@item suck @var{module/filename}
-+Download RCS ,v file raw. See @ref{suck}.
-+
-+@c ------------------------------------------------------------
-+@anchor{status}
- @item status [@var{options}] @var{files}@dots{}
- Display status information in a working directory. See
- @ref{File status}.
-@@ -12427,9 +12682,11 @@
- @end table
-
- @c ------------------------------------------------------------
-+@anchor{tag}
- @item tag [@var{options}] @var{tag} [@var{files}@dots{}]
- Add a symbolic tag to checked out version of files.
--See @ref{Revisions} and @ref{Branching and merging}.
-+@xref{Tagging the working directory}.
-+@xref{Creating a branch}.
-
- @table @code
- @item -b
-@@ -12465,6 +12722,7 @@
- @end table
-
- @c ------------------------------------------------------------
-+@anchor{unedit}
- @item unedit [@var{options}] [@var{files}@dots{}]
- Undo an edit command. See @ref{Editing files}.
-
-@@ -12541,6 +12799,7 @@
- @end table
-
- @c ------------------------------------------------------------
-+@anchor{version}
- @item version
- @cindex version (subcommand)
-
-@@ -12548,6 +12807,7 @@
- is remote, display both the client and server versions.
-
- @c ------------------------------------------------------------
-+@anchor{watch}
- @item watch [on|off|add|remove] [@var{options}] [@var{files}@dots{}]
-
- on/off: turn on/off read-only checkouts of files. See
-@@ -12572,6 +12832,7 @@
- @end table
-
- @c ------------------------------------------------------------
-+@anchor{watchers}
- @item watchers [@var{options}] [@var{files}@dots{}]
- See who is watching a file. See @ref{Watch information}.
-
-@@ -12711,7 +12972,7 @@
- @item @var{mname} [ options ] @var{dir} [ @var{files}@dots{} ]
- In the simplest case, this form of module definition
- reduces to @samp{@var{mname} @var{dir}}. This defines
--all the files in directory @var{dir} as module mname.
-+all the files in directory @var{dir} as module @var{mname}.
- @var{dir} is a relative path (from @code{$CVSROOT}) to a
- directory of source in the source repository. In this
- case, on checkout, a single directory called
-@@ -12934,7 +13195,7 @@
- @sc{cvs} will execute this program on the server from a temporary
- directory. The path is searched for this program.
-
--If using ``local access'' (on a local or remote NFS file system, i.e.
-+If using ``local access'' (on a local or remote NFS filesystem, i.e.
- repository set just to a path),
- the program will be executed from the newly checked-out tree, if
- found there, or alternatively searched for in the path if not.
-@@ -12975,7 +13236,7 @@
- mechanisms outside @sc{cvs}, to insert any necessary
- changes.
-
--@strong{WARNING: do not use @code{COPY} with
-+@emph{WARNING: do not use @code{COPY} with
- @sc{cvs} 1.9 or earlier - such versions of @sc{cvs} will
- copy one version of your file over the other, wiping
- out the previous contents.}
-@@ -13353,7 +13614,7 @@
-
- There are three kinds of programs that can be run on
- commit. They are specified in files in the repository,
--as described below. The following table summarizes the
-+as described below. The following table summarises the
- file names and the purpose of the corresponding
- programs.
-
-@@ -13466,10 +13727,10 @@
- your @file{loginfo} command line templates, you will most likely have to
- rewrite any scripts called by the hook to handle the new argument format.
-
--Also note that the way @samp{%} followed by unrecognized characters and by
-+Also note that the way @samp{%} followed by unrecognised characters and by
- @samp{@{@}} was treated in past versions of CVS is not strictly adhered to as
- there were bugs in the old versions. Specifically, @samp{%@{@}} would eat the
--next character and unrecognized strings resolved only to the empty string,
-+next character and unrecognised strings resolved only to the empty string,
- which was counter to what was stated in the documentation. This version will
- do what the documentation said it should have (if you were using only some
- combination of @samp{%@{sVv@}}, e.g. @samp{%@{sVv@}}, @samp{%@{sV@}}, or
-@@ -13749,7 +14010,7 @@
-
- The @file{loginfo} file is used to control where log information is sent after
- versioned changes are made to repository archive files and after directories
--are added ot the repository. @ref{posttag} for how to log tagging
-+are added to the repository. @ref{posttag} for how to log tagging
- information and @ref{postadmin} for how to log changes due to the @code{admin}
- command.
-
-@@ -13779,14 +14040,11 @@
- @file{loginfo} supports:
-
- @table @t
--@item @{stVv@}
-+@item @{sVv@}
- File attributes, where:
- @table @t
- @item s
- file name
--@item T
--tag name of destination, or the empty string when there is no associated
--tag name (this usually means the trunk)
- @item V
- old version number (pre-checkin)
- @item v
-@@ -13795,7 +14053,7 @@
- @end table
-
- For example, some valid format strings are @samp{%%},
--@samp{%s}, @samp{%@{s@}}, and @samp{%@{stVv@}}.
-+@samp{%s}, @samp{%@{s@}}, and @samp{%@{sVv@}}.
-
- @cindex loginfo (admin file), updating legacy repositories
- @cindex compatibility notes, loginfo admin file
-@@ -14210,7 +14468,7 @@
-
- @itemize @bullet
- @item
--The list is initialized to include certain file name
-+The list is initialised to include certain file name
- patterns: names associated with @sc{cvs}
- administration, or with other common source control
- systems; common names for patch files, object files,
-@@ -14378,7 +14636,7 @@
- the server machine, and don't get any reasonable
- expansion if pserver (@pxref{Password authenticated})
- is in use; therefore user variables (see below) may be
--a better choice to customize behavior based on the user
-+a better choice to customise behavior based on the user
- running @sc{cvs}.
- @c Based on these limitations, should we deprecate ~?
- @c What is it good for? Are people using it?
-@@ -14442,6 +14700,7 @@
- random string of printable characters of at least 16
- characters length. Users should assume that it may
- someday grow to at most 256 characters in length.
-+Currently, Debian and MirBSD @sc{cvs} uses 19 characters.
- @end table
-
- If you want to pass a value to the administrative files
-@@ -14613,7 +14872,7 @@
- @cindex KeywordExpand, in CVSROOT/config
- @item KeywordExpand=@var{value}
- Specify @samp{i} followed by a list of keywords to be expanded
--(for example, @samp{KeywordExpand=iMYCVS,Name,Date}),
-+(for example, @samp{KeywordExpand=iMYCVS,Name,Date,Mdocdate}),
- or @samp{e} followed by a list of keywords not to be expanded
- (for example, @samp{KeywordExpand=eCVSHeader}).
- For more on keyword expansion, see @ref{Configuring keyword expansion}.
-@@ -14632,7 +14891,7 @@
- write access only to @var{directory}, not to the
- repository.
- It can also be used to put the locks on a very fast
--in-memory file system to speed up locking and unlocking
-+in-memory filesystem to speed up locking and unlocking
- the repository.
- You need to create @var{directory}, but
- @sc{cvs} will create subdirectories of @var{directory} as it
-@@ -14657,7 +14916,9 @@
- Default of @samp{TOEFWUPCGMAR} (or simply @samp{all}) will log
- all transactions. Any subset of the default is
- legal. (For example, to only log transactions that modify the
--@file{*,v} files, use @samp{LogHistory=TMAR}.) To disable history logging
-+@file{*,v} files, use @samp{LogHistory=TMAR} which is nowadays
-+set by @code{cvs init} by default.)
-+To disable history logging
- completely, use @samp{LogHistory=}.
-
- @cindex MaxCommentLeaderLength, in CVSROOT/config
-@@ -14743,11 +15004,11 @@
- the log message should always be reread; @samp{no}
- or @samp{never}, indicating that it should never be
- reread; or @var{value} may be @samp{stat}, indicating
--that the file should be checked with the file system
-+that the file should be checked with the filesystem
- @samp{stat()} function to see if it has changed (see warning below)
- before rereading. The default value is @samp{always}.
-
--@strong{Note: the `stat' mode can cause CVS to pause for up to
-+@emph{Note: the `stat' mode can cause CVS to pause for up to
- one extra second per directory committed. This can be less IO and
- CPU intensive but is not recommended for use with large repositories}
-
-@@ -14879,11 +15140,12 @@
- check out from a read-only repository, such as within
- an anoncvs server, or from a @sc{cd-rom} repository.
-
--It has the same effect as if the @samp{-R} command-line
-+Setting this has the same effect as if the @samp{-R} command-line
- option is used. This can also allow the use of
- read-only NFS repositories.
-
- @item $CVSUMASK
-+@anchor{CVSUMASK}
- Controls permissions of files in the repository. See
- @ref{File permissions}.
-
-@@ -14977,11 +15239,24 @@
-
- @cindex CVS_CLIENT_LOG, environment variable
- @item $CVS_CLIENT_LOG
--Used for debugging only in client-server
--mode. If set, everything sent to the server is logged
--into @file{@code{$CVS_CLIENT_LOG}.in} and everything
--sent from the server is logged into
--@file{@code{$CVS_CLIENT_LOG}.out}.
-+Used for debugging only in client-server mode.
-+If set and not empty, everything sent to the server is logged
-+into @file{@code{$CVS_CLIENT_LOG}.in}, and everything received
-+from the server is logged into @file{@code{$CVS_CLIENT_LOG}.out}.
-+
-+@cindex CVS_SECONDARY_LOG, environment variable
-+@item $CVS_SECONDARY_LOG
-+Used for debugging only in secondary write proxy mode.
-+If set and not empty, everything sent to the primary server is logged
-+into @file{@code{$CVS_SECONDARY_LOG}.in}, and everything received
-+from the primary server is logged into @file{@code{$CVS_SECONDARY_LOG}.out}.
-+
-+@cindex CVS_SERVER_LOG, environment variable
-+@item $CVS_SERVER_LOG
-+Used for debugging only in client-server mode.
-+If set and not empty, everything sent to the client is logged
-+into @file{@code{$CVS_SERVER_LOG}.in}, and everything received
-+from the client is logged into @file{@code{$CVS_SERVER_LOG}.out}.
-
- @cindex CVS_SERVER_SLEEP, environment variable
- @item $CVS_SERVER_SLEEP
-@@ -15047,7 +15322,7 @@
- @c If you "cvs rm" and commit using 1.3, then you'll
- @c want to run "rcs -sdead <file,v>" on each of the
- @c files in the Attic if you then want 1.5 and
--@c later to recognize those files as dead (I think the
-+@c later to recognise those files as dead (I think the
- @c symptom if this is not done is that files reappear
- @c in joins). (Wait: the above will work but really to
- @c be strictly correct we should suggest checking
-@@ -15172,6 +15447,7 @@
- specific reason for denying authorization. Check that
- the username and password specified are correct and
- that the @code{CVSROOT} specified is allowed by @samp{--allow-root}
-+or @samp{--allow-root-regexp}
- in @file{inetd.conf}. See @ref{Password authenticated}.
-
- @item cvs @var{command}: conflict: removed @var{file} was modified by second party
-@@ -15614,21 +15890,21 @@
- access method you are using.
-
- @table @code
--@cindex :ext:, troubleshooting
-+@cindex ext method, troubleshooting
- @item :ext:
- Try running the rsh program from the command line. For
- example: "rsh servername cvs -v" should print @sc{cvs}
- version information. If this doesn't work, you need to
- fix it before you can worry about @sc{cvs} problems.
-
--@cindex :server:, troubleshooting
-+@cindex server method, troubleshooting
- @item :server:
- You don't need a command line rsh program to use this
- access method, but if you have an rsh program around,
- it may be useful as a debugging tool. Follow the
- directions given for :ext:.
-
--@cindex :pserver:, troubleshooting
-+@cindex pserver method, troubleshooting
- @item :pserver:
- Errors along the lines of "connection refused" typically indicate
- that inetd isn't even listening for connections on port 2401
-@@ -15806,6 +16082,16 @@
- the file @file{doc/ChangeLog} in the @sc{cvs} source
- distribution.
-
-+The MirOS Project uses @sc{cvs} heavily in MirOS BSD and the
-+MirPorts Framework and has enhanced it as well as packaged it
-+as the "new" Debian CVS package. Responsible:
-+
-+@display
-+Thorsten Glaser <@t{tg@@mirbsd.org}>
-+@end display
-+
-+CVS Homepage: @url{http://www.nongnu.org/cvs/}
-+
- @c ---------------------------------------------------------------------
- @node BUGS
- @appendix Dealing with bugs in CVS or this manual
-@@ -15910,6 +16196,49 @@
- comprehensive, detailed list of known bugs.
-
- @c ---------------------------------------------------------------------
-+@node CVS command list
-+@appendix Alphabetical list of all CVS commands
-+
-+@xref{Cederqvist, the introduction into the manual, CVS manual Table of Contents}.
-+
-+@menu
-+* add:: Add a new file/directory to the repository
-+* admin:: Administration front-end for RCS
-+* annotate:: Show last revision where each line was modified
-+* checkout:: Checkout sources for editing
-+* commit:: Check files into the repository
-+* diff:: Show differences between revisions
-+* edit:: Get ready to edit a watched file
-+* editors:: See who is editing a watched file
-+* export:: Export sources from CVS, similar to checkout
-+* history:: Show repository access history
-+* import:: Import sources into CVS, using vendor branches
-+* init:: Create a CVS repository
-+* kserver:: Act in Kerberos server mode
-+* log:: Print out history information for files
-+* login:: Prompt for password for authenticating server
-+* logout:: Removes entry in .cvspass for remote repository
-+* ls:: List files available from CVS
-+* pserver:: Act in password server mode
-+* rannotate:: Show last revision where each line of module was modified
-+* rdiff:: Create 'patch' format diffs between revisions
-+* release:: Indicate that a work subdirectory is no longer in use
-+* remove:: Remove an entry from the repository
-+* rlog:: Print out history information for a module
-+* rls:: List files in a module
-+* rtag:: Add a symbolic tag to a module
-+* server:: Act in server mode
-+* suck:: Download RCS ,v file raw
-+* status:: Display status information on checked out files
-+* tag:: Add a symbolic tag to checked out version of files
-+* unedit:: Undo an edit command
-+* update:: Bring work tree in sync with repository
-+* version:: Show current CVS version(s)
-+* watch:: Set watches
-+* watchers:: See who is watching a file
-+@end menu
-+
-+@c ---------------------------------------------------------------------
- @node Index
- @unnumbered Index
- @cindex Index
---- cvs-1.12.13+real.orig/doc/cvsclient.texi
-+++ cvs-1.12.13+real/doc/cvsclient.texi
-@@ -1,6 +1,18 @@
- \input texinfo @c -*- texinfo -*-
-
- @setfilename cvsclient.info
-+@set MBSDPATCHLEVEL -MirOS-0AB8.4
-+@tex
-+ % set PA4 paper size (can print on both DIN ISO A4 and US Letter)
-+ \globaldefs = 1%
-+ \afourpaper%
-+ \internalpagesizes{46\baselineskip}{160mm}%
-+ {\voffset}{\hoffset}%
-+ {\bindingoffset}{36pt}%
-+ {28truecm}{21truecm}%
-+ \globaldefs = 0%
-+@end tex
-+@comment $MirOS: src/gnu/usr.bin/cvs/doc/cvsclient.texi,v 1.11 2017/11/18 22:37:52 tg Exp $
- @include version-client.texi
-
- @dircategory Programming
-@@ -12,10 +24,10 @@
- @top CVS Client/Server
-
- This document describes the client/server protocol used by CVS. It does
--not describe how to use or administer client/server CVS; see the regular
--CVS manual for that. This is version @value{VERSION} of the protocol
--specification---@xref{Introduction}, for more on what this version number
--means.
-+not describe how to use or administer client/server CVS; for that,
-+@pxref{Top, the regular CVS manual,, cvs, the regular CVS manual}.
-+This specification applies to
-+@sc{cvs} version @value{VERSION}@value{MBSDPATCHLEVEL} and up.
-
- @menu
- * Introduction:: What is CVS and what is the client/server protocol for?
-@@ -53,7 +65,7 @@
- user documentation, @file{cvs.texinfo}, for that information. The
- protocol is non-proprietary (anyone who wants to is encouraged to
- implement it) and an implementation, known as CVS, is available under
--the GNU Public License. The CVS distribution, containing this
-+the GNU General Public License. The CVS distribution, containing this
- implementation, @file{cvs.texinfo}, and a copy (possibly more or less up
- to date than what you are reading now) of this document,
- @file{cvsclient.texi}, can be found at the usual GNU FTP sites, with a
-@@ -149,7 +161,7 @@
- the client proceeds to start the cvs protocol.
-
- @item kserver
--The kerberized server listens on a port (in the current implementation,
-+The kerberised server listens on a port (in the current implementation,
- by having inetd call "cvs kserver") which defaults to 1999. The client
- connects, sends the usual kerberos authentication information, and then
- starts the cvs protocol. Note: port 1999 is officially registered for
-@@ -217,7 +229,7 @@
- close the connection. The @var{code} is a code describing why it
- failed, intended for computer consumption. The only code currently
- defined is @samp{0} which is nonspecific, but clients must silently
--treat any unrecognized codes as nonspecific.
-+treat any unrecognised codes as nonspecific.
- The @var{text} should be supplied to the
- user. Compatibility note: @sc{cvs} 1.9.10 and older clients will print
- @code{unrecognized auth response} and @var{text}, and then exit, upon
-@@ -393,13 +405,13 @@
- @var{mode-type} is an identifier composed of alphanumeric characters.
- Currently specified: @samp{u} for user, @samp{g} for group, @samp{o}
- for other (see below for discussion of whether these have their POSIX
--meaning or are more loose). Unrecognized values of @var{mode-type}
-+meaning or are more loose). Unrecognised values of @var{mode-type}
- are silently ignored.
-
- @var{data} consists of any data not containing @samp{,}, @samp{\0} or
- @samp{\n}. For @samp{u}, @samp{g}, and @samp{o} mode types, data
- consists of alphanumeric characters, where @samp{r} means read, @samp{w}
--means write, @samp{x} means execute, and unrecognized letters are
-+means write, @samp{x} means execute, and unrecognised letters are
- silently ignored.
-
- The two most obvious ways in which the mode matters are: (1) is it
-@@ -471,12 +483,13 @@
- In various contexts, for example the @code{Argument} request and the
- @code{M} response, one transmits what is essentially an arbitrary
- string. Often this will have been supplied by the user (for example,
--the @samp{-m} option to the @code{ci} request). The protocol has no
--mechanism to specify the character set of such strings; it would be
--fairly safe to stick to the invariant ISO 646 character set but the
--existing practice is probably to just transmit whatever the user
--specifies, and hope that everyone involved agrees which character set is
--in use, or sticks to a common subset.
-+the @samp{-m} option to the @code{ci} request will show up in the
-+@code{LOGM} response). The protocol has no mechanism to specify the
-+character set of such strings; it would have been, initially, fairly
-+safe to stick to the invariant ISO 646 character set but the existing
-+practice is probably to just transmit whatever the user specifies,
-+and hope that everyone involved agrees which character set is in use,
-+or sticks to a common subset. In modern times, UTF-8 should be used.
-
- @node Dates
- @section Dates
-@@ -513,7 +526,7 @@
-
- By convention, requests which begin with a capital letter do not elicit
- a response from the server, while all others do -- save one. The
--exception is @samp{gzip-file-contents}. Unrecognized requests will
-+exception is @samp{gzip-file-contents}. Unrecognised requests will
- always elicit a response from the server, even if that request begins
- with a capital letter.
-
-@@ -568,7 +581,7 @@
- Response expected: no.
- Notify a primary server of a server which referred us. Intended to allow
- a primary (write) server to update the read-only mirror a client is using
--for reads to minimize races on any subsequent updates from the client.
-+for reads to minimise races on any subsequent updates from the client.
-
- @item Directory @var{local-directory} \n
- @itemx Relative-directory @var{local-directory} \n
-@@ -828,7 +841,7 @@
- @end example
-
- There is no requirement that the client and server clocks be
--synchronized. The client just sends its recommendation for a timestamp
-+synchronised. The client just sends its recommendation for a timestamp
- (based on file timestamps or whatever), and the server should just believe
- it (this means that the time might be in the future, for example).
-
-@@ -1227,6 +1240,13 @@
- directory and @emph{not} a fully qualified @code{CVSROOT} variable.
- The @code{Root} request need not have been previously sent.
-
-+@item suck \n
-+Response expected: yes.
-+Actually do a @code{cvs suck} command.
-+This uses a previous @code{Argument} request (only one, because the
-+@code{cvs suck} CLI command takes only one).
-+This is an extension specific to MirBSD, MirPorts and Debian.
-+
- @item update \n
- Response expected: yes. Actually do a @code{cvs update} command. This
- uses any previous @code{Argument}, @code{Directory}, @code{Entry},
-@@ -1268,7 +1288,7 @@
- C: Directory .
- C: 1dir
- C: add
--S: M Directory /u/cvsroot/1dir/nsdir added to the repository
-+S: M Directory /u/cvsroot/1dir/nsdir put under version control
- S: ok
- @end example
-
-@@ -1414,7 +1434,7 @@
-
- @item @var{other-request} @var{text} \n
- Response expected: yes.
--Any unrecognized request expects a response, and does not
-+Any unrecognised request expects a response, and does not
- contain any additional data. The response will normally be something like
- @samp{error unrecognized request}, but it could be a different error if
- a previous request which doesn't expect a response produced an error.
-@@ -1640,7 +1660,7 @@
- @end example
-
- There is no requirement that the client and server clocks be
--synchronized. The server just sends its recommendation for a timestamp
-+synchronised. The server just sends its recommendation for a timestamp
- (based on its own clock, presumably), and the client should just believe
- it (this means that the time might be in the future, for example).
-
-@@ -1757,15 +1777,22 @@
- exact text which is output is subject to vary at the discretion of the
- server and the example output given in this document is just that,
- example output. Servers are encouraged to use the @samp{MT} response,
--and future versions of this document will hopefully standardize more of
-+and future versions of this document will hopefully standardise more of
- the @samp{MT} tags; see @ref{Text tags}.
-
-+@item LOGM @var{text} \n
-+Exactly the same as @code{M} but only sent if the client indicates
-+supporting it via @code{Valid-responses}, used exclusively for log
-+message payload (that is, in @code{cvs log} and @code{cvs rlog},
-+the text body the user originally has entered with the @samp{-m}
-+option to the @code{ci} request).
-+
- @item Mbinary \n
- Additional data: file transmission (note: compressed file transmissions
--are not supported). This is like @samp{M}, except the contents of the
-+are not supported). This is like @code{M}, except the contents of the
- file transmission are binary and should be copied to standard output
- without translation to local text file conventions. To transmit a text
--file to standard output, servers should use a series of @samp{M} requests.
-+file to standard output, servers should use a series of @code{M} requests.
-
- @item E @var{text} \n
- Same as @code{M} but send to stderr not stdout.
-@@ -1789,12 +1816,12 @@
-
- The @var{tagname} can have several forms. If it starts with @samp{a}
- to @samp{z} or @samp{A} to @samp{Z}, then it represents tagged text.
--If the implementation recognizes @var{tagname}, then it may interpret
-+If the implementation recognises @var{tagname}, then it may interpret
- @var{data} in some particular fashion. If the implementation does not
--recognize @var{tagname}, then it should simply treat @var{data} as
--text to be sent to the user (similar to an @samp{M} response). There
-+recognise @var{tagname}, then it should simply treat @var{data} as
-+text to be sent to the user (similar to an @code{M} response). There
- are two tags which are general purpose. The @samp{text} tag is
--similar to an unrecognized tag in that it provides text which will
-+similar to an unrecognised tag in that it provides text which will
- ordinarily be sent to the user. The @samp{newline} tag is used
- without @var{data} and indicates that a newline will ordinarily be
- sent to the user (there is no provision for embedding newlines in the
-@@ -2133,13 +2160,13 @@
- The protocol uses an extra network turnaround for protocol negotiation
- (@code{valid-requests}). It might be nice to avoid this by having the
- client be able to send requests and tell the server to ignore them if
--they are unrecognized (different requests could produce a fatal error if
--unrecognized). To do this there should be a standard syntax for
-+they are unrecognised (different requests could produce a fatal error if
-+unrecognised). To do this there should be a standard syntax for
- requests. For example, perhaps all future requests should be a single
- line, with mechanisms analogous to @code{Argumentx}, or several requests
- working together, to provide greater amounts of information. Or there
- might be a standard mechanism for counted data (analogous to that used
--by @code{Modified}) or continuation lines (like a generalized
-+by @code{Modified}) or continuation lines (like a generalised
- @code{Argumentx}). It would be useful to compare what HTTP is planning
- in this area; last I looked they were contemplating something called
- Protocol Extension Protocol but I haven't looked at the relevant IETF
---- cvs-1.12.13+real.orig/doc/getdate.texi
-+++ cvs-1.12.13+real/doc/getdate.texi
-@@ -1,14 +1,22 @@
- @c GNU date syntax documentation
-+@c $MirOS: src/gnu/usr.bin/cvs/doc/getdate.texi,v 1.8 2016/11/08 23:04:36 tg Exp $
-
- @c Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
- @c 2003, 2004, 2005 Free Software Foundation, Inc.
-
--@c Permission is granted to copy, distribute and/or modify this document
--@c under the terms of the GNU Free Documentation License, Version 1.1 or
--@c any later version published by the Free Software Foundation; with no
--@c Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
--@c Texts. A copy of the license is included in the ``GNU Free
--@c Documentation License'' file as part of this distribution.
-+@c Copyright (c) 2007, 2010 mirabilos <m@mirbsd.org>
-+
-+@comment This file is part of the CVS distribution.
-+
-+@comment CVS is free software; you can redistribute it and/or modify
-+@comment it under the terms of the GNU General Public License as published by
-+@comment the Free Software Foundation; either version 2, or (at your option)
-+@comment any later version.
-+
-+@comment CVS is distributed in the hope that it will be useful,
-+@comment but WITHOUT ANY WARRANTY; without even the implied warranty of
-+@comment MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+@comment GNU General Public License for more details.
-
- @node Date input formats
- @chapter Date input formats
-@@ -55,8 +63,7 @@
- * Day of week items:: Monday and others.
- * Relative items in date strings:: next tuesday, 2 years ago.
- * Pure numbers in date strings:: 19931219, 1440.
--* Seconds since the Epoch:: @@1078100502.
--* Specifying time zone rules:: TZ="America/New_York", TZ="UTC0".
-+* Seconds since the Epoch:: @@1101064456
- * Authors of get_date:: Bellovin, Eggert, Salz, Berets, et al.
- @end menu
-
-@@ -113,8 +120,7 @@
-
- @cindex language, in dates
- @cindex time zone item
--The output of the @command{date} command
--is not always acceptable as a date string,
-+The output of @command{date} is not always acceptable as a date string,
- not only because of the language problem, but also because there is no
- standard meaning for time zone items like @samp{IST}. When using
- @command{date} to generate a date string intended to be parsed later,
-@@ -124,15 +130,21 @@
-
- @example
- $ LC_ALL=C TZ=UTC0 date
--Mon Mar 1 00:21:42 UTC 2004
--$ TZ=UTC0 date +'%Y-%m-%d %H:%M:%SZ'
--2004-03-01 00:21:42Z
-+Fri Dec 15 19:48:05 UTC 2000
-+$ TZ=UTC0 date +"%Y-%m-%d %H:%M:%SZ"
-+2000-12-15 19:48:05Z
-+$ date --iso-8601=seconds # a GNU extension
-+2000-12-15T11:48:05-0800
-+$ date --iso-8601=ns # a GNU extension
-+2004-02-29T16:21:42,692722128-0800
- $ date --iso-8601=ns | tr T ' ' # --iso-8601 is a GNU extension.
- 2004-02-29 16:21:42,692722128-0800
- $ date --rfc-2822 # a GNU extension
--Sun, 29 Feb 2004 16:21:42 -0800
--$ date +'%Y-%m-%d %H:%M:%S %z' # %z is a GNU extension.
--2004-02-29 16:21:42 -0800
-+Fri, 15 Dec 2000 11:48:05 -0800
-+$ date +"%Y-%m-%d %H:%M:%S %z" # %z is a GNU extension.
-+2000-12-15 11:48:05 -0800
-+$ date +'@@%s' # %s is a MirOS extension.
-+@@1101064210
- $ date +'@@%s.%N' # %s and %N are GNU extensions.
- @@1078100502.692722128
- @end example
-@@ -234,11 +246,10 @@
- More generally, the time of day may be given as
- @samp{@var{hour}:@var{minute}:@var{second}}, where @var{hour} is
- a number between 0 and 23, @var{minute} is a number between 0 and
--59, and @var{second} is a number between 0 and 59 possibly followed by
--@samp{.} or @samp{,} and a fraction containing one or more digits.
--Alternatively,
--@samp{:@var{second}} can be omitted, in which case it is taken to
--be zero.
-+59, and @var{second} is a number between 0 and 59, with an optional
-+fraction separated by @samp{.} or @samp{,} consisting of digits.
-+Alternatively, @samp{:@var{second}} can be omitted, in which case
-+it is taken to be zero.
-
- @findex am @r{in date strings}
- @findex pm @r{in date strings}
-@@ -299,8 +310,7 @@
- described in the previous section.
-
- If neither a time zone item nor a time zone correction is supplied,
--time stamps are interpreted using the rules of the default time zone
--(@pxref{Specifying time zone rules}).
-+time stamps are interpreted using the rules of the default time zone.
-
-
- @node Day of week items
-@@ -389,7 +399,7 @@
- date strings like @samp{this thursday}.
-
- When a relative item causes the resulting date to cross a boundary
--where the clocks were adjusted, typically for daylight saving time,
-+where the clocks were adjusted, typically for daylight-saving time,
- the resulting date and time are adjusted accordingly.
-
- The fuzz in units can cause problems with relative items. For
-@@ -401,7 +411,7 @@
- @example
- $ date -R
- Thu, 31 Jul 2003 13:02:39 -0700
--$ date --date='-1 month' +'Last month was %B?'
-+$ date --date="-1 month" +'Last month was %B?'
- Last month was July?
- $ date --date="$(date +%Y-%m-15) -1 month" +'Last month was %B!'
- Last month was June!
-@@ -440,86 +450,49 @@
- @node Seconds since the Epoch
- @section Seconds since the Epoch
-
--If you precede a number with @samp{@@}, it represents an internal time
--stamp as a count of seconds. The number can contain an internal
--decimal point (either @samp{.} or @samp{,}); any excess precision not
--supported by the internal representation is truncated toward minus
--infinity. Such a number cannot be combined with any other date
--item, as it specifies a complete time stamp.
-+If you give a string consisting of @samp{@@} followed by a decimal
-+number, it is parsed as an internal time stamp, @sc{utc} for
-+@acronym{POSIX} compliant systems, @sc{tai} for systems which keep
-+time correctly, and directly mapped to a kernel time. The implementation
-+handles an optional fraction separated by @samp{.} or @samp{,} and
-+truncates to a supported internal precision, rounding towards the
-+negative infinity. Since the kernel time stamp represents complete
-+date and time information, it cannot be combined with any other
-+format given.
-
- @cindex beginning of time, for @acronym{POSIX}
- @cindex epoch, for @acronym{POSIX}
--Internally, computer times are represented as a count of seconds since
--an epoch---a well-defined point of time. On @acronym{GNU} and
--@acronym{POSIX} systems, the epoch is 1970-01-01 00:00:00 @sc{utc}, so
--@samp{@@0} represents this time, @samp{@@1} represents 1970-01-01
--00:00:01 @sc{utc}, and so forth. @acronym{GNU} and most other
--@acronym{POSIX}-compliant systems support such times as an extension
--to @acronym{POSIX}, using negative counts, so that @samp{@@-1}
--represents 1969-12-31 23:59:59 @sc{utc}.
--
--Traditional Unix systems count seconds with 32-bit two's-complement
--integers and can represent times from 1901-12-13 20:45:52 through
--2038-01-19 03:14:07 @sc{utc}. More modern systems use 64-bit counts
--of seconds with nanosecond subcounts, and can represent all the times
--in the known lifetime of the universe to a resolution of 1 nanosecond.
--
--On most systems, these counts ignore the presence of leap seconds.
--For example, on most systems @samp{@@915148799} represents 1998-12-31
--23:59:59 @sc{utc}, @samp{@@915148800} represents 1999-01-01 00:00:00
--@sc{utc}, and there is no way to represent the intervening leap second
--1998-12-31 23:59:60 @sc{utc}.
--
--@node Specifying time zone rules
--@section Specifying time zone rules
--
--@vindex TZ
--Normally, dates are interpreted using the rules of the current time
--zone, which in turn are specified by the @env{TZ} environment
--variable, or by a system default if @env{TZ} is not set. To specify a
--different set of default time zone rules that apply just to one date,
--start the date with a string of the form @samp{TZ="@var{rule}"}. The
--two quote characters (@samp{"}) must be present in the date, and any
--quotes or backslashes within @var{rule} must be escaped by a
--backslash.
--
--For example, with the @acronym{GNU} @command{date} command you can
--answer the question ``What time is it in New York when a Paris clock
--shows 6:30am on October 31, 2004?'' by using a date beginning with
--@samp{TZ="Europe/Paris"} as shown in the following shell transcript:
--
--@example
--$ export TZ="America/New_York"
--$ date --date='TZ="Europe/Paris" 2004-10-31 06:30'
--Sun Oct 31 01:30:00 EDT 2004
--@end example
-+Although the date syntax here can represent any possible time since the
-+year zero, computer integers often cannot represent such a wide range of
-+time. On @acronym{POSIX} systems, the clock starts at 1970-01-01 00:00:00
-+@sc{utc}: @acronym{POSIX} does not require support for times before the
-+@acronym{POSIX} Epoch and times far in the future. @acronym{GNU} and
-+traditional Unix systems have 32-bit signed @code{time_t} and can represent
-+times from 1901-12-13 20:45:52 through 2038-01-19 03:14:07 @sc{utc}, such
-+that @samp{@@0} represents the epoch, @samp{@@1} represents 1970-01-01
-+00:00:01 @sc{utc}, and so forth, whereas @samp{@@-1}, not mandated by
-+@acronym{POSIX}, represents 1969-12-31 23:59:59 @sc{utc}. Systems with
-+64-bit signed @code{time_t} can represent all the times in the known
-+lifetime of the universe. Modern @acronym{UNIX} systems also can give
-+precise timecounters in the nanosecond or even attosecond range with
-+a resolution often only a small multiply, like 10000, of the CPU
-+frequency (on fast machines).
-+
-+@acronym{POSIX} conformant systems do not count leap seconds, and their
-+kernel time is a seconds-since-epoch representation of @sc{utc} (which
-+is a calendar time); the MirOS family of operating systems keeps time
-+as seconds since the epoch, @sc{tai}, correctly counting leap seconds
-+and providing conversion functions. Most MirBSD ports have already
-+switched to a 64-bit signed @code{time_t}, some are using a
-+@sc{djb}-compatible @code{tai_t} internally. The rest of this
-+document has not been throughoutly checked for @sc{utc} vs @sc{tai}
-+correctness. For @acronym{POSIX}ly broken systems, @samp{@@915148799}
-+represents 1998-12-31 23:59:59 @sc{utc}, @samp{@@915148800} represents
-+1999-01-01 00:00:00 @sc{utc}, and there is no way to represent the
-+intervening leap second 1998-12-31 23:59:60 @sc{utc}. Also, calculation
-+of time deltas is wrong, such as the age of the MirOS founder is already
-+off by more than 10 seconds in 2000.
-
--In this example, the @option{--date} operand begins with its own
--@env{TZ} setting, so the rest of that operand is processed according
--to @samp{Europe/Paris} rules, treating the string @samp{2004-10-31
--06:30} as if it were in Paris. However, since the output of the
--@command{date} command is processed according to the overall time zone
--rules, it uses New York time. (Paris was normally six hours ahead of
--New York in 2004, but this example refers to a brief Halloween period
--when the gap was five hours.)
--
--A @env{TZ} value is a rule that typically names a location in the
--@uref{http://www.twinsun.com/tz/tz-link.htm, @samp{tz} database}.
--A recent catalog of location names appears in the
--@uref{http://twiki.org/cgi-bin/xtra/tzdate, TWiki Date and Time
--Gateway}. A few non-@acronym{GNU} hosts require a colon before a
--location name in a @env{TZ} setting, e.g.,
--@samp{TZ=":America/New_York"}.
--
--The @samp{tz} database includes a wide variety of locations ranging
--from @samp{Arctic/Longyearbyen} to @samp{Antarctica/South_Pole}, but
--if you are at sea and have your own private time zone, or if you are
--using a non-@acronym{GNU} host that does not support the @samp{tz}
--database, you may need to use a @acronym{POSIX} rule instead. Simple
--@acronym{POSIX} rules like @samp{UTC0} specify a time zone without
--daylight saving time; other rules can specify simple daylight saving
--regimes. @xref{TZ Variable,, Specifying the Time Zone with @code{TZ},
--libc, The GNU C Library}.
-
- @node Authors of get_date
- @section Authors of @code{get_date}
-@@ -545,3 +518,11 @@
- This chapter was originally produced by Fran@,{c}ois Pinard
- (@email{pinard@@iro.umontreal.ca}) from the @file{getdate.y} source code,
- and then edited by K.@: Berry (@email{kb@@cs.umb.edu}).
-+
-+The version of this chapter you are reading comes with CVS 1.12 (also in
-+Debian) and the MirOS family of operating systems; it is based upon an
-+older version of the @acronym{GNU} coreutils manual which is not yet
-+restricted by the licencing conditions of the GNU Free Documentation
-+License, but more freely redistributable. Appropriate changes for
-+the in-tree @code{get_date} version of CVS have been applied.
-+The MirOS version is maintained by Thorsten Glaser @email{tg@@mirbsd.de}.
---- cvs-1.12.13+real.orig/doc/mkman.pl
-+++ cvs-1.12.13+real/doc/mkman.pl
-@@ -1,10 +1,12 @@
- #! @PERL@
-+# $MirOS: src/gnu/usr.bin/cvs/doc/mkman.pl,v 1.6 2016/11/08 21:12:06 tg Exp $
- #
- # Generate a man page from sections of a Texinfo manual.
- #
- # Copyright 2004 The Free Software Foundation,
- # Derek R. Price,
- # & Ximbiot <http://ximbiot.com>
-+# Copyright (c) 2004, 2010 mirabilos <m@mirbsd.org>
- #
- # 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
-@@ -62,7 +64,7 @@
- if $keyword =~ /^(strong|sc|code|file|samp)$/;
- return "\\fI"
- if $keyword =~ /^(emph|var|dfn)$/;
-- die "no handler for keyword \`$keyword', found at line $. of file \`$file'\n";
-+ die "no handler for keyword '$keyword', found at line $. of file '$file'\n";
- }
-
-
-@@ -72,8 +74,12 @@
- {
- my ($file, $parent, $keyword, $content) = @_;
-
-- return "see node \`$content\\(aq in the CVS manual"
-- if $keyword =~ /^(p?x)?ref$/;
-+ return "node \\(aq$content\\(aq in the CVS manual"
-+ if $keyword =~ /^ref$/;
-+ return "See node \\(aq$content\\(aq in the CVS manual"
-+ if $keyword =~ /^xref$/;
-+ return "see node \\(aq$content\\(aq in the CVS manual"
-+ if $keyword =~ /^pxref$/;
- return "\\fP\\fP$content"
- if $keyword =~ /^splitrcskeyword$/;
-
-@@ -91,11 +97,11 @@
- for my $file (@ARGV)
- {
- my $fh = new IO::File "< $file"
-- or die "Failed to open file \`$file': $!";
-+ or die "Failed to open file '$file': $!";
-
- if ($file !~ /\.(texinfo|texi|txi)$/)
- {
-- print stderr "Passing \`$file' through unprocessed.\n";
-+ print stderr "Passing '$file' through unprocessed.\n";
- # Just cat any file that doesn't look like a Texinfo source.
- while (my $line = $fh->getline)
- {
-@@ -104,7 +110,7 @@
- next;
- }
-
-- print stderr "Processing \`$file'.\n";
-+ print stderr "Processing '$file'.\n";
- $texi_num++;
- my $gotone = 0;
- my $inblank = 0;
-@@ -143,6 +149,9 @@
- s/\@bullet({}|\b)/\\(bu/g;
- s/\@dots({}|\b)/\\&.../g;
-
-+ # Hack for GNU groff with nroff -Tutf8
-+ s/-/\\-/g;
-+
- # Examples should be indented and otherwise untouched
- if (/^\@example$/)
- {
-@@ -356,7 +365,7 @@
- s/\@([{}])/$1/g;
-
- # Verify we haven't left commands unprocessed.
-- die "Unprocessed command at line $. of file \`$file': "
-+ die "Unprocessed command at line $. of file '$file': "
- . ($1 ? "$1\n" : "<EOL>\n")
- if /^(?>(?:[^\@]|\@\@)*)\@(\w+|.|$)/;
-
---- cvs-1.12.13+real.orig/doc/writeproxy.rtf
-+++ cvs-1.12.13+real/doc/writeproxy.rtf
-@@ -536,8 +536,8 @@
- \par Write requests should introduce as few new delays into the write process as possible.
- \par
- \par }\pard \qj \li0\ri0\widctlpar\aspalpha\aspnum\faauto\qj \li0\ri0\widctlpar\aspalpha\aspnum\faauto\pnrdate0\pnrnot1\adjustright\rin0\lin0\itap0 {\revised\revauth1\revdttm-2038016926 Secondary}{\revised\revauth1\revdttm-2038016936
-- repository servers should stay as closely synchronized with the primary server as possible. }{\deleted\revauthdel1\revdttmdel-2038016936 Secondary repository servers should}{\deleted\revauthdel1\revdttmdel-2038016937
-- stay as closely synchronized with the primary server as possible.}{\deleted\revauthdel1\revdttmdel-2038016936 }{This includes updating a secondary }{\revised\revauth1\revdttm-2038016925 that}{\deleted\revauthdel1\revdttmdel-2038016925 which}{
-+ repository servers should stay as closely synchronised with the primary server as possible. }{\deleted\revauthdel1\revdttmdel-2038016936 Secondary repository servers should}{\deleted\revauthdel1\revdttmdel-2038016937
-+ stay as closely synchronised with the primary server as possible.}{\deleted\revauthdel1\revdttmdel-2038016936 }{This includes updating a secondary }{\revised\revauth1\revdttm-2038016925 that}{\deleted\revauthdel1\revdttmdel-2038016925 which}{
- just served as a proxy before releasing its client since otherwise the client may find its workspace out of sync with its read repository.
- \par }{\revised\revauth1\revdttm-2038016934
- \par }\pard \qj \li0\ri0\widctlpar\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 {\revised\revauth1\revdttm-2038016934 Regression tests should be provided to insure that these new features are not broken by future work on CVS.
-@@ -581,12 +581,12 @@
- \par The }{\f2 CVSROOT/loginfo}{ file in the primary repository will need to be configured to push changes to secondaries on commit. To queue updates, }{\f2 cvslock}{ should be used to lock a single, arbitrary, \'93update\'94
- directory with every commit. This will allow only a single }{\f2 rsync}{ process to run on any secondary at any given time and avoid over-utilization of bandwidth.
- \par
--\par There should exist a script that can be run to resynchronize the entire repository of each secondary server in the event that synchronization is lost since unsynchronized secondaries could prevent commits.
-+\par There should exist a script that can be run to resynchronise the entire repository of each secondary server in the event that synchronization is lost since unsynchronised secondaries could prevent commits.
- \par \line The primary server will intuit its status as the primary by noting that its hostname is the one specified in CVSROOT/config as the pr
- imary. Thus, all the secondary repositories may be configured and reconfigured by simply configuring or reconfiguring the primary repository since the primary will know to ignore secondary configuration options.
- \par
- \par }{\revised\revauth1\revdttm-2038016924 New}{\deleted\revauthdel1\revdttmdel-2038016924 A n}{\deleted\revauthdel1\revdttmdel-2038016923 ew}{ }{\revised\revauth1\revdttm-2038016924 scripting}{\deleted\revauthdel1\revdttmdel-2038016924 CVSROOT/posttag}{ hook
--}{\revised\revauth1\revdttm-2038016924 s}{ will be needed to synchronize }{\revised\revauth1\revdttm-2038016924 files}{\deleted\revauthdel1\revdttmdel-2038016924 CVSROOT/val-tags}{ after }{\deleted\revauthdel1\revdttmdel-2038016924 a }{tag}{
-+}{\revised\revauth1\revdttm-2038016924 s}{ will be needed to synchronise }{\revised\revauth1\revdttm-2038016924 files}{\deleted\revauthdel1\revdttmdel-2038016924 CVSROOT/val-tags}{ after }{\deleted\revauthdel1\revdttmdel-2038016924 a }{tag}{
- \revised\revauth1\revdttm-2038016924 , admin, and the watch family of}{ operation}{\revised\revauth1\revdttm-2038016923 s}{.
- \par }\pard \qj \li0\ri0\widctlpar\aspalpha\aspnum\faauto\qj \li0\ri0\widctlpar\aspalpha\aspnum\faauto\pnrauth1\pnrdate-2038016924\pnrnot1\adjustright\rin0\lin0\itap0 {\revised\revauth1\revdttm-2038016924
- \par Secondary repository servers will also need to be set up to pull updates from the primary following a proxy event. This will require an SSH server daemon on the primary similar to the secondary SSH server daemon specified in the previous paragraph.
---- cvs-1.12.13+real.orig/lib/Makefile.am
-+++ cvs-1.12.13+real/lib/Makefile.am
-@@ -131,12 +131,12 @@
- ## CVS test scripts for getdate.
- TESTS += test-getdate.sh
- MOSTLYCLEANFILES += getdate-expected getdate-got getdate.diff
--DISTCLEANFILES += getdate.log
-+DISTCLEANFILES += getdate.log getdate.log~
- # Program required by test-getdate.sh for testing getdate.y.
- check_PROGRAMS += getdate
- getdate_SOURCES = \
- error.c \
-- getdate.y
-+ getdate.c
- ## This source file was added only for the getdate test program when compiled
- ## with GNULIB's error.c.
- getdate_SOURCES += \
---- cvs-1.12.13+real.orig/lib/__fpending.h
-+++ cvs-1.12.13+real/lib/__fpending.h
-@@ -1,7 +1,7 @@
- #include <stddef.h>
- #include <stdio.h>
-
--#if HAVE_STDIO_EXT_H
-+#if defined(HAVE_STDIO_EXT_H) && (HAVE_STDIO_EXT_H)
- # include <stdio_ext.h>
- #endif
-
---- cvs-1.12.13+real.orig/lib/allocsa.h
-+++ cvs-1.12.13+real/lib/allocsa.h
-@@ -19,7 +19,9 @@
- #ifndef _ALLOCSA_H
- #define _ALLOCSA_H
-
-+#ifdef HAVE_ALLOCA_H
- #include <alloca.h>
-+#endif
- #include <stddef.h>
- #include <stdlib.h>
-
---- cvs-1.12.13+real.orig/lib/chdir-long.c
-+++ cvs-1.12.13+real/lib/chdir-long.c
-@@ -39,9 +39,7 @@
- # define O_DIRECTORY 0
- #endif
-
--#ifndef PATH_MAX
--# error "compile this file only if your system defines PATH_MAX"
--#endif
-+#ifdef PATH_MAX
-
- struct cd_buf
- {
-@@ -269,6 +267,8 @@
- }
- #endif
-
-+#endif /* PATH_MAX */
-+
- /*
- Local Variables:
- compile-command: "gcc -DTEST_CHDIR=1 -DHAVE_CONFIG_H -I.. -g -O -W -Wall chdir-long.c libcoreutils.a"
---- cvs-1.12.13+real.orig/lib/closeout.c
-+++ cvs-1.12.13+real/lib/closeout.c
-@@ -59,7 +59,7 @@
- when it tries to write out that buffered data. Thus, you would be
- left with an incomplete output file and the offending program would
- exit successfully. Even calling fflush is not always sufficient,
-- since some file systems (NFS and CODA) buffer written/flushed data
-+ since some filesystems (NFS and CODA) buffer written/flushed data
- until an actual close call.
-
- Besides, it's wasteful to check the return value from every call
---- cvs-1.12.13+real.orig/lib/filenamecat.c
-+++ cvs-1.12.13+real/lib/filenamecat.c
-@@ -50,7 +50,7 @@
- newly-allocated storage and return the result.
- The resulting file name F is such that the commands "ls F" and "(cd
- DIR; ls BASE)" refer to the same file, where BASE is ABASE with any
-- file system prefixes and leading separators removed.
-+ filesystem prefixes and leading separators removed.
- Arrange for a directory separator if necessary between DIR and BASE
- in the result, removing any redundant separators.
- In any case, if BASE_IN_RESULT is non-NULL, set
---- cvs-1.12.13+real.orig/lib/fncase.c
-+++ cvs-1.12.13+real/lib/fncase.c
-@@ -1,4 +1,4 @@
--/* fncase.c -- CVS support for case insensitive file systems.
-+/* fncase.c -- CVS support for case insensitive filesystems.
- Jim Blandy <jimb@cyclic.com>
-
- This file is part of GNU CVS.
---- cvs-1.12.13+real.orig/lib/getcwd.c
-+++ cvs-1.12.13+real/lib/getcwd.c
-@@ -151,7 +151,7 @@
- size_t allocated = size;
- size_t used;
-
--#if HAVE_PARTLY_WORKING_GETCWD && !defined AT_FDCWD
-+#if HAVE_PARTLY_WORKING_GETCWD
- /* The system getcwd works, except it sometimes fails when it
- shouldn't, setting errno to ERANGE, ENAMETOOLONG, or ENOENT. If
- AT_FDCWD is not defined, the algorithm below is O(N**2) and this
-@@ -204,6 +204,9 @@
- ino_t dotino;
- bool mount_point;
- int parent_status;
-+ size_t dirroom;
-+ size_t namlen;
-+ bool use_d_ino = true;
-
- /* Look at the parent directory. */
- #ifdef AT_FDCWD
-@@ -244,110 +247,131 @@
- goto lose;
- dotlist[dotlen++] = '/';
- #endif
-- /* Clear errno to distinguish EOF from error if readdir returns
-- NULL. */
-- __set_errno (0);
-- while ((d = __readdir (dirstream)) != NULL)
-+ for (;;)
- {
-+ /* Clear errno to distinguish EOF from error if readdir returns
-+ NULL. */
-+ __set_errno (0);
-+ d = __readdir (dirstream);
-+
-+ /* When we've iterated through all directory entries without finding
-+ one with a matching d_ino, rewind the stream and consider each
-+ name again, but this time, using lstat. This is necessary in a
-+ chroot on at least one system (glibc-2.3.6 + linux 2.6.12), where
-+ .., ../.., ../../.., etc. all had the same device number, yet the
-+ d_ino values for entries in / did not match those obtained
-+ via lstat. */
-+ if (d == NULL && errno == 0 && use_d_ino)
-+ {
-+ use_d_ino = false;
-+ rewinddir (dirstream);
-+ d = __readdir (dirstream);
-+ }
-+
-+ if (d == NULL)
-+ {
-+ if (errno == 0)
-+ /* EOF on dirstream, which can mean e.g., that the current
-+ directory has been removed. */
-+ __set_errno (ENOENT);
-+ goto lose;
-+ }
- if (d->d_name[0] == '.' &&
- (d->d_name[1] == '\0' ||
- (d->d_name[1] == '.' && d->d_name[2] == '\0')))
- continue;
-- if (MATCHING_INO (d, thisino) || mount_point)
-+
-+ if (use_d_ino)
- {
-- int entry_status;
-+ bool match = (MATCHING_INO (d, thisino) || mount_point);
-+ if (! match)
-+ continue;
-+ }
-+
-+ {
-+ int entry_status;
- #ifdef AT_FDCWD
-- entry_status = fstatat (fd, d->d_name, &st, AT_SYMLINK_NOFOLLOW);
-+ entry_status = fstatat (fd, d->d_name, &st, AT_SYMLINK_NOFOLLOW);
- #else
-- /* Compute size needed for this file name, or for the file
-- name ".." in the same directory, whichever is larger.
-- Room for ".." might be needed the next time through
-- the outer loop. */
-- size_t name_alloc = _D_ALLOC_NAMLEN (d);
-- size_t filesize = dotlen + MAX (sizeof "..", name_alloc);
--
-- if (filesize < dotlen)
-- goto memory_exhausted;
-+ /* Compute size needed for this file name, or for the file
-+ name ".." in the same directory, whichever is larger.
-+ Room for ".." might be needed the next time through
-+ the outer loop. */
-+ size_t name_alloc = _D_ALLOC_NAMLEN (d);
-+ size_t filesize = dotlen + MAX (sizeof "..", name_alloc);
-+
-+ if (filesize < dotlen)
-+ goto memory_exhausted;
-+
-+ if (dotsize < filesize)
-+ {
-+ /* My, what a deep directory tree you have, Grandma. */
-+ size_t newsize = MAX (filesize, dotsize * 2);
-+ size_t i;
-+ if (newsize < dotsize)
-+ goto memory_exhausted;
-+ if (dotlist != dots)
-+ free (dotlist);
-+ dotlist = malloc (newsize);
-+ if (dotlist == NULL)
-+ goto lose;
-+ dotsize = newsize;
-
-- if (dotsize < filesize)
-- {
-- /* My, what a deep directory tree you have, Grandma. */
-- size_t newsize = MAX (filesize, dotsize * 2);
-- size_t i;
-- if (newsize < dotsize)
-- goto memory_exhausted;
-- if (dotlist != dots)
-- free (dotlist);
-- dotlist = malloc (newsize);
-- if (dotlist == NULL)
-- goto lose;
-- dotsize = newsize;
--
-- i = 0;
-- do
-- {
-- dotlist[i++] = '.';
-- dotlist[i++] = '.';
-- dotlist[i++] = '/';
-- }
-- while (i < dotlen);
-- }
-+ i = 0;
-+ do
-+ {
-+ dotlist[i++] = '.';
-+ dotlist[i++] = '.';
-+ dotlist[i++] = '/';
-+ }
-+ while (i < dotlen);
-+ }
-
-- strcpy (dotlist + dotlen, d->d_name);
-- entry_status = __lstat (dotlist, &st);
-+ memcpy (dotlist + dotlen, d->d_name, _D_ALLOC_NAMLEN (d));
-+ entry_status = __lstat (dotlist, &st);
- #endif
-- /* We don't fail here if we cannot stat() a directory entry.
-- This can happen when (network) file systems fail. If this
-- entry is in fact the one we are looking for we will find
-- out soon as we reach the end of the directory without
-- having found anything. */
-- if (entry_status == 0 && S_ISDIR (st.st_mode)
-- && st.st_dev == thisdev && st.st_ino == thisino)
-- break;
-- }
-+ /* We don't fail here if we cannot stat() a directory entry.
-+ This can happen when (network) filesystems fail. If this
-+ entry is in fact the one we are looking for we will find
-+ out soon as we reach the end of the directory without
-+ having found anything. */
-+ if (entry_status == 0 && S_ISDIR (st.st_mode)
-+ && st.st_dev == thisdev && st.st_ino == thisino)
-+ break;
-+ }
- }
-- if (d == NULL)
-- {
-- if (errno == 0)
-- /* EOF on dirstream, which means that the current directory
-- has been removed. */
-- __set_errno (ENOENT);
-- goto lose;
-- }
-- else
-- {
-- size_t dirroom = dirp - dir;
-- size_t namlen = _D_EXACT_NAMLEN (d);
-
-- if (dirroom <= namlen)
-+ dirroom = dirp - dir;
-+ namlen = _D_EXACT_NAMLEN (d);
-+
-+ if (dirroom <= namlen)
-+ {
-+ if (size != 0)
- {
-- if (size != 0)
-- {
-- __set_errno (ERANGE);
-- goto lose;
-- }
-- else
-- {
-- char *tmp;
-- size_t oldsize = allocated;
--
-- allocated += MAX (allocated, namlen);
-- if (allocated < oldsize
-- || ! (tmp = realloc (dir, allocated)))
-- goto memory_exhausted;
--
-- /* Move current contents up to the end of the buffer.
-- This is guaranteed to be non-overlapping. */
-- dirp = memcpy (tmp + allocated - (oldsize - dirroom),
-- tmp + dirroom,
-- oldsize - dirroom);
-- dir = tmp;
-- }
-+ __set_errno (ERANGE);
-+ goto lose;
-+ }
-+ else
-+ {
-+ char *tmp;
-+ size_t oldsize = allocated;
-+
-+ allocated += MAX (allocated, namlen);
-+ if (allocated < oldsize
-+ || ! (tmp = realloc (dir, allocated)))
-+ goto memory_exhausted;
-+
-+ /* Move current contents up to the end of the buffer.
-+ This is guaranteed to be non-overlapping. */
-+ dirp = memcpy (tmp + allocated - (oldsize - dirroom),
-+ tmp + dirroom,
-+ oldsize - dirroom);
-+ dir = tmp;
- }
-- dirp -= namlen;
-- memcpy (dirp, d->d_name, namlen);
-- *--dirp = '/';
- }
-+ dirp -= namlen;
-+ memcpy (dirp, d->d_name, namlen);
-+ *--dirp = '/';
-
- thisdev = dotdev;
- thisino = dotino;
---- cvs-1.12.13+real.orig/lib/getdate.c
-+++ cvs-1.12.13+real/lib/getdate.c
-@@ -1,7 +1,9 @@
--/* A Bison parser, made by GNU Bison 1.875c. */
-+/* A Bison parser, made by GNU Bison 2.3. */
-
--/* Skeleton parser for Yacc-like parsing with Bison,
-- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-+/* Skeleton implementation for Bison's Yacc-like parsers in C
-+
-+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
-+ Free Software Foundation, Inc.
-
- 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
-@@ -15,16 +17,24 @@
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
-- Foundation, Inc., 59 Temple Place - Suite 330,
-- Boston, MA 02111-1307, USA. */
-+ Foundation, Inc., 51 Franklin Street, Fifth Floor,
-+ Boston, MA 02110-1301, USA. */
-+
-+/* As a special exception, you may create a larger work that contains
-+ part or all of the Bison parser skeleton and distribute that work
-+ under terms of your choice, so long as that work isn't itself a
-+ parser generator using the skeleton or a modified version thereof
-+ as a parser skeleton. Alternatively, if you modify or redistribute
-+ the parser skeleton itself, you may (at your option) remove this
-+ special exception, which will cause the skeleton and the resulting
-+ Bison output files to be licensed under the GNU General Public
-+ License without this special exception.
-
--/* As a special exception, when this file is copied by Bison into a
-- Bison output file, you may use that output file without restriction.
-- This special exception was added by the Free Software Foundation
-- in version 1.24 of Bison. */
-+ This special exception was added by the Free Software Foundation in
-+ version 2.2 of Bison. */
-
--/* Written by Richard Stallman by simplifying the original so called
-- ``semantic'' parser. */
-+/* C LALR(1) parser skeleton written by Richard Stallman, by
-+ simplifying the original so-called "semantic" parser. */
-
- /* All symbols defined below should begin with yy or YY, to avoid
- infringing on user name space. This should be done even for local
-@@ -36,6 +46,9 @@
- /* Identify Bison output. */
- #define YYBISON 1
-
-+/* Bison version. */
-+#define YYBISON_VERSION "2.3"
-+
- /* Skeleton name. */
- #define YYSKELETON_NAME "yacc.c"
-
-@@ -74,6 +87,7 @@
- tUDECIMAL_NUMBER = 276
- };
- #endif
-+/* Tokens. */
- #define tAGO 258
- #define tDST 259
- #define tDAY 260
-@@ -102,8 +116,11 @@
-
- /* Parse a string into an internal time stamp.
-
-- Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005 Free Software
-- Foundation, Inc.
-+ Copyright (C) 1995, 1997, 1998, 2003, 2004, 2005
-+ Free Software Foundation, Inc.
-+
-+ Copyright (c) 2005, 2006, 2007, 2010, 2016, 2017
-+ mirabilos <m@mirbsd.org>
-
- 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
-@@ -139,6 +156,10 @@
-
- #include "getdate.h"
-
-+#ifdef USE_LIBBSD
-+size_t strlcat(char *, const char *, size_t);
-+#endif
-+
- /* There's no need to extend the stack, so there's no need to involve
- alloca. */
- #define YYSTACK_USE_ALLOCA 0
-@@ -166,10 +187,44 @@
- #include <stdlib.h>
- #include <string.h>
-
-+#ifndef _STDLIB_H
-+#define _STDLIB_H 1 /* GNU bison needs this */
-+#endif
-+
-+#ifndef IN_RCS
- #include "setenv.h"
- #include "xalloc.h"
-+#else /* IN_RCS */
-+#include <unistd.h>
-+
-+#define HAVE_STRUCT_TM_TM_ZONE 1
-+#define HAVE_TM_GMTOFF 1
-+
-+#define gettime(ts) clock_gettime(CLOCK_REALTIME,(ts))
-
--#if STDC_HEADERS || (! defined isascii && ! HAVE_ISASCII)
-+static void *
-+xmalloc(size_t s)
-+{
-+ static const char xmalloc_enomem[] = "memory exhausted\n";
-+ void *x;
-+
-+ if ((x = malloc(s)) == NULL) {
-+ write(2, xmalloc_enomem, sizeof(xmalloc_enomem) - 1);
-+ exit(1);
-+ }
-+
-+ return (x);
-+}
-+
-+static void *
-+xmemdup(void const *p, size_t s)
-+{
-+ return (memcpy(xmalloc(s), p, s));
-+}
-+#endif /* IN_RCS */
-+
-+#if (defined(STDC_HEADERS) && STDC_HEADERS) || \
-+ (!defined(isascii) && !HAVE_ISASCII)
- # define IN_CTYPE_DOMAIN(c) 1
- #else
- # define IN_CTYPE_DOMAIN(c) isascii (c)
-@@ -188,7 +243,8 @@
- of `digit' even when the host does not conform to POSIX. */
- #define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9)
-
--#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
-+#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || \
-+ (defined(__STRICT_ANSI__) && __STRICT_ANSI__)
- # define __attribute__(x)
- #endif
-
-@@ -196,6 +252,15 @@
- # define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
- #endif
-
-+#ifndef __IDSTRING
-+#define __IDSTRING(varname, string) \
-+ static const char varname[] __attribute__((__used__)) = \
-+ "@(""#)" #varname ": " string
-+#endif
-+
-+__IDSTRING(rcsid_code, "$MirOS: src/gnu/usr.bin/cvs/lib/getdate.c,v 1.18 2017/03/26 15:57:46 tg Exp $");
-+__IDSTRING(rcsid_bron, "$miros: src/gnu/usr.bin/cvs/lib/getdate.y,v 1.12 2017/03/26 15:54:06 tg Exp $");
-+
- /* Shift A right by B bits portably, by dividing A by 2**B and
- truncating towards minus infinity. A and B should be free of side
- effects, and B should be in the range 0 <= B <= INT_BITS - 2, where
-@@ -292,7 +357,7 @@
-
- union YYSTYPE;
- static int yylex (union YYSTYPE *, parser_control *);
--static int yyerror (parser_control *, char *);
-+static int yyerror (parser_control *, const char *);
- static long int time_zone_hhmm (textint, long int);
-
-
-@@ -310,15 +375,22 @@
- # define YYERROR_VERBOSE 0
- #endif
-
--#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
--#line 209 "getdate.y"
--typedef union YYSTYPE {
-+/* Enabling the token table. */
-+#ifndef YYTOKEN_TABLE
-+# define YYTOKEN_TABLE 0
-+#endif
-+
-+#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-+typedef union YYSTYPE
-+#line 260 "getdate.y"
-+{
- long int intval;
- textint textintval;
- struct timespec timespec;
--} YYSTYPE;
--/* Line 191 of yacc.c. */
--#line 322 "getdate.c"
-+}
-+/* Line 193 of yacc.c. */
-+#line 393 "getdate.c"
-+ YYSTYPE;
- # define yystype YYSTYPE /* obsolescent; will be withdrawn */
- # define YYSTYPE_IS_DECLARED 1
- # define YYSTYPE_IS_TRIVIAL 1
-@@ -329,56 +401,171 @@
- /* Copy the second part of user declarations. */
-
-
--/* Line 214 of yacc.c. */
--#line 334 "getdate.c"
-+/* Line 216 of yacc.c. */
-+#line 406 "getdate.c"
-+
-+#ifdef short
-+# undef short
-+#endif
-+
-+#ifdef YYTYPE_UINT8
-+typedef YYTYPE_UINT8 yytype_uint8;
-+#else
-+typedef unsigned char yytype_uint8;
-+#endif
-+
-+#ifdef YYTYPE_INT8
-+typedef YYTYPE_INT8 yytype_int8;
-+#elif (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+typedef signed char yytype_int8;
-+#else
-+typedef short int yytype_int8;
-+#endif
-+
-+#ifdef YYTYPE_UINT16
-+typedef YYTYPE_UINT16 yytype_uint16;
-+#else
-+typedef unsigned short int yytype_uint16;
-+#endif
-+
-+#ifdef YYTYPE_INT16
-+typedef YYTYPE_INT16 yytype_int16;
-+#else
-+typedef short int yytype_int16;
-+#endif
-+
-+#ifndef YYSIZE_T
-+# ifdef __SIZE_TYPE__
-+# define YYSIZE_T __SIZE_TYPE__
-+# elif defined size_t
-+# define YYSIZE_T size_t
-+# elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-+# define YYSIZE_T size_t
-+# else
-+# define YYSIZE_T unsigned int
-+# endif
-+#endif
-
--#if ! defined (yyoverflow) || YYERROR_VERBOSE
-+#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
-
--# ifndef YYFREE
--# define YYFREE free
-+#ifndef YY_
-+# if defined(YYENABLE_NLS) && YYENABLE_NLS
-+# if ENABLE_NLS
-+# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
-+# define YY_(msgid) dgettext ("bison-runtime", msgid)
-+# endif
- # endif
--# ifndef YYMALLOC
--# define YYMALLOC malloc
-+# ifndef YY_
-+# define YY_(msgid) msgid
- # endif
-+#endif
-+
-+/* Suppress unused-variable warnings by "using" E. */
-+#if ! defined lint || defined __GNUC__
-+# define YYUSE(e) ((void) (e))
-+#else
-+# define YYUSE(e) /* empty */
-+#endif
-+
-+/* Identity function, used to suppress warnings about constant conditions. */
-+#ifndef lint
-+# define YYID(n) (n)
-+#else
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static int
-+YYID (int i)
-+#else
-+static int
-+YYID (i)
-+ int i;
-+#endif
-+{
-+ return i;
-+}
-+#endif
-+
-+#if ! defined yyoverflow || YYERROR_VERBOSE
-
- /* The parser invokes alloca or malloc; define the necessary symbols. */
-
- # ifdef YYSTACK_USE_ALLOCA
- # if YYSTACK_USE_ALLOCA
--# define YYSTACK_ALLOC alloca
--# endif
--# else
--# if defined (alloca) || defined (_ALLOCA_H)
--# define YYSTACK_ALLOC alloca
--# else
- # ifdef __GNUC__
- # define YYSTACK_ALLOC __builtin_alloca
-+# elif defined __BUILTIN_VA_ARG_INCR
-+# include <alloca.h> /* INFRINGES ON USER NAME SPACE */
-+# elif defined _AIX
-+# define YYSTACK_ALLOC __alloca
-+# elif defined _MSC_VER
-+# include <malloc.h> /* INFRINGES ON USER NAME SPACE */
-+# define alloca _alloca
-+# else
-+# define YYSTACK_ALLOC alloca
-+# if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-+# ifndef _STDLIB_H
-+# define _STDLIB_H 1
-+# endif
-+# endif
- # endif
- # endif
- # endif
-
- # ifdef YYSTACK_ALLOC
-- /* Pacify GCC's `empty if-body' warning. */
--# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
--# else
--# if defined (__STDC__) || defined (__cplusplus)
--# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
--# define YYSIZE_T size_t
-+ /* Pacify GCC's `empty if-body' warning. */
-+# define YYSTACK_FREE(Ptr) do { /* empty */; } while (YYID (0))
-+# ifndef YYSTACK_ALLOC_MAXIMUM
-+ /* The OS might guarantee only one guard page at the bottom of the stack,
-+ and a page size can be as small as 4096 bytes. So we cannot safely
-+ invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
-+ to allow for a few compiler-allocated temporary stack slots. */
-+# define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
- # endif
-+# else
- # define YYSTACK_ALLOC YYMALLOC
- # define YYSTACK_FREE YYFREE
-+# ifndef YYSTACK_ALLOC_MAXIMUM
-+# define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
-+# endif
-+# if (defined __cplusplus && ! defined _STDLIB_H \
-+ && ! ((defined YYMALLOC || defined malloc) \
-+ && (defined YYFREE || defined free)))
-+# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-+# ifndef _STDLIB_H
-+# define _STDLIB_H 1
-+# endif
-+# endif
-+# ifndef YYMALLOC
-+# define YYMALLOC malloc
-+# if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
-+# endif
-+# endif
-+# ifndef YYFREE
-+# define YYFREE free
-+# if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+void free (void *); /* INFRINGES ON USER NAME SPACE */
-+# endif
-+# endif
- # endif
--#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
-+#endif /* ! defined yyoverflow || YYERROR_VERBOSE */
-
-
--#if (! defined (yyoverflow) \
-- && (! defined (__cplusplus) \
-- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
-+#if (! defined yyoverflow \
-+ && (! defined __cplusplus \
-+ || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
-
- /* A type that is properly aligned for any stack member. */
- union yyalloc
- {
-- short yyss;
-+ yytype_int16 yyss;
- YYSTYPE yyvs;
- };
-
-@@ -388,24 +575,24 @@
- /* The size of an array large to enough to hold all stacks, each with
- N elements. */
- # define YYSTACK_BYTES(N) \
-- ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
-+ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
- + YYSTACK_GAP_MAXIMUM)
-
- /* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
- # ifndef YYCOPY
--# if defined (__GNUC__) && 1 < __GNUC__
-+# if defined __GNUC__ && 1 < __GNUC__
- # define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
- # else
- # define YYCOPY(To, From, Count) \
- do \
- { \
-- register YYSIZE_T yyi; \
-+ YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
-- while (0)
-+ while (YYID (0))
- # endif
- # endif
-
-@@ -423,39 +610,33 @@
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
-- while (0)
-+ while (YYID (0))
-
- #endif
-
--#if defined (__STDC__) || defined (__cplusplus)
-- typedef signed char yysigned_char;
--#else
-- typedef short yysigned_char;
--#endif
--
--/* YYFINAL -- State number of the termination state. */
-+/* YYFINAL -- State number of the termination state. */
- #define YYFINAL 12
- /* YYLAST -- Last index in YYTABLE. */
- #define YYLAST 88
-
--/* YYNTOKENS -- Number of terminals. */
-+/* YYNTOKENS -- Number of terminals. */
- #define YYNTOKENS 26
--/* YYNNTS -- Number of nonterminals. */
-+/* YYNNTS -- Number of nonterminals. */
- #define YYNNTS 19
--/* YYNRULES -- Number of rules. */
-+/* YYNRULES -- Number of rules. */
- #define YYNRULES 78
--/* YYNRULES -- Number of states. */
-+/* YYNRULES -- Number of states. */
- #define YYNSTATES 96
-
- /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
- #define YYUNDEFTOK 2
- #define YYMAXUTOK 276
-
--#define YYTRANSLATE(YYX) \
-+#define YYTRANSLATE(YYX) \
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
- /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
--static const unsigned char yytranslate[] =
-+static const yytype_uint8 yytranslate[] =
- {
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
-@@ -490,7 +671,7 @@
- #if YYDEBUG
- /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
--static const unsigned char yyprhs[] =
-+static const yytype_uint8 yyprhs[] =
- {
- 0, 0, 3, 5, 7, 10, 11, 14, 16, 18,
- 20, 22, 24, 26, 28, 31, 36, 42, 49, 57,
-@@ -502,8 +683,8 @@
- 207, 209, 211, 213, 215, 217, 218, 221, 222
- };
-
--/* YYRHS -- A `-1'-separated list of the rules' RHS. */
--static const yysigned_char yyrhs[] =
-+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-+static const yytype_int8 yyrhs[] =
- {
- 27, 0, -1, 28, -1, 29, -1, 22, 39, -1,
- -1, 29, 30, -1, 31, -1, 32, -1, 33, -1,
-@@ -531,22 +712,22 @@
- };
-
- /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
--static const unsigned short yyrline[] =
-+static const yytype_uint16 yyrline[] =
- {
-- 0, 230, 230, 231, 235, 242, 244, 248, 250, 252,
-- 254, 256, 258, 260, 264, 272, 280, 290, 297, 309,
-- 314, 322, 324, 326, 328, 330, 335, 340, 345, 350,
-- 358, 363, 383, 390, 398, 406, 411, 417, 422, 431,
-- 441, 445, 447, 449, 451, 453, 455, 457, 459, 461,
-- 463, 465, 467, 469, 471, 473, 475, 477, 479, 481,
-- 483, 485, 489, 491, 493, 495, 497, 499, 503, 503,
-- 506, 507, 512, 513, 518, 556, 557, 563, 564
-+ 0, 281, 281, 282, 286, 293, 295, 299, 301, 303,
-+ 305, 307, 309, 311, 315, 323, 331, 341, 348, 360,
-+ 365, 373, 375, 377, 379, 381, 386, 391, 396, 401,
-+ 409, 414, 434, 441, 449, 457, 462, 468, 473, 482,
-+ 492, 496, 498, 500, 502, 504, 506, 508, 510, 512,
-+ 514, 516, 518, 520, 522, 524, 526, 528, 530, 532,
-+ 534, 536, 540, 542, 544, 546, 548, 550, 554, 554,
-+ 557, 558, 563, 564, 569, 607, 608, 614, 615
- };
- #endif
-
--#if YYDEBUG || YYERROR_VERBOSE
--/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
-+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
-+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
-+ First, the terminals, then, starting at YYNTOKENS, nonterminals. */
- static const char *const yytname[] =
- {
- "$end", "error", "$undefined", "tAGO", "tDST", "tDAY", "tDAY_UNIT",
-@@ -563,7 +744,7 @@
- # ifdef YYPRINT
- /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
- token YYLEX-NUM. */
--static const unsigned short yytoknum[] =
-+static const yytype_uint16 yytoknum[] =
- {
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
-@@ -572,7 +753,7 @@
- # endif
-
- /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
--static const unsigned char yyr1[] =
-+static const yytype_uint8 yyr1[] =
- {
- 0, 26, 27, 27, 28, 29, 29, 30, 30, 30,
- 30, 30, 30, 30, 31, 31, 31, 31, 31, 32,
-@@ -585,7 +766,7 @@
- };
-
- /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
--static const unsigned char yyr2[] =
-+static const yytype_uint8 yyr2[] =
- {
- 0, 2, 1, 1, 2, 0, 2, 1, 1, 1,
- 1, 1, 1, 1, 2, 4, 5, 6, 7, 1,
-@@ -600,7 +781,7 @@
- /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
- means the default is an error. */
--static const unsigned char yydefact[] =
-+static const yytype_uint8 yydefact[] =
- {
- 5, 0, 0, 2, 3, 71, 73, 70, 72, 4,
- 68, 69, 1, 26, 49, 24, 52, 19, 55, 0,
-@@ -614,8 +795,8 @@
- 16, 77, 31, 75, 17, 18
- };
-
--/* YYDEFGOTO[NTERM-NUM]. */
--static const yysigned_char yydefgoto[] =
-+/* YYDEFGOTO[NTERM-NUM]. */
-+static const yytype_int8 yydefgoto[] =
- {
- -1, 2, 3, 4, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 9, 10, 11, 38, 77, 88
-@@ -624,7 +805,7 @@
- /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
- #define YYPACT_NINF -43
--static const yysigned_char yypact[] =
-+static const yytype_int8 yypact[] =
- {
- -18, 48, 9, -43, 19, -43, -43, -43, -43, -43,
- -43, -43, -43, 32, -43, -43, -43, 54, -43, 28,
-@@ -639,7 +820,7 @@
- };
-
- /* YYPGOTO[NTERM-NUM]. */
--static const yysigned_char yypgoto[] =
-+static const yytype_int8 yypgoto[] =
- {
- -43, -43, -43, -43, -43, -43, -43, -43, -43, -43,
- -43, -43, 55, -43, -43, -11, -43, -42, -7
-@@ -650,7 +831,7 @@
- number is the opposite. If zero, do what YYDEFACT says.
- If YYTABLE_NINF, syntax error. */
- #define YYTABLE_NINF -1
--static const unsigned char yytable[] =
-+static const yytype_uint8 yytable[] =
- {
- 59, 60, 50, 61, 1, 62, 63, 64, 65, 12,
- 66, 67, 53, 68, 54, 85, 51, 55, 69, 56,
-@@ -663,7 +844,7 @@
- 81, 82, 83, 84, 94, 92, 0, 0, 76
- };
-
--static const yysigned_char yycheck[] =
-+static const yytype_int8 yycheck[] =
- {
- 5, 6, 4, 8, 22, 10, 11, 12, 13, 0,
- 15, 16, 6, 18, 8, 10, 18, 11, 23, 13,
-@@ -678,7 +859,7 @@
-
- /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
--static const unsigned char yystos[] =
-+static const yytype_uint8 yystos[] =
- {
- 0, 22, 27, 28, 29, 18, 19, 20, 21, 39,
- 40, 41, 0, 5, 6, 7, 8, 9, 11, 12,
-@@ -692,22 +873,6 @@
- 43, 41, 19, 18, 44, 43
- };
-
--#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
--# define YYSIZE_T __SIZE_TYPE__
--#endif
--#if ! defined (YYSIZE_T) && defined (size_t)
--# define YYSIZE_T size_t
--#endif
--#if ! defined (YYSIZE_T)
--# if defined (__STDC__) || defined (__cplusplus)
--# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
--# define YYSIZE_T size_t
--# endif
--#endif
--#if ! defined (YYSIZE_T)
--# define YYSIZE_T unsigned int
--#endif
--
- #define yyerrok (yyerrstatus = 0)
- #define yyclearin (yychar = YYEMPTY)
- #define YYEMPTY (-2)
-@@ -733,30 +898,63 @@
- yychar = (Token); \
- yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
-- YYPOPSTACK; \
-+ YYPOPSTACK (1); \
- goto yybackup; \
- } \
- else \
-- { \
-- yyerror (pc, "syntax error: cannot back up");\
-+ { \
-+ yyerror (pc, YY_("syntax error: cannot back up")); \
- YYERROR; \
- } \
--while (0)
-+while (YYID (0))
-+
-
- #define YYTERROR 1
- #define YYERRCODE 256
-
--/* YYLLOC_DEFAULT -- Compute the default location (before the actions
-- are run). */
-
-+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
-+ If N is 0, then set CURRENT to the empty location which ends
-+ the previous symbol: RHS[0] (always defined). */
-+
-+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
- #ifndef YYLLOC_DEFAULT
--# define YYLLOC_DEFAULT(Current, Rhs, N) \
-- ((Current).first_line = (Rhs)[1].first_line, \
-- (Current).first_column = (Rhs)[1].first_column, \
-- (Current).last_line = (Rhs)[N].last_line, \
-- (Current).last_column = (Rhs)[N].last_column)
-+# define YYLLOC_DEFAULT(Current, Rhs, N) \
-+ do \
-+ if (YYID (N)) \
-+ { \
-+ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
-+ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
-+ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
-+ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
-+ } \
-+ else \
-+ { \
-+ (Current).first_line = (Current).last_line = \
-+ YYRHSLOC (Rhs, 0).last_line; \
-+ (Current).first_column = (Current).last_column = \
-+ YYRHSLOC (Rhs, 0).last_column; \
-+ } \
-+ while (YYID (0))
-+#endif
-+
-+
-+/* YY_LOCATION_PRINT -- Print the location on the stream.
-+ This macro was not mandated originally: define only if we know
-+ we won't break user code: when these are the locations we know. */
-+
-+#ifndef YY_LOCATION_PRINT
-+# if defined(YYLTYPE_IS_TRIVIAL) && YYLTYPE_IS_TRIVIAL
-+# define YY_LOCATION_PRINT(File, Loc) \
-+ fprintf (File, "%d.%d-%d.%d", \
-+ (Loc).first_line, (Loc).first_column, \
-+ (Loc).last_line, (Loc).last_column)
-+# else
-+# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
-+# endif
- #endif
-
-+
- /* YYLEX -- calling `yylex' with the right arguments. */
-
- #ifdef YYLEX_PARAM
-@@ -777,42 +975,99 @@
- do { \
- if (yydebug) \
- YYFPRINTF Args; \
--} while (0)
-+} while (YYID (0))
-
--# define YYDSYMPRINT(Args) \
--do { \
-- if (yydebug) \
-- yysymprint Args; \
--} while (0)
-+# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
-+do { \
-+ if (yydebug) \
-+ { \
-+ YYFPRINTF (stderr, "%s ", Title); \
-+ yy_symbol_print (stderr, \
-+ Type, Value, pc); \
-+ YYFPRINTF (stderr, "\n"); \
-+ } \
-+} while (YYID (0))
-
--# define YYDSYMPRINTF(Title, Token, Value, Location) \
--do { \
-- if (yydebug) \
-- { \
-- YYFPRINTF (stderr, "%s ", Title); \
-- yysymprint (stderr, \
-- Token, Value); \
-- YYFPRINTF (stderr, "\n"); \
-- } \
--} while (0)
-+
-+/*--------------------------------.
-+| Print this symbol on YYOUTPUT. |
-+`--------------------------------*/
-+
-+/*ARGSUSED*/
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static void
-+yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, parser_control *pc)
-+#else
-+static void
-+yy_symbol_value_print (yyoutput, yytype, yyvaluep, pc)
-+ FILE *yyoutput;
-+ int yytype;
-+ YYSTYPE const * const yyvaluep;
-+ parser_control *pc;
-+#endif
-+{
-+ if (!yyvaluep)
-+ return;
-+ YYUSE (pc);
-+# ifdef YYPRINT
-+ if (yytype < YYNTOKENS)
-+ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-+# else
-+ YYUSE (yyoutput);
-+# endif
-+ switch (yytype)
-+ {
-+ default:
-+ break;
-+ }
-+}
-+
-+
-+/*--------------------------------.
-+| Print this symbol on YYOUTPUT. |
-+`--------------------------------*/
-+
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+static void
-+yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, parser_control *pc)
-+#else
-+static void
-+yy_symbol_print (yyoutput, yytype, yyvaluep, pc)
-+ FILE *yyoutput;
-+ int yytype;
-+ YYSTYPE const * const yyvaluep;
-+ parser_control *pc;
-+#endif
-+{
-+ if (yytype < YYNTOKENS)
-+ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-+ else
-+ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-+
-+ yy_symbol_value_print (yyoutput, yytype, yyvaluep, pc);
-+ YYFPRINTF (yyoutput, ")");
-+}
-
- /*------------------------------------------------------------------.
- | yy_stack_print -- Print the state stack from its BOTTOM up to its |
- | TOP (included). |
- `------------------------------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yy_stack_print (short *bottom, short *top)
-+yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
- #else
- static void
- yy_stack_print (bottom, top)
-- short *bottom;
-- short *top;
-+ yytype_int16 *bottom;
-+ yytype_int16 *top;
- #endif
- {
- YYFPRINTF (stderr, "Stack now");
-- for (/* Nothing. */; bottom <= top; ++bottom)
-+ for (; bottom <= top; ++bottom)
- YYFPRINTF (stderr, " %d", *bottom);
- YYFPRINTF (stderr, "\n");
- }
-@@ -821,45 +1076,53 @@
- do { \
- if (yydebug) \
- yy_stack_print ((Bottom), (Top)); \
--} while (0)
-+} while (YYID (0))
-
-
- /*------------------------------------------------.
- | Report that the YYRULE is going to be reduced. |
- `------------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yy_reduce_print (int yyrule)
-+yy_reduce_print (YYSTYPE *yyvsp, int yyrule, parser_control *pc)
- #else
- static void
--yy_reduce_print (yyrule)
-+yy_reduce_print (yyvsp, yyrule, pc)
-+ YYSTYPE *yyvsp;
- int yyrule;
-+ parser_control *pc;
- #endif
- {
-+ int yynrhs = yyr2[yyrule];
- int yyi;
-- unsigned int yylno = yyrline[yyrule];
-- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
-- yyrule - 1, yylno);
-- /* Print the symbols being reduced, and their result. */
-- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
-- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
-- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
-+ unsigned long int yylno = yyrline[yyrule];
-+ YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
-+ yyrule - 1, yylno);
-+ /* The symbols being reduced. */
-+ for (yyi = 0; yyi < yynrhs; yyi++)
-+ {
-+ fprintf (stderr, " $%d = ", yyi + 1);
-+ yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
-+ &(yyvsp[(yyi + 1) - (yynrhs)])
-+ , pc);
-+ fprintf (stderr, "\n");
-+ }
- }
-
- # define YY_REDUCE_PRINT(Rule) \
- do { \
- if (yydebug) \
-- yy_reduce_print (Rule); \
--} while (0)
-+ yy_reduce_print (yyvsp, Rule, pc); \
-+} while (YYID (0))
-
- /* Nonzero means print parse trace. It is left uninitialized so that
- multiple parsers can coexist. */
- int yydebug;
- #else /* !YYDEBUG */
- # define YYDPRINTF(Args)
--# define YYDSYMPRINT(Args)
--# define YYDSYMPRINTF(Title, Token, Value, Location)
-+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
- # define YY_STACK_PRINT(Bottom, Top)
- # define YY_REDUCE_PRINT(Rule)
- #endif /* !YYDEBUG */
-@@ -874,13 +1137,9 @@
- if the built-in stack extension method is used).
-
- Do not make this value too large; the results are undefined if
-- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
-+ YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
-
--#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
--# undef YYMAXDEPTH
--#endif
--
- #ifndef YYMAXDEPTH
- # define YYMAXDEPTH 10000
- #endif
-@@ -890,45 +1149,47 @@
- #if YYERROR_VERBOSE
-
- # ifndef yystrlen
--# if defined (__GLIBC__) && defined (_STRING_H)
-+# if defined __GLIBC__ && defined _STRING_H
- # define yystrlen strlen
- # else
- /* Return the length of YYSTR. */
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static YYSIZE_T
--# if defined (__STDC__) || defined (__cplusplus)
- yystrlen (const char *yystr)
--# else
-+#else
-+static YYSIZE_T
- yystrlen (yystr)
-- const char *yystr;
--# endif
-+ const char *yystr;
-+#endif
- {
-- register const char *yys = yystr;
--
-- while (*yys++ != '\0')
-+ YYSIZE_T yylen;
-+ for (yylen = 0; yystr[yylen]; yylen++)
- continue;
--
-- return yys - yystr - 1;
-+ return yylen;
- }
- # endif
- # endif
-
- # ifndef yystpcpy
--# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
-+# if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
- # define yystpcpy stpcpy
- # else
- /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
- YYDEST. */
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static char *
--# if defined (__STDC__) || defined (__cplusplus)
- yystpcpy (char *yydest, const char *yysrc)
--# else
-+#else
-+static char *
- yystpcpy (yydest, yysrc)
-- char *yydest;
-- const char *yysrc;
--# endif
-+ char *yydest;
-+ const char *yysrc;
-+#endif
- {
-- register char *yyd = yydest;
-- register const char *yys = yysrc;
-+ char *yyd = yydest;
-+ const char *yys = yysrc;
-
- while ((*yyd++ = *yys++) != '\0')
- continue;
-@@ -938,70 +1199,194 @@
- # endif
- # endif
-
--#endif /* !YYERROR_VERBOSE */
-+# ifndef yytnamerr
-+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
-+ quotes and backslashes, so that it's suitable for yyerror. The
-+ heuristic is that double-quoting is unnecessary unless the string
-+ contains an apostrophe, a comma, or backslash (other than
-+ backslash-backslash). YYSTR is taken from yytname. If YYRES is
-+ null, do not copy; instead, return the length of what the result
-+ would have been. */
-+static YYSIZE_T
-+yytnamerr (char *yyres, const char *yystr)
-+{
-+ if (*yystr == '"')
-+ {
-+ YYSIZE_T yyn = 0;
-+ char const *yyp = yystr;
-+
-+ for (;;)
-+ switch (*++yyp)
-+ {
-+ case '\'':
-+ case ',':
-+ goto do_not_strip_quotes;
-+
-+ case '\\':
-+ if (*++yyp != '\\')
-+ goto do_not_strip_quotes;
-+ /* Fall through. */
-+ default:
-+ if (yyres)
-+ yyres[yyn] = *yyp;
-+ yyn++;
-+ break;
-
--
-+ case '"':
-+ if (yyres)
-+ yyres[yyn] = '\0';
-+ return yyn;
-+ }
-+ do_not_strip_quotes: ;
-+ }
-
--#if YYDEBUG
--/*--------------------------------.
--| Print this symbol on YYOUTPUT. |
--`--------------------------------*/
-+ if (! yyres)
-+ return yystrlen (yystr);
-
--#if defined (__STDC__) || defined (__cplusplus)
--static void
--yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
--#else
--static void
--yysymprint (yyoutput, yytype, yyvaluep)
-- FILE *yyoutput;
-- int yytype;
-- YYSTYPE *yyvaluep;
--#endif
-+ return yystpcpy (yyres, yystr) - yyres;
-+}
-+# endif
-+
-+/* Copy into YYRESULT an error message about the unexpected token
-+ YYCHAR while in state YYSTATE. Return the number of bytes copied,
-+ including the terminating null byte. If YYRESULT is null, do not
-+ copy anything; just return the number of bytes that would be
-+ copied. As a special case, return 0 if an ordinary "syntax error"
-+ message will do. Return YYSIZE_MAXIMUM if overflow occurs during
-+ size calculation. */
-+static YYSIZE_T
-+yysyntax_error (char *yyresult, int yystate, int yychar)
- {
-- /* Pacify ``unused variable'' warnings. */
-- (void) yyvaluep;
-+ int yyn = yypact[yystate];
-
-- if (yytype < YYNTOKENS)
-+ if (! (YYPACT_NINF < yyn && yyn <= YYLAST))
-+ return 0;
-+ else
- {
-- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
--# ifdef YYPRINT
-- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-+ int yytype = YYTRANSLATE (yychar);
-+ YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
-+ YYSIZE_T yysize = yysize0;
-+ YYSIZE_T yysize1;
-+ int yysize_overflow = 0;
-+ enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
-+ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
-+ int yyx;
-+
-+# if 0
-+ /* This is so xgettext sees the translatable formats that are
-+ constructed on the fly. */
-+ YY_("syntax error, unexpected %s");
-+ YY_("syntax error, unexpected %s, expecting %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s or %s");
-+ YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
- # endif
-- }
-- else
-- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
-+ char *yyfmt;
-+ char const *yyf;
-+ static char const yyunexpected[] = "syntax error, unexpected %s";
-+ static char const yyexpecting[] = ", expecting %s";
-+ static char const yyor[] = " or %s";
-+ char yyformat[sizeof yyunexpected
-+ + sizeof yyexpecting - 1
-+ + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
-+ * (sizeof yyor - 1))];
-+ char const *yyprefix = yyexpecting;
-+
-+ /* Start YYX at -YYN if negative to avoid negative indexes in
-+ YYCHECK. */
-+ int yyxbegin = yyn < 0 ? -yyn : 0;
-+
-+ /* Stay within bounds of both yycheck and yytname. */
-+ int yychecklim = YYLAST - yyn + 1;
-+ int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-+ int yycount = 1;
-
-- switch (yytype)
-- {
-- default:
-- break;
-+ yyarg[0] = yytname[yytype];
-+ yyfmt = yystpcpy (yyformat, yyunexpected);
-+
-+ for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-+ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-+ {
-+ if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
-+ {
-+ yycount = 1;
-+ yysize = yysize0;
-+ yyformat[sizeof yyunexpected - 1] = '\0';
-+ break;
-+ }
-+ yyarg[yycount++] = yytname[yyx];
-+ yysize1 = yysize + yytnamerr (0, yytname[yyx]);
-+ yysize_overflow |= (yysize1 < yysize);
-+ yysize = yysize1;
-+ yyfmt = yystpcpy (yyfmt, yyprefix);
-+ yyprefix = yyor;
-+ }
-+
-+ yyf = YY_(yyformat);
-+ yysize1 = yysize + yystrlen (yyf);
-+ yysize_overflow |= (yysize1 < yysize);
-+ yysize = yysize1;
-+
-+ if (yysize_overflow)
-+ return YYSIZE_MAXIMUM;
-+
-+ if (yyresult)
-+ {
-+ /* Avoid sprintf, as that infringes on the user's name space.
-+ Don't have undefined behavior even if the translation
-+ produced a string with the wrong number of "%s"s. */
-+ char *yyp = yyresult;
-+ int yyi = 0;
-+ while ((*yyp = *yyf) != '\0')
-+ {
-+ if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
-+ {
-+ yyp += yytnamerr (yyp, yyarg[yyi++]);
-+ yyf += 2;
-+ }
-+ else
-+ {
-+ yyp++;
-+ yyf++;
-+ }
-+ }
-+ }
-+ return yysize;
- }
-- YYFPRINTF (yyoutput, ")");
- }
-+#endif /* YYERROR_VERBOSE */
-+
-
--#endif /* ! YYDEBUG */
- /*-----------------------------------------------.
- | Release the memory associated to this symbol. |
- `-----------------------------------------------*/
-
--#if defined (__STDC__) || defined (__cplusplus)
-+/*ARGSUSED*/
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- static void
--yydestruct (int yytype, YYSTYPE *yyvaluep)
-+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, parser_control *pc)
- #else
- static void
--yydestruct (yytype, yyvaluep)
-+yydestruct (yymsg, yytype, yyvaluep, pc)
-+ const char *yymsg;
- int yytype;
- YYSTYPE *yyvaluep;
-+ parser_control *pc;
- #endif
- {
-- /* Pacify ``unused variable'' warnings. */
-- (void) yyvaluep;
-+ YYUSE (yyvaluep);
-+ YYUSE (pc);
-+
-+ if (!yymsg)
-+ yymsg = "Deleting";
-+ YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
-
- switch (yytype)
- {
-
- default:
-- break;
-+ break;
- }
- }
-
-@@ -1009,14 +1394,14 @@
- /* Prevent warnings from -Wmissing-prototypes. */
-
- #ifdef YYPARSE_PARAM
--# if defined (__STDC__) || defined (__cplusplus)
-+#if defined __STDC__ || defined __cplusplus
- int yyparse (void *YYPARSE_PARAM);
--# else
-+#else
- int yyparse ();
--# endif
-+#endif
- #else /* ! YYPARSE_PARAM */
--#if defined (__STDC__) || defined (__cplusplus)
--int yyparse ( parser_control *pc );
-+#if defined __STDC__ || defined __cplusplus
-+int yyparse (parser_control *pc);
- #else
- int yyparse ();
- #endif
-@@ -1032,39 +1417,49 @@
- `----------*/
-
- #ifdef YYPARSE_PARAM
--# if defined (__STDC__) || defined (__cplusplus)
--int yyparse (void *YYPARSE_PARAM)
--# else
--int yyparse (YYPARSE_PARAM)
-- void *YYPARSE_PARAM;
--# endif
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
-+int
-+yyparse (void *YYPARSE_PARAM)
-+#else
-+int
-+yyparse (YYPARSE_PARAM)
-+ void *YYPARSE_PARAM;
-+#endif
- #else /* ! YYPARSE_PARAM */
--#if defined (__STDC__) || defined (__cplusplus)
-+#if (defined __STDC__ || defined __C99__FUNC__ \
-+ || defined __cplusplus || defined _MSC_VER)
- int
--yyparse ( parser_control *pc )
-+yyparse (parser_control *pc)
- #else
- int
- yyparse (pc)
-- parser_control *pc ;
-+ parser_control *pc;
- #endif
- #endif
- {
-- /* The lookahead symbol. */
-+ /* The look-ahead symbol. */
- int yychar;
-
--/* The semantic value of the lookahead symbol. */
-+/* The semantic value of the look-ahead symbol. */
- YYSTYPE yylval;
-
- /* Number of syntax errors so far. */
- int yynerrs;
-
-- register int yystate;
-- register int yyn;
-+ int yystate;
-+ int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
-- /* Lookahead token as an internal (translated) token number. */
-+ /* Look-ahead token as an internal (translated) token number. */
- int yytoken = 0;
-+#if YYERROR_VERBOSE
-+ /* Buffer for error messages, and its allocated size. */
-+ char yymsgbuf[128];
-+ char *yymsg = yymsgbuf;
-+ YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-+#endif
-
- /* Three stacks and their tools:
- `yyss': related to states,
-@@ -1075,18 +1470,18 @@
- to reallocate them elsewhere. */
-
- /* The state stack. */
-- short yyssa[YYINITDEPTH];
-- short *yyss = yyssa;
-- register short *yyssp;
-+ yytype_int16 yyssa[YYINITDEPTH];
-+ yytype_int16 *yyss = yyssa;
-+ yytype_int16 *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
-- register YYSTYPE *yyvsp;
-+ YYSTYPE *yyvsp;
-
-
-
--#define YYPOPSTACK (yyvsp--, yyssp--)
-+#define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
-
- YYSIZE_T yystacksize = YYINITDEPTH;
-
-@@ -1095,9 +1490,9 @@
- YYSTYPE yyval;
-
-
-- /* When reducing, the number of symbols on the RHS of the reduced
-- rule. */
-- int yylen;
-+ /* The number of symbols on the RHS of the reduced rule.
-+ Keep to zero when no symbol should be popped. */
-+ int yylen = 0;
-
- YYDPRINTF ((stderr, "Starting parse\n"));
-
-@@ -1121,8 +1516,7 @@
- `------------------------------------------------------------*/
- yynewstate:
- /* In all cases, when you get here, the value and location stacks
-- have just been pushed. so pushing a state here evens the stacks.
-- */
-+ have just been pushed. So pushing a state here evens the stacks. */
- yyssp++;
-
- yysetstate:
-@@ -1135,18 +1529,18 @@
-
- #ifdef yyoverflow
- {
-- /* Give user a chance to reallocate the stack. Use copies of
-+ /* Give user a chance to reallocate the stack. Use copies of
- these so that the &'s don't force the real ones into
- memory. */
- YYSTYPE *yyvs1 = yyvs;
-- short *yyss1 = yyss;
-+ yytype_int16 *yyss1 = yyss;
-
-
- /* Each stack pointer address is followed by the size of the
- data in use in that stack, in bytes. This used to be a
- conditional around just the two extra args, but that might
- be undefined if yyoverflow is a macro. */
-- yyoverflow ("parser stack overflow",
-+ yyoverflow (YY_("memory exhausted"),
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
-
-@@ -1157,21 +1551,21 @@
- }
- #else /* no yyoverflow */
- # ifndef YYSTACK_RELOCATE
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- # else
- /* Extend the stack our own way. */
- if (YYMAXDEPTH <= yystacksize)
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- yystacksize *= 2;
- if (YYMAXDEPTH < yystacksize)
- yystacksize = YYMAXDEPTH;
-
- {
-- short *yyss1 = yyss;
-+ yytype_int16 *yyss1 = yyss;
- union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
-- goto yyoverflowlab;
-+ goto yyexhaustedlab;
- YYSTACK_RELOCATE (yyss);
- YYSTACK_RELOCATE (yyvs);
-
-@@ -1202,19 +1596,17 @@
- `-----------*/
- yybackup:
-
--/* Do appropriate processing given the current state. */
--/* Read a lookahead token if we need one and don't already have one. */
--/* yyresume: */
--
-- /* First try to decide what to do without reference to lookahead token. */
-+ /* Do appropriate processing given the current state. Read a
-+ look-ahead token if we need one and don't already have one. */
-
-+ /* First try to decide what to do without reference to look-ahead token. */
- yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
- goto yydefault;
-
-- /* Not known => get a lookahead token if don't already have one. */
-+ /* Not known => get a look-ahead token if don't already have one. */
-
-- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
-+ /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */
- if (yychar == YYEMPTY)
- {
- YYDPRINTF ((stderr, "Reading a token: "));
-@@ -1229,7 +1621,7 @@
- else
- {
- yytoken = YYTRANSLATE (yychar);
-- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
-+ YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
- }
-
- /* If the proper action on seeing token YYTOKEN is to reduce or to
-@@ -1249,22 +1641,21 @@
- if (yyn == YYFINAL)
- YYACCEPT;
-
-- /* Shift the lookahead token. */
-- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
--
-- /* Discard the token being shifted unless it is eof. */
-- if (yychar != YYEOF)
-- yychar = YYEMPTY;
--
-- *++yyvsp = yylval;
--
--
- /* Count tokens shifted since error; after three, turn off error
- status. */
- if (yyerrstatus)
- yyerrstatus--;
-
-+ /* Shift the look-ahead token. */
-+ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
-+
-+ /* Discard the shifted token unless it is eof. */
-+ if (yychar != YYEOF)
-+ yychar = YYEMPTY;
-+
- yystate = yyn;
-+ *++yyvsp = yylval;
-+
- goto yynewstate;
-
-
-@@ -1300,272 +1691,272 @@
- switch (yyn)
- {
- case 4:
--#line 236 "getdate.y"
-+#line 287 "getdate.y"
- {
-- pc->seconds = yyvsp[0].timespec;
-+ pc->seconds = (yyvsp[(2) - (2)].timespec);
- pc->timespec_seen = true;
-- }
-+ ;}
- break;
-
- case 7:
--#line 249 "getdate.y"
-- { pc->times_seen++; }
-+#line 300 "getdate.y"
-+ { pc->times_seen++; ;}
- break;
-
- case 8:
--#line 251 "getdate.y"
-- { pc->local_zones_seen++; }
-+#line 302 "getdate.y"
-+ { pc->local_zones_seen++; ;}
- break;
-
- case 9:
--#line 253 "getdate.y"
-- { pc->zones_seen++; }
-+#line 304 "getdate.y"
-+ { pc->zones_seen++; ;}
- break;
-
- case 10:
--#line 255 "getdate.y"
-- { pc->dates_seen++; }
-+#line 306 "getdate.y"
-+ { pc->dates_seen++; ;}
- break;
-
- case 11:
--#line 257 "getdate.y"
-- { pc->days_seen++; }
-+#line 308 "getdate.y"
-+ { pc->days_seen++; ;}
- break;
-
- case 12:
--#line 259 "getdate.y"
-- { pc->rels_seen = true; }
-+#line 310 "getdate.y"
-+ { pc->rels_seen = true; ;}
- break;
-
- case 14:
--#line 265 "getdate.y"
-+#line 316 "getdate.y"
- {
-- pc->hour = yyvsp[-1].textintval.value;
-+ pc->hour = (yyvsp[(1) - (2)].textintval).value;
- pc->minutes = 0;
- pc->seconds.tv_sec = 0;
- pc->seconds.tv_nsec = 0;
-- pc->meridian = yyvsp[0].intval;
-- }
-+ pc->meridian = (yyvsp[(2) - (2)].intval);
-+ ;}
- break;
-
- case 15:
--#line 273 "getdate.y"
-+#line 324 "getdate.y"
- {
-- pc->hour = yyvsp[-3].textintval.value;
-- pc->minutes = yyvsp[-1].textintval.value;
-+ pc->hour = (yyvsp[(1) - (4)].textintval).value;
-+ pc->minutes = (yyvsp[(3) - (4)].textintval).value;
- pc->seconds.tv_sec = 0;
- pc->seconds.tv_nsec = 0;
-- pc->meridian = yyvsp[0].intval;
-- }
-+ pc->meridian = (yyvsp[(4) - (4)].intval);
-+ ;}
- break;
-
- case 16:
--#line 281 "getdate.y"
-+#line 332 "getdate.y"
- {
-- pc->hour = yyvsp[-4].textintval.value;
-- pc->minutes = yyvsp[-2].textintval.value;
-+ pc->hour = (yyvsp[(1) - (5)].textintval).value;
-+ pc->minutes = (yyvsp[(3) - (5)].textintval).value;
- pc->seconds.tv_sec = 0;
- pc->seconds.tv_nsec = 0;
- pc->meridian = MER24;
- pc->zones_seen++;
-- pc->time_zone = time_zone_hhmm (yyvsp[-1].textintval, yyvsp[0].intval);
-- }
-+ pc->time_zone = time_zone_hhmm ((yyvsp[(4) - (5)].textintval), (yyvsp[(5) - (5)].intval));
-+ ;}
- break;
-
- case 17:
--#line 291 "getdate.y"
-+#line 342 "getdate.y"
- {
-- pc->hour = yyvsp[-5].textintval.value;
-- pc->minutes = yyvsp[-3].textintval.value;
-- pc->seconds = yyvsp[-1].timespec;
-- pc->meridian = yyvsp[0].intval;
-- }
-+ pc->hour = (yyvsp[(1) - (6)].textintval).value;
-+ pc->minutes = (yyvsp[(3) - (6)].textintval).value;
-+ pc->seconds = (yyvsp[(5) - (6)].timespec);
-+ pc->meridian = (yyvsp[(6) - (6)].intval);
-+ ;}
- break;
-
- case 18:
--#line 298 "getdate.y"
-+#line 349 "getdate.y"
- {
-- pc->hour = yyvsp[-6].textintval.value;
-- pc->minutes = yyvsp[-4].textintval.value;
-- pc->seconds = yyvsp[-2].timespec;
-+ pc->hour = (yyvsp[(1) - (7)].textintval).value;
-+ pc->minutes = (yyvsp[(3) - (7)].textintval).value;
-+ pc->seconds = (yyvsp[(5) - (7)].timespec);
- pc->meridian = MER24;
- pc->zones_seen++;
-- pc->time_zone = time_zone_hhmm (yyvsp[-1].textintval, yyvsp[0].intval);
-- }
-+ pc->time_zone = time_zone_hhmm ((yyvsp[(6) - (7)].textintval), (yyvsp[(7) - (7)].intval));
-+ ;}
- break;
-
- case 19:
--#line 310 "getdate.y"
-+#line 361 "getdate.y"
- {
-- pc->local_isdst = yyvsp[0].intval;
-- pc->dsts_seen += (0 < yyvsp[0].intval);
-- }
-+ pc->local_isdst = (yyvsp[(1) - (1)].intval);
-+ pc->dsts_seen += (0 < (yyvsp[(1) - (1)].intval));
-+ ;}
- break;
-
- case 20:
--#line 315 "getdate.y"
-+#line 366 "getdate.y"
- {
- pc->local_isdst = 1;
-- pc->dsts_seen += (0 < yyvsp[-1].intval) + 1;
-- }
-+ pc->dsts_seen += (0 < (yyvsp[(1) - (2)].intval)) + 1;
-+ ;}
- break;
-
- case 21:
--#line 323 "getdate.y"
-- { pc->time_zone = yyvsp[0].intval; }
-+#line 374 "getdate.y"
-+ { pc->time_zone = (yyvsp[(1) - (1)].intval); ;}
- break;
-
- case 22:
--#line 325 "getdate.y"
-- { pc->time_zone = yyvsp[-1].intval; pc->rels_seen = true; }
-+#line 376 "getdate.y"
-+ { pc->time_zone = (yyvsp[(1) - (2)].intval); pc->rels_seen = true; ;}
- break;
-
- case 23:
--#line 327 "getdate.y"
-- { pc->time_zone = yyvsp[-2].intval + time_zone_hhmm (yyvsp[-1].textintval, yyvsp[0].intval); }
-+#line 378 "getdate.y"
-+ { pc->time_zone = (yyvsp[(1) - (3)].intval) + time_zone_hhmm ((yyvsp[(2) - (3)].textintval), (yyvsp[(3) - (3)].intval)); ;}
- break;
-
- case 24:
--#line 329 "getdate.y"
-- { pc->time_zone = yyvsp[0].intval + 60; }
-+#line 380 "getdate.y"
-+ { pc->time_zone = (yyvsp[(1) - (1)].intval) + 60; ;}
- break;
-
- case 25:
--#line 331 "getdate.y"
-- { pc->time_zone = yyvsp[-1].intval + 60; }
-+#line 382 "getdate.y"
-+ { pc->time_zone = (yyvsp[(1) - (2)].intval) + 60; ;}
- break;
-
- case 26:
--#line 336 "getdate.y"
-+#line 387 "getdate.y"
- {
- pc->day_ordinal = 1;
-- pc->day_number = yyvsp[0].intval;
-- }
-+ pc->day_number = (yyvsp[(1) - (1)].intval);
-+ ;}
- break;
-
- case 27:
--#line 341 "getdate.y"
-+#line 392 "getdate.y"
- {
- pc->day_ordinal = 1;
-- pc->day_number = yyvsp[-1].intval;
-- }
-+ pc->day_number = (yyvsp[(1) - (2)].intval);
-+ ;}
- break;
-
- case 28:
--#line 346 "getdate.y"
-+#line 397 "getdate.y"
- {
-- pc->day_ordinal = yyvsp[-1].intval;
-- pc->day_number = yyvsp[0].intval;
-- }
-+ pc->day_ordinal = (yyvsp[(1) - (2)].intval);
-+ pc->day_number = (yyvsp[(2) - (2)].intval);
-+ ;}
- break;
-
- case 29:
--#line 351 "getdate.y"
-+#line 402 "getdate.y"
- {
-- pc->day_ordinal = yyvsp[-1].textintval.value;
-- pc->day_number = yyvsp[0].intval;
-- }
-+ pc->day_ordinal = (yyvsp[(1) - (2)].textintval).value;
-+ pc->day_number = (yyvsp[(2) - (2)].intval);
-+ ;}
- break;
-
- case 30:
--#line 359 "getdate.y"
-+#line 410 "getdate.y"
- {
-- pc->month = yyvsp[-2].textintval.value;
-- pc->day = yyvsp[0].textintval.value;
-- }
-+ pc->month = (yyvsp[(1) - (3)].textintval).value;
-+ pc->day = (yyvsp[(3) - (3)].textintval).value;
-+ ;}
- break;
-
- case 31:
--#line 364 "getdate.y"
-+#line 415 "getdate.y"
- {
- /* Interpret as YYYY/MM/DD if the first value has 4 or more digits,
- otherwise as MM/DD/YY.
- The goal in recognizing YYYY/MM/DD is solely to support legacy
- machine-generated dates like those in an RCS log listing. If
- you want portability, use the ISO 8601 format. */
-- if (4 <= yyvsp[-4].textintval.digits)
-+ if (4 <= (yyvsp[(1) - (5)].textintval).digits)
- {
-- pc->year = yyvsp[-4].textintval;
-- pc->month = yyvsp[-2].textintval.value;
-- pc->day = yyvsp[0].textintval.value;
-+ pc->year = (yyvsp[(1) - (5)].textintval);
-+ pc->month = (yyvsp[(3) - (5)].textintval).value;
-+ pc->day = (yyvsp[(5) - (5)].textintval).value;
- }
- else
- {
-- pc->month = yyvsp[-4].textintval.value;
-- pc->day = yyvsp[-2].textintval.value;
-- pc->year = yyvsp[0].textintval;
-+ pc->month = (yyvsp[(1) - (5)].textintval).value;
-+ pc->day = (yyvsp[(3) - (5)].textintval).value;
-+ pc->year = (yyvsp[(5) - (5)].textintval);
- }
-- }
-+ ;}
- break;
-
- case 32:
--#line 384 "getdate.y"
-+#line 435 "getdate.y"
- {
- /* ISO 8601 format. YYYY-MM-DD. */
-- pc->year = yyvsp[-2].textintval;
-- pc->month = -yyvsp[-1].textintval.value;
-- pc->day = -yyvsp[0].textintval.value;
-- }
-+ pc->year = (yyvsp[(1) - (3)].textintval);
-+ pc->month = -(yyvsp[(2) - (3)].textintval).value;
-+ pc->day = -(yyvsp[(3) - (3)].textintval).value;
-+ ;}
- break;
-
- case 33:
--#line 391 "getdate.y"
-+#line 442 "getdate.y"
- {
- /* e.g. 17-JUN-1992. */
-- pc->day = yyvsp[-2].textintval.value;
-- pc->month = yyvsp[-1].intval;
-- pc->year.value = -yyvsp[0].textintval.value;
-- pc->year.digits = yyvsp[0].textintval.digits;
-- }
-+ pc->day = (yyvsp[(1) - (3)].textintval).value;
-+ pc->month = (yyvsp[(2) - (3)].intval);
-+ pc->year.value = -(yyvsp[(3) - (3)].textintval).value;
-+ pc->year.digits = (yyvsp[(3) - (3)].textintval).digits;
-+ ;}
- break;
-
- case 34:
--#line 399 "getdate.y"
-+#line 450 "getdate.y"
- {
- /* e.g. JUN-17-1992. */
-- pc->month = yyvsp[-2].intval;
-- pc->day = -yyvsp[-1].textintval.value;
-- pc->year.value = -yyvsp[0].textintval.value;
-- pc->year.digits = yyvsp[0].textintval.digits;
-- }
-+ pc->month = (yyvsp[(1) - (3)].intval);
-+ pc->day = -(yyvsp[(2) - (3)].textintval).value;
-+ pc->year.value = -(yyvsp[(3) - (3)].textintval).value;
-+ pc->year.digits = (yyvsp[(3) - (3)].textintval).digits;
-+ ;}
- break;
-
- case 35:
--#line 407 "getdate.y"
-+#line 458 "getdate.y"
- {
-- pc->month = yyvsp[-1].intval;
-- pc->day = yyvsp[0].textintval.value;
-- }
-+ pc->month = (yyvsp[(1) - (2)].intval);
-+ pc->day = (yyvsp[(2) - (2)].textintval).value;
-+ ;}
- break;
-
- case 36:
--#line 412 "getdate.y"
-+#line 463 "getdate.y"
- {
-- pc->month = yyvsp[-3].intval;
-- pc->day = yyvsp[-2].textintval.value;
-- pc->year = yyvsp[0].textintval;
-- }
-+ pc->month = (yyvsp[(1) - (4)].intval);
-+ pc->day = (yyvsp[(2) - (4)].textintval).value;
-+ pc->year = (yyvsp[(4) - (4)].textintval);
-+ ;}
- break;
-
- case 37:
--#line 418 "getdate.y"
-+#line 469 "getdate.y"
- {
-- pc->day = yyvsp[-1].textintval.value;
-- pc->month = yyvsp[0].intval;
-- }
-+ pc->day = (yyvsp[(1) - (2)].textintval).value;
-+ pc->month = (yyvsp[(2) - (2)].intval);
-+ ;}
- break;
-
- case 38:
--#line 423 "getdate.y"
-+#line 474 "getdate.y"
- {
-- pc->day = yyvsp[-2].textintval.value;
-- pc->month = yyvsp[-1].intval;
-- pc->year = yyvsp[0].textintval;
-- }
-+ pc->day = (yyvsp[(1) - (3)].textintval).value;
-+ pc->month = (yyvsp[(2) - (3)].intval);
-+ pc->year = (yyvsp[(3) - (3)].textintval);
-+ ;}
- break;
-
- case 39:
--#line 432 "getdate.y"
-+#line 483 "getdate.y"
- {
- pc->rel_ns = -pc->rel_ns;
- pc->rel_seconds = -pc->rel_seconds;
-@@ -1574,216 +1965,215 @@
- pc->rel_day = -pc->rel_day;
- pc->rel_month = -pc->rel_month;
- pc->rel_year = -pc->rel_year;
-- }
-+ ;}
- break;
-
- case 41:
--#line 446 "getdate.y"
-- { pc->rel_year += yyvsp[-1].intval * yyvsp[0].intval; }
-+#line 497 "getdate.y"
-+ { pc->rel_year += (yyvsp[(1) - (2)].intval) * (yyvsp[(2) - (2)].intval); ;}
- break;
-
- case 42:
--#line 448 "getdate.y"
-- { pc->rel_year += yyvsp[-1].textintval.value * yyvsp[0].intval; }
-+#line 499 "getdate.y"
-+ { pc->rel_year += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
- break;
-
- case 43:
--#line 450 "getdate.y"
-- { pc->rel_year += yyvsp[0].intval; }
-+#line 501 "getdate.y"
-+ { pc->rel_year += (yyvsp[(1) - (1)].intval); ;}
- break;
-
- case 44:
--#line 452 "getdate.y"
-- { pc->rel_month += yyvsp[-1].intval * yyvsp[0].intval; }
-+#line 503 "getdate.y"
-+ { pc->rel_month += (yyvsp[(1) - (2)].intval) * (yyvsp[(2) - (2)].intval); ;}
- break;
-
- case 45:
--#line 454 "getdate.y"
-- { pc->rel_month += yyvsp[-1].textintval.value * yyvsp[0].intval; }
-+#line 505 "getdate.y"
-+ { pc->rel_month += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
- break;
-
- case 46:
--#line 456 "getdate.y"
-- { pc->rel_month += yyvsp[0].intval; }
-+#line 507 "getdate.y"
-+ { pc->rel_month += (yyvsp[(1) - (1)].intval); ;}
- break;
-
- case 47:
--#line 458 "getdate.y"
-- { pc->rel_day += yyvsp[-1].intval * yyvsp[0].intval; }
-+#line 509 "getdate.y"
-+ { pc->rel_day += (yyvsp[(1) - (2)].intval) * (yyvsp[(2) - (2)].intval); ;}
- break;
-
- case 48:
--#line 460 "getdate.y"
-- { pc->rel_day += yyvsp[-1].textintval.value * yyvsp[0].intval; }
-+#line 511 "getdate.y"
-+ { pc->rel_day += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
- break;
-
- case 49:
--#line 462 "getdate.y"
-- { pc->rel_day += yyvsp[0].intval; }
-+#line 513 "getdate.y"
-+ { pc->rel_day += (yyvsp[(1) - (1)].intval); ;}
- break;
-
- case 50:
--#line 464 "getdate.y"
-- { pc->rel_hour += yyvsp[-1].intval * yyvsp[0].intval; }
-+#line 515 "getdate.y"
-+ { pc->rel_hour += (yyvsp[(1) - (2)].intval) * (yyvsp[(2) - (2)].intval); ;}
- break;
-
- case 51:
--#line 466 "getdate.y"
-- { pc->rel_hour += yyvsp[-1].textintval.value * yyvsp[0].intval; }
-+#line 517 "getdate.y"
-+ { pc->rel_hour += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
- break;
-
- case 52:
--#line 468 "getdate.y"
-- { pc->rel_hour += yyvsp[0].intval; }
-+#line 519 "getdate.y"
-+ { pc->rel_hour += (yyvsp[(1) - (1)].intval); ;}
- break;
-
- case 53:
--#line 470 "getdate.y"
-- { pc->rel_minutes += yyvsp[-1].intval * yyvsp[0].intval; }
-+#line 521 "getdate.y"
-+ { pc->rel_minutes += (yyvsp[(1) - (2)].intval) * (yyvsp[(2) - (2)].intval); ;}
- break;
-
- case 54:
--#line 472 "getdate.y"
-- { pc->rel_minutes += yyvsp[-1].textintval.value * yyvsp[0].intval; }
-+#line 523 "getdate.y"
-+ { pc->rel_minutes += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
- break;
-
- case 55:
--#line 474 "getdate.y"
-- { pc->rel_minutes += yyvsp[0].intval; }
-+#line 525 "getdate.y"
-+ { pc->rel_minutes += (yyvsp[(1) - (1)].intval); ;}
- break;
-
- case 56:
--#line 476 "getdate.y"
-- { pc->rel_seconds += yyvsp[-1].intval * yyvsp[0].intval; }
-+#line 527 "getdate.y"
-+ { pc->rel_seconds += (yyvsp[(1) - (2)].intval) * (yyvsp[(2) - (2)].intval); ;}
- break;
-
- case 57:
--#line 478 "getdate.y"
-- { pc->rel_seconds += yyvsp[-1].textintval.value * yyvsp[0].intval; }
-+#line 529 "getdate.y"
-+ { pc->rel_seconds += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
- break;
-
- case 58:
--#line 480 "getdate.y"
-- { pc->rel_seconds += yyvsp[-1].timespec.tv_sec * yyvsp[0].intval; pc->rel_ns += yyvsp[-1].timespec.tv_nsec * yyvsp[0].intval; }
-+#line 531 "getdate.y"
-+ { pc->rel_seconds += (yyvsp[(1) - (2)].timespec).tv_sec * (yyvsp[(2) - (2)].intval); pc->rel_ns += (yyvsp[(1) - (2)].timespec).tv_nsec * (yyvsp[(2) - (2)].intval); ;}
- break;
-
- case 59:
--#line 482 "getdate.y"
-- { pc->rel_seconds += yyvsp[-1].timespec.tv_sec * yyvsp[0].intval; pc->rel_ns += yyvsp[-1].timespec.tv_nsec * yyvsp[0].intval; }
-+#line 533 "getdate.y"
-+ { pc->rel_seconds += (yyvsp[(1) - (2)].timespec).tv_sec * (yyvsp[(2) - (2)].intval); pc->rel_ns += (yyvsp[(1) - (2)].timespec).tv_nsec * (yyvsp[(2) - (2)].intval); ;}
- break;
-
- case 60:
--#line 484 "getdate.y"
-- { pc->rel_seconds += yyvsp[0].intval; }
-+#line 535 "getdate.y"
-+ { pc->rel_seconds += (yyvsp[(1) - (1)].intval); ;}
- break;
-
- case 62:
--#line 490 "getdate.y"
-- { pc->rel_year += yyvsp[-1].textintval.value * yyvsp[0].intval; }
-+#line 541 "getdate.y"
-+ { pc->rel_year += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
- break;
-
- case 63:
--#line 492 "getdate.y"
-- { pc->rel_month += yyvsp[-1].textintval.value * yyvsp[0].intval; }
-+#line 543 "getdate.y"
-+ { pc->rel_month += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
- break;
-
- case 64:
--#line 494 "getdate.y"
-- { pc->rel_day += yyvsp[-1].textintval.value * yyvsp[0].intval; }
-+#line 545 "getdate.y"
-+ { pc->rel_day += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
- break;
-
- case 65:
--#line 496 "getdate.y"
-- { pc->rel_hour += yyvsp[-1].textintval.value * yyvsp[0].intval; }
-+#line 547 "getdate.y"
-+ { pc->rel_hour += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
- break;
-
- case 66:
--#line 498 "getdate.y"
-- { pc->rel_minutes += yyvsp[-1].textintval.value * yyvsp[0].intval; }
-+#line 549 "getdate.y"
-+ { pc->rel_minutes += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
- break;
-
- case 67:
--#line 500 "getdate.y"
-- { pc->rel_seconds += yyvsp[-1].textintval.value * yyvsp[0].intval; }
-+#line 551 "getdate.y"
-+ { pc->rel_seconds += (yyvsp[(1) - (2)].textintval).value * (yyvsp[(2) - (2)].intval); ;}
- break;
-
- case 71:
--#line 508 "getdate.y"
-- { yyval.timespec.tv_sec = yyvsp[0].textintval.value; yyval.timespec.tv_nsec = 0; }
-+#line 559 "getdate.y"
-+ { (yyval.timespec).tv_sec = (yyvsp[(1) - (1)].textintval).value; (yyval.timespec).tv_nsec = 0; ;}
- break;
-
- case 73:
--#line 514 "getdate.y"
-- { yyval.timespec.tv_sec = yyvsp[0].textintval.value; yyval.timespec.tv_nsec = 0; }
-+#line 565 "getdate.y"
-+ { (yyval.timespec).tv_sec = (yyvsp[(1) - (1)].textintval).value; (yyval.timespec).tv_nsec = 0; ;}
- break;
-
- case 74:
--#line 519 "getdate.y"
-+#line 570 "getdate.y"
- {
- if (pc->dates_seen && ! pc->year.digits
-- && ! pc->rels_seen && (pc->times_seen || 2 < yyvsp[0].textintval.digits))
-- pc->year = yyvsp[0].textintval;
-+ && ! pc->rels_seen && (pc->times_seen || 2 < (yyvsp[(1) - (1)].textintval).digits))
-+ pc->year = (yyvsp[(1) - (1)].textintval);
- else
- {
-- if (4 < yyvsp[0].textintval.digits)
-+ if (4 < (yyvsp[(1) - (1)].textintval).digits)
- {
- pc->dates_seen++;
-- pc->day = yyvsp[0].textintval.value % 100;
-- pc->month = (yyvsp[0].textintval.value / 100) % 100;
-- pc->year.value = yyvsp[0].textintval.value / 10000;
-- pc->year.digits = yyvsp[0].textintval.digits - 4;
-+ pc->day = (yyvsp[(1) - (1)].textintval).value % 100;
-+ pc->month = ((yyvsp[(1) - (1)].textintval).value / 100) % 100;
-+ pc->year.value = (yyvsp[(1) - (1)].textintval).value / 10000;
-+ pc->year.digits = (yyvsp[(1) - (1)].textintval).digits - 4;
- }
- else
- {
- pc->times_seen++;
-- if (yyvsp[0].textintval.digits <= 2)
-+ if ((yyvsp[(1) - (1)].textintval).digits <= 2)
- {
-- pc->hour = yyvsp[0].textintval.value;
-+ pc->hour = (yyvsp[(1) - (1)].textintval).value;
- pc->minutes = 0;
- }
- else
- {
-- pc->hour = yyvsp[0].textintval.value / 100;
-- pc->minutes = yyvsp[0].textintval.value % 100;
-+ pc->hour = (yyvsp[(1) - (1)].textintval).value / 100;
-+ pc->minutes = (yyvsp[(1) - (1)].textintval).value % 100;
- }
- pc->seconds.tv_sec = 0;
- pc->seconds.tv_nsec = 0;
- pc->meridian = MER24;
- }
- }
-- }
-+ ;}
- break;
-
- case 75:
--#line 556 "getdate.y"
-- { yyval.intval = -1; }
-+#line 607 "getdate.y"
-+ { (yyval.intval) = -1; ;}
- break;
-
- case 76:
--#line 558 "getdate.y"
-- { yyval.intval = yyvsp[0].textintval.value; }
-+#line 609 "getdate.y"
-+ { (yyval.intval) = (yyvsp[(2) - (2)].textintval).value; ;}
- break;
-
- case 77:
--#line 563 "getdate.y"
-- { yyval.intval = MER24; }
-+#line 614 "getdate.y"
-+ { (yyval.intval) = MER24; ;}
- break;
-
- case 78:
--#line 565 "getdate.y"
-- { yyval.intval = yyvsp[0].intval; }
-+#line 616 "getdate.y"
-+ { (yyval.intval) = (yyvsp[(1) - (1)].intval); ;}
- break;
-
-
-+/* Line 1267 of yacc.c. */
-+#line 2171 "getdate.c"
-+ default: break;
- }
-+ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
-
--/* Line 1000 of yacc.c. */
--#line 1782 "getdate.c"
--
-- yyvsp -= yylen;
-- yyssp -= yylen;
--
--
-+ YYPOPSTACK (yylen);
-+ yylen = 0;
- YY_STACK_PRINT (yyss, yyssp);
-
- *++yyvsp = yyval;
-@@ -1812,99 +2202,65 @@
- if (!yyerrstatus)
- {
- ++yynerrs;
--#if YYERROR_VERBOSE
-- yyn = yypact[yystate];
--
-- if (YYPACT_NINF < yyn && yyn < YYLAST)
-- {
-- YYSIZE_T yysize = 0;
-- int yytype = YYTRANSLATE (yychar);
-- const char* yyprefix;
-- char *yymsg;
-- int yyx;
--
-- /* Start YYX at -YYN if negative to avoid negative indexes in
-- YYCHECK. */
-- int yyxbegin = yyn < 0 ? -yyn : 0;
--
-- /* Stay within bounds of both yycheck and yytname. */
-- int yychecklim = YYLAST - yyn;
-- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
-- int yycount = 0;
--
-- yyprefix = ", expecting ";
-- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-+#if ! YYERROR_VERBOSE
-+ yyerror (pc, YY_("syntax error"));
-+#else
-+ {
-+ YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);
-+ if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)
-+ {
-+ YYSIZE_T yyalloc = 2 * yysize;
-+ if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))
-+ yyalloc = YYSTACK_ALLOC_MAXIMUM;
-+ if (yymsg != yymsgbuf)
-+ YYSTACK_FREE (yymsg);
-+ yymsg = (char *) YYSTACK_ALLOC (yyalloc);
-+ if (yymsg)
-+ yymsg_alloc = yyalloc;
-+ else
- {
-- yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
-- yycount += 1;
-- if (yycount == 5)
-- {
-- yysize = 0;
-- break;
-- }
-+ yymsg = yymsgbuf;
-+ yymsg_alloc = sizeof yymsgbuf;
- }
-- yysize += (sizeof ("syntax error, unexpected ")
-- + yystrlen (yytname[yytype]));
-- yymsg = (char *) YYSTACK_ALLOC (yysize);
-- if (yymsg != 0)
-- {
-- char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
-- yyp = yystpcpy (yyp, yytname[yytype]);
-+ }
-
-- if (yycount < 5)
-- {
-- yyprefix = ", expecting ";
-- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
-- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
-- {
-- yyp = yystpcpy (yyp, yyprefix);
-- yyp = yystpcpy (yyp, yytname[yyx]);
-- yyprefix = " or ";
-- }
-- }
-- yyerror (pc, yymsg);
-- YYSTACK_FREE (yymsg);
-- }
-- else
-- yyerror (pc, "syntax error; also virtual memory exhausted");
-- }
-- else
--#endif /* YYERROR_VERBOSE */
-- yyerror (pc, "syntax error");
-+ if (0 < yysize && yysize <= yymsg_alloc)
-+ {
-+ (void) yysyntax_error (yymsg, yystate, yychar);
-+ yyerror (pc, yymsg);
-+ }
-+ else
-+ {
-+ yyerror (pc, YY_("syntax error"));
-+ if (yysize != 0)
-+ goto yyexhaustedlab;
-+ }
-+ }
-+#endif
- }
-
-
-
- if (yyerrstatus == 3)
- {
-- /* If just tried and failed to reuse lookahead token after an
-+ /* If just tried and failed to reuse look-ahead token after an
- error, discard it. */
-
- if (yychar <= YYEOF)
-- {
-- /* If at end of input, pop the error token,
-- then the rest of the stack, then return failure. */
-+ {
-+ /* Return failure if at end of input. */
- if (yychar == YYEOF)
-- for (;;)
-- {
-- YYPOPSTACK;
-- if (yyssp == yyss)
-- YYABORT;
-- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-- yydestruct (yystos[*yyssp], yyvsp);
-- }
-- }
-+ YYABORT;
-+ }
- else
- {
-- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
-- yydestruct (yytoken, &yylval);
-+ yydestruct ("Error: discarding",
-+ yytoken, &yylval, pc);
- yychar = YYEMPTY;
--
- }
- }
-
-- /* Else will try to reuse lookahead token after shifting the error
-+ /* Else will try to reuse look-ahead token after shifting the error
- token. */
- goto yyerrlab1;
-
-@@ -1914,15 +2270,17 @@
- `---------------------------------------------------*/
- yyerrorlab:
-
--#ifdef __GNUC__
-- /* Pacify GCC when the user code never invokes YYERROR and the label
-- yyerrorlab therefore never appears in user code. */
-- if (0)
-+ /* Pacify compilers like GCC when the user code never invokes
-+ YYERROR and the label yyerrorlab therefore never appears in user
-+ code. */
-+ if (/*CONSTCOND*/ 0)
- goto yyerrorlab;
--#endif
-
-- yyvsp -= yylen;
-- yyssp -= yylen;
-+ /* Do not reclaim the symbols of the rule which action triggered
-+ this YYERROR. */
-+ YYPOPSTACK (yylen);
-+ yylen = 0;
-+ YY_STACK_PRINT (yyss, yyssp);
- yystate = *yyssp;
- goto yyerrlab1;
-
-@@ -1951,9 +2309,10 @@
- if (yyssp == yyss)
- YYABORT;
-
-- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
-- yydestruct (yystos[yystate], yyvsp);
-- YYPOPSTACK;
-+
-+ yydestruct ("Error: popping",
-+ yystos[yystate], yyvsp, pc);
-+ YYPOPSTACK (1);
- yystate = *yyssp;
- YY_STACK_PRINT (yyss, yyssp);
- }
-@@ -1961,11 +2320,12 @@
- if (yyn == YYFINAL)
- YYACCEPT;
-
-- YYDPRINTF ((stderr, "Shifting error token, "));
--
- *++yyvsp = yylval;
-
-
-+ /* Shift the error token. */
-+ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
-+
- yystate = yyn;
- goto yynewstate;
-
-@@ -1985,25 +2345,43 @@
- goto yyreturn;
-
- #ifndef yyoverflow
--/*----------------------------------------------.
--| yyoverflowlab -- parser overflow comes here. |
--`----------------------------------------------*/
--yyoverflowlab:
-- yyerror (pc, "parser stack overflow");
-+/*-------------------------------------------------.
-+| yyexhaustedlab -- memory exhaustion comes here. |
-+`-------------------------------------------------*/
-+yyexhaustedlab:
-+ yyerror (pc, YY_("memory exhausted"));
- yyresult = 2;
- /* Fall through. */
- #endif
-
- yyreturn:
-+ if (yychar != YYEOF && yychar != YYEMPTY)
-+ yydestruct ("Cleanup: discarding lookahead",
-+ yytoken, &yylval, pc);
-+ /* Do not reclaim the symbols of the rule which action triggered
-+ this YYABORT or YYACCEPT. */
-+ YYPOPSTACK (yylen);
-+ YY_STACK_PRINT (yyss, yyssp);
-+ while (yyssp != yyss)
-+ {
-+ yydestruct ("Cleanup: popping",
-+ yystos[*yyssp], yyvsp, pc);
-+ YYPOPSTACK (1);
-+ }
- #ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
- #endif
-- return yyresult;
-+#if YYERROR_VERBOSE
-+ if (yymsg != yymsgbuf)
-+ YYSTACK_FREE (yymsg);
-+#endif
-+ /* Make sure YYID is used. */
-+ return YYID (yyresult);
- }
-
-
--#line 568 "getdate.y"
-+#line 619 "getdate.y"
-
-
- static table const meridian_table[] =
-@@ -2520,7 +2898,7 @@
-
- /* Do nothing if the parser reports an error. */
- static int
--yyerror (parser_control *pc ATTRIBUTE_UNUSED, char *s ATTRIBUTE_UNUSED)
-+yyerror (parser_control *pc ATTRIBUTE_UNUSED, const char *s ATTRIBUTE_UNUSED)
- {
- return 0;
- }
-@@ -2563,9 +2941,9 @@
- if (tz)
- {
- size_t tzsize = strlen (tz) + 1;
-- tz = (tzsize <= TZBUFSIZE
-+ tz = (tzsize == 1 ? NULL : (tzsize <= TZBUFSIZE
- ? memcpy (tzbuf, tz, tzsize)
-- : xmemdup (tz, tzsize));
-+ : xmemdup (tz, tzsize)));
- }
- return tz;
- }
-@@ -2793,7 +3171,8 @@
- + sizeof pc.time_zone * CHAR_BIT / 3];
- if (!tz_was_altered)
- tz0 = get_tz (tz0buf);
-- sprintf (tz1buf, "XXX%s%ld:%02d", "-" + (time_zone < 0),
-+ snprintf(tz1buf, sizeof(tz1buf),
-+ "XXX%s%ld:%02d", "-" + (time_zone < 0),
- abs_time_zone_hour, abs_time_zone_min);
- if (setenv ("TZ", tz1buf, 1) != 0)
- goto fail;
-@@ -2891,7 +3270,7 @@
- ok = false;
- done:
- if (tz_was_altered)
-- ok &= (tz0 ? setenv ("TZ", tz0, 1) : unsetenv ("TZ")) == 0;
-+ ok &= (tz0 ? setenv("TZ", tz0, 1) : (unsetenv("TZ"), 0)) == 0;
- if (tz0 != tz0buf)
- free (tz0);
- return ok;
-@@ -2900,37 +3279,52 @@
- #if TEST
-
- int
--main (int ac, char **av)
-+main(int argc, char **argv)
- {
- char buff[BUFSIZ];
-+ int cmd = 0;
-
-- printf ("Enter date, or blank line to exit.\n\t> ");
-+ if (argc > 1) {
-+ int i = 1;
-+ buff[0] = '\0';
-+ while (i < argc) {
-+ if (i > 1)
-+ strlcat(buff, " ", BUFSIZ);
-+ strlcat(buff, argv[i++], BUFSIZ);
-+ }
-+ cmd++;
-+ goto once;
-+ }
-+
-+ printf("Enter date, or blank line to exit.\n> ");
- fflush (stdout);
-
- buff[BUFSIZ - 1] = '\0';
-- while (fgets (buff, BUFSIZ - 1, stdin) && buff[0])
-+ while (fgets(buff, BUFSIZ - 1, stdin) && buff[0] &&
-+ buff[0] != '\r' && buff[0] != '\n')
- {
- struct timespec d;
- struct tm const *tm;
-+ once:
- if (! get_date (&d, buff, NULL))
- printf ("Bad format - couldn't convert.\n");
- else if (! (tm = localtime (&d.tv_sec)))
- {
-- long int sec = d.tv_sec;
-- printf ("localtime (%ld) failed\n", sec);
-+ printf ("localtime (%lld) failed\n", (long long)d.tv_sec);
- }
- else
- {
- int ns = d.tv_nsec;
-- printf ("%04ld-%02d-%02d %02d:%02d:%02d.%09d\n",
-- tm->tm_year + 1900L, tm->tm_mon + 1, tm->tm_mday,
-+ printf ("%13lld =\t%04ld-%02d-%02d %02d:%02d:%02d.%09d\n",
-+ (long long)d.tv_sec, (long)tm->tm_year + 1900,
-+ tm->tm_mon + 1, tm->tm_mday,
- tm->tm_hour, tm->tm_min, tm->tm_sec, ns);
- }
-- printf ("\t> ");
-+ if (cmd)
-+ return 0;
-+ printf ("> ");
- fflush (stdout);
- }
- return 0;
- }
- #endif /* TEST */
--
--
---- cvs-1.12.13+real.orig/lib/getdate.h
-+++ cvs-1.12.13+real/lib/getdate.h
-@@ -1,6 +1,9 @@
-+/* $MirOS: src/gnu/usr.bin/cvs/lib/getdate.h,v 1.7 2016/10/22 20:15:03 tg Exp $ */
-+
- /* Parse a string into an internal time stamp.
-
-- Copyright (C) 1995, 1997, 1998, 2003, 2004 Free Software Foundation, Inc.
-+ Copyright (C) 1995, 1997, 1998, 2003, 2004, 2005
-+ Free Software Foundation, Inc.
-
- 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
-@@ -16,7 +19,17 @@
- along with this program; if not, write to the Free Software Foundation,
- Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */
-
-+#ifndef GETDATE_H
-+#define GETDATE_H
-+
- #include <stdbool.h>
-+#ifndef IN_RCS
- #include "timespec.h"
-+#else
-+#include <sys/time.h>
-+#include <time.h>
-+#endif
-
- bool get_date (struct timespec *, char const *, struct timespec const *);
-+
-+#endif /* GETDATE_H */
---- cvs-1.12.13+real.orig/lib/getdate.y
-+++ cvs-1.12.13+real/lib/getdate.y
-@@ -1,8 +1,11 @@
- %{
- /* Parse a string into an internal time stamp.
-
-- Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005 Free Software
-- Foundation, Inc.
-+ Copyright (C) 1995, 1997, 1998, 2003, 2004, 2005
-+ Free Software Foundation, Inc.
-+
-+ Copyright (c) 2005, 2006, 2007, 2010, 2016, 2017
-+ mirabilos <m@mirbsd.org>
-
- 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
-@@ -38,6 +41,10 @@
-
- #include "getdate.h"
-
-+#ifdef USE_LIBBSD
-+size_t strlcat(char *, const char *, size_t);
-+#endif
-+
- /* There's no need to extend the stack, so there's no need to involve
- alloca. */
- #define YYSTACK_USE_ALLOCA 0
-@@ -65,10 +72,44 @@
- #include <stdlib.h>
- #include <string.h>
-
-+#ifndef _STDLIB_H
-+#define _STDLIB_H 1 /* GNU bison needs this */
-+#endif
-+
-+#ifndef IN_RCS
- #include "setenv.h"
- #include "xalloc.h"
-+#else /* IN_RCS */
-+#include <unistd.h>
-+
-+#define HAVE_STRUCT_TM_TM_ZONE 1
-+#define HAVE_TM_GMTOFF 1
-+
-+#define gettime(ts) clock_gettime(CLOCK_REALTIME,(ts))
-+
-+static void *
-+xmalloc(size_t s)
-+{
-+ static const char xmalloc_enomem[] = "memory exhausted\n";
-+ void *x;
-+
-+ if ((x = malloc(s)) == NULL) {
-+ write(2, xmalloc_enomem, sizeof(xmalloc_enomem) - 1);
-+ exit(1);
-+ }
-
--#if STDC_HEADERS || (! defined isascii && ! HAVE_ISASCII)
-+ return (x);
-+}
-+
-+static void *
-+xmemdup(void const *p, size_t s)
-+{
-+ return (memcpy(xmalloc(s), p, s));
-+}
-+#endif /* IN_RCS */
-+
-+#if (defined(STDC_HEADERS) && STDC_HEADERS) || \
-+ (!defined(isascii) && !HAVE_ISASCII)
- # define IN_CTYPE_DOMAIN(c) 1
- #else
- # define IN_CTYPE_DOMAIN(c) isascii (c)
-@@ -87,7 +128,8 @@
- of `digit' even when the host does not conform to POSIX. */
- #define ISDIGIT(c) ((unsigned int) (c) - '0' <= 9)
-
--#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
-+#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || \
-+ (defined(__STRICT_ANSI__) && __STRICT_ANSI__)
- # define __attribute__(x)
- #endif
-
-@@ -95,6 +137,15 @@
- # define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
- #endif
-
-+#ifndef __IDSTRING
-+#define __IDSTRING(varname, string) \
-+ static const char varname[] __attribute__((__used__)) = \
-+ "@(""#)" #varname ": " string
-+#endif
-+
-+__IDSTRING(rcsid_code, "$MirOS: src/gnu/usr.bin/cvs/lib/getdate.y,v 1.12 2017/03/26 15:54:06 tg Exp $");
-+/* placeholder line for __IDSTRING(rcsid_bron, "$miros: ..."); so that cpp #line directives work */
-+
- /* Shift A right by B bits portably, by dividing A by 2**B and
- truncating towards minus infinity. A and B should be free of side
- effects, and B should be in the range 0 <= B <= INT_BITS - 2, where
-@@ -191,7 +242,7 @@
-
- union YYSTYPE;
- static int yylex (union YYSTYPE *, parser_control *);
--static int yyerror (parser_control *, char *);
-+static int yyerror (parser_control *, const char *);
- static long int time_zone_hhmm (textint, long int);
-
- %}
-@@ -1081,7 +1132,7 @@
-
- /* Do nothing if the parser reports an error. */
- static int
--yyerror (parser_control *pc ATTRIBUTE_UNUSED, char *s ATTRIBUTE_UNUSED)
-+yyerror (parser_control *pc ATTRIBUTE_UNUSED, const char *s ATTRIBUTE_UNUSED)
- {
- return 0;
- }
-@@ -1124,9 +1175,9 @@
- if (tz)
- {
- size_t tzsize = strlen (tz) + 1;
-- tz = (tzsize <= TZBUFSIZE
-+ tz = (tzsize == 1 ? NULL : (tzsize <= TZBUFSIZE
- ? memcpy (tzbuf, tz, tzsize)
-- : xmemdup (tz, tzsize));
-+ : xmemdup (tz, tzsize)));
- }
- return tz;
- }
-@@ -1354,7 +1405,8 @@
- + sizeof pc.time_zone * CHAR_BIT / 3];
- if (!tz_was_altered)
- tz0 = get_tz (tz0buf);
-- sprintf (tz1buf, "XXX%s%ld:%02d", "-" + (time_zone < 0),
-+ snprintf(tz1buf, sizeof(tz1buf),
-+ "XXX%s%ld:%02d", "-" + (time_zone < 0),
- abs_time_zone_hour, abs_time_zone_min);
- if (setenv ("TZ", tz1buf, 1) != 0)
- goto fail;
-@@ -1452,7 +1504,7 @@
- ok = false;
- done:
- if (tz_was_altered)
-- ok &= (tz0 ? setenv ("TZ", tz0, 1) : unsetenv ("TZ")) == 0;
-+ ok &= (tz0 ? setenv("TZ", tz0, 1) : (unsetenv("TZ"), 0)) == 0;
- if (tz0 != tz0buf)
- free (tz0);
- return ok;
-@@ -1461,33 +1513,50 @@
- #if TEST
-
- int
--main (int ac, char **av)
-+main(int argc, char **argv)
- {
- char buff[BUFSIZ];
-+ int cmd = 0;
-+
-+ if (argc > 1) {
-+ int i = 1;
-+ buff[0] = '\0';
-+ while (i < argc) {
-+ if (i > 1)
-+ strlcat(buff, " ", BUFSIZ);
-+ strlcat(buff, argv[i++], BUFSIZ);
-+ }
-+ cmd++;
-+ goto once;
-+ }
-
-- printf ("Enter date, or blank line to exit.\n\t> ");
-+ printf("Enter date, or blank line to exit.\n> ");
- fflush (stdout);
-
- buff[BUFSIZ - 1] = '\0';
-- while (fgets (buff, BUFSIZ - 1, stdin) && buff[0])
-+ while (fgets(buff, BUFSIZ - 1, stdin) && buff[0] &&
-+ buff[0] != '\r' && buff[0] != '\n')
- {
- struct timespec d;
- struct tm const *tm;
-+ once:
- if (! get_date (&d, buff, NULL))
- printf ("Bad format - couldn't convert.\n");
- else if (! (tm = localtime (&d.tv_sec)))
- {
-- long int sec = d.tv_sec;
-- printf ("localtime (%ld) failed\n", sec);
-+ printf ("localtime (%lld) failed\n", (long long)d.tv_sec);
- }
- else
- {
- int ns = d.tv_nsec;
-- printf ("%04ld-%02d-%02d %02d:%02d:%02d.%09d\n",
-- tm->tm_year + 1900L, tm->tm_mon + 1, tm->tm_mday,
-+ printf ("%13lld =\t%04ld-%02d-%02d %02d:%02d:%02d.%09d\n",
-+ (long long)d.tv_sec, (long)tm->tm_year + 1900,
-+ tm->tm_mon + 1, tm->tm_mday,
- tm->tm_hour, tm->tm_min, tm->tm_sec, ns);
- }
-- printf ("\t> ");
-+ if (cmd)
-+ return 0;
-+ printf ("> ");
- fflush (stdout);
- }
- return 0;
---- cvs-1.12.13+real.orig/lib/getdelim.c
-+++ cvs-1.12.13+real/lib/getdelim.c
-@@ -48,7 +48,6 @@
- {
- int result = 0;
- ssize_t cur_len = 0;
-- ssize_t len;
-
- if (lineptr == NULL || n == NULL || fp == NULL)
- {
-@@ -71,7 +70,6 @@
-
- for (;;)
- {
-- char *t;
- int i;
-
- i = getc (fp);
-@@ -82,12 +80,12 @@
- }
-
- /* Make enough space for len+1 (for final NUL) bytes. */
-- if (cur_len + 1 >= *n)
-+ if ((size_t)cur_len + 1U >= *n)
- {
- size_t needed = 2 * (cur_len + 1) + 1; /* Be generous. */
- char *new_lineptr;
-
-- if (needed < cur_len)
-+ if (needed < (size_t)cur_len)
- {
- result = -1;
- goto unlock_return;
---- cvs-1.12.13+real.orig/lib/gettext.h
-+++ cvs-1.12.13+real/lib/gettext.h
-@@ -19,7 +19,7 @@
- #define _LIBGETTEXT_H 1
-
- /* NLS can be disabled through the configure --disable-nls option. */
--#if ENABLE_NLS
-+#if defined(ENABLE_NLS) && (ENABLE_NLS)
-
- /* Get declarations of GNU message catalog functions. */
- # include <libintl.h>
---- cvs-1.12.13+real.orig/lib/minmax.h
-+++ cvs-1.12.13+real/lib/minmax.h
-@@ -28,7 +28,7 @@
- included after this file. Likewise for <sys/param.h>.
- If more than one of these system headers define MIN and MAX, pick just
- one of the headers (because the definitions most likely are the same). */
--#if HAVE_MINMAX_IN_LIMITS_H
-+#if defined(HAVE_MINMAX_IN_LIMITS_H) && (HAVE_MINMAX_IN_LIMITS_H)
- # include <limits.h>
- #elif HAVE_MINMAX_IN_SYS_PARAM_H
- # include <sys/param.h>
---- cvs-1.12.13+real.orig/lib/pagealign_alloc.c
-+++ cvs-1.12.13+real/lib/pagealign_alloc.c
-@@ -44,6 +44,10 @@
- #include "xalloc.h"
- #include "gettext.h"
-
-+#if HAVE_MMAP && !defined(HAVE_MAP_ANONYMOUS)
-+#include <stdio.h>
-+#endif
-+
- #define _(str) gettext (str)
-
- #if HAVE_MMAP
-@@ -132,6 +136,7 @@
- const int fd = -1;
- const int flags = MAP_ANONYMOUS | MAP_PRIVATE;
- # else /* !HAVE_MAP_ANONYMOUS */
-+ static int beenhere = 0;
- static int fd = -1; /* Only open /dev/zero once in order to avoid limiting
- the amount of memory we may allocate based on the
- number of open file descriptors. */
-@@ -140,7 +145,20 @@
- {
- fd = open ("/dev/zero", O_RDONLY, 0666);
- if (fd < 0)
-- error (EXIT_FAILURE, errno, _("Failed to open /dev/zero for read"));
-+ {
-+ if (!beenhere)
-+ {
-+ beenhere = 1;
-+ error (EXIT_FAILURE, errno, _("Failed to open /dev/zero for read"));
-+ }
-+ else
-+ {
-+ fprintf (stderr, "Fatal in pagealign: %s\n",
-+ _("Failed to open /dev/zero for read"));
-+ fflush (stderr);
-+ _exit (EXIT_FAILURE);
-+ }
-+ }
- }
- # endif /* HAVE_MAP_ANONYMOUS */
- ret = mmap (NULL, size, PROT_READ | PROT_WRITE, flags, fd, 0);
---- cvs-1.12.13+real.orig/lib/regcomp.c
-+++ cvs-1.12.13+real/lib/regcomp.c
-@@ -1652,8 +1652,6 @@
- && dfa->edests[node].nelem
- && !dfa->nodes[dfa->edests[node].elems[0]].duplicated)
- {
-- Idx org_node, cur_node;
-- org_node = cur_node = node;
- err = duplicate_node_closure (dfa, node, node, node, constraint);
- if (BE (err != REG_NOERROR, 0))
- return err;
---- cvs-1.12.13+real.orig/lib/regex_internal.c
-+++ cvs-1.12.13+real/lib/regex_internal.c
-@@ -629,7 +629,7 @@
-
- if (pstr->is_utf8)
- {
-- const unsigned char *raw, *p, *q, *end;
-+ const unsigned char *raw, *p, *end;
-
- /* Special case UTF-8. Multi-byte chars start with any
- byte other than 0x80 - 0xbf. */
-@@ -641,17 +641,8 @@
- mbstate_t cur_state;
- wchar_t wc2;
- Idx mlen = raw + pstr->len - p;
-- unsigned char buf[6];
- size_t mbclen;
-
-- q = p;
-- if (BE (pstr->trans != NULL, 0))
-- {
-- int i = mlen < 6 ? mlen : 6;
-- while (--i >= 0)
-- buf[i] = pstr->trans[p[i]];
-- q = buf;
-- }
- /* XXX Don't use mbrtowc, we know which conversion
- to use (UTF-8 -> UCS4). */
- memset (&cur_state, 0, sizeof (cur_state));
---- cvs-1.12.13+real.orig/lib/regex_internal.h
-+++ cvs-1.12.13+real/lib/regex_internal.h
-@@ -451,7 +451,9 @@
- #define re_string_skip_bytes(pstr,idx) ((pstr)->cur_idx += (idx))
- #define re_string_set_index(pstr,idx) ((pstr)->cur_idx = (idx))
-
-+#ifdef HAVE_ALLOCA_H
- #include <alloca.h>
-+#endif
-
- #ifndef _LIBC
- # if HAVE_ALLOCA
---- cvs-1.12.13+real.orig/lib/sunos57-select.c
-+++ cvs-1.12.13+real/lib/sunos57-select.c
-@@ -40,6 +40,11 @@
- #include <sys/stat.h>
- #include <errno.h>
-
-+#if defined(STDC_HEADERS) || defined(HAVE_STRING_H)
-+# include <string.h>
-+#else
-+# include <strings.h>
-+#endif
- #ifdef HAVE_UNISTD_H
- # include <unistd.h>
- #endif /* HAVE_UNISTD_H */
---- cvs-1.12.13+real.orig/lib/system.h
-+++ cvs-1.12.13+real/lib/system.h
-@@ -304,7 +304,7 @@
-
-
-
--/* Some file systems are case-insensitive. If FOLD_FN_CHAR is
-+/* Some filesystems are case-insensitive. If FOLD_FN_CHAR is
- #defined, it maps the character C onto its "canonical" form. In a
- case-insensitive system, it would map all alphanumeric characters
- to lower case. Under Windows NT, / and \ are both path component
-@@ -315,7 +315,7 @@
- # define fncmp strcmp
- #endif
-
--/* Different file systems can have different naming patterns which designate
-+/* Different filesystems can have different naming patterns which designate
- * a path as absolute.
- */
- #ifndef ISABSOLUTE
---- cvs-1.12.13+real.orig/lib/tempname.c
-+++ cvs-1.12.13+real/lib/tempname.c
-@@ -148,7 +148,7 @@
- if (try_tmpdir)
- {
- d = __secure_getenv ("TMPDIR");
-- if (d != NULL && direxists (d))
-+ if (d != NULL && *d && direxists (d))
- dir = d;
- else if (dir != NULL && direxists (dir))
- /* nothing */ ;
---- cvs-1.12.13+real.orig/lib/test-getdate.sh
-+++ cvs-1.12.13+real/lib/test-getdate.sh
-@@ -1,4 +1,5 @@
- #! /bin/sh
-+# $MirOS: src/gnu/usr.bin/cvs/lib/test-getdate.sh,v 1.2 2016/10/22 15:34:32 tg Exp $
-
- # Test that a getdate executable meets its specification.
- #
-@@ -19,6 +20,11 @@
- # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
-
-
-+# as this uses POSIX behaviour and does not count leap seconds...
-+if test -n "$GETDATE_LD_PRELOAD"; then
-+ LD_PRELOAD=$GETDATE_LD_PRELOAD
-+ export LD_PRELOAD
-+fi
-
- ###
- ### Globals
-@@ -113,10 +119,9 @@
- NTZ=`TZ=$1 date +%Z`
- if test "$NTZ" = "$UTZ" || test "$NTZ" = "$1"; then
- skipreason="$1 is not a recognized timezone on this system"
-- return `false`
-- else
-- return `:`
-+ return 1
- fi
-+ :
- }
-
-
-@@ -184,22 +189,22 @@
-
- cat >getdate-expected <<EOF
- Enter date, or blank line to exit.
-- > Bad format - couldn't convert.
-- > Bad format - couldn't convert.
-- > 1972-12-05 00:00:00.000000000
-- > 1974-03-29 00:00:00.000000000
-- > 1996-05-12 13:57:45.000000000
-- > 2012-05-12 00:00:00.000000000
-- > 1996-05-12 00:00:00.000000000
-- > Bad format - couldn't convert.
-- > Bad format - couldn't convert.
-- > 1970-01-01 02:00:00.000000000
-- > Bad format - couldn't convert.
-- > 1969-12-31 22:00:00.000000000
-- > Bad format - couldn't convert.
-- > 1970-01-01 06:00:00.000000000
-- > 1997-01-12 00:00:00.000000000
-- >
-+> Bad format - couldn't convert.
-+> Bad format - couldn't convert.
-+> 92361600 = 1972-12-05 00:00:00.000000000
-+> 133747200 = 1974-03-29 00:00:00.000000000
-+> 831909465 = 1996-05-12 13:57:45.000000000
-+> 1336780800 = 2012-05-12 00:00:00.000000000
-+> 831859200 = 1996-05-12 00:00:00.000000000
-+> Bad format - couldn't convert.
-+> Bad format - couldn't convert.
-+> 7200 = 1970-01-01 02:00:00.000000000
-+> Bad format - couldn't convert.
-+> -7200 = 1969-12-31 22:00:00.000000000
-+> Bad format - couldn't convert.
-+> 21600 = 1970-01-01 06:00:00.000000000
-+> 853027200 = 1997-01-12 00:00:00.000000000
-+>
- EOF
-
- ./getdate >getdate-got <<EOF
-@@ -235,22 +240,22 @@
- if valid_timezone $TZ; then
- cat >getdate-expected <<EOF
- Enter date, or blank line to exit.
-- > 2005-03-01 00:00:00.000000000
-- > 2005-03-27 00:00:00.000000000
-- > 2005-03-28 01:00:00.000000000
-- > 2005-03-28 01:00:00.000000000
-- > 2005-03-29 01:00:00.000000000
-- > 2005-03-29 01:00:00.000000000
-- > 2005-03-30 01:00:00.000000000
-- > 2005-03-30 01:00:00.000000000
-- > 2005-03-31 01:00:00.000000000
-- > 2005-03-31 01:00:00.000000000
-- > 2005-04-01 01:00:00.000000000
-- > 2005-04-01 01:00:00.000000000
-- > 2005-04-10 01:00:00.000000000
-- > 2005-04-10 01:00:00.000000000
-- > 2005-04-01 00:00:00.000000000
-- >
-+> 1109635200 = 2005-03-01 00:00:00.000000000
-+> 1111881600 = 2005-03-27 00:00:00.000000000
-+> 1111968000 = 2005-03-28 01:00:00.000000000
-+> 1111968000 = 2005-03-28 01:00:00.000000000
-+> 1112054400 = 2005-03-29 01:00:00.000000000
-+> 1112054400 = 2005-03-29 01:00:00.000000000
-+> 1112140800 = 2005-03-30 01:00:00.000000000
-+> 1112140800 = 2005-03-30 01:00:00.000000000
-+> 1112227200 = 2005-03-31 01:00:00.000000000
-+> 1112227200 = 2005-03-31 01:00:00.000000000
-+> 1112313600 = 2005-04-01 01:00:00.000000000
-+> 1112313600 = 2005-04-01 01:00:00.000000000
-+> 1113091200 = 2005-04-10 01:00:00.000000000
-+> 1113091200 = 2005-04-10 01:00:00.000000000
-+> 1112310000 = 2005-04-01 00:00:00.000000000
-+>
- EOF
-
- ./getdate >getdate-got <<EOF
-@@ -297,20 +302,20 @@
- if valid_timezone $TZ; then
- cat >getdate-expected <<EOF
- Enter date, or blank line to exit.
-- > 2005-03-01 00:00:00.000000000
-- > 2005-02-28 18:00:00.000000000
-- > 2005-04-01 00:00:00.000000000
-- > Bad format - couldn't convert.
-- > 2005-04-30 19:00:00.000000000
-- > 2005-04-30 20:00:00.000000000
-- > 2005-05-01 00:00:00.000000000
-- > 2005-04-30 20:00:00.000000000
-- > Bad format - couldn't convert.
-- > 2005-05-31 19:00:00.000000000
-- > 2005-05-31 20:00:00.000000000
-- > 2005-06-01 00:00:00.000000000
-- > 2005-05-31 20:00:00.000000000
-- >
-+> 1109653200 = 2005-03-01 00:00:00.000000000
-+> 1109631600 = 2005-02-28 18:00:00.000000000
-+> 1112331600 = 2005-04-01 00:00:00.000000000
-+> Bad format - couldn't convert.
-+> 1114902000 = 2005-04-30 19:00:00.000000000
-+> 1114905600 = 2005-04-30 20:00:00.000000000
-+> 1114920000 = 2005-05-01 00:00:00.000000000
-+> 1114905600 = 2005-04-30 20:00:00.000000000
-+> Bad format - couldn't convert.
-+> 1117580400 = 2005-05-31 19:00:00.000000000
-+> 1117584000 = 2005-05-31 20:00:00.000000000
-+> 1117598400 = 2005-06-01 00:00:00.000000000
-+> 1117584000 = 2005-05-31 20:00:00.000000000
-+>
- EOF
-
- ./getdate >getdate-got <<EOF
---- cvs-1.12.13+real.orig/lib/vasnprintf.c
-+++ cvs-1.12.13+real/lib/vasnprintf.c
-@@ -26,7 +26,9 @@
- # include <config.h>
- #endif
- #ifndef IN_LIBINTL
-+# ifdef HAVE_ALLOCA_H
- # include <alloca.h>
-+# endif
- #endif
-
- /* Specification. */
-@@ -100,7 +102,12 @@
- # define DIRECTIVE char_directive
- # define DIRECTIVES char_directives
- # define PRINTF_PARSE printf_parse
-+#if 0
-+/* disabled for security reasons, to avoid having %n in writable memory */
- # define USE_SNPRINTF (HAVE_DECL__SNPRINTF || HAVE_SNPRINTF)
-+#else
-+# define USE_SNPRINTF 0
-+#endif
- # if HAVE_DECL__SNPRINTF
- /* Windows. */
- # define SNPRINTF _snprintf
-@@ -591,11 +598,12 @@
- {
- size_t maxlen;
- int count;
-- int retcount;
-+#if USE_SNPRINTF
-+ int retcount = 0;
-+#endif
-
- maxlen = allocated - length;
- count = -1;
-- retcount = 0;
-
- #if USE_SNPRINTF
- # define SNPRINTF_BUF(arg) \
---- cvs-1.12.13+real.orig/lib/xalloc.h
-+++ cvs-1.12.13+real/lib/xalloc.h
-@@ -29,7 +29,7 @@
-
-
- # ifndef __attribute__
--# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || __STRICT_ANSI__
-+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 8) || (defined(__STRICT_ANSI__) && (__STRICT_ANSI__))
- # define __attribute__(x)
- # endif
- # endif
---- cvs-1.12.13+real.orig/m4/getcwd-path-max.m4
-+++ cvs-1.12.13+real/m4/getcwd-path-max.m4
-@@ -65,8 +65,8 @@
- {
- #ifndef PATH_MAX
- /* The Hurd doesn't define this, so getcwd can't exhibit the bug --
-- at least not on a local file system. And if we were to start worrying
-- about remote file systems, we'd have to enable the wrapper function
-+ at least not on a local filesystem. And if we were to start worrying
-+ about remote filesystems, we'd have to enable the wrapper function
- all of the time, just to be safe. That's not worth the cost. */
- exit (0);
- #elif ((INT_MAX / (DIR_NAME_SIZE / DOTDOTSLASH_LEN + 1) \
---- cvs-1.12.13+real.orig/m4/getdate.m4
-+++ cvs-1.12.13+real/m4/getdate.m4
-@@ -6,7 +6,7 @@
-
- AC_DEFUN([gl_GETDATE],
- [
-- AC_LIBSOURCES([getdate.h, getdate.y])
-+ AC_LIBSOURCES([getdate.h, getdate.c])
- AC_LIBOBJ([getdate])
-
- dnl Prerequisites of lib/getdate.h.
---- cvs-1.12.13+real.orig/m4/longdouble.m4
-+++ cvs-1.12.13+real/m4/longdouble.m4
-@@ -8,21 +8,12 @@
- dnl Test whether the compiler supports the 'long double' type.
- dnl Prerequisite: AC_PROG_CC
-
-+dnl $MirOS: src/gnu/usr.bin/cvs/m4/longdouble.m4,v 1.4 2016/10/22 03:36:43 tg Exp $
-+
- AC_DEFUN([gt_TYPE_LONGDOUBLE],
- [
-- AC_CACHE_CHECK([for long double], gt_cv_c_long_double,
-- [if test "$GCC" = yes; then
-- gt_cv_c_long_double=yes
-- else
-- AC_TRY_COMPILE([
-- /* The Stardent Vistra knows sizeof(long double), but does not support it. */
-- long double foo = 0.0;
-- /* On Ultrix 4.3 cc, long double is 4 and double is 8. */
-- int array [2*(sizeof(long double) >= sizeof(double)) - 1];
-- ], ,
-- gt_cv_c_long_double=yes, gt_cv_c_long_double=no)
-- fi])
-- if test $gt_cv_c_long_double = yes; then
-+ AC_CHECK_TYPE([long double], [gt_cv_c_long_double=yes], [gt_cv_c_long_double=no])
-+ if test x"$gt_cv_c_long_double" = x"yes"; then
- AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the 'long double' type.])
- fi
- ])
---- cvs-1.12.13+real.orig/m4/mktime.m4
-+++ cvs-1.12.13+real/m4/mktime.m4
-@@ -6,6 +6,9 @@
-
- dnl From Jim Meyering.
-
-+dnl Test program updated to git faefb77009239f82ac2f77ac0c10d71d4f38af07
-+dnl for Debian.
-+
- # Redefine AC_FUNC_MKTIME, to fix a bug in Autoconf 2.57 and earlier.
- # This redefinition can be removed once a new version of Autoconf comes out.
- # The redefinition is taken from
-@@ -19,27 +22,16 @@
- AC_CACHE_CHECK([for working mktime], ac_cv_func_working_mktime,
- [AC_RUN_IFELSE([AC_LANG_SOURCE(
- [[/* Test program from Paul Eggert and Tony Leneis. */
--#if TIME_WITH_SYS_TIME
--# include <sys/time.h>
--# include <time.h>
--#else
--# if HAVE_SYS_TIME_H
--# include <sys/time.h>
--# else
--# include <time.h>
--# endif
--#endif
-+#include <limits.h>
-+#include <stdlib.h>
-+#include <time.h>
-
--#if HAVE_STDLIB_H
--# include <stdlib.h>
--#endif
--
--#if HAVE_UNISTD_H
-+#ifdef HAVE_UNISTD_H
- # include <unistd.h>
- #endif
-
--#if !HAVE_ALARM
--# define alarm(X) /* empty */
-+#if HAVE_DECL_ALARM
-+# include <signal.h>
- #endif
-
- /* Work around redefinition to rpl_putenv by other config tests. */
-@@ -55,9 +47,9 @@
- };
- #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
-
--/* Fail if mktime fails to convert a date in the spring-forward gap.
-+/* Return 0 if mktime fails to convert a date in the spring-forward gap.
- Based on a problem report from Andreas Jaeger. */
--static void
-+static int
- spring_forward_gap ()
- {
- /* glibc (up to about 1998-10-07) failed this test. */
-@@ -76,29 +68,25 @@
- tm.tm_min = 0;
- tm.tm_sec = 0;
- tm.tm_isdst = -1;
-- if (mktime (&tm) == (time_t)-1)
-- exit (1);
-+ return mktime (&tm) != (time_t) -1;
- }
-
--static void
--mktime_test1 (now)
-- time_t now;
-+static int
-+mktime_test1 (time_t now)
- {
- struct tm *lt;
-- if ((lt = localtime (&now)) && mktime (lt) != now)
-- exit (1);
-+ return ! (lt = localtime (&now)) || mktime (lt) == now;
- }
-
--static void
--mktime_test (now)
-- time_t now;
-+static int
-+mktime_test (time_t now)
- {
-- mktime_test1 (now);
-- mktime_test1 ((time_t) (time_t_max - now));
-- mktime_test1 ((time_t) (time_t_min + now));
-+ return (mktime_test1 (now)
-+ && mktime_test1 ((time_t) (time_t_max - now))
-+ && mktime_test1 ((time_t) (time_t_min + now)));
- }
-
--static void
-+static int
- irix_6_4_bug ()
- {
- /* Based on code from Ariel Faigon. */
-@@ -111,13 +99,11 @@
- tm.tm_sec = 0;
- tm.tm_isdst = -1;
- mktime (&tm);
-- if (tm.tm_mon != 2 || tm.tm_mday != 31)
-- exit (1);
-+ return tm.tm_mon == 2 && tm.tm_mday == 31;
- }
-
--static void
--bigtime_test (j)
-- int j;
-+static int
-+bigtime_test (int j)
- {
- struct tm tm;
- time_t now;
-@@ -127,56 +113,110 @@
- {
- struct tm *lt = localtime (&now);
- if (! (lt
-- && lt->tm_year == tm.tm_year
-- && lt->tm_mon == tm.tm_mon
-- && lt->tm_mday == tm.tm_mday
-- && lt->tm_hour == tm.tm_hour
-- && lt->tm_min == tm.tm_min
-- && lt->tm_sec == tm.tm_sec
-- && lt->tm_yday == tm.tm_yday
-- && lt->tm_wday == tm.tm_wday
-- && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst)
-- == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst))))
-- exit (1);
-+ && lt->tm_year == tm.tm_year
-+ && lt->tm_mon == tm.tm_mon
-+ && lt->tm_mday == tm.tm_mday
-+ && lt->tm_hour == tm.tm_hour
-+ && lt->tm_min == tm.tm_min
-+ && lt->tm_sec == tm.tm_sec
-+ && lt->tm_yday == tm.tm_yday
-+ && lt->tm_wday == tm.tm_wday
-+ && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst)
-+ == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst))))
-+ return 0;
- }
-+ return 1;
-+}
-+
-+static int
-+year_2050_test ()
-+{
-+ /* The correct answer for 2050-02-01 00:00:00 in Pacific time,
-+ ignoring leap seconds. */
-+ unsigned long int answer = 2527315200UL;
-+
-+ struct tm tm;
-+ time_t t;
-+ tm.tm_year = 2050 - 1900;
-+ tm.tm_mon = 2 - 1;
-+ tm.tm_mday = 1;
-+ tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
-+ tm.tm_isdst = -1;
-+
-+ /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
-+ instead of "TZ=America/Vancouver" in order to detect the bug even
-+ on systems that don't support the Olson extension, or don't have the
-+ full zoneinfo tables installed. */
-+ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
-+
-+ t = mktime (&tm);
-+
-+ /* Check that the result is either a failure, or close enough
-+ to the correct answer that we can assume the discrepancy is
-+ due to leap seconds. */
-+ return (t == (time_t) -1
-+ || (0 < t && answer - 120 <= t && t <= answer + 120));
- }
-
- int
- main ()
- {
-+ int result = 0;
- time_t t, delta;
- int i, j;
-+ int time_t_signed_magnitude = (time_t) ~ (time_t) 0 < (time_t) -1;
-+ int time_t_signed = ! ((time_t) 0 < (time_t) -1);
-
-+#if HAVE_DECL_ALARM
- /* This test makes some buggy mktime implementations loop.
- Give up after 60 seconds; a mktime slower than that
- isn't worth using anyway. */
-+ signal (SIGALRM, SIG_DFL);
- alarm (60);
-+#endif
-+
-+ time_t_max = (! time_t_signed
-+ ? (time_t) -1
-+ : ((((time_t) 1 << (sizeof (time_t) * CHAR_BIT - 2)) - 1)
-+ * 2 + 1));
-+ time_t_min = (! time_t_signed
-+ ? (time_t) 0
-+ : time_t_signed_magnitude
-+ ? ~ (time_t) 0
-+ : ~ time_t_max);
-
-- for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2)
-- continue;
-- time_t_max--;
-- if ((time_t) -1 < 0)
-- for (time_t_min = -1; (time_t) (time_t_min * 2) < 0; time_t_min *= 2)
-- continue;
- delta = time_t_max / 997; /* a suitable prime number */
- for (i = 0; i < N_STRINGS; i++)
- {
- if (tz_strings[i])
-- putenv (tz_strings[i]);
-+ putenv (tz_strings[i]);
-
-- for (t = 0; t <= time_t_max - delta; t += delta)
-- mktime_test (t);
-- mktime_test ((time_t) 1);
-- mktime_test ((time_t) (60 * 60));
-- mktime_test ((time_t) (60 * 60 * 24));
--
-- for (j = 1; 0 < j; j *= 2)
-- bigtime_test (j);
-- bigtime_test (j - 1);
-+ for (t = 0; t <= time_t_max - delta && (result & 1) == 0; t += delta)
-+ if (! mktime_test (t))
-+ result |= 1;
-+ if ((result & 2) == 0
-+ && ! (mktime_test ((time_t) 1)
-+ && mktime_test ((time_t) (60 * 60))
-+ && mktime_test ((time_t) (60 * 60 * 24))))
-+ result |= 2;
-+
-+ for (j = 1; (result & 4) == 0; j <<= 1)
-+ {
-+ if (! bigtime_test (j))
-+ result |= 4;
-+ if (INT_MAX / 2 < j)
-+ break;
-+ }
-+ if ((result & 8) == 0 && ! bigtime_test (INT_MAX))
-+ result |= 8;
- }
-- irix_6_4_bug ();
-- spring_forward_gap ();
-- exit (0);
-+ if (! irix_6_4_bug ())
-+ result |= 16;
-+ if (! spring_forward_gap ())
-+ result |= 32;
-+ if (! year_2050_test ())
-+ result |= 64;
-+ return result;
- }]])],
- [ac_cv_func_working_mktime=yes],
- [ac_cv_func_working_mktime=no],
---- cvs-1.12.13+real.orig/man/cvs.5
-+++ cvs-1.12.13+real/man/cvs.5
-@@ -1,3 +1,4 @@
-+.\" $MirOS: src/gnu/usr.bin/cvs/man/cvs.5,v 1.3 2010/09/19 19:43:00 tg Exp $
- .TH cvs 5 "12 February 1992"
- .\" Full space in nroff; half space in troff
- .de SP
-@@ -238,9 +239,9 @@
- .B add
- for `tag',
- .B mov
--for `tag -F', and
-+for `tag \-F', and
- .B del
--for `tag -d`),
-+for `tag \-d`),
- .I repository ,
- and any remaining are pairs of
- .B "filename revision" .
---- cvs-1.12.13+real.orig/src/ChangeLog
-+++ cvs-1.12.13+real/src/ChangeLog
-@@ -11313,7 +11313,7 @@
- 1999-05-11 Larry Jones <larry.jones@sdrc.com>
-
- * server.c (serve_notify): Allocate enough memory to hold the
-- "misformed Notify request" message in pending_error_text.
-+ "malformed Notify request" message in pending_error_text.
-
- 1999-05-11 Jim Kingdon <http://www.cyclic.com>
-
---- cvs-1.12.13+real.orig/src/Makefile.am
-+++ cvs-1.12.13+real/src/Makefile.am
-@@ -1,4 +1,5 @@
- ## Process this file with automake to produce Makefile.in
-+# $MirOS: src/gnu/usr.bin/cvs/src/Makefile.am,v 1.9 2017/08/12 18:15:18 tg Exp $
- # Makefile for GNU CVS program.
- #
- # Copyright (C) 1986-2005 The Free Software Foundation, Inc.
-@@ -22,7 +23,6 @@
- -I$(top_srcdir)/diff $(ZLIB_CPPFLAGS)
-
- bin_PROGRAMS = cvs
--bin_SCRIPTS = cvsbug
-
- # The cvs executable
- cvs_SOURCES = \
-@@ -79,6 +79,7 @@
- stack.c stack.h \
- status.c \
- subr.c subr.h \
-+ suck.c \
- tag.c \
- update.c \
- version.c \
-@@ -109,6 +110,7 @@
- ../diff/libdiff.a \
- ../lib/libcvs.a \
- $(ZLIB_LIBS)
-+cvs_LDFLAGS = -Wl,--as-needed
- cvs_LDADD = $(cvs_client_objects) \
- ../diff/libdiff.a \
- ../lib/libcvs.a \
-@@ -127,7 +129,10 @@
- build_src.com \
- sanity.sh
-
--check-local: localcheck remotecheck proxycheck
-+# noredirectcheck currently stalls in config2-init-3 because
-+# it gets back a compressed(?) response from the server it
-+# cannot deal with and waits for commands? replies?
-+check-local: localcheck remotecheck proxycheck #noredirectcheck
-
- .PHONY: localcheck
- localcheck: sanity.config.sh
-@@ -141,6 +146,10 @@
- proxycheck: all sanity.config.sh
- $(SHELL) $(srcdir)/sanity.sh -p `pwd`/cvs$(EXEEXT)
-
-+.PHONY: noredirectcheck
-+noredirectcheck: all sanity.config.sh
-+ $(SHELL) $(srcdir)/sanity.sh -n `pwd`/cvs$(EXEEXT)
-+
- # Our distclean targets
- distclean-local:
- rm -f check.log check.plog check.plog~
---- cvs-1.12.13+real.orig/src/add.c
-+++ cvs-1.12.13+real/src/add.c
-@@ -532,7 +532,8 @@
- free (bbuf);
- }
- Register (entries, finfo.file, "0",
-- timestamp ? timestamp : vers->ts_user,
-+ timestamp ? timestamp :
-+ vers->ts_user_ists ? "locally added" : vers->ts_user,
- vers->options, vers->tag, vers->date, NULL);
- if (timestamp) free (timestamp);
- #ifdef SERVER_SUPPORT
-@@ -784,7 +785,7 @@
- }
-
- /* setup the log message */
-- message = Xasprintf ("Directory %s added to the repository\n%s%s%s%s%s%s",
-+ message = Xasprintf ("Directory %s put under version control\n%s%s%s%s%s%s",
- rcsdir,
- tag ? "--> Using per-directory sticky tag `" : "",
- tag ? tag : "", tag ? "'\n" : "",
---- cvs-1.12.13+real.orig/src/admin.c
-+++ cvs-1.12.13+real/src/admin.c
-@@ -147,6 +147,7 @@
- TRACE (TRACE_FUNCTION, "postadmin_proc (%s, %s)", repository, filter);
-
- /* %c = cvs_cmd_name
-+ * %I = commit ID
- * %R = referrer
- * %p = shortrepos
- * %r = repository
-@@ -162,6 +163,7 @@
- #endif /* SUPPORT_OLD_INFO_FMT_STRINGS */
- filter,
- "c", "s", cvs_cmd_name,
-+ "I", "s", global_session_id,
- #ifdef SERVER_SUPPORT
- "R", "s", referrer ? referrer->original : "NONE",
- #endif /* SERVER_SUPPORT */
---- cvs-1.12.13+real.orig/src/annotate.c
-+++ cvs-1.12.13+real/src/annotate.c
-@@ -21,6 +21,7 @@
-
- /* Options from the command line. */
-
-+static int backwards = 0;
- static int force_tag_match = 1;
- static int force_binary = 0;
- static char *tag = NULL;
-@@ -36,7 +37,8 @@
-
- static const char *const annotate_usage[] =
- {
-- "Usage: %s %s [-lRfF] [-r rev] [-D date] [files...]\n",
-+ "Usage: %s %s [-blRfF] [-r rev] [-D date] [files...]\n",
-+ "\t-b\tBackwards, show when a line was removed.\n",
- "\t-l\tLocal directory only, no recursion.\n",
- "\t-R\tProcess directories recursively.\n",
- "\t-f\tUse head revision if tag/date not found.\n",
-@@ -63,10 +65,13 @@
- usage (annotate_usage);
-
- optind = 0;
-- while ((c = getopt (argc, argv, "+lr:D:fFR")) != -1)
-+ while ((c = getopt (argc, argv, "+blr:D:fFR")) != -1)
- {
- switch (c)
- {
-+ case 'b':
-+ backwards = 1;
-+ break;
- case 'l':
- local = 1;
- break;
-@@ -105,6 +110,8 @@
-
- ign_setup ();
-
-+ if (backwards)
-+ send_arg ("-b");
- if (local)
- send_arg ("-l");
- if (!force_tag_match)
-@@ -280,7 +287,8 @@
- else
- {
- RCS_deltas (finfo->rcs, NULL, NULL,
-- version, RCS_ANNOTATE, NULL, NULL, NULL, NULL);
-+ version, backwards ? RCS_ANNOTATE_BACKWARDS : RCS_ANNOTATE,
-+ NULL, NULL, NULL, NULL);
- }
- free (version);
- return 0;
---- cvs-1.12.13+real.orig/src/buffer.c
-+++ cvs-1.12.13+real/src/buffer.c
-@@ -1,6 +1,9 @@
- /*
-+ * Copyright © 2017 mirabilos <m@mirbsd.org>
- * Copyright (C) 1996-2005 The Free Software Foundation, Inc.
- *
-+ * Portions Copyright (c) 2017 Patrick Keshishian
-+ *
- * 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, or (at your option)
-@@ -536,9 +539,10 @@
- void
- buf_free_data (struct buffer *buffer)
- {
-- if (buf_empty_p (buffer)) return;
-+ if (buffer->data) {
- buf_free_datas (buffer->data, buffer->last);
- buffer->data = buffer->last = NULL;
-+ }
- }
-
-
-@@ -1049,7 +1053,14 @@
- }
-
- /* Put in the command. */
-- buf_append_char (outbuf, command);
-+ switch (command) {
-+ case CVS_OUTPUT_EX_LOGM:
-+ buf_output0 (outbuf, "LOGM");
-+ break;
-+ default:
-+ buf_append_char (outbuf, command);
-+ break;
-+ }
- buf_append_char (outbuf, ' ');
-
- if (inbuf->data != nldata)
---- cvs-1.12.13+real.orig/src/checkout.c
-+++ cvs-1.12.13+real/src/checkout.c
-@@ -422,7 +422,7 @@
- *
- * ERRORS
- * Exits with a fatal error message when various events occur, such as not
-- * being able to resolve a path or failing ot chdir to a path.
-+ * being able to resolve a path or failing to chdir to a path.
- */
- int
- safe_location (char *where)
---- cvs-1.12.13+real.orig/src/client.c
-+++ cvs-1.12.13+real/src/client.c
-@@ -3077,6 +3077,7 @@
- rs_optional),
- RSP_LINE("M", handle_m, response_type_normal, rs_essential),
- RSP_LINE("Mbinary", handle_mbinary, response_type_normal, rs_optional),
-+ RSP_LINE("LOGM", handle_m, response_type_normal, rs_optional),
- RSP_LINE("E", handle_e, response_type_normal, rs_essential),
- RSP_LINE("F", handle_f, response_type_normal, rs_optional),
- RSP_LINE("MT", handle_mt, response_type_normal, rs_optional),
-@@ -3355,7 +3356,7 @@
- struct servent *s;
- char *port_s;
-
-- if (envname && (port_s = getenv (envname)))
-+ if (envname && (port_s = getenv (envname)) && *port_s)
- {
- int port = atoi (port_s);
- if (port <= 0)
-@@ -3510,6 +3511,17 @@
- sock = socket (AF_INET, SOCK_STREAM, 0);
- if (sock == -1)
- error (1, 0, "cannot create socket: %s", SOCK_STRERROR (SOCK_ERRNO));
-+
-+#ifdef TCP_NODELAY
-+ /* Avoid latency due to Nagle algorithm. */
-+ {
-+ int on = 1;
-+
-+ if (setsockopt (sock, IPPROTO_TCP, TCP_NODELAY, &on, sizeof on) < 0)
-+ error (0, errno, "warning: cannot set TCP_NODELAY on socket");
-+ }
-+#endif
-+
- port_number = get_cvs_port_number (root);
-
- /* if we have a proxy connect to that instead */
-@@ -3558,9 +3570,9 @@
- * code.
- */
- read_line_via (from_server, to_server, &read_buf);
-- sscanf (read_buf, "%s %d", write_buf, &codenum);
-+ count = sscanf (read_buf, "%*s %d", &codenum);
-
-- if ((codenum / 100) != 2)
-+ if (count != 1 || (codenum / 100) != 2)
- error (1, 0, "proxy server %s:%d does not support http tunnelling",
- root->proxy_hostname, proxy_port_number);
- free (read_buf);
-@@ -3793,11 +3805,12 @@
- /* This is pretty simple. All we need to do is choose the correct
- cvs binary and call piped_child. */
-
-- char *command[3];
-+ char *command[4];
-+ int ncommand = 0;
-
-- command[0] = (root->cvs_server
-+ command[ncommand++] = (root->cvs_server
- ? root->cvs_server : getenv ("CVS_SERVER"));
-- if (!command[0])
-+ if (!command[0] || !command[0][0])
- # ifdef SERVER_SUPPORT
- /* FIXME:
- * I'm casting out the const below because I know that piped_child, the
-@@ -3807,7 +3820,7 @@
- * such that this casting isn't needed, but I don't know how. If I
- * declare it as (const char *command[]), the compiler complains about
- * an incompatible arg 1 being passed to piped_child and if I declare
-- * it as (char *const command[3]), then the compiler complains when I
-+ * it as (char *const command[4]), then the compiler complains when I
- * assign values to command[i].
- */
- command[0] = (char *)program_path;
-@@ -3819,11 +3832,15 @@
- }
- # endif /* SERVER_SUPPORT */
-
-- command[1] = "server";
-- command[2] = NULL;
--
-- TRACE (TRACE_FUNCTION, "Forking server: %s %s",
-- command[0] ? command[0] : "(null)", command[1]);
-+ if (readonlyfs)
-+ command[ncommand++] = "-R";
-+ command[ncommand++] = "server";
-+ command[ncommand++] = NULL;
-+
-+ TRACE (TRACE_FUNCTION, "Forking server: %s %s %s",
-+ command[0] ? command[0] : "(null)",
-+ command[1] ? command[1] : "(null)",
-+ command[2] ? command[2] : "");
-
- child_pid = piped_child (command, &tofd, &fromfd, false);
- if (child_pid < 0)
-@@ -3901,8 +3918,12 @@
- case ext_method:
- #ifdef NO_EXT_METHOD
- error (0, 0, ":ext: method not supported by this port of CVS");
-+ if (0)
-+ case extssh_method:
-+ error (0, 0, ":extssh: method not supported by this port of CVS");
- error (1, 0, "try :server: instead");
- #else /* ! NO_EXT_METHOD */
-+ case extssh_method:
- start_rsh_server (root, to_server_p,
- from_server_p);
- #endif /* NO_EXT_METHOD */
-@@ -4362,7 +4383,7 @@
- sprintf (tmp, "%lu\n", (unsigned long) newsize);
- send_to_server (tmp, 0);
-
-- send_to_server (buf, newsize);
-+ send_to_server ((const void *)buf, newsize);
- }
- }
- else
-@@ -4415,7 +4436,7 @@
- * one.
- */
- if (newsize > 0)
-- send_to_server (buf, newsize);
-+ send_to_server ((const void *)buf, newsize);
- }
- free (buf);
- free (mode_string);
-@@ -4914,7 +4935,7 @@
- {
- if (supported_request ("Max-dotdot"))
- {
-- char buf[10];
-+ char buf[12];
- sprintf (buf, "%d", max_level);
-
- send_to_server ("Max-dotdot ", 0);
---- cvs-1.12.13+real.orig/src/client.h
-+++ cvs-1.12.13+real/src/client.h
-@@ -213,6 +213,7 @@
- #if defined AUTH_CLIENT_SUPPORT || defined HAVE_KERBEROS || defined HAVE_GSSAPI
- # include <sys/socket.h>
- # include <netinet/in.h>
-+# include <netinet/tcp.h>
- # include <arpa/inet.h>
- # include <netdb.h>
- struct hostent *init_sockaddr (struct sockaddr_in *, char *, unsigned int);
---- cvs-1.12.13+real.orig/src/commit.c
-+++ cvs-1.12.13+real/src/commit.c
-@@ -492,7 +492,7 @@
-
- /* Now we keep track of which files we actually are going to
- operate on, and only work with those files in the future.
-- This saves time--we don't want to search the file system
-+ This saves time--we don't want to search the filesystem
- of the working directory twice. */
- if (size_overflow_p (xtimes (find_args.argc, sizeof (char **))))
- {
-@@ -613,31 +613,7 @@
-
- send_to_server ("ci\012", 0);
- err = get_responses_and_close ();
-- if (err != 0 && use_editor && saved_message != NULL)
-- {
-- /* If there was an error, don't nuke the user's carefully
-- constructed prose. This is something of a kludge; a better
-- solution is probably more along the lines of #150 in TODO
-- (doing a second up-to-date check before accepting the
-- log message has also been suggested, but that seems kind of
-- iffy because the real up-to-date check could still fail,
-- another error could occur, &c. Also, a second check would
-- slow things down). */
--
-- char *fname;
-- FILE *fp;
--
-- fp = cvs_temp_file (&fname);
-- if (fp == NULL)
-- error (1, 0, "cannot create temporary file %s", fname);
-- if (fwrite (saved_message, 1, strlen (saved_message), fp)
-- != strlen (saved_message))
-- error (1, errno, "cannot write temporary file %s", fname);
-- if (fclose (fp) < 0)
-- error (0, errno, "cannot close temporary file %s", fname);
-- error (0, 0, "saving log message in %s", fname);
-- free (fname);
-- }
-+ logmsg_cleanup(err);
- return err;
- }
- #endif
-@@ -702,6 +678,7 @@
- sleep_past (last_register_time);
- }
-
-+ logmsg_cleanup(err);
- return err;
- }
-
-@@ -853,7 +830,7 @@
- case T_ADDED:
- case T_REMOVED:
- {
-- char *editor;
-+ char *editor = NULL;
-
- /*
- * some quick sanity checks; if no numeric -r option specified:
-@@ -1250,6 +1227,7 @@
- #endif /* SUPPORT_OLD_INFO_FMT_STRINGS */
- filter,
- "c", "s", cvs_cmd_name,
-+ "I", "s", global_session_id,
- #ifdef SERVER_SUPPORT
- "R", "s", referrer ? referrer->original : "NONE",
- #endif /* SERVER_SUPPORT */
-@@ -2255,9 +2233,10 @@
- this was added into the log message. */
- t = time (NULL);
- ct = gmtime (&t);
-- tmp = Xasprintf ("file %s was added on branch %s on %d-%02d-%02d %02d:%02d:%02d +0000",
-+ tmp = Xasprintf ("file %s was added on branch %s on %ld-%02d-%02d %02d:%02d:%02d +0000",
- file, tag,
-- ct->tm_year + (ct->tm_year < 100 ? 0 : 1900),
-+ (long)ct->tm_year
-+ + (ct->tm_year < 100 ? 0 : 1900),
- ct->tm_mon + 1, ct->tm_mday,
- ct->tm_hour, ct->tm_min, ct->tm_sec);
-
---- cvs-1.12.13+real.orig/src/cvs.h
-+++ cvs-1.12.13+real/src/cvs.h
-@@ -1,4 +1,7 @@
-+/* $MirOS: src/gnu/usr.bin/cvs/src/cvs.h,v 1.9 2017/11/18 23:04:55 tg Exp $ */
-+
- /*
-+ * Copyright © 2017 mirabilos <m@mirbsd.org>
- * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
- *
- * Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
-@@ -24,7 +27,7 @@
- /* Add GNU attribute suppport. */
- #ifndef __attribute__
- /* This feature is available in gcc versions 2.5 and later. */
--# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || __STRICT_ANSI__
-+# if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 5) || (defined(__STRICT_ANSI__) && (__STRICT_ANSI__))
- # define __attribute__(Spec) /* empty */
- # else
- # if __GNUC__ == 2 && __GNUC_MINOR__ < 96
-@@ -365,6 +368,7 @@
-
- extern const char *program_name, *program_path, *cvs_cmd_name;
- extern char *Editor;
-+extern char *LogMsgFile;
- extern int cvsadmin_root;
- extern char *CurDir;
- extern int really_quiet, quiet;
-@@ -504,6 +508,8 @@
- int unlink_file (const char *f);
- int unlink_file_dir (const char *f);
-
-+int suck (int argc, char *argv[]);
-+
- /* This is the structure that the recursion processor passes to the
- fileproc to tell it about a particular file. */
- struct file_info
-@@ -585,7 +591,8 @@
- void check_entries (char *dir);
- void close_module (DBM * db);
- void copy_file (const char *from, const char *to);
--void fperrmsg (FILE * fp, int status, int errnum, char *message,...);
-+void fperrmsg (FILE * fp, int status, int errnum, char *message, ...)
-+ __attribute__ ((__format__(__printf__, 4, 5)));
-
- int ign_name (char *name);
- void ign_add (char *ign, int hold);
-@@ -618,7 +625,8 @@
- void cleanup_register (void (*handler) (void));
-
- void update_delproc (Node * p);
--void usage (const char *const *cpp);
-+void usage (const char *const *cpp)
-+ __attribute__((__noreturn__));
- void xchmod (const char *fname, int writable);
- List *Find_Names (char *repository, int which, int aflag,
- List ** optentries);
-@@ -629,6 +637,7 @@
- FILE *xlogfp, List *xchanges);
- void do_editor (const char *dir, char **messagep,
- const char *repository, List *changes);
-+void logmsg_cleanup (int err);
-
- void do_verify (char **messagep, const char *repository, List *changes);
-
-@@ -726,7 +735,7 @@
- /* This is the timestamp from stating the file in the working directory.
- It is NULL if there is no file in the working directory. It is
- "Is-modified" if we know the file is modified but don't have its
-- contents. */
-+ contents. See also: ts_user_ists. */
- char *ts_user;
- /* Timestamp from CVS/Entries. For the server, ts_user and ts_rcs
- are computed in a slightly different way, but the fact remains that
-@@ -759,6 +768,9 @@
-
- /* Pointer to parsed src file info */
- RCSNode *srcfile;
-+
-+ /* 1 if ts_user is known to be the actual timestamp of a local file */
-+ unsigned char ts_user_ists;
- };
- typedef struct vers_ts Vers_TS;
-
-@@ -911,11 +923,15 @@
-
- /* From server.c and documented there. */
- void cvs_output (const char *, size_t);
-+void cvs_output_ex (const char *, size_t, int);
- void cvs_output_binary (char *, size_t);
- void cvs_outerr (const char *, size_t);
- void cvs_flusherr (void);
- void cvs_flushout (void);
- void cvs_output_tagged (const char *, const char *);
-+int supported_response (const char *);
-+
-+#define CVS_OUTPUT_EX_LOGM 0x80000001
-
- extern const char *global_session_id;
-
---- cvs-1.12.13+real.orig/src/cvsrc.c
-+++ cvs-1.12.13+real/src/cvsrc.c
-@@ -41,6 +41,7 @@
- size_t line_chars_allocated;
-
- char *optstart;
-+ int white_len = 0;
-
- int command_len;
- int found = 0;
-@@ -96,9 +97,12 @@
- if (line[0] == '#')
- continue;
-
-+ while (isspace(line[white_len]))
-+ ++white_len;
-+
- /* stop if we match the current command */
-- if (!strncmp (line, cmdname, command_len)
-- && isspace ((unsigned char) *(line + command_len)))
-+ if (!strncmp (line + white_len, cmdname, command_len)
-+ && isspace ((unsigned char) *(line + white_len + command_len)))
- {
- found = 1;
- break;
-@@ -120,7 +124,7 @@
- if (found)
- {
- /* skip over command in the options line */
-- for (optstart = strtok (line + command_len, "\t \n");
-+ for (optstart = strtok (line + white_len + command_len, "\t \n");
- optstart;
- optstart = strtok (NULL, "\t \n"))
- {
---- cvs-1.12.13+real.orig/src/diff.c
-+++ cvs-1.12.13+real/src/diff.c
-@@ -21,6 +21,8 @@
-
- #include "cvs.h"
-
-+#define TAG_BHEAD ".bhead"
-+
- enum diff_file
- {
- DIFF_ERROR,
-@@ -444,9 +446,9 @@
- }
- #endif
-
-- if (diff_rev1 != NULL)
-+ if (diff_rev1 != NULL && strcmp(diff_rev1, TAG_BHEAD))
- tag_check_valid (diff_rev1, argc, argv, local, 0, "", false);
-- if (diff_rev2 != NULL)
-+ if (diff_rev2 != NULL && strcmp(diff_rev2, TAG_BHEAD))
- tag_check_valid (diff_rev2, argc, argv, local, 0, "", false);
-
- which = W_LOCAL;
-@@ -903,8 +905,14 @@
-
- if (diff_rev1 || diff_date1)
- {
-- /* special handling for TAG_HEAD */
-- if (diff_rev1 && strcmp (diff_rev1, TAG_HEAD) == 0)
-+ /*
-+ * the special handling is broken, -rbranchname is the
-+ * head (tip) of the branch already, -rHEAD is supposed
-+ * to be the head (tip) of the MAIN branch (trunk); we
-+ * introduce ".bhead" here, for now, but only here
-+ */
-+ /* special handling for TAG_BHEAD */
-+ if (diff_rev1 && strcmp (diff_rev1, TAG_BHEAD) == 0)
- {
- if (vers->vn_rcs != NULL && vers->srcfile != NULL)
- use_rev1 = RCS_branch_head (vers->srcfile, vers->vn_rcs);
-@@ -919,8 +927,8 @@
- }
- if (diff_rev2 || diff_date2)
- {
-- /* special handling for TAG_HEAD */
-- if (diff_rev2 && strcmp (diff_rev2, TAG_HEAD) == 0)
-+ /* special handling for TAG_BHEAD */
-+ if (diff_rev2 && strcmp (diff_rev2, TAG_BHEAD) == 0)
- {
- if (vers->vn_rcs && vers->srcfile)
- use_rev2 = RCS_branch_head (vers->srcfile, vers->vn_rcs);
---- cvs-1.12.13+real.orig/src/edit.c
-+++ cvs-1.12.13+real/src/edit.c
-@@ -266,7 +266,7 @@
- cvs_output (p++, 1);
- if (*p == '\0')
- {
-- /* Only happens if attribute is misformed. */
-+ /* Only happens if attribute is malformed. */
- cvs_output ("\n", 1);
- break;
- }
-@@ -828,6 +828,7 @@
- #endif /* SUPPORT_OLD_INFO_FMT_STRINGS */
- filter,
- "c", "s", cvs_cmd_name,
-+ "I", "s", global_session_id,
- #ifdef SERVER_SUPPORT
- "R", "s", referrer ? referrer->original : "NONE",
- #endif /* SERVER_SUPPORT */
---- cvs-1.12.13+real.orig/src/error.c
-+++ cvs-1.12.13+real/src/error.c
-@@ -208,7 +208,7 @@
- * with the message here.
- */
- #if HAVE_SYSLOG_H
-- syslog (LOG_DAEMON | LOG_EMERG, "Memory exhausted. Aborting.");
-+ syslog (LOG_DAEMON | LOG_CRIT, "Memory exhausted. Aborting.");
- #endif /* HAVE_SYSLOG_H */
-
- goto sidestep_done;
-@@ -219,18 +219,18 @@
- * error while attempting to send the last error message to the client.
- */
-
-- syslog (LOG_DAEMON | LOG_EMERG,
-+ syslog (LOG_DAEMON | LOG_ALERT,
- "error (%d, %d) called recursively. Original message was:",
- last_status, last_errnum);
-- syslog (LOG_DAEMON | LOG_EMERG, "%s", last_message);
-+ syslog (LOG_DAEMON | LOG_ALERT, "%s", last_message);
-
-
-- syslog (LOG_DAEMON | LOG_EMERG,
-+ syslog (LOG_DAEMON | LOG_ALERT,
- "error (%d, %d) called recursively. Second message was:",
- status, errnum);
-- syslog (LOG_DAEMON | LOG_EMERG, "%s", buf2);
-+ syslog (LOG_DAEMON | LOG_ALERT, "%s", buf2);
-
-- syslog (LOG_DAEMON | LOG_EMERG, "Aborting.");
-+ syslog (LOG_DAEMON | LOG_ALERT, "Aborting.");
- #endif /* HAVE_SYSLOG_H */
-
- sidestep_done:
---- cvs-1.12.13+real.orig/src/fileattr.c
-+++ cvs-1.12.13+real/src/fileattr.c
-@@ -514,6 +514,7 @@
- TRACE (TRACE_FUNCTION, "postwatch_proc (%s, %s)", repository, filter);
-
- /* %c = command name
-+ * %I = commit ID
- * %p = shortrepos
- * %r = repository
- */
-@@ -528,6 +529,7 @@
- #endif /* SUPPORT_OLD_INFO_FMT_STRINGS */
- filter,
- "c", "s", cvs_cmd_name,
-+ "I", "s", global_session_id,
- #ifdef SERVER_SUPPORT
- "R", "s", referrer ? referrer->original : "NONE",
- #endif /* SERVER_SUPPORT */
---- cvs-1.12.13+real.orig/src/filesubr.c
-+++ cvs-1.12.13+real/src/filesubr.c
-@@ -15,7 +15,7 @@
-
- /* These functions were moved out of subr.c because they need different
- definitions under operating systems (like, say, Windows NT) with different
-- file system semantics. */
-+ filesystem semantics. */
-
- #include "cvs.h"
- #include "lstat.h"
-@@ -808,7 +808,7 @@
- if (home != NULL)
- return home;
-
-- if (!server_active && (env = getenv ("HOME")) != NULL)
-+ if (!server_active && (env = getenv ("HOME")) != NULL && *env)
- home = env;
- else if ((pw = (struct passwd *) getpwuid (getuid ()))
- && pw->pw_dir)
-@@ -863,7 +863,11 @@
- const char *
- get_system_temp_dir (void)
- {
-- if (!tmpdir_env) tmpdir_env = getenv (TMPDIR_ENV);
-+ if (!tmpdir_env) {
-+ tmpdir_env = getenv (TMPDIR_ENV);
-+ if (tmpdir_env && !*tmpdir_env)
-+ tmpdir_env = NULL;
-+ }
- return tmpdir_env;
- }
-
---- cvs-1.12.13+real.orig/src/history.c
-+++ cvs-1.12.13+real/src/history.c
-@@ -379,7 +379,7 @@
- static const char *
- get_history_log_name (time_t now)
- {
-- char *log_name;
-+ char *log_name = NULL;
-
- if (config->HistoryLogPath)
- {
-@@ -1561,7 +1561,7 @@
- tm = localtime (&(lr->date));
-
- (void) printf ("%c %04d-%02d-%02d %02d:%02d %s %-*s", ty,
-- tm->tm_year+1900, tm->tm_mon + 1, tm->tm_mday, tm->tm_hour,
-+ (int)(tm->tm_year+1900), tm->tm_mon + 1, tm->tm_mday, tm->tm_hour,
- tm->tm_min, tz_name, user_len, lr->user);
-
- workdir = xmalloc (strlen (lr->dir) + strlen (lr->end) + 10);
---- cvs-1.12.13+real.orig/src/import.c
-+++ cvs-1.12.13+real/src/import.c
-@@ -25,7 +25,7 @@
- #include "lstat.h"
- #include "save-cwd.h"
-
--static char *get_comment (const char *user);
-+static const char *get_comment (const char *user);
- static int add_rev (char *message, RCSNode *rcs, char *vfile,
- char *vers);
- static int add_tags (RCSNode *rcs, char *vfile, char *vtag, int targc,
-@@ -238,6 +238,23 @@
- regfree (&pat);
- }
-
-+ /*
-+ * If you use even vendor branches, something evil[TM] can happen.
-+ */
-+ {
-+ regex_t pat;
-+ assert (!regcomp (&pat, "^[1-9][0-9]*\\.[1-9][0-9]*\\.[0-9]*[13579]$",
-+ REG_EXTENDED));
-+ if (regexec (&pat, vbranch, 0, NULL, 0))
-+ {
-+ error (0, 0,
-+ "warning: you are using an even vendor branch, which can\n"
-+ "lead to problems: '%s'. Use an odd branch such as '1.1.3' instead.",
-+ vbranch);
-+ }
-+ regfree (&pat);
-+ }
-+
- /* Set vhead to the branch's parent. */
- vhead = xstrdup (vbranch);
- cp = strrchr (vhead, '.');
-@@ -311,6 +328,7 @@
- free (vhead);
- send_to_server ("import\012", 0);
- err += get_responses_and_close ();
-+ logmsg_cleanup(err);
- return err;
- }
- #endif
-@@ -436,6 +454,7 @@
- free (vbranch);
- free (vhead);
-
-+ logmsg_cleanup(err);
- return err;
- }
-
-@@ -595,7 +614,7 @@
- /* Attempt to make the Attic directory, in case it
- does not exist. */
- (void) sprintf (rcs, "%s/%s", repository, CVSATTIC);
-- if (CVS_MKDIR (rcs, 0777 ) != 0 && errno != EEXIST)
-+ if (noexec == 0 && CVS_MKDIR (rcs, 0777 ) != 0 && errno != EEXIST)
- error (1, errno, "cannot make directory `%s'", rcs);
-
- /* Note that the above clobbered the path name, so we
-@@ -866,7 +885,8 @@
- */
- struct compair
- {
-- char *suffix, *comlead;
-+ const char *suffix;
-+ const char *comlead;
- };
-
- static const struct compair comtable[] =
-@@ -973,13 +993,13 @@
-
-
-
--static char *
-+static const char *
- get_comment (const char *user)
- {
- char *cp, *suffix;
- char *suffix_path;
- int i;
-- char *retval;
-+ const char *retval;
-
- suffix_path = xmalloc (strlen (user) + 5);
- cp = strrchr (user, '.');
-@@ -1253,7 +1273,7 @@
- (void) time (&now);
- ftm = gmtime (&now);
- (void) sprintf (altdate1, DATEFORM,
-- ftm->tm_year + (ftm->tm_year < 100 ? 0 : 1900),
-+ (long)ftm->tm_year + (ftm->tm_year < 100 ? 0L : 1900L),
- ftm->tm_mon + 1, ftm->tm_mday, ftm->tm_hour,
- ftm->tm_min, ftm->tm_sec);
- author = getcaller ();
---- cvs-1.12.13+real.orig/src/kerberos4-client.c
-+++ cvs-1.12.13+real/src/kerberos4-client.c
-@@ -17,6 +17,8 @@
- #include "buffer.h"
- #include "socket-client.h"
-
-+#include <netinet/tcp.h>
-+
- # include <krb.h>
-
- extern char *krb_realmofhost ();
-@@ -48,6 +50,16 @@
- if (s < 0)
- error (1, 0, "cannot create socket: %s", SOCK_STRERROR (SOCK_ERRNO));
-
-+#ifdef TCP_NODELAY
-+ /* Avoid latency due to Nagle algorithm. */
-+ {
-+ int on = 1;
-+
-+ if (setsockopt (sock, IPPROTO_TCP, TCP_NODELAY, &on, sizeof on) < 0)
-+ error (0, errno, "warning: cannot set TCP_NODELAY on socket");
-+ }
-+#endif
-+
- port = get_cvs_port_number (root);
-
- hp = init_sockaddr (&sin, root->hostname, port);
---- cvs-1.12.13+real.orig/src/lock.c
-+++ cvs-1.12.13+real/src/lock.c
-@@ -58,7 +58,7 @@
- which periodically get made about how locks might be different:
-
- 1. Check for EROFS. Maybe useful, although in the presence of NFS
-- EROFS does *not* mean that the file system is unchanging.
-+ EROFS does *not* mean that the filesystem is unchanging.
-
- 2. Provide an option to disable locks for operations which only
- read (see above for some of the consequences).
-@@ -1319,6 +1319,10 @@
- lock->repository = Xasprintf ("%s/%s", xrepository, CVSROOTADM);
- lock->free_repository = true;
-
-+ /* do nothing if we know it fails anyway */
-+ if (readonlyfs)
-+ return 0;
-+
- /* get the lock dir for our own */
- if (set_lock (lock, 1) != L_OK)
- {
---- cvs-1.12.13+real.orig/src/log-buffer.c
-+++ cvs-1.12.13+real/src/log-buffer.c
-@@ -481,7 +481,7 @@
- * We do this _after_ authentication on purpose. Wouldn't really like to
- * worry about logging passwords...
- */
-- if (log)
-+ if (log && *log)
- {
- int len = strlen (log);
- char *buf = xmalloc (len + 5);
---- cvs-1.12.13+real.orig/src/log.c
-+++ cvs-1.12.13+real/src/log.c
-@@ -1,4 +1,5 @@
- /*
-+ * Copyright © 2017 mirabilos <m@mirbsd.org>
- * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
- *
- * Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
-@@ -145,6 +146,7 @@
- RCSNode *, RCSVers *, int);
- static int log_branch (Node *, void *);
- static int version_compare (const char *, const char *, int);
-+static void logm_output (const char *);
-
- static struct log_data log_data;
- static int is_rlog;
-@@ -1681,11 +1683,10 @@
- cvs_output ("*** empty log message ***\n", 0);
- else
- {
-+ /* assert: last thing cvs_output’ed was a newline */
- /* FIXME: Technically, the log message could contain a null
- byte. */
-- cvs_output (p->data, 0);
-- if (((char *)p->data)[strlen (p->data) - 1] != '\n')
-- cvs_output ("\n", 1);
-+ logm_output(p->data);
- }
- }
-
-@@ -1780,3 +1781,23 @@
- ++v2;
- }
- }
-+
-+static void
-+logm_output(const char *str)
-+{
-+ /* assert: str is not empty */
-+ size_t len = strlen(str);
-+ int buftag = 'M';
-+ static char has_logm = 0;
-+
-+ if (server_active) {
-+ if (!has_logm)
-+ has_logm = supported_response("LOGM") ? 1 : 2;
-+ if (has_logm == 1)
-+ buftag = CVS_OUTPUT_EX_LOGM;
-+ }
-+
-+ cvs_output_ex(str, len, buftag);
-+ if (/*len > 0 &&*/ str[len - 1] != '\n')
-+ cvs_output_ex("\n", 1, buftag);
-+}
---- cvs-1.12.13+real.orig/src/login.c
-+++ cvs-1.12.13+real/src/login.c
-@@ -44,7 +44,7 @@
- char *passfile;
-
- /* Environment should override file. */
-- if ((passfile = getenv ("CVS_PASSFILE")) != NULL)
-+ if ((passfile = getenv ("CVS_PASSFILE")) != NULL && *passfile)
- return xstrdup (passfile);
-
- /* Construct absolute pathname to user's password file. */
-@@ -200,11 +200,21 @@
- return NULL;
- }
- *p = ' ';
-- tmp_root_canonical = normalize_cvsroot (tmp_root);
-- if (strcmp (cvsroot_canonical, tmp_root_canonical) == 0)
-- password = p + 1;
--
-- free (tmp_root_canonical);
-+ switch (tmp_root->method)
-+ {
-+ case gserver_method:
-+ case pserver_method:
-+#ifdef HAVE_KERBEROS
-+ case kserver_method:
-+#endif /* HAVE_KERBEROS */
-+ tmp_root_canonical = normalize_cvsroot (tmp_root);
-+ if (strcmp (cvsroot_canonical, tmp_root_canonical) == 0)
-+ password = p + 1;
-+ free (tmp_root_canonical);
-+ break;
-+ default:
-+ break;
-+ }
- }
-
- return password;
-@@ -309,7 +319,9 @@
- fp = CVS_FOPEN (passfile, "r");
- if (fp == NULL)
- {
-+ if (errno != ENOENT) {
- error (0, errno, "warning: failed to open %s for reading", passfile);
-+ }
- goto process;
- }
-
-@@ -432,7 +444,7 @@
- *
- * I don't think so, unless we change the way rename_file works to
- * attempt a cp/rm sequence when rename fails since rename doesn't
-- * work across file systems and it isn't uncommon to have /tmp
-+ * work across filesystems and it isn't uncommon to have /tmp
- * on its own partition.
- *
- * For that matter, it's probably not uncommon to have a home
---- cvs-1.12.13+real.orig/src/logmsg.c
-+++ cvs-1.12.13+real/src/logmsg.c
-@@ -31,6 +31,8 @@
- static FILE *fp;
- static Ctype type;
-
-+char *LogMsgFile = NULL;
-+
- struct verifymsg_proc_data
- {
- /* The name of the temp file storing the log message to be verified. This
-@@ -201,6 +203,7 @@
- char *fname;
- struct stat pre_stbuf, post_stbuf;
- int retcode = 0;
-+ int finish = 0;
-
- assert (!current_parsed_root->isremote != !repository);
-
-@@ -224,6 +227,10 @@
- (*messagep)[strlen (*messagep) - 1] != '\n')
- (void) fprintf (fp, "\n");
- }
-+ else
-+ (void) fputc ('\n', fp);
-+ if (finish)
-+ goto finish_off;
-
- if (repository != NULL)
- /* tack templates on if necessary */
-@@ -267,6 +274,9 @@
- (void) fprintf (fp,
- "%s----------------------------------------------------------------------\n",
- CVSEDITPREFIX);
-+ if (readonlyfs)
-+ (void) fprintf (fp, "%sATTENTION: read-only mode selected!\n",
-+ CVSEDITPREFIX);
- (void) fprintf (fp,
- "%sEnter Log. Lines beginning with `%.*s' are removed automatically\n%s\n",
- CVSEDITPREFIX, CVSEDITPREFIXLEN, CVSEDITPREFIX,
-@@ -280,28 +290,38 @@
- "%s----------------------------------------------------------------------\n",
- CVSEDITPREFIX);
-
-+ finish_off:
- /* finish off the temp file */
- if (fclose (fp) == EOF)
- error (1, errno, "%s", fname);
-- if (stat (fname, &pre_stbuf) == -1)
-+ if (LogMsgFile)
-+ {
-+ if (unlink_file (LogMsgFile) < 0)
-+ error (0, errno, "warning: cannot remove temp file %s", LogMsgFile);
-+ free (LogMsgFile);
-+ }
-+ LogMsgFile = fname;
-+ if (finish)
-+ return;
-+ if (stat (LogMsgFile, &pre_stbuf) == -1)
- pre_stbuf.st_mtime = 0;
-
- /* run the editor */
- run_setup (Editor);
-- run_add_arg (fname);
-+ run_add_arg (LogMsgFile);
- if ((retcode = run_exec (RUN_TTY, RUN_TTY, RUN_TTY,
- RUN_NORMAL | RUN_SIGIGNORE)) != 0)
- error (0, retcode == -1 ? errno : 0, "warning: editor session failed");
-
- /* put the entire message back into the *messagep variable */
-
-- fp = xfopen (fname, "r");
-+ fp = xfopen (LogMsgFile, "r");
-
- if (*messagep)
- free (*messagep);
-
-- if (stat (fname, &post_stbuf) != 0)
-- error (1, errno, "cannot find size of temp file %s", fname);
-+ if (stat (LogMsgFile, &post_stbuf) != 0)
-+ error (1, errno, "cannot find size of temp file %s", LogMsgFile);
-
- if (post_stbuf.st_size == 0)
- *messagep = NULL;
-@@ -326,7 +346,7 @@
- if (line_length == -1)
- {
- if (ferror (fp))
-- error (0, errno, "warning: cannot read %s", fname);
-+ error (0, errno, "warning: cannot read %s", LogMsgFile);
- break;
- }
- if (strncmp (line, CVSEDITPREFIX, CVSEDITPREFIXLEN) == 0)
-@@ -339,7 +359,7 @@
- }
- }
- if (fclose (fp) < 0)
-- error (0, errno, "warning: cannot close %s", fname);
-+ error (0, errno, "warning: cannot close %s", LogMsgFile);
-
- /* canonicalize emply messages */
- if (*messagep != NULL &&
-@@ -349,7 +369,11 @@
- *messagep = NULL;
- }
-
-- if (pre_stbuf.st_mtime == post_stbuf.st_mtime || *messagep == NULL)
-+ if (pre_stbuf.st_mtime == post_stbuf.st_mtime ||
-+ *messagep == NULL ||
-+ (*messagep)[0] == '\0' ||
-+ strcmp (*messagep, "\n") == 0 ||
-+ strcmp (*messagep, "\n\n") == 0)
- {
- for (;;)
- {
-@@ -361,9 +385,11 @@
- if (line_length < 0)
- {
- error (0, errno, "cannot read from stdin");
-- if (unlink_file (fname) < 0)
-+ if (unlink_file (LogMsgFile) < 0)
- error (0, errno,
-- "warning: cannot remove temp file %s", fname);
-+ "warning: cannot remove temp file %s", LogMsgFile);
-+ free (LogMsgFile);
-+ LogMsgFile = NULL;
- error (1, 0, "aborting");
- }
- else if (line_length == 0
-@@ -371,8 +397,10 @@
- break;
- if (*line == 'a' || *line == 'A')
- {
-- if (unlink_file (fname) < 0)
-- error (0, errno, "warning: cannot remove temp file %s", fname);
-+ if (unlink_file (LogMsgFile) < 0)
-+ error (0, errno, "warning: cannot remove temp file %s", LogMsgFile);
-+ free (LogMsgFile);
-+ LogMsgFile = NULL;
- error (1, 0, "aborted by user");
- }
- if (*line == 'e' || *line == 'E')
-@@ -387,15 +415,14 @@
- }
- if (line)
- free (line);
-- if (unlink_file (fname) < 0)
-- error (0, errno, "warning: cannot remove temp file %s", fname);
-- free (fname);
-+ finish = 1;
-+ goto again;
- }
-
- /* Runs the user-defined verification script as part of the commit or import
- process. This verification is meant to be run whether or not the user
- included the -m attribute. unlike the do_editor function, this is
-- independant of the running of an editor for getting a message.
-+ independent of the running of an editor for getting a message.
- */
- void
- do_verify (char **messagep, const char *repository, List *changes)
-@@ -785,6 +812,7 @@
- `%s' is left as an exercise for the reader. */
-
- /* %c = cvs_cmd_name
-+ * %I = commit ID
- * %p = shortrepos
- * %r = repository
- * %{sVv} = file name, old revision (precommit), new revision (postcommit)
-@@ -800,6 +828,7 @@
- #endif /* SUPPORT_OLD_INFO_FMT_STRINGS */
- filter,
- "c", "s", cvs_cmd_name,
-+ "I", "s", global_session_id,
- #ifdef SERVER_SUPPORT
- "R", "s", referrer ? referrer->original : "NONE",
- #endif /* SERVER_SUPPORT */
-@@ -922,6 +951,7 @@
- #endif /* SUPPORT_OLD_INFO_FMT_STRINGS */
- script,
- "c", "s", cvs_cmd_name,
-+ "I", "s", global_session_id,
- #ifdef SERVER_SUPPORT
- "R", "s", referrer
- ? referrer->original : "NONE",
-@@ -975,3 +1005,20 @@
- return abs (run_exec (RUN_TTY, RUN_TTY, RUN_TTY,
- RUN_NORMAL | RUN_SIGIGNORE));
- }
-+
-+void
-+logmsg_cleanup (int err)
-+{
-+ if (!use_editor || LogMsgFile == NULL)
-+ return;
-+
-+ if (err == 0)
-+ {
-+ if (unlink_file (LogMsgFile) < 0)
-+ error (0, errno, "warning: cannot remove temp file %s", LogMsgFile);
-+ }
-+ else
-+ error (0, 0, "your log message was saved in %s", LogMsgFile);
-+ free (LogMsgFile);
-+ LogMsgFile = NULL;
-+}
---- cvs-1.12.13+real.orig/src/main.c
-+++ cvs-1.12.13+real/src/main.c
-@@ -24,6 +24,10 @@
- #include "strftime.h"
- #include "xgethostname.h"
-
-+#ifdef USE_LIBBSD
-+uint32_t arc4random(void);
-+#endif
-+
- const char *program_name;
- const char *program_path;
- const char *cvs_cmd_name;
-@@ -170,6 +174,7 @@
- #ifdef SERVER_SUPPORT
- { "server", NULL, NULL, server, CVS_CMD_MODIFIES_REPOSITORY | CVS_CMD_USES_WORK_DIR },
- #endif
-+ { "suck", NULL, NULL, suck, 0 },
- { "status", "st", "stat", cvsstatus, CVS_CMD_USES_WORK_DIR },
- { "tag", "ta", "freeze", cvstag, CVS_CMD_MODIFIES_REPOSITORY | CVS_CMD_USES_WORK_DIR },
- { "unedit", NULL, NULL, unedit, CVS_CMD_MODIFIES_REPOSITORY | CVS_CMD_USES_WORK_DIR },
-@@ -230,7 +235,7 @@
- {
- "CVS commands are:\n",
- " add Add a new file/directory to the repository\n",
-- " admin Administration front end for rcs\n",
-+ " admin Administration front-end for RCS\n",
- " annotate Show last revision where each line was modified\n",
- " checkout Checkout sources for editing\n",
- " commit Check files into the repository\n",
-@@ -242,7 +247,7 @@
- " import Import sources into CVS, using vendor branches\n",
- " init Create a CVS repository if it doesn't exist\n",
- #if defined (HAVE_KERBEROS) && defined (SERVER_SUPPORT)
-- " kserver Kerberos server mode\n",
-+ " kserver Act in Kerberos server mode\n",
- #endif
- " log Print out history information for files\n",
- #ifdef AUTH_CLIENT_SUPPORT
-@@ -251,18 +256,19 @@
- #endif /* AUTH_CLIENT_SUPPORT */
- " ls List files available from CVS\n",
- #if (defined(AUTH_SERVER_SUPPORT) || defined (HAVE_GSSAPI)) && defined(SERVER_SUPPORT)
-- " pserver Password server mode\n",
-+ " pserver Act in password server mode\n",
- #endif
- " rannotate Show last revision where each line of module was modified\n",
-- " rdiff Create 'patch' format diffs between releases\n",
-- " release Indicate that a Module is no longer in use\n",
-+ " rdiff Create 'patch' format diffs between revisions\n",
-+ " release Indicate that a work subdirectory is no longer in use\n",
- " remove Remove an entry from the repository\n",
- " rlog Print out history information for a module\n",
- " rls List files in a module\n",
- " rtag Add a symbolic tag to a module\n",
- #ifdef SERVER_SUPPORT
-- " server Server mode\n",
-+ " server Act in server mode\n",
- #endif
-+ " suck Download RCS ,v file raw\n",
- " status Display status information on checked out files\n",
- " tag Add a symbolic tag to checked out version of files\n",
- " unedit Undo an edit command\n",
-@@ -283,6 +289,7 @@
- " -q Cause CVS to be somewhat quiet.\n",
- " -r Make checked-out files read-only.\n",
- " -w Make checked-out files read-write (default).\n",
-+ " -g Force group-write permissions on checked-out files.\n",
- " -n Do not execute anything that will change the disk.\n",
- " -t Show trace of program execution (repeat for more\n",
- " verbosity) -- try with -n.\n",
-@@ -458,46 +465,6 @@
-
-
-
--
--enum {RANDOM_BYTES = 8};
--enum {COMMITID_RAW_SIZE = (sizeof(time_t) + RANDOM_BYTES)};
--
--static char const alphabet[62] =
-- "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
--
--/* Divide BUF by D, returning the remainder. Replace BUF by the
-- quotient. BUF[0] is the most significant part of BUF.
-- D must not exceed UINT_MAX >> CHAR_BIT. */
--static unsigned int
--divide_by (unsigned char buf[COMMITID_RAW_SIZE], unsigned int d)
--{
-- unsigned int carry = 0;
-- int i;
-- for (i = 0; i < COMMITID_RAW_SIZE; i++)
-- {
-- unsigned int byte = buf[i];
-- unsigned int dividend = (carry << CHAR_BIT) + byte;
-- buf[i] = dividend / d;
-- carry = dividend % d;
-- }
-- return carry;
--}
--
--static void
--convert (char const input[COMMITID_RAW_SIZE], char *output)
--{
-- static char const zero[COMMITID_RAW_SIZE] = { 0, };
-- unsigned char buf[COMMITID_RAW_SIZE];
-- size_t o = 0;
-- memcpy (buf, input, COMMITID_RAW_SIZE);
-- while (memcmp (buf, zero, COMMITID_RAW_SIZE) != 0)
-- output[o++] = alphabet[divide_by (buf, sizeof alphabet)];
-- if (! o)
-- output[o++] = '0';
-- output[o] = '\0';
--}
--
--
- int
- main (int argc, char **argv)
- {
-@@ -511,7 +478,7 @@
- int help = 0; /* Has the user asked for help? This
- lets us support the `cvs -H cmd'
- convention to give help for cmd. */
-- static const char short_options[] = "+QqrwtnRvb:T:e:d:Hfz:s:xa";
-+ static const char short_options[] = "+QqrwgtnRvb:T:e:d:Hfz:s:xal";
- static struct option long_options[] =
- {
- {"help", 0, NULL, 'H'},
-@@ -521,6 +488,7 @@
- {"help-options", 0, NULL, 4},
- #ifdef SERVER_SUPPORT
- {"allow-root", required_argument, NULL, 3},
-+ {"allow-root-regexp", required_argument, NULL, 14},
- #endif /* SERVER_SUPPORT */
- {0, 0, 0, 0}
- };
-@@ -562,11 +530,11 @@
- * Query the environment variables up-front, so that
- * they can be overridden by command line arguments
- */
-- if ((cp = getenv (EDITOR1_ENV)) != NULL)
-+ if ((cp = getenv (EDITOR1_ENV)) != NULL && *cp)
- Editor = cp;
-- else if ((cp = getenv (EDITOR2_ENV)) != NULL)
-+ else if ((cp = getenv (EDITOR2_ENV)) != NULL && *cp)
- Editor = cp;
-- else if ((cp = getenv (EDITOR3_ENV)) != NULL)
-+ else if ((cp = getenv (EDITOR3_ENV)) != NULL && *cp)
- Editor = cp;
- if (getenv (CVSREAD_ENV) != NULL)
- cvswrite = 0;
-@@ -645,6 +613,10 @@
- /* --allow-root */
- root_allow_add (optarg, gConfigPath);
- break;
-+ case 14:
-+ /* --allow-root-regexp */
-+ root_allow_regexp_add (optarg, gConfigPath);
-+ break;
- #endif /* SERVER_SUPPORT */
- case 'Q':
- really_quiet = 1;
-@@ -658,6 +630,13 @@
- case 'w':
- cvswrite = 1;
- break;
-+ case 'g':
-+ /*
-+ * Force full write permissions for the group.
-+ * See the user's manual for details and dangers.
-+ */
-+ umask(umask(S_IRWXG|S_IRWXO) & S_IRWXO);
-+ break;
- case 't':
- trace++;
- break;
-@@ -669,6 +648,9 @@
- noexec = 1;
- logoff = 1;
- break;
-+ case 'l':
-+ /* no-op to simply ignore the old -l option */
-+ break;
- case 'v':
- (void) fputs ("\n", stdout);
- version (0, NULL);
-@@ -676,6 +658,7 @@
- (void) fputs ("\
- Copyright (C) 2005 Free Software Foundation, Inc.\n\
- \n\
-+Portions contributed by Thorsten Glaser for the MirOS Project and Debian.\n\
- Senior active maintainers include Larry Jones, Derek R. Price,\n\
- and Mark D. Baushke. Please see the AUTHORS and README files from the CVS\n\
- distribution kit for a complete list of contributors and copyrights.\n",
-@@ -764,56 +747,12 @@
- if (argc < 1)
- usage (usg);
-
-- if (readonlyfs && !really_quiet) {
-- error (0, 0,
-- "WARNING: Read-only repository access mode selected via `cvs -R'.\n\
--Using this option to access a repository which some users write to may\n\
--cause intermittent sandbox corruption.");
-- }
--
- /* Calculate the cvs global session ID */
-
-- {
-- char buf[COMMITID_RAW_SIZE] = { 0, };
-- char out[COMMITID_RAW_SIZE * 2];
-- ssize_t len = 0;
-- time_t rightnow = time (NULL);
-- char *startrand = buf + sizeof (time_t);
-- unsigned char *p = (unsigned char *) startrand;
-- size_t randbytes = RANDOM_BYTES;
-- int flags = O_RDONLY;
-- int fd;
--#ifdef O_NOCTTY
-- flags |= O_NOCTTY;
--#endif
-- if (rightnow != (time_t)-1)
-- while (rightnow > 0) {
-- *--p = rightnow % (UCHAR_MAX + 1);
-- rightnow /= UCHAR_MAX + 1;
-- }
-- else {
-- /* try to use more random data */
-- randbytes = COMMITID_RAW_SIZE;
-- startrand = buf;
-- }
-- fd = open ("/dev/urandom", flags);
-- if (fd >= 0) {
-- len = read (fd, startrand, randbytes);
-- close (fd);
-- }
-- if (len <= 0) {
-- /* no random data was available so use pid */
-- long int pid = (long int)getpid ();
-- p = (unsigned char *) (startrand + sizeof (pid));
-- while (pid > 0) {
-- *--p = pid % (UCHAR_MAX + 1);
-- pid /= UCHAR_MAX + 1;
-- }
-- }
-- convert(buf, out);
-- global_session_id = strdup (out);
-- }
--
-+ global_session_id = Xasprintf("1%010llX%04X%04X",
-+ (unsigned long long)time(NULL),
-+ (unsigned int)(getpid() & 0xFFFF),
-+ (unsigned int)(arc4random() & 0xFFFF));
-
- TRACE (TRACE_FUNCTION, "main: Session ID is %s", global_session_id);
-
-@@ -856,7 +795,7 @@
- a command-line flag to set the umask, since we'll have to
- parse it before we get here. */
-
-- if ((cp = getenv (CVSUMASK_ENV)) != NULL)
-+ if ((cp = getenv (CVSUMASK_ENV)) != NULL && *cp)
- {
- /* FIXME: Should be accepting symbolic as well as numeric mask. */
- cvsumask = strtol (cp, &end, 8) & 0777;
-@@ -992,7 +931,7 @@
- if (!CVSroot_parsed)
- {
- char *tmp = getenv (CVSROOT_ENV);
-- if (tmp)
-+ if (tmp && *tmp)
- {
- if (!(CVSroot_parsed = parse_cvsroot (tmp)))
- error (1, 0, "Bad CVSROOT: `%s'.", tmp);
-@@ -1011,7 +950,7 @@
- /* Now we've reconciled CVSROOT from the command line, the
- CVS/Root file, and the environment variable. Do the
- last sanity checks on the variable. */
-- if (!CVSroot_parsed)
-+ if (!CVSroot_parsed && cm->func != version)
- {
- error (0, 0,
- "No CVSROOT specified! Please use the `-d' option");
-@@ -1043,6 +982,11 @@
-
- assert (current_parsed_root == NULL);
-
-+ /* Handle running 'cvs version' with no CVSROOT. */
-+
-+ if (cm->func == version && !CVSroot_parsed)
-+ server_active = !0;
-+
- /* If we're running the server, we want to execute this main
- loop once and only once (we won't be serving multiple roots
- from this connection, so there's no need to do it more than
-@@ -1173,6 +1117,7 @@
- dellist (&root_directories);
- } /* end of stuff that gets done if the user DOESN'T ask for help */
-
-+ config = NULL;
- root_allow_free ();
-
- /* This is exit rather than return because apparently that keeps
-@@ -1244,7 +1189,7 @@
- if (*++p)
- {
- if (*date) free (*date);
-- *date = Make_Date (p);
-+ *date = strcmp (p, "BASE") ? Make_Date (p) : xstrdup (p);
- }
- }
- else if (strlen (input))
-@@ -1285,7 +1230,7 @@
- ftm = localtime (&unixtime);
-
- (void) sprintf (date, DATEFORM,
-- ftm->tm_year + (ftm->tm_year < 100 ? 0 : 1900),
-+ (long)ftm->tm_year + (ftm->tm_year < 100 ? 0L : 1900L),
- ftm->tm_mon + 1, ftm->tm_mday, ftm->tm_hour,
- ftm->tm_min, ftm->tm_sec);
- ret = xstrdup (date);
-@@ -1315,8 +1260,10 @@
- void
- date_to_tm (struct tm *dest, const char *source)
- {
-+ int y;
-+
- if (sscanf (source, SDATEFORM,
-- &dest->tm_year, &dest->tm_mon, &dest->tm_mday,
-+ &y, &dest->tm_mon, &dest->tm_mday,
- &dest->tm_hour, &dest->tm_min, &dest->tm_sec)
- != 6)
- /* Is there a better way to handle errors here? I made this
-@@ -1324,9 +1271,7 @@
- deal with fatal errors. */
- error (0, 0, "internal error: bad date %s", source);
-
-- if (dest->tm_year > 100)
-- dest->tm_year -= 1900;
--
-+ dest->tm_year = y - ((y > 100) ? 1900 : 0);
- dest->tm_mon -= 1;
- }
-
-@@ -1348,10 +1293,10 @@
- {"Jan", "Feb", "Mar", "Apr", "May", "Jun",
- "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"};
-
-- sprintf (dest, "%d %s %d %02d:%02d:%02d -0000", source->tm_mday,
-+ sprintf (dest, "%d %s %ld %02d:%02d:%02d -0000", source->tm_mday,
- source->tm_mon < 0 || source->tm_mon > 11
- ? "???" : month_names[source->tm_mon],
-- source->tm_year + 1900, source->tm_hour, source->tm_min,
-+ (long)source->tm_year + 1900, source->tm_hour, source->tm_min,
- source->tm_sec);
- }
-
-@@ -1458,7 +1403,7 @@
- {
- (void) fprintf (stderr, *cpp++, program_name, cvs_cmd_name);
- for (; *cpp; cpp++)
-- (void) fprintf (stderr, *cpp);
-+ (void) fprintf (stderr, "%s", *cpp);
- exit (EXIT_FAILURE);
- }
-
---- cvs-1.12.13+real.orig/src/mkmodules.c
-+++ cvs-1.12.13+real/src/mkmodules.c
-@@ -19,9 +19,9 @@
- #define DBLKSIZ 4096 /* since GNU ndbm doesn't define it */
- #endif
-
--static int checkout_file (char *file, char *temp);
-+static int checkout_file (const char *file, char *temp);
- static char *make_tempfile (void);
--static void rename_rcsfile (char *temp, char *real);
-+static void rename_rcsfile (const char *temp, const char *real);
-
- #ifndef MY_NDBM
- static void rename_dbmfile (char *temp);
-@@ -31,13 +31,13 @@
- /* Structure which describes an administrative file. */
- struct admin_file {
- /* Name of the file, within the CVSROOT directory. */
-- char *filename;
-+ const char *filename;
-
- /* This is a one line description of what the file is for. It is not
- currently used, although one wonders whether it should be, somehow.
- If NULL, then don't process this file in mkmodules (FIXME?: a bit of
- a kludge; probably should replace this with a flags field). */
-- char *errormsg;
-+ const char *errormsg;
-
- /* Contents which the file should have in a new repository. To avoid
- problems with brain-dead compilers which choke on long string constants,
-@@ -68,6 +68,7 @@
- "# If any format strings are present in the filter, they will be replaced\n",
- "# as follows:\n",
- "# %c = canonical name of the command being executed\n",
-+ "# %I = unique (randomly generated) commit ID\n",
- #ifdef PROXY_SUPPORT
- "# %R = the name of the referrer, if any, otherwise the value NONE\n",
- #endif
-@@ -82,7 +83,7 @@
- "# Thus %{sv} is a legal format string, but will only be replaced with\n",
- "# file name and new revision.\n",
- "# It also generates multiple arguments for each file being operated upon.\n",
-- "# That is, if two files, file1 & file2, are being commited from 1.1 to\n",
-+ "# That is, if two files, file1 & file2, are being committed from 1.1 to\n",
- "# version 1.1.2.1 and from 1.1.2.2 to 1.1.2.3, respectively, %{sVv} will\n",
- "# generate the following six arguments in this order:\n",
- "# file1, 1.1, 1.1.2.1, file2, 1.1.2.2, 1.1.2.3.\n",
-@@ -124,13 +125,14 @@
- "#\n",
- "# Making sure that the entered bug-id number is correct.\n",
- "# Validating that the code that was reviewed is indeed the code being\n",
-- "# checked in (using the bug-id number or a seperate review\n",
-+ "# checked in (using the bug-id number or a separate review\n",
- "# number to identify this particular code set.).\n",
- "#\n",
- "# If any of the above test failed, then the commit would be aborted.\n",
- "#\n",
- "# Format strings present in the filter will be replaced as follows:\n",
- "# %c = canonical name of the command being executed\n",
-+ "# %I = unique (randomly generated) commit ID\n",
- #ifdef PROXY_SUPPORT
- "# %R = the name of the referrer, if any, otherwise the value NONE\n",
- #endif
-@@ -152,8 +154,8 @@
-
- static const char *const commitinfo_contents[] = {
- "# The \"commitinfo\" file is used to control pre-commit checks.\n",
-- "# The filter on the right is invoked with the repository and a list \n",
-- "# of files to check. A non-zero exit of the filter program will \n",
-+ "# The filter on the right is invoked with the repository and a list\n",
-+ "# of files to check. A non-zero exit of the filter program will\n",
- "# cause the commit to be aborted.\n",
- "#\n",
- "# The first entry on a line is a regular expression which is tested\n",
-@@ -163,6 +165,7 @@
- "#\n",
- "# Format strings present in the filter will be replaced as follows:\n",
- "# %c = canonical name of the command being executed\n",
-+ "# %I = unique (randomly generated) commit ID\n",
- #ifdef PROXY_SUPPORT
- "# %R = the name of the referrer, if any, otherwise the value NONE\n",
- #endif
-@@ -199,6 +202,7 @@
- "# | \"N\" (not branch)\n",
- "# %o = operation = \"add\" | \"mov\" | \"del\"\n",
- "# %c = canonical name of the command being executed\n",
-+ "# %I = unique (randomly generated) commit ID\n",
- #ifdef PROXY_SUPPORT
- "# %R = the name of the referrer, if any, otherwise the value NONE\n",
- #endif
-@@ -245,6 +249,7 @@
- "# If any format strings are present in the filter, they will be replaced\n",
- "# as follows:\n",
- "# %c = canonical name of the command being executed\n",
-+ "# %I = unique (randomly generated) commit ID\n",
- #ifdef PROXY_SUPPORT
- "# %R = the name of the referrer, if any, otherwise the value NONE\n",
- #endif
-@@ -271,6 +276,7 @@
- "# If any format strings are present in the filter, they will be replaced\n",
- "# as follows:\n",
- "# %c = canonical name of the command being executed\n",
-+ "# %I = unique (randomly generated) commit ID\n",
- #ifdef PROXY_SUPPORT
- "# %R = the name of the referrer, if any, otherwise the value NONE\n",
- #endif
-@@ -299,6 +305,7 @@
- "# If any format strings are present in the filter, they will be replaced\n",
- "# as follows:\n",
- "# %c = canonical name of the command being executed\n",
-+ "# %I = unique (randomly generated) commit ID\n",
- #ifdef PROXY_SUPPORT
- "# %R = the name of the referrer, if any, otherwise the value NONE\n",
- #endif
-@@ -328,6 +335,7 @@
- "# | \"N\" (not branch)\n",
- "# %o = operation = \"add\" | \"mov\" | \"del\"\n",
- "# %c = canonical name of the command being executed\n",
-+ "# %I = unique (randomly generated) commit ID\n",
- #ifdef PROXY_SUPPORT
- "# %R = the name of the referrer, if any, otherwise the value NONE\n",
- #endif
-@@ -363,11 +371,12 @@
-
- static const char *const postwatch_contents[] = {
- "# The \"postwatch\" file is called after any command finishes writing new\n",
-- "# file attibute (watch/edit) information in a directory.\n",
-+ "# file attribute (watch/edit) information in a directory.\n",
- "#\n",
- "# If any format strings are present in the filter, they will be replaced\n",
- "# as follows:\n",
- "# %c = canonical name of the command being executed\n",
-+ "# %I = unique (randomly generated) commit ID\n",
- #ifdef PROXY_SUPPORT
- "# %R = the name of the referrer, if any, otherwise the value NONE\n",
- #endif
-@@ -446,6 +455,7 @@
- "#\n",
- "# format strings are replaceed as follows:\n",
- "# %c = canonical name of the command being executed\n",
-+ "# %I = unique (randomly generated) commit ID\n",
- #ifdef PROXY_SUPPORT
- "# %R = the name of the referrer, if any, otherwise the value NONE\n",
- #endif
-@@ -465,11 +475,10 @@
- "# key [options] directory files...\n",
- "#\n",
- "# Where \"options\" are composed of:\n",
-- "# -i prog Run \"prog\" on \"cvs commit\" from top-level of module.\n",
- "# -o prog Run \"prog\" on \"cvs checkout\" of module.\n",
- "# -e prog Run \"prog\" on \"cvs export\" of module.\n",
-+ "# -s status Assign a status to the module.\n",
- "# -t prog Run \"prog\" on \"cvs rtag\" of module.\n",
-- "# -u prog Run \"prog\" on \"cvs update\" of module.\n",
- "# -d dir Place module in directory \"dir\" instead of module name.\n",
- "# -l Top-level directory only -- do not recurse.\n",
- "#\n",
-@@ -489,67 +498,68 @@
- };
-
- static const char *const config_contents[] = {
-- "# Set `SystemAuth' to `no' if pserver shouldn't check system users/passwords.\n",
-+ "# Set 'SystemAuth' to 'no' if pserver shouldn't check system users/passwords.\n",
- "#SystemAuth=no\n",
- "\n",
-- "# Set `LocalKeyword' to specify a local alias for a standard keyword.\n",
-+ "# Set 'LocalKeyword' to specify a local alias for a standard keyword.\n",
- "#LocalKeyword=MYCVS=CVSHeader\n",
- "\n",
-- "# Set `KeywordExpand' to `i' followed by a list of keywords to expand or\n",
-- "# `e' followed by a list of keywords to not expand.\n"
-- "#KeywordExpand=iMYCVS,Name,Date\n",
-+ "# Set 'KeywordExpand' to 'i' followed by a list of keywords to expand or\n",
-+ "# 'e' followed by a list of keywords to not expand.\n"
-+ "#KeywordExpand=iMYCVS,Name,Date,Mdocdate\n",
- "#KeywordExpand=eCVSHeader\n",
- "\n",
- #ifdef PRESERVE_PERMISSIONS_SUPPORT
-- "# Set `PreservePermissions' to `yes' to save file status information\n",
-+ "# Set 'PreservePermissions' to 'yes' to save file status information\n",
- "# in the repository.\n",
- "#PreservePermissions=no\n",
- "\n",
- #endif
-- "# Set `TopLevelAdmin' to `yes' to create a CVS directory at the top\n",
-- "# level of the new working directory when using the `cvs checkout'\n",
-+ "# Set 'TopLevelAdmin' to 'yes' to create a CVS directory at the top\n",
-+ "# level of the new working directory when using the 'cvs checkout'\n",
- "# command.\n",
- "#TopLevelAdmin=no\n",
- "\n",
- "# Put CVS lock files in this directory rather than directly in the repository.\n",
- "#LockDir=/var/lock/cvs\n",
- "\n",
-- "# Set `LogHistory' to `all' or `" ALL_HISTORY_REC_TYPES "' to log all transactions to the\n",
-- "# history file, or a subset as needed (ie `TMAR' logs all write operations)\n",
-+ "# Set 'LogHistory' to 'all' or '" ALL_HISTORY_REC_TYPES "' to log all transactions to the\n",
-+ "# history file, or a subset as needed (ie 'TMAR' logs all write operations)\n",
- "#LogHistory=" ALL_HISTORY_REC_TYPES "\n",
-+ "LogHistory=TMAR\n",
- "\n",
-- "# Set `RereadLogAfterVerify' to `always' (the default) to allow the verifymsg\n",
-- "# script to change the log message. Set it to `stat' to force CVS to verify\n",
-+ "# Set 'RereadLogAfterVerify' to 'always' (the default) to allow the verifymsg\n",
-+ "# script to change the log message. Set it to 'stat' to force CVS to verify\n",
- "# that the file has changed before reading it (this can take up to an extra\n",
- "# second per directory being committed, so it is not recommended for large\n",
-- "# repositories. Set it to `never' (the previous CVS behavior) to prevent\n",
-+ "# repositories. Set it to 'never' (the previous CVS behavior) to prevent\n",
- "# verifymsg scripts from changing the log message.\n",
- "#RereadLogAfterVerify=always\n",
- "\n",
-- "# Set `UserAdminOptions' to the list of `cvs admin' commands (options)\n",
-- "# that users not in the `cvsadmin' group are allowed to run. This\n",
-- "# defaults to `k', or only allowing the changing of the default\n",
-- "# keyword expansion mode for files for users not in the `cvsadmin' group.\n",
-- "# This value is ignored if the `cvsadmin' group does not exist.\n",
-+ "# Set 'UserAdminOptions' to the list of 'cvs admin' commands (options)\n",
-+ "# that users not in the '_cvsadmin' group are allowed to run. This\n",
-+ "# defaults to 'k', or only allowing the changing of the default\n",
-+ "# keyword expansion mode for files for users not in the '_cvsadmin' group.\n",
-+ "# This value is ignored if the '_cvsadmin' group does not exist.\n",
- "#\n",
-- "# The following string would enable all `cvs admin' commands for all\n",
-+ "# The following string would enable all 'cvs admin' commands for all\n",
- "# users:\n",
- "#UserAdminOptions=aAbceIklLmnNostuU\n",
- #ifdef SUPPORT_OLD_INFO_FMT_STRINGS
- "\n",
-- "# Set `UseNewInfoFmtStrings' to `no' if you must support a legacy system by\n",
-+ "# Set 'UseNewInfoFmtStrings' to 'no' if you must support a legacy system by\n",
- "# enabling the deprecated old style info file command line format strings.\n",
- "# Be warned that these strings could be disabled in any new version of CVS.\n",
- "UseNewInfoFmtStrings=yes\n",
- #endif /* SUPPORT_OLD_INFO_FMT_STRINGS */
- "\n",
-- "# Set `ImportNewFilesToVendorBranchOnly' to `yes' if you wish to force\n",
-- "# every `cvs import' command to behave as if the `-X' flag was\n",
-+ "# Set 'ImportNewFilesToVendorBranchOnly' to 'yes' if you wish to force\n",
-+ "# every 'cvs import' command to behave as if the '-X' flag was\n",
- "# specified.\n",
- "#ImportNewFilesToVendorBranchOnly=no\n",
- #ifdef PROXY_SUPPORT
- "\n",
-- "# Set `PrimaryServer' to the CVSROOT to the primary, or write, server when\n",
-+ "# Set 'PrimaryServer' to the CVSROOT to the primary, or write, server when\n",
- "# establishing one or more read-only mirrors which serve as proxies for\n",
- "# the write server in write mode or redirect the client to the primary for\n",
- "# write requests.\n",
-@@ -558,13 +568,13 @@
- "#\n",
- "# PrimaryServer=:fork:localhost/cvsroot\n",
- "\n",
-- "# Set `MaxProxyBufferSize' to the the maximum allowable secondary\n",
-+ "# Set 'MaxProxyBufferSize' to the the maximum allowable secondary\n",
- "# buffer memory cache size before the buffer begins being stored to disk, in\n",
-- "# bytes. Must be a positive integer but may end in `k', `M', `G', or `T' (for\n",
-- "# kiilo, mega, giga, & tera, respectively). If an otherwise valid number you\n",
-+ "# bytes. Must be a positive integer but may end in 'K', 'M', 'G', or 'T' (for\n",
-+ "# Kibi, Mebi, Gibi, & Tebi, respectively). If an otherwise valid number you\n",
- "# specify is greater than the SIZE_MAX defined by your system's C compiler,\n",
- "# then it will be resolved to SIZE_MAX without a warning. Defaults to 8M (8\n",
-- "# megabytes).\n",
-+ "# Mebibytes). The 'i' from 'Ki', 'Mi', etc. is omitted.\n",
- "#\n",
- "# High values for MaxProxyBufferSize may speed up a secondary server\n",
- "# with old hardware and a lot of available memory but can actually slow a\n",
-@@ -575,23 +585,23 @@
- "# MaxProxyBufferSize=1G\n",
- #endif /* PROXY_SUPPORT */
- "\n",
-- "# Set `MaxCommentLeaderLength' to the maximum length permitted for the\n",
-+ "# Set 'MaxCommentLeaderLength' to the maximum length permitted for the\n",
- "# automagically determined comment leader used when expanding the Log\n",
- "# keyword, in bytes. CVS's behavior when the automagically determined\n",
-- "# comment leader exceeds this length is dependant on the value of\n",
-- "# `UseArchiveCommentLeader' set in this file. `unlimited' is a valid\n",
-+ "# comment leader exceeds this length is dependent on the value of\n",
-+ "# 'UseArchiveCommentLeader' set in this file. 'unlimited' is a valid\n",
- "# setting for this value. Defaults to 20 bytes.\n",
- "#\n",
- "# For example:\n",
- "#\n",
- "# MaxCommentLeaderLength=20\n",
- "\n",
-- "# Set `UseArchiveCommentLeader' to `yes' to cause CVS to fall back on\n",
-+ "# Set 'UseArchiveCommentLeader' to 'yes' to cause CVS to fall back on\n",
- "# the comment leader set in the RCS archive file, if any, when the\n",
-- "# automagically determined comment leader exceeds `MaxCommentLeaderLength'\n",
-- "# bytes. If `UseArchiveCommentLeader' is not set and a comment leader\n",
-- "# greater than `MaxCommentLeaderLength' is calculated, the Log keyword\n",
-- "# being examined will not be expanded. Defaults to `no'.\n",
-+ "# automagically determined comment leader exceeds 'MaxCommentLeaderLength'\n",
-+ "# bytes. If 'UseArchiveCommentLeader' is not set and a comment leader\n",
-+ "# greater than 'MaxCommentLeaderLength' is calculated, the Log keyword\n",
-+ "# being examined will not be expanded. Defaults to 'no'.\n",
- "#\n",
- "# For example:\n",
- "#\n",
-@@ -816,7 +826,7 @@
- }
-
- if (restore_cwd (&cwd))
-- error (1, errno, "Failed to restore current directory, `%s'.",
-+ error (1, errno, "Failed to restore current directory, '%s'.",
- cwd.name);
- free_cwd (&cwd);
-
-@@ -857,7 +867,7 @@
- there is an error, print a message and return 1 (FIXME: probably
- not a very clean convention). On success, return 0. */
- static int
--checkout_file (char *file, char *temp)
-+checkout_file (const char *file, char *temp)
- {
- char *rcs;
- RCSNode *rcsnode;
-@@ -878,7 +888,7 @@
- {
- /* Probably not necessary (?); RCS_parsercsfile already printed a
- message. */
-- error (0, 0, "Failed to parse `%s'.", rcs);
-+ error (0, 0, "Failed to parse '%s'.", rcs);
- free (rcs);
- return 1;
- }
-@@ -962,20 +972,22 @@
- key.dptr = vp;
- while (*vp && !isspace ((unsigned char) *vp))
- vp++;
-- key.dsize = vp - key.dptr;
-+ key.dsize = vp - (char *)key.dptr;
- *vp++ = '\0'; /* NULL terminate the key */
- while (*vp && isspace ((unsigned char) *vp))
- vp++; /* skip whitespace to value */
- if (*vp == '\0')
- {
-- error (0, 0, "warning: NULL value for key `%s'", key.dptr);
-+ error (0, 0, "warning: NULL value for key '%s'",
-+ (char *)key.dptr);
- continue;
- }
- val.dptr = vp;
- val.dsize = strlen (vp);
- if (dbm_store (db, key, val, DBM_INSERT) == 1)
- {
-- error (0, 0, "duplicate key found for `%s'", key.dptr);
-+ error (0, 0, "duplicate key found for '%s'",
-+ (char *)key.dptr);
- err++;
- }
- }
-@@ -1097,7 +1109,7 @@
- #endif /* !MY_NDBM */
-
- static void
--rename_rcsfile (char *temp, char *real)
-+rename_rcsfile (const char *temp, const char *real)
- {
- char *bak;
- struct stat statbuf;
-@@ -1175,6 +1187,9 @@
- which needs to be created. */
- mkdir_if_needed (current_parsed_root->directory);
-
-+ if (noexec)
-+ return (0);
-+
- adm = Xasprintf ("%s/%s", current_parsed_root->directory, CVSROOTADM);
- mkdir_if_needed (adm);
-
-@@ -1237,8 +1252,8 @@
- }
- }
-
-- /* Turn on history logging by default. The user can remove the file
-- to disable it. */
-+ /* Turn on history logging of write operations by default.
-+ The user can remove the file to disable it. */
- strcpy (info, adm);
- strcat (info, "/");
- strcat (info, CVSROOTADM_HISTORY);
-@@ -1249,11 +1264,6 @@
- fp = xfopen (info, "w");
- if (fclose (fp) < 0)
- error (1, errno, "cannot close %s", info);
--
-- /* Make the new history file world-writeable, since every CVS
-- user will need to be able to write to it. We use chmod()
-- because xchmod() is too shy. */
-- chmod (info, 0666);
- }
-
- /* Make an empty val-tags file to prevent problems creating it later. */
-@@ -1267,11 +1277,6 @@
- fp = xfopen (info, "w");
- if (fclose (fp) < 0)
- error (1, errno, "cannot close %s", info);
--
-- /* Make the new val-tags file world-writeable, since every CVS
-- user will need to be able to write to it. We use chmod()
-- because xchmod() is too shy. */
-- chmod (info, 0666);
- }
-
- free (info);
---- cvs-1.12.13+real.orig/src/modules.c
-+++ cvs-1.12.13+real/src/modules.c
-@@ -450,7 +450,7 @@
- case '?':
- error (0, 0,
- "modules file has invalid option for key %s value %s",
-- key.dptr, value);
-+ (char *)key.dptr, value);
- err++;
- goto do_module_return;
- }
---- cvs-1.12.13+real.orig/src/parseinfo.c
-+++ cvs-1.12.13+real/src/parseinfo.c
-@@ -230,7 +230,7 @@
- return true;
- }
-
-- /* Record the factor character (kilo, mega, giga, tera). */
-+ /* Record the factor character (kibi, mebi, gibi, tebi). */
- if (!isdigit (p[strlen(p) - 1]))
- {
- switch (p[strlen(p) - 1])
-@@ -241,16 +241,16 @@
- factor = xtimes (factor, 1024);
- case 'M':
- factor = xtimes (factor, 1024);
-- case 'k':
-+ case 'K':
- factor = xtimes (factor, 1024);
- break;
- default:
- error (0, 0,
- "%s: Unknown %s factor: `%c'",
-- infopath, option, p[strlen(p)]);
-+ infopath, option, p[strlen(p) - 1]);
- return false;
- }
-- TRACE (TRACE_DATA, "readSizeT(): Found factor %u for %s",
-+ TRACE (TRACE_DATA, "readSizeT(): Found factor %zu for %s",
- factor, option);
- }
-
-@@ -274,9 +274,9 @@
- /* Don't return an error, just max out. */
- num = SIZE_MAX;
-
-- TRACE (TRACE_DATA, "readSizeT(): read number %u for %s", num, option);
-+ TRACE (TRACE_DATA, "readSizeT(): read number %zu for %s", num, option);
- *val = xtimes (strtoul (p, NULL, 10), factor);
-- TRACE (TRACE_DATA, "readSizeT(): returnning %u for %s", *val, option);
-+ TRACE (TRACE_DATA, "readSizeT(): returnning %zu for %s", *val, option);
- return true;
- }
-
-@@ -298,7 +298,7 @@
- new->MaxCompressionLevel = 9;
- #endif /* SERVER_SUPPORT */
- #ifdef PROXY_SUPPORT
-- new->MaxProxyBufferSize = (size_t)(8 * 1024 * 1024); /* 8 megabytes,
-+ new->MaxProxyBufferSize = (size_t)(8 * 1024 * 1024); /* 8 mebibytes,
- * by default.
- */
- #endif /* PROXY_SUPPORT */
-@@ -392,6 +392,9 @@
- */
- bool processing = true;
- bool processed = true;
-+#ifdef SERVER_SUPPORT
-+ size_t dummy_sizet;
-+#endif
-
- TRACE (TRACE_FUNCTION, "parse_config (%s)", cvsroot);
-
-@@ -613,18 +616,23 @@
- }
- else if (strcmp (line, "LogHistory") == 0)
- {
-- if (strcmp (p, "all") != 0)
-- {
-- static bool gotone = false;
-- if (gotone)
-- error (0, 0, "\
-+ static char *prevpath = NULL;
-+ static unsigned int prevln;
-+
-+ if (prevpath != NULL) {
-+ error (0, 0, "\
- %s [%u]: warning: duplicate LogHistory entry found.",
-- infopath, ln);
-- else
-- gotone = true;
-- free (retval->logHistory);
-- retval->logHistory = xstrdup (p);
-+ infopath, ln);
-+ error (0, 0, "\
-+%s [%u]: notice: this was the first definition.",
-+ prevpath, prevln);
-+ } else {
-+ prevln = ln;
-+ prevpath = xstrdup(infopath);
- }
-+ free(retval->logHistory);
-+ retval->logHistory = xstrdup(strcmp(p, "all") ? p :
-+ ALL_HISTORY_REC_TYPES);
- }
- else if (strcmp (line, "RereadLogAfterVerify") == 0)
- {
-@@ -689,13 +697,44 @@
- readBool (infopath, "UseArchiveCommentLeader", p,
- &retval->UseArchiveCommentLeader);
- #ifdef SERVER_SUPPORT
-- else if (!strcmp (line, "MinCompressionLevel"))
-- readSizeT (infopath, "MinCompressionLevel", p,
-- &retval->MinCompressionLevel);
-- else if (!strcmp (line, "MaxCompressionLevel"))
-- readSizeT (infopath, "MaxCompressionLevel", p,
-- &retval->MaxCompressionLevel);
-+ else if (!strcmp (line, "MinCompressionLevel")) {
-+ readSizeT (infopath, "MinCompressionLevel", p, &dummy_sizet);
-+ retval->MinCompressionLevel = dummy_sizet;
-+ }
-+ else if (!strcmp (line, "MaxCompressionLevel")) {
-+ readSizeT (infopath, "MaxCompressionLevel", p, &dummy_sizet);
-+ retval->MaxCompressionLevel = dummy_sizet;
-+ }
- #endif /* SERVER_SUPPORT */
-+ else if (!strcmp (line, "tag")) {
-+ char *pp;
-+
-+ pp = Xasprintf("%s=Id", p);
-+ RCS_setlocalid (infopath, ln, &retval->keywords, pp);
-+ free(pp);
-+
-+#if !defined(LOCK_COMPATIBILITY) || !defined(SUPPORT_OLD_INFO_FMT_STRINGS)
-+ error (0, 0, "%s: found keyword '%s' in repository",
-+ infopath, line);
-+ error (readonlyfs ? 0 : 1, 0, readonlyfs
-+ ? "Danger: Granting read access to incompatible repository!"
-+ : "Do not try to access a cvs 1.11 repository!");
-+#endif
-+ }
-+#if !defined(LOCK_COMPATIBILITY) || !defined(SUPPORT_OLD_INFO_FMT_STRINGS)
-+ else if ((!strcmp (line, "umask"))
-+ || (!strcmp (line, "DisableXProg")) || (!strcmp (line, "dlimit"))
-+ || (!strcmp (line, "forceReadOnlyFS"))) {
-+ /* We are dealing with keywords removed between cvs 1.11.1p1
-+ and cvs 1.12.10; odds are we are not being able to handle
-+ access or concurrent access with 1.11 cvs correctly */
-+ error (0, 0, "%s: found keyword '%s' in repository",
-+ infopath, line);
-+ error (readonlyfs ? 0 : 1, 0, readonlyfs
-+ ? "Danger: Granting read access to incompatible repository!"
-+ : "Do not try to access a cvs 1.11 repository!");
-+ }
-+#endif
- else
- /* We may be dealing with a keyword which was added in a
- subsequent version of CVS. In that case it is a good idea
---- cvs-1.12.13+real.orig/src/parseinfo.h
-+++ cvs-1.12.13+real/src/parseinfo.h
-@@ -1,3 +1,5 @@
-+/* $MirOS: src/gnu/usr.bin/cvs/src/parseinfo.h,v 1.4 2010/09/19 19:43:07 tg Exp $ */
-+
- /*
- * Copyright (c) 2004 Derek Price, Ximbiot <http://ximbiot.com>,
- * and the Free Software Foundation
-@@ -53,8 +55,8 @@
- size_t MaxProxyBufferSize;
- #endif /* PROXY_SUPPORT */
- #ifdef SERVER_SUPPORT
-- size_t MinCompressionLevel;
-- size_t MaxCompressionLevel;
-+ unsigned MinCompressionLevel;
-+ unsigned MaxCompressionLevel;
- #endif /* SERVER_SUPPORT */
- #ifdef PRESERVE_PERMISSIONS_SUPPORT
- bool preserve_perms;
---- cvs-1.12.13+real.orig/src/patch.c
-+++ cvs-1.12.13+real/src/patch.c
-@@ -46,13 +46,13 @@
-
- static const char *const patch_usage[] =
- {
-- "Usage: %s %s [-flR] [-c|-u] [-s|-t] [-V %%d] [-k kopt]\n",
-+ "Usage: %s %s [-flR] [-c|-u[p]] [-s|-t] [-V %%d] [-k kopt]\n",
- " -r rev|-D date [-r rev2 | -D date2] modules...\n",
- "\t-f\tForce a head revision match if tag/date not found.\n",
- "\t-l\tLocal directory only, not recursive\n",
- "\t-R\tProcess directories recursively.\n",
- "\t-c\tContext diffs (default)\n",
-- "\t-u\tUnidiff format.\n",
-+ "\t-u\tUnidiff format (-p works the same as in diff).\n",
- "\t-s\tShort patch - one liner per file.\n",
- "\t-t\tTop two diffs - last change made to the file.\n",
- "\t-V vers\tUse RCS Version \"vers\" for keyword expansion.\n",
-@@ -78,7 +78,7 @@
- usage (patch_usage);
-
- optind = 0;
-- while ((c = getopt (argc, argv, "+V:k:cuftsQqlRD:r:")) != -1)
-+ while ((c = getopt (argc, argv, "+V:k:cupftsQqlRD:r:")) != -1)
- {
- switch (c)
- {
-@@ -149,10 +149,13 @@
- "the -V option is obsolete and should not be used");
- break;
- case 'u':
-- unidiff = 1; /* Unidiff */
-+ unidiff |= 1; /* Unidiff */
- break;
- case 'c': /* Context diff */
-- unidiff = 0;
-+ unidiff &= ~1;
-+ break;
-+ case 'p':
-+ unidiff |= 2; /* Unidiff context */
- break;
- case '?':
- default:
-@@ -167,6 +170,8 @@
- if (argc < 1)
- usage (patch_usage);
-
-+ if (!(unidiff & 1))
-+ unidiff = 0;
- if (toptwo_diffs && patch_short)
- error (1, 0, "-t and -s options are mutually exclusive");
- if (toptwo_diffs && (date1 != NULL || date2 != NULL ||
-@@ -202,6 +207,8 @@
- send_arg("-s");
- if (unidiff)
- send_arg("-u");
-+ if (unidiff & 2)
-+ send_arg("-p");
-
- if (rev1)
- option_with_arg ("-r", rev1);
-@@ -270,6 +277,7 @@
- int which;
- char *repository;
- char *where;
-+ char *cp;
-
- TRACE ( TRACE_FUNCTION, "patch_proc ( %s, %s, %s, %d, %d, %s, %s )",
- xwhere ? xwhere : "(null)",
-@@ -292,7 +300,6 @@
- /* if mfile isn't null, we need to set up to do only part of the module */
- if (mfile != NULL)
- {
-- char *cp;
- char *path;
-
- /* if the portion of the module is a path, put the dir part on repos */
-@@ -342,14 +349,30 @@
-
- if (rev1 != NULL && !rev1_validated)
- {
-- tag_check_valid (rev1, argc - 1, argv + 1, local_specified, 0,
-- repository, false);
-+ if ((cp = strchr(rev1, ':')) != NULL)
-+ {
-+ *cp++ = '\0';
-+ date1 = Make_Date (cp);
-+ if (*rev1 == '\0')
-+ rev1 = NULL;
-+ }
-+ if (rev1)
-+ tag_check_valid (rev1, argc - 1, argv + 1, local_specified, 0,
-+ repository, false);
- rev1_validated = 1;
- }
- if (rev2 != NULL && !rev2_validated)
- {
-- tag_check_valid (rev2, argc - 1, argv + 1, local_specified, 0,
-- repository, false);
-+ if ((cp = strchr(rev2, ':')) != NULL)
-+ {
-+ *cp++ = '\0';
-+ date2 = Make_Date (cp);
-+ if (*rev2 == '\0')
-+ rev2 = NULL;
-+ }
-+ if (rev2)
-+ tag_check_valid (rev2, argc - 1, argv + 1, local_specified, 0,
-+ repository, false);
- rev2_validated = 1;
- }
-
-@@ -571,6 +594,7 @@
-
- if (unidiff) run_add_arg_p (&dargc, &darg_allocated, &dargv, "-u");
- else run_add_arg_p (&dargc, &darg_allocated, &dargv, "-c");
-+ if (unidiff & 2) run_add_arg_p (&dargc, &darg_allocated, &dargv, "-p");
- switch (diff_exec (tmpfile1, tmpfile2, NULL, NULL, dargc, dargv,
- tmpfile3))
- {
-@@ -671,7 +695,10 @@
- program. */
- if (unidiff)
- {
-- cvs_output ("diff -u ", 0);
-+ if (unidiff & 2)
-+ cvs_output ("diff -up ", 0);
-+ else
-+ cvs_output ("diff -u ", 0);
- cvs_output (file1, 0);
- cvs_output (" ", 1);
- cvs_output (file2, 0);
---- cvs-1.12.13+real.orig/src/rcs.c
-+++ cvs-1.12.13+real/src/rcs.c
-@@ -103,6 +103,7 @@
- static char *truncate_revnum_in_place (char *);
- static char *truncate_revnum (const char *);
- static char *printable_date (const char *);
-+static char *mdoc_date (const char *);
- static char *escape_keyword_value (const char *, int *);
- static void expand_keywords (RCSNode *, RCSVers *, const char *,
- const char *, size_t, enum kflag, char *,
-@@ -2166,6 +2167,8 @@
-
- if (! RCS_nodeisbranch (rcs, tag))
- {
-+ if (! strcmp (date, "BASE"))
-+ return RCS_gettag (rcs, tag, force_tag_match, simple_tag);
- /* We can't get a particular date if the tag is not a
- branch. */
- return NULL;
-@@ -2177,6 +2180,15 @@
- else
- branch = xstrdup (tag);
-
-+ if (! strcmp (date, "BASE"))
-+ {
-+ /* Cut off the branch suffix and return. */
-+ rev = strrchr (branch, '.');
-+ if (rev)
-+ *rev = '\0';
-+ return branch;
-+ }
-+
- /* Fetch the revision of branch as of date. */
- rev = RCS_getdatebranch (rcs, date, branch);
- free (branch);
-@@ -2470,7 +2482,7 @@
- check_rev = xrev;
-
- local_branch_num = getenv("CVS_LOCAL_BRANCH_NUM");
-- if (local_branch_num)
-+ if (local_branch_num && *local_branch_num)
- {
- rev_num = atoi(local_branch_num);
- if (rev_num < 2)
-@@ -3120,6 +3132,7 @@
- struct timespec revdate;
- Node *p;
- RCSVers *vers;
-+ int y;
-
- /* make sure we have something to look at... */
- assert (rcs != NULL);
-@@ -3134,7 +3147,7 @@
- vers = p->data;
-
- /* split up the date */
-- if (sscanf (vers->date, SDATEFORM, &xtm.tm_year, &xtm.tm_mon,
-+ if (sscanf (vers->date, SDATEFORM, &y, &xtm.tm_mon,
- &xtm.tm_mday, &xtm.tm_hour, &xtm.tm_min, &xtm.tm_sec) != 6)
- error (1, 0, "%s: invalid date for revision %s (%s)", rcs->print_path,
- rev, vers->date);
-@@ -3144,15 +3157,14 @@
- 2000+, RCS files contain all four digits and we subtract 1900,
- because the tm_year field should contain years since 1900. */
-
-- if (xtm.tm_year >= 100 && xtm.tm_year < 2000)
-+ if (y >= 100 && y < 2000)
- error (0, 0, "%s: non-standard date format for revision %s (%s)",
- rcs->print_path, rev, vers->date);
-- if (xtm.tm_year >= 1900)
-- xtm.tm_year -= 1900;
-+ xtm.tm_year = y - ((y >= 1900) ? 1900 : 0);
-
- /* put the date in a form getdate can grok */
-- tdate = Xasprintf ("%d-%d-%d %d:%d:%d -0000",
-- xtm.tm_year + 1900, xtm.tm_mon, xtm.tm_mday,
-+ tdate = Xasprintf ("%ld-%d-%d %d:%d:%d -0000",
-+ (long)xtm.tm_year + 1900, xtm.tm_mon, xtm.tm_mday,
- xtm.tm_hour, xtm.tm_min, xtm.tm_sec);
-
- /* Turn it into seconds since the epoch.
-@@ -3173,7 +3185,7 @@
- /* Put an appropriate string into `date', if we were given one. */
- ftm = gmtime (&revdate.tv_sec);
- (void) sprintf (date, DATEFORM,
-- ftm->tm_year + (ftm->tm_year < 100 ? 0 : 1900),
-+ (long)ftm->tm_year + (ftm->tm_year < 100 ? 0L : 1900L),
- ftm->tm_mon + 1, ftm->tm_mday, ftm->tm_hour,
- ftm->tm_min, ftm->tm_sec);
- }
-@@ -3475,6 +3487,7 @@
- KEYWORD_REVISION,
- KEYWORD_SOURCE,
- KEYWORD_STATE,
-+ KEYWORD_MDOCDATE,
- KEYWORD_LOCALID
- };
- struct rcs_keyword
-@@ -3511,6 +3524,7 @@
- KEYWORD_INIT (new, KEYWORD_REVISION, "Revision");
- KEYWORD_INIT (new, KEYWORD_SOURCE, "Source");
- KEYWORD_INIT (new, KEYWORD_STATE, "State");
-+ KEYWORD_INIT (new, KEYWORD_MDOCDATE, "Mdocdate");
-
- return new;
- }
-@@ -3544,6 +3558,30 @@
-
-
-
-+/* Convert an RCS date string into an mdoc string. This is like
-+ the RCS date2str function, but for manual pages. */
-+static char *
-+mdoc_date (const char *rcs_date)
-+{
-+ int year, mon, mday, hour, min, sec;
-+ char buf[100];
-+ const char *months[] = { "January", "February", "March", "April",
-+ "May", "June", "July", "August",
-+ "September", "October", "November", "December",
-+ "corrupt" };
-+
-+ (void) sscanf (rcs_date, SDATEFORM, &year, &mon, &mday, &hour, &min,
-+ &sec);
-+ if (mon < 1 || mon > 12)
-+ mon = 13;
-+ if (year < 1900)
-+ year += 1900;
-+ sprintf (buf, "%s %d %04d", months[mon - 1], mday, year);
-+ return xstrdup (buf);
-+}
-+
-+
-+
- /* Escape the characters in a string so that it can be included in an
- RCS value. */
- static char *
-@@ -3680,13 +3718,13 @@
- srch_len -= (srch_next + 1) - srch;
- srch = srch_next + 1;
-
-- /* Look for the first non alphabetic character after the '$'. */
-+ /* Look for the first non alphanumeric character after the '$'. */
- send = srch + srch_len;
- for (s = srch; s < send; s++)
-- if (! isalpha ((unsigned char) *s))
-+ if (! isalnum ((unsigned char) *s))
- break;
-
-- /* If the first non alphabetic character is not '$' or ':',
-+ /* If the first non alphanumeric character is not '$' or ':',
- then this is not an RCS keyword. */
- if (s == send || (*s != '$' && *s != ':'))
- continue;
-@@ -3741,6 +3779,11 @@
- free_value = 1;
- break;
-
-+ case KEYWORD_MDOCDATE:
-+ value = mdoc_date (ver->date);
-+ free_value = 1;
-+ break;
-+
- case KEYWORD_CVSHEADER:
- case KEYWORD_HEADER:
- case KEYWORD_ID:
-@@ -4177,6 +4220,9 @@
- : (sout != RUN_TTY ? sout
- : "(stdout)"))));
-
-+ if (rev && *rev == '-')
-+ ++rev;
-+
- assert (rev == NULL || isdigit ((unsigned char) *rev));
-
- if (noexec && !server_active && workfile != NULL)
-@@ -5081,7 +5127,7 @@
- (void) time (&modtime);
- ftm = gmtime (&modtime);
- delta->date = Xasprintf (DATEFORM,
-- ftm->tm_year + (ftm->tm_year < 100 ? 0 : 1900),
-+ (long)ftm->tm_year + (ftm->tm_year < 100 ? 0L : 1900L),
- ftm->tm_mon + 1, ftm->tm_mday, ftm->tm_hour,
- ftm->tm_min, ftm->tm_sec);
- if (flags & RCS_FLAGS_DEAD)
-@@ -7235,6 +7281,7 @@
- /* Walk the deltas in RCS to get to revision VERSION.
-
- If OP is RCS_ANNOTATE, then write annotations using cvs_output.
-+ If OP is RCS_ANNOTATE_BACKWARDS, do the same backwards.
-
- If OP is RCS_FETCH, then put the contents of VERSION into a
- newly-malloc'd array and put a pointer to it in *TEXT. Each line
-@@ -7263,6 +7310,7 @@
- RCSVers *vers;
- RCSVers *prev_vers;
- RCSVers *trunk_vers;
-+ RCSVers *top_vers;
- char *next;
- int ishead, isnext, isversion, onbranch;
- Node *node;
-@@ -7285,6 +7333,7 @@
- vers = NULL;
- prev_vers = NULL;
- trunk_vers = NULL;
-+ top_vers = NULL;
- next = NULL;
- onbranch = 0;
- foundhead = 0;
-@@ -7332,12 +7381,28 @@
- vers = node->data;
- next = vers->next;
-
-+ /* The top version is either HEAD or
-+ the last version on the branch. */
-+ if (top_vers == NULL ||
-+ (onbranch && (op == RCS_ANNOTATE_BACKWARDS)))
-+ top_vers = vers;
-+
- /* Compare key and trunkversion now, because key points to
- storage controlled by rcsbuf_getkey. */
- if (STREQ (branchversion, key))
- isversion = 1;
- else
- isversion = 0;
-+
-+ /* If we are going back and up a branch, and this is
-+ the version we should start annotating, we need to
-+ clear out all accumulated annotations. */
-+ if ((op == RCS_ANNOTATE_BACKWARDS) && onbranch && STREQ (version, key)) {
-+ unsigned int ln;
-+
-+ for (ln = 0; ln < curlines.nlines; ++ln)
-+ curlines.vector[ln]->vers = NULL;
-+ }
- }
-
- while (1)
-@@ -7365,17 +7430,27 @@
- rcsbuf_valpolish (rcsbuf, value, 0, &vallen);
- if (ishead)
- {
-- if (! linevector_add (&curlines, value, vallen, NULL, 0))
-+ if (! linevector_add (&curlines, value, vallen,
-+ (op == RCS_ANNOTATE_BACKWARDS) ? vers : NULL, 0))
- error (1, 0, "invalid rcs file %s", rcs->print_path);
-
- ishead = 0;
- }
- else if (isnext)
- {
-+ RCSVers *addv, *delv;
-+
-+ if (op == RCS_ANNOTATE_BACKWARDS) {
-+ addv = onbranch ? NULL : prev_vers;
-+ delv = onbranch ? vers : NULL;
-+ } else {
-+ addv = onbranch ? vers : NULL;
-+ delv = onbranch ? NULL : prev_vers;
-+ }
-+
- if (! apply_rcs_changes (&curlines, value, vallen,
- rcs->path,
-- onbranch ? vers : NULL,
-- onbranch ? NULL : prev_vers))
-+ addv, delv))
- error (1, 0, "invalid change text in %s", rcs->print_path);
- }
- break;
-@@ -7384,6 +7459,14 @@
-
- if (isversion)
- {
-+ /* If we're going backwards and not up a branch, and we
-+ reached the version to start at, we're done. */
-+ if ((op == RCS_ANNOTATE_BACKWARDS) && !onbranch && STREQ (version, key)) {
-+ foundhead = 1;
-+ linevector_copy (&headlines, &curlines);
-+ break;
-+ }
-+
- /* This is either the version we want, or it is the
- branchpoint to the version we want. */
- if (STREQ (branchversion, version))
-@@ -7391,7 +7474,9 @@
- /* This is the version we want. */
- linevector_copy (&headlines, &curlines);
- foundhead = 1;
-- if (onbranch)
-+ /* If we are annotating backwards, we have to
-+ continue tracking when we're tracking a branch. */
-+ if (onbranch && !(op == RCS_ANNOTATE_BACKWARDS))
- {
- /* We have found this version by tracking up a
- branch. Restore back to the lines we saved
-@@ -7480,6 +7565,7 @@
- switch (op)
- {
- case RCS_ANNOTATE:
-+ case RCS_ANNOTATE_BACKWARDS:
- {
- unsigned int ln;
-
---- cvs-1.12.13+real.orig/src/rcs.h
-+++ cvs-1.12.13+real/src/rcs.h
-@@ -1,3 +1,5 @@
-+/* $MirOS: src/gnu/usr.bin/cvs/src/rcs.h,v 1.5 2010/09/19 19:43:09 tg Exp $ */
-+
- /*
- * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
- *
-@@ -33,7 +35,7 @@
- CVS) will put this into RCS files. Considered obsolete. */
- #define RCSDEAD "dead"
-
--#define DATEFORM "%02d.%02d.%02d.%02d.%02d.%02d"
-+#define DATEFORM "%02ld.%02d.%02d.%02d.%02d.%02d"
- #define SDATEFORM "%d.%d.%d.%d.%d.%d"
-
- /*
-@@ -189,7 +191,7 @@
- struct rcsbuffer;
-
- /* What RCS_deltas is supposed to do. */
--enum rcs_delta_op {RCS_ANNOTATE, RCS_FETCH};
-+enum rcs_delta_op {RCS_ANNOTATE, RCS_ANNOTATE_BACKWARDS, RCS_FETCH};
-
- /*
- * exported interfaces
---- cvs-1.12.13+real.orig/src/root.c
-+++ cvs-1.12.13+real/src/root.c
-@@ -1,4 +1,7 @@
- /*
-+ * Copyright © 2017
-+ * mirabilos <m@mirbsd.org>
-+ *
- * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
- *
- * Portions Copyright (C) 1998-2005 Derek Price, Ximbiot <http://ximbiot.com>,
-@@ -265,6 +268,7 @@
- directories. Then we can check against them when a remote user
- hands us a CVSROOT directory. */
- static List *root_allow;
-+static List *root_allow_regexp;
-
- static void
- delconfig (Node *n)
-@@ -288,15 +292,65 @@
- }
-
- void
-+root_allow_regexp_add (const char *arg, const char *configPath)
-+{
-+ Node *n;
-+
-+ if (!root_allow_regexp) root_allow_regexp = getlist();
-+ n = getnode();
-+ n->key = xstrdup (arg);
-+
-+ /* This is a regexp, not the final cvsroot path - we cannot attach
-+ it a config. So we attach configPath and we'll root_allow_add()
-+ the actual, matching root in root_allow_compare_regexp() */
-+ n->data = (void*)configPath;
-+
-+ addnode (root_allow_regexp, n);
-+}
-+
-+void
- root_allow_free (void)
- {
- dellist (&root_allow);
-+ dellist (&root_allow_regexp);
-+}
-+
-+int
-+root_allow_used (void)
-+{
-+ return root_allow || root_allow_regexp;
-+}
-+
-+/* walklist() callback for determining if 'root_to_check' matches
-+ n->key (a regexp). If yes, 'root_to_check' will be added as if
-+ directly specified through --allow-root.
-+ */
-+static int
-+root_allow_compare_regexp (Node *n, void *root_to_check)
-+{
-+ int status;
-+ regex_t re;
-+
-+ if (regcomp(&re, n->key,
-+ REG_EXTENDED|REG_NOSUB) != 0)
-+ {
-+ return 0; /* report error? */
-+ }
-+ status = regexec(&re, root_to_check, (size_t) 0, NULL, 0);
-+ regfree(&re);
-+ if (status == 0)
-+ {
-+ /* n->data contains gConfigPath */
-+ root_allow_add (root_to_check, n->data);
-+ return 1;
-+ }
-+ return 0;
- }
-
- bool
- root_allow_ok (const char *arg)
- {
-- if (!root_allow)
-+ if (!root_allow_used())
- {
- /* Probably someone upgraded from CVS before 1.9.10 to 1.9.10
- or later without reading the documentation about
-@@ -308,12 +362,18 @@
- back "error" rather than waiting for the next request which
- expects responses. */
- printf ("\
--error 0 Server configuration missing --allow-root in inetd.conf\n");
-+error 0 Server configuration missing --allow-root or --allow-root-regexp in inetd.conf\n");
- exit (EXIT_FAILURE);
- }
-
-+ /* Look for 'arg' in the list of full-path allowed roots */
- if (findnode (root_allow, arg))
- return true;
-+
-+ /* Match 'arg' against the list of allowed roots regexps */
-+ if (walklist (root_allow_regexp, root_allow_compare_regexp, (void*)arg))
-+ return true;
-+
- return false;
- }
-
-@@ -436,6 +496,9 @@
- }
-
-
-+#if defined(CLIENT_SUPPORT) || defined (SERVER_SUPPORT)
-+static char *validate_hostname(const char *) __attribute__((__malloc__));
-+#endif /* defined(CLIENT_SUPPORT) || defined (SERVER_SUPPORT) */
-
- /*
- * Parse a CVSROOT string to allocate and return a new cvsroot_t structure.
-@@ -535,6 +598,12 @@
- method = "";
- #endif /* defined (CLIENT_SUPPORT) || defined (SERVER_SUPPORT) */
-
-+ if (NULL == method)
-+ {
-+ error (0, 0, "Missing method in CVSROOT.");
-+ goto error_exit;
-+ }
-+
- /* Now we have an access method -- see if it's valid. */
-
- if (!strcasecmp (method, "local"))
-@@ -547,6 +616,16 @@
- newroot->method = gserver_method;
- else if (!strcasecmp (method, "server"))
- newroot->method = server_method;
-+ else if (strncmp (method, "ext=", 4) == 0)
-+ {
-+ newroot->cvs_rsh = xstrdup(method + 4);
-+ newroot->method = ext_method;
-+ }
-+ else if (!strcasecmp (method, "extssh"))
-+ {
-+ newroot->cvs_rsh = xstrdup("ssh");
-+ newroot->method = extssh_method;
-+ }
- else if (!strcasecmp (method, "ext"))
- newroot->method = ext_method;
- else if (!strcasecmp (method, "fork"))
-@@ -573,37 +652,40 @@
- TRACE (TRACE_DATA, "CVSROOT option=`%s' value=`%s'", p, q);
- if (!strcasecmp (p, "proxy"))
- {
-- newroot->proxy_hostname = xstrdup (q);
-+ if (!(newroot->proxy_hostname = validate_hostname(q))) {
-+ error(0, 0, "Invalid proxy hostname: %s", q);
-+ goto error_exit;
-+ }
- }
- else if (!strcasecmp (p, "proxyport"))
- {
- char *r = q;
-- if (*r == '-') r++;
-- while (*r)
-- {
-- if (!isdigit(*r++))
-- {
-+
-+ do {
-+ if (!isdigit(*r)) {
-+ proxy_port_error:
- error (0, 0,
- "CVSROOT may only specify a positive, non-zero, integer proxy port (not `%s').",
- q);
- goto error_exit;
- }
-- }
-- if ((newroot->proxy_port = atoi (q)) <= 0)
-- error (0, 0,
--"CVSROOT may only specify a positive, non-zero, integer proxy port (not `%s').",
-- q);
-+ } while (*++r);
-+ if ((newroot->proxy_port = atoi(q)) <= 0 ||
-+ newroot->proxy_port > 65535)
-+ goto proxy_port_error;
- }
- else if (!strcasecmp (p, "CVS_RSH"))
- {
- /* override CVS_RSH environment variable */
-- if (newroot->method == ext_method)
-- newroot->cvs_rsh = xstrdup (q);
-+ if (newroot->method == ext_method
-+ || newroot->method == extssh_method)
-+ newroot->cvs_rsh = xstrdup (q);
- }
- else if (!strcasecmp (p, "CVS_SERVER"))
- {
- /* override CVS_SERVER environment variable */
- if (newroot->method == ext_method
-+ || newroot->method == extssh_method
- || newroot->method == fork_method)
- newroot->cvs_server = xstrdup (q);
- }
-@@ -635,7 +717,8 @@
- newroot->isremote = (newroot->method != local_method);
-
- #if defined (CLIENT_SUPPORT) || defined (SERVER_SUPPORT)
-- if (readonlyfs && newroot->isremote)
-+ if (readonlyfs && newroot->isremote && (newroot->method != ext_method)
-+ && (newroot->method != extssh_method) && (newroot->method != fork_method))
- error (1, 0,
- "Read-only repository feature unavailable with remote roots (cvsroot = %s)",
- cvsroot_copy);
-@@ -682,7 +765,22 @@
- /* a blank username is impossible, so leave it NULL in that
- * case so we know to use the default username
- */
-+ {
-+ /* for want of strcspn */
-+ if (/* no at, obviously */ strchr(cvsroot_copy, '@') ||
-+ /* no colon, interference with CVSROOT/passwd file */
-+ strchr(cvsroot_copy, ':') ||
-+ /* no linefeeds, interference with pserver protocol */
-+ strchr(cvsroot_copy, '\012')) {
-+ error(0, 0, "Bad username \"%s\"", cvsroot_copy);
-+ goto error_exit;
-+ }
-+ /* other limitations include not beginning with a
-+ * hyphen-minus but that’s not even a requirement
-+ * in POSIX, let alone other operating environments…
-+ */
- newroot->username = xstrdup (cvsroot_copy);
-+ }
-
- cvsroot_copy = ++p;
- }
-@@ -693,24 +791,18 @@
- if ((p = strchr (cvsroot_copy, ':')) != NULL)
- {
- *p++ = '\0';
-- if (strlen(p))
-+ if (*p)
- {
-+ char qch;
-+
- q = p;
-- if (*q == '-') q++;
-- while (*q)
-+ while ((qch = *q++))
- {
-- if (!isdigit(*q++))
-- {
-- error (0, 0,
--"CVSROOT may only specify a positive, non-zero, integer port (not `%s').",
-- p);
-- error (0, 0,
-- "Perhaps you entered a relative pathname?");
-- goto error_exit;
-- }
-+ if (!isdigit(qch))
-+ goto parse_port_error;
- }
-- if ((newroot->port = atoi (p)) <= 0)
-- {
-+ if ((newroot->port = atoi(p)) <= 0 || newroot->port > 65535) {
-+ parse_port_error:
- error (0, 0,
- "CVSROOT may only specify a positive, non-zero, integer port (not `%s').",
- p);
-@@ -720,12 +812,8 @@
- }
- }
-
-- /* copy host */
-- if (*cvsroot_copy != '\0')
-- /* blank hostnames are invalid, but for now leave the field NULL
-- * and catch the error during the sanity checks later
-- */
-- newroot->hostname = xstrdup (cvsroot_copy);
-+ /* check and copy host */
-+ newroot->hostname = validate_hostname(cvsroot_copy);
-
- /* restore the '/' */
- cvsroot_copy = firstslash;
-@@ -750,7 +838,9 @@
- #if defined(CLIENT_SUPPORT) || defined (SERVER_SUPPORT)
- if (newroot->username && ! newroot->hostname)
- {
-- error (0, 0, "Missing hostname in CVSROOT.");
-+ /* this defangs sanity.sh tests for remote reject, though */
-+ bad_hostname:
-+ error (0, 0, "Missing or bad hostname in CVSROOT.");
- goto error_exit;
- }
-
-@@ -828,6 +918,7 @@
- case server_method:
- case ext_method:
- no_port = 1;
-+ case extssh_method:
- /* no_password already set */
- check_hostname = 1;
- break;
-@@ -863,16 +954,13 @@
- }
-
- if (check_hostname && !newroot->hostname)
-- {
-- error (0, 0, "Didn't specify hostname in CVSROOT.");
-- goto error_exit;
-- }
-+ goto bad_hostname;
-
- if (no_port && newroot->port)
- {
- error (0, 0,
--"CVSROOT port specification is only valid for gserver, kserver,");
-- error (0, 0, "and pserver connection methods.");
-+"CVSROOT port specification is only valid for extssh,");
-+ error (0, 0, "gserver, kserver and pserver connection methods.");
- goto error_exit;
- }
- #endif /* defined(CLIENT_SUPPORT) || defined (SERVER_SUPPORT) */
-@@ -1052,3 +1140,78 @@
- /* NOTREACHED */
- }
- #endif
-+
-+#if defined(CLIENT_SUPPORT) || defined (SERVER_SUPPORT)
-+#define CLS_INVALID 0
-+#define CLS_INSIDE 1
-+#define CLS_OUTSIDE 2
-+#define CLS_SEPARATOR 4
-+/* EBCDIC safe */
-+#define CLASSIFY(x) classify[(unsigned char)(x)]
-+static char *
-+validate_hostname(const char *s)
-+{
-+ char *buf, *cp;
-+ size_t sz;
-+ static char classify_initialised = 0, *classify;
-+
-+ /* initialise classification table */
-+ if (!classify_initialised) {
-+ const char *ccp;
-+
-+ classify = xmalloc(256);
-+ for (sz = 0; sz < 256; ++sz)
-+ CLASSIFY(sz) = CLS_INVALID;
-+ for (ccp = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
-+ *ccp; ++ccp)
-+ CLASSIFY(*ccp) = CLS_INSIDE | CLS_OUTSIDE;
-+ CLASSIFY('-') = CLS_INSIDE;
-+ CLASSIFY('.') = CLS_SEPARATOR;
-+ classify_initialised = 1;
-+ }
-+
-+ /* total size limit tolerating a trailing dot */
-+ if ((sz = strlen(s)) > 256)
-+ return (NULL);
-+ buf = xstrdup(s);
-+
-+ /* drop trailing dot */
-+ if ((unsigned char)buf[sz - 1] == (unsigned char)'.')
-+ buf[--sz] = '\0';
-+ /* recheck */
-+ if (sz > 255) {
-+ err:
-+ free(buf);
-+ return (NULL);
-+ }
-+
-+ /* check each label */
-+ cp = buf;
-+ loop:
-+ /* must begin with [0-9A-Za-z] */
-+ if (!(CLASSIFY(*cp++) & CLS_OUTSIDE))
-+ goto err;
-+ sz = 1;
-+ /* arbitrary many [0-9A-Za-z-] */
-+ while (CLASSIFY(*cp) & CLS_INSIDE) {
-+ ++cp;
-+ ++sz;
-+ }
-+ /* except the last must have been [0-9A-Za-z] again */
-+ if (!(CLASSIFY(cp[-1]) & CLS_OUTSIDE))
-+ goto err;
-+ /* maximum label size */
-+ if (sz > 63)
-+ goto err;
-+ /* next label? */
-+ if (CLASSIFY(*cp) & CLS_SEPARATOR) {
-+ ++cp;
-+ goto loop;
-+ }
-+ /* must be end of string now */
-+ if (*cp)
-+ goto err;
-+ /* it is, everything okay */
-+ return (buf);
-+}
-+#endif /* defined(CLIENT_SUPPORT) || defined (SERVER_SUPPORT) */
---- cvs-1.12.13+real.orig/src/root.h
-+++ cvs-1.12.13+real/src/root.h
-@@ -1,3 +1,5 @@
-+/* $MirOS: src/gnu/usr.bin/cvs/src/root.h,v 1.5 2017/01/08 19:13:05 tg Exp $ */
-+
- /*
- * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
- *
-@@ -22,6 +24,7 @@
- kserver_method,
- gserver_method,
- ext_method,
-+ extssh_method,
- fork_method
- } CVSmethod;
- extern const char method_names[][16]; /* change this in root.c if you change
-@@ -62,8 +65,10 @@
- __attribute__ ((__malloc__));
- void Create_Root (const char *dir, const char *rootdir);
- void root_allow_add (const char *, const char *configPath);
-+void root_allow_regexp_add (const char *, const char *configPath);
- void root_allow_free (void);
- bool root_allow_ok (const char *);
-+int root_allow_used (void);
- struct config *get_root_allow_config (const char *arg, const char *configPath);
- const char *primary_root_translate (const char *root_in);
- const char *primary_root_inverse_translate (const char *root_in);
---- cvs-1.12.13+real.orig/src/rsh-client.c
-+++ cvs-1.12.13+real/src/rsh-client.c
-@@ -53,11 +53,13 @@
- char *cvs_server = (root->cvs_server != NULL
- ? root->cvs_server : getenv ("CVS_SERVER"));
- int i = 0;
-- /* This needs to fit "rsh", "-b", "-l", "USER", "host",
-- "cmd (w/ args)", and NULL. We leave some room to grow. */
-- char *rsh_argv[10];
-+ /* This needs to fit "rsh", "-b", "-l", "USER", "-p", port,
-+ "--", "host", "cvs", "-R", "server", and NULL.
-+ We leave some room to grow. */
-+ char *rsh_argv[16];
-+ char argvport[16];
-
-- if (!cvs_rsh)
-+ if (!cvs_rsh || !*cvs_rsh)
- /* People sometimes suggest or assume that this should default
- to "remsh" on systems like HPUX in which that is the
- system-supplied name for the rsh program. However, that
-@@ -79,7 +81,7 @@
- if that is what they want (the manual already tells them
- that). */
- cvs_rsh = RSH_DFLT;
-- if (!cvs_server)
-+ if (!cvs_server || !*cvs_server)
- cvs_server = "cvs";
-
- /* The command line starts out with rsh. */
-@@ -97,8 +99,20 @@
- rsh_argv[i++] = root->username;
- }
-
-+ if (root->method == extssh_method && root->port)
-+ {
-+ snprintf(argvport, sizeof(argvport), "%d", root->port);
-+ rsh_argv[i++] = "-p";
-+ rsh_argv[i++] = argvport;
-+ }
-+
-+ /* Only non-option arguments from here. (CVE-2017-12836) */
-+ rsh_argv[i++] = "--";
-+
- rsh_argv[i++] = root->hostname;
- rsh_argv[i++] = cvs_server;
-+ if (readonlyfs)
-+ rsh_argv[i++] = "-R";
- rsh_argv[i++] = "server";
-
- /* Mark the end of the arg list. */
-@@ -139,9 +153,9 @@
- int tofd, fromfd;
- int child_pid;
-
-- if (!cvs_rsh)
-+ if (!cvs_rsh || !*cvs_rsh)
- cvs_rsh = RSH_DFLT;
-- if (!cvs_server)
-+ if (!cvs_server || !*cvs_server)
- cvs_server = "cvs";
-
- /* Pass the command to rsh as a single string. This shouldn't
-@@ -154,10 +168,11 @@
- * on the server machine does not set CVSROOT to something
- * containing a colon (or better yet, upgrade the server).
- */
-- command = Xasprintf ("%s server", cvs_server);
-+ command = Xasprintf ("%s%s server", cvs_server, readonlyfs ? " -R" : "");
-
- {
-- char *argv[10];
-+ char argvport[16];
-+ char *argv[16];
- char **p = argv;
-
- *p++ = cvs_rsh;
-@@ -171,6 +186,15 @@
- *p++ = root->username;
- }
-
-+ if (root->method == extssh_method && root->port)
-+ {
-+ snprintf(argvport, sizeof(argvport), "%d", root->port);
-+ *p++ = "-p";
-+ *p++ = argvport;
-+ }
-+
-+ *p++ = "--";
-+
- *p++ = root->hostname;
- *p++ = command;
- *p++ = NULL;
---- cvs-1.12.13+real.orig/src/sanity.sh
-+++ cvs-1.12.13+real/src/sanity.sh
-@@ -1,5 +1,9 @@
- #! /bin/sh
- :
-+# $MirOS: src/gnu/usr.bin/cvs/src/sanity.sh,v 1.20 2017/08/12 01:08:20 tg Exp $
-+#-
-+# set DISABLE_ANY_RSH=1 to skip rsh and ssh calls
-+#
- # sanity.sh -- a growing testsuite for cvs.
- #
- # The copyright notice said: "Copyright (C) 1992, 1993 Cygnus Support"
-@@ -22,7 +26,7 @@
- usage ()
- {
- echo "Usage: `basename $0` --help"
-- echo "Usage: `basename $0` [--eklr] [-c CONFIG-FILE] [-f FROM-TEST] \\"
-+ echo "Usage: `basename $0` [-eklnpr] [-c CONFIG-FILE] [-f FROM-TEST] \\"
- echo " [-h HOSTNAME] [-s CVS-FOR-CVS-SERVER] CVS-TO-TEST \\"
- echo " [TESTS-TO-RUN...]"
- }
-@@ -37,59 +41,74 @@
- {
- usage
- echo
-- echo "-H|--help display this text"
-+ echo "-H|--help display this text"
- echo "-c CONFIG-FILE"
- echo "--config=CONFIG_FILE"
-- echo " use an alternate test suite config file (defaults to"
-- echo " \`sanity.config.sh' in the same directory as"
-- echo " CVS-TO-TEST is found in)"
-- echo "-e|--skipfail Treat tests that would otherwise be nonfatally skipped"
-- echo " for reasons like missing tools as failures, exiting"
-- echo " with an error message. Also treat warnings as"
-- echo " failures."
-+ echo " use an alternate test suite config file (defaults to"
-+ echo " 'sanity.config.sh' in the same directory as"
-+ echo " CVS-TO-TEST is found in)"
-+ echo "-e|--skipfail Treat tests that would otherwise be nonfatally skipped"
-+ echo " for reasons like missing tools as failures, exiting"
-+ echo " with an error message. Also treat warnings as"
-+ echo " failures."
- echo "-f FROM-TEST"
- echo "--from-test=FROM-TEST"
-- echo " run TESTS-TO-RUN, skipping all tests in the list before"
-- echo " FROM-TEST"
-+ echo " run TESTS-TO-RUN, skipping all tests in the list before"
-+ echo " FROM-TEST"
- echo "-h HOSTNAME"
- echo "--hostname HOSTNAME"
-- echo " Use :ext:HOSTNAME to run remote tests rather than"
-- echo " :fork:. Implies --remote and assumes that \$TESTDIR"
-- echo " resolves to the same directory on both the client and"
-- echo " the server."
-- echo "-k|--keep try to keep directories created by individual tests"
-- echo " around, exiting after the first test which supports"
-- echo " --keep"
-- echo "-l|--link-root"
-- echo " test CVS using a symlink to a real CVSROOT"
-- echo "-n|--noredirect"
-- echo " test a secondary/primary CVS server (writeproxy)"
-- echo " configuration with the Redirect response disabled"
-- echo " (implies --proxy)."
-- echo "-p|--proxy test a secondary/primary CVS server (writeproxy)"
-- echo " configuration (implies --remote)."
-- echo "-r|--remote test client/server, as opposed to local, CVS"
-+ echo " Use :ext:HOSTNAME to run remote tests rather than"
-+ echo " :fork:. Implies --remote and assumes that \$TESTDIR"
-+ echo " resolves to the same directory on both the client and"
-+ echo " the server."
-+ echo "-k|--keep try to keep directories created by individual tests"
-+ echo " around, exiting after the first test which supports"
-+ echo " --keep"
-+ echo "-l|--link-root test CVS using a symlink to a real CVSROOT"
-+ echo "-n|--noredirect test a secondary/primary CVS server (writeproxy)"
-+ echo " configuration with the Redirect response disabled"
-+ echo " (implies --proxy)."
-+ echo "-p|--proxy test a secondary/primary CVS server (writeproxy)"
-+ echo " configuration (implies --remote)."
-+ echo "-r|--remote test client/server, as opposed to local, CVS"
- echo "-s CVS-FOR-CVS-SERVER"
- echo "--server=CVS-FOR-CVS-SERVER"
-- echo " use CVS-FOR-CVS-SERVER as the path to the CVS SERVER"
-- echo " executable to be tested (defaults to CVS-TO-TEST and"
-- echo " implies --remote)"
-- echo
-- echo "CVS-TO-TEST the path to the CVS executable to be tested; used as"
-- echo " the path to the CVS client when CVS-FOR-CVS-SERVER is"
-- echo " specified"
-- echo "TESTS-TO-RUN the names of the tests to run (defaults to all tests)"
-+ echo " use CVS-FOR-CVS-SERVER as the path to the CVS SERVER"
-+ echo " executable to be tested (defaults to CVS-TO-TEST and"
-+ echo " implies --remote)"
-+ echo ""
-+ echo "CVS-TO-TEST the path to the CVS executable to be tested; used as"
-+ echo " the path to the CVS client when CVS-FOR-CVS-SERVER is"
-+ echo " specified"
-+ echo "TESTS-TO-RUN the names of the tests to run (defaults to all tests)"
- exit 2
- }
-
- checklongoptarg()
- {
- if test "x$1" != xoptional && test -z "$OPTARG"; then
-- echo "option \`--$LONGOPT' requires an argument" >&2
-+ echo "option '--$LONGOPT' requires an argument" >&2
- exit_usage
- fi
- }
-
-+do_save_TZ()
-+{
-+ saveset_TZ=${TZ+false}
-+ save_TZ=$TZ
-+ TZ=UTC0; export TZ
-+}
-+
-+do_restore_TZ()
-+{
-+ if $saveset_TZ :; then
-+ unset TZ
-+ else
-+ TZ=$save_TZ
-+ export TZ
-+ fi
-+}
-+
- # See TODO list at end of file.
-
- # required to make this script work properly.
-@@ -155,7 +174,7 @@
- checklongoptarg
- ;;
- h)
-- echo "\`--h' is ambiguous. Could mean \`--help' or \`--hostname'" >&2
-+ echo "'--h' is ambiguous. Could mean '--help' or '--hostname'" >&2
- exit_usage
- ;;
- he|hel|help)
-@@ -187,7 +206,7 @@
- OPTARG=
- ;;
- s)
-- echo "\`--s' is ambiguous. Could mean \`--server' or \`--skipfail'" >&2
-+ echo "'--s' is ambiguous. Could mean '--server' or '--skipfail'" >&2
- exit_usage
- ;;
- se|ser|serv|serve|server)
-@@ -312,7 +331,7 @@
- . "$configfile"
- else
- echo "WARNING: Failed to locate test suite config file" >&2
-- echo " \`$configfile'." >&2
-+ echo " '$configfile'." >&2
- fi
-
-
-@@ -326,7 +345,7 @@
- # Verify that $CVS_RSH $remotehost works.
- result=`$CVS_RSH $remotehost 'echo test'`
- if test $? != 0 || test "x$result" != "xtest"; then
-- echo "\`$CVS_RSH $remotehost' failed." >&2
-+ echo "'$CVS_RSH $remotehost' failed." >&2
- exit 1
- fi
- fi
-@@ -373,7 +392,7 @@
- fi
- if $CVS_RSH $remotehost "${servercvs} --version </dev/null |
- grep '^Concurrent.*(.*server)$' >/dev/null 2>&1"; then :; else
-- echo "CVS executable \`$remotehost:${servercvs}' does not contain server support." >&2
-+ echo "CVS executable '$remotehost:${servercvs}' does not contain server support." >&2
- exit 1
- fi
- else
-@@ -388,7 +407,7 @@
- fi
- if ${servercvs} --version </dev/null |
- grep '^Concurrent.*(.*server)$' >/dev/null 2>&1; then :; else
-- echo "CVS executable \`${servercvs}' does not contain server support." >&2
-+ echo "CVS executable '${servercvs}' does not contain server support." >&2
- exit 1
- fi
- fi
-@@ -399,7 +418,7 @@
- if $remote; then
- if ${testcvs} --version </dev/null |
- grep '^Concurrent.*(client.*)$' >/dev/null 2>&1; then :; else
-- echo "CVS executable \`${testcvs}' does not contain client support." >&2
-+ echo "CVS executable '${testcvs}' does not contain client support." >&2
- exit 1
- fi
- fi
-@@ -418,7 +437,7 @@
- dokeep()
- {
- if ${keep}; then
-- echo "Keeping ${TESTDIR} for test case \`${what}' and exiting due to --keep"
-+ echo "Keeping ${TESTDIR} for test case '${what}' and exiting due to --keep"
- exit 0
- fi
- }
-@@ -436,7 +455,7 @@
- echo '(Note that the test can take an hour or more to run and periodically stops'
- echo 'for as long as one minute. Do not assume there is a problem just because'
- echo 'nothing seems to happen for a long time. If you cannot live without'
--echo "running status, try the command: \`tail -f check.log' from another window.)"
-+echo "running status, try the command: 'tail -f check.log' from another window.)"
-
- # Regexp to match what the CVS client will call itself in output that it prints.
- # FIXME: we don't properly quote this--if the name contains . we'll
-@@ -681,6 +700,10 @@
- #! $TESTSHELL
- hostname=\$1
- shift
-+if test x"\$hostname" = x"--"; then
-+ hostname=\$1
-+ shift
-+fi
- exec \
- $CVS_RSH \
- \$hostname \
-@@ -750,7 +773,7 @@
- fi
- fi
- if $verbad; then
-- echo "The command \`$vercmd' does not support the --version option."
-+ echo "The command '$vercmd' does not support the --version option."
- fi
- # It does not really matter that --version is not supported
- return 0
-@@ -796,10 +819,10 @@
- fi
- done
- if test -n "$TOOL"; then
-- echo "Notice: The default version of \`$default_TOOL' is defective." >>$LOGFILE
-- echo "using \`$TOOL' and hoping for the best." >>$LOGFILE
-- echo "Notice: The default version of \`$default_TOOL' is defective." >&2
-- echo "using \`$TOOL' and hoping for the best." >&2
-+ echo "Notice: The default version of '$default_TOOL' is defective." >>$LOGFILE
-+ echo "using '$TOOL' and hoping for the best." >>$LOGFILE
-+ echo "Notice: The default version of '$default_TOOL' is defective." >&2
-+ echo "using '$TOOL' and hoping for the best." >&2
- echo $TOOL
- else
- echo $default_TOOL
-@@ -812,7 +835,7 @@
- if $id -u >/dev/null 2>&1 && $id -un >/dev/null 2>&1; then
- return 0
- else
-- echo "Running these tests requires an \`id' program that understands the"
-+ echo "Running these tests requires an 'id' program that understands the"
- echo "-u and -n flags. Make sure that such an id (GNU, or many but not"
- echo "all vendor-supplied versions) is in your path."
- return 1
-@@ -941,8 +964,8 @@
- else
- DOTSTAR='\(.\|
- \)*'
-- echo "Notice: DOTSTAR changed from sane \`.*' value to \`$DOTSTAR\`"
-- echo "to workaround GNU expr version 1.10 thru 1.12 bug where \`.'"
-+ echo "Notice: DOTSTAR changed from sane '.*' value to '$DOTSTAR'"
-+ echo "to workaround GNU expr version 1.10 thru 1.12 bug where '.'"
- echo "does not match a newline."
- fi
- return 0
-@@ -1059,7 +1082,7 @@
- rm -rf $TESTDIR/ls-test
- fi
- if $ls $TESTDIR/ls-test >/dev/null 2>&1; then
-- echo "Notice: \`$ls' is defective."
-+ echo "Notice: '$ls' is defective."
- echo 'This is a version of ls which does not correctly'
- echo 'return false for files that do not exist. Some tests may'
- echo 'spuriously pass or fail.'
-@@ -1205,11 +1228,16 @@
- # 77.
- require_rsh ()
- {
-+ if test x"$DISABLE_ANY_RSH" = x"1"; then
-+ skipreason="administratively prohibited"
-+ return 77
-+ fi
-+
- host=${remotehost-"`hostname`"}
- result=`$1 $host 'echo test'`
- rc=$?
- if test $? != 0 || test "x$result" != "xtest"; then
-- skipreason="\`$1 $host' failed rc=$rc result=$result"
-+ skipreason="'$1 $host' failed rc=$rc result=$result"
- return 77
- fi
-
-@@ -1301,7 +1329,7 @@
- fail ()
- {
- echo "FAIL: $1" | tee -a ${LOGFILE}
-- echo "*** Please see the \`TESTS' and \`check.log' files for more information." >&2
-+ echo "*** Please see the 'TESTS' and 'check.log' files for more information." >&2
- # This way the tester can go and see what remnants were left
- exit 1
- }
-@@ -1313,7 +1341,7 @@
- if $remote && $LS $TMPDIR/cvs-serv* >/dev/null 2>&1; then
- # A true value means ls found files/directories with these names.
- # Give the server some time to finish, then retry.
-- sleep 1
-+ sleep 2
- if $LS $TMPDIR/cvs-serv* >/dev/null 2>&1; then
- warn "$1" "Found cvs-serv* directories in $TMPDIR."
- # The above will exit if $skipfail
-@@ -1503,6 +1531,9 @@
- # lack \|).
- dotest ()
- {
-+ #echo dotest >$TESTDIR/_dotest.fun
-+ #pwd >$TESTDIR/_dotest.cwd
-+ #printf '%s\n' "$2" >$TESTDIR/_dotest.cmd
- rm -f $TESTDIR/dotest.ex? 2>&1
- eval "$2" >$TESTDIR/dotest.tmp 2>&1
- status=$?
-@@ -1518,6 +1549,9 @@
- # Like dotest except only 2 args and result must exactly match stdin
- dotest_lit ()
- {
-+ #echo dotest_lit >$TESTDIR/_dotest.fun
-+ #pwd >$TESTDIR/_dotest.cwd
-+ #printf '%s\n' "$2" >$TESTDIR/_dotest.cmd
- rm -f $TESTDIR/dotest.ex? 2>&1
- eval "$2" >$TESTDIR/dotest.tmp 2>&1
- status=$?
-@@ -1543,6 +1577,9 @@
- # Like dotest except exitstatus should be nonzero.
- dotest_fail ()
- {
-+ #echo dotest_fail >$TESTDIR/_dotest.fun
-+ #pwd >$TESTDIR/_dotest.cwd
-+ #printf '%s\n' "$2" >$TESTDIR/_dotest.cmd
- rm -f $TESTDIR/dotest.ex? 2>&1
- eval "$2" >$TESTDIR/dotest.tmp 2>&1
- status=$?
-@@ -1558,6 +1595,9 @@
- # Like dotest except output is sorted.
- dotest_sort ()
- {
-+ #echo dotest_sort >$TESTDIR/_dotest.fun
-+ #pwd >$TESTDIR/_dotest.cwd
-+ #printf '%s\n' "$2" >$TESTDIR/_dotest.cmd
- rm -f $TESTDIR/dotest.ex? 2>&1
- eval "$2" >$TESTDIR/dotest.tmp1 2>&1
- status=$?
-@@ -1574,6 +1614,9 @@
- # Like dotest_fail except output is sorted.
- dotest_fail_sort ()
- {
-+ #echo dotest_fail_sort >$TESTDIR/_dotest.fun
-+ #pwd >$TESTDIR/_dotest.cwd
-+ #printf '%s\n' "$2" >$TESTDIR/_dotest.cmd
- rm -f $TESTDIR/dotest.ex? 2>&1
- eval "$2" >$TESTDIR/dotest.tmp1 2>&1
- status=$?
-@@ -1622,6 +1665,7 @@
- tests="$tests parseroot parseroot2 parseroot3 files spacefiles"
- tests="${tests} commit-readonly commit-add-missing"
- tests="${tests} status"
-+ tests="${tests} suck"
- # Branching, tagging, removing, adding, multiple directories
- tests="${tests} rdiff rdiff-short"
- tests="${tests} rdiff2 diff diffnl death death2"
-@@ -1694,7 +1738,7 @@
- count=`expr $count + 1`
- done
- if test $count != 1; then
-- echo "No such test \`$fromtest'." >&2
-+ echo "No such test '$fromtest'." >&2
- exit 2
- fi
- # make sure it is in $tests
-@@ -1702,7 +1746,7 @@
- *" $fromtest "*)
- ;;
- *)
-- echo "No such test \`$fromtest'." >&2
-+ echo "No such test '$fromtest'." >&2
- exit 2
- ;;
- esac
-@@ -2600,6 +2644,25 @@
- ###
- dotest init-1 "$testcvs init"
-
-+# We might need to allow "cvs admin" access and full history.
-+mkdir wnt
-+cd wnt
-+dotest init-1a "$testcvs -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
-+cd CVSROOT
-+sed -e 's/^#UserAdminOptions=/UserAdminOptions=/' \
-+ -e '/^LogHistory/d' \
-+ <config >tmpconfig
-+mv tmpconfig config
-+dotest init-1b "$testcvs -q ci -m allow-cvs-admin" "" \
-+".*/CVSROOT/config,v <-- config
-+new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
-+$SPROG commit: Rebuilding administrative file database"
-+cd ../..
-+rm -r wnt
-+
-+write_secondary_wrapper() { :; }
-+CVS_SERVER_secondary_wrapper_orig=$CVS_SERVER
-+
- # Now hide the primary root behind a secondary if requested.
- if $proxy; then
- # Save the primary root.
-@@ -2626,6 +2689,7 @@
- if $noredirect; then
- # Wrap the CVS server to allow --primary-root to be set by the
- # secondary.
-+ write_secondary_wrapper() {
- cat <<EOF >$TESTDIR/secondary-wrapper
- #! $TESTSHELL
- CVS_SERVER=$TESTDIR/primary-wrapper
-@@ -2633,8 +2697,10 @@
-
- # No need to check the PID of the last client since we are testing with
- # Redirect disabled.
--proot_arg="--allow-root=$SECONDARY_CVSROOT_DIRNAME"
--exec $CVS_SERVER \$proot_arg "\$@"
-+proot_arg="--allow-root=$SECONDARY_CVSROOT_DIRNAME \
-+ --allow-root=$TESTDIR/crerepos \
-+ --allow-root=$PRIMARY_CVSROOT_DIRNAME"
-+exec $CVS_SERVER_secondary_wrapper_orig \$proot_arg "\$@"
- EOF
- cat <<EOF >$TESTDIR/primary-wrapper
- #! $TESTSHELL
-@@ -2644,7 +2710,8 @@
- fi
- exec $CVS_SERVER "\$@"
- EOF
--
-+ }
-+ write_secondary_wrapper
- CVS_SERVER_secondary=$TESTDIR/secondary-wrapper
- CVS_SERVER=$CVS_SERVER_secondary
-
-@@ -2685,10 +2752,10 @@
- # were written to.
- case "\$cmd" in
- add|import)
-- # For \`add', we need a recursive update due to quirks in rsync syntax,
-+ # For 'add', we need a recursive update due to quirks in rsync syntax,
- # but it shouldn't affect efficiency since any new dir should be empty.
- #
-- # For \`import', a recursive update is necessary since subdirs may have
-+ # For 'import', a recursive update is necessary since subdirs may have
- # been added underneath the root dir we were passed.
- $RSYNC -rglop \\
- $PRIMARY_CVSROOT_DIRNAME/"\$dir" \\
-@@ -2696,7 +2763,7 @@
- ;;
-
- tag)
-- # \`tag' may have changed CVSROOT/val-tags too.
-+ # 'tag' may have changed CVSROOT/val-tags too.
- $RSYNC -glop \\
- $PRIMARY_CVSROOT_DIRNAME/CVSROOT/val-tags \\
- $SECONDARY_CVSROOT_DIRNAME/CVSROOT
-@@ -2726,7 +2793,7 @@
- esac # \$dir
-
- # Avoid timestamp comparison issues with rsync.
--sleep 1
-+sleep 2
- EOF
- chmod a+x $TESTDIR/sync-secondary
-
-@@ -2781,6 +2848,21 @@
- ###
- dotest init-2 "$testcvs init"
-
-+# We might need to allow "cvs admin" access and full history.
-+mkdir wnt
-+cd wnt
-+dotest init-2a "$testcvs -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
-+cd CVSROOT
-+sed -e 's/^#UserAdminOptions=/UserAdminOptions=/' \
-+ -e '/^LogHistory/d' \
-+ <config >tmpconfig
-+mv tmpconfig config
-+dotest init-2b "$testcvs -q ci -m allow-cvs-admin" "" \
-+".*/CVSROOT/config,v <-- config
-+new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
-+$SPROG commit: Rebuilding administrative file database"
-+cd ../..
-+rm -r wnt
-
-
- ###
-@@ -2805,6 +2887,7 @@
-
- Copyright (C) [0-9]* Free Software Foundation, Inc.
-
-+Portions contributed by Thorsten Glaser for the MirOS Project and Debian.
- Senior active maintainers include Larry Jones, Derek R. Price,
- and Mark D. Baushke. Please see the AUTHORS and README files from the CVS
- distribution kit for a complete list of contributors and copyrights.
-@@ -2822,8 +2905,8 @@
- #Secondary Server: Concurrent Versions System (CVS) [0-9p.]* (.*server)'
- if $remote; then
- dotest version-2r "${testcvs} version" \
--'Client: Concurrent Versions System (CVS) [0-9p.]* (client.*)
--Server: Concurrent Versions System (CVS) [0-9p.]* (.*server)'
-+'Client: Concurrent Versions System (CVS) [0-9p.]*\(-Mir[^ ]*\)* (client.*)
-+Server: Concurrent Versions System (CVS) [0-9p.]*\(-Mir[^ ]*\)* (.*server)'
- else
- dotest version-2 "${testcvs} version" \
- 'Concurrent Versions System (CVS) [0-9.]*.*'
-@@ -2846,7 +2929,7 @@
- dotest basica-0a "$testcvs -q co -l ."
- mkdir first-dir
- dotest basica-0b "$testcvs add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd ..
- rm -r 1
-
-@@ -2865,17 +2948,17 @@
- # Remote CVS gives the "cannot open CVS/Entries" error, which is
- # clearly a bug, but not a simple one to fix.
- dotest basica-1a10 "$testcvs -n add sdir" \
--"Directory $CVSROOT_DIRNAME/first-dir/sdir added to the repository" \
-+"Directory $CVSROOT_DIRNAME/first-dir/sdir put under version control" \
- "$SPROG add: cannot open CVS/Entries for reading: No such file or directory
--Directory $CVSROOT_DIRNAME/first-dir/sdir added to the repository"
-+Directory $CVSROOT_DIRNAME/first-dir/sdir put under version control"
- dotest_fail basica-1a11 \
- "test -d $CVSROOT_DIRNAME/first-dir/sdir"
- dotest basica-2 "$testcvs add sdir" \
--"Directory $CVSROOT_DIRNAME/first-dir/sdir added to the repository"
-+"Directory $CVSROOT_DIRNAME/first-dir/sdir put under version control"
- cd sdir
- mkdir ssdir
- dotest basica-3 "$testcvs add ssdir" \
--"Directory $CVSROOT_DIRNAME/first-dir/sdir/ssdir added to the repository"
-+"Directory $CVSROOT_DIRNAME/first-dir/sdir/ssdir put under version control"
- cd ssdir
- echo ssfile >ssfile
-
-@@ -3145,7 +3228,7 @@
- dotest basicb-0d0 "${testcvs} -q co -l ." ""
- mkdir first-dir
- dotest basicb-0e "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd ..
- rm -r 2
-
-@@ -3165,8 +3248,8 @@
- # special only when it is directly in $CVSROOT/CVSROOT.
- mkdir Emptydir sdir2
- dotest basicb-2 "${testcvs} add Emptydir sdir2" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/Emptydir added to the repository
--Directory ${CVSROOT_DIRNAME}/first-dir/sdir2 added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir/Emptydir put under version control
-+Directory ${CVSROOT_DIRNAME}/first-dir/sdir2 put under version control"
- cd Emptydir
- echo sfile1 starts >sfile1
- dotest basicb-2a10 "${testcvs} -n add sfile1" \
-@@ -3288,7 +3371,7 @@
- dotest basicb-14 "${testcvs} -q co -l ." 'U topfile'
- mkdir second-dir
- dotest basicb-15 "${testcvs} add second-dir" \
--"Directory ${CVSROOT_DIRNAME}/second-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/second-dir put under version control"
- cd second-dir
- touch aa
- dotest basicb-16 "${testcvs} add aa" \
-@@ -3327,10 +3410,17 @@
- # many other folks are still using the older 'invalid option'
- # lib/getopt.c will use POSIX when __posixly_correct
- # otherwise the other, so accept both of them. -- mdb
-+ # Added optional single quotes. -- mirabilos
-+ # The above is actually untrue, POSIX only documents some older
-+ # texts that can be used and explicitly leaves open the format
-+ # of these messages. Also, GNU getopt is broken and does not
-+ # use __progname in the first place. *sigh* -- mirabilos
-+ # Also supporting either argv0 with both errors and optional
-+ # quotes now. -- mirabilos
- dotest_fail basicb-21 "${testcvs} -q admin -H" \
--"admin: invalid option -- H
-+"admin: i[ln][lv][ea][gl][ai][ld] option -- '*H'*
- ${CPROG} \[admin aborted\]: specify ${CPROG} -H admin for usage information" \
--"admin: illegal option -- H
-+"cvs: i[ln][lv][ea][gl][ai][ld] option -- '*H'*
- ${CPROG} \[admin aborted\]: specify ${CPROG} -H admin for usage information"
- cd ..
- rmdir 1
-@@ -3356,8 +3446,8 @@
- dotest basicc-2 "$testcvs -q co -l ."
- mkdir first-dir second-dir
- dotest basicc-3 "${testcvs} add first-dir second-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository
--Directory ${CVSROOT_DIRNAME}/second-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control
-+Directory ${CVSROOT_DIRNAME}/second-dir put under version control"
- # Old versions of CVS often didn't create this top-level CVS
- # directory in the first place. I think that maybe the only
- # way to get it to work currently is to let CVS create it,
-@@ -3807,7 +3897,7 @@
- for i in dir1 dir2 dir3 dir4 dir5 dir6 dir7 dir8; do
- mkdir $i
- dotest deep-2-$i "${testcvs} add $i" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/dir1[/dir0-9]* added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir/dir1[/dir0-9]* put under version control"
- cd $i
- echo file1 >file1
- dotest deep-3-$i "${testcvs} add file1" \
-@@ -3924,7 +4014,7 @@
- if test ! -d $i ; then
- mkdir $i
- dotest basic2-2-$i "${testcvs} add $i" \
--"Directory ${CVSROOT_DIRNAME}/.*/$i added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/.*/$i put under version control"
- fi
-
- cd $i
-@@ -4907,14 +4997,14 @@
-
- # try and list a file before it's created, during an old revision, in
- # a period when it was dead and in the future
-- time_prebirth=`date '+%Y-%m-%d %H:%M:%S'` ; sleep 1
-+ time_prebirth=`date '+%Y-%m-%d %H:%M:%S'` ; sleep 2
- touch dated
- dotest ls-D-init-1 "$testcvs -Q add dated"
- dotest ls-D-init-2 "$testcvs -Q ci -mm dated"
-- time_newborn=`date '+%Y-%m-%d %H:%M:%S'` ; sleep 1
-+ time_newborn=`date '+%Y-%m-%d %H:%M:%S'` ; sleep 2
- echo mm >> dated
- dotest ls-D-init-2 "$testcvs -Q ci -mm dated"
-- time_predeath=`date '+%Y-%m-%d %H:%M:%S'` ; sleep 1
-+ time_predeath=`date '+%Y-%m-%d %H:%M:%S'` ; sleep 2
- rm dated
- dotest ls-D-init-3 "$testcvs -Q rm dated"
- dotest ls-D-init-4 "$testcvs -Q ci -mm dated"
-@@ -4963,7 +5053,6 @@
- CVSROOT=":pserver;proxy=localhost;proxyport=8080:localhost/dev/null"
- dotest parseroot-3r "$testcvs -d'$CVSROOT' logout" \
- "Logging out of :pserver:$username@localhost:2401/dev/null
--$CPROG logout: warning: failed to open $HOME/\.cvspass for reading: No such file or directory
- $CPROG logout: Entry not found."
- CVSROOT=":pserver;proxyport=8080:localhost/dev/null"
- dotest_fail parseroot-4r "$testcvs -d'$CVSROOT' logout" \
-@@ -5010,7 +5099,7 @@
- dotest files-1 "${testcvs} -q co -l ." ""
- mkdir first-dir
- dotest files-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- touch tfile
- dotest files-3 "${testcvs} add tfile" \
-@@ -5023,7 +5112,7 @@
- dotest files-6 "${testcvs} -q update -r C" ""
- mkdir dir
- dotest files-7 "${testcvs} add dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/dir added to the repository
-+"Directory ${CVSROOT_DIRNAME}/first-dir/dir put under version control
- --> Using per-directory sticky tag .C'"
- cd dir
- touch .file
-@@ -5032,12 +5121,12 @@
- ${SPROG} add: use .${SPROG} commit. to add this file permanently"
- mkdir sdir
- dotest files-7c "${testcvs} add sdir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/dir/sdir added to the repository
-+"Directory ${CVSROOT_DIRNAME}/first-dir/dir/sdir put under version control
- --> Using per-directory sticky tag .C'"
- cd sdir
- mkdir ssdir
- dotest files-8 "${testcvs} add ssdir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/dir/sdir/ssdir added to the repository
-+"Directory ${CVSROOT_DIRNAME}/first-dir/dir/sdir/ssdir put under version control
- --> Using per-directory sticky tag .C'"
- cd ssdir
- touch .file
-@@ -5117,10 +5206,10 @@
- initial revision: 1\.1"
- mkdir 'first dir'
- dotest spacefiles-4 "${testcvs} add 'first dir'" \
--"Directory ${CVSROOT_DIRNAME}/first dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first dir put under version control"
- mkdir ./-b
- dotest spacefiles-5 "${testcvs} add -- -b" \
--"Directory ${CVSROOT_DIRNAME}/-b added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/-b put under version control"
- cd 'first dir'
- touch 'a file'
- dotest spacefiles-6 "${testcvs} add 'a file'" \
-@@ -5193,7 +5282,7 @@
- dotest status-init-1 "$testcvs -q co -l ."
- mkdir first-dir
- dotest status-init-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- echo a line >tfile
- dotest status-init-3 "${testcvs} add tfile" \
-@@ -5285,7 +5374,7 @@
- cd ..
- mkdir fourth-dir
- dotest status-init-8 "$testcvs add fourth-dir" \
--"Directory $CVSROOT_DIRNAME/fourth-dir added to the repository"
-+"Directory $CVSROOT_DIRNAME/fourth-dir put under version control"
- cd fourth-dir
- echo yet another line >t3file
- dotest status-init-9 "$testcvs add t3file" \
-@@ -5297,7 +5386,7 @@
- cd ../first-dir
- mkdir third-dir
- dotest status-init-11 "$testcvs add third-dir" \
--"Directory $CVSROOT_DIRNAME/first-dir/third-dir added to the repository"
-+"Directory $CVSROOT_DIRNAME/first-dir/third-dir put under version control"
- cd third-dir
- echo another line >t2file
- dotest status-init-12 "$testcvs add t2file" \
-@@ -5650,7 +5739,7 @@
- dotest diff-1 "$testcvs -q co -l ."
- mkdir first-dir
- dotest diff-2 "$testcvs add first-dir" \
--"Directory $CVSROOT_DIRNAME/first-dir added to the repository"
-+"Directory $CVSROOT_DIRNAME/first-dir put under version control"
- cd first-dir
-
- # diff is anomalous. Most CVS commands print the "nothing
-@@ -5697,7 +5786,7 @@
- dotest diffnl-000 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest diffnl-001 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
-
- ${AWK} 'BEGIN {printf("one\ntwo\nthree\nfour\nfive\nsix")}' </dev/null >abc
-@@ -5861,7 +5950,7 @@
- # doesn't get confused by it.
- mkdir subdir
- dotest 65a0 "${testcvs} add subdir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/subdir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir/subdir put under version control"
- cd subdir
- echo file in subdir >sfile
- dotest 65a1 "${testcvs} add sfile" \
-@@ -6590,7 +6679,7 @@
- dotest rmadd-1 "$testcvs -q co -l ."
- mkdir first-dir
- dotest rmadd-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- echo first file1 >file1
- dotest rmadd-3 "${testcvs} add file1" \
-@@ -6668,6 +6757,7 @@
- >$CVSROOT_DIRNAME/CVSROOT/val-tags-tmp
- mv $CVSROOT_DIRNAME/CVSROOT/val-tags-tmp \
- $CVSROOT_DIRNAME/CVSROOT/val-tags
-+ rm -f $CVSROOT_DIRNAME/CVSROOT/val-tags.db
-
- dotest rmadd-18 "$testcvs -q update -p -r mynonbranch file1" \
- "first file1"
-@@ -6733,7 +6823,7 @@
- # now try forced revision with recursion
- mkdir sub
- dotest rmadd-26 "${testcvs} -q add sub" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/sub added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir/sub put under version control"
- echo hello >sub/subfile
- dotest rmadd-27 "${testcvs} -q add sub/subfile" \
- "${SPROG} add: use .${SPROG} commit. to add this file permanently"
-@@ -6790,7 +6880,7 @@
- dotest rmadd2-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest rmadd2-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- echo 'initial contents' >file1
- dotest rmadd2-3 "${testcvs} add file1" \
-@@ -6890,7 +6980,7 @@
- dotest rmadd3-init1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest rmadd3-init2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
-
- echo initial content for file1 >file1
-@@ -6941,7 +7031,7 @@
- dotest resurrection-init1 "$testcvs -q co -l ." ''
- mkdir first-dir
- dotest resurrection-init2 "$testcvs add first-dir" \
--"Directory $CVSROOT_DIRNAME/first-dir added to the repository"
-+"Directory $CVSROOT_DIRNAME/first-dir put under version control"
- cd first-dir
-
- echo initial content for file1 >file1
-@@ -7106,11 +7196,11 @@
- dotest dirs2-1 "$testcvs -q co -l ."
- mkdir first-dir
- dotest dirs2-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- mkdir sdir
- dotest dirs2-3 "${testcvs} add sdir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/sdir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir/sdir put under version control"
- touch sdir/file1
- dotest dirs2-4 "${testcvs} add sdir/file1" \
- "${SPROG} add: scheduling file .sdir/file1. for addition
-@@ -7452,7 +7542,7 @@
- '"${SPROG}"' add: use .'"${SPROG}"' commit. to add this file permanently'
- mkdir dir1
- dotest branches2-9 "${testcvs} add dir1" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 added to the repository
-+"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 put under version control
- --> Using per-directory sticky tag "'`'"b1'"
- echo "file3 first revision" > dir1/file3
- dotest branches2-10 "${testcvs} add dir1/file3" \
-@@ -7802,7 +7892,7 @@
- cd first-dir
- mkdir dir2
- dotest branches2-25 "${testcvs} add dir2" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/dir2 added to the repository
-+"Directory ${CVSROOT_DIRNAME}/first-dir/dir2 put under version control
- --> Using per-directory sticky tag "'`'"b1'"
- echo "file4 first revision" > dir2/file4
- dotest branches2-26 "${testcvs} add dir2/file4" \
-@@ -7952,10 +8042,10 @@
- cd first-dir
- mkdir branches mixed mixed2 versions
- dotest branches4-2 "${testcvs} -q add branches mixed mixed2 versions" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/branches added to the repository
--Directory ${CVSROOT_DIRNAME}/first-dir/mixed added to the repository
--Directory ${CVSROOT_DIRNAME}/first-dir/mixed2 added to the repository
--Directory ${CVSROOT_DIRNAME}/first-dir/versions added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir/branches put under version control
-+Directory ${CVSROOT_DIRNAME}/first-dir/mixed put under version control
-+Directory ${CVSROOT_DIRNAME}/first-dir/mixed2 put under version control
-+Directory ${CVSROOT_DIRNAME}/first-dir/versions put under version control"
-
- echo file1 >branches/file1
- echo file2 >branches/file2
-@@ -8031,7 +8121,7 @@
- dotest tagc-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest tagc-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- touch file1 file2
- dotest tagc-3 "${testcvs} add file1 file2" \
-@@ -8052,7 +8142,7 @@
- T file2"
- # Avoid timestamp granularity bugs (FIXME: CVS should be
- # doing the sleep, right?).
-- sleep 1
-+ sleep 2
- echo myedit >>file1
- dotest tagc-6a "${testcvs} rm -f file2" \
- "${SPROG} remove: scheduling .file2. for removal
-@@ -8193,7 +8283,7 @@
- dotest tagf-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest tagf-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- touch file1 file2
- dotest tagf-3 "${testcvs} add file1 file2" \
-@@ -8397,7 +8487,7 @@
- dotest tag-space-init-1 "$testcvs -q co -l ."
- mkdir first-dir
- dotest tag-space-init-2 "$testcvs add first-dir" \
--"Directory $CVSROOT_DIRNAME/first-dir added to the repository"
-+"Directory $CVSROOT_DIRNAME/first-dir put under version control"
- cd first-dir
- touch file1
- dotest tag-space-init-3 "$testcvs add file1" \
-@@ -8672,7 +8762,7 @@
- dotest rcslib-merge-1 "$testcvs -q co -l ."
- mkdir first-dir
- dotest rcslib-merge-2 "$testcvs -q add first-dir" \
--"Directory $CVSROOT_DIRNAME.*/first-dir added to the repository"
-+"Directory $CVSROOT_DIRNAME.*/first-dir put under version control"
- cd ..; rm -r 1
-
- dotest rcslib-merge-3 "$testcvs -q co first-dir" ""
-@@ -9320,8 +9410,7 @@
- # Also the -d option.
-
- # Set a predictable time zone for these tests.
-- save_TZ=$TZ
-- TZ=UTC0; export TZ
-+ do_save_TZ
-
- mkdir 1; cd 1
- mkdir adir bdir cdir
-@@ -9444,7 +9533,7 @@
- dotest_fail importc-12 "test -d ${TESTDIR}/other" ""
-
- dokeep
-- TZ=$save_TZ
-+ do_restore_TZ
- cd ..
- rm -r 1 2
- modify_repo rm -rf $CVSROOT_DIRNAME/first-dir
-@@ -9757,7 +9846,19 @@
- N import-quirks-4/file1
- N import-quirks-4/file2
- N import-quirks-4/file3
--No conflicts created by this import"
-+No conflicts created by this import
-+cvs import: warning: you are using an even vendor branch, which can
-+lead to problems: '1.1.2'. Use an odd branch such as '1.1.3' instead." \
-+"
-+
-+N import-quirks-4/file1
-+N import-quirks-4/file2
-+N import-quirks-4/file3
-+No conflicts created by this import
-+cvs import: warning: you are using an even vendor branch, which can
-+cvs import: warning: you are using an even vendor branch, which can
-+lead to problems: '1.1.2'. Use an odd branch such as '1.1.3' instead.
-+lead to problems: '1.1.2'. Use an odd branch such as '1.1.3' instead."
-
- dokeep
- cd ..
-@@ -9785,14 +9886,18 @@
- # Create the module.
- dotest import-after-initial-1 \
- "$testcvs -Q import -m. $module X Y" ''
-+ sync >/dev/null 2>&1
-
- file=m
- # Check it out and add a file.
- dotest import-after-initial-2 "$testcvs -Q co $module" ''
-+ sync >/dev/null 2>&1
- cd $module
- echo original > $file
- dotest import-after-initial-3 "${testcvs} -Q add $file" ""
-+ sync >/dev/null 2>&1
- dotest import-after-initial-4 "$testcvs -Q ci -m. $file"
-+ sync >/dev/null 2>&1
-
- # Delay a little so the following import isn't done in the same
- # second as the preceding commit.
-@@ -9803,12 +9908,14 @@
- mkdir sub
- cd sub
- echo newer-via-import > $file
-+ sync >/dev/null 2>&1
- dotest import-after-initial-5 \
- "$testcvs -Q import -m. $module X Y2" ''
-+ sync >/dev/null 2>&1
- cd ..
-
- # Sleep a second so we're sure to be after the second of the import.
-- sleep 1
-+ sleep 2
-
- dotest import-after-initial-6 \
- "$testcvs -Q update -p -D now $file" 'original'
-@@ -10380,7 +10487,7 @@
- dotest join2-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest join2-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- echo 'initial contents of file1' >file1
- dotest join2-3 "${testcvs} add file1" \
-@@ -10489,7 +10596,7 @@
- dotest join3-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest join3-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- echo 'initial contents of file1' >file1
- dotest join3-3 "${testcvs} add file1" \
-@@ -11130,7 +11237,7 @@
- module=x
- mkdir $module
- dotest join-admin-0-2 "$testcvs -q add $module" \
--"Directory $CVSROOT_DIRNAME/$module added to the repository"
-+"Directory $CVSROOT_DIRNAME/$module put under version control"
- cd $module
-
- # Create a file so applying the first tag works.
-@@ -11182,7 +11289,7 @@
- module=x
- mkdir $module
- dotest join-admin-2-2 "$testcvs -q add $module" \
--"Directory ${CVSROOT_DIRNAME}/x added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/x put under version control"
- cd $module
-
- # Create a file so applying the first tag works.
-@@ -11252,7 +11359,7 @@
- dotest join-rm-init-1 "$testcvs -q co -l ." ''
- mkdir $module
- dotest join-rm-init-2 "$testcvs -q add $module" \
--"Directory $CVSROOT_DIRNAME/$module added to the repository"
-+"Directory $CVSROOT_DIRNAME/$module put under version control"
- cd $module
-
- # add some files.
-@@ -11497,7 +11604,7 @@
- echo add a line >>a
- mkdir dir1
- dotest conflicts-127b "${testcvs} add dir1" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 put under version control"
- dotest conflicts-128 "${testcvs} -q ci -m changed" \
- "$CVSROOT_DIRNAME/first-dir/a,v <-- a
- new revision: 1\.2; previous revision: 1\.1"
-@@ -11945,7 +12052,7 @@
- dotest conflicts3-1 "$testcvs -q co -l ."
- mkdir first-dir
- dotest conflicts3-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd ..
- mkdir 2; cd 2
- dotest conflicts3-3 "${testcvs} -q co -l first-dir" ''
-@@ -11994,7 +12101,7 @@
- # and see that CVS doesn't lose its mind.
- mkdir sdir
- dotest conflicts3-14 "${testcvs} add sdir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/sdir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir/sdir put under version control"
- touch sdir/sfile
- dotest conflicts3-14a "${testcvs} add sdir/sfile" \
- "${SPROG} add: scheduling file .sdir/sfile. for addition
-@@ -12107,7 +12214,7 @@
- dotest clean-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest clean-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- echo "The usual boring test text." > cleanme.txt
- dotest clean-3 "${testcvs} add cleanme.txt" \
-@@ -12437,12 +12544,12 @@
- cd first-dir
- mkdir subdir
- dotest modules-143a "${testcvs} add subdir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/subdir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir/subdir put under version control"
-
- cd subdir
- mkdir ssdir
- dotest modules-143b "${testcvs} add ssdir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/subdir/ssdir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir/subdir/ssdir put under version control"
-
- touch a b
-
-@@ -12699,9 +12806,9 @@
- mkdir first-dir second-dir third-dir
- dotest modules2-setup-2 \
- "${testcvs} add first-dir second-dir third-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository
--Directory ${CVSROOT_DIRNAME}/second-dir added to the repository
--Directory ${CVSROOT_DIRNAME}/third-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control
-+Directory ${CVSROOT_DIRNAME}/second-dir put under version control
-+Directory ${CVSROOT_DIRNAME}/third-dir put under version control"
- cd third-dir
- touch file3
- dotest modules2-setup-3 "${testcvs} add file3" \
-@@ -12947,7 +13054,7 @@
- dotest modules3-0 "$testcvs -q co -l ."
- mkdir first-dir
- dotest modules3-1 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
-
- cd first-dir
- echo file1 >file1
-@@ -13008,11 +13115,11 @@
- cd second-dir
- mkdir suba
- dotest modules3-7-workaround1 "${testcvs} add suba" \
--"Directory ${CVSROOT_DIRNAME}/second-dir/suba added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/second-dir/suba put under version control"
- cd suba
- mkdir subb
- dotest modules3-7-workaround2 "${testcvs} add subb" \
--"Directory ${CVSROOT_DIRNAME}/second-dir/suba/subb added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/second-dir/suba/subb put under version control"
- cd ../..
- fi
-
-@@ -13113,13 +13220,13 @@
- dotest modules4-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest modules4-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
-
- cd first-dir
- mkdir subdir subdir_long
- dotest modules4-3 "${testcvs} add subdir subdir_long" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/subdir added to the repository
--Directory ${CVSROOT_DIRNAME}/first-dir/subdir_long added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir/subdir put under version control
-+Directory ${CVSROOT_DIRNAME}/first-dir/subdir_long put under version control"
-
- echo file1 > file1
- dotest modules4-4 "${testcvs} add file1" \
-@@ -13248,11 +13355,11 @@
- cd first-dir
- mkdir subdir
- dotest modules5-2 "${testcvs} add subdir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/subdir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir/subdir put under version control"
- cd subdir
- mkdir ssdir
- dotest modules5-3 "${testcvs} add ssdir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/subdir/ssdir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir/subdir/ssdir put under version control"
- touch a b
- dotest modules5-4 "${testcvs} add a b" \
- "${SPROG} add: scheduling file .a. for addition
-@@ -13291,7 +13398,7 @@
- for i in checkout export tag; do
- cat >> ${CVSROOT_DIRNAME}/$i.sh <<EOF
- #! $TESTSHELL
--sleep 1
-+sleep 2
- echo "$i script invoked in \`pwd\`"
- echo "args: \$@"
- EOF
-@@ -13950,12 +14057,12 @@
- mkdir mod2-2
- mkdir mod2-2/sub2-2
- dotest cvsadm-2a "${testcvs} add mod1 mod1-2 mod2 mod2/sub2 mod2-2 mod2-2/sub2-2" \
--"Directory ${CVSROOT_DIRNAME}/mod1 added to the repository
--Directory ${CVSROOT_DIRNAME}/mod1-2 added to the repository
--Directory ${CVSROOT_DIRNAME}/mod2 added to the repository
--Directory ${CVSROOT_DIRNAME}/mod2/sub2 added to the repository
--Directory ${CVSROOT_DIRNAME}/mod2-2 added to the repository
--Directory ${CVSROOT_DIRNAME}/mod2-2/sub2-2 added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/mod1 put under version control
-+Directory ${CVSROOT_DIRNAME}/mod1-2 put under version control
-+Directory ${CVSROOT_DIRNAME}/mod2 put under version control
-+Directory ${CVSROOT_DIRNAME}/mod2/sub2 put under version control
-+Directory ${CVSROOT_DIRNAME}/mod2-2 put under version control
-+Directory ${CVSROOT_DIRNAME}/mod2-2/sub2-2 put under version control"
-
- # Populate the directories for the halibut
- echo "file1" > mod1/file1
-@@ -15001,7 +15108,7 @@
- echo "file1" > mod1/file1
- mkdir moda/modasub
- dotest emptydir-3b "${testcvs} add moda/modasub" \
--"Directory ${CVSROOT_DIRNAME}/moda/modasub added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/moda/modasub put under version control"
- echo "filea" > moda/modasub/filea
- dotest emptydir-4 "${testcvs} add mod1/file1 moda/modasub/filea" \
- "${SPROG} add: scheduling file .mod1/file1. for addition
-@@ -15328,8 +15435,8 @@
- dotest toplevel-1 "${testcvs} -q co -l ." ''
- mkdir top-dir second-dir
- dotest toplevel-2 "${testcvs} add top-dir second-dir" \
--"Directory ${CVSROOT_DIRNAME}/top-dir added to the repository
--Directory ${CVSROOT_DIRNAME}/second-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/top-dir put under version control
-+Directory ${CVSROOT_DIRNAME}/second-dir put under version control"
- cd top-dir
-
- touch file1
-@@ -15447,8 +15554,8 @@
- dotest toplevel2-1 "${testcvs} -q co -l ." ''
- mkdir top-dir second-dir
- dotest toplevel2-2 "${testcvs} add top-dir second-dir" \
--"Directory ${CVSROOT_DIRNAME}/top-dir added to the repository
--Directory ${CVSROOT_DIRNAME}/second-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/top-dir put under version control
-+Directory ${CVSROOT_DIRNAME}/second-dir put under version control"
- cd top-dir
-
- touch file1
-@@ -15686,7 +15793,7 @@
- # can see the "CVS:" lines.
- cat >${TESTDIR}/editme <<EOF
- #!${TESTSHELL}
--sleep 1
-+sleep 2
- sed <\$1 -e 's/^/x/' >${TESTDIR}/edit.new
- mv ${TESTDIR}/edit.new \$1
- exit 0
-@@ -15697,7 +15804,7 @@
- dotest editor-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest editor-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- touch file1 file2
- dotest editor-3 "${testcvs} add file1 file2" \
-@@ -15741,6 +15848,7 @@
- revision 1\.1
- date: ${ISO8601DATE}; author: ${username}; state: Exp; commitid: ${commitid};
- branches: 1\.1\.2;
-+x
- xCVS: ----------------------------------------------------------------------
- xCVS: Enter Log. Lines beginning with .CVS:. are removed automatically
- xCVS:
-@@ -15752,6 +15860,7 @@
- ----------------------------
- revision 1\.1\.2\.1
- date: ${ISO8601DATE}; author: ${username}; state: Exp; lines: ${PLUS}1 -0; commitid: ${commitid};
-+x
- xCVS: ----------------------------------------------------------------------
- xCVS: Enter Log. Lines beginning with .CVS:. are removed automatically
- xCVS:
-@@ -15779,6 +15888,7 @@
- revision 1\.1
- date: ${ISO8601DATE}; author: ${username}; state: Exp; commitid: ${commitid};
- branches: 1\.1\.2;
-+x
- xCVS: ----------------------------------------------------------------------
- xCVS: Enter Log. Lines beginning with .CVS:. are removed automatically
- xCVS:
-@@ -15790,6 +15900,7 @@
- ----------------------------
- revision 1\.1\.2\.1
- date: ${ISO8601DATE}; author: ${username}; state: Exp; lines: ${PLUS}1 -0; commitid: ${commitid};
-+x
- xCVS: ----------------------------------------------------------------------
- xCVS: Enter Log. Lines beginning with .CVS:. are removed automatically
- xCVS:
-@@ -15811,6 +15922,7 @@
- revision 1\.1
- date: ${ISO8601DATE}; author: ${username}; state: Exp; commitid: ${commitid};
- branches: 1\.1\.2;
-+x
- xCVS: ----------------------------------------------------------------------
- xCVS: Enter Log. Lines beginning with .CVS:. are removed automatically
- xCVS:
-@@ -15822,6 +15934,7 @@
- ----------------------------
- revision 1\.1\.2\.1
- date: ${ISO8601DATE}; author: ${username}; state: Exp; lines: ${PLUS}1 -0; commitid: ${commitid};
-+x
- xCVS: ----------------------------------------------------------------------
- xCVS: Enter Log. Lines beginning with .CVS:. are removed automatically
- xCVS:
-@@ -15836,7 +15949,7 @@
- # Test CVS's response to an unchanged log message
- cat >${TESTDIR}/editme <<EOF
- #!${TESTSHELL}
--sleep 1
-+sleep 2
- exit 0
- EOF
- chmod +x ${TESTDIR}/editme
-@@ -15849,7 +15962,7 @@
- # Test CVS's response to an empty log message
- cat >${TESTDIR}/editme <<EOF
- #!${TESTSHELL}
--sleep 1
-+sleep 2
- cat /dev/null >\$1
- exit 0
- EOF
-@@ -15863,7 +15976,7 @@
- # Test CVS's response to a log message with one blank line
- cat >${TESTDIR}/editme <<EOF
- #!${TESTSHELL}
--sleep 1
-+sleep 2
- echo >\$1
- exit 0
- EOF
-@@ -15877,7 +15990,7 @@
- # Test CVS's response to a log message with only comments
- cat >${TESTDIR}/editme <<EOF
- #!${TESTSHELL}
--sleep 1
-+sleep 2
- cat \$1 >${TESTDIR}/edit.new
- mv ${TESTDIR}/edit.new \$1
- exit 0
-@@ -15905,7 +16018,7 @@
- cd ../first-dir
- cat >${TESTDIR}/editme <<EOF
- #!${TESTSHELL}
--sleep 1
-+sleep 2
- cp /dev/null \$1
- exit 1
- EOF
-@@ -16065,7 +16178,7 @@
- cd ..
- mkdir env
- dotest env-3 "${testcvs} -q add env" \
--"Directory ${CVSROOT_DIRNAME}/env added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/env put under version control"
- cd env
- echo testing >file1
- dotest env-4 "${testcvs} add file1" \
-@@ -16159,7 +16272,7 @@
- dotest errmsg2-1 "$testcvs -q co -l ."
- mkdir first-dir
- dotest errmsg2-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- dotest_fail errmsg2-3 "${testcvs} add CVS" \
- "${CPROG} add: cannot add special file .CVS.; skipping"
-@@ -16189,7 +16302,7 @@
- mkdir sdir
- cd ..
- dotest errmsg2-8 "${testcvs} add first-dir/sdir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/sdir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir/sdir put under version control"
- # while we're here... check commit with no CVS directory
- dotest_fail errmsg2-8a "${testcvs} -q ci first-dir nonexistant" \
- "${CPROG} commit: nothing known about .nonexistant'
-@@ -16205,7 +16318,7 @@
- mkdir sdir10
- dotest errmsg2-10 "${testcvs} add file10 sdir10" \
- "${SPROG} add: scheduling file .file10. for addition
--Directory ${CVSROOT_DIRNAME}/first-dir/sdir10 added to the repository
-+Directory ${CVSROOT_DIRNAME}/first-dir/sdir10 put under version control
- ${SPROG} add: use .${SPROG} commit. to add this file permanently"
- dotest errmsg2-11 "${testcvs} -q ci -m add-file10" \
- "$CVSROOT_DIRNAME/first-dir/file10,v <-- file10
-@@ -16219,7 +16332,7 @@
- cd ..
- mkdir first-dir/sdir10/ssdir
- dotest errmsg2-13 "${testcvs} add first-dir/sdir10/ssdir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/sdir10/ssdir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir/sdir10/ssdir put under version control"
-
- touch first-dir/sdir10/ssdir/ssfile
- dotest errmsg2-14 \
-@@ -16360,7 +16473,7 @@
- dotest adderrmsg-init1 "${testcvs} -q co -l ." ''
- mkdir adderrmsg-dir
- dotest adderrmsg-init2 "${testcvs} add adderrmsg-dir" \
--"Directory ${CVSROOT_DIRNAME}/adderrmsg-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/adderrmsg-dir put under version control"
- cd adderrmsg-dir
-
- # try to add the admin dir
-@@ -16839,7 +16952,7 @@
- dotest watch4-0a "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest watch4-0b "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
-
- cd first-dir
- dotest watch4-1 "${testcvs} watch on" ''
-@@ -16854,7 +16967,7 @@
- # Now test the analogous behavior for directories.
- mkdir subdir
- dotest watch4-4 "${testcvs} add subdir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/subdir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir/subdir put under version control"
- cd subdir
- touch sfile
- dotest watch4-5 "${testcvs} add sfile" \
-@@ -16945,7 +17058,7 @@
- dotest watch5-0a "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest watch5-0b "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
-
- cd first-dir
- dotest watch5-1 "${testcvs} watch on" ''
-@@ -17125,7 +17238,7 @@
- dotest edit-check-0a "$testcvs -q co -l ."
- mkdir first-dir
- dotest edit-check-0b "$testcvs add first-dir" \
--"Directory $CVSROOT_DIRNAME/first-dir added to the repository"
-+"Directory $CVSROOT_DIRNAME/first-dir put under version control"
-
- cd first-dir
- dotest edit-check-1 "$testcvs watch on"
-@@ -17243,7 +17356,7 @@
-
- # Manually fake another editor:
-
-- # Try to gaurantee a seperate name for an "other" user editting
-+ # Try to guarantee a seperate name for an "other" user editing
- # the file.
- otherUser="dummyUser"
- if [ x"$USER" = x"$otherUser" ] ; then
-@@ -17374,7 +17487,7 @@
-
- mkdir second-dir
- dotest edit-check-32c "$testcvs add second-dir" \
--"Directory $CVSROOT_DIRNAME/first-dir/second-dir added to the repository"
-+"Directory $CVSROOT_DIRNAME/first-dir/second-dir put under version control"
- cd second-dir
- echo ThirdFile >file3
-
-@@ -18770,7 +18883,7 @@
- dotest mwrap-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest mwrap-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- touch aa
- dotest mwrap-3 "${testcvs} add aa" \
-@@ -19180,7 +19293,7 @@
- exit 0
- else
- echo "No BugId found."
-- sleep 1
-+ sleep 2
- exit 1
- fi
- EOF
-@@ -19747,7 +19860,7 @@
- dotest taginfo-newfmt-8 "${testcvs} -q tag tag1" ""
- mkdir sdir
- dotest taginfo-newfmt-8b "${testcvs} -q add sdir" \
--"Directory ${TESTDIR}/cvsroot/first-dir/sdir added to the repository"
-+"Directory ${TESTDIR}/cvsroot/first-dir/sdir put under version control"
- touch sdir/file3
- dotest taginfo-newfmt-8c "${testcvs} -q add sdir/file3" \
- "${SPROG} add: use .${SPROG} commit. to add this file permanently"
-@@ -20043,7 +20156,7 @@
- new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
- $SPROG commit: Rebuilding administrative file database"
-
-- sleep 1
-+ sleep 2
- echo '# noop' >> config
- dotest config-7 "$testcvs -q ci -mlog-commit" \
- "$CVSROOT_DIRNAME/CVSROOT/config,v <-- config
-@@ -21586,7 +21699,7 @@
- dotest logopt-1 "$testcvs -q co -l ." ''
- mkdir first-dir
- dotest logopt-2 "$testcvs add first-dir" \
--"Directory $CVSROOT_DIRNAME/first-dir added to the repository"
-+"Directory $CVSROOT_DIRNAME/first-dir put under version control"
- cd first-dir
- echo hi >file1
- dotest logopt-3 "${testcvs} add file1" \
-@@ -21631,7 +21744,7 @@
- dotest ann-1 "$testcvs -q co -l ."
- mkdir first-dir
- dotest ann-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- cat >file1 <<EOF
- this
-@@ -21811,7 +21924,7 @@
- module=x
- mkdir $module
- dotest ann-id-2 "${testcvs} add $module" \
--"Directory ${CVSROOT_DIRNAME}/$module added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/$module put under version control"
- cd $module
-
- file=m
-@@ -21946,9 +22059,10 @@
- # can look up '..' and want to ask the user about the unknown host
- # key or somesuch. Which error message we get depends on whether
- # false finishes running before we try to talk to it or not.
-+ # We don't even get to talk to it as of 1.12.13-MirOS-0AB8.2 tho.
- dotest_fail crerepos-6a "CVS_RSH=false ${testcvs} -q -d ../crerepos get ." \
--"${SPROG} \[checkout aborted\]: end of file from server (consult above messages if any)" \
--"${SPROG} \[checkout aborted\]: received broken pipe signal"
-+"${SPROG} checkout: Missing or bad hostname in CVSROOT\.
-+${SPROG} \[checkout aborted\]: Bad CVSROOT: .\.\./crerepos.\."
- cd ..
- rm -r 1
-
-@@ -21972,7 +22086,7 @@
- dotest crerepos-8 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest crerepos-9 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- touch file1
- dotest crerepos-10 "${testcvs} add file1" \
-@@ -21988,7 +22102,7 @@
- dotest crerepos-12 "$testcvs -d $CREREPOS_ROOT -q co -l ."
- mkdir crerepos-dir
- dotest crerepos-13 "$testcvs add crerepos-dir" \
--"Directory $TESTDIR/crerepos/crerepos-dir added to the repository"
-+"Directory $TESTDIR/crerepos/crerepos-dir put under version control"
- cd crerepos-dir
- touch cfile
- dotest crerepos-14 "${testcvs} add cfile" \
-@@ -22039,8 +22153,7 @@
-
- # Save the timezone and set it to UTC for these tests to make the
- # value more predicatable.
-- save_TZ=$TZ
-- TZ=UTC0; export TZ
-+ do_save_TZ
-
- modify_repo mkdir $CVSROOT_DIRNAME/first-dir
-
-@@ -22517,7 +22630,7 @@
- revision 1\.4"
-
- dokeep
-- TZ=$save_TZ
-+ do_restore_TZ
- cd ..
- rm -r first-dir
- modify_repo rm -rf $CVSROOT_DIRNAME/first-dir
-@@ -22707,8 +22820,7 @@
- # revisions 1.1 and 1.1.1.1 differ by 1 second.
-
- # Need a predictable time zone.
-- save_TZ=$TZ
-- TZ=UTC0; export TZ
-+ do_save_TZ
-
- mkdir rcs4
- cd rcs4
-@@ -22766,7 +22878,7 @@
- Sticky Options: (none)'
-
- dokeep
-- TZ=$save_TZ
-+ do_restore_TZ
- cd ../..
- rm -r rcs4
- modify_repo rm -rf $CVSROOT_DIRNAME/rcs4-dir
-@@ -23087,11 +23199,11 @@
- dotest backuprecover-1 "$testcvs -q co -l ."
- mkdir first-dir
- dotest backuprecover-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- mkdir dir
- dotest backuprecover-3 "${testcvs} add dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir/dir put under version control"
- touch file1 dir/file2
- dotest backuprecover-4 "${testcvs} -q add file1 dir/file2" \
- "${SPROG} add: use \`${SPROG} commit' to add these files permanently"
-@@ -23348,7 +23460,7 @@
- dotest sshstdio-1 "$testcvs -d $SSHSTDIO_ROOT -q co -l ."
- mkdir first-dir
- dotest sshstdio-2 "$testcvs add first-dir" \
-- "Directory $CVSROOT_DIRNAME/first-dir added to the repository"
-+ "Directory $CVSROOT_DIRNAME/first-dir put under version control"
- cd first-dir
- a='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
- c='aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaacaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
-@@ -23497,7 +23609,7 @@
- dotest parseroot3-9 "$testcvs -Q co -ldtop ."
- dotest parseroot3-10 "test -d top"
- dotest parseroot3-11 "test -d top/CVS"
-- dotest parseroot3-10 "cat top/CVS/Root" "$CVSROOT"
-+ dotest parseroot3-12 "cat top/CVS/Root" "$CVSROOT"
-
- dokeep
- cd ..
-@@ -23526,16 +23638,17 @@
- continue
- fi
-
-+ # times have been tweaked so leap seconds don't matter
- cat <<EOF >$CVSROOT_DIRNAME/CVSROOT/history
--O3395c677|anonymous|<remote>/*0|ccvs||ccvs
-+O3395c684|anonymous|<remote>/*0|ccvs||ccvs
- O3396c677|anonymous|<remote>/src|ccvs||src
- O3397c677|kingdon|<remote>/*0|ccvs||ccvs
- M339cafae|nk|<remote>|ccvs/src|1.229|sanity.sh
--M339cafff|anonymous|<remote>|ccvs/src|1.23|Makefile
-+M339cb00c|anonymous|<remote>|ccvs/src|1.23|Makefile
- M339dc339|kingdon|~/work/*0|ccvs/src|1.231|sanity.sh
- W33a6eada|anonymous|<remote>*4|ccvs/emx||Makefile.in
- C3b235f50|kingdon|<remote>|ccvs/emx|1.3|README
--M3b23af50|kingdon|~/work/*0|ccvs/doc|1.281|cvs.texinfo
-+M3b23af62|kingdon|~/work/*0|ccvs/doc|1.281|cvs.texinfo
- EOF
-
- dotest history-1 "${testcvs} history -e -a" \
-@@ -23691,7 +23804,7 @@
- dotest modes-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest modes-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- touch aa
- dotest modes-3 "${testcvs} add aa" \
-@@ -23817,7 +23930,7 @@
- dotest modes2-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest modes2-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- touch aa
- dotest modes2-3 "${testcvs} add aa" \
-@@ -23864,8 +23977,8 @@
- dotest modes3-1 "$testcvs -q co -l ."
- mkdir first-dir second-dir
- dotest modes3-2 "${testcvs} add first-dir second-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository
--Directory ${CVSROOT_DIRNAME}/second-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control
-+Directory ${CVSROOT_DIRNAME}/second-dir put under version control"
- touch first-dir/aa second-dir/ab
- dotest modes3-3 "${testcvs} add first-dir/aa second-dir/ab" \
- "${SPROG} add: scheduling file .first-dir/aa. for addition
-@@ -23944,7 +24057,7 @@
- dotest stamps-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest stamps-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- touch aa
- echo '$''Id$' >kw
-@@ -24073,7 +24186,7 @@
- dotest perms-1 "$testcvs -q co -l ."
- mkdir first-dir
- dotest perms-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
-
- touch foo
-@@ -24115,7 +24228,7 @@
- dotest symlinks-1 "$testcvs -q co -l ."
- mkdir first-dir
- dotest symlinks-2 "$testcvs add first-dir" \
--"Directory $CVSROOT_DIRNAME/first-dir added to the repository"
-+"Directory $CVSROOT_DIRNAME/first-dir put under version control"
- cd first-dir
-
- dotest symlinks-2.1 "ln -s $TESTDIR/fumble slink"
-@@ -24158,7 +24271,7 @@
- dotest symlinks2-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest symlinks2-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- echo nonsymlink > slink
- dotest symlinks2-3 "${testcvs} add slink" \
-@@ -24196,7 +24309,7 @@
- dotest hardlinks-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest hardlinks-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
-
- # Make up some ugly filenames, to test that they get
-@@ -24285,7 +24398,7 @@
- dotest sticky-1 "$testcvs -q co -l ."
- mkdir first-dir
- dotest sticky-2 "$testcvs add first-dir" \
--"Directory $CVSROOT_DIRNAME/first-dir added to the repository"
-+"Directory $CVSROOT_DIRNAME/first-dir put under version control"
- cd first-dir
-
- touch file1
-@@ -24390,7 +24503,7 @@
- dotest keyword-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest keyword-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
-
- echo '$''Author$' > file1
-@@ -24595,7 +24708,7 @@
- dotest keywordlog-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest keywordlog-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- echo initial >file1
- dotest keywordlog-3 "${testcvs} add file1" \
-@@ -24852,7 +24965,7 @@
- xx"
-
- cd ../CVSROOT
-- echo "MaxCommentLeaderLength=1k" >>config
-+ echo "MaxCommentLeaderLength=1K" >>config
- dotest keywordlog-35 "$testcvs -Q ci -mset-MaxCommentLeaderLength"
-
- cd ../first-dir
-@@ -24892,7 +25005,7 @@
- dotest keywordname-init-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest keywordname-init-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
-
- echo '$'"Name$" >file1
-@@ -25012,7 +25125,7 @@
- dotest keyword2-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest keyword2-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
-
- echo '$''Revision$' >> file1
-@@ -25214,7 +25327,7 @@
- ${PLUS} modify on branch
- ${PLUS} modify on branch after brtag"
-
-- # With a branch sticky tag, HEAD is the head of the trunk.
-+ # Even with a branch sticky tag, HEAD is the head of the trunk.
- dotest head-br1-setup "${testcvs} -q update -r br1" "[UP] file1"
- dotest head-br1-update "${testcvs} -q update -r HEAD -p file1" \
- "imported contents
-@@ -25222,7 +25335,26 @@
- add a line on trunk after trunktag"
- # But diff thinks that HEAD is "br1". Case (b) from cvs.texinfo.
- # Probably people are relying on it.
-- dotest head-br1-diff "${testcvs} -q diff -c -r HEAD -r br1" ""
-+ #dotest head-br1-diff "${testcvs} -q diff -c -r HEAD -r br1" ""
-+ dotest head-br1-diffdot "${testcvs} -q diff -c -r .bhead -r br1" ""
-+ # Always. Fuck people relying on it.
-+ dotest_fail head-br1-diff "${testcvs} -q diff -c -r HEAD -r br1" \
-+"Index: file1
-+===================================================================
-+RCS file: ${CVSROOT_DIRNAME}/first-dir/file1,v
-+retrieving revision 1\.3
-+retrieving revision 1\.3\.2\.2
-+diff -c -r1\.3 -r1\.3\.2\.2
-+\*\*\* file1 ${RFCDATE} 1\.3
-+--- file1 ${RFCDATE} 1\.3\.2\.2
-+\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
-+\*\*\* 1,3 \*\*\*\*
-+--- 1,5 ----
-+ imported contents
-+ add a line on trunk
-+ add a line on trunk after trunktag
-+${PLUS} modify on branch
-+${PLUS} modify on branch after brtag"
-
- # With a nonbranch sticky tag on a branch,
- # HEAD is the head of the trunk
-@@ -25235,7 +25367,26 @@
- # CVS 1.9 and older thought that HEAD is "brtag" (this was
- # noted as "strange, maybe accidental"). But "br1" makes a
- # whole lot more sense.
-- dotest head-brtag-diff "${testcvs} -q diff -c -r HEAD -r br1" ""
-+ #dotest head-brtag-diff "${testcvs} -q diff -c -r HEAD -r br1" ""
-+ dotest head-brtag-diffdot "${testcvs} -q diff -c -r .bhead -r br1" ""
-+ # HEAD is always tip of the trunk.
-+ dotest_fail head-brtag-diff "${testcvs} -q diff -c -r HEAD -r br1" \
-+"Index: file1
-+===================================================================
-+RCS file: ${CVSROOT_DIRNAME}/first-dir/file1,v
-+retrieving revision 1\.3
-+retrieving revision 1\.3\.2\.2
-+diff -c -r1\.3 -r1\.3\.2\.2
-+\*\*\* file1 ${RFCDATE} 1\.3
-+--- file1 ${RFCDATE} 1\.3\.2\.2
-+\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
-+\*\*\* 1,3 \*\*\*\*
-+--- 1,5 ----
-+ imported contents
-+ add a line on trunk
-+ add a line on trunk after trunktag
-+${PLUS} modify on branch
-+${PLUS} modify on branch after brtag"
-
- # With a nonbranch sticky tag on the trunk, HEAD is the head
- # of the trunk, I think.
-@@ -25319,12 +25470,11 @@
- # for checkout and update as well.
- #
- mkdir 1; cd 1
-- save_TZ=$TZ
-- TZ=UTC0; export TZ
-+ do_save_TZ
- dotest tagdate-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest tagdate-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
-
- echo trunk-1 >file1
-@@ -25784,7 +25934,7 @@
-
- unset date_T1 date_T2 date_T3 date_T4 date_T5
- unset date_T6 date_T7 date_T8 date_T9
-- TZ=$save_TZ
-+ do_restore_TZ
-
- dokeep
- rm -r 1 2 3 4
-@@ -25802,7 +25952,7 @@
- dotest multibranch2-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest multibranch2-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
-
- echo trunk-1 >file1
-@@ -26038,7 +26188,7 @@
- dotest admin-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest admin-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
-
- dotest_fail admin-3 "${testcvs} -q admin -i file1" \
-@@ -27002,7 +27152,7 @@
- dotest reserved-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest reserved-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- touch file1
- dotest reserved-3 "${testcvs} add file1" \
-@@ -28061,18 +28211,18 @@
- dotest release-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest release-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- mkdir dir1
- dotest release-3 "${testcvs} add dir1" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 put under version control"
- mkdir dir2
- dotest release-4 "${testcvs} add dir2" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/dir2 added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir/dir2 put under version control"
- cd dir2
- mkdir dir3
- dotest release-5 "${testcvs} add dir3" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/dir2/dir3 added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir/dir2/dir3 put under version control"
-
- cd ../..
- dotest release-6 "${testcvs} release -d first-dir/dir2/dir3 first-dir/dir1" \
-@@ -28093,11 +28243,11 @@
- cd first-dir
- mkdir dir1
- dotest release-10 "${testcvs} add dir1" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir/dir1 put under version control"
- cd dir2
- mkdir dir3
- dotest release-11 "${testcvs} add dir3" \
--"Directory ${CVSROOT_DIRNAME}/first-dir/dir2/dir3 added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir/dir2/dir3 put under version control"
-
- cd ../..
- dotest release-12 "${testcvs} release first-dir/dir2/dir3 first-dir/dir1" \
-@@ -28148,7 +28298,7 @@
- cd first-dir
- mkdir second-dir
- dotest release-18 "$testcvs add second-dir" \
--"Directory $CVSROOT_DIRNAME/first-dir/second-dir added to the repository"
-+"Directory $CVSROOT_DIRNAME/first-dir/second-dir put under version control"
-
- cd second-dir
- touch file1
-@@ -28756,8 +28906,34 @@
- testcvs2="$testcvs -d '$CVSROOT2'"
-
- dotest multiroot-setup-1 "mkdir $CVSROOT1_DIRNAME $CVSROOT2_DIRNAME"
-+
- dotest multiroot-setup-2 "$testcvs1 init"
-+ # remove automatically-created LogHistory to work around the fact
-+ # that CVS does not track those per root (and thus warns about
-+ # encountering multiple of these entries)
-+ mkdir wrkarnd; cd wrkarnd
-+ dotest multiroot-setup-2a "$testcvs1 -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
-+ cd CVSROOT
-+ sed -e '/^LogHistory/d' <config >tmpconfig
-+ mv tmpconfig config
-+ dotest multiroot-setup-2b "$testcvs1 -q ci -m workaround-LogHistory" "" \
-+".*/CVSROOT/config,v <-- config
-+new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
-+$SPROG commit: Rebuilding administrative file database"
-+ cd ../..; rm -r wrkarnd
-+
- dotest multiroot-setup-3 "$testcvs2 init"
-+ # remove automatically-created LogHistory (see above)
-+ mkdir wrkarnd; cd wrkarnd
-+ dotest multiroot-setup-3a "$testcvs2 -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
-+ cd CVSROOT
-+ sed -e '/^LogHistory/d' <config >tmpconfig
-+ mv tmpconfig config
-+ dotest multiroot-setup-3b "$testcvs2 -q ci -m workaround-LogHistory" "" \
-+".*/CVSROOT/config,v <-- config
-+new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
-+$SPROG commit: Rebuilding administrative file database"
-+ cd ../..; rm -r wrkarnd
-
- #
- # create some directories in ${CVSROOT1_DIRNAME}
-@@ -28766,8 +28942,8 @@
- dotest multiroot-setup-4 "${testcvs1} co -l ." "${SPROG} checkout: Updating ."
- mkdir mod1-1 mod1-2
- dotest multiroot-setup-5 "${testcvs1} add mod1-1 mod1-2" \
--"Directory ${CVSROOT1_DIRNAME}/mod1-1 added to the repository
--Directory ${CVSROOT1_DIRNAME}/mod1-2 added to the repository"
-+"Directory ${CVSROOT1_DIRNAME}/mod1-1 put under version control
-+Directory ${CVSROOT1_DIRNAME}/mod1-2 put under version control"
- echo file1-1 > mod1-1/file1-1
- echo file1-2 > mod1-2/file1-2
- dotest multiroot-setup-6 "${testcvs1} add mod1-1/file1-1 mod1-2/file1-2" \
-@@ -28792,8 +28968,8 @@
- dotest multiroot-setup-8 "${testcvs2} co -l ." "${SPROG} checkout: Updating ."
- mkdir mod2-1 mod2-2
- dotest multiroot-setup-9 "${testcvs2} add mod2-1 mod2-2" \
--"Directory ${CVSROOT2_DIRNAME}/mod2-1 added to the repository
--Directory ${CVSROOT2_DIRNAME}/mod2-2 added to the repository"
-+"Directory ${CVSROOT2_DIRNAME}/mod2-1 put under version control
-+Directory ${CVSROOT2_DIRNAME}/mod2-2 put under version control"
- echo file2-1 > mod2-1/file2-1
- echo file2-2 > mod2-2/file2-2
- dotest multiroot-setup-6 "${testcvs2} add mod2-1/file2-1 mod2-2/file2-2" \
-@@ -29861,7 +30037,29 @@
- CVSROOT2=`newroot $CVSROOT2_DIRNAME`
-
- dotest multiroot2-1 "${testcvs} -d ${CVSROOT1} init" ""
-+ # remove automatically-created LogHistory (see above)
-+ mkdir wrkarnd; cd wrkarnd
-+ dotest multiroot2-1a "$testcvs -d ${CVSROOT1} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
-+ cd CVSROOT
-+ sed -e '/^LogHistory/d' <config >tmpconfig
-+ mv tmpconfig config
-+ dotest multiroot2-1b "$testcvs -d ${CVSROOT1} -q ci -m workaround-LogHistory" "" \
-+".*/CVSROOT/config,v <-- config
-+new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
-+$SPROG commit: Rebuilding administrative file database"
-+ cd ../..; rm -r wrkarnd
- dotest multiroot2-2 "${testcvs} -d ${CVSROOT2} init" ""
-+ # remove automatically-created LogHistory (see above)
-+ mkdir wrkarnd; cd wrkarnd
-+ dotest multiroot2-2a "$testcvs -d ${CVSROOT2} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
-+ cd CVSROOT
-+ sed -e '/^LogHistory/d' <config >tmpconfig
-+ mv tmpconfig config
-+ dotest multiroot2-2b "$testcvs -d ${CVSROOT2} -q ci -m workaround-LogHistory" "" \
-+".*/CVSROOT/config,v <-- config
-+new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
-+$SPROG commit: Rebuilding administrative file database"
-+ cd ../..; rm -r wrkarnd
-
- mkdir imp-dir; cd imp-dir
- echo file1 >file1
-@@ -30017,12 +30215,34 @@
-
- mkdir 1; cd 1
- dotest multiroot3-1 "${testcvs} -d ${CVSROOT1} init" ""
-+ # remove automatically-created LogHistory (see above)
-+ mkdir wrkarnd; cd wrkarnd
-+ dotest multiroot3-1a "$testcvs -d ${CVSROOT1} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
-+ cd CVSROOT
-+ sed -e '/^LogHistory/d' <config >tmpconfig
-+ mv tmpconfig config
-+ dotest multiroot3-1b "$testcvs -d ${CVSROOT1} -q ci -m workaround-LogHistory" "" \
-+".*/CVSROOT/config,v <-- config
-+new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
-+$SPROG commit: Rebuilding administrative file database"
-+ cd ../..; rm -r wrkarnd
- dotest multiroot3-2 "${testcvs} -d ${CVSROOT1} -q co -l ." ""
- mkdir dir1
- dotest multiroot3-3 "${testcvs} add dir1" \
--"Directory ${TESTDIR}/root1/dir1 added to the repository"
-+"Directory ${TESTDIR}/root1/dir1 put under version control"
- dotest multiroot3-4 "${testcvs} -d ${CVSROOT2} init" ""
- rm -r CVS
-+ # remove automatically-created LogHistory (see above)
-+ mkdir wrkarnd; cd wrkarnd
-+ dotest multiroot3-4a "$testcvs -d ${CVSROOT2} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
-+ cd CVSROOT
-+ sed -e '/^LogHistory/d' <config >tmpconfig
-+ mv tmpconfig config
-+ dotest multiroot3-4b "$testcvs -d ${CVSROOT2} -q ci -m workaround-LogHistory" "" \
-+".*/CVSROOT/config,v <-- config
-+new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
-+$SPROG commit: Rebuilding administrative file database"
-+ cd ../..; rm -r wrkarnd
- dotest multiroot3-5 "${testcvs} -d ${CVSROOT2} -q co -l ." ""
- mkdir dir2
-
-@@ -30037,7 +30257,7 @@
- echo "D/dir2////" >>CVS/Entries
-
- dotest multiroot3-7 "${testcvs} add dir2" \
--"Directory ${TESTDIR}/root2/dir2 added to the repository"
-+"Directory ${TESTDIR}/root2/dir2 put under version control"
-
- touch dir1/file1 dir2/file2
- if $remote; then
-@@ -30143,10 +30363,21 @@
-
- mkdir 1; cd 1
- dotest multiroot4-1 "${testcvs} -d ${CVSROOT1} init" ""
-+ # remove automatically-created LogHistory (see above)
-+ mkdir wrkarnd; cd wrkarnd
-+ dotest multiroot4-1a "$testcvs -d ${CVSROOT1} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
-+ cd CVSROOT
-+ sed -e '/^LogHistory/d' <config >tmpconfig
-+ mv tmpconfig config
-+ dotest multiroot4-1b "$testcvs -d ${CVSROOT1} -q ci -m workaround-LogHistory" "" \
-+".*/CVSROOT/config,v <-- config
-+new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
-+$SPROG commit: Rebuilding administrative file database"
-+ cd ../..; rm -r wrkarnd
- dotest multiroot4-2 "${testcvs} -d ${CVSROOT1} -q co -l ." ""
- mkdir dircom
- dotest multiroot4-3 "${testcvs} add dircom" \
--"Directory ${TESTDIR}/root1/dircom added to the repository"
-+"Directory ${TESTDIR}/root1/dircom put under version control"
- cd dircom
- touch file1
- dotest multiroot4-4 "${testcvs} add file1" \
-@@ -30158,10 +30389,21 @@
- cd ../..
- mkdir 2; cd 2
- dotest multiroot4-6 "${testcvs} -d ${CVSROOT2} init" ""
-+ # remove automatically-created LogHistory (see above)
-+ mkdir wrkarnd; cd wrkarnd
-+ dotest multiroot4-6a "$testcvs -d ${CVSROOT2} -q co CVSROOT" "[UP] CVSROOT${DOTSTAR}"
-+ cd CVSROOT
-+ sed -e '/^LogHistory/d' <config >tmpconfig
-+ mv tmpconfig config
-+ dotest multiroot4-6b "$testcvs -d ${CVSROOT2} -q ci -m workaround-LogHistory" "" \
-+".*/CVSROOT/config,v <-- config
-+new revision: 1\.[0-9]*; previous revision: 1\.[0-9]*
-+$SPROG commit: Rebuilding administrative file database"
-+ cd ../..; rm -r wrkarnd
- dotest multiroot4-7 "${testcvs} -d ${CVSROOT2} -q co -l ." ""
- mkdir dircom
- dotest multiroot4-8 "${testcvs} add dircom" \
--"Directory ${TESTDIR}/root2/dircom added to the repository"
-+"Directory ${TESTDIR}/root2/dircom put under version control"
- cd dircom
- touch file2
- dotest multiroot4-9 "${testcvs} add file2" \
-@@ -30179,7 +30421,7 @@
- # repository) and so on would also look the same.
- mkdir sdir2
- dotest multiroot4-11 "${testcvs} -d ${CVSROOT2} add sdir2" \
--"Directory ${TESTDIR}/root2/dircom/sdir2 added to the repository"
-+"Directory ${TESTDIR}/root2/dircom/sdir2 put under version control"
-
- dotest multiroot4-12 "${testcvs} -q update" ""
- cd ..
-@@ -30208,7 +30450,7 @@
- dotest rmroot-setup-1 "${testcvs} -q co -l ." ''
- mkdir first-dir
- dotest rmroot-setup-2 "${testcvs} add first-dir" \
--"Directory ${CVSROOT_DIRNAME}/first-dir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/first-dir put under version control"
- cd first-dir
- touch file1 file2
- dotest rmroot-setup-3 "${testcvs} add file1 file2" \
-@@ -30383,7 +30625,7 @@
- willfail: :whocares
- EOF
- dotest_fail pserver-3 "$servercvs pserver" \
--"error 0 Server configuration missing --allow-root in inetd.conf" <<EOF
-+"error 0 Server configuration missing --allow-root or --allow-root-regexp in inetd.conf" <<EOF
- BEGIN AUTH REQUEST
- $CVSROOT_DIRNAME
- testme
-@@ -30391,6 +30633,26 @@
- END AUTH REQUEST
- EOF
-
-+ regexp='^'`dirname ${CVSROOT_DIRNAME}`'/[^/]+$'
-+ dotest pserver-3b "${testcvs} --allow-root-regexp=$regexp pserver" \
-+"I LOVE YOU" <<EOF
-+BEGIN AUTH REQUEST
-+${CVSROOT_DIRNAME}
-+testme
-+Ay::'d
-+END AUTH REQUEST
-+EOF
-+
-+ regexp='^'`dirname ${CVSROOT_DIRNAME}`'/[^/]+$'
-+ dotest_fail pserver-3c "${testcvs} --allow-root-regexp=$regexp pserver" \
-+"$CPROG \\[pserver aborted\\]: ${CVSROOT_DIRNAME}/subdir: no such repository" <<EOF
-+BEGIN AUTH REQUEST
-+${CVSROOT_DIRNAME}/subdir
-+testme
-+Ay::'d
-+END AUTH REQUEST
-+EOF
-+
- # Confirm that not sending a newline during auth cannot constitute
- # a denial-of-service attack. This assumes that PATH_MAX is less
- # than 65536 bytes. If PATH_MAX is larger than 65535 bytes, this
-@@ -30925,7 +31187,7 @@
- EOF
-
- dotest server-9 "${servercvs} server" \
--"E Protocol error; misformed Notify request
-+"E Protocol error; malformed Notify request
- error " <<EOF
- Root ${TESTDIR}/crerepos
- Directory .
-@@ -31033,6 +31295,8 @@
- EOF
- echo THIS-CONFIG-OPTION-IS-BAD=XXX >$TESTDIR/newconfig
- dotest_fail server-20 "$testcvs server -c $TESTDIR/newconfig" \
-+"Usage: cvs server
-+Normally invoked by a cvs client on a remote machine." \
- "E $SPROG \[server aborted\]: Invalid path to config file specified: \`$TESTDIR/newconfig'" <<EOF
- Root $TESTDIR/crerepos
- Directory .
-@@ -31041,6 +31305,8 @@
- EOF
- dotest_fail server-21 \
- "$testcvs server -c /etc/cvs/this-shouldnt-exist" \
-+"Usage: cvs server
-+Normally invoked by a cvs client on a remote machine." \
- "E $SPROG \[server aborted\]: Failed to resolve path: \`/etc/cvs/this-shouldnt-exist': No such file or directory" <<EOF
- Root $TESTDIR/crerepos
- Directory .
-@@ -31101,7 +31367,7 @@
- noop
- EOF
-
-- dotest 2-3 "${servercvs} server" \
-+ dotest server2-3 "${servercvs} server" \
- "E protocol error: directory '${TESTDIR}' not within root '${CVSROOT_DIRNAME}'
- error " <<EOF
- Root ${CVSROOT_DIRNAME}
-@@ -31123,6 +31389,20 @@
- Unchanged foo/bar
- noop
- EOF
-+
-+ dotest server2-5 \
-+"${servercvs} --allow-root=${CVSROOT_DIRNAME}.bad server" \
-+"E Bad root ${CVSROOT_DIRNAME}
-+error " <<EOF
-+Root ${CVSROOT_DIRNAME}
-+noop
-+EOF
-+ dotest server2-6 \
-+"${servercvs} --allow-root=${CVSROOT_DIRNAME} server" \
-+"ok" <<EOF
-+Root ${CVSROOT_DIRNAME}
-+noop
-+EOF
- servercvs=$save_servercvs
- fi
- ;;
-@@ -31301,7 +31581,7 @@
- #
- # Incidentally, I can reproduce this behavior with Linux 2.4.20 and
- # Bash 2.05 or Bash 2.05b.
-- sleep 1
-+ sleep 2
- dotest_fail client-10 "$testcvs update" \
- "$CPROG update: Server attempted to update a file via an invalid pathname:
- $CPROG \[update aborted\]: \`$HOME/.bashrc'\."
-@@ -31322,7 +31602,7 @@
- echo "ok"
- cat >/dev/null
- EOF
-- sleep 1
-+ sleep 2
- dotest_fail client-11 "$testcvs update" \
- "$CPROG \[update aborted\]: patch original file \./\.bashrc does not exist"
-
-@@ -31342,7 +31622,7 @@
- echo "ok"
- cat >/dev/null
- EOF
-- sleep 1
-+ sleep 2
- dotest_fail client-12 "$testcvs update" \
- "$CPROG update: Server attempted to update a file via an invalid pathname:
- $CPROG \[update aborted\]: \`\.\./\.\./home/.bashrc'\."
-@@ -31362,7 +31642,7 @@
- echo "ok"
- cat >/dev/null
- EOF
-- sleep 1
-+ sleep 2
- dotest_fail client-13 "$testcvs update" \
- "$CPROG update: Server attempted to update a file via an invalid pathname:
- $CPROG \[update aborted\]: \`$HOME/.bashrc'\."
-@@ -31382,7 +31662,7 @@
- echo "ok"
- cat >/dev/null
- EOF
-- sleep 1
-+ sleep 2
- dotest_fail client-14 "$testcvs update" \
- "$CPROG update: Server attempted to update a file via an invalid pathname:
- $CPROG \[update aborted\]: \`\.\./\.\./home/.bashrc'\."
-@@ -31402,7 +31682,7 @@
- echo "ok"
- cat >/dev/null
- EOF
-- sleep 1
-+ sleep 2
- dotest_fail client-15 "$testcvs update" \
- "$CPROG update: Server attempted to update a file via an invalid pathname:
- $CPROG \[update aborted\]: \`$HOME/.bashrc'\."
-@@ -31422,7 +31702,7 @@
- echo "ok"
- cat >/dev/null
- EOF
-- sleep 1
-+ sleep 2
- dotest_fail client-16 "$testcvs update" \
- "$CPROG update: Server attempted to update a file via an invalid pathname:
- $CPROG \[update aborted\]: \`\.\./\.\./home/.bashrc'\."
-@@ -31446,7 +31726,7 @@
- echo "ok"
- cat >/dev/null
- EOF
-- sleep 1
-+ sleep 2
- dotest_fail client-18 "$testcvs update" \
- "$CPROG \[update aborted\]: protocol error: Copy-file tried to specify directory"
-
-@@ -31459,7 +31739,7 @@
- # Check that the client detects redirect loops.
- cat >$TESTDIR/serveme <<EOF
- #!$TESTSHELL
--echo "Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set Gssapi-authenticate expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version"
-+echo "Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set Gssapi-authenticate expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version suck"
- echo "ok"
- echo "Redirect $CVSROOT"
-
-@@ -31467,7 +31747,7 @@
- cat >/dev/null
- EOF
- echo newstuff >file1
-- sleep 1
-+ sleep 2
- dotest_fail client-20 "$testcvs ci" \
- "$CPROG commit: Examining \.
- $CPROG \[commit aborted\]: \`Redirect' loop detected\. Server misconfiguration$QUESTION"
-@@ -31709,7 +31989,7 @@
- cd second
- mkdir otherdir
- dotest template-add-1 "${testcvs} add otherdir" \
--"Directory ${CVSROOT_DIRNAME}/second/otherdir added to the repository"
-+"Directory ${CVSROOT_DIRNAME}/second/otherdir put under version control"
- if $remote; then
- dotest template-add-2r \
- "cmp otherdir/CVS/Template ${TESTDIR}/template/temp.def" ''
-@@ -31845,6 +32125,7 @@
- SECONDARY_CVSROOT_save=$SECONDARY_CVSROOT
- SECONDARY_CVSROOT_DIRNAME=$TESTDIR/writeproxy_cvsroot
- SECONDARY_CVSROOT=`newroot $SECONDARY_CVSROOT_DIRNAME`
-+ write_secondary_wrapper
-
- # Initialize the primary repository
- dotest writeproxy-init-1 "$testcvs -d$PRIMARY_CVSROOT init"
-@@ -31856,6 +32137,10 @@
- ALL (cat >/dev/null; echo %R) >$TESTDIR/referrer
- ALL $RSYNC -gopr --delete $PRIMARY_CVSROOT_DIRNAME/ $SECONDARY_CVSROOT_DIRNAME
- EOF
-+ # remove automatically-created LogHistory to work around the fact
-+ # that we see both writeproxy and primary config here
-+ sed -e '/^LogHistory/d' <config >tmpconfig
-+ mv tmpconfig config
- cat >>config <<EOF
- PrimaryServer=$PRIMARY_CVSROOT
- EOF
-@@ -31868,7 +32153,7 @@
- save_CVS_SERVER=$CVS_SERVER
- ln -s $PRIMARY_CVSROOT_DIRNAME $TESTDIR/primary_link
- dotest writeproxy-0 "$CVS_SERVER server" \
--"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version
-+"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version suck
- ok
- ok
- ok" \
-@@ -32021,6 +32306,7 @@
- PRIMARY_CVSROOT=$PRIMARY_CVSROOT_save
- SECONDARY_CVSROOT_DIRNAME=$SECONDARY_CVSROOT_DIRNAME_save
- SECONDARY_CVSROOT=$SECONDARY_CVSROOT_save
-+ write_secondary_wrapper
- ;;
-
-
-@@ -32054,10 +32340,11 @@
- PRIMARY_CVSROOT=`newroot $PRIMARY_CVSROOT_DIRNAME`
- SECONDARY_CVSROOT_DIRNAME_save=$SECONDARY_CVSROOT_DIRNAME
- SECONDARY_CVSROOT_DIRNAME=$TESTDIR/writeproxy_cvsroot
-+ write_secondary_wrapper
-
- # Initialize the primary repository
- dotest writeproxy-noredirect-init-1 \
--"$testcvs -d'$PRIMARY_CVSROOT' init"
-+"$testcvs -d'$PRIMARY_CVSROOT_DIRNAME' init"
- mkdir writeproxy-noredirect; cd writeproxy-noredirect
- mkdir primary; cd primary
- dotest writeproxy-noredirect-init-2 \
-@@ -32066,6 +32353,9 @@
- cat >>loginfo <<EOF
- ALL $RSYNC -gopr --delete $PRIMARY_CVSROOT_DIRNAME/ $SECONDARY_CVSROOT_DIRNAME
- EOF
-+ # remove automatically-created LogHistory (see above)
-+ sed -e '/^LogHistory/d' <config >tmpconfig
-+ mv tmpconfig config
- cat >>config <<EOF
- PrimaryServer=$PRIMARY_CVSROOT
- EOF
-@@ -32088,7 +32378,7 @@
-
- # No need to check the PID of the last client since we are testing with
- # Redirect disabled.
--proot_arg="--allow-root $SECONDARY_CVSROOT_DIRNAME"
-+proot_arg="--allow-root ${PRIMARY_CVSROOT##*:} --allow-root $SECONDARY_CVSROOT_DIRNAME"
- exec $servercvs \$proot_arg "\$@"
- EOF
- cat <<EOF >$TESTDIR/writeproxy-primary-wrapper
-@@ -32152,7 +32442,7 @@
- mv $TESTDIR/save-root $PRIMARY_CVSROOT_DIRNAME
-
- dotest writeproxy-noredirect-5 "$CVS_SERVER server" \
--"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version
-+"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version suck
- ok
- ok
- ok
-@@ -32184,7 +32474,7 @@
- cd firstdir
- echo now you see me >file1
- dotest writeproxy-noredirect-6 "$CVS_SERVER server" \
--"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version
-+"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version suck
- ok
- ok
- ok
-@@ -32214,7 +32504,7 @@
- echo /file1/0/dummy+timestamp// >>CVS/Entries
-
- dotest writeproxy-noredirect-7 "$CVS_SERVER server" \
--"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version
-+"Valid-requests Root Valid-responses valid-requests Command-prep Referrer Repository Directory Relative-directory Max-dotdot Static-directory Sticky Entry Kopt Checkin-time Modified Is-modified UseUnchanged Unchanged Notify Hostname LocalDir Questionable Argument Argumentx Global_option Gzip-stream wrapper-sendme-rcsOptions Set ${DOTSTAR}expand-modules ci co update diff log rlog list rlist global-list-quiet ls add remove update-patches gzip-file-contents status rdiff tag rtag import admin export history release watch-on watch-off watch-add watch-remove watchers editors edit init annotate rannotate noop version suck
- ok
- ok
- Mode u=rw,g=rw,o=r
-@@ -32287,6 +32577,7 @@
- PRIMARY_CVSROOT_DIRNAME=$PRIMARY_CVSROOT_DIRNAME_save
- PRIMARY_CVSROOT=$PRIMARY_CVSROOT_save
- SECONDARY_CVSROOT_DIRNAME=$SECONDARY_CVSROOT_DIRNAME_save
-+ write_secondary_wrapper
- ;;
-
-
-@@ -32327,9 +32618,10 @@
-
- # Set new roots.
- PRIMARY_CVSROOT_DIRNAME=$TESTDIR/primary_cvsroot
-- PRIMARY_CVSROOT=:ext:$host$PRIMARY_CVSROOT_DIRNAME
-+ PRIMARY_CVSROOT=:ext:$host:$PRIMARY_CVSROOT_DIRNAME
- SECONDARY_CVSROOT_DIRNAME=$TESTDIR/writeproxy_cvsroot
-- SECONDARY_CVSROOT=":ext;Redirect=yes:$host$SECONDARY_CVSROOT_DIRNAME"
-+ SECONDARY_CVSROOT=":ext;Redirect=yes:$host:$SECONDARY_CVSROOT_DIRNAME"
-+ write_secondary_wrapper
-
- # Initialize the primary repository
- dotest writeproxy-ssh-init-1 "$testcvs -d$PRIMARY_CVSROOT init"
-@@ -32343,6 +32635,9 @@
- cat >>loginfo <<EOF
- ALL echo Referrer=%R; cat >/dev/null
- EOF
-+ # remove automatically-created LogHistory (see above)
-+ sed -e '/^LogHistory/d' <config >tmpconfig
-+ mv tmpconfig config
- cat >>config <<EOF
- PrimaryServer=$PRIMARY_CVSROOT
- EOF
-@@ -32391,6 +32686,7 @@
- PRIMARY_CVSROOT=$PRIMARY_CVSROOT_save
- SECONDARY_CVSROOT_DIRNAME=$SECONDARY_CVSROOT_DIRNAME_save
- SECONDARY_CVSROOT=$SECONDARY_CVSROOT_save
-+ write_secondary_wrapper
- ;;
-
-
-@@ -32426,9 +32722,10 @@
-
- # Set new roots.
- PRIMARY_CVSROOT_DIRNAME=$TESTDIR/primary_cvsroot
-- PRIMARY_CVSROOT=:ext:$host$PRIMARY_CVSROOT_DIRNAME
-+ PRIMARY_CVSROOT=:ext:$host:$PRIMARY_CVSROOT_DIRNAME
- SECONDARY_CVSROOT_DIRNAME=$TESTDIR/writeproxy_cvsroot
-- SECONDARY_CVSROOT=":ext;Redirect=no:$host$PRIMARY_CVSROOT_DIRNAME"
-+ SECONDARY_CVSROOT=":ext;Redirect=no:$host:$PRIMARY_CVSROOT_DIRNAME"
-+ write_secondary_wrapper
-
- # Initialize the primary repository
- dotest writeproxy-ssh-noredirect-init-1 \
-@@ -32444,6 +32741,9 @@
- cat >>loginfo <<EOF
- ALL echo Referrer=%R; cat >/dev/null
- EOF
-+ # remove automatically-created LogHistory (see above)
-+ sed -e '/^LogHistory/d' <config >tmpconfig
-+ mv tmpconfig config
- cat >>config <<EOF
- PrimaryServer=$PRIMARY_CVSROOT
- EOF
-@@ -32463,8 +32763,8 @@
-
- # No need to check the PID of the last client since we are testing with
- # Redirect disabled.
--proot_arg="--allow-root=$SECONDARY_CVSROOT_DIRNAME"
--exec $CVS_SERVER \$proot_arg "\$@"
-+proot_arg="--allow-root ${PRIMARY_CVSROOT##*:} --allow-root=$SECONDARY_CVSROOT_DIRNAME"
-+exec $CVS_SERVER_secondary_wrapper_orig \$proot_arg "\$@"
- EOF
- cat <<EOF >$TESTDIR/writeproxy-primary-wrapper
- #! $TESTSHELL
-@@ -32517,6 +32817,7 @@
- PRIMARY_CVSROOT=$PRIMARY_CVSROOT_save
- SECONDARY_CVSROOT_DIRNAME=$SECONDARY_CVSROOT_DIRNAME_save
- SECONDARY_CVSROOT=$SECONDARY_CVSROOT_save
-+ write_secondary_wrapper
- rm $TESTDIR/writeproxy-secondary-wrapper \
- $TESTDIR/writeproxy-primary-wrapper
- CVS_SERVER=$CVS_SERVER_save
-@@ -32836,7 +33137,7 @@
- *-> walklist ( list=${PFMT}, proc=${PFMT}, closure=${PFMT} )
- *-> walklist ( list=${PFMT}, proc=${PFMT}, closure=${PFMT} )
- *-> walklist ( list=${PFMT}, proc=${PFMT}, closure=${PFMT} )
--Directory ${CVSROOT_DIRNAME}/trace/subdir added to the repository" \
-+Directory ${CVSROOT_DIRNAME}/trace/subdir put under version control" \
- "
- *callerdat=${PFMT}, argc=1, argv=${PFMT},
- *direntproc=${PFMT}, dirleavproc=${PFMT},
-@@ -32868,7 +33169,7 @@
- *-> walklist ( list=${PFMT}, proc=${PFMT}, closure=${PFMT} )
- *-> walklist ( list=${PFMT}, proc=${PFMT}, closure=${PFMT} )
- *-> walklist ( list=${PFMT}, proc=${PFMT}, closure=${PFMT} )
--${DOTSTAR}Directory ${CVSROOT_DIRNAME}/trace/subdir added to the repository
-+${DOTSTAR}Directory ${CVSROOT_DIRNAME}/trace/subdir put under version control
- S -> CVS_SERVER_SLEEP not set\.
- S -> Lock_Cleanup()
- S -> Lock_Cleanup()
-@@ -35508,6 +35809,35 @@
-
-
-
-+ suck)
-+ modify_repo mkdir $CVSROOT_DIRNAME/first-dir
-+ dotest suck-init-1 "$testcvs -Q co first-dir"
-+
-+ cd first-dir
-+ ${AWK} 'BEGIN { for (i = 64; i < 96; i++) printf "%02x %c\n", i-64, i }' \
-+ </dev/null | ${TR} '@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_' \
-+ '\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037' \
-+ | ${TR} 'abcdef' 'ABCDEF' >alloctet.dat
-+ ${AWK} 'BEGIN { for (i = 32; i < 256; i++) printf "%02X %c\n", i, i }' \
-+ </dev/null >>alloctet.dat
-+
-+ dotest suck-1 "$testcvs -Q add alloctet.dat"
-+ dotest suck-2 "$testcvs -Q ci -m added"
-+
-+ cd ..
-+
-+ dotest suck-3 "$testcvs -Q suck first-dir/alloctet.dat >commavs"
-+ echo "first-dir/alloctet.dat,v" >commavl
-+ cat $CVSROOT_DIRNAME/first-dir/alloctet.dat,v >>commavl
-+ dotest suck-eq "diff commavs commavl"
-+
-+ dokeep
-+ rm -r first-dir commavs commavl
-+ modify_repo rm -rf $CVSROOT_DIRNAME/first-dir
-+ ;;
-+
-+
-+
- *)
- echo $what is not the name of a test -- ignored
- ;;
-@@ -35545,7 +35875,7 @@
- if cmp $file $TESTDIR/`basename $file`-clean >/dev/null 2>&1; then
- :;
- else
-- echo "\`$file' and \`$TESTDIR/`basename $file`-clean' differ." \
-+ echo "'$file' and '$TESTDIR/`basename $file`-clean' differ." \
- >>$LOGFILE
- problem=:
- fi
-@@ -35599,7 +35929,7 @@
- extendedinfo="$extendedinfo)"
- fi
-
--echo "OK, all $passed tests passed$extendedinfo."
-+echo "OK, all $passed tests passed$extendedinfo." | tee -a $LOGFILE
-
- # TODO:
- # * Test `cvs update -d foo' (where foo does not exist).
---- cvs-1.12.13+real.orig/src/server.c
-+++ cvs-1.12.13+real/src/server.c
-@@ -1,12 +1,17 @@
--/* 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, 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. */
-+/*
-+ * Copyright © 2017 mirabilos <m@mirbsd.org>
-+ * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
-+ *
-+ * 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, 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.
-+ */
-
- #include "cvs.h"
-
-@@ -80,6 +85,13 @@
- /* for select */
- # include "xselect.h"
-
-+/* for TCP_NODELAY */
-+# include <netinet/tcp.h>
-+
-+# ifndef S_ISSOCK
-+# define S_ISSOCK(m) (((m) & S_IFMT) == S_IFSOCK)
-+# endif
-+
- # ifndef O_NONBLOCK
- # define O_NONBLOCK O_NDELAY
- # endif
-@@ -539,8 +551,8 @@
-
-
-
--static int
--supported_response (char *name)
-+int
-+supported_response (const char *name)
- {
- struct response *rs;
-
-@@ -677,6 +689,9 @@
- */
- static pid_t command_pid;
-
-+static void outbuf_memory_error (struct buffer *)
-+ __attribute__((__noreturn__));
-+
- static void
- outbuf_memory_error (struct buffer *buf)
- {
-@@ -700,6 +715,8 @@
- }
-
-
-+static void input_memory_error (struct buffer *)
-+ __attribute__((__noreturn__));
-
- static void
- input_memory_error (struct buffer *buf)
-@@ -823,6 +840,14 @@
- }
- # endif
-
-+ if (root_allow_used() && !root_allow_ok(arg))
-+ {
-+ if (alloc_pending (80 + strlen (arg)))
-+ sprintf (pending_error_text,
-+ "E Bad root %s", arg);
-+ return;
-+ }
-+
- /* For pserver, this will already have happened, and the call will do
- nothing. But for rsh, we need to do it now. */
- config = get_root_allow_config (current_parsed_root->directory,
-@@ -2350,6 +2375,7 @@
- bool *pre = closure;
-
- /* %c = cvs_cmd_name
-+ * %I = commit ID
- * %p = shortrepos
- * %r = repository
- */
-@@ -2367,6 +2393,7 @@
- # endif /* SUPPORT_OLD_INFO_FMT_STRINGS */
- filter,
- "c", "s", cvs_cmd_name,
-+ "I", "s", global_session_id,
- "R", "s", referrer ? referrer->original : "NONE",
- "p", "s", ".",
- "r", "s", current_parsed_root->directory,
-@@ -2870,7 +2897,7 @@
- pending_error = 0;
- if (alloc_pending (80))
- strcpy (pending_error_text,
-- "E Protocol error; misformed Notify request");
-+ "E Protocol error; malformed Notify request");
- if (data != NULL)
- free (data);
- if (new != NULL)
-@@ -3519,7 +3546,7 @@
- * Therefore, we wish to avoid reprocessing the command since that would
- * cause endless recursion.
- */
-- if (isProxyServer())
-+ if ((command != version || current_parsed_root) && isProxyServer())
- {
- # ifdef PROXY_SUPPORT
- if (reprocessing)
-@@ -3716,7 +3743,7 @@
- * Set this in .bashrc if you want to give yourself time to attach
- * to the subprocess with a debugger.
- */
-- if (getenv ("CVS_SERVER_SLEEP"))
-+ if (getenv("CVS_SERVER_SLEEP") && *getenv("CVS_SERVER_SLEEP"))
- {
- int secs = atoi (getenv ("CVS_SERVER_SLEEP"));
- TRACE (TRACE_DATA, "Sleeping CVS_SERVER_SLEEP (%d) seconds", secs);
-@@ -3922,7 +3949,11 @@
- {
- FD_SET (stderr_pipe[0], &readfds);
- }
-- if (protocol_pipe[0] >= 0)
-+ if (protocol_pipe[0] >= 0
-+#ifdef SERVER_FLOWCONTROL
-+ && !have_flowcontrolled
-+#endif
-+ )
- {
- FD_SET (protocol_pipe[0], &readfds);
- }
-@@ -4621,6 +4652,14 @@
-
-
- static void
-+serve_suck (char *arg)
-+{
-+ do_cvs_command ("suck", suck);
-+}
-+
-+
-+
-+static void
- serve_add (char *arg)
- {
- do_cvs_command ("add", add);
-@@ -5237,6 +5276,7 @@
- {
- free (vers->ts_user);
- vers->ts_user = NULL;
-+ vers->ts_user_ists = 0;
- }
- }
- else if (scratched_file == NULL && entries_line == NULL)
-@@ -5856,7 +5896,7 @@
- /*
- * Parts of this table are shared with the client code,
- * but the client doesn't need to know about the handler
-- * functions.
-+ * functions. It likes to write to the flags field, though.
- */
-
- struct request requests[] =
-@@ -5962,6 +6002,7 @@
- REQ_LINE("rannotate", serve_rannotate, 0),
- REQ_LINE("noop", serve_noop, RQ_ROOTLESS),
- REQ_LINE("version", serve_version, RQ_ROOTLESS),
-+ REQ_LINE("suck", serve_suck, 0),
- REQ_LINE(NULL, NULL, 0)
-
- #undef REQ_LINE
-@@ -6271,8 +6312,12 @@
-
- static const char *const server_usage[] =
- {
-+#ifdef ALLOW_CONFIG_OVERRIDE
- "Usage: %s %s [-c config-file]\n",
- "\t-c config-file\tPath to an alternative CVS config file.\n",
-+#else
-+ "Usage: %s %s\n",
-+#endif
- "Normally invoked by a cvs client on a remote machine.\n",
- NULL
- };
-@@ -6289,8 +6334,8 @@
- {
- switch (c)
- {
--#ifdef ALLOW_CONFIG_OVERRIDE
- case 'c':
-+#ifdef ALLOW_CONFIG_OVERRIDE
- if (gConfigPath) free (gConfigPath);
- gConfigPath = xstrdup (optarg);
- break;
-@@ -6319,7 +6364,7 @@
- * Set this in .bashrc if you want to give yourself time to attach
- * to the subprocess with a debugger.
- */
-- if (getenv ("CVS_PARENT_SERVER_SLEEP"))
-+ if (getenv("CVS_PARENT_SERVER_SLEEP") && *getenv("CVS_PARENT_SERVER_SLEEP"))
- {
- int secs = atoi (getenv ("CVS_PARENT_SERVER_SLEEP"));
- TRACE (TRACE_DATA, "Sleeping CVS_PARENT_SERVER_SLEEP (%d) seconds",
-@@ -6671,6 +6716,22 @@
-
- extern char *crypt (const char *, const char *);
-
-+char *crypt_trad(const char *, const char *);
-+
-+char *
-+crypt_trad(const char *key, const char *setting)
-+{
-+ char *rv;
-+ static char buf[2];
-+
-+ if ((rv = crypt(key, setting)) == NULL) {
-+ buf[0] = setting && (*setting == 'x') ? '*' : 'x';
-+ buf[1] = '\0';
-+ rv = buf;
-+ }
-+
-+ return (rv);
-+}
-
- /*
- * 0 means no entry found for this user.
-@@ -6799,7 +6860,7 @@
-
- /* Verify blank passwords directly, otherwise use crypt(). */
- if ((found_password == NULL)
-- || ((strcmp (found_password, crypt (password, found_password))
-+ || ((strcmp (found_password, crypt_trad (password, found_password))
- == 0)))
- {
- /* Give host_user_ptr permanent storage. */
-@@ -6811,7 +6872,7 @@
- #ifdef LOG_AUTHPRIV
- syslog (LOG_AUTHPRIV | LOG_NOTICE,
- "password mismatch for %s in %s: %s vs. %s", username,
-- repository, crypt(password, found_password), found_password);
-+ repository, crypt_trad(password, found_password), found_password);
- #endif
- *host_user_ptr = NULL;
- retval = 2;
-@@ -6887,7 +6948,7 @@
- static int
- check_pam_password (char **username, char *password)
- {
-- int retval, err;
-+ int retval;
- struct pam_conv conv = { cvs_pam_conv, 0 };
- char *pam_stage = "start";
-
-@@ -6930,7 +6991,7 @@
-
- return retval == PAM_SUCCESS; /* indicate success */
- }
--#endif
-+#else /* !HAVE_PAM */
-
- static int
- check_system_password (char *username, char *password)
-@@ -6976,14 +7037,14 @@
- if (*found_passwd)
- {
- /* user exists and has a password */
-- if (strcmp (found_passwd, crypt (password, found_passwd)) == 0)
-+ if (strcmp (found_passwd, crypt_trad (password, found_passwd)) == 0)
- return 1;
- else
- {
- #ifdef LOG_AUTHPRIV
- syslog (LOG_AUTHPRIV | LOG_NOTICE,
- "password mismatch for %s: %s vs. %s", username,
-- crypt(password, found_passwd), found_passwd);
-+ crypt_trad(password, found_passwd), found_passwd);
- #endif
- return 0;
- }
-@@ -6996,6 +7057,7 @@
- #endif
- return 1;
- }
-+#endif /* !HAVE_PAM */
-
-
-
-@@ -7164,8 +7226,10 @@
- if the client dies while we are waiting for input. */
- {
- int on = 1;
-+ struct stat sb;
-
-- if (setsockopt (STDIN_FILENO, SOL_SOCKET, SO_KEEPALIVE,
-+ if (fstat (STDIN_FILENO, &sb) == 0 && S_ISSOCK(sb.st_mode) &&
-+ setsockopt (STDIN_FILENO, SOL_SOCKET, SO_KEEPALIVE,
- &on, sizeof on) < 0)
- {
- # ifdef HAVE_SYSLOG_H
-@@ -7175,6 +7239,23 @@
- }
- #endif
-
-+#ifdef TCP_NODELAY
-+ /* Avoid latency due to Nagle algorithm. */
-+ {
-+ int on = 1;
-+ struct stat sb;
-+
-+ if (fstat (STDOUT_FILENO, &sb) == 0 && S_ISSOCK(sb.st_mode) &&
-+ setsockopt (STDOUT_FILENO, IPPROTO_TCP, TCP_NODELAY,
-+ &on, sizeof on) < 0)
-+ {
-+# ifdef HAVE_SYSLOG_H
-+ syslog (LOG_DAEMON | LOG_ERR, "error setting TCP_NODELAY: %m");
-+# endif /* HAVE_SYSLOG_H */
-+ }
-+ }
-+#endif
-+
- /* Make sure the protocol starts off on the right foot... */
- pserver_read_line (&tmp, NULL);
-
-@@ -7317,8 +7398,10 @@
- if the client dies while we are waiting for input. */
- {
- int on = 1;
-+ struct stat sb;
-
-- if (setsockopt (STDIN_FILENO, SOL_SOCKET, SO_KEEPALIVE,
-+ if (fstat (STDIN_FILENO, &sb) == 0 && S_ISSOCK(sb.st_mode) &&
-+ setsockopt (STDIN_FILENO, SOL_SOCKET, SO_KEEPALIVE,
- (char *) &on, sizeof on) < 0)
- {
- # ifdef HAVE_SYSLOG_H
-@@ -7328,6 +7411,23 @@
- }
- #endif
-
-+#ifdef TCP_NODELAY
-+ /* Avoid latency due to Nagle algorithm. */
-+ {
-+ int on = 1;
-+ struct stat sb;
-+
-+ if (fstat (STDOUT_FILENO, &sb) == 0 && S_ISSOCK(sb.st_mode) &&
-+ setsockopt (STDOUT_FILENO, IPPROTO_TCP, TCP_NODELAY,
-+ (char *) &on, sizeof on) < 0)
-+ {
-+# ifdef HAVE_SYSLOG_H
-+ syslog (LOG_DAEMON | LOG_ERR, "error setting TCP_NODELAY: %m");
-+# endif /* HAVE_SYSLOG_H */
-+ }
-+ }
-+#endif
-+
- status = krb_recvauth (KOPT_DO_MUTUAL, STDIN_FILENO, &ticket, "rcmd",
- instance, &peer, &laddr, &auth, "", sched,
- version);
-@@ -7611,6 +7711,12 @@
- void
- cvs_output (const char *str, size_t len)
- {
-+ cvs_output_ex (str, len, 'M');
-+}
-+
-+void
-+cvs_output_ex (const char *str, size_t len, int buftag)
-+{
- if (len == 0)
- len = strlen (str);
- #ifdef SERVER_SUPPORT
-@@ -7619,7 +7725,7 @@
- if (buf_to_net)
- {
- buf_output (saved_output, str, len);
-- buf_copy_lines (buf_to_net, saved_output, 'M');
-+ buf_copy_lines (buf_to_net, saved_output, buftag);
- }
- # if HAVE_SYSLOG_H
- else
-@@ -7634,7 +7740,7 @@
- if (protocol)
- {
- buf_output (saved_output, str, len);
-- buf_copy_lines (protocol, saved_output, 'M');
-+ buf_copy_lines (protocol, saved_output, buftag);
- buf_send_counted (protocol);
- }
- # if HAVE_SYSLOG_H
---- cvs-1.12.13+real.orig/src/server.h
-+++ cvs-1.12.13+real/src/server.h
-@@ -1,3 +1,5 @@
-+/* $MirOS: src/gnu/usr.bin/cvs/src/server.h,v 1.2 2017/11/18 23:04:57 tg Exp $ */
-+
- /*
- * Copyright (C) 1986-2005 The Free Software Foundation, Inc.
- *
-@@ -161,7 +163,7 @@
- struct request
- {
- /* Name of the request. */
-- char *name;
-+ const char *name;
-
- #ifdef SERVER_SUPPORT
- /*
---- cvs-1.12.13+real.orig/src/status.c
-+++ cvs-1.12.13+real/src/status.c
-@@ -213,8 +213,11 @@
- cvs_output (" Working revision:\t", 0);
- cvs_output (vers->vn_user, 0);
-
-- /* Only add the UTC timezone if there is a time to use. */
-- if (!server_active && strlen (vers->ts_rcs) > 0)
-+ /* Only add the UTC timezone if there is a time to use.
-+ * ts_rcs sometimes contains only "=" character so we check len > 1 */
-+ if (!server_active && strlen (vers->ts_rcs) > 1 &&
-+ /* prevent an ugly error message */
-+ strcmp(vers->ts_rcs, "Result of merge") != 0)
- {
- /* Convert from the asctime() format to ISO 8601 */
- char *buf;
---- cvs-1.12.13+real.orig/src/subr.c
-+++ cvs-1.12.13+real/src/subr.c
-@@ -315,8 +315,12 @@
- char *name;
-
- /* super-user; try getlogin() to distinguish */
-- if (((name = getlogin ()) || (name = getenv("LOGNAME")) ||
-- (name = getenv("USER"))) && *name)
-+ name = getlogin();
-+ if (!name || !*name)
-+ name = getenv("LOGNAME");
-+ if (!name || !*name)
-+ name = getenv("USER");
-+ if (name && *name)
- {
- cache = xstrdup (name);
- return cache;
-@@ -807,6 +811,8 @@
- long s;
- long us;
-
-+ if (time (&t) > desttime) return;
-+
- while (time (&t) <= desttime)
- {
- #ifdef HAVE_GETTIMEOFDAY
-@@ -835,6 +841,14 @@
- (void)nanosleep (&ts, NULL);
- }
- }
-+
-+ /* sleep another 20 ms (2 HZ) to avoid races */
-+ {
-+ struct timespec ts;
-+ ts.tv_sec = 0;
-+ ts.tv_nsec = 20 * 1000 * 1000;
-+ (void)nanosleep (&ts, NULL);
-+ }
- }
-
-
-@@ -1285,7 +1299,7 @@
- dellist(&pflist);
- free(b);
- error (1, 0,
--"internal error: unknown integer arg size (%d)",
-+"internal error: unknown integer arg size (%zd)",
- length);
- break;
- }
-@@ -1328,7 +1342,7 @@
- dellist(&pflist);
- free(b);
- error (1, 0,
--"internal error: unknown floating point arg size (%d)",
-+"internal error: unknown floating point arg size (%zd)",
- length);
- break;
- }
---- cvs-1.12.13+real.orig/src/suck.c
-+++ cvs-1.12.13+real/src/suck.c
-@@ -0,0 +1,140 @@
-+/*-
-+ * Copyright (c) 2011
-+ * Thorsten Glaser <tg@mirbsd.org>
-+ *
-+ * Provided that these terms and disclaimer and all copyright notices
-+ * are retained or reproduced in an accompanying document, permission
-+ * is granted to deal in this work without restriction, including un-
-+ * limited rights to use, publicly perform, distribute, sell, modify,
-+ * merge, give away, or sublicence.
-+ *
-+ * This work is provided "AS IS" and WITHOUT WARRANTY of any kind, to
-+ * the utmost extent permitted by applicable law, neither express nor
-+ * implied; without malicious intent or gross negligence. In no event
-+ * may a licensor, author or contributor be held liable for indirect,
-+ * direct, other damage, loss, or other issues arising in any way out
-+ * of dealing in the work, even if advised of the possibility of such
-+ * damage or existence of a defect, except proven that it results out
-+ * of said person's immediate fault when using the work as intended.
-+ *-
-+ * Download a ,v file from the repository
-+ */
-+
-+#include "cvs.h"
-+
-+#ifdef HAVE_MMAP
-+#include <sys/mman.h>
-+
-+#ifndef MAP_FILE
-+#define MAP_FILE 0
-+#endif
-+
-+#ifndef MAP_FAILED
-+#define MAP_FAILED ((void *)-1)
-+#endif
-+#endif
-+
-+static const char * const suck_usage[] = {
-+ "Usage: %s %s module/filename\n",
-+ NULL
-+};
-+
-+int
-+suck(int argc, char *argv[])
-+{
-+ size_t m, n;
-+ int fd;
-+ char *buf, *cp, *fn;
-+ struct stat sb;
-+ FILE *fp;
-+ RCSNode *rcs;
-+
-+ if (argc != 2)
-+ usage(suck_usage);
-+
-+#ifdef CLIENT_SUPPORT
-+ if (current_parsed_root->isremote) {
-+ start_server();
-+
-+ if (!supported_request("suck"))
-+ error(1, 0, "server does not support %s", "suck");
-+
-+ send_arg(argv[1]);
-+ send_to_server("suck\012", 0);
-+
-+ return (get_responses_and_close());
-+ }
-+#endif
-+
-+ /* check for ../ attack */
-+ if (pathname_levels(argv[1]) > 0)
-+ error(1, 0, "path %s outside of repository", argv[1]);
-+
-+ /* repo + / + module/file */
-+ cp = Xasprintf("%s/%s", current_parsed_root->directory, argv[1]);
-+
-+ /* find the slash */
-+ if ((fn = cp + (last_component(cp) - cp)) == cp)
-+ usage(suck_usage);
-+
-+ /* repo/module + file */
-+ fn[-1] = '\0';
-+
-+ /* check if it's a valid RCS file, not /etc/passwd or somesuch */
-+ if ((rcs = RCS_parse(fn, cp)) == NULL) {
-+ error(1, 0, "not a valid RCS file: %s/%s", cp, fn);
-+ return (1);
-+ }
-+
-+ /* save the real pathname of the RCS file for later */
-+ fn = xstrdup(rcs->path);
-+
-+ /* free up resources allocated until now */
-+ freercsnode(&rcs);
-+ free(cp);
-+
-+ /* attempt to open the file ourselves */
-+ if ((fp = CVS_FOPEN(fn, FOPEN_BINARY_READ)) == NULL)
-+ error(1, errno, "Could not open RCS archive %s", fn);
-+ if (fstat(fd = fileno(fp), &sb) < 0)
-+ error(1, errno, "Could not stat RCS archive %s", fn);
-+
-+ /*XXX this code will fail for large files */
-+
-+ /* attempt to slurp entire file into memory */
-+#ifdef HAVE_MMAP
-+ buf = mmap(NULL, sb.st_size, PROT_READ, MAP_PRIVATE, fd, 0);
-+ if (buf == NULL || buf == MAP_FAILED) {
-+ error(0, errno, "Could not map memory to RCS archive %s", fn);
-+#endif
-+ /* backup: just read */
-+ cp = buf = xmalloc(n = sb.st_size);
-+ while (n) {
-+ m = read(fd, cp, n);
-+ if (m == (size_t)-1)
-+ error(1, errno,
-+ "Could not read RCS archive %s", fn);
-+ cp += m;
-+ n -= m;
-+ }
-+#ifdef HAVE_MMAP
-+ }
-+#endif
-+
-+ /* write real pathname plus newline as text */
-+ cvs_output(fn + strlen(current_parsed_root->directory) + 1, 0);
-+ cvs_output("\n", 1);
-+
-+ /* write file content as binary */
-+ cvs_output_binary(buf, sb.st_size);
-+
-+ /* release all resources allocated */
-+#ifdef HAVE_MMAP
-+ munmap(buf, sb.st_size);
-+#endif
-+ fclose(fp);
-+ free(fn);
-+
-+ /* success */
-+ return (0);
-+}
---- cvs-1.12.13+real.orig/src/tag.c
-+++ cvs-1.12.13+real/src/tag.c
-@@ -310,6 +310,7 @@
- * %b = branch mode = "?" (delete ops - unknown) | "T" (branch)
- * | "N" (not branch)
- * %c = cvs_cmd_name
-+ * %I = commit ID
- * %p = path from $CVSROOT
- * %r = path from root
- * %{sVv} = attribute list = file name, old version tag will be deleted
-@@ -333,6 +334,7 @@
- "b", "c", delete_flag
- ? '?' : branch_mode ? 'T' : 'N',
- "c", "s", cvs_cmd_name,
-+ "I", "s", global_session_id,
- #ifdef SERVER_SUPPORT
- "R", "s", referrer ? referrer->original : "NONE",
- #endif /* SERVER_SUPPORT */
-@@ -747,6 +749,7 @@
- * %b = branch mode = "?" (delete ops - unknown) | "T" (branch)
- * | "N" (not branch)
- * %c = cvs_cmd_name
-+ * %I = commit ID
- * %p = path from $CVSROOT
- * %r = path from root
- * %{sVv} = attribute list = file name, old version tag will be deleted
-@@ -770,6 +773,7 @@
- "b", "c", delete_flag
- ? '?' : branch_mode ? 'T' : 'N',
- "c", "s", cvs_cmd_name,
-+ "I", "s", global_session_id,
- #ifdef SERVER_SUPPORT
- "R", "s", referrer ? referrer->original : "NONE",
- #endif /* SERVER_SUPPORT */
-@@ -1235,14 +1239,14 @@
- else if (strcmp (version, "0") == 0)
- {
- if (!quiet)
-- error (0, 0, "couldn't tag added but un-commited file `%s'",
-+ error (0, 0, "couldn't tag added but un-committed file `%s'",
- finfo->file);
- goto free_vars_and_return;
- }
- else if (version[0] == '-')
- {
- if (!quiet)
-- error (0, 0, "skipping removed but un-commited file `%s'",
-+ error (0, 0, "skipping removed but un-committed file `%s'",
- finfo->file);
- goto free_vars_and_return;
- }
-@@ -1450,6 +1454,7 @@
- * 2. If IDB is non-NULL and val-tags cannot be opened for write.
- * This allows callers to ignore the harmless inability to
- * update the val-tags cache.
-+ * 3. If CVSREADONLYFS is set (same as #2 above).
- * false If the file could be opened and the tag is not present.
- */
- static int is_in_val_tags (DBM **idb, const char *name)
-@@ -1459,6 +1464,10 @@
- datum mytag;
- int status;
-
-+ /* do nothing if we know we fail anyway */
-+ if (readonlyfs)
-+ return 1;
-+
- /* Casting out const should be safe here - input datums are not
- * written to by the myndbm functions.
- */
-@@ -1580,7 +1589,7 @@
- * we are already there, or "" if we should do a W_LOCAL recursion.
- * Sorry for three cases, but the "" case is needed in case the
- * working directories come from diverse parts of the repository, the
-- * NULL case avoids an unneccesary chdir, and the non-NULL, non-""
-+ * NULL case avoids an unnecessary chdir, and the non-NULL, non-""
- * case is needed for checkout, where we don't want to chdir if the
- * tag is found in CVSROOTADM_VALTAGS, but there is not (yet) any
- * local directory.
---- cvs-1.12.13+real.orig/src/update.c
-+++ cvs-1.12.13+real/src/update.c
-@@ -58,7 +58,7 @@
- static int patch_file (struct file_info *finfo,
- Vers_TS *vers_ts,
- int *docheckout, struct stat *file_info,
-- unsigned char *checksum);
-+ md5_uint32 *checksum);
- static void patch_file_write (void *, const char *, size_t);
- #endif
- static int merge_file (struct file_info *finfo, Vers_TS *vers);
-@@ -723,7 +723,7 @@
- {
- int docheckout;
- struct stat file_info;
-- unsigned char checksum[16];
-+ md5_uint32 checksum[4];
-
- retval = patch_file (finfo,
- vers, &docheckout,
-@@ -735,7 +735,8 @@
- (rcs_diff_patches
- ? SERVER_RCS_DIFF
- : SERVER_PATCHED),
-- file_info.st_mode, checksum,
-+ file_info.st_mode,
-+ (void *)checksum,
- NULL);
- break;
- }
-@@ -1181,6 +1182,7 @@
- {
- free (vers->ts_user);
- vers->ts_user = NULL;
-+ vers->ts_user_ists = 0;
- }
- }
- return 0;
-@@ -1197,7 +1199,7 @@
- {
- char *backup;
- int set_time, retval = 0;
-- int status;
-+ int status = 0;
- int file_is_dead;
- struct buffer *revbuf;
-
-@@ -1366,6 +1368,7 @@
-
- if (xvers_ts->ts_user != NULL)
- free (xvers_ts->ts_user);
-+ xvers_ts->ts_user_ists = 0; /*XXX really? */
- xvers_ts->ts_user = xstrdup (xvers_ts->ts_rcs);
- }
-
-@@ -1511,7 +1514,7 @@
- */
- static int
- patch_file (struct file_info *finfo, Vers_TS *vers_ts, int *docheckout,
-- struct stat *file_info, unsigned char *checksum)
-+ struct stat *file_info, md5_uint32 *checksum)
- {
- char *backup;
- char *file1;
---- cvs-1.12.13+real.orig/src/vers_ts.c
-+++ cvs-1.12.13+real/src/vers_ts.c
-@@ -268,7 +268,10 @@
- time_stamp_server (finfo->file, vers_ts, entdata);
- else
- #endif
-+ {
- vers_ts->ts_user = time_stamp (finfo->file);
-+ vers_ts->ts_user_ists = 1;
-+ }
- }
-
- return (vers_ts);
-@@ -339,6 +342,7 @@
- {
- struct tm *tm_p;
-
-+ vers_ts->ts_user_ists = 1;
- vers_ts->ts_user = xmalloc (25);
- /* We want to use the same timestamp format as is stored in the
- st_mtime. For unix (and NT I think) this *must* be universal
---- cvs-1.12.13+real.orig/src/version.c
-+++ cvs-1.12.13+real/src/version.c
-@@ -16,6 +16,7 @@
-
- #include "cvs.h"
-
-+static const
- #ifdef CLIENT_SUPPORT
- #ifdef SERVER_SUPPORT
- char *config_string = " (client/server)\n";
-@@ -81,4 +82,3 @@
- #endif
- return err;
- }
--
---- cvs-1.12.13+real.orig/src/watch.c
-+++ cvs-1.12.13+real/src/watch.c
-@@ -459,7 +459,7 @@
- cvs_output (p++, 1);
- if (*p == '\0')
- {
-- /* Only happens if attribute is misformed. */
-+ /* Only happens if attribute is malformed. */
- cvs_output ("\n", 1);
- break;
- }
---- cvs-1.12.13+real.orig/src/wrapper.c
-+++ cvs-1.12.13+real/src/wrapper.c
-@@ -86,7 +86,7 @@
- move this to a per-connection data structure, or better yet
- think about a cleaner solution. */
- static int wrap_setup_already_done = 0;
-- char *homedir;
-+ char *homedir = NULL;
-
- if (wrap_setup_already_done != 0)
- return;
-@@ -107,6 +107,11 @@
- free (file);
- }
-
-+#ifdef SERVER_SUPPORT
-+ if (!server_active)
-+#endif
-+ {
-+
- /* Then add entries found in home dir, (if user has one) and file
- exists. */
- homedir = get_homedir ();
-@@ -115,6 +120,8 @@
- hand it might be obnoxious to complain when CVS will function
- just fine without .cvswrappers (and many users won't even know what
- .cvswrappers is). */
-+ }
-+
- if (homedir != NULL)
- {
- char *file = strcat_filename_onto_homedir (homedir, CVSDOTWRAPPER);
-@@ -339,11 +346,19 @@
- if (!line || line[0] == '#')
- return;
-
-+ /* Allows user to declare all wrappers null and void */
-+ if (line[0] == '!') {
-+ wrap_kill ();
-+ return;
-+ }
-+
- memset (&e, 0, sizeof(e));
-
- /* Search for the wild card */
- while (*line && isspace ((unsigned char) *line))
- ++line;
-+ if (!*line)
-+ return;
- for (temp = line;
- *line && !isspace ((unsigned char) *line);
- ++line)
---- cvs-1.12.13+real.orig/src/zlib.c
-+++ cvs-1.12.13+real/src/zlib.c
-@@ -229,7 +229,7 @@
- would fetch all the available bytes, and at least one byte. */
-
- status = (*cb->buf->input) (cb->buf->closure, bd->text,
-- need, BUFFER_DATA_SIZE, &nread);
-+ need ? 1 : 0, BUFFER_DATA_SIZE, &nread);
-
- if (status == -2)
- /* Don't try to recover from memory allcoation errors. */
diff --git a/main/cvs/getcwd.patch b/main/cvs/getcwd.patch
deleted file mode 100644
index 42486176bc2..00000000000
--- a/main/cvs/getcwd.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-Otherwise the checkout on our bamboo-agents fail due to:
-"cvs [init aborted]: cannot get working directory: No such file or directory"
-
-This is caused by CVS using its bundled getcwd instead of the musl one.
-
---- old/lib/xgetcwd.c
-+++ new/lib/xgetcwd.c
-@@ -21,12 +21,12 @@
- #ifdef HAVE_CONFIG_H
- # include <config.h>
- #endif
-+#include <unistd.h>
-
- #include "xgetcwd.h"
-
- #include <errno.h>
-
--#include "getcwd.h"
- #include "xalloc.h"
-
- /* Return the current directory, newly allocated.
diff --git a/main/cvs/install-sh.patch b/main/cvs/install-sh.patch
deleted file mode 100644
index d4b46ffa2e8..00000000000
--- a/main/cvs/install-sh.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ur a/build-aux/install-sh b/build-aux/install-sh
---- a/build-aux/install-sh 2006-03-25 20:04:46 +0000
-+++ b/build-aux/install-sh 2007-09-14 10:53:29 +0100
-@@ -247,7 +247,7 @@
- fi
-
- if test -n "$dir_arg"; then
-- $doit $mkdircmd "$dst" \
-+ { test -d "$dst" || $doit $mkdircmd -p "$dst"; } \
- && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
- && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
- && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
diff --git a/main/cvs/mktime-configure.patch b/main/cvs/mktime-configure.patch
deleted file mode 100644
index becb6fb9d81..00000000000
--- a/main/cvs/mktime-configure.patch
+++ /dev/null
@@ -1,201 +0,0 @@
-https://bugs.gentoo.org/220040
-https://bugs.gentoo.org/570208
-
-update mktime check to latest autoconf version which is less buggy
-
---- a/configure
-+++ b/configure
-@@ -13496,26 +14256,25 @@
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h. */
- /* Test program from Paul Eggert and Tony Leneis. */
--#if TIME_WITH_SYS_TIME
-+#ifdef TIME_WITH_SYS_TIME
- # include <sys/time.h>
- # include <time.h>
- #else
--# if HAVE_SYS_TIME_H
-+# ifdef HAVE_SYS_TIME_H
- # include <sys/time.h>
- # else
- # include <time.h>
- # endif
- #endif
-
--#if HAVE_STDLIB_H
--# include <stdlib.h>
--#endif
-+#include <limits.h>
-+#include <stdlib.h>
-
--#if HAVE_UNISTD_H
-+#ifdef HAVE_UNISTD_H
- # include <unistd.h>
- #endif
-
--#if !HAVE_ALARM
-+#ifndef HAVE_ALARM
- # define alarm(X) /* empty */
- #endif
-
-@@ -13531,9 +14291,9 @@
- };
- #define N_STRINGS (sizeof (tz_strings) / sizeof (tz_strings[0]))
-
--/* Fail if mktime fails to convert a date in the spring-forward gap.
-+/* Return 0 if mktime fails to convert a date in the spring-forward gap.
- Based on a problem report from Andreas Jaeger. */
--static void
-+static int
- spring_forward_gap ()
- {
- /* glibc (up to about 1998-10-07) failed this test. */
-@@ -13552,29 +14312,27 @@
- tm.tm_min = 0;
- tm.tm_sec = 0;
- tm.tm_isdst = -1;
-- if (mktime (&tm) == (time_t)-1)
-- exit (1);
-+ return mktime (&tm) != (time_t) -1;
- }
-
--static void
-+static int
- mktime_test1 (now)
- time_t now;
- {
- struct tm *lt;
-- if ((lt = localtime (&now)) && mktime (lt) != now)
-- exit (1);
-+ return ! (lt = localtime (&now)) || mktime (lt) == now;
- }
-
--static void
-+static int
- mktime_test (now)
- time_t now;
- {
-- mktime_test1 (now);
-- mktime_test1 ((time_t) (time_t_max - now));
-- mktime_test1 ((time_t) (time_t_min + now));
-+ return (mktime_test1 (now)
-+ && mktime_test1 ((time_t) (time_t_max - now))
-+ && mktime_test1 ((time_t) (time_t_min + now)));
- }
-
--static void
-+static int
- irix_6_4_bug ()
- {
- /* Based on code from Ariel Faigon. */
-@@ -13585,11 +14345,10 @@
- tm.tm_sec = 0;
- tm.tm_isdst = -1;
- mktime (&tm);
-- if (tm.tm_mon != 2 || tm.tm_mday != 31)
-- exit (1);
-+ return tm.tm_mon == 2 && tm.tm_mday == 31;
- }
-
--static void
-+static int
- bigtime_test (j)
- int j;
- {
-@@ -13614,8 +14370,39 @@
- && lt->tm_wday == tm.tm_wday
- && ((lt->tm_isdst < 0 ? -1 : 0 < lt->tm_isdst)
- == (tm.tm_isdst < 0 ? -1 : 0 < tm.tm_isdst))))
-- exit (1);
-+ return 0;
- }
-+ return 1;
-+}
-+
-+static int
-+year_2050_test ()
-+{
-+ /* The correct answer for 2050-02-01 00:00:00 in Pacific time,
-+ ignoring leap seconds. */
-+ unsigned long int answer = 2527315200UL;
-+
-+ struct tm tm;
-+ time_t t;
-+ tm.tm_year = 2050 - 1900;
-+ tm.tm_mon = 2 - 1;
-+ tm.tm_mday = 1;
-+ tm.tm_hour = tm.tm_min = tm.tm_sec = 0;
-+ tm.tm_isdst = -1;
-+
-+ /* Use the portable POSIX.1 specification "TZ=PST8PDT,M4.1.0,M10.5.0"
-+ instead of "TZ=America/Vancouver" in order to detect the bug even
-+ on systems that don't support the Olson extension, or don't have the
-+ full zoneinfo tables installed. */
-+ putenv ("TZ=PST8PDT,M4.1.0,M10.5.0");
-+
-+ t = mktime (&tm);
-+
-+ /* Check that the result is either a failure, or close enough
-+ to the correct answer that we can assume the discrepancy is
-+ due to leap seconds. */
-+ return (t == (time_t) -1
-+ || (0 < t && answer - 120 <= t && t <= answer + 120));
- }
-
- int
-@@ -13629,12 +14416,15 @@
- isn't worth using anyway. */
- alarm (60);
-
-- for (time_t_max = 1; 0 < time_t_max; time_t_max *= 2)
-- continue;
-- time_t_max--;
-- if ((time_t) -1 < 0)
-- for (time_t_min = -1; (time_t) (time_t_min * 2) < 0; time_t_min *= 2)
-- continue;
-+ for (;;)
-+ {
-+ t = (time_t_max << 1) + 1;
-+ if (t <= time_t_max)
-+ break;
-+ time_t_max = t;
-+ }
-+ time_t_min = - ((time_t) ~ (time_t) 0 == (time_t) -1) - time_t_max;
-+
- delta = time_t_max / 997; /* a suitable prime number */
- for (i = 0; i < N_STRINGS; i++)
- {
-@@ -13642,18 +14432,22 @@
- putenv (tz_strings[i]);
-
- for (t = 0; t <= time_t_max - delta; t += delta)
-- mktime_test (t);
-- mktime_test ((time_t) 1);
-- mktime_test ((time_t) (60 * 60));
-- mktime_test ((time_t) (60 * 60 * 24));
--
-- for (j = 1; 0 < j; j *= 2)
-- bigtime_test (j);
-- bigtime_test (j - 1);
-+ if (! mktime_test (t))
-+ return 1;
-+ if (! (mktime_test ((time_t) 1)
-+ && mktime_test ((time_t) (60 * 60))
-+ && mktime_test ((time_t) (60 * 60 * 24))))
-+ return 1;
-+
-+ for (j = 1; ; j <<= 1)
-+ if (! bigtime_test (j))
-+ return 1;
-+ else if (INT_MAX / 2 < j)
-+ break;
-+ if (! bigtime_test (INT_MAX))
-+ return 1;
- }
-- irix_6_4_bug ();
-- spring_forward_gap ();
-- exit (0);
-+ return ! (irix_6_4_bug () && spring_forward_gap () && year_2050_test ());
- }
- _ACEOF
- rm -f conftest$ac_exeext
diff --git a/main/cxxopts/APKBUILD b/main/cxxopts/APKBUILD
new file mode 100644
index 00000000000..ca1733d2a71
--- /dev/null
+++ b/main/cxxopts/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=cxxopts
+pkgver=3.2.1
+pkgrel=0
+pkgdesc="Lightweight C++ command line option parser as a header only library"
+url="https://github.com/jarro2783/cxxopts"
+arch="noarch"
+license="MIT"
+makedepends="cmake ninja"
+subpackages="$pkgname-dev"
+source="https://github.com/jarro2783/cxxopts/archive/v$pkgver/cxxopts-$pkgver.tar.gz"
+
+build() {
+ cmake -G Ninja -B build \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCXXOPTS_BUILD_TESTS=ON
+ cmake --build build
+}
+
+check() {
+ cd build
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+7841fb3e6c3c2a057917c962e29fc0090e6ed06f5515aaa5e2a868fef59071a9a99b74d81c32cf613ecf10a68a4d96d6ad07805f48c7c3951ded096a2317dc3d cxxopts-3.2.1.tar.gz
+"
diff --git a/main/cyrus-sasl/APKBUILD b/main/cyrus-sasl/APKBUILD
index 560775e1c80..9fe8ab791c0 100644
--- a/main/cyrus-sasl/APKBUILD
+++ b/main/cyrus-sasl/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=cyrus-sasl
pkgver=2.1.28
-pkgrel=0
+pkgrel=6
pkgdesc="Cyrus Simple Authentication Service Layer (SASL)"
url="https://www.cyrusimap.org/sasl/"
arch="all"
-license="custom"
+license="BSD-3-Clause-Attribution AND BSD-4-Clause"
options="!check" # No test suite.
subpackages="
$pkgname-static
@@ -21,11 +21,12 @@ subpackages="
$pkgname-crammd5:_plugin
$pkgname-digestmd5:_plugin
$pkgname-login:_plugin
+ $pkgname-sql:_plugin
"
# use heimdal to avoid circular dep: cyrus-sasl -> krb5 -> openldap -> cyrus-sasl
makedepends="
gdbm-dev
- openssl1.1-compat-dev
+ openssl-dev>3
heimdal-dev
py3-sphinx
sqlite-dev
@@ -48,7 +49,6 @@ source="https://github.com/cyrusimap/cyrus-sasl/releases/download/cyrus-sasl-$pk
# 0:
# - CVE-2020-8032
-
prepare() {
default_prepare
aclocal --install
@@ -65,7 +65,6 @@ build() {
--mandir=/usr/share/man \
--enable-static \
--enable-shared \
- --disable-java \
--with-plugindir=/usr/lib/sasl2 \
--with-configdir=/etc/sasl2 \
--with-dbpath=/etc/sasl2/sasldb2 \
@@ -77,10 +76,15 @@ build() {
--with-saslauthd=/run/saslauthd \
--without-pwcheck \
--with-devrandom=/dev/urandom \
- --with-sqlite \
+ --enable-sql \
+ --without-mysql \
+ --without-pgsql \
+ --without-sqlite \
+ --with-sqlite3=/usr/lib \
--enable-anon \
--enable-cram \
--enable-digest \
+ --enable-httpform \
--enable-ntlm \
--enable-plain \
--enable-login \
diff --git a/main/cython/APKBUILD b/main/cython/APKBUILD
index 424ff4a2fc2..52d6808e055 100644
--- a/main/cython/APKBUILD
+++ b/main/cython/APKBUILD
@@ -2,34 +2,34 @@
# Contributor: Oleg Titov <oleg.titov@gmail.com>
# Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
pkgname=cython
-pkgver=0.29.24
-pkgrel=2
+pkgver=3.0.10
+pkgrel=0
pkgdesc="Cython is an optimising static compiler for both the Python & the extended Cython programming languages."
url="https://cython.org/"
arch="all"
license="Apache-2.0"
-makedepends="py3-setuptools python3-dev"
+makedepends="py3-gpep517 py3-setuptools py3-wheel python3-dev"
depends="python3"
-subpackages="cython-doc"
-source="cython-$pkgver.tar.gz::https://github.com/cython/cython/archive/$pkgver.tar.gz
-cython-test-fix.patch"
+subpackages="cython-pyc cython-doc"
+source="cython-$pkgver.tar.gz::https://github.com/cython/cython/archive/$pkgver.tar.gz"
build() {
- python3 setup.py build
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
}
check() {
- python3 runtests.py -j${JOBS:-$(nproc)}
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 runtests.py -j${JOBS:-$(nproc)}
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
install -Dm 644 LICENSE.txt "$pkgdir/usr/share/licenses/cython/license"
install -Dm 644 README.rst "$pkgdir/usr/share/doc/cython/readme.rst"
}
sha512sums="
-387a827f3cb7428248019744e3ed606a133d98ac882b83624d24ae0fdf8a8f2334978555d7d84e5cc4adaf715c541fef64e45bcbdda85ca33473c21f99360be8 cython-0.29.24.tar.gz
-6a924351d54636edf5c65309c285a7298a6b25d28a81812c636fd16901471b4d9522f271ec28c2e03c0a48fa926aa52bfbe60bf4cb80073d7837b81828a7220c cython-test-fix.patch
+97aa831cea96c1f3c51653c51fadb0aea8bdfdb076a2c898862637f52b826bcb9162d1b7aade3304c5650d0b894cb1083052f036365d79cd3d390e0486b33ac5 cython-3.0.10.tar.gz
"
diff --git a/main/cython/cython-test-fix.patch b/main/cython/cython-test-fix.patch
deleted file mode 100644
index 58ddce13c3d..00000000000
--- a/main/cython/cython-test-fix.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-From 9bc0abecb3a08ea13313200a51f1ee26a65e5be3 Mon Sep 17 00:00:00 2001
-From: Stefan Behnel <stefan_ml@behnel.de>
-Date: Sat, 3 Apr 2021 08:23:44 +0200
-Subject: [PATCH] Make a helper function in a C++ test correctly propagate
- exceptions so that it won't have to spit out compiler warnings.
-
----
- tests/run/cpp_stl_conversion.pyx | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tests/run/cpp_stl_conversion.pyx b/tests/run/cpp_stl_conversion.pyx
-index 5278c677ae..ccebc700ee 100644
---- a/tests/run/cpp_stl_conversion.pyx
-+++ b/tests/run/cpp_stl_conversion.pyx
-@@ -15,7 +15,7 @@ py_set = set
- py_xrange = xrange
- py_unicode = unicode
-
--cdef string add_strings(string a, string b):
-+cdef string add_strings(string a, string b) except *:
- return a + b
-
- def normalize(bytes b):
diff --git a/main/czmq/APKBUILD b/main/czmq/APKBUILD
index ea6a32574ec..7ee9be01846 100644
--- a/main/czmq/APKBUILD
+++ b/main/czmq/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=czmq
pkgver=4.2.1
-pkgrel=2
+pkgrel=4
pkgdesc="High-level C binding for ZeroMQ"
url="http://czmq.zeromq.org/"
arch="all !s390x" # zproxy test timeouts on s390x
@@ -30,7 +30,7 @@ build() {
check() {
cd build
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest -E '(zbeacon|zsock)'
}
package() {
diff --git a/main/d-feet/APKBUILD b/main/d-feet/APKBUILD
index f18e741687f..4ff51f0b0e9 100644
--- a/main/d-feet/APKBUILD
+++ b/main/d-feet/APKBUILD
@@ -3,7 +3,7 @@
pkgname=d-feet
pkgver=0.3.16
_v=${pkgver%.*}
-pkgrel=1
+pkgrel=3
pkgdesc="powerful D-Bus Debugger"
options="!check" # Testsuite loops infinitely
url="https://wiki.gnome.org/action/show/Apps/DFeet"
@@ -25,11 +25,11 @@ build() {
abuild-meson \
-Dtests=false \
output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
check() {
- meson test --no-rebuild -v -C output
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
diff --git a/main/dahdi-linux-lts/APKBUILD b/main/dahdi-linux-lts/APKBUILD
deleted file mode 100644
index 7f39b5f8771..00000000000
--- a/main/dahdi-linux-lts/APKBUILD
+++ /dev/null
@@ -1,86 +0,0 @@
-# Contributor: Timo Teras <timo.teras@iki.fi>
-# Contributor: wener <wenermail@gmail.com>
-# Maintainer: wener <wenermail@gmail.com>
-
-# when changing _ver we *must* bump _rel
-_name=dahdi-linux
-_ver=3.1.0
-_rel=0
-
-_flavor=${FLAVOR:-lts}
-_kpkg=linux-$_flavor
-_kver=5.15.51
-_krel=0
-
-_kpkgver="$_kver-r$_krel"
-_kabi="$_kver-$_krel-$_flavor"
-
-pkgname=$_name-$_flavor
-pkgver=$_kver
-pkgrel=$(( $_krel + $_rel ))
-
-pkgdesc="Digium Asterisk Hardware Device Interface drivers"
-url="https://www.asterisk.org/"
-arch="x86_64"
-license="GPL-2.0-or-later"
-depends="dahdi-linux $_kpkg=$_kpkgver"
-# we need wget and tar because make install downloads firmware and uses fancy
-# options for tar and wget.
-makedepends="$_kpkg-dev=$_kpkgver wget tar perl"
-subpackages="$pkgname-dev"
-source="http://downloads.digium.com/pub/telephony/dahdi-linux/releases/${_name}-$_ver.tar.gz
- dahdi-depmod.patch
- dahdi-bri_dchan.patch
- kernel-compat-5.4.patch
- kernel-5.6.patch
- kernel-5.9.patch
- "
-
-builddir="$srcdir/$_name-$_ver"
-
-prepare() {
- default_prepare
- # verify the kernel version
- local _kapkbuild="$startdir"/../../main/linux-$_flavor/APKBUILD
- if [ -f $_kapkbuild ]; then
- ( . $_kapkbuild
- pkgname=$_name-$_flavor
- [ "$_kver" != "$pkgver" ] && die "please update _kver to $pkgver"
- [ "$_krel" != "$pkgrel" ] && die "please update _krel to $pkgrel"
- return 0
- )
- fi
-}
-
-build() {
- cd "$srcdir/$_name-$_ver"
- make KVERS="${_kabi}" DYNFS="yes"
-}
-
-package() {
- cd "$srcdir/$_name-$_ver"
- make KVERS="${_kabi}" DYNFS="yes" \
- DESTDIR="$pkgdir" install-modules
- rm -rf "$pkgdir"/lib/firmware "$pkgdir"/usr/lib/hotplug/firmware \
- "$pkgdir"/usr/include || true
-}
-
-# since we sourced the APKBUILD above we got the dev() function there to
-# so we override it again.
-depends_dev="dahdi-linux-dev"
-dev() {
- default_dev
- local dir="$subpkgdir"/usr/src/dahdi-headers-${_kabi}
- install -D "$srcdir"/$_name-$_ver/drivers/dahdi/Module.symvers \
- "$dir"/drivers/dahdi/Module.symvers
- ln -s /usr/include "$dir"/include
-}
-
-sha512sums="
-440f5e44c933c609f2b3cfcf013c84bcd0c37929a43d69aac0276b11484cb890cd5939c5ac5950cad54d934d27ee6ff0b18f2bdd58477ed9be8055de107727b4 dahdi-linux-3.1.0.tar.gz
-aba01eb90d9db1c595ff22078c76aadb20900486b5794d38b7ee61fa30d2fb51be318a4d059246017640447aee03fb09bb5514c818e3caa1cd98e331ec065173 dahdi-depmod.patch
-fa2fa9e96eefc0f31a1a4a8f8f44e77936f6da0d7b74fe3c3d1f0de085621744ae4367932ac97a10b7f96b7d0954843b0bfe07a251b85434079cc6da29e243ba dahdi-bri_dchan.patch
-a03fde27c801bd7a9f5267505072a50dc738dcac9cafb08539bbd38eb78f3bb688f067bbbcbe05521a6f38fe28d4e8bfee68c30acea24647a4ea0d28a05bd987 kernel-compat-5.4.patch
-136f49357761252cde233e664c1972beb140877ae46d8095364377eafcbe3ca908adcb6741881d9b0d0716a8525cda134e1db221f38b1ef3d39aea0b9c522b0d kernel-5.6.patch
-2430f50caf6145c0fc3c318fb54968004939a5eb7a3e2d85e9a91a2a71b8408a16cecc63e8c741659b6974bad078d0ead540e5364729e29a62ba81c84638923a kernel-5.9.patch
-"
diff --git a/main/dahdi-linux-lts/dahdi-bri_dchan.patch b/main/dahdi-linux-lts/dahdi-bri_dchan.patch
deleted file mode 100644
index 8d2ba97fd1e..00000000000
--- a/main/dahdi-linux-lts/dahdi-bri_dchan.patch
+++ /dev/null
@@ -1,167 +0,0 @@
-# Translate the D channels to a standard channel data.
-# The HFC chipset provides us the D channel as data, but
-# Zaptel expects it as a standard channel with 1000 samples
-# per second.
-
-Index: dahdi-linux-2.5.0/include/dahdi/kernel.h
-===================================================================
---- dahdi-linux-2.5.0.orig/include/dahdi/kernel.h 2011-06-29 18:32:40.000000000 +0300
-+++ dahdi-linux-2.5.0/include/dahdi/kernel.h 2011-08-15 14:14:26.000000000 +0300
-@@ -413,6 +413,13 @@
- int statcount;
- int lastnumbufs;
- #endif
-+#ifdef CONFIG_DAHDI_BRI_DCHANS
-+ int bytes2receive;
-+ int maxbytes2transmit; /* size of the tx buffer in the card driver */
-+ int bytes2transmit;
-+ int eofrx;
-+ int eoftx;
-+#endif
- spinlock_t lock;
- char name[40];
- /* Specified by DAHDI */
-@@ -723,6 +730,9 @@
- DAHDI_FLAGBIT_TXUNDERRUN = 22, /*!< Transmit underrun condition */
- DAHDI_FLAGBIT_RXOVERRUN = 23, /*!< Receive overrun condition */
- DAHDI_FLAGBIT_DEVFILE = 25, /*!< Channel has a sysfs dev file */
-+#if defined(CONFIG_DAHDI_BRI_DCHANS)
-+ DAHDI_FLAGBIT_BRIDCHAN = 26, /*!< hardhdlc-like handling of the D channel */
-+#endif
- };
-
- #ifdef CONFIG_DAHDI_NET
-@@ -789,6 +799,7 @@
- #define DAHDI_FLAG_BUFEVENTS DAHDI_FLAG(BUFEVENTS)
- #define DAHDI_FLAG_TXUNDERRUN DAHDI_FLAG(TXUNDERRUN)
- #define DAHDI_FLAG_RXOVERRUN DAHDI_FLAG(RXOVERRUN)
-+#define DAHDI_FLAG_BRIDCHAN DAHDI_FLAG(BRIDCHAN)
-
- struct file;
-
-Index: dahdi-linux-2.5.0/include/dahdi/dahdi_config.h
-===================================================================
---- dahdi-linux-2.5.0.orig/include/dahdi/dahdi_config.h 2011-01-05 17:52:03.000000000 +0200
-+++ dahdi-linux-2.5.0/include/dahdi/dahdi_config.h 2011-08-15 14:13:01.000000000 +0300
-@@ -195,4 +195,10 @@
- */
- /* #define CONFIG_DAHDI_MIRROR */
-
-+/*
-+ * Uncomment the following for BRI D channels
-+ *
-+ */
-+#define CONFIG_DAHDI_BRI_DCHANS
-+
- #endif
-Index: dahdi-linux-2.5.0/drivers/dahdi/dahdi-base.c
-===================================================================
---- dahdi-linux-2.5.0.orig/drivers/dahdi/dahdi-base.c 2011-07-21 19:26:31.000000000 +0300
-+++ dahdi-linux-2.5.0/drivers/dahdi/dahdi-base.c 2011-08-15 14:13:01.000000000 +0300
-@@ -7224,11 +7224,40 @@
- *(txb++) = fasthdlc_tx_run_nocheck(&ms->txhdlc);
- }
- bytes -= left;
-+#ifdef CONFIG_DAHDI_BRI_DCHANS
-+ } else if (test_bit(DAHDI_FLAGBIT_BRIDCHAN, &ms->flags)) {
-+ /*
-+ * Let's get this right, we want to transmit complete frames only.
-+ * The card driver will do the dirty HDLC work for us.
-+ * txb (transmit buffer) is supposed to be big enough to store one frame
-+ * we will make this as big as the D fifo (1KB or 2KB)
-+ */
-+
-+ /* there are 'left' bytes in the user buffer left to transmit */
-+ left = ms->writen[ms->outwritebuf] - ms->writeidx[ms->outwritebuf] - 2;
-+ if (left > ms->maxbytes2transmit) {
-+ memcpy(txb, buf + ms->writeidx[ms->outwritebuf], ms->maxbytes2transmit);
-+ ms->writeidx[ms->outwritebuf] += ms->maxbytes2transmit;
-+ txb += ms->maxbytes2transmit;
-+ ms->bytes2transmit = ms->maxbytes2transmit;
-+ ms->eoftx = 0;
-+ } else {
-+ memcpy(txb, buf + ms->writeidx[ms->outwritebuf], left);
-+ ms->writeidx[ms->outwritebuf] += left + 2;
-+ txb += left + 2;
-+ ms->bytes2transmit = left;
-+ ms->eoftx = 1;
-+ }
-+ bytes = 0;
-+#endif
- } else {
- memcpy(txb, buf + ms->writeidx[ms->outwritebuf], left);
- ms->writeidx[ms->outwritebuf]+=left;
- txb += left;
- bytes -= left;
-+#if defined(CONFIG_DAHDI_BRI_DCHANS)
-+ ms->bytes2transmit=DAHDI_CHUNKSIZE;
-+#endif
- }
- /* Check buffer status */
- if (ms->writeidx[ms->outwritebuf] >= ms->writen[ms->outwritebuf]) {
-@@ -7285,6 +7314,17 @@
- /* Transmit a flag if this is an HDLC channel */
- if (ms->flags & DAHDI_FLAG_HDLC)
- fasthdlc_tx_frame_nocheck(&ms->txhdlc);
-+#if defined(CONFIG_DAHDI_BRI_DCHANS)
-+ if (test_bit(DAHDI_FLAGBIT_BRIDCHAN, &ms->flags)) {
-+ // if (ms->bytes2transmit > 0) {
-+ // txb += 2;
-+ // ms->bytes2transmit -= 2;
-+ bytes=0;
-+ ms->eoftx = 1;
-+// printk(KERN_CRIT "zaptel EOF(%d) bytes2transmit %d\n",ms->eoftx,ms->bytes2transmit);
-+ // }
-+ }
-+#endif
- #ifdef CONFIG_DAHDI_NET
- if (dahdi_have_netdev(ms))
- netif_wake_queue(chan_to_netdev(ms));
-@@ -7346,6 +7386,12 @@
- }
- needtxunderrun += bytes;
- bytes = 0;
-+#if defined(CONFIG_DAHDI_BRI_DCHANS)
-+ } else if (test_bit(DAHDI_FLAGBIT_BRIDCHAN, &ms->flags)) {
-+ ms->bytes2transmit = 0;
-+ ms->eoftx = 0;
-+ bytes = 0;
-+#endif
- } else {
- memset(txb, DAHDI_LIN2X(0, ms), bytes); /* Lastly we use silence on telephony channels */
- needtxunderrun += bytes;
-@@ -8267,6 +8313,14 @@
- int res;
- int left, x;
-
-+#if defined(CONFIG_DAHDI_BRI_DCHANS)
-+ if (test_bit(DAHDI_FLAGBIT_BRIDCHAN, &ms->flags)) {
-+ bytes = ms->bytes2receive;
-+ if (bytes < 1) return;
-+// printk(KERN_CRIT "bytes2receive %d\n",ms->bytes2receive);
-+ }
-+#endif
-+
- while(bytes) {
- #if defined(CONFIG_DAHDI_NET) || defined(CONFIG_DAHDI_PPP)
- skb = NULL;
-@@ -8324,6 +8378,19 @@
- }
- }
- }
-+#ifdef CONFIG_DAHDI_BRI_DCHANS
-+ } else if (test_bit(DAHDI_FLAGBIT_BRIDCHAN, &ms->flags)) {
-+ memcpy(buf + ms->readidx[ms->inreadbuf], rxb, left);
-+ rxb += left;
-+ ms->readidx[ms->inreadbuf] += left;
-+ bytes -= left;
-+ if (ms->eofrx == 1) {
-+ eof=1;
-+ }
-+// printk(KERN_CRIT "receiving %d bytes\n",ms->bytes2receive);
-+ ms->bytes2receive = 0;
-+ ms->eofrx = 0;
-+#endif
- } else {
- /* Not HDLC */
- memcpy(buf + ms->readidx[ms->inreadbuf], rxb, left);
diff --git a/main/dahdi-linux-lts/dahdi-depmod.patch b/main/dahdi-linux-lts/dahdi-depmod.patch
deleted file mode 100644
index 289aad403b3..00000000000
--- a/main/dahdi-linux-lts/dahdi-depmod.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Index: dahdi-linux-2.0.0-rc4/Makefile
-===================================================================
---- dahdi-linux-2.0.0-rc4.orig/Makefile 2008-09-09 14:07:23.000000000 +0300
-+++ dahdi-linux-2.0.0-rc4/Makefile 2008-09-09 14:12:31.000000000 +0300
-@@ -190,7 +190,7 @@
- build_tools/uninstall-modules dahdi $(KVERS)
- endif
- $(KMAKE) INSTALL_MOD_PATH=$(DESTDIR) INSTALL_MOD_DIR=dahdi modules_install
-- [ `id -u` = 0 ] && /sbin/depmod -a $(KVERS) || :
-+ [ -z "$(DESTDIR)" -a `id -u` = 0 ] && /sbin/depmod -a $(KVERS) || :
-
- uninstall-modules:
- ifdef DESTDIR
-@@ -203,7 +203,7 @@
- rm -rf /lib/modules/$(KVERS)/dahdi; \
- echo "done."; \
- fi
-- [ `id -u` = 0 ] && /sbin/depmod -a $(KVERS) || :
-+ [ -z "$(DESTDIR)" -a `id -u` = 0 ] && /sbin/depmod -a $(KVERS) || :
- endif
-
- update:
diff --git a/main/dahdi-linux-lts/kernel-5.6.patch b/main/dahdi-linux-lts/kernel-5.6.patch
deleted file mode 100644
index 6cb63b86493..00000000000
--- a/main/dahdi-linux-lts/kernel-5.6.patch
+++ /dev/null
@@ -1,499 +0,0 @@
-From 34b9c77c9ab2794d4e912461e4c1080c4b1f6184 Mon Sep 17 00:00:00 2001
-From: Shaun Ruffell <sruffell@sruffell.net>
-Date: Sun, 23 Feb 2020 19:39:24 -0600
-Subject: [PATCH] Use proc_ops on kernels >= 5.6
-
-In commit (d56c0d45f0e27 "proc: decouple proc from VFS with "struct proc_ops"")
-[1], proc_create_data no longer takes a file_operations structure, but instead
-takes a struct proc_ops in order to conserve memory in the kernel.
-
-This change is necessary for DAHDI to work with kernels >= 5.6
-
-[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d56c0d45f0e27f814e87a1676b6bd
-
-Signed-off-by: Shaun Ruffell <sruffell@sruffell.net>
----
- drivers/dahdi/dahdi-base.c | 9 +++++
- drivers/dahdi/dahdi_dynamic_ethmf.c | 18 +++++++---
- drivers/dahdi/xpp/card_bri.c | 23 ++++++++++---
- drivers/dahdi/xpp/card_fxo.c | 25 ++++++++++----
- drivers/dahdi/xpp/card_fxs.c | 35 +++++++++++++++++---
- drivers/dahdi/xpp/xbus-core.c | 62 ++++++++++++++++++++++++++++-------
- drivers/dahdi/xpp/xpp_dahdi.c | 23 ++++++++++---
- drivers/dahdi/xpp/xpp_usb.c | 26 +++++++++++----
- include/dahdi/kernel.h | 11 +++++--
- 9 files changed, 187 insertions(+), 45 deletions(-)
-
-diff --git a/drivers/dahdi/dahdi-base.c b/drivers/dahdi/dahdi-base.c
-index d05eff9..4fb06d9 100644
---- a/drivers/dahdi/dahdi-base.c
-+++ b/drivers/dahdi/dahdi-base.c
-@@ -1015,6 +1015,14 @@ static int dahdi_proc_open(struct inode *inode, struct file *file)
- return single_open(file, dahdi_seq_show, PDE_DATA(inode));
- }
-
-+#ifdef DAHDI_HAVE_PROC_OPS
-+static const struct proc_ops dahdi_proc_ops = {
-+ .proc_open = dahdi_proc_open,
-+ .proc_read = seq_read,
-+ .proc_lseek = seq_lseek,
-+ .proc_release = single_release,
-+};
-+#else
- static const struct file_operations dahdi_proc_ops = {
- .owner = THIS_MODULE,
- .open = dahdi_proc_open,
-@@ -1022,6 +1030,7 @@ static const struct file_operations dahdi_proc_ops = {
- .llseek = seq_lseek,
- .release = single_release,
- };
-+#endif /* DAHDI_HAVE_PROC_OPS */
-
- #endif
-
-diff --git a/drivers/dahdi/dahdi_dynamic_ethmf.c b/drivers/dahdi/dahdi_dynamic_ethmf.c
-index b729079..022afc7 100644
---- a/drivers/dahdi/dahdi_dynamic_ethmf.c
-+++ b/drivers/dahdi/dahdi_dynamic_ethmf.c
-@@ -733,12 +733,22 @@ static int ztdethmf_proc_open(struct inode *inode, struct file *file)
- return single_open(file, ztdethmf_proc_show, NULL);
- }
-
-+#ifdef DAHDI_HAVE_PROC_OPS
-+static const struct proc_ops ztdethmf_proc_fops = {
-+ .proc_open = ztdethmf_proc_open,
-+ .proc_read = seq_read,
-+ .proc_lseek = seq_lseek,
-+ .proc_release = seq_release,
-+};
-+#else
- static const struct file_operations ztdethmf_proc_fops = {
-- .open = ztdethmf_proc_open,
-- .read = seq_read,
-- .llseek = seq_lseek,
-- .release = seq_release,
-+ .owner = THIS_MODULE,
-+ .open = ztdethmf_proc_open,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = seq_release,
- };
-+#endif /* DAHDI_HAVE_PROC_OPS */
- #endif
-
- static int __init ztdethmf_init(void)
-diff --git a/drivers/dahdi/xpp/card_bri.c b/drivers/dahdi/xpp/card_bri.c
-index 12efecf..5d819ca 100644
---- a/drivers/dahdi/xpp/card_bri.c
-+++ b/drivers/dahdi/xpp/card_bri.c
-@@ -153,8 +153,12 @@ static int write_state_register(xpd_t *xpd, __u8 value);
- static bool bri_packet_is_valid(xpacket_t *pack);
- static void bri_packet_dump(const char *msg, xpacket_t *pack);
- #ifdef CONFIG_PROC_FS
-+#ifdef DAHDI_HAVE_PROC_OPS
-+static const struct proc_ops proc_bri_info_ops;
-+#else
- static const struct file_operations proc_bri_info_ops;
- #endif
-+#endif
- static int bri_spanconfig(struct file *file, struct dahdi_span *span,
- struct dahdi_lineconfig *lc);
- static int bri_chanconfig(struct file *file, struct dahdi_chan *chan,
-@@ -1740,13 +1744,22 @@ static int proc_bri_info_open(struct inode *inode, struct file *file)
- return single_open(file, proc_bri_info_show, PDE_DATA(inode));
- }
-
-+#ifdef DAHDI_HAVE_PROC_OPS
-+static const struct proc_ops proc_bri_info_ops = {
-+ .proc_open = proc_bri_info_open,
-+ .proc_read = seq_read,
-+ .proc_lseek = seq_lseek,
-+ .proc_release = single_release,
-+};
-+#else
- static const struct file_operations proc_bri_info_ops = {
-- .owner = THIS_MODULE,
-- .open = proc_bri_info_open,
-- .read = seq_read,
-- .llseek = seq_lseek,
-- .release = single_release,
-+ .owner = THIS_MODULE,
-+ .open = proc_bri_info_open,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = single_release,
- };
-+#endif /* DAHDI_HAVE_PROC_OPS */
- #endif
-
- static int bri_xpd_probe(struct device *dev)
-diff --git a/drivers/dahdi/xpp/card_fxo.c b/drivers/dahdi/xpp/card_fxo.c
-index 1dbd299..82dbb7a 100644
---- a/drivers/dahdi/xpp/card_fxo.c
-+++ b/drivers/dahdi/xpp/card_fxo.c
-@@ -107,9 +107,13 @@ enum fxo_leds {
- static bool fxo_packet_is_valid(xpacket_t *pack);
- static void fxo_packet_dump(const char *msg, xpacket_t *pack);
- #ifdef CONFIG_PROC_FS
-+#ifdef DAHDI_HAVE_PROC_OPS
-+static const struct proc_ops proc_fxo_info_ops;
-+#else
- static const struct file_operations proc_fxo_info_ops;
-+#endif
- #ifdef WITH_METERING
--static const struct file_operations proc_xpd_metering_ops;
-+static const struct proc_ops proc_xpd_metering_ops;
- #endif
- #endif
- static void dahdi_report_battery(xpd_t *xpd, lineno_t chan);
-@@ -1484,13 +1488,22 @@ static int proc_fxo_info_open(struct inode *inode, struct file *file)
- return single_open(file, proc_fxo_info_show, PDE_DATA(inode));
- }
-
-+#ifdef DAHDI_HAVE_PROC_OPS
-+static const struct proc_ops proc_fxo_info_ops = {
-+ .proc_open = proc_fxo_info_open,
-+ .proc_read = seq_read,
-+ .proc_lseek = seq_lseek,
-+ .proc_release = single_release,
-+};
-+#else
- static const struct file_operations proc_fxo_info_ops = {
-- .owner = THIS_MODULE,
-- .open = proc_fxo_info_open,
-- .read = seq_read,
-- .llseek = seq_lseek,
-- .release = single_release,
-+ .owner = THIS_MODULE,
-+ .open = proc_fxo_info_open,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = single_release,
- };
-+#endif
-
- #ifdef WITH_METERING
- static int proc_xpd_metering_show(struct seq_file *sfile, void *not_used)
-diff --git a/drivers/dahdi/xpp/card_fxs.c b/drivers/dahdi/xpp/card_fxs.c
-index a3a9233..bb1c169 100644
---- a/drivers/dahdi/xpp/card_fxs.c
-+++ b/drivers/dahdi/xpp/card_fxs.c
-@@ -160,11 +160,19 @@ enum neon_state {
- static bool fxs_packet_is_valid(xpacket_t *pack);
- static void fxs_packet_dump(const char *msg, xpacket_t *pack);
- #ifdef CONFIG_PROC_FS
-+#ifdef DAHDI_HAVE_PROC_OPS
-+static const struct proc_ops proc_fxs_info_ops;
-+#else
- static const struct file_operations proc_fxs_info_ops;
-+#endif
- #ifdef WITH_METERING
-+#ifdef DAHDI_HAVE_PROC_OPS
-+static const struct proc_ops proc_xpd_metering_ops;
-+#else
- static const struct file_operations proc_xpd_metering_ops;
- #endif
- #endif
-+#endif
- static void start_stop_vm_led(xbus_t *xbus, xpd_t *xpd, lineno_t pos);
-
- #define PROC_FXS_INFO_FNAME "fxs_info"
-@@ -2115,13 +2123,22 @@ static int proc_fxs_info_open(struct inode *inode, struct file *file)
- return single_open(file, proc_fxs_info_show, PDE_DATA(inode));
- }
-
-+#ifdef DAHDI_HAVE_PROC_OPS
-+static const struct proc_ops proc_fxs_info_ops = {
-+ .proc_open = proc_fxs_info_open,
-+ .proc_read = seq_read,
-+ .proc_lseek = seq_lseek,
-+ .proc_release = single_release,
-+};
-+#else
- static const struct file_operations proc_fxs_info_ops = {
-- .owner = THIS_MODULE,
-- .open = proc_fxs_info_open,
-- .read = seq_read,
-- .llseek = seq_lseek,
-- .release = single_release,
-+ .owner = THIS_MODULE,
-+ .open = proc_fxs_info_open,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = single_release,
- };
-+#endif
-
- #ifdef WITH_METERING
- static ssize_t proc_xpd_metering_write(struct file *file,
-@@ -2165,12 +2182,20 @@ static int proc_xpd_metering_open(struct inode *inode, struct file *file)
- file->private_data = PDE_DATA(inode);
- }
-
-+#ifdef DAHDI_HAVE_PROC_OPS
-+static const struct proc_ops proc_xpd_metering_ops = {
-+ .proc_open = proc_xpd_metering_open,
-+ .proc_write = proc_xpd_metering_write,
-+ .proc_release = single_release,
-+};
-+#else
- static const struct file_operations proc_xpd_metering_ops = {
- .owner = THIS_MODULE,
- .open = proc_xpd_metering_open,
- .write = proc_xpd_metering_write,
- .release = single_release,
- };
-+#endif /* DAHDI_HAVE_PROC_OPS */
- #endif
- #endif
-
-diff --git a/drivers/dahdi/xpp/xbus-core.c b/drivers/dahdi/xpp/xbus-core.c
-index fc4ce7b..ed7c0f9 100644
---- a/drivers/dahdi/xpp/xbus-core.c
-+++ b/drivers/dahdi/xpp/xbus-core.c
-@@ -50,8 +50,15 @@ static const char rcsid[] = "$Id$";
- #ifdef PROTOCOL_DEBUG
- #ifdef CONFIG_PROC_FS
- #define PROC_XBUS_COMMAND "command"
-+
-+#ifdef DAHDI_HAVE_PROC_OPS
-+static const struct proc_ops proc_xbus_command_ops;
-+#else
- static const struct file_operations proc_xbus_command_ops;
-+#endif /* DAHDI_HAVE_PROC_OPS */
-+
- #endif
-+
- #endif
-
- /* Command line parameters */
-@@ -65,8 +72,15 @@ static DEF_PARM_BOOL(dahdi_autoreg, 0, 0444,
- "Register devices automatically (1) or not (0). UNUSED.");
-
- #ifdef CONFIG_PROC_FS
-+
-+#ifdef DAHDI_HAVE_PROC_OPS
-+static const struct proc_ops xbus_read_proc_ops;
-+#else
- static const struct file_operations xbus_read_proc_ops;
--#endif
-+#endif /* DAHDI_HAVE_PROC_OPS */
-+
-+#endif /* CONFIG_PROC_FS */
-+
- static void transport_init(xbus_t *xbus, struct xbus_ops *ops,
- ushort max_send_size,
- struct device *transport_device, void *priv);
-@@ -1828,13 +1842,22 @@ static int xbus_read_proc_open(struct inode *inode, struct file *file)
- return single_open(file, xbus_proc_show, PDE_DATA(inode));
- }
-
-+#ifdef DAHDI_HAVE_PROC_OPS
-+static const struct proc_ops xbus_read_proc_ops = {
-+ .proc_open = xbus_read_proc_open,
-+ .proc_read = seq_read,
-+ .proc_lseek = seq_lseek,
-+ .proc_release = single_release,
-+};
-+#else
- static const struct file_operations xbus_read_proc_ops = {
-- .owner = THIS_MODULE,
-- .open = xbus_read_proc_open,
-- .read = seq_read,
-- .llseek = seq_lseek,
-- .release = single_release,
-+ .owner = THIS_MODULE,
-+ .open = xbus_read_proc_open,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = single_release,
- };
-+#endif /* DAHDI_HAVE_PROC_OPS */
-
- #ifdef PROTOCOL_DEBUG
- static ssize_t proc_xbus_command_write(struct file *file,
-@@ -1927,11 +1950,19 @@ static int proc_xbus_command_open(struct inode *inode, struct file *file)
- return 0;
- }
-
-+#ifdef DAHDI_HAVE_PROC_OPS
-+static const struct proc_ops proc_xbus_command_ops = {
-+ .proc_open = proc_xbus_command_open,
-+ .proc_write = proc_xbus_command_write,
-+};
-+#else
- static const struct file_operations proc_xbus_command_ops = {
- .owner = THIS_MODULE,
- .open = proc_xbus_command_open,
- .write = proc_xbus_command_write,
- };
-+#endif /* DAHDI_HAVE_PROC_OPS */
-+
- #endif
-
- static int xpp_proc_read_show(struct seq_file *sfile, void *data)
-@@ -1961,13 +1992,22 @@ static int xpp_proc_read_open(struct inode *inode, struct file *file)
- return single_open(file, xpp_proc_read_show, PDE_DATA(inode));
- }
-
-+#ifdef DAHDI_HAVE_PROC_OPS
-+static const struct proc_ops xpp_proc_read_ops = {
-+ .proc_open = xpp_proc_read_open,
-+ .proc_read = seq_read,
-+ .proc_lseek = seq_lseek,
-+ .proc_release = single_release,
-+};
-+#else
- static const struct file_operations xpp_proc_read_ops = {
-- .owner = THIS_MODULE,
-- .open = xpp_proc_read_open,
-- .read = seq_read,
-- .llseek = seq_lseek,
-- .release = single_release,
-+ .owner = THIS_MODULE,
-+ .open = xpp_proc_read_open,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = single_release,
- };
-+#endif /* DAHDI_HAVE_PROC_OPS */
-
- #endif
-
-diff --git a/drivers/dahdi/xpp/xpp_dahdi.c b/drivers/dahdi/xpp/xpp_dahdi.c
-index ecc272b..fd8b835 100644
---- a/drivers/dahdi/xpp/xpp_dahdi.c
-+++ b/drivers/dahdi/xpp/xpp_dahdi.c
-@@ -103,8 +103,12 @@ int total_registered_spans(void)
- }
-
- #ifdef CONFIG_PROC_FS
-+#ifdef DAHDI_HAVE_PROC_OPS
-+static const struct proc_ops xpd_read_proc_ops;
-+#else
- static const struct file_operations xpd_read_proc_ops;
- #endif
-+#endif
-
- /*------------------------- XPD Management -------------------------*/
-
-@@ -392,13 +396,22 @@ static int xpd_read_proc_open(struct inode *inode, struct file *file)
- return single_open(file, xpd_read_proc_show, PDE_DATA(inode));
- }
-
-+#ifdef DAHDI_HAVE_PROC_OPS
-+static const struct proc_ops xpd_read_proc_ops = {
-+ .proc_open = xpd_read_proc_open,
-+ .proc_read = seq_read,
-+ .proc_lseek = seq_lseek,
-+ .proc_release = single_release,
-+};
-+#else
- static const struct file_operations xpd_read_proc_ops = {
-- .owner = THIS_MODULE,
-- .open = xpd_read_proc_open,
-- .read = seq_read,
-- .llseek = seq_lseek,
-- .release = single_release,
-+ .owner = THIS_MODULE,
-+ .open = xpd_read_proc_open,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = single_release,
- };
-+#endif
-
- #endif
-
-diff --git a/drivers/dahdi/xpp/xpp_usb.c b/drivers/dahdi/xpp/xpp_usb.c
-index 1a591b1..bae2f57 100644
---- a/drivers/dahdi/xpp/xpp_usb.c
-+++ b/drivers/dahdi/xpp/xpp_usb.c
-@@ -227,9 +227,14 @@ static void xpp_receive_callback(struct urb *urb);
- static int xusb_probe(struct usb_interface *interface,
- const struct usb_device_id *id);
- static void xusb_disconnect(struct usb_interface *interface);
--#ifdef CONFIG_PROC_FS
-+
-+#ifdef CONFIG_PROC_FS
-+#ifdef DAHDI_HAVE_PROC_OPS
-+static const struct proc_ops xusb_read_proc_ops;
-+#else
- static const struct file_operations xusb_read_proc_ops;
- #endif
-+#endif
-
- /*------------------------------------------------------------------*/
-
-@@ -1108,13 +1113,22 @@ static int xusb_read_proc_open(struct inode *inode, struct file *file)
- return single_open(file, xusb_read_proc_show, PDE_DATA(inode));
- }
-
-+#ifdef DAHDI_HAVE_PROC_OPS
-+static const struct proc_ops xusb_read_proc_ops = {
-+ .proc_open = xusb_read_proc_open,
-+ .proc_read = seq_read,
-+ .proc_lseek = seq_lseek,
-+ .proc_release = single_release,
-+};
-+#else
- static const struct file_operations xusb_read_proc_ops = {
-- .owner = THIS_MODULE,
-- .open = xusb_read_proc_open,
-- .read = seq_read,
-- .llseek = seq_lseek,
-- .release = single_release,
-+ .owner = THIS_MODULE,
-+ .open = xusb_read_proc_open,
-+ .read = seq_read,
-+ .llseek = seq_lseek,
-+ .release = single_release,
- };
-+#endif
-
-
- #endif
-diff --git a/include/dahdi/kernel.h b/include/dahdi/kernel.h
-index cf629eb..dc16f81 100644
---- a/include/dahdi/kernel.h
-+++ b/include/dahdi/kernel.h
-@@ -62,6 +62,8 @@
- #define HAVE_NET_DEVICE_OPS
- #endif
-
-+#define DAHDI_HAVE_PROC_OPS
-+
- /* __dev* were removed in 3.8. They still have effect in 2.6.18. */
- #ifndef __devinit
- # define __devinit
-@@ -1369,6 +1371,10 @@ static inline short dahdi_txtone_nextsample(struct dahdi_chan *ss)
- /*! Maximum audio mask */
- #define DAHDI_FORMAT_AUDIO_MASK ((1 << 16) - 1)
-
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(5, 6, 0)
-+
-+#undef DAHDI_HAVE_PROC_OPS
-+
- #if LINUX_VERSION_CODE < KERNEL_VERSION(4, 15, 0)
-
- #ifndef TIMER_DATA_TYPE
-@@ -1479,14 +1485,13 @@ static inline void *PDE_DATA(const struct inode *inode)
- #endif /* 4.10.0 */
- #endif /* 4.11.0 */
- #endif /* 4.13.0 */
--#else /* >= 4.15.0 */
-+#endif /* 4.15.0 */
-+#endif /* 5.6 */
-
- #ifndef TIMER_DATA_TYPE
- #define TIMER_DATA_TYPE struct timer_list *
- #endif
-
--#endif /* 4.15.0 */
--
- #ifndef dahdi_ktime_equal
- static inline int dahdi_ktime_equal(const ktime_t cmp1, const ktime_t cmp2)
- {
---
-1.7.9.5
-
diff --git a/main/dahdi-linux-lts/kernel-5.9.patch b/main/dahdi-linux-lts/kernel-5.9.patch
deleted file mode 100644
index 75c23a548f5..00000000000
--- a/main/dahdi-linux-lts/kernel-5.9.patch
+++ /dev/null
@@ -1,249 +0,0 @@
-From 4df746fe3ffd6678f36b16c9b0750fa552da92e4 Mon Sep 17 00:00:00 2001
-From: Shaun Ruffell <sruffell@sruffell.net>
-Date: Mon, 16 Nov 2020 22:01:21 -0600
-Subject: [PATCH] Remove support for 32-bit userspace with 64-bit kernel
-
-I am not aware of anyone who tests in this configuration, and I'm not
-sure if it currently works. I'll remove any support for the time being
-and can add it back in if someone comes forward needing support for it.
-
-Signed-off-by: Shaun Ruffell <sruffell@sruffell.net>
----
- drivers/dahdi/dahdi-base.c | 34 ----------------------------------
- 1 file changed, 34 deletions(-)
-
-diff --git a/drivers/dahdi/dahdi-base.c b/drivers/dahdi/dahdi-base.c
-index 4fb06d9..9fb0c79 100644
---- a/drivers/dahdi/dahdi-base.c
-+++ b/drivers/dahdi/dahdi-base.c
-@@ -7019,17 +7019,6 @@ static int dahdi_ioctl(struct inode *inode, struct file *file,
- }
- #endif
-
--#ifdef HAVE_COMPAT_IOCTL
--static long dahdi_ioctl_compat(struct file *file, unsigned int cmd,
-- unsigned long data)
--{
-- if (cmd == DAHDI_SFCONFIG)
-- return -ENOTTY; /* Not supported yet */
--
-- return dahdi_unlocked_ioctl(file, cmd, data);
--}
--#endif
--
- /**
- * _get_next_channo - Return the next taken channel number from the span list.
- * @span: The span with which to start the search.
-@@ -10285,9 +10274,6 @@ static const struct file_operations dahdi_fops = {
- .release = dahdi_release,
- #ifdef HAVE_UNLOCKED_IOCTL
- .unlocked_ioctl = dahdi_unlocked_ioctl,
--#ifdef HAVE_COMPAT_IOCTL
-- .compat_ioctl = dahdi_ioctl_compat,
--#endif
- #else
- .ioctl = dahdi_ioctl,
- #endif
-@@ -10301,9 +10287,6 @@ static const struct file_operations dahdi_timer_fops = {
- .release = dahdi_timer_release,
- #ifdef HAVE_UNLOCKED_IOCTL
- .unlocked_ioctl = dahdi_timer_unlocked_ioctl,
--#ifdef HAVE_COMPAT_IOCTL
-- .compat_ioctl = dahdi_timer_unlocked_ioctl,
--#endif
- #else
- .ioctl = dahdi_timer_ioctl,
- #endif
-@@ -10377,24 +10360,10 @@ static int nodev_ioctl(struct inode *inode, struct file *file,
- }
- #endif
-
--#ifdef HAVE_COMPAT_IOCTL
--static long nodev_ioctl_compat(struct file *file, unsigned int cmd,
-- unsigned long data)
--{
-- if (cmd == DAHDI_SFCONFIG)
-- return -ENOTTY; /* Not supported yet */
--
-- return nodev_unlocked_ioctl(file, cmd, data);
--}
--#endif
--
- static const struct file_operations nodev_fops = {
- .owner = THIS_MODULE,
- #ifdef HAVE_UNLOCKED_IOCTL
- .unlocked_ioctl = nodev_unlocked_ioctl,
--#ifdef HAVE_COMPAT_IOCTL
-- .compat_ioctl = nodev_ioctl_compat,
--#endif
- #else
- .ioctl = nodev_ioctl,
- #endif
-@@ -10409,9 +10378,6 @@ static const struct file_operations dahdi_chan_fops = {
- .release = dahdi_release,
- #ifdef HAVE_UNLOCKED_IOCTL
- .unlocked_ioctl = dahdi_unlocked_ioctl,
--#ifdef HAVE_COMPAT_IOCTL
-- .compat_ioctl = dahdi_ioctl_compat,
--#endif
- #else
- .ioctl = dahdi_ioctl,
- #endif
---
-1.7.9.5
-
-From 6d4c748e0470efac90e7dc4538ff3c5da51f0169 Mon Sep 17 00:00:00 2001
-From: Shaun Ruffell <sruffell@sruffell.net>
-Date: Mon, 16 Nov 2020 22:01:22 -0600
-Subject: [PATCH] Remove checks for HAVE_UNLOCKED_IOCTL for kernel >= 5.9
-
-In upstream commit (4e24566a134ea1674 "fs: remove the HAVE_UNLOCKED_IOCTL and
-HAVE_COMPAT_IOCTL defines") [1] the kernel removed these defines.
-
-All supported kernels include support for the unlocked_ioctl now, so
-DAHDI can also remove these checks.
-
-[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=4e24566a134ea167441a1ffa3d439a27c
-
-Signed-off-by: Shaun Ruffell <sruffell@sruffell.net>
----
- drivers/dahdi/dahdi-base.c | 44 ---------------------------------------
- drivers/dahdi/dahdi_transcode.c | 11 ----------
- 2 files changed, 55 deletions(-)
-
-diff --git a/drivers/dahdi/dahdi-base.c b/drivers/dahdi/dahdi-base.c
-index 9fb0c79..bb51e9c 100644
---- a/drivers/dahdi/dahdi-base.c
-+++ b/drivers/dahdi/dahdi-base.c
-@@ -53,10 +53,6 @@
- #include <linux/ktime.h>
- #include <linux/slab.h>
-
--#if defined(HAVE_UNLOCKED_IOCTL) && defined(CONFIG_BKL)
--#include <linux/smp_lock.h>
--#endif
--
- #include <linux/ppp_defs.h>
-
- #include <asm/atomic.h>
-@@ -4069,14 +4065,6 @@ dahdi_timer_unlocked_ioctl(struct file *file, unsigned int cmd,
- return 0;
- }
-
--#ifndef HAVE_UNLOCKED_IOCTL
--static int dahdi_timer_ioctl(struct inode *inode, struct file *file,
-- unsigned int cmd, unsigned long data)
--{
-- return dahdi_timer_unlocked_ioctl(file, cmd, data);
--}
--#endif
--
- static int dahdi_ioctl_getgains(struct file *file, unsigned long data)
- {
- int res = 0;
-@@ -7011,14 +6999,6 @@ exit:
- return ret;
- }
-
--#ifndef HAVE_UNLOCKED_IOCTL
--static int dahdi_ioctl(struct inode *inode, struct file *file,
-- unsigned int cmd, unsigned long data)
--{
-- return dahdi_unlocked_ioctl(file, cmd, data);
--}
--#endif
--
- /**
- * _get_next_channo - Return the next taken channel number from the span list.
- * @span: The span with which to start the search.
-@@ -10272,11 +10252,7 @@ static const struct file_operations dahdi_fops = {
- .owner = THIS_MODULE,
- .open = dahdi_open,
- .release = dahdi_release,
--#ifdef HAVE_UNLOCKED_IOCTL
- .unlocked_ioctl = dahdi_unlocked_ioctl,
--#else
-- .ioctl = dahdi_ioctl,
--#endif
- .poll = dahdi_poll,
- .read = dahdi_no_read,
- .write = dahdi_no_write,
-@@ -10285,11 +10261,7 @@ static const struct file_operations dahdi_fops = {
- static const struct file_operations dahdi_timer_fops = {
- .owner = THIS_MODULE,
- .release = dahdi_timer_release,
--#ifdef HAVE_UNLOCKED_IOCTL
- .unlocked_ioctl = dahdi_timer_unlocked_ioctl,
--#else
-- .ioctl = dahdi_timer_ioctl,
--#endif
- .poll = dahdi_timer_poll,
- .read = dahdi_no_read,
- .write = dahdi_no_write,
-@@ -10352,21 +10324,9 @@ nodev_unlocked_ioctl(struct file *file, unsigned int cmd, unsigned long data)
- return nodev_common("ioctl");
- }
-
--#ifndef HAVE_UNLOCKED_IOCTL
--static int nodev_ioctl(struct inode *inode, struct file *file,
-- unsigned int cmd, unsigned long data)
--{
-- return nodev_unlocked_ioctl(file, cmd, data);
--}
--#endif
--
- static const struct file_operations nodev_fops = {
- .owner = THIS_MODULE,
--#ifdef HAVE_UNLOCKED_IOCTL
- .unlocked_ioctl = nodev_unlocked_ioctl,
--#else
-- .ioctl = nodev_ioctl,
--#endif
- .read = nodev_chan_read,
- .write = nodev_chan_write,
- .poll = nodev_chan_poll,
-@@ -10376,11 +10336,7 @@ static const struct file_operations dahdi_chan_fops = {
- .owner = THIS_MODULE,
- .open = dahdi_open,
- .release = dahdi_release,
--#ifdef HAVE_UNLOCKED_IOCTL
- .unlocked_ioctl = dahdi_unlocked_ioctl,
--#else
-- .ioctl = dahdi_ioctl,
--#endif
- .read = dahdi_chan_read,
- .write = dahdi_chan_write,
- .poll = dahdi_chan_poll,
-diff --git a/drivers/dahdi/dahdi_transcode.c b/drivers/dahdi/dahdi_transcode.c
-index a495dcf..6021aac 100644
---- a/drivers/dahdi/dahdi_transcode.c
-+++ b/drivers/dahdi/dahdi_transcode.c
-@@ -397,13 +397,6 @@ static long dahdi_tc_unlocked_ioctl(struct file *file, unsigned int cmd, unsigne
- };
- }
-
--#ifndef HAVE_UNLOCKED_IOCTL
--static int dahdi_tc_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long data)
--{
-- return (int)dahdi_tc_unlocked_ioctl(file, cmd, data);
--}
--#endif
--
- static unsigned int dahdi_tc_poll(struct file *file, struct poll_table_struct *wait_table)
- {
- int ret;
-@@ -427,11 +420,7 @@ static struct file_operations __dahdi_transcode_fops = {
- .owner = THIS_MODULE,
- .open = dahdi_tc_open,
- .release = dahdi_tc_release,
--#ifdef HAVE_UNLOCKED_IOCTL
- .unlocked_ioctl = dahdi_tc_unlocked_ioctl,
--#else
-- .ioctl = dahdi_tc_ioctl,
--#endif
- .read = dahdi_tc_read,
- .write = dahdi_tc_write,
- .poll = dahdi_tc_poll,
---
-1.7.9.5
-
diff --git a/main/dahdi-linux-lts/kernel-compat-5.4.patch b/main/dahdi-linux-lts/kernel-compat-5.4.patch
deleted file mode 100644
index 0e835eddab6..00000000000
--- a/main/dahdi-linux-lts/kernel-compat-5.4.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/include/dahdi/kernel.h
-+++ b/include/dahdi/kernel.h.new
-@@ -59,7 +59,7 @@
- #include <linux/poll.h>
-
- #ifdef CONFIG_PCI
--#include <linux/pci-aspm.h>
-+#include <linux/pci.h>
- #endif
-
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 29)
diff --git a/main/dahdi-linux/APKBUILD b/main/dahdi-linux/APKBUILD
deleted file mode 100644
index 632aecebb94..00000000000
--- a/main/dahdi-linux/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Timo Teras <timo.teras@iki.fi>
-# Maintainer: Timo Teras <timo.teras@iki.fi>
-pkgname=dahdi-linux
-pkgver=3.1.0
-pkgrel=0
-pkgdesc="Firmware for Digium Asterisk Hardware Device Interface drivers"
-url="https://www.asterisk.org"
-arch="noarch"
-license="GPL-2.0-only"
-makedepends="wget tar"
-subpackages="$pkgname-dev"
-source="https://downloads.digium.com/pub/telephony/dahdi-linux/releases/dahdi-linux-$pkgver.tar.gz"
-options="net"
-
-# We online install the firmwares in this package since those are common for all
-# kernel flavors. We also install the headers for the -dev package.
-#
-# The kernel drivers themselves are built from separate build recipe.
-
-package() {
- make -j1 DESTDIR="$pkgdir" HOTPLUG_FIRMWARE=yes \
- install-include install-firmware
-}
-
-sha512sums="440f5e44c933c609f2b3cfcf013c84bcd0c37929a43d69aac0276b11484cb890cd5939c5ac5950cad54d934d27ee6ff0b18f2bdd58477ed9be8055de107727b4 dahdi-linux-3.1.0.tar.gz"
diff --git a/main/dahdi-tools/APKBUILD b/main/dahdi-tools/APKBUILD
deleted file mode 100644
index 06460c990a4..00000000000
--- a/main/dahdi-tools/APKBUILD
+++ /dev/null
@@ -1,47 +0,0 @@
-# Contributor: Timo Teras <timo.teras@iki.fi>
-# Maintainer: Timo Teras <timo.teras@iki.fi>
-pkgname=dahdi-tools
-pkgver=3.1.0
-pkgrel=1
-pkgdesc="Digium Asterisk Hardware Device Interface management utilities"
-url="https://www.asterisk.org"
-arch="all"
-license="GPL-2.0-or-later"
-depends_dev="bsd-compat-headers linux-headers dahdi-linux-dev newt-dev"
-makedepends="perl file autoconf automake libtool $depends_dev"
-subpackages="$pkgname-doc $pkgname-dev"
-source="http://downloads.digium.com/pub/telephony/dahdi-tools/releases/dahdi-tools-$pkgver.tar.gz
- fix-musl.patch
- $pkgname.initd
- "
-
-prepare() {
- default_prepare
- autoreconf -fi
-}
-
-
-build() {
- eval local $(perl -V:vendorlib)
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/infoa \
- --with-perllib="$vendorlib"
- sed -i -e 's/$(CC) $(LDFLAGS) -o $@ $^/$(CC) $^ $(LDFLAGS) -o $@/' \
- Makefile
- make
-}
-
-package() {
- make -j1 DESTDIR="$pkgdir" install
- install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/dahdi
- rm -rf "$pkgdir"/usr/lib/dracut # We use mkinitfs, not dracut
-}
-
-sha512sums="e0e5bf24e4834ca39ef7dc1af1bb7ef26bd258a8b2cb2406a7e1ffed25b4b1d44a5fce41d97c5ad7fc6ebb66f965759d2b49ffa6d89845786f43eadb89ff4694 dahdi-tools-3.1.0.tar.gz
-45955caf04368ff30d60db0b3e892d940c9ac0422b337186ed251108ce25ab305d4590efff452f53f160a53fcd26a273f21d6d093307b426a3a2a6df53584daa fix-musl.patch
-3850ab9e323ec31d676d311c97d0cde70b809379b6c01c8ff6d5a01a860eb43bf3f18f2de53e952365d17f40638c7cb0481682d96cea5b7fdb1423d3e762e2f3 dahdi-tools.initd"
diff --git a/main/dahdi-tools/dahdi-tools.initd b/main/dahdi-tools/dahdi-tools.initd
deleted file mode 100644
index 42092c7375b..00000000000
--- a/main/dahdi-tools/dahdi-tools.initd
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/sbin/openrc-run
-
-conf=/etc/dahdi/system.conf
-
-depend() {
- before asterisk
- after hwdrivers modules
- keyword novserver
-}
-
-start() {
- ebegin "Starting dahdi"
- /usr/sbin/dahdi_cfg
- eend $?
-}
-
-stop() {
- ebegin "Stopping dahdi"
- /usr/sbin/dahdi_cfg -s
- eend $?
-}
diff --git a/main/dahdi-tools/fix-musl.patch b/main/dahdi-tools/fix-musl.patch
deleted file mode 100644
index 01a0a302bf1..00000000000
--- a/main/dahdi-tools/fix-musl.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-diff -ru dahdi-tools-2.11.1.orig/xpp/hexfile.h dahdi-tools-2.11.1/xpp/hexfile.h
---- dahdi-tools-2.11.1.orig/xpp/hexfile.h 2016-03-02 00:04:19.000000000 +0200
-+++ dahdi-tools-2.11.1/xpp/hexfile.h 2017-05-29 09:30:50.034438806 +0300
-@@ -26,6 +26,7 @@
- #include <stdarg.h>
- #include <stdio.h>
- #include <stdint.h>
-+#include <sys/cdefs.h>
- #include <sys/param.h>
- #include <syslog.h>
- #define PACKED __attribute__((packed))
-diff -ru dahdi-tools-2.11.1.orig/xpp/xtalk/debug.c dahdi-tools-2.11.1/xpp/xtalk/debug.c
---- dahdi-tools-2.11.1.orig/xpp/xtalk/debug.c 2016-03-02 00:04:19.000000000 +0200
-+++ dahdi-tools-2.11.1/xpp/xtalk/debug.c 2017-05-29 09:30:02.193881232 +0300
-@@ -26,7 +26,6 @@
- #include <stdlib.h>
- #include <stdarg.h>
- #include <syslog.h>
--#include <execinfo.h>
- #include <xtalk/debug.h>
- #include <autoconfig.h>
-
-@@ -61,6 +60,7 @@
- /* from glibc info(1) */
- void print_backtrace(FILE *fp)
- {
-+#if 0
- void *array[10];
- size_t size;
- char **strings;
-@@ -71,4 +71,5 @@
- for (i = 0; i < size; i++)
- fprintf(fp, "%s\n", strings[i]);
- free(strings);
-+#endif
- }
diff --git a/main/dansguardian/APKBUILD b/main/dansguardian/APKBUILD
index 294bd96d80d..ddba765699a 100644
--- a/main/dansguardian/APKBUILD
+++ b/main/dansguardian/APKBUILD
@@ -2,15 +2,15 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=dansguardian
pkgver=2.12.0.3
-pkgrel=4
+pkgrel=8
pkgdesc="Web content filter"
url="http://dansguardian.org"
arch="all"
-license="GPL"
+license="GPL-2.0-only"
depends="logrotate"
makedepends="zlib-dev pcre-dev"
install="$pkgname.pre-install"
-subpackages="$pkgname-doc"
+subpackages="$pkgname-doc $pkgname-openrc"
pkgusers="dansguar"
pkggroups="dansguar"
source="https://downloads.sourceforge.net/project/dansguardian/dansguardian-$pkgver.tar.bz2
@@ -19,29 +19,24 @@ source="https://downloads.sourceforge.net/project/dansguardian/dansguardian-$pkg
ftp-credential.patch
dansguardian-2.10.1.1-pcre830.patch
fix-includes.patch
- gcc11.patch
+ cstring.patch
"
+options="!check"
-_builddir="$srcdir"/dansguardian-$pkgver
prepare() {
- cd "$_builddir"
- update_config_sub || return 1
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
+ default_prepare
+ update_config_sub
+
# do not block "microsoft...clustimg=..." and similar
- sed -i -e 's:\.\*:.{1,10}:g' configs/lists/bannedregexpurllist \
- || return 1
+ sed -i -e 's:\.\*:.{1,10}:g' configs/lists/bannedregexpurllist
# bind to 127.0.0.1 by default
sed -i -e 's:^filterip =.*:filterip = 127.0.0.1:' \
- configs/dansguardian.conf.in || return 1
+ configs/dansguardian.conf.in
}
build() {
- cd "$_builddir"
+ CXXFLAGS="$CXXFLAGS -std=gnu++11" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -53,18 +48,16 @@ build() {
--with-proxygroup=dansguar \
--with-logdir=/var/log/dansguardian \
--with-piddir=/var/run/ \
- --enable-ntlm \
- || return 1
- make || return 1
+ --enable-ntlm
+ make
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
- install -D -m 755 "$srcdir"/dansguardian.initd \
- "$pkgdir"/etc/init.d/dansguardian || return 1
- install -D -m 644 "$srcdir"/dansguardian.logrotate \
- "$pkgdir"/etc/logrotate.d/dansguardian || return 1
+ make DESTDIR="$pkgdir" install
+ install -Dm755 "$srcdir"/dansguardian.initd \
+ "$pkgdir"/etc/init.d/dansguardian
+ install -Dm644 "$srcdir"/dansguardian.logrotate \
+ "$pkgdir"/etc/logrotate.d/dansguardian
install -d -o dansguar -g dansguar "$pkgdir"/var/log/dansguardian
}
@@ -75,5 +68,5 @@ cc23178755365a3cceff08d9eb5c26dd440648b22af15377a30d2032f71cf0bd8ed3ab59c8a671f2
07b62441363534f39a1400389c702bbd5a53317526a18b3fc929f00bd854706c56b891d7fecb4151e200448f8ba012729e712e9cfdbbd683a3d2634fdc095bd1 ftp-credential.patch
d3d9af038ff5a91d1f9dc6cf4175b0da2a791386ca624f4a639338ed189a274eba720e9771986e7ded517e2623185e8b61ef3689414197c47a6ae3220be99d57 dansguardian-2.10.1.1-pcre830.patch
2eb17ef01a0b7d626f50197e0ddd160ae4ed17a813af00ceb9f6c54610d84b03b5c819bc2d8799f683e68dc16a65cbac5a8e36f0c43737d8ea82c7354e852d78 fix-includes.patch
-7ff0232e185e09b561a73496bb68a5fad11d97c02dde4436c993af454e5cfba5124c20b54c18bc864a21818df170fa8306a67419752ca75ea8a3cc797e88c1fe gcc11.patch
+77257cd290bfa91a6af7aaf6e58a4280e75a1a7ea5dc7e89fd418cd7509263533e4133f447f02f77410da1533502c9011921288d05b5d4cf33aac1e66467eaa6 cstring.patch
"
diff --git a/main/dansguardian/cstring.patch b/main/dansguardian/cstring.patch
new file mode 100644
index 00000000000..53c48fcd700
--- /dev/null
+++ b/main/dansguardian/cstring.patch
@@ -0,0 +1,12 @@
+diff --git a/src/UDSocket.cpp b/src/UDSocket.cpp
+index 3d33ff6..db4de8c 100644
+--- a/src/UDSocket.cpp
++++ b/src/UDSocket.cpp
+@@ -13,6 +13,7 @@
+ #include "UDSocket.hpp"
+
+ #include <syslog.h>
++#include <cstring>
+ #include <csignal>
+ #include <fcntl.h>
+ #include <sys/time.h>
diff --git a/main/dansguardian/gcc11.patch b/main/dansguardian/gcc11.patch
deleted file mode 100644
index b7a11a746ea..00000000000
--- a/main/dansguardian/gcc11.patch
+++ /dev/null
@@ -1,222 +0,0 @@
-diff --git a/src/BaseSocket.cpp b/src/BaseSocket.cpp
-index 18c8030..4992647 100644
---- a/src/BaseSocket.cpp
-+++ b/src/BaseSocket.cpp
-@@ -210,7 +210,7 @@ bool BaseSocket::checkForInput()
- }
-
- // blocking check for waiting data - blocks for up to given timeout, can be told to break on signal-triggered config reloads
--void BaseSocket::checkForInput(int timeout, bool honour_reloadconfig) throw(std::exception)
-+void BaseSocket::checkForInput(int timeout, bool honour_reloadconfig) noexcept(false)
- {
- #ifdef DGDEBUG
- std::cout << "BaseSocket::checkForInput: starting for sck:" << sck << std::endl;
-@@ -249,7 +249,7 @@ bool BaseSocket::readyForOutput()
- }
-
- // blocking equivalent of above, can be told to break on signal-triggered reloads
--void BaseSocket::readyForOutput(int timeout, bool honour_reloadconfig) throw(std::exception)
-+void BaseSocket::readyForOutput(int timeout, bool honour_reloadconfig) noexcept(false)
- {
- // blocks if socket blocking
- // until timeout
-@@ -266,7 +266,7 @@ void BaseSocket::readyForOutput(int timeout, bool honour_reloadconfig) throw(std
- }
-
- // read a line from the socket, can be told to break on config reloads
--int BaseSocket::getLine(char *buff, int size, int timeout, bool honour_reloadconfig, bool *chopped, bool *truncated) throw(std::exception)
-+int BaseSocket::getLine(char *buff, int size, int timeout, bool honour_reloadconfig, bool *chopped, bool *truncated) noexcept(false)
- {
- // first, return what's left from the previous buffer read, if anything
- int i = 0;
-@@ -347,7 +347,7 @@ int BaseSocket::getLine(char *buff, int size, int timeout, bool honour_reloadcon
- }
-
- // write line to socket
--void BaseSocket::writeString(const char *line) throw(std::exception)
-+void BaseSocket::writeString(const char *line) noexcept(false)
- {
- int l = strlen(line);
- if (!writeToSocket(line, l, 0, timeout)) {
-@@ -356,7 +356,7 @@ void BaseSocket::writeString(const char *line) throw(std::exception)
- }
-
- // write data to socket - throws exception on failure, can be told to break on config reloads
--void BaseSocket::writeToSockete(const char *buff, int len, unsigned int flags, int timeout, bool honour_reloadconfig) throw(std::exception)
-+void BaseSocket::writeToSockete(const char *buff, int len, unsigned int flags, int timeout, bool honour_reloadconfig) noexcept(false)
- {
- if (!writeToSocket(buff, len, flags, timeout, honour_reloadconfig)) {
- throw std::runtime_error(std::string("Can't write to socket: ") + strerror(errno));
-diff --git a/src/BaseSocket.hpp b/src/BaseSocket.hpp
-index cffcf7d..bbbeac2 100644
---- a/src/BaseSocket.hpp
-+++ b/src/BaseSocket.hpp
-@@ -48,17 +48,17 @@ public:
- // non-blocking check for input data
- bool checkForInput();
- // blocking check for data, can be told to break on signal triggered config reloads (-r)
-- void checkForInput(int timeout, bool honour_reloadconfig = false) throw(std::exception);
-+ void checkForInput(int timeout, bool honour_reloadconfig = false) noexcept(false);
- // non-blocking check for writable socket
- bool readyForOutput();
- // blocking check, can break on config reloads
-- void readyForOutput(int timeout, bool honour_reloadconfig = false) throw(std::exception);
-+ void readyForOutput(int timeout, bool honour_reloadconfig = false) noexcept(false);
-
- // get a line from the socket - can break on config reloads
-- int getLine(char *buff, int size, int timeout, bool honour_reloadconfig = false, bool *chopped = NULL, bool *truncated = NULL) throw(std::exception);
-+ int getLine(char *buff, int size, int timeout, bool honour_reloadconfig = false, bool *chopped = NULL, bool *truncated = NULL) noexcept(false);
-
- // write buffer to string - throws std::exception on error
-- void writeString(const char *line) throw(std::exception);
-+ void writeString(const char *line) noexcept(false);
- // write buffer to string - can be told not to do an initial readyForOutput, and told to break on -r
- bool writeToSocket(const char *buff, int len, unsigned int flags, int timeout, bool check_first = true, bool honour_reloadconfig = false);
- // read from socket, returning number of bytes read
-@@ -66,7 +66,7 @@ public:
- // read from socket, returning error status - can be told to skip initial checkForInput, and to break on -r
- int readFromSocket(char *buff, int len, unsigned int flags, int timeout, bool check_first = true, bool honour_reloadconfig = false);
- // write to socket, throwing std::exception on error - can be told to break on -r
-- void writeToSockete(const char *buff, int len, unsigned int flags, int timeout, bool honour_reloadconfig = false) throw(std::exception);
-+ void writeToSockete(const char *buff, int len, unsigned int flags, int timeout, bool honour_reloadconfig = false) noexcept(false);
-
- protected:
- // socket-wide timeout (is this actually used?)
-diff --git a/src/DataBuffer.cpp b/src/DataBuffer.cpp
-index 3bb8349..0fc1da7 100644
---- a/src/DataBuffer.cpp
-+++ b/src/DataBuffer.cpp
-@@ -236,7 +236,7 @@ bool DataBuffer::in(Socket * sock, Socket * peersock, HTTPHeader * requestheader
- }
-
- // send the request body to the client after having been handled by a DM plugin
--void DataBuffer::out(Socket * sock) throw(std::exception)
-+void DataBuffer::out(Socket * sock) noexcept(false)
- {
- if (dontsendbody) {
- #ifdef DGDEBUG
-diff --git a/src/DataBuffer.hpp b/src/DataBuffer.hpp
-index dd0b8fc..e8f16aa 100644
---- a/src/DataBuffer.hpp
-+++ b/src/DataBuffer.hpp
-@@ -40,7 +40,7 @@ public:
- // gives true if it pauses due to too much data
- bool in(Socket * sock, Socket * peersock, class HTTPHeader * requestheader, class HTTPHeader * docheader, bool runav, int *headersent);
- // send body to client
-- void out(Socket * sock) throw(std::exception);
-+ void out(Socket * sock) noexcept(false);
-
- void setTimeout(int t) { timeout = t; };
- void setDecompress(String d) { decompress = d; };
-diff --git a/src/HTTPHeader.cpp b/src/HTTPHeader.cpp
-index 383a7e5..5ffcc45 100644
---- a/src/HTTPHeader.cpp
-+++ b/src/HTTPHeader.cpp
-@@ -1602,7 +1602,7 @@ int HTTPHeader::decode1b64(char c)
- // - this allows us to re-open the proxy connection on pconns if squid's end has
- // timed out but the client's end hasn't. not much use with NTLM, since squid
- // will throw a 407 and restart negotiation, but works well with basic & others.
--void HTTPHeader::out(Socket * peersock, Socket * sock, int sendflag, bool reconnect) throw(std::exception)
-+void HTTPHeader::out(Socket * peersock, Socket * sock, int sendflag, bool reconnect) noexcept(false)
- {
- String l; // for amalgamating to avoid conflict with the Nagel algorithm
-
-diff --git a/src/HTTPHeader.hpp b/src/HTTPHeader.hpp
-index ce30779..c237463 100644
---- a/src/HTTPHeader.hpp
-+++ b/src/HTTPHeader.hpp
-@@ -45,7 +45,7 @@ public:
- // - this allows us to re-open the proxy connection on pconns if squid's end has
- // timed out but the client's end hasn't. not much use with NTLM, since squid
- // will throw a 407 and restart negotiation, but works well with basic & others.
-- void out(Socket *peersock, Socket *sock, int sendflag, bool reconnect = false) throw(std::exception);
-+ void out(Socket *peersock, Socket *sock, int sendflag, bool reconnect = false) noexcept(false);
-
- // discard remainder of POST data
- // amount to discard can be passed in, or will default to contentLength()
-diff --git a/src/Socket.cpp b/src/Socket.cpp
-index 990f30f..8212622 100644
---- a/src/Socket.cpp
-+++ b/src/Socket.cpp
-@@ -654,7 +654,7 @@ bool Socket::checkForInput()
- }
-
- // blocking check for waiting data - blocks for up to given timeout, can be told to break on signal-triggered config reloads
--void Socket::checkForInput(int timeout, bool honour_reloadconfig) throw(std::exception)
-+void Socket::checkForInput(int timeout, bool honour_reloadconfig) noexcept(false)
- {
- if (!isssl){
- BaseSocket::checkForInput(timeout, honour_reloadconfig);
-@@ -676,7 +676,7 @@ bool Socket::readyForOutput()
- return true;
- }
-
--void Socket::readyForOutput(int timeout, bool honour_reloadconfig) throw(std::exception)
-+void Socket::readyForOutput(int timeout, bool honour_reloadconfig) noexcept(false)
- {
- if (!isssl){
- BaseSocket::readyForOutput(timeout,honour_reloadconfig);
-@@ -689,7 +689,7 @@ void Socket::readyForOutput(int timeout, bool honour_reloadconfig) throw(std::ex
- }
-
- // read a line from the socket, can be told to break on config reloads
--int Socket::getLine(char *buff, int size, int timeout, bool honour_reloadconfig, bool *chopped, bool *truncated) throw(std::exception)
-+int Socket::getLine(char *buff, int size, int timeout, bool honour_reloadconfig, bool *chopped, bool *truncated) noexcept(false)
- {
- if (!isssl){
- return BaseSocket::getLine(buff, size,timeout, honour_reloadconfig, chopped, truncated);
-@@ -765,7 +765,7 @@ int Socket::getLine(char *buff, int size, int timeout, bool honour_reloadconfig,
- }
-
- // write line to socket
--void Socket::writeString(const char *line) throw(std::exception)
-+void Socket::writeString(const char *line) noexcept(false)
- {
- int l = strlen(line);
- if (!writeToSocket(line, l, 0, timeout)) {
-@@ -774,7 +774,7 @@ void Socket::writeString(const char *line) throw(std::exception)
- }
-
- // write data to socket - throws exception on failure, can be told to break on config reloads
--void Socket::writeToSockete(const char *buff, int len, unsigned int flags, int timeout, bool honour_reloadconfig) throw(std::exception)
-+void Socket::writeToSockete(const char *buff, int len, unsigned int flags, int timeout, bool honour_reloadconfig) noexcept(false)
- {
- if (!writeToSocket(buff, len, flags, timeout, honour_reloadconfig)) {
- throw std::runtime_error(std::string("Can't write to socket: ") + strerror(errno));
-diff --git a/src/Socket.hpp b/src/Socket.hpp
-index 0917cbf..e78ae9b 100644
---- a/src/Socket.hpp
-+++ b/src/Socket.hpp
-@@ -82,19 +82,19 @@ public:
- // non-blocking check for writable socket
- bool readyForOutput();
- // blocking check, can break on config reloads
-- void readyForOutput(int timeout, bool honour_reloadconfig = false) throw(std::exception);
-+ void readyForOutput(int timeout, bool honour_reloadconfig = false) noexcept(false);
-
- // non-blocking check for input data
- bool checkForInput();
-
- // blocking check for data, can be told to break on signal triggered config reloads (-r)
-- void checkForInput(int timeout, bool honour_reloadconfig = false) throw(std::exception);
-+ void checkForInput(int timeout, bool honour_reloadconfig = false) noexcept(false);
-
- // get a line from the socket - can break on config reloads
-- int getLine(char *buff, int size, int timeout, bool honour_reloadconfig = false, bool *chopped = NULL, bool *truncated = NULL) throw(std::exception);
-+ int getLine(char *buff, int size, int timeout, bool honour_reloadconfig = false, bool *chopped = NULL, bool *truncated = NULL) noexcept(false);
-
- // write buffer to string - throws std::exception on error
-- void writeString(const char *line) throw(std::exception);
-+ void writeString(const char *line) noexcept(false);
- // write buffer to string - can be told not to do an initial readyForOutput, and told to break on -r
- bool writeToSocket(const char *buff, int len, unsigned int flags, int timeout, bool check_first = true, bool honour_reloadconfig = false);
- // read from socket, returning number of bytes read
-@@ -102,7 +102,7 @@ public:
- // read from socket, returning error status - can be told to skip initial checkForInput, and to break on -r
- int readFromSocket(char *buff, int len, unsigned int flags, int timeout, bool check_first = true, bool honour_reloadconfig = false);
- // write to socket, throwing std::exception on error - can be told to break on -r
-- void writeToSockete(const char *buff, int len, unsigned int flags, int timeout, bool honour_reloadconfig = false) throw(std::exception);
-+ void writeToSockete(const char *buff, int len, unsigned int flags, int timeout, bool honour_reloadconfig = false) noexcept(false);
- #endif //__SSLMITM
-
-
diff --git a/main/daq/APKBUILD b/main/daq/APKBUILD
index a9fd1146ee8..90c6e3bcccd 100644
--- a/main/daq/APKBUILD
+++ b/main/daq/APKBUILD
@@ -1,22 +1,34 @@
# Contributor: Karim Kanso <kaz.kanso@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=daq
-pkgver=2.0.7
+pkgver=3.0.14
pkgrel=0
pkgdesc="Data Acquisition library - packet I/O library"
url="https://www.snort.org/"
arch="all"
license="GPL-2.0-only"
-makedepends="libpcap-dev flex bison linux-headers libnetfilter_queue-dev
- libnfnetlink-dev libdnet-dev automake autoconf libtool"
-subpackages="$pkgname-static $pkgname-sfbpf $pkgname-dev"
-source="https://www.snort.org/downloads/snort/daq-$pkgver.tar.gz
- fix-includes.patch
+makedepends="
+ autoconf
+ automake
+ bison
+ flex
+ libdnet-dev
+ libmnl-dev
+ libnetfilter_queue-dev
+ libnfnetlink-dev
+ libpcap-dev
+ libtool
+ linux-headers
"
+checkdepends="cmocka-dev"
+subpackages="$pkgname-static $pkgname-dev"
+source="https://www.snort.org/downloads/snortplus/libdaq-$pkgver.tar.gz"
+builddir="$srcdir/libdaq-$pkgver"
+options="!check" # requires a wrap for some glibc __functions
prepare() {
default_prepare
- autoreconf -fi
+ ./bootstrap
}
build() {
@@ -28,8 +40,6 @@ build() {
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--localstatedir=/var
- # work around parallel build issue
- make -C sfbpf tokdefs.h
make
}
@@ -39,15 +49,10 @@ check() {
package() {
make DESTDIR="$pkgdir" install
-}
-
-sfbpf() {
- pkgdesc="snort's berkley packet filter shared lib"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libsfbpf.so* "$subpkgdir"/usr/lib/
+ cd "$pkgdir"
+ rm -v usr/bin/daqtest*
}
sha512sums="
-37e21766ee659a40e73a11f00af94c1f3f57ab47bdf6b74b8c93c2147e74bab9779a9a7e5cdce31fe772067036f13bc552bc5b23a6e9d76f31aa62f0fdae5643 daq-2.0.7.tar.gz
-ea769608e4b6ebfd186a5e637a1dbf16f300c5c40501655b891fdc0095879f65927d90872d4953a4a4e32ccc40306b19a1a1e7ae4dd8b3f7572db97aea48390e fix-includes.patch
+3c50efbc96ff5865a7b57799b65d4be70f6dbd29e0d12fc7b46d9c523eefb9b968a4a8294dc2ec424c93d5265c97d1266ca0942ac3684cdf1f06a742c2c3b404 libdaq-3.0.14.tar.gz
"
diff --git a/main/daq/fix-includes.patch b/main/daq/fix-includes.patch
deleted file mode 100644
index 924f49c533b..00000000000
--- a/main/daq/fix-includes.patch
+++ /dev/null
@@ -1,33 +0,0 @@
---- daq-2.0.1.orig/os-daq-modules/daq_ipfw.c
-+++ daq-2.0.1/os-daq-modules/daq_ipfw.c
-@@ -26,7 +26,7 @@
-
- #include <sys/types.h>
- #include <sys/time.h>
--#include <sys/unistd.h>
-+#include <unistd.h>
-
- #include <netinet/in.h>
- #include <sys/socket.h>
---- daq-2.0.1.orig/os-daq-modules/daq_ipq.c
-+++ daq-2.0.1/os-daq-modules/daq_ipq.c
-@@ -27,7 +27,7 @@
-
- #include <sys/types.h>
- #include <sys/time.h>
--#include <sys/unistd.h>
-+#include <unistd.h>
-
- #include <netinet/ip.h>
-
---- daq-2.0.1.orig/os-daq-modules/daq_nfq.c
-+++ daq-2.0.1/os-daq-modules/daq_nfq.c
-@@ -27,7 +27,7 @@
-
- #include <sys/types.h>
- #include <sys/time.h>
--#include <sys/unistd.h>
-+#include <unistd.h>
-
- #include <netinet/ip.h>
-
diff --git a/main/darkhttpd/APKBUILD b/main/darkhttpd/APKBUILD
index f22aaa02262..6194d9e1658 100644
--- a/main/darkhttpd/APKBUILD
+++ b/main/darkhttpd/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Alan Lacerda <alacerda@alpinelinux.org>
# Maintainer: Alan Lacerda <alacerda@alpinelinux.org>
pkgname=darkhttpd
-pkgver=1.13
+pkgver=1.16
pkgrel=0
pkgdesc="A simple, single-threaded, static content webserver"
url="https://unix4lyfe.org/darkhttpd/"
@@ -16,6 +16,13 @@ source="darkhttpd-$pkgver.tar.gz::https://github.com/emikulic/darkhttpd/archive/
darkhttpd.confd
"
+# secfixes:
+# 1.15-r0:
+# - CVE-2024-23771
+# - CVE-2024-23770
+# 1.14-r0:
+# - CVE-2020-25691
+
build() {
make
}
@@ -29,7 +36,9 @@ package() {
install -Dm644 "$srcdir"/darkhttpd.confd "$pkgdir"/etc/conf.d/darkhttpd
}
-sha512sums="2c8c5dd225f3ba8b636adeae049039b5c3f852b3efe17969075cd361c34f7bfbef9efa6d64a0a9c6021fae939d85befe92981923e1fa3d326c8a8402f3358868 darkhttpd-1.13.tar.gz
+sha512sums="
+05abf8144d5a14ff455e2878eed4fddaca54d3fa6576b6a01d6547bcca94a0222d02742b80532519aba5202dd7df2d816e1dd057816506005894b42f570a4fe3 darkhttpd-1.16.tar.gz
bb95277a9f8f227aeec8bfe6ef54f52a2f034ed0dd25258b996c17f9ce9dd4ad220366b10490246b25bb6b18ccde7bda0d52eeb88667941cf2fdab15c940dbbc darkhttpd.logrotate
dd792892588e03cef4a36bb8e81297990884298d8a2bc1c14ae2d8986a0a17af8d15bf3fb4e1830d22b154dc00591d884e20da915f51fd8ecf3b05b6c92dc7d4 darkhttpd.initd
-79ecdbc751e8b5497a1afee294cf0addb4261f041a58a382e7fb51dd698dd99625a369173542c905e1e4eac7c68dfa1d8d778f4777ebe74d5031817a6ec437ad darkhttpd.confd"
+79ecdbc751e8b5497a1afee294cf0addb4261f041a58a382e7fb51dd698dd99625a369173542c905e1e4eac7c68dfa1d8d778f4777ebe74d5031817a6ec437ad darkhttpd.confd
+"
diff --git a/main/dash/APKBUILD b/main/dash/APKBUILD
new file mode 100644
index 00000000000..dfeec0d8e45
--- /dev/null
+++ b/main/dash/APKBUILD
@@ -0,0 +1,45 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=dash
+pkgver=0.5.12
+pkgrel=2
+pkgdesc="Small and fast POSIX-compliant shell"
+url="http://gondor.apana.org.au/~herbert/dash/"
+arch="all"
+license="BSD-3-Clause AND GPL-2.0-or-later"
+# needs 'nl' utility from coreutils
+makedepends="coreutils"
+install="$pkgname.post-install $pkgname.post-upgrade $pkgname.pre-deinstall"
+subpackages="$pkgname-doc $pkgname-binsh"
+source="http://gondor.apana.org.au/~herbert/dash/files/dash-$pkgver.tar.gz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ ./src/dash -c 'echo ok'
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+binsh() {
+ pkgdesc="dash as /bin/sh"
+ provides="/bin/sh"
+ provider_priority=60 # lower (other provider is busybox-binsh, yash-binsh)
+
+ mkdir -p "$subpkgdir"/bin
+ ln -s /usr/bin/dash "$subpkgdir"/bin/sh
+}
+
+sha512sums="
+13bd262be0089260cbd13530a9cf34690c0abeb2f1920eb5e61be7951b716f9f335b86279d425dbfae56cbd49231a8fdffdff70601a5177da3d543be6fc5eb17 dash-0.5.12.tar.gz
+"
diff --git a/main/dash/dash.post-install b/main/dash/dash.post-install
new file mode 100644
index 00000000000..0619dc848b8
--- /dev/null
+++ b/main/dash/dash.post-install
@@ -0,0 +1,3 @@
+#!/bin/sh
+add-shell '/usr/bin/dash'
+exit 0
diff --git a/main/dash/dash.post-upgrade b/main/dash/dash.post-upgrade
new file mode 120000
index 00000000000..3514e3b3c14
--- /dev/null
+++ b/main/dash/dash.post-upgrade
@@ -0,0 +1 @@
+dash.post-install \ No newline at end of file
diff --git a/main/dash/dash.pre-deinstall b/main/dash/dash.pre-deinstall
new file mode 100644
index 00000000000..8a92b75a411
--- /dev/null
+++ b/main/dash/dash.pre-deinstall
@@ -0,0 +1,3 @@
+#!/bin/sh
+remove-shell '/usr/bin/dash'
+exit 0
diff --git a/main/datefudge/APKBUILD b/main/datefudge/APKBUILD
index 8340e0e3166..c137da45e23 100644
--- a/main/datefudge/APKBUILD
+++ b/main/datefudge/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Simon Frankenberger <simon-alpine@fraho.eu>
pkgname=datefudge
pkgver=1.24
-pkgrel=0
+pkgrel=3
pkgdesc="Tool to fake the system date"
url="https://packages.debian.org/sid/datefudge"
arch="all"
-license="GPL-2.0"
+license="GPL-2.0-or-later"
depends="coreutils"
checkdepends="perl"
subpackages="$pkgname-doc"
diff --git a/main/dav1d/APKBUILD b/main/dav1d/APKBUILD
new file mode 100644
index 00000000000..96b90c86903
--- /dev/null
+++ b/main/dav1d/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Leo <thinkabit.ukim@gmail.com>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=dav1d
+pkgver=1.4.1
+pkgrel=0
+pkgdesc="small and fast AV1 Decoder"
+url="https://code.videolan.org/videolan/dav1d"
+arch="all"
+license="BSD-2-Clause"
+makedepends="nasm meson"
+subpackages="$pkgname-dev lib$pkgname:libs"
+source="https://code.videolan.org/videolan/dav1d/-/archive/$pkgver/dav1d-$pkgver.tar.bz2
+ fix-rv64.patch"
+
+build() {
+ case "$CARCH" in
+ armhf*) meson_opts="-Denable_asm=false" ;;
+ *) meson_opts="-Denable_asm=true" ;;
+ esac
+
+ CFLAGS="$CFLAGS -O2" \
+ CXXFLAGS="$CXXFLAGS -O2" \
+ abuild-meson \
+ -Db_lto=true \
+ -Denable_tests=true \
+ -Denable_tools=true \
+ -Dfuzzing_engine=none \
+ -Dtestdata_tests=false \
+ $meson_opts \
+ build
+ meson compile -C build
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C build
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C build
+}
+
+sha512sums="
+b2dcdeeb3d6c37788b4c697b497b9282738b758927ffbdbe72b05b1b26a61aa967dfba0ce05828b5bd5bcac93eb3394b0eafbb57e325d037867cf720d64ba099 dav1d-1.4.1.tar.bz2
+1677b906a37d05d7ec692ce484b85ce2fca62f1ca4062d2dbed863748d2e453bc45fbb31a0327e6c920ccfe4b22e7204b0b12e8ee82a9e2c5c670e2c4433f22d fix-rv64.patch
+"
diff --git a/main/dav1d/fix-rv64.patch b/main/dav1d/fix-rv64.patch
new file mode 100644
index 00000000000..034e8ceb4ae
--- /dev/null
+++ b/main/dav1d/fix-rv64.patch
@@ -0,0 +1,91 @@
+Patch-Source: https://code.videolan.org/videolan/dav1d/-/merge_requests/1629
+From 6c51565174f08baf7441e22ea9f84a25c716c5da Mon Sep 17 00:00:00 2001
+From: "Nathan E. Egge" <unlord@xiph.org>
+Date: Sat, 16 Mar 2024 10:12:09 -0400
+Subject: [PATCH] riscv: Check for standards compliant RVV 1.0+
+
+---
+ src/meson.build | 1 +
+ src/riscv/cpu.S | 38 ++++++++++++++++++++++++++++++++++++++
+ src/riscv/cpu.c | 4 +++-
+ 3 files changed, 42 insertions(+), 1 deletion(-)
+ create mode 100644 src/riscv/cpu.S
+
+diff --git a/src/meson.build b/src/meson.build
+index dc4be5fd..f3d7bcaf 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -256,6 +256,7 @@ if is_asm_enabled
+ elif host_machine.cpu_family().startswith('riscv')
+ libdav1d_sources += files(
+ 'riscv/cpu.c',
++ 'riscv/cpu.S',
+ )
+ if host_machine.cpu_family() == 'riscv64'
+ libdav1d_sources += files(
+diff --git a/src/riscv/cpu.S b/src/riscv/cpu.S
+new file mode 100644
+index 00000000..ca103a9a
+--- /dev/null
++++ b/src/riscv/cpu.S
+@@ -0,0 +1,38 @@
++/******************************************************************************
++ * Copyright © 2018, VideoLAN and dav1d authors
++ * Copyright © 2024, Nathan Egge
++ * All rights reserved.
++ *
++ * Redistribution and use in source and binary forms, with or without
++ * modification, are permitted provided that the following conditions are met:
++ *
++ * 1. Redistributions of source code must retain the above copyright notice, this
++ * list of conditions and the following disclaimer.
++ *
++ * 2. Redistributions in binary form must reproduce the above copyright notice,
++ * this list of conditions and the following disclaimer in the documentation
++ * and/or other materials provided with the distribution.
++ *
++ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
++ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
++ * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
++ * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
++ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
++ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
++ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
++ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
++ *****************************************************************************/
++
++#include "src/riscv/asm.S"
++
++function has_compliant_rvv, export=1, ext=v
++ vsetvli zero, zero, e8, m1, ta, ma
++ csrr a1, vtype
++ li a0, 0
++ blt a1, x0, no_rvv10
++ li a0, 1
++no_rvv10:
++ ret
++endfunc
+diff --git a/src/riscv/cpu.c b/src/riscv/cpu.c
+index 16377109..30e13543 100644
+--- a/src/riscv/cpu.c
++++ b/src/riscv/cpu.c
+@@ -38,11 +38,13 @@
+
+ #endif
+
++int dav1d_has_compliant_rvv(void);
++
+ COLD unsigned dav1d_get_cpu_flags_riscv(void) {
+ unsigned flags = 0;
+ #if defined(HAVE_GETAUXVAL)
+ unsigned long hw_cap = getauxval(AT_HWCAP);
+- flags |= (hw_cap & HWCAP_RVV) ? DAV1D_RISCV_CPU_FLAG_V : 0;
++ flags |= (hw_cap & HWCAP_RVV) && dav1d_has_compliant_rvv() ? DAV1D_RISCV_CPU_FLAG_V : 0;
+ #endif
+
+ return flags;
+--
+GitLab
+
diff --git a/main/db/APKBUILD b/main/db/APKBUILD
index ce746403ad4..8e19d0eebec 100644
--- a/main/db/APKBUILD
+++ b/main/db/APKBUILD
@@ -1,29 +1,23 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=db
pkgver=5.3.28
-_ver=${pkgver}
-pkgrel=1
+pkgrel=5
pkgdesc="The Berkeley DB embedded database system"
url="https://www.oracle.com/technology/software/products/berkeley-db/index.html"
arch="all"
-license="custom"
+license="BSD-3-Clause"
options="!check" # "check target not available"
-depends=
-makedepends=
subpackages="$pkgname-dev $pkgname-doc $pkgname-utils $pkgname-c++:cxx"
source="https://download.oracle.com/berkeley-db/db-$pkgver.tar.gz
atomic.patch
"
-builddir="$srcdir/db-$_ver"
prepare() {
- cd "$builddir"
default_prepare
update_config_sub
}
-build () {
- cd "$builddir"
+build() {
cd build_unix
../dist/configure \
--build=$CBUILD \
@@ -38,13 +32,12 @@ build () {
}
package() {
- cd "$builddir"/build_unix
- make DESTDIR="$pkgdir" install
+ make -C build_unix DESTDIR="$pkgdir" install
mkdir -p "$pkgdir"/usr/share/doc
mv "$pkgdir"/usr/docs "$pkgdir"/usr/share/doc/$pkgname
- install -D -m644 "$srcdir"/db-$_ver/LICENSE \
+ install -Dm644 LICENSE \
"$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
@@ -61,5 +54,7 @@ cxx() {
mv "$pkgdir"/usr/lib/libdb_cxx*.so "$subpkgdir"/usr/lib/
}
-sha512sums="e91bbe550fc147a8be7e69ade86fdb7066453814971b2b0223f7d17712bd029a8eff5b2b6b238042ff6ec1ffa6879d44cb95c5645a922fee305c26c3eeaee090 db-5.3.28.tar.gz
-e9fedc5b870b95fe772a8121fca8b3642327d960441fe40a1090375efd37eec397a508e6e9100c2817c02bb4380421eb8ea400aeb060fe46a8bdac83a1abfbeb atomic.patch"
+sha512sums="
+e91bbe550fc147a8be7e69ade86fdb7066453814971b2b0223f7d17712bd029a8eff5b2b6b238042ff6ec1ffa6879d44cb95c5645a922fee305c26c3eeaee090 db-5.3.28.tar.gz
+e9fedc5b870b95fe772a8121fca8b3642327d960441fe40a1090375efd37eec397a508e6e9100c2817c02bb4380421eb8ea400aeb060fe46a8bdac83a1abfbeb atomic.patch
+"
diff --git a/main/dbus-glib/APKBUILD b/main/dbus-glib/APKBUILD
index 28adc0dc147..2e6bb4452b7 100644
--- a/main/dbus-glib/APKBUILD
+++ b/main/dbus-glib/APKBUILD
@@ -1,17 +1,23 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=dbus-glib
pkgver=0.112
-pkgrel=0
+pkgrel=6
pkgdesc="GLib bindings for DBUS"
options="!check" # FIXME: tests fails
-url="http://www.freedesktop.org/wiki/Software/DBusBindings"
+url="https://www.freedesktop.org/wiki/Software/DBusBindings"
arch="all"
-license="GPL-2.0-or-later"
+license="AFL-2.1 OR GPL-2.0-or-later"
subpackages="$pkgname-dev $pkgname-doc"
makedepends="dbus-dev glib-dev gettext-dev expat-dev"
source="https://dbus.freedesktop.org/releases/dbus-glib/dbus-glib-$pkgver.tar.gz"
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -31,4 +37,12 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="7c9f393f065dfb3d698f35e6554caf15fe539f5dd52d2b2bb6ed1770e130f5dab8e45379232520301455bae9bb77e25a109faf175153fcd4b9dd11d7de4a546e dbus-glib-0.112.tar.gz"
+dev() {
+ default_dev
+
+ amove usr/bin/dbus-binding-tool
+}
+
+sha512sums="
+7c9f393f065dfb3d698f35e6554caf15fe539f5dd52d2b2bb6ed1770e130f5dab8e45379232520301455bae9bb77e25a109faf175153fcd4b9dd11d7de4a546e dbus-glib-0.112.tar.gz
+"
diff --git a/main/dbus/0001-build-Treat-with-x-yes-the-same-as-with-x-auto.patch b/main/dbus/0001-build-Treat-with-x-yes-the-same-as-with-x-auto.patch
deleted file mode 100644
index 2d2530e5f04..00000000000
--- a/main/dbus/0001-build-Treat-with-x-yes-the-same-as-with-x-auto.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 99cc28e0eb1a37233c0f7d3595175d1f331550e7 Mon Sep 17 00:00:00 2001
-From: Lars Wendler <polynomial-c@gentoo.org>
-Date: Tue, 1 Mar 2022 15:56:30 +0100
-Subject: [PATCH 1/5] build: Treat --with-x[=yes] the same as --with-x=auto
-
-Previously, --with-x would disable the check for X11 libraries, which
-was not intended.
----
- configure.ac | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/configure.ac b/configure.ac
-index fa75e930..847e95fb 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1115,7 +1115,7 @@ if test "x$dbus_win" = xyes; then
-
- enable_x11_autolaunch=no
- have_x11=no
--else if test "x$with_x" = xauto; then
-+else if test "x$with_x" != xno; then
- PKG_CHECK_MODULES([X], [x11],
- [AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 library])],
- [ have_x11=no ])
---
-2.36.0
-
diff --git a/main/dbus/0002-Move-DBUS_X_-definitions-into-PKG_CHECK_MODULES-bloc.patch b/main/dbus/0002-Move-DBUS_X_-definitions-into-PKG_CHECK_MODULES-bloc.patch
deleted file mode 100644
index 9f871864bb7..00000000000
--- a/main/dbus/0002-Move-DBUS_X_-definitions-into-PKG_CHECK_MODULES-bloc.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 51e468d828785cbc7060678f6f257723ba11cd10 Mon Sep 17 00:00:00 2001
-From: Lars Wendler <polynomial-c@gentoo.org>
-Date: Tue, 1 Mar 2022 16:01:29 +0100
-Subject: [PATCH 2/5] Move DBUS_X_* definitions into PKG_CHECK_MODULES block
-
----
- configure.ac | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 847e95fb..a51e7265 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1117,15 +1117,15 @@ if test "x$dbus_win" = xyes; then
- have_x11=no
- else if test "x$with_x" != xno; then
- PKG_CHECK_MODULES([X], [x11],
-- [AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 library])],
-+ [AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 library])
-+ have_x11=yes
-+ DBUS_X_LIBS="$X_LIBS"
-+ DBUS_X_CFLAGS="$X_CFLAGS"
-+ ],
- [ have_x11=no ])
-
- if test "x$have_x11" = xno; then
- AC_MSG_WARN([Couldn't found X11, tried with pkg-config.])
-- else
-- have_x11=yes
-- DBUS_X_LIBS="$X_LIBS"
-- DBUS_X_CFLAGS="$X_CFLAGS"
- fi
- else
- AS_IF([test "x$enable_x11_autolaunch" = "xyes"], [
---
-2.36.0
-
diff --git a/main/dbus/0003-Emit-an-error-when-with-x-was-given-but-no-X11-libs-.patch b/main/dbus/0003-Emit-an-error-when-with-x-was-given-but-no-X11-libs-.patch
deleted file mode 100644
index e0c5cad5aba..00000000000
--- a/main/dbus/0003-Emit-an-error-when-with-x-was-given-but-no-X11-libs-.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 17c88a894499da64460a0ef76db1d8b88ceb9eeb Mon Sep 17 00:00:00 2001
-From: Lars Wendler <polynomial-c@gentoo.org>
-Date: Tue, 1 Mar 2022 16:05:52 +0100
-Subject: [PATCH 3/5] Emit an error when --with-x was given but no X11 libs
- were found
-
----
- configure.ac | 13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index a51e7265..4420c6d3 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1121,12 +1121,13 @@ else if test "x$with_x" != xno; then
- have_x11=yes
- DBUS_X_LIBS="$X_LIBS"
- DBUS_X_CFLAGS="$X_CFLAGS"
-- ],
-- [ have_x11=no ])
--
-- if test "x$have_x11" = xno; then
-- AC_MSG_WARN([Couldn't found X11, tried with pkg-config.])
-- fi
-+ ], [
-+ AS_IF([test "x$with_x" = xyes],
-+ [AC_MSG_ERROR([Couldn't find X11, tried with pkg-config.])],
-+ [AC_MSG_WARN([Couldn't find X11, tried with pkg-config.])]
-+ )
-+ have_x11=no
-+ ])
- else
- AS_IF([test "x$enable_x11_autolaunch" = "xyes"], [
- AC_MSG_ERROR([--enable-x11-autolaunch and --without-x are not compatible])
---
-2.36.0
-
diff --git a/main/dbus/0004-Add-have_x11-no-if-without-x-was-given-to-make-later.patch b/main/dbus/0004-Add-have_x11-no-if-without-x-was-given-to-make-later.patch
deleted file mode 100644
index 9cfa9de4884..00000000000
--- a/main/dbus/0004-Add-have_x11-no-if-without-x-was-given-to-make-later.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From bf3cb42c6db1f4479467d66a111b08a98afef31b Mon Sep 17 00:00:00 2001
-From: Lars Wendler <polynomial-c@gentoo.org>
-Date: Tue, 1 Mar 2022 16:08:06 +0100
-Subject: [PATCH 4/5] Add have_x11=no if --without-x was given to make later
- checks happy
-
----
- configure.ac | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/configure.ac b/configure.ac
-index 4420c6d3..8816a950 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1129,6 +1129,7 @@ else if test "x$with_x" != xno; then
- have_x11=no
- ])
- else
-+ have_x11=no
- AS_IF([test "x$enable_x11_autolaunch" = "xyes"], [
- AC_MSG_ERROR([--enable-x11-autolaunch and --without-x are not compatible])
- ])
---
-2.36.0
-
diff --git a/main/dbus/0005-Convert-if-calls-to-AS_IF-macro-for-the-block-that-h.patch b/main/dbus/0005-Convert-if-calls-to-AS_IF-macro-for-the-block-that-h.patch
deleted file mode 100644
index 1059b947412..00000000000
--- a/main/dbus/0005-Convert-if-calls-to-AS_IF-macro-for-the-block-that-h.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From c71f013a64cd7f6de4c9cf3cf3b236239d713eb1 Mon Sep 17 00:00:00 2001
-From: Lars Wendler <polynomial-c@gentoo.org>
-Date: Tue, 1 Mar 2022 16:11:05 +0100
-Subject: [PATCH 5/5] Convert "if" calls to AS_IF macro for the block that
- handles X11
-
----
- configure.ac | 13 ++++++-------
- 1 file changed, 6 insertions(+), 7 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 8816a950..91bd898c 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -1108,14 +1108,14 @@ AC_ARG_ENABLE([x11-autolaunch],
- AS_HELP_STRING([--enable-x11-autolaunch], [build with X11 auto-launch support]),
- [], [enable_x11_autolaunch=auto])
-
--if test "x$dbus_win" = xyes; then
-- if test "x$enable_x11_autolaunch" = xyes; then
-+AS_IF([test "x$dbus_win" = xyes], [
-+ AS_IF([test "x$enable_x11_autolaunch" = xyes], [
- AC_MSG_ERROR([X11 auto-launch is not supported on Windows])
-- fi
-+ ])
-
- enable_x11_autolaunch=no
- have_x11=no
--else if test "x$with_x" != xno; then
-+], [test "x$with_x" != xno], [
- PKG_CHECK_MODULES([X], [x11],
- [AC_DEFINE([HAVE_X11], [1], [Define to 1 if you have X11 library])
- have_x11=yes
-@@ -1128,13 +1128,12 @@ else if test "x$with_x" != xno; then
- )
- have_x11=no
- ])
--else
-+], [
- have_x11=no
- AS_IF([test "x$enable_x11_autolaunch" = "xyes"], [
- AC_MSG_ERROR([--enable-x11-autolaunch and --without-x are not compatible])
- ])
--fi
--fi
-+])
-
- if test "x$enable_x11_autolaunch,$have_x11" = xyes,no; then
- AC_MSG_ERROR([X11 auto-launch requires X headers/libraries])
---
-2.36.0
-
diff --git a/main/dbus/APKBUILD b/main/dbus/APKBUILD
index 84a819a21f0..cb3d5977f05 100644
--- a/main/dbus/APKBUILD
+++ b/main/dbus/APKBUILD
@@ -1,89 +1,74 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=dbus
-pkgver=1.14.0
+pkgver=1.14.10
pkgrel=1
pkgdesc="Freedesktop.org message bus system"
url="https://www.freedesktop.org/Software/dbus"
arch="all"
license="AFL-2.1 OR GPL-2.0-or-later"
depends_dev="util-linux-dev"
-makedepends="$depends_dev
- autoconf
- autoconf-archive
- automake
+makedepends="
+ $depends_dev
expat-dev
glib-dev
libsm-dev
- libtool
libx11-dev
+ meson
xmlto
"
-checkdepends="xvfb-run"
pkggroups="messagebus"
install="$pkgname.pre-install $pkgname.post-install"
triggers="$pkgname.trigger=/usr/share/dbus-1/system.d"
subpackages="
- $pkgname-static
$pkgname-dev
$pkgname-doc
$pkgname-libs
$pkgname-x11
$pkgname-openrc
+ $pkgname-daemon-launch-helper:launchhelper
"
source="https://dbus.freedesktop.org/releases/dbus/dbus-$pkgver.tar.xz
- 0001-build-Treat-with-x-yes-the-same-as-with-x-auto.patch
- 0002-Move-DBUS_X_-definitions-into-PKG_CHECK_MODULES-bloc.patch
- 0003-Emit-an-error-when-with-x-was-given-but-no-X11-libs-.patch
- 0004-Add-have_x11-no-if-without-x-was-given-to-make-later.patch
- 0005-Convert-if-calls-to-AS_IF-macro-for-the-block-that-h.patch
$pkgname.initd
$pkgname.confd
"
-options="!check" # introduces circular dependency with xorg-server (xvfb-run -> xvfb)
+options="!check" # fail on 1.14
# secfixes:
+# 1.14.4-r0:
+# - CVE-2022-42010
+# - CVE-2022-42011
+# - CVE-2022-42012
# 1.12.18-r0:
# - CVE-2020-12049
# 1.12.16-r0:
# - CVE-2019-12749
-prepare() {
- default_prepare
- autoreconf -vif
-}
-
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
- --sysconfdir=/etc \
--localstatedir=/var \
- --with-xml=expat \
- --with-dbus-user=messagebus \
+ --sysconfdir=/etc \
--with-system-pid-file=/run/dbus/dbus.pid \
- --disable-verbose-mode \
- --enable-inotify \
- --disable-dnotify \
- --enable-modular-tests=yes \
- --disable-asserts \
- --enable-user-session \
- --enable-xml-docs \
- --with-session-socket-dir=/tmp \
- --with-x
+ --enable-checks \
+ --disable-assertions
make
}
check() {
- xvfb-run make check
+ make check
}
package() {
- make -j1 DESTDIR="$pkgdir" install
- rm -rf "$pkgdir"/usr/lib/systemd
+ make DESTDIR="$pkgdir" install
install -Dm755 "$srcdir"/dbus.initd "$pkgdir"/etc/init.d/dbus
install -Dm644 "$srcdir"/dbus.confd "$pkgdir"/etc/conf.d/dbus
+
+ # can't install tmpfs
+ rm -r "$pkgdir"/var/run
}
libs() {
@@ -100,13 +85,15 @@ x11() {
amove usr/bin/dbus-launch
}
+launchhelper() {
+ pkgdesc="DBus SUID launch helper for autospawning"
+ install_if="$pkgname=$pkgver-r$pkgrel"
+
+ amove usr/libexec/dbus-daemon-launch-helper
+}
+
sha512sums="
-9bf17a3ebb3cf44722c6fbf24ee56e9dc14d6882fc312f26c7f07459d969424bc2fb63a229139e011804ecc479a8f0eb1a0c83286f8d5a664c5979d12634179f dbus-1.14.0.tar.xz
-d7c9ca341af0672621b3793ae51118d1b3ab4d1cd4cb8f8ad6b209e713c8e6446c2641c250ba82be42bb5ad3b7812e85165315a0997e4e298c8f8a265cbdcb3a 0001-build-Treat-with-x-yes-the-same-as-with-x-auto.patch
-6e8cdbef3c4263d9a2a878cbbc09511c68a02bc9b16d4d7e3a5e39e07e8dce9ec25ce5c7a7c77bda89e7a2af93246d5cbfd503406acb082d8189936c7d6076dd 0002-Move-DBUS_X_-definitions-into-PKG_CHECK_MODULES-bloc.patch
-eb53caf763fa11d2d9be6e9a4a09e93ea021d1764f401fb3d18f4ef656efacfda231efe2618adb704d15d881846785fea266c1d9700adc3cb38792cee823cf34 0003-Emit-an-error-when-with-x-was-given-but-no-X11-libs-.patch
-20163c93695c4286f3634941e959dc3b1289ab8d056d528ed35ccb7e71c5706377f72d514f9609bf5f51e9f573b9a996c64631bd2079ad12ae7cf0b2e69f227f 0004-Add-have_x11-no-if-without-x-was-given-to-make-later.patch
-723ba846da40883d7b1d2fd6e48822b427a5f29e9530854e90f2d761cbba711711b3013ed2b824576cdc529726c7bb39f8a5c9cc779222efb8e016c5d9d18332 0005-Convert-if-calls-to-AS_IF-macro-for-the-block-that-h.patch
-0db5c0804b5aa19c8d7e517b1c6d11b9b52d96477d4d26769c01a31765491ff12897b5634455ee57d978ea30e2d71c5df5ed3eecd5435983d8ab1128ff516315 dbus.initd
-3f063efa672a900ed04bc7224ba31b3ced91bb98ae096a3ce12552a0b6e2c38ddb445edb4876518f9be4140a5d901dc62080e95aab4346d89dbf329ebec33cb3 dbus.confd
+775b708326059692937acb69d4ce1a89e69878501166655b5d1b1628ac31b50dd53d979d93c84e57f95e90b15e25aa33893e51a7421d3537e9c2f02b1b91bfae dbus-1.14.10.tar.xz
+b0c17503fd18ae7f9a4df46aaf5811dddb63b9868b47d20fb5b9b49843ee159b1634fb7f27f9f7784bf26f751ab49302ea3053ae5d1acf875a0885286430e653 dbus.initd
+ea5df31eab4635da8af241c29878ca59927479f7bef71252416806d1504023da3c951a61bd6150fab0e1dbdde5ccfd91616db6043875b7babdf2bada873450dc dbus.confd
"
diff --git a/main/dbus/dbus.confd b/main/dbus/dbus.confd
index 04540475459..fb6445562c5 100644
--- a/main/dbus/dbus.confd
+++ b/main/dbus/dbus.confd
@@ -5,3 +5,6 @@
# Uncomment to use process supervisor.
#supervisor=supervise-daemon
+
+# Move machine-id generated by dbus-uuidgen
+#machine_id=/etc/machine-id
diff --git a/main/dbus/dbus.initd b/main/dbus/dbus.initd
index f3f44da50a8..915522142a9 100644
--- a/main/dbus/dbus.initd
+++ b/main/dbus/dbus.initd
@@ -17,7 +17,7 @@ depend() {
start_pre() {
checkpath -d -m755 -o root:messagebus /run/dbus || return 1
- /usr/bin/dbus-uuidgen --ensure=/etc/machine-id
+ /usr/bin/dbus-uuidgen --ensure="${machine_id:-/etc/machine-id}"
}
stop_post() {
diff --git a/main/dconf/APKBUILD b/main/dconf/APKBUILD
deleted file mode 100644
index 54e64f27f6b..00000000000
--- a/main/dconf/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=dconf
-pkgver=0.40.0
-pkgrel=1
-pkgdesc="low-level configuration system"
-url="https://wiki.gnome.org/Projects/dconf"
-arch="all"
-license="LGPL-2.1-or-later"
-makedepends="glib-dev dbus-dev docbook-xsl vala libxml2-dev meson
- py3-setuptools bash-completion"
-checkdepends="dbus"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-bash-completion"
-source="https://download.gnome.org/sources/dconf/${pkgver%.*}/dconf-$pkgver.tar.xz
- systemd-userunit.patch
- "
-
-build() {
- abuild-meson . output
- meson compile ${JOBS:+-j ${JOBS}} -C output
-}
-
-check() {
- meson test -C output -t 100
-}
-
-package() {
- DESTDIR="$pkgdir" meson install --no-rebuild -C output
-}
-
-sha512sums="71396d71f24f47653181482b052fdfc63795c50c373de34e2fb93e16101745daa7e81192b79a102d5389911cea34138eedf3ac32bc80562018e8a7f31963559a dconf-0.40.0.tar.xz
-320cafc3229c0f5e90f468c948e9a9d1499f69a40cea13c9d75e33d96c9fbef1584b1507fbcdb7ca12f967eb925a399a7bc0805d6f62af52ef3de7dfefee4242 systemd-userunit.patch"
diff --git a/main/dconf/systemd-userunit.patch b/main/dconf/systemd-userunit.patch
deleted file mode 100644
index 24dfeca938b..00000000000
--- a/main/dconf/systemd-userunit.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From b643f31976d92f67e9fab863836f74ccf41c75d5 Mon Sep 17 00:00:00 2001
-From: Leo <thinkabit.ukim@gmail.com>
-Date: Sat, 13 Mar 2021 02:52:44 -0300
-Subject: [PATCH] build: don't install systemd service unless systemd is found
-
-avoids installing useless files when compiling on non-systemd systems
-like Alpine Linux and Void Linux
----
- service/meson.build | 16 +++++++++-------
- 1 file changed, 9 insertions(+), 7 deletions(-)
-
-diff --git a/service/meson.build b/service/meson.build
-index a2045e5..214b74f 100644
---- a/service/meson.build
-+++ b/service/meson.build
-@@ -10,14 +10,16 @@ configure_file(
- install_dir: dbus_session_service_dir,
- )
-
--systemd_service = 'dconf.service'
-+if systemd_dep.found()
-+ systemd_service = 'dconf.service'
-
--configure_file(
-- input: systemd_service + '.in',
-- output: systemd_service,
-- configuration: service_conf,
-- install_dir: systemd_userunitdir,
--)
-+ configure_file(
-+ input: systemd_service + '.in',
-+ output: systemd_service,
-+ configuration: service_conf,
-+ install_dir: systemd_userunitdir,
-+ )
-+endif
-
- lib_sources = [
- 'dconf-blame.c',
---
-GitLab
-
diff --git a/main/ddate/APKBUILD b/main/ddate/APKBUILD
index d94eabf8920..7d4d9eacbda 100644
--- a/main/ddate/APKBUILD
+++ b/main/ddate/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Johannes Matheis <jomat+alpinebuild@jmt.gr>
-# Maintainer: Johannes Matheis <jomat+alpinebuild@jmt.gr>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=ddate
pkgver=0.2.2
-pkgrel=3
+pkgrel=5
pkgdesc="Convert Gregorian dates to Discordian dates"
url="https://github.com/bo0ts/ddate"
arch="all"
@@ -10,7 +10,7 @@ license="Public-Domain"
options="!check" # no testsuite
makedepends="cmake samurai"
subpackages="$pkgname-doc"
-source="ddate-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz"
+source="ddate-$pkgver.tar.gz::https://github.com/bo0ts/ddate/archive/v$pkgver.tar.gz"
build() {
cmake -B build -G Ninja \
diff --git a/main/debian-archive-keyring/APKBUILD b/main/debian-archive-keyring/APKBUILD
index 8de2bc4daef..73e51d88fe1 100644
--- a/main/debian-archive-keyring/APKBUILD
+++ b/main/debian-archive-keyring/APKBUILD
@@ -2,7 +2,7 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Sören Tempel <soeren+alpine@soeren-tempel.net>
pkgname=debian-archive-keyring
-pkgver=2021.1.1
+pkgver=2023.4
pkgrel=0
pkgdesc="GnuPG archive keys of the Debian archive"
url="https://packages.debian.org/sid/debian-archive-keyring"
@@ -31,4 +31,6 @@ package() {
unxz -c "$srcdir"/data.tar.xz | tar -x -C "$pkgdir"/
}
-sha512sums="64575ab9f23b69ca98f13d535e18574b6d7805add0d56238e760b9e639c9990f3f3d865460fdaf86480c3905a3f3d7637b56e2998ae60f2f05e2d08e148ddcc7 debian-archive-keyring_2021.1.1_all.deb"
+sha512sums="
+43360871728355eab0d5bbb5eee7fbb0adfdde97eb828972b0eebbb3f3b23369ac5825b232e444f0a212e00e47863dcd9d260db4f04394c9e1b7dfd282e44904 debian-archive-keyring_2023.4_all.deb
+"
diff --git a/main/debian-devscripts/APKBUILD b/main/debian-devscripts/APKBUILD
new file mode 100644
index 00000000000..ba1ee96f20a
--- /dev/null
+++ b/main/debian-devscripts/APKBUILD
@@ -0,0 +1,68 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=debian-devscripts
+pkgver=2.23.7
+pkgrel=0
+pkgdesc="debian developer scripts"
+url="https://tracker.debian.org/pkg/devscripts"
+arch="noarch"
+license="GPL-2.0-or-later"
+checkdepends="perl"
+# checkbashisms is the common accepted name, but prefix for rest
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ checkbashisms
+ $pkgname-hardening-check:harden
+ "
+source="https://ftp.debian.org/debian/pool/main/d/devscripts/devscripts_$pkgver.tar.xz"
+builddir="$srcdir/devscripts/scripts"
+
+prepare() {
+ default_prepare
+
+ sed -i "s/###VERSION###/$pkgver/" checkbashisms.pl
+
+ mv checkbashisms.pl checkbashisms
+ mv hardening-check.pl hardening-check
+}
+
+check() {
+ printf '#!/bin/sh\necho "hello world"\n' > ./testfile
+ perl ./checkbashisms --version
+ perl ./checkbashisms ./testfile
+}
+
+package() {
+ depends="
+ checkbashisms=$pkgver-r$pkgrel
+ $pkgname-hardening-check=$pkgver-r$pkgrel
+ "
+
+ # only these useful for now
+ install -Dm755 -t "$pkgdir"/usr/bin/ \
+ checkbashisms \
+ hardening-check
+
+ install -Dm644 checkbashisms.1 \
+ -t "$pkgdir"/usr/share/man/man1/
+ install -Dm644 checkbashisms.bash_completion \
+ $pkgdir/usr/share/bash-completion/completions/checkbashisms
+}
+
+checkbashisms() {
+ pkgdesc="$pkgdesc (checkbashisms)"
+ depends="perl"
+
+ amove usr/bin/checkbashisms
+}
+
+harden() {
+ pkgdesc="$pkgdesc (hardening-check)"
+ depends="perl"
+
+ amove usr/bin/hardening-check
+}
+
+sha512sums="
+d1cb527bc842f3f82413edb0f10dd90c3a7b362daeeca900cd998732989fe976abc04dd62760bfeda459bfc26eac0c038f59a8382759ae6c82b3cc745c20800f devscripts_2.23.7.tar.xz
+"
diff --git a/main/debootstrap/APKBUILD b/main/debootstrap/APKBUILD
index a11e79d5305..981c32ddeae 100644
--- a/main/debootstrap/APKBUILD
+++ b/main/debootstrap/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=debootstrap
-pkgver=1.0.126
-pkgrel=2
+pkgver=1.0.134
+pkgrel=0
pkgdesc="Debian/Ubuntu bootstrap scripts"
url="https://packages.qa.debian.org/d/debootstrap.html"
arch="noarch"
@@ -20,6 +20,6 @@ package() {
}
sha512sums="
-4851be46698c4e63c4c29d19a4d4e636fbb4c9aa46d1da04524d95a889b5062e216506bb33ef06875a5c5743bac115bd5323daf236783b85b066b2dc11d9b3ca debootstrap-1.0.126.tar.bz2
+e7b9726632d3816975c8cbd0020882f69db6d2a84f6c2d086a4e002c58afa61f8b08a8a35b40dd6a284e2cdb584817292462e5dc354fb83d177d50a56aa8cda6 debootstrap-1.0.134.tar.bz2
a349d9d8f5fe9e4ccb67d7206d5e87174722c0e0ee07405557662e94fb3c330a922f9cfe12bbd096103cbbe2146262ea300d9e1854f7fef77f4f1949984f5591 auto-detect-arch.patch
"
diff --git a/main/dejagnu/APKBUILD b/main/dejagnu/APKBUILD
index b974176acb6..dda782dfb80 100644
--- a/main/dejagnu/APKBUILD
+++ b/main/dejagnu/APKBUILD
@@ -1,8 +1,7 @@
# Contributor: A. Wilcox <awilfox@adelielinux.org>
-# Maintainer:
-
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=dejagnu
-pkgver=1.6.2
+pkgver=1.6.3
pkgrel=0
pkgdesc="A framework for testing other programs"
url="https://www.gnu.org/software/dejagnu/"
@@ -10,11 +9,11 @@ arch="noarch"
license="GPL-3.0-or-later"
depends="expect"
makedepends="tcl>=8.5"
+checkdepends="gawk"
subpackages="$pkgname-dev $pkgname-doc"
-source="https://ftp.gnu.org/pub/gnu/$pkgname/$pkgname-$pkgver.tar.gz"
+source="https://ftp.gnu.org/pub/gnu/dejagnu/dejagnu-$pkgver.tar.gz"
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -26,13 +25,13 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
-sha512sums="ae527ce245871d49b84773d0d14b1ea6b2316c88097eeb84091a3aa885ff007eeaa1cd9c5b002d94a956d218451079b5e170561ffa43a291d9d82283aa834042 dejagnu-1.6.2.tar.gz"
+sha512sums="
+1a737132bd912cb527e7f2fcbe70ffff8ccc8604a0ffdecff87ba2a16aeeefd800f5792aeffdbe79be6daa35cedb1c60e41002ca4aabb5370a460028191b76c4 dejagnu-1.6.3.tar.gz
+"
diff --git a/main/dev86/APKBUILD b/main/dev86/APKBUILD
index 09907dfe7de..28299a29850 100644
--- a/main/dev86/APKBUILD
+++ b/main/dev86/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=dev86
pkgver=0.16.21
-pkgrel=1
+pkgrel=3
pkgdesc="A real mode 80x86 assembler and linker"
url="https://github.com/lkundrak/dev86/"
arch="all"
@@ -19,7 +19,7 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/lkundrak/dev86/archive/v$pkg
prepare() {
default_prepare
# use our CFLAGS
- sed -i -e "s/-O2 -g/${CFLAGS}/" \
+ sed -i -e "s/-O2 -g/$CFLAGS/" \
makefile.in
# if [ "$CARCH" = x86_64 ]; then
sed -i \
@@ -28,7 +28,7 @@ prepare() {
makefile.in
# fi
sed -i \
- -e "s:-O2 -g:${CFLAGS}:" \
+ -e "s:-O2 -g:$CFLAGS:" \
-e '/INEXE=/s:-s::' \
makefile.in
# no stripping
diff --git a/main/devicemaster-linux/APKBUILD b/main/devicemaster-linux/APKBUILD
index dca4e080a3f..467786e4280 100644
--- a/main/devicemaster-linux/APKBUILD
+++ b/main/devicemaster-linux/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=devicemaster-linux
pkgver=7.34
-pkgrel=1
+pkgrel=3
pkgdesc="Userspace tools for NS-Link Device Drivers"
url="https://www.comtrol.com/resources/product-resources-white-papers/ns-link-device-drivers"
arch="all"
diff --git a/main/dhcp/01-dhclient-script-fix-bare-ip.patch b/main/dhcp/01-dhclient-script-fix-bare-ip.patch
deleted file mode 100644
index 7b3165d8750..00000000000
--- a/main/dhcp/01-dhclient-script-fix-bare-ip.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/client/scripts/linux b/client/scripts/linux
-index 0c42969..3cd2a75 100755
---- a/client/scripts/linux
-+++ b/client/scripts/linux
-@@ -394,7 +394,7 @@ case "$reason" in
- make_resolv_conf
- else
- # flush all IPs from interface
-- ip -4 addr flush dev ${interface}
-+ ${ip} -4 addr flush dev ${interface}
- exit_with_hooks 2
- fi
-
diff --git a/main/dhcp/02-dhclient-script-remove-bashisms.patch b/main/dhcp/02-dhclient-script-remove-bashisms.patch
deleted file mode 100644
index afa10484f9c..00000000000
--- a/main/dhcp/02-dhclient-script-remove-bashisms.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-diff --git a/client/scripts/linux b/client/scripts/linux
-index 0c42969..2e7274b 100755
---- a/client/scripts/linux
-+++ b/client/scripts/linux
-@@ -1,4 +1,4 @@
--#!/bin/bash
-+#!/bin/sh
- # dhclient-script for Linux. Dan Halbert, March, 1997.
- # Updated for Linux 2.[12] by Brian J. Murrell, January 1999.
- # No guarantees about this. I'm a novice at the details of Linux
-@@ -428,7 +428,7 @@ case "$reason" in
- # Check if any IPv6 address on this interface is marked as
- # tentative.
- ${ip} addr show ${interface} | grep inet6 | grep tentative \
-- &> /dev/null
-+ > /dev/null 2>&1
- if [ $? -eq 0 ]; then
- # Wait for duplicate address detection to complete or for
- # the timeout specified as --dad-wait-time.
-@@ -437,7 +437,7 @@ case "$reason" in
- # We're going to poll for the tentative flag every second.
- sleep 1
- ${ip} addr show ${interface} | grep inet6 | grep tentative \
-- &> /dev/null
-+ > /dev/null 2>&1
- if [ $? -ne 0 ]; then
- break;
- fi
diff --git a/main/dhcp/APKBUILD b/main/dhcp/APKBUILD
index d9aa8ad4079..5ce964d49e1 100644
--- a/main/dhcp/APKBUILD
+++ b/main/dhcp/APKBUILD
@@ -1,21 +1,29 @@
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer:
pkgname=dhcp
-pkgver=4.4.3
-_realver=${pkgver/_p/-P}
-pkgrel=0
+pkgver=4.4.3_p1
+_projver=${pkgver/_p/-P}
+pkgrel=4
pkgdesc="ISC Dynamic Host Configuration Protocol (DHCP)"
url="https://www.isc.org/"
arch="all"
license="MPL-2.0"
-_depends_server_ldap="!$pkgname-server-vanilla $pkgname"
-_depends_server_vanilla="!$pkgname-server-ldap $pkgname"
-depends_static="$pkgname-dev"
+depends_static="$pkgname-dev=$pkgver-r$pkgrel"
# busybox utils are not sufficient
-_depends_dhclient="coreutils iproute2 run-parts"
-_depends_dhcrelay="" # do not inherit depends from $pkgname
+_depends_dhclient="
+ coreutils
+ iproute2
+ run-parts
+ "
+makedepends="
+ krb5-dev
+ linux-headers
+ openldap-dev
+ perl
+ $_depends_dhclient
+ "
pkgusers="dhcp"
pkggroups="dhcp"
-makedepends="krb5-dev linux-headers openldap-dev perl"
install="$pkgname.pre-install"
subpackages="
$pkgname-dbg
@@ -23,17 +31,15 @@ subpackages="
$pkgname-openrc
$pkgname-libs-static
$pkgname-dev
- dhclient
+ $pkgname-server-vanilla:_server_vanilla
+ $pkgname-server-ldap:_server_ldap
dhcrelay
dhcrelay-openrc
- $pkgname-server-vanilla:server_vanilla
- $pkgname-server-ldap:server_ldap
+ dhclient
+ keama
"
-source="
- https://downloads.isc.org/isc/dhcp/$_realver/dhcp-$_realver.tar.gz
- 01-dhclient-script-fix-bare-ip.patch
- 02-dhclient-script-remove-bashisms.patch
- 03-fix-unwind-import.patch
+source="https://downloads.isc.org/isc/dhcp/$_projver/dhcp-$_projver.tar.gz
+ fix-unwind-import.patch
dhcp-3.0-fix-perms.patch
dhclient-script-alpine
dhcrelay.initd
@@ -41,10 +47,12 @@ source="
dhcpd.confd
dhcpd.initd
"
-builddir="$srcdir/$pkgname-$_realver"
-makedepends="$makedepends $_depends_dhclient $_depends_server_ldap $_depends_server_vanilla"
+builddir="$srcdir/$pkgname-$_projver"
# secfixes:
+# 4.4.3_p1-r0:
+# - CVE-2022-2928
+# - CVE-2022-2929
# 4.4.2_p1-r0:
# - CVE-2021-25217
# 4.4.1-r0:
@@ -79,7 +87,6 @@ _configure() {
--enable-paranoia \
--enable-log-pid \
"$@"
-
}
prepare() {
@@ -88,17 +95,20 @@ prepare() {
# it early then the build system will just use what we've already
# unpacked and patched.
tar -C "$builddir"/bind/ -xzf "$builddir"/bind/bind.tar.gz
+
default_prepare
+
update_config_guess
update_config_sub
+ cp config.guess config.sub bind/bind-*/
+
+ cp -ar "$builddir" "$builddir-ldap"
}
build() {
- cp config.guess config.sub bind/bind-*/
- cp -a "$builddir" "$builddir-ldap"
-
_configure
make -j1 -C bind && make
+ make -C keama
cd "$builddir-ldap"
_configure \
@@ -117,11 +127,10 @@ check() {
package() {
make DESTDIR="$pkgdir" install
+ make DESTDIR="$pkgdir" -C keama install
- #install -m751 -D "$builddir"/client/scripts/linux "$pkgdir"/sbin/dhclient-script
install -m751 -D "$srcdir"/dhclient-script-alpine "$pkgdir"/sbin/dhclient-script
- install -d "$pkgdir"/var/lib/dhcp
- install -d "$pkgdir"/run/dhcp
+ install -d -o dhcp -g dhcp "$pkgdir"/var/lib/dhcp
}
openrc() {
@@ -134,59 +143,56 @@ openrc() {
default_openrc
}
-server_ldap() {
- pkgdesc="ISC dhcpd server with LDAP support"
- depends="$_depends_server_ldap"
- provides="dhcp-server"
- provider_priority=100
-
- install -d "$subpkgdir"
- make DESTDIR="$subpkgdir" -C "$builddir-ldap/server" install-sbinPROGRAMS
+static() {
+ depends="$depends_static"
+ default_static || mkdir -p "$subpkgdir"
}
-server_vanilla() {
- pkgdesc="ISC dhcpd server"
- depends="$_depends_server_vanilla"
+_server_vanilla() {
+ pkgdesc="ISC DHCP server"
+ depends="$pkgname=$pkgver-r$pkgrel"
install_if="$pkgname=$pkgver-r$pkgrel"
- provides="dhcp-server"
- provider_priority=200
+ provides="dhcp-server=$pkgver-r$pkgrel"
+ provider_priority=100 # highest
- install -d "$subpkgdir"/usr/sbin
- mv "$pkgdir/usr/sbin/dhcpd" "$subpkgdir/usr/sbin/"
- rmdir "$pkgdir/usr/sbin" || :
+ amove usr/sbin/dhcpd
}
-dhclient() {
- pkgdesc="ISC dhcp client"
- depends="$_depends_dhclient"
+_server_ldap() {
+ pkgdesc="ISC DHCP server with LDAP support"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ provides="dhcp-server=$pkgver-r$pkgrel"
+ provider_priority=10 # lowest
- install -d -o dhcp -g dhcp "$subpkgdir"/var/lib/dhcp
- install -d -o dhcp -g dhcp "$subpkgdir"/run/dhcp
- install -d "$subpkgdir"/usr/sbin
- install -d "$subpkgdir"/sbin
- install -d "$subpkgdir"/etc/dhcp
- mv "$pkgdir"/usr/sbin/dhclient "$subpkgdir"/usr/sbin/
- mv "$pkgdir"/sbin/dhclient-script "$subpkgdir"/sbin/
- ln -s ../sbin/dhclient-script "$subpkgdir"/etc/dhclient-script
- mv "$pkgdir"/etc/dhcp/dhclient.conf* "$subpkgdir"/etc/dhcp/
+ install -d "$subpkgdir"
+ make DESTDIR="$subpkgdir" -C "$builddir-ldap/server" install-sbinPROGRAMS
}
dhcrelay() {
- pkgdesc="ISC dhcp relay server"
- depends="$_depends_dhcrelay"
- replaces="dhcp"
+ pkgdesc="ISC DHCP relay agent"
+ depends=""
install="$subpkgname.pre-install"
- install -d "$subpkgdir"/run/dhcp \
- "$subpkgdir"/usr/sbin
- mv "$pkgdir"/usr/sbin/dhcrelay "$subpkgdir"/usr/sbin/
+ amove usr/sbin/dhcrelay
}
-static() {
- depends="$depends_static"
- default_static || mkdir -p "$subpkgdir"
+dhclient() {
+ pkgdesc="ISC DHCP client"
+ depends="$_depends_dhclient"
+
+ amove etc/dhcp/dhclient.conf*
+ amove usr/sbin/dhclient
+ amove sbin/dhclient-script
+ ln -s ../sbin/dhclient-script "$subpkgdir"/etc/dhclient-script
+
+ install -d -o dhcp -g dhcp "$subpkgdir"/var/lib/dhcp
}
+keama() {
+ pkgdesc="KEA Migration Assistant to translate ISC DHCP configurations to Kea"
+
+ amove usr/sbin/keama
+}
# gpg_signature_extensions="sha512.asc"
# gpgfingerprints="
@@ -195,14 +201,12 @@ static() {
# "
sha512sums="
-4472d6794af80b482560956cee6895889cc1aca39980f851faf56824627e95731f2983cf7c7454bc3decb0a12c874fcbd29bd6c5a9695412def6bc14c6df17e0 dhcp-4.4.3.tar.gz
-17e2b9588ee5d1bd9acb9c2e30f7a28308d29c9e797c2be14c1feff52e6e231ce8a94535f18badff1342aff4ae4003aab986e0f0473f0cd280292fdab044b148 01-dhclient-script-fix-bare-ip.patch
-a70e4a7e80ee65c8ced6b61db80f7ccd0f35015b5cccf2e7c51705ae129230aa49ba9926bb88f7418018e7a112c2a40451f24b88e04464b590ff20091e8d8709 02-dhclient-script-remove-bashisms.patch
-23ab581d85ba97a37fd6a0a612e0aa977b24bbaf83d58a93d1a87f9f24ea9a098aa549e77a6e1d78f721681c152464b15fd1d402d0673edf4dac6aa196df1fe9 03-fix-unwind-import.patch
+d14dc44d1c015780ae19769816cb01015959927a1ad7a3e84b89e0463253aaf46451af88e3260347196373906d5b438c7c616fee45ec3f128aa82af6702b7154 dhcp-4.4.3-P1.tar.gz
+23ab581d85ba97a37fd6a0a612e0aa977b24bbaf83d58a93d1a87f9f24ea9a098aa549e77a6e1d78f721681c152464b15fd1d402d0673edf4dac6aa196df1fe9 fix-unwind-import.patch
d5697a56fbbff25199962608986e7ffb533ed4afd3e344e3c79d2010dda73cc0b088f06c454e9f0c69eb054e09a374455fa71d3f73306e0c98fa76df4dd321b7 dhcp-3.0-fix-perms.patch
d1dce58875793316761f168e29feddc1d3454d1d917d063d43ae102b7b6aab256c3cb420478335c57ebcdb2b7c804afa4d8a1f9ab06a29a4dd23bc5d87db8df2 dhclient-script-alpine
-ce62693cb483616844bb6774f9046af6a1a210e35cfaa59ab3bd12f68d50176714a324e92538b35139110b78191866f65b30d6979d8a45f7b68e572e7a1e8427 dhcrelay.initd
-fd15dbaa4c61c3c26f407bf13dde859470a1adba134da064b653ccc152ce42635ee8de2fe113ae21ba8470e97e3caad8c1a47b69eb25e5e92b40e26790b96f6d dhcrelay.confd
+e672ec030137e870afb817ec0fe4e01a7553f331181e481cba1f032f1e18798dd153bf30105ca8361284e6e11f80435ef7c960b0a11c32c5766c30a0c960550c dhcrelay.initd
+970ee381dd6a7e0e30d71e28597d17074421ac167b233f597a129ed9b977cba1026375a020dff2613c3f4d458b71ed9fe4447abfcf5edf27b395e6f2b00f0982 dhcrelay.confd
7b7a77b7826b475a4113ebeee54501ce417cc56e85754301a82a185d88b4713d198f615a366e63e0e2b0aef988c8137dcd1e18c4036d993378257079da17693d dhcpd.confd
1f78c4f64a891012b4de029c50934b284ad80313959e06b0f29416f33a9e4f0deca8b61e9224a683a92faf8a08e8b7c075bc6e833ab73b6305c0d6d9712d0baf dhcpd.initd
"
diff --git a/main/dhcp/dhcp.pre-install b/main/dhcp/dhcp.pre-install
index 6aa3de03be6..674cc7ef719 100644
--- a/main/dhcp/dhcp.pre-install
+++ b/main/dhcp/dhcp.pre-install
@@ -1,6 +1,6 @@
#!/bin/sh
addgroup -S dhcp 2>/dev/null
-adduser -S -D -h /var/lib/dhcp -s /sbin/nologin -G dhcp -g dhcp dhcp 2>/dev/null
+adduser -S -D -H -h /var/lib/dhcp -s /sbin/nologin -G dhcp -g dhcp dhcp 2>/dev/null
exit 0
diff --git a/main/dhcp/dhcrelay.confd b/main/dhcp/dhcrelay.confd
index 1102d3a41bc..5eccb704a00 100644
--- a/main/dhcp/dhcrelay.confd
+++ b/main/dhcp/dhcrelay.confd
@@ -11,3 +11,6 @@
# Space separated list of IPs to forward BOOTP/DHCP packets to.
DHCRELAY_SERVERS=""
+
+# vrf e.g 'vrf-int'
+#vrf=""
diff --git a/main/dhcp/dhcrelay.initd b/main/dhcp/dhcrelay.initd
index 2dc6b56cf16..b612008fba6 100644
--- a/main/dhcp/dhcrelay.initd
+++ b/main/dhcp/dhcrelay.initd
@@ -15,6 +15,12 @@ start() {
return 1
fi
+ # If we are configured to run in a VRF, provide a hint for that
+ RC_VRF_EXEC=""
+ if [ -n "$vrf" ]; then
+ RC_VRF_EXEC="/sbin/ip vrf exec $vrf"
+ fi
+
local IFACES= i=
for i in ${IFACE} ; do
IFACES="${IFACES} -i ${i}"
@@ -23,7 +29,7 @@ start() {
checkpath --directory --owner dhcp:dhcp /run/dhcp
ebegin "Starting dhcrelay"
- start-stop-daemon --start --exec /usr/sbin/dhcrelay \
+ ${RC_VRF_EXEC} start-stop-daemon --start --exec /usr/sbin/dhcrelay \
-- -q ${IFACES} ${DHCRELAY_OPTS} ${DHCRELAY_SERVERS}
eend $?
}
diff --git a/main/dhcp/dhcrelay.pre-install b/main/dhcp/dhcrelay.pre-install
index 6aa3de03be6..674cc7ef719 100644
--- a/main/dhcp/dhcrelay.pre-install
+++ b/main/dhcp/dhcrelay.pre-install
@@ -1,6 +1,6 @@
#!/bin/sh
addgroup -S dhcp 2>/dev/null
-adduser -S -D -h /var/lib/dhcp -s /sbin/nologin -G dhcp -g dhcp dhcp 2>/dev/null
+adduser -S -D -H -h /var/lib/dhcp -s /sbin/nologin -G dhcp -g dhcp dhcp 2>/dev/null
exit 0
diff --git a/main/dhcp/03-fix-unwind-import.patch b/main/dhcp/fix-unwind-import.patch
index 8b87fdbd3e3..8b87fdbd3e3 100644
--- a/main/dhcp/03-fix-unwind-import.patch
+++ b/main/dhcp/fix-unwind-import.patch
diff --git a/main/dhcpcd-dbus/APKBUILD b/main/dhcpcd-dbus/APKBUILD
deleted file mode 100644
index a611938e996..00000000000
--- a/main/dhcpcd-dbus/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-# Contributor: Valery Kartel <valery.kartel@gmail.com>
-pkgname=dhcpcd-dbus
-pkgver=0.6.1
-pkgrel=5
-pkgdesc="DBUS binding to dhcpcd"
-url="https://roy.marples.name/projects/dhcpcd"
-arch="all"
-license="BSD-2-Clause"
-depends="dbus"
-makedepends="dbus-dev"
-source="http://roy.marples.name/downloads/dhcpcd/dhcpcd-dbus-$pkgver.tar.bz2
- fix-dhcpcd.patch"
-
-prepare() {
- default_prepare
- # Fix location of dbus configuration
- sed -e 's|${SYSCONFDIR}/dbus-1/system.d|/usr/share/dbus-1/system.d|g' \
- -i Makefile
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --rundir=/run \
- --sysconfdir=/etc \
- --libexecdir=/usr/lib/$pkgname
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="ec110654115afedead094c6766877e7b3f5facbfec6778590d8aa3ceef777b183754fc077a10cf5c16b39c03e42d5948abd7c21e1d8a2d7fa376ec229bd75e6a dhcpcd-dbus-0.6.1.tar.bz2
-89667704e357efc904ad16e2485bc35e7d99b1c978407db6363a207ade5d0bc68f7165d7a2a352bbba4e53812b3584c23fe6e5b0f981aa6333ec4eae27748d73 fix-dhcpcd.patch"
diff --git a/main/dhcpcd-dbus/fix-dhcpcd.patch b/main/dhcpcd-dbus/fix-dhcpcd.patch
deleted file mode 100644
index 13e4f511617..00000000000
--- a/main/dhcpcd-dbus/fix-dhcpcd.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- a/dhcpcd.c
-+++ b/dhcpcd.c
-@@ -664,7 +664,7 @@
- return list;
- }
-
--#ifndef __GLIBC__
-+#ifndef _GNU_SOURCE
- /* Good enough for our needs */
- static int
- strverscmp(const char *s1, const char *s2)
---- a/dhcpcd.h
-+++ b/dhcpcd.h
-@@ -28,6 +28,8 @@
- #ifndef DHCPCD_H
- #define DHCPCD_H
-
-+#include <sys/types.h>
-+
- extern char *dhcpcd_version;
- extern const char *dhcpcd_status;
-
diff --git a/main/dhcpcd/APKBUILD b/main/dhcpcd/APKBUILD
index 269a068ca94..38d7d6ef8b5 100644
--- a/main/dhcpcd/APKBUILD
+++ b/main/dhcpcd/APKBUILD
@@ -2,22 +2,22 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=dhcpcd
-pkgver=9.4.1
+pkgver=10.0.6
pkgrel=0
pkgdesc="RFC2131 compliant DHCP client"
url="https://roy.marples.name/projects/dhcpcd"
arch="all"
license="BSD-2-Clause"
-makedepends="linux-headers bsd-compat-headers dbus-dev"
-install="$pkgname.post-upgrade"
+makedepends="linux-headers bsd-compat-headers"
+install="$pkgname.post-upgrade $pkgname.pre-install"
subpackages="$pkgname-doc $pkgname-openrc"
-source="https://roy.marples.name/downloads/dhcpcd/dhcpcd-$pkgver.tar.xz
+source="https://github.com/NetworkConfiguration/dhcpcd/releases/download/v$pkgver/dhcpcd-$pkgver.tar.xz
busybox-logger.patch
fix-chrony-conf-location.patch
dhcpcd.initd
"
+
build() {
- CFLAGS="$CFLAGS -D_GNU_SOURCE -DHAVE_PRINTF_M"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -26,8 +26,11 @@ build() {
--localstatedir=/var \
--libexecdir=/usr/lib/$pkgname \
--dbdir=/var/lib/$pkgname \
- --rundir=/run \
+ --rundir=/run/dhcpcd \
+ --runstatedir=/run/dhcpcd \
--enable-ipv6 \
+ --enable-privsep \
+ --enable-seccomp \
--without-dev \
--without-udev
make
@@ -44,8 +47,8 @@ package() {
}
sha512sums="
-530e6a5bddab4f91bd66f8d47ccd8d6cac4bc2998ddd36da7e257c83270b558016e9e1fc2f815fb99c0d86ed4bbc2a3a1b78788e69fe151fddaf94428a47fa45 dhcpcd-9.4.1.tar.xz
-692b2c8c75166fabd512a7cc69c650f9391e0f682ce9cbe1771bfa44e82dcf09e322c46493c45ca75000f479d3cddde306754ba31d28a798a15e2b79a56045f0 busybox-logger.patch
+403d612080c6f1397003dc6a16f59bb5d1d3d3479e3656c598acde4c4aafe1cfa374725c5ae3dddb4972c0f23ffd55d04c3703b97bed5b7060855b61b7738004 dhcpcd-10.0.6.tar.xz
+b6bdaac9fc0d5d2d7e8c5e30d1a45db1cff2284d01f92f8821b2f03aaff4e0dbd8cbfbced96d8d9d934dc11f22b792a8345d634d8e4e3b84f43016b7e866e302 busybox-logger.patch
1c19eed0f7a008ee96ea392beb327169ff8c83fc27fed20f65f05c9125f60629ebe3474c5e6a7cf4aeeea448fde4264c9b84916efacd67d47ab908c47b1fc3a5 fix-chrony-conf-location.patch
-dc3b30295dbe5310526443736e60ccc53621d465d512639e8ea20efe598037ff33730e46964e4e7bc32d4ce88aaecf3b9bb9a4ceab892d8bff3423e0374ccae1 dhcpcd.initd
+7fb44b82a6fa25ee6249fc4835853a4c1fc7d327653efabd9fde303b1f306b3aa6956b2621b55a24fc007ec7ad878ce50e7418ebff0b17fece76e2fdd9e5190d dhcpcd.initd
"
diff --git a/main/dhcpcd/busybox-logger.patch b/main/dhcpcd/busybox-logger.patch
index f1b913931b0..220b914bcb9 100644
--- a/main/dhcpcd/busybox-logger.patch
+++ b/main/dhcpcd/busybox-logger.patch
@@ -1,9 +1,11 @@
+diff --git a/hooks/dhcpcd-run-hooks.in b/hooks/dhcpcd-run-hooks.in
+index 91df64b..c6fb8c6 100644
--- a/hooks/dhcpcd-run-hooks.in
+++ b/hooks/dhcpcd-run-hooks.in
-@@ -179,7 +179,7 @@
+@@ -179,7 +179,7 @@ syslog()
*) echo "$interface: $*";;
esac
- if type logger >/dev/null 2>&1; then
+ if command -v logger >/dev/null 2>&1; then
- logger -i -p daemon."$lvl" -t dhcpcd-run-hooks "$interface: $*"
+ logger -p daemon."$lvl" -t dhcpcd-run-hooks "$interface: $*"
fi
diff --git a/main/dhcpcd/dhcpcd.initd b/main/dhcpcd/dhcpcd.initd
index aab118242e1..bcefb601d6c 100644
--- a/main/dhcpcd/dhcpcd.initd
+++ b/main/dhcpcd/dhcpcd.initd
@@ -3,9 +3,9 @@
description="DHCP Client Daemon"
command="/sbin/dhcpcd"
-command_args="-q ${command_args:-}"
-command_args_foreground="-B"
-pidfile="/run/dhcpcd.pid"
+command_args="-q -B ${command_args:-}"
+command_background="true"
+pidfile="/run/dhcpcd/pid"
depend() {
provide net
@@ -14,3 +14,7 @@ depend() {
after bootmisc modules
before dns
}
+
+start_pre() {
+ checkpath -d /run/dhcpcd
+}
diff --git a/main/dhcpcd/dhcpcd.pre-install b/main/dhcpcd/dhcpcd.pre-install
new file mode 100644
index 00000000000..e69b5e9bd92
--- /dev/null
+++ b/main/dhcpcd/dhcpcd.pre-install
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+user=dhcpcd
+group=dhcpcd
+
+addgroup -S $group 2>/dev/null
+adduser -S -D -h /var/lib/$user -s /sbin/nologin -G $group -g $user $user 2>/dev/null
+
+exit 0
diff --git a/main/dialog/APKBUILD b/main/dialog/APKBUILD
index 1812026b878..90a8ee6e3b9 100644
--- a/main/dialog/APKBUILD
+++ b/main/dialog/APKBUILD
@@ -1,13 +1,12 @@
# Contributor: Michael Mason <ms13sp@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=dialog
-pkgver=1.3.20220526
+pkgver=1.3.20240307
_pkgver=${pkgver%.*}-${pkgver##*.}
pkgrel=0
pkgdesc="Script interpreter providing curses widgets"
url="https://invisible-island.net/dialog/dialog.html"
arch="all"
-options="!check" # No test suite.
license="LGPL-2.1-only"
makedepends="ncurses-dev"
subpackages="$pkgname-doc $pkgname-static"
@@ -26,18 +25,14 @@ build() {
make
}
-package() {
- make DESTDIR="$pkgdir" install
+check() {
+ make check
}
-static() {
- pkgdesc="$pkgdesc (static library)"
- depends=""
-
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib
+package() {
+ make DESTDIR="$pkgdir" install
}
sha512sums="
-619d52b8123264bf586f5325443c3b85863166119c6fbaa91571a57454d761f01a53ebeb2203ea725c83dc88f2abf886c64c6eac5b56c126e4f3939eb1d24d62 dialog-1.3-20220526.tgz
+a3d3c4c2a9fb45f1a06ca1789e92913072c5401af9d90b362cbaaf5d35bff97f16186da20de32a7c8eec24638be15983916978615db06c1b33abd34a180ea461 dialog-1.3-20240307.tgz
"
diff --git a/main/diffutils/APKBUILD b/main/diffutils/APKBUILD
index fe0cfc392cf..756124081c6 100644
--- a/main/diffutils/APKBUILD
+++ b/main/diffutils/APKBUILD
@@ -1,23 +1,18 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=diffutils
-pkgver=3.8
+pkgver=3.10
pkgrel=0
pkgdesc="Show differences among files"
subpackages="$pkgname-doc"
url="https://www.gnu.org/software/diffutils/"
arch="all"
license="GPL-3.0-or-later"
-checkdepends="coreutils perl"
-# cyclic dependency during bootstrap:
-# m4 -> diffutils -> coreutils -> bash -> flex -> bison -> m4
-[ -n "$BOOTSTRAP" ] && options="$options !check"
-source="https://ftp.gnu.org/pub/gnu/$pkgname/$pkgname-$pkgver.tar.xz
- skip-test-presue-output-tty.patch
- "
-
-builddir=$srcdir/$pkgname-$pkgver
+checkdepends="perl"
+source="https://ftp.gnu.org/pub/gnu/diffutils/diffutils-$pkgver.tar.xz"
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -37,6 +32,5 @@ package() {
}
sha512sums="
-279441270987e70d5ecfaf84b6285a4866929c43ec877e50f154a788858d548a8a316f2fc26ad62f7348c8d289cb29a09d06dfadce1806e3d8b4ea88c8b1aa7c diffutils-3.8.tar.xz
-5df0dc7a452180c361698ee502b4636a5e7277132e543136c205747fac64acc6276186ec8c884b17e9fe3e307f15e045ba327d44ac4662db88675c309c56367a skip-test-presue-output-tty.patch
+219d2c815a120690c6589846271e43aee5c96c61a7ee4abbef97dfcdb3d6416652ed494b417de0ab6688c4322540d48be63b5e617beb6d20530b5d55d723ccbb diffutils-3.10.tar.xz
"
diff --git a/main/diffutils/skip-test-presue-output-tty.patch b/main/diffutils/skip-test-presue-output-tty.patch
deleted file mode 100644
index e0a47d51603..00000000000
--- a/main/diffutils/skip-test-presue-output-tty.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Test fails for unknown reasons on lxc builders
-
-diff --git a/tests/colors b/tests/colors
-index d28a61c..e799dd3 100755
---- a/tests/colors
-+++ b/tests/colors
-@@ -123,11 +123,11 @@ compare exp out || fail=1
-
- # Before the fix in http://debbugs.gnu.org/22067,
- # this test would trigger an infinite loop bug.
--mkfifo fifo
--printf '%1000000s-a' > a
--printf '%1000000s-b' > b
--head -c 10 < fifo > /dev/null &
--diff --color=always ---presume-output-tty a b > fifo
--test $? = 141 || fail=1
-+#mkfifo fifo
-+#printf '%1000000s-a' > a
-+#printf '%1000000s-b' > b
-+#head -c 10 < fifo > /dev/null &
-+#diff --color=always ---presume-output-tty a b > fifo
-+#test $? = 141 || fail=1
-
- Exit $fail
diff --git a/main/distcc/APKBUILD b/main/distcc/APKBUILD
index b8c2882a812..110950fb09c 100644
--- a/main/distcc/APKBUILD
+++ b/main/distcc/APKBUILD
@@ -2,16 +2,17 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=distcc
pkgver=3.4
-pkgrel=2
+pkgrel=9
pkgdesc="Ddistributed C, C++, Obj C compiler"
url="https://github.com/distcc/distcc"
arch="all"
-license="GPL-2.0"
-makedepends="autoconf automake popt-dev python3-dev"
+license="GPL-2.0-or-later"
+_pump_deps="python3 py3-setuptools"
+makedepends="autoconf automake popt-dev python3-dev $_pump_deps"
checkdepends="gdb procps"
options="!check" # tests are failing
install="$pkgname.pre-install"
-subpackages="$pkgname-doc $pkgname-pump"
+subpackages="$pkgname-doc $pkgname-pump-pyc $pkgname-pump $pkgname-openrc"
source="https://github.com/distcc/distcc/releases/download/v$pkgver/distcc-$pkgver.tar.gz
distcc-hardened.patch
gcc-10.patch
@@ -22,6 +23,7 @@ source="https://github.com/distcc/distcc/releases/download/v$pkgver/distcc-$pkgv
prepare() {
default_prepare
+ update_config_sub
./autogen.sh
}
@@ -60,6 +62,7 @@ package() {
pump() {
pkgdesc="pump mode for distcc a distributed compiler client and server"
+ depends="$_pump_deps distcc=$pkgver-r$pkgrel"
mkdir -p "$subpkgdir"/usr/lib "$subpkgdir"/usr/bin
mv "$pkgdir"/usr/bin/pump "$subpkgdir"/usr/bin/
mv "$pkgdir"/usr/lib/python* "$subpkgdir"/usr/lib/
@@ -70,6 +73,6 @@ de09329fdfa25e08a9b9529190ddaa9ceccb34c8655692edb86f367a8db4a71b750c6e928cb8e5a6
b53a0d6038504917fd41f549da4f5addaff6ebd198a5d9d3ee8d4654f843aab375da4017b40efe24b9d4c9881719030485e4f56724690ba271fb52dc48249a44 distcc-hardened.patch
4e55e0acda58e6f273c74e9d617de1a121debf820e915cf8aeb4d80907d427a058466bb2fd9126602aea7f861fd5fa1c2bede15e2a512923bc61e3ef163430d4 gcc-10.patch
9bc411107021d5f621304a73b0bfdec387d1b33121a325503cf4c9c4046924338ee1b4ef093b517249c3df31cf69cd9f19377df2edd6e81be1dac50a5bd0f3d5 dcc_gcc_rewrite_fqn-avoid-heap-corruption.patch
-3c58be08242de09f76876b20a0c6643a3a76a088c356484cb091253b7e4dddb20008d071d8e5d1a66acbc5bfe4d8a59284a6d7f225ca2006e8a8b3c698e71026 distccd.initd
+32d6669955754b004db8716c321703fcb50da31d8dfc1288b021834fe968e5f7c9eb40d8af34eba9b59becc07e315f65127d711bb0bc49df41c6b4b973864855 distccd.initd
fbb12522e489243475c735e055a72a19b176f1ad736dc810e1f085d8d9d79460ac7590a92bb9563f8b316437f67f6ca729330253f007d06011144a66fede5465 distccd.confd
"
diff --git a/main/distcc/distccd.initd b/main/distcc/distccd.initd
index d8a18435f1d..c6d8ca13c31 100644
--- a/main/distcc/distccd.initd
+++ b/main/distcc/distccd.initd
@@ -20,6 +20,7 @@ start() {
#endif
ebegin "Starting distccd"
+ checkpath -d /var/run/distccd -m 644 -o distcc
chown distcc `dirname ${DISTCCD_PIDFILE}` >/dev/null 2>&1
TMPDIR="${TMPDIR}" \
/sbin/start-stop-daemon --start --quiet --exec ${DISTCCD_EXEC} \
diff --git a/main/djbdns/APKBUILD b/main/djbdns/APKBUILD
index e0ee5b26184..325f7035fed 100644
--- a/main/djbdns/APKBUILD
+++ b/main/djbdns/APKBUILD
@@ -1,18 +1,20 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=djbdns
pkgver=1.05
-pkgrel=47
+pkgrel=53
pkgdesc="Excellent high-performance DNS services"
url="http://cr.yp.to/djbdns.html"
arch="all"
license="Public-Domain"
-subpackages="djbdns-common tinydns dnscache $pkgname-doc"
-source="https://cr.yp.to/djbdns/$pkgname-$pkgver.tar.gz
+subpackages="djbdns-common tinydns tinydns-openrc:tinydns_openrc dnscache
+ dnscache-openrc:dnscache_openrc $pkgname-doc"
+source="https://cr.yp.to/djbdns/djbdns-$pkgver.tar.gz
https://www.fefe.de/dns/djbdns-1.05-test25.diff.bz2
headtail.patch
dnsroots.patch
dnstracesort.patch
djbdns-1.05-jumbo-josb.patch
+ implicit.patch
$pkgver-errno.patch
$pkgver-response.patch
tinydns.pre-install
@@ -22,33 +24,30 @@ https://www.fefe.de/dns/djbdns-1.05-test25.diff.bz2
dnscache.confd
dnscache.monthly
"
+options="!check"
-builddir="$srcdir"/$pkgname-$pkgver
prepare() {
default_prepare
- cd "$builddir"
# remove all the generated headers. they came with the jumbo patch and should
# never have been there...
sed -n 's/^\([a-z0-9]\+\.h\):.*/\1/gp' Makefile Makefile.sig | xargs rm -f
}
build() {
- cd "$builddir"
- echo "${CC:-"gcc"} ${CFLAGS}" > conf-cc
- echo "${CC:-"gcc"} ${LDFLAGS}" > conf-ld
+ # sigsetmask
+ export CFLAGS="$CFLAGS -DHASSIGPROCMASK"
+ echo "${CC:-"gcc"} $CFLAGS" > conf-cc
+ echo "${CC:-"gcc"} $LDFLAGS" > conf-ld
echo "/usr" > conf-home
make -j1
}
package() {
- cd "$builddir"
- mkdir -p "$pkgdir"/etc/
- cp dnsroots.global "$pkgdir"/etc/
- mkdir -p "$pkgdir"/usr/bin
- cp *-conf dnscache tinydns walldns rbldns pickdns axfrdns \
+ install -Dm644 dnsroots.global -t "$pkgdir"/etc/
+ install -Dm755 *-conf dnscache tinydns walldns rbldns pickdns axfrdns \
*-get *-data *-edit dnsip dnsipq dnsname dnstxt dnsmx \
dnsfilter random-ip dnsqr dnsq dnstrace dnstracesort \
- "$pkgdir"/usr/bin/
+ -t "$pkgdir"/usr/bin/
mkdir -p "$pkgdir"/usr/share/doc/djbdns
}
@@ -56,18 +55,23 @@ common() {
pkgdesc="Base utilities of djbdns"
replaces="djbdns"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/dnsqr "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/dnsip "$subpkgdir"/usr/bin
+ amove usr/bin/dnsqr usr/bin/dnsip
}
tinydns() {
pkgdesc="A small and secure DNS server"
install=tinydns.pre-install
- mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/etc/tinydns \
+ amove usr/bin/tinydns*
+ mkdir -p "$subpkgdir"/etc/tinydns \
"$subpkgdir"/var/cache/tinydns
- mv "$pkgdir"/usr/bin/tinydns* "$subpkgdir"/usr/bin
+}
+
+tinydns_openrc() {
+ depends=
+ pkgdesc="A small and secure DNS server (OpenRC init scripts)"
+ install_if="openrc ${subpkgname%-openrc}=$pkgver-r$pkgrel"
+
install -D -m755 "$srcdir"/tinydns.initd \
"$subpkgdir"/etc/init.d/tinydns
install -D -m644 "$srcdir"/tinydns.confd \
@@ -87,20 +91,29 @@ dnscache() {
touch "$subpkgdir"/etc/dnscache/ip/127
mv "$pkgdir"/usr/bin/dnscache* "$subpkgdir"/usr/bin
+ install -D -m755 "$srcdir"/dnscache.monthly \
+ "$subpkgdir"/etc/periodic/monthly/dnscache-hints-refresh
+}
+
+dnscache_openrc() {
+ depends=
+ pkgdesc="A recursive resolver (OpenRC init scripts)"
+ install_if="openrc ${subpkgname%-openrc}=$pkgver-r$pkgrel"
+
install -D -m755 "$srcdir"/dnscache.initd \
"$subpkgdir"/etc/init.d/dnscache
install -D -m644 "$srcdir"/dnscache.confd \
"$subpkgdir"/etc/conf.d/dnscache
- install -D -m755 "$srcdir"/dnscache.monthly \
- "$subpkgdir"/etc/periodic/monthly/dnscache-hints-refresh
}
-sha512sums="20f066402801d7bec183cb710a5bc51e41f1410024741e5803e26f68f2c13567e48eba793f233dfab903459c3335bc169e24b99d66a4c64e617e1f0779732fa9 djbdns-1.05.tar.gz
+sha512sums="
+20f066402801d7bec183cb710a5bc51e41f1410024741e5803e26f68f2c13567e48eba793f233dfab903459c3335bc169e24b99d66a4c64e617e1f0779732fa9 djbdns-1.05.tar.gz
41cca597dba971010b9844071e0349d3a4b25cc4b144e12721b0bc8250589fb374e40ece8908f1081762597048179b1177e88b9a5f97be0b47b63e3183e654bb djbdns-1.05-test25.diff.bz2
be4c9aea40c737364a56f188ad2276d90deac0dffb73ba4b659490836c0fe92ffb65ccf23c6724b913b2d6354336727004be0cf5b43ebc47abe7004700dfe1e8 headtail.patch
0cd97d833e0aaee2b82ed27b56ce183e9ab9806ff1e77bc61b7f38ae3168aa7310b12d2ed330713c4da97e60881ee339f6af449142cc29823865d87270733211 dnsroots.patch
ae9cd51f24041aed135b5ba88d1efd0310b8095bccd6fb60a986756b460a4f98a93e163c3ddae7c146d56a9d41778d17449f772b91fdc58d9e69523cf6c2a6e9 dnstracesort.patch
-af7c0a0a2f519ec16ac2a937664b7984aafeb19d04fbd6e0fd0afa5482f3cb0b4ac5cf6a846d574a8591f3cec725b4f828cca95344c3c774cb77ee5630ff6617 djbdns-1.05-jumbo-josb.patch
+7612e79638617806425bf6e601dd797f79a0106c47a31c73c88e2504b14e8f0238bad7dc8af1fbc5b1609bfa38578c556dcba2ce9034673bd07c9bc95789ee04 djbdns-1.05-jumbo-josb.patch
+b8778f8086edc5703fc0f447ad108bda2e029e612f80c39925833566ff8fa12687bb5300b1f0ee738c7180d4f8269ff88c965bef8879dc6eeea8228a598c10ce implicit.patch
086d02600034d486f084fd2500aba9041dfa02110781594cdc3781a3ad7823f61f11c54c053c8c1241f58660527abe536906aba0e7f6c49ed3b8dbd74ba8f2b7 1.05-errno.patch
407207f8387e2344fdebe68ab2213adbd9f1e6034e343b4359c8c1fa6ce36b0878a8367e4ee05cb4a44c199d4956aef0c6c8e84ab4f5556178547346ab88b82d 1.05-response.patch
20dd227e4f1362136070d914d5ee41082b5f16ee8602ad591e52b02f03ff0531d0589fff4352fc6799a8c192b69a99af1b013f87ee4ddbdffa03715d33e2f5af tinydns.pre-install
@@ -108,4 +121,5 @@ af7c0a0a2f519ec16ac2a937664b7984aafeb19d04fbd6e0fd0afa5482f3cb0b4ac5cf6a846d574a
31b52bd4dd0f78ff63e105ff3937fb9bf582628fe7a04bfcba91195d4fc4b55b60869f993a42ef55a228892647af07ed7ea22cfff72812430c7b8207debdd8f1 tinydns.confd
31bf58ed6a049e02210ce1cbbea00b62e2fe92339cd861eb3ee35f16186a3904e85fcd2f056e2d788b8a284068d83a3767cef01519a6d0152f1958be8e418956 dnscache.initd
1b281a4892c1c9ad39a15c95d0fbd14b0ada69b31723250e33d96946bd19f3edc4b36ec90fb9b6b884d7907b7e86cc3980f116f16fe35fb7496feffd728b1ffa dnscache.confd
-70d3431db407d02f145cb1521d563559b536e89a6a88f50cf853036b2833d78b594398df30cc33c17debea23aa6a7112614741e13f8ec5d1429fad075273a9f6 dnscache.monthly"
+19dcd0880a4e43657d05916b96c1ce075e4ba0a9dc0f7085408e92e087e5a9386ff760e76f81c509fe7402aa6fd9580817f590d5a062dca6bf813d73e0e1b95c dnscache.monthly
+"
diff --git a/main/djbdns/djbdns-1.05-jumbo-josb.patch b/main/djbdns/djbdns-1.05-jumbo-josb.patch
index c1a685aef4f..6db071889ee 100644
--- a/main/djbdns/djbdns-1.05-jumbo-josb.patch
+++ b/main/djbdns/djbdns-1.05-jumbo-josb.patch
@@ -308,11 +308,11 @@ diff -ruN djbdns-1.05-dist/cache.c djbdns-1.05/cache.c
+#ifdef DUMPCACHE
+#include <stdio.h>
+#include <unistd.h>
-+#include "env.h"
+#include "error.h"
+#include "open.h"
+#include "openreadclose.h"
+#endif
++#include "env.h"
#include "alloc.h"
#include "byte.h"
#include "uint32.h"
diff --git a/main/djbdns/dnscache.monthly b/main/djbdns/dnscache.monthly
index 574d56f01dc..1c8d1edd1d2 100755
--- a/main/djbdns/dnscache.monthly
+++ b/main/djbdns/dnscache.monthly
@@ -28,7 +28,7 @@ for ZONEFILE in $ZONES; do
# Refresh zone info
dnsqr ns $ZONE | awk '/^answer: ./ { print $5 }' | sort -u | xargs dnsip > $TMPF
- if egrep -q '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' $TMPF; then
+ if grep -E -q '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' $TMPF; then
cmp -s $ZONEFILE $TMPF
if [ "$?" != 0 ]; then
NEEDRESTART=yes
diff --git a/main/djbdns/implicit.patch b/main/djbdns/implicit.patch
new file mode 100644
index 00000000000..f638cc992db
--- /dev/null
+++ b/main/djbdns/implicit.patch
@@ -0,0 +1,35 @@
+diff --git a/dnsq.c b/dnsq.c
+index 533e6af..c2c998d 100644
+--- a/dnsq.c
++++ b/dnsq.c
+@@ -10,6 +10,7 @@
+ #include "printpacket.h"
+ #include "parsetype.h"
+ #include "dns.h"
++#include <unistd.h>
+
+ #define FATAL "dnsq: fatal: "
+
+diff --git a/dnsqr.c b/dnsqr.c
+index ff8ea6e..77418b2 100644
+--- a/dnsqr.c
++++ b/dnsqr.c
+@@ -9,6 +9,7 @@
+ #include "printpacket.h"
+ #include "parsetype.h"
+ #include "dns.h"
++#include <unistd.h>
+
+ #define FATAL "dnsqr: fatal: "
+
+diff --git a/utime.c b/utime.c
+index 4b7984f..be6c936 100644
+--- a/utime.c
++++ b/utime.c
+@@ -1,5 +1,6 @@
+ #include <sys/types.h>
+ #include <sys/time.h>
++#include <utime.h>
+ #include "scan.h"
+ #include "exit.h"
+
diff --git a/main/dkimproxy/APKBUILD b/main/dkimproxy/APKBUILD
index dbec8b06a15..ea4c6f18bda 100644
--- a/main/dkimproxy/APKBUILD
+++ b/main/dkimproxy/APKBUILD
@@ -2,26 +2,24 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=dkimproxy
pkgver=1.4.1
-pkgrel=5
+pkgrel=9
pkgdesc="SMTP-proxy that signs and/or verifies emails, using the Mail::DKIM module"
-url="http://dkimproxy.sourceforge.net/"
+url="https://dkimproxy.sourceforge.net/"
arch="noarch"
-license="GPL"
+license="GPL-2.0-or-later"
+options="!check" # no testsuite
depends="perl-mail-dkim perl-net-server perl-error"
-subpackages="$pkgname-doc"
+subpackages="$pkgname-doc $pkgname-openrc"
install="$pkgname.pre-install"
-source="https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+source="https://downloads.sourceforge.net/dkimproxy/dkimproxy-$pkgver.tar.gz
dkimproxy_out.conf.patch
dkimproxy.in.initd
dkimproxy.out.initd
dkimproxy.in.confd
dkimproxy.out.confd
"
-builddir="$srcdir/$pkgname-$pkgver"
build() {
- cd "$builddir"
-
local vendorlib=$(perl -V:vendorlib | sed -En "s|vendorlib='([^']+)';|\1|p")
perllibdir="$vendorlib" ./configure --prefix=/usr \
@@ -33,8 +31,6 @@ build() {
}
package() {
- cd "$builddir"
-
make DESTDIR="$pkgdir" install
cd "$pkgdir"
diff --git a/main/dmidecode/APKBUILD b/main/dmidecode/APKBUILD
index 85ee6c67dd8..5c9fbfe9c54 100644
--- a/main/dmidecode/APKBUILD
+++ b/main/dmidecode/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Nathan Angelacos <nangel@alpinelinux.org>
pkgname=dmidecode
-pkgver=3.4
-pkgrel=0
+pkgver=3.5
+pkgrel=1
pkgdesc="A utility for reporting system hardware as described by BIOS"
url="https://nongnu.org/dmidecode"
arch="all"
@@ -10,7 +10,6 @@ options="!check" # No testsuite
subpackages="$pkgname-doc"
source="https://download.savannah.gnu.org/releases/dmidecode/dmidecode-$pkgver.tar.xz"
-
prepare() {
default_prepare
sed -e '/^PROGRAMS !=/d' -i Makefile
@@ -25,5 +24,5 @@ package() {
}
sha512sums="
-62990b6159e5a7c8688d37e44957e7948391d2c6afeabaa4514ba9dad2d08b020297676e2dbbfcb6471efc6fb6f3682750422931a953f78f358bb3dd3745e95b dmidecode-3.4.tar.xz
+690c9bea391f6bbfc8cd48e8db408a61d5b551a07a2823c29d03a09607fc2043cc1bea44ee9fd27fd0e7bc0b287bf9de9f22a1a66053f5b1e63d77c03d93e1ae dmidecode-3.5.tar.xz
"
diff --git a/main/dmraid/APKBUILD b/main/dmraid/APKBUILD
index 0ceb6014f3f..0f6ea5cd8c6 100644
--- a/main/dmraid/APKBUILD
+++ b/main/dmraid/APKBUILD
@@ -1,25 +1,27 @@
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=dmraid
pkgver=1.0.0_rc16
_distver=3
-pkgrel=1
+pkgrel=6
pkgdesc="Device mapper RAID interface"
url="https://people.redhat.com/~heinzm/sw/dmraid/"
arch="all"
-license="GPL-2.0-only LGPL-2.1-only"
+license="GPL-2.0-or-later AND LGPL-2.1-or-later"
makedepends="lvm2-dev"
options="!check" # No tests to run
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
-source="https://people.redhat.com/~heinzm/sw/dmraid/src/dmraid-${pkgver/_/.}-${_distver}.tar.bz2
+source="https://people.redhat.com/~heinzm/sw/dmraid/src/dmraid-${pkgver/_/.}-$_distver.tar.bz2
001-do_not_use_p_for_partition.patch
002-support_virtio_devices.patch
003-isw-probe-hpa.patch
004-activate_multiple_raid_sets.patch
005-fix_isw_sectors_calculation.patch
006-musl-libc.patch
- 007-fix-loff_t-musl.patch"
-builddir="$srcdir/dmraid/${pkgver/_/.}-${_distver}/dmraid"
+ 007-fix-loff_t-musl.patch
+ lfs64.patch
+ "
+builddir="$srcdir/dmraid/${pkgver/_/.}-$_distver/dmraid"
prepare() {
default_prepare
@@ -55,4 +57,5 @@ ce120d7313f7f1b563e95fd9b81e4eb5353edf416a521d2955b0bd7a0c08ec4c0a5da4402aa1690f
702cb4cf0edf79dbde9185cada12462681b52bffd5f8c4eab1b594ef754c964fb6c7f711ce77e4074167d920755fe0466d284f94fb272d60ea2314f2a45ef366 005-fix_isw_sectors_calculation.patch
1335297528df24faa292e4d80a57e23e3f910b669a92370e57a97bd4df443092323a91489c2cc1f17e3b280a3a7f0386bb7fed3a157cdab7ab55686e9d5e1ae4 006-musl-libc.patch
3fe66677b7bb3a314cabcab32d35192ddd5ec70e50398a37916197eb2818debf919fe48337fe9befb3a7d7ab727cbeed976413db89585f66fed7375cf9b36ac8 007-fix-loff_t-musl.patch
+c33d8876951233d86f9cc900f1df0edfa1cf2ea9d970c877ffa3072ec1af04c20cceb00a0b11bac97b9d2ea6244cc91470949ca4693d3fd6a2c83636ecccc2f0 lfs64.patch
"
diff --git a/main/dmraid/lfs64.patch b/main/dmraid/lfs64.patch
new file mode 100644
index 00000000000..6caf16c0a85
--- /dev/null
+++ b/main/dmraid/lfs64.patch
@@ -0,0 +1,15 @@
+needed since https://github.com/bminor/musl/commit/25e6fee27f4a293728dd15b659170e7b9c7db9bc
+--
+diff --git a/lib/misc/file.c b/lib/misc/file.c
+index 7c663cb..7da9622 100644
+--- a/lib/misc/file.c
++++ b/lib/misc/file.c
+@@ -71,7 +71,7 @@ rw_file(struct lib_context *lc, const char *who, int flags,
+ #ifdef __KLIBC__
+ #define DMRAID_LSEEK lseek
+ #else
+-#define DMRAID_LSEEK lseek64
++#define DMRAID_LSEEK lseek
+ #endif
+ if (offset && (o = DMRAID_LSEEK(fd, offset, SEEK_SET)) == (loff_t) - 1)
+ log_err(lc, "%s: seeking device \"%s\" to %" PRIu64,
diff --git a/main/dmvpn/APKBUILD b/main/dmvpn/APKBUILD
index 64c4fb894f1..2bc63d66343 100644
--- a/main/dmvpn/APKBUILD
+++ b/main/dmvpn/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Kaarle Ritvanen <kunkku@alpinelinux.org>
pkgname=dmvpn
pkgver=1.4.0
-pkgrel=0
+pkgrel=3
pkgdesc="Dynamic Multipoint VPN"
url="https://git.alpinelinux.org/cgit/dmvpn-tools/"
arch="noarch"
@@ -13,20 +13,14 @@ _ca_deps="lua5.2 lua5.2-lyaml lua5.2-ossl lua5.2-posix lua5.2-sql-sqlite3
lua5.2-stringy lua-asn1"
makedepends="$_lua_dmvpn_deps $_dp_deps $_ca_deps"
depends="augeas bind-tools lua5.2 lua5.2-cqueues lua5.2-lyaml lua5.2-ossl
- lua5.2-posix lua5.2-struct lua-dmvpn quagga strongswan tunnel"
-subpackages="dmvpn-ca dmvpn-crl-dp lua-dmvpn"
+ lua5.2-posix lua5.2-struct lua-dmvpn quagga strongswan tunnel"
+subpackages="dmvpn-ca dmvpn-crl-dp lua-dmvpn $pkgname-openrc"
options="!check"
-source="$url/snapshot/dmvpn-tools-$pkgver.tar.bz2
- dmvpn-ca.insync"
-builddir="$srcdir/dmvpn-tools-$pkgver"
-
-build() {
- :
-}
+source="$pkgname-$pkgver.tar.bz2::https://gitlab.alpinelinux.org/alpine/dmvpn-tools/-/archive/v1.4.0/dmvpn-tools-v1.4.0.tar.bz2
+ dmvpn-ca.insync"
+builddir="$srcdir/dmvpn-tools-v$pkgver"
package() {
- cd "$builddir"
-
install -D -m 644 dmvpn.awall "$pkgdir"/usr/share/awall/optional/dmvpn.json
install -D -m 644 dmvpn-hub.awall "$pkgdir"/usr/share/awall/optional/dmvpn-hub.json
install -D dmvpn-pfx-decode "$pkgdir"/usr/libexec/dmvpn-pfx-decode
@@ -39,7 +33,6 @@ package() {
ca() {
depends="$_ca_deps lua-dmvpn"
-
cd "$builddir"
install -D dmvpn-ca "$subpkgdir"/usr/bin/dmvpn-ca
@@ -65,5 +58,7 @@ dmvpn() {
install -D -m 644 dmvpn.lua "$subpkgdir"/usr/share/lua/5.2/dmvpn.lua
}
-sha512sums="4f01e947abe2b0f721265523c492d072dac56130b0ffeea785ef4977cb71cfcedc8971f7d0668bb930de8d11f1fcf5ee25a8b9729cb7a401bdc7cc3c123e4e26 dmvpn-tools-1.4.0.tar.bz2
-a2160b97ead95c0269005e6973b25315ec7f1eada9da70cda42a13e34c800eea836b8ef7723553ff0e751796ec0ae27efadbac6b9c66e7db944984d9ff387072 dmvpn-ca.insync"
+sha512sums="
+9e930ce9adf3270263d2bdad3270e657e5b7cf2c4261a8f2086f2bdf61aa68ba070153247ba31d83080ae3599741ea41ee0724576c9fc68a2ba34f19bca4a543 dmvpn-1.4.0.tar.bz2
+a2160b97ead95c0269005e6973b25315ec7f1eada9da70cda42a13e34c800eea836b8ef7723553ff0e751796ec0ae27efadbac6b9c66e7db944984d9ff387072 dmvpn-ca.insync
+"
diff --git a/main/dns-root-hints/APKBUILD b/main/dns-root-hints/APKBUILD
index 2cc6385db3d..69571eb3e2c 100644
--- a/main/dns-root-hints/APKBUILD
+++ b/main/dns-root-hints/APKBUILD
@@ -1,38 +1,47 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=dns-root-hints
-pkgver=2019073000
-pkgrel=3
+pkgver=2024021501
+pkgrel=0
pkgdesc="The DNS root hint(s)"
url="https://www.internic.net/domain"
arch="noarch"
license="Public-Domain"
-depends="curl gpg"
-makedepends="curl"
-source="verisign-grs-nstld-key.asc named.root named.root.sig
+depends="curl gpgv"
+makedepends="gpg"
+source="verisign-grs-nstld-key.asc
+ named.root
+ named.root.sig
update-$pkgname
$pkgname.crond
"
+builddir="$srcdir"
+
+prepare() {
+ default_prepare
+
+ # Convert the key to the GPG keyring that can be used with gpgv.
+ gpg --dearmor -o verisign-grs-nstld-key.gpg verisign-grs-nstld-key.asc
+}
package() {
- install -D -m 644 -o root -g root "$srcdir"/named.root \
- "$pkgdir"/usr/share/$pkgname/named.root
- install -D -m 644 -o root -g root "$srcdir"/named.root.sig \
- "$pkgdir"/usr/share/$pkgname/named.root.sig
- install -D -m 644 -o root -g root "$srcdir"/verisign-grs-nstld-key.asc \
- "$pkgdir"/usr/share/$pkgname/verisign-grs-nstld-key.asc
- install -D -m 755 -o root -g root "$srcdir"/update-$pkgname \
- "$pkgdir"/usr/bin/update-$pkgname
- install -D -m 755 -o root -g root "$srcdir"/$pkgname.crond \
- "$pkgdir"/etc/periodic/monthly/$pkgname
+ install -D -m 644 -t "$pkgdir"/usr/share/$pkgname \
+ named.root \
+ named.root.sig \
+ verisign-grs-nstld-key.asc \
+ verisign-grs-nstld-key.gpg
+
+ install -D -m 755 -t "$pkgdir"/usr/bin/ update-$pkgname
+
+ install -D -m 755 $pkgname.crond "$pkgdir"/etc/periodic/monthly/$pkgname
# compatibility links
- cd "$pkgdir/usr/share/$pkgname"
+ cd "$pkgdir"/usr/share/$pkgname
ln -s named.root named.cache
ln -s named.root db.cache
}
check() {
- local _awkprog='
+ local awkprog='
/related version of root zone:/ {
rootver=$NF;
if (pkgver != rootver) {
@@ -43,44 +52,34 @@ check() {
printf "OK: %s\n", rootver;
quit;
}'
- awk -v pkgver="$pkgver" "$_awkprog" "$srcdir"/named.root
+ awk -v pkgver="$pkgver" "$awkprog" "$srcdir"/named.root
}
# check new versions of root hints and commit
snapshot() {
- # use a temporary dir for new files
- export _tmp=$(mktemp -d -p .)
- for file in named.root named.root.sig; do
- curl -sLR "${url}/${file}" -o "${_tmp}/${file}"
- done
-
- # compare new and current versions
- local _drh_new_ver=$(grep "related version of root zone:" ${_tmp}/named.root | egrep -o '[0-9]{10}')
- local _drh_current_ver=$(grep "related version of root zone:" named.root | egrep -o '[0-9]{10}')
+ local new_ver
- # commit if new version is found
- if [ "$_drh_new_ver" != "$_drh_current_ver" ]; then
- _check_sig
- mv ${_tmp}/named.root named.root
- mv ${_tmp}/named.root.sig named.root.sig
- git add named.root named.root.sig
- abump $pkgname-$_drh_new_ver
+ if ! [ -f "$srcdir"/verisign-grs-nstld-key.gpg ]; then
+ abuild unpack
+ abuild prepare
fi
- # cleanup
- rm "${_tmp}"/* 2>/dev/null || true
- rmdir "${_tmp}"
-}
+ DNS_ROOT_HINTS_DIR="$srcdir" ./update-dns-root-hints
-_check_sig() {
- local GNUPGHOME="$builddir/.gpg"
- install -d -m 0700 "$GNUPGHOME"
- gpg --import < verisign-grs-nstld-key.asc
- gpg --verify "${_tmp}/named.root.sig" "${_tmp}/named.root"
+ # commit if new version was found
+ if ! cmp -s named.root "$srcdir"/named.root; then
+ cp "$srcdir"/named.root* .
+ git add named.root named.root.sig
+
+ new_ver=$(sed -En 's/.*related version of root zone:\s*([0-9]{10}).*/\1/p' named.root)
+ abump $pkgname-$new_ver
+ fi
}
-sha512sums="3ecf5d66e506526ad98ea0b371202f0763b987322bd4407b40fcd95415202bddb18fd06c82eb397566b393e214dc88cb17ec94f3908328e8a55f5f68cc730993 verisign-grs-nstld-key.asc
-0491784a0d0722113120bae4dd42c7671cb05b4b76d4dd4773718ee4c7777d7fb7b039f76b8a30179d5dfa8f3142182bf0b0d809f9d6e1ef581d08482e06d250 named.root
-b1d76a8040c534f2a5ffc54b92aa3a465ddd01b345e2a7eade258359017c623d5a847a270b259cd58ba3d8550a3519b0921f9f62dc6e98a0acdd3873b2556359 named.root.sig
-7e640e997dd0eae47fb1e609f73d5206e09684eada15d3b6043fc23e639859af743b99cbd868e98269c2af25e7c3eeea307f52f2fb7d4a6f3e00f8b14a289322 update-dns-root-hints
-67a7ef07ee9086ce584a8b316b15cd05214968f89bbc363fb2d5932ebf47ed962c0862fe254082e68f27574acb62f3672137dd23c40d7d2047c969ee449827f8 dns-root-hints.crond"
+sha512sums="
+3ecf5d66e506526ad98ea0b371202f0763b987322bd4407b40fcd95415202bddb18fd06c82eb397566b393e214dc88cb17ec94f3908328e8a55f5f68cc730993 verisign-grs-nstld-key.asc
+6cec5f5cfa1018f39d4f320938595a1a56cdeb359980cc530e79c9f7134b71c3f11c0f7d6f6c002a76ee41deb98d52e41c1c12e8e1c9865e95efde66dd6506b8 named.root
+08f3d9e8ac84f3cc4a67994be9efdae086c86c8fa253ed46339add79b52c25744ab4c0706c16f8fb1852a4c4899fb4fda32f9aea872dadf561afd41ce31fff25 named.root.sig
+ba5663675e5b4cb0f670c570a4cef1fde8282185c5cc505af8beb7f32756a41ff511024f45c57c7204d03a88b8d2cc86ed31943ed19b71d30cee040d634a8208 update-dns-root-hints
+68a743ee7b0f60eeb21cecbb916c3d7051ebbb86143621aafe5ef654df0953a274a2ffa2f3fe42fb3c143fd7b29ab4c5b17407c73b560a1c19afa1584fc43d8a dns-root-hints.crond
+"
diff --git a/main/dns-root-hints/dns-root-hints.crond b/main/dns-root-hints/dns-root-hints.crond
index bf3882476cb..833334a9a0e 100644
--- a/main/dns-root-hints/dns-root-hints.crond
+++ b/main/dns-root-hints/dns-root-hints.crond
@@ -1,3 +1,3 @@
#!/bin/sh
-/usr/bin/update-dns-root-hints &>/dev/null
+/usr/bin/update-dns-root-hints >/dev/null 2>&1
diff --git a/main/dns-root-hints/named.root b/main/dns-root-hints/named.root
index dba9ed9eaed..364d85a5d3f 100644
--- a/main/dns-root-hints/named.root
+++ b/main/dns-root-hints/named.root
@@ -8,9 +8,9 @@
; file /domain/named.cache
; on server FTP.INTERNIC.NET
; -OR- RS.INTERNIC.NET
-;
-; last update: July 30, 2019
-; related version of root zone: 2019073000
+;
+; last update: February 15, 2024
+; related version of root zone: 2024021501
;
; FORMERLY NS.INTERNIC.NET
;
@@ -21,8 +21,8 @@ A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:ba3e::2:30
; FORMERLY NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
-B.ROOT-SERVERS.NET. 3600000 A 199.9.14.201
-B.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:200::b
+B.ROOT-SERVERS.NET. 3600000 A 170.247.170.2
+B.ROOT-SERVERS.NET. 3600000 AAAA 2801:1b8:10::b
;
; FORMERLY C.PSI.NET
;
diff --git a/main/dns-root-hints/named.root.sig b/main/dns-root-hints/named.root.sig
index a030b225a02..fea81633a83 100644
--- a/main/dns-root-hints/named.root.sig
+++ b/main/dns-root-hints/named.root.sig
Binary files differ
diff --git a/main/dns-root-hints/update-dns-root-hints b/main/dns-root-hints/update-dns-root-hints
index 55f3dc77f96..0ec6db4c462 100755
--- a/main/dns-root-hints/update-dns-root-hints
+++ b/main/dns-root-hints/update-dns-root-hints
@@ -1,43 +1,45 @@
#!/bin/sh
+set -eu
-url=https://www.internic.net/domain
-base_dir=/usr/share/dns-root-hints
-_tmp=$(mktemp -d -p .)
+BASE_URL='https://www.internic.net/domain'
+destdir=${DNS_ROOT_HINTS_DIR:-"/usr/share/dns-root-hints"}
-if [ $(id -u) != "0" ]; then
- echo "Needs to run as root."
+if ! [ -w "$destdir" ]; then
+ echo 'Needs to run as root.' >&2
exit 1
fi
-_check_sig() {
- local GNUPGHOME="$HOME/.gpg"
- install -d -m 0700 "$GNUPGHOME"
- gpg --import < $base_dir/verisign-grs-nstld-key.asc
- gpg --verify "${_tmp}/named.root.sig" "${_tmp}/named.root"
+tmpdir=$(mktemp -d)
+
+cleanup() {
+ rm "$tmpdir"/* 2>/dev/null || true
+ rmdir "$tmpdir" || true
}
+trap cleanup EXIT HUP INT TERM
-for file in named.root named.root.sig; do
- curl -sLR ${url}/${file} -o "${_tmp}/${file}" || exit 1
+for f in named.root named.root.sig; do
+ curl -sLR "$BASE_URL/$f" -o "$tmpdir/$f"
done
+read_version() {
+ sed -En 's/.*related version of root zone:\s*([0-9]{10}).*/\1/p' "$1"
+}
# compare new and current versions
-_drh_new_ver=$(grep "related version of root zone:" ${_tmp}/named.root | egrep -o '[0-9]{10}')
-_drh_current_ver=$(grep "related version of root zone:" $base_dir/named.root | egrep -o '[0-9]{10}')
+new_ver=$(read_version "$tmpdir"/named.root)
+cur_ver=$(read_version "$destdir"/named.root)
+
+echo "Version $cur_ver <- Installed"
+echo "Version $new_ver <- Downloaded"
# update to new version if needed
-echo "Version $_drh_current_ver <- Installed"
-echo "Version $_drh_new_ver <- Downloaded"
-
-if [ "$_drh_new_ver" != "$_drh_current_ver" ]; then
- _check_sig || exit 1
- mv ${_tmp}/named.root $base_dir/named.root || exit 1
- mv ${_tmp}/named.root.sig $base_dir/named.root.sig || exit 1
- echo -e "\nZone file updated.\n"
-else
- echo -e "\nZone file already up-to-date.\n"
-fi
+if [ "$new_ver" != "$cur_ver" ]; then
+ gpgv --keyring "$destdir"/verisign-grs-nstld-key.gpg \
+ "$tmpdir"/named.root.sig "$tmpdir"/named.root || exit 10
-# cleanup
-rm "${_tmp}"/* 2>/dev/null || true
-rmdir "${_tmp}" 2>/dev/null || true
+ mv "$tmpdir"/named.root "$destdir"/named.root
+ mv "$tmpdir"/named.root.sig "$destdir"/named.root.sig
+ printf '\nZone file updated.\n\n'
+else
+ printf '\nZone file already up-to-date.\n\n'
+fi
diff --git a/main/dnsmasq/0000-underflow.patch b/main/dnsmasq/0000-underflow.patch
index ab15361f181..44ef53c5517 100644
--- a/main/dnsmasq/0000-underflow.patch
+++ b/main/dnsmasq/0000-underflow.patch
@@ -1,18 +1,17 @@
-Patch-Source: https://src.fedoraproject.org/rpms/dnsmasq/blob/f36/f/dnsmasq-2.77-underflow.patch
+Patch-Source: https://src.fedoraproject.org/rpms/dnsmasq/raw/rawhide/f/dnsmasq-2.77-underflow.patch
--
-From 77c7cabbeab1fbe1f7296f33762771f208586e59 Mon Sep 17 00:00:00 2001
+From 46b9670a418419d9e04bbe9a0d6c5a85f3c63265 Mon Sep 17 00:00:00 2001
From: Doran Moppert <dmoppert@redhat.com>
Date: Tue, 26 Sep 2017 14:48:20 +0930
Subject: [PATCH] google patch hand-applied
---
src/edns0.c | 10 +++++-----
- src/forward.c | 4 ++++
src/rfc1035.c | 3 +++
- 3 files changed, 12 insertions(+), 5 deletions(-)
+ 2 files changed, 8 insertions(+), 5 deletions(-)
diff --git a/src/edns0.c b/src/edns0.c
-index 7bd26b8..7f96414 100644
+index c498eb1..0eb3873 100644
--- a/src/edns0.c
+++ b/src/edns0.c
@@ -212,11 +212,11 @@ size_t add_pseudoheader(struct dns_header *header, size_t plen, unsigned char *l
@@ -32,35 +31,17 @@ index 7bd26b8..7f96414 100644
memcpy(p, buff, rdlen);
free(buff);
p += rdlen;
-diff --git a/src/forward.c b/src/forward.c
-index 3d638e4..e254e35 100644
---- a/src/forward.c
-+++ b/src/forward.c
-@@ -1558,6 +1558,10 @@ void receive_query(struct listener *listen, time_t now)
- udp_size = PACKETSZ; /* Sanity check - can't reduce below default. RFC 6891 6.2.3 */
- }
-
-+ // Make sure the udp size is not smaller than the incoming message so that we
-+ // do not underflow
-+ if (udp_size < n) udp_size = n;
-+
- #ifdef HAVE_CONNTRACK
- #ifdef HAVE_AUTH
- if (!auth_dns || local_auth)
diff --git a/src/rfc1035.c b/src/rfc1035.c
-index 6fc4f26..66fa00c 100644
+index 5c0df56..04abd5f 100644
--- a/src/rfc1035.c
+++ b/src/rfc1035.c
-@@ -1396,6 +1396,9 @@ size_t answer_request(struct dns_header *header, char *limit, size_t qlen,
- size_t len;
- int rd_bit = (header->hb3 & HB3_RD);
-
+@@ -1428,6 +1428,9 @@ size_t answer_request(struct dns_header *header, char *limit, size_t qlen,
+ if (stale)
+ *stale = 0;
+
+ // Make sure we do not underflow here too.
+ if (qlen > (limit - ((char *)header))) return 0;
+
/* never answer queries with RD unset, to avoid cache snooping. */
if (ntohs(header->ancount) != 0 ||
ntohs(header->nscount) != 0 ||
---
-2.31.1
-
diff --git a/main/dnsmasq/0001-Fix-infinite-loop-when-invoking-SetFilterA-dbus-meth.patch b/main/dnsmasq/0001-Fix-infinite-loop-when-invoking-SetFilterA-dbus-meth.patch
new file mode 100644
index 00000000000..19a0942310e
--- /dev/null
+++ b/main/dnsmasq/0001-Fix-infinite-loop-when-invoking-SetFilterA-dbus-meth.patch
@@ -0,0 +1,38 @@
+From 1c26b534bfd9fe5b4092903806473ee3eca16af9 Mon Sep 17 00:00:00 2001
+From: Simon Kelley <simon@thekelleys.org.uk>
+Date: Mon, 19 Feb 2024 23:21:58 +0000
+Subject: [PATCH] Fix infinite loop when invoking SetFilterA dbus method more
+ than once.
+
+Fix infinite loop when invoking SetFilterA dbus method more than once.
+
+Also applies to SetFilterAAAA.
+
+Thanks to Clayton Craft for spotting the issue.
+---
+ src/dbus.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/dbus.c b/src/dbus.c
+index ad6a4f3..84a8d97 100644
+--- a/src/dbus.c
++++ b/src/dbus.c
+@@ -833,6 +833,7 @@ DBusHandlerResult message_handler(DBusConnection *connection,
+
+ if (!done)
+ {
++ done = 1;
+ list.next = daemon->filter_rr;
+ daemon->filter_rr = &list;
+ }
+@@ -844,6 +845,7 @@ DBusHandlerResult message_handler(DBusConnection *connection,
+
+ if (!done)
+ {
++ done = 1;
+ list.next = daemon->filter_rr;
+ daemon->filter_rr = &list;
+ }
+--
+2.43.1
+
diff --git a/main/dnsmasq/0001-Retry-on-interrupted-error-in-tftp.patch b/main/dnsmasq/0001-Retry-on-interrupted-error-in-tftp.patch
deleted file mode 100644
index 6fa3ac35847..00000000000
--- a/main/dnsmasq/0001-Retry-on-interrupted-error-in-tftp.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Patch-Source: https://src.fedoraproject.org/rpms/dnsmasq/blob/f36/f/0001-Retry-on-interrupted-error-in-tftp.patch (backport from upstream)
---
-From f5f56c001dddd486859dc6301e6cbe00ba604fe8 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
-Date: Wed, 18 Aug 2021 10:09:35 +0200
-Subject: [PATCH 01/15] Retry on interrupted error in tftp
-
-Interrupt might arrive when sending error reply. Retry if possible.
-
-Wrong Check of Return Value
-
-diff --git a/src/tftp.c b/src/tftp.c
-index 37bdff2..3d87523 100644
---- a/src/tftp.c
-+++ b/src/tftp.c
-@@ -600,7 +600,7 @@ void check_tftp_listeners(time_t now)
- /* Wrong source address. See rfc1350 para 4. */
- prettyprint_addr(&peer, daemon->addrbuff);
- len = tftp_err(ERR_TID, daemon->packet, _("ignoring packet from %s (TID mismatch)"), daemon->addrbuff);
-- sendto(transfer->sockfd, daemon->packet, len, 0, &peer.sa, sa_len(&peer));
-+ while(retry_send(sendto(transfer->sockfd, daemon->packet, len, 0, &peer.sa, sa_len(&peer))));
- }
- }
- }
---
-2.31.1
-
diff --git a/main/dnsmasq/0002-Add-safety-checks-to-places-pointed-by-Coverity.patch b/main/dnsmasq/0002-Add-safety-checks-to-places-pointed-by-Coverity.patch
deleted file mode 100644
index 1c84ecdd95f..00000000000
--- a/main/dnsmasq/0002-Add-safety-checks-to-places-pointed-by-Coverity.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-Patch-Source: https://src.fedoraproject.org/rpms/dnsmasq/blob/f36/f/0002-Add-safety-checks-to-places-pointed-by-Coverity.patch (backport from upstream)
---
-From 061013293ceddce509ae06a31a045e803103f1ce Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
-Date: Wed, 18 Aug 2021 14:59:23 +0200
-Subject: [PATCH 02/15] Add safety checks to places pointed by Coverity
-
-diff --git a/src/cache.c b/src/cache.c
-index 8add610..97c51a7 100644
---- a/src/cache.c
-+++ b/src/cache.c
-@@ -433,7 +433,7 @@ static struct crec *cache_scan_free(char *name, union all_addr *addr, unsigned s
- else if (!(crecp->flags & (F_HOSTS | F_DHCP | F_CONFIG)) &&
- (flags & crecp->flags & F_REVERSE) &&
- (flags & crecp->flags & (F_IPV4 | F_IPV6)) &&
-- memcmp(&crecp->addr, addr, addrlen) == 0)
-+ addr && memcmp(&crecp->addr, addr, addrlen) == 0)
- {
- *up = crecp->hash_next;
- cache_unlink(crecp);
-@@ -2013,7 +2013,7 @@ void log_query(unsigned int flags, char *name, union all_addr *addr, char *arg)
- else
- source = "cached";
-
-- if (strlen(name) == 0)
-+ if (name && !name[0])
- name = ".";
-
- if (option_bool(OPT_EXTRALOG))
-diff --git a/src/forward.c b/src/forward.c
-index 3d638e4..f07c908 100644
---- a/src/forward.c
-+++ b/src/forward.c
-@@ -2276,7 +2276,7 @@ int allocate_rfd(struct randfd_list **fdlp, struct server *serv)
- }
- }
-
-- if (j == daemon->numrrand)
-+ if (!rfd) /* should be when j == daemon->numrrand */
- {
- struct randfd_list *rfl_poll;
-
---
-2.31.1
-
diff --git a/main/dnsmasq/0002-Fix-breakage-in-DBus-FilterA-and-FilterAAAA-methods.patch b/main/dnsmasq/0002-Fix-breakage-in-DBus-FilterA-and-FilterAAAA-methods.patch
new file mode 100644
index 00000000000..98f00b75751
--- /dev/null
+++ b/main/dnsmasq/0002-Fix-breakage-in-DBus-FilterA-and-FilterAAAA-methods.patch
@@ -0,0 +1,133 @@
+From 4c590320ec5442d431c5e059c890077ec6d67575 Mon Sep 17 00:00:00 2001
+From: Simon Kelley <simon@thekelleys.org.uk>
+Date: Tue, 20 Feb 2024 23:38:26 +0000
+Subject: [PATCH] Fix breakage in DBus FilterA and FilterAAAA methods.
+
+In generalising the RR filter code, the Dbus methods
+controlling filtering A and AAAA records
+got severely broken. This, and the previous commit,
+fixes things.
+---
+ src/dbus.c | 67 +++++++++++++++++++++++++++++++++++-------------------
+ src/util.c | 2 +-
+ 2 files changed, 45 insertions(+), 24 deletions(-)
+
+diff --git a/src/dbus.c b/src/dbus.c
+index 84a8d97..87c4b80 100644
+--- a/src/dbus.c
++++ b/src/dbus.c
+@@ -485,28 +485,37 @@ static DBusMessage* dbus_read_servers_ex(DBusMessage *message, int strings)
+ return error;
+ }
+
+-static DBusMessage *dbus_set_bool(DBusMessage *message, int flag, char *name)
++static DBusMessage *dbus_get_bool(DBusMessage *message, dbus_bool_t *enabled, char *name)
+ {
+ DBusMessageIter iter;
+- dbus_bool_t enabled;
+
+ if (!dbus_message_iter_init(message, &iter) || dbus_message_iter_get_arg_type(&iter) != DBUS_TYPE_BOOLEAN)
+ return dbus_message_new_error(message, DBUS_ERROR_INVALID_ARGS, "Expected boolean argument");
+
+- dbus_message_iter_get_basic(&iter, &enabled);
+-
+- if (enabled)
+- {
+- my_syslog(LOG_INFO, _("Enabling --%s option from D-Bus"), name);
+- set_option_bool(flag);
+- }
++ dbus_message_iter_get_basic(&iter, enabled);
++
++ if (*enabled)
++ my_syslog(LOG_INFO, _("Enabling --%s option from D-Bus"), name);
+ else
++ my_syslog(LOG_INFO, _("Disabling --%s option from D-Bus"), name);
++
++ return NULL;
++}
++
++static DBusMessage *dbus_set_bool(DBusMessage *message, int flag, char *name)
++{
++ dbus_bool_t val;
++ DBusMessage *reply = dbus_get_bool(message, &val, name);
++
++ if (!reply)
+ {
+- my_syslog(LOG_INFO, _("Disabling --%s option from D-Bus"), name);
+- reset_option_bool(flag);
++ if (val)
++ set_option_bool(flag);
++ else
++ reset_option_bool(flag);
+ }
+
+- return NULL;
++ return reply;
+ }
+
+ #ifdef HAVE_DHCP
+@@ -829,25 +838,37 @@ DBusHandlerResult message_handler(DBusConnection *connection,
+ else if (strcmp(method, "SetFilterA") == 0)
+ {
+ static int done = 0;
+- static struct rrlist list = { T_A, NULL };
++ static struct rrlist list = { 0, NULL };
++ dbus_bool_t enabled;
+
+- if (!done)
++ if (!(reply = dbus_get_bool(message, &enabled, "filter-A")))
+ {
+- done = 1;
+- list.next = daemon->filter_rr;
+- daemon->filter_rr = &list;
++ if (!done)
++ {
++ done = 1;
++ list.next = daemon->filter_rr;
++ daemon->filter_rr = &list;
++ }
++
++ list.rr = enabled ? T_A : 0;
+ }
+ }
+ else if (strcmp(method, "SetFilterAAAA") == 0)
+ {
+ static int done = 0;
+- static struct rrlist list = { T_AAAA, NULL };
+-
+- if (!done)
++ static struct rrlist list = { 0, NULL };
++ dbus_bool_t enabled;
++
++ if (!(reply = dbus_get_bool(message, &enabled, "filter-AAAA")))
+ {
+- done = 1;
+- list.next = daemon->filter_rr;
+- daemon->filter_rr = &list;
++ if (!done)
++ {
++ done = 1;
++ list.next = daemon->filter_rr;
++ daemon->filter_rr = &list;
++ }
++
++ list.rr = enabled ? T_AAAA : 0;
+ }
+ }
+ else if (strcmp(method, "SetLocaliseQueriesOption") == 0)
+diff --git a/src/util.c b/src/util.c
+index 0c7de44..c527381 100644
+--- a/src/util.c
++++ b/src/util.c
+@@ -119,7 +119,7 @@ int rr_on_list(struct rrlist *list, unsigned short rr)
+ {
+ while (list)
+ {
+- if (list->rr == rr)
++ if (list->rr != 0 && list->rr == rr)
+ return 1;
+
+ list = list->next;
+--
+2.43.2
+
diff --git a/main/dnsmasq/0003-Small-safeguard-to-unexpected-data.patch b/main/dnsmasq/0003-Small-safeguard-to-unexpected-data.patch
deleted file mode 100644
index 8d90e964d8a..00000000000
--- a/main/dnsmasq/0003-Small-safeguard-to-unexpected-data.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Patch-Source: https://src.fedoraproject.org/rpms/dnsmasq/blob/f36/f/0003-Small-safeguard-to-unexpected-data.patch
---
-From 920cd815bafea084f68cc4309399aea77bd7f66b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
-Date: Fri, 3 Sep 2021 14:11:42 +0200
-Subject: [PATCH 03/15] Small safeguard to unexpected data
-
-Make sure negative index is not used for comparison. It seems code in
-option parsing does not allow it to be empty, but insist on it also in
-this place.
----
- src/dhcp-common.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/dhcp-common.c b/src/dhcp-common.c
-index 73568a9..85b269a 100644
---- a/src/dhcp-common.c
-+++ b/src/dhcp-common.c
-@@ -88,7 +88,7 @@ int match_netid_wild(struct dhcp_netid *check, struct dhcp_netid *pool)
- for (; check; check = check->next)
- {
- const int check_len = strlen(check->net);
-- const int is_wc = (check->net[check_len - 1] == '*');
-+ const int is_wc = (check_len > 0 && check->net[check_len - 1] == '*');
-
- /* '#' for not is for backwards compat. */
- if (check->net[0] != '!' && check->net[0] != '#')
---
-2.31.1
-
diff --git a/main/dnsmasq/0004-Fix-bunch-of-warnings-in-auth.c.patch b/main/dnsmasq/0004-Fix-bunch-of-warnings-in-auth.c.patch
deleted file mode 100644
index f3b7caaecd1..00000000000
--- a/main/dnsmasq/0004-Fix-bunch-of-warnings-in-auth.c.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-Patch-Source: https://src.fedoraproject.org/rpms/dnsmasq/blob/f36/f/0004-Fix-bunch-of-warnings-in-auth.c.patch (backport from upstream)
---
-From e61af561900b4d2dd976a575b2efd388be092742 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
-Date: Fri, 3 Sep 2021 16:00:35 +0200
-Subject: [PATCH 04/15] Fix bunch of warnings in auth.c
-
-diff --git a/src/auth.c b/src/auth.c
-index 172a4b2..4f03c39 100644
---- a/src/auth.c
-+++ b/src/auth.c
-@@ -417,7 +417,6 @@ size_t answer_auth(struct dns_header *header, char *limit, size_t qlen, time_t n
-
- if (!found && is_name_synthetic(flag, name, &addr) )
- {
-- found = 1;
- nxdomain = 0;
-
- log_query(F_FORWARD | F_CONFIG | flag, name, &addr, NULL);
-@@ -433,7 +432,6 @@ size_t answer_auth(struct dns_header *header, char *limit, size_t qlen, time_t n
- if (qtype == T_SOA)
- {
- auth = soa = 1; /* inhibits auth section */
-- found = 1;
- log_query(F_RRNAME | F_AUTH, zone->domain, NULL, "<SOA>");
- }
- else if (qtype == T_AXFR)
-@@ -469,7 +467,6 @@ size_t answer_auth(struct dns_header *header, char *limit, size_t qlen, time_t n
- soa = 1; /* inhibits auth section */
- ns = 1; /* ensure we include NS records! */
- axfr = 1;
-- found = 1;
- axfroffset = nameoffset;
- log_query(F_RRNAME | F_AUTH, zone->domain, NULL, "<AXFR>");
- }
-@@ -477,7 +474,6 @@ size_t answer_auth(struct dns_header *header, char *limit, size_t qlen, time_t n
- {
- auth = 1;
- ns = 1; /* inhibits auth section */
-- found = 1;
- log_query(F_RRNAME | F_AUTH, zone->domain, NULL, "<NS>");
- }
- }
-@@ -498,7 +494,6 @@ size_t answer_auth(struct dns_header *header, char *limit, size_t qlen, time_t n
- *cut = '.'; /* restore domain part */
- log_query(crecp->flags, name, &crecp->addr, record_source(crecp->uid));
- *cut = 0; /* remove domain part */
-- found = 1;
- if (add_resource_record(header, limit, &trunc, nameoffset, &ansp,
- daemon->auth_ttl, NULL, qtype, C_IN,
- qtype == T_A ? "4" : "6", &crecp->addr))
-@@ -519,7 +514,6 @@ size_t answer_auth(struct dns_header *header, char *limit, size_t qlen, time_t n
- if ((crecp->flags & flag) && (local_query || filter_zone(zone, flag, &(crecp->addr))))
- {
- log_query(crecp->flags, name, &crecp->addr, record_source(crecp->uid));
-- found = 1;
- if (add_resource_record(header, limit, &trunc, nameoffset, &ansp,
- daemon->auth_ttl, NULL, qtype, C_IN,
- qtype == T_A ? "4" : "6", &crecp->addr))
-@@ -614,7 +608,7 @@ size_t answer_auth(struct dns_header *header, char *limit, size_t qlen, time_t n
- if (subnet->prefixlen >= 16 )
- p += sprintf(p, "%u.", a & 0xff);
- a = a >> 8;
-- p += sprintf(p, "%u.in-addr.arpa", a & 0xff);
-+ sprintf(p, "%u.in-addr.arpa", a & 0xff);
-
- }
- else
-@@ -627,7 +621,7 @@ size_t answer_auth(struct dns_header *header, char *limit, size_t qlen, time_t n
- int dig = ((unsigned char *)&subnet->addr.addr6)[i>>3];
- p += sprintf(p, "%.1x.", (i>>2) & 1 ? dig & 15 : dig >> 4);
- }
-- p += sprintf(p, "ip6.arpa");
-+ sprintf(p, "ip6.arpa");
-
- }
- }
---
-2.31.1
-
diff --git a/main/dnsmasq/0005-Fix-few-coverity-warnings-in-lease-tools.patch b/main/dnsmasq/0005-Fix-few-coverity-warnings-in-lease-tools.patch
deleted file mode 100644
index dafed7d95cd..00000000000
--- a/main/dnsmasq/0005-Fix-few-coverity-warnings-in-lease-tools.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-Patch-Source: https://src.fedoraproject.org/rpms/dnsmasq/blob/f36/f/0005-Fix-few-coverity-warnings-in-lease-tools.patch (backport from upstream)
---
-From be7f213066282baeed46cc34223601c462db9cbf Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
-Date: Fri, 3 Sep 2021 16:32:05 +0200
-Subject: [PATCH 05/15] Fix few coverity warnings in lease-tools
-
-diff --git a/contrib/lease-tools/dhcp_release.c b/contrib/lease-tools/dhcp_release.c
-index c1c835b..84f5610 100644
---- a/contrib/lease-tools/dhcp_release.c
-+++ b/contrib/lease-tools/dhcp_release.c
-@@ -280,6 +280,7 @@ int main(int argc, char **argv)
-
- /* This voodoo fakes up a packet coming from the correct interface, which really matters for
- a DHCP server */
-+ memset(&ifr, 0, sizeof(ifr));
- strncpy(ifr.ifr_name, argv[1], sizeof(ifr.ifr_name)-1);
- ifr.ifr_name[sizeof(ifr.ifr_name)-1] = '\0';
- if (setsockopt(fd, SOL_SOCKET, SO_BINDTODEVICE, &ifr, sizeof(ifr)) == -1)
-diff --git a/contrib/lease-tools/dhcp_release6.c b/contrib/lease-tools/dhcp_release6.c
-index d680222..9b3438f 100644
---- a/contrib/lease-tools/dhcp_release6.c
-+++ b/contrib/lease-tools/dhcp_release6.c
-@@ -318,6 +318,12 @@ void usage(const char* arg, FILE* stream)
- fprintf (stream, "Usage: %s %s\n", arg, usage_string);
- }
-
-+static void fail_fatal(const char *errstr, int exitcode)
-+{
-+ perror(errstr);
-+ exit(exitcode);
-+}
-+
- int send_release_packet(const char* iface, struct dhcp6_packet* packet)
- {
- struct sockaddr_in6 server_addr, client_addr;
-@@ -343,18 +349,19 @@ int send_release_packet(const char* iface, struct dhcp6_packet* packet)
- client_addr.sin6_port = htons(DHCP6_CLIENT_PORT);
- client_addr.sin6_flowinfo = 0;
- client_addr.sin6_scope_id =0;
-- inet_pton(AF_INET6, "::", &client_addr.sin6_addr);
-- bind(sock, (struct sockaddr*)&client_addr, sizeof(struct sockaddr_in6));
-- inet_pton(AF_INET6, DHCP6_MULTICAST_ADDRESS, &server_addr.sin6_addr);
-+ if (inet_pton(AF_INET6, "::", &client_addr.sin6_addr) <= 0)
-+ fail_fatal("inet_pton", 5);
-+ if (bind(sock, (struct sockaddr*)&client_addr, sizeof(struct sockaddr_in6)) != 0)
-+ perror("bind"); /* continue on bind error */
-+ if (inet_pton(AF_INET6, DHCP6_MULTICAST_ADDRESS, &server_addr.sin6_addr) <= 0)
-+ fail_fatal("inet_pton", 5);
- server_addr.sin6_port = htons(DHCP6_SERVER_PORT);
-- int16_t recv_size = 0;
-+ ssize_t recv_size = 0;
-+ int result;
- for (i = 0; i < 5; i++)
- {
- if (sendto(sock, packet->buf, packet->len, 0, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0)
-- {
-- perror("sendto failed");
-- exit(4);
-- }
-+ fail_fatal("sendto failed", 4);
-
- recv_size = recvfrom(sock, response, sizeof(response), MSG_DONTWAIT, NULL, 0);
- if (recv_size == -1)
-@@ -367,16 +374,18 @@ int send_release_packet(const char* iface, struct dhcp6_packet* packet)
- else
- {
- perror("recvfrom");
-+ result = UNSPEC_FAIL;
- }
- }
--
-- int16_t result = parse_packet(response, recv_size);
-- if (result == NOT_REPLY_CODE)
-+ else
- {
-- sleep(1);
-- continue;
-+ result = parse_packet(response, recv_size);
-+ if (result == NOT_REPLY_CODE)
-+ {
-+ sleep(1);
-+ continue;
-+ }
- }
--
- close(sock);
- return result;
- }
---
-2.31.1
-
diff --git a/main/dnsmasq/0006-Fix-coverity-formats-issues-in-blockdata.patch b/main/dnsmasq/0006-Fix-coverity-formats-issues-in-blockdata.patch
deleted file mode 100644
index 441fbefa46e..00000000000
--- a/main/dnsmasq/0006-Fix-coverity-formats-issues-in-blockdata.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Patch-Source: https://src.fedoraproject.org/rpms/dnsmasq/blob/f36/f/0006-Fix-coverity-formats-issues-in-blockdata.patch (backport from upstream)
---
-From 3a077065ce846e301b532127ebecdd2771ad75ed Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
-Date: Fri, 3 Sep 2021 16:41:00 +0200
-Subject: [PATCH 06/15] Fix coverity formats issues in blockdata
-
-diff --git a/src/blockdata.c b/src/blockdata.c
-index f7740b5..0986285 100644
---- a/src/blockdata.c
-+++ b/src/blockdata.c
-@@ -52,7 +52,7 @@ void blockdata_init(void)
-
- void blockdata_report(void)
- {
-- my_syslog(LOG_INFO, _("pool memory in use %u, max %u, allocated %u"),
-+ my_syslog(LOG_INFO, _("pool memory in use %zu, max %zu, allocated %zu"),
- blockdata_count * sizeof(struct blockdata),
- blockdata_hwm * sizeof(struct blockdata),
- blockdata_alloced * sizeof(struct blockdata));
---
-2.31.1
-
diff --git a/main/dnsmasq/0007-Retry-dhcp6-ping-on-interrupts.patch b/main/dnsmasq/0007-Retry-dhcp6-ping-on-interrupts.patch
deleted file mode 100644
index 7fea5532aff..00000000000
--- a/main/dnsmasq/0007-Retry-dhcp6-ping-on-interrupts.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Patch-Source: https://src.fedoraproject.org/rpms/dnsmasq/blob/f36/f/0007-Retry-dhcp6-ping-on-interrupts.patch (backport from upstream)
---
-From 467b621fb7da6e1318ac7204325b0adb01b3ff19 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
-Date: Fri, 3 Sep 2021 16:48:50 +0200
-Subject: [PATCH 07/15] Retry dhcp6 ping on interrupts
-
-diff --git a/src/dhcp6.c b/src/dhcp6.c
-index 2be877f..ae1f5c1 100644
---- a/src/dhcp6.c
-+++ b/src/dhcp6.c
-@@ -292,7 +292,7 @@ void get_client_mac(struct in6_addr *client, int iface, unsigned char *mac, unsi
- if ((maclen = find_mac(&addr, mac, 0, now)) != 0)
- break;
-
-- sendto(daemon->icmp6fd, &neigh, sizeof(neigh), 0, &addr.sa, sizeof(addr));
-+ while(retry_send(sendto(daemon->icmp6fd, &neigh, sizeof(neigh), 0, &addr.sa, sizeof(addr))));
-
- ts.tv_sec = 0;
- ts.tv_nsec = 100000000; /* 100ms */
---
-2.31.1
-
diff --git a/main/dnsmasq/0008-Fix-coverity-warnings-on-dbus.patch b/main/dnsmasq/0008-Fix-coverity-warnings-on-dbus.patch
deleted file mode 100644
index 160d4d0d6d7..00000000000
--- a/main/dnsmasq/0008-Fix-coverity-warnings-on-dbus.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-Patch-Source: https://src.fedoraproject.org/rpms/dnsmasq/blob/f36/f/0008-Fix-coverity-warnings-on-dbus.patch (backport from upstream)
---
-From bbfdf6a435cbd5f71ae76f962ce86786346589aa Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
-Date: Fri, 3 Sep 2021 17:19:05 +0200
-Subject: [PATCH 08/15] Fix coverity warnings on dbus
-
-diff --git a/src/dbus.c b/src/dbus.c
-index cbdce9c..d746b9a 100644
---- a/src/dbus.c
-+++ b/src/dbus.c
-@@ -114,7 +114,7 @@ static dbus_bool_t add_watch(DBusWatch *watch, void *data)
- w->next = daemon->watches;
- daemon->watches = w;
-
-- w = data; /* no warning */
-+ (void)data; /* no warning */
- return TRUE;
- }
-
-@@ -134,16 +134,20 @@ static void remove_watch(DBusWatch *watch, void *data)
- up = &(w->next);
- }
-
-- w = data; /* no warning */
-+ (void)data; /* no warning */
- }
-
--static void dbus_read_servers(DBusMessage *message)
-+static DBusMessage* dbus_read_servers(DBusMessage *message)
- {
- DBusMessageIter iter;
- union mysockaddr addr, source_addr;
- char *domain;
-
-- dbus_message_iter_init(message, &iter);
-+ if (!dbus_message_iter_init(message, &iter))
-+ {
-+ return dbus_message_new_error(message, DBUS_ERROR_INVALID_ARGS,
-+ "Failed to initialize dbus message iter");
-+ }
-
- mark_servers(SERV_FROM_DBUS);
-
-@@ -222,6 +226,7 @@ static void dbus_read_servers(DBusMessage *message)
-
- /* unlink and free anything still marked. */
- cleanup_servers();
-+ return NULL;
- }
-
- #ifdef HAVE_LOOP
-@@ -545,6 +550,10 @@ static DBusMessage *dbus_add_lease(DBusMessage* message)
- "Invalid IP address '%s'", ipaddr);
-
- hw_len = parse_hex((char*)hwaddr, dhcp_chaddr, DHCP_CHADDR_MAX, NULL, &hw_type);
-+ if (hw_len < 0)
-+ return dbus_message_new_error_printf(message, DBUS_ERROR_INVALID_ARGS,
-+ "Invalid HW address '%s'", hwaddr);
-+
- if (hw_type == 0 && hw_len != 0)
- hw_type = ARPHRD_ETHER;
-
-@@ -668,7 +677,7 @@ DBusHandlerResult message_handler(DBusConnection *connection,
- #endif
- else if (strcmp(method, "SetServers") == 0)
- {
-- dbus_read_servers(message);
-+ reply = dbus_read_servers(message);
- new_servers = 1;
- }
- else if (strcmp(method, "SetServersEx") == 0)
-@@ -719,7 +728,7 @@ DBusHandlerResult message_handler(DBusConnection *connection,
- if (clear_cache)
- clear_cache_and_reload(dnsmasq_time());
-
-- method = user_data; /* no warning */
-+ (void)user_data; /* no warning */
-
- /* If no reply or no error, return nothing */
- if (!reply)
---
-2.31.1
-
diff --git a/main/dnsmasq/0009-Address-coverity-issues-detected-in-util.c.patch b/main/dnsmasq/0009-Address-coverity-issues-detected-in-util.c.patch
deleted file mode 100644
index 4dbf56de5a4..00000000000
--- a/main/dnsmasq/0009-Address-coverity-issues-detected-in-util.c.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-Patch-Source: https://src.fedoraproject.org/rpms/dnsmasq/blob/f36/f/0009-Address-coverity-issues-detected-in-util.c.patch (backport from upstream)
---
-From 7b975696a7bda5b86fcf168644f177544adb6fe9 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
-Date: Fri, 3 Sep 2021 17:38:26 +0200
-Subject: [PATCH 09/15] Address coverity issues detected in util.c
-
-diff --git a/src/util.c b/src/util.c
-index 1425764..8e69d55 100644
---- a/src/util.c
-+++ b/src/util.c
-@@ -208,6 +208,8 @@ char *canonicalise(char *in, int *nomem)
- /* older libidn2 strips underscores, so don't do IDN processing
- if the name has an underscore (check_name() returned 2) */
- if (rc != 2)
-+#else
-+ (void)rc;
- #endif
- #if defined(HAVE_IDN) || defined(HAVE_LIBIDN2)
- {
-@@ -235,11 +237,14 @@ char *canonicalise(char *in, int *nomem)
- return ret;
- }
- #endif
--
-+
-+#if !defined(HAVE_LIBIDN2) || (defined(HAVE_LIBIDN2) && (!defined(IDN2_VERSION_NUMBER) || IDN2_VERSION_NUMBER < 0x02000003))
-+ /* If recent libidn2 is used, it cannot reach this code. */
- if ((ret = whine_malloc(strlen(in)+1)))
- strcpy(ret, in);
- else if (nomem)
-- *nomem = 1;
-+ *nomem = 1;
-+#endif
-
- return ret;
- }
-@@ -528,7 +533,7 @@ void prettyprint_time(char *buf, unsigned int t)
- if ((x = (t/60)%60))
- p += sprintf(&buf[p], "%um", x);
- if ((x = t%60))
-- p += sprintf(&buf[p], "%us", x);
-+ sprintf(&buf[p], "%us", x);
- }
- }
-
-@@ -574,7 +579,7 @@ int parse_hex(char *in, unsigned char *out, int maxlen,
- int j, bytes = (1 + (r - in))/2;
- for (j = 0; j < bytes; j++)
- {
-- char sav = sav;
-+ char sav;
- if (j < bytes - 1)
- {
- sav = in[(j+1)*2];
---
-2.31.1
-
diff --git a/main/dnsmasq/0010-Fix-coverity-detected-issues-in-option.c.patch b/main/dnsmasq/0010-Fix-coverity-detected-issues-in-option.c.patch
deleted file mode 100644
index 25b271fe785..00000000000
--- a/main/dnsmasq/0010-Fix-coverity-detected-issues-in-option.c.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-Patch-Source: https://src.fedoraproject.org/rpms/dnsmasq/blob/f36/f/0010-Fix-coverity-detected-issues-in-option.c.patch (backport from upstream)
---
-From db835f8c40e83c6392e69ffc7f2cc500f7682dd4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
-Date: Fri, 3 Sep 2021 19:23:20 +0200
-Subject: [PATCH 10/15] Fix coverity detected issues in option.c
-
-diff --git a/src/option.c b/src/option.c
-index ffce9fc..11655fd 100644
---- a/src/option.c
-+++ b/src/option.c
-@@ -798,7 +798,7 @@ static void do_usage(void)
-
- if (usage[i].arg)
- {
-- strcpy(buff, usage[i].arg);
-+ safe_strncpy(buff, usage[i].arg, sizeof(buff));
- for (j = 0; tab[j].handle; j++)
- if (tab[j].handle == *(usage[i].arg))
- sprintf(buff, "%d", tab[j].val);
-@@ -959,7 +959,7 @@ static int domain_rev4(char *domain, struct in_addr addr, int msize)
- return 0;
- }
-
-- domain += sprintf(domain, "in-addr.arpa");
-+ sprintf(domain, "in-addr.arpa");
-
- return 1;
- }
-@@ -978,7 +978,7 @@ static int domain_rev6(char *domain, struct in6_addr *addr, int msize)
- int dig = ((unsigned char *)addr)[i>>3];
- domain += sprintf(domain, "%.1x.", (i>>2) & 1 ? dig & 15 : dig >> 4);
- }
-- domain += sprintf(domain, "ip6.arpa");
-+ sprintf(domain, "ip6.arpa");
-
- return 1;
- }
-@@ -1829,6 +1829,8 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma
- new->next = li;
- *up = new;
- }
-+ else
-+ free(path);
-
- }
-
-@@ -1995,7 +1997,11 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma
-
- if (!(name = canonicalise_opt(arg)) ||
- (comma && !(target = canonicalise_opt(comma))))
-- ret_err(_("bad MX name"));
-+ {
-+ free(name);
-+ free(target);
-+ ret_err(_("bad MX name"));
-+ }
-
- new = opt_malloc(sizeof(struct mx_srv_record));
- new->next = daemon->mxnames;
-@@ -3616,6 +3622,7 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma
- inet_ntop(AF_INET, &in, daemon->addrbuff, ADDRSTRLEN);
- sprintf(errstr, _("duplicate dhcp-host IP address %s"),
- daemon->addrbuff);
-+ dhcp_config_free(new);
- return 0;
- }
- }
-@@ -3779,16 +3786,16 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma
-
- case LOPT_NAME_MATCH: /* --dhcp-name-match */
- {
-- struct dhcp_match_name *new = opt_malloc(sizeof(struct dhcp_match_name));
-- struct dhcp_netid *id = opt_malloc(sizeof(struct dhcp_netid));
-+ struct dhcp_match_name *new;
- ssize_t len;
-
- if (!(comma = split(arg)) || (len = strlen(comma)) == 0)
- ret_err(gen_err);
-
-+ new = opt_malloc(sizeof(struct dhcp_match_name));
- new->wildcard = 0;
-- new->netid = id;
-- id->net = opt_string_alloc(set_prefix(arg));
-+ new->netid = opt_malloc(sizeof(struct dhcp_netid));
-+ new->netid->net = opt_string_alloc(set_prefix(arg));
-
- if (comma[len-1] == '*')
- {
-@@ -3992,6 +3999,8 @@ static int one_opt(int option, char *arg, char *errstr, char *gen_err, int comma
- }
- }
-
-+ dhcp_netid_free(new->netid);
-+ free(new);
- ret_err(gen_err);
- }
-
-@@ -4367,7 +4376,7 @@ err:
- case LOPT_CNAME: /* --cname */
- {
- struct cname *new;
-- char *alias, *target, *last, *pen;
-+ char *alias, *target=NULL, *last, *pen;
- int ttl = -1;
-
- for (last = pen = NULL, comma = arg; comma; comma = split(comma))
-@@ -4382,13 +4391,13 @@ err:
- if (pen != arg && atoi_check(last, &ttl))
- last = pen;
-
-- target = canonicalise_opt(last);
--
- while (arg != last)
- {
- int arglen = strlen(arg);
- alias = canonicalise_opt(arg);
-
-+ if (!target)
-+ target = canonicalise_opt(last);
- if (!alias || !target)
- {
- free(target);
-@@ -4691,7 +4700,7 @@ err:
- struct name_list *nl;
- if (!canon)
- {
-- struct name_list *tmp = new->names, *next;
-+ struct name_list *tmp, *next;
- for (tmp = new->names; tmp; tmp = next)
- {
- next = tmp->next;
---
-2.31.1
-
diff --git a/main/dnsmasq/0011-Fix-coverity-detected-issue-in-radv.c.patch b/main/dnsmasq/0011-Fix-coverity-detected-issue-in-radv.c.patch
deleted file mode 100644
index d3a98198912..00000000000
--- a/main/dnsmasq/0011-Fix-coverity-detected-issue-in-radv.c.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Patch-Source: https://src.fedoraproject.org/rpms/dnsmasq/blob/f36/f/0011-Fix-coverity-detected-issue-in-radv.c.patch (backport from upstream)
---
-From 9c088b29dcdb8a3e013120d8272a6e0314a8f3df Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
-Date: Fri, 3 Sep 2021 19:29:23 +0200
-Subject: [PATCH 11/15] Fix coverity detected issue in radv.c
-
-diff --git a/src/radv.c b/src/radv.c
-index 3255904..6d6fa32 100644
---- a/src/radv.c
-+++ b/src/radv.c
-@@ -746,6 +746,8 @@ static int add_lla(int index, unsigned int type, char *mac, size_t maclen, void
- add 7 to round up */
- int len = (maclen + 9) >> 3;
- unsigned char *p = expand(len << 3);
-+ if (!p)
-+ return 1;
- memset(p, 0, len << 3);
- *p++ = ICMP6_OPT_SOURCE_MAC;
- *p++ = len;
---
-2.31.1
-
diff --git a/main/dnsmasq/0012-Fix-coverity-detected-issues-in-cache.c.patch b/main/dnsmasq/0012-Fix-coverity-detected-issues-in-cache.c.patch
deleted file mode 100644
index b98f71f2162..00000000000
--- a/main/dnsmasq/0012-Fix-coverity-detected-issues-in-cache.c.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Patch-Source: https://src.fedoraproject.org/rpms/dnsmasq/blob/f36/f/0012-Fix-coverity-detected-issues-in-cache.c.patch (backport from upstream)
---
-From 957b2b25238d82a6c3afced2ff0423ad171fb22e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
-Date: Fri, 3 Sep 2021 20:10:37 +0200
-Subject: [PATCH 12/15] Fix coverity detected issues in cache.c
-
-diff --git a/src/cache.c b/src/cache.c
-index 97c51a7..6722fa6 100644
---- a/src/cache.c
-+++ b/src/cache.c
-@@ -1188,7 +1188,7 @@ void cache_reload(void)
- struct host_record *hr;
- struct name_list *nl;
- struct cname *a;
-- struct crec lrec;
-+ struct crec lrec = { 0, };
- struct mx_srv_record *mx;
- struct txt_record *txt;
- struct interface_name *intr;
---
-2.31.1
-
diff --git a/main/dnsmasq/0013-Fix-coverity-issues-detected-in-domain-match.c.patch b/main/dnsmasq/0013-Fix-coverity-issues-detected-in-domain-match.c.patch
deleted file mode 100644
index 869fab74d38..00000000000
--- a/main/dnsmasq/0013-Fix-coverity-issues-detected-in-domain-match.c.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-Patch-Source: https://src.fedoraproject.org/rpms/dnsmasq/blob/f36/f/0013-Fix-coverity-issues-detected-in-domain-match.c.patch (backport from upstream)
---
-From 0dafe990a1395d597bc6022c3936769f7a0ddea7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
-Date: Fri, 3 Sep 2021 21:16:22 +0200
-Subject: [PATCH 13/15] Fix coverity issues detected in domain-match.c
-
-diff --git a/src/domain-match.c b/src/domain-match.c
-index f8e4796..7124c18 100644
---- a/src/domain-match.c
-+++ b/src/domain-match.c
-@@ -411,7 +411,8 @@ size_t make_local_answer(int flags, int gotname, size_t size, struct dns_header
- addr.addr4 = srv->addr;
-
- header->ancount = htons(ntohs(header->ancount) + 1);
-- add_resource_record(header, limit, &trunc, sizeof(struct dns_header), &p, daemon->local_ttl, NULL, T_A, C_IN, "4", &addr);
-+ if (!add_resource_record(header, limit, &trunc, sizeof(struct dns_header), &p, daemon->local_ttl, NULL, T_A, C_IN, "4", &addr))
-+ return 0;
- log_query((flags | F_CONFIG | F_FORWARD) & ~F_IPV6, name, (union all_addr *)&addr, NULL);
- }
-
-@@ -426,7 +427,8 @@ size_t make_local_answer(int flags, int gotname, size_t size, struct dns_header
- addr.addr6 = srv->addr;
-
- header->ancount = htons(ntohs(header->ancount) + 1);
-- add_resource_record(header, limit, &trunc, sizeof(struct dns_header), &p, daemon->local_ttl, NULL, T_AAAA, C_IN, "6", &addr);
-+ if (!add_resource_record(header, limit, &trunc, sizeof(struct dns_header), &p, daemon->local_ttl, NULL, T_AAAA, C_IN, "6", &addr))
-+ return 0;
- log_query((flags | F_CONFIG | F_FORWARD) & ~F_IPV4, name, (union all_addr *)&addr, NULL);
- }
-
-@@ -609,9 +611,12 @@ int add_update_server(int flags,
-
- if (*domain == 0)
- alloc_domain = whine_malloc(1);
-- else if (!(alloc_domain = canonicalise((char *)domain, NULL)))
-+ else
-+ alloc_domain = canonicalise((char *)domain, NULL);
-+
-+ if (!alloc_domain)
- return 0;
--
-+
- /* See if there is a suitable candidate, and unmark
- only do this for forwarding servers, not
- address or local, to avoid delays on large numbers. */
-@@ -643,7 +647,10 @@ int add_update_server(int flags,
- size = sizeof(struct server);
-
- if (!(serv = whine_malloc(size)))
-- return 0;
-+ {
-+ free(alloc_domain);
-+ return 0;
-+ }
-
- if (flags & SERV_IS_LOCAL)
- {
---
-2.31.1
-
diff --git a/main/dnsmasq/0014-Fix-coverity-detected-issues-in-dnsmasq.c.patch b/main/dnsmasq/0014-Fix-coverity-detected-issues-in-dnsmasq.c.patch
deleted file mode 100644
index 148a4b319ff..00000000000
--- a/main/dnsmasq/0014-Fix-coverity-detected-issues-in-dnsmasq.c.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-Patch-Source: https://src.fedoraproject.org/rpms/dnsmasq/blob/f36/f/0014-Fix-coverity-detected-issues-in-dnsmasq.c.patch (backport from upstream)
---
-From f476acbe3c2830e6ff0c50cc36d364a3f3f4fadb Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
-Date: Fri, 3 Sep 2021 22:45:29 +0200
-Subject: [PATCH 14/15] Fix coverity detected issues in dnsmasq.c
-
-diff --git a/src/dnsmasq.c b/src/dnsmasq.c
-index 602daed..3e1bfe8 100644
---- a/src/dnsmasq.c
-+++ b/src/dnsmasq.c
-@@ -34,7 +34,6 @@ static void poll_resolv(int force, int do_reload, time_t now);
-
- int main (int argc, char **argv)
- {
-- int bind_fallback = 0;
- time_t now;
- struct sigaction sigact;
- struct iname *if_tmp;
-@@ -59,6 +58,8 @@ int main (int argc, char **argv)
- int did_bind = 0;
- struct server *serv;
- char *netlink_warn;
-+#else
-+ int bind_fallback = 0;
- #endif
- #if defined(HAVE_DHCP) || defined(HAVE_DHCP6)
- struct dhcp_context *context;
-@@ -377,7 +378,7 @@ int main (int argc, char **argv)
- bindtodevice(bound_device, daemon->dhcpfd);
- did_bind = 1;
- }
-- if (daemon->enable_pxe && bound_device)
-+ if (daemon->enable_pxe && bound_device && daemon->pxefd != -1)
- {
- bindtodevice(bound_device, daemon->pxefd);
- did_bind = 1;
-@@ -920,8 +921,10 @@ int main (int argc, char **argv)
- my_syslog(LOG_WARNING, _("warning: failed to change owner of %s: %s"),
- daemon->log_file, strerror(log_err));
-
-+#ifndef HAVE_LINUX_NETWORK
- if (bind_fallback)
- my_syslog(LOG_WARNING, _("setting --bind-interfaces option because of OS limitations"));
-+#endif
-
- if (option_bool(OPT_NOWILD))
- warn_bound_listeners();
-@@ -1575,7 +1578,7 @@ static void async_event(int pipe, time_t now)
- {
- /* block in writes until all done */
- if ((i = fcntl(daemon->helperfd, F_GETFL)) != -1)
-- fcntl(daemon->helperfd, F_SETFL, i & ~O_NONBLOCK);
-+ while(retry_send(fcntl(daemon->helperfd, F_SETFL, i & ~O_NONBLOCK)));
- do {
- helper_write();
- } while (!helper_buf_empty() || do_script_run(now));
-@@ -1984,7 +1987,7 @@ static void check_dns_listeners(time_t now)
- attribute from the listening socket.
- Reset that here. */
- if ((flags = fcntl(confd, F_GETFL, 0)) != -1)
-- fcntl(confd, F_SETFL, flags & ~O_NONBLOCK);
-+ while(retry_send(fcntl(confd, F_SETFL, flags & ~O_NONBLOCK)));
-
- buff = tcp_request(confd, now, &tcp_addr, netmask, auth_dns);
-
---
-2.31.1
-
diff --git a/main/dnsmasq/0015-Fix-coverity-issues-in-dnssec.c.patch b/main/dnsmasq/0015-Fix-coverity-issues-in-dnssec.c.patch
deleted file mode 100644
index 7f9d5d36acc..00000000000
--- a/main/dnsmasq/0015-Fix-coverity-issues-in-dnssec.c.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-Patch-Source: https://src.fedoraproject.org/rpms/dnsmasq/blob/f36/f/0015-Fix-coverity-issues-in-dnssec.c.patch (backport from upstream)
---
-From 82c23fb1f0d9e46c6ce4bc4a57f0d377cc6089b7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
-Date: Fri, 3 Sep 2021 22:51:36 +0200
-Subject: [PATCH 15/15] Fix coverity issues in dnssec.c
-
-diff --git a/src/dnssec.c b/src/dnssec.c
-index 94ebb6f..8800a5b 100644
---- a/src/dnssec.c
-+++ b/src/dnssec.c
-@@ -724,7 +724,8 @@ static int validate_rrset(time_t now, struct dns_header *header, size_t plen, in
-
- /* namebuff used for workspace above, restore to leave unchanged on exit */
- p = (unsigned char*)(rrset[0]);
-- extract_name(header, plen, &p, name, 1, 0);
-+ if (!extract_name(header, plen, &p, name, 1, 0))
-+ return STAT_BOGUS;
-
- if (key)
- {
-@@ -1017,7 +1018,9 @@ int dnssec_validate_ds(time_t now, struct dns_header *header, size_t plen, char
- }
-
- p = (unsigned char *)(header+1);
-- extract_name(header, plen, &p, name, 1, 4);
-+ if (!extract_name(header, plen, &p, name, 1, 4))
-+ return STAT_BOGUS;
-+
- p += 4; /* qtype, qclass */
-
- /* If the key needed to validate the DS is on the same domain as the DS, we'll
---
-2.31.1
-
diff --git a/main/dnsmasq/0020-fix-domain-match-local.patch b/main/dnsmasq/0020-fix-domain-match-local.patch
deleted file mode 100644
index 120f90ec68d..00000000000
--- a/main/dnsmasq/0020-fix-domain-match-local.patch
+++ /dev/null
@@ -1,276 +0,0 @@
-Patch-Source: https://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=patch;h=de372d6914ae20a1f9997815f258efbf3b14c39b (modified)
---
-From de372d6914ae20a1f9997815f258efbf3b14c39b Mon Sep 17 00:00:00 2001
-From: Simon Kelley <simon@thekelleys.org.uk>
-Date: Sat, 18 Sep 2021 23:01:12 +0100
-Subject: [PATCH 1/1] Fix confusion is server=/domain/# combined with
- server|address=/domain/....
-
-The 2.86 domain matching rewrite failed to take into account the possibilty that
-
-server=/example.com/#
-
-could be combined with, for example
-
-address=/example.com/1.2.3.4
-
-resulting in the struct server datastructure for the former getting passed
-to forward_query(), rapidly followed by a SEGV.
-
-This fix makes server=/example.com/# a fully fledged member of the
-priority list, which is now IPv6 addr, IPv4 addr, all zero return,
-resolvconf servers, upstream servers, no-data return
-
-Thanks to dl6er@dl6er.de for finding and characterising the bug.
----
- src/dnsmasq.h | 34 +++++++-------
- src/domain-match.c | 113 +++++++++++++++++++++++----------------------
- 2 files changed, 75 insertions(+), 72 deletions(-)
-
-diff --git a/src/dnsmasq.h b/src/dnsmasq.h
-index 56a3f1d..327ad65 100644
---- a/src/dnsmasq.h
-+++ b/src/dnsmasq.h
-@@ -530,23 +530,23 @@ union mysockaddr {
-
-
- /* The actual values here matter, since we sort on them to get records in the order
-- IPv6 addr, IPv4 addr, all zero return, no-data return, send upstream. */
--#define SERV_LITERAL_ADDRESS 1 /* addr is the answer, or NoDATA is the answer, depending on the next three flags */
--#define SERV_ALL_ZEROS 2 /* return all zeros for A and AAAA */
--#define SERV_4ADDR 4 /* addr is IPv4 */
--#define SERV_6ADDR 8 /* addr is IPv6 */
--#define SERV_HAS_SOURCE 16 /* source address defined */
--#define SERV_FOR_NODOTS 32 /* server for names with no domain part only */
--#define SERV_WARNED_RECURSIVE 64 /* avoid warning spam */
--#define SERV_FROM_DBUS 128 /* 1 if source is DBus */
--#define SERV_MARK 256 /* for mark-and-delete and log code */
--#define SERV_WILDCARD 512 /* domain has leading '*' */
--#define SERV_USE_RESOLV 1024 /* forward this domain in the normal way */
--#define SERV_FROM_RESOLV 2048 /* 1 for servers from resolv, 0 for command line. */
--#define SERV_FROM_FILE 4096 /* read from --servers-file */
--#define SERV_LOOP 8192 /* server causes forwarding loop */
--#define SERV_DO_DNSSEC 16384 /* Validate DNSSEC when using this server */
--#define SERV_GOT_TCP 32768 /* Got some data from the TCP connection */
-+ IPv6 addr, IPv4 addr, all zero return, resolvconf servers, upstream server, no-data return */
-+#define SERV_LITERAL_ADDRESS 1 /* addr is the answer, or NoDATA is the answer, depending on the next four flags */
-+#define SERV_USE_RESOLV 2 /* forward this domain in the normal way */
-+#define SERV_ALL_ZEROS 4 /* return all zeros for A and AAAA */
-+#define SERV_4ADDR 8 /* addr is IPv4 */
-+#define SERV_6ADDR 16 /* addr is IPv6 */
-+#define SERV_HAS_SOURCE 32 /* source address defined */
-+#define SERV_FOR_NODOTS 64 /* server for names with no domain part only */
-+#define SERV_WARNED_RECURSIVE 128 /* avoid warning spam */
-+#define SERV_FROM_DBUS 256 /* 1 if source is DBus */
-+#define SERV_MARK 512 /* for mark-and-delete and log code */
-+#define SERV_WILDCARD 1024 /* domain has leading '*' */
-+#define SERV_FROM_RESOLV 2048 /* 1 for servers from resolv, 0 for command line. */
-+#define SERV_FROM_FILE 4096 /* read from --servers-file */
-+#define SERV_LOOP 8192 /* server causes forwarding loop */
-+#define SERV_DO_DNSSEC 16384 /* Validate DNSSEC when using this server */
-+#define SERV_GOT_TCP 32768 /* Got some data from the TCP connection */
-
- struct serverfd {
- int fd;
-diff --git a/src/domain-match.c b/src/domain-match.c
-index b22948c..8f29621 100644
---- a/src/domain-match.c
-+++ b/src/domain-match.c
-@@ -207,16 +207,16 @@ int lookup_domain(char *domain, int flags, int *lowout, int *highout)
- }
- }
-
-- if (found)
-+ if (found && filter_servers(try, flags, &nlow, &nhigh))
-+ /* We have a match, but it may only be (say) an IPv6 address, and
-+ if the query wasn't for an AAAA record, it's no good, and we need
-+ to continue generalising */
- {
- /* We've matched a setting which says to use servers without a domain.
- Continue the search with empty query */
-- if (daemon->serverarray[try]->flags & SERV_USE_RESOLV)
-+ if (daemon->serverarray[nlow]->flags & SERV_USE_RESOLV)
- crop_query = qlen;
-- else if (filter_servers(try, flags, &nlow, &nhigh))
-- /* We have a match, but it may only be (say) an IPv6 address, and
-- if the query wasn't for an AAAA record, it's no good, and we need
-- to continue generalising */
-+ else
- break;
- }
- }
-@@ -273,7 +273,7 @@ int filter_servers(int seed, int flags, int *lowout, int *highout)
- nlow--;
-
- while (nhigh < daemon->serverarraysz-1 && order_servers(daemon->serverarray[nhigh], daemon->serverarray[nhigh+1]) == 0)
-- nhigh++;
-+ nhigh++;
-
- nhigh++;
-
-@@ -293,10 +293,10 @@ int filter_servers(int seed, int flags, int *lowout, int *highout)
- else
- {
- /* Now the servers are on order between low and high, in the order
-- IPv6 addr, IPv4 addr, return zero for both, send upstream, no-data return.
-+ IPv6 addr, IPv4 addr, return zero for both, resolvconf servers, send upstream, no-data return.
-
- See which of those match our query in that priority order and narrow (low, high) */
--
-+
- for (i = nlow; i < nhigh && (daemon->serverarray[i]->flags & SERV_6ADDR); i++);
-
- if (i != nlow && (flags & F_IPV6))
-@@ -321,32 +321,40 @@ int filter_servers(int seed, int flags, int *lowout, int *highout)
- {
- nlow = i;
-
-- /* now look for a server */
-- for (i = nlow; i < nhigh && !(daemon->serverarray[i]->flags & SERV_LITERAL_ADDRESS); i++);
--
-+ /* Short to resolv.conf servers */
-+ for (i = nlow; i < nhigh && (daemon->serverarray[i]->flags & SERV_USE_RESOLV); i++);
-+
- if (i != nlow)
-- {
-- /* If we want a server that can do DNSSEC, and this one can't,
-- return nothing, similarly if were looking only for a server
-- for a particular domain. */
-- if ((flags & F_DNSSECOK) && !(daemon->serverarray[nlow]->flags & SERV_DO_DNSSEC))
-- nlow = nhigh;
-- else if ((flags & F_DOMAINSRV) && daemon->serverarray[nlow]->domain_len == 0)
-- nlow = nhigh;
-- else
-- nhigh = i;
-- }
-+ nhigh = i;
- else
- {
-- /* --local=/domain/, only return if we don't need a server. */
-- if (flags & (F_DNSSECOK | F_DOMAINSRV | F_SERVER))
-- nhigh = i;
-+ /* now look for a server */
-+ for (i = nlow; i < nhigh && !(daemon->serverarray[i]->flags & SERV_LITERAL_ADDRESS); i++);
-+
-+ if (i != nlow)
-+ {
-+ /* If we want a server that can do DNSSEC, and this one can't,
-+ return nothing, similarly if were looking only for a server
-+ for a particular domain. */
-+ if ((flags & F_DNSSECOK) && !(daemon->serverarray[nlow]->flags & SERV_DO_DNSSEC))
-+ nlow = nhigh;
-+ else if ((flags & F_DOMAINSRV) && daemon->serverarray[nlow]->domain_len == 0)
-+ nlow = nhigh;
-+ else
-+ nhigh = i;
-+ }
-+ else
-+ {
-+ /* --local=/domain/, only return if we don't need a server. */
-+ if (flags & (F_DNSSECOK | F_DOMAINSRV | F_SERVER))
-+ nhigh = i;
-+ }
- }
- }
- }
- }
- }
--
-+
- *lowout = nlow;
- *highout = nhigh;
-
-@@ -522,10 +530,10 @@ static int order_qsort(const void *a, const void *b)
- /* Sort all literal NODATA and local IPV4 or IPV6 responses together,
- in a very specific order. We flip the SERV_LITERAL_ADDRESS bit
- so the order is IPv6 literal, IPv4 literal, all-zero literal,
-- upstream server, NXDOMAIN literal. */
-+ unqualified servers, upstream server, NXDOMAIN literal. */
- if (rc == 0)
-- rc = ((s2->flags & (SERV_LITERAL_ADDRESS | SERV_4ADDR | SERV_6ADDR | SERV_ALL_ZEROS)) ^ SERV_LITERAL_ADDRESS) -
-- ((s1->flags & (SERV_LITERAL_ADDRESS | SERV_4ADDR | SERV_6ADDR | SERV_ALL_ZEROS)) ^ SERV_LITERAL_ADDRESS);
-+ rc = ((s2->flags & (SERV_LITERAL_ADDRESS | SERV_4ADDR | SERV_6ADDR | SERV_USE_RESOLV | SERV_ALL_ZEROS)) ^ SERV_LITERAL_ADDRESS) -
-+ ((s1->flags & (SERV_LITERAL_ADDRESS | SERV_4ADDR | SERV_6ADDR | SERV_USE_RESOLV | SERV_ALL_ZEROS)) ^ SERV_LITERAL_ADDRESS);
-
- /* Finally, order by appearance in /etc/resolv.conf etc, for --strict-order */
- if (rc == 0)
-@@ -635,7 +643,7 @@ int add_update_server(int flags,
- {
- size_t size;
-
-- if (flags & SERV_LITERAL_ADDRESS)
-+ if (flags & SERV_IS_LOCAL)
- {
- if (flags & SERV_6ADDR)
- size = sizeof(struct serv_addr6);
-@@ -657,10 +665,19 @@ int add_update_server(int flags,
- {
- serv->next = daemon->local_domains;
- daemon->local_domains = serv;
-+
-+ if (flags & SERV_4ADDR)
-+ ((struct serv_addr4*)serv)->addr = local_addr->addr4;
-+
-+ if (flags & SERV_6ADDR)
-+ ((struct serv_addr6*)serv)->addr = local_addr->addr6;
- }
- else
- {
- struct server *s;
-+
-+ memset(serv, 0, sizeof(struct server));
-+
- /* Add to the end of the chain, for order */
- if (!daemon->servers)
- daemon->servers = serv;
-@@ -670,37 +687,23 @@ int add_update_server(int flags,
- s->next = serv;
- }
-
-- serv->next = NULL;
-+#ifdef HAVE_LOOP
-+ serv->uid = rand32();
-+#endif
-+
-+ if (interface)
-+ safe_strncpy(serv->interface, interface, sizeof(serv->interface));
-+ if (addr)
-+ serv->addr = *addr;
-+ if (source_addr)
-+ serv->source_addr = *source_addr;
- }
- }
-
-- if (!(flags & SERV_IS_LOCAL))
-- memset(serv, 0, sizeof(struct server));
--
- serv->flags = flags;
- serv->domain = alloc_domain;
- serv->domain_len = strlen(alloc_domain);
-
-- if (flags & SERV_4ADDR)
-- ((struct serv_addr4*)serv)->addr = local_addr->addr4;
--
-- if (flags & SERV_6ADDR)
-- ((struct serv_addr6*)serv)->addr = local_addr->addr6;
--
-- if (!(flags & SERV_IS_LOCAL))
-- {
--#ifdef HAVE_LOOP
-- serv->uid = rand32();
--#endif
--
-- if (interface)
-- safe_strncpy(serv->interface, interface, sizeof(serv->interface));
-- if (addr)
-- serv->addr = *addr;
-- if (source_addr)
-- serv->source_addr = *source_addr;
-- }
--
- return 1;
- }
-
---
-2.20.1
-
diff --git a/main/dnsmasq/0021-build_server_array.patch b/main/dnsmasq/0021-build_server_array.patch
deleted file mode 100644
index 2c70418dc94..00000000000
--- a/main/dnsmasq/0021-build_server_array.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-Patch-Source: https://src.fedoraproject.org/rpms/dnsmasq/blob/f36/f/dnsmasq-2.86-build_server_array.patch
-This patch replaces/enhances http://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commit;h=d290630d31f4517ab26392d00753d1397f9a4114
---
-From 068e849c713fa5e95eeb210792c061b7e212eab5 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
-Date: Wed, 13 Oct 2021 16:58:39 +0200
-Subject: [PATCH] Ensure serverarray is rebuilt once server can be removed
-
-Because cleanup_servers is called from each place which can remove
-server, use that function to refresh serverarray after changes. Make it
-static, since it does not have to be called from other places.
----
- src/dnsmasq.h | 1 -
- src/domain-match.c | 8 +++++++-
- src/network.c | 1 -
- 3 files changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/src/dnsmasq.h b/src/dnsmasq.h
-index 08f2785..3f82412 100644
---- a/src/dnsmasq.h
-+++ b/src/dnsmasq.h
-@@ -1757,7 +1757,6 @@ void dump_packet(int mask, void *packet, size_t len, union mysockaddr *src, unio
- #endif
-
- /* domain-match.c */
--void build_server_array(void);
- int lookup_domain(char *qdomain, int flags, int *lowout, int *highout);
- int filter_servers(int seed, int flags, int *lowout, int *highout);
- int is_local_answer(time_t now, int first, char *name);
-diff --git a/src/domain-match.c b/src/domain-match.c
-index 45528c1..e5b409e 100644
---- a/src/domain-match.c
-+++ b/src/domain-match.c
-@@ -23,7 +23,7 @@ static int order_servers(struct server *s, struct server *s2);
- /* If the server is USE_RESOLV or LITERAL_ADDRES, it lives on the local_domains chain. */
- #define SERV_IS_LOCAL (SERV_USE_RESOLV | SERV_LITERAL_ADDRESS)
-
--void build_server_array(void)
-+static void build_server_array(void)
- {
- struct server *serv;
- int count = 0;
-@@ -592,6 +592,12 @@ void cleanup_servers(void)
- else
- up = &serv->next;
- }
-+
-+ /* If we're delaying things, we don't call check_servers(), but
-+ reload_servers() may have deleted some servers, rendering the server_array
-+ invalid, so just rebuild that here. Once reload_servers() succeeds,
-+ we call check_servers() above, which calls build_server_array itself. */
-+ build_server_array();
- }
-
- int add_update_server(int flags,
-diff --git a/src/network.c b/src/network.c
-index 3fc179d..0b68866 100644
---- a/src/network.c
-+++ b/src/network.c
-@@ -1653,7 +1653,6 @@ void check_servers(int no_loop_check)
- }
-
- cleanup_servers(); /* remove servers we just deleted. */
-- build_server_array();
- }
-
- /* Return zero if no servers found, in that case we keep polling.
---
-2.31.1
-
diff --git a/main/dnsmasq/0022-Fix-problems-with-upper-case-in-domain-match.patch b/main/dnsmasq/0022-Fix-problems-with-upper-case-in-domain-match.patch
deleted file mode 100644
index 2fa5337822e..00000000000
--- a/main/dnsmasq/0022-Fix-problems-with-upper-case-in-domain-match.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-Patch-Source: https://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commitdiff;h=e3093b532c34a8d95c8c751bdd9cabf552f5bf05 (modified)
---
-From e3093b532c34a8d95c8c751bdd9cabf552f5bf05 Mon Sep 17 00:00:00 2001
-From: Simon Kelley <simon@thekelleys.org.uk>
-Date: Sun, 28 Nov 2021 18:39:42 +0000
-Subject: [PATCH 1/1] Fix problems with upper-case in domain-match.
-
-The domain-match rewrite didn't take into account
-that domain names are case-insensitive, so things like
-
---address=/Example.com/.....
-
-didn't work correctly.
----
- src/dnsmasq.h | 1 +
- src/domain-match.c | 2 +-
- src/forward.c | 2 +-
- src/util.c | 16 ++++++++++++----
- 4 files changed, 15 insertions(+), 6 deletions(-)
-
-diff --git a/src/dnsmasq.h b/src/dnsmasq.h
-index bf7685d..05c1743 100644
---- a/src/dnsmasq.h
-+++ b/src/dnsmasq.h
-@@ -1366,6 +1366,7 @@ void safe_pipe(int *fd, int read_noblock);
- void *whine_malloc(size_t size);
- int sa_len(union mysockaddr *addr);
- int sockaddr_isequal(const union mysockaddr *s1, const union mysockaddr *s2);
-+int hostname_order(const char *a, const char *b);
- int hostname_isequal(const char *a, const char *b);
- int hostname_issubdomain(char *a, char *b);
- time_t dnsmasq_time(void);
-diff --git a/src/domain-match.c b/src/domain-match.c
-index 6f59566..b457f5b 100644
---- a/src/domain-match.c
-+++ b/src/domain-match.c
-@@ -495,7 +495,7 @@ static int order(char *qdomain, size_t qlen, struct server *serv)
- if (qlen > dlen)
- return -1;
-
-- return strcmp(qdomain, serv->domain);
-+ return hostname_order(qdomain, serv->domain);
- }
-
- static int order_servers(struct server *s1, struct server *s2)
-diff --git a/src/util.c b/src/util.c
-index 7bef630..f2adac1 100644
---- a/src/util.c
-+++ b/src/util.c
-@@ -352,7 +352,7 @@ int sa_len(union mysockaddr *addr)
- }
-
- /* don't use strcasecmp and friends here - they may be messed up by LOCALE */
--int hostname_isequal(const char *a, const char *b)
-+int hostname_order(const char *a, const char *b)
- {
- unsigned int c1, c2;
-
-@@ -365,11 +365,19 @@ int hostname_isequal(const char *a, const char *b)
- if (c2 >= 'A' && c2 <= 'Z')
- c2 += 'a' - 'A';
-
-- if (c1 != c2)
-- return 0;
-+ if (c1 < c2)
-+ return -1;
-+ else if (c1 > c2)
-+ return 1;
-+
- } while (c1);
-
-- return 1;
-+ return 0;
-+}
-+
-+int hostname_isequal(const char *a, const char *b)
-+{
-+ return hostname_order(a, b) == 0;
- }
-
- /* is b equal to or a subdomain of a return 2 for equal, 1 for subdomain */
---
-2.20.1
-
diff --git a/main/dnsmasq/0023-Optimize-inserting-records-into-server-list.patch b/main/dnsmasq/0023-Optimize-inserting-records-into-server-list.patch
deleted file mode 100644
index c9b8b2b7c65..00000000000
--- a/main/dnsmasq/0023-Optimize-inserting-records-into-server-list.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-Patch-Source: https://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commitdiff;h=eb88eed1fc8ed246e9355531c2715fa2f7738afc
-This patch is needed for 0024-Fix-massive-confusion-on-server-reload.patch.
---
-From eb88eed1fc8ed246e9355531c2715fa2f7738afc Mon Sep 17 00:00:00 2001
-From: hev <r@hev.cc>
-Date: Sun, 19 Sep 2021 18:56:08 +0800
-Subject: [PATCH 1/1] Optimize inserting records into server list.
-
-Signed-off-by: hev <r@hev.cc>
----
- src/dnsmasq.h | 2 +-
- src/domain-match.c | 17 ++++++++---------
- 2 files changed, 9 insertions(+), 10 deletions(-)
-
-diff --git a/src/dnsmasq.h b/src/dnsmasq.h
-index 327ad65..639c568 100644
---- a/src/dnsmasq.h
-+++ b/src/dnsmasq.h
-@@ -1105,7 +1105,7 @@ extern struct daemon {
- char *lease_change_command;
- struct iname *if_names, *if_addrs, *if_except, *dhcp_except, *auth_peers, *tftp_interfaces;
- struct bogus_addr *bogus_addr, *ignore_addr;
-- struct server *servers, *local_domains, **serverarray, *no_rebind;
-+ struct server *servers, *servers_tail, *local_domains, **serverarray, *no_rebind;
- int server_has_wildcard;
- int serverarraysz, serverarrayhwm;
- struct ipsets *ipsets;
-diff --git a/src/domain-match.c b/src/domain-match.c
-index 8f29621..3f1cc74 100644
---- a/src/domain-match.c
-+++ b/src/domain-match.c
-@@ -576,7 +576,10 @@ void cleanup_servers(void)
- free(serv);
- }
- else
-- up = &serv->next;
-+ {
-+ up = &serv->next;
-+ daemon->servers_tail = serv;
-+ }
- }
-
- for (serv = daemon->local_domains, up = &daemon->local_domains; serv; serv = tmp)
-@@ -673,18 +676,14 @@ int add_update_server(int flags,
- }
- else
- {
-- struct server *s;
--
- memset(serv, 0, sizeof(struct server));
-
- /* Add to the end of the chain, for order */
-- if (!daemon->servers)
-- daemon->servers = serv;
-+ if (daemon->servers_tail)
-+ daemon->servers_tail->next = serv;
- else
-- {
-- for (s = daemon->servers; s->next; s = s->next);
-- s->next = serv;
-- }
-+ daemon->servers = serv;
-+ daemon->servers_tail = serv;
-
- #ifdef HAVE_LOOP
- serv->uid = rand32();
---
-2.20.1
-
diff --git a/main/dnsmasq/0024-Fix-massive-confusion-on-server-reload.patch b/main/dnsmasq/0024-Fix-massive-confusion-on-server-reload.patch
deleted file mode 100644
index 1c2ae0deff9..00000000000
--- a/main/dnsmasq/0024-Fix-massive-confusion-on-server-reload.patch
+++ /dev/null
@@ -1,238 +0,0 @@
-Patch-Source: https://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commitdiff;h=553c4c99cca173e9964d0edbd0676ed96c30f62b (modified)
---
-From 553c4c99cca173e9964d0edbd0676ed96c30f62b Mon Sep 17 00:00:00 2001
-From: Simon Kelley <simon@thekelleys.org.uk>
-Date: Mon, 3 Jan 2022 23:32:30 +0000
-Subject: [PATCH 1/1] Fix massive confusion on server reload.
-
-The 2.86 upstream server rewrite severely broke re-reading
-of server configuration. It would get everyting right the first
-time, but on re-reading /etc/resolv.conf or --servers-file
-or setting things with DBUS, the results were just wrong.
-
-This should put things right again.
----
- src/domain-match.c | 157 +++++++++++++++++++++++++--------------------
- 1 file changed, 88 insertions(+), 69 deletions(-)
-
-diff --git a/src/domain-match.c b/src/domain-match.c
-index b457f5b..4e01092 100644
---- a/src/domain-match.c
-+++ b/src/domain-match.c
-@@ -543,22 +542,39 @@ static int order_qsort(const void *a, const void *b)
- return rc;
- }
-
-+/* Must be called before add_update_server() to set daemon->servers_tail */
- void mark_servers(int flag)
- {
-- struct server *serv;
-+ struct server *serv, **up;
-
-+ daemon->servers_tail = NULL;
-+
- /* mark everything with argument flag */
- for (serv = daemon->servers; serv; serv = serv->next)
-- if (serv->flags & flag)
-- serv->flags |= SERV_MARK;
-- else
-- serv->flags &= ~SERV_MARK;
-+ {
-+ if (serv->flags & flag)
-+ serv->flags |= SERV_MARK;
-+ else
-+ serv->flags &= ~SERV_MARK;
-
-- for (serv = daemon->local_domains; serv; serv = serv->next)
-- if (serv->flags & flag)
-- serv->flags |= SERV_MARK;
-- else
-- serv->flags &= ~SERV_MARK;
-+ daemon->servers_tail = serv;
-+ }
-+
-+ /* --address etc is different: since they are expected to be
-+ 1) numerous and 2) not reloaded often. We just delete
-+ and recreate. */
-+ if (flag)
-+ for (serv = daemon->local_domains, up = &daemon->local_domains; serv; serv = serv->next)
-+ {
-+ if (serv->flags & flag)
-+ {
-+ *up = serv->next;
-+ free(serv->domain);
-+ free(serv);
-+ }
-+ else
-+ up = &serv->next;
-+ }
- }
-
- void cleanup_servers(void)
-@@ -566,7 +583,7 @@ void cleanup_servers(void)
- struct server *serv, *tmp, **up;
-
- /* unlink and free anything still marked. */
-- for (serv = daemon->servers, up = &daemon->servers; serv; serv = tmp)
-+ for (serv = daemon->servers, up = &daemon->servers, daemon->servers_tail = NULL; serv; serv = tmp)
- {
- tmp = serv->next;
- if (serv->flags & SERV_MARK)
-@@ -582,19 +599,6 @@ void cleanup_servers(void)
- daemon->servers_tail = serv;
- }
- }
--
-- for (serv = daemon->local_domains, up = &daemon->local_domains; serv; serv = tmp)
-- {
-- tmp = serv->next;
-- if (serv->flags & SERV_MARK)
-- {
-- *up = serv->next;
-- free(serv->domain);
-- free(serv);
-- }
-- else
-- up = &serv->next;
-- }
-
- /* If we're delaying things, we don't call check_servers(), but
- reload_servers() may have deleted some servers, rendering the server_array
-@@ -634,35 +640,16 @@ int add_update_server(int flags,
- if (!alloc_domain)
- return 0;
-
-- /* See if there is a suitable candidate, and unmark
-- only do this for forwarding servers, not
-- address or local, to avoid delays on large numbers. */
- if (flags & SERV_IS_LOCAL)
-- for (serv = daemon->servers; serv; serv = serv->next)
-- if ((serv->flags & SERV_MARK) &&
-- hostname_isequal(alloc_domain, serv->domain))
-- break;
--
-- if (serv)
- {
-- free(alloc_domain);
-- alloc_domain = serv->domain;
-- }
-- else
-- {
- size_t size;
--
-- if (flags & SERV_IS_LOCAL)
-- {
-- if (flags & SERV_6ADDR)
-- size = sizeof(struct serv_addr6);
-- else if (flags & SERV_4ADDR)
-- size = sizeof(struct serv_addr4);
-- else
-- size = sizeof(struct serv_local);
-- }
-+
-+ if (flags & SERV_6ADDR)
-+ size = sizeof(struct serv_addr6);
-+ else if (flags & SERV_4ADDR)
-+ size = sizeof(struct serv_addr4);
- else
-- size = sizeof(struct server);
-+ size = sizeof(struct serv_local);
-
- if (!(serv = whine_malloc(size)))
- {
-@@ -670,19 +655,53 @@ int add_update_server(int flags,
- return 0;
- }
-
-- if (flags & SERV_IS_LOCAL)
-+ serv->next = daemon->local_domains;
-+ daemon->local_domains = serv;
-+
-+ if (flags & SERV_4ADDR)
-+ ((struct serv_addr4*)serv)->addr = local_addr->addr4;
-+
-+ if (flags & SERV_6ADDR)
-+ ((struct serv_addr6*)serv)->addr = local_addr->addr6;
-+ }
-+ else
-+ {
-+ /* Upstream servers. See if there is a suitable candidate, if so unmark
-+ and move to the end of the list, for order. The entry found may already
-+ be at the end. */
-+ struct server **up, *tmp;
-+
-+ for (serv = daemon->servers, up = &daemon->servers; serv; serv = tmp)
- {
-- serv->next = daemon->local_domains;
-- daemon->local_domains = serv;
-+ tmp = serv->next;
-+ if ((serv->flags & SERV_MARK) &&
-+ hostname_isequal(alloc_domain, serv->domain))
-+ {
-+ /* Need to move down? */
-+ if (serv->next)
-+ {
-+ *up = serv->next;
-+ daemon->servers_tail->next = serv;
-+ daemon->servers_tail = serv;
-+ serv->next = NULL;
-+ }
-+ break;
-+ }
-+ }
-
-- if (flags & SERV_4ADDR)
-- ((struct serv_addr4*)serv)->addr = local_addr->addr4;
--
-- if (flags & SERV_6ADDR)
-- ((struct serv_addr6*)serv)->addr = local_addr->addr6;
-+ if (serv)
-+ {
-+ free(alloc_domain);
-+ alloc_domain = serv->domain;
- }
- else
- {
-+ if (!(serv = whine_malloc(sizeof(struct server))))
-+ {
-+ free(alloc_domain);
-+ return 0;
-+ }
-+
- memset(serv, 0, sizeof(struct server));
-
- /* Add to the end of the chain, for order */
-@@ -691,20 +710,20 @@ int add_update_server(int flags,
- else
- daemon->servers = serv;
- daemon->servers_tail = serv;
--
-+ }
-+
- #ifdef HAVE_LOOP
-- serv->uid = rand32();
-+ serv->uid = rand32();
- #endif
-
-- if (interface)
-- safe_strncpy(serv->interface, interface, sizeof(serv->interface));
-- if (addr)
-- serv->addr = *addr;
-- if (source_addr)
-- serv->source_addr = *source_addr;
-- }
-+ if (interface)
-+ safe_strncpy(serv->interface, interface, sizeof(serv->interface));
-+ if (addr)
-+ serv->addr = *addr;
-+ if (source_addr)
-+ serv->source_addr = *source_addr;
- }
--
-+
- serv->flags = flags;
- serv->domain = alloc_domain;
- serv->domain_len = strlen(alloc_domain);
---
-2.20.1
-
diff --git a/main/dnsmasq/0025-reuse-server.patch b/main/dnsmasq/0025-reuse-server.patch
deleted file mode 100644
index c6264bf27ba..00000000000
--- a/main/dnsmasq/0025-reuse-server.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-Patch-Source: https://src.fedoraproject.org/rpms/dnsmasq/blob/f36/f/dnsmasq-2.87-reuse-server.patch (modified)
---
-From f0d061c9977d6c9bc2ddd4e6cf6ffe1ed9cd285a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
-Date: Fri, 17 Jun 2022 11:40:56 +0200
-Subject: [PATCH] Correct add_update_server losing first unmarked entries
-
-Beginning of servers list were updated when first server(s) record is
-not marked. That was a mistake, which forgot updating also up pointer to
-correct value. Move that loop to separate reuse_server function, which
-is close to similar loop in cleanup_servers. Makes it easier to compare
-and do correct. Removed tmp variable, because this code does not
-invalidate previous serv pointer.
-
-Modified for 2.86
----
- src/domain-match.c | 52 ++++++++++++++++++++++++++--------------------
- 1 file changed, 29 insertions(+), 23 deletions(-)
-
-diff --git a/src/domain-match.c b/src/domain-match.c
-index f4fd093..8409c4d 100644
---- a/src/domain-match.c
-+++ b/src/domain-match.c
-@@ -607,6 +607,33 @@
- build_server_array();
- }
-
-+/* Upstream servers. See if there is a suitable candidate, if so unmark
-+ and move to the end of the list, for order. The entry found may already
-+ be at the end. */
-+static struct server *reuse_server(char *alloc_domain)
-+{
-+ struct server **up, *serv;
-+
-+ for (serv = daemon->servers, up = &daemon->servers; serv; serv = serv->next)
-+ {
-+ if ((serv->flags & SERV_MARK) &&
-+ hostname_isequal(alloc_domain, serv->domain))
-+ {
-+ /* Need to move down? */
-+ if (serv->next)
-+ {
-+ *up = serv->next;
-+ daemon->servers_tail->next = serv;
-+ daemon->servers_tail = serv;
-+ serv->next = NULL;
-+ }
-+ return serv;
-+ }
-+ up = &serv->next;
-+ }
-+ return NULL;
-+}
-+
- int add_update_server(int flags,
- union mysockaddr *addr,
- union mysockaddr *source_addr,
-@@ -666,28 +693,7 @@
- }
- else
- {
-- /* Upstream servers. See if there is a suitable candidate, if so unmark
-- and move to the end of the list, for order. The entry found may already
-- be at the end. */
-- struct server **up, *tmp;
--
-- for (serv = daemon->servers, up = &daemon->servers; serv; serv = tmp)
-- {
-- tmp = serv->next;
-- if ((serv->flags & SERV_MARK) &&
-- hostname_isequal(alloc_domain, serv->domain))
-- {
-- /* Need to move down? */
-- if (serv->next)
-- {
-- *up = serv->next;
-- daemon->servers_tail->next = serv;
-- daemon->servers_tail = serv;
-- serv->next = NULL;
-- }
-- break;
-- }
-- }
-+ serv = reuse_server(alloc_domain);
-
- if (serv)
- {
diff --git a/main/dnsmasq/APKBUILD b/main/dnsmasq/APKBUILD
index be89d141df6..38a1a1dfeed 100644
--- a/main/dnsmasq/APKBUILD
+++ b/main/dnsmasq/APKBUILD
@@ -1,12 +1,12 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
pkgname=dnsmasq
-pkgver=2.86
-pkgrel=5
+pkgver=2.90
+pkgrel=2
pkgdesc="A lightweight DNS, DHCP, RA, TFTP and PXE server"
url="https://www.thekelleys.org.uk/dnsmasq/"
arch="all"
-license="GPL-2.0-only OR GPL-3.0-only"
+license="GPL-2.0-or-later"
depends="$pkgname-common=$pkgver-r$pkgrel"
makedepends="
coreutils
@@ -19,6 +19,8 @@ install="
$pkgname.pre-upgrade
$pkgname-dnssec.pre-install
$pkgname-dnssec.pre-upgrade
+ $pkgname-dnssec-dbus.pre-install
+ $pkgname-dnssec-dbus.pre-upgrade
"
subpackages="
$pkgname-doc
@@ -26,31 +28,13 @@ subpackages="
$pkgname-dnssec-dbus
$pkgname-openrc
$pkgname-common::noarch
+ $pkgname-utils
+ $pkgname-utils-doc:utils_doc:noarch
"
source="https://www.thekelleys.org.uk/dnsmasq/dnsmasq-$pkgver.tar.xz
0000-underflow.patch
- 0001-Retry-on-interrupted-error-in-tftp.patch
- 0002-Add-safety-checks-to-places-pointed-by-Coverity.patch
- 0003-Small-safeguard-to-unexpected-data.patch
- 0004-Fix-bunch-of-warnings-in-auth.c.patch
- 0005-Fix-few-coverity-warnings-in-lease-tools.patch
- 0006-Fix-coverity-formats-issues-in-blockdata.patch
- 0007-Retry-dhcp6-ping-on-interrupts.patch
- 0008-Fix-coverity-warnings-on-dbus.patch
- 0009-Address-coverity-issues-detected-in-util.c.patch
- 0010-Fix-coverity-detected-issues-in-option.c.patch
- 0011-Fix-coverity-detected-issue-in-radv.c.patch
- 0012-Fix-coverity-detected-issues-in-cache.c.patch
- 0013-Fix-coverity-issues-detected-in-domain-match.c.patch
- 0014-Fix-coverity-detected-issues-in-dnsmasq.c.patch
- 0015-Fix-coverity-issues-in-dnssec.c.patch
- 0020-fix-domain-match-local.patch
- 0021-build_server_array.patch
- 0022-Fix-problems-with-upper-case-in-domain-match.patch
- 0023-Optimize-inserting-records-into-server-list.patch
- 0024-Fix-massive-confusion-on-server-reload.patch
- 0025-reuse-server.patch
- CVE-2022-0934.patch
+ 0001-Fix-infinite-loop-when-invoking-SetFilterA-dbus-meth.patch
+ 0002-Fix-breakage-in-DBus-FilterA-and-FilterAAAA-methods.patch
config.h.patch
dnsmasq.conf.patch
@@ -59,6 +43,11 @@ source="https://www.thekelleys.org.uk/dnsmasq/dnsmasq-$pkgver.tar.xz
"
# secfixes:
+# 2.90-r0:
+# - CVE-2023-50387
+# - CVE-2023-50868
+# 2.89-r3:
+# - CVE-2023-28450
# 2.86-r1:
# - CVE-2022-0934
# 2.85-r0:
@@ -85,13 +74,17 @@ source="https://www.thekelleys.org.uk/dnsmasq/dnsmasq-$pkgver.tar.xz
# - CVE-2017-14496
build() {
- make CFLAGS="$CFLAGS" COPTS="-DHAVE_DNSSEC" all
+ export CFLAGS="$CFLAGS -flto=auto"
+ make LDFLAGS="$LDFLAGS" CFLAGS="$CFLAGS" COPTS="-DHAVE_DNSSEC" all
mv src/dnsmasq src/dnsmasq~dnssec
- make CFLAGS="$CFLAGS" COPTS="-DHAVE_DNSSEC -DHAVE_DBUS" all
+ make LDFLAGS="$LDFLAGS" CFLAGS="$CFLAGS" COPTS="-DHAVE_DNSSEC -DHAVE_DBUS" all
mv src/dnsmasq src/dnsmasq~dbus
- make CFLAGS="$CFLAGS" clean all
+ make LDFLAGS="$LDFLAGS" CFLAGS="$CFLAGS" clean all
+
+ cd contrib/lease-tools/
+ make LDFLAGS="$LDFLAGS" CFLAGS="$CFLAGS" clean all
}
# dnsmasq doesn't provide any test suite (shame on them!), so just check that
@@ -148,31 +141,32 @@ openrc() {
install_if="openrc $pkgname-common=$pkgver-r$pkgrel"
}
+utils() {
+ pkgdesc="$pkgdesc - contrib utilities"
+ depends="$pkgname=$pkgver-r$pkgrel"
+
+ install -Dm755 -t "$subpkgdir"/usr/bin/ \
+ "$builddir"/contrib/lease-tools/dhcp_release \
+ "$builddir"/contrib/lease-tools/dhcp_release6 \
+ "$builddir"/contrib/lease-tools/dhcp_lease_time
+}
+
+utils_doc() {
+ pkgdesc="$pkgdesc - contrib utilities (documentation)"
+ install_if="$pkgname-utils=$pkgver-r$pkgrel docs"
+
+ install -Dm644 -t "$subpkgdir"/usr/share/man/man1/ \
+ "$builddir"/contrib/lease-tools/dhcp_release.1 \
+ "$builddir"/contrib/lease-tools/dhcp_release6.1 \
+ "$builddir"/contrib/lease-tools/dhcp_lease_time.1
+ gzip -9 "$subpkgdir"/usr/share/man/man1/*.1
+}
+
sha512sums="
-487eae0afbc8bb3d5282a729ffb0cb2c9bdc7d8e46e2e8aa114cd7c5d82e0fd66f49926e7fa4028577548d6f57e8a865aca17f33963a589874584d608ab2deaf dnsmasq-2.86.tar.xz
-bae115897d25aa1eec1d7e60f7faa6c1c50685fce7f7decc2296256c2d26cb3cd104935b81bbfc58536ee6c44ae4ba350b022d0f9ea2798b0dc391a498258063 0000-underflow.patch
-da45c81c475666936895a582d957495fb16034ee7d474d6f1b5751edc1f2f581eda020401a938aafa70bfd239a551d6acaf545e9c79674b9a6841d2c7f827df0 0001-Retry-on-interrupted-error-in-tftp.patch
-9e82f19b808954211c1deb1b2e648236c161fc7b9c8a6796c5ecf3a37e7b13a76b83fe13a2bf5a20f62d78ac789102cae96925c1e40bd13ec2968831805ff9c6 0002-Add-safety-checks-to-places-pointed-by-Coverity.patch
-e3d40e71e93b417429c15a6a7d15b9dd7441e8235651f457e66ff509a3fc1144b53ba3e3425b97d909301c38c15091e942ef822e53ab81900472d20ecee30e75 0003-Small-safeguard-to-unexpected-data.patch
-990ab720de1940794829e9830e01de71b0c7bf36ccfcf32b109533d0dd25efce63612ba612a611fc065e0634240e9252a905973dc0a5beb614088990c0a5b658 0004-Fix-bunch-of-warnings-in-auth.c.patch
-3d24d216dad94f272d7a7b724e14d4a86e9eb2a6d9088a18b8821b5bc61675397acb5134b0349cbce57ae3f42396d922d801b41514202f78bbdfdf785dbeb5bf 0005-Fix-few-coverity-warnings-in-lease-tools.patch
-aa558bd2356c3d820425132d1e26039bc8ed1782cde6e421a363ae405c8a7a044253d74bd9bf2b0e3728b06d1f5ca0a1a5102f79fea4ee1f54298111e796f05a 0006-Fix-coverity-formats-issues-in-blockdata.patch
-aadb1cb9f7d21b1a083fc664e060a1509cbbe00549ea6466faf92887044e7bca58cf2cbddb82b70cbfe2fbf7a082e7a89d266c8ddc7b7a7dab793c9f99522457 0007-Retry-dhcp6-ping-on-interrupts.patch
-ccace656e7abbc97f6709a642e9fb7875bb220f3e8ff89a601e703ac5143401ccb0a365971c7effb11b9a5b710733011bc1d39b4dde7996321053b9d08faca26 0008-Fix-coverity-warnings-on-dbus.patch
-39e4b52b25e3223f5803f73f721a597bfe8cb5df96aa5e0fdfda62672380c55301821a610e11e167a0eca44bf2cd4c45f995b79e19e9cd0f2c62d89f8451935b 0009-Address-coverity-issues-detected-in-util.c.patch
-462996c6f0f278fad95156f5bae059f34384849f5602af674d073f29b889d2cbf993717641dc6ab02de4e0195fb22d8b440495272271c4969011151068888cf2 0010-Fix-coverity-detected-issues-in-option.c.patch
-09167fa3ee06d7686f83639a70fd97d3b50d8ccb8bcef57a99905536fd9f53f00b3019a29b96715bab19ec0129babdc4ebe360d5439f5902f4cddff0a6fc4c54 0011-Fix-coverity-detected-issue-in-radv.c.patch
-a60d537ab2f89cff05fbbf02c0b7167b823b0e024b70b80d69828bf111875ea8c238448ffad4ef8f67a1be5cd2be5751ab5a8b489ba34f57f3d3074d5832001e 0012-Fix-coverity-detected-issues-in-cache.c.patch
-edc4cbec2b506a995ed454903972aed130577c8dd04c218999023e6c1830ed8ba4b77926b60c7f19a7b03550eed3ba18f4ce68ec4760650ccbbcedfa1f3ea0c7 0013-Fix-coverity-issues-detected-in-domain-match.c.patch
-6383a7a4ec6f11468bd416b9b96ecc35fd291f439a80230aa773186aa31894a898d776c651ab68dd8f3517bceebee81536c3523c648d6a795b1207555992deb7 0014-Fix-coverity-detected-issues-in-dnsmasq.c.patch
-7af46affcff002361d3412f0448d428b37299e6fda1c335bae4947a9ea29e1709a041df21e5376a474946a6b46ff00994abd2d56fdc4946facb93daffcac42ba 0015-Fix-coverity-issues-in-dnssec.c.patch
-dcd8bac303c8988a5096996d395b6ffd1a98ba5e5b48591dac3250bdb95eef7f3e9fe5800150ea49877abb76b588c409db3d4db2f04f28a359a1dd069b2d6c7a 0020-fix-domain-match-local.patch
-f511a279c776e125530747c9df3e92b93af39cdfc1861e0ad53ddf7c41e091f09b51aba56ce3dcb06a2e4d60962aee81288d6157d0f4355cc6586f0ef67f6c4f 0021-build_server_array.patch
-2b639d3355221eedd462b59a79535b9ce1787be08d88e7f30dc7e7d77d50e5652378acaa297d63dd793cc46d5cf8de6529c9fe9c694ff6edc67358165a6b117b 0022-Fix-problems-with-upper-case-in-domain-match.patch
-7a5bbdd0bf8b9ab188f46d3ef4c5aaa860256e48b5e3363bbc4639d1b279d4209490ae54317a1d33e1d238482796e8cc6181fcf80365ce6dfad394eab47c5558 0023-Optimize-inserting-records-into-server-list.patch
-6cfd44add1214d4f9d9504edacb2a0ce3ece371b2a44966cda0446884386a70234cafc5aee52ddc15be8252439e3aab15780eb21c48f85ed73d9e858c37aa76f 0024-Fix-massive-confusion-on-server-reload.patch
-41e36c721d47799711cd5f8fc6099a3fd53534ce052b59d58d40f457561ab5759ee443d0b043fcb105e0ca1ad0a241fd0a689560ed675a3d586cab4d38c38fc3 0025-reuse-server.patch
-b04ad7a5019a64feb9e4237e5fbc4f2dc1b1ae12c092222a5e14099566022f17aa4eb9139f69a5a778166c6a096e311ab5ec6ce44fff8409f7df5f5ab86bdd60 CVE-2022-0934.patch
+e169de1892f935e219b0f49d90107f95cba42b40bca20bd3c973313c2cd4df58b929af6628cd988419051d81c3b4ccf8e9f816274df7d0840e79f5bf49602442 dnsmasq-2.90.tar.xz
+5083bbe7150276d2226ba4b5bab73c513fe7baf4843b85d83d1ab16cb50e2dcc1dbd9ed04a89e2f9ea61796b12ea36206cc49a2574ce75abb37cb46279bd9aeb 0000-underflow.patch
+b4ced1017f7157f4b363e642d84b3e100ae1a4927f2de39f5d165bcb4df85b1c562f9e47ec66123703134c15adf90695e8b08baaa791d32889f6933ade22357a 0001-Fix-infinite-loop-when-invoking-SetFilterA-dbus-meth.patch
+e8f75c903d97898bf5d42cbd8712eac355922b80809a410ac5b295c70d5c5642a4108a3ae3d665b18e492470badbe29b2676735d1554dc79439d909cfd9a4be5 0002-Fix-breakage-in-DBus-FilterA-and-FilterAAAA-methods.patch
d0274417019af84911f3f4a850e785797bdc77732fd93504fe21db7317a874d2ab54bf7a211d000a751cdc43e225a30be4c1a315ab2383fc3fcc619e436aed97 config.h.patch
41679e0e889607896dcf7fdeb179b9b7a79095c9f86aebda131ac09c12e3ef2a94cece0018ab33ea08d3e6f6bbae44379e9d6fb8987fae29e68ecad952ccdd45 dnsmasq.conf.patch
0c609a55ca0140d8f31f8f6eb4cb96eca7bc76385d48739998bea926b409f3d72cbfdffc30ad3f9e3a62db4ea3280f7fe6a60a12fc091164814a7cdf6a14b307 dnsmasq.initd
diff --git a/main/dnsmasq/CVE-2022-0934.patch b/main/dnsmasq/CVE-2022-0934.patch
deleted file mode 100644
index 13816267ab9..00000000000
--- a/main/dnsmasq/CVE-2022-0934.patch
+++ /dev/null
@@ -1,189 +0,0 @@
-Patch-Source: https://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=commit;h=03345ecefeb0d82e3c3a4c28f27c3554f0611b39 (upstream)
---
-From 03345ecefeb0d82e3c3a4c28f27c3554f0611b39 Mon Sep 17 00:00:00 2001
-From: Simon Kelley <simon@thekelleys.org.uk>
-Date: Thu, 31 Mar 2022 21:35:20 +0100
-Subject: [PATCH] Fix write-after-free error in DHCPv6 code. CVE-2022-0934
- refers.
-
----
- CHANGELOG | 3 +++
- src/rfc3315.c | 48 +++++++++++++++++++++++++++---------------------
- 2 files changed, 30 insertions(+), 21 deletions(-)
-
-diff --git a/CHANGELOG b/CHANGELOG
-index 87d6c2b..4bc7fb1 100644
---- a/CHANGELOG
-+++ b/CHANGELOG
-@@ -55,6 +55,9 @@ version 2.87
- doesn't require hard-coding addresses. Thanks to Sten Spans for
- the idea.
-
-+ Fix write-after-free error in DHCPv6 server code.
-+ CVE-2022-0934 refers.
-+
-
- version 2.86
- Handle DHCPREBIND requests in the DHCPv6 server code.
-diff --git a/src/rfc3315.c b/src/rfc3315.c
-index cee8382..e218d26 100644
---- a/src/rfc3315.c
-+++ b/src/rfc3315.c
-@@ -33,9 +33,9 @@ struct state {
- unsigned int mac_len, mac_type;
- };
-
--static int dhcp6_maybe_relay(struct state *state, void *inbuff, size_t sz,
-+static int dhcp6_maybe_relay(struct state *state, unsigned char *inbuff, size_t sz,
- struct in6_addr *client_addr, int is_unicast, time_t now);
--static int dhcp6_no_relay(struct state *state, int msg_type, void *inbuff, size_t sz, int is_unicast, time_t now);
-+static int dhcp6_no_relay(struct state *state, int msg_type, unsigned char *inbuff, size_t sz, int is_unicast, time_t now);
- static void log6_opts(int nest, unsigned int xid, void *start_opts, void *end_opts);
- static void log6_packet(struct state *state, char *type, struct in6_addr *addr, char *string);
- static void log6_quiet(struct state *state, char *type, struct in6_addr *addr, char *string);
-@@ -104,12 +104,12 @@ unsigned short dhcp6_reply(struct dhcp_context *context, int interface, char *if
- }
-
- /* This cost me blood to write, it will probably cost you blood to understand - srk. */
--static int dhcp6_maybe_relay(struct state *state, void *inbuff, size_t sz,
-+static int dhcp6_maybe_relay(struct state *state, unsigned char *inbuff, size_t sz,
- struct in6_addr *client_addr, int is_unicast, time_t now)
- {
- void *end = inbuff + sz;
- void *opts = inbuff + 34;
-- int msg_type = *((unsigned char *)inbuff);
-+ int msg_type = *inbuff;
- unsigned char *outmsgtypep;
- void *opt;
- struct dhcp_vendor *vendor;
-@@ -259,15 +259,15 @@ static int dhcp6_maybe_relay(struct state *state, void *inbuff, size_t sz,
- return 1;
- }
-
--static int dhcp6_no_relay(struct state *state, int msg_type, void *inbuff, size_t sz, int is_unicast, time_t now)
-+static int dhcp6_no_relay(struct state *state, int msg_type, unsigned char *inbuff, size_t sz, int is_unicast, time_t now)
- {
- void *opt;
-- int i, o, o1, start_opts;
-+ int i, o, o1, start_opts, start_msg;
- struct dhcp_opt *opt_cfg;
- struct dhcp_netid *tagif;
- struct dhcp_config *config = NULL;
- struct dhcp_netid known_id, iface_id, v6_id;
-- unsigned char *outmsgtypep;
-+ unsigned char outmsgtype;
- struct dhcp_vendor *vendor;
- struct dhcp_context *context_tmp;
- struct dhcp_mac *mac_opt;
-@@ -296,12 +296,13 @@ static int dhcp6_no_relay(struct state *state, int msg_type, void *inbuff, size_
- v6_id.next = state->tags;
- state->tags = &v6_id;
-
-- /* copy over transaction-id, and save pointer to message type */
-- if (!(outmsgtypep = put_opt6(inbuff, 4)))
-+ start_msg = save_counter(-1);
-+ /* copy over transaction-id */
-+ if (!put_opt6(inbuff, 4))
- return 0;
- start_opts = save_counter(-1);
-- state->xid = outmsgtypep[3] | outmsgtypep[2] << 8 | outmsgtypep[1] << 16;
--
-+ state->xid = inbuff[3] | inbuff[2] << 8 | inbuff[1] << 16;
-+
- /* We're going to be linking tags from all context we use.
- mark them as unused so we don't link one twice and break the list */
- for (context_tmp = state->context; context_tmp; context_tmp = context_tmp->current)
-@@ -347,7 +348,7 @@ static int dhcp6_no_relay(struct state *state, int msg_type, void *inbuff, size_
- (msg_type == DHCP6REQUEST || msg_type == DHCP6RENEW || msg_type == DHCP6RELEASE || msg_type == DHCP6DECLINE))
-
- {
-- *outmsgtypep = DHCP6REPLY;
-+ outmsgtype = DHCP6REPLY;
- o1 = new_opt6(OPTION6_STATUS_CODE);
- put_opt6_short(DHCP6USEMULTI);
- put_opt6_string("Use multicast");
-@@ -619,11 +620,11 @@ static int dhcp6_no_relay(struct state *state, int msg_type, void *inbuff, size_
- struct dhcp_netid *solicit_tags;
- struct dhcp_context *c;
-
-- *outmsgtypep = DHCP6ADVERTISE;
-+ outmsgtype = DHCP6ADVERTISE;
-
- if (opt6_find(state->packet_options, state->end, OPTION6_RAPID_COMMIT, 0))
- {
-- *outmsgtypep = DHCP6REPLY;
-+ outmsgtype = DHCP6REPLY;
- state->lease_allocate = 1;
- o = new_opt6(OPTION6_RAPID_COMMIT);
- end_opt6(o);
-@@ -809,7 +810,7 @@ static int dhcp6_no_relay(struct state *state, int msg_type, void *inbuff, size_
- int start = save_counter(-1);
-
- /* set reply message type */
-- *outmsgtypep = DHCP6REPLY;
-+ outmsgtype = DHCP6REPLY;
- state->lease_allocate = 1;
-
- log6_quiet(state, "DHCPREQUEST", NULL, ignore ? _("ignored") : NULL);
-@@ -924,7 +925,7 @@ static int dhcp6_no_relay(struct state *state, int msg_type, void *inbuff, size_
- int address_assigned = 0;
-
- /* set reply message type */
-- *outmsgtypep = DHCP6REPLY;
-+ outmsgtype = DHCP6REPLY;
-
- log6_quiet(state, msg_type == DHCP6RENEW ? "DHCPRENEW" : "DHCPREBIND", NULL, NULL);
-
-@@ -1057,7 +1058,7 @@ static int dhcp6_no_relay(struct state *state, int msg_type, void *inbuff, size_
- int good_addr = 0;
-
- /* set reply message type */
-- *outmsgtypep = DHCP6REPLY;
-+ outmsgtype = DHCP6REPLY;
-
- log6_quiet(state, "DHCPCONFIRM", NULL, NULL);
-
-@@ -1121,7 +1122,7 @@ static int dhcp6_no_relay(struct state *state, int msg_type, void *inbuff, size_
- log6_quiet(state, "DHCPINFORMATION-REQUEST", NULL, ignore ? _("ignored") : state->hostname);
- if (ignore)
- return 0;
-- *outmsgtypep = DHCP6REPLY;
-+ outmsgtype = DHCP6REPLY;
- tagif = add_options(state, 1);
- break;
- }
-@@ -1130,7 +1131,7 @@ static int dhcp6_no_relay(struct state *state, int msg_type, void *inbuff, size_
- case DHCP6RELEASE:
- {
- /* set reply message type */
-- *outmsgtypep = DHCP6REPLY;
-+ outmsgtype = DHCP6REPLY;
-
- log6_quiet(state, "DHCPRELEASE", NULL, NULL);
-
-@@ -1195,7 +1196,7 @@ static int dhcp6_no_relay(struct state *state, int msg_type, void *inbuff, size_
- case DHCP6DECLINE:
- {
- /* set reply message type */
-- *outmsgtypep = DHCP6REPLY;
-+ outmsgtype = DHCP6REPLY;
-
- log6_quiet(state, "DHCPDECLINE", NULL, NULL);
-
-@@ -1275,7 +1276,12 @@ static int dhcp6_no_relay(struct state *state, int msg_type, void *inbuff, size_
- }
-
- }
--
-+
-+ /* Fill in the message type. Note that we store the offset,
-+ not a direct pointer, since the packet memory may have been
-+ reallocated. */
-+ ((unsigned char *)(daemon->outpacket.iov_base))[start_msg] = outmsgtype;
-+
- log_tags(tagif, state->xid);
- log6_opts(0, state->xid, daemon->outpacket.iov_base + start_opts, daemon->outpacket.iov_base + save_counter(-1));
-
---
-2.20.1
-
diff --git a/main/dnsmasq/dnsmasq-dnssec-dbus.pre-install b/main/dnsmasq/dnsmasq-dnssec-dbus.pre-install
new file mode 120000
index 00000000000..b456897a9ad
--- /dev/null
+++ b/main/dnsmasq/dnsmasq-dnssec-dbus.pre-install
@@ -0,0 +1 @@
+dnsmasq.pre-install \ No newline at end of file
diff --git a/main/dnsmasq/dnsmasq-dnssec-dbus.pre-upgrade b/main/dnsmasq/dnsmasq-dnssec-dbus.pre-upgrade
new file mode 120000
index 00000000000..b456897a9ad
--- /dev/null
+++ b/main/dnsmasq/dnsmasq-dnssec-dbus.pre-upgrade
@@ -0,0 +1 @@
+dnsmasq.pre-install \ No newline at end of file
diff --git a/main/dnssec-root/APKBUILD b/main/dnssec-root/APKBUILD
index c868c7a1716..a9d4f889a3a 100644
--- a/main/dnssec-root/APKBUILD
+++ b/main/dnssec-root/APKBUILD
@@ -3,7 +3,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=dnssec-root
pkgver=20190225
-pkgrel=1
+pkgrel=2
_commit=67c11662510f5e2db6e6517228e80b794950c43f
pkgdesc="The DNSSEC root key(s)"
url="https://www.iana.org/dnssec/"
diff --git a/main/dnstop/APKBUILD b/main/dnstop/APKBUILD
index 1a1d2ce5eff..534abe6e2e8 100644
--- a/main/dnstop/APKBUILD
+++ b/main/dnstop/APKBUILD
@@ -1,48 +1,34 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=dnstop
pkgver=20140915
-pkgrel=4
+pkgrel=7
pkgdesc="A DNS traffic capture utility"
url="http://dns.measurement-factory.com/tools/dnstop/"
arch="all"
license="BSD-3-Clause"
-depends=""
-depends_dev=""
makedepends="libpcap-dev ncurses-dev"
-install=""
subpackages="$pkgname-doc"
-source="http://dns.measurement-factory.com/tools/dnstop/src/$pkgname-$pkgver.tar.gz
+source="http://dns.measurement-factory.com/tools/dnstop/src/dnstop-$pkgver.tar.gz
musl-fix.patch
"
-
-_builddir="$srcdir"/$pkgname-$pkgver
-prepare() {
- local i
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
-}
+options="!check"
build() {
- cd "$_builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
- --mandir=/usr/share/man \
- || return 1
- make || return 1
+ --mandir=/usr/share/man
+ make
}
package() {
- cd "$_builddir"
mkdir -p "$pkgdir"/usr/bin "$pkgdir"/usr/share/man/man8
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
}
-sha512sums="902cf96f7366983cae4bf684e44fbe12f6e982cee8ff489329e25e1a13de60870d356906a99fee56c6da2258c4a39074a504389549c6c2e239a4ea94d8b9a65d dnstop-20140915.tar.gz
-8b1bcfb73f7acf8ab264f44a9fb3bb5bdc7b6beec3ea87ecf9d82898e83c5bd6e43bb12f6d72a9fe362c21210c4c2461c32bb23de03a938f20e2d7f0629f3a3d musl-fix.patch"
+sha512sums="
+902cf96f7366983cae4bf684e44fbe12f6e982cee8ff489329e25e1a13de60870d356906a99fee56c6da2258c4a39074a504389549c6c2e239a4ea94d8b9a65d dnstop-20140915.tar.gz
+8b1bcfb73f7acf8ab264f44a9fb3bb5bdc7b6beec3ea87ecf9d82898e83c5bd6e43bb12f6d72a9fe362c21210c4c2461c32bb23de03a938f20e2d7f0629f3a3d musl-fix.patch
+"
diff --git a/main/doas-sudo-shim/APKBUILD b/main/doas-sudo-shim/APKBUILD
index 01e84dab035..a616497ac72 100644
--- a/main/doas-sudo-shim/APKBUILD
+++ b/main/doas-sudo-shim/APKBUILD
@@ -3,15 +3,15 @@
pkgname=doas-sudo-shim
# Note: This should be always lower than pkgver of the real sudo!
pkgver=0.1.1
-pkgrel=0
+pkgrel=1
pkgdesc="A shim for the sudo command that utilizes doas"
url="https://github.com/jirutka/doas-sudo-shim"
arch="noarch"
license="ISC"
depends="cmd:doas"
-makedepends="asciidoctor"
+makedepends="asciidoctor doas"
subpackages="$pkgname-doc"
-source="https://github.com/jirutka/doas-sudo-shim/archive/v$pkgver/$pkgname-$pkgver.tar.gz
+source="https://github.com/jirutka/doas-sudo-shim/archive/v$pkgver/doas-sudo-shim-$pkgver.tar.gz
help-alpine.patch
"
options="!check" # no tests provided
@@ -22,6 +22,8 @@ build() {
package() {
depends="$depends !sudo" # this must not be defined on top-level
+ provides="sudo-virt"
+ provider_priority=1
make install DESTDIR="$pkgdir" PREFIX=/usr
}
diff --git a/main/doas/APKBUILD b/main/doas/APKBUILD
index 0db35ca88d7..a1b232f486c 100644
--- a/main/doas/APKBUILD
+++ b/main/doas/APKBUILD
@@ -1,18 +1,19 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=doas
pkgver=6.8.2
-pkgrel=3
+pkgrel=6
pkgdesc="OpenBSD's temporary privilege escalation tool"
url="https://github.com/Duncaen/OpenDoas"
arch="all"
license="ISC"
makedepends="bison"
subpackages="$pkgname-doc"
-install="$pkgname.post-install $pkgname.post-upgrade"
+install="$pkgname.post-upgrade"
source="$pkgname-$pkgver.tar.gz::https://github.com/Duncaen/OpenDoas/archive/v$pkgver.tar.gz
configuration-directory.patch
manpage-example-path.patch
change-PATH.patch
+ doas.conf
"
builddir="$srcdir/OpenDoas-$pkgver"
options="$options suid"
@@ -37,18 +38,17 @@ check() {
package() {
make install DESTDIR="$pkgdir"
- install -d "$pkgdir"/usr/share/doc/$pkgname
- cat > "$pkgdir"/usr/share/doc/$pkgname/doas.conf.example <<-EOF
- # see doas.conf(5) for configuration details
- # Uncomment to allow group "wheel" to become root
- # permit persist :wheel
- EOF
+ install -d -m 750 "$pkgdir"/etc/doas.d
+ install -m 640 "$srcdir"/doas.conf -t "$pkgdir"/etc/
+
+ install -D -m 644 "$srcdir"/doas.conf "$pkgdir"/usr/share/doc/$pkgname/doas.conf.example
}
sha512sums="
4a93ff477413c859ba2702e688fa4f83248fff85e61e12336838a1e9aa1a8d9963a9782e4bc5e58e8d04b86c2c8ceb6b235ae9d3b32b3e548a2514a43653137d doas-6.8.2.tar.gz
-1d30ebab975aa51717a46ca4f5c7ed66cb333931587e4cf57ac25c111a62821709e71bfef829d90f6aca04498480965e8d05d0e102e7197b5197e8f8c19a5591 configuration-directory.patch
+efad2866d9d3e26266bdb37555453a436aa88ff4b8877b2ba01f7446ea095d998313aa566cafba30d426c79968d3d4a610dfbaa2e33735ab60f1283c9d9fa4ef configuration-directory.patch
60efd196595bda2c4f036cd0080a8825a85fedcc7524c917304b342373863213b3c557b4336f1dab760f167fd8cc2a59b2e744d8a47ff8a8acebbe74b1328f4f manpage-example-path.patch
31a87aced097ea1189c2162172788cd27b82af318db3476e1c143d3c87d99e2aa6350f63b81361d0a54482ba8dd0cfd10928ff6074a4c66248a1ec815a274f68 change-PATH.patch
+b52a9cfe5cea9068db0f2ff09d2c2520a09603bd5cc5586031fcb2496a11b87c0b5ffc5bac2bfa9a9daafd04d9d3c8b3c93cf413a7b835c36a7a12bd60844598 doas.conf
"
diff --git a/main/doas/configuration-directory.patch b/main/doas/configuration-directory.patch
index 78e6fc348e8..1ab9b968d1e 100644
--- a/main/doas/configuration-directory.patch
+++ b/main/doas/configuration-directory.patch
@@ -1,21 +1,29 @@
-From 7de1d454bda06d68a04f4f2e48099398a7711ae9 Mon Sep 17 00:00:00 2001
+Patch-Source: https://github.com/Duncaen/OpenDoas/pull/71 (rebased + one extra commit)
+--
+From a6aa77d9f4b9ad4556e478d6779dbebd4143a98a Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Wed, 4 Aug 2021 04:47:04 -0600
-Subject: [PATCH 1/8] add --with-confdir feature
+Subject: [PATCH] add --with-confdir feature
This adds support for an /etc/doas.d configuration directory as discussed in #61. It is disabled by default.
----
- README.md | 9 +++++++
- configure | 8 +++++++
- doas.c | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
- parse.y | 3 ++-
- 4 files changed, 91 insertions(+), 1 deletion(-)
+diff --git a/GNUmakefile b/GNUmakefile
+index 9470202..22be971 100644
+--- a/GNUmakefile
++++ b/GNUmakefile
+@@ -27,6 +27,7 @@ install: ${PROG} ${PAM_DOAS} ${MAN}
+ [ -n "${PAM_DOAS}" ] && chmod 0644 ${DESTDIR}${PAMDIR}/doas || true
+ cp -f doas.1 ${DESTDIR}${MANDIR}/man1
+ cp -f doas.conf.5 ${DESTDIR}${MANDIR}/man5
++ cp -f doas.d.5 ${DESTDIR}${MANDIR}/man5
+
+ uninstall:
+ rm -f ${DESTDIR}${BINDIR}/${PROG}
diff --git a/README.md b/README.md
-index f15610c..f967eca 100644
+index 20ef9f2..92acded 100644
--- a/README.md
+++ b/README.md
-@@ -61,3 +61,12 @@ similar to sudo.
+@@ -43,3 +43,12 @@ similar to sudo.
See the comment block in `timestamp.c` for an in-depth description on how
timestamps are created and checked to be as safe as possible.
@@ -30,10 +38,10 @@ index f15610c..f967eca 100644
+`/etc/doas.conf` file is ignored.
\ No newline at end of file
diff --git a/configure b/configure
-index 1f92f01..a3078dc 100755
+index 1c5d989..22a078e 100755
--- a/configure
+++ b/configure
-@@ -27,6 +27,7 @@ usage: configure [options]
+@@ -28,6 +28,7 @@ usage: configure [options]
--without-shadow disable shadow support
--with-timestamp enable timestamp support
@@ -41,7 +49,7 @@ index 1f92f01..a3078dc 100755
--uid-max=NUM set UID_MAX (default 65535)
--gid-max=NUM set GID_MAX (default 65535)
-@@ -38,6 +39,7 @@ EOF
+@@ -39,6 +40,7 @@ EOF
# defaults
WITHOUT_TIMESTAMP=yes
@@ -49,7 +57,7 @@ index 1f92f01..a3078dc 100755
UID_MAX=65535
GID_MAX=65535
-@@ -56,6 +58,8 @@ for x; do
+@@ -58,6 +60,8 @@ for x; do
--target) TARGET=$var ;;
--enable-debug) DEBUG=yes ;;
--enable-static) BUILD_STATIC=yes ;;
@@ -58,7 +66,7 @@ index 1f92f01..a3078dc 100755
--with-pam) WITHOUT_PAM=; WITHOUT_SHADOW=yes ;;
--with-shadow) WITHOUT_SHADOW=; WITHOUT_PAM=yes ;;
--without-pam) WITHOUT_PAM=yes ;;
-@@ -558,4 +562,8 @@ fi
+@@ -565,4 +569,8 @@ fi
printf '#define DOAS_CONF "%s/doas.conf"\n' "${SYSCONFDIR}" >>$CONFIG_H
@@ -68,7 +76,7 @@ index 1f92f01..a3078dc 100755
+
printf '\n#endif /* CONFIG_H */\n' >>$CONFIG_H
diff --git a/doas.c b/doas.c
-index ac3a42a..58701b7 100644
+index ac3a42a..d77186b 100644
--- a/doas.c
+++ b/doas.c
@@ -35,6 +35,7 @@
@@ -96,7 +104,7 @@ index ac3a42a..58701b7 100644
if (checkperms) {
if (fstat(fileno(yyfp), &sb) != 0)
err(1, "fstat(\"%s\")", filename);
-@@ -174,11 +178,67 @@ parseconfig(const char *filename, int checkperms)
+@@ -174,11 +178,82 @@ parseconfig(const char *filename, int checkperms)
}
yyparse();
@@ -113,8 +121,13 @@ index ac3a42a..58701b7 100644
+{
+ struct stat sb;
+
-+ if (lstat(dirpath, &sb) != 0)
-+ err(1, "lstat(\"%s\")", dirpath);
++ if (lstat(dirpath, &sb) != 0) {
++ if (errno != ENOENT)
++ err(1, "lstat(\"%s\")", dirpath);
++
++ errno = ENOTDIR;
++ return 0;
++ }
+
+ if ((sb.st_mode & (S_IFMT)) == S_IFDIR)
+ return 1;
@@ -127,7 +140,7 @@ index ac3a42a..58701b7 100644
+parseconfdir(const char *dirpath, int checkperms)
+{
+ struct dirent **dirent_table;
-+ size_t i, dirent_count;
++ int i, m, dirent_count;
+ char pathbuf[PATH_MAX];
+
+ if (!isconfdir(dirpath))
@@ -135,8 +148,11 @@ index ac3a42a..58701b7 100644
+ "could not open config directory %s", dirpath);
+
+ dirent_count = scandir(dirpath, &dirent_table, NULL, alphasort);
++ if (dirent_count < 0)
++ err(1, checkperms ? "doas is not enabled, %s" :
++ "could not open config directory %s", dirpath);
+
-+ for (i = 0; i < dirent_count; i++)
++ for (i = 0, m = 0; i < dirent_count; i++)
+ {
+ struct stat sb;
+ size_t pathlen;
@@ -145,6 +161,9 @@ index ac3a42a..58701b7 100644
+ free(dirent_table[i]);
+
+ /* make sure path ends in .conf */
++ if (pathlen < 6)
++ continue;
++
+ if (strcmp(pathbuf + (pathlen - 5), ".conf"))
+ continue;
+
@@ -155,16 +174,20 @@ index ac3a42a..58701b7 100644
+ continue;
+
+ parseconfig(pathbuf, checkperms);
++ m++;
+ }
+
+ free(dirent_table);
++
++ if (!m)
++ errx(1, "doas is not enabled, %s: no matching configuration files found\n", dirpath);
+}
+#endif
+
static void __dead
checkconfig(const char *confpath, int argc, char **argv,
uid_t uid, gid_t *groups, int ngroups, uid_t target)
-@@ -188,7 +248,13 @@ checkconfig(const char *confpath, int argc, char **argv,
+@@ -188,6 +263,11 @@ checkconfig(const char *confpath, int argc, char **argv,
if (setresuid(uid, uid, uid) != 0)
err(1, "setresuid");
@@ -172,13 +195,11 @@ index ac3a42a..58701b7 100644
+ if (isconfdir(confpath))
+ parseconfdir(confpath, 0);
+ else
-+#else
- parseconfig(confpath, 0);
+#endif
+ parseconfig(confpath, 0);
if (!argc)
exit(0);
-
-@@ -330,7 +396,13 @@ main(int argc, char **argv)
+@@ -330,6 +410,11 @@ main(int argc, char **argv)
if (geteuid())
errx(1, "not installed setuid");
@@ -186,259 +207,10 @@ index ac3a42a..58701b7 100644
+ if (isconfdir(DOAS_CONFDIR))
+ parseconfdir(DOAS_CONFDIR, 1);
+ else
-+#else
- parseconfig(DOAS_CONF, 1);
+#endif
+ parseconfig(DOAS_CONF, 1);
/* cmdline is used only for logging, no need to abort on truncate */
- (void)strlcpy(cmdline, argv[0], sizeof(cmdline));
-diff --git a/parse.y b/parse.y
-index 388c2a5..c6d7ebf 100644
---- a/parse.y
-+++ b/parse.y
-@@ -49,6 +49,7 @@ typedef struct {
- } yystype;
- #define YYSTYPE yystype
-
-+const char *yyfn;
- FILE *yyfp;
-
- struct rule **rules;
-@@ -203,7 +204,7 @@ yyerror(const char *fmt, ...)
- va_start(va, fmt);
- vfprintf(stderr, fmt, va);
- va_end(va);
-- fprintf(stderr, " at line %d\n", yylval.lineno + 1);
-+ fprintf(stderr, " at %s, line %d\n", yyfn, yylval.lineno + 1);
- parse_errors++;
- }
-
-
-From 046ff34408ea8bf2cafc079bd71a126aa009b005 Mon Sep 17 00:00:00 2001
-From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Wed, 4 Aug 2021 09:20:35 -0600
-Subject: [PATCH 2/8] gracefully handle ENOENT in isconfdir()
-
----
- doas.c | 9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/doas.c b/doas.c
-index 58701b7..4c0cafe 100644
---- a/doas.c
-+++ b/doas.c
-@@ -191,8 +191,13 @@ isconfdir(const char *dirpath)
- {
- struct stat sb;
-
-- if (lstat(dirpath, &sb) != 0)
-- err(1, "lstat(\"%s\")", dirpath);
-+ if (lstat(dirpath, &sb) != 0) {
-+ if (errno != ENOENT)
-+ err(1, "lstat(\"%s\")", dirpath);
-+
-+ errno = ENOTDIR;
-+ return 0;
-+ }
-
- if ((sb.st_mode & (S_IFMT)) == S_IFDIR)
- return 1;
-
-From 6e76fb04ac637a1001ba201559f28279e3abe738 Mon Sep 17 00:00:00 2001
-From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Wed, 4 Aug 2021 09:31:49 -0600
-Subject: [PATCH 3/8] ensure pathlen - 5 is always non-zero
-
----
- doas.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/doas.c b/doas.c
-index 4c0cafe..f827fcd 100644
---- a/doas.c
-+++ b/doas.c
-@@ -228,6 +228,9 @@ parseconfdir(const char *dirpath, int checkperms)
- free(dirent_table[i]);
-
- /* make sure path ends in .conf */
-+ if (pathlen < 6)
-+ continue;
-+
- if (strcmp(pathbuf + (pathlen - 5), ".conf"))
- continue;
-
-
-From cac56ea61e16d0ccb91100164a61e9f7215604e5 Mon Sep 17 00:00:00 2001
-From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Wed, 4 Aug 2021 10:17:35 -0600
-Subject: [PATCH 4/8] bail if dirent_count < 0
-
----
- doas.c | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/doas.c b/doas.c
-index f827fcd..6e308c8 100644
---- a/doas.c
-+++ b/doas.c
-@@ -210,7 +210,7 @@ static void
- parseconfdir(const char *dirpath, int checkperms)
- {
- struct dirent **dirent_table;
-- size_t i, dirent_count;
-+ int i, dirent_count;
- char pathbuf[PATH_MAX];
-
- if (!isconfdir(dirpath))
-@@ -218,6 +218,9 @@ parseconfdir(const char *dirpath, int checkperms)
- "could not open config directory %s", dirpath);
-
- dirent_count = scandir(dirpath, &dirent_table, NULL, alphasort);
-+ if (dirent_count < 0)
-+ err(1, checkperms ? "doas is not enabled, %s" :
-+ "could not open config directory %s", dirpath);
-
- for (i = 0; i < dirent_count; i++)
- {
-
-From 8d224060adbdb1dececeb02660df8693f7c54a40 Mon Sep 17 00:00:00 2001
-From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Wed, 4 Aug 2021 10:20:33 -0600
-Subject: [PATCH 5/8] error out if no matching configuration files are found in
- the configuration directory
-
----
- doas.c | 11 +++++++++--
- 1 file changed, 9 insertions(+), 2 deletions(-)
-
-diff --git a/doas.c b/doas.c
-index 6e308c8..cdfa3ea 100644
---- a/doas.c
-+++ b/doas.c
-@@ -210,7 +210,7 @@ static void
- parseconfdir(const char *dirpath, int checkperms)
- {
- struct dirent **dirent_table;
-- int i, dirent_count;
-+ int i, m, dirent_count;
- char pathbuf[PATH_MAX];
-
- if (!isconfdir(dirpath))
-@@ -222,7 +222,7 @@ parseconfdir(const char *dirpath, int checkperms)
- err(1, checkperms ? "doas is not enabled, %s" :
- "could not open config directory %s", dirpath);
-
-- for (i = 0; i < dirent_count; i++)
-+ for (i = 0, m = 0; i < dirent_count; i++)
- {
- struct stat sb;
- size_t pathlen;
-@@ -244,9 +244,16 @@ parseconfdir(const char *dirpath, int checkperms)
- continue;
-
- parseconfig(pathbuf, checkperms);
-+ m++;
- }
-
- free(dirent_table);
-+
-+ if (!m) {
-+ fprintf(stderr, "doas is not enabled, %s: no matching configuration files found\n",
-+ dirpath);
-+ exit(1);
-+ }
- }
- #endif
-
-
-From 35c3e69fa52157683b8ae6fe040367390aa63bb6 Mon Sep 17 00:00:00 2001
-From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Wed, 4 Aug 2021 10:34:28 -0600
-Subject: [PATCH 6/8] use errx instead of fprintf(stderr)
-
----
- doas.c | 7 ++-----
- 1 file changed, 2 insertions(+), 5 deletions(-)
-
-diff --git a/doas.c b/doas.c
-index cdfa3ea..b50138a 100644
---- a/doas.c
-+++ b/doas.c
-@@ -249,11 +249,8 @@ parseconfdir(const char *dirpath, int checkperms)
-
- free(dirent_table);
-
-- if (!m) {
-- fprintf(stderr, "doas is not enabled, %s: no matching configuration files found\n",
-- dirpath);
-- exit(1);
-- }
-+ if (!m)
-+ errx(1, "doas is not enabled, %s: no matching configuration files found\n", dirpath);
- }
- #endif
-
-
-From c9ff0fcdc0253679a0348995c36f89edc8d73a5b Mon Sep 17 00:00:00 2001
-From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Wed, 4 Aug 2021 16:50:58 -0600
-Subject: [PATCH 7/8] fix up the ifndef DOAS_CONFDIR branch
-
----
- doas.c | 6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/doas.c b/doas.c
-index b50138a..d77186b 100644
---- a/doas.c
-+++ b/doas.c
-@@ -267,9 +267,8 @@ checkconfig(const char *confpath, int argc, char **argv,
- if (isconfdir(confpath))
- parseconfdir(confpath, 0);
- else
--#else
-- parseconfig(confpath, 0);
- #endif
-+ parseconfig(confpath, 0);
- if (!argc)
- exit(0);
-
-@@ -415,9 +414,8 @@ main(int argc, char **argv)
- if (isconfdir(DOAS_CONFDIR))
- parseconfdir(DOAS_CONFDIR, 1);
- else
--#else
-- parseconfig(DOAS_CONF, 1);
- #endif
-+ parseconfig(DOAS_CONF, 1);
-
- /* cmdline is used only for logging, no need to abort on truncate */
- (void)strlcpy(cmdline, argv[0], sizeof(cmdline));
-
-From 9fe4df5f004435fa0b092dc15a3c5ab09090f45d Mon Sep 17 00:00:00 2001
-From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 3 Sep 2021 11:59:12 -0600
-Subject: [PATCH 8/8] add manpage for doas.d(5)
-
----
- GNUmakefile | 1 +
- doas.conf.5 | 1 +
- doas.d.5 | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 52 insertions(+)
- create mode 100644 doas.d.5
-
-diff --git a/GNUmakefile b/GNUmakefile
-index 2eef88e..423731c 100644
---- a/GNUmakefile
-+++ b/GNUmakefile
-@@ -24,6 +24,7 @@ install: ${PROG} ${MAN}
- chmod ${BINMODE} ${DESTDIR}${BINDIR}/${PROG}
- cp -f doas.1 ${DESTDIR}${MANDIR}/man1
- cp -f doas.conf.5 ${DESTDIR}${MANDIR}/man5
-+ cp -f doas.d.5 ${DESTDIR}${MANDIR}/man5
-
- uninstall:
- rm -f ${DESTDIR}${BINDIR}/${PROG}
diff --git a/doas.conf.5 b/doas.conf.5
index e98bfbe..e90d512 100644
--- a/doas.conf.5
@@ -453,7 +225,7 @@ index e98bfbe..e90d512 100644
The
diff --git a/doas.d.5 b/doas.d.5
new file mode 100644
-index 0000000..8f5f96a
+index 0000000..c5eaa72
--- /dev/null
+++ b/doas.d.5
@@ -0,0 +1,50 @@
@@ -507,3 +279,169 @@ index 0000000..8f5f96a
+The
+.Nm
+configuration directory first appeared in OpenDoas.
+diff --git a/parse.y b/parse.y
+index 388c2a5..c6d7ebf 100644
+--- a/parse.y
++++ b/parse.y
+@@ -49,6 +49,7 @@ typedef struct {
+ } yystype;
+ #define YYSTYPE yystype
+
++const char *yyfn;
+ FILE *yyfp;
+
+ struct rule **rules;
+@@ -203,7 +204,7 @@ yyerror(const char *fmt, ...)
+ va_start(va, fmt);
+ vfprintf(stderr, fmt, va);
+ va_end(va);
+- fprintf(stderr, " at line %d\n", yylval.lineno + 1);
++ fprintf(stderr, " at %s, line %d\n", yyfn, yylval.lineno + 1);
+ parse_errors++;
+ }
+
+--
+From c871cf723cc4cc1045ffc7de380f5271b4c29acf Mon Sep 17 00:00:00 2001
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sat, 13 May 2023 22:38:23 +0200
+Subject: [PATCH 9/9] read both /etc/doas.conf and /etc/doas.d/*.conf if
+ confdir is enabled
+
+The current behaviour of the configuration directory was required by the
+upstream, but it doesn't conform to established conventions used by
+virtually all programs on Linux that support modular configuration, and
+what the users naturally expect. Also, when someone used to vanilla
+OpenDoas or doas on BSD comes to Alpine, the way they're used to
+configuring it (via /etc/doas.conf) will no work without notice! It
+has already caused some problems and confusion.
+
+The current behaviour is: if /etc/doas.d exists, there must be at least one
+*.conf file and /etc/doas.conf is *ignored*.
+
+Since it doesn't look like the upstream will ever merge this, better to
+fix this patch to work as it should from the beginning...
+
+This new behaviour: /etc/doas.conf must always exist (as in unpatched
+OpenDoas) and will be read first; if /etc/doas.d exists and there are any
+*.conf files, they will be loaded as well.
+---
+ README.md | 7 +++----
+ doas.c | 22 +++++-----------------
+ doas.d.5 | 14 +++++---------
+ 3 files changed, 13 insertions(+), 30 deletions(-)
+
+diff --git a/README.md b/README.md
+index 92acded..d5b2e72 100644
+--- a/README.md
++++ b/README.md
+@@ -48,7 +48,6 @@ timestamps are created and checked to be as safe as possible.
+
+ An optional feature can be enabled which will result in `doas` reading configuration
+ snippets from `/etc/doas.d`. These configuration snippets have the same requirements
+-as `/etc/doas.conf` (owned by root, not world-writable).
+-
+-If this feature is enabled, only the `/etc/doas.d` directory is read, and the historical
+-`/etc/doas.conf` file is ignored.
+\ No newline at end of file
++as `/etc/doas.conf` (owned by root, not world-writable). The main configuration file
++`/etc/doas.conf` is still required to exist and it is read before `/etc/doas.d`. It is
++not an error if `/etc/doas.d` does not exist or no matching files are found there.
+diff --git a/doas.c b/doas.c
+index d77186b..affbe39 100644
+--- a/doas.c
++++ b/doas.c
+@@ -210,19 +210,14 @@ static void
+ parseconfdir(const char *dirpath, int checkperms)
+ {
+ struct dirent **dirent_table;
+- int i, m, dirent_count;
++ int i, dirent_count;
+ char pathbuf[PATH_MAX];
+
+- if (!isconfdir(dirpath))
+- err(1, checkperms ? "doas is not enabled, %s" :
+- "could not open config directory %s", dirpath);
+-
+ dirent_count = scandir(dirpath, &dirent_table, NULL, alphasort);
+ if (dirent_count < 0)
+- err(1, checkperms ? "doas is not enabled, %s" :
+- "could not open config directory %s", dirpath);
++ return;
+
+- for (i = 0, m = 0; i < dirent_count; i++)
++ for (i = 0; i < dirent_count; i++)
+ {
+ struct stat sb;
+ size_t pathlen;
+@@ -244,13 +239,9 @@ parseconfdir(const char *dirpath, int checkperms)
+ continue;
+
+ parseconfig(pathbuf, checkperms);
+- m++;
+ }
+
+ free(dirent_table);
+-
+- if (!m)
+- errx(1, "doas is not enabled, %s: no matching configuration files found\n", dirpath);
+ }
+ #endif
+
+@@ -263,12 +254,11 @@ checkconfig(const char *confpath, int argc, char **argv,
+ if (setresuid(uid, uid, uid) != 0)
+ err(1, "setresuid");
+
++ parseconfig(confpath, 0);
+ #ifdef DOAS_CONFDIR
+ if (isconfdir(confpath))
+ parseconfdir(confpath, 0);
+- else
+ #endif
+- parseconfig(confpath, 0);
+ if (!argc)
+ exit(0);
+
+@@ -410,13 +400,11 @@ main(int argc, char **argv)
+ if (geteuid())
+ errx(1, "not installed setuid");
+
++ parseconfig(DOAS_CONF, 1);
+ #ifdef DOAS_CONFDIR
+ if (isconfdir(DOAS_CONFDIR))
+ parseconfdir(DOAS_CONFDIR, 1);
+- else
+ #endif
+- parseconfig(DOAS_CONF, 1);
+-
+ /* cmdline is used only for logging, no need to abort on truncate */
+ (void)strlcpy(cmdline, argv[0], sizeof(cmdline));
+ for (i = 1; i < argc; i++) {
+diff --git a/doas.d.5 b/doas.d.5
+index c5eaa72..5911a12 100644
+--- a/doas.d.5
++++ b/doas.d.5
+@@ -21,14 +21,9 @@
+ The
+ .Xr doas 1
+ utility executes commands as other users according to the rules
+-configured in either the configuration file or, optionally, the
+-configuration directory. The preference to use the configuration
+-file or configuration directory is determined at compile time,
+-.Xr doas 1
+-will only consult one or the other.
+-.Pp
+-Configuration snippets stored in the configuration directory
+-follow the same rules as the classic
++configured in the configuration file and, optionally, the
++configuration directory. Configuration snippets stored in the
++configuration directory follow the same rules as the classic
+ .Xr doas 1
+ configuration file, documented in
+ .Xr doas.conf 5 .
+@@ -47,4 +42,5 @@ configuration directory.
+ .Sh HISTORY
+ The
+ .Nm
+-configuration directory first appeared in OpenDoas.
++configuration directory first appeared as a patch for doas on
++Alpine Linux and it is not supported in upstream OpenDoas.
diff --git a/main/doas/doas.conf b/main/doas/doas.conf
new file mode 100644
index 00000000000..98594f757bb
--- /dev/null
+++ b/main/doas/doas.conf
@@ -0,0 +1,4 @@
+# See doas.conf(5) and doas.d(5) for configuration details.
+
+# Uncomment to allow group "wheel" to become root.
+# permit persist :wheel
diff --git a/main/doas/doas.post-install b/main/doas/doas.post-install
deleted file mode 100755
index 65c3cff4681..00000000000
--- a/main/doas/doas.post-install
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-
-[ -d /etc/doas.d ] || install -d -m 0750 /etc/doas.d
-[ -e /etc/doas.d/doas.conf ] && exit 0
-
-cat << _EOF_ >/etc/doas.d/doas.conf
-# This file is actually located at /etc/doas.d/doas.conf, and reflects
-# the system doas configuration. It may have been migrated from its
-# previous location, /etc/doas.conf, automatically.
-_EOF_
-
-if [ -f /etc/doas.conf ]; then
- cat /etc/doas.conf >> /etc/doas.d/doas.conf
- cat << _EOF_ >> /etc/doas.d/doas.conf
-# Please see /usr/share/doc/doas/doas.conf.example in the doas-doc
-# package for configuration examples.
-_EOF_
-
- # install compatibility symlink
- rm -f /etc/doas.conf
- ln -sf /etc/doas.d/doas.conf /etc/doas.conf
-
- # chmod 600
- chmod 600 /etc/doas.d/doas.conf
-
- cat <<- _EOF_ >&2
- * Your configuration in /etc/doas.conf was migrated to
- * /etc/doas.d/doas.conf and a symlink was installed in its
- * place. For more information about the new doas configuration
- * directory, consult doas.d(5).
- _EOF_
-fi
diff --git a/main/doas/doas.post-upgrade b/main/doas/doas.post-upgrade
index 731b3511cad..113f801d39f 100755..100644
--- a/main/doas/doas.post-upgrade
+++ b/main/doas/doas.post-upgrade
@@ -1,37 +1,65 @@
#!/bin/sh
-[ -d /etc/doas.d ] || install -d -m 0750 /etc/doas.d
-# fix perms when upgrading from 6.8.1-r6
-if [ -d /etc/doas.d ] && [ "$(stat -c "%a" /etc/doas.d)" = "755" ]; then
- chmod 0750 /etc/doas.d
+ver_old="$2"
+
+if [ "$(apk version -t "$ver_old" '6.8.1-r6')" = '<' ]; then
+ if [ "$(stat -c "%a" /etc/doas.d)" = "755" ]; then
+ chmod 0750 /etc/doas.d
+ fi
fi
-[ -e /etc/doas.d/doas.conf ] && exit 0
+if [ "$(apk version -t "$ver_old" '6.8.1-r4')" = '<' ]; then
+ : # do nothing, this is prior renaming /etc/doas.conf to /etc/doas.d/doas.conf
-cat << _EOF_ >/etc/doas.d/doas.conf
-# This file is actually located at /etc/doas.d/doas.conf, and reflects
-# the system doas configuration. It may have been migrated from its
-# previous location, /etc/doas.conf, automatically.
-_EOF_
+# Undo what was done by the previous post-{install,upgrade} script.
+elif [ "$(apk version -t "$ver_old" '6.8.2-r5')" = '<' ]; then
+ cat >&2 <<-EOF
+ *
+ * Since 6.8.2-r5, doas reads both /etc/doas.conf and /etc/doas.d/*.conf
+ * (if exists), in this order, and /etc/doas.conf is required to exist.
+ *
+ EOF
+ if [ -L /etc/doas.conf ] && [ "$(readlink -f /etc/doas.conf)" = '/etc/doas.d/doas.conf' ]; then
+ cat >&2 <<-EOF
+ * Removing /etc/doas.conf symlink and moving /etc/doas.d/doas.conf
+ * to /etc/doas.conf.
+ *
+ EOF
+ rm /etc/doas.conf # symlink
+ mv /etc/doas.d/doas.conf /etc/doas.conf # user's config
-if [ -f /etc/doas.conf ]; then
- cat /etc/doas.conf >> /etc/doas.d/doas.conf
- cat << _EOF_ >> /etc/doas.d/doas.conf
-# Please see /usr/share/doc/doas/doas.conf.example in the doas-doc
-# package for configuration examples.
-_EOF_
-fi
+ # Remove outdated comment added by the previous post-upgrade script.
+ # Note: /etc/doas.conf.apk-new has been created by the upgrade,
+ # so it already has correct perms.
+ cat /etc/doas.conf \
+ | tr '\n' '\f' \
+ | sed 's|# This file is actually located at /etc/doas.d/doas.conf, and reflects\f# the system doas configuration. It may have been migrated from its\f# previous location, /etc/doas.conf, automatically.\f||' \
+ | tr '\f' '\n' \
+ > /etc/doas.conf.apk-new
-# install compatibility symlink
-rm -f /etc/doas.conf
-ln -sf /etc/doas.d/doas.conf /etc/doas.conf
+ # Note: If /etc/doas.conf existed, the package upgrade has created
+ # doas.conf.apk-new.
+ elif [ -f /etc/doas.conf ] && [ -f /etc/doas.conf.apk-new ] && [ "$(ls /etc/doas.d/*.conf 2>/dev/null)" ]; then
+ bakfile='/etc/doas.conf.bak'
+ [ -e "$bakfile" ] && bakfile="$bakfile$(date +%s)"
-# chmod 600
-chmod 600 /etc/doas.d/doas.conf
+ cat >&2 <<-EOF
+ *! CAUTION: /etc/doas.conf already exists and /etc/doas.d is not empty,
+ *! so it's been ignored until now! Renaming it to $bakfile.
+ *! It's strongly recommended that you check your configuration!
+ *
+ EOF
+ mv /etc/doas.conf "$bakfile" # user's config
+ mv /etc/doas.conf.apk-new /etc/doas.conf # new config
+
+ elif [ -f /etc/doas.d/doas.conf ]; then
+ cat >&2 <<-EOF
+ * Moving /etc/doas.d/doas.conf to /etc/doas.conf.
+ *
+ EOF
+ mv /etc/doas.conf /etc/doas.conf.apk-new # new config
+ mv /etc/doas.d/doas.conf /etc/doas.conf # user's config
+ fi
+fi
-cat << _EOF_ >&2
- * Your configuration in /etc/doas.conf was migrated to
- * /etc/doas.d/doas.conf and a symlink was installed in its
- * place. For more information about the new doas configuration
- * directory, consult doas.d(5).
-_EOF_
+exit 0
diff --git a/main/docbook-xml/APKBUILD b/main/docbook-xml/APKBUILD
index 5ece603158c..9b95fda9c55 100644
--- a/main/docbook-xml/APKBUILD
+++ b/main/docbook-xml/APKBUILD
@@ -1,19 +1,18 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=docbook-xml
pkgver=4.5
-pkgrel=6
+pkgrel=9
pkgdesc="A widely used XML scheme for writing documentation and help"
-url="http://scrollkeeper.sourceforge.net/docbook.shtml"
+url="https://scrollkeeper.sourceforge.net/docbook.shtml"
arch="noarch"
license="MIT"
depends="libxml2-utils"
-makedepends=
options="!check"
-install="$pkgname.post-install $pkgname.post-upgrade $pkgname.post-deinstall"
-source="https://www.docbook.org/xml/$pkgver/$pkgname-$pkgver.zip
- https://www.docbook.org/xml/4.4/$pkgname-4.4.zip
- https://www.docbook.org/xml/4.3/$pkgname-4.3.zip
- https://www.docbook.org/xml/4.2/$pkgname-4.2.zip
+install="$pkgname.post-install $pkgname.post-upgrade $pkgname.pre-deinstall"
+source="https://www.docbook.org/xml/$pkgver/docbook-xml-$pkgver.zip
+ https://www.docbook.org/xml/4.4/docbook-xml-4.4.zip
+ https://www.docbook.org/xml/4.3/docbook-xml-4.3.zip
+ https://www.docbook.org/xml/4.2/docbook-xml-4.2.zip
https://www.docbook.org/xml/4.1.2/docbkx412.zip
"
@@ -25,19 +24,19 @@ unpack() {
4.1.2) _filename=docbkx412.zip;;
*) _filename=docbook-xml-$ver.zip;;
esac
- mkdir -p "$srcdir"/docbook-xml-${ver}
- cd "$srcdir"/docbook-xml-${ver}
- msg "extracting ${_filename}"
+ mkdir -p "$srcdir"/docbook-xml-$ver
+ cd "$srcdir"/docbook-xml-$ver
+ msg "extracting $_filename"
unzip "$srcdir"/$_filename
done
}
-package () {
+package() {
local ver
for ver in $_versions; do
- cd "$srcdir"/docbook-xml-${ver}
- mkdir -p "$pkgdir"/usr/share/xml/docbook/xml-dtd-${ver}
- cp -af docbook.cat *.dtd ent/ *.mod "$pkgdir"/usr/share/xml/docbook/xml-dtd-${ver}/
+ cd "$srcdir"/docbook-xml-$ver
+ mkdir -p "$pkgdir"/usr/share/xml/docbook/xml-dtd-$ver
+ cp -af docbook.cat *.dtd ent/ *.mod "$pkgdir"/usr/share/xml/docbook/xml-dtd-$ver/
done
chmod 755 "$pkgdir"/usr/share/xml/docbook/xml-dtd-*/ent
diff --git a/main/docbook-xml/docbook-xml.post-deinstall b/main/docbook-xml/docbook-xml.pre-deinstall
index ed0157da7a6..ed0157da7a6 100644
--- a/main/docbook-xml/docbook-xml.post-deinstall
+++ b/main/docbook-xml/docbook-xml.pre-deinstall
diff --git a/main/docbook-xsl/APKBUILD b/main/docbook-xsl/APKBUILD
index b32f7eaef60..d1046cb399a 100644
--- a/main/docbook-xsl/APKBUILD
+++ b/main/docbook-xsl/APKBUILD
@@ -1,14 +1,14 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=docbook-xsl
pkgver=1.79.2
-pkgrel=4
+pkgrel=9
pkgdesc="XML stylesheets for Docbook-xml transformations."
url="https://docbook.org/"
arch="noarch"
license="custom"
depends="libxml2-utils libxslt docbook-xml"
options="!check"
-install="$pkgname.post-install $pkgname.post-upgrade $pkgname.post-deinstall"
+install="$pkgname.post-install $pkgname.post-upgrade $pkgname.pre-deinstall"
source="https://github.com/docbook/xslt10-stylesheets/releases/download/release%2F$pkgver/docbook-xsl-$pkgver.tar.gz
765567_non-recursive_string_subst.patch
f6c5eefbca775e312afebf576a6990344a0b1b69.patch
@@ -20,6 +20,7 @@ package() {
install -dm755 "$_dest"
install -m644 VERSION VERSION.xsl "$_dest"/
+ ln -s xsl-stylesheets-$pkgver "${_dest%/*}/xsl-stylesheets"
for dir in assembly common eclipse epub epub3 fo highlighting html \
htmlhelp javahelp lib manpages params profiling roundtrip \
diff --git a/main/docbook-xsl/docbook-xsl.post-install b/main/docbook-xsl/docbook-xsl.post-install
index 6afae6abe62..3832543dcd5 100644..120000
--- a/main/docbook-xsl/docbook-xsl.post-install
+++ b/main/docbook-xsl/docbook-xsl.post-install
@@ -1,29 +1 @@
-#!/bin/sh
-
-if [ ! -f /etc/xml/catalog ]; then
- xmlcatalog --noout --create /etc/xml/catalog
-fi
-
-
-_NEW=${1%-r[0-9]*}
-
-xmlcatalog --noout --add "rewriteSystem" \
- "http://docbook.sourceforge.net/release/xsl/${_NEW}" \
- "/usr/share/xml/docbook/xsl-stylesheets-${_NEW}" \
- etc/xml/catalog
-
-xmlcatalog --noout --add "rewriteURI" \
- "http://docbook.sourceforge.net/release/xsl/${_NEW}" \
- "/usr/share/xml/docbook/xsl-stylesheets-${_NEW}" \
- etc/xml/catalog &&
-
-xmlcatalog --noout --add "rewriteSystem" \
- "http://docbook.sourceforge.net/release/xsl/current" \
- "/usr/share/xml/docbook/xsl-stylesheets-${_NEW}" \
- etc/xml/catalog &&
-
-xmlcatalog --noout --add "rewriteURI" \
- "http://docbook.sourceforge.net/release/xsl/current" \
- "/usr/share/xml/docbook/xsl-stylesheets-${_NEW}" \
- etc/xml/catalog
-
+docbook-xsl.post-upgrade \ No newline at end of file
diff --git a/main/docbook-xsl/docbook-xsl.post-upgrade b/main/docbook-xsl/docbook-xsl.post-upgrade
index d481480fc23..fbac4a49f40 100644
--- a/main/docbook-xsl/docbook-xsl.post-upgrade
+++ b/main/docbook-xsl/docbook-xsl.post-upgrade
@@ -1,33 +1,32 @@
#!/bin/sh
if [ ! -f /etc/xml/catalog ]; then
- xmlcatalog --noout --create /etc/xml/catalog
+ xmlcatalog --noout --create /etc/xml/catalog
fi
-_NEW=${1%-r[0-9]*}
-_OLD=${2%-r[0-9]*}
+newver=${1%-r[0-9]*}
+oldver=${2%-r[0-9]*}
-xmlcatalog --noout --del \
- "/usr/share/xml/docbook/xsl-stylesheets-${_OLD}" \
- etc/xml/catalog
+docbookdir=/usr/share/xml/docbook
-xmlcatalog --noout --add "rewriteSystem" \
- "http://docbook.sourceforge.net/release/xsl/${_NEW}" \
- "/usr/share/xml/docbook/xsl-stylesheets-${_NEW}" \
- etc/xml/catalog
-
-xmlcatalog --noout --add "rewriteURI" \
- "http://docbook.sourceforge.net/release/xsl/${_NEW}" \
- "/usr/share/xml/docbook/xsl-stylesheets-${_NEW}" \
- etc/xml/catalog
-
-xmlcatalog --noout --add "rewriteSystem" \
- "http://docbook.sourceforge.net/release/xsl/current" \
- "/usr/share/xml/docbook/xsl-stylesheets-${_NEW}" \
- etc/xml/catalog
-
-xmlcatalog --noout --add "rewriteURI" \
- "http://docbook.sourceforge.net/release/xsl/current" \
- "/usr/share/xml/docbook/xsl-stylesheets-${_NEW}" \
- etc/xml/catalog
+if [ -n "$oldver" ]; then # upgrade
+ xmlcatalog --noout --del \
+ "file://$docbookdir/xsl-stylesheets-$oldver" \
+ etc/xml/catalog
+fi
+urls="
+ http://cdn.docbook.org/release/xsl-nons
+ http://docbook.sourceforge.net/release/xsl
+"
+
+for url in $urls; do
+ for rewrite in rewriteSystem rewriteURI; do
+ for version in $newver current; do
+ xmlcatalog --noout --add "$rewrite" \
+ "$url/$version" \
+ "file://$docbookdir/xsl-stylesheets-$newver" \
+ etc/xml/catalog
+ done
+ done
+done
diff --git a/main/docbook-xsl/docbook-xsl.post-deinstall b/main/docbook-xsl/docbook-xsl.pre-deinstall
index 2b9f0d4a15e..ccfc304fd75 100644
--- a/main/docbook-xsl/docbook-xsl.post-deinstall
+++ b/main/docbook-xsl/docbook-xsl.pre-deinstall
@@ -4,7 +4,6 @@ _OLD=${1%-r[0-9]*}
if which xmlcatalog > /dev/null; then
xmlcatalog --noout --del \
- "/usr/share/xml/docbook/xsl-stylesheets-${_OLD}" \
+ "file:///usr/share/xml/docbook/xsl-stylesheets-${_OLD}" \
etc/xml/catalog
fi
-
diff --git a/main/docbook2x/APKBUILD b/main/docbook2x/APKBUILD
index e0024ccc309..b9fd180be2a 100644
--- a/main/docbook2x/APKBUILD
+++ b/main/docbook2x/APKBUILD
@@ -1,18 +1,17 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer: Sören Tempel <soeren+alpine@soeren-tempel.net>
+# Maintainer:
pkgname=docbook2x
pkgver=0.8.8
-pkgrel=6
+pkgrel=10
pkgdesc="DocBook converter to UNIX manpage and GNU Texinfo format"
-url="http://docbook2x.sourceforge.net"
+url="https://docbook2x.sourceforge.net/"
arch="all"
license="MIT"
+options="!check" # no testsuite
depends="texinfo openjade docbook-xml docbook-xsl perl-xml-sax libxslt"
-depends_dev=""
makedepends="autoconf automake"
-install=""
subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/$pkgname/docbook2X-$pkgver.tar.gz
+source="https://downloads.sourceforge.net/docbook2x/docbook2X-$pkgver.tar.gz
01_fix_static_datadir_evaluation.patch
02_fix_418703_dont_use_abbreviated_sfnet_address.patch
03_fix_420153_filename_whitespace_handling.patch
@@ -20,19 +19,9 @@ source="https://downloads.sourceforge.net/$pkgname/docbook2X-$pkgver.tar.gz
05_fix_439214_error_on_missing_refentry.patch
06_fix_man_typo.patch"
-_builddir="$srcdir"/docbook2X-$pkgver
-prepare() {
- local i
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1 ;;
- esac
- done
-}
+builddir="$srcdir"/docbook2X-$pkgver
build() {
- cd "$_builddir"
autoreconf --install
./configure \
--build=$CBUILD \
@@ -42,20 +31,20 @@ build() {
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--localstatedir=/var \
- --program-transform-name 's/docbook2/docbook2x-/' \
- || return 1
- make || return 1
+ --program-transform-name 's/docbook2/docbook2x-/'
+ make
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
}
-sha512sums="cc336017ad734fc62d96d289105e8ea154c418a03a37f3e21b0b3520063f8b466b4aae5a5aec2e0b83f6324c6c79b5557247a93338d0a9882a94a44112f6b65c docbook2X-0.8.8.tar.gz
+sha512sums="
+cc336017ad734fc62d96d289105e8ea154c418a03a37f3e21b0b3520063f8b466b4aae5a5aec2e0b83f6324c6c79b5557247a93338d0a9882a94a44112f6b65c docbook2X-0.8.8.tar.gz
fc7fd3383caaf091bfc6fe313c6679b1d8858fe6e3049dce3c27afe4b974180dd51ebb2d8154288de1b26343653305a890105614355efdca514d67e0ae42bff9 01_fix_static_datadir_evaluation.patch
060ca4c2fbcd71b620f182ffe9c999a296236779605d110e578cacf2cbb4c6c551cf8d95901546ef455a402a4747e607e8ea7b54f1109fc3ccabc43cc4a8aad2 02_fix_418703_dont_use_abbreviated_sfnet_address.patch
3a72979c03a1b5135662ad5cedefd0d508001994e727a0820d628ff5ad2476c09befeb921b9562230fdec3db547e5eec4b301aa08430dd6c2ce2632624a1c375 03_fix_420153_filename_whitespace_handling.patch
af88626ca61847a25ef8c4cf8a09ea27cd1dce6510952e9629b704d3637097b10d85b9727e502dd7eecea1d2152a71cd26bf6abf4a8370eb8647258faa30be45 04_fix_442782_preprocessor_declaration_syntax.patch
ea9ed94190edb2ac2055694bb927457f94eeadf0eff340b9f5fdba6fad5b1dc0b9617829ce3470914cbe0ba0be145dfb000218d57f22ee767ebb8082d6c06bfb 05_fix_439214_error_on_missing_refentry.patch
-a563b46e7eaa8052dc2daea6ad8b0f3b12780ef063fafd37a6345ae663f6229ccb0b52be5e7b1fd6584d31e56de89af391efb856bbabfed164353578b39fb458 06_fix_man_typo.patch"
+a563b46e7eaa8052dc2daea6ad8b0f3b12780ef063fafd37a6345ae663f6229ccb0b52be5e7b1fd6584d31e56de89af391efb856bbabfed164353578b39fb458 06_fix_man_typo.patch
+"
diff --git a/main/docs/APKBUILD b/main/docs/APKBUILD
index a46f5297a03..18552743cec 100644
--- a/main/docs/APKBUILD
+++ b/main/docs/APKBUILD
@@ -1,12 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=docs
pkgver=0.2
-pkgrel=3
+pkgrel=6
pkgdesc="Meta package for pulling in all documentation"
url="https://alpinelinux.org"
-arch="all"
+arch="noarch"
license="MIT"
-depends="mandoc" # It was previously called man
+depends="doc-provider man-pages"
+options="!check"
package() {
mkdir -p "$pkgdir"
diff --git a/main/dosfstools/APKBUILD b/main/dosfstools/APKBUILD
index 50c4839107d..c58b5f54944 100644
--- a/main/dosfstools/APKBUILD
+++ b/main/dosfstools/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=dosfstools
pkgver=4.2
-pkgrel=1
+pkgrel=2
pkgdesc="DOS filesystem utilities"
url="https://github.com/dosfstools/dosfstools"
arch="all"
@@ -9,6 +9,7 @@ license="GPL-3.0-or-later"
makedepends="linux-headers autoconf automake libtool"
subpackages="$pkgname-doc"
source="https://github.com/dosfstools/dosfstools/releases/download/v$pkgver/dosfstools-$pkgver.tar.gz"
+options="!check"
prepare() {
default_prepare
diff --git a/main/dovecot/APKBUILD b/main/dovecot/APKBUILD
index 589e0f97040..c04dbf497b0 100644
--- a/main/dovecot/APKBUILD
+++ b/main/dovecot/APKBUILD
@@ -2,21 +2,22 @@
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Contributor: Michael Mason <ms13sp@gmail.com>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Contributor: Martin Uddén <martin.udden@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=dovecot
-pkgver=2.3.19.1
+pkgver=2.3.21
+# rebuild community/dovecot-fts-xapian on version changes
case "$pkgver" in
*.*.*.*) _pkgverminor=${pkgver%.*.*};;
*.*.*) _pkgverminor=${pkgver%.*};;
esac
-pkgrel=0
+pkgrel=17
_pigeonholever=0.5.19
pkgdesc="IMAP and POP3 server"
url="https://www.dovecot.org/"
arch="all"
-options="libtool"
-license="LGPL-2.0-or-later"
-depends="openssl"
+license="MIT AND LGPL-2.1-or-later"
+depends="openssl>3"
pkgusers="dovecot dovenull"
pkggroups="dovecot dovenull"
makedepends="
@@ -31,13 +32,17 @@ makedepends="
libcap-dev
libpq-dev
libsodium-dev
+ libstemmer-dev
libtool
linux-headers
+ lua5.3-dev
+ lz4-dev
mariadb-connector-c-dev
openldap-dev
- openssl1.1-compat-dev
+ openssl-dev>3
sqlite-dev
zlib-dev
+ zstd-dev
"
install="$pkgname.pre-install $pkgname.post-install $pkgname.post-upgrade"
subpackages="
@@ -55,11 +60,13 @@ subpackages="
$pkgname-sqlite
$pkgname-gssapi
$pkgname-ldap
+ $pkgname-lua
$pkgname-fts-solr:_fts_solr
$pkgname-fts-lucene:_fts_lucene
"
source="https://www.dovecot.org/releases/$_pkgverminor/dovecot-$pkgver.tar.gz
- https://pigeonhole.dovecot.org/releases/$_pkgverminor/dovecot-$_pkgverminor-pigeonhole-$_pigeonholever.tar.gz
+ $pkgname-pigeonhole-$_pigeonholever.tar.gz::https://pigeonhole.dovecot.org/releases/$_pkgverminor/dovecot-$_pkgverminor-pigeonhole-$_pigeonholever.tar.gz
+ CVE-2022-30550.patch
skip-iconv-check.patch
split-protocols.patch
default-config.patch
@@ -67,6 +74,8 @@ source="https://www.dovecot.org/releases/$_pkgverminor/dovecot-$pkgver.tar.gz
fix-libssl_iostream_openssl.patch
fix-test-file-cache.patch
test-imap-client-hibernate.patch
+ submission-proxy-Add-IPV6-prefix-to-IPv6-addresses.patch
+ Support-openssl-3.0.patch
dovecot.logrotate
dovecot.initd
"
@@ -74,6 +83,8 @@ _builddir_pigeonhole="$srcdir/$pkgname-$_pkgverminor-pigeonhole-$_pigeonholever"
options="!check" # tests being weird
# secfixes:
+# 2.3.19.1-r5:
+# - CVE-2022-30550
# 2.3.15-r0:
# - CVE-2021-29157
# - CVE-2021-33515
@@ -110,7 +121,12 @@ options="!check" # tests being weird
prepare() {
default_prepare
+ update_config_sub
+
autoreconf -vi
+
+ cd "$_builddir_pigeonhole"
+ update_config_sub
}
_configure() {
@@ -131,11 +147,20 @@ build() {
--with-gssapi=plugin \
--with-ldap=plugin \
--with-sql=plugin \
+ --with-lua=plugin \
--with-mysql \
--with-sqlite \
--with-pgsql \
--with-solr \
--with-lucene \
+ --with-bzlib \
+ --with-icu \
+ --with-lz4 \
+ --with-lzma \
+ --with-sodium \
+ --with-stemmer \
+ --with-zlib \
+ --with-zstd \
--with-ssl=openssl \
--with-ssldir=/etc/ssl/dovecot \
--with-rundir=/run/dovecot
@@ -182,7 +207,6 @@ package() {
-e 's,#!include auth-passwdfile.conf.ext,#!include auth-system.conf.ext,' \
./etc/dovecot/conf.d/10-auth.conf
-
# Installing pigeonhole plugin.
cd "$_builddir_pigeonhole"
make install DESTDIR="$pkgdir"
@@ -262,6 +286,14 @@ pgsql() {
_find usr/lib/dovecot _pgsql
}
+lua() {
+ pkgdesc="Lua plugins for Dovecot"
+ depends="$pkgname=$pkgver-r$pkgrel"
+
+ cd "$pkgdir"
+ _find usr/lib/dovecot lua
+}
+
mysql() {
pkgdesc="MySQL driver for Dovecot"
depends="$pkgname-sql=$pkgver-r$pkgrel"
@@ -337,8 +369,9 @@ _submv() {
}
sha512sums="
-ceb87a5f76b6352d28fd030aae5ad2165a133e9a8a6309891e793911203fc0ada9fb254dc05d183eaaa7e2b9851d3f1755b33f08fa6ff5b4b415ac4272bfe150 dovecot-2.3.19.1.tar.gz
-5b0a61c7711232ea3651b818a970b500b05bd340a04bcd5a5f0ea0529eda65f498912a845c8f3b3b80196d010bc22bd4a380e1f682cb42f62b80d2d43a94993a dovecot-2.3-pigeonhole-0.5.19.tar.gz
+2d463c38639c3fd3d617ee5b1a4e4d0c11362339c4d4d62a5a90164a8b10bc58919545679bbf379139bdb743fdb013033abfddc1fc6401eb8099463cdc2401ca dovecot-2.3.21.tar.gz
+07e6a0e638508dddaa3822703ce5c08f479c4e721c0fe7a544776d9a037d557c16bad000fc422a1e83f53781058d3575e67d5264dd04cae763750b0dc40e6c51 dovecot-pigeonhole-0.5.19.tar.gz
+b2ff67fd8b6c5cea93877651a1168ef1a5d399cc5f1a61d1cce407c7624f5b6d758996084c6a5714b6880de0ce11ce5eac74a1e02918758cb6983caedb651c58 CVE-2022-30550.patch
fe4fbeaedb377d809f105d9dbaf7c1b961aa99f246b77189a73b491dc1ae0aa9c68678dde90420ec53ec877c08f735b42d23edb13117d7268420e001aa30967a skip-iconv-check.patch
794875dbf0ded1e82c5c3823660cf6996a7920079149cd8eed54231a53580d931b966dfb17185ab65e565e108545ecf6591bae82f935ab1b6ff65bb8ee93d7d5 split-protocols.patch
0d8f89c7ba6f884719b5f9fc89e8b2efbdc3e181de308abf9b1c1b0e42282f4df72c7bf62f574686967c10a8677356560c965713b9d146e2770aab17e95bcc07 default-config.patch
@@ -346,6 +379,8 @@ fe4fbeaedb377d809f105d9dbaf7c1b961aa99f246b77189a73b491dc1ae0aa9c68678dde90420ec
0fb56eb9c7fae8d8b1d794928ce2ba58d03c102cd7c3f959799c62c5d838ff535ecccb64bc1970d960f67d49388c880773e9eac5aed3bcf92e6efed3b56cc837 fix-libssl_iostream_openssl.patch
bfa8f18cce438bbf55cfaa2164358424f04393365aa98ebc342dc2677b48bf8fb16bdb1803aba18ad74fe8494bb7d2091569c430086ed2b47d13100ae5e9ffab fix-test-file-cache.patch
33c6eefaaca755c7766c74cb1afdc54fa9241b3d75b1db6b1167615061b5d79b85d759746c2d1793f4a3669d493489236e89ca4278dd38dd681f537c83e81a20 test-imap-client-hibernate.patch
+6a8d2f6d36218a73766c0b8df64b0b6ec98e010d0d2e06de48144f701cfc2a36413c4a3dce0a33eafd5f022d8b796d5a80116097adf2ad1a9f34fecdeaf07da5 submission-proxy-Add-IPV6-prefix-to-IPv6-addresses.patch
+b24db39cce6c388ab85eab7a9c161eb10ee871f5d78c7778e40a43acc3711486b4259dbbaef40c54efce55d3c8ca7cc8841adbe8528d75c6e8d60ba08b75df79 Support-openssl-3.0.patch
9f19698ab45969f1f94dc4bddf6de59317daee93c9421c81f2dbf8a7efe6acf89689f1d30f60f536737bb9526c315215d2bce694db27e7b8d7896036a59c31f0 dovecot.logrotate
d91951b81150d7a3ef6a674c0dc7b012f538164dac4b9d27a6801d31da6813b764995a438f69b6a680463e1b60a3b4f2959654f68e565fe116ea60312d5e5e70 dovecot.initd
"
diff --git a/main/dovecot/CVE-2022-30550.patch b/main/dovecot/CVE-2022-30550.patch
new file mode 100644
index 00000000000..d7da1316f76
--- /dev/null
+++ b/main/dovecot/CVE-2022-30550.patch
@@ -0,0 +1,155 @@
+From 7bad6a24160e34bce8f10e73dbbf9e5fbbcd1904 Mon Sep 17 00:00:00 2001
+From: Timo Sirainen <timo.sirainen@open-xchange.com>
+Date: Mon, 9 May 2022 15:23:33 +0300
+Subject: [PATCH 1/2] auth: Fix handling passdbs with identical driver/args but
+ different mechanisms/username_filter
+
+The passdb was wrongly deduplicated in this situation, causing wrong
+mechanisms or username_filter setting to be used. This would be a rather
+unlikely configuration though.
+
+Fixed by moving mechanisms and username_filter from struct passdb_module
+to struct auth_passdb, which is where they should have been in the first
+place.
+---
+ src/auth/auth-request.c | 6 +++---
+ src/auth/auth.c | 18 ++++++++++++++++++
+ src/auth/auth.h | 5 +++++
+ src/auth/passdb.c | 15 ++-------------
+ src/auth/passdb.h | 4 ----
+ 5 files changed, 28 insertions(+), 20 deletions(-)
+
+diff --git a/src/auth/auth-request.c b/src/auth/auth-request.c
+index cd08b1fa02..0ca29f3674 100644
+--- a/src/auth/auth-request.c
++++ b/src/auth/auth-request.c
+@@ -534,8 +534,8 @@ auth_request_want_skip_passdb(struct auth_request *request,
+ struct auth_passdb *passdb)
+ {
+ /* if mechanism is not supported, skip */
+- const char *const *mechs = passdb->passdb->mechanisms;
+- const char *const *username_filter = passdb->passdb->username_filter;
++ const char *const *mechs = passdb->mechanisms;
++ const char *const *username_filter = passdb->username_filter;
+ const char *username;
+
+ username = request->fields.user;
+@@ -548,7 +548,7 @@ auth_request_want_skip_passdb(struct auth_request *request,
+ return TRUE;
+ }
+
+- if (passdb->passdb->username_filter != NULL &&
++ if (passdb->username_filter != NULL &&
+ !auth_request_username_accepted(username_filter, username)) {
+ auth_request_log_debug(request,
+ request->mech != NULL ? AUTH_SUBSYS_MECH
+diff --git a/src/auth/auth.c b/src/auth/auth.c
+index f2f3fda20c..9f6c4ba60c 100644
+--- a/src/auth/auth.c
++++ b/src/auth/auth.c
+@@ -99,6 +99,24 @@ auth_passdb_preinit(struct auth *auth, const struct auth_passdb_settings *set,
+ auth_passdb->override_fields_tmpl =
+ passdb_template_build(auth->pool, set->override_fields);
+
++ if (*set->mechanisms == '\0') {
++ auth_passdb->mechanisms = NULL;
++ } else if (strcasecmp(set->mechanisms, "none") == 0) {
++ auth_passdb->mechanisms = (const char *const[]){ NULL };
++ } else {
++ auth_passdb->mechanisms =
++ (const char *const *)p_strsplit_spaces(auth->pool,
++ set->mechanisms, " ,");
++ }
++
++ if (*set->username_filter == '\0') {
++ auth_passdb->username_filter = NULL;
++ } else {
++ auth_passdb->username_filter =
++ (const char *const *)p_strsplit_spaces(auth->pool,
++ set->username_filter, " ,");
++ }
++
+ /* for backwards compatibility: */
+ if (set->pass)
+ auth_passdb->result_success = AUTH_DB_RULE_CONTINUE;
+diff --git a/src/auth/auth.h b/src/auth/auth.h
+index f700e29d5c..460a179765 100644
+--- a/src/auth/auth.h
++++ b/src/auth/auth.h
+@@ -41,6 +41,11 @@ struct auth_passdb {
+ struct passdb_template *default_fields_tmpl;
+ struct passdb_template *override_fields_tmpl;
+
++ /* Supported authentication mechanisms, NULL is all, {NULL} is none */
++ const char *const *mechanisms;
++ /* Username filter, NULL is no filter */
++ const char *const *username_filter;
++
+ enum auth_passdb_skip skip;
+ enum auth_db_rule result_success;
+ enum auth_db_rule result_failure;
+diff --git a/src/auth/passdb.c b/src/auth/passdb.c
+index eb4ac8ae82..f5eed1af4f 100644
+--- a/src/auth/passdb.c
++++ b/src/auth/passdb.c
+@@ -224,19 +224,8 @@ passdb_preinit(pool_t pool, const struct auth_passdb_settings *set)
+ passdb->id = ++auth_passdb_id;
+ passdb->iface = *iface;
+ passdb->args = p_strdup(pool, set->args);
+- if (*set->mechanisms == '\0') {
+- passdb->mechanisms = NULL;
+- } else if (strcasecmp(set->mechanisms, "none") == 0) {
+- passdb->mechanisms = (const char *const[]){NULL};
+- } else {
+- passdb->mechanisms = (const char* const*)p_strsplit_spaces(pool, set->mechanisms, " ,");
+- }
+-
+- if (*set->username_filter == '\0') {
+- passdb->username_filter = NULL;
+- } else {
+- passdb->username_filter = (const char* const*)p_strsplit_spaces(pool, set->username_filter, " ,");
+- }
++ /* NOTE: if anything else than driver & args are added here,
++ passdb_find() also needs to be updated. */
+ array_push_back(&passdb_modules, &passdb);
+ return passdb;
+ }
+diff --git a/src/auth/passdb.h b/src/auth/passdb.h
+index 2e95328e5c..e466a9fdb6 100644
+--- a/src/auth/passdb.h
++++ b/src/auth/passdb.h
+@@ -63,10 +63,6 @@ struct passdb_module {
+ /* Default password scheme for this module.
+ If default_cache_key is set, must not be NULL. */
+ const char *default_pass_scheme;
+- /* Supported authentication mechanisms, NULL is all, [NULL] is none*/
+- const char *const *mechanisms;
+- /* Username filter, NULL is no filter */
+- const char *const *username_filter;
+
+ /* If blocking is set to TRUE, use child processes to access
+ this passdb. */
+
+From a1022072e2ce36f853873d910287f466165b184b Mon Sep 17 00:00:00 2001
+From: Timo Sirainen <timo.sirainen@open-xchange.com>
+Date: Mon, 16 May 2022 14:58:45 +0200
+Subject: [PATCH 2/2] auth: Add a comment about updating userdb_find()
+
+---
+ src/auth/userdb.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/auth/userdb.c b/src/auth/userdb.c
+index 0849659102..830bc2dd64 100644
+--- a/src/auth/userdb.c
++++ b/src/auth/userdb.c
+@@ -158,7 +158,8 @@ userdb_preinit(pool_t pool, const struct auth_userdb_settings *set)
+ userdb->id = ++auth_userdb_id;
+ userdb->iface = iface;
+ userdb->args = p_strdup(pool, set->args);
+-
++ /* NOTE: if anything else than driver & args are added here,
++ userdb_find() also needs to be updated. */
+ array_push_back(&userdb_modules, &userdb);
+ return userdb;
+ }
diff --git a/main/dovecot/Support-openssl-3.0.patch b/main/dovecot/Support-openssl-3.0.patch
new file mode 100644
index 00000000000..8f39a7ddfe2
--- /dev/null
+++ b/main/dovecot/Support-openssl-3.0.patch
@@ -0,0 +1,45 @@
+From: =?utf-8?q?Christian_G=C3=B6ttsche?= <cgzones@googlemail.com>
+Date: Wed, 11 May 2022 20:27:53 +0200
+Author: Michal Hlavinka
+Origin: https://bugzilla.redhat.com/show_bug.cgi?id=1962035
+Subject: Support openssl 3.0
+
+---
+ src/lib-dcrypt/dcrypt-openssl.c | 20 ++++++++++++++++++++
+ 1 file changed, 20 insertions(+)
+
+diff --git a/src/lib-dcrypt/dcrypt-openssl.c b/src/lib-dcrypt/dcrypt-openssl.c
+index 1cbe352..5570d62 100644
+--- a/src/lib-dcrypt/dcrypt-openssl.c
++++ b/src/lib-dcrypt/dcrypt-openssl.c
+@@ -73,10 +73,30 @@
+ 2<tab>key algo oid<tab>1<tab>symmetric algo name<tab>salt<tab>hash algo<tab>rounds<tab>E(RSA = i2d_PrivateKey, EC=Private Point)<tab>key id
+ **/
+
++#if OPENSSL_VERSION_MAJOR == 3
++static EC_KEY *EVP_PKEY_get0_EC_KEYv3(EVP_PKEY *key)
++{
++ EC_KEY *eck = EVP_PKEY_get1_EC_KEY(key);
++ EVP_PKEY_set1_EC_KEY(key, eck);
++ EC_KEY_free(eck);
++ return eck;
++}
++
++static EC_KEY *EVP_PKEY_get1_EC_KEYv3(EVP_PKEY *key)
++{
++ EC_KEY *eck = EVP_PKEY_get1_EC_KEY(key);
++ EVP_PKEY_set1_EC_KEY(key, eck);
++ return eck;
++}
++
++#define EVP_PKEY_get0_EC_KEY EVP_PKEY_get0_EC_KEYv3
++#define EVP_PKEY_get1_EC_KEY EVP_PKEY_get1_EC_KEYv3
++#else
+ #ifndef HAVE_EVP_PKEY_get0
+ #define EVP_PKEY_get0_EC_KEY(x) x->pkey.ec
+ #define EVP_PKEY_get0_RSA(x) x->pkey.rsa
+ #endif
++#endif
+
+ #ifndef HAVE_OBJ_LENGTH
+ #define OBJ_length(o) ((o)->length)
diff --git a/main/dovecot/submission-proxy-Add-IPV6-prefix-to-IPv6-addresses.patch b/main/dovecot/submission-proxy-Add-IPV6-prefix-to-IPv6-addresses.patch
new file mode 100644
index 00000000000..c698f7c4fb1
--- /dev/null
+++ b/main/dovecot/submission-proxy-Add-IPV6-prefix-to-IPv6-addresses.patch
@@ -0,0 +1,27 @@
+From 88751f93d04816313f0fbcafe3a7fc018f5b9328 Mon Sep 17 00:00:00 2001
+From: Aki Tuomi <aki.tuomi@open-xchange.com>
+Date: Tue, 5 Apr 2022 14:33:48 +0300
+Subject: [PATCH] submission-proxy: Add IPV6: prefix to IPv6 addresses
+
+This is required by the Postfix XCLIENT protocol.
+---
+ src/submission-login/submission-proxy.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/submission-login/submission-proxy.c b/src/submission-login/submission-proxy.c
+index 4965ca4612..b6b6b61b12 100644
+--- a/src/submission-login/submission-proxy.c
++++ b/src/submission-login/submission-proxy.c
+@@ -177,8 +177,10 @@ proxy_send_xclient(struct submission_client *client, struct ostream *output)
+ t_strdup_printf("%u", client->common.remote_port));
+ }
+ if (str_array_icase_find(client->proxy_xclient, "ADDR")) {
+- proxy_send_xclient_more(client, output, str, "ADDR",
+- net_ip2addr(&client->common.ip));
++ const char *addr = net_ip2addr(&client->common.ip);
++ if (client->common.ip.family == AF_INET6)
++ addr = t_strconcat("IPV6:", addr, NULL);
++ proxy_send_xclient_more(client, output, str, "ADDR", addr);
+ }
+ if (str_array_icase_find(client->proxy_xclient, "SESSION")) {
+ proxy_send_xclient_more(client, output, str, "SESSION",
diff --git a/main/doxygen/APKBUILD b/main/doxygen/APKBUILD
index 48275c88afa..9635cf20e11 100644
--- a/main/doxygen/APKBUILD
+++ b/main/doxygen/APKBUILD
@@ -1,24 +1,23 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=doxygen
-pkgver=1.9.4
+pkgver=1.10.0
pkgrel=0
-pkgdesc="A documentation system for C++, C, Java, IDL and PHP"
+pkgdesc="Documentation system for C++, C, Java, IDL and PHP"
url="https://www.doxygen.nl/"
arch="all"
license="GPL-2.0-or-later"
checkdepends="libxml2-utils"
makedepends="flex bison coreutils perl python3 cmake samurai"
source="https://doxygen.nl/files/doxygen-$pkgver.src.tar.gz
+ remove-usage-of-fstat64.patch
"
-[ "$CARCH" = "riscv64" ] && options="textrels"
-
build() {
cmake -B build -G Ninja \
-DGIT_EXECUTABLE=/bin/false \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=MinSizeRel \
- -Dbuild_xmlparser=ON .
+ -Dbuild_xmlparser=ON
cmake --build build
}
@@ -26,7 +25,7 @@ check() {
# Remove test that use bibtex
rm -f ./testing/012_cite.dox
cd build
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest -E 061
}
package() {
@@ -34,5 +33,6 @@ package() {
}
sha512sums="
-613f17800ebd05b66b1954af4d51282a1779678e7ade6c43046fc940742a697ebdf3af8e94ac70a3422bc96def663e70eaea8c4349d192e2fe5e516c57cc345a doxygen-1.9.4.src.tar.gz
+885de36fa0b4364cdd1eddd5e02517e08da7a52274c6fda2c22cbe85f0840e2ddf7358f613c018dc39b4a6dfce2ddd627e9318e73b903f954bbad1a39d03a416 doxygen-1.10.0.src.tar.gz
+590d3ca57a0c7cc492118f386c0f90ebbc94aa7557a7095f2ac6de67fe405480d7237fa452ea6c5881fff2f4d7482080cba3bea7513ac0e10cdc458ad345fee9 remove-usage-of-fstat64.patch
"
diff --git a/main/doxygen/remove-usage-of-fstat64.patch b/main/doxygen/remove-usage-of-fstat64.patch
new file mode 100644
index 00000000000..97d5f1df516
--- /dev/null
+++ b/main/doxygen/remove-usage-of-fstat64.patch
@@ -0,0 +1,23 @@
+--- a/deps/spdlog/include/spdlog/details/os-inl.h
++++ b/deps/spdlog/include/spdlog/details/os-inl.h
+@@ -236,20 +236,11 @@
+ # else
+ int fd = ::fileno(f);
+ # endif
+-// 64 bits(but not in osx or cygwin, where fstat64 is deprecated)
+-# if (defined(__linux__) || defined(__sun) || defined(_AIX)) && (defined(__LP64__) || defined(_LP64))
+- struct stat64 st;
+- if (::fstat64(fd, &st) == 0)
+- {
+- return static_cast<size_t>(st.st_size);
+- }
+-# else // other unix or linux 32 bits or cygwin
+ struct stat st;
+ if (::fstat(fd, &st) == 0)
+ {
+ return static_cast<size_t>(st.st_size);
+ }
+-# endif
+ #endif
+ throw_spdlog_ex("Failed getting file size from fd", errno);
+ return 0; // will not be reached.
diff --git a/main/dpkg/APKBUILD b/main/dpkg/APKBUILD
index 0d448d834e2..c3900fe9996 100644
--- a/main/dpkg/APKBUILD
+++ b/main/dpkg/APKBUILD
@@ -1,15 +1,15 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=dpkg
-pkgver=1.21.8
-pkgrel=0
+pkgver=1.22.6
+pkgrel=1
pkgdesc="The Debian Package Manager"
url="https://wiki.debian.org/Teams/Dpkg"
arch="all"
-license="GPL-2.0-or-later BSD-2-Clause"
+license="GPL-2.0-or-later AND BSD-2-Clause"
depends="tar xz"
-checkdepends="gzip coreutils"
-makedepends="bzip2-dev linux-headers perl zlib-dev po4a"
-subpackages="$pkgname-doc $pkgname-dev $pkgname-zsh-completion:zshcomp:noarch"
+checkdepends="gzip"
+makedepends="bzip2-dev linux-headers perl zlib-dev po4a libmd-dev"
+subpackages="$pkgname-doc $pkgname-dev $pkgname-zsh-completion"
source="https://deb.debian.org/debian/pool/main/d/dpkg/dpkg_$pkgver.tar.xz"
# secfixes:
@@ -24,14 +24,6 @@ prepare() {
# a permission mismatch. To fix this remove the S_ISGID from
# $srcdir.
chmod -R g-s "$srcdir"
-
- # This test fails with:
- #
- # dpkg-checkbuilddeps: error: Unmet build dependencies: build-essential:native
- #
- # Probably unfixable as we don't have a build-essential dpkg package.
- sed -i "$builddir"/scripts/Makefile.in \
- -e '/dpkg_buildpackage\.t/d'
}
build() {
@@ -59,19 +51,15 @@ check() {
package() {
make DESTDIR="$pkgdir" install
- # Add missing dir & files
- install -d "$pkgdir/var/$pkgname"/updates/
-
touch "$pkgdir/var/lib/$pkgname"/status
touch "$pkgdir/var/lib/$pkgname"/available
- rm "$pkgdir"/usr/lib/libdpkg.a
}
dev() {
default_dev
pkgdesc="Debian package development tools"
depends="perl"
- mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/usr/share \
+ mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/usr/share/dpkg \
"$subpkgdir"/usr/lib/dpkg
mv "$pkgdir"/usr/bin/dpkg-architecture \
@@ -89,11 +77,16 @@ dev() {
"$pkgdir"/usr/bin/dpkg-shlibdeps \
"$pkgdir"/usr/bin/dpkg-source \
"$pkgdir"/usr/bin/dpkg-vendor \
+ "$pkgdir"/usr/bin/dpkg-buildflags \
+ "$pkgdir"/usr/bin/dpkg-genbuildinfo \
+ "$pkgdir"/usr/bin/dpkg-buildapi \
"$subpkgdir"/usr/bin/
mv "$pkgdir"/usr/share/perl* "$subpkgdir"/usr/share/
+ mv "$pkgdir"/usr/share/dpkg/*.mk \
+ "$subpkgdir"/usr/share/dpkg
}
sha512sums="
-4fc000ede877fa291f5c2527efe767bfd5d9a73b537e53374bc285e52645a268d070c2d96eb3267f132a890dae17fc5a383475b7d354f3cec6cecd0ca00d2da2 dpkg_1.21.8.tar.xz
+a7a1c42ee69c9b90842ac98140978331ad311b49db23151c796218052ad673bc99c456ad568a4b71bb48f59930adc22ad60f78900ee2a6f04c5fca3096da5983 dpkg_1.22.6.tar.xz
"
diff --git a/main/drbd-utils/APKBUILD b/main/drbd-utils/APKBUILD
index a3a3003ba87..c754fc0b2a1 100644
--- a/main/drbd-utils/APKBUILD
+++ b/main/drbd-utils/APKBUILD
@@ -1,26 +1,44 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=drbd-utils
-pkgver=9.21.1
+pkgver=9.27.0
pkgrel=0
pkgdesc="Network-based RAID 1"
url="https://www.drbd.org"
arch="all"
license="GPL-2.0-or-later"
depends="bash"
-makedepends="bison docbook-xsl flex libxslt linux-headers po4a asciidoctor"
+makedepends="
+ asciidoctor
+ bison
+ docbook-xsl
+ flex
+ keyutils-dev
+ libxslt
+ linux-headers
+ po4a
+ "
options="!check" # no tests provided
provides="drbd=$pkgver-r$pkgrel"
-subpackages="$pkgname-doc $pkgname-pacemaker::noarch
- $pkgname-bash-completion:bashcomp:noarch $pkgname-openrc"
-source="https://pkg.linbit.com//downloads/drbd/utils/drbd-utils-$pkgver.tar.gz
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-doc
+ $pkgname-openrc
+ $pkgname-pacemaker::noarch
+ "
+source="https://pkg.linbit.com/downloads/drbd/utils/drbd-utils-$pkgver.tar.gz
drbdsetup-permissions.patch
- fix-drbdsetup_events2.c.patch
drbd.initd
"
build() {
- ./configure --prefix=/usr \
+ CFLAGS="$CFLAGS -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ ./configure \
+ --host=$CHOST \
+ --build=$CBUILD \
+ --disable-dependency-tracking \
+ --prefix=/usr \
--sbindir=/sbin \
--sysconfdir=/etc \
--mandir=/usr/share/man \
@@ -41,28 +59,20 @@ package() {
make DESTDIR="$pkgdir" install
install -m755 -D "$srcdir/drbd.initd" "$pkgdir/etc/init.d/drbd"
+
+ mkdir -p "$pkgdir"/usr/share/bash-completion
+ mv "$pkgdir"/etc/bash_completion.d \
+ "$pkgdir"/usr/share/bash-completion/completions
}
pacemaker() {
depends="$pkgname=$pkgver-r$pkgrel"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/ocf "$subpkgdir"/usr/lib
-}
-
-bashcomp() {
- pkgdesc="Bash completions for $pkgname"
- depends=""
- install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
-
- mkdir -p "$subpkgdir"/usr/share/bash-completion
- mv "$pkgdir"/etc/bash_completion.d \
- "$subpkgdir"/usr/share/bash-completion/completions
+ amove usr/lib/ocf
}
sha512sums="
-f6f7d0a5a440c8dd276cb143650fb4152b063fa840cbf68395cd2c36d74da5cd1a45f4413bef1a22724d19f875199d62d3e0372841690cec02fff16975c27fdd drbd-utils-9.21.1.tar.gz
-562ae8eee03148666fb6e6e700c1eb9086f6901e176ea6cd007e3ac4e39d1cdaf967064de74dc1ad620155996dc7011bd0e2abd1c9595ff9bf5f4413673726f3 drbdsetup-permissions.patch
-dc9d825019803ab5cf66d14b0b67b9d3f42cabac2aee07228176b9ff73dacc74e413f2c9ed0fe22a8217ff502c80b891950d1d4fb51df56d9c8e51e7c1fc1cc6 fix-drbdsetup_events2.c.patch
+066849e77bac04515682f497398e3840eecdf16c866a0d67df4e8978e9278dee120d9a216ba7dcf16e1dc2cfdd7271ff775e5bee9ccd0cead8360b7e33e08f5d drbd-utils-9.27.0.tar.gz
+39a64a59577a28f8dc5f968bcfd35ab04b010ec1b9390dcaedefa609b8999ec4aabf2cfaf2db7dfd8348d8d09aca5720839de51b3bfb093960b3c61f92ebe4f0 drbdsetup-permissions.patch
f61a833dc5eea79000a7dd85e83ae10e284109c76b5d59974ed69f92dbab6c389d6d20f7ea374b7c066519c6d1d816ed27b48dbaee6b91fb9754974acf52f46e drbd.initd
"
diff --git a/main/drbd-utils/drbdsetup-permissions.patch b/main/drbd-utils/drbdsetup-permissions.patch
index ca0a3642aca..52a74394740 100644
--- a/main/drbd-utils/drbdsetup-permissions.patch
+++ b/main/drbd-utils/drbdsetup-permissions.patch
@@ -1,9 +1,9 @@
--- ./user/v9/Makefile.in.orig
+++ ./user/v9/Makefile.in
-@@ -109,15 +109,9 @@
- install -d $(DESTDIR)$(sbindir)
- install -d $(DESTDIR)$(localstatedir)/lib/drbd
- install -d $(DESTDIR)$(localstatedir)/lock
+@@ -145,15 +144,9 @@
+ install -m 0755 -d $(DESTDIR)$(localstatedir)/lib/drbd
+ install -m 0755 -d $(DESTDIR)$(localstatedir)/run/drbd
+ install -m 0700 -d $(DESTDIR)$(localstatedir)/run/drbd/lock
- if getent group haclient > /dev/null 2> /dev/null ; then \
- install -g haclient -m 4750 drbdsetup $(DESTDIR)$(sbindir) ; \
- install -g haclient -m 4750 drbdmeta $(DESTDIR)$(sbindir) ; \
diff --git a/main/drbd-utils/fix-drbdsetup_events2.c.patch b/main/drbd-utils/fix-drbdsetup_events2.c.patch
deleted file mode 100644
index e1cf69cf384..00000000000
--- a/main/drbd-utils/fix-drbdsetup_events2.c.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-Author: Milan P. Stanić <mps@arvanta.net>
-Date: 2021-04-13 06:32:07.000000000 +0000
-
-musl doesn't support __free_fn_t, fix this by 'void (*)(void *)'
-
---- a//user/v9/drbdsetup_events2.c 2021-04-13 06:32:07.000000000 +0000
-+++ b//user/v9/drbdsetup_events2.c 2021-06-23 06:52:47.451319822 +0000
-@@ -1375,7 +1375,7 @@ void events2_prepare_update()
- /* Drop all data and start again with new initial state. */
- void events2_reset()
- {
-- tdestroy(all_resources, (__free_fn_t) free_resource);
-+ tdestroy(all_resources, (void (*)(void *)) free_resource);
- all_resources = NULL;
- initial_state = true;
- }
diff --git a/main/dropbear/APKBUILD b/main/dropbear/APKBUILD
index 2cda1f7a8a0..a1d78ef7931 100644
--- a/main/dropbear/APKBUILD
+++ b/main/dropbear/APKBUILD
@@ -2,14 +2,14 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=dropbear
-pkgver=2022.82
-pkgrel=0
+pkgver=2024.84
+pkgrel=1
pkgdesc="small SSH 2 client/server designed for small memory environments"
url="https://matt.ucc.asn.au/dropbear/dropbear.html"
arch="all"
license="MIT"
options="!check"
-makedepends="zlib-dev linux-headers utmps-dev utmps-static"
+makedepends="zlib-dev linux-headers utmps-dev utmps-static autoconf automake"
subpackages="$pkgname-doc
$pkgname-openrc
$pkgname-convert:_convert
@@ -20,9 +20,13 @@ source="https://matt.ucc.asn.au/dropbear/releases/dropbear-$pkgver.tar.bz2
dropbear.initd
dropbear.confd
dropbear-options_sftp-server_path.patch
+ dropbear-fix-utmp.patch
+ new-config.h-location.patch
"
# secfixes:
+# 2022.83-r4:
+# - CVE-2023-48795
# 2020.79-r0:
# - CVE-2018-20685
# 2018.76-r2:
@@ -30,9 +34,14 @@ source="https://matt.ucc.asn.au/dropbear/releases/dropbear-$pkgver.tar.bz2
_progs="dropbear dropbearkey dbclient dropbearconvert scp"
+prepare() {
+ default_prepare
+ autoreconf -fvi
+}
+
build() {
CFLAGS="$CFLAGS $(pkg-config --cflags --static utmps)" \
- LDLIBS="$LDLIBS $(pkg-config --libs --static utmps)" \
+ LIBS="$LDLIBS $(pkg-config --libs --static utmps)" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -41,7 +50,9 @@ build() {
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--localstatedir=/var \
+ --disable-utmp \
--disable-wtmp \
+ --disable-pututline \
--disable-lastlog
make PROGRAMS="$_progs"
}
@@ -49,6 +60,7 @@ build() {
package() {
make PROGRAMS="$_progs" DESTDIR="$pkgdir" install
+ install -dm755 "$pkgdir"/etc/dropbear
install -D -m755 "$srcdir"/dropbear.initd \
"$pkgdir"/etc/init.d/dropbear
install -D -m644 "$srcdir"/dropbear.confd \
@@ -84,8 +96,10 @@ _ssh() {
}
sha512sums="
-94c664e0d56bce3750b04aff166bf073f778dc2aa08e093541b520db1f165d4173e1cf25eef69a59b0a5a0a63cfb3ce8bbf94d6c4010687a0233ba1ad8ea403b dropbear-2022.82.tar.bz2
-9c55ab3d8b61955cde1ccc1b8acbd3d2ef123feb9489e92737304c35315d07b7f85fad8a12ac7b0ec2c1dcee3d76b8bc4aa18518f4ddd963917805db33e48826 dropbear.initd
+254daea819c5aeaa65bb43449386fb964f4aa13e3b3037fe11064120205c6e265925e7ef2d84f7ebe66c6a00cf0a22e6010314c065ed49a3815f47137b7aca44 dropbear-2024.84.tar.bz2
+55af2b9ece9845f30e07f707474c81d78921b17abfe614669fcefa600868d4ecef007a1e2276b74db8675ba5562c78397da6ae8de8717a2ca9c425384dc519d5 dropbear.initd
83f2c1eaf7687917a4b2bae7d599d4378c4bd64f9126ba42fc5d235f2b3c9a474d1b3168d70ed64bb4101cc251d30bc9ae20604da9b5d819fcd635ee4d0ebb0f dropbear.confd
-df3fa2c64665b669257ec511afa2e04107eb6b0a2a4238ad9b33db3d322b90854b00506e14a09b648fe2d716dc6c140212cc1739f7cd03088f9b7b9781aaa499 dropbear-options_sftp-server_path.patch
+09e73041ecb55d5d97106b3b8f4256df9e6d84c7aceeaaccdb148a9243ccd4defaccb320c45bf76620f5b004264dd775dbfc207db4a045ee1c7b7db2dedb2d79 dropbear-options_sftp-server_path.patch
+5c0d118944481237611cdbe9239bd26548859dc2ab04f2e81854388de9c34c99e083843e925312b4f90ce8b22037bef3c61858fc19d843e5b6db5f3006448304 dropbear-fix-utmp.patch
+b773b90e92f451a99b6f0e98c85b7fd614ed9a3c1562e086c4e2db1accd1cfec1129b24f3e0731411c3f09014902bc6e9493ebbc2fafc2438e51cfc450e25f15 new-config.h-location.patch
"
diff --git a/main/dropbear/dropbear-fix-utmp.patch b/main/dropbear/dropbear-fix-utmp.patch
new file mode 100644
index 00000000000..b06b8a41666
--- /dev/null
+++ b/main/dropbear/dropbear-fix-utmp.patch
@@ -0,0 +1,157 @@
+diff --git a/loginrec.c b/loginrec.c
+index af10d95..9e5c3aa 100644
+--- a/src/loginrec.c
++++ b/src/loginrec.c
+@@ -239,6 +239,13 @@ logininfo *login_alloc_entry(int pid, const char *username,
+
+ newli = (struct logininfo *) m_malloc (sizeof(*newli));
+ (void)login_init_entry(newli, pid, username, hostname, line);
++#ifdef HAVE_STRUCT_SOCKADDR_IN6
++ if (inet_pton(AF_INET6, hostname, newli->hostaddr.sa_in6.sin6_addr.s6_addr) > 0)
++ newli->hostaddr.sa_in6.sin6_family = AF_INET6;
++ else
++#endif
++ if (inet_pton(AF_INET, hostname, &newli->hostaddr.sa_in.sin_addr.s_addr) > 0)
++ newli->hostaddr.sa_in.sin_family = AF_INET;
+ return newli;
+ }
+
+@@ -473,9 +480,6 @@ void
+ construct_utmp(struct logininfo *li,
+ struct utmp *ut)
+ {
+-# ifdef HAVE_ADDR_V6_IN_UTMP
+- struct sockaddr_in6 *sa6;
+-# endif
+ memset(ut, '\0', sizeof(*ut));
+
+ /* First fill out fields used for both logins and logouts */
+@@ -528,12 +532,11 @@ construct_utmp(struct logininfo *li,
+ if (li->hostaddr.sa.sa_family == AF_INET)
+ ut->ut_addr = li->hostaddr.sa_in.sin_addr.s_addr;
+ # endif
+-# ifdef HAVE_ADDR_V6_IN_UTMP
++# if defined(HAVE_STRUCT_UTMP_UT_ADDR_V6) && defined(HAVE_STRUCT_SOCKADDR_IN6)
+ /* this is just a 128-bit IPv6 address */
+ if (li->hostaddr.sa.sa_family == AF_INET6) {
+- sa6 = ((struct sockaddr_in6 *)&li->hostaddr.sa);
+- memcpy(ut->ut_addr_v6, sa6->sin6_addr.s6_addr, 16);
+- if (IN6_IS_ADDR_V4MAPPED(&sa6->sin6_addr)) {
++ memcpy(ut->ut_addr_v6, li->hostaddr.sa_in6.sin6_addr.s6_addr, 16);
++ if (IN6_IS_ADDR_V4MAPPED(&li->hostaddr.sa_in6.sin6_addr)) {
+ ut->ut_addr_v6[0] = ut->ut_addr_v6[3];
+ ut->ut_addr_v6[1] = 0;
+ ut->ut_addr_v6[2] = 0;
+@@ -569,9 +572,6 @@ set_utmpx_time(struct logininfo *li, struct utmpx *utx)
+ void
+ construct_utmpx(struct logininfo *li, struct utmpx *utx)
+ {
+-# ifdef HAVE_ADDR_V6_IN_UTMP
+- struct sockaddr_in6 *sa6;
+-# endif
+ memset(utx, '\0', sizeof(*utx));
+ # ifdef HAVE_STRUCT_UTMPX_UT_ID
+ line_abbrevname(utx->ut_id, li->line, sizeof(utx->ut_id));
+@@ -589,8 +589,6 @@ construct_utmpx(struct logininfo *li, struct utmpx *utx)
+ line_stripname(utx->ut_line, li->line, sizeof(utx->ut_line));
+ set_utmpx_time(li, utx);
+ utx->ut_pid = li->pid;
+- /* strncpy(): Don't necessarily want null termination */
+- strncpy(utx->ut_name, li->username, MIN_SIZEOF(utx->ut_name, li->username));
+
+ if (li->type == LTYPE_LOGOUT)
+ return;
+@@ -600,6 +598,9 @@ construct_utmpx(struct logininfo *li, struct utmpx *utx)
+ * for logouts.
+ */
+
++ /* strncpy(): Don't necessarily want null termination */
++ strncpy(utx->ut_name, li->username, MIN_SIZEOF(utx->ut_name, li->username));
++
+ # ifdef HAVE_STRUCT_UTMPX_UT_HOST
+ strncpy(utx->ut_host, li->hostname, MIN_SIZEOF(utx->ut_host, li->hostname));
+ # endif
+@@ -608,16 +609,15 @@ construct_utmpx(struct logininfo *li, struct utmpx *utx)
+ if (li->hostaddr.sa.sa_family == AF_INET)
+ utx->ut_addr = li->hostaddr.sa_in.sin_addr.s_addr;
+ # endif
+-# ifdef HAVE_ADDR_V6_IN_UTMP
++# if defined(HAVE_STRUCT_UTMPX_UT_ADDR_V6) && defined(HAVE_STRUCT_SOCKADDR_IN6)
+ /* this is just a 128-bit IPv6 address */
+ if (li->hostaddr.sa.sa_family == AF_INET6) {
+- sa6 = ((struct sockaddr_in6 *)&li->hostaddr.sa);
+- memcpy(ut->ut_addr_v6, sa6->sin6_addr.s6_addr, 16);
+- if (IN6_IS_ADDR_V4MAPPED(&sa6->sin6_addr)) {
+- ut->ut_addr_v6[0] = ut->ut_addr_v6[3];
+- ut->ut_addr_v6[1] = 0;
+- ut->ut_addr_v6[2] = 0;
+- ut->ut_addr_v6[3] = 0;
++ memcpy(utx->ut_addr_v6, li->hostaddr.sa_in6.sin6_addr.s6_addr, 16);
++ if (IN6_IS_ADDR_V4MAPPED(&li->hostaddr.sa_in6.sin6_addr)) {
++ utx->ut_addr_v6[0] = utx->ut_addr_v6[3];
++ utx->ut_addr_v6[1] = 0;
++ utx->ut_addr_v6[2] = 0;
++ utx->ut_addr_v6[3] = 0;
+ }
+ }
+ # endif
+@@ -1047,30 +1047,12 @@ wtmp_get_entry(struct logininfo *li)
+ **/
+
+ #ifdef USE_WTMPX
+-/* write a wtmpx entry direct to the end of the file */
+-/* This is a slight modification of code in OpenBSD's logwtmp.c */
++/* write a wtmpx entry via updwtmpx() */
+ static int
+ wtmpx_write(struct logininfo *li, struct utmpx *utx)
+ {
+- struct stat buf;
+- int fd, ret = 1;
+-
+- if ((fd = open(WTMPX_FILE, O_WRONLY|O_APPEND, 0)) < 0) {
+- dropbear_log(LOG_WARNING, "wtmpx_write: problem opening %s: %s",
+- WTMPX_FILE, strerror(errno));
+- return 0;
+- }
+-
+- if (fstat(fd, &buf) == 0)
+- if (atomicio(vwrite, fd, utx, sizeof(*utx)) != sizeof(*utx)) {
+- ftruncate(fd, buf.st_size);
+- dropbear_log(LOG_WARNING, "wtmpx_write: problem writing %s: %s",
+- WTMPX_FILE, strerror(errno));
+- ret = 0;
+- }
+- (void)close(fd);
+-
+- return ret;
++ updwtmpx(WTMPX_FILE, utx);
++ return 1;
+ }
+
+
+diff --git a/loginrec.h b/loginrec.h
+index b2e3778..f594ad7 100644
+--- a/src/loginrec.h
++++ b/src/loginrec.h
+@@ -105,6 +105,9 @@
+ union login_netinfo {
+ struct sockaddr sa;
+ struct sockaddr_in sa_in;
++#ifdef HAVE_STRUCT_SOCKADDR_IN6
++ struct sockaddr_in6 sa_in6;
++#endif
+ #ifdef HAVE_STRUCT_SOCKADDR_STORAGE
+ struct sockaddr_storage sa_storage;
+ #endif
+diff --git a/svr-chansession.c b/svr-chansession.c
+index 656a968..bb4536c 100644
+--- a/src/svr-chansession.c
++++ b/src/svr-chansession.c
+@@ -850,6 +850,7 @@ static int ptycommand(struct Channel *channel, struct ChanSess *chansess) {
+ * terminal used for stdout with the dup2 above, otherwise
+ * the wtmp login will not be recorded */
+ li = chansess_login_alloc(chansess);
++ li->pid = getpid();
+ login_login(li);
+ login_free_entry(li);
+
diff --git a/main/dropbear/dropbear-options_sftp-server_path.patch b/main/dropbear/dropbear-options_sftp-server_path.patch
index 73b9d663b35..7799d80fcba 100644
--- a/main/dropbear/dropbear-options_sftp-server_path.patch
+++ b/main/dropbear/dropbear-options_sftp-server_path.patch
@@ -1,5 +1,5 @@
---- a/default_options.h
-+++ b/default_options.h
+--- a/src/default_options.h
++++ b/src/default_options.h
@@ -296,7 +296,7 @@
* OpenSSH), set the path below and set DROPBEAR_SFTPSERVER.
* The sftp-server program is not provided by Dropbear itself */
diff --git a/main/dropbear/dropbear.initd b/main/dropbear/dropbear.initd
index 633cede4d3e..0aaf7dfa99f 100644
--- a/main/dropbear/dropbear.initd
+++ b/main/dropbear/dropbear.initd
@@ -10,13 +10,6 @@ depend() {
}
check_config() {
- if [ ! -e /etc/dropbear/ ] ; then
- mkdir /etc/dropbear/
- fi
- if [ ! -e /etc/dropbear/dropbear_dss_host_key ] ; then
- einfo "Generating DSS-Hostkey..."
- /usr/bin/dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key
- fi
if [ ! -e /etc/dropbear/dropbear_rsa_host_key ] ; then
einfo "Generating RSA-Hostkey..."
/usr/bin/dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key
@@ -25,6 +18,10 @@ check_config() {
einfo "Generating ECDSA-Hostkey..."
/usr/bin/dropbearkey -t ecdsa -f /etc/dropbear/dropbear_ecdsa_host_key
fi
+ if [ ! -e /etc/dropbear/dropbear_ed25519_host_key ] ; then
+ einfo "Generating ED25519-Hostkey..."
+ /usr/bin/dropbearkey -t ed25519 -f /etc/dropbear/dropbear_ed25519_host_key
+ fi
}
start() {
diff --git a/main/dropbear/new-config.h-location.patch b/main/dropbear/new-config.h-location.patch
new file mode 100644
index 00000000000..13e2f15fa0a
--- /dev/null
+++ b/main/dropbear/new-config.h-location.patch
@@ -0,0 +1,11 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -890,7 +890,7 @@
+
+ AC_CONFIG_AUX_DIR([src])
+
+-AC_CONFIG_HEADERS([config.h:src/config.h.in])
++AC_CONFIG_HEADERS([src/config.h:src/config.h.in])
+ AC_CONFIG_FILES(Makefile $LIBTOM_FILES test/Makefile)
+ AC_OUTPUT
+
diff --git a/main/dtach/APKBUILD b/main/dtach/APKBUILD
index b0f2d6cec85..5cb2e7edfd8 100644
--- a/main/dtach/APKBUILD
+++ b/main/dtach/APKBUILD
@@ -1,18 +1,15 @@
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=dtach
pkgver=0.9
-pkgrel=2
+pkgrel=5
pkgdesc="A program that emulates the detach feature of screen"
-url="http://dtach.sourceforge.net"
+url="https://dtach.sourceforge.net/"
arch="all"
-license="GPL"
-source="https://downloads.sourceforge.net/project/${pkgname}/${pkgname}/${pkgver}/${pkgname}-${pkgver}.tar.gz"
+license="GPL-2.0-or-later"
+source="https://downloads.sourceforge.net/project/dtach/dtach/$pkgver/dtach-$pkgver.tar.gz"
subpackages="$pkgname-doc"
-builddir="$srcdir/$pkgname-$pkgver"
-
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -21,12 +18,10 @@ build() {
}
check() {
- cd "$builddir"
./dtach --help > /dev/null
}
package() {
- cd "$builddir"
install -Dm755 dtach "$pkgdir"/usr/bin/dtach
install -Dm644 dtach.1 "$pkgdir"/usr/share/man/man1/dtach.1
install -Dm644 README "$pkgdir"/usr/share/doc/dtach/README
diff --git a/main/dtc/APKBUILD b/main/dtc/APKBUILD
index a5ac44f1fe3..ff2655fb99c 100644
--- a/main/dtc/APKBUILD
+++ b/main/dtc/APKBUILD
@@ -1,26 +1,35 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=dtc
-pkgver=1.6.1
-pkgrel=1
+pkgver=1.7.0
+pkgrel=2
pkgdesc="Device Tree Compiler"
url="https://git.kernel.org/pub/scm/utils/dtc/dtc.git/"
arch="all"
license="GPL-2.0-or-later"
-makedepends="bison flex python3-dev swig"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ bison
+ flex
+ py3-setuptools
+ python3-dev
+ swig
+ "
checkdepends="coreutils"
-subpackages="$pkgname-dev libfdt py3-libfdt:py3_libfdt"
+subpackages="$pkgname-dev libfdt py3-libfdt-pyc py3-libfdt:py3_libfdt"
source="https://kernel.org/pub/software/utils/dtc/dtc-$pkgver.tar.xz
install-pylibfdt-to-destdir.patch
- pylibfdt-fix-with-Python-3.10.patch
+ pyscm.patch
+ fix-tests-for-Python3.12.patch
"
prepare() {
default_prepare
sed -i s:-Werror::g "$builddir"/Makefile
+ sed -i "s|@VERSION@|$pkgver|" setup.py
}
build() {
- make
+ make -j1
}
check() {
@@ -34,6 +43,7 @@ package() {
libfdt() {
pkgdesc="Device tree library"
+ license="GPL-2.0-or-later OR BSD-2-Clause"
amove usr/lib/libfdt*
}
@@ -44,7 +54,8 @@ py3_libfdt() {
}
sha512sums="
-26cd351ddca411ab96b93ac3e763f817f9f8a80ca66a8707e1077f771ed8e7e04c01f321ab8ab27b2f9826d9d438483fe3156401493bfd29cef3cc71a1414568 dtc-1.6.1.tar.xz
+d3ba6902a9a2f2cdbaff55f12fca3cfe4a1ec5779074a38e3d8b88097c7abc981835957e8ce72971e10c131e05fde0b1b961768e888ff96d89e42c75edb53afb dtc-1.7.0.tar.xz
1c43dfae8d15861c4f0170f0df9ba63d197ab3be50e39fe5748e547074c52dc7b042ca5e9c64d3d4bb0a8e8cde8df7e71660cde93e9512923405c38debcaa01c install-pylibfdt-to-destdir.patch
-1c7d2b5f7dcb8aed38a1b685e3be30497988933c2149a169b20fb2df53c44b8584cfdb9bad695a5d357598e33bf85cddb38397477862d46e2de69e46fc53556a pylibfdt-fix-with-Python-3.10.patch
+e74768f6bcbe0ba8060c7b0b449e533b2fbbf3ddc1c869b98cf3f78a858c63ba1d7d57b5163eb5be048c6f0be023360f709d621e2f88d4332a7ef8e8d125cc09 pyscm.patch
+2fc10469b4c1f5016cdccd1a1e24d1f0984267c88efe88d268d52d9a49c441d832f53bf004a5223810c82e0f10cf5b515d6a6ddb56e49ca5bb86b55724634f0b fix-tests-for-Python3.12.patch
"
diff --git a/main/dtc/fix-tests-for-Python3.12.patch b/main/dtc/fix-tests-for-Python3.12.patch
new file mode 100644
index 00000000000..7a08648f383
--- /dev/null
+++ b/main/dtc/fix-tests-for-Python3.12.patch
@@ -0,0 +1,43 @@
+Description: Python3.12 causes breakage for get_mem_rsv in pylibfdt.
+
+ Author: Héctor Orón Martínez <zumbi@debian.org>
+
+---
+
+Bug: https://github.com/dgibson/dtc/issues/123
+Bug-Debian: https://bugs.debian.org/1061318
+Bug-Ubuntu: https://launchpad.net/bugs/2051399
+Last-Update: 2024-01-30
+
+--- device-tree-compiler-1.7.0.orig/tests/pylibfdt_tests.py
++++ device-tree-compiler-1.7.0/tests/pylibfdt_tests.py
+@@ -418,9 +418,14 @@ class PyLibfdtBasicTests(unittest.TestCa
+ def testReserveMap(self):
+ """Test that we can access the memory reserve map"""
+ self.assertEqual(2, self.fdt.num_mem_rsv())
+- self.assertEqual([ 0xdeadbeef00000000, 0x100000],
+- self.fdt.get_mem_rsv(0))
+- self.assertEqual([123456789, 0o10000], self.fdt.get_mem_rsv(1))
++ if sys.version_info.major >= 3 and sys.version_info.minor >= 12:
++ self.assertEqual([0, 0xdeadbeef00000000, 0x100000],
++ self.fdt.get_mem_rsv(0))
++ self.assertEqual([0, 123456789, 0o10000], self.fdt.get_mem_rsv(1))
++ else:
++ self.assertEqual([0xdeadbeef00000000, 0x100000],
++ self.fdt.get_mem_rsv(0))
++ self.assertEqual([123456789, 0o10000], self.fdt.get_mem_rsv(1))
+
+ def testEmpty(self):
+ """Test that we can create an empty tree"""
+@@ -615,7 +620,10 @@ class PyLibfdtSwTests(unittest.TestCase)
+
+ fdt = sw.as_fdt()
+ self.assertEqual(2, fdt.num_mem_rsv())
+- self.assertEqual([TEST_ADDR_1, TEST_SIZE_1], fdt.get_mem_rsv(0))
++ if sys.version_info.major >= 3 and sys.version_info.minor >= 12:
++ self.assertEqual([0, TEST_ADDR_1, TEST_SIZE_1], fdt.get_mem_rsv(0))
++ else:
++ self.assertEqual([TEST_ADDR_1, TEST_SIZE_1], fdt.get_mem_rsv(0))
+
+ # Make sure we can add a few more things
+ with sw.add_node('another'):
diff --git a/main/dtc/pylibfdt-fix-with-Python-3.10.patch b/main/dtc/pylibfdt-fix-with-Python-3.10.patch
deleted file mode 100644
index c6b9298d84d..00000000000
--- a/main/dtc/pylibfdt-fix-with-Python-3.10.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 383e148b70a47ab15f97a19bb999d54f9c3e810f Mon Sep 17 00:00:00 2001
-From: Ross Burton <ross.burton@arm.com>
-Date: Thu, 11 Nov 2021 16:05:36 +0000
-Subject: pylibfdt: fix with Python 3.10
-
-Since Python 2.5 the argument parsing functions when parsing expressions
-such as s# (string plus length) expect the length to be an int or a
-ssize_t, depending on whether PY_SSIZE_T_CLEAN is defined or not.
-
-Python 3.8 deprecated the use of int, and with Python 3.10 this symbol
-must be defined and ssize_t used[1].
-
-Define the magic symbol when building the extension, and cast the ints
-from the libfdt API to ssize_t as appropriate.
-
-[1] https://docs.python.org/3.10/whatsnew/3.10.html#id2
-
-Signed-off-by: Ross Burton <ross.burton@arm.com>
-Message-Id: <20211111160536.2516573-1-ross.burton@arm.com>
-[dwg: Adjust for new location of setup.py]
-Tested-by: Rob Herring <robh@kernel.org>
-Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
----
- pylibfdt/libfdt.i | 4 ++--
- setup.py | 1 +
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/pylibfdt/libfdt.i b/pylibfdt/libfdt.i
-index 51ee801..075ef70 100644
---- a/pylibfdt/libfdt.i
-+++ b/pylibfdt/libfdt.i
-@@ -1044,9 +1044,9 @@ typedef uint32_t fdt32_t;
- $result = Py_None;
- else
- %#if PY_VERSION_HEX >= 0x03000000
-- $result = Py_BuildValue("y#", $1, *arg4);
-+ $result = Py_BuildValue("y#", $1, (Py_ssize_t)*arg4);
- %#else
-- $result = Py_BuildValue("s#", $1, *arg4);
-+ $result = Py_BuildValue("s#", $1, (Py_ssize_t)*arg4);
- %#endif
- }
-
-diff --git a/setup.py b/setup.py
-index 4b07be9..0a0daf1 100755
---- a/pylibfdt/setup.py
-+++ b/pylibfdt/setup.py
-@@ -42,6 +42,7 @@ top_builddir = get_top_builddir()
- libfdt_module = Extension(
- '_libfdt',
- sources=[os.path.join(srcdir, 'libfdt.i')],
-+ define_macros=[('PY_SSIZE_T_CLEAN', None)],
- include_dirs=[os.path.join(srcdir, '../libfdt')],
- libraries=['fdt'],
- library_dirs=[os.path.join(top_builddir, 'libfdt')],
---
-cgit 1.2.3-1.el7
-
diff --git a/main/dtc/pyscm.patch b/main/dtc/pyscm.patch
new file mode 100644
index 00000000000..62157aad584
--- /dev/null
+++ b/main/dtc/pyscm.patch
@@ -0,0 +1,19 @@
+no setuptools_scm in main
+--
+diff --git a/setup.py b/setup.py
+index e82a832..da01efd 100755
+--- a/setup.py
++++ b/setup.py
+@@ -49,11 +49,8 @@ class build_py(_build_py):
+
+ setup(
+ name='libfdt',
+- use_scm_version={
+- "root": srcdir,
+- },
+ cmdclass = {'build_py' : build_py},
+- setup_requires = ['setuptools_scm'],
++ version="@VERSION@",
+ author='Simon Glass',
+ author_email='sjg@chromium.org',
+ description='Python binding for libfdt',
diff --git a/main/e2fsprogs/APKBUILD b/main/e2fsprogs/APKBUILD
index 9af43b35f96..c0ea044bf6d 100644
--- a/main/e2fsprogs/APKBUILD
+++ b/main/e2fsprogs/APKBUILD
@@ -1,17 +1,28 @@
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=e2fsprogs
-pkgver=1.46.5
-pkgrel=1
+pkgver=1.47.0
+pkgrel=5
pkgdesc="Standard Ext2/3/4 filesystem utilities"
-url="http://e2fsprogs.sourceforge.net/"
+url="https://e2fsprogs.sourceforge.net/"
arch="all"
license="GPL-2.0-or-later AND LGPL-2.0-or-later AND BSD-3-Clause AND MIT"
depends_dev="util-linux-dev gawk"
-makedepends="$depends_dev linux-headers"
+# XXX: build hack to upgrade live on builders
+makedepends="$depends_dev musl>1.2.3_git20230322-r2 linux-headers fuse-dev"
checkdepends="diffutils perl coreutils"
-subpackages="$pkgname-static $pkgname-dev $pkgname-doc libcom_err $pkgname-libs $pkgname-extra"
+subpackages="
+ $pkgname-static
+ $pkgname-dev
+ libcom_err
+ fuse2fs
+ fuse2fs-doc:fuse2fs_doc:noarch
+ $pkgname-doc
+ $pkgname-libs
+ $pkgname-extra
+ "
source="$pkgname-$pkgver.tar.gz::https://github.com/tytso/e2fsprogs/archive/v$pkgver.tar.gz
+ lfs64.patch
"
case $CHOST in
@@ -31,12 +42,12 @@ esac
# - CVE-2019-5094
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
--mandir=/usr/share/man \
--enable-elf-shlibs \
- --enable-lto \
--enable-symlink-install \
--disable-fsck \
--disable-uuidd \
@@ -63,7 +74,7 @@ check() {
}
package() {
- make -j1 MKDIR_P="install -d" DESTDIR="$pkgdir" install install-libs
+ make -j1 DESTDIR="$pkgdir" install install-libs
mv "$pkgdir"/sbin/* "$pkgdir"/usr/sbin/
local i; for i in e2fsck mke2fs mkfs.* fsck.*; do
mv "$pkgdir"/usr/sbin/$i "$pkgdir"/sbin/
@@ -72,35 +83,43 @@ package() {
dev() {
default_dev
- mkdir -p "$subpkgdir"/usr/bin
- mkdir -p "$subpkgdir"/usr/share
- mv "$pkgdir"/usr/bin/compile_et "$pkgdir"/usr/bin/mk_cmds \
- "$subpkgdir"/usr/bin/
- mv "$pkgdir"/usr/share/et "$pkgdir"/usr/share/ss \
- "$subpkgdir"/usr/share
+
+ amove \
+ usr/bin/compile_et \
+ usr/bin/mk_cmds \
+ usr/share/et \
+ usr/share/ss
}
libcom_err() {
pkgdesc="Common error description library"
- mkdir -p "$subpkgdir"/lib
- mv "$pkgdir"/lib/libcom_err* "$subpkgdir"/lib/
+
+ amove lib/libcom_err*
+}
+
+fuse2fs() {
+ pkgdesc="Ext2/3/4 filesystem driver for FUSE"
+ amove usr/bin/fuse2fs
+}
+
+fuse2fs_doc() {
+ pkgdesc="Ext2/3/4 filesystem driver for FUSE (documentation)"
+ install_if="fuse2fs=$pkgver-r$pkgrel docs"
+
+ amove usr/share/man/man1/fuse2fs.1
+ gzip -9 "$subpkgdir"/usr/share/man/man1/fuse2fs.1
}
extra() {
- depends="$pkgname"
+ depends="$pkgname=$pkgver-r$pkgrel"
pkgdesc="Ext2/3/4 filesystem extra utilities"
- mkdir -p "$subpkgdir"
- rmdir "$pkgdir"/lib
- mv "$pkgdir"/usr "$subpkgdir"/
-}
-static() {
- depends=""
- pkgdesc="$pkgdesc (static libraries)"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib
+ mkdir -p "$subpkgdir"
+ amove usr
+ rmdir "$pkgdir"/lib || true
}
sha512sums="
-9e21e27b8be86b891cfc5f8c963c398e27f476d5663d6313ae48dc5d3c95f4f4ac95a9f37e971ac1dd0b8beb05b1f83b510027731e3aa906135ea21e99bea9b8 e2fsprogs-1.46.5.tar.gz
+9cb895f7deed8ee513595b7c232db8345cb7e54e6cbb33e6eeab31c860c892cbc9d721756ac1429e6731e219e1c6aacc25075d517e979397c66bf764bc8bc9fa e2fsprogs-1.47.0.tar.gz
+9b97f91529844ad04a613d61ef762951859640d2677b4e37648ecc7cfbfc0b4831e8f3e49ad952fc16267d53e6e7c6cf588350a3e36edc2e22779f43d9ef17cf lfs64.patch
"
diff --git a/main/e2fsprogs/lfs64.patch b/main/e2fsprogs/lfs64.patch
new file mode 100644
index 00000000000..055c72f1a7a
--- /dev/null
+++ b/main/e2fsprogs/lfs64.patch
@@ -0,0 +1,42 @@
+From 92f8226c3cf7d84a4937766420a411e68771dfc2 Mon Sep 17 00:00:00 2001
+From: Mike Cui <cuicui@gmail.com>
+Date: Sun, 7 May 2023 02:46:47 -0700
+Subject: [PATCH] ext2fs: Use 64-bit lseek when SIZEOF_OFF_T is 64bits
+
+musl-1.2.4 no longer defines lseek64, and since off_t is always 64-bits,
+autoconf decides to not pass in -D_FILE_OFFSET_BITS=64 when compiling,
+and this results in a compilation failure.
+
+Instead of checking _FILE_OFFSET_BITS=64, let's just check if
+SIZEOF_OFF_T is SIZEOF_LONG_LONG. Also, SIZEOF_LONG is irrelevant.
+---
+ lib/blkid/llseek.c | 2 +-
+ lib/ext2fs/llseek.c | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/lib/blkid/llseek.c b/lib/blkid/llseek.c
+index 59298646f..f24e40b1f 100644
+--- a/lib/blkid/llseek.c
++++ b/lib/blkid/llseek.c
+@@ -50,7 +50,7 @@ extern long long llseek(int fd, long long offset, int origin);
+
+ #else /* ! HAVE_LLSEEK */
+
+-#if SIZEOF_LONG == SIZEOF_LONG_LONG
++#if SIZEOF_OFF_T == SIZEOF_LONG_LONG
+
+ #define llseek lseek
+
+diff --git a/lib/ext2fs/llseek.c b/lib/ext2fs/llseek.c
+index 45f21d09d..713312aa8 100644
+--- a/lib/ext2fs/llseek.c
++++ b/lib/ext2fs/llseek.c
+@@ -51,7 +51,7 @@ extern long long llseek (int fd, long long offset, int origin);
+
+ #else /* ! HAVE_LLSEEK */
+
+-#if SIZEOF_LONG == SIZEOF_LONG_LONG || _FILE_OFFSET_BITS+0 == 64
++#if SIZEOF_OFF_T == SIZEOF_LONG_LONG
+
+ #define my_llseek lseek
+
diff --git a/main/ed/APKBUILD b/main/ed/APKBUILD
index 47ae22fa31e..429a9475110 100644
--- a/main/ed/APKBUILD
+++ b/main/ed/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Breno Leitao <breno.leitao@gmail.com>
# Maintainer: Sören Tempel <soeren+alpine@soeren-tempel.net>
pkgname=ed
-pkgver=1.18
-pkgrel=2
+pkgver=1.20
+pkgrel=0
pkgdesc="Line-oriented text editor used to create, display, modify and otherwise manipulate text files"
url="https://www.gnu.org/software/ed/"
arch="all"
@@ -30,5 +30,5 @@ package() {
}
sha512sums="
-e5dac94697d63fb90cc17e3e653fa56309e9652cc25b2e98a0e21f1ed41e38c48bc33b5fc746275a59e702d1644d3af88f3d82598b482f7309f4e68aab783286 ed-1.18.tar.lz
+90c0f24b1d0b7abd18d34345bc37de0e67a0bb96375a4531a742a89b53d4858c30781911c22d81aa0387d0cf4d2153e0b4286fd3483b05e4c35d5e02c0991c53 ed-1.20.tar.lz
"
diff --git a/main/efi-mkkeys/APKBUILD b/main/efi-mkkeys/APKBUILD
index a10d5cdc34a..a031c0a0329 100644
--- a/main/efi-mkkeys/APKBUILD
+++ b/main/efi-mkkeys/APKBUILD
@@ -5,7 +5,7 @@ pkgver=0.1.0
pkgrel=0
pkgdesc="Script to easily generate self-signed UEFI keys for Secure Boot"
url="https://github.com/jirutka/efi-mkkeys"
-arch="noarch !armhf !s390x !ppc64le !mips !mips64 !riscv64" # limited by efitools
+arch="noarch !armhf !s390x !ppc64le !mips !mips64 !riscv64 !loongarch64" # limited by efitools
license="MIT"
depends="efitools cmd:openssl cmd:uuidgen"
source="https://github.com/jirutka/efi-mkkeys/archive/v$pkgver/efi-mkkeys-$pkgver.tar.gz"
diff --git a/main/efi-mkuki/APKBUILD b/main/efi-mkuki/APKBUILD
index a979520a254..3866be10175 100644
--- a/main/efi-mkuki/APKBUILD
+++ b/main/efi-mkuki/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=efi-mkuki
pkgver=0.1.0
-pkgrel=0
+pkgrel=1
pkgdesc="EFI Unified Kernel Image Maker"
url="https://github.com/jirutka/efi-mkuki"
arch="noarch"
@@ -14,7 +14,9 @@ options="!check" # no tests provided
case "$CARCH" in
# Gummiboot is currently not available for other architectures.
# The user has to obtain EFI stubs themselves.
- x86*) depends="$depends gummiboot-efistub"
+ x86*) depends="$depends efistub"
+ makedepends="gummiboot-efistub"
+ ;;
esac
package() {
diff --git a/main/efibootmgr/APKBUILD b/main/efibootmgr/APKBUILD
index be7ff431c49..b4899b1aecb 100644
--- a/main/efibootmgr/APKBUILD
+++ b/main/efibootmgr/APKBUILD
@@ -1,28 +1,22 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Lucas Ramage <ramage.lucas@protonmail.com>
pkgname=efibootmgr
-pkgver=17
-pkgrel=0
+pkgver=18
+pkgrel=2
pkgdesc="Linux user-space application to modify the Intel Extensible Firmware Interface"
url="https://github.com/rhboot/efibootmgr"
-arch="x86 x86_64 armhf armv7 aarch64"
-license="GPL-2.0"
-depends=""
+arch="x86 x86_64 armhf armv7 aarch64 riscv64"
+license="GPL-2.0-or-later"
makedepends="efivar-dev linux-headers popt-dev gettext-dev"
-install=""
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/rhboot/$pkgname/archive/$pkgver.tar.gz
- musl-gettext.patch
- efivar.patch"
-builddir="$srcdir/efibootmgr-$pkgver"
+source="$pkgname-$pkgver.tar.gz::https://github.com/rhboot/efibootmgr/archive/$pkgver.tar.gz
+ musl-gettext.patch"
build() {
- cd "$builddir"
PCDIR=/usr/lib/pkgconfig EFIDIR="/boot/efi" make
}
package() {
- cd "$builddir"
EFIDIR="/boot/efi" make DESTDIR="$pkgdir" install
}
@@ -31,6 +25,7 @@ check() {
"$builddir"/src/efibootmgr --help > /dev/null
}
-sha512sums="10c7ad9a79f23dcd4708dc4f42701196af7aa11f5e9a6468ea51f7013d4caeba6c92527ba1304f6e3b2ef3b51b3b69ea1a30f81bb099a8aea49eeb30eb631e1d efibootmgr-17.tar.gz
+sha512sums="
+04e40a705cb82440fd823043b598ef9fd1acc2ceda3e8d043a93e49d43ea9481b7386cad0f46de9862beff19b8a5480d79e7d6522ae584aff6655472f967764d efibootmgr-18.tar.gz
3ed49c6d267e6f14bf43207fecb55ebc984f6fbd15d77cd1b8f466c8d0a4c3ab9bb276e8ed183b5ab0129fde5c06ffcd0450ffb7dad0edfa18b4c472e481373b musl-gettext.patch
-a8f4b37e9c0c55a3b2d20f733606653add0219066b9a46b0878885023480747936ad015a52363ceece481ae4d8b702aaa710d9fde2334aae48f97f650416e129 efivar.patch"
+"
diff --git a/main/efibootmgr/efivar.patch b/main/efibootmgr/efivar.patch
deleted file mode 100644
index 614195f3c99..00000000000
--- a/main/efibootmgr/efivar.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/src/efibootmgr.c b/src/efibootmgr.c
-index de38f01..4e1a680 100644
---- a/src/efibootmgr.c
-+++ b/src/efibootmgr.c
-@@ -1536,9 +1536,6 @@ parse_opts(int argc, char **argv)
- "invalid numeric value %s\n",
- optarg);
- }
-- /* XXX efivar-36 accidentally doesn't have a public
-- * header for this */
-- extern int efi_set_verbose(int verbosity, FILE *errlog);
- efi_set_verbose(opts.verbose - 2, stderr);
- break;
- case 'V':
diff --git a/main/efitools/APKBUILD b/main/efitools/APKBUILD
index d2ff29fcea3..e50988490f6 100644
--- a/main/efitools/APKBUILD
+++ b/main/efitools/APKBUILD
@@ -3,14 +3,17 @@
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=efitools
pkgver=1.9.2
-pkgrel=4
+pkgrel=9
pkgdesc="EFI tools"
url="https://git.kernel.org/pub/scm/linux/kernel/git/jejb/efitools.git"
# riscv64: fails to build
# others: limited by sbsigntool
-arch="all !armhf !s390x !ppc64le !mips !mips64 !riscv64"
+arch="all !armhf !s390x !ppc64le !mips !mips64 !riscv64 !loongarch64"
license="(GPL-2.0-only AND LGPL-2.1-or-later) WITH OpenSSL-Exception"
-makedepends="gnu-efi-dev openssl1.1-compat-dev perl-file-slurp help2man sbsigntool"
+options="!check" # no testsuite
+# efi-readvar requires mount(8) with -l option
+depends="mount"
+makedepends="gnu-efi-dev<3.0.17 gnu-efi<3.0.17 openssl-dev>3 perl-file-slurp help2man sbsigntool"
subpackages="$pkgname-doc"
source="https://git.kernel.org/pub/scm/linux/kernel/git/jejb/efitools.git/snapshot/efitools-$pkgver.tar.gz
001-datatypes.patch
@@ -22,7 +25,7 @@ source="https://git.kernel.org/pub/scm/linux/kernel/git/jejb/efitools.git/snapsh
prepare() {
default_prepare
- sed -i "s/-O2/${CFLAGS} -Wno-pointer-sign -O2/" Make.rules
+ sed -i "s/-O2/$CFLAGS -Wno-pointer-sign -O2/" Make.rules
}
build() {
diff --git a/main/efivar/APKBUILD b/main/efivar/APKBUILD
index 8c0e8ade154..c2a422500eb 100644
--- a/main/efivar/APKBUILD
+++ b/main/efivar/APKBUILD
@@ -1,20 +1,17 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Lucas Ramage <ramage.lucas@protonmail.com>
pkgname=efivar
-pkgver=38
-pkgrel=1
+pkgver=39
+pkgrel=0
pkgdesc="Tools and library to manipulate EFI variables"
url="https://github.com/rhboot/efivar"
arch="all !s390x"
-license="LGPL-2.1"
+license="LGPL-2.1-only"
makedepends="popt-dev linux-headers mandoc"
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
-source="https://github.com/rhboot/efivar/releases/download/$pkgver/efivar-$pkgver.tar.bz2
- musl-compat.patch
+source="$pkgname-$pkgver.tar.gz::https://github.com/rhboot/efivar/archive/refs/tags/$pkgver.tar.gz
ppc64le-compat.patch
- fix-build-riscv64.patch
"
-builddir="$srcdir/efivar-$pkgver"
prepare() {
default_prepare
@@ -22,12 +19,10 @@ prepare() {
}
build() {
- cd "$builddir"
libdir="/usr/lib" make
}
package() {
- cd "$builddir"
libdir="/usr/lib" make DESTDIR="$pkgdir" install
}
@@ -35,9 +30,8 @@ check() {
LD_LIBRARY_PATH="$builddir"/src \
"$builddir"/src/efivar --help > /dev/null
}
+
sha512sums="
-c2f17297c863ece134a9dd758d237fd2df8c8d072f87af1d0bf2bcf9acfc7a53c25597f03fd4fb8cc664b205743d4ffa0ef1b068d0f73c58fa573d40993f3155 efivar-38.tar.bz2
-1a1dfd66a5b613167eeedafe3f2728a0e644cb89860c3dad5955cbaba254ecde617e05d969eeac50be443d090136cbfec626f878f49eea2458b6b8ca17287bd4 musl-compat.patch
-77e04d2df6797faef478bde4f591dc728a90ad27a55f4a26bb3b0f427a2dd31de0b97272a176e79880125fdc2cdd1eff184c9c80c4fedb40c4304f633691d13b ppc64le-compat.patch
-042dfb79b05032cbc9baad94a9ebf7e61e1bc5976e728287f96b426229a28e1c8dea2392ed262b2753ecac1b5146d6814cb2ecf44fdfa1e63e8e968c521f33ec fix-build-riscv64.patch
+04493c30efbfc2773abac9a3dd93aa13403c05e29e3bfc72877d2054930811fae99119aadcb1729b6ca85abf5a24db786ea0c27c16d5458ef1b19e74696f5ff7 efivar-39.tar.gz
+6a1210b51c647fe6b24d05e1e39518531c3ec2cdd781f0627ec878ec11515949c38021c27e8f8b0138e53e9aafb5a4b266b7b8588d5bcdfd57f45d6316d4ccb0 ppc64le-compat.patch
"
diff --git a/main/efivar/fix-build-riscv64.patch b/main/efivar/fix-build-riscv64.patch
deleted file mode 100644
index d433a9f9ee6..00000000000
--- a/main/efivar/fix-build-riscv64.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/src/include/defaults.mk 2022-05-30 17:18:56.805985253 +0000
-+++ b/src/include/defaults.mk 2022-05-30 17:18:16.272463577 +0000
-@@ -81,6 +81,9 @@
- else
- HOST_MARCH=
- endif
-+ifeq ($(HOST_ARCH),riscv64)
-+ HOST_MARCH=
-+endif
- HOST_CPPFLAGS ?= $(CPPFLAGS)
- override _HOST_CPPFLAGS := $(HOST_CPPFLAGS)
- override HOST_CPPFLAGS = $(_HOST_CPPFLAGS) \
diff --git a/main/efivar/musl-compat.patch b/main/efivar/musl-compat.patch
deleted file mode 100644
index 00229be5c72..00000000000
--- a/main/efivar/musl-compat.patch
+++ /dev/null
@@ -1,231 +0,0 @@
-From cece3ffd5be2f8641eb694513f2b73e5eb97ffd3 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Fri, 28 Jan 2022 12:13:30 +0100
-Subject: [PATCH 1/2] efisecdb: fix build with musl libc
-
-Refactor code to use POSIX atexit(3) instead of the GNU specific
-on_exit(3).
-
-Resolves: #197
-Resolves: #202
-Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
----
- src/compiler.h | 2 --
- src/efisecdb.c | 68 +++++++++++++++++++-------------------------------
- 2 files changed, 26 insertions(+), 44 deletions(-)
-
-diff --git a/src/compiler.h b/src/compiler.h
-index e2f18f0b..d95fb014 100644
---- a/src/compiler.h
-+++ b/src/compiler.h
-@@ -7,8 +7,6 @@
- #ifndef COMPILER_H_
- #define COMPILER_H_
-
--#include <sys/cdefs.h>
--
- /* GCC version checking borrowed from glibc. */
- #if defined(__GNUC__) && defined(__GNUC_MINOR__)
- # define GNUC_PREREQ(maj,min) \
-diff --git a/src/efisecdb.c b/src/efisecdb.c
-index f8823737..6bd5ad90 100644
---- a/src/efisecdb.c
-+++ b/src/efisecdb.c
-@@ -25,6 +25,10 @@
- extern char *optarg;
- extern int optind, opterr, optopt;
-
-+static efi_secdb_t *secdb = NULL;
-+static list_t infiles;
-+static list_t actions;
-+
- struct hash_param {
- char *name;
- efi_secdb_type_t algorithm;
-@@ -187,12 +191,11 @@ add_action(list_t *list, action_type_t action_type, const efi_guid_t *owner,
- }
-
- static void
--free_actions(int status UNUSED, void *actionsp)
-+free_actions(void)
- {
-- list_t *actions = (list_t *)actionsp;
- list_t *pos, *tmp;
-
-- for_each_action_safe(pos, tmp, actions) {
-+ for_each_action_safe(pos, tmp, &actions) {
- action_t *action = list_entry(pos, action_t, list);
-
- list_del(&action->list);
-@@ -202,12 +205,11 @@ free_actions(int status UNUSED, void *actionsp)
- }
-
- static void
--free_infiles(int status UNUSED, void *infilesp)
-+free_infiles(void)
- {
-- list_t *infiles = (list_t *)infilesp;
- list_t *pos, *tmp;
-
-- for_each_ptr_safe(pos, tmp, infiles) {
-+ for_each_ptr_safe(pos, tmp, &infiles) {
- ptrlist_t *entry = list_entry(pos, ptrlist_t, list);
-
- list_del(&entry->list);
-@@ -216,27 +218,12 @@ free_infiles(int status UNUSED, void *infilesp)
- }
-
- static void
--maybe_free_secdb(int status UNUSED, void *voidp)
-+maybe_free_secdb(void)
- {
-- efi_secdb_t **secdbp = (efi_secdb_t **)voidp;
--
-- if (secdbp == NULL || *secdbp == NULL)
-+ if (secdb == NULL)
- return;
-
-- efi_secdb_free(*secdbp);
--}
--
--static void
--maybe_do_unlink(int status, void *filep)
--{
-- char **file = (char **)filep;
--
-- if (status == 0)
-- return;
-- if (file == NULL || *file == NULL)
-- return;
--
-- unlink(*file);
-+ efi_secdb_free(secdb);
- }
-
- static void
-@@ -323,15 +310,6 @@ parse_input_files(list_t *infiles, char **outfile, efi_secdb_t **secdb,
- return status;
- }
-
--/*
-- * These need to be static globals so that they're not on main's stack when
-- * on_exit() fires.
-- */
--static efi_secdb_t *secdb = NULL;
--static list_t infiles;
--static list_t actions;
--static char *outfile = NULL;
--
- int
- main(int argc, char *argv[])
- {
-@@ -351,6 +329,7 @@ main(int argc, char *argv[])
- bool do_sort_data = false;
- bool sort_descending = false;
- int status = 0;
-+ char *outfile = NULL;
-
- const char sopts[] = ":aAc:dfg:h:i:Lo:rs:t:v?";
- const struct option lopts[] = {
-@@ -376,10 +355,9 @@ main(int argc, char *argv[])
- INIT_LIST_HEAD(&infiles);
- INIT_LIST_HEAD(&actions);
-
-- on_exit(free_actions, &actions);
-- on_exit(free_infiles, &infiles);
-- on_exit(maybe_free_secdb, &secdb);
-- on_exit(maybe_do_unlink, &outfile);
-+ atexit(free_actions);
-+ atexit(free_infiles);
-+ atexit(maybe_free_secdb);
-
- /*
- * parse the command line.
-@@ -587,24 +565,30 @@ main(int argc, char *argv[])
- outfd = open(outfile, flags, 0600);
- if (outfd < 0) {
- char *tmpoutfile = outfile;
-- if (errno == EEXIST)
-- outfile = NULL;
-+ if (errno != EEXIST)
-+ unlink(outfile);
- err(1, "could not open \"%s\"", tmpoutfile);
- }
-
- rc = ftruncate(outfd, 0);
-- if (rc < 0)
-+ if (rc < 0) {
-+ unlink(outfile);
- err(1, "could not truncate output file \"%s\"", outfile);
-+ }
-
- void *output;
- size_t size = 0;
- rc = efi_secdb_realize(secdb, &output, &size);
-- if (rc < 0)
-+ if (rc < 0) {
-+ unlink(outfile);
- secdb_err(1, "could not realize signature list");
-+ }
-
- rc = write(outfd, output, size);
-- if (rc < 0)
-+ if (rc < 0) {
-+ unlink(outfile);
- err(1, "could not write signature list");
-+ }
-
- close(outfd);
- xfree(output);
-
-From df09b472419466987f2f30176dd00937e640aa9a Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Fri, 28 Jan 2022 12:29:00 +0100
-Subject: [PATCH 2/2] efisecdb: do not free optarg
-
-The *outfile passed to parse_input_files can only be either set to
-optarg or be NULL. optarg should not be free'd and NULL does not need
-to.
-
-Since we no longer use on_exit to unlink outfile we also don't need to
-set *outfile to NULL.
-
-Fixes commit d91787035bc1 (efisecdb: add efisecdb)
-
-Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
----
- src/efisecdb.c | 7 ++-----
- 1 file changed, 2 insertions(+), 5 deletions(-)
-
-diff --git a/src/efisecdb.c b/src/efisecdb.c
-index 6bd5ad90..70fa1847 100644
---- a/src/efisecdb.c
-+++ b/src/efisecdb.c
-@@ -255,8 +255,7 @@ list_guids(void)
- * failure.
- */
- static int
--parse_input_files(list_t *infiles, char **outfile, efi_secdb_t **secdb,
-- bool dump)
-+parse_input_files(list_t *infiles, efi_secdb_t **secdb, bool dump)
- {
- int status = 0;
- list_t *pos, *tmp;
-@@ -297,8 +296,6 @@ parse_input_files(list_t *infiles, char **outfile, efi_secdb_t **secdb,
- if (!dump)
- exit(1);
- status = 1;
-- xfree(*outfile);
-- *outfile = NULL;
- break;
- }
- }
-@@ -528,7 +525,7 @@ main(int argc, char *argv[])
- efi_secdb_set_bool(secdb, EFI_SECDB_SORT_DATA, do_sort_data);
- efi_secdb_set_bool(secdb, EFI_SECDB_SORT_DESCENDING, sort_descending);
-
-- status = parse_input_files(&infiles, &outfile, &secdb, dump);
-+ status = parse_input_files(&infiles, &secdb, dump);
- if (status == 0) {
- for_each_action_safe(pos, tmp, &actions) {
- action_t *action = list_entry(pos, action_t, list);
diff --git a/main/efivar/ppc64le-compat.patch b/main/efivar/ppc64le-compat.patch
index 5116d88f280..85660a4d01d 100644
--- a/main/efivar/ppc64le-compat.patch
+++ b/main/efivar/ppc64le-compat.patch
@@ -1,26 +1,17 @@
-From 625e24ca91a258ce0cc32a9bb3a67358414254b2 Mon Sep 17 00:00:00 2001
-From: Lucas Ramage <lucas.ramage@infinite-omicron.com>
-Date: Sun, 24 Apr 2022 16:07:36 -0400
-Subject: [PATCH 1/1] Fix the -march=native issue for ppc64le
-
-Resolves #213
-
-Signed-off-by: Lucas Ramage <lucas.ramage@infinite-omicron.com>
----
- src/include/defaults.mk | 4 ++++
- 1 file changed, 4 insertions(+)
-
diff --git a/src/include/defaults.mk b/src/include/defaults.mk
-index 632b155..d756caa 100644
+index 4da0cde..ccfadf2 100644
--- a/src/include/defaults.mk
+++ b/src/include/defaults.mk
-@@ -73,10 +73,14 @@ override SOFLAGS = $(_SOFLAGS) \
+@@ -73,6 +73,7 @@ override SOFLAGS = $(_SOFLAGS) \
HOST_ARCH=$(shell uname -m)
ifneq ($(HOST_ARCH),ia64)
+ifneq ($(HOST_ARCH),ppc64le)
+ ifneq ($(HOST_ARCH),riscv64)
HOST_MARCH=-march=native
else
+@@ -81,6 +82,9 @@ endif
+ else
HOST_MARCH=
endif
+else
@@ -29,6 +20,3 @@ index 632b155..d756caa 100644
HOST_CPPFLAGS ?= $(CPPFLAGS)
override _HOST_CPPFLAGS := $(HOST_CPPFLAGS)
override HOST_CPPFLAGS = $(_HOST_CPPFLAGS) \
---
-2.32.0
-
diff --git a/main/eggdrop/APKBUILD b/main/eggdrop/APKBUILD
index 6d63c4fd8c1..6608ef4473f 100644
--- a/main/eggdrop/APKBUILD
+++ b/main/eggdrop/APKBUILD
@@ -1,20 +1,22 @@
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=eggdrop
-pkgver=1.8.4
-pkgrel=4
+pkgver=1.9.5
+pkgrel=1
pkgdesc="World's most popular Open Source IRC bot"
url="https://eggheads.org/"
arch="all"
license='GPL-2.0-or-later'
options="!check" # No test suite
-makedepends="openssl1.1-compat-dev tcl-dev !bind-libs"
-subpackages="$pkgname-doc $pkgname-logs2html $pkgname-gseen"
-source="$pkgname-$pkgver.tar.gz::https://github.com/eggheads/eggdrop/archive/v$pkgver.tar.gz
+makedepends="openssl-dev>3 tcl-dev"
+subpackages="$pkgname-doc"
+source="https://github.com/eggheads/eggdrop/releases/download/v$pkgver/eggdrop-$pkgver.tar.gz
eggdrop-langdir.patch
- logs2html.mod.patch
- gseen.mod.patch
utf8.patch
"
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
./configure \
@@ -30,7 +32,6 @@ build() {
package() {
# workaround for borked Makefile
mkdir -p "$pkgdir"/usr/share/eggdrop/doc \
- "$pkgdir"/usr/share/eggdrop/scripts \
"$pkgdir"/usr/share/eggdrop/help/set/
make DEST="$pkgdir"/usr/share/eggdrop install
@@ -51,7 +52,6 @@ package() {
mv "$pkgdir"/usr/share/eggdrop/modules-* \
"$pkgdir"/usr/lib/eggdrop
-
# Fix paths of example eggdrop.conf
sed -i -e '2d' -e '1s@^.*@#!/usr/bin/eggdrop@' \
-e 's@scripts/@/usr/share/eggdrop/scripts/@g' \
@@ -61,54 +61,16 @@ package() {
mkdir -p "$pkgdir"/usr/share/doc/eggdrop
cp -a \
- COPYING FEATURES NEWS README doc/Changes1.8 eggdrop.conf \
+ COPYING FEATURES NEWS README doc/Changes1.9 eggdrop.conf \
doc/ABOUT doc/BANS doc/BOTNET doc/BUG-REPORT doc/FIRST-SCRIPT \
- doc/MODULES doc/PARTYLINE doc/TEXT-SUBSTITUTIONS doc/TRICKS \
- doc/USERS doc/WEIRD-MESSAGES doc/tcl-commands.doc doc/settings \
+ doc/MODULES doc/PARTYLINE doc/TRICKS \
+ doc/USERS doc/tcl-commands.doc doc/settings \
doc/html \
"$pkgdir"/usr/share/doc/eggdrop
}
-logs2html() {
- pkgdesc="logs2html module for eggdrop"
- install=""
- cd "$builddir"
-
- for dir in language help; do
- mkdir -p "$subpkgdir"/usr/share/eggdrop/$dir
- mv "$pkgdir"/usr/share/eggdrop/$dir/logs2html.* "$subpkgdir"/usr/share/eggdrop/$dir/
- done
-
- mkdir -p "$subpkgdir"/usr/lib/eggdrop
- mv "$pkgdir"/usr/lib/eggdrop/logs2html.so \
- "$subpkgdir"/usr/lib/eggdrop/
-
- mkdir -p "$subpkgdir"/usr/share/eggdrop/log2html
-
- for files in logs2html.conf user.css readme.txt; do
- cp src/mod/logs2html.mod/$files "$subpkgdir"/usr/share/eggdrop/log2html/
- done
-}
-
-gseen() {
- pkgdesc="gseen module for eggdrop"
- install=""
- cd "$builddir"
- mkdir -p "$subpkgdir"/usr/share/eggdrop/language
- mv "$pkgdir"/usr/share/eggdrop/language/gseen.* \
- "$subpkgdir"/usr/share/eggdrop/language/
- mkdir -p "$subpkgdir"/usr/lib/eggdrop
- mv "$pkgdir"/usr/lib/eggdrop/gseen.so \
- "$subpkgdir"/usr/lib/eggdrop/
- mkdir -p "$subpkgdir"/usr/share/eggdrop/gseen
- cp src/mod/gseen.mod/gseen.conf "$subpkgdir"/usr/share/eggdrop/gseen/
- cp src/mod/gseen.mod/README "$subpkgdir"/usr/share/eggdrop/gseen/
-}
-
sha512sums="
-80239a015f518cadc251bfc5edcf08715b9200a70eb0df7edf0efc113f320a7e407ab1fee96322fc6ec923781aa94f5a947c458e935e8a3714fb86cbcc02cb04 eggdrop-1.8.4.tar.gz
+863e6f94a92ac02e135c306000379ce516d9c9381eb5ca249e7656f4f0f504a159ddf1f658016d05e422d8036e808664101ab4f8944a42438c273f71b676189b eggdrop-1.9.5.tar.gz
d8e8655fed028030bc3cfe28207a289d0efbc412c7e01170a4d0bb31200f7ea93df310f19e83b485013ca5d4264694b4956252663cb3a63c3d5e4cc31346e0fe eggdrop-langdir.patch
-be173d94a953c4dc5b178950d06ce894deda60c3ddb8195c836797d45fbbcc9fba3bc3d3f34c96226464fdd327093a5d15bbc2b7924d18f845738c1a4dd64a3b logs2html.mod.patch
-7879b998880deb1943c41569e243f9f1a50df23982d82d942af6c111e7fac0fb8a8444c84980645ba15b71dd69c8db2dab6f90bcb7a4292306011c7bcfc03d0d gseen.mod.patch
7966d4d42994e44a0e571b89f1c66cb41f672d75e6ced7051d1ece23d8c209059c3565b41de950bf9c907701ce7a5e33a215b637587075ed300a002a58eda503 utf8.patch
"
diff --git a/main/eggdrop/eggdrop.post-install b/main/eggdrop/eggdrop.post-install
deleted file mode 100644
index 44b43cf34ef..00000000000
--- a/main/eggdrop/eggdrop.post-install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-echo "*"
-echo "* Please run /usr/bin/eggdrop-installer to install your eggdrop bot."
-echo "*"
-exit 0
-
diff --git a/main/eggdrop/gseen.mod.patch b/main/eggdrop/gseen.mod.patch
deleted file mode 100644
index dd49248c650..00000000000
--- a/main/eggdrop/gseen.mod.patch
+++ /dev/null
@@ -1,5133 +0,0 @@
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/addons/gseen.selectlang.1.0.0.tcl src/eggdrop-1.8.4/src/mod/gseen.mod/addons/gseen.selectlang.1.0.0.tcl
---- ./src/mod/gseen.mod/addons/gseen.selectlang.1.0.0.tcl 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/addons/gseen.selectlang.1.0.0.tcl 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,80 @@
-+#####################################################################
-+#
-+# gseen.selectlang v1.0.0
-+#
-+# This is a simple script which selects a language based on the
-+# user's host.
-+#
-+# It only works for /msg commands.
-+#
-+# If the user is in a channel which has a language defined, gseen's
-+# internal functions will override this selection and use the language
-+# of the channel instead.
-+#
-+#####################################################################
-+
-+
-+# Here you can define which language to use for which host.
-+# The first part is the mask for the host, and the second part
-+# is the language which should be used for this host.
-+
-+set tld-langs {
-+ {"*.de" "de"}
-+ {"*.at" "de"}
-+ {"*.ch" "de"}
-+ {"*.t-dialin.net" "de"}
-+ {"*.t-ipconnect.net" "de"}
-+ {"*.pl" "pl"}
-+ {"*.jp" "ja"}
-+}
-+
-+#################################################
-+
-+
-+proc selectlang:getlang {uhost} {
-+ global tld-langs
-+
-+ foreach tld ${tld-langs} {
-+ if {[string match [lindex $tld 0] $uhost]} {
-+ return [lindex $tld 1]
-+ }
-+ }
-+ return ""
-+}
-+
-+proc sl:rebind {oldtarget newtarget} {
-+ foreach binding [binds msg] {
-+ if {[lindex $binding 4] == $oldtarget} {
-+ unbind [lindex $binding 0] [lindex $binding 1] [lindex $binding 2] [lindex $binding 4]
-+ bind [lindex $binding 0] [lindex $binding 1] [lindex $binding 2] $newtarget
-+ }
-+ }
-+}
-+
-+proc sl:msg:trigger {nick uhost hand rest target} {
-+ global default-slang
-+
-+ set lang [selectlang:getlang $uhost]
-+ set old-slang ${default-slang}
-+ if {$lang != ""} {
-+ set default-slang $lang
-+ putlog "using '$lang'..."
-+ }
-+ $target $nick $uhost $hand $rest
-+ set default-slang ${old-slang}
-+}
-+
-+sl:rebind *msg:seen sl:msg:seen
-+proc sl:msg:seen {nick uhost hand rest} {
-+ sl:msg:trigger $nick $uhost $hand $rest *msg:seen
-+}
-+
-+sl:rebind *msg:seenstats sl:msg:seenstats
-+proc sl:msg:seenstats {nick uhost hand rest} {
-+ sl:msg:trigger $nick $uhost $hand $rest *msg:seenstats
-+}
-+
-+sl:rebind *msg:seennick sl:msg:seennick
-+proc sl:msg:seennick {nick uhost hand rest} {
-+ sl:msg:trigger $nick $uhost $hand $rest *msg:seennick
-+}
-\ No newline at end of file
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/ai.c src/eggdrop-1.8.4/src/mod/gseen.mod/ai.c
---- ./src/mod/gseen.mod/ai.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/ai.c 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,151 @@
-+/*
-+ * Copyright (C) 2000,2001 Florian Sander
-+ *
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+static int quietaiseens(char *chan)
-+{
-+ char buf[121], *b;
-+
-+ Context;
-+ strncpy(buf, quiet_ai_seen, 120);
-+ buf[120] = 0;
-+ b = buf;
-+ while (b[0])
-+ if (!strcasecmp(chan, newsplit(&b)))
-+ return 1;
-+#if EGG_IS_MIN_VER(10503)
-+ if (ngetudef("quietaiseens", chan))
-+ return 1;
-+#endif
-+ return 0;
-+}
-+
-+static int tcl_pubmseen STDVAR
-+{
-+ char *nick, *uhost, *hand, *chan, *text;
-+ char buf[1024];
-+ char *words, *word;
-+ seendat *l;
-+ int i;
-+
-+ Context;
-+ BADARGS(6, 6, " nick uhost hand chan text");
-+ nick = argv[1];
-+ uhost = argv[2];
-+ hand = argv[3];
-+ chan = argv[4];
-+ text = argv[5];
-+ reset_global_vars();
-+ glob_slang = slang_find(coreslangs, slang_chanlang_get(chanlangs, chan));
-+ glob_nick = nick;
-+ for (i = 0; i < strlen(text); i++)
-+ if (strchr("!?.,\"", text[i]))
-+ text[i] = ' ';
-+ strncpy(buf, ignore_words, 1023);
-+ buf[1023] = 0;
-+ words = buf;
-+ while (words[0])
-+ add_ignoredword(newsplit(&words));
-+ strncpy(buf, text, 1023);
-+ buf[1023] = 0;
-+ words = buf;
-+ while (words[0]) {
-+ word = newsplit(&words);
-+ if (word_is_ignored(word))
-+ continue;
-+ l = findseen(word);
-+ if (l) {
-+ if (quietaiseens(chan)) {
-+ set_prefix(SLNOTPREFIX);
-+ dprintf(DP_HELP, "NOTICE %s :%s%s\n", nick, reply_prefix,
-+ do_seen(word, nick, uhost, chan, 0));
-+ } else {
-+ set_prefix(SLPUBPREFIX);
-+ dprintf(DP_HELP, "PRIVMSG %s :%s%s\n", chan, reply_prefix,
-+ do_seen(word, nick, uhost, chan, 0));
-+ }
-+ add_seenreq(word, nick, uhost, chan, now);
-+ free_ignoredwords();
-+ Tcl_AppendResult(irp, "1", NULL);
-+ return TCL_OK;
-+ }
-+ }
-+ free_ignoredwords();
-+ Tcl_AppendResult(irp, "0", NULL);
-+ return TCL_OK;
-+}
-+
-+static tcl_cmds mytcls[] =
-+{
-+ {"*pubm:seen", tcl_pubmseen},
-+ {"*chjn:gseen", gseen_chjn},
-+ {"*chpt:gseen", gseen_chpt},
-+ {0, 0}
-+};
-+
-+static void add_ignoredword(char *word)
-+{
-+ ignoredword *l, *nl;
-+
-+ l = ignoredwords;
-+ while (l && l->next)
-+ l = l->next;
-+ nl = nmalloc(sizeof(ignoredword));
-+ nl->word = nmalloc(strlen(word) + 1);
-+ strcpy(nl->word, word);
-+ nl->next = NULL;
-+ if (ignoredwords)
-+ l->next = nl;
-+ else
-+ ignoredwords = nl;
-+}
-+
-+static void free_ignoredwords()
-+{
-+ ignoredword *l, *ll;
-+
-+ l = ignoredwords;
-+ while (l) {
-+ ll = l->next;
-+ nfree(l->word);
-+ nfree(l);
-+ l = ll;
-+ }
-+ ignoredwords = NULL;
-+}
-+
-+static int expmem_ignoredwords()
-+{
-+ ignoredword *l;
-+ int size = 0;
-+
-+ for (l = ignoredwords; l; l = l->next) {
-+ size += sizeof(ignoredword);
-+ size += strlen(l->word) + 1;
-+ }
-+ return size;
-+}
-+
-+static int word_is_ignored(char *word)
-+{
-+ ignoredword *l;
-+
-+ for (l = ignoredwords; l; l = l->next)
-+ if (!strcasecmp(l->word, word))
-+ return 1;
-+ return 0;
-+}
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/datahandling.c src/eggdrop-1.8.4/src/mod/gseen.mod/datahandling.c
---- ./src/mod/gseen.mod/datahandling.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/datahandling.c 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,151 @@
-+/*
-+ * Copyright (C) 2000,2001 Florian Sander
-+ *
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+
-+static void write_seens()
-+{
-+ seenreq *r;
-+ seenreq_by *b;
-+ FILE *f;
-+ char s[125];
-+
-+ Context;
-+ /* putlog(LOG_MISC, "*", "Saving seen data..."); */
-+ if (!gseenfile[0])
-+ return;
-+ sprintf(s, "%s~new", gseenfile);
-+ f = fopen(s, "w");
-+ chmod(s, 0600);
-+ if (f == NULL) {
-+ putlog(LOG_MISC, "*", "ERROR writing gseen file.");
-+ return;
-+ }
-+ fprintf(f, "# gseen data file v1.\n");
-+ write_seen_tree_target = f;
-+ btree_getall(&seentree, write_seen_tree);
-+ for (r = requests; r; r = r->next)
-+ for (b = r->by; b; b = b->next)
-+ /* @ nick by host chan when */
-+ fprintf(f, "@ %s %s %s %s %lu\n", r->nick, b->who, b->host, b->chan,
-+ b->when);
-+ fclose(f);
-+ unlink(gseenfile);
-+ movefile(s, gseenfile);
-+ /* putlog(LOG_MISC, "*", "Done."); */
-+ return;
-+}
-+
-+static void read_seens()
-+{
-+ FILE *f;
-+ char buf[512], *s, *type, *nick, *host, *chan, *msg, *by;
-+ time_t when;
-+ int spent, iType, i;
-+
-+ Context;
-+ f = fopen(gseenfile, "r");
-+ if (f == NULL) {
-+ putlog(LOG_MISC, "*", "Can't open gseen file, creating new database...");
-+ return;
-+ }
-+ while (!feof(f)) {
-+ buf[0] = 0;
-+ s = buf;
-+ fgets(s, 511, f);
-+ i = strlen(buf);
-+ if (buf[i - 1] == '\n')
-+ buf[i - 1] = 0;
-+ if ((buf[0] == 0) || (buf[0] == '#'))
-+ continue;
-+ type = newsplit(&s);
-+ if (!strcmp(type, "!")) {
-+ nick = newsplit(&s);
-+ host = newsplit(&s);
-+ chan = newsplit(&s);
-+ iType = atoi(newsplit(&s));
-+ when = (time_t) atoi(newsplit(&s));
-+ spent = atoi(newsplit(&s));
-+ msg = s;
-+ add_seen(iType, nick, host, chan, msg, when, spent);
-+ } else if (!strcmp(type, "@")) {
-+ nick = newsplit(&s);
-+ by = newsplit(&s);
-+ host = newsplit(&s);
-+ chan = newsplit(&s);
-+ when = (time_t) atoi(newsplit(&s));
-+ add_seenreq(nick, by, host, chan, when);
-+ }
-+ }
-+ fclose(f);
-+ Context;
-+ return;
-+}
-+
-+static void purge_seens()
-+{
-+ seenreq *r, *rr;
-+ seenreq_by *b, *bb;
-+
-+ Context;
-+ if (!expire_seens)
-+ return;
-+ btree_getall_expanded(&seentree, purge_seen_tree);
-+ debug0("purge done");
-+ r = requests;
-+ rr = NULL;
-+ while (r) {
-+ b = r->by;
-+ bb = NULL;
-+ while (b) {
-+ if ((now - b->when) > (expire_seens * 86400)) {
-+ debug2("request for %s from %s has expired.", r->nick, b->who);
-+ nfree(b->who);
-+ nfree(b->host);
-+ nfree(b->chan);
-+ if (bb) {
-+ bb->next = b->next;
-+ nfree(b);
-+ b = bb->next;
-+ } else {
-+ r->by = b->next;
-+ nfree(b);
-+ b = r->by;
-+ }
-+ } else {
-+ bb = b;
-+ b = b->next;
-+ }
-+ }
-+ if (!r->by) {
-+ debug1("no further seen requests for %s, deleting", r->nick);
-+ nfree(r->nick);
-+ if (rr) {
-+ rr->next = r->next;
-+ nfree(r);
-+ r = rr->next;
-+ } else {
-+ requests = r->next;
-+ nfree(r);
-+ r = requests;
-+ }
-+ } else {
-+ rr = r;
-+ r = r->next;
-+ }
-+ }
-+}
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/do_seen.c src/eggdrop-1.8.4/src/mod/gseen.mod/do_seen.c
---- ./src/mod/gseen.mod/do_seen.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/do_seen.c 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,840 @@
-+/*
-+ * Copyright (C) 2000,2001 Florian Sander
-+ *
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+/* do_seen(): Checks if someone matches the mask, and returns the reply
-+ * mask : first paramater (e.g. "G`Quann", "G`Quann", "*!*@*.isp.de", ...)
-+ * nick : nick of the one, who triggered the command
-+ * uhost: user@host of nick
-+ * chan : chan, where the command was triggered
-+ * bns :
-+ * 1 : do a botnet-seen if no matches are found
-+ * 0 : don't do a botnet-seen
-+ * -1 : return NULL instead of text, if no matches were found
-+ * (necessary for botnet seen)
-+ */
-+static char *do_seen(char *mask, char *nick, char *uhost, char *chan, int bns)
-+{
-+ char hostbuf[UHOSTLEN + 1], *host, *newhost, *tmp, *dur;
-+ seendat *l;
-+ gseenres *r;
-+ int wild, nr;
-+ char bnquery[256];
-+ struct userrec *u;
-+ struct laston_info *li;
-+ struct chanset_t *ch;
-+
-+ Context;
-+ start_seentime_calc();
-+ if (seen_reply) {
-+ nfree(seen_reply);
-+ seen_reply = NULL;
-+ }
-+ l = NULL;
-+ li = NULL;
-+ host = hostbuf;
-+ newhost = NULL;
-+ mask = newsplit(&mask);
-+ glob_query = mask;
-+ while (mask[0] == ' ')
-+ mask++;
-+ if (!mask[0]) {
-+ return SLNOPARAM;
-+ }
-+ if (strchr(mask, '?') || strchr(mask, '*')) {
-+ // if wildcard-searches ares not allowed, then either return
-+ // NULL (for botnet-seen), or a appropriate warning
-+ if (!wildcard_search) {
-+ if (bns == -1)
-+ return NULL;
-+ else
-+ return SLNOWILDCARDS;
-+ } else
-+ wild = 1;
-+ } else {
-+ if (strlen(mask) > seen_nick_len) // don't process if requested nick is too long
-+ return SLTOOLONGNICK; // (e.g. stop stupid jokes)
-+ if (!strcasecmp(mask, nick)) {
-+ return SLMIRROR;
-+ }
-+ // check if the nick is on the current channel
-+ if (onchan(mask, chan))
-+ return SLONCHAN;
-+ if ((glob_othernick = handonchan(mask, chan)))
-+ return SLHANDONCHAN;
-+ // check if it is on any other channel
-+ if ((ch = onanychan(mask))) {
-+#if EGG_IS_MIN_VER(10500)
-+ if (!secretchan(ch->dname)) {
-+ glob_otherchan = ch->dname;
-+ return SLONOTHERCHAN;
-+ }
-+#else
-+ if (!secretchan(ch->name)) {
-+ glob_otherchan = ch->name;
-+ return SLONOTHERCHAN;
-+ }
-+#endif
-+ }
-+ // check if the user who uses this handle is on the channel under
-+ // a different nick
-+ if ((ch = handonanychan(mask))) {
-+#if EGG_IS_MIN_VER(10500)
-+ if (!secretchan(ch->dname)) {
-+ glob_otherchan = ch->dname;
-+ return SLONOTHERCHAN;
-+ }
-+#else
-+ if (!secretchan(ch->name)) {
-+ glob_otherchan = ch->name;
-+ return SLONOTHERCHAN;
-+ }
-+#endif
-+ }
-+ add_seenreq(mask, nick, uhost, chan, now);
-+ wild = 0;
-+ l = findseen(mask);
-+ // if there's a result, and if we don't want to search for the same user
-+ // under a different nick, just make a do_seennick on the result
-+ if (l && !fuzzy_search) {
-+ tmp = do_seennick(l);
-+ end_seentime_calc();
-+ return tmp;
-+ }
-+ if (!l) {
-+ u = get_user_by_handle(userlist, mask);
-+ if (u) {
-+ li = get_user(&USERENTRY_LASTON, u);
-+ }
-+ if (!u || !li) {
-+ if (bns == -1) { // if bns is 0, then do_seen() was triggered by
-+ end_seentime_calc(); // a botnet seen function, which needs a clear
-+ return NULL; // NULL to detect if there was a result or not
-+ }
-+ tmp = SLNOTSEEN;
-+ if (bns && ((strlen(mask) + strlen(nick) + strlen(uhost)
-+ + strlen(chan) + 20) < 255)) {
-+ debug0("trying botnet seen");
-+ if (bnsnick)
-+ nfree(bnsnick);
-+ if (bnschan)
-+ nfree(bnschan);
-+ bnsnick = nmalloc(strlen(nick) + 1);
-+ strcpy(bnsnick, nick);
-+ bnschan = nmalloc(strlen(chan) + 1);
-+ strcpy(bnschan, chan);
-+ sprintf(bnquery, "gseen_req %s %s %s %s", mask, nick, uhost, chan);
-+ botnet_send_zapf_broad(-1, botnetnick, NULL, bnquery);
-+ }
-+ } else {
-+ // we have a matching handle, no seen-entry, but a laston entry
-+ // in the userbase, so let's just return that one.
-+ dur = gseen_duration(now - li->laston);
-+ glob_laston = dur;
-+ tmp = SLPOORSEEN;
-+ seen_reply = nmalloc(strlen(tmp) + 1);
-+ strcpy(seen_reply, tmp);
-+ end_seentime_calc();
-+ return seen_reply;
-+ }
-+ end_seentime_calc();
-+ return tmp;
-+ }
-+ // now prepare the host for fuzzy-search
-+ if (strlen(l->host) < UHOSTLEN) {
-+ maskstricthost(l->host, host);
-+ host = strchr(host, '!') + 1; // strip nick from host for faster search
-+ } else {
-+ end_seentime_calc();
-+ return "error, too long host";
-+ }
-+ }
-+ if (l && (l->type == SEEN_CHPT)) {
-+ tmp = do_seennick(l);
-+ end_seentime_calc();
-+ return tmp;
-+ }
-+ numresults = 0;
-+ // wildmatch_seens uses a global var to store hosts in it
-+ // (to prevent massive nmalloc/nfree-usage), so don't forget
-+ // to initialize and free it
-+ temp_wildmatch_host = my_malloc(1);
-+ wildmatch_seens(host, mask, wild);
-+ my_free(temp_wildmatch_host);
-+ temp_wildmatch_host = NULL;
-+ if (!results) {
-+ end_seentime_calc();
-+ if (bns == -1)
-+ return NULL; // let the botnet seen function know, that seen failed
-+ return SLNOMATCH;
-+ }
-+ if (numresults >= max_matches) {
-+ end_seentime_calc();
-+ free_seenresults();
-+ return SLTOOMANYMATCHES;
-+ }
-+ sortresults();
-+ if (strcasecmp(results->seen->nick, mask)) {
-+ // if the user's latest nick is not the nick for which we were searching,
-+ // say that there were multiple matches and display the latest one
-+ if (numresults == 1)
-+ tmp = SLONEMATCH;
-+ else if (numresults <= 5)
-+ tmp = SLLITTLEMATCHES;
-+ else
-+ tmp = SLMANYMATCHES;
-+ seen_reply = nmalloc(strlen(tmp) + 1);
-+ strcpy(seen_reply, tmp);
-+ nr = 0;
-+ for (r = results; (r && (nr < 5)); r = r->next) {
-+ nr++;
-+ if (nr > 1) {
-+ seen_reply = nrealloc(seen_reply, 1 + strlen(seen_reply) + 1 + strlen(r->seen->nick) + 1);
-+ strcat(seen_reply, ", ");
-+ } else {
-+ seen_reply = nrealloc(seen_reply, 1 + strlen(seen_reply) + strlen(r->seen->nick) + 1);
-+ strcat(seen_reply, " ");
-+ }
-+ strcat(seen_reply, r->seen->nick);
-+ }
-+ tmp = do_seennick(results->seen);
-+ seen_reply = nrealloc(seen_reply, 2 + strlen(seen_reply) + strlen(tmp) + 1);
-+ sprintf(seen_reply, "%s. %s", seen_reply, tmp);
-+ } else { // first result is the nick which we were searching for
-+ // just return the info for this nick and don't care about other results
-+ tmp = do_seennick(results->seen);
-+ seen_reply = nmalloc(strlen(tmp) + 1);
-+ strcpy(seen_reply, tmp);
-+ }
-+ free_seenresults();
-+ end_seentime_calc();
-+ return seen_reply;
-+}
-+
-+/* do_seennick():
-+ * takes a seen-dataset and produces the corresponding reply basically
-+ * by referencing to the lang entry with the same number as the seen-type.
-+ */
-+static char *do_seennick(seendat *l)
-+{
-+// char buf[256], *msg;
-+ int stype;
-+
-+ Context;
-+ if (!l) {
-+ debug0("ERROR! Tryed to do a seennick on a NULL pointer!");
-+ return "ERROR! seendat == NULL!!!";
-+ }
-+ glob_seendat = l;
-+ // l->type is the basic language-entry-number
-+ stype = l->type + 100;
-+ // in some cases, we might need a special reply, so modify the
-+ // number if neccessary
-+ switch (l->type) {
-+ case SEEN_JOIN:
-+ if (!onchan(l->nick, l->chan))
-+ stype += 20;
-+ break;
-+ case SEEN_PART:
-+ /* nothing to do here */
-+ break;
-+ case SEEN_SIGN:
-+ /* nothing again */
-+ break;
-+ case SEEN_NICK:
-+ if (!onchan(l->msg, l->chan))
-+ stype += 20;
-+ break;
-+ case SEEN_NCKF:
-+ if (!onchan(l->nick, l->chan))
-+ stype += 20;
-+ break;
-+ case SEEN_KICK:
-+/* msg = buf;
-+ strncpy(buf, l->msg, 255);
-+ msg[255] = 0;
-+ sglobpunisher = newsplit(&msg);
-+ sglobreason = msg; */
-+ break;
-+ case SEEN_SPLT:
-+ /* nothing to do here */
-+ break;
-+ case SEEN_REJN:
-+ if (!onchan(l->nick, l->chan))
-+ stype += 20;
-+ break;
-+ case SEEN_CHJN:
-+ case SEEN_CHPT:
-+ if (!strcmp(l->chan, "0"))
-+ stype += 20;
-+ break;
-+ default:
-+ stype = 140;
-+ }
-+ return getslang(stype);
-+}
-+
-+/* findseens():
-+ * interface for webseen.mod
-+ * find all results for a query and return a pointer to this list
-+ * (basically the core of do_seen())
-+ */
-+static gseenres *findseens(char *mask, int *ret, int fuzzy)
-+{
-+ char hostbuf[UHOSTLEN + 1], *host, *newhost;
-+ seendat *l;
-+ int wild;
-+
-+ Context;
-+ start_seentime_calc();
-+ *ret = WS_OK;
-+ l = NULL;
-+ host = hostbuf;
-+ newhost = NULL;
-+ mask = newsplit(&mask);
-+ while (mask[0] == ' ')
-+ mask++;
-+ if (!mask[0]) {
-+ *ret = WS_NOPARAM;
-+ return NULL;
-+ }
-+ if (strchr(mask, '?') || strchr(mask, '*')) {
-+ // if wildcard-searches ares not allowed, then either return
-+ // NULL (for botnet-seen), or a appropriate warning
-+ if (!wildcard_search) {
-+ *ret = WS_NOWILDCARDS;
-+ return NULL;
-+ }
-+ wild = 1;
-+ } else {
-+ if (strlen(mask) > seen_nick_len) { // don't process if requested nick is too long
-+ *ret = WS_TOOLONGNICK; // (e.g. stop stupid jokes)
-+ return NULL;
-+ }
-+ add_seenreq(mask, "www-user", "unknown_host", "webinterface", now);
-+ wild = 0;
-+ l = findseen(mask);
-+ // if there's a result, and if we don't want to search for the same user
-+ // under a different nick, just return this result
-+ if (l && (!fuzzy_search || !fuzzy)) {
-+ numresults = 1;
-+ add_seenresult(l);
-+ end_seentime_calc();
-+ return results;
-+ }
-+ if (!l) {
-+ // no matching user was found :(
-+ *ret = WS_NORESULT;
-+ end_seentime_calc();
-+ return NULL;
-+ }
-+ // now prepare the host for fuzzy-search
-+ if (strlen(l->host) < UHOSTLEN) {
-+ maskstricthost(l->host, host);
-+ host = strchr(host, '!') + 1; // strip nick from host for faster search
-+ } else {
-+ *ret = WS_TOOLONGHOST;
-+ end_seentime_calc();
-+ return NULL;
-+ }
-+ }
-+ if (l && (l->type == SEEN_CHPT)) {
-+ numresults = 1;
-+ add_seenresult(l);
-+ end_seentime_calc();
-+ return results;
-+ }
-+ numresults = 0;
-+ // wildmatch_seens uses a global var to store hosts in it
-+ // (to prevent massive nmalloc/nfree-usage), so don't forget
-+ // to initialize and free it
-+ temp_wildmatch_host = my_malloc(1);
-+ wildmatch_seens(host, mask, wild);
-+ my_free(temp_wildmatch_host);
-+ temp_wildmatch_host = NULL;
-+ if (!results) {
-+ // no match :(
-+ *ret = WS_NORESULT;
-+ end_seentime_calc();
-+ return NULL;
-+ }
-+ if (numresults >= max_matches) {
-+ free_seenresults();
-+ *ret = WS_TOOMANYMATCHES;
-+ end_seentime_calc();
-+ return NULL;
-+ }
-+ sortresults();
-+ *ret = 0;
-+ end_seentime_calc();
-+ return results;
-+}
-+
-+
-+char seenstats_reply[512];
-+static char *do_seenstats()
-+{
-+ glob_totalnicks = count_seens();
-+ glob_totalbytes = gseen_expmem();
-+ sprintf(seenstats_reply, "%s", SLSEENSTATS);
-+ return seenstats_reply;
-+}
-+
-+// add an seen result (to the top of the list)
-+static void add_seenresult(seendat *seen)
-+{
-+ gseenres *nl;
-+
-+ numresults++;
-+ if (numresults > max_matches)
-+ return;
-+ nl = nmalloc(sizeof(gseenres));
-+ nl->seen = seen;
-+ nl->next = results;
-+ results = nl;
-+}
-+
-+static int expmem_seenresults()
-+{
-+ int bytes = 0;
-+ gseenres *l;
-+
-+ for (l = results; l; l = l->next)
-+ bytes += sizeof(gseenres);
-+ return bytes;
-+}
-+
-+static void free_seenresults()
-+{
-+ gseenres *l, *ll;
-+
-+ l = results;
-+ while (l) {
-+ ll = l->next;
-+ nfree(l);
-+ l = ll;
-+ }
-+ results = NULL;
-+}
-+
-+static void sortresults()
-+{
-+ int again = 1;
-+ gseenres *last, *p, *c, *n;
-+ int a, b;
-+
-+ Context;
-+ again = 1;
-+ last = NULL;
-+ while ((results != last) && (again)) {
-+ p = NULL;
-+ c = results;
-+ n = c->next;
-+ again = 0;
-+ while (n != last) {
-+ if (!c || !n)
-+ a = b = 0;
-+ else
-+ a = c->seen->when;
-+ b = n->seen->when;
-+ if (a < b) {
-+ again = 1;
-+ c->next = n->next;
-+ n->next = c;
-+ if (p == NULL)
-+ results = n;
-+ else
-+ p->next = n;
-+ }
-+ p = c;
-+ c = n;
-+ n = n->next;
-+ }
-+ last = c;
-+ }
-+ Context;
-+ return;
-+}
-+
-+static void sortrequests(seenreq *l)
-+{
-+ int again = 1;
-+ seenreq_by *last, *p, *c, *n;
-+ int a, b;
-+
-+ Context;
-+ again = 1;
-+ last = NULL;
-+ while ((l->by != last) && (again)) {
-+ p = NULL;
-+ c = l->by;
-+ n = c->next;
-+ again = 0;
-+ while (n != last) {
-+ if (!c || !n)
-+ a = b = 0;
-+ else
-+ a = c->when;
-+ b = n->when;
-+ if (a < b) {
-+ again = 1;
-+ c->next = n->next;
-+ n->next = c;
-+ if (p == NULL)
-+ l->by = n;
-+ else
-+ p->next = n;
-+ }
-+ p = c;
-+ c = n;
-+ n = n->next;
-+ }
-+ last = c;
-+ }
-+ Context;
-+ return;
-+}
-+
-+/* stolen from tcl_duration in tclmisc.c */
-+char gs_duration_temp[256];
-+static char *gseen_duration(int seconds)
-+{
-+ char s[256];
-+ time_t sec;
-+
-+ sec = seconds;
-+ s[0] = 0;
-+ if (sec < 1) {
-+ snprintf(gs_duration_temp, sizeof(gs_duration_temp), "%s", SLSOMETIME);
-+ return gs_duration_temp;
-+ }
-+ if (sec < 60) {
-+ sprintf(gs_duration_temp, "%d %s", (int) (sec / 1),
-+ ((int) (sec / 1) > 1) ? SLSECONDS : SLSECOND);
-+ return gs_duration_temp;
-+ }
-+ if (sec >= 31536000) {
-+ sprintf(s, "%d %s ", (int) (sec / 31536000),
-+ ((int) (sec / 31536000) > 1) ? SLYEARS : SLYEAR);
-+ sec -= (((int) (sec / 31536000)) * 31536000);
-+ }
-+ if (sec >= 604800) {
-+ sprintf(&s[strlen(s)], "%d %s ", (int) (sec / 604800),
-+ ((int) (sec / 604800) > 1) ? SLWEEKS : SLWEEK);
-+ sec -= (((int) (sec / 604800)) * 604800);
-+ }
-+ if (sec >= 86400) {
-+ sprintf(&s[strlen(s)], "%d %s ", (int) (sec / 86400),
-+ ((int) (sec / 86400) > 1) ? SLDAYS : SLDAY);
-+ sec -= (((int) (sec / 86400)) * 86400);
-+ }
-+ if (sec >= 3600) {
-+ sprintf(&s[strlen(s)], "%d %s ", (int) (sec / 3600),
-+ ((int) (sec / 3600) > 1) ? SLHOURS : SLHOUR);
-+ sec -= (((int) (sec / 3600)) * 3600);
-+ }
-+ if (sec >= 60) {
-+ sprintf(&s[strlen(s)], "%d %s ", (int) (sec / 60),
-+ ((int) (sec / 60) > 1) ? SLMINUTES : SLMINUTE);
-+ sec -= (((int) (sec / 60)) * 60);
-+ }
-+ strcpy(gs_duration_temp, s);
-+ if (gs_duration_temp[strlen(gs_duration_temp) - 1] == ' ')
-+ gs_duration_temp[strlen(gs_duration_temp) - 1] = 0;
-+ return gs_duration_temp;
-+}
-+
-+static int onchan(char *nick, char *chan)
-+{
-+ struct chanset_t *ch;
-+ memberlist *m;
-+
-+ ch = findchan_by_dname(chan);
-+ if (!ch)
-+ return 0;
-+ m = ismember(ch, nick);
-+ if (!m)
-+ return 0;
-+ else if (chan_issplit(m))
-+ return 0;
-+ else
-+ return 1;
-+}
-+
-+/* handonchan():
-+ * checks if the given user is on the channel and returns its nick
-+ */
-+static char *handonchan(char *hand, char *chan)
-+{
-+ struct chanset_t *ch;
-+ memberlist *m;
-+
-+ ch = findchan_by_dname(chan);
-+ if (!ch)
-+ return 0;
-+ if (ch->channel.members > 0) {
-+ for (m = ch->channel.member; m; m = m->next) {
-+ if (m->user) {
-+ if (m->user->handle && !rfc_casecmp(m->user->handle, hand))
-+ return m->nick;
-+ }
-+ }
-+ }
-+ return NULL;
-+}
-+
-+/* onanychan():
-+ * checks if the given nickname is on any of the bot's chans.
-+ */
-+static struct chanset_t *onanychan(char *nick)
-+{
-+ struct chanset_t *ch;
-+ memberlist *m;
-+
-+ for (ch = chanset; ch; ch = ch->next) {
-+ m = ismember(ch, nick);
-+ if (m && !chan_issplit(m))
-+ return ch;
-+ }
-+ return NULL;
-+}
-+
-+/* handonanychan():
-+ * checks if the given user is on any channel (no matter under which nick)
-+ */
-+static struct chanset_t *handonanychan(char *hand)
-+{
-+ struct chanset_t *ch;
-+ memberlist *m;
-+
-+ for (ch = chanset; ch; ch = ch->next) {
-+ if (ch->channel.members > 0) {
-+ for (m = ch->channel.member; m; m = m->next) {
-+ if (m->user) {
-+ if (m->user->handle && !rfc_casecmp(m->user->handle, hand))
-+ return ch;
-+ }
-+ }
-+ }
-+ }
-+ return NULL;
-+}
-+
-+static void add_seenreq(char *nick, char *from, char *host, char *chan,
-+ time_t when)
-+{
-+ seenreq *l, *nl;
-+ seenreq_by *b, *nb;
-+ char buf[10] = "[secret]";
-+
-+ Context;
-+ if (!tell_seens)
-+ return;
-+ if (strcmp(chan, "[partyline]") && secretchan(chan))
-+ chan = buf;
-+ for (l = requests; l; l = l->next) {
-+ if (!strcasecmp(nick, l->nick)) {
-+ for (b = l->by; b; b = b->next) {
-+ if (!strcasecmp(from, b->who)) {
-+ nfree(b->chan);
-+ b->chan = nmalloc(strlen(chan) + 1);
-+ strcpy(b->chan, chan);
-+ b->when = when;
-+ return;
-+ }
-+ }
-+ b = l->by;
-+ while (b && b->next)
-+ b = b->next;
-+ nb = nmalloc(sizeof(seenreq_by));
-+ nb->who = nmalloc(strlen(from) + 1);
-+ strcpy(nb->who, from);
-+ nb->host = nmalloc(strlen(host) + 1);
-+ strcpy(nb->host, host);
-+ nb->chan = nmalloc(strlen(chan) + 1);
-+ strcpy(nb->chan, chan);
-+ nb->when = when;
-+ nb->next = NULL;
-+ if (l->by)
-+ b->next = nb;
-+ else
-+ l->by = nb;
-+ return;
-+ }
-+ }
-+ nb = nmalloc(sizeof(seenreq_by));
-+ nb->who = nmalloc(strlen(from) + 1);
-+ strcpy(nb->who, from);
-+ nb->host = nmalloc(strlen(host) + 1);
-+ strcpy(nb->host, host);
-+ nb->chan = nmalloc(strlen(chan) + 1);
-+ strcpy(nb->chan, chan);
-+ nb->when = when;
-+ nb->next = NULL;
-+ l = requests;
-+ while (l && l->next)
-+ l = l->next;
-+ nl = nmalloc(sizeof(seenreq));
-+ nl->nick = nmalloc(strlen(nick) + 1);
-+ strcpy(nl->nick, nick);
-+ nl->by = nb;
-+ nl->next = NULL;
-+ if (requests)
-+ l->next = nl;
-+ else
-+ requests = nl;
-+}
-+
-+static int expmem_seenreq()
-+{
-+ seenreq *l;
-+ seenreq_by *b;
-+ int size;
-+
-+ size = 0;
-+ for (l = requests; l; l = l->next) {
-+ size += sizeof(seenreq);
-+ size += strlen(l->nick) + 1;
-+ for (b = l->by; b; b = b->next) {
-+ size += sizeof(seenreq_by);
-+ size += strlen(b->who) + 1;
-+ size += strlen(b->host) + 1;
-+ size += strlen(b->chan) + 1;
-+ }
-+ }
-+ return size;
-+}
-+
-+static int count_seenreq(seenreq_by *b)
-+{
-+ seenreq_by *l;
-+ int nr;
-+
-+ nr = 0;
-+ for (l = b; l; l = l->next)
-+ nr++;
-+ return nr;
-+}
-+
-+static void free_seenreq()
-+{
-+ seenreq *l, *ll;
-+ seenreq_by *b, *bb;
-+
-+ Context;
-+ l = requests;
-+ while (l) {
-+ b = l->by;
-+ while (b) {
-+ bb = b->next;
-+ nfree(b->who);
-+ nfree(b->host);
-+ nfree(b->chan);
-+ nfree(b);
-+ b = bb;
-+ }
-+ ll = l->next;
-+ nfree(l->nick);
-+ nfree(l);
-+ l = ll;
-+ }
-+ requests = NULL;
-+}
-+
-+static void report_seenreq(char *channel, char *nick)
-+{
-+ seenreq *l, *ll;
-+ seenreq_by *b, *bb;
-+ char *reply, *tmp;
-+ int nr;
-+
-+ if (!tell_seens)
-+ return;
-+ ll = NULL;
-+ l = requests;
-+ reply = NULL;
-+ while (l) {
-+ if (!strcasecmp(l->nick, nick)) {
-+ reset_global_vars();
-+ glob_slang = slang_find(coreslangs, slang_chanlang_get(chanlangs, channel));
-+ glob_nick = nick;
-+ nr = count_seenreq(l->by);
-+ if (nr == 1) {
-+ glob_seenrequest = l;
-+ dprintf(DP_HELP, "NOTICE %s :%s\n", l->nick, SLONELOOK);
-+ } else {
-+ sortrequests(l);
-+ glob_seenrequest = l;
-+ glob_seenrequests = nr;
-+ tmp = SLMORELOOKS;
-+ reply = nmalloc(strlen(tmp) + 1);
-+ strcpy(reply, tmp);
-+ nr = 0;
-+ for (b = l->by; b; b = b->next) {
-+ nr++;
-+ reply = nrealloc(reply, strlen(reply) + ((nr == 1) ? 1 : 2) + strlen(b->who) + 1);
-+ sprintf(reply, "%s%s%s", reply, (nr == 1) ? " " : ", ", b->who);
-+ }
-+ tmp = SLLASTLOOK;
-+ reply = nrealloc(reply, strlen(reply) + 2 + strlen(tmp) + 1);
-+ sprintf(reply, "%s. %s", reply, tmp);
-+ dprintf(DP_HELP, "NOTICE %s :%s\n", l->nick, reply);
-+ nfree(reply);
-+ }
-+ b = l->by;
-+ while (b) {
-+ bb = b->next;
-+ nfree(b->who);
-+ nfree(b->host);
-+ nfree(b->chan);
-+ nfree(b);
-+ b = bb;
-+ }
-+ nfree(l->nick);
-+ if (ll)
-+ ll->next = l->next;
-+ else
-+ requests = l->next;
-+ nfree(l);
-+ if (ll)
-+ l = ll->next;
-+ else
-+ l = requests;
-+ } else {
-+ ll = l;
-+ l = l->next;
-+ }
-+ }
-+}
-+
-+static void start_seentime_calc()
-+{
-+ struct timeval t;
-+
-+ gettimeofday(&t, NULL);
-+ glob_presearch = (float) t.tv_sec + (((float) t.tv_usec) / 1000000);
-+}
-+
-+static void end_seentime_calc()
-+{
-+ struct timeval t;
-+
-+ gettimeofday(&t, NULL);
-+ glob_aftersearch = (float) t.tv_sec + (((float) t.tv_usec) / 1000000);
-+ glob_total_searchtime += glob_aftersearch - glob_presearch;
-+ glob_total_queries++;
-+}
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/generic_binary_tree.c src/eggdrop-1.8.4/src/mod/gseen.mod/generic_binary_tree.c
---- ./src/mod/gseen.mod/generic_binary_tree.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/generic_binary_tree.c 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,311 @@
-+/*
-+ * Copyright (C) 2000,2001 Florian Sander
-+ *
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+#define GENERIC_BINARY_TREE 1
-+
-+struct generic_binary_tree {
-+ void *root;
-+ int (*comparedata) (void *data1, void *data2);
-+ int (*expmemdata) (void *data);
-+ void (*freedata) (void *data);
-+};
-+
-+struct generic_binary_tree_node {
-+ void *data;
-+ void *left;
-+ void *right;
-+};
-+
-+static void btree_add(struct generic_binary_tree *, void *);
-+static int btree_expmem(struct generic_binary_tree *);
-+static int btree_recursive_expmem(struct generic_binary_tree *, struct generic_binary_tree_node *);
-+static void *btree_get(struct generic_binary_tree *, void *t);
-+static void btree_freetree(struct generic_binary_tree *);
-+static void btree_recursive_free(struct generic_binary_tree *,
-+ struct generic_binary_tree_node *);
-+static void btree_getall(struct generic_binary_tree *, void (*) (void *));
-+static void btree_recursive_getall(struct generic_binary_tree_node *,
-+ void (*) (void *));
-+static void btree_getall_expanded(struct generic_binary_tree *tree, void (*) (void *));
-+static void btree_recursive_getall_expanded(struct generic_binary_tree_node *,
-+ void (*) (void *));
-+static void btree_remove(struct generic_binary_tree *, void *);
-+
-+static void btree_add(struct generic_binary_tree *tree, void *data)
-+{
-+ struct generic_binary_tree_node *node, *lastnode;
-+ int cmp, lastcmp;
-+
-+ Assert(tree);
-+ Assert(data);
-+ cmp = lastcmp = 0;
-+ node = tree->root;
-+ lastnode = NULL;
-+ while (node) {
-+ cmp = tree->comparedata(node->data, data);
-+ if (!cmp) {
-+ // item is identical -> free old data and insert new
-+ tree->freedata(node->data);
-+ node->data = data;
-+ return;
-+ }
-+ lastnode = node;
-+ lastcmp = cmp;
-+ if (cmp < 0)
-+ node = node->left;
-+ else
-+ node = node->right;
-+ }
-+ node = nmalloc(sizeof(struct generic_binary_tree_node));
-+ node->left = NULL;
-+ node->right = NULL;
-+ node->data = data;
-+ if (!lastnode)
-+ tree->root = node;
-+ else {
-+ Assert(lastcmp);
-+ if (lastcmp < 0) {
-+ Assert(!lastnode->left);
-+ lastnode->left = node;
-+ } else {
-+ Assert(!lastnode->right);
-+ lastnode->right = node;
-+ }
-+ }
-+}
-+
-+static int btree_expmem(struct generic_binary_tree *tree)
-+{
-+ int size = 0;
-+
-+ Assert(tree);
-+ size += btree_recursive_expmem(tree, tree->root);
-+ return size;
-+}
-+
-+static int btree_recursive_expmem(struct generic_binary_tree *tree, struct generic_binary_tree_node *node)
-+{
-+ int size = 0;
-+
-+ if (!node)
-+ return 0;
-+ size += sizeof(struct generic_binary_tree_node);
-+ size += tree->expmemdata(node->data);
-+ size += btree_recursive_expmem(tree, node->left);
-+ size += btree_recursive_expmem(tree, node->right);
-+ return size;
-+}
-+
-+static void *btree_get(struct generic_binary_tree *tree, void *what)
-+{
-+ struct generic_binary_tree_node *node;
-+ int cmp;
-+
-+ node = tree->root;
-+ while (node) {
-+ cmp = tree->comparedata(node->data, what);
-+ if (!cmp)
-+ return node->data;
-+ if (cmp < 0)
-+ node = node->left;
-+ else
-+ node = node->right;
-+ }
-+ return NULL;
-+}
-+
-+static void btree_freetree(struct generic_binary_tree *tree)
-+{
-+ btree_recursive_free(tree, tree->root);
-+}
-+
-+static void btree_recursive_free(struct generic_binary_tree *tree,
-+ struct generic_binary_tree_node *node)
-+{
-+ if (!node)
-+ return;
-+ btree_recursive_free(tree, node->left);
-+ btree_recursive_free(tree, node->right);
-+ tree->freedata(node->data);
-+ nfree(node);
-+}
-+
-+/* btree_getall():
-+ * calls the specified function for each item in the tree.
-+ * NOTE: getall() calls the proc _before_ it proceeds into recursion. This way,
-+ * one can savely store the tree into a file without mixing up its form.
-+ * But if you delete an item from the called prcedure, this function
-+ * WILL crash. Use btree_getall() expanded instead.
-+ */
-+static void btree_getall(struct generic_binary_tree *tree, void (*func) (void *))
-+{
-+ Assert(tree);
-+ btree_recursive_getall(tree->root, func);
-+}
-+
-+static void btree_recursive_getall(struct generic_binary_tree_node *node,
-+ void (*func) (void *))
-+{
-+ if (!node)
-+ return;
-+ // first call the function, then proceed into recursion
-+ // this way, the tree keeps in form if its saved to a file, for example
-+ Assert(func);
-+ func(node->data);
-+
-+ btree_recursive_getall(node->left, func);
-+ btree_recursive_getall(node->right, func);
-+}
-+
-+/* btree_getall_expanded():
-+ * the same as btree_getall(), but calls the function after the greatest level of recursion
-+ * has been reached. The node-pointers won't be accessed anymore when the first function
-+ * gets called. You can savely use this to free items.
-+ */
-+static void btree_getall_expanded(struct generic_binary_tree *tree, void (*func) (void *))
-+{
-+ Assert(tree);
-+ btree_recursive_getall_expanded(tree->root, func);
-+}
-+
-+static void btree_recursive_getall_expanded(struct generic_binary_tree_node *node,
-+ void (*func) (void *))
-+{
-+ if (!node)
-+ return;
-+ btree_recursive_getall_expanded(node->left, func);
-+ btree_recursive_getall_expanded(node->right, func);
-+
-+ Assert(func);
-+ func(node->data);
-+}
-+
-+static void btree_remove(struct generic_binary_tree *tree, void *data)
-+{
-+ struct generic_binary_tree_node *node, *last, *largenode, *lastlarge;
-+ int ret, lastret;
-+
-+ Assert(tree);
-+ Assert(data);
-+ last = NULL;
-+ lastret = 0;
-+ node = tree->root;
-+ while (node) {
-+ ret = tree->comparedata(node->data, data);
-+ if (ret == 0)
-+ break;
-+ last = node;
-+ lastret = ret;
-+ if (ret < 0)
-+ node = node->left;
-+ else
-+ node = node->right;
-+ }
-+ if (!node) // oops, item not found
-+ return;
-+ if (!node->left && !node->right) {
-+ // *freu* no sub-branches! We can easily delete this item.
-+ if (last) {
-+ if (lastret < 0)
-+ last->left = NULL;
-+ else
-+ last->right = NULL;
-+ } else
-+ tree->root = NULL;
-+ } else if (!node->left) {
-+ // also pretty easy. Just connect the child to the parent.
-+ if (last) {
-+ if (lastret < 0)
-+ last->left = node->right;
-+ else
-+ last->right = node->right;
-+ } else
-+ tree->root = node->right;
-+ } else if (!node->right) {
-+ // same as above, but mirrored
-+ if (last) {
-+ if (lastret < 0)
-+ last->left = node->left;
-+ else
-+ last->right = node->left;
-+ } else
-+ tree->root = node->left;
-+ } else {
-+ // aaargh... two sub-trees! The world is not fair... *sigh*
-+ debug0("argl... worst case, two subtrees. :( Let's pray...");
-+ // now we take the largest item from the left subtree and replace the
-+ // doomed node with it.
-+ // since it is the largest val, the tree remains valid and doesn't
-+ // get deformed too much.
-+
-+ // at first, we have to find this node and cut it from the tree
-+ largenode = node->left;
-+ lastlarge = NULL;
-+ while (largenode && largenode->right) {
-+ lastlarge = largenode;
-+ largenode = largenode->right;
-+ }
-+
-+ // only set largenode->left to node->left if largenode exists.
-+ // otherwise node->left points to largenode, which would result
-+ // in a nice short-circuit
-+ // If it does not exist, just leave largenode->left as it is because we just
-+ // move largenode one level up, so it can keep its left subtree.
-+ if (lastlarge) {
-+ lastlarge->right = largenode->left;
-+ largenode->left = node->left;
-+ }
-+
-+ // now connect node's subtrees to it
-+ largenode->right = node->right;
-+
-+ // and finally replace node with largenode
-+ if (last) {
-+ if (lastret < 0)
-+ last->left = largenode;
-+ else
-+ last->right = largenode;
-+ } else
-+ tree->root = largenode;
-+ }
-+ // finally kill the node... we shouldn't need it anymore
-+ tree->freedata(node->data);
-+ nfree(node);
-+ node = NULL;
-+}
-+
-+#ifdef BTREE_WITHOPTIMIZE
-+static void btree_optimize(struct generic_binary_tree *tree,
-+ struct generic_binary_tree_node *node,
-+ struct generic_binary_tree_node *last,
-+ int limit)
-+{
-+/* int leftdepth, rightdepth;
-+
-+ if (!node)
-+ return;
-+ btree_optimize(tree, node->left, node, last, limit);
-+ btree_optimize(tree, node->right, node, last, limit);
-+ leftdepth = btree_depth(node->left);
-+ rightdepth = btree_depth(node->right);
-+ if ((leftdepth - rightdepth) > limit) {
-+
-+ }
-+*/
-+}
-+#endif
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/global_vars.c src/eggdrop-1.8.4/src/mod/gseen.mod/global_vars.c
---- ./src/mod/gseen.mod/global_vars.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/global_vars.c 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,34 @@
-+/*
-+ * Copyright (C) 2000,2001 Florian Sander
-+ *
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+static char *glob_query, *glob_laston, *glob_otherchan, *glob_othernick;
-+static char *glob_remotebot, *glob_nick;
-+static struct slang_header *glob_slang;
-+static seendat *glob_seendat;
-+static seenreq *glob_seenrequest;
-+static int glob_seenrequests, glob_totalnicks, glob_totalbytes;
-+
-+static void reset_global_vars()
-+{
-+ glob_query = glob_laston = glob_otherchan = glob_othernick = NULL;
-+ glob_remotebot = glob_nick = NULL;
-+ glob_seendat = NULL;
-+ glob_slang = NULL;
-+ glob_seenrequest = NULL;
-+ glob_seenrequests = glob_totalnicks = glob_totalbytes = 0;
-+}
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/gseen.c src/eggdrop-1.8.4/src/mod/gseen.mod/gseen.c
---- ./src/mod/gseen.mod/gseen.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/gseen.c 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,330 @@
-+/*
-+ * Copyright (C) 2000,2001 Florian Sander
-+ *
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+#define MAKING_GSEEN
-+#define MODULE_NAME "gseen"
-+#define MODULE_VERSION "1.1.2"
-+#define MODULE_NUMVERSION 10100
-+#include "../module.h"
-+#include "../irc.mod/irc.h"
-+#include "../server.mod/server.h"
-+#include "../channels.mod/channels.h"
-+#include <stdlib.h>
-+#include <sys/stat.h>
-+#include <time.h> /* for time_t */
-+
-+#undef global
-+static Function *global = NULL, *irc_funcs = NULL, *server_funcs = NULL, *channels_funcs = NULL;
-+
-+#ifndef EGG_IS_MIN_VER
-+#define EGG_IS_MIN_VER(ver) ((ver) <= 10400)
-+#endif
-+
-+#ifndef EGG_IS_MAX_VER
-+#define EGG_IS_MAX_VER(ver) ((ver) >= 10400)
-+#endif
-+
-+#ifndef Context
-+#define Context context
-+#endif
-+
-+#ifndef findchan_by_dname
-+#define findchan_by_dname findchan
-+#endif
-+
-+#include "gseen.h"
-+#include "seenlang.h"
-+
-+static struct slang_header *coreslangs = NULL;
-+static gseenres *results = NULL;
-+static seenreq *requests = NULL;
-+static ignoredword *ignoredwords = NULL;
-+static char *bnsnick = NULL;
-+static char *bnschan = NULL;
-+static char *seen_reply = NULL;
-+static char *temp_wildmatch_host;
-+static int numresults = 0;
-+static double glob_presearch, glob_aftersearch;
-+int numseens, glob_total_queries;
-+double glob_total_searchtime;
-+
-+static char gseenfile[121] = "gseen.dat";
-+static char no_pub[121];
-+static char quiet_seen[121];
-+static char quiet_ai_seen[121];
-+static char no_log[121];
-+static char ignore_words[1024];
-+static char default_slang[21] = "eng";
-+static int gseen_numversion = MODULE_NUMVERSION;
-+static int save_seens = 60;
-+static int save_seens_temp = 1;
-+static int expire_seens = 60;
-+static int maxseen_thr = 0;
-+static int maxseen_time = 0;
-+static int seenflood_thr = 0;
-+static time_t seenflood_time = 0;
-+static int use_handles = 0;
-+static int tell_seens = 1;
-+static int botnet_seen = 1;
-+int fuzzy_search = 1; // search for the same user under a differnt nick
-+static int wildcard_search = 1;// allow wildcard seaching? ("*!*@*.isp.de")
-+static int max_matches = 500; // break if there are more than X matches
-+static int hide_secret_chans = 1; // #chan (+secret) => [secret]
-+static int seen_nick_len = 9;
-+
-+#include "global_vars.c"
-+#define SLANG_NOTYPES 1
-+#define SLANG_NOFACTS 1
-+#define SLANG_NOGETALL 1
-+#define SLANG_NOVALIDATE 1
-+#include "slang.c"
-+#include "slang_gseen_commands.c"
-+#include "generic_binary_tree.c"
-+#include "seentree.c"
-+#include "datahandling.c"
-+#include "sensors.c"
-+#include "do_seen.c"
-+#include "gseencmds.c"
-+#include "ai.c"
-+#include "misc.c"
-+#include "tclcmds.c"
-+
-+static int gseen_expmem()
-+{
-+ int size = 0;
-+
-+ size += seentree_expmem();
-+ size += expmem_seenresults();
-+ size += expmem_seenreq();
-+ size += expmem_ignoredwords();
-+ size += slang_expmem(coreslangs);
-+ size += slang_glob_expmem();
-+ size += slang_chanlang_expmem(chanlangs);
-+ if (bnsnick)
-+ size += strlen(bnsnick) + 1;
-+ if (bnschan)
-+ size += strlen(bnschan) + 1;
-+ if (seen_reply) {
-+ size += strlen(seen_reply) + 1;
-+ }
-+ return size;
-+}
-+
-+static void free_gseen()
-+{
-+ seentree_free();
-+ slang_free(coreslangs);
-+ slang_chanlang_free(chanlangs);
-+ if (seen_reply)
-+ nfree(seen_reply);
-+ return;
-+}
-+
-+/* a report on the module status */
-+static void gseen_report(int idx, int details)
-+{
-+ int size = 0;
-+
-+ Context;
-+ if (details) {
-+ size = gseen_expmem();
-+ dprintf(idx, " using %d bytes\n", size);
-+ }
-+}
-+
-+static void gseen_minutely ()
-+{
-+ if (save_seens_temp >= save_seens) {
-+ write_seens();
-+ save_seens_temp = 1;
-+ } else
-+ save_seens_temp++;
-+}
-+
-+static void gseen_daily ()
-+{
-+ Context;
-+ purge_seens();
-+}
-+
-+static tcl_strings my_tcl_strings[] =
-+{
-+ {"gseenfile", gseenfile, 121, 0},
-+ {"ai-seen-ignore", ignore_words, 1024, 0},
-+ {"no-pub-seens", no_pub, 121, 0},
-+ {"quiet-seens", quiet_seen, 121, 0},
-+ {"quiet-ai-seens", quiet_ai_seen, 121, 0},
-+ {"no-log", no_log, 121, 0},
-+ {"no-seendata", no_log, 121, 0},
-+ {"default-slang", default_slang, 20, 0},
-+ {0, 0, 0, 0}
-+};
-+
-+static tcl_ints my_tcl_ints[] =
-+{
-+ {"save-seens", &save_seens, 0},
-+ {"expire-seens", &expire_seens, 0},
-+ {"use-handles", &use_handles, 0},
-+ {"tell-seens", &tell_seens, 0},
-+ {"botnet-seens", &botnet_seen, 0},
-+ {"max-matches", &max_matches, 0},
-+ {"fuzzy-search", &fuzzy_search, 0},
-+ {"wildcard-search", &wildcard_search, 0},
-+ {"hide-secret-chans", &hide_secret_chans, 0},
-+ {"seen-nick-len", &seen_nick_len, 0},
-+ {0, 0, 0}
-+};
-+
-+static tcl_coups my_tcl_coups[] =
-+{
-+ {"max-seens", &maxseen_thr, &maxseen_time},
-+ {0, 0, 0},
-+};
-+
-+static char *gseen_close()
-+{
-+ Context;
-+ write_seens();
-+ slang_glob_free();
-+ free_gseen();
-+ free_seenreq();
-+ free_seenresults();
-+ free_ignoredwords();
-+ if (bnsnick)
-+ nfree(bnsnick);
-+ if (bnschan)
-+ nfree(bnschan);
-+ rem_tcl_strings(my_tcl_strings);
-+ rem_tcl_ints(my_tcl_ints);
-+ rem_tcl_coups(my_tcl_coups);
-+ rem_tcl_commands(mytcls);
-+ rem_tcl_commands(gseentcls);
-+ rem_tcl_commands(seendebugtcls);
-+ rem_tcl_commands(gseentcls);
-+ rem_builtins(H_dcc, mydcc);
-+ rem_builtins(H_join, seen_join);
-+ rem_builtins(H_kick, seen_kick);
-+ rem_builtins(H_nick, seen_nick);
-+ rem_builtins(H_part, seen_part);
-+ rem_builtins(H_sign, seen_sign);
-+ rem_builtins(H_splt, seen_splt);
-+ rem_builtins(H_rejn, seen_rejn);
-+ rem_builtins(H_pub, seen_pub);
-+ rem_builtins(H_msg, seen_msg);
-+ rem_builtins(H_bot, seen_bot);
-+ del_hook(HOOK_MINUTELY, (Function) gseen_minutely);
-+ del_hook(HOOK_DAILY, (Function) gseen_daily);
-+ module_undepend(MODULE_NAME);
-+ return NULL;
-+}
-+
-+char *gseen_start();
-+
-+static Function gseen_table[] =
-+{
-+ (Function) gseen_start,
-+ (Function) gseen_close,
-+ (Function) gseen_expmem,
-+ (Function) gseen_report,
-+ /* 4 - 7 */
-+ (Function) findseens,
-+ (Function) free_seenresults,
-+ (Function) gseen_duration,
-+ (Function) & glob_seendat,
-+ (Function) & numresults,
-+ (Function) & fuzzy_search,
-+ (Function) & numseens,
-+ (Function) & glob_total_queries,
-+ (Function) & glob_total_searchtime,
-+ (Function) & gseen_numversion,
-+};
-+
-+char *gseen_start(Function * global_funcs)
-+{
-+ global = global_funcs;
-+ Context;
-+ module_register(MODULE_NAME, gseen_table, 1, 1);
-+ if (!(irc_funcs = module_depend(MODULE_NAME, "irc", 1, 0)))
-+ return "You need the irc module to use the gseen module.";
-+ if (!(server_funcs = module_depend(MODULE_NAME, "server", 1, 0)))
-+ return "You need the server module to use the gseen module.";
-+ if (!(channels_funcs = module_depend(MODULE_NAME, "channels", 1, 0)))
-+ return "You need the channels module to use the gseen module.";
-+ if (!module_depend(MODULE_NAME, "eggdrop", 108, 0)) {
-+ if (!module_depend(MODULE_NAME, "eggdrop", 107, 0)) {
-+ if (!module_depend(MODULE_NAME, "eggdrop", 106, 0)) {
-+ if (!module_depend(MODULE_NAME, "eggdrop", 105, 0)) {
-+ if (!module_depend(MODULE_NAME, "eggdrop", 104, 0)) {
-+ module_undepend(MODULE_NAME);
-+ return "This module requires eggdrop1.4.0 or later";
-+ }
-+ }
-+ }
-+ }
-+ }
-+ chanlangs = NULL;
-+ coreslangs = NULL;
-+ slang_glob_init();
-+
-+ results = NULL;
-+ requests = NULL;
-+ ignoredwords = NULL;
-+ bnsnick = NULL;
-+ bnschan = NULL;
-+ seen_reply = NULL;
-+
-+ numresults = 0;
-+ numseens = 0;
-+ glob_total_queries = 0;
-+ glob_total_searchtime = 0.0;
-+ ignore_words[0] = 0;
-+ no_pub[0] = 0;
-+ quiet_seen[0] = 0;
-+ no_log[0] = 0;
-+ seentree_init();
-+ add_tcl_strings(my_tcl_strings);
-+ add_tcl_ints(my_tcl_ints);
-+ add_tcl_coups(my_tcl_coups);
-+ add_tcl_commands(mytcls);
-+ add_tcl_commands(seendebugtcls);
-+ add_tcl_commands(gseentcls);
-+ add_builtins(H_dcc, mydcc);
-+ add_builtins(H_join, seen_join);
-+ add_builtins(H_kick, seen_kick);
-+ add_builtins(H_nick, seen_nick);
-+ add_builtins(H_part, seen_part);
-+ add_builtins(H_sign, seen_sign);
-+ add_builtins(H_sign, seen_sign);
-+ add_builtins(H_splt, seen_splt);
-+ add_builtins(H_rejn, seen_rejn);
-+ add_builtins(H_pub, seen_pub);
-+ add_builtins(H_msg, seen_msg);
-+ add_builtins(H_bot, seen_bot);
-+ read_seens();
-+ add_hook(HOOK_MINUTELY, (Function) gseen_minutely);
-+ add_hook(HOOK_DAILY, (Function) gseen_daily);
-+#if EGG_IS_MIN_VER(10503)
-+ initudef(1, "noseendata", 1);
-+ initudef(1, "quietseens", 1);
-+ initudef(1, "quietaiseens", 1);
-+ initudef(1, "nopubseens", 1);
-+#endif
-+ glob_slang_cmd_list = slang_commands_list_add(glob_slang_cmd_list, slang_text_gseen_command_table);
-+ putlog(LOG_MISC, "*", "gseen.mod v%s loaded.", MODULE_VERSION);
-+ return NULL;
-+}
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/gseencmds.c src/eggdrop-1.8.4/src/mod/gseen.mod/gseencmds.c
---- ./src/mod/gseen.mod/gseencmds.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/gseencmds.c 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,420 @@
-+/*
-+ * Copyright (C) 2000,2001 Florian Sander
-+ *
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+#define PREFIX_LENGTH 20
-+
-+static char reply_prefix[PREFIX_LENGTH + 1];
-+#define set_prefix(x) strncpy(reply_prefix, x, PREFIX_LENGTH); \
-+ reply_prefix[PREFIX_LENGTH] = 0;
-+
-+static int seenflood()
-+{
-+ if (!maxseen_thr || !maxseen_time)
-+ return 0;
-+ if ((now - seenflood_time) > maxseen_time) {
-+ seenflood_time = now;
-+ seenflood_thr = 0;
-+ }
-+ seenflood_thr++;
-+ if (seenflood_thr > maxseen_thr)
-+ return 1;
-+ else
-+ return 0;
-+}
-+
-+static int nopub(char *chan)
-+{
-+ char buf[121], *b;
-+
-+ Context;
-+ strncpy(buf, no_pub, 120);
-+ buf[120] = 0;
-+ b = buf;
-+ while (b[0])
-+ if (!strcasecmp(chan, newsplit(&b)))
-+ return 1;
-+#if EGG_IS_MIN_VER(10503)
-+ if (ngetudef("nopubseens", chan))
-+ return 1;
-+#endif
-+ return 0;
-+}
-+
-+static int quietseen(char *chan)
-+{
-+ char buf[121], *b;
-+
-+ Context;
-+ strncpy(buf, quiet_seen, 120);
-+ buf[120] = 0;
-+ b = buf;
-+ while (b[0])
-+ if (!strcasecmp(chan, newsplit(&b)))
-+ return 1;
-+#if EGG_IS_MIN_VER(10503)
-+ if (ngetudef("quietseens", chan))
-+ return 1;
-+#endif
-+ return 0;
-+}
-+
-+static int cmd_seen(struct userrec *u, int idx, char *par)
-+{
-+ char *query;
-+
-+ Context;
-+ if (seenflood())
-+ return 0;
-+ reset_global_vars();
-+ glob_slang = slang_find(coreslangs, default_slang);
-+ glob_nick = dcc[idx].nick;
-+ query = newsplit(&par);
-+ glob_query = query;
-+ set_prefix(SLDCCPREFIX);
-+ putlog(LOG_CMDS, "*", "#%s# seen %s", dcc[idx].nick, par);
-+ dprintf(idx, "%s%s\n", reply_prefix, do_seen(query, dcc[idx].nick,
-+ dcc[idx].host, "[partyline]", botnet_seen));
-+ return 0;
-+}
-+
-+static int cmd_seenstats(struct userrec *u, int idx, char *par)
-+{
-+ Context;
-+ if (seenflood())
-+ return 0;
-+ reset_global_vars();
-+ glob_slang = slang_find(coreslangs, default_slang);
-+ glob_nick = dcc[idx].nick;
-+ set_prefix(SLDCCPREFIX);
-+ putlog(LOG_CMDS, "*", "#%s# seenstats", dcc[idx].nick);
-+ dprintf(idx, "%s%s\n", reply_prefix, do_seenstats());
-+ return 0;
-+}
-+
-+static int cmd_purgeseens(struct userrec *u, int idx, char *par)
-+{
-+ Context;
-+ purge_seens();
-+ putlog(LOG_CMDS, "*", "#%s# purgeseens", dcc[idx].nick);
-+ return 0;
-+}
-+
-+static int pub_seen(char *nick, char *host, char *hand,
-+ char *channel, char *text)
-+{
-+ char *dest;
-+#if EGG_IS_MIN_VER(10500)
-+ struct chanset_t *chan;
-+#endif
-+
-+ Context;
-+ if (seenflood() || nopub(channel))
-+ return 0;
-+ reset_global_vars();
-+ glob_slang = slang_find(coreslangs, slang_chanlang_get(chanlangs, channel));
-+ glob_nick = nick;
-+ putlog(LOG_CMDS, "*", "<<%s>> !%s! seen %s", nick, hand, text);
-+ if (quietseen(channel)) {
-+ set_prefix(SLNOTPREFIX);
-+ dprintf(DP_HELP, "NOTICE %s :%s%s\n", nick, reply_prefix,
-+ do_seen(newsplit(&text), nick, host, channel, botnet_seen));
-+ return 0;
-+ }
-+#if EGG_IS_MIN_VER(10500)
-+ chan = findchan_by_dname(channel);
-+ if (chan)
-+ dest = chan->name;
-+ else
-+ dest = channel;
-+#else
-+ dest = channel;
-+#endif
-+ set_prefix(SLPUBPREFIX);
-+ dprintf(DP_HELP, "PRIVMSG %s :%s%s\n", dest, reply_prefix,
-+ do_seen(newsplit(&text), nick, host, channel, botnet_seen));
-+ return 0;
-+}
-+
-+static int pub_seenstats(char *nick, char *host, char *hand,
-+ char *channel, char *text)
-+{
-+ char *dest;
-+#if EGG_IS_MIN_VER(10500)
-+ struct chanset_t *chan;
-+#endif
-+
-+ Context;
-+ if (seenflood())
-+ return 0;
-+ if (nopub(channel))
-+ return 0;
-+ reset_global_vars();
-+ glob_slang = slang_find(coreslangs, slang_chanlang_get(chanlangs, channel));
-+ glob_nick = nick;
-+ putlog(LOG_CMDS, "*", "<<%s>> !%s! seenstats", nick, hand);
-+ if (quietseen(channel)) {
-+ set_prefix(SLNOTPREFIX);
-+ dprintf(DP_HELP, "NOTICE %s :%s%s\n", nick, reply_prefix, do_seenstats());
-+ return 0;
-+ }
-+#if EGG_IS_MIN_VER(10500)
-+ chan = findchan_by_dname(channel);
-+ if (chan)
-+ dest = chan->name;
-+ else
-+ dest = channel;
-+#else
-+ dest = channel;
-+#endif
-+ set_prefix(SLPUBPREFIX);
-+ dprintf(DP_HELP, "PRIVMSG %s :%s%s\n", dest, reply_prefix, do_seenstats());
-+ return 1;
-+}
-+
-+static int msg_seen(char *nick, char *uhost, struct userrec *u, char *text)
-+{
-+ Context;
-+ if (seenflood())
-+ return 0;
-+ reset_global_vars();
-+ glob_slang = slang_getbynick(coreslangs, nick);
-+ glob_nick = nick;
-+ putlog(LOG_CMDS, "*", "(%s!%s) !%s! seen %s", nick, uhost, u ? u->handle : "*", text);
-+ set_prefix(SLMSGPREFIX);
-+ dprintf(DP_HELP, "PRIVMSG %s :%s%s\n", nick, reply_prefix,
-+ do_seen(newsplit(&text), nick, uhost, "[/msg]", botnet_seen));
-+ return 1;
-+}
-+
-+static int pub_seennick(char *nick, char *host, char *hand,
-+ char *channel, char *text)
-+{
-+ seendat *l;
-+ char *dest;
-+#if EGG_IS_MIN_VER(10500)
-+ struct chanset_t *chan;
-+#endif
-+
-+ Context;
-+ if (seenflood())
-+ return 0;
-+ if (nopub(channel))
-+ return 0;
-+ putlog(LOG_CMDS, "*", "<<%s>> !%s! seennick %s", nick, hand, text);
-+ reset_global_vars();
-+ glob_slang = slang_find(coreslangs, slang_chanlang_get(chanlangs, channel));
-+ glob_nick = nick;
-+#if EGG_IS_MIN_VER(10500)
-+ chan = findchan_by_dname(channel);
-+ if (chan)
-+ dest = chan->name;
-+ else
-+ dest = channel;
-+#else
-+ dest = channel;
-+#endif
-+ text = newsplit(&text);
-+ l = findseen(text);
-+ if (!l) {
-+ glob_query = text;
-+ if (quietseen(channel)) {
-+ set_prefix(SLNOTPREFIX);
-+ dprintf(DP_HELP, "NOTICE %s :%s%s\n", nick, reply_prefix, SLNOTSEEN);
-+ } else {
-+ set_prefix(SLPUBPREFIX);
-+ dprintf(DP_HELP, "PRIVMSG %s :%s%s\n", dest, reply_prefix, SLNOTSEEN);
-+ }
-+ return 0;
-+ }
-+ if (quietseen(channel)) {
-+ set_prefix(SLNOTPREFIX);
-+ dprintf(DP_HELP, "NOTICE %s :%s%s\n", nick, reply_prefix, do_seennick(l));
-+ } else {
-+ set_prefix(SLPUBPREFIX);
-+ dprintf(DP_HELP, "PRIVMSG %s :%s%s\n", dest, reply_prefix, do_seennick(l));
-+ }
-+ return 0;
-+}
-+
-+static int msg_seennick(char *nick, char *uhost, struct userrec *u, char *text)
-+{
-+ seendat *l;
-+
-+ Context;
-+ if (seenflood())
-+ return 0;
-+ putlog(LOG_CMDS, "*", "(%s!%s) !%s! seennick %s", nick, uhost, u ? u->handle : "*", text);
-+ reset_global_vars();
-+ glob_slang = slang_getbynick(coreslangs, nick);
-+ glob_nick = nick;
-+ set_prefix(SLMSGPREFIX);
-+ text = newsplit(&text);
-+ l = findseen(text);
-+ if (!l) {
-+ glob_query = text;
-+ dprintf(DP_HELP, "PRIVMSG %s :%s%s\n", nick, reply_prefix, SLNOTSEEN);
-+ return 0;
-+ }
-+ dprintf(DP_HELP, "PRIVMSG %s :%s%s\n", nick, reply_prefix, do_seennick(l));
-+ return 0;
-+}
-+
-+static int cmd_seennick(struct userrec *u, int idx, char *text)
-+{
-+ seendat *l;
-+
-+ Context;
-+ if (seenflood())
-+ return 0;
-+ putlog(LOG_CMDS, "*", "#%s# seennick %s", dcc[idx].nick, text);
-+ reset_global_vars();
-+ glob_slang = slang_find(coreslangs, default_slang);
-+ glob_nick = dcc[idx].nick;
-+ set_prefix(SLMSGPREFIX);
-+ text = newsplit(&text);
-+ l = findseen(text);
-+ if (!l) {
-+ glob_query = text;
-+ dprintf(idx, "%s%s\n", reply_prefix, SLNOTSEEN);
-+ return 0;
-+ }
-+ dprintf(idx, "%s%s\n", reply_prefix, do_seennick(l));
-+ return 0;
-+}
-+
-+static int bot_gseen_req(char *bot, char *code, char *par)
-+{
-+ char *mask, *nick, *uhost, *chan, *reply;
-+ char tosend[256];
-+ int i;
-+
-+ Context;
-+ if (seenflood())
-+ return 0;
-+ i = nextbot(bot);
-+ if (i < 0) {
-+ debug1("Couldn't answer botnet-seen-request from %s: no such bot", bot);
-+ return 0;
-+ }
-+ mask = newsplit(&par);
-+ nick = newsplit(&par);
-+ uhost = newsplit(&par);
-+ chan = newsplit(&par);
-+ reset_global_vars();
-+ glob_slang = slang_find(coreslangs, slang_chanlang_get(chanlangs, chan));
-+ glob_nick = nick;
-+ reply = do_seen(mask, nick, uhost, chan, -1);
-+ if (!reply)
-+ return 0;
-+ if ((strlen(nick) + strlen(chan) + strlen(reply)) < 255) {
-+ sprintf(tosend, "gseen_rep %s %s %s", nick, chan, reply);
-+ botnet_send_zapf(i, botnetnick, bot, tosend);
-+ }
-+ return 0;
-+}
-+
-+static int bot_gseen_rep(char *bot, char *code, char *par)
-+{
-+ char *nick, *chan, *reply;
-+ int i;
-+
-+ Context;
-+ if (seenflood())
-+ return 0;
-+ if (!bnsnick || !bnschan) {
-+ if (bnsnick)
-+ nfree(bnsnick);
-+ if (bnschan)
-+ nfree(bnschan);
-+ bnsnick = bnschan = NULL;
-+ return 0;
-+ }
-+ nick = newsplit(&par);
-+ chan = newsplit(&par);
-+ reset_global_vars();
-+ glob_remotebot = bot;
-+ glob_slang = slang_find(coreslangs, slang_chanlang_get(chanlangs, chan));
-+ glob_nick = nick;
-+ reply = par;
-+ if (strcmp(nick, bnsnick) || strcmp(chan, bnschan))
-+ return 0; /* unwanted reply */
-+ if (findchan(chan)) {
-+ if (nopub(chan)) {
-+ nfree(bnsnick);
-+ nfree(bnschan);
-+ bnsnick = bnschan = NULL;
-+ debug1("%s is nopub, bns-reply dropped", chan);
-+ return 0;
-+ }
-+ if (quietseen(chan)) {
-+ set_prefix(SLNOTPREFIX);
-+ dprintf(DP_HELP, "NOTICE %s :%s%s%s\n", nick, reply_prefix, SLRBOTSAYS, reply);
-+ } else {
-+ set_prefix(SLPUBPREFIX);
-+ dprintf(DP_HELP, "PRIVMSG %s :%s%s%s\n", chan, reply_prefix, SLRBOTSAYS, reply);
-+ }
-+ } else if (!strcmp(chan, "[/msg]")) {
-+ set_prefix(SLMSGPREFIX);
-+ dprintf(DP_HELP, "PRIVMSG %s :%s%s%s\n", nick, reply_prefix, SLRBOTSAYS, reply);
-+ } else if (!strcmp(chan, "[partyline]")) {
-+ for (i = 0; i < dcc_total; i++) {
-+ if ((!strcasecmp(nick, dcc[i].nick)) &&
-+ (dcc[i].type->flags & DCT_SIMUL)) {
-+ set_prefix(SLDCCPREFIX);
-+ dprintf(i, "%s%s%s\n", reply_prefix, SLRBOTSAYS, reply);
-+ break;
-+ }
-+ }
-+ } else
-+ debug1("Couldn't send received bns answer, no such chan %s", chan);
-+ nfree(bnsnick);
-+ nfree(bnschan);
-+ bnsnick = bnschan = NULL;
-+ return 0;
-+}
-+
-+static cmd_t mydcc[] =
-+{
-+ {"seen", "-|-", cmd_seen, NULL},
-+ {"seenstats", "-|-", cmd_seenstats, NULL},
-+ {"purgeseens", "m", cmd_purgeseens, NULL},
-+ {"seennick", "-|-", cmd_seennick, NULL},
-+ {0, 0, 0, 0}
-+};
-+
-+static cmd_t seen_pub[] =
-+{
-+ {"!seen", "", pub_seen, 0},
-+ {"!seenstats", "", pub_seenstats, 0},
-+ {"!seennick", "", pub_seennick, 0},
-+ {0, 0, 0, 0}
-+};
-+
-+static cmd_t seen_msg[] =
-+{
-+ {"seen", "", msg_seen, 0},
-+ {"seennick", "", msg_seennick, 0},
-+ {0, 0, 0, 0}
-+};
-+
-+static cmd_t seen_bot[] =
-+{
-+ {"gseen_req", "", bot_gseen_req, 0},
-+ {"gseen_rep", "", bot_gseen_rep, 0},
-+ {0, 0, 0, 0}
-+};
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/gseen.conf src/eggdrop-1.8.4/src/mod/gseen.mod/gseen.conf
---- ./src/mod/gseen.mod/gseen.conf 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/gseen.conf 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,151 @@
-+
-+######
-+#####
-+### General Settings
-+#####
-+######
-+
-+# the file where the seen data will be backuped.
-+# WARNING: set this _before_ the module is loaded.
-+set gseenfile "gseen.dat"
-+
-+# now load the module
-+loadmodule gseen
-+
-+# load the English language file
-+loadseenslang "en" "English" language/gseen.en.lang
-+
-+# load the German language file
-+loadseenslang "de" "Deutsch" language/gseen.de.lang
-+
-+# set the default language to english...
-+set default-slang "en"
-+
-+# ... but let #xwp use the german langfile
-+setchanseenlang #xwp "de"
-+
-+# the char that marks public commands (!seen, etc...)
-+# "" is a valid option
-+set cmdchar "!"
-+
-+# delete data sets that are older than x days
-+set expire-seens 60
-+
-+# only answer x seen requests in y seconds to prevent flooding
-+set max-seens 7:60
-+
-+# tell users if someone was !seen'ing for them
-+set tell-seens 1
-+
-+# check if the user was online under a different nick
-+set fuzzy-search 1
-+
-+# allow user to include wildcards in the search?
-+set wildcard-search 1
-+
-+# break search if there are more than x matches
-+set max-matches 250
-+
-+# forward a request to other bots, if a !seen returned no result?
-+set botnet-seens 1
-+
-+# store channels, which are +secret on the bot as [secret]?
-+set hide-secret-chans 1
-+
-+# backup the seen data every x minutes
-+set save-seens 60
-+
-+######
-+#####
-+### AI Settings
-+#####
-+######
-+
-+# this setting configures on which sentences your bot should
-+# attempt to do an ai-seen. Each of them is a simple wildcard
-+# mask. Set this to "" if you want to deactivate ai-seens or
-+# create more precise masks if the bots reacts too often.
-+set ai-seen-binds {
-+ "${nick}*seen*"
-+ "${botnet-nick}*seen*"
-+ "${nick}*gesehen*"
-+ "${botnet-nick}*gesehen*"
-+}
-+
-+# this is just the same as above, but if triggered it will
-+# not do an ai-seen, but display its seen-stats.
-+set ai-seenstats-binds {
-+ "${nick}*seenstats*"
-+ "${botnet-nick}*seenstats*"
-+}
-+
-+# when doing an AI seen, ignore the following words (otherwise
-+# the bot might give weird answers like "<bot> nick, bot was last seen..." :)
-+set ai-seen-ignore "$nick ${botnet-nick} seen"
-+
-+######
-+#####
-+### special stuff (can be ignored in most cases)
-+#####
-+######
-+
-+# Maximum length of requested nick that will still be processed.
-+# (by default this is eggdrop's configured nick-length)
-+set seen-nick-len ${nick-len}
-+
-+# if the user is known by the bot, log their handle instead of the nick
-+# (not recommended, might cause confusion by the users)
-+set use-handles 0
-+
-+######
-+#####
-+### outdated settings (only important for eggdropv1.4 users)
-+#####
-+######
-+
-+# channels where you do not want your bot to reply to public queries
-+set no-pub-seens ""
-+
-+# channels where you want your bot to send replies via notice to the user and
-+# not to the channel
-+set quiet-seens ""
-+
-+# same as quiet-seens but for AI seen
-+set quiet-ai-seens ""
-+
-+# channels where you do not want your bot to log seen data
-+set no-seendata ""
-+
-+
-+###############################################################################
-+# end of configuration
-+# just ignore everything below ^_^
-+###############################################################################
-+
-+bind chjn - * *chjn:gseen
-+bind chpt - * *chpt:gseen
-+
-+catch "unbind pub - !seen *pub:!seen"
-+catch "unbind pub - !seennick *pub:!seennick"
-+catch "unbind pub - !seenstats *pub:!seenstats"
-+bind pub - ${cmdchar}seen *pub:!seen
-+bind pub - ${cmdchar}seennick *pub:!seennick
-+bind pub - ${cmdchar}seenstats *pub:!seenstats
-+
-+foreach bnd [binds pubm] {
-+ if {([lindex $bnd 2] == "*pubm:seen") || ([lindex $bnd 2] == "*pub:!seenstats")} {
-+ unbind [lindex $bnd 0] [lindex $bnd 1] [lindex $bnd 2] [lindex $bnd 4]
-+ }
-+}
-+
-+if {${ai-seen-binds} != ""} {
-+ foreach mask ${ai-seen-binds} {
-+ bind pubm -|- "% [subst $mask]" *pubm:seen
-+ }
-+}
-+
-+if {${ai-seenstats-binds} != ""} {
-+ foreach mask ${ai-seenstats-binds} {
-+ bind pubm -|- "% [subst $mask]" *pub:!seenstats
-+ }
-+}
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/gseen.de.lang src/eggdrop-1.8.4/src/mod/gseen.mod/gseen.de.lang
---- ./src/mod/gseen.mod/language/gseen.de.lang 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/language/gseen.de.lang 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,131 @@
-+#####################################################################
-+#
-+# Deutsche Sprachdatei f�r GSeen.Mod v1.1.0
-+#
-+# Der Text in dieser Datei kann nach belieben ver�ndert werden. Du
-+# kannst Tags hinzuf�gen oder entfernen, wie es Dir gef�llt. Die Tags
-+# m�ssen nicht in einer bestimmten Reihenfolge oder Anzahl vorkommen.
-+#
-+# Wenn Du mehr als eine Zeile pro ID angibst, dann wird bei der
-+# Antwort per Zufall eine daraus ausgew�hlt. (das funktioniert nicht
-+# bei den Zeiteinheiten)
-+#
-+# Falls Du denkst, da� hier noch ein paar wichtige Tags fehlen, dann
-+# schick mir einfach eine email. Vielleicht f�ge ich sie dann in der
-+# n�chsten Version hinzu.
-+#
-+# Eine komplette Liste der Verf�gbaren Tags befindet sich am Ende von
-+# slang_gseen_commands.c (leider ohne Erkl�hrungen)
-+#
-+#####################################################################
-+
-+#
-+## Zeiteinheiten
-+#
-+# jeweils in Singular und Plural
-+#
-+D 0 Jahr
-+D 1 Jahre
-+D 2 Woche
-+D 3 Wochen
-+D 4 Tag
-+D 5 Tage
-+D 6 Stunde
-+D 7 Stunden
-+D 8 Minute
-+D 9 Minuten
-+D 10 Sekunde
-+D 11 Sekunden
-+# falls ein �ng�ltiger Zeitwert angegeben war, dann wird dieser Text ausgegeben:
-+D 12 einiger Zeit
-+
-+
-+#
-+## Pr�fixe
-+#
-+# Dieses Fragment wird jeweils vor eine Antwort gesetzt. Dadurch
-+# ist beispielsweise bei �ffentlichen Anfragen ersichtlich, f�r
-+# wen die Antwort ist.
-+# Achtung: Die Nummer muss auf jeden Fall definiert werden. Sie muss
-+# zwar keinen Text beinhalten, aber wenn sie nicht vorhanden
-+# ist, dann gibt es eine Fehlermeldung
-+
-+# f�r Antworten, die in den Channel geschrieben werden:
-+10 <?nick/?>,
-+# f�r Antworten, die per NOTICE an den User geschickt werden:
-+11
-+# f�r Antworten auf Anfragen, die per "/msg <bot> seen" erfolgt sind:
-+12
-+# und f�r Antworten auf der Partyline:
-+13
-+
-+#
-+## Fehlermeldungen
-+#
-+54 wei�t Du was ein Parameter ist? ^_^
-+54 ich w�rde Dir ja gerne helfen, aber solange Du nicht sagst, nach wem Du suchst, kann ich nicht viel tun.
-+54 meinst Du nicht, es w�re geschickter zu sagen, nach wem Du �berhaupt suchst?
-+54 42.
-+55 sehe ich etwa wie ein Spiegel aus? ^_^
-+55 Spieglein, Spieglein an der Wand...
-+55 leidest Du etwa unter multiplen Pers�nlichkeiten? *eg*
-+56 also wenn Du <?query/?> jetzt hier nicht sehen kannst, dann brauchst Du sicherlich eine neue Brille ^_^
-+56 ich muss mir unbedingt mal die Tarnkappe von <?query/?> ausleihen. Scheint ja prima zu funktioneren.
-+56 schau Dir bitte nochmal ganz genau an, wer grade alles im Channel ist.
-+57 Tut mir leid, aber Wildcards ('?', oder '*') sind bei der Suche nicht erlaubt.
-+58 �hm... naja... etwas arg lang, dieser Nick... :)
-+
-+#
-+## Kein Ergebnis
-+#
-+65 Ich kann mich nicht daran erinnern, <?query/?> gesehen zu haben...
-+65 <?query/?>? Hmm... ich bin mir nicht sicher... vielleicht... eventuell... nein, kenne ich nicht.
-+65 der Name sagt mir nichts. Hast Du Dich vielleicht vertippt?
-+66 Ich hab' <?query/?> seit <?laston/?> nicht mehr gesehen.
-+67 Sorry, aber zu deiner Anfrage passt nichts in meiner Datenbank :(
-+68 Autschi, das gab viel zu viele Ergebnisse. Bitte formuliere deine Suche etwas genauer.
-+
-+73 <?query/?> ist grade unter dem Nick "<?othernick/?>" in diesem Channel zu finden.
-+74 <?query/?> ist gerade in <?otherchan/?>.
-+75 Deine Anfrage f�hrte zu genau einem Ergebnis:
-+76 Immerhin <?numresults/?> Treffer ergab deine Anfrage:
-+77 Wow, auf deine Anfrage passen sogar <?numresults/?> Eintr�ge in meiner Datenbank! Dies sind die 5 aktuellsten:
-+
-+#
-+## falls ein anderer Bot etwas gefunden hat:
-+#
-+85 <?remotebot/?> sagt:
-+
-+#
-+## die eigentliche Information
-+#
-+101 Ich habe <?snick/?> (<?shost/?>) zuletzt <?schan/?> vor <?swhen/?> betreten sehen (<?stime/?>). <?snick/?> ist noch immer da.
-+121 Ich habe <?snick/?> (<?shost/?>) zuletzt <?schan/?> vor <?swhen/?> betreten sehen (<?stime/?>), aber <?snick/?> verschwand mysteri�serweise.
-+102 Ich habe <?snick/?> (<?shost/?>) zuletzt <?schan/?> vor <?swhen/?> nach <?spent/?> verchatteter Zeit verlassen sehen (<?stime/?>)
-+103 Ich habe <?snick/?> (<?shost/?>) zuletzt in <?schan/?> gesehen, als er/sie vor <?swhen/?> (<?stime/?>) nach <?spent/?> das IRC verlie� ("<?smsg/?>").
-+104 Zuletzt habe ich <?snick/?> (<?shost/?>) vor <?swhen/?> in <?schan/?> gesehen, den Nick zu <?snick2/?> wechselnd. <?snick2/?> ist noch immer dort.
-+124 <?snick/?> (<?shost/?>) was last seen changing his/her nick to <?snick2/?> on <?schan/?> <?swhen/?> ago (<?stime/?>), but <?snick2/?> mysteriously dematerialized.
-+105 Zuletzt habe ich <?snick/?> (<?shost/?>) vor <?swhen/?> in <?schan/?> gesehen, den Nick von <?snick2/?> wechselnd. <?snick/?> ist noch immer dort.
-+125 <?snick/?> (<?shost/?>) was last seen changing his/her nick from <?snick2/?> on <?schan/?> <?swhen/?> ago (<?stime/?>), but <?snick/?> mysteriously dematerialized.
-+106 Zuletzt habe ich <?snick/?> (<?shost/?>) gesehen, als er vor <?swhen/?> (<?stime/?>) von <?punisher/?> aus <?schan/?> gejagt wurde. (<?kickreason/?>)
-+107 <?snick/?> (<?shost/?>) habe ich zuletzt vor <?swhen/?> gesehen, als er/sie von <?schan/?> aus in einem Netsplit verschwand.
-+108 <?snick/?> (<?shost/?>) habe ich zuletzt vor <?swhen/?> gesehen, als er/sie nach einem Netsplit in <?schan/?> zur�ck kam. <?snick/?> ist noch immer dort.
-+128 <?snick/?> (<?shost/?>) habe ich zuletzt vor <?swhen/?> gesehen, als er/sie nach einem Netsplit in <?schan/?> zur�ck kam. Allerdings konnte <?snick/?> dem Gott der Netsplits nicht endg�ltig entkommen und ist wieder verschollen...
-+109 <?snick/?> was last seen joining the botnet channel <?schan/?> on <?bnbot/?> <?swhen/?> ago (<?stime/?>).
-+129 <?snick/?> was last seen joining the partyline on <?bnbot/?> <?swhen/?> ago (<?stime/?>).
-+110 <?snick/?> was last seen leaving the botnet channel <?schan/?> from <?bnbot/?> <?swhen/?> ago (<?stime/?>).
-+130 <?snick/?> was last seen leaving the partyline from <?bnbot/?> <?swhen/?> ago (<?stime/?>).
-+140 <?snick/?> (<?shost/?>) was last seen on <?schan/?> <?swhen/?> ago (<?stime/?>).
-+
-+#
-+## Seen-Mitteilungen
-+#
-+170 <?rnick/?> (<?rhost/?>) scheint vor <?rwhen/?> (<?rtime/?>) in <?rchan/?> auf der Suche nach Dir gewesen zu sein.
-+171 <?requests/?> Leute haben sich nach Dir erkundigt:
-+172 Der/die letzte war <?rnick/?> (<?rhost/?>) in <?rchan/?> vor <?rwhen/?> (<?rtime/?>).
-+
-+#
-+## Statistiken
-+#
-+180 Momentan sind <?totalnicks/?> Nicks in meiner Datenbank. Gesamter Speicherverbrauch: <?totalbytes/?> Bytes
-+180 In meiner Datenbank befinden sich <?totalnicks/?> Nicks und verbrauchen <?totalbytes/?> Bytes Speicher.
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/gseen.en.lang src/eggdrop-1.8.4/src/mod/gseen.mod/gseen.en.lang
---- ./src/mod/gseen.mod/language/gseen.en.lang 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/language/gseen.en.lang 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,131 @@
-+#####################################################################
-+#
-+# Default English langfile for GSeen.Mod v1.1.0
-+#
-+# Just edit the text below to fit your needs. You can add or remove
-+# any tag just like you want, they do not need to appear in a special
-+# order (or number).
-+#
-+# If you enter more than one line per ID, then a random one will be
-+# chosen for each reply. (this does not work for the time strings)
-+#
-+# If you think you need more tags, just email me and maybe I'll add
-+# them in the next release.
-+#
-+# A complete list of available Tags can be found at the end of the
-+# file slang_gseen_commands.c (unfortunately, it does not contain any
-+# descriptions for the tags)
-+#
-+#####################################################################
-+
-+#
-+## time string
-+#
-+# each time string in singular and plural
-+#
-+D 0 year
-+D 1 years
-+D 2 week
-+D 3 weeks
-+D 4 day
-+D 5 days
-+D 6 hour
-+D 7 hours
-+D 8 minute
-+D 9 minutes
-+D 10 second
-+D 11 seconds
-+# if an invalid time value was supplied, output the following string
-+D 12 some time
-+
-+#
-+## Prefixes
-+#
-+# These are the prefixes of the replies. By default, there's only
-+# a prefix for public requests (so you know for whom the answer is),
-+# but you can also define prefixes for other requests.
-+
-+# for replies in the channel:
-+10 <?nick/?>,
-+# for replies via notice:
-+11
-+# for replies via PRIVMSG
-+12
-+# for replies on the partyline
-+13
-+
-+#
-+## error messages
-+#
-+54 do you know what a parameter is?
-+54 don't you think it would be more reasonable to say for whom you are searching?
-+54 42.
-+55 do I look like a mirror? ^_^
-+55 mirror mirror on the wall...
-+55 do you have a split personality? *eg*
-+56 if you can't see <?query/?> here right now, you probably need new glasses. ^_^
-+56 please look a bit closer at the memberlist of this channel.
-+57 I'm sorry, but wildcards ('?' or '*') are not allowed in a search.
-+58 Hum... don't you think this nick is a bit long? ^_^
-+58 you know that the length of nicks is limited, don't you?
-+
-+#
-+## no result
-+#
-+65 I don't remember seeing <?query/?>.
-+65 <?query/?>? hmm... I'm trying to remember... maybe... I'm not sure... no. I don't remember <?query/?>.
-+66 I haven't seen <?query/?> for <?laston/?>.
-+67 I found no matches to your query.
-+67 I'm sorry, but your search didn't return any results.
-+68 Ouch, your search returned way too many matches. Please refine it.
-+
-+#
-+## victim is online
-+#
-+73 <?query/?> is <?othernick/?>, who is on this channel right now.
-+74 <?query/?> is on <?otherchan/?> right now.
-+
-+#
-+## results found
-+#
-+75 I found one match to your query:
-+76 I found <?numresults/?> matches to your query:
-+77 I found <?numresults/?> matches to your query. These are the 5 most recent ones:
-+
-+#
-+## results found by another bot in the botnet
-+#
-+85 <?remotebot/?> says:
-+
-+#
-+## the core info
-+#
-+101 <?snick/?> (<?shost/?>) was last seen joining <?schan/?> <?swhen/?> ago (<?stime/?>). <?snick/?> is still there.
-+121 <?snick/?> (<?shost/?>) was last seen joining <?schan/?> <?swhen/?> ago (<?stime/?>), but <?snick/?> mysteriously dematerialized.
-+102 <?snick/?> (<?shost/?>) was last seen parting <?schan/?> <?swhen/?> ago (<?stime/?>), after spending <?spent/?> there.
-+103 <?snick/?> (<?shost/?>) was last seen quitting <?schan/?> <?swhen/?> ago (<?stime/?>) stating "<?smsg/?>" after spending <?spent/?> there.
-+104 <?snick/?> (<?shost/?>) was last seen changing his/her nick to <?snick2/?> on <?schan/?> <?swhen/?> ago (<?stime/?>). <?snick2/?> is still there.
-+124 <?snick/?> (<?shost/?>) was last seen changing his/her nick to <?snick2/?> on <?schan/?> <?swhen/?> ago (<?stime/?>), but <?snick2/?> mysteriously dematerialized.
-+105 <?snick/?> (<?shost/?>) was last seen changing his/her nick from <?snick2/?> on <?schan/?> <?swhen/?> ago (<?stime/?>). <?snick/?> is still there.
-+125 <?snick/?> (<?shost/?>) was last seen changing his/her nick from <?snick2/?> on <?schan/?> <?swhen/?> ago (<?stime/?>), but <?snick/?> mysteriously dematerialized.
-+106 <?snick/?> (<?shost/?>) was last seen being kicked from <?schan/?> by <?punisher/?> (<?kickreason/?>) <?swhen/?> ago (<?stime/?>), after spending <?spent/?> there.
-+107 <?snick/?> (<?shost/?>) was last seen splitting from <?schan/?> <?swhen/?> ago (<?stime/?>), after spending <?spent/?> there.
-+108 <?snick/?> (<?shost/?>) was last seen rejoining <?schan/?> from a netsplit <?swhen/?> ago (<?stime/?>) <?snick/?> is still there.
-+128 <?snick/?> (<?shost/?>) was last seen rejoining <?schan/?> from a netsplit <?swhen/?> ago (<?stime/?>), but the god of netsplits didn't let him escape, so he's not here now.
-+109 <?snick/?> was last seen joining the botnet channel <?schan/?> on <?bnbot/?> <?swhen/?> ago (<?stime/?>).
-+129 <?snick/?> was last seen joining the partyline on <?bnbot/?> <?swhen/?> ago (<?stime/?>).
-+110 <?snick/?> was last seen leaving the botnet channel <?schan/?> from <?bnbot/?> <?swhen/?> ago (<?stime/?>).
-+130 <?snick/?> was last seen leaving the partyline from <?bnbot/?> <?swhen/?> ago (<?stime/?>).
-+140 <?snick/?> (<?shost/?>) was last seen on <?schan/?> <?swhen/?> ago (<?stime/?>).
-+
-+#
-+## seen notification
-+#
-+170 <?rnick/?> (<?rhost/?>) was looking for you on <?rchan/?> <?rwhen/?> ago (<?rtime/?>).
-+171 There have been <?requests/?> users looking for you:
-+172 The last one was <?rnick/?> (<?rhost/?>) on <?rchan/?> <?rwhen/?> ago (<?rtime/?>).
-+
-+#
-+## seen stats
-+#
-+180 I'm currently tracking <?totalnicks/?> nicks using <?totalbytes/?> bytes.
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/gseen.h src/eggdrop-1.8.4/src/mod/gseen.mod/gseen.h
---- ./src/mod/gseen.mod/gseen.h 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/gseen.h 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,157 @@
-+/*
-+ * Copyright (C) 2000,2001 Florian Sander
-+ *
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+/* #define USE_MEMDEBUG 1 */
-+
-+#define SEEN_JOIN 1
-+#define SEEN_PART 2
-+#define SEEN_SIGN 3
-+#define SEEN_NICK 4
-+#define SEEN_NCKF 5
-+#define SEEN_KICK 6
-+#define SEEN_SPLT 7
-+#define SEEN_REJN 8
-+#define SEEN_CHPT 9
-+#define SEEN_CHJN 10
-+
-+typedef struct gseen_data {
-+ int type;
-+ char *nick;
-+ char *host;
-+ char *chan;
-+ char *msg;
-+ time_t when;
-+ int spent;
-+} seendat;
-+
-+typedef struct gseen_result {
-+ struct gseen_result *next;
-+ seendat *seen;
-+} gseenres;
-+
-+typedef struct gseen_requests {
-+ struct gseen_requests *next;
-+ char *who;
-+ char *host;
-+ char *chan;
-+ time_t when;
-+} seenreq_by;
-+
-+typedef struct gseen_request {
-+ struct gseen_request *next;
-+ char *nick;
-+ struct gseen_requests *by;
-+} seenreq;
-+
-+typedef struct gseen_ignorewords {
-+ struct gseen_ignorewords *next;
-+ char *word;
-+} ignoredword;
-+
-+#ifdef MAKING_GSEEN
-+static int gseen_expmem();
-+static void free_gseen();
-+static int get_spent(char *, char *);
-+static void write_seens();
-+static void read_seens();
-+static char *do_seen(char *, char *, char *, char *, int);
-+static void add_seenresult(seendat *);
-+static int expmem_seenresults();
-+static void free_seenresults();
-+static void sortresults();
-+static char *do_seennick(seendat *);
-+static int onchan(char *, char *);
-+static char *handonchan(char *, char *);
-+static struct chanset_t *onanychan(char *);
-+static struct chanset_t *handonanychan(char *);
-+static char *do_seenstats();
-+static void add_seenreq(char *, char *, char *, char *, time_t);
-+static int expmem_seenreq();
-+static void free_seenreq();
-+static void sortrequests(seenreq *);
-+static void report_seenreq(char *, char *);
-+static int count_seenreq(seenreq_by *b);
-+static int expmem_ignoredwords();
-+static void free_ignoredwords();
-+static void add_ignoredword(char *word);
-+static int word_is_ignored(char *word);
-+static void purge_seens();
-+static int seenflood();
-+static int secretchan(char *);
-+static int nopub(char *);
-+static int quietseen(char *);
-+static int quietaiseens(char *);
-+static int nolog(char *);
-+static void start_seentime_calc();
-+static void end_seentime_calc();
-+#endif
-+
-+
-+#ifdef MAKING_GSEEN
-+
-+// tree stuff
-+static void maskstricthost(const char *, char *);
-+#endif
-+
-+// interface for webseen
-+#define WS_OK 0
-+#define WS_NORESULT 1
-+#define WS_NOPARAM 2
-+#define WS_NOWILDCARDS 3
-+#define WS_TOOLONGNICK 4
-+#define WS_TOOMANYMATCHES 5
-+#define WS_TOOLONGHOST 6
-+
-+#ifndef MAKING_GSEEN
-+#define findseens ((gseenres *(*)(char *, int *, int))gseen_funcs[4])
-+#define free_seenresults ((void (*)())gseen_funcs[5])
-+#define gseen_duration ((char *(*)(int))gseen_funcs[6])
-+#define numresults (*(int *)(gseen_funcs[12]))
-+#define fuzzy_search (*(int *)(gseen_funcs[13]))
-+#define numseens (*(int *)(gseen_funcs[15]))
-+#define glob_total_queries (*(int *)(gseen_funcs[16]))
-+#define glob_total_searchtime (*(double *)(gseen_funcs[17]))
-+#define gseen_numversion (*(int *)(gseen_funcs[19]))
-+#else
-+static gseenres *findseens(char *, int *, int);
-+static char *gseen_duration(int);
-+#endif
-+
-+#ifdef MAKING_GSEEN
-+
-+#ifdef malloc
-+#undef malloc
-+#endif
-+#ifdef free
-+#undef free
-+#endif
-+#ifdef realloc
-+#undef realloc
-+#endif
-+
-+#ifdef USE_MEMDEBUG
-+#define my_malloc nmalloc
-+#define my_free nfree
-+#define my_realloc nrealloc
-+#else
-+#define my_malloc malloc
-+#define my_free free
-+#define my_realloc realloc
-+#endif
-+
-+#endif
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/Makefile src/eggdrop-1.8.4/src/mod/gseen.mod/Makefile
---- ./src/mod/gseen.mod/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/Makefile 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,28 @@
-+# Makefile for src/mod/gseen.mod/
-+
-+doofus:
-+ @echo ""
-+ @echo "Let's try this from the right directory..."
-+ @echo ""
-+ @cd ../../../; make
-+
-+clean:
-+ @rm -f *.o *.$(MOD_EXT) *~
-+
-+static: ../gseen.o
-+
-+modules: ../../../gseen.$(MOD_EXT)
-+
-+../gseen.o: ../module.h ../modvals.h ../../eggdrop.h datahandling.c \
-+ gseen.c sensors.c gseencmds.c gseencmds.c do_seen.c ai.c tclcmds.c \
-+ misc.c seentree.c generic_binary_tree.c slang_gseen_commands.c \
-+ slang.c slang_text.c slang_ids.c slang_chanlang.c seenlang.h \
-+ slang_multitext.c gseen.h
-+ $(CC) $(CFLAGS) $(CPPFLAGS) -DMAKING_MODS -c gseen.c
-+ rm -f ../gseen.o
-+ mv gseen.o ../
-+
-+../../../gseen.$(MOD_EXT): ../gseen.o
-+ $(LD) -o ../../../gseen.$(MOD_EXT) ../gseen.o $(XLIBS)
-+
-+#safety hash
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/misc.c src/eggdrop-1.8.4/src/mod/gseen.mod/misc.c
---- ./src/mod/gseen.mod/misc.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/misc.c 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,116 @@
-+/*
-+ * Copyright (C) 2000,2001 Florian Sander
-+ *
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+/* maskstricthost():
-+ * basically the same as maskhost() from src/misc.c, but _never_ stripts
-+ * "~+-^=" off the host
-+ * maskhost() version: * $Id: misc.c,v 1.1 2005/04/14 10:55:00 Administrator Exp $
-+ */
-+static void maskstricthost(const char *s, char *nw)
-+{
-+ register const char *p, *q, *e, *f;
-+ int i;
-+
-+ *nw++ = '*';
-+ *nw++ = '!';
-+ p = (q = strchr(s, '!')) ? q + 1 : s;
-+ /* Strip of any nick, if a username is found, use last 8 chars */
-+ if ((q = strchr(p, '@'))) {
-+ int fl = 0;
-+
-+ if ((q - p) > 9) {
-+ nw[0] = '*';
-+ p = q - 7;
-+ i = 1;
-+ } else
-+ i = 0;
-+ while (*p != '@') {
-+ if (!fl && strchr("~+-^=", *p)) {
-+// if (strict_host)
-+ nw[i] = '?';
-+// else
-+// i--;
-+ } else
-+ nw[i] = *p;
-+ fl++;
-+ p++;
-+ i++;
-+ }
-+ nw[i++] = '@';
-+ q++;
-+ } else {
-+ nw[0] = '*';
-+ nw[1] = '@';
-+ i = 2;
-+ q = s;
-+ }
-+ nw += i;
-+ e = NULL;
-+ /* Now q points to the hostname, i point to where to put the mask */
-+ if ((!(p = strchr(q, '.')) || !(e = strchr(p + 1, '.'))) && !strchr(q, ':'))
-+ /* TLD or 2 part host */
-+ strcpy(nw, q);
-+ else {
-+ if (e == NULL) { /* IPv6 address? */
-+ const char *mask_str;
-+
-+ f = strrchr(q, ':');
-+ if (strchr(f, '.')) { /* IPv4 wrapped in an IPv6? */
-+ f = strrchr(f, '.');
-+ mask_str = ".*";
-+ } else /* ... no, true IPv6. */
-+ mask_str = ":*";
-+ strncpy(nw, q, f - q);
-+ /* No need to nw[f-q] = 0 here, as the strcpy below will
-+ * terminate the string for us.
-+ */
-+ nw += (f - q);
-+ strcpy(nw, mask_str);
-+ } else {
-+ for (f = e; *f; f++);
-+ f--;
-+ if (*f >= '0' && *f <= '9') { /* Numeric IP address */
-+ while (*f != '.')
-+ f--;
-+ strncpy(nw, q, f - q);
-+ /* No need to nw[f-q] = 0 here, as the strcpy below will
-+ * terminate the string for us.
-+ */
-+ nw += (f - q);
-+ strcpy(nw, ".*");
-+ } else { /* Normal host >= 3 parts */
-+ /* a.b.c -> *.b.c
-+ * a.b.c.d -> *.b.c.d if tld is a country (2 chars)
-+ * OR *.c.d if tld is com/edu/etc (3 chars)
-+ * a.b.c.d.e -> *.c.d.e etc
-+ */
-+ const char *x = strchr(e + 1, '.');
-+
-+ if (!x)
-+ x = p;
-+ else if (strchr(x + 1, '.'))
-+ x = e;
-+ else if (strlen(x) == 3)
-+ x = p;
-+ else
-+ x = e;
-+ sprintf(nw, "*%s", x);
-+ }
-+ }
-+ }
-+}
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/README src/eggdrop-1.8.4/src/mod/gseen.mod/README
---- ./src/mod/gseen.mod/README 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/README 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,139 @@
-+Description:
-+------------
-+
-+gseen.mod is a seen module for eggdrop that tracks not only the users in the
-+bot's userfile, but everyone who enters one of the bots channels.
-+It does pretty much the same as the popular script bseen and has a few
-+additional features like AI-seen and seen-notification.
-+It's also way faster than any corresponding script because scripts are always
-+much slower than modules. Especially scripts that deal with large amount of
-+data often become incredible slow.
-+
-+Installation:
-+-------------
-+
-+gseen.mod is written for eggdrop1.6, but it should also work with eggdrop 1.4.
-+It has been reported to work with eggdrop 1.8, but I did not test it
-+myself on that version.
-+
-+You need the eggdrop source to compile the module.
-+
-+The following instructions assume, ~/eggdrop1.6.2/ is the directory
-+where you installed your eggdrop from. (of course, other source dirs
-+will work as well)
-+
-+Put gseen.mod.1.1.2.tar.gz in ~/eggdrop1.6.2/src/mod/,
-+and unpack it (tar xfz gseen.mod.1.1.2.tar.gz). Change directory
-+back to ~/eggdrop1.6.2/.
-+
-+Now just do what you've done when you compiled your bot:
-+"./configure"
-+"make config" (you can skip this command on eggdrop 1.4)
-+"make"
-+"make install"
-+
-+Don't forget to copy the langfiles from eggdrop1.6.2/src/mod/gseen.mod/ to
-+eggdrop/language.
-+
-+All settings can be found in ~/eggdrop1.6.2/src/mod/gseen.mod/gseen.conf
-+Copy it to your eggdrop directory, edit it to fit your needs and put
-+"source gseen.conf" at the end of your eggdrop config file. The last thing
-+to do is to .rehash your bot.
-+
-+
-+Public commands:
-+----------------
-+
-+!seen <nick>
-+ I think this command doesn't need an explanation. ^_^
-+!seen <mask>
-+ Searches the database for entries that match <mask>
-+ for example "!seen *!user@dialin-*.isp.com"
-+!seennick <nick>
-+ !seen also checks if a user was online later with a
-+ different nick. !seennick only seens for <nick>
-+!seenstats
-+ just a little report on how many nicks are tracked
-+
-+All commands are also accessible via /msg.
-+("/msg <bot> seen <nick>", for example)
-+
-+
-+AI seen:
-+--------
-+
-+This module has a simple built in AI routine.
-+A short example:
-+
-+<G`Quann> Argo: have you seen Fabian recently?
-+<|Argo|> G`Quann, fabian (~fabian@dns.gifs.de) was last seen quitting
-+from #eggdev 1 week 4 days 9 hours 40 minutes 56 seconds ago
-+(20.02. 01:39) stating ".....zzzzZZZzzZZZzZZZZZZZZZZzzz..".
-+
-+Well, it's not a very intelligent AI, it's rather brute-force. So don't
-+forget to use the ai-seen-ignore setting.
-+I know that's not coded very elegant, but if you configure it correctly,
-+the failure-rate is way lower than with other AI scripts...
-+
-+DCC commands:
-+-------------
-+
-+.seen
-+.seennick
-+.seenstats
-+ just the same as the public versions
-+.purgeseens
-+ deletes expired data (this also happens automatically once a day)
-+ (m)
-+
-+Channel Settings:
-+-----------------
-+
-+ +noseendata
-+ don't log any seen data in this channel
-+ +quietseens
-+ send answers directly via notice to the person who asked and
-+ don't bother the rest of the channel with the reply
-+ +quietaiseens
-+ same as +quietseens, but for AI seens
-+ +nopubseens
-+ ignore every seen-command in this channel
-+
-+TCL commands:
-+-------------
-+
-+There are no special tcl commands, only the usual bind procs.
-+
-+The only one that should be mentioned is:
-+
-+*pubm:seen <nick> <uhost> <hand> <chan> <text>
-+ triggers the AI seen
-+ returns: 1 if a reply was sent, 0 otherwise
-+
-+So if you're using another AI script on your bot, you can modify it to
-+use this proc and avoid doubled replies this way.
-+
-+Other:
-+------
-+
-+There is absolutely NO WARRANTY on this module. I do my best to make it
-+work properly, but if anything gets screwed up, I'm not responsible. Use
-+this module at your own risk.
-+
-+Homepage:
-+---------
-+
-+The newest gseen version can always be found at:
-+http://www.kreativrauschen.com/gseen.mod/
-+
-+Thanks to:
-+----------
-+
-+- Fabian for teaching me plenty of things
-+- everyone who tested the many buggy development versions :)
-+- the eggdev team for developing eggdrop
-+
-+Most of all, I would like to thank Bass for writing bseen.tcl because alot
-+of the ideas for this module came from using that tcl script. It's still the
-+most powerful seen script, so if you want something that's easier to use than
-+a module, get a copy of bseen.tcl.
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/seenlang.h src/eggdrop-1.8.4/src/mod/gseen.mod/seenlang.h
---- ./src/mod/gseen.mod/seenlang.h 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/seenlang.h 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,61 @@
-+/*
-+ * Copyright (C) 2000,2001 Florian Sander
-+ *
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+#define SLPUBPREFIX getslang(10)
-+#define SLNOTPREFIX getslang(11)
-+#define SLMSGPREFIX getslang(12)
-+#define SLDCCPREFIX getslang(13)
-+
-+#define SLNOPARAM getslang(54)
-+#define SLMIRROR getslang(55)
-+#define SLONCHAN getslang(56)
-+#define SLNOWILDCARDS getslang(57)
-+#define SLTOOLONGNICK getslang(58)
-+
-+#define SLNOTSEEN getslang(65)
-+#define SLPOORSEEN getslang(66)
-+#define SLNOMATCH getslang(67)
-+#define SLTOOMANYMATCHES getslang(68)
-+
-+#define SLHANDONCHAN getslang(73)
-+#define SLONOTHERCHAN getslang(74)
-+#define SLONEMATCH getslang(75)
-+#define SLLITTLEMATCHES getslang(76)
-+#define SLMANYMATCHES getslang(77)
-+
-+#define SLRBOTSAYS getslang(85)
-+
-+#define SLYEAR getdur(0)
-+#define SLYEARS getdur(1)
-+#define SLWEEK getdur(2)
-+#define SLWEEKS getdur(3)
-+#define SLDAY getdur(4)
-+#define SLDAYS getdur(5)
-+#define SLHOUR getdur(6)
-+#define SLHOURS getdur(7)
-+#define SLMINUTE getdur(8)
-+#define SLMINUTES getdur(9)
-+#define SLSECOND getdur(10)
-+#define SLSECONDS getdur(11)
-+#define SLSOMETIME getdur(12)
-+
-+#define SLONELOOK getslang(170)
-+#define SLMORELOOKS getslang(171)
-+#define SLLASTLOOK getslang(172)
-+
-+#define SLSEENSTATS getslang(180)
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/seentree.c src/eggdrop-1.8.4/src/mod/gseen.mod/seentree.c
---- ./src/mod/gseen.mod/seentree.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/seentree.c 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,213 @@
-+/*
-+ * Copyright (C) 2000,2001 Florian Sander
-+ *
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+static struct generic_binary_tree seentree;
-+
-+static void seentree_init();
-+static int seentree_expmem();
-+static void seentree_free();
-+static int compareseens(void *, void *);
-+static int expmemseen(void *);
-+static void add_seen(int, char *, char *, char *, char *,
-+ time_t, int);
-+static void freeseen(void *);
-+static seendat *findseen(char *);
-+static void wildmatch_seens(char *, char *, int);
-+static void process_wildmatch_seens(void *);
-+static void write_seen_tree(void *);
-+static void purge_seen_tree(void *);
-+static int count_seens();
-+static void _count_seens(void *);
-+
-+
-+static void seentree_init()
-+{
-+ seentree.root = NULL;
-+ seentree.comparedata = compareseens;
-+ seentree.expmemdata = expmemseen;
-+ seentree.freedata = freeseen;
-+}
-+
-+static int seentree_expmem()
-+{
-+ return btree_expmem(&seentree);
-+}
-+
-+static void seentree_free()
-+{
-+ btree_freetree(&seentree);
-+ seentree.root = NULL;
-+}
-+
-+static int compareseens(void *first, void *second)
-+{
-+ return rfc_casecmp(((seendat *) first)->nick, ((seendat *) second)->nick);
-+}
-+
-+// add another entry to the tree
-+static void add_seen(int type, char *nick, char *host, char *chan, char *msg,
-+ time_t when, int spent)
-+{
-+ seendat *newseen;
-+
-+ newseen = nmalloc(sizeof(seendat));
-+ newseen->type = type;
-+ newseen->nick = nmalloc(strlen(nick) + 1);
-+ strcpy(newseen->nick, nick);
-+ newseen->host = nmalloc(strlen(host) + 1);
-+ strcpy(newseen->host, host);
-+ newseen->chan = nmalloc(strlen(chan) + 1);
-+ strcpy(newseen->chan, chan);
-+ newseen->msg = nmalloc(strlen(msg) + 1);
-+ strcpy(newseen->msg, msg);
-+ newseen->when = when;
-+ newseen->spent = spent;
-+ btree_add(&seentree, newseen);
-+}
-+
-+static void freeseen(void *what)
-+{
-+ seendat *s = (seendat *) what;
-+
-+ Assert(s);
-+ Assert(s->nick);
-+ Assert(s->host);
-+ Assert(s->chan);
-+ Assert(s->msg);
-+
-+ nfree(s->nick);
-+ nfree(s->host);
-+ nfree(s->chan);
-+ nfree(s->msg);
-+ nfree(s);
-+}
-+
-+static int expmemseen(void *what)
-+{
-+ int size = 0;
-+ seendat *d = (seendat *) what;
-+
-+ size += sizeof(seendat);
-+ size += strlen(d->nick) + 1;
-+ size += strlen(d->host) + 1;
-+ size += strlen(d->chan) + 1;
-+ size += strlen(d->msg) + 1;
-+ return size;
-+}
-+
-+// finds a seen entry in the tree
-+seendat findseen_temp;
-+static seendat *findseen(char *nick)
-+{
-+ findseen_temp.nick = nick;
-+ return btree_get(&seentree, &findseen_temp);
-+}
-+
-+// function to find all nicks that match a host
-+// (calls btree_getall() which calls a target function for each item)
-+// host: user's hostmask (used if search query doesn't contain any wildcards)
-+// mask: search mask
-+// wild: defines if we want to use the mask, or host for the search
-+static char *wildmatch_host, *wildmatch_mask;
-+int wildmatch_wild;
-+static void wildmatch_seens(char *host, char *mask, int wild)
-+{
-+ wildmatch_host = host;
-+ wildmatch_mask = mask;
-+ wildmatch_wild = wild;
-+ btree_getall(&seentree, process_wildmatch_seens);
-+}
-+
-+/* process_wildmatch_seens():
-+ * gets called from the binary tree for each existing item.
-+ */
-+static void process_wildmatch_seens(void *data)
-+{
-+ seendat *s = (seendat *) data;
-+
-+ if ((numresults > max_matches) && (max_matches > 0)) // Don't return too many
-+ return; // matches...
-+ if (!wildmatch_wild) {
-+ if (wild_match(wildmatch_host, s->host))
-+ add_seenresult(s);
-+ } else {
-+ temp_wildmatch_host = my_realloc(temp_wildmatch_host, strlen(s->nick) + 1 + strlen(s->host) + 1);
-+ strcpy(temp_wildmatch_host, s->nick);
-+ strcat(temp_wildmatch_host, "!");
-+ strcat(temp_wildmatch_host, s->host);
-+ if (wild_match(wildmatch_mask, s->nick) || wild_match(wildmatch_mask, temp_wildmatch_host))
-+ add_seenresult(s);
-+ }
-+}
-+
-+// write seendata in the datafile
-+FILE *write_seen_tree_target;
-+static void write_seen_tree(void *data)
-+{
-+ seendat *node = (seendat *) data;
-+
-+ /* format: "! nick host chan type when spent msg" */
-+ fprintf(write_seen_tree_target, "! %s %s %s %d %lu %d %s\n", node->nick,
-+ node->host, node->chan, node->type, node->when, node->spent,
-+ node->msg);
-+}
-+
-+// recursive function to remove old data
-+// QUESTION: What happens if one of the nodes get moved by killseen()?
-+// Possible bug/crash?
-+// I think it should not be a problem. When killseen() is called the
-+// first time, recursion already reached its end and no pointers
-+// are accessed anymore. But I'm not sure... maybe I'm wrong.
-+static void purge_seen_tree(void *data)
-+{
-+ seendat *node = (seendat *) data;
-+
-+ if ((now - node->when) > (expire_seens * 86400)) {
-+ debug1("seen data for %s has expired.", node->nick);
-+ btree_remove(&seentree, node);
-+ }
-+}
-+
-+// counts the number of nicks in the database
-+static int count_seens_temp;
-+static int count_seens()
-+{
-+ count_seens_temp = 0;
-+ btree_getall(&seentree, _count_seens);
-+ return count_seens_temp;
-+}
-+
-+static void _count_seens(void *node)
-+{
-+ count_seens_temp++;
-+}
-+
-+static int tcl_killseen STDVAR
-+{
-+ Context;
-+ BADARGS(2, 2, " nick");
-+ findseen_temp.nick = argv[1];
-+ btree_remove(&seentree, &findseen_temp);
-+ return TCL_OK;
-+}
-+
-+static tcl_cmds seendebugtcls[] =
-+{
-+ {"killseen", tcl_killseen},
-+ {0, 0}
-+};
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/sensors.c src/eggdrop-1.8.4/src/mod/gseen.mod/sensors.c
---- ./src/mod/gseen.mod/sensors.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/sensors.c 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,273 @@
-+/*
-+ * Copyright (C) 2000,2001 Florian Sander
-+ *
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+static int get_spent(char *nick, char *chan)
-+{
-+ struct chanset_t *ch = NULL;
-+ memberlist *m = NULL;
-+
-+ int spent;
-+ ch = findchan_by_dname(chan);
-+ if (ch)
-+ m = ismember(ch, nick);
-+ if (m && m->joined)
-+ spent = now - m->joined;
-+ else
-+ spent = -1;
-+ return spent;
-+}
-+
-+static int secretchan(char *chan)
-+{
-+ struct chanset_t *ch;
-+
-+ ch = findchan_by_dname(chan);
-+ if (!ch)
-+ return 0;
-+ if (ch->status & CHAN_SECRET)
-+ return 1;
-+ return 0;
-+}
-+
-+static int nolog(char *chan)
-+{
-+ char buf[121], *b;
-+
-+ Context;
-+ strncpy(buf, no_log, 120);
-+ buf[120] = 0;
-+ b = buf;
-+ while (b[0])
-+ if (!strcasecmp(chan, newsplit(&b)))
-+ return 1;
-+#if EGG_IS_MIN_VER(10503)
-+ if (ngetudef("noseendata", chan))
-+ return 1;
-+#endif
-+ return 0;
-+}
-+
-+static int gseen_join(char *nick, char *uhost, char *hand, char *chan)
-+{
-+ char buf[10] = "[secret]";
-+
-+ Context;
-+ if (nolog(chan))
-+ return 0;
-+ if (use_handles && (hand[0] != '*'))
-+ nick = hand;
-+ if (secretchan(chan))
-+ chan = buf;
-+ add_seen(SEEN_JOIN, nick, uhost, chan, "", now, get_spent(nick, chan));
-+ report_seenreq(chan, nick);
-+ if ((hand[0] == '*') && strcasecmp(nick, hand))
-+ report_seenreq(chan, hand);
-+ return 0;
-+}
-+
-+static int gseen_kick(char *nick, char *uhost, char *hand, char *chan,
-+ char *victim, char *reason)
-+{
-+ struct chanset_t *ch = NULL;
-+ memberlist *m = NULL;
-+ char msg[1024], *s;
-+ char buf[10] = "[secret]";
-+
-+ Context;
-+ if (nolog(chan))
-+ return 0;
-+ if (use_handles && (hand[0] != '*'))
-+ nick = hand;
-+ ch = findchan_by_dname(chan);
-+ if (!ch) {
-+ debug2("Unable to seen %s getting kicked from %s", victim, chan);
-+ return 0;
-+ }
-+ if (secretchan(chan))
-+ chan = buf;
-+ s = msg;
-+ s[0] = 0;
-+ m = ismember(ch, victim);
-+ if (!m) {
-+ debug2("Unable to seen %s getting kicked from %s", victim, chan);
-+ return 0;
-+ }
-+ if ((strlen(nick) + strlen(reason) + 2) < 1024)
-+ sprintf(s, "%s %s", nick, reason);
-+ add_seen(SEEN_KICK, victim, m->userhost, chan, s, now,
-+ get_spent(victim, chan));
-+ return 0;
-+}
-+
-+static int gseen_nick(char *nick, char *uhost, char *hand, char *chan,
-+ char *newnick)
-+{
-+ char buf[10] = "[secret]";
-+
-+ Context;
-+ if (nolog(chan))
-+ return 0;
-+ if (use_handles && (hand[0] != '*'))
-+ nick = hand;
-+ if (secretchan(chan))
-+ chan = buf;
-+ add_seen(SEEN_NICK, nick, uhost, chan, newnick, now, get_spent(nick, chan));
-+ if (!(use_handles && (hand[0] != '*')))
-+ add_seen(SEEN_NCKF, newnick, uhost, chan, nick, now, get_spent(nick, chan));
-+ report_seenreq(chan, newnick);
-+ if ((hand[0] != '*') && strcasecmp(newnick, hand))
-+ report_seenreq(chan, hand);
-+ return 0;
-+}
-+
-+#if EGG_IS_MIN_VER(10502)
-+static int gseen_part(char *nick, char *uhost, char *hand, char *chan,
-+ char *reason)
-+{
-+ char buf[10] = "[secret]";
-+
-+ Context;
-+ if (nolog(chan))
-+ return 0;
-+ if (use_handles && (hand[0] != '*'))
-+ nick = hand;
-+ if (secretchan(chan))
-+ chan = buf;
-+ add_seen(SEEN_PART, nick, uhost, chan, reason, now, get_spent(nick, chan));
-+ return 0;
-+}
-+#else
-+static int gseen_part(char *nick, char *uhost, char *hand, char *chan)
-+{
-+ char buf[10] = "[secret]";
-+
-+ Context;
-+ if (nolog(chan))
-+ return 0;
-+ if (use_handles && (hand[0] != '*'))
-+ nick = hand;
-+ if (secretchan(chan))
-+ chan = buf;
-+ add_seen(SEEN_PART, nick, uhost, chan, "", now, get_spent(nick, chan));
-+ return 0;
-+}
-+#endif
-+
-+static int gseen_sign(char *nick, char *uhost, char *hand, char *chan,
-+ char *reason)
-+{
-+ char buf[10] = "[secret]";
-+
-+ Context;
-+ if (nolog(chan))
-+ return 0;
-+ if (use_handles && (hand[0] != '*'))
-+ nick = hand;
-+ if (secretchan(chan))
-+ chan = buf;
-+ add_seen(SEEN_SIGN, nick, uhost, chan, reason, now, get_spent(nick, chan));
-+ return 0;
-+}
-+
-+static int gseen_splt(char *nick, char *uhost, char *hand, char *chan)
-+{
-+ char buf[10] = "[secret]";
-+
-+ Context;
-+ if (nolog(chan))
-+ return 0;
-+ if (use_handles && (hand[0] != '*'))
-+ nick = hand;
-+ if (secretchan(chan))
-+ chan = buf;
-+ add_seen(SEEN_SPLT, nick, uhost, chan, "", now, get_spent(nick, chan));
-+ return 0;
-+}
-+
-+static int gseen_rejn(char *nick, char *uhost, char *hand, char *chan)
-+{
-+ char buf[10] = "[secret]";
-+
-+ Context;
-+ if (nolog(chan))
-+ return 0;
-+ if (use_handles && (hand[0] != '*'))
-+ nick = hand;
-+ if (secretchan(chan))
-+ chan = buf;
-+ add_seen(SEEN_REJN, nick, uhost, chan, "", now, get_spent(nick, chan));
-+ return 0;
-+}
-+
-+static int gseen_chjn STDVAR
-+{
-+ Context;
-+ BADARGS(7, 7, " bot hand chan flag idx host");
-+ add_seen(SEEN_CHJN, argv[2], argv[6], argv[3], argv[1], now, -1);
-+ return 0;
-+}
-+
-+static int gseen_chpt STDVAR
-+{
-+ Context;
-+ BADARGS(5, 5, " bot hand idx chan");
-+ add_seen(SEEN_CHPT, argv[2], "unknown", argv[4], argv[1], now, -1);
-+ return 0;
-+}
-+
-+static cmd_t seen_kick[] =
-+{
-+ {"*", "", (Function) gseen_kick, "gseen"},
-+ {0, 0, 0, 0}
-+};
-+
-+static cmd_t seen_nick[] =
-+{
-+ {"*", "", (Function) gseen_nick, "gseen"},
-+ {0, 0, 0, 0}
-+};
-+
-+static cmd_t seen_join[] =
-+{
-+ {"*", "", (Function) gseen_join, "gseen"},
-+ {0, 0, 0, 0}
-+};
-+
-+static cmd_t seen_part[] =
-+{
-+ {"*", "", (Function) gseen_part, "gseen"},
-+ {0, 0, 0, 0}
-+};
-+
-+static cmd_t seen_sign[] =
-+{
-+ {"*", "", (Function) gseen_sign, "gseen"},
-+ {0, 0, 0, 0}
-+};
-+
-+static cmd_t seen_splt[] =
-+{
-+ {"*", "", (Function) gseen_splt, "gseen"},
-+ {0, 0, 0, 0}
-+};
-+
-+static cmd_t seen_rejn[] =
-+{
-+ {"*", "", (Function) gseen_rejn, "gseen"},
-+ {0, 0, 0, 0}
-+};
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/slang.c src/eggdrop-1.8.4/src/mod/gseen.mod/slang.c
---- ./src/mod/gseen.mod/slang.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/slang.c 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,309 @@
-+/*
-+ * Copyright (C) 2000,2001 Florian Sander
-+ *
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+static struct slang_header *slang_find(struct slang_header *, char *);
-+
-+#include "slang_text.c"
-+#include "slang_multitext.c"
-+#include "slang_ids.c"
-+#ifndef SLANG_NOTYPES
-+#include "slang_types.c"
-+#endif
-+#include "slang_duration.c"
-+#ifndef SLANG_NOFACTS
-+#include "slang_facts_places.c"
-+#include "slang_facts.c"
-+#endif
-+#include "slang_chanlang.c"
-+
-+
-+struct slang_header {
-+ struct slang_header *next;
-+ char *lang;
-+ char *desc;
-+ struct slang_id *ids;
-+#ifndef SLANG_NOTYPES
-+ struct slang_type *types;
-+#endif
-+ struct slang_duration *durations;
-+};
-+
-+static void slang_glob_init()
-+{
-+ glob_slang_cmd_list = NULL;
-+}
-+
-+static int slang_glob_expmem()
-+{
-+ return slang_commands_list_expmem(glob_slang_cmd_list);
-+}
-+
-+static void slang_glob_free()
-+{
-+ slang_commands_list_free(glob_slang_cmd_list);
-+ glob_slang_cmd_list = NULL;
-+}
-+
-+static struct slang_header *slang_create(struct slang_header *list, char *lang, char *desc)
-+{
-+ struct slang_header *nslang, *l;
-+
-+ Assert(lang);
-+ debug2("Creating language '%s' starting by %d", lang, (int) list);
-+ for (nslang = list; nslang; nslang = nslang->next)
-+ if (!strcasecmp(nslang->lang, lang))
-+ return list;
-+ nslang = nmalloc(sizeof(struct slang_header));
-+ nslang->next = NULL;
-+ nslang->desc = NULL;
-+ nslang->lang = nmalloc(strlen(lang) + 1);
-+ strcpy(nslang->lang, lang);
-+ nslang->desc = nmalloc(strlen(desc) + 1);
-+ strcpy(nslang->desc, desc);
-+ nslang->ids = NULL;
-+#ifndef SLANG_NOTYPES
-+ nslang->types = NULL;
-+#endif
-+ nslang->durations = NULL;
-+ for (l = list; l && l->next; l = l->next);
-+ if (l)
-+ l->next = nslang;
-+ else {
-+ Assert(!list);
-+ list = nslang;
-+ }
-+ return list;
-+}
-+
-+static int slang_expmem(struct slang_header *what)
-+{
-+ int size = 0;
-+
-+ while (what) {
-+ size += sizeof(struct slang_header);
-+ size += strlen(what->lang) + 1;
-+ size += strlen(what->desc) + 1;
-+ size += slang_id_expmem(what->ids);
-+#ifndef SLANG_NOTYPES
-+ size += slang_type_expmem(what->types);
-+#endif
-+ size += slang_duration_expmem(what->durations);
-+ what = what->next;
-+ }
-+ return size;
-+}
-+
-+static void slang_free(struct slang_header *what)
-+{
-+ struct slang_header *next;
-+
-+ while (what) {
-+ next = what->next;
-+ slang_id_free(what->ids);
-+#ifndef SLANG_NOTYPES
-+ slang_type_free(what->types);
-+#endif
-+ slang_duration_free(what->durations);
-+ nfree(what->lang);
-+ nfree(what->desc);
-+ nfree(what);
-+ what = next;
-+ }
-+}
-+
-+static int slang_load(struct slang_header *slang, char *filename)
-+{
-+ FILE *f;
-+ char *buffer, *s;
-+ char *cmd, *sid, *strtol_ret;
-+#ifndef SLANG_NOTYPES
-+ char *type;
-+#endif
-+ int line, id;
-+
-+ Assert(slang);
-+ putlog(LOG_MISC, "*", "Loading language \"%s\" from %s...", slang->lang, filename);
-+ f = fopen(filename, "r");
-+ if (!f) {
-+ putlog(LOG_MISC, "*", "Couldn't open slangfile \"%s\"!", filename);
-+ return 0;
-+ }
-+ buffer = nmalloc(2000);
-+ line = 0;
-+ while (!feof(f)) {
-+ s = buffer;
-+ if (fgets(s, 2000, f)) {
-+ line++;
-+ // at first, kill those stupid line feeds and carriage returns...
-+ if (s[strlen(s) - 1] == '\n')
-+ s[strlen(s) - 1] = 0;
-+ if (s[strlen(s) - 1] == '\r')
-+ s[strlen(s) - 1] = 0;
-+ if (!s[0])
-+ continue;
-+ cmd = newsplit(&s);
-+
-+ if (!strcasecmp(cmd, "T")) {
-+#ifndef SLANG_NOTYPES
-+ type = newsplit(&s);
-+ slang->types = slang_type_add(slang->types, type, s);
-+#endif
-+ } else if (!strcasecmp(cmd, "D")) {
-+ sid = newsplit(&s);
-+ id = strtol(sid, &strtol_ret, 10);
-+ if (strtol_ret == sid) {
-+ putlog(LOG_MISC, "*", "ERROR in slangfile \"%s\", line %d: %s is not a valid "
-+ "duration index!", filename, line, sid);
-+ continue;
-+ }
-+ slang->durations = slang_duration_add(slang->durations, id, s);
-+ } else {
-+ id = strtol(cmd, &strtol_ret, 10);
-+ if (strtol_ret == cmd)
-+ continue;
-+ slang->ids = slang_id_add(slang->ids, id, s);
-+ }
-+ }
-+ }
-+ fclose(f);
-+ nfree(buffer);
-+ return 1;
-+}
-+
-+static struct slang_header *slang_find(struct slang_header *where, char *language)
-+{
-+ struct slang_header *slang = NULL;
-+
-+ // at first, search for the specified language
-+ for (slang = where; slang; slang = slang->next)
-+ if (!strcasecmp(slang->lang, language))
-+ return slang;
-+ // oops... language seems to be invalid. Let's find the default.
-+ Assert(default_slang);
-+ for (slang = where; slang; slang = slang->next)
-+ if (!strcasecmp(slang->lang, default_slang))
-+ return slang;
-+ // default_slang wasn't found either? *sigh*
-+ // Let's return the first known language then.
-+ return where;
-+}
-+
-+#ifndef SLANG_NOVALIDATE
-+/* slang_valid():
-+ * check if the given language is a valid one
-+ */
-+static int slang_valid(struct slang_header *where, char *language)
-+{
-+ struct slang_header *slang = NULL;
-+
-+ for (slang = where; slang; slang = slang->next)
-+ if (!strcasecmp(slang->lang, language))
-+ return 1;
-+ return 0;
-+}
-+#endif
-+
-+static char getslang_error[12];
-+static char *getslang(int id)
-+{
-+ char *text;
-+
-+ if (!glob_slang) {
-+ putlog(LOG_MISC, "*", "WARNING! No language selected! (getslang())");
-+ return "NOLANG";
-+ }
-+ text = slang_id_get(glob_slang->ids, id);
-+ if (!text) {
-+ snprintf(getslang_error, sizeof(getslang_error), "SLANG%d", id);
-+ return getslang_error;
-+ }
-+ return text;
-+}
-+
-+static char *getdur(int idx)
-+{
-+ char *text;
-+
-+ Assert((idx >= 0) && (idx < DURATIONS));
-+ if (!glob_slang) {
-+ putlog(LOG_MISC, "*", "WARNING! No language selected! (getdur())");
-+ return "NOLANG";
-+ }
-+ text = slang_duration_get(glob_slang->durations, idx);
-+ if (!text) {
-+ snprintf(getslang_error, sizeof(getslang_error), "DUR%d", idx);
-+ return getslang_error;
-+ }
-+ return text;
-+}
-+
-+#ifndef SLANG_NOTYPES
-+static char *getslangtype(char *type)
-+{
-+ char *stype;
-+
-+ if (!glob_slang) {
-+ putlog(LOG_MISC, "*", "WARNING! No language selected! (getslangtype())");
-+ return "NOLANG";
-+ }
-+ stype = slang_type_get(glob_slang->types, type);
-+ if (stype)
-+ return stype;
-+ else
-+ return type;
-+}
-+
-+static int slangtypetoi(char *slangtype)
-+{
-+ char *type;
-+
-+ if (!glob_slang) {
-+ putlog(LOG_MISC, "*", "WARNING! No language selected! (slangtypetoi())");
-+ return T_ERROR;
-+ }
-+ type = slang_type_slang2type(glob_slang->types, slangtype);
-+ if (type) {
-+ debug1("type: %s", type);
-+ return typetoi(type);
-+ } else
-+ return typetoi(slangtype);
-+}
-+#endif
-+
-+#ifndef SLANG_NOGETALL
-+static char *getslang_first(int id)
-+{
-+ char *text;
-+
-+ if (!glob_slang) {
-+ putlog(LOG_MISC, "*", "WARNING! No language selected! (getslang())");
-+ return "NOLANG";
-+ }
-+ text = slang_id_get_first(glob_slang->ids, id);
-+ if (!text) {
-+ snprintf(getslang_error, sizeof(getslang_error), "SLANG%d", id);
-+ return getslang_error;
-+ }
-+ return text;
-+}
-+
-+static char *getslang_next()
-+{
-+ return slang_id_get_next();
-+}
-+#endif
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/slang_chanlang.c src/eggdrop-1.8.4/src/mod/gseen.mod/slang_chanlang.c
---- ./src/mod/gseen.mod/slang_chanlang.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/slang_chanlang.c 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,113 @@
-+/*
-+ * Copyright (C) 2000,2001 Florian Sander
-+ *
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+struct slang_chanlang {
-+ struct slang_chanlang *next;
-+ char *chan;
-+ char *lang;
-+};
-+
-+static struct slang_chanlang *chanlangs = NULL;
-+
-+static struct slang_chanlang *slang_chanlang_add(struct slang_chanlang *, char *, char *);
-+static int slang_chanlang_expmem(struct slang_chanlang *);
-+static void slang_chanlang_free(struct slang_chanlang *);
-+static char *slang_chanlang_get(struct slang_chanlang *, char *);
-+
-+static struct slang_chanlang *slang_chanlang_add(struct slang_chanlang *where, char *chan, char *lang)
-+{
-+ struct slang_chanlang *item;
-+
-+ for (item = where; item; item = item->next)
-+ if (!rfc_casecmp(item->chan, chan))
-+ break;
-+ if (!item) {
-+ item = nmalloc(sizeof(struct slang_chanlang));
-+ item->chan = nmalloc(strlen(chan) + 1);
-+ strcpy(item->chan, chan);
-+ item->lang = nmalloc(strlen(lang) + 1);
-+ strcpy(item->lang, lang);
-+ item->next = where;
-+ where = item;
-+ } else {
-+ Assert(item->lang);
-+ item->lang = nrealloc(item->lang, strlen(lang) + 1);
-+ strcpy(item->lang, lang);
-+ }
-+ return where;
-+}
-+
-+static int slang_chanlang_expmem(struct slang_chanlang *what)
-+{
-+ int size = 0;
-+
-+ while (what) {
-+ Assert(what);
-+ Assert(what->chan);
-+ Assert(what->lang);
-+ size += sizeof(struct slang_chanlang);
-+ size += strlen(what->chan) + 1;
-+ size += strlen(what->lang) + 1;
-+ what = what->next;
-+ }
-+ return size;
-+}
-+
-+static void slang_chanlang_free(struct slang_chanlang *what)
-+{
-+ struct slang_chanlang *next;
-+
-+ while (what) {
-+ Assert(what);
-+ Assert(what->chan);
-+ Assert(what->lang);
-+ next = what->next;
-+ nfree(what->chan);
-+ nfree(what->lang);
-+ nfree(what);
-+ what = next;
-+ }
-+}
-+
-+static char *slang_chanlang_get(struct slang_chanlang *where, char *chan)
-+{
-+ while (where) {
-+ if (!rfc_casecmp(where->chan, chan))
-+ return where->lang;
-+ where = where->next;
-+ }
-+ return default_slang;
-+}
-+
-+/* slang_getbynick():
-+ * tries to find an appropriate language for nick by searching
-+ * him on a channel and using the language of this channel.
-+ */
-+static struct slang_header *slang_getbynick(struct slang_header *where, char *nick)
-+{
-+ struct chanset_t *chan;
-+
-+ for (chan = chanset; chan; chan = chan->next)
-+ if (ismember(chan, nick))
-+#if EGG_IS_MIN_VER(10500)
-+ return slang_find(where, slang_chanlang_get(chanlangs, chan->dname));
-+#else
-+ return slang_find(where, slang_chanlang_get(chanlangs, chan->name));
-+#endif
-+ return slang_find(where, default_slang);
-+}
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/slang_duration.c src/eggdrop-1.8.4/src/mod/gseen.mod/slang_duration.c
---- ./src/mod/gseen.mod/slang_duration.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/slang_duration.c 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,82 @@
-+/*
-+ * Copyright (C) 2000,2001 Florian Sander
-+ *
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+#define DURATIONS 13
-+
-+struct slang_duration {
-+ char *durs[DURATIONS];
-+};
-+
-+static struct slang_duration *slang_duration_add(struct slang_duration *where, int idx, char *text)
-+{
-+ int i;
-+
-+ if ((idx < 0) || (idx >= DURATIONS)) {
-+ putlog(LOG_MISC, "*", "Warning: Invalid duration index \"%d\".", idx);
-+ return where;
-+ }
-+ debug2("Adding duration[%d]: %s", idx, text);
-+ if (!where) {
-+ where = nmalloc(sizeof(struct slang_duration));
-+ for (i = 0; i < DURATIONS; i++)
-+ where->durs[i] = NULL;
-+ }
-+ if (where->durs[idx])
-+ nfree(where->durs[idx]);
-+ where->durs[idx] = nmalloc(strlen(text) + 1);
-+ strcpy(where->durs[idx], text);
-+ return where;
-+}
-+
-+static int slang_duration_expmem(struct slang_duration *what)
-+{
-+ int i, size = 0;
-+
-+ if (!what)
-+ return 0;
-+ size += sizeof(struct slang_duration);
-+ for (i = 0; i < DURATIONS; i++)
-+ if (what->durs[i])
-+ size += strlen(what->durs[i]) + 1;
-+ return size;
-+}
-+
-+static void slang_duration_free(struct slang_duration *what)
-+{
-+ int i;
-+
-+ if (what) {
-+ for (i = 0; i < DURATIONS; i++)
-+ if (what->durs[i])
-+ nfree(what->durs[i]);
-+ nfree(what);
-+ }
-+}
-+
-+static char *slang_duration_get(struct slang_duration *where, int idx)
-+{
-+ if (!where) {
-+ debug0("no where");
-+ return NULL;
-+ }
-+ if ((idx < 0) || (idx >= DURATIONS)) {
-+ debug1("invalid duration index: %d", idx);
-+ return NULL;
-+ }
-+ return where->durs[idx];
-+}
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/slang_gseen_commands.c src/eggdrop-1.8.4/src/mod/gseen.mod/slang_gseen_commands.c
---- ./src/mod/gseen.mod/slang_gseen_commands.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/slang_gseen_commands.c 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,235 @@
-+static void slang_send_botnick()
-+{
-+ strncat(slang_text_buf, botname, sizeof(slang_text_buf));
-+}
-+
-+static void slang_send_query()
-+{
-+ if (glob_query)
-+ strncat(slang_text_buf, glob_query, sizeof(slang_text_buf));
-+}
-+
-+static void slang_send_laston()
-+{
-+ if (glob_laston)
-+ strncat(slang_text_buf, glob_laston, sizeof(slang_text_buf));
-+}
-+
-+static void slang_send_otherchan()
-+{
-+ if (glob_otherchan)
-+ strncat(slang_text_buf, glob_otherchan, sizeof(slang_text_buf));
-+}
-+
-+static void slang_send_othernick()
-+{
-+ if (glob_othernick)
-+ strncat(slang_text_buf, glob_othernick, sizeof(slang_text_buf));
-+}
-+
-+static void slang_send_remotebot()
-+{
-+ if (glob_remotebot)
-+ strncat(slang_text_buf, glob_remotebot, sizeof(slang_text_buf));
-+}
-+
-+static void slang_send_snick()
-+{
-+ if (glob_seendat)
-+ strncat(slang_text_buf, glob_seendat->nick, sizeof(slang_text_buf));
-+}
-+
-+static void slang_send_shost()
-+{
-+ if (glob_seendat)
-+ strncat(slang_text_buf, glob_seendat->host, sizeof(slang_text_buf));
-+}
-+
-+static void slang_send_schan()
-+{
-+ if (glob_seendat)
-+ strncat(slang_text_buf, glob_seendat->chan, sizeof(slang_text_buf));
-+}
-+
-+static void slang_send_swhen()
-+{
-+ char *dur;
-+
-+ if (glob_seendat) {
-+ dur = gseen_duration(now - glob_seendat->when);
-+ strncat(slang_text_buf, dur, sizeof(slang_text_buf));
-+ }
-+}
-+
-+static void slang_send_stime()
-+{
-+ time_t tt;
-+ char t[20];
-+
-+ if (glob_seendat) {
-+ tt = glob_seendat->when;
-+ strftime(t, 19, "%d.%m. %H:%M", localtime(&tt));
-+ strncat(slang_text_buf, t, sizeof(slang_text_buf));
-+ }
-+}
-+
-+static void slang_send_spent()
-+{
-+ char *dur;
-+
-+ if (glob_seendat) {
-+ dur = gseen_duration(glob_seendat->spent);
-+ strncat(slang_text_buf, dur, sizeof(slang_text_buf));
-+ }
-+}
-+
-+static void slang_send_smsg()
-+{
-+ if (glob_seendat)
-+ strncat(slang_text_buf, glob_seendat->msg, sizeof(slang_text_buf));
-+}
-+
-+static void slang_send_numresults()
-+{
-+ char buf[7];
-+
-+ snprintf(buf, sizeof(buf), "%d", numresults);
-+ strncat(slang_text_buf, buf, sizeof(slang_text_buf));
-+}
-+
-+static void slang_send_punisher()
-+{
-+ char *reason;
-+ int len;
-+
-+ if (glob_seendat) {
-+ reason = strchr(glob_seendat->msg, ' ');
-+ if (!reason)
-+ strncat(slang_text_buf, glob_seendat->msg, sizeof(slang_text_buf));
-+ else {
-+ len = (int) reason - (int) glob_seendat->msg;
-+ strncat(slang_text_buf, glob_seendat->msg, (sizeof(slang_text_buf) < len) ? sizeof(slang_text_buf) : len);
-+ }
-+ }
-+}
-+
-+static void slang_send_kickreason()
-+{
-+ char *reason;
-+
-+ if (glob_seendat) {
-+ reason = strchr(glob_seendat->msg, ' ');
-+ if (reason)
-+ strncat(slang_text_buf, reason, sizeof(slang_text_buf));
-+ }
-+}
-+
-+static void slang_send_rnick()
-+{
-+ if (glob_seenrequest) {
-+ Assert(glob_seenrequest->by);
-+ Assert(glob_seenrequest->by->who);
-+ strncat(slang_text_buf, glob_seenrequest->by->who, sizeof(slang_text_buf));
-+ }
-+}
-+
-+static void slang_send_rchan()
-+{
-+ if (glob_seenrequest) {
-+ Assert(glob_seenrequest->by);
-+ Assert(glob_seenrequest->by->chan);
-+ strncat(slang_text_buf, glob_seenrequest->by->chan, sizeof(slang_text_buf));
-+ }
-+}
-+
-+static void slang_send_rhost()
-+{
-+ if (glob_seenrequest) {
-+ Assert(glob_seenrequest->by);
-+ Assert(glob_seenrequest->by->host);
-+ strncat(slang_text_buf, glob_seenrequest->by->host, sizeof(slang_text_buf));
-+ }
-+}
-+
-+static void slang_send_rtime()
-+{
-+ time_t tt;
-+ char t[20];
-+
-+ if (glob_seenrequest) {
-+ Assert(glob_seenrequest->by);
-+ tt = glob_seenrequest->by->when;
-+ strftime(t, sizeof(t), "%d.%m. %H:%M", localtime(&tt));
-+ strncat(slang_text_buf, t, sizeof(slang_text_buf));
-+ }
-+}
-+
-+static void slang_send_rwhen()
-+{
-+ if (glob_seenrequest) {
-+ Assert(glob_seenrequest->by);
-+ strncat(slang_text_buf, gseen_duration(now - glob_seenrequest->by->when), sizeof(slang_text_buf));
-+ }
-+}
-+
-+static void slang_send_requests()
-+{
-+ char buf[7];
-+
-+ snprintf(buf, sizeof(buf), "%d", glob_seenrequests);
-+ strncat(slang_text_buf, buf, sizeof(slang_text_buf));
-+}
-+
-+static void slang_send_totalnicks()
-+{
-+ char buf[7];
-+
-+ snprintf(buf, sizeof(buf), "%d", glob_totalnicks);
-+ strncat(slang_text_buf, buf, sizeof(slang_text_buf));
-+}
-+
-+static void slang_send_totalbytes()
-+{
-+ char buf[20];
-+
-+ snprintf(buf, sizeof(buf), "%d", glob_totalbytes);
-+ strncat(slang_text_buf, buf, sizeof(slang_text_buf));
-+}
-+
-+static void slang_send_nick()
-+{
-+ if (glob_nick)
-+ strncat(slang_text_buf, glob_nick, sizeof(slang_text_buf));
-+}
-+
-+struct slang_text_commands slang_text_gseen_command_table[] =
-+{
-+ {"botnick", slang_send_botnick},
-+ {"query", slang_send_query},
-+ {"laston", slang_send_laston},
-+ {"otherchan", slang_send_otherchan},
-+ {"othernick", slang_send_othernick},
-+ {"remotebot", slang_send_remotebot},
-+ {"snick", slang_send_snick},
-+ {"swhen", slang_send_swhen},
-+ {"stime", slang_send_stime},
-+ {"shost", slang_send_shost},
-+ {"schan", slang_send_schan},
-+ {"spent", slang_send_spent},
-+ {"smsg", slang_send_smsg},
-+ {"numresults", slang_send_numresults},
-+ {"snick2", slang_send_smsg},
-+ {"bnbot", slang_send_smsg},
-+ {"punisher", slang_send_punisher},
-+ {"kickreason", slang_send_kickreason},
-+ {"rnick", slang_send_rnick},
-+ {"rchan", slang_send_rchan},
-+ {"rhost", slang_send_rhost},
-+ {"rtime", slang_send_rtime},
-+ {"rwhen", slang_send_rwhen},
-+ {"requests", slang_send_requests},
-+ {"totalnicks", slang_send_totalnicks},
-+ {"totalbytes", slang_send_totalbytes},
-+ {"nick", slang_send_nick},
-+ {0, 0}
-+};
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/slang_ids.c src/eggdrop-1.8.4/src/mod/gseen.mod/slang_ids.c
---- ./src/mod/gseen.mod/slang_ids.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/slang_ids.c 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,104 @@
-+/*
-+ * Copyright (C) 2000,2001 Florian Sander
-+ *
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+struct slang_id {
-+ struct slang_id *next;
-+ int id;
-+ struct slang_multitext *mtext;
-+};
-+
-+static struct slang_id* slang_id_add(struct slang_id *, int, char *);
-+static int slang_id_expmem(struct slang_id *);
-+static void slang_id_free(struct slang_id *);
-+static char *slang_id_get(struct slang_id *, int);
-+
-+static struct slang_id* slang_id_add(struct slang_id *where, int id, char *text)
-+{
-+ struct slang_id *newitem;
-+
-+ newitem = NULL;
-+ if (where) {
-+ for (newitem = where; newitem; newitem = newitem->next)
-+ if (newitem->id == id)
-+ break;
-+ }
-+ if (!newitem) {
-+ newitem = nmalloc(sizeof(struct slang_id));
-+ newitem->next = NULL;
-+ newitem->id = id;
-+ newitem->mtext = NULL;
-+ if (where)
-+ newitem->next = where;
-+ else
-+ newitem->next = NULL;
-+ where = newitem;
-+ }
-+ newitem->mtext = slang_mtext_add(newitem->mtext, text);
-+ return where;
-+}
-+
-+static int slang_id_expmem(struct slang_id *what)
-+{
-+ int size = 0;
-+
-+ for (; what; what = what->next) {
-+ size += sizeof(struct slang_id);
-+ size += slang_multitext_expmem(what->mtext);
-+ }
-+ return size;
-+}
-+
-+static void slang_id_free(struct slang_id *what)
-+{
-+ struct slang_id *next;
-+
-+ while (what) {
-+ next = what->next;
-+ slang_multitext_free(what->mtext);
-+ nfree(what);
-+ what = next;
-+ }
-+}
-+
-+static char *slang_id_get(struct slang_id *where, int i)
-+{
-+ while (where) {
-+ if (where->id == i)
-+ return slang_multitext_getrandomtext(where->mtext);
-+ where = where->next;
-+ }
-+ return NULL;
-+}
-+
-+#ifndef SLANG_NOGETALL
-+static char *slang_id_get_first(struct slang_id *where, int id)
-+{
-+ while (where) {
-+ if (where->id == id) {
-+ return slang_multitext_get_first(where->mtext);
-+ }
-+ where = where->next;
-+ }
-+ return NULL;
-+}
-+
-+static char *slang_id_get_next()
-+{
-+ return slang_multitext_get_next();
-+}
-+#endif
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/slang_multitext.c src/eggdrop-1.8.4/src/mod/gseen.mod/slang_multitext.c
---- ./src/mod/gseen.mod/slang_multitext.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/slang_multitext.c 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,151 @@
-+/*
-+ * Copyright (C) 2000,2001 Florian Sander
-+ *
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+struct slang_mt_content {
-+ struct slang_mt_content *next;
-+ struct slang_text *text;
-+};
-+
-+struct slang_multitext {
-+ int nr;
-+ struct slang_mt_content *contents;
-+};
-+
-+static struct slang_multitext *slang_mtext_add(struct slang_multitext *, char *);
-+static int slang_multitext_expmem(struct slang_multitext *);
-+static void slang_multitext_free(struct slang_multitext *);
-+static char *slang_multitext_getrandomtext(struct slang_multitext *);
-+#ifndef SLANG_NOTYPES
-+static struct slang_text *slang_multitext_find(struct slang_multitext *, char *);
-+#endif
-+#ifndef SLANG_NOGETALL
-+static char *slang_multitext_get_first(struct slang_multitext *);
-+static char *slang_multitext_get_next();
-+#endif
-+
-+static struct slang_multitext *slang_mtext_add(struct slang_multitext *where, char *text)
-+{
-+ struct slang_mt_content *oc, *nc;
-+
-+ if (!where) {
-+ where = nmalloc(sizeof(struct slang_multitext));
-+ where->nr = 0;
-+ where->contents = NULL;
-+ }
-+ nc = nmalloc(sizeof(struct slang_mt_content));
-+ nc->next = NULL;
-+ nc->text = slang_text_parse(text);
-+ for (oc = where->contents; oc && oc->next; oc = oc->next);
-+ if (oc) {
-+ Assert(!oc->next);
-+ oc->next = nc;
-+ } else
-+ where->contents = nc;
-+ where->nr++;
-+ return where;
-+}
-+
-+static int slang_multitext_expmem(struct slang_multitext *what)
-+{
-+ struct slang_mt_content *content;
-+ int size = 0;
-+
-+ if (!what) {
-+ debug0("WARNING! slang_multitext_expmem() called with NULL pointer!");
-+ return 0;
-+ }
-+ size += sizeof(struct slang_multitext);
-+ for (content = what->contents; content; content = content->next) {
-+ size += sizeof(struct slang_mt_content);
-+ size += slang_text_expmem(content->text);
-+ }
-+ return size;
-+}
-+
-+static void slang_multitext_free(struct slang_multitext *what)
-+{
-+ struct slang_mt_content *content, *next;
-+
-+ if (!what) {
-+ debug0("WARNING! slang_multitext_free() called with NULL pointer!");
-+ return;
-+ }
-+ content = what->contents;
-+ while (content) {
-+ next = content->next;
-+ slang_text_free(content->text);
-+ nfree(content);
-+ content = next;
-+ }
-+ nfree(what);
-+}
-+
-+static char *slang_multitext_getrandomtext(struct slang_multitext *where)
-+{
-+ struct slang_mt_content *content;
-+ unsigned long x;
-+
-+ if (!where)
-+ return NULL;
-+ x = random() % where->nr;
-+ for (content = where->contents; content; content = content->next)
-+ if (!x)
-+ return slang_text_get(content->text);
-+ else
-+ x--;
-+ // we should never reach this part
-+ debug0("warning: getrandomtext didn't find anything!");
-+ return NULL;
-+}
-+
-+#ifndef SLANG_NOTYPES
-+static struct slang_text *slang_multitext_find(struct slang_multitext *where, char *what)
-+{
-+ struct slang_mt_content *content;
-+
-+ Assert(where);
-+ for (content = where->contents; content; content = content->next) {
-+ Assert(content->text);
-+ if (!slang_text_strcasecmp(content->text, what))
-+ return content->text;
-+ }
-+ return NULL;
-+}
-+#endif
-+
-+#ifndef SLANG_NOGETALL
-+static struct slang_mt_content *glob_mtext_content;
-+static char *slang_multitext_get_first(struct slang_multitext *where)
-+{
-+ Assert(where);
-+ glob_mtext_content = where->contents;
-+ if (glob_mtext_content)
-+ return slang_text_get(glob_mtext_content->text);
-+ else
-+ return NULL;
-+}
-+
-+static char *slang_multitext_get_next()
-+{
-+ glob_mtext_content = glob_mtext_content->next;
-+ if (glob_mtext_content)
-+ return slang_text_get(glob_mtext_content->text);
-+ else
-+ return NULL;
-+}
-+#endif
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/slang_text.c src/eggdrop-1.8.4/src/mod/gseen.mod/slang_text.c
---- ./src/mod/gseen.mod/slang_text.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/slang_text.c 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,200 @@
-+/*
-+ * Copyright (C) 2000,2001 Florian Sander
-+ *
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+struct slang_text {
-+ struct slang_text *next;
-+ char *string;
-+ void (*command) ();
-+};
-+
-+struct slang_text_commands {
-+ char *command;
-+ void (*targetfunc) ();
-+};
-+
-+struct slang_command_list {
-+ struct slang_command_list *next;
-+ struct slang_text_commands *commands;
-+};
-+
-+static struct slang_text *slang_text_parse(char *);
-+static struct slang_text *slang_text_create(struct slang_text *);
-+static void slang_text_add_string(struct slang_text *, char *);
-+static void slang_text_add_command(struct slang_text *, char *);
-+static void slang_text_free(struct slang_text *);
-+static int slang_text_expmem(struct slang_text *);
-+static char *slang_text_get(struct slang_text *);
-+#ifndef SLANG_NOTYPES
-+static int slang_text_strcasecmp(struct slang_text *, char *);
-+#endif
-+
-+static struct slang_text *slang_text_parse(char *text)
-+{
-+ char *cmdstart, *cmdend;
-+ struct slang_text *firstitem, *item;
-+
-+ firstitem = slang_text_create(NULL);
-+ item = firstitem;
-+ while ((cmdstart = strstr(text, "<?"))) {
-+ cmdstart[0] = 0;
-+ slang_text_add_string(item, text);
-+ item = slang_text_create(item);
-+ text += 2;
-+ cmdstart += 2;
-+ cmdend = strstr(cmdstart, "/?>");
-+ if (!cmdend) {
-+ putlog(LOG_MISC, "*", "ERROR parsing slang text: unterminated command \"%s\"!", cmdstart);
-+ break;
-+ }
-+ cmdend[0] = 0;
-+ slang_text_add_command(item, cmdstart);
-+ item = slang_text_create(item);
-+ text = cmdend + 3;
-+ }
-+ slang_text_add_string(item, text);
-+ return firstitem;
-+}
-+
-+static struct slang_text *slang_text_create(struct slang_text *where)
-+{
-+ struct slang_text *newpart;
-+
-+ newpart = nmalloc(sizeof(struct slang_text));
-+ newpart->next = NULL;
-+ newpart->string = NULL;
-+ newpart->command = NULL;
-+ while (where && where->next)
-+ where = where->next;
-+ if (where)
-+ where->next = newpart;
-+ return newpart;
-+}
-+
-+static void slang_text_add_string(struct slang_text *item, char *s)
-+{
-+ Assert(item);
-+ Assert(!item->string);
-+ item->string = nmalloc(strlen(s) + 1);
-+ strcpy(item->string, s);
-+}
-+
-+static void slang_text_free(struct slang_text *item)
-+{
-+ if (!item)
-+ return;
-+ slang_text_free(item->next);
-+ if (item->string)
-+ nfree(item->string);
-+ nfree(item);
-+}
-+
-+static int slang_text_expmem(struct slang_text *item)
-+{
-+ int size = 0;
-+
-+ while (item) {
-+ size += sizeof(struct slang_text);
-+ if (item->string)
-+ size += strlen(item->string) + 1;
-+ item = item->next;
-+ }
-+ return size;
-+}
-+
-+#ifndef SLANG_NOTYPES
-+static int slang_text_strcasecmp(struct slang_text *item, char *text)
-+{
-+ Assert(item);
-+ debug2("s_t_sc: '%s', '%s'", text, item->string);
-+ if (item->command || item->next)
-+ return 1;
-+ return strcasecmp(item->string, text);
-+}
-+#endif
-+
-+static char slang_text_buf[500];
-+static char *slang_text_get(struct slang_text *item)
-+{
-+ slang_text_buf[0] = 0;
-+ while (item) {
-+ if (item->string)
-+ strncat(slang_text_buf, item->string, sizeof(slang_text_buf));
-+ else if (item->command)
-+ item->command();
-+ item = item->next;
-+ }
-+ return slang_text_buf;
-+}
-+
-+/*****************************************************/
-+
-+
-+static struct slang_command_list *glob_slang_cmd_list;
-+
-+static struct slang_command_list *slang_commands_list_add(struct slang_command_list *where, struct slang_text_commands *what)
-+{
-+ struct slang_command_list *newcommandlist;
-+
-+ newcommandlist = nmalloc(sizeof(struct slang_command_list));
-+ newcommandlist->commands = what;
-+ newcommandlist->next = where;
-+ return newcommandlist;
-+}
-+
-+static int slang_commands_list_expmem(struct slang_command_list *what)
-+{
-+ int size = 0;
-+
-+ while (what) {
-+ size += sizeof(struct slang_command_list);
-+ what = what->next;
-+ }
-+ return size;
-+}
-+
-+static void slang_commands_list_free(struct slang_command_list *what)
-+{
-+ struct slang_command_list *next;
-+
-+ while (what) {
-+ next = what->next;
-+ nfree(what);
-+ what = next;
-+ }
-+}
-+
-+static void slang_text_add_command(struct slang_text *item, char *s)
-+{
-+ struct slang_command_list *cmdlist;
-+ char *cmd;
-+ int i;
-+
-+ cmd = newsplit(&s);
-+ i = 0;
-+ for (cmdlist = glob_slang_cmd_list; cmdlist; cmdlist = cmdlist->next) {
-+ for (i = 0; 1; i++) {
-+ if (!cmdlist->commands[i].command)
-+ break;
-+ if (!strcasecmp(cmdlist->commands[i].command, cmd)) {
-+ item->command = cmdlist->commands[i].targetfunc;
-+ return;
-+ }
-+ }
-+ }
-+ putlog(LOG_MISC, "*", "ERROR! Unknown slang-command: '%s'", cmd);
-+}
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/tclcmds.c src/eggdrop-1.8.4/src/mod/gseen.mod/tclcmds.c
---- ./src/mod/gseen.mod/tclcmds.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/tclcmds.c 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,53 @@
-+/*
-+ * Copyright (C) 2000,2001 Florian Sander
-+ *
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+static int tcl_setchanseenlang STDVAR
-+{
-+ Context;
-+ BADARGS(3, 3, " channel language");
-+ chanlangs = slang_chanlang_add(chanlangs, argv[1], argv[2]);
-+ return TCL_OK;
-+}
-+
-+static int tcl_loadseenslang STDVAR
-+{
-+// int ret = 0;
-+ char *shortname, *longname, *filename;
-+ struct slang_header *slang;
-+
-+ Context;
-+ BADARGS(4, 4, " language description langfile");
-+ shortname = argv[1];
-+ longname = argv[2];
-+ filename = argv[3];
-+ coreslangs = slang_create(coreslangs, shortname, longname);
-+ slang = slang_find(coreslangs, shortname);
-+ Assert(slang);
-+ if (!slang_load(slang, filename)) {
-+ Tcl_AppendResult(irp, "Couldn't open seenslang file!!!", NULL);
-+ return TCL_ERROR;
-+ }
-+ return TCL_OK;
-+}
-+
-+static tcl_cmds gseentcls[] =
-+{
-+ {"loadseenslang", tcl_loadseenslang},
-+ {"setchanseenlang", tcl_setchanseenlang},
-+ {0, 0}
-+};
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/gseen.mod/UPDATES src/eggdrop-1.8.4/src/mod/gseen.mod/UPDATES
---- ./src/mod/gseen.mod/UPDATES 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/gseen.mod/UPDATES 2017-01-02 22:30:47.000000000 +0100
-@@ -0,0 +1,60 @@
-+Changes in gseen.mod: (since v1.0.0)
-+--------------------
-+
-+1.1.2 (2017-01-02)
-+- compatibility to eggdrop 1.8
-+
-+
-+1.1.1
-+- fixed "no newline" compilation warnings that appeared on some systems.
-+- fixed uninitialized "li" variable in do_seen()
-+- fixed lacking compatibility to eggdrop1.4 (confirmation anyone?)
-+- new option: hide-secret-chans
-+- new option: seen-nick-len
-+
-+1.1.0 (15.6.2001)
-+- added multilang support
-+- removed static buffers
-+- organized data in a binary search tree (much faster)
-+- optimized a few other things
-+- added settings:
-+ - fuzzy-search
-+ - max-matches
-+ - wildcard-search
-+
-+1.0.8
-+- quiet-seens wasn't working for !seennick
-+- added quiet-ai-seens
-+- renamed nopub to nopubseens and nolog to noseendata and
-+ quietseen to quietseens
-+
-+1.0.7
-+- added compatibility to !channels
-+- fixed a bug relating strict-host 0 had some strange effects on
-+ !seen requests for users with ~ in their ident
-+
-+1.0.6
-+- fixed a very evil bug that allowed anyone to crash the bot, sorry
-+
-+1.0.5
-+- quietseens wasn't working correctly
-+- added support for egg1.5's udef chansets
-+
-+1.0.4
-+- added GPL stuff
-+- changed error msg that appears if no gseen file exists
-+
-+1.0.3
-+- readme updates
-+- fixed a grammatical error in do_seen
-+
-+1.0.2
-+- bot wanted to free a NULL pointer sometimes
-+
-+1.0.1
-+- !seen without parameter returned stupid results :)
-+- fixed little typo in .purgeseens
-+- "I found 1 matches..." -> "I found 1 match..."
-+
-+1.0.0
-+- release :)
diff --git a/main/eggdrop/logs2html.mod.patch b/main/eggdrop/logs2html.mod.patch
deleted file mode 100644
index 36ed2361dcf..00000000000
--- a/main/eggdrop/logs2html.mod.patch
+++ /dev/null
@@ -1,3417 +0,0 @@
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/fileoperations.c src/eggdrop-1.8.4/src/mod/logs2html.mod/fileoperations.c
---- ./src/mod/logs2html.mod/fileoperations.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/logs2html.mod/fileoperations.c 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1,134 @@
-+/*
-+ * fileoperations.c -- part of logs2html.mod
-+ *
-+ * Written by Fedotov Alexander aka Shmupsik aka shurikvz <shurikvz@mail.ru>
-+ *
-+ * 2004-2009 year
-+ */
-+/*
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+#include <stdarg.h>
-+
-+/****************************************************************************/
-+/*
-+ * function FILE *openfile(char *newfilename, const char *mode, bool silent)
-+ *
-+ * Input:
-+ * newfilename - имя файла, который необходимо создать
-+ * mode - режим открытия файла
-+ *
-+ * Output:
-+ * указатель на файл
-+ *
-+ * Discription:
-+ * функция осуществляет создание и открытие файла в указанном режиме
-+ * и возвращает указатель на созданный файл
-+ */
-+static FILE *openfile(char *filename, const char *mode, bool silent) {
-+ FILE *file;
-+
-+ if (filename == NULL) {
-+ putlog(LOG_MISC, "*", "logs2html: ERROR! Can't allocate enough space for filename.");
-+ return NULL;
-+ }
-+
-+ file = fopen(filename, mode);
-+ if ((file == NULL) && (!silent)) {
-+ putlog(LOG_MISC, "*", "logs2html: Warning! Can't open file \"%s\".", filename);
-+ }
-+
-+ return file;
-+} /* openfile() */
-+/****************************************************************************/
-+
-+
-+/****************************************************************************/
-+/*
-+ * function void writefromexfile(FILE *dst_file, char *exfilename)
-+ *
-+ * Input:
-+ *
-+ *
-+ *
-+ *
-+ * Output:
-+ *
-+ *
-+ * Discription:
-+ *
-+ *
-+ */
-+static void writefromexfile(FILE *dst_file, char *exfilename) {
-+ FILE *addfile;
-+ char buffer[512];
-+ size_t n;
-+
-+ if (strlen(exfilename) > 0) {
-+ if ((addfile = openfile(exfilename, "r", false)) != NULL) {
-+ while(!feof(addfile)) {
-+ n = fread(buffer, sizeof(char), sizeof buffer, addfile);
-+ fwrite(buffer, sizeof(char), n, dst_file);
-+ }
-+ fclose(addfile);
-+ }
-+ }
-+
-+ return;
-+} /* writefromexfile() */
-+/****************************************************************************/
-+
-+
-+/****************************************************************************/
-+/*
-+ * function void str_write(FILE *file, char *fmt, ... )
-+ *
-+ * Input:
-+ * file - файл в который пишем данные
-+ * fmt - строка для записи со спецификаторами формата
-+ * ... - данные для записи в строку
-+ *
-+ * Output:
-+ * ничего
-+ *
-+ * Discription:
-+ * функция осуществляет запись переданной строки в указанный файл,
-+ * производя соответствующее ее форматирование
-+ */
-+static void str_write(FILE *file, char *fstr, ... ) {
-+ va_list ap;
-+ int nchars;
-+ int size = 256;
-+ static char *buffer = NULL;
-+
-+ buffer = (char *)nmalloc(size);
-+
-+ while (true) {
-+ va_start(ap, fstr);
-+ nchars = egg_vsnprintf(buffer, size, fstr, ap);
-+ va_end(ap);
-+ if (nchars < size) break;
-+ size *= 2;
-+ buffer = (char *)nrealloc(buffer, size);
-+ }
-+
-+ fwrite(buffer, sizeof(char), strlen(buffer), file);
-+ nfree(buffer); buffer = NULL;
-+
-+ return;
-+} /* str_write() */
-+/****************************************************************************/
-+
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/help/logs2html.help src/eggdrop-1.8.4/src/mod/logs2html.mod/help/logs2html.help
---- ./src/mod/logs2html.mod/help/logs2html.help 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/logs2html.mod/help/logs2html.help 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1,37 @@
-+%{help=convertalllogs}%{+n}
-+### %bconvertalllogs%b
-+ Reconverts all your logs.
-+
-+See also: convertlogs, makemainpage
-+%{help=convertlogs}%{+n}
-+### %bconvertlogs [year [month [day]]]%b
-+ %byear%b the year to reconvert logs
-+ %bmonth%b the month to reconvert logs
-+ %bmonth%b the day to reconvert logs
-+ If year equals %ball%b the command reconverts all your logs (same as %b.convertalllogs%b).
-+ If you do not specify a parameter, the command will convert the logs for the current day.
-+
-+See also: convertalllogs, makemainpage
-+%{help=makemainpage}%{+n}
-+### %bmakemainpage%b
-+ Redraws your mainpages. (same as %b.makeindexpage%b)
-+
-+See also: makeindexpage
-+%{help=makeindexpage}%{+n}
-+### %bmakeindexpage%b
-+ Redraws your mainpages. (same as %b.makemainpage%b)
-+
-+See also: makemainpage
-+%{help=logs2html module}%{+n}
-+### %blogs2html module%b
-+ This module convert all log files of your eggdrop in html format.
-+
-+ The following commands are provided by the logs2html module:
-+%{+n}
-+ %bconvertalllogs makemainpage%b
-+ %bconvertlogs makeindexpage%b
-+%{help=all}%{+n}
-+### %blogs2html module%b commands
-+%{+n}
-+ %bconvertalllogs makemainpage%b
-+ %bconvertlogs makeindexpage%b
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/htmloperations.c src/eggdrop-1.8.4/src/mod/logs2html.mod/htmloperations.c
---- ./src/mod/logs2html.mod/htmloperations.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/logs2html.mod/htmloperations.c 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1,349 @@
-+/*
-+ * htmloperations.c -- part of logs2html.mod
-+ *
-+ * Written by Fedotov Alexander aka Shmupsik aka shurikvz <shurikvz@mail.ru>
-+ *
-+ * 2004-2009 year
-+ */
-+/*
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+/****************************************************************************/
-+/*
-+* function void writecss
-+*
-+* Input:
-+*
-+*
-+*
-+*
-+* Output:
-+*
-+*
-+* Discription:
-+*
-+*
-+*/
-+static void WriteCSSFile(FILE *dst_file)
-+{
-+ str_write(dst_file, "@charset \"utf-8\";\n");
-+ str_write(dst_file, "/* CSS Document */\n\n");
-+
-+ str_write(dst_file, "<!--\n");
-+ str_write(dst_file, "body {\n");
-+ str_write(dst_file, "font-family:\"Times New Roman\", Times, serif;\n");
-+ str_write(dst_file, "background: #666666;\n");
-+ str_write(dst_file, "margin: 0;\n");
-+ str_write(dst_file, "padding: 0;\n");
-+ str_write(dst_file, "text-align: center;\n");
-+ str_write(dst_file, "color: #000000;\n");
-+ str_write(dst_file, "}\n\n");
-+
-+ str_write(dst_file, "/* mainpage styles */\n");
-+ str_write(dst_file, ".l2hMainPage #container {\n");
-+ str_write(dst_file, "width: 99%%;\n");
-+ str_write(dst_file, "background:#FFFF99;\n");
-+ str_write(dst_file, "margin: 0 auto;\n");
-+ str_write(dst_file, "border: 1px solid #000000;\n");
-+ str_write(dst_file, "text-align: left;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hMainPage #container #monthtable tr {\n");
-+ str_write(dst_file, "background: Orange;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hMainPage #container .monthblock .monthname {\n");
-+ str_write(dst_file, "font-family:\"Comic Sans MS\", \"Brush Script Std\", Verdana, Arial, Helvetica, sans-serif;\n");
-+ str_write(dst_file, "font-size: 1.3em;\n");
-+ str_write(dst_file, "height: 1.8em;\n");
-+ str_write(dst_file, "background:#FF6600;\n");
-+ str_write(dst_file, "text-align: center;\n");
-+ str_write(dst_file, "color: white;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hMainPage #container #monthtable .monthblock .dayname {\n");
-+ str_write(dst_file, "font-weight:bold;\n");
-+ str_write(dst_file, "height: 1.8em;\n");
-+ str_write(dst_file, "background: Silver;\n");
-+ str_write(dst_file, "text-align: left;\n");
-+ str_write(dst_file, "padding: 0 5px;\n");
-+ str_write(dst_file, "color:#333333;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hMainPage #container #monthtable .monthblock .weekend {\n");
-+ str_write(dst_file, "font-weight:bold;\n");
-+ str_write(dst_file, "height: 1.8em;\n");
-+ str_write(dst_file, "background: #FF6633;\n");
-+ str_write(dst_file, "text-align: left;\n");
-+ str_write(dst_file, "padding: 0 5px;\n");
-+ str_write(dst_file, "color:#333333;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hMainPage #container #monthtable .monthblock .emptycell {\n");
-+ str_write(dst_file, "height: 1.8em;\n");
-+ str_write(dst_file, "background:#DDDDDD;\n");
-+ str_write(dst_file, "text-align: center;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hMainPage #container #monthtable .monthblock .day {\n");
-+ str_write(dst_file, "font-family:\"Courier New\", Courier, monospace;\n");
-+ str_write(dst_file, "font-weight:bold;\n");
-+ str_write(dst_file, "height: 1.8em;\n");
-+ str_write(dst_file, "background:#FFCC00;\n");
-+ str_write(dst_file, "text-align: center;\n");
-+ str_write(dst_file, "color:#FF0000;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hMainPage #header {\n");
-+ str_write(dst_file, "background: #DDDDDD;\n");
-+ str_write(dst_file, "padding: 0 10px;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hMainPage #header h2 {\n");
-+ str_write(dst_file, "font-style:italic;\n");
-+ str_write(dst_file, "margin: 0;\n");
-+ str_write(dst_file, "padding: 10px 0;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hMainPage #mp_top {\n");
-+ str_write(dst_file, "background: #DDDDDD;\n");
-+ str_write(dst_file, "padding: 0 10px;\n");
-+ str_write(dst_file, "text-align: center;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hMainPage #mp_bottom {\n");
-+ str_write(dst_file, "background: #DDDDDD;\n");
-+ str_write(dst_file, "padding: 0 10px;\n");
-+ str_write(dst_file, "text-align: center;\n");
-+ str_write(dst_file, "}\n\n");
-+
-+ str_write(dst_file, "/* leftsidebar styles */\n");
-+ str_write(dst_file, ".l2hMainPage #leftsidebar {\n");
-+ str_write(dst_file, "float: left;\n");
-+ str_write(dst_file, "width: 7em;\n");
-+ str_write(dst_file, "background: #EBEBEB;\n");
-+ str_write(dst_file, "padding: 10px 0;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hMainPage #leftsidebar div.indexlink {\n");
-+ str_write(dst_file, "background-color: #EBEBEB;\n");
-+ str_write(dst_file, "margin-left: 5px;\n");
-+ str_write(dst_file, "margin-right: 5px;\n");
-+ str_write(dst_file, "text-align:center;\n");
-+ str_write(dst_file, "border-bottom-width: thin;\n");
-+ str_write(dst_file, "border-bottom-style: dotted;\n");
-+ str_write(dst_file, "border-bottom-color: #CCCCCC;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hMainPage #leftsidebar div.indexlink a {\n");
-+ str_write(dst_file, "display:block;\n");
-+ str_write(dst_file, "letter-spacing:.1em;\n");
-+ str_write(dst_file, "line-height:1.5em;\n");
-+ str_write(dst_file, "text-decoration: none;\n");
-+ str_write(dst_file, "vertical-align:baseline;\n");
-+ str_write(dst_file, "color:#333333;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hMainPage #leftsidebar div.indexlink a:hover {\n");
-+ str_write(dst_file, "background:#FF6600;\n");
-+ str_write(dst_file, "letter-spacing:.3em;\n");
-+ str_write(dst_file, "line-height:1.5em;\n");
-+ str_write(dst_file, "color:#FFFFFF;\n");
-+ str_write(dst_file, "font-weight:bold;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hMainPage #mainblock {\n");
-+ str_write(dst_file, "margin: 0 20px 0 8em;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hMainPage #footer {\n");
-+ str_write(dst_file, "padding: 0 10px;\n");
-+ str_write(dst_file, "background:#DDDDDD;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hMainPage #footer p {\n");
-+ str_write(dst_file, "margin: 0;\n");
-+ str_write(dst_file, "padding: 10px 0;\n");
-+ str_write(dst_file, "font-size: 0.9em;\n");
-+ str_write(dst_file, "font-weight:bold;\n");
-+ str_write(dst_file, "color: #333333;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #lp_top {\n");
-+ str_write(dst_file, "background: #DDDDDD;\n");
-+ str_write(dst_file, "padding: 0 10px;\n");
-+ str_write(dst_file, "text-align: center;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #lp_bottom {\n");
-+ str_write(dst_file, "background: #DDDDDD;\n");
-+ str_write(dst_file, "padding: 0 10px;\n");
-+ str_write(dst_file, "text-align: center;\n");
-+ str_write(dst_file, "}\n\n");
-+
-+ str_write(dst_file, "/* Log Page styles */\n");
-+ str_write(dst_file, ".l2hLogPage #header {\n");
-+ str_write(dst_file, "background: #DDDDDD;\n");
-+ str_write(dst_file, "padding: 0 10px;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #container {\n");
-+ str_write(dst_file, "width: 99%%;\n");
-+ str_write(dst_file, "background: #FFFF99;\n");
-+ str_write(dst_file, "margin: 0 auto;\n");
-+ str_write(dst_file, "border: 1px solid #000000;\n");
-+ str_write(dst_file, "text-align: left;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #container #navtop {\n");
-+ str_write(dst_file, "text-align: center;\n");
-+ str_write(dst_file, "border-bottom: 1px solid Orange;\n");
-+ str_write(dst_file, "margin-bottom: 10px;\n");
-+ str_write(dst_file, "padding: 10px 0;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #container #navtop a {\n");
-+ str_write(dst_file, "color:#FF0000;\n");
-+ str_write(dst_file, "font-weight:bold;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #container #totoplink {\n");
-+ str_write(dst_file, "color:#FF0000;\n");
-+ str_write(dst_file, "text-align: center;\n");
-+ str_write(dst_file, "border-top: 1px solid Orange;\n");
-+ str_write(dst_file, "margin-top: 10px;\n");
-+ str_write(dst_file, "padding: 10px 0;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #container #totoplink a {\n");
-+ str_write(dst_file, "color:#FF0000;\n");
-+ str_write(dst_file, "font-weight:bold;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #container #navbottom {\n");
-+ str_write(dst_file, "color:#FF0000;\n");
-+ str_write(dst_file, "text-align: center;\n");
-+ str_write(dst_file, "padding: 10px;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #container #navbottom span {\n");
-+ str_write(dst_file, "padding-left:5px;\n");
-+ str_write(dst_file, "padding-right:5px;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #container #navbottom #navbottom_currentpg {\n");
-+ str_write(dst_file, "font-size:1.1em;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #footer {\n");
-+ str_write(dst_file, "padding: 0 10px;\n");
-+ str_write(dst_file, "background:#DDDDDD;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #footer p {\n");
-+ str_write(dst_file, "margin: 0;\n");
-+ str_write(dst_file, "padding: 10px 0;\n");
-+ str_write(dst_file, "font-size: 0.9em;\n");
-+ str_write(dst_file, "font-weight:bold;\n");
-+ str_write(dst_file, "color: #333333;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #mainblock div {\n");
-+ str_write(dst_file, "white-space: pre-wrap; /* css-3 */\n");
-+ str_write(dst_file, "white-space: pre-line; /* css-3, css-2.1 */\n");
-+ str_write(dst_file, "white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */\n");
-+ str_write(dst_file, "white-space: -hp-pre-wrap; /* HP printers */\n");
-+ str_write(dst_file, "white-space: -pre-wrap; /* Opera 4-6 */\n");
-+ str_write(dst_file, "white-space: -o-pre-wrap; /* Opera 7 */\n");
-+ str_write(dst_file, "word-wrap: break-word; /* Internet Explorer 5.5+ */\n");
-+ str_write(dst_file, "overflow:hidden;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #mainblock span.time {\n");
-+ str_write(dst_file, "color: #D0D0D0;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #mainblock span.nick {\n");
-+ str_write(dst_file, "color: #0040C0;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #mainblock span.text {\n");
-+ str_write(dst_file, "color: #111111;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #mainblock span.else_j {\n");
-+ str_write(dst_file, "color: #99CC00;\n");
-+ str_write(dst_file, "font-size: 0.8em;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #mainblock span.else_li {\n");
-+ str_write(dst_file, "color: #99CC00;\n");
-+ str_write(dst_file, "font-size: 0.8em;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #mainblock span.else_l {\n");
-+ str_write(dst_file, "color: #99CC00;\n");
-+ str_write(dst_file, "font-size: 0.8em;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #mainblock span.else_n {\n");
-+ str_write(dst_file, "color: #FF6666;\n");
-+ str_write(dst_file, "font-size: 0.8em;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #mainblock span.else_m {\n");
-+ str_write(dst_file, "color: #00CCFF;\n");
-+ str_write(dst_file, "font-size: 0.8em;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #mainblock span.else_k {\n");
-+ str_write(dst_file, "color: #FF0066;\n");
-+ str_write(dst_file, "font-size: 0.8em;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #mainblock span.else {\n");
-+ str_write(dst_file, "color: #40C000;\n");
-+ str_write(dst_file, "font-size: 0.8em;\n");
-+ str_write(dst_file, "}\n");
-+ str_write(dst_file, ".l2hLogPage #mainblock span.action {\n");
-+ str_write(dst_file, "color: #FF99FF;\n");
-+ str_write(dst_file, "}\n\n");
-+
-+ str_write(dst_file, "/* mirc colors */\n");
-+ str_write(dst_file, ".l2hLogPage span.c0000, .l2hLogPage span.c0100, .l2hLogPage span.c0200, .l2hLogPage span.c0300, .l2hLogPage span.c0400, .l2hLogPage span.c0500, .l2hLogPage span.c0600, .l2hLogPage span.c0700, .l2hLogPage span.c0800, .l2hLogPage span.c0900, .l2hLogPage span.c1000, .l2hLogPage span.c1100, .l2hLogPage span.c1200, .l2hLogPage span.c1300, .l2hLogPage span.c1400, .l2hLogPage span.c1500 {background-color: white;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0001, .l2hLogPage span.c0101, .l2hLogPage span.c0201, .l2hLogPage span.c0301, .l2hLogPage span.c0401, .l2hLogPage span.c0501, .l2hLogPage span.c0601, .l2hLogPage span.c0701, .l2hLogPage span.c0801, .l2hLogPage span.c0901, .l2hLogPage span.c1001, .l2hLogPage span.c1101, .l2hLogPage span.c1201, .l2hLogPage span.c1301, .l2hLogPage span.c1401, .l2hLogPage span.c1501 {background-color: black;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0002, .l2hLogPage span.c0102, .l2hLogPage span.c0202, .l2hLogPage span.c0302, .l2hLogPage span.c0402, .l2hLogPage span.c0502, .l2hLogPage span.c0602, .l2hLogPage span.c0702, .l2hLogPage span.c0802, .l2hLogPage span.c0902, .l2hLogPage span.c1002, .l2hLogPage span.c1102, .l2hLogPage span.c1202, .l2hLogPage span.c1302, .l2hLogPage span.c1402, .l2hLogPage span.c1502 {background-color: navy;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0003, .l2hLogPage span.c0103, .l2hLogPage span.c0203, .l2hLogPage span.c0303, .l2hLogPage span.c0403, .l2hLogPage span.c0503, .l2hLogPage span.c0603, .l2hLogPage span.c0703, .l2hLogPage span.c0803, .l2hLogPage span.c0903, .l2hLogPage span.c1003, .l2hLogPage span.c1103, .l2hLogPage span.c1203, .l2hLogPage span.c1303, .l2hLogPage span.c1403, .l2hLogPage span.c1503 {background-color: green;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0004, .l2hLogPage span.c0104, .l2hLogPage span.c0204, .l2hLogPage span.c0304, .l2hLogPage span.c0404, .l2hLogPage span.c0504, .l2hLogPage span.c0604, .l2hLogPage span.c0704, .l2hLogPage span.c0804, .l2hLogPage span.c0904, .l2hLogPage span.c1004, .l2hLogPage span.c1104, .l2hLogPage span.c1204, .l2hLogPage span.c1304, .l2hLogPage span.c1404, .l2hLogPage span.c1504 {background-color: red;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0005, .l2hLogPage span.c0105, .l2hLogPage span.c0205, .l2hLogPage span.c0305, .l2hLogPage span.c0405, .l2hLogPage span.c0505, .l2hLogPage span.c0605, .l2hLogPage span.c0705, .l2hLogPage span.c0805, .l2hLogPage span.c0905, .l2hLogPage span.c1005, .l2hLogPage span.c1105, .l2hLogPage span.c1205, .l2hLogPage span.c1305, .l2hLogPage span.c1405, .l2hLogPage span.c1505 {background-color: maroon;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0006, .l2hLogPage span.c0106, .l2hLogPage span.c0206, .l2hLogPage span.c0306, .l2hLogPage span.c0406, .l2hLogPage span.c0506, .l2hLogPage span.c0606, .l2hLogPage span.c0706, .l2hLogPage span.c0806, .l2hLogPage span.c0906, .l2hLogPage span.c1006, .l2hLogPage span.c1106, .l2hLogPage span.c1206, .l2hLogPage span.c1306, .l2hLogPage span.c1406, .l2hLogPage span.c1506 {background-color: purple;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0007, .l2hLogPage span.c0107, .l2hLogPage span.c0207, .l2hLogPage span.c0307, .l2hLogPage span.c0407, .l2hLogPage span.c0507, .l2hLogPage span.c0607, .l2hLogPage span.c0707, .l2hLogPage span.c0807, .l2hLogPage span.c0907, .l2hLogPage span.c1007, .l2hLogPage span.c1107, .l2hLogPage span.c1207, .l2hLogPage span.c1307, .l2hLogPage span.c1407, .l2hLogPage span.c1507 {background-color: orange;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0008, .l2hLogPage span.c0108, .l2hLogPage span.c0208, .l2hLogPage span.c0308, .l2hLogPage span.c0408, .l2hLogPage span.c0508, .l2hLogPage span.c0608, .l2hLogPage span.c0708, .l2hLogPage span.c0808, .l2hLogPage span.c0908, .l2hLogPage span.c1008, .l2hLogPage span.c1108, .l2hLogPage span.c1208, .l2hLogPage span.c1308, .l2hLogPage span.c1408, .l2hLogPage span.c1508 {background-color: yellow;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0009, .l2hLogPage span.c0109, .l2hLogPage span.c0209, .l2hLogPage span.c0309, .l2hLogPage span.c0409, .l2hLogPage span.c0509, .l2hLogPage span.c0609, .l2hLogPage span.c0709, .l2hLogPage span.c0809, .l2hLogPage span.c0909, .l2hLogPage span.c1009, .l2hLogPage span.c1109, .l2hLogPage span.c1209, .l2hLogPage span.c1309, .l2hLogPage span.c1409, .l2hLogPage span.c1509 {background-color: lime;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0010, .l2hLogPage span.c0110, .l2hLogPage span.c0210, .l2hLogPage span.c0310, .l2hLogPage span.c0410, .l2hLogPage span.c0510, .l2hLogPage span.c0610, .l2hLogPage span.c0710, .l2hLogPage span.c0810, .l2hLogPage span.c0910, .l2hLogPage span.c1010, .l2hLogPage span.c1110, .l2hLogPage span.c1210, .l2hLogPage span.c1310, .l2hLogPage span.c1410, .l2hLogPage span.c1510 {background-color: teal;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0011, .l2hLogPage span.c0111, .l2hLogPage span.c0211, .l2hLogPage span.c0311, .l2hLogPage span.c0411, .l2hLogPage span.c0511, .l2hLogPage span.c0611, .l2hLogPage span.c0711, .l2hLogPage span.c0811, .l2hLogPage span.c0911, .l2hLogPage span.c1011, .l2hLogPage span.c1111, .l2hLogPage span.c1211, .l2hLogPage span.c1311, .l2hLogPage span.c1411, .l2hLogPage span.c1511 {background-color: aqua;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0012, .l2hLogPage span.c0112, .l2hLogPage span.c0212, .l2hLogPage span.c0312, .l2hLogPage span.c0412, .l2hLogPage span.c0512, .l2hLogPage span.c0612, .l2hLogPage span.c0712, .l2hLogPage span.c0812, .l2hLogPage span.c0912, .l2hLogPage span.c1012, .l2hLogPage span.c1112, .l2hLogPage span.c1212, .l2hLogPage span.c1312, .l2hLogPage span.c1412, .l2hLogPage span.c1512 {background-color: blue;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0013, .l2hLogPage span.c0113, .l2hLogPage span.c0213, .l2hLogPage span.c0313, .l2hLogPage span.c0413, .l2hLogPage span.c0513, .l2hLogPage span.c0613, .l2hLogPage span.c0713, .l2hLogPage span.c0813, .l2hLogPage span.c0913, .l2hLogPage span.c1013, .l2hLogPage span.c1113, .l2hLogPage span.c1213, .l2hLogPage span.c1313, .l2hLogPage span.c1413, .l2hLogPage span.c1513 {background-color: fuchsia;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0014, .l2hLogPage span.c0114, .l2hLogPage span.c0214, .l2hLogPage span.c0314, .l2hLogPage span.c0414, .l2hLogPage span.c0514, .l2hLogPage span.c0614, .l2hLogPage span.c0714, .l2hLogPage span.c0814, .l2hLogPage span.c0914, .l2hLogPage span.c1014, .l2hLogPage span.c1114, .l2hLogPage span.c1214, .l2hLogPage span.c1314, .l2hLogPage span.c1414, .l2hLogPage span.c1514 {background-color: silver;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0015, .l2hLogPage span.c0115, .l2hLogPage span.c0215, .l2hLogPage span.c0315, .l2hLogPage span.c0415, .l2hLogPage span.c0515, .l2hLogPage span.c0615, .l2hLogPage span.c0715, .l2hLogPage span.c0815, .l2hLogPage span.c0915, .l2hLogPage span.c1015, .l2hLogPage span.c1114, .l2hLogPage span.c1215, .l2hLogPage span.c1315, .l2hLogPage span.c1415, .l2hLogPage span.c1515 {background-color: gray;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0000, .l2hLogPage span.c0001, .l2hLogPage span.c0002, .l2hLogPage span.c0003, .l2hLogPage span.c0004, .l2hLogPage span.c0005, .l2hLogPage span.c0006, .l2hLogPage span.c0007, .l2hLogPage span.c0008, .l2hLogPage span.c0009, .l2hLogPage span.c0010, .l2hLogPage span.c0011, .l2hLogPage span.c0012, .l2hLogPage span.c0013, .l2hLogPage span.c0014, .l2hLogPage span.c0015 {color: white;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0100, .l2hLogPage span.c0101, .l2hLogPage span.c0102, .l2hLogPage span.c0103, .l2hLogPage span.c0104, .l2hLogPage span.c0105, .l2hLogPage span.c0106, .l2hLogPage span.c0107, .l2hLogPage span.c0108, .l2hLogPage span.c0109, .l2hLogPage span.c0110, .l2hLogPage span.c0111, .l2hLogPage span.c0112, .l2hLogPage span.c0113, .l2hLogPage span.c0114, .l2hLogPage span.c0115 {color: black;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0200, .l2hLogPage span.c0201, .l2hLogPage span.c0202, .l2hLogPage span.c0203, .l2hLogPage span.c0204, .l2hLogPage span.c0205, .l2hLogPage span.c0206, .l2hLogPage span.c0207, .l2hLogPage span.c0208, .l2hLogPage span.c0209, .l2hLogPage span.c0210, .l2hLogPage span.c0211, .l2hLogPage span.c0212, .l2hLogPage span.c0213, .l2hLogPage span.c0214, .l2hLogPage span.c0215 {color: navy;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0300, .l2hLogPage span.c0301, .l2hLogPage span.c0302, .l2hLogPage span.c0303, .l2hLogPage span.c0304, .l2hLogPage span.c0305, .l2hLogPage span.c0306, .l2hLogPage span.c0307, .l2hLogPage span.c0308, .l2hLogPage span.c0309, .l2hLogPage span.c0310, .l2hLogPage span.c0311, .l2hLogPage span.c0312, .l2hLogPage span.c0313, .l2hLogPage span.c0314, .l2hLogPage span.c0315 {color: green;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0400, .l2hLogPage span.c0401, .l2hLogPage span.c0402, .l2hLogPage span.c0403, .l2hLogPage span.c0404, .l2hLogPage span.c0405, .l2hLogPage span.c0406, .l2hLogPage span.c0407, .l2hLogPage span.c0408, .l2hLogPage span.c0409, .l2hLogPage span.c0410, .l2hLogPage span.c0411, .l2hLogPage span.c0412, .l2hLogPage span.c0413, .l2hLogPage span.c0414, .l2hLogPage span.c0415 {color: red;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0500, .l2hLogPage span.c0501, .l2hLogPage span.c0502, .l2hLogPage span.c0503, .l2hLogPage span.c0504, .l2hLogPage span.c0505, .l2hLogPage span.c0506, .l2hLogPage span.c0507, .l2hLogPage span.c0508, .l2hLogPage span.c0509, .l2hLogPage span.c0510, .l2hLogPage span.c0511, .l2hLogPage span.c0512, .l2hLogPage span.c0513, .l2hLogPage span.c0514, .l2hLogPage span.c0515 {color: maroon;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0600, .l2hLogPage span.c0601, .l2hLogPage span.c0602, .l2hLogPage span.c0603, .l2hLogPage span.c0604, .l2hLogPage span.c0605, .l2hLogPage span.c0606, .l2hLogPage span.c0607, .l2hLogPage span.c0608, .l2hLogPage span.c0609, .l2hLogPage span.c0610, .l2hLogPage span.c0611, .l2hLogPage span.c0612, .l2hLogPage span.c0613, .l2hLogPage span.c0614, .l2hLogPage span.c0615 {color: purple;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0700, .l2hLogPage span.c0701, .l2hLogPage span.c0702, .l2hLogPage span.c0703, .l2hLogPage span.c0704, .l2hLogPage span.c0705, .l2hLogPage span.c0706, .l2hLogPage span.c0707, .l2hLogPage span.c0708, .l2hLogPage span.c0709, .l2hLogPage span.c0710, .l2hLogPage span.c0711, .l2hLogPage span.c0712, .l2hLogPage span.c0713, .l2hLogPage span.c0714, .l2hLogPage span.c0715 {color: orange;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0800, .l2hLogPage span.c0801, .l2hLogPage span.c0802, .l2hLogPage span.c0803, .l2hLogPage span.c0804, .l2hLogPage span.c0805, .l2hLogPage span.c0806, .l2hLogPage span.c0807, .l2hLogPage span.c0808, .l2hLogPage span.c0809, .l2hLogPage span.c0810, .l2hLogPage span.c0811, .l2hLogPage span.c0812, .l2hLogPage span.c0813, .l2hLogPage span.c0814, .l2hLogPage span.c0815 {color: yellow;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c0900, .l2hLogPage span.c0901, .l2hLogPage span.c0902, .l2hLogPage span.c0903, .l2hLogPage span.c0904, .l2hLogPage span.c0905, .l2hLogPage span.c0906, .l2hLogPage span.c0907, .l2hLogPage span.c0908, .l2hLogPage span.c0909, .l2hLogPage span.c0910, .l2hLogPage span.c0911, .l2hLogPage span.c0912, .l2hLogPage span.c0913, .l2hLogPage span.c0914, .l2hLogPage span.c0915 {color: lime;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c1000, .l2hLogPage span.c1001, .l2hLogPage span.c1002, .l2hLogPage span.c1003, .l2hLogPage span.c1004, .l2hLogPage span.c1005, .l2hLogPage span.c1006, .l2hLogPage span.c1007, .l2hLogPage span.c1008, .l2hLogPage span.c1009, .l2hLogPage span.c1010, .l2hLogPage span.c1011, .l2hLogPage span.c1012, .l2hLogPage span.c1013, .l2hLogPage span.c1014, .l2hLogPage span.c1015 {color: teal;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c1100, .l2hLogPage span.c1101, .l2hLogPage span.c1102, .l2hLogPage span.c1103, .l2hLogPage span.c1104, .l2hLogPage span.c1105, .l2hLogPage span.c1106, .l2hLogPage span.c1107, .l2hLogPage span.c1108, .l2hLogPage span.c1109, .l2hLogPage span.c1110, .l2hLogPage span.c1111, .l2hLogPage span.c1112, .l2hLogPage span.c1113, .l2hLogPage span.c1114, .l2hLogPage span.c1115 {color: aqua;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c1200, .l2hLogPage span.c1201, .l2hLogPage span.c1202, .l2hLogPage span.c1203, .l2hLogPage span.c1204, .l2hLogPage span.c1205, .l2hLogPage span.c1206, .l2hLogPage span.c1207, .l2hLogPage span.c1208, .l2hLogPage span.c1209, .l2hLogPage span.c1210, .l2hLogPage span.c1211, .l2hLogPage span.c1212, .l2hLogPage span.c1213, .l2hLogPage span.c1214, .l2hLogPage span.c1215 {color: blue;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c1300, .l2hLogPage span.c1301, .l2hLogPage span.c1302, .l2hLogPage span.c1303, .l2hLogPage span.c1304, .l2hLogPage span.c1305, .l2hLogPage span.c1306, .l2hLogPage span.c1307, .l2hLogPage span.c1308, .l2hLogPage span.c1309, .l2hLogPage span.c1310, .l2hLogPage span.c1311, .l2hLogPage span.c1312, .l2hLogPage span.c1313, .l2hLogPage span.c1314, .l2hLogPage span.c1315 {color: fuchsia;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c1400, .l2hLogPage span.c1401, .l2hLogPage span.c1402, .l2hLogPage span.c1403, .l2hLogPage span.c1404, .l2hLogPage span.c1405, .l2hLogPage span.c1406, .l2hLogPage span.c1407, .l2hLogPage span.c1408, .l2hLogPage span.c1409, .l2hLogPage span.c1410, .l2hLogPage span.c1411, .l2hLogPage span.c1412, .l2hLogPage span.c1413, .l2hLogPage span.c1414, .l2hLogPage span.c1415 {color: silver;}\n");
-+ str_write(dst_file, ".l2hLogPage span.c1500, .l2hLogPage span.c1501, .l2hLogPage span.c1502, .l2hLogPage span.c1503, .l2hLogPage span.c1504, .l2hLogPage span.c1505, .l2hLogPage span.c1506, .l2hLogPage span.c1507, .l2hLogPage span.c1508, .l2hLogPage span.c1509, .l2hLogPage span.c1510, .l2hLogPage span.c1511, .l2hLogPage span.c1512, .l2hLogPage span.c1513, .l2hLogPage span.c1514, .l2hLogPage span.c1515 {color: gray;}\n");
-+ str_write(dst_file, ".l2hLogPage span.f00 {color: white;}\n");
-+ str_write(dst_file, ".l2hLogPage span.f01 {color: black;}\n");
-+ str_write(dst_file, ".l2hLogPage span.f02 {color: navy;}\n");
-+ str_write(dst_file, ".l2hLogPage span.f03 {color: green;}\n");
-+ str_write(dst_file, ".l2hLogPage span.f04 {color: red;}\n");
-+ str_write(dst_file, ".l2hLogPage span.f05 {color: maroon;}\n");
-+ str_write(dst_file, ".l2hLogPage span.f06 {color: purple;}\n");
-+ str_write(dst_file, ".l2hLogPage span.f07 {color: orange;}\n");
-+ str_write(dst_file, ".l2hLogPage span.f08 {color: yellow;}\n");
-+ str_write(dst_file, ".l2hLogPage span.f09 {color: lime;}\n");
-+ str_write(dst_file, ".l2hLogPage span.f10 {color: teal;}\n");
-+ str_write(dst_file, ".l2hLogPage span.f11 {color: aqua;}\n");
-+ str_write(dst_file, ".l2hLogPage span.f12 {color: blue;}\n");
-+ str_write(dst_file, ".l2hLogPage span.f13 {color: fuchsia;}\n");
-+ str_write(dst_file, ".l2hLogPage span.f14 {color: silver;}\n");
-+ str_write(dst_file, ".l2hLogPage span.f15 {color: gray;}\n\n");
-+
-+ str_write(dst_file, "/* Miscellaneous classes for reuse */\n");
-+ str_write(dst_file, ".clearfloat {\n");
-+ str_write(dst_file, "/* this class should be placed on a div or break element and should be the final element before\n");
-+ str_write(dst_file, "the close of a container that should fully contain a float */\n");
-+ str_write(dst_file, "clear:both;\n");
-+ str_write(dst_file, "height:0;\n");
-+ str_write(dst_file, "font-size: 1px;\n");
-+ str_write(dst_file, "line-height: 0px;\n");
-+ str_write(dst_file, "}\n\n");
-+
-+ str_write(dst_file, "--> \n\n");
-+
-+ return;
-+}
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/language/logs2html.danish.lang src/eggdrop-1.8.4/src/mod/logs2html.mod/language/logs2html.danish.lang
---- ./src/mod/logs2html.mod/language/logs2html.danish.lang 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/logs2html.mod/language/logs2html.danish.lang 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1,38 @@
-+# logs2html.danish.lang
-+# language messages for the logs2html module
-+
-+# Year
-+0xe000,�r
-+
-+# Back to mainpage link
-+0xe001,Hjem
-+
-+# Up link
-+0xe002,top
-+
-+# Backward, forward link
-+0xe003,forrige
-+0xe004,n�ste
-+
-+# Month names
-+0xe005,Januar
-+0xe006,Februar
-+0xe007,Marts
-+0xe008,April
-+0xe009,M�
-+0xe010,Juni
-+0xe011,Juli
-+0xe012,August
-+0xe013,September
-+0xe014,Oktober
-+0xe015,November
-+0xe016,December
-+
-+# Days of week names
-+0xe017,S�n.
-+0xe018,Man.
-+0xe019,Tir.
-+0xe020,Ons.
-+0xe021,Tor.
-+0xe022,Fre.
-+0xe023,L�r.
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/language/logs2html.english.lang src/eggdrop-1.8.4/src/mod/logs2html.mod/language/logs2html.english.lang
---- ./src/mod/logs2html.mod/language/logs2html.english.lang 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/logs2html.mod/language/logs2html.english.lang 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1,38 @@
-+# logs2html.english.lang
-+# language messages for the logs2html module
-+
-+# Year
-+0xe000,year
-+
-+# Back to mainpage link
-+0xe001,Main page
-+
-+# Up link
-+0xe002,up
-+
-+# Backward, forward link
-+0xe003,back
-+0xe004,next
-+
-+# Month names
-+0xe005,January
-+0xe006,February
-+0xe007,March
-+0xe008,April
-+0xe009,May
-+0xe010,June
-+0xe011,July
-+0xe012,August
-+0xe013,September
-+0xe014,October
-+0xe015,November
-+0xe016,December
-+
-+# Days of week names
-+0xe017,Su
-+0xe018,Mo
-+0xe019,Tu
-+0xe020,Wn
-+0xe021,Th
-+0xe022,Fr
-+0xe023,St
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/language/logs2html.finnish.lang src/eggdrop-1.8.4/src/mod/logs2html.mod/language/logs2html.finnish.lang
---- ./src/mod/logs2html.mod/language/logs2html.finnish.lang 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/logs2html.mod/language/logs2html.finnish.lang 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1,38 @@
-+# logs2html.finnish.lang
-+# language messages for the logs2html module
-+
-+# Year
-+0xe000,vuosi
-+
-+# Back to mainpage link
-+0xe001,Koti
-+
-+# Up link
-+0xe002,yl�s
-+
-+# Backward, forward link
-+0xe003,edellinen
-+0xe004,seuraava
-+
-+# Month names
-+0xe005,Tammikuu
-+0xe006,Helmikuu
-+0xe007,Maaliskuu
-+0xe008,Huhtikuu
-+0xe009,Toukokuu
-+0xe010,Kes�kuu
-+0xe011,Hein�kuu
-+0xe012,Elokuu
-+0xe013,Syyskuu
-+0xe014,Lokakuu
-+0xe015,Marraskuu
-+0xe016,Joulukuu
-+
-+# Days of week names
-+0xe017,Su
-+0xe018,Ma
-+0xe019,Ti
-+0xe020,Ke
-+0xe021,To
-+0xe022,Pe
-+0xe023,La
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/language/logs2html.french.lang src/eggdrop-1.8.4/src/mod/logs2html.mod/language/logs2html.french.lang
---- ./src/mod/logs2html.mod/language/logs2html.french.lang 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/logs2html.mod/language/logs2html.french.lang 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1,40 @@
-+# logs2html.french.lang
-+# language messages for the logs2html module
-+#
-+# Thanks to skiidoo patch (2007)
-+
-+# Year
-+0xe000,Ann�e
-+
-+# Back to mainpage link
-+0xe001,Page principale
-+
-+# Up link
-+0xe002,haut
-+
-+# Backward, forward link
-+0xe003,Pr�c�dente
-+0xe004,Suivante
-+
-+# Month names
-+0xe005,Janvier
-+0xe006,F�vrier
-+0xe007,Mars
-+0xe008,Avril
-+0xe009,Mai
-+0xe010,Juin
-+0xe011,Juillet
-+0xe012,Ao�t
-+0xe013,Septembre
-+0xe014,Octobre
-+0xe015,Novembre
-+0xe016,D�cembre
-+
-+# Days of week names
-+0xe017,Di
-+0xe018,Lu
-+0xe019,Ma
-+0xe020,Me
-+0xe021,Je
-+0xe022,Ve
-+0xe023,Sa
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/language/logs2html.german.lang src/eggdrop-1.8.4/src/mod/logs2html.mod/language/logs2html.german.lang
---- ./src/mod/logs2html.mod/language/logs2html.german.lang 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/logs2html.mod/language/logs2html.german.lang 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1,38 @@
-+# logs2html.german.lang
-+# language messages for the logs2html module
-+
-+# Year
-+0xe000,jahr
-+
-+# Back to mainpage link
-+0xe001,Heim
-+
-+# Up link
-+0xe002,Spitze
-+
-+# Backward, forward link
-+0xe003,zur�ck
-+0xe004,n�chster
-+
-+# Month names
-+0xe005,Januar
-+0xe006,Februar
-+0xe007,M�rz
-+0xe008,April
-+0xe009,D�rfen
-+0xe010,Juni
-+0xe011,Juli
-+0xe012,August
-+0xe013,September
-+0xe014,Oktober
-+0xe015,November
-+0xe016,Dezember
-+
-+# Days of week names
-+0xe017,So
-+0xe018,Mo
-+0xe019,Di
-+0xe020,Mi
-+0xe021,Do
-+0xe022,Fr
-+0xe023,Sa
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/language/logs2html.russian.lang src/eggdrop-1.8.4/src/mod/logs2html.mod/language/logs2html.russian.lang
---- ./src/mod/logs2html.mod/language/logs2html.russian.lang 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/logs2html.mod/language/logs2html.russian.lang 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1,38 @@
-+# logs2html.ru.lang
-+# language messages for the logs2html module
-+
-+# Year
-+0xe000,���
-+
-+# Back to mainpage link
-+0xe001,�� ������� ��������
-+
-+# Up link
-+0xe002,������
-+
-+# Backward, forward link
-+0xe003,����������
-+0xe004,���������
-+
-+# Month names
-+0xe005,������
-+0xe006,�������
-+0xe007,����
-+0xe008,������
-+0xe009,���
-+0xe010,����
-+0xe011,����
-+0xe012,������
-+0xe013,��������
-+0xe014,�������
-+0xe015,������
-+0xe016,�������
-+
-+# Days of week names
-+0xe017,��
-+0xe018,��
-+0xe019,��
-+0xe020,��
-+0xe021,��
-+0xe022,��
-+0xe023,��
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/language.h src/eggdrop-1.8.4/src/mod/logs2html.mod/language.h
---- ./src/mod/logs2html.mod/language.h 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/logs2html.mod/language.h 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1,53 @@
-+/*
-+ * language.h -- part of logs2html.mod
-+ *
-+ * Written by Fedotov Alexander aka Gray_Angel aka Shmupsik <shurikvz@mail.ru>
-+ *
-+ * 2004-2005 year
-+ */
-+/*
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+#ifndef _EGG_MOD_LOGS2HTML_LANGUAGE_H
-+#define _EGG_MOD_LOGS2HTML_LANGUAGE_H
-+
-+#define LOGS2HTML_YEAR get_language(0xe000)
-+#define LOGS2HTML_MAINPAGE get_language(0xe001)
-+#define LOGS2HTML_UP get_language(0xe002)
-+#define LOGS2HTML_BACK get_language(0xe003)
-+#define LOGS2HTML_NEXT get_language(0xe004)
-+
-+#define LOGS2HTML_JANUARY get_language(0xe005)
-+#define LOGS2HTML_FEBRIARY get_language(0xe006)
-+#define LOGS2HTML_MARCH get_language(0xe007)
-+#define LOGS2HTML_APRIL get_language(0xe008)
-+#define LOGS2HTML_MAY get_language(0xe009)
-+#define LOGS2HTML_JUNE get_language(0xe010)
-+#define LOGS2HTML_JULY get_language(0xe011)
-+#define LOGS2HTML_AUGUST get_language(0xe012)
-+#define LOGS2HTML_SEPTEMBER get_language(0xe013)
-+#define LOGS2HTML_OCTOBER get_language(0xe014)
-+#define LOGS2HTML_NOVEMBER get_language(0xe015)
-+#define LOGS2HTML_DECEMBER get_language(0xe016)
-+
-+#define LOGS2HTML_SUNDAY get_language(0xe017)
-+#define LOGS2HTML_MONDAY get_language(0xe018)
-+#define LOGS2HTML_TUESDAY get_language(0xe019)
-+#define LOGS2HTML_WEDNESDAY get_language(0xe020)
-+#define LOGS2HTML_THURSDAY get_language(0xe021)
-+#define LOGS2HTML_FRIDAY get_language(0xe022)
-+#define LOGS2HTML_SATURDAY get_language(0xe023)
-+
-+#endif
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/logs2html.c src/eggdrop-1.8.4/src/mod/logs2html.mod/logs2html.c
---- ./src/mod/logs2html.mod/logs2html.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/logs2html.mod/logs2html.c 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1,1679 @@
-+/*
-+ * logs2html.c -- part of logs2html.mod
-+ *
-+ * Written by Fedotov Alexander aka Shmupsik aka shurikvz <shurikvz@mail.ru>
-+ *
-+ * 2004-2009 year
-+ *
-+ * Patch and some changes to v.2.3.4 by skiidoo (2007)
-+ *
-+ */
-+/*
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+
-+#define MODULE_NAME "logs2html"
-+#define MAKING_LOGS2HTML
-+#include "src/mod/module.h"
-+
-+#include <stdlib.h>
-+#include <stdbool.h>
-+#include <stdio.h>
-+#include <string.h>
-+#include <time.h>
-+#include <ctype.h>
-+#include <sys/types.h>
-+#include <math.h>
-+#include <regex.h>
-+#include "logs2html.h"
-+#include "language.h"
-+
-+#undef global
-+
-+#define MODULE_MAJOR 2
-+#define MODULE_MINOR 4
-+#define MODULE_SUBMINOR 3
-+#define MODULE_BUILD "(ac100-ru fork)"
-+
-+static Function *global = NULL;
-+
-+static int shtime;
-+static int keep_all_logs;
-+static char logfile_suffix[21];
-+
-+static int lines_per_page;
-+static int start_year;
-+static int month_block_orientation;
-+static int dont_print_time;
-+static int dont_print_join;
-+static int dont_print_left;
-+static int dont_print_modechange;
-+static int dont_print_nickchange;
-+static int dont_print_kick;
-+static int dont_print_else;
-+
-+static int month_cols_count = 3;
-+static int month_rows_count = 4;
-+
-+static char mainpage_top_filename[257] = "\0";
-+static char mainpage_bottom_filename[257] = "\0";
-+static char logspage_top_filename[257] = "\0";
-+static char logspage_bottom_filename[257] = "\0";
-+static char userstyle_filename[257] = "\0";
-+static char encoding_string[31] = "\0";
-+
-+static l2hchan_t *logs2htmlchanlist = NULL; // Here we keep list of our logs
-+
-+/* for language file */
-+static char month_names[12][MAX_MONTH_LENGTH];
-+static char days_names[7][MAX_DAY_LENGTH];
-+
-+static regex_t re_uri, re_uritrunc, re_email;
-+
-+static void logs2html_hook_5minutely(void);
-+static void logs2html_hook_hourly(void);
-+static void logs2html_hook_rehash(void);
-+static void logs2html_hook_pre_rehash(void);
-+static void event_addlogs2htmlchan(void);
-+
-+#ifndef _strlcpy
-+#include "strlcpy.c"
-+#endif
-+#include "fileoperations.c"
-+#include "htmloperations.c"
-+#include "tcllogs2html.c"
-+
-+
-+/*
-+ * Code starts here
-+ */
-+
-+/*
-+ * getdayofweek()
-+ * Input:
-+ * year - год
-+ * month - месяц
-+ * day - день
-+ *
-+ * Output:
-+ * 0 - Понедельник, 1 - Вторник, 2 - Среда и.т.д.
-+ *
-+ * Description:
-+ * Функция вычисляет на какой день недели приходится переданная дата
-+ */
-+static int getdayofweek(int year, int month, int day)
-+{
-+ long int d1, d2, d3;
-+
-+ long int tdays = year * 12 + month - 3;
-+ month = tdays % 12;
-+ year = (tdays - month) / 12;
-+
-+ d1 = ((146097 * (year - (year % 100)) / 100) - ((146097 * (year - (year % 100)) / 100) % 4)) / 4;
-+ d2 = ((1461 * (year % 100)) - ((1461 * (year % 100)) % 4)) / 4;
-+ d3 = ((153 * month + 2) - ((153 * month + 2) % 5)) / 5 + day + 1721119;
-+
-+ return (d1 + d2 + d3) % 7;
-+} /* getdayofweek() */
-+/****************************************************************************/
-+
-+
-+/****************************************************************************/
-+static void makeindexpage(l2hchan_t *ch, int year) {
-+ /* Compute how many rows we need */
-+ if (month_cols_count < 0) { month_cols_count = 3; }
-+ if (month_cols_count > 12) { month_cols_count = 12; }
-+ month_rows_count = (int)ceil(12.0 / (double)month_cols_count);
-+
-+ time_t t = time(NULL);
-+ struct tm tblock = *localtime(&t);
-+
-+ FILE *file;
-+ // calculate maximum possible filenamelength
-+ int filenamelength = strlen(ch->outputpath) + strlen(SEP) + MAX(strlen(ch->mainpagename), strlen(ch->logspagename) + strlen("00") + strlen("00") + strlen("_pg000000")) + strlen("0000") + strlen(".html") + 1;
-+ char *filename = nmalloc(filenamelength);
-+
-+ egg_snprintf(filename, filenamelength, "%s%sdefault.css", ch->outputpath, SEP);
-+ if ((file = openfile(filename, "wb", false)) == NULL) {
-+ nfree(filename);
-+ return;
-+ }
-+ WriteCSSFile(file);
-+ fclose(file);
-+
-+ if (tblock.tm_year + 1900 == year) {
-+ egg_snprintf(filename, filenamelength, "%s%s%s.html", ch->outputpath, SEP, ch->mainpagename);
-+ } else {
-+ egg_snprintf(filename, filenamelength, "%s%s%s%d.html", ch->outputpath, SEP, ch->mainpagename, year);
-+ }
-+ if ((file = openfile(filename, "wb", false)) == NULL) {
-+ nfree(filename);
-+ return;
-+ }
-+
-+ str_write(file, "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n");
-+ str_write(file, "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n");
-+ str_write(file, "<head>\n");
-+ if (strlen(encoding_string) > 0) {str_write(file, "\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=%s\" />\n", encoding_string); }
-+ str_write(file, "\t<meta name=\"title\" content=\"%s\" />\n", ch->mainpagetitle);
-+ str_write(file, "\t<meta name=\"description\" content=\"%s\" />\n", ch->mainpagetitle);
-+ str_write(file, "\t<meta name=\"generator\" content=\"logs2html module for Eggdrop v.%d.%d.%d%s\" />\n", MODULE_MAJOR, MODULE_MINOR, MODULE_SUBMINOR, MODULE_BUILD);
-+ str_write(file, "\t<meta name=\"author\" content=\"Fedotov Alexander aka shurikvz aka shmupsik\" />\n");
-+ str_write(file, "\t<meta name=\"keywords\" content=\"logs2html, logs, logging, channel, irc, bot, eggdrop, windrop, mirc, module, convert\" />\n");
-+ str_write(file, "\t<meta name=\"robots\" content= \"index,all\" />\n");
-+ str_write(file, "\t<link rel=\"stylesheet\" type=\"text/css\" href=\"default.css\" />\n");
-+ if (strlen(userstyle_filename) > 0) str_write(file, "\t<link rel=\"stylesheet\" type=\"text/css\" href=\"user.css\" />\n");
-+ str_write(file, "\t<title>%s %d %s</title>\n", ch->mainpagetitle, year, LOGS2HTML_YEAR);
-+ str_write(file, "\t<!--[if IE]>\n\t<style type=\"text/css\">\n\t.l2hMainPage #leftsidebar { padding-top: 30px; }\n\t.l2hMainPage #mainblock { zoom: 1; padding-top: 15px; }\n\t/* the above proprietary zoom property gives IE the hasLayout it may need to avoid several bugs */\n\t</style>\n\t<![endif]-->\n");
-+ str_write(file, "</head>\n\n");
-+
-+ str_write(file, "<body class=\"l2hMainPage\">\n");
-+ str_write(file, "\t<div id=\"container\">\n");
-+
-+ if (strlen(mainpage_top_filename) > 0) {
-+ str_write(file, "\t\t<div id=\"mp_top\">\n");
-+ writefromexfile(file, mainpage_top_filename);
-+ str_write(file, "\n\t\t</div>\n");
-+ }
-+
-+ str_write(file, "\t\t<div id=\"header\">\n<h2>%s<br />%d %s</h2>\n\t\t</div>\n", ch->mainpagetitle, year, LOGS2HTML_YEAR);
-+ str_write(file, "\t\t<div id=\"leftsidebar\">\n");
-+
-+ int loopyear;
-+ for(loopyear = start_year; loopyear <= tblock.tm_year + 1900; loopyear++) {
-+ str_write(file, "\t\t\t<div class=\"indexlink\">");
-+ if (loopyear == year) {
-+ str_write(file, "<a href=\"JavaScript:void(0);\">%d</a>", loopyear);
-+ } else {
-+ if (tblock.tm_year + 1900 == loopyear) {
-+ egg_snprintf(filename, filenamelength, "%s.html", ch->mainpagename);
-+ } else {
-+ egg_snprintf(filename, filenamelength, "%s%d.html", ch->mainpagename, loopyear);
-+ }
-+ str_write(file, "<a href=\"%s\">%d</a>", filename, loopyear);
-+ }
-+ str_write(file, "</div>\n");
-+ }
-+ str_write(file, "\t\t</div>\n\n");
-+ str_write(file, "\t\t<div id=\"mainblock\">\n");
-+ str_write(file, "\t\t\t<table id=\"monthtable\" width=\"100%%\" border=\"0\">\n");
-+
-+ int i, j, k;
-+ str_write(file, "\t\t\t\t<colgroup>\n");
-+ for(k = 0; k < month_cols_count; k++) {
-+ str_write(file, "\t\t\t\t\t<col width=\"%d%%\" />\n", (int)(100 / month_cols_count));
-+ }
-+ str_write(file, "\t\t\t\t</colgroup>\n");
-+
-+ for(i = 0; i < month_rows_count; i++) {
-+ str_write(file, "\t\t\t\t<tr>\n");
-+ for(j = 0; j < month_cols_count; j++) {
-+ int month = i * month_cols_count + j;
-+ int row, col;
-+
-+ str_write(file, "\t\t\t\t\t<td>\n\t\t\t\t\t\t<table class=\"monthblock\" width=\"100%%\">\n");
-+ str_write(file, "\t\t\t\t\t\t\t<colgroup>\n");
-+ for(k = 0; k < 7; k++) {
-+ str_write(file, "\t\t\t\t\t\t\t\t<col width=\"%d%%\" />\n", (int)(100 / 7));
-+ }
-+ str_write(file, "\t\t\t\t\t\t\t</colgroup>\n");
-+
-+ if ((month >= 0) && (month <= 11)) {
-+
-+ if (month_block_orientation != 0) {
-+ /*
-+ * Horisontal block orientation
-+ * Each table has: 1 row: month name, 1 row: day of week names, 6 rows: days of month
-+ * 7 columns: days of month.
-+ * Total we must create 8x7 table
-+ */
-+ str_write(file, "\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<th class=\"monthname\" colspan=\"7\">%s</th>\n\t\t\t\t\t\t\t</tr>\n", month_names[month]);
-+ str_write(file, "\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<td class=\"dayname\">%s</td>\n\t\t\t\t\t\t\t\t<td class=\"dayname\">%s</td>\n\t\t\t\t\t\t\t\t<td class=\"dayname\">%s</td>\n\t\t\t\t\t\t\t\t<td class=\"dayname\">%s</td>\n\t\t\t\t\t\t\t\t<td class=\"dayname\">%s</td>\n\t\t\t\t\t\t\t\t<td class=\"dayname\">%s</td>\n\t\t\t\t\t\t\t\t<td class=\"weekend\">%s</td>\n\t\t\t\t\t\t\t</tr>\n",
-+ days_names[0], days_names[1], days_names[2], days_names[3], days_names[4], days_names[5], days_names[6]);
-+ for(row = 0; row < 6; row++) {
-+ str_write(file, "\t\t\t\t\t\t\t<tr class=\"%s\">\n", (row % 2 == 0) ? "odd" : "even");
-+ for(col = 0; col < 7; col++) {
-+ int day = row * 7 + (col + 1) - getdayofweek(year, month + 1, 1);
-+ if ((day >= 1) && (day <= DAYS_IN_MONTH(year, month))) {
-+ egg_snprintf(filename, filenamelength, "%s%s%s%d%02d%02d_pg%d.html", ch->outputpath, SEP, ch->logspagename, year, month + 1, day, 1);
-+ //Lets check if file exist and we can paste link to it. If not exist we try to make it.
-+ if (!file_readable(filename)) {
-+ convertfile(ch, year, month + 1, day);
-+ }
-+ if (file_readable(filename)) {
-+ /* let write withount full path */
-+ egg_snprintf(filename, filenamelength, "%s%d%02d%02d_pg%d.html", ch->logspagename, year, month + 1, day, 1);
-+ str_write(file, "\t\t\t\t\t\t\t\t<td class=\"day\"><a href=\"%s\">%d</a></td>\n", filename, day);
-+ } else {
-+ str_write(file, "\t\t\t\t\t\t\t\t<td class=\"day\">%d</td>\n", day);
-+ }
-+ } else {
-+ str_write(file, "\t\t\t\t\t\t\t\t<td class=\"emptycell\">&nbsp;</td>\n");
-+ }
-+ }
-+ str_write(file, "\t\t\t\t\t\t\t</tr>\n");
-+ }
-+ } else {
-+ /*
-+ * Vertical block orientation
-+ * Each table has: 1 row: month name, 7 rows: (day of week + days of month) names,
-+ * 1 column: day of week names, 6 columns: days of month.
-+ * Total we must create 8x7 table
-+ */
-+ str_write(file, "\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t<th class=\"monthname\" colspan=\"7\">%s</th>\n\t\t\t\t\t\t\t</tr>\n", month_names[month]);
-+ for(row = 0; row < 7; row++) {
-+ str_write(file, "\t\t\t\t\t\t\t<tr class=\"%s\">\n", (row % 2 == 0) ? "odd" : "even");
-+ for(col = 0; col < 7; col++) {
-+ /* First column - day names. */
-+ if (col == 0) {
-+ if (row == 6) {
-+ str_write(file, "\t\t\t\t\t\t\t\t<td class=\"weekend\">%s</td>\n", days_names[row]);
-+ } else {
-+ str_write(file, "\t\t\t\t\t\t\t\t<td class=\"dayname\">%s</td>\n", days_names[row]);
-+ }
-+ continue;
-+ }
-+ int day = (col - 1) * 7 + (row + 1) - getdayofweek(year, month + 1, 1);
-+ if ((day >= 1) && (day <= DAYS_IN_MONTH(year, month))) {
-+ egg_snprintf(filename, filenamelength, "%s%s%s%d%02d%02d_pg%d.html", ch->outputpath, SEP, ch->logspagename, year, month + 1, day, 1);
-+ //Lets check if file exist and we can paste link to it. If not exist we try to make it.
-+ if (!file_readable(filename)) {
-+ convertfile(ch, year, month + 1, day);
-+ }
-+ if (file_readable(filename)) {
-+ /* let write withount full path */
-+ egg_snprintf(filename, filenamelength, "%s%d%02d%02d_pg%d.html", ch->logspagename, year, month + 1, day, 1);
-+ str_write(file, "\t\t\t\t\t\t\t\t<td class=\"day\"><a href=\"%s\">%d</a></td>\n", filename, day);
-+ } else {
-+ str_write(file, "\t\t\t\t\t\t\t\t<td class=\"day\">%d</td>\n", day);
-+ }
-+ } else {
-+ str_write(file, "\t\t\t\t\t\t\t\t<td class=\"emptycell\">&nbsp;</td>\n");
-+ }
-+ }
-+ str_write(file, "\t\t\t\t\t\t\t</tr>\n");
-+ }
-+ }
-+ } else {
-+ /* No more months :) Write empty month block */
-+ for(row = 0; row < 8; row++) {
-+ str_write(file, "\t\t\t\t\t\t\t<tr><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr>\n");
-+ }
-+ }
-+ str_write(file, "\t\t\t\t\t\t</table>\n\t\t\t\t\t</td>\n");
-+ }
-+ str_write(file, "\t\t\t\t</tr>\n");
-+ }
-+
-+ str_write(file, "\t\t\t</table>\n");
-+ str_write(file, "\t\t</div>\n\n");
-+
-+ str_write(file, "\t\t<br class=\"clearfloat\" />\n");
-+ str_write(file, "\t\t<div id=\"footer\">\n<p>Generated by logs2html module for eggdrop v.%d.%d.%d%s<br />", MODULE_MAJOR, MODULE_MINOR, MODULE_SUBMINOR, MODULE_BUILD);
-+ str_write(file, "Find latest version at <a href=\"http://sourceforge.net/projects/logs2html\">http://sourceforge.net/projects/logs2html</a> or <a href=\"http://www.halftone.ru/projects\">http://www.halftone.ru</a><br />");
-+ str_write(file, "Fork at <a href=\"https://github.com/ac100-ru/logs2html.mod\">https://github.com/ac100-ru/logs2html.mod</a></p>\n\t\t</div>\n");
-+
-+ if (strlen(mainpage_bottom_filename) > 0) {
-+ str_write(file, "\t\t<div id=\"mp_bottom\">\n");
-+ writefromexfile(file, mainpage_bottom_filename);
-+ str_write(file, "\n\t\t</div>\n");
-+ }
-+
-+ str_write(file, "\t</div>\n");
-+ str_write(file, "</body>\n");
-+ str_write(file, "</html>\n");
-+
-+ fclose(file);
-+ nfree(filename);
-+
-+ return;
-+} /* makeindexpage() */
-+/****************************************************************************/
-+
-+
-+/****************************************************************************/
-+/*
-+ * function void convertfile(l2hchan_t *ch, int year, int month, int day)
-+ *
-+ * Input:
-+ *
-+ *
-+ *
-+ * Output:
-+ *
-+ *
-+ * Discription:
-+ * переводит файлы из текстового вида в формат HTML
-+ */
-+static void convertfile(l2hchan_t *ch, int year, int month, int day) {
-+
-+ FILE *file, *src_file;
-+ char buffer[LOGLINELEN], data[LOGLINELEN], ct[81], stamp[33];
-+ char *buf_ptr;
-+
-+ struct tm tblock;
-+ tblock.tm_year = year - 1900;
-+ tblock.tm_mon = month - 1;
-+ tblock.tm_mday = day;
-+ tblock.tm_wday = getdayofweek(year, month, day);
-+ tblock.tm_hour = 0;
-+ tblock.tm_min = 0;
-+ tblock.tm_sec = 1;
-+ if (!logfile_suffix[0])
-+ egg_strftime(ct, 12, ".%d%b%Y", &tblock);
-+ else
-+ egg_strftime(ct, 80, logfile_suffix, &tblock);
-+ ct[80] = '\0';
-+
-+ // calculate maximum possible filenamelength
-+ int filenamelength = MAX(strlen(ch->outputpath), strlen(ch->inputpath)) + MAX(strlen(SEP) + strlen(ch->logspagename) + strlen("0000") + strlen("00") + strlen("00") + strlen("_pg000000") + strlen(".html"), strlen(ct)) + 1;
-+ char *filename = nmalloc(filenamelength);
-+ egg_snprintf(filename, filenamelength, "%s%s", ch->inputpath, ct);
-+ if ((src_file = openfile(filename, "r", true)) == NULL) {
-+ nfree(filename);
-+ return;
-+ }
-+
-+ if (lines_per_page < 0) lines_per_page = 0;
-+
-+ int lines_count, tsl;
-+ int pages_count = 0;
-+ while(!feof(src_file)) {
-+ lines_count = lines_per_page;
-+ pages_count++;
-+
-+ egg_snprintf(filename, filenamelength, "%s%s%s%d%02d%02d_pg%d.html", ch->outputpath, SEP, ch->logspagename, year, month, day, pages_count);
-+ if ((file = openfile(filename, "wb", false)) == NULL) {
-+ fclose(src_file);
-+ putlog(LOG_MISC, "*", "logs2html: Error occured on converting %d page of file \"%s\"!", pages_count, filename);
-+ nfree(filename);
-+ return;
-+ }
-+
-+ str_write(file, "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">\n");
-+ str_write(file, "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n");
-+ str_write(file, "<head>\n");
-+ if (strlen(encoding_string) > 0) {str_write(file, "\t<meta http-equiv=\"Content-Type\" content=\"text/html; charset=%s\" />\n", encoding_string); }
-+ str_write(file, "\t<meta name=\"title\" content=\"%s\" />\n", ch->logspagetitle);
-+ str_write(file, "\t<meta name=\"description\" content=\"%s\" />\n", ch->logspagetitle);
-+ str_write(file, "\t<meta name=\"generator\" content=\"logs2html module for Eggdrop v.%d.%d.%d%s\" />\n", MODULE_MAJOR, MODULE_MINOR, MODULE_SUBMINOR, MODULE_BUILD);
-+ str_write(file, "\t<meta name=\"author\" content=\"Fedotov Alexander aka shurikvz aka shmupsik\" />\n");
-+ str_write(file, "\t<meta name=\"keywords\" content=\"logs2html, logs, logging, channel, irc, bot, eggdrop, windrop, mirc, module, convert\" />\n");
-+ str_write(file, "\t<meta name=\"robots\" content= \"index,all\" />\n");
-+ str_write(file, "\t<link rel=\"stylesheet\" type=\"text/css\" href=\"default.css\" />\n");
-+ if (strlen(userstyle_filename) > 0) str_write(file, "\t<link rel=\"stylesheet\" type=\"text/css\" href=\"user.css\" />\n");
-+ str_write(file, "\t<title>%s. %d/%d/%d.</title>\n", ch->logspagetitle, day, month, year);
-+ str_write(file, "\t<!--[if IE]>\n\t<style type=\"text/css\">\n\t.l2hLogPage #mainblock { zoom: 1; padding-top: 15px; }\n\t/* the above proprietary zoom property gives IE the hasLayout it may need to avoid several bugs */\n\t</style>\n\t<![endif]-->\n");
-+ str_write(file, "</head>\n\n");
-+
-+ str_write(file, "<body class=\"l2hLogPage\">\n");
-+ str_write(file, "\t<div id=\"container\">\n");
-+
-+ if (strlen(logspage_top_filename) > 0) {
-+ str_write(file, "\t\t<div id=\"lp_top\">\n");
-+ writefromexfile(file, logspage_top_filename);
-+ str_write(file, "\n\t\t</div>\n");
-+ }
-+
-+ str_write(file, "\t\t<div id=\"header\">\n", ch->mainpagetitle, year, LOGS2HTML_YEAR);
-+ str_write(file, "\t\t\t<a name=\"top\" id=\"top\"></a>\n");
-+
-+ str_write(file, "\t\t</div>\n");
-+ str_write(file, "\t\t<div id=\"mainblock\">\n");
-+
-+ time_t t = time(NULL);
-+ tblock = *localtime(&t);
-+ if (tblock.tm_year + 1900 == year) {
-+ str_write(file, "\t\t\t<div id=\"navtop\"><a href=\"%s.html\">%s</a></div>\n", ch->mainpagename, LOGS2HTML_MAINPAGE);
-+ } else {
-+ str_write(file, "\t\t\t<div id=\"navtop\"><a href=\"%s%d.html\">%s</a></div>\n", ch->mainpagename, year, LOGS2HTML_MAINPAGE);
-+ }
-+
-+ while ((lines_count > 0) || (lines_per_page == 0)) {
-+
-+ buf_ptr = fgets(buffer, sizeof buffer, src_file);
-+ if (buf_ptr == NULL) break;
-+
-+ remove_crlf(&buf_ptr);
-+ if (!buf_ptr[0]) continue;
-+
-+ /* if timestamp exist cut time from string */
-+ data[0] = '\0';
-+ strcat(data, "\t\t\t<div>&nbsp;");
-+ if (shtime) {
-+ egg_strftime(stamp, sizeof(stamp) - 1, LOG_TS, &tblock); /* Print dummy time */
-+ tsl = strlen(stamp);
-+ if (dont_print_time == 0) {
-+ strcat(data, "<span class=\"time\">");
-+ strncat(data, buf_ptr, tsl);
-+ strcat(data, "</span>&nbsp;");
-+ }
-+ buf_ptr += (++tsl);
-+ }
-+ if (strncmp(buf_ptr, "--- ", 4) == 0) { /* we don't really need this string I think */
-+ continue;
-+ }
-+
-+ bool IsElseClass = false;
-+ if (strncmp(buf_ptr, "Action: ", 8) == 0) { /* command: /me */
-+ str_write(file, "%s", data);
-+ buf_ptr += 7;
-+ str_write(file, "<span class=\"action\">&nbsp;***");
-+ } else { /* nick */
-+ char *p = strstr(buf_ptr, "> ");
-+ if ((p != NULL) && (strncmp(buf_ptr, "<", 1) == 0)) {
-+ str_write(file, "%s", data);
-+ buf_ptr++;
-+ data[0] = '\0';
-+ strncat(data, buf_ptr, p - buf_ptr);
-+ str_write(file, "<span class=\"nick\">&lt;%s&gt;</span><span class=\"text\">&nbsp;", data);
-+ buf_ptr += (p - buf_ptr + 1);
-+ } else {
-+ IsElseClass = true;
-+ if (strstr(buf_ptr, " joined ") != NULL) {
-+ if (dont_print_join != 0) {continue; }
-+ str_write(file, "%s", data);
-+ str_write(file, "<span class=\"else_j\">&nbsp;");
-+ } else if (strstr(buf_ptr, " left irc: ") != NULL) {
-+ if (dont_print_left != 0) {continue; }
-+ str_write(file, "%s", data);
-+ str_write(file, "<span class=\"else_li\">&nbsp;");
-+ } else if (strstr(buf_ptr, " left ") != NULL) {
-+ if (dont_print_left != 0) {continue; }
-+ str_write(file, "%s", data);
-+ str_write(file, "<span class=\"else_l\">&nbsp;");
-+ } else if (strstr(buf_ptr, "Nick change: ") != NULL) {
-+ if (dont_print_nickchange != 0) {continue; }
-+ str_write(file, "%s", data);
-+ str_write(file, "<span class=\"else_n\">&nbsp;");
-+ } else if (strstr(buf_ptr, ": mode change '") != NULL) {
-+ if (dont_print_modechange != 0) {continue; }
-+ str_write(file, "%s", data);
-+ str_write(file, "<span class=\"else_m\">&nbsp;");
-+ } else if (strstr(buf_ptr, " kicked from ") != NULL) {
-+ if (dont_print_kick != 0) {continue; }
-+ str_write(file, "%s", data);
-+ str_write(file, "<span class=\"else_k\">&nbsp;");
-+ } else {
-+ if (dont_print_else != 0) {continue; }
-+ str_write(file, "%s", data);
-+ str_write(file, "<span class=\"else\">&nbsp;");
-+ }
-+ }
-+ }
-+
-+ lines_count--;
-+
-+ char *realloc_buf = NULL;
-+ replace_chars(buf_ptr, &realloc_buf);
-+ // We have special chars that we replaced. Now point buf_ptr to the realloc_buf,
-+ // strip_codes() will now work not with 'buffer' but with 'realloc_buf'
-+ if (realloc_buf != NULL) {
-+ buf_ptr = realloc_buf;
-+ }
-+
-+ l2hnode_t *tree = NULL;
-+ strip_codes(buf_ptr, &tree);
-+ l2hnode_t *ptree, *qtree; ptree = qtree = tree;
-+
-+ data[0] = '\0';
-+ int last_tag = 0;
-+ while (tree != NULL) {
-+ if (tree->node_so != last_tag) {
-+ data[0] = '\0';
-+ strncat(data, buf_ptr + last_tag, tree->node_so - last_tag); last_tag = tree->node_so;
-+ str_write(file, "%s", data);
-+ }
-+
-+ switch (tree->node_type) {
-+ case NODE_MIRCCOLOR:
-+ {
-+ if (tree->node_close) {
-+ str_write(file, "</span>");
-+ }
-+ if (tree->node_data != NULL) {
-+ str_write(file, "<span class=\"%s\">", tree->node_data);
-+ }
-+ }
-+ break;
-+ case NODE_FONTSTYLE:
-+ {
-+ if (tree->node_close) {
-+ str_write(file, "</span>");
-+ } else {
-+ str_write(file, "<span style=\"%s\">", tree->node_data);
-+ }
-+ }
-+ break;
-+ case NODE_EMAIL:
-+ {
-+ if (!IsElseClass) { //Don't print emails on join/left, bans etc. Because client mask is look like email.
-+ if (tree->node_close) {
-+ str_write(file, "</a>");
-+ } else {
-+ str_write(file, "<a href=\"mailto:%s\">", tree->node_data);
-+ }
-+ }
-+ }
-+ break;
-+ case NODE_URI:
-+ {
-+ if (tree->node_close) {
-+ str_write(file, "</a>");
-+ } else {
-+ str_write(file, "<a href=\"%s\">", tree->node_data);
-+ }
-+ }
-+ break;
-+ case NODE_SPECIAL:
-+ {
-+ str_write(file, "%s", tree->node_data);
-+ }
-+ break;
-+ }
-+
-+ tree = tree->next;
-+ }
-+ str_write(file, "%s</span>", buf_ptr + last_tag);
-+
-+ str_write(file, "</div>\n");
-+
-+ // clear memory
-+ while (qtree != NULL) {
-+ qtree = ptree->next;
-+ if (ptree->node_data != NULL) { nfree(ptree->node_data); }
-+ nfree(ptree);
-+ ptree = qtree;
-+ }
-+ if (realloc_buf != NULL) {
-+ nfree(realloc_buf);
-+ }
-+ }
-+ fclose(file);
-+ }
-+ fclose(src_file);
-+
-+ /*
-+ * Now, if log is splited to some number of lines (lines_per_page) we write links to other pages, and also final close tags for html files.
-+ */
-+ int i, j;
-+ for (i = 1; i <= pages_count; i++) {
-+ egg_snprintf(filename, filenamelength, "%s%s%s%d%02d%02d_pg%d.html", ch->outputpath, SEP, ch->logspagename, year, month, day, i);
-+ if ((file = openfile(filename, "ab", false)) == NULL) {
-+ putlog(LOG_MISC, "*", "logs2html: Error occured on converting %d page of file \"%s\"!", i, filename);
-+ nfree(filename);
-+ return;
-+ }
-+
-+ str_write(file, "\t\t</div>\n");
-+ if (pages_count > 1) {
-+ str_write(file, "\t\t<div id=\"navbottom\">");
-+ if (i == 1) {
-+ str_write(file, LOGS2HTML_BACK);
-+ } else {
-+ egg_snprintf(filename, filenamelength, "%s%d%02d%02d_pg%d.html", ch->logspagename, year, month, day, i-1);
-+ str_write(file, "<span>&larr;</span>&nbsp;<a href=\"%s\">%s</a>", filename, LOGS2HTML_BACK);
-+ }
-+ str_write(file, "&nbsp;");
-+ if (i == pages_count) {
-+ str_write(file, LOGS2HTML_NEXT);
-+ } else {
-+ egg_snprintf(filename, filenamelength, "%s%d%02d%02d_pg%d.html", ch->logspagename, year, month, day, i+1);
-+ str_write(file, "<a href=\"%s\">%s</a>&nbsp;<span>&rarr;</span>", filename, LOGS2HTML_NEXT);
-+ }
-+ str_write(file, "<br />");
-+ for (j = 1; j <= pages_count; j++) {
-+ egg_snprintf(filename, filenamelength, "%s%d%02d%02d_pg%d.html", ch->logspagename, year, month, day, j);
-+ if (j != i) {
-+ str_write(file, "<span><a href=\"%s\">%d</a></span>", filename, j);
-+ } else {
-+ str_write(file, "<span id=\"navbottom_currentpg\">%d</span>", j);
-+ }
-+ }
-+ str_write(file, "</div>\n");
-+ }
-+ str_write(file, "\t\t<div id=\"totoplink\"><a href=\"#top\">%s</a></div>\n", LOGS2HTML_UP);
-+
-+ str_write(file, "\t\t<br class=\"clearfloat\" />\n");
-+ str_write(file, "\t\t<div id=\"footer\">\n<p>Generated by logs2html module for eggdrop v.%d.%d.%d%s<br />", MODULE_MAJOR, MODULE_MINOR, MODULE_SUBMINOR, MODULE_BUILD);
-+ str_write(file, "Find latest version at <a href=\"http://sourceforge.net/projects/logs2html\">http://sourceforge.net/projects/logs2html</a> or <a href=\"http://www.halftone.ru/projects\">http://www.halftone.ru</a><br />");
-+ str_write(file, "Fork at <a href=\"http://github.com/ac100-ru/logs2html.mod\">http://github.com/ac100-ru/logs2html.mod</a></p>\n\t\t</div>\n");
-+
-+ if (strlen(logspage_bottom_filename) > 0) {
-+ str_write(file, "\t\t<div id=\"lp_bottom\">\n");
-+ writefromexfile(file, logspage_bottom_filename);
-+ str_write(file, "\n\t\t</div>\n");
-+ }
-+
-+ str_write(file, "\t</div>\n");
-+ str_write(file, "</body>\n");
-+ str_write(file, "</html>\n");
-+
-+ fclose(file);
-+ }
-+
-+ nfree(filename);
-+
-+ return;
-+} /* convertfile() */
-+/****************************************************************************/
-+
-+
-+/****************************************************************************/
-+static void strip_codes(char *buf_ptr_copy, l2hnode_t **string_tree) {
-+ /*
-+ * void strip_mirc_codes(int flags, char *text)
-+ * copied from src/dcc.c and modified
-+ *
-+ * Copyright (C) 1997 Robey Pointer
-+ * Copyright (C) 1999 - 2006 Eggheads Development Team
-+ */
-+ char *dd = buf_ptr_copy;
-+ char *start = buf_ptr_copy;
-+ bool t_0x02_opened, t_0x03_opened, t_0x07_opened, t_0x1f_opened;
-+ t_0x02_opened = t_0x03_opened = t_0x07_opened = t_0x1f_opened = false;
-+
-+ l2hnode_t *temp_tree = NULL;
-+ l2hnode_t *newnode;
-+
-+ char fg_color[3], bg_color[3];
-+ bg_color[0] = '\0';
-+ while (*buf_ptr_copy) {
-+ switch (*buf_ptr_copy) {
-+ case 0xf: /* close all open tags */
-+ {
-+ buf_ptr_copy++;
-+ if (t_0x02_opened) {
-+ newnode = nmalloc(sizeof(struct l2hnode_struct));
-+ newnode->next = NULL;
-+ newnode->node_type = NODE_FONTSTYLE;
-+ newnode->node_so = dd - start;
-+ newnode->node_close = true;
-+ newnode->node_data = NULL;
-+ node_append(&temp_tree, newnode);
-+ t_0x02_opened = false;
-+ }
-+ if (t_0x07_opened) {
-+ newnode = nmalloc(sizeof(struct l2hnode_struct));
-+ newnode->next = NULL;
-+ newnode->node_type = NODE_FONTSTYLE;
-+ newnode->node_so = dd - start;
-+ newnode->node_close = true;
-+ newnode->node_data = NULL;
-+ node_append(&temp_tree, newnode);
-+ t_0x07_opened = false;
-+ }
-+ if (t_0x1f_opened) {
-+ newnode = nmalloc(sizeof(struct l2hnode_struct));
-+ newnode->next = NULL;
-+ newnode->node_type = NODE_FONTSTYLE;
-+ newnode->node_so = dd - start;
-+ newnode->node_close = true;
-+ newnode->node_data = NULL;
-+ node_append(&temp_tree, newnode);
-+ t_0x1f_opened = false;
-+ }
-+ if (t_0x03_opened) {
-+ newnode = nmalloc(sizeof(struct l2hnode_struct));
-+ newnode->next = NULL;
-+ newnode->node_type = NODE_MIRCCOLOR;
-+ newnode->node_so = dd - start;
-+ newnode->node_data = NULL;
-+ newnode->node_close = true;
-+ node_append(&temp_tree, newnode);
-+ t_0x03_opened = false;
-+ bg_color[0] = '\0';
-+ }
-+ continue;
-+ }
-+ break;
-+ case 3: /* mIRC colors? */
-+ {
-+ buf_ptr_copy++; /* Skip over the ^C */
-+ fg_color[0] = '\0';
-+ if (egg_isdigit(*buf_ptr_copy)) { /* Is the first char a number? */
-+ fg_color[0] = *buf_ptr_copy;
-+ fg_color[1] = '\0';
-+ buf_ptr_copy ++; /* Skip over the first digit */
-+ if (egg_isdigit(*buf_ptr_copy)) { /* Is this a double digit number? */
-+ fg_color[1] = *buf_ptr_copy;
-+ fg_color[2] = '\0';
-+ buf_ptr_copy++;
-+ }
-+ // Even if we don't have background color in bg_color we have previous background, and we'll use it
-+ if (*buf_ptr_copy == ',') { /* Do we have a background color next? */
-+ buf_ptr_copy++; /* Skip over the , */
-+ if (egg_isdigit(*buf_ptr_copy)) {
-+ bg_color[0] = *buf_ptr_copy;
-+ bg_color[1] = '\0';
-+ buf_ptr_copy ++; /* Skip over the first digit */
-+ }
-+ if (egg_isdigit(*buf_ptr_copy)) { /* Is this a double digit number? */
-+ bg_color[1] = *buf_ptr_copy;
-+ bg_color[2] = '\0';
-+ buf_ptr_copy++; /* Is it a double digit? */
-+ }
-+ }
-+
-+ if ((strlen(fg_color) > 0) && ((atoi(fg_color) < 0) || (atoi(fg_color) > 15))) {
-+ fg_color[0] = '\0';
-+ }
-+ if (((strlen(bg_color) > 0) && ((atoi(bg_color) < 0) || (atoi(bg_color) > 15))) || (strlen(fg_color) == 0)) {
-+ bg_color[0] = '\0';
-+ }
-+
-+ if (strlen(fg_color) > 0) {
-+ newnode = nmalloc(sizeof(struct l2hnode_struct));
-+ newnode->next = NULL;
-+ newnode->node_type = NODE_MIRCCOLOR;
-+ newnode->node_so = dd - start;
-+ newnode->node_close = t_0x03_opened;
-+ if (strlen(bg_color) > 0) {
-+ newnode->node_data = nmalloc(6);
-+ egg_snprintf(newnode->node_data, 6, "c%02.2d%02.2d", atoi(fg_color), atoi(bg_color));
-+ } else {
-+ newnode->node_data = nmalloc(4);
-+ egg_snprintf(newnode->node_data, 4, "f%02.2d", atoi(fg_color));
-+ }
-+ node_append(&temp_tree, newnode);
-+ t_0x03_opened = true;
-+ }
-+ } else { /* Single ^C char - it was a close tag */
-+ newnode = nmalloc(sizeof(struct l2hnode_struct));
-+ newnode->next = NULL;
-+ newnode->node_type = NODE_MIRCCOLOR;
-+ newnode->node_so = dd - start;
-+ newnode->node_data = NULL;
-+ newnode->node_close = t_0x03_opened;
-+ node_append(&temp_tree, newnode);
-+ t_0x03_opened = false;
-+ bg_color[0] = '\0';
-+ }
-+ continue;
-+ }
-+ break;
-+ case 2: /* Bold text */
-+ {
-+ buf_ptr_copy++;
-+ newnode = nmalloc(sizeof(struct l2hnode_struct));
-+ newnode->next = NULL;
-+ newnode->node_type = NODE_FONTSTYLE;
-+ newnode->node_so = dd - start;
-+ newnode->node_close = t_0x02_opened;
-+ if (t_0x02_opened) {
-+ newnode->node_data = NULL;
-+ } else {
-+ newnode->node_data = nmalloc(strlen("font-weight:bold") + 1);
-+ strlcpy(newnode->node_data, "font-weight:bold", strlen("font-weight:bold") + 1);
-+ }
-+ t_0x02_opened = !t_0x02_opened;
-+ node_append(&temp_tree, newnode);
-+ continue;
-+ }
-+ break;
-+ case 7: /* Italic text */
-+ {
-+ buf_ptr_copy++;
-+ newnode = nmalloc(sizeof(struct l2hnode_struct));
-+ newnode->next = NULL;
-+ newnode->node_type = NODE_FONTSTYLE;
-+ newnode->node_so = dd - start;
-+ newnode->node_close = t_0x07_opened;
-+ if (t_0x07_opened) {
-+ newnode->node_data = NULL;
-+ } else {
-+ newnode->node_data = nmalloc(strlen("font-style:italic") + 1);
-+ strlcpy(newnode->node_data, "font-style:italic", strlen("font-style:italic") + 1);
-+ }
-+ t_0x07_opened = !t_0x07_opened;
-+ node_append(&temp_tree, newnode);
-+ continue;
-+ }
-+ break;
-+ case 0x16: /* Reverse video */
-+ {
-+ buf_ptr_copy++;
-+ continue;
-+ }
-+ break;
-+ case 0x1f: /* Underlined text */
-+ {
-+ buf_ptr_copy++;
-+ newnode = nmalloc(sizeof(struct l2hnode_struct));
-+ newnode->next = NULL;
-+ newnode->node_type = NODE_FONTSTYLE;
-+ newnode->node_so = dd - start;
-+ newnode->node_close = t_0x1f_opened;
-+ if (t_0x1f_opened) {
-+ newnode->node_data = NULL;
-+ } else {
-+ newnode->node_data = nmalloc(strlen("text-decoration:underline") + 1);
-+ strlcpy(newnode->node_data, "text-decoration:underline", strlen("text-decoration:underline") + 1);
-+ }
-+ t_0x1f_opened = !t_0x1f_opened;
-+ node_append(&temp_tree, newnode);
-+ continue;
-+ }
-+ break;
-+ case 033:
-+ {
-+ buf_ptr_copy++;
-+ if (*buf_ptr_copy == '[') {
-+ buf_ptr_copy++;
-+ while ((*buf_ptr_copy == ';') || egg_isdigit(*buf_ptr_copy)) {
-+ buf_ptr_copy++;
-+ }
-+ if (*buf_ptr_copy) {
-+ buf_ptr_copy++; /* also kill the following char */
-+ }
-+ }
-+ continue;
-+ }
-+ break;
-+ }
-+ *dd++ = *buf_ptr_copy++; /* Move on to the next char */
-+ }
-+ *dd = 0;
-+ /*
-+ * strip_mirc_codes() ends here.
-+ */
-+
-+ //At that point we have temp_tree which points to the linked list of mirc codes and special chars (bold, italic) positions.
-+ // Now close any unclose tag
-+
-+ if (t_0x02_opened) {
-+ newnode = nmalloc(sizeof(struct l2hnode_struct));
-+ newnode->next = NULL;
-+ newnode->node_type = NODE_FONTSTYLE;
-+ newnode->node_so = dd - start;
-+ newnode->node_close = true;
-+ newnode->node_data = NULL;
-+ node_append(&temp_tree, newnode);
-+ t_0x02_opened = false;
-+ }
-+ if (t_0x07_opened) {
-+ newnode = nmalloc(sizeof(struct l2hnode_struct));
-+ newnode->next = NULL;
-+ newnode->node_type = NODE_FONTSTYLE;
-+ newnode->node_so = dd - start;
-+ newnode->node_close = true;
-+ newnode->node_data = NULL;
-+ node_append(&temp_tree, newnode);
-+ t_0x07_opened = false;
-+ }
-+ if (t_0x1f_opened) {
-+ newnode = nmalloc(sizeof(struct l2hnode_struct));
-+ newnode->next = NULL;
-+ newnode->node_type = NODE_FONTSTYLE;
-+ newnode->node_so = dd - start;
-+ newnode->node_close = true;
-+ newnode->node_data = NULL;
-+ node_append(&temp_tree, newnode);
-+ t_0x1f_opened = false;
-+ }
-+ if (t_0x03_opened) {
-+ newnode = nmalloc(sizeof(struct l2hnode_struct));
-+ newnode->next = NULL;
-+ newnode->node_type = NODE_MIRCCOLOR;
-+ newnode->node_so = dd - start;
-+ newnode->node_data = NULL;
-+ newnode->node_close = true;
-+ node_append(&temp_tree, newnode);
-+ t_0x03_opened = false;
-+ bg_color[0] = '\0';
-+ }
-+
-+
-+ // rewind to the start of the string
-+ dd = start;
-+
-+ int status_uri, status_email;
-+ regmatch_t pmatch_uri, pmatch_email;
-+
-+ do {
-+ status_uri = regexec(&re_uri, dd, (size_t) 1, &pmatch_uri, 0);
-+ status_email = regexec(&re_email, dd, (size_t) 1, &pmatch_email, 0);
-+
-+ int method;
-+ if ((status_email == 0) && (status_uri == 0)) { // We have uri & email in string
-+ if (pmatch_uri.rm_so == pmatch_email.rm_so) { // I think that it never must be so, but if it is - better lets write it as simple text
-+ method = 3;
-+ } else if (pmatch_uri.rm_so > pmatch_email.rm_so) {
-+ method = 1;
-+ } else {
-+ method = 2;
-+ }
-+ } else if ((status_email == 0) && (status_uri != 0)) { // We have only email in string
-+ method = 1;
-+ } else if ((status_email != 0) && (status_uri == 0)) { // We have only uri in string
-+ method = 2;
-+ } else { // No uri or email in string, simply assign temp_tree to result
-+ method = 3;
-+ }
-+
-+ l2hnode_t *temp;
-+ if (method == 1) {
-+ while ((temp_tree != NULL) && (temp_tree->node_so < pmatch_email.rm_so + (dd - start))) {
-+ temp = temp_tree;
-+ temp_tree = temp_tree->next;
-+ temp->next = NULL;
-+ node_append(string_tree, temp);
-+ }
-+
-+ newnode = nmalloc(sizeof(struct l2hnode_struct));
-+ newnode->next = NULL;
-+ newnode->node_type = NODE_EMAIL;
-+ newnode->node_so = pmatch_email.rm_so + (dd - start);
-+ newnode->node_data = nmalloc(pmatch_email.rm_eo - pmatch_email.rm_so + 1);
-+ newnode->node_data[0] = '\0';
-+ strncat(newnode->node_data, dd + pmatch_email.rm_so, pmatch_email.rm_eo - pmatch_email.rm_so);
-+ newnode->node_close = false;
-+ node_append(string_tree, newnode);
-+
-+ while ((temp_tree != NULL) && ((temp_tree->node_so < pmatch_email.rm_eo + (dd - start)) || ((temp_tree->node_so == pmatch_email.rm_eo + (dd - start)) && (temp_tree->node_close == true)))) {
-+ temp = temp_tree;
-+ temp_tree = temp_tree->next;
-+ temp->next = NULL;
-+ node_append(string_tree, temp);
-+ }
-+
-+ newnode = nmalloc(sizeof(struct l2hnode_struct));
-+ newnode->next = NULL;
-+ newnode->node_type = NODE_EMAIL;
-+ newnode->node_so = pmatch_email.rm_eo + (dd - start);
-+ newnode->node_data = NULL;
-+ newnode->node_close = true;
-+ node_append(string_tree, newnode);
-+ dd += pmatch_email.rm_eo;
-+ continue;
-+ } else if (method == 2) {
-+ while ((temp_tree != NULL) && (temp_tree->node_so < pmatch_uri.rm_so + (dd - start))) {
-+ temp = temp_tree;
-+ temp_tree = temp_tree->next;
-+ temp->next = NULL;
-+ node_append(string_tree, temp);
-+ }
-+
-+ newnode = nmalloc(sizeof(struct l2hnode_struct));
-+ newnode->next = NULL;
-+ newnode->node_type = NODE_URI;
-+ newnode->node_so = pmatch_uri.rm_so + (dd - start);
-+ // if uri begins with protocol name - simply output our uri, else we must add protocol name to our uri
-+ if (regexec(&re_uritrunc, dd + pmatch_uri.rm_so, (size_t) 0, NULL, 0) == 0) {
-+ newnode->node_data = nmalloc(pmatch_uri.rm_eo - pmatch_uri.rm_so + 1);
-+ newnode->node_data[0] = '\0';
-+ } else {
-+ // if uri look like 'ftp.eggheads.org' we add 'ftp://' protocol, else let it be 'http://'
-+ if (strncmp(dd + pmatch_uri.rm_so, "ftp.", 4) == 0) {
-+ newnode->node_data = nmalloc(strlen("ftp://") + pmatch_uri.rm_eo - pmatch_uri.rm_so + 1);
-+ newnode->node_data[0] = '\0';
-+ strncat(newnode->node_data, "ftp://", strlen("ftp://"));
-+ } else {
-+ newnode->node_data = nmalloc(strlen("http://") + pmatch_uri.rm_eo - pmatch_uri.rm_so + 1);
-+ newnode->node_data[0] = '\0';
-+ strncat(newnode->node_data, "http://", strlen("http://"));
-+ }
-+ }
-+ strncat(newnode->node_data, dd + pmatch_uri.rm_so, pmatch_uri.rm_eo - pmatch_uri.rm_so);
-+ newnode->node_close = false;
-+ node_append(string_tree, newnode);
-+
-+ while ((temp_tree != NULL) && ((temp_tree->node_so < pmatch_uri.rm_eo + (dd - start)) || ((temp_tree->node_so == pmatch_uri.rm_eo + (dd - start)) && (temp_tree->node_close == true)))) {
-+ temp = temp_tree;
-+ temp_tree = temp_tree->next;
-+ temp->next = NULL;
-+ node_append(string_tree, temp);
-+ }
-+
-+ newnode = nmalloc(sizeof(struct l2hnode_struct));
-+ newnode->next = NULL;
-+ newnode->node_type = NODE_URI;
-+ newnode->node_so = pmatch_uri.rm_eo + (dd - start);
-+ newnode->node_data = NULL;
-+ newnode->node_close = true;
-+ node_append(string_tree, newnode);
-+ dd += pmatch_uri.rm_eo;
-+ continue;
-+ } else if (method == 3) {
-+ while (temp_tree != NULL) {
-+ temp = temp_tree;
-+ temp_tree = temp_tree->next;
-+ temp->next = NULL;
-+ node_append(string_tree, temp);
-+ }
-+ break;
-+ }
-+
-+ } while ((status_email == 0) || (status_uri == 0));
-+
-+
-+ return;
-+}
-+/****************************************************************************/
-+
-+
-+/*
-+ * int list_append(struct list_type **h, struct list_type *i)
-+ * copied from src/userent.c and modified
-+ *
-+ * Copyright (C) 1997 Robey Pointer
-+ * Copyright (C) 1999 - 2006 Eggheads Development Team
-+ */
-+static void node_append(struct l2hnode_struct **h, struct l2hnode_struct *i)
-+{
-+ for (; *h; h = &((*h)->next));
-+ *h = i;
-+ return;
-+}
-+/*
-+ * list_append() ends here.
-+ */
-+
-+
-+/****************************************************************************/
-+static void replace_chars(char *buf_ptr_copy, char **realloc_buf)
-+{
-+ // Loop through string if there are chars, which we can safely replace with their xhtml analog,
-+ // if there are - count number of bytes we need our string to grow
-+ int realloc_size = 0;
-+ char *dd = buf_ptr_copy;
-+
-+ while (*dd) {
-+ switch (*dd) {
-+ case 0x3c: /* < */
-+ {
-+ realloc_size += strlen("&lt;") - strlen("<");
-+ }
-+ break;
-+ case 0x3e: /* > */
-+ {
-+ realloc_size += strlen("&gt;") - strlen(">");
-+ }
-+ break;
-+ case 0x22: /* " */
-+ {
-+ realloc_size += strlen("&quot;") - strlen("""");
-+ }
-+ break;
-+ case 0x26: /* & */
-+ {
-+ realloc_size += strlen("&amp;") - strlen("&");
-+ }
-+ break;
-+ }
-+ dd++; /* Move on to the next char */
-+ }
-+
-+ if (realloc_size > 0) {
-+ (*realloc_buf) = nmalloc(strlen(buf_ptr_copy) + realloc_size + 1);
-+ dd = (*realloc_buf); *dd = '\0';
-+
-+ while (*buf_ptr_copy) {
-+ switch (*buf_ptr_copy) {
-+ case 0x3c: /* < */
-+ {
-+ strncat(dd, "&lt;", strlen("&lt;"));
-+ buf_ptr_copy++; dd += strlen("&lt;");
-+ continue;
-+ }
-+ break;
-+ case 0x3e: /* > */
-+ {
-+ strncat(dd, "&gt;", strlen("&gt;"));
-+ buf_ptr_copy++; dd += strlen("&gt;");
-+ continue;
-+ }
-+ break;
-+ case 0x22: /* " */
-+ {
-+ strncat(dd, "&quot;", strlen("&quot;"));
-+ buf_ptr_copy++; dd += strlen("&quot;");
-+ continue;
-+ }
-+ break;
-+ case 0x26: /* & */
-+ {
-+ strncat(dd, "&amp;", strlen("&amp;"));
-+ buf_ptr_copy++; dd += strlen("&amp;");
-+ continue;
-+ }
-+ break;
-+ }
-+ *dd++ = *buf_ptr_copy++; /* Move on to the next char */
-+ *dd = '\0'; /* for strncat(), cause string must be null terminated or we'll get buffer overflow */
-+ }
-+ *dd = 0;
-+ }
-+
-+ return;
-+}
-+/****************************************************************************/
-+
-+
-+/****************************************************************************/
-+/*
-+ * function int cmd_makemainpage(struct userrec *u, int idx, char *par)
-+ *
-+ * Input:
-+ *
-+ *
-+ *
-+ * Output:
-+ *
-+ *
-+ * Discription:
-+ *
-+ */
-+static int cmd_makemainpage(struct userrec *u, int idx, char *par) {
-+
-+ time_t start, finish;
-+ time(&start);
-+ putlog(LOG_CMDS, "*", "#%s# begin creation of index pages.", dcc[idx].nick);
-+
-+ time_t t = time(NULL);
-+ struct tm tblock = *localtime(&t);
-+
-+ l2hchan_t *p = logs2htmlchanlist;
-+ while (p != NULL) {
-+ int i;
-+
-+ start_year = MIN(MAX(start_year, 2000), tblock.tm_year + 1900);
-+
-+ for (i = start_year; i <= tblock.tm_year + 1900; i++) {
-+ dprintf(idx, " Creating index page for channel '%s' for %d year.\n", p->channame, i);
-+ makeindexpage(p, i);
-+ }
-+ p = p->next;
-+ }
-+
-+ putlog(LOG_CMDS, "*", "#%s# creation of index pages finished.", dcc[idx].nick);
-+ time(&finish);
-+ double elapsed_time = difftime(finish, start);
-+ if (elapsed_time == 0.0) {
-+ putlog(LOG_CMDS, "*", "#%s# It takes < 1 second.", dcc[idx].nick);
-+ }
-+ else {
-+ putlog(LOG_CMDS, "*", "#%s# It takes %f second%s.", dcc[idx].nick, elapsed_time, (elapsed_time != 1.0) ? "s" : "");
-+ }
-+
-+ return 0;
-+} /* cmd_makemainpage() */
-+/****************************************************************************/
-+
-+
-+/****************************************************************************/
-+/*
-+ * function int convertalllogs(struct userrec *u, int idx, char *par)
-+ *
-+ * Input:
-+ *
-+ *
-+ *
-+ * Output:
-+ *
-+ *
-+ * Discription:
-+ *
-+ */
-+static int cmd_convertalllogs(struct userrec *u, int idx, char *par) {
-+
-+ return cmd_convertlogs(u, idx, "all");
-+} /* convertalllogs() */
-+/****************************************************************************/
-+
-+
-+/****************************************************************************/
-+static int cmd_convertlogs(struct userrec *u, int idx, char *par) {
-+
-+ time_t start, finish;
-+ time(&start);
-+ putlog(LOG_CMDS, "*", "#%s# begin creation of logfiles.", dcc[idx].nick);
-+
-+ time_t t = time(NULL);
-+ struct tm tblock = *localtime(&t);
-+
-+ l2hchan_t *p = logs2htmlchanlist;
-+
-+ if (!par[0]) {
-+
-+ //no parameter. Convert log for all channels for current day.
-+ while (p != NULL) {
-+ dprintf(idx, " Converting log for channel '%s' for current day.\n", p->channame);
-+ convertfile(p, tblock.tm_year + 1900, tblock.tm_mon + 1, tblock.tm_mday);
-+ dprintf(idx, " Creating index page for channel '%s' for %d year.\n", p->channame, tblock.tm_year + 1900);
-+ makeindexpage(p, tblock.tm_year + 1900);
-+ p = p->next;
-+ }
-+
-+ } else {
-+
-+ int i, j, k;
-+ start_year = MIN(MAX(start_year, 2000), tblock.tm_year + 1900);
-+ char *part;
-+
-+ part = newsplit(&par);
-+ if (!egg_strncasecmp(part, "all", 3)) { // "all". Convert logs for all channels for all years.
-+
-+ while (p != NULL) {
-+ for (i = start_year; i <= tblock.tm_year + 1900; i++) {
-+ dprintf(idx, " Creating logs for channel '%s' for %d year.\n", p->channame, i);
-+ for (j = 0; j < 12; j++) {
-+ for (k = 1; k <= DAYS_IN_MONTH(i, j); k++) {
-+ convertfile(p, i, j + 1, k);
-+ }
-+ }
-+ dprintf(idx, " Creating index page for channel '%s' for %d year.\n", p->channame, i);
-+ makeindexpage(p, i);
-+ }
-+ p = p->next;
-+ }
-+ } else { // Check for year, month, day
-+
-+ int year, month, day;
-+ year = atoi(part);
-+ if ((year < start_year) || (year > tblock.tm_year + 1900)) { // Check if parameter is valid year
-+ dprintf(idx, " Invalid parameter. 'year' must be between %d and %d.\n", start_year, tblock.tm_year + 1900);
-+ return 1;
-+ }
-+ part = newsplit(&par);
-+ if (!part[0]) { // Is there second parameter?
-+
-+ while (p != NULL) {
-+ dprintf(idx, " Creating logs for channel '%s' for %d year.\n", p->channame, year);
-+ for (j = 0; j < 12; j++) {
-+ for (k = 1; k <= DAYS_IN_MONTH(year, j); k++) {
-+ convertfile(p, year, j + 1, k);
-+ }
-+ }
-+ dprintf(idx, " Creating index page for channel '%s' for %d year.\n", p->channame, year);
-+ makeindexpage(p, year);
-+ p = p->next;
-+ }
-+
-+ } else { // No second parameter. We have only year
-+
-+ month = atoi(part);
-+ if ((month < 1) || (month > 12)) { // Check if parameter is valid month
-+ dprintf(idx, " Invalid parameter. 'month' must be between %d and %d.\n", 1, 12);
-+ return 1;
-+ }
-+ part = newsplit(&par);
-+ if (!part[0]) { // Is there third parameter?
-+
-+ while (p != NULL) {
-+ dprintf(idx, " Creating logs for channel '%s' for %d year, for %d month.\n", p->channame, year, month);
-+ for (k = 1; k <= DAYS_IN_MONTH(year, month - 1); k++) {
-+ convertfile(p, year, month, k);
-+ }
-+ dprintf(idx, " Creating index page for channel '%s' for %d year.\n", p->channame, year);
-+ makeindexpage(p, year);
-+ p = p->next;
-+ }
-+
-+ } else { // No third parameter, we have year and month
-+
-+ day = atoi(part);
-+ if ((day < 1) || (day > DAYS_IN_MONTH(year, month - 1))) { // Check if parameter is valid day
-+ dprintf(idx, " Invalid parameter. 'day' must be between %d and %d.\n", 1, DAYS_IN_MONTH(year, month - 1));
-+ return 1;
-+ }
-+
-+ while (p != NULL) {
-+ dprintf(idx, " Creating log for channel '%s' for %d year, for %d month, for %d day.\n", p->channame, year, month, day);
-+ convertfile(p, year, month, day);
-+ dprintf(idx, " Creating index page for channel '%s' for %d year.\n", p->channame, year);
-+ makeindexpage(p, year);
-+ p = p->next;
-+ }
-+
-+ }
-+
-+ }
-+ }
-+
-+ }
-+
-+ putlog(LOG_CMDS, "*", "#%s# creation of logfiles finished.", dcc[idx].nick);
-+ time(&finish);
-+ double elapsed_time = difftime(finish, start);
-+ if (elapsed_time == 0.0) {
-+ putlog(LOG_CMDS, "*", "#%s# It takes < 1 second.", dcc[idx].nick);
-+ }
-+ else {
-+ putlog(LOG_CMDS, "*", "#%s# It takes %f second%s.", dcc[idx].nick, elapsed_time, (elapsed_time != 1.0) ? "s" : "");
-+ }
-+ return 0;
-+} /* convertlogs() */
-+/****************************************************************************/
-+
-+
-+/****************************************************************************/
-+static void initialize(void)
-+{
-+ strlcpy(month_names[0], LOGS2HTML_JANUARY, MAX_MONTH_LENGTH);
-+ strlcpy(month_names[1], LOGS2HTML_FEBRIARY, MAX_MONTH_LENGTH);
-+ strlcpy(month_names[2], LOGS2HTML_MARCH, MAX_MONTH_LENGTH);
-+ strlcpy(month_names[3], LOGS2HTML_APRIL, MAX_MONTH_LENGTH);
-+ strlcpy(month_names[4], LOGS2HTML_MAY, MAX_MONTH_LENGTH);
-+ strlcpy(month_names[5], LOGS2HTML_JUNE, MAX_MONTH_LENGTH);
-+ strlcpy(month_names[6], LOGS2HTML_JULY, MAX_MONTH_LENGTH);
-+ strlcpy(month_names[7], LOGS2HTML_AUGUST, MAX_MONTH_LENGTH);
-+ strlcpy(month_names[8], LOGS2HTML_SEPTEMBER, MAX_MONTH_LENGTH);
-+ strlcpy(month_names[9], LOGS2HTML_OCTOBER, MAX_MONTH_LENGTH);
-+ strlcpy(month_names[10],LOGS2HTML_NOVEMBER, MAX_MONTH_LENGTH);
-+ strlcpy(month_names[11],LOGS2HTML_DECEMBER, MAX_MONTH_LENGTH);
-+ strlcpy(days_names[0], LOGS2HTML_MONDAY, MAX_DAY_LENGTH);
-+ strlcpy(days_names[1], LOGS2HTML_TUESDAY, MAX_DAY_LENGTH);
-+ strlcpy(days_names[2], LOGS2HTML_WEDNESDAY, MAX_DAY_LENGTH);
-+ strlcpy(days_names[3], LOGS2HTML_THURSDAY, MAX_DAY_LENGTH);
-+ strlcpy(days_names[4], LOGS2HTML_FRIDAY, MAX_DAY_LENGTH);
-+ strlcpy(days_names[5], LOGS2HTML_SATURDAY, MAX_DAY_LENGTH);
-+ strlcpy(days_names[6], LOGS2HTML_SUNDAY, MAX_DAY_LENGTH);
-+
-+ // Precompile our regular expressions
-+ if (regcomp(&re_uri, "((file|gopher|news|nntp|telnet|http|ftp|https|ftps|sftp)://|www\\.|ftp\\.)+(([a-zA-Z0-9\\._-]+\\.[a-zA-Z]{2,6})|([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}))(/(([a-zA-Z0-9%_#:\\./=?-]|\\&amp;)*([a-zA-Z0-9%_#:\\/=?-]|\\&amp;))*)?", REG_EXTENDED|REG_ICASE) != 0) {
-+ putlog(LOG_CMDS, "*", "logs2html: Error while making regular expression for uri.");
-+ }
-+ if (regcomp(&re_uritrunc, "^((file|gopher|news|nntp|telnet|http|ftp|https|ftps|sftp)://){1}", REG_EXTENDED|REG_ICASE|REG_NOSUB) != 0) {
-+ putlog(LOG_CMDS, "*", "logs2html: Error while making regular expression for truncate uri.");
-+ }
-+ if (regcomp(&re_email, "([a-zA-Z]([a-zA-Z0-9_\\-\\.]*[a-zA-Z0-9])*)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)", REG_EXTENDED|REG_ICASE) != 0) {
-+ putlog(LOG_CMDS, "*", "logs2html: Error while making regular expression for email.");
-+ }
-+
-+ return;
-+}
-+/****************************************************************************/
-+
-+
-+/****************************************************************************/
-+static void finalize(void)
-+{
-+ l2hchan_t *p, *q;
-+
-+ p = q = logs2htmlchanlist;
-+ while (q != NULL) {
-+ q = p->next;
-+ if (p->channame != NULL) nfree(p->channame);
-+ if (p->inputpath != NULL) nfree(p->inputpath);
-+ if (p->outputpath != NULL) nfree(p->outputpath);
-+ if (p->mainpagename != NULL) nfree(p->mainpagename);
-+ if (p->mainpagetitle != NULL) nfree(p->mainpagetitle);
-+ if (p->logspagename != NULL) nfree(p->logspagename);
-+ if (p->logspagetitle != NULL) nfree(p->logspagetitle);
-+ nfree(p);
-+ p = q;
-+ }
-+ logs2htmlchanlist = p = q = NULL;
-+
-+ regfree(&re_email);
-+ regfree(&re_uritrunc);
-+ regfree(&re_uri);
-+
-+ return;
-+}
-+/****************************************************************************/
-+
-+
-+/****************************************************************************/
-+static void logs2html_hook_5minutely(void)
-+{
-+ time_t t = time(NULL);
-+ struct tm tblock = *localtime(&t);
-+ tblock.tm_hour = 0;
-+ tblock.tm_min = 0;
-+ tblock.tm_sec = 1;
-+
-+ l2hchan_t *p = logs2htmlchanlist;
-+ while (p != NULL) {
-+ convertfile(p, tblock.tm_year + 1900, tblock.tm_mon + 1, tblock.tm_mday);
-+ makeindexpage(p, tblock.tm_year + 1900);
-+ p = p->next;
-+ }
-+
-+ return;
-+}
-+/****************************************************************************/
-+
-+
-+/****************************************************************************/
-+static void logs2html_hook_hourly(void)
-+{
-+ time_t t = time(NULL);
-+
-+ struct tm tnow = *localtime(&t);
-+
-+ t -= (time_t)(60);
-+
-+ struct tm tblock = *localtime(&t);
-+ tblock.tm_hour = 0;
-+ tblock.tm_min = 0;
-+ tblock.tm_sec = 1;
-+
-+ //Let's convert log for previous day, because last 5 minutes of that log was not converted
-+ //by logs2html_hook_5minutely(void) procedure.
-+ if (tnow.tm_mday != tblock.tm_mday) {
-+ l2hchan_t *p = logs2htmlchanlist;
-+ while (p != NULL) {
-+ convertfile(p, tblock.tm_year + 1900, tblock.tm_mon + 1, tblock.tm_mday);
-+ makeindexpage(p, tblock.tm_year + 1900);
-+ p = p->next;
-+ }
-+ }
-+
-+ //Let's convert logs for previous year, because name of the index page change from prefix.html to prefixPASTYEAR.html
-+ if (tnow.tm_year != tblock.tm_year) {
-+ int j, k;
-+
-+ l2hchan_t *p = logs2htmlchanlist;
-+ while (p != NULL) {
-+ for (j = 0; j < 12; j++) {
-+ for (k = 1; k <= DAYS_IN_MONTH(tblock.tm_year + 1900, j); k++) {
-+ convertfile(p, tblock.tm_year + 1900, j + 1, k);
-+ }
-+ }
-+ makeindexpage(p, tblock.tm_year + 1900);
-+ p = p->next;
-+ }
-+ }
-+
-+ return;
-+}
-+/****************************************************************************/
-+
-+
-+/****************************************************************************/
-+static void logs2html_hook_pre_rehash(void)
-+{
-+ finalize();
-+
-+ return;
-+}
-+/****************************************************************************/
-+
-+
-+/****************************************************************************/
-+static void logs2html_hook_rehash(void)
-+{
-+ initialize();
-+
-+ return;
-+}
-+/****************************************************************************/
-+
-+
-+static void event_addlogs2htmlchan(void)
-+{
-+ check_tcl_event("addlogs2htmlchan");
-+
-+ return;
-+}
-+
-+
-+/*
-+ * Calculate the memory we keep allocated.
-+ */
-+static int logs2html_expmem()
-+{
-+ int size = 0;
-+ l2hchan_t *p = logs2htmlchanlist;
-+ while (p != NULL) {
-+ size += sizeof(struct l2hchan_struct);
-+ if (p->channame != NULL) size += strlen(p->channame) + 1;
-+ if (p->inputpath != NULL) size += strlen(p->inputpath) + 1;
-+ if (p->outputpath != NULL) size += strlen(p->outputpath) + 1;
-+ if (p->mainpagename != NULL) size += strlen(p->mainpagename) + 1;
-+ if (p->mainpagetitle != NULL) size += strlen(p->mainpagetitle) + 1;
-+ if (p->logspagename != NULL) size += strlen(p->logspagename) + 1;
-+ if (p->logspagetitle != NULL) size += strlen(p->logspagetitle) + 1;
-+ p = p->next;
-+ }
-+
-+ size += MAX_MONTH_LENGTH * 12;
-+ size += MAX_DAY_LENGTH * 7;
-+
-+ return size;
-+}
-+
-+/* A report on the module status.
-+ *
-+ * details is either 0 or 1:
-+ * 0 - `.status'
-+ * 1 - `.status all' or `.module logs2html'
-+ */
-+static void logs2html_report(int idx, int details)
-+{
-+ if (logs2htmlchanlist != NULL) {
-+ l2hchan_t *p = logs2htmlchanlist;
-+
-+ dprintf(idx, " logs2html channels list:\n");
-+ while (p != NULL) {
-+ dprintf(idx, " Channel: '%s'.\n", p->channame);
-+ dprintf(idx, " path to logfiles: '%s'\n", p->inputpath);
-+ dprintf(idx, " path to generated html pages: '%s'.\n", p->outputpath);
-+ p = p->next;
-+ }
-+ }
-+
-+ if (details) {
-+ int size = logs2html_expmem();
-+ dprintf(idx, " Using %d byte%s of memory\n", size, (size != 1) ? "s" : "");
-+ }
-+
-+ return;
-+}
-+
-+static cmd_t mydcc[] = {
-+ {"convertalllogs", "n", cmd_convertalllogs, NULL},
-+ {"makemainpage", "n", cmd_makemainpage, NULL},
-+ {"makeindexpage", "n", cmd_makemainpage, NULL},
-+ {"convertlogs", "n", cmd_convertlogs, NULL},
-+ {NULL, NULL, NULL, NULL} /* Mark end. */
-+};
-+
-+static tcl_strings my_tcl_strings[] = {
-+ {"logfile-suffix", logfile_suffix, 20, 0},
-+ {"mainpage-top", mainpage_top_filename, 256, 0},
-+ {"mainpage-bottom", mainpage_bottom_filename, 256, 0},
-+ {"logspage-top", logspage_top_filename, 256, 0},
-+ {"logspage-bottom", logspage_bottom_filename, 256, 0},
-+ {"user-style", userstyle_filename, 256, 0},
-+ {"insert-encoding-str", encoding_string, 30, 0},
-+ {NULL, NULL, 0, 0} /* Mark end. */
-+};
-+
-+static tcl_ints my_tcl_ints[] = {
-+ {"col-count", &month_cols_count, 0},
-+ {"lines-per-page", &lines_per_page, 0},
-+ {"start-year", &start_year, 0},
-+ {"month-block-orientation", &month_block_orientation, 0},
-+ {"dont-print-time", &dont_print_time, 0},
-+ {"dont-print-join", &dont_print_join, 0},
-+ {"dont-print-left", &dont_print_left, 0},
-+ {"dont-print-modechange", &dont_print_modechange, 0},
-+ {"dont-print-nickchange", &dont_print_nickchange, 0},
-+ {"dont-print-kick", &dont_print_kick, 0},
-+ {"dont-print-else", &dont_print_else, 0},
-+ {"log-time", &shtime, 1},
-+ {"keep-all-logs", &keep_all_logs, 1},
-+ {NULL, NULL, 0} /* Mark end. */
-+};
-+
-+
-+static char *logs2html_close()
-+{
-+
-+ del_hook(HOOK_LOADED, (Function) event_addlogs2htmlchan);
-+ del_hook(HOOK_REHASH, (Function) event_addlogs2htmlchan);
-+ del_hook(HOOK_REHASH, (Function) logs2html_hook_rehash);
-+ del_hook(HOOK_PRE_REHASH, (Function) logs2html_hook_pre_rehash);
-+ del_hook(HOOK_HOURLY, (Function) logs2html_hook_hourly);
-+ del_hook(HOOK_5MINUTELY, (Function) logs2html_hook_5minutely);
-+
-+ finalize();
-+
-+ rem_help_reference(MODULE_NAME".help");
-+ del_lang_section(MODULE_NAME);
-+ rem_builtins(H_dcc, mydcc);
-+ rem_tcl_commands(my_tcl_cmds);
-+ rem_tcl_strings(my_tcl_strings);
-+ rem_tcl_ints(my_tcl_ints);
-+
-+ module_undepend(MODULE_NAME);
-+
-+ return NULL;
-+}
-+
-+EXPORT_SCOPE char *logs2html_start();
-+
-+static Function logs2html_table[] = {
-+ (Function) logs2html_start,
-+ (Function) logs2html_close,
-+ (Function) logs2html_expmem,
-+ (Function) logs2html_report,
-+};
-+
-+char *logs2html_start(Function *global_funcs)
-+{
-+ global = global_funcs;
-+
-+ /* Register the module. */
-+ module_register(MODULE_NAME, logs2html_table, MODULE_MAJOR, MODULE_MINOR);
-+
-+ if (!module_depend(MODULE_NAME, "eggdrop", 108, 0)) {
-+ module_undepend(MODULE_NAME);
-+ return "This module requires Eggdrop 1.6.18 or later.";
-+ }
-+
-+ add_tcl_ints(my_tcl_ints);
-+ add_tcl_strings(my_tcl_strings);
-+ add_tcl_commands(my_tcl_cmds);
-+ add_builtins(H_dcc, mydcc);
-+ add_lang_section(MODULE_NAME);
-+ add_help_reference(MODULE_NAME".help");
-+
-+ initialize();
-+
-+ add_hook(HOOK_5MINUTELY, (Function) logs2html_hook_5minutely);
-+ add_hook(HOOK_HOURLY, (Function) logs2html_hook_hourly);
-+ add_hook(HOOK_PRE_REHASH, (Function) logs2html_hook_pre_rehash);
-+ add_hook(HOOK_REHASH, (Function) logs2html_hook_rehash);
-+ add_hook(HOOK_REHASH, (Function) event_addlogs2htmlchan);
-+ add_hook(HOOK_LOADED, (Function) event_addlogs2htmlchan);
-+
-+ return NULL;
-+}
-+
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/logs2html.conf src/eggdrop-1.8.4/src/mod/logs2html.mod/logs2html.conf
---- ./src/mod/logs2html.mod/logs2html.conf 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/logs2html.mod/logs2html.conf 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1,105 @@
-+######
-+#####
-+### General Settings
-+#####
-+######
-+
-+# number of rows the month'll put out
-+set col-count 3
-+
-+
-+# set how many lines there'll be on the one page of created html page. If it
-+# set to 0 then all lines will be in one html page
-+set lines-per-page 200
-+
-+
-+# Uncomment line if you want specify file with your own css settings for
-+# generated pages
-+#set user-style user.css
-+
-+
-+# This setting allows you to insert meta tag
-+# <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=..."> in your
-+# html files. You can comment next line, that will mean that this tag'll not
-+# be insert in the resulting page.
-+set insert-encoding-str "windows-1251"
-+
-+
-+# The start year, from which logs will be converted. The minimum is 2000 year.
-+# (I think that should be enought)
-+set start-year 2003
-+
-+
-+# set it to 1 not to print time in the html page, even if eggdrop's logfile has it
-+set dont-print-time 0
-+
-+
-+# set it to 1 not to print join messages in the html page
-+set dont-print-join 0
-+
-+
-+# set it to 1 not to print left messages in the html page
-+set dont-print-left 0
-+
-+
-+# set it to 1 not to print mode changed messages in the html page
-+set dont-print-modechange 0
-+
-+
-+# set it to 1 not to print nick change messages in the html page
-+set dont-print-nickchange 0
-+
-+
-+# set it to 1 not to print kick messages in the html page
-+set dont-print-kick 0
-+
-+
-+# set it to 1 not to print other irc messages in the html page
-+set dont-print-else 0
-+
-+
-+# Orientation of the month blocks on index page. 0 - vertical, 1 - horizontal
-+# Chose one you like more.
-+set month-block-orientation 0
-+
-+
-+# Here you can specify path to files which content will be put to converted
-+# logfile (or mainpage). For example you can add code for your counter
-+# or banner. Uncomment the line you need and put there filename with path,
-+# for example: set mainpage-top "mycounter.tpl"
-+# Note: the content of specified file puts to the resulting file "as is",
-+# without any transformation
-+#set mainpage-top ""
-+#set mainpage-bottom ""
-+#set logspage-top ""
-+#set logspage-bottom ""
-+
-+
-+# now load the module
-+loadmodule logs2html
-+
-+
-+# Add your channels here. The format is:
-+# addlogs2htmlchan channel output-path main-page-name main-page-title logs-page-prefix logs-page-title
-+# channel - your channel which logs you want to convert
-+# output-path - your ftp path, where converted files will be put
-+# (don't forget to check settings to be sure bot have
-+# permision write to the path you specify)
-+# main-page-name - name of your mainpage (i.e. page with calendar) for
-+# this channel. The "Main page" for current year name will be
-+# "main-page-name.html", for the past years it will look like
-+# "main-page-nameYY.html". For example if we set main-page-name
-+# to "index", then main page for current year'll be "index.html",
-+# and for 2008 year it will look like "index2008.html"
-+# main-page-title - your mainpage title for this channel (will be shown
-+# as the caption of the web page in your browser and as
-+# the title of calendar)
-+# logs-page-prefix - your logs page name (prefix) for this channel.
-+# Resulting name will be "logs-page-prefixYYmmdd_pgN.html".
-+# For example if we set "logs-page-prefix" to "mychan", then the
-+# first page of logfile for the 1st january 2009 will look
-+# like "mychan20090101_pg1.html"
-+# logs-page-title - your logs page title for this channel (will be shown
-+# as the caption of the web page in your browser)
-+# Example:
-+# addlogs2htmlchan #MyChannel "/home/www/logs" index "Logs of MyChannel" mychan "Log of MyChannel"
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/logs2html.h src/eggdrop-1.8.4/src/mod/logs2html.mod/logs2html.h
---- ./src/mod/logs2html.mod/logs2html.h 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/logs2html.mod/logs2html.h 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1,92 @@
-+/*
-+ * logs2html.h -- part of logs2html.mod
-+ *
-+ * Written by Fedotov Alexander aka Gray_Angel aka Shmupsik <shurikvz@mail.ru>
-+ *
-+ * 2004-2009 year
-+ */
-+/*
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+#ifndef _EGG_MOD_LOGS2HTML_LOGS2HTML_H
-+#define _EGG_MOD_LOGS2HTML_LOGS2HTML_H
-+
-+#include "src/lang.h"
-+
-+#define SEP "/"
-+
-+#ifndef MAX
-+#define MAX(a,b) \
-+ ({ typeof (a) _a = (a); \
-+ typeof (b) _b = (b); \
-+ _a > _b ? _a : _b; })
-+#endif
-+
-+#ifndef MIN
-+#define MIN(a,b) \
-+ ({ typeof (a) _a = (a); \
-+ typeof (b) _b = (b); \
-+ _a < _b ? _a : _b; })
-+#endif
-+
-+
-+typedef struct l2hchan_struct {
-+ struct l2hchan_struct *next;
-+ char *channame; /* Имя канала для которого конвертировать логи */
-+ char *inputpath; /* Имя (префикс) данного канала (вычисляется из выражения logfile в конфиге бота) */
-+ char *outputpath; /* Куда выводить конвертированные логи */
-+ char *mainpagename; /* Имя главной страницы */
-+ char *mainpagetitle; /* Заголовок на главной странице */
-+ char *logspagename; /* Имя (префикс) страницы переконвертированного логфайла */
-+ char *logspagetitle; /* Заголовок страницы логфайла */
-+} l2hchan_t;
-+
-+typedef enum {NODE_MIRCCOLOR, NODE_FONTSTYLE, NODE_EMAIL, NODE_URI, NODE_SPECIAL} l2h_node;
-+
-+typedef struct l2hnode_struct {
-+ struct l2hnode_struct *next;
-+ l2h_node node_type;
-+ int node_so; // Start of special char
-+ char *node_data; // Class fo mirc colors
-+ bool node_close;
-+} l2hnode_t;
-+
-+/*
-+ * For language files. Lets define max number of chars in month and days of week names
-+ */
-+#define MAX_MONTH_LENGTH 15
-+#define MAX_DAY_LENGTH 6
-+
-+static int days_in_month[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
-+
-+#define DAYS_IN_MONTH(year, month) (days_in_month[month] + (((month == 1) && ((year) % 4 == 0 && ((year) % 100 != 0 || (year) % 400 == 0))) ? 1 : 0))
-+
-+
-+static int cmd_convertalllogs(struct userrec *u, int idx, char *par);
-+static int cmd_makemainpage(struct userrec *u, int idx, char *par);
-+static int cmd_convertlogs(struct userrec *u, int idx, char *par);
-+static int getdayofweek(int year, int month, int day);
-+static FILE *openfile(char *newfilename, const char *mode, bool silent);
-+static void str_write(FILE *file, char *fstr, ... );
-+static void writefromexfile(FILE *dst_file, char *exfilename);
-+static void makeindexpage(l2hchan_t *ch, int year);
-+static void convertfile(l2hchan_t *ch, int year, int month, int day);
-+static void strip_codes(char *buf_ptr_copy, l2hnode_t **tree);
-+static void node_append(struct l2hnode_struct **h, struct l2hnode_struct *i);
-+static void replace_chars(char *buf_ptr_copy, char **realloc_buf);
-+
-+
-+#endif /* _EGG_MOD_LOGS2HTML_LOGS2HTML_H */
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/logs2html.mod.desc src/eggdrop-1.8.4/src/mod/logs2html.mod/logs2html.mod.desc
---- ./src/mod/logs2html.mod/logs2html.mod.desc 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/logs2html.mod/logs2html.mod.desc 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1 @@
-+This module converts the log files of your eggdrop to the html format. It also creates a page-calendar with links to that created files.
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/Makefile src/eggdrop-1.8.4/src/mod/logs2html.mod/Makefile
---- ./src/mod/logs2html.mod/Makefile 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/logs2html.mod/Makefile 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1,44 @@
-+# Makefile for src/mod/logs2html.mod/
-+
-+srcdir = .
-+
-+
-+doofus:
-+ @echo ""
-+ @echo "Let's try this from the right directory..."
-+ @echo ""
-+ @cd ../../../ && make
-+
-+static: ../logs2html.o
-+
-+modules: ../../../logs2html.$(MOD_EXT)
-+
-+../logs2html.o:
-+ $(CC) $(CFLAGS) $(CPPFLAGS) -DMAKING_MODS -c $(srcdir)/logs2html.c
-+ @rm -f ../logs2html.o
-+ mv logs2html.o ../
-+
-+../../../logs2html.$(MOD_EXT): ../logs2html.o
-+ $(LD) -o ../../../logs2html.$(MOD_EXT) ../logs2html.o $(XLIBS) $(MODULE_XLIBS)
-+ $(STRIP) ../../../logs2html.$(MOD_EXT)
-+
-+depend:
-+ $(CC) $(CFLAGS) -MM $(srcdir)/logs2html.c -MT ../logs2html.o > .depend
-+
-+clean:
-+ @rm -f .depend *.o *.$(MOD_EXT) *~
-+distclean: clean
-+
-+#safety hash
-+../logs2html.o: .././logs2html.mod/logs2html.c \
-+ ../../../src/mod/module.h ../../../src/main.h ../../../src/lang.h \
-+ ../../../src/eggdrop.h ../../../src/flags.h ../../../src/proto.h \
-+ ../../../lush.h ../../../src/misc_file.h ../../../src/cmdt.h \
-+ ../../../src/tclegg.h ../../../src/tclhash.h ../../../src/chan.h \
-+ ../../../src/users.h ../../../src/compat/compat.h \
-+ ../../../src/compat/inet_aton.h \
-+ ../../../src/compat/snprintf.h \
-+ ../../../src/compat/strcasecmp.h \
-+ ../../../src/compat/strftime.h ../../../src/mod/modvals.h \
-+ .././logs2html.mod/language.h .././logs2html.mod/tcllogs2html.c \
-+ .././logs2html.mod/htmloperations.c .././logs2html.mod/fileoperations.c
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/modinfo src/eggdrop-1.8.4/src/mod/logs2html.mod/modinfo
---- ./src/mod/logs2html.mod/modinfo 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/logs2html.mod/modinfo 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1,3 @@
-+DESC:This module converts the log files of your eggdrop
-+DESC:to the html format. It also creates a page-calendar
-+DESC:with links to that created files.
-diff -urpN "src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/precompiled/windrop 1.6.18/Contents" "src/eggdrop-1.8.4/src/mod/logs2html.mod/precompiled/windrop 1.6.18/Contents"
---- "src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/precompiled/windrop 1.6.18/Contents" 1970-01-01 01:00:00.000000000 +0100
-+++ "src/eggdrop-1.8.4/src/mod/logs2html.mod/precompiled/windrop 1.6.18/Contents" 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1 @@
-+Precompiled on CYGWIN_NT-5.1 1.5.25(0.156/4/2) for eggdrop 1.6.18
-Binary files src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/precompiled/windrop 1.6.18/logs2html.dll and src/eggdrop-1.8.4/src/mod/logs2html.mod/precompiled/windrop 1.6.18/logs2html.dll differ
-diff -urpN "src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/precompiled/windrop 1.6.19/Contents" "src/eggdrop-1.8.4/src/mod/logs2html.mod/precompiled/windrop 1.6.19/Contents"
---- "src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/precompiled/windrop 1.6.19/Contents" 1970-01-01 01:00:00.000000000 +0100
-+++ "src/eggdrop-1.8.4/src/mod/logs2html.mod/precompiled/windrop 1.6.19/Contents" 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1 @@
-+Precompiled on CYGWIN_NT-5.1 1.5.25(0.156/4/2) for eggdrop 1.6.19
-Binary files src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/precompiled/windrop 1.6.19/logs2html.dll and src/eggdrop-1.8.4/src/mod/logs2html.mod/precompiled/windrop 1.6.19/logs2html.dll differ
-diff -urpN "src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/precompiled/windrop 1.6.19 Suzi/Contents" "src/eggdrop-1.8.4/src/mod/logs2html.mod/precompiled/windrop 1.6.19 Suzi/Contents"
---- "src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/precompiled/windrop 1.6.19 Suzi/Contents" 1970-01-01 01:00:00.000000000 +0100
-+++ "src/eggdrop-1.8.4/src/mod/logs2html.mod/precompiled/windrop 1.6.19 Suzi/Contents" 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1 @@
-+Precompiled on CYGWIN_NT-5.1 1.5.25(0.156/4/2) for eggdrop 1.6.19 with Suzi patch sp.0009
-Binary files src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/precompiled/windrop 1.6.19 Suzi/logs2html.dll and src/eggdrop-1.8.4/src/mod/logs2html.mod/precompiled/windrop 1.6.19 Suzi/logs2html.dll differ
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/readme.txt src/eggdrop-1.8.4/src/mod/logs2html.mod/readme.txt
---- ./src/mod/logs2html.mod/readme.txt 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/logs2html.mod/readme.txt 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1,105 @@
-+logs2html.mod v.2.4.3 by Alexander Fedotov aka Shmupsik aka shurikvz
-+e-mail: shurikvz@mail.ru
-+
-+This module converts the log files of your eggdrop to the html format. It also creates a page-calendar with links to that created files.
-+
-+*******************************************************************************
-+To install this module:
-+ - edit and copy logs2html.conf file to your eggdrop directory
-+ - for (*nix) copy logs2html.mod to the source directory of your eggdrop (src/mod), then as usual: make iconfig && make && make install)
-+ - for windows:
-+ - copy the contents of "language" directory to your windrop "language" directory
-+ - copy the contents of "help" directory to your windrop "help" directory
-+ - copy *.dll (/precompiled) to windrop "modules" directory
-+ - if you decide to use your own style for pages edit and copy user.css file to your logs output directory
-+ - put string "source logs2html.conf" into your eggdrop config file and restart your bot
-+
-+Module has 4 commands, which you can use from dcc chat:
-+ - convertalllogs - reconverts all your logs
-+ - convertlogs [year [month [day]]] - reconverts your logs
-+ - makemainpage - redraws mainpages
-+ - makeindexpage - same as ".makemainpage"
-+*******************************************************************************
-+
-+
-+
-+*******************************************************************************
-+You can try to find latest version on http://sourceforge.net/projects/logs2html or http://www.halftone.ru/projects
-+*******************************************************************************
-+
-+
-+
-+*******************************************************************************
-+Version history:
-+28.05.09 - version 2.4.3
-+ - now correctly output '"' and '&' char to html
-+ - improved search of uri and email
-+ - added css classes for join/left, mode change, nick change and kick events
-+ - added an option to not display these events in the resulting html file
-+
-+
-+12.05.09 - version 2.4.2
-+ - fixed error with compilation on eggdrop 1.6.19 with Suzi-patch sp.0009
-+ - now automaticly reconvert logs for previous year, when the year changed (i.e. on december, 31)
-+
-+
-+08.05.09 - version 2.4.1
-+ - fixed display bug with firefox browser
-+
-+
-+24.04.09 - version 2.4.0
-+ - now module can convert and show logs for several years (new command added, see '.help logs2html module')
-+ - the output pages is now in xhtml format (see "known problems" for details)
-+ - added dont-print-time parameter
-+ - added month-block-orientation parameter
-+ - some color-names fixed in default css file
-+
-+
-+15.10.05 - version 2.3.4
-+ - added setting in config file, which allow to change value of meta tag <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=..."> in generated HTML files.
-+
-+
-+04.10.05 - version 2.3.3
-+ - fixed bug with broken e-mail (strings with broken e-mails were truncated)
-+
-+
-+ 24.09.05 - version 2.3.2
-+ - added support for <B> and <U> tags
-+ - fixed bug with [%H:%M:%S] timestamp (I hope.. :-))
-+
-+
-+ 26.07.05 - version 2.3.1
-+ - bug fixed
-+
-+
-+ 24.07.05 - version 2.3.0
-+ - page style discriptions moved to CSS file
-+ - no need for tcl now
-+ - small bugs fixed
-+
-+
-+ 25.04.05 - version 2.1.0
-+ - added support for http links and e-mail.
-+
-+
-+ 27.02.05 - version 2.0
-+ - converting logs for multiply channels
-+ - possibility to change colors of HTML pages
-+ - now you can aim number of lines on the one generated HTML page
-+
-+
-+ 16.12.04 - version 1.0
-+ - initial realise
-+*******************************************************************************
-+
-+
-+
-+*******************************************************************************
-+KNOWN PROBLEMS
-+
-+
-+*******************************************************************************
-+
-+
-+
-+P.S. Sorry for my bad english
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/strlcpy.c src/eggdrop-1.8.4/src/mod/logs2html.mod/strlcpy.c
---- ./src/mod/logs2html.mod/strlcpy.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/logs2html.mod/strlcpy.c 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1,51 @@
-+/* $OpenBSD: strlcpy.c,v 1.11 2006/05/05 15:27:38 millert Exp $ */
-+
-+/*
-+ * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
-+ *
-+ * Permission to use, copy, modify, and distribute this software for any
-+ * purpose with or without fee is hereby granted, provided that the above
-+ * copyright notice and this permission notice appear in all copies.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
-+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-+ */
-+
-+#include <sys/types.h>
-+#include <string.h>
-+
-+/*
-+ * Copy src to string dst of size siz. At most siz-1 characters
-+ * will be copied. Always NUL terminates (unless siz == 0).
-+ * Returns strlen(src); if retval >= siz, truncation occurred.
-+ */
-+size_t
-+strlcpy(char *dst, const char *src, size_t siz)
-+{
-+ char *d = dst;
-+ const char *s = src;
-+ size_t n = siz;
-+
-+ /* Copy as many bytes as will fit */
-+ if (n != 0) {
-+ while (--n != 0) {
-+ if ((*d++ = *s++) == '\0')
-+ break;
-+ }
-+ }
-+
-+ /* Not enough room in dst, add NUL and traverse rest of src */
-+ if (n == 0) {
-+ if (siz != 0)
-+ *d = '\0'; /* NUL-terminate dst */
-+ while (*s++)
-+ ;
-+ }
-+
-+ return(s - src - 1); /* count does not include NUL */
-+}
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/tcllogs2html.c src/eggdrop-1.8.4/src/mod/logs2html.mod/tcllogs2html.c
---- ./src/mod/logs2html.mod/tcllogs2html.c 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/logs2html.mod/tcllogs2html.c 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1,130 @@
-+/*
-+ * tcllogs2html.c -- part of logs2html.mod
-+ *
-+ * Written by Fedotov Alexander aka Shmupsik aka shurikvz <shurikvz@mail.ru>
-+ *
-+ * 2004-2009 year
-+ */
-+/*
-+ * 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, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+static void get_log_path(char *channel, char **inputpath) {
-+ if (Tcl_VarEval(interp, "logfile", (char *)NULL) != TCL_OK || !Tcl_GetStringResult(interp)[0]) {
-+ putlog(LOG_MISC, "*", "Error finding logfiles! Please check settings in your config file to be sure statement \"logfile\" present.");
-+ return;
-+ }
-+
-+ int len = strlen(Tcl_GetStringResult(interp)) + 1;
-+ char *logslist = nmalloc(len);
-+ strlcpy(logslist, Tcl_GetStringResult(interp), len);
-+
-+ char *p = logslist, *q, *r;
-+ while ((q = strchr(p, '{')) != NULL) {
-+ p = strchr(++q, '}');
-+ (*p) = '\0';
-+ p++; // now points to next chan in list
-+ r = newsplit(&q);
-+ // r = channel modes, check if it has +p flag
-+ if (logmodes(r) & LOG_PUBLIC) {
-+ r = newsplit(&q);
-+ // r = channel name, is it our channel?
-+ if ((*r == '*') || (!rfc_casecmp(channel, r))) {
-+ r = newsplit(&q);
-+ // r = log file name
-+ int len = strlen(r) + 1;
-+ (*inputpath) = nmalloc(len);
-+ strlcpy((*inputpath), r, len);
-+ break;
-+ }
-+ }
-+ }
-+
-+ nfree(logslist);
-+ return;
-+}
-+
-+
-+static int tcl_addlogs2htmlchan STDVAR
-+{
-+ BADARGS(7, 7, " channel output-path main-page-name main-page-title logs-page-prefix logs-page-title");
-+
-+ l2hchan_t *newchan = nmalloc(sizeof(struct l2hchan_struct));
-+ if (newchan == NULL) {
-+ putlog(LOG_MISC, "*", "Can't allocate enough space to add new channel!");
-+ Tcl_AppendResult(irp, "Can't allocate enough space to add new channel!", NULL);
-+ return TCL_ERROR;
-+ }
-+
-+ int len;
-+ newchan->next = NULL;
-+
-+ newchan->inputpath = NULL;
-+ get_log_path(argv[1], &(newchan->inputpath));
-+ if (newchan->inputpath == NULL) {
-+ putlog(LOG_MISC, "*", "Can't find expression \"logfile\" for channel \'%s\' with mode \'+p\'.", argv[1]);
-+ Tcl_AppendResult(irp, "Can't find expression \"logfile\" for channel \'", argv[1], "\' with mode \'+p\'.", NULL);
-+ nfree(newchan);
-+ return TCL_OK; //Silently ignore this
-+ }
-+
-+ len = strlen(argv[1]) + 1;
-+ newchan->channame = nmalloc(len);
-+ strlcpy(newchan->channame, argv[1], len);
-+
-+ len = strlen(argv[2]) + 1;
-+ newchan->outputpath = nmalloc(len);
-+ strlcpy(newchan->outputpath, argv[2], len);
-+
-+ len = strlen(argv[3]) + 1;
-+ newchan->mainpagename = nmalloc(len);
-+ strlcpy(newchan->mainpagename, argv[3], len);
-+
-+ len = strlen(argv[4]) + 1;
-+ newchan->mainpagetitle = nmalloc(len);
-+ strlcpy(newchan->mainpagetitle, argv[4], len);
-+
-+ len = strlen(argv[5]) + 1;
-+ newchan->logspagename = nmalloc(len);
-+ strlcpy(newchan->logspagename, argv[5], len);
-+
-+ len = strlen(argv[6]) + 1;
-+ newchan->logspagetitle = nmalloc(len);
-+ strlcpy(newchan->logspagetitle, argv[6], len);
-+
-+ int count = 0;
-+ l2hchan_t *chan = logs2htmlchanlist;
-+ if (chan == NULL) {
-+ logs2htmlchanlist = newchan;
-+ } else {
-+ count++;
-+ while (chan->next != NULL) {
-+ chan = chan->next;
-+ count++;
-+ }
-+ chan->next = newchan;
-+ }
-+ count++;
-+
-+ putlog(LOG_MISC, "*", " logs2html module: added channel '%s'. Total channels added: %d.", newchan->channame, count);
-+ Tcl_AppendResult(irp, "Channel added: ", argv[1], ".", NULL);
-+
-+ return TCL_OK;
-+}
-+
-+static tcl_cmds my_tcl_cmds[] = {
-+ {"addlogs2htmlchan", tcl_addlogs2htmlchan},
-+ {NULL, NULL} /* Mark end. */
-+};
-diff -urpN src-orig/eggdrop-1.8.4/src/mod/logs2html.mod/user.css src/eggdrop-1.8.4/src/mod/logs2html.mod/user.css
---- ./src/mod/logs2html.mod/user.css 1970-01-01 01:00:00.000000000 +0100
-+++ ./src/mod/logs2html.mod/user.css 2018-07-29 03:18:35.000000000 +0200
-@@ -0,0 +1,306 @@
-+@charset "utf-8";
-+/* CSS Document */
-+
-+<!--
-+body {
-+font-family:"Times New Roman", Times, serif;
-+background: #666666;
-+margin: 0;
-+padding: 0;
-+text-align: center;
-+color: #000000;
-+}
-+
-+/* mainpage styles */
-+.l2hMainPage #container {
-+width: 99%;
-+background:#FFFF99;
-+margin: 0 auto;
-+border: 1px solid #000000;
-+text-align: left;
-+}
-+.l2hMainPage #container #monthtable tr {
-+background: Orange;
-+}
-+.l2hMainPage #container .monthblock .monthname {
-+font-family:"Comic Sans MS", "Brush Script Std", Verdana, Arial, Helvetica, sans-serif;
-+font-size: 1.3em;
-+height: 1.8em;
-+background:#FF6600;
-+text-align: center;
-+color: white;
-+}
-+.l2hMainPage #container #monthtable .monthblock .dayname {
-+font-weight:bold;
-+height: 1.8em;
-+background: Silver;
-+text-align: left;
-+padding: 0 5px;
-+color:#333333;
-+}
-+.l2hMainPage #container #monthtable .monthblock .weekend {
-+font-weight:bold;
-+height: 1.8em;
-+background: #FF6633;
-+text-align: left;
-+padding: 0 5px;
-+color:#333333;
-+}
-+.l2hMainPage #container #monthtable .monthblock .emptycell {
-+height: 1.8em;
-+background:#DDDDDD;
-+text-align: center;
-+}
-+.l2hMainPage #container #monthtable .monthblock .day {
-+font-family:"Courier New", Courier, monospace;
-+font-weight:bold;
-+height: 1.8em;
-+background:#FFCC00;
-+text-align: center;
-+color:#FF0000;
-+}
-+.l2hMainPage #header {
-+background: #DDDDDD;
-+padding: 0 10px;
-+}
-+.l2hMainPage #header h2 {
-+font-style:italic;
-+margin: 0;
-+padding: 10px 0;
-+}
-+.l2hMainPage #mp_top {
-+background: #DDDDDD;
-+padding: 0 10px;
-+text-align: center;
-+}
-+.l2hMainPage #mp_bottom {
-+background: #DDDDDD;
-+padding: 0 10px;
-+text-align: center;
-+}
-+
-+/* leftsidebar styles */
-+.l2hMainPage #leftsidebar {
-+float: left;
-+width: 7em;
-+background: #EBEBEB;
-+padding: 10px 0;
-+}
-+.l2hMainPage #leftsidebar div.indexlink {
-+background-color: #EBEBEB;
-+margin-left: 5px;
-+margin-right: 5px;
-+text-align:center;
-+border-bottom-width: thin;
-+border-bottom-style: dotted;
-+border-bottom-color: #CCCCCC;
-+}
-+.l2hMainPage #leftsidebar div.indexlink a {
-+display:block;
-+letter-spacing:.1em;
-+line-height:1.5em;
-+text-decoration: none;
-+vertical-align:baseline;
-+color:#333333;
-+}
-+.l2hMainPage #leftsidebar div.indexlink a:hover {
-+background:#FF6600;
-+letter-spacing:.3em;
-+line-height:1.5em;
-+color:#FFFFFF;
-+font-weight:bold;
-+}
-+.l2hMainPage #mainblock {
-+margin: 0 20px 0 8em;
-+}
-+.l2hMainPage #footer {
-+padding: 0 10px;
-+background:#DDDDDD;
-+}
-+.l2hMainPage #footer p {
-+margin: 0;
-+padding: 10px 0;
-+font-size: 0.9em;
-+font-weight:bold;
-+color: #333333;
-+}
-+.l2hLogPage #lp_top {
-+background: #DDDDDD;
-+padding: 0 10px;
-+text-align: center;
-+}
-+.l2hLogPage #lp_bottom {
-+background: #DDDDDD;
-+padding: 0 10px;
-+text-align: center;
-+}
-+
-+/* Log Page styles */
-+.l2hLogPage #header {
-+background: #DDDDDD;
-+padding: 0 10px;
-+}
-+.l2hLogPage #container {
-+width: 99%;
-+background: #FFFF99;
-+margin: 0 auto;
-+border: 1px solid #000000;
-+text-align: left;
-+}
-+.l2hLogPage #container #navtop {
-+text-align: center;
-+border-bottom: 1px solid Orange;
-+margin-bottom: 10px;
-+padding: 10px 0;
-+}
-+.l2hLogPage #container #navtop a {
-+color:#FF0000;
-+font-weight:bold;
-+}
-+.l2hLogPage #container #totoplink {
-+color:#FF0000;
-+text-align: center;
-+border-top: 1px solid Orange;
-+margin-top: 10px;
-+padding: 10px 0;
-+}
-+.l2hLogPage #container #totoplink a {
-+color:#FF0000;
-+font-weight:bold;
-+}
-+.l2hLogPage #container #navbottom {
-+color:#FF0000;
-+text-align: center;
-+padding: 10px;
-+}
-+.l2hLogPage #container #navbottom span {
-+padding-left:5px;
-+padding-right:5px;
-+}
-+.l2hLogPage #container #navbottom #navbottom_currentpg {
-+font-size:1.1em;
-+}
-+.l2hLogPage #footer {
-+padding: 0 10px;
-+background:#DDDDDD;
-+}
-+.l2hLogPage #footer p {
-+margin: 0;
-+padding: 10px 0;
-+font-size: 0.9em;
-+font-weight:bold;
-+color: #333333;
-+}
-+.l2hLogPage #mainblock div {
-+white-space: pre-wrap; /* css-3 */
-+white-space: pre-line; /* css-3, css-2.1 */
-+white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
-+white-space: -hp-pre-wrap; /* HP printers */
-+white-space: -pre-wrap; /* Opera 4-6 */
-+white-space: -o-pre-wrap; /* Opera 7 */
-+word-wrap: break-word; /* Internet Explorer 5.5+ */
-+overflow:hidden;
-+}
-+.l2hLogPage #mainblock span.time {
-+color: #D0D0D0;
-+}
-+.l2hLogPage #mainblock span.nick {
-+color: #0040C0;
-+}
-+.l2hLogPage #mainblock span.text {
-+color: #111111;
-+}
-+.l2hLogPage #mainblock span.else_j {
-+color: #99CC00;
-+font-size: 0.8em;
-+}
-+.l2hLogPage #mainblock span.else_li {
-+color: #99CC00;
-+font-size: 0.8em;
-+}
-+.l2hLogPage #mainblock span.else_l {
-+color: #99CC00;
-+font-size: 0.8em;
-+}
-+.l2hLogPage #mainblock span.else_n {
-+color: #FF6666;
-+font-size: 0.8em;
-+}
-+.l2hLogPage #mainblock span.else_m {
-+color: #00CCFF;
-+font-size: 0.8em;
-+}
-+.l2hLogPage #mainblock span.else_k {
-+color: #FF0066;
-+font-size: 0.8em;
-+}
-+.l2hLogPage #mainblock span.else {
-+color: #40C000;
-+font-size: 0.8em;
-+}
-+.l2hLogPage #mainblock span.action {
-+color: #FF99FF;
-+}
-+
-+/* mirc colors */
-+.l2hLogPage span.c0000, .l2hLogPage span.c0100, .l2hLogPage span.c0200, .l2hLogPage span.c0300, .l2hLogPage span.c0400, .l2hLogPage span.c0500, .l2hLogPage span.c0600, .l2hLogPage span.c0700, .l2hLogPage span.c0800, .l2hLogPage span.c0900, .l2hLogPage span.c1000, .l2hLogPage span.c1100, .l2hLogPage span.c1200, .l2hLogPage span.c1300, .l2hLogPage span.c1400, .l2hLogPage span.c1500 {background-color: white;}
-+.l2hLogPage span.c0001, .l2hLogPage span.c0101, .l2hLogPage span.c0201, .l2hLogPage span.c0301, .l2hLogPage span.c0401, .l2hLogPage span.c0501, .l2hLogPage span.c0601, .l2hLogPage span.c0701, .l2hLogPage span.c0801, .l2hLogPage span.c0901, .l2hLogPage span.c1001, .l2hLogPage span.c1101, .l2hLogPage span.c1201, .l2hLogPage span.c1301, .l2hLogPage span.c1401, .l2hLogPage span.c1501 {background-color: black;}
-+.l2hLogPage span.c0002, .l2hLogPage span.c0102, .l2hLogPage span.c0202, .l2hLogPage span.c0302, .l2hLogPage span.c0402, .l2hLogPage span.c0502, .l2hLogPage span.c0602, .l2hLogPage span.c0702, .l2hLogPage span.c0802, .l2hLogPage span.c0902, .l2hLogPage span.c1002, .l2hLogPage span.c1102, .l2hLogPage span.c1202, .l2hLogPage span.c1302, .l2hLogPage span.c1402, .l2hLogPage span.c1502 {background-color: navy;}
-+.l2hLogPage span.c0003, .l2hLogPage span.c0103, .l2hLogPage span.c0203, .l2hLogPage span.c0303, .l2hLogPage span.c0403, .l2hLogPage span.c0503, .l2hLogPage span.c0603, .l2hLogPage span.c0703, .l2hLogPage span.c0803, .l2hLogPage span.c0903, .l2hLogPage span.c1003, .l2hLogPage span.c1103, .l2hLogPage span.c1203, .l2hLogPage span.c1303, .l2hLogPage span.c1403, .l2hLogPage span.c1503 {background-color: green;}
-+.l2hLogPage span.c0004, .l2hLogPage span.c0104, .l2hLogPage span.c0204, .l2hLogPage span.c0304, .l2hLogPage span.c0404, .l2hLogPage span.c0504, .l2hLogPage span.c0604, .l2hLogPage span.c0704, .l2hLogPage span.c0804, .l2hLogPage span.c0904, .l2hLogPage span.c1004, .l2hLogPage span.c1104, .l2hLogPage span.c1204, .l2hLogPage span.c1304, .l2hLogPage span.c1404, .l2hLogPage span.c1504 {background-color: red;}
-+.l2hLogPage span.c0005, .l2hLogPage span.c0105, .l2hLogPage span.c0205, .l2hLogPage span.c0305, .l2hLogPage span.c0405, .l2hLogPage span.c0505, .l2hLogPage span.c0605, .l2hLogPage span.c0705, .l2hLogPage span.c0805, .l2hLogPage span.c0905, .l2hLogPage span.c1005, .l2hLogPage span.c1105, .l2hLogPage span.c1205, .l2hLogPage span.c1305, .l2hLogPage span.c1405, .l2hLogPage span.c1505 {background-color: maroon;}
-+.l2hLogPage span.c0006, .l2hLogPage span.c0106, .l2hLogPage span.c0206, .l2hLogPage span.c0306, .l2hLogPage span.c0406, .l2hLogPage span.c0506, .l2hLogPage span.c0606, .l2hLogPage span.c0706, .l2hLogPage span.c0806, .l2hLogPage span.c0906, .l2hLogPage span.c1006, .l2hLogPage span.c1106, .l2hLogPage span.c1206, .l2hLogPage span.c1306, .l2hLogPage span.c1406, .l2hLogPage span.c1506 {background-color: purple;}
-+.l2hLogPage span.c0007, .l2hLogPage span.c0107, .l2hLogPage span.c0207, .l2hLogPage span.c0307, .l2hLogPage span.c0407, .l2hLogPage span.c0507, .l2hLogPage span.c0607, .l2hLogPage span.c0707, .l2hLogPage span.c0807, .l2hLogPage span.c0907, .l2hLogPage span.c1007, .l2hLogPage span.c1107, .l2hLogPage span.c1207, .l2hLogPage span.c1307, .l2hLogPage span.c1407, .l2hLogPage span.c1507 {background-color: orange;}
-+.l2hLogPage span.c0008, .l2hLogPage span.c0108, .l2hLogPage span.c0208, .l2hLogPage span.c0308, .l2hLogPage span.c0408, .l2hLogPage span.c0508, .l2hLogPage span.c0608, .l2hLogPage span.c0708, .l2hLogPage span.c0808, .l2hLogPage span.c0908, .l2hLogPage span.c1008, .l2hLogPage span.c1108, .l2hLogPage span.c1208, .l2hLogPage span.c1308, .l2hLogPage span.c1408, .l2hLogPage span.c1508 {background-color: yellow;}
-+.l2hLogPage span.c0009, .l2hLogPage span.c0109, .l2hLogPage span.c0209, .l2hLogPage span.c0309, .l2hLogPage span.c0409, .l2hLogPage span.c0509, .l2hLogPage span.c0609, .l2hLogPage span.c0709, .l2hLogPage span.c0809, .l2hLogPage span.c0909, .l2hLogPage span.c1009, .l2hLogPage span.c1109, .l2hLogPage span.c1209, .l2hLogPage span.c1309, .l2hLogPage span.c1409, .l2hLogPage span.c1509 {background-color: lime;}
-+.l2hLogPage span.c0010, .l2hLogPage span.c0110, .l2hLogPage span.c0210, .l2hLogPage span.c0310, .l2hLogPage span.c0410, .l2hLogPage span.c0510, .l2hLogPage span.c0610, .l2hLogPage span.c0710, .l2hLogPage span.c0810, .l2hLogPage span.c0910, .l2hLogPage span.c1010, .l2hLogPage span.c1110, .l2hLogPage span.c1210, .l2hLogPage span.c1310, .l2hLogPage span.c1410, .l2hLogPage span.c1510 {background-color: teal;}
-+.l2hLogPage span.c0011, .l2hLogPage span.c0111, .l2hLogPage span.c0211, .l2hLogPage span.c0311, .l2hLogPage span.c0411, .l2hLogPage span.c0511, .l2hLogPage span.c0611, .l2hLogPage span.c0711, .l2hLogPage span.c0811, .l2hLogPage span.c0911, .l2hLogPage span.c1011, .l2hLogPage span.c1111, .l2hLogPage span.c1211, .l2hLogPage span.c1311, .l2hLogPage span.c1411, .l2hLogPage span.c1511 {background-color: aqua;}
-+.l2hLogPage span.c0012, .l2hLogPage span.c0112, .l2hLogPage span.c0212, .l2hLogPage span.c0312, .l2hLogPage span.c0412, .l2hLogPage span.c0512, .l2hLogPage span.c0612, .l2hLogPage span.c0712, .l2hLogPage span.c0812, .l2hLogPage span.c0912, .l2hLogPage span.c1012, .l2hLogPage span.c1112, .l2hLogPage span.c1212, .l2hLogPage span.c1312, .l2hLogPage span.c1412, .l2hLogPage span.c1512 {background-color: blue;}
-+.l2hLogPage span.c0013, .l2hLogPage span.c0113, .l2hLogPage span.c0213, .l2hLogPage span.c0313, .l2hLogPage span.c0413, .l2hLogPage span.c0513, .l2hLogPage span.c0613, .l2hLogPage span.c0713, .l2hLogPage span.c0813, .l2hLogPage span.c0913, .l2hLogPage span.c1013, .l2hLogPage span.c1113, .l2hLogPage span.c1213, .l2hLogPage span.c1313, .l2hLogPage span.c1413, .l2hLogPage span.c1513 {background-color: fuchsia;}
-+.l2hLogPage span.c0014, .l2hLogPage span.c0114, .l2hLogPage span.c0214, .l2hLogPage span.c0314, .l2hLogPage span.c0414, .l2hLogPage span.c0514, .l2hLogPage span.c0614, .l2hLogPage span.c0714, .l2hLogPage span.c0814, .l2hLogPage span.c0914, .l2hLogPage span.c1014, .l2hLogPage span.c1114, .l2hLogPage span.c1214, .l2hLogPage span.c1314, .l2hLogPage span.c1414, .l2hLogPage span.c1514 {background-color: silver;}
-+.l2hLogPage span.c0015, .l2hLogPage span.c0115, .l2hLogPage span.c0215, .l2hLogPage span.c0315, .l2hLogPage span.c0415, .l2hLogPage span.c0515, .l2hLogPage span.c0615, .l2hLogPage span.c0715, .l2hLogPage span.c0815, .l2hLogPage span.c0915, .l2hLogPage span.c1015, .l2hLogPage span.c1114, .l2hLogPage span.c1215, .l2hLogPage span.c1315, .l2hLogPage span.c1415, .l2hLogPage span.c1515 {background-color: gray;}
-+.l2hLogPage span.c0000, .l2hLogPage span.c0001, .l2hLogPage span.c0002, .l2hLogPage span.c0003, .l2hLogPage span.c0004, .l2hLogPage span.c0005, .l2hLogPage span.c0006, .l2hLogPage span.c0007, .l2hLogPage span.c0008, .l2hLogPage span.c0009, .l2hLogPage span.c0010, .l2hLogPage span.c0011, .l2hLogPage span.c0012, .l2hLogPage span.c0013, .l2hLogPage span.c0014, .l2hLogPage span.c0015 {color: white;}
-+.l2hLogPage span.c0100, .l2hLogPage span.c0101, .l2hLogPage span.c0102, .l2hLogPage span.c0103, .l2hLogPage span.c0104, .l2hLogPage span.c0105, .l2hLogPage span.c0106, .l2hLogPage span.c0107, .l2hLogPage span.c0108, .l2hLogPage span.c0109, .l2hLogPage span.c0110, .l2hLogPage span.c0111, .l2hLogPage span.c0112, .l2hLogPage span.c0113, .l2hLogPage span.c0114, .l2hLogPage span.c0115 {color: black;}
-+.l2hLogPage span.c0200, .l2hLogPage span.c0201, .l2hLogPage span.c0202, .l2hLogPage span.c0203, .l2hLogPage span.c0204, .l2hLogPage span.c0205, .l2hLogPage span.c0206, .l2hLogPage span.c0207, .l2hLogPage span.c0208, .l2hLogPage span.c0209, .l2hLogPage span.c0210, .l2hLogPage span.c0211, .l2hLogPage span.c0212, .l2hLogPage span.c0213, .l2hLogPage span.c0214, .l2hLogPage span.c0215 {color: navy;}
-+.l2hLogPage span.c0300, .l2hLogPage span.c0301, .l2hLogPage span.c0302, .l2hLogPage span.c0303, .l2hLogPage span.c0304, .l2hLogPage span.c0305, .l2hLogPage span.c0306, .l2hLogPage span.c0307, .l2hLogPage span.c0308, .l2hLogPage span.c0309, .l2hLogPage span.c0310, .l2hLogPage span.c0311, .l2hLogPage span.c0312, .l2hLogPage span.c0313, .l2hLogPage span.c0314, .l2hLogPage span.c0315 {color: green;}
-+.l2hLogPage span.c0400, .l2hLogPage span.c0401, .l2hLogPage span.c0402, .l2hLogPage span.c0403, .l2hLogPage span.c0404, .l2hLogPage span.c0405, .l2hLogPage span.c0406, .l2hLogPage span.c0407, .l2hLogPage span.c0408, .l2hLogPage span.c0409, .l2hLogPage span.c0410, .l2hLogPage span.c0411, .l2hLogPage span.c0412, .l2hLogPage span.c0413, .l2hLogPage span.c0414, .l2hLogPage span.c0415 {color: red;}
-+.l2hLogPage span.c0500, .l2hLogPage span.c0501, .l2hLogPage span.c0502, .l2hLogPage span.c0503, .l2hLogPage span.c0504, .l2hLogPage span.c0505, .l2hLogPage span.c0506, .l2hLogPage span.c0507, .l2hLogPage span.c0508, .l2hLogPage span.c0509, .l2hLogPage span.c0510, .l2hLogPage span.c0511, .l2hLogPage span.c0512, .l2hLogPage span.c0513, .l2hLogPage span.c0514, .l2hLogPage span.c0515 {color: maroon;}
-+.l2hLogPage span.c0600, .l2hLogPage span.c0601, .l2hLogPage span.c0602, .l2hLogPage span.c0603, .l2hLogPage span.c0604, .l2hLogPage span.c0605, .l2hLogPage span.c0606, .l2hLogPage span.c0607, .l2hLogPage span.c0608, .l2hLogPage span.c0609, .l2hLogPage span.c0610, .l2hLogPage span.c0611, .l2hLogPage span.c0612, .l2hLogPage span.c0613, .l2hLogPage span.c0614, .l2hLogPage span.c0615 {color: purple;}
-+.l2hLogPage span.c0700, .l2hLogPage span.c0701, .l2hLogPage span.c0702, .l2hLogPage span.c0703, .l2hLogPage span.c0704, .l2hLogPage span.c0705, .l2hLogPage span.c0706, .l2hLogPage span.c0707, .l2hLogPage span.c0708, .l2hLogPage span.c0709, .l2hLogPage span.c0710, .l2hLogPage span.c0711, .l2hLogPage span.c0712, .l2hLogPage span.c0713, .l2hLogPage span.c0714, .l2hLogPage span.c0715 {color: orange;}
-+.l2hLogPage span.c0800, .l2hLogPage span.c0801, .l2hLogPage span.c0802, .l2hLogPage span.c0803, .l2hLogPage span.c0804, .l2hLogPage span.c0805, .l2hLogPage span.c0806, .l2hLogPage span.c0807, .l2hLogPage span.c0808, .l2hLogPage span.c0809, .l2hLogPage span.c0810, .l2hLogPage span.c0811, .l2hLogPage span.c0812, .l2hLogPage span.c0813, .l2hLogPage span.c0814, .l2hLogPage span.c0815 {color: yellow;}
-+.l2hLogPage span.c0900, .l2hLogPage span.c0901, .l2hLogPage span.c0902, .l2hLogPage span.c0903, .l2hLogPage span.c0904, .l2hLogPage span.c0905, .l2hLogPage span.c0906, .l2hLogPage span.c0907, .l2hLogPage span.c0908, .l2hLogPage span.c0909, .l2hLogPage span.c0910, .l2hLogPage span.c0911, .l2hLogPage span.c0912, .l2hLogPage span.c0913, .l2hLogPage span.c0914, .l2hLogPage span.c0915 {color: lime;}
-+.l2hLogPage span.c1000, .l2hLogPage span.c1001, .l2hLogPage span.c1002, .l2hLogPage span.c1003, .l2hLogPage span.c1004, .l2hLogPage span.c1005, .l2hLogPage span.c1006, .l2hLogPage span.c1007, .l2hLogPage span.c1008, .l2hLogPage span.c1009, .l2hLogPage span.c1010, .l2hLogPage span.c1011, .l2hLogPage span.c1012, .l2hLogPage span.c1013, .l2hLogPage span.c1014, .l2hLogPage span.c1015 {color: teal;}
-+.l2hLogPage span.c1100, .l2hLogPage span.c1101, .l2hLogPage span.c1102, .l2hLogPage span.c1103, .l2hLogPage span.c1104, .l2hLogPage span.c1105, .l2hLogPage span.c1106, .l2hLogPage span.c1107, .l2hLogPage span.c1108, .l2hLogPage span.c1109, .l2hLogPage span.c1110, .l2hLogPage span.c1111, .l2hLogPage span.c1112, .l2hLogPage span.c1113, .l2hLogPage span.c1114, .l2hLogPage span.c1115 {color: aqua;}
-+.l2hLogPage span.c1200, .l2hLogPage span.c1201, .l2hLogPage span.c1202, .l2hLogPage span.c1203, .l2hLogPage span.c1204, .l2hLogPage span.c1205, .l2hLogPage span.c1206, .l2hLogPage span.c1207, .l2hLogPage span.c1208, .l2hLogPage span.c1209, .l2hLogPage span.c1210, .l2hLogPage span.c1211, .l2hLogPage span.c1212, .l2hLogPage span.c1213, .l2hLogPage span.c1214, .l2hLogPage span.c1215 {color: blue;}
-+.l2hLogPage span.c1300, .l2hLogPage span.c1301, .l2hLogPage span.c1302, .l2hLogPage span.c1303, .l2hLogPage span.c1304, .l2hLogPage span.c1305, .l2hLogPage span.c1306, .l2hLogPage span.c1307, .l2hLogPage span.c1308, .l2hLogPage span.c1309, .l2hLogPage span.c1310, .l2hLogPage span.c1311, .l2hLogPage span.c1312, .l2hLogPage span.c1313, .l2hLogPage span.c1314, .l2hLogPage span.c1315 {color: fuchsia;}
-+.l2hLogPage span.c1400, .l2hLogPage span.c1401, .l2hLogPage span.c1402, .l2hLogPage span.c1403, .l2hLogPage span.c1404, .l2hLogPage span.c1405, .l2hLogPage span.c1406, .l2hLogPage span.c1407, .l2hLogPage span.c1408, .l2hLogPage span.c1409, .l2hLogPage span.c1410, .l2hLogPage span.c1411, .l2hLogPage span.c1412, .l2hLogPage span.c1413, .l2hLogPage span.c1414, .l2hLogPage span.c1415 {color: silver;}
-+.l2hLogPage span.c1500, .l2hLogPage span.c1501, .l2hLogPage span.c1502, .l2hLogPage span.c1503, .l2hLogPage span.c1504, .l2hLogPage span.c1505, .l2hLogPage span.c1506, .l2hLogPage span.c1507, .l2hLogPage span.c1508, .l2hLogPage span.c1509, .l2hLogPage span.c1510, .l2hLogPage span.c1511, .l2hLogPage span.c1512, .l2hLogPage span.c1513, .l2hLogPage span.c1514, .l2hLogPage span.c1515 {color: gray;}
-+.l2hLogPage span.f00 {color: white;}
-+.l2hLogPage span.f01 {color: black;}
-+.l2hLogPage span.f02 {color: navy;}
-+.l2hLogPage span.f03 {color: green;}
-+.l2hLogPage span.f04 {color: red;}
-+.l2hLogPage span.f05 {color: maroon;}
-+.l2hLogPage span.f06 {color: purple;}
-+.l2hLogPage span.f07 {color: orange;}
-+.l2hLogPage span.f08 {color: yellow;}
-+.l2hLogPage span.f09 {color: lime;}
-+.l2hLogPage span.f10 {color: teal;}
-+.l2hLogPage span.f11 {color: aqua;}
-+.l2hLogPage span.f12 {color: blue;}
-+.l2hLogPage span.f13 {color: fuchsia;}
-+.l2hLogPage span.f14 {color: silver;}
-+.l2hLogPage span.f15 {color: gray;}
-+
-+/* Miscellaneous classes for reuse */
-+.clearfloat {
-+/* this class should be placed on a div or break element and should be the final element before
-+the close of a container that should fully contain a float */
-+clear:both;
-+height:0;
-+font-size: 1px;
-+line-height: 0px;
-+}
-+
-+-->
-+
diff --git a/main/elfutils/APKBUILD b/main/elfutils/APKBUILD
index ae4808f8bff..a310c8d5064 100644
--- a/main/elfutils/APKBUILD
+++ b/main/elfutils/APKBUILD
@@ -1,21 +1,46 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=elfutils
-pkgver=0.187
-pkgrel=1
+pkgver=0.191
+pkgrel=0
pkgdesc="Utilities and DSOs to handle ELF files and DWARF data"
-url="http://elfutils.org/"
+url="https://sourceware.org/elfutils/"
arch="all"
-license="GPL-3.0-or-later AND (GPL-2.0-or-later OR LGPL-3.0-or-later)"
-makedepends="bison flex-dev zlib-dev bzip2-dev xz-dev argp-standalone
- bsd-compat-headers libtool fts-dev musl-obstack-dev linux-headers"
-subpackages="libelf libelf-static $pkgname-dev $pkgname-doc"
+license="GPL-3.0-or-later AND ( GPL-2.0-or-later OR LGPL-3.0-or-later )"
+depends="
+ libasm=$pkgver-r$pkgrel
+ libdw=$pkgver-r$pkgrel
+ libelf=$pkgver-r$pkgrel
+ "
+makedepends="
+ argp-standalone
+ bison
+ bsd-compat-headers
+ bzip2-dev
+ flex-dev
+ libtool
+ linux-headers
+ musl-fts-dev
+ musl-libintl
+ musl-legacy-error
+ musl-obstack-dev
+ xz-dev
+ zlib-dev
+ zstd-dev
+ "
+subpackages="
+ libasm
+ libdw
+ libelf
+ $pkgname-dev
+ $pkgname-doc
+ "
source="https://sourceware.org/elfutils/ftp/$pkgver/elfutils-$pkgver.tar.bz2
- error.h
fix-aarch64_fregs.patch
fix-uninitialized.patch
musl-macros.patch
musl-asm-ptrace-h.patch
"
+options="!check"
# secfixes:
# 0.176-r0:
@@ -37,22 +62,8 @@ source="https://sourceware.org/elfutils/ftp/$pkgver/elfutils-$pkgver.tar.bz2
# - CVE-2017-7607
# - CVE-2017-7608
-prepare() {
- default_prepare
-
- cp "$srcdir"/error.h "$builddir"/lib
- cp "$srcdir"/error.h "$builddir"/src
-
- cat > lib/libintl.h <<-EOF
- #ifndef LIBINTL_H
- #define LIBINTL_H
- #define _(x) (x)
- #endif
- EOF
-}
-
build() {
- CFLAGS="$CFLAGS -Wno-error -Wno-null-dereference" \
+ CFLAGS="$CFLAGS -D_GNU_SOURCE -Wno-error -Wno-null-dereference" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -65,8 +76,8 @@ build() {
--enable-deterministic-archives \
--disable-nls \
--disable-libdebuginfod \
- --disable-debuginfod
- # for now we only build libelf
+ --disable-debuginfod \
+ --with-zstd
make
}
@@ -74,19 +85,40 @@ package() {
make DESTDIR="$pkgdir" install
}
+libasm() {
+ pkgdesc="Library to assemble and disassamble instructions"
+ # Depend on exact version, not just SONAME, just in case.
+ depends="libdw=$pkgver-r$pkgrel libelf=$pkgver-r$pkgrel"
+
+ amove usr/lib/libasm-*.so
+ amove usr/lib/libasm.so.*
+}
+
+libdw() {
+ pkgdesc="Library to read DWARF, find separate debuginfo, symbols and inspect process state"
+ # Depend on exact version, not just SONAME, just in case.
+ depends="libelf=$pkgver-r$pkgrel"
+
+ amove usr/lib/libdw-*.so
+ amove usr/lib/libdw.so.*
+}
+
libelf() {
- replaces="$pkgname-libelf"
- provides="$pkgname-libelf=$pkgver-r$pkgrel"
+ pkgdesc="Library to read, modify and create ELF files"
+ depends=""
+ provides="$pkgname-libelf=$pkgver-r$pkgrel" # for backward compatibility (Alpine <3.11)
+
+ amove usr/lib/libelf-*.so
+ amove usr/lib/libelf.so.*
+}
- pkgdesc="$pkgdesc - runtime libraries"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*.so.* "$subpkgdir"/usr/lib/
- mv "$pkgdir"/usr/lib/*-*.so "$subpkgdir"/usr/lib/
+dev() {
+ default_dev
+ provides="libelf-static=$pkgver-r$pkgrel" # for backward compatibility (Alpine <3.19)
}
sha512sums="
-a9b9e32b503b8b50a62d4e4001097ed2721d3475232a6380e6b9853bd1647aec016440c0ca7ceb950daf1144f8db9814ab43cf33cc0ebef7fc91e9e775c9e874 elfutils-0.187.tar.bz2
-8b650bc78cea66f30f0ff66357005890ac8a1b04a8dcc50209cb10a4b4c5ede849505cb68463beca8316ace0fbd53bbc484cfb597805b55616f3b3fc2b864e9a error.h
+e22d85f25317a79b36d370347e50284c9120c86f9830f08791b7b6a7b4ad89b9bf4c7c71129133b8d193a0edffb2a2c17987b7e48428b9670aff5ce918777e04 elfutils-0.191.tar.bz2
c3676b0b8b40d6e437f5d88c0d658dc0829ec97d1955e4bbf96f4cff9ee9001b8f2f06174450ae7aa5858b91c7905bdbd49073b561c346416132338a9c94731b fix-aarch64_fregs.patch
b9ba55e1b56a8abf694b6d02f022d9a3a0ae6ab53a8c4a71e49552e32411ef410d3a7512fbd1a729696bc2046ac11586829816f0fa3b8226ee77c9dc4b741e58 fix-uninitialized.patch
792be4a38b55d20a320605ab340357ad55dc295ab241af86cd3edf4ec84b0122e91ebcf78d8d6a0f926104b5eb22306be1356b0892f71ee3ba27ae38e9130aab musl-macros.patch
diff --git a/main/elfutils/error.h b/main/elfutils/error.h
deleted file mode 100644
index ef06827a0ba..00000000000
--- a/main/elfutils/error.h
+++ /dev/null
@@ -1,27 +0,0 @@
-#ifndef _ERROR_H_
-#define _ERROR_H_
-
-#include <stdarg.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-
-static unsigned int error_message_count = 0;
-
-static inline void error(int status, int errnum, const char* format, ...)
-{
- va_list ap;
- fprintf(stderr, "%s: ", program_invocation_name);
- va_start(ap, format);
- vfprintf(stderr, format, ap);
- va_end(ap);
- if (errnum)
- fprintf(stderr, ": %s", strerror(errnum));
- fprintf(stderr, "\n");
- error_message_count++;
- if (status)
- exit(status);
-}
-
-#endif /* _ERROR_H_ */
diff --git a/main/elinks/APKBUILD b/main/elinks/APKBUILD
index 23faf39f13d..588b4fb9018 100644
--- a/main/elinks/APKBUILD
+++ b/main/elinks/APKBUILD
@@ -2,43 +2,49 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=elinks
-pkgver=0.15.0
+pkgver=0.17.0
pkgrel=0
pkgdesc="Advanced and well-established feature-rich text mode web browser"
-url="http://elinks.or.cz/"
+url="https://github.com/rkd77/elinks/"
arch="all"
-license="GPL-2.0"
-makedepends="automake autoconf zlib-dev bzip2-dev openssl-dev expat-dev gettext-dev"
+license="GPL-2.0-or-later AND GPL-3.0-or-later AND MIT AND MPL-1.1"
+makedepends="
+ bsd-compat-headers
+ bzip2-dev
+ curl-dev
+ expat-dev
+ gettext-dev
+ gpm-dev
+ libidn2-dev
+ linux-headers
+ meson
+ openssl-dev>3
+ xmlto
+ zlib-dev
+ "
subpackages="$pkgname-doc $pkgname-lang"
-source="$pkgname-$pkgver.tgz::https://github.com/rkd77/elinks/archive/v$pkgver.tar.gz"
-
-prepare() {
- default_prepare
- autoreconf -fi
-}
+source="https://github.com/rkd77/elinks/releases/download/v$pkgver/elinks-$pkgver.tar.xz"
+options="!check"
build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --without-included-gettext \
- --enable-256-colors \
- --enable-html-highlight \
- --with-zlib
- make
+ LDFLAGS="$LDFLAGS -lintl" \
+ abuild-meson \
+ -Db_lto=true \
+ -Dgettext=true \
+ -Dhtml-highlight=true \
+ -Dbacktrace=false \
+ -D256-colors=true \
+ -Dtrue-color=true \
+ -Dtre=false \
+ -Dlibcss=false \
+ . output
+ meson compile -C output
}
package() {
- make DESTDIR="$pkgdir" install
- rm "$pkgdir"/usr/lib/charset.alias
- #fix conflict with gettext
- rm "$pkgdir"/usr/share/locale/locale.alias
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
sha512sums="
-e54f8ffe20577d7b82498ddeeb1fe3b10c3e4c88e01a84ea70fbf0f4689e0b44b7c7f17fe8a439ec2bb1fba817acfef9a47f2c93a55bf90af4018ac81f674c17 elinks-0.15.0.tgz
+276c648174d067cdd92cbbf25e8a353a3a482a65a4f1080ff42f932cdc0239e5110a51653f5136188a0b9135be2928f2bd1a92f37fa83ce14d8fc1267b87cf56 elinks-0.17.0.tar.xz
"
diff --git a/main/ell/0001-build-fix-time.h-related-breakage-on-musl.patch b/main/ell/0001-build-fix-time.h-related-breakage-on-musl.patch
deleted file mode 100644
index 7da5c28f160..00000000000
--- a/main/ell/0001-build-fix-time.h-related-breakage-on-musl.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 0cee9267ef95b3a13917e042dc205bc24be9328e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Milan=20P=2E=20Stani=C4=87?= <mps@arvanta.net>
-Date: Mon, 6 Jun 2022 17:05:48 +0000
-Subject: [PATCH] build: fix time.h related breakage on musl
-
-missing time.h for struct timeval usage
-forward declaration of struct timeval in time-private.h
----
- ell/dhcp-transport.c | 1 +
- ell/dhcp6-transport.c | 1 +
- ell/icmp6.c | 1 +
- ell/time-private.h | 2 +-
- ell/time.c | 1 +
- 5 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/ell/dhcp-transport.c b/ell/dhcp-transport.c
-index ef030de..c4cf0ca 100644
---- a/ell/dhcp-transport.c
-+++ b/ell/dhcp-transport.c
-@@ -40,6 +40,7 @@
- #include <linux/filter.h>
- #include <net/if_arp.h>
- #include <errno.h>
-+#include <sys/time.h>
-
- #include "io.h"
- #include "util.h"
-diff --git a/ell/dhcp6-transport.c b/ell/dhcp6-transport.c
-index 30c425f..5ff6516 100644
---- a/ell/dhcp6-transport.c
-+++ b/ell/dhcp6-transport.c
-@@ -35,6 +35,7 @@
- #include <net/if.h>
- #include <unistd.h>
- #include <errno.h>
-+#include <sys/time.h>
-
- #include "private.h"
- #include "missing.h"
-diff --git a/ell/icmp6.c b/ell/icmp6.c
-index 368977f..7319903 100644
---- a/ell/icmp6.c
-+++ b/ell/icmp6.c
-@@ -36,6 +36,7 @@
- #include <net/if.h>
- #include <unistd.h>
- #include <errno.h>
-+#include <sys/time.h>
-
- #include "private.h"
- #include "useful.h"
-diff --git a/ell/time-private.h b/ell/time-private.h
-index 5295d94..83c23dd 100644
---- a/ell/time-private.h
-+++ b/ell/time-private.h
-@@ -19,7 +19,7 @@
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
- *
- */
--
-+struct timeval;
- uint64_t _time_pick_interval_secs(uint32_t min_secs, uint32_t max_secs);
- uint64_t _time_fuzz_msecs(uint64_t ms);
- uint64_t _time_fuzz_secs(uint32_t secs, uint32_t max_offset);
-diff --git a/ell/time.c b/ell/time.c
-index 10e10b0..41e5725 100644
---- a/ell/time.c
-+++ b/ell/time.c
-@@ -26,6 +26,7 @@
-
- #define _GNU_SOURCE
- #include <time.h>
-+#include <sys/time.h>
-
- #include "time.h"
- #include "time-private.h"
---
-2.36.1
-
diff --git a/main/ell/APKBUILD b/main/ell/APKBUILD
index 8ea48e4ea60..e7b321cabfd 100644
--- a/main/ell/APKBUILD
+++ b/main/ell/APKBUILD
@@ -1,17 +1,17 @@
# Contributor: Milan P. Stanić <mps@arvanta.net>
# Maintainer: Milan P. Stanić <mps@arvanta.net>
pkgname=ell
-pkgver=0.51
+pkgver=0.64
pkgrel=0
pkgdesc="Linux library for embedded development"
url="https://01.org/ell"
arch="all"
-license="GPL-2.0-only"
+license="LGPL-2.1-or-later"
makedepends="glib-dev linux-headers"
checkdepends="dbus"
-subpackages="$pkgname-dev"
+subpackages="$pkgname-dbg $pkgname-dev"
source="https://mirrors.edge.kernel.org/pub/linux/libs/ell/ell-$pkgver.tar.gz
- 0001-build-fix-time.h-related-breakage-on-musl.patch
+ use-libgen-basename.patch
"
case "$CARCH" in
@@ -39,6 +39,6 @@ package() {
}
sha512sums="
-7b7897ea094ad90eeae98594f701b846f4f8c25cddab7ad2b38676d3b6369f26013e3f9f40086ae5e602325aa14daadc4d7923dea4609271d5ed11586eb9969d ell-0.51.tar.gz
-9543fb27bf364848798e9219de57e8fa60b46372ff0719769d413957098ed4ee6835a4a2661536214a8bcd48b94f8a30217770eb243be01669f8d47fbec11c3d 0001-build-fix-time.h-related-breakage-on-musl.patch
+970a488c6ccdcedf6ea0b35b2b7d80613410acdddef75217d7d23cf77bfbb898a803149767bb156966445786f759e635d81aeb4d80ef4bcc686e057a17379758 ell-0.64.tar.gz
+0762cc5c0471afbcdd17ecbd599f3ae6b0725ed79a845435f5f48c020990b973307c490362ead7550bfe7b61a36e6b663464a038808256f1a1ae7241f0851d1c use-libgen-basename.patch
"
diff --git a/main/ell/use-libgen-basename.patch b/main/ell/use-libgen-basename.patch
new file mode 100644
index 00000000000..3fa7eb322ac
--- /dev/null
+++ b/main/ell/use-libgen-basename.patch
@@ -0,0 +1,10 @@
+--- a/unit/test-path.c 2023-09-27 09:03:04.000000000 +0000
++++ b/unit/test-path.c 2024-02-16 17:25:32.680410706 +0000
+@@ -15,6 +15,7 @@
+ #include <errno.h>
+ #include <fcntl.h>
+ #include <stdlib.h>
++#include <libgen.h>
+
+ #include <ell/ell.h>
+
diff --git a/main/email/APKBUILD b/main/email/APKBUILD
index 579aefb7c21..168d3dd695c 100644
--- a/main/email/APKBUILD
+++ b/main/email/APKBUILD
@@ -1,14 +1,14 @@
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=email
pkgver=3.1.4
-pkgrel=11
+pkgrel=13
pkgdesc="command line SMTP client that's simple"
options="!check" # No testsuite
url="http://www.cleancode.org/projects/email"
arch="all"
license="GPL-2.0-or-later"
-depends="openssl"
-makedepends="openssl1.1-compat-dev"
+depends="openssl>3"
+makedepends="openssl-dev>3"
subpackages="$pkgname-doc"
source="https://dev.alpinelinux.org/archive/email/email-$pkgver.tar.gz"
builddir="$srcdir/$pkgname-3.1.3" # Release was made with the wrong tarball name
diff --git a/main/encfs/APKBUILD b/main/encfs/APKBUILD
deleted file mode 100644
index f59441930bc..00000000000
--- a/main/encfs/APKBUILD
+++ /dev/null
@@ -1,48 +0,0 @@
-# Contributor: ScrumpyJack <scrumpyjack@st.ilet.to>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=encfs
-pkgver=1.9.5
-_ver=${pkgver/_/-}
-pkgrel=15
-pkgdesc="EncFS provides an encrypted filesystem in user-space"
-url="https://vgough.github.io/encfs/"
-arch="all"
-license="GPL-3.0-only"
-makedepends="rlog-dev openssl1.1-compat-dev fuse-dev boost-dev
- libtool gettext-dev cmake tinyxml2-dev perl"
-subpackages="$pkgname-doc $pkgname-lang $pkgname-libs"
-source="$pkgname-$_ver.tar.gz::https://github.com/vgough/encfs/archive/v$_ver.tar.gz"
-options="!check" # No test suite
-
-build() {
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
- fi
-
- mkdir build
- cd build
-
- cmake .. \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DUSE_INTERNAL_TINYXML=OFF \
- -DINSTALL_LIBENCFS=ON \
- -DBUILD_SHARED_LIBS=ON \
- -DBUILD_SHARED_LIBS=True \
- -DCMAKE_BUILD_TYPE=MinSizeRel \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_C_FLAGS="$CFLAGS" \
- $CMAKE_CROSSOPTS
- make
-}
-
-package() {
- cd "$builddir"/build
- make DESTDIR="$pkgdir" install
-}
-
-libs() {
- license="LGPL-3.0-only"
- default_libs
-}
-
-sha512sums="036e08ca9bc13b44742aebdee49bf7029d0c6b7e59cd6dedc9a09da2af99482859f6a79eddf07e3db296edaf45aafc48fe08488840e765682e9b192dd6ae4c46 encfs-1.9.5.tar.gz"
diff --git a/main/encodings/APKBUILD b/main/encodings/APKBUILD
index 4746f5a791c..b7e5b2f1f82 100644
--- a/main/encodings/APKBUILD
+++ b/main/encodings/APKBUILD
@@ -1,17 +1,16 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=encodings
-pkgver=1.0.5
-pkgrel=0
+pkgver=1.0.7
+pkgrel=1
pkgdesc="X.org font encoding files"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="noarch"
-license="custom"
+license="Public Domain"
options="!check" # No test suite.
makedepends="mkfontscale util-macros"
-source="https://www.x.org/releases/individual/font/encodings-$pkgver.tar.bz2"
+source="https://www.x.org/releases/individual/font/encodings-$pkgver.tar.xz"
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -21,7 +20,9 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
-sha512sums="920e49f0b3545f181a1574ca3280ac9adef1e68fe27566c195dd7013f728d355c0d759132789357fcf8fa7391fcbe1e17edf2bd85aa5611df5a4d99740011008 encodings-1.0.5.tar.bz2"
+
+sha512sums="
+dc72982b14e5d89fe1eff1ab11f308796c89255a06337d8cd6bf65757f11dd0a5478b41d844793213db8fe9638389734f148abe9df9fb05027ea563dacde6ba8 encodings-1.0.7.tar.xz
+"
diff --git a/main/esh/APKBUILD b/main/esh/APKBUILD
index ebaa57ad5fc..e1891c65925 100644
--- a/main/esh/APKBUILD
+++ b/main/esh/APKBUILD
@@ -9,16 +9,13 @@ arch="noarch"
license="MIT"
makedepends="asciidoctor"
subpackages="$pkgname-doc"
-source="https://github.com/jirutka/$pkgname/archive/v$pkgver/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+source="https://github.com/jirutka/esh/archive/v$pkgver/esh-$pkgver.tar.gz"
check() {
- cd "$builddir"
make test
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" prefix=/usr install
}
diff --git a/main/espeak/APKBUILD b/main/espeak/APKBUILD
index 3ba76b958c8..eccda38e2c1 100644
--- a/main/espeak/APKBUILD
+++ b/main/espeak/APKBUILD
@@ -1,11 +1,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=espeak
pkgver=1.48.04
-pkgrel=2
+pkgrel=5
pkgdesc="Speech synthesizer for English and other languages"
-url="http://espeak.sourceforge.net/"
+url="https://espeak.sourceforge.net/"
arch="all"
-license="GPL-3.0"
+license="GPL-3.0-or-later"
subpackages="$pkgname-dev"
makedepends="portaudio-dev"
source="https://downloads.sourceforge.net/project/espeak/espeak/espeak-${pkgver%.*}/espeak-$pkgver-source.zip
@@ -13,6 +13,7 @@ source="https://downloads.sourceforge.net/project/espeak/espeak/espeak-${pkgver%
"
builddir="$srcdir"/$pkgname-$pkgver-source
+options="!check"
build() {
cd "$builddir"/src
diff --git a/main/etckeeper/APKBUILD b/main/etckeeper/APKBUILD
index 6cb20c31a74..48470dd7ce9 100644
--- a/main/etckeeper/APKBUILD
+++ b/main/etckeeper/APKBUILD
@@ -1,18 +1,18 @@
# Contributor: Henrik Riomar <henrik.riomar@gmail.com>
# Maintainer: Henrik Riomar <henrik.riomar@gmail.com>
pkgname=etckeeper
-pkgver=1.18.17
-pkgrel=0
+pkgver=1.18.21
+pkgrel=1
pkgdesc="Store /etc in git."
-url="http://etckeeper.branchable.com"
+url="https://etckeeper.branchable.com/"
arch="noarch"
license="GPL-2.0-or-later"
checkdepends="bats fakeroot"
depends="findutils git"
subpackages="
$pkgname-doc
- $pkgname-bash-completion:bashcomp:noarch
- $pkgname-zsh-completion:zshcomp:noarch
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
"
install="$pkgname.post-install $pkgname.pre-deinstall"
source="$pkgname-$pkgver.tar.gz::https://git.joeyh.name/index.cgi/etckeeper.git/snapshot/etckeeper-$pkgver.tar.gz
@@ -31,27 +31,6 @@ check() {
make test
}
-bashcomp() {
- depends=""
- pkgdesc="Bash completions for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
-
- install -dm755 "$subpkgdir"/usr/share
- mv "$pkgdir"/usr/share/bash-completion \
- "$subpkgdir"/usr/share/
-}
-
-zshcomp() {
- depends=""
- pkgdesc="Zsh completions for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel zsh"
-
- install -dm755 "$subpkgdir"/usr/share/zsh
- mv "$pkgdir"/usr/share/zsh/vendor-completions \
- "$subpkgdir"/usr/share/zsh/site-functions
- rmdir "$pkgdir"/usr/share/zsh
-}
-
package() {
make install DESTDIR="$pkgdir"
rm -rf "$pkgdir"/lib/systemd
@@ -63,10 +42,13 @@ package() {
install -m755 -D "$srcdir"/apk-commit_hook \
"$pkgdir"/etc/apk/commit_hooks.d/"$pkgname"
+
+ mv "$pkgdir"/usr/share/zsh/vendor-completions \
+ "$pkgdir"/usr/share/zsh/site-functions
}
sha512sums="
-6e75d0f38c8d27ba290ab6e1a51d50ca7a736c958da7a1edb792a5c7f1eedd4848adbb43571425f127bf2c5fe39d5b7887968b09178ca5385ec0abeaeb6cfa00 etckeeper-1.18.17.tar.gz
+c23bd0f24e04b565ceae77e552eb00926dae16f4a6c8c183c5a6bb404d5351ee7a040e01287b7c0d3d530bc8dea62cd2336b3151a349998aa9c145f1258ac2a0 etckeeper-1.18.21.tar.gz
d0ff88615359e8b03da5f9162a7bae3f32c06891a8899096025283d77e950dd72280c6c19b8eb8a4cde08742c6ca715cd32c37c16e8bbf2d030e9fd16a1fc940 apk-commit_hook
471c1f8f2cce94248f679e56e2bfc4ac384d9b6944d4023a2ebdd3d197f95d335f4ccc0d3d946a68513d3cc5638189fa8e04923f097605435fd3e4f01c60e1c2 etckeeper.cron
"
diff --git a/main/ethtool/APKBUILD b/main/ethtool/APKBUILD
index f8a19fa0968..c2318492853 100644
--- a/main/ethtool/APKBUILD
+++ b/main/ethtool/APKBUILD
@@ -1,18 +1,18 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=ethtool
-pkgver=5.18
+pkgver=6.7
pkgrel=0
pkgdesc="Utility for controlling network drivers and hardware"
url="https://mirrors.edge.kernel.org/pub/software/network/ethtool/"
arch="all"
license="GPL-2.0-only"
makedepends="linux-headers libmnl-dev"
-subpackages="$pkgname-doc $pkgname-bash-completion:bashcomp:noarch"
+subpackages="$pkgname-doc $pkgname-bash-completion"
source="https://www.kernel.org/pub/software/network/ethtool/ethtool-$pkgver.tar.xz"
-[ "$CARCH" = "s390x" ] && options="!check" # failing tests but we need it anyway
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -29,14 +29,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-bashcomp() {
- depends=""
- pkgdesc="Bash completions for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
-
- amove usr/share/bash-completion/completions
-}
-
sha512sums="
-bd53e64d5cfe0fe4c3fbc9ec84e64f77b72d0229bbb611575007fd1e4c5c13611440b292edc875f1916707477e1d1e19b8f46785285d6b88066e9b9aafba9753 ethtool-5.18.tar.xz
+07d13f9a8f980dab73c07e7c68179cfee272f53103c6dfbce1814b768e3313dc671a0cbefc63d4d53a616876bc1f96db8db2444617e4d58d741fae3acf0be524 ethtool-6.7.tar.xz
"
diff --git a/main/eudev/78-sound-card.rules_Import_ID_PATH_early.patch b/main/eudev/78-sound-card.rules_Import_ID_PATH_early.patch
new file mode 100644
index 00000000000..d17fac07766
--- /dev/null
+++ b/main/eudev/78-sound-card.rules_Import_ID_PATH_early.patch
@@ -0,0 +1,42 @@
+From 917ae648f61681257000c3a1f0aca3fbd646563a Mon Sep 17 00:00:00 2001
+From: Johannes Nixdorf <mixi@shadowice.org>
+Date: Fri, 22 Dec 2023 10:27:08 +0100
+Subject: [PATCH] 78-sound-card.rules: Import ID_PATH early
+
+Pipewire requires ID_PATH to use the same device names as with systemd's
+udev. Some rules, such as the ones in asahi-audio [1] use those names, and
+fail if they don't match [2].
+
+On systemd's udev this is instead imported in 71-seat.rules, which we don't
+have.
+
+[1]: https://github.com/AsahiLinux/asahi-audio
+[2]: https://github.com/AsahiLinux/asahi-audio/issues/16
+
+Signed-off-by: Johannes Nixdorf <mixi@shadowice.org>
+---
+ rules/78-sound-card.rules | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/rules/78-sound-card.rules b/rules/78-sound-card.rules
+index f2fc27739..c49bd1d4e 100644
+--- a/rules/78-sound-card.rules
++++ b/rules/78-sound-card.rules
+@@ -38,6 +38,8 @@ KERNEL!="card*", GOTO="sound_end"
+ ENV{SOUND_INITIALIZED}="1"
+
+ IMPORT{builtin}="hwdb"
++IMPORT{builtin}="path_id"
++
+ SUBSYSTEMS=="usb", IMPORT{builtin}="usb_id"
+ SUBSYSTEMS=="usb", GOTO="skip_pci"
+
+@@ -62,8 +64,6 @@ LABEL="skip_pci"
+ ENV{ID_SERIAL}=="?*", ENV{ID_USB_INTERFACE_NUM}=="?*", ENV{ID_ID}="$env{ID_BUS}-$env{ID_SERIAL}-$env{ID_USB_INTERFACE_NUM}"
+ ENV{ID_SERIAL}=="?*", ENV{ID_USB_INTERFACE_NUM}=="", ENV{ID_ID}="$env{ID_BUS}-$env{ID_SERIAL}"
+
+-IMPORT{builtin}="path_id"
+-
+ # The values used here for $SOUND_FORM_FACTOR and $SOUND_CLASS should be kept
+ # in sync with those defined for PulseAudio's src/pulse/proplist.h
+ # PA_PROP_DEVICE_FORM_FACTOR, PA_PROP_DEVICE_CLASS properties.
diff --git a/main/eudev/APKBUILD b/main/eudev/APKBUILD
index a161ebba57b..bc8b48ddd0f 100644
--- a/main/eudev/APKBUILD
+++ b/main/eudev/APKBUILD
@@ -2,37 +2,45 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
pkgname=eudev
-pkgver=3.2.11
+pkgver=3.2.14
_pkgver=${pkgver/_pre/-pre}
-pkgrel=0
+pkgrel=2
pkgdesc="init system agnostic fork of systemd-udev"
url="https://github.com/eudev-project/eudev"
arch="all"
-license="GPL-2.0-only"
+license="GPL-2.0-or-later"
depends="udev-init-scripts"
replaces="udev"
provides="udev=176"
provider_priority=100
-makedepends="gperf glib-dev linux-headers kmod-dev gobject-introspection-dev
- util-linux-dev"
+makedepends="
+ gperf
+ glib-dev
+ linux-headers
+ kmod-dev
+ gobject-introspection-dev
+ util-linux-dev
+ "
checkdepends="tree xz perl"
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs $pkgname-openrc
- $pkgname-netifnames::noarch $pkgname-rule-generator::noarch"
+ $pkgname-netifnames::noarch $pkgname-rule-generator::noarch $pkgname-hwids"
triggers="eudev.trigger=/lib/udev/rules.d:/usr/lib/udev/rules.d"
source="https://github.com/eudev-project/eudev/releases/download/v$_pkgver/eudev-$_pkgver.tar.gz
default-rules.patch
load-fbcon.patch
+ no-sgx.patch
+ 78-sound-card.rules_Import_ID_PATH_early.patch
udev-postmount.initd
- setup-udev
"
builddir="$srcdir"/"$pkgname"-"$_pkgver"
-[ "$CARCH" = "riscv64" ] && options="$options textrels"
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
- # we need disable kmod til busybox depmod generates binary formats:
- # modules.dep.bin modules.alias.bin modules.symbols.bin
- # modules.builtin.bin
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -43,7 +51,6 @@ build() {
--libdir=/usr/lib \
--enable-split-usr \
--enable-manpages \
- --disable-hwdb \
--enable-kmod \
--exec-prefix=/ \
--bindir=/bin
@@ -60,8 +67,6 @@ package() {
install -Dm755 "$srcdir"/udev-postmount.initd \
"$pkgdir"/etc/init.d/udev-postmount
- install -Dm755 "$srcdir"/setup-udev \
- "$pkgdir"/sbin/setup-udev
}
dev() {
@@ -85,9 +90,7 @@ netifnames() {
pkgdesc="udev rules for systemd-style interface names"
depends="!$pkgname-rule-generator"
- mkdir -p "$subpkgdir"/lib/udev/rules.d
- mv "$pkgdir"/lib/udev/rules.d/80-net-name-slot.rules \
- "$subpkgdir"/lib/udev/rules.d/
+ amove lib/udev/rules.d/80-net-name-slot.rules
}
generator() {
@@ -106,10 +109,20 @@ generator() {
"$subpkgdir"/lib/udev/rule_generator.functions
}
+hwids() {
+ pkgdesc="Hardware identification databases (from eudev)"
+ provides="hwids-udev=$pkgver-r$pkgrel"
+ install_if="hwdata eudev=$pkgver-r$pkgrel"
+ triggers="eudev-hwids.trigger=/lib/udev/hwdb.d:/etc/udev/hwdb.d:/usr/lib/udev/hwdb.d"
+
+ amove etc/udev/hwdb.d
+}
+
sha512sums="
-2be64e24f0af30b010d0929287f5053dff908ec5ce45817304869027ce7c4ba1e31babc0f5fabd712cd301c697bcb7c2afe297a8855e96042fec6a087a786311 eudev-3.2.11.tar.gz
+1e7593b53c5508a99fe7ff5d24d1d09b3753d9cfba086e7d8cc6ab80cc88013ec687dc4f1eac7b7889051f4e5fd5c40d2b87f5f2d948479d679c8836014d08e0 eudev-3.2.14.tar.gz
683e3c26ca4f058303f8db7d4977e436d728386ee6866719c4f11ff31db27572d3f486f51d3173310e1ec2cf995fa4c396f2415bdf45dabdd80e6e55e798a314 default-rules.patch
ff5928fd555e095d9f3234dd004ac4c5925405d308777e9b018e8e03112cd109935b51d75a3bc4a2a1018eb486e8a5e5ef6ee978860002a8fff93b116e9721f5 load-fbcon.patch
+1558800e4132ed2c10b37805fca044ff3129cdfebec71d3e758143fab9ffda824e86d52960926a9042b21fc22f0cda8fe6690484913bd7c3dc4436af92923efe no-sgx.patch
+8872f124267485d682dea9c7c47aaa8c228aadef90981c430af7ca7f7025b344d2c3c07c653241190a3f44096aa1d3aff990dd05210f5b278d999d6fede659b5 78-sound-card.rules_Import_ID_PATH_early.patch
8ef1b911843ab13acb1c1b9b7a0a5cd76659f395c3db9e579429556f23eacebb414507dc0231e2455e7589bc70054fa1e6b6dd93dd833f7101c0da0597aabf88 udev-postmount.initd
-4e57349a9516d495a6eb6dd437e179c1f990b437c4e671667f64d4361fcd827a2172e4ca120fbd324ca29e9acc65a361cd22a75b8dd8437389cc19ba62198f83 setup-udev
"
diff --git a/main/eudev/eudev-hwids.trigger b/main/eudev/eudev-hwids.trigger
new file mode 100644
index 00000000000..b1516251b05
--- /dev/null
+++ b/main/eudev/eudev-hwids.trigger
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+udevadm hwdb --update
+
+exit 0
diff --git a/main/eudev/no-sgx.patch b/main/eudev/no-sgx.patch
new file mode 100644
index 00000000000..e06ae141b5c
--- /dev/null
+++ b/main/eudev/no-sgx.patch
@@ -0,0 +1,17 @@
+see https://gitlab.alpinelinux.org/alpine/aports/-/issues/15043
+we don't have sgx support
+--
+diff --git a/rules/50-udev-default.rules b/rules/50-udev-default.rules
+index ff50cb8..2cbd96e 100644
+--- a/rules/50-udev-default.rules
++++ b/rules/50-udev-default.rules
+@@ -39,9 +39,6 @@ SUBSYSTEM=="cec", GROUP="video"
+ SUBSYSTEM=="drm", KERNEL=="renderD*", GROUP="video", MODE="0666"
+ SUBSYSTEM=="kfd", GROUP="video", MODE="0666"
+
+-SUBSYSTEM=="misc", KERNEL=="sgx_enclave", GROUP="sgx", MODE="0660"
+-SUBSYSTEM=="misc", KERNEL=="sgx_vepc", GROUP="sgx", MODE="0660"
+-
+ # When using static_node= with non-default permissions, also update
+ # tmpfiles.d/static-nodes-permissions.conf.in to keep permissions synchronized.
+
diff --git a/main/eudev/setup-udev b/main/eudev/setup-udev
deleted file mode 100644
index 1b1c5664bca..00000000000
--- a/main/eudev/setup-udev
+++ /dev/null
@@ -1,28 +0,0 @@
-#!/bin/sh
-
-while getopts "hn" opt; do
- case "$opt" in
- h) echo "remove mdev and enable udev from boot"
- echo "usage: $0 [-n]"
- echo "options:"
- echo " -n Do not start udev"
- ;;
- n) dryrun=1
- ;;
- esac
-done
-
-rm -f /etc/runlevels/sysinit/hwdrivers /etc/runlevels/sysinit/mdev
-
-for i in sysinit/udev-trigger sysinit/udev default/udev-postmount; do
- if ! [ -e /etc/runlevels/$i ]; then
- ln -s /etc/init.d/${i#*/} /etc/runlevels/$i
- fi
-done
-
-if [ -z "$dryrun" ] && ! rc-service --quiet udev status; then
- rc-service udev start
- rc-service udev-postmount start
- rc-service udev-trigger start
- rc-service udev-settle start
-fi
diff --git a/main/eventlog/APKBUILD b/main/eventlog/APKBUILD
index a4eb1a4c4b5..68c81e930fe 100644
--- a/main/eventlog/APKBUILD
+++ b/main/eventlog/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=eventlog
pkgver=0.2.13
-pkgrel=2
+pkgrel=4
pkgdesc="API to format and send structured log messages"
arch="all"
url="https://github.com/balabit/eventlog"
diff --git a/main/execline/APKBUILD b/main/execline/APKBUILD
index a8837c4f001..1ad44cd5c4f 100644
--- a/main/execline/APKBUILD
+++ b/main/execline/APKBUILD
@@ -1,14 +1,14 @@
-# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
# Contributor: John Regan <john@jrjrtech.com>
+# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
pkgname=execline
-pkgver=2.9.0.1
+pkgver=2.9.5.1
pkgrel=0
pkgdesc="A small scripting language, to be used in place of a shell in non-interactive scripts."
-url="http://skarnet.org/software/$pkgname/"
+url=https://skarnet.org/software/execline/
arch="all"
license="ISC"
options="!check"
-makedepends="skalibs-dev>=2.12"
+makedepends="skalibs-dev>=2.14"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
source="https://skarnet.org/software/execline/execline-$pkgver.tar.gz"
@@ -18,7 +18,8 @@ build() {
--enable-static \
--disable-allstatic \
--libdir=/usr/lib \
- --with-dynlib=/lib
+ --with-dynlib=/lib \
+ --enable-multicall
make
}
@@ -41,5 +42,5 @@ static() {
}
sha512sums="
-8115a7e0e83789cfd85750fc8e96eea0201dbf6f7d1f194e5c0a008ebf40d8fad8b802a5209d3fe9805eeb9b7542af306d5328e159a15bd7425a64ef1a51ebc3 execline-2.9.0.1.tar.gz
+11bfd825b0b72cba118eff9ecb97672d0c015e0bd50c7c8f83e101ee41c323b3a3c82e42fed75b6bc65ab6edb85a8bbeef8900b594cf651825b6313a5123c88f execline-2.9.5.1.tar.gz
"
diff --git a/main/expat/APKBUILD b/main/expat/APKBUILD
index 0f77e858c06..47efe6918bc 100644
--- a/main/expat/APKBUILD
+++ b/main/expat/APKBUILD
@@ -1,16 +1,28 @@
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=expat
-pkgver=2.4.8
+pkgver=2.6.2
pkgrel=0
pkgdesc="XML Parser library written in C"
url="https://libexpat.github.io/"
arch="all"
-license='MIT'
+license="MIT"
checkdepends="bash"
source="https://downloads.sourceforge.net/project/expat/expat/$pkgver/expat-$pkgver.tar.bz2"
-subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
+# pull in xmlwf for dev
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+# Order matters, ensure -dev does not gobble up static libraries.
+subpackages="$pkgname-static $pkgname-dev $pkgname-doc lib$pkgname:libs"
# secfixes:
+# 2.6.2-r0:
+# - CVE-2024-28757
+# 2.6.0-r0:
+# - CVE-2023-52425
+# - CVE-2023-52426
+# 2.5.0-r0:
+# - CVE-2022-43680
+# 2.4.9-r0:
+# - CVE-2022-40674
# 2.4.5-r0:
# - CVE-2022-25235
# - CVE-2022-25236
@@ -55,5 +67,5 @@ package() {
}
sha512sums="
-46cc9d725f359b77681a2875bfefa15ceee50eb9513f6577607c0c5833dfa4241565c74f26b84b38d802c3cd8c32f00204fd74272bcecbd21229425764eef86c expat-2.4.8.tar.bz2
+15811413e92a632272188781cc3f2a9e52ed62f6edfad9b2eeeca0946e53132b6c9ca6dc460eda766d6a4e68e5920128335d705f9556b5aa3f77593658780470 expat-2.6.2.tar.bz2
"
diff --git a/main/expect/APKBUILD b/main/expect/APKBUILD
index a365fdba6db..b84f6dc76da 100644
--- a/main/expect/APKBUILD
+++ b/main/expect/APKBUILD
@@ -2,15 +2,15 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=expect
pkgver=5.45.4
-pkgrel=2
+pkgrel=4
pkgdesc="A tool for automating interactive applications"
url="https://core.tcl-lang.org/expect/index"
arch="all"
-# http://expect.sourceforge.net/FAQ.html#q6
+# https://expect.sourceforge.net/FAQ.html#q6
license="NIST-PD"
makedepends="tcl-dev"
subpackages="$pkgname-dev $pkgname-doc"
-source="https://downloads.sourceforge.net/project/expect/Expect/$pkgver/$pkgname$pkgver.tar.gz
+source="https://downloads.sourceforge.net/project/expect/Expect/$pkgver/expect$pkgver.tar.gz
07-file-handle.patch
09-unsafe-traps.patch
10-manpage.patch
@@ -22,12 +22,10 @@ builddir="$srcdir"/$pkgname$pkgver
prepare() {
default_prepare
- cd "$builddir"
update_config_sub
}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -42,12 +40,10 @@ build() {
}
check() {
- cd "$builddir"
make test
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
diff --git a/main/ez-ipupdate/APKBUILD b/main/ez-ipupdate/APKBUILD
index 39db59e4e6a..0452d14400e 100644
--- a/main/ez-ipupdate/APKBUILD
+++ b/main/ez-ipupdate/APKBUILD
@@ -2,53 +2,54 @@
# Maintainer: Jeremy Thomerson <jeremy@thomersonfamily.com>
pkgname=ez-ipupdate
pkgver=3.0.10
-pkgrel=9
+pkgrel=13
pkgdesc="utility for updating your host name for many of the dynamic DNS services (ez-ip.net, dyndns.org, etc)"
url="http://ez-ipupdate.com/"
arch="all"
-license="GPL"
-depends=""
-makedepends=""
+license="GPL-2.0-or-later"
pkgusers="ipupdate"
pkggroups="ipupdate"
install="$pkgname.pre-install"
-subpackages=""
-source="https://dev.alpinelinux.org/archive/ez-ipupdate/$pkgname-$pkgver.tar.gz
+makedepends="autoconf"
+subpackages="$pkgname-openrc"
+source="https://dev.alpinelinux.org/archive/ez-ipupdate/ez-ipupdate-$pkgver.tar.gz
ez-ipupdate.confd
ez-ipupdate.initd
errno.patch
+ implicit.patch
"
-_builddir="$srcdir"/$pkgname-$pkgver
+options="!check"
+
prepare() {
- cd "$_builddir"
- for A in ../*.patch ; do
- patch -p1 < $A
- done
+ default_prepare
+
+ autoconf
+ update_config_sub
}
build() {
- cd "$_builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
- --infodir=/usr/share/info \
- || return 1
- make || return 1
+ --infodir=/usr/share/info
+ make
}
package() {
- cd "$_builddir"
make DESTDIR="$pkgdir" install
install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
- install -d -o ipupdate -g ipupdate "$pkgdir"/var/lib/$pkgname
+ install -d -o ipupdate -g ipupdate "$pkgdir"/var/lib/$pkgname
}
-sha512sums="dfcbdb2f6a53c3781c31d04269e36819b6bcdb53dfcf065f66c36de310420da7c7dc107a18bc8c7d75cfe1e2964bc9a1e3289502295ad386eee12e8a83a6b388 ez-ipupdate-3.0.10.tar.gz
+sha512sums="
+dfcbdb2f6a53c3781c31d04269e36819b6bcdb53dfcf065f66c36de310420da7c7dc107a18bc8c7d75cfe1e2964bc9a1e3289502295ad386eee12e8a83a6b388 ez-ipupdate-3.0.10.tar.gz
510f7c6cfb6b9c08ecf8940d80ef7ec46acbbd57c0deed7304348e91616affa3381429118aa1e7d5315d61478e54c70599eed2e414cbc75b7df2b8f276648452 ez-ipupdate.confd
6c7514b91b82e34a489f173e225b04463e33bbdc58d13828c1daef159d4121f57d53e28b54799eb27935c39305507314de480368904e52702ace04cabf631013 ez-ipupdate.initd
-906f25047ae422beeb80b07af07e8516c97cb51dc49298357b11e03919b562f474bc4b45f2eb636e6c7e0e2de787569d1bac387913a046fc4e6d0dffa2a5c502 errno.patch"
+906f25047ae422beeb80b07af07e8516c97cb51dc49298357b11e03919b562f474bc4b45f2eb636e6c7e0e2de787569d1bac387913a046fc4e6d0dffa2a5c502 errno.patch
+d85f051d3d8852630eebcaca61adc67ce06d4300bf2fed562920931d734fa20289de00f442cf1e844599af3de888655e696fe4935234f54fecd5a4a305d9c893 implicit.patch
+"
diff --git a/main/ez-ipupdate/implicit.patch b/main/ez-ipupdate/implicit.patch
new file mode 100644
index 00000000000..c5baf32c934
--- /dev/null
+++ b/main/ez-ipupdate/implicit.patch
@@ -0,0 +1,26 @@
+diff --git a/ez-ipupdate.c b/ez-ipupdate.c
+index 5d2b377..2521318 100644
+--- a/ez-ipupdate.c
++++ b/ez-ipupdate.c
+@@ -38,6 +38,9 @@
+ # include <config.h>
+ #endif
+
++#include <time.h>
++#include <string.h>
++
+ // you man very well need to edit this, don't worry though, email is only sent
+ // if bad things happend and it has to exit when in daemon mode.
+ #define SEND_EMAIL_CMD "mail"
+diff --git a/md5.c b/md5.c
+index 978a9e4..95bd85e 100644
+--- a/md5.c
++++ b/md5.c
+@@ -27,6 +27,7 @@
+ #ifdef USE_MD5
+
+ #include <stdlib.h>
++#include <string.h>
+ #ifdef HAVE_STRING_H
+ # include <string.h>
+ #else
diff --git a/main/f2fs-tools/APKBUILD b/main/f2fs-tools/APKBUILD
index 4d8173d041b..eee20184462 100644
--- a/main/f2fs-tools/APKBUILD
+++ b/main/f2fs-tools/APKBUILD
@@ -1,16 +1,18 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=f2fs-tools
-pkgver=1.15.0
-pkgrel=0
+pkgver=1.16.0
+pkgrel=3
pkgdesc="Tools for the Flash-Friendly File System (F2FS)"
url="http://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs-tools.git"
arch="all"
-license="GPL-2.0-or-later LGPL-2.1-or-later"
+license="GPL-2.0-or-later OR LGPL-2.1-or-later"
makedepends="automake autoconf bsd-compat-headers
libtool util-linux-dev linux-headers"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-libs"
source="https://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs-tools.git/snapshot/f2fs-tools-$pkgver.tar.gz
+ no-lfs64.patch
"
+options="!check"
# secfixes:
# 1.14.0-r0:
@@ -39,5 +41,6 @@ package() {
}
sha512sums="
-61e40f16296091b55cec2dbdc6306af6abc2d3f854f39ef03a741b7f6f47348f915498375789f017f8da27fa7d27c79c905dd047693518adde503ea7ebf89387 f2fs-tools-1.15.0.tar.gz
+ea198cebf7c5bb0c42c9b53bc80484495c403b1ed1354eb7cb7b4f63ed9a5c81653a76eaf1bc35067171fa5fd99b1564178c5440c21b6b025f4e83b9def82680 f2fs-tools-1.16.0.tar.gz
+f7321994c9ded27c01373da100549c6202c24d167888e729091befe672b922bbdb83374942978942bbe5a37b2d4d286d9214bee16afe324cd0c5cd91cf81a0ff no-lfs64.patch
"
diff --git a/main/f2fs-tools/no-lfs64.patch b/main/f2fs-tools/no-lfs64.patch
new file mode 100644
index 00000000000..37ff28888ee
--- /dev/null
+++ b/main/f2fs-tools/no-lfs64.patch
@@ -0,0 +1,458 @@
+From b15b6cc56ac7764be17acbdbf96448f388992adc Mon Sep 17 00:00:00 2001
+From: Waldemar Brodkorb <wbx@openadk.org>
+Date: Wed, 23 Aug 2023 15:41:28 +0200
+Subject: f2fs-tools: convert to lseek() and kill lseek64
+
+This patch replaces lseek64 with lseek() having #define _FILE_OFFSET_BITS 64.
+
+Signed-off-by: Waldemar Brodkorb <wbx@openadk.org>
+Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
+---
+ configure.ac | 2 --
+ fsck/Makefile.am | 2 +-
+ include/android_config.h | 4 ----
+ lib/Makefile.am | 2 +-
+ lib/libf2fs.c | 3 ---
+ lib/libf2fs_io.c | 47 ++++++++++++++++++-----------------------------
+ lib/libf2fs_zoned.c | 1 -
+ mkfs/Makefile.am | 4 ++--
+ mkfs/f2fs_format.c | 2 --
+ mkfs/f2fs_format_main.c | 2 --
+ mkfs/f2fs_format_utils.c | 10 ----------
+ mkfs/f2fs_format_utils.h | 2 --
+ tools/Makefile.am | 2 +-
+ tools/f2fs_io/Makefile.am | 2 +-
+ tools/f2fs_io/f2fs_io.c | 6 ------
+ tools/f2fs_io_parse.c | 1 -
+ tools/f2fscrypt.c | 9 ---------
+ tools/fibmap.c | 7 -------
+ 18 files changed, 24 insertions(+), 84 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index efab8d8..123ddbb 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -187,8 +187,6 @@ AC_CHECK_FUNCS_ONCE([
+ getmntent
+ getuid
+ keyctl
+- llseek
+- lseek64
+ memset
+ setmntent
+ clock_gettime
+diff --git a/fsck/Makefile.am b/fsck/Makefile.am
+index 579dd26..40d31b8 100644
+--- a/fsck/Makefile.am
++++ b/fsck/Makefile.am
+@@ -1,7 +1,7 @@
+ ## Makefile.am
+
+ AM_CPPFLAGS = ${libuuid_CFLAGS} -I$(top_srcdir)/include
+-AM_CFLAGS = -Wall
++AM_CFLAGS = -Wall -D_FILE_OFFSET_BITS=64
+ sbin_PROGRAMS = fsck.f2fs
+ noinst_HEADERS = common.h dict.h dqblk_v2.h f2fs.h fsck.h node.h quotaio.h \
+ quotaio_tree.h quotaio_v2.h xattr.h compress.h
+diff --git a/include/android_config.h b/include/android_config.h
+index 141fe06..da8abcb 100644
+--- a/include/android_config.h
++++ b/include/android_config.h
+@@ -30,8 +30,6 @@
+ #define HAVE_FSTAT 1
+ #define HAVE_FSTAT64 1
+ #define HAVE_GETMNTENT 1
+-#define HAVE_LLSEEK 1
+-#define HAVE_LSEEK64 1
+ #define HAVE_MEMSET 1
+ #define HAVE_SELINUX_ANDROID_H 1
+ #define HAVE_SETMNTENT 1
+@@ -67,7 +65,6 @@
+ #define HAVE_FSTAT 1
+ #define HAVE_FSTAT64 1
+ #define HAVE_GETMNTENT 1
+-#define HAVE_LLSEEK 1
+ #define HAVE_MEMSET 1
+ #define HAVE_SPARSE_SPARSE_H 1
+ #define HAVE_LIBLZ4 1
+@@ -78,6 +75,5 @@
+ #endif
+
+ #if defined(_WIN32)
+-#define HAVE_LSEEK64
+ #define HAVE_SPARSE_SPARSE_H 1
+ #endif
+diff --git a/lib/Makefile.am b/lib/Makefile.am
+index 871d773..69d46f8 100644
+--- a/lib/Makefile.am
++++ b/lib/Makefile.am
+@@ -3,7 +3,7 @@
+ lib_LTLIBRARIES = libf2fs.la
+
+ libf2fs_la_SOURCES = libf2fs.c libf2fs_io.c libf2fs_zoned.c nls_utf8.c
+-libf2fs_la_CFLAGS = -Wall
++libf2fs_la_CFLAGS = -Wall -D_FILE_OFFSET_BITS=64
+ libf2fs_la_CPPFLAGS = -I$(top_srcdir)/include
+ libf2fs_la_LDFLAGS = -version-info $(LIBF2FS_CURRENT):$(LIBF2FS_REVISION):$(LIBF2FS_AGE)
+
+diff --git a/lib/libf2fs.c b/lib/libf2fs.c
+index 577a7e8..c3d5744 100644
+--- a/lib/libf2fs.c
++++ b/lib/libf2fs.c
+@@ -6,9 +6,6 @@
+ *
+ * Dual licensed under the GPL or LGPL version 2 licenses.
+ */
+-#define _LARGEFILE64_SOURCE
+-#define _FILE_OFFSET_BITS 64
+-
+ #include <f2fs_fs.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+diff --git a/lib/libf2fs_io.c b/lib/libf2fs_io.c
+index 1a8167d..74e5f3a 100644
+--- a/lib/libf2fs_io.c
++++ b/lib/libf2fs_io.c
+@@ -11,8 +11,6 @@
+ *
+ * Dual licensed under the GPL or LGPL version 2 licenses.
+ */
+-#define _LARGEFILE64_SOURCE
+-
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+@@ -67,22 +65,13 @@ static int __get_device_fd(__u64 *offset)
+ return -1;
+ }
+
+-#ifndef HAVE_LSEEK64
+-typedef off_t off64_t;
+-
+-static inline off64_t lseek64(int fd, __u64 offset, int set)
+-{
+- return lseek(fd, offset, set);
+-}
+-#endif
+-
+ /* ---------- dev_cache, Least Used First (LUF) policy ------------------- */
+ /*
+ * Least used block will be the first victim to be replaced when max hash
+ * collision exceeds
+ */
+ static bool *dcache_valid; /* is the cached block valid? */
+-static off64_t *dcache_blk; /* which block it cached */
++static off_t *dcache_blk; /* which block it cached */
+ static uint64_t *dcache_lastused; /* last used ticks for cache entries */
+ static char *dcache_buf; /* cached block data */
+ static uint64_t dcache_usetick; /* current use tick */
+@@ -172,7 +161,7 @@ static int dcache_alloc_all(long n)
+ {
+ if (n <= 0)
+ return -1;
+- if ((dcache_blk = (off64_t *) malloc(sizeof(off64_t) * n)) == NULL
++ if ((dcache_blk = (off_t *) malloc(sizeof(off_t) * n)) == NULL
+ || (dcache_lastused = (uint64_t *)
+ malloc(sizeof(uint64_t) * n)) == NULL
+ || (dcache_buf = (char *) malloc (F2FS_BLKSIZE * n)) == NULL
+@@ -257,7 +246,7 @@ static inline long dcache_relocate(long entry, int n)
+ dcache_config.num_cache_entry;
+ }
+
+-static long dcache_find(off64_t blk)
++static long dcache_find(off_t blk)
+ {
+ register long n = dcache_config.num_cache_entry;
+ register unsigned m = dcache_config.max_hash_collision;
+@@ -278,10 +267,10 @@ static long dcache_find(off64_t blk)
+ }
+
+ /* Physical read into cache */
+-static int dcache_io_read(int fd, long entry, off64_t offset, off64_t blk)
++static int dcache_io_read(int fd, long entry, off_t offset, off_t blk)
+ {
+- if (lseek64(fd, offset, SEEK_SET) < 0) {
+- MSG(0, "\n lseek64 fail.\n");
++ if (lseek(fd, offset, SEEK_SET) < 0) {
++ MSG(0, "\n lseek fail.\n");
+ return -1;
+ }
+ if (read(fd, dcache_buf + entry * F2FS_BLKSIZE, F2FS_BLKSIZE) < 0) {
+@@ -308,12 +297,12 @@ static int dcache_io_read(int fd, long entry, off64_t offset, off64_t blk)
+ * 1: cache not available (uninitialized)
+ * -1: error
+ */
+-static int dcache_update_rw(int fd, void *buf, off64_t offset,
++static int dcache_update_rw(int fd, void *buf, off_t offset,
+ size_t byte_count, bool is_write)
+ {
+- off64_t blk;
++ off_t blk;
+ int addr_in_blk;
+- off64_t start;
++ off_t start;
+
+ if (!dcache_initialized)
+ dcache_init(); /* auto initialize */
+@@ -377,13 +366,13 @@ static int dcache_update_rw(int fd, void *buf, off64_t offset,
+ * return value: 1: cache not available
+ * 0: success, -1: I/O error
+ */
+-int dcache_update_cache(int fd, void *buf, off64_t offset, size_t count)
++int dcache_update_cache(int fd, void *buf, off_t offset, size_t count)
+ {
+ return dcache_update_rw(fd, buf, offset, count, true);
+ }
+
+ /* handles read into cache + read into buffer */
+-int dcache_read(int fd, void *buf, off64_t offset, size_t count)
++int dcache_read(int fd, void *buf, off_t offset, size_t count)
+ {
+ return dcache_update_rw(fd, buf, offset, count, false);
+ }
+@@ -395,7 +384,7 @@ int dev_read_version(void *buf, __u64 offset, size_t len)
+ {
+ if (c.sparse_mode)
+ return 0;
+- if (lseek64(c.kd, (off64_t)offset, SEEK_SET) < 0)
++ if (lseek(c.kd, (off_t)offset, SEEK_SET) < 0)
+ return -1;
+ if (read(c.kd, buf, len) < 0)
+ return -1;
+@@ -534,10 +523,10 @@ int dev_read(void *buf, __u64 offset, size_t len)
+
+ /* err = 1: cache not available, fall back to non-cache R/W */
+ /* err = 0: success, err=-1: I/O error */
+- err = dcache_read(fd, buf, (off64_t)offset, len);
++ err = dcache_read(fd, buf, (off_t)offset, len);
+ if (err <= 0)
+ return err;
+- if (lseek64(fd, (off64_t)offset, SEEK_SET) < 0)
++ if (lseek(fd, (off_t)offset, SEEK_SET) < 0)
+ return -1;
+ if (read(fd, buf, len) < 0)
+ return -1;
+@@ -580,9 +569,9 @@ int dev_write(void *buf, __u64 offset, size_t len)
+ * dcache_update_cache() just update cache, won't do I/O.
+ * Thus even no error, we need normal non-cache I/O for actual write
+ */
+- if (dcache_update_cache(fd, buf, (off64_t)offset, len) < 0)
++ if (dcache_update_cache(fd, buf, (off_t)offset, len) < 0)
+ return -1;
+- if (lseek64(fd, (off64_t)offset, SEEK_SET) < 0)
++ if (lseek(fd, (off_t)offset, SEEK_SET) < 0)
+ return -1;
+ if (write(fd, buf, len) < 0)
+ return -1;
+@@ -596,7 +585,7 @@ int dev_write_block(void *buf, __u64 blk_addr)
+
+ int dev_write_dump(void *buf, __u64 offset, size_t len)
+ {
+- if (lseek64(c.dump_fd, (off64_t)offset, SEEK_SET) < 0)
++ if (lseek(c.dump_fd, (off_t)offset, SEEK_SET) < 0)
+ return -1;
+ if (write(c.dump_fd, buf, len) < 0)
+ return -1;
+@@ -618,7 +607,7 @@ int dev_fill(void *buf, __u64 offset, size_t len)
+ /* Only allow fill to zero */
+ if (*((__u8*)buf))
+ return -1;
+- if (lseek64(fd, (off64_t)offset, SEEK_SET) < 0)
++ if (lseek(fd, (off_t)offset, SEEK_SET) < 0)
+ return -1;
+ if (write(fd, buf, len) < 0)
+ return -1;
+diff --git a/lib/libf2fs_zoned.c b/lib/libf2fs_zoned.c
+index a0dd8bd..2ab2497 100644
+--- a/lib/libf2fs_zoned.c
++++ b/lib/libf2fs_zoned.c
+@@ -6,7 +6,6 @@
+ *
+ * Dual licensed under the GPL or LGPL version 2 licenses.
+ */
+-#define _LARGEFILE64_SOURCE
+
+ #include <f2fs_fs.h>
+ #include <stdio.h>
+diff --git a/mkfs/Makefile.am b/mkfs/Makefile.am
+index af5b1c7..bfffd88 100644
+--- a/mkfs/Makefile.am
++++ b/mkfs/Makefile.am
+@@ -1,7 +1,7 @@
+ ## Makefile.am
+
+ AM_CPPFLAGS = ${libuuid_CFLAGS} ${libblkid_CFLAGS} -I$(top_srcdir)/include
+-AM_CFLAGS = -Wall -DWITH_BLKDISCARD
++AM_CFLAGS = -Wall -DWITH_BLKDISCARD -D_FILE_OFFSET_BITS=64
+ sbin_PROGRAMS = mkfs.f2fs
+ noinst_HEADERS = f2fs_format_utils.h
+ include_HEADERS = $(top_srcdir)/include/f2fs_fs.h
+@@ -10,7 +10,7 @@ mkfs_f2fs_LDADD = ${libuuid_LIBS} ${libblkid_LIBS} $(top_builddir)/lib/libf2fs.l
+
+ lib_LTLIBRARIES = libf2fs_format.la
+ libf2fs_format_la_SOURCES = f2fs_format_main.c f2fs_format.c f2fs_format_utils.c
+-libf2fs_format_la_CFLAGS = -DWITH_BLKDISCARD
++libf2fs_format_la_CFLAGS = -DWITH_BLKDISCARD -D_FILE_OFFSET_BITS=64
+ libf2fs_format_la_LDFLAGS = ${libblkid_LIBS} ${libuuid_LIBS} -L$(top_builddir)/lib -lf2fs \
+ -version-info $(FMT_CURRENT):$(FMT_REVISION):$(FMT_AGE)
+
+diff --git a/mkfs/f2fs_format.c b/mkfs/f2fs_format.c
+index 019fb3a..d937eda 100644
+--- a/mkfs/f2fs_format.c
++++ b/mkfs/f2fs_format.c
+@@ -6,8 +6,6 @@
+ *
+ * Dual licensed under the GPL or LGPL version 2 licenses.
+ */
+-#define _LARGEFILE64_SOURCE
+-
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <fcntl.h>
+diff --git a/mkfs/f2fs_format_main.c b/mkfs/f2fs_format_main.c
+index d8c9cea..08c1b25 100644
+--- a/mkfs/f2fs_format_main.c
++++ b/mkfs/f2fs_format_main.c
+@@ -6,8 +6,6 @@
+ *
+ * Dual licensed under the GPL or LGPL version 2 licenses.
+ */
+-#define _LARGEFILE64_SOURCE
+-
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <fcntl.h>
+diff --git a/mkfs/f2fs_format_utils.c b/mkfs/f2fs_format_utils.c
+index 448fbaa..437f113 100644
+--- a/mkfs/f2fs_format_utils.c
++++ b/mkfs/f2fs_format_utils.c
+@@ -6,20 +6,10 @@
+ *
+ * Dual licensed under the GPL or LGPL version 2 licenses.
+ */
+-#ifndef _LARGEFILE_SOURCE
+-#define _LARGEFILE_SOURCE
+-#endif
+-#ifndef _LARGEFILE64_SOURCE
+-#define _LARGEFILE64_SOURCE
+-#endif
+ #ifndef _GNU_SOURCE
+ #define _GNU_SOURCE
+ #endif
+
+-#ifndef _FILE_OFFSET_BITS
+-#define _FILE_OFFSET_BITS 64
+-#endif
+-
+ #include <f2fs_fs.h>
+
+ #include <stdio.h>
+diff --git a/mkfs/f2fs_format_utils.h b/mkfs/f2fs_format_utils.h
+index 807e7c3..6a7f687 100644
+--- a/mkfs/f2fs_format_utils.h
++++ b/mkfs/f2fs_format_utils.h
+@@ -6,8 +6,6 @@
+ *
+ * Dual licensed under the GPL or LGPL version 2 licenses.
+ */
+-#define _LARGEFILE64_SOURCE
+-
+ #include "f2fs_fs.h"
+
+ extern struct f2fs_configuration c;
+diff --git a/tools/Makefile.am b/tools/Makefile.am
+index 6b03814..7dfffb1 100644
+--- a/tools/Makefile.am
++++ b/tools/Makefile.am
+@@ -1,7 +1,7 @@
+ ## Makefile.am
+
+ AM_CPPFLAGS = ${libuuid_CFLAGS} -I$(top_srcdir)/include
+-AM_CFLAGS = -Wall
++AM_CFLAGS = -Wall -D_FILE_OFFSET_BITS=64
+ sbin_PROGRAMS =
+ if !WINDOWS
+ sbin_PROGRAMS += fibmap.f2fs parse.f2fs
+diff --git a/tools/f2fs_io/Makefile.am b/tools/f2fs_io/Makefile.am
+index bc4f9d0..f5227ce 100644
+--- a/tools/f2fs_io/Makefile.am
++++ b/tools/f2fs_io/Makefile.am
+@@ -2,7 +2,7 @@
+
+ if LINUX
+ AM_CPPFLAGS = -I$(top_srcdir)/include
+-AM_CFLAGS = -Wall
++AM_CFLAGS = -Wall -D_FILE_OFFSET_BITS=64
+ sbin_PROGRAMS = f2fs_io
+ f2fs_io_SOURCES = f2fs_io.c
+ endif
+diff --git a/tools/f2fs_io/f2fs_io.c b/tools/f2fs_io/f2fs_io.c
+index 771fd16..1f6549b 100644
+--- a/tools/f2fs_io/f2fs_io.c
++++ b/tools/f2fs_io/f2fs_io.c
+@@ -9,12 +9,6 @@
+ #ifndef _GNU_SOURCE
+ #define _GNU_SOURCE
+ #endif
+-#ifndef _LARGEFILE_SOURCE
+-#define _LARGEFILE_SOURCE
+-#endif
+-#ifndef _LARGEFILE64_SOURCE
+-#define _LARGEFILE64_SOURCE
+-#endif
+ #ifndef O_LARGEFILE
+ #define O_LARGEFILE 0
+ #endif
+diff --git a/tools/f2fs_io_parse.c b/tools/f2fs_io_parse.c
+index 47f1194..c3c1005 100644
+--- a/tools/f2fs_io_parse.c
++++ b/tools/f2fs_io_parse.c
+@@ -8,7 +8,6 @@
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+-#define _LARGEFILE64_SOURCE
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+diff --git a/tools/f2fscrypt.c b/tools/f2fscrypt.c
+index 8640ffa..d5222fb 100644
+--- a/tools/f2fscrypt.c
++++ b/tools/f2fscrypt.c
+@@ -7,15 +7,6 @@
+ * Authors: Michael Halcrow <mhalcrow@google.com>,
+ * Ildar Muslukhov <ildarm@google.com>
+ */
+-
+-#ifndef _LARGEFILE_SOURCE
+-#define _LARGEFILE_SOURCE
+-#endif
+-
+-#ifndef _LARGEFILE64_SOURCE
+-#define _LARGEFILE64_SOURCE
+-#endif
+-
+ #ifndef _GNU_SOURCE
+ #define _GNU_SOURCE
+ #endif
+diff --git a/tools/fibmap.c b/tools/fibmap.c
+index bda8238..3acc77b 100644
+--- a/tools/fibmap.c
++++ b/tools/fibmap.c
+@@ -1,13 +1,6 @@
+ #if !defined(__FreeBSD__) && !defined(__NetBSD__) && !defined(__OpenBSD__)
+ #define _XOPEN_SOURCE 600
+ #define _DARWIN_C_SOURCE
+-#define _FILE_OFFSET_BITS 64
+-#ifndef _LARGEFILE_SOURCE
+-#define _LARGEFILE_SOURCE
+-#endif
+-#ifndef _LARGEFILE64_SOURCE
+-#define _LARGEFILE64_SOURCE
+-#endif
+ #ifndef _GNU_SOURCE
+ #define _GNU_SOURCE
+ #endif
+--
+cgit
+
diff --git a/main/fail2ban/APKBUILD b/main/fail2ban/APKBUILD
index 0afb06db362..f1804c0ba96 100644
--- a/main/fail2ban/APKBUILD
+++ b/main/fail2ban/APKBUILD
@@ -2,30 +2,24 @@
# Contributor: Jeff Bilyk <jbilyk@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=fail2ban
-pkgver=0.11.2
-pkgrel=2
+pkgver=1.0.2
+pkgrel=4
pkgdesc="Scans log files for login failures then updates iptables to reject originating ip address"
url="https://www.fail2ban.org/"
arch="noarch"
license="GPL-2.0-or-later"
-depends="python3 iptables ip6tables logrotate"
+depends="python3 iptables logrotate"
makedepends="python3-dev py3-setuptools bash"
-subpackages="$pkgname-tests $pkgname-doc $pkgname-openrc"
+subpackages="$pkgname-pyc $pkgname-tests $pkgname-doc $pkgname-openrc"
source="$pkgname-$pkgver.tar.gz::https://github.com/fail2ban/fail2ban/archive/$pkgver.tar.gz
- $pkgname-747d468-fix-tests.patch::https://github.com/fail2ban/fail2ban/commit/747d4683221b5584f9663695fb48145689b42ceb.patch
- CVE-2021-32749.patch
- python-3.10.patch
- setuptools59.patch
-
+ fail2ban.initd
fail2ban.confd
fail2ban.logrotate
alpine-ssh.jaild
alpine-sshd.filterd
alpine-sshd-ddos.filterd
"
-case "$CARCH" in
- s390x|mips64|armhf) options="!check";;
-esac
+options="!check" # really flaky
# secfixes:
# 0.11.2-r2:
@@ -43,7 +37,7 @@ check() {
package() {
python3 setup.py install --root "$pkgdir"
- install -Dm755 files/gentoo-initd "$pkgdir"/etc/init.d/fail2ban
+ install -Dm755 "$srcdir"/fail2ban.initd "$pkgdir"/etc/init.d/fail2ban
install -Dm644 "$srcdir"/fail2ban.confd "$pkgdir"/etc/conf.d/fail2ban
install -Dm644 "$srcdir"/fail2ban.logrotate \
"$pkgdir"/etc/logrotate.d/fail2ban
@@ -54,8 +48,6 @@ package() {
install -Dm644 "$srcdir"/alpine-sshd-ddos.filterd \
"$pkgdir"/etc/fail2ban/filter.d/alpine-sshd-ddos.conf
- chmod o+r "$pkgdir"/usr/lib/python3*/site-packages/fail2ban*.egg-info/*
-
install -Dm644 -t "$pkgdir"/usr/share/man/man1 man/*.1
install -Dm644 -t "$pkgdir"/usr/share/man/man5 man/*.5
@@ -75,14 +67,11 @@ tests() {
}
sha512sums="
-46b27abd947b00ea64106dbac563ef8afef38eec86684024d47d9a0e8c1969ff864ad6df7f4f8de2aa3eb1af6d769fb6796592d9f0e35521d5f95f17b8cade97 fail2ban-0.11.2.tar.gz
-5c0748c048031d88bc8fd2519bf99a35437b78a08fa942dbccdd2c0e4e9125560a847a8f1dc4414691c922dff558acff988492250be6a1f443a139b0e3762898 fail2ban-747d468-fix-tests.patch
-994de8a4fdd4535607cd1b21553266de015b57bdb7f84f931973cb4b3cadd93fb2fda2d402a4ecccf505dffabf146cd9eae2cd0b635c3cb3dfa2d312539d41be CVE-2021-32749.patch
-acd8f1f97233ed02012b166c62e8dc67b89729b82f0fcd81c871d0e425633f617404390b8301e6b22ef3ddf137f604a47aae7880a9f4ba6601b8d0ffe52b4f85 python-3.10.patch
-7af6a22b60e21557dfbfe2c473156ca22a8f27978c6897d4b3b050f737eeced9dc26921ae52b1de5faa399f89f5fe80364633a4a3c80b100fc99882fd55824b4 setuptools59.patch
+688a84361b5794e1658f53d2d200ce752fe1e3320ddb1742c32c4b4b82a79ace16ae464e7ea3eeb94a0e862bcac73c2d3a0e61dd7b28e179a4c857f950d74dbb fail2ban-1.0.2.tar.gz
+9ba3da904e2169264ca2ad3af1a6c10ba82f559b9c746d20c515ec806263a7fe0576536e38e4e6107cd551048aa8868b45986f1a803a049ea745158678b8d8be fail2ban.initd
1e7581dd04e7777d6fd5c40cc842a7ec5f4e6a0374673d020d89dd61bf4093d48934844bee89bcac9084f9ae44f3beb66e714cf3c2763d79c3e8feb790c5e43b fail2ban.confd
ee1c229db970239ebc707cd484a650fcf2347c70b411728ee2a4a35a72f4118cfccecf2a221275603320e0332efcc16e4979201933cec1aef1c5d5a082fc4940 fail2ban.logrotate
84915967ae1276f1e14a5813680ee2ebf081af1ff452a688ae5f9ac3363f4aff90e39f8e6456b5c33d5699917d28a16308797095fd1ef9bb1fbcb46d4cea3def alpine-ssh.jaild
-3e8e08d5e349e857b51ce34a9d968f16661b34e1cec06bec0aa9a32723bbe9be5a9890dd479331a9cc860821d33b1bf3b8e995182e319dead5a3d434b1816304 alpine-sshd.filterd
+4f982e26d3d066f40172607f20a30edc8a44222185413944584bde50c8ca11baaeedf341a67a7767355bccf88281a47ab80ac121297b2f059aba3d1c58bd567f alpine-sshd.filterd
36a81b771be0b36fe0dfb5ee4c72c9cb5b504e110618a8eb6f0f241b4e57d92df01dc5cc04b6b68d5bc6a5e6d68de1000092770285d7a328e5937e50b4b226a3 alpine-sshd-ddos.filterd
"
diff --git a/main/fail2ban/CVE-2021-32749.patch b/main/fail2ban/CVE-2021-32749.patch
deleted file mode 100644
index d3c677918c2..00000000000
--- a/main/fail2ban/CVE-2021-32749.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-From 410a6ce5c80dd981c22752da034f2529b5eee844 Mon Sep 17 00:00:00 2001
-From: sebres <serg.brester@sebres.de>
-Date: Mon, 21 Jun 2021 17:12:53 +0200
-Subject: [PATCH] fixed possible RCE vulnerability, unset escape variable
- (default tilde) stops consider "~" char after new-line as composing escape
- sequence
-
----
- config/action.d/complain.conf | 2 +-
- config/action.d/dshield.conf | 2 +-
- config/action.d/mail-buffered.conf | 8 ++++----
- config/action.d/mail-whois-lines.conf | 2 +-
- config/action.d/mail-whois.conf | 6 +++---
- config/action.d/mail.conf | 6 +++---
- 6 files changed, 13 insertions(+), 13 deletions(-)
-
-diff --git a/config/action.d/complain.conf b/config/action.d/complain.conf
-index 3a5f882c9f..4d73b05859 100644
---- a/config/action.d/complain.conf
-+++ b/config/action.d/complain.conf
-@@ -102,7 +102,7 @@ logpath = /dev/null
- # Notes.: Your system mail command. Is passed 2 args: subject and recipient
- # Values: CMD
- #
--mailcmd = mail -s
-+mailcmd = mail -E 'set escape' -s
-
- # Option: mailargs
- # Notes.: Additional arguments to mail command. e.g. for standard Unix mail:
-diff --git a/config/action.d/dshield.conf b/config/action.d/dshield.conf
-index c128bef348..3d5a7a53a9 100644
---- a/config/action.d/dshield.conf
-+++ b/config/action.d/dshield.conf
-@@ -179,7 +179,7 @@ tcpflags =
- # Notes.: Your system mail command. Is passed 2 args: subject and recipient
- # Values: CMD
- #
--mailcmd = mail -s
-+mailcmd = mail -E 'set escape' -s
-
- # Option: mailargs
- # Notes.: Additional arguments to mail command. e.g. for standard Unix mail:
-diff --git a/config/action.d/mail-buffered.conf b/config/action.d/mail-buffered.conf
-index 325f185b2f..79b841049c 100644
---- a/config/action.d/mail-buffered.conf
-+++ b/config/action.d/mail-buffered.conf
-@@ -17,7 +17,7 @@ actionstart = printf %%b "Hi,\n
- The jail <name> has been started successfully.\n
- Output will be buffered until <lines> lines are available.\n
- Regards,\n
-- Fail2Ban"|mail -s "[Fail2Ban] <name>: started on <fq-hostname>" <dest>
-+ Fail2Ban"|mail -E 'set escape' -s "[Fail2Ban] <name>: started on <fq-hostname>" <dest>
-
- # Option: actionstop
- # Notes.: command executed at the stop of jail (or at the end of Fail2Ban)
-@@ -28,13 +28,13 @@ actionstop = if [ -f <tmpfile> ]; then
- These hosts have been banned by Fail2Ban.\n
- `cat <tmpfile>`
- Regards,\n
-- Fail2Ban"|mail -s "[Fail2Ban] <name>: Summary from <fq-hostname>" <dest>
-+ Fail2Ban"|mail -E 'set escape' -s "[Fail2Ban] <name>: Summary from <fq-hostname>" <dest>
- rm <tmpfile>
- fi
- printf %%b "Hi,\n
- The jail <name> has been stopped.\n
- Regards,\n
-- Fail2Ban"|mail -s "[Fail2Ban] <name>: stopped on <fq-hostname>" <dest>
-+ Fail2Ban"|mail -E 'set escape' -s "[Fail2Ban] <name>: stopped on <fq-hostname>" <dest>
-
- # Option: actioncheck
- # Notes.: command executed once before each actionban command
-@@ -55,7 +55,7 @@ actionban = printf %%b "`date`: <ip> (<failures> failures)\n" >> <tmpfile>
- These hosts have been banned by Fail2Ban.\n
- `cat <tmpfile>`
- \nRegards,\n
-- Fail2Ban"|mail -s "[Fail2Ban] <name>: Summary" <dest>
-+ Fail2Ban"|mail -E 'set escape' -s "[Fail2Ban] <name>: Summary" <dest>
- rm <tmpfile>
- fi
-
-diff --git a/config/action.d/mail-whois-lines.conf b/config/action.d/mail-whois-lines.conf
-index 3a3e56b2c7..d2818cb9b9 100644
---- a/config/action.d/mail-whois-lines.conf
-+++ b/config/action.d/mail-whois-lines.conf
-@@ -72,7 +72,7 @@ actionunban =
- # Notes.: Your system mail command. Is passed 2 args: subject and recipient
- # Values: CMD
- #
--mailcmd = mail -s
-+mailcmd = mail -E 'set escape' -s
-
- # Default name of the chain
- #
-diff --git a/config/action.d/mail-whois.conf b/config/action.d/mail-whois.conf
-index 7fea34c40d..ab33b616dc 100644
---- a/config/action.d/mail-whois.conf
-+++ b/config/action.d/mail-whois.conf
-@@ -20,7 +20,7 @@ norestored = 1
- actionstart = printf %%b "Hi,\n
- The jail <name> has been started successfully.\n
- Regards,\n
-- Fail2Ban"|mail -s "[Fail2Ban] <name>: started on <fq-hostname>" <dest>
-+ Fail2Ban"|mail -E 'set escape' -s "[Fail2Ban] <name>: started on <fq-hostname>" <dest>
-
- # Option: actionstop
- # Notes.: command executed at the stop of jail (or at the end of Fail2Ban)
-@@ -29,7 +29,7 @@ actionstart = printf %%b "Hi,\n
- actionstop = printf %%b "Hi,\n
- The jail <name> has been stopped.\n
- Regards,\n
-- Fail2Ban"|mail -s "[Fail2Ban] <name>: stopped on <fq-hostname>" <dest>
-+ Fail2Ban"|mail -E 'set escape' -s "[Fail2Ban] <name>: stopped on <fq-hostname>" <dest>
-
- # Option: actioncheck
- # Notes.: command executed once before each actionban command
-@@ -49,7 +49,7 @@ actionban = printf %%b "Hi,\n
- Here is more information about <ip> :\n
- `%(_whois_command)s`\n
- Regards,\n
-- Fail2Ban"|mail -s "[Fail2Ban] <name>: banned <ip> from <fq-hostname>" <dest>
-+ Fail2Ban"|mail -E 'set escape' -s "[Fail2Ban] <name>: banned <ip> from <fq-hostname>" <dest>
-
- # Option: actionunban
- # Notes.: command executed when unbanning an IP. Take care that the
-diff --git a/config/action.d/mail.conf b/config/action.d/mail.conf
-index 5d8c0e154c..f4838ddcb6 100644
---- a/config/action.d/mail.conf
-+++ b/config/action.d/mail.conf
-@@ -16,7 +16,7 @@ norestored = 1
- actionstart = printf %%b "Hi,\n
- The jail <name> has been started successfully.\n
- Regards,\n
-- Fail2Ban"|mail -s "[Fail2Ban] <name>: started on <fq-hostname>" <dest>
-+ Fail2Ban"|mail -E 'set escape' -s "[Fail2Ban] <name>: started on <fq-hostname>" <dest>
-
- # Option: actionstop
- # Notes.: command executed at the stop of jail (or at the end of Fail2Ban)
-@@ -25,7 +25,7 @@ actionstart = printf %%b "Hi,\n
- actionstop = printf %%b "Hi,\n
- The jail <name> has been stopped.\n
- Regards,\n
-- Fail2Ban"|mail -s "[Fail2Ban] <name>: stopped on <fq-hostname>" <dest>
-+ Fail2Ban"|mail -E 'set escape' -s "[Fail2Ban] <name>: stopped on <fq-hostname>" <dest>
-
- # Option: actioncheck
- # Notes.: command executed once before each actionban command
-@@ -43,7 +43,7 @@ actionban = printf %%b "Hi,\n
- The IP <ip> has just been banned by Fail2Ban after
- <failures> attempts against <name>.\n
- Regards,\n
-- Fail2Ban"|mail -s "[Fail2Ban] <name>: banned <ip> from <fq-hostname>" <dest>
-+ Fail2Ban"|mail -E 'set escape' -s "[Fail2Ban] <name>: banned <ip> from <fq-hostname>" <dest>
-
- # Option: actionunban
- # Notes.: command executed when unbanning an IP. Take care that the
diff --git a/main/fail2ban/alpine-sshd.filterd b/main/fail2ban/alpine-sshd.filterd
index 6c2ea19af88..e3b99638bd4 100644
--- a/main/fail2ban/alpine-sshd.filterd
+++ b/main/fail2ban/alpine-sshd.filterd
@@ -18,6 +18,7 @@ _daemon = sshd
failregex = Failed [-/\w]+ for .* from <HOST> port \d* ssh2
sshd\[.*\]: Invalid user .* from <HOST> port \d*
sshd\[.*\]: Received disconnect from <HOST> port \d*:[0-9]+: \[preauth\]
+ sshd\[.*\]: Disconnected from invalid user .* <HOST> port \d* \[preauth\]
ignoreregex =
diff --git a/main/fail2ban/fail2ban.initd b/main/fail2ban/fail2ban.initd
new file mode 100755
index 00000000000..0fb157cdad4
--- /dev/null
+++ b/main/fail2ban/fail2ban.initd
@@ -0,0 +1,60 @@
+#!/sbin/openrc-run
+# This file is part of Fail2Ban.
+#
+# Fail2Ban 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.
+#
+# Fail2Ban 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 Fail2Ban; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# Author: Sireyessire, Cyril Jaquier
+#
+
+description="Daemon to ban hosts that cause multiple authentication errors"
+description_reload="reload configuration"
+description_showlog="show fail2ban logs"
+extra_started_commands="reload showlog"
+
+FAIL2BAN="/usr/bin/fail2ban-client ${FAIL2BAN_OPTIONS}"
+
+depend() {
+ need net
+ need logger
+ after iptables
+}
+
+start() {
+ ebegin "Starting fail2ban"
+ mkdir -p /var/run/fail2ban || return 1
+ # remove stalled sock file after system crash
+ # bug 347477
+ rm -f /var/run/fail2ban/fail2ban.sock || return 1
+ start-stop-daemon --start --pidfile /var/run/fail2ban/fail2ban.pid \
+ -- ${FAIL2BAN} start
+ eend $? "Failed to start fail2ban"
+}
+
+stop() {
+ ebegin "Stopping fail2ban"
+ start-stop-daemon --stop --pidfile /var/run/fail2ban/fail2ban.pid --retry 30 \
+ -- ${FAIL2BAN} stop
+ eend $? "Failed to stop fail2ban"
+}
+
+reload() {
+ ebegin "Reloading fail2ban"
+ ${FAIL2BAN} reload
+ eend $? "Failed to reload fail2ban"
+}
+
+showlog(){
+ less /var/log/fail2ban.log
+}
diff --git a/main/fail2ban/python-3.10.patch b/main/fail2ban/python-3.10.patch
deleted file mode 100644
index 53a3227d9bb..00000000000
--- a/main/fail2ban/python-3.10.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 2b6bb2c1bed8f7009631e8f8c306fa3160324a49 Mon Sep 17 00:00:00 2001
-From: "Sergey G. Brester" <serg.brester@sebres.de>
-Date: Mon, 8 Feb 2021 17:19:24 +0100
-Subject: [PATCH] follow bpo-37324: :ref:`collections-abstract-base-classes`
- moved to the :mod:`collections.abc` module
-
-(since 3.10-alpha.5 `MutableMapping` is missing in collections module)
----
- fail2ban/server/action.py | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/fail2ban/server/action.py b/fail2ban/server/action.py
-index 3bc48fe046..f0f1e6f59a 100644
---- a/fail2ban/server/action.py
-+++ b/fail2ban/server/action.py
-@@ -30,7 +30,10 @@
- import threading
- import time
- from abc import ABCMeta
--from collections import MutableMapping
-+try:
-+ from collections.abc import MutableMapping
-+except ImportError:
-+ from collections import MutableMapping
-
- from .failregex import mapTag2Opt
- from .ipdns import DNSUtils
-From 42dee38ad2ac5c3f23bdf297d824022923270dd9 Mon Sep 17 00:00:00 2001
-From: "Sergey G. Brester" <serg.brester@sebres.de>
-Date: Mon, 8 Feb 2021 17:25:45 +0100
-Subject: [PATCH] amend for `Mapping`
-
----
- fail2ban/server/actions.py | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/fail2ban/server/actions.py b/fail2ban/server/actions.py
-index b7b95b445a..897d907c1a 100644
---- a/fail2ban/server/actions.py
-+++ b/fail2ban/server/actions.py
-@@ -28,7 +28,10 @@
- import os
- import sys
- import time
--from collections import Mapping
-+try:
-+ from collections.abc import Mapping
-+except ImportError:
-+ from collections import Mapping
- try:
- from collections import OrderedDict
- except ImportError:
-From 9f1d1f4fbd0804695a976beb191f2c49a2739834 Mon Sep 17 00:00:00 2001
-From: "Sergey G. Brester" <serg.brester@sebres.de>
-Date: Mon, 8 Feb 2021 17:35:59 +0100
-Subject: [PATCH] amend for `Mapping` (jails)
-
----
- fail2ban/server/jails.py | 5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/fail2ban/server/jails.py b/fail2ban/server/jails.py
-index 972a8c4bd2..27e12ddf65 100644
---- a/fail2ban/server/jails.py
-+++ b/fail2ban/server/jails.py
-@@ -22,7 +22,10 @@
- __license__ = "GPL"
-
- from threading import Lock
--from collections import Mapping
-+try:
-+ from collections.abc import Mapping
-+except ImportError:
-+ from collections import Mapping
-
- from ..exceptions import DuplicateJailException, UnknownJailException
- from .jail import Jail
diff --git a/main/fail2ban/setuptools59.patch b/main/fail2ban/setuptools59.patch
deleted file mode 100644
index d54f3a345b4..00000000000
--- a/main/fail2ban/setuptools59.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/setup.py
-+++ b/setup.py
-@@ -186,7 +186,6 @@
- if setuptools:
- setup_extra = {
- 'test_suite': "fail2ban.tests.utils.gatherTests",
-- 'use_2to3': True,
- }
- else:
- setup_extra = {}
diff --git a/main/fakeroot/APKBUILD b/main/fakeroot/APKBUILD
index c5245290403..2ffa9197ffb 100644
--- a/main/fakeroot/APKBUILD
+++ b/main/fakeroot/APKBUILD
@@ -1,12 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=fakeroot
-pkgver=1.25.3
-pkgrel=3
+pkgver=1.34
+pkgrel=0
+provider_priority=100
pkgdesc="Gives a fake root environment, useful for building packages as a non-privileged user"
arch="all"
license="GPL-3.0-or-later"
url="https://packages.debian.org/fakeroot"
-checkdepends="bash"
+checkdepends="bash coreutils"
makedepends_build="libtool autoconf automake po4a"
makedepends_host="libcap-dev acl-dev linux-headers"
makedepends="$makedepends_build $makedepends_host"
@@ -17,20 +18,22 @@ source="https://deb.debian.org/debian/pool/main/f/fakeroot/fakeroot_$pkgver.orig
xstatjunk.patch
fix-shell-in-fakeroot.patch
fakeroot-skip-ipc-sanity-check.patch
+ do-not-redefine-id_t.patch
+ fix-format.patch
+ t-xattr.patch
"
-check() {
- make check
+prepare() {
+ default_prepare
+
+ CONFIG_SHELL=/bin/sh ./bootstrap
}
build() {
- if [ "$CLIBC" = "musl" ]; then
- # musl does not have _STAT_VER, it's really not used for
- # anything, so define it as zero (just like uclibc does)
- export CFLAGS="-D_STAT_VER=0 $CFLAGS"
- fi
+ # musl does not have _STAT_VER, it's really not used for
+ # anything, so define it as zero (just like uclibc does)
+ export CFLAGS="-D_STAT_VER=0 $CFLAGS"
- CONFIG_SHELL=/bin/sh ./bootstrap
CONFIG_SHELL=/bin/sh ./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -42,13 +45,25 @@ build() {
po4a -k 0 --rm-backups --variable "srcdir=../doc/" po4a/po4a.cfg
}
+check() {
+ make check || {
+ cat test/test-suite.log
+ return 1
+ }
+}
+
package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="b54366ef82b49af414d7214d069a4bc7dd188dfa4f8e3121f6bd65fd67268b02346ff72e857087243ab0efe9fa82faaa9f9c3309cac4b5af0ea00908c2e5eb6e fakeroot_1.25.3.orig.tar.gz
+sha512sums="
+d3b4b9ca8718ba945029e151415a24412ca5a40dbefe6fbfaed3565879b5ad80b4b6de9748695a8848c3086e3ba1cde270efc8dfb4cc345cf8aa11f3234153f1 fakeroot_1.34.orig.tar.gz
7a832e6bed3838c7c488e0e12ba84b8d256e84bbb06d6020247452a991de505fa5c6bd7bcb84dce8753eb242e0fcab863b5461301cd56695f2b003fe8d6ff209 fakeroot-no64.patch
ed7a58b0d201139545420f9e5429f503c00e00f36dea84473e77ea99b23bb8d421da1a8a8ce98ff90e72e378dff4cb9ea3c1a863a969899a5f50dfac3b9c5fac fakeroot-stdint.patch
-5efd33fd778bd94a529ed7e439fb8fea25ff865dda3f6f9e431264e942b37f3b5d7a0ad14107b55c5fa81b86efd5a82aedb3803cfab08ec57f27f5b229d2fe88 xstatjunk.patch
+70bf7609a5951326ac7372a252a15516f96a1ee6e458a659b16f0e4f1e2db6556482c71178d4b2f10e5ebdc0abfb7a3cc97c9878984e60cdf6e7d7281790e1fc xstatjunk.patch
47593b3d86a66bab832c50a1d967cdc70e42bbd9ef4436f18140067ccefdd6418516e5157102c67e604f3623ed1b9f4fe1423fc5dad4dfe5356fc250c12818a7 fix-shell-in-fakeroot.patch
-f1dcd9c34e74eb225c6a96262847e70f86f437c6bcf41c5d554ced2e3d08798296a66310296cc0ab177a7ea5a0271151326a3e79f72e4ed640b3bd20dbaabec1 fakeroot-skip-ipc-sanity-check.patch"
+9a3faf924891deb36fab8f200489ad6154df262735b563dea46283afcdc83d12d32b00db33848f2a5c52d0b4422942863247577634e37b9d693f2b3a398a0f1d fakeroot-skip-ipc-sanity-check.patch
+e07162ec511c38261ad2540864f922ee03f5daa1d5d23729879c9993d62b2ffebc27eab29f3eb522ddb10b052241e58b67265914ef9100b1911948e874bf53a1 do-not-redefine-id_t.patch
+481fac0b2b7388fbf8c6140311da856df1b8facfe331d04f2bc6275c766b8a81c1e07971ffd131aaf8416b8cda1f52fa4ed6d5f6ba913f69efe119288c016d78 fix-format.patch
+70d09c2acb3abccddbb99cd1cb372679d4da6c01d3bab6a1dcf258b1decc88834ae7a5f61f15867ead035819e250f8b40fddcc83eb9ce82138fa18c756836b21 t-xattr.patch
+"
diff --git a/main/fakeroot/do-not-redefine-id_t.patch b/main/fakeroot/do-not-redefine-id_t.patch
new file mode 100644
index 00000000000..4d3bab190f8
--- /dev/null
+++ b/main/fakeroot/do-not-redefine-id_t.patch
@@ -0,0 +1,21 @@
+musl defines id_t as unsigned but doesn't use the _ID_T to detect its
+definition. This causes the type to be redefined as an int by fakeroot
+which causes a compilation error.
+
+diff -upr fakeroot-1.27.orig/libfakeroot.c fakeroot-1.27/libfakeroot.c
+--- fakeroot-1.27.orig/libfakeroot.c 2022-01-30 11:30:25.198506844 +0100
++++ fakeroot-1.27/libfakeroot.c 2022-01-30 11:30:41.928524429 +0100
+@@ -133,13 +133,6 @@
+ #define INT_SEND_STAT(a,b) SEND_STAT(a,b,_STAT_VER)
+ #define INT_SEND_GET_XATTR(a,b) SEND_GET_XATTR(a,b,_STAT_VER)
+ #define INT_SEND_GET_STAT(a,b) SEND_GET_STAT(a,b)
+-
+-/* 10.10 uses id_t in getpriority/setpriority calls, so pretend
+- id_t is used everywhere, just happens to be int on some OSes */
+-#ifndef _ID_T
+-#define _ID_T
+-typedef int id_t;
+-#endif
+ #endif
+
+ #include <sys/types.h>
diff --git a/main/fakeroot/fakeroot-skip-ipc-sanity-check.patch b/main/fakeroot/fakeroot-skip-ipc-sanity-check.patch
index fc96c2922a0..9541973c049 100644
--- a/main/fakeroot/fakeroot-skip-ipc-sanity-check.patch
+++ b/main/fakeroot/fakeroot-skip-ipc-sanity-check.patch
@@ -1,7 +1,12 @@
-diff -urN fakeroot-1.25.3.orig/configure.ac fakeroot-1.25.3/configure.ac
---- fakeroot-1.25.3.orig/configure.ac 2020-12-15 02:33:22.866626448 -0700
-+++ fakeroot-1.25.3/configure.ac 2020-12-15 02:33:40.563359415 -0700
-@@ -25,42 +25,6 @@
+This patch was original added in aports commit
+439b449b68ebf3462a3f659804c41195e2d8d8ae. It
+seems to be needed since this sanity checks
+fails spuriously when cros compiling fakeroot.
+
+diff -upr fakeroot-1.27.orig/configure.ac fakeroot-1.27/configure.ac
+--- fakeroot-1.27.orig/configure.ac 2022-01-30 10:43:52.992260063 +0100
++++ fakeroot-1.27/configure.ac 2022-01-30 10:46:22.989526929 +0100
+@@ -25,50 +25,6 @@ AC_CACHE_CHECK([which IPC method to use]
[ac_cv_use_ipc],
[ac_cv_use_ipc=sysv])
@@ -9,7 +14,7 @@ diff -urN fakeroot-1.25.3.orig/configure.ac fakeroot-1.25.3/configure.ac
- AC_MSG_CHECKING([whether SysV IPC message queues are actually working on the host])
-
- AC_LANG_PUSH(C)
-- AC_TRY_RUN([
+- AC_RUN_IFELSE([AC_LANG_SOURCE([[
-#include <stdlib.h>
-#include <sys/types.h>
-#include <sys/ipc.h>
@@ -30,9 +35,17 @@ diff -urN fakeroot-1.25.3.orig/configure.ac fakeroot-1.25.3/configure.ac
- return 0;
- }
-
--}], [ac_cv_use_ipc=sysv], [ac_cv_use_ipc=tcp])
--
-- if test $ac_cv_use_ipc = "tcp"; then
+-}]])],[ac_cv_use_ipc=sysv],[ac_cv_use_ipc=tcp],[ac_cv_use_ipc=cross])
+-
+- if test $ac_cv_use_ipc = cross; then
+- if test "$host_os" = linux-gnu; then
+- ac_cv_use_ipc=sysv
+- AC_MSG_RESULT([cross, guessing yes])
+- else
+- (set -o posix; set)
+- AC_MSG_ERROR([cross compiling, unknown result for $host_os])
+- fi
+- elif test $ac_cv_use_ipc = "tcp"; then
- AC_MSG_RESULT([No, using TCP])
- else
- AC_MSG_RESULT([Yes])
diff --git a/main/fakeroot/fix-format.patch b/main/fakeroot/fix-format.patch
new file mode 100644
index 00000000000..8f8639647aa
--- /dev/null
+++ b/main/fakeroot/fix-format.patch
@@ -0,0 +1,25 @@
+Fakeroot defines custom fake_dev_t/fake_ino_t as uint64_t
+but doesn't use the PRIu64 format specifier from inttypes.h
+to print them thereby relying on a specific representation
+of these types.
+
+diff -upr fakeroot-1.27.orig/faked.c fakeroot-1.27/faked.c
+--- fakeroot-1.27.orig/faked.c 2022-01-17 21:37:21.000000000 +0100
++++ fakeroot-1.27/faked.c 2022-01-30 11:36:59.963019225 +0100
+@@ -121,6 +121,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <signal.h>
++#include <inttypes.h>
+ #ifdef HAVE_STDINT_H
+ # include <stdint.h>
+ #endif
+@@ -687,7 +688,7 @@ int load_database(const uint32_t remote)
+ /* */
+ /*********************************/
+ void debug_stat(const struct fakestat *st){
+- fprintf(stderr,"dev:ino=(%llx:%lli), mode=0%lo, own=(%li,%li), nlink=%li, rdev=%lli\n",
++ fprintf(stderr,"dev:ino=(%"PRIx64":%"PRIu64"), mode=0%lo, own=(%li,%li), nlink=%li, rdev=%"PRIu64"\n",
+ st->dev,
+ st->ino,
+ (long)st->mode,
diff --git a/main/fakeroot/t-xattr.patch b/main/fakeroot/t-xattr.patch
new file mode 100644
index 00000000000..aeba42310ac
--- /dev/null
+++ b/main/fakeroot/t-xattr.patch
@@ -0,0 +1,16 @@
+runs when getcap is available, and setting a cap in fakeroot is forbidden so it fails
+--
+diff --git a/test/Makefile.am b/test/Makefile.am
+index 497de99..b2723a3 100644
+--- a/test/Makefile.am
++++ b/test/Makefile.am
+@@ -12,8 +12,7 @@ TESTS = \
+ t.option \
+ t.tar \
+ t.touchinstall \
+- t.truereturn \
+- t.xattr
++ t.truereturn
+
+ suffix =
+ TESTS_ENVIRONMENT = \
diff --git a/main/fakeroot/xstatjunk.patch b/main/fakeroot/xstatjunk.patch
index 12f2759b48f..bda4469980d 100644
--- a/main/fakeroot/xstatjunk.patch
+++ b/main/fakeroot/xstatjunk.patch
@@ -1,10 +1,12 @@
---- fakeroot-1.18.4.orig/configure.ac 2012-06-02 18:23:41.000000000 +0000
-+++ fakeroot-1.18.4configure.ac 2015-09-24 23:15:56.917470073 +0000
-@@ -301,7 +301,7 @@
+diff --git a/configure.ac b/configure.ac
+index 9613183..e4a9bbc 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -385,7 +385,7 @@ for SEARCH in %stat f%stat l%stat f%statat %stat64 f%stat64 l%stat64 f%statat64
FUNC=`echo $SEARCH|sed -e 's/.*%//'`
PRE=`echo $SEARCH|sed -e 's/%.*//'`
FOUND=
-- for WRAPPED in __${PRE}x${FUNC} _${PRE}x${FUNC} __${PRE}${FUNC}13 ${PRE}${FUNC}; do
+- for WRAPPED in __${PRE}x${FUNC} _${PRE}x${FUNC} __${PRE}${FUNC}13 ${PRE}${FUNC} __${PRE}${FUNC}; do
+ for WRAPPED in ${PRE}${FUNC}; do
AC_CHECK_FUNCS($WRAPPED,FOUND=$WRAPPED)
dnl
diff --git a/main/fcgi/APKBUILD b/main/fcgi/APKBUILD
index 14e2a72dad0..48f5f4eab89 100644
--- a/main/fcgi/APKBUILD
+++ b/main/fcgi/APKBUILD
@@ -3,11 +3,11 @@
pkgname=fcgi
_pkgname=fcgi2
pkgver=2.4.2
-pkgrel=1
+pkgrel=4
pkgdesc="FAST CGI(fcgi) is a language independent, high performant extension to CGI"
url="https://github.com/FastCGI-Archives/fcgi2"
arch="all"
-license="custom"
+license="OML"
options="!check" # no test suite
makedepends="libtool autoconf automake"
subpackages="$pkgname-dev $pkgname++:xx"
@@ -16,7 +16,6 @@ source="$_pkgname-$pkgver.tar.gz::https://github.com/FastCGI-Archives/fcgi2/arch
builddir="$srcdir/$_pkgname-$pkgver"
build() {
- cd $builddir
export LIBS="-lm"
./autogen.sh
./configure \
@@ -31,7 +30,6 @@ build() {
}
package() {
- cd $builddir
make DESTDIR="$pkgdir" install
}
diff --git a/main/fcgiwrap/APKBUILD b/main/fcgiwrap/APKBUILD
index ec5214f2acd..930419da322 100644
--- a/main/fcgiwrap/APKBUILD
+++ b/main/fcgiwrap/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=fcgiwrap
pkgver=1.1.0
-pkgrel=5
+pkgrel=8
pkgdesc="Simple server for running CGI applications over FastCGI"
url="https://github.com/gnosek/fcgiwrap"
arch="all"
@@ -13,13 +13,12 @@ install="$pkgname.pre-install"
makedepends="$depends_dev autoconf libtool automake fcgi-dev"
subpackages="$pkgname-doc $pkgname-openrc"
source="$pkgname-$pkgver.tar.gz::https://github.com/gnosek/fcgiwrap/archive/$pkgver.tar.gz
+ no-buffering.patch
$pkgname.initd
$pkgname.confd"
-
-builddir="$srcdir/$pkgname-$pkgver"
+options="!check"
build() {
- cd "$builddir"
autoreconf --install
CFLAGS="$CFLAGS -Wno-implicit-fallthrough" \
./configure --prefix=/usr \
@@ -29,13 +28,15 @@ build() {
}
package() {
- cd "$builddir"
install -d -m2775 -o fcgiwrap -g www-data "$pkgdir"/run/fcgiwrap
make DESTDIR="$pkgdir" install
install -Dm755 $srcdir/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
install -Dm644 $srcdir/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
}
-sha512sums="b8d35762d1d3c94a67602290b0092f0c38cffbbcd3dbc16597abf8b92172909b04450c238de2e430e841a17dd47fdd48d6a001f77539966980ef1af61e447ddc fcgiwrap-1.1.0.tar.gz
+sha512sums="
+b8d35762d1d3c94a67602290b0092f0c38cffbbcd3dbc16597abf8b92172909b04450c238de2e430e841a17dd47fdd48d6a001f77539966980ef1af61e447ddc fcgiwrap-1.1.0.tar.gz
+72ba8a0d044c86cc41358002b1cbb94e77dc81e56669032b474b94d7cde80e6cc5d041a064d79ed98b7db8aee9ffcc8830df88491f14afa251781487a57fd429 no-buffering.patch
e6111da1089df43f8656e598edf4e658cd2d70e6066833a2c7a465229723e1edce144cf214bd8f771298d54948b8128012c4ce4d509c9d9307a54e8ef90ff2d8 fcgiwrap.initd
-893e9afa92c20c9d0dab68fffc806a1be1f2e28a7e73bbb497316386a9ee083be4bad68a90f660e489311a9812a512b50fb0edb8b9c49b12f6cd266ba53b01a6 fcgiwrap.confd"
+893e9afa92c20c9d0dab68fffc806a1be1f2e28a7e73bbb497316386a9ee083be4bad68a90f660e489311a9812a512b50fb0edb8b9c49b12f6cd266ba53b01a6 fcgiwrap.confd
+"
diff --git a/main/fcgiwrap/no-buffering.patch b/main/fcgiwrap/no-buffering.patch
new file mode 100644
index 00000000000..3d5f0038ee9
--- /dev/null
+++ b/main/fcgiwrap/no-buffering.patch
@@ -0,0 +1,58 @@
+From eb54c65446693366aedfe72f002c6bb4e1a5d748 Mon Sep 17 00:00:00 2001
+From: Richard Stanway <r.stanway@gmail.com>
+Date: Thu, 24 Mar 2016 21:34:17 -0500
+Subject: [PATCH] Add environment variable NO_BUFFERING to disable output
+ buffering
+
+Fixes #36
+---
+ fcgiwrap.8 | 4 ++++
+ fcgiwrap.c | 6 ++++++
+ 2 files changed, 10 insertions(+)
+
+diff --git a/fcgiwrap.8 b/fcgiwrap.8
+index bf02c26..892b594 100644
+--- a/fcgiwrap.8
++++ b/fcgiwrap.8
+@@ -65,6 +65,10 @@
+ SCRIPT_FILENAME
+ .RS
+ complete path to CGI script. When set, overrides DOCUMENT_ROOT and SCRIPT_NAME
++.RE
++NO_BUFFERING
++.RS
++When set (e.g., to ""), disables output buffering.
+
+ .SH EXAMPLE
+ The fastest way to see \fBfcgiwrap\fP do something is to launch it at the command line
+diff --git a/fcgiwrap.c b/fcgiwrap.c
+index b44d8aa..42e3ec9 100644
+--- a/fcgiwrap.c
++++ b/fcgiwrap.c
+@@ -191,6 +191,7 @@ struct fcgi_context {
+ int fd_stderr;
+ unsigned int reply_state;
+ pid_t cgi_pid;
++ int unbuffered;
+ };
+
+ static void fcgi_finish(struct fcgi_context *fc, const char* msg)
+@@ -256,6 +257,10 @@ static const char * fcgi_pass_fd(struct fcgi_context *fc, int *fdp, FCGI_FILE *f
+ return "writing CGI reply";
+ }
+ }
++
++ if (fc->unbuffered && FCGI_fflush(ffp)) {
++ return "flushing CGI reply";
++ }
+ } else {
+ if (nread < 0) {
+ return "reading CGI reply";
+@@ -590,6 +595,7 @@ static void handle_fcgi_request(void)
+ fc.fd_stderr = pipe_err[0];
+ fc.reply_state = REPLY_STATE_INIT;
+ fc.cgi_pid = pid;
++ fc.unbuffered = !!getenv("NO_BUFFERING");
+
+ fcgi_pass(&fc);
+ }
diff --git a/main/ferm/APKBUILD b/main/ferm/APKBUILD
index e3deb1e0145..d5e68285aaf 100644
--- a/main/ferm/APKBUILD
+++ b/main/ferm/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Michael Mason <ms13sp@gmail.com>
pkgname=ferm
pkgver=2.7
-pkgrel=0
+pkgrel=1
case $pkgver in
*.*.*) _pkgver=${pkgver%.*};;
*.*) _pkgver=$pkgver;;
@@ -11,29 +11,25 @@ esac
pkgdesc="firewall configuration tool"
url="http://ferm.foo-projects.org/"
arch="noarch"
-license="GPL"
+license="GPL-2.0-or-later"
depends="perl iptables"
-makedepends="perl iptables perl-net-dns-resolver-mock"
+makedepends="perl-net-dns-resolver-mock"
source="
- http://ferm.foo-projects.org/download/${_pkgver}/ferm-$pkgver.tar.xz
+ http://ferm.foo-projects.org/download/$_pkgver/ferm-$pkgver.tar.xz
ferm.confd
ferm.initd
"
subpackages="$pkgname-doc $pkgname-openrc"
-builddir="$srcdir"/$pkgname-$pkgver
build() {
- cd "$builddir"
make
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
install -m755 -D src/ferm "$pkgdir/usr/sbin/$pkgname"
install -m755 -D src/import-ferm "$pkgdir/usr/sbin/import-$pkgname"
diff --git a/main/fftw/APKBUILD b/main/fftw/APKBUILD
index 0448459398a..4c750481a1b 100644
--- a/main/fftw/APKBUILD
+++ b/main/fftw/APKBUILD
@@ -1,17 +1,22 @@
-# Contributor:
-# Maintainer:
+# Contributor: Magnus Sandin <magnus.sandin@gmail.com>
+# Maintainer: Magnus Sandin <magnus.sandin@gmail.com>
pkgname=fftw
pkgver=3.3.10
_pkgver=${pkgver//p/-pl}
-pkgrel=0
+pkgrel=5
pkgdesc="Discrete Fourier transform (DFT) library"
url="http://www.fftw.org/"
arch="all"
license="GPL-2.0-or-later"
makedepends="texinfo"
# order of the libs split functions are important because of lib naming
-subpackages="$pkgname-dev $pkgname-doc $pkgname-single-libs:single
- $pkgname-long-double-libs:long_double $pkgname-double-libs:double"
+subpackages="
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-single-libs:single
+ $pkgname-long-double-libs:long_double
+ $pkgname-double-libs:double
+ "
source="http://www.fftw.org/fftw-$_pkgver.tar.gz
cycle.h.patch
"
@@ -26,6 +31,7 @@ esac
prepare() {
default_prepare
+ update_config_sub
local i; for i in $_precision; do
cp -r "$builddir" $srcdir/$i
@@ -33,23 +39,23 @@ prepare() {
}
build() {
- local _openmp=
-
+ export CFLAGS="$CFLAGS -O2"
+ export CXXFLAGS="$CXXFLAGS -O2"
+ local cf
local i; for i in $_precision; do
case "$i" in
- single) _cf="--enable-single";;
- double) _cf="";;
- long-double) _cf="--enable-long-double";;
+ single) cf="--enable-single" ;;
+ double) cf="" ;;
+ long-double) cf="--enable-long-double" ;;
esac
case "$i--$CARCH" in
- single--x86_64 | double--x86_64)
- _cf="$_cf --enable-sse2 --enable-avx";;
- single--arm* | single--aarch64)
- _cf="$_cf --enable-neon";;
+ single--x86_64|double--x86_64) cf="$cf --enable-sse2 --enable-avx" ;;
+ single--x86|double--x86) cf="$cf --enable-sse2" ;;
+ single--arm*|single--aarch64) cf="$cf --enable-neon" ;;
esac
- msg "Building for $i precision ($_cf)"
+ msg "Building for $i precision ($cf)"
cd "$srcdir"/$i
./configure \
--build=$CBUILD \
@@ -60,8 +66,7 @@ build() {
--infodir=/usr/share/info \
--enable-shared \
--enable-threads \
- $_openmp \
- $_cf
+ $cf
make
done
}
@@ -81,21 +86,15 @@ package() {
}
single() {
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libfftw3f*.so* \
- "$subpkgdir"/usr/lib/
+ amove usr/lib/libfftw3f*.so*
}
double() {
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libfftw3*.so* \
- "$subpkgdir"/usr/lib/
+ amove usr/lib/libfftw3*.so*
}
long_double() {
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libfftw3l*.so* \
- "$subpkgdir"/usr/lib/
+ amove usr/lib/libfftw3l*.so*
}
sha512sums="
diff --git a/main/file/APKBUILD b/main/file/APKBUILD
index 347750c7aa7..0ef826292fd 100644
--- a/main/file/APKBUILD
+++ b/main/file/APKBUILD
@@ -1,14 +1,14 @@
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=file
-pkgver=5.42
-pkgrel=0
+pkgver=5.45
+pkgrel=1
pkgdesc="File type identification utility"
url="https://www.darwinsys.com/file/"
arch="all"
license="BSD-2-Clause"
makedepends="autoconf libtool automake"
-subpackages="$pkgname-dev $pkgname-doc libmagic"
+subpackages="libmagic-static $pkgname-dev $pkgname-doc libmagic"
source="$pkgname-$pkgver.tar.gz::https://github.com/file/file/archive/FILE${pkgver/./_}.tar.gz"
builddir="$srcdir/$pkgname-FILE${pkgver/./_}"
@@ -22,13 +22,19 @@ builddir="$srcdir/$pkgname-FILE${pkgver/./_}"
# - CVE-2019-8906
# - CVE-2019-8907
+prepare() {
+ default_prepare
+
+ autoreconf -fvi
+}
+
build() {
- SH_LIBTOOL='/usr/share/build-1/libtool' autoreconf -f -i
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
- --datadir=/usr/share
+ --datadir=/usr/share \
+ --enable-static
make
}
@@ -42,10 +48,12 @@ package() {
libmagic() {
pkgdesc="File type identification library"
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/lib "$pkgdir"/usr/share "$subpkgdir"/usr
+
+ amove \
+ usr/lib/libmagic.so.* \
+ usr/share/misc/magic.mgc
}
sha512sums="
-7df20a1818a59feaa92012c6e19c263db1ac006d19bdec9fd69f47da702dae040f53371f112c31c38e42a35279a668a9e98469bc19cc88bed781ba46db235942 file-5.42.tar.gz
+fdd4c5d13d5ea1d25686c76d8ebc3252c54040c4871e3f0f623c4548b3841795d4e36050292a9453eedf0fbf932573890e9d6ac9fa63ccf577215598ae84b9ea file-5.45.tar.gz
"
diff --git a/main/findutils/APKBUILD b/main/findutils/APKBUILD
index ab650a70083..4473690a943 100644
--- a/main/findutils/APKBUILD
+++ b/main/findutils/APKBUILD
@@ -3,17 +3,19 @@
# Maintainer: Michael Mason <ms13sp@gmail.com>
pkgname=findutils
pkgver=4.9.0
-pkgrel=0
+pkgrel=5
pkgdesc="GNU utilities for finding files"
url="https://www.gnu.org/software/findutils/"
arch="all"
license="GPL-3.0-or-later"
checkdepends="coreutils diffutils dejagnu"
-subpackages="$pkgname-doc $pkgname-locate:_locate"
+subpackages="$pkgname-doc $pkgname-locate:_locate $pkgname-locate-doc:_locate_doc"
source="https://ftp.gnu.org/pub/gnu/findutils/findutils-$pkgver.tar.xz
test-parse-datetime.patch"
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -32,15 +34,27 @@ check() {
package() {
make DESTDIR="$pkgdir" install
rm -rf "$pkgdir"/usr/lib
+ mv "$pkgdir"/usr/share/man/man1/locate.1 "$builddir"
}
_locate() {
pkgdesc="locate and updatedb from findutils"
+ # requires flags only findutils find supports, like -fstype
+ depends="$pkgname=$pkgver-r$pkgrel"
+
amove usr/libexec/frcode \
usr/bin/locate \
usr/bin/updatedb
}
+_locate_doc() {
+ pkgdesc="locate and updatedb from findutils"
+ install -Dm644 "$builddir"/locate.1 \
+ -t "$pkgdir"/usr/share/man/man1
+ default_doc
+ install_if="docs $pkgname-locate=$pkgver-r$pkgrel"
+}
+
sha512sums="
ba4844f4403de0148ad14b46a3dbefd5a721f6257c864bf41a6789b11705408524751c627420b15a52af95564d8e5b52f0978474f640a62ab86a41d20cf14be9 findutils-4.9.0.tar.xz
79571dc889afa5e6f01c9e1d4134df5e4112a410f24eb3e315645f6886a901780745abe49597d07c6409a3e3ecd3380b1721d86a684b7705c35767111c93bbf5 test-parse-datetime.patch
diff --git a/main/fish/APKBUILD b/main/fish/APKBUILD
index 6e9fe47d04e..a18c2917c2e 100644
--- a/main/fish/APKBUILD
+++ b/main/fish/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Maintainer: Bart Ribbers <bribbers@disroot.org>
pkgname=fish
-pkgver=3.5.0
+pkgver=3.7.1
pkgrel=0
pkgdesc="Modern interactive commandline shell"
url="https://fishshell.com/"
@@ -18,23 +18,40 @@ source="https://github.com/fish-shell/fish-shell/releases/download/$pkgver/fish-
README.alpine
"
+# these were moved to the correct place, but on upgrade, fish would upgrade first,
+# which would conflict right before the others move, so we need a replaces= for
+# one transaction.
+replaces="
+ black-fish-completion
+ curl-fish-completion
+ docker-fish-completion
+ flatpak-fish-completion
+ helm-fish-completion
+ hugo-fish-completion
+ kind-fish-completion
+ mdbook-fish-completion
+ minikube-fish-completion
+ ouch-fish-completion
+ rclone-fish-completion
+ rustup-fish-completion
+ starship-fish-completion
+ topgrade-fish-completion
+ "
+
# secfixes:
# 3.4.0-r0:
# - CVE-2022-20001
-# temp allow textrels on riscv64
-[ "$CARCH" = "riscv64" ] && options="$options textrels"
-
build() {
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
-DBUILD_SHARED_LIBS=True \
- -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_SYSCONFDIR=/etc \
-DBUILD_DOCS=TRUE
- cmake --build build
- cmake --build build --target fish_tests
+ cmake --build build --target all fish_tests
}
check() {
@@ -51,30 +68,6 @@ package() {
mkdir -p "$pkgdir"/usr/lib
mv "$pkgdir"/usr/share/pkgconfig "$pkgdir"/usr/lib
-
- # https://gitlab.alpinelinux.org/alpine/aports/-/merge_requests/10159#note_101679
- rm "$pkgdir"/usr/share/fish/completions/rustup.fish
-
- # https://github.com/fish-shell/fish-shell/issues/2436
- rm "$pkgdir"/usr/share/fish/completions/docker.fish
-
- # provided by minikube-fish-completion
- rm "$pkgdir"/usr/share/fish/completions/minikube.fish
-
- # provided by flatpak-fish-completion
- rm "$pkgdir"/usr/share/fish/completions/flatpak.fish
-
- # provided by helm-fish-completion
- rm "$pkgdir"/usr/share/fish/completions/helm.fish
-
- # provided by curl-fish-completion
- rm "$pkgdir"/usr/share/fish/completions/curl.fish
-
- # provided by hugo-fish-completion
- rm "$pkgdir"/usr/share/fish/completions/hugo.fish
-
- # provided by starship-fish-completion
- rm "$pkgdir"/usr/share/fish/completions/starship.fish
}
doc() {
@@ -91,6 +84,6 @@ tools() {
}
sha512sums="
-ccec4abcdb425563688c6112f3c9c57add16aa3a05c121d2633b655d27185e1c96c263d51d6af7d83c068580d7d0723c072f1a4853fa8b6736291beeab64b859 fish-3.5.0.tar.xz
+f1605c400c5d5494f37b92dd386963dba7a3f3c401c369aaf3ff616d9d94836a0138d26074be24c92d94d9d7b625513800899c9431f5e21be0757eb0a0bfd3fe fish-3.7.1.tar.xz
c28cef48e3d9cde4956d36192dc221e63eca89282a937e2683578ac0958d98a9c54420aea4f1d91d516f5ee2c74589a75865a973305421e1ad0a9e70854dff4f README.alpine
"
diff --git a/main/flac/APKBUILD b/main/flac/APKBUILD
index 2e62156cfb2..380c11ccf37 100644
--- a/main/flac/APKBUILD
+++ b/main/flac/APKBUILD
@@ -1,15 +1,15 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=flac
-pkgver=1.3.4
-pkgrel=0
+pkgver=1.4.3
+pkgrel=1
pkgdesc="Free Lossless Audio Codec"
url="https://xiph.org/flac/"
arch="all"
-license="custom:Xiph LGPL GPL FDL"
+license="BSD-3-Clause AND GPL-2.0-or-later"
options="!check" # Tests are infinite
-subpackages="$pkgname-dev $pkgname-doc"
-makedepends="libogg-dev !libiconv"
-source="http://downloads.xiph.org/releases/flac/flac-$pkgver.tar.xz"
+subpackages="$pkgname-dev $pkgname-libs libflac libflac++:libpp $pkgname-doc"
+makedepends="cmake libogg-dev !libiconv samurai"
+source="https://downloads.xiph.org/releases/flac/flac-$pkgver.tar.xz"
# secfixes:
# 1.3.4-r0:
@@ -18,38 +18,50 @@ source="http://downloads.xiph.org/releases/flac/flac-$pkgver.tar.xz"
# 1.3.2-r2:
# - CVE-2017-6888
-
build() {
- local _arch_conf
- case "$CARCH" in
- ppc*) _arch_conf="--enable-altivec" ;;
- x86_64) _arch_conf="--enable-sse" ;;
- x86) _arch_conf="--disable-sse" ;;
- esac
-
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --mandir=/usr/share/man \
- --enable-shared \
- --enable-ogg \
- --disable-rpath \
- --with-pic \
- $_arch_conf
- make
+ export CFLAGS="$CFLAGS -O3 -flto=auto"
+ export CXXFLAGS="$CXXFLAGS -O3 -flto=auto"
+
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=None \
+ -DBUILD_TESTING=OFF \
+ -DBUILD_EXAMPLES=OFF \
+ -DBUILD_SHARED_LIBS=ON \
+ -DNDEBUG=ON
+
+ cmake --build build
}
check() {
- make check
+ ctest --test-dir build --output-on-failure
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
install -Dm0644 COPYING.Xiph \
"$pkgdir"/usr/share/licenses/$pkgname/COPYING.Xiph
}
+
+libs() {
+ # purely for backwards compat
+ depends="libflac=$pkgver-r$pkgrel libflac++=$pkgver-r$pkgrel"
+ mkdir -p "$subpkgdir"
+}
+
+libflac() {
+ pkgdesc="$pkgdesc (libFLAC)"
+
+ amove usr/lib/libFLAC.so.*
+}
+
+libpp() {
+ pkgdesc="$pkgdesc (libFLAC++)"
+
+ amove usr/lib/libFLAC++.so.*
+}
+
sha512sums="
-4a626e8a1bd126e234c0e5061e3b46f3a27c2065fdfa228fd8cf00d3c7fa2c05fafb5cec36acce7bfce4914bfd7db0b2a27ee15decf2d8c4caad630f62d44ec9 flac-1.3.4.tar.xz
+3cf095720bd590a588be8ccbe187d22e7a1c60ab85b1d510ce5e8a22ab0a51827b9acfeaad59bbd645a17d1f200f559255a640101b0330709a164306c0e9709e flac-1.4.3.tar.xz
"
diff --git a/main/flashcache-utils/APKBUILD b/main/flashcache-utils/APKBUILD
index 66c1ecb4302..f18b2cd29bc 100644
--- a/main/flashcache-utils/APKBUILD
+++ b/main/flashcache-utils/APKBUILD
@@ -1,37 +1,23 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=flashcache-utils
pkgver=3.1.3
-pkgrel=0
+pkgrel=3
pkgdesc="Userspace utilities for flashcache"
-url="https://github.com/facebook/flashcache"
+url="https://github.com/facebookarchive/flashcache"
arch="all"
-license="GPL"
-depends=""
-depends_dev=""
+license="GPL-2.0-or-later"
makedepends="$depends_dev linux-headers"
-install=""
-subpackages=""
-source="flashcache-$pkgver.tar.gz::https://github.com/facebook/flashcache/archive/$pkgver.tar.gz"
+source="flashcache-$pkgver.tar.gz::https://github.com/facebookarchive/flashcache/archive/$pkgver.tar.gz"
-_builddir="$srcdir"/flashcache-$pkgver
-prepare() {
- local i
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
-}
+builddir="$srcdir"/flashcache-$pkgver/src
+options="!check"
build() {
- cd "$_builddir"/src
make -C utils
}
package() {
- cd "$_builddir"/src/utils
- make install DESTDIR="$pkgdir" || return 1
+ make -C utils install DESTDIR="$pkgdir"
}
sha512sums="f7577993ca7962231b19d3141da22268f9b36bf2d60b83ad33c9cabcbae82db2ff2a1697a7137db61b06d5a8ea897a11dc7a80c9c85184c47feddd57d2297275 flashcache-3.1.3.tar.gz"
diff --git a/main/flashrom/APKBUILD b/main/flashrom/APKBUILD
deleted file mode 100644
index 67c74ec6f40..00000000000
--- a/main/flashrom/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Nathan Angelacos <nangel@alpinelinux.org>
-pkgname=flashrom
-pkgver=1.2
-pkgrel=0
-pkgdesc="A utility for identifying, reading, writing, verifying and erasing flash chips"
-url="https://www.flashrom.org/Flashrom"
-arch="all"
-license="GPL-2.0-or-later"
-depends="dmidecode"
-makedepends="pciutils-dev libusb-compat-dev linux-headers"
-subpackages="$pkgname-doc"
-install="$pkgname.post-install"
-options="!check" # no test suite
-source="https://download.flashrom.org/releases/flashrom-v$pkgver.tar.bz2
- musl-ffs.patch
- "
-
-builddir="$srcdir"/$pkgname-v$pkgver
-
-build() {
- make PREFIX=/usr/
-}
-
-package() {
- make PREFIX="$pkgdir/usr/" install
-}
-
-sha512sums="8e01395a54d0d1344bc55e7e4975f43bb8e59ebe83fb5f2766d14f76756d718b487254ce9a19ef4093aed04fb9d40fff5fe8f709b18c512f6e6fad894f83d7b8 flashrom-v1.2.tar.bz2
-371131e37ee0f2ce31b5dd264707b91817a2f0a3654943e6b3430df862d4bb64f27117c1c94276cb447f5b45f1771b9997f9c96423d68c6dd4565c1e1f442a5e musl-ffs.patch"
diff --git a/main/flashrom/flashrom.post-install b/main/flashrom/flashrom.post-install
deleted file mode 100755
index b7919f5fd14..00000000000
--- a/main/flashrom/flashrom.post-install
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-if [ -e /proc/sys/kernel/grsecurity/ ]; then
-cat - <<EOF
-
- ************[ flashrom package installation notice ]****************
-
- You appear to be running a grsec enabled kernel.
- flashrom needs write access to /dev/mem and will likely not work
-
- *********************************************************************
-
-EOF
-fi
-exit 0
-
diff --git a/main/flashrom/musl-ffs.patch b/main/flashrom/musl-ffs.patch
deleted file mode 100644
index 5af047d5a8d..00000000000
--- a/main/flashrom/musl-ffs.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- flashrom-0.9.9/spi.c.orig 2017-07-16 14:56:35.786503889 +0300
-+++ flashrom-0.9.9/spi.c 2017-07-16 14:58:31.698126720 +0300
-@@ -22,6 +22,7 @@
- * Contains the generic SPI framework
- */
-
-+#define _BSD_SOURCE
- #include <strings.h>
- #include <string.h>
- #include "flash.h"
diff --git a/main/flex/APKBUILD b/main/flex/APKBUILD
index 46827ac6936..9bf992df7a9 100644
--- a/main/flex/APKBUILD
+++ b/main/flex/APKBUILD
@@ -2,19 +2,23 @@
# Contributor: Arch3y <arch3y@riseup.net>
pkgname=flex
pkgver=2.6.4
-pkgrel=3
+pkgrel=6
pkgdesc="A tool for generating text-scanning programs"
url="https://github.com/westes/flex"
arch="all"
-license="BSD-2-Clause AND LGPL-2.0-or-later"
+license="BSD-2-Clause"
depends="m4"
depends_dev="flex"
makedepends="$depends_dev bison help2man"
subpackages="$pkgname-doc $pkgname-libs $pkgname-dev"
-source="https://github.com/westes/$pkgname/releases/download/v$pkgver/$pkgname-$pkgver.tar.gz"
+source="https://github.com/westes/flex/releases/download/v$pkgver/flex-$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -29,12 +33,10 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make install DESTDIR="$pkgdir"
ln -s flex "$pkgdir"/usr/bin/lex
}
diff --git a/main/flite/APKBUILD b/main/flite/APKBUILD
index 27a2178e210..40cbf42d42e 100644
--- a/main/flite/APKBUILD
+++ b/main/flite/APKBUILD
@@ -2,9 +2,9 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=flite
pkgver=2.2
-pkgrel=0
+pkgrel=2
pkgdesc="Small, fast speech synthesis engine (text-to-speech)"
-url="http://www.speech.cs.cmu.edu/flite"
+url="http://cmuflite.org/"
arch="all"
license="BSD-4-Clause"
makedepends="alsa-lib-dev"
@@ -12,6 +12,7 @@ subpackages="$pkgname-dev"
source="$pkgname-$pkgver.tar.gz::https://github.com/festvox/flite/archive/v$pkgver.tar.gz
flite.pc
"
+options="!check"
prepare() {
default_prepare
@@ -28,7 +29,7 @@ build() {
--enable-shared \
--localstatedir=/var \
--with-audio=alsa
- make
+ make -j1
}
package() {
@@ -41,5 +42,7 @@ package() {
install -Dm0644 "$srcdir"/flite.pc -t "$pkgdir"/usr/lib/pkgconfig
}
-sha512sums="1ca2f4145651490ef8405fdb830a3b42e885020a7603d965f6a5581b01bed41047d396b38c2ceab138fc0b28d28078db17acd2b5a84c6444cb99d65c581afa72 flite-2.2.tar.gz
-9c8ea1b4241b0488d180b3391b594c76bdd43123051b0579983b17e0760d5b4bdf4887ac5d268111f6648d1373f042be067ab8762b7afb21c83e07fb6d73807b flite.pc"
+sha512sums="
+1ca2f4145651490ef8405fdb830a3b42e885020a7603d965f6a5581b01bed41047d396b38c2ceab138fc0b28d28078db17acd2b5a84c6444cb99d65c581afa72 flite-2.2.tar.gz
+9c8ea1b4241b0488d180b3391b594c76bdd43123051b0579983b17e0760d5b4bdf4887ac5d268111f6648d1373f042be067ab8762b7afb21c83e07fb6d73807b flite.pc
+"
diff --git a/main/fmt/APKBUILD b/main/fmt/APKBUILD
new file mode 100644
index 00000000000..fb4378978bc
--- /dev/null
+++ b/main/fmt/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Luca Weiss <luca@z3ntu.xyz>
+# Maintainer: Duncan Bellamy <dunk@denkimushi.com>
+pkgname=fmt
+pkgver=10.2.1
+pkgrel=1
+pkgdesc="Open-source formatting library for C++"
+url="https://fmt.dev/latest/index.html"
+arch="all"
+license="MIT"
+makedepends="cmake doxygen python3 samurai"
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://github.com/fmtlib/fmt/releases/download/$pkgver/fmt-$pkgver.zip
+ Fix-handling-of-static-separator.patch"
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ # Build in-tree so the prebuilt docs get installed correctly.
+ # See https://github.com/fmtlib/fmt/issues/2837
+ cmake -B . -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=True \
+ -DCMAKE_BUILD_TYPE=None \
+ $CMAKE_CROSSOPTS
+ cmake --build .
+}
+
+check() {
+ # libstdc++ locale stuff broken
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest -E 'chrono-test|unicode-test|xchar-test'
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install .
+}
+
+sha512sums="
+1cf0e3dd09c7d87e0890b8743559159d3be2a8f33c135516962d17c4eeb7b00659e6acd74518bd5566ee4e83ddaba155fecb4c229f90cd258b3b832e72ad82cd fmt-10.2.1.zip
+695fb13dc60eea6ce83319d8925be49b3a7af6651d80ab528ed244e589c581ee05ac7887f6c73dbfcf2654afabd2c405c0e2eeb5f1f0851237b14d305185d7d5 Fix-handling-of-static-separator.patch
+"
diff --git a/main/fmt/Fix-handling-of-static-separator.patch b/main/fmt/Fix-handling-of-static-separator.patch
new file mode 100644
index 00000000000..27bfda2a4f7
--- /dev/null
+++ b/main/fmt/Fix-handling-of-static-separator.patch
@@ -0,0 +1,32 @@
+From 44c3fe1ebb466ab5c296e1a1a6991c7c7b51b72e Mon Sep 17 00:00:00 2001
+From: Victor Zverovich <viz@meta.com>
+Date: Fri, 9 Feb 2024 15:58:56 -0800
+Subject: [PATCH] Fix handling of static separator
+
+---
+ include/fmt/format-inl.h | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+--- a/include/fmt/format-inl.h
++++ b/include/fmt/format-inl.h
+@@ -114,7 +114,11 @@ template <typename Char> FMT_FUNC Char d
+
+ FMT_FUNC auto write_loc(appender out, loc_value value,
+ const format_specs<>& specs, locale_ref loc) -> bool {
+-#ifndef FMT_STATIC_THOUSANDS_SEPARATOR
++#ifdef FMT_STATIC_THOUSANDS_SEPARATOR
++ value.visit(loc_writer<>{
++ out, specs, std::string(1, FMT_STATIC_THOUSANDS_SEPARATOR), "\3", "."});
++ return true;
++#else
+ auto locale = loc.get<std::locale>();
+ // We cannot use the num_put<char> facet because it may produce output in
+ // a wrong encoding.
+@@ -123,7 +127,6 @@ FMT_FUNC auto write_loc(appender out, lo
+ return std::use_facet<facet>(locale).put(out, value, specs);
+ return facet(locale).put(out, value, specs);
+ #endif
+- return false;
+ }
+ } // namespace detail
+
diff --git a/main/font-adobe-100dpi/APKBUILD b/main/font-adobe-100dpi/APKBUILD
index 2075737c5fd..3b0bed883df 100644
--- a/main/font-adobe-100dpi/APKBUILD
+++ b/main/font-adobe-100dpi/APKBUILD
@@ -1,40 +1,37 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-adobe-100dpi
-pkgver=1.0.3
-pkgrel=0
+pkgver=1.0.4
+pkgrel=2
pkgdesc="X.org adobe 100dpi font"
-url="http://xorg.freedesktop.org/"
-arch="all"
-license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
+license="MIT"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-adobe-100dpi-$pkgver.tar.xz"
+subpackages="$pkgname-doc"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/100dpi \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/100dpi
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
-sha512sums="27ed98dcdbb9c174c7090cdd8fe230f7471d10b5dfc63e092640b5d0fc6ab351bc8ffa9a92bec1755f2780b3d9c1de3ad298c64b70a68b5e6879a8592ef32987 font-adobe-100dpi-1.0.3.tar.bz2"
+sha512sums="
+fedb86672c3b9cb624ee5d74d1d710f21d92c2d48a1fcf0a45b54b3f992f6f5599fc271d38a7e25ef123b64d405fa60a3d46883fe7a9d71ebad83c9b418f8383 font-adobe-100dpi-1.0.4.tar.xz
+"
diff --git a/main/font-adobe-75dpi/APKBUILD b/main/font-adobe-75dpi/APKBUILD
index 196014e9e1e..ed7c2973c28 100644
--- a/main/font-adobe-75dpi/APKBUILD
+++ b/main/font-adobe-75dpi/APKBUILD
@@ -1,39 +1,36 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-adobe-75dpi
-pkgver=1.0.3
-pkgrel=0
+pkgver=1.0.4
+pkgrel=2
pkgdesc="X.org adobe 75dpi font"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="noarch"
-license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+license="MIT"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-adobe-75dpi-$pkgver.tar.xz"
+subpackages="$pkgname-doc"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
- --with-fontdir=/usr/share/fonts/75dpi \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/75dpi
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
-sha512sums="c0d851df5732e81027e265370751a606c6e4f5eea546d802608988dde02de35fa28238f709f48567191090bf18814f671b1a7f9f0b528d54949b0aa9403f266d font-adobe-75dpi-1.0.3.tar.bz2"
+sha512sums="
+4e63c268525f21c03525870129c8d42cbd17a03d86d9c88bebdccb5094a1093acef1d2b6d4dde221559cb19f047b86baf58fa8ad65d28d4cb6c3064ec164836a font-adobe-75dpi-1.0.4.tar.xz
+"
diff --git a/main/font-adobe-utopia-100dpi/APKBUILD b/main/font-adobe-utopia-100dpi/APKBUILD
index d3e27dfa677..12351bd9d89 100644
--- a/main/font-adobe-utopia-100dpi/APKBUILD
+++ b/main/font-adobe-utopia-100dpi/APKBUILD
@@ -1,40 +1,37 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-adobe-utopia-100dpi
-pkgver=1.0.4
-pkgrel=0
+pkgver=1.0.5
+pkgrel=2
pkgdesc="X.org adobe 100dpi font"
-url="http://xorg.freedesktop.org/"
-arch="all"
-license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
+license="Adobe-Utopia"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-adobe-utopia-100dpi-$pkgver.tar.xz"
+subpackages="$pkgname-doc"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/100dpi \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/100dpi
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
-sha512sums="fecb9a9bde99a82787d12779ea579c8696dcce168acd74b478a879ae24d421d5978d5f69da651e8ff3b25dca355960aaa19f69f2bf61e540464887e546a7b94b font-adobe-utopia-100dpi-1.0.4.tar.bz2"
+sha512sums="
+9685d66de107ab3142aa9322bbded20f4f538d7bcd8c97bfb4db8eb1fc440724b0c7574ee8b4b5e96c81044c8ee4da175dd638f03dc3e1e650200fdf7b8a169b font-adobe-utopia-100dpi-1.0.5.tar.xz
+"
diff --git a/main/font-adobe-utopia-75dpi/APKBUILD b/main/font-adobe-utopia-75dpi/APKBUILD
index 50fbbd5a057..9fe6f7a2096 100644
--- a/main/font-adobe-utopia-75dpi/APKBUILD
+++ b/main/font-adobe-utopia-75dpi/APKBUILD
@@ -1,40 +1,37 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-adobe-utopia-75dpi
-pkgver=1.0.4
-pkgrel=0
+pkgver=1.0.5
+pkgrel=2
pkgdesc="X.org adobe 75dpi font"
-url="http://xorg.freedesktop.org/"
-arch="all"
-license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
+license="Adobe-Utopia"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-adobe-utopia-75dpi-$pkgver.tar.xz"
+subpackages="$pkgname-doc"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/75dpi \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/75dpi
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
-sha512sums="c569af760a62b00738be65546364587638e8c46e4a0765013747e9595d51bc0633908c72359e42e7ebf6240fdc6294b51512c0a096a5fe64b2bd300ccbff7b92 font-adobe-utopia-75dpi-1.0.4.tar.bz2"
+sha512sums="
+9608698288fca47bf61cff911b8f081593807eed9f138ea22f05a7b6c26c481ec5144d79665cf509ba889df35ef5406e0de71710362bcf6de6b602c12158e22a font-adobe-utopia-75dpi-1.0.5.tar.xz
+"
diff --git a/main/font-adobe-utopia-type1/APKBUILD b/main/font-adobe-utopia-type1/APKBUILD
index 76b499dcfe9..9eafb76d9aa 100644
--- a/main/font-adobe-utopia-type1/APKBUILD
+++ b/main/font-adobe-utopia-type1/APKBUILD
@@ -1,40 +1,37 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-adobe-utopia-type1
-pkgver=1.0.4
-pkgrel=0
+pkgver=1.0.5
+pkgrel=1
pkgdesc="X.org adobe utopia-type1 fonts"
-url="http://xorg.freedesktop.org/"
-arch="all"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-adobe-utopia-type1-$pkgver.tar.xz"
+subpackages="$pkgname-doc"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/utopia-type1 \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/utopia-type1
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
-sha512sums="53ff2ce7b17824a0eed1be6c3e3386e51983389f5623e732ac898c4e08769c8720f6d6b7c75b6455e050ec5dc390376747ca4cdb9f831a218f9dd5ee5edcd0d6 font-adobe-utopia-type1-1.0.4.tar.bz2"
+sha512sums="
+e30f4c7702f47a3a42206975fbcfec058317681956d246411e50e372b669bdc875c5d7fe28bad7d298bc61b71a997c7836fb6ac16effd223a96723a6e9ece649 font-adobe-utopia-type1-1.0.5.tar.xz
+"
diff --git a/main/font-alias/APKBUILD b/main/font-alias/APKBUILD
index 3569f1c2f83..7fe787b965a 100644
--- a/main/font-alias/APKBUILD
+++ b/main/font-alias/APKBUILD
@@ -1,12 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-alias
-pkgver=1.0.4
+pkgver=1.0.5
pkgrel=0
pkgdesc="X.org font alias files"
url="https://xorg.freedesktop.org/"
arch="noarch"
-license="MIT"
-source="https://www.x.org/releases/individual/font/font-alias-$pkgver.tar.bz2"
+license="custom"
+source="https://www.x.org/releases/individual/font/font-alias-$pkgver.tar.xz"
+subpackages="$pkgname-doc"
build() {
./configure \
@@ -23,6 +24,10 @@ check() {
package() {
make DESTDIR="$pkgdir" install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
-sha512sums="c67ac2ee344a601fcc09471580214b30c3fd6acc4800702840de44f0733e6d18b3faeec2fa3f4e2314025cc1724d7d6796ebaf620398fe350710182fd2c4b07d font-alias-1.0.4.tar.bz2"
+sha512sums="
+86bffa6b9ff789eeba715c079965157806ed633d44cd3dbf5e2a4bba2b390a0f48db65edc8e3264acbc2368d78a8d7e05bc2e2e3a86ddbf6b08bfe7f5e862bcc font-alias-1.0.5.tar.xz
+"
diff --git a/main/font-arabic-misc/APKBUILD b/main/font-arabic-misc/APKBUILD
index 6f404877aa5..f192be11dd1 100644
--- a/main/font-arabic-misc/APKBUILD
+++ b/main/font-arabic-misc/APKBUILD
@@ -1,40 +1,34 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-arabic-misc
-pkgver=1.0.3
-pkgrel=0
+pkgver=1.0.4
+pkgrel=1
pkgdesc="X.org misc font"
-url="http://xorg.freedesktop.org/"
-arch="all"
-license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
+license="MIT"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-arabic-misc-$pkgver.tar.xz"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/misc \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/misc
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
}
-sha512sums="46a416bf888afdb54f5dda6c9a7207dc069d14089ba14b262c60cb9ad427784c46e2a61b32a79f1d745e73ea657bbc36b48aa5d4bbd79f73a2d997b027ddfbc0 font-arabic-misc-1.0.3.tar.bz2"
+sha512sums="
+afd5fae32440b133c5ee0195af44ad1462d35c2f451dcf4b1c93e0ce245d009b120d39eb5f780b003ae2f572408965e6d149437e9ebbf5738cb69193aaa4d488 font-arabic-misc-1.0.4.tar.xz
+"
diff --git a/main/font-bh-100dpi/APKBUILD b/main/font-bh-100dpi/APKBUILD
index b2ddde5bcb8..c9f6d95a390 100644
--- a/main/font-bh-100dpi/APKBUILD
+++ b/main/font-bh-100dpi/APKBUILD
@@ -1,40 +1,37 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-bh-100dpi
-pkgver=1.0.3
-pkgrel=0
+pkgver=1.0.4
+pkgrel=1
pkgdesc="X.Org Bigelow & Holmes bitmap fonts"
-url="http://xorg.freedesktop.org/"
-arch="all"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-bh-100dpi-$pkgver.tar.xz"
+subpackages="$pkgname-doc"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/100dpi \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/100dpi
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
-sha512sums="60532fb3bd25bad08b1db65f96fdd1cdb2ae5fd580729d7851f5b619f1ed6bdef4fec30111ec408cec9ae5e94f92ad9cf214214c01ac684f3a4bd8d43bafd8a2 font-bh-100dpi-1.0.3.tar.bz2"
+sha512sums="
+5fe2a24df0d0e9109f1c1cb2556f4cdbf07cc16441e565333f01a00815dd4555b6ef0dd689ef3196ddb76db7480bca8f0b501d4244262d6c64d4751d75503b44 font-bh-100dpi-1.0.4.tar.xz
+"
diff --git a/main/font-bh-75dpi/APKBUILD b/main/font-bh-75dpi/APKBUILD
index 01802d80953..a9557863745 100644
--- a/main/font-bh-75dpi/APKBUILD
+++ b/main/font-bh-75dpi/APKBUILD
@@ -1,40 +1,37 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-bh-75dpi
-pkgver=1.0.3
-pkgrel=0
+pkgver=1.0.4
+pkgrel=1
pkgdesc="X.Org Bigelow & Holmes bitmap fonts"
-url="http://xorg.freedesktop.org/"
-arch="all"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-bh-75dpi-$pkgver.tar.xz"
+subpackages="$pkgname-doc"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/75dpi \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/75dpi
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
-sha512sums="fb19c7fe91b6cc0670b01d5b8165075866ad08796293650d6037d79211ca668decdcc1b3684774907c06073145919655690d78ccdcf2511db38b5879328a9f50 font-bh-75dpi-1.0.3.tar.bz2"
+sha512sums="
+8ccc5accdd43b4e1b8007c94e7916c6ee947ff0d57e3b0ce92154b718ef0ac2579659719738a50ef3ab0998a8bcea5b055e6a2e4d72b9fa5755b786143303955 font-bh-75dpi-1.0.4.tar.xz
+"
diff --git a/main/font-bh-lucidatypewriter-100dpi/APKBUILD b/main/font-bh-lucidatypewriter-100dpi/APKBUILD
deleted file mode 100644
index 574f62ec49a..00000000000
--- a/main/font-bh-lucidatypewriter-100dpi/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=font-bh-lucidatypewriter-100dpi
-pkgver=1.0.3
-pkgrel=0
-pkgdesc="X.Org Bigelow & Holmes Lucida bitmap fonts"
-url="http://xorg.freedesktop.org/"
-arch="noarch"
-license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
-makedepends="font-util-dev font-util bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
-
-build() {
- cd "$srcdir"/$pkgname-$pkgver
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/100dpi \
- || return 1
- make || return 1
-}
-
-package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
- MKFONTDIR=: \
- MKFONTSCALE=: \
- FCCACHE=: \
- install || return 1
-}
-
-sha512sums="1862003c20aa7709ea07487a4326c619e2beb33b7069d644f438d64182b41a06039c69e2867921b4d12939612a4b8e1e1727fd15851aeab9a0361060183e3b0f font-bh-lucidatypewriter-100dpi-1.0.3.tar.bz2"
diff --git a/main/font-bh-lucidatypewriter-75dpi/APKBUILD b/main/font-bh-lucidatypewriter-75dpi/APKBUILD
deleted file mode 100644
index c13fb03e2dd..00000000000
--- a/main/font-bh-lucidatypewriter-75dpi/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=font-bh-lucidatypewriter-75dpi
-pkgver=1.0.3
-pkgrel=0
-pkgdesc="X.Org Bigelow & Holmes Lucida bitmap fonts"
-url="http://xorg.freedesktop.org/"
-arch="noarch"
-license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
-makedepends="font-util-dev font-util bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
-
-build() {
- cd "$srcdir"/$pkgname-$pkgver
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/75dpi \
- || return 1
- make || return 1
-}
-
-package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
- MKFONTDIR=: \
- MKFONTSCALE=: \
- FCCACHE=: \
- install || return 1
-}
-
-sha512sums="2bba19c10df8e95f95d59d5fc7c15380c91a5140b0fa490497dbdf78a5574adae06a5566941c8c61e4a9850712fc9ca16974173aeee771f41976f472f0a2de13 font-bh-lucidatypewriter-75dpi-1.0.3.tar.bz2"
diff --git a/main/font-bh-ttf/APKBUILD b/main/font-bh-ttf/APKBUILD
deleted file mode 100644
index 60fc6c25562..00000000000
--- a/main/font-bh-ttf/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=font-bh-ttf
-pkgver=1.0.3
-pkgrel=1
-pkgdesc="X.org bh TTF fonts"
-url="http://xorg.freedesktop.org/"
-arch="all"
-license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
-makedepends="font-util-dev bdftopcf fontconfig-dev"
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- default_prepare
- update_config_sub
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/TTF
- make
-}
-
-package() {
- make -j1 DESTDIR="$pkgdir" \
- MKFONTDIR=: \
- MKFONTSCALE=: \
- FCCACHE=: \
- install
-}
-
-sha512sums="36b5b6bbc2894cd90a372e8131281a462b42d503be3e9af8565edbcd954b336690aa86a0b6fb162d865ba71b65669c5b911658c5b820effcea39d086d485be25 font-bh-ttf-1.0.3.tar.bz2"
diff --git a/main/font-bh-type1/APKBUILD b/main/font-bh-type1/APKBUILD
deleted file mode 100644
index 583d988532c..00000000000
--- a/main/font-bh-type1/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=font-bh-type1
-pkgver=1.0.3
-pkgrel=0
-pkgdesc="X.org bh Type1 fonts"
-url="http://xorg.freedesktop.org/"
-arch="all"
-license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
-makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
-
-build() {
- cd "$srcdir"/$pkgname-$pkgver
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/Type1 \
- || return 1
- make || return 1
-}
-
-package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
- MKFONTDIR=: \
- MKFONTSCALE=: \
- FCCACHE=: \
- install || return 1
-}
-
-sha512sums="dc6cfe7d78a549ae5368ddd2bb3edc6746648b32e1f22bce87f6adc0845ef4827cd3b2472d0afa17a16a2c384e84f74f1c7d807510798bc69089920fdc5486da font-bh-type1-1.0.3.tar.bz2"
diff --git a/main/font-bitstream-100dpi/APKBUILD b/main/font-bitstream-100dpi/APKBUILD
index e4e65428032..5a5dcb2bd71 100644
--- a/main/font-bitstream-100dpi/APKBUILD
+++ b/main/font-bitstream-100dpi/APKBUILD
@@ -1,40 +1,37 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-bitstream-100dpi
-pkgver=1.0.3
-pkgrel=0
+pkgver=1.0.4
+pkgrel=2
pkgdesc="X.Org Bitstream bitmap fonts"
-url="http://xorg.freedesktop.org/"
-arch="all"
-license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
+license="MIT"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-bitstream-100dpi-$pkgver.tar.xz"
+subpackages="$pkgname-doc"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/100dpi \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/100dpi
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
-sha512sums="10fd920d46d2cb1b314e8c2f05c202e9ffa74a4e5315f34790eba8bd8fcda865a6932eb712a7538624e69367647bcd6891e7015099e65463aeef772d0ba58bfd font-bitstream-100dpi-1.0.3.tar.bz2"
+sha512sums="
+1389681eee8b9e2bbfe0293b0aa1add7c6fa86149ff3cb779195ddcc548b1a519336c2d43b6988c899dc09d44ca30de9ffb5daca24fc3906694ab0fd391eb437 font-bitstream-100dpi-1.0.4.tar.xz
+"
diff --git a/main/font-bitstream-75dpi/APKBUILD b/main/font-bitstream-75dpi/APKBUILD
index cd91e62fbdf..e8332a0605d 100644
--- a/main/font-bitstream-75dpi/APKBUILD
+++ b/main/font-bitstream-75dpi/APKBUILD
@@ -1,40 +1,37 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-bitstream-75dpi
-pkgver=1.0.3
-pkgrel=0
+pkgver=1.0.4
+pkgrel=2
pkgdesc="X.Org Bitstream bitmap fonts"
-url="http://xorg.freedesktop.org/"
-arch="all"
-license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
+license="MIT"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-bitstream-75dpi-$pkgver.tar.xz"
+subpackages="$pkgname-doc"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/75dpi \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/75dpi
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
-sha512sums="9311a5b0cbe1613aca87fdf7fd9ab263eb1129e3c3eacbce54547f2185e151fb1237128b1b6d39f716f28694a486909564ecc9a0aef061438622d11b5661d650 font-bitstream-75dpi-1.0.3.tar.bz2"
+sha512sums="
+d678c58493696b3a744878991838b329243e5ba7985b1a435b62e9b1a05b5609d0b66d5943d840479ce2c5fc1da1b0633c33f28e3613712d26802fc41ee22c22 font-bitstream-75dpi-1.0.4.tar.xz
+"
diff --git a/main/font-bitstream-speedo/APKBUILD b/main/font-bitstream-speedo/APKBUILD
deleted file mode 100644
index 5cc23a9ef5a..00000000000
--- a/main/font-bitstream-speedo/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=font-bitstream-speedo
-pkgver=1.0.2
-pkgrel=0
-pkgdesc="X.org bitstream Speedo fonts"
-url="http://xorg.freedesktop.org/"
-arch="noarch"
-license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
-makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-_builddir="$srcdir/$pkgname-$pkgver"
-
-prepare() {
- cd "$_builddir"
- update_config_sub || return 1
-}
-
-build() {
- cd "$_builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/Speedo \
- || return 1
- make || return 1
-}
-
-package() {
- cd "$_builddir"
- make -j1 DESTDIR="$pkgdir" MKFONTDIR=: MKFONTSCALE=: install || return 1
-}
-
-sha512sums="78816cc0dd0c9ba3f1de6ba39754bdf19253fea3583ef1bf459ead4b74f2587bc38bbc0bfdc5066a8055c1c45091e44987f6d15e98b6cf4ee18f60c2431349fb font-bitstream-speedo-1.0.2.tar.bz2"
diff --git a/main/font-bitstream-type1/APKBUILD b/main/font-bitstream-type1/APKBUILD
index 4af564b6a34..dcb64fa0ecb 100644
--- a/main/font-bitstream-type1/APKBUILD
+++ b/main/font-bitstream-type1/APKBUILD
@@ -1,40 +1,37 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-bitstream-type1
-pkgver=1.0.3
-pkgrel=0
+pkgver=1.0.4
+pkgrel=2
pkgdesc="X.org bitstream Type1 fonts"
-url="http://xorg.freedesktop.org/"
-arch="all"
-license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
+license="Bitstream-Charter"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-bitstream-type1-$pkgver.tar.xz"
+subpackages="$pkgname-doc"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/Type1 \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/Type1
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
-sha512sums="71883f7fc0a68b4fb8ef30b8b8bdfd73ae1194b6d6495abde6c819eef7a91d6365ef1b4cae026d6c3fa7fddecc643b46b7ba1232cec404fcada49a92aaf1af61 font-bitstream-type1-1.0.3.tar.bz2"
+sha512sums="
+f09d60abb88c9be6227c57f5519f08e5e3c59c916183d32a512d3c2ace0047eaad2b377c3725c8987e8b4c55468eb7821322ff5447f000d4c2be6cb909f6219b font-bitstream-type1-1.0.4.tar.xz
+"
diff --git a/main/ttf-cantarell/APKBUILD b/main/font-cantarell/APKBUILD
index 12387628782..f001461be26 100644
--- a/main/ttf-cantarell/APKBUILD
+++ b/main/font-cantarell/APKBUILD
@@ -1,8 +1,8 @@
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=ttf-cantarell
+pkgname=font-cantarell
pkgver=0.303.1
-pkgrel=0
+pkgrel=2
pkgdesc="Humanist sans-serif font designed for on-screen reading"
url="https://wiki.gnome.org/Projects/CantarellFonts"
arch="noarch"
@@ -14,11 +14,15 @@ builddir="$srcdir/cantarell-fonts-$pkgver"
# it's just data, no testsuites
options="!check"
+# backwards compat (<3.17)
+provides="ttf-cantarell=$pkgver-r$pkgrel"
+replaces="ttf-cantarell"
+
build() {
abuild-meson \
-Duseprebuilt=true \
build
- meson compile ${JOBS:+-j ${JOBS}} -C build
+ meson compile -C build
}
package() {
diff --git a/main/font-cronyx-cyrillic/APKBUILD b/main/font-cronyx-cyrillic/APKBUILD
index 95610eef63e..13ed2f39927 100644
--- a/main/font-cronyx-cyrillic/APKBUILD
+++ b/main/font-cronyx-cyrillic/APKBUILD
@@ -1,40 +1,37 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-cronyx-cyrillic
-pkgver=1.0.3
-pkgrel=0
+pkgver=1.0.4
+pkgrel=1
pkgdesc="X.org cronyx cyrillic fonts"
-url="http://xorg.freedesktop.org/"
-arch="all"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-cronyx-cyrillic-$pkgver.tar.xz"
+subpackages="$pkgname-doc"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/cyrillic \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/cyrillic
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
-sha512sums="b926c425644f94548ad831c38573009ae97d207a05c9d8a917018c2518911960280eb3861ae11d99bc8d001fb0dca1967712fb70ba4f413bc9d6ac8ef904b456 font-cronyx-cyrillic-1.0.3.tar.bz2"
+sha512sums="
+39c0bfc08ac746fd98a668d7545da503e8413d5d66cdb1884489ed7221fa4f09dad8dc997ca39595113e2f12fd65de6d2bfd8eaf1480aa93d5eb961d2e2f7cff font-cronyx-cyrillic-1.0.4.tar.xz
+"
diff --git a/main/font-cursor-misc/APKBUILD b/main/font-cursor-misc/APKBUILD
index 5c31009e73e..fef37cdf6e7 100644
--- a/main/font-cursor-misc/APKBUILD
+++ b/main/font-cursor-misc/APKBUILD
@@ -1,25 +1,17 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-cursor-misc
-pkgver=1.0.3
+pkgver=1.0.4
pkgrel=1
pkgdesc="X.org misc font"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="noarch"
-license="custom"
+license="Public Domain"
options="!check" # No test suite.
-depends="encodings font-alias mkfontscale mkfontdir fontconfig util-macros"
+depends="encodings font-alias mkfontscale fontconfig util-macros"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$builddir"
- update_config_sub
- default_prepare
-}
+source="https://www.x.org/releases/individual/font/font-cursor-misc-$pkgver.tar.xz"
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -29,12 +21,13 @@ build() {
}
package() {
- cd "$builddir"
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
install
}
-sha512sums="7ecb7f1c3c11da8b81fc0ff121fa6c1026b11f6c7878ffd0e4959df036511bc579d6b0552422ce13e26a8d188e3406631d2de55cab6b29bc7fce0416a8cffc83 font-cursor-misc-1.0.3.tar.bz2"
+sha512sums="
+22bd86a81cdfb1e17f885dc3961071c08920171a6f0736ae52d95c8e576b1debc7570aa3b7e1007f474b50435fba411f0eb1847894e8b52f6e6268d91cf9f2db font-cursor-misc-1.0.4.tar.xz
+"
diff --git a/main/font-daewoo-misc/APKBUILD b/main/font-daewoo-misc/APKBUILD
deleted file mode 100644
index 9e9389c114d..00000000000
--- a/main/font-daewoo-misc/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=font-daewoo-misc
-pkgver=1.0.3
-pkgrel=0
-pkgdesc="X.org misc font"
-url="http://xorg.freedesktop.org/"
-arch="all"
-license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
-makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
-
-build() {
- cd "$srcdir"/$pkgname-$pkgver
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/misc \
- || return 1
- make || return 1
-}
-
-package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
- MKFONTDIR=: \
- MKFONTSCALE=: \
- FCCACHE=: \
- install || return 1
-}
-
-sha512sums="7e97bc580f66a1316e366617d34e1dbefd576b47b9373ef34833aaaf2fdefc50befc2add5f038915db0b45fbdd56b77304a8a980bb72726479d429085c406f06 font-daewoo-misc-1.0.3.tar.bz2"
diff --git a/main/font-dec-misc/APKBUILD b/main/font-dec-misc/APKBUILD
index cfcef8d2e1a..8bd41732a4b 100644
--- a/main/font-dec-misc/APKBUILD
+++ b/main/font-dec-misc/APKBUILD
@@ -1,40 +1,34 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-dec-misc
-pkgver=1.0.3
-pkgrel=0
+pkgver=1.0.4
+pkgrel=1
pkgdesc="X.org misc font"
-url="http://xorg.freedesktop.org/"
-arch="all"
-license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
+license="HPND-sell-variant"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-dec-misc-$pkgver.tar.xz"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/misc \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/misc
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
}
-sha512sums="af755d51c4c59cdbe5d3dccf37990bc787373958feb984bb037c8d8aba8a0eb410965a3600886b5123d89e85e1ea0498b84dfa384fccbbcbcaf3549b83c839c6 font-dec-misc-1.0.3.tar.bz2"
+sha512sums="
+bf6c0e4924835346f1f7913a04fa3903a7c55d292317526dd8eaa799dfb3b52eb2157c34692d659b41a18123af8389785dcb4aa0c31fc387cb368642801c3335 font-dec-misc-1.0.4.tar.xz
+"
diff --git a/main/ttf-dejavu/45-dejavu.conf b/main/font-dejavu/45-dejavu.conf
index a5c3d9d3d50..a5c3d9d3d50 100644
--- a/main/ttf-dejavu/45-dejavu.conf
+++ b/main/font-dejavu/45-dejavu.conf
diff --git a/main/ttf-dejavu/90-tt-dejavu.conf b/main/font-dejavu/90-tt-dejavu.conf
index c722d396748..c722d396748 100644
--- a/main/ttf-dejavu/90-tt-dejavu.conf
+++ b/main/font-dejavu/90-tt-dejavu.conf
diff --git a/main/ttf-dejavu/APKBUILD b/main/font-dejavu/APKBUILD
index 3e7c77edd57..d622a871a90 100644
--- a/main/ttf-dejavu/APKBUILD
+++ b/main/font-dejavu/APKBUILD
@@ -1,13 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=ttf-dejavu
+pkgname=font-dejavu
pkgver=2.37
-pkgrel=1
+pkgrel=5
pkgdesc="Font family based on the Bitstream Vera Fonts with a wider range of characters"
url="https://dejavu-fonts.github.io/"
arch="noarch"
-license="custom"
+license="Bitstream-Vera"
options="!check"
-depends="fontconfig encodings mkfontdir mkfontscale"
+depends="fontconfig encodings mkfontscale"
makedepends="font-util-dev"
# added fontconfig configuration from:
# https://github.com/bohoomil/fontconfig-ultimate/tree/master/fontconfig_patches/fonts-settings
@@ -16,32 +16,35 @@ source="https://downloads.sourceforge.net/project/dejavu/dejavu/$pkgver/dejavu-f
45-dejavu.conf
90-tt-dejavu.conf
"
+builddir="$srcdir"
-build() {
- return 0
-}
+# backwards compat (<3.17)
+provides="ttf-dejavu=$pkgver-r$pkgrel"
+replaces="ttf-dejavu"
package() {
- mkdir -p "$pkgdir"/usr/share/fonts/$pkgname \
- "$pkgdir"/etc/fonts/conf.avail \
- "$pkgdir"/etc/fonts/conf.d
+ mkdir -p "$pkgdir"/etc/fonts/conf.d
- install -m644 "$srcdir"/dejavu-fonts-ttf-$pkgver/ttf/*.ttf \
- "$srcdir"/dejavu-lgc-fonts-ttf-$pkgver/ttf/*.ttf \
- "$pkgdir"/usr/share/fonts/$pkgname
+ install -Dm644 \
+ dejavu-fonts-ttf-$pkgver/ttf/*.ttf \
+ -t "$pkgdir"/usr/share/fonts/dejavu
- install -m644 "$srcdir"/dejavu-fonts-ttf-$pkgver/fontconfig/*.conf \
+ install -Dm644 \
+ "$srcdir"/dejavu-fonts-ttf-$pkgver/fontconfig/*.conf \
"$srcdir"/dejavu-lgc-fonts-ttf-$pkgver/fontconfig/*.conf \
- "$pkgdir"/etc/fonts/conf.avail
+ -t "$pkgdir"/etc/fonts/conf.avail/
cd "$pkgdir"/etc/fonts/conf.d
+ local j
for j in "$srcdir"/*.conf; do
- install -m644 "$j" "$pkgdir"/etc/fonts/conf.avail/
+ install -Dm644 "$j" -t "$pkgdir"/etc/fonts/conf.avail/
ln -sf /etc/fonts/conf.avail/${j##*/}
done
}
-sha512sums="bafa39321021097432777f0825d700190c23f917d754a4504722cd8946716c22c083836294dab7f3ae7cf20af63c4d0944f3423bf4aa25dbca562d1f30e00654 dejavu-fonts-ttf-2.37.tar.bz2
+sha512sums="
+bafa39321021097432777f0825d700190c23f917d754a4504722cd8946716c22c083836294dab7f3ae7cf20af63c4d0944f3423bf4aa25dbca562d1f30e00654 dejavu-fonts-ttf-2.37.tar.bz2
4bf36813b4143a482a50ee20377166cbc22e3aa62ccb453fe6ce27d2286acaf2b6f06759eb5d5000d2f868a7d93ecad851ad29de60fb531ed9ac2fcd7b9bdc1f dejavu-lgc-fonts-ttf-2.37.tar.bz2
df82fea7ad6c58edcc20c960fd2de9d49c70e23f9e63180b063c848a6f0d5592e2ce31dc0dc4a0b5abc8e682393c827c96b4a9da9203974672ebd3a77e5b9fc3 45-dejavu.conf
-bc12705369050739143eda6a2dadaada954112ea262bd297a4823b31861f3da0f61e17ad6fb61226caea16323c3bc9cd88e8b0e60f61b2af6d245af885a4399c 90-tt-dejavu.conf"
+bc12705369050739143eda6a2dadaada954112ea262bd297a4823b31861f3da0f61e17ad6fb61226caea16323c3bc9cd88e8b0e60f61b2af6d245af885a4399c 90-tt-dejavu.conf
+"
diff --git a/main/ttf-droid/45-droid.conf b/main/font-droid/45-droid.conf
index 12749e0fb4e..12749e0fb4e 100644
--- a/main/ttf-droid/45-droid.conf
+++ b/main/font-droid/45-droid.conf
diff --git a/main/ttf-droid/65-ttf-droid-sans.conf b/main/font-droid/65-ttf-droid-sans.conf
index afddabeeb8a..afddabeeb8a 100644
--- a/main/ttf-droid/65-ttf-droid-sans.conf
+++ b/main/font-droid/65-ttf-droid-sans.conf
diff --git a/main/ttf-droid/65-ttf-droid-serif.conf b/main/font-droid/65-ttf-droid-serif.conf
index 594af8c26af..594af8c26af 100644
--- a/main/ttf-droid/65-ttf-droid-serif.conf
+++ b/main/font-droid/65-ttf-droid-serif.conf
diff --git a/main/ttf-droid/90-tt-droid.conf b/main/font-droid/90-tt-droid.conf
index 50388866b46..50388866b46 100644
--- a/main/ttf-droid/90-tt-droid.conf
+++ b/main/font-droid/90-tt-droid.conf
diff --git a/main/ttf-droid/APKBUILD b/main/font-droid/APKBUILD
index 5918a6d90f1..caa6f884c84 100644
--- a/main/ttf-droid/APKBUILD
+++ b/main/font-droid/APKBUILD
@@ -1,6 +1,6 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer:
-pkgname=ttf-droid
+pkgname=font-droid
pkgver=20200215
pkgrel=2
pkgdesc="General-purpose fonts released by Google as part of Android."
@@ -20,24 +20,27 @@ source="https://dev.alpinelinux.org/archive/android-fonts/android-fonts-4.2.2_r1
90-tt-droid.conf
"
builddir="$srcdir"
+options="!check" # no tests
+
+# backwards compat (<3.17)
+provides="ttf-droid=$pkgver-r$pkgrel"
+replaces="ttf-droid"
package() {
- mkdir -p "$pkgdir"/usr/share/fonts/$pkgname \
- "$pkgdir"/etc/fonts/conf.avail \
- "$pkgdir"/etc/fonts/conf.d
+ mkdir -p "$pkgdir"/etc/fonts/conf.d
local fonts="DroidSerif-Bold.ttf DroidSerif-BoldItalic.ttf
DroidSerif-Italic.ttf DroidSerif-Regular.ttf DroidSans-Bold.ttf
DroidSans.ttf DroidSansMono.ttf"
for i in $fonts; do
- install -m644 "$srcdir"/"$i" \
- "$pkgdir"/usr/share/fonts/$pkgname/
+ install -Dm644 "$srcdir"/"$i" \
+ -t "$pkgdir"/usr/share/fonts/droid/
done
for j in "$srcdir"/*.conf; do
- install -m644 "$j" \
- "$pkgdir"/etc/fonts/conf.avail/
+ install -Dm644 "$j" \
+ -t "$pkgdir"/etc/fonts/conf.avail/
cd "$pkgdir"/etc/fonts/conf.d
ln -sf /etc/fonts/conf.avail/${j##*/}
done
@@ -57,11 +60,9 @@ nonlatin() {
DroidSansTamil-Bold.ttf DroidSansTamil-Regular.ttf
DroidSansThai.ttf"
- mkdir -p "$subpkgdir"/usr/share/fonts/$subpkgname
-
for k in $fonts; do
- install -m644 "$srcdir"/"$k" \
- "$subpkgdir"/usr/share/fonts/$subpkgname/
+ install -Dm644 "$srcdir"/"$k" \
+ -t "$subpkgdir"/usr/share/fonts/droid-nonlatin/
done
}
diff --git a/main/font-freefont/APKBUILD b/main/font-freefont/APKBUILD
new file mode 100644
index 00000000000..505725f4dad
--- /dev/null
+++ b/main/font-freefont/APKBUILD
@@ -0,0 +1,27 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=font-freefont
+pkgver=20120503
+pkgrel=4
+pkgdesc="A set of free high-quality TrueType fonts covering the UCS character set"
+url="https://nongnu.org/freefont/"
+arch="noarch"
+license="GPL-3.0-or-later"
+options="!check" # No test suite.
+depends="fontconfig encodings mkfontscale"
+subpackages="$pkgname-doc"
+source="https://ftp.gnu.org/gnu/freefont/freefont-otf-$pkgver.tar.gz"
+builddir="$srcdir/freefont-$pkgver"
+
+# backwards compat (<3.17)
+provides="ttf-freefont=$pkgver-r$pkgrel"
+replaces="ttf-freefont"
+
+package() {
+ install -Dm644 ./*.otf -t "$pkgdir"/usr/share/fonts/freefont/
+ # Licensing exception is discussed in README in pkgver==20120503
+ install -Dm644 README "$pkgdir/usr/share/licenses/$pkgname/README"
+}
+
+sha512sums="
+cee9a573b17ccc689b61f0925fb6624d58e3a3369d996e379e70c3a4cd750429d68c14c85fbcab4381101c8f4bf56730ef40e0045fdd79647019db41b4ec74fd freefont-otf-20120503.tar.gz
+"
diff --git a/main/font-ibm-type1/APKBUILD b/main/font-ibm-type1/APKBUILD
index d5073a3311f..ec02aaff988 100644
--- a/main/font-ibm-type1/APKBUILD
+++ b/main/font-ibm-type1/APKBUILD
@@ -1,40 +1,37 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-ibm-type1
-pkgver=1.0.3
-pkgrel=0
+pkgver=1.0.4
+pkgrel=1
pkgdesc="X.org ibm Type1 fonts"
-url="http://xorg.freedesktop.org/"
-arch="all"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-ibm-type1-$pkgver.tar.xz"
+subpackages="$pkgname-doc"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/Type1 \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/Type1
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
-sha512sums="cbd179522c936c4f956ff1fbdc48fc3a55990083b4f858c938c6a54c8526641b4f25eb3a6795d774630b75a0f4fbdf9c16e861e88b2cd95f04c524f95d40f90f font-ibm-type1-1.0.3.tar.bz2"
+sha512sums="
+42ebc9f1b0726a9a1bf3d7c8a3b7102a448e7c6ff0c5ac1dd8a4861bf51c344ddb2e077df41b86e3e896100371a33f997d6df834b4d64b835d81a36dfddfbce3 font-ibm-type1-1.0.4.tar.xz
+"
diff --git a/main/font-isas-misc/APKBUILD b/main/font-isas-misc/APKBUILD
index 4b0850f0905..41cd37bd472 100644
--- a/main/font-isas-misc/APKBUILD
+++ b/main/font-isas-misc/APKBUILD
@@ -1,40 +1,37 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-isas-misc
-pkgver=1.0.3
-pkgrel=0
+pkgver=1.0.4
+pkgrel=1
pkgdesc="X.org misc font"
-url="http://xorg.freedesktop.org/"
-arch="all"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-isas-misc-$pkgver.tar.xz"
+subpackages="$pkgname-doc"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
--with-fontdir=/usr/share/fonts/misc \
- || return 1
- make || return 1
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
-sha512sums="be6fb1d2c53550a462d1ab010fa7ac913990e83a22d4580c93b8f1f087aa6caa0e46bc87debca2b13b10e5611bd2fe7f6b4240367fb24f59b37f68ffb0e2586b font-isas-misc-1.0.3.tar.bz2"
+sha512sums="
+7c8cc9083600949fff4a0373f9f22df80f6a2c97d8d56bc2c4d03b102d16ad071b984b1ecf547d2d17ede9335e5c3a418512631a18938b7728c66b4339dcedd5 font-isas-misc-1.0.4.tar.xz
+"
diff --git a/main/font-jis-misc/APKBUILD b/main/font-jis-misc/APKBUILD
index 6a6c0acce6b..b322bb18c26 100644
--- a/main/font-jis-misc/APKBUILD
+++ b/main/font-jis-misc/APKBUILD
@@ -1,39 +1,37 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-jis-misc
-pkgver=1.0.3
-pkgrel=0
+pkgver=1.0.4
+pkgrel=1
pkgdesc="X.org misc font"
-url="http://xorg.freedesktop.org/"
-arch="all"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-jis-misc-$pkgver.tar.xz"
+subpackages="$pkgname-doc"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/misc \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/misc
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
-sha512sums="3ce4c96d54440045e84f54f7d790e350c05b0c56a72491941f2cd9ed7e2d1735ff4b41667501cf08d5d81ee19c9de6d43f88a8b59a3c5c55de9fb1696cae208c font-jis-misc-1.0.3.tar.bz2"
+
+sha512sums="
+c54034205e7bd7a01b311c25c890f9fd1abc25f842315812d5c83d4e4091e5e6c2125a43d4d532b88c79d51cb812b86cfa8e7e4c1a87175746f1bd4e38129440 font-jis-misc-1.0.4.tar.xz
+"
diff --git a/main/font-liberation-sans-narrow/APKBUILD b/main/font-liberation-sans-narrow/APKBUILD
index 8829e17beb8..e477c69dc9a 100644
--- a/main/font-liberation-sans-narrow/APKBUILD
+++ b/main/font-liberation-sans-narrow/APKBUILD
@@ -3,10 +3,10 @@
pkgname=font-liberation-sans-narrow
_fontname=${pkgname#font-}
pkgver=1.07.6
-pkgrel=1
+pkgrel=2
pkgdesc="Sans-serif Narrow fonts to replace commonly used Microsoft Arial Narrow"
url="https://github.com/liberationfonts/liberation-sans-narrow"
-license="custom:Liberation"
+license="GPL-2.0-or-later"
arch="noarch"
depends="fontconfig"
replaces="ttf-liberation<2.1.5" # for backward compatibility (Alpine <3.16)
diff --git a/main/font-linux-libertine/APKBUILD b/main/font-linux-libertine/APKBUILD
index 64cb0b751d3..a476f19957b 100644
--- a/main/font-linux-libertine/APKBUILD
+++ b/main/font-linux-libertine/APKBUILD
@@ -2,23 +2,21 @@
pkgname=font-linux-libertine
pkgver=5.3.0
_date="2012_07_02"
-pkgrel=1
+pkgrel=3
pkgdesc="Serif (Libertine) and Sans Serif (Biolinum) OpenType fonts with large Unicode coverage"
-url="http://linuxlibertine.sourceforge.net/"
+url="https://linuxlibertine.sourceforge.net/"
arch="noarch"
-license="GPL custom:OFL"
+license="GPL-2.0-or-later WITH Font-exception-2.0 AND OFL-1.0"
depends="fontconfig encodings mkfontscale"
-subpackages="$pkgname-doc"
source="https://downloads.sourceforge.net/project/linuxlibertine/linuxlibertine/$pkgver/LinLibertineTTF_${pkgver}_$_date.tgz"
builddir="$srcdir"
options="!check" # no tests
-provides="ttf-linux-libertine=$pkgname-r$pkgrel"
-replaces="ttf-linux-libetrine"
+provides="ttf-linux-libertine=$pkgver-r$pkgrel"
+replaces="ttf-linux-libertine"
package() {
install -Dm644 *.ttf -t "$pkgdir"/usr/share/fonts/${pkgname#font-}
- install -Dm644 LICENCE.txt -t "$pkgdir"/usr/share/licenses/$pkgname
}
sha512sums="
diff --git a/main/font-micro-misc/APKBUILD b/main/font-micro-misc/APKBUILD
index 913a3e68777..5bda9fbed69 100644
--- a/main/font-micro-misc/APKBUILD
+++ b/main/font-micro-misc/APKBUILD
@@ -1,40 +1,34 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-micro-misc
-pkgver=1.0.3
-pkgrel=0
+pkgver=1.0.4
+pkgrel=1
pkgdesc="X.org misc font"
-url="http://xorg.freedesktop.org/"
-arch="all"
-license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
+license="Public Domain"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-micro-misc-$pkgver.tar.xz"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/misc \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/mis
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
}
-sha512sums="7a546432225c22ae0aacf9ce88b617a7d1d6678ee1f5eb4b3a93e33764fb752f27bca3feda1312182517bbf7babd5f3700bb9b8de0ef6c35b1ae6e2ce7ab0b69 font-micro-misc-1.0.3.tar.bz2"
+sha512sums="
+e9a402a5042eef0b618bc30b319256cae9f71f546c167c8b638a780f93cbdc2d61c472203efaee7077acedfac3b3981feefbc1017cfee8512077e61deff42ed3 font-micro-misc-1.0.4.tar.xz
+"
diff --git a/main/font-misc-cyrillic/APKBUILD b/main/font-misc-cyrillic/APKBUILD
index 0c7d59ecb53..d9709a9e93b 100644
--- a/main/font-misc-cyrillic/APKBUILD
+++ b/main/font-misc-cyrillic/APKBUILD
@@ -1,40 +1,37 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-misc-cyrillic
-pkgver=1.0.3
-pkgrel=0
+pkgver=1.0.4
+pkgrel=1
pkgdesc="X.org misc cyrillic fonts"
-url="http://xorg.freedesktop.org/"
-arch="all"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-misc-cyrillic-$pkgver.tar.xz"
+subpackages="$pkgname-doc"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/cyrillic \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/cyrillic
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
-sha512sums="75e49cdb633f7ce5b9612d5adb0a85471c8fde5d55e8ccd9302f79f01e99e78b02449642c2cf785289f58d833bfa62042fce4253093fb17c87471559d1f9bdbf font-misc-cyrillic-1.0.3.tar.bz2"
+sha512sums="
+fb2102805fedbd04b1533b85abcde79f432b97b72822bcfcdc09f525488d0d0c63815c8c25b79bab864bbe11fa1b72e2c34f5ba7b96eee1b6c84b841bb333353 font-misc-cyrillic-1.0.4.tar.xz
+"
diff --git a/main/font-misc-ethiopic/APKBUILD b/main/font-misc-ethiopic/APKBUILD
index a914c339c99..6cc5093a940 100644
--- a/main/font-misc-ethiopic/APKBUILD
+++ b/main/font-misc-ethiopic/APKBUILD
@@ -1,29 +1,20 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-misc-ethiopic
-pkgver=1.0.4
+pkgver=1.0.5
pkgrel=0
pkgdesc="X.org misc ethiopic fonts"
url="https://xorg.freedesktop.org/"
arch="noarch"
license="MIT"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
-makedepends="font-util-dev bdftopcf"
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --with-fontrootdir=/usr/share/fonts
- make
-}
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
+source="https://www.x.org/releases/individual/font/font-misc-ethiopic-$pkgver.tar.xz"
package() {
- make DESTDIR="$pkgdir" FCCACHE=: MKFONTDIR=: MKFONTSCALE=: install
+ install -Dm644 GohaTibebZemen.otf \
+ -t "$pkgdir"/usr/share/fonts/misc-ethiopic
}
-sha512sums="4fed9ff3782746898c56dac199e9ca89356f4967779937049b9ff4ffad202317c023859f92d44b371dfa5485d5368ccad648e64b12cde0ed21f7d4aee5affcd5 font-misc-ethiopic-1.0.4.tar.bz2"
+sha512sums="
+7732a828c005e3762b6383729134c5656fd575ac59288504d047fbe26e9965a80519a37b0cc4c6b89379a85a62160c5ea76017f790447a230c015aa7a9143ba0 font-misc-ethiopic-1.0.5.tar.xz
+"
diff --git a/main/font-misc-meltho/APKBUILD b/main/font-misc-meltho/APKBUILD
deleted file mode 100644
index 88c4929d6c8..00000000000
--- a/main/font-misc-meltho/APKBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=font-misc-meltho
-pkgver=1.0.3
-pkgrel=0
-pkgdesc="X.org misc meltho fonts"
-url="http://xorg.freedesktop.org/"
-arch="noarch"
-license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
-makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-_builddir="$srcdir"/$pkgname-$pkgver
-
-prepare() {
- cd "$_builddir"
- update_config_sub || return 1
-}
-
-build() {
- cd "$_builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/meltho \
- || return 1
- make || return 1
-}
-
-package() {
- cd "$_builddir"
- make -j1 DESTDIR="$pkgdir" \
- FCCACHE=: \
- MKFONTDIR=: \
- MKFONTSCALE=: \
- install || return 1
-}
-
-sha512sums="3f42fe3e127f74259d50754f4bb6d2560cb32d810fecf663bd09fddb34829d29b48f3cbfaf43d02dab70b559afb2f806f321076f83450ff3871604345a0cdb56 font-misc-meltho-1.0.3.tar.bz2"
diff --git a/main/font-misc-misc/APKBUILD b/main/font-misc-misc/APKBUILD
index e60fc7bdd99..c0f363ec0d2 100644
--- a/main/font-misc-misc/APKBUILD
+++ b/main/font-misc-misc/APKBUILD
@@ -1,25 +1,17 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-misc-misc
-pkgver=1.1.2
+pkgver=1.1.3
pkgrel=1
pkgdesc="X.org misc font"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="noarch"
-license="custom"
+license="Public Domain"
options="!check" # No test suite.
-depends="encodings font-alias mkfontscale mkfontdir fontconfig util-macros"
+depends="encodings font-alias mkfontscale fontconfig util-macros"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$builddir"
- update_config_sub
- default_prepare
-}
+source="https://www.x.org/releases/individual/font/font-misc-misc-$pkgver.tar.xz"
build() {
- cd "$_builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -29,8 +21,7 @@ build() {
}
package() {
- cd "$builddir"
- make -j1 \
+ make \
DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
@@ -38,4 +29,6 @@ package() {
install
}
-sha512sums="d0bf74142f9621746846ea7a6fe9ae298a303a09c65e05c7decb4f37b2f513a88d727bf3dc5a3566c30de83b83493f164be0118b41d704464f75700b55018c74 font-misc-misc-1.1.2.tar.bz2"
+sha512sums="
+fac4bfda0e4189d1a9999abc47bdd404f2beeec5301da190d92afc2176cd344789b7223c1b2f4748bd0efe1b9a81fa7f13f7037015d5d800480fa2236f369b48 font-misc-misc-1.1.3.tar.xz
+"
diff --git a/main/font-mutt-misc/APKBUILD b/main/font-mutt-misc/APKBUILD
index 3a5560df0f5..5930b611e0a 100644
--- a/main/font-mutt-misc/APKBUILD
+++ b/main/font-mutt-misc/APKBUILD
@@ -1,40 +1,34 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-mutt-misc
-pkgver=1.0.3
-pkgrel=0
-pkgdesc="X.org misc font"
-url="http://xorg.freedesktop.org/"
-arch="all"
+pkgver=1.0.4
+pkgrel=1
+pkgdesc="X.orgmiscfont"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-mutt-misc-$pkgver.tar.xz"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/misc \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/misc
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
}
-sha512sums="7b152f6c1464d806b1f76664d9b619858c3cb3ea63027b6be1f69897e939e3a0b5312ddf230e0a42a8f3e3701e50f41917cac6ce566c05bc74dfa49bdf2ed4db font-mutt-misc-1.0.3.tar.bz2"
+sha512sums="
+9cbc82e6a519572576cb60f4d6b9795468666d53ac7df17d6736ab04190cb5f58c8b57be61ab509fc9372e1114c6aaa5e0d098ec1fa63dc5d8638916614f7046 font-mutt-misc-1.0.4.tar.xz
+"
diff --git a/main/font-schumacher-misc/APKBUILD b/main/font-schumacher-misc/APKBUILD
index 7b4899ac716..e1b96804498 100644
--- a/main/font-schumacher-misc/APKBUILD
+++ b/main/font-schumacher-misc/APKBUILD
@@ -1,40 +1,34 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-schumacher-misc
-pkgver=1.1.2
-pkgrel=0
+pkgver=1.1.3
+pkgrel=1
pkgdesc="X.org misc font"
-url="http://xorg.freedesktop.org/"
-arch="all"
-license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
+license="NTP"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-schumacher-misc-$pkgver.tar.xz"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/misc \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/misc
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
}
-sha512sums="f37a2bfce95458b11376c89767b5adaea03dcecd7ed5b99a19a3d263f48e70b15bf679826a794c55da26b5f1635ea5fa5772ffe44c9f77a1daab0744ed92300a font-schumacher-misc-1.1.2.tar.bz2"
+sha512sums="
+83b25495535176a5e348269358ac34af8223023a55e2c5c599725ee90ec9ff3ea9ff19cca46b93eeae7ef985da325f9065c83d829a4a8c72d0c3c197242a1b64 font-schumacher-misc-1.1.3.tar.xz
+"
diff --git a/main/font-screen-cyrillic/APKBUILD b/main/font-screen-cyrillic/APKBUILD
index 8a72a5b234f..1826e00aaf7 100644
--- a/main/font-screen-cyrillic/APKBUILD
+++ b/main/font-screen-cyrillic/APKBUILD
@@ -1,40 +1,37 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-screen-cyrillic
-pkgver=1.0.4
-pkgrel=0
+pkgver=1.0.5
+pkgrel=1
pkgdesc="X.org screen cyrillic fonts"
-url="http://xorg.freedesktop.org/"
-arch="all"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-screen-cyrillic-$pkgver.tar.xz"
+subpackages="$pkgname-doc"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/cyrillic \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/cyrillic
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
-sha512sums="58f12a4cbd18e323daad75b32a01ab3980dca0046f8dd94ff4452606ab9316b8a208dda3bc8e9346c02993bd2b8bb2b3dfe3413ccf9fc6a907fc1ea5d236fa51 font-screen-cyrillic-1.0.4.tar.bz2"
+sha512sums="
+9f136fc6f6a3621c4b38302af5396789b1e6558b9b4b1b991624945eb9aac8497a6cd415460abc7dbcbaad1ef8ebd23cacfb3448c6e34cc9ba0726e7973c1a99 font-screen-cyrillic-1.0.5.tar.xz
+"
diff --git a/main/font-sony-misc/APKBUILD b/main/font-sony-misc/APKBUILD
index 613b4124bf3..5838fae7e0e 100644
--- a/main/font-sony-misc/APKBUILD
+++ b/main/font-sony-misc/APKBUILD
@@ -1,25 +1,17 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-sony-misc
-pkgver=1.0.3
+pkgver=1.0.4
pkgrel=1
pkgdesc="X.org Sony fonts"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="noarch"
-license="MIT"
+license="HPND-sell-variant"
options="!check" # Cannot test a font.
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$builddir"
- update_config_sub
- default_prepare
-}
+source="https://www.x.org/releases/individual/font/font-sony-misc-$pkgver.tar.xz"
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -29,12 +21,13 @@ build() {
}
package() {
- cd "$builddir"
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
install
}
-sha512sums="c397b4e5081b2946799d701b8c48fca9fd2d55b8fa1dd96d2b29c5cd9996bb7356ae12671bf3bd964e6313bdc154020ed6377534e59ce53067e955e4b37aee1d font-sony-misc-1.0.3.tar.bz2"
+sha512sums="
+f361fca66db2ec80b1467fb6bff57bd2cfc6722473bd7ad119026a97552eef07ff77552c01eb8f98f3299d7fd40c8c2cb3e0d0b01adca2f81c2c2f75581dc113 font-sony-misc-1.0.4.tar.xz
+"
diff --git a/main/font-sun-misc/APKBUILD b/main/font-sun-misc/APKBUILD
index 6f589b99f9f..cb9492667d9 100644
--- a/main/font-sun-misc/APKBUILD
+++ b/main/font-sun-misc/APKBUILD
@@ -1,40 +1,34 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-sun-misc
-pkgver=1.0.3
-pkgrel=0
+pkgver=1.0.4
+pkgrel=1
pkgdesc="X.org misc font"
-url="http://xorg.freedesktop.org/"
-arch="all"
-license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
+license="MIT"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-sun-misc-$pkgver.tar.xz"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/misc \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/misc
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
}
-sha512sums="52c4a38e49a94831999652d9830da841949c319083ea40492e83690e1e5c2d31ea1979046a420af0e51bc105b8697bb06b4a438485e82b130d7469ad4519e275 font-sun-misc-1.0.3.tar.bz2"
+sha512sums="
+9eeb330c1190557479636119af8aeb49917f1faeaa42d3a93e35d318348ee4247405544107ce9f5a244dbe2c0001c8d34b604b961bd9d92431f84b992fe9739e font-sun-misc-1.0.4.tar.xz
+"
diff --git a/main/terminus-font/APKBUILD b/main/font-terminus/APKBUILD
index 04038d371e7..40ff0f9bfe3 100644
--- a/main/terminus-font/APKBUILD
+++ b/main/font-terminus/APKBUILD
@@ -1,17 +1,22 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Contributor: Orion <systmkor@gmail.com>
# Maintainer: Sören Tempel <soeren+alpine@soeren-tempel.net>
-pkgname=terminus-font
+pkgname=font-terminus
pkgver=4.49.1
-pkgrel=1
+pkgrel=4
pkgdesc="Monospace bitmap font (for X11 and console)"
-url="http://terminus-font.sourceforge.net/"
+url="https://terminus-font.sourceforge.net/"
arch="noarch"
license="OFL-1.1"
-makedepends="bdftopcf fontconfig mkfontscale mkfontdir python3"
-options="!check" # no test suite
+makedepends="bdftopcf fontconfig mkfontscale python3"
subpackages="$pkgname-doc"
source="https://sourceforge.net/projects/terminus-font/files/terminus-font-${pkgver%.*}/terminus-font-$pkgver.tar.gz"
+builddir="$srcdir/terminus-font-$pkgver"
+options="!check" # no test suite
+
+# renamed from terminus-font
+provides="terminus-font=$pkgver-r$pkgrel"
+replaces="terminus-font"
build() {
./configure \
@@ -40,4 +45,6 @@ package() {
ln -s ../conf.avail/75-yes-terminus.conf .
}
-sha512sums="2e3a99960c459a453b5879bebbebeb653f0a22060177bf75c67bbeb7d32cfe1acce9e74a88fdc42e299b6dc402e0708552487abd26e80e985c7d6059b0d445a8 terminus-font-4.49.1.tar.gz"
+sha512sums="
+2e3a99960c459a453b5879bebbebeb653f0a22060177bf75c67bbeb7d32cfe1acce9e74a88fdc42e299b6dc402e0708552487abd26e80e985c7d6059b0d445a8 terminus-font-4.49.1.tar.gz
+"
diff --git a/main/font-tlwg/APKBUILD b/main/font-tlwg/APKBUILD
new file mode 100644
index 00000000000..afc464e4690
--- /dev/null
+++ b/main/font-tlwg/APKBUILD
@@ -0,0 +1,27 @@
+# Contributor: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=font-tlwg
+pkgver=0.7.3
+pkgrel=1
+pkgdesc="The Thai TrueType fonts included here are Norasi and Garuda from the National Font project"
+url="https://linux.thai.net/projects/fonts-tlwg"
+arch="noarch"
+license="LPPL-1.3c AND GPL-2.0-only WITH Font-exception-2.0"
+options="!check" # No tests, only font files
+source="https://linux.thai.net/pub/thailinux/software/fonts-tlwg/fonts/otf-tlwg-$pkgver.tar.xz"
+builddir="$srcdir/otf-tlwg-$pkgver"
+
+# backwards compat (<3.17)
+provides="ttf-tlwg=$pkgver-r$pkgrel"
+replaces="ttf-tlwg"
+
+package() {
+ install -Dm644 ./*.otf \
+ -t "$pkgdir"/usr/share/fonts/tlwg
+ install -Dm644 fontconfig/conf.avail/*.conf \
+ -t "$pkgdir"/etc/fonts/conf.d/
+}
+
+sha512sums="
+025a122157dba56bb1058b516fabdedc4ab83024dc722dfda46bd04eb02ce5f29cf13644d91ce378590b63fb9de085745c875f4a5b8c47173e493d9bb174ac20 otf-tlwg-0.7.3.tar.xz
+"
diff --git a/main/font-unifont/APKBUILD b/main/font-unifont/APKBUILD
new file mode 100644
index 00000000000..1d7cf840e6b
--- /dev/null
+++ b/main/font-unifont/APKBUILD
@@ -0,0 +1,55 @@
+# Contributor: Breno Leitao <breno.leitao@gmail.com>
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
+pkgname=font-unifont
+pkgver=15.1.05
+pkgrel=0
+pkgdesc="GNU Unifont glyphs"
+url="https://unifoundry.com/unifont/index.html"
+arch="all"
+options="!check" # No way to test fonts.
+license="GFDL-1.3-or-later GPL-2.0-or-later WITH Font-exception-2.0"
+subpackages="unifont-dev unifont-doc unifont-misc unifont-tools"
+source="https://unifoundry.com/pub/unifont/unifont-$pkgver/unifont-$pkgver.tar.gz"
+builddir="$srcdir/unifont-$pkgver"
+
+prepare() {
+ default_prepare
+ # clean precompiled
+ make clean
+}
+
+build() {
+ make
+}
+
+package() {
+ # renamed from unifont
+ provides="unifont=$pkgver-r$pkgrel"
+ replaces="unifont"
+
+ make PREFIX="$pkgdir/usr" install
+
+ cd "$pkgdir"/usr/share/unifont
+ rm -r html ChangeLog* INSTALL* NEWS* README* ./*.pdf
+}
+
+tools() {
+ depends="bdftopcf perl-gd"
+
+ amove usr/bin
+}
+
+doc() {
+ default_doc
+ amove usr/share/unifont/*.info.*
+}
+
+misc() {
+ pkgdesc="$pkgdesc (misc hex/bmp files)"
+
+ amove usr/share/unifont
+}
+
+sha512sums="
+ce208ac4c5ced01aabd426a5db46e25c01f8a28d840eed42ae42616e3996123fa2609ab330737b03f24d496b2cb75a69f879ccb92ee7d76b49677160332fdb8a unifont-15.1.05.tar.gz
+"
diff --git a/main/font-util/APKBUILD b/main/font-util/APKBUILD
index 457f1e5520c..5f9c4e4c8b4 100644
--- a/main/font-util/APKBUILD
+++ b/main/font-util/APKBUILD
@@ -1,9 +1,9 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-util
-pkgver=1.3.2
+pkgver=1.4.1
pkgrel=0
pkgdesc="X.org font utilities"
-url="http://xorg.freedesktop.org/"
+url="https://gitlab.freedesktop.org/xorg/font/util"
arch="all"
license="custom"
options="!check" # No test suite.
@@ -11,10 +11,9 @@ depends="perl"
depends_dev="font-util"
makedepends="$depends_dev util-macros"
subpackages="$pkgname-dev $pkgname-doc"
-source="https://www.x.org/releases/individual/font/font-util-$pkgver.tar.bz2"
+source="https://www.x.org/releases/individual/font/font-util-$pkgver.tar.xz"
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -24,7 +23,11 @@ build() {
}
package() {
- cd "$builddir"
- make -j1 DESTDIR="$pkgdir" install
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
-sha512sums="7cac529b12ae71185b89c72c1569b9826f52eeaecc1c76010338e7c42c4078ae339f18220b580bbd68fb5dc09df6ecf169a47c32e6104d8ee53bd443fa21d167 font-util-1.3.2.tar.bz2"
+
+sha512sums="
+cec7fc38ba64ca9c81c59a8395da94d71c75e14f19faf6457da0a1a8c3c1cf51bcaab227834f6f5a6d274ba2557555e542dbe2bd88e527c45ea196318bbc38d0 font-util-1.4.1.tar.xz
+"
diff --git a/main/font-vollkorn/APKBUILD b/main/font-vollkorn/APKBUILD
index 56f9fb3cb48..31488587fe4 100644
--- a/main/font-vollkorn/APKBUILD
+++ b/main/font-vollkorn/APKBUILD
@@ -1,21 +1,17 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer: Sören Tempel <soeren+alpine@soeren-tempel.net>
+# Maintainer: Sören Tempel <soeren+alpine@soeren-tempel.net>
pkgname=font-vollkorn
_pkgname=${pkgname##*-}
pkgver=4.105
-pkgrel=0
+pkgrel=2
pkgdesc="Vollkorn typeface by Friedrich Althausen"
url="http://vollkorn-typeface.com/"
arch="noarch"
-license="OFL"
+license="OFL-1.1"
options="!check" # upstream doesn't have a test suite
source="$pkgname-$pkgver.zip::http://vollkorn-typeface.com/download/$_pkgname-${pkgver/./-}.zip"
builddir="$srcdir/TTF"
-build() {
- return 0
-}
-
package() {
mkdir -p "$pkgdir"/usr/share/fonts/$_pkgname/
install -m644 "$builddir"/*.ttf \
diff --git a/main/font-winitzki-cyrillic/APKBUILD b/main/font-winitzki-cyrillic/APKBUILD
index 9aa82ec715e..06204d3903a 100644
--- a/main/font-winitzki-cyrillic/APKBUILD
+++ b/main/font-winitzki-cyrillic/APKBUILD
@@ -1,40 +1,34 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-winitzki-cyrillic
-pkgver=1.0.3
-pkgrel=0
+pkgver=1.0.4
+pkgrel=1
pkgdesc="X.org winitzki cyrillic fonts"
-url="http://xorg.freedesktop.org/"
-arch="all"
-license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
+license="Public Domain"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-winitzki-cyrillic-$pkgver.tar.xz"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/cyrillic \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/cyrillic
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
}
-sha512sums="f98fa99c1b0e60160b362310a7fe5fd5798aaa686751a6784a697c546ed754e885537eeed39a1f973dbceabc962cb65b39af1d336649381a49feb6df9f23e2b7 font-winitzki-cyrillic-1.0.3.tar.bz2"
+sha512sums="
+11e366f96abe65aed9fb6fd087b2bd90af9f60548de0cebfeb348262860957a63a997616e00092d312b8ae9c262a7bb52da69c704a27d34018a45b98a87eb158 font-winitzki-cyrillic-1.0.4.tar.xz
+"
diff --git a/main/font-xfree86-type1/APKBUILD b/main/font-xfree86-type1/APKBUILD
index d5fb5f30bb3..6b91ca48691 100644
--- a/main/font-xfree86-type1/APKBUILD
+++ b/main/font-xfree86-type1/APKBUILD
@@ -1,40 +1,34 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=font-xfree86-type1
-pkgver=1.0.4
-pkgrel=0
+pkgver=1.0.5
+pkgrel=1
pkgdesc="X.org xfree86 Type1 fonts"
-url="http://xorg.freedesktop.org/"
-arch="all"
-license="custom"
-depends="encodings font-alias mkfontscale mkfontdir fontconfig"
+url="https://xorg.freedesktop.org/"
+arch="noarch"
+license="X11"
+options="!check"
+depends="encodings font-alias mkfontscale fontconfig"
makedepends="font-util-dev bdftopcf"
-install=
-source="https://www.x.org/releases/individual/font/$pkgname-$pkgver.tar.bz2"
-
-prepare() {
- cd "$srcdir"/$pkgname-$pkgver
- update_config_sub || return 1
-}
+source="https://www.x.org/releases/individual/font/font-xfree86-type1-$pkgver.tar.xz"
build() {
- cd "$srcdir"/$pkgname-$pkgver
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--with-mapfiles=/usr/share/fonts/util \
- --with-fontdir=/usr/share/fonts/Type1 \
- || return 1
- make || return 1
+ --with-fontdir=/usr/share/fonts/Type1
+ make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
MKFONTDIR=: \
MKFONTSCALE=: \
FCCACHE=: \
- install || return 1
+ install
}
-sha512sums="2b4afc6cbb7953f8ba4aab7862d16b7b988ea6a4df6de8d41c8340d35a1cd53d6fcc26479ff88189d1de9f42804e4f56d70e9dbd7e75820eab4ac6ae3a96840c font-xfree86-type1-1.0.4.tar.bz2"
+sha512sums="
+0a92d911269c5c4d815dfb617bfcc57c3bd54e4cd308eba87f9ec49851369d99dea61950dbd6cdc0f85db92c0c24055da88063b083b4b0cafb3315051bb650ed font-xfree86-type1-1.0.5.tar.xz
+"
diff --git a/main/fontconfig/APKBUILD b/main/fontconfig/APKBUILD
index cb009bb4727..b29b16cba21 100644
--- a/main/fontconfig/APKBUILD
+++ b/main/fontconfig/APKBUILD
@@ -1,14 +1,14 @@
# Contributor: Mika Havela <mika.havela@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=fontconfig
-pkgver=2.14.0
-pkgrel=0
+pkgver=2.15.0
+pkgrel=1
pkgdesc="Library for configuring and customizing font access"
url="https://www.freedesktop.org/wiki/Software/fontconfig"
arch="all"
license="MIT"
makedepends="freetype-dev expat-dev python3-dev gperf util-linux-dev docbook2x"
-checkdepends="bash json-c-dev uuidgen"
+checkdepends="bash json-c-dev uuidgen curl"
triggers="$pkgname.trigger=/usr/share/fonts/*"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
source="https://www.freedesktop.org/software/fontconfig/release/fontconfig-$pkgver.tar.gz
@@ -18,6 +18,11 @@ source="https://www.freedesktop.org/software/fontconfig/release/fontconfig-$pkgv
# For generation of man pages
export DOC2MAN=docbook2x-man
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
# regenerate hash functions
rm -f src/fcobjshash.h
@@ -44,6 +49,6 @@ package() {
}
sha512sums="
-0ba2fc31057d7b2c6521cb850b413f337b0ae39b50cf0ed8d5360ec01e880e1f32489a0d31ea380770c238e217485cebbbb8bd92d42118bcc928aa7d08f7e651 fontconfig-2.14.0.tar.gz
+4feb02935d94002ed0aba5b9e44bab47c14bbc0ecfcdcdb14c9004681109cef51415cd2368e959f8c4bd2e67ff9e8fcf45102a4bd8728b2f50b3c56723fcb81c fontconfig-2.15.0.tar.gz
9e0a010c8075085dedfe6bda1b26d8a7c693091e3ba5e823da8dd79468116c7b6e4a94b1173649999075cf9532bfc81adc97d0182bbff7635e9699bc44d6aa1c fix-arithmetic.patch
"
diff --git a/main/fortify-headers/0000-do-not-mess-with-ppoll.patch b/main/fortify-headers/0000-do-not-mess-with-ppoll.patch
deleted file mode 100644
index e9685ecafdc..00000000000
--- a/main/fortify-headers/0000-do-not-mess-with-ppoll.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-diff -rNU3 fortify-headers-1.1.old/README fortify-headers-1.1/README
---- fortify-headers-1.1.old/README 2019-04-14 10:26:11.000000000 +0200
-+++ fortify-headers-1.1/README 2021-02-16 18:10:51.305259894 +0100
-@@ -67,7 +67,6 @@
- mempcpy
- memset
- poll
--ppoll
- pread
- read
- readlink
-diff -rNU3 fortify-headers-1.1.old/include/poll.h fortify-headers-1.1/include/poll.h
---- fortify-headers-1.1.old/include/poll.h 2019-04-14 10:26:11.000000000 +0200
-+++ fortify-headers-1.1/include/poll.h 2021-02-16 18:11:25.415259531 +0100
-@@ -39,19 +39,6 @@
- return __orig_poll(__f, __n, __s);
- }
-
--#ifdef _GNU_SOURCE
--#undef ppoll
--_FORTIFY_FN(ppoll) int ppoll(struct pollfd *__f, nfds_t __n, const struct timespec *__s,
-- const sigset_t *__m)
--{
-- __typeof__(sizeof 0) __b = __builtin_object_size(__f, 0);
--
-- if (__n > __b / sizeof(struct pollfd))
-- __builtin_trap();
-- return __orig_ppoll(__f, __n, __s, __m);
--}
--#endif
--
- #ifdef __cplusplus
- }
- #endif
diff --git a/main/fortify-headers/0001-add-initial-clang-support.patch b/main/fortify-headers/0001-add-initial-clang-support.patch
new file mode 100644
index 00000000000..4080911db2e
--- /dev/null
+++ b/main/fortify-headers/0001-add-initial-clang-support.patch
@@ -0,0 +1,762 @@
+From 1d39f5599ebeb572ac16c3b2e8ad4691463bf6a1 Mon Sep 17 00:00:00 2001
+From: Daniel Kolesa <daniel@octaforge.org>
+Date: Wed, 26 Oct 2022 00:30:00 +0200
+Subject: [PATCH] add initial clang support
+
+---
+ include/fortify-headers.h | 25 ++++++++++++++++++--
+ include/poll.h | 7 +++---
+ include/stdio.h | 38 +++++++++++++++++++++++------
+ include/stdlib.h | 4 +++-
+ include/string.h | 33 ++++++++++++++++----------
+ include/strings.h | 6 +++--
+ include/sys/select.h | 13 ++++++++--
+ include/sys/socket.h | 13 ++++++----
+ include/unistd.h | 30 +++++++++++++----------
+ include/wchar.h | 50 ++++++++++++++++++++++++++-------------
+ 10 files changed, 158 insertions(+), 61 deletions(-)
+
+diff --git a/include/fortify-headers.h b/include/fortify-headers.h
+index 4de5bef..2cf3697 100644
+--- a/include/fortify-headers.h
++++ b/include/fortify-headers.h
+@@ -1,5 +1,6 @@
+ /*
+ * Copyright (C) 2015-2016 Dimitris Papastamos <sin@2f30.org>
++ * Copyright (C) 2022 q66 <q66@chimera-linux.org>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted.
+@@ -16,9 +17,29 @@
+ #ifndef _FORTIFY_HEADERS_H
+ #define _FORTIFY_HEADERS_H
+
++#ifdef __clang__
++
++/* clang uses overloads; see https://github.com/llvm/llvm-project/issues/53516 */
++#define _FORTIFY_POSN(n) const __attribute__((__pass_object_size__(n)))
++/* we can't use extern inline with overloads without making them external */
++#define _FORTIFY_INLINE static __inline__ \
++ __attribute__((__always_inline__,__artificial__,__overloadable__))
++
++#else /* !__clang__ */
++
++#define _FORTIFY_POSN(n)
++#define _FORTIFY_INLINE extern __inline__ \
++ __attribute__((__always_inline__,__gnu_inline__,__artificial__))
++
++#endif /* __clang__ */
++
++#define _FORTIFY_POS0 _FORTIFY_POSN(0)
++#define _FORTIFY_POS1 _FORTIFY_POSN(1)
++#define _FORTIFY_POS2 _FORTIFY_POSN(2)
++
+ #define _FORTIFY_STR(s) #s
+ #define _FORTIFY_ORIG(p,fn) __typeof__(fn) __orig_##fn __asm__(_FORTIFY_STR(p) #fn)
+-#define _FORTIFY_FN(fn) _FORTIFY_ORIG(__USER_LABEL_PREFIX__,fn); \
+- extern __inline__ __attribute__((__always_inline__,__gnu_inline__,__artificial__))
++#define _FORTIFY_FNB(fn) _FORTIFY_ORIG(__USER_LABEL_PREFIX__,fn)
++#define _FORTIFY_FN(fn) _FORTIFY_FNB(fn); _FORTIFY_INLINE
+
+ #endif
+diff --git a/include/poll.h b/include/poll.h
+index 24691f1..60a7623 100644
+--- a/include/poll.h
++++ b/include/poll.h
+@@ -1,5 +1,6 @@
+ /*
+ * Copyright (C) 2015-2016 Dimitris Papastamos <sin@2f30.org>
++ * Copyright (C) 2022 q66 <q66@chimera-linux.org>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted.
+@@ -30,7 +31,7 @@ extern "C" {
+
+ #undef poll
+
+-_FORTIFY_FN(poll) int poll(struct pollfd *__f, nfds_t __n, int __s)
++_FORTIFY_FN(poll) int poll(struct pollfd * _FORTIFY_POS0 __f, nfds_t __n, int __s)
+ {
+ __typeof__(sizeof 0) __b = __builtin_object_size(__f, 0);
+
+@@ -41,8 +42,8 @@ _FORTIFY_FN(poll) int poll(struct pollfd *__f, nfds_t __n, int __s)
+
+ #ifdef _GNU_SOURCE
+ #undef ppoll
+-_FORTIFY_FN(ppoll) int ppoll(struct pollfd *__f, nfds_t __n, const struct timespec *__s,
+- const sigset_t *__m)
++_FORTIFY_FN(ppoll) int ppoll(struct pollfd * _FORTIFY_POS0 __f, nfds_t __n,
++ const struct timespec *__s, const sigset_t *__m)
+ {
+ __typeof__(sizeof 0) __b = __builtin_object_size(__f, 0);
+
+diff --git a/include/stdio.h b/include/stdio.h
+index a965184..e50f65f 100644
+--- a/include/stdio.h
++++ b/include/stdio.h
+@@ -1,5 +1,6 @@
+ /*
+ * Copyright (C) 2015-2016 Dimitris Papastamos <sin@2f30.org>
++ * Copyright (C) 2022 q66 <q66@chimera-linux.org>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted.
+@@ -36,7 +37,7 @@ extern "C" {
+ #undef snprintf
+ #undef sprintf
+
+-_FORTIFY_FN(fgets) char *fgets(char *__s, int __n, FILE *__f)
++_FORTIFY_FN(fgets) char *fgets(char * _FORTIFY_POS0 __s, int __n, FILE *__f)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+
+@@ -45,7 +46,8 @@ _FORTIFY_FN(fgets) char *fgets(char *__s, int __n, FILE *__f)
+ return __orig_fgets(__s, __n, __f);
+ }
+
+-_FORTIFY_FN(fread) size_t fread(void *__d, size_t __n, size_t __m, FILE *__f)
++_FORTIFY_FN(fread) size_t fread(void * _FORTIFY_POS0 __d, size_t __n,
++ size_t __m, FILE *__f)
+ {
+ size_t __b = __builtin_object_size(__d, 0);
+
+@@ -56,7 +58,8 @@ _FORTIFY_FN(fread) size_t fread(void *__d, size_t __n, size_t __m, FILE *__f)
+ return __orig_fread(__d, __n, __m, __f);
+ }
+
+-_FORTIFY_FN(fwrite) size_t fwrite(const void *__d, size_t __n, size_t __m, FILE *__f)
++_FORTIFY_FN(fwrite) size_t fwrite(const void * _FORTIFY_POS0 __d, size_t __n,
++ size_t __m, FILE *__f)
+ {
+ size_t __b = __builtin_object_size(__d, 0);
+
+@@ -67,8 +70,8 @@ _FORTIFY_FN(fwrite) size_t fwrite(const void *__d, size_t __n, size_t __m, FILE
+ return __orig_fwrite(__d, __n, __m, __f);
+ }
+
+-_FORTIFY_FN(vsnprintf) int vsnprintf(char *__s, size_t __n, const char *__f,
+- __builtin_va_list __v)
++_FORTIFY_FN(vsnprintf) int vsnprintf(char * _FORTIFY_POS0 __s, size_t __n,
++ const char *__f, __builtin_va_list __v)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+
+@@ -77,7 +80,8 @@ _FORTIFY_FN(vsnprintf) int vsnprintf(char *__s, size_t __n, const char *__f,
+ return __orig_vsnprintf(__s, __n, __f, __v);
+ }
+
+-_FORTIFY_FN(vsprintf) int vsprintf(char *__s, const char *__f, __builtin_va_list __v)
++_FORTIFY_FN(vsprintf) int vsprintf(char * _FORTIFY_POS0 __s, const char *__f,
++ __builtin_va_list __v)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+ int __r;
+@@ -92,9 +96,26 @@ _FORTIFY_FN(vsprintf) int vsprintf(char *__s, const char *__f, __builtin_va_list
+ return __r;
+ }
+
+-_FORTIFY_FN(snprintf) int snprintf(char *__s, size_t __n, const char *__f, ...)
++#if defined(__has_builtin)
++#if __has_builtin(__builtin_va_arg_pack)
++
++/* clang is missing __builtin_va_arg_pack, so we cannot use these impls
++ * outside of gcc; we then have a few options:
++ *
++ * 1) using va_start/end and implementing these functions as static inline,
++ * with inlining never happening; that means extra symbols with internal
++ * linkage, which is not ideal
++ * 2) using macros; this is incompatible with c++ and since musl does not
++ * have the __chk variants, we'd need to implement a body with intermediate
++ * variables within the macro, which means more non-portable mess
++ * 3) not implementing these under clang, which is what we do for now
++ */
++
++_FORTIFY_FN(snprintf) int snprintf(char *__s, size_t __n,
++ const char *__f, ...)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
++ int __r;
+
+ if (__n > __b)
+ __builtin_trap();
+@@ -116,6 +137,9 @@ _FORTIFY_FN(sprintf) int sprintf(char *__s, const char *__f, ...)
+ return __r;
+ }
+
++#endif /* __has_builtin(__builtin_va_arg_pack) */
++#endif /* defined(__has_builtin) */
++
+ #ifdef __cplusplus
+ }
+ #endif
+diff --git a/include/stdlib.h b/include/stdlib.h
+index 11155cf..2b854d0 100644
+--- a/include/stdlib.h
++++ b/include/stdlib.h
+@@ -1,5 +1,6 @@
+ /*
+ * Copyright (C) 2015-2016 Dimitris Papastamos <sin@2f30.org>
++ * Copyright (C) 2022 q66 <q66@chimera-linux.org>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted.
+@@ -35,7 +36,8 @@ __extension__
+ extern "C" {
+ #endif
+
+-#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
++/* FIXME clang */
++#if (defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)) && !defined(__clang__)
+ #undef realpath
+ _FORTIFY_FN(realpath) char *realpath(const char *__p, char *__r)
+ {
+diff --git a/include/string.h b/include/string.h
+index 66c23e1..9d4658c 100644
+--- a/include/string.h
++++ b/include/string.h
+@@ -1,5 +1,6 @@
+ /*
+ * Copyright (C) 2015-2016 Dimitris Papastamos <sin@2f30.org>
++ * Copyright (C) 2022 q66 <q66@chimera-linux.org>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted.
+@@ -36,7 +37,8 @@ extern "C" {
+ #undef strncat
+ #undef strncpy
+
+-_FORTIFY_FN(memcpy) void *memcpy(void *__od, const void *__os, size_t __n)
++_FORTIFY_FN(memcpy) void *memcpy(void * _FORTIFY_POS0 __od,
++ const void * _FORTIFY_POS0 __os, size_t __n)
+ {
+ size_t __bd = __builtin_object_size(__od, 0);
+ size_t __bs = __builtin_object_size(__os, 0);
+@@ -53,7 +55,8 @@ _FORTIFY_FN(memcpy) void *memcpy(void *__od, const void *__os, size_t __n)
+ return __builtin_memcpy(__od, __os, __n);
+ }
+
+-_FORTIFY_FN(memmove) void *memmove(void *__d, const void *__s, size_t __n)
++_FORTIFY_FN(memmove) void *memmove(void * _FORTIFY_POS0 __d,
++ const void * _FORTIFY_POS0 __s, size_t __n)
+ {
+ size_t __bd = __builtin_object_size(__d, 0);
+ size_t __bs = __builtin_object_size(__s, 0);
+@@ -63,7 +66,7 @@ _FORTIFY_FN(memmove) void *memmove(void *__d, const void *__s, size_t __n)
+ return __orig_memmove(__d, __s, __n);
+ }
+
+-_FORTIFY_FN(memset) void *memset(void *__d, int __c, size_t __n)
++_FORTIFY_FN(memset) void *memset(void * _FORTIFY_POS0 __d, int __c, size_t __n)
+ {
+ size_t __b = __builtin_object_size(__d, 0);
+
+@@ -76,7 +79,7 @@ _FORTIFY_FN(memset) void *memset(void *__d, int __c, size_t __n)
+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \
+ || defined(_BSD_SOURCE)
+ #undef stpcpy
+-_FORTIFY_FN(stpcpy) char *stpcpy(char *__d, const char *__s)
++_FORTIFY_FN(stpcpy) char *stpcpy(char * _FORTIFY_POS0 __d, const char *__s)
+ {
+ size_t __b = __builtin_object_size(__d, 0);
+
+@@ -86,7 +89,8 @@ _FORTIFY_FN(stpcpy) char *stpcpy(char *__d, const char *__s)
+ }
+
+ #undef stpncpy
+-_FORTIFY_FN(stpncpy) char *stpncpy(char *__d, const char *__s, size_t __n)
++_FORTIFY_FN(stpncpy) char *stpncpy(char * _FORTIFY_POS0 __d, const char *__s,
++ size_t __n)
+ {
+ size_t __b = __builtin_object_size(__d, 0);
+
+@@ -96,7 +100,7 @@ _FORTIFY_FN(stpncpy) char *stpncpy(char *__d, const char *__s, size_t __n)
+ }
+ #endif
+
+-_FORTIFY_FN(strcat) char *strcat(char *__d, const char *__s)
++_FORTIFY_FN(strcat) char *strcat(char * _FORTIFY_POS0 __d, const char *__s)
+ {
+ size_t __b = __builtin_object_size(__d, 0);
+
+@@ -105,7 +109,7 @@ _FORTIFY_FN(strcat) char *strcat(char *__d, const char *__s)
+ return __orig_strcat(__d, __s);
+ }
+
+-_FORTIFY_FN(strcpy) char *strcpy(char *__d, const char *__s)
++_FORTIFY_FN(strcpy) char *strcpy(char * _FORTIFY_POS0 __d, const char *__s)
+ {
+ size_t __b = __builtin_object_size(__d, 0);
+
+@@ -114,7 +118,8 @@ _FORTIFY_FN(strcpy) char *strcpy(char *__d, const char *__s)
+ return __orig_strcpy(__d, __s);
+ }
+
+-_FORTIFY_FN(strncat) char *strncat(char *__d, const char *__s, size_t __n)
++_FORTIFY_FN(strncat) char *strncat(char * _FORTIFY_POS0 __d, const char *__s,
++ size_t __n)
+ {
+ size_t __b = __builtin_object_size(__d, 0);
+ size_t __sl, __dl;
+@@ -130,7 +135,8 @@ _FORTIFY_FN(strncat) char *strncat(char *__d, const char *__s, size_t __n)
+ return __orig_strncat(__d, __s, __n);
+ }
+
+-_FORTIFY_FN(strncpy) char *strncpy(char *__d, const char *__s, size_t __n)
++_FORTIFY_FN(strncpy) char *strncpy(char * _FORTIFY_POS0 __d,
++ const char *__s, size_t __n)
+ {
+ size_t __b = __builtin_object_size(__d, 0);
+
+@@ -141,7 +147,8 @@ _FORTIFY_FN(strncpy) char *strncpy(char *__d, const char *__s, size_t __n)
+
+ #ifdef _GNU_SOURCE
+ #undef mempcpy
+-_FORTIFY_FN(mempcpy) void *mempcpy(void *__d, const void *__s, size_t __n)
++_FORTIFY_FN(mempcpy) void *mempcpy(void * _FORTIFY_POS0 __d,
++ const void * _FORTIFY_POS0 __s, size_t __n)
+ {
+ size_t __bd = __builtin_object_size(__d, 0);
+ size_t __bs = __builtin_object_size(__s, 0);
+@@ -155,7 +162,8 @@ _FORTIFY_FN(mempcpy) void *mempcpy(void *__d, const void *__s, size_t __n)
+ #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+ #undef strlcat
+ #undef strlcpy
+-_FORTIFY_FN(strlcat) size_t strlcat(char *__d, const char *__s, size_t __n)
++_FORTIFY_FN(strlcat) size_t strlcat(char * _FORTIFY_POS0 __d,
++ const char *__s, size_t __n)
+ {
+ size_t __b = __builtin_object_size(__d, 0);
+
+@@ -164,7 +172,8 @@ _FORTIFY_FN(strlcat) size_t strlcat(char *__d, const char *__s, size_t __n)
+ return __orig_strlcat(__d, __s, __n);
+ }
+
+-_FORTIFY_FN(strlcpy) size_t strlcpy(char *__d, const char *__s, size_t __n)
++_FORTIFY_FN(strlcpy) size_t strlcpy(char * _FORTIFY_POS0 __d,
++ const char *__s, size_t __n)
+ {
+ size_t __b = __builtin_object_size(__d, 0);
+
+diff --git a/include/strings.h b/include/strings.h
+index a16e1ad..4c7e1c7 100644
+--- a/include/strings.h
++++ b/include/strings.h
+@@ -1,5 +1,6 @@
+ /*
+ * Copyright (C) 2015-2016 Dimitris Papastamos <sin@2f30.org>
++ * Copyright (C) 2022 q66 <q66@chimera-linux.org>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted.
+@@ -30,7 +31,8 @@ extern "C" {
+ || (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE+0 < 700)
+ #undef bcopy
+ #undef bzero
+-_FORTIFY_FN(bcopy) void bcopy(const void *__s, void *__d, size_t __n)
++_FORTIFY_FN(bcopy) void bcopy(const void * _FORTIFY_POS0 __s,
++ void * _FORTIFY_POS0 __d, size_t __n)
+ {
+ size_t __bd = __builtin_object_size(__d, 0);
+ size_t __bs = __builtin_object_size(__s, 0);
+@@ -40,7 +42,7 @@ _FORTIFY_FN(bcopy) void bcopy(const void *__s, void *__d, size_t __n)
+ return __orig_bcopy(__s, __d, __n);
+ }
+
+-_FORTIFY_FN(bzero) void bzero(void *__s, size_t __n)
++_FORTIFY_FN(bzero) void bzero(void * _FORTIFY_POS0 __s, size_t __n)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+
+diff --git a/include/sys/select.h b/include/sys/select.h
+index bcee8be..527d8e4 100644
+--- a/include/sys/select.h
++++ b/include/sys/select.h
+@@ -1,5 +1,6 @@
+ /*
+ * Copyright (C) 2015-2016 Dimitris Papastamos <sin@2f30.org>
++ * Copyright (C) 2022 q66 <q66@chimera-linux.org>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted.
+@@ -27,8 +28,14 @@ __extension__
+ extern "C" {
+ #endif
+
++#ifdef __clang__
++#define _FORTIFY_FD_POS0 const __attribute__((__pass_object_size__(0)))
++#else
++#define _FORTIFY_FD_POS0
++#endif
++
+ static __inline__ __attribute__((__always_inline__,__gnu_inline__,__artificial__))
+-void __fortify_FD_CLR(int __f, fd_set *__s)
++void __fortify_FD_CLR(int __f, fd_set * _FORTIFY_FD_POS0 __s)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+
+@@ -38,7 +45,7 @@ void __fortify_FD_CLR(int __f, fd_set *__s)
+ }
+
+ static __inline__ __attribute__((__always_inline__,__gnu_inline__,__artificial__))
+-void __fortify_FD_SET(int __f, fd_set *__s)
++void __fortify_FD_SET(int __f, fd_set * _FORTIFY_FD_POS0 __s)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+
+@@ -47,6 +54,8 @@ void __fortify_FD_SET(int __f, fd_set *__s)
+ FD_SET(__f, __s);
+ }
+
++#undef _FORTIFY_FD_POS0
++
+ #undef FD_CLR
+ #define FD_CLR(fd, set) __fortify_FD_CLR(fd, set)
+ #undef FD_SET
+diff --git a/include/sys/socket.h b/include/sys/socket.h
+index ad6ab2d..02cad5f 100644
+--- a/include/sys/socket.h
++++ b/include/sys/socket.h
+@@ -1,5 +1,6 @@
+ /*
+ * Copyright (C) 2015-2016 Dimitris Papastamos <sin@2f30.org>
++ * Copyright (C) 2022 q66 <q66@chimera-linux.org>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted.
+@@ -33,7 +34,8 @@ extern "C" {
+ #undef send
+ #undef sendto
+
+-_FORTIFY_FN(recv) ssize_t recv(int __f, void *__s, size_t __n, int __fl)
++_FORTIFY_FN(recv) ssize_t recv(int __f, void * _FORTIFY_POS0 __s, size_t __n,
++ int __fl)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+
+@@ -42,7 +44,8 @@ _FORTIFY_FN(recv) ssize_t recv(int __f, void *__s, size_t __n, int __fl)
+ return __orig_recv(__f, __s, __n, __fl);
+ }
+
+-_FORTIFY_FN(recvfrom) ssize_t recvfrom(int __f, void *__s, size_t __n, int __fl,
++_FORTIFY_FN(recvfrom) ssize_t recvfrom(int __f, void * _FORTIFY_POS0 __s,
++ size_t __n, int __fl,
+ struct sockaddr *__a, socklen_t *__l)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+@@ -52,7 +55,8 @@ _FORTIFY_FN(recvfrom) ssize_t recvfrom(int __f, void *__s, size_t __n, int __fl,
+ return __orig_recvfrom(__f, __s, __n, __fl, __a, __l);
+ }
+
+-_FORTIFY_FN(send) ssize_t send(int __f, const void *__s, size_t __n, int __fl)
++_FORTIFY_FN(send) ssize_t send(int __f, const void * _FORTIFY_POS0 __s,
++ size_t __n, int __fl)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+
+@@ -61,7 +65,8 @@ _FORTIFY_FN(send) ssize_t send(int __f, const void *__s, size_t __n, int __fl)
+ return __orig_send(__f, __s, __n, __fl);
+ }
+
+-_FORTIFY_FN(sendto) ssize_t sendto(int __f, const void *__s, size_t __n, int __fl,
++_FORTIFY_FN(sendto) ssize_t sendto(int __f, const void * _FORTIFY_POS0 __s,
++ size_t __n, int __fl,
+ const struct sockaddr *__a, socklen_t __l)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+diff --git a/include/unistd.h b/include/unistd.h
+index 09980ba..9f8a187 100644
+--- a/include/unistd.h
++++ b/include/unistd.h
+@@ -1,5 +1,6 @@
+ /*
+ * Copyright (C) 2015-2016 Dimitris Papastamos <sin@2f30.org>
++ * Copyright (C) 2022 q66 <q66@chimera-linux.org>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted.
+@@ -40,7 +41,7 @@ extern "C" {
+ #undef ttyname_r
+ #undef write
+
+-_FORTIFY_FN(confstr) size_t confstr(int __n, char *__s, size_t __l)
++_FORTIFY_FN(confstr) size_t confstr(int __n, char * _FORTIFY_POS0 __s, size_t __l)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+ size_t __r = __orig_confstr(__n, __s, __b > __l ? __l : __b);
+@@ -50,7 +51,7 @@ _FORTIFY_FN(confstr) size_t confstr(int __n, char *__s, size_t __l)
+ return __r;
+ }
+
+-_FORTIFY_FN(getcwd) char *getcwd(char *__s, size_t __l)
++_FORTIFY_FN(getcwd) char *getcwd(char * _FORTIFY_POS0 __s, size_t __l)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+
+@@ -61,7 +62,7 @@ _FORTIFY_FN(getcwd) char *getcwd(char *__s, size_t __l)
+
+ #if defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+ #undef getdomainname
+-_FORTIFY_FN(getdomainname) int getdomainname(char *__s, size_t __l)
++_FORTIFY_FN(getdomainname) int getdomainname(char * _FORTIFY_POS0 __s, size_t __l)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+
+@@ -71,7 +72,7 @@ _FORTIFY_FN(getdomainname) int getdomainname(char *__s, size_t __l)
+ }
+ #endif
+
+-_FORTIFY_FN(getgroups) int getgroups(int __l, gid_t *__s)
++_FORTIFY_FN(getgroups) int getgroups(int __l, gid_t * _FORTIFY_POS0 __s)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+
+@@ -80,7 +81,7 @@ _FORTIFY_FN(getgroups) int getgroups(int __l, gid_t *__s)
+ return __orig_getgroups(__l, __s);
+ }
+
+-_FORTIFY_FN(gethostname) int gethostname(char *__s, size_t __l)
++_FORTIFY_FN(gethostname) int gethostname(char * _FORTIFY_POS0 __s, size_t __l)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+
+@@ -89,7 +90,7 @@ _FORTIFY_FN(gethostname) int gethostname(char *__s, size_t __l)
+ return __orig_gethostname(__s, __l);
+ }
+
+-_FORTIFY_FN(getlogin_r) int getlogin_r(char *__s, size_t __l)
++_FORTIFY_FN(getlogin_r) int getlogin_r(char * _FORTIFY_POS0 __s, size_t __l)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+
+@@ -98,7 +99,8 @@ _FORTIFY_FN(getlogin_r) int getlogin_r(char *__s, size_t __l)
+ return __orig_getlogin_r(__s, __l);
+ }
+
+-_FORTIFY_FN(pread) ssize_t pread(int __f, void *__s, size_t __n, off_t __o)
++_FORTIFY_FN(pread) ssize_t pread(int __f, void * _FORTIFY_POS0 __s,
++ size_t __n, off_t __o)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+
+@@ -107,7 +109,7 @@ _FORTIFY_FN(pread) ssize_t pread(int __f, void *__s, size_t __n, off_t __o)
+ return __orig_pread(__f, __s, __n, __o);
+ }
+
+-_FORTIFY_FN(read) ssize_t read(int __f, void *__s, size_t __n)
++_FORTIFY_FN(read) ssize_t read(int __f, void * _FORTIFY_POS0 __s, size_t __n)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+
+@@ -116,7 +118,8 @@ _FORTIFY_FN(read) ssize_t read(int __f, void *__s, size_t __n)
+ return __orig_read(__f, __s, __n);
+ }
+
+-_FORTIFY_FN(readlink) ssize_t readlink(const char *__p, char *__s, size_t __n)
++_FORTIFY_FN(readlink) ssize_t readlink(const char *__p,
++ char * _FORTIFY_POS0 __s, size_t __n)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+
+@@ -125,7 +128,8 @@ _FORTIFY_FN(readlink) ssize_t readlink(const char *__p, char *__s, size_t __n)
+ return __orig_readlink(__p, __s, __n);
+ }
+
+-_FORTIFY_FN(readlinkat) ssize_t readlinkat(int __f, const char *__p, char *__s, size_t __n)
++_FORTIFY_FN(readlinkat) ssize_t readlinkat(int __f, const char *__p,
++ char * _FORTIFY_POS0 __s, size_t __n)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+
+@@ -134,7 +138,8 @@ _FORTIFY_FN(readlinkat) ssize_t readlinkat(int __f, const char *__p, char *__s,
+ return __orig_readlinkat(__f, __p, __s, __n);
+ }
+
+-_FORTIFY_FN(ttyname_r) int ttyname_r(int __f, char *__s, size_t __n)
++_FORTIFY_FN(ttyname_r) int ttyname_r(int __f, char * _FORTIFY_POS0 __s,
++ size_t __n)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+
+@@ -143,7 +148,8 @@ _FORTIFY_FN(ttyname_r) int ttyname_r(int __f, char *__s, size_t __n)
+ return __orig_ttyname_r(__f, __s, __n);
+ }
+
+-_FORTIFY_FN(write) ssize_t write(int __f, const void *__s, size_t __n)
++_FORTIFY_FN(write) ssize_t write(int __f, const void * _FORTIFY_POS0 __s,
++ size_t __n)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+
+diff --git a/include/wchar.h b/include/wchar.h
+index c5d0e5d..41423a8 100644
+--- a/include/wchar.h
++++ b/include/wchar.h
+@@ -1,5 +1,6 @@
+ /*
+ * Copyright (C) 2015-2017 Dimitris Papastamos <sin@2f30.org>
++ * Copyright (C) 2022 q66 <q66@chimera-linux.org>
+ *
+ * Permission to use, copy, modify, and/or distribute this software for any
+ * purpose with or without fee is hereby granted.
+@@ -55,7 +56,8 @@ extern "C" {
+ #undef wmemmove
+ #undef wmemset
+
+-_FORTIFY_FN(fgetws) wchar_t *fgetws(wchar_t *__s, int __n, FILE *__f)
++_FORTIFY_FN(fgetws) wchar_t *fgetws(wchar_t * _FORTIFY_POS0 __s,
++ int __n, FILE *__f)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+
+@@ -67,7 +69,8 @@ _FORTIFY_FN(fgetws) wchar_t *fgetws(wchar_t *__s, int __n, FILE *__f)
+ #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+ #undef mbsnrtowcs
+-_FORTIFY_FN(mbsnrtowcs) size_t mbsnrtowcs(wchar_t *__d, const char **__s, size_t __n,
++_FORTIFY_FN(mbsnrtowcs) size_t mbsnrtowcs(wchar_t * _FORTIFY_POS0 __d,
++ const char **__s, size_t __n,
+ size_t __wn, mbstate_t *__st)
+ {
+ size_t __b = __builtin_object_size(__d, 0);
+@@ -87,7 +90,8 @@ _FORTIFY_FN(mbsnrtowcs) size_t mbsnrtowcs(wchar_t *__d, const char **__s, size_t
+ }
+ #endif
+
+-_FORTIFY_FN(mbsrtowcs) size_t mbsrtowcs(wchar_t *__d, const char **__s, size_t __wn,
++_FORTIFY_FN(mbsrtowcs) size_t mbsrtowcs(wchar_t * _FORTIFY_POS0 __d,
++ const char **__s, size_t __wn,
+ mbstate_t *__st)
+ {
+ size_t __b = __builtin_object_size(__d, 0);
+@@ -100,7 +104,8 @@ _FORTIFY_FN(mbsrtowcs) size_t mbsrtowcs(wchar_t *__d, const char **__s, size_t _
+ return __r;
+ }
+
+-_FORTIFY_FN(mbstowcs) size_t mbstowcs(wchar_t *__ws, const char *__s, size_t __wn)
++_FORTIFY_FN(mbstowcs) size_t mbstowcs(wchar_t * _FORTIFY_POS0 __ws,
++ const char *__s, size_t __wn)
+ {
+ size_t __b = __builtin_object_size(__ws, 0);
+
+@@ -109,7 +114,9 @@ _FORTIFY_FN(mbstowcs) size_t mbstowcs(wchar_t *__ws, const char *__s, size_t __w
+ return __orig_mbstowcs(__ws, __s, __wn);
+ }
+
+-_FORTIFY_FN(wcrtomb) size_t wcrtomb(char *__s, wchar_t __w, mbstate_t *__st)
++/* FIXME clang */
++#ifndef __clang__
++_FORTIFY_FN(wcrtomb) size_t wcrtomb(char * __s, wchar_t __w, mbstate_t *__st)
+ {
+ if (__s && MB_LEN_MAX > __builtin_object_size(__s, 2)) {
+ char __buf[MB_LEN_MAX];
+@@ -125,8 +132,10 @@ _FORTIFY_FN(wcrtomb) size_t wcrtomb(char *__s, wchar_t __w, mbstate_t *__st)
+ }
+ return __orig_wcrtomb(__s, __w, __st);
+ }
++#endif
+
+-_FORTIFY_FN(wcscat) wchar_t *wcscat(wchar_t *__d, const wchar_t *__s)
++_FORTIFY_FN(wcscat) wchar_t *wcscat(wchar_t * _FORTIFY_POS0 __d,
++ const wchar_t *__s)
+ {
+ size_t __b = __builtin_object_size(__d, 0);
+
+@@ -135,7 +144,8 @@ _FORTIFY_FN(wcscat) wchar_t *wcscat(wchar_t *__d, const wchar_t *__s)
+ return __orig_wcscat(__d, __s);
+ }
+
+-_FORTIFY_FN(wcscpy) wchar_t *wcscpy(wchar_t *__d, const wchar_t *__s)
++_FORTIFY_FN(wcscpy) wchar_t *wcscpy(wchar_t * _FORTIFY_POS0 __d,
++ const wchar_t *__s)
+ {
+ size_t __b = __builtin_object_size(__d, 0);
+
+@@ -144,7 +154,8 @@ _FORTIFY_FN(wcscpy) wchar_t *wcscpy(wchar_t *__d, const wchar_t *__s)
+ return __orig_wcscpy(__d, __s);
+ }
+
+-_FORTIFY_FN(wcsncat) wchar_t *wcsncat(wchar_t *__d, const wchar_t *__s, size_t __n)
++_FORTIFY_FN(wcsncat) wchar_t *wcsncat(wchar_t * _FORTIFY_POS0 __d,
++ const wchar_t *__s, size_t __n)
+ {
+ size_t __b = __builtin_object_size(__d, 0);
+ size_t __sl, __dl;
+@@ -160,7 +171,8 @@ _FORTIFY_FN(wcsncat) wchar_t *wcsncat(wchar_t *__d, const wchar_t *__s, size_t _
+ return __orig_wcsncat(__d, __s, __n);
+ }
+
+-_FORTIFY_FN(wcsncpy) wchar_t *wcsncpy(wchar_t *__d, const wchar_t *__s, size_t __n)
++_FORTIFY_FN(wcsncpy) wchar_t *wcsncpy(wchar_t * _FORTIFY_POS0 __d,
++ const wchar_t *__s, size_t __n)
+ {
+ size_t __b = __builtin_object_size(__d, 0);
+
+@@ -172,7 +184,8 @@ _FORTIFY_FN(wcsncpy) wchar_t *wcsncpy(wchar_t *__d, const wchar_t *__s, size_t _
+ #if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \
+ || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+ #undef wcsnrtombs
+-_FORTIFY_FN(wcsnrtombs) size_t wcsnrtombs(char *__d, const wchar_t **__s, size_t __wn,
++_FORTIFY_FN(wcsnrtombs) size_t wcsnrtombs(char * _FORTIFY_POS0 __d,
++ const wchar_t **__s, size_t __wn,
+ size_t __n, mbstate_t *__st)
+ {
+ size_t __b = __builtin_object_size(__d, 0);
+@@ -192,7 +205,8 @@ _FORTIFY_FN(wcsnrtombs) size_t wcsnrtombs(char *__d, const wchar_t **__s, size_t
+ }
+ #endif
+
+-_FORTIFY_FN(wcsrtombs) size_t wcsrtombs(char *__d, const wchar_t **__s, size_t __n,
++_FORTIFY_FN(wcsrtombs) size_t wcsrtombs(char * _FORTIFY_POS0 __d,
++ const wchar_t **__s, size_t __n,
+ mbstate_t *__st)
+ {
+ size_t __b = __builtin_object_size(__d, 0);
+@@ -204,7 +218,8 @@ _FORTIFY_FN(wcsrtombs) size_t wcsrtombs(char *__d, const wchar_t **__s, size_t _
+ return __r;
+ }
+
+-_FORTIFY_FN(wcstombs) size_t wcstombs(char *__s, const wchar_t *__ws, size_t __n)
++_FORTIFY_FN(wcstombs) size_t wcstombs(char * _FORTIFY_POS0 __s,
++ const wchar_t *__ws, size_t __n)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+
+@@ -213,7 +228,7 @@ _FORTIFY_FN(wcstombs) size_t wcstombs(char *__s, const wchar_t *__ws, size_t __n
+ return __orig_wcstombs(__s, __ws, __n);
+ }
+
+-_FORTIFY_FN(wctomb) int wctomb(char *__s, wchar_t __w)
++_FORTIFY_FN(wctomb) int wctomb(char * _FORTIFY_POS0 __s, wchar_t __w)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+
+@@ -222,7 +237,8 @@ _FORTIFY_FN(wctomb) int wctomb(char *__s, wchar_t __w)
+ return __orig_wctomb(__s, __w);
+ }
+
+-_FORTIFY_FN(wmemcpy) wchar_t *wmemcpy(wchar_t *__d, const wchar_t *__s, size_t __n)
++_FORTIFY_FN(wmemcpy) wchar_t *wmemcpy(wchar_t * _FORTIFY_POS0 __d,
++ const wchar_t *__s, size_t __n)
+ {
+ size_t __b = __builtin_object_size(__d, 0);
+
+@@ -231,7 +247,8 @@ _FORTIFY_FN(wmemcpy) wchar_t *wmemcpy(wchar_t *__d, const wchar_t *__s, size_t _
+ return __orig_wmemcpy(__d, __s, __n);
+ }
+
+-_FORTIFY_FN(wmemmove) wchar_t *wmemmove(wchar_t *__d, const wchar_t *__s, size_t __n)
++_FORTIFY_FN(wmemmove) wchar_t *wmemmove(wchar_t * _FORTIFY_POS0 __d,
++ const wchar_t *__s, size_t __n)
+ {
+ size_t __b = __builtin_object_size(__d, 0);
+
+@@ -240,7 +257,8 @@ _FORTIFY_FN(wmemmove) wchar_t *wmemmove(wchar_t *__d, const wchar_t *__s, size_t
+ return __orig_wmemmove(__d, __s, __n);
+ }
+
+-_FORTIFY_FN(wmemset) wchar_t *wmemset(wchar_t *__s, wchar_t __c, size_t __n)
++_FORTIFY_FN(wmemset) wchar_t *wmemset(wchar_t * _FORTIFY_POS0 __s,
++ wchar_t __c, size_t __n)
+ {
+ size_t __b = __builtin_object_size(__s, 0);
+
diff --git a/main/fortify-headers/0002-avoid-__extension__-with-clang.patch b/main/fortify-headers/0002-avoid-__extension__-with-clang.patch
new file mode 100644
index 00000000000..fe350d85015
--- /dev/null
+++ b/main/fortify-headers/0002-avoid-__extension__-with-clang.patch
@@ -0,0 +1,144 @@
+From 85afbd3d5a11b48a2d0fa77bcefab20c2f9f5292 Mon Sep 17 00:00:00 2001
+From: Daniel Kolesa <daniel@octaforge.org>
+Date: Tue, 1 Nov 2022 01:03:48 +0100
+Subject: [PATCH] avoid __extension__ with clang
+
+It seems useless and triggers 'error: expected external declaration'
+---
+ include/poll.h | 2 +-
+ include/stdio.h | 2 +-
+ include/stdlib.h | 4 ++--
+ include/string.h | 2 +-
+ include/sys/select.h | 2 +-
+ include/sys/socket.h | 2 +-
+ include/unistd.h | 2 +-
+ include/wchar.h | 8 ++++----
+ 8 files changed, 12 insertions(+), 12 deletions(-)
+
+diff --git a/include/poll.h b/include/poll.h
+index 60a7623..b8d5c0b 100644
+--- a/include/poll.h
++++ b/include/poll.h
+@@ -17,7 +17,7 @@
+ #ifndef _FORTIFY_POLL_H
+ #define _FORTIFY_POLL_H
+
+-#ifndef __cplusplus
++#if !defined(__cplusplus) && !defined(__clang__)
+ __extension__
+ #endif
+ #include_next <poll.h>
+diff --git a/include/stdio.h b/include/stdio.h
+index e50f65f..a5aaa8f 100644
+--- a/include/stdio.h
++++ b/include/stdio.h
+@@ -17,7 +17,7 @@
+ #ifndef _FORTIFY_STDIO_H
+ #define _FORTIFY_STDIO_H
+
+-#ifndef __cplusplus
++#if !defined(__cplusplus) && !defined(__clang__)
+ __extension__
+ #endif
+ #include_next <stdio.h>
+diff --git a/include/stdlib.h b/include/stdlib.h
+index 2b854d0..c43a835 100644
+--- a/include/stdlib.h
++++ b/include/stdlib.h
+@@ -17,14 +17,14 @@
+ #ifndef _FORTIFY_STDLIB_H
+ #define _FORTIFY_STDLIB_H
+
+-#ifndef __cplusplus
++#if !defined(__cplusplus) && !defined(__clang__)
+ __extension__
+ #endif
+ #include_next <stdlib.h>
+
+ #if defined(_FORTIFY_SOURCE) && _FORTIFY_SOURCE > 0 && defined(__OPTIMIZE__) && __OPTIMIZE__ > 0
+ #if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
+-#ifndef __cplusplus
++#if !defined(__cplusplus) && !defined(__clang__)
+ __extension__
+ #endif
+ #include_next <limits.h>
+diff --git a/include/string.h b/include/string.h
+index 9d4658c..834d262 100644
+--- a/include/string.h
++++ b/include/string.h
+@@ -17,7 +17,7 @@
+ #ifndef _FORTIFY_STRING_H
+ #define _FORTIFY_STRING_H
+
+-#ifndef __cplusplus
++#if !defined(__cplusplus) && !defined(__clang__)
+ __extension__
+ #endif
+ #include_next <string.h>
+diff --git a/include/sys/select.h b/include/sys/select.h
+index 527d8e4..75c4829 100644
+--- a/include/sys/select.h
++++ b/include/sys/select.h
+@@ -17,7 +17,7 @@
+ #ifndef _FORTIFY_SYS_SELECT_H
+ #define _FORTIFY_SYS_SELECT_H
+
+-#ifndef __cplusplus
++#if !defined(__cplusplus) && !defined(__clang__)
+ __extension__
+ #endif
+ #include_next <sys/select.h>
+diff --git a/include/sys/socket.h b/include/sys/socket.h
+index 02cad5f..5a1821c 100644
+--- a/include/sys/socket.h
++++ b/include/sys/socket.h
+@@ -17,7 +17,7 @@
+ #ifndef _FORTIFY_SYS_SOCKET_H
+ #define _FORTIFY_SYS_SOCKET_H
+
+-#ifndef __cplusplus
++#if !defined(__cplusplus) && !defined(__clang__)
+ __extension__
+ #endif
+ #include_next <sys/socket.h>
+diff --git a/include/unistd.h b/include/unistd.h
+index 9f8a187..d36dfc4 100644
+--- a/include/unistd.h
++++ b/include/unistd.h
+@@ -17,7 +17,7 @@
+ #ifndef _FORTIFY_UNISTD_H
+ #define _FORTIFY_UNISTD_H
+
+-#ifndef __cplusplus
++#if !defined(__cplusplus) && !defined(__clang__)
+ __extension__
+ #endif
+ #include_next <unistd.h>
+diff --git a/include/wchar.h b/include/wchar.h
+index 41423a8..e359452 100644
+--- a/include/wchar.h
++++ b/include/wchar.h
+@@ -17,19 +17,19 @@
+ #ifndef _FORTIFY_WCHAR_H
+ #define _FORTIFY_WCHAR_H
+
+-#ifndef __cplusplus
++#if !defined(__cplusplus) && !defined(__clang__)
+ __extension__
+ #endif
+ #include_next <limits.h>
+-#ifndef __cplusplus
++#if !defined(__cplusplus) && !defined(__clang__)
+ __extension__
+ #endif
+ #include_next <stdlib.h>
+-#ifndef __cplusplus
++#if !defined(__cplusplus) && !defined(__clang__)
+ __extension__
+ #endif
+ #include_next <string.h>
+-#ifndef __cplusplus
++#if !defined(__cplusplus) && !defined(__clang__)
+ __extension__
+ #endif
+ #include_next <wchar.h>
diff --git a/main/fortify-headers/0003-Disable-wrapping-of-ppoll.patch b/main/fortify-headers/0003-Disable-wrapping-of-ppoll.patch
new file mode 100644
index 00000000000..52fea94d0d2
--- /dev/null
+++ b/main/fortify-headers/0003-Disable-wrapping-of-ppoll.patch
@@ -0,0 +1,53 @@
+From 6ee1b1498e409b5494a6bbedfd143105380edbac Mon Sep 17 00:00:00 2001
+From: Laurent Bercot <ska-devel@skarnet.org>
+Date: Tue, 16 Feb 2021 18:46:10 +0100
+Subject: [PATCH] Disable wrapping of ppoll
+
+The fortify-headers/poll.h definitions incorrectly forward the ppoll()
+function: on some archs (armv7 for instance), musl renames the symbol to
+accommodate for time_t size, and fortify-headers misses that.
+
+This causes ppoll() to break on all time32 systems. This commit axes
+the ppoll() redefinition. Fortifying ppoll() is of very little benefit
+anyway.
+---
+ README | 1 -
+ include/poll.h | 13 -------------
+ 2 files changed, 14 deletions(-)
+
+diff --git a/README b/README
+index 7e9c111..f620a47 100644
+--- a/README
++++ b/README
+@@ -67,7 +67,6 @@ memmove
+ mempcpy
+ memset
+ poll
+-ppoll
+ pread
+ read
+ readlink
+diff --git a/include/poll.h b/include/poll.h
+index b8d5c0b..04f28cb 100644
+--- a/include/poll.h
++++ b/include/poll.h
+@@ -40,19 +40,6 @@ _FORTIFY_FN(poll) int poll(struct pollfd * _FORTIFY_POS0 __f, nfds_t __n, int __
+ return __orig_poll(__f, __n, __s);
+ }
+
+-#ifdef _GNU_SOURCE
+-#undef ppoll
+-_FORTIFY_FN(ppoll) int ppoll(struct pollfd * _FORTIFY_POS0 __f, nfds_t __n,
+- const struct timespec *__s, const sigset_t *__m)
+-{
+- __typeof__(sizeof 0) __b = __builtin_object_size(__f, 0);
+-
+- if (__n > __b / sizeof(struct pollfd))
+- __builtin_trap();
+- return __orig_ppoll(__f, __n, __s, __m);
+-}
+-#endif
+-
+ #ifdef __cplusplus
+ }
+ #endif
diff --git a/main/fortify-headers/APKBUILD b/main/fortify-headers/APKBUILD
index 8701f529200..a0246fdd2ba 100644
--- a/main/fortify-headers/APKBUILD
+++ b/main/fortify-headers/APKBUILD
@@ -2,26 +2,25 @@
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=fortify-headers
pkgver=1.1
-pkgrel=1
+pkgrel=3
pkgdesc="standalone fortify source implementation"
url="http://git.2f30.org/fortify-headers/"
arch="noarch"
options="!check" # No test suite.
-license="BSD-0"
-source="http://dl.2f30.org/releases/$pkgname-$pkgver.tar.gz
- 0000-do-not-mess-with-ppoll.patch
+license="0BSD"
+source="http://dl.2f30.org/releases/fortify-headers-$pkgver.tar.gz
+ 0001-add-initial-clang-support.patch
+ 0002-avoid-__extension__-with-clang.patch
+ 0003-Disable-wrapping-of-ppoll.patch
"
-builddir="$srcdir"/$pkgname-$pkgver
-
-build() {
- cd "$builddir"
-}
-
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" PREFIX=/usr install
}
-sha512sums="a39d6e7c002bf91085f712aa46bc3f53ff934cc963694a229fa82d84ff4a7556105212a84a231ab5367c01c6a1e385172173f1f4a34d5eb4d2d9c58472c23dd0 fortify-headers-1.1.tar.gz
-a48dca5f9e0ac301ae7c31e20af233e25709bc799be9a7fc97ebdff3b1f20d65fb6f8245d6b1b0d632a5661bc2c06144f9c2e97fb20122311da78fed8148c66b 0000-do-not-mess-with-ppoll.patch"
+sha512sums="
+a39d6e7c002bf91085f712aa46bc3f53ff934cc963694a229fa82d84ff4a7556105212a84a231ab5367c01c6a1e385172173f1f4a34d5eb4d2d9c58472c23dd0 fortify-headers-1.1.tar.gz
+eeeb4ca86cd59eb0ec3cfab004c9b7b4a4fd9a6c5db8e97d4fd5fda959249553a0a020653cd87e833799bbd2aba2ae628a9e8805272146bd7f895ba6624cdeef 0001-add-initial-clang-support.patch
+4737e6de59ab65e4c8eb285fb716932558c6238f6f0e303eeebfacb106306959fa567d1dc23e2364b1561a06f0013e2fa2e7e7d0ab7dd8c13095a7192d451e89 0002-avoid-__extension__-with-clang.patch
+90d9dfee98b2fb8536f20588ce6017a0d69d1ad12033515f140e3a201eeb0b61be72796dddfb8fc0ccb0fccce202c9206c9db159e3f7ef4c4de4474793c01333 0003-Disable-wrapping-of-ppoll.patch
+"
diff --git a/main/fping/APKBUILD b/main/fping/APKBUILD
index db8a260fed6..f3448cdd41d 100644
--- a/main/fping/APKBUILD
+++ b/main/fping/APKBUILD
@@ -1,15 +1,19 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=fping
pkgver=5.1
-pkgrel=1
+pkgrel=5
pkgdesc="A utility to ping multiple hosts at once"
url="https://fping.org/"
arch="all"
license="MIT"
-makedepends="libcap"
+makedepends="libcap-utils"
subpackages="$pkgname-doc"
-source="https://fping.org/dist/fping-$pkgver.tar.gz"
-options="!check" # no testsuite
+source="https://fping.org/dist/fping-$pkgver.tar.gz
+ int-conversion.patch
+ unprivileged-ping.patch
+ "
+# setcap: needs cap_net_raw to be able to send icmp packets
+options="!check setcap" # no testsuite
build() {
./configure \
@@ -28,4 +32,6 @@ package() {
sha512sums="
1a208da8dcd99093d0512af5d85ba5e7b5743ec97993d24c1fe612bb58d93090ac1ba0952f648aa075f16d390a77c4be65e394ae56dbede2a6914e0e8c68e2bd fping-5.1.tar.gz
+aac9c7906b44f65eb586b4de50cb6b10c6d99b1a2f7fc2ea030491a23e174500dac945ebe9ad8a85a38da0bac4c3883aa41c6ebf980480de02ded709f76bde38 int-conversion.patch
+57fb8976a382ef21200430a238985cec04ecb72458e67d02ae4eac3af4f14108ad90460d562ee9f46a579d6226335b9391542c641acd2c6e1736fa138176e52f unprivileged-ping.patch
"
diff --git a/main/fping/int-conversion.patch b/main/fping/int-conversion.patch
new file mode 100644
index 00000000000..75abfdae596
--- /dev/null
+++ b/main/fping/int-conversion.patch
@@ -0,0 +1,34 @@
+initialising without names is not possible because there are hidden __padding
+fields, so the order of args is wrong.
+--
+diff --git a/src/fping.c b/src/fping.c
+index e26b216..d499689 100644
+--- a/src/fping.c
++++ b/src/fping.c
+@@ -1948,17 +1948,17 @@ int receive_packet(int64_t wait_time,
+ int recv_len;
+ static unsigned char msg_control[40];
+ struct iovec msg_iov = {
+- reply_buf,
+- reply_buf_len
++ .iov_base = reply_buf,
++ .iov_len = reply_buf_len
+ };
+ struct msghdr recv_msghdr = {
+- reply_src_addr,
+- reply_src_addr_len,
+- &msg_iov,
+- 1,
+- &msg_control,
+- sizeof(msg_control),
+- 0
++ .msg_name = reply_src_addr,
++ .msg_namelen = reply_src_addr_len,
++ .msg_iov = &msg_iov,
++ .msg_iovlen = 1,
++ .msg_control = &msg_control,
++ .msg_controllen = sizeof(msg_control),
++ .msg_flags = 0
+ };
+ #if HAVE_SO_TIMESTAMPNS
+ struct cmsghdr* cmsg;
diff --git a/main/fping/unprivileged-ping.patch b/main/fping/unprivileged-ping.patch
new file mode 100644
index 00000000000..cc414df9e51
--- /dev/null
+++ b/main/fping/unprivileged-ping.patch
@@ -0,0 +1,28 @@
+Patch-Source: https://github.com/schweikert/fping/commit/e975a4339b24716fb57bed234b0a1176f2bf3451
+--
+Author: David Schweikert <david@schweikert.ch>
+Committer: Nash Kaminski <Nash.Kaminski@ny.email.gs.com>
+Summary: This patch backports the upstream bugfix from
+ https://github.com/schweikert/fping/issues/248
+ for a regression introduced in version 5.1 which
+ prevents fping from functioning when run in an
+ unprivileged container.
+----
+diff --git a/src/fping.c b/src/fping.c
+index e26b216c..0bd2b70c 100644
+--- a/src/fping.c
++++ b/src/fping.c
+@@ -1104,11 +1104,11 @@ int main(int argc, char** argv)
+ exit(num_noaddress ? 2 : 1);
+ }
+
+- if (src_addr_set && socket4 >= 0) {
++ if (socket4 >= 0 && (src_addr_set || socktype4 == SOCK_DGRAM)) {
+ socket_set_src_addr_ipv4(socket4, &src_addr, (socktype4 == SOCK_DGRAM) ? &ident4 : NULL);
+ }
+ #ifdef IPV6
+- if (src_addr6_set && socket6 >= 0) {
++ if (socket6 >= 0 && (src_addr6_set || socktype4 == SOCK_DGRAM)) {
+ socket_set_src_addr_ipv6(socket6, &src_addr6, (socktype6 == SOCK_DGRAM) ? &ident6 : NULL);
+ }
+ #endif
diff --git a/main/fprobe-ulog/APKBUILD b/main/fprobe-ulog/APKBUILD
index 17bc9f7a342..58df148a2e1 100644
--- a/main/fprobe-ulog/APKBUILD
+++ b/main/fprobe-ulog/APKBUILD
@@ -1,15 +1,13 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=fprobe-ulog
pkgver=1.2
-pkgrel=4
+pkgrel=9
pkgdesc="netfilter-based tool that collect network traffic"
url="https://github.com/opoplawski/fprobe-ulog"
arch="all"
-license="GPL"
-depends=
+license="GPL-2.0-or-later"
makedepends="libnfnetlink-dev libnetfilter_log-dev"
-install=""
-subpackages="$pkgname-doc"
+subpackages="$pkgname-doc $pkgname-openrc"
source="https://github.com/opoplawski/fprobe-ulog/releases/download/v$pkgver/fprobe-ulog-$pkgver.tar.gz
fprobe-ulog.confd
fprobe-ulog.initd
@@ -17,21 +15,14 @@ source="https://github.com/opoplawski/fprobe-ulog/releases/download/v$pkgver/fpr
fix-setuser.patch
fprobe-nflog.patch
"
-
-_builddir="$srcdir"/$pkgname-$pkgver
+options="!check"
prepare() {
- cd $_builddir
- update_config_sub || return 1
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
+ default_prepare
+ update_config_sub
}
build() {
- cd "$_builddir"
CFLAGS="$CFLAGS -std=gnu89" \
./configure \
--build=$CBUILD \
@@ -39,18 +30,15 @@ build() {
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
- --infodir=/usr/share/info \
- || return 1
- make || return 1
+ --infodir=/usr/share/info
+ make
}
package() {
- cd "$_builddir"
make DESTDIR="$pkgdir" install
install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
-
}
sha512sums="c393c0705bd6c7cee998fccc48dede3568063b5130971f36c08f580c7678cf52fdf446c02cc4df3d5a2ead68cb2d14434e0847bfff27b6a0c5ef5ec7d6f61145 fprobe-ulog-1.2.tar.gz
diff --git a/main/fprobe/APKBUILD b/main/fprobe/APKBUILD
index c75b7f644ac..a3be31a1a3f 100644
--- a/main/fprobe/APKBUILD
+++ b/main/fprobe/APKBUILD
@@ -2,35 +2,26 @@
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=fprobe
pkgver=1.1
-pkgrel=9
+pkgrel=13
pkgdesc="libpcap-based tool that collect network traffic"
-url="http://fprobe.sourceforge.net/"
+url="https://fprobe.sourceforge.net/"
arch="all"
-license="GPL"
-depends=
+license="GPL-2.0-or-later"
makedepends="libpcap-dev"
-install=""
-subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2
+subpackages="$pkgname-doc $pkgname-openrc"
+source="https://downloads.sourceforge.net/fprobe/fprobe-$pkgver.tar.bz2
fprobe-1.1-pidfile-sanity.patch
fprobe-1.1-setgroups.patch
$pkgname.initd
$pkgname.confd"
-
-_builddir="$srcdir"/$pkgname-$pkgver
+options="!check"
prepare() {
- cd $_builddir
- update_config_sub || return 1
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
+ default_prepare
+ update_config_sub
}
build() {
- cd "$_builddir"
CFLAGS="$CFLAGS -std=gnu89" \
./configure \
--build=$CBUILD \
@@ -38,13 +29,11 @@ build() {
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
- --infodir=/usr/share/info \
- || return 1
- make || return 1
+ --infodir=/usr/share/info
+ make
}
package() {
- cd "$_builddir"
make DESTDIR="$pkgdir" install
install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
diff --git a/main/freeradius-client/APKBUILD b/main/freeradius-client/APKBUILD
index 61a0169649f..7e5b1735deb 100644
--- a/main/freeradius-client/APKBUILD
+++ b/main/freeradius-client/APKBUILD
@@ -1,21 +1,20 @@
# Contributor: Francesco Colsita <fcolista@alpinelinux.org>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=freeradius-client
pkgver=1.1.7
-pkgrel=4
+pkgrel=7
pkgdesc="FreeRADIUS Client Software"
url="https://freeradius.org/sub_projects/"
arch="all"
-license="BSD"
+license="BSD-2-Clause"
makedepends="nettle-dev automake autoconf libtool"
subpackages="$pkgname-dev"
source="$pkgname-$pkgver-release.tar.gz::https://github.com/FreeRADIUS/freeradius-client/archive/release_${pkgver//./_}.tar.gz"
-builddir="$srcdir"/$pkgname-$pkgver
builddir="$srcdir"/freeradius-client-release_${pkgver//./_}
+options="!check"
build() {
- cd "$_builddir"
autoreconf -vif
./configure \
--build=$CBUILD \
@@ -29,8 +28,9 @@ build() {
}
package() {
- cd "$_builddir"
make DESTDIR="$pkgdir" install
}
-sha512sums="c4844f16954d119dfbe1683ca48f4ed5e612fd10f66b885f8338905137b508f609eafbf5ccff1bc04fd19581249bfbf30d179402db042868dfccee72a3105b95 freeradius-client-1.1.7-release.tar.gz"
+sha512sums="
+c4844f16954d119dfbe1683ca48f4ed5e612fd10f66b885f8338905137b508f609eafbf5ccff1bc04fd19581249bfbf30d179402db042868dfccee72a3105b95 freeradius-client-1.1.7-release.tar.gz
+"
diff --git a/main/freeradius/APKBUILD b/main/freeradius/APKBUILD
index 0b890f653a2..6cdb837f4ad 100644
--- a/main/freeradius/APKBUILD
+++ b/main/freeradius/APKBUILD
@@ -4,8 +4,8 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=freeradius
-pkgver=3.0.25
-pkgrel=3
+pkgver=3.0.26
+pkgrel=7
pkgdesc="RADIUS (Remote Authentication Dial-In User Service) server"
url="https://freeradius.org/"
arch="all"
@@ -27,7 +27,7 @@ makedepends="
mariadb-connector-c-dev
net-snmp-tools
openldap-dev
- openssl1.1-compat-dev
+ openssl-dev>3
perl-dev
python3-dev
readline-dev
@@ -61,9 +61,10 @@ subpackages="
$pkgname-redis
$pkgname-checkrad
$pkgname-utils
+ $pkgname-openrc
"
provides="freeradius3=$pkgver-r$pkgrel"
-source="ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-$pkgver.tar.gz
+source="https://github.com/FreeRADIUS/freeradius-server/releases/download/release_${pkgver//./_}/freeradius-server-$pkgver.tar.gz
$pkgname.logrotated
radiusd.confd
radiusd.initd
@@ -81,6 +82,7 @@ source="ftp://ftp.freeradius.org/pub/freeradius/freeradius-server-$pkgver.tar.gz
dont-install-test-tools.patch
"
builddir="$srcdir/$pkgname-server-$pkgver"
+options="!check"
# secfixes:
# 3.0.19-r3:
@@ -391,7 +393,7 @@ _enable_mod() {
}
sha512sums="
-30a2125f1b823acb3c6f32158e327f4d49503b11e4d9cde64f12ba6e94cbd02d52d7b947d2d68f66f4c71374dcd2435f06e2067404515cd27a610dcd316127a3 freeradius-server-3.0.25.tar.gz
+5ffc7389ed76c40eb249f4588b8b1199f21537fe2718585d6886eefe16871055e4602c841e278c557879766df45d5f3ac351e36037dfbbdfed3c2381ad748855 freeradius-server-3.0.26.tar.gz
52ecccd479bb22c80d5cc298d9d1c12bd2d1a9d80e1265ba032201f3942370910fa78f3bb429031d91bc89712fa2127f16cd68814489cbc99d174fbf5789875f freeradius.logrotated
bb3df1fa2c9ed95514ae090e0f6619c4e3280f424c4351bc79f5254bf1a327fa7d27e5fe3add5ab8d9e5ba3792c9553bd9a0481fe9c5bc34945ce46627ef2638 radiusd.confd
5a8579f06e905117c67f87f0833d0760e81e64f97de7672ecee45775733fae05763edb91c472e313bf58523c713f86815e47cc39c841f4c141aa59a5930113c6 radiusd.initd
@@ -403,7 +405,7 @@ bb3df1fa2c9ed95514ae090e0f6619c4e3280f424c4351bc79f5254bf1a327fa7d27e5fe3add5ab8
c49e5eec7497fccde5fd09dba1ea9b846e57bc88015bd81640aa531fb5c9b449f37136f42c85fe1d7940c5963aed664b85da28442b388c9fb8cc27873df03b2d musl-fix-headers.patch
41d478c0e40ff82fc36232964037c1ab8ffca9fdbb7dca02ed49319906e751c133b5d7bc7773c645cec6d9d39d1de69cba25e8d59afa8d6662563dd17f35f234 fix-scopeid.patch
caf85ffb96e08ad8314fe72aac052948b2461f94bb21e20ea34925534ee1ef682284457318d50df813ba167a8cb4b520c5a0f38d86de21cd56e8391f299a5dd6 default-config.patch
-f96b7b2e0fc614cb8b70bd500933538e98e05b58718af931a62bc7ba2307600cf8c2a8a99de856ad2e18101dd5bfe95c50ee34de20eef21ba0ad795577a6619b remove-eap-from-default-mods.patch
+5fba0394073cd32a0cd80dea0c27e4474cd44c7d52fdf4e1dafb98025ffa3439bbab6112e091ca5e548713d071c026b280b1f205e8e51e57e4fda4bb6336b020 remove-eap-from-default-mods.patch
55e179d5e6b31d289c2da7f907e494a6a6f5900483fdff8d3bb25ee15a583b8705942eca1f0d5390e91376966e66e457dce9b2cf1a1f61c8eac6d8fb825404dd readme-setup-script.patch
908c4408ab6538ddd96577e47d5e509b19e227e144655eaa0fd7569ddadbe5b2298e6599b8370847b3bcb5e788067b163b0cb66e1b3afa4d83dc3f724e058674 dont-install-test-tools.patch
"
diff --git a/main/freeradius/remove-eap-from-default-mods.patch b/main/freeradius/remove-eap-from-default-mods.patch
index f741543f2df..cfeafa121da 100644
--- a/main/freeradius/remove-eap-from-default-mods.patch
+++ b/main/freeradius/remove-eap-from-default-mods.patch
@@ -4,7 +4,7 @@ Because we move eap into a subpackage.
@@ -8,7 +8,7 @@
LOCAL_SITES := $(addprefix raddb/sites-enabled/,$(DEFAULT_SITES))
- DEFAULT_MODULES := always attr_filter cache_eap chap date \
+ DEFAULT_MODULES := always attr_filter chap date \
- detail detail.log digest dynamic_clients eap \
+ detail detail.log digest dynamic_clients \
echo exec expiration expr files linelog logintime \
diff --git a/main/freeswitch-sounds-en-us-callie-32000/APKBUILD b/main/freeswitch-sounds-en-us-callie-32000/APKBUILD
index db8e23c04d9..d0005c4fd49 100644
--- a/main/freeswitch-sounds-en-us-callie-32000/APKBUILD
+++ b/main/freeswitch-sounds-en-us-callie-32000/APKBUILD
@@ -1,12 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=freeswitch-sounds-en-us-callie-32000
pkgver=1.0.16
-pkgrel=2
+pkgrel=3
pkgdesc="Sounds for freeswitch English"
url="https://files.freeswitch.org/"
arch="noarch"
-license="unknown"
-source="https://files.freeswitch.org/$pkgname-$pkgver.tar.gz"
+license="MPL-1.1"
+options="!check"
+source="https://files.freeswitch.org/freeswitch-sounds-en-us-callie-32000-$pkgver.tar.gz"
_sounds=/usr/share/freeswitch/sounds
build() {
diff --git a/main/freeswitch-sounds-en-us-callie-8000/APKBUILD b/main/freeswitch-sounds-en-us-callie-8000/APKBUILD
index 0d38b38bccb..2b438f9e6cd 100644
--- a/main/freeswitch-sounds-en-us-callie-8000/APKBUILD
+++ b/main/freeswitch-sounds-en-us-callie-8000/APKBUILD
@@ -1,12 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=freeswitch-sounds-en-us-callie-8000
pkgver=1.0.51
-pkgrel=1
+pkgrel=2
pkgdesc="Sounds for freeswitch English"
url="https://files.freeswitch.org/"
arch="noarch"
-license="unknown"
-source="https://files.freeswitch.org/$pkgname-$pkgver.tar.gz"
+license="MPL-1.1"
+options="!check"
+source="https://files.freeswitch.org/freeswitch-sounds-en-us-callie-8000-$pkgver.tar.gz"
_sounds=/usr/share/freeswitch/sounds
build() {
diff --git a/main/freeswitch-sounds-es-mx-maria-44100/APKBUILD b/main/freeswitch-sounds-es-mx-maria-44100/APKBUILD
index 42da173dc04..9428a0fd1cf 100644
--- a/main/freeswitch-sounds-es-mx-maria-44100/APKBUILD
+++ b/main/freeswitch-sounds-es-mx-maria-44100/APKBUILD
@@ -1,12 +1,13 @@
# Contributor: Jeff Bilyk <jbilyk@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=freeswitch-sounds-es-mx-maria-44100
-pkgver="0"
-pkgrel=3
+pkgver=0
+pkgrel=4
pkgdesc="Sounds for freeswitch Spanish"
url="https://files.freeswitch.org/"
arch="noarch"
-license="unknown"
+license="MPL-1.1"
+options="!check"
source="https://files.freeswitch.org/freeswitch-sounds-es-mx-maria-44100.tar.gz"
_sounds=/usr/share/freeswitch/sounds
diff --git a/main/freeswitch-sounds-fr-ca-june-8000/APKBUILD b/main/freeswitch-sounds-fr-ca-june-8000/APKBUILD
index 09175ac4bb5..7ee2c8453cd 100644
--- a/main/freeswitch-sounds-fr-ca-june-8000/APKBUILD
+++ b/main/freeswitch-sounds-fr-ca-june-8000/APKBUILD
@@ -1,11 +1,12 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=freeswitch-sounds-fr-ca-june-8000
pkgver=1.0.51
-pkgrel=1
+pkgrel=2
pkgdesc="Sounds for freeswitch French"
url="https://files.freeswitch.org/"
arch="noarch"
-license="unknown"
+license="MPL-1.1"
+options="!check"
source="https://files.freeswitch.org/releases/sounds/freeswitch-sounds-fr-ca-june-8000-$pkgver.tar.gz"
_sounds=/usr/share/freeswitch/sounds
diff --git a/main/freeswitch-sounds-fr-fr-sibylle-8000/APKBUILD b/main/freeswitch-sounds-fr-fr-sibylle-8000/APKBUILD
index d673c349888..85eb99c46f3 100644
--- a/main/freeswitch-sounds-fr-fr-sibylle-8000/APKBUILD
+++ b/main/freeswitch-sounds-fr-fr-sibylle-8000/APKBUILD
@@ -6,6 +6,7 @@ pkgdesc="Sounds for freeswitch French"
url="https://www.archive.org/details/FrenchAudioFilesForFreeswitch"
arch="all"
license="CC-BY-SA-3.0"
+options="!check"
source="https://www.archive.org/download/FrenchAudioFilesForFreeswitch/freeswitch-sounds-fr-fr-sibylle-8000-$pkgver.tar.gz"
build() {
diff --git a/main/freeswitch-sounds-music-32000/APKBUILD b/main/freeswitch-sounds-music-32000/APKBUILD
index 92e2a9f45d6..69fe288c050 100644
--- a/main/freeswitch-sounds-music-32000/APKBUILD
+++ b/main/freeswitch-sounds-music-32000/APKBUILD
@@ -1,12 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=freeswitch-sounds-music-32000
pkgver=1.0.8
-pkgrel=2
+pkgrel=3
pkgdesc="Sounds for freeswitch English"
url="https://files.freeswitch.org/"
arch="noarch"
-license="unknown"
-source="https://files.freeswitch.org/$pkgname-$pkgver.tar.gz"
+license="MPL-1.1"
+options="!check"
+source="https://files.freeswitch.org/freeswitch-sounds-music-32000-$pkgver.tar.gz"
_sounds=/usr/share/freeswitch/sounds
build() {
diff --git a/main/freeswitch-sounds-music-8000/APKBUILD b/main/freeswitch-sounds-music-8000/APKBUILD
index 9b4242ada83..6b4acc9f53e 100644
--- a/main/freeswitch-sounds-music-8000/APKBUILD
+++ b/main/freeswitch-sounds-music-8000/APKBUILD
@@ -1,12 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=freeswitch-sounds-music-8000
pkgver=1.0.8
-pkgrel=2
+pkgrel=3
pkgdesc="Music for freeswitch"
url="https://files.freeswitch.org/"
arch="noarch"
-license="unknown"
-source="https://files.freeswitch.org/$pkgname-$pkgver.tar.gz"
+license="MPL-1.1"
+options="!check"
+source="https://files.freeswitch.org/freeswitch-sounds-music-8000-$pkgver.tar.gz"
_sounds=/usr/share/freeswitch/sounds
build() {
diff --git a/main/freeswitch-sounds-pt-br-karina-8000/APKBUILD b/main/freeswitch-sounds-pt-br-karina-8000/APKBUILD
index d83df5700c2..838912b560b 100644
--- a/main/freeswitch-sounds-pt-br-karina-8000/APKBUILD
+++ b/main/freeswitch-sounds-pt-br-karina-8000/APKBUILD
@@ -2,15 +2,16 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=freeswitch-sounds-pt-br-karina-8000
_realname=freeswitch-sounds-pt-BR-karina-8000
-provides="$_realname=$pkgver-r$pkgrel" # backwards compat
pkgver=1.0.51
-pkgrel=4
+pkgrel=5
pkgdesc="Sounds for freeswitch Brazilian Portuguese"
url="https://files.freeswitch.org/"
arch="noarch"
-license="unknown"
+license="MPL-1.1"
+options="!check"
source="https://files.freeswitch.org/releases/sounds/$_realname-$pkgver.tar.gz"
_sounds=/usr/share/freeswitch/sounds
+provides="$_realname=$pkgver-r$pkgrel" # backwards compat
package() {
mkdir -p "$pkgdir"/$_sounds/
diff --git a/main/freeswitch-sounds-ru-RU-elena-32000/APKBUILD b/main/freeswitch-sounds-ru-RU-elena-32000/APKBUILD
index 772d6e47c4c..8515f23f88c 100644
--- a/main/freeswitch-sounds-ru-RU-elena-32000/APKBUILD
+++ b/main/freeswitch-sounds-ru-RU-elena-32000/APKBUILD
@@ -1,12 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=freeswitch-sounds-ru-RU-elena-32000
pkgver=1.0.12
-pkgrel=2
+pkgrel=3
pkgdesc="Sounds for freeswitch English"
url="https://files.freeswitch.org/"
arch="noarch"
-license="unknown"
-source="https://files.freeswitch.org/$pkgname-$pkgver.tar.gz"
+license="MPL-1.1"
+options="!check"
+source="https://files.freeswitch.org/freeswitch-sounds-ru-RU-elena-32000-$pkgver.tar.gz"
_sounds=/usr/share/freeswitch/sounds
build() {
diff --git a/main/freeswitch-sounds-ru-RU-elena-8000/APKBUILD b/main/freeswitch-sounds-ru-RU-elena-8000/APKBUILD
index 6a13530df00..c0ba5ec216a 100644
--- a/main/freeswitch-sounds-ru-RU-elena-8000/APKBUILD
+++ b/main/freeswitch-sounds-ru-RU-elena-8000/APKBUILD
@@ -1,12 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=freeswitch-sounds-ru-RU-elena-8000
pkgver=1.0.12
-pkgrel=2
+pkgrel=3
pkgdesc="Sounds for freeswitch English"
url="https://files.freeswitch.org/"
arch="noarch"
-license="unknown"
-source="https://files.freeswitch.org/$pkgname-$pkgver.tar.gz"
+license="MPL-1.1"
+options="!check"
+source="https://files.freeswitch.org/freeswitch-sounds-ru-RU-elena-8000-$pkgver.tar.gz"
_sounds=/usr/share/freeswitch/sounds
build() {
diff --git a/main/freeswitch/APKBUILD b/main/freeswitch/APKBUILD
index 55aaca0d0ca..7f320a2c29a 100644
--- a/main/freeswitch/APKBUILD
+++ b/main/freeswitch/APKBUILD
@@ -3,56 +3,59 @@
# Contributor: Cameron Banta <cbanta@gmail.com>
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
pkgname=freeswitch
-pkgver=1.10.7
-pkgrel=4
+pkgver=1.10.10
+pkgrel=1
pkgdesc="A communications platform written in C from the ground up"
url="https://www.freeswitch.org/"
arch="all"
license="MPL-1.1"
+options="!check" # fixme: failing tests
makedepends="
apr-dev
+ autoconf
+ automake
bash
bsd-compat-headers
coreutils
curl-dev
diffutils
flite-dev
- ilbc-dev
+ gdbm-dev
lame-dev
ldns-dev
libedit-dev
libjpeg-turbo-dev
libks-dev
- openssl1.1-compat-dev
libpq-dev
libshout-dev
libsndfile-dev
+ libsrtp-dev
+ libtool
linux-headers
lua5.3-dev
mpg123-dev
+ mariadb-dev
ncurses-dev
+ nasm
net-snmp-dev
+ openssl-dev>3
opus-dev
pcre-dev
perl-dev
portaudio-dev
+ py3-setuptools
python3-dev
sngtc_client-dev
+ sofia-sip-dev
+ spandsp3-dev
speex-dev
speexdsp-dev
sqlite-dev
- libsrtp-dev
tiff-dev
unixodbc-dev
util-linux-dev
xmlrpc-c-dev
- yasm
zlib-dev
- sofia-sip-dev
- spandsp3-dev
- autoconf
- automake
- libtool
"
install="$pkgname.pre-install $pkgname.pre-upgrade"
_freeswitch_user=freeswitch
@@ -60,19 +63,15 @@ _freeswitch_group=freeswitch
pkgusers="$_freeswitch_user"
pkggroups="$_freeswitch_group"
subpackages="$pkgname-dbg
- $pkgname-static $pkgname-dev $pkgname-flite $pkgname-timezones::noarch
+ $pkgname-dev $pkgname-flite $pkgname-timezones::noarch
$pkgname-sample-config:conf:noarch $pkgname-sangoma
- $pkgname-snmp $pkgname-pgsql $pkgname-python3 $pkgname-perl $pkgname-perlesl
- $pkgname-openrc"
+ $pkgname-snmp $pkgname-pgsql $pkgname-mariadb $pkgname-python3
+ $pkgname-perl $pkgname-perlesl $pkgname-openrc"
source="https://files.freeswitch.org/freeswitch-releases/freeswitch-$pkgver.-release.tar.xz
- configure-lua53.patch
- include-lua53.patch
getlib.patch
libvpx-fix-arm-float-abi.patch
disable-Werror.patch
- explicit-darwin-macro.patch
- fix-undeclared-function-s390x.patch
python-3.10.patch
modules.conf
freeswitch.confd
@@ -91,7 +90,7 @@ builddir="$srcdir/$pkgname-$pkgver.-release"
prepare() {
default_prepare
- autoreconf -vif
+ NOCONFIGURE=1 autoreconf -vif
update_config_sub
}
@@ -120,17 +119,21 @@ build() {
make src/include/switch_version.h src/include/switch_swigable_cpp.h
make libfreeswitch.la
# finally we build the rest
- make -j1 all
+ make all
# build perlesl module
cd "$builddir"/libs/esl
- make -j1 perlmod
+ make perlmod
# deal with pkg-config version being bogus
cd "$builddir"
sed -i s:-release::g build/freeswitch.pc
}
+check() {
+ make check
+}
+
package() {
make -j1 DESTDIR="$pkgdir" install samples-conf samples-htdocs
@@ -193,6 +196,12 @@ pgsql() {
_mv_mod mod_cdr_pg_csv
}
+mariadb() {
+ pkgdesc="Freeswitch MariaDB Module"
+ install=
+ _mv_mod mod_mariadb
+}
+
perl() {
pkgdesc="Freeswitch Perl module"
install=
@@ -226,16 +235,12 @@ conf() {
}
sha512sums="
-9c0b29f8e631c5e7d073cb2a70c53ffb16780029e462e6171651a54d9f2a2c73f6c871c8bea9e7715ddb40cd7005d73c5931e6a8af33eeb5a01aa7c8a83dda5b freeswitch-1.10.7.-release.tar.xz
-222e3510790de29e29428c70325eb1d4e7852eb4315ee546f137293868bd71acf89e7c85c5ca9d0eb708090c9eef91878a8e12c1b9d5cc99a68fecbd42ad962f configure-lua53.patch
-c1960f3c7acf729468b819f7f15d66a251c3967b2784bce18c7755b333156e687c55fdc1aceda588ceb1bf9638e2fd4a31a169b00b15c5040cf1001c3c73913b include-lua53.patch
+b43079bc818a86bf667d9b328cf904e49c8455827c199c832ee686ff8634273ea186c35d907bed19d0474cbc2e1232d81624ae878a9aaa3b8897fd76e9916e55 freeswitch-1.10.10.-release.tar.xz
4ceb48f64d2bc26a02cc0846276506241bfd30c156422b0a1d608fd172c099feb5c121a763652e9a45046dcdd0ba0eb71eab240e0c6ce2ad63ff781719e135a4 getlib.patch
98a53f289c3647cafd05b6f847da0504a838a6e06545c133c10fb058c2d941e6bccf2820f44649fc25f94a4a5b7c1280eaee91098e8110f96ed3342c1cb4346c libvpx-fix-arm-float-abi.patch
16e9208fca7f0a1985dd01ec38ddabb6a79da83ad6ab004bb66de528ac45f02fadaddc50a9f228e1aa38fae213fa5af0ca858b7af629b67a7d654339f813a68c disable-Werror.patch
-7c2fa472a3abb5d735902e9a8f1fc6e9c9053955d453216313dd47a263af290cf1f3a92d7297a380e9bbaa17fddc1aacd55c8a72228d2335a9a7bf4ef01aef6c explicit-darwin-macro.patch
-d91350af634d3e6fd6a460d3b861ab0e7289c206d3200bcd7cb5ef9536df1ac9181f7e84462132c5bc8d72329e2e8683aa99ab399fd58324cd85f0280b424874 fix-undeclared-function-s390x.patch
4739be0c1c6783ace2bd10f7573b1ca86be013d21a7f973b5fd348c98fb9ed1a548baacee6bb65b7501251106c8dbd7266997f8699d2d7070a2bd7efe145b866 python-3.10.patch
-e495f955bdfd89259d8c907a7159e15bf17bd5933b0a643fba08f022583b518758b2a6ff301b79a24c099352bb39d4724f779dfc76eb924c103d2cb160fc2aa9 modules.conf
+b2e4e5982e600098e00d5dce801f6159dc3d0765e9de5acc05492b4c811f399b4302c4c6a91d9788d8464d46d9c7a64b70a345130b97aa5a73da41acc57f67de modules.conf
a585f6411185a26206137a1ad97a06fd6c73e80c5439e9be45eabfa70e7a83120169ba882971fcd328436c8e0242cbd664170b80754ea2846021689baf1f1595 freeswitch.confd
643d0a2e43f5d3bf3b99fcb6f6422302cb4b74a95eccf844eafb100b15aa9856b4ff41f112d6637255c2e9e2bec9fedc9a9215dfff214dfb83b52eae16b71dca freeswitch.initd
"
diff --git a/main/freeswitch/configure-lua53.patch b/main/freeswitch/configure-lua53.patch
deleted file mode 100644
index d78f7e8c20b..00000000000
--- a/main/freeswitch/configure-lua53.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/configure.ac b/configure.ac
-index 127ee01..1b2c041 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -593,14 +593,14 @@ AC_SUBST(SYS_XMLRPC_CFLAGS)
- AC_SUBST(SYS_XMLRPC_LDFLAGS)
- AM_CONDITIONAL([SYSTEM_XMLRPCC],[test "${enable_xmlrpcc}" = "yes"])
-
--for luaversion in luajit lua5.2 lua-5.2 lua52 lua5.1 lua-5.1 lua; do
-+for luaversion in lua5.3 lua-5.3 lua53 lua5.2 lua-5.2 lua52 lua5.1 lua-5.1 lua; do
- PKG_CHECK_MODULES([LUA],[${luaversion}],[have_lua=yes],[have_lua=no])
- if test ${have_lua} = yes; then
- break
- fi
- done
- if test x"${LUA_LIBS}" = x"" ; then
-- LUA_LIBS="-llua"
-+ LUA_LIBS="-llua5.3"
- fi
-
- AC_ARG_ENABLE(srtp,
diff --git a/main/freeswitch/explicit-darwin-macro.patch b/main/freeswitch/explicit-darwin-macro.patch
deleted file mode 100644
index 7da441c4d52..00000000000
--- a/main/freeswitch/explicit-darwin-macro.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/libs/apr/include/apr_general.h b/libs/apr/include/apr_general.h
-index 3a95628..42eec83 100644
---- a/libs/apr/include/apr_general.h
-+++ b/libs/apr/include/apr_general.h
-@@ -29,10 +29,6 @@
- #include "apr_pools.h"
- #include "apr_errno.h"
-
--#if !defined(_ANSI_SOURCE) && defined(_DARWIN_C_SOURCE)
--#define NSIG __DARWIN_NSIG
--#endif
--
- #if APR_HAVE_SIGNAL_H
- #include <signal.h>
- #endif
diff --git a/main/freeswitch/fix-undeclared-function-s390x.patch b/main/freeswitch/fix-undeclared-function-s390x.patch
deleted file mode 100644
index b04672a203c..00000000000
--- a/main/freeswitch/fix-undeclared-function-s390x.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-From 68039d344d8e826e8b403c9cd0284fd07b4495ac Mon Sep 17 00:00:00 2001
-From: Dragos Oancea <dragos@signalwire.com>
-Date: Tue, 26 Oct 2021 08:42:58 +0000
-Subject: [PATCH] [core] fix build SWITCH_BYTE_ORDER == __BIG_ENDIAN
-
----
- src/switch_rtp.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-index 1880bbb..843ee81 100644
---- a/src/switch_rtp.c
-+++ b/src/switch_rtp.c
-@@ -2155,7 +2155,7 @@ static void switch_send_rtcp_event(switch_rtp_t *rtp_session ,struct switch_rtcp
- switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, header, value);
- snprintf(header, sizeof(header), "Source-Lost");
- #if SWITCH_BYTE_ORDER == __BIG_ENDIAN
-- tmpLost = report->lost; /* signed 24bit will extended signess to int32_t automatically */
-+ tmpLost = rtcp_report_block->lost; /* signed 24bit will extended signess to int32_t automatically */
- #else
- tmpLost = ntohl(rtcp_report_block->lost)>>8;
- tmpLost = tmpLost | ((tmpLost & 0x00800000) ? 0xff000000 : 0x00000000); /* ...and signess compensation */
diff --git a/main/freeswitch/include-lua53.patch b/main/freeswitch/include-lua53.patch
deleted file mode 100644
index 85907759815..00000000000
--- a/main/freeswitch/include-lua53.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff --git a/src/mod/languages/mod_lua/mod_lua.cpp b/src/mod/languages/mod_lua/mod_lua.cpp
-index 63aaf25..1b37b77 100644
---- a/src/mod/languages/mod_lua/mod_lua.cpp
-+++ b/src/mod/languages/mod_lua/mod_lua.cpp
-@@ -34,9 +34,9 @@
- #include <switch.h>
- #include <switch_event.h>
- SWITCH_BEGIN_EXTERN_C
--#include "lua.h"
--#include <lauxlib.h>
--#include <lualib.h>
-+#include "lua5.3/lua.h"
-+#include <lua5.3/lauxlib.h>
-+#include <lua5.3/lualib.h>
- #include "mod_lua_extra.h"
- SWITCH_MODULE_LOAD_FUNCTION(mod_lua_load);
- SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_lua_shutdown);
-diff --git a/src/mod/languages/mod_lua/freeswitch_lua.h b/src/mod/languages/mod_lua/freeswitch_lua.h
-index d205f6b..f34bd84 100644
---- a/src/mod/languages/mod_lua/freeswitch_lua.h
-+++ b/src/mod/languages/mod_lua/freeswitch_lua.h
-@@ -2,9 +2,9 @@
- #define FREESWITCH_LUA_H
-
- extern "C" {
--#include "lua.h"
--#include <lauxlib.h>
--#include <lualib.h>
-+#include "lua5.3/lua.h"
-+#include <lua5.3/lauxlib.h>
-+#include <lua5.3/lualib.h>
- #include "mod_lua_extra.h"
- }
- #include <switch_cpp.h>
-diff --git a/libs/esl/lua/esl_wrap.cpp b/libs/esl/lua/esl_wrap.cpp
-index d89b83e..261eb97 100644
---- a/libs/esl/lua/esl_wrap.cpp
-+++ b/libs/esl/lua/esl_wrap.cpp
-@@ -730,8 +730,8 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
- extern "C" {
- #endif
-
--#include "lua.h"
--#include "lauxlib.h"
-+#include "lua5.3/lua.h"
-+#include "lua5.3/lauxlib.h"
- #include <stdlib.h> /* for malloc */
- #include <assert.h> /* for a few sanity tests */
diff --git a/main/freeswitch/modules.conf b/main/freeswitch/modules.conf
index 03d0a8ebc87..f2a3b1677cb 100644
--- a/main/freeswitch/modules.conf
+++ b/main/freeswitch/modules.conf
@@ -4,7 +4,7 @@ applications/mod_avmd
#applications/mod_bert
applications/mod_blacklist
applications/mod_callcenter
-#applications/mod_cidlookup
+applications/mod_cidlookup
applications/mod_cluechoo
applications/mod_commands
applications/mod_conference
@@ -71,7 +71,7 @@ codecs/mod_b64
codecs/mod_g723_1
codecs/mod_g729
codecs/mod_h26x
-codecs/mod_ilbc
+#codecs/mod_ilbc
#codecs/mod_isac
#codecs/mod_mp4v
codecs/mod_opus
@@ -79,7 +79,7 @@ codecs/mod_sangoma_codec
#codecs/mod_silk
#codecs/mod_siren
#codecs/mod_theora
-#databases/mod_mariadb
+databases/mod_mariadb
databases/mod_pgsql
dialplans/mod_dialplan_asterisk
#dialplans/mod_dialplan_directory
diff --git a/main/freetdm/APKBUILD b/main/freetdm/APKBUILD
index 6b737467df2..a8f747f5aa1 100644
--- a/main/freetdm/APKBUILD
+++ b/main/freetdm/APKBUILD
@@ -5,13 +5,13 @@ pkgname=freetdm
# the pkgver is the commit date
pkgver=0_git20210830
_commitid=8918ee1c3637cad0f9d41a402d26d3aa076fc202
-pkgrel=1
+pkgrel=5
pkgdesc="FreeTDM Endpoint Module "
url="https://github.com/freeswitch/freetdm"
arch="all"
license="BSD-3-Clause"
makedepends="libtool automake autoconf
-freeswitch-dev gsm-dev libpri-dev libpcap-dev zlib-dev
+freeswitch-dev gsm-dev libpcap-dev zlib-dev
python3-dev"
checkdepends="gzip"
subpackages="$pkgname-dev"
@@ -28,7 +28,6 @@ build() {
./configure \
--prefix=/usr \
--sysconfdir=/etc \
- --with-libpri \
--with-modinstdir=/usr/lib/freeswitch
make
}
diff --git a/main/freetds/APKBUILD b/main/freetds/APKBUILD
index 02f4d42707f..3f0c19b4bcd 100644
--- a/main/freetds/APKBUILD
+++ b/main/freetds/APKBUILD
@@ -1,19 +1,22 @@
# Contributor: Michael Mason <ms13sp@gmail.com>
-# Maintainer: Michael Mason <ms13sp@gmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=freetds
-pkgver=1.3.12
+pkgver=1.4.12
pkgrel=0
pkgdesc="Tabular Datastream Library"
url="https://www.freetds.org/"
arch="all"
license="GPL-2.0-or-later OR LGPL-2.0-or-later"
-makedepends="openssl1.1-compat-dev linux-headers readline-dev unixodbc-dev"
+makedepends="openssl-dev>3 linux-headers readline-dev unixodbc-dev"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
-source="https://www.freetds.org/files/stable/freetds-$pkgver.tar.bz2
- fix-includes.patch
- "
+source="https://www.freetds.org/files/stable/freetds-$pkgver.tar.bz2"
options="!check" # tests require running SQL server http://www.freetds.org/userguide/confirminstall.htm#TESTS
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
./configure \
--build=$CBUILD \
@@ -39,6 +42,5 @@ package() {
}
sha512sums="
-b231e5f2278d86e5903fec1a2416f53057afb5ea71b41668896c6098c3e45aeb6961a4bd01de3e5e53d7db86cdff89288dd7d80a8be380cb15ba4c01e9afa79d freetds-1.3.12.tar.bz2
-9ca126d9316cf48fa5f9572b5aa9122eb114033627ab75f6715bce0260d70c6a7bb8a71ecb1e209a4f83416332d10942c7aaf02a5249948cf1cec6a1a457a236 fix-includes.patch
+cb537490a06c12aa25ce02e1c3b474ad8d6a2be0737719c1b9f83d51245d275abcbd6f4a32dec158cac964ea924458609e253bf9c1497572e386a7436506df8c freetds-1.4.12.tar.bz2
"
diff --git a/main/freetds/fix-includes.patch b/main/freetds/fix-includes.patch
deleted file mode 100644
index ecef5e9fb21..00000000000
--- a/main/freetds/fix-includes.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Upstream: No
-Reason: Missing include
-
---- a/src/apps/fisql/fisql.c
-+++ b/src/apps/fisql/fisql.c
-@@ -25,6 +25,7 @@
- #include <unistd.h>
- #include <setjmp.h>
- #include <signal.h>
-+#include <sys/stat.h>
- #ifdef HAVE_READLINE
- #include <readline/readline.h>
- #include <readline/history.h>
diff --git a/main/freetype/APKBUILD b/main/freetype/APKBUILD
index 710d9bf5698..1e9f9e91e11 100644
--- a/main/freetype/APKBUILD
+++ b/main/freetype/APKBUILD
@@ -1,18 +1,19 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=freetype
-pkgver=2.12.1
+pkgver=2.13.2
pkgrel=0
pkgdesc="TrueType font rendering library"
url="https://www.freetype.org/"
arch="all"
-license="FTL GPL-2.0-or-later"
+license="FTL OR GPL-2.0-or-later"
options="!check"
makedepends="
brotli-dev
bzip2-dev
libpng-dev
libx11-dev
+ meson
zlib-dev
"
subpackages="
@@ -21,15 +22,19 @@ subpackages="
$pkgname-demos
$pkgname-doc
"
-source="https://download.savannah.gnu.org/releases/freetype/freetype-$pkgver.tar.xz
- https://download.savannah.gnu.org/releases/freetype/ft2demos-$pkgver.tar.xz
- 0001-Enable-table-validation-modules.patch
+source="
+ https://de.freedif.org/savannah/freetype/freetype-$pkgver.tar.xz
+ https://de.freedif.org/savannah/freetype/ft2demos-$pkgver.tar.xz
+ pcf-family-names.patch
subpixel.patch
+ table-validation-modules.patch
"
# secfixes:
# 2.12.1-r0:
# - CVE-2022-27404
+# - CVE-2022-27405
+# - CVE-2022-27406
# 2.10.4-r0:
# - CVE-2020-15999
# 2.9-r1:
@@ -41,41 +46,33 @@ source="https://download.savannah.gnu.org/releases/freetype/freetype-$pkgver.tar
prepare() {
default_prepare
- mv ../ft2demos-$pkgver ft2demos
+ ln -sfv ../../freetype-$pkgver "$srcdir"/ft2demos-$pkgver/subprojects/freetype2
}
build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --enable-static \
- --with-brotli \
- --with-bzip2 \
- --with-png \
- --enable-freetype-config
- make
- make -C ft2demos TOP_DIR=".."
+ abuild-meson \
+ -Dfreetype2:default_library=both \
+ -Dlibrsvg=disabled \
+ "$srcdir"/ft2demos-$pkgver output
+ meson compile -C output
}
package() {
- make DESTDIR="$pkgdir" install
- make -C ft2demos TOP_DIR=".." DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+ install -Dm644 builds/unix/freetype2.m4 \
+ -t "$pkgdir"/usr/share/aclocal
}
demos() {
pkgdesc="A collection of FreeType demos"
- depends="$pkgname=$pkgver-r$pkgrel"
amove usr/bin
}
sha512sums="
-6482de1748dc2cc01e033d21a3b492dadb1f039d13d9179685fdcf985e24d7f587cbca4c27ed8a7fdb7d9ad59612642ac5f4db062443154753295363f45c052f freetype-2.12.1.tar.xz
-cd9356152a64d807c75b797d005ca1dd0bde69cc2fadedec101d125cb54b2aaff1f7afa2f20839caba7db66325df7c11ed4883b7e906110356b28d9900caaae7 ft2demos-2.12.1.tar.xz
-580fe59acddfd41966e387bdb6a88336b8bc119cc3d60d8689be20c96fb0dd07c5138ea31f6cb9c854f497ecb41c3adc49eb3ec16a34b2e010e8294851770763 0001-Enable-table-validation-modules.patch
-72883fa203fd2552a7b1b8c39b4aaa68d407c62c289236031cd0fa1c8cdc6ad38e90d3b53f8ee682064986d09c9455961f4941c80566b150d15d5539a716c190 subpixel.patch
+a5917edaa45cb9f75786f8a4f9d12fdf07529247e09dfdb6c0cf7feb08f7588bb24f7b5b11425fb47f8fd62fcb426e731c944658f6d5a59ce4458ad5b0a50194 freetype-2.13.2.tar.xz
+aa83ba4212ff7c4453b72f036136cb9b04cacf7d196388a3e4752613e000b3bb45a4dcf63d3d1d5b3d6ada10720304b532fb6e33ed6a5b399dcce45c27af9ade ft2demos-2.13.2.tar.xz
+78ad6b1de388d3986fd5a51a7076b0a9d782733e85f400fc8c070b40e5e48130a562a67a7a9b251169b74ae052f571ea8e6b0f9435c271520d93dd72c1845d59 pcf-family-names.patch
+55fb06dbc7cc950129a99d9fd5480397b3e0720f32ab65fb3893768ed40e2de27be2cfd52ec6da490f79c79b4ddfecd0b7efcd32da4a95f2666a6b67a3cd9a31 subpixel.patch
+580fe59acddfd41966e387bdb6a88336b8bc119cc3d60d8689be20c96fb0dd07c5138ea31f6cb9c854f497ecb41c3adc49eb3ec16a34b2e010e8294851770763 table-validation-modules.patch
"
diff --git a/main/freetype/pcf-family-names.patch b/main/freetype/pcf-family-names.patch
new file mode 100644
index 00000000000..773f1a44265
--- /dev/null
+++ b/main/freetype/pcf-family-names.patch
@@ -0,0 +1,13 @@
+diff --git a/include/freetype/config/ftoption.h b/include/freetype/config/ftoption.h
+index 9e03e17..1411db6 100644
+--- a/include/freetype/config/ftoption.h
++++ b/include/freetype/config/ftoption.h
+@@ -913,7 +913,7 @@ FT_BEGIN_HEADER
+ * If this option is activated, it can be controlled with the
+ * `no-long-family-names` property of the 'pcf' driver module.
+ */
+-/* #define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES */
++#define PCF_CONFIG_OPTION_LONG_FAMILY_NAMES
+
+
+ /*************************************************************************/
diff --git a/main/freetype/subpixel.patch b/main/freetype/subpixel.patch
index eb1300a0e07..e5da0d74442 100644
--- a/main/freetype/subpixel.patch
+++ b/main/freetype/subpixel.patch
@@ -10,12 +10,3 @@ diff -Naur a/include/freetype/config/ftoption.h b/include/freetype/config/ftopti
/**************************************************************************
-@@ -658,7 +658,7 @@
- * https://www.microsoft.com/typography/cleartype/truetypecleartype.aspx
- */
- /* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING 1 */
--#define TT_CONFIG_OPTION_SUBPIXEL_HINTING 2
-+#define TT_CONFIG_OPTION_SUBPIXEL_HINTING 3
- /* #define TT_CONFIG_OPTION_SUBPIXEL_HINTING ( 1 | 2 ) */
-
-
diff --git a/main/freetype/0001-Enable-table-validation-modules.patch b/main/freetype/table-validation-modules.patch
index 968475e3916..968475e3916 100644
--- a/main/freetype/0001-Enable-table-validation-modules.patch
+++ b/main/freetype/table-validation-modules.patch
diff --git a/main/fribidi/APKBUILD b/main/fribidi/APKBUILD
index 613785272b4..d46978f030e 100644
--- a/main/fribidi/APKBUILD
+++ b/main/fribidi/APKBUILD
@@ -1,11 +1,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=fribidi
-pkgver=1.0.12
+pkgver=1.0.13
pkgrel=0
pkgdesc="Free Implementation of the Unicode Bidirectional Algorithm"
url="https://github.com/fribidi/fribidi"
arch="all"
-license="LGPL-2.0-or-later"
+license="LGPL-2.1-or-later"
makedepends="meson"
subpackages="$pkgname-doc $pkgname-static $pkgname-dev"
source="https://github.com/fribidi/fribidi/releases/download/v$pkgver/fribidi-$pkgver.tar.xz"
@@ -22,11 +22,11 @@ build() {
abuild-meson \
-Ddefault_library=both \
. output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
check() {
- meson test --no-rebuild -v -C output
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
@@ -34,5 +34,5 @@ package() {
}
sha512sums="
-cd624f519b270303e89139ced4020115abe3b6a0d774ba57f17fa69c6036edebd76c635a42c468786e76c6ffb0c7d63b435cd2663bc2fba08dec405840dd8e49 fribidi-1.0.12.tar.xz
+09357d842ff9e05b918f826e28e4a25ad996e17f73242ee9ce53fae9f37ec6c639f9cae4271577f6e0269f34265afc893858225c4a94610f0a6ee7580fb1fe07 fribidi-1.0.13.tar.xz
"
diff --git a/main/fsarchiver/APKBUILD b/main/fsarchiver/APKBUILD
index dd5b1ae113f..fe71b7f76ad 100644
--- a/main/fsarchiver/APKBUILD
+++ b/main/fsarchiver/APKBUILD
@@ -1,13 +1,13 @@
# Contributor: Bartłomiej Piotrowski <bpiotrowski@alpinelinux.org>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=fsarchiver
-pkgver=0.8.6
-pkgrel=0
+pkgver=0.8.7
+pkgrel=1
pkgdesc="Safe and flexible file-system backup and deployment tool"
options="!check" # No testsuite
arch="all"
url="https://www.fsarchiver.org/"
-license="GPL-2.0-only"
+license="GPL-2.0-or-later"
makedepends="linux-headers attr-dev bzip2-dev e2fsprogs-dev lz4-dev lzo-dev
xz-dev libgcrypt-dev zlib-dev zstd-dev"
subpackages="$pkgname-doc"
@@ -25,4 +25,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="26a2d7a68d162aabb778b14f29c52cf8fbadb8147cf5eae592352a36fbf93cc45c08c241253bd8dfe8cd0b77d0f156afcc8d89e8d24a238fd4427cb479827f14 fsarchiver-0.8.6.tar.gz"
+sha512sums="
+6f7099c9f961f78fc23e6cee57dfb109f0e2e00a707875175e37786ba0abb7a2e6330662f57a4122215c80dff63b8dc1b270690c0f8cc3bedbca83ab857c19b2 fsarchiver-0.8.7.tar.gz
+"
diff --git a/main/fstrm/APKBUILD b/main/fstrm/APKBUILD
index 91394bdc3bf..a31ade37efe 100644
--- a/main/fstrm/APKBUILD
+++ b/main/fstrm/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: tcely <tcely@users.noreply.github.com>
-# Maintainer:
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=fstrm
pkgver=0.6.1
-pkgrel=0
+pkgrel=4
pkgdesc="Frame Streams implementation in C"
url="https://github.com/farsightsec/fstrm"
arch="all"
@@ -15,6 +15,11 @@ subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-utils"
source="https://dl.farsightsecurity.com/dist/fstrm/fstrm-$pkgver.tar.gz
reduce-testruns.patch"
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
./configure \
--build="$CBUILD" \
diff --git a/main/fts/APKBUILD b/main/fts/APKBUILD
deleted file mode 100644
index 95b188f2eb1..00000000000
--- a/main/fts/APKBUILD
+++ /dev/null
@@ -1,46 +0,0 @@
-# Contributor:
-# Maintainer:
-pkgname=fts
-pkgver=1.2.7
-pkgrel=1
-pkgdesc="Provides the fts(3) functions, which are missing in musl libc"
-url="https://github.com/pullmoll/musl-fts/"
-arch="all"
-license="BSD-3-Clause"
-makedepends="automake autoconf libtool"
-subpackages="$pkgname-dev"
-source="https://github.com/pullmoll/musl-fts/archive/v$pkgver.zip"
-
-builddir="$srcdir/musl-$pkgname-$pkgver"
-prepare() {
- default_prepare
- cd "$builddir"
- ./bootstrap.sh
-}
-
-build() {
- cd "$builddir"
- CFLAGS=-fPIC ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-check() {
- cd "$builddir"
- make check
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
-
- mkdir -p "$pkgdir"/usr/lib/pkgconfig
- cp "$builddir"/musl-fts.pc "$pkgdir"/usr/lib/pkgconfig/libfts.pc
-}
-
-sha512sums="69aceaa7a8dc7ab5845d3288e315357f92ac32fac55c3d670186f2c5756f665a11471fc81f67126755a707058a8d293ba926d906f542c1360a49ca3c9b357976 v1.2.7.zip"
diff --git a/main/fuse/APKBUILD b/main/fuse/APKBUILD
index ec5831a4f7e..84babe727c2 100644
--- a/main/fuse/APKBUILD
+++ b/main/fuse/APKBUILD
@@ -1,11 +1,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=fuse
pkgver=2.9.9
-pkgrel=1
+pkgrel=5
pkgdesc="A library that makes it possible to implement a filesystem in a userspace program."
url="https://github.com/libfuse/libfuse/"
arch="all"
-license="GPL-2.0-only LGPL-2.1-only"
+license="GPL-2.0-only AND LGPL-2.1-only"
options="suid !check" # No test suite
depends="fuse-common"
makedepends="gettext-dev"
@@ -18,6 +18,11 @@ source="https://github.com/libfuse/libfuse/releases/download/fuse-$pkgver/fuse-$
# 2.9.8-r0:
# - CVE-2018-10906
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
UDEV_RULES_PATH='/lib/udev/rules.d' ./configure \
--build=$CBUILD \
diff --git a/main/fuse3/APKBUILD b/main/fuse3/APKBUILD
index 56f6dbb129d..63b83ae31d4 100644
--- a/main/fuse3/APKBUILD
+++ b/main/fuse3/APKBUILD
@@ -1,23 +1,17 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=fuse3
-_pkgname=fuse
-pkgver=3.11.0
+pkgver=3.16.2
pkgrel=0
-pkgdesc="The reference implementation of the Linux FUSE (Filesystem in Userspace) interface"
+pkgdesc="Reference implementation of the Linux FUSE (Filesystem in Userspace) interface"
url="https://github.com/libfuse/libfuse"
arch="all"
-license="GPL-2.0-only LGPL-2.1-only"
+license="GPL-2.0-only AND LGPL-2.1-only"
depends="fuse-common"
makedepends="
eudev-dev
gettext-dev
linux-headers
meson
- py3-attrs
- py3-pluggy
- py3-py
- py3-six
- python3
"
checkdepends="py3-pytest"
subpackages="
@@ -28,21 +22,23 @@ subpackages="
fuse-common:_common
fuse-openrc:_openrc
"
-source="https://github.com/libfuse/libfuse/releases/download/fuse-$pkgver/fuse-$pkgver.tar.xz
- fix-realpath.patch
+source="https://github.com/libfuse/libfuse/releases/download/fuse-$pkgver/fuse-$pkgver.tar.gz
fuse.initd
+ dont-mknod-dev-fuse.patch
"
options="suid !check" # check is currently broken: https://github.com/libfuse/libfuse/issues/293
-
-builddir="$srcdir"/$_pkgname-$pkgver
+builddir="$srcdir"/fuse-$pkgver
# secfixes:
# 3.2.5-r0:
# - CVE-2018-10906
build() {
- abuild-meson --default-library=both . output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ abuild-meson \
+ -Dinitscriptdir="" \
+ --default-library=both \
+ . output
+ meson compile -C output
}
check() {
@@ -51,7 +47,6 @@ check() {
package() {
DESTDIR="$pkgdir" meson install --no-rebuild -C output
- rm -r "$pkgdir"/dev "$pkgdir"/etc/init.d
install -Dm755 "$srcdir"/fuse.initd "$pkgdir"/etc/init.d/fuse
# create config
@@ -71,8 +66,8 @@ package() {
_common() {
pkgdesc="Common files for fuse2 and fuse3"
- mkdir -p "$subpkgdir"/etc/
- mv "$pkgdir"/etc/fuse.conf "$subpkgdir"/etc/
+
+ amove etc/fuse.conf
}
_openrc() {
@@ -81,7 +76,7 @@ _openrc() {
}
sha512sums="
-033324de7ea4c7e91fb21c453211c01e53771ec5805c2126e13ef2d4334119a51f5c783b6249e888e28888c753aa04b48ed33cefb6d486d8d526546565f6ae50 fuse-3.11.0.tar.xz
-1a9e1d1e8a7b0778ffde328e4322c73b5d57ec98d52767c846d755cce861ab27989823a75b6c5f994432ddb77fa351dfa4a8f948c9467c5f7d5f471e4608358b fix-realpath.patch
+3e8889863cd67dada67271f095f694dc9e5aaf2561fd1e2285aee95b5a54e692bb195ab8fce57fc2bdf08d0ea17b6d56ca4967b4e4371d639d6133907b2370d3 fuse-3.16.2.tar.gz
7f6a503ef23cfa8b809c544375c2d83ad56525269b48ad1a7dff0ce36f4bf2f2a3fafed9dc70a71ff6281b261db5f01829e16c06f041921a5d8c8d715a04a8c1 fuse.initd
+9b32a6ba1d1e5fcb7709eaa8e4d5e90fbdd6873ab97b0c651b6d5dda80644a4d1a7c3d1e201929d1f0b13f29422f2cdedf5127832b05d751d0ef83b53870e57a dont-mknod-dev-fuse.patch
"
diff --git a/main/fuse3/dont-mknod-dev-fuse.patch b/main/fuse3/dont-mknod-dev-fuse.patch
new file mode 100644
index 00000000000..c3604fff5c1
--- /dev/null
+++ b/main/fuse3/dont-mknod-dev-fuse.patch
@@ -0,0 +1,14 @@
+--- a/util/install_helper.sh
++++ b/util/install_helper.sh
+@@ -30,11 +30,6 @@
+ if $useroot; then
+ chown root:root "${DESTDIR}${bindir}/fusermount3"
+ chmod u+s "${DESTDIR}${bindir}/fusermount3"
+-
+- if test ! -e "${DESTDIR}/dev/fuse"; then
+- mkdir -p "${DESTDIR}/dev"
+- mknod "${DESTDIR}/dev/fuse" -m 0666 c 10 229
+- fi
+ fi
+
+ if [ "${udevrulesdir}" != "" ]; then
diff --git a/main/fuse3/fix-realpath.patch b/main/fuse3/fix-realpath.patch
deleted file mode 100644
index 375bedc961c..00000000000
--- a/main/fuse3/fix-realpath.patch
+++ /dev/null
@@ -1,28 +0,0 @@
---- fuse-3.1.0.orig/util/fusermount.c
-+++ fuse-3.1.0/util/fusermount.c
-@@ -1200,19 +1200,16 @@
-
- origmnt = argv[optind];
-
-- drop_privs();
- mnt = fuse_mnt_resolve_path(progname, origmnt);
-- if (mnt != NULL) {
-- res = chdir("/");
-- if (res == -1) {
-- fprintf(stderr, "%s: failed to chdir to '/'\n", progname);
-- goto err_out;
-- }
-- }
-- restore_privs();
- if (mnt == NULL)
- exit(1);
-
-+ res = chdir("/");
-+ if (res == -1) {
-+ fprintf(stderr, "%s: failed to chdir to '/'\n", progname);
-+ exit(1);
-+ }
-+
- umask(033);
- if (unmount)
- goto do_unmount;
diff --git a/main/gawk/APKBUILD b/main/gawk/APKBUILD
index 97f60b585fa..ef5588fdf09 100644
--- a/main/gawk/APKBUILD
+++ b/main/gawk/APKBUILD
@@ -3,7 +3,7 @@
# Contributor: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
# Contributor: TBK <alpine@jjtc.eu>
pkgname=gawk
-pkgver=5.1.1
+pkgver=5.3.0
pkgrel=0
pkgdesc="GNU awk pattern-matching language"
url="https://www.gnu.org/software/gawk/gawk.html"
@@ -28,6 +28,7 @@ prepare() {
}
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -35,7 +36,8 @@ build() {
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
- --disable-nls
+ --disable-nls \
+ --disable-pma
make
}
@@ -48,6 +50,6 @@ package() {
}
sha512sums="
-794538fff03fdb9a8527a6898b26383d01988e8f8456f8d48131676387669a8bb3e706fa1a17f6b6316ddba0ebe653c24ad5dd769f357de509d6ec25f3ff1a43 gawk-5.1.1.tar.xz
+c274a62c7420e7b7769b8ed94db40024bd5917ff49bd50a77ad6df1f16ecf116968aaf85da94015479466bf5570b370b6fdd197f95212ae0c3509dfcb7d9e35a gawk-5.3.0.tar.xz
5bbb175da2d93c9c1d422a4e5a2c2400486c0204929ac6771bf2c2effbee37b84ef9441821a47e1fdc4a337e3cb8ad92cb67d473822876ea790dd373822d4dbd echild-strerror.patch
"
diff --git a/main/gc/0001-Fix-gctest-with-musl-libc-on-s390x.patch b/main/gc/0001-Fix-gctest-with-musl-libc-on-s390x.patch
deleted file mode 100644
index c607d2d1529..00000000000
--- a/main/gc/0001-Fix-gctest-with-musl-libc-on-s390x.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 63ea237b7c367c56b6e14dd4d634b622e3fc0aa7 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Tue, 6 Feb 2018 21:21:23 +0100
-Subject: [PATCH] Fix gctest with musl libc on s390x
-
-Issue #202 (bdwgc).
-
-DEFAULT_STACK_MAYBE_SMALL is only set if PARALLEL_MARK is set, but stack
-is too small on musl libc even if PARALLEL_MARK is unset. We solve this
-by detecting musl via NO_GETCONTEXT.
----
---- a/tests/test.c
-+++ b/tests/test.c
-@@ -2313,7 +2313,7 @@
- }
- # if defined(GC_IRIX_THREADS) || defined(GC_FREEBSD_THREADS) \
- || defined(GC_DARWIN_THREADS) || defined(GC_AIX_THREADS) \
-- || defined(GC_OPENBSD_THREADS)
-+ || defined(GC_OPENBSD_THREADS) || defined(NO_GETCONTEXT) /* musl libc */
- if ((code = pthread_attr_setstacksize(&attr, 1000 * 1024)) != 0) {
- GC_printf("pthread_attr_setstacksize failed, error=%d\n", code);
- FAIL;
diff --git a/main/gc/APKBUILD b/main/gc/APKBUILD
index c37a6b368bd..326e15db695 100644
--- a/main/gc/APKBUILD
+++ b/main/gc/APKBUILD
@@ -1,25 +1,23 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gc
-pkgver=8.2.0
+pkgver=8.2.6
pkgrel=0
pkgdesc="garbage collector for C and C++"
url="https://hboehm.info/gc/"
arch="all"
-license="custom:GPL-like"
+license="Boehm-GC"
makedepends="linux-headers"
subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc libgc++:libgccpp"
-source="https://github.com/ivmai/bdwgc/releases/download/v$pkgver/gc-$pkgver.tar.gz
- 0001-Fix-gctest-with-musl-libc-on-s390x.patch
- "
+source="https://github.com/ivmai/bdwgc/releases/download/v$pkgver/gc-$pkgver.tar.gz"
-prepare() {
- default_prepare
- update_config_guess
- update_config_sub
-}
+case "$CARCH" in
+ppc64le)
+ # FIXME
+ options="!check"
+ ;;
+esac
build() {
- export CFLAGS="$CFLAGS -D_GNU_SOURCE -DNO_GETCONTEXT -DUSE_MMAP -DHAVE_DL_ITERATE_PHDR"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -36,6 +34,7 @@ check() {
package() {
make DESTDIR="$pkgdir" install
+ install -Dm644 README.md "$pkgdir/usr/share/licenses/$pkgname/README.md"
}
libgccpp() {
@@ -44,6 +43,5 @@ libgccpp() {
}
sha512sums="
-ff781360bca667f1f95fbfed073e9035f63134cac1bda4f7e4217664a3713c2846f750a3ce92732972c0435c69355b051f6e8eb6f2698b0d48d9107ff960bacf gc-8.2.0.tar.gz
-0441dfe85b36e9e80b9135d62d56e5e9b67c6db1f927480dd3cf5048765f3a2ab51a45eaa0068066af97ce0398333890fff2f84cd01fec476655f34e0325bc13 0001-Fix-gctest-with-musl-libc-on-s390x.patch
+48afcc1d8570d6b5d62addf8b7b947a3836717e71c073f6dff8982744c06f5973a02e890d17e8dd93f7f997d029b49c652929e6efa0e32aefbcdf7ab0910eda5 gc-8.2.6.tar.gz
"
diff --git a/main/gcc/0001-posix_memalign.patch b/main/gcc/0001-posix_memalign.patch
index f148bcc7eba..04240c29c62 100644
--- a/main/gcc/0001-posix_memalign.patch
+++ b/main/gcc/0001-posix_memalign.patch
@@ -1,14 +1,14 @@
-From feb04e50d907683385cc4dc0163cf1d82258073a Mon Sep 17 00:00:00 2001
+From 47b4bd4deb2c356bb07d2a96f22127aefafec3a4 Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Fri, 26 Jan 2018 20:32:50 +0000
-Subject: [PATCH] posix_memalign
+Subject: [PATCH 01/35] posix_memalign
---
gcc/config/i386/pmm_malloc.h | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/gcc/config/i386/pmm_malloc.h b/gcc/config/i386/pmm_malloc.h
-index 1b0bfe37852..d7b2b19bb3c 100644
+index 3527283693b..c4071b64b53 100644
--- a/gcc/config/i386/pmm_malloc.h
+++ b/gcc/config/i386/pmm_malloc.h
@@ -27,12 +27,13 @@
@@ -38,5 +38,5 @@ index 1b0bfe37852..d7b2b19bb3c 100644
else
return NULL;
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0002-gcc-poison-system-directories.patch b/main/gcc/0002-gcc-poison-system-directories.patch
index 223749d6b71..b14c921c208 100644
--- a/main/gcc/0002-gcc-poison-system-directories.patch
+++ b/main/gcc/0002-gcc-poison-system-directories.patch
@@ -1,7 +1,7 @@
-From d64825212f807435a4b2f8e068c0f65195c8e2e6 Mon Sep 17 00:00:00 2001
+From 4fa620d8c3e6730211bfb071eb4c817320491bd0 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Fri, 29 Mar 2013 08:59:00 +0400
-Subject: [PATCH] gcc: poison-system-directories
+Subject: [PATCH 02/35] gcc: poison-system-directories
Add /sw/include and /opt/include based on the original
zecke-no-host-includes.patch patch. The original patch checked for
@@ -21,15 +21,15 @@ Upstream-Status: Pending
gcc/configure | 16 ++++++++++++++++
gcc/configure.ac | 10 ++++++++++
gcc/doc/invoke.texi | 9 +++++++++
- gcc/gcc.c | 2 ++
- gcc/incpath.c | 21 +++++++++++++++++++++
+ gcc/gcc.cc | 2 ++
+ gcc/incpath.cc | 21 +++++++++++++++++++++
7 files changed, 68 insertions(+)
diff --git a/gcc/common.opt b/gcc/common.opt
-index a75b44ee47e..d15105a73f3 100644
+index 862c474d3c8..64c4277c991 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
-@@ -683,6 +683,10 @@ Wreturn-local-addr
+@@ -711,6 +711,10 @@ Wreturn-local-addr
Common Var(warn_return_local_addr) Init(1) Warning
Warn about returning a pointer/reference to a local or temporary variable.
@@ -41,10 +41,10 @@ index a75b44ee47e..d15105a73f3 100644
Common Var(warn_shadow) Warning
Warn when one variable shadows another. Same as -Wshadow=global.
diff --git a/gcc/config.in b/gcc/config.in
-index 2de5a463315..059c818c895 100644
+index 4cad077bfbe..0679fbbf4c6 100644
--- a/gcc/config.in
+++ b/gcc/config.in
-@@ -218,6 +218,12 @@
+@@ -236,6 +236,12 @@
#endif
@@ -58,10 +58,10 @@ index 2de5a463315..059c818c895 100644
optimizer and back end) to be checked for dynamic type safety at runtime.
This is quite expensive. */
diff --git a/gcc/configure b/gcc/configure
-index 708328e1670..4b977e313b5 100755
+index c7b26d1927d..8c46369f73f 100755
--- a/gcc/configure
+++ b/gcc/configure
-@@ -1020,6 +1020,7 @@ enable_maintainer_mode
+@@ -1026,6 +1026,7 @@ enable_maintainer_mode
enable_link_mutex
enable_link_serialization
enable_version_specific_runtime_libs
@@ -69,7 +69,7 @@ index 708328e1670..4b977e313b5 100755
enable_plugin
enable_host_shared
enable_libquadmath_support
-@@ -1782,6 +1783,8 @@ Optional Features:
+@@ -1788,6 +1789,8 @@ Optional Features:
--enable-version-specific-runtime-libs
specify that runtime libraries should be installed
in a compiler-specific directory
@@ -78,7 +78,7 @@ index 708328e1670..4b977e313b5 100755
--enable-plugin enable plugin support
--enable-host-shared build host code as shared libraries
--disable-libquadmath-support
-@@ -31790,6 +31793,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
+@@ -31753,6 +31756,19 @@ if test "${enable_version_specific_runtime_libs+set}" = set; then :
fi
@@ -99,10 +99,10 @@ index 708328e1670..4b977e313b5 100755
diff --git a/gcc/configure.ac b/gcc/configure.ac
-index df1c9cc3200..5461bab88a9 100644
+index 09082e8ccae..5504bf6eb01 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
-@@ -7311,6 +7311,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
+@@ -7292,6 +7292,16 @@ AC_ARG_ENABLE(version-specific-runtime-libs,
[specify that runtime libraries should be
installed in a compiler-specific directory])])
@@ -120,37 +120,37 @@ index df1c9cc3200..5461bab88a9 100644
AC_SUBST(subdirs)
AC_SUBST(srcdir)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
-index cf536a15116..7d3f1ccddf3 100644
+index af0e5933fdb..b6731a4673c 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
-@@ -369,6 +369,7 @@ Objective-C and Objective-C++ Dialects}.
- -Wpacked -Wno-packed-bitfield-compat -Wpacked-not-aligned -Wpadded @gol
- -Wparentheses -Wno-pedantic-ms-format @gol
- -Wpointer-arith -Wno-pointer-compare -Wno-pointer-to-int-cast @gol
-+-Wno-poison-system-directories @gol
- -Wno-pragmas -Wno-prio-ctor-dtor -Wredundant-decls @gol
- -Wrestrict -Wno-return-local-addr -Wreturn-type @gol
- -Wno-scalar-storage-order -Wsequence-point @gol
-@@ -7728,6 +7729,14 @@ made up of data only and thus requires no special treatment. But, for
+@@ -384,6 +384,7 @@ Objective-C and Objective-C++ Dialects}.
+ -Wpacked -Wno-packed-bitfield-compat -Wpacked-not-aligned -Wpadded
+ -Wparentheses -Wno-pedantic-ms-format
+ -Wpointer-arith -Wno-pointer-compare -Wno-pointer-to-int-cast
++-Wno-poison-system-directories
+ -Wno-pragmas -Wno-prio-ctor-dtor -Wredundant-decls
+ -Wrestrict -Wno-return-local-addr -Wreturn-type
+ -Wno-scalar-storage-order -Wsequence-point
+@@ -8426,6 +8427,14 @@ made up of data only and thus requires no special treatment. But, for
most targets, it is made up of code and thus requires the stack to be
made executable in order for the program to work properly.
-+@item -Wno-poison-system-directories
+@opindex Wno-poison-system-directories
++@item -Wno-poison-system-directories
+Do not warn for @option{-I} or @option{-L} options using system
+directories such as @file{/usr/include} when cross compiling. This
+option is intended for use in chroot environments when such
+directories contain the correct headers and libraries for the target
+system rather than the host.
+
- @item -Wfloat-equal
@opindex Wfloat-equal
@opindex Wno-float-equal
-diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 8ba410c9e17..a83ba34ac4b 100644
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -1152,6 +1152,8 @@ proper position among the other output files. */
+ @item -Wfloat-equal
+diff --git a/gcc/gcc.cc b/gcc/gcc.cc
+index 16bb07f2cdc..33b56e721d2 100644
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -1146,6 +1146,8 @@ proper position among the other output files. */
"%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \
"%X %{o*} %{e*} %{N} %{n} %{r}\
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \
@@ -159,10 +159,10 @@ index 8ba410c9e17..a83ba34ac4b 100644
%{static|no-pie|static-pie:} %@{L*} %(mfwrap) %(link_libgcc) " \
VTABLE_VERIFICATION_SPEC " " SANITIZER_EARLY_SPEC " %o "" \
%{fopenacc|fopenmp|%:gt(%{ftree-parallelize-loops=*:%*} 1):\
-diff --git a/gcc/incpath.c b/gcc/incpath.c
-index 446d280321d..fbfc0ce03b8 100644
---- a/gcc/incpath.c
-+++ b/gcc/incpath.c
+diff --git a/gcc/incpath.cc b/gcc/incpath.cc
+index 4d44321183f..0f3f071b44c 100644
+--- a/gcc/incpath.cc
++++ b/gcc/incpath.cc
@@ -26,6 +26,7 @@
#include "intl.h"
#include "incpath.h"
@@ -171,7 +171,7 @@ index 446d280321d..fbfc0ce03b8 100644
/* Microsoft Windows does not natively support inodes.
VMS has non-numeric inodes. */
-@@ -395,6 +396,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose)
+@@ -399,6 +400,26 @@ merge_include_chains (const char *sysroot, cpp_reader *pfile, int verbose)
}
fprintf (stderr, _("End of search list.\n"));
}
@@ -199,5 +199,5 @@ index 446d280321d..fbfc0ce03b8 100644
/* Use given -I paths for #include "..." but not #include <...>, and
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0003-specs-turn-on-Wl-z-now-by-default.patch b/main/gcc/0003-specs-turn-on-Wl-z-now-by-default.patch
index f6d3774552a..bfb0a6eba77 100644
--- a/main/gcc/0003-specs-turn-on-Wl-z-now-by-default.patch
+++ b/main/gcc/0003-specs-turn-on-Wl-z-now-by-default.patch
@@ -1,7 +1,7 @@
-From 9675297b3a46b65a54e9df97f26ea445d53c67c6 Mon Sep 17 00:00:00 2001
+From ff4dd4ce33133e675b7bedc86b73357c04631cb9 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:45:49 +0000
-Subject: [PATCH] specs: turn on -Wl,-z,now by default
+Subject: [PATCH 03/35] specs: turn on -Wl,-z,now by default
Previously, we also used to turn on -z relro here, but we now build
binutils with --enable-relro, which is functionally equivalent.
@@ -10,28 +10,28 @@ Binutils does not appear to have a similar option for enabling -z
now by default.
---
gcc/doc/invoke.texi | 3 +++
- gcc/gcc.c | 1 +
+ gcc/gcc.cc | 1 +
2 files changed, 4 insertions(+)
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
-index 7d3f1ccddf3..485d2d6b742 100644
+index b6731a4673c..f393c7846c6 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
-@@ -15921,6 +15921,9 @@ For example, @option{-Wl,-Map,output.map} passes @option{-Map output.map} to the
+@@ -17961,6 +17961,9 @@ For example, @option{-Wl,-Map,output.map} passes @option{-Map output.map} to the
linker. When using the GNU linker, you can also get the same effect with
@option{-Wl,-Map=output.map}.
+NOTE: In Alpine Linux, for LDFLAGS, the option
+@option{-Wl,-z,now} is used. To disable, use @option{-Wl,-z,nonow}.
+
- @item -u @var{symbol}
@opindex u
+ @item -u @var{symbol}
Pretend the symbol @var{symbol} is undefined, to force linking of
-diff --git a/gcc/gcc.c b/gcc/gcc.c
-index a83ba34ac4b..faf9ce76b3d 100644
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -1150,6 +1150,7 @@ proper position among the other output files. */
+diff --git a/gcc/gcc.cc b/gcc/gcc.cc
+index 33b56e721d2..f82fae23c22 100644
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -1144,6 +1144,7 @@ proper position among the other output files. */
"%{flto|flto=*:%<fcompare-debug*} \
%{flto} %{fno-lto} %{flto=*} %l " LINK_PIE_SPEC \
"%{fuse-ld=*:-fuse-ld=%*} " LINK_COMPRESS_DEBUG_SPEC \
@@ -40,5 +40,5 @@ index a83ba34ac4b..faf9ce76b3d 100644
%{s} %{t} %{u*} %{z} %{Z} %{!nostdlib:%{!r:%{!nostartfiles:%S}}} \
%{Wno-poison-system-directories:--no-poison-system-directories} \
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch b/main/gcc/0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch
index cb986be4a08..13785a24edc 100644
--- a/main/gcc/0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch
+++ b/main/gcc/0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch
@@ -1,19 +1,19 @@
-From 4eb1b3849325b77c4cb66b675119299de35125bb Mon Sep 17 00:00:00 2001
+From 1b315235433701e4a974da259b8d651169ddc7ac Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:46:22 +0000
-Subject: [PATCH] Turn on -D_FORTIFY_SOURCE=2 by default for C, C++, ObjC,
- ObjC++, if the optimization level is > 0
+Subject: [PATCH 04/35] Turn on -D_FORTIFY_SOURCE=2 by default for C, C++,
+ ObjC, ObjC++, if the optimization level is > 0
---
- gcc/c-family/c-cppbuiltin.c | 4 ++++
- gcc/doc/invoke.texi | 6 ++++++
+ gcc/c-family/c-cppbuiltin.cc | 4 ++++
+ gcc/doc/invoke.texi | 6 ++++++
2 files changed, 10 insertions(+)
-diff --git a/gcc/c-family/c-cppbuiltin.c b/gcc/c-family/c-cppbuiltin.c
-index 11e015bdb87..de8b7bf246f 100644
---- a/gcc/c-family/c-cppbuiltin.c
-+++ b/gcc/c-family/c-cppbuiltin.c
-@@ -1427,6 +1427,10 @@ c_cpp_builtins (cpp_reader *pfile)
+diff --git a/gcc/c-family/c-cppbuiltin.cc b/gcc/c-family/c-cppbuiltin.cc
+index 5d64625fcd7..868d69506e4 100644
+--- a/gcc/c-family/c-cppbuiltin.cc
++++ b/gcc/c-family/c-cppbuiltin.cc
+@@ -1546,6 +1546,10 @@ c_cpp_builtins (cpp_reader *pfile)
builtin_define_with_value ("__REGISTER_PREFIX__", REGISTER_PREFIX, 0);
builtin_define_with_value ("__USER_LABEL_PREFIX__", user_label_prefix, 0);
@@ -25,10 +25,10 @@ index 11e015bdb87..de8b7bf246f 100644
if (flag_gnu89_inline)
cpp_define (pfile, "__GNUC_GNU_INLINE__");
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
-index 485d2d6b742..164929f7583 100644
+index f393c7846c6..ef3c14a189e 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
-@@ -10225,6 +10225,12 @@ also turns on the following optimization flags:
+@@ -11868,6 +11868,12 @@ also turns on the following optimization flags:
Please note the warning under @option{-fgcse} about
invoking @option{-O2} on programs that use computed gotos.
@@ -38,9 +38,9 @@ index 485d2d6b742..164929f7583 100644
+functions. To disable, specify either @option{-U_FORTIFY_SOURCE} or
+@option{-D_FORTIFY_SOURCE=0}.
+
- @item -O3
@opindex O3
+ @item -O3
Optimize yet more. @option{-O3} turns on all optimizations specified
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch b/main/gcc/0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch
index 54d10b6aecf..d229bcfa0fb 100644
--- a/main/gcc/0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch
+++ b/main/gcc/0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch
@@ -1,8 +1,8 @@
-From 8de5d46c530ceca9f4add46d5cae3cd52c38eba3 Mon Sep 17 00:00:00 2001
+From 67c0f5789630b27149f60ff831999ef7c1dba5d5 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:46:56 +0000
-Subject: [PATCH] On linux targets pass --as-needed by default to the linker,
- but always link the sanitizer libraries with --no-as-needed.
+Subject: [PATCH 05/35] On linux targets pass --as-needed by default to the
+ linker, but always link the sanitizer libraries with --no-as-needed.
---
gcc/config/aarch64/aarch64-linux.h | 1 +
@@ -18,11 +18,11 @@ Subject: [PATCH] On linux targets pass --as-needed by default to the linker,
gcc/config/rs6000/sysv4.h | 2 +-
gcc/config/s390/linux.h | 2 +-
gcc/config/sparc/linux.h | 2 +-
- gcc/gcc.c | 28 ++++++++++++++++++++--------
+ gcc/gcc.cc | 28 ++++++++++++++++++++--------
14 files changed, 36 insertions(+), 19 deletions(-)
diff --git a/gcc/config/aarch64/aarch64-linux.h b/gcc/config/aarch64/aarch64-linux.h
-index 7f2529a2a1d..b097e1688aa 100644
+index 4277f03da2a..b131983a546 100644
--- a/gcc/config/aarch64/aarch64-linux.h
+++ b/gcc/config/aarch64/aarch64-linux.h
@@ -35,6 +35,7 @@
@@ -34,7 +34,7 @@ index 7f2529a2a1d..b097e1688aa 100644
%{shared:-shared} \
%{symbolic:-Bsymbolic} \
diff --git a/gcc/config/alpha/linux-elf.h b/gcc/config/alpha/linux-elf.h
-index c1dae8ca2cf..a87dc740171 100644
+index 03f783f2ad1..d946e700dda 100644
--- a/gcc/config/alpha/linux-elf.h
+++ b/gcc/config/alpha/linux-elf.h
@@ -37,7 +37,7 @@ along with GCC; see the file COPYING3. If not see
@@ -47,7 +47,7 @@ index c1dae8ca2cf..a87dc740171 100644
%{shared:-shared} \
%{!shared: \
diff --git a/gcc/config/arm/linux-elf.h b/gcc/config/arm/linux-elf.h
-index 0c1c4e70b6b..8b581afacdd 100644
+index 7b7b7cbbe14..49c050c6f2c 100644
--- a/gcc/config/arm/linux-elf.h
+++ b/gcc/config/arm/linux-elf.h
@@ -70,6 +70,7 @@
@@ -59,7 +59,7 @@ index 0c1c4e70b6b..8b581afacdd 100644
SUBTARGET_EXTRA_LINK_SPEC
diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
-index 5ebbf42a13d..902378e1bad 100644
+index eda8010b133..b26b17f2f2a 100644
--- a/gcc/config/gnu-user.h
+++ b/gcc/config/gnu-user.h
@@ -136,7 +136,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@@ -69,9 +69,9 @@ index 5ebbf42a13d..902378e1bad 100644
- 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}}"
#undef LIBHWASAN_EARLY_SPEC
- #define LIBHWASAN_EARLY_SPEC "%{static-libhwasan:%{!shared:" \
- LD_STATIC_OPTION " --whole-archive -lhwasan --no-whole-archive " \
-@@ -145,12 +145,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+ #define LIBHWASAN_EARLY_SPEC "%{!shared:libhwasan_preinit%O%s} " \
+ "%{static-libhwasan:%{!shared:" \
+@@ -146,12 +146,12 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#define LIBTSAN_EARLY_SPEC "%{!shared:libtsan_preinit%O%s} " \
"%{static-libtsan:%{!shared:" \
LD_STATIC_OPTION " --whole-archive -ltsan --no-whole-archive " \
@@ -87,7 +87,7 @@ index 5ebbf42a13d..902378e1bad 100644
#undef TARGET_F951_OPTIONS
diff --git a/gcc/config/i386/gnu-user.h b/gcc/config/i386/gnu-user.h
-index a23e7ab3eb7..12ac8cb93a9 100644
+index a79b739089d..e0752673dff 100644
--- a/gcc/config/i386/gnu-user.h
+++ b/gcc/config/i386/gnu-user.h
@@ -68,7 +68,7 @@ along with GCC; see the file COPYING3. If not see
@@ -100,7 +100,7 @@ index a23e7ab3eb7..12ac8cb93a9 100644
%{!static: \
%{!static-pie: \
diff --git a/gcc/config/i386/gnu-user64.h b/gcc/config/i386/gnu-user64.h
-index f3e25b1412a..712b0f1c30e 100644
+index 3b63b99acf6..759bf0db86f 100644
--- a/gcc/config/i386/gnu-user64.h
+++ b/gcc/config/i386/gnu-user64.h
@@ -56,6 +56,7 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@@ -112,7 +112,7 @@ index f3e25b1412a..712b0f1c30e 100644
%{!shared: \
%{!static: \
diff --git a/gcc/config/ia64/linux.h b/gcc/config/ia64/linux.h
-index ac40c3dfd3f..6e19e25c35a 100644
+index 5dfd428aa17..02656dad7fc 100644
--- a/gcc/config/ia64/linux.h
+++ b/gcc/config/ia64/linux.h
@@ -58,7 +58,7 @@ do { \
@@ -125,7 +125,7 @@ index ac40c3dfd3f..6e19e25c35a 100644
%{!shared: \
%{!static: \
diff --git a/gcc/config/mips/gnu-user.h b/gcc/config/mips/gnu-user.h
-index a390bcece83..be0ee289367 100644
+index a4e5380b589..3cc61bce69f 100644
--- a/gcc/config/mips/gnu-user.h
+++ b/gcc/config/mips/gnu-user.h
@@ -55,6 +55,7 @@ along with GCC; see the file COPYING3. If not see
@@ -137,10 +137,10 @@ index a390bcece83..be0ee289367 100644
%{!static: \
%{rdynamic:-export-dynamic} \
diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
-index fce5b896e6e..ee29979dd34 100644
+index 3e625e0f867..f8c2c351e5a 100644
--- a/gcc/config/riscv/linux.h
+++ b/gcc/config/riscv/linux.h
-@@ -58,6 +58,7 @@ along with GCC; see the file COPYING3. If not see
+@@ -48,6 +48,7 @@ along with GCC; see the file COPYING3. If not see
"%{mabi=ilp32:_ilp32}"
#define LINK_SPEC "\
@@ -149,10 +149,10 @@ index fce5b896e6e..ee29979dd34 100644
%{mno-relax:--no-relax} \
%{mbig-endian:-EB} \
diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
-index e3f2cd254f6..43499ed29cf 100644
+index 9e457033d11..08016bf224d 100644
--- a/gcc/config/rs6000/linux64.h
+++ b/gcc/config/rs6000/linux64.h
-@@ -374,13 +374,13 @@ extern int dot_symbols;
+@@ -377,13 +377,13 @@ extern int dot_symbols;
" -m elf64ppc")
#endif
@@ -169,10 +169,10 @@ index e3f2cd254f6..43499ed29cf 100644
%{rdynamic:-export-dynamic} \
-dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "}}} \
diff --git a/gcc/config/rs6000/sysv4.h b/gcc/config/rs6000/sysv4.h
-index 510abe169c5..3c1f3a8ec5d 100644
+index ae932fc22f0..c8ff0c6dc8e 100644
--- a/gcc/config/rs6000/sysv4.h
+++ b/gcc/config/rs6000/sysv4.h
-@@ -789,7 +789,7 @@ GNU_USER_TARGET_CC1_SPEC
+@@ -780,7 +780,7 @@ GNU_USER_TARGET_CC1_SPEC
#define GNU_USER_DYNAMIC_LINKER GLIBC_DYNAMIC_LINKER
#endif
@@ -182,7 +182,7 @@ index 510abe169c5..3c1f3a8ec5d 100644
-dynamic-linker " GNU_USER_DYNAMIC_LINKER "}}"
diff --git a/gcc/config/s390/linux.h b/gcc/config/s390/linux.h
-index daa48fdfc2b..2fcfc5d770f 100644
+index 02aa1edaff8..64df5801134 100644
--- a/gcc/config/s390/linux.h
+++ b/gcc/config/s390/linux.h
@@ -82,7 +82,7 @@ along with GCC; see the file COPYING3. If not see
@@ -195,7 +195,7 @@ index daa48fdfc2b..2fcfc5d770f 100644
%{!shared: \
%{static:-static} \
diff --git a/gcc/config/sparc/linux.h b/gcc/config/sparc/linux.h
-index 2550d7ee8f0..7596d0b2757 100644
+index 0e33b3cac2c..c2f44546e62 100644
--- a/gcc/config/sparc/linux.h
+++ b/gcc/config/sparc/linux.h
@@ -81,7 +81,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv);
@@ -207,11 +207,11 @@ index 2550d7ee8f0..7596d0b2757 100644
%{!mno-relax:%{!r:-relax}} \
%{!shared: \
%{!static: \
-diff --git a/gcc/gcc.c b/gcc/gcc.c
-index faf9ce76b3d..1ad5da6d769 100644
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -737,8 +737,11 @@ proper position among the other output files. */
+diff --git a/gcc/gcc.cc b/gcc/gcc.cc
+index f82fae23c22..da6417dd0d1 100644
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -754,8 +754,11 @@ proper position among the other output files. */
#ifdef LIBASAN_EARLY_SPEC
#define LIBASAN_SPEC STATIC_LIBASAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
@@ -225,7 +225,7 @@ index faf9ce76b3d..1ad5da6d769 100644
STATIC_LIBASAN_LIBS
#else
#define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS
-@@ -773,8 +776,11 @@ proper position among the other output files. */
+@@ -790,8 +793,11 @@ proper position among the other output files. */
#ifdef LIBTSAN_EARLY_SPEC
#define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
@@ -239,7 +239,7 @@ index faf9ce76b3d..1ad5da6d769 100644
STATIC_LIBTSAN_LIBS
#else
#define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS
-@@ -791,8 +797,11 @@ proper position among the other output files. */
+@@ -808,8 +814,11 @@ proper position among the other output files. */
#ifdef LIBLSAN_EARLY_SPEC
#define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
@@ -253,7 +253,7 @@ index faf9ce76b3d..1ad5da6d769 100644
STATIC_LIBLSAN_LIBS
#else
#define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS
-@@ -807,8 +816,11 @@ proper position among the other output files. */
+@@ -824,8 +833,11 @@ proper position among the other output files. */
#define STATIC_LIBUBSAN_LIBS \
" %{static-libubsan|static:%:include(libsanitizer.spec)%(link_libubsan)}"
#ifdef HAVE_LD_STATIC_DYNAMIC
@@ -268,5 +268,5 @@ index faf9ce76b3d..1ad5da6d769 100644
#else
#define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0006-Enable-Wformat-and-Wformat-security-by-default.patch b/main/gcc/0006-Enable-Wformat-and-Wformat-security-by-default.patch
index 7a1a71f7606..55dff3692dc 100644
--- a/main/gcc/0006-Enable-Wformat-and-Wformat-security-by-default.patch
+++ b/main/gcc/0006-Enable-Wformat-and-Wformat-security-by-default.patch
@@ -1,17 +1,17 @@
-From 85e12e3d32a44c3fd10b5327edd542972a179eec Mon Sep 17 00:00:00 2001
+From bb25e8489384504cd59e4a2538720863da1fb29c Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:47:43 +0000
-Subject: [PATCH] Enable -Wformat and -Wformat-security by default.
+Subject: [PATCH 06/35] Enable -Wformat and -Wformat-security by default.
---
gcc/c-family/c.opt | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc/c-family/c.opt b/gcc/c-family/c.opt
-index 2005b783c68..c5c6af427cc 100644
+index a75038930ae..b98726f33ed 100644
--- a/gcc/c-family/c.opt
+++ b/gcc/c-family/c.opt
-@@ -637,7 +637,7 @@ Warn about function calls with format strings that write past the end
+@@ -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
@@ -20,7 +20,7 @@ index 2005b783c68..c5c6af427cc 100644
Warn about possible security problems with format functions.
Wformat-signedness
-@@ -658,7 +658,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=
@@ -30,5 +30,5 @@ index 2005b783c68..c5c6af427cc 100644
Wformat-overflow=
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0007-Enable-Wtrampolines-by-default.patch b/main/gcc/0007-Enable-Wtrampolines-by-default.patch
index 98397fa5009..eb7aae83866 100644
--- a/main/gcc/0007-Enable-Wtrampolines-by-default.patch
+++ b/main/gcc/0007-Enable-Wtrampolines-by-default.patch
@@ -1,17 +1,17 @@
-From f1e92f5f3576779776c9f3d6aeef76e1569e719a Mon Sep 17 00:00:00 2001
+From 4a728ad48a7b437cc6f2697e26603bf648149f86 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:48:24 +0000
-Subject: [PATCH] Enable -Wtrampolines by default.
+Subject: [PATCH 07/35] Enable -Wtrampolines by default.
---
gcc/common.opt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/common.opt b/gcc/common.opt
-index d15105a73f3..29f9504cb68 100644
+index 64c4277c991..c24839d32bc 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
-@@ -775,7 +775,7 @@ Common Var(warn_system_headers) Warning
+@@ -803,7 +803,7 @@ Common Var(warn_system_headers) Warning
Do not suppress warnings from system headers.
Wtrampolines
@@ -19,7 +19,7 @@ index d15105a73f3..29f9504cb68 100644
+Common Var(warn_trampolines) Init(1) Warning
Warn whenever a trampoline is generated.
- Wtype-limits
+ Wtrivial-auto-var-init
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0008-Disable-ssp-on-nostdlib-nodefaultlibs-and-ffreestand.patch b/main/gcc/0008-Disable-ssp-on-nostdlib-nodefaultlibs-and-ffreestand.patch
index cfd18dcabc4..69c1bf72545 100644
--- a/main/gcc/0008-Disable-ssp-on-nostdlib-nodefaultlibs-and-ffreestand.patch
+++ b/main/gcc/0008-Disable-ssp-on-nostdlib-nodefaultlibs-and-ffreestand.patch
@@ -1,19 +1,19 @@
-From 3503fd734a33b67ec6a9fdc2c52bb8310864b119 Mon Sep 17 00:00:00 2001
+From 32f24560d0602f7735d5e9efd92fe3151bd72cea Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:49:40 +0000
-Subject: [PATCH] Disable ssp on -nostdlib, -nodefaultlibs and -ffreestanding
- Change the buffer size.
+Subject: [PATCH 08/35] Disable ssp on -nostdlib, -nodefaultlibs and
+ -ffreestanding Change the buffer size.
---
- gcc/gcc.c | 8 +++++++-
+ gcc/gcc.cc | 8 +++++++-
gcc/params.opt | 2 +-
2 files changed, 8 insertions(+), 2 deletions(-)
-diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 1ad5da6d769..99314032ec2 100644
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -989,6 +989,12 @@ proper position among the other output files. */
+diff --git a/gcc/gcc.cc b/gcc/gcc.cc
+index da6417dd0d1..b5a6f200635 100644
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -983,6 +983,12 @@ proper position among the other output files. */
#define LINK_GCC_C_SEQUENCE_SPEC "%G %{!nolibc:%L %G}"
#endif
@@ -26,7 +26,7 @@ index 1ad5da6d769..99314032ec2 100644
#ifndef LINK_SSP_SPEC
#ifdef TARGET_LIBC_PROVIDES_SSP
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
-@@ -1288,7 +1294,7 @@ static const char *cc1_options =
+@@ -1282,7 +1288,7 @@ static const char *cc1_options =
%{-version:--version}\
%{-help=*:--help=%*}\
%{!fsyntax-only:%{S:%W{o*}%{!o*:-o %w%b.s}}}\
@@ -36,10 +36,10 @@ index 1ad5da6d769..99314032ec2 100644
%{fprofile-arcs|fprofile-generate*|coverage:\
%{!fprofile-update=single:\
diff --git a/gcc/params.opt b/gcc/params.opt
-index 8ba281b4cfa..bab39cdf8a2 100644
+index 823cdb2ff85..5b096899b40 100644
--- a/gcc/params.opt
+++ b/gcc/params.opt
-@@ -946,7 +946,7 @@ Common Joined UInteger Var(param_ssa_name_def_chain_limit) Init(512) Param Optim
+@@ -1006,7 +1006,7 @@ Common Joined UInteger Var(param_ssa_name_def_chain_limit) Init(512) Param Optim
The maximum number of SSA_NAME assignments to follow in determining a value.
-param=ssp-buffer-size=
@@ -49,5 +49,5 @@ index 8ba281b4cfa..bab39cdf8a2 100644
-param=stack-clash-protection-guard-size=
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0009-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch b/main/gcc/0009-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch
index 390598e866b..f4dd52f1910 100644
--- a/main/gcc/0009-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch
+++ b/main/gcc/0009-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch
@@ -1,8 +1,8 @@
-From c4dd51fe15a938fdd76d781a4eede2a9205eacbc Mon Sep 17 00:00:00 2001
+From c7ec8da7280d7f97f5543eb9ddeca7600aafc43c Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:50:33 +0000
-Subject: [PATCH] Ensure that msgfmt doesn't encounter problems during gcc
- bootstrapping.
+Subject: [PATCH 09/35] Ensure that msgfmt doesn't encounter problems during
+ gcc bootstrapping.
Solves error messages like the following:
@@ -26,7 +26,7 @@ https://bugs.gentoo.org/295480
2 files changed, 2 insertions(+)
diff --git a/libstdc++-v3/po/Makefile.am b/libstdc++-v3/po/Makefile.am
-index ab716ff04ea..e595268d9fc 100644
+index 12d34910830..61b13762b71 100644
--- a/libstdc++-v3/po/Makefile.am
+++ b/libstdc++-v3/po/Makefile.am
@@ -38,6 +38,7 @@ MSGFMT = msgfmt
@@ -38,10 +38,10 @@ index ab716ff04ea..e595268d9fc 100644
all-local: all-local-$(USE_NLS)
diff --git a/libstdc++-v3/po/Makefile.in b/libstdc++-v3/po/Makefile.in
-index 8edd2e05639..63f61fcf96f 100644
+index 8e93445acd2..d6ff06e5ddb 100644
--- a/libstdc++-v3/po/Makefile.in
+++ b/libstdc++-v3/po/Makefile.in
-@@ -553,6 +553,7 @@ uninstall-am:
+@@ -561,6 +561,7 @@ uninstall-am:
.po.mo:
@@ -50,5 +50,5 @@ index 8edd2e05639..63f61fcf96f 100644
all-local: all-local-$(USE_NLS)
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0010-Don-t-declare-asprintf-if-defined-as-a-macro.patch b/main/gcc/0010-Don-t-declare-asprintf-if-defined-as-a-macro.patch
index ba0b8ca5473..f56d41a571c 100644
--- a/main/gcc/0010-Don-t-declare-asprintf-if-defined-as-a-macro.patch
+++ b/main/gcc/0010-Don-t-declare-asprintf-if-defined-as-a-macro.patch
@@ -1,14 +1,14 @@
-From 0a1fd78184f00fb77dac00dabe98eb025620efc2 Mon Sep 17 00:00:00 2001
+From aaa029bcee68298695b7c4278c90b6bc320d098c Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:52:07 +0000
-Subject: [PATCH] Don't declare asprintf if defined as a macro.
+Subject: [PATCH 10/35] Don't declare asprintf if defined as a macro.
---
include/libiberty.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/include/libiberty.h b/include/libiberty.h
-index f4c0fe11d6f..cf4b1043e4d 100644
+index 1d5c779fcff..19e3cb1e31c 100644
--- a/include/libiberty.h
+++ b/include/libiberty.h
@@ -652,8 +652,11 @@ extern void *bsearch_r (const void *, const void *,
@@ -24,5 +24,5 @@ index f4c0fe11d6f..cf4b1043e4d 100644
/* Like asprintf but allocates memory without fail. This works like
xmalloc. */
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0011-libiberty-copy-PIC-objects-during-build-process.patch b/main/gcc/0011-libiberty-copy-PIC-objects-during-build-process.patch
index a8e5cd328ff..b12d4f94bd0 100644
--- a/main/gcc/0011-libiberty-copy-PIC-objects-during-build-process.patch
+++ b/main/gcc/0011-libiberty-copy-PIC-objects-during-build-process.patch
@@ -1,17 +1,17 @@
-From f81d67f6fe1f1066642606209c882b333d937cb7 Mon Sep 17 00:00:00 2001
+From 65e01e749205c9af218b01233cebd0077538d0ee Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:53:00 +0000
-Subject: [PATCH] libiberty: copy PIC objects during build process
+Subject: [PATCH 11/35] libiberty: copy PIC objects during build process
---
libiberty/Makefile.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/libiberty/Makefile.in b/libiberty/Makefile.in
-index 4f1213b983b..d0224649d30 100644
+index 72608f3e4a7..58356884728 100644
--- a/libiberty/Makefile.in
+++ b/libiberty/Makefile.in
-@@ -264,6 +264,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); \
@@ -20,5 +20,5 @@ index 4f1213b983b..d0224649d30 100644
else true; fi
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0013-libgcc_s.patch b/main/gcc/0012-libgcc_s.patch
index 54de72bd9d3..d8bbc602f21 100644
--- a/main/gcc/0013-libgcc_s.patch
+++ b/main/gcc/0012-libgcc_s.patch
@@ -1,33 +1,33 @@
-From a3e556187d0a8e9d39544f023960eca0f07d3e83 Mon Sep 17 00:00:00 2001
+From 453a815bf2844971a91eaef800af188d9e86b784 Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Sat, 24 Oct 2015 20:09:53 +0000
-Subject: [PATCH] libgcc_s
+Subject: [PATCH 12/35] libgcc_s
---
- gcc/config/i386/i386-expand.c | 4 ++--
- libgcc/config/i386/cpuinfo.c | 6 +++---
- libgcc/config/i386/t-linux | 2 +-
+ gcc/config/i386/i386-expand.cc | 4 ++--
+ libgcc/config/i386/cpuinfo.c | 6 +++---
+ libgcc/config/i386/t-linux | 2 +-
3 files changed, 6 insertions(+), 6 deletions(-)
-diff --git a/gcc/config/i386/i386-expand.c b/gcc/config/i386/i386-expand.c
-index 1772fb16c9a..77e04b0c2df 100644
---- a/gcc/config/i386/i386-expand.c
-+++ b/gcc/config/i386/i386-expand.c
-@@ -11066,10 +11066,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
+diff --git a/gcc/config/i386/i386-expand.cc b/gcc/config/i386/i386-expand.cc
+index 0d817fc3f3b..2e99db00db9 100644
+--- a/gcc/config/i386/i386-expand.cc
++++ b/gcc/config/i386/i386-expand.cc
+@@ -12691,10 +12691,10 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
{
case IX86_BUILTIN_CPU_INIT:
{
-- /* Make it call __cpu_indicator_init in libgcc. */
-+ /* Make it call __cpu_indicator_init_local in libgcc.a. */
+- /* Make it call __cpu_indicator_init in libgcc. */
++ /* Make it call __cpu_indicator_init in libgcc.a. */
tree call_expr, fndecl, type;
- type = build_function_type_list (integer_type_node, NULL_TREE);
+ type = build_function_type_list (integer_type_node, NULL_TREE);
- fndecl = build_fn_decl ("__cpu_indicator_init", type);
+ fndecl = build_fn_decl ("__cpu_indicator_init_local", type);
- call_expr = build_call_expr (fndecl, 0);
+ call_expr = build_call_expr (fndecl, 0);
return expand_expr (call_expr, target, mode, EXPAND_NORMAL);
}
diff --git a/libgcc/config/i386/cpuinfo.c b/libgcc/config/i386/cpuinfo.c
-index ef463848f9d..1a3de052c80 100644
+index 50b6d8248a2..724ced402a1 100644
--- a/libgcc/config/i386/cpuinfo.c
+++ b/libgcc/config/i386/cpuinfo.c
@@ -63,7 +63,7 @@ __cpu_indicator_init (void)
@@ -53,5 +53,5 @@ index 8506a635790..564296f788e 100644
+HOST_LIBGCC2_CFLAGS += -mlong-double-80 $(CET_FLAGS)
CRTSTUFF_T_CFLAGS += $(CET_FLAGS)
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0012-libitm-disable-FORTIFY.patch b/main/gcc/0012-libitm-disable-FORTIFY.patch
deleted file mode 100644
index ba14aa4c875..00000000000
--- a/main/gcc/0012-libitm-disable-FORTIFY.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 3b732288ce771348cbcc9fb633a36b7aff2b4ad4 Mon Sep 17 00:00:00 2001
-From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 21 Aug 2020 06:53:36 +0000
-Subject: [PATCH] libitm: disable FORTIFY
-
----
- libitm/configure.tgt | 10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/libitm/configure.tgt b/libitm/configure.tgt
-index a3d84896cc5..ecb281d5919 100644
---- a/libitm/configure.tgt
-+++ b/libitm/configure.tgt
-@@ -47,6 +47,16 @@ if test "$gcc_cv_have_tls" = yes ; then
- esac
- fi
-
-+# FIXME: error: inlining failed in call to always_inline
-+# ‘int vfprintf(FILE*, const char*, __va_list_tag*)’
-+# : function body can be overwritten at link time
-+# Disable Fortify in libitm for now. #508852
-+case "${target}" in
-+ *-*-linux*)
-+ XCFLAGS="${XCFLAGS} -U_FORTIFY_SOURCE"
-+ ;;
-+esac
-+
- # 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
---
-2.35.1
-
diff --git a/main/gcc/0014-nopie.patch b/main/gcc/0013-nopie.patch
index eafc9e0bd48..28a765ef232 100644
--- a/main/gcc/0014-nopie.patch
+++ b/main/gcc/0013-nopie.patch
@@ -1,7 +1,7 @@
-From f520e67fba621f213146271408ff3210b3527176 Mon Sep 17 00:00:00 2001
+From 7d7d12137c666761a8dd61179c9651b85dae9b41 Mon Sep 17 00:00:00 2001
From: Szabolcs Nagy <nsz@port70.net>
Date: Sat, 7 Nov 2015 02:08:05 +0000
-Subject: [PATCH] nopie
+Subject: [PATCH 13/35] nopie
---
gcc/configure | 27 +++++++++++++++++++++++++++
@@ -9,10 +9,10 @@ Subject: [PATCH] nopie
2 files changed, 40 insertions(+)
diff --git a/gcc/configure b/gcc/configure
-index 4b977e313b5..592e81e40f6 100755
+index 8c46369f73f..e59cbee1767 100755
--- a/gcc/configure
+++ b/gcc/configure
-@@ -32300,6 +32300,33 @@ fi
+@@ -32268,6 +32268,33 @@ fi
$as_echo "$gcc_cv_no_pie" >&6; }
if test "$gcc_cv_no_pie" = "yes"; then
NO_PIE_FLAG="-no-pie"
@@ -47,10 +47,10 @@ index 4b977e313b5..592e81e40f6 100755
diff --git a/gcc/configure.ac b/gcc/configure.ac
-index 5461bab88a9..1577529ffb7 100644
+index 5504bf6eb01..57268319de1 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
-@@ -7571,6 +7571,19 @@ AC_CACHE_CHECK([for -no-pie option],
+@@ -7552,6 +7552,19 @@ AC_CACHE_CHECK([for -no-pie option],
LDFLAGS="$saved_LDFLAGS"])
if test "$gcc_cv_no_pie" = "yes"; then
NO_PIE_FLAG="-no-pie"
@@ -71,5 +71,5 @@ index 5461bab88a9..1577529ffb7 100644
AC_SUBST([NO_PIE_FLAG])
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0019-ada-fix-shared-linking.patch b/main/gcc/0014-ada-fix-shared-linking.patch
index bae33acb5f1..ff6e429210e 100644
--- a/main/gcc/0019-ada-fix-shared-linking.patch
+++ b/main/gcc/0014-ada-fix-shared-linking.patch
@@ -1,14 +1,14 @@
-From 374a19de60fcd5c31321c3f4d26dcc4b631e8c3f Mon Sep 17 00:00:00 2001
+From dd5bb97c31a9f57034c70a7a18ba6e2e133084c7 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:59:16 +0000
-Subject: [PATCH] ada: fix shared linking
+Subject: [PATCH 14/35] ada: fix shared linking
---
gcc/ada/link.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/gcc/ada/link.c b/gcc/ada/link.c
-index 5cd5ef64f56..1c611a82cab 100644
+index f2126441208..22cfa9c641f 100644
--- a/gcc/ada/link.c
+++ b/gcc/ada/link.c
@@ -107,9 +107,9 @@ const char *__gnat_default_libgcc_subdir = "lib";
@@ -38,5 +38,5 @@ index 5cd5ef64f56..1c611a82cab 100644
unsigned char __gnat_objlist_file_supported = 1;
const char *__gnat_object_library_extension = ".a";
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0020-build-fix-CXXFLAGS_FOR_BUILD-passing.patch b/main/gcc/0015-build-fix-CXXFLAGS_FOR_BUILD-passing.patch
index 6ffdb0ae633..937cad8a708 100644
--- a/main/gcc/0020-build-fix-CXXFLAGS_FOR_BUILD-passing.patch
+++ b/main/gcc/0015-build-fix-CXXFLAGS_FOR_BUILD-passing.patch
@@ -1,17 +1,17 @@
-From ad053bc46b535e78397f992e3c2c1d28c1ebd1f4 Mon Sep 17 00:00:00 2001
+From 6bb5b7d9161d05f31b001d8211a9c63caf63fd2f Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 06:59:43 +0000
-Subject: [PATCH] build: fix CXXFLAGS_FOR_BUILD passing
+Subject: [PATCH 15/35] build: fix CXXFLAGS_FOR_BUILD passing
---
Makefile.in | 1 +
1 file changed, 1 insertion(+)
diff --git a/Makefile.in b/Makefile.in
-index 047be0255e2..426949aa91c 100644
+index 06a9398e172..6ff2b3f9925 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -170,6 +170,7 @@ BUILD_EXPORTS = \
+@@ -178,6 +178,7 @@ BUILD_EXPORTS = \
# built for the build system to override those in BASE_FLAGS_TO_PASS.
EXTRA_BUILD_FLAGS = \
CFLAGS="$(CFLAGS_FOR_BUILD)" \
@@ -20,5 +20,5 @@ index 047be0255e2..426949aa91c 100644
# This is the list of directories to built for the host system.
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0015-libffi-use-__linux__-instead-of-__gnu_linux__-for-mu.patch b/main/gcc/0015-libffi-use-__linux__-instead-of-__gnu_linux__-for-mu.patch
deleted file mode 100644
index 992058d6bb8..00000000000
--- a/main/gcc/0015-libffi-use-__linux__-instead-of-__gnu_linux__-for-mu.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 37310cabb8bc7256899c4d45cc68a47ca2a3232b Mon Sep 17 00:00:00 2001
-From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 21 Aug 2020 06:57:09 +0000
-Subject: [PATCH] libffi: use __linux__ instead of __gnu_linux__ for musl
-
----
- libffi/src/closures.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libffi/src/closures.c b/libffi/src/closures.c
-index 721ff00ea43..22a699c6340 100644
---- a/libffi/src/closures.c
-+++ 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
---
-2.35.1
-
diff --git a/main/gcc/0021-add-fortify-headers-paths.patch b/main/gcc/0016-add-fortify-headers-paths.patch
index 0e93b1620ce..b554e0251d3 100644
--- a/main/gcc/0021-add-fortify-headers-paths.patch
+++ b/main/gcc/0016-add-fortify-headers-paths.patch
@@ -1,17 +1,17 @@
-From 18d44a7f8d801cc6926a73e2dda2f0ce859dc561 Mon Sep 17 00:00:00 2001
+From f0d9e00cac06689f64b214de7aee80d7116ef084 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 07:01:06 +0000
-Subject: [PATCH] add fortify-headers paths
+Subject: [PATCH 16/35] add fortify-headers paths
---
gcc/config/linux.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/gcc/config/linux.h b/gcc/config/linux.h
-index 4e1db60fced..7fcf402b416 100644
+index e3aca79cccc..b3537b8fbeb 100644
--- a/gcc/config/linux.h
+++ b/gcc/config/linux.h
-@@ -167,6 +167,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+@@ -159,6 +159,8 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
#ifdef NATIVE_SYSTEM_HEADER_DIR
#define INCLUDE_DEFAULTS_MUSL_NATIVE \
@@ -21,5 +21,5 @@ index 4e1db60fced..7fcf402b416 100644
{ NATIVE_SYSTEM_HEADER_DIR, 0, 0, 0, 1, 0 },
#else
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0016-dlang-update-zlib-binding.patch b/main/gcc/0016-dlang-update-zlib-binding.patch
deleted file mode 100644
index 77d02b2986f..00000000000
--- a/main/gcc/0016-dlang-update-zlib-binding.patch
+++ /dev/null
@@ -1,425 +0,0 @@
-From 586e82425a024d85d1bd9952ca51d8a671aa9b5d Mon Sep 17 00:00:00 2001
-From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Fri, 21 Aug 2020 06:57:51 +0000
-Subject: [PATCH] dlang: update zlib binding
-
----
- libphobos/src/std/zlib.d | 266 ++++++++++++++++++++++++++++-----------
- 1 file changed, 196 insertions(+), 70 deletions(-)
-
-diff --git a/libphobos/src/std/zlib.d b/libphobos/src/std/zlib.d
-index e6cce240fd5..bd2fe37ebec 100644
---- a/libphobos/src/std/zlib.d
-+++ b/libphobos/src/std/zlib.d
-@@ -1,7 +1,7 @@
- // Written in the D programming language.
-
- /**
-- * Compress/decompress data using the $(HTTP www._zlib.net, _zlib library).
-+ * Compress/decompress data using the $(HTTP www.zlib.net, zlib library).
- *
- * Examples:
- *
-@@ -43,12 +43,12 @@
- * References:
- * $(HTTP en.wikipedia.org/wiki/Zlib, Wikipedia)
- *
-- * Copyright: Copyright Digital Mars 2000 - 2011.
-+ * Copyright: Copyright The D Language Foundation 2000 - 2011.
- * License: $(HTTP www.boost.org/LICENSE_1_0.txt, Boost License 1.0).
- * Authors: $(HTTP digitalmars.com, Walter Bright)
-- * Source: $(PHOBOSSRC std/_zlib.d)
-+ * Source: $(PHOBOSSRC std/zlib.d)
- */
--/* Copyright Digital Mars 2000 - 2011.
-+/* Copyright The D Language Foundation 2000 - 2011.
- * Distributed under the Boost Software License, Version 1.0.
- * (See accompanying file LICENSE_1_0.txt or copy at
- * http://www.boost.org/LICENSE_1_0.txt)
-@@ -75,9 +75,9 @@ enum
-
- class ZlibException : Exception
- {
-- this(int errnum)
-- { string msg;
--
-+ private static string getmsg(int errnum) nothrow @nogc pure @safe
-+ {
-+ string msg;
- switch (errnum)
- {
- case Z_STREAM_END: msg = "stream end"; break;
-@@ -90,7 +90,12 @@ class ZlibException : Exception
- case Z_VERSION_ERROR: msg = "version error"; break;
- default: msg = "unknown error"; break;
- }
-- super(msg);
-+ return msg;
-+ }
-+
-+ this(int errnum)
-+ {
-+ super(getmsg(errnum));
- }
- }
-
-@@ -104,7 +109,7 @@ class ZlibException : Exception
- * buf = buffer containing input data
- *
- * Returns:
-- * A $(D uint) checksum for the provided input data and starting checksum
-+ * A `uint` checksum for the provided input data and starting checksum
- *
- * See_Also:
- * $(LINK http://en.wikipedia.org/wiki/Adler-32)
-@@ -147,7 +152,7 @@ uint adler32(uint adler, const(void)[] buf)
- * buf = buffer containing input data
- *
- * Returns:
-- * A $(D uint) checksum for the provided input data and starting checksum
-+ * A `uint` checksum for the provided input data and starting checksum
- *
- * See_Also:
- * $(LINK http://en.wikipedia.org/wiki/Cyclic_redundancy_check)
-@@ -191,13 +196,14 @@ uint crc32(uint crc, const(void)[] buf)
- ubyte[] compress(const(void)[] srcbuf, int level)
- in
- {
-- assert(-1 <= level && level <= 9);
-+ assert(-1 <= level && level <= 9, "Compression level needs to be within [-1, 9].");
- }
--body
-+do
- {
- import core.memory : GC;
-+ import std.array : uninitializedArray;
- auto destlen = srcbuf.length + ((srcbuf.length + 1023) / 1024) + 12;
-- auto destbuf = new ubyte[destlen];
-+ auto destbuf = uninitializedArray!(ubyte[])(destlen);
- auto err = etc.c.zlib.compress2(destbuf.ptr, &destlen, cast(ubyte *) srcbuf.ptr, srcbuf.length, level);
- if (err)
- {
-@@ -276,7 +282,7 @@ void[] uncompress(const(void)[] srcbuf, size_t destlen = 0u, int winbits = 15)
- throw new ZlibException(err);
- }
- }
-- assert(0);
-+ assert(0, "Unreachable code");
- }
-
- @system unittest
-@@ -370,9 +376,9 @@ class Compress
- this(int level, HeaderFormat header = HeaderFormat.deflate)
- in
- {
-- assert(1 <= level && level <= 9);
-+ assert(1 <= level && level <= 9, "Legal compression level are in [1, 9].");
- }
-- body
-+ do
- {
- this.level = level;
- this.gzip = header == HeaderFormat.gzip;
-@@ -406,6 +412,7 @@ class Compress
- const(void)[] compress(const(void)[] buf)
- {
- import core.memory : GC;
-+ import std.array : uninitializedArray;
- int err;
- ubyte[] destbuf;
-
-@@ -420,7 +427,7 @@ class Compress
- inited = 1;
- }
-
-- destbuf = new ubyte[zs.avail_in + buf.length];
-+ destbuf = uninitializedArray!(ubyte[])(zs.avail_in + buf.length);
- zs.next_out = destbuf.ptr;
- zs.avail_out = to!uint(destbuf.length);
-
-@@ -461,9 +468,10 @@ class Compress
- void[] flush(int mode = Z_FINISH)
- in
- {
-- assert(mode == Z_FINISH || mode == Z_SYNC_FLUSH || mode == Z_FULL_FLUSH);
-+ assert(mode == Z_FINISH || mode == Z_SYNC_FLUSH || mode == Z_FULL_FLUSH,
-+ "Mode must be either Z_FINISH, Z_SYNC_FLUSH or Z_FULL_FLUSH.");
- }
-- body
-+ do
- {
- import core.memory : GC;
- ubyte[] destbuf;
-@@ -523,6 +531,7 @@ class UnCompress
- z_stream zs;
- int inited;
- int done;
-+ bool inputEnded;
- size_t destbufsize;
-
- HeaderFormat format;
-@@ -571,16 +580,16 @@ class UnCompress
- const(void)[] uncompress(const(void)[] buf)
- in
- {
-- assert(!done);
-+ assert(!done, "Buffer has been flushed.");
- }
-- body
-+ do
- {
-+ if (inputEnded || !buf.length)
-+ return null;
-+
- import core.memory : GC;
-+ import std.array : uninitializedArray;
- int err;
-- ubyte[] destbuf;
--
-- if (buf.length == 0)
-- return null;
-
- if (!inited)
- {
-@@ -598,26 +607,152 @@ class UnCompress
-
- if (!destbufsize)
- destbufsize = to!uint(buf.length) * 2;
-- destbuf = new ubyte[zs.avail_in * 2 + destbufsize];
-- zs.next_out = destbuf.ptr;
-- zs.avail_out = to!uint(destbuf.length);
--
-- if (zs.avail_in)
-- buf = zs.next_in[0 .. zs.avail_in] ~ cast(ubyte[]) buf;
-+ auto destbuf = uninitializedArray!(ubyte[])(destbufsize);
-+ size_t destFill;
-
- zs.next_in = cast(ubyte*) buf.ptr;
- zs.avail_in = to!uint(buf.length);
-
-- err = inflate(&zs, Z_NO_FLUSH);
-- if (err != Z_STREAM_END && err != Z_OK)
-+ while (true)
- {
-- GC.free(destbuf.ptr);
-- error(err);
-+ auto oldAvailIn = zs.avail_in;
-+
-+ zs.next_out = destbuf[destFill .. $].ptr;
-+ zs.avail_out = to!uint(destbuf.length - destFill);
-+
-+ err = inflate(&zs, Z_NO_FLUSH);
-+ if (err == Z_STREAM_END)
-+ {
-+ inputEnded = true;
-+ break;
-+ }
-+ else if (err != Z_OK)
-+ {
-+ GC.free(destbuf.ptr);
-+ error(err);
-+ }
-+ else if (!zs.avail_in)
-+ break;
-+
-+ /*
-+ According to the zlib manual inflate() stops when either there's
-+ no more data to uncompress or the output buffer is full
-+ So at this point, the output buffer is too full
-+ */
-+
-+ destFill = destbuf.length;
-+
-+ if (destbuf.capacity)
-+ {
-+ if (destbuf.length < destbuf.capacity)
-+ destbuf.length = destbuf.capacity;
-+ else
-+ {
-+ auto newLength = GC.extend(destbuf.ptr, destbufsize, destbufsize);
-+
-+ if (newLength && destbuf.length < destbuf.capacity)
-+ destbuf.length = destbuf.capacity;
-+ else
-+ destbuf.length += destbufsize;
-+ }
-+ }
-+ else
-+ destbuf.length += destbufsize;
- }
-+
- destbuf.length = destbuf.length - zs.avail_out;
- return destbuf;
- }
-
-+ // Test for issues 3191 and 9505
-+ @system unittest
-+ {
-+ import std.algorithm.comparison;
-+ import std.array;
-+ import std.file;
-+ import std.zlib;
-+
-+ // Data that can be easily compressed
-+ ubyte[1024] originalData;
-+
-+ // This should yield a compression ratio of at least 1/2
-+ auto compressedData = compress(originalData, 9);
-+ assert(compressedData.length < originalData.length / 2,
-+ "The compression ratio is too low to accurately test this situation");
-+
-+ auto chunkSize = compressedData.length / 4;
-+ assert(chunkSize < compressedData.length,
-+ "The length of the compressed data is too small to accurately test this situation");
-+
-+ auto decompressor = new UnCompress();
-+ ubyte[originalData.length] uncompressedData;
-+ ubyte[] reusedBuf;
-+ int progress;
-+
-+ reusedBuf.length = chunkSize;
-+
-+ for (int i = 0; i < compressedData.length; i += chunkSize)
-+ {
-+ auto len = min(chunkSize, compressedData.length - i);
-+ // simulate reading from a stream in small chunks
-+ reusedBuf[0 .. len] = compressedData[i .. i + len];
-+
-+ // decompress using same input buffer
-+ auto chunk = decompressor.uncompress(reusedBuf);
-+ assert(progress + chunk.length <= originalData.length,
-+ "The uncompressed result is bigger than the original data");
-+
-+ uncompressedData[progress .. progress + chunk.length] = cast(const ubyte[]) chunk[];
-+ progress += chunk.length;
-+ }
-+
-+ auto chunk = decompressor.flush();
-+ assert(progress + chunk.length <= originalData.length,
-+ "The uncompressed result is bigger than the original data");
-+
-+ uncompressedData[progress .. progress + chunk.length] = cast(const ubyte[]) chunk[];
-+ progress += chunk.length;
-+
-+ assert(progress == originalData.length,
-+ "The uncompressed and the original data sizes differ");
-+ assert(originalData[] == uncompressedData[],
-+ "The uncompressed and the original data differ");
-+ }
-+
-+ @system unittest
-+ {
-+ ubyte[1024] invalidData;
-+ auto decompressor = new UnCompress();
-+
-+ try
-+ {
-+ auto uncompressedData = decompressor.uncompress(invalidData);
-+ }
-+ catch (ZlibException e)
-+ {
-+ assert(e.msg == "data error");
-+ return;
-+ }
-+
-+ assert(false, "Corrupted data didn't result in an error");
-+ }
-+
-+ @system unittest
-+ {
-+ ubyte[2014] originalData = void;
-+ auto compressedData = compress(originalData, 9);
-+
-+ auto decompressor = new UnCompress();
-+ auto uncompressedData = decompressor.uncompress(compressedData ~ cast(ubyte[]) "whatever");
-+
-+ assert(originalData.length == uncompressedData.length,
-+ "The uncompressed and the original data sizes differ");
-+ assert(originalData[] == uncompressedData[],
-+ "The uncompressed and the original data differ");
-+ assert(!decompressor.uncompress("whatever").length,
-+ "Compression continued after the end");
-+ }
-+
- /**
- * Decompress and return any remaining data.
- * The returned data should be appended to that returned by uncompress().
-@@ -626,49 +761,40 @@ class UnCompress
- void[] flush()
- in
- {
-- assert(!done);
-+ assert(!done, "Buffer has been flushed before.");
- }
- out
- {
-- assert(done);
-+ assert(done, "Flushing failed.");
- }
-- body
-+ do
- {
-- import core.memory : GC;
-- ubyte[] extra;
-- ubyte[] destbuf;
-- int err;
--
- done = 1;
-- if (!inited)
-- return null;
-+ return null;
-+ }
-
-- L1:
-- destbuf = new ubyte[zs.avail_in * 2 + 100];
-- zs.next_out = destbuf.ptr;
-- zs.avail_out = to!uint(destbuf.length);
-+ /// Returns true if all input data has been decompressed and no further data
-+ /// can be decompressed (inflate() returned Z_STREAM_END)
-+ @property bool empty() const
-+ {
-+ return inputEnded;
-+ }
-
-- err = etc.c.zlib.inflate(&zs, Z_NO_FLUSH);
-- if (err == Z_OK && zs.avail_out == 0)
-- {
-- extra ~= destbuf;
-- goto L1;
-- }
-- if (err != Z_STREAM_END)
-- {
-- GC.free(destbuf.ptr);
-- if (err == Z_OK)
-- err = Z_BUF_ERROR;
-- error(err);
-- }
-- destbuf = destbuf.ptr[0 .. zs.next_out - destbuf.ptr];
-- err = etc.c.zlib.inflateEnd(&zs);
-- inited = 0;
-- if (err)
-- error(err);
-- if (extra.length)
-- destbuf = extra ~ destbuf;
-- return destbuf;
-+ ///
-+ @system unittest
-+ {
-+ // some random data
-+ ubyte[1024] originalData = void;
-+
-+ // append garbage data (or don't, this works in both cases)
-+ auto compressedData = cast(ubyte[]) compress(originalData) ~ cast(ubyte[]) "whatever";
-+
-+ auto decompressor = new UnCompress();
-+ auto uncompressedData = decompressor.uncompress(compressedData);
-+
-+ assert(uncompressedData[] == originalData[],
-+ "The uncompressed and the original data differ");
-+ assert(decompressor.empty, "The UnCompressor reports not being done");
- }
- }
-
---
-2.35.1
-
diff --git a/main/gcc/0022-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch b/main/gcc/0017-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch
index ff4c489d0cf..96972482c29 100644
--- a/main/gcc/0022-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch
+++ b/main/gcc/0017-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch
@@ -1,22 +1,22 @@
-From 38d27ebdcc5a8bea0807b5d56203f0ea5e16868f Mon Sep 17 00:00:00 2001
+From 857db04f4f1a06e866551b4172fe8f27363f4a92 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
Date: Fri, 21 Aug 2020 07:03:00 +0000
-Subject: [PATCH] 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 and final link happens with -fno-stack-protector.
+Subject: [PATCH 17/35] 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 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.
+ not seem to fully fix the crosstoolchain and bootstrap sequence wrt.
stack-protector flag usage.
---
- gcc/gcc.c | 3 +--
+ gcc/gcc.cc | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
-diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 99314032ec2..6e91767efe8 100644
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -997,8 +997,7 @@ proper position among the other output files. */
+diff --git a/gcc/gcc.cc b/gcc/gcc.cc
+index b5a6f200635..6cbb726599b 100644
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -991,8 +991,7 @@ proper position among the other output files. */
#ifndef LINK_SSP_SPEC
#ifdef TARGET_LIBC_PROVIDES_SSP
@@ -27,5 +27,5 @@ index 99314032ec2..6e91767efe8 100644
#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all" \
"|fstack-protector-strong|fstack-protector-explicit" \
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0017-dlang-use-libucontext-on-mips64.patch b/main/gcc/0017-dlang-use-libucontext-on-mips64.patch
deleted file mode 100644
index ddb813182ae..00000000000
--- a/main/gcc/0017-dlang-use-libucontext-on-mips64.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 26daa73d678b87a6950df1d79d171ba40ecbce15 Mon Sep 17 00:00:00 2001
-From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Thu, 6 Jan 2022 03:18:32 +0000
-Subject: [PATCH] dlang: use libucontext on mips64
-
----
- libphobos/configure.tgt | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/libphobos/configure.tgt b/libphobos/configure.tgt
-index 0643daeb613..b74d9fb3f25 100644
---- a/libphobos/configure.tgt
-+++ b/libphobos/configure.tgt
-@@ -38,6 +38,7 @@ case "${target}" in
- ;;
- mips*-*-linux*)
- LIBPHOBOS_SUPPORTED=yes
-+ LIBDRUNTIME_NEEDS_UCONTEXT=yes
- ;;
- power*-*-freebsd*)
- LIBPHOBOS_SUPPORTED=yes
---
-2.35.1
-
diff --git a/main/gcc/0023-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch b/main/gcc/0018-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch
index 784729e338d..a9612913e00 100644
--- a/main/gcc/0023-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch
+++ b/main/gcc/0018-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch
@@ -1,18 +1,18 @@
-From 0cc2a1befaf343e5ce1cbc15bd247eee812bdf33 Mon Sep 17 00:00:00 2001
+From 5a8347e23ab13912b6edec2c6c6e3a101b017c79 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 07:03:42 +0000
-Subject: [PATCH] DP: Use --push-state/--pop-state for gold as well when
+Subject: [PATCH 18/35] DP: Use --push-state/--pop-state for gold as well when
linking libtsan.
---
- gcc/gcc.c | 16 ++++++++--------
+ gcc/gcc.cc | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
-diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 6e91767efe8..22dbbf85850 100644
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -738,10 +738,10 @@ proper position among the other output files. */
+diff --git a/gcc/gcc.cc b/gcc/gcc.cc
+index 6cbb726599b..59390fd39d6 100644
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -755,10 +755,10 @@ proper position among the other output files. */
#define LIBASAN_SPEC STATIC_LIBASAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
#define LIBASAN_SPEC "%{static-libasan:" LD_STATIC_OPTION "}" \
@@ -25,7 +25,7 @@ index 6e91767efe8..22dbbf85850 100644
STATIC_LIBASAN_LIBS
#else
#define LIBASAN_SPEC "-lasan" STATIC_LIBASAN_LIBS
-@@ -777,10 +777,10 @@ proper position among the other output files. */
+@@ -794,10 +794,10 @@ proper position among the other output files. */
#define LIBTSAN_SPEC STATIC_LIBTSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
#define LIBTSAN_SPEC "%{static-libtsan:" LD_STATIC_OPTION "}" \
@@ -38,7 +38,7 @@ index 6e91767efe8..22dbbf85850 100644
STATIC_LIBTSAN_LIBS
#else
#define LIBTSAN_SPEC "-ltsan" STATIC_LIBTSAN_LIBS
-@@ -798,10 +798,10 @@ proper position among the other output files. */
+@@ -815,10 +815,10 @@ proper position among the other output files. */
#define LIBLSAN_SPEC STATIC_LIBLSAN_LIBS
#elif defined(HAVE_LD_STATIC_DYNAMIC)
#define LIBLSAN_SPEC "%{static-liblsan:" LD_STATIC_OPTION "}" \
@@ -51,7 +51,7 @@ index 6e91767efe8..22dbbf85850 100644
STATIC_LIBLSAN_LIBS
#else
#define LIBLSAN_SPEC "-llsan" STATIC_LIBLSAN_LIBS
-@@ -817,10 +817,10 @@ proper position among the other output files. */
+@@ -834,10 +834,10 @@ proper position among the other output files. */
" %{static-libubsan|static:%:include(libsanitizer.spec)%(link_libubsan)}"
#ifdef HAVE_LD_STATIC_DYNAMIC
#define LIBUBSAN_SPEC "%{static-libubsan:" LD_STATIC_OPTION "}" \
@@ -65,5 +65,5 @@ index 6e91767efe8..22dbbf85850 100644
#else
#define LIBUBSAN_SPEC "-lubsan" STATIC_LIBUBSAN_LIBS
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0018-dlang-libdruntime-define-fcntl.h-constants-for-mips6.patch b/main/gcc/0018-dlang-libdruntime-define-fcntl.h-constants-for-mips6.patch
deleted file mode 100644
index 2ac4cda5981..00000000000
--- a/main/gcc/0018-dlang-libdruntime-define-fcntl.h-constants-for-mips6.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From caeae8288593dbd5a1a6d93508d875eb0d8fdf49 Mon Sep 17 00:00:00 2001
-From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Thu, 6 Jan 2022 03:19:12 +0000
-Subject: [PATCH] dlang: libdruntime: define fcntl.h constants for mips64
-
----
- libphobos/libdruntime/core/sys/posix/fcntl.d | 15 +++++++++++++++
- 1 file changed, 15 insertions(+)
-
-diff --git a/libphobos/libdruntime/core/sys/posix/fcntl.d b/libphobos/libdruntime/core/sys/posix/fcntl.d
-index 59df921ba41..9ee9f943948 100644
---- a/libphobos/libdruntime/core/sys/posix/fcntl.d
-+++ b/libphobos/libdruntime/core/sys/posix/fcntl.d
-@@ -871,6 +871,21 @@ else version (CRuntime_Musl)
- F_SETLKW = 7,
- }
- }
-+ else version (MIPS_Any)
-+ {
-+ enum
-+ {
-+ O_DIRECTORY = 0x010000, // octal 0200000
-+ O_NOFOLLOW = 0x020000, // octal 0400000
-+ O_DIRECT = 0x008000, // octal 0100000
-+ O_LARGEFILE = 0x002000, // octal 0020000
-+ O_TMPFILE = 0x410000, // octal 020200000
-+
-+ F_GETLK = 33,
-+ F_SETLK = 34,
-+ F_SETLKW = 35,
-+ }
-+ }
- else
- static assert(0, "Platform not supported");
-
---
-2.35.1
-
diff --git a/main/gcc/0025-aarch64-disable-multilib-support.patch b/main/gcc/0019-aarch64-disable-multilib-support.patch
index cc388e9ab48..5a8148febe9 100644
--- a/main/gcc/0025-aarch64-disable-multilib-support.patch
+++ b/main/gcc/0019-aarch64-disable-multilib-support.patch
@@ -1,7 +1,7 @@
-From cbd96a32dc2aaa61f6adcb3643e1da21f185f80e Mon Sep 17 00:00:00 2001
+From 41d00a2eb0754acf71958808bd17dbebeb517b84 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 6 Jan 2022 03:12:55 +0000
-Subject: [PATCH] aarch64: disable multilib support
+Subject: [PATCH 19/35] aarch64: disable multilib support
multilib is unsupported on Alpine GCC
---
@@ -9,7 +9,7 @@ multilib is unsupported on Alpine GCC
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux
-index 241b0ef20b6..18e63b34d8b 100644
+index 57bf4100fcd..172894b57ef 100644
--- a/gcc/config/aarch64/t-aarch64-linux
+++ b/gcc/config/aarch64/t-aarch64-linux
@@ -22,7 +22,7 @@ LIB1ASMSRC = aarch64/lib1funcs.asm
@@ -22,5 +22,5 @@ index 241b0ef20b6..18e63b34d8b 100644
MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32)
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0026-s390x-disable-multilib-support.patch b/main/gcc/0020-s390x-disable-multilib-support.patch
index 4f9fe34a39d..ef2f449a4ec 100644
--- a/main/gcc/0026-s390x-disable-multilib-support.patch
+++ b/main/gcc/0020-s390x-disable-multilib-support.patch
@@ -1,7 +1,7 @@
-From e87e415e9a88dbce68ed7b9d8386c3c2d0c0d6b6 Mon Sep 17 00:00:00 2001
+From 85b42bfbba71616831d14360b16998acb28790fd Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 6 Jan 2022 03:13:59 +0000
-Subject: [PATCH] s390x: disable multilib support
+Subject: [PATCH 20/35] s390x: disable multilib support
multilib is not supported on Alpine GCC at present
---
@@ -21,5 +21,5 @@ index cc6ab367072..7f498ee1cdc 100644
+MULTILIB_OSDIRNAMES = m64=../lib
+MULTILIB_OSDIRNAMES+= m32=../lib32
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0027-ppc64-le-disable-multilib-support.patch b/main/gcc/0021-ppc64-le-disable-multilib-support.patch
index c76ff5ff232..dbdc7882841 100644
--- a/main/gcc/0027-ppc64-le-disable-multilib-support.patch
+++ b/main/gcc/0021-ppc64-le-disable-multilib-support.patch
@@ -1,7 +1,7 @@
-From 5c24869c9bc1a552f8bb5c32a8538c6e065a4db8 Mon Sep 17 00:00:00 2001
+From 7b53df284242638e940c0155b6c21e88cea1f55b Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 6 Jan 2022 03:14:33 +0000
-Subject: [PATCH] ppc64[le]: disable multilib support
+Subject: [PATCH 21/35] ppc64[le]: disable multilib support
multilib is not presently supported on Alpine GCC
---
@@ -12,7 +12,7 @@ multilib is not presently supported on Alpine GCC
4 files changed, 10 insertions(+), 8 deletions(-)
diff --git a/gcc/config/rs6000/t-linux b/gcc/config/rs6000/t-linux
-index aeb7440c492..ab14c455d8d 100644
+index 4e371255533..128c75c7d39 100644
--- a/gcc/config/rs6000/t-linux
+++ b/gcc/config/rs6000/t-linux
@@ -2,7 +2,8 @@
@@ -36,7 +36,7 @@ index aeb7440c492..ab14c455d8d 100644
endif
diff --git a/gcc/config/rs6000/t-linux64 b/gcc/config/rs6000/t-linux64
-index e11a118cb5f..df81dc04a32 100644
+index 01a94242308..b3a76379c03 100644
--- a/gcc/config/rs6000/t-linux64
+++ b/gcc/config/rs6000/t-linux64
@@ -28,8 +28,8 @@
@@ -48,7 +48,7 @@ index e11a118cb5f..df81dc04a32 100644
+MULTILIB_OSDIRNAMES := m64=../lib
+MULTILIB_OSDIRNAMES += m32=../lib32
- rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.c
+ rs6000-linux.o: $(srcdir)/config/rs6000/rs6000-linux.cc
$(COMPILE) $<
diff --git a/gcc/config/rs6000/t-linux64bele b/gcc/config/rs6000/t-linux64bele
index 97c1ee6fb4d..08d72639cb6 100644
@@ -77,5 +77,5 @@ index 2e63bdb9fc9..c6e1c5db65d 100644
+MULTILIB_OSDIRNAMES += m32=../lib32
MULTILIB_MATCHES := ${MULTILIB_MATCHES_ENDIAN}
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0028-x86_64-disable-multilib-support.patch b/main/gcc/0022-x86_64-disable-multilib-support.patch
index 868e18f820d..2b2f3e7f36b 100644
--- a/main/gcc/0028-x86_64-disable-multilib-support.patch
+++ b/main/gcc/0022-x86_64-disable-multilib-support.patch
@@ -1,7 +1,7 @@
-From 25927f8106583ee594e7bcdf92dd1387e0fd024c Mon Sep 17 00:00:00 2001
+From 96e7e1e9a899d9bb5fcbdf788bd529d0390c626f Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Thu, 6 Jan 2022 03:14:54 +0000
-Subject: [PATCH] x86_64: disable multilib support
+Subject: [PATCH 22/35] x86_64: disable multilib support
multilib is not presently supported on Alpine GCC
---
@@ -9,7 +9,7 @@ multilib is not presently supported on Alpine GCC
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64
-index d288b093522..2949033aa04 100644
+index 138956b0962..bc03dab874f 100644
--- a/gcc/config/i386/t-linux64
+++ b/gcc/config/i386/t-linux64
@@ -33,6 +33,6 @@
@@ -22,5 +22,5 @@ index d288b093522..2949033aa04 100644
+MULTILIB_OSDIRNAMES+= m32=../lib32
MULTILIB_OSDIRNAMES+= mx32=../libx32$(call if_multiarch,:x86_64-linux-gnux32)
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0029-riscv-disable-multilib-support.patch b/main/gcc/0023-riscv-disable-multilib-support.patch
index 228f66f8f74..b919defc36d 100644
--- a/main/gcc/0029-riscv-disable-multilib-support.patch
+++ b/main/gcc/0023-riscv-disable-multilib-support.patch
@@ -1,7 +1,7 @@
-From 18bcf23cae4069ffe9d9f64e851193d29dd4814f Mon Sep 17 00:00:00 2001
+From b26224acf342eacb33491f6ea0da1faf73d35715 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
Date: Mon, 3 Jan 2022 07:14:48 +0100
-Subject: [PATCH] riscv: disable multilib support
+Subject: [PATCH 23/35] riscv: disable multilib support
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
@@ -38,15 +38,15 @@ library.
[4]: https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/gcc.c;h=d4c8746b0aa322286decf92aa72a12f0a393b655;hb=HEAD#l9122
[5]: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13369
---
- gcc/config/riscv/linux.h | 6 ------
+ gcc/config/riscv/linux.h | 8 --------
gcc/config/riscv/t-linux | 7 +++++--
- 2 files changed, 5 insertions(+), 8 deletions(-)
+ 2 files changed, 5 insertions(+), 10 deletions(-)
diff --git a/gcc/config/riscv/linux.h b/gcc/config/riscv/linux.h
-index ee29979dd34..fe8a82d6702 100644
+index f8c2c351e5a..8d9881eadeb 100644
--- a/gcc/config/riscv/linux.h
+++ b/gcc/config/riscv/linux.h
-@@ -71,9 +71,3 @@ along with GCC; see the file COPYING3. If not see
+@@ -61,11 +61,3 @@ along with GCC; see the file COPYING3. If not see
%{static:-static}}"
#define TARGET_ASM_FILE_END file_end_indicate_exec_stack
@@ -56,6 +56,8 @@ index ee29979dd34..fe8a82d6702 100644
- "/usr/lib" XLEN_SPEC "/" ABI_SPEC "/ " \
- "/lib/ " \
- "/usr/lib/ "
+-
+-#define RISCV_USE_CUSTOMISED_MULTI_LIB select_by_abi
diff --git a/gcc/config/riscv/t-linux b/gcc/config/riscv/t-linux
index 216d2776a18..1a8a863853e 100644
--- a/gcc/config/riscv/t-linux
@@ -70,5 +72,5 @@ index 216d2776a18..1a8a863853e 100644
MULTILIB_OSDIRNAMES := $(patsubst lib%,../lib%,$(MULTILIB_DIRNAMES))
+MULTILIB_MATCHES := march?rv64gc=march?rv64imafdc
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0030-always-build-libgcc_eh.a.patch b/main/gcc/0024-always-build-libgcc_eh.a.patch
index e8a65167d71..6b0514e9808 100644
--- a/main/gcc/0030-always-build-libgcc_eh.a.patch
+++ b/main/gcc/0024-always-build-libgcc_eh.a.patch
@@ -1,7 +1,7 @@
-From a46c8d6cb9428db29fbf8a80609ff449354ce111 Mon Sep 17 00:00:00 2001
+From a72e0613f79f6b6867819317accb7a714031a08c Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 07:05:41 +0000
-Subject: [PATCH] always build libgcc_eh.a
+Subject: [PATCH 24/35] always build libgcc_eh.a
highly inspired by:
http://landley.net/hg/aboriginal/file/7e0747a665ab/sources/patches/gcc-core-libgcceh.patch
@@ -10,10 +10,10 @@ highly inspired by:
1 file changed, 6 insertions(+), 5 deletions(-)
diff --git a/libgcc/Makefile.in b/libgcc/Makefile.in
-index 2c8be561eb5..c557750b1b3 100644
+index 6c4dc79ab71..023cede18a7 100644
--- a/libgcc/Makefile.in
+++ b/libgcc/Makefile.in
-@@ -957,8 +957,9 @@ ifneq ($(LIBUNWIND),)
+@@ -960,8 +960,9 @@ ifneq ($(LIBUNWIND),)
all: libunwind.a
endif
@@ -24,7 +24,7 @@ index 2c8be561eb5..c557750b1b3 100644
ifneq ($(LIBUNWIND),)
all: libunwind$(SHLIB_EXT)
libgcc_s$(SHLIB_EXT): libunwind$(SHLIB_EXT)
-@@ -1160,10 +1161,6 @@ install-libunwind:
+@@ -1163,10 +1164,6 @@ install-libunwind:
install-shared:
$(mkinstalldirs) $(DESTDIR)$(inst_libdir)
@@ -35,7 +35,7 @@ index 2c8be561eb5..c557750b1b3 100644
$(subst @multilib_dir@,$(MULTIDIR),$(subst \
@shlib_base_name@,libgcc_s,$(subst \
@shlib_slibdir_qual@,$(MULTIOSSUBDIR),$(SHLIB_INSTALL))))
-@@ -1180,6 +1177,10 @@ ifeq ($(enable_gcov),yes)
+@@ -1183,6 +1180,10 @@ ifeq ($(enable_gcov),yes)
$(RANLIB) $(DESTDIR)$(inst_libdir)/libgcov.a
endif
@@ -47,5 +47,5 @@ index 2c8be561eb5..c557750b1b3 100644
for file in $$parts; do \
rm -f $(DESTDIR)$(inst_libdir)/$$file; \
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0024-mips64-disable-multilib-support.patch b/main/gcc/0024-mips64-disable-multilib-support.patch
deleted file mode 100644
index 1beb3e0dd6c..00000000000
--- a/main/gcc/0024-mips64-disable-multilib-support.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From feea6f782e83a53487ad633608484dfa3483be1b Mon Sep 17 00:00:00 2001
-From: Nils Andreas Svee <me@lochnair.net>
-Date: Thu, 21 Dec 2017 03:14:33 +0100
-Subject: [PATCH] mips64: disable multilib support
-
-multilib is not supported by Alpine GCC
----
- gcc/config/mips/mips.h | 8 ++++----
- gcc/config/mips/t-linux64 | 6 +++---
- 2 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/gcc/config/mips/mips.h b/gcc/config/mips/mips.h
-index 47aac9d3d61..4ad81059a86 100644
---- a/gcc/config/mips/mips.h
-+++ b/gcc/config/mips/mips.h
-@@ -3425,11 +3425,11 @@ struct GTY(()) machine_function {
- /* If we are *not* using multilibs and the default ABI is not ABI_32 we
- need to change these from /lib and /usr/lib. */
- #if MIPS_ABI_DEFAULT == ABI_N32
--#define STANDARD_STARTFILE_PREFIX_1 "/lib32/"
--#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib32/"
-+#define STANDARD_STARTFILE_PREFIX_1 "/lib/"
-+#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/"
- #elif MIPS_ABI_DEFAULT == ABI_64
--#define STANDARD_STARTFILE_PREFIX_1 "/lib64/"
--#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib64/"
-+#define STANDARD_STARTFILE_PREFIX_1 "/lib/"
-+#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/"
- #endif
-
- /* Load store bonding is not supported by micromips and fix_24k. The
-diff --git a/gcc/config/mips/t-linux64 b/gcc/config/mips/t-linux64
-index 130e1f04707..a64ac2bbb5b 100644
---- a/gcc/config/mips/t-linux64
-+++ b/gcc/config/mips/t-linux64
-@@ -21,6 +21,6 @@ MULTILIB_DIRNAMES = n32 32 64
- MIPS_EL = $(if $(filter %el, $(firstword $(subst -, ,$(target)))),el)
- MIPS_SOFT = $(if $(strip $(filter MASK_SOFT_FLOAT_ABI, $(target_cpu_default)) $(filter soft, $(with_float))),soft)
- MULTILIB_OSDIRNAMES = \
-- ../lib32$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabin32$(MIPS_SOFT)) \
-- ../lib$(call if_multiarch,:mips$(MIPS_EL)-linux-gnu$(MIPS_SOFT)) \
-- ../lib64$(call if_multiarch,:mips64$(MIPS_EL)-linux-gnuabi64$(MIPS_SOFT))
-+ ../lib \
-+ ../lib32 \
-+ ../lib
---
-2.35.1
-
diff --git a/main/gcc/0031-ada-libgnarl-compatibility-for-musl.patch b/main/gcc/0025-ada-libgnarl-compatibility-for-musl.patch
index 7878583f8d6..b7c1c5f2fbf 100644
--- a/main/gcc/0031-ada-libgnarl-compatibility-for-musl.patch
+++ b/main/gcc/0025-ada-libgnarl-compatibility-for-musl.patch
@@ -1,7 +1,7 @@
-From d7064ab25a561bb99c3d0b35663154656013aed2 Mon Sep 17 00:00:00 2001
+From 3ee8cbc1cad261b30d4a7a66d31496d5f243ce2f Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 07:06:30 +0000
-Subject: [PATCH] ada: libgnarl compatibility for musl
+Subject: [PATCH 25/35] ada: libgnarl compatibility for musl
---
gcc/ada/libgnarl/s-osinte__linux.ads | 11 ------
@@ -9,10 +9,10 @@ Subject: [PATCH] ada: libgnarl compatibility for musl
2 files changed, 3 insertions(+), 61 deletions(-)
diff --git a/gcc/ada/libgnarl/s-osinte__linux.ads b/gcc/ada/libgnarl/s-osinte__linux.ads
-index 2272f83d68d..1d78456544a 100644
+index a5e645d334d..32165347071 100644
--- a/gcc/ada/libgnarl/s-osinte__linux.ads
+++ b/gcc/ada/libgnarl/s-osinte__linux.ads
-@@ -401,12 +401,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;
@@ -25,7 +25,7 @@ index 2272f83d68d..1d78456544a 100644
function pthread_rwlock_init
(mutex : access pthread_rwlock_t;
attr : access pthread_rwlockattr_t) return int;
-@@ -468,11 +462,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);
@@ -38,7 +38,7 @@ index 2272f83d68d..1d78456544a 100644
sched_priority : int; -- scheduling priority
end record;
diff --git a/gcc/ada/libgnarl/s-taprop__linux.adb b/gcc/ada/libgnarl/s-taprop__linux.adb
-index 757a6cdfdad..82df94f6a00 100644
+index 821ceef30e4..ae95b58e01e 100644
--- a/gcc/ada/libgnarl/s-taprop__linux.adb
+++ b/gcc/ada/libgnarl/s-taprop__linux.adb
@@ -198,9 +198,6 @@ package body System.Task_Primitives.Operations is
@@ -131,5 +131,5 @@ index 757a6cdfdad..82df94f6a00 100644
pragma Assert (Result in 0 | ENOMEM);
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0032-ada-musl-support-fixes.patch b/main/gcc/0026-ada-musl-support-fixes.patch
index 1035c95f869..ada929350be 100644
--- a/main/gcc/0032-ada-musl-support-fixes.patch
+++ b/main/gcc/0026-ada-musl-support-fixes.patch
@@ -1,7 +1,7 @@
-From 5193de0a6c96fefe0c46fc9a6b8c27623ad85640 Mon Sep 17 00:00:00 2001
+From 3df4788c79c7429b196c7b284af2b4cf9a4b4f8d Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Fri, 21 Aug 2020 07:07:48 +0000
-Subject: [PATCH] ada: musl support fixes
+Subject: [PATCH 26/35] ada: musl support fixes
---
gcc/ada/Makefile.rtl | 10 +++++-----
@@ -11,10 +11,10 @@ Subject: [PATCH] ada: musl support fixes
4 files changed, 32 insertions(+), 30 deletions(-)
diff --git a/gcc/ada/Makefile.rtl b/gcc/ada/Makefile.rtl
-index b5b8b573ea4..6fce40d1e98 100644
+index 96306f8cc9a..090b6770ae5 100644
--- a/gcc/ada/Makefile.rtl
+++ b/gcc/ada/Makefile.rtl
-@@ -1748,7 +1748,7 @@ ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),)
+@@ -1549,7 +1549,7 @@ ifeq ($(strip $(filter-out %86 linux%,$(target_cpu) $(target_os))),)
s-intman.adb<libgnarl/s-intman__posix.adb \
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
$(TRASYM_DWARF_UNIX_PAIRS) \
@@ -23,7 +23,7 @@ index b5b8b573ea4..6fce40d1e98 100644
a-exetim.adb<libgnarl/a-exetim__posix.adb \
a-exetim.ads<libgnarl/a-exetim__default.ads \
s-linux.ads<libgnarl/s-linux.ads \
-@@ -2355,7 +2355,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
+@@ -2174,7 +2174,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
s-tasinf.adb<libgnarl/s-tasinf__linux.adb \
s-taspri.ads<libgnarl/s-taspri__posix.ads \
$(TRASYM_DWARF_UNIX_PAIRS) \
@@ -32,7 +32,7 @@ index b5b8b573ea4..6fce40d1e98 100644
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
system.ads<libgnat/system-linux-ppc.ads
-@@ -2386,7 +2386,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
+@@ -2205,7 +2205,7 @@ ifeq ($(strip $(filter-out powerpc% linux%,$(target_cpu) $(target_os))),)
endif
# ARM linux, GNU eabi
@@ -41,7 +41,7 @@ index b5b8b573ea4..6fce40d1e98 100644
LIBGNAT_TARGET_PAIRS = \
a-intnam.ads<libgnarl/a-intnam__linux.ads \
s-inmaop.adb<libgnarl/s-inmaop__posix.adb \
-@@ -2597,7 +2597,7 @@ ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
+@@ -2420,7 +2420,7 @@ ifeq ($(strip $(filter-out %ia64 linux%,$(target_cpu) $(target_os))),)
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
s-taspri.ads<libgnarl/s-taspri__posix-noaltstack.ads \
$(TRASYM_DWARF_UNIX_PAIRS) \
@@ -50,7 +50,7 @@ index b5b8b573ea4..6fce40d1e98 100644
$(ATOMICS_TARGET_PAIRS) \
$(ATOMICS_BUILTINS_TARGET_PAIRS) \
$(GNATRTL_128BIT_PAIRS) \
-@@ -2700,7 +2700,7 @@ ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),)
+@@ -2524,7 +2524,7 @@ ifeq ($(strip $(filter-out %x86_64 linux%,$(target_cpu) $(target_os))),)
s-tpopsp.adb<libgnarl/s-tpopsp__tls.adb \
s-taspri.ads<libgnarl/s-taspri__posix.ads \
$(TRASYM_DWARF_UNIX_PAIRS) \
@@ -58,9 +58,9 @@ index b5b8b573ea4..6fce40d1e98 100644
+ s-tsmona.adb<libgnat/s-tsmona.adb \
$(ATOMICS_TARGET_PAIRS) \
$(X86_64_TARGET_PAIRS) \
- $(GNATRTL_128BIT_PAIRS) \
+ $(SIMD_PATH_TARGET_PAIRS) \
diff --git a/gcc/ada/adaint.c b/gcc/ada/adaint.c
-index 2e54e69643a..e7e6507e2e0 100644
+index 8522094164e..92b230a462b 100644
--- a/gcc/ada/adaint.c
+++ b/gcc/ada/adaint.c
@@ -91,6 +91,11 @@
@@ -75,7 +75,7 @@ index 2e54e69643a..e7e6507e2e0 100644
#ifdef __PikeOS__
#define __BSD_VISIBLE 1
-@@ -3442,7 +3447,6 @@ __gnat_lwp_self (void)
+@@ -3438,7 +3443,6 @@ __gnat_lwp_self (void)
#endif
#if defined (__linux__)
@@ -83,7 +83,7 @@ index 2e54e69643a..e7e6507e2e0 100644
/* glibc versions earlier than 2.7 do not define the routines to handle
dynamically allocated CPU sets. For these targets, we use the static
-@@ -3452,7 +3456,7 @@ __gnat_lwp_self (void)
+@@ -3448,7 +3452,7 @@ __gnat_lwp_self (void)
/* Dynamic cpu sets */
@@ -92,7 +92,7 @@ index 2e54e69643a..e7e6507e2e0 100644
__gnat_cpu_alloc (size_t count)
{
return CPU_ALLOC (count);
-@@ -3465,33 +3469,33 @@ __gnat_cpu_alloc_size (size_t count)
+@@ -3461,33 +3465,33 @@ __gnat_cpu_alloc_size (size_t count)
}
void
@@ -134,7 +134,7 @@ index 2e54e69643a..e7e6507e2e0 100644
}
size_t
-@@ -3501,23 +3505,23 @@ __gnat_cpu_alloc_size (size_t count ATTRIBUTE_UNUSED)
+@@ -3497,23 +3501,23 @@ __gnat_cpu_alloc_size (size_t count ATTRIBUTE_UNUSED)
}
void
@@ -164,10 +164,10 @@ index 2e54e69643a..e7e6507e2e0 100644
#endif /* !CPU_ALLOC */
#endif /* __linux__ */
diff --git a/gcc/ada/adaint.h b/gcc/ada/adaint.h
-index 85997b9ba68..fd10e5b5589 100644
+index 987432c9307..4d782f07de9 100644
--- a/gcc/ada/adaint.h
+++ b/gcc/ada/adaint.h
-@@ -325,13 +325,11 @@ extern void *__gnat_lwp_self (void);
+@@ -319,13 +319,11 @@ extern void *__gnat_lwp_self (void);
/* Routines for interface to required CPU set primitives */
@@ -186,10 +186,10 @@ index 85997b9ba68..fd10e5b5589 100644
#if defined (_WIN32)
diff --git a/gcc/ada/terminals.c b/gcc/ada/terminals.c
-index ec9db3a6a4c..6f92e50dd67 100644
+index c0ee4a16bb1..ed796a48c1b 100644
--- a/gcc/ada/terminals.c
+++ b/gcc/ada/terminals.c
-@@ -1132,7 +1132,7 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
+@@ -1127,7 +1127,7 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
/* 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)
@@ -198,7 +198,7 @@ index ec9db3a6a4c..6f92e50dd67 100644
3- openpty (USE_OPENPTY)
When using the cloning device method, the macro USE_CLONE_DEVICE should
-@@ -1146,7 +1146,7 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
+@@ -1141,7 +1141,7 @@ __gnat_setup_winsize (void *desc ATTRIBUTE_UNUSED,
#if defined (__APPLE__) || defined (BSD)
#define USE_OPENPTY
#elif defined (__linux__)
@@ -207,7 +207,7 @@ index ec9db3a6a4c..6f92e50dd67 100644
#elif defined (__sun__)
#define USE_CLONE_DEVICE "/dev/ptmx"
#elif defined (_AIX)
-@@ -1195,8 +1195,8 @@ allocate_pty_desc (pty_desc **desc) {
+@@ -1190,8 +1190,8 @@ allocate_pty_desc (pty_desc **desc) {
int master_fd = -1;
char *slave_name = NULL;
@@ -219,5 +219,5 @@ index ec9db3a6a4c..6f92e50dd67 100644
status = openpty (&master_fd, &slave_fd, NULL, NULL, NULL);
#elif defined (USE_CLONE_DEVICE)
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0039-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch b/main/gcc/0027-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
index 495fcecefc6..fcf74ee38d7 100644
--- a/main/gcc/0039-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
+++ b/main/gcc/0027-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
@@ -1,7 +1,7 @@
-From 52ce9c86c0c89ae45e0d08cc232682e1811aa8f2 Mon Sep 17 00:00:00 2001
+From 7b50823d8a4131e5a55d2499a0f5a52b3d91eed2 Mon Sep 17 00:00:00 2001
From: Drew DeVault <sir@cmpwn.com>
-Date: Wed, 9 Dec 2020 16:07:26 +0000
-Subject: [PATCH] configure: Add --enable-autolink-libatomic, use in
+Date: Wed, 9 Dec 2020 07:42:06 +0000
+Subject: [PATCH 27/35] configure: Add --enable-autolink-libatomic, use in
LINK_GCC_C_SEQUENCE_SPEC [PR81358]
This fixes issues with RISC-V.
@@ -9,19 +9,19 @@ This fixes issues with RISC-V.
Makefile.in | 1 +
gcc/config.in | 6 ++++++
gcc/config/gnu-user.h | 12 +++++++++++-
- gcc/configure | 34 +++++++++++++++++++++++++++++++---
- gcc/configure.ac | 22 +++++++++++++++++++++-
+ gcc/configure | 31 ++++++++++++++++++++++++++++++-
+ gcc/configure.ac | 21 +++++++++++++++++++++
gcc/doc/install.texi | 8 ++++++++
gcc/doc/tm.texi | 8 +++++++-
gcc/doc/tm.texi.in | 8 +++++++-
- gcc/gcc.c | 12 +++++++++++-
- 9 files changed, 103 insertions(+), 8 deletions(-)
+ gcc/gcc.cc | 12 +++++++++++-
+ 9 files changed, 102 insertions(+), 5 deletions(-)
diff --git a/Makefile.in b/Makefile.in
-index f97db1ef569..7e577ed3dbb 100644
+index 6ff2b3f9925..394b105b271 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -222,6 +222,7 @@ HOST_EXPORTS = \
+@@ -235,6 +235,7 @@ HOST_EXPORTS = \
RANLIB_FOR_TARGET="$(RANLIB_FOR_TARGET)"; export RANLIB_FOR_TARGET; \
READELF_FOR_TARGET="$(READELF_FOR_TARGET)"; export READELF_FOR_TARGET; \
TOPLEVEL_CONFIGURE_ARGUMENTS="$(TOPLEVEL_CONFIGURE_ARGUMENTS)"; export TOPLEVEL_CONFIGURE_ARGUMENTS; \
@@ -30,10 +30,10 @@ index f97db1ef569..7e577ed3dbb 100644
GMPLIBS="$(HOST_GMPLIBS)"; export GMPLIBS; \
GMPINC="$(HOST_GMPINC)"; export GMPINC; \
diff --git a/gcc/config.in b/gcc/config.in
-index 059c818c895..2a560417440 100644
+index 0679fbbf4c6..ee81139b385 100644
--- a/gcc/config.in
+++ b/gcc/config.in
-@@ -106,6 +106,12 @@
+@@ -118,6 +118,12 @@
#endif
@@ -47,7 +47,7 @@ index 059c818c895..2a560417440 100644
format instead of DPD */
#ifndef USED_FOR_TARGET
diff --git a/gcc/config/gnu-user.h b/gcc/config/gnu-user.h
-index 902378e1bad..daf7727a01a 100644
+index b26b17f2f2a..3f64ea46180 100644
--- a/gcc/config/gnu-user.h
+++ b/gcc/config/gnu-user.h
@@ -109,8 +109,18 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
@@ -71,10 +71,10 @@ index 902378e1bad..daf7727a01a 100644
#undef LINK_GCC_C_SEQUENCE_SPEC
diff --git a/gcc/configure b/gcc/configure
-index 592e81e40f6..8672298f23f 100755
+index e59cbee1767..787c35d4e25 100755
--- a/gcc/configure
+++ b/gcc/configure
-@@ -978,6 +978,7 @@ with_changes_root_url
+@@ -984,6 +984,7 @@ with_changes_root_url
enable_languages
with_multilib_list
with_multilib_generator
@@ -82,7 +82,7 @@ index 592e81e40f6..8672298f23f 100755
with_zstd
with_zstd_include
with_zstd_lib
-@@ -1707,6 +1708,9 @@ Optional Features:
+@@ -1713,6 +1714,9 @@ Optional Features:
--disable-shared don't provide a shared libgcc
--disable-gcov don't provide libgcov and related host tools
--enable-languages=LIST specify which front-ends to build
@@ -92,7 +92,7 @@ index 592e81e40f6..8672298f23f 100755
--disable-rpath do not hardcode runtime library paths
--enable-sjlj-exceptions
arrange to use setjmp/longjmp exception handling
-@@ -8070,7 +8074,6 @@ else
+@@ -8329,7 +8333,6 @@ else
fi
@@ -100,7 +100,7 @@ index 592e81e40f6..8672298f23f 100755
# Check whether --with-multilib-generator was given.
if test "${with_multilib_generator+set}" = set; then :
withval=$with_multilib_generator; :
-@@ -8078,6 +8081,32 @@ else
+@@ -8337,6 +8340,32 @@ else
with_multilib_generator=default
fi
@@ -133,25 +133,11 @@ index 592e81e40f6..8672298f23f 100755
# -------------------------
# Checks for other programs
-@@ -19501,7 +19530,7 @@ else
- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
- lt_status=$lt_dlunknown
- cat > conftest.$ac_ext <<_LT_EOF
--#line 19501 "configure"
-+#line 19158 "configure"
- #include "confdefs.h"
-
- #if HAVE_DLFCN_H
-@@ -34068,4 +34097,3 @@ if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
- $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
- fi
-
--
diff --git a/gcc/configure.ac b/gcc/configure.ac
-index 1577529ffb7..e96691f69ba 100644
+index 57268319de1..56bcaa87620 100644
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
-@@ -1149,6 +1149,27 @@ AC_ARG_WITH(multilib-generator,
+@@ -1199,6 +1199,27 @@ AC_ARG_WITH(multilib-generator,
:,
with_multilib_generator=default)
@@ -179,16 +165,11 @@ index 1577529ffb7..e96691f69ba 100644
# -------------------------
# Checks for other programs
# -------------------------
-@@ -7729,4 +7750,3 @@ done
- ],
- [subdirs='$subdirs'])
- AC_OUTPUT
--
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
-index 4c38244ae58..4a544e6a4ee 100644
+index b30d3691fe6..ccc8e5dbb00 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
-@@ -2213,6 +2213,14 @@ files, but these changed header paths may conflict with some compilation
+@@ -2377,6 +2377,14 @@ files, but these changed header paths may conflict with some compilation
environments. Enabled by default, and may be disabled using
@option{--disable-canonical-system-headers}.
@@ -204,7 +185,7 @@ index 4c38244ae58..4a544e6a4ee 100644
Tell GCC that when the GNU C Library (glibc) is used on the target it
will be version @var{major}.@var{minor} or later. Normally this can
diff --git a/gcc/doc/tm.texi b/gcc/doc/tm.texi
-index b370bc76b25..acc78273983 100644
+index a660e33739b..6183c407a2b 100644
--- a/gcc/doc/tm.texi
+++ b/gcc/doc/tm.texi
@@ -381,7 +381,13 @@ the argument @option{-lgcc} to tell the linker to do the search.
@@ -223,7 +204,7 @@ index b370bc76b25..acc78273983 100644
@defmac POST_LINK_SPEC
diff --git a/gcc/doc/tm.texi.in b/gcc/doc/tm.texi.in
-index 2974dae2701..80e003a38ce 100644
+index f7ab5d48a63..281540aba68 100644
--- a/gcc/doc/tm.texi.in
+++ b/gcc/doc/tm.texi.in
@@ -381,7 +381,13 @@ the argument @option{-lgcc} to tell the linker to do the search.
@@ -241,11 +222,11 @@ index 2974dae2701..80e003a38ce 100644
@end defmac
@defmac POST_LINK_SPEC
-diff --git a/gcc/gcc.c b/gcc/gcc.c
-index 22dbbf85850..90aa576037a 100644
---- a/gcc/gcc.c
-+++ b/gcc/gcc.c
-@@ -980,13 +980,23 @@ proper position among the other output files. */
+diff --git a/gcc/gcc.cc b/gcc/gcc.cc
+index 59390fd39d6..dae1dd4cf79 100644
+--- a/gcc/gcc.cc
++++ b/gcc/gcc.cc
+@@ -974,13 +974,23 @@ proper position among the other output files. */
# define ASM_DEBUG_OPTION_SPEC ""
#endif
@@ -271,5 +252,5 @@ index 22dbbf85850..90aa576037a 100644
#ifdef ENABLE_DEFAULT_SSP
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0040-configure-fix-detection-of-atomic-builtins-in-libato.patch b/main/gcc/0028-configure-fix-detection-of-atomic-builtins-in-libato.patch
index c97f0b616ae..f92fc7bf4e2 100644
--- a/main/gcc/0040-configure-fix-detection-of-atomic-builtins-in-libato.patch
+++ b/main/gcc/0028-configure-fix-detection-of-atomic-builtins-in-libato.patch
@@ -1,8 +1,8 @@
-From 5010fa237897bca92291ba8835123125d4af933a Mon Sep 17 00:00:00 2001
+From 5bbbd320e54ab5341cfba83e8af98685131caba1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
-Date: Sun, 29 Aug 2021 09:45:27 +0200
-Subject: [PATCH] configure: fix detection of atomic builtins in libatomic
- configure script
+Date: Sun, 29 Aug 2021 12:23:34 +0200
+Subject: [PATCH 28/35] configure: fix detection of atomic builtins in
+ libatomic configure script
Alpine's --enable-autolink-libatomic (which is enabled for riscv64 by
default) causes the libatomic configure script to incorrectly detect
@@ -22,7 +22,7 @@ See:
1 file changed, 20 insertions(+)
diff --git a/libatomic/configure.tgt b/libatomic/configure.tgt
-index 670b0d72cfe..38c2cd9345f 100644
+index a92ae9e8309..90b579ca4d8 100644
--- a/libatomic/configure.tgt
+++ b/libatomic/configure.tgt
@@ -30,6 +30,26 @@
@@ -53,5 +53,5 @@ index 670b0d72cfe..38c2cd9345f 100644
alpha*)
# fenv.c needs this option to generate inexact exceptions.
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0029-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch b/main/gcc/0029-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
new file mode 100644
index 00000000000..4418cd5b5a7
--- /dev/null
+++ b/main/gcc/0029-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
@@ -0,0 +1,27 @@
+From 430c701a3cefbe09a9c7c8a2f5bbe957f9b2ecb2 Mon Sep 17 00:00:00 2001
+From: Samuel Holland <samuel@sholland.org>
+Date: Thu, 30 Jun 2022 16:44:51 +0000
+Subject: [PATCH 29/35] libstdc++: do not throw exceptions for non-C locales on
+ musl targets
+
+---
+ libstdc++-v3/config/locale/generic/c_locale.cc | 3 ---
+ 1 file changed, 3 deletions(-)
+
+diff --git a/libstdc++-v3/config/locale/generic/c_locale.cc b/libstdc++-v3/config/locale/generic/c_locale.cc
+index 8849d78fdfa..aff467f98fe 100644
+--- a/libstdc++-v3/config/locale/generic/c_locale.cc
++++ b/libstdc++-v3/config/locale/generic/c_locale.cc
+@@ -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;
+- if (strcmp(__s, "C"))
+- __throw_runtime_error(__N("locale::facet::_S_create_c_locale "
+- "name not valid"));
+ }
+
+ void
+--
+2.41.0
+
diff --git a/main/gcc/0048-gdc-unconditionally-link-libgphobos-against-libucont.patch b/main/gcc/0030-gdc-unconditionally-link-libgphobos-against-libucont.patch
index 38531014a65..6c5bf838db9 100644
--- a/main/gcc/0048-gdc-unconditionally-link-libgphobos-against-libucont.patch
+++ b/main/gcc/0030-gdc-unconditionally-link-libgphobos-against-libucont.patch
@@ -1,7 +1,8 @@
-From e74e2946a534fbac7e8ec6c687c407761daef49a Mon Sep 17 00:00:00 2001
+From 05f0043755f341a2ff4f845379327076b3e0203d Mon Sep 17 00:00:00 2001
From: Mathias LANG <pro.mathias.lang@gmail.com>
-Date: Mon, 17 Jan 2022 16:31:09 +0000
-Subject: [PATCH] gdc: unconditionally link libgphobos against libucontext
+Date: Mon, 17 Jan 2022 03:49:21 +0000
+Subject: [PATCH 30/35] gdc: unconditionally link libgphobos against
+ libucontext
ref: alpine/aports#13422
---
@@ -9,10 +10,10 @@ ref: alpine/aports#13422
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.in b/Makefile.in
-index 7e577ed3dbb..da40b61a8c5 100644
+index 394b105b271..bc4a77fc300 100644
--- a/Makefile.in
+++ b/Makefile.in
-@@ -51248,7 +51248,7 @@ configure-target-libphobos:
+@@ -52809,7 +52809,7 @@ configure-target-libphobos:
esac; \
module_srcdir=libphobos; \
rm -f no-such-file || : ; \
@@ -22,5 +23,5 @@ index 7e577ed3dbb..da40b61a8c5 100644
--srcdir=$${topdir}/$$module_srcdir \
$(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
--
-2.35.1
+2.41.0
diff --git a/main/gcc/0031-druntime-link-against-libucontext-on-all-platforms.patch b/main/gcc/0031-druntime-link-against-libucontext-on-all-platforms.patch
new file mode 100644
index 00000000000..eb7aa6d2146
--- /dev/null
+++ b/main/gcc/0031-druntime-link-against-libucontext-on-all-platforms.patch
@@ -0,0 +1,54 @@
+From 0b89a74fbf77ae6917f043c79cd03db0d6ef0212 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
+Date: Sat, 16 Jul 2022 09:21:11 +0200
+Subject: [PATCH 31/35] druntime: link against libucontext on all platforms
+
+On musl-based Linux distributions, swapcontext etc. are not provided by
+musl but instead by libucontext. Hence, we _always_ need to link against
+an external library for these functions.
+---
+ libphobos/configure | 8 --------
+ libphobos/m4/druntime/libraries.m4 | 8 --------
+ 2 files changed, 16 deletions(-)
+
+diff --git a/libphobos/configure b/libphobos/configure
+index 925c53c5f5e..60c2a0c11c6 100755
+--- a/libphobos/configure
++++ b/libphobos/configure
+@@ -15216,14 +15216,6 @@ fi
+ # Keep this in sync with core/thread.d, set druntime_fiber_asm_external to
+ # "yes" for targets that have 'version = AsmExternal'.
+ druntime_fiber_asm_external=no
+- case "$target_cpu" in
+- aarch64* | \
+- arm* | \
+- i[34567]86|x86_64 | \
+- powerpc)
+- druntime_fiber_asm_external=yes
+- ;;
+- esac
+ if test "$druntime_fiber_asm_external" = no; then
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing swapcontext" >&5
+ $as_echo_n "checking for library containing swapcontext... " >&6; }
+diff --git a/libphobos/m4/druntime/libraries.m4 b/libphobos/m4/druntime/libraries.m4
+index 45a56f6f76a..fef6e890b1e 100644
+--- a/libphobos/m4/druntime/libraries.m4
++++ b/libphobos/m4/druntime/libraries.m4
+@@ -220,14 +220,6 @@ AC_DEFUN([DRUNTIME_LIBRARIES_UCONTEXT],
+ # Keep this in sync with core/thread.d, set druntime_fiber_asm_external to
+ # "yes" for targets that have 'version = AsmExternal'.
+ druntime_fiber_asm_external=no
+- case "$target_cpu" in
+- aarch64* | \
+- arm* | \
+- i[[34567]]86|x86_64 | \
+- powerpc)
+- druntime_fiber_asm_external=yes
+- ;;
+- esac
+ if test "$druntime_fiber_asm_external" = no; then
+ AC_SEARCH_LIBS([swapcontext], [c ucontext], [],
+ AC_MSG_ERROR([swapcontext required but not found]))
+--
+2.41.0
+
diff --git a/main/gcc/0032-libgnat-time_t-is-always-64-bit-on-musl-libc.patch b/main/gcc/0032-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
new file mode 100644
index 00000000000..e1679a8e57f
--- /dev/null
+++ b/main/gcc/0032-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
@@ -0,0 +1,25 @@
+From eeec799f43fbd0bfffc13594585b39d708972511 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
+Date: Tue, 19 Jul 2022 14:54:07 +0200
+Subject: [PATCH 32/35] libgnat: time_t is always 64-bit on musl libc
+
+---
+ gcc/ada/libgnat/s-parame.ads | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/gcc/ada/libgnat/s-parame.ads b/gcc/ada/libgnat/s-parame.ads
+index 3d6e345a1ba..cfe0b4d3ca6 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
+
+ ----------------------------------------------
+--
+2.41.0
+
diff --git a/main/gcc/0033-gcc-go-Fix-handling-of-signal-34-on-musl.patch b/main/gcc/0033-gcc-go-Fix-handling-of-signal-34-on-musl.patch
deleted file mode 100644
index 43f849b96b7..00000000000
--- a/main/gcc/0033-gcc-go-Fix-handling-of-signal-34-on-musl.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 8a42d93247c375f199f3079538d659f95b9ff2a0 Mon Sep 17 00:00:00 2001
-From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
-Date: Sun, 30 Aug 2020 17:59:45 +0200
-Subject: [PATCH] gcc-go: Fix handling of signal 34 on musl
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Taken from Adélie Linux.
----
- libgo/mksigtab.sh | 6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/libgo/mksigtab.sh b/libgo/mksigtab.sh
-index 11e4ec436bd..fe866eacb27 100644
---- a/libgo/mksigtab.sh
-+++ b/libgo/mksigtab.sh
-@@ -82,7 +82,7 @@ checksig _SIGPWR '{_SigNotify, "SIGPWR: power failure restart"}'
- checksig _SIGEMT '{_SigThrow, "SIGEMT: emulate instruction executed"}'
- checksig _SIGINFO '{_SigNotify, "SIGINFO: status request from keyboard"}'
- checksig _SIGTHR '{_SigNotify, "SIGTHR: reserved"}'
--checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
-+#checksig _SIGPOLL '{_SigNotify, "SIGPOLL: pollable event occurred"}'
- 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"}'
-@@ -95,10 +95,12 @@ checksig _SIGLOST ' {_SigNotify, "SIGLOST: resource lost (Sun); server died (G
-
- # 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
---
-2.35.1
-
diff --git a/main/gcc/0033-libphobos-do-not-use-LFS64-symbols.patch b/main/gcc/0033-libphobos-do-not-use-LFS64-symbols.patch
new file mode 100644
index 00000000000..138bd64b762
--- /dev/null
+++ b/main/gcc/0033-libphobos-do-not-use-LFS64-symbols.patch
@@ -0,0 +1,44 @@
+From b71d21b87e6946c763edad5e420bf22d8a453077 Mon Sep 17 00:00:00 2001
+From: psykose <alice@ayaya.dev>
+Date: Mon, 29 May 2023 15:33:11 +0000
+Subject: [PATCH 33/35] libphobos: do not use LFS64 symbols
+
+musl does not have these since 1.2.4, we can't use the compat interfaces.
+---
+ libphobos/libdruntime/core/sys/posix/config.d | 2 +-
+ libphobos/libdruntime/core/sys/posix/sys/mman.d | 6 +-----
+ 2 files changed, 2 insertions(+), 6 deletions(-)
+
+diff --git a/libphobos/libdruntime/core/sys/posix/config.d b/libphobos/libdruntime/core/sys/posix/config.d
+index ae6752f220e..6b80d1ff0e6 100644
+--- a/libphobos/libdruntime/core/sys/posix/config.d
++++ b/libphobos/libdruntime/core/sys/posix/config.d
+@@ -88,7 +88,7 @@ else version (CRuntime_Musl)
+ enum __REDIRECT = false;
+
+ // Those three are irrelevant for Musl as it always uses 64 bits off_t
+- enum __USE_FILE_OFFSET64 = _FILE_OFFSET_BITS == 64;
++ enum __USE_FILE_OFFSET64 = false;
+ enum __USE_LARGEFILE = __USE_FILE_OFFSET64 && !__REDIRECT;
+ enum __USE_LARGEFILE64 = __USE_FILE_OFFSET64 && !__REDIRECT;
+
+diff --git a/libphobos/libdruntime/core/sys/posix/sys/mman.d b/libphobos/libdruntime/core/sys/posix/sys/mman.d
+index 0d3d517d69a..323aa0af72d 100644
+--- a/libphobos/libdruntime/core/sys/posix/sys/mman.d
++++ b/libphobos/libdruntime/core/sys/posix/sys/mman.d
+@@ -293,11 +293,7 @@ else version (CRuntime_Bionic)
+ }
+ else version (CRuntime_Musl)
+ {
+- static if (__USE_LARGEFILE64) void* mmap64(void*, size_t, int, int, int, off_t);
+- static if (__USE_FILE_OFFSET64)
+- alias mmap = mmap64;
+- else
+- void* mmap(void*, size_t, int, int, int, off_t);
++ void* mmap(void*, size_t, int, int, int, off_t);
+ int munmap(void*, size_t);
+ }
+ else version (CRuntime_UClibc)
+--
+2.41.0
+
diff --git a/main/gcc/0034-There-are-more-than-one-st_-a-m-c-tim-fields-in-stru.patch b/main/gcc/0034-There-are-more-than-one-st_-a-m-c-tim-fields-in-stru.patch
deleted file mode 100644
index 7ee6c7c9af4..00000000000
--- a/main/gcc/0034-There-are-more-than-one-st_-a-m-c-tim-fields-in-stru.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From c205f79c18add13247a06cfd843f5eb44c4c3cb4 Mon Sep 17 00:00:00 2001
-From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Thu, 25 Nov 2021 01:47:03 +0000
-Subject: [PATCH] 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.
----
- libgo/mksysinfo.sh | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
-index 0c52ea5d71a..6fef104cc1c 100755
---- a/libgo/mksysinfo.sh
-+++ b/libgo/mksysinfo.sh
-@@ -510,7 +510,7 @@ fi
-
- # For historical reasons Go uses the suffix "timespec" instead of "tim" for
- # stat_t's time fields on NetBSD.
--st_times='-e s/st_atim/Atim/ -e s/st_mtim/Mtim/ -e s/st_ctim/Ctim/'
-+st_times='-e s/st_atim/Atim/g -e s/st_mtim/Mtim/g -e s/st_ctim/Ctim/g'
- if test "${GOOS}" = "netbsd"; then
- st_times='-e s/st_atim/Atimespec/ -e s/st_mtim/Mtimespec/ -e s/st_ctim/Ctimespec/'
- fi
---
-2.35.1
-
diff --git a/main/gcc/0034-libgo-fix-lfs64-use.patch b/main/gcc/0034-libgo-fix-lfs64-use.patch
new file mode 100644
index 00000000000..cf47858d6ab
--- /dev/null
+++ b/main/gcc/0034-libgo-fix-lfs64-use.patch
@@ -0,0 +1,195 @@
+From 4bfcb35bc43d3e3b7510620362d7c28d9e4c17ca Mon Sep 17 00:00:00 2001
+From: psykose <alice@ayaya.dev>
+Date: Mon, 10 Jul 2023 23:23:29 +0000
+Subject: [PATCH 34/35] libgo: fix lfs64 use
+
+---
+ .../go/internal/syscall/unix/at_largefile.go | 2 +-
+ libgo/go/os/dir_largefile.go | 2 +-
+ libgo/go/syscall/libcall_glibc.go | 2 +-
+ libgo/go/syscall/libcall_linux.go | 4 +--
+ libgo/go/syscall/libcall_posix_largefile.go | 26 +++++++++----------
+ libgo/runtime/go-varargs.c | 2 +-
+ libgo/sysinfo.c | 9 +++----
+ 7 files changed, 22 insertions(+), 25 deletions(-)
+
+diff --git a/libgo/go/internal/syscall/unix/at_largefile.go b/libgo/go/internal/syscall/unix/at_largefile.go
+index 82e0dcfd074..16151ecad1b 100644
+--- a/libgo/go/internal/syscall/unix/at_largefile.go
++++ b/libgo/go/internal/syscall/unix/at_largefile.go
+@@ -10,5 +10,5 @@ import (
+ "syscall"
+ )
+
+-//extern fstatat64
++//extern fstatat
+ func fstatat(int32, *byte, *syscall.Stat_t, int32) int32
+diff --git a/libgo/go/os/dir_largefile.go b/libgo/go/os/dir_largefile.go
+index 1fc5ee0771f..0c6dffe1a75 100644
+--- a/libgo/go/os/dir_largefile.go
++++ b/libgo/go/os/dir_largefile.go
+@@ -11,5 +11,5 @@ package os
+
+ import "syscall"
+
+-//extern readdir64
++//extern readdir
+ func libc_readdir(*syscall.DIR) *syscall.Dirent
+diff --git a/libgo/go/syscall/libcall_glibc.go b/libgo/go/syscall/libcall_glibc.go
+index 5c1ec483c75..5a1245ed44b 100644
+--- a/libgo/go/syscall/libcall_glibc.go
++++ b/libgo/go/syscall/libcall_glibc.go
+@@ -114,7 +114,7 @@ func Pipe2(p []int, flags int) (err error) {
+ }
+
+ //sys sendfile(outfd int, infd int, offset *Offset_t, count int) (written int, err error)
+-//sendfile64(outfd _C_int, infd _C_int, offset *Offset_t, count Size_t) Ssize_t
++//sendfile(outfd _C_int, infd _C_int, offset *Offset_t, count Size_t) Ssize_t
+
+ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err error) {
+ if race.Enabled {
+diff --git a/libgo/go/syscall/libcall_linux.go b/libgo/go/syscall/libcall_linux.go
+index 03ca7261b59..ad21fd0b3ac 100644
+--- a/libgo/go/syscall/libcall_linux.go
++++ b/libgo/go/syscall/libcall_linux.go
+@@ -158,7 +158,7 @@ func Reboot(cmd int) (err error) {
+ //adjtimex(buf *Timex) _C_int
+
+ //sys Fstatfs(fd int, buf *Statfs_t) (err error)
+-//fstatfs64(fd _C_int, buf *Statfs_t) _C_int
++//fstatfs(fd _C_int, buf *Statfs_t) _C_int
+
+ func Gettid() (tid int) {
+ r1, _, _ := Syscall(SYS_GETTID, 0, 0, 0)
+@@ -245,7 +245,7 @@ func Splice(rfd int, roff *int64, wfd int, woff *int64, len int, flags int) (n i
+ }
+
+ //sys Statfs(path string, buf *Statfs_t) (err error)
+-//statfs64(path *byte, buf *Statfs_t) _C_int
++//statfs(path *byte, buf *Statfs_t) _C_int
+
+ //sysnb Sysinfo(info *Sysinfo_t) (err error)
+ //sysinfo(info *Sysinfo_t) _C_int
+diff --git a/libgo/go/syscall/libcall_posix_largefile.go b/libgo/go/syscall/libcall_posix_largefile.go
+index f90055bb29a..334212f0af1 100644
+--- a/libgo/go/syscall/libcall_posix_largefile.go
++++ b/libgo/go/syscall/libcall_posix_largefile.go
+@@ -10,40 +10,40 @@
+ package syscall
+
+ //sys Creat(path string, mode uint32) (fd int, err error)
+-//creat64(path *byte, mode Mode_t) _C_int
++//creat(path *byte, mode Mode_t) _C_int
+
+ //sys Fstat(fd int, stat *Stat_t) (err error)
+-//fstat64(fd _C_int, stat *Stat_t) _C_int
++//fstat(fd _C_int, stat *Stat_t) _C_int
+
+ //sys Ftruncate(fd int, length int64) (err error)
+-//ftruncate64(fd _C_int, length Offset_t) _C_int
++//ftruncate(fd _C_int, length Offset_t) _C_int
+
+ //sysnb Getrlimit(resource int, rlim *Rlimit) (err error)
+-//getrlimit64(resource _C_int, rlim *Rlimit) _C_int
++//getrlimit(resource _C_int, rlim *Rlimit) _C_int
+
+ //sys Lstat(path string, stat *Stat_t) (err error)
+-//lstat64(path *byte, stat *Stat_t) _C_int
++//lstat(path *byte, stat *Stat_t) _C_int
+
+ //sys mmap(addr uintptr, length uintptr, prot int, flags int, fd int, offset int64) (xaddr uintptr, err error)
+-//mmap64(addr *byte, length Size_t, prot _C_int, flags _C_int, fd _C_int, offset Offset_t) *byte
++//mmap(addr *byte, length Size_t, prot _C_int, flags _C_int, fd _C_int, offset Offset_t) *byte
+
+ //sys Open(path string, mode int, perm uint32) (fd int, err error)
+-//__go_open64(path *byte, mode _C_int, perm Mode_t) _C_int
++//__go_open(path *byte, mode _C_int, perm Mode_t) _C_int
+
+ //sys Pread(fd int, p []byte, offset int64) (n int, err error)
+-//pread64(fd _C_int, buf *byte, count Size_t, offset Offset_t) Ssize_t
++//pread(fd _C_int, buf *byte, count Size_t, offset Offset_t) Ssize_t
+
+ //sys Pwrite(fd int, p []byte, offset int64) (n int, err error)
+-//pwrite64(fd _C_int, buf *byte, count Size_t, offset Offset_t) Ssize_t
++//pwrite(fd _C_int, buf *byte, count Size_t, offset Offset_t) Ssize_t
+
+ //sys Seek(fd int, offset int64, whence int) (off int64, err error)
+-//lseek64(fd _C_int, offset Offset_t, whence _C_int) Offset_t
++//lseek(fd _C_int, offset Offset_t, whence _C_int) Offset_t
+
+ //sysnb Setrlimit(resource int, rlim *Rlimit) (err error)
+-//setrlimit64(resource int, rlim *Rlimit) _C_int
++//setrlimit(resource int, rlim *Rlimit) _C_int
+
+ //sys Stat(path string, stat *Stat_t) (err error)
+-//stat64(path *byte, stat *Stat_t) _C_int
++//stat(path *byte, stat *Stat_t) _C_int
+
+ //sys Truncate(path string, length int64) (err error)
+-//truncate64(path *byte, length Offset_t) _C_int
++//truncate(path *byte, length Offset_t) _C_int
+diff --git a/libgo/runtime/go-varargs.c b/libgo/runtime/go-varargs.c
+index f84860891e6..7efc9615985 100644
+--- a/libgo/runtime/go-varargs.c
++++ b/libgo/runtime/go-varargs.c
+@@ -84,7 +84,7 @@ __go_ioctl_ptr (int d, int request, void *arg)
+ int
+ __go_open64 (char *path, int mode, mode_t perm)
+ {
+- return open64 (path, mode, perm);
++ return open (path, mode, perm);
+ }
+
+ #endif
+diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
+index 180f5c31d74..1d717d55c0e 100644
+--- a/libgo/sysinfo.c
++++ b/libgo/sysinfo.c
+@@ -366,7 +366,7 @@ typedef loff_t libgo_loff_t_type;
+ #endif
+
+ #if defined(HAVE_OFF64_T)
+-typedef off64_t libgo_off_t_type;
++typedef off_t libgo_off_t_type;
+ #else
+ typedef off_t libgo_off_t_type;
+ #endif
+@@ -398,13 +398,11 @@ typedef off_t libgo_off_t_type;
+
+ // From dirent.h
+ SREF(dirent);
+-SREF(dirent64);
+ OTREF(DIR);
+ EREF(DT_UNKNOWN);
+
+ // From fcntl.h
+ SREF(flock);
+-SREF(flock64);
+
+ // From ffi headers
+ SREF(_ffi_type);
+@@ -485,11 +483,10 @@ EREF(SS_ONSTACK);
+ EREF(SEGV_MAPERR);
+
+ // From stat.h
+-SREF(stat64);
++SREF(stat);
+
+ // From statfs.h
+ SREF(statfs);
+-SREF(statfs64);
+
+ // From sysinfo.h
+ SREF(sysinfo);
+@@ -519,7 +516,7 @@ EREF(PTRACE_PEEKTEXT);
+
+ // From sys/resource.h
+ SREF(rusage);
+-SREF(rlimit64);
++SREF(rlimit);
+ EREF(RLIMIT_NOFILE);
+ EREF(PRIO_USER);
+ EREF(RUSAGE_SELF);
+--
+2.41.0
+
diff --git a/main/gcc/0035-gcc-go-signal-34-is-special-on-musl-libc.patch b/main/gcc/0035-gcc-go-signal-34-is-special-on-musl-libc.patch
deleted file mode 100644
index 0b38bcd6692..00000000000
--- a/main/gcc/0035-gcc-go-signal-34-is-special-on-musl-libc.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From af64f915a4717036a7f1fe637308b455c94e0f1e Mon Sep 17 00:00:00 2001
-From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
-Date: Sun, 30 Aug 2020 18:03:03 +0200
-Subject: [PATCH] gcc-go: signal 34 is special on musl libc
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Taken from Adélie Linux.
----
- libgo/go/runtime/signal_gccgo.go | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/libgo/go/runtime/signal_gccgo.go b/libgo/go/runtime/signal_gccgo.go
-index 2eece687e35..e86490ce203 100644
---- a/libgo/go/runtime/signal_gccgo.go
-+++ b/libgo/go/runtime/signal_gccgo.go
-@@ -106,7 +106,7 @@ func getsig(i uint32) uintptr {
- 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")
---
-2.35.1
-
diff --git a/main/gcc/0036-PR110792-Early-clobber-issues-with-rot32di2-on-i386.patch b/main/gcc/0036-PR110792-Early-clobber-issues-with-rot32di2-on-i386.patch
new file mode 100644
index 00000000000..e3c09cc8483
--- /dev/null
+++ b/main/gcc/0036-PR110792-Early-clobber-issues-with-rot32di2-on-i386.patch
@@ -0,0 +1,186 @@
+https://gcc.gnu.org/PR110792
+https://gcc.gnu.org/git/gitweb.cgi?p=gcc.git;h=790c1f60a5662b16eb19eb4b81922995863c7571
+https://github.com/randombit/botan/issues/3637
+
+From 85628c5653ff40963158a24c60eeec6a3b5a8e56 Mon Sep 17 00:00:00 2001
+From: Roger Sayle <roger@nextmovesoftware.com>
+Date: Thu, 3 Aug 2023 07:12:04 +0100
+Subject: [PATCH] PR target/110792: Early clobber issues with
+ rot32di2_doubleword on i386.
+
+This patch is a conservative fix for PR target/110792, a wrong-code
+regression affecting doubleword rotations by BITS_PER_WORD, which
+effectively swaps the highpart and lowpart words, when the source to be
+rotated resides in memory. The issue is that if the register used to
+hold the lowpart of the destination is mentioned in the address of
+the memory operand, the current define_insn_and_split unintentionally
+clobbers it before reading the highpart.
+
+Hence, for the testcase, the incorrectly generated code looks like:
+
+ salq $4, %rdi // calculate address
+ movq WHIRL_S+8(%rdi), %rdi // accidentally clobber addr
+ movq WHIRL_S(%rdi), %rbp // load (wrong) lowpart
+
+Traditionally, the textbook way to fix this would be to add an
+explicit early clobber to the instruction's constraints.
+
+ (define_insn_and_split "<insn>32di2_doubleword"
+- [(set (match_operand:DI 0 "register_operand" "=r,r,r")
++ [(set (match_operand:DI 0 "register_operand" "=r,r,&r")
+ (any_rotate:DI (match_operand:DI 1 "nonimmediate_operand" "0,r,o")
+ (const_int 32)))]
+
+but unfortunately this currently generates significantly worse code,
+due to a strange choice of reloads (effectively memcpy), which ends up
+looking like:
+
+ salq $4, %rdi // calculate address
+ movdqa WHIRL_S(%rdi), %xmm0 // load the double word in SSE reg.
+ movaps %xmm0, -16(%rsp) // store the SSE reg back to the stack
+ movq -8(%rsp), %rdi // load highpart
+ movq -16(%rsp), %rbp // load lowpart
+
+Note that reload's "&" doesn't distinguish between the memory being
+early clobbered, vs the registers used in an addressing mode being
+early clobbered.
+
+The fix proposed in this patch is to remove the third alternative, that
+allowed offsetable memory as an operand, forcing reload to place the
+operand into a register before the rotation. This results in:
+
+ salq $4, %rdi
+ movq WHIRL_S(%rdi), %rax
+ movq WHIRL_S+8(%rdi), %rdi
+ movq %rax, %rbp
+
+I believe there's a more advanced solution, by swapping the order of
+the loads (if first destination register is mentioned in the address),
+or inserting a lea insn (if both destination registers are mentioned
+in the address), but this fix is a minimal "safe" solution, that
+should hopefully be suitable for backporting.
+
+2023-08-03 Roger Sayle <roger@nextmovesoftware.com>
+
+gcc/ChangeLog
+ PR target/110792
+ * config/i386/i386.md (<any_rotate>ti3): For rotations by 64 bits
+ place operand in a register before gen_<insn>64ti2_doubleword.
+ (<any_rotate>di3): Likewise, for rotations by 32 bits, place
+ operand in a register before gen_<insn>32di2_doubleword.
+ (<any_rotate>32di2_doubleword): Constrain operand to be in register.
+ (<any_rotate>64ti2_doubleword): Likewise.
+
+gcc/testsuite/ChangeLog
+ PR target/110792
+ * g++.target/i386/pr110792.C: New 32-bit C++ test case.
+ * gcc.target/i386/pr110792.c: New 64-bit C test case.
+
+(cherry picked from commit 790c1f60a5662b16eb19eb4b81922995863c7571)
+---
+ gcc/config/i386/i386.md | 18 ++++++++++++------
+ gcc/testsuite/g++.target/i386/pr110792.C | 16 ++++++++++++++++
+ gcc/testsuite/gcc.target/i386/pr110792.c | 18 ++++++++++++++++++
+ 3 files changed, 46 insertions(+), 6 deletions(-)
+ create mode 100644 gcc/testsuite/g++.target/i386/pr110792.C
+ create mode 100644 gcc/testsuite/gcc.target/i386/pr110792.c
+
+diff --git a/gcc/config/i386/i386.md b/gcc/config/i386/i386.md
+index f3a3305..a71e837 100644
+--- a/gcc/config/i386/i386.md
++++ b/gcc/config/i386/i386.md
+@@ -14359,7 +14359,10 @@
+ emit_insn (gen_ix86_<insn>ti3_doubleword
+ (operands[0], operands[1], operands[2]));
+ else if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) == 64)
+- emit_insn (gen_<insn>64ti2_doubleword (operands[0], operands[1]));
++ {
++ operands[1] = force_reg (TImode, operands[1]);
++ emit_insn (gen_<insn>64ti2_doubleword (operands[0], operands[1]));
++ }
+ else
+ {
+ rtx amount = force_reg (QImode, operands[2]);
+@@ -14394,7 +14397,10 @@
+ emit_insn (gen_ix86_<insn>di3_doubleword
+ (operands[0], operands[1], operands[2]));
+ else if (CONST_INT_P (operands[2]) && INTVAL (operands[2]) == 32)
+- emit_insn (gen_<insn>32di2_doubleword (operands[0], operands[1]));
++ {
++ operands[1] = force_reg (DImode, operands[1]);
++ emit_insn (gen_<insn>32di2_doubleword (operands[0], operands[1]));
++ }
+ else
+ FAIL;
+
+@@ -14562,8 +14568,8 @@
+ })
+
+ (define_insn_and_split "<insn>32di2_doubleword"
+- [(set (match_operand:DI 0 "register_operand" "=r,r,r")
+- (any_rotate:DI (match_operand:DI 1 "nonimmediate_operand" "0,r,o")
++ [(set (match_operand:DI 0 "register_operand" "=r,r")
++ (any_rotate:DI (match_operand:DI 1 "register_operand" "0,r")
+ (const_int 32)))]
+ "!TARGET_64BIT"
+ "#"
+@@ -14580,8 +14586,8 @@
+ })
+
+ (define_insn_and_split "<insn>64ti2_doubleword"
+- [(set (match_operand:TI 0 "register_operand" "=r,r,r")
+- (any_rotate:TI (match_operand:TI 1 "nonimmediate_operand" "0,r,o")
++ [(set (match_operand:TI 0 "register_operand" "=r,r")
++ (any_rotate:TI (match_operand:TI 1 "register_operand" "0,r")
+ (const_int 64)))]
+ "TARGET_64BIT"
+ "#"
+diff --git a/gcc/testsuite/g++.target/i386/pr110792.C b/gcc/testsuite/g++.target/i386/pr110792.C
+new file mode 100644
+index 0000000..ce21a7a
+--- /dev/null
++++ b/gcc/testsuite/g++.target/i386/pr110792.C
+@@ -0,0 +1,16 @@
++/* { dg-do compile { target ia32 } } */
++/* { dg-options "-O2" } */
++
++template <int ROT, typename T>
++inline T rotr(T input)
++{
++ return static_cast<T>((input >> ROT) | (input << (8 * sizeof(T) - ROT)));
++}
++
++unsigned long long WHIRL_S[256] = {0x18186018C07830D8};
++unsigned long long whirl(unsigned char x0)
++{
++ const unsigned long long s4 = WHIRL_S[x0&0xFF];
++ return rotr<32>(s4);
++}
++/* { dg-final { scan-assembler-not "movl\tWHIRL_S\\+4\\(,%eax,8\\), %eax" } } */
+diff --git a/gcc/testsuite/gcc.target/i386/pr110792.c b/gcc/testsuite/gcc.target/i386/pr110792.c
+new file mode 100644
+index 0000000..b65125c
+--- /dev/null
++++ b/gcc/testsuite/gcc.target/i386/pr110792.c
+@@ -0,0 +1,18 @@
++/* { dg-do compile { target int128 } } */
++/* { dg-options "-O2" } */
++
++static inline unsigned __int128 rotr(unsigned __int128 input)
++{
++ return ((input >> 64) | (input << (64)));
++}
++
++unsigned __int128 WHIRL_S[256] = {((__int128)0x18186018C07830D8) << 64 |0x18186018C07830D8};
++unsigned __int128 whirl(unsigned char x0)
++{
++ register int t __asm("rdi") = x0&0xFF;
++ const unsigned __int128 s4 = WHIRL_S[t];
++ register unsigned __int128 tt __asm("rdi") = rotr(s4);
++ asm("":::"memory");
++ return tt;
++}
++/* { dg-final { scan-assembler-not "movq\tWHIRL_S\\+8\\(%rdi\\), %rdi" } } */
+--
+2.41.0
+
diff --git a/main/gcc/0036-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch b/main/gcc/0036-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch
deleted file mode 100644
index ed3ee4a0795..00000000000
--- a/main/gcc/0036-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 6e41b6753af412388e9259fe791904146695e84e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
-Date: Sun, 30 Aug 2020 19:27:51 +0200
-Subject: [PATCH] gcc-go: undef SETCONTEXT_CLOBBERS_TLS in proc.c
-
----
- libgo/runtime/proc.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/libgo/runtime/proc.c b/libgo/runtime/proc.c
-index 38bf7a6b255..e50403b5a75 100644
---- a/libgo/runtime/proc.c
-+++ b/libgo/runtime/proc.c
-@@ -66,6 +66,10 @@ static void gscanstack(G*);
-
- __thread G *g __asm__(GOSYM_PREFIX "runtime.g");
-
-+/* libucontext does not seem to support tlsbase, undef the macro
-+ * here to make sure we define initcontext and fixcontext as dummies. */
-+#undef SETCONTEXT_CLOBBERS_TLS
-+
- #ifndef SETCONTEXT_CLOBBERS_TLS
-
- static inline void
---
-2.35.1
-
diff --git a/main/gcc/0037-gcc-go-link-to-libucontext.patch b/main/gcc/0037-gcc-go-link-to-libucontext.patch
deleted file mode 100644
index 8ffdfc7e7b3..00000000000
--- a/main/gcc/0037-gcc-go-link-to-libucontext.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From cc89c078ffc58a7f6675a60fbca24224effcb7e3 Mon Sep 17 00:00:00 2001
-From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
-Date: Mon, 31 Aug 2020 08:59:40 +0200
-Subject: [PATCH] gcc-go: link to libucontext
-
----
- Makefile.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index 426949aa91c..f97db1ef569 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -50331,7 +50331,7 @@ configure-target-libgo:
- esac; \
- module_srcdir=libgo; \
- rm -f no-such-file || : ; \
-- CONFIG_SITE=no-such-file $(SHELL) \
-+ CONFIG_SITE=no-such-file LIBS="-lucontext $$LIBS" $(SHELL) \
- $$s/$$module_srcdir/configure \
- --srcdir=$${topdir}/$$module_srcdir \
- $(TARGET_CONFIGARGS) --build=${build_alias} --host=${target_alias} \
---
-2.35.1
-
diff --git a/main/gcc/0037-loongarch-disable-multilib-support.patch b/main/gcc/0037-loongarch-disable-multilib-support.patch
new file mode 100644
index 00000000000..37de3c72945
--- /dev/null
+++ b/main/gcc/0037-loongarch-disable-multilib-support.patch
@@ -0,0 +1,61 @@
+From c4f484f465a32e796ae384aa3f90e79fa218b4e9 Mon Sep 17 00:00:00 2001
+From: Jingyun Hua <huajingyun@loongson.cn>
+Date: Mon, 7 Aug 2023 15:25:58 +0800
+Subject: [PATCH] loongarch disable multilib support
+
+Signed-off-by: Jingyun Hua <huajingyun@loongson.cn>
+---
+ gcc/config/loongarch/linux.h | 10 +---------
+ gcc/config/loongarch/t-linux | 18 +++---------------
+ 3 files changed, 5 insertions(+), 25 deletions(-)
+
+diff --git a/gcc/config/loongarch/linux.h b/gcc/config/loongarch/linux.h
+index 9059d2441..23eaff0cc 100644
+--- a/gcc/config/loongarch/linux.h
++++ b/gcc/config/loongarch/linux.h
+@@ -22,15 +22,7 @@ along with GCC; see the file COPYING3. If not see
+ * can work in a multilib environment. */
+
+ #if defined(LA_DISABLE_MULTILIB) && defined(LA_DISABLE_MULTIARCH)
+-
+- #if DEFAULT_ABI_BASE == ABI_BASE_LP64D
+- #define ABI_LIBDIR "lib64"
+- #elif DEFAULT_ABI_BASE == ABI_BASE_LP64F
+- #define ABI_LIBDIR "lib64/f32"
+- #elif DEFAULT_ABI_BASE == ABI_BASE_LP64S
+- #define ABI_LIBDIR "lib64/sf"
+- #endif
+-
++ #define ABI_LIBDIR "lib"
+ #endif
+
+ #ifndef ABI_LIBDIR
+diff --git a/gcc/config/loongarch/t-linux b/gcc/config/loongarch/t-linux
+index e40da1792..f72c6e878 100644
+--- a/gcc/config/loongarch/t-linux
++++ b/gcc/config/loongarch/t-linux
+@@ -36,18 +36,6 @@ else
+ endif
+
+ # Don't define MULTILIB_OSDIRNAMES if multilib is disabled.
+-ifeq ($(filter LA_DISABLE_MULTILIB,$(tm_defines)),)
+-
+- MULTILIB_OSDIRNAMES = \
+- mabi.lp64d=../lib64$\
+- $(call if_multiarch,:loongarch64-linux-gnu)
+-
+- MULTILIB_OSDIRNAMES += \
+- mabi.lp64f=../lib64/f32$\
+- $(call if_multiarch,:loongarch64-linux-gnuf32)
+-
+- MULTILIB_OSDIRNAMES += \
+- mabi.lp64s=../lib64/sf$\
+- $(call if_multiarch,:loongarch64-linux-gnusf)
+-
+-endif
++ MULTILIB_OSDIRNAMES = mabi.lp64d=../lib
++ MULTILIB_OSDIRNAMES += mabi.lp64f=../lib
++ MULTILIB_OSDIRNAMES += mabi.lp64s=../lib
+--
+2.41.0
+
diff --git a/main/gcc/0038-Use-generic-errstr.go-implementation-on-musl.patch b/main/gcc/0038-Use-generic-errstr.go-implementation-on-musl.patch
deleted file mode 100644
index 6a05b5ffff9..00000000000
--- a/main/gcc/0038-Use-generic-errstr.go-implementation-on-musl.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 3fb914ca83ac18287ee24aa75aba9149e35487ad Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
-Date: Mon, 19 Apr 2021 07:21:41 +0200
-Subject: [PATCH] Use generic errstr.go implementation on musl
-
-glibc provides two version of strerror_r() depending on a feature test
-macro. The first is the XSI-compliant version which returns an int, the
-second is GNU-specific and returns a char pointer.
-
-Similarity, gcc's libgo provides two implementations of Errstr() both of
-which use strerror_r(). On Linux, it is assumed that the GNU-specific
-strerror_r version is used. However, musl only provides the
-XSI-compliant version of strerror_r. This patch enables the generic
-Errstr() implementation which also uses the XSI-compliant version of
-strerror_r.
----
- libgo/go/syscall/errstr.go | 1 -
- libgo/go/syscall/errstr_glibc.go | 2 +-
- 2 files changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/libgo/go/syscall/errstr.go b/libgo/go/syscall/errstr.go
-index 6c2441d364d..8f7c5538163 100644
---- a/libgo/go/syscall/errstr.go
-+++ b/libgo/go/syscall/errstr.go
-@@ -5,7 +5,6 @@
- // license that can be found in the LICENSE file.
-
- // +build !hurd
--// +build !linux
-
- package syscall
-
-diff --git a/libgo/go/syscall/errstr_glibc.go b/libgo/go/syscall/errstr_glibc.go
-index 5b19e6f202d..8dc60172186 100644
---- a/libgo/go/syscall/errstr_glibc.go
-+++ b/libgo/go/syscall/errstr_glibc.go
-@@ -7,7 +7,7 @@
- // 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.
-
--// +build hurd linux
-+// +build hurd !linux
-
- package syscall
-
---
-2.35.1
-
diff --git a/main/gcc/0041-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch b/main/gcc/0041-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch
deleted file mode 100644
index 4eadde5a152..00000000000
--- a/main/gcc/0041-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 2d924c522dde7426afbb8096d9301b17d0e73121 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
-Date: Sun, 28 Nov 2021 00:54:37 +0100
-Subject: [PATCH] libgo: Recognize off64_t and loff_t definitions of musl libc
-
-Without this patch, both off64_t and loff_t are not recognized by
--fdump-go-spec which causes a variety Go-related compilation errors on
-musl libc since the gcc-go frontend expects both off64_t and loff_t to
-be present.
-
-Also make sure that autoconf recognizes support for loff_t on musl, by
-compiling the relevant feature test code with -D_GNU_SOURCE and making
-it include fcntl.h which defines loff_t on musl.
----
- libgo/configure | 4 +++-
- libgo/configure.ac | 4 +++-
- libgo/sysinfo.c | 21 +++++++++++++++++++++
- 3 files changed, 27 insertions(+), 2 deletions(-)
-
-diff --git a/libgo/configure b/libgo/configure
-index 70f64c974fd..69d15839e8c 100755
---- a/libgo/configure
-+++ b/libgo/configure
-@@ -15546,7 +15546,9 @@ _ACEOF
-
- fi
-
--ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "$ac_includes_default"
-+CFLAGS_hold=$CFLAGS
-+CFLAGS="$CFLAGS -D_GNU_SOURCE"
-+ac_fn_c_check_type "$LINENO" "loff_t" "ac_cv_type_loff_t" "#include <fcntl.h>"
- if test "x$ac_cv_type_loff_t" = xyes; then :
-
- cat >>confdefs.h <<_ACEOF
-diff --git a/libgo/configure.ac b/libgo/configure.ac
-index ebab9d9de3e..a3d9d309aba 100644
---- a/libgo/configure.ac
-+++ b/libgo/configure.ac
-@@ -602,7 +602,9 @@ AC_STRUCT_DIRENT_D_TYPE
-
- AC_CHECK_FUNCS(accept4 dup3 epoll_create1 faccessat fallocate fchmodat fchownat futimesat getxattr inotify_add_watch inotify_init inotify_init1 inotify_rm_watch listxattr mkdirat mknodat open64 openat pipe2 removexattr renameat setxattr sync_file_range splice syscall tee unlinkat unshare utimensat)
- AC_TYPE_OFF_T
--AC_CHECK_TYPES([loff_t])
-+CFLAGS_hold=$CFLAGS
-+CFLAGS="$CFLAGS -D_GNU_SOURCE" # musl does not define loff_t without this
-+AC_CHECK_TYPES([loff_t], [], [], [[#include <fcntl.h>]])
-
- LIBS_hold="$LIBS"
- LIBS="$LIBS -lm"
-diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c
-index 8ce061e2f5f..b85add15a7b 100644
---- a/libgo/sysinfo.c
-+++ b/libgo/sysinfo.c
-@@ -343,6 +343,27 @@ enum {
- #endif
- };
-
-+// musl libc has both off64_t and loff_t. However, both of these types
-+// are defined as CPP macros, not as C typedefs. Unfortunately, the GCC
-+// -fdump-go-spec option, which is responsible for generating type
-+// definitions for Go based on this file, only recognizes types defined
-+// through typedefs.
-+//
-+// For this reason, we check here if either off64_t or loff_t are
-+// defined as CPP macros and if so, we redefine them using a C typedef.
-+#if defined(HAVE_OFF64_T) && defined(off64_t)
-+typedef off64_t __musl_off64_t;
-+#undef off64_t
-+typedef __musl_off64_t off64_t;
-+#endif
-+
-+// See comment regarding musl libc above.
-+#if defined(HAVE_LOFF_T) && defined(loff_t)
-+typedef loff_t __musl_loff_t;
-+#undef loff_t
-+typedef __musl_loff_t loff_t;
-+#endif
-+
- // SIOCGIFMTU can't be added in the above enum as it might
- // be signed in some OSes.
- #ifdef SIOCGIFMTU
---
-2.35.1
-
diff --git a/main/gcc/0042-Fix-attempt-to-use-poisoned-calloc-error-in-libgccji.patch b/main/gcc/0042-Fix-attempt-to-use-poisoned-calloc-error-in-libgccji.patch
deleted file mode 100644
index 7975e6339ac..00000000000
--- a/main/gcc/0042-Fix-attempt-to-use-poisoned-calloc-error-in-libgccji.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 72f32e3383129ad139df76d9a063fac9b03079b1 Mon Sep 17 00:00:00 2001
-From: Alex McGrath <amk@amk.ie>
-Date: Wed, 13 Oct 2021 23:24:27 +0100
-Subject: [PATCH] Fix attempt to use poisoned calloc error in libgccjit
-
-This moves usages of pthread.h to above any usage of system.h as it
-included #pragma GCC poison calloc
----
- gcc/jit/jit-playback.c | 4 ++--
- gcc/jit/jit-recording.c | 4 ++--
- gcc/jit/libgccjit.c | 3 ++-
- 3 files changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/gcc/jit/jit-playback.c b/gcc/jit/jit-playback.c
-index cee9daa8220..a5600084933 100644
---- a/gcc/jit/jit-playback.c
-+++ b/gcc/jit/jit-playback.c
-@@ -18,6 +18,8 @@ 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 <pthread.h>
-+
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
-@@ -41,8 +43,6 @@ along with GCC; see the file COPYING3. If not see
- #include "diagnostic.h"
- #include "stmt.h"
-
--#include <pthread.h>
--
- #include "jit-playback.h"
- #include "jit-result.h"
- #include "jit-builtins.h"
-diff --git a/gcc/jit/jit-recording.c b/gcc/jit/jit-recording.c
-index 117ff70114c..d2634a546b1 100644
---- a/gcc/jit/jit-recording.c
-+++ b/gcc/jit/jit-recording.c
-@@ -18,6 +18,8 @@ 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 <pthread.h>
-+
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
-@@ -25,8 +27,6 @@ along with GCC; see the file COPYING3. If not see
- #include "pretty-print.h"
- #include "toplev.h"
-
--#include <pthread.h>
--
- #include "jit-builtins.h"
- #include "jit-recording.h"
- #include "jit-playback.h"
-diff --git a/gcc/jit/libgccjit.c b/gcc/jit/libgccjit.c
-index 0cc650f9810..2f44481eeb0 100644
---- a/gcc/jit/libgccjit.c
-+++ b/gcc/jit/libgccjit.c
-@@ -18,13 +18,14 @@ 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 <pthread.h>
-+
- #include "config.h"
- #include "system.h"
- #include "coretypes.h"
- #include "timevar.h"
- #include "typed-splay-tree.h"
- #include "cppbuiltin.h"
--#include <pthread.h>
-
- #include "libgccjit.h"
- #include "jit-recording.h"
---
-2.35.1
-
diff --git a/main/gcc/0043-stddef.h-add-support-for-musl-typedef-macro-guards.patch b/main/gcc/0043-stddef.h-add-support-for-musl-typedef-macro-guards.patch
deleted file mode 100644
index af7717683a8..00000000000
--- a/main/gcc/0043-stddef.h-add-support-for-musl-typedef-macro-guards.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-From aeef0ee2aac43d89ae26c6a3559aae4f8a1d53da Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
-Date: Thu, 25 Nov 2021 17:44:04 +0100
-Subject: [PATCH] stddef.h: add support for musl typedef macro guards
-
-The stddef.h header checks/sets various hardcoded toolchain/os specific
-macro guards to prevent redefining types such as ptrdiff_t, wchar_t, or
-size_t. However, without this patch, the file does not check/set the
-typedef macro guards for musl libc. This causes types such as size_t to
-be defined twice for files which include both musl's stddef.h as well as
-GCC's ginclude/stddef.h. This is, for example, the case for
-libgo/sysinfo.c. If libgo/sysinfo.c has multiple typedefs for size_t
-this confuses -fdump-go-spec and causes size_t not to be included in the
-generated type definitions thereby causing a gcc-go compilation failure
-on musl with the following error message:
-
- sysinfo.go:7765:13: error: use of undefined type '_size_t'
- 7765 | type Size_t _size_t
- | ^
- libcall_posix.go:49:35: error: non-integer len argument in make
- 49 | b := make([]byte, len)
- |
-
-This commit fixes this issue by ensuring that ptrdiff_t, wchar_t, and size_t
-are only defined once in the pre-processed libgo/sysinfo.c file by enhancing
-gcc/ginclude/stddef.h with musl-specific typedef macro guards.
----
- gcc/ginclude/stddef.h | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/gcc/ginclude/stddef.h b/gcc/ginclude/stddef.h
-index 66619fe43b1..50d710a5ab9 100644
---- a/gcc/ginclude/stddef.h
-+++ b/gcc/ginclude/stddef.h
-@@ -128,6 +128,7 @@ _TYPE_wchar_t;
- #ifndef ___int_ptrdiff_t_h
- #ifndef _GCC_PTRDIFF_T
- #ifndef _PTRDIFF_T_DECLARED /* DragonFly */
-+#ifndef __DEFINED_ptrdiff_t /* musl libc */
- #define _PTRDIFF_T
- #define _T_PTRDIFF_
- #define _T_PTRDIFF
-@@ -137,10 +138,12 @@ _TYPE_wchar_t;
- #define ___int_ptrdiff_t_h
- #define _GCC_PTRDIFF_T
- #define _PTRDIFF_T_DECLARED
-+#define __DEFINED_ptrdiff_t
- #ifndef __PTRDIFF_TYPE__
- #define __PTRDIFF_TYPE__ long int
- #endif
- typedef __PTRDIFF_TYPE__ ptrdiff_t;
-+#endif /* __DEFINED_ptrdiff_t */
- #endif /* _PTRDIFF_T_DECLARED */
- #endif /* _GCC_PTRDIFF_T */
- #endif /* ___int_ptrdiff_t_h */
-@@ -174,6 +177,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
- #ifndef _SIZE_T_DEFINED
- #ifndef _BSD_SIZE_T_DEFINED_ /* Darwin */
- #ifndef _SIZE_T_DECLARED /* FreeBSD 5 */
-+#ifndef __DEFINED_size_t /* musl libc */
- #ifndef ___int_size_t_h
- #ifndef _GCC_SIZE_T
- #ifndef _SIZET_
-@@ -191,6 +195,7 @@ typedef __PTRDIFF_TYPE__ ptrdiff_t;
- #define _SIZE_T_DEFINED
- #define _BSD_SIZE_T_DEFINED_ /* Darwin */
- #define _SIZE_T_DECLARED /* FreeBSD 5 */
-+#define __DEFINED_size_t /* musl libc */
- #define ___int_size_t_h
- #define _GCC_SIZE_T
- #define _SIZET_
-@@ -215,6 +220,7 @@ typedef long ssize_t;
- #endif /* _SIZET_ */
- #endif /* _GCC_SIZE_T */
- #endif /* ___int_size_t_h */
-+#endif /* __DEFINED_size_t */
- #endif /* _SIZE_T_DECLARED */
- #endif /* _BSD_SIZE_T_DEFINED_ */
- #endif /* _SIZE_T_DEFINED */
-@@ -251,6 +257,7 @@ typedef long ssize_t;
- #ifndef _BSD_WCHAR_T_DEFINED_ /* Darwin */
- #ifndef _BSD_RUNE_T_DEFINED_ /* Darwin */
- #ifndef _WCHAR_T_DECLARED /* FreeBSD 5 */
-+#ifndef __DEFINED_wchar_t /* musl libc */
- #ifndef _WCHAR_T_DEFINED_
- #ifndef _WCHAR_T_DEFINED
- #ifndef _WCHAR_T_H
-@@ -272,6 +279,7 @@ typedef long ssize_t;
- #define __INT_WCHAR_T_H
- #define _GCC_WCHAR_T
- #define _WCHAR_T_DECLARED
-+#define __DEFINED_wchar_t
-
- /* On BSD/386 1.1, at least, machine/ansi.h defines _BSD_WCHAR_T_
- instead of _WCHAR_T_, and _BSD_RUNE_T_ (which, unlike the other
-@@ -326,6 +334,7 @@ typedef __WCHAR_TYPE__ wchar_t;
- #endif
- #endif
- #endif
-+#endif /* __DEFINED_wchar_t */
- #endif /* _WCHAR_T_DECLARED */
- #endif /* _BSD_RUNE_T_DEFINED_ */
- #endif
---
-2.35.1
-
diff --git a/main/gcc/0044-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch b/main/gcc/0044-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch
deleted file mode 100644
index 140d3e8ac32..00000000000
--- a/main/gcc/0044-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 36c79820c1085590f272ef1afcad4744125d96d0 Mon Sep 17 00:00:00 2001
-From: "A. Wilcox" <AWilcox@Wilcox-Tech.com>
-Date: Sun, 30 Aug 2020 18:33:49 +0200
-Subject: [PATCH] gcc-go: Use int64 type as offset argument for mmap
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Without this patch, Go run-time memory allocation fails on 32-bit architectures:
-
- fatal error: runtime: cannot allocate memory
- runtime stack:
- runtime.dopanic__m
- :0
- runtime.throw
- :0
- :0
- :0
- runtime.systemstack
- :0
- runtime.addrRanges.init
- :0
- runtime.pageAlloc.init
- :0
- runtime.mheap.init
- :0
- runtime.schedinit
- :0
- :0
- :0
-
-Taken from Adélie Linux [1].
-
-[1]: https://git.adelielinux.org/adelie/packages/-/commit/63b5fb12c3d75e460799c672bbbdd5d29c3cc33c
----
- libgo/go/runtime/mem_gccgo.go | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/libgo/go/runtime/mem_gccgo.go b/libgo/go/runtime/mem_gccgo.go
-index fa3389d857e..57bed97c710 100644
---- a/libgo/go/runtime/mem_gccgo.go
-+++ b/libgo/go/runtime/mem_gccgo.go
-@@ -15,7 +15,7 @@ import (
- //go:linkname 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
-@@ -37,7 +37,7 @@ func init() {
- }
- }
-
--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()
---
-2.35.1
-
diff --git a/main/gcc/0045-libgo-include-asm-ptrace.h-for-pt_regs-definition-on.patch b/main/gcc/0045-libgo-include-asm-ptrace.h-for-pt_regs-definition-on.patch
deleted file mode 100644
index 4823eef43e9..00000000000
--- a/main/gcc/0045-libgo-include-asm-ptrace.h-for-pt_regs-definition-on.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 353c8abdc34a294c89c24423ef0c4182189117f6 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren@soeren-tempel.net>
-Date: Sun, 2 Jan 2022 01:07:03 +0100
-Subject: [PATCH] libgo: include asm/ptrace.h for pt_regs definition on PowerPC
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Both glibc and musl libc declare pt_regs as an incomplete type. This
-type has to be completed by inclusion of another header. On Linux, the
-asm/ptrace.h header file provides this type definition. Without
-including this header file, it is not possible to access the regs member
-of the mcontext_t struct as done in libgo/runtime/go-signal.c. On glibc,
-other headers (e.g. sys/user.h) include asm/ptrace.h but on musl
-asm/ptrace.h is not included by other headers and thus the
-aforementioned files do not compile without an explicit include of
-asm/ptrace.h:
-
- libgo/runtime/go-signal.c: In function 'getSiginfo':
- libgo/runtime/go-signal.c:227:63: error: invalid use of undefined type 'struct pt_regs'
- 227 | ret.sigpc = ((ucontext_t*)(context))->uc_mcontext.regs->nip;
- |
-
-Instead of including the asm/ptrace.h header conditionally on PowerPC
-only it would alternatively also be possible to include it
-unconditionally.
-
-See also:
-
-* https://git.musl-libc.org/cgit/musl/commit/?id=c2518a8efb6507f1b41c3b12e03b06f8f2317a1f
-* https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=d57cb31910ca5c200e4172276749a7f8bd17ae3c
-* https://github.com/kaniini/libucontext/issues/36
-
-Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
----
- libgo/runtime/go-signal.c | 6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/libgo/runtime/go-signal.c b/libgo/runtime/go-signal.c
-index d30d1603adc..fc01e04e4a1 100644
---- a/libgo/runtime/go-signal.c
-+++ b/libgo/runtime/go-signal.c
-@@ -10,6 +10,12 @@
- #include <sys/time.h>
- #include <ucontext.h>
-
-+// On PowerPC, ucontext.h uses a pt_regs struct as an incomplete
-+// type. This type must be completed by including asm/ptrace.h.
-+#ifdef __PPC__
-+#include <asm/ptrace.h>
-+#endif
-+
- #include "runtime.h"
-
- #ifndef SA_RESTART
---
-2.35.1
-
diff --git a/main/gcc/0046-Disable-fsplit-stack-support-on-non-glibc-targets.patch b/main/gcc/0046-Disable-fsplit-stack-support-on-non-glibc-targets.patch
deleted file mode 100644
index ffd7ab045a0..00000000000
--- a/main/gcc/0046-Disable-fsplit-stack-support-on-non-glibc-targets.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From 2c6bf28619c9b3bf713f7f5319c5d750a6c297ae Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren@soeren-tempel.net>
-Date: Fri, 21 Jan 2022 19:22:46 +0000
-Subject: [PATCH] Disable -fsplit-stack support on non-glibc targets
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-The -fsplit-stack option requires the pthread_t TCB definition in the
-libc to provide certain struct fields at specific hardcoded offsets. As
-far as I know, only glibc provides these fields at the required offsets.
-Most notably, musl libc does not have these fields. However, since gcc
-accesses the fields using a fixed offset, this does not cause a
-compile-time error, but instead results in a silent memory corruption at
-run-time with musl libc. For example, on s390x libgcc's
-__stack_split_initialize CTOR will overwrite the cancel field in the
-pthread_t TCB on musl.
-
-The -fsplit-stack option is used within the gcc code base itself by
-gcc-go (if available). On musl-based systems with split-stack support
-(i.e. s390x or x86) this causes Go programs compiled with gcc-go to
-misbehave at run-time.
-
-This patch fixes gcc-go on musl by disabling -fsplit-stack in gcc itself
-since it is not supported on non-glibc targets anyhow. This is achieved
-by checking if gcc targets a glibc-based system. This check has been
-added for x86 and s390x, the rs6000 config already checks for
-TARGET_GLIBC_MAJOR. Other architectures do not have split-stack
-support. With this patch applied, the gcc-go configure script will
-detect that -fsplit-stack support is not available and will not use it.
-
-See https://www.openwall.com/lists/musl/2012/10/16/12
-
-This patch was written under the assumption that glibc is the only libc
-implementation which supports the required fields at the required
-offsets in the pthread_t TCB. The patch has been tested on Alpine Linux
-Edge on the s390x and x86 architectures by bootstrapping Google's Go
-implementation with gcc-go.
-
-Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
-
-gcc/ChangeLog:
-
- * common/config/s390/s390-common.c (s390_supports_split_stack):
- Only support split-stack on glibc targets.
- * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN): Ditto.
- * config/i386/gnu.h (defined): Ditto.
----
- gcc/common/config/s390/s390-common.c | 14 ++++++++++----
- gcc/config/i386/gnu-user-common.h | 5 +++--
- gcc/config/i386/gnu.h | 5 ++++-
- 3 files changed, 17 insertions(+), 7 deletions(-)
-
-diff --git a/gcc/common/config/s390/s390-common.c b/gcc/common/config/s390/s390-common.c
-index b6bc8501742..8c1e590322d 100644
---- a/gcc/common/config/s390/s390-common.c
-+++ b/gcc/common/config/s390/s390-common.c
-@@ -116,13 +116,19 @@ s390_handle_option (struct gcc_options *opts ATTRIBUTE_UNUSED,
-
- /* -fsplit-stack uses a field in the TCB, available with glibc-2.23.
- We don't verify it, since earlier versions just have padding at
-- its place, which works just as well. */
-+ its place, which works just as well. For other libc implementations
-+ we disable the feature entirely to avoid corrupting the TCB. */
-
- static bool
--s390_supports_split_stack (bool report ATTRIBUTE_UNUSED,
-- struct gcc_options *opts ATTRIBUTE_UNUSED)
-+s390_supports_split_stack (bool report,
-+ struct gcc_options *opts)
- {
-- return true;
-+ if (opts->x_linux_libc == LIBC_GLIBC)
-+ return true;
-+
-+ if (report)
-+ error ("%<-fsplit-stack%> currently only supported on GNU/Linux");
-+ return false;
- }
-
- #undef TARGET_DEFAULT_TARGET_FLAGS
-diff --git a/gcc/config/i386/gnu-user-common.h b/gcc/config/i386/gnu-user-common.h
-index 00226f5a455..6e13315b5a3 100644
---- a/gcc/config/i386/gnu-user-common.h
-+++ b/gcc/config/i386/gnu-user-common.h
-@@ -66,7 +66,8 @@ along with GCC; see the file COPYING3. If not see
- #define STACK_CHECK_STATIC_BUILTIN 1
-
- /* We only build the -fsplit-stack support in libgcc if the
-- assembler has full support for the CFI directives. */
--#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
-+ assembler has full support for the CFI directives and
-+ targets glibc. */
-+#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE && OPTION_GLIBC
- #define TARGET_CAN_SPLIT_STACK
- #endif
-diff --git a/gcc/config/i386/gnu.h b/gcc/config/i386/gnu.h
-index 25fbc07f58c..afd3e8e8841 100644
---- a/gcc/config/i386/gnu.h
-+++ b/gcc/config/i386/gnu.h
-@@ -35,7 +35,10 @@ along with GCC. If not, see <http://www.gnu.org/licenses/>.
- crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
- #endif
-
--#ifdef TARGET_LIBC_PROVIDES_SSP
-+/* -fsplit-stack uses a field in the TCB at a fixed offset. This
-+ field is only available for glibc. Disable -fsplit-stack for
-+ other libc implementations to avoid silent TCB corruptions. */
-+#if defined (TARGET_LIBC_PROVIDES_SSP) && OPTION_GLIBC
-
- /* i386 glibc provides __stack_chk_guard in %gs:0x14. */
- #define TARGET_THREAD_SSP_OFFSET 0x14
---
-2.35.1
-
diff --git a/main/gcc/0047-x86-Properly-disable-fsplit-stack-support-on-non-gli.patch b/main/gcc/0047-x86-Properly-disable-fsplit-stack-support-on-non-gli.patch
deleted file mode 100644
index 0437fd4bdec..00000000000
--- a/main/gcc/0047-x86-Properly-disable-fsplit-stack-support-on-non-gli.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From 4ea687132408a7c662706c4a7eb3c61b7773d735 Mon Sep 17 00:00:00 2001
-From: "H.J. Lu" <hjl.tools@gmail.com>
-Date: Fri, 21 Jan 2022 13:24:00 -0800
-Subject: [PATCH] x86: Properly disable -fsplit-stack support on non-glibc
- targets
-
-Revert x86 changes in
-
-commit c163647ffbc9a20c8feb6e079dbecccfe016c82e
-Author: Soren Tempel <soeren@soeren-tempel.net>
-Date: Fri Jan 21 19:22:46 2022 +0000
-
- Disable -fsplit-stack support on non-glibc targets
-
-and change ix86_supports_split_stack to return true only on glibc.
-
- PR bootstrap/104170
- * common/config/i386/i386-common.c (ix86_supports_split_stack):
- Return true only on glibc.
- * config/i386/gnu-user-common.h (STACK_CHECK_STATIC_BUILTIN):
- Revert commit c163647ffbc.
- * config/i386/gnu.h (TARGET_LIBC_PROVIDES_SSP): Likewise.
----
- gcc/common/config/i386/i386-common.c | 17 +++++++++++------
- gcc/config/i386/gnu-user-common.h | 5 ++---
- gcc/config/i386/gnu.h | 5 +----
- 3 files changed, 14 insertions(+), 13 deletions(-)
-
-diff --git a/gcc/common/config/i386/i386-common.c b/gcc/common/config/i386/i386-common.c
-index 96549aa7d7e..a3b5258e828 100644
---- a/gcc/common/config/i386/i386-common.c
-+++ b/gcc/common/config/i386/i386-common.c
-@@ -1696,16 +1696,21 @@ ix86_option_init_struct (struct gcc_options *opts)
- field in the TCB, so they cannot be used together. */
-
- static bool
--ix86_supports_split_stack (bool report ATTRIBUTE_UNUSED,
-+ix86_supports_split_stack (bool report,
- struct gcc_options *opts ATTRIBUTE_UNUSED)
- {
-+#ifdef TARGET_THREAD_SPLIT_STACK_OFFSET
-+ if (opts->x_linux_libc != LIBC_GLIBC)
-+#endif
-+ {
-+ if (report)
-+ error ("%<-fsplit-stack%> currently only supported on GNU/Linux");
-+ return false;
-+ }
-+
- bool ret = true;
-
--#ifndef TARGET_THREAD_SPLIT_STACK_OFFSET
-- if (report)
-- error ("%<-fsplit-stack%> currently only supported on GNU/Linux");
-- ret = false;
--#else
-+#ifdef TARGET_THREAD_SPLIT_STACK_OFFSET
- if (!HAVE_GAS_CFI_PERSONALITY_DIRECTIVE)
- {
- if (report)
-diff --git a/gcc/config/i386/gnu-user-common.h b/gcc/config/i386/gnu-user-common.h
-index 6e13315b5a3..00226f5a455 100644
---- a/gcc/config/i386/gnu-user-common.h
-+++ b/gcc/config/i386/gnu-user-common.h
-@@ -66,8 +66,7 @@ along with GCC; see the file COPYING3. If not see
- #define STACK_CHECK_STATIC_BUILTIN 1
-
- /* We only build the -fsplit-stack support in libgcc if the
-- assembler has full support for the CFI directives and
-- targets glibc. */
--#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE && OPTION_GLIBC
-+ assembler has full support for the CFI directives. */
-+#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
- #define TARGET_CAN_SPLIT_STACK
- #endif
-diff --git a/gcc/config/i386/gnu.h b/gcc/config/i386/gnu.h
-index afd3e8e8841..25fbc07f58c 100644
---- a/gcc/config/i386/gnu.h
-+++ b/gcc/config/i386/gnu.h
-@@ -35,10 +35,7 @@ along with GCC. If not, see <http://www.gnu.org/licenses/>.
- crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
- #endif
-
--/* -fsplit-stack uses a field in the TCB at a fixed offset. This
-- field is only available for glibc. Disable -fsplit-stack for
-- other libc implementations to avoid silent TCB corruptions. */
--#if defined (TARGET_LIBC_PROVIDES_SSP) && OPTION_GLIBC
-+#ifdef TARGET_LIBC_PROVIDES_SSP
-
- /* i386 glibc provides __stack_chk_guard in %gs:0x14. */
- #define TARGET_THREAD_SSP_OFFSET 0x14
---
-2.35.1
-
diff --git a/main/gcc/0049-properly-disable-fsplit-stack-on-non-glibc-targets-P.patch b/main/gcc/0049-properly-disable-fsplit-stack-on-non-glibc-targets-P.patch
deleted file mode 100644
index b228f24c456..00000000000
--- a/main/gcc/0049-properly-disable-fsplit-stack-on-non-glibc-targets-P.patch
+++ /dev/null
@@ -1,298 +0,0 @@
-From 7b5108375bb67532af30d1e7f553ac5f3b1096fe Mon Sep 17 00:00:00 2001
-From: Jakub Jelinek <jakub@redhat.com>
-Date: Mon, 24 Jan 2022 11:13:39 +0100
-Subject: [PATCH] properly disable -fsplit-stack on non-glibc targets
- [PR104170]
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-On Sat, Jan 22, 2022 at 10:32:21AM +0100, Martin Liška wrote:
-> I've just noticed the patch broke a few cross compilers:
->
-> s390x-ibm-tpf:
->
-> /home/marxin/buildworker/zen2-cross-compilers/build/gcc/common/config/s390/s390-common.cc: In function ‘bool s390_supports_split_stack(bool, gcc_options*)’:
-> /home/marxin/buildworker/zen2-cross-compilers/build/gcc/common/config/s390/s390-common.cc:126:13: error: ‘struct gcc_options’ has no member named ‘x_linux_libc’
-> 126 | if (opts->x_linux_libc == LIBC_GLIBC)
-> | ^~~~~~~~~~~~
->
-> i686-kopensolaris-gnu, i686-symbolics-gnu
->
-> /home/marxin/buildworker/zen2-cross-compilers/build/gcc/common/config/i386/i386-common.cc: In function ‘bool ix86_supports_split_stack(bool, gcc_options*)’:
-> /home/marxin/buildworker/zen2-cross-compilers/build/gcc/common/config/i386/i386-common.cc:1721:13: error: ‘struct gcc_options’ has no member named ‘x_linux_libc’
-> 1721 | if (opts->x_linux_libc != LIBC_GLIBC)
-> | ^~~~~~~~~~~~
-> make[1]: *** [Makefile:2418: i386-common.o] Error 1
->
-> Can you please take a look? Btw. do you have a bugzilla account?
-
-I bet instead of opts->x_linux_libc != LIBC_GLIBC it needs to use
- #ifdef OPTION_GLIBC
- if (!OPTION_GLIBC)
- #endif
-or so. I think the first committed patch actually used that
-but used it in #if directive, which is wrong because it is something
-that needs to be evaluated at runtime.
-
-That doesn't work well either, because the *supports_split_stack
-hooks have opts argument and OPTION_GLIBC doesn't take that.
-
-So, here is a patch that introduces OPTION_*_P macros that take opts
-as an argument and redefines OPTION_* using those (similarly to how
-the option scripts create TARGET_*_P and TARGET_* macros).
-
-2022-01-24 Jakub Jelinek <jakub@redhat.com>
-
- PR bootstrap/104170
- * config/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
- OPTION_BIONIC_P, OPTION_MUSL_P): Define.
- (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
- using OPTION_*_P macros.
- * config/alpha/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
- OPTION_BIONIC_P, OPTION_MUSL_P): Define.
- (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
- using OPTION_*_P macros.
- * config/rs6000/linux.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
- OPTION_BIONIC_P, OPTION_MUSL_P): Define.
- (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
- using OPTION_*_P macros.
- * config/rs6000/linux64.h (OPTION_GLIBC_P, OPTION_UCLIBC_P,
- OPTION_BIONIC_P, OPTION_MUSL_P): Define.
- (OPTION_GLIBC, OPTION_UCLIBC, OPTION_BIONIC, OPTION_MUSL): Redefine
- using OPTION_*_P macros.
- * config/fuchsia.h (OPTION_MUSL_P): Redefine.
- * config/glibc-stdint.h (OPTION_MUSL_P): Define if not defined.
- * common/config/s390/s390-common.cc (s390_supports_split_stack): Re-add
- ATTRIBUTE_UNUSED to opts parameter. If OPTION_GLIBC_P is defined, use
- OPTION_GLIBC_P (opts) as condition, otherwise assume if (false).
- * common/config/i386/i386-common.cc (ix86_supports_split_stack): If
- OPTION_GLIBC_P is defined use !OPTION_GLIBC_P (opts) as condition,
- otherwise assume if (true).
----
- gcc/common/config/i386/i386-common.c | 4 ++--
- gcc/common/config/s390/s390-common.c | 6 ++++--
- gcc/config/alpha/linux.h | 25 +++++++++++++++----------
- gcc/config/fuchsia.h | 2 ++
- gcc/config/glibc-stdint.h | 3 +++
- gcc/config/linux.h | 25 +++++++++++++++----------
- gcc/config/rs6000/linux.h | 25 +++++++++++++++----------
- gcc/config/rs6000/linux64.h | 25 +++++++++++++++----------
- 8 files changed, 71 insertions(+), 44 deletions(-)
-
-diff --git a/gcc/common/config/i386/i386-common.c b/gcc/common/config/i386/i386-common.c
-index a3b5258e828..864e68ab985 100644
---- a/gcc/common/config/i386/i386-common.c
-+++ b/gcc/common/config/i386/i386-common.c
-@@ -1699,8 +1699,8 @@ static bool
- ix86_supports_split_stack (bool report,
- struct gcc_options *opts ATTRIBUTE_UNUSED)
- {
--#ifdef TARGET_THREAD_SPLIT_STACK_OFFSET
-- if (opts->x_linux_libc != LIBC_GLIBC)
-+#if defined(TARGET_THREAD_SPLIT_STACK_OFFSET) && defined(OPTION_GLIBC_P)
-+ if (!OPTION_GLIBC_P (opts))
- #endif
- {
- if (report)
-diff --git a/gcc/common/config/s390/s390-common.c b/gcc/common/config/s390/s390-common.c
-index 8c1e590322d..11116f131cb 100644
---- a/gcc/common/config/s390/s390-common.c
-+++ b/gcc/common/config/s390/s390-common.c
-@@ -121,10 +121,12 @@ s390_handle_option (struct gcc_options *opts ATTRIBUTE_UNUSED,
-
- static bool
- s390_supports_split_stack (bool report,
-- struct gcc_options *opts)
-+ struct gcc_options *opts ATTRIBUTE_UNUSED)
- {
-- if (opts->x_linux_libc == LIBC_GLIBC)
-+#ifdef OPTION_GLIBC_P
-+ if (OPTION_GLIBC_P (opts))
- return true;
-+#endif
-
- if (report)
- error ("%<-fsplit-stack%> currently only supported on GNU/Linux");
-diff --git a/gcc/config/alpha/linux.h b/gcc/config/alpha/linux.h
-index bde7fb0d292..812ec8ecb31 100644
---- a/gcc/config/alpha/linux.h
-+++ b/gcc/config/alpha/linux.h
-@@ -58,18 +58,23 @@ along with GCC; see the file COPYING3. If not see
- #define WCHAR_TYPE "int"
-
- #ifdef SINGLE_LIBC
--#define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC)
--#define OPTION_UCLIBC (DEFAULT_LIBC == LIBC_UCLIBC)
--#define OPTION_BIONIC (DEFAULT_LIBC == LIBC_BIONIC)
--#undef OPTION_MUSL
--#define OPTION_MUSL (DEFAULT_LIBC == LIBC_MUSL)
-+#define OPTION_GLIBC_P(opts) (DEFAULT_LIBC == LIBC_GLIBC)
-+#define OPTION_UCLIBC_P(opts) (DEFAULT_LIBC == LIBC_UCLIBC)
-+#define OPTION_BIONIC_P(opts) (DEFAULT_LIBC == LIBC_BIONIC)
-+#undef OPTION_MUSL_P
-+#define OPTION_MUSL_P(opts) (DEFAULT_LIBC == LIBC_MUSL)
- #else
--#define OPTION_GLIBC (linux_libc == LIBC_GLIBC)
--#define OPTION_UCLIBC (linux_libc == LIBC_UCLIBC)
--#define OPTION_BIONIC (linux_libc == LIBC_BIONIC)
--#undef OPTION_MUSL
--#define OPTION_MUSL (linux_libc == LIBC_MUSL)
-+#define OPTION_GLIBC_P(opts) ((opts)->x_linux_libc == LIBC_GLIBC)
-+#define OPTION_UCLIBC_P(opts) ((opts)->x_linux_libc == LIBC_UCLIBC)
-+#define OPTION_BIONIC_P(opts) ((opts)->x_linux_libc == LIBC_BIONIC)
-+#undef OPTION_MUSL_P
-+#define OPTION_MUSL_P(opts) ((opts)->x_linux_libc == LIBC_MUSL)
- #endif
-+#define OPTION_GLIBC OPTION_GLIBC_P (&global_options)
-+#define OPTION_UCLIBC OPTION_UCLIBC_P (&global_options)
-+#define OPTION_BIONIC OPTION_BIONIC_P (&global_options)
-+#undef OPTION_MUSL
-+#define OPTION_MUSL OPTION_MUSL_P (&global_options)
-
- /* Determine what functions are present at the runtime;
- this includes full c99 runtime and sincos. */
-diff --git a/gcc/config/fuchsia.h b/gcc/config/fuchsia.h
-index 54602dc300d..47c0dfd8b81 100644
---- a/gcc/config/fuchsia.h
-+++ b/gcc/config/fuchsia.h
-@@ -52,6 +52,8 @@ along with GCC; see the file COPYING3. If not see
- /* We are using MUSL as our libc. */
- #undef OPTION_MUSL
- #define OPTION_MUSL 1
-+#undef OPTION_MUSL_P
-+#define OPTION_MUSL_P(opts) 1
-
- #ifndef TARGET_SUB_OS_CPP_BUILTINS
- #define TARGET_SUB_OS_CPP_BUILTINS()
-diff --git a/gcc/config/glibc-stdint.h b/gcc/config/glibc-stdint.h
-index c8d7ba18d1c..f095197514f 100644
---- a/gcc/config/glibc-stdint.h
-+++ b/gcc/config/glibc-stdint.h
-@@ -27,6 +27,9 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
- #ifndef OPTION_MUSL
- #define OPTION_MUSL 0
- #endif
-+#ifndef OPTION_MUSL_P
-+#define OPTION_MUSL_P(opts) 0
-+#endif
-
- #define SIG_ATOMIC_TYPE "int"
-
-diff --git a/gcc/config/linux.h b/gcc/config/linux.h
-index 7fcf402b416..ab62a1741f7 100644
---- a/gcc/config/linux.h
-+++ b/gcc/config/linux.h
-@@ -29,18 +29,23 @@ see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
-
- /* C libraries supported on Linux. */
- #ifdef SINGLE_LIBC
--#define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC)
--#define OPTION_UCLIBC (DEFAULT_LIBC == LIBC_UCLIBC)
--#define OPTION_BIONIC (DEFAULT_LIBC == LIBC_BIONIC)
--#undef OPTION_MUSL
--#define OPTION_MUSL (DEFAULT_LIBC == LIBC_MUSL)
-+#define OPTION_GLIBC_P(opts) (DEFAULT_LIBC == LIBC_GLIBC)
-+#define OPTION_UCLIBC_P(opts) (DEFAULT_LIBC == LIBC_UCLIBC)
-+#define OPTION_BIONIC_P(opts) (DEFAULT_LIBC == LIBC_BIONIC)
-+#undef OPTION_MUSL_P
-+#define OPTION_MUSL_P(opts) (DEFAULT_LIBC == LIBC_MUSL)
- #else
--#define OPTION_GLIBC (linux_libc == LIBC_GLIBC)
--#define OPTION_UCLIBC (linux_libc == LIBC_UCLIBC)
--#define OPTION_BIONIC (linux_libc == LIBC_BIONIC)
--#undef OPTION_MUSL
--#define OPTION_MUSL (linux_libc == LIBC_MUSL)
-+#define OPTION_GLIBC_P(opts) ((opts)->x_linux_libc == LIBC_GLIBC)
-+#define OPTION_UCLIBC_P(opts) ((opts)->x_linux_libc == LIBC_UCLIBC)
-+#define OPTION_BIONIC_P(opts) ((opts)->x_linux_libc == LIBC_BIONIC)
-+#undef OPTION_MUSL_P
-+#define OPTION_MUSL_P(opts) ((opts)->x_linux_libc == LIBC_MUSL)
- #endif
-+#define OPTION_GLIBC OPTION_GLIBC_P (&global_options)
-+#define OPTION_UCLIBC OPTION_UCLIBC_P (&global_options)
-+#define OPTION_BIONIC OPTION_BIONIC_P (&global_options)
-+#undef OPTION_MUSL
-+#define OPTION_MUSL OPTION_MUSL_P (&global_options)
-
- #define GNU_USER_TARGET_OS_CPP_BUILTINS() \
- do { \
-diff --git a/gcc/config/rs6000/linux.h b/gcc/config/rs6000/linux.h
-index 47c9d9ac0b6..be04462d357 100644
---- a/gcc/config/rs6000/linux.h
-+++ b/gcc/config/rs6000/linux.h
-@@ -27,18 +27,23 @@
- #define NO_PROFILE_COUNTERS 1
-
- #ifdef SINGLE_LIBC
--#define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC)
--#define OPTION_UCLIBC (DEFAULT_LIBC == LIBC_UCLIBC)
--#define OPTION_BIONIC (DEFAULT_LIBC == LIBC_BIONIC)
--#undef OPTION_MUSL
--#define OPTION_MUSL (DEFAULT_LIBC == LIBC_MUSL)
-+#define OPTION_GLIBC_P(opts) (DEFAULT_LIBC == LIBC_GLIBC)
-+#define OPTION_UCLIBC_P(opts) (DEFAULT_LIBC == LIBC_UCLIBC)
-+#define OPTION_BIONIC_P(opts) (DEFAULT_LIBC == LIBC_BIONIC)
-+#undef OPTION_MUSL_P
-+#define OPTION_MUSL_P(opts) (DEFAULT_LIBC == LIBC_MUSL)
- #else
--#define OPTION_GLIBC (linux_libc == LIBC_GLIBC)
--#define OPTION_UCLIBC (linux_libc == LIBC_UCLIBC)
--#define OPTION_BIONIC (linux_libc == LIBC_BIONIC)
--#undef OPTION_MUSL
--#define OPTION_MUSL (linux_libc == LIBC_MUSL)
-+#define OPTION_GLIBC_P(opts) ((opts)->x_linux_libc == LIBC_GLIBC)
-+#define OPTION_UCLIBC_P(opts) ((opts)->x_linux_libc == LIBC_UCLIBC)
-+#define OPTION_BIONIC_P(opts) ((opts)->x_linux_libc == LIBC_BIONIC)
-+#undef OPTION_MUSL_P
-+#define OPTION_MUSL_P(opts) ((opts)->x_linux_libc == LIBC_MUSL)
- #endif
-+#define OPTION_GLIBC OPTION_GLIBC_P (&global_options)
-+#define OPTION_UCLIBC OPTION_UCLIBC_P (&global_options)
-+#define OPTION_BIONIC OPTION_BIONIC_P (&global_options)
-+#undef OPTION_MUSL
-+#define OPTION_MUSL OPTION_MUSL_P (&global_options)
-
- /* Determine what functions are present at the runtime;
- this includes full c99 runtime and sincos. */
-diff --git a/gcc/config/rs6000/linux64.h b/gcc/config/rs6000/linux64.h
-index 43499ed29cf..1d73a09a476 100644
---- a/gcc/config/rs6000/linux64.h
-+++ b/gcc/config/rs6000/linux64.h
-@@ -267,18 +267,23 @@ extern int dot_symbols;
- #define OS_MISSING_POWERPC64 !TARGET_64BIT
-
- #ifdef SINGLE_LIBC
--#define OPTION_GLIBC (DEFAULT_LIBC == LIBC_GLIBC)
--#define OPTION_UCLIBC (DEFAULT_LIBC == LIBC_UCLIBC)
--#define OPTION_BIONIC (DEFAULT_LIBC == LIBC_BIONIC)
--#undef OPTION_MUSL
--#define OPTION_MUSL (DEFAULT_LIBC == LIBC_MUSL)
-+#define OPTION_GLIBC_P(opts) (DEFAULT_LIBC == LIBC_GLIBC)
-+#define OPTION_UCLIBC_P(opts) (DEFAULT_LIBC == LIBC_UCLIBC)
-+#define OPTION_BIONIC_P(opts) (DEFAULT_LIBC == LIBC_BIONIC)
-+#undef OPTION_MUSL_P
-+#define OPTION_MUSL_P(opts) (DEFAULT_LIBC == LIBC_MUSL)
- #else
--#define OPTION_GLIBC (linux_libc == LIBC_GLIBC)
--#define OPTION_UCLIBC (linux_libc == LIBC_UCLIBC)
--#define OPTION_BIONIC (linux_libc == LIBC_BIONIC)
--#undef OPTION_MUSL
--#define OPTION_MUSL (linux_libc == LIBC_MUSL)
-+#define OPTION_GLIBC_P(opts) ((opts)->x_linux_libc == LIBC_GLIBC)
-+#define OPTION_UCLIBC_P(opts) ((opts)->x_linux_libc == LIBC_UCLIBC)
-+#define OPTION_BIONIC_P(opts) ((opts)->x_linux_libc == LIBC_BIONIC)
-+#undef OPTION_MUSL_P
-+#define OPTION_MUSL_P(opts) ((opts)->x_linux_libc == LIBC_MUSL)
- #endif
-+#define OPTION_GLIBC OPTION_GLIBC_P (&global_options)
-+#define OPTION_UCLIBC OPTION_UCLIBC_P (&global_options)
-+#define OPTION_BIONIC OPTION_BIONIC_P (&global_options)
-+#undef OPTION_MUSL
-+#define OPTION_MUSL OPTION_MUSL_P (&global_options)
-
- /* Determine what functions are present at the runtime;
- this includes full c99 runtime and sincos. */
---
-2.35.1
-
diff --git a/main/gcc/0050-x86-Fix-fsplit-stack-feature-detection-via-TARGET_CA.patch b/main/gcc/0050-x86-Fix-fsplit-stack-feature-detection-via-TARGET_CA.patch
deleted file mode 100644
index 8388196957c..00000000000
--- a/main/gcc/0050-x86-Fix-fsplit-stack-feature-detection-via-TARGET_CA.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 400bae077d11c3a2ee9f4c8b96c31bbf39416a4f Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren@soeren-tempel.net>
-Date: Mon, 21 Feb 2022 04:13:47 +0100
-Subject: [PATCH] x86: Fix -fsplit-stack feature detection via
- TARGET_CAN_SPLIT_STACK
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Since commit c163647ffbc9a20c8feb6e079dbecccfe016c82e -fsplit-stack
-is only supported on glibc targets. However, this original commit
-required some fixups. As part of the fixup, the changes to the
-gnu-user-common.h and gnu.h where partially reverted in commit
-60953a23d57b13a672f751bec0c6eefc059eb1ab thus causing TARGET_CAN_SPLIT_STACK
-to be defined for non-glibc targets even though -fsplit-stack is
-actually not supported and attempting to use it causes a runtime error.
-
-This causes gcc internal code, such as ./gcc/go/gospec.c to not
-correctly detect that -fsplit-stack is not supported and thus causes
-gccgo to fail compilation on non-glibc targets.
-
-This commit ensures that TARGET_CAN_SPLIT_STACK is set based on the
-changes performed in 2c31a8be4a5db11a0a0e97c366dded6362421086, i.e.
-the new OPTION_GLIBC_P macro is now used to detect if -fsplit-stack is
-supported in the x86 header files.
-
-The proposed changes have been tested on x86_64 Alpine Linux (which uses
-musl libc) and fix compilation of gccgo for this target.
-
-Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
-
-gcc/ChangeLog:
-
- * config/i386/gnu-user-common.h (defined): Only define
- TARGET_CAN_SPLIT_STACK for glibc targets.
- * config/i386/gnu.h (defined): Ditto.
----
- gcc/config/i386/gnu-user-common.h | 5 +++--
- gcc/config/i386/gnu.h | 5 +++--
- 2 files changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/gcc/config/i386/gnu-user-common.h b/gcc/config/i386/gnu-user-common.h
-index 00226f5a455..4e3fbb1de05 100644
---- a/gcc/config/i386/gnu-user-common.h
-+++ b/gcc/config/i386/gnu-user-common.h
-@@ -66,7 +66,8 @@ along with GCC; see the file COPYING3. If not see
- #define STACK_CHECK_STATIC_BUILTIN 1
-
- /* We only build the -fsplit-stack support in libgcc if the
-- assembler has full support for the CFI directives. */
--#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
-+ assembler has full support for the CFI directives. Also
-+ we only support -fsplit-stack on glibc targets. */
-+#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE && defined(OPTION_GLIBC_P)
- #define TARGET_CAN_SPLIT_STACK
- #endif
-diff --git a/gcc/config/i386/gnu.h b/gcc/config/i386/gnu.h
-index 25fbc07f58c..41a6a37dfee 100644
---- a/gcc/config/i386/gnu.h
-+++ b/gcc/config/i386/gnu.h
-@@ -41,8 +41,9 @@ along with GCC. If not, see <http://www.gnu.org/licenses/>.
- #define TARGET_THREAD_SSP_OFFSET 0x14
-
- /* We only build the -fsplit-stack support in libgcc if the
-- assembler has full support for the CFI directives. */
--#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE
-+ assembler has full support for the CFI directives. Also
-+ we only support -fsplit-stack on glibc targets. */
-+#if HAVE_GAS_CFI_PERSONALITY_DIRECTIVE && defined(OPTION_GLIBC_P)
- #define TARGET_CAN_SPLIT_STACK
- #endif
- /* We steal the last transactional memory word. */
---
-2.35.1
-
diff --git a/main/gcc/0051-go-gospec-forcibly-disable-fsplit-stack-support.patch b/main/gcc/0051-go-gospec-forcibly-disable-fsplit-stack-support.patch
deleted file mode 100644
index 319b1ef8a95..00000000000
--- a/main/gcc/0051-go-gospec-forcibly-disable-fsplit-stack-support.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From dba87d9796b61f4f3eea83c200a2d208564e2277 Mon Sep 17 00:00:00 2001
-From: Ariadne Conill <ariadne@dereferenced.org>
-Date: Mon, 21 Feb 2022 10:04:47 +0000
-Subject: [PATCH] go/gospec: forcibly disable -fsplit-stack support
-
-for some reason, TARGET_CAN_SPLIT_STACK still gets defined on 32-bit x86,
-so hackfix it for now
----
- gcc/go/gospec.c | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/gcc/go/gospec.c b/gcc/go/gospec.c
-index cf8d0f2b60e..d5bfa57ea45 100644
---- a/gcc/go/gospec.c
-+++ b/gcc/go/gospec.c
-@@ -269,11 +269,12 @@ lang_specific_driver (struct cl_decoded_option **in_decoded_options,
- /* Copy the 0th argument, i.e., the name of the program itself. */
- new_decoded_options[j++] = decoded_options[i++];
-
--#ifdef TARGET_CAN_SPLIT_STACK
-+ /* Hackfix: we never support split stack on Alpine GCC */
-+#if 0
- supports_split_stack = 1;
- #endif
-
--#ifdef TARGET_CAN_SPLIT_STACK_64BIT
-+#if 0
- if (is_m64)
- supports_split_stack = 1;
- #endif
---
-2.35.1
-
diff --git a/main/gcc/APKBUILD b/main/gcc/APKBUILD
index 56253caad1f..fba9f49c48f 100644
--- a/main/gcc/APKBUILD
+++ b/main/gcc/APKBUILD
@@ -2,25 +2,29 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
pkgname=gcc
-_pkgbase=11.2.1
-pkgver=11.2.1_git20220219
+pkgver=13.2.1_git20240309
+# i.e. 13.2.1, must match gcc/BASE-VER
+_pkgbase="${pkgver%%_git*}"
+# date component from snapshots
+_pkgsnap="${pkgver##*_git}"
[ "$BOOTSTRAP" = "nolibc" ] && pkgname="gcc-pass2"
[ "$CBUILD" != "$CHOST" ] && _cross="-$CARCH" || _cross=""
[ "$CHOST" != "$CTARGET" ] && _target="-$CTARGET_ARCH" || _target=""
pkgname="$pkgname$_target"
-pkgrel=3
+pkgrel=0
pkgdesc="The GNU Compiler Collection"
url="https://gcc.gnu.org"
arch="all"
-license="GPL-2.0-or-later LGPL-2.1-or-later"
+license="GPL-2.0-or-later AND LGPL-2.1-or-later"
_gccrel=$pkgver-r$pkgrel
depends="binutils$_target"
makedepends_build="gcc$_cross g++$_cross bison flex texinfo gawk zip gmp-dev mpfr-dev mpc1-dev zlib-dev"
makedepends_host="linux-headers gmp-dev mpfr-dev mpc1-dev isl-dev zlib-dev !gettext-dev libucontext-dev"
subpackages=" "
-[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-doc$_target"
+[ "$CHOST" = "$CTARGET" ] && subpackages="gcc-gdb gcc-doc$_target"
replaces="libstdc++ binutils"
+options="!check"
: "${LANG_CXX:=true}"
: "${LANG_D:=true}"
@@ -53,11 +57,13 @@ if [ "$CHOST" != "$CTARGET" ]; then
_libatomic=false
_libitm=false
+ # format-sec: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100431
+ CPPFLAGS="${CPPFLAGS/-Werror=format-security/}"
# reset target flags (should be set in crosscreate abuild)
# fixup flags. seems gcc treats CPPFLAGS as global without
# _FOR_xxx variants. wrap it in CFLAGS and CXXFLAGS.
- export CFLAGS="$CPPFLAGS $CFLAGS"
- export CXXFLAGS="$CPPFLAGS $CXXFLAGS"
+ export CFLAGS="$CPPFLAGS -g0 ${CFLAGS/-Werror=format-security/}"
+ export CXXFLAGS="$CPPFLAGS -g0 ${CXXFLAGS/-Werror=format-security/}"
unset CPPFLAGS
export CFLAGS_FOR_TARGET=" "
export CXXFLAGS_FOR_TARGET=" "
@@ -65,10 +71,12 @@ if [ "$CHOST" != "$CTARGET" ]; then
STRIP_FOR_TARGET="$CTARGET-strip"
elif [ "$CBUILD" != "$CHOST" ]; then
+ # format-sec: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100431
+ CPPFLAGS="${CPPFLAGS/-Werror=format-security/}"
# fixup flags. seems gcc treats CPPFLAGS as global without
# _FOR_xxx variants. wrap it in CFLAGS and CXXFLAGS.
- export CFLAGS="$CPPFLAGS $CFLAGS"
- export CXXFLAGS="$CPPFLAGS $CXXFLAGS"
+ export CFLAGS="$CPPFLAGS -g0 ${CFLAGS/-Werror=format-security/}"
+ export CXXFLAGS="$CPPFLAGS -g0 ${CXXFLAGS/-Werror=format-security/}"
unset CPPFLAGS
# reset flags and cc for build
@@ -93,13 +101,32 @@ elif [ "$CBUILD" != "$CHOST" ]; then
else
STRIP_FOR_TARGET=${CROSS_COMPILE}strip
_builddir="$srcdir/build"
+
+ # format-sec: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100431
+ CPPFLAGS="${CPPFLAGS/-Werror=format-security/}"
+ # pass -g0 by default to bypass -g, since we don't do debug
+ # if -dbg added, the -g is appended and overrides this
+ export CFLAGS="$CPPFLAGS -g0 ${CFLAGS/-Werror=format-security/} -O2"
+ export CXXFLAGS="$CPPFLAGS -g0 ${CXXFLAGS/-Werror=format-security/} -O2"
+ unset CPPFLAGS
+ # https://gcc.gnu.org/install/build.html
+ export CFLAGS_FOR_TARGET="$CFLAGS"
+ export CXXFLAGS_FOR_TARGET="$CXXFLAGS"
+ export LDFLAGS_FOR_TARGET="$LDFLAGS"
+ export BOOT_CFLAGS="$CFLAGS"
+ export BOOT_CXXFLAGS="$CXXFLAGS"
+ export BOOT_LDFLAGS="$LDFLAGS"
fi
+case "$CARCH" in
# GDC hasn't been ported to PowerPC
# See libphobos/configure.tgt in GCC sources for supported targets
# riscv fails with: error: static assert "unimplemented"
-case "$CARCH" in
-ppc64le|riscv64) LANG_D=false ;;
+ppc64le|riscv64|loongarch64) LANG_D=false ;;
+# GDC does currently not work on 32-bit musl architectures.
+# This is a known upstream issue.
+# See: https://github.com/dlang/druntime/pull/3383
+armhf|armv7|x86) LANG_D=false ;;
esac
# libitm has TEXTRELs in ARM build, so disable for now
@@ -107,6 +134,7 @@ case "$CTARGET_ARCH" in
arm*) _libitm=false ;;
mips*) _libitm=false ;;
riscv64) _libitm=false ;;
+loongarch64) _libitm=false ;;
esac
# Internal libffi fails to build on MIPS at the moment, need to
@@ -114,13 +142,14 @@ esac
# the internal libffi.
case "$CTARGET_ARCH" in
mips*) LANG_GO=false ;;
+loongarch64) LANG_GO=false ;;
esac
# Fortran uses libquadmath if toolchain has __float128
# currently on x86, x86_64 and ia64
_libquadmath=$LANG_FORTRAN
case "$CTARGET_ARCH" in
-x86 | x86_64) _libquadmath=$LANG_FORTRAN ;;
+x86 | x86_64 | ppc64le) _libquadmath=$LANG_FORTRAN ;;
*) _libquadmath=false ;;
esac
@@ -138,15 +167,20 @@ riscv64)
LANG_ADA=false;;
esac
+case "$CTARGET_ARCH" in
+loongarch64)
+LANG_ADA=false;;
+esac
+
_languages=c
if $LANG_CXX; then
- subpackages="$subpackages libstdc++:libcxx:$CTARGET_ARCH g++$_target:gpp"
+ subpackages="$subpackages libstdc++:libcxx:$CTARGET_ARCH libstdc++-dev$_target:libcxx_dev g++$_target:gpp"
_languages="$_languages,c++"
fi
if $LANG_D; then
subpackages="$subpackages libgphobos::$CTARGET_ARCH gcc-gdc$_target:gdc"
_languages="$_languages,d"
- makedepends_build="$makedepends_build libucontext-dev"
+ makedepends_build="$makedepends_build libucontext-dev gcc-gdc-bootstrap"
fi
if $LANG_OBJC; then
subpackages="$subpackages libobjc::$CTARGET_ARCH gcc-objc$_target:objc"
@@ -161,25 +195,32 @@ if $LANG_FORTRAN; then
_languages="$_languages,fortran"
fi
if $LANG_ADA; then
- subpackages="$subpackages libgnat-static:libgnatstatic:$CTARGET_ARCH libgnat::$CTARGET_ARCH gcc-gnat$_target:gnat"
+ subpackages="$subpackages gcc-gnat$_target:gnat"
_languages="$_languages,ada"
- [ "$CBUILD" = "$CTARGET" ] && makedepends_build="$makedepends_build gcc-gnat-bootstrap"
- [ "$CBUILD" != "$CTARGET" ] && makedepends_build="$makedepends_build gcc-gnat gcc-gnat$_cross"
+ if [ "$CBUILD" = "$CTARGET" ]; then
+ makedepends_build="$makedepends_build gcc-gnat-bootstrap"
+ subpackages="$subpackages libgnat-static:libgnatstatic:$CTARGET_ARCH libgnat::$CTARGET_ARCH"
+ else
+ subpackages="$subpackages libgnat::$CTARGET_ARCH"
+ makedepends_build="$makedepends_build gcc-gnat gcc-gnat$_cross"
+ fi
fi
if $LANG_JIT; then
subpackages="$subpackages libgccjit:jit libgccjit-dev:jitdev"
- _languages="$_languages,jit"
fi
makedepends="$makedepends_build $makedepends_host"
# when using upstream releases, use this URI template
# https://gcc.gnu.org/pub/gcc/releases/gcc-${_pkgbase:-$pkgver}/gcc-${_pkgbase:-$pkgver}.tar.xz
#
-# right now, we are using a git snapshot.
+# right now, we are using a git snapshot. snapshots are taken from gcc.gnu.org/pub/gcc/snapshots.
+# However, since they are periodically deleted from the GCC mirrors the utilized snapshots are
+# mirrored on dev.alpinelinux.org. Please ensure that the snapshot Git commit (as stated in the
+# README) matches the base commit on the version-specific branch in the Git repository below.
#
# PLEASE submit all patches to gcc to https://gitlab.alpinelinux.org/kaniini/alpine-gcc-patches,
# so that they can be properly tracked and easily rebased if needed.
-source="https://dev.alpinelinux.org/~nenolod/gcc-${pkgver}.tar.xz
+source="https://dev.alpinelinux.org/archive/gcc/${_pkgbase%%.*}-$_pkgsnap/gcc-${_pkgbase%%.*}-$_pkgsnap.tar.xz
0001-posix_memalign.patch
0002-gcc-poison-system-directories.patch
0003-specs-turn-on-Wl-z-now-by-default.patch
@@ -191,51 +232,39 @@ source="https://dev.alpinelinux.org/~nenolod/gcc-${pkgver}.tar.xz
0009-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch
0010-Don-t-declare-asprintf-if-defined-as-a-macro.patch
0011-libiberty-copy-PIC-objects-during-build-process.patch
- 0012-libitm-disable-FORTIFY.patch
- 0013-libgcc_s.patch
- 0014-nopie.patch
- 0015-libffi-use-__linux__-instead-of-__gnu_linux__-for-mu.patch
- 0016-dlang-update-zlib-binding.patch
- 0017-dlang-use-libucontext-on-mips64.patch
- 0018-dlang-libdruntime-define-fcntl.h-constants-for-mips6.patch
- 0019-ada-fix-shared-linking.patch
- 0020-build-fix-CXXFLAGS_FOR_BUILD-passing.patch
- 0021-add-fortify-headers-paths.patch
- 0022-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch
- 0023-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch
- 0024-mips64-disable-multilib-support.patch
- 0025-aarch64-disable-multilib-support.patch
- 0026-s390x-disable-multilib-support.patch
- 0027-ppc64-le-disable-multilib-support.patch
- 0028-x86_64-disable-multilib-support.patch
- 0029-riscv-disable-multilib-support.patch
- 0030-always-build-libgcc_eh.a.patch
- 0031-ada-libgnarl-compatibility-for-musl.patch
- 0032-ada-musl-support-fixes.patch
- 0033-gcc-go-Fix-handling-of-signal-34-on-musl.patch
- 0034-There-are-more-than-one-st_-a-m-c-tim-fields-in-stru.patch
- 0035-gcc-go-signal-34-is-special-on-musl-libc.patch
- 0036-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch
- 0037-gcc-go-link-to-libucontext.patch
- 0038-Use-generic-errstr.go-implementation-on-musl.patch
- 0039-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
- 0040-configure-fix-detection-of-atomic-builtins-in-libato.patch
- 0041-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch
- 0042-Fix-attempt-to-use-poisoned-calloc-error-in-libgccji.patch
- 0043-stddef.h-add-support-for-musl-typedef-macro-guards.patch
- 0044-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch
- 0045-libgo-include-asm-ptrace.h-for-pt_regs-definition-on.patch
- 0046-Disable-fsplit-stack-support-on-non-glibc-targets.patch
- 0047-x86-Properly-disable-fsplit-stack-support-on-non-gli.patch
- 0048-gdc-unconditionally-link-libgphobos-against-libucont.patch
- 0049-properly-disable-fsplit-stack-on-non-glibc-targets-P.patch
- 0050-x86-Fix-fsplit-stack-feature-detection-via-TARGET_CA.patch
- 0051-go-gospec-forcibly-disable-fsplit-stack-support.patch
- libgo-musl-1.2.3.patch
+ 0012-libgcc_s.patch
+ 0013-nopie.patch
+ 0014-ada-fix-shared-linking.patch
+ 0015-build-fix-CXXFLAGS_FOR_BUILD-passing.patch
+ 0016-add-fortify-headers-paths.patch
+ 0017-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch
+ 0018-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch
+ 0019-aarch64-disable-multilib-support.patch
+ 0020-s390x-disable-multilib-support.patch
+ 0021-ppc64-le-disable-multilib-support.patch
+ 0022-x86_64-disable-multilib-support.patch
+ 0023-riscv-disable-multilib-support.patch
+ 0024-always-build-libgcc_eh.a.patch
+ 0025-ada-libgnarl-compatibility-for-musl.patch
+ 0026-ada-musl-support-fixes.patch
+ 0027-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
+ 0028-configure-fix-detection-of-atomic-builtins-in-libato.patch
+ 0029-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
+ 0030-gdc-unconditionally-link-libgphobos-against-libucont.patch
+ 0031-druntime-link-against-libucontext-on-all-platforms.patch
+ 0032-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
+ 0033-libphobos-do-not-use-LFS64-symbols.patch
+ 0034-libgo-fix-lfs64-use.patch
+ 0036-PR110792-Early-clobber-issues-with-rot32di2-on-i386.patch
+ 0037-loongarch-disable-multilib-support.patch
"
+# secfixes:
+# 13.2.1_git20231014-r0:
+# - CVE-2023-4039
+
# we build out-of-tree
-_gccdir="$srcdir"/gcc-$pkgver
+_gccdir="$srcdir"/gcc-${_pkgbase%%.*}-$_pkgsnap
_gcclibdir="/usr/lib/gcc/$CTARGET/${_pkgbase:-$pkgver}"
_gcclibexec="/usr/libexec/gcc/$CTARGET/${_pkgbase:-$pkgver}"
@@ -276,7 +305,7 @@ build() {
case "$CTARGET" in
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";;
+ armv6-*-*-*eabihf) _arch_configure="--with-arch=armv6kz --with-tune=arm1176jzf-s --with-fpu=vfpv2 --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";;
mips-*-*-*) _arch_configure="--with-arch=mips32 --with-mips-plt --with-float=soft --with-abi=32";;
mips64-*-*-*) _arch_configure="--with-arch=mips3 --with-tune=mips64 --with-mips-plt --with-float=soft --with-abi=64";;
@@ -285,9 +314,10 @@ build() {
powerpc-*-*-*) _arch_configure="--enable-secureplt --enable-decimal-float=no";;
powerpc64*-*-*-*) _arch_configure="--with-abi=elfv2 --enable-secureplt --enable-decimal-float=no --enable-targets=powerpcle-linux";;
i486-*-*-*) _arch_configure="--with-arch=i486 --with-tune=generic --enable-cld";;
- i586-*-*-*) _arch_configure="--with-arch=i586 --with-tune=generic --enable-cld";;
+ i586-*-*-*) _arch_configure="--with-arch=pentium-m --with-fpmath=sse --with-tune=generic --enable-cld";;
s390x-*-*-*) _arch_configure="--with-arch=z196 --with-tune=zEC12 --with-zarch --with-long-double-128 --enable-decimal-float";;
riscv64-*-*-*) _arch_configure="--with-arch=rv64gc --with-abi=lp64d --enable-autolink-libatomic";;
+ loongarch64-*-*-*) _arch_configure="--with-arch=loongarch64 --with-abi=lp64d";;
esac
case "$CTARGET_ARCH" in
@@ -297,10 +327,9 @@ build() {
case "$CTARGET_LIBC" in
musl)
- # musl does not support mudflap, or libsanitizer
- # libmpx uses secure_getenv and struct _libc_fpstate not present in musl
+ # musl does not support libsanitizer
# alpine musl provides libssp_nonshared.a, so we don't need libssp either
- _libc_configure="--disable-libssp --disable-libmpx --disable-libmudflap --disable-libsanitizer"
+ _libc_configure="--disable-libssp --disable-libsanitizer"
_symvers="--disable-symvers"
export libat_cv_have_ifunc=no
;;
@@ -314,8 +343,6 @@ build() {
*) _bootstrap_configure="--enable-shared --enable-threads --enable-tls" ;;
esac
- $LANG_JIT && _jit_configure="--enable-host-shared"
-
$_libgomp || _bootstrap_configure="$_bootstrap_configure --disable-libgomp"
$_libatomic || _bootstrap_configure="$_bootstrap_configure --disable-libatomic"
$_libitm || _bootstrap_configure="$_bootstrap_configure --disable-libitm"
@@ -333,40 +360,63 @@ build() {
echo " libc_configure=$_libc_configure"
echo " cross_configure=$_cross_configure"
echo " bootstrap_configure=$_bootstrap_configure"
- echo " hash_style_configure=$_hash_style_configure"
+ echo " hash_style_configure=$_hash_style_configure"
echo ""
- export CFLAGS="$CFLAGS -O2"
+ local version="Alpine $pkgver"
+ local gccconfiguration="
+ --prefix=/usr
+ --mandir=/usr/share/man
+ --infodir=/usr/share/info
+ --build=$CBUILD
+ --host=$CHOST
+ --target=$CTARGET
+ --enable-checking=release
+ --disable-cet
+ --disable-fixed-point
+ --disable-libstdcxx-pch
+ --disable-multilib
+ --disable-nls
+ --disable-werror
+ $_symvers
+ --enable-__cxa_atexit
+ --enable-default-pie
+ --enable-default-ssp
+ --enable-languages=$_languages
+ --enable-link-serialization=2
+ --enable-linker-build-id
+ $_arch_configure
+ $_libc_configure
+ $_cross_configure
+ $_bootstrap_configure
+ --with-bugurl=https://gitlab.alpinelinux.org/alpine/aports/-/issues
+ --with-system-zlib
+ $_hash_style_configure
+ "
mkdir -p "$_builddir"
cd "$_builddir"
- "$_gccdir"/configure --prefix=/usr \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --build=${CBUILD} \
- --host=${CHOST} \
- --target=${CTARGET} \
- --with-pkgversion="Alpine $pkgver" \
- --enable-checking=release \
- --disable-fixed-point \
- --disable-libstdcxx-pch \
- --disable-multilib \
- --disable-nls \
- --disable-werror \
- $_symvers \
- --enable-__cxa_atexit \
- --enable-default-pie \
- --enable-default-ssp \
- --enable-cloog-backend \
- --enable-languages=$_languages \
- $_arch_configure \
- $_libc_configure \
- $_cross_configure \
- $_bootstrap_configure \
- $_jit_configure \
- --with-system-zlib \
- $_hash_style_configure
+ "$_gccdir"/configure $gccconfiguration \
+ --with-pkgversion="$version"
+
+ msg "building gcc"
make
+
+ # we build gccjit separate to not build all of gcc with --enable-host-shared
+ # as doing so slows it down a few %, so for some quick if's here we gain
+ # free performance
+ if $LANG_JIT; then
+ mkdir -p "$_builddir"/libgccjit-build
+ cd "$_builddir"/libgccjit-build
+ "$_gccdir"/configure $gccconfiguration \
+ --disable-bootstrap \
+ --enable-host-shared \
+ --enable-languages=jit \
+ --with-pkgversion="$version"
+
+ msg "building libgccjit"
+ make all-gcc
+ fi
}
package() {
@@ -374,6 +424,11 @@ package() {
make -j1 DESTDIR="$pkgdir" install
ln -s gcc "$pkgdir"/usr/bin/cc
+ ln -s ${CTARGET}-gcc "$pkgdir"/usr/bin/${CTARGET}-cc
+
+ if $LANG_JIT; then
+ make -C "$_builddir"/libgccjit-build/gcc DESTDIR="$pkgdir" jit.install-common
+ fi
# we dont support gcj -static
# and saving 35MB is not bad.
@@ -385,12 +440,11 @@ package() {
# strip debug info from some static libs
find "$pkgdir" \( -name libgfortran.a -o -name libobjc.a -o -name libgomp.a \
-o -name libgphobos.a -o -name libgdruntime.a \
- -o -name libmudflap.a -o -name libmudflapth.a \
-o -name libgcc.a -o -name libgcov.a -o -name libquadmath.a \
-o -name libitm.a -o -name libgo.a -o -name libcaf\*.a \
-o -name libatomic.a -o -name libasan.a -o -name libtsan.a \) \
-a -type f \
- -exec ${STRIP_FOR_TARGET} -g {} +
+ -exec $STRIP_FOR_TARGET -g {} +
if $_libgomp; then
mv "$pkgdir"/usr/lib/libgomp.spec "$pkgdir"/$_gcclibdir
@@ -417,10 +471,12 @@ package() {
mv "$i" "$pkgdir"/usr/lib/
ln -s ../../../../${i##*/} $i
done
- for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 -name "libgna*.a"); do
- mv "$i" "$pkgdir"/usr/lib/
- ln -s ../../../../${i##*/} $i
- done
+ if [ "$CHOST" = "$CTARGET" ]; then
+ for i in $(find "$pkgdir"/$_gcclibdir/adalib/ -type f -maxdepth 1 -name "libgna*.a"); do
+ mv "$i" "$pkgdir"/usr/lib/
+ ln -s ../../../../${i##*/} $i
+ done
+ fi
fi
if [ "$CHOST" != "$CTARGET" ]; then
@@ -496,9 +552,22 @@ libcxx() {
mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/libstdc++.so.* "$subpkgdir"/usr/lib/
}
+libcxx_dev() {
+ pkgdesc="GNU C++ standard runtime library (development files)"
+ depends=
+ replaces="g++"
+
+ amove usr/${_target:+$CTARGET/}lib/libstdc++.a \
+ usr/${_target:+$CTARGET/}lib/libstdc++exp.a \
+ usr/${_target:+$CTARGET/}lib/libstdc++.so \
+ usr/${_target:+$CTARGET/}lib/libstdc++fs.a \
+ usr/${_target:+$CTARGET/}lib/libsupc++.a \
+ usr/${_target:+$CTARGET/}include/c++
+}
+
gpp() {
pkgdesc="GNU C++ standard library and compiler"
- depends="libstdc++=$_gccrel gcc=$_gccrel libc-dev"
+ depends="libstdc++=$_gccrel libstdc++-dev$_target=$_gccrel gcc$_target=$_gccrel libc-dev"
mkdir -p "$subpkgdir/$_gcclibexec" \
"$subpkgdir"/usr/bin \
"$subpkgdir"/usr/${_target:+$CTARGET/}include \
@@ -506,8 +575,6 @@ gpp() {
mv "$pkgdir/$_gcclibexec/cc1plus" "$subpkgdir/$_gcclibexec/"
- mv "$pkgdir"/usr/${_target:+$CTARGET/}lib/*++* "$subpkgdir"/usr/${_target:+$CTARGET/}lib/
- mv "$pkgdir"/usr/${_target:+$CTARGET/}include/c++ "$subpkgdir"/usr/${_target:+$CTARGET/}include/
mv "$pkgdir"/usr/bin/*++ "$subpkgdir"/usr/bin/
}
@@ -595,7 +662,6 @@ gdc() {
mv "$pkgdir"/usr/bin/gdc "$subpkgdir"/usr/bin/
}
-
libgo() {
pkgdesc="Go runtime library for GCC"
depends=
@@ -605,8 +671,9 @@ libgo() {
}
go() {
- pkgdesc="Go support for GCC"
+ pkgdesc="GCC Go frontend (intended for bootstrapping community/go)"
depends="gcc=$_gccrel libgo=$_gccrel !go"
+ install="$pkgname-go.post-install"
mkdir -p "$subpkgdir"/$_gcclibexec \
"$subpkgdir"/usr/lib \
@@ -698,58 +765,51 @@ gnat() {
mv "$pkgdir"/usr/bin/*gnat* "$subpkgdir"/usr/bin/
}
+gdb() {
+ pkgdesc="$pkgdesc (gdb printers)"
+ install_if="$pkgname=$pkgver-r$pkgrel gdb"
+
+ amove \
+ usr/share/gdb/python/ \
+ usr/share/gcc-*/python/
+}
+
sha512sums="
-94d4d2e31f5a84455055d34cfbbcc63d5bd63e60345c2a4e30aa404724e65e5d14868ef50b7fcf5537dd12dc6f1381a27cede269801050e193b4bdb8f2919971 gcc-11.2.1_git20220219.tar.xz
-d46a87edb919697a37c15af99c9142c6ad8ec364fe9b5747f5808368e619766163d3d8b64e987b1155785ddc91b5b191b795857cd70118d64f978e46b476bfff 0001-posix_memalign.patch
-59fa772417c1d1baf8bd8477ef4e30975fbd616d949fbd72fa88cc72d9662f2e28214305a188d75e30c54a95be111c7998784f7d1499562490acbe194a3c2116 0002-gcc-poison-system-directories.patch
-556240f9888c24706694560ad3ba1a90d3ed6da1dd3d7eebb603f4e3551d5743908840d4b1f598d6d5dc3cc52bcfafbcd777282ec8864051c3c8aba623866d3e 0003-specs-turn-on-Wl-z-now-by-default.patch
-747a2ba2c0227471dd8a327bddd4699aa6aad5ddce2e523816e43e04fd5a4d8c2f1a69f02980632263ab1c23334d01e27d5df737a0ba9f6bd16b9c85112de82a 0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch
-0fe2b802ce0b9c986d7ea5378df49899b028baad419ccd4071fd1a2dad90736e0f04eef29056f6c74c1fa2482359629b5e3747d58fcbf3520c6ed10c66c7b87e 0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch
-7d37f31108cddfeb25ebf7e462d999873dc184bb26f74c9d7d6d32534a15070291661ab58be41ccedb44af20de0568e704b4152668c6bd803cf88f1ddfb6e35c 0006-Enable-Wformat-and-Wformat-security-by-default.patch
-698893670d00df1ddbaa7dd970b17049f94d0cc2fec3225925bbad606e44c29288e38a7afa4b4cae3c9c26be35646c52e9eadc67022b89d7b4ce97ce64a5a2ac 0007-Enable-Wtrampolines-by-default.patch
-b549d45824d6b9f2ec830ed66ba192ebfe9d9c3db554bf0b51379e9b624de0f0a1a315520487a1a3bfbe9d65d41c41239b9461bc9f1b5059c51d5f4dc7581872 0008-Disable-ssp-on-nostdlib-nodefaultlibs-and-ffreestand.patch
-15089ea9465057f6897d5c570e79abd068b85f9fc77490668872397699025905aa065eaf7318ddb0847747da4397676242064f290b45e16f616bab86258be260 0009-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch
-cc9aa31e3b4227f7887d9be470bb19cb3ccd8125155741721921b4c8f791710fabc279b492232454fda0a47bf98509bd2fd4bcdbf5a5aad8b8f476bc5aa74d07 0010-Don-t-declare-asprintf-if-defined-as-a-macro.patch
-c2c74411717e5bf6e261bde4d5c50b12645de2d556b3eb898600e7629772f7d9d213e32f5a0b81d8ee2ba2e4bc55ea64ee60119d9d9a03045574016d94b76f61 0011-libiberty-copy-PIC-objects-during-build-process.patch
-d92fe356d745fbc858cbb338b0027b814a2f7812fc7bb6147d641e7319d4ff09ac4ade766b419566e70e6250847ec56e95fd74617a82069dc93f669d827dd48e 0012-libitm-disable-FORTIFY.patch
-2e5c0845581c92573fc2e60f7771d9f99e23fd32bf4da7c09bc1738f69174f8becfe9f0c9ee96fbc87b3264dcf2d4b801d051606bd528b43e76cd1fb9ddf6b40 0013-libgcc_s.patch
-2a79fd03fe9b98cca3cdbed368969304f9ebcedb7701703740c30a1fe70bfdeceaddac4cbf796f60ee080f0d62a926da6c48042c563b081d9116691c4531a68c 0014-nopie.patch
-4a1d53c120047702ea51df3c611af3e4ae82b9cf63dc8244ac38042de44b24afe98578e70aa964884b22ef76ee65d1d703355defc613637acf52d580ce86f17c 0015-libffi-use-__linux__-instead-of-__gnu_linux__-for-mu.patch
-64065ec9243eb12424cb75822219376e7829f1e1d206d93c4b4cbe18eb4e538019361cc1b5b7d88da4d2d5c891d9e282d579902db534d09b7d58ec91bfada6b5 0016-dlang-update-zlib-binding.patch
-35ffecaa8ec56b64c73df93530d858632f0429de007d70869432c183610d344711a1552b1bb00f2180ae952c66a66e1c6285139a8818d656691a121cd7abdba7 0017-dlang-use-libucontext-on-mips64.patch
-f78fc1bc99669a90bd68051f9d17bfc25065e49c7d4e853cda293be3a9f17b08867de31e73b90a82b948005f5e17020ccf55dfa4a1b0b9b0cba707c0ed635a46 0018-dlang-libdruntime-define-fcntl.h-constants-for-mips6.patch
-463ce54bb32d9ba52ed7f0d7df99011f17543e80f6aca9a61b747e074662b283c563434b96a0bc8ae4636e154f1033c5720f3c8113bc6ad095592a1d5584981c 0019-ada-fix-shared-linking.patch
-194647e5a87fb7ebd7602eee9ffa5d3e713dc26baa5f8fa50ada513ca5d28898d1fcee5e9db0d3af6d5b774961426fc1e2f9b5155992ead9981412c627967219 0020-build-fix-CXXFLAGS_FOR_BUILD-passing.patch
-d707e47a10c866c0e6d085f9a2bfa1b21eff8e6a1b222840abbbe1b2f21cc4a50f4fa45f7dbbb1ad86dc2eb7c88160c715e69039d3de7f7784de7d5f2a87d6e4 0021-add-fortify-headers-paths.patch
-e746e250451eb76726a9de8f42de5eb1d23a228fd3d8961cd2a6c6f691a5418fcd32a817998e3a5aaf8d2d90cd03371aaf7912c9b834ed6c663c649f85f1d058 0022-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch
-c6d3a4b5d541b52f44641e59556c6312d785c4e12d47fac11a530ae0746170e891c0ed64ce6e9856e5581debfae0d5216753afaf87df1a2d40d50bdfa24ea7dc 0023-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch
-a29ad877662bbdbc6422456d32ed31aab3764edcc1eb3e1abe7be0f22d162da6d0f0d6565a25c7a43bf23151faba0492122ddcf832bdac57b3e47f89a6ab158d 0024-mips64-disable-multilib-support.patch
-18be870ec68865f4661ac73f9bf50765164711582b497beb852928e1d993bc257a0d2b015f435e93461c35edc1811505d31f3a46147bccb4764dcf9b8319c93a 0025-aarch64-disable-multilib-support.patch
-b2b830626396936be105361e87c82490b5cd3d26ce7b8dbccf156d53eb5d0db82a28167656aaa5e47b6a1315263abf070432db693c5ae10da892217ce2728728 0026-s390x-disable-multilib-support.patch
-094ed675ff5512829bbf7f2bd2632498300b7f15cec6b4a397b145f378a41c17c99f05ea0b94ed1408773a3e8b1fd713ba302c64dba00269df270d401b0e6443 0027-ppc64-le-disable-multilib-support.patch
-ee67238c66132f30fd00cc084d37012a927abe32ac48b4617779f22069d86384826c063b79626ab64f6adefdac0f00fcd5c18b95c8a2f11fb2cbee67babc9beb 0028-x86_64-disable-multilib-support.patch
-2ddf60a03db15c9c3e847001e300a54dfd9b5435da630e18379313e516fccbb8ea5e26571bb4f88baa6756cdb5c8ba7d059249c46a2f56e67bfca368750431eb 0029-riscv-disable-multilib-support.patch
-e7f9088809a4a4b87a6a5670227fb31766fb124ecdcea9936b00a7b98fdc06d7e7f27b6f67a575c434ba978623cb5f1183691dd63d6db98b180c4e08d62e5c5e 0030-always-build-libgcc_eh.a.patch
-653b2dbdf43ad336e75aa33ee3e520edd4c8cdb486bf8f5a30dbd8496b96451aa508e12e6a81dd16d36119f22fb9b0c46bcc39d731c89443c435fa4d1ca6fa08 0031-ada-libgnarl-compatibility-for-musl.patch
-9d46489087018366eea3b6537f6a86b0e183c7d49f8fecc2f50fbbcebf78727f5a1661ee6a50b5bddef0d54ebe47668ad61440784495194420b0896d5bd3f1aa 0032-ada-musl-support-fixes.patch
-63a2f9a81f94826dfac05073d6b7cb599c5b1d026c460edfd329f770c72208e369af1e427904528351aa78bce6e9445af9c59ca73ef5302f7362027757fa5d46 0033-gcc-go-Fix-handling-of-signal-34-on-musl.patch
-8d3a01d7e5e983eaabdf5c4a7e58ef33c55a794ed4cb5d438b41218ded367d3214b868a5c8d68f52ef74b0f83abb95d29b36ef8d0c7be68f7d1537a04e65d5c1 0034-There-are-more-than-one-st_-a-m-c-tim-fields-in-stru.patch
-56c7c1911fef05beaecfa1b41703d46d18c5e967430c79c719f8685f4c4971bb177f2de35b0a1631d5d3ed7292cb54c618e52fa859f483fafb5445511e5b226b 0035-gcc-go-signal-34-is-special-on-musl-libc.patch
-07921d5c30f3a23ba1c0540e106abe49e1675f183ffe2b326bdab80c59847b9ed5f39efd2836bc47d4ac1b3a3152f8de092c498ba91682e51c20548a65c0f105 0036-gcc-go-undef-SETCONTEXT_CLOBBERS_TLS-in-proc.c.patch
-ef8df8a047b4145f30884b052345e4e390fc1efb35a9c7da63899aa115c19b8cc04513a57b2340a6a58ed02dc6881b10f684da653734afe5acf69761e3d064e7 0037-gcc-go-link-to-libucontext.patch
-cf000459b493815bb0c9bccbbccc61ab8101f067b5b45d0f30cf49bf0ec6745f6ae360e4b5dccdb5c9bef1974835830efbb349c2ab38d1ee4dcc22385546873b 0038-Use-generic-errstr.go-implementation-on-musl.patch
-0baffb0d19c26a387d38525c87b3500c4486bf11aeb9d98cec559eb67db4b71d5bc580fa6aebb9a12295422edb53aea77101e521e91f5189c744749448b89b4a 0039-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
-d80074e1fa09cf6f7047a4dac7acadcfb53fcc93667af3348c61b22390999d618f2b16107c30a0fc52b145e27f14d6fddbe43ea36e6a9089741cb3b0b64fd856 0040-configure-fix-detection-of-atomic-builtins-in-libato.patch
-04434b605d71b6d4e9dedd03a810f250725d31fc70a5ad28d69499a04436caf6b0ec69f5c7223cb511063cc18c350ffdd95b722de97467f827789006ebcb2c73 0041-libgo-Recognize-off64_t-and-loff_t-definitions-of-mu.patch
-a3dc43ba56f12f4243c186572b32809d47a9d29c7a40edcf7f6da34c7add65a271c77635a5b9ae325d167e24a2e6bbe883c63eccec3af5d6f925cb304f8ba92b 0042-Fix-attempt-to-use-poisoned-calloc-error-in-libgccji.patch
-04ebbf2143a2d4b6c6d768c3aeea2899e6261adf414e16faed1247bc94eeaf61e54f88a2ba7ffdca90e9c0ee87c6fd7e3746481d184c539b8e0130a14b215fa7 0043-stddef.h-add-support-for-musl-typedef-macro-guards.patch
-e47183b5a565bdc64a497e14124d767a3e889e9f9d77a92567b0047b285c5ca49897b46ba681e339a8982611b70583ae87a3472dae33f07becaeceb21b3cfe74 0044-gcc-go-Use-int64-type-as-offset-argument-for-mmap.patch
-a5adab61de2d4b2c3ccb1a55c70384a8496c447f7727a6680fa29263c4f57599a3dfb85e1e322859797f86605491af0f68f9dd1141ab4bbbe8b5183f67f3b32e 0045-libgo-include-asm-ptrace.h-for-pt_regs-definition-on.patch
-9c0e461eeba709110ca88d60236190c9b71d57d4e13786e2f15521a902e37dacc08d466966764abce9bc84e27d06e2e8523a1a80325f8a16d6ec16d2bf89fa05 0046-Disable-fsplit-stack-support-on-non-glibc-targets.patch
-f62778ab53125a9ba5a8088e064c2182c014bc264a46fd3d28d1ee0142dd02a7ed2c684dc63e9768a56a6f8f65621bea20026cd6b65053c2ff9ee51568ee260d 0047-x86-Properly-disable-fsplit-stack-support-on-non-gli.patch
-c44c6e5b28b622897af60e7e2dbf0d0284379eb57b39b480936e6d8b3743a24287c2a9ed69a530ef4f2327b5e5ca61ce00e92d415e0ed033e54bdffde345e6a9 0048-gdc-unconditionally-link-libgphobos-against-libucont.patch
-160ef16fde90546474e1548f1487c18d9b8edbae1d42a13ad06041b03214d06ff2c3586acd4d0bae27d48e48bb651861c6b9a140ade4ac59f00a268e85275da4 0049-properly-disable-fsplit-stack-on-non-glibc-targets-P.patch
-f4d9ebf6d5c80d2f303404b9bf315bf81435c0d369b03b92f8e8510d82db72c2a30d84603307ddc0697df3845862ba93045e4a3724f8e491e7c01bd4396d8864 0050-x86-Fix-fsplit-stack-feature-detection-via-TARGET_CA.patch
-8ac54b3a46f7270d975fa3e1198ac37a2311a4b9940938958ffc148e4e9c82c3e81cf3e3c3abd43cef29137897cd6768220b432f828672e036308f7994422d2e 0051-go-gospec-forcibly-disable-fsplit-stack-support.patch
-fa59b0fb081d97f8f63506b8793699588a95c602b5d468140eb1e80456597e52e1cc45dc0b234ac8e60e2b0cd606d94d111c8b0ae64c0a2be1bc1b8a184ceb93 libgo-musl-1.2.3.patch
+2d1e0374ebdee526f0549319fc9c364968c52a0d4aaa16759f00453cb083fe58d8f463c47d97f3bb74a0a92e251989eb75a50ee5800b4569978c72d25446b44e gcc-13-20240309.tar.xz
+1ecffba1b07d60e1b4422302b032bbea918b674c8e12b30aa6965b544d700ce86b61e9f7b8d402c6caf59257f491a394dd0912f0948565d6eae9335ee54f3b35 0001-posix_memalign.patch
+163f282455b6a4df33f011bcd8b0440566ba0ffaeeab30d8ac52d39948980a56881ca0eff60687129d59556389a58b9d64e7768750bd70b1fe0fedbc9fc30dc2 0002-gcc-poison-system-directories.patch
+3f24bb6a50d3c45b71ea05590e32fe3e69b91377ab185352891d5035c76ed193117c6d0b314a4c364bcf136b9a9dd5c926d6c7c30ab436976c121ebfea8d3ddd 0003-specs-turn-on-Wl-z-now-by-default.patch
+17a2993027d3ddf8595952ebcae425695ddc7b1cf73b384d2e55fddecb9cbf3f6482860a502ff69b14075e12badf27300fd3039f3a9005e851fd8d121d258c2b 0004-Turn-on-D_FORTIFY_SOURCE-2-by-default-for-C-C-ObjC-O.patch
+444550e55491ff89fe8cbbb4b73d017c9c147cdce1ad5c0561fe7d6ab3834515a814c7676c408cfeec18e1aaace27b3c26a2ffe4a75042285df5124976c38672 0005-On-linux-targets-pass-as-needed-by-default-to-the-li.patch
+5a5f57e4e45745bb4d9d63d7d410fe9dd56ce12dbd70c376dd45015909307faf02391e75368e4e7404591614a874cee41b20652cf27be234765d6db97ceb4e7e 0006-Enable-Wformat-and-Wformat-security-by-default.patch
+3a2b22388398a93dae7787e794cd580b9c577326f286241e086120c1fcfdd9228c2e00407088ebb163fb1acc21722c199071343551c989a958dc3c845b15132d 0007-Enable-Wtrampolines-by-default.patch
+7535de1c552544e3a51cbb00b5e08ac59edbf3bdcfce2a63b9f319fada3f3676f47e3a00c75d91bcefd14500555ea0844f18c130ff46b20f416ea76071e5af39 0008-Disable-ssp-on-nostdlib-nodefaultlibs-and-ffreestand.patch
+93d03afd83dee5f7129c36a7b81fa8fd323476507e2f53a4fbe40a026037e7dfafa23591145d7af5848d9a322d212497947a0f58ef828734552e6a6dabd00cfa 0009-Ensure-that-msgfmt-doesn-t-encounter-problems-during.patch
+da9eaf2f0ddbec5ee14dc26053936587e6c76fbf16846db804a18cf4d318579426ebcc566aed02daf8e34f60c08b61f5d3959305886dca9bbcdc84db057258d9 0010-Don-t-declare-asprintf-if-defined-as-a-macro.patch
+35b9aafe7eee8138cb7aad7164a8f77c15ccdce26843cee78b5871ef91d76cad22ed0871b20f51c4b89b71afd9cfe4ba4227086e158c466558513708fe7d2a1a 0011-libiberty-copy-PIC-objects-during-build-process.patch
+9d43f844fad0ac6e1c35a2b6f461f9278ae09e468f2c9ae8adc43accbe6934994aa10d3a433644d1393a4a76e3caed69e3191db7f3c0c24b4e7a0a0a0cbac3f1 0012-libgcc_s.patch
+b2c4921c5eef33ee43a92ab5ec7f09d5d3adb49a2416595001e6376ffdf652ef9d0dc21778c3a86e45334290dbe467a4e891ed34a6522e0c72f746def22e8663 0013-nopie.patch
+0b50ad15115192699efa9fda3d4fb1c2fa95da06d7880ba34615b40c19a8256e1fe364da39f5c70dc22fbccf21db2de5900932afef68948722eeb25e435262f8 0014-ada-fix-shared-linking.patch
+00097c7106625ccf02149a757366f434c48f2abe824bb8b4bf067d29308889cb6039a5e5b2d3bd2683617693b47707d549252c56eea6bc3cdc2450a8d14f46a7 0015-build-fix-CXXFLAGS_FOR_BUILD-passing.patch
+7f0bc42b93a389b614054e700b851abfbc53db391aa10cbdf6990d41396b293af78980bb39f1cf0967184d3fbf3d46ac7c7f096717b8f193ea34cbf7f37d7e91 0016-add-fortify-headers-paths.patch
+0841acbce81250f8cb140a75ff62958dfcab3bed792822baf1fe4193dd62633648343f4b66df886c12338eed88a98e591b968131416460f9f0274046019bb8ef 0017-Alpine-musl-package-provides-libssp_nonshared.a.-We-.patch
+589d538bdf692559e475e53c79869734dede0eb15228cab9ca901c9db81b0e78a0e532b20dfb05ca584ea19ff4bedd83e139ddca912a26b446c5eb6905180536 0018-DP-Use-push-state-pop-state-for-gold-as-well-when-li.patch
+2213e07bab6f5d8d3d39c732f5385f46cc8f0c84e35054139fdaf13051252d7bf11f647f54aa8456b532166b008fff0656d8f41278e34ba868dd6fe427427a3a 0019-aarch64-disable-multilib-support.patch
+a9567947471c3ba8a547a79c55e183974554bf823d9a97a165c966d7b3caad8789980e096e3b78452ece5de062bd9bb006af464bbf0c5a35b689eac3ee21e5c5 0020-s390x-disable-multilib-support.patch
+f382eb5f7c2c60c5a23fac587c9629a3059d7be0898e97a1feaf9b9cbe1ef4693cc1177eb29333e8b7944fa17487478e73958be45d5782ccb9ef501961fb9a96 0021-ppc64-le-disable-multilib-support.patch
+44ab86feb8e41e7c2b2e27accdf46194c9b80ee6a39543303dc04824f669d9fad182aabd40c9c7f6c265cf9bb71be830c257be115dc9d701d54eca3aa9ef174e 0022-x86_64-disable-multilib-support.patch
+e0763083c31485e8ac0b3724376a28af01bb6f50e1a054780b61886e4e3de2a35d127e6e353eb8d8729964ada9b5751bf05bdd51df539667008216db38f228a3 0023-riscv-disable-multilib-support.patch
+ab88a2f63e3545bbc36537aa9a86f2c6c35e41bbf702d6e13743a405cdac4f901eed5737189b780da96647fea9f5d863fdc76373f25a00064106dcb5514d6d87 0024-always-build-libgcc_eh.a.patch
+8fdbe0c8bf4ca60f458a33e59027de03d15ac91933fe46d8ca62119346d20b9bc2447c0bf22bceb63d0cf8613ab61512d9197f4e6c2224af473b63ef9f254295 0025-ada-libgnarl-compatibility-for-musl.patch
+30369bea84020c32d514196ba3adb3d09d2d0359af5550bd3f9719aa357e44b2f695623c1d2a99416e120dc86896c196c5dd4f638183dced4799604137385367 0026-ada-musl-support-fixes.patch
+3f9a406d7d2ce34951215ffbcadb49a45e55ad5c24ab9097c0e5e92383e43b876872ccd2a7e7def2833ab204975ee5733f8bcf90934db9fa9c4f6f56c62081f6 0027-configure-Add-enable-autolink-libatomic-use-in-LINK_.patch
+720a4001f9a1fa4122e456077ecff8d3eb8af7c83d0a81f9da6a6cca05b23664206a82a349e34482c48bfe40e99aa5f21567613d0913f6a24f282bc84a994496 0028-configure-fix-detection-of-atomic-builtins-in-libato.patch
+2044c23b23726965c0a6fd39f616cc464badd650947cb40495eeabd906a3af629878c1d28b403b8eb46b30a1a0ba39083023290d62f0c99ccf070063226e3f8f 0029-libstdc-do-not-throw-exceptions-for-non-C-locales-on.patch
+58e8415612e1042329ad114471852c19f6bf15bf3bfd7cd81ceeafa75778bcc28410a01071a7c8cbf12b8f549acd85723215772813deedb8f266e28b9e01a353 0030-gdc-unconditionally-link-libgphobos-against-libucont.patch
+d47b559075f40d526235f47b91da1d0cf6bfe6c5b7311bbfe08af9dd6e8f27e6c7cd82e3b2d529aab0536246fc56e2d42c089b22cacb0e7f09ca4a9d07556994 0031-druntime-link-against-libucontext-on-all-platforms.patch
+b325035cb7122d79c6b42ca6d3fc9e02319ed2f7cddb0639dff25d2798d2ce63812cd623462cdf95e21c9ffbf2412193f8b9fc89a4c36fa5a6a041661ac7399d 0032-libgnat-time_t-is-always-64-bit-on-musl-libc.patch
+c474f34e6f9a4239d486a65141a133dbe8ce91427d502a57a9fd6eb403478a2b5715ba74f24c1cc0761e16eec77ba2c1ca921fb7d7bc1e040fc3703fc9559e75 0033-libphobos-do-not-use-LFS64-symbols.patch
+c4482ffc36e7894b2140800159f4cbc9a3e9011e43a69b69f4fa92d5a11e2ee645c7e21df4423dd1e0636e8890849a5719647bfbdf84f951d638f8f488cb718c 0034-libgo-fix-lfs64-use.patch
+cc1e10ac6e72db816f09325e301103109cc212a6f3de3ce0b9b038d149233c467319d203941695dbf3d7b9e2dcbbcd17609cdb056e831fcc323cd592423882d8 0036-PR110792-Early-clobber-issues-with-rot32di2-on-i386.patch
+d834f5f95f4ebe70ec0af0748c8632c99a4f57b69dc14db1a38becdfcb03406b32febf39f772f37bd145538147099fa7433edce845e14ee77cd8f38fd9774fc1 0037-loongarch-disable-multilib-support.patch
"
diff --git a/main/gcc/gcc-go.post-install b/main/gcc/gcc-go.post-install
new file mode 100644
index 00000000000..6805fa7cf36
--- /dev/null
+++ b/main/gcc/gcc-go.post-install
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+cat 1>&2 <<EOF
+*
+* gcc-go is used in Alpine for bootstrapping Go.
+* It is currently discouraged to use it for other purposes.
+*
+EOF
diff --git a/main/gcc/libgo-musl-1.2.3.patch b/main/gcc/libgo-musl-1.2.3.patch
deleted file mode 100644
index 15a4229f4ef..00000000000
--- a/main/gcc/libgo-musl-1.2.3.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
-index 6fef104..06289a4 100755
---- a/libgo/mksysinfo.sh
-+++ b/libgo/mksysinfo.sh
-@@ -126,7 +126,7 @@ if ! grep '^const SIGCLD ' ${OUT} >/dev/null 2>&1; then
- fi
-
- # The syscall numbers. We force the names to upper case.
--grep '^const _SYS_' gen-sysinfo.go | \
-+grep '^const _SYS_[a-z]' gen-sysinfo.go | \
- sed -e 's/const _\(SYS_[^= ]*\).*$/\1/' | \
- while read sys; do
- sup=`echo $sys | tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`
diff --git a/main/gcompat/APKBUILD b/main/gcompat/APKBUILD
new file mode 100644
index 00000000000..a9ab294b436
--- /dev/null
+++ b/main/gcompat/APKBUILD
@@ -0,0 +1,91 @@
+# Contributor: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Peter Shkenev <santurysim@gmail.com>
+pkgname=gcompat
+pkgver=1.1.0
+pkgrel=4
+pkgdesc="GNU C Library compatibility layer for musl"
+url="https://git.adelielinux.org/adelie/gcompat"
+arch="all"
+license="NCSA"
+makedepends="libucontext-dev musl-obstack-dev"
+source="https://git.adelielinux.org/adelie/gcompat/-/archive/$pkgver/gcompat-$pkgver.tar.gz"
+options="!check lib64" # No test suite
+
+provides="libc6-compat=$pkgver-r$pkgrel"
+replaces="libc6-compat"
+
+# https://sourceware.org/glibc/wiki/ABIList
+case "$CARCH" in
+armhf)
+ _ld="ld-linux-armhf.so.3"
+ ARCH="arm"
+ ;;
+armv7)
+ _ld="ld-linux-armhf.so.3"
+ ARCH="arm"
+ ;;
+aarch64)
+ _ld="ld-linux-aarch64.so.1"
+ ARCH="aarch64"
+ ;;
+x86)
+ _ld="ld-linux.so.2"
+ ARCH="i386"
+ ;;
+x86_64)
+ _ld="ld-linux-x86-64.so.2"
+ ARCH="x86_64"
+ ;;
+s390x)
+ _ld="ld64.so.1"
+ ARCH="s390x"
+ ;;
+ppc64le)
+ _ld="ld64.so.2"
+ ARCH="powerpc64"
+ ;;
+riscv64)
+ # hardfloat
+ _ld="ld-linux-riscv64-lp64d.so.1"
+ ARCH="riscv64"
+ ;;
+loongarch64)
+ # hardfloat
+ _ld="ld-linux-loongarch-lp64d.so.1"
+ ARCH="loongarch64"
+ ;;
+esac
+
+build() {
+ make \
+ WITH_LIBUCONTEXT=1 \
+ WITH_OBSTACK=musl-obstack \
+ LINKER_PATH="/lib/ld-musl-$ARCH.so.1" \
+ LOADER_NAME="$_ld"
+}
+
+package() {
+ make \
+ LINKER_PATH="/lib/ld-musl-$ARCH.so.1" \
+ LOADER_NAME="$_ld" \
+ WITH_LIBUCONTEXT=1 \
+ WITH_OBSTACK=musl-obstack \
+ DESTDIR="$pkgdir" \
+ install
+
+ # Required symlink on 64-bit platforms
+ case "$CARCH" in
+ x86_64|ppc64le|aarch64|s390x|riscv64|loongarch64)
+ mkdir -p "$pkgdir"/lib64
+ ln -sfv ../lib/$_ld "$pkgdir"/lib64/$_ld
+ ;;
+ esac
+
+ for i in libc.so.6 libcrypt.so.1 libm.so.6 libpthread.so.0 libresolv.so.2 librt.so.1 libutil.so.1; do
+ ln -sfv libgcompat.so.0 "$pkgdir"/lib/$i
+ done
+}
+
+sha512sums="
+8f27aa8d268586ecb647bc147a9d56704d087b0f3ac357c6c239958663ec9e9e428e6cfdb9a063ead5c2098444cc4a7c4567c18477309feb05ed3de01b24f9e8 gcompat-1.1.0.tar.gz
+"
diff --git a/main/gcr/APKBUILD b/main/gcr/APKBUILD
deleted file mode 100644
index c87290e8b3e..00000000000
--- a/main/gcr/APKBUILD
+++ /dev/null
@@ -1,68 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=gcr
-pkgver=3.41.0
-pkgrel=0
-pkgdesc="library for bits of crypto UI and parsing"
-url="https://wiki.gnome.org/Projects/CryptoGlue"
-arch="all"
-license="LGPL-2.0-or-later"
-makedepends="
- glib-dev
- gobject-introspection-dev
- gtk+3.0-dev
- libgcrypt-dev
- libsecret-dev
- libxslt
- meson gtk-doc
- openssh-client
- p11-kit-dev
- vala
- "
-checkdepends="xvfb-run dbus-x11"
-subpackages="
- $pkgname-dev
- $pkgname-doc
- $pkgname-lang
- $pkgname-base
- "
-source="https://download.gnome.org/sources/gcr/${pkgver%.*}/gcr-$pkgver.tar.xz
- fix-build-without-systemd.patch
- fix-meson-invalid-kw-argument.patch
- dont-run-gpg-tests.patch
- fix-64-bit-time_t-32-bit.patch
- "
-options="!check" # testsuite requires community/xvfb-run
-
-build() {
- abuild-meson \
- -Dgpg_path=/usr/bin/gpg2 \
- -Dsystemd=disabled \
- output
- meson compile ${JOBS:+-j ${JOBS}} -C output
-}
-
-check() {
- xvfb-run meson test --no-rebuild -v -C output
-}
-
-package() {
- DESTDIR="$pkgdir" meson install --no-rebuild -C output
-}
-
-base() {
- pkgdesc="$pkgdesc (base libraries)"
- depends=""
-
- amove usr/lib/libgck-1.so.*
- amove usr/lib/libgcr-base-3.so.*
-}
-
-sha512sums="
-455acc40ed77feeb35f9845b00229f468b322b7eda0b1b5abb0153f0a6ba29f3d0364df22225143f4caf130254a1258b3c7f934370e5142f2f64e1c3084b6f6e gcr-3.41.0.tar.xz
-29827b87272c152d98a131ab328b8711223b1d13f5057476cfdee295a46d8a4f49daf3081d67b3a59cb48700329baf2ea49b0742b4b619afb2e6d01ce785f186 fix-build-without-systemd.patch
-939e49b23747989a532cc41be6cd6d504e88f69852897f15419f3109a1b799edd7dabe9e1e98d2582dd78de6530109c101b7e0b754fc8d3a07f098dca0c6ce0d fix-meson-invalid-kw-argument.patch
-e4fc2248497e7103980e9baf9444505649ee93c657c7a82c042ae62d7c54b2764ad7bc9780467ceda5e53a23fa11dc4957898929c7d7f995d9d0d205d18d5eb7 dont-run-gpg-tests.patch
-579b229d6f310ed035974a92a65804deae7b047cf6109e259844ecdc75df32653a2c9f9dcddba9092da335f44d07d5d82056ae0cf5775057bdb9be5b52e29bcc fix-64-bit-time_t-32-bit.patch
-"
diff --git a/main/gcr/dont-run-gpg-tests.patch b/main/gcr/dont-run-gpg-tests.patch
deleted file mode 100644
index acab92442a3..00000000000
--- a/main/gcr/dont-run-gpg-tests.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/gcr/meson.build b/gcr/meson.build
-index 254a933..8c17e7c 100644
---- a/gcr/meson.build
-+++ b/gcr/meson.build
-@@ -271,7 +271,6 @@ gcr_test_names = [
- 'record',
- 'memory-icon',
- 'gnupg-key',
-- 'gnupg-collection',
- 'gnupg-process',
- 'system-prompt',
- 'ssh-askpass',
diff --git a/main/gcr/fix-64-bit-time_t-32-bit.patch b/main/gcr/fix-64-bit-time_t-32-bit.patch
deleted file mode 100644
index 344d565e924..00000000000
--- a/main/gcr/fix-64-bit-time_t-32-bit.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-Upstream: https://gitlab.gnome.org/GNOME/gcr/-/issues/45
-diff --git a/egg/egg-asn1x.c b/egg/egg-asn1x.c
-index b7d9d11..16caa6b 100644
---- a/egg/egg-asn1x.c
-+++ b/egg/egg-asn1x.c
-@@ -2213,7 +2213,7 @@ anode_read_time (GNode *node,
- return anode_failure (node, "invalid time content");
-
- /* In order to work with 32 bit time_t. */
-- if (sizeof (time_t) <= 4 && when->tm_year >= 138) {
-+ if ((sizeof (time_t) <= 4 || sizeof (long) <= 4) && when->tm_year >= 138) {
- *value = (time_t)2145914603; /* 2037-12-31 23:23:23 */
-
- /* Convert to seconds since epoch */
diff --git a/main/gcr/fix-build-without-systemd.patch b/main/gcr/fix-build-without-systemd.patch
deleted file mode 100644
index 16baa063664..00000000000
--- a/main/gcr/fix-build-without-systemd.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 96e76ee482dad2a0d71f9a5a5a6558d272d538ca Mon Sep 17 00:00:00 2001
-From: Antoine Jacoutot <ajacoutot@gnome.org>
-Date: Sun, 24 Oct 2021 10:26:03 +0200
-Patch-Source: https://gitlab.gnome.org/GNOME/gcr/-/commit/96e76ee482dad2a0d71f9a5a5a6558d272d538ca
-Subject: [PATCH] Unbreak build without systemd.
-
-This fixes the check for WITH_SYSTEMD and prevents a fatal error:
-'systemd/sd-daemon.h' file not found when building with systemd disabled.
----
- gcr/gcr-ssh-agent-service.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/gcr/gcr-ssh-agent-service.c b/gcr/gcr-ssh-agent-service.c
-index 3b5a4ca..b7e8928 100644
---- a/gcr/gcr-ssh-agent-service.c
-+++ b/gcr/gcr-ssh-agent-service.c
-@@ -39,7 +39,7 @@
- #include <glib/gstdio.h>
- #include <gcr/gcr-base.h>
-
--#ifdef WITH_SYSTEMD
-+#if WITH_SYSTEMD
- #include <systemd/sd-daemon.h>
- #endif
-
---
-GitLab
-
diff --git a/main/gcr/fix-meson-invalid-kw-argument.patch b/main/gcr/fix-meson-invalid-kw-argument.patch
deleted file mode 100644
index 9c097deeba6..00000000000
--- a/main/gcr/fix-meson-invalid-kw-argument.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-Patch-Source: https://gitlab.gnome.org/GNOME/gcr/-/merge_requests/81
-
-From b3ca1d02bb0148ca787ac4aead164d7c8ce2c4d8 Mon Sep 17 00:00:00 2001
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Wed, 12 Jan 2022 00:24:20 +0100
-Subject: [PATCH] meson: Fix unknown kw argument in gnome.generate_gir
-
-This argument has been removed in Meson 0.61.0:
-
- gck/meson.build:130:2: ERROR: gnome.generate_gir got unknown keyword arguments "packages"
-
-https://github.com/mesonbuild/meson/commit/f8fc5cb860465718fe7c79a1bf1fe00659f138de:
-
-> The packages argument to gnome.generate_gir was allowed, but never did anything, so stop passing it.
-
-Fixes #89
----
- gck/meson.build | 1 -
- gcr/meson.build | 1 -
- ui/meson.build | 1 -
- 3 files changed, 3 deletions(-)
-
-diff --git a/gck/meson.build b/gck/meson.build
-index 756b486..a21a1e9 100644
---- a/gck/meson.build
-+++ b/gck/meson.build
-@@ -131,7 +131,6 @@ if get_option('introspection')
- sources: gck_gir_sources,
- namespace: 'Gck',
- nsversion: '@0@'.format(gck_major_version),
-- packages: gck_deps,
- export_packages: 'gck-@0@'.format(gck_major_version),
- includes: [ 'GObject-2.0', 'Gio-2.0' ],
- header: 'gck/gck.h',
-diff --git a/gcr/meson.build b/gcr/meson.build
-index 2233a44..c83641b 100644
---- a/gcr/meson.build
-+++ b/gcr/meson.build
-@@ -190,7 +190,6 @@ if get_option('introspection')
- sources: [ gcr_base_public_sources, gcr_base_headers ],
- namespace: 'Gcr',
- nsversion: '@0@'.format(gcr_major_version),
-- packages: gcr_base_deps,
- export_packages: 'gcr-base-@0@'.format(gcr_major_version),
- includes: [
- 'GObject-2.0',
-diff --git a/ui/meson.build b/ui/meson.build
-index e656ea2..32ee057 100644
---- a/ui/meson.build
-+++ b/ui/meson.build
-@@ -152,7 +152,6 @@ if get_option('introspection')
- export_packages: 'gcr-ui-@0@'.format(gcr_major_version),
- identifier_prefix: 'Gcr',
- symbol_prefix: 'gcr',
-- packages: gcr_ui_deps,
- includes: [
- 'GObject-2.0',
- 'Gio-2.0',
---
-GitLab
-
diff --git a/main/gd/APKBUILD b/main/gd/APKBUILD
index 9c40b177b0b..273e37c2372 100644
--- a/main/gd/APKBUILD
+++ b/main/gd/APKBUILD
@@ -3,15 +3,16 @@
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=gd
pkgver=2.3.3
-pkgrel=1
+pkgrel=9
_pkgreal=lib$pkgname
pkgdesc="Library for the dynamic creation of images by programmers"
url="https://libgd.github.io/"
arch="all"
-license="custom"
+license="GD"
makedepends="
fontconfig-dev
freetype-dev
+ libavif-dev
libjpeg-turbo-dev
libpng-dev
libwebp-dev
@@ -19,14 +20,14 @@ makedepends="
tiff-dev
zlib-dev
"
-checkdepends="ttf-liberation"
-subpackages="$pkgname-dev $_pkgreal:libs"
+checkdepends="font-liberation"
+subpackages="$pkgname-dev $pkgname-doc $_pkgreal:libs"
source="https://github.com/$_pkgreal/$_pkgreal/releases/download/gd-$pkgver/$_pkgreal-$pkgver.tar.xz"
builddir="$srcdir/$_pkgreal-$pkgver"
case "$CARCH" in
# https://github.com/libgd/libgd/issues/359
- aarch64|mips*|ppc64le|riscv64|s390x|x86) options="!check";;
+ aarch64|mips*|ppc64le|riscv64|s390x|x86|loongarch64) options="!check";;
esac
# secfixes:
@@ -44,6 +45,11 @@ esac
# 2.2.5-r1:
# - CVE-2018-1000222
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
./configure \
--build=$CBUILD \
@@ -61,6 +67,7 @@ check() {
package() {
DESTDIR="$pkgdir" make install
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
dev() {
diff --git a/main/gdb/APKBUILD b/main/gdb/APKBUILD
index 7f668314358..178ebc083c2 100644
--- a/main/gdb/APKBUILD
+++ b/main/gdb/APKBUILD
@@ -1,17 +1,31 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gdb
-pkgver=12.1
+pkgver=14.2
pkgrel=1
pkgdesc="The GNU Debugger"
url="https://www.gnu.org/software/gdb/"
arch="all"
-license="GPL-3.0-or-later LGPL-3.0-or-later"
-makedepends="ncurses-dev expat-dev texinfo readline-dev python3-dev
- zlib-dev autoconf automake libtool linux-headers perl gmp-dev"
+license="GPL-3.0-or-later AND LGPL-3.0-or-later"
+makedepends="
+ autoconf
+ automake
+ expat-dev
+ gmp-dev
+ libtool
+ linux-headers
+ mpfr-dev
+ ncurses-dev
+ perl
+ python3-dev
+ readline-dev
+ texinfo
+ zlib-dev
+ zstd-dev
+ "
options="!check"
-[ "$CARCH" = "riscv64" ] && options="$options textrels"
-subpackages="$pkgname-doc $pkgname-multiarch"
+subpackages="$pkgname-dbg $pkgname-doc $pkgname-multiarch"
source="https://ftp.gnu.org/gnu/gdb/gdb-$pkgver.tar.xz
+ gcore-sh.patch
s390x-use-elf-gdb_fpregset_t.patch
ppc-musl.patch
ppc-ptregs.patch
@@ -36,6 +50,9 @@ build() {
--mandir=/usr/share/man
--infodir=/usr/share/info"
+ export CFLAGS="$CFLAGS -O2 -g1"
+ export CXXFLAGS="$CXXFLAGS -O2 -g1"
+
# use system readline if not cross compiling
[ "$CBUILD" = "$CHOST" ] && _config="$_config --with-system-readline"
@@ -64,6 +81,10 @@ build() {
}
package() {
+ # backtracing/debugging pretty much anything is going to need libc debug symbols
+ # not everything, but the common case needs this, and it's a small dep in comparison
+ depends="musl-dbg"
+
cd "$builddir"/vanilla
make DESTDIR="$pkgdir" install
@@ -75,18 +96,25 @@ package() {
# those are provided by binutils
rm -rf "$pkgdir"/usr/include
rm -rf "$pkgdir"/usr/lib
+
+ # resolve conflict with binutils-doc
+ rm "$pkgdir"/usr/share/info/sframe-spec.info
+
+ # install gdb-multiarch here for default dbg() split function to work
+ install -Dm755 "$builddir"/multiarch/gdb/gdb \
+ "$pkgdir"/usr/bin/gdb-multiarch
}
multiarch() {
depends="$pkgname"
pkgdesc="The GNU Debugger for all supported architectures"
- install -Dm755 "$builddir"/multiarch/gdb/gdb \
- "$subpkgdir"/usr/bin/gdb-multiarch
+ amove usr/bin/gdb-multiarch
}
sha512sums="
-425568d2e84672177d0fb87b1ad7daafdde097648d605e30cf0656970f66adc6a82ca2d83375ea4be583e9683a340e5bfdf5819668ddf66728200141ae50ff2d gdb-12.1.tar.xz
+7e07941f1fe661288cc571b4964012ceabc1760624fce20320db2f470c01439b2386f859b5288da13204b758e2e3b22a74c68c012178db93b9529b06f1e22ede gdb-14.2.tar.xz
+68f893e72742eac7e41fd7c3e688b8cccc79327f0422b03319302a1a9d24513e77d698bc6ff16f67236b521df321b9ff0ca2ee342c11f12933c492c5c530ec9b gcore-sh.patch
70e7d04e4d72461436da503b5bfa370c5779e03245c521f30e9779d5ff37dbb2d708b05f2afb27f43ad9defc44df4bd979d72f777e744851fdbf156295e1cc9f s390x-use-elf-gdb_fpregset_t.patch
04911f87904b62dd7662435f9182b20485afb29ddb3d6398a9d31fef13495f7b70639c77fdae3a40e2775e270d7cd40d0cfd7ddf832372b506808d33c8301e01 ppc-musl.patch
ab554899bbb2aa98261fd1b6beb4a71ed7c713a714bddd3fa7ec875258e39bd5474dc96a11accb4dadd316f3834f215e8395d3b373bf3affd122dc5b4a8fe710 ppc-ptregs.patch
diff --git a/main/gdb/gcore-sh.patch b/main/gdb/gcore-sh.patch
new file mode 100644
index 00000000000..166f75467f6
--- /dev/null
+++ b/main/gdb/gcore-sh.patch
@@ -0,0 +1,54 @@
+diff --git a/gdb/gcore.in b/gdb/gcore.in
+index 34860de..5ede1d4 100644
+--- a/gdb/gcore.in
++++ b/gdb/gcore.in
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env bash
++#!/bin/sh
+
+ # Copyright (C) 2003-2023 Free Software Foundation, Inc.
+
+@@ -25,17 +25,12 @@ prefix=core
+
+ # When the -a option is present, this may hold additional commands
+ # to ensure gdb dumps all mappings (OS dependent).
+-dump_all_cmds=()
++dump_all=0
+
+ while getopts :ao: opt; do
+ case "$opt" in
+ a)
+- case "$OSTYPE" in
+- linux*)
+- dump_all_cmds=("-ex" "set use-coredump-filter off")
+- dump_all_cmds+=("-ex" "set dump-excluded-mappings on")
+- ;;
+- esac
++ dump_all=1
+ ;;
+ o)
+ prefix=$OPTARG
+@@ -97,11 +92,18 @@ for pid in "$@"
+ do
+ # `</dev/null' to avoid touching interactive terminal if it is
+ # available but not accessible as GDB would get stopped on SIGTTIN.
+- "$binary_path/@GDB_TRANSFORM_NAME@" </dev/null \
+- --nx --batch --readnever -iex 'set debuginfod enabled off' \
+- -ex "set pagination off" -ex "set height 0" -ex "set width 0" \
+- "${dump_all_cmds[@]}" \
+- -ex "attach $pid" -ex "gcore $prefix.$pid" -ex detach -ex quit
++ if [ "$dump_all" -eq 1 ]; then
++ "$binary_path/@GDB_TRANSFORM_NAME@" </dev/null \
++ --nx --batch --readnever -iex 'set debuginfod enabled off' \
++ -ex "set pagination off" -ex "set height 0" -ex "set width 0" \
++ -ex "set use-coredump-filter off" -ex "set dump-excluded-mappings on" \
++ -ex "attach $pid" -ex "gcore $prefix.$pid" -ex detach -ex quit
++ else
++ "$binary_path/@GDB_TRANSFORM_NAME@" </dev/null \
++ --nx --batch --readnever -iex 'set debuginfod enabled off' \
++ -ex "set pagination off" -ex "set height 0" -ex "set width 0" \
++ -ex "attach $pid" -ex "gcore $prefix.$pid" -ex detach -ex quit
++ fi
+
+ if [ -r "$prefix.$pid" ] ; then
+ rc=0
diff --git a/main/gdbm/APKBUILD b/main/gdbm/APKBUILD
index 6e669dbda98..f8304d464de 100644
--- a/main/gdbm/APKBUILD
+++ b/main/gdbm/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gdbm
pkgver=1.23
-pkgrel=0
+pkgrel=1
pkgdesc="GNU dbm is a set of database routines that use extensible hashing"
url="https://www.gnu.org/software/gdbm/"
arch="all"
diff --git a/main/gdk-pixbuf/APKBUILD b/main/gdk-pixbuf/APKBUILD
index 2ce2be59055..231c6a0866c 100644
--- a/main/gdk-pixbuf/APKBUILD
+++ b/main/gdk-pixbuf/APKBUILD
@@ -1,21 +1,32 @@
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gdk-pixbuf
-pkgver=2.42.8
-pkgrel=0
+pkgver=2.42.10
+pkgrel=6
pkgdesc="GTK+ image loading library"
url="https://wiki.gnome.org/Projects/GdkPixbuf"
arch="all"
-license="LGPL-2.0-or-later"
+license="LGPL-2.1-or-later"
depends="shared-mime-info"
-makedepends="tiff-dev libjpeg-turbo-dev gobject-introspection-dev
- libpng-dev glib-dev meson"
+makedepends="
+ glib-dev
+ gobject-introspection-dev
+ libjpeg-turbo-dev
+ libpng-dev
+ meson
+ py3-docutils
+ tiff-dev
+ "
install="$pkgname.pre-deinstall"
triggers="$pkgname.trigger=/usr/lib/gdk-pixbuf-2.0/*/loaders"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-lang $pkgname-dbg"
+subpackages="$pkgname-dbg $pkgname-doc $pkgname-lang $pkgname-dev $pkgname-loaders"
source="https://download.gnome.org/sources/gdk-pixbuf/${pkgver%.*}/gdk-pixbuf-$pkgver.tar.xz"
-replaces="gtk+"
+
+case "$CARCH" in
+x86|arm*)
+ # https://gitlab.gnome.org/GNOME/gdk-pixbuf/-/issues/215
+ options="$options !check"
+esac
# secfixes:
# 2.42.8-r0:
@@ -29,29 +40,26 @@ replaces="gtk+"
build() {
abuild-meson \
+ -Db_lto=true \
-Dinstalled_tests=false \
+ -Dtests="$(want_check && echo true || echo false)" \
output .
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
check() {
- meson test -t 10 -C output
+ meson test -t 10 --print-errorlogs -C output
}
package() {
DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
-doc() {
- replaces="gtk+-doc"
- default_doc
-}
-
-dev() {
- replaces="gtk+-dev"
- default_dev
+loaders() {
+ pkgdesc="Metapackage to pull in gdk-pixbuf loaders"
+ mkdir -p "$subpkgdir"
}
sha512sums="
-994a1374becec6235d347f4980afcc8b85f43ac373e4d7e00b7445880d0a51932e63b54429b28ab5af09e7c4437f9d6008e1c25b2d44a2c9ef7cc9821b478387 gdk-pixbuf-2.42.8.tar.xz
+ad64963b61ef8cc84ae450328ec8c90a852f974e29ffdd42263ed32de47af93c058f3ffdf91c5d6e9bba815f4e8e8fe5a19422ac1bfb079666339814ac059b3a gdk-pixbuf-2.42.10.tar.xz
"
diff --git a/main/gdl/APKBUILD b/main/gdl/APKBUILD
deleted file mode 100644
index 222197206fe..00000000000
--- a/main/gdl/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=gdl
-pkgver=3.40.0
-pkgrel=0
-pkgdesc="Gnome Docking library"
-url="https://gitlab.gnome.org/GNOME/gdl"
-arch="all"
-license="LGPL-2.1-or-later"
-makedepends="gtk+3.0-dev libxml2-dev intltool"
-options="!check" # no tests
-subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
-source="https://download.gnome.org/sources/gdl/${pkgver%.*}/gdl-$pkgver.tar.xz"
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --disable-static
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-sha512sums="
-38cf787a47e7eece445c7bf321cb5aa691cc6bdfcb31bc10fb51c83c525b74fc8374a20989621d79e70f25ef92d9d7cce46f6f0bb993cceba3fb93b9092c1e32 gdl-3.40.0.tar.xz
-"
diff --git a/main/gengetopt/APKBUILD b/main/gengetopt/APKBUILD
index b4370b9f56e..37530942220 100644
--- a/main/gengetopt/APKBUILD
+++ b/main/gengetopt/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=gengetopt
pkgver=2.23
-pkgrel=0
+pkgrel=2
pkgdesc="Tool to write command line option parsing code for C programs"
url="https://www.gnu.org/software/gengetopt/"
arch="all"
@@ -10,10 +10,15 @@ license="GPL-3.0-or-later"
depends_dev="gengetopt"
makedepends="$depends_dev texinfo"
subpackages="$pkgname-doc $pkgname-dev"
-source="https://ftp.gnu.org/gnu/gengetopt/${pkgname}-${pkgver}.tar.xz"
+source="https://ftp.gnu.org/gnu/gengetopt/gengetopt-$pkgver.tar.xz"
+options="!check"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -26,7 +31,6 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
diff --git a/main/geoip/APKBUILD b/main/geoip/APKBUILD
index cebf3474882..290946d5933 100644
--- a/main/geoip/APKBUILD
+++ b/main/geoip/APKBUILD
@@ -2,16 +2,21 @@
pkgname=geoip
_pkgname="GeoIP"
pkgver=1.6.12
-pkgrel=2
+pkgrel=5
pkgdesc="Lookup countries by IP addresses"
url="http://www.maxmind.com/app/ip-location"
arch="all"
-license="GPL"
+license="LGPL-2.1-or-later"
makedepends="zlib-dev"
subpackages="$pkgname-dev $pkgname-doc"
source="https://github.com/maxmind/geoip-api-c/releases/download/v$pkgver/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
./configure \
--build=$CBUILD \
diff --git a/main/gettext-tiny/APKBUILD b/main/gettext-tiny/APKBUILD
new file mode 100644
index 00000000000..4237ac32c61
--- /dev/null
+++ b/main/gettext-tiny/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: TBK <alpine@jjtc.eu>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=gettext-tiny
+pkgver=0.3.2
+pkgrel=6
+pkgdesc="Tiny Internationalized Message Handling Library and tools"
+url="https://github.com/sabotage-linux/gettext-tiny"
+arch="all"
+license="MIT"
+options="!check" # No test suite
+depends_dev="musl-libintl"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/sabotage-linux/gettext-tiny/archive/v$pkgver.tar.gz
+ line-length.patch
+ respect-cflags.patch
+ xgettext-version.patch
+ "
+
+build() {
+ make LIBINTL=MUSL prefix=/usr
+}
+
+package() {
+ make LIBINTL=MUSL prefix=/usr DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+0ed85599c8dc4114764b8eeed1e35cde97f11185c3f689e377d020758cc010ba4402febb84dba4cdc78e94fa2cd65614dafade8708ea078db5b2921925c36e78 gettext-tiny-0.3.2.tar.gz
+0a26a8481bffe2ce8c73f7f500963aea9db8379fb87849142d8efabf1656604b22f6ad345483256f14c388466f2f44e5924b9f65d88f26867a753a96d1529270 line-length.patch
+b4e7db4e415f6bc31f2214f2044506ad18ea0bd3cae4200d93bbd34aa493c7478a7f953d0a7e08f29f0fd5a5d7b7cbfa2bcfd5692c37e423706a1c193239bf1d respect-cflags.patch
+1fe209eef2f9c2fcd2992a96d484032865cd70c34df3c97e8efa3a67af7bee00edeaa21a9a16c3ee9ea61d65e06b6d7e0afcb411a8a5e19702d32daff1a412c6 xgettext-version.patch
+"
diff --git a/main/gettext-tiny/line-length.patch b/main/gettext-tiny/line-length.patch
new file mode 100644
index 00000000000..0ba97819773
--- /dev/null
+++ b/main/gettext-tiny/line-length.patch
@@ -0,0 +1,15 @@
+https://github.com/sabotage-linux/gettext-tiny/issues/50
+
+We're losing the battle of the bulge; someone really should make this use malloc.
+
+--- gettext-tiny-0.3.1_git20191130/src/msgfmt.c.old 2020-01-14 08:03:11.000000000 +0000
++++ gettext-tiny-0.3.1_git20191130/src/msgfmt.c 2020-01-21 18:58:28.257709860 +0000
+@@ -160,7 +160,7 @@
+
+ int process(FILE *in, FILE *out, bool strict) {
+ struct mo_hdr mohdr = def_hdr;
+- char line[8192]; char *lp;
++ char line[12288]; char *lp;
+ size_t off, i;
+ enum po_error t;
+ char convbuf[32768];
diff --git a/main/gettext-tiny/respect-cflags.patch b/main/gettext-tiny/respect-cflags.patch
new file mode 100644
index 00000000000..dd1cf3fe2cf
--- /dev/null
+++ b/main/gettext-tiny/respect-cflags.patch
@@ -0,0 +1,11 @@
+--- gettext-tiny-0.2.0/Makefile.old 2017-08-02 06:14:20.000000000 -0500
++++ gettext-tiny-0.2.0/Makefile 2018-06-16 21:21:57.148735892 -0500
+@@ -32,7 +32,7 @@
+ ALL_M4S=$(sort $(wildcard m4/*.m4))
+ ALL_DATA=$(sort $(wildcard data/*))
+
+-CFLAGS=-O0 -fPIC
++CFLAGS ?= -O0 -fPIC
+
+ AR ?= $(CROSS_COMPILE)ar
+ RANLIB ?= $(CROSS_COMPILE)ranlib
diff --git a/main/gettext-tiny/xgettext-version.patch b/main/gettext-tiny/xgettext-version.patch
new file mode 100644
index 00000000000..f72f7d27cf6
--- /dev/null
+++ b/main/gettext-tiny/xgettext-version.patch
@@ -0,0 +1,25 @@
+Patch-Source: https://github.com/sabotage-linux/gettext-tiny/commit/bcb04de5afcf5532a110babfe3912b5725e7146b
+From bcb04de5afcf5532a110babfe3912b5725e7146b Mon Sep 17 00:00:00 2001
+From: Patrycja <github@ptrcnull.me>
+Date: Wed, 9 Mar 2022 15:42:21 +0100
+Subject: [PATCH] xgettext: fix --version output (#60)
+
+"\n" in the printf parameter doesn't expand
+and the comma gets printed after format string
+---
+ src/xgettext.sh | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/xgettext.sh b/src/xgettext.sh
+index fc38369..b113c98 100755
+--- a/src/xgettext.sh
++++ b/src/xgettext.sh
+@@ -16,7 +16,7 @@ syntax() {
+ }
+
+ show_version() {
+- printf "%s\n", "xgettext (GNU gettext-tools compatible) 99.9999.9999\n"
++ printf "%s\n" "xgettext (GNU gettext-tools-compatible) 99.99"
+ exit 0
+ }
+
diff --git a/main/gettext/APKBUILD b/main/gettext/APKBUILD
index 53c3060f5b2..8633837b3d9 100644
--- a/main/gettext/APKBUILD
+++ b/main/gettext/APKBUILD
@@ -2,26 +2,35 @@
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=gettext
-pkgver=0.21
-pkgrel=3
+pkgver=0.22.5
+pkgrel=0
pkgdesc="GNU locale utilities"
url="https://www.gnu.org/software/gettext/gettext.html"
arch="all"
license="GPL-3.0-or-later AND LGPL-2.1-or-later AND MIT"
# do _not_ add the optional dependencies on libcroco or glib
# they depend on gettext and would introduce cyclic dependencies
+# xz for autopoint autoreconf
+depends_dev="!musl-libintl xz"
makedepends="perl ncurses-dev libxml2-dev libunistring-dev"
checkdepends="coreutils"
-subpackages="$pkgname-dbg $pkgname-doc $pkgname-static $pkgname-dev
- $pkgname-lang libintl $pkgname-asprintf $pkgname-libs"
+subpackages="
+ $pkgname-dbg
+ $pkgname-doc
+ $pkgname-static
+ $pkgname-dev
+ $pkgname-lang
+ $pkgname-envsubst:_envsubst
+ libintl
+ $pkgname-asprintf
+ $pkgname-libs
+ "
source="https://ftp.gnu.org/gnu/gettext/gettext-$pkgver.tar.xz
- skip-tests-musl.patch
- skip-tests-libunistring-1.0.patch
+ cwd.patch
musl-realpath.patch
+ skip-tests-musl.patch
"
-provider_priority=100 # highest (other provider of cmd:envsubst is testing/envsubst)
-
# secfixes:
# 0.20.1-r0:
# - CVE-2018-18751
@@ -46,33 +55,40 @@ check() {
}
package() {
+ depends="$pkgname-envsubst=$pkgver-r$pkgrel"
make -j1 DESTDIR="$pkgdir" install
-}
-static() {
- pkgdesc="libintl static libraries"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib/
+ # nothing in here is particularly useful, mostly just hello world examples in
+ # every single programming language for using gettext
+ rm -r "$pkgdir"/usr/share/doc
}
libintl() {
pkgdesc="GNU gettext runtime library"
license="LGPL-2.1-or-later"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libintl.so.* "$subpkgdir"/usr/lib
+
+ amove usr/lib/libintl.so.*
chmod +x "$subpkgdir"/usr/lib/libintl.so.*
}
asprintf() {
pkgdesc="GNU gettext asprintf library"
license="LGPL-2.1-or-later"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libasprintf.so.* "$subpkgdir"/usr/lib
+
+ amove usr/lib/libasprintf.so.*
+}
+
+_envsubst() {
+ pkgdesc="GNU gettext envsubst binary"
+ provides="envsubst"
+ provider_priority=100 # highest (other provider of cmd:envsubst is testing/envsubst)
+
+ amove usr/bin/envsubst
}
sha512sums="
-f7e2968651879f8444d43a176a149db9f9411f4a03132a7f3b37c2ed97e3978ae6888169c995c1953cb78943b6e3573811abcbb8661b6631edbbe067b2699ddf gettext-0.21.tar.xz
-9fae1898eaf7a871876d2eaeffdf6ab759455bc8062fc232992526d697752d864b6079eb3c1053aea08d3a41892008b201566564fa62275d0ced5cfa6088a4c0 skip-tests-musl.patch
-4f65c3ea09cf3b3be2fac560a820eeab5687e93bfdf4693343d756734144ec351fbf34e4671a4b89df07b47848905aba4099711ba0151d69fc56a954140b4325 skip-tests-libunistring-1.0.patch
-593615f1d3a75e0fff1561b11e6363aacdc44045adf19c765e27360f256149e442643f40ef1ed781d4175e02dd9719871019e16b0c1393a124a8a87ef0cf75b0 musl-realpath.patch
+a60999bb9d09441f138214d87acb7e59aab81e765bb9253a77c54902681c5de164a5a04de2a9778dfb479dbdefaab2d5de1fbaf6095c555c43e7e9fd7a1c09bd gettext-0.22.5.tar.xz
+31796534e40c1569b08cf48e25375ca1d0f439df8aa0d24283769d52a290e28522760128f11f5bd04217605974ae1fdee9557ec189ed32b11b2a45b4af3b0f4a cwd.patch
+c423b7f5610f03af63ed5327801be47fecc1d3de66cb018b32d05179a62889156cefb6d302686e9ecd81421951a5aa5e4c5a7d911823fc41d4c52ad2387e0719 musl-realpath.patch
+a16963f804ce4abe8480da211228f7b24a0715d6ef3ff7d5e5c58a1387d6c4260ee237864081b05b164f082ef199a592494ce691dd0c96c61978e4c451707c7a skip-tests-musl.patch
"
diff --git a/main/gettext/cwd.patch b/main/gettext/cwd.patch
new file mode 100644
index 00000000000..cebc626bc9a
--- /dev/null
+++ b/main/gettext/cwd.patch
@@ -0,0 +1,14 @@
+seems to fail on ppc64le
+--
+diff --git a/gettext-tools/gnulib-tests/test-getcwd.sh b/gettext-tools/gnulib-tests/test-getcwd.sh
+index 64a3c7c..ccabb8f 100755
+--- a/gettext-tools/gnulib-tests/test-getcwd.sh
++++ b/gettext-tools/gnulib-tests/test-getcwd.sh
+@@ -1,5 +1,7 @@
+ #!/bin/sh
+
++exit 77
++
+ . "${srcdir=.}/init.sh"; path_prepend_ .
+
+ ${CHECKER} test-getcwd
diff --git a/main/gettext/musl-realpath.patch b/main/gettext/musl-realpath.patch
index 05cb14f7530..0afd08b073c 100644
--- a/main/gettext/musl-realpath.patch
+++ b/main/gettext/musl-realpath.patch
@@ -1,40 +1,11 @@
-https://gitlab.alpinelinux.org/alpine/aports/-/issues/12295
-
-----
-test-canonicalize.c:339: assertion 'strcmp (result1, "/") == 0' failed
-Aborted (core dumped)
-FAIL test-canonicalize (exit status: 134)
-----
-
-diff --git a/gettext-tools/gnulib-tests/test-canonicalize-lgpl.c b/gettext-tools/gnulib-tests/test-canonicalize-lgpl.c
-index ff82981..17842e8 100644
---- a/gettext-tools/gnulib-tests/test-canonicalize-lgpl.c
-+++ b/gettext-tools/gnulib-tests/test-canonicalize-lgpl.c
-@@ -208,8 +208,8 @@ main (void)
- #ifndef __MVS__
- if (SAME_INODE (st1, st2))
- {
-- ASSERT (strcmp (result1, "/") == 0);
-- ASSERT (strcmp (result2, "/") == 0);
-+ ASSERT (strcmp (result1, "/") == 0 || strcmp (result1, "//") == 0);
-+ ASSERT (strcmp (result2, "/") == 0 || strcmp (result2, "//") == 0);
- }
- else
- #endif
--- a/gettext-tools/gnulib-tests/test-canonicalize.c
+++ b/gettext-tools/gnulib-tests/test-canonicalize.c
-@@ -336,10 +336,10 @@
+@@ -394,7 +394,7 @@
+ ASSERT (stat ("/", &st1) == 0);
ASSERT (stat ("//", &st2) == 0);
- if (SAME_INODE (st1, st2))
- {
-- ASSERT (strcmp (result1, "/") == 0);
-- ASSERT (strcmp (result2, "/") == 0);
-- ASSERT (strcmp (result3, "/") == 0);
-- ASSERT (strcmp (result4, "/") == 0);
-+ ASSERT (strcmp (result1, "/") == 0 || strcmp (result1, "//") == 0);
-+ ASSERT (strcmp (result2, "/") == 0 || strcmp (result2, "//") == 0);
-+ ASSERT (strcmp (result3, "/") == 0 || strcmp (result3, "//") == 0);
-+ ASSERT (strcmp (result4, "/") == 0 || strcmp (result4, "//") == 0);
- }
- else
- {
+ bool same = psame_inode (&st1, &st2);
+-#if defined __MVS__ || defined MUSL_LIBC
++#if defined __MVS__
+ /* On IBM z/OS and musl libc, "/" and "//" both canonicalize to
+ themselves, yet they both have st_dev == st_ino == 1. */
+ same = false;
diff --git a/main/gettext/skip-tests-libunistring-1.0.patch b/main/gettext/skip-tests-libunistring-1.0.patch
deleted file mode 100644
index cc8bab72d31..00000000000
--- a/main/gettext/skip-tests-libunistring-1.0.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-Some of the tests are broken with libunistring 1.0
-https://lists.gnu.org/archive/html/bug-gettext/2022-04/msg00002.html
-
-diff --git a/gettext-tools/tests/msgcat-17 b/gettext-tools/tests/msgcat-17
-index 8fecc40..b26d8be 100755
---- a/gettext-tools/tests/msgcat-17
-+++ b/gettext-tools/tests/msgcat-17
-@@ -3,6 +3,8 @@
-
- # Test msgcat with --width option. Check that format strings are not broken.
-
-+exit 77
-+
- cat <<\EOF > mcat-test17.in
- msgid ""
- msgstr ""
-diff --git a/gettext-tools/tests/msgfilter-sr-latin-1 b/gettext-tools/tests/msgfilter-sr-latin-1
-index c1cc978..946b1a9 100755
---- a/gettext-tools/tests/msgfilter-sr-latin-1
-+++ b/gettext-tools/tests/msgfilter-sr-latin-1
-@@ -4,6 +4,8 @@
- # Test msgfilter with command recode-sr-latin1.
- # Verify that it converts to UTF-8.
-
-+exit 77
-+
- cat <<\EOF > mfi-srl-1.po
- # Serbian translation of gettext-runtime
- # Copyright (C) 2003 Free Software Foundation, Inc.
-diff --git a/gettext-tools/tests/msgmerge-11 b/gettext-tools/tests/msgmerge-11
-index ed49db9..cc6849f 100755
---- a/gettext-tools/tests/msgmerge-11
-+++ b/gettext-tools/tests/msgmerge-11
-@@ -4,6 +4,8 @@
- # Test merging of a message which has plural forms in ref.pot but not
- # in def.po.
-
-+exit 77
-+
- cat <<EOF > mm-test11.po
- # SOME DESCRIPTIVE TITLE.
- # Copyright (C) YEAR Free Software Foundation, Inc.
-diff --git a/gettext-tools/tests/xgettext-python-1 b/gettext-tools/tests/xgettext-python-1
-index 4901c71..f52ea00 100755
---- a/gettext-tools/tests/xgettext-python-1
-+++ b/gettext-tools/tests/xgettext-python-1
-@@ -3,6 +3,8 @@
-
- # Test of Python support.
-
-+exit 77
-+
- cat <<\EOF > xg-py-1.py
- # interpret_ansic = true, interpret_unicode = false
- _("abc\
diff --git a/main/gettext/skip-tests-musl.patch b/main/gettext/skip-tests-musl.patch
index de9a6b02b3a..8b3e9214103 100644
--- a/main/gettext/skip-tests-musl.patch
+++ b/main/gettext/skip-tests-musl.patch
@@ -3,6 +3,19 @@ As upstream notes:
# Note: This test fails on Linux with musl libc versions that don't support
# the BIG5 encoding in 'iconv'.
+diff --git a/gettext-tools/tests/msgcat-22 b/gettext-tools/tests/msgcat-22
+index 6047188..abe5877 100755
+--- a/gettext-tools/tests/msgcat-22
++++ b/gettext-tools/tests/msgcat-22
+@@ -6,6 +6,8 @@
+ # Note: This test fails on Linux with musl libc versions that don't support
+ # the GB18030 encoding in 'iconv'.
+
++exit 77
++
+ cat <<\EOF > mcat-test22.po
+ msgid ""
+ msgstr ""
diff --git a/gettext-tools/tests/msgconv-2 b/gettext-tools/tests/msgconv-2
index d286cda..d96c487 100755
--- a/gettext-tools/tests/msgconv-2
@@ -16,13 +29,26 @@ index d286cda..d96c487 100755
cat <<\EOF > mco-test2.po
# Chinese translation for GNU gettext messages.
#
+diff --git a/gettext-tools/tests/msgconv-8 b/gettext-tools/tests/msgconv-8
+index 207b0f0..618de0f 100755
+--- a/gettext-tools/tests/msgconv-8
++++ b/gettext-tools/tests/msgconv-8
+@@ -6,6 +6,8 @@
+ # Note: This test fails on Linux with musl libc versions that don't support
+ # the GB18030 encoding in 'iconv'.
+
++exit 77
++
+ cat <<\EOF > mco-test8.po
+ msgid ""
+ msgstr ""
diff --git a/gettext-tools/tests/msgmerge-compendium-6 b/gettext-tools/tests/msgmerge-compendium-6
-index 0afbe1e..1b2fe6b 100755
+index 59eb00e..c4be0b2 100755
--- a/gettext-tools/tests/msgmerge-compendium-6
+++ b/gettext-tools/tests/msgmerge-compendium-6
@@ -10,6 +10,8 @@
- # Note: This test fails on Linux with musl libc versions that don't support
- # the EUC-KR encoding in 'iconv'.
+ # Note: This test fails on Linux with musl libc versions and on Solaris 11
+ # (OpenIndiana, OmniOS) that don't support the EUC-KR encoding in 'iconv'.
+Exit 77
+
@@ -30,7 +56,7 @@ index 0afbe1e..1b2fe6b 100755
${MSGCONV} --to-code=UTF-8 -o mm-ko.utf-8.pot "$wabs_srcdir"/mm-ko.ascii.pot
diff --git a/gettext-tools/tests/xgettext-python-3 b/gettext-tools/tests/xgettext-python-3
-index ca0926d..2c49fd7 100755
+index 1e13b57..7cd480d 100755
--- a/gettext-tools/tests/xgettext-python-3
+++ b/gettext-tools/tests/xgettext-python-3
@@ -6,6 +6,8 @@
diff --git a/main/ghi/APKBUILD b/main/ghi/APKBUILD
deleted file mode 100644
index 830c8ccaaa6..00000000000
--- a/main/ghi/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Eivind Uggedal <eu@eju.no>
-# Maintainer: Roberto Oliveira <robertoguimaraes8@gmail.com>
-pkgname=ghi
-pkgver=1.2.0
-pkgrel=6
-pkgdesc="GitHub Issues on the command line"
-url="https://github.com/stephencelis/ghi"
-arch="noarch"
-license="MIT"
-depends="ruby ncurses less"
-options="!check"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/stephencelis/ghi/archive/$pkgver.tar.gz"
-
-builddir="$srcdir/$pkgname-$pkgver"
-
-package() {
- cd "$builddir"
-
- install -Dm755 $pkgname "$pkgdir/usr/bin/$pkgname"
- install -D -m644 man/$pkgname.1 "$pkgdir"/usr/share/man/man1/$pkgname.1
- install -D -m644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
-}
-
-sha512sums="345f3325007cef9087cb9c0215a2412c09aec542bec8003f2d67c3870fce36078a6ba2c8b73377cac419f82cbf8aed6ddab57ac96622aa2917734ae738014b89 ghi-1.2.0.tar.gz"
diff --git a/main/ghostscript-fonts/APKBUILD b/main/ghostscript-fonts/APKBUILD
index 03923c9725f..882f297673e 100644
--- a/main/ghostscript-fonts/APKBUILD
+++ b/main/ghostscript-fonts/APKBUILD
@@ -3,21 +3,23 @@
pkgname=ghostscript-fonts
_pkgname=ghostscript-fonts-std
pkgver=8.11
-pkgrel=2
+pkgrel=5
pkgdesc="Fonts and font metrics distributed with Ghostscript"
-url="http://gs-fonts.sourceforge.net/"
-arch="all"
-license="GPL"
+url="https://gs-fonts.sourceforge.net/"
+arch="noarch"
+license="GPL-2.0-or-later"
source="https://downloads.sourceforge.net/gs-fonts/$_pkgname-$pkgver.tar.gz"
-
-build(){
- echo
-}
+options="!check" # no tests
+builddir="$srcdir/fonts"
package() {
- cd "$srcdir/fonts"
- mkdir -p "$pkgdir/usr/share/fonts/Type1/"
- cp * "$pkgdir/usr/share/fonts/Type1/"
+ install -Dm644 ./*.afm ./*.pfb ./*.pfm \
+ -t "$pkgdir"/usr/share/fonts/Type1/
+
+ mkdir -p "$pkgdir"/usr/share/ghostscript
+ ln -sfv /usr/share/fonts/Type1 "$pkgdir"/usr/share/ghostscript/fonts
}
-sha512sums="d4fe6b097a3bdd9694dc704a2d986e22d649fbb7ca8302f872dff573525596a3f38246bd6dd166a5970a4fbca8cce6ebfb9a7030806b4662630afdf243438e1f ghostscript-fonts-std-8.11.tar.gz"
+sha512sums="
+d4fe6b097a3bdd9694dc704a2d986e22d649fbb7ca8302f872dff573525596a3f38246bd6dd166a5970a4fbca8cce6ebfb9a7030806b4662630afdf243438e1f ghostscript-fonts-std-8.11.tar.gz
+"
diff --git a/main/ghostscript/APKBUILD b/main/ghostscript/APKBUILD
index 4678020ddd8..ab16d6dd42d 100644
--- a/main/ghostscript/APKBUILD
+++ b/main/ghostscript/APKBUILD
@@ -1,16 +1,29 @@
# Contributor: Cameron Banta <cbanta@gmail.com>
# Maintainer: Cameron Banta <cbanta@gmail.com>
pkgname=ghostscript
-pkgver=9.56.1
+pkgver=10.02.1
pkgrel=0
-pkgdesc="An interpreter for the PostScript language and for PDF"
+pkgdesc="Interpreter for the PostScript language and for PDF"
url="https://ghostscript.com/"
arch="all"
license="AGPL-3.0-or-later"
options="!check"
-makedepends="autoconf automake libjpeg-turbo-dev libpng-dev expat-dev
- zlib-dev tiff-dev freetype-dev lcms2-dev gtk+3.0-dev
- cups-dev libtool jbig2dec-dev openjpeg-dev"
+makedepends="
+ autoconf
+ automake
+ cups-dev
+ expat-dev
+ freetype-dev
+ gtk+3.0-dev
+ jbig2dec-dev
+ lcms2-dev
+ libjpeg-turbo-dev
+ libpng-dev
+ libtool
+ openjpeg-dev
+ tiff-dev
+ zlib-dev
+ "
subpackages="$pkgname-dbg $pkgname-doc $pkgname-dev $pkgname-gtk"
source="https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs${pkgver//./}/ghostscript-$pkgver.tar.gz
ghostscript-system-zlib.patch
@@ -18,6 +31,8 @@ source="https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/
"
# secfixes:
+# 10.02.0-r0:
+# - CVE-2023-43115
# 9.54-r1:
# - CVE-2021-3781
# 9.51-r0:
@@ -100,10 +115,11 @@ prepare() {
cd $builddir/ijs
libtoolize --force && aclocal && autoconf && automake --add-missing
- update_config_sub
}
build() {
+ export CFLAGS="$CFLAGS -flto=auto"
+
# build ijs
cd "$builddir"/ijs
./configure \
@@ -125,7 +141,6 @@ build() {
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--docdir=/usr/share/doc/"$pkgname" \
- --enable-dynamic \
--with-system-libtiff \
--with-ijs \
--with-jbig2dec \
@@ -135,7 +150,6 @@ build() {
--with-drivers=ALL \
--with-fontpath=/usr/share/fonts/Type1:/usr/share/fonts \
--disable-compile-inits
- make obj/arch.h # workaround parallel build issue
make so all
}
@@ -153,12 +167,11 @@ package() {
gtk() {
pkgdesc="A GTK-enabled PostScript interpreter and renderer"
- install -d "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/gsx "$subpkgdir"/usr/bin/
+ amove usr/bin/gsx
}
sha512sums="
-f498384af80654c040635564b8bc9a64c4bb5b0769bb00aade4042bbe9117c482362dc1a1fac72db3ce9487dd5a5bb8fb81b35b360680fe598df33dfbbe79499 ghostscript-9.56.1.tar.gz
+24eeff047a24085413283ee42539a2feea4d3de81077664861399055a9d30349a0ef0950746bb0b0ee2237b4b9ee215340204ab0e33347b53dc2acee85fcfc19 ghostscript-10.02.1.tar.gz
70721e3a335afa5e21d4e6cf919119010bd4544a03ab8f53f5325c173902221ad9b88c118b4bfeee80b3e1956bcdbaf4c53f64ae7fb81f5ba57dbc956750c482 ghostscript-system-zlib.patch
beefcf395f7f828e1b81c088022c08a506e218f27535b9de01e0f0edf7979b435316c318fa676771630f6ad16ff1ab059cd68aa128ed97e5a9f2f3fa840200c4 fix-sprintf.patch
"
diff --git a/main/giflib/APKBUILD b/main/giflib/APKBUILD
index 0fa6d02dd54..99596663aa2 100644
--- a/main/giflib/APKBUILD
+++ b/main/giflib/APKBUILD
@@ -1,38 +1,49 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=giflib
-pkgver=5.2.1
+pkgver=5.2.2
pkgrel=0
pkgdesc="A library for reading and writing GIF images"
url="https://sourceforge.net/projects/giflib/"
arch="all"
license="MIT"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-utils"
+subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-utils"
makedepends="xmlto"
checkdepends="coreutils"
-source="https://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.gz
- giflib-restore-deprecated-functions.patch"
+source="https://downloads.sourceforge.net/sourceforge/giflib/giflib-$pkgver.tar.gz
+ CVE-2021-40633.patch
+ correct-document-page-install.patch
+ dont-build-html-pages-images.patch
+ "
+
+# secfixes:
+# 5.2.2-r0:
+# - CVE-2023-39742
+# - CVE-2023-48161
+# - CVE-2021-40633
+# 5.2.1-r2:
+# - CVE-2022-28506
build() {
- cd "$builddir"
- make CFLAGS="-fPIC"
+ make CFLAGS="$CFLAGS -fPIC"
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" PREFIX=/usr install
- rm -f "$pkgdir"/usr/lib/*.a
}
utils() {
pkgdesc="Programs for manipulating GIF format image files"
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+
+ amove usr/bin
}
-sha512sums="4550e53c21cb1191a4581e363fc9d0610da53f7898ca8320f0d3ef6711e76bdda2609c2df15dc94c45e28bff8de441f1227ec2da7ea827cb3c0405af4faa4736 giflib-5.2.1.tar.gz
-fdc4a46e4a61e15e14ad712f164a3595902da700c3280ef3ec6fae345118c055eefb1eb73bb755078d0ea1f6112fa4a2b8edf9d918017e0bdf413497d15e1eaf giflib-restore-deprecated-functions.patch"
+sha512sums="
+0865ab2b1904fa14640c655fdb14bb54244ad18a66e358565c00287875d00912343f9be8bfac7658cc0146200d626f7ec9160d7a339f20ba3be6b9941d73975f giflib-5.2.2.tar.gz
+33394cd01a5379ffadffa1a3c9ebd4fe2fddd3ea53fd3c713cc65b0ea0158d26aeb5148a9721c4892e944ef1a5694f54c23450118ab3b6f597e64eb6f3986731 CVE-2021-40633.patch
+6cb391eefc95f554ee83e89edf6fae365498597e370d684de5d020cb8f87f7bc3506afb30cbd36e9de2302d3301e33e044804c2d2a2c977d1bb7fa9e73f489cb correct-document-page-install.patch
+aa32ccce78120a50f84c2dec644d10996a0fdb41335b47a1d71b45d14ffc9efd14e6aca3f2392dd6713e3c216c07736e94d21d661a90cfe4d57422eb08a1fbc2 dont-build-html-pages-images.patch
+"
diff --git a/main/giflib/CVE-2021-40633.patch b/main/giflib/CVE-2021-40633.patch
new file mode 100644
index 00000000000..9002088b67d
--- /dev/null
+++ b/main/giflib/CVE-2021-40633.patch
@@ -0,0 +1,30 @@
+From ccbc956432650734c91acb3fc88837f7b81267ff Mon Sep 17 00:00:00 2001
+From: "Eric S. Raymond" <esr@thyrsus.com>
+Date: Wed, 21 Feb 2024 18:55:00 -0500
+Subject: [PATCH] Clean up memory better at end of run (CVE-2021-40633)
+
+---
+ gif2rgb.c | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/gif2rgb.c b/gif2rgb.c
+index d51226d..fc2e683 100644
+--- a/gif2rgb.c
++++ b/gif2rgb.c
+@@ -515,10 +515,13 @@ static void GIF2RGB(int NumFiles, char *FileName, bool OneFileFlag,
+ }
+
+ DumpScreen2RGB(OutFileName, OneFileFlag, ColorMap, ScreenBuffer,
+ GifFile->SWidth, GifFile->SHeight);
+
++ for (i = 0; i < GifFile->SHeight; i++) {
++ (void)free(ScreenBuffer[i]);
++ }
+ (void)free(ScreenBuffer);
+
+ {
+ int Error;
+ if (DGifCloseFile(GifFile, &Error) == GIF_ERROR) {
+--
+2.43.0
+
diff --git a/main/giflib/correct-document-page-install.patch b/main/giflib/correct-document-page-install.patch
new file mode 100644
index 00000000000..4e10d86635e
--- /dev/null
+++ b/main/giflib/correct-document-page-install.patch
@@ -0,0 +1,58 @@
+From 61f375082c80ee479eb8ff03189aea691a6a06aa Mon Sep 17 00:00:00 2001
+From: "Eric S. Raymond" <esr@thyrsus.com>
+Date: Wed, 21 Feb 2024 08:33:51 -0500
+Subject: [PATCH] Correct document page install.
+
+---
+ Makefile | 13 +++++++++----
+ 1 file changed, 9 insertions(+), 4 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 87966a9..f4ecb24 100644
+--- a/Makefile
++++ b/Makefile
+@@ -61,19 +61,23 @@ UTILS = $(INSTALLABLE) \
+ gifsponge \
+ gifwedge
+
+ LDLIBS=libgif.a -lm
+
+-MANUAL_PAGES = \
++MANUAL_PAGES_1 = \
+ doc/gif2rgb.xml \
+ doc/gifbuild.xml \
+ doc/gifclrmp.xml \
+ doc/giffix.xml \
+- doc/giflib.xml \
+ doc/giftext.xml \
+ doc/giftool.xml
+
++MANUAL_PAGES_7 = \
++ doc/giflib.xml
++
++MANUAL_PAGES = $(MANUAL_PAGES_1) $(MANUAL_PAGES_7)
++
+ SOEXTENSION = so
+ LIBGIFSO = libgif.$(SOEXTENSION)
+ LIBGIFSOMAJOR = libgif.$(SOEXTENSION).$(LIBMAJOR)
+ LIBGIFSOVER = libgif.$(SOEXTENSION).$(LIBVER)
+ LIBUTILSO = libutil.$(SOEXTENSION)
+@@ -146,12 +150,13 @@ install-lib:
+ $(INSTALL) -m 644 libgif.a "$(DESTDIR)$(LIBDIR)/libgif.a"
+ $(INSTALL) -m 755 $(LIBGIFSO) "$(DESTDIR)$(LIBDIR)/$(LIBGIFSOVER)"
+ ln -sf $(LIBGIFSOVER) "$(DESTDIR)$(LIBDIR)/$(LIBGIFSOMAJOR)"
+ ln -sf $(LIBGIFSOMAJOR) "$(DESTDIR)$(LIBDIR)/$(LIBGIFSO)"
+ install-man:
+- $(INSTALL) -d "$(DESTDIR)$(MANDIR)/man1"
+- $(INSTALL) -m 644 $(MANUAL_PAGES) "$(DESTDIR)$(MANDIR)/man1"
++ $(INSTALL) -d "$(DESTDIR)$(MANDIR)/man1" "$(DESTDIR)$(MANDIR)/man7"
++ $(INSTALL) -m 644 $(MANUAL_PAGES_1:xml=1) "$(DESTDIR)$(MANDIR)/man1"
++ $(INSTALL) -m 644 $(MANUAL_PAGES_7:xml=7) "$(DESTDIR)$(MANDIR)/man7"
+ uninstall: uninstall-man uninstall-include uninstall-lib uninstall-bin
+ uninstall-bin:
+ cd "$(DESTDIR)$(BINDIR)" && rm -f $(INSTALLABLE)
+ uninstall-include:
+ rm -f "$(DESTDIR)$(INCDIR)/gif_lib.h"
+--
+2.43.0
+
diff --git a/main/giflib/dont-build-html-pages-images.patch b/main/giflib/dont-build-html-pages-images.patch
new file mode 100644
index 00000000000..7d4fe356dcf
--- /dev/null
+++ b/main/giflib/dont-build-html-pages-images.patch
@@ -0,0 +1,18 @@
+Description: Don't build the site HTML pages images.
+ It saves us to have ImageMagick as a b-depend.
+Author: David Suárez <david.sephirot@gmail.com>
+Origin: vendor
+Last-Update: 2024-03-24
+Forwarded: not-needed
+
+--- a/doc/Makefile
++++ b/doc/Makefile
+@@ -46,7 +46,7 @@
+ convert $^ -resize 50x50 $@
+
+ # Philosophical choice: the website gets the internal manual pages
+-allhtml: $(XMLALL:.xml=.html) giflib-logo.gif
++allhtml: $(XMLALL:.xml=.html)
+
+ manpages: $(XMLMAN1:.xml=.1) $(XMLMAN7:.xml=.7) $(XMLINTERNAL:.xml=.1)
+
diff --git a/main/giflib/giflib-restore-deprecated-functions.patch b/main/giflib/giflib-restore-deprecated-functions.patch
deleted file mode 100644
index 770cb16d5ac..00000000000
--- a/main/giflib/giflib-restore-deprecated-functions.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Source: Gentoo, written by Gary Stein
-Upstream: No
-Reason: restores deprecated GifQuantizeBuffer which some packages (notably libgdiplus) still use
---- a/Makefile 2019-03-28 14:57:23.000000000 -0400
-+++ b/Makefile 2019-03-31 23:38:20.700603561 -0400
-@@ -67,8 +67,8 @@
-
- $(UTILS):: libgif.a libutil.a
-
--libgif.so: $(OBJECTS) $(HEADERS)
-- $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,libgif.so.$(LIBMAJOR) -o libgif.so $(OBJECTS)
-+libgif.so: $(OBJECTS) $(HEADERS) $(UOBJECTS)
-+ $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname -Wl,libgif.so.$(LIBMAJOR) -o libgif.so $(OBJECTS) $(UOBJECTS)
-
- libgif.a: $(OBJECTS) $(HEADERS)
- $(AR) rcs libgif.a $(OBJECTS)
-
diff --git a/main/git/APKBUILD b/main/git/APKBUILD
index 2cf5b3aa1da..b6daecede79 100644
--- a/main/git/APKBUILD
+++ b/main/git/APKBUILD
@@ -2,6 +2,21 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
#
# secfixes:
+# 2.40.1-r0:
+# - CVE-2023-25652
+# - CVE-2023-25815
+# - CVE-2023-29007
+# 2.39.2-r0:
+# - CVE-2023-22490
+# - CVE-2023-23946
+# 2.39.1-r0:
+# - CVE-2022-41903
+# - CVE-2022-23521
+# 2.38.1-r0:
+# - CVE-2022-39253
+# - CVE-2022-39260
+# 2.37.1-r0:
+# - CVE-2022-29187
# 2.35.2-r0:
# - CVE-2022-24765
# 2.30.2-r0:
@@ -32,41 +47,54 @@
# - CVE-2021-46101
pkgname=git
-pkgver=2.37.0
-pkgrel=0
+pkgver=2.44.0
+pkgrel=2
pkgdesc="Distributed version control system"
url="https://www.git-scm.com/"
arch="all"
-license="GPL-2.0-or-later"
-# we need tcl and tk to be built before git due to git-gui and gitk
-makedepends="zlib-dev openssl1.1-compat-dev curl-dev expat-dev perl-dev
- pcre2-dev xmlto perl-error"
+license="GPL-2.0-only"
+makedepends="
+ curl-dev
+ expat-dev
+ file
+ openssl-dev>3
+ pcre2-dev
+ perl-dev
+ perl-error
+ xmlto
+ zlib-dev
+ "
# note that order matters
-subpackages="$pkgname-dbg
+subpackages="
+ $pkgname-dbg
$pkgname-bash-completion
+ $pkgname-prompt::noarch
perl-$pkgname-svn:_perl_git_svn:noarch
perl-$pkgname:_perl_git:noarch
$pkgname-svn::noarch
$pkgname-email
- $pkgname-fast-import:_fast_import
+ $pkgname-fast-import:_fast_import:noarch
$pkgname-cvs::noarch
$pkgname-daemon
$pkgname-daemon-openrc:daemon_openrc
+ $pkgname-scalar
$pkgname-gitweb::noarch
$pkgname-subtree::noarch
- $pkgname-perl:_git_perl:noarch
$pkgname-diff-highlight:diff_highlight:noarch
+ $pkgname-perl:_git_perl:noarch
+ $pkgname-init-template:_init_template:noarch
"
-
source="https://www.kernel.org/pub/software/scm/git/git-$pkgver.tar.xz
git-daemon.initd
git-daemon.confd
fix-t4219-with-sticky-bit.patch
"
+options="$options !check" # a few need updated for perl 5.38
_gitcoredir=/usr/libexec/git-core
-if [ -z "$BOOTSTRAP" ]; then
+if [ -z "$BOOTSTRAP" ] && [ -z "$APORTS_BOOTSTRAP" ]; then
+ # we need tcl and tk to be built before git due to git-gui and gitk
makedepends="$makedepends asciidoc python3-dev tcl tk libsecret-dev glib-dev"
subpackages="$subpackages
$pkgname-doc
@@ -76,8 +104,16 @@ if [ -z "$BOOTSTRAP" ]; then
$pkgname-subtree-doc:subtree_doc:noarch
$pkgname-credential-libsecret:credential_libsecret
"
+ _full_build=1
fi
+case "$CARCH" in
+s390x)
+ # todo: they fail with strange between-test email mismatches
+ options="$options !check"
+ ;;
+esac
+
prepare() {
default_prepare
@@ -85,14 +121,18 @@ prepare() {
NO_GETTEXT=YesPlease
NO_SVN_TESTS=YesPlease
NO_REGEX=YesPlease
- USE_LIBPCRE2=YesPlease
NO_SYS_POLL_H=1
- CFLAGS=$CFLAGS
ICONV_OMITS_BOM=Yes
+ INSTALL_SYMLINKS=1
+ CC=${CC:-cc}
+ CXX=${CC:-c++}
+ CFLAGS=$CFLAGS -flto=auto
+ LDFLAGS=$LDFLAGS -flto=auto
+ USE_LIBPCRE2=YesPlease
PYTHON_PATH=/usr/bin/python3
EOF
- if [ -n "$BOOTSTRAP" ]; then
+ if [ -z "$_full_build" ]; then
cat >> config.mak <<-EOF
NO_PYTHON=YesPlease
NO_TCLTK=YesPlease
@@ -101,55 +141,74 @@ prepare() {
}
build() {
- make prefix=/usr DESTDIR="$pkgdir" perllibdir=$(_perl_config vendorlib)
+ make prefix=/usr \
+ DESTDIR="$pkgdir" \
+ perllibdir="$(_perl_config vendorlib)" \
+ all
- if [ -z "$BOOTSTRAP" ]; then
+ make -C contrib/subtree prefix=/usr DESTDIR="$pkgdir"
+ make -C contrib/diff-highlight prefix=/usr DESTDIR="$pkgdir"
+
+ if [ -n "$_full_build" ]; then
# generate manpages outside of package()
make prefix=/usr man
- cd "$builddir"/contrib/credential/libsecret
- make prefix=/usr
+
+ make prefix=/usr -C contrib/credential/libsecret
fi
}
check() {
- make prefix=/usr DESTDIR="$pkgdir" \
- perlibdir=$(_perl_config vendorlib) \
- test
+ make -C t prefix=/usr DESTDIR="$pkgdir" \
+ perlibdir="$(_perl_config vendorlib)" \
+ all
}
package() {
- local install_man
- install_man=install-man
- if [ -n "$BOOTSTRAP" ]; then
- install_man=""
+ if [ -n "$_full_build" ]; then
+ local install_man=install-man
fi
- make prefix=/usr DESTDIR="$pkgdir" INSTALLDIRS=vendor \
- perllibdir=$(_perl_config vendorlib) \
- install $install_man
+ make prefix=/usr \
+ DESTDIR="$pkgdir" \
+ INSTALLDIRS=vendor \
+ perllibdir="$(_perl_config vendorlib)" \
+ install \
+ $install_man
+
+ make -C contrib/subtree install prefix=/usr DESTDIR="$pkgdir"
mkdir -p "$pkgdir"/var/git
install -Dm755 "$srcdir"/git-daemon.initd "$pkgdir"/etc/init.d/git-daemon
install -Dm644 "$srcdir"/git-daemon.confd "$pkgdir"/etc/conf.d/git-daemon
+ install -Dm755 contrib/diff-highlight/diff-highlight -t "$pkgdir"/usr/bin/
+
install -Dm644 contrib/completion/git-completion.bash \
"$pkgdir"/usr/share/bash-completion/completions/git
- if [ -z "$BOOTSTRAP" ]; then
+ install -Dm644 contrib/completion/git-prompt.sh \
+ "$pkgdir"/usr/share/git-core/git-prompt.sh
+
+ if [ -n "$_full_build" ]; then
install -Dm755 contrib/credential/libsecret/git-credential-libsecret "$pkgdir"/usr/libexec/git-core
fi
}
+prompt() {
+ pkgdesc="bash and zsh prompt integration for Git"
+ depends="git=$pkgver-r$pkgrel"
+
+ amove usr/share/git-core/git-prompt.sh
+}
+
_perl_git_svn() {
pkgdesc="Perl interface to Git::SVN"
depends="git=$pkgver-r$pkgrel perl-git=$pkgver-r$pkgrel"
- local vendorlib
- vendorlib=$(_perl_config vendorlib)
+ local vendorlib=$(_perl_config vendorlib)
- mkdir -p "$subpkgdir"/$vendorlib/Git
- mv "$pkgdir"/$vendorlib/Git/SVN* "$subpkgdir"/$vendorlib/Git/
+ amove $vendorlib/Git/SVN*
}
_perl_git() {
@@ -159,8 +218,7 @@ _perl_git() {
local i
for i in "$(_perl_config vendorlib)" "$(_perl_config vendorarch)"; do
[ -d "$pkgdir/$i" ] || continue
- mkdir -p "$subpkgdir"/${i%/*}
- mv "$pkgdir"/$i "$subpkgdir"/$i
+ amove $i
done
}
@@ -168,57 +226,53 @@ email() {
pkgdesc="Git tools for sending email"
depends="perl perl-git=$pkgver-r$pkgrel perl-net-smtp-ssl perl-authen-sasl"
- mkdir -p "$subpkgdir"/$_gitcoredir
- mv "$pkgdir"/$_gitcoredir/*email* "$pkgdir"/$_gitcoredir/*imap* \
- "$subpkgdir"/$_gitcoredir
+ amove $_gitcoredir/*email*
+ amove $_gitcoredir/*imap*
}
svn() {
pkgdesc="Subversion support for git"
- depends="perl perl-git-svn=$pkgver-r$pkgrel perl-subversion
- perl-term-readkey"
+ depends="
+ perl
+ perl-git-svn=$pkgver-r$pkgrel
+ perl-subversion
+ perl-term-readkey
+ "
- mkdir -p "$subpkgdir"/$_gitcoredir
- mv "$pkgdir"/$_gitcoredir/git-svn \
- "$subpkgdir"/$_gitcoredir/
+ amove $_gitcoredir/git-svn
}
cvs() {
pkgdesc="Git tools for importing CVS repositories"
depends="perl perl-git=$pkgver-r$pkgrel cvs perl-dbd-sqlite"
- mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/$_gitcoredir
- mv "$pkgdir"/usr/bin/git-cvs* "$subpkgdir"/usr/bin/
- mv "$pkgdir"/$_gitcoredir/*cvs* "$subpkgdir"/$_gitcoredir
+ amove usr/bin/git-cvs*
+ amove $_gitcoredir/*cvs*
}
_fast_import() {
pkgdesc="Git backend for fast Git data importers"
depends="git=$pkgver-r$pkgrel"
- mkdir -p "$subpkgdir"/$_gitcoredir
- mv "$pkgdir"/$_gitcoredir/git-fast-import "$subpkgdir"/$_gitcoredir/
+ amove $_gitcoredir/git-fast-import
}
p4() {
pkgdesc="Git tools for working with Perforce depots"
depends="git=$pkgver-r$pkgrel git-fast-import=$pkgver-r$pkgrel"
- mkdir -p "$subpkgdir"/$_gitcoredir/mergetools
- mv "$pkgdir"/$_gitcoredir/*p4* "$subpkgdir"/$_gitcoredir/
- mv "$pkgdir"/$_gitcoredir/mergetools/*p4* \
- "$subpkgdir"/$_gitcoredir/mergetools/
+ amove $_gitcoredir/*p4*
+ amove $_gitcoredir/mergetools/*p4*
}
daemon() {
pkgdesc="Git protocol daemon"
depends="git=$pkgver-r$pkgrel"
- mkdir -p "$subpkgdir"/$_gitcoredir
- mv "$pkgdir"/$_gitcoredir/git-daemon \
- "$pkgdir"/$_gitcoredir/git-http-backend \
- "$pkgdir"/$_gitcoredir/git-shell \
- "$subpkgdir"/$_gitcoredir/
+ amove $_gitcoredir/git-daemon
+ amove $_gitcoredir/git-http-backend
+ amove $_gitcoredir/git-shell
+ amove var/git
}
daemon_openrc() {
@@ -234,18 +288,15 @@ gitweb() {
pkgdesc="Simple web interface to git repositories"
depends="git=$pkgver-r$pkgrel perl"
- mkdir -p "$subpkgdir"/usr/share "$subpkgdir"$_gitcoredir
- mv "$pkgdir"/usr/share/gitweb "$subpkgdir"/usr/share/
- mv "$pkgdir"/$_gitcoredir/git-instaweb "$subpkgdir"$_gitcoredir/
+ amove $_gitcoredir/git-instaweb
+ amove usr/share/gitweb
}
subtree() {
depends="git=$pkgver-r$pkgrel"
pkgdesc="Split git repository into subtrees"
- cd "$builddir"/contrib/subtree
- make prefix=/usr DESTDIR="$pkgdir"
- make install prefix=/usr DESTDIR="$subpkgdir"
+ amove $_gitcoredir/git-subtree
}
subtree_doc() {
@@ -262,33 +313,25 @@ gui() {
pkgdesc="GUI interface for git"
depends="git=$pkgver-r$pkgrel tcl tk"
- mkdir -p "$subpkgdir"/usr/share "$subpkgdir"/usr/libexec/git-core
- mv "$pkgdir"/usr/share/git-gui "$subpkgdir"/usr/share/
- mv "$pkgdir"/usr/libexec/git-core/git-citool \
- "$pkgdir"/usr/libexec/git-core/git-gui \
- "$pkgdir"/usr/libexec/git-core/git-gui--askpass \
- "$subpkgdir"/usr/libexec/git-core/
+ amove usr/share/git-gui
+ amove $_gitcoredir/git-citool
+ amove $_gitcoredir/git-gui
+ amove $_gitcoredir/git-gui--askpass
}
gitk() {
pkgdesc="Gitk interface for git"
depends="git=$pkgver-r$pkgrel tcl tk"
- mkdir -p "$subpkgdir"/usr/share "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/share/gitk "$subpkgdir"/usr/share/
- mv "$pkgdir"/usr/bin/gitk "$subpkgdir"/usr/bin/
+ amove usr/share/gitk
+ amove usr/bin/gitk
}
diff_highlight() {
pkgdesc="diff highlight for git"
depends="git=$pkgver-r$pkgrel perl"
- cd "$builddir"/contrib/diff-highlight
-
- make prefix=/usr DESTDIR="$subpkgdir"
-
- mkdir -p "$subpkgdir"/usr/bin
- install -Dm755 diff-highlight "$subpkgdir"/usr/bin/
+ amove usr/bin/diff-highlight
}
credential_libsecret() {
@@ -298,6 +341,14 @@ credential_libsecret() {
amove usr/libexec/git-core/git-credential-libsecret
}
+scalar() {
+ pkgdesc="Git scalar monorepo tool"
+ depends="git=$pkgver-r$pkgrel"
+
+ amove usr/bin/scalar
+ amove usr/libexec/git-core/scalar
+}
+
# catch-the-rest of stuff that needs perl
_git_perl() {
pkgdesc="Additional Git commands that requires perl"
@@ -306,9 +357,8 @@ _git_perl() {
mkdir -p "$subpkgdir"/usr/lib
cd "$pkgdir"
- find -type f | xargs file --mime-type | grep perl | cut -d: -f1| while read f; do
- mkdir -p "$subpkgdir"/${f%/*}
- mv "$f" "$subpkgdir"/${f%/*}
+ find . -type f -print0 | xargs -0 file --mime-type | grep perl | cut -d: -f1 | while read -r f; do
+ amove "$f"
done
find "$subpkgdir" -name perllocal.pod -delete
}
@@ -318,8 +368,19 @@ _perl_config() {
perl -e "use Config; print \$Config{$1};"
}
+_init_template() {
+ pkgdesc="Git init template directory"
+ # Some scripts expect file from the template to exist. Installing
+ # them by default for compatibility
+ install_if="git=$pkgver-r$pkgrel"
+
+ # leave empty directory to prevent git warning
+ mkdir -p -- "$subpkgdir"/usr/share/git-core/templates
+ mv -- "$pkgdir"/usr/share/git-core/templates/* "$subpkgdir"/usr/share/git-core/templates
+}
+
sha512sums="
-2ae3c845c9d0e0f5245e47f95c958c86a4aa2c47dfe31bff6fc81b2434d2e9402b7eced18700c04ba7158ed6a72807a81c4cde6a26dd30c969b4267b8fce4d0a git-2.37.0.tar.xz
+9e4b9c8a8e28cd50c0db75a93eae8a3423aa7e51c4312af1e1cdaf408e93f306c23aa747f0a97f27c11ab0e2f5e6283e52c8b61c9fe6be5b9b18673a43ce1780 git-2.44.0.tar.xz
89528cdd14c51fd568aa61cf6c5eae08ea0844e59f9af9292da5fc6c268261f4166017d002d494400945e248df6b844e2f9f9cd2d9345d516983f5a110e4c42a git-daemon.initd
fbf1f425206a76e2a8f82342537ed939ff7e623d644c086ca2ced5f69b36734695f9f80ebda1728f75a94d6cd2fcb71bf845b64239368caab418e4d368c141ec git-daemon.confd
be5d568fc5b8b84c9afb97b31e471e41f32ccfe188eba0588ea0ef98b2d96c2ce4b2c1a3d70e88205aa4f6667f850b3f32c13bbb149ecddbf670344c162a4e25 fix-t4219-with-sticky-bit.patch
diff --git a/main/gitolite/APKBUILD b/main/gitolite/APKBUILD
index 3dc252bafcb..9c7a49c7c51 100644
--- a/main/gitolite/APKBUILD
+++ b/main/gitolite/APKBUILD
@@ -2,12 +2,13 @@
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=gitolite
-pkgver=3.6.12
-pkgrel=2
+pkgver=3.6.13
+pkgrel=0
pkgdesc="Centralized git server, with very fine-grained access control and many powerful features"
url="https://github.com/sitaramc/gitolite"
arch="noarch"
license="GPL-2.0-only"
+options="!check" # fixme: setup test environment
depends="git perl"
install=$pkgname.pre-install
pkgusers="git"
@@ -18,6 +19,10 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/sitaramc/gitolite/archive/v$
# 3.6.11-r0:
# - CVE-2018-20683
+check() {
+ GITOLITE_TEST=y prove
+}
+
package() {
install -d "$pkgdir"/usr/bin
install -d "$pkgdir"/usr/lib/gitolite
@@ -28,4 +33,6 @@ package() {
install -o git -g git -d -m 700 "$pkgdir"/var/lib/git
}
-sha512sums="f6a7f4daf8a6f73db823a95cd677c1c436e04a05460a239b5844468cf0f3e6f8da1b1cd86d98c84bb8e80e5ca446c9afd0ca221cce622398c0d0a3ce18062c22 gitolite-3.6.12.tar.gz"
+sha512sums="
+95c232dd117b8849b205946b6427422abadbfb0d59fdb72f1de75813cbe3fbf63cbc0f5f5f2de4e761797c0cf5423c94805a55af87b7ff78a2d9ea9f2406dfcb gitolite-3.6.13.tar.gz
+"
diff --git a/main/glib/0001-gquark-fix-initialization-with-c-constructors.patch b/main/glib/0001-gquark-fix-initialization-with-c-constructors.patch
deleted file mode 100644
index 50a9a8c28a1..00000000000
--- a/main/glib/0001-gquark-fix-initialization-with-c-constructors.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From e4216dee57f5156e192b2910f13eb855a104cb18 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Wed, 6 Jul 2016 12:38:40 +0200
-Subject: [PATCH] gquark: fix initialization with c++ constructors
-
-C++ constructors may want create new quarks, but we can not guarantee
-that the glib library ctor is executed first. Therefore we make sure
-that quarks are always initialized from g_quark_from_string and
-g_quark_from_static_string
-
-This fixes crashes in glibmm with musl which likely happens on AIX too.
-
-https://bugzilla.gnome.org/show_bug.cgi?id=768215
-https://bugzilla.gnome.org/show_bug.cgi?id=756139#c14
----
- glib/gquark.c | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/glib/gquark.c b/glib/gquark.c
-index 9e51a92..17ecd7f 100644
---- a/glib/gquark.c
-+++ b/glib/gquark.c
-@@ -57,6 +57,11 @@ static gint quark_block_offset = 0;
- void
- g_quark_init (void)
- {
-+ /* we may be initialized from c++ constructor or the glib ctor, but we
-+ cannot guarantee in what order. So we check if we have been initialized */
-+ if (quark_ht != NULL)
-+ return;
-+
- g_assert (quark_seq_id == 0);
- quark_ht = g_hash_table_new (g_str_hash, g_str_equal);
- quarks = g_new (gchar*, QUARK_BLOCK_SIZE);
-@@ -179,6 +184,9 @@ quark_from_string (const gchar *string,
- {
- GQuark quark = 0;
-
-+ if (G_UNLIKELY (quark_ht == NULL))
-+ g_quark_init();
-+
- quark = GPOINTER_TO_UINT (g_hash_table_lookup (quark_ht, string));
-
- if (!quark)
---
-2.9.0
-
diff --git a/main/glib/APKBUILD b/main/glib/APKBUILD
index 4a83d6290a5..babe4c69254 100644
--- a/main/glib/APKBUILD
+++ b/main/glib/APKBUILD
@@ -1,25 +1,57 @@
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Pablo Correa Gómez <ablocorrea@hotmail.com>
pkgname=glib
-pkgver=2.72.2
-pkgrel=0
+pkgver=2.80.0
+_gi_version=1.80.1
+pkgrel=3
pkgdesc="Common C routines used by Gtk+ and other libs"
url="https://developer.gnome.org/glib/"
arch="all"
license="LGPL-2.1-or-later"
triggers="$pkgname.trigger=/usr/share/glib-2.0/schemas:/usr/lib/gio/modules:/usr/lib/gtk-4.0"
-depends_dev="python3 gettext-dev bzip2-dev libxml2-utils libxslt
- docbook-xml docbook-xsl"
-makedepends="$depends_dev pcre-dev meson zlib-dev libffi-dev util-linux-dev"
-options="!check" # don't like to be run without first being installed
+depends_dev="
+ bzip2-dev
+ docbook-xml
+ docbook-xsl
+ gettext-dev
+ libxml2-utils
+ libxslt
+ python3
+ py3-packaging
+ "
+makedepends="$depends_dev
+ bison
+ flex
+ libffi-dev
+ meson
+ pcre2-dev
+ py3-setuptools
+ python3-dev
+ util-linux-dev
+ zlib-dev
+ py3-docutils
+ "
+subpackages="
+ $pkgname-dbg
+ $pkgname-doc
+ $pkgname-static
+ $pkgname-dev
+ $pkgname-lang
+ $pkgname-bash-completion
+ "
source="https://download.gnome.org/sources/glib/${pkgver%.*}/glib-$pkgver.tar.xz
- 0001-gquark-fix-initialization-with-c-constructors.patch
+ https://download.gnome.org/sources/gobject-introspection/${_gi_version%.*}/gobject-introspection-$_gi_version.tar.xz
+ alwaysbash.patch
deprecated-no-warn.patch
- musl-libintl.patch
+ tests-machine-id.patch
+ fix-tests.patch
+ flaky-tests.patch
"
-subpackages="$pkgname-dbg $pkgname-doc $pkgname-static $pkgname-dev $pkgname-lang"
+
+# 2.80 moves gir here
+replaces="gobject-introspection<1.80.0"
# secfixes:
# 2.66.6-r0:
@@ -30,15 +62,56 @@ subpackages="$pkgname-dbg $pkgname-doc $pkgname-static $pkgname-dev $pkgname-lan
# - CVE-2019-12450
build() {
- abuild-meson \
+ export CFLAGS="$CFLAGS -ffat-lto-objects -O2"
+ export CXXFLAGS="$CXXFLAGS -O2"
+ export CPPFLAGS="$CPPFLAGS -O2"
+ local _prefix="$PWD/boostrap-glib"
+
+ msg "build bootstrap glib"
+ meson setup \
+ --default-library=shared \
+ --prefix="$_prefix" \
+ -Dman-pages=disabled \
+ -Dlibmount=disabled \
+ -Dtests=false \
+ -Dintrospection=disabled \
+ -Dnls=disabled \
+ . output
+ meson compile -C output
+ meson install --no-rebuild -C output
+
+ msg "build bootstrap gobject-introspection"
+ meson setup \
+ --pkg-config-path="$_prefix"/lib/pkgconfig \
+ --prefix="$_prefix" \
+ -Dbuild_introspection_data=false \
+ -Dcairo=disabled \
+ -Ddoctool=disabled \
+ "$srcdir"/gobject-introspection-$_gi_version \
+ gioutput
+ meson compile -C gioutput
+ meson install --no-rebuild -C gioutput
+
+ msg "re-build glib with introspection"
+ PATH="$_prefix/bin:$PATH" LD_LIBRARY_PATH="$_prefix/lib" \
+ meson setup \
+ --reconfigure \
+ --pkg-config-path="$_prefix"/lib/pkgconfig \
--default-library=both \
- -Dman=true \
+ --prefix=/usr \
+ -Dman-pages=enabled \
+ -Dlibmount=enabled \
+ -Dtests="$(want_check && echo true || echo false)" \
+ -Dintrospection=enabled \
+ -Dnls=enabled \
. output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ PATH="$_prefix/bin:$PATH" LD_LIBRARY_PATH="$_prefix/lib" \
+ meson compile -C output
+}
- # FIXME: meson adds -lintl first in Libs: in the .pc file but it needs to be
- # last for static builds (e.g. qemu)
- sed -i -e '/^Libs:/s/-lintl \(.*\)/\1 -lintl/' output/meson-private/glib-2.0.pc
+check() {
+ # riscv64 may time out increase the timeout
+ meson test --timeout-multiplier 2 --no-rebuild --print-errorlogs -C output
}
package() {
@@ -46,29 +119,32 @@ package() {
}
dev() {
+ # 2.80 moves gir here
+ replaces="gobject-introspection-dev<1.80.0"
default_dev
mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/usr/share
- find "$pkgdir"/usr/bin ! -name "glib-compile-schemas" -a \( \
+ find "$pkgdir"/usr/bin ! -name "glib-compile-schemas" -a \( \
-name "gdbus-codegen" -o \
-name "gobject-query" -o \
-name "gresource" -o \
-name "gtester*" -o \
-name "glib-*" \) \
-exec mv {} "$subpkgdir"/usr/bin \;
- mv "$pkgdir"/usr/share/gdb "$pkgdir"/usr/share/glib-2.0 \
- "$subpkgdir"/usr/share
+
+ amove usr/share/gdb usr/share/glib-2.0
}
static() {
- pkgdesc="glib static libraries"
+ default_static
depends="gettext-static"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib/
}
sha512sums="
-9a1121be1d5b1de50fb732d55298a8deb6e6e7fe02e06ab18fdfbc51a0f0d77c13c5faf29a227b5746b0f8c1c0502fc79c36cef2b7a62c4701b9deffe5887e69 glib-2.72.2.tar.xz
-32e5aca9a315fb985fafa0b4355e4498c1f877fc1f0b58ad4ac261fb9fbced9f026c7756a5f2af7d61ce756b55c8cd02811bb08df397040e93510056f073756b 0001-gquark-fix-initialization-with-c-constructors.patch
+1514d62aeb4c4a1a1048ae0f84f7db7f0dbf355772b2dadf6a34ec547045b163a5e28331b096e7616fe3c9c19bed98025a0202b05073f5d7ee901d0efaffe143 glib-2.80.0.tar.xz
+f45c2c1b105086488d974c6134db9910746df8edb187772f2ecd249656a1047c8ac88ba51f5bf7393c3d99c3ace143ecd09be256c2f4d0ceee110c9ad51a839a gobject-introspection-1.80.1.tar.xz
+41d23f0797cae11d017f9e9492173f1f68125d99c28416ff2482e3eb81460a9c33cecc2bee806dad1d1da19800d0a90ae43d9a44f5e2864c2cd7c8a704669eb3 alwaysbash.patch
744239ea2afb47e15d5d0214c37d7c798edac53797ca3ac14d515aee4cc3999ef9716ba744c64c40198fb259edc922559f77c9051104a568fc8ee4fc790810b1 deprecated-no-warn.patch
-8177d33932b86b25fe3a3d500641f02a338d43d006bedc65bc7f84af15d5f1bebd6301183174586bdeb8e8ae923f5727dc246ae9bb52aa694d75206117071c2d musl-libintl.patch
+4f561bfede4a559b314195aa4b7b5923a52c62063e6dd33b4933ad53b29c32ef789d69b9f7b17d8d701323006366e6b7acbb083a68674c1c535c185d35cc5d1f tests-machine-id.patch
+f04c66eb04b709df16fbc24e51a6bb11f06dc1658c55295f7c8203dd091bc5ca99acd224c760b467b04e102d98987b585e828ad80125c08e407b399e9651ea3a fix-tests.patch
+268cf6f089274f29285242f1e29bf5650e85f9fcb5744df884deb139493cc25792ad78487113732665f1c5393c94b2f76f97093a1a003e3caaf65c07960a1bf9 flaky-tests.patch
"
diff --git a/main/glib/alwaysbash.patch b/main/glib/alwaysbash.patch
new file mode 100644
index 00000000000..ec29d87ba1e
--- /dev/null
+++ b/main/glib/alwaysbash.patch
@@ -0,0 +1,16 @@
+the completions only install if bash is detected.
+instead of adding bash to makedeps, just always install them
+--
+diff --git a/gio/meson.build b/gio/meson.build
+index 462606f..bb3e19d 100644
+--- a/gio/meson.build
++++ b/gio/meson.build
+@@ -805,7 +805,7 @@ if host_system == 'windows'
+ internal_deps += [ giowin32_lib ]
+ endif
+
+-if have_bash
++if true
+ bash_comp_inst_dir = ''
+ if bash_comp_dep.found()
+ bash_comp_dir_override = bash_comp_dep.version().version_compare('>= 2.10') ? ['datadir', get_option('datadir')] : ['prefix', get_option('prefix')]
diff --git a/main/glib/fix-tests.patch b/main/glib/fix-tests.patch
new file mode 100644
index 00000000000..8db4619f2d4
--- /dev/null
+++ b/main/glib/fix-tests.patch
@@ -0,0 +1,457 @@
+From 01304c97693a7c789bde9c543979872fc63c387c Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 3 Apr 2024 21:11:24 +0200
+Subject: [PATCH 1/3] tests: skip test that requires shared-mime-info when its
+ missing
+
+shared-mime-info required glib to build and will not be there during
+bootstrap. Skip the test if it is missing.
+
+ref: https://gitlab.gnome.org/GNOME/glib/-/issues/3317
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ gio/tests/contenttype.c | 47 +++++++++++++++++++++++++++++++++++++++--
+ 1 file changed, 45 insertions(+), 2 deletions(-)
+
+diff --git a/gio/tests/contenttype.c b/gio/tests/contenttype.c
+index 8784374f2..b442d5352 100644
+--- a/gio/tests/contenttype.c
++++ b/gio/tests/contenttype.c
+@@ -13,6 +13,20 @@
+ __s1, " == ", __s2); \
+ } while (0)
+
++static gboolean
++skip_missing_shared_mime_info (void)
++{
++ const gchar *path = g_find_program_in_path("update-mime-database");
++
++ if (path == NULL)
++ {
++ g_test_skip ("shared-mime-info is required to run this test");
++ return TRUE;
++ }
++ g_free(path);
++ return FALSE;
++}
++
+ static void
+ test_guess (void)
+ {
+@@ -26,6 +40,9 @@ test_guess (void)
+ "Name=appinfo-test\n"
+ "Exec=./appinfo-test --option\n";
+
++ if (skip_missing_shared_mime_info ())
++ return;
++
+ #ifdef G_OS_WIN32
+ existing_directory = (gchar *) g_getenv ("SYSTEMROOT");
+
+@@ -150,6 +167,9 @@ test_subtype (void)
+ gchar *plain;
+ gchar *xml;
+
++ if (skip_missing_shared_mime_info ())
++ return;
++
+ plain = g_content_type_from_mime_type ("text/plain");
+ xml = g_content_type_from_mime_type ("application/xml");
+
+@@ -175,6 +195,9 @@ test_list (void)
+ gchar *plain;
+ gchar *xml;
+
++ if (skip_missing_shared_mime_info ())
++ return;
++
+ #ifdef __APPLE__
+ g_test_skip ("The OSX backend does not implement g_content_types_get_registered()");
+ return;
+@@ -202,6 +225,9 @@ test_executable (void)
+ {
+ gchar *type;
+
++ if (skip_missing_shared_mime_info ())
++ return;
++
+ #ifdef G_OS_WIN32
+ type = g_content_type_from_mime_type ("application/vnd.microsoft.portable-executable");
+ /* FIXME: the MIME is not in the default `MIME\Database\Content Type` registry.
+@@ -228,6 +254,9 @@ test_description (void)
+ gchar *type;
+ gchar *desc;
+
++ if (skip_missing_shared_mime_info ())
++ return;
++
+ type = g_content_type_from_mime_type ("text/plain");
+ desc = g_content_type_get_description (type);
+ g_assert_nonnull (desc);
+@@ -242,6 +271,9 @@ test_icon (void)
+ gchar *type;
+ GIcon *icon;
+
++ if (skip_missing_shared_mime_info ())
++ return;
++
+ type = g_content_type_from_mime_type ("text/plain");
+ icon = g_content_type_get_icon (type);
+ g_assert_true (G_IS_ICON (icon));
+@@ -290,6 +322,9 @@ test_symbolic_icon (void)
+ gchar *type;
+ GIcon *icon;
+
++ if (skip_missing_shared_mime_info ())
++ return;
++
+ type = g_content_type_from_mime_type ("text/plain");
+ icon = g_content_type_get_symbolic_icon (type);
+ g_assert_true (G_IS_ICON (icon));
+@@ -344,6 +379,9 @@ test_tree (void)
+ gchar **types;
+ gsize i;
+
++ if (skip_missing_shared_mime_info ())
++ return;
++
+ #if defined(__APPLE__) || defined(G_OS_WIN32)
+ g_test_skip ("The OSX & Windows backends do not implement g_content_type_guess_for_tree()");
+ return;
+@@ -437,8 +475,13 @@ test_guess_svg_from_data (void)
+ </svg>\n";
+
+ gboolean uncertain = TRUE;
+- gchar *res = g_content_type_guess (NULL, (guchar *)svgfilecontent,
+- sizeof (svgfilecontent) - 1, &uncertain);
++ gchar *res;
++
++ if (skip_missing_shared_mime_info ())
++ return;
++
++ res = g_content_type_guess (NULL, (guchar *)svgfilecontent,
++ sizeof (svgfilecontent) - 1, &uncertain);
+ #ifdef __APPLE__
+ g_assert_cmpstr (res, ==, "public.svg-image");
+ #elif defined(G_OS_WIN32)
+--
+2.44.0
+
+
+From a77fdc4cae8deb7ef9f47e81f81a8db139434093 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Thu, 4 Apr 2024 17:08:46 +0200
+Subject: [PATCH 2/3] tests: skip tests that requires dbus-daemon when its
+ missing
+
+dbus may not be built yet during bootstrap, because it needs glib to
+build.
+
+Ref: https://gitlab.gnome.org/GNOME/glib/-/issues/3317
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ gio/tests/appinfo.c | 22 ++++++++++++++++++++++
+ gio/tests/desktop-app-info.c | 19 +++++++++++++++++++
+ 2 files changed, 41 insertions(+)
+
+diff --git a/gio/tests/appinfo.c b/gio/tests/appinfo.c
+index d9c53c853..81bc48191 100644
+--- a/gio/tests/appinfo.c
++++ b/gio/tests/appinfo.c
+@@ -49,6 +49,19 @@ test_launch_for_app_info (GAppInfo *appinfo)
+ g_free (uri);
+ }
+
++static gboolean
++skip_missing_dbus_daemon (void)
++{
++ const gchar *path = g_find_program_in_path ("dbus-daemon");
++ if (path == NULL)
++ {
++ g_test_skip ("dbus-daemon is required to run this test");
++ return TRUE;
++ }
++ g_free (path);
++ return FALSE;
++}
++
+ static void
+ test_launch (void)
+ {
+@@ -56,6 +69,9 @@ test_launch (void)
+ GAppInfo *appinfo;
+ const gchar *path;
+
++ if (skip_missing_dbus_daemon ())
++ return;
++
+ /* Set up a test session bus to keep D-Bus traffic off the real session bus. */
+ bus = g_test_dbus_new (G_TEST_DBUS_NONE);
+ g_test_dbus_up (bus);
+@@ -96,6 +112,9 @@ test_launch_no_app_id (void)
+ gchar *exec_line_variants[2];
+ gsize i;
+
++ if (skip_missing_dbus_daemon ())
++ return;
++
+ exec_line_variants[0] = g_strdup_printf (
+ "Exec=%s/appinfo-test --option %%U %%i --name %%c --filename %%k %%m %%%%",
+ g_test_get_dir (G_TEST_BUILT));
+@@ -356,6 +375,9 @@ test_launch_context_signals (void)
+ gboolean success;
+ gchar *cmdline;
+
++ if (skip_missing_dbus_daemon ())
++ return;
++
+ /* Set up a test session bus to keep D-Bus traffic off the real session bus. */
+ bus = g_test_dbus_new (G_TEST_DBUS_NONE);
+ g_test_dbus_up (bus);
+diff --git a/gio/tests/desktop-app-info.c b/gio/tests/desktop-app-info.c
+index e82e2dd31..ec65b7618 100644
+--- a/gio/tests/desktop-app-info.c
++++ b/gio/tests/desktop-app-info.c
+@@ -593,6 +593,19 @@ wait_for_file (const gchar *want_this,
+ unlink (or_this);
+ }
+
++static gboolean
++skip_missing_dbus_daemon (void)
++{
++ const gchar *path = g_find_program_in_path ("dbus-daemon");
++ if (path == NULL)
++ {
++ g_test_skip ("dbus-daemon is required to run this test");
++ return TRUE;
++ }
++ g_free (path);
++ return FALSE;
++}
++
+ static void
+ test_actions (void)
+ {
+@@ -606,6 +619,9 @@ test_actions (void)
+ gchar *tweak_path;
+ gchar *twiddle_path;
+
++ if (skip_missing_dbus_daemon ())
++ return;
++
+ /* Set up a test session bus to keep D-Bus traffic off the real session bus. */
+ bus = g_test_dbus_new (G_TEST_DBUS_NONE);
+ g_test_dbus_up (bus);
+@@ -1833,6 +1849,9 @@ test_launch_fail_dbus (void)
+ GAsyncResult *result = NULL;
+ GError *error = NULL;
+
++ if (skip_missing_dbus_daemon ())
++ return;
++
+ /* Set up a test session bus to ensure that launching the app happens using
+ * D-Bus rather than spawning. */
+ bus = g_test_dbus_new (G_TEST_DBUS_NONE);
+--
+2.44.0
+
+
+From 0ec9c399c7d2755147e409d065690b2ff53fda40 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 3 Apr 2024 22:10:18 +0200
+Subject: [PATCH 3/3] tests: find update-desktop-database
+
+Disable tests that require update-desktop-database when it is missing.
+
+It requires glib to build so it will be missing when bootstrapping glib.
+
+Refactor the ifdef for Windows and MacOS while at it and reduce number
+of ifdefs.
+
+Ref: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/3658
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ gio/tests/desktop-app-info.c | 35 +++++++++++++++++++++++++++++
+ gio/tests/file.c | 43 ++++++++++++++++++++++--------------
+ 2 files changed, 62 insertions(+), 16 deletions(-)
+
+diff --git a/gio/tests/desktop-app-info.c b/gio/tests/desktop-app-info.c
+index ec65b7618..e492b1346 100644
+--- a/gio/tests/desktop-app-info.c
++++ b/gio/tests/desktop-app-info.c
+@@ -125,6 +125,20 @@ create_app_info (const char *name)
+ return info;
+ }
+
++static gboolean
++skip_missing_update_desktop_database (void)
++{
++ const gchar *path = g_find_program_in_path ("update-desktop-database");
++
++ if (path == NULL)
++ {
++ g_test_skip ("update-desktop-database is required to run this test");
++ return TRUE;
++ }
++ g_free (path);
++ return FALSE;
++}
++
+ static void
+ test_delete (void)
+ {
+@@ -134,6 +148,9 @@ test_delete (void)
+ char *filename;
+ gboolean res;
+
++ if (skip_missing_update_desktop_database ())
++ return;
++
+ info = create_app_info ("Blah");
+
+ id = g_app_info_get_id (info);
+@@ -177,6 +194,9 @@ test_default (void)
+ GList *list;
+ GError *error = NULL;
+
++if (skip_missing_update_desktop_database ())
++ return;
++
+ info1 = create_app_info ("Blah1");
+ info2 = create_app_info ("Blah2");
+ info3 = create_app_info ("Blah3");
+@@ -316,6 +336,9 @@ test_default_async (void)
+ GList *list;
+ GError *error = NULL;
+
++ if (skip_missing_update_desktop_database ())
++ return;
++
+ data.loop = g_main_loop_new (NULL, TRUE);
+
+ info1 = create_app_info ("Blah1");
+@@ -418,6 +441,9 @@ test_fallback (void)
+ GError *error = NULL;
+ gint old_length;
+
++ if (skip_missing_update_desktop_database ())
++ return;
++
+ info1 = create_app_info ("Test1");
+ info2 = create_app_info ("Test2");
+
+@@ -492,6 +518,9 @@ test_last_used (void)
+ GAppInfo *info1, *info2, *default_app;
+ GError *error = NULL;
+
++ if (skip_missing_update_desktop_database ())
++ return;
++
+ info1 = create_app_info ("Test1");
+ info2 = create_app_info ("Test2");
+
+@@ -1222,6 +1251,9 @@ test_default_uri_handler (void)
+ gchar *file_path = NULL;
+ GAppInfo *info;
+
++ if (skip_missing_update_desktop_database ())
++ return;
++
+ info = create_app_info_toucher ("Touch Handled", "handled",
+ "x-scheme-handler/glib-touch",
+ &file_path);
+@@ -1298,6 +1330,9 @@ test_default_uri_handler_async (void)
+ gboolean called = FALSE;
+ gint64 start_time, touch_time;
+
++ if (skip_missing_update_desktop_database ())
++ return;
++
+ loop = g_main_loop_new (NULL, FALSE);
+ info = create_app_info_toucher ("Touch Handled", "handled-async",
+ "x-scheme-handler/glib-async-touch",
+diff --git a/gio/tests/file.c b/gio/tests/file.c
+index 72296d008..dba5fe66c 100644
+--- a/gio/tests/file.c
++++ b/gio/tests/file.c
+@@ -3784,6 +3784,25 @@ create_command_line_app_info (const char *name,
+ return g_steal_pointer (&info);
+ }
+
++static gboolean
++skip_missing_update_desktop_database (void)
++{
++#if defined(G_OS_WIN32) || defined(__APPLE__)
++ g_test_skip ("Default URI handlers are not currently supported on Windows or macOS");
++ return TRUE;
++#else
++ const gchar *path = g_find_program_in_path ("update-desktop-database");
++
++ if (path == NULL)
++ {
++ g_test_skip ("update-desktop-database is required to run this test");
++ return TRUE;
++ }
++ g_free (path);
++ return FALSE;
++#endif
++}
++
+ static void
+ test_query_default_handler_uri (void)
+ {
+@@ -3793,10 +3812,8 @@ test_query_default_handler_uri (void)
+ GFile *file;
+ GFile *invalid_file;
+
+-#if defined(G_OS_WIN32) || defined(__APPLE__)
+- g_test_skip ("Default URI handlers are not currently supported on Windows or macOS");
+- return;
+-#endif
++ if (skip_missing_update_desktop_database ())
++ return;
+
+ info = create_command_line_app_info ("Gio File Handler", "true",
+ "x-scheme-handler/gio-file");
+@@ -3878,10 +3895,8 @@ test_query_default_handler_file (void)
+ const char buffer[] = "Text file!\n";
+ const guint8 binary_buffer[] = "\xde\xad\xbe\xff";
+
+-#if defined(G_OS_WIN32) || defined(__APPLE__)
+- g_test_skip ("Default URI handlers are not currently supported on Windows or macOS");
+- return;
+-#endif
++ if (skip_missing_update_desktop_database ())
++ return;
+
+ text_file = g_file_new_tmp ("query-default-handler-XXXXXX", &iostream, &error);
+ g_assert_no_error (error);
+@@ -3974,10 +3989,8 @@ test_query_default_handler_file_async (void)
+ const guint8 binary_buffer[] = "\xde\xad\xbe\xff";
+ GError *error = NULL;
+
+-#if defined(G_OS_WIN32) || defined(__APPLE__)
+- g_test_skip ("Default URI handlers are not currently supported on Windows or macOS");
+- return;
+-#endif
++ if (skip_missing_update_desktop_database ())
++ return;
+
+ data.loop = g_main_loop_new (NULL, FALSE);
+
+@@ -4064,10 +4077,8 @@ test_query_default_handler_uri_async (void)
+ GFile *file;
+ GFile *invalid_file;
+
+-#if defined(G_OS_WIN32) || defined(__APPLE__)
+- g_test_skip ("Default URI handlers are not currently supported on Windows or macOS");
+- return;
+-#endif
++ if (skip_missing_update_desktop_database ())
++ return;
+
+ info = create_command_line_app_info ("Gio File Handler", "true",
+ "x-scheme-handler/gio-file");
+--
+2.44.0
+
diff --git a/main/glib/flaky-tests.patch b/main/glib/flaky-tests.patch
new file mode 100644
index 00000000000..bc6f0aad745
--- /dev/null
+++ b/main/glib/flaky-tests.patch
@@ -0,0 +1,83 @@
+https://gitlab.gnome.org/GNOME/glib/-/issues/3318
+https://gitlab.gnome.org/GNOME/glib/-/issues/3320
+
+diff --git a/glib/tests/meson.build b/glib/tests/meson.build
+index 85f40d2e1..059a786d3 100644
+--- a/glib/tests/meson.build
++++ b/glib/tests/meson.build
+@@ -54,6 +54,7 @@ glib_tests = {
+ 'gwakeup' : {
+ 'source' : ['gwakeuptest.c', '../gwakeup.c'],
+ 'install' : false,
++ 'can_fail': host_machine.cpu_family() == 's390x',
+ },
+ 'hash' : {},
+ 'hmac' : {},
+@@ -226,6 +227,7 @@ if glib_conf.has('HAVE_EVENTFD')
+ 'source' : ['gwakeuptest.c', '../gwakeup.c'],
+ 'c_args' : ['-DTEST_EVENTFD_FALLBACK'],
+ 'install' : false,
++ 'can_fail': host_machine.cpu_family() == 's390x',
+ },
+ }
+ endif
+diff --git a/gobject/tests/meson.build b/gobject/tests/meson.build
+index a163e5f91..12c449519 100644
+--- a/gobject/tests/meson.build
++++ b/gobject/tests/meson.build
+@@ -78,7 +78,7 @@ gobject_tests = {
+ 'references' : {},
+ 'basic-signals' : {},
+ 'singleton' : {},
+- 'threadtests' : {},
++ 'threadtests' : { 'can_fail': 'aarch64' in host_machine.cpu_family() or 'riscv' in host_machine.cpu_family() },
+ 'dynamictests' : {},
+ 'binding' : {},
+ 'bindinggroup' : {},
+From ad2925ef361a7c889ff696a1ba9e677accaecd08 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Thu, 4 Apr 2024 10:15:07 +0200
+Subject: [PATCH] tests: increase timeout on slow architectures
+
+Prevent tests to timeout on architectures that are slow.
+
+Fixes https://gitlab.gnome.org/GNOME/glib/-/issues/3319
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ meson.build | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/meson.build b/meson.build
+index f0c5e070b..4c6c87766 100644
+--- a/meson.build
++++ b/meson.build
+@@ -182,6 +182,12 @@ test_protocol = 'tap'
+ test_timeout = 30
+ test_timeout_slow = 90
+
++# give more time on slow architectures
++if 'riscv' in host_machine.cpu_family()
++ test_timeout = test_timeout * 4
++ test_timeout_slow = test_timeout_slow * 4
++endif
++
+ add_test_setup('default',
+ is_default: true,
+ exclude_suites: ['flaky', 'failing'],
+--
+2.44.0
+
+diff --git a/glib/tests/meson.build b/glib/tests/meson.build
+index 85f40d2e1..f2ee59678 100644
+--- a/glib/tests/meson.build
++++ b/glib/tests/meson.build
+@@ -113,6 +113,8 @@ glib_tests = {
+ 'regex' : {
+ 'dependencies' : [pcre2],
+ 'c_args' : use_pcre2_static_flag ? ['-DPCRE2_STATIC'] : [],
++ # https://gitlab.gnome.org/GNOME/glib/-/issues/3321
++ 'can_fail': host_machine.cpu_family() == 'riscv64',
+ },
+ 'relation' : {},
+ 'rwlock' : {},
diff --git a/main/glib/musl-libintl.patch b/main/glib/musl-libintl.patch
deleted file mode 100644
index a673800fae1..00000000000
--- a/main/glib/musl-libintl.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/meson.build b/meson.build
-index 319f183..3a5fdfc 100644
---- a/meson.build
-+++ b/meson.build
-@@ -2047,9 +2047,6 @@ endif
- # FIXME: glib-gettext.m4 has much more checks to detect broken/uncompatible
- # implementations. This could be extended if issues are found in some platforms.
- libintl_deps = []
--if cc.has_function('ngettext')
-- have_bind_textdomain_codeset = cc.has_function('bind_textdomain_codeset')
--else
- # First just find the bare library.
- libintl = cc.find_library('intl', required : false)
- # The bare library probably won't link without help if it's static.
-@@ -2081,7 +2078,6 @@ else
- have_bind_textdomain_codeset = cc.has_function('bind_textdomain_codeset', args : osx_ldflags,
- dependencies : libintl_deps)
- endif
--endif
-
- glib_conf.set('HAVE_BIND_TEXTDOMAIN_CODESET', have_bind_textdomain_codeset)
-
diff --git a/main/glib/tests-machine-id.patch b/main/glib/tests-machine-id.patch
new file mode 100644
index 00000000000..66648984b5b
--- /dev/null
+++ b/main/glib/tests-machine-id.patch
@@ -0,0 +1,41 @@
+From 5cf08a9a1041a9dc9975371fb62f8f22c3be76c4 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 3 Apr 2024 21:25:04 +0200
+Subject: [PATCH 2/3] tests: skip gio tests which fails with missing machine-id
+
+Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
+---
+ gio/tests/meson.build | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/gio/tests/meson.build b/gio/tests/meson.build
+index f04ff43ff..71ec09750 100644
+--- a/gio/tests/meson.build
++++ b/gio/tests/meson.build
+@@ -46,6 +46,8 @@ if glib_build_shared
+ subdir('modules')
+ endif
+
++have_machine_id = import('fs').is_file('/etc/machine-id')
++
+ # Test programs buildable on all platforms
+ gio_tests = {
+ 'application-command-line': {},
+@@ -98,7 +100,7 @@ gio_tests = {
+ 'install_rpath' : installed_tests_execdir,
+ # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392
+ # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/3148
+- 'can_fail' : host_system in ['darwin', 'windows', 'gnu'],
++ 'can_fail' : host_system in ['darwin', 'windows', 'gnu'] or not have_machine_id,
+ },
+ 'inet-address' : {},
+ 'io-stream' : {},
+@@ -147,7 +149,7 @@ gio_tests = {
+ 'extra_programs': host_system != 'windows' ? ['dbus-launch'] : [],
+ # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/1392
+ # FIXME: https://gitlab.gnome.org/GNOME/glib/-/issues/3148
+- 'can_fail' : host_system in ['darwin', 'gnu'],
++ 'can_fail' : host_system in ['darwin', 'gnu'] or not have_machine_id,
+ },
+ 'win32-appinfo' : {},
+ }
diff --git a/main/glslang/APKBUILD b/main/glslang/APKBUILD
index 361b791e4c2..f2c838c9bc7 100644
--- a/main/glslang/APKBUILD
+++ b/main/glslang/APKBUILD
@@ -1,8 +1,7 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Maintainer: Simon Zeni <simon@bl4ckb0ne.ca>
pkgname=glslang
-pkgver=1.3.216.0
-_pkgver=sdk-$pkgver
+pkgver=1.3.261.1
pkgrel=0
pkgdesc="Khronos reference front-end for GLSL, ESSL, and sample SPIR-V generator"
url="https://github.com/KhronosGroup/glslang"
@@ -11,9 +10,9 @@ license="BSD-3-Clause"
depends_dev="$pkgname"
makedepends="cmake samurai python3 bison spirv-tools-dev"
checkdepends="bash gtest-dev"
-subpackages="$pkgname-static $pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/KhronosGroup/glslang/archive/$_pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$_pkgver"
+subpackages="$pkgname-static $pkgname-libs $pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/KhronosGroup/glslang/archive/refs/tags/sdk-$pkgver.tar.gz"
+builddir="$srcdir/glslang-sdk-$pkgver"
case "$CARCH" in
s390x) options="$options !check" ;; # testsuite seems to fail on big endian
@@ -59,5 +58,5 @@ package() {
}
sha512sums="
-4ab3953df2e881e4eb923307d6ec906daaa1786a1ad1b4d7d6713d63599c8f7cfd41257d53f7caeddcc4ad8cc4aac707393d2b7a1c7452ff5e9d1ae5f84696e8 glslang-1.3.216.0.tar.gz
+13838ce67f151dbb27cc6809e5fcac0e4f728ac301a5cb3c624b1491180040f16487271a8e02aaf87159a8d337121af346a3d5bdc5f81e5db49a30088dd8c255 glslang-1.3.261.1.tar.gz
"
diff --git a/main/glu/APKBUILD b/main/glu/APKBUILD
index f76bb5ec5bd..d746752097b 100644
--- a/main/glu/APKBUILD
+++ b/main/glu/APKBUILD
@@ -1,24 +1,25 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=glu
-pkgver=9.0.2
-pkgrel=1
+pkgver=9.0.3
+pkgrel=3
pkgdesc="Mesa OpenGL Utility library"
url="https://cgit.freedesktop.org/mesa/glu/"
arch="all"
options="!check" # No test suite.
license="SGI-B-1.1 AND SGI-B-2.0"
depends_dev="mesa-dev"
-makedepends="$depends_dev cmake meson"
+makedepends="$depends_dev meson"
replaces="mesa-glu"
subpackages="$pkgname-dev"
source="https://mesa.freedesktop.org/archive/glu/glu-$pkgver.tar.xz"
build() {
abuild-meson \
- -D default_library=shared \
- -D gl_provider=osmesa \
+ -Db_lto=true \
+ -Ddefault_library=shared \
+ -Dgl_provider=osmesa \
. output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
package() {
@@ -26,5 +27,5 @@ package() {
}
sha512sums="
-2517d7406bb643d12c017a95dcb5d8716f307344332638bcbdf274a90752a7c22165d34745f1b082ed916bb07d40e62d1d1d67d96426225be63166f3480d6f64 glu-9.0.2.tar.xz
+b2781059c0e176192c3fc0d7244645020937a463311171efddb9f35fb94ee43faabcf627fa7f429d48fceaf6dd9c5adb69c86c7a21ec4ea490f4ab143d52e3ba glu-9.0.3.tar.xz
"
diff --git a/main/gmp/APKBUILD b/main/gmp/APKBUILD
index 2499afd15dd..62bc2270797 100644
--- a/main/gmp/APKBUILD
+++ b/main/gmp/APKBUILD
@@ -1,22 +1,25 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gmp
-pkgver=6.2.1
-pkgrel=2
+pkgver=6.3.0
+pkgrel=0
pkgdesc="free library for arbitrary precision arithmetic"
url="https://gmplib.org/"
arch="all"
license="LGPL-3.0-or-later OR GPL-2.0-or-later"
makedepends="m4 texinfo libtool autoconf automake"
subpackages="$pkgname-doc $pkgname-dev libgmpxx"
-source="https://gmplib.org/download/gmp/gmp-$pkgver.tar.xz
- CVE-2021-43618.patch::https://gmplib.org/repo/gmp-6.2/raw-rev/561a9c25298e
- "
+source="https://gmplib.org/download/gmp/gmp-$pkgver.tar.xz"
replaces="gmp5"
# secfixes:
# 6.2.1-r1:
# - CVE-2021-43618
+# lto is not available during bootstrap
+if [ -z "$BOOTSTRAP" ]; then
+ _lto_cflags="-flto=auto"
+fi
+
prepare() {
default_prepare
# force update to libtool with fixed cross-build support
@@ -24,6 +27,7 @@ prepare() {
}
build() {
+ CFLAGS="$CFLAGS $_lto_cflags" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -37,14 +41,14 @@ build() {
make
}
-package() {
- make DESTDIR="$pkgdir" install
-}
-
check() {
[ "$CBUILD" = "$CHOST" ] && make check
}
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
libgmpxx() {
pkgdesc="C++ support for gmp"
mkdir -p "$subpkgdir"/usr/lib/
@@ -56,5 +60,6 @@ doc() {
replaces="gmp5-doc"
}
-sha512sums="c99be0950a1d05a0297d65641dd35b75b74466f7bf03c9e8a99895a3b2f9a0856cd17887738fa51cf7499781b65c049769271cbcb77d057d2e9f1ec52e07dd84 gmp-6.2.1.tar.xz
-3956190d9c266feb62f8965c3cd32d0a9260f76ffb0d3e32211974bb53ddd5c6eaa657f7e00ba8fa7c914c0e1375155d25de6a81cdb9b03d6a5bbc16ac121447 CVE-2021-43618.patch"
+sha512sums="
+e85a0dab5195889948a3462189f0e0598d331d3457612e2d3350799dba2e244316d256f8161df5219538eb003e4b5343f989aaa00f96321559063ed8c8f29fd2 gmp-6.3.0.tar.xz
+"
diff --git a/main/gnokii/APKBUILD b/main/gnokii/APKBUILD
deleted file mode 100644
index 3f91366cea5..00000000000
--- a/main/gnokii/APKBUILD
+++ /dev/null
@@ -1,84 +0,0 @@
-# Contributor: Łukasz Jendrysik <scadu@yandex.com>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=gnokii
-pkgver=0.6.31
-pkgrel=12
-pkgdesc="Tools and user space driver for use with mobile phones"
-url="https://www.gnokii.org/"
-arch="all"
-license="GPL-2.0-or-later"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-libs $pkgname-smsd
- $pkgname-smsd-pgsql:pgsql $pkgname-smsd-mysql:mysql
- $pkgname-smsd-sqlite:sqlite $pkgname-lang"
-
-makedepends="mariadb-connector-c-dev intltool libusb-compat-dev libxpm-dev
- bluez-dev libical-dev libpq-dev sqlite-dev
- autoconf automake libtool gettext-dev"
-source="http://www.gnokii.org/download/gnokii/gnokii-$pkgver.tar.bz2
- gnokii.patch
- gnokii-0.6.31-gcc5.patch
- "
-
-replaces="xgnokii"
-
-prepare() {
- default_prepare
- update_config_sub
-}
-
-build() {
- CFLAGS="$CFLAGS -std=gnu89" \
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --enable-security \
- --disable-unix98test \
- --disable-phonet \
- --without-x # Requires gtk+2.0
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-libs() {
- pkgdesc="gnokii shared libraries"
- replaces="libgnokii"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libgnokii.so.* "$subpkgdir"/usr/lib/
-}
-
-smsd() {
- pkgdesc="SMS Daemon for mobile phones"
- mkdir -p "$subpkgdir"/usr/bin/
- mv "$pkgdir"/usr/bin/smsd "$subpkgdir"/usr/bin/
-}
-
-pgsql() {
- pkgdesc="SMSD plugin for PostgreSQL storage backend"
- depends="gnokii-smsd"
- mkdir -p "$subpkgdir"/usr/lib/smsd
- mv "$pkgdir"/usr/lib/smsd/*pq.so "$subpkgdir"/usr/lib/smsd/
-}
-
-mysql() {
- pkgdesc="SMSD plugin for MySQL storage backend"
- depends="gnokii-smsd"
- mkdir -p "$subpkgdir"/usr/lib/smsd
- mv "$pkgdir"/usr/lib/smsd/*mysql.so "$subpkgdir"/usr/lib/smsd/
-}
-
-sqlite() {
- pkgdesc="SMSD plugin for SQLite storage backend"
- depends="gnokii-smsd"
- mkdir -p "$subpkgdir"/usr/lib/smsd
- mv "$pkgdir"/usr/lib/smsd/*sqlite*.so "$subpkgdir"/usr/lib/smsd/
-}
-sha512sums="
-529f6d0d29873f48ac00cf7151ba35dcbd93405ab27d69848ed17dea73f4fba71721d1811d921441b4214777b9b33f760b372631627cc108eb94c39684da343d gnokii-0.6.31.tar.bz2
-a253cd0a461b06b3d11202f36c518f6364705008c36d4e7ecd292ecd2e4288e42fbd55110405c6bb2d2d82499e047876aa92a9292b629d1323189a9164359d32 gnokii.patch
-548a32f93b059e45c8616dedf49a0ce3b0e63463f8ddc3384b473d91bd12c3fab2c6e21de0b09d2b330c189454a2bf3e486aa25122ea58392d9cb11994592086 gnokii-0.6.31-gcc5.patch
-"
diff --git a/main/gnokii/gnokii-0.6.31-gcc5.patch b/main/gnokii/gnokii-0.6.31-gcc5.patch
deleted file mode 100644
index 09b65f5b0f8..00000000000
--- a/main/gnokii/gnokii-0.6.31-gcc5.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-Patch by Robert Scheck <robert@fedoraproject.org> for gnokii <= 0.6.31 to avoid
-build failures with GCC 5.x as "gnokii-0.6.31/xgnokii/xgnokii.c:1209: undefined
-reference to `GUI_HideAbout'" and "xgnokii-xgnokii_logos.o:(.data.rel+0xe0):
-undefined reference to `CloseLogosWindow'".
-
---- gnokii-0.6.31/xgnokii/xgnokii.c 2011-12-02 15:53:04.000000000 +0100
-+++ gnokii-0.6.31/xgnokii/xgnokii.c.gcc5 2015-06-20 15:49:59.000000000 +0200
-@@ -798,7 +798,7 @@
- }
-
-
--inline void GUI_HideAbout(void)
-+void GUI_HideAbout(void)
- {
- gtk_widget_hide(AboutDialog);
- }
---- gnokii-0.6.31/xgnokii/xgnokii_logos.c 2011-12-02 15:53:04.000000000 +0100
-+++ gnokii-0.6.31/xgnokii/xgnokii_logos.c.gcc5 2015-06-20 15:50:15.000000000 +0200
-@@ -1304,7 +1304,7 @@
- return 0;
- }
-
--inline void CloseLogosWindow(void)
-+void CloseLogosWindow(void)
- {
- gtk_widget_hide(GUI_LogosWindow);
- }
diff --git a/main/gnokii/gnokii.patch b/main/gnokii/gnokii.patch
deleted file mode 100644
index 69ca868e3b1..00000000000
--- a/main/gnokii/gnokii.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./Docs/sample/gnokiirc.orig
-+++ ./Docs/sample/gnokiirc
-@@ -238,7 +238,7 @@
- # In particular ensure that mgnokiidev is in this location, with
- # permissions 4750, owned by root, group gnokii. Ensure you
- # are in the gnokii group and that the group exists...
--bindir = /usr/local/sbin/
-+bindir = /usr/sbin/
-
- # Any entries in the following two sections will be set as environment
- # variables when running the scripts.
diff --git a/main/gnu-efi/APKBUILD b/main/gnu-efi/APKBUILD
index 29d9f253001..7f6f6ac2cde 100644
--- a/main/gnu-efi/APKBUILD
+++ b/main/gnu-efi/APKBUILD
@@ -1,16 +1,17 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gnu-efi
-pkgver=3.0.14
-pkgrel=0
+pkgver=3.0.15
+pkgrel=4
pkgdesc="Development Libraries and headers for EFI"
-url="ftp://ftp.hpl.hp.com/pub/linux-ia64"
-arch="all !armhf !s390x !ppc64le !mips !mips64"
-license="BSD-3-Clause"
+url="https://sourceforge.net/projects/gnu-efi/"
+arch="all !armhf !s390x !ppc64le !mips !mips64 !loongarch64"
+license="BSD-2-Clause"
subpackages="$pkgname-dev"
depends_dev="$pkgname"
source="https://downloads.sourceforge.net/project/gnu-efi/gnu-efi-$pkgver.tar.bz2
no-werror.patch
"
+options="!check"
build() {
make -j1
@@ -21,6 +22,6 @@ package() {
}
sha512sums="
-37420ba3804e8547451a7b143a689ceb6af0557234fa7801efdeba3c2fc581a5354fe34cbaacb338d7b394d913e7274098ebf07026b7c1d50b2236d7f86c470c gnu-efi-3.0.14.tar.bz2
+64d408b6d115bdc6eebae12fbd6cd907ed5f847f54e506c1e8f8ea5de38a95cf6fac66ab1009bd1d0bd2d54ad45ad598d29bcc303926a5899bf5cc25448cbb2f gnu-efi-3.0.15.tar.bz2
f384597dc967cc9b1cf738d4002dc75847606c8ab10efbaf9e23844c767f5b9a33518374321b2ae5c5d7e4c9c3abaed996d0690ea81a7906355cabec1426d248 no-werror.patch
"
diff --git a/main/gnupg/0001-Include-sys-select.h-for-FD_SETSIZE.patch b/main/gnupg/0001-Include-sys-select.h-for-FD_SETSIZE.patch
deleted file mode 100644
index a835f39278f..00000000000
--- a/main/gnupg/0001-Include-sys-select.h-for-FD_SETSIZE.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From d2f3053e156a8dfc3e2e7f8fa814f671d851b26f Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Fri, 4 Jul 2014 08:15:21 +0000
-Subject: [PATCH] Include sys/select.h for FD_SETSIZE
-
-This fixes the following compile error with musl libc:
-watchgnupg.c:225:18: error: 'FD_SETSIZE' undeclared (first use in this
-function)
- else if (fd >= FD_SETSIZE)
- ^
-
-Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
----
- tools/watchgnupg.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/tools/watchgnupg.c b/tools/watchgnupg.c
-index 4f4d54d..7aede22 100644
---- a/tools/watchgnupg.c
-+++ b/tools/watchgnupg.c
-@@ -28,6 +28,7 @@
- #include <stdarg.h>
- #include <assert.h>
- #include <unistd.h>
-+#include <sys/select.h>
- #include <sys/socket.h>
- #include <sys/un.h>
- #include <netinet/in.h>
---
-2.0.1
-
diff --git a/main/gnupg/0110-avoid-simple-memory-dumps-via-ptrace.patch b/main/gnupg/0110-avoid-simple-memory-dumps-via-ptrace.patch
index 644b8a52837..35ab352c072 100644
--- a/main/gnupg/0110-avoid-simple-memory-dumps-via-ptrace.patch
+++ b/main/gnupg/0110-avoid-simple-memory-dumps-via-ptrace.patch
@@ -24,10 +24,10 @@ Upstream bug: https://dev.gnupg.org/T1211
Patch-Source: https://sources.debian.org/data/main/g/gnupg2/2.2.27-2/debian/patches/block-ptrace-on-secret-daemons/Avoid-simple-memory-dumps-via-ptrace.patch
diff --git a/agent/gpg-agent.c b/agent/gpg-agent.c
-index b167c34..5afcf11 100644
+index 412eb43..1de989b 100644
--- a/agent/gpg-agent.c
+++ b/agent/gpg-agent.c
-@@ -50,6 +50,9 @@
+@@ -48,6 +48,9 @@
# include <signal.h>
#endif
#include <npth.h>
@@ -37,7 +37,7 @@ index b167c34..5afcf11 100644
#define INCLUDED_BY_MAIN_MODULE 1
#define GNUPG_COMMON_NEED_AFLOCAL
-@@ -1030,6 +1033,11 @@ main (int argc, char **argv )
+@@ -1095,6 +1098,11 @@ main (int argc, char **argv)
early_system_init ();
@@ -50,10 +50,10 @@ index b167c34..5afcf11 100644
file descriptors and the signal mask. This info is required to
do the exec call properly. We don't need it on Windows. */
diff --git a/configure.ac b/configure.ac
-index 7a2d410..2d8b050 100644
+index 099c6a8..4c9fcee 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -1426,7 +1426,7 @@ AC_CHECK_FUNCS([atexit canonicalize_file_name clock_gettime ctermid \
+@@ -1419,7 +1419,7 @@ AC_CHECK_FUNCS([atexit canonicalize_file_name clock_gettime ctermid \
ftruncate funlockfile getaddrinfo getenv getpagesize \
getpwnam getpwuid getrlimit getrusage gettimeofday \
gmtime_r inet_ntop inet_pton isascii lstat memicmp \
@@ -63,7 +63,7 @@ index 7a2d410..2d8b050 100644
stat stpcpy strcasecmp strerror strftime stricmp \
strlwr strncasecmp strpbrk strsep strtol strtoul \
diff --git a/scd/scdaemon.c b/scd/scdaemon.c
-index 5c519f8..cab66a0 100644
+index e43769f..2066543 100644
--- a/scd/scdaemon.c
+++ b/scd/scdaemon.c
@@ -37,6 +37,9 @@
@@ -76,8 +76,8 @@ index 5c519f8..cab66a0 100644
#define INCLUDED_BY_MAIN_MODULE 1
#define GNUPG_COMMON_NEED_AFLOCAL
-@@ -446,6 +449,12 @@ main (int argc, char **argv )
- npth_t pipecon_handler;
+@@ -462,6 +465,12 @@ main (int argc, char **argv )
+ const char *application_priority = NULL;
early_system_init ();
+
@@ -86,6 +86,6 @@ index 5c519f8..cab66a0 100644
+ prctl(PR_SET_DUMPABLE, 0);
+#endif
+
- set_strusage (my_strusage);
+ gpgrt_set_strusage (my_strusage);
gcry_control (GCRYCTL_SUSPEND_SECMEM_WARN);
/* Please note that we may running SUID(ROOT), so be very CAREFUL
diff --git a/main/gnupg/0210-dirmngr-hkp-avoid-potential-race-condition-when-some-host-die.patch b/main/gnupg/0210-dirmngr-hkp-avoid-potential-race-condition-when-some-host-die.patch
index 1aa79c6c387..32942e6f91f 100644
--- a/main/gnupg/0210-dirmngr-hkp-avoid-potential-race-condition-when-some-host-die.patch
+++ b/main/gnupg/0210-dirmngr-hkp-avoid-potential-race-condition-when-some-host-die.patch
@@ -1,3 +1,5 @@
+note: combination of previous 0210+0220
+--
From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Date: Sat, 29 Oct 2016 01:25:05 -0400
Subject: dirmngr: hkp: Avoid potential race condition when some hosts die.
@@ -37,11 +39,81 @@ Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Patch-Source: https://sources.debian.org/data/main/g/gnupg2/2.2.27-2/debian/patches/dirmngr-idling/dirmngr-hkp-Avoid-potential-race-condition-when-some.patch
+From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
+Date: Sat, 29 Oct 2016 02:00:50 -0400
+Subject: dirmngr: Avoid need for hkp housekeeping.
+
+* dirmngr/ks-engine-hkp.c (host_is_alive): New function. Test whether
+host is alive and resurrects it if it has been dead long enough.
+(select_random_host, map_host, ks_hkp_mark_host): Use host_is_alive
+instead of testing hostinfo_t->dead directly.
+(ks_hkp_housekeeping): Remove function, no longer needed.
+* dirmngr/dirmngr.c (housekeeping_thread): Remove call to
+ks_hkp_housekeeping.
+
+--
+
+Rather than resurrecting hosts upon scheduled resurrection times, test
+whether hosts should be resurrected as they're inspected for being
+dead. This removes the need for explicit housekeeping, and makes host
+resurrections happen "just in time", rather than being clustered on
+HOUSEKEEPING_INTERVAL seconds.
+
+According to 392e068e9f143d41f6350345619543cbcd47380f,
+dns_stuff_housekeeping only works on Windows, so it also isn't
+necessary in debian, but it remains in place for now.
+
+Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
+---
+ dirmngr/dirmngr.c | 3 ---
+ dirmngr/dirmngr.h | 1 -
+ dirmngr/ks-engine-hkp.c | 72 ++++++++++++++++++++++++-------------------------
+ 3 files changed, 35 insertions(+), 41 deletions(-)
+
+Patch-Source: https://sources.debian.org/data/main/g/gnupg2/2.2.27-2/debian/patches/dirmngr-idling/dirmngr-Avoid-need-for-hkp-housekeeping.patch
+
+diff --git a/dirmngr/dirmngr.c b/dirmngr/dirmngr.c
+index 977e7dd..5017c3f 100644
+--- a/dirmngr/dirmngr.c
++++ b/dirmngr/dirmngr.c
+@@ -2085,7 +2085,6 @@ housekeeping_thread (void *arg)
+ dirmngr_init_default_ctrl (&ctrlbuf);
+
+ dns_stuff_housekeeping ();
+- ks_hkp_housekeeping (curtime);
+ if (network_activity_seen)
+ {
+ network_activity_seen = 0;
diff --git a/dirmngr/ks-engine-hkp.c b/dirmngr/ks-engine-hkp.c
-index 14859c7..d425363 100644
+index 5292da8..690b37d 100644
--- a/dirmngr/ks-engine-hkp.c
+++ b/dirmngr/ks-engine-hkp.c
-@@ -225,29 +225,26 @@ host_in_pool_p (hostinfo_t hi, int tblidx)
+@@ -221,6 +221,24 @@ host_in_pool_p (hostinfo_t hi, int tblidx)
+ return 0;
+ }
+
++static int
++host_is_alive (hostinfo_t hi, time_t curtime)
++{
++ if (!hi)
++ return 0;
++ if (!hi->dead)
++ return 1;
++ if (!hi->died_at)
++ return 0; /* manually marked dead */
++ if (hi->died_at + RESURRECT_INTERVAL <= curtime
++ || hi->died_at > curtime)
++ {
++ hi->dead = 0;
++ log_info ("resurrected host '%s'", hi->name);
++ return 1;
++ }
++ return 0;
++}
+
+ /* Select a random host. Consult HI->pool which indices into the global
+ hosttable. Returns index into HI->pool or -1 if no host could be
+@@ -228,32 +246,32 @@ host_in_pool_p (hostinfo_t hi, int tblidx)
static int
select_random_host (hostinfo_t hi)
{
@@ -50,6 +122,12 @@ index 14859c7..d425363 100644
+ int *tbl = NULL;
+ size_t tblsize = 0;
int pidx, idx;
++ time_t curtime;
++
++ curtime = gnupg_get_time ();
+
+ /* CHECKTHIS(); See */
+ /* https://sources.debian.org/patches/gnupg2/2.2.20-1/dirmngr-idling/dirmngr-hkp-Avoid-potential-race-condition-when-some.patch/ */
/* We create a new table so that we randomly select only from
currently alive hosts. */
@@ -57,8 +135,9 @@ index 14859c7..d425363 100644
+ for (idx = 0;
idx < hi->pool_len && (pidx = hi->pool[idx]) != -1;
idx++)
- if (hosttable[pidx] && !hosttable[pidx]->dead)
+- if (hosttable[pidx] && !hosttable[pidx]->dead)
- tblsize++;
++ if (hosttable[pidx] && host_is_alive (hosttable[pidx], curtime))
+ {
+ tblsize++;
+ tbl = xtryrealloc(tbl, tblsize * sizeof *tbl);
@@ -81,3 +160,125 @@ index 14859c7..d425363 100644
if (tblsize == 1) /* Save a get_uint_nonce. */
pidx = tbl[0];
else
+@@ -471,6 +489,7 @@ map_host (ctrl_t ctrl, const char *name, const char *srvtag, int force_reselect,
+ int is_pool;
+ int new_hosts = 0;
+ char *cname;
++ time_t curtime;
+
+ *r_host = NULL;
+ if (r_httpflags)
+@@ -510,6 +529,7 @@ map_host (ctrl_t ctrl, const char *name, const char *srvtag, int force_reselect,
+ }
+ else
+ hi = hosttable[idx];
++ curtime = gnupg_get_time ();
+
+ is_pool = hi->pool != NULL;
+
+@@ -616,7 +636,7 @@ map_host (ctrl_t ctrl, const char *name, const char *srvtag, int force_reselect,
+ if (force_reselect)
+ hi->poolidx = -1;
+ else if (hi->poolidx >= 0 && hi->poolidx < hosttable_size
+- && hosttable[hi->poolidx] && hosttable[hi->poolidx]->dead)
++ && hosttable[hi->poolidx] && !host_is_alive (hosttable[hi->poolidx], curtime))
+ hi->poolidx = -1;
+
+ /* Select a host if needed. */
+@@ -675,7 +695,7 @@ map_host (ctrl_t ctrl, const char *name, const char *srvtag, int force_reselect,
+ return gpg_error_from_syserror ();
+ }
+
+- if (hi->dead)
++ if (!host_is_alive (hi, curtime))
+ {
+ log_error ("host '%s' marked as dead\n", hi->name);
+ if (r_httphost)
+@@ -781,7 +801,8 @@ ks_hkp_mark_host (ctrl_t ctrl, const char *name, int alive)
+ {
+ gpg_error_t err = 0;
+ hostinfo_t hi, hi2;
+- int idx, idx2, idx3, n;
++ int idx, idx2, idx3, n, is_alive;
++ time_t curtime;
+
+ if (!name || !*name || !strcmp (name, "localhost"))
+ return 0;
+@@ -796,13 +817,15 @@ ks_hkp_mark_host (ctrl_t ctrl, const char *name, int alive)
+ goto leave;
+ }
+
++ curtime = gnupg_get_time ();
+ hi = hosttable[idx];
+- if (alive && hi->dead)
++ is_alive = host_is_alive (hi, curtime);
++ if (alive && !is_alive)
+ {
+ hi->dead = 0;
+ err = ks_printf_help (ctrl, "marking '%s' as alive", name);
+ }
+- else if (!alive && !hi->dead)
++ else if (!alive && is_alive)
+ {
+ hi->dead = 1;
+ hi->died_at = 0; /* Manually set dead. */
+@@ -836,14 +859,15 @@ ks_hkp_mark_host (ctrl_t ctrl, const char *name, int alive)
+
+ hi2 = hosttable[n];
+ if (!hi2)
+- ;
+- else if (alive && hi2->dead)
++ continue;
++ is_alive = host_is_alive (hi2, curtime);
++ if (alive && !is_alive)
+ {
+ hi2->dead = 0;
+ err = ks_printf_help (ctrl, "marking '%s' as alive",
+ hi2->name);
+ }
+- else if (!alive && !hi2->dead)
++ else if (!alive && is_alive)
+ {
+ hi2->dead = 1;
+ hi2->died_at = 0; /* Manually set dead. */
+@@ -1149,40 +1173,6 @@ ks_hkp_resolve (ctrl_t ctrl, parsed_uri_t uri)
+ }
+
+
+-/* Housekeeping function called from the housekeeping thread. It is
+- used to mark dead hosts alive so that they may be tried again after
+- some time. */
+-void
+-ks_hkp_housekeeping (time_t curtime)
+-{
+- int idx;
+- hostinfo_t hi;
+-
+- if (npth_mutex_lock (&hosttable_lock))
+- log_fatal ("failed to acquire mutex\n");
+-
+- for (idx=0; idx < hosttable_size; idx++)
+- {
+- hi = hosttable[idx];
+- if (!hi)
+- continue;
+- if (!hi->dead)
+- continue;
+- if (!hi->died_at)
+- continue; /* Do not resurrect manually shot hosts. */
+- if (hi->died_at + RESURRECT_INTERVAL <= curtime
+- || hi->died_at > curtime)
+- {
+- hi->dead = 0;
+- log_info ("resurrected host '%s'", hi->name);
+- }
+- }
+-
+- if (npth_mutex_unlock (&hosttable_lock))
+- log_fatal ("failed to release mutex\n");
+-}
+-
+-
+ /* Reload (SIGHUP) action for this module. We mark all host alive
+ * even those which have been manually shot. */
+ void
diff --git a/main/gnupg/0220-dirmngr-avoid-need-for-hkp-housekeeping.patch b/main/gnupg/0220-dirmngr-avoid-need-for-hkp-housekeeping.patch
deleted file mode 100644
index 0e125fd9b9f..00000000000
--- a/main/gnupg/0220-dirmngr-avoid-need-for-hkp-housekeeping.patch
+++ /dev/null
@@ -1,232 +0,0 @@
-From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
-Date: Sat, 29 Oct 2016 02:00:50 -0400
-Subject: dirmngr: Avoid need for hkp housekeeping.
-
-* dirmngr/ks-engine-hkp.c (host_is_alive): New function. Test whether
-host is alive and resurrects it if it has been dead long enough.
-(select_random_host, map_host, ks_hkp_mark_host): Use host_is_alive
-instead of testing hostinfo_t->dead directly.
-(ks_hkp_housekeeping): Remove function, no longer needed.
-* dirmngr/dirmngr.c (housekeeping_thread): Remove call to
-ks_hkp_housekeeping.
-
---
-
-Rather than resurrecting hosts upon scheduled resurrection times, test
-whether hosts should be resurrected as they're inspected for being
-dead. This removes the need for explicit housekeeping, and makes host
-resurrections happen "just in time", rather than being clustered on
-HOUSEKEEPING_INTERVAL seconds.
-
-According to 392e068e9f143d41f6350345619543cbcd47380f,
-dns_stuff_housekeeping only works on Windows, so it also isn't
-necessary in debian, but it remains in place for now.
-
-Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
----
- dirmngr/dirmngr.c | 3 ---
- dirmngr/dirmngr.h | 1 -
- dirmngr/ks-engine-hkp.c | 72 ++++++++++++++++++++++++-------------------------
- 3 files changed, 35 insertions(+), 41 deletions(-)
-
-Patch-Source: https://sources.debian.org/data/main/g/gnupg2/2.2.27-2/debian/patches/dirmngr-idling/dirmngr-Avoid-need-for-hkp-housekeeping.patch
-
-diff --git a/dirmngr/dirmngr.c b/dirmngr/dirmngr.c
-index ae967dd..89eea4e 100644
---- a/dirmngr/dirmngr.c
-+++ b/dirmngr/dirmngr.c
-@@ -1935,12 +1935,10 @@ static void *
- housekeeping_thread (void *arg)
- {
- static int sentinel;
-- time_t curtime;
- struct server_control_s ctrlbuf;
-
- (void)arg;
-
-- curtime = gnupg_get_time ();
- if (sentinel)
- {
- log_info ("housekeeping is already going on\n");
-@@ -1954,7 +1952,6 @@ housekeeping_thread (void *arg)
- dirmngr_init_default_ctrl (&ctrlbuf);
-
- dns_stuff_housekeeping ();
-- ks_hkp_housekeeping (curtime);
- if (network_activity_seen)
- {
- network_activity_seen = 0;
-diff --git a/dirmngr/dirmngr.h b/dirmngr/dirmngr.h
-index 1b52a1d..4afc19b 100644
---- a/dirmngr/dirmngr.h
-+++ b/dirmngr/dirmngr.h
-@@ -217,7 +217,6 @@ const char* dirmngr_get_current_socket_name (void);
- int dirmngr_use_tor (void);
-
- /*-- Various housekeeping functions. --*/
--void ks_hkp_housekeeping (time_t curtime);
- void ks_hkp_reload (void);
-
-
-diff --git a/dirmngr/ks-engine-hkp.c b/dirmngr/ks-engine-hkp.c
-index d425363..c50681d 100644
---- a/dirmngr/ks-engine-hkp.c
-+++ b/dirmngr/ks-engine-hkp.c
-@@ -218,6 +218,24 @@ host_in_pool_p (hostinfo_t hi, int tblidx)
- return 0;
- }
-
-+static int
-+host_is_alive (hostinfo_t hi, time_t curtime)
-+{
-+ if (!hi)
-+ return 0;
-+ if (!hi->dead)
-+ return 1;
-+ if (!hi->died_at)
-+ return 0; /* manually marked dead */
-+ if (hi->died_at + RESURRECT_INTERVAL <= curtime
-+ || hi->died_at > curtime)
-+ {
-+ hi->dead = 0;
-+ log_info ("resurrected host '%s'", hi->name);
-+ return 1;
-+ }
-+ return 0;
-+}
-
- /* Select a random host. Consult HI->pool which indices into the global
- hosttable. Returns index into HI->pool or -1 if no host could be
-@@ -228,13 +246,15 @@ select_random_host (hostinfo_t hi)
- int *tbl = NULL;
- size_t tblsize = 0;
- int pidx, idx;
-+ time_t curtime;
-
-+ curtime = gnupg_get_time ();
- /* We create a new table so that we randomly select only from
- currently alive hosts. */
- for (idx = 0;
- idx < hi->pool_len && (pidx = hi->pool[idx]) != -1;
- idx++)
-- if (hosttable[pidx] && !hosttable[pidx]->dead)
-+ if (hosttable[pidx] && host_is_alive (hosttable[pidx], curtime))
- {
- tblsize++;
- tbl = xtryrealloc(tbl, tblsize * sizeof *tbl);
-@@ -462,6 +482,7 @@ map_host (ctrl_t ctrl, const char *name, const char *srvtag, int force_reselect,
- int is_pool;
- int new_hosts = 0;
- char *cname;
-+ time_t curtime;
-
- *r_host = NULL;
- if (r_httpflags)
-@@ -501,6 +522,7 @@ map_host (ctrl_t ctrl, const char *name, const char *srvtag, int force_reselect,
- }
- else
- hi = hosttable[idx];
-+ curtime = gnupg_get_time ();
-
- is_pool = hi->pool != NULL;
-
-@@ -607,7 +629,7 @@ map_host (ctrl_t ctrl, const char *name, const char *srvtag, int force_reselect,
- if (force_reselect)
- hi->poolidx = -1;
- else if (hi->poolidx >= 0 && hi->poolidx < hosttable_size
-- && hosttable[hi->poolidx] && hosttable[hi->poolidx]->dead)
-+ && hosttable[hi->poolidx] && !host_is_alive (hosttable[hi->poolidx], curtime))
- hi->poolidx = -1;
-
- /* Select a host if needed. */
-@@ -665,7 +687,7 @@ map_host (ctrl_t ctrl, const char *name, const char *srvtag, int force_reselect,
- return gpg_error_from_syserror ();
- }
-
-- if (hi->dead)
-+ if (!host_is_alive (hi, curtime))
- {
- log_error ("host '%s' marked as dead\n", hi->name);
- if (r_httphost)
-@@ -770,7 +792,8 @@ ks_hkp_mark_host (ctrl_t ctrl, const char *name, int alive)
- {
- gpg_error_t err = 0;
- hostinfo_t hi, hi2;
-- int idx, idx2, idx3, n;
-+ int idx, idx2, idx3, n, is_alive;
-+ time_t curtime;
-
- if (!name || !*name || !strcmp (name, "localhost"))
- return 0;
-@@ -779,13 +802,15 @@ ks_hkp_mark_host (ctrl_t ctrl, const char *name, int alive)
- if (idx == -1)
- return gpg_error (GPG_ERR_NOT_FOUND);
-
-+ curtime = gnupg_get_time ();
- hi = hosttable[idx];
-- if (alive && hi->dead)
-+ is_alive = host_is_alive (hi, curtime);
-+ if (alive && !is_alive)
- {
- hi->dead = 0;
- err = ks_printf_help (ctrl, "marking '%s' as alive", name);
- }
-- else if (!alive && !hi->dead)
-+ else if (!alive && is_alive)
- {
- hi->dead = 1;
- hi->died_at = 0; /* Manually set dead. */
-@@ -819,14 +844,15 @@ ks_hkp_mark_host (ctrl_t ctrl, const char *name, int alive)
-
- hi2 = hosttable[n];
- if (!hi2)
-- ;
-- else if (alive && hi2->dead)
-+ continue;
-+ is_alive = host_is_alive (hi2, curtime);
-+ if (alive && !is_alive)
- {
- hi2->dead = 0;
- err = ks_printf_help (ctrl, "marking '%s' as alive",
- hi2->name);
- }
-- else if (!alive && !hi2->dead)
-+ else if (!alive && is_alive)
- {
- hi2->dead = 1;
- hi2->died_at = 0; /* Manually set dead. */
-@@ -1112,34 +1138,6 @@ ks_hkp_resolve (ctrl_t ctrl, parsed_uri_t uri)
- }
-
-
--/* Housekeeping function called from the housekeeping thread. It is
-- used to mark dead hosts alive so that they may be tried again after
-- some time. */
--void
--ks_hkp_housekeeping (time_t curtime)
--{
-- int idx;
-- hostinfo_t hi;
--
-- for (idx=0; idx < hosttable_size; idx++)
-- {
-- hi = hosttable[idx];
-- if (!hi)
-- continue;
-- if (!hi->dead)
-- continue;
-- if (!hi->died_at)
-- continue; /* Do not resurrect manually shot hosts. */
-- if (hi->died_at + RESURRECT_INTERVAL <= curtime
-- || hi->died_at > curtime)
-- {
-- hi->dead = 0;
-- log_info ("resurrected host '%s'", hi->name);
-- }
-- }
--}
--
--
- /* Reload (SIGHUP) action for this module. We mark all host alive
- * even those which have been manually shot. */
- void
diff --git a/main/gnupg/0310-gpg-default-to-3072-bit-keys.patch b/main/gnupg/0310-gpg-default-to-3072-bit-keys.patch
deleted file mode 100644
index e04f4803706..00000000000
--- a/main/gnupg/0310-gpg-default-to-3072-bit-keys.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
-Date: Thu, 7 Sep 2017 18:41:10 -0400
-Subject: gpg: default to 3072-bit keys.
-
-* agent/command.c (hlp_genkey): update help text to suggest the use of
-3072 bits.
-* doc/wks.texi: Make example match default generation.
-* g10/keygen.c (gen_elg): update default from 2048 to 3072.
-* g10/keyid.c (pubkey_string): update comment so that first example
-is the default 3072-bit RSA.
-
---
-
-3072-bit RSA is widely considered to be 128-bit-equivalent security.
-This is a sensible default in 2017.
-
-Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
-
-(cherry picked from commit 909fbca19678e6e36968607e8a2348381da39d8c)
----
- agent/command.c | 2 +-
- doc/wks.texi | 4 ++--
- g10/keygen.c | 2 +-
- g10/keyid.c | 4 ++--
- 4 files changed, 6 insertions(+), 6 deletions(-)
-
-Patch-Source: https://sources.debian.org/data/main/g/gnupg2/2.2.27-2/debian/patches/from-master/gpg-default-to-3072-bit-keys.patch
-
-diff --git a/agent/command.c b/agent/command.c
-index 8642498..f94e770 100644
---- a/agent/command.c
-+++ b/agent/command.c
-@@ -843,7 +843,7 @@ static const char hlp_genkey[] =
- "\n"
- " C: GENKEY\n"
- " S: INQUIRE KEYPARAM\n"
-- " C: D (genkey (rsa (nbits 2048)))\n"
-+ " C: D (genkey (rsa (nbits 3072)))\n"
- " C: END\n"
- " S: D (public-key\n"
- " S: D (rsa (n 326487324683264) (e 10001)))\n"
-diff --git a/doc/wks.texi b/doc/wks.texi
-index 119e31c..ae6c310 100644
---- a/doc/wks.texi
-+++ b/doc/wks.texi
-@@ -412,10 +412,10 @@ the submission address:
- The output of the last command looks similar to this:
-
- @example
-- sec rsa2048 2016-08-30 [SC]
-+ sec rsa3072 2016-08-30 [SC]
- C0FCF8642D830C53246211400346653590B3795B
- uid [ultimate] key-submission@@example.net
-- ssb rsa2048 2016-08-30 [E]
-+ ssb rsa3072 2016-08-30 [E]
- @end example
-
- Take the fingerprint from that output and manually publish the key:
-diff --git a/g10/keygen.c b/g10/keygen.c
-index d50acf8..79d4579 100644
---- a/g10/keygen.c
-+++ b/g10/keygen.c
-@@ -1436,7 +1436,7 @@ gen_elg (int algo, unsigned int nbits, KBNODE pub_root,
-
- if (nbits < 1024)
- {
-- nbits = 2048;
-+ nbits = 3072;
- log_info (_("keysize invalid; using %u bits\n"), nbits );
- }
- else if (nbits > 4096)
-diff --git a/g10/keyid.c b/g10/keyid.c
-index 69d85da..2987287 100644
---- a/g10/keyid.c
-+++ b/g10/keyid.c
-@@ -73,7 +73,7 @@ pubkey_letter( int algo )
- is copied to the supplied buffer up a length of BUFSIZE-1.
- Examples for the output are:
-
-- "rsa2048" - RSA with 2048 bit
-+ "rsa3072" - RSA with 3072 bit
- "elg1024" - Elgamal with 1024 bit
- "ed25519" - ECC using the curve Ed25519.
- "E_1.2.3.4" - ECC using the unsupported curve with OID "1.2.3.4".
-@@ -83,7 +83,7 @@ pubkey_letter( int algo )
- If the option --legacy-list-mode is active, the output use the
- legacy format:
-
-- "2048R" - RSA with 2048 bit
-+ "3072R" - RSA with 3072 bit
- "1024g" - Elgamal with 1024 bit
- "256E" - ECDSA using a curve with 256 bit
-
diff --git a/main/gnupg/0320-gpg-default-to-aes256.patch b/main/gnupg/0320-gpg-default-to-aes256.patch
deleted file mode 100644
index 2d9a90fe375..00000000000
--- a/main/gnupg/0320-gpg-default-to-aes256.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
-Date: Thu, 7 Sep 2017 19:04:00 -0400
-Subject: gpg: default to AES-256.
-
-* g10/main.h (DEFAULT_CIPHER_ALGO): Prefer AES256 by default.
-
---
-
-It's 2017, and pretty much everyone has AES-256 available. Symmetric
-crypto is also rarely the bottleneck (asymmetric crypto is much more
-expensive). AES-256 provides some level of protection against
-large-scale decryption efforts, and longer key lengths provide a hedge
-against unforseen cryptanalysis.
-
-Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
-(cherry picked from commit 73ff075204df09db5248170a049f06498cdbb7aa)
----
- g10/main.h | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-Patch-Source: https://sources.debian.org/data/main/g/gnupg2/2.2.27-2/debian/patches/from-master/gpg-default-to-AES-256.patch
-
-diff --git a/g10/main.h b/g10/main.h
-index 68360e2..1983e42 100644
---- a/g10/main.h
-+++ b/g10/main.h
-@@ -31,7 +31,9 @@
- (i.e. uncompressed) rather than 1 (zip). However, the real world
- issues of speed and size come into play here. */
-
--#if GPG_USE_AES128
-+#if GPG_USE_AES256
-+# define DEFAULT_CIPHER_ALGO CIPHER_ALGO_AES256
-+#elif GPG_USE_AES128
- # define DEFAULT_CIPHER_ALGO CIPHER_ALGO_AES
- #elif GPG_USE_CAST5
- # define DEFAULT_CIPHER_ALGO CIPHER_ALGO_CAST5
diff --git a/main/gnupg/0330-gpg-default-to-sha512-for-all-signature-types-on-rsa-keys.patch b/main/gnupg/0330-gpg-default-to-sha512-for-all-signature-types-on-rsa-keys.patch
index 75c5b73a604..3b4e146a512 100644
--- a/main/gnupg/0330-gpg-default-to-sha512-for-all-signature-types-on-rsa-keys.patch
+++ b/main/gnupg/0330-gpg-default-to-sha512-for-all-signature-types-on-rsa-keys.patch
@@ -22,10 +22,10 @@ Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Patch-Source: https://sources.debian.org/data/main/g/gnupg2/2.2.27-2/debian/patches/update-defaults/gpg-Default-to-SHA-512-for-all-signature-types-on-RS.patch
diff --git a/configure.ac b/configure.ac
-index 2d8b050..4b9d908 100644
+index c31ae02..f7788b3 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -317,7 +317,7 @@ GNUPG_GPG_DISABLE_ALGO([rmd160],[RIPE-MD160 hash])
+@@ -339,7 +339,7 @@ GNUPG_GPG_DISABLE_ALGO([rmd160],[RIPE-MD160 hash])
GNUPG_GPG_DISABLE_ALGO([sha224],[SHA-224 hash])
# SHA256 is a MUST algorithm for GnuPG.
GNUPG_GPG_DISABLE_ALGO([sha384],[SHA-384 hash])
@@ -35,7 +35,7 @@ index 2d8b050..4b9d908 100644
# Allow disabling of zip support.
diff --git a/g10/main.h b/g10/main.h
-index 1983e42..388eae3 100644
+index b29e23e..0a64a21 100644
--- a/g10/main.h
+++ b/g10/main.h
@@ -41,7 +41,7 @@
@@ -44,14 +44,14 @@ index 1983e42..388eae3 100644
-#define DEFAULT_DIGEST_ALGO ((GNUPG)? DIGEST_ALGO_SHA256:DIGEST_ALGO_SHA1)
+#define DEFAULT_DIGEST_ALGO ((GNUPG)? DIGEST_ALGO_SHA512:DIGEST_ALGO_SHA1)
- #define DEFAULT_S2K_DIGEST_ALGO DIGEST_ALGO_SHA1
+ #define DEFAULT_S2K_DIGEST_ALGO DEFAULT_DIGEST_ALGO
#ifdef HAVE_ZIP
# define DEFAULT_COMPRESS_ALGO COMPRESS_ALGO_ZIP
diff --git a/g10/misc.c b/g10/misc.c
-index 634d303..6fc2d58 100644
+index 2f4b452..0e6d9d5 100644
--- a/g10/misc.c
+++ b/g10/misc.c
-@@ -849,11 +849,8 @@ map_md_openpgp_to_gcry (digest_algo_t algo)
+@@ -862,11 +862,8 @@ map_md_openpgp_to_gcry (digest_algo_t algo)
case DIGEST_ALGO_SHA384: return 0;
#endif
diff --git a/main/gnupg/0410-make-gpg-zip-use-tar-from-path.patch b/main/gnupg/0410-make-gpg-zip-use-tar-from-path.patch
deleted file mode 100644
index b0d619e9cdd..00000000000
--- a/main/gnupg/0410-make-gpg-zip-use-tar-from-path.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
-Date: Sun, 18 Nov 2018 17:29:52 -0500
-Subject: Make gpg-zip use tar from $PATH
-
-Apparently there is no clean way to configure this from ./configure,
-and upstream is deprecating gpg-zip anyway. So just force-set tar to
-be manually "tar" (meaning, that we should look in the $PATH at
-runtime).
-
-See also https://dev.gnupg.org/T4251 and https://bugs.debian.org/913582
----
- tools/gpg-zip.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Patch-Source: https://sources.debian.org/data/main/g/gnupg2/2.2.27-2/debian/patches/Make-gpg-zip-use-tar-from-PATH.patch
-
-diff --git a/tools/gpg-zip.in b/tools/gpg-zip.in
-index 9047e36..3821f3a 100644
---- a/tools/gpg-zip.in
-+++ b/tools/gpg-zip.in
-@@ -23,7 +23,7 @@
- # the GNU or POSIX variant of USTAR.
-
- VERSION=@VERSION@
--TAR=@TAR@
-+TAR=tar
- GPG=gpg
-
- usage="\
diff --git a/main/gnupg/0420-gpg-drop-import-clean-from-default-keyserver-import-options.patch b/main/gnupg/0420-gpg-drop-import-clean-from-default-keyserver-import-options.patch
index 46f23160ef6..26098e791fd 100644
--- a/main/gnupg/0420-gpg-drop-import-clean-from-default-keyserver-import-options.patch
+++ b/main/gnupg/0420-gpg-drop-import-clean-from-default-keyserver-import-options.patch
@@ -23,29 +23,29 @@ Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
Patch-Source: https://sources.debian.org/data/main/g/gnupg2/2.2.27-2/debian/patches/gpg-drop-import-clean-from-default-keyserver-import-optio.patch
diff --git a/doc/gpg.texi b/doc/gpg.texi
-index 7b603d7..104318a 100644
+index 804ecf9..b238278 100644
--- a/doc/gpg.texi
+++ b/doc/gpg.texi
-@@ -1982,7 +1982,7 @@ are available for all keyserver types, some common options are:
+@@ -2047,7 +2047,7 @@ are available for all keyserver types, some common options are:
@end table
-The default list of options is: "self-sigs-only, import-clean,
+The default list of options is: "self-sigs-only,
- repair-keys, repair-pks-subkey-bug, export-attributes,
- honor-pka-record".
-
+ repair-keys, repair-pks-subkey-bug, export-attributes". However, if
+ the actual used source is an LDAP server "no-self-sigs-only" is
+ assumed unless "self-sigs-only" has been explicitly configured.
diff --git a/g10/gpg.c b/g10/gpg.c
-index 6b44cfb..caa0487 100644
+index 68c0454..205de60 100644
--- a/g10/gpg.c
+++ b/g10/gpg.c
-@@ -2348,8 +2348,7 @@ main (int argc, char **argv)
- opt.export_options = EXPORT_ATTRIBUTES;
- opt.keyserver_options.import_options = (IMPORT_REPAIR_KEYS
+@@ -2441,8 +2441,7 @@ main (int argc, char **argv)
| IMPORT_REPAIR_PKS_SUBKEY_BUG
-- | IMPORT_SELF_SIGS_ONLY
+ | IMPORT_SELF_SIGS_ONLY
+ | IMPORT_COLLAPSE_UIDS
+- | IMPORT_COLLAPSE_SUBKEYS
- | IMPORT_CLEAN);
-+ | IMPORT_SELF_SIGS_ONLY);
++ | IMPORT_COLLAPSE_SUBKEYS);
opt.keyserver_options.export_options = EXPORT_ATTRIBUTES;
- opt.keyserver_options.options = KEYSERVER_HONOR_PKA_RECORD;
+ opt.keyserver_options.options = 0;
opt.verify_options = (LIST_SHOW_UID_VALIDITY
diff --git a/main/gnupg/70-gpg-import-Ed25519-private-keys-as-MPIs.patch b/main/gnupg/70-gpg-import-Ed25519-private-keys-as-MPIs.patch
deleted file mode 100644
index 9a496ffb913..00000000000
--- a/main/gnupg/70-gpg-import-Ed25519-private-keys-as-MPIs.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From a86a3026218c2d5ac7cd898666b8ef60a5734bb9 Mon Sep 17 00:00:00 2001
-From: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
-Date: Wed, 27 Apr 2022 16:57:28 -0400
-Subject: [PATCH] gpg: import Ed25519 private keys as MPIs
-Relates-To: https://dev.gnupg.org/T5953
-Relates-To: https://gitlab.alpinelinux.org/alpine/aports/-/issues/13924
-
-* g10/parse-packet.c (parse_key): Use mpi_read for Ed25519 private
- key.
-
---
-
-This functionally reverts 14de7b1e5904e78fcbe413a82d0f19b750bd8830,
-because it caused breakage with sbuild's continuous integration
-testing, which uses gpg via debsign (see
-https://bugs.debian.org/1010171)
-
-In particular, it fixes the use of the following two commands with an
-unencrypted Ed25519 secret key where the full 256-bits are used in the
-secret scalar:
-
- gpg --allow-secret-key-import --import
- gpg --batch --detach-sign
-
-I guess this also unfortunately breaks importing "SOS"-formatted
-secret keys as a byproduct, though I don't fully understand the
-mechanism.
-
-The upstream test suite should probably be updated to include samples
-of each of these flavors of secret key material, and ensure that they
-can be imported and used directly.
----
- g10/parse-packet.c | 5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/g10/parse-packet.c b/g10/parse-packet.c
-index 6a529707a..7eb2d03b0 100644
---- a/g10/parse-packet.c
-+++ b/g10/parse-packet.c
-@@ -2805,10 +2805,7 @@ parse_key (IOBUF inp, int pkttype, unsigned long pktlen,
- goto leave;
- }
- n = pktlen;
-- if (algorithm == PUBKEY_ALGO_EDDSA)
-- pk->pkey[i] = sos_read (inp, &n, 0);
-- else
-- pk->pkey[i] = mpi_read (inp, &n, 0);
-+ pk->pkey[i] = mpi_read (inp, &n, 0);
- pktlen -= n;
- if (list_mode)
- {
---
-2.35.1
diff --git a/main/gnupg/APKBUILD b/main/gnupg/APKBUILD
index 262eae63440..9d128f13c58 100644
--- a/main/gnupg/APKBUILD
+++ b/main/gnupg/APKBUILD
@@ -3,9 +3,9 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gnupg
# Upgrade to LTS versions only.
-pkgver=2.2.35
+pkgver=2.4.5
_ver=${pkgver/_beta/-beta}
-pkgrel=3
+pkgrel=0
pkgdesc="GNU Privacy Guard 2 - meta package for full GnuPG suite"
url="https://www.gnupg.org/"
arch="all"
@@ -36,6 +36,7 @@ makedepends="
pinentry
sqlite-dev
texinfo
+ xz
zlib-dev
"
install="$pkgname-scdaemon.pre-install"
@@ -45,6 +46,7 @@ subpackages="
$pkgname-dirmngr
$pkgname-gpgconf
$pkgname-scdaemon
+ $pkgname-keyboxd
$pkgname-wks-client:_wks_client
gpg
gpg-agent:_agent
@@ -54,25 +56,22 @@ subpackages="
$pkgname-utils
"
source="https://gnupg.org/ftp/gcrypt/gnupg/gnupg-$_ver.tar.bz2
- 0001-Include-sys-select.h-for-FD_SETSIZE.patch
0010-avoid-beta-warning.patch
0020-avoid-regenerating-defsincdate-use-shipped-file.patch
0110-avoid-simple-memory-dumps-via-ptrace.patch
0210-dirmngr-hkp-avoid-potential-race-condition-when-some-host-die.patch
- 0220-dirmngr-avoid-need-for-hkp-housekeeping.patch
0230-dirmngr-avoid-automatically-checking-upstream-swdb.patch
- 0310-gpg-default-to-3072-bit-keys.patch
- 0320-gpg-default-to-aes256.patch
0330-gpg-default-to-sha512-for-all-signature-types-on-rsa-keys.patch
0340-gpg-prefer-sha512-and-sha384-in-personal-digest.patch
- 0410-make-gpg-zip-use-tar-from-path.patch
0420-gpg-drop-import-clean-from-default-keyserver-import-options.patch
fix-i18n.patch
+ HACK-revert-rfc4880bis-default.patch
60-scdaemon.rules
- 70-gpg-import-Ed25519-private-keys-as-MPIs.patch
"
# secfixes:
+# 2.2.35-r4:
+# - CVE-2022-34903
# 2.2.23-r0:
# - CVE-2020-25125
# 2.2.18-r0:
@@ -83,6 +82,9 @@ source="https://gnupg.org/ftp/gcrypt/gnupg/gnupg-$_ver.tar.bz2
prepare() {
default_prepare
+ # tries to mkdir -p setup.scm/tests but this is a file?
+ rm tests/gpgme/setup.scm
+
autoreconf -vif
}
@@ -110,7 +112,6 @@ check() {
package() {
make DESTDIR="$pkgdir" install
- install -m755 tools/gpg-zip "$pkgdir"/usr/bin/gpg-zip
install -Dm644 -t "$pkgdir"/lib/udev/rules.d/ "$srcdir"/60-scdaemon.rules
cd "$pkgdir"
@@ -151,7 +152,11 @@ dirmngr() {
gpg() {
pkgdesc="GNU Privacy Guard 2 - public key operations only"
- depends="$pkgname-gpgconf=$pkgver-r$pkgrel"
+ depends="
+ $pkgname-dirmngr=$pkgver-r$pkgrel
+ $pkgname-gpgconf=$pkgver-r$pkgrel
+ $pkgname-keyboxd=$pkgver-r$pkgrel
+ "
replaces="$pkgname" # for backward compatibility
provider_priority=100 # highest (other provider of cmd:gpg is gnupg1)
@@ -198,7 +203,7 @@ lang() {
}
scdaemon() {
- pkgdesc="GNU Privacy Guard 2 - smart card support"
+ pkgdesc="GNU Privacy Guard 2 - smart card support daemon"
depends="gpg-agent=$pkgver-r$pkgrel"
replaces="$pkgname" # for backward compatibility
@@ -211,6 +216,7 @@ _wks_client() {
depends="gpg=$pkgver-r$pkgrel gpg-agent=$pkgver-r$pkgrel $pkgname-dirmngr=$pkgver-r$pkgrel"
replaces="$pkgname" # for backward compatibility
+ amove usr/bin/gpg-wks-client
amove usr/libexec/gpg-wks-client
}
@@ -222,32 +228,34 @@ _wks_server() {
amove usr/bin/gpg-wks-server
}
+keyboxd() {
+ pkgdesc="GNU Privacy Guard 2 - keyboxd manager"
+ depends=""
+
+ amove usr/libexec/keyboxd
+}
+
# Must be the last!
utils() {
pkgdesc="GNU Privacy Guard 2 - utility programs"
depends=""
replaces="$pkgname" # for backward compatibility
- provider_priority=100 # highest (other provider of cmd:gpg-zip cmd:gpgsplit is gnupg1)
+ provider_priority=100 # highest (other provider of cmd:gpgsplit is gnupg1)
amove usr/*
}
sha512sums="
-ad9f8d10890b7fafb15a7422e2cebaf0f85ce7cf5f880f4edd8d1dec46aa73c01f9096e601f6edd665f8684d1f5892634991a400e00b3185e6b201f549004d3e gnupg-2.2.35.tar.bz2
-c6cc4595081c5b025913fa3ebecf0dff87a84f3c669e3fef106e4fa040f1d4314ee52dd4c0e0002b213034fb0810221cfdd0033eae5349b6e3978f05d08bcac7 0001-Include-sys-select.h-for-FD_SETSIZE.patch
+4d54744f09399c5899144d0cb5fdc2756e45b058db41b9ea9df3be03e80b914509e16ef35aa0248e7561185b80f7a5f9fd6afcab8ccff75ff82ed555448a38ff gnupg-2.4.5.tar.bz2
0e2aef4ae5c43c43efe2c914534d73f8f7068b49b5826b1f999296c30395497c4af121e4e99152ff7b43dcf56d1792cd46aea5158ca48597d6e0fca6d7358711 0010-avoid-beta-warning.patch
18004e52925b1f03e67a29a3d43b39e8119cf3426cdad4136824b932ad906ac499b4ceb3d7573177a9f16410d3b80c8f0e4bcdc54dd284f3f803a2cef609ad01 0020-avoid-regenerating-defsincdate-use-shipped-file.patch
-7c9f38ce480c5f6d06330c9b1fcfe9b32cac2b0b28695beec4e94e48508cf45a4f56ce406abfee795de11ed973598e8544440c3dfc0670cdeb37e27ca1e6caf0 0110-avoid-simple-memory-dumps-via-ptrace.patch
-6bc5ac393a72432ef09a31f524db973677fd730166457b881b88e6fad7536ac4fe8cceeed324b578125b9fd4d871645ae9c43c01b3563e00a146e8f835336ac3 0210-dirmngr-hkp-avoid-potential-race-condition-when-some-host-die.patch
-f4778aa2ec8a971ee700114b43b0446425b86459e4b21fd9b534f51de46a7ac9cfd21d79470b422a385e2a0244c54a5fb482ab76b4861f101745f77646f6f483 0220-dirmngr-avoid-need-for-hkp-housekeeping.patch
+d77a230e099ac26cf70acf4bf5c4a8446460f677857818027c16fd029292c249a24f31f7073e0388757cf567656e416b7f91af3bba62a85a2ffbdcf985c5050c 0110-avoid-simple-memory-dumps-via-ptrace.patch
+54d6b805ad89b384df140e1dc7c4ecd6703bf317fb97834026458fab92f3f0f4f426f0da86c0fbfe102bb1304a489d15ea2e728d5f97d4f0c9bf14cc30cb8c23 0210-dirmngr-hkp-avoid-potential-race-condition-when-some-host-die.patch
1c38b039950fa9733e9584ac61d52e12aad56489d7f3aec396b2528d0bf41729971d3fe9b4d04d50595a2a954181892ed1ec93f1b7ade24e4da26744d78598fc 0230-dirmngr-avoid-automatically-checking-upstream-swdb.patch
-c4488de65913167a77fbc1c8d3a8867d15171c6021490e443ca0faddcb2109fff23f7f49c9a8922d1acd1e435530fc8a4bafb71f441d3cdf38618d3a113cf7e8 0310-gpg-default-to-3072-bit-keys.patch
-00dac445ba9f1c4c7e6078a8068e62e13e05c5b22e1d84b915f6f353eba55c4b172c6ea735f3bb551af0d6073652d3b6f0cafdfb1d6afb309626a7642775416f 0320-gpg-default-to-aes256.patch
-9e6c109f6617b4abb7a9d8abd4c8d128247dd21915bf7a75bb6a9f5b6da2a9d4dcee27147db3f88de79e4cb2621222ae62d95c0ce115658ef39bcd01587b5f82 0330-gpg-default-to-sha512-for-all-signature-types-on-rsa-keys.patch
+1afea38e6fe3206be1cc2b2bc1410753aba9bc1e1370da76e711f7107924fc169008e1fba15117e0c5b244d71146e86c49ce0d816ce49a50b2452159144e1893 0330-gpg-default-to-sha512-for-all-signature-types-on-rsa-keys.patch
462af7b1e530e00d3870062666ef427d6df57ee8358b043c06fb8b7b54e50891fc8a49beeaabe45d1822d222ffc47da624798ceb8889a02e38ce85612453bb8b 0340-gpg-prefer-sha512-and-sha384-in-personal-digest.patch
-0e4d5d29de5279bda4e8b69334c664068404e697ad9e62868389ef1d97bc1a18d80e834d2d2e8147e0f537a81e6f3b360f18e1a958304a2cc2659c29e68c517a 0410-make-gpg-zip-use-tar-from-path.patch
-ac2199f2b49af1c0211ff6f7e441f0f7779d6101c2136f2d7cab0001d260598e4f2f07111aa478dd210a05385daa1f6aec77d9b0de3e379371433b0c82035855 0420-gpg-drop-import-clean-from-default-keyserver-import-options.patch
+0c1c44932e47ded65d412c48f859f1615a896ae1dd0a9e0e46fd491f3a25adc80e29fe12e329c3f541a60729cdf82330e81ab7bb7cacf1ddc6a9701a38bbbfaf 0420-gpg-drop-import-clean-from-default-keyserver-import-options.patch
28cba87121c66b1bbc90bb0f3ca8c69ff19376243854577a4d24afa4a3d4a4b8a952a3a7bbecc200058b6f722cfcd4fc72d5630c822f78ef3fc819f972798e34 fix-i18n.patch
+eeeab08c22844ee364a64d7b772f0e42e5404428aaf37ef2504f043d7a69d1d3b32a34c680c413756ffb419733f23cea16172a6a611986c70bbffc801d071de8 HACK-revert-rfc4880bis-default.patch
4bfb9742279c2d1c872d63cd4bcb01f6a2a13d94618eff954d3a37451fa870a9bb29687330854ee47e8876d6e60dc81cb2569c3931beaefacda33db23c464402 60-scdaemon.rules
-b35f72c41a550ac7a98dbb332875d4422e4effa9f2c4141349b788c6ea138ee06110b40e07aaf1aa7389ae8e8f627a72b2922aca7402cc58425f2b8a10caa17b 70-gpg-import-Ed25519-private-keys-as-MPIs.patch
"
diff --git a/main/gnupg/HACK-revert-rfc4880bis-default.patch b/main/gnupg/HACK-revert-rfc4880bis-default.patch
new file mode 100644
index 00000000000..cd2c1dc3277
--- /dev/null
+++ b/main/gnupg/HACK-revert-rfc4880bis-default.patch
@@ -0,0 +1,207 @@
+see:
+https://lore.kernel.org/distributions/F30D6590-3E0C-4865-A944-7DE118A619CF@gentoo.org/
+
+this reverts to the pre-2.4 default of key generation. the new one is
+(apparently) not compatible with a potential future specification, and
+generates incompatible keys by default.
+
+once this is figured out, find a better solution than this
+--
+From 8b3e9127ea02eae8ec3470149e22804a572df5b8 Mon Sep 17 00:00:00 2001
+From: psykose <alice@ayaya.dev>
+Date: Tue, 7 Feb 2023 10:14:34 +0100
+Subject: [PATCH] Revert "gpg: Merge --rfc4880bis features into --gnupg"
+
+This reverts commit 4583f4fe2e11b3dd070066628c3f16776cc74f72.
+---
+ g10/gpg.c | 35 ++++++++++++++++++++++++++++++++---
+ g10/keygen.c | 30 ++++++++++++++++++------------
+ 2 files changed, 50 insertions(+), 15 deletions(-)
+
+diff --git a/g10/gpg.c b/g10/gpg.c
+index b759cc1..5a04163 100644
+--- a/g10/gpg.c
++++ b/g10/gpg.c
+@@ -247,6 +247,7 @@ enum cmd_and_opt_values
+ oGnuPG,
+ oRFC2440,
+ oRFC4880,
++ oRFC4880bis,
+ oOpenPGP,
+ oPGP7,
+ oPGP8,
+@@ -635,6 +636,7 @@ static gpgrt_opt_t opts[] = {
+ ARGPARSE_s_n (oGnuPG, "no-pgp8", "@"),
+ ARGPARSE_s_n (oRFC2440, "rfc2440", "@"),
+ ARGPARSE_s_n (oRFC4880, "rfc4880", "@"),
++ ARGPARSE_s_n (oRFC4880bis, "rfc4880bis", "@"),
+ ARGPARSE_s_n (oOpenPGP, "openpgp", N_("use strict OpenPGP behavior")),
+ ARGPARSE_s_n (oPGP7, "pgp6", "@"),
+ ARGPARSE_s_n (oPGP7, "pgp7", "@"),
+@@ -976,7 +978,6 @@ static gpgrt_opt_t opts[] = {
+ ARGPARSE_s_n (oNoop, "no-allow-multiple-messages", "@"),
+ ARGPARSE_s_s (oNoop, "aead-algo", "@"),
+ ARGPARSE_s_s (oNoop, "personal-aead-preferences","@"),
+- ARGPARSE_s_n (oNoop, "rfc4880bis", "@"),
+ ARGPARSE_s_n (oNoop, "override-compliance-check", "@"),
+
+
+@@ -2225,7 +2226,7 @@ static struct gnupg_compliance_option compliance_options[] =
+ {
+ { "gnupg", oGnuPG },
+ { "openpgp", oOpenPGP },
+- { "rfc4880bis", oGnuPG },
++ { "rfc4880bis", oRFC4880bis },
+ { "rfc4880", oRFC4880 },
+ { "rfc2440", oRFC2440 },
+ { "pgp6", oPGP7 },
+@@ -2241,8 +2242,28 @@ static struct gnupg_compliance_option compliance_options[] =
+ static void
+ set_compliance_option (enum cmd_and_opt_values option)
+ {
++ opt.flags.rfc4880bis = 0; /* Clear because it is initially set. */
++
+ switch (option)
+ {
++ case oRFC4880bis:
++ opt.flags.rfc4880bis = 1;
++ opt.compliance = CO_RFC4880;
++ opt.flags.dsa2 = 1;
++ opt.flags.require_cross_cert = 1;
++ opt.rfc2440_text = 0;
++ opt.allow_non_selfsigned_uid = 1;
++ opt.allow_freeform_uid = 1;
++ opt.escape_from = 1;
++ opt.not_dash_escaped = 0;
++ opt.def_cipher_algo = 0;
++ opt.def_digest_algo = 0;
++ opt.cert_digest_algo = 0;
++ opt.compress_algo = -1;
++ opt.s2k_mode = 3; /* iterated+salted */
++ opt.s2k_digest_algo = DIGEST_ALGO_SHA256;
++ opt.s2k_cipher_algo = CIPHER_ALGO_AES256;
++ break;
+ case oOpenPGP:
+ case oRFC4880:
+ /* This is effectively the same as RFC2440, but with
+@@ -2286,6 +2307,7 @@ set_compliance_option (enum cmd_and_opt_values option)
+ case oPGP8: opt.compliance = CO_PGP8; break;
+ case oGnuPG:
+ opt.compliance = CO_GNUPG;
++ opt.flags.rfc4880bis = 1;
+ break;
+
+ case oDE_VS:
+@@ -2488,6 +2510,7 @@ main (int argc, char **argv)
+ opt.emit_version = 0;
+ opt.weak_digests = NULL;
+ opt.compliance = CO_GNUPG;
++ opt.flags.rfc4880bis = 1;
+
+ /* Check special options given on the command line. */
+ orig_argc = argc;
+@@ -3030,6 +3053,7 @@ main (int argc, char **argv)
+ case oOpenPGP:
+ case oRFC2440:
+ case oRFC4880:
++ case oRFC4880bis:
+ case oPGP7:
+ case oPGP8:
+ case oGnuPG:
+@@ -3858,6 +3882,11 @@ main (int argc, char **argv)
+ if( may_coredump && !opt.quiet )
+ log_info(_("WARNING: program may create a core file!\n"));
+
++ if (!opt.flags.rfc4880bis)
++ {
++ opt.mimemode = 0; /* This will use text mode instead. */
++ }
++
+ if (eyes_only) {
+ if (opt.set_filename)
+ log_info(_("WARNING: %s overrides %s\n"),
+@@ -4074,7 +4103,7 @@ main (int argc, char **argv)
+ /* Check our chosen algorithms against the list of legal
+ algorithms. */
+
+- if(!GNUPG)
++ if(!GNUPG && !opt.flags.rfc4880bis)
+ {
+ const char *badalg=NULL;
+ preftype_t badtype=PREFTYPE_NONE;
+diff --git a/g10/keygen.c b/g10/keygen.c
+index 7f54f7d..83fc3f3 100644
+--- a/g10/keygen.c
++++ b/g10/keygen.c
+@@ -404,7 +404,7 @@ keygen_set_std_prefs (const char *string,int personal)
+ strcat(dummy_string,"S7 ");
+ strcat(dummy_string,"S2 "); /* 3DES */
+
+- if (!openpgp_aead_test_algo (AEAD_ALGO_OCB))
++ if (opt.flags.rfc4880bis && !openpgp_aead_test_algo (AEAD_ALGO_OCB))
+ strcat(dummy_string,"A2 ");
+
+ if (personal)
+@@ -889,7 +889,7 @@ keygen_upd_std_prefs (PKT_signature *sig, void *opaque)
+ /* Make sure that the MDC feature flag is set if needed. */
+ add_feature_mdc (sig,mdc_available);
+ add_feature_aead (sig, aead_available);
+- add_feature_v5 (sig, 1);
++ add_feature_v5 (sig, opt.flags.rfc4880bis);
+ add_keyserver_modify (sig,ks_modify);
+ keygen_add_keyserver_url(sig,NULL);
+
+@@ -3382,7 +3382,10 @@ parse_key_parameter_part (ctrl_t ctrl,
+ }
+ }
+ else if (!ascii_strcasecmp (s, "v5"))
+- keyversion = 5;
++ {
++ if (opt.flags.rfc4880bis)
++ keyversion = 5;
++ }
+ else if (!ascii_strcasecmp (s, "v4"))
+ keyversion = 4;
+ else
+@@ -3641,7 +3644,7 @@ parse_key_parameter_part (ctrl_t ctrl,
+ * ecdsa := Use algorithm ECDSA.
+ * eddsa := Use algorithm EdDSA.
+ * ecdh := Use algorithm ECDH.
+- * v5 := Create version 5 key
++ * v5 := Create version 5 key (requires option --rfc4880bis)
+ *
+ * There are several defaults and fallbacks depending on the
+ * algorithm. PART can be used to select which part of STRING is
+@@ -4513,9 +4516,9 @@ read_parameter_file (ctrl_t ctrl, const char *fname )
+ }
+ }
+
+- if ((keywords[i].key == pVERSION
+- || keywords[i].key == pSUBVERSION))
+- ; /* Ignore version. */
++ if (!opt.flags.rfc4880bis && (keywords[i].key == pVERSION
++ || keywords[i].key == pSUBVERSION))
++ ; /* Ignore version unless --rfc4880bis is active. */
+ else
+ {
+ r = xmalloc_clear( sizeof *r + strlen( value ) );
+@@ -4610,11 +4613,14 @@ quickgen_set_para (struct para_data_s *para, int for_subkey,
+ para = r;
+ }
+
+- r = xmalloc_clear (sizeof *r + 20);
+- r->key = for_subkey? pSUBVERSION : pVERSION;
+- snprintf (r->u.value, 20, "%d", version);
+- r->next = para;
+- para = r;
++ if (opt.flags.rfc4880bis)
++ {
++ r = xmalloc_clear (sizeof *r + 20);
++ r->key = for_subkey? pSUBVERSION : pVERSION;
++ snprintf (r->u.value, 20, "%d", version);
++ r->next = para;
++ para = r;
++ }
+
+ if (keytime)
+ {
diff --git a/main/gnutls/APKBUILD b/main/gnutls/APKBUILD
index 7d1486c5796..dc4c551e158 100644
--- a/main/gnutls/APKBUILD
+++ b/main/gnutls/APKBUILD
@@ -2,26 +2,43 @@
# Contributor: Michael Mason <ms13sp@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gnutls
-pkgver=3.7.6
+pkgver=3.8.3
pkgrel=0
pkgdesc="TLS protocol implementation"
url="https://www.gnutls.org/"
arch="all"
license="LGPL-2.1-or-later"
checkdepends="diffutils datefudge"
-makedepends="nettle-dev zlib-dev libtasn1-dev p11-kit-dev libunistring-dev texinfo"
+makedepends="
+ libidn2-dev
+ libkcapi-dev
+ libtasn1-dev
+ libunistring-dev
+ linux-headers
+ nettle-dev
+ p11-kit-dev
+ texinfo
+ zlib-dev
+ "
subpackages="$pkgname-dbg $pkgname-doc $pkgname-dev $pkgname-utils $pkgname-c++:xx"
_v=${pkgver%.*}
case $pkgver in
*.*.*.*) _v=${_v%.*};;
esac
source="https://www.gnupg.org/ftp/gcrypt/gnutls/v$_v/gnutls-$pkgver.tar.xz
- skip-crq.patch
- tests-certtool.patch
+ skip-ktls.patch
"
# Upstream Tracker: https://gnutls.org/security-new.html
# secfixes:
+# 3.8.3-r0:
+# - CVE-2023-5981
+# - CVE-2024-0553
+# - CVE-2024-0567
+# 3.8.0-r0:
+# - CVE-2023-0361
+# 3.7.7-r0:
+# - CVE-2022-2509 GNUTLS-SA-2022-07-07
# 3.7.1-r0:
# - CVE-2021-20231 GNUTLS-SA-2021-03-10
# - CVE-2021-20232 GNUTLS-SA-2021-03-10
@@ -37,24 +54,36 @@ source="https://www.gnupg.org/ftp/gcrypt/gnutls/v$_v/gnutls-$pkgver.tar.xz
# 3.5.13-r0:
# - CVE-2017-7507
+prepare() {
+ default_prepare
+
+ # tries to do local networking, "Failed to connect to server"
+ sed -i 's/cert-reencoding.sh//' tests/Makefile*
+}
+
build() {
- LIBS="-lgmp" ./configure \
+ ./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
+ --enable-ktls \
--disable-openssl-compatibility \
--disable-rpath \
--disable-static \
- --disable-guile \
--disable-valgrind-tests
make
}
check() {
- make check
+ # millis, 100s
+ export GNUTLS_TEST_TIMEOUT=100000
+ make check || {
+ cat tests/test-suite.log
+ return 1
+ }
}
package() {
@@ -75,7 +104,6 @@ xx() {
}
sha512sums="
-f872339df80ec31d292821ff00eaafbe50e0bd4cdbb86e21e4f78541cd0a26d843596d5e69c91de4db8ce7d027fc639ae6462b57d89fb116162ae63c5a97486a gnutls-3.7.6.tar.xz
-69b014782ec157c96b39d09dc3ce25443710b6430c3e4420329afbc141dde21a16a9e310c625039babb839c8b231f8cfe9b640eeef2a7b98b3e9fe51a5a379b0 skip-crq.patch
-2006876dd33559a9ee4abe73e7cedc6867c4f480befdfd5fe9e3eca327e291c3cdb12385156c2ba5ab9496dec870b15178249e015363397f1d979ef785906366 tests-certtool.patch
+74eddba01ce4c2ffdca781c85db3bb52c85f1db3c09813ee2b8ceea0608f92ca3912fd9266f55deb36a8ba4d01802895ca5d5d219e7d9caec45e1a8534e45a84 gnutls-3.8.3.tar.xz
+0913e95e58c509c5bb3463cce262741486ada05e283f770a0ef9bf88956e1b87224070036d32069a6d0b6cb880253627890aee98edb5f1b07acf26a97bc19cee skip-ktls.patch
"
diff --git a/main/gnutls/skip-crq.patch b/main/gnutls/skip-crq.patch
deleted file mode 100644
index 3d9ea868aa3..00000000000
--- a/main/gnutls/skip-crq.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Failing test: long-dns-crq
-
---- a/tests/cert-tests/Makefile.in
-+++ b/tests/cert-tests/Makefile.in
-@@ -306,7 +306,7 @@
- pkcs8-decode.sh ecdsa.sh illegal-rsa.sh pkcs8-invalid.sh \
- key-invalid.sh pkcs8-eddsa.sh certtool-subca.sh \
- certtool-verify-profiles.sh x509-duplicate-ext.sh \
-- x25519-and-x448.sh certtool-utf8.sh crq.sh \
-+ x25519-and-x448.sh certtool-utf8.sh \
- cert-non-digits-time.sh reject-invalid-time.sh \
- tolerate-invalid-time.sh provable-dh-default.sh \
- template-test.sh pem-decoding.sh othername-test.sh \
-@@ -2350,7 +2350,7 @@
- certtool-verify-profiles.sh x509-duplicate-ext.sh \
- x25519-and-x448.sh key-id.sh ecdsa.sh pkcs8-invalid.sh \
- key-invalid.sh pkcs8-decode.sh pkcs8.sh pkcs8-eddsa.sh \
-- certtool-utf8.sh crq.sh $(am__append_1) $(am__append_2) \
-+ certtool-utf8.sh $(am__append_1) $(am__append_2) \
- $(am__append_3) $(am__append_4) $(am__append_5) \
- $(am__append_6) $(am__append_7) certtool-rsa-pss.sh \
- certtool-eddsa.sh
diff --git a/main/gnutls/skip-ktls.patch b/main/gnutls/skip-ktls.patch
new file mode 100644
index 00000000000..4446c75ef0d
--- /dev/null
+++ b/main/gnutls/skip-ktls.patch
@@ -0,0 +1,137 @@
+fails on builders
+not sure why, as the support works
+--
+diff --git a/tests/Makefile.in b/tests/Makefile.in
+index c6da8c1..ec5c1fd 100644
+--- a/tests/Makefile.in
++++ b/tests/Makefile.in
+@@ -170,8 +170,6 @@ host_triplet = @host@
+ @ENABLE_PKCS11_TRUE@@WINDOWS_FALSE@ global-init-override
+
+ @ENABLE_TPM2_TRUE@am__append_16 = tpm2.sh
+-@ENABLE_KTLS_TRUE@am__append_17 = gnutls_ktls ktls_keyupdate
+-@ENABLE_KTLS_TRUE@am__append_18 = ktls.sh ktls_keyupdate.sh
+
+ #
+ # List of tests not available/functional under windows
+@@ -486,7 +484,6 @@ am__EXEEXT_15 = tls13/supported_versions$(EXEEXT) \
+ tls11-rollback-detection$(EXEEXT) \
+ tls12-check-rollback-val$(EXEEXT) \
+ tls11-check-rollback-val$(EXEEXT) \
+- tls13/post-handshake-with-psk$(EXEEXT) \
+ tls13/post-handshake-with-cert-auto$(EXEEXT) \
+ tls13/anti_replay$(EXEEXT) tls13/compress-cert$(EXEEXT) \
+ tls13/compress-cert-neg$(EXEEXT) \
+@@ -686,8 +686,6 @@
+ $(am__EXEEXT_9) $(am__EXEEXT_10) $(am__EXEEXT_11) \
+ $(am__EXEEXT_12) record-sendfile$(EXEEXT) $(am__EXEEXT_13) \
+ $(am__EXEEXT_14)
+-@ENABLE_KTLS_TRUE@am__EXEEXT_16 = gnutls_ktls$(EXEEXT) \
+-@ENABLE_KTLS_TRUE@ ktls_keyupdate$(EXEEXT)
+ @WINDOWS_FALSE@am__EXEEXT_17 = dtls-stress$(EXEEXT)
+ @DISABLE_SYSTEM_CONFIG_FALSE@@WINDOWS_FALSE@am__EXEEXT_18 = system-override-curves-allowlist$(EXEEXT) \
+ @DISABLE_SYSTEM_CONFIG_FALSE@@WINDOWS_FALSE@ protocol-set-allowlist$(EXEEXT)
+@@ -2904,10 +2899,6 @@ tls13_post_handshake_with_cert_ticket_OBJECTS = \
+ tls13_post_handshake_with_cert_ticket_LDADD = $(LDADD)
+ tls13_post_handshake_with_cert_ticket_DEPENDENCIES = \
+ $(COMMON_GNUTLS_LDADD) libutils.la $(am__DEPENDENCIES_2)
+-tls13_post_handshake_with_psk_SOURCES = \
+- tls13/post-handshake-with-psk.c
+-tls13_post_handshake_with_psk_OBJECTS = \
+- tls13/post-handshake-with-psk.$(OBJEXT)
+ tls13_post_handshake_with_psk_LDADD = $(LDADD)
+ tls13_post_handshake_with_psk_DEPENDENCIES = $(COMMON_GNUTLS_LDADD) \
+ libutils.la $(am__DEPENDENCIES_2)
+@@ -3123,7 +3114,7 @@ xts_key_check_DEPENDENCIES = $(COMMON_GNUTLS_LDADD) libutils.la \
+ $(am__DEPENDENCIES_2)
+ am__dist_check_SCRIPTS_DIST = rfc2253-escape-test.sh \
+ rsa-md5-collision/rsa-md5-collision.sh systemkey.sh tpm2.sh \
+- ktls.sh ktls_keyupdate.sh dtls/dtls.sh dtls/dtls-resume.sh \
++ dtls/dtls.sh dtls/dtls-resume.sh \
+ fastopen.sh pkgconfig.sh starttls.sh starttls-ftp.sh \
+ starttls-smtp.sh starttls-lmtp.sh starttls-pop3.sh \
+ starttls-xmpp.sh starttls-nntp.sh starttls-sieve.sh \
+@@ -3509,7 +3500,6 @@ am__depfiles_remade = ./$(DEPDIR)/aead-cipher-vec.Po \
+ tls13/$(DEPDIR)/post-handshake-with-cert-pkcs11.Po \
+ tls13/$(DEPDIR)/post-handshake-with-cert-ticket.Po \
+ tls13/$(DEPDIR)/post-handshake-with-cert.Po \
+- tls13/$(DEPDIR)/post-handshake-with-psk.Po \
+ tls13/$(DEPDIR)/post-handshake-without-cert.Po \
+ tls13/$(DEPDIR)/prf-early.Po tls13/$(DEPDIR)/prf.Po \
+ tls13/$(DEPDIR)/psk-dumbfw.Po tls13/$(DEPDIR)/psk-ext.Po \
+@@ -3732,7 +3722,6 @@ SOURCES = $(libpkcs11mock1_la_SOURCES) $(libpkcs11mock2_la_SOURCES) \
+ tls13/post-handshake-with-cert-auto.c \
+ tls13/post-handshake-with-cert-pkcs11.c \
+ tls13/post-handshake-with-cert-ticket.c \
+- tls13/post-handshake-with-psk.c \
+ tls13/post-handshake-without-cert.c tls13/prf.c \
+ tls13/prf-early.c tls13/psk-dumbfw.c tls13/psk-ext.c \
+ tls13/psk-ke-modes.c tls13/supported_versions.c \
+@@ -3924,7 +3913,6 @@ DIST_SOURCES = $(am__libpkcs11mock1_la_SOURCES_DIST) \
+ tls13/post-handshake-with-cert-auto.c \
+ tls13/post-handshake-with-cert-pkcs11.c \
+ tls13/post-handshake-with-cert-ticket.c \
+- tls13/post-handshake-with-psk.c \
+ tls13/post-handshake-without-cert.c tls13/prf.c \
+ tls13/prf-early.c tls13/psk-dumbfw.c tls13/psk-ext.c \
+ tls13/psk-ke-modes.c tls13/supported_versions.c \
+@@ -6094,7 +6082,7 @@ ctests = tls13/supported_versions tls13/tls12-no-tls13-exts \
+ tls13/prf tls13/prf-early \
+ tls13/post-handshake-with-cert-ticket tls12-rollback-detection \
+ tls11-rollback-detection tls12-check-rollback-val \
+- tls11-check-rollback-val tls13/post-handshake-with-psk \
++ tls11-check-rollback-val \
+ tls13/post-handshake-with-cert-auto tls13/anti_replay \
+ tls13/compress-cert tls13/compress-cert-neg \
+ tls13/compress-cert-neg2 tls13/compress-cert-cli \
+@@ -8290,12 +8278,7 @@ tls13/post-handshake-with-cert-ticket.$(OBJEXT): \
+ tls13/post-handshake-with-cert-ticket$(EXEEXT): $(tls13_post_handshake_with_cert_ticket_OBJECTS) $(tls13_post_handshake_with_cert_ticket_DEPENDENCIES) $(EXTRA_tls13_post_handshake_with_cert_ticket_DEPENDENCIES) tls13/$(am__dirstamp)
+ @rm -f tls13/post-handshake-with-cert-ticket$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(tls13_post_handshake_with_cert_ticket_OBJECTS) $(tls13_post_handshake_with_cert_ticket_LDADD) $(LIBS)
+-tls13/post-handshake-with-psk.$(OBJEXT): tls13/$(am__dirstamp) \
+- tls13/$(DEPDIR)/$(am__dirstamp)
+
+-tls13/post-handshake-with-psk$(EXEEXT): $(tls13_post_handshake_with_psk_OBJECTS) $(tls13_post_handshake_with_psk_DEPENDENCIES) $(EXTRA_tls13_post_handshake_with_psk_DEPENDENCIES) tls13/$(am__dirstamp)
+- @rm -f tls13/post-handshake-with-psk$(EXEEXT)
+- $(AM_V_CCLD)$(LINK) $(tls13_post_handshake_with_psk_OBJECTS) $(tls13_post_handshake_with_psk_LDADD) $(LIBS)
+ tls13/post-handshake-without-cert.$(OBJEXT): tls13/$(am__dirstamp) \
+ tls13/$(DEPDIR)/$(am__dirstamp)
+
+@@ -8939,7 +8922,6 @@ distclean-compile:
+ @AMDEP_TRUE@@am__include@ @am__quote@tls13/$(DEPDIR)/post-handshake-with-cert-pkcs11.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@tls13/$(DEPDIR)/post-handshake-with-cert-ticket.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@tls13/$(DEPDIR)/post-handshake-with-cert.Po@am__quote@ # am--include-marker
+-@AMDEP_TRUE@@am__include@ @am__quote@tls13/$(DEPDIR)/post-handshake-with-psk.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@tls13/$(DEPDIR)/post-handshake-without-cert.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@tls13/$(DEPDIR)/prf-early.Po@am__quote@ # am--include-marker
+ @AMDEP_TRUE@@am__include@ @am__quote@tls13/$(DEPDIR)/prf.Po@am__quote@ # am--include-marker
+@@ -9676,13 +9658,6 @@ tls11-check-rollback-val.log: tls11-check-rollback-val$(EXEEXT)
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+-tls13/post-handshake-with-psk.log: tls13/post-handshake-with-psk$(EXEEXT)
+- @p='tls13/post-handshake-with-psk$(EXEEXT)'; \
+- b='tls13/post-handshake-with-psk'; \
+- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+- --log-file $$b.log --trs-file $$b.trs \
+- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+- "$$tst" $(AM_TESTS_FD_REDIRECT)
+ tls13/post-handshake-with-cert-auto.log: tls13/post-handshake-with-cert-auto$(EXEEXT)
+ @p='tls13/post-handshake-with-cert-auto$(EXEEXT)'; \
+ b='tls13/post-handshake-with-cert-auto'; \
+@@ -13285,7 +13260,6 @@ distclean: distclean-recursive
+ -rm -f tls13/$(DEPDIR)/post-handshake-with-cert-pkcs11.Po
+ -rm -f tls13/$(DEPDIR)/post-handshake-with-cert-ticket.Po
+ -rm -f tls13/$(DEPDIR)/post-handshake-with-cert.Po
+- -rm -f tls13/$(DEPDIR)/post-handshake-with-psk.Po
+ -rm -f tls13/$(DEPDIR)/post-handshake-without-cert.Po
+ -rm -f tls13/$(DEPDIR)/prf-early.Po
+ -rm -f tls13/$(DEPDIR)/prf.Po
+@@ -13794,7 +13768,6 @@ maintainer-clean: maintainer-clean-recursive
+ -rm -f tls13/$(DEPDIR)/post-handshake-with-cert-pkcs11.Po
+ -rm -f tls13/$(DEPDIR)/post-handshake-with-cert-ticket.Po
+ -rm -f tls13/$(DEPDIR)/post-handshake-with-cert.Po
+- -rm -f tls13/$(DEPDIR)/post-handshake-with-psk.Po
+ -rm -f tls13/$(DEPDIR)/post-handshake-without-cert.Po
+ -rm -f tls13/$(DEPDIR)/prf-early.Po
+ -rm -f tls13/$(DEPDIR)/prf.Po
diff --git a/main/gnutls/tests-certtool.patch b/main/gnutls/tests-certtool.patch
deleted file mode 100644
index 13dc12b3b0f..00000000000
--- a/main/gnutls/tests-certtool.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-I think this tests is simply wrong.
-When a PIN is given, the program should run in batch mode.
-So the question for "Enter password" should _not_ be present.
-
-Fails on the builders:
-
-> Generating a 3072 bit RSA private key...
-> Generating a self signed certificate...
-> No PIN given.
-> note: when operating in batch mode, set the GNUTLS_PIN or GNUTLS_SO_PIN environment variables
-> cert generation failed
-> FAIL certtool.sh (exit status: 1)
-
---- a/tests/cert-tests/certtool.sh 2019-02-07 07:33:45.960887338 +0000
-+++ b/tests/cert-tests/certtool.sh 2019-02-07 07:36:14.550955051 +0000
-@@ -49,7 +49,7 @@
-
- #check whether password is being honoured
- #some CI runners need GNUTLS_PIN (GNUTLS_PIN=${PASS})
-- ${SETSID} "${CERTTOOL}" --generate-self-signed --load-privkey ${TMPFILE1} --template ${srcdir}/templates/template-test.tmpl --ask-pass >${TMPFILE2} 2>&1 <<EOF
-+ GNUTLS_PIN=${PASS} ${SETSID} "${CERTTOOL}" --generate-self-signed --load-privkey ${TMPFILE1} --template ${srcdir}/templates/template-test.tmpl --ask-pass >${TMPFILE2} 2>&1 <<EOF
- $PASS
- EOF
- if test $? != 0;then
-@@ -59,7 +59,7 @@
- fi
-
- grep "Enter password" ${TMPFILE2} >/dev/null 2>&1
-- if test $? != 0;then
-+ if test $? != 1; then
- cat ${TMPFILE2}
- echo "No password was asked"
- exit 1
diff --git a/main/goaccess/APKBUILD b/main/goaccess/APKBUILD
index 394a765744f..8cc52567b02 100644
--- a/main/goaccess/APKBUILD
+++ b/main/goaccess/APKBUILD
@@ -1,14 +1,14 @@
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=goaccess
-pkgver=1.6.1
+pkgver=1.9.2
pkgrel=0
pkgdesc="Real-time web log analyzer and interactive viewer"
options="!check" # no test suite
url="https://goaccess.io/"
arch="all"
-license="GPL-2.0-or-later"
+license="MIT"
makedepends="ncurses-dev geoip-dev glib-dev libmaxminddb-dev"
subpackages="$pkgname-doc $pkgname-lang"
source="https://tar.goaccess.io/goaccess-$pkgver.tar.gz"
@@ -29,8 +29,10 @@ build() {
package() {
make DESTDIR="$pkgdir" install
+
+ install -Dvm644 COPYING -t "$pkgdir"/usr/share/licenses/$pkgname/
}
sha512sums="
-9ede39be81ed523258431799029b7fceb96b7a962df16af75819effe7045d72bd70dd47bc226ce5561e28d3dd1739e6277a883c2acd8110eeb00cf67d4ec9293 goaccess-1.6.1.tar.gz
+138fbe1e5970e43a9f6ae1934eb016c4a2cccdfbbe237eb3b505ac2c3b9536e11de76fac82c8d22d6ee74168784227b2eb425f35a3bc65f6e93fa973f88b6c94 goaccess-1.9.2.tar.gz
"
diff --git a/main/gobject-introspection/APKBUILD b/main/gobject-introspection/APKBUILD
index 19d56d60fea..b154d28e675 100644
--- a/main/gobject-introspection/APKBUILD
+++ b/main/gobject-introspection/APKBUILD
@@ -1,29 +1,49 @@
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gobject-introspection
-pkgver=1.72.0
-pkgrel=0
+pkgver=1.80.1
+pkgrel=2
pkgdesc="Introspection system for GObject-based libraries"
url="https://wiki.gnome.org/action/show/Projects/GObjectIntrospection"
arch="all"
license="LGPL-2.0-or-later AND GPL-2.0-or-later AND MIT"
-depends_dev="python3 cairo-dev libtool"
-makedepends="$depends_dev glib-dev libffi-dev flex bison python3-dev meson"
+depends_dev="
+ cairo-dev
+ libtool
+ py3-setuptools
+ python3
+ "
+makedepends="$depends_dev
+ bison
+ flex
+ glib-dev
+ libffi-dev
+ meson
+ python3-dev
+ "
subpackages="$pkgname-doc $pkgname-dev"
replaces="libgirepository"
checkdepends="sed"
-source="https://download.gnome.org/sources/gobject-introspection/${pkgver%.*}/gobject-introspection-$pkgver.tar.xz
- musl-time64.patch
- "
+source="https://download.gnome.org/sources/gobject-introspection/${pkgver%.*}/gobject-introspection-$pkgver.tar.xz"
+
+case "$CARCH" in
+*)
+ # FIXME: the gir scan on
+ #define REGRESS_GOOD_EXPR_CONSTANT (1 + 2 * (3 + 2) << 3 - 4 >> REGRESS_ATEST_ERROR_CODE2)
+ # evaluates to 0 instead of -2305843009213693952
+ # so a test failes
+ # https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/458
+ options="$options !check"
+ ;;
+esac
build() {
- abuild-meson . output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ abuild-meson -Db_lto=true . output
+ meson compile -C output
}
check() {
- meson test --no-rebuild -v -C output
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
@@ -31,15 +51,11 @@ package() {
}
dev() {
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/share "$subpkgdir"/usr/
- mv "$pkgdir"/usr/lib/gobject-introspection "$subpkgdir"/usr/lib/
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+ amove usr/bin usr/share usr/lib/gobject-introspection
default_dev
replaces="gobject-introspection"
}
sha512sums="
-b8fba2bd12e93776c55228acf3487bef36ee40b1abdc7f681b827780ac94a8bfa1f59b0c30d60fa5a1fea2f610de78b9e52029f411128067808f17eb6374cdc5 gobject-introspection-1.72.0.tar.xz
-965649f0c50e5d6e424a765685533f4dcc776ade3b917e1d960242edbcb5c52f5c98556a1032b9515173b0c30a076964caeece3431b943029e1e3d2552136e77 musl-time64.patch
+f45c2c1b105086488d974c6134db9910746df8edb187772f2ecd249656a1047c8ac88ba51f5bf7393c3d99c3ace143ecd09be256c2f4d0ceee110c9ad51a839a gobject-introspection-1.80.1.tar.xz
"
diff --git a/main/gobject-introspection/musl-time64.patch b/main/gobject-introspection/musl-time64.patch
deleted file mode 100644
index e82b5e36534..00000000000
--- a/main/gobject-introspection/musl-time64.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-diff --git a/giscanner/ast.py b/giscanner/ast.py
-index 66fe0cf..e2f89cc 100644
-diff --git a/tests/scanner/Regress-1.0-expected.gir b/tests/scanner/Regress-1.0-expected.gir
-index cef3b12..abb09e2 100644
---- a/giscanner/ast.py
-+++ b/giscanner/ast.py
-@@ -346,7 +346,8 @@
- type_names['ssize_t'] = type_names['gssize']
- type_names['uintptr_t'] = type_names['guintptr']
- type_names['intptr_t'] = type_names['gintptr']
--type_names['time_t'] = TYPE_LONG
-+# musl libc 1.2 and newer uses 64 time_t for all arches
-+type_names['time_t'] = TYPE_INT64
- type_names['off_t'] = type_names['gsize']
- type_names['pid_t'] = TYPE_INT
- type_names['uid_t'] = TYPE_UINT
---- a/tests/scanner/Regress-1.0-expected.gir
-+++ b/tests/scanner/Regress-1.0-expected.gir
-@@ -2003,7 +2003,7 @@ uses a C sugar return type.</doc>
- <type name="FooObject" c:type="RegressFooObject*"/>
- </instance-parameter>
- <parameter name="time" transfer-ownership="none">
-- <type name="glong" c:type="time_t"/>
-+ <type name="gint64" c:type="time_t"/>
- </parameter>
- </parameters>
- </method>
-@@ -8381,11 +8381,11 @@ https://bugzilla.gnome.org/show_bug.cgi?id=685399</doc>
- <function name="test_timet" c:identifier="regress_test_timet">
- <source-position filename="regress.h" line="94"/>
- <return-value transfer-ownership="none">
-- <type name="glong" c:type="time_t"/>
-+ <type name="gint64" c:type="time_t"/>
- </return-value>
- <parameters>
- <parameter name="in" transfer-ownership="none">
-- <type name="glong" c:type="time_t"/>
-+ <type name="gint64" c:type="time_t"/>
- </parameter>
- </parameters>
- </function>
diff --git a/main/gperf/APKBUILD b/main/gperf/APKBUILD
index cb08f86fbde..2de55df8a1b 100644
--- a/main/gperf/APKBUILD
+++ b/main/gperf/APKBUILD
@@ -1,19 +1,15 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gperf
pkgver=3.1
-pkgrel=2
+pkgrel=4
pkgdesc="Perfect hash function generator."
url="https://www.gnu.org/software/gperf/"
arch="all"
-license="GPL-3.0+"
+license="GPL-3.0-or-later"
subpackages="$pkgname-doc"
-depends=
-makedepends=
-source="https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz"
+source="https://ftp.gnu.org/gnu/gperf/gperf-$pkgver.tar.gz"
-build ()
-{
- cd "$builddir"
+build() {
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -22,12 +18,11 @@ build ()
}
check() {
- cd "$builddir"
make -j1 check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
+
sha512sums="855ebce5ff36753238a44f14c95be7afdc3990b085960345ca2caf1a2db884f7db74d406ce9eec2f4a52abb8a063d4ed000a36b317c9a353ef4e25e2cca9a3f4 gperf-3.1.tar.gz"
diff --git a/main/gpm/APKBUILD b/main/gpm/APKBUILD
index 319f6e5c277..0e881668ca1 100644
--- a/main/gpm/APKBUILD
+++ b/main/gpm/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gpm
pkgver=1.20.7
-pkgrel=2
+pkgrel=4
pkgdesc="A mouse server for the console"
options="!check" # No testsuite
url="https://www.nico.schottelius.org/software/gpm/"
diff --git a/main/gpsd/APKBUILD b/main/gpsd/APKBUILD
index 068a711d165..b342d744690 100644
--- a/main/gpsd/APKBUILD
+++ b/main/gpsd/APKBUILD
@@ -5,13 +5,13 @@
# please do not move to community.
pkgname=gpsd
-pkgver=3.23.1
-pkgrel=0
+pkgver=3.25
+pkgrel=2
pkgdesc="GPS daemon"
arch="all"
-url="http://catb.org/gpsd/"
+url="https://gpsd.gitlab.io/gpsd/index.html"
license="BSD-2-Clause"
-makedepends="scons asciidoctor python3-dev libcap-dev ncurses-dev"
+makedepends="scons asciidoctor python3-dev libcap-dev ncurses-dev py3-setuptools"
subpackages="
$pkgname-dev
$pkgname-doc
@@ -23,8 +23,6 @@ source="https://download-mirror.savannah.gnu.org/releases/gpsd/gpsd-$pkgver.tar.
gpsd.initd
gpsd.confd"
-options="!check" # FIXME: tests fails
-
prepare() {
# We copy timepps.h to the local build directory instead of
# creating a pps-tools-dev package for ppstime.h
@@ -32,9 +30,13 @@ prepare() {
mkdir -p "$builddir"/sys
cp "$srcdir"/timepps.h "$builddir"/sys/
- # Hack to get scons to respect python
- ln -s /usr/bin/python3 python
- export PATH="$PATH:."
+ # x86 regression test fails for the Caterpillar GPS - 1e-9 error on lat or lon
+ # on 2 tests. Other platforms pass the test.
+ # reported upstream for 3.25 2023-02-06. For now delete that test
+ if [ "$CARCH" = "x86" ]; then
+ # rm "$builddir/test/daemon/cat*" does not work for some reason ...
+ find "$builddir/test/daemon" -name "cat*" -exec rm {} \;
+ fi
default_prepare
}
@@ -66,7 +68,7 @@ _py() {
mkdir -p "$subpkgdir"/usr/lib
# As of 3.18.1, gpsd wants to put the python stuff in /usr/local
mv "$pkgdir"/usr/local/lib/python* "$subpkgdir"/usr/lib/
- rm -rf "$pkgdir"/usr/local
+ rm -rf "${pkgdir:?}"/usr/local
mkdir -p "$subpkgdir"/usr/bin
for n in gpscat gpsfake gpsprof; do
@@ -82,8 +84,8 @@ _clients() {
}
sha512sums="
-fccfac363103282581e4ea8236ce40e4600a01f02489c1aaec721a13deac556bac046a3b76f8a5e21fe8c736056e872d8c7f2e4ed2d38a164323dd9738f00388 gpsd-3.23.1.tar.gz
-eb11fc19243d1789016d88eb7645bfe67c46304547781489bf36eb1dd4c252d523681ff835a6488fa0ef62b6b9e2f781c672279f4439f5d5640a3f214a113048 timepps.h
+0684cbd30defa1a328898589e1d61b2431462a774aff56c588bd00c1fbd92ac94cf6fc1f2b981debac78c34ab09fa24f48ed6334f3ecd09e6b8f5faa92ae1085 gpsd-3.25.tar.gz
+699b3652e9033d4deb62b61e4aee8845ecbf2fa257cfc6f821783878245fe9303caf657ab979afd2bd5d034de03837349e3f8f4221eb746280faa8060f2c3b7f timepps.h
f88940570cbed761495c3a13949428e873c2c3d112e8ac25d36dd3230ecf2171f67b0f429c37e593bb360dc1e5622fe9066e597880264561c81376ff42d1a818 gpsd.initd
75dbfe39eb900cc9587dd70794ee77ae2230765bbede47760ca227145aa3f2290b6995335ffcfeae6cd86f56b01ca87367548f4fbcf810aff1bc012b7416deef gpsd.confd
"
diff --git a/main/gpsd/timepps.h b/main/gpsd/timepps.h
index 8c3bd835d69..9694c7a4300 100644
--- a/main/gpsd/timepps.h
+++ b/main/gpsd/timepps.h
@@ -14,13 +14,14 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
- * Source: https://github.com/ago/pps-tools/ - Retreived Dec 2013
+ * Source: https://github.com/ago/pps-tools/ - Retreived 2022-09-03
*/
#ifndef _SYS_TIMEPPS_H_
#define _SYS_TIMEPPS_H_
#include <errno.h>
+#include <unistd.h>
#include <sys/time.h>
#include <sys/ioctl.h>
#include <linux/types.h>
@@ -117,7 +118,7 @@ static __inline int time_pps_getparams(pps_handle_t handle,
pps_params_t *ppsparams)
{
int ret;
- struct pps_kparams __ppsparams;
+ struct pps_kparams __ppsparams = {};
ret = ioctl(handle, PPS_GETPARAMS, &__ppsparams);
@@ -134,7 +135,7 @@ static __inline int time_pps_getparams(pps_handle_t handle,
static __inline int time_pps_setparams(pps_handle_t handle,
const pps_params_t *ppsparams)
{
- struct pps_kparams __ppsparams;
+ struct pps_kparams __ppsparams = {};
__ppsparams.api_version = ppsparams->api_version;
__ppsparams.mode = ppsparams->mode;
@@ -156,7 +157,7 @@ static __inline int time_pps_fetch(pps_handle_t handle, const int tsformat,
pps_info_t *ppsinfobuf,
const struct timespec *timeout)
{
- struct pps_fdata __fdata;
+ struct pps_fdata __fdata = {};
int ret;
/* Sanity checks */
@@ -168,7 +169,6 @@ static __inline int time_pps_fetch(pps_handle_t handle, const int tsformat,
if (timeout) {
__fdata.timeout.sec = timeout->tv_sec;
__fdata.timeout.nsec = timeout->tv_nsec;
- __fdata.timeout.flags = ~PPS_TIME_INVALID;
} else
__fdata.timeout.flags = PPS_TIME_INVALID;
@@ -191,7 +191,7 @@ static __inline int time_pps_kcbind(pps_handle_t handle,
const int kernel_consumer,
const int edge, const int tsformat)
{
- struct pps_bind_args __bind_args;
+ struct pps_bind_args __bind_args = {};
__bind_args.tsformat = tsformat;
__bind_args.edge = edge;
diff --git a/main/gptfdisk/0001-Fix-failure-crash-of-sgdisk-when-compiled-with-lates.patch b/main/gptfdisk/0001-Fix-failure-crash-of-sgdisk-when-compiled-with-lates.patch
deleted file mode 100644
index 5e1ab80c97e..00000000000
--- a/main/gptfdisk/0001-Fix-failure-crash-of-sgdisk-when-compiled-with-lates.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 5d5e76d369a412bfb3d2cebb5fc0a7509cef878d Mon Sep 17 00:00:00 2001
-From: Rod Smith <rodsmith@rodsbooks.com>
-Date: Fri, 15 Apr 2022 18:10:14 -0400
-Subject: [PATCH 1/2] Fix failure & crash of sgdisk when compiled with latest
- popt (commit 740; presumably eventually release 1.19)
-
----
- NEWS | 8 ++++++++
- gptcl.cc | 2 +-
- support.h | 2 +-
- 3 files changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/NEWS b/NEWS
-index c7add563bab2..9e153fd73b3b 100644
---- a/NEWS
-+++ b/NEWS
-@@ -1,3 +1,11 @@
-+1.0.10 (?/??/2022):
-+-------------------
-+
-+- Fixed problem that caused sgdisk to crash with errors about being unable
-+ to read the disk's partition table when compiled with the latest popt
-+ (commit 740, which is pre-release as I type; presumably version 1.19 and
-+ later once released).
-+
- 1.0.9 (4/14/2022):
- ------------------
-
-diff --git a/gptcl.cc b/gptcl.cc
-index 34c942100842..0d578ebf0034 100644
---- a/gptcl.cc
-+++ b/gptcl.cc
-@@ -155,7 +155,7 @@ int GPTDataCL::DoOptions(int argc, char* argv[]) {
- } // while
-
- // Assume first non-option argument is the device filename....
-- device = (char*) poptGetArg(poptCon);
-+ device = strdup((char*) poptGetArg(poptCon));
- poptResetContext(poptCon);
-
- if (device != NULL) {
-diff --git a/support.h b/support.h
-index 8ba9ad1aa896..f91f1bc8b1ed 100644
---- a/support.h
-+++ b/support.h
-@@ -8,7 +8,7 @@
- #include <stdlib.h>
- #include <string>
-
--#define GPTFDISK_VERSION "1.0.9"
-+#define GPTFDISK_VERSION "1.0.9.1"
-
- #if defined (__FreeBSD__) || defined (__FreeBSD_kernel__) || defined (__APPLE__)
- // Darwin (Mac OS) & FreeBSD: disk IOCTLs are different, and there is no lseek64
---
-2.35.1
-
diff --git a/main/gptfdisk/0002-Updated-guid.cc-to-deal-with-minor-change-in-libuuid.patch b/main/gptfdisk/0002-Updated-guid.cc-to-deal-with-minor-change-in-libuuid.patch
deleted file mode 100644
index db1554e2a08..00000000000
--- a/main/gptfdisk/0002-Updated-guid.cc-to-deal-with-minor-change-in-libuuid.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 6a8416cbd12d55f882bb751993b94f72d338d96f Mon Sep 17 00:00:00 2001
-From: Rod Smith <rodsmith@rodsbooks.com>
-Date: Sat, 16 Apr 2022 09:32:04 -0400
-Subject: [PATCH 2/2] Updated guid.cc to deal with minor change in libuuid
-
----
- NEWS | 2 ++
- guid.cc | 2 +-
- 2 files changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/NEWS b/NEWS
-index 9e153fd73b3b..9ec7e6365c50 100644
---- a/NEWS
-+++ b/NEWS
-@@ -6,6 +6,8 @@
- (commit 740, which is pre-release as I type; presumably version 1.19 and
- later once released).
-
-+- Updated guid.cc to deal with minor change in libuuid.
-+
- 1.0.9 (4/14/2022):
- ------------------
-
-diff --git a/guid.cc b/guid.cc
-index 1e73ab77d854..d3e4fd567dbf 100644
---- a/guid.cc
-+++ b/guid.cc
-@@ -141,7 +141,7 @@ void GUIDData::Zero(void) {
- void GUIDData::Randomize(void) {
- int i, uuidGenerated = 0;
-
--#ifdef _UUID_UUID_H
-+#if defined (_UUID_UUID_H) || defined (_UL_LIBUUID_UUID_H)
- uuid_generate(uuidData);
- ReverseBytes(&uuidData[0], 4);
- ReverseBytes(&uuidData[4], 2);
---
-2.35.1
-
diff --git a/main/gptfdisk/APKBUILD b/main/gptfdisk/APKBUILD
index fd74accc315..3f63c691243 100644
--- a/main/gptfdisk/APKBUILD
+++ b/main/gptfdisk/APKBUILD
@@ -1,18 +1,16 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gptfdisk
-pkgver=1.0.9
+pkgver=1.0.10
pkgrel=1
pkgdesc="Text-mode partitioning tool that works on Globally Unique Identifier (GUID) Partition Table (GPT) disks"
arch="all"
url="https://www.rodsbooks.com/gdisk"
-options="!check" # No test suite.
license="GPL-2.0-or-later"
makedepends="ncurses-dev e2fsprogs-dev popt-dev linux-headers"
subpackages="$pkgname-doc sgdisk"
source="https://downloads.sourceforge.net/project/gptfdisk/gptfdisk/$pkgver/gptfdisk-$pkgver.tar.gz
fix-wrong-include.patch
- 0001-Fix-failure-crash-of-sgdisk-when-compiled-with-lates.patch
- 0002-Updated-guid.cc-to-deal-with-minor-change-in-libuuid.patch
+ fix-musl.patch
"
# secfixes:
# 1.0.6-r0:
@@ -24,22 +22,22 @@ build() {
}
package() {
- mkdir -p "$pkgdir"/usr/bin "$pkgdir"/usr/share/man/man8
- local i; for i in gdisk cgdisk sgdisk fixparts; do
- install $i "$pkgdir"/usr/bin/
- install $i.8 "$pkgdir"/usr/share/man/man8/
- done
+ install -Dm0644 -t "$pkgdir"/usr/share/man/man8 ./*.8
+ install -Dm0755 -t "$pkgdir"/usr/bin gdisk cgdisk sgdisk fixparts
+}
+
+check() {
+ sh "$builddir"/gdisk_test.sh
}
sgdisk() {
pkgdesc="Command-line GUID partition table (GPT) manipulator"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/sgdisk "$subpkgdir"/usr/bin/
+
+ amove usr/bin/sgdisk
}
sha512sums="
-c2489ac7e196cb53b9fdb18d0e421571eca43c366de8922c5c7f550aadf192558e7af69b181c30747d6cf607c1670126223465eaa5e231cc589402d94a4e97a2 gptfdisk-1.0.9.tar.gz
+76764e176cd92470648a1d7a8d2570ebc41005204e73b0f2dd5a7aff2fc1981d3bec61a3bd68b855cc3474bcb7cf49c1cb2ea25843d4e7945bef7648d548383d gptfdisk-1.0.10.tar.gz
9b64c0e565137b4d4275bd6e8b050f98a73ff5593093b54d43736e6aabd24abf6e35d88ea27be17c5fee70aada4ad05a70fe5af3523212aad114f05aaf82356f fix-wrong-include.patch
-ebd680343cd7f559503156984f056f4b49cc3581c8c7f623c66c10bb79e1dd7ee9e217cbd0479ebe3b7bce3b34b85428bc3525aa354b76789e9bcbaf1000a889 0001-Fix-failure-crash-of-sgdisk-when-compiled-with-lates.patch
-fd2747714f854a2abaa5cbd113a9bf9eea3d8ee6c46e47dbe3246c9d3bebb621a2a7bc623827f6f44870133eb09b5b991ea73d03755fa0e2b9d73c5cea821f33 0002-Updated-guid.cc-to-deal-with-minor-change-in-libuuid.patch
+c85306ad9902d4c4f685c8fa5f6f4e1976d3036a4fc747cbc68403fa811a177a0d6ce29575c4d2dc03ccf9bcc44167dd5830eb8f548d9d55d2b6579ed1b4ffab fix-musl.patch
"
diff --git a/main/gptfdisk/fix-musl.patch b/main/gptfdisk/fix-musl.patch
new file mode 100644
index 00000000000..69c26f025b0
--- /dev/null
+++ b/main/gptfdisk/fix-musl.patch
@@ -0,0 +1,58 @@
+--- a/diskio-unix.cc
++++ b/diskio-unix.cc
+@@ -52,7 +52,7 @@
+ // work.
+ int DiskIO::OpenForRead(void) {
+ int shouldOpen = 1;
+- struct stat64 st;
++ struct stat st;
+
+ if (isOpen) { // file is already open
+ if (openForWrite) {
+@@ -78,7 +78,7 @@
+ } else {
+ isOpen = 0;
+ openForWrite = 0;
+- if (fstat64(fd, &st) == 0) {
++ if (fstat(fd, &st) == 0) {
+ if (S_ISDIR(st.st_mode))
+ cerr << "The specified path is a directory!\n";
+ #if !(defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) \
+@@ -311,7 +311,7 @@
+ // Note that seeking beyond the end of the file is NOT detected as a failure!
+ int DiskIO::Seek(uint64_t sector) {
+ int retval = 1;
+- off64_t seekTo, sought;
++ off_t seekTo, sought;
+
+ // If disk isn't open, try to open it....
+ if (!isOpen) {
+@@ -320,7 +320,7 @@
+
+ if (isOpen) {
+ seekTo = sector * (uint64_t) GetBlockSize();
+- sought = lseek64(fd, seekTo, SEEK_SET);
++ sought = lseek(fd, seekTo, SEEK_SET);
+ if (sought != seekTo) {
+ retval = 0;
+ } // if
+@@ -428,8 +428,8 @@
+ // return correct values for disk image files.
+ uint64_t DiskIO::DiskSize(int *err) {
+ uint64_t sectors = 0; // size in sectors
+- off64_t bytes = 0; // size in bytes
+- struct stat64 st;
++ off_t bytes = 0; // size in bytes
++ struct stat st;
+ int platformFound = 0;
+ #ifdef __sun__
+ struct dk_minfo minfo;
+@@ -488,7 +488,7 @@
+ // file (a QEMU image, dd backup, or what have you) and see what
+ // fstat() gives us....
+ if ((sectors == 0) || (*err == -1)) {
+- if (fstat64(fd, &st) == 0) {
++ if (fstat(fd, &st) == 0) {
+ bytes = st.st_size;
+ if ((bytes % UINT64_C(512)) != 0)
+ cerr << "Warning: File size is not a multiple of 512 bytes!"
diff --git a/main/graphene/APKBUILD b/main/graphene/APKBUILD
index 5396381effd..3c04d0fdd09 100644
--- a/main/graphene/APKBUILD
+++ b/main/graphene/APKBUILD
@@ -1,13 +1,14 @@
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=graphene
pkgver=1.10.8
-pkgrel=0
+pkgrel=4
pkgdesc="A thin layer of graphic data types"
url="http://ebassi.github.io/graphene/"
arch="all"
license="MIT"
makedepends="meson glib-dev gobject-introspection-dev"
+checkdepends="py3-gobject3"
subpackages="$pkgname-dev"
source="https://github.com/ebassi/graphene/archive/$pkgver/graphene-$pkgver.tar.gz
0001-meson-don-t-install-introspection-file-with-installe.patch
@@ -25,14 +26,15 @@ build() {
;;
esac
abuild-meson \
+ -Db_lto=true \
-Darm_neon=$_neon \
-Dinstalled_tests=false \
. output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
check() {
- meson test --no-rebuild -v -C output
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
diff --git a/main/graphite2/APKBUILD b/main/graphite2/APKBUILD
index e48501210c7..a79a1e102d7 100644
--- a/main/graphite2/APKBUILD
+++ b/main/graphite2/APKBUILD
@@ -3,14 +3,14 @@
pkgname=graphite2
_realname=${pkgname/2/}
pkgver=1.3.14
-pkgrel=1
+pkgrel=6
pkgdesc="reimplementation of the SIL Graphite text processing engine"
options="!check" # Testsuite requires graphite 1
url="https://graphite.sil.org/"
arch="all"
license="LGPL-2.1-or-later OR MPL-1.1"
depends_dev="freetype-dev"
-makedepends="$depends_dev cmake"
+makedepends="$depends_dev cmake samurai"
subpackages="$pkgname-static $pkgname-dev"
source="$pkgname-$pkgver.tar.gz::https://github.com/silnrsi/$_realname/archive/$pkgver.tar.gz
cmake.patch
@@ -23,38 +23,36 @@ build() {
# See https://github.com/silnrsi/graphite/pull/12#issuecomment-311756732
# shared
- mkdir build && cd build
- cmake -G "Unix Makefiles" .. \
- -DCMAKE_C_FLAGS:STRING="$CFLAGS" \
+ # they pass ndebug in release mode
+ CFLAGS="$CFLAGS -O2 -flto=auto -DNDEBUG" \
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto -DNDEBUG" \
+ cmake -B build-shared -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_SKIP_INSTALL_RPATH=ON \
-DGRAPHITE2_COMPARE_RENDERER=OFF \
- -DGRAPHITE2_NFILEFACE=ON
- make
+ -DGRAPHITE2_NFILEFACE=ON \
+ -DGRAPHITE2_VM_TYPE="direct"
+ cmake --build build-shared
# static
- cd ..
- mkdir build-static && cd build-static
- cmake -G "Unix Makefiles" .. \
- -DCMAKE_C_FLAGS:STRING="$CFLAGS" \
+ cmake -B build-static -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_BUILD_TYPE=None \
+ -DBUILD_SHARED_LIBS=OFF \
+ -DCMAKE_SKIP_INSTALL_RPATH=ON \
-DGRAPHITE2_COMPARE_RENDERER=OFF \
-DGRAPHITE2_NFILEFACE=ON \
- -DBUILD_SHARED_LIBS=OFF
- make
-}
-
-static() {
- pkgdesc="$pkgname static libraries"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$builddir"/build-static/src/libgraphite2.a "$subpkgdir"/usr/lib/
+ -DGRAPHITE2_VM_TYPE="direct"
+ cmake --build build-static
}
package() {
- cd "$builddir"/build
- make DESTDIR="$pkgdir/" install
+ DESTDIR="$pkgdir" cmake --install build-static
+ DESTDIR="$pkgdir" cmake --install build-shared
}
-sha512sums="49d127964d3f5c9403c7aecbfb5b18f32f25fe4919a81c49e0534e7123fe845423e16b0b8c8baaae21162b1150ab3e0f1c22c344e07d4364b6b8473c40a0822c graphite2-1.3.14.tar.gz
-729fb5ce0b012dca27cda10ec2b8cdf90029394915072f3a11ee4a3ec1b62aa5d810ca118a428419ac88d0dd316b07de557601d1ce079d3f96bfff4be271addb cmake.patch"
+sha512sums="
+49d127964d3f5c9403c7aecbfb5b18f32f25fe4919a81c49e0534e7123fe845423e16b0b8c8baaae21162b1150ab3e0f1c22c344e07d4364b6b8473c40a0822c graphite2-1.3.14.tar.gz
+729fb5ce0b012dca27cda10ec2b8cdf90029394915072f3a11ee4a3ec1b62aa5d810ca118a428419ac88d0dd316b07de557601d1ce079d3f96bfff4be271addb cmake.patch
+"
diff --git a/main/graphviz/0001-clone-nameclash.patch b/main/graphviz/0001-clone-nameclash.patch
deleted file mode 100644
index 51eecf6659d..00000000000
--- a/main/graphviz/0001-clone-nameclash.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From cb8bbbd3a48fa1f41965617852d11e02eb20b1f0 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Tue, 26 Jul 2011 12:41:21 +0000
-Subject: [PATCH] clone nameclash
-
----
- lib/gvpr/actions.c | 6 +++---
- lib/gvpr/actions.h | 2 +-
- lib/gvpr/compile.c | 2 +-
- lib/gvpr/gvpr.c | 4 ++--
- 4 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/lib/gvpr/actions.c b/lib/gvpr/actions.c
-index 05bfcd1..b3b4a60 100644
---- a/lib/gvpr/actions.c
-+++ b/lib/gvpr/actions.c
-@@ -367,7 +367,7 @@ Agraph_t *cloneG(Agraph_t * g, char* name)
- * graph. Otherwise, create a clone subgraph of g.
- * Assume obj != NULL.
- */
--Agobj_t *clone(Agraph_t * g, Agobj_t * obj)
-+Agobj_t *cloneO(Agraph_t * g, Agobj_t * obj)
- {
- Agobj_t *nobj = 0;
- Agedge_t *e;
-@@ -402,8 +402,8 @@ Agobj_t *clone(Agraph_t * g, Agobj_t * obj)
- case AGINEDGE:
- case AGOUTEDGE:
- e = (Agedge_t *) obj;
-- t = (Agnode_t *) clone(g, OBJ(agtail(e)));
-- h = (Agnode_t *) clone(g, OBJ(aghead(e)));
-+ t = (Agnode_t *) cloneO(g, OBJ(agtail(e)));
-+ h = (Agnode_t *) cloneO(g, OBJ(aghead(e)));
- name = agnameof (AGMKOUT(e));
- nobj = (Agobj_t *) openEdge(g, t, h, name);
- if (nobj)
-diff --git a/lib/gvpr/actions.h b/lib/gvpr/actions.h
-index 5c62a3b..4223c52 100644
---- a/lib/gvpr/actions.h
-+++ b/lib/gvpr/actions.h
-@@ -19,7 +19,7 @@
- #include <expr/expr.h>
-
- extern void nodeInduce(Agraph_t * selected);
-- extern Agobj_t *clone(Agraph_t * g, Agobj_t * obj);
-+ extern Agobj_t *cloneO(Agraph_t * g, Agobj_t * obj);
- extern Agraph_t *cloneG(Agraph_t * g, char* name);
- extern Agobj_t *copy(Agraph_t * g, Agobj_t * obj);
- extern int copyAttr(Agobj_t * obj, Agobj_t * obj1);
-diff --git a/lib/gvpr/compile.c b/lib/gvpr/compile.c
-index c157572..0914210 100644
---- a/lib/gvpr/compile.c
-+++ b/lib/gvpr/compile.c
-@@ -1152,7 +1152,7 @@
- error(ERROR_WARNING, "NULL object passed to clone()");
- v.integer = 0;
- } else
-- v.integer = ptr2int(clone(gp, objp));
-+ v.integer = ptr2int(cloneO(gp, objp));
- break;
- case F_cloneG:
- gp = int2ptr(args[0].integer);
-diff --git a/lib/gvpr/gvpr.c b/lib/gvpr/gvpr.c
-index 0d47d70..9a1bfd1 100644
---- a/lib/gvpr/gvpr.c
-+++ b/lib/gvpr/gvpr.c
-@@ -837,7 +837,7 @@ addOutputGraph (Gpr_t* state, gvpropts* uopts)
- Agraph_t* g = state->outgraph;
-
- if ((agroot(g) == state->curgraph) && !uopts->ingraphs)
-- g = (Agraph_t*)clone (0, (Agobj_t *)g);
-+ g = (Agraph_t*)cloneO (0, (Agobj_t *)g);
-
- uopts->n_outgraphs++;
- uopts->outgraphs = oldof(uopts->outgraphs,Agraph_t*,uopts->n_outgraphs,0);
-@@ -1031,7 +1031,7 @@ int gvpr (int argc, char *argv[], gvpropts * uopts)
-
- /* begin graph */
- if (incoreGraphs && (opts->compflags & CLONE))
-- state->curgraph = (Agraph_t*)clone (0, (Agobj_t*)(state->curgraph));
-+ state->curgraph = (Agraph_t*)cloneO (0, (Agobj_t*)(state->curgraph));
- state->curobj = (Agobj_t *) state->curgraph;
- state->tvroot = 0;
- if (bp->begg_stmt)
---
-1.7.6
-
diff --git a/main/graphviz/APKBUILD b/main/graphviz/APKBUILD
index e2409210716..00c672f6f8a 100644
--- a/main/graphviz/APKBUILD
+++ b/main/graphviz/APKBUILD
@@ -2,45 +2,73 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=graphviz
-pkgver=4.0.0
-pkgrel=0
+pkgver=9.0.0
+pkgrel=1
pkgdesc="Graph Visualization Tools"
url="https://www.graphviz.org/"
arch="all"
license="EPL-1.0"
+options="!check" # fixme: enable testsuite
_luaver=5.4
-depends_dev="zlib-dev libpng-dev libjpeg-turbo-dev expat-dev
- fontconfig-dev libsm-dev libxext-dev cairo-dev pango-dev
- gmp-dev freetype-dev python3-dev"
-makedepends="$depends_dev flex swig m4 libtool libxaw-dev bison lua$_luaver-dev
- libltdl tcl autoconf automake bash"
+depends_dev="
+ cairo-dev
+ expat-dev
+ fontconfig-dev
+ freetype-dev
+ gd-dev
+ gmp-dev
+ libjpeg-turbo-dev
+ libpng-dev
+ libsm-dev
+ libxext-dev
+ pango-dev
+ python3-dev
+ zlib-dev
+ "
+makedepends="
+ $depends_dev
+ bison
+ flex
+ libltdl
+ libxaw-dev
+ lua$_luaver-dev
+ m4
+ swig
+ tcl
+ "
install="$pkgname.pre-deinstall"
triggers="$pkgname.trigger=/usr/lib/graphviz"
-subpackages="$pkgname-dev $pkgname-doc py3-gv:_py3 lua$_luaver-$pkgname:_lua
- $pkgname-graphs::noarch"
-source="https://gitlab.com/graphviz/graphviz/-/archive/$pkgver/graphviz-$pkgver.tar.gz
- 0001-clone-nameclash.patch
+subpackages="
+ $pkgname-dev
+ $pkgname-libs
+ $pkgname-doc
+ py3-gv:_py3
+ lua$_luaver-$pkgname:_lua
+ $pkgname-graphs::noarch
"
+source="$pkgname-$pkgver.tar.xz::https://gitlab.com/api/v4/projects/4207231/packages/generic/graphviz-releases/$pkgver/graphviz-$pkgver.tar.xz"
# secfixes:
# 2.46.0-r0:
# - CVE-2020-18032
prepare() {
- default_prepare
- ./autogen.sh NOCONFIG
+ default_prepare
+ update_config_sub
}
build() {
- CONFIG_SHELL=/bin/bash \
LIBPOSTFIX=/ \
LUA=lua$_luaver \
lua_suffix=$_luaver \
+ CFLAGS="$CFLAGS -O2 -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--sysconfdir=/etc \
+ --disable-python \
--disable-silent-rules \
--disable-static \
--disable-dependency-tracking \
@@ -54,29 +82,25 @@ build() {
--enable-ocaml=no \
--enable-perl=no \
--enable-php=no \
- --enable-python=yes \
+ --enable-python3 \
--enable-r=no \
--enable-ruby=no \
--enable-tcl=no \
--without-included-ltdl \
- --with-x \
- --with-rsvg=yes \
- --with-pangocairo=yes \
--with-gdk-pixbuf=yes \
- --with-libgd=no \
- --with-ipsepcola=yes
-
- if [ "$CARCH" = "x86_64" ]; then
- # the configure script thinks we have sincos. we dont.
- sed -i -e '/HAVE_SINCOS/d' config.h
- fi
+ --with-ipsepcola=yes \
+ --with-jpeg \
+ --with-libgd=yes \
+ --with-pangocairo=yes \
+ --with-rsvg=yes \
+ --with-x
make
}
package() {
# Install has race conditions...
- make -j1 DESTDIR="$pkgdir" \
+ make DESTDIR="$pkgdir" \
pkgconfigdir=/usr/lib/pkgconfig \
install
}
@@ -85,11 +109,8 @@ _py3() {
pkgdesc="Python3 extension for graphviz"
depends="python3"
- mkdir -p "$subpkgdir"/usr/lib/graphviz \
- "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/graphviz/python3* \
- "$subpkgdir"/usr/lib/graphviz
- mv "$pkgdir"/usr/lib/python3* "$subpkgdir"/usr/lib/
+ amove usr/lib/graphviz/python3* \
+ usr/lib/python3*
}
_lua() {
@@ -97,22 +118,17 @@ _lua() {
provides="lua-$pkgname=$pkgver-r$pkgrel" # for backward compatibility
replaces="lua-$pkgname" # for backward compatibility
- mkdir -p "$subpkgdir"/usr/lib/graphviz \
- "$subpkgdir"/usr/lib/lua
- mv "$pkgdir"/usr/lib/graphviz/lua \
- "$subpkgdir"/usr/lib/graphviz/
+ mkdir -p "$subpkgdir"/usr/lib/lua
mv "$pkgdir"/usr/lib/lua "$subpkgdir"/usr/lib/lua/$_luaver
+ amove usr/lib/graphviz/lua
}
graphs() {
pkgdesc="Demo graphs for graphviz"
- mkdir -p "$subpkgdir"/usr/share/graphviz
- mv "$pkgdir"/usr/share/graphviz/graphs \
- "$subpkgdir"/usr/share/graphviz/
+ amove usr/share/graphviz/graphs
}
sha512sums="
-5a0211229f3b79b96a69de8651ace06e22ef62752e7e94c1d9dfc93eaa0759a956f72b5b1f4655d9265da799867438512ba6108a12ea3cea40dc5b686e41006b graphviz-4.0.0.tar.gz
-5a6feef04c79be1d019d3abc297d0084de2e3aed88d03ca3adc547b712e3f70ea4d6d945431bdbed1e1c72663b052e75f2b4e76453f9d9d24dfcfa26d06e2794 0001-clone-nameclash.patch
+912f31a4a90e21de9601ffcf8a85d2650d46f07e61aeb0e5124e5a91c67f444d08d40d49f15f2e4078d53d01fb9ca6f54dc9d18c1c08406da91b8ba9ad61416c graphviz-9.0.0.tar.xz
"
diff --git a/main/grep/APKBUILD b/main/grep/APKBUILD
index d60a66f98ce..d58d5bbc59b 100644
--- a/main/grep/APKBUILD
+++ b/main/grep/APKBUILD
@@ -1,27 +1,19 @@
# Contributor: Michael Mason <ms13sp@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=grep
-pkgver=3.7
+pkgver=3.11
pkgrel=0
pkgdesc="Searches input files for lines containing a match to a specified pattern"
url="https://www.gnu.org/software/grep/grep.html"
arch="all"
license="GPL-3.0-or-later"
-makedepends="pcre-dev autoconf automake"
+makedepends="pcre2-dev autoconf automake"
checkdepends="coreutils bash diffutils"
subpackages="$pkgname-doc"
-source="https://mirrors.kernel.org/gnu/grep/grep-$pkgver.tar.xz
- fix-tests.patch"
-# for whatever reason, all the builders locked up in the testsuite. investigate later.
-options="!check"
-
-prepare() {
- default_prepare
- sed -i '/test-localename$(EXEEXT)/d' \
- "$builddir"/gnulib-tests/Makefile.in
-}
+source="https://mirrors.kernel.org/gnu/grep/grep-$pkgver.tar.xz"
build() {
+ CFLAGS="$CFLAGS -flto=auto"\
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -35,17 +27,15 @@ build() {
}
check() {
- make -C "$builddir" check
+ make check || {
+ cat tests/test-suite.log
+ }
}
package() {
make DESTDIR="$pkgdir" install
-
- rm -rf "$pkgdir"/usr/lib/charset.alias
- rmdir -p "$pkgdir"/usr/lib 2>/dev/null || true
}
sha512sums="
-e9e45dcd40af8367f819f2b93c5e1b4e98a251a9aa251841fa67a875380fae52cfa27c68c6dbdd6a4dde1b1017ee0f6b9833ef6dd6e419d32d71b6df5e972b82 grep-3.7.tar.xz
-9ba6b01c0c74933299afb469dadd2ea0c7e24befa34c691671a576063e32a1f0c735541e5e2bb0073d8afd814790909f7f895827aa8a2fbacdfcae380a7bcb11 fix-tests.patch
+f254a1905a08c8173e12fbdd4fd8baed9a200217fba9d7641f0d78e4e002c1f2a621152d67027d9b25f0bb2430898f5233dc70909d8464fd13d7dd9298e65c42 grep-3.11.tar.xz
"
diff --git a/main/grep/fix-tests.patch b/main/grep/fix-tests.patch
deleted file mode 100644
index cb29457147f..00000000000
--- a/main/grep/fix-tests.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-diff -upr grep-3.1.orig/tests/pcre-jitstack grep-3.1/tests/pcre-jitstack
---- grep-3.1.orig/tests/pcre-jitstack 2017-11-29 01:48:08.772121987 +0100
-+++ grep-3.1/tests/pcre-jitstack 2017-11-29 01:49:37.763570125 +0100
-@@ -25,7 +25,7 @@ foo=$( (echo foo | gzip | gzip -d) 2>/de
-
- fail=0
-
--b64_decode >pcrejit.txt.gz <<'EOF' || framework_failure_
-+cat <<EOF
- H4sIAAAAAAACA+2bUU4DMQxE/7mMz5T7XwKE+IBKVLue58yk0B9EtX6xJxN7t4VaH69a6+tHrW+/
- r4e3n75KARWShSOFTtiumE3FPVyo79ATIJ0Ry0No/yXe99UIUqTGKKUzYHFJHJoaCONQDCnDSCDS
- IPAvGCVeXNsZ7lpbWFfdaZtgPos5LeK2C1TBKzD09V3HFlCOsbFT/hNbz4HzJaRjnjdam9FXw/o6
-@@ -36,7 +36,9 @@ uSHRnTkzIdZMmZ5kYX/iJFtTwu9cFvr3aDWcUx4p
- dkcKkYUglER2Q4L4gnmOiNGzSBATwGQgwihs5/QffIhyfg4hJvM2r4Rp6L+1ibCCd4jYZ6jCiBlc
- 2+y4fl4yTGIwcWXNAUEeXmu8iCMV96DNTnmRNICDk2N5qaXGbsF91OX/0hlcYTjrMfy02p9Xv70D
- mv3RZCFOAAA=
--EOF
-+EOF > pcrejit.tmp.txt
-+
-+b64_decode < pcrejit.tmp.txt > pcrejit.txt.gz || framework_failure_
-
- gzip -d pcrejit.txt || framework_failure_
-
diff --git a/main/groff/APKBUILD b/main/groff/APKBUILD
index ab059d88597..06b87d36c02 100644
--- a/main/groff/APKBUILD
+++ b/main/groff/APKBUILD
@@ -1,49 +1,42 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=groff
-pkgver=1.22.4
-pkgrel=1
+pkgver=1.23.0
+pkgrel=2
pkgdesc="GNU troff text-formatting system"
url="https://www.gnu.org/software/groff/groff.html"
arch="all"
license="GPL-3.0-or-later"
-makedepends="perl bison zlib-dev texinfo"
+depends="perl"
+makedepends="bison zlib-dev texinfo"
checkdepends="diffutils"
subpackages="$pkgname-doc"
-source="https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz
- site.tmac
+source="https://ftp.gnu.org/gnu/groff/groff-$pkgver.tar.gz
"
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--without-x \
--disable-rpath
- # work around parallel build issue
- make arch/misc && make
+ make
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
rm -rf "$pkgdir"/usr/lib/charset.alias
rmdir -p "$pkgdir"/usr/lib 2>/dev/null || true
- for f in man mdoc; do
- cat ${srcdir}/site.tmac >> \
- ${pkgdir}/usr/share/groff/site-tmac/${f}.local
- done
# Prevent conflict with mandoc-doc
rm -f "$pkgdir"/usr/share/man/man1/soelim.1 \
"$pkgdir"/usr/share/man/man7/roff.7
}
-sha512sums="1c42d3cd71efaf067b5850945d9097fa1f0fadd5e2b6ba7446bd9d4f439fe1ad058e4ddb0d4e0f503682137dfc7c822944ce1e3e5cf981673f8ba197ea77126d groff-1.22.4.tar.gz
-f6818f17fdfc76bfecc90c225b0173dabe2be0fe04058869d09556a22cb2c44545a51fa668f69d1843fe2d2344b978367da61189d65b27eed39dcbb9d7a12309 site.tmac"
+sha512sums="
+eff473fd1d0e6b27527318452ef2b7c6c7aba0b1c27fc529036496eccba5717f3639df0b81a297a57f700e27543196d7086b15e43d7e3c7bf075f95feb7f4089 groff-1.23.0.tar.gz
+"
diff --git a/main/groff/site.tmac b/main/groff/site.tmac
deleted file mode 100644
index cf0ef61d634..00000000000
--- a/main/groff/site.tmac
+++ /dev/null
@@ -1,17 +0,0 @@
-.
-.if n \{\
-. \" Character translations for non-keyboard
-. \" characters - to make them searchable
-. if '\*[.T]'utf8' \{\
-. char \- \N'45'
-. char - \N'45'
-. char ' \N'39'
-. char \' \N'39'
-. \}
-.
-. \" Shut off SGR by default (groff colors)
-. \" Require GROFF_SGR envvar defined to turn it on
-. if '\V[GROFF_SGR]'' \
-. output x X tty: sgr 0
-.\}
-
diff --git a/main/gross/APKBUILD b/main/gross/APKBUILD
index 60f688cf1e8..e587d6a5c83 100644
--- a/main/gross/APKBUILD
+++ b/main/gross/APKBUILD
@@ -1,23 +1,23 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gross
-pkgver=1.0.2
-pkgrel=12
+pkgver=1.0.4
+pkgrel=0
pkgdesc="Greylisting of suspicious sources"
-url="https://code.google.com/p/gross/"
+url="https://codeberg.org/bizdelnick/gross"
arch="all"
-license="BSD"
+license="BSD-3-Clause"
makedepends="c-ares-dev autoconf automake libtool sed"
install="$pkgname.pre-install $pkgname.pre-upgrade
$pkgname.post-upgrade"
-subpackages="$pkgname-doc $pkgname-dev"
-source="https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/gross/gross-$pkgver.tar.gz
+subpackages="$pkgname-doc $pkgname-dev $pkgname-openrc"
+source="https://codeberg.org/bizdelnick/gross/releases/download/v$pkgver/gross-$pkgver.tar.xz
grossd.initd
grossd.confd
gross-1.0.1-default-conf.patch
gross-grey_tuple.patch
- fix-shadow-declaration.patch"
-builddir="$srcdir/$pkgname-$pkgver"
+ "
+options="!check"
prepare() {
update_config_sub
@@ -44,10 +44,9 @@ package() {
}
sha512sums="
-fefeef9ec37747c7cbab8323aa4761e36352641bf314fd8fd98ac4e4d5890c5cf7c0858207d7d35a197cc0cad645a12e22b356575dd5f2c4eb4eac033636a2d2 gross-1.0.2.tar.gz
+28126ed65ca82b9826b04f6210a95865fc514b924c0f14123e822923d2ce44f2c5c80d41f5b23c3ff845f9734a8e6ca3424fa165e7955d0fa99d52ae45bb30ea gross-1.0.4.tar.xz
8784cd056372dced708b561548f71f24177b302efe2256626a6bb9b91374ae783be1c4d844b6f38af4b03f370b0c8c803ab9ce2f07855e630f98b585e0f65dc9 grossd.initd
d9f8b74d13e0d3f0e2dfe20e1b7a6e50e91e81c9769d3e1afe3370edf66da5827d3b24f369216370f426a0a242a797a470408831b2cf4e880d4f17d1611a065d grossd.confd
90d80c1a68f71f671c19187dccaee9d475d92925a947d25e68c277b0c52f43e0e4b37c1d8f063a2ef155daa93d8f60fc19e3692f0193a9662670d47e425f37d4 gross-1.0.1-default-conf.patch
5561d46da4848b56d9bb38aa857fe584d7c35a0c432005430b25a2280ca320c70ae8a92bb2718243198345d2919d8eb3d04fb24056c404a648a17a9a6b564c94 gross-grey_tuple.patch
-2a66db84af5d26291eaddb287bce1dddaa461f30792637b6efcebeb3c45f1e72e5f8beb0837bc4a5ddd330c59d4f2db4a58e5cd398164ad6481db27817f1ad15 fix-shadow-declaration.patch
"
diff --git a/main/gross/fix-shadow-declaration.patch b/main/gross/fix-shadow-declaration.patch
deleted file mode 100644
index 9b70a61ca1d..00000000000
--- a/main/gross/fix-shadow-declaration.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- gross-1.0.2.orig/include/utils.h
-+++ gross-1.0.2/include/utils.h
-@@ -39,7 +39,9 @@
- #endif /* ! USE_GETTIMEOFDAY */
-
- int readline(int fd, void *vptr, size_t maxlen);
-+#if 0
- int getline(int fd, char *line, size_t maxlen);
-+#endif
- ssize_t readn(int fd, void *vptr, size_t n);
- ssize_t writen(int fd, const void *vptr, size_t n);
- ssize_t writeline(int fd, const char *line);
-
diff --git a/main/grub/0001-Fix-grub-mkconfig-detection-of-linux-edge-virt.patch b/main/grub/0001-Fix-grub-mkconfig-detection-of-linux-edge-virt.patch
new file mode 100644
index 00000000000..8f605060c30
--- /dev/null
+++ b/main/grub/0001-Fix-grub-mkconfig-detection-of-linux-edge-virt.patch
@@ -0,0 +1,43 @@
+8d370d5bd81c8467878cf88be24938a33efc06bf Fix grub-mkconfig detection of linux-edge-virt
+ util/grub.d/10_linux.in | 2 +-
+ util/grub.d/20_linux_xen.in | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
+index a694050df..4e5f71f0b 100644
+--- a/util/grub.d/10_linux.in
++++ b/util/grub.d/10_linux.in
+@@ -210,7 +210,7 @@ while [ "x$list" != "x" ] ; do
+ basename=`basename $linux`
+ dirname=`dirname $linux`
+ rel_dirname=`make_system_path_relative_to_its_root $dirname`
+- version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
++ version=`echo $basename | sed -e "s,^[^-]*-,,g"`
+ alt_version=`echo $version | sed -e "s,\.old$,,g"`
+ linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
+
+diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in
+index b6ea5bbd1..15319fe06 100644
+--- a/util/grub.d/20_linux_xen.in
++++ b/util/grub.d/20_linux_xen.in
+@@ -184,7 +184,7 @@ linux_list=
+ for i in /boot/vmlinu[xz]-* /vmlinu[xz]-* /boot/kernel-*; do
+ if grub_file_is_not_garbage "$i"; then
+ basename=$(basename $i)
+- version=$(echo $basename | sed -e "s,^[^0-9]*-,,g")
++ version=$(echo $basename | sed -e "s,^[^-]*-,,g")
+ dirname=$(dirname $i)
+ config=
+ for j in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do
+@@ -290,7 +290,7 @@ while [ "x${xen_list}" != "x" ] ; do
+ basename=`basename $linux`
+ dirname=`dirname $linux`
+ rel_dirname=`make_system_path_relative_to_its_root $dirname`
+- version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
++ version=`echo $basename | sed -e "s,^[^-]*-,,g"`
+ alt_version=`echo $version | sed -e "s,\.old$,,g"`
+ linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
+
+--
+2.39.2
+
diff --git a/main/grub/0001-loader-drop-argv-argument-in-grub_initrd_load.patch b/main/grub/0001-loader-drop-argv-argument-in-grub_initrd_load.patch
deleted file mode 100644
index 2d995092c27..00000000000
--- a/main/grub/0001-loader-drop-argv-argument-in-grub_initrd_load.patch
+++ /dev/null
@@ -1,178 +0,0 @@
-From ba4a2d6979abbc42d22b64676e00652b7a88889d Mon Sep 17 00:00:00 2001
-From: Nikita Ermakov <arei@altlinux.org>
-Date: Thu, 3 Jun 2021 00:12:29 +0300
-Subject: [PATCH 1/7] loader: drop argv[] argument in grub_initrd_load()
-
-In the case of an error grub_initrd_load() uses argv[] to print the
-filename that caused the error. It is also possible to obtain the
-filename from the file handles and there is no need to duplicate that
-information in argv[], so let's drop it.
-
-Signed-off-by: Nikita Ermakov <arei@altlinux.org>
----
- grub-core/loader/arm/linux.c | 2 +-
- grub-core/loader/arm64/linux.c | 2 +-
- grub-core/loader/i386/linux.c | 2 +-
- grub-core/loader/i386/pc/linux.c | 2 +-
- grub-core/loader/i386/xen.c | 3 +--
- grub-core/loader/ia64/efi/linux.c | 2 +-
- grub-core/loader/linux.c | 4 ++--
- grub-core/loader/mips/linux.c | 2 +-
- grub-core/loader/powerpc/ieee1275/linux.c | 2 +-
- grub-core/loader/sparc64/ieee1275/linux.c | 2 +-
- include/grub/linux.h | 2 +-
- 11 files changed, 12 insertions(+), 13 deletions(-)
-
-diff --git a/grub-core/loader/arm/linux.c b/grub-core/loader/arm/linux.c
-index ed23dc71e..1f7ab7578 100644
---- a/grub-core/loader/arm/linux.c
-+++ b/grub-core/loader/arm/linux.c
-@@ -422,7 +422,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
- grub_dprintf ("loader", "Loading initrd to 0x%08x\n",
- (grub_addr_t) initrd_start);
-
-- if (grub_initrd_load (&initrd_ctx, argv, (void *) initrd_start))
-+ if (grub_initrd_load (&initrd_ctx, (void *) initrd_start))
- goto fail;
-
- initrd_end = initrd_start + size;
-diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c
-index ef3e9f944..aed7a200b 100644
---- a/grub-core/loader/arm64/linux.c
-+++ b/grub-core/loader/arm64/linux.c
-@@ -266,7 +266,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
- goto fail;
- }
-
-- if (grub_initrd_load (&initrd_ctx, argv, initrd_mem))
-+ if (grub_initrd_load (&initrd_ctx, initrd_mem))
- goto fail;
-
- initrd_start = (grub_addr_t) initrd_mem;
-diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c
-index 9f74a96b1..f30a1586a 100644
---- a/grub-core/loader/i386/linux.c
-+++ b/grub-core/loader/i386/linux.c
-@@ -1107,7 +1107,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
- initrd_mem_target = get_physical_target_address (ch);
- }
-
-- if (grub_initrd_load (&initrd_ctx, argv, initrd_mem))
-+ if (grub_initrd_load (&initrd_ctx, initrd_mem))
- goto fail;
-
- grub_dprintf ("linux", "Initrd, addr=0x%x, size=0x%x\n",
-diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c
-index 2a2995201..efeeeb206 100644
---- a/grub-core/loader/i386/pc/linux.c
-+++ b/grub-core/loader/i386/pc/linux.c
-@@ -462,7 +462,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
- initrd_addr = get_physical_target_address (ch);
- }
-
-- if (grub_initrd_load (&initrd_ctx, argv, initrd_chunk))
-+ if (grub_initrd_load (&initrd_ctx, initrd_chunk))
- goto fail;
-
- lh->ramdisk_image = initrd_addr;
-diff --git a/grub-core/loader/i386/xen.c b/grub-core/loader/i386/xen.c
-index cd24874ca..3b856e842 100644
---- a/grub-core/loader/i386/xen.c
-+++ b/grub-core/loader/i386/xen.c
-@@ -809,8 +809,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
- if (err)
- goto fail;
-
-- if (grub_initrd_load (&initrd_ctx, argv,
-- get_virtual_current_address (ch)))
-+ if (grub_initrd_load (&initrd_ctx, get_virtual_current_address (ch)))
- goto fail;
- }
-
-diff --git a/grub-core/loader/ia64/efi/linux.c b/grub-core/loader/ia64/efi/linux.c
-index 7987fd1ba..8873b7a55 100644
---- a/grub-core/loader/ia64/efi/linux.c
-+++ b/grub-core/loader/ia64/efi/linux.c
-@@ -563,7 +563,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
- grub_dprintf ("linux", "[addr=0x%lx, size=0x%lx]\n",
- (grub_uint64_t) initrd_mem, initrd_size);
-
-- if (grub_initrd_load (&initrd_ctx, argv, initrd_mem))
-+ if (grub_initrd_load (&initrd_ctx, initrd_mem))
- goto fail;
- fail:
- grub_initrd_close (&initrd_ctx);
-diff --git a/grub-core/loader/linux.c b/grub-core/loader/linux.c
-index 3fe390f17..d19df670e 100644
---- a/grub-core/loader/linux.c
-+++ b/grub-core/loader/linux.c
-@@ -271,7 +271,7 @@ grub_initrd_close (struct grub_linux_initrd_context *initrd_ctx)
-
- grub_err_t
- grub_initrd_load (struct grub_linux_initrd_context *initrd_ctx,
-- char *argv[], void *target)
-+ void *target)
- {
- grub_uint8_t *ptr = target;
- int i;
-@@ -317,7 +317,7 @@ grub_initrd_load (struct grub_linux_initrd_context *initrd_ctx,
- {
- if (!grub_errno)
- grub_error (GRUB_ERR_FILE_READ_ERROR, N_("premature end of file %s"),
-- argv[i]);
-+ initrd_ctx->components[i].file->name);
- grub_initrd_close (initrd_ctx);
- return grub_errno;
- }
-diff --git a/grub-core/loader/mips/linux.c b/grub-core/loader/mips/linux.c
-index e4ed95921..94594721d 100644
---- a/grub-core/loader/mips/linux.c
-+++ b/grub-core/loader/mips/linux.c
-@@ -452,7 +452,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
- initrd_dest = get_physical_target_address (ch) | 0x80000000;
- }
-
-- if (grub_initrd_load (&initrd_ctx, argv, initrd_src))
-+ if (grub_initrd_load (&initrd_ctx, initrd_src))
- goto fail;
-
- #ifdef GRUB_MACHINE_MIPS_QEMU_MIPS
-diff --git a/grub-core/loader/powerpc/ieee1275/linux.c b/grub-core/loader/powerpc/ieee1275/linux.c
-index 818b2a86d..a51e7a786 100644
---- a/grub-core/loader/powerpc/ieee1275/linux.c
-+++ b/grub-core/loader/powerpc/ieee1275/linux.c
-@@ -363,7 +363,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
-
- grub_dprintf ("loader", "Loading initrd at 0x%x, size 0x%x\n", addr, size);
-
-- if (grub_initrd_load (&initrd_ctx, argv, (void *) addr))
-+ if (grub_initrd_load (&initrd_ctx, (void *) addr))
- goto fail;
-
- initrd_addr = addr;
-diff --git a/grub-core/loader/sparc64/ieee1275/linux.c b/grub-core/loader/sparc64/ieee1275/linux.c
-index bb47ee0cc..ac2206f3c 100644
---- a/grub-core/loader/sparc64/ieee1275/linux.c
-+++ b/grub-core/loader/sparc64/ieee1275/linux.c
-@@ -413,7 +413,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
- grub_dprintf ("loader", "Loading initrd at vaddr 0x%lx, paddr 0x%lx, size 0x%lx\n",
- addr, paddr, size);
-
-- if (grub_initrd_load (&initrd_ctx, argv, (void *) addr))
-+ if (grub_initrd_load (&initrd_ctx, (void *) addr))
- goto fail;
-
- initrd_addr = addr;
-diff --git a/include/grub/linux.h b/include/grub/linux.h
-index 594a3f307..a96ac2048 100644
---- a/include/grub/linux.h
-+++ b/include/grub/linux.h
-@@ -21,4 +21,4 @@ grub_initrd_close (struct grub_linux_initrd_context *initrd_ctx);
-
- grub_err_t
- grub_initrd_load (struct grub_linux_initrd_context *initrd_ctx,
-- char *argv[], void *target);
-+ void *target);
---
-2.33.0
-
diff --git a/main/grub/0002-efi-add-definition-of-LoadFile2-protocol.patch b/main/grub/0002-efi-add-definition-of-LoadFile2-protocol.patch
deleted file mode 100644
index 7ee8e3d86bf..00000000000
--- a/main/grub/0002-efi-add-definition-of-LoadFile2-protocol.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 54139ad5b7b30b408b925235383f453cb2dbb776 Mon Sep 17 00:00:00 2001
-From: Ard Biesheuvel <ard.biesheuvel@arm.com>
-Date: Thu, 3 Jun 2021 00:12:30 +0300
-Subject: [PATCH 2/7] efi: add definition of LoadFile2 protocol
-
-Incorporate the EFI_LOAD_FILE2_PROTOCOL GUID and C types from the
-UEFI spec.
-
-Signed-off-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
-Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
-Signed-off-by: Nikita Ermakov <arei@altlinux.org>
----
- grub-core/commands/efi/lsefi.c | 1 +
- include/grub/efi/api.h | 15 +++++++++++++++
- 2 files changed, 16 insertions(+)
-
-diff --git a/grub-core/commands/efi/lsefi.c b/grub-core/commands/efi/lsefi.c
-index d1ce99af4..4085f5df2 100644
---- a/grub-core/commands/efi/lsefi.c
-+++ b/grub-core/commands/efi/lsefi.c
-@@ -55,6 +55,7 @@ struct known_protocol
- { GRUB_EFI_ABSOLUTE_POINTER_PROTOCOL_GUID, "absolute pointer" },
- { GRUB_EFI_DRIVER_BINDING_PROTOCOL_GUID, "EFI driver binding" },
- { GRUB_EFI_LOAD_FILE_PROTOCOL_GUID, "load file" },
-+ { GRUB_EFI_LOAD_FILE2_PROTOCOL_GUID, "load file2" },
- { GRUB_EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID, "simple FS" },
- { GRUB_EFI_TAPE_IO_PROTOCOL_GUID, "tape I/O" },
- { GRUB_EFI_UNICODE_COLLATION_PROTOCOL_GUID, "unicode collation" },
-diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h
-index f1a52210c..3de0a7d12 100644
---- a/include/grub/efi/api.h
-+++ b/include/grub/efi/api.h
-@@ -149,6 +149,11 @@
- { 0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B } \
- }
-
-+#define GRUB_EFI_LOAD_FILE2_PROTOCOL_GUID \
-+ { 0x4006c0c1, 0xfcb3, 0x403e, \
-+ { 0x99, 0x6d, 0x4a, 0x6c, 0x87, 0x24, 0xe0, 0x6d } \
-+ }
-+
- #define GRUB_EFI_SIMPLE_FILE_SYSTEM_PROTOCOL_GUID \
- { 0x0964e5b22, 0x6459, 0x11d2, \
- { 0x8e, 0x39, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b } \
-@@ -1729,6 +1734,16 @@ struct grub_efi_rng_protocol
- };
- typedef struct grub_efi_rng_protocol grub_efi_rng_protocol_t;
-
-+struct grub_efi_load_file2
-+{
-+ grub_efi_status_t (*load_file)(struct grub_efi_load_file2 *this,
-+ grub_efi_device_path_t *file_path,
-+ grub_efi_boolean_t boot_policy,
-+ grub_efi_uintn_t *buffer_size,
-+ void *buffer);
-+};
-+typedef struct grub_efi_load_file2 grub_efi_load_file2_t;
-+
- #if (GRUB_TARGET_SIZEOF_VOID_P == 4) || defined (__ia64__) \
- || defined (__aarch64__) || defined (__MINGW64__) || defined (__CYGWIN__) \
- || defined(__riscv)
---
-2.33.0
-
diff --git a/main/grub/0002-ensure-grub-mkconfig-ignores-.apk-new-files.patch b/main/grub/0002-ensure-grub-mkconfig-ignores-.apk-new-files.patch
new file mode 100644
index 00000000000..13b30d7466f
--- /dev/null
+++ b/main/grub/0002-ensure-grub-mkconfig-ignores-.apk-new-files.patch
@@ -0,0 +1,22 @@
+65d6f17b0b6651007ded36dff9ba206fac8d7caa ensure grub-mkconfig ignores *.apk-new files
+ util/grub-mkconfig.in | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in
+index f8cbb8d7a..8b6501209 100644
+--- a/util/grub-mkconfig.in
++++ b/util/grub-mkconfig.in
+@@ -282,6 +282,10 @@ for i in "${grub_mkconfig_dir}"/* ; do
+ *~) ;;
+ # emacsen autosave files. FIXME: support other editors
+ */\#*\#) ;;
++ # Copy of a template file from Alpine Grub package where the stock file
++ # was locally modified. Any such *.apk-new files should be ignored by
++ # grub-mkconfig.
++ *.apk-new) ;;
+ *)
+ if grub_file_is_not_garbage "$i" && test -x "$i" ; then
+ echo
+--
+2.39.2
+
diff --git a/main/grub/0003-efi-implemented-LoadFile2-initrd-loading-protocol-fo.patch b/main/grub/0003-efi-implemented-LoadFile2-initrd-loading-protocol-fo.patch
deleted file mode 100644
index e399234732d..00000000000
--- a/main/grub/0003-efi-implemented-LoadFile2-initrd-loading-protocol-fo.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-From 9e0f716b1536d3fe9c8860240c51d277531cfb92 Mon Sep 17 00:00:00 2001
-From: Ard Biesheuvel <ard.biesheuvel@arm.com>
-Date: Thu, 3 Jun 2021 00:12:31 +0300
-Subject: [PATCH 3/7] efi: implemented LoadFile2 initrd loading protocol for
- Linux
-
-Recent Linux kernels will invoke the LoadFile2 protocol installed on
-a well-known vendor media path to load the initrd if it is exposed by
-the firmware. Using this method is preferred for two reasons:
-- the Linux kernel is in charge of allocating the memory, and so it can
- implement any placement policy it wants (given that these tend to
- change between kernel versions),
-- it is no longer necessary to modify the device tree provided by the
- firmware.
-
-So let's install this protocol when handling the 'initrd' command if
-such a recent kernel was detected (based on the PE/COFF image version),
-and defer loading the initrd contents until the point where the kernel
-invokes the LoadFile2 protocol.
-
-Signed-off-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
-Signed-off-by: Nikita Ermakov <arei@altlinux.org>
----
- grub-core/loader/arm64/linux.c | 117 ++++++++++++++++++++++++++++++++-
- 1 file changed, 116 insertions(+), 1 deletion(-)
-
-diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c
-index aed7a200b..6b03455d1 100644
---- a/grub-core/loader/arm64/linux.c
-+++ b/grub-core/loader/arm64/linux.c
-@@ -48,9 +48,18 @@ static grub_uint32_t cmdline_size;
- static grub_addr_t initrd_start;
- static grub_addr_t initrd_end;
-
-+static struct grub_linux_initrd_context initrd_ctx = { 0, 0, 0 };
-+static grub_efi_handle_t initrd_lf2_handle;
-+static int initrd_use_loadfile2;
-+static grub_efi_guid_t load_file2_guid = GRUB_EFI_LOAD_FILE2_PROTOCOL_GUID;
-+static grub_efi_guid_t device_path_guid = GRUB_EFI_DEVICE_PATH_GUID;
-+
- grub_err_t
- grub_arch_efi_linux_check_image (struct linux_arch_kernel_header * lh)
- {
-+ struct grub_pe32_coff_header *coff_header;
-+ struct grub_pe32_optional_header *optional_header;
-+
- if (lh->magic != GRUB_LINUX_ARMXX_MAGIC_SIGNATURE)
- return grub_error(GRUB_ERR_BAD_OS, "invalid magic number");
-
-@@ -61,6 +70,21 @@ grub_arch_efi_linux_check_image (struct linux_arch_kernel_header * lh)
- grub_dprintf ("linux", "UEFI stub kernel:\n");
- grub_dprintf ("linux", "PE/COFF header @ %08x\n", lh->hdr_offset);
-
-+ coff_header = (struct grub_pe32_coff_header *)((unsigned long)lh + lh->hdr_offset);
-+ optional_header = (struct grub_pe32_optional_header *)(coff_header + 1);
-+
-+ /*
-+ * Linux kernels built for any architecture are guaranteed to support the
-+ * LoadFile2 based initrd loading protocol if the image version is >= 1.
-+ */
-+ if (optional_header->major_image_version >= 1)
-+ initrd_use_loadfile2 = 1;
-+ else
-+ initrd_use_loadfile2 = 0;
-+
-+ grub_dprintf ("linux", "LoadFile2 initrd loading %sabled\n",
-+ initrd_use_loadfile2 ? "en" : "dis");
-+
- return GRUB_ERR_NONE;
- }
-
-@@ -230,13 +254,86 @@ allocate_initrd_mem (int initrd_pages)
- GRUB_EFI_LOADER_DATA);
- }
-
-+struct initrd_media_device_path {
-+ grub_efi_vendor_media_device_path_t vendor;
-+ grub_efi_device_path_t end;
-+} GRUB_PACKED;
-+
-+#define LINUX_EFI_INITRD_MEDIA_GUID \
-+ { 0x5568e427, 0x68fc, 0x4f3d, \
-+ { 0xac, 0x74, 0xca, 0x55, 0x52, 0x31, 0xcc, 0x68 } \
-+ }
-+
-+static struct initrd_media_device_path initrd_lf2_device_path = {
-+ {
-+ {
-+ GRUB_EFI_MEDIA_DEVICE_PATH_TYPE,
-+ GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE,
-+ sizeof(grub_efi_vendor_media_device_path_t),
-+ },
-+ LINUX_EFI_INITRD_MEDIA_GUID
-+ }, {
-+ GRUB_EFI_END_DEVICE_PATH_TYPE,
-+ GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE,
-+ sizeof(grub_efi_device_path_t)
-+ }
-+};
-+
-+static grub_efi_status_t
-+grub_efi_initrd_load_file2(grub_efi_load_file2_t *this,
-+ grub_efi_device_path_t *device_path,
-+ grub_efi_boolean_t boot_policy,
-+ grub_efi_uintn_t *buffer_size,
-+ void *buffer);
-+
-+static grub_efi_load_file2_t initrd_lf2 = {
-+ grub_efi_initrd_load_file2
-+};
-+
-+static grub_efi_status_t
-+grub_efi_initrd_load_file2(grub_efi_load_file2_t *this,
-+ grub_efi_device_path_t *device_path,
-+ grub_efi_boolean_t boot_policy,
-+ grub_efi_uintn_t *buffer_size,
-+ void *buffer)
-+{
-+ grub_efi_status_t status = GRUB_EFI_SUCCESS;
-+ grub_efi_uintn_t initrd_size;
-+
-+ if (!this || this != &initrd_lf2 || !buffer_size)
-+ return GRUB_EFI_INVALID_PARAMETER;
-+
-+ if (device_path->type != GRUB_EFI_END_DEVICE_PATH_TYPE ||
-+ device_path->subtype != GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE)
-+ return GRUB_EFI_NOT_FOUND;
-+
-+ if (boot_policy)
-+ return GRUB_EFI_UNSUPPORTED;
-+
-+ initrd_size = grub_get_initrd_size (&initrd_ctx);
-+ if (!buffer || *buffer_size < initrd_size)
-+ {
-+ *buffer_size = initrd_size;
-+ return GRUB_EFI_BUFFER_TOO_SMALL;
-+ }
-+
-+ grub_dprintf ("linux", "Providing initrd via LOAD_FILE2_PROTOCOL\n");
-+
-+ if (grub_initrd_load (&initrd_ctx, buffer))
-+ status = GRUB_EFI_LOAD_ERROR;
-+
-+ grub_initrd_close (&initrd_ctx);
-+ return status;
-+}
-+
- static grub_err_t
- grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
- int argc, char *argv[])
- {
-- struct grub_linux_initrd_context initrd_ctx = { 0, 0, 0 };
- int initrd_size, initrd_pages;
- void *initrd_mem = NULL;
-+ grub_efi_boot_services_t *b;
-+ grub_efi_status_t status;
-
- if (argc == 0)
- {
-@@ -254,6 +351,24 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
- if (grub_initrd_init (argc, argv, &initrd_ctx))
- goto fail;
-
-+ if (initrd_use_loadfile2 && !initrd_lf2_handle)
-+ {
-+ b = grub_efi_system_table->boot_services;
-+ status = b->install_multiple_protocol_interfaces (&initrd_lf2_handle,
-+ &load_file2_guid,
-+ &initrd_lf2,
-+ &device_path_guid,
-+ &initrd_lf2_device_path,
-+ NULL);
-+ if (status == GRUB_EFI_OUT_OF_RESOURCES)
-+ {
-+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory"));
-+ return grub_errno;
-+ }
-+ grub_dprintf ("linux", "LoadFile2 initrd loading protocol installed\n");
-+ return GRUB_ERR_NONE;
-+ }
-+
- initrd_size = grub_get_initrd_size (&initrd_ctx);
- grub_dprintf ("linux", "Loading initrd\n");
-
---
-2.33.0
-
diff --git a/main/grub/0003-prevent-harmless-LVM-warnings-from-grub-probe.patch b/main/grub/0003-prevent-harmless-LVM-warnings-from-grub-probe.patch
new file mode 100644
index 00000000000..44abb769b35
--- /dev/null
+++ b/main/grub/0003-prevent-harmless-LVM-warnings-from-grub-probe.patch
@@ -0,0 +1,20 @@
+24552b8fd1291c9c8046d14dd813b9a4f22bf883 prevent harmless LVM warnings from grub-probe
+ grub-core/osdep/unix/getroot.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/grub-core/osdep/unix/getroot.c b/grub-core/osdep/unix/getroot.c
+index 74f69116d..8e143beb2 100644
+--- a/grub-core/osdep/unix/getroot.c
++++ b/grub-core/osdep/unix/getroot.c
+@@ -610,7 +610,7 @@ grub_util_pull_lvm_by_command (const char *os_dev)
+ /* by default PV name is left aligned in 10 character field, meaning that
+ we do not know where name ends. Using dummy --separator disables
+ alignment. We have a single field, so separator itself is not output */
+- argv[0] = "vgs";
++ argv[0] = "LVM_SUPPRESS_FD_WARNINGS=1 vgs";
+ argv[1] = "--options";
+ if (vgid)
+ argv[2] = "vg_uuid,pv_name";
+--
+2.39.2
+
diff --git a/main/grub/0004-Handle-encrypted-zfs-root-partition.patch b/main/grub/0004-Handle-encrypted-zfs-root-partition.patch
new file mode 100644
index 00000000000..3c5f38b5239
--- /dev/null
+++ b/main/grub/0004-Handle-encrypted-zfs-root-partition.patch
@@ -0,0 +1,34 @@
+0979d0808c8d977cebe4715c729295d485c12725 Handle encrypted zfs root partition
+ util/grub.d/10_linux.in | 2 +-
+ util/grub.d/20_linux_xen.in | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
+index 4e5f71f0b..7afa1fd2f 100644
+--- a/util/grub.d/10_linux.in
++++ b/util/grub.d/10_linux.in
+@@ -73,7 +73,7 @@ case x"$GRUB_FS" in
+ GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}"
+ fi;;
+ xzfs)
+- rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true`
++ rpool="`blkid -o value -s LABEL ${GRUB_DEVICE}`"
+ bootfs="`make_system_path_relative_to_its_root / | sed -e "s,@$,,"`"
+ LINUX_ROOT_DEVICE="ZFS=${rpool}${bootfs%/}"
+ ;;
+diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in
+index 15319fe06..8656bb453 100644
+--- a/util/grub.d/20_linux_xen.in
++++ b/util/grub.d/20_linux_xen.in
+@@ -81,7 +81,7 @@ case x"$GRUB_FS" in
+ GRUB_CMDLINE_LINUX="rootflags=subvol=${rootsubvol} ${GRUB_CMDLINE_LINUX}"
+ fi;;
+ xzfs)
+- rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true`
++ rpool="`blkid -o value -s LABEL ${GRUB_DEVICE}`"
+ bootfs="`make_system_path_relative_to_its_root / | sed -e "s,@$,,"`"
+ LINUX_ROOT_DEVICE="ZFS=${rpool}${bootfs%/}"
+ ;;
+--
+2.39.2
+
diff --git a/main/grub/0004-linux-ignore-FDT-unless-we-need-to-modify-it.patch b/main/grub/0004-linux-ignore-FDT-unless-we-need-to-modify-it.patch
deleted file mode 100644
index 7d014ebd7e1..00000000000
--- a/main/grub/0004-linux-ignore-FDT-unless-we-need-to-modify-it.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From c0c8c750b444e33205f7aff116aaf5a4336adca1 Mon Sep 17 00:00:00 2001
-From: Ard Biesheuvel <ard.biesheuvel@arm.com>
-Date: Thu, 3 Jun 2021 00:12:32 +0300
-Subject: [PATCH 4/7] linux: ignore FDT unless we need to modify it
-
-Now that we implemented supported for the LoadFile2 protocol for initrd
-loading, there is no longer a need to pass the initrd parameters via
-the device tree. This means there is no longer a reason to update the
-device tree in the first place, and so we can ignore it entirely.
-
-The only remaining reason to deal with the devicetree is if we are
-using the 'devicetree' command to load one from disk, so tweak the
-logic in grub_fdt_install() to take that into account.
-
-Signed-off-by: Ard Biesheuvel <ard.biesheuvel@arm.com>
----
- grub-core/loader/arm64/linux.c | 22 +++++++++++-----------
- grub-core/loader/efi/fdt.c | 7 +++++--
- 2 files changed, 16 insertions(+), 13 deletions(-)
-
-diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c
-index 6b03455d1..65f1275fb 100644
---- a/grub-core/loader/arm64/linux.c
-+++ b/grub-core/loader/arm64/linux.c
-@@ -95,21 +95,21 @@ finalize_params_linux (void)
-
- void *fdt;
-
-- fdt = grub_fdt_load (GRUB_EFI_LINUX_FDT_EXTRA_SPACE);
-+ /* Set initrd info */
-+ if (initrd_start && initrd_end > initrd_start)
-+ {
-+ fdt = grub_fdt_load (GRUB_EFI_LINUX_FDT_EXTRA_SPACE);
-
-- if (!fdt)
-- goto failure;
-+ if (!fdt)
-+ goto failure;
-
-- node = grub_fdt_find_subnode (fdt, 0, "chosen");
-- if (node < 0)
-- node = grub_fdt_add_subnode (fdt, 0, "chosen");
-+ node = grub_fdt_find_subnode (fdt, 0, "chosen");
-+ if (node < 0)
-+ node = grub_fdt_add_subnode (fdt, 0, "chosen");
-
-- if (node < 1)
-- goto failure;
-+ if (node < 1)
-+ goto failure;
-
-- /* Set initrd info */
-- if (initrd_start && initrd_end > initrd_start)
-- {
- grub_dprintf ("linux", "Initrd @ %p-%p\n",
- (void *) initrd_start, (void *) initrd_end);
-
-diff --git a/grub-core/loader/efi/fdt.c b/grub-core/loader/efi/fdt.c
-index c86f283d7..771d455c7 100644
---- a/grub-core/loader/efi/fdt.c
-+++ b/grub-core/loader/efi/fdt.c
-@@ -89,13 +89,16 @@ grub_fdt_install (void)
- grub_efi_guid_t fdt_guid = GRUB_EFI_DEVICE_TREE_GUID;
- grub_efi_status_t status;
-
-+ if (!fdt && !loaded_fdt)
-+ return GRUB_ERR_NONE;
-+
- b = grub_efi_system_table->boot_services;
-- status = b->install_configuration_table (&fdt_guid, fdt);
-+ status = b->install_configuration_table (&fdt_guid, fdt ?: loaded_fdt);
- if (status != GRUB_EFI_SUCCESS)
- return grub_error (GRUB_ERR_IO, "failed to install FDT");
-
- grub_dprintf ("fdt", "Installed/updated FDT configuration table @ %p\n",
-- fdt);
-+ fdt ?: loaded_fdt);
- return GRUB_ERR_NONE;
- }
-
---
-2.33.0
-
diff --git a/main/grub/alpine-mkconfig.patch b/main/grub/0005-Alpine-Linux-fixes-for-menu.patch
index 276f8abddaa..7a83767d646 100644
--- a/main/grub/alpine-mkconfig.patch
+++ b/main/grub/0005-Alpine-Linux-fixes-for-menu.patch
@@ -1,5 +1,10 @@
+7a71eaf97380e505520b8ef92b35ffb44e6c5227 Alpine Linux fixes for menu
+ util/grub.d/10_linux.in | 12 ++++++++----
+ util/grub.d/20_linux_xen.in | 5 +++--
+ 2 files changed, 11 insertions(+), 6 deletions(-)
+
diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
-index 4532266..42e0248 100644
+index 7afa1fd2f..76e006b99 100644
--- a/util/grub.d/10_linux.in
+++ b/util/grub.d/10_linux.in
@@ -21,17 +21,22 @@ prefix="@prefix@"
@@ -27,7 +32,7 @@ index 4532266..42e0248 100644
CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}"
fi
-@@ -52,8 +57,6 @@ GRUB_DISABLE_LINUX_PARTUUID=${GRUB_DISABLE_LINUX_PARTUUID-true}
+@@ -54,8 +59,6 @@ GRUB_DISABLE_LINUX_PARTUUID=${GRUB_DISABLE_LINUX_PARTUUID-true}
if ( [ "x${GRUB_DEVICE_UUID}" = "x" ] && [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] ) \
|| ( [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \
&& [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ] ) \
@@ -36,8 +41,8 @@ index 4532266..42e0248 100644
|| ( test -e "${GRUB_DEVICE}" && uses_abstraction "${GRUB_DEVICE}" lvm ); then
LINUX_ROOT_DEVICE=${GRUB_DEVICE}
elif [ "x${GRUB_DEVICE_UUID}" = "x" ] \
-@@ -215,6 +218,7 @@ while [ "x$list" != "x" ] ; do
- "initrd-${version}" "initramfs-${version}.img" \
+@@ -229,6 +232,7 @@ while [ "x$list" != "x" ] ; do
+ "initramfs-${version}.img" "initramfs-${alt_version}.img.old" \
"initrd.img-${alt_version}" "initrd-${alt_version}.img" \
"initrd-${alt_version}" "initramfs-${alt_version}.img" \
+ "initramfs-${version}" \
@@ -45,7 +50,7 @@ index 4532266..42e0248 100644
"initramfs-genkernel-${alt_version}" \
"initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in
-index 96179ea..6c4c411 100644
+index 8656bb453..69c76a820 100644
--- a/util/grub.d/20_linux_xen.in
+++ b/util/grub.d/20_linux_xen.in
@@ -29,9 +29,9 @@ export TEXTDOMAINDIR="@localedir@"
@@ -60,11 +65,14 @@ index 96179ea..6c4c411 100644
CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}"
fi
-@@ -256,6 +256,7 @@ while [ "x${xen_list}" != "x" ] ; do
- "initrd-${version}" "initramfs-${version}.img" \
+@@ -301,6 +301,7 @@ while [ "x${xen_list}" != "x" ] ; do
+ "initramfs-${version}.img" "initramfs-${alt_version}.img.old" \
"initrd.img-${alt_version}" "initrd-${alt_version}.img" \
"initrd-${alt_version}" "initramfs-${alt_version}.img" \
+ "initramfs-${version}" \
"initramfs-genkernel-${version}" \
"initramfs-genkernel-${alt_version}" \
"initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \
+--
+2.39.2
+
diff --git a/main/grub/0005-loader-Move-arm64-linux-loader-to-common-code.patch b/main/grub/0005-loader-Move-arm64-linux-loader-to-common-code.patch
deleted file mode 100644
index 3c39795078f..00000000000
--- a/main/grub/0005-loader-Move-arm64-linux-loader-to-common-code.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 8fd5e05e1b16fdf61ae154a4a1364154765b4498 Mon Sep 17 00:00:00 2001
-From: Atish Patra <atish.patra@wdc.com>
-Date: Thu, 3 Jun 2021 00:12:33 +0300
-Subject: [PATCH 5/7] loader: Move arm64 linux loader to common code
-
-ARM64 linux loader code is written in such a way that it can be reused
-across different architectures without much change. Move it to common
-code so that RISC-V doesn't have to define a separate loader.
-
-Signed-off-by: Atish Patra <atish.patra@wdc.com>
----
- grub-core/Makefile.core.def | 4 ++--
- grub-core/loader/{arm64 => efi}/linux.c | 2 +-
- include/grub/arm/linux.h | 2 +-
- include/grub/arm64/linux.h | 2 +-
- 4 files changed, 5 insertions(+), 5 deletions(-)
- rename grub-core/loader/{arm64 => efi}/linux.c (99%)
-
-diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
-index 8022e1c0a..b36cf663a 100644
---- a/grub-core/Makefile.core.def
-+++ b/grub-core/Makefile.core.def
-@@ -1806,9 +1806,9 @@ module = {
- sparc64_ieee1275 = loader/sparc64/ieee1275/linux.c;
- ia64_efi = loader/ia64/efi/linux.c;
- arm_coreboot = loader/arm/linux.c;
-- arm_efi = loader/arm64/linux.c;
-+ arm_efi = loader/efi/linux.c;
- arm_uboot = loader/arm/linux.c;
-- arm64 = loader/arm64/linux.c;
-+ arm64 = loader/efi/linux.c;
- riscv32 = loader/riscv/linux.c;
- riscv64 = loader/riscv/linux.c;
- common = loader/linux.c;
-diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/efi/linux.c
-similarity index 99%
-rename from grub-core/loader/arm64/linux.c
-rename to grub-core/loader/efi/linux.c
-index 65f1275fb..60f0fa264 100644
---- a/grub-core/loader/arm64/linux.c
-+++ b/grub-core/loader/efi/linux.c
-@@ -60,7 +60,7 @@ grub_arch_efi_linux_check_image (struct linux_arch_kernel_header * lh)
- struct grub_pe32_coff_header *coff_header;
- struct grub_pe32_optional_header *optional_header;
-
-- if (lh->magic != GRUB_LINUX_ARMXX_MAGIC_SIGNATURE)
-+ if (lh->magic != GRUB_LINUX_ARCH_MAGIC_SIGNATURE)
- return grub_error(GRUB_ERR_BAD_OS, "invalid magic number");
-
- if ((lh->code0 & 0xffff) != GRUB_PE32_MAGIC)
-diff --git a/include/grub/arm/linux.h b/include/grub/arm/linux.h
-index bcd5a7eb1..8c13978d2 100644
---- a/include/grub/arm/linux.h
-+++ b/include/grub/arm/linux.h
-@@ -35,7 +35,7 @@ struct linux_arm_kernel_header {
- };
-
- #if defined(__arm__)
--# define GRUB_LINUX_ARMXX_MAGIC_SIGNATURE GRUB_LINUX_ARM_MAGIC_SIGNATURE
-+# define GRUB_LINUX_ARCH_MAGIC_SIGNATURE GRUB_LINUX_ARM_MAGIC_SIGNATURE
- # define linux_arch_kernel_header linux_arm_kernel_header
- #endif
-
-diff --git a/include/grub/arm64/linux.h b/include/grub/arm64/linux.h
-index 7e22b4ab6..effd870ef 100644
---- a/include/grub/arm64/linux.h
-+++ b/include/grub/arm64/linux.h
-@@ -39,7 +39,7 @@ struct linux_arm64_kernel_header
- };
-
- #if defined(__aarch64__)
--# define GRUB_LINUX_ARMXX_MAGIC_SIGNATURE GRUB_LINUX_ARM64_MAGIC_SIGNATURE
-+# define GRUB_LINUX_ARCH_MAGIC_SIGNATURE GRUB_LINUX_ARM64_MAGIC_SIGNATURE
- # define linux_arch_kernel_header linux_arm64_kernel_header
- #endif
-
---
-2.33.0
-
diff --git a/main/grub/0006-RISC-V-Update-image-header.patch b/main/grub/0006-RISC-V-Update-image-header.patch
deleted file mode 100644
index 13cf7795de4..00000000000
--- a/main/grub/0006-RISC-V-Update-image-header.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From a4c8b60312216e3a6d72e903f9829eafd50d9142 Mon Sep 17 00:00:00 2001
-From: Atish Patra <atish.patra@wdc.com>
-Date: Thu, 3 Jun 2021 00:12:34 +0300
-Subject: [PATCH 6/7] RISC-V: Update image header
-
-Update the RISC-V Linux kernel image headers as per the current header.
-
-Reference:
-<Linux kernel source>/Documentation/riscv/boot-image-header.rst
-
-Signed-off-by: Atish Patra <atish.patra@wdc.com>
----
- include/grub/riscv32/linux.h | 15 ++++++++-------
- include/grub/riscv64/linux.h | 15 ++++++++-------
- 2 files changed, 16 insertions(+), 14 deletions(-)
-
-diff --git a/include/grub/riscv32/linux.h b/include/grub/riscv32/linux.h
-index 512b777c8..de0dbdcd1 100644
---- a/include/grub/riscv32/linux.h
-+++ b/include/grub/riscv32/linux.h
-@@ -19,20 +19,21 @@
- #ifndef GRUB_RISCV32_LINUX_HEADER
- #define GRUB_RISCV32_LINUX_HEADER 1
-
--#define GRUB_LINUX_RISCV_MAGIC_SIGNATURE 0x52534356 /* 'RSCV' */
-+#define GRUB_LINUX_RISCV_MAGIC_SIGNATURE 0x05435352 /* 'RSC\0x5' */
-
--/* From linux/Documentation/riscv/booting.txt */
-+/* From linux/Documentation/riscv/boot-image-header.rst */
- struct linux_riscv_kernel_header
- {
- grub_uint32_t code0; /* Executable code */
- grub_uint32_t code1; /* Executable code */
-- grub_uint64_t text_offset; /* Image load offset */
-- grub_uint64_t res0; /* reserved */
-- grub_uint64_t res1; /* reserved */
-+ grub_uint64_t text_offset; /* Image load offset, little endian */
-+ grub_uint64_t image_size; /* Effective Image size, little endian */
-+ grub_uint64_t flags; /* kernel flags, little endian */
-+ grub_uint32_t version; /* Version of this header */
-+ grub_uint32_t res1; /* reserved */
- grub_uint64_t res2; /* reserved */
- grub_uint64_t res3; /* reserved */
-- grub_uint64_t res4; /* reserved */
-- grub_uint32_t magic; /* Magic number, little endian, "RSCV" */
-+ grub_uint32_t magic; /* Magic number, little endian, "RSC\x05" */
- grub_uint32_t hdr_offset; /* Offset of PE/COFF header */
- };
-
-diff --git a/include/grub/riscv64/linux.h b/include/grub/riscv64/linux.h
-index 3630c30fb..7c28bc922 100644
---- a/include/grub/riscv64/linux.h
-+++ b/include/grub/riscv64/linux.h
-@@ -19,22 +19,23 @@
- #ifndef GRUB_RISCV64_LINUX_HEADER
- #define GRUB_RISCV64_LINUX_HEADER 1
-
--#define GRUB_LINUX_RISCV_MAGIC_SIGNATURE 0x52534356 /* 'RSCV' */
-+#define GRUB_LINUX_RISCV_MAGIC_SIGNATURE 0x05435352 /* 'RSC\0x5' */
-
- #define GRUB_EFI_PE_MAGIC 0x5A4D
-
--/* From linux/Documentation/riscv/booting.txt */
-+/* From linux/Documentation/riscv/boot-image-header.rst */
- struct linux_riscv_kernel_header
- {
- grub_uint32_t code0; /* Executable code */
- grub_uint32_t code1; /* Executable code */
-- grub_uint64_t text_offset; /* Image load offset */
-- grub_uint64_t res0; /* reserved */
-- grub_uint64_t res1; /* reserved */
-+ grub_uint64_t text_offset; /* Image load offset, little endian */
-+ grub_uint64_t image_size; /* Effective Image size, little endian */
-+ grub_uint64_t flags; /* kernel flags, little endian */
-+ grub_uint32_t version; /* Version of this header */
-+ grub_uint32_t res1; /* reserved */
- grub_uint64_t res2; /* reserved */
- grub_uint64_t res3; /* reserved */
-- grub_uint64_t res4; /* reserved */
-- grub_uint32_t magic; /* Magic number, little endian, "RSCV" */
-+ grub_uint32_t magic; /* Magic number, little endian, "RSC\x05" */
- grub_uint32_t hdr_offset; /* Offset of PE/COFF header */
- };
-
---
-2.33.0
-
diff --git a/main/grub/fix-gcc-no-pie-specs.patch b/main/grub/0006-build-force-no-pie.patch
index 273c9dbe39f..8dc50cb1846 100644
--- a/main/grub/fix-gcc-no-pie-specs.patch
+++ b/main/grub/0006-build-force-no-pie.patch
@@ -1,6 +1,12 @@
---- ./configure.ac.orig
-+++ ./configure.ac
-@@ -1100,7 +1100,7 @@
+8826c39fdbf7988c73ae42846a8cf0cfbd81fbad build: force -no-pie
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 9c5fa618d..dffdaa9e7 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1254,7 +1254,7 @@ if test x"$efiemu_excuse" = x ; then
if test x"$grub_cv_target_cc_efiemu64_link_format" = xunknown; then
efiemu_excuse="no suitable link format for efiemu64 found"
else
@@ -9,3 +15,6 @@
fi
fi
if test x"$enable_efiemu" = xyes && test x"$efiemu_excuse" != x ; then
+--
+2.39.2
+
diff --git a/main/grub/0007-RISC-V-Use-common-linux-loader.patch b/main/grub/0007-RISC-V-Use-common-linux-loader.patch
deleted file mode 100644
index 4bc7ed6851c..00000000000
--- a/main/grub/0007-RISC-V-Use-common-linux-loader.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-From 81772eb884e9ab35b461bc9f0a38e1ab2b6a82a5 Mon Sep 17 00:00:00 2001
-From: Atish Patra <atish.patra@wdc.com>
-Date: Thu, 3 Jun 2021 00:12:35 +0300
-Subject: [PATCH 7/7] RISC-V: Use common linux loader
-
-RISC-V doesn't have to do anything very different from other architectures
-to loader EFI stub linux kernel. As a result, just use the common linux
-loader instead of defining a RISC-V specific linux loader.
-
-Signed-off-by: Atish Patra <atish.patra@wdc.com>
----
- grub-core/Makefile.core.def | 4 +--
- grub-core/loader/riscv/linux.c | 59 ----------------------------------
- include/grub/riscv32/linux.h | 1 +
- include/grub/riscv64/linux.h | 1 +
- 4 files changed, 4 insertions(+), 61 deletions(-)
- delete mode 100644 grub-core/loader/riscv/linux.c
-
-diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def
-index b36cf663a..0536575bc 100644
---- a/grub-core/Makefile.core.def
-+++ b/grub-core/Makefile.core.def
-@@ -1809,8 +1809,8 @@ module = {
- arm_efi = loader/efi/linux.c;
- arm_uboot = loader/arm/linux.c;
- arm64 = loader/efi/linux.c;
-- riscv32 = loader/riscv/linux.c;
-- riscv64 = loader/riscv/linux.c;
-+ riscv32 = loader/efi/linux.c;
-+ riscv64 = loader/efi/linux.c;
- common = loader/linux.c;
- common = lib/cmdline.c;
- enable = noemu;
-diff --git a/grub-core/loader/riscv/linux.c b/grub-core/loader/riscv/linux.c
-deleted file mode 100644
-index d17c488e1..000000000
---- a/grub-core/loader/riscv/linux.c
-+++ /dev/null
-@@ -1,59 +0,0 @@
--/*
-- * GRUB -- GRand Unified Bootloader
-- * Copyright (C) 2018 Free Software Foundation, Inc.
-- *
-- * GRUB 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.
-- *
-- * GRUB 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 GRUB. If not, see <http://www.gnu.org/licenses/>.
-- */
--
--#include <grub/command.h>
--#include <grub/dl.h>
--#include <grub/lib/cmdline.h>
--
--GRUB_MOD_LICENSE ("GPLv3+");
--
--static grub_err_t
--grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
-- int argc __attribute__ ((unused)),
-- char *argv[] __attribute__ ((unused)))
--{
-- grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, N_("Linux not supported yet"));
--
-- return grub_errno;
--}
--
--static grub_err_t
--grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)),
-- int argc __attribute__ ((unused)),
-- char *argv[] __attribute__ ((unused)))
--{
-- grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, N_("Linux not supported yet"));
--
-- return grub_errno;
--}
--
--static grub_command_t cmd_linux, cmd_initrd;
--
--GRUB_MOD_INIT (linux)
--{
-- cmd_linux = grub_register_command ("linux", grub_cmd_linux, 0,
-- N_("Load Linux."));
-- cmd_initrd = grub_register_command ("initrd", grub_cmd_initrd, 0,
-- N_("Load initrd."));
--}
--
--GRUB_MOD_FINI (linux)
--{
-- grub_unregister_command (cmd_linux);
-- grub_unregister_command (cmd_initrd);
--}
-diff --git a/include/grub/riscv32/linux.h b/include/grub/riscv32/linux.h
-index de0dbdcd1..706c69087 100644
---- a/include/grub/riscv32/linux.h
-+++ b/include/grub/riscv32/linux.h
-@@ -38,5 +38,6 @@ struct linux_riscv_kernel_header
- };
-
- #define linux_arch_kernel_header linux_riscv_kernel_header
-+# define GRUB_LINUX_ARCH_MAGIC_SIGNATURE GRUB_LINUX_RISCV_MAGIC_SIGNATURE
-
- #endif /* ! GRUB_RISCV32_LINUX_HEADER */
-diff --git a/include/grub/riscv64/linux.h b/include/grub/riscv64/linux.h
-index 7c28bc922..88d5df781 100644
---- a/include/grub/riscv64/linux.h
-+++ b/include/grub/riscv64/linux.h
-@@ -40,5 +40,6 @@ struct linux_riscv_kernel_header
- };
-
- #define linux_arch_kernel_header linux_riscv_kernel_header
-+# define GRUB_LINUX_ARCH_MAGIC_SIGNATURE GRUB_LINUX_RISCV_MAGIC_SIGNATURE
-
- #endif /* ! GRUB_RISCV64_LINUX_HEADER */
---
-2.33.0
-
diff --git a/main/grub/0007-uefi-firmware-remove-fsetup-check.patch b/main/grub/0007-uefi-firmware-remove-fsetup-check.patch
new file mode 100644
index 00000000000..287163cd73c
--- /dev/null
+++ b/main/grub/0007-uefi-firmware-remove-fsetup-check.patch
@@ -0,0 +1,30 @@
+grub 2.12 introduced the `--is-supported` argument for fwsetup, and runs it for
+efi systems to determine whether to show the uefi-firmware menu item.
+
+The problem is that grub 2.06 does not support the `--is-supported` flag yet,
+and calling it just crashes grub, causing the machine to reboot.
+
+Showing a menu entry for uefi-firmware that may not work is infinitely better
+than crashing and preventing the machine to boot, so remove the condition and
+always show the menu entry.
+
+See also: https://bugs.archlinux.org/task/75701
+diff --git a/util/grub.d/30_uefi-firmware.in b/util/grub.d/30_uefi-firmware.in
+index 1c2365d..b6041b5 100644
+--- a/util/grub.d/30_uefi-firmware.in
++++ b/util/grub.d/30_uefi-firmware.in
+@@ -32,11 +32,8 @@ gettext_printf "Adding boot menu entry for UEFI Firmware Settings ...\n" >&2
+
+ cat << EOF
+ if [ "\$grub_platform" = "efi" ]; then
+- fwsetup --is-supported
+- if [ "\$?" = 0 ]; then
+- menuentry '$LABEL' \$menuentry_id_option 'uefi-firmware' {
+- fwsetup
+- }
+- fi
++ menuentry '$LABEL' \$menuentry_id_option 'uefi-firmware' {
++ fwsetup
++ }
+ fi
+ EOF
diff --git a/main/grub/0008-fix-build-error-in-binutils-2.36.patch b/main/grub/0008-fix-build-error-in-binutils-2.36.patch
deleted file mode 100644
index 5cb327003ad..00000000000
--- a/main/grub/0008-fix-build-error-in-binutils-2.36.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 5cea201f288246488e2189c49d969d00ebec2898 Mon Sep 17 00:00:00 2001
-From: Michael Chang <mchang@suse.com>
-Date: Fri, 19 Feb 2021 17:40:43 +0800
-Subject: [PATCH] Fix build error in binutils 2.36
-
-The build fails in binutils 2.36
-
-[ 520s] cat kernel_syms.lst > syminfo.lst.new
-[ 520s] /usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld: section .note.gnu.property VMA [0000000000400158,0000000000400187] overlaps section .bss VMA [000000000000f000,000000000041e1af]
-
-It is caused by assembler now generates the GNU property notes section
-by default. Use the assmbler option -mx86-used-note=no to disable the
-section from being generated to workaround the ensuing linker issue.
-
-Signed-off-by: Michael Chang <mchang@suse.com>
----
- configure.ac | 14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/configure.ac b/configure.ac
-index fa8f74bb9..38ee5f579 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -836,6 +836,20 @@ if ( test "x$target_cpu" = xi386 || test "x$target_cpu" = xx86_64 ) && test "x$p
- TARGET_CFLAGS="$TARGET_CFLAGS -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-3dnow"
- fi
-
-+if ( test "x$target_cpu" = xi386 || test "x$target_cpu" = xx86_64 ); then
-+ AC_CACHE_CHECK([whether -Wa,-mx86-used-note works], [grub_cv_cc_mx86_used_note], [
-+ CFLAGS="$TARGET_CFLAGS -Wa,-mx86-used-note=no -Werror"
-+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
-+ [grub_cv_cc_mx86_used_note=yes],
-+ [grub_cv_cc_mx86_used_note=no])
-+ ])
-+
-+ if test "x$grub_cv_cc_mx86_used_note" = xyes; then
-+ TARGET_CFLAGS="$TARGET_CFLAGS -Wa,-mx86-used-note=no"
-+ TARGET_CCASFLAGS="$TARGET_CCASFLAGS -Wa,-mx86-used-note=no"
-+ fi
-+fi
-+
- # GRUB doesn't use float or doubles at all. Yet some toolchains may decide
- # that floats are a good fit to run instead of what's written in the code.
- # Given that floating point unit is disabled (if present to begin with)
diff --git a/main/grub/0009-fix-kernel-version-detection.patch b/main/grub/0009-fix-kernel-version-detection.patch
deleted file mode 100644
index f0141b8d01d..00000000000
--- a/main/grub/0009-fix-kernel-version-detection.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From: Dermot Bradley <dermot_bradley@yahoo.com>
-Date: Fri, 29 Oct 2021 18:51 +0100
-Subject: Fix grub-mkconfig detection of linux-edge-virt
-
-grub-mkconfig does not correctly handle the linux-edge-virt package
-when creating /boot/grub.grub.cfg. The 10_linux and 20_linux_xen
-files determine the "version" of the kernel using a regex pattern
-that does not correctly handle the presence of 2 "-" characters.
-
-As a result, when using the linux-edge-virt package grub-mkconfig
-incorrectly believes the version is "virt" rather than "edge-virt"
-and it searches for /boot/initramfs-edge which does not exist,
-resulting in no "initrd" line being placed in the grub.cfg to point
-to the initramfs.
-
-This issue does not appear with the linux-lts, linux-virt, linux-edge
-packages as their kernel and initramfs files only have a single "-"
-in their filenames.
-
-This is likely to be an Alpine-specific Grub issue as many/most other
-Linux distros include the actual kernel numeric version as part of
-the initramfs filenames (as, unlike Alpine they support multiple
-kernels being simultaneously installed and so need to distinguish
-between them).
-
-This fix simply changes the regex pattern to remove everything prior
-to, and including, the first "-" symbol, so leaving "lts", "edge",
-"edge-virt", or "virt" as appropriate.
-
----
-
-diff -aur a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in
---- a/util/grub.d/10_linux.in
-+++ b/util/grub.d/10_linux.in
-@@ -201,7 +201,7 @@
- basename=`basename $linux`
- dirname=`dirname $linux`
- rel_dirname=`make_system_path_relative_to_its_root $dirname`
-- version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
-+ version=`echo $basename | sed -e "s,^[^-]*-,,g"`
- alt_version=`echo $version | sed -e "s,\.old$,,g"`
- linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
-
-diff -aur a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in
---- a/util/grub.d/20_linux_xen.in
-+++ b/util/grub.d/20_linux_xen.in
-@@ -181,7 +181,7 @@
- for i in /boot/vmlinu[xz]-* /vmlinu[xz]-* /boot/kernel-*; do
- if grub_file_is_not_garbage "$i"; then
- basename=$(basename $i)
-- version=$(echo $basename | sed -e "s,^[^0-9]*-,,g")
-+ version=$(echo $basename | sed -e "s,^[^-]*-,,g")
- dirname=$(dirname $i)
- config=
- for j in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do
-@@ -275,7 +275,7 @@
- basename=`basename $linux`
- dirname=`dirname $linux`
- rel_dirname=`make_system_path_relative_to_its_root $dirname`
-- version=`echo $basename | sed -e "s,^[^0-9]*-,,g"`
-+ version=`echo $basename | sed -e "s,^[^-]*-,,g"`
- alt_version=`echo $version | sed -e "s,\.old$,,g"`
- linux_root_device_thisversion="${LINUX_ROOT_DEVICE}"
-
diff --git a/main/grub/0010-riscv-binutils-2.38.patch b/main/grub/0010-riscv-binutils-2.38.patch
deleted file mode 100644
index ab9bff99223..00000000000
--- a/main/grub/0010-riscv-binutils-2.38.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-Patch-Source: https://lists.gnu.org/archive/html/grub-devel/2022-01/msg00173.html
-As of version 2.38 binutils defaults to ISA specification version
-2019-12-13. This version of the specification has has separated the
-the csr read/write (csrr*/csrw*) instructions and the fence.i from
-the I extension and put them into separate Zicsr and Zifencei
-extensions.
-
-This implies that we have to adjust the -march flag passed to the
-compiler accordingly.
-
-Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
----
- configure.ac | 8 ++++++++
- 1 file changed, 8 insertions(+)
-
- diff --git a/configure.ac b/configure.ac
- index 7517fc49d..7b094a63d 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -852,11 +866,19 @@
- CFLAGS="$TARGET_CFLAGS -march=rv32imac -mabi=ilp32 -Werror"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
- [grub_cv_target_cc_soft_float="-march=rv32imac -mabi=ilp32"], [])
-+ # ISA spec version 20191213 factored out extensions Zicsr and Zifencei
-+ CFLAGS="$TARGET_CFLAGS -march=rv32imac_zicsr_zifencei -mabi=ilp32 -Werror"
-+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
-+ [grub_cv_target_cc_soft_float="-march=rv64imac_zicsr_zifencei -mabi=lp64"], [])
- fi
- if test "x$target_cpu" = xriscv64; then
- CFLAGS="$TARGET_CFLAGS -march=rv64imac -mabi=lp64 -Werror"
- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
- [grub_cv_target_cc_soft_float="-march=rv64imac -mabi=lp64"], [])
-+ # ISA spec version 20191213 factored out extensions Zicsr and Zifencei
-+ CFLAGS="$TARGET_CFLAGS -march=rv64imac_zicsr_zifencei -mabi=lp64 -Werror"
-+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],
-+ [grub_cv_target_cc_soft_float="-march=rv64imac_zicsr_zifencei -mabi=lp64"], [])
- fi
- if test "x$target_cpu" = xia64; then
- CFLAGS="$TARGET_CFLAGS -mno-inline-float-divide -mno-inline-sqrt -Werror"
diff --git a/main/grub/0011-mkconfig-ignore-apk-new-files.patch b/main/grub/0011-mkconfig-ignore-apk-new-files.patch
deleted file mode 100644
index 2d05783147a..00000000000
--- a/main/grub/0011-mkconfig-ignore-apk-new-files.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From: Dermot Bradley <dermot_bradley@yahoo.com>
-Date: Wed, 8 Jun 2022 18:28:13 +0100
-Subject: ensure grub-mkconfig ignores *.apk-new files
-
-If one of the Grub template files in /etc/grub.d/ is locally modified
-then whenever an updated version of the Alpine Grub package is next
-installed apk will place a stock version of the modified file in the
-same directory with a .apk-new suffix. Whenever grub-mkconfig is next
-triggered to regenerate grub.cfg it will use both the locally modified
-file and the stock file which will result in duplicate Grub menu
-entries.
-
-Modify grub-mkconfig to ignore *.apk-new files.
-
----
-
-diff -aur a/util/grub-mkconfig.in b/util/grub-mkconfig.in
---- a/util/grub-mkconfig.in
-+++ b/util/grub-mkconfig.in
-@@ -278,6 +278,10 @@
- *~) ;;
- # emacsen autosave files. FIXME: support other editors
- */\#*\#) ;;
-+ # Copy of a template file from Alpine Grub package where the stock file
-+ # was locally modified. Any such *.apk-new files should be ignored by
-+ # grub-mkconfig.
-+ *.apk-new) ;;
- *)
- if grub_file_is_not_garbage "$i" && test -x "$i" ; then
- echo
diff --git a/main/grub/0012-remove-udevadm-usage.patch b/main/grub/0012-remove-udevadm-usage.patch
deleted file mode 100644
index b4f8cf25608..00000000000
--- a/main/grub/0012-remove-udevadm-usage.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-From: Dermot Bradley <dermot_bradley@yahoo.com>
-Date: Wed, 8 Jun 2022 18:28:13 +0100
-Subject: [PATCH] remove use of udevadm
-
-These changes in this patch are copied from upstream's master repo
-based on commit 1ea4e5ef09c06552402bf676ce262a661372f08d.
-
-Replace the use of eudev's udevadm by grub-install/grub-probe with
-the use of the /sys/dev/block/ directory hierarchy instead. This
-patch enables grub-install (via grub-probe) to install onto a
-partitioned loop device inside a chroot.
-
-Currently when grub-probe runs to detect the device containing the
-boot filesystem it uses udevadm, if available, to do so and if not
-available it falls back to its own logic which cannot handle a
-partitioned loop device inside a chroot.
-
-Without this patch the only current workaround for a Alpine system
-using mdev in such a scenario is to temporarily install eudev (for
-the udevadm binary) prior to running grub-install and then to
-uninstall eudev afterwards.
-
-Based on upstream's timescale for releases it is likely that the next
-Grub release will be some time away in the future and so it would be
-useful to backport this change to Alpine.
-
----
-
-diff -Naur a/grub-core/osdep/linux/hostdisk.c b/grub-core/osdep/linux/hostdisk.c
---- a/grub-core/osdep/linux/hostdisk.c
-+++ b/grub-core/osdep/linux/hostdisk.c
-@@ -31,6 +31,7 @@
- #include <grub/misc.h>
- #include <grub/i18n.h>
- #include <grub/list.h>
-+#include <grub/osdep/major.h>
-
- #include <stdio.h>
- #include <stdlib.h>
-@@ -98,54 +99,13 @@
- static char *
- sysfs_partition_path (const char *dev, const char *entry)
- {
-- const char *argv[7];
-- int fd;
-- pid_t pid;
-- FILE *udevadm;
-- char *buf = NULL;
-- size_t len = 0;
-- char *path = NULL;
--
-- argv[0] = "udevadm";
-- argv[1] = "info";
-- argv[2] = "--query";
-- argv[3] = "path";
-- argv[4] = "--name";
-- argv[5] = dev;
-- argv[6] = NULL;
--
-- pid = grub_util_exec_pipe (argv, &fd);
--
-- if (!pid)
-- return NULL;
--
-- /* Parent. Read udevadm's output. */
-- udevadm = fdopen (fd, "r");
-- if (!udevadm)
-- {
-- grub_util_warn (_("Unable to open stream from %s: %s"),
-- "udevadm", strerror (errno));
-- close (fd);
-- goto out;
-- }
--
-- if (getline (&buf, &len, udevadm) > 0)
-- {
-- char *newline;
--
-- newline = strchr (buf, '\n');
-- if (newline)
-- *newline = '\0';
-- path = xasprintf ("/sys%s/%s", buf, entry);
-- }
--
--out:
-- if (udevadm)
-- fclose (udevadm);
-- waitpid (pid, NULL, 0);
-- free (buf);
-+ struct stat st;
-
-- return path;
-+ if (stat (dev, &st) == 0 && S_ISBLK (st.st_mode))
-+ return xasprintf ("/sys/dev/block/%u:%u/%s",
-+ major (st.st_rdev), minor (st.st_rdev), entry);
-+
-+ return NULL;
- }
-
- static int
-diff -Naur a/include/grub/osdep/major.h b/include/grub/osdep/major.h
---- a/include/grub/osdep/major.h
-+++ b/include/grub/osdep/major.h
-@@ -0,0 +1,33 @@
-+/*
-+ * GRUB -- GRand Unified Bootloader
-+ * Copyright (C) 2021 Free Software Foundation, Inc.
-+ *
-+ * GRUB 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.
-+ *
-+ * GRUB 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 GRUB. If not, see <http://www.gnu.org/licenses/>.
-+ *
-+ * Fix for glibc 2.25 which is deprecating the namespace pollution of
-+ * sys/types.h injecting major(), minor(), and makedev() into the
-+ * compilation environment.
-+ */
-+
-+#ifndef GRUB_OSDEP_MAJOR_H
-+#define GRUB_OSDEP_MAJOR_H 1
-+
-+#include <sys/types.h>
-+
-+#ifdef MAJOR_IN_MKDEV
-+# include <sys/mkdev.h>
-+#elif defined (MAJOR_IN_SYSMACROS)
-+# include <sys/sysmacros.h>
-+#endif
-+#endif /* GRUB_OSDEP_MAJOR_H */
diff --git a/main/grub/APKBUILD b/main/grub/APKBUILD
index 1de675d9c6a..9820b1a0f35 100644
--- a/main/grub/APKBUILD
+++ b/main/grub/APKBUILD
@@ -1,16 +1,16 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=grub
-pkgver=2.06
-pkgrel=5
+pkgver=2.12
+pkgrel=3
pkgdesc="Bootloader with support for Linux, Multiboot and more"
url="https://www.gnu.org/software/grub/"
arch="all !s390x"
license="GPL-3.0-or-later"
depends="initramfs-generator"
triggers="grub.trigger=/boot"
-makedepends="bison flex linux-headers xz-dev lvm2-dev fuse-dev
- automake autoconf libtool python3 freetype-dev unifont gettext-dev"
+makedepends="autoconf automake bison flex font-unifont freetype-dev
+ fuse-dev gawk gettext-dev libtool linux-headers lvm2-dev python3 xz-dev"
install="$pkgname.post-upgrade"
# strip handled by grub Makefiles, abuild strip breaks xen pv-grub
options="!check !strip" # Cannot test boot loader.
@@ -19,7 +19,7 @@ subpackages="
$pkgname-doc
$pkgname-mkfont
$pkgname-mount
- $pkgname-bash-completion:bashcomp:noarch
+ $pkgname-bash-completion
"
# currently grub only builds on x86*, aarch64 and ppc* systems
@@ -31,40 +31,58 @@ case "$CARCH" in
riscv*) flavors="efi";;
ppc*) flavors="ieee1275"; makedepends="$makedepends powerpc-utils" ;;
s390x) flavors="emu" ;;
+ loongarch64) flavors="efi" ;;
esac
for f in $flavors; do
- [ x"$f" = x"xenhost_pvh" ] && continue # xenhost_pvh shipped in the xenhost subpackage
+ [ "$f" = "xenhost_pvh" ] && continue # xenhost_pvh shipped in the xenhost subpackage
subpackages="$subpackages $pkgname-$f"
done
source="https://ftp.gnu.org/gnu/grub/grub-$pkgver.tar.xz
- fix-gcc-no-pie-specs.patch
+ update-grub
grub-xen-host_grub.cfg
- alpine-mkconfig.patch
- lang-C.UTF-8.patch
- 0001-loader-drop-argv-argument-in-grub_initrd_load.patch
- 0002-efi-add-definition-of-LoadFile2-protocol.patch
- 0003-efi-implemented-LoadFile2-initrd-loading-protocol-fo.patch
- 0004-linux-ignore-FDT-unless-we-need-to-modify-it.patch
- 0005-loader-Move-arm64-linux-loader-to-common-code.patch
- 0006-RISC-V-Update-image-header.patch
- 0007-RISC-V-Use-common-linux-loader.patch
- 0008-fix-build-error-in-binutils-2.36.patch
- 0009-fix-kernel-version-detection.patch
- 0010-riscv-binutils-2.38.patch
- 0011-mkconfig-ignore-apk-new-files.patch
- 0012-remove-udevadm-usage.patch
+
+ 0001-Fix-grub-mkconfig-detection-of-linux-edge-virt.patch
+ 0002-ensure-grub-mkconfig-ignores-.apk-new-files.patch
+ 0003-prevent-harmless-LVM-warnings-from-grub-probe.patch
+ 0004-Handle-encrypted-zfs-root-partition.patch
+ 0005-Alpine-Linux-fixes-for-menu.patch
+ 0006-build-force-no-pie.patch
+ 0007-uefi-firmware-remove-fsetup-check.patch
"
+# secfixes:
+# 2.06-r13:
+# - CVE-2021-3697
+# 2.06-r0:
+# - CVE-2021-3418
+# - CVE-2020-10713
+# - CVE-2020-14308
+# - CVE-2020-14309
+# - CVE-2020-14310
+# - CVE-2020-14311
+# - CVE-2020-14372
+# - CVE-2020-15705
+# - CVE-2020-15706
+# - CVE-2020-15707
+# - CVE-2020-25632
+# - CVE-2020-25647
+# - CVE-2020-27749
+# - CVE-2020-27779
+# - CVE-2021-20225
+# - CVE-2021-20233
+
prepare() {
default_prepare
PYTHON=python3 sh ./autogen.sh
+
+ # Required to fix 2.12 build - (empty) file is missing from release
+ touch "$builddir"/grub-core/extra_deps.lst
}
_build_flavor() {
local flavor="$1"
shift
- local _configure="$@"
msg "Building grub for platform $flavor"
mkdir -p "$srcdir"/build-$flavor
@@ -79,7 +97,7 @@ _build_flavor() {
--localstatedir=/var \
--disable-nls \
--disable-werror \
- $_configure
+ "$@"
make
}
@@ -87,10 +105,12 @@ build() {
local f
for f in $flavors; do
case "$f" in
- bios) _build_flavor $f --with-platform=pc;;
+ bios) CFLAGS="${CFLAGS/-fno-plt/}" \
+ _build_flavor $f --with-platform=pc;;
efi) _build_flavor $f --with-platform=efi --disable-efiemu;;
xenhost) _build_flavor $f --with-platform=xen;;
- xenhost_pvh) _build_flavor $f --with-platform=xen_pvh --target=i386;;
+ xenhost_pvh) CFLAGS="${CFLAGS/-fno-plt/}" \
+ _build_flavor $f --with-platform=xen_pvh --target=i386;;
*) _build_flavor $f --with-platform=$f;;
esac
@@ -176,6 +196,8 @@ package() {
mkdir -p "$pkgdir"/usr/share/bash-completion
mv "$pkgdir"/etc/bash_completion.d "$pkgdir"/usr/share/bash-completion/completions
+
+ install -D -m755 "$srcdir"/update-grub "$pkgdir"/usr/sbin/update-grub
}
bios() {
@@ -231,35 +253,20 @@ mkfont() {
mount() {
pkgdesc="$pkgdesc (mount utility)"
- depends="$pkgname"
+ depends=""
mkdir -p $subpkgdir/usr/bin
mv $pkgdir/usr/bin/grub-mount $subpkgdir/usr/bin/
}
-bashcomp() {
- depends=""
- pkgdesc="Bash completions for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
-
- amove usr/share/bash-completion/completions
-}
-
sha512sums="
-4f11c648f3078567e53fc0c74d5026fdc6da4be27d188975e79d9a4df817ade0fe5ad2ddd694238a07edc45adfa02943d83c57767dd51548102b375e529e8efe grub-2.06.tar.xz
-f2a7d9ab6c445f4e402e790db56378cecd6631b5c367451aa6ce5c01cd95b95c83c3dd24d6d4b857f8f42601eba82c855607513eb6ce5b2af6bd6c71f046e288 fix-gcc-no-pie-specs.patch
+761c060a4c3da9c0e810b0ea967e3ebc66baa4ddd682a503ae3d30a83707626bccaf49359304a16b3a26fc4435fe6bea1ee90be910c84de3c2b5485a31a15be3 grub-2.12.tar.xz
+85b3c56670fb0aaaf831cc6d7ca45faeb68b844cb17cfd6f9b51c2473f0b153cfa7b26ff8bf00a88b2ed3e0ae69a1e8f735256e6cecc91e959169606e2abf887 update-grub
4e7394e0fff6772c89683039ccf81099ebbfe4f498e6df408977a1488fd59389b6e19afdbf0860ec271e2b2aea0df7216243dcc8235d1ca3af0e7f4d0a9d60a4 grub-xen-host_grub.cfg
-84d9694af384336c0846faad968a63b154e2bd957671fa7c0163c36e20fd086a8d5b67ddf5eb983a11a69f65dac52668d0f51537e7cfe9a1ea9bca7aba91f20b alpine-mkconfig.patch
-f23702741f2a37c83d0cbf16a000a6229dfd433cd583f3254d523ce35b3668c1db2d8a704a75013e74655ec4f9da5db6b630aa92e3ca5cc47df44cc9e41d1806 lang-C.UTF-8.patch
-c0ea8ef9a3d4e511fae97a4b90dc6f407c5b0a81c922924992f3eccd49fad0886f2e06ff21731cc59d42a6ac28272eb859a7ee9f14642ae1ad705f2cd1da1956 0001-loader-drop-argv-argument-in-grub_initrd_load.patch
-708c3e8ca60638b7961aac64fe1eecb21ef9db844b4a21c2d36303c7fcd71173ba13dc0df3c8ae09b4a0a6a4a5b7fb3c41736a9bf6d1ef367c73dcf5bdf17668 0002-efi-add-definition-of-LoadFile2-protocol.patch
-aa2fbabeab2e8f517128f0d81d3c76eba18b24518b616d4574ffaaec7d4765e02b5b118caf04da1e225342a66700f2774c6a04c1ebfd32747499eb3cbc9b72ea 0003-efi-implemented-LoadFile2-initrd-loading-protocol-fo.patch
-6616373b6c94f48dd8ee0636973451a7cf492ea8dfc854b9c250bcc291d5c3a9efae51ad9d37b7298dc8e6f22041109b4ad8e82cf75c9514b5dfaa78a02d9ce1 0004-linux-ignore-FDT-unless-we-need-to-modify-it.patch
-74b2bf8e9da604c5ca60ed13e389e48ceb4eeea1669b8ac720cdc452a4450676fe4bb961a63d31603bcdc9fe15ab6a8cb74b9ff97b6d7d85f1aaba24b1e9e244 0005-loader-Move-arm64-linux-loader-to-common-code.patch
-4901c964278ab8a46901b905efef4562aa4942d6c37be052db9536d4779ecea6a0cf68fcc97fe6ef2b39c54cd598d4f8351cf3e27c3dacff888549bdc35deee3 0006-RISC-V-Update-image-header.patch
-721c9d7aefd9d9fdd4fe92c229122c3311e75266a9419a12f5f77536099070a232b6c4ff3c33ab5a2cb6f7f917ae0d6510b09045d2f035f87c65b4dd7f09d3ee 0007-RISC-V-Use-common-linux-loader.patch
-8c35663ef72683bd23c18e75134a0ddb1bb9a7c053ed87691e2ac5c9765fdf802761a6ad54f8bdc7999679d9cc5ebea9c01f1c0f615ac90505f7a398129d157b 0008-fix-build-error-in-binutils-2.36.patch
-d4432a36286f0ad7d3527d34e20daf9fbef24d6037171582ae3ccdd51668ffe422b87d984f107a9b4dcf019b89ac76dd322d64e42bbfa64bb6789d3d897fc1f2 0009-fix-kernel-version-detection.patch
-4b8b5eeeb45dd9fddc9af9b6e694644470672b35af33cd11f1578f35503b08662c51f27c10bffeb96a51de0a879c741c0d22600410147eb20505efe1a3b50b54 0010-riscv-binutils-2.38.patch
-229fe710de9fb106e08457a5a19dd3cc1746389ff1cdd95721b092913c51550fc8ad05141a23fc396a9e8dbbcec909920eda5f3eed339af9938774feb9e6c7bc 0011-mkconfig-ignore-apk-new-files.patch
-c6011ece89e55d92e351bdab3eae180d75fcde642865934800641d42969febebd3a29a68941a10ef42a0bdeae0069432f2bb31e42fa651263cdedc1b964d5b33 0012-remove-udevadm-usage.patch
+d45f416f7308f338cd187909207cd8329dcb21e22ab0573ae932110c3e108e4bafe6411ae22b5f87809bea39544660dcb03e3fea2c1c33492cd230fa6d3b2760 0001-Fix-grub-mkconfig-detection-of-linux-edge-virt.patch
+e1612f34d14644b30a63d9dc18a0eaf9617ef9f4aa6787c386e6304e15b4573f5149758936cac1ceffdb4e39f6a83e7e7c01a7ef3ed2f7bc974971ae0e2c644c 0002-ensure-grub-mkconfig-ignores-.apk-new-files.patch
+d8606bc2fc6b34e683fdba8b2a131b7d5bede907556c141a30be1d7475a65bf5e2266d577f7a0f0da91646f8605c74d083858c100d2285375474249e53c14fd4 0003-prevent-harmless-LVM-warnings-from-grub-probe.patch
+0f64ab38da309d3c91043b4b662bd8facbcad859c3150da0b15aa0874e33640de1ad7b1539f858f69d26f72512ebbaa70556f07613bea59d1ce509933ba5b753 0004-Handle-encrypted-zfs-root-partition.patch
+474f3576b45f612de4b157f951fbd334d7e136275dd2640e2d3deac7c813e4e8a8809a3b798476eb51cb0a3dd42b52583f7fe526fc78e7638f4506861c98a062 0005-Alpine-Linux-fixes-for-menu.patch
+bb792f7c7be99dee95a031e48be69698ec8e0e76a3060bff314922cca19f086525af6680fb3ea845949be85c7731659a7ab91b2b008e3d526d1549bb108053c2 0006-build-force-no-pie.patch
+c0bea923acc6affd32e78a58685e847f24e26c501b5bbabee99cc6e25c5668263e61f0bf508a6741bd75fef891ca3229f9d746ef254c72d2cb8dca7c18f92f54 0007-uefi-firmware-remove-fsetup-check.patch
"
diff --git a/main/grub/grub.post-upgrade b/main/grub/grub.post-upgrade
index 59614d035e8..6e4380cb84f 100644
--- a/main/grub/grub.post-upgrade
+++ b/main/grub/grub.post-upgrade
@@ -17,3 +17,6 @@ if [ -z "$GRUB_CMDLINE_LINUX_DEFAULT" ]; then
echo "GRUB_CMDLINE_LINUX_DEFAULT=\"$bootopts\"" >> /etc/default/grub
fi
+if [ -e /etc/grub-autoinstall ]; then
+ . /etc/grub-autoinstall
+fi
diff --git a/main/grub/grub.trigger b/main/grub/grub.trigger
index 740dfcb813c..edc2de42fd7 100644
--- a/main/grub/grub.trigger
+++ b/main/grub/grub.trigger
@@ -1,8 +1,7 @@
#!/bin/sh
-if [ -e /boot/grub/grub.cfg ]; then
- cp /boot/grub/grub.cfg /boot/grub/grub.cfg.backup
+
+if grep -q '^disable_trigger=1' /etc/update-grub.conf 2>/dev/null; then
+ exit 0
fi
-mkdir -p /boot/grub
-grub-mkconfig -o /boot/grub/grub.cfg.new \
- && mv /boot/grub/grub.cfg.new /boot/grub/grub.cfg
+exec /usr/sbin/update-grub
diff --git a/main/grub/lang-C.UTF-8.patch b/main/grub/lang-C.UTF-8.patch
deleted file mode 100644
index 0b74654bcbc..00000000000
--- a/main/grub/lang-C.UTF-8.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in
-index 93a9023..130abd4 100644
---- a/util/grub.d/00_header.in
-+++ b/util/grub.d/00_header.in
-@@ -191,7 +191,7 @@ EOF
- EOF
-
- # Gettext variables and module
--if [ "x${LANG}" != "xC" ] && [ "x${LANG}" != "x" ]; then
-+if [ "x${LANG%.UTF-8}" != "xC" ] && [ "x${LANG}" != "x" ]; then
- cat << EOF
- set locale_dir=\$prefix/locale
- set lang=${grub_lang}
diff --git a/main/grub/update-grub b/main/grub/update-grub
new file mode 100644
index 00000000000..77dadd14e5c
--- /dev/null
+++ b/main/grub/update-grub
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+if [ -e /boot/grub/grub.cfg ]; then
+ cp /boot/grub/grub.cfg /boot/grub/grub.cfg.backup
+fi
+mkdir -p /boot/grub
+grub-mkconfig -o /boot/grub/grub.cfg.new \
+ && mv /boot/grub/grub.cfg.new /boot/grub/grub.cfg
+
diff --git a/main/gsm/APKBUILD b/main/gsm/APKBUILD
index 428d78a8a4e..abfdc67ea27 100644
--- a/main/gsm/APKBUILD
+++ b/main/gsm/APKBUILD
@@ -1,16 +1,16 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gsm
-pkgver=1.0.19
-pkgrel=1
+pkgver=1.0.22
+pkgrel=3
_soname=1.0.12
pkgdesc="Shared libraries for GSM speech compressor"
-url="http://www.quut.com/gsm/"
+url="https://www.quut.com/gsm/"
arch="all"
-license="custom:TU-Berlin-2.0"
+license="TU-Berlin-2.0"
makedepends="$depends_dev"
subpackages="$pkgname-dev $pkgname-doc $pkgname-tools"
-source="http://www.quut.com/gsm/gsm-$pkgver.tar.gz
+source="https://www.quut.com/gsm/gsm-$pkgver.tar.gz
gsm-64bit.patch
gsm-makefile.patch
"
@@ -33,7 +33,7 @@ package() {
"$pkgdir"/usr/share/man/man1 \
"$pkgdir"/usr/share/man/man3
- make -j1 install \
+ make install \
INSTALL_ROOT="$pkgdir"/usr \
GSM_INSTALL_INC="$pkgdir"/usr/include/gsm \
GSM_INSTALL_LIB="$pkgdir"/usr/lib
@@ -41,7 +41,11 @@ package() {
ln -s libgsm.so.$_soname "$pkgdir"/usr/lib/libgsm.so.1
ln -s libgsm.so.$_soname "$pkgdir"/usr/lib/libgsm.so
- ln -s gsm/gsm.h "$pkgdir"/usr/include/
+ # the makefile is really broken
+ install -Dm644 inc/gsm.h \
+ -t "$pkgdir"/usr/include/gsm/
+ ln -s gsm/gsm.h "$pkgdir"/usr/include/gsm.h
+
rm -f "$pkgdir"/usr/lib/lib*.a
}
@@ -51,6 +55,8 @@ tools() {
mv "$pkgdir"/usr/bin "$subpkgdir"/usr
}
-sha512sums="f69b4bf2d918b118b5de90b8ab88fd026008ac7432f07b872b81fe52cdc781f605dca8eedcdaebc8beb974cef388496c618f92a41961c62057009964159f8392 gsm-1.0.19.tar.gz
+sha512sums="
+f4284f096ed4d606ddece5c1b28edb63feacc26a0b664f1350c040dbf50113d27bedfd9896bf1620cb4fc3a6c8f6a5244955a6c625ded833dcee607c63c97dd2 gsm-1.0.22.tar.gz
5b01f6d2fd3ee7cd859da70870463e2ccc6614c5fb1bd5efc88a223a0c5477271221557fef13ba46697e70cc5820c13efff738413f8990d5884b95cc89c30152 gsm-64bit.patch
-1d92b7eacf52e5281c9f1a0f08313d10f15c35d22fb2292e5a885ceb3cb766557a5e3a08954db75fb13db59345ef9f6b08939881ba38c9d384e09a1c96b47bc5 gsm-makefile.patch"
+acfb7623a7d66580b704967e335e2c30b9d4ce62226c268f588451d5c8d040846c627fbe77473f4eb0a0c9c144d2dddd75f124e7e91f4ecf0da77039be54b4a9 gsm-makefile.patch
+"
diff --git a/main/gsm/gsm-makefile.patch b/main/gsm/gsm-makefile.patch
index b11e1506d5f..e433b5ed092 100644
--- a/main/gsm/gsm-makefile.patch
+++ b/main/gsm/gsm-makefile.patch
@@ -1,6 +1,8 @@
---- gsm-1.0-pl12/Makefile.mk 2006-04-26 21:14:26.000000000 +0200
-+++ gsm-1.0-pl12/Makefile 2007-05-13 13:03:32.000000000 +0200
-@@ -30,6 +30,10 @@
+diff --git a/Makefile b/Makefile
+index 2ad5e5d..c898103 100644
+--- a/Makefile
++++ b/Makefile
+@@ -30,6 +30,10 @@ WAV49 = -DWAV49
######### define this, and read about the GSM_OPT_WAV49 option in the
######### manual page on gsm_option(3).
@@ -11,7 +13,7 @@
# Choose a compiler. The code works both with ANSI and K&R-C.
# Use -DNeedFunctionPrototypes to compile with, -UNeedFunctionPrototypes to
# compile without, function prototypes in the header files.
-@@ -44,7 +48,7 @@
+@@ -44,7 +48,7 @@ WAV49 = -DWAV49
# CCFLAGS = -c -O
CC = gcc -ansi -pedantic
@@ -20,7 +22,7 @@
LD = $(CC)
-@@ -81,7 +85,7 @@
+@@ -81,7 +85,7 @@ INSTALL_ROOT =
GSM_INSTALL_ROOT = $(INSTALL_ROOT)
GSM_INSTALL_LIB = $(GSM_INSTALL_ROOT)/lib
GSM_INSTALL_INC = $(GSM_INSTALL_ROOT)/inc
@@ -29,7 +31,7 @@
# Where do you want to install the toast binaries and their manpage?
-@@ -91,16 +95,16 @@
+@@ -91,12 +95,12 @@ GSM_INSTALL_MAN = $(GSM_INSTALL_ROOT)/man/man3
TOAST_INSTALL_ROOT = $(INSTALL_ROOT)
TOAST_INSTALL_BIN = $(TOAST_INSTALL_ROOT)/bin
@@ -44,12 +46,7 @@
BASENAME = basename
AR = ar
ARFLAGS = cr
--RMFLAGS =
-+RMFLAGS = -f
- FIND = find
- COMPRESS = compress
- COMPRESSFLAGS =
-@@ -129,17 +133,18 @@
+@@ -129,17 +133,18 @@ INC = $(ROOT)/inc
# DEBUG = -DNDEBUG
######### Remove -DNDEBUG to enable assertions.
@@ -70,7 +67,7 @@
TOAST = $(BIN)/toast
UNTOAST = $(BIN)/untoast
-@@ -279,7 +284,7 @@
+@@ -279,7 +284,7 @@ TOAST_INSTALL_TARGETS = \
# Target rules
@@ -79,7 +76,7 @@
@-echo $(ROOT): Done.
tst: $(TST)/lin2cod $(TST)/cod2lin $(TOAST) $(TST)/test-result
-@@ -299,24 +304,28 @@
+@@ -299,24 +304,28 @@ install: toastinstall gsminstall
# The basic API: libgsm
@@ -113,3 +110,17 @@
# The local bin and lib directories
+@@ -357,11 +366,11 @@ $(TOAST_INSTALL_BIN)/toast: $(TOAST)
+
+ $(TOAST_INSTALL_BIN)/untoast: $(TOAST_INSTALL_BIN)/toast
+ -rm $(RMFLAGS) $@
+- $(LN) $? $@
++ $(LN) toast $@
+
+ $(TOAST_INSTALL_BIN)/tcat: $(TOAST_INSTALL_BIN)/toast
+ -rm $(RMFLAGS) $@
+- $(LN) $? $@
++ $(LN) toast $@
+
+ $(TOAST_INSTALL_MAN)/toast.1: $(MAN)/toast.1
+ -rm $(RMFLAGS) $@
diff --git a/main/gst-plugins-base/APKBUILD b/main/gst-plugins-base/APKBUILD
index 3e6cd652f64..df1b3823208 100644
--- a/main/gst-plugins-base/APKBUILD
+++ b/main/gst-plugins-base/APKBUILD
@@ -1,22 +1,42 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gst-plugins-base
-pkgver=1.20.3
+pkgver=1.22.11
pkgrel=0
pkgdesc="GStreamer streaming media framework base plug-ins"
url="https://gstreamer.freedesktop.org"
arch="all"
-license="GPL-2.0-or-later LGPL-2.0-or-later"
+license="GPL-2.0-or-later AND LGPL-2.0-or-later"
subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
replaces="gst-plugins-base1 gst-plugins-bad"
depends_dev="wayland-dev"
-makedepends="alsa-lib-dev cdparanoia-dev expat-dev glib-dev
- gobject-introspection-dev graphene-dev gstreamer-dev gtk+3.0-dev libice-dev
- libogg-dev libsm-dev libtheora-dev libvorbis-dev libxv-dev mesa-dev
- meson opus-dev orc-compiler orc-dev perl"
+makedepends="
+ alsa-lib-dev
+ cdparanoia-dev
+ expat-dev
+ glib-dev
+ gobject-introspection-dev
+ graphene-dev
+ gstreamer-dev
+ gtk+3.0-dev
+ libice-dev
+ libogg-dev
+ libsm-dev
+ libtheora-dev
+ libvorbis-dev
+ libxv-dev
+ mesa-dev
+ meson
+ opus-dev
+ orc-compiler
+ orc-dev
+ perl
+ "
source="https://gstreamer.freedesktop.org/src/gst-plugins-base/gst-plugins-base-$pkgver.tar.xz"
ldpath="/usr/lib/gstreamer-1.0"
# secfixes:
+# 1.18.4-r0:
+# - CVE-2021-3522
# 1.16.0-r0:
# - CVE-2019-9928
@@ -25,14 +45,18 @@ ldpath="/usr/lib/gstreamer-1.0"
options="!check"
build() {
+ CFLAGS="$CFLAGS -O2" \
+ CXXFLAGS="$CXXFLAGS -O2" \
+ CPPFLAGS="$CPPFLAGS -O2" \
abuild-meson \
+ -Db_lto=true \
-Dalsa=enabled \
-Dintrospection=enabled \
-Dpackage-origin="https://alpinelinux.org" \
-Dpackage-name="GStreamer base plug-ins (Alpine Linux)" \
-Dtests="$(want_check && echo enabled || echo disabled)" \
. output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
check() {
@@ -49,5 +73,5 @@ doc() {
}
sha512sums="
-258294291cb9b406c17dfe4e5c1ca9061580d0789293355c9b43d558630d360097b6867287edf1688f3edaf50b5900cdd177c1429c122a0415c56da8b0f21ed1 gst-plugins-base-1.20.3.tar.xz
+cfd8f7fe66f4707e043c8f070110eb80f9804cec529c8d29b13dbc8604db90e3f010c9614d538ad076b826df54f75ce5ebac355bd05a874e44dccead6a953c60 gst-plugins-base-1.22.11.tar.xz
"
diff --git a/main/gstreamer/APKBUILD b/main/gstreamer/APKBUILD
index 2821deb2a2b..e9fb455fe44 100644
--- a/main/gstreamer/APKBUILD
+++ b/main/gstreamer/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gstreamer
-pkgver=1.20.3
+pkgver=1.22.11
pkgrel=0
pkgdesc="GStreamer streaming media framework"
url="https://gstreamer.freedesktop.org"
@@ -14,6 +14,7 @@ makedepends="$depends_dev
glib-dev
gobject-introspection-dev
libcap-dev
+ libcap-utils
meson
perl
"
@@ -22,9 +23,12 @@ subpackages="
$pkgname-doc
$pkgname-tools
$pkgname-lang
+ $pkgname-ptp-helper:ptp_helper
"
source="https://gstreamer.freedesktop.org/src/gstreamer/gstreamer-$pkgver.tar.xz"
-options="!check" # FIXME: two tests fail
+# setcap: gst-ptp-helper
+# FIXME: two tests fail
+options="setcap !check"
# secfixes:
# 1.18.4-r0:
@@ -32,18 +36,22 @@ options="!check" # FIXME: two tests fail
# - CVE-2021-3498
build() {
+ CFLAGS="$CFLAGS -O2" \
+ CXXFLAGS="$CXXFLAGS -O2" \
+ CPPFLAGS="$CPPFLAGS -O2" \
abuild-meson \
+ -Db_lto=true \
-Dintrospection=enabled \
-Dbash-completion=disabled \
-Dptp-helper-permissions=capabilities \
-Dpackage-name="GStreamer (Alpine Linux)" \
-Dpackage-origin="https://alpinelinux.org" \
. output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
check() {
- meson test --no-rebuild -v -C output
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
@@ -76,6 +84,13 @@ tools() {
amove usr/bin
}
+ptp_helper() {
+ pkgdesc="$pkgdesc (ptp helper)"
+ install_if="$pkgname=$pkgver-r$pkgrel"
+
+ amove usr/libexec/gstreamer-*/gst-ptp-helper
+}
+
sha512sums="
-e93f9fbf2d7a839dcbe2030ed16dd53eb250741db7c2f1cea396c23e4fabf9a0caff6be4babf7c10aec4b56dc8319a970b1b0bfa6eea2e36aed3e6e1265d9278 gstreamer-1.20.3.tar.xz
+8976cebd2cbac3ef31ee6163d2c5264be7d10d54ab9fe6f0b2317d7d0380420ef2378e1b476af09f1e6b203e3eafcda88fc08bb2f550a6f411d8670dec04843e gstreamer-1.22.11.tar.xz
"
diff --git a/main/gtest/APKBUILD b/main/gtest/APKBUILD
index 09282bf8c8a..b6a306d5075 100644
--- a/main/gtest/APKBUILD
+++ b/main/gtest/APKBUILD
@@ -1,16 +1,16 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=gtest
-pkgver=1.12.1
-pkgrel=0
+pkgver=1.14.0
+pkgrel=2
pkgdesc="Google Test - C++ testing utility based on the xUnit framework (like JUnit)"
url="https://github.com/google/googletest"
arch="all"
license="BSD-3-Clause"
depends_dev="$pkgname=$pkgver-r$pkgrel gmock=$pkgver-r$pkgrel"
makedepends="$depends_dev cmake python3-dev samurai"
-subpackages="$pkgname-dev gmock"
-source="$pkgname-$pkgver.tar.gz::https://github.com/google/googletest/archive/refs/tags/release-$pkgver.tar.gz"
-builddir="$srcdir/googletest-release-$pkgver"
+subpackages="$pkgname-dev gmock $pkgname-src"
+source="$pkgname-$pkgver.tar.gz::https://github.com/google/googletest/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/googletest-$pkgver"
build() {
cmake -B build -G Ninja \
@@ -26,7 +26,7 @@ build() {
check() {
# fails of x86
- ctest --test-dir build -E "googletest-port-test"
+ ctest --test-dir build -E "(googletest-port-test|googletest-printers-test)"
}
package() {
@@ -40,6 +40,12 @@ gmock() {
mv "$pkgdir"/usr/lib/libgmock*.so* "$subpkgdir"/usr/lib/
}
+src() {
+ arch="noarch"
+ mkdir -p "$subpkgdir"/usr/src/$pkgname/src
+ mv "$builddir"/googletest/src/* "$subpkgdir"/usr/src/$pkgname/src
+}
+
sha512sums="
-a9104dc6c53747e36e7dd7bb93dfce51a558bd31b487a9ef08def095518e1296da140e0db263e0644d9055dbd903c0cb69380cb2322941dbfb04780ef247df9c gtest-1.12.1.tar.gz
+765c326ccc1b87a01027385e69238266e356361cd4ee3e18e3c9d137a5d11fa5d657c164d02dd1be8fe693c8e10f2b580588dbfa57d27f070e2750f50d3e662c gtest-1.14.0.tar.gz
"
diff --git a/main/gtk+2.0/APKBUILD b/main/gtk+2.0/APKBUILD
deleted file mode 100644
index 572593bb31d..00000000000
--- a/main/gtk+2.0/APKBUILD
+++ /dev/null
@@ -1,112 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=gtk+2.0
-pkgver=2.24.33
-pkgrel=4
-pkgdesc="The GTK+ Toolkit (v2)"
-url="https://www.gtk.org/"
-install="$pkgname.post-install $pkgname.post-upgrade $pkgname.post-deinstall"
-triggers="gtk-update-icon-cache.trigger=/usr/share/icons/*"
-arch="all"
-options="!check" # Requires xvfb, resulting in eventual circular dependency
-license="LGPL-2.0-or-later"
-subpackages="
- $pkgname-dbg
- gtk-update-icon-cache:icon_cache
- $pkgname-dev
- $pkgname-doc
- $pkgname-lang
- "
-depends="shared-mime-info gtk-update-icon-cache"
-
-replaces="gtk+"
-replaces_dev="gtk+-dev"
-replaces_doc="gtk+-doc"
-
-depends_dev="
- atk-dev
- cairo-dev
- intltool
- libxdamage-dev
- pango-dev
- "
-# we add hicolor-icon-theme because the subpackage gtk-update-icon-cache
-# needs it. We need to force hicolor-icon-cache to be built before gtk+.2.0
-makedepends="
- autoconf automake libtool
- $depends_dev
- cups-dev
- expat-dev
- gdk-pixbuf-dev
- gettext-dev
- glib-dev
- gobject-introspection-dev
- gtk-doc
- hicolor-icon-theme
- libice-dev
- libx11-dev
- libxcomposite-dev
- libxcursor-dev
- libxext-dev
- libxfixes-dev
- libxrandr-dev
- libxi-dev
- zlib-dev"
-source="https://download.gnome.org/sources/gtk+/${pkgver%.*}/gtk+-$pkgver.tar.xz
- xid-collision-debug.patch
- gtk2-fixdso.patch
- "
-
-builddir="$srcdir"/gtk+-$pkgver
-
-prepare() {
- default_prepare
- libtoolize --force \
- && aclocal -I m4 \
- && autoconf \
- && automake --add-missing
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --with-xinput=yes \
- --without-libjasper \
- --with-included-loaders=png \
- --with-gdktarget=x11 \
- --enable-cups \
- --enable-man
- # https://bugzilla.gnome.org/show_bug.cgi?id=655517
- sed -i -e 's/ -shared / -Wl,-O1,--as-needed\0/g' libtool
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-dev() {
- mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/usr/share/
- mv "$pkgdir"/usr/share/gtk-2.0 "$subpkgdir"/usr/share/
- default_dev
- replaces="gtk+2.0"
- mv "$pkgdir"/usr/bin/gtk-builder-convert \
- "$pkgdir"/usr/bin/gtk-demo \
- "$subpkgdir"/usr/bin
-}
-
-icon_cache() {
- depends="hicolor-icon-theme"
- replaces="gtk4.0" # gtk4-update-icon-cache
-
- # provide gtk4 symlink too
- amove usr/bin/gtk-update-icon-cache
- ln -s gtk-update-icon-cache "$subpkgdir"/usr/bin/gtk4-update-icon-cache
-}
-
-sha512sums="71b588797c81f727dfac8dcb1be193f7436f717d30ecf18eae2d3aeb0f445b3be4743400acac16435490db8f564f01032065d3f42d27871317f80c98aef929d5 gtk+-2.24.33.tar.xz
-89e3223c86731a76b12d39245f1ec4cf8b4860ab1d11d74a10e5deb0db302f20b4bb5d9034da1d8aeb96369dbdeddcdd2f28943270dc501476c694562b960159 xid-collision-debug.patch
-95f28633a5164a2a9fec45ee1aa80bd1c07e0c5a7ac8d770b9c74af0909b7286b823eb634aa384cad609dc8799d2e6c9e8392c2732b9093076fdf94b4f6878b7 gtk2-fixdso.patch"
diff --git a/main/gtk+2.0/gtk+2.0.post-deinstall b/main/gtk+2.0/gtk+2.0.post-deinstall
deleted file mode 100644
index ea39aa8bf8c..00000000000
--- a/main/gtk+2.0/gtk+2.0.post-deinstall
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/sh
-
-# since we depend on coreutils and busybox trigger has not yet run, we
-# use busybox directly as workaround
-/bin/busybox rm -f etc/gtk-2.0/gtk.immodules
-/bin/busybox rm -f etc/gtk-2.0/gdk-pixbuf.loaders
-
diff --git a/main/gtk+2.0/gtk+2.0.post-install b/main/gtk+2.0/gtk+2.0.post-install
deleted file mode 100644
index ea573183a71..00000000000
--- a/main/gtk+2.0/gtk+2.0.post-install
+++ /dev/null
@@ -1,4 +0,0 @@
-#!/bin/sh
-
-usr/bin/gtk-query-immodules-2.0 --update-cache
-usr/bin/gdk-pixbuf-query-loaders --update-cache
diff --git a/main/gtk+2.0/gtk+2.0.post-upgrade b/main/gtk+2.0/gtk+2.0.post-upgrade
deleted file mode 120000
index 5bd77f90dba..00000000000
--- a/main/gtk+2.0/gtk+2.0.post-upgrade
+++ /dev/null
@@ -1 +0,0 @@
-gtk+2.0.post-install \ No newline at end of file
diff --git a/main/gtk+2.0/gtk2-fixdso.patch b/main/gtk+2.0/gtk2-fixdso.patch
deleted file mode 100644
index 3ea784699e7..00000000000
--- a/main/gtk+2.0/gtk2-fixdso.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- gtk+-2.24.8/gtk/Makefile.am.orig 2012-02-01 11:14:25.468115547 +0000
-+++ gtk+-2.24.8/gtk/Makefile.am 2012-02-01 11:14:57.920116650 +0000
-@@ -904,10 +904,10 @@
- libgtk_quartz_2_0_la_SOURCES = $(gtk_c_sources)
- libgtk_directfb_2_0_la_SOURCES = $(gtk_c_sources)
-
--libgtk_x11_2_0_la_LDFLAGS = $(libtool_opts)
-+libgtk_x11_2_0_la_LDFLAGS = $(libtool_opts) -lgmodule-2.0
- libgtk_win32_2_0_la_LDFLAGS = $(libtool_opts) -Wl,-luuid
- libgtk_quartz_2_0_la_LDFLAGS = $(libtool_opts)
--libgtk_directfb_2_0_la_LDFLAGS = $(libtool_opts)
-+libgtk_directfb_2_0_la_LDFLAGS = $(libtool_opts) -lgmodule-2.0
-
- libgtk_x11_2_0_la_LIBADD = $(libadd)
- libgtk_win32_2_0_la_LIBADD = $(libadd) -lole32 -lgdi32 -lcomdlg32 -lwinspool -lcomctl32
diff --git a/main/gtk+2.0/xid-collision-debug.patch b/main/gtk+2.0/xid-collision-debug.patch
deleted file mode 100644
index d61238c3b27..00000000000
--- a/main/gtk+2.0/xid-collision-debug.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- gtk+-2.18.3/gdk/x11/gdkxid.c 2009-06-19 04:59:18.000000000 +0200
-+++ gtk+-2.18.3/gdk/x11/gdkxid.c.new 2009-07-22 11:30:12.000000000 +0200
-@@ -56,10 +56,10 @@
- if (!display_x11->xid_ht)
- display_x11->xid_ht = g_hash_table_new ((GHashFunc) gdk_xid_hash,
- (GEqualFunc) gdk_xid_equal);
--
-+/*
- if (g_hash_table_lookup (display_x11->xid_ht, xid))
- g_warning ("XID collision, trouble ahead");
--
-+*/
- g_hash_table_insert (display_x11->xid_ht, xid, data);
- }
-
diff --git a/main/gtk+3.0/APKBUILD b/main/gtk+3.0/APKBUILD
index 1a6984501b0..66d673136a3 100644
--- a/main/gtk+3.0/APKBUILD
+++ b/main/gtk+3.0/APKBUILD
@@ -1,47 +1,51 @@
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gtk+3.0
-pkgver=3.24.34
-pkgrel=2
+pkgver=3.24.41
+pkgrel=0
pkgdesc="The GTK+ Toolkit (v3)"
url="https://www.gtk.org/"
-install="$pkgname.post-install $pkgname.post-upgrade $pkgname.post-deinstall"
+install="$pkgname.post-deinstall"
+triggers="$pkgname.trigger=/usr/lib/gtk-3.0/immodules:/usr/lib/gtk-3.0/*/immodules gtk-update-icon-cache.trigger=/usr/share/icons/*"
arch="all"
license="LGPL-2.1-or-later"
-options="!check" # Most glade tests fail :c
-subpackages="$pkgname-dbg $pkgname-demo $pkgname-dev $pkgname-doc $pkgname-lang"
+options="!check" # checkdepends in community
+subpackages="
+ $pkgname-dbg
+ $pkgname-demo
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-lang
+ gtk-update-icon-cache:icon_cache
+ "
depends="shared-mime-info gtk-update-icon-cache"
-
-replaces="gtk+"
-
depends_dev="
- atk-dev
gdk-pixbuf-dev
glib-dev
libepoxy-dev
libxext-dev
libxi-dev
libxinerama-dev
- wayland-protocols
+ libxkbcommon-dev
wayland-libs-client
wayland-libs-cursor
- libxkbcommon-dev
+ wayland-protocols
"
+_icon_cache_depends="hicolor-icon-theme"
makedepends="
$depends_dev
+ $_icon_cache_depends
+ at-spi2-core-dev
+ cairo-dev
cups-dev
expat-dev
+ fontconfig-dev
gettext-dev
gobject-introspection-dev
+ hicolor-icon-theme
+ iso-codes-dev
libice-dev
- tiff-dev
- zlib-dev
- at-spi2-atk-dev
- cairo-dev
- fontconfig-dev
- pango-dev
- wayland-dev
libx11-dev
libxcomposite-dev
libxcursor-dev
@@ -49,69 +53,83 @@ makedepends="
libxfixes-dev
libxrandr-dev
meson
- gtk-doc
- iso-codes-dev
+ pango-dev
+ tiff-dev
+ wayland-dev
+ zlib-dev
"
checkdepends="
- xvfb-run
ibus
- librsvg
- gdk-pixbuf
+ xvfb-run
+ "
+source="https://download.gnome.org/sources/gtk+/${pkgver%.*}/gtk+-$pkgver.tar.xz
"
-source="https://download.gnome.org/sources/gtk+/${pkgver%.*}/gtk+-$pkgver.tar.xz"
-
builddir="$srcdir/gtk+-$pkgver"
-prepare() {
- default_prepare
-}
-
build() {
+ CFLAGS="$CFLAGS -O2" \
+ CXXFLAGS="$CXXFLAGS -O2" \
abuild-meson \
+ -Db_lto=true \
-Dman=true \
-Dgtk_doc=false \
-Dbroadway_backend=true \
-Dtests="$(want_check && echo true || echo false)" \
output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
check() {
- xvfb-run meson test --no-rebuild -v -C output
+ xvfb-run -a meson test --no-rebuild --print-errorlogs -C output
}
package() {
DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
- # use gtk-update-icon-cache from gtk+2.0 for now
- rm -f "$pkgdir"/usr/bin/gtk-update-icon-cache
- rm -f "$pkgdir"/usr/share/man/man1/gtk-update-icon-cache.1
+dev() {
+ default_dev
+
+ amove usr/bin/gtk-builder-tool \
+ usr/bin/gtk-encode-symbolic-svg \
+ usr/bin/gtk-query-settings
+}
+
+doc() {
+ default_doc
+ # gtk-update-icon-cache
+ replaces="gtk+2.0-doc"
}
demo() {
pkgdesc="$pkgdesc (demonstration application)"
amove usr/bin/gtk3-demo \
+ usr/bin/gtk3-demo-application \
+ usr/bin/gtk3-icon-browser \
usr/bin/gtk3-widget-factory \
- usr/bin/gtk3-demo-application
-
- amove usr/share/gtk-3.0/gtkbuilder.rng \
+ usr/share/gtk-3.0/gtkbuilder.rng \
usr/share/glib-2.0/schemas/org.gtk.Demo.gschema.xml \
+ usr/share/applications/gtk3-demo.desktop \
+ usr/share/applications/gtk3-icon-browser.desktop \
usr/share/applications/gtk3-widget-factory.desktop \
- usr/share/applications/gtk3-demo.desktop
-
- amove usr/share/icons
+ usr/share/icons
}
-dev() {
- replaces="gtk+-dev"
- default_dev
+lang() {
+ default_lang
+
+ amove usr/share/gtk-3.0/emoji
}
-doc() {
- replaces="gtk+-doc"
- default_doc
+icon_cache() {
+ depends="$_icon_cache_depends"
+ replaces="gtk4.0" # gtk4-update-icon-cache
+
+ # provide gtk4 symlink too
+ amove usr/bin/gtk-update-icon-cache
+ ln -s gtk-update-icon-cache "$subpkgdir"/usr/bin/gtk4-update-icon-cache
}
sha512sums="
-95af4441b53be175acf16121a90b1db7a152cbfb3e5ed2dffc59f622b2eb5a4d74720ae8e05dc1421b6b23588f28e09e0f153f0b92777c836f522881720fb0a2 gtk+-3.24.34.tar.xz
+aaf061d846fac592e71089feace302bdef1bb64bb2ad6ff30d51d90000da9084cad2fa5bf88cb75adcd789c911d94231ae60a2ca7cf97a2f5720687369a3da98 gtk+-3.24.41.tar.xz
"
diff --git a/main/gtk+3.0/gtk+3.0.post-deinstall b/main/gtk+3.0/gtk+3.0.post-deinstall
index b1e3f7a6835..d9cd8e9521d 100644
--- a/main/gtk+3.0/gtk+3.0.post-deinstall
+++ b/main/gtk+3.0/gtk+3.0.post-deinstall
@@ -1,5 +1,3 @@
#!/bin/sh
rm -f etc/gtk-3.0/gtk.immodules
-rm -f etc/gtk-3.0/gdk-pixbuf.loaders
-
diff --git a/main/gtk+3.0/gtk+3.0.post-upgrade b/main/gtk+3.0/gtk+3.0.post-upgrade
deleted file mode 120000
index f313df3d117..00000000000
--- a/main/gtk+3.0/gtk+3.0.post-upgrade
+++ /dev/null
@@ -1 +0,0 @@
-gtk+3.0.post-install \ No newline at end of file
diff --git a/main/gtk+3.0/gtk+3.0.post-install b/main/gtk+3.0/gtk+3.0.trigger
index a1970d8032f..5ecc37a936d 100644
--- a/main/gtk+3.0/gtk+3.0.post-install
+++ b/main/gtk+3.0/gtk+3.0.trigger
@@ -1,4 +1,3 @@
#!/bin/sh
/usr/bin/gtk-query-immodules-3.0 --update-cache
-/usr/bin/gdk-pixbuf-query-loaders --update-cache
diff --git a/main/gtk+2.0/gtk-update-icon-cache.trigger b/main/gtk+3.0/gtk-update-icon-cache.trigger
index f247335938d..b3c88c75b3b 100644
--- a/main/gtk+2.0/gtk-update-icon-cache.trigger
+++ b/main/gtk+3.0/gtk-update-icon-cache.trigger
@@ -4,6 +4,6 @@ for i in "$@"; do
if ! [ -e "$i" ]; then
continue
fi
- gtk-update-icon-cache -q -t -f $i
+ gtk-update-icon-cache -q -t -f "$i"
+ rmdir "$1" 2>/dev/null || :
done
-
diff --git a/main/gtk-doc/APKBUILD b/main/gtk-doc/APKBUILD
index 75ff02d4823..8fb860e363d 100644
--- a/main/gtk-doc/APKBUILD
+++ b/main/gtk-doc/APKBUILD
@@ -1,12 +1,12 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gtk-doc
pkgver=1.33.2
-pkgrel=2
+pkgrel=3
pkgdesc="Documentation tool for public library API"
url="https://wiki.gnome.org/DocumentationProject/GtkDoc"
arch="noarch"
license="GPL-2.0-or-later AND GFDL-1.1-or-later"
-depends="docbook-xsl python3 py3-six pkgconf glib-dev py3-pygments"
+depends="docbook-xsl python3 pkgconf glib-dev py3-pygments"
makedepends="rarian-dev gettext autoconf automake libtool"
checkdepends="bc"
source="https://download.gnome.org/sources/gtk-doc/${pkgver%.*}/gtk-doc-$pkgver.tar.xz"
@@ -37,4 +37,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="f50f68ab6b4bc59f55e84b49c1481f05700171cbf79eca9ba8f3a142a30a4ba88fe096983ebb8d117a9ef8bcea40934674096683d956f5c54cae457d31f651ab gtk-doc-1.33.2.tar.xz"
+sha512sums="
+f50f68ab6b4bc59f55e84b49c1481f05700171cbf79eca9ba8f3a142a30a4ba88fe096983ebb8d117a9ef8bcea40934674096683d956f5c54cae457d31f651ab gtk-doc-1.33.2.tar.xz
+"
diff --git a/main/guile/APKBUILD b/main/guile/APKBUILD
index 9c863c9106e..f8e93f74de9 100644
--- a/main/guile/APKBUILD
+++ b/main/guile/APKBUILD
@@ -5,27 +5,67 @@
# reverted at any time, at the core team's discretion.
pkgname=guile
-pkgver=3.0.8
+pkgver=3.0.9
pkgrel=0
pkgdesc="portable, embeddable Scheme implementation written in C"
url="https://www.gnu.org/software/guile/"
arch="all"
-options="!check" # Requires LC_COLLATE & LC_MONETARY, failed w/ musl-locales.
license="LGPL-3.0-or-later AND GPL-3.0-or-later"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
-makedepends="gmp-dev libtool ncurses-dev texinfo libunistring-dev libffi-dev
- gc-dev"
-depends_dev="guile gc-dev"
+subpackages="$pkgname-dev $pkgname-doc $pkgname-libs $pkgname-readline"
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ gc-dev
+ gmp-dev
+ "
+makedepends="
+ $depends_dev
+ libffi-dev
+ libtool
+ libunistring-dev
+ ncurses-dev
+ readline-dev
+ texinfo
+ "
source="https://ftp.gnu.org/gnu/guile/guile-$pkgver.tar.gz
0002-Mark-mutex-with-owner-not-retained-threads-test-as-u.patch
+ failing-encoding-test.patch
+ failing-filesys-test.patch
"
case "$CARCH" in
-x86 | x86_64 | mips64) options="$options !strip" ;;
# Otherwise we'll get strip: Unable to recognise the format of the input file
+x86|x86_64|loongarch64) options="$options !strip" ;;
esac
+prepare() {
+ # remove sticky bit. it breaks the test suite
+ find . -type d -exec chmod g-s {} \;
+
+ default_prepare
+
+ # remove tests that don't pass with musl libc.
+ # most of them fail because musl only supports UTF-8.
+ rm -f \
+ ./test-suite/tests/time.test \
+ ./test-suite/tests/encoding-escapes.test \
+ ./test-suite/tests/i18n.test \
+ ./test-suite/tests/encoding-iso88597.test \
+ ./test-suite/tests/iconv.test \
+ ./test-suite/tests/suspendable-ports.test \
+ ./test-suite/tests/r6rs-ports.test
+
+ case "$CARCH" in
+ x86)
+ # probably needs sse2?
+ rm -f ./test-suite/tests/numbers.test
+ ;;
+ esac
+}
+
build() {
+ # programming language
+ CFLAGS="$CFLAGS -g0 -O2" \
+ CXXFLAGS="$CXXFLAGS -g0 -O2" \
./configure \
--build="$CBUILD" \
--host="$CHOST" \
@@ -35,6 +75,10 @@ build() {
make
}
+check() {
+ make check
+}
+
package() {
make DESTDIR="$pkgdir" install
}
@@ -44,7 +88,18 @@ doc() {
license="GFDL-1.3-or-later"
}
+readline() {
+ amove \
+ usr/lib/guile/3.0/ccache/ice-9/readline.go \
+ usr/lib/guile/3.0/extensions/guile-readline.so \
+ usr/lib/guile/3.0/extensions/guile-readline.so.0 \
+ usr/lib/guile/3.0/extensions/guile-readline.so.0.0.0 \
+ usr/share/guile/3.0/ice-9/readline.scm
+}
+
sha512sums="
-7b2728e849a3ee482fe9a167dd76cc4835e911cc94ca0724dd51e8a813a240c6b5d2de84de16b46469ab24305b5b153a3c812fec942e007d3310bba4d1cf947d guile-3.0.8.tar.gz
+6fd14f0860c7f5b7a9b53c43a60c6a7ca53072684ddc818cd10c720af2c5761ef110b29af466b89ded884fb66d66060894b14e615eaebee8844c397932d05fa2 guile-3.0.9.tar.gz
54a9fe0fa2ea83da7ae61f96612e3e653ec80f60ab41d1995dc44bd05c7ff68cc4fab36a655e8835c4ab1cf0966765a299ef2d73cb9f69d3ef955e6aeaa8062d 0002-Mark-mutex-with-owner-not-retained-threads-test-as-u.patch
+257b32dda7a9195f14dadb00e2699fa7711198087f78cc100b768cf9d5bb8a0d69fb5b84003a893e05c63b7f6fb9f550d3991fb41d840d9826214529d20610c1 failing-encoding-test.patch
+810e4afc6b097c169672e23725426a9a523c1bdeabe7770e3dfb9ad0b2e0c0f93c7207e1d34b1190f71ae8518a488ecae3f114094db5aa74f086d42ae7a30381 failing-filesys-test.patch
"
diff --git a/main/guile/failing-encoding-test.patch b/main/guile/failing-encoding-test.patch
new file mode 100644
index 00000000000..ae262bacc68
--- /dev/null
+++ b/main/guile/failing-encoding-test.patch
@@ -0,0 +1,26 @@
+The set-port-encoding! procedure does not work properly on musl
+as musl only supports UTF-8 text encoding.
+
+diff -upr guile-3.0.8.orig/test-suite/tests/reader.test guile-3.0.8/test-suite/tests/reader.test
+--- guile-3.0.8.orig/test-suite/tests/reader.test 2022-07-22 17:32:35.731931222 +0200
++++ guile-3.0.8/test-suite/tests/reader.test 2022-07-22 17:33:06.671996144 +0200
+@@ -405,19 +405,6 @@
+ (string->list s2)
+ (list #\" #\\ #\b #\\ #\x #\1 #\8 #\; #\space #\0 #\@ #\"))))
+
+- (pass-if "display R6RS string escapes"
+- (string=?
+- (with-read-options '(r6rs-hex-escapes)
+- (lambda ()
+- (let ((pt (open-output-string))
+- (s1 (apply string (map integer->char
+- '(#xFF #x100 #xFFF #x1000 #xFFFF #x10000)))))
+- (set-port-encoding! pt "ASCII")
+- (set-port-conversion-strategy! pt 'escape)
+- (display s1 pt)
+- (get-output-string pt))))
+- "\\xff;\\x100;\\xfff;\\x1000;\\xffff;\\x10000;"))
+-
+ (pass-if "one-digit hex escape"
+ (eqv? (with-input-from-string "#\\xA" read)
+ (integer->char #x0A)))
diff --git a/main/guile/failing-filesys-test.patch b/main/guile/failing-filesys-test.patch
new file mode 100644
index 00000000000..a64df5fe362
--- /dev/null
+++ b/main/guile/failing-filesys-test.patch
@@ -0,0 +1,24 @@
+diff --git a/test-suite/tests/filesys.test b/test-suite/tests/filesys.test
+index 45e77c8..a887109 100644
+--- a/test-suite/tests/filesys.test
++++ b/test-suite/tests/filesys.test
+@@ -457,19 +457,6 @@
+ (pass-if-equal "file name of symlink" (test-file)
+ (readlink (test-symlink)))
+
+- (pass-if-equal "port representing a symlink" (test-file)
+- (let ()
+- (unless (and (provided? 'readlink-port)
+- (defined? 'O_NOFOLLOW)
+- (defined? 'O_PATH)
+- (not (= 0 O_NOFOLLOW))
+- (not (= 0 O_PATH)))
+- (throw 'unsupported))
+- (define port (open (test-symlink) (logior O_NOFOLLOW O_PATH)))
+- (define points-to (false-if-exception (readlink port)))
+- (close-port port)
+- points-to))
+-
+ (pass-if-exception "not a port or file name" exception:wrong-type-arg
+ (readlink '(stuff)))))
+
diff --git a/main/gummiboot/APKBUILD b/main/gummiboot/APKBUILD
index 9a10fd5d1fb..f6a50f56e74 100644
--- a/main/gummiboot/APKBUILD
+++ b/main/gummiboot/APKBUILD
@@ -1,9 +1,9 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gummiboot
pkgver=48.1
-pkgrel=2
+pkgrel=7
pkgdesc="Simple EFI Boot Manager"
-url="http://freedesktop.org/wiki/Software/gummiboot"
+url="https://cgit.freedesktop.org/gummiboot/"
arch="x86 x86_64 aarch64"
license="LGPL-2.0-or-later"
depends="$pkgname-efistub=$pkgver-r$pkgrel"
@@ -15,6 +15,7 @@ source="https://dev.alpinelinux.org/archive/gummiboot/gummiboot-$pkgver.tar.gz
sysmacros.patch
remove-conflicts.patch
"
+options="!check"
prepare() {
default_prepare
@@ -26,7 +27,10 @@ build() {
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr
- make -j1 EFI_CFLAGS="$CFLAGS -std=gnu89"
+ # new gnu-efi has stddef.h include which relies on it coming from syste.,
+ # this uses -nostdinc and doesn't add it. these cflags come last, so it still
+ # shouldn't shadow the efi incdir.
+ make -j1 EFI_CFLAGS="$CFLAGS -I/usr/include -std=gnu89"
}
package() {
@@ -36,6 +40,9 @@ package() {
efistub() {
pkgdesc="Linux UEFI stub from the gummiboot project"
depends=
+ provides="efistub"
+ provider_priority=100 # highest
+
amove usr/lib/gummiboot/*.efi.stub
}
diff --git a/main/gvpe/APKBUILD b/main/gvpe/APKBUILD
index c69b851805d..953ca1f096f 100644
--- a/main/gvpe/APKBUILD
+++ b/main/gvpe/APKBUILD
@@ -2,14 +2,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gvpe
pkgver=3.1
-pkgrel=2
+pkgrel=6
pkgdesc="GNU Virtual Private Ethernet"
url="http://software.schmorp.de/pkg/gvpe.html"
arch="all"
-license="GPL-2.0"
-depends=""
-makedepends="openssl1.1-compat-dev libev-dev zlib-dev gmp-dev linux-headers"
-source="https://ftp.gnu.org/gnu/$pkgname/${pkgname}-${pkgver}.tar.gz
+license="GPL-2.0-or-later"
+makedepends="openssl-dev>3 libev-dev zlib-dev gmp-dev linux-headers"
+source="https://ftp.gnu.org/gnu/gvpe/gvpe-$pkgver.tar.gz
compile-fix.patch
musl-getopt_long.patch
gvpe.conf.example
@@ -17,12 +16,15 @@ source="https://ftp.gnu.org/gnu/$pkgname/${pkgname}-${pkgver}.tar.gz
gvpe.initd
if-up
"
-subpackages="$pkgname-doc"
+subpackages="$pkgname-doc $pkgname-openrc"
+options="!check"
-builddir="${srcdir}"/${pkgname}-${pkgver}
+prepare() {
+ default_prepare
+ update_config_guess
+}
build() {
- cd "${builddir}"
./configure \
--prefix=/usr \
--sysconfdir=/etc \
@@ -34,13 +36,12 @@ build() {
}
package() {
- cd "${builddir}"
- make DESTDIR="${pkgdir}" install
- install -D -m0644 "${srcdir}"/gvpe.confd "${pkgdir}"/etc/conf.d/gvpe
- install -D -m0644 "${srcdir}"/gvpe.conf.example \
- "${pkgdir}"/etc/gvpe/gvpe.conf.example
- install -D -m0755 "${srcdir}"/if-up "${pkgdir}"/etc/gvpe/if-up
- install -D -m0755 "${srcdir}"/gvpe.initd "${pkgdir}"/etc/init.d/gvpe
+ make DESTDIR="$pkgdir" install
+ install -D -m0644 "$srcdir"/gvpe.confd "$pkgdir"/etc/conf.d/gvpe
+ install -D -m0644 "$srcdir"/gvpe.conf.example \
+ "$pkgdir"/etc/gvpe/gvpe.conf.example
+ install -D -m0755 "$srcdir"/if-up "$pkgdir"/etc/gvpe/if-up
+ install -D -m0755 "$srcdir"/gvpe.initd "$pkgdir"/etc/init.d/gvpe
}
sha512sums="4deeefb5b9773e3eb46f5fcbff1fe61e64824f7b29615b84b3415ff2a240071d5e19f00a6ecac5dd491a8dbf8c9636efc4a9cde943dbdba5ef4c6bc04597840a gvpe-3.1.tar.gz
diff --git a/main/gyp/APKBUILD b/main/gyp/APKBUILD
new file mode 100644
index 00000000000..91884ff4374
--- /dev/null
+++ b/main/gyp/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Contributor: Leo <thinkabit.ukim@gmail.com>
+# Maintainer:
+pkgname=gyp
+pkgver=20230301
+_gitrev=c6d8b9f7ee355cff1531b0f369cd338a50baeb07
+pkgrel=3
+pkgdesc="Generate Your Projects Meta-Build system"
+options="!check" # Tests currently fail
+url="https://gyp.gsrc.io"
+arch="noarch"
+license="BSD-3-Clause"
+depends="python3 ninja py3-six"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
+source="$pkgname-$_gitrev.tar.gz::https://github.com/chromium/gyp/archive/$_gitrev.tar.gz
+ py3.8.patch
+ fips.patch
+ cmake.patch
+ "
+builddir="$srcdir/$pkgname-$_gitrev"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+ce447cfe6310251ef0db3b2c73a9127762fd7096c4d0934740cca9298a77e4bd2476932b6cc18759d276d41973d14af9b34618c0fa493aac76c27b1a382f08c9 gyp-c6d8b9f7ee355cff1531b0f369cd338a50baeb07.tar.gz
+5ad7993ffc78421a87a4825394d704f651c5fa82dc971cefd2af9440ee2d6898b7f61276da92046ab2eca26d8320be848d9a3f65bfd18b98dd2a4ce06c78980d py3.8.patch
+04bfc412a245e328d2cb2f9ca383fe31b0b3ae69ffad04cfbe21b882ef807ad0d89f807483eb18980ea41eccd111de1a99cb282f1b79f6a406b17ee6ca48d9de fips.patch
+8ed4eeec23acc437e0aeb89bc6c3fda5de0a2a45167e396b6ffc8fba704fb7bc11193e726b47fa864c7ae75b1442cbc2ac7c356427f7a995e37e8ac3440d2b3c cmake.patch
+"
diff --git a/main/gyp/cmake.patch b/main/gyp/cmake.patch
new file mode 100644
index 00000000000..9ed7dba106f
--- /dev/null
+++ b/main/gyp/cmake.patch
@@ -0,0 +1,45 @@
+Patch-Source: https://github.com/archlinux/svntogit-packages/blob/2a3fe81edf582af4e97e9954ad20408306273561/trunk/0002-gyp-fix-cmake.patch
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org>
+Date: Sat, 25 Jun 2022 20:41:40 +0000
+Subject: [PATCH] gyp-fix-cmake
+
+(From Fedora, with fixed exception type)
+---
+ pylib/gyp/generator/cmake.py | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/pylib/gyp/generator/cmake.py b/pylib/gyp/generator/cmake.py
+index 4a2041cf2687..12461dc1d48b 100644
+--- a/pylib/gyp/generator/cmake.py
++++ b/pylib/gyp/generator/cmake.py
+@@ -40,9 +40,9 @@ import gyp.xcode_emulation
+
+ try:
+ # maketrans moved to str in python3.
+- _maketrans = string.maketrans
+-except NameError:
+ _maketrans = str.maketrans
++except AttributeError:
++ _maketrans = string.maketrans
+
+ generator_default_variables = {
+ 'EXECUTABLE_PREFIX': '',
+@@ -281,7 +281,7 @@ def WriteActions(target_name, actions, extra_sources, extra_deps,
+ dirs = set(dir for dir in (os.path.dirname(o) for o in outputs) if dir)
+
+ if int(action.get('process_outputs_as_sources', False)):
+- extra_sources.extend(zip(cmake_outputs, outputs))
++ extra_sources.extend(list(zip(cmake_outputs, outputs)))
+
+ # add_custom_command
+ output.write('add_custom_command(OUTPUT ')
+@@ -987,7 +987,7 @@ def WriteTarget(namer, qualified_target, target_dicts, build_dir, config_to_use,
+
+ # XCode settings
+ xcode_settings = config.get('xcode_settings', {})
+- for xcode_setting, xcode_value in xcode_settings.viewitems():
++ for xcode_setting, xcode_value in xcode_settings.items():
+ SetTargetProperty(output, cmake_target_name,
+ "XCODE_ATTRIBUTE_%s" % xcode_setting, xcode_value,
+ '' if isinstance(xcode_value, str) else ' ')
diff --git a/main/gyp/fips.patch b/main/gyp/fips.patch
new file mode 100644
index 00000000000..902ac09f9f5
--- /dev/null
+++ b/main/gyp/fips.patch
@@ -0,0 +1,47 @@
+Patch-Source: https://github.com/archlinux/svntogit-packages/blob/2a3fe81edf582af4e97e9954ad20408306273561/trunk/0003-gyp-fips.patch
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <heftig@archlinux.org>
+Date: Sat, 25 Jun 2022 20:45:54 +0000
+Subject: [PATCH] gyp-fips
+
+(From Fedora, ported to gyp master)
+---
+ pylib/gyp/generator/make.py | 2 +-
+ pylib/gyp/generator/ninja.py | 4 ++--
+ 2 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/pylib/gyp/generator/make.py b/pylib/gyp/generator/make.py
+index 997eec08666e..06c763db609a 100644
+--- a/pylib/gyp/generator/make.py
++++ b/pylib/gyp/generator/make.py
+@@ -1774,7 +1774,7 @@ $(obj).$(TOOLSET)/$(TARGET)/%%.o: $(obj)/%%%s FORCE_DO_CMD
+
+ # Hash the target name to avoid generating overlong filenames.
+ cmdstring = (command if command else self.target).encode('utf-8')
+- cmddigest = hashlib.sha1(cmdstring).hexdigest()
++ cmddigest = hashlib.sha1(cmdstring, usedforsecurity=False).hexdigest()
+ intermediate = "%s.intermediate" % (cmddigest)
+ self.WriteLn('%s: %s' % (' '.join(outputs), intermediate))
+ self.WriteLn('\t%s' % '@:');
+diff --git a/pylib/gyp/generator/ninja.py b/pylib/gyp/generator/ninja.py
+index 3bcfe352925b..c439c8b728ad 100644
+--- a/pylib/gyp/generator/ninja.py
++++ b/pylib/gyp/generator/ninja.py
+@@ -752,7 +752,7 @@ class NinjaWriter(object):
+ if self.flavor == 'win':
+ # WriteNewNinjaRule uses unique_name for creating an rsp file on win.
+ extra_bindings.append(('unique_name',
+- hashlib.md5(six.ensure_binary(outputs[0])).hexdigest()))
++ hashlib.md5(six.ensure_binary(outputs[0]), usedforsecurity=False).hexdigest()))
+
+ self.ninja.build(outputs, rule_name, self.GypPathToNinja(source),
+ implicit=inputs,
+@@ -2389,7 +2389,7 @@ def GenerateOutputForConfig(target_list, target_dicts, data, params,
+ qualified_target_for_hash = gyp.common.QualifiedTarget(build_file, name,
+ toolset)
+ qualified_target_for_hash = qualified_target_for_hash.encode('utf-8')
+- hash_for_rules = hashlib.md5(qualified_target_for_hash).hexdigest()
++ hash_for_rules = hashlib.md5(qualified_target_for_hash, usedforsecurity=False).hexdigest()
+
+ base_path = os.path.dirname(build_file)
+ obj = 'obj'
diff --git a/main/gyp/py3.8.patch b/main/gyp/py3.8.patch
new file mode 100644
index 00000000000..933bb2eab21
--- /dev/null
+++ b/main/gyp/py3.8.patch
@@ -0,0 +1,72 @@
+Patch-Source: https://github.com/archlinux/svntogit-packages/blob/2a3fe81edf582af4e97e9954ad20408306273561/trunk/0001-gyp-python38.patch
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Tom Hughes <tom@compton.nu>
+Date: Fri, 23 Aug 2019 09:33:14 +0100
+Subject: [PATCH] gyp-python38
+
+Fix python 3.8 warnings
+
+(From Fedora)
+---
+ pylib/gyp/input.py | 2 +-
+ test/lib/TestCmd.py | 6 +++---
+ test/lib/TestGyp.py | 2 +-
+ 3 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/pylib/gyp/input.py b/pylib/gyp/input.py
+index 4c1289164045..2bea3341adc5 100644
+--- a/pylib/gyp/input.py
++++ b/pylib/gyp/input.py
+@@ -1183,7 +1183,7 @@ def LoadVariablesFromVariablesDict(variables, the_dict, the_dict_key):
+ if variable_name in variables:
+ # If the variable is already set, don't set it.
+ continue
+- if the_dict_key is 'variables' and variable_name in the_dict:
++ if the_dict_key == 'variables' and variable_name in the_dict:
+ # If the variable is set without a % in the_dict, and the_dict is a
+ # variables dict (making |variables| a varaibles sub-dict of a
+ # variables dict), use the_dict's definition.
+diff --git a/test/lib/TestCmd.py b/test/lib/TestCmd.py
+index 1ec50933a4a8..457694c877d4 100644
+--- a/test/lib/TestCmd.py
++++ b/test/lib/TestCmd.py
+@@ -283,7 +283,7 @@ if os.name in ('posix', 'nt'):
+ else:
+ tempfile.template = 'testcmd.'
+
+-re_space = re.compile('\s')
++re_space = re.compile(r'\s')
+
+ _Cleanup = []
+
+@@ -882,7 +882,7 @@ class TestCmd(object):
+ #self.diff_function = difflib.unified_diff
+ self._dirlist = []
+ self._preserve = {'pass_test': 0, 'fail_test': 0, 'no_result': 0}
+- if 'PRESERVE' in os.environ and os.environ['PRESERVE'] is not '':
++ if 'PRESERVE' in os.environ and os.environ['PRESERVE'] != '':
+ self._preserve['pass_test'] = os.environ['PRESERVE']
+ self._preserve['fail_test'] = os.environ['PRESERVE']
+ self._preserve['no_result'] = os.environ['PRESERVE']
+@@ -1103,7 +1103,7 @@ class TestCmd(object):
+ the temporary working directories to be preserved for all
+ conditions.
+ """
+- if conditions is ():
++ if len(conditions) == 0:
+ conditions = ('pass_test', 'fail_test', 'no_result')
+ for cond in conditions:
+ self._preserve[cond] = 1
+diff --git a/test/lib/TestGyp.py b/test/lib/TestGyp.py
+index 2aa78684f517..badfa910100f 100644
+--- a/test/lib/TestGyp.py
++++ b/test/lib/TestGyp.py
+@@ -743,7 +743,7 @@ def FindVisualStudioInstallation():
+ build_tool = None
+ if not build_tool:
+ args1 = ['reg', 'query',
+- 'HKLM\Software\Microsoft\VisualStudio\SxS\VS7',
++ r'HKLM\Software\Microsoft\VisualStudio\SxS\VS7',
+ '/v', '15.0', '/reg:32']
+ build_tool = subprocess.check_output(args1).decode(
+ 'utf-8', 'ignore').strip().split(b'\r\n').pop().split(b' ').pop()
diff --git a/main/gzip/APKBUILD b/main/gzip/APKBUILD
index 92a548f46d6..25480f72140 100644
--- a/main/gzip/APKBUILD
+++ b/main/gzip/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=gzip
-pkgver=1.12
+pkgver=1.13
pkgrel=0
pkgdesc="Popular data compression program"
subpackages="$pkgname-doc"
@@ -9,6 +9,7 @@ url="https://www.gnu.org/software/gzip/"
arch="all"
license="GPL-3.0-or-later"
depends="less"
+checkdepends="diffutils grep perl"
source="https://ftp.gnu.org/gnu/gzip/gzip-$pkgver.tar.xz"
# secfixes:
@@ -47,5 +48,5 @@ package() {
}
sha512sums="
-116326fe991828227de150336a0c016f4fe932dfbb728a16b4a84965256d9929574a4f5cfaf3cf6bb4154972ef0d110f26ab472c93e62ec9a5fd7a5d65abea24 gzip-1.12.tar.xz
+e3d4d4aa4b2e53fdad980620307257c91dfbbc40bcec9baa8d4e85e8327f55e2ece552c9baf209df7b66a07103ab92d4954ac53c86c57fbde5e1dd461143f94c gzip-1.13.tar.xz
"
diff --git a/main/haproxy/APKBUILD b/main/haproxy/APKBUILD
index cab313b79c7..bbcfa4ba334 100644
--- a/main/haproxy/APKBUILD
+++ b/main/haproxy/APKBUILD
@@ -4,7 +4,7 @@
pkgname=haproxy
# NOTE: Upgrade only to LTS versions announced on upstream site url!
# Using LTS versions is easier to keep it in good shape for stable releases
-pkgver=2.6.1
+pkgver=2.8.9
_pkgmajorver=${pkgver%.*}
pkgrel=0
pkgdesc="A TCP/HTTP reverse proxy for high availability environments"
@@ -12,9 +12,8 @@ url="https://www.haproxy.org/"
arch="all"
license="(GPL-2.0-or-later AND GPL-2.1-or-later) WITH OpenSSL-Exception"
_luaver=5.4
-options="!check textrels" # FIXME: depends on vtest
-# riscv64 build reports textrels
-makedepends="pcre-dev openssl1.1-compat-dev linux-headers lua$_luaver-dev zlib-dev"
+options="!check" # FIXME: depends on vtest
+makedepends="pcre2-dev openssl-dev linux-headers lua$_luaver-dev zlib-dev"
install="haproxy.pre-install haproxy.pre-upgrade"
subpackages="$pkgname-doc $pkgname-openrc"
source="https://www.haproxy.org/download/$_pkgmajorver/src/haproxy-$pkgver.tar.gz
@@ -26,11 +25,11 @@ source="https://www.haproxy.org/download/$_pkgmajorver/src/haproxy-$pkgver.tar.g
# - CVE-2020-11100
build() {
- case "$CARCH" in mips|mipsel*|riscv64) _carchflags="ADDLIB=-latomic";; esac
make \
$_carchflags \
TARGET=linux-musl \
- USE_PCRE=1 \
+ USE_PCRE2=1 \
+ USE_PCRE2_JIT=1 \
USE_OPENSSL=1 \
USE_ZLIB=1 \
USE_LUA=1 \
@@ -58,7 +57,7 @@ package() {
}
sha512sums="
-003c74cb7acfd5da71b8b3cdc2d75820fd7c354c411d2703c60824bd4babfd4a209f87f5a94b1488a1fb4c575db1f694209072cc99821553407b6a8ba4d2d9e5 haproxy-2.6.1.tar.gz
+087dfe318bd56c3b1e834975277a35f5ebf434fdc4d342a78a24e8bec2f1d5a07d958383581eae6277754cd138e69f465e1d8fe6f1eae2f94f14a9914082bb7f haproxy-2.8.9.tar.gz
4aa8fc812079baf1d17cf9484a9b44568c3dd94f35243a57a4a7868e7f88146a4e94c80ea8ab86f1b08a524567e269a3ec119b67fc679f6bd0d9f1c70ce4f080 haproxy.initd
26bc8f8ac504fcbaec113ecbb9bb59b9da47dc8834779ebbb2870a8cadf2ee7561b3a811f01e619358a98c6c7768e8fdd90ab447098c05b82e788c8212c4c41f haproxy.cfg
"
diff --git a/main/haproxy/haproxy.pre-install b/main/haproxy/haproxy.pre-install
index 85cefc98146..c1d34dbc25e 100644
--- a/main/haproxy/haproxy.pre-install
+++ b/main/haproxy/haproxy.pre-install
@@ -1,7 +1,7 @@
#!/bin/sh
addgroup -S haproxy 2>/dev/null
-adduser -S -D -H -h /var/lib/haproxy -s /bin/false \
+adduser -S -D -H -h /var/lib/haproxy -s /sbin/nologin \
-G haproxy -g haproxy haproxy 2>/dev/null
# move config to new location
diff --git a/main/harfbuzz/APKBUILD b/main/harfbuzz/APKBUILD
index 24e51dcec3f..d373fc9c021 100644
--- a/main/harfbuzz/APKBUILD
+++ b/main/harfbuzz/APKBUILD
@@ -1,19 +1,43 @@
# Contributor: Sören Tempel <soeren+alpinelinux@soeren-tempel.net>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=harfbuzz
-pkgver=4.4.1
+pkgver=8.4.0
pkgrel=0
pkgdesc="Text shaping library"
-url="https://freedesktop.org/wiki/Software/HarfBuzz"
+url="https://harfbuzz.github.io/"
arch="all"
license="MIT"
-makedepends="freetype-dev glib-dev gobject-introspection-dev cairo-dev icu-dev
- graphite2-dev meson gtk-doc"
+makedepends="
+ cairo-dev
+ freetype-dev
+ glib-dev
+ gobject-introspection-dev
+ graphite2-dev
+ gtk-doc
+ icu-dev
+ meson
+ "
checkdepends="python3"
-subpackages="$pkgname-static $pkgname-dev $pkgname-icu $pkgname-utils $pkgname-doc"
-source="harfbuzz-$pkgver.tar.gz::https://github.com/harfbuzz/harfbuzz/archive/$pkgver.tar.gz"
+subpackages="
+ $pkgname-static
+ $pkgname-dev
+ $pkgname-cairo
+ $pkgname-doc
+ $pkgname-gobject
+ $pkgname-icu
+ $pkgname-subset
+ $pkgname-utils
+ "
+source="https://github.com/harfbuzz/harfbuzz/releases/download/$pkgver/harfbuzz-$pkgver.tar.xz"
+
+# secfixes:
+# 4.4.1-r0:
+# - CVE-2022-33068
build() {
+ CFLAGS="$CFLAGS -O2 -flto=auto -ffat-lto-objects" \
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto -ffat-lto-objects" \
+ CPPFLAGS="$CPPFLAGS -O2 -flto=auto -ffat-lto-objects" \
abuild-meson \
--default-library=both \
-Dglib=enabled \
@@ -21,40 +45,55 @@ build() {
-Dgraphite=enabled \
-Dicu=enabled \
-Dfreetype=enabled \
+ -Dtests="$(want_check && echo enabled || echo disabled)" \
-Dcairo=enabled \
-Ddocs=enabled \
. output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
check() {
- meson test --no-rebuild -v -C output
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
-static() {
- pkgdesc="$pkgdesc (static libraries)"
-
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib/
-}
-
icu() {
pkgdesc="Harfbuzz ICU support library"
replaces="harfbuzz"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/lib*icu.so.* "$subpkgdir"/usr/lib/
+
+ amove usr/lib/lib*icu.so.*
+}
+
+gobject() {
+ pkgdesc="Harfbuzz gobject library"
+ amove usr/lib/lib*gobject.so.*
+}
+
+cairo() {
+ pkgdesc="Harfbuzz cairo library"
+ amove usr/lib/lib*cairo.so.*
+}
+
+subset() {
+ pkgdesc="Harfbuzz subset library"
+ amove usr/lib/lib*subset.so.*
}
utils() {
pkgdesc="$pkgdesc (utilities)"
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+
+ amove usr/bin
+}
+
+dev() {
+ default_dev
+ provides="harfbuzz-bootstrap-dev"
+ provider_priority=2
}
sha512sums="
-bbc415d7b74408b1e8d34bfbc19a3cab002471fdd56d71b469c3129f0eae5532d5c7aaae7bb5cc3942fea6008d2ed9e96a7b20b10f4f5e46db63cecfa5c0248e harfbuzz-4.4.1.tar.gz
+9d79ea86f7642f2f1a8726e12a48363eb395162c9b50524e7651b63ad3bb458a69fc82427dbcbfe2550231138f7e454b2c12097a51890f63c645fa3dc668f542 harfbuzz-8.4.0.tar.xz
"
diff --git a/main/haserl/APKBUILD b/main/haserl/APKBUILD
index dc1cc712beb..37f858a1570 100644
--- a/main/haserl/APKBUILD
+++ b/main/haserl/APKBUILD
@@ -3,12 +3,11 @@ _luaversions="5.4 5.3 5.2 5.1"
_defaultlua="5.4"
pkgname=haserl
pkgver=0.9.36
-pkgrel=1
+pkgrel=4
pkgdesc="Html And Shell Embedded Report Language"
-url="http://haserl.sourceforge.net/"
+url="https://haserl.sourceforge.net/"
arch="all"
-license="GPL-2.0"
-depends=""
+license="GPL-2.0-only"
makedepends="automake autoconf"
subpackages="$pkgname-doc"
for _i in $_luaversions; do
@@ -17,27 +16,22 @@ for _i in $_luaversions; do
subpackages="$subpackages haserl-lua$_i:split_${_i/./_}"
done
options="suid !check" # no test suite
-source="https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
+source="https://downloads.sourceforge.net/haserl/haserl-$pkgver.tar.gz"
# secfixes:
# 0.9.36-r0:
# - CVE-2021-29133
-_sdir="$srcdir"/$pkgname-$pkgver
prepare() {
- cd "$_sdir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
- sed -i -e 's/^ /\t/' src/Makefile.am || return 1
+ default_prepare
+
+ sed -i -e 's/^ /\t/' src/Makefile.am
rm -f src/haserl_lualib.inc
- aclocal && autoconf && autoheader && automake --add-missing || return 1
+ aclocal && autoconf && autoheader && automake --add-missing
for _i in $_luaversions; do
- cp -r "$_sdir" "$srcdir"/build-$_i
+ cp -r "$builddir" "$srcdir"/build-$_i
done
}
@@ -48,16 +42,15 @@ build() {
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
- --with-lua=lua$_i \
- || return 1
- make || return 1
+ --with-lua=lua$_i
+ make
done
}
package() {
for _i in $_luaversions; do
cd "$srcdir"/build-$_i
- make DESTDIR="$pkgdir/" install || return 1
+ make DESTDIR="$pkgdir/" install
chmod 4111 "$pkgdir"/usr/bin/haserl
mv "$pkgdir"/usr/bin/haserl "$pkgdir"/usr/bin/haserl-lua$_i
done
@@ -65,14 +58,12 @@ package() {
}
_split() {
- local d= _ver=$1
+ local _ver=$1
pkgdesc="Html And Shell Embedded Report Language with Lua $_ver support"
replaces="$pkgname"
depends=
- if [ -f "$pkgdir"/usr/bin/haserl-lua$_ver ]; then
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/haserl-lua$_ver "$subpkgdir"/usr/bin/ || return 1
- fi
+
+ amove usr/bin/haserl-lua$_ver
}
for _i in $_luaversions; do
diff --git a/main/haveged/APKBUILD b/main/haveged/APKBUILD
index 91cea53187e..2827bda5b62 100644
--- a/main/haveged/APKBUILD
+++ b/main/haveged/APKBUILD
@@ -3,7 +3,7 @@
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=haveged
pkgver=1.9.18
-pkgrel=0
+pkgrel=2
pkgdesc="Entropy harvesting daemon using CPU timings"
url="https://www.issihosts.com/haveged/"
arch="all"
diff --git a/main/hdparm/APKBUILD b/main/hdparm/APKBUILD
index 7727cca9a28..61d5709e72e 100644
--- a/main/hdparm/APKBUILD
+++ b/main/hdparm/APKBUILD
@@ -1,9 +1,9 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=hdparm
-pkgver=9.63
-pkgrel=0
+pkgver=9.65
+pkgrel=2
pkgdesc="Utility for manipulating IDE device parameters"
-url="https://sourceforge.net/projects/hdparm"
+url="https://sourceforge.net/projects/hdparm/"
arch="all"
license="BSD-2-Clause OR GPL-2.0-only"
makedepends="linux-headers"
@@ -29,5 +29,5 @@ package() {
}
sha512sums="
-1d09dc2c79c31f45fa242dd5bf259e84281d1464e49ada9fd53bb6d58cb0458046e534a93f9d6de18478ca5db50b6d36ecbe5b784c0c681a1db29f15fadd525c hdparm-9.63.tar.gz
+4ffc8902b90cee10d68af8ddb9f3b9454d523ecd49cdaaed254b4d7a999462a8ad5ec1bb5d7684b09fefa41b5941ab533b167dad290003b51c795a633ca88913 hdparm-9.65.tar.gz
"
diff --git a/main/heimdal/APKBUILD b/main/heimdal/APKBUILD
index 48b898a04ae..1e440480cd1 100644
--- a/main/heimdal/APKBUILD
+++ b/main/heimdal/APKBUILD
@@ -1,18 +1,18 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
pkgname=heimdal
-pkgver=7.7.0
+pkgver=7.8.0
_ver=${pkgver/_rc/rc}
-pkgrel=7
-pkgdesc="Iplementation of Kerberos 5"
+pkgrel=3
+pkgdesc="Implementation of Kerberos 5"
arch="all"
url="https://github.com/heimdal/"
license="BSD-3-Clause"
depends="krb5-conf"
-depends_dev="openssl1.1-compat-dev e2fsprogs-dev"
+depends_dev="openssl-dev>3 e2fsprogs-dev"
makedepends="$depends_dev autoconf automake bash gawk libtool
- ncurses-dev perl readline-dev sqlite-dev texinfo perl-json gdbm-dev"
-options="suid !check" #FIXME: FAIL: snprintf-test
+ ncurses-dev perl readline-dev sqlite-dev texinfo perl-json python3 gdbm-dev"
+options="suid !check" #FIXME: FAIL: test_nist
subpackages="$pkgname-doc $pkgname-dev $pkgname-libs $pkgname-su $pkgname-openrc"
source="https://github.com/heimdal/heimdal/releases/download/heimdal-$pkgver/heimdal-$pkgver.tar.gz
heimdal-kadmind.initd
@@ -22,11 +22,21 @@ source="https://github.com/heimdal/heimdal/releases/download/heimdal-$pkgver/hei
005_all_heimdal-suid_fix.patch
heimdal_missing-include.patch
CVE-2018-16860.patch
- autoconf-270.patch
+ CVE-2022-45142.patch
silence-include-headers-redirect-warnings.patch
"
# secfixes:
+# 7.8.0-r2:
+# - CVE-2022-45142
+# 7.7.1-r0:
+# - CVE-2019-14870
+# - CVE-2021-3671
+# - CVE-2021-44758
+# - CVE-2022-3437
+# - CVE-2022-41916
+# - CVE-2022-42898
+# - CVE-2022-44640
# 7.5.3-r4:
# - CVE-2018-16860
# 7.4.0-r2:
@@ -43,8 +53,6 @@ prepare() {
}
build() {
- export LDFLAGS="$LDFLAGS -Wl,--as-needed"
-
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -61,12 +69,6 @@ build() {
# make sure we use system version
rm -r lib/sqlite lib/com_err
- # workarount a parallell build issue
- make -C lib/asn1 der-protos.h der-private.h
- make -C lib/kadm5 kadm5-protos.h kadm5-private.h kadm5_err.h
- make -C lib/krb5 krb5-protos.h krb5-private.h krb5_err.h krb_err.h \
- heim_err.h k524_err.h
- make -C lib/hx509 hx509-private.h hx509-protos.h
make
}
@@ -79,7 +81,6 @@ package() {
mandir=/usr/share/man infodir=/usr/share/info datadir=/var/lib/heimdal \
localstatedir=/var/lib/heimdal libexecdir=/usr/sbin install
-
install -m755 -D "$srcdir"/heimdal-kadmind.initd \
"$pkgdir"/etc/init.d/heimdal-kadmind
install -m755 -D "$srcdir"/heimdal-kdc.initd \
@@ -133,13 +134,13 @@ su() {
}
sha512sums="
-6660939b5a36ce36310721a08a089fb671d1e3d2e8ac74ea4775bfa5f8f772d32de805551456200fe96cc486c092c44beb84f5dd877008bc305490ee971bbf99 heimdal-7.7.0.tar.gz
+0167345aca77d65b7a1113874eee5b65ec6e1fec1f196d57e571265409fa35ef95a673a4fd4aafbb0ab5fb5b246b97412353a68d6613a8aff6393a9f1e72999e heimdal-7.8.0.tar.gz
0ae0fec4bdb3907d9e82e788e12ef185dd00e6db4c17f55758da5600fedd72ed1118b6b492d039f91cc54d54bf2f79f624ea38a68067e424b737b128494a4bbd heimdal-kadmind.initd
4dca69bb1c1c6dfce8c0fc1da84855e4549be478ab09511fa5143ee61d1609fed7f3303179bc1e499b0f20445e04c41eda132dd1c5f72e2fea4fcf60a35ad2a9 heimdal-kdc.initd
abee8390632fa775e74900d09e5c72b02fe4f9616b43cc8d0a76175486ed6d4707fb3ce4d06ceb09b0e8d1384e037c3cff6525e11def0122c35c32eebd0d196f heimdal-kpasswdd.initd
2a6b20588a86a9ea3c35209b96ef2da0b39bc3112aec1505e69a60efc9ffb9ddc1d0dbdfaf864142e9d2f81da3d2653de56d6ffa01871c20fde17e4642625c56 005_all_heimdal-suid_fix.patch
e89efdc942c512363aac1d9797c6bf622324e9200e282bc5ed680300b9e1b39a4ea20f059cdac8f22f972eb0af0e625fd41f267ebcafcfec0aaa81192aff79c1 heimdal_missing-include.patch
36738795eb3478b55790bf1927f85a421b13b6b47dcc273daeb6630c39a4e1c1258148fa0e9f004ae59a9ac89caf54cb25efedb417e852e42a2c32d02e43fd56 CVE-2018-16860.patch
-bb9a5060f295ad0f42dd3cd5db0b092b7533fd672343cd899807f3b195b9ad65c1c02caad10e43a8a86530f24acc23ebdab481dd186e4737d3c7296efd0286f2 autoconf-270.patch
-f0c9537d5175b255df47bfb8f2fe7c1a499a9e3daf60990c9b5b2149ebcc2101618441fedfc45668ac17bc05dd2a508227d0aacf38d842579d916d0bee172d51 silence-include-headers-redirect-warnings.patch
+3205ce659c755b1a9e3bca3a3088cf241550fb2343fe46bee4370623b1ea2845395bcf7682a8c472d067067fbf8b3a8ea8809e8d3e6d5f62e05dcd680ba7230b CVE-2022-45142.patch
+5d507a4312bbc59f2b67cb441d0880eaa060e3fdd166b7b8cf9b967d404722a1672e10cc8daedc46a786b8cbbb78de0bc2585d1d4d5b985da16c18f60c87d54f silence-include-headers-redirect-warnings.patch
"
diff --git a/main/heimdal/CVE-2022-45142.patch b/main/heimdal/CVE-2022-45142.patch
new file mode 100644
index 00000000000..917d41578e7
--- /dev/null
+++ b/main/heimdal/CVE-2022-45142.patch
@@ -0,0 +1,22 @@
+diff --git a/lib/gssapi/krb5/arcfour.c b/lib/gssapi/krb5/arcfour.c
+index aa03cbe..c6c15eb 100644
+--- a/lib/gssapi/krb5/arcfour.c
++++ b/lib/gssapi/krb5/arcfour.c
+@@ -365,7 +365,7 @@ _gssapi_verify_mic_arcfour(OM_uint32 * minor_status,
+ return GSS_S_FAILURE;
+ }
+
+- cmp = (ct_memcmp(cksum_data, p + 8, 8) == 0);
++ cmp = (ct_memcmp(cksum_data, p + 8, 8) != 0);
+ if (cmp) {
+ *minor_status = 0;
+ return GSS_S_BAD_MIC;
+@@ -730,7 +730,7 @@ OM_uint32 _gssapi_unwrap_arcfour(OM_uint32 *minor_status,
+ return GSS_S_FAILURE;
+ }
+
+- cmp = (ct_memcmp(cksum_data, p0 + 16, 8) == 0); /* SGN_CKSUM */
++ cmp = (ct_memcmp(cksum_data, p0 + 16, 8) != 0); /* SGN_CKSUM */
+ if (cmp) {
+ _gsskrb5_release_buffer(minor_status, output_message_buffer);
+ *minor_status = 0;
diff --git a/main/heimdal/autoconf-270.patch b/main/heimdal/autoconf-270.patch
deleted file mode 100644
index 05cdc09211c..00000000000
--- a/main/heimdal/autoconf-270.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-commit 22352b90e78e2d162b98b5ef6c84672c397be40a
-Author: Lars Wendler <polynomial-c@gentoo.org>
-Date: Wed Mar 17 17:49:18 2021 +0100
-
- autoconf-2.70 fix
-
- autoconf-2.70 and newer are more strict with quoting etc. and thus generate
- a broken configure file:
-
- configure: 20855: Syntax error: ")" unexpected (expecting "fi")
-
- Gentoo-bug: https://bugs.gentoo.org/776241
- Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
-
-diff --git a/cf/check-var.m4 b/cf/check-var.m4
-index 2fd7bca6f..71d6f70ca 100644
---- a/cf/check-var.m4
-+++ b/cf/check-var.m4
-@@ -20,7 +20,7 @@ AC_MSG_RESULT($ac_foo)
- if test "$ac_foo" = yes; then
- AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_[]$1), 1,
- [Define if you have the `]$1[' variable.])
-- m4_ifval([$2], AC_CHECK_DECLS([$1],[],[],[$2]))
-+ m4_ifval([$2], [AC_CHECK_DECLS([$1],[],[],[$2])])
- fi
- ])
-
diff --git a/main/heimdal/silence-include-headers-redirect-warnings.patch b/main/heimdal/silence-include-headers-redirect-warnings.patch
index 4505096ebf1..76de2535073 100644
--- a/main/heimdal/silence-include-headers-redirect-warnings.patch
+++ b/main/heimdal/silence-include-headers-redirect-warnings.patch
@@ -27,15 +27,15 @@ diff --git a/configure b/configure
index 4cefc43..bc3bf78 100755
--- a/configure
+++ b/configure
-@@ -17965,7 +17965,7 @@ for ac_header in \
- stdint.h \
- sys/auxv.h \
- sys/bswap.h \
-- sys/errno.h \
-+ errno.h \
- sys/ioctl.h \
- sys/mman.h \
- sys/param.h \
+@@ -19706,7 +19706,7 @@
+ printf "%s\n" "#define HAVE_SYS_BSWAP_H 1" >>confdefs.h
+
+ fi
+-ac_fn_c_check_header_compile "$LINENO" "sys/errno.h" "ac_cv_header_sys_errno_h" "$ac_includes_default"
++ac_fn_c_check_header_compile "$LINENO" "errno.h" "ac_cv_header_sys_errno_h" "$ac_includes_default"
+ if test "x$ac_cv_header_sys_errno_h" = xyes
+ then :
+ printf "%s\n" "#define HAVE_SYS_ERRNO_H 1" >>confdefs.h
diff --git a/lib/ipc/hi_locl.h b/lib/ipc/hi_locl.h
index 7efe6ca..3195b44 100644
--- a/lib/ipc/hi_locl.h
@@ -76,5 +76,3 @@ index cc949b0..a82adc5 100644
#include <net/ethernet.h> /* the L2 protocols */
#include <sys/uio.h>
--
-2.35.1
-
diff --git a/main/help2man/APKBUILD b/main/help2man/APKBUILD
index 9360c801491..be1c8a32953 100644
--- a/main/help2man/APKBUILD
+++ b/main/help2man/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=help2man
-pkgver=1.49.2
+pkgver=1.49.3
pkgrel=0
pkgdesc="Create simple man pages from --help output"
url="https://www.gnu.org/software/help2man"
@@ -29,5 +29,5 @@ package() {
}
sha512sums="
-cb8f9f923263d7160a27a7924ae559aba93d7258167888eb9e0e3e97a2014297b8d739b2bb7869acbf586354d099bd91d85f8208b901bce5ba0c5ad4b6abd6d5 help2man-1.49.2.tar.xz
+5f19fad1e38b0572b63ed8bfd146b717fc22dff3a26641e8b5c8431df13da9574679d9a3407da62790db8a29286694ea1bfd751cba168f475302ad31cce845cf help2man-1.49.3.tar.xz
"
diff --git a/main/hicolor-icon-theme/APKBUILD b/main/hicolor-icon-theme/APKBUILD
index f414df9ecd0..bdaf25cca16 100644
--- a/main/hicolor-icon-theme/APKBUILD
+++ b/main/hicolor-icon-theme/APKBUILD
@@ -1,16 +1,15 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=hicolor-icon-theme
pkgver=0.17
-pkgrel=1
+pkgrel=2
pkgdesc="Freedesktop.org Hicolor icon theme"
url="https://www.freedesktop.org/wiki/Software/icon-theme/"
arch="noarch"
options="!check" # Just icon set, no tests.
license="GPL-2.0-only"
-source="https://icon-theme.freedesktop.org/releases/$pkgname-$pkgver.tar.xz"
+source="https://icon-theme.freedesktop.org/releases/hicolor-icon-theme-$pkgver.tar.xz"
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -19,7 +18,6 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
diff --git a/main/highlight/APKBUILD b/main/highlight/APKBUILD
index f31a2ce94fe..07da6df1dd5 100644
--- a/main/highlight/APKBUILD
+++ b/main/highlight/APKBUILD
@@ -2,15 +2,20 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
_luaver=5.4
pkgname=highlight
-pkgver=4.2
-pkgrel=2
+pkgver=4.11
+pkgrel=1
pkgdesc="Fast and flexible source code highlighter"
url="http://www.andre-simon.de/doku/highlight/highlight.html"
-arch="all !mips !mips64" # Segfault during build
-options="!check" # No test suite.
+arch="all"
+options="!check" # No test suite.
license="GPL-3.0-or-later"
makedepends="lua$_luaver-dev boost-dev"
-subpackages="$pkgname-doc"
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-fish-completion
+ $pkgname-zsh-completion
+ "
source="http://www.andre-simon.de/zip/highlight-$pkgver.tar.bz2"
build() {
@@ -22,5 +27,5 @@ package() {
}
sha512sums="
-6b9a193975c108bca4228188b8f3ddb395eb1cedd689b44fb18bfa7d4cb878cf6148b2275ef2881973fbd7e08b9038e866aad7c406e975fa3d1a59470b6a3867 highlight-4.2.tar.bz2
+eb0c92e5dc3ecf280bf6e5a4e68ffb0289a09b3b92fb37756495a5c4e1936800b74385ea0eec2650cae2c690715cc37fd7eeff13e36615410af4c2edd9f2c868 highlight-4.11.tar.bz2
"
diff --git a/main/hiredis/APKBUILD b/main/hiredis/APKBUILD
index 0ce5992e460..f621857982b 100644
--- a/main/hiredis/APKBUILD
+++ b/main/hiredis/APKBUILD
@@ -1,26 +1,31 @@
# Contributor: Eivind Uggedal <eu@eju.no>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=hiredis
-pkgver=1.0.2
+pkgver=1.2.0
pkgrel=0
pkgdesc="Minimalistic C client library for Redis"
url="https://github.com/redis/hiredis"
arch="all"
license="BSD-3-Clause"
-makedepends="openssl1.1-compat-dev"
+makedepends="openssl-dev>3"
checkdepends="redis"
subpackages="$pkgname-ssl $pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz"
-
+source="$pkgname-$pkgver-99.tar.gz::https://github.com/redis/hiredis/archive/v$pkgver.tar.gz"
+options="!check" # fail with redis 7 for now for some reason
build() {
make USE_SSL=1 PREFIX=/usr DEBUG="$CFLAGS" LDFLAGS="$LDFLAGS"
}
check() {
- redis-server --dir "$builddir" --unixsocket "$builddir"/redis.sock&
+ redis-server \
+ --dir "$builddir" \
+ --enable-debug-command local \
+ --unixsocket "$builddir"/redis.sock&
local _redispid=$!
+ make hiredis-test
+
# make sure socket is available before we start running tests
local _n=100 # wait up to 10 sec
while ! [ -e "$builddir"/redis.sock ] && [ $_n -gt 0 ]; do
@@ -28,7 +33,6 @@ check() {
let _n="$_n - 1"
done
- make hiredis-test
./hiredis-test -s "$builddir"/redis.sock || (kill $_redispid && false)
kill $_redispid
}
@@ -42,5 +46,5 @@ ssl() {
}
sha512sums="
-86497a1c21869bbe535378885eee6dbd594ef96325966511a3513f81e501af0f5ac7fed864f3230372f3ac7a23c05bad477fa5aa90b9747c9fb1408028174f9b hiredis-1.0.2.tar.gz
+f8984abb29c09e7e6b56e656616c5155f36c53da4161a2d4c85688486411cadcdf20aa1adb9bda208c500b401c750871be1c8d58ba9df5328634d00e9d1b6589 hiredis-1.2.0-99.tar.gz
"
diff --git a/main/hostapd/0001-hostapd-Add-the-missing-CONFIG_SAE-option-to-the-def.patch b/main/hostapd/0001-hostapd-Add-the-missing-CONFIG_SAE-option-to-the-def.patch
new file mode 100644
index 00000000000..97d6e046d9e
--- /dev/null
+++ b/main/hostapd/0001-hostapd-Add-the-missing-CONFIG_SAE-option-to-the-def.patch
@@ -0,0 +1,30 @@
+From 6ff8bda992463a8c0dc34ee18820ca56cf9cccc0 Mon Sep 17 00:00:00 2001
+From: Yegor Yefremov <yegorslists@googlemail.com>
+Date: Wed, 30 Mar 2022 10:11:16 +0200
+Subject: [PATCH] hostapd: Add the missing CONFIG_SAE option to the defconfig
+
+CONFIG_SAE was added to wpa_supplicant's defconfig but wasn't
+added to the hostapd's defconfig file.
+
+Signed-off-by: Yegor Yefremov <yegorslists@googlemail.com>
+---
+ hostapd/defconfig | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/hostapd/defconfig b/hostapd/defconfig
+index 6b50b6c59..611f96ffa 100644
+--- a/hostapd/defconfig
++++ b/hostapd/defconfig
+@@ -161,6 +161,9 @@ CONFIG_IPV6=y
+ # final IEEE 802.11ax version.
+ #CONFIG_IEEE80211AX=y
+
++# Simultaneous Authentication of Equals (SAE), WPA3-Personal
++#CONFIG_SAE=y
++
+ # Remove debugging code that is printing out debug messages to stdout.
+ # This can be used to reduce the size of the hostapd considerably if debugging
+ # code is not needed.
+--
+2.30.2
+
diff --git a/main/hostapd/APKBUILD b/main/hostapd/APKBUILD
index ce4f0909359..3c2a6020cd8 100644
--- a/main/hostapd/APKBUILD
+++ b/main/hostapd/APKBUILD
@@ -1,18 +1,20 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=hostapd
pkgver=2.10
-pkgrel=1
+pkgrel=6
pkgdesc="daemon for wireless software access points"
url="https://w1.fi/hostapd/"
arch="all"
license="BSD-3-Clause"
-makedepends="openssl1.1-compat-dev libnl3-dev linux-headers"
+makedepends="openssl-dev>3 libnl3-dev linux-headers"
subpackages="$pkgname-doc $pkgname-openrc"
source="https://w1.fi/releases/hostapd-$pkgver.tar.gz
$pkgname.initd
$pkgname.confd
+ 0001-hostapd-Add-the-missing-CONFIG_SAE-option-to-the-def.patch
"
options="!check" #no testsuite
+patch_args="-p2"
builddir="$srcdir"/$pkgname-$pkgver/hostapd
# secfixes:
@@ -40,59 +42,70 @@ builddir="$srcdir"/$pkgname-$pkgver/hostapd
# - CVE-2017-13088
prepare() {
- cd "$builddir"
+ default_prepare
+
sed -i -e "s:/etc/hostapd:/etc/hostapd/hostapd:g" \
hostapd.conf
# toolchain setup
- sed \
- -e '/^#CONFIG_DRIVER_NL80211=y/s/^#//' \
- -e '/^#CONFIG_RADIUS_SERVER=y/s/^#//' \
- -e '/^#CONFIG_DRIVER_WIRED=y/s/^#//' \
- -e '/^#CONFIG_DRIVER_NONE=y/s/^#//' \
- -e '/^#CONFIG_IEEE80211N=y/s/^#//' \
- -e '/^#CONFIG_IEEE80211R=y/s/^#//' \
- -e '/^#CONFIG_IEEE80211AC=y/s/^#//' \
- -e '/^#CONFIG_IEEE80211AX=y/s/^#//' \
- -e '/^#CONFIG_FULL_DYNAMIC_VLAN=y/s/^#//' \
- -e '/^#CONFIG_LIBNL32=y/s/^#//' \
- -e '/^#CONFIG_ACS=y/s/^#//' \
- -e '/^#CONFIG_WEP=y/s/^#//' \
- defconfig >> .config
- echo "CC ?= ${CC:-gcc}" >> .config
- echo "CFLAGS += -I/usr/include/libnl3" >> .config
- echo "LIBS += -L/usr/lib" >> .config
+ {
+ sed \
+ -e '/^#CONFIG_DRIVER_NL80211=y/s/^#//' \
+ -e '/^#CONFIG_RADIUS_SERVER=y/s/^#//' \
+ -e '/^#CONFIG_DRIVER_WIRED=y/s/^#//' \
+ -e '/^#CONFIG_DRIVER_NONE=y/s/^#//' \
+ -e '/^#CONFIG_IEEE80211N=y/s/^#//' \
+ -e '/^#CONFIG_IEEE80211R=y/s/^#//' \
+ -e '/^#CONFIG_IEEE80211AC=y/s/^#//' \
+ -e '/^#CONFIG_IEEE80211AX=y/s/^#//' \
+ -e '/^#CONFIG_FULL_DYNAMIC_VLAN=y/s/^#//' \
+ -e '/^#CONFIG_LIBNL32=y/s/^#//' \
+ -e '/^#CONFIG_ACS=y/s/^#//' \
+ -e '/^#CONFIG_WEP=y/s/^#//' \
+ -e '/^#CONFIG_SAE=y/s/^#//' \
+ defconfig
+
+ echo "CC ?= ${CC:-gcc}"
+ echo "CFLAGS += -I/usr/include/libnl3"
+ echo "LIBS += -L/usr/lib"
+ } >> .config
}
build() {
- cd "$builddir"
- make
- msg "nt_password_hash"
- make nt_password_hash
+ export CFLAGS="$CFLAGS -flto=auto"
+
+ make all nt_password_hash
}
package() {
- cd "$builddir"
- install -d "$pkgdir"/etc/hostapd
- install hostapd.conf hostapd.accept hostapd.deny hostapd.eap_user \
- hostapd.radius_clients hostapd.sim_db hostapd.wpa_psk \
- "$pkgdir"/etc/hostapd/
+ install -D hostapd.conf \
+ hostapd.accept \
+ hostapd.deny \
+ hostapd.eap_user \
+ hostapd.radius_clients \
+ hostapd.sim_db \
+ hostapd.wpa_psk \
+ -t "$pkgdir"/etc/hostapd/
- install -Dm755 hostapd "$pkgdir"/usr/sbin/hostapd \
- && install -Dm755 hostapd_cli "$pkgdir"/usr/bin/hostapd_cli \
- && install -Dm755 nt_password_hash \
- "$pkgdir"/usr/bin/nt_password_hash \
- && install -Dm755 "$srcdir"/hostapd.initd \
- "$pkgdir"/etc/init.d/hostapd \
- && install -Dm644 "$srcdir"/hostapd.confd \
- "$pkgdir"/etc/conf.d/hostapd \
- && install -Dm644 hostapd.8 \
- "$pkgdir"/usr/share/man/man8/hostapd.8 \
- && install -Dm644 hostapd_cli.1 \
- "$pkgdir"/usr/share/man/man1/hostapd_cli
+ install -Dm755 hostapd \
+ -t "$pkgdir"/usr/sbin/
+ install -Dm755 hostapd_cli nt_password_hash \
+ -t "$pkgdir"/usr/bin/
+
+ install -Dm755 "$srcdir"/hostapd.initd \
+ "$pkgdir"/etc/init.d/hostapd
+ install -Dm644 "$srcdir"/hostapd.confd \
+ "$pkgdir"/etc/conf.d/hostapd
+
+ install -Dm644 hostapd.8 \
+ -t "$pkgdir"/usr/share/man/man8/
+ install -Dm644 hostapd_cli.1 \
+ -t "$pkgdir"/usr/share/man/man1/
}
+
sha512sums="
243baa82d621f859d2507d8d5beb0ebda15a75548a62451dc9bca42717dcc8607adac49b354919a41d8257d16d07ac7268203a79750db0cfb34b51f80ff1ce8f hostapd-2.10.tar.gz
-b54b7c6aa17e5cb86a9b354a516eb2dbefb544df18471339c61d82776de447011a2ac290bea1e6c8beae4b6cebefafb8174683ea42fb773e9e8fe6c679f33ba3 hostapd.initd
-0882263bbd7c0b05bf51f51d66e11a23a0b8ca7da2a3b8a30166d2c5f044c0c134e6bccb1d02c9e81819ca8fb0c0fb55c7121a08fe7233ccaa73ff8ab9a238fe hostapd.confd
+adeca34c6254ac6fccd84e6f08f8c394225e1b89e2c8771b46da5c85fe3fdabc568628530c39da3ab30b72e98891b07bbdb63f74217e79d6afb9796715d822f1 hostapd.initd
+250b072ae26892d5ba285d717d2742a29c12d52db59f021ff18a5eff709827f9987965539bf3f7b83c03fb8c103ea49604118a1d15056e6f1d8a7ae8043affbb hostapd.confd
+7cde99c431f1cf746473ae53c3009735c2a718e7038c3bc1629fc45ca85a191d799e975960da96e3cf14a56389ba06eee78453a9dd457941d6af758b730cbd05 0001-hostapd-Add-the-missing-CONFIG_SAE-option-to-the-def.patch
"
diff --git a/main/hostapd/hostapd.confd b/main/hostapd/hostapd.confd
index 60381153aa6..6c01a071c45 100644
--- a/main/hostapd/hostapd.confd
+++ b/main/hostapd/hostapd.confd
@@ -1,5 +1,10 @@
-# Space separated list of configuration files
-CONFIGS="/etc/hostapd/hostapd.conf"
+# Configuration for /etc/init.d/hostapd
-# Extra options to pass to hostapd, see hostapd(8)
-OPTIONS=""
+# Path to the hostapd configuration file or multiple files separated by space.
+#cfgfile="/etc/hostapd/hostapd.conf"
+
+# Extra options to pass to hostapd, see hostapd(8).
+#command_args=""
+
+# Uncomment to run with process supervisor.
+# supervisor="supervise-daemon"
diff --git a/main/hostapd/hostapd.initd b/main/hostapd/hostapd.initd
index 7813fd19d15..a7b603342de 100644
--- a/main/hostapd/hostapd.initd
+++ b/main/hostapd/hostapd.initd
@@ -1,46 +1,34 @@
#!/sbin/openrc-run
-# Copyright 1999-2006 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/net-wireless/hostapd/files/hostapd-0.6.9-init.d,v 1.2 2009/05/17 10:18:18 gurligebis Exp $
+
+name="hostapd"
+description="User space daemon for access point and authentication servers"
extra_started_commands="reload"
+# $CONFIGS and $OPTIONS are deprecated since Alpine v3.17.
+# NOTE: cfgfile can contain more than one file path in this case.
+: ${cfgfile:=${CONFIGS:-"/etc/hostapd/hostapd.conf"}}
+
+command="/usr/sbin/hostapd"
+command_args="${command_args:-$OPTIONS} $cfgfile"
+command_background="yes"
+pidfile="/run/$RC_SVCNAME.pid"
+
+required_files="$cfgfile"
+
depend() {
need net
after firewall
use logger
}
-checkconfig() {
- local file
-
- for file in ${CONFIGS}; do
- if [ ! -r "${file}" ]; then
- eerror "hostapd configuration file (${CONFIG}) not found"
- return 1
- fi
- done
-}
-
-start() {
- checkconfig || return 1
-
- ebegin "Starting ${SVCNAME}"
- start-stop-daemon --start --exec /usr/sbin/hostapd \
- -- -B ${OPTIONS} ${CONFIGS}
- eend $?
-}
-
-stop() {
- ebegin "Stopping ${SVCNAME}"
- start-stop-daemon --stop --exec /usr/sbin/hostapd
- eend $?
-}
-
reload() {
- checkconfig || return 1
+ ebegin "Reloading $name configuration"
- ebegin "Reloading ${SVCNAME} configuration"
- kill -HUP $(pidof /usr/sbin/hostapd) > /dev/null 2>&1
+ if [ "$supervisor" ]; then
+ $supervisor "$RC_SVCNAME" --signal HUP
+ else
+ start-stop-daemon --signal HUP --pidfile "$pidfile"
+ fi
eend $?
}
diff --git a/main/htop/APKBUILD b/main/htop/APKBUILD
index 38300751d71..4cd5c8ee70b 100644
--- a/main/htop/APKBUILD
+++ b/main/htop/APKBUILD
@@ -1,21 +1,16 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=htop
-pkgver=3.2.1
+pkgver=3.3.0
pkgrel=0
pkgdesc="Interactive process viewer"
url="https://htop.dev/"
arch="all"
license="GPL-2.0-or-later"
-makedepends="ncurses-dev python3 autoconf automake linux-headers lm-sensors-dev"
+makedepends="ncurses-dev python3 linux-headers lm-sensors-dev"
subpackages="$pkgname-doc"
+source="https://github.com/htop-dev/htop/releases/download/$pkgver/htop-$pkgver.tar.xz"
options="!check" # no upstream/available test-suite
-source="$pkgname-$pkgver.tar.gz::https://github.com/htop-dev/htop/archive/$pkgver.tar.gz"
-
-prepare() {
- default_prepare
- ./autogen.sh
-}
build() {
./configure \
@@ -31,9 +26,9 @@ build() {
}
package() {
- make DESTDIR="$pkgdir" install
+ make DESTDIR="$pkgdir" pixmapdir=/usr/share/icons/hicolor/128x128/apps install
}
sha512sums="
-d7b76e28ee870ac572ba1d9606dec6f9475346a00e599ca15838017c97683f1fc1be40417b9c1e76128cacc8a60ff9ba88c6b237be1835d309f98329b25644fc htop-3.2.1.tar.gz
+f98d4a4370954969d0ae16993d80ca5ce48670a711f17445de979513ac9caf2b197291732d937ae07d48709ded660ea09601b3a41ad7c48b3abb87e7a67deb65 htop-3.3.0.tar.xz
"
diff --git a/main/hunspell-en/APKBUILD b/main/hunspell-en/APKBUILD
index 517aff5b9a0..261450eb8fb 100644
--- a/main/hunspell-en/APKBUILD
+++ b/main/hunspell-en/APKBUILD
@@ -1,42 +1,39 @@
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=hunspell-en
pkgver=2020.12.07
-pkgrel=0
+pkgrel=4
pkgdesc="English hunspell dictionaries"
url="http://wordlist.aspell.net/dicts/"
arch="noarch"
-license="LGPL-2.0-or-later scowl"
+license="custom"
subpackages="$pkgname-doc"
-options="!check" # data only package
+options="!check !spdx" # data only package
source="https://downloads.sourceforge.net/project/wordlist/speller/$pkgver/hunspell-en_US-$pkgver.zip
https://downloads.sourceforge.net/project/wordlist/speller/$pkgver/hunspell-en_CA-$pkgver.zip
+ https://downloads.sourceforge.net/project/wordlist/speller/$pkgver/hunspell-en_AU-$pkgver.zip
https://downloads.sourceforge.net/project/wordlist/speller/$pkgver/hunspell-en_GB-large-$pkgver.zip
+ apostrophe.patch
"
+builddir="$srcdir"
-unpack() {
- msg "Unpacking sources..."
- mkdir -p "$builddir"
- cd "$builddir"
- for u in $source; do
- local s="$SRCDEST/$(filename_from_uri $u)"
- unzip $s
- done
-}
+_languages="en_ag en_au en_bs en_bw en_bz en_ca en_dk en_gb en_gh en_hk en_ie en_in en_jm en_na en_ng en_nz en_ph en_sg en_tt en_us en_za en_zw"
+for _language in $_languages; do
+ _subpkgname=$pkgname-${_language##en_}
-prepare() {
- default_prepare
- sed -i "s:SET UTF8:SET UTF-8:g" *.aff
-}
+ depends="$depends $_subpkgname=$pkgver-r$pkgrel"
+ subpackages="$subpackages $_subpkgname:_split_langs"
+done
package() {
install -dm755 "$pkgdir"/usr/share/hunspell
install -m644 en_*.dic en_*.aff "$pkgdir"/usr/share/hunspell
local lang
- for lang in en_AG en_AU en_BS en_BW en_BZ en_DK en_GB en_GH en_HK en_IE en_IN en_JM en_NA en_NG en_NZ en_SG en_TT en_ZA en_ZW; do
+ for lang in en_AG en_BS en_BW en_BZ en_DK en_GB en_GH en_HK en_IE en_IN en_JM en_NA en_NG en_NZ en_SG en_TT en_ZA en_ZW; do
ln -svf en_GB-large.aff "$pkgdir"/usr/share/hunspell/$lang.aff
ln -svf en_GB-large.dic "$pkgdir"/usr/share/hunspell/$lang.dic
done
+ # shellcheck disable=2043
for lang in en_PH; do
ln -svf en_US.aff "$pkgdir"/usr/share/hunspell/$lang.aff
ln -svf en_US.dic "$pkgdir"/usr/share/hunspell/$lang.dic
@@ -52,6 +49,33 @@ package() {
install -D -m644 README_en_GB-large.txt "$pkgdir"/usr/share/licenses/$pkgname/Copyright_en_GB-large
}
-sha512sums="a35ff630883e2410164e21669e6a46d15c73c76d969829cbf20903949dc7815886c0907f192aad9d363f777dcc9acfbd1e60c8175fbebf14d551e1d6e524c075 hunspell-en_US-2020.12.07.zip
+_split_langs() {
+ _variant=$(echo ${subpkgname#"$pkgname"-} | tr '[:lower:]' '[:upper:]')
+
+ depends=""
+ pkgdesc="English hunspell dictionaries ($_variant only)"
+
+ amove "usr/share/hunspell/en_$_variant*.aff"
+ amove "usr/share/hunspell/en_$_variant*.dic"
+
+ if [ -f "$pkgdir"/usr/share/licenses/$pkgname/Copyright_en_$_variant ]; then
+ amove usr/share/licenses/$pkgname/Copyright_en_$_variant
+ fi
+ if [ -f "$pkgdir"/usr/share/licenses/$pkgname/Copyright_en_$_variant-large ]; then
+ amove usr/share/licenses/$pkgname/Copyright_en_$_variant-large
+ fi
+ if [ -f "$pkgdir"/usr/share/doc/hunspell-en/README_en_$_variant.txt ]; then
+ amove usr/share/doc/hunspell-en/README_en_$_variant.txt
+ fi
+ if [ -f "$pkgdir"/usr/share/doc/hunspell-en/README_en_$_variant-large.txt ]; then
+ amove usr/share/doc/hunspell-en/README_en_$_variant-large.txt
+ fi
+}
+
+sha512sums="
+a35ff630883e2410164e21669e6a46d15c73c76d969829cbf20903949dc7815886c0907f192aad9d363f777dcc9acfbd1e60c8175fbebf14d551e1d6e524c075 hunspell-en_US-2020.12.07.zip
6e34bddbc1f8fd37c4b57d4520cd89a1f301430e7202cc35b0918ca856ff3eaba00743ef904a8b89f806812729976169826857a0fa2f452dd0ed922eeb6a9303 hunspell-en_CA-2020.12.07.zip
-a402c40717cd185ea8c14be2d4dc7df67580f197d276ae660a7cf478ae3e07e469c78271feb0c4c6b7c1c418bfb10e7f42c1e5f4b9635a4d3c47e1af4a747a4c hunspell-en_GB-large-2020.12.07.zip"
+626ea0f54e6203e9824cf2473d72e3e395966bf295adeef7cc02a83b2a20c30af1b1241384eb919f72fc8ee6c36cc351a754453004ec55c0e5f8168d2cd45da2 hunspell-en_AU-2020.12.07.zip
+a402c40717cd185ea8c14be2d4dc7df67580f197d276ae660a7cf478ae3e07e469c78271feb0c4c6b7c1c418bfb10e7f42c1e5f4b9635a4d3c47e1af4a747a4c hunspell-en_GB-large-2020.12.07.zip
+09f4ff19e628cb58bc43a62fd39bb9be88ef0e0d262d2462b44db15d0f4a222aa74d5a1798aed13260eb874ff6be9cd7a2f21f5fd96ba9b27c26a9432253d0a8 apostrophe.patch
+"
diff --git a/main/hunspell-en/apostrophe.patch b/main/hunspell-en/apostrophe.patch
new file mode 100644
index 00000000000..27a461a7106
--- /dev/null
+++ b/main/hunspell-en/apostrophe.patch
@@ -0,0 +1,36 @@
+Patch-Source: https://src.fedoraproject.org/rpms/hunspell-en/blob/867a4c3e890757878ec8a45c22701640a8b4817f/f/hunspell-en-allow-non-typographical.marks.patch
+(inspired)
+--
+--- a/en_CA.aff
++++ b/en_CA.aff
+@@ -14,7 +14,7 @@
+ COMPOUNDRULE 2
+ COMPOUNDRULE n*1t
+ COMPOUNDRULE n*mp
+-WORDCHARS 0123456789
++WORDCHARS 0123456789'
+
+ PFX A Y 1
+ PFX A 0 re .
+--- a/en_US.aff
++++ b/en_US.aff
+@@ -14,7 +14,7 @@
+ COMPOUNDRULE 2
+ COMPOUNDRULE n*1t
+ COMPOUNDRULE n*mp
+-WORDCHARS 0123456789
++WORDCHARS 0123456789'
+
+ PFX A Y 1
+ PFX A 0 re .
+--- a/en_GB-large.aff
++++ b/en_GB-large.aff
+@@ -14,7 +14,7 @@
+ COMPOUNDRULE 2
+ COMPOUNDRULE n*1t
+ COMPOUNDRULE n*mp
+-WORDCHARS 0123456789
++WORDCHARS 0123456789'
+
+ PFX A Y 1
+ PFX A 0 re .
diff --git a/main/hunspell-pt-br/APKBUILD b/main/hunspell-pt-br/APKBUILD
index fe97fb2f7f9..4bd2bf7f5d6 100644
--- a/main/hunspell-pt-br/APKBUILD
+++ b/main/hunspell-pt-br/APKBUILD
@@ -1,22 +1,19 @@
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=hunspell-pt-br
pkgver=20131017
-pkgrel=1
+pkgrel=2
pkgdesc="Portuguese (Brazil) hunspell dictionaries"
url="https://pt-br.libreoffice.org/"
arch="noarch"
-license="LGPL-3.0 MPL"
-depends=""
-makedepends=""
+license="LGPL-3.0-only AND MPL-1.1"
source="https://pt-br.libreoffice.org/assets/Uploads/PT-BR-Documents/VERO/VeroptBRV320AOC.oxt
"
-
-_builddir="$srcdir"/$pkgname-$pkgver
+options="!check"
unpack() {
msg "Unpacking sources..."
- mkdir -p "$_builddir"
- cd "$_builddir"
+ mkdir -p "$builddir"
+ cd "$builddir"
for u in $source; do
local s="$SRCDEST/$(filename_from_uri $u)"
case "$s" in
@@ -25,19 +22,13 @@ unpack() {
done
}
-build() {
- :
-}
-
package() {
- cd "$_builddir"
-
install -dm755 $pkgdir/usr/share/hunspell
install -m644 pt_BR.dic pt_BR.aff $pkgdir/usr/share/hunspell
# docs
- install -dm755 ${pkgdir}/usr/share/doc/$pkgname
- install -m644 README_pt_BR.txt ${pkgdir}/usr/share/doc/$pkgname
+ install -dm755 $pkgdir/usr/share/doc/$pkgname
+ install -m644 README_pt_BR.txt $pkgdir/usr/share/doc/$pkgname
}
sha512sums="217d25ecc532c4b3386593cea4d430094ec4badb81e12648d3ca87a7f2e29243a94028a1287ff50db4532c6e1a33e52a0839fd0d45ae8c167bc89df940209b14 VeroptBRV320AOC.oxt"
diff --git a/main/hunspell/APKBUILD b/main/hunspell/APKBUILD
index 44c5b64d683..e676907c932 100644
--- a/main/hunspell/APKBUILD
+++ b/main/hunspell/APKBUILD
@@ -1,28 +1,27 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=hunspell
-pkgver=1.7.0
-pkgrel=1
+pkgver=1.7.2
+pkgrel=4
pkgdesc="Spell checker and morphological analyzer library and program"
url="https://hunspell.github.io/"
arch="all"
-license="GPL-2.0-or-later LGPL-2.0-or-later MPL-1.1"
+license="GPL-2.0-or-later OR LGPL-2.1-or-later OR MPL-1.1"
subpackages="$pkgname-dev $pkgname-doc $pkgname-lang lib$pkgname:libs"
-makedepends="gettext-dev ncurses-dev readline-dev autoconf automake libtool"
+makedepends="gettext-dev ncurses-dev readline-dev"
checkdepends="bash"
-source="$pkgname-$pkgver.tar.gz::https://github.com/hunspell/hunspell/archive/v$pkgver.tar.gz
- CVE-2019-16707.patch
- "
+source="https://github.com/hunspell/hunspell/releases/download/v$pkgver/hunspell-$pkgver.tar.gz"
# secfixes:
# 1.7.0-r1:
# - CVE-2019-16707
prepare() {
- default_prepare
- autoreconf -vif
+ default_prepare
+ update_config_sub
}
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -39,10 +38,9 @@ check() {
}
package() {
- make -j1 DESTDIR="$pkgdir" install
+ make DESTDIR="$pkgdir" install
}
sha512sums="
-8149b2e8b703a0610c9ca5160c2dfad3cf3b85b16b3f0f5cfcb7ebb802473b2d499e8e2d0a637a97a37a24d62424e82d3880809210d3f043fa17a4970d47c903 hunspell-1.7.0.tar.gz
-e7674819a9da4c3d742d34338d68d137d8613f97be2d25bf20db5219d4dd626f59a63ed4757b92f34307f499f2d687014065cdea97b55c98db295a8290300d2d CVE-2019-16707.patch
+49b3619bff12e111b6cc3f3d9463612b116f9b2a976896718e65f5bc4a83ece11100aaf56a4d18127ea39107446c495e12affe5ff3c9159ae8aba70e512f44ac hunspell-1.7.2.tar.gz
"
diff --git a/main/hunspell/CVE-2019-16707.patch b/main/hunspell/CVE-2019-16707.patch
deleted file mode 100644
index 649eef5b293..00000000000
--- a/main/hunspell/CVE-2019-16707.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From ac938e2ecb48ab4dd21298126c7921689d60571b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
-Date: Tue, 12 Nov 2019 20:03:15 +0000
-Subject: [PATCH] invalid read memory access #624
-
----
- src/hunspell/suggestmgr.cxx | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/hunspell/suggestmgr.cxx b/src/hunspell/suggestmgr.cxx
-index dba084e9..c23f165a 100644
---- a/src/hunspell/suggestmgr.cxx
-+++ b/src/hunspell/suggestmgr.cxx
-@@ -2040,7 +2040,7 @@ int SuggestMgr::leftcommonsubstring(
- int l2 = su2.size();
- // decapitalize dictionary word
- if (complexprefixes) {
-- if (su1[l1 - 1] == su2[l2 - 1])
-+ if (l1 && l2 && su1[l1 - 1] == su2[l2 - 1])
- return 1;
- } else {
- unsigned short idx = su2.empty() ? 0 : (su2[0].h << 8) + su2[0].l;
diff --git a/main/hvtools/APKBUILD b/main/hvtools/APKBUILD
index d15d3bce8de..3da62ee552a 100644
--- a/main/hvtools/APKBUILD
+++ b/main/hvtools/APKBUILD
@@ -2,12 +2,13 @@
pkgname=hvtools
pkgver=4.11.9
_kernver=${pkgver%.*}
-pkgrel=1
+pkgrel=4
pkgdesc="Hyper-v tools"
url="https://www.kernel.org/"
arch="all"
license="GPL-2.0-only"
makedepends="$depends_dev linux-headers"
+subpackages="$pkgname-openrc"
source="https://kernel.org/pub/linux/kernel/v4.x/linux-$_kernver.tar.xz
https://kernel.org/pub/linux/kernel/v4.x/patch-$pkgver.xz
hv_kvp_daemon.initd
@@ -16,6 +17,7 @@ source="https://kernel.org/pub/linux/kernel/v4.x/linux-$_kernver.tar.xz
"
builddir="$srcdir"/linux-$_kernver
+options="!check"
prepare() {
if [ "${pkgver%.0}" = "$pkgver" ]; then
diff --git a/main/hwdata/APKBUILD b/main/hwdata/APKBUILD
new file mode 100644
index 00000000000..4e56c2eb9ea
--- /dev/null
+++ b/main/hwdata/APKBUILD
@@ -0,0 +1,74 @@
+# Maintainer: Simon Zeni <simon@bl4ckb0ne.ca>
+pkgname=hwdata
+pkgver=0.381
+pkgrel=0
+pkgdesc="Hardware identification and configuration data"
+url="https://github.com/vcrhonek/hwdata"
+arch="noarch"
+license="GPL-2.0-or-later OR XFree86-1.1"
+subpackages="$pkgname-dev $pkgname-usb $pkgname-pci $pkgname-pnp $pkgname-net"
+source="$pkgname-$pkgver.tar.gz::https://github.com/vcrhonek/hwdata/archive/refs/tags/v$pkgver.tar.gz"
+options="!check" # just firmware data
+
+replaces="hwids"
+# be higher since hwids was a large date version
+provides="hwids=20220101-r$pkgrel"
+builddir="$srcdir/$pkgname-$pkgver"
+
+build() {
+ ./configure \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --datadir=/usr/share \
+ --disable-blacklist
+}
+
+package() {
+ depends="
+ $pkgname-usb=$pkgver-r$pkgrel
+ $pkgname-pci=$pkgver-r$pkgrel
+ $pkgname-pnp=$pkgver-r$pkgrel
+ $pkgname-net=$pkgver-r$pkgrel
+ "
+ make -j1 DESTDIR="$pkgdir" install
+}
+
+dev() {
+ default_dev
+ depends="$pkgname=$pkgver-r$pkgrel"
+}
+
+usb() {
+ pkgdesc="$pkgdesc (usb data)"
+ provides="hwids-usb=20220101-r$pkgrel"
+ replaces="hwids-usb"
+
+ amove usr/share/hwdata/usb.ids
+}
+
+pci() {
+ pkgdesc="$pkgdesc (pci data)"
+ provides="hwids-pci=20220101-r$pkgrel"
+ replaces="hwids-pci"
+
+ amove usr/share/hwdata/pci.ids
+}
+
+net() {
+ pkgdesc="$pkgdesc (net data)"
+ provides="hwids-net=20220101-r$pkgrel"
+ replaces="hwids-net"
+
+ amove usr/share/hwdata/oui.txt
+ amove usr/share/hwdata/iab.txt
+}
+
+pnp() {
+ pkgdesc="$pkgdesc (pnp data)"
+
+ amove usr/share/hwdata/pnp.ids
+}
+
+sha512sums="
+683fa1df2f04b768b95ac77ab785c5fee8ed1ce352d8367fca2346330aa0a563bb66765df4413ce012a1ab224cb2af9b90d44e4d57d38affd7c7d88383dd97bc hwdata-0.381.tar.gz
+"
diff --git a/main/hwids/APKBUILD b/main/hwids/APKBUILD
deleted file mode 100644
index c5236384b62..00000000000
--- a/main/hwids/APKBUILD
+++ /dev/null
@@ -1,70 +0,0 @@
-# Contributor: A. Wilcox <awilfox@adelielinux.org>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=hwids
-pkgver=20210613
-pkgrel=0
-pkgdesc="Hardware identification databases"
-url="https://github.com/gentoo/hwids/"
-arch="noarch"
-options="!check" # No test suite, just databases.
-license="BSD-3-Clause OR GPL-2.0-or-later"
-makedepends="eudev-dev"
-subpackages="$pkgname-net $pkgname-pci $pkgname-udev $pkgname-usb"
-depends="$subpackages"
-subpackages="$subpackages $pkgname-doc"
-source="https://github.com/gentoo/hwids/archive/hwids-$pkgver.tar.gz"
-builddir="$srcdir/hwids-hwids-$pkgver"
-
-build() {
- make UDEV=yes
-}
-
-package() {
- make DESTDIR="$pkgdir" DOCDIR="/usr/share/doc/$pkgname-$pkgver" \
- MISCDIR="/usr/share/hwdata" UDEV=yes install
-}
-
-_mv() {
- local _file
- pkgdesc="$pkgdesc ($1)"
- shift
- depends=""
- mkdir -p "$subpkgdir"/usr/share/hwdata
- for _file in $*; do
- mv "$pkgdir"/usr/share/hwdata/$_file "$subpkgdir"/usr/share/hwdata
- done
-}
-
-usb() {
- replaces="hwdata-usb"
- provides="hwdata-usb=$pkgver-r$pkgrel"
- _mv "USB IDs" usb.ids
-}
-
-pci() {
- replaces="hwdata-pci"
- provides="hwdata-pci=$pkgver-r$pkgrel"
- _mv "PCI IDs" pci.ids
-}
-
-net() {
- replaces="hwdata-oui hwdata"
- provides="hwdata-oui=$pkgver-r$pkgrel"
- license="Public-Domain"
- _mv "Networking OUIs" oui.txt iab.txt
-}
-
-udev() {
- install_if="hwids=$pkgver-r$pkgrel eudev"
- install_if="hwids-pci=$pkgver-r$pkgrel eudev"
- install_if="hwids-usb=$pkgver-r$pkgrel eudev"
- pkgdesc="$pkgdesc (udev integration)"
-
- mkdir -p "$subpkgdir"/
- mv "$pkgdir"/lib "$subpkgdir"/
- mv "$pkgdir"/etc "$subpkgdir"/
-}
-
-sha512sums="
-4568f6b8c0ca80ec772bd2785d4dc169d1d13a721472a15399158d9a7f31abbe414c5c8cfdf1a3b81cce4e33742a4b6e005e97e3e907643d0afdc8e953624fea hwids-20210613.tar.gz
-"
diff --git a/main/hwloc/APKBUILD b/main/hwloc/APKBUILD
new file mode 100644
index 00000000000..4a2d8c01459
--- /dev/null
+++ b/main/hwloc/APKBUILD
@@ -0,0 +1,57 @@
+# Maintainer: Krassy Boykinov <kboykinov@teamcentrixx.com>
+pkgname=hwloc
+pkgver=2.10.0
+pkgrel=0
+pkgdesc="Portable abstraction of hierarchical hardware architectures"
+url="https://www.open-mpi.org/"
+arch="all"
+license="BSD-3-Clause"
+makedepends="cairo-dev eudev-dev libxml2-dev ncurses-dev"
+case "$CARCH" in
+ arm*) true;;
+ *) makedepends="$makedepends numactl-dev";;
+esac
+options="!check" # fails on multiple arches with different tests
+subpackages="
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-tools
+ "
+source="https://www.open-mpi.org/software/hwloc/v${pkgver%.*}/downloads/hwloc-$pkgver.tar.bz2"
+
+build() {
+ ./configure \
+ --prefix=/usr \
+ --sbindir=/usr/bin \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ rm "$pkgdir"/usr/share/hwloc/hwloc-dump-hwdata.service
+}
+
+doc() {
+ default_doc
+
+ amove usr/share/hwloc/hwloc-ps.www
+ amove usr/share/hwloc/hwloc*.dtd
+}
+
+tools() {
+ pkgdesc="Portable hardware locality tools"
+
+ amove usr/bin
+ amove usr/share/applications/lstopo.desktop
+}
+
+sha512sums="
+8fcf448ef16874862e5cf5a814ecc4885d53817369640bb8a0079b0c7d9294b3933a6a8cf2472e8e104a5c346e09e1fffab401a1976d7b2da0457f0c5271a18a hwloc-2.10.0.tar.bz2
+"
diff --git a/main/hylafax/APKBUILD b/main/hylafax/APKBUILD
index 50f52ac6d78..3a488ede5c3 100644
--- a/main/hylafax/APKBUILD
+++ b/main/hylafax/APKBUILD
@@ -2,20 +2,24 @@
# Maintainer: Cameron Banta <cbanta@gmail.com>
pkgname=hylafax
pkgver=6.0.7
-pkgrel=3
+pkgrel=10
pkgdesc="Sends and receives faxes"
url="http://www.hylafax.org/"
-arch="all"
+arch="" # https://gitlab.alpinelinux.org/alpine/aports/-/issues/15384
license="MIT"
#depends on gcc for libgcc_s.so, it's scripts are hardcoded to bash
depends="ghostscript bash tiff-tools"
-makedepends="zlib-dev tiff-dev<4.4 gettext-dev"
-subpackages="$pkgname-doc $pkgname-lang"
+makedepends="zlib-dev tiff-dev gettext-dev"
+subpackages="$pkgname-doc $pkgname-lang $pkgname-openrc"
source="ftp://ftp.hylafax.org/source/hylafax-$pkgver.tar.gz
$pkgname.initd
$pkgname.confd
hylafax-charset.patch
- libtiff-42-compatibility.patch"
+ tiff-compat.patch
+ tiff-4.5.patch
+ format-security.patch
+ "
+options="!check"
# secfixes:
# 6.0.6-r5:
@@ -95,5 +99,7 @@ fc57feb416772a7a4bfaf5c3c76a0c2254ead2f63a72b3dfa465444327d440345a0402b7c7dad14f
012e204ee7f86804c8cb249f6c53452b7a36b7140aa4d8f61c5c63cfe1fdfb84c42be46b1e39ca37766d9fcb209db7d96a32a01108d1e66a8f7df28e72167ce0 hylafax.initd
3c07726cc9d7351dceb80a46354c6626e54b033b0f434c1db01db2a3b3ab5e9084d551dd23cae3ab40806f27aa5fa0a5b70c43a6b7802356871c0b343baa2376 hylafax.confd
f97c805a62dfcb57f85f614b6eb28bd6b58e0582ce4f9aa5166337a46d453ea038a098223d879d120f51454008a5e8ed2fa60ba6e8be12af7b7d5a4927c51471 hylafax-charset.patch
-9c099f4f67cc9d310e54d9ffb862b7639b9805c515fc939ba243154e5adcd1fea691ad2af42c10fed8df336d3a04c187023c24f79c9922139c410fb558b75ed1 libtiff-42-compatibility.patch
+0e5efd8d0924857958b44cfac36649fe3143dd45c9b0275da9c9b801d88102e26b857fecd4a9dae6916126959bbb38cd230a1083cabb6fd973478b850226ce37 tiff-compat.patch
+74987e151ad36c055179ecf7f716b8927eb76cd7bc056def2b2b93cb71c800f3330b0c57cd19e38281af7181952ec9d851cfb35ba36b3a30c66b92c14f7cb499 tiff-4.5.patch
+57e04c5e575a02b3a64bab910e985532dfcf96c8c8613cbb918ee9b7114d4caedf309a27db5ccda3ff3dad97da76e9c3f0c9c81e1c9deab7b71c94411b9b5154 format-security.patch
"
diff --git a/main/hylafax/format-security.patch b/main/hylafax/format-security.patch
new file mode 100644
index 00000000000..a648d0c182b
--- /dev/null
+++ b/main/hylafax/format-security.patch
@@ -0,0 +1,110 @@
+Patch-Source: https://github.com/ifax/HylaFAX/pull/1
+--
+From 9afcaa405e05a3ec3c79091e96f7255b8de86981 Mon Sep 17 00:00:00 2001
+From: XieJiSS <XieJiSS@users.noreply.github.com>
+Date: Mon, 29 Nov 2021 18:59:48 +0800
+Subject: [PATCH] fix: add %s for (f)printf to build on gcc>=10
+
+---
+ libhylafax/FaxClient.c++ | 2 +-
+ libhylafax/SNPPClient.c++ | 2 +-
+ libhylafax/TextFormat.c++ | 2 +-
+ libhylafax/TypeRules.c++ | 12 ++++++------
+ 4 files changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/libhylafax/FaxClient.c++ b/libhylafax/FaxClient.c++
+index 9a5d375..b6de282 100644
+--- a/libhylafax/FaxClient.c++
++++ b/libhylafax/FaxClient.c++
+@@ -116,7 +116,7 @@ FaxClient::printWarning(const char* fmt ...)
+ void
+ FaxClient::vprintWarning(const char* fmt, va_list ap)
+ {
+- fprintf(stderr, NLS::TEXT("Warning, "));
++ fprintf(stderr, "%s", NLS::TEXT("Warning, "));
+ vfprintf(stderr, fmt, ap);
+ fputs("\n", stderr);
+ }
+diff --git a/libhylafax/SNPPClient.c++ b/libhylafax/SNPPClient.c++
+index ef5ae21..76b5166 100644
+--- a/libhylafax/SNPPClient.c++
++++ b/libhylafax/SNPPClient.c++
+@@ -103,7 +103,7 @@ SNPPClient::printWarning(const char* fmt ...)
+ void
+ SNPPClient::vprintWarning(const char* fmt, va_list ap)
+ {
+- fprintf(stderr, NLS::TEXT("Warning, "));
++ fprintf(stderr, "%s", NLS::TEXT("Warning, "));
+ vfprintf(stderr, fmt, ap);
+ fputs("\n", stderr);
+ }
+diff --git a/libhylafax/TextFormat.c++ b/libhylafax/TextFormat.c++
+index bfbbc49..d3d6168 100644
+--- a/libhylafax/TextFormat.c++
++++ b/libhylafax/TextFormat.c++
+@@ -1371,7 +1371,7 @@ TextFont::openAFMFile(fxStr& fontpath)
+ {
+ fxStr emsg;
+ if (!decodeFontName(family, fontpath, emsg)) {
+- fprintf(stderr,emsg);
++ fprintf(stderr, "%s", emsg);
+ return NULL;
+ }
+ return Sys::fopen(fontpath, "r");
+diff --git a/libhylafax/TypeRules.c++ b/libhylafax/TypeRules.c++
+index 54d9b8a..c447212 100644
+--- a/libhylafax/TypeRules.c++
++++ b/libhylafax/TypeRules.c++
+@@ -101,7 +101,7 @@ TypeRule::match(const void* data, size_t size, bool verbose) const
+ printf(" \"%s\"", value.s);
+ else if (type != ASCII && type != ASCIIESC) {
+ if (op == ANY)
+- printf(NLS::TEXT(" <any value>"));
++ printf("%s", NLS::TEXT(" <any value>"));
+ else
+ printf(" %#llx", (long long) value.v);
+ }
+@@ -109,7 +109,7 @@ TypeRule::match(const void* data, size_t size, bool verbose) const
+ }
+ if (off > (off_t)size) {
+ if (verbose)
+- printf(NLS::TEXT("failed (offset past data)\n"));
++ printf("%s", NLS::TEXT("failed (offset past data)\n"));
+ return (false);
+ }
+ bool ok = false;
+@@ -162,7 +162,7 @@ TypeRule::match(const void* data, size_t size, bool verbose) const
+ break;
+ }
+ if (verbose)
+- printf(NLS::TEXT("failed (insufficient data)\n"));
++ printf("%s", NLS::TEXT("failed (insufficient data)\n"));
+ return (false);
+ case LONG:
+ if (off + 4 < (off_t)size) {
+@@ -171,7 +171,7 @@ TypeRule::match(const void* data, size_t size, bool verbose) const
+ break;
+ }
+ if (verbose)
+- printf(NLS::TEXT("failed (insufficient data)\n"));
++ printf("%s", NLS::TEXT("failed (insufficient data)\n"));
+ return (false);
+ }
+ /*
+@@ -195,7 +195,7 @@ done:
+ printf(NLS::TEXT("success (result %s, rule \"%s\")\n"),
+ resultNames[result], (const char*) cmd);
+ else
+- printf(NLS::TEXT("failed (comparison)\n"));
++ printf("%s", NLS::TEXT("failed (comparison)\n"));
+ }
+ return (ok);
+ }
+@@ -496,6 +496,6 @@ TypeRules::match(const void* data, u_int size) const
+ return (&(*rules)[i + match2(i, data, size, verbose)]);
+ }
+ if (verbose)
+- printf(NLS::TEXT("no match\n"));
++ printf("%s", NLS::TEXT("no match\n"));
+ return (NULL);
+ }
diff --git a/main/hylafax/tiff-4.5.patch b/main/hylafax/tiff-4.5.patch
new file mode 100644
index 00000000000..9519023898e
--- /dev/null
+++ b/main/hylafax/tiff-4.5.patch
@@ -0,0 +1,1566 @@
+Patch-Source: https://sourceforge.net/p/hylafax/HylaFAX+/2695/
+--- trunk/faxd/G3Decoder.c++ (revision 2694)
++++ trunk/faxd/G3Decoder.c++ (revision 2695)
+@@ -43,7 +43,7 @@
+ int RunLength; /* length of current run */ \
+ tiff_runlen_t* pa; /* place to stuff next run */ \
+ tiff_runlen_t* thisrun; /* current row's run array */ \
+- const TIFFFaxTabEnt* TabEnt
++ const hf_TIFFFaxTabEnt* TabEnt
+ #define DECLARE_STATE_2D() \
+ DECLARE_STATE(); \
+ int b1; /* next change on prev line */ \
+@@ -185,7 +185,134 @@
+ #define prematureEOF(a0) // never happens 'cuz of longjmp
+ #define SWAP(t,a,b) { t x; x = (a); (a) = (b); (b) = x; }
+
++#define isAligned(p, t) ((((size_t)(p)) & (sizeof(t) - 1)) == 0)
++
++#define FILL(n, cp) \
++ for (int32_t ifill = 0; ifill < (n); ++ifill) \
++ { \
++ (cp)[ifill] = 0xff; \
++ } \
++ (cp) += (n);
++
++#define ZERO(n, cp) \
++ for (int32_t izero = 0; izero < (n); ++izero) \
++ { \
++ (cp)[izero] = 0; \
++ } \
++ (cp) += (n);
++
+ /*
++ * Bit-fill a row according to the white/black
++ * runs generated during G3/G4 decoding.
++ * Lifted from libtiff-4.5.0 source.
++ */
++void hf_TIFFFax3fillruns(unsigned char *buf, uint32_t *runs, uint32_t *erun,
++ uint32_t lastx)
++{
++ static const unsigned char _fillmasks[] = {0x00, 0x80, 0xc0, 0xe0, 0xf0,
++ 0xf8, 0xfc, 0xfe, 0xff};
++ unsigned char *cp;
++ uint32_t x, bx, run;
++ int32_t n, nw;
++ int64_t *lp;
++
++ if ((erun - runs) & 1)
++ *erun++ = 0;
++ x = 0;
++ for (; runs < erun; runs += 2)
++ {
++ run = runs[0];
++ if (x + run > lastx || run > lastx)
++ run = runs[0] = (uint32_t)(lastx - x);
++ if (run)
++ {
++ cp = buf + (x >> 3);
++ bx = x & 7;
++ if (run > 8 - bx)
++ {
++ if (bx)
++ { /* align to byte boundary */
++ *cp++ &= 0xff << (8 - bx);
++ run -= 8 - bx;
++ }
++ if ((n = run >> 3) != 0)
++ { /* multiple bytes to fill */
++ if ((n / sizeof(int64_t)) > 1)
++ {
++ /*
++ * Align to int64_tword boundary and fill.
++ */
++ for (; n && !isAligned(cp, int64_t); n--)
++ *cp++ = 0x00;
++ lp = (int64_t *)cp;
++ nw = (int32_t)(n / sizeof(int64_t));
++ n -= nw * sizeof(int64_t);
++ do
++ {
++ *lp++ = 0L;
++ } while (--nw);
++ cp = (unsigned char *)lp;
++ }
++ ZERO(n, cp);
++ run &= 7;
++ }
++ if (run)
++ cp[0] &= 0xff >> run;
++ }
++ else
++ cp[0] &= ~(_fillmasks[run] >> bx);
++ x += runs[0];
++ }
++ run = runs[1];
++ if (x + run > lastx || run > lastx)
++ run = runs[1] = lastx - x;
++ if (run)
++ {
++ cp = buf + (x >> 3);
++ bx = x & 7;
++ if (run > 8 - bx)
++ {
++ if (bx)
++ { /* align to byte boundary */
++ *cp++ |= 0xff >> bx;
++ run -= 8 - bx;
++ }
++ if ((n = run >> 3) != 0)
++ { /* multiple bytes to fill */
++ if ((n / sizeof(int64_t)) > 1)
++ {
++ /*
++ * Align to int64_t boundary and fill.
++ */
++ for (; n && !isAligned(cp, int64_t); n--)
++ *cp++ = 0xff;
++ lp = (int64_t *)cp;
++ nw = (int32_t)(n / sizeof(int64_t));
++ n -= nw * sizeof(int64_t);
++ do
++ {
++ *lp++ = -1L;
++ } while (--nw);
++ cp = (unsigned char *)lp;
++ }
++ FILL(n, cp);
++ run &= 7;
++ }
++ /* Explicit 0xff masking to make icc -check=conversions happy */
++ if (run)
++ cp[0] = (unsigned char)((cp[0] | (0xff00 >> run)) & 0xff);
++ }
++ else
++ cp[0] |= _fillmasks[run] >> bx;
++ x += runs[1];
++ }
++ }
++ assert(x == lastx);
++}
++#undef ZERO
++#undef FILL
++
++/*
+ * Decode a single row of pixels and return
+ * the decoded data in the scanline buffer.
+ */
+@@ -239,7 +366,7 @@
+ if (!nullrow)
+ RTCrun = 0;
+ if (scanline)
+- _TIFFFax3fillruns((u_char*) scanline, thisrun, pa, lastx);
++ hf_TIFFFax3fillruns((u_char*) scanline, thisrun, pa, lastx);
+ if (is2D) {
+ SETVAL(0); // imaginary change for reference
+ SWAP(tiff_runlen_t*, curruns, refruns);
+Index: trunk/faxd/G3Encoder.c++
+===================================================================
+--- trunk/faxd/G3Encoder.c++ (revision 2694)
++++ trunk/faxd/G3Encoder.c++ (revision 2695)
+@@ -323,11 +323,11 @@
+ a2 = finddiff2(bp, a1, w, PIXEL(bp,a1));
+ putcode(horizcode);
+ if (a0+a1 == 0 || PIXEL(bp, a0) == 0) {
+- putspan(a1-a0, TIFFFaxWhiteCodes);
+- putspan(a2-a1, TIFFFaxBlackCodes);
++ putspan(a1-a0, hf_TIFFFaxWhiteCodes);
++ putspan(a2-a1, hf_TIFFFaxBlackCodes);
+ } else {
+- putspan(a1-a0, TIFFFaxBlackCodes);
+- putspan(a2-a1, TIFFFaxWhiteCodes);
++ putspan(a1-a0, hf_TIFFFaxBlackCodes);
++ putspan(a2-a1, hf_TIFFFaxWhiteCodes);
+ }
+ a0 = a2;
+ } else { /* vertical mode */
+@@ -350,12 +350,12 @@
+ int bs = 0, span;
+ for (;;) {
+ span = findspan(&bp, bs, w, zeroruns); // white span
+- putspan(span, TIFFFaxWhiteCodes);
++ putspan(span, hf_TIFFFaxWhiteCodes);
+ bs += span;
+ if ((u_int) bs >= w)
+ break;
+ span = findspan(&bp, bs, w, oneruns); // black span
+- putspan(span, TIFFFaxBlackCodes);
++ putspan(span, hf_TIFFFaxBlackCodes);
+ bs += span;
+ if ((u_int) bs >= w)
+ break;
+Index: trunk/faxd/t4.h
+===================================================================
+--- trunk/faxd/t4.h (revision 2694)
++++ trunk/faxd/t4.h (revision 2695)
+@@ -54,8 +54,7 @@
+ * NB: The G3CODE_INVALID entries are only used
+ * during state generation (see mkg3states.c).
+ */
+-#ifdef G3CODES
+-const tableentry TIFFFaxWhiteCodes[] = {
++const tableentry hf_TIFFFaxWhiteCodes[] = {
+ { 8, 0x35, 0 }, /* 0011 0101 */
+ { 6, 0x7, 1 }, /* 0001 11 */
+ { 4, 0x7, 2 }, /* 0111 */
+@@ -167,7 +166,7 @@
+ { 12, 0x0, G3CODE_INVALID }, /* 0000 0000 0000 */
+ };
+
+-const tableentry TIFFFaxBlackCodes[] = {
++const tableentry hf_TIFFFaxBlackCodes[] = {
+ { 10, 0x37, 0 }, /* 0000 1101 11 */
+ { 3, 0x2, 1 }, /* 010 */
+ { 2, 0x3, 2 }, /* 11 */
+@@ -278,8 +277,4 @@
+ { 11, 0x1, G3CODE_INVALID }, /* 0000 0000 001 */
+ { 12, 0x0, G3CODE_INVALID }, /* 0000 0000 0000 */
+ };
+-#else
+-extern const tableentry TIFFFaxWhiteCodes[];
+-extern const tableentry TIFFFaxBlackCodes[];
+-#endif
+ #endif /* _T4_ */
+Index: trunk/faxd/tif_fax3.h
+===================================================================
+--- trunk/faxd/tif_fax3.h (revision 2694)
++++ trunk/faxd/tif_fax3.h (revision 2695)
+@@ -60,7 +60,7 @@
+ #if defined(__cplusplus)
+ extern "C" {
+ #endif
+-extern void _TIFFFax3fillruns(unsigned char*, tiff_runlen_t*, tiff_runlen_t*, tiff_runlen_t);
++extern void hf_TIFFFax3fillruns(unsigned char*, tiff_runlen_t*, tiff_runlen_t*, tiff_runlen_t);
+ #if defined(__cplusplus)
+ }
+ #endif
+@@ -85,12 +85,1262 @@
+ unsigned char State; /* see above */
+ unsigned char Width; /* width of code in bits */
+ tiff_runlen_t Param; /* unsigned 32-bit run length in bits */
+-} TIFFFaxTabEnt;
++} hf_TIFFFaxTabEnt;
+
+-extern const TIFFFaxTabEnt TIFFFaxMainTable[];
+-extern const TIFFFaxTabEnt TIFFFaxWhiteTable[];
+-extern const TIFFFaxTabEnt TIFFFaxBlackTable[];
++/* The following three tables were lifted from libtiff-4.5.0. */
+
++const hf_TIFFFaxTabEnt hf_TIFFFaxMainTable[128] = {
++{12,7,0},{3,1,0},{5,3,1},{3,1,0},{2,3,0},{3,1,0},{4,3,1},{3,1,0},{1,4,0},{3,1,0},
++{5,3,1},{3,1,0},{2,3,0},{3,1,0},{4,3,1},{3,1,0},{5,6,2},{3,1,0},{5,3,1},{3,1,0},
++{2,3,0},{3,1,0},{4,3,1},{3,1,0},{1,4,0},{3,1,0},{5,3,1},{3,1,0},{2,3,0},{3,1,0},
++{4,3,1},{3,1,0},{5,7,3},{3,1,0},{5,3,1},{3,1,0},{2,3,0},{3,1,0},{4,3,1},{3,1,0},
++{1,4,0},{3,1,0},{5,3,1},{3,1,0},{2,3,0},{3,1,0},{4,3,1},{3,1,0},{4,6,2},{3,1,0},
++{5,3,1},{3,1,0},{2,3,0},{3,1,0},{4,3,1},{3,1,0},{1,4,0},{3,1,0},{5,3,1},{3,1,0},
++{2,3,0},{3,1,0},{4,3,1},{3,1,0},{6,7,0},{3,1,0},{5,3,1},{3,1,0},{2,3,0},{3,1,0},
++{4,3,1},{3,1,0},{1,4,0},{3,1,0},{5,3,1},{3,1,0},{2,3,0},{3,1,0},{4,3,1},{3,1,0},
++{5,6,2},{3,1,0},{5,3,1},{3,1,0},{2,3,0},{3,1,0},{4,3,1},{3,1,0},{1,4,0},{3,1,0},
++{5,3,1},{3,1,0},{2,3,0},{3,1,0},{4,3,1},{3,1,0},{4,7,3},{3,1,0},{5,3,1},{3,1,0},
++{2,3,0},{3,1,0},{4,3,1},{3,1,0},{1,4,0},{3,1,0},{5,3,1},{3,1,0},{2,3,0},{3,1,0},
++{4,3,1},{3,1,0},{4,6,2},{3,1,0},{5,3,1},{3,1,0},{2,3,0},{3,1,0},{4,3,1},{3,1,0},
++{1,4,0},{3,1,0},{5,3,1},{3,1,0},{2,3,0},{3,1,0},{4,3,1},{3,1,0}
++};
++
++const hf_TIFFFaxTabEnt hf_TIFFFaxWhiteTable[4096] = {
++{12,11,0},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,7,20},{9,5,128},
++{7,7,24},{7,6,14},{7,7,28},{7,4,4},{7,4,2},{7,4,7},{7,7,23},{7,4,3},{7,7,27},{7,4,5},
++{7,8,39},{7,6,16},{9,8,576},{7,4,6},{7,7,19},{7,5,8},{7,8,55},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{7,8,45},{7,4,3},{7,5,11},{7,4,5},{7,8,53},{7,5,9},{9,8,448},{7,4,6},
++{7,8,35},{9,5,128},{7,8,51},{7,6,15},{7,8,63},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},
++{9,9,1472},{7,4,5},{7,8,43},{7,6,17},{9,9,1216},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,29},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},
++{9,6,1664},{7,4,6},{7,8,33},{9,5,128},{7,8,49},{7,6,14},{7,8,61},{7,4,4},{7,4,2},{7,4,7},
++{7,8,47},{7,4,3},{7,8,59},{7,4,5},{7,8,41},{7,6,16},{9,9,960},{7,4,6},{7,8,31},{7,5,8},
++{7,8,57},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,7,22},{7,4,3},{7,5,11},{7,4,5},
++{7,7,26},{7,5,9},{9,9,704},{7,4,6},{7,8,37},{9,5,128},{7,7,25},{7,6,15},{9,8,320},{7,4,4},
++{7,4,2},{7,4,7},{7,6,13},{7,4,3},{7,7,18},{7,4,5},{7,7,21},{7,6,17},{9,7,256},{7,4,6},
++{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{11,11,1792},{7,4,3},
++{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,7,20},{9,5,128},{7,7,24},{7,6,14},
++{7,7,28},{7,4,4},{7,4,2},{7,4,7},{7,7,23},{7,4,3},{7,7,27},{7,4,5},{7,8,40},{7,6,16},
++{9,9,832},{7,4,6},{7,7,19},{7,5,8},{7,8,56},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{7,8,46},{7,4,3},{7,5,11},{7,4,5},{7,8,54},{7,5,9},{9,8,512},{7,4,6},{7,8,36},{9,5,128},
++{7,8,52},{7,6,15},{7,8,0},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{9,9,1600},{7,4,5},
++{7,8,44},{7,6,17},{9,9,1344},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{7,8,30},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},
++{7,8,34},{9,5,128},{7,8,50},{7,6,14},{7,8,62},{7,4,4},{7,4,2},{7,4,7},{7,8,48},{7,4,3},
++{7,8,60},{7,4,5},{7,8,42},{7,6,16},{9,9,1088},{7,4,6},{7,8,32},{7,5,8},{7,8,58},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,7,22},{7,4,3},{7,5,11},{7,4,5},{7,7,26},{7,5,9},
++{9,8,640},{7,4,6},{7,8,38},{9,5,128},{7,7,25},{7,6,15},{9,8,384},{7,4,4},{7,4,2},{7,4,7},
++{7,6,13},{7,4,3},{7,7,18},{7,4,5},{7,7,21},{7,6,17},{9,7,256},{7,4,6},{7,6,1},{7,5,8},
++{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{0,0,0},{7,4,3},{7,5,11},{7,4,5},
++{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,7,20},{9,5,128},{7,7,24},{7,6,14},{7,7,28},{7,4,4},
++{7,4,2},{7,4,7},{7,7,23},{7,4,3},{7,7,27},{7,4,5},{7,8,39},{7,6,16},{9,8,576},{7,4,6},
++{7,7,19},{7,5,8},{7,8,55},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,45},{7,4,3},
++{7,5,11},{7,4,5},{7,8,53},{7,5,9},{9,8,448},{7,4,6},{7,8,35},{9,5,128},{7,8,51},{7,6,15},
++{7,8,63},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{9,9,1536},{7,4,5},{7,8,43},{7,6,17},
++{9,9,1280},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{7,8,29},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,8,33},{9,5,128},
++{7,8,49},{7,6,14},{7,8,61},{7,4,4},{7,4,2},{7,4,7},{7,8,47},{7,4,3},{7,8,59},{7,4,5},
++{7,8,41},{7,6,16},{9,9,1024},{7,4,6},{7,8,31},{7,5,8},{7,8,57},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{7,7,22},{7,4,3},{7,5,11},{7,4,5},{7,7,26},{7,5,9},{9,9,768},{7,4,6},
++{7,8,37},{9,5,128},{7,7,25},{7,6,15},{9,8,320},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},
++{7,7,18},{7,4,5},{7,7,21},{7,6,17},{9,7,256},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{11,11,1856},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},
++{9,6,1664},{7,4,6},{7,7,20},{9,5,128},{7,7,24},{7,6,14},{7,7,28},{7,4,4},{7,4,2},{7,4,7},
++{7,7,23},{7,4,3},{7,7,27},{7,4,5},{7,8,40},{7,6,16},{9,9,896},{7,4,6},{7,7,19},{7,5,8},
++{7,8,56},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,46},{7,4,3},{7,5,11},{7,4,5},
++{7,8,54},{7,5,9},{9,8,512},{7,4,6},{7,8,36},{9,5,128},{7,8,52},{7,6,15},{7,8,0},{7,4,4},
++{7,4,2},{7,4,7},{7,6,13},{7,4,3},{9,9,1728},{7,4,5},{7,8,44},{7,6,17},{9,9,1408},{7,4,6},
++{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,30},{7,4,3},
++{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,8,34},{9,5,128},{7,8,50},{7,6,14},
++{7,8,62},{7,4,4},{7,4,2},{7,4,7},{7,8,48},{7,4,3},{7,8,60},{7,4,5},{7,8,42},{7,6,16},
++{9,9,1152},{7,4,6},{7,8,32},{7,5,8},{7,8,58},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{7,7,22},{7,4,3},{7,5,11},{7,4,5},{7,7,26},{7,5,9},{9,8,640},{7,4,6},{7,8,38},{9,5,128},
++{7,7,25},{7,6,15},{9,8,384},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{7,7,18},{7,4,5},
++{7,7,21},{7,6,17},{9,7,256},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{0,0,0},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},
++{7,7,20},{9,5,128},{7,7,24},{7,6,14},{7,7,28},{7,4,4},{7,4,2},{7,4,7},{7,7,23},{7,4,3},
++{7,7,27},{7,4,5},{7,8,39},{7,6,16},{9,8,576},{7,4,6},{7,7,19},{7,5,8},{7,8,55},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,45},{7,4,3},{7,5,11},{7,4,5},{7,8,53},{7,5,9},
++{9,8,448},{7,4,6},{7,8,35},{9,5,128},{7,8,51},{7,6,15},{7,8,63},{7,4,4},{7,4,2},{7,4,7},
++{7,6,13},{7,4,3},{9,9,1472},{7,4,5},{7,8,43},{7,6,17},{9,9,1216},{7,4,6},{7,6,1},{7,5,8},
++{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,29},{7,4,3},{7,5,11},{7,4,5},
++{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,8,33},{9,5,128},{7,8,49},{7,6,14},{7,8,61},{7,4,4},
++{7,4,2},{7,4,7},{7,8,47},{7,4,3},{7,8,59},{7,4,5},{7,8,41},{7,6,16},{9,9,960},{7,4,6},
++{7,8,31},{7,5,8},{7,8,57},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,7,22},{7,4,3},
++{7,5,11},{7,4,5},{7,7,26},{7,5,9},{9,9,704},{7,4,6},{7,8,37},{9,5,128},{7,7,25},{7,6,15},
++{9,8,320},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{7,7,18},{7,4,5},{7,7,21},{7,6,17},
++{9,7,256},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{11,12,2112},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,7,20},{9,5,128},
++{7,7,24},{7,6,14},{7,7,28},{7,4,4},{7,4,2},{7,4,7},{7,7,23},{7,4,3},{7,7,27},{7,4,5},
++{7,8,40},{7,6,16},{9,9,832},{7,4,6},{7,7,19},{7,5,8},{7,8,56},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{7,8,46},{7,4,3},{7,5,11},{7,4,5},{7,8,54},{7,5,9},{9,8,512},{7,4,6},
++{7,8,36},{9,5,128},{7,8,52},{7,6,15},{7,8,0},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},
++{9,9,1600},{7,4,5},{7,8,44},{7,6,17},{9,9,1344},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,30},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},
++{9,6,1664},{7,4,6},{7,8,34},{9,5,128},{7,8,50},{7,6,14},{7,8,62},{7,4,4},{7,4,2},{7,4,7},
++{7,8,48},{7,4,3},{7,8,60},{7,4,5},{7,8,42},{7,6,16},{9,9,1088},{7,4,6},{7,8,32},{7,5,8},
++{7,8,58},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,7,22},{7,4,3},{7,5,11},{7,4,5},
++{7,7,26},{7,5,9},{9,8,640},{7,4,6},{7,8,38},{9,5,128},{7,7,25},{7,6,15},{9,8,384},{7,4,4},
++{7,4,2},{7,4,7},{7,6,13},{7,4,3},{7,7,18},{7,4,5},{7,7,21},{7,6,17},{9,7,256},{7,4,6},
++{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{0,0,0},{7,4,3},
++{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,7,20},{9,5,128},{7,7,24},{7,6,14},
++{7,7,28},{7,4,4},{7,4,2},{7,4,7},{7,7,23},{7,4,3},{7,7,27},{7,4,5},{7,8,39},{7,6,16},
++{9,8,576},{7,4,6},{7,7,19},{7,5,8},{7,8,55},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{7,8,45},{7,4,3},{7,5,11},{7,4,5},{7,8,53},{7,5,9},{9,8,448},{7,4,6},{7,8,35},{9,5,128},
++{7,8,51},{7,6,15},{7,8,63},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{9,9,1536},{7,4,5},
++{7,8,43},{7,6,17},{9,9,1280},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{7,8,29},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},
++{7,8,33},{9,5,128},{7,8,49},{7,6,14},{7,8,61},{7,4,4},{7,4,2},{7,4,7},{7,8,47},{7,4,3},
++{7,8,59},{7,4,5},{7,8,41},{7,6,16},{9,9,1024},{7,4,6},{7,8,31},{7,5,8},{7,8,57},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,7,22},{7,4,3},{7,5,11},{7,4,5},{7,7,26},{7,5,9},
++{9,9,768},{7,4,6},{7,8,37},{9,5,128},{7,7,25},{7,6,15},{9,8,320},{7,4,4},{7,4,2},{7,4,7},
++{7,6,13},{7,4,3},{7,7,18},{7,4,5},{7,7,21},{7,6,17},{9,7,256},{7,4,6},{7,6,1},{7,5,8},
++{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{11,12,2368},{7,4,3},{7,5,11},{7,4,5},
++{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,7,20},{9,5,128},{7,7,24},{7,6,14},{7,7,28},{7,4,4},
++{7,4,2},{7,4,7},{7,7,23},{7,4,3},{7,7,27},{7,4,5},{7,8,40},{7,6,16},{9,9,896},{7,4,6},
++{7,7,19},{7,5,8},{7,8,56},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,46},{7,4,3},
++{7,5,11},{7,4,5},{7,8,54},{7,5,9},{9,8,512},{7,4,6},{7,8,36},{9,5,128},{7,8,52},{7,6,15},
++{7,8,0},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{9,9,1728},{7,4,5},{7,8,44},{7,6,17},
++{9,9,1408},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{7,8,30},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,8,34},{9,5,128},
++{7,8,50},{7,6,14},{7,8,62},{7,4,4},{7,4,2},{7,4,7},{7,8,48},{7,4,3},{7,8,60},{7,4,5},
++{7,8,42},{7,6,16},{9,9,1152},{7,4,6},{7,8,32},{7,5,8},{7,8,58},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{7,7,22},{7,4,3},{7,5,11},{7,4,5},{7,7,26},{7,5,9},{9,8,640},{7,4,6},
++{7,8,38},{9,5,128},{7,7,25},{7,6,15},{9,8,384},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},
++{7,7,18},{7,4,5},{7,7,21},{7,6,17},{9,7,256},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{0,0,0},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},
++{9,6,1664},{7,4,6},{7,7,20},{9,5,128},{7,7,24},{7,6,14},{7,7,28},{7,4,4},{7,4,2},{7,4,7},
++{7,7,23},{7,4,3},{7,7,27},{7,4,5},{7,8,39},{7,6,16},{9,8,576},{7,4,6},{7,7,19},{7,5,8},
++{7,8,55},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,45},{7,4,3},{7,5,11},{7,4,5},
++{7,8,53},{7,5,9},{9,8,448},{7,4,6},{7,8,35},{9,5,128},{7,8,51},{7,6,15},{7,8,63},{7,4,4},
++{7,4,2},{7,4,7},{7,6,13},{7,4,3},{9,9,1472},{7,4,5},{7,8,43},{7,6,17},{9,9,1216},{7,4,6},
++{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,29},{7,4,3},
++{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,8,33},{9,5,128},{7,8,49},{7,6,14},
++{7,8,61},{7,4,4},{7,4,2},{7,4,7},{7,8,47},{7,4,3},{7,8,59},{7,4,5},{7,8,41},{7,6,16},
++{9,9,960},{7,4,6},{7,8,31},{7,5,8},{7,8,57},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{7,7,22},{7,4,3},{7,5,11},{7,4,5},{7,7,26},{7,5,9},{9,9,704},{7,4,6},{7,8,37},{9,5,128},
++{7,7,25},{7,6,15},{9,8,320},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{7,7,18},{7,4,5},
++{7,7,21},{7,6,17},{9,7,256},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{11,12,1984},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},
++{7,7,20},{9,5,128},{7,7,24},{7,6,14},{7,7,28},{7,4,4},{7,4,2},{7,4,7},{7,7,23},{7,4,3},
++{7,7,27},{7,4,5},{7,8,40},{7,6,16},{9,9,832},{7,4,6},{7,7,19},{7,5,8},{7,8,56},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,46},{7,4,3},{7,5,11},{7,4,5},{7,8,54},{7,5,9},
++{9,8,512},{7,4,6},{7,8,36},{9,5,128},{7,8,52},{7,6,15},{7,8,0},{7,4,4},{7,4,2},{7,4,7},
++{7,6,13},{7,4,3},{9,9,1600},{7,4,5},{7,8,44},{7,6,17},{9,9,1344},{7,4,6},{7,6,1},{7,5,8},
++{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,30},{7,4,3},{7,5,11},{7,4,5},
++{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,8,34},{9,5,128},{7,8,50},{7,6,14},{7,8,62},{7,4,4},
++{7,4,2},{7,4,7},{7,8,48},{7,4,3},{7,8,60},{7,4,5},{7,8,42},{7,6,16},{9,9,1088},{7,4,6},
++{7,8,32},{7,5,8},{7,8,58},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,7,22},{7,4,3},
++{7,5,11},{7,4,5},{7,7,26},{7,5,9},{9,8,640},{7,4,6},{7,8,38},{9,5,128},{7,7,25},{7,6,15},
++{9,8,384},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{7,7,18},{7,4,5},{7,7,21},{7,6,17},
++{9,7,256},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{0,0,0},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,7,20},{9,5,128},
++{7,7,24},{7,6,14},{7,7,28},{7,4,4},{7,4,2},{7,4,7},{7,7,23},{7,4,3},{7,7,27},{7,4,5},
++{7,8,39},{7,6,16},{9,8,576},{7,4,6},{7,7,19},{7,5,8},{7,8,55},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{7,8,45},{7,4,3},{7,5,11},{7,4,5},{7,8,53},{7,5,9},{9,8,448},{7,4,6},
++{7,8,35},{9,5,128},{7,8,51},{7,6,15},{7,8,63},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},
++{9,9,1536},{7,4,5},{7,8,43},{7,6,17},{9,9,1280},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,29},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},
++{9,6,1664},{7,4,6},{7,8,33},{9,5,128},{7,8,49},{7,6,14},{7,8,61},{7,4,4},{7,4,2},{7,4,7},
++{7,8,47},{7,4,3},{7,8,59},{7,4,5},{7,8,41},{7,6,16},{9,9,1024},{7,4,6},{7,8,31},{7,5,8},
++{7,8,57},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,7,22},{7,4,3},{7,5,11},{7,4,5},
++{7,7,26},{7,5,9},{9,9,768},{7,4,6},{7,8,37},{9,5,128},{7,7,25},{7,6,15},{9,8,320},{7,4,4},
++{7,4,2},{7,4,7},{7,6,13},{7,4,3},{7,7,18},{7,4,5},{7,7,21},{7,6,17},{9,7,256},{7,4,6},
++{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{11,11,1920},{7,4,3},
++{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,7,20},{9,5,128},{7,7,24},{7,6,14},
++{7,7,28},{7,4,4},{7,4,2},{7,4,7},{7,7,23},{7,4,3},{7,7,27},{7,4,5},{7,8,40},{7,6,16},
++{9,9,896},{7,4,6},{7,7,19},{7,5,8},{7,8,56},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{7,8,46},{7,4,3},{7,5,11},{7,4,5},{7,8,54},{7,5,9},{9,8,512},{7,4,6},{7,8,36},{9,5,128},
++{7,8,52},{7,6,15},{7,8,0},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{9,9,1728},{7,4,5},
++{7,8,44},{7,6,17},{9,9,1408},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{7,8,30},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},
++{7,8,34},{9,5,128},{7,8,50},{7,6,14},{7,8,62},{7,4,4},{7,4,2},{7,4,7},{7,8,48},{7,4,3},
++{7,8,60},{7,4,5},{7,8,42},{7,6,16},{9,9,1152},{7,4,6},{7,8,32},{7,5,8},{7,8,58},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,7,22},{7,4,3},{7,5,11},{7,4,5},{7,7,26},{7,5,9},
++{9,8,640},{7,4,6},{7,8,38},{9,5,128},{7,7,25},{7,6,15},{9,8,384},{7,4,4},{7,4,2},{7,4,7},
++{7,6,13},{7,4,3},{7,7,18},{7,4,5},{7,7,21},{7,6,17},{9,7,256},{7,4,6},{7,6,1},{7,5,8},
++{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{0,0,0},{7,4,3},{7,5,11},{7,4,5},
++{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,7,20},{9,5,128},{7,7,24},{7,6,14},{7,7,28},{7,4,4},
++{7,4,2},{7,4,7},{7,7,23},{7,4,3},{7,7,27},{7,4,5},{7,8,39},{7,6,16},{9,8,576},{7,4,6},
++{7,7,19},{7,5,8},{7,8,55},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,45},{7,4,3},
++{7,5,11},{7,4,5},{7,8,53},{7,5,9},{9,8,448},{7,4,6},{7,8,35},{9,5,128},{7,8,51},{7,6,15},
++{7,8,63},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{9,9,1472},{7,4,5},{7,8,43},{7,6,17},
++{9,9,1216},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{7,8,29},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,8,33},{9,5,128},
++{7,8,49},{7,6,14},{7,8,61},{7,4,4},{7,4,2},{7,4,7},{7,8,47},{7,4,3},{7,8,59},{7,4,5},
++{7,8,41},{7,6,16},{9,9,960},{7,4,6},{7,8,31},{7,5,8},{7,8,57},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{7,7,22},{7,4,3},{7,5,11},{7,4,5},{7,7,26},{7,5,9},{9,9,704},{7,4,6},
++{7,8,37},{9,5,128},{7,7,25},{7,6,15},{9,8,320},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},
++{7,7,18},{7,4,5},{7,7,21},{7,6,17},{9,7,256},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{11,12,2240},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},
++{9,6,1664},{7,4,6},{7,7,20},{9,5,128},{7,7,24},{7,6,14},{7,7,28},{7,4,4},{7,4,2},{7,4,7},
++{7,7,23},{7,4,3},{7,7,27},{7,4,5},{7,8,40},{7,6,16},{9,9,832},{7,4,6},{7,7,19},{7,5,8},
++{7,8,56},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,46},{7,4,3},{7,5,11},{7,4,5},
++{7,8,54},{7,5,9},{9,8,512},{7,4,6},{7,8,36},{9,5,128},{7,8,52},{7,6,15},{7,8,0},{7,4,4},
++{7,4,2},{7,4,7},{7,6,13},{7,4,3},{9,9,1600},{7,4,5},{7,8,44},{7,6,17},{9,9,1344},{7,4,6},
++{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,30},{7,4,3},
++{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,8,34},{9,5,128},{7,8,50},{7,6,14},
++{7,8,62},{7,4,4},{7,4,2},{7,4,7},{7,8,48},{7,4,3},{7,8,60},{7,4,5},{7,8,42},{7,6,16},
++{9,9,1088},{7,4,6},{7,8,32},{7,5,8},{7,8,58},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{7,7,22},{7,4,3},{7,5,11},{7,4,5},{7,7,26},{7,5,9},{9,8,640},{7,4,6},{7,8,38},{9,5,128},
++{7,7,25},{7,6,15},{9,8,384},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{7,7,18},{7,4,5},
++{7,7,21},{7,6,17},{9,7,256},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{0,0,0},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},
++{7,7,20},{9,5,128},{7,7,24},{7,6,14},{7,7,28},{7,4,4},{7,4,2},{7,4,7},{7,7,23},{7,4,3},
++{7,7,27},{7,4,5},{7,8,39},{7,6,16},{9,8,576},{7,4,6},{7,7,19},{7,5,8},{7,8,55},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,45},{7,4,3},{7,5,11},{7,4,5},{7,8,53},{7,5,9},
++{9,8,448},{7,4,6},{7,8,35},{9,5,128},{7,8,51},{7,6,15},{7,8,63},{7,4,4},{7,4,2},{7,4,7},
++{7,6,13},{7,4,3},{9,9,1536},{7,4,5},{7,8,43},{7,6,17},{9,9,1280},{7,4,6},{7,6,1},{7,5,8},
++{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,29},{7,4,3},{7,5,11},{7,4,5},
++{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,8,33},{9,5,128},{7,8,49},{7,6,14},{7,8,61},{7,4,4},
++{7,4,2},{7,4,7},{7,8,47},{7,4,3},{7,8,59},{7,4,5},{7,8,41},{7,6,16},{9,9,1024},{7,4,6},
++{7,8,31},{7,5,8},{7,8,57},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,7,22},{7,4,3},
++{7,5,11},{7,4,5},{7,7,26},{7,5,9},{9,9,768},{7,4,6},{7,8,37},{9,5,128},{7,7,25},{7,6,15},
++{9,8,320},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{7,7,18},{7,4,5},{7,7,21},{7,6,17},
++{9,7,256},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{11,12,2496},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,7,20},{9,5,128},
++{7,7,24},{7,6,14},{7,7,28},{7,4,4},{7,4,2},{7,4,7},{7,7,23},{7,4,3},{7,7,27},{7,4,5},
++{7,8,40},{7,6,16},{9,9,896},{7,4,6},{7,7,19},{7,5,8},{7,8,56},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{7,8,46},{7,4,3},{7,5,11},{7,4,5},{7,8,54},{7,5,9},{9,8,512},{7,4,6},
++{7,8,36},{9,5,128},{7,8,52},{7,6,15},{7,8,0},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},
++{9,9,1728},{7,4,5},{7,8,44},{7,6,17},{9,9,1408},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,30},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},
++{9,6,1664},{7,4,6},{7,8,34},{9,5,128},{7,8,50},{7,6,14},{7,8,62},{7,4,4},{7,4,2},{7,4,7},
++{7,8,48},{7,4,3},{7,8,60},{7,4,5},{7,8,42},{7,6,16},{9,9,1152},{7,4,6},{7,8,32},{7,5,8},
++{7,8,58},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,7,22},{7,4,3},{7,5,11},{7,4,5},
++{7,7,26},{7,5,9},{9,8,640},{7,4,6},{7,8,38},{9,5,128},{7,7,25},{7,6,15},{9,8,384},{7,4,4},
++{7,4,2},{7,4,7},{7,6,13},{7,4,3},{7,7,18},{7,4,5},{7,7,21},{7,6,17},{9,7,256},{7,4,6},
++{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{12,11,0},{7,4,3},
++{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,7,20},{9,5,128},{7,7,24},{7,6,14},
++{7,7,28},{7,4,4},{7,4,2},{7,4,7},{7,7,23},{7,4,3},{7,7,27},{7,4,5},{7,8,39},{7,6,16},
++{9,8,576},{7,4,6},{7,7,19},{7,5,8},{7,8,55},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{7,8,45},{7,4,3},{7,5,11},{7,4,5},{7,8,53},{7,5,9},{9,8,448},{7,4,6},{7,8,35},{9,5,128},
++{7,8,51},{7,6,15},{7,8,63},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{9,9,1472},{7,4,5},
++{7,8,43},{7,6,17},{9,9,1216},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{7,8,29},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},
++{7,8,33},{9,5,128},{7,8,49},{7,6,14},{7,8,61},{7,4,4},{7,4,2},{7,4,7},{7,8,47},{7,4,3},
++{7,8,59},{7,4,5},{7,8,41},{7,6,16},{9,9,960},{7,4,6},{7,8,31},{7,5,8},{7,8,57},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,7,22},{7,4,3},{7,5,11},{7,4,5},{7,7,26},{7,5,9},
++{9,9,704},{7,4,6},{7,8,37},{9,5,128},{7,7,25},{7,6,15},{9,8,320},{7,4,4},{7,4,2},{7,4,7},
++{7,6,13},{7,4,3},{7,7,18},{7,4,5},{7,7,21},{7,6,17},{9,7,256},{7,4,6},{7,6,1},{7,5,8},
++{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{11,11,1792},{7,4,3},{7,5,11},{7,4,5},
++{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,7,20},{9,5,128},{7,7,24},{7,6,14},{7,7,28},{7,4,4},
++{7,4,2},{7,4,7},{7,7,23},{7,4,3},{7,7,27},{7,4,5},{7,8,40},{7,6,16},{9,9,832},{7,4,6},
++{7,7,19},{7,5,8},{7,8,56},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,46},{7,4,3},
++{7,5,11},{7,4,5},{7,8,54},{7,5,9},{9,8,512},{7,4,6},{7,8,36},{9,5,128},{7,8,52},{7,6,15},
++{7,8,0},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{9,9,1600},{7,4,5},{7,8,44},{7,6,17},
++{9,9,1344},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{7,8,30},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,8,34},{9,5,128},
++{7,8,50},{7,6,14},{7,8,62},{7,4,4},{7,4,2},{7,4,7},{7,8,48},{7,4,3},{7,8,60},{7,4,5},
++{7,8,42},{7,6,16},{9,9,1088},{7,4,6},{7,8,32},{7,5,8},{7,8,58},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{7,7,22},{7,4,3},{7,5,11},{7,4,5},{7,7,26},{7,5,9},{9,8,640},{7,4,6},
++{7,8,38},{9,5,128},{7,7,25},{7,6,15},{9,8,384},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},
++{7,7,18},{7,4,5},{7,7,21},{7,6,17},{9,7,256},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{0,0,0},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},
++{9,6,1664},{7,4,6},{7,7,20},{9,5,128},{7,7,24},{7,6,14},{7,7,28},{7,4,4},{7,4,2},{7,4,7},
++{7,7,23},{7,4,3},{7,7,27},{7,4,5},{7,8,39},{7,6,16},{9,8,576},{7,4,6},{7,7,19},{7,5,8},
++{7,8,55},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,45},{7,4,3},{7,5,11},{7,4,5},
++{7,8,53},{7,5,9},{9,8,448},{7,4,6},{7,8,35},{9,5,128},{7,8,51},{7,6,15},{7,8,63},{7,4,4},
++{7,4,2},{7,4,7},{7,6,13},{7,4,3},{9,9,1536},{7,4,5},{7,8,43},{7,6,17},{9,9,1280},{7,4,6},
++{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,29},{7,4,3},
++{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,8,33},{9,5,128},{7,8,49},{7,6,14},
++{7,8,61},{7,4,4},{7,4,2},{7,4,7},{7,8,47},{7,4,3},{7,8,59},{7,4,5},{7,8,41},{7,6,16},
++{9,9,1024},{7,4,6},{7,8,31},{7,5,8},{7,8,57},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{7,7,22},{7,4,3},{7,5,11},{7,4,5},{7,7,26},{7,5,9},{9,9,768},{7,4,6},{7,8,37},{9,5,128},
++{7,7,25},{7,6,15},{9,8,320},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{7,7,18},{7,4,5},
++{7,7,21},{7,6,17},{9,7,256},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{11,11,1856},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},
++{7,7,20},{9,5,128},{7,7,24},{7,6,14},{7,7,28},{7,4,4},{7,4,2},{7,4,7},{7,7,23},{7,4,3},
++{7,7,27},{7,4,5},{7,8,40},{7,6,16},{9,9,896},{7,4,6},{7,7,19},{7,5,8},{7,8,56},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,46},{7,4,3},{7,5,11},{7,4,5},{7,8,54},{7,5,9},
++{9,8,512},{7,4,6},{7,8,36},{9,5,128},{7,8,52},{7,6,15},{7,8,0},{7,4,4},{7,4,2},{7,4,7},
++{7,6,13},{7,4,3},{9,9,1728},{7,4,5},{7,8,44},{7,6,17},{9,9,1408},{7,4,6},{7,6,1},{7,5,8},
++{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,30},{7,4,3},{7,5,11},{7,4,5},
++{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,8,34},{9,5,128},{7,8,50},{7,6,14},{7,8,62},{7,4,4},
++{7,4,2},{7,4,7},{7,8,48},{7,4,3},{7,8,60},{7,4,5},{7,8,42},{7,6,16},{9,9,1152},{7,4,6},
++{7,8,32},{7,5,8},{7,8,58},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,7,22},{7,4,3},
++{7,5,11},{7,4,5},{7,7,26},{7,5,9},{9,8,640},{7,4,6},{7,8,38},{9,5,128},{7,7,25},{7,6,15},
++{9,8,384},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{7,7,18},{7,4,5},{7,7,21},{7,6,17},
++{9,7,256},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{0,0,0},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,7,20},{9,5,128},
++{7,7,24},{7,6,14},{7,7,28},{7,4,4},{7,4,2},{7,4,7},{7,7,23},{7,4,3},{7,7,27},{7,4,5},
++{7,8,39},{7,6,16},{9,8,576},{7,4,6},{7,7,19},{7,5,8},{7,8,55},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{7,8,45},{7,4,3},{7,5,11},{7,4,5},{7,8,53},{7,5,9},{9,8,448},{7,4,6},
++{7,8,35},{9,5,128},{7,8,51},{7,6,15},{7,8,63},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},
++{9,9,1472},{7,4,5},{7,8,43},{7,6,17},{9,9,1216},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,29},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},
++{9,6,1664},{7,4,6},{7,8,33},{9,5,128},{7,8,49},{7,6,14},{7,8,61},{7,4,4},{7,4,2},{7,4,7},
++{7,8,47},{7,4,3},{7,8,59},{7,4,5},{7,8,41},{7,6,16},{9,9,960},{7,4,6},{7,8,31},{7,5,8},
++{7,8,57},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,7,22},{7,4,3},{7,5,11},{7,4,5},
++{7,7,26},{7,5,9},{9,9,704},{7,4,6},{7,8,37},{9,5,128},{7,7,25},{7,6,15},{9,8,320},{7,4,4},
++{7,4,2},{7,4,7},{7,6,13},{7,4,3},{7,7,18},{7,4,5},{7,7,21},{7,6,17},{9,7,256},{7,4,6},
++{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{11,12,2176},{7,4,3},
++{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,7,20},{9,5,128},{7,7,24},{7,6,14},
++{7,7,28},{7,4,4},{7,4,2},{7,4,7},{7,7,23},{7,4,3},{7,7,27},{7,4,5},{7,8,40},{7,6,16},
++{9,9,832},{7,4,6},{7,7,19},{7,5,8},{7,8,56},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{7,8,46},{7,4,3},{7,5,11},{7,4,5},{7,8,54},{7,5,9},{9,8,512},{7,4,6},{7,8,36},{9,5,128},
++{7,8,52},{7,6,15},{7,8,0},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{9,9,1600},{7,4,5},
++{7,8,44},{7,6,17},{9,9,1344},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{7,8,30},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},
++{7,8,34},{9,5,128},{7,8,50},{7,6,14},{7,8,62},{7,4,4},{7,4,2},{7,4,7},{7,8,48},{7,4,3},
++{7,8,60},{7,4,5},{7,8,42},{7,6,16},{9,9,1088},{7,4,6},{7,8,32},{7,5,8},{7,8,58},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,7,22},{7,4,3},{7,5,11},{7,4,5},{7,7,26},{7,5,9},
++{9,8,640},{7,4,6},{7,8,38},{9,5,128},{7,7,25},{7,6,15},{9,8,384},{7,4,4},{7,4,2},{7,4,7},
++{7,6,13},{7,4,3},{7,7,18},{7,4,5},{7,7,21},{7,6,17},{9,7,256},{7,4,6},{7,6,1},{7,5,8},
++{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{0,0,0},{7,4,3},{7,5,11},{7,4,5},
++{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,7,20},{9,5,128},{7,7,24},{7,6,14},{7,7,28},{7,4,4},
++{7,4,2},{7,4,7},{7,7,23},{7,4,3},{7,7,27},{7,4,5},{7,8,39},{7,6,16},{9,8,576},{7,4,6},
++{7,7,19},{7,5,8},{7,8,55},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,45},{7,4,3},
++{7,5,11},{7,4,5},{7,8,53},{7,5,9},{9,8,448},{7,4,6},{7,8,35},{9,5,128},{7,8,51},{7,6,15},
++{7,8,63},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{9,9,1536},{7,4,5},{7,8,43},{7,6,17},
++{9,9,1280},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{7,8,29},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,8,33},{9,5,128},
++{7,8,49},{7,6,14},{7,8,61},{7,4,4},{7,4,2},{7,4,7},{7,8,47},{7,4,3},{7,8,59},{7,4,5},
++{7,8,41},{7,6,16},{9,9,1024},{7,4,6},{7,8,31},{7,5,8},{7,8,57},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{7,7,22},{7,4,3},{7,5,11},{7,4,5},{7,7,26},{7,5,9},{9,9,768},{7,4,6},
++{7,8,37},{9,5,128},{7,7,25},{7,6,15},{9,8,320},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},
++{7,7,18},{7,4,5},{7,7,21},{7,6,17},{9,7,256},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{11,12,2432},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},
++{9,6,1664},{7,4,6},{7,7,20},{9,5,128},{7,7,24},{7,6,14},{7,7,28},{7,4,4},{7,4,2},{7,4,7},
++{7,7,23},{7,4,3},{7,7,27},{7,4,5},{7,8,40},{7,6,16},{9,9,896},{7,4,6},{7,7,19},{7,5,8},
++{7,8,56},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,46},{7,4,3},{7,5,11},{7,4,5},
++{7,8,54},{7,5,9},{9,8,512},{7,4,6},{7,8,36},{9,5,128},{7,8,52},{7,6,15},{7,8,0},{7,4,4},
++{7,4,2},{7,4,7},{7,6,13},{7,4,3},{9,9,1728},{7,4,5},{7,8,44},{7,6,17},{9,9,1408},{7,4,6},
++{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,30},{7,4,3},
++{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,8,34},{9,5,128},{7,8,50},{7,6,14},
++{7,8,62},{7,4,4},{7,4,2},{7,4,7},{7,8,48},{7,4,3},{7,8,60},{7,4,5},{7,8,42},{7,6,16},
++{9,9,1152},{7,4,6},{7,8,32},{7,5,8},{7,8,58},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{7,7,22},{7,4,3},{7,5,11},{7,4,5},{7,7,26},{7,5,9},{9,8,640},{7,4,6},{7,8,38},{9,5,128},
++{7,7,25},{7,6,15},{9,8,384},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{7,7,18},{7,4,5},
++{7,7,21},{7,6,17},{9,7,256},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{0,0,0},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},
++{7,7,20},{9,5,128},{7,7,24},{7,6,14},{7,7,28},{7,4,4},{7,4,2},{7,4,7},{7,7,23},{7,4,3},
++{7,7,27},{7,4,5},{7,8,39},{7,6,16},{9,8,576},{7,4,6},{7,7,19},{7,5,8},{7,8,55},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,45},{7,4,3},{7,5,11},{7,4,5},{7,8,53},{7,5,9},
++{9,8,448},{7,4,6},{7,8,35},{9,5,128},{7,8,51},{7,6,15},{7,8,63},{7,4,4},{7,4,2},{7,4,7},
++{7,6,13},{7,4,3},{9,9,1472},{7,4,5},{7,8,43},{7,6,17},{9,9,1216},{7,4,6},{7,6,1},{7,5,8},
++{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,29},{7,4,3},{7,5,11},{7,4,5},
++{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,8,33},{9,5,128},{7,8,49},{7,6,14},{7,8,61},{7,4,4},
++{7,4,2},{7,4,7},{7,8,47},{7,4,3},{7,8,59},{7,4,5},{7,8,41},{7,6,16},{9,9,960},{7,4,6},
++{7,8,31},{7,5,8},{7,8,57},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,7,22},{7,4,3},
++{7,5,11},{7,4,5},{7,7,26},{7,5,9},{9,9,704},{7,4,6},{7,8,37},{9,5,128},{7,7,25},{7,6,15},
++{9,8,320},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{7,7,18},{7,4,5},{7,7,21},{7,6,17},
++{9,7,256},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{11,12,2048},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,7,20},{9,5,128},
++{7,7,24},{7,6,14},{7,7,28},{7,4,4},{7,4,2},{7,4,7},{7,7,23},{7,4,3},{7,7,27},{7,4,5},
++{7,8,40},{7,6,16},{9,9,832},{7,4,6},{7,7,19},{7,5,8},{7,8,56},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{7,8,46},{7,4,3},{7,5,11},{7,4,5},{7,8,54},{7,5,9},{9,8,512},{7,4,6},
++{7,8,36},{9,5,128},{7,8,52},{7,6,15},{7,8,0},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},
++{9,9,1600},{7,4,5},{7,8,44},{7,6,17},{9,9,1344},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,30},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},
++{9,6,1664},{7,4,6},{7,8,34},{9,5,128},{7,8,50},{7,6,14},{7,8,62},{7,4,4},{7,4,2},{7,4,7},
++{7,8,48},{7,4,3},{7,8,60},{7,4,5},{7,8,42},{7,6,16},{9,9,1088},{7,4,6},{7,8,32},{7,5,8},
++{7,8,58},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,7,22},{7,4,3},{7,5,11},{7,4,5},
++{7,7,26},{7,5,9},{9,8,640},{7,4,6},{7,8,38},{9,5,128},{7,7,25},{7,6,15},{9,8,384},{7,4,4},
++{7,4,2},{7,4,7},{7,6,13},{7,4,3},{7,7,18},{7,4,5},{7,7,21},{7,6,17},{9,7,256},{7,4,6},
++{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{0,0,0},{7,4,3},
++{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,7,20},{9,5,128},{7,7,24},{7,6,14},
++{7,7,28},{7,4,4},{7,4,2},{7,4,7},{7,7,23},{7,4,3},{7,7,27},{7,4,5},{7,8,39},{7,6,16},
++{9,8,576},{7,4,6},{7,7,19},{7,5,8},{7,8,55},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{7,8,45},{7,4,3},{7,5,11},{7,4,5},{7,8,53},{7,5,9},{9,8,448},{7,4,6},{7,8,35},{9,5,128},
++{7,8,51},{7,6,15},{7,8,63},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{9,9,1536},{7,4,5},
++{7,8,43},{7,6,17},{9,9,1280},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{7,8,29},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},
++{7,8,33},{9,5,128},{7,8,49},{7,6,14},{7,8,61},{7,4,4},{7,4,2},{7,4,7},{7,8,47},{7,4,3},
++{7,8,59},{7,4,5},{7,8,41},{7,6,16},{9,9,1024},{7,4,6},{7,8,31},{7,5,8},{7,8,57},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,7,22},{7,4,3},{7,5,11},{7,4,5},{7,7,26},{7,5,9},
++{9,9,768},{7,4,6},{7,8,37},{9,5,128},{7,7,25},{7,6,15},{9,8,320},{7,4,4},{7,4,2},{7,4,7},
++{7,6,13},{7,4,3},{7,7,18},{7,4,5},{7,7,21},{7,6,17},{9,7,256},{7,4,6},{7,6,1},{7,5,8},
++{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{11,11,1920},{7,4,3},{7,5,11},{7,4,5},
++{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,7,20},{9,5,128},{7,7,24},{7,6,14},{7,7,28},{7,4,4},
++{7,4,2},{7,4,7},{7,7,23},{7,4,3},{7,7,27},{7,4,5},{7,8,40},{7,6,16},{9,9,896},{7,4,6},
++{7,7,19},{7,5,8},{7,8,56},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,46},{7,4,3},
++{7,5,11},{7,4,5},{7,8,54},{7,5,9},{9,8,512},{7,4,6},{7,8,36},{9,5,128},{7,8,52},{7,6,15},
++{7,8,0},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{9,9,1728},{7,4,5},{7,8,44},{7,6,17},
++{9,9,1408},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{7,8,30},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,8,34},{9,5,128},
++{7,8,50},{7,6,14},{7,8,62},{7,4,4},{7,4,2},{7,4,7},{7,8,48},{7,4,3},{7,8,60},{7,4,5},
++{7,8,42},{7,6,16},{9,9,1152},{7,4,6},{7,8,32},{7,5,8},{7,8,58},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{7,7,22},{7,4,3},{7,5,11},{7,4,5},{7,7,26},{7,5,9},{9,8,640},{7,4,6},
++{7,8,38},{9,5,128},{7,7,25},{7,6,15},{9,8,384},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},
++{7,7,18},{7,4,5},{7,7,21},{7,6,17},{9,7,256},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{0,0,0},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},
++{9,6,1664},{7,4,6},{7,7,20},{9,5,128},{7,7,24},{7,6,14},{7,7,28},{7,4,4},{7,4,2},{7,4,7},
++{7,7,23},{7,4,3},{7,7,27},{7,4,5},{7,8,39},{7,6,16},{9,8,576},{7,4,6},{7,7,19},{7,5,8},
++{7,8,55},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,45},{7,4,3},{7,5,11},{7,4,5},
++{7,8,53},{7,5,9},{9,8,448},{7,4,6},{7,8,35},{9,5,128},{7,8,51},{7,6,15},{7,8,63},{7,4,4},
++{7,4,2},{7,4,7},{7,6,13},{7,4,3},{9,9,1472},{7,4,5},{7,8,43},{7,6,17},{9,9,1216},{7,4,6},
++{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,29},{7,4,3},
++{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,8,33},{9,5,128},{7,8,49},{7,6,14},
++{7,8,61},{7,4,4},{7,4,2},{7,4,7},{7,8,47},{7,4,3},{7,8,59},{7,4,5},{7,8,41},{7,6,16},
++{9,9,960},{7,4,6},{7,8,31},{7,5,8},{7,8,57},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{7,7,22},{7,4,3},{7,5,11},{7,4,5},{7,7,26},{7,5,9},{9,9,704},{7,4,6},{7,8,37},{9,5,128},
++{7,7,25},{7,6,15},{9,8,320},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{7,7,18},{7,4,5},
++{7,7,21},{7,6,17},{9,7,256},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{11,12,2304},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},
++{7,7,20},{9,5,128},{7,7,24},{7,6,14},{7,7,28},{7,4,4},{7,4,2},{7,4,7},{7,7,23},{7,4,3},
++{7,7,27},{7,4,5},{7,8,40},{7,6,16},{9,9,832},{7,4,6},{7,7,19},{7,5,8},{7,8,56},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,46},{7,4,3},{7,5,11},{7,4,5},{7,8,54},{7,5,9},
++{9,8,512},{7,4,6},{7,8,36},{9,5,128},{7,8,52},{7,6,15},{7,8,0},{7,4,4},{7,4,2},{7,4,7},
++{7,6,13},{7,4,3},{9,9,1600},{7,4,5},{7,8,44},{7,6,17},{9,9,1344},{7,4,6},{7,6,1},{7,5,8},
++{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,30},{7,4,3},{7,5,11},{7,4,5},
++{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,8,34},{9,5,128},{7,8,50},{7,6,14},{7,8,62},{7,4,4},
++{7,4,2},{7,4,7},{7,8,48},{7,4,3},{7,8,60},{7,4,5},{7,8,42},{7,6,16},{9,9,1088},{7,4,6},
++{7,8,32},{7,5,8},{7,8,58},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,7,22},{7,4,3},
++{7,5,11},{7,4,5},{7,7,26},{7,5,9},{9,8,640},{7,4,6},{7,8,38},{9,5,128},{7,7,25},{7,6,15},
++{9,8,384},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{7,7,18},{7,4,5},{7,7,21},{7,6,17},
++{9,7,256},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{0,0,0},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,7,20},{9,5,128},
++{7,7,24},{7,6,14},{7,7,28},{7,4,4},{7,4,2},{7,4,7},{7,7,23},{7,4,3},{7,7,27},{7,4,5},
++{7,8,39},{7,6,16},{9,8,576},{7,4,6},{7,7,19},{7,5,8},{7,8,55},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{7,8,45},{7,4,3},{7,5,11},{7,4,5},{7,8,53},{7,5,9},{9,8,448},{7,4,6},
++{7,8,35},{9,5,128},{7,8,51},{7,6,15},{7,8,63},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},
++{9,9,1536},{7,4,5},{7,8,43},{7,6,17},{9,9,1280},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,8,29},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},
++{9,6,1664},{7,4,6},{7,8,33},{9,5,128},{7,8,49},{7,6,14},{7,8,61},{7,4,4},{7,4,2},{7,4,7},
++{7,8,47},{7,4,3},{7,8,59},{7,4,5},{7,8,41},{7,6,16},{9,9,1024},{7,4,6},{7,8,31},{7,5,8},
++{7,8,57},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,7,22},{7,4,3},{7,5,11},{7,4,5},
++{7,7,26},{7,5,9},{9,9,768},{7,4,6},{7,8,37},{9,5,128},{7,7,25},{7,6,15},{9,8,320},{7,4,4},
++{7,4,2},{7,4,7},{7,6,13},{7,4,3},{7,7,18},{7,4,5},{7,7,21},{7,6,17},{9,7,256},{7,4,6},
++{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},{11,12,2560},{7,4,3},
++{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},{7,7,20},{9,5,128},{7,7,24},{7,6,14},
++{7,7,28},{7,4,4},{7,4,2},{7,4,7},{7,7,23},{7,4,3},{7,7,27},{7,4,5},{7,8,40},{7,6,16},
++{9,9,896},{7,4,6},{7,7,19},{7,5,8},{7,8,56},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7},
++{7,8,46},{7,4,3},{7,5,11},{7,4,5},{7,8,54},{7,5,9},{9,8,512},{7,4,6},{7,8,36},{9,5,128},
++{7,8,52},{7,6,15},{7,8,0},{7,4,4},{7,4,2},{7,4,7},{7,6,13},{7,4,3},{9,9,1728},{7,4,5},
++{7,8,44},{7,6,17},{9,9,1408},{7,4,6},{7,6,1},{7,5,8},{9,6,192},{9,5,64},{7,5,10},{7,4,4},
++{7,4,2},{7,4,7},{7,8,30},{7,4,3},{7,5,11},{7,4,5},{7,6,12},{7,5,9},{9,6,1664},{7,4,6},
++{7,8,34},{9,5,128},{7,8,50},{7,6,14},{7,8,62},{7,4,4},{7,4,2},{7,4,7},{7,8,48},{7,4,3},
++{7,8,60},{7,4,5},{7,8,42},{7,6,16},{9,9,1152},{7,4,6},{7,8,32},{7,5,8},{7,8,58},{9,5,64},
++{7,5,10},{7,4,4},{7,4,2},{7,4,7},{7,7,22},{7,4,3},{7,5,11},{7,4,5},{7,7,26},{7,5,9},
++{9,8,640},{7,4,6},{7,8,38},{9,5,128},{7,7,25},{7,6,15},{9,8,384},{7,4,4},{7,4,2},{7,4,7},
++{7,6,13},{7,4,3},{7,7,18},{7,4,5},{7,7,21},{7,6,17},{9,7,256},{7,4,6},{7,6,1},{7,5,8},
++{9,6,192},{9,5,64},{7,5,10},{7,4,4},{7,4,2},{7,4,7}
++};
++
++const hf_TIFFFaxTabEnt hf_TIFFFaxBlackTable[8192] = {
++{12,11,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,8,13},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,9,15},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,10,18},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,10,17},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{11,11,1792},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,11,23},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,11,20},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,11,25},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,14},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{0,0,0},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,13},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,12,128},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,12,56},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,12,30},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{11,11,1856},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,57},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,11,21},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,54},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,8,14},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{0,0,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,13},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,9,15},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,52},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,48},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{11,12,2112},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,12,44},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,36},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,12,384},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,14},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{0,0,0},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,8,13},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,28},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,12,60},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,40},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{11,12,2368},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,10,16},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,10,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{10,10,64},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,8,14},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{0,0,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,13},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,9,15},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,10,18},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,10,17},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{11,12,1984},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,50},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,12,34},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,13,1664},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,14},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{0,0,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,8,13},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,26},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,13,1408},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,32},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{11,11,1920},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,12,61},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,42},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{10,13,1024},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,14},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{0,0,0},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,13},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,9,15},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{10,13,768},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,12,62},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{11,12,2240},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,46},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,12,38},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,13,512},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,8,14},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{0,0,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,13},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,11,19},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,11,24},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,11,22},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{11,12,2496},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,10,16},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,10,0},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,10,64},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,14},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{12,11,0},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,8,13},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,9,15},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,10,18},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,10,17},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{11,11,1792},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,11,23},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,11,20},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,11,25},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,8,14},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{0,0,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,13},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{10,12,192},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,13,1280},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,12,31},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{11,11,1856},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,58},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,11,21},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,13,896},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,14},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{0,0,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,8,13},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,9,15},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,13,640},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,49},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{11,12,2176},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,12,45},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,37},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{10,12,448},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,14},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{0,0,0},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,13},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,29},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{10,13,1536},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,12,41},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{11,12,2432},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,10,16},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,10,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,10,64},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,8,14},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{0,0,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,13},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,9,15},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,10,18},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,10,17},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{11,12,2048},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,12,51},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,35},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,12,320},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,14},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{0,0,0},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,8,13},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,27},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,12,59},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,33},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{11,11,1920},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,12,256},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,43},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{10,13,1152},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,8,14},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{0,0,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,13},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,9,15},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,55},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,12,63},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{11,12,2304},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,47},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,12,39},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,53},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,14},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{0,0,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,8,13},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,11,19},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,11,24},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,11,22},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{11,12,2560},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,10,16},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,10,0},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{10,10,64},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,14},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{12,11,0},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,13},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,9,15},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,10,18},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,10,17},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{11,11,1792},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,11,23},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,11,20},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,11,25},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,8,14},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{0,0,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,13},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{10,12,128},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,56},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,30},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{11,11,1856},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,12,57},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,11,21},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,54},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,14},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{0,0,0},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,8,13},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,9,15},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,12,52},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,48},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{11,12,2112},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,44},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,36},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{10,12,384},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,8,14},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{0,0,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,13},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,12,28},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,60},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,12,40},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{11,12,2368},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,10,16},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,10,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,10,64},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,14},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{0,0,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,8,13},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,9,15},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,10,18},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,10,17},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{11,12,1984},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,12,50},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,34},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{10,13,1728},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,14},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{0,0,0},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,13},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,26},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{10,13,1472},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,12,32},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{11,11,1920},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,61},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,12,42},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,13,1088},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,8,14},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{0,0,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,13},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,9,15},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,13,832},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,62},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{11,12,2240},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,12,46},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,38},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,13,576},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,14},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{0,0,0},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,8,13},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,11,19},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,11,24},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,11,22},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{11,12,2496},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,10,16},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,10,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{10,10,64},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,8,14},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{12,11,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,13},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,9,15},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,10,18},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,10,17},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{11,11,1792},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,11,23},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,11,20},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,11,25},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,14},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{0,0,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,8,13},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,12,192},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,13,1344},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,31},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{11,11,1856},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,12,58},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,11,21},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{10,13,960},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,14},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{0,0,0},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,13},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,9,15},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{10,13,704},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,12,49},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{11,12,2176},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,45},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,12,37},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,12,448},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,8,14},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{0,0,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,13},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,12,29},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,13,1600},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,41},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{11,12,2432},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,10,16},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,10,0},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,10,64},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,14},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{0,0,0},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,8,13},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,9,15},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,10,18},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,10,17},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{11,12,2048},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,51},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,35},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{10,12,320},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,8,14},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{0,0,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,13},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,12,27},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,59},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,12,33},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{11,11,1920},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,12,256},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,12,43},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,13,1216},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,14},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{0,0,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,8,13},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,9,15},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,55},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,63},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{11,12,2304},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,12,47},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,12,39},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,12,53},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,14},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,12},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{0,0,0},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,8,13},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,11,19},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,11,24},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,11,22},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{11,12,2560},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,7,10},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,10,16},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2},{8,10,0},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},
++{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{10,10,64},{8,2,3},
++{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,9},{8,2,3},{8,3,1},{8,2,2},
++{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,11},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},
++{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},
++{8,8,14},{8,2,3},{8,3,1},{8,2,2},{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,6,8},{8,2,3},
++{8,3,1},{8,2,2},{8,4,5},{8,2,3},{8,3,4},{8,2,2},{8,7,12},{8,2,3},{8,3,1},{8,2,2},
++{8,4,6},{8,2,3},{8,3,4},{8,2,2},{8,5,7},{8,2,3},{8,3,1},{8,2,2},{8,4,5},{8,2,3},
++{8,3,4},{8,2,2}
++};
++
+ /*
+ * The following macros define the majority of the G3/G4 decoder
+ * algorithm using the state tables defined elsewhere. To build
+@@ -323,7 +1573,7 @@
+ #define EXPAND1D(eoflab) do { \
+ for (;;) { \
+ for (;;) { \
+- LOOKUP16(12, TIFFFaxWhiteTable, eof1d); \
++ LOOKUP16(12, hf_TIFFFaxWhiteTable, eof1d); \
+ switch (TabEnt->State) { \
+ case S_EOL: \
+ EOLcnt = 1; \
+@@ -345,7 +1595,7 @@
+ if ((tiff_runlen_t)a0 >= lastx) \
+ goto done1d; \
+ for (;;) { \
+- LOOKUP16(13, TIFFFaxBlackTable, eof1d); \
++ LOOKUP16(13, hf_TIFFFaxBlackTable, eof1d); \
+ switch (TabEnt->State) { \
+ case S_EOL: \
+ EOLcnt = 1; \
+@@ -393,7 +1643,7 @@
+ */
+ #define EXPAND2D(eoflab) do { \
+ while ((tiff_runlen_t)a0 < lastx) { \
+- LOOKUP8(7, TIFFFaxMainTable, eof2d); \
++ LOOKUP8(7, hf_TIFFFaxMainTable, eof2d); \
+ switch (TabEnt->State) { \
+ case S_Pass: \
+ CHECK_b1; \
+@@ -405,7 +1655,7 @@
+ case S_Horiz: \
+ if ((pa-thisrun)&1) { \
+ for (;;) { /* black first */ \
+- LOOKUP16(13, TIFFFaxBlackTable, eof2d); \
++ LOOKUP16(13, hf_TIFFFaxBlackTable, eof2d); \
+ switch (TabEnt->State) { \
+ case S_TermB: \
+ SETVAL(TabEnt->Param); \
+@@ -421,7 +1671,7 @@
+ } \
+ doneWhite2da:; \
+ for (;;) { /* then white */ \
+- LOOKUP16(12, TIFFFaxWhiteTable, eof2d); \
++ LOOKUP16(12, hf_TIFFFaxWhiteTable, eof2d); \
+ switch (TabEnt->State) { \
+ case S_TermW: \
+ SETVAL(TabEnt->Param); \
+@@ -438,7 +1688,7 @@
+ doneBlack2da:; \
+ } else { \
+ for (;;) { /* white first */ \
+- LOOKUP16(12, TIFFFaxWhiteTable, eof2d); \
++ LOOKUP16(12, hf_TIFFFaxWhiteTable, eof2d); \
+ switch (TabEnt->State) { \
+ case S_TermW: \
+ SETVAL(TabEnt->Param); \
+@@ -454,7 +1704,7 @@
+ } \
+ doneWhite2db:; \
+ for (;;) { /* then black */ \
+- LOOKUP16(13, TIFFFaxBlackTable, eof2d); \
++ LOOKUP16(13, hf_TIFFFaxBlackTable, eof2d); \
+ switch (TabEnt->State) { \
+ case S_TermB: \
+ SETVAL(TabEnt->Param); \
diff --git a/main/hylafax/libtiff-42-compatibility.patch b/main/hylafax/tiff-compat.patch
index 34e5dd221ce..1d8fe51cef5 100644
--- a/main/hylafax/libtiff-42-compatibility.patch
+++ b/main/hylafax/tiff-compat.patch
@@ -7,7 +7,7 @@ index 8f591b554c..849e0ef355 100755
tiff_bytecount_t="uint32"
;;
- 4.[0]) tiff_runlen_t="uint32"
-+ 4.[0123]) tiff_runlen_t="uint32"
++ 4.[012345]) tiff_runlen_t="uint32"
tiff_offset_t="uint64"
tiff_bytecount_t="uint64"
echo '#define TIFFHeader TIFFHeaderClassic'
diff --git a/main/hylafaxplus/APKBUILD b/main/hylafaxplus/APKBUILD
index 64d741c8ae0..beeef418bdf 100644
--- a/main/hylafaxplus/APKBUILD
+++ b/main/hylafaxplus/APKBUILD
@@ -2,17 +2,17 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=hylafaxplus
_pkgname=hylafax
-pkgver=7.0.5
+pkgver=7.0.8
pkgrel=0
pkgdesc="Making the Premier Open-Source Fax Management System Even Better"
-url="http://hylafax.sourceforge.net"
-arch="all"
+url="https://hylafax.sourceforge.net/"
+# arch="all" # https://gitlab.alpinelinux.org/alpine/aports/-/issues/15384
license="MIT"
# check/test not supported from upstream
options="!check"
depends="ghostscript bash tiff-tools findutils !$_pkgname"
makedepends="zlib-dev tiff-dev gettext-dev openldap-dev lcms2-dev
- libffi-dev jbig2dec-dev sed readline-dev"
+ libffi-dev jbig2dec-dev sed readline-dev openssl-dev>3"
subpackages="$pkgname-dbg $pkgname-doc $pkgname-lang $pkgname-openrc"
source="https://downloads.sourceforge.net/hylafax/$_pkgname-$pkgver.tar.gz
$pkgname.initd
@@ -102,7 +102,7 @@ package() {
}
sha512sums="
-9cde5df710500fc3eb3b131644fe8ecacb8807075847fcf50fcf42d386ec4e227b1b18943e94818c94118ee1ac2e37cf21c4f986d1238f572337fe50bcae683d hylafax-7.0.5.tar.gz
+eb04cb55c687a404b2fb68be8dea09d5c33668b808e6fce71ab2dde0d0a42c788ec657c287f01245a8f6371b7d659e4d37f75e1307fdb4d499ecc90564756ca8 hylafax-7.0.8.tar.gz
ae9de1dbf53ef64acd8b03515c5cd840c12596921edb8c45a333eb7a69e911ec3a449a9f0201c5c73d54d9f01c4696f1accacf1e83137737341a5913f0725b16 hylafaxplus.initd
a2117eddc8f0ff70a23a90f2001dcb88c5bddee46ffa021d6d1701cc5cfc3bcb0362ead2b1b1ce2b288992728053c5947466d08916649f45e7dfb1876576e50f hylafaxplus.confd
41ae2055a7781d83fc275aafe18ced0fe75ba79d3ad7d5096eabaeae3a514b564723185dd33820268577174f6c53bfcfddb30922ba50754b15c5c3b0abbec837 common-functions-busybox-awk.patch
diff --git a/main/hypermail/APKBUILD b/main/hypermail/APKBUILD
index 2f95ec2d447..bbcdac214b3 100644
--- a/main/hypermail/APKBUILD
+++ b/main/hypermail/APKBUILD
@@ -1,27 +1,35 @@
# Contributor: Michael Mason <ms13sp@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=hypermail
-pkgver=2.3.0
-pkgrel=6
+pkgver=2.4.0
+pkgrel=3
pkgdesc="Mail Archiver"
url="http://www.hypermail-project.org"
arch="all"
license="GPL-2.0-or-later"
depends="lua"
-makedepends="pcre-dev bison gdbm-dev"
-install=""
-subpackages=""
-source="http://www.hypermail-project.org/$pkgname-$pkgver.tar.gz
- mdir2mbox.lua"
+makedepends="autoconf automake libtool pcre-dev bison gdbm-dev"
+source="https://github.com/hypermail-project/hypermail/releases/download/v$pkgver/hypermail-$pkgver.tar.gz
+ modernc.patch
+ mdir2mbox.lua
+ "
+options="!check"
-_builddir="$srcdir"/hypermail
prepare() {
- cd "$_builddir"
- update_config_sub || return 1
+ default_prepare
+
+ rm -fv src/trio/*.a
+ rm -fv src/trio/*.o
+ update_config_sub
+ update_config_guess
+ libtoolize --force
+ aclocal
+ autoconf -f
}
build() {
- cd "$_builddir"
+ # build system does not set the -L correctly to the dir
+ LDFLAGS="$LDFLAGS -L$PWD/src/trio/"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -30,13 +38,11 @@ build() {
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--with-httpddir=/var/www \
- --with-cgidir=/var/www/cgi-bin \
- || return 1
- make || return 1
+ --with-cgidir=/var/www/cgi-bin
+ make -C src/trio
+ make
}
package() {
- cd "$_builddir"
-
#does not understand DESTDIR so going to install ourselves
#make DESTDIR="$pkgdir" install
@@ -46,5 +52,8 @@ package() {
install -m755 -D "$srcdir"/mdir2mbox.lua "$pkgdir"/usr/bin/mdir2mbox.lua
}
-sha512sums="6f4db2613a53f27e88a9827057be57df49b1dfff6dfcc7b531fdb983b03e64818f5845411f9eb42fc7ae8829281c67773d16fcb3b9d3fa2a7c92d5100fa9bb57 hypermail-2.3.0.tar.gz
-203c292c46d40c35023629795ef0baa254c036ccfdb5628b3abf2d0c965bff9274f39571dfcb27aa508d9b801356d793fd5f78466ebb69b2306f56b28ac85b9c mdir2mbox.lua"
+sha512sums="
+cb21341d60f14fe03ec5817d2464567e9e547d21ce38857a3958a769710da3e49ab4592dac4f87f1f4eb873120659a8fc6a85d27d11b575f855abbf3347bed82 hypermail-2.4.0.tar.gz
+91c41a7ab3fccfec80739dbca9d23e7c917836d6275f209d73ca9f851312ace348d6b134ef4d89f35f3db46575095d1becb6c9a174cdf5a11fcad7ee100955df modernc.patch
+203c292c46d40c35023629795ef0baa254c036ccfdb5628b3abf2d0c965bff9274f39571dfcb27aa508d9b801356d793fd5f78466ebb69b2306f56b28ac85b9c mdir2mbox.lua
+"
diff --git a/main/hypermail/modernc.patch b/main/hypermail/modernc.patch
new file mode 100644
index 00000000000..48ddd852c5b
--- /dev/null
+++ b/main/hypermail/modernc.patch
@@ -0,0 +1,13 @@
+diff --git a/configure.ac b/configure.ac
+index 2a3b7fa..1779ec0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -86,7 +86,7 @@ export CFLAGS CC
+ AC_SUBST(INSTALL)
+
+ AC_MSG_CHECKING([that the compiler works])
+-AC_RUN_IFELSE([AC_LANG_SOURCE([[ main(int ac, char **av) { return 0; } ]])],[AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
++AC_RUN_IFELSE([AC_LANG_SOURCE([[ int main(int ac, char **av) { return 0; } ]])],[AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)
+ AC_MSG_ERROR(Could not compile and run even a trivial ANSI C program - check CC.)],[AC_MSG_ERROR(Could not compile and run even a trivial ANSI C program - check CC.)])
+
+ dnl ===========================================================================
diff --git a/main/iaxmodem/APKBUILD b/main/iaxmodem/APKBUILD
index c37a8c9a96b..bf96fcacfa9 100644
--- a/main/iaxmodem/APKBUILD
+++ b/main/iaxmodem/APKBUILD
@@ -2,24 +2,21 @@
# Contributor: Mika Havela <mika.havela@gmail.com>
# Maintainer: Cameron Banta <cbanta@gmail.com>
pkgname=iaxmodem
-pkgver=1.3.2
-pkgrel=2
+pkgver=1.3.4
+pkgrel=0
pkgdesc="Softmodem for hylafax that connects to VOIP gateway with IAX"
-url="http://iaxmodem.sourceforge.net/"
+url="https://iaxmodem.sourceforge.net/"
arch="all"
-license="LGPL+"
-depends=""
-depends_dev=""
-makedepends="$depends_dev tiff-dev"
-install=""
-subpackages="$pkgname-dbg $pkgname-doc"
-source="https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+license="GPL-2.0-or-later"
+options="!check" # no tests
+makedepends="tiff-dev"
+subpackages="$pkgname-dbg $pkgname-doc $pkgname-openrc"
+source="https://downloads.sourceforge.net/iaxmodem/iaxmodem-$pkgver.tar.gz
iaxmodem-fix.patch
- fix-use-after-free.patch
+ fix-printf.patch
$pkgname.confd
- $pkgname.initd"
-
-builddir=$srcdir/$pkgname-$pkgver
+ $pkgname.initd
+ "
prepare() {
update_config_sub
@@ -28,13 +25,11 @@ prepare() {
}
build() {
- cd "$builddir"
- ./configure || return 1
- make || return 1
+ ./configure
+ make
}
package() {
- cd "$builddir"
install -m755 -s -D "$srcdir/$pkgname-$pkgver/iaxmodem" \
"$pkgdir/usr/sbin/iaxmodem"
mkdir -p "$pkgdir/etc/iaxmodem"
@@ -64,14 +59,12 @@ package() {
"$pkgdir/usr/share/doc/$pkgname/iaxmodem.init.debian"
install -m644 -D "$srcdir/$pkgname-$pkgver/config.ttyIAX" \
"$pkgdir/usr/share/doc/$pkgname/config.ttyIAX"
-
}
-
sha512sums="
-ec53be179c5651825dc4e0883d8bdd33662e477b964e3130c94ca46c6d9b628a1087d33f87bebe005e306b52d75cd00407958403d9d175944fba0f5d69d34269 iaxmodem-1.3.2.tar.gz
+5765f42918964e944c2b8031cccffae25287e9a6b333467d8fbabb69b1dbe9b6153077bc8fdcf867de5ad28bfebba835431dbe07d866e74a558fcfc530827ea8 iaxmodem-1.3.4.tar.gz
999ba9d554ffa8ecb00b4e18b2e25d0c077a64560985ffc035fe89dedf7ff9686c347aba16a0bc05ad9a4d11e17b9ddad3b99772b2b61e1fcaea00c63bcbb897 iaxmodem-fix.patch
-5efbb8d430e2d216732d28a91f5b8acef554ce7ef14cb9d8c14f56292b704f35946faa3c24c3c655c0669bdd8a0279985d4f37dc7dfad05ae53c0d902d8941ef fix-use-after-free.patch
+dbc2e72fcf6d45f471343d46a788e1c5d7fe20d88b2c73b45604f368b6dcabc59731542ba1758567fc6bae90a6b092323ff61730986edf7791c6b29cf84392a5 fix-printf.patch
c5b01eecd8048a99777c0265bc31cd8dcafa7ab2b30798500ec52e759f4ad97ffc13e8e72ad3018e9cd77b2acefdbbe7125b0b0d7f7cefd4ab6d764c690c89a1 iaxmodem.confd
5e62ae6ea099db21e5f3ce319a28b3e6a9da1a2283fd29404126b486209119cfcf32628e9d3f3323522db30dbf052378f654f9498cd1ae75a447d44005b1f587 iaxmodem.initd
"
diff --git a/main/iaxmodem/fix-printf.patch b/main/iaxmodem/fix-printf.patch
new file mode 100644
index 00000000000..00a91aaa76e
--- /dev/null
+++ b/main/iaxmodem/fix-printf.patch
@@ -0,0 +1,11 @@
+--- a/lib/libiax2/src/iax2-parser.c
++++ b/lib/libiax2/src/iax2-parser.c
+@@ -56,7 +56,7 @@
+
+ static void internaloutput(const char *str)
+ {
+- printf(str);
++ printf("%s", str);
+ }
+
+ static void internalerror(const char *str)
diff --git a/main/iaxmodem/fix-use-after-free.patch b/main/iaxmodem/fix-use-after-free.patch
deleted file mode 100644
index e874e7af578..00000000000
--- a/main/iaxmodem/fix-use-after-free.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-https://sourceforge.net/p/iaxmodem/code/46/
-https://sourceforge.net/p/iaxmodem/discussion/497500/thread/b2469a0d1a/
-
-Index: iaxmodem.c
-===================================================================
---- ./iaxmodem.c (revision 45)
-+++ ./iaxmodem.c (working copy)
-@@ -543,7 +543,7 @@
- printlog(LOG_INFO, "Answering\n");
-
- /* Unset V.24 Circuit 125, "ring indicator". */
-- int tioflags;
-+ int tioflags = 0;
- ioctl(aslave, TIOCMGET, &tioflags);
- tioflags &= ~TIOCM_RI;
- ioctl(aslave, TIOCMSET, &tioflags);
-@@ -762,7 +762,7 @@
- int16_t iaxbuf[VOIP_PACKET_SIZE];
- static t31_state_t t31_state;
- int t31buflen;
-- int tioflags;
-+ int tioflags = 0;
- struct group *grent;
- char *devgroup;
- char *pmode;
-Index: lib/libiax2/src/iax.c
-===================================================================
---- ./lib/libiax2/src/iax.c (revision 45)
-+++ ./lib/libiax2/src/iax.c (working copy)
-@@ -3283,20 +3283,7 @@
- /* It's been acked. No need to send it. Destroy the old
- frame. If final, destroy the session. */
- if (frame->final)
-- /* sskacar: Quick deallocation and allocation of sessions may result in
-- the same-address-use ! Therefore we cannot trust remote-sent address only
-- Best bet is checking by somewhat unique properties to decide
-- if we really intend to destroy this session.
-- Example Case:
-- - Have a call
-- - Dump that call and immediately request a new call (or have a incoming call request by a lesser chance)
-- - By considerable probability, you might get the previous address for the session.
-- - When execution hits to this point as a result of previous call ending
-- (as client informs server about dumping and frees the previous session,
-- server proccess call-dumping and eventually this point reached)
-- - frame->session param to the destroy_session() belongs to the new & valid session ! */
-- if (frame->session && (frame->callno == frame->session->callno))
-- destroy_session(frame->session);
-+ destroy_session(frame->session);
- if (frame->data)
- free(frame->data);
- free(frame);
-Index: lib/spandsp/src/at_interpreter.c
-===================================================================
---- ./lib/spandsp/src/at_interpreter.c (revision 45)
-+++ ./lib/spandsp/src/at_interpreter.c (working copy)
-@@ -44,6 +44,7 @@
- #include <string.h>
- #include <ctype.h>
- #include <assert.h>
-+#include <syslog.h>
-
- #include "spandsp/telephony.h"
- #include "spandsp/logging.h"
-@@ -672,43 +673,6 @@
- }
- /*- End of function --------------------------------------------------------*/
-
--static int parse_string_out(at_state_t *s, const char **t, char **target, const char *prefix)
--{
-- char buf[100];
--
-- switch (*(*t)++)
-- {
-- case '=':
-- switch (**t)
-- {
-- case '?':
-- /* Show possible values */
-- (*t)++;
-- snprintf(buf, sizeof(buf), "%s", (prefix) ? prefix : "");
-- at_put_response(s, buf);
-- break;
-- default:
-- /* Set value */
-- if (*target)
-- free(*target);
-- /* If this strdup fails, it should be harmless */
-- *target = strdup(*t);
-- break;
-- }
-- break;
-- case '?':
-- /* Show current index value */
-- at_put_response(s, (*target) ? *target : "");
-- break;
-- default:
-- return FALSE;
-- }
-- while (*t)
-- t++;
-- return TRUE;
--}
--/*- End of function --------------------------------------------------------*/
--
- static const char *s_reg_handler(at_state_t *s, const char *t, int reg)
- {
- int val;
-@@ -4965,10 +4929,31 @@
- {
- /* Extension of V.253 +VCID, Set calling number ID */
- t += 5;
-- if (!parse_string_out(s, &t, &s->local_id, NULL))
-+ switch (*t)
-+ {
-+ case '=':
-+ switch (*(t+1))
-+ {
-+ case '?':
-+ /* Show possible values */
-+ at_put_response(s, "");
-+ break;
-+ default:
-+ /* Set value */
-+ s->local_id = strdup(t + 1);
-+ if (at_modem_control(s, AT_MODEM_CONTROL_SETID, s->local_id) < 0)
-+ return NULL;
-+ break;
-+ }
-+ break;
-+ case '?':
-+ /* Show current index value from def */
-+ at_put_response(s, (s->local_id) ? s->local_id : "");
-+ break;
-+ default:
- return NULL;
-- if (at_modem_control(s, AT_MODEM_CONTROL_SETID, s->local_id) < 0)
-- return NULL;
-+ }
-+ while (*t) t++;
- return t;
- }
- /*- End of function --------------------------------------------------------*/
diff --git a/main/icecast/APKBUILD b/main/icecast/APKBUILD
index 06774df0062..97b55df9b94 100644
--- a/main/icecast/APKBUILD
+++ b/main/icecast/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=icecast
pkgver=2.4.4
-pkgrel=7
+pkgrel=10
pkgdesc="Open source media server"
url="https://icecast.org/"
arch="all"
@@ -11,9 +11,9 @@ license="GPL-2.0-only"
install="$pkgname.pre-install"
pkgusers="icecast"
pkggroups="icecast"
-makedepends="libxslt-dev libxml2-dev libogg-dev libvorbis-dev libtheora-dev openssl1.1-compat-dev curl-dev"
+makedepends="libxslt-dev libxml2-dev libogg-dev libvorbis-dev libtheora-dev openssl-dev>3 curl-dev"
subpackages="$pkgname-doc $pkgname-openrc"
-source="http://downloads.xiph.org/releases/icecast/icecast-$pkgver.tar.gz
+source="https://downloads.xiph.org/releases/icecast/icecast-$pkgver.tar.gz
conf-change-owner.patch
icecast.initd
"
@@ -22,6 +22,11 @@ source="http://downloads.xiph.org/releases/icecast/icecast-$pkgver.tar.gz
# 2.4.4-r0:
# - CVE-2018-18820
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
./configure \
--build=$CBUILD \
diff --git a/main/icon-naming-utils/APKBUILD b/main/icon-naming-utils/APKBUILD
index fe66d8cab01..0495770bbe0 100644
--- a/main/icon-naming-utils/APKBUILD
+++ b/main/icon-naming-utils/APKBUILD
@@ -1,12 +1,12 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=icon-naming-utils
pkgver=0.8.90
-pkgrel=3
+pkgrel=4
pkgdesc="Maps the new names of icons for Tango to the legacy names used by the GNOME and KDE desktops."
url="http://tango.freedesktop.org/"
arch="noarch"
options="!check" # No test suite.
-license="GPL-2.0"
+license="GPL-2.0-or-later"
depends="perl-xml-simple"
source="http://tango.freedesktop.org/releases/icon-naming-utils-$pkgver.tar.bz2"
diff --git a/main/icu/001-fix-heap-buffer-overflow.patch b/main/icu/001-fix-heap-buffer-overflow.patch
deleted file mode 100644
index 9317f86df6a..00000000000
--- a/main/icu/001-fix-heap-buffer-overflow.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-Source https://github.com/unicode-org/icu/pull/2067
-
-From 3aa2bdd2a37ffb79441e175410472f65f18ebdc7 Mon Sep 17 00:00:00 2001
-From: Frank Tang <ftang@chromium.org>
-Date: Fri, 15 Apr 2022 11:47:25 -0700
-Subject: [PATCH] ICU-21994 Fix heap-buffer-overflow
---- a/common/locid.cpp
-+++ b/common/locid.cpp
-@@ -716,20 +716,19 @@
- status = U_MEMORY_ALLOCATION_ERROR;
- return;
- }
-- int i = 0;
-- while (ures_hasNext(alias)) {
-+ for (int i = 0; U_SUCCESS(status) && ures_hasNext(alias); i++) {
- LocalUResourceBundlePointer res(
- ures_getNextResource(alias, nullptr, &status));
- const char* aliasFrom = ures_getKey(res.getAlias());
- UnicodeString aliasTo =
- ures_getUnicodeStringByKey(res.getAlias(), "replacement", &status);
-+ if (U_FAILURE(status)) return;
-
- checkType(aliasFrom);
- checkReplacement(aliasTo);
-
- rawTypes[i] = aliasFrom;
- rawIndexes[i] = strings->add(aliasTo, status);
-- i++;
- }
- }
-
diff --git a/main/icu/APKBUILD b/main/icu/APKBUILD
index 0af8d1466a2..084a54e34d7 100644
--- a/main/icu/APKBUILD
+++ b/main/icu/APKBUILD
@@ -2,12 +2,12 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=icu
-pkgver=71.1
-pkgrel=2
+pkgver=74.2
+pkgrel=0
pkgdesc="International Components for Unicode library"
url="https://icu.unicode.org/"
arch="all"
-license="MIT ICU Unicode-TOU"
+license="ICU"
depends_dev="$pkgname=$pkgver-r$pkgrel"
makedepends="python3 py3-yaml"
checkdepends="diffutils"
@@ -24,12 +24,16 @@ source="https://github.com/unicode-org/icu/releases/download/release-${pkgver//.
https://github.com/unicode-org/icu/releases/download/release-${pkgver//./-}/icu4c-${pkgver//./_}-data.zip
https://github.com/unicode-org/icu/releases/download/release-${pkgver//./-}/icu4c-${pkgver//./_}-data-bin-b.zip
https://github.com/unicode-org/icu/releases/download/release-${pkgver//./-}/icu4c-${pkgver//./_}-data-bin-l.zip
- 001-fix-heap-buffer-overflow.patch
- skip-flawed-tests.patch
+ standardize-vtzone-output.patch
data-filter-en.yml
"
builddir="$srcdir/icu/source"
+# seems to fail check now with gcc13, only on x86
+case "$CARCH" in
+x86) options="$options !check" ;;
+esac
+
# secfixes:
# 66.1-r0:
# - CVE-2020-21913
@@ -50,6 +54,7 @@ esac
prepare() {
default_prepare
+ update_config_sub
rm -rf data
mv "$srcdir"/data .
@@ -59,6 +64,14 @@ build() {
_yaml2json "$srcdir"/data-filter-en.yml > data-filter-en.json
export ICU_DATA_FILTER_FILE="./data-filter-en.json"
+ case "$CARCH" in
+ armv7)
+ # bus error with -Os for some reason
+ export CFLAGS="$CFLAGS -O2"
+ export CXXFLAGS="$CXXFLAGS -O2"
+ ;;
+ esac
+
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -73,12 +86,9 @@ build() {
check() {
# Tests need full data.
- mv data/out/$_icudtfile data/out/$_icudtfile.en
- cp -a "$srcdir"/$_icudtfile data/out/
+ export ICU_DATA="$srcdir"/$_icudtfile
CINTLTST_OPTS='-w' make check
-
- mv data/out/$_icudtfile.en data/out/$_icudtfile
}
package() {
@@ -142,11 +152,10 @@ _yaml2json() {
}
sha512sums="
-1fd2a20aef48369d1f06e2bb74584877b8ad0eb529320b976264ec2db87420bae242715795f372dbc513ea80047bc49077a064e78205cd5e8b33d746fd2a2912 icu4c-71_1-src.tgz
-05eb134a963a541a280e49e4d0aca07e480fef14daa0108c8fb9add18c150c9d34c8cbc46386c07909d511f7777eb3ea9f494001f191b84a7de0be8047da8b56 icu4c-71_1-data.zip
-2bee9b93699c40a53c2e768d4678309fbd49e052e197a80fb76842b4001ee65e548459654ef7e7d154b6289f915fccbcb5b3109edcd61e74f0db289f2bec61fd icu4c-71_1-data-bin-b.zip
-07a299b1cd37cd7b07c5e1a7c6871c0dbbeabb2dec6e11c89237f41e56fd29e1a65725be102b4e4ab722183c02810a5df3ed47c3b9b4a7c14bc4c72ab127a27e icu4c-71_1-data-bin-l.zip
-b031e520d41cc313012a0a9d9c4eed51aee9e04213b810bcec32e18d0964f4f26448b989879a9d8901d29024da08ce2ac89c8c6d321c85d78f6414b5edebc1a4 001-fix-heap-buffer-overflow.patch
-de2cd008406d133cc838388f5a109560d29323e0a4c8c6306f712a536b6d90846d44bc5f691514621653f33a2929c0d84fa9c54d61d5ddf4606243df63c7e139 skip-flawed-tests.patch
+e6c7876c0f3d756f3a6969cad9a8909e535eeaac352f3a721338b9cbd56864bf7414469d29ec843462997815d2ca9d0dab06d38c37cdd4d8feb28ad04d8781b0 icu4c-74_2-src.tgz
+f9dbd303f78de1bf9089262211f3b618f1ec915e57877855d0bc6496332620f4ea92eabe1dff9fa721600e9a6ce56885f79361bbcdf97d0cfedd18e4a2d58ad0 icu4c-74_2-data.zip
+76cc9a684be584ce2bd674b40191975a7506ef14c9c7a08cfe0a09d28c90e49529a2eb01baf698cf27895bec9f8fdf6b76c1d1bd010607fac04be7d12e954e50 icu4c-74_2-data-bin-b.zip
+6ef1554c0af06cec777c454cbbeaca44884b8db028d777311323d44e5697a7638df394cfc53760ddcdab763d975f24043f47ac4828e20c9774b4108030a7be15 icu4c-74_2-data-bin-l.zip
+c76fd529f92a7b27a45a307c8bb91c109910d012478414b08983af3320e29fbe76e03d8434c4efbde68ecaa56a86130d6514428c5a1085985634bc3650e8e96e standardize-vtzone-output.patch
609541c1ac10c12b2b52f7800a2057d5c97e49dc9a1774a1b53e13d88599128baa7637f1a63b4de52dfe58b1038c7f3462ef29ad223dbe2ecb2862e3249a1cf4 data-filter-en.yml
"
diff --git a/main/icu/skip-flawed-tests.patch b/main/icu/skip-flawed-tests.patch
deleted file mode 100644
index 8f9009e777d..00000000000
--- a/main/icu/skip-flawed-tests.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Sun, 15 May 2022 14:07:39 +0200
-Subject: [PATCH] Skip flawed tests
-
-These tests pass if building with the original source/data directory from
-icu4c-<version>-src.tgz archive, but fail when we replace it with
-icu4c-<version>-data.zip.
-
-TODO: Figure it out why and fix it.
-
---- a/test/cintltst/crestst.c
-+++ b/test/cintltst/crestst.c
-@@ -114,7 +114,7 @@
- addTest(root, &TestResourceBundles, "tsutil/crestst/TestResourceBundles");
- addTest(root, &TestTable32, "tsutil/crestst/TestTable32");
- addTest(root, &TestFileStream, "tsutil/crestst/TestFileStream");
-- addTest(root, &TestGetSize, "tsutil/crestst/TestGetSize");
-+ //addTest(root, &TestGetSize, "tsutil/crestst/TestGetSize"); // XXX-Patched
- addTest(root, &TestGetLocaleByType, "tsutil/crestst/TestGetLocaleByType");
- #endif
- addTest(root, &TestFallback, "tsutil/crestst/TestFallback");
---- a/test/cintltst/creststn.c
-+++ b/test/cintltst/creststn.c
-@@ -229,7 +229,7 @@
- addTest(root, &TestResourceBundles, "tsutil/creststn/TestResourceBundles");
- addTest(root, &TestNewTypes, "tsutil/creststn/TestNewTypes");
- addTest(root, &TestEmptyTypes, "tsutil/creststn/TestEmptyTypes");
-- addTest(root, &TestBinaryCollationData, "tsutil/creststn/TestBinaryCollationData");
-+ //addTest(root, &TestBinaryCollationData, "tsutil/creststn/TestBinaryCollationData"); // XXX-Patched
- addTest(root, &TestAPI, "tsutil/creststn/TestAPI");
- addTest(root, &TestErrorConditions, "tsutil/creststn/TestErrorConditions");
- addTest(root, &TestDecodedBundle, "tsutil/creststn/TestDecodedBundle");
---- a/test/intltest/restest.cpp
-+++ b/test/intltest/restest.cpp
-@@ -212,7 +212,7 @@
- #if !UCONFIG_NO_FILE_IO && !UCONFIG_NO_LEGACY_CONVERSION
- case 0: name = "TestResourceBundles"; if (exec) TestResourceBundles(); break;
- case 1: name = "TestConstruction"; if (exec) TestConstruction(); break;
-- case 2: name = "TestGetSize"; if (exec) TestGetSize(); break;
-+ //case 2: name = "TestGetSize"; if (exec) TestGetSize(); break; // XXX-Patched
- case 3: name = "TestGetLocaleByType"; if (exec) TestGetLocaleByType(); break;
- #else
- case 0: case 1: case 2: case 3: name = "skip"; break;
-
diff --git a/main/icu/standardize-vtzone-output.patch b/main/icu/standardize-vtzone-output.patch
new file mode 100644
index 00000000000..05e296f1383
--- /dev/null
+++ b/main/icu/standardize-vtzone-output.patch
@@ -0,0 +1,33 @@
+Patch-Source: https://github.com/chimera-linux/cports/blob/c48ec38c2d88f6e5962299583a8f862159c89349/main/icu/patches/standardize-vtzone-output.patch
+https://bugzilla.mozilla.org/show_bug.cgi?id=1790071
+https://unicode-org.atlassian.net/browse/ICU-22132
+needed for thunderbird
+--
+diff --git a/intl/icu/source/i18n/vtzone.cpp b/intl/icu/source/i18n/vtzone.cpp
+--- a/i18n/vtzone.cpp
++++ b/i18n/vtzone.cpp
+@@ -1735,14 +1735,17 @@ VTimeZone::write(VTZWriter& writer, UErr
+ }
+ }
+ } else {
+- UnicodeString icutzprop;
+- UVector customProps(nullptr, uhash_compareUnicodeString, status);
++ UVector customProps(uprv_deleteUObject, uhash_compareUnicodeString, status);
+ if (olsonzid.length() > 0 && icutzver.length() > 0) {
+- icutzprop.append(olsonzid);
+- icutzprop.append(u'[');
+- icutzprop.append(icutzver);
+- icutzprop.append(u']');
+- customProps.addElement(&icutzprop, status);
++ LocalPointer<UnicodeString> icutzprop(new UnicodeString(ICU_TZINFO_PROP), status);
++ if (U_FAILURE(status)) {
++ return;
++ }
++ icutzprop->append(olsonzid);
++ icutzprop->append(u'[');
++ icutzprop->append(icutzver);
++ icutzprop->append(u']');
++ customProps.adoptElement(icutzprop.orphan(), status);
+ }
+ writeZone(writer, *tz, &customProps, status);
+ }
diff --git a/main/iftop/APKBUILD b/main/iftop/APKBUILD
index 51dcceba162..d4bbcbe914a 100644
--- a/main/iftop/APKBUILD
+++ b/main/iftop/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=iftop
pkgver=0.17
-pkgrel=8
+pkgrel=11
pkgdesc="A tool to display bandwidth usage on an interface"
url="https://www.ex-parrot.com/~pdw/iftop/"
arch="all"
@@ -9,16 +9,16 @@ license="GPL-2.0-or-later"
makedepends="libpcap-dev>=1 ncurses-dev"
options="!check" # no tests
subpackages="$pkgname-doc"
-source="https://www.ex-parrot.com/~pdw/iftop/download/iftop-$pkgver.tar.gz"
+source="https://www.ex-parrot.com/~pdw/iftop/download/iftop-$pkgver.tar.gz
+ format-security.patch
+ "
prepare() {
- cd "$builddir"
default_prepare
update_config_sub
}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -28,10 +28,10 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
sha512sums="
41e3bc5feac5927f67356f491fcab7a28f7a32102cc33c67d81c1dc755273c42e32b540b14b6254a540f1b6c1b1ad6c50e3095c3b5282db2ea12dd0049ce2ebd iftop-0.17.tar.gz
+ab478e521c6b460766a8149786c59a3e977f9c44d1b880476baa0c7851a1c6bbf1e998051a25e63aafaf21e629d64cf3336b909c683f8604ffa922ee9e25cd4b format-security.patch
"
diff --git a/main/iftop/format-security.patch b/main/iftop/format-security.patch
new file mode 100644
index 00000000000..41156751aa9
--- /dev/null
+++ b/main/iftop/format-security.patch
@@ -0,0 +1,52 @@
+also fixes implicit function decls
+--
+diff --git a/cfgfile.c b/cfgfile.c
+index 442316c..6637bd1 100644
+--- a/cfgfile.c
++++ b/cfgfile.c
+@@ -7,6 +7,7 @@
+
+ #include <stdio.h>
+ #include <string.h>
++#include <stdlib.h>
+ #include <errno.h>
+
+ #include "stringmap.h"
+diff --git a/iftop.c b/iftop.c
+index 5a7b41e..a08e8cd 100644
+--- a/iftop.c
++++ b/iftop.c
+@@ -46,6 +46,10 @@
+ #include "ppp.h"
+
+
++void options_read_args(int argc, char **argv);
++void options_make(void);
++int get_addrs_ioctl(char *interface, char if_hw_addr[], struct in_addr *if_ip_addr);
++
+ /* ethernet address of interface. */
+ int have_hw_addr = 0;
+ unsigned char if_hw_addr[6];
+diff --git a/options.c b/options.c
+index 8f385de..a9aac5e 100644
+--- a/options.c
++++ b/options.c
+@@ -28,6 +28,9 @@
+ # define inet_aton(a, b) inet_pton(AF_INET, (a), (b))
+ #endif
+
++void config_set_string(const char *directive, const char* s);
++int config_get_enum(const char *directive, config_enumeration_type *enumeration, int *value);
++
+ options_t options;
+
+ char optstr[] = "+i:f:nNF:hpbBPm:c:";
+@@ -159,7 +162,7 @@ void options_set_defaults() {
+ }
+
+ static void die(char *msg) {
+- fprintf(stderr, msg);
++ fprintf(stderr, "%s", msg);
+ exit(1);
+ }
+
diff --git a/main/ifupdown-ng/01-add-onlink-to-default-route.patch b/main/ifupdown-ng/01-add-onlink-to-default-route.patch
new file mode 100644
index 00000000000..e663cdf4ce8
--- /dev/null
+++ b/main/ifupdown-ng/01-add-onlink-to-default-route.patch
@@ -0,0 +1,30 @@
+From: Dermot Bradley <dermot_bradley@yahoo.com>
+Date: Wed, 4 Jan 2023 00:23 +0000
+Subject: [PATCH] for static executor add "onlink" option to default route
+
+Add the "onlink" next-hop option to the default route. This is required
+for situations like some VPS/Cloud Providers where they provide a /32 IPv4
+address or a /128 IPv6 address and obviously the router to use as the gateway
+for the default route is not in the same subnet.
+
+The ifupdown package has been adding the "onlink" option for the past 7
+years when Debian added it:
+
+https://salsa.debian.org/debian/ifupdown/-/commit/8b7bca9597d2f75670b182f0fc149cdbaec3544c
+
+This patch has been submitted upstream to ifupdown-ng as PR #207.
+
+---
+
+diff -aur a/executor-scripts/linux/static b/executor-scripts/linux/static
+--- a/executor-scripts/linux/static
++++ b/executor-scripts/linux/static
+@@ -33,7 +33,7 @@
+ configure_gateways() {
+ for gw in ${IF_GATEWAYS}; do
+ addrfam=$(addr_family ${gw})
+- ${MOCK} ip "${addrfam}" route add default via "${gw}" ${VRF_TABLE} ${METRIC} dev "${IFACE}"
++ ${MOCK} ip "${addrfam}" route add default via "${gw}" ${VRF_TABLE} ${METRIC} dev "${IFACE}" onlink
+ done
+ }
+
diff --git a/main/ifupdown-ng/APKBUILD b/main/ifupdown-ng/APKBUILD
index ce077b4fdd7..219b10cda11 100644
--- a/main/ifupdown-ng/APKBUILD
+++ b/main/ifupdown-ng/APKBUILD
@@ -1,14 +1,14 @@
# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
pkgname=ifupdown-ng
pkgver=0.12.1
-pkgrel=0
+pkgrel=5
pkgdesc="tools for managing network configuration"
url="https://github.com/ifupdown-ng/ifupdown-ng"
arch="all"
license="ISC"
checkdepends="kyua atf"
makedepends="scdoc"
-install=""
+# Networking initd script is provided by openrc package
subpackages="
$pkgname-doc
$pkgname-iproute2
@@ -19,8 +19,9 @@ subpackages="
$pkgname-batman
$pkgname-wifi
"
-source="https://distfiles.dereferenced.org/ifupdown-ng/ifupdown-ng-$pkgver.tar.xz"
-builddir="$srcdir/ifupdown-ng-$pkgver"
+source="https://distfiles.ariadne.space/ifupdown-ng/ifupdown-ng-$pkgver.tar.xz
+ 01-add-onlink-to-default-route.patch
+ "
provides="ifupdown-any"
provider_priority=900
@@ -58,7 +59,7 @@ package() {
iproute2() {
pkgdesc="ifupdown-ng integration for iproute2"
depends="iproute2-minimal"
- install_if="$pkgname $depends"
+ install_if="$pkgname=$pkgver-r$pkgrel $depends"
for exec in $_executor_iproute2; do
amove usr/libexec/ifupdown-ng/$exec
@@ -68,7 +69,7 @@ iproute2() {
ppp() {
pkgdesc="ifupdown-ng integration for ppp"
depends="ppp-daemon"
- install_if="$pkgname $depends"
+ install_if="$pkgname=$pkgver-r$pkgrel $depends"
amove usr/libexec/ifupdown-ng/ppp
}
@@ -76,7 +77,7 @@ ppp() {
wireguard() {
pkgdesc="ifupdown-ng integration for wireguard"
depends="wireguard-tools-wg"
- install_if="$pkgname $depends"
+ install_if="$pkgname=$pkgver-r$pkgrel $depends"
amove usr/libexec/ifupdown-ng/wireguard
}
@@ -84,7 +85,7 @@ wireguard() {
wgquick() {
pkgdesc="ifupdown-ng integration for wireguard wg-quick"
depends="wireguard-tools-wg-quick"
- install_if="$pkgname $depends"
+ install_if="$pkgname=$pkgver-r$pkgrel $depends"
amove usr/libexec/ifupdown-ng/wireguard-quick
}
@@ -92,7 +93,7 @@ wgquick() {
ethtool() {
pkgdesc="ifupdown-ng integration for ethtool"
depends="ethtool"
- install_if="$pkgname $depends"
+ install_if="$pkgname=$pkgver-r$pkgrel $depends"
amove usr/libexec/ifupdown-ng/ethtool
}
@@ -100,7 +101,7 @@ ethtool() {
batman() {
pkgdesc="ifupdown-ng integration for B.A.T.M.A.N. advanced"
depends="batctl"
- install_if="$pkgname $depends"
+ install_if="$pkgname=$pkgver-r$pkgrel $depends"
amove usr/libexec/ifupdown-ng/batman
}
@@ -108,20 +109,12 @@ batman() {
wifi() {
pkgdesc="ifupdown-ng integration for wifi"
depends="wpa_supplicant"
- install_if="$pkgname $depends"
+ install_if="$pkgname=$pkgver-r$pkgrel $depends"
amove usr/libexec/ifupdown-ng/wifi
}
-openrc() {
- pkgdesc="ifupdown-ng openrc init scripts"
- install_if="$pkgname openrc"
- replaces="openrc"
-
- install -D -m755 "$builddir"/dist/openrc/networking.initd "$subpkgdir"/etc/init.d/networking
- install -D -m644 "$builddir"/dist/openrc/networking.confd "$subpkgdir"/etc/conf.d/networking
-}
-
sha512sums="
c2c1e27fbd53eeb4150e544a893352f13845b491850e982a5880160c3be03b628794f7989c802ff823ac3e8c6c34dc4ab97c0abcefdda85f06fcd64ced8ac60c ifupdown-ng-0.12.1.tar.xz
+5a4900356cf4ea48d5088d98328cf3f8a821a52a3b9518987a6432fc1349c3a314bbe20d46736ec8781e2a675398e15183c1ab8c0ba617c3e49b164fbbb48baf 01-add-onlink-to-default-route.patch
"
diff --git a/main/ifupdown/APKBUILD b/main/ifupdown/APKBUILD
deleted file mode 100644
index 790d5dac670..00000000000
--- a/main/ifupdown/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor:
-# Maintainer:
-pkgname=ifupdown
-pkgver=0.8.37
-pkgrel=0
-pkgdesc="high level tools to configure network interfaces"
-url="https://tracker.debian.org/pkg/ifupdown"
-arch="all"
-license="GPL-2.0-or-later"
-depends="run-parts"
-makedepends="perl"
-source="https://deb.debian.org/debian/pool/main/i/ifupdown/ifupdown_$pkgver.tar.xz
- musl-macros-main.patch
- musl-macros-archlinux.patch
- makefile-arch.patch
- busybox-compat.patch
- ifupdown-alpine-ifstate.patch
- ifupdown-no-dpkg.patch"
-provides="ifupdown-any"
-provider_priority=100
-
-build() {
- make
-}
-
-package() {
- make BASEDIR="$pkgdir" install
-}
-
-sha512sums="
-7ad401e49be8a54d0702fc999595a0466642a1456c3345c897f68d3983b27f7a20d4df85ed6626359ede717d5f3241348dc46c6fc4cb57c969cc27ba9fd1c57f ifupdown_0.8.37.tar.xz
-1de60402dfc2e246c162726093c765971021e7a0069372e0a167f62a9e90ef742f4a5e7593dd9da45f689e806d23e59156754d6bbeed4e1a725d97adb525eac6 musl-macros-main.patch
-a70b947b1b618d838e03f6493f2a9748565b0a077b1d526c6ad7ba7f4d7e8c287c42d92140164f4e7eb2e1860e1d476b3d44b88070e5e6bfe00ab0286db64006 musl-macros-archlinux.patch
-31e436464be33e63c37a914ab77c9a3c0d4b94a1037457e483754bb1c262d4c6a318205a76277f58510a7030b7e69ae6b36ab8a966940771dbe8544a6079915b makefile-arch.patch
-c99209142275b103d978e45037f3dcf0dcc4a6f33cf480e582e48d9c7858b7873012f287c2894376c841610842046b4e5b7da58632f839ab526e33704f758e5d busybox-compat.patch
-422998dae8d0ac6049064c93c22baea143eefa7cab9a330b41ec6e317294da4976c193a7a252a8b4a3a47b93ebb01ef308f5a3803838d6452fc283a159ad1e89 ifupdown-alpine-ifstate.patch
-dfda752c68fd71d016f770753fa7142179dcb2c6f92cc78a9efa8135897e8186c549062bb1631c50c6087725e796c62e900d3f3a91e52d8c436be64a18efbfba ifupdown-no-dpkg.patch
-"
diff --git a/main/ifupdown/busybox-compat.patch b/main/ifupdown/busybox-compat.patch
deleted file mode 100644
index 706b5040060..00000000000
--- a/main/ifupdown/busybox-compat.patch
+++ /dev/null
@@ -1,40 +0,0 @@
---- a/main.c 2019-01-28 18:21:37.000000000 +0100
-+++ b/main.c 2019-06-01 19:22:23.224959630 +0200
-@@ -94,8 +94,8 @@
- "\t--no-loopback don't act specially on the loopback device\n");
-
- if (!(cmds == iface_list) && !(cmds == iface_query))
-- printf( "\t--force force de/configuration\n"
-- "\t--ignore-errors ignore errors\n");
-+ printf("\t-f,--force\t\t\tforce de/configuration\n"
-+ "\t--ignore-errors\t\t\tignore errors\n");
-
- if ((cmds == iface_list) || (cmds == iface_query))
- printf( "\t--list list all matching known interfaces\n"
-@@ -439,7 +439,7 @@
- {"no-mappings", no_argument, NULL, 1},
- {"no-scripts", no_argument, NULL, 4},
- {"no-loopback", no_argument, NULL, 5},
-- {"force", no_argument, NULL, 2},
-+ {"force", no_argument, NULL, 'f'},
- {"ignore-errors", no_argument, NULL, 7},
- {"option", required_argument, NULL, 'o'},
- {"list", no_argument, NULL, 'l'},
-@@ -450,7 +450,7 @@
- };
-
- for (;;) {
-- int c = getopt_long(*argc, *argv, "X:s:i:o:hVvnal", long_opts, NULL);
-+ int c = getopt_long(*argc, *argv, "X:s:i:o:hVvnalf", long_opts, NULL);
-
- if (c == EOF)
- break;
-@@ -526,7 +526,7 @@
- run_mappings = false;
- break;
-
-- case 2: /* --force */
-+ case 'f': /* --force */
- if ((cmds == iface_list) || (cmds == iface_query))
- usage();
- force = true;
diff --git a/main/ifupdown/ifupdown-alpine-ifstate.patch b/main/ifupdown/ifupdown-alpine-ifstate.patch
deleted file mode 100644
index fd76da91b2c..00000000000
--- a/main/ifupdown/ifupdown-alpine-ifstate.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/header.h b/header.h
-index b621448..a735176 100644
---- a/header.h
-+++ b/header.h
-@@ -97,7 +97,7 @@ struct mapping_defn
- #define MAX_VARNAME 32
- #define EUNBALPER 10000
- #ifndef RUN_DIR
--#define RUN_DIR "/run/network/"
-+#define RUN_DIR "/var/run/"
- #endif
-
- #ifndef LO_IFACE
diff --git a/main/ifupdown/ifupdown-no-dpkg.patch b/main/ifupdown/ifupdown-no-dpkg.patch
deleted file mode 100644
index 4cb9268123b..00000000000
--- a/main/ifupdown/ifupdown-no-dpkg.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/defn2c.pl b/defn2c.pl
-index c449de2..ef8d475 100755
---- a/defn2c.pl
-+++ b/defn2c.pl
-@@ -2,7 +2,7 @@
-
- use strict;
-
--my $DEB_HOST_ARCH_OS = `dpkg-architecture -qDEB_HOST_ARCH_OS`;
-+my $DEB_HOST_ARCH_OS = `uname -s|tr [A-Z] [a-z]`;
-
- $DEB_HOST_ARCH_OS =~ s/\n//;
-
-diff --git a/defn2man.pl b/defn2man.pl
-index 6ddcfdd..f1e6bde 100755
---- a/defn2man.pl
-+++ b/defn2man.pl
-@@ -2,7 +2,7 @@
-
- use strict;
-
--my $DEB_HOST_ARCH_OS = `dpkg-architecture -qDEB_HOST_ARCH_OS`;
-+my $DEB_HOST_ARCH_OS = `uname -s | tr [A-Z] [a-z]`;
-
- $DEB_HOST_ARCH_OS =~ s/\n//;
-
diff --git a/main/ifupdown/makefile-arch.patch b/main/ifupdown/makefile-arch.patch
deleted file mode 100644
index 8a856d1f2d7..00000000000
--- a/main/ifupdown/makefile-arch.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/Makefile 2019-01-28 18:25:51.000000000 +0100
-+++ b/Makefile 2019-06-01 19:10:28.644361881 +0200
-@@ -1,6 +1,6 @@
- VERSION ?= 0.8
- CFLAGS ?= -Wall -W -Wno-unused-parameter -g -O2
--ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH_OS)
-+ARCH := linux
-
- BASEDIR ?= $(DESTDIR)
-
diff --git a/main/ifupdown/musl-macros-archlinux.patch b/main/ifupdown/musl-macros-archlinux.patch
deleted file mode 100644
index e72e6d79ba1..00000000000
--- a/main/ifupdown/musl-macros-archlinux.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/archlinux.c 2018-08-25 16:09:19.000000000 +0200
-+++ b/archlinux.c 2019-06-01 19:02:42.615387535 +0200
-@@ -10,6 +10,10 @@
-
- #include "archcommon.h"
-
-+#ifndef FNM_EXTMATCH
-+#define FNM_EXTMATCH 0
-+#endif
-+
- bool variable_match(const char *iface, const char *variable, const char *pattern) {
- // Map platform-independent variables to sysfs names
- if(!strcasecmp(variable, "mac"))
diff --git a/main/ifupdown/musl-macros-main.patch b/main/ifupdown/musl-macros-main.patch
deleted file mode 100644
index d934f274270..00000000000
--- a/main/ifupdown/musl-macros-main.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/main.c 2019-01-28 18:21:37.000000000 +0100
-+++ b/main.c 2019-06-01 18:59:48.889202981 +0200
-@@ -20,6 +20,10 @@
- #include "archcommon.h"
- #include "header.h"
-
-+#ifndef FNM_EXTMATCH
-+#define FNM_EXTMATCH 0
-+#endif
-+
- static const char *argv0;
- bool do_interface_lock = true;
- bool no_act = false;
diff --git a/main/igmpproxy/APKBUILD b/main/igmpproxy/APKBUILD
index 40b1b49c9c2..6254338db63 100644
--- a/main/igmpproxy/APKBUILD
+++ b/main/igmpproxy/APKBUILD
@@ -1,16 +1,21 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=igmpproxy
-pkgver=0.3
-pkgrel=0
+pkgver=0.4
+pkgrel=1
pkgdesc="A simple dynamic Multicast Routing Daemon using only IGMP signalling"
-url="https://sourceforge.net/projects/igmpproxy/"
+url="https://github.com/pali/igmpproxy"
arch="all"
license="GPL-2.0-or-later"
makedepends="linux-headers"
subpackages="$pkgname-doc"
source="https://github.com/pali/igmpproxy/releases/download/$pkgver/igmpproxy-$pkgver.tar.gz"
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
# our kernel have a patch that changes MAXVIFS
# note that this is ABI incompatible
@@ -35,4 +40,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="0b1deca544317e2f0b1ff550e5921e8d6f64565f7cd72b6210fc7d3d7c3a301875088687a31ca5a29d310b2931695bd7a77e41dc5685ab7175ea1d41fe9246af igmpproxy-0.3.tar.gz"
+sha512sums="
+ad5d8f0794cf74e42f6f99a57815402904ef7f03b76a901885c16aa0d148e552ce001832e82e4cc4ac33e2d4fd6059c51352363f13f192bca48ea9bca12c640c igmpproxy-0.4.tar.gz
+"
diff --git a/main/ilbc/APKBUILD b/main/ilbc/APKBUILD
deleted file mode 100644
index f1bb5d35b83..00000000000
--- a/main/ilbc/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=ilbc
-pkgver=0.0.1
-pkgrel=1
-pkgdesc="Internet Low Bitrate Codec - FreeSwitch"
-url="https://freeswitch.org/stash/projects/SD/repos/libilbc/browse"
-arch="all"
-license="BSD"
-makedepends="autoconf automake libtool"
-subpackages="$pkgname-dev"
-source="https://files.freeswitch.org/downloads/libs/ilbc-$pkgver.tar.gz"
-
-prepare() {
- sh bootstrap.sh
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="
-35ab51c5fe7cc4e820375bd9d991168119ecf0160024da0ad7191f27b4827e3958471724238e4bc940435c1fc9e33b2c82bb6d20943c00599f297039669ce237 ilbc-0.0.1.tar.gz
-"
diff --git a/main/imake/APKBUILD b/main/imake/APKBUILD
index c0d2f256873..4dd7486b30e 100644
--- a/main/imake/APKBUILD
+++ b/main/imake/APKBUILD
@@ -1,25 +1,26 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=imake
-pkgver=1.0.8
+pkgver=1.0.10
pkgrel=1
pkgdesc="X Windows make utility"
url="https://www.x.org"
arch="all"
-license="MIT-enna"
+license="custom"
options="!check" # No test suite.
makedepends="util-macros xorgproto"
subpackages="$pkgname-doc"
-source="https://ftp.x.org/pub/individual/util/$pkgname-$pkgver.tar.bz2"
+source="https://ftp.x.org/pub/individual/util/imake-$pkgver.tar.xz"
build() {
- cd "$builddir"
./configure --prefix=/usr
make
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
}
-sha512sums="5352b0148664506c8eb7ba80f95fced146d150398673547ba0b2c7c966a382bc21de43dfb8e0d74e38a0a563f16ddbec48bf8c8e6daa1a0899a95403579d7728 imake-1.0.8.tar.bz2"
+sha512sums="
+ea96db27a6da13ea2d64652936e508b5e3d5d712347a2eb248376dc1f262c18720d9934b8ae69b4c0fc65b135c847be42da084fe924e4825ce1d359f4ef7e60f imake-1.0.10.tar.xz
+"
diff --git a/main/imap/APKBUILD b/main/imap/APKBUILD
index 39bdb367133..f04361d24d9 100644
--- a/main/imap/APKBUILD
+++ b/main/imap/APKBUILD
@@ -5,22 +5,21 @@
# build it shared
pkgname=imap
pkgver=2007f
-pkgrel=13
+pkgrel=15
pkgdesc="An IMAP/POP server"
url="http://www.washington.edu/imap"
arch="all"
license="Apache-2.0"
subpackages="$pkgname-dev c-client:cclient"
-depends=""
-makedepends="openssl1.1-compat-dev"
+makedepends="openssl-dev>3"
source="http://ftp.ntua.gr/pub/net/mail/imap/imap-$pkgver.tar.gz
fix-linking.patch
c-client-2006k_KOLAB_Annotations.patch
1006_openssl1.1_autoverify.patch
2014_openssl1.1.1_sni.patch
"
+options="!check"
-builddir="$srcdir"/$pkgname-$pkgver
prepare() {
default_prepare
sed -e "s:-g -fno-omit-frame-pointer -O6:\${CFLAGS}:" \
@@ -31,15 +30,13 @@ prepare() {
}
build() {
- cd $builddir
export GCCCFLAGS="$CFLAGS"
- yes "y" | make slx SPECIALAUTHENTICATORS=ssl SSLTYPE=unix \
+ yes "y" | make -j1 slx SPECIALAUTHENTICATORS=ssl SSLTYPE=unix \
EXTRACFLAGS="$CFLAGS -fPIC" \
EXTRALDFLAGS="$LDFLAGS"
}
package() {
- cd $builddir
mkdir -p $pkgdir/usr/sbin
install -D -m755 imapd/imapd $pkgdir/usr/sbin/imapd
install -D -m755 ipopd/ipop2d $pkgdir/usr/sbin/ipop2d
diff --git a/main/imlib2/APKBUILD b/main/imlib2/APKBUILD
index 5cd4324e710..c9f918668a8 100644
--- a/main/imlib2/APKBUILD
+++ b/main/imlib2/APKBUILD
@@ -1,26 +1,36 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=imlib2
-pkgver=1.9.0
+pkgver=1.12.2
pkgrel=0
pkgdesc="Image manipulation library"
-url="https://sourceforge.net/projects/enlightenment"
+url="https://sourceforge.net/projects/enlightenment/"
arch="all"
license="Imlib2"
subpackages="$pkgname-dev"
depends_dev="freetype-dev libxext-dev libsm-dev"
-makedepends="$depends_dev tiff-dev giflib-dev bzip2-dev libpng-dev
- libid3tag-dev libjpeg-turbo-dev zlib-dev util-linux-dev libwebp-dev"
+makedepends="
+ $depends_dev
+ tiff-dev
+ bzip2-dev
+ giflib-dev
+ libid3tag-dev
+ libjpeg-turbo-dev
+ libpng-dev
+ libwebp-dev
+ zlib-dev
+ "
source="https://downloads.sourceforge.net/enlightenment/imlib2-$pkgver.tar.gz"
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--sysconfdir=/etc/imlib2 \
--x-libraries=/usr/lib \
- --disable-mmx \
- --disable-amd64 \
+ --disable-static \
--enable-visibility-hiding \
--with-x \
--with-bzip2 \
@@ -43,5 +53,5 @@ package() {
}
sha512sums="
-211df69936b08ae8c9a78f390e724a56b12a727720a4bf031bef527b3bf69285c7907067f59edf6ef64621bedf52afcc634fef6048e6b7f99a79361cb110b78f imlib2-1.9.0.tar.gz
+5b7ce1fc2ca5d80674dcf06bc025da322789a52063dfc4c057073fbb4fedd2533c637bbc2b15cad30bc92c01ea19cbadd3b41cb0abb19a075afb09c1e390952c imlib2-1.12.2.tar.gz
"
diff --git a/main/in-sync/APKBUILD b/main/in-sync/APKBUILD
index 7a741e286d6..719689be47b 100644
--- a/main/in-sync/APKBUILD
+++ b/main/in-sync/APKBUILD
@@ -1,13 +1,13 @@
# Contributor: Kaarle Ritvanen <kunkku@alpinelinux.org>
# Maintainer: Kaarle Ritvanen <kunkku@alpinelinux.org>
pkgname=in-sync
-pkgver=1.0
+pkgver=1.1
pkgrel=0
pkgdesc="inotify-triggered file synchronization"
url="https://git.alpinelinux.org/cgit/aports/tree/main/in-sync"
arch="noarch"
license="GPL-2.0-only"
-depends="inotify-tools rsync"
+depends="inotify-tools rsync /bin/sh"
subpackages="$pkgname-openrc"
source="in-sync in-sync.conf in-sync.initd"
options="!check" # No testsuite
diff --git a/main/indent/APKBUILD b/main/indent/APKBUILD
index 02e0a149881..71e9938b582 100644
--- a/main/indent/APKBUILD
+++ b/main/indent/APKBUILD
@@ -1,49 +1,42 @@
-# Contributor:
-# Maintainer:
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=indent
-pkgver=2.2.12
-pkgrel=1
+pkgver=2.2.13
+pkgrel=2
pkgdesc="An indenting utility"
url="https://www.gnu.org/software/indent/"
-arch="all"
-license="GPL-3.0-or-later BSD"
-makedepends="gettext-dev"
-options="!check" #texinfo
+# ppc64le: segfaults in tests
+arch="all !ppc64le"
+license="GPL-3.0-or-later"
+makedepends="gettext-dev texinfo"
subpackages="$pkgname-doc $pkgname-lang"
source="https://ftp.gnu.org/gnu/indent/indent-$pkgver.tar.xz"
prepare() {
- cd "$builddir"
default_prepare
update_config_sub
}
build() {
- cd "$builddir"
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
- --without-included-gettext \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
- --without-texinfo
- make SUBDIRS="intl po src"
+ --disable-dependency-tracking
+ make
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
- make SUBDIRS="intl po src man" DESTDIR="$pkgdir" install
- rm -rf "$pkgdir"/usr/lib/charset.alias
- rmdir -p "$pkgdir"/usr/lib 2>/dev/null || true
+ make DESTDIR="$pkgdir" install
}
sha512sums="
-dbe73bd3729074825f9f5b4241a4c539ad32069df56511963417caf0351ff9ec5edd77e9580338301c8abf89ab9c0592bc7e82c14eec7450c496259d7e9045dd indent-2.2.12.tar.xz
+a92028f99cc64b451aac99802de564f2e915e7f0e258df761141f77595c07cc95c3f2c35917618dbc2cfa3aa5b163544e07aa6641c32298aca3a1c5331bb8c69 indent-2.2.13.tar.xz
"
diff --git a/main/inih/APKBUILD b/main/inih/APKBUILD
index 261d997e59f..55ea50ba2bf 100644
--- a/main/inih/APKBUILD
+++ b/main/inih/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=inih
-pkgver=55
+pkgver=58
pkgrel=0
pkgdesc="Simple .INI file parser for embedded systems"
options="!check" # No testsuite in Meson, unittests always return 0
@@ -18,12 +18,6 @@ subpackages="
source="$pkgname-$pkgver.tar.gz::https://github.com/benhoyt/inih/archive/r$pkgver.tar.gz"
builddir="$srcdir/inih-r$pkgver"
-prepare() {
- default_prepare
-
- sed -i "s|@PKGVER@|$pkgver|" meson.build
-}
-
build() {
abuild-meson \
-Ddefault_library=both \
@@ -34,7 +28,7 @@ build() {
-Dinline_comments=true \
-Duse_heap=false \
. output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
package() {
@@ -63,7 +57,6 @@ _dev() {
mv "$subpkgdir"/usr/lib/pkgconfig/INIReader.pc "$pkgdir"/usr/lib/pkgconfig
}
-
sha512sums="
-bcbef361a4400da017dbed811ad21672b58512d2b2b537cc0058cdeca709dd0d5a9def4045ce1c1972873c3d3d35182123337e4388676f6f0d16e8dbff967b0f inih-55.tar.gz
+d69f488299c1896e87ddd3dd20cd9db5848da7afa4c6159b8a99ba9a5d33f35cadfdb9f65d6f2fe31decdbadb8b43bf610ff2699df475e1f9ff045e343ac26ae inih-58.tar.gz
"
diff --git a/main/iniparser/APKBUILD b/main/iniparser/APKBUILD
index 316aa74cd83..bed53f62a35 100644
--- a/main/iniparser/APKBUILD
+++ b/main/iniparser/APKBUILD
@@ -1,32 +1,31 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=iniparser
pkgver=4.1
-pkgrel=0
-pkgdesc="C library for parsing "INI-style" files"
-url="http://ndevilla.free.fr/iniparser/"
+pkgrel=4
+pkgdesc="C library for parsing INI-style files"
+url="https://github.com/ndevilla/iniparser"
arch="all"
license="MIT"
-depends=""
makedepends="bash"
subpackages="$pkgname-dev"
source="$pkgname-$pkgver.tar.gz::https://github.com/ndevilla/iniparser/archive/v$pkgver.tar.gz
- rpath.patch"
-builddir="$srcdir"/iniparser-$pkgver
+ CVE-2023-33461.patch
+ rpath.patch
+ "
+
+# secfixes:
+# 4.1-r3:
+# - CVE-2023-33461
build() {
- cd "$builddir"
-# make CC="${CC:-gcc}" CFLAGS="${CFLAGS} -fPIC" LDFLAGS="$LDFLAGS" \
-# libiniparser.so
make
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
install -d "$pkgdir"/usr/lib "$pkgdir"/usr/include
install -m 644 src/dictionary.h "$pkgdir"/usr/include/dictionary.h
install -m 644 src/iniparser.h "$pkgdir"/usr/include/iniparser.h
@@ -34,5 +33,8 @@ package() {
ln -s libiniparser.so.1 "$pkgdir"/usr/lib/libiniparser.so
}
-sha512sums="a8125aaaead1f9dfde380fa1e45bae31ca2312be029f2c53b4072cb3b127d16578a95c7c0aee1e3dda5e7b8db7a865ba6dfe8a1d80eb673061b3babef744e968 iniparser-4.1.tar.gz
-db7bdab6f8faafd47c8b50104e1a461fbd9324b75482b1455a8fc059c07278e7e60f088a3f712b0ade05a9bb989168d17684455b9863018f22a61e0190a888c6 rpath.patch"
+sha512sums="
+a8125aaaead1f9dfde380fa1e45bae31ca2312be029f2c53b4072cb3b127d16578a95c7c0aee1e3dda5e7b8db7a865ba6dfe8a1d80eb673061b3babef744e968 iniparser-4.1.tar.gz
+d2becc2fdbe5a57c7bdd05c61ba4f5a199c43fac55cd98c9b54e11ca06d74d5c592e7fea86c634c91db92c74fa3ec95abad379ff4caa4c79449198528d5b6e48 CVE-2023-33461.patch
+db7bdab6f8faafd47c8b50104e1a461fbd9324b75482b1455a8fc059c07278e7e60f088a3f712b0ade05a9bb989168d17684455b9863018f22a61e0190a888c6 rpath.patch
+"
diff --git a/main/iniparser/CVE-2023-33461.patch b/main/iniparser/CVE-2023-33461.patch
new file mode 100644
index 00000000000..d667ffca1ee
--- /dev/null
+++ b/main/iniparser/CVE-2023-33461.patch
@@ -0,0 +1,45 @@
+Patch-Source: https://github.com/ndevilla/iniparser/pull/146
+--
+From ace9871f65d11b5d73f0b9ee8cf5d2807439442d Mon Sep 17 00:00:00 2001
+From: Antonio <antoniolrt@gmail.com>
+Date: Fri, 2 Jun 2023 15:03:10 -0300
+Subject: [PATCH] Handle null return from iniparser_getstring
+
+Fix handling of NULL returns from iniparser_getstring in
+iniparser_getboolean, iniparser_getlongint and iniparser_getdouble,
+avoiding a crash.
+---
+ src/iniparser.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/iniparser.c b/src/iniparser.c
+index f1d1658..dbceb20 100644
+--- a/src/iniparser.c
++++ b/src/iniparser.c
+@@ -456,7 +456,7 @@ long int iniparser_getlongint(const dictionary * d, const char * key, long int n
+ const char * str ;
+
+ str = iniparser_getstring(d, key, INI_INVALID_KEY);
+- if (str==INI_INVALID_KEY) return notfound ;
++ if (str==NULL || str==INI_INVALID_KEY) return notfound ;
+ return strtol(str, NULL, 0);
+ }
+
+@@ -511,7 +511,7 @@ double iniparser_getdouble(const dictionary * d, const char * key, double notfou
+ const char * str ;
+
+ str = iniparser_getstring(d, key, INI_INVALID_KEY);
+- if (str==INI_INVALID_KEY) return notfound ;
++ if (str==NULL || str==INI_INVALID_KEY) return notfound ;
+ return atof(str);
+ }
+
+@@ -553,7 +553,7 @@ int iniparser_getboolean(const dictionary * d, const char * key, int notfound)
+ const char * c ;
+
+ c = iniparser_getstring(d, key, INI_INVALID_KEY);
+- if (c==INI_INVALID_KEY) return notfound ;
++ if (c==NULL || c==INI_INVALID_KEY) return notfound ;
+ if (c[0]=='y' || c[0]=='Y' || c[0]=='1' || c[0]=='t' || c[0]=='T') {
+ ret = 1 ;
+ } else if (c[0]=='n' || c[0]=='N' || c[0]=='0' || c[0]=='f' || c[0]=='F') {
diff --git a/main/inotify-tools/APKBUILD b/main/inotify-tools/APKBUILD
index 1525b70114b..76430abaf3f 100644
--- a/main/inotify-tools/APKBUILD
+++ b/main/inotify-tools/APKBUILD
@@ -1,19 +1,18 @@
# Contributor:
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=inotify-tools
-pkgver=3.20.11.0
+pkgver=4.23.9.0
pkgrel=0
pkgdesc="C library and CLI tools providing a simple interface to inotify"
-url="https://github.com/rvoicilas/inotify-tools"
+url="https://github.com/inotify-tools/inotify-tools"
arch="all"
license="GPL-2.0-only"
makedepends="automake autoconf libtool"
-subpackages="$pkgname-dev $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/rvoicilas/inotify-tools/archive/$pkgver.tar.gz"
+subpackages="$pkgname-dev $pkgname-libs $pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/inotify-tools/inotify-tools/archive/$pkgver.tar.gz"
prepare() {
default_prepare
- touch README
autoreconf -vif
}
@@ -34,4 +33,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="77b90e96efe0c90ab6ca4309c2f08303c2047ebddfad93ff62c616f30df8ca01102197867571047475b19b7dcc0fe369d9dd41425c2973cdc06467787098f672 inotify-tools-3.20.11.0.tar.gz"
+sha512sums="
+8f44037a482fa39978b845b4989834e8c897ad872913c6cb8c4a987e0d13f9177b05f593332b859d7adde228fdc3512fd45d66cab65368c38926f41d57e22d13 inotify-tools-4.23.9.0.tar.gz
+"
diff --git a/main/installkernel/APKBUILD b/main/installkernel/APKBUILD
index 64d06181cf0..7b3235d6747 100644
--- a/main/installkernel/APKBUILD
+++ b/main/installkernel/APKBUILD
@@ -1,13 +1,12 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=installkernel
-pkgver=3.5
-pkgrel=1
+pkgver=4.1
+pkgrel=0
pkgdesc="Alpine Linux Kernel install script"
url="https://git.alpinelinux.org/cgit/aports/tree/main/installkernel"
arch="noarch"
-license="GPL-2.0"
-subpackages=""
-depends=""
+license="GPL-2.0-only"
+depends="/bin/sh"
options="!check" # no test suite
source="installkernel"
@@ -19,4 +18,6 @@ package() {
install -Dm755 "$srcdir"/installkernel "$pkgdir"/sbin/installkernel
}
-sha512sums="b937b89b1f0deb79153c217f02e35dd4539d6d587012db93e50b887e339b9b641633cd2619cfee4b44dd76a1833bde066f6723c39bc69d6893b0d1cab0a01d26 installkernel"
+sha512sums="
+65167320eca2f1bf18b523afd3359276af8ed4a5bd502adfecd0bfad73d01e1b89a71b41ceb0bb7e95c84e1f993dd2b6813038d8944f2051937d08a0d687a1ce installkernel
+"
diff --git a/main/installkernel/installkernel b/main/installkernel/installkernel
index 2c9fc416a99..3b33a9b87b9 100644
--- a/main/installkernel/installkernel
+++ b/main/installkernel/installkernel
@@ -3,7 +3,7 @@
set -e
if [ $# -eq 3 ] || [ $# -eq 4 ]; then
- kernelversion="$1"
+ kernelrelease="$1"
bootimage="$2"
mapfile="$3"
destdir="${4:-/boot}"
@@ -18,8 +18,8 @@ config="$mapdir"/.config
suffix=
-flavor=${kernelversion##*[0-9]-}
-if [ "$flavor" != "$kernelversion" ]; then
+flavor=${kernelrelease##*[0-9]-}
+if [ "$flavor" != "$kernelrelease" ]; then
suffix=-$flavor
fi
@@ -30,7 +30,16 @@ for i in vmlinuz${suffix} System.map${suffix} config${suffix}; do
done
cp "$bootimage" "$destdir"/vmlinuz${suffix}
-cp "$mapfile" "$destdir"/System.map${suffix}
-cp "$config" "$destdir"/config${suffix}
+cp "$mapfile" "$destdir"/System.map-${kernelrelease}
+cp "$config" "$destdir"/config-${kernelrelease}
+
+destdir_root="${destdir%/boot}"
+if [ "$destdir_root" != "$destdir" ]; then
+ moddir="$destdir_root/lib/modules/$kernelrelease"
+ mkdir -p "$moddir"
+ if ! [ -e "$moddir"/kernel-suffix ]; then
+ echo "$suffix" > "$moddir"/kernel-suffix
+ fi
+fi
exit 0
diff --git a/main/intel-ucode/APKBUILD b/main/intel-ucode/APKBUILD
index d508671db0b..c2528ff91ee 100644
--- a/main/intel-ucode/APKBUILD
+++ b/main/intel-ucode/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
pkgname=intel-ucode
-pkgver=20220510
+pkgver=20240312
pkgrel=0
pkgdesc="Microcode update files for Intel CPUs"
arch="x86 x86_64"
@@ -13,6 +13,24 @@ builddir="$srcdir/Intel-Linux-Processor-Microcode-Data-Files-microcode-$pkgver"
# (Taken from https://github.com/intel/Intel-Linux-Processor-Microcode-Data-Files/blob/main/releasenote.md)
# secfixes:
+# 20240312-40:
+# - CVE-2023-39368
+# - CVE-2023-38575
+# - CVE-2023-28746
+# - CVE-2023-22655
+# - CVE-2023-43490
+# 20231114-r0:
+# - CVE-2023-23583
+# 20230808-r0:
+# - CVE-2022-40982
+# - CVE-2022-41804
+# - CVE-2023-23908
+# 20230214-r0:
+# - CVE-2022-21216
+# - CVE-2022-33196
+# - CVE-2022-38090
+# 20220809-r0:
+# - CVE-2022-21233
# 20220510-r0:
# - CVE-2022-21151
# 20220207-r0:
@@ -61,5 +79,5 @@ package() {
}
sha512sums="
-00329ce62a6d9cc66fb8594d132ef67951086ab1250ceaf908d5a357753ed62557275f55c5eb7b3ad55d1fdd312b5d1a436b214cdcbf6e3e1a840c8bf6f4795d microcode-20220510.tar.gz
+f5f3dfb1706675060b00057b5f017c2cb4ac0df74727139185fd167ca67fc6c611e205b1caeded23b006e4d8d314f87537007e7bafba2c87373f6d960988c911 microcode-20240312.tar.gz
"
diff --git a/main/intltool/APKBUILD b/main/intltool/APKBUILD
deleted file mode 100644
index 1595bb5a49e..00000000000
--- a/main/intltool/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=intltool
-pkgver=0.51.0
-pkgrel=4
-pkgdesc="The internationalization tool collection"
-url="http://freedesktop.org/wiki/Software/intltool"
-arch="noarch"
-license="GPL-2.0"
-depends="perl perl-xml-parser gettext file"
-subpackages="$pkgname-doc"
-source="https://edge.launchpad.net/intltool/trunk/$pkgver/+download/$pkgname-$pkgver.tar.gz
- intltool-perl-regexp.patch"
-builddir="$srcdir/$pkgname-$pkgver"
-
-build () {
- cd "$builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr
- make
-}
-
-check() {
- cd "$builddir"
- make check
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="4c93cb26592ed0b1622d3b7800b5d6622ffa36f58ac73f2ef0bddfab522565fdfb8fa73d81914b9a202f1d62bc995a08960f8adb9f62c86918e75498e85fbfdf intltool-0.51.0.tar.gz
-119386effcacde4e41250fe527bd868e5f2dea4b46856313126bc664f22a1513980f2ab7dc37317ca4f6be6daa2617127f07477ad312f2ff7bc360120a30627a intltool-perl-regexp.patch"
diff --git a/main/intltool/intltool-perl-regexp.patch b/main/intltool/intltool-perl-regexp.patch
deleted file mode 100644
index f423bee92ff..00000000000
--- a/main/intltool/intltool-perl-regexp.patch
+++ /dev/null
@@ -1,50 +0,0 @@
---- a/intltool-update.in.orig 2015-03-09 01:39:54.000000000 +0000
-+++ b/intltool-update.in 2017-01-22 20:14:20.359080387 +0000
-@@ -1062,13 +1062,13 @@
- }
- }
-
-- if ($str =~ /^(.*)\${?([A-Z_]+)}?(.*)$/)
-+ if ($str =~ /^(.*)\$\{?([A-Z_]+)}?(.*)$/)
- {
- my $rest = $3;
- my $untouched = $1;
- my $sub = "";
- # Ignore recursive definitions of variables
-- $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\${?$2}?/;
-+ $sub = $varhash{$2} if defined $varhash{$2} and $varhash{$2} !~ /\$\{?$2}?/;
-
- return SubstituteVariable ("$untouched$sub$rest");
- }
-@@ -1190,10 +1190,10 @@
- $name =~ s/\(+$//g;
- $version =~ s/\(+$//g;
-
-- $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/);
-- $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/);
-- $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/);
-- $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/);
-+ $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\$\{?AC_PACKAGE_NAME}?/);
-+ $varhash{"PACKAGE"} = $name if (not $name =~ /\$\{?PACKAGE}?/);
-+ $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\$\{?AC_PACKAGE_VERSION}?/);
-+ $varhash{"VERSION"} = $version if (not $name =~ /\$\{?VERSION}?/);
- }
-
- if ($conf_source =~ /^AC_INIT\(([^,\)]+),([^,\)]+)[,]?([^,\)]+)?/m)
-@@ -1219,11 +1219,11 @@
- $version =~ s/\(+$//g;
- $bugurl =~ s/\(+$//g if (defined $bugurl);
-
-- $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\${?AC_PACKAGE_NAME}?/);
-- $varhash{"PACKAGE"} = $name if (not $name =~ /\${?PACKAGE}?/);
-- $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\${?AC_PACKAGE_VERSION}?/);
-- $varhash{"VERSION"} = $version if (not $name =~ /\${?VERSION}?/);
-- $varhash{"PACKAGE_BUGREPORT"} = $bugurl if (defined $bugurl and not $bugurl =~ /\${?\w+}?/);
-+ $varhash{"PACKAGE_NAME"} = $name if (not $name =~ /\$\{?AC_PACKAGE_NAME}?/);
-+ $varhash{"PACKAGE"} = $name if (not $name =~ /\$\{?PACKAGE}?/);
-+ $varhash{"PACKAGE_VERSION"} = $version if (not $name =~ /\$\{?AC_PACKAGE_VERSION}?/);
-+ $varhash{"VERSION"} = $version if (not $name =~ /\$\{?VERSION}?/);
-+ $varhash{"PACKAGE_BUGREPORT"} = $bugurl if (defined $bugurl and not $bugurl =~ /\$\{?\w+}?/);
- }
-
- # \s makes this not work, why?
diff --git a/main/iperf3/APKBUILD b/main/iperf3/APKBUILD
index 1a3e4358e66..15b7c4a879f 100644
--- a/main/iperf3/APKBUILD
+++ b/main/iperf3/APKBUILD
@@ -2,29 +2,22 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=iperf3
_pkgname=iperf
-pkgver=3.11
+pkgver=3.16
pkgrel=0
-pkgdesc="A tool to measure IP bandwidth using UDP or TCP"
+pkgdesc="Tool to measure IP bandwidth using UDP or TCP"
url="https://github.com/esnet/iperf"
arch="all"
-license="BSD-3-Clause"
+license="BSD-3-Clause-LBNL"
+makedepends="openssl-dev"
subpackages="$pkgname-dev $pkgname-doc $pkgname-openrc"
source="$pkgname-$pkgver.tar.gz::https://github.com/esnet/$_pkgname/archive/$pkgver.tar.gz
$pkgname.initd
$pkgname.confd
-
- build-fixes.patch
- remove-pg-flags.patch
"
builddir="$srcdir/$_pkgname-$pkgver"
-prepare() {
- default_prepare
- update_config_sub
-}
-
build() {
- CFLAGS="$CFLAGS -D_GNU_SOURCE"
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -50,9 +43,7 @@ package() {
}
sha512sums="
-4be3e407f77a083d826bddc5ce2939047c85f5b816a6aeb3293eacabf2ea23bf13df4226e629ade3bf390c2eb08d6a1cb96f8cdb0fefb290a0fa4c8331d11a17 iperf3-3.11.tar.gz
+32c0a35c632ade4185ba495495842fe7a6af62cb8a8691b791ea4b37429b7b9a22baf5e7389a4c41e344fb35149cf64ece6adda2c79cc096c7787f7c2e3421da iperf3-3.16.tar.gz
fdaf06316886ae02a865848ea6df6b77aecde78fab15bcbc22e077871c3f567521eeee19ef13c402fef467c2edd916a7d976a4c933dbfb637373145a18563ef9 iperf3.initd
4c6b766c154612f5f2e5f6150396f443ba37ec59ed0a8a994bf84612059db22827aee3dd3b7c3249e0bb6037163788d830efcb1caad5eba1c97d2349bdbc55f9 iperf3.confd
-aef39e45bf63341b724b9131d8bfdf96702acc059e10d7d502053effa69a03097f64e9ba2a26c6a1e3e1567cf9a95013fc58b3b47623de79add14230bd820fa0 build-fixes.patch
-9334d51ec4bb4931272f972a83109dadd44123c9b46803a5b2d16e725576b860f93b62ae3d85be2a2d8a955cff24211da7675fe733a4f3ad8aaae005939a4097 remove-pg-flags.patch
"
diff --git a/main/iperf3/build-fixes.patch b/main/iperf3/build-fixes.patch
deleted file mode 100644
index 0f6804ecf39..00000000000
--- a/main/iperf3/build-fixes.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/src/t_timer.c
-+++ b/src/t_timer.c
-@@ -33,6 +33,7 @@
- #include <stdlib.h>
- #include <unistd.h>
- #include <sys/time.h>
-+#include <sys/types.h>
-
- #include "timer.h"
- #include "iperf_time.h"
---- a/src/t_uuid.c
-+++ b/src/t_uuid.c
-@@ -28,6 +28,7 @@
- #include <stdlib.h>
- #include <string.h>
- #include <sys/time.h>
-+#include <sys/types.h>
-
- #include "iperf_util.h"
-
diff --git a/main/iperf3/remove-pg-flags.patch b/main/iperf3/remove-pg-flags.patch
deleted file mode 100644
index 3c0ab1321d2..00000000000
--- a/main/iperf3/remove-pg-flags.patch
+++ /dev/null
@@ -1,29 +0,0 @@
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -58,9 +58,9 @@
- iperf3_profile_SOURCES = main.c \
- $(libiperf_la_SOURCES)
-
--iperf3_profile_CFLAGS = -pg -g
-+iperf3_profile_CFLAGS = -g
- iperf3_profile_LDADD = libiperf.la
--iperf3_profile_LDFLAGS = -pg -g
-+iperf3_profile_LDFLAGS = -g
- endif
-
- # Specify the sources and various flags for the test cases
-
---- a/src/Makefile.in
-+++ b/src/Makefile.in
-@@ -670,9 +670,9 @@
- @ENABLE_PROFILING_TRUE@iperf3_profile_SOURCES = main.c \
- @ENABLE_PROFILING_TRUE@ $(libiperf_la_SOURCES)
-
--@ENABLE_PROFILING_TRUE@iperf3_profile_CFLAGS = -pg -g
-+@ENABLE_PROFILING_TRUE@iperf3_profile_CFLAGS = -g
- @ENABLE_PROFILING_TRUE@iperf3_profile_LDADD = libiperf.la
--@ENABLE_PROFILING_TRUE@iperf3_profile_LDFLAGS = -pg -g
-+@ENABLE_PROFILING_TRUE@iperf3_profile_LDFLAGS = -g
-
- # Specify the sources and various flags for the test cases
- t_timer_SOURCES = t_timer.c
diff --git a/main/iproute2-qos/APKBUILD b/main/iproute2-qos/APKBUILD
index 4cd4863d8d1..63104f8c028 100644
--- a/main/iproute2-qos/APKBUILD
+++ b/main/iproute2-qos/APKBUILD
@@ -2,18 +2,15 @@
# Maintainer: Iilluzion <iilluzion@gmail.com>
pkgname=iproute2-qos
pkgver=0.5
-pkgrel=1
+pkgrel=5
pkgdesc="Scripts to set up quality of service with iproute2"
url="https://git.alpinelinux.org/cgit/aports"
arch="noarch"
-license="GPL-2.0"
+license="GPL-2.0-only"
depends="iproute2"
-makedepends=""
+subpackages="$pkgname-openrc"
source="qos.initd qos.eth0.sample qos.ifb0.sample setup-qos"
-
-build() {
- return 0
-}
+options="!check"
package() {
install -m755 -D "$srcdir"/setup-qos "$pkgdir"/usr/sbin/setup-qos
@@ -24,7 +21,9 @@ package() {
"$pkgdir"/etc/conf.d/qos.ifb0.sample
}
-sha512sums="ac329c26b44e0e7ff6a1469626fbd166351d05135b9e688fcda7d96649e81a65ab927d04f98b80e6b0b9010ecf46fff17b27d67d673f8fa23cab7dd8fd454959 qos.initd
+sha512sums="
+8a0b1df950e36e20cabc45ae172afe62bcbf8f3ef65481bc54d179c8c5eeeb3b5c82f50165259c84d6125698fde308031048dacf257d260f164e19c9ae0110b5 qos.initd
9c4ca37a6416dc6bc4e0b3fbce0568cbd9c31f3c0fde1d3c8b713bf8b185859c948121ddc4182e2b133b29fab63f4d928aca27205568fc656f2787829beef243 qos.eth0.sample
720396a86552de052faad47c22a5b295d00de01ac81fad109c5c6a7bad1b05ac9282a5edc175149361228480aad2d246b2def7fc1fa3d7acdcbe12ea9ef9a2ac qos.ifb0.sample
-112a9fd7789751d2feeef9e007accc0138134818f3e13ddb62250e6d77b82a3ba34edcf7b475cf15f89b6c71ea50b943037f61c44ca54e5d1ea304bdc04ff0ae setup-qos"
+112a9fd7789751d2feeef9e007accc0138134818f3e13ddb62250e6d77b82a3ba34edcf7b475cf15f89b6c71ea50b943037f61c44ca54e5d1ea304bdc04ff0ae setup-qos
+"
diff --git a/main/iproute2-qos/qos.initd b/main/iproute2-qos/qos.initd
index b04d6299135..43f10aa3876 100644
--- a/main/iproute2-qos/qos.initd
+++ b/main/iproute2-qos/qos.initd
@@ -152,7 +152,7 @@ reset()
# Supported Queuing Disciplines
QDISCS="prio|tbf|htb|hfsc|sfq|red|pfifo"
- tc qdisc show dev $DEV | grep -v "pfifo_fast" | egrep -q "$QDISCS" && $ECHO tc qdisc del dev $DEV root
+ tc qdisc show dev $DEV | grep -v "pfifo_fast" | grep -E -q "$QDISCS" && $ECHO tc qdisc del dev $DEV root
tc qdisc show dev $DEV | grep -v "pfifo_fast" | grep -q ingress && $ECHO tc qdisc del dev $DEV ingress
if [ "$INGRESS_ALG" = "ifb" ] && [ ! -z $IFB_DEV ]; then
diff --git a/main/iproute2/APKBUILD b/main/iproute2/APKBUILD
index bfd242fa9ff..8706f53fa90 100644
--- a/main/iproute2/APKBUILD
+++ b/main/iproute2/APKBUILD
@@ -1,9 +1,9 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=iproute2
-pkgver=5.18.0
+pkgver=6.8.0
pkgrel=0
pkgdesc="IP Routing Utilities"
-url="https://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2"
+url="https://wiki.linuxfoundation.org/networking/iproute2"
arch="all"
license="GPL-2.0-or-later"
install="$pkgname.post-install"
@@ -16,11 +16,10 @@ makedepends="
bash
bison
elfutils-dev
- libax25-dev
- libcap-dev
- libmnl-dev
flex
iptables-dev
+ libcap-dev
+ libmnl-dev
"
subpackages="
$pkgname-doc
@@ -38,21 +37,13 @@ options="!check" # requires namespaces support and root
# 5.1.0-r0:
# - CVE-2019-20795
-prepare() {
- default_prepare
-
- sed -i '/^TARGETS=/s: arpd : :' misc/Makefile
- sed -i 's:/usr/local:/usr:' tc/m_ipt.c include/iptables.h
- sed -i -e 's:=/share:=/usr/share:' \
- -e 's:-Werror::' Makefile
-}
-
build() {
- make CCOPTS="-D_GNU_SOURCE $CFLAGS" V=1
+ export CFLAGS="$CFLAGS -flto=auto"
+ make V=1
}
package() {
- make -j1 DESTDIR="$pkgdir" install
+ make DESTDIR="$pkgdir" install
install -D -m644 include/libnetlink.h "$pkgdir"/usr/include/libnetlink.h
install -D -m644 lib/libnetlink.a "$pkgdir"/usr/lib/libnetlink.a
@@ -64,7 +55,7 @@ minimal() {
replaces="$pkgname" # for backward compatibility (Alpine <3.13)
amove sbin/ip
- amove etc
+ amove usr/share/iproute2
}
tc() {
@@ -96,5 +87,5 @@ rdma() {
}
sha512sums="
-7b43c89741a8ffe8fd529ac4ee19c8eab7dce2f064de494c160c75456ffb960fb5f1e78c868ab98360dafde28d5e2c4d58177135b6d380e80e06eba9e3eaf068 iproute2-5.18.0.tar.xz
+54e50340a73c8810d69bfd54704b469149731634a97d94da08b5a305592a812131a441e5b646e32b480d61840e2ade29387e54b934effeee8ded4f06e557a5c0 iproute2-6.8.0.tar.xz
"
diff --git a/main/ipset/APKBUILD b/main/ipset/APKBUILD
index aac8f195e7c..97e89480c3b 100644
--- a/main/ipset/APKBUILD
+++ b/main/ipset/APKBUILD
@@ -1,18 +1,27 @@
# Contributor: Kaarle Ritvanen <kunkku@alpinelinux.org>
# Maintainer: Kaarle Ritvanen <kunkku@alpinelinux.org>
pkgname=ipset
-pkgver=7.15
-pkgrel=0
+pkgver=7.21
+pkgrel=2
pkgdesc="Manage Linux IP sets"
-options="!check" # No testsuite
url="https://ipset.netfilter.org/"
arch="all"
license="GPL-2.0-only"
depends_dev="libmnl-dev"
makedepends="$depends_dev automake autoconf libtool linux-headers"
+checkdepends="bash iptables"
+options="!check" # Tests require privileges to load kernel modules
subpackages="$pkgname-dev $pkgname-doc $pkgname-openrc"
source="https://ipset.netfilter.org/ipset-$pkgver.tar.bz2
- ipset.initd"
+ ipset.initd
+
+ basename-include.patch
+ "
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
./configure \
@@ -23,15 +32,20 @@ build() {
make
}
+check() {
+ make tests
+}
+
package() {
- make install DESTDIR=$pkgdir
+ make install DESTDIR="$pkgdir"
mkdir -p "$pkgdir/etc/init.d" \
"$pkgdir/etc/ipset.d"
- install -m 755 "$startdir/ipset.initd" "$pkgdir/etc/init.d/ipset"
+ install -m 755 "$srcdir/ipset.initd" "$pkgdir/etc/init.d/ipset"
}
sha512sums="
-0fc936d971c30a0925c585d506c8840e782fdaeec09bc8fd249e874fe838fa55a4dbb697f6e1423a6769abf07a1ce2195abc37cb641e8e4ad70f1b4c7130916a ipset-7.15.tar.bz2
-c7d3344ce879ff3b21f9e30a00d49a41cbd68172aec1a933a4b501dded54e3c57615386850901da22c652a34bcbe39caac86a3a0447da24bae29b40632153239 ipset.initd
+175c6516c2091c57738a0324678d8d016e4d7f18fa03cb0dcc502391cac4caf4db1e757f61ad2fe312c1dbe431ec9cfabbc8e15a64a94ebd2fa903155b27c88f ipset-7.21.tar.bz2
+4c4492258a39b94ef7cdf193d73060af28bef05aad305743f9db698f08d4e89352788e72ef98fad7c099aef0937f333e0b84a5df0ae27740fa2626654576f89c ipset.initd
+acbcee9b83da3804746eb7af451a13ab62eaf679056e8feedd72b703f42e20ec9bdc30386a5c206f302d9332c3ebfafbce0ce69ba518d337c72d892359dace9b basename-include.patch
"
diff --git a/main/ipset/basename-include.patch b/main/ipset/basename-include.patch
new file mode 100644
index 00000000000..3ce5cd4e733
--- /dev/null
+++ b/main/ipset/basename-include.patch
@@ -0,0 +1,12 @@
+what
+
+https://gitlab.alpinelinux.org/alpine/aports/-/issues/15911
+
+diff --git a/src/ipset.c b/src/ipset.c
+index 162f477..5eca659 100644
+--- a/src/ipset.c
++++ b/src/ipset.c
+@@ -13,2 +13,3 @@
+ #include <string.h> /* strcmp */
++#include <libgen.h> /* basename */
+
diff --git a/main/ipset/ipset.initd b/main/ipset/ipset.initd
index 83cfee920fa..6e2838f7382 100644
--- a/main/ipset/ipset.initd
+++ b/main/ipset/ipset.initd
@@ -10,19 +10,31 @@ description_reload="Load firewall IP sets"
extra_started_commands="save reload"
IPSET=/usr/sbin/ipset
-DIR=/etc/ipset.d
STATUS=0
+if [ "${RC_SVCNAME#*.}" != "$RC_SVCNAME" ] ; then
+ : ${netns:="${RC_SVCNAME#*.}"}
+fi
+
+# Add ip netns if configured to run in a netns namespace
+if [ -n "$netns" ]; then
+ test -e /run/netns/$netns || ip netns add $netns
+ IPSET="ip netns exec $netns $IPSET"
+ : ${ipset_def_dir:=/etc/ipset.$netns.d}
+else
+ : ${ipset_def_dir:=/etc/ipset.d}
+fi
+
ipset() {
$IPSET $* || STATUS=1
}
set_files() {
- (cd $DIR && ls)
+ (cd $ipset_def_dir && ls)
}
set_file() {
- grep -v ^# $DIR/$1
+ grep -v ^# $ipset_def_dir/$1
}
set_exists() {
@@ -66,7 +78,7 @@ save() {
ipset save | while read cmd; do
set -- $cmd
local action=$1
- local file=$DIR/$2
+ local file=$ipset_def_dir/$2
shift 2
if [ "$action" = create ]; then
echo $* > $file
@@ -76,7 +88,7 @@ save() {
done
for name in $(set_files); do
- set_exists $name || rm -f $DIR/$name
+ set_exists $name || rm -f $ipset_def_dir/$name
done
eend $STATUS
@@ -113,11 +125,11 @@ reload() {
) | ipset restore
for name in $(set_lists); do
- [ -f $DIR/$name ] || echo destroy $name
+ [ -f $ipset_def_dir/$name ] || echo destroy $name
done | ipset restore
for name in $(sets); do
- [ -f $DIR/$name ] || echo destroy $name
+ [ -f $ipset_def_dir/$name ] || echo destroy $name
done | ipset restore
eend $STATUS
diff --git a/main/iptables/APKBUILD b/main/iptables/APKBUILD
index 209208ca6e4..40e17277045 100644
--- a/main/iptables/APKBUILD
+++ b/main/iptables/APKBUILD
@@ -1,30 +1,42 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=iptables
-pkgver=1.8.8
-pkgrel=2
+pkgver=1.8.10
+pkgrel=3
pkgdesc="Linux kernel firewall, NAT and packet mangling tools"
url="https://www.netfilter.org/projects/iptables/index.html"
arch="all"
license="GPL-2.0-or-later"
depends_dev="linux-headers"
+install="$pkgname.post-upgrade"
makedepends="$depends_dev libnftnl-dev bison flex autoconf automake"
-subpackages="ip6tables $pkgname-doc $pkgname-dev $pkgname-openrc ip6tables-openrc:ip6tables_openrc"
-provides="ebtables=$pkgver-r$pkgrel" # for backards compat
-replaces="ebtables"
-source="https://www.netfilter.org/projects/iptables/files/iptables-$pkgver.tar.bz2
+subpackages="
+ iptables-legacy
+ libip4tc
+ libip6tc
+ libipq
+ libxtables
+ $pkgname-doc
+ $pkgname-dev
+ $pkgname-openrc
+ "
+provides="ip6tables=$pkgver-r$pkgrel ebtables=$pkgver-r$pkgrel" # for backards compat
+replaces="ip6tables ebtables"
+source="https://www.netfilter.org/projects/iptables/files/iptables-$pkgver.tar.xz
use-sh-iptables-apply.patch
iptables.initd
iptables.confd
ip6tables.confd
ebtables.initd
ebtables.confd
-
- fix-xtables.patch
- fix-u_int16_t.patch
"
+options="!check"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
- export CFLAGS="$CFLAGS -D_GNU_SOURCE"
./configure \
--build="$CBUILD" \
--host="$CHOST" \
@@ -45,50 +57,76 @@ build() {
}
package() {
- make -j1 install DESTDIR="$pkgdir"
+ make install DESTDIR="$pkgdir"
- mkdir -p "$pkgdir"/usr/include/libiptc \
- "$pkgdir"/usr/lib \
+ mkdir -p "$pkgdir"/usr/lib \
"$pkgdir"/var/lib/iptables \
+ "$pkgdir"/var/lib/ip6tables \
"$pkgdir"/etc/iptables
- install -m644 include/iptables.h include/ip6tables.h \
- "$pkgdir"/usr/include/
- install include/libiptc/*.h "$pkgdir"/usr/include/libiptc/
+ install -Dm644 include/iptables.h include/ip6tables.h \
+ -t "$pkgdir"/usr/include/
+ install -Dm644 include/libiptc/*.h -t "$pkgdir"/usr/include/libiptc/
install -D -m755 "$srcdir"/iptables.initd "$pkgdir"/etc/init.d/iptables
install -D -m644 "$srcdir"/iptables.confd "$pkgdir"/etc/conf.d/iptables
+ install -D -m755 "$srcdir"/iptables.initd "$pkgdir"/etc/init.d/ip6tables
+ install -D -m644 "$srcdir"/ip6tables.confd "$pkgdir"/etc/conf.d/ip6tables
install -D -m755 "$srcdir"/ebtables.initd "$pkgdir"/etc/init.d/ebtables
install -D -m644 "$srcdir"/ebtables.confd "$pkgdir"/etc/conf.d/ebtables
+
+ ln -sfv xtables-nft-multi "$pkgdir"/sbin/iptables
+ ln -sfv xtables-nft-multi "$pkgdir"/sbin/iptables-save
+ ln -sfv xtables-nft-multi "$pkgdir"/sbin/iptables-restore
+ ln -sfv xtables-nft-multi "$pkgdir"/sbin/ip6tables
+ ln -sfv xtables-nft-multi "$pkgdir"/sbin/ip6tables-save
+ ln -sfv xtables-nft-multi "$pkgdir"/sbin/ip6tables-restore
}
-ip6tables() {
- mkdir -p "$subpkgdir"
- cd "$subpkgdir"
+legacy() {
+ pkgdesc="$pkgdesc (legacy xtables-legacy binaries)"
- mkdir -p sbin \
- var/lib/ip6tables \
- usr/lib/xtables
+ amove \
+ sbin/*legacy* \
+ usr/bin/iptables-xml
+}
+
+libip4tc() {
+ pkgdesc="$pkgdesc (legacy libip4tc library)"
- mv "$pkgdir"/sbin/ip6* sbin/
- mv "$pkgdir"/usr/lib/xtables/libip6* usr/lib/xtables/
+ amove usr/lib/libip4tc.so.*
}
-ip6tables_openrc() {
- default_openrc
+libip6tc() {
+ pkgdesc="$pkgdesc (legacy libip6tc library)"
- install -D -m755 "$srcdir"/iptables.initd "$subpkgdir"/etc/init.d/ip6tables
- install -D -m644 "$srcdir"/ip6tables.confd "$subpkgdir"/etc/conf.d/ip6tables
+ amove usr/lib/libip6tc.so.*
+}
+
+libipq() {
+ pkgdesc="$pkgdesc (legacy libipq library)"
+
+ amove usr/lib/libipq.so.*
+}
+
+libxtables() {
+ pkgdesc="$pkgdesc (xtables library)"
+
+ amove usr/lib/libxtables.so.*
+}
+
+openrc() {
+ default_openrc
+ provides="ip6tables-openrc=$pkgver-r$pkgrel"
+ replaces="ip6tables-openrc"
}
sha512sums="
-f21df23279a77531a23f3fcb1b8f0f8ec0c726bda236dd0e33af74b06753baff6ce3f26fb9fcceb6fada560656ba901e68fc6452eb840ac1b206bc4654950f59 iptables-1.8.8.tar.bz2
+71e6ed2260859157d61981a4fe5039dc9e8d7da885a626a4b5dae8164c509a9d9f874286b9468bb6a462d6e259d4d32d5967777ecefdd8a293011ae80c00f153 iptables-1.8.10.tar.xz
ac78898c2acbe66ed8d32a06f41ff08cde7c22c3df6dfec6bc89a912d2cef2bde730de19d25a5407886d567cb0972a0b7bde7e6b18a34c4511495b4dad3b90ad use-sh-iptables-apply.patch
-a37c17a5382c756fcfb183af73af2283f0d09932c5a767241cbab5d784738f6f587f287a0cdf13b4fa74724ecd3a2063a9689ccee84c1bda02e730f63480f74d iptables.initd
+a9d0bccfdacfad65182abe5f4bba18ae0f538c1d476a8fc6f33e228d9b0ee6caf29c37081d070c2f9e411e9057309df5e3300618314b461dac529bfc43d89bb0 iptables.initd
cb7fecd5cab2c78bd3f215a41f39ec11c37eb360efbe83982378a0e647e0aa9dc0b7ec915a5b5081aa2f7747464787e69404aa15ba15a063c32cb8fb7dd13d1e iptables.confd
0897a7a22f8b700f7f1f5c355ad6cbf39740e44d6c962af99e479978d8a2d556ca7fe4e31f238829046b4a871ce0b5fd52e2544f1361d15dd1ea3e33992646c4 ip6tables.confd
-8809d6fc69fbaa7d83ca4675d9e605f73e74ea8907495d39abdfbdca5c74bafb4fe0e413c88a4bd9470688a243581fa239527af06be15c9c94190664d9557fca ebtables.initd
+6f3a7e3f6cedff9e73aa0fb959c92a93b2c484ae3c9b48d9522d1ee1e5ee4e2af12be8c3d73b932fe7f5716b5dd1c5cdfde729a808c0ae9a7dbd4ceec93e5a32 ebtables.initd
1623109d7b564b817904e35b6c6964ce84fe123a8ae1b656944648a39cfef719431cfad313b48eb36ae53a0d1a6b388a5caec1a990448d02f77e5d12b1f7ee9d ebtables.confd
-ce8c4ff001be49b77bb82efc3cb8b9f3c8f8684abcb07d079c6a00fab5c7a22e0d7f66f8ccdf3aab63d8fdb2b01b249679a89561e2f723111c8ce4075681b134 fix-xtables.patch
-015ca550cf27802446d74521b7618095a342663d4fd73700975f3186428ecdc9eec27016f4d40862d3837cbbe0bb43509c1022b19ef8692ab28cc24e18831d57 fix-u_int16_t.patch
"
diff --git a/main/iptables/ebtables.initd b/main/iptables/ebtables.initd
index 7d9243672a4..51a296d1795 100644
--- a/main/iptables/ebtables.initd
+++ b/main/iptables/ebtables.initd
@@ -13,6 +13,12 @@ if [ "$ebtables_tables" == "" ] ; then
ebtables_tables=${TABLE_NAMES}
fi
+# Add ip netns if configured to run in a netns namespace
+if [ -n "$netns" ]; then
+ test -e /run/netns/$netns || ip netns add $netns
+ ebtables_bin="ip netns exec $netns $ebtables_bin"
+fi
+
depend() {
before net
use logger
diff --git a/main/iptables/fix-u_int16_t.patch b/main/iptables/fix-u_int16_t.patch
deleted file mode 100644
index 37b39504ba5..00000000000
--- a/main/iptables/fix-u_int16_t.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-From f319389525b066b7dc6d389c88f16a0df3b8f189 Mon Sep 17 00:00:00 2001
-From: Nick Hainke <vincent@systemli.org>
-Date: Mon, 16 May 2022 18:16:41 +0200
-Subject: treewide: use uint* instead of u_int*
-
-Gcc complains about missing types. Some commits introduced u_int* instead
-of uint*. Use uint treewide.
-
-Fixes errors in the form of:
-In file included from xtables-legacy-multi.c:5:
-xshared.h:83:56: error: unknown type name 'u_int16_t'; did you mean 'uint16_t'?
- 83 | set_option(unsigned int *options, unsigned int option, u_int16_t *invflg,
- | ^~~~~~~~~
- | uint16_t
-make[6]: *** [Makefile:712: xtables_legacy_multi-xtables-legacy-multi.o] Error 1
-
-Avoid libipq API breakage by adjusting libipq.h include accordingly. For
-arpt_mangle.h kernel uAPI header, apply same change as in kernel commit
-e91ded8db5747 ("uapi: netfilter_arp: use __u8 instead of u_int8_t").
-
-Signed-off-by: Nick Hainke <vincent@systemli.org>
-Signed-off-by: Phil Sutter <phil@nwl.cc>
----
- extensions/libxt_conntrack.c | 2 +-
- include/libipq/libipq.h | 8 ++++----
- include/libiptc/libxtc.h | 2 +-
- include/linux/netfilter_arp/arpt_mangle.h | 2 +-
- iptables/xshared.c | 2 +-
- iptables/xshared.h | 2 +-
- libipq/ipq_create_handle.3 | 2 +-
- libipq/ipq_set_mode.3 | 2 +-
- 8 files changed, 11 insertions(+), 11 deletions(-)
-
-diff --git a/extensions/libxt_conntrack.c b/extensions/libxt_conntrack.c
-index 64018ce1..234085c5 100644
---- a/extensions/libxt_conntrack.c
-+++ b/extensions/libxt_conntrack.c
-@@ -778,7 +778,7 @@ matchinfo_print(const void *ip, const struct xt_entry_match *match, int numeric,
-
- static void
- conntrack_dump_ports(const char *prefix, const char *opt,
-- u_int16_t port_low, u_int16_t port_high)
-+ uint16_t port_low, uint16_t port_high)
- {
- if (port_high == 0 || port_low == port_high)
- printf(" %s%s %u", prefix, opt, port_low);
-diff --git a/include/libipq/libipq.h b/include/libipq/libipq.h
-index 3cd13292..dd0cb205 100644
---- a/include/libipq/libipq.h
-+++ b/include/libipq/libipq.h
-@@ -24,7 +24,7 @@
- #include <errno.h>
- #include <unistd.h>
- #include <fcntl.h>
--#include <sys/types.h>
-+#include <stdint.h>
- #include <sys/socket.h>
- #include <sys/uio.h>
- #include <asm/types.h>
-@@ -48,19 +48,19 @@ typedef unsigned long ipq_id_t;
- struct ipq_handle
- {
- int fd;
-- u_int8_t blocking;
-+ uint8_t blocking;
- struct sockaddr_nl local;
- struct sockaddr_nl peer;
- };
-
--struct ipq_handle *ipq_create_handle(u_int32_t flags, u_int32_t protocol);
-+struct ipq_handle *ipq_create_handle(uint32_t flags, uint32_t protocol);
-
- int ipq_destroy_handle(struct ipq_handle *h);
-
- ssize_t ipq_read(const struct ipq_handle *h,
- unsigned char *buf, size_t len, int timeout);
-
--int ipq_set_mode(const struct ipq_handle *h, u_int8_t mode, size_t len);
-+int ipq_set_mode(const struct ipq_handle *h, uint8_t mode, size_t len);
-
- ipq_packet_msg_t *ipq_get_packet(const unsigned char *buf);
-
-diff --git a/include/libiptc/libxtc.h b/include/libiptc/libxtc.h
-index 37010188..a1d16ef9 100644
---- a/include/libiptc/libxtc.h
-+++ b/include/libiptc/libxtc.h
-@@ -10,7 +10,7 @@ extern "C" {
- #endif
-
- #ifndef XT_MIN_ALIGN
--/* xt_entry has pointers and u_int64_t's in it, so if you align to
-+/* xt_entry has pointers and uint64_t's in it, so if you align to
- it, you'll also align to any crazy matches and targets someone
- might write */
- #define XT_MIN_ALIGN (__alignof__(struct xt_entry))
-diff --git a/include/linux/netfilter_arp/arpt_mangle.h b/include/linux/netfilter_arp/arpt_mangle.h
-index 250f5029..8c2b16a1 100644
---- a/include/linux/netfilter_arp/arpt_mangle.h
-+++ b/include/linux/netfilter_arp/arpt_mangle.h
-@@ -13,7 +13,7 @@ struct arpt_mangle
- union {
- struct in_addr tgt_ip;
- } u_t;
-- u_int8_t flags;
-+ __u8 flags;
- int target;
- };
-
-diff --git a/iptables/xshared.c b/iptables/xshared.c
-index a8512d38..9b5e5b5b 100644
---- a/iptables/xshared.c
-+++ b/iptables/xshared.c
-@@ -1025,7 +1025,7 @@ static const int inverse_for_options[NUMBER_OF_OPT] =
- };
-
- void
--set_option(unsigned int *options, unsigned int option, u_int16_t *invflg,
-+set_option(unsigned int *options, unsigned int option, uint16_t *invflg,
- bool invert)
- {
- if (*options & option)
-diff --git a/iptables/xshared.h b/iptables/xshared.h
-index 14568bb0..f8212988 100644
---- a/iptables/xshared.h
-+++ b/iptables/xshared.h
-@@ -80,7 +80,7 @@ struct xtables_target;
- #define IPT_INV_ARPHRD 0x0800
-
- void
--set_option(unsigned int *options, unsigned int option, u_int16_t *invflg,
-+set_option(unsigned int *options, unsigned int option, uint16_t *invflg,
- bool invert);
-
- /**
-diff --git a/libipq/ipq_create_handle.3 b/libipq/ipq_create_handle.3
-index 11ef95c4..ebe46daa 100644
---- a/libipq/ipq_create_handle.3
-+++ b/libipq/ipq_create_handle.3
-@@ -24,7 +24,7 @@ ipq_create_handle, ipq_destroy_handle \(em create and destroy libipq handles.
- .br
- .B #include <libipq.h>
- .sp
--.BI "struct ipq_handle *ipq_create_handle(u_int32_t " flags ", u_int32_t " protocol ");"
-+.BI "struct ipq_handle *ipq_create_handle(uint32_t " flags ", uint32_t " protocol ");"
- .br
- .BI "int ipq_destroy_handle(struct ipq_handle *" h );
- .SH DESCRIPTION
-diff --git a/libipq/ipq_set_mode.3 b/libipq/ipq_set_mode.3
-index 0edd3c00..e206886c 100644
---- a/libipq/ipq_set_mode.3
-+++ b/libipq/ipq_set_mode.3
-@@ -24,7 +24,7 @@ ipq_set_mode \(em set the ip_queue queuing mode
- .br
- .B #include <libipq.h>
- .sp
--.BI "int ipq_set_mode(const struct ipq_handle *" h ", u_int8_t " mode ", size_t " range );
-+.BI "int ipq_set_mode(const struct ipq_handle *" h ", uint8_t " mode ", size_t " range );
- .SH DESCRIPTION
- The
- .B ipq_set_mode
---
-cgit v1.2.3
-
diff --git a/main/iptables/fix-xtables.patch b/main/iptables/fix-xtables.patch
deleted file mode 100644
index 657c8219b4f..00000000000
--- a/main/iptables/fix-xtables.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/libxtables/xtables.c 2022-05-13 13:26:26.000000000 +0000
-+++ b/libxtables/xtables.c 2022-05-17 08:56:52.670556393 +0000
-@@ -45,7 +45,6 @@
-
- #include <xtables.h>
- #include <limits.h> /* INT_MAX in ip_tables.h/ip6_tables.h */
--#include <linux/if_ether.h> /* ETH_ALEN */
- #include <linux/netfilter_ipv4/ip_tables.h>
- #include <linux/netfilter_ipv6/ip6_tables.h>
- #include <libiptc/libxtc.h>
diff --git a/main/iptables/iptables.initd b/main/iptables/iptables.initd
index 0f906eed7e6..e67e12080db 100644
--- a/main/iptables/iptables.initd
+++ b/main/iptables/iptables.initd
@@ -8,25 +8,35 @@ description_save="Save firewall state"
description_panic="Drop all packets"
description_reload="Reload configuration"
-extra_commands="save panic"
+extra_commands="check save panic"
extra_started_commands="reload"
iptables_name=${SVCNAME}
-if [ "${iptables_name}" != "iptables" -a "${iptables_name}" != "ip6tables" ] ; then
- iptables_name="iptables"
-fi
+case "$iptables_name" in
+ iptables|ip6tables) ;;
+ *) iptables_name="iptables" ;;
+esac
iptables_bin="/sbin/${iptables_name}"
case ${iptables_name} in
- iptables) iptables_proc="/proc/net/ip_tables_names"
- iptables_save=${IPTABLES_SAVE}
- sysctl_ipfwd=net.ipv4.ip_forward;;
- ip6tables) iptables_proc="/proc/net/ip6_tables_names"
- iptables_save=${IP6TABLES_SAVE}
- sysctl_ipfwd=net.ipv6.conf.all.forwarding;;
+ iptables)
+ #shellcheck disable=SC2153
+ iptables_save="${IPTABLES_SAVE}"
+ sysctl_ipfwd=net.ipv4.ip_forward
+ ;;
+ ip6tables)
+ iptables_save="${IP6TABLES_SAVE}"
+ sysctl_ipfwd=net.ipv6.conf.all.forwarding
+ ;;
esac
+# Add ip netns if configured to run in a netns namespace
+if [ -n "$netns" ]; then
+ iptables_bin="ip netns exec $netns $iptables_bin"
+fi
+
depend() {
+ need localmount # in case IPTABLES_SAVE=/var/...
before net
after sysctl
use logger
@@ -34,7 +44,7 @@ depend() {
}
set_table_policy() {
- local chains table=$1 policy=$2
+ local chains table="$1" policy="$2"
case ${table} in
nat) chains="PREROUTING POSTROUTING OUTPUT";;
mangle) chains="PREROUTING INPUT FORWARD OUTPUT POSTROUTING";;
@@ -43,20 +53,17 @@ set_table_policy() {
esac
local chain
for chain in ${chains} ; do
- ${iptables_bin} -w 5 -t ${table} -P ${chain} ${policy}
+ ${iptables_bin} --wait 5 --table "${table}" --policy "${chain}" "${policy}"
done
}
-checkkernel() {
- if [ ! -e ${iptables_proc} ] ; then
- eerror "Your kernel lacks ${iptables_name} support, please load"
- eerror "appropriate modules and try again."
- return 1
- fi
- return 0
+get_tables() {
+ # shellcheck disable=SC2086
+ ${iptables_bin}-save | /bin/sed -n 's/^\*//p'
}
+
checkconfig() {
- if [ ! -f ${iptables_save} ] ; then
+ if [ ! -f "${iptables_save}" ] ; then
eerror "Not starting ${iptables_name}. First create some rules then run:"
eerror "/etc/init.d/${iptables_name} save"
return 1
@@ -64,14 +71,21 @@ checkconfig() {
return 0
}
-start() {
+start_pre() {
checkconfig || return 1
+ if [ -n "$netns" ] && ! test -e "/run/netns/$netns"; then
+ ip netns add "$netns"
+ fi
+}
+
+start() {
ebegin "Loading ${iptables_name} state and starting firewall"
+ # shellcheck disable=SC2086
${iptables_bin}-restore ${SAVE_RESTORE_OPTIONS} < "${iptables_save}"
eend $?
if yesno "${IPFORWARD}"; then
ebegin "Enabling forwarding"
- /sbin/sysctl -w ${sysctl_ipfwd}=1 > /dev/null
+ /sbin/sysctl -w "${sysctl_ipfwd}=1" > /dev/null
eend $?
fi
}
@@ -79,57 +93,79 @@ start() {
stop() {
if yesno "${IPFORWARD}"; then
ebegin "Disabling forwarding"
- /sbin/sysctl -w ${sysctl_ipfwd}=0 > /dev/null
+ /sbin/sysctl -w "${sysctl_ipfwd}=0" > /dev/null
eend $?
fi
if yesno "${SAVE_ON_STOP}"; then
save || return 1
fi
- checkkernel || return 1
ebegin "Stopping firewall"
local a
- for a in $(cat ${iptables_proc}) ; do
- set_table_policy $a ACCEPT
+ for a in $(get_tables) ; do
+ set_table_policy "$a" ACCEPT
- ${iptables_bin} -w 5 -F -t $a
- ${iptables_bin} -w 5 -X -t $a
+ ${iptables_bin} --wait 5 --flush --table "$a"
+ ${iptables_bin} --wait 5 --delete-chain --table "$a"
done
eend $?
}
reload() {
- checkkernel || return 1
+ checkrules || return 1
ebegin "Flushing firewall"
local a
- for a in $(cat ${iptables_proc}) ; do
- ${iptables_bin} -w 5 -F -t $a
- ${iptables_bin} -w 5 -X -t $a
+ for a in $(get_tables) ; do
+ ${iptables_bin} --wait 5 --flush --table "$a"
+ ${iptables_bin} --wait 5 --delete-chain --table "$a"
done
eend $?
start
}
+checkrules() {
+ ebegin "Checking rules"
+ # shellcheck disable=SC2086
+ ${iptables_bin}-restore --test ${SAVE_RESTORE_OPTIONS} < "${iptables_save}"
+ eend $?
+}
+
+check() {
+ # Short name for users of init.d script.
+ checkrules
+}
+
save() {
ebegin "Saving ${iptables_name} state"
checkpath -fm 0600 "${iptables_save}"
- ${iptables_bin}-save ${SAVE_RESTORE_OPTIONS} > "${iptables_save}"
- eend $?
+ local exitcode tmp
+
+ tmp="$(mktemp)"
+ # shellcheck disable=SC2086
+ ${iptables_bin}-save ${SAVE_RESTORE_OPTIONS} > "${tmp}"
+ exitcode=$?
+ if [ "$exitcode" -eq 0 ]; then
+ # command succeeded, so overwrite
+ mv "${tmp}" "${iptables_save}"
+ else
+ ewarn "${iptables_bin}-save failed!"
+ rm -f "${tmp}"
+ fi
+ eend $exitcode
}
panic() {
- checkkernel || return 1
- if service_started ${iptables_name}; then
- rc-service ${iptables_name} stop
+ if service_started "${iptables_name}"; then
+ rc-service "${iptables_name}" stop
fi
local a
ebegin "Dropping all packets"
- for a in $(cat ${iptables_proc}) ; do
- ${iptables_bin} -w 5 -F -t $a
- ${iptables_bin} -w 5 -X -t $a
+ for a in $(get_tables) ; do
+ ${iptables_bin} --wait 5 --flush --table "$a"
+ ${iptables_bin} --wait 5 --delete-chain --table "$a"
- set_table_policy $a DROP
+ set_table_policy "$a" DROP
done
eend $?
}
diff --git a/main/iptables/iptables.post-upgrade b/main/iptables/iptables.post-upgrade
new file mode 100644
index 00000000000..89c13667d00
--- /dev/null
+++ b/main/iptables/iptables.post-upgrade
@@ -0,0 +1,21 @@
+#!/bin/sh
+
+ver_old=$2
+
+if [ "$(apk version -t "$ver_old" '1.8.9-r4')" = '<' ]; then
+ cat >&2 <<-EOF
+ *
+ * the "iptables" commands now point to xtables-nft-multi
+ * instead of xtables-legacy-multi. this means that by default,
+ * the kernel nftables backend is used instead of the iptables one.
+ *
+ * note that to keep working with your current loaded ruleset (if you want to
+ * make changes before rebooting, or save your rules), you have to install
+ * iptables-legacy. to save the rules, use iptables-legacy-save/ip6tables-legacy-save
+ * from that package (to where the rules are normally saved, IPTABLES_SAVE from
+ * /etc/conf.d/iptables / /etc/conf.d/ip6tables)
+ *
+ * because mixing backends is not supported, you should reboot your system.
+ *
+ EOF
+fi
diff --git a/main/iputils/APKBUILD b/main/iputils/APKBUILD
index a944d603b71..1526cd0ecb6 100644
--- a/main/iputils/APKBUILD
+++ b/main/iputils/APKBUILD
@@ -1,43 +1,80 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=iputils
-pkgver=20211215
+pkgver=20240117
pkgrel=0
-pkgdesc="IP Configuration Utilities (and Ping)"
-options="!check suid"
+pkgdesc="IP Configuration Utilities"
url="https://github.com/iputils/iputils/"
arch="all"
-license="BSD-3-Clause AND GPL-2.0-or-later AND MIT"
-makedepends="libcap-dev meson"
+license="BSD-3-Clause AND GPL-2.0-or-later"
replaces="bbsuid"
-source="$pkgname-$pkgver.tar.gz::https://github.com/iputils/iputils/archive/$pkgver.tar.gz"
+makedepends="
+ libcap-dev
+ meson
+ "
+subpackages="
+ iputils-arping
+ iputils-clockdiff
+ iputils-ping
+ iputils-tracepath
+ "
+source="iputils-$pkgver.tar.xz::https://github.com/iputils/iputils/releases/download/$pkgver/iputils-$pkgver.tar.xz"
+# checks need suid/setcap'd binaries
+# ping is suid
+options="suid !check"
build() {
abuild-meson \
+ -Db_lto=true \
-DNO_SETCAP_OR_SUID=true \
- -DBUILD_NINFOD=false \
- -DBUILD_RARPD=false \
- -DBUILD_RDISC=false \
-DBUILD_MANS=false \
-DUSE_IDN=false \
-DUSE_GETTEXT=false \
- "build"
- ninja -C "build"
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
- local name
- cd "$builddir"/build
+ depends="
+ iputils-arping=$pkgver-r$pkgrel
+ iputils-clockdiff=$pkgver-r$pkgrel
+ iputils-ping=$pkgver-r$pkgrel
+ iputils-tracepath=$pkgver-r$pkgrel
+ "
+
+ install -Dm4755 output/ping/ping "$pkgdir"/bin/ping
for name in arping clockdiff tracepath; do
- install -D -m755 $name "$pkgdir"/usr/sbin/${name##*/}
+ install -Dm755 output/$name "$pkgdir"/usr/sbin/$name
done
- install -D -m4755 ping/ping "$pkgdir"/bin/ping
-
ln -s tracepath "$pkgdir"/usr/sbin/tracepath6
ln -s ping "$pkgdir"/bin/ping6
}
+arping() {
+ pkgdesc="$pkgdesc (arping utility)"
+ amove usr/sbin/arping
+}
+
+clockdiff() {
+ pkgdesc="$pkgdesc (clockdiff utility)"
+ amove usr/sbin/clockdiff
+}
+
+ping() {
+ pkgdesc="$pkgdesc (ping utility)"
+ amove bin/ping*
+}
+
+tracepath() {
+ pkgdesc="$pkgdesc (tracepath utility)"
+ amove usr/sbin/tracepath*
+}
+
sha512sums="
-191062e51f7c8e8b38e3e4a96845adb77cd69f487d548c7cc578fad544443b4bc0dbe965d8f8e6fbda0a2f5b2fe2829789c05f873190c53d773245959298f6e9 iputils-20211215.tar.gz
+c45822c5641f194dc07cba919c13a4b7a79d050bb53957a894ebb6ccc1f71bac1f26489e13d18ef1ce235982f5fa1824e677f95037a0f5cce6bcb94be4c2e2de iputils-20240117.tar.xz
"
diff --git a/main/ipvsadm/APKBUILD b/main/ipvsadm/APKBUILD
index afba9e043ba..13a159c30da 100644
--- a/main/ipvsadm/APKBUILD
+++ b/main/ipvsadm/APKBUILD
@@ -2,16 +2,17 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=ipvsadm
pkgver=1.31
-pkgrel=0
+pkgrel=3
pkgdesc="The IP Virtual Server administration utility"
url="http://www.linuxvirtualserver.org/software/ipvs.html"
arch="all"
license="GPL-2.0-or-later"
makedepends="libnl3-dev popt-dev linux-headers"
-subpackages="$pkgname-doc"
+subpackages="$pkgname-doc $pkgname-openrc"
source="https://kernel.org/pub/linux/utils/kernel/ipvsadm/ipvsadm-$pkgver.tar.xz
$pkgname.initd
"
+options="!check"
build() {
make libs && make BUILD_ROOT="$pkgdir" \
diff --git a/main/irqbalance/APKBUILD b/main/irqbalance/APKBUILD
index 6763f5abf83..48092ccf76b 100644
--- a/main/irqbalance/APKBUILD
+++ b/main/irqbalance/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=irqbalance
-pkgver=1.9.0
+pkgver=1.9.4
pkgrel=0
pkgdesc="Daemon that distributes interrupts over the processors"
url="https://github.com/Irqbalance/irqbalance"
@@ -12,10 +12,8 @@ subpackages="$pkgname-doc $pkgname-openrc"
source="$pkgname-$pkgver.tar.gz::https://github.com/Irqbalance/irqbalance/archive/v$pkgver.tar.gz
irqbalance.confd
irqbalance.initd
- aarch64-sigsegv.patch
"
-
prepare() {
default_prepare
./autogen.sh
@@ -43,8 +41,7 @@ package() {
}
sha512sums="
-878977da5eff18e53bdceeaa4aca952f73ba8b03eb028cf176816af971ffc65f0b1f1bb3a68e3a2502491895cc2b9438652dc97d5696232bb2f64860109e9a24 irqbalance-1.9.0.tar.gz
+abdcac9dccabb18ae644b73dc2a8528c03279811c1f9182a5a5b0af43b30c5982d7bb14e79d4430b5d4f2cea8e17115e6038851c74de1ff3bdfc4e303392479a irqbalance-1.9.4.tar.gz
90e7ed187b4dccd6f6c4383ba54d6e1aed1645240e44aaf02db1b70b56594b1a828644d671e6db91212417981b1d5e53d1ecfd4b366496dbcb484d1064d7d24c irqbalance.confd
-ba4933d35d17c0eaec8026305411605cadfddaba28e5dbbfb55f8d4311feb04db8dc8853a3e63be55ee8ab4b0356658b2f3eba60fa0b4e59effdd1db94a255c2 irqbalance.initd
-14536d410a2d9606ee7af3af55f17f381d3aab4badd5e0ec556e244bef857a1ad94800e6ae2788b570cdd51caf9736ff30b46c400417b39ce5e18372222e5413 aarch64-sigsegv.patch
+72cfbe333253837481aca9b47d5af47a91f83c554df9ed6d958cd3099de403a23d99528c2d245c1be730b37678a127f57bc61a8d497f51ad4abb78ed81854185 irqbalance.initd
"
diff --git a/main/irqbalance/aarch64-sigsegv.patch b/main/irqbalance/aarch64-sigsegv.patch
deleted file mode 100644
index 36bb675c2fa..00000000000
--- a/main/irqbalance/aarch64-sigsegv.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/procinterrupts.c
-+++ b/procinterrupts.c
-@@ -178,7 +178,7 @@
- }
-
- #ifdef AARCH64
-- if (strlen(savedptr) > 0) {
-+ if (savedptr && strlen(savedptr) > 0) {
- snprintf(irq_fullname, PATH_MAX, "%s %s", last_token, savedptr);
- tmp = strchr(irq_fullname, '\n');
- if (tmp)
diff --git a/main/irqbalance/irqbalance.initd b/main/irqbalance/irqbalance.initd
index 51fa66c1502..9c40fd92388 100644
--- a/main/irqbalance/irqbalance.initd
+++ b/main/irqbalance/irqbalance.initd
@@ -3,28 +3,17 @@
# Distributed under the terms of the GNU General Public License, v2 or later
# $Header: /var/cvsroot/gentoo-x86/sys-apps/irqbalance/files/irqbalance.init,v 1.5 2012/01/07 22:04:49 vapier Exp $
+command="/usr/sbin/irqbalance"
+command_args="--foreground $IRQBALANCE_OPTS"
+pidfile="/run/$RC_SVCNAME.pid"
+command_background=true
+
depends() {
need localmount
- after hwdrivers modules
-}
-
-ssd() {
- start-stop-daemon --exec /usr/sbin/irqbalance "$@"
+ after bootmisc hwdrivers modules
}
start_pre() {
checkpath --quiet --directory --mode 0755 \
- --owner root:root /var/run/irqbalance
-}
-
-start() {
- ebegin "Starting irqbalance"
- ssd --start -- ${IRQBALANCE_OPTS}
- eend $?
-}
-
-stop() {
- ebegin "Stopping irqbalance"
- ssd --stop
- eend $?
+ --owner root:root /run/irqbalance
}
diff --git a/main/irssi/APKBUILD b/main/irssi/APKBUILD
deleted file mode 100644
index 2e06ccd0a75..00000000000
--- a/main/irssi/APKBUILD
+++ /dev/null
@@ -1,104 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=irssi
-pkgver=1.4.1
-pkgrel=0
-pkgdesc="Modular textUI IRC client with IPv6 support"
-url="https://irssi.org/"
-arch="all"
-license="GPL-2.0-or-later WITH OpenSSL-Exception"
-makedepends="glib-dev openssl1.1-compat-dev ncurses-dev perl-dev automake autoconf libtool libotr-dev"
-subpackages="$pkgname-doc $pkgname-dev $pkgname-proxy $pkgname-perl $pkgname-otr"
-source="https://github.com/irssi/irssi/releases/download/$pkgver/irssi-$pkgver.tar.xz
- "
-
-# secfixes:
-# 1.2.2-r0:
-# - CVE-2019-15717
-# 1.2.1-r0:
-# - CVE-2019-13045
-# 1.1.2-r0:
-# - CVE-2019-5882
-# 1.0.3-r0:
-# - CVE-2017-9468
-# - CVE-2017-9469
-# 1.0.4-r0:
-# - CVE-2017-10965
-# - CVE-2017-10966
-# 1.0.5-r0:
-# - CVE-2017-15721
-# - CVE-2017-15722
-# - CVE-2017-15723
-# - CVE-2017-15227
-# - CVE-2017-15228
-# 1.0.6-r0:
-# - CVE-2018-5205
-# - CVE-2018-5206
-# - CVE-2018-5207
-# - CVE-2018-5208
-# 1.1.1-r0:
-# - CVE-2018-7050
-# - CVE-2018-7051
-# - CVE-2018-7052
-# - CVE-2018-7053
-# - CVE-2018-7054
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --with-perl=module \
- --with-perl-lib=vendor \
- --with-proxy \
- --enable-true-color \
- --with-otr=yes
- make
-}
-
-check() {
- ./src/fe-text/irssi -v
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- find "$pkgdir" -name perllocal.pod -delete
-}
-
-perl() {
- depends="$pkgname perl"
- pkgdesc="Irssi perl support and scripts"
- mkdir -p "$subpkgdir"/usr/share/irssi
- mv "$pkgdir"/usr/share/irssi/scripts \
- "$subpkgdir"/usr/share/irssi/
- mkdir -p "$subpkgdir"/usr/lib/irssi/modules
- mv "$pkgdir"/usr/lib/irssi/modules/libfe_perl.* \
- "$pkgdir"/usr/lib/irssi/modules/libperl_core.* \
- "$subpkgdir"/usr/lib/irssi/modules/
- mv "$pkgdir"/usr/lib/perl5 "$subpkgdir"/usr/lib/
- #need write permission when stripping
- for i in TextUI/TextUI.so Irssi.so Irc/Irc.so UI/UI.so; do
- chmod +w "$subpkgdir"/usr/lib/perl5/vendor_perl/auto/Irssi/$1
- done
-}
-
-proxy() {
- depends="$pkgname"
- pkgdesc="Irssi module for enabling bouncer-like functionality"
- mkdir -p "$subpkgdir"/usr/lib/irssi/modules
- mv "$pkgdir"/usr/lib/irssi/modules/libirc_proxy.* "$subpkgdir"/usr/lib/irssi/modules/
-}
-
-otr() {
- depends="$pkgname"
- pkgdesc="Irssi module for enabling OTR functionality"
- mkdir -p "$subpkgdir"/usr/lib/irssi/modules
- mv "$pkgdir"/usr/lib/irssi/modules/libotr_core.* "$subpkgdir"/usr/lib/irssi/modules/
- mkdir -p "$subpkgdir"/usr/share/irssi/help
- mv "$pkgdir"/usr/share/irssi/help/otr "$subpkgdir"/usr/share/irssi/help/
-}
-
-sha512sums="
-e0c53c456bd92af60e8845dba6d338bc0f880639ba19118c22324a5044101a16f7a387377f2a15aa74364f75fe9ed0d5fac0f353c3ea2158190f76ed89dfdd22 irssi-1.4.1.tar.xz
-"
diff --git a/main/iscsi-scst/APKBUILD b/main/iscsi-scst/APKBUILD
index 9d9f9a82a69..42b52a5c051 100644
--- a/main/iscsi-scst/APKBUILD
+++ b/main/iscsi-scst/APKBUILD
@@ -2,18 +2,20 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=iscsi-scst
pkgver=2.2.1
-pkgrel=3
+pkgrel=6
pkgdesc="ISCSI target for SCST - userspace tools"
-url="http://scst.sourceforge.net/"
+url="https://scst.sourceforge.net/"
arch="all"
license="GPL-2.0-only"
makedepends="linux-headers bash"
+subpackages="$pkgname-openrc"
source="https://downloads.sourceforge.net/scst/iscsi-scst-$pkgver.tar.bz2
https://downloads.sourceforge.net/scst/scst-$pkgver.tar.bz2
$pkgname.initd
$pkgname.confd
scst.conf
"
+options="!check"
prepare() {
cp Makefile_user_space_only Makefile
diff --git a/main/isl/APKBUILD b/main/isl25/APKBUILD
index d94b7f22700..1603867d323 100644
--- a/main/isl/APKBUILD
+++ b/main/isl25/APKBUILD
@@ -1,8 +1,14 @@
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
-pkgname=isl
-pkgver=0.18
-pkgrel=1
+
+# this package needs special care since it is a part of the toolchain.
+# we need to be able to have the old version installed in parallel with
+# a new with ABI breaking change. That is why we have the version
+# as a part of the pkgname.
+
+pkgname=isl25
+pkgver=0.25
+pkgrel=2
pkgdesc="An Integer Set Library for the Polyhedral Model"
url="http://isl.gforge.inria.fr/"
arch="all"
@@ -10,14 +16,12 @@ license="MIT"
depends_dev="gmp-dev"
makedepends_host="$depends_dev"
makedepends="$makedepends_host"
-replaces="cloog"
-subpackages=""
source="https://libisl.sourceforge.io/isl-$pkgver.tar.bz2"
-builddir="$srcdir"/$pkgname-$pkgver
+builddir="$srcdir"/isl-$pkgver
prepare() {
- default_prepare
+ default_prepare
update_config_sub
}
@@ -29,7 +33,7 @@ build() {
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--localstatedir=/var \
- --with-sysroot=${CBUILDROOT}
+ --with-sysroot=$CBUILDROOT
make
}
@@ -38,8 +42,9 @@ check() {
}
package() {
+ replaces="isl24" # they have the same soname
make DESTDIR="$pkgdir" INSTALL="install -D" install
- # isl-dev is provided by isl22
+ # isl-dev is provided by isl26
rm -rf "$pkgdir"/usr/include \
"$pkgdir"/usr/lib/pkgconfig \
"$pkgdir"/usr/lib/*.a \
@@ -47,4 +52,6 @@ package() {
"$pkgdir"/usr/lib/*.py
}
-sha512sums="85d0b40f4dbf14cb99d17aa07048cdcab2dc3eb527d2fbb1e84c41b2de5f351025370e57448b63b2b8a8cf8a0843a089c3263f9baee1542d5c2e1cb37ed39d94 isl-0.18.tar.bz2"
+sha512sums="
+d309388d7dc1c861fddf74dbcc0f15b0166b166d0ed694473445ec47eb7d3dfab96412554016b3e06292f01967441546783ab329829dc4df4b9813716e2ef9ed isl-0.25.tar.bz2
+"
diff --git a/main/isl22/APKBUILD b/main/isl26/APKBUILD
index a1327d7f89b..8b6a40efcb6 100644
--- a/main/isl22/APKBUILD
+++ b/main/isl26/APKBUILD
@@ -6,9 +6,9 @@
# a new with ABI breaking change. That is why we have the version
# as a part of the pkgname.
-pkgname=isl22
-pkgver=0.22
-pkgrel=0
+pkgname=isl26
+pkgver=0.26
+pkgrel=1
pkgdesc="An Integer Set Library for the Polyhedral Model"
url="http://isl.gforge.inria.fr/"
arch="all"
@@ -21,11 +21,6 @@ source="https://libisl.sourceforge.io/isl-$pkgver.tar.bz2"
builddir="$srcdir"/isl-$pkgver
-prepare() {
- default_prepare
- update_config_sub
-}
-
build() {
./configure \
--build=$CBUILD \
@@ -34,7 +29,7 @@ build() {
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--localstatedir=/var \
- --with-sysroot=${CBUILDROOT}
+ --with-sysroot=$CBUILDROOT
make
}
@@ -43,6 +38,7 @@ check() {
}
package() {
+ replaces="isl24 isl25" # they have the same soname
make DESTDIR="$pkgdir" INSTALL="install -D" install
}
@@ -53,4 +49,6 @@ _dev() {
"$subpkgdir"/usr/share/gdb/python/auto-load/usr/lib/
}
-sha512sums="fc2c9796979610dd51143dcefe4f5c989c4354571cc5a1fcc6b932fd41f42a54f6b43adfd289af61be7bd06f3a523fa6a7d7ee56680e32d8036beb4c188fa668 isl-0.22.tar.bz2"
+sha512sums="
+492deba2cbfc693efb41621861a0679390becf2777e32111aceef8db1d38d772385dfd83cee14a41c930f9904549334e4d6dc2c5fce0c69e0bef9c8cf031d6b5 isl-0.26.tar.bz2
+"
diff --git a/main/iso-codes/APKBUILD b/main/iso-codes/APKBUILD
index 6ab0f0dc3cf..c06de110e5e 100644
--- a/main/iso-codes/APKBUILD
+++ b/main/iso-codes/APKBUILD
@@ -1,14 +1,16 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=iso-codes
-pkgver=4.10.0
+pkgver=4.16.0
pkgrel=0
pkgdesc="ISO codes and their translations"
url="https://salsa.debian.org/iso-codes-team/iso-codes"
arch="noarch"
license="LGPL-2.1-or-later"
-subpackages="$pkgname-lang $pkgname-dev"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
makedepends="python3 gettext"
-source="https://deb.debian.org/debian/pool/main/i/iso-codes/iso-codes_$pkgver.orig.tar.xz"
+subpackages="$pkgname-lang $pkgname-dev"
+source="https://salsa.debian.org/iso-codes-team/iso-codes/-/archive/v$pkgver/iso-codes-v$pkgver.tar.bz2"
+builddir="$srcdir/iso-codes-v$pkgver"
build() {
./configure \
@@ -19,7 +21,7 @@ build() {
}
check() {
- make -C "$builddir" check
+ make check
}
package() {
@@ -27,5 +29,5 @@ package() {
}
sha512sums="
-0b65288b2a1ffe2db68fe0784f2f97b1a1139c592a4c8938df2c6aa225c275ce2421e39e6bad47794a5371c1667ab88daac3f7032e60b4166f93e2c70335ba04 iso-codes_4.10.0.orig.tar.xz
+9d8b9243f13886809f0bbbde47a568f00e14c82ce8f0c79fdf656cdfbd45afa67aca23d501fa79a982d535b97bb32c6ad3d3e44343c13aae61c4917144690cb5 iso-codes-v4.16.0.tar.bz2
"
diff --git a/main/iucode-tool/APKBUILD b/main/iucode-tool/APKBUILD
index 62743e3a538..eab4aa20e67 100644
--- a/main/iucode-tool/APKBUILD
+++ b/main/iucode-tool/APKBUILD
@@ -1,18 +1,17 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=iucode-tool
pkgver=2.3.1
-pkgrel=0
+pkgrel=3
pkgdesc="manipulate microcode update collections for Intel i686 and X86-64"
url="https://gitlab.com/iucode-tool/iucode-tool"
arch="x86 x86_64"
-license="GPLv2+"
+license="GPL-2.0-or-later"
makedepends="autoconf automake libtool argp-standalone"
subpackages="$pkgname-doc"
source="https://gitlab.com/iucode-tool/iucode-tool/-/archive/v$pkgver/iucode-tool-v$pkgver.tar.gz"
builddir="$srcdir/iucode-tool-v$pkgver"
build() {
- cd "$builddir"
./autogen.sh
./configure \
--build=$CBUILD \
@@ -25,12 +24,10 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make install DESTDIR="$pkgdir"
}
diff --git a/main/ivykis/APKBUILD b/main/ivykis/APKBUILD
index 051b95761ba..e328dd17383 100644
--- a/main/ivykis/APKBUILD
+++ b/main/ivykis/APKBUILD
@@ -1,15 +1,15 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=ivykis
-pkgver=0.42.4
+pkgver=0.43
pkgrel=0
pkgdesc="Library for asynchronous I/O readiness notification"
-url="http://libivykis.sourceforge.net"
+url="https://github.com/buytenh/ivykis"
arch="all"
-license="LGPL-2.0-or-later"
+license="LGPL-2.1-or-later"
makedepends="automake autoconf libtool"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
-source="http://downloads.sourceforge.net/project/libivykis/$pkgver/ivykis-$pkgver.tar.gz"
+source="https://github.com/buytenh/ivykis/archive/v$pkgver/ivykis-$pkgver.tar.gz"
prepare() {
default_prepare
@@ -32,4 +32,6 @@ package() {
make install DESTDIR="$pkgdir"
}
-sha512sums="4a9fc973e97b054e365cb5028024e1d988227d3a871ab2983569b99d29201d9cdbf9e05e87d2f880281a72a6e6dad10212585e7d276c107bb667ab94644efdbd ivykis-0.42.4.tar.gz"
+sha512sums="
+75bf3878afb76f97ef5327005f58e97d13ba9a67eb5230c25b4a0ec3332f8e3e027f93fc5758554e056c3a00bcfb776862a0263bf251c97cc654b8d0570dafe9 ivykis-0.43.tar.gz
+"
diff --git a/main/iw/APKBUILD b/main/iw/APKBUILD
index e70d416818a..688a4d8ca9d 100644
--- a/main/iw/APKBUILD
+++ b/main/iw/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=iw
-pkgver=5.19
+pkgver=6.7
pkgrel=0
pkgdesc="nl80211 based CLI configuration utility for wireless devices"
url="https://wireless.kernel.org/en/users/Documentation/iw"
@@ -20,5 +20,5 @@ package() {
}
sha512sums="
-ff5c23543806c91eda27c91da923737c74cbccd6acc55f1f45114338f518cd959ca292c9255fd75b91dc127ed016eb235dd97af319e30631578eba6cb0823c6c iw-5.19.tar.xz
+7370d3b55ce43691ba84913be334c04dcdf9aa44e9556e4214d8016ddf9733b2c555ebdfbdfc814d2eba7da68501503d267ad6353b14f87b81f064f629afbef5 iw-6.7.tar.xz
"
diff --git a/main/jack/APKBUILD b/main/jack/APKBUILD
index 0acfde78961..316bc77abec 100644
--- a/main/jack/APKBUILD
+++ b/main/jack/APKBUILD
@@ -1,17 +1,28 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=jack
-pkgver=1.9.20
-pkgrel=0
+pkgver=1.9.22
+pkgrel=4
pkgdesc="The Jack Audio Connection Kit"
-url="https://www.jackaudio.org/"
+url="https://jackaudio.org/"
arch="all"
-license="GPL-2.0 GPL-2.0-or-later LGPL-2.0-or-later"
-makedepends="$depends_dev alsa-lib-dev dbus-dev expat-dev libsamplerate-dev
- libsndfile-dev ncurses-dev readline-dev python3 linux-headers"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-dbus $pkgname-example-clients:_clients"
+license="GPL-2.0-or-later"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ alsa-lib-dev
+ dbus-dev
+ expat-dev
+ libsamplerate-dev
+ libsndfile-dev
+ linux-headers
+ ncurses-dev
+ python3
+ readline-dev
+ "
+subpackages="$pkgname-dev $pkgname-doc $pkgname-dbus"
source="https://github.com/jackaudio/jack2/archive/v$pkgver/jack2-v$pkgver.tar.gz
fix-execinfo.patch
increase-api-version.patch
+ importlib.patch
"
builddir="$srcdir/jack2-$pkgver"
options="!check" # no real tests provided
@@ -34,19 +45,14 @@ package() {
dbus() {
pkgdesc="Jack D-Bus launcher"
- mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/usr/share
- mv "$pkgdir"/usr/bin/jackdbus "$subpkgdir"/usr/bin/
- mv "$pkgdir"/usr/share/dbus* "$subpkgdir"/usr/share/
-}
-_clients() {
- pkgdesc="Example clients that use Jack"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/*_* "$subpkgdir"/usr/bin/
+ amove usr/bin/jackdbus
+ amove usr/share/dbus*
}
sha512sums="
-e4bffea5fadcf6fc8a40bb88b6f7266bc42d8fa743d5e00be786df00b19b9e02e42ce6cb5db3a9523eb3b2bc319234ac33c00b2c1e2ac7d1c875890d55da30b4 jack2-v1.9.20.tar.gz
+d93cb2bcc57b72b6815eed143de1092d14fe22542ae9a1f8480d9ed5f44b59c50f81279d18bdd84ff6276ddd71ca1aa64a1e46d61199a5eda0d873a356194ab4 jack2-v1.9.22.tar.gz
b5abec7e67485d1c13f399b5961539177dd35d21c5dd95e0aa767adb0f5b1e588e9ca2f9b29cc4d66fc039311ff7eacc4cf21f6700ef0a2c8de99b63cb00f84d fix-execinfo.patch
-d187d6a5e4e5c748d4f5eccf66a76249a4eb7135c22e32ca40eb2ea806ec6877074d8ba91c9cc106ae8e62ada6afda248fa48ebb147c720576ab092904993f51 increase-api-version.patch
+1ee0159ea0f75f964baa167fe13031fe82e04b31a1b14122c12161d103e1a3205061fc019bcd978f47eed6efc8ea6ee96188c0eb795e3d83f34481e193086fbe increase-api-version.patch
+94fac61b17c3d4eef2bd29a86f6bdc042c0b8e770fc11abef95fe2ede3b0f3582e3a9ea9583e66ddd38ba8c77e04c6f2a13ae83224a8f3fe19eac994de37b800 importlib.patch
"
diff --git a/main/jack/importlib.patch b/main/jack/importlib.patch
new file mode 100644
index 00000000000..6a8f92a5abc
--- /dev/null
+++ b/main/jack/importlib.patch
@@ -0,0 +1,22 @@
+diff --git a/waflib/Context.py b/waflib/Context.py
+index 761b521..d4406d8 100644
+--- a/waflib/Context.py
++++ b/waflib/Context.py
+@@ -6,7 +6,7 @@
+ Classes and functions enabling the command system
+ """
+
+-import os, re, imp, sys
++import os, re, types, sys
+ from waflib import Utils, Errors, Logs
+ import waflib.Node
+
+@@ -660,7 +660,7 @@ def load_module(path, encoding=None):
+ except KeyError:
+ pass
+
+- module = imp.new_module(WSCRIPT_FILE)
++ module = types.ModuleType(WSCRIPT_FILE)
+ try:
+ code = Utils.readf(path, m='r', encoding=encoding)
+ except EnvironmentError:
diff --git a/main/jack/increase-api-version.patch b/main/jack/increase-api-version.patch
index 78b07efe553..5968441fd07 100644
--- a/main/jack/increase-api-version.patch
+++ b/main/jack/increase-api-version.patch
@@ -7,8 +7,8 @@ index e0d32c8d..2c0a7123 100644
+++ b/wscript
@@ -13,7 +13,7 @@ from waflib.Build import BuildContext, CleanContext, InstallContext, UninstallCo
- VERSION='1.9.20'
- APPNAME='jack'
+ VERSION = '1.9.20'
+ APPNAME = 'jack'
-JACK_API_VERSION = '0.1.0'
+JACK_API_VERSION = '0.999.0'
diff --git a/main/jansson/APKBUILD b/main/jansson/APKBUILD
index eb2bb1a6a62..5fc58b0bc95 100644
--- a/main/jansson/APKBUILD
+++ b/main/jansson/APKBUILD
@@ -1,13 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=jansson
pkgver=2.14
-pkgrel=0
+pkgrel=4
pkgdesc="lightweight JSON library"
url="http://www.digip.org/jansson/"
arch="all"
license="MIT"
checkdepends="bash"
-subpackages="$pkgname-dev"
+subpackages="$pkgname-static $pkgname-dev"
source="https://github.com/akheron/jansson/releases/download/v$pkgver/jansson-$pkgver.tar.gz"
# secfixes:
@@ -22,8 +22,7 @@ build() {
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
- --localstatedir=/var \
- --disable-static
+ --localstatedir=/var
make
}
diff --git a/main/jbig2dec/APKBUILD b/main/jbig2dec/APKBUILD
index e18ad7817e3..abc924b9b76 100644
--- a/main/jbig2dec/APKBUILD
+++ b/main/jbig2dec/APKBUILD
@@ -1,17 +1,16 @@
# Contributor: Michael Zhou <zhoumichaely@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=jbig2dec
-pkgver=0.19
-_gsver="gs9531"
+pkgver=0.20
pkgrel=0
pkgdesc="JBIG2 image compression format decoder"
options="!check" # Tests require python2
url="https://jbig2dec.com/"
arch="all"
-license="GPL-2.0-or-later"
+license="AGPL-3.0-or-later"
makedepends="autoconf automake libtool"
subpackages="$pkgname-dev $pkgname-doc"
-source="https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/$_gsver/jbig2dec-$pkgver.tar.gz"
+source="https://github.com/ArtifexSoftware/jbig2dec/releases/download/$pkgver/jbig2dec-$pkgver.tar.gz"
# secfixes:
# 0.18-r0:
@@ -39,4 +38,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="0d3ec8123b446b5b74846b189004c188e82cdf7b1c7ec3e02f98892aaa249fba0b0fe7f1db7036f2571b0ef2a5df22d1997d3d3f5479c9bef7851bf114134737 jbig2dec-0.19.tar.gz"
+sha512sums="
+74d40b4d5b21dcb2b6ed15de84e9ef292774783547d0a36c7185740f3fe34341665b4aa756369d27d158404f15f36f3edd2fd1a8187a196d08c9b06ab3d04101 jbig2dec-0.20.tar.gz
+"
diff --git a/main/jemalloc/APKBUILD b/main/jemalloc/APKBUILD
new file mode 100644
index 00000000000..41c2afe053d
--- /dev/null
+++ b/main/jemalloc/APKBUILD
@@ -0,0 +1,43 @@
+# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
+# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
+# Contributor: Duncan Bellamy <dunk@denkimushi.com>
+pkgname=jemalloc
+pkgver=5.3.0
+pkgrel=4
+pkgdesc="general purpose malloc(3) implementation that emphasizes fragmentation avoidance and scalable concurrency support"
+url="http://jemalloc.net"
+arch="all"
+license="BSD-2-Clause"
+subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
+source="https://github.com/jemalloc/jemalloc/releases/download/$pkgver/jemalloc-$pkgver.tar.bz2"
+
+build() {
+ local _pgs
+ case "$CARCH" in
+ x86|x86_64) _pgs=12 ;;
+ ppc64le) export CPPFLAGS="$CPPFLAGS -maltivec -mabi=altivec" && _pgs=16 ;;
+ *) _pgs=16 ;;
+ esac
+
+ echo "$pkgver" > VERSION
+ ./configure \
+ --enable-xmalloc \
+ --prefix=/usr \
+ --localstatedir=/var \
+ --sysconfdir=/etc \
+ --with-lg-page="$_pgs" \
+ --with-lg-hugepage=21
+ make all dist
+}
+
+check() {
+ make tests
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+22907bb052096e2caffb6e4e23548aecc5cc9283dce476896a2b1127eee64170e3562fa2e7db9571298814a7a2c7df6e8d1fbe152bd3f3b0c1abec22a2de34b1 jemalloc-5.3.0.tar.bz2
+"
diff --git a/main/jfsutils/APKBUILD b/main/jfsutils/APKBUILD
deleted file mode 100644
index 08eb5de3151..00000000000
--- a/main/jfsutils/APKBUILD
+++ /dev/null
@@ -1,35 +0,0 @@
-# Contributor: Teran McKinney <sega01@go-beyond.org>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=jfsutils
-pkgver=1.1.15
-pkgrel=3
-pkgdesc="JFS filesystem utilities"
-url="http://jfs.sourceforge.net"
-arch="all"
-license="GPL-3.0-or-later"
-makedepends="e2fsprogs-dev" # is pulled in externally.
-subpackages="$pkgname-doc"
-source="http://jfs.sourceforge.net/project/pub/jfsutils-$pkgver.tar.gz
- musl-fix-includes.patch
- jfsutils-include-sysmacros.patch
- missing-stdinth.patch
- gcc-10.patch
- "
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --mandir=/usr/share/man
- make
-}
-
-package() {
- make -j1 LDCONFIG=: DESTDIR="$pkgdir" install
-}
-
-sha512sums="fa8ba7f4997471da3e6ea7239564f3395046222cfbb2b10e37b24ad0bd107b7eadbb51ce328d89d193034360b4035ca5e0e5b0b416a74483d7a2c0a2b9c65858 jfsutils-1.1.15.tar.gz
-fb0d7348e2e13a6a9c3a987d161e0cf05363649515366ef49a45e3580b8f6135fce8465b99ff8a351231d970371c00bea6ceb9edb1d0f24da20d261b06ec85bd musl-fix-includes.patch
-dd634072847158520ae1eb1b624884cd4fdf6847c468335d8cb784f82f0fa09814c3756014f373b19fa3a5d19a95128964c2b6a12aac7ea6da6b7714646765d4 jfsutils-include-sysmacros.patch
-a8e2332f2dec37affa8404b31e7e68399d815d450422ad342243c51d117e4d7ef4aaa0e30d1389380a81ed076a7ef1e1d41fcf260fa05ce4d823aa779628982d missing-stdinth.patch
-62e1c8c13864e95dd0ef586f98b5d6c7e9b254eb9a1a78faabcc35da187c62abbaaf08da0926203827b10c3baa419523cf2fb55eed059ccd4abfb12acc1b6fb4 gcc-10.patch"
diff --git a/main/jfsutils/gcc-10.patch b/main/jfsutils/gcc-10.patch
deleted file mode 100644
index b758adb9556..00000000000
--- a/main/jfsutils/gcc-10.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-Fix building with GCC 10
-
-Origin: https://sources.debian.org/patches/jfsutils/1.1.15-5/gcc10_fix-1.patch/
-
---- jfsutils-1.1.15.old/fscklog/display.c
-+++ jfsutils-1.1.15.new/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.old/libfs/logredo.c
-+++ jfsutils-1.1.15.new/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/main/jfsutils/jfsutils-include-sysmacros.patch b/main/jfsutils/jfsutils-include-sysmacros.patch
deleted file mode 100644
index e1b87f89b8a..00000000000
--- a/main/jfsutils/jfsutils-include-sysmacros.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/libfs/devices.c
-+++ b/libfs/devices.c
-@@ -38,6 +38,7 @@
- #endif
-
- #include <sys/types.h>
-+#include <sys/sysmacros.h>
- #include <sys/stat.h>
- #include <sys/ioctl.h>
- #if defined(__DragonFly__)
diff --git a/main/jfsutils/missing-stdinth.patch b/main/jfsutils/missing-stdinth.patch
deleted file mode 100644
index 06a74bf32e1..00000000000
--- a/main/jfsutils/missing-stdinth.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- jfsutils-1.1.15/fscklog/extract.c.orig
-+++ jfsutils-1.1.15/fscklog/extract.c
-@@ -28,6 +28,7 @@
- #include <stdio.h>
- #include <string.h>
- #include <unistd.h>
-+#include <stdint.h>
-
- #include "devices.h"
- #include "diskmap.h"
-
diff --git a/main/jfsutils/musl-fix-includes.patch b/main/jfsutils/musl-fix-includes.patch
deleted file mode 100644
index 33ba55d7959..00000000000
--- a/main/jfsutils/musl-fix-includes.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- jfsutils-1.1.15.orig/libfs/fssubs.c
-+++ jfsutils-1.1.15/libfs/fssubs.c
-@@ -24,6 +24,7 @@
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
-+#include <paths.h>
-
- #if HAVE_MNTENT_H
- #include <mntent.h>
-@@ -31,7 +32,6 @@
- #endif
-
- #if HAVE_GETMNTINFO
--#include <paths.h>
- #include <sys/param.h>
- #include <sys/mount.h>
- #endif
diff --git a/main/jitterentropy-library/01-disable-gcc-optimisation.patch b/main/jitterentropy-library/01-disable-gcc-optimisation.patch
index 2a198073853..cc129c58be8 100644
--- a/main/jitterentropy-library/01-disable-gcc-optimisation.patch
+++ b/main/jitterentropy-library/01-disable-gcc-optimisation.patch
@@ -14,13 +14,13 @@ https://github.com/smuellerDD/jitterentropy-library/issues/55
diff -aur a/Makefile b/Makefile
--- a/Makefile
+++ b/Makefile
-@@ -3,7 +3,8 @@
- CC ?= gcc
+@@ -4,7 +4,8 @@
#Hardening
+ ENABLE_STACK_PROTECTOR ?= 1
CFLAGS ?= -fwrapv --param ssp-buffer-size=4 -fvisibility=hidden -fPIE -Wcast-align -Wmissing-field-initializers -Wshadow -Wswitch-enum
-CFLAGS +=-Wextra -Wall -pedantic -fPIC -O0 -fwrapv -Wconversion
+CFLAGS :=-Wextra -Wall -pedantic -fPIC -O0 -fwrapv -Wconversion
+CPPFLAGS :=
LDFLAGS +=-Wl,-z,relro,-z,now -lpthread
- GCCVERSIONFORMAT := $(shell echo `$(CC) -dumpversion | sed 's/\./\n/g' | wc -l`)
+ # Enable internal timer support
diff --git a/main/jitterentropy-library/02-fix-s390x-stack-corruption.patch b/main/jitterentropy-library/02-fix-s390x-stack-corruption.patch
new file mode 100644
index 00000000000..2f5cfe809bf
--- /dev/null
+++ b/main/jitterentropy-library/02-fix-s390x-stack-corruption.patch
@@ -0,0 +1,66 @@
+From: Dermot Bradley <dermot_bradley@yahoo.com>
+Date: Mon, 10 Apr 2023 14:25 +0100
+
+Output size of the STCKE command on s390x is 16 bytes, compared to 8
+bytes of the STCK command. This leads to a stack corruption in
+jent_get_nstime() on an s390x system.
+
+Upstream PR #95, already merged in master.
+
+---
+
+diff -aur a/jitterentropy-base-user.h b/jitterentropy-base-user.h
+--- a/jitterentropy-base-user.h
++++ b/jitterentropy-base-user.h
+@@ -129,13 +129,46 @@
+
+ static inline void jent_get_nstime(uint64_t *out)
+ {
+- uint64_t clk;
++ /*
++ * This is MVS+STCK code! Enable it with -S in the compiler.
++ *
++ * uint64_t clk;
++ * __asm__ volatile("stck %0" : "=m" (clk) : : "cc");
++ * *out = (uint64_t)(clk);
++ */
++
++ /*
++ * This is GCC+STCKE code. STCKE command and data format:
++ * z/Architecture - Principles of Operation
++ * http://publibz.boulder.ibm.com/epubs/pdf/dz9zr007.pdf
++ *
++ * The current value of bits 0-103 of the TOD clock is stored in bytes
++ * 1-13 of the sixteen-byte output:
++ *
++ * bits 0-7: zeros (reserved for future extention)
++ * bits 8-111: TOD Clock value
++ * bits 112-127: Programmable Field
++ *
++ * Output bit 59 (TOD-Clock bit 51) effectively increments every
++ * microsecond. Bits 60 to 111 of STCKE output are fractions of
++ * a miscrosecond: bit 59 is 1.0us, bit 60 is .5us, bit 61 is .25us,
++ * bit 62 is .125us, bit 63 is 62.5ns, etc.
++ *
++ * Some of these bits can be implemented, some not. 64 bits of
++ * the TOD clock are implemented usually nowadays, these are
++ * bits 8-71 of the output.
++ *
++ * The stepping value of TOD-clock bit position 63, if implemented,
++ * is 2^-12 microseconds, or approximately 244 picoseconds. This value
++ * is called a clock unit.
++ */
++
++ uint8_t clk[16];
+
+- /* this is MVS code! enable with -S in the compiler */
+- /*__asm__ volatile("stck %0" : "=m" (clk) : : "cc"); */
+- /* this is gcc */
+ asm volatile("stcke %0" : "=Q" (clk) : : "cc");
+- *out = (uint64_t)(clk);
++
++ /* s390x is big-endian, so just perfom a byte-by-byte copy */
++ *out = *(uint64_t *)(clk + 1);
+ }
+
+ #elif defined(__powerpc)
diff --git a/main/jitterentropy-library/03-fix-dangling-pointer.patch b/main/jitterentropy-library/03-fix-dangling-pointer.patch
new file mode 100644
index 00000000000..81b631e8ed7
--- /dev/null
+++ b/main/jitterentropy-library/03-fix-dangling-pointer.patch
@@ -0,0 +1,25 @@
+From: Dermot Bradley <dermot_bradley@yahoo.com>
+Date: Mon, 10 Apr 2023 14:25 +0100
+
+On a failure of jent_read_entropy() where the entropy collector will
+be reallocated, jent_entropy_collector_free() is used to release
+*ec, but *ec is not set to NULL. If a failure occurs in the
+following call to jent_entropy_collector_ex() then the function will
+return with a dangling pointer remaining in *ec. Set *ec to NULL
+after freeing to prevent this.
+
+Upstream PR #97, already merged in master.
+
+---
+
+diff -aur a/src/jitterentropy-base.c b/src/jitterentropy-base.c
+--- a/src/jitterentropy-base.c
++++ b/src/jitterentropy-base.c
+@@ -308,6 +308,7 @@
+ * memory size
+ */
+ jent_entropy_collector_free(*ec);
++ *ec = NULL;
+
+ /* Perform new health test with updated OSR */
+ if (jent_entropy_init_ex(osr, flags))
diff --git a/main/jitterentropy-library/04-fix-memory-leak.patch b/main/jitterentropy-library/04-fix-memory-leak.patch
new file mode 100644
index 00000000000..dfa790d95ad
--- /dev/null
+++ b/main/jitterentropy-library/04-fix-memory-leak.patch
@@ -0,0 +1,27 @@
+From: Dermot Bradley <dermot_bradley@yahoo.com>
+Date: Mon, 10 Apr 2023 14:25 +0100
+
+In the error cleanup block of jent_entropy_collector_alloc_internal(),
+the hash_state should also be zeroed and freed.
+
+Conflicting flags of JENT_DISABLE_INTERNAL_TIMER and
+JENT_FORCE_INTERNAL_TIMER will cause a EHEALTH return from
+jent_notime_enable() and jump to the error cleanup block after
+hash_state has been allocated.
+
+Upstream PR #98, already merged in master.
+
+---
+
+diff -aur a/src/jitterentropy-base.c b/src/jitterentropy-base.c
+--- a/src/jitterentropy-base.c
++++ b/src/jitterentropy-base.c
+@@ -486,6 +486,8 @@
+ err:
+ if (entropy_collector->mem != NULL)
+ jent_zfree(entropy_collector->mem, memsize);
++ if (entropy_collector->hash_state != NULL)
++ sha3_dealloc(entropy_collector->hash_state);
+ jent_zfree(entropy_collector, sizeof(struct rand_data));
+ return NULL;
+ }
diff --git a/main/jitterentropy-library/APKBUILD b/main/jitterentropy-library/APKBUILD
index 5e223b5982e..9d2bde35db5 100755..100644
--- a/main/jitterentropy-library/APKBUILD
+++ b/main/jitterentropy-library/APKBUILD
@@ -1,24 +1,26 @@
# Contributor: Dermot Bradley <dermot_bradley@yahoo.com>
-# Maintainer: Dermot Bradley <dermot_bradley@yahoo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=jitterentropy-library
#
-# NOTE: Please check with the maintainer *before* deciding to submit any
-# MR to update the package - this package is (currently) only used by
-# rng-tools and care needs to be taken that both are aligned (i.e. some
-# necessary changes in *both* packages may not be released at the same
-# time and potentially upgrading jitterentropy-library alone could break
+# NOTE: This package is (currently) only used by rng-tools and care
+# needs to be taken that both are aligned (i.e. some necessary
+# changes in *both* packages may not be released at the same time
+# and potentially upgrading jitterentropy-library alone could break
# rng-tools' jitter functionality).
#
-pkgver=3.3.1
-pkgrel=0
+pkgver=3.4.1
+pkgrel=2
pkgdesc="Jitterentropy library"
-url="http://www.chronox.de/jent.html"
+url="https://www.chronox.de/jent/"
arch="all"
-license="BSD-3-Clause OR GPL-2.0-Only"
+license="BSD-3-Clause OR GPL-2.0-only"
subpackages="$pkgname-dev $pkgname-doc"
options="!check" # There are no testcases
source="$pkgname-$pkgver.tar.gz::https://github.com/smuellerDD/jitterentropy-library/archive/v$pkgver.tar.gz
01-disable-gcc-optimisation.patch
+ 02-fix-s390x-stack-corruption.patch
+ 03-fix-dangling-pointer.patch
+ 04-fix-memory-leak.patch
"
build() {
@@ -30,6 +32,9 @@ package() {
}
sha512sums="
-7dc17c377cf90d38057bbc135e00730a3f84bc66aeed83eca1ad1b0e1c2fb89c5346ec20bdf25d3ce27f1d21893d44e52c08e96175554c18dfa1934a8d4fd9f7 jitterentropy-library-3.3.1.tar.gz
-0a71265b503a1ce9758cb4e2bf8c806e1c427be80567fb530168e50e3aa324569edeba42dcb7dc3c7a147f1a0e360479b4af52cea2dd548b1096939f4f5b8aa6 01-disable-gcc-optimisation.patch
+c832b33c084a8c56fb9ee0c0f7397fa9206cbd6fcbea047495e543566fc0d9b5d8978c8668103203d87b5b70c0e177f9ef7cc614b3ce689b90fbb8b85e6fedbb jitterentropy-library-3.4.1.tar.gz
+da19a711ca37081d05cefd46eff148dc6f44590b3b7375fbee9dd4bad453e2127256135d0f396ff614dc729fee2c80e0e567e19bb8829761cbd4a4c125341e4b 01-disable-gcc-optimisation.patch
+737848e0f2b43b81b2caf8f9600c616d6ad79a1c3a9bbc2346ae9e23f7dddf20ddb265caeb6be0e0bd70cc6e7d2eaf36aa457d2b45c86d9e8e2efa37ba9013b7 02-fix-s390x-stack-corruption.patch
+a3a4f0d66094c7d3139eef02437d17848fb5dcd338a84757f36eae71ba5c685cfe038d24cba990c2a940eccfcfdc6b3aaa780afa4ded33efe6f165d96df75c78 03-fix-dangling-pointer.patch
+1edd24b3deb171850dc06e25a579ca15db69ac28bb867c9210c8a600b4370afb82aa12511daddbe994d58997282dc8d486e538c5e7ceb5296a5387c88c1f120a 04-fix-memory-leak.patch
"
diff --git a/main/joe/APKBUILD b/main/joe/APKBUILD
index 14959329f07..4e8a51e8abe 100644
--- a/main/joe/APKBUILD
+++ b/main/joe/APKBUILD
@@ -2,17 +2,17 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=joe
pkgver=4.6
-pkgrel=0
+pkgrel=5
pkgdesc="Full featured terminal-based screen editor"
-url="http://joe-editor.sourceforge.net/"
+url="https://joe-editor.sourceforge.net/"
arch="all"
-license="GPL"
-depends=""
+license="GPL-2.0-or-later"
makedepends="ncurses-dev"
subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/project/joe-editor/JOE%20sources/$pkgname-$pkgver/$pkgname-$pkgver.tar.gz"
-
-builddir="$srcdir"/$pkgname-$pkgver
+source="https://downloads.sourceforge.net/project/joe-editor/JOE%20sources/joe-$pkgver/joe-$pkgver.tar.gz
+ c99.patch
+ protos.patch
+ "
prepare() {
default_prepare
@@ -20,7 +20,6 @@ prepare() {
}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -30,14 +29,16 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
}
-sha512sums="3dd64a994fb3d352a12bf027ef16d57d14ac2577fd63fb6b6e25cae46052befaa7c15dc029bff2f8c3275df90f0343bd46313601055d97277ea4540e109fbe82 joe-4.6.tar.gz"
+sha512sums="
+3dd64a994fb3d352a12bf027ef16d57d14ac2577fd63fb6b6e25cae46052befaa7c15dc029bff2f8c3275df90f0343bd46313601055d97277ea4540e109fbe82 joe-4.6.tar.gz
+201e74d0af44a5c4c9cfd665a2a79222246e535deab017f6bf4884215644e89921a08b051f7ba43cdf8cdbbbb15a17e729088ced4e4b6f57e84c4472b28691bd c99.patch
+9ccd53de36e813c79dbd1c76e43c7f9b756243455e0faf7eb98e8ebeada30256393475270a9858c6f319f28b4fe56f320e81c7898e41cf8b4ade1c22000e6884 protos.patch
+"
diff --git a/main/joe/c99.patch b/main/joe/c99.patch
new file mode 100644
index 00000000000..8d7a64a6419
--- /dev/null
+++ b/main/joe/c99.patch
@@ -0,0 +1,59 @@
+https://bugs.gentoo.org/900164
+Patch from https://sourceforge.net/p/joe-editor/mercurial/merge-requests/3/
+
+commit 26e83257075789d901cadbe280ff7f1bd7602983
+Authored by: Nikita Popov 2023-01-31
+
+ Port to C99
+
+ Ensure that functions are declared before use for compatibility
+ with newer compiler versions.
+
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -9,7 +9,7 @@
+ int main() {
+ int a = 0;
+ isblank(a++);
+- exit(a != 1);
++ return a != 1;
+ }
+ ],
+ [joe_cv_isblank=yes],
+@@ -34,7 +34,7 @@
+ #endif
+ int main() {
+ /* exit succesfully if setpgrp() takes two args (*BSD systems) */
+- exit(setpgrp(0, 0) != 0);
++ return setpgrp(0, 0) != 0;
+ }],
+ [joe_cv_setpgrp_void=no],
+ [joe_cv_setpgrp_void=yes],
+@@ -95,7 +95,7 @@
+ kill((int)getpid(), SIGINT);
+ kill((int)getpid(), SIGINT);
+ /* exit succesfully if don't have to reinstall sighandler when invoked */
+- exit(nsigint != 2);
++ return nsigint != 2;
+ }],
+ [joe_cv_reinstall_sighandlers=no],
+ [joe_cv_reinstall_sighandlers=yes],
+--- a/joe/selinux.c
++++ b/joe/selinux.c
+@@ -6,6 +6,7 @@
+
+ #ifdef WITH_SELINUX
+ #include <selinux/selinux.h>
++#include <error.h>
+ static int selinux_enabled = -1;
+ #endif
+
+@@ -108,7 +109,7 @@
+ return 0;
+
+ if (setfscreatecon(0) < 0) {
+- error(0, errno, joe_gettext(_("Could not reset default security context")));
++ error(0, errno, "%s", joe_gettext(_("Could not reset default security context")));
+ return 1;
+ }
+ #endif
diff --git a/main/joe/protos.patch b/main/joe/protos.patch
new file mode 100644
index 00000000000..f37d18f650a
--- /dev/null
+++ b/main/joe/protos.patch
@@ -0,0 +1,409 @@
+
+Bug: https://bugs.gentoo.org/870769
+
+Signed-off-by: Holger Hoffstätte <holger@applied-asynchrony.com>
+
+--- joe-4.6/joe/b.c
++++ joe-4.6-prototypes/joe/b.c
+@@ -23,8 +23,6 @@
+ #endif
+ #endif
+
+-extern int errno;
+-
+ #ifdef WITH_SELINUX
+ #include <selinux/selinux.h>
+ static int selinux_enabled = -1;
+@@ -147,7 +145,7 @@ static void pfree(P *p)
+ B bufs = { {&bufs, &bufs} };
+ static B frebufs = { {&frebufs, &frebufs} };
+
+-void set_file_pos_orphaned()
++void set_file_pos_orphaned(void)
+ {
+ B *b;
+ for (b = bufs.link.next; b != &bufs; b = b->link.next)
+@@ -324,7 +322,7 @@ void brm(B *b)
+ }
+ }
+
+-void brmall()
++void brmall(void)
+ {
+ while (!qempty(B, link, &bufs))
+ brm(bufs.link.next);
+--- joe-4.6/joe/b.h
++++ joe-4.6-prototypes/joe/b.h
+@@ -171,7 +171,7 @@ extern const char *msgs[]; /* File acces
+
+ B *bmk(B *prop);
+ void brm(B *b);
+-void brmall();
++void brmall(void);
+
+ B *bfind(const char *s);
+ B *bfind_scratch(const char *s);
+@@ -330,7 +330,7 @@ extern int break_links; /* Break hard li
+ extern int break_symlinks; /* Break symbolic links on write */
+ extern int nodeadjoe; /* Prevent creation of DEADJOE files */
+
+-void set_file_pos_orphaned();
++void set_file_pos_orphaned(void);
+
+ void breplace(B *b, B *n);
+
+--- joe-4.6/joe/charmap.c
++++ joe-4.6-prototypes/joe/charmap.c
+@@ -1423,7 +1423,7 @@ main(int argc,char *argv[])
+
+ /* Get names of available encodings (for tab completion of ^T E prompt) */
+
+-char **get_encodings()
++char **get_encodings(void)
+ {
+ int y;
+ char **encodings = 0;
+@@ -1591,7 +1591,7 @@ struct charmap *locale_map;
+ struct charmap *locale_map_non_utf8;
+ /* Old, non-utf8 version of locale */
+
+-void joe_locale()
++void joe_locale(void)
+ {
+ const char *sc;
+ char *s, *t, *u;
+--- joe-4.6/joe/charmap.h
++++ joe-4.6-prototypes/joe/charmap.h
+@@ -80,7 +80,7 @@ int from_utf8(struct charmap *map,const
+ int to_uni(struct charmap *cset, int c);
+ void to_utf8(struct charmap *map,char *s,int c);
+
+-void joe_locale();
++void joe_locale(void);
+ extern struct charmap *locale_map; /* Character map of terminal */
+ extern struct charmap *utf8_map; /* UTF-8 character map */
+ extern struct charmap *utf16_map; /* UTF-16 character map */
+--- joe-4.6/joe/cmd.c
++++ joe-4.6-prototypes/joe/cmd.c
+@@ -476,7 +476,7 @@ int execmd(CMD *cmd, int k)
+ return ret;
+ }
+
+-void do_auto_scroll()
++void do_auto_scroll(void)
+ {
+ static CMD *myscrup = 0;
+ static CMD *myscrdn = 0;
+--- joe-4.6/joe/cmd.h
++++ joe-4.6-prototypes/joe/cmd.h
+@@ -42,7 +42,7 @@ void addcmd(const char *s, MACRO *m);
+
+ /* Execute a command. Returns return value of command */
+ int execmd(CMD *cmd, int k);
+-void do_auto_scroll();
++void do_auto_scroll(void);
+
+ extern B *cmdhist; /* Command history buffer */
+
+--- joe-4.6/joe/kbd.c
++++ joe-4.6-prototypes/joe/kbd.c
+@@ -425,7 +425,7 @@ static int dokeymap(W *w,char *s,void *o
+ return 0;
+ }
+
+-static char **get_keymap_list()
++static char **get_keymap_list(void)
+ {
+ char **lst = 0;
+ struct context *c;
+--- joe-4.6/joe/main.c
++++ joe-4.6-prototypes/joe/main.c
+@@ -95,7 +95,7 @@ time_t cur_time;
+ time_t timer_macro_delay;
+ MACRO *timer_macro;
+
+-MACRO *timer_play()
++MACRO *timer_play(void)
+ {
+ cur_time = time(NULL);
+ if (timer_macro && timer_macro_delay && cur_time >= last_timer_time + timer_macro_delay) {
+--- joe-4.6/joe/mouse.c
++++ joe-4.6-prototypes/joe/mouse.c
+@@ -136,7 +136,7 @@ int uextmouse(W *w, int k)
+ return mouse_event(w);
+ }
+
+-long mnow()
++long mnow(void)
+ {
+ struct timeval tv;
+ gettimeofday(&tv, NULL);
+@@ -245,7 +245,7 @@ static void ttputs64(char *pp, ptrdiff_t
+ }
+ }
+
+-static void ttputs64_flush()
++static void ttputs64_flush(void)
+ {
+ char x;
+ switch (base64_count) {
+@@ -449,7 +449,7 @@ int utomouse(W *xx, int k)
+ * position that utomouse would use into tmspos. */
+ static off_t tmspos;
+
+-static int tomousestay()
++static int tomousestay(void)
+ {
+ BW *bw;
+ ptrdiff_t x = Cx - 1,y = Cy - 1;
+@@ -556,7 +556,7 @@ int udefmdown(W *xx, int k)
+ return 0;
+ }
+
+-void reset_trig_time()
++void reset_trig_time(void)
+ {
+ if (!auto_rate)
+ auto_rate = 1;
+@@ -761,7 +761,7 @@ int udefm3up(W *w, int k)
+ return 0;
+ }
+
+-void mouseopen()
++void mouseopen(void)
+ {
+ #ifdef MOUSE_XTERM
+ if (usexmouse) {
+@@ -774,7 +774,7 @@ void mouseopen()
+ #endif
+ }
+
+-void mouseclose()
++void mouseclose(void)
+ {
+ #ifdef MOUSE_XTERM
+ if (usexmouse) {
+--- joe-4.6/joe/mouse.h
++++ joe-4.6-prototypes/joe/mouse.h
+@@ -21,12 +21,12 @@ JOE; see the file COPYING. If not, writ
+ #define MOUSE_MULTI_THRESH 300
+
+ #ifdef MOUSE_GPM
+-int gpmopen(); /* initialize the connection. returns 0 on failure. */
+-void gpmclose(); /* close the connection. */
++int gpmopen(void); /* initialize the connection. returns 0 on failure. */
++void gpmclose(void); /* close the connection. */
+ #endif
+
+-void mouseopen(); /* initialize mouse */
+-void mouseclose(); /* de-initialize mouse */
++void mouseopen(void); /* initialize mouse */
++void mouseclose(void); /* de-initialize mouse */
+
+ /* mousedn(int x, int y, int middle) - handle a mouse-down event */
+ void mousedn(ptrdiff_t x, ptrdiff_t y, int middle);
+@@ -56,8 +56,8 @@ int udefm3drag(W *, int);
+ int udefmiddledown(W *, int);
+ int udefmiddleup(W *, int);
+
+-long mnow();
+-void reset_trig_time();
++long mnow(void);
++void reset_trig_time(void);
+
+ /* options */
+ extern int floatmouse; /* Allow mouse to set cursor past end of lines */
+--- joe-4.6/joe/rc.c
++++ joe-4.6-prototypes/joe/rc.c
+@@ -9,7 +9,7 @@
+
+ /* Validate joerc file */
+
+-int validate_rc()
++int validate_rc(void)
+ {
+ KMAP *k;
+ if (!(k = ngetcontext("main")) || kmap_empty(k)) {
+--- joe-4.6/joe/rc.h
++++ joe-4.6-prototypes/joe/rc.h
+@@ -14,4 +14,4 @@
+ int procrc(CAP *cap, char *name);
+
+ /* Validate rc file: return -1 if it's bad (call this after rc file has been loaded) */
+-int validate_rc();
++int validate_rc(void);
+--- joe-4.6/joe/selinux.c
++++ joe-4.6-prototypes/joe/selinux.c
+@@ -98,7 +98,7 @@ int match_default_security_context(const
+ }
+
+
+-int reset_default_security_context()
++int reset_default_security_context(void)
+ {
+ #ifdef WITH_SELINUX
+ if (selinux_enabled == -1)
+--- joe-4.6/joe/selinux.h
++++ joe-4.6-prototypes/joe/selinux.h
+@@ -1,4 +1,4 @@
+ int copy_security_context(const char *from_file, const char *to_file);
+ int match_default_security_context(const char *from_file);
+-int reset_default_security_context();
++int reset_default_security_context(void);
+ int output_security_context(const char *from_file);
+--- joe-4.6/joe/state.c
++++ joe-4.6-prototypes/joe/state.c
+@@ -79,7 +79,7 @@ static void load_hist(FILE *f,B **bp)
+
+ #define STATE_ID "# JOE state file v1.0\n"
+
+-void save_state()
++void save_state(void)
+ {
+ char *home = getenv("HOME");
+ mode_t old_mask;
+@@ -117,7 +117,7 @@ void save_state()
+
+ /* Load state */
+
+-void load_state()
++void load_state(void)
+ {
+ char *home = getenv("HOME");
+ char buf[1024];
+--- joe-4.6/joe/state.h
++++ joe-4.6-prototypes/joe/state.h
+@@ -12,8 +12,8 @@ extern int joe_state;
+
+ /* Load state from file */
+
+-void load_state();
++void load_state(void);
+
+ /* Save state to file */
+
+-void save_state();
++void save_state(void);
+--- joe-4.6/joe/syntax.c
++++ joe-4.6-prototypes/joe/syntax.c
+@@ -450,7 +450,7 @@ static void iz_cmd(struct high_cmd *cmd)
+ cmd->call = 0;
+ }
+
+-static struct high_cmd *mkcmd()
++static struct high_cmd *mkcmd(void)
+ {
+ struct high_cmd *cmd = (struct high_cmd *)joe_malloc(SIZEOF(struct high_cmd));
+ iz_cmd(cmd);
+--- joe-4.6/joe/tty.c
++++ joe-4.6-prototypes/joe/tty.c
+@@ -520,7 +520,7 @@ static void pauseit(void)
+
+ /* Check for type-ahead */
+
+-int ttcheck()
++int ttcheck(void)
+ {
+ /* Ack previous packet */
+ if (ackkbd != -1 && acceptch != NO_MORE_DATA && !have) {
+@@ -710,7 +710,7 @@ char ttgetc(void)
+
+ static struct utf8_sm main_utf8_sm;
+
+-int ttgetch()
++int ttgetch(void)
+ {
+ if (locale_map->type) {
+ int utf8_char;
+--- joe-4.6/joe/umath.c
++++ joe-4.6-prototypes/joe/umath.c
+@@ -1645,7 +1645,7 @@ B *mathhist = NULL;
+
+ static char **math_word_list;
+
+-static void get_math_list()
++static void get_math_list(void)
+ {
+ struct var *v;
+ char *s;
+--- joe-4.6/joe/unicode.c
++++ joe-4.6-prototypes/joe/unicode.c
+@@ -191,7 +191,7 @@ Convenient character classes:
+ cclass_notword: \W opposite
+ */
+
+-void joe_iswinit()
++void joe_iswinit(void)
+ {
+ int x;
+
+--- joe-4.6/joe/unicode.h
++++ joe-4.6-prototypes/joe/unicode.h
+@@ -47,7 +47,7 @@ extern struct Cclass cclass_word[1];
+ extern struct Cclass cclass_notword[1];
+ extern struct Cclass cclass_combining[1];
+
+-void joe_iswinit();
++void joe_iswinit(void);
+
+ int joe_iswupper(struct charmap *,int c);
+ int joe_iswlower(struct charmap *,int c);
+--- joe-4.6/joe/ushell.c
++++ joe-4.6-prototypes/joe/ushell.c
+@@ -114,7 +114,7 @@ static void cfollow(B *b, VT *vt, off_t
+ }
+ }
+
+-void vt_scrdn()
++void vt_scrdn(void)
+ {
+ W *w;
+ if ((w = maint->topwin) != NULL) {
+--- joe-4.6/joe/ushell.h
++++ joe-4.6-prototypes/joe/ushell.h
+@@ -17,4 +17,4 @@ extern B *runhist; /* Shell command hist
+ extern B *buildhist; /* Build command history */
+ extern B *grephist; /* Grep command history */
+
+-void vt_scrdn();
++void vt_scrdn(void);
+--- joe-4.6/joe/utag.c
++++ joe-4.6-prototypes/joe/utag.c
+@@ -33,7 +33,7 @@ static void freetag(TAG *n)
+ enquef(TAG, link, &tagnodes, n);
+ }
+
+-static void clrtags()
++static void clrtags(void)
+ {
+ while (!qempty(TAG, link, &tags)) {
+ freetag(deque_f(TAG, link, tags.link.next));
+@@ -386,7 +386,7 @@ static int dotag(W *w, char *s, void *ob
+ static char **tag_word_list;
+ static time_t last_update;
+
+-static void get_tag_list()
++static void get_tag_list(void)
+ {
+ char buf[512];
+ char tag[512];
+--- joe-4.6/joe/util/checkwidths.c
++++ joe-4.6-prototypes/joe/util/checkwidths.c
+@@ -87,7 +87,7 @@ int full_read(unsigned char *p, int tota
+
+ int get_line(char *buf, int timeout)
+ {
+- char c;
++ unsigned char c;
+ for (;;) {
+ int x;
+ for (x = 0; x != timeout; ++x)
+@@ -104,7 +104,7 @@ int get_line(char *buf, int timeout)
+
+ }
+
+-int main()
++int main(int argc, char **argv)
+ {
+ struct termios org_attr;
+ struct termios attr;
diff --git a/main/jpeg/APKBUILD b/main/jpeg/APKBUILD
index b7280acebfd..6d59c55c5ba 100644
--- a/main/jpeg/APKBUILD
+++ b/main/jpeg/APKBUILD
@@ -2,12 +2,12 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=jpeg
pkgver=9e
-pkgrel=0
+pkgrel=1
pkgdesc="Wrapper for libjpeg-turbo"
url="https://www.ijg.org/"
arch="noarch"
options="!check" # Simple wrapper/container package; no tests needed.
-license="AS-IS"
+license="Public Domain"
depends="libjpeg-turbo-utils"
subpackages="$pkgname-dev libjpeg"
diff --git a/main/jq/APKBUILD b/main/jq/APKBUILD
index 57afc94ce37..d8c671fdf81 100644
--- a/main/jq/APKBUILD
+++ b/main/jq/APKBUILD
@@ -1,26 +1,20 @@
# Contributor: Johannes Matheis <jomat+alpinebuild@jmt.gr>
-# Maintainer: Johannes Matheis <jomat+alpinebuild@jmt.gr>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=jq
-pkgver=1.6
-pkgrel=1
+pkgver=1.7.1
+pkgrel=0
pkgdesc="A lightweight and flexible command-line JSON processor"
-url="https://stedolan.github.io/jq/"
+url="https://jqlang.github.io/jq/"
arch="all"
license="MIT"
-makedepends="oniguruma-dev automake autoconf libtool"
+makedepends="oniguruma-dev"
subpackages="$pkgname-doc $pkgname-dev"
-source="https://github.com/stedolan/jq/archive/jq-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgname-$pkgver"
+source="jq-$pkgver.tar.gz::https://github.com/jqlang/jq/releases/download/jq-$pkgver/jq-$pkgver.tar.gz"
# secfixes:
# 1.6_rc1-r0:
# - CVE-2016-4074
-prepare() {
- default_prepare
- autoreconf -fi
-}
-
build() {
./configure \
--build=$CBUILD \
@@ -41,4 +35,6 @@ package() {
make DESTDIR="$pkgdir" prefix=/usr install
}
-sha512sums="e707682239c9a3e6c31c2ce0d433c35140d88881d25637cefa880e0ae288b7746497b73b25403ad11134707c755979bee455523fb32b77a716f101f1e07a1149 jq-1.6.tar.gz"
+sha512sums="
+464861fb2e0d6934b616f1dc7f8002d7dae727c8c0c07b385b813e7522ba1ada8ead4165e1d99c892e3ea76e238c55a15b718c738805419721920f88f8d8478c jq-1.7.1.tar.gz
+"
diff --git a/main/json-c/APKBUILD b/main/json-c/APKBUILD
index 035cf74cc88..664440b1300 100644
--- a/main/json-c/APKBUILD
+++ b/main/json-c/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=json-c
-pkgver=0.16
+pkgver=0.17
pkgrel=0
pkgdesc="A JSON implementation in C"
url="https://github.com/json-c/json-c/wiki"
@@ -21,12 +21,11 @@ build() {
cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
- -DBUILD_SHARED_LIBS=True \
- -DBUILD_STATIC_LIBS=False \
+ -DBUILD_SHARED_LIBS=ON \
+ -DBUILD_STATIC_LIBS=ON \
-DCMAKE_BUILD_TYPE=MinSizeRel \
$CMAKE_CROSSOPTS
- cmake --build build
- cmake --build build --target doc
+ cmake --build build --target all doc
}
check() {
@@ -34,11 +33,11 @@ check() {
}
package() {
- DESTDIR="$pkgdir" cmake --build build --target install
+ DESTDIR="$pkgdir" cmake --install build
mkdir -p "$pkgdir"/usr/share/doc/$pkgname
mv doc/html "$pkgdir"/usr/share/doc/$pkgname
}
sha512sums="
-255cff99033340b2c2678255d41dae7808f83ed0c102e693d2d9e186bd1f21dd1385fcaa360c0fc087a00965a9567fbda733370e6b518a9be2f1bb0a80439151 json-c-0.16.tar.gz
+4cbedd559502bf9014cfcd1d0bb8bb80d2abac4e969d95d4170123cd9cbafb0756b913fdbb83f666d14f674d6539a60ed1c5d0eb03c36b8037a2e00dc1636e19 json-c-0.17.tar.gz
"
diff --git a/main/jwhois/APKBUILD b/main/jwhois/APKBUILD
deleted file mode 100644
index e69cb8438e4..00000000000
--- a/main/jwhois/APKBUILD
+++ /dev/null
@@ -1,54 +0,0 @@
-# Maintainer:
-pkgname=jwhois
-pkgver=4.0
-pkgrel=6
-pkgdesc="WHOIS/RWHOIS client"
-url="https://www.gnu.org/software/jwhois/"
-license="GPL"
-depends=
-makedepends="autoconf automake libtool gdbm-dev"
-install=
-subpackages="$pkgname-doc"
-source="https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.gz
- automake.patch
- jwhois-libiconv.patch
- no-gnulib.patch"
-arch="all"
-
-_builddir="$srcdir/$pkgname-$pkgver"
-
-prepare() {
- cd "$_builddir"
- update_config_sub || return 1
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
- autoreconf
-}
-
-build() {
- cd "$_builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/ \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --disable-nls \
- --with-cache \
- || return 1
- make || return 1
-}
-
-package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="5d625c3f1031a8eb8ef766ef5d47a8c1a4396d1ad3344fc9449f80dd71ad84aadf21ba67f5c2f99348f732a4df998eefe699fcec4efcadf87f579b70302a44ae jwhois-4.0.tar.gz
-28d191d01569b68e3453e116fb7294405c38be6c3cea7bc4e3bb8039e823e0af3919501a8291512f4c0b8990b57f6711dc347a432cf9833fe9dcf402358def92 automake.patch
-0daee64f91c8dfd6faa4ad751889aaf10805d7b127bd62856112bdcdd9cb4b29c2e2e62d58a9843cd4d511648c2264a1d47f42137bca8ed59d5a6a7d803c857d jwhois-libiconv.patch
-60f081d544044ba2ab91f231df0c8facf76b89b406906b61d5b395ca3d299a0d712cd177fe98464db918803500e5f149a4eac44932e47f8cede4ab162bea638e no-gnulib.patch"
diff --git a/main/jwhois/automake.patch b/main/jwhois/automake.patch
deleted file mode 100644
index f451342c503..00000000000
--- a/main/jwhois/automake.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./configure.ac.orig 2012-12-31 15:46:58.239163472 +0000
-+++ ./configure.ac 2012-12-31 15:47:47.289600890 +0000
-@@ -20,7 +20,7 @@
- AC_INIT
- AC_CONFIG_SRCDIR([src/jconfig.c])
- AM_INIT_AUTOMAKE(jwhois,4.0)
--AM_CONFIG_HEADER(config.h)
-+AC_CONFIG_HEADER(config.h)
-
- AH_TEMPLATE([PACKAGE], [package name])
- AH_TEMPLATE([VERSION], [package version])
diff --git a/main/jwhois/jwhois-libiconv.patch b/main/jwhois/jwhois-libiconv.patch
deleted file mode 100644
index 31c54bdf458..00000000000
--- a/main/jwhois/jwhois-libiconv.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- jwhois-4.0/src/Makefile.am
-+++ jwhois-4.0.mod/src/Makefile.am
-@@ -23,6 +23,7 @@
- getopt.c getopt1.c jconfig.c string.c cache.c rwhois.c jwhois.c \
- whois.c http.c
-
-+LIBS += @LIBICONV@
- jwhois_LIBS = @LIBINTL@ @LIBICONV@ @LIBS@
-
- jwhois_CFLAGS = $(OLDCFLAGS) -DSYSCONFDIR="\"$(sysconfdir)\"" \
diff --git a/main/jwhois/no-gnulib.patch b/main/jwhois/no-gnulib.patch
deleted file mode 100644
index f4610214f12..00000000000
--- a/main/jwhois/no-gnulib.patch
+++ /dev/null
@@ -1,52 +0,0 @@
---- ./configure.ac.orig
-+++ ./configure.ac
-@@ -88,7 +88,6 @@
- AC_PROG_INSTALL
- AC_PROG_CC
- AC_PROG_RANLIB
--gl_EARLY
-
- GETTEXT_PACKAGE=jwhois
- AC_SUBST(GETTEXT_PACKAGE)
-@@ -209,14 +208,11 @@
- OLDCFLAGS=$CFLAGS
- AC_SUBST(OLDCFLAGS)
-
--gl_INIT
--
- AC_OUTPUT([ po/Makefile.in m4/Makefile
- Makefile
- doc/Makefile
- doc/sv/Makefile
- src/Makefile
--gl/Makefile
- example/Makefile
- jwhois.spec
- ])
---- ./Makefile.am.orig
-+++ ./Makefile.am
-@@ -19,9 +19,8 @@
- ##
-
- EXTRA_DIST = config.rpath m4/ChangeLog config.rpath include/*.h example/jwhois.conf m4/*.m4 jwhois.spec.in jwhois.spec
--SUBDIRS = m4 doc gl src example po
-+SUBDIRS = m4 doc src example po
-
--AM_CPPFLAGS = -I$(top_srcdir)/gl
- LDADD = lib/libgnu.a
-
--ACLOCAL_AMFLAGS = -I m4 -I gl/m4
-+ACLOCAL_AMFLAGS = -I m4
---- ./src/Makefile.am.orig
-+++ ./src/Makefile.am
-@@ -30,9 +30,7 @@
- -DLOCALSTATEDIR="\"$(localstatedir)\"" \
- -DLOCALEDIR="\"$(localedir)\""
-
--jwhois_LDADD = $(top_srcdir)/gl/libgnu.a
--
- AM_CFLAGS = $(jwhois_CFLAGS)
-
-
--INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/intl -I$(top_srcdir)/gl
-+INCLUDES = -I$(top_srcdir)/include -I$(top_srcdir)/intl
diff --git a/main/kamailio/APKBUILD b/main/kamailio/APKBUILD
index b7317c548ac..e0f531580e6 100644
--- a/main/kamailio/APKBUILD
+++ b/main/kamailio/APKBUILD
@@ -1,10 +1,11 @@
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Contributor: Michael Mason <ms13sp@gmail.com>
# Contributor: Leonardo Arena <rnalrd@gmail.com>
+# Contributor: Yann Vigara <yvigara@angarium.co.uk>
# Maintainer: Nathan Angelacos <nangel@alpinelinux.org>
pkgname=kamailio
-pkgver=5.5.4
+pkgver=5.8.1
pkgrel=1
# If building from a git snapshot, specify the gitcommit
@@ -22,22 +23,57 @@ pkgusers="kamailio"
pkggroups="kamailio"
arch="all"
license="GPL-2.0-or-later"
+options="!check" # no testsuite
depends="gawk"
-makedepends="bison flex freeradius-client-dev expat-dev
- lksctp-tools-dev perl-dev libpq-dev python3-dev
- pcre-dev mariadb-dev libxml2-dev curl-dev unixodbc-dev
- confuse-dev ncurses-dev sqlite-dev lua-dev openldap-dev openssl1.1-compat-dev
- net-snmp-dev libuuid libev-dev jansson-dev json-c-dev libevent-dev
- linux-headers libmemcached-dev rabbitmq-c-dev hiredis-dev
- ruby-dev libmaxminddb-dev libunistring-dev mosquitto-dev libmnl-dev"
+makedepends="bison
+ confuse-dev
+ curl-dev
+ expat-dev
+ flex
+ freeradius-client-dev
+ hiredis-dev
+ jansson-dev
+ json-c-dev
+ libev-dev
+ libevent-dev
+ libmaxminddb-dev
+ libmemcached-dev
+ libmnl-dev
+ pcre2-dev
+ libpq-dev
+ libgcrypt-dev
+ libunistring-dev
+ libuuid
+ libxml2-dev
+ linux-headers
+ lksctp-tools-dev
+ lua-dev
+ mariadb-dev
+ mosquitto-dev
+ ncurses-dev
+ net-snmp-dev
+ openldap-dev
+ openssl-dev>3
+ openssl-libs-static
+ pcre-dev
+ perl-dev
+ python3-dev
+ rabbitmq-c-dev
+ ruby-dev
+ sqlite-dev
+ unixodbc-dev
+ zlib-static
+ "
# These are in testing / community - can't enable for kamailio in main
- # librdkafka-dev dnssec-tools-dev
+ # librdkafka-dev dnssec-tools-dev libmicrohttpd-dev
source="kamailio-${pkgver}$_suffix.tar.gz::https://github.com/kamailio/kamailio/archive/$_gitcommit.tar.gz
kamailio.initd
"
install="$pkgname.pre-install $pkgname.pre-upgrade"
+[ "$CARCH" = "armv7" ] && options="$options textrels"
+
# secfixes:
# 5.1.4-r0:
# - CVE-2018-14767
@@ -47,7 +83,7 @@ install="$pkgname.pre-install $pkgname.pre-upgrade"
#
# Alpine specific changes:
#
-# _mod_list_debugger is not defined in the orginal
+# _mod_list_debugger is not defined in the original
#
# Move avp from _mod_list_extras to _mod_list_basic, so that we can create
# a kamailio-extras package
@@ -64,10 +100,10 @@ _mod_list_basic="avp async auth benchmark blst cfg_rpc cfgt cfgutils corex count
pv_headers kemix dlgs"
# - extra used modules, with no extra dependency
-_mod_list_extras="auth_diameter call_control cnxcc dmq domainpolicy log_custom \
- msrp pdb qos sca seas sms sst timer tmrec tsilo uac_redirect \
- xhttp xhttp_rpc xprint nosip dmq_usrloc statsd rtjson tcpops \
- auth_xkeys cfgt"
+_mod_list_extras="auth_diameter auth_xkeys call_control cfgt cnxcc dmq dmq_usrloc \
+ domainpolicy file_out influxdbc log_custom msrp nosip pdb qos \
+ rtjson sca seas sms sst statsd tcpops timer tmrec tsilo \
+ uac_redirect xhttp xhttp_rpc xprint"
# - common modules depending on database
_mod_list_db="acc alias_db auth_db avpops cfg_db db_flatstore \
@@ -81,7 +117,7 @@ _mod_list_dbuid="db2_ops uid_auth_db uid_avp_db uid_domain uid_gflags \
uid_uri_db"
# - modules for devel purposes
-_mod_list_devel="malloc_test print print_lib"
+_mod_list_devel="print print_lib"
# - modules depending on pcre3 library
_mod_list_pcre="dialplan lcr regex"
@@ -129,7 +165,10 @@ _mod_list_http_async="http_async_client"
_mod_list_memcached="memcached"
# - modules depending on openssl library
-_mod_list_tls="auth_identity crypto tls"
+_mod_list_tls="crypto tls"
+
+# - modules depending on static openssl library
+_mod_list_tlsa="tlsa"
# - modules depending on openssl library
_mod_list_outbound="outbound"
@@ -160,11 +199,11 @@ _mod_list_lua="app_lua app_lua_sr"
# - modules depending on perl library
_mod_list_perl="app_perl db_perlvdb"
-# - modules depending on python3 libarary
-_mod_list_python3="app_python3"
+# - modules depending on python3 library
+_mod_list_python3="app_python3 app_python3s"
# - modules depending on ruby library
-_mod_list_ruby="app_ruby"
+_mod_list_ruby="app_ruby app_ruby_proc"
# - modules depending on rabbitmq
_mod_list_rabbitmq="rabbitmq"
@@ -226,15 +265,18 @@ _mod_list_jansson="jansson janssonrpcc acc_json"
# - modules depending on libm
_mod_list_jsdt="app_jsdt"
-# - modules depending on sqlang
-_mod_list_sqlang="app_sqlang"
-
# - modules depending on rabbitmq
_mod_list_rabbitmq="rabbitmq"
# - modules depending on sipdump
_mod_list_sipdump="sipdump"
+# - modules depending on libgcrypt
+_mod_list_gcrypt="gcrypt"
+
+# - modules depending on libmicrohttpd
+_mod_list_microhttpd="microhttpd"
+
# Alpine Specific
_mod_list_debugger="$_mod_list_devel benchmark debugger"
@@ -248,11 +290,11 @@ subpackages="$pkgname-doc $pkgname-dbg $pkgname-openrc"
_modules="$_module_group_kstandard"
for _i in db postgres sqlite dbtext mysql \
cpl xml unixodbc snmpstats xmpp carrierroute \
- ldap utils tls presence lua ims outbound debugger \
+ ldap utils tls tlsa presence lua ims outbound debugger \
extras json websocket authephemeral \
- uuid ev memcached redis geoip2 jansson sqlang sipdump \
+ uuid ev memcached redis geoip2 jansson sipdump \
jsdt http_async kazoo rabbitmq sctp radius perl \
- python3 mqtt ruby; do
+ python3 mqtt ruby gcrypt; do
subpackages="$subpackages $pkgname-$_i"
eval "_modules=\"\$_modules \$_mod_list_$_i\""
@@ -271,7 +313,7 @@ prepare() {
cd utils/kamctl/
sed -i -e 's:/var/run/kamailio.pid:/var/run/kamailio/kamailio.pid:g' \
kamctl.base kamctlrc
- # we actually dont need bash
+ # we actually don't need bash
sed -i -e 's:/bin/bash:/bin/sh:' kamctl kamdbctl
}
@@ -342,8 +384,7 @@ sqlite() {
dbtext() {
_db_driver DBText text dbtext dbtext
# kamdbctl.dbtext is a python script - but we will not make python
- # a dependency because kamdbctl is not normaly used
- depends="$depends"
+ # a dependency because kamdbctl is not normally used
mkdir -p "$subpkgdir"/usr/lib/kamailio/kamctl
mv "$pkgdir"/usr/lib/kamailio/kamctl/dbtextdb \
"$subpkgdir"/usr/lib/kamailio/kamctl/
@@ -394,7 +435,7 @@ ldap() {
}
utils() {
- _generic_pkg "miscelaneous utility functions" \
+ _generic_pkg "miscellaneous utility functions" \
"$_mod_list_utils"
}
@@ -403,6 +444,11 @@ tls() {
"$_mod_list_tls"
}
+tlsa() {
+ _generic_pkg "TLS support compiled statically against libssl and libcrypto" \
+ "$_mod_list_tlsa"
+}
+
presence() {
_generic_pkg "SIP Notify (Presence) support" \
"$_mod_list_presence"
@@ -523,10 +569,11 @@ ruby() {
"$_mod_list_ruby"
}
-sqlang() {
- _generic_pkg "Squirrel Language (SQLang) for Kamailio" \
- "$_mod_list_sqlang"
-}
+# Archived as of 5.8.0 (2024-03-29)
+#sqlang() {
+# _generic_pkg "Squirrel Language (SQLang) for Kamailio" \
+# "$_mod_list_sqlang"
+#}
mqtt() {
_generic_pkg "MQTT publish/subscribe connector" \
@@ -538,7 +585,6 @@ mqtt() {
# "$_mod_list_kafka"
# }
-
rabbitmq() {
_generic_pkg "RabbitMQ related modules for Kamailio" \
"$_mod_list_rabbitmq"
@@ -554,7 +600,18 @@ sipdump() {
"$_mod_list_sipdump"
}
+microhttpd() {
+ _generic_pkg "Simple HTTP server using libmicrohttpd" \
+ "$_mod_list_microhttpd"
+}
+
+gcrypt() {
+ _generic_pkg "Cryptography functions using libcrypt" \
+ "$_mod_list_gcrypt"
+}
+
+
sha512sums="
-b9d0894f674683d0e10b97fd3301a3e76ea34529086eaeb5c949d17d49f611b2c160c22fb87be673996a3129c259231832d1943216759df79f16617c4beace33 kamailio-5.5.4.tar.gz
-0c87bfb78481568c03e603049eb8597a90d24ae2941fc81694181b2326fa9db89fbddaaa3cf08c7bc2f5fa0e7ffac4cf4e2d010d08c4faa6cf6df98593432539 kamailio.initd
+84e1ca018477d880bdb085c2267205f9f04730053c9aa3a61eb5c11528a4d5f3c7bea0b6fa7bc6ab45036fc1b3fedd97c70d1e4628e9e6a295787d342ade3183 kamailio-5.8.1.tar.gz
+38a786b48d433b2e99a29249458c1ffcc3f449a1898df6ef1f4b8ebf7770e99d80ce6e3340ea680b44e725b951e65fd06d395ecb903600d7c8fdc0a736c4d9b1 kamailio.initd
"
diff --git a/main/kamailio/kamailio.initd b/main/kamailio/kamailio.initd
index 8c400173c50..d6124ab413b 100644
--- a/main/kamailio/kamailio.initd
+++ b/main/kamailio/kamailio.initd
@@ -1,35 +1,16 @@
#!/sbin/openrc-run
-daemon=/usr/sbin/kamailio
-pidfile=/var/run/kamailio/kamailio.pid
-
-extra_started_commands="reload"
+command="/usr/sbin/kamailio"
+command_args="$KAMAILIO_OPTS -DD -u ${KAMAILIO_USER:-kamailio} -g ${KAMAILIO_GROUP:-kamailio}"
+command_background="true"
+pidfile="/run/kamailio.pid"
depend() {
need net
after firewall mariadb postgresql
}
-start() {
- ebegin "Starting Kamailio"
+start_pre() {
checkpath -d -o kamailio:kamailio /var/run/kamailio
- start-stop-daemon --start --quiet --pidfile $pidfile --exec $daemon \
- -- \
- -u ${KAMAILIO_USER:-kamailio} \
- -g ${KAMAILIO_GROUP:-kamailio} \
- -P $pidfile \
- ${KAMAILIO_OPTS:-}
- eend $?
-}
-
-stop() {
- ebegin "Stopping Kamailio"
- start-stop-daemon --retry 10 --stop --quiet --pidfile $pidfile
- eend $?
-}
-
-reload() {
- ebegin "Reloading Kamailio"
- echo mi_dg dp_reload | kamcmd 2>/dev/null
- eend $?
+ kamailio -c
}
diff --git a/main/kbd/APKBUILD b/main/kbd/APKBUILD
index 94652915bde..c619bb68eec 100644
--- a/main/kbd/APKBUILD
+++ b/main/kbd/APKBUILD
@@ -1,22 +1,28 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=kbd
-pkgver=2.5.1
-pkgrel=1
+pkgver=2.6.4
+pkgrel=0
pkgdesc="Tools for configuring the console (keyboard, virtual terminals, etc.)"
-url="http://kbd-project.org/"
+url="https://kbd-project.org/"
arch="all"
license="GPL-2.0-or-later"
depends="kbd-misc"
-makedepends="linux-headers linux-pam-dev check-dev ckbcomp xkeyboard-config-dev
- autoconf automake"
+makedepends="
+ autoconf
+ automake
+ check-dev
+ ckbcomp
+ linux-headers
+ linux-pam-dev
+ musl-legacy-error
+ xkeyboard-config-dev
+ "
subpackages="$pkgname-bkeymaps::noarch $pkgname-legacy::noarch
$pkgname-misc::noarch $pkgname-doc $pkgname-openrc $pkgname-vlock"
source="https://www.kernel.org/pub/linux/utils/kbd/kbd-$pkgver.tar.gz
loadkeys.initd
loadkeys.confd
-
- error.h
"
_datadir=/usr/share
@@ -24,18 +30,13 @@ _xmapdir="$_datadir"/keymaps/xkb
_bmapdir="$_datadir"/bkeymaps
_badmaps="pk-ara"
-prepare() {
- default_prepare
-
- cp "$srcdir"/error.h "$builddir"
-}
-
build() {
./configure \
--build=$CBUILD \
--host=$CHOST \
--disable-nls \
--prefix=/usr \
+ --sysconfdir=/etc \
--datadir="$_datadir" \
--htmldir=/usr/share/html/$pkgname \
--disable-static
@@ -50,7 +51,7 @@ check() {
_listxmaps() {
local invariant line; invariant=false
- grep -v '^$' /usr/share/X11/xkb/rules/base.lst | while read line; do
+ grep -v '^$' /usr/share/X11/xkb/rules/base.lst | while read -r line; do
case "$line" in
'! variant') invariant=true ;;
'!'*) invariant=false ;;
@@ -143,6 +144,7 @@ bkeymaps() {
mkdir -p "$subpkgdir$_bmapdir"
local map variant layout; for map in "$pkgdir$_xmapdir"/*.map.gz; do
variant="$(basename "$map" | cut -d. -f1)"
+ # shellcheck disable=2254
case "$variant" in $_badmaps) continue ;; esac
layout="${variant%%-*}"
@@ -171,8 +173,7 @@ misc() {
}
sha512sums="
-3d9cd81b100137a802ae2c61616b1e83628789af39b5e421a5038f0308ee777697533061da3e0bfd5036fb2167206e9f0a3074e62c075a5f34cde0a9f6fe895c kbd-2.5.1.tar.gz
+2bde7a271392f0ac81966af46c4b3568c9e777550fd0b0d1627db158f0b24b8a67f3c0cca84de9b33d43ac8cbb730c1610212c3da071add3559abe6c4397272f kbd-2.6.4.tar.gz
64b5ab4c362350521da8f507d22c0b77784da99bbe1b32f0c001cd826f63c607e3f9cd6af01f06a61af8bd709760bbf2bb3cfe2010c33925f2987a1af6ef4998 loadkeys.initd
12028796552a5ffed1d5cb19d37fc6a73fb4f2e2bf34d837a81171c7ebee98d6c3f557715bf79706d79ce053b9b2450cd8cf1c4ea045428fb7d8a5915ae3ed78 loadkeys.confd
-c66f6b0d8c8b8d285c740bdbe7130dee272ac01cd5e73b35a58cedf1a77fe8d9e062631b804fb58014d8eb9861c8f28aed07bc022ef31662bcc61b5c85a21752 error.h
"
diff --git a/main/kbd/error.h b/main/kbd/error.h
deleted file mode 100644
index 5eb8ed5115f..00000000000
--- a/main/kbd/error.h
+++ /dev/null
@@ -1,20 +0,0 @@
-#ifndef ERROR_H
-#define ERROR_H
-
-#include <stdio.h>
-#include <stdarg.h>
-#include <err.h>
-
-static inline void error(int status, int errnum, const char *fmt, ...)
-{
- va_list ap;
- void (*errfunc[2])(int, const char *, va_list) = { &verr, &verrx };
- void (*warnfunc[2])(const char *, va_list) = { &vwarn, &vwarnx };
- fflush(stdout);
- va_start(ap, fmt);
- if (status != 0)
- errfunc[errnum==0](status, fmt, ap); /* does not return */
- warnfunc[errnum==0](fmt, ap);
- va_end(ap);
-}
-#endif
diff --git a/main/kea/APKBUILD b/main/kea/APKBUILD
new file mode 100644
index 00000000000..1b707a4ef42
--- /dev/null
+++ b/main/kea/APKBUILD
@@ -0,0 +1,287 @@
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+# Contributor: Steve Holweg <skytep@gmail.com>
+# Contributor: Baptiste Jonglez <baptiste--aur@jonglez.org>
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=kea
+# NOTE: Upgrade only to even-numbered versions (e.g. 1.8.x, 1.10.x)!
+# Odd-numbered versions are development versions.
+# NOTE: When bumping, always rebuild all kea hooks (kea-* aports)!
+pkgver=2.4.1
+pkgrel=2
+pkgdesc="DHCPv4 and DHCPv6 server from ISC"
+url="https://kea.isc.org/"
+arch="all"
+license="MPL-2.0"
+depends="kea-dhcp4 kea-dhcp6"
+depends_dev="boost-dev log4cplus-dev"
+checkdepends="procps"
+makedepends="
+ $depends_dev
+ autoconf
+ automake
+ bison
+ botan-dev
+ flex
+ libcap-utils
+ libtool
+ mariadb-dev
+ postgresql-dev
+ python3-dev
+ "
+pkgusers="kea"
+pkggroups="kea"
+install="$pkgname-common.pre-install $pkgname-common.post-upgrade"
+subpackages="
+ $pkgname-doc
+ $pkgname-static
+ $pkgname-dev
+ $pkgname-admin::noarch
+ $pkgname-ctrl-agent:ctrlagent
+ $pkgname-dhcp-ddns:dhcpddns
+ $pkgname-dhcp4
+ $pkgname-dhcp6
+ $pkgname-shell-pyc
+ $pkgname-shell::noarch
+ $pkgname-hook-mysql-cb:hook_mysql_cb
+ $pkgname-hook-pgsql-cb:hook_pgsql_cb
+ $pkgname-hook-ha:hook_ha
+ $pkgname-hook-stat-cmds:hook_stat_cmds
+ $pkgname-hook-lease-cmds:hook_lease_cmds
+ $pkgname-hook-flex-option:hook_flex_option
+ $pkgname-hook-bootp:hook_bootp
+ $pkgname-hook-run-script:hook_run_script
+ $pkgname-common
+ "
+source="https://ftp.isc.org/isc/kea/$pkgver/kea-$pkgver.tar.gz
+ disable-db-tests.patch
+ configs-fix-paths.patch
+ put-LOCKFILE_DIR-to-runstatedir.patch
+ move-api-files-to-doc.patch
+ kea-admin-remove-builddir.patch
+ python3.12.patch
+ kea.initd.in
+ kea.confd.in
+ "
+validpgpkeys="BE0E9748B718253A28BB89FFF1B11BF05CF02E57" # Internet Systems Consortium, Inc. (Signing key, 2017-2018) <codesign@isc.org>
+
+# secfixes:
+# 1.7.2-r0:
+# - CVE-2019-6472
+# - CVE-2019-6473
+# - CVE-2019-6474
+
+# NOTE: libkea-dhcpsrv.so depends on libkea-{mysql,pgsql}, that's why
+# kea-common depends on libpq and libmariadb. :(
+
+prepare() {
+ default_prepare
+ update_config_sub
+
+ autoreconf -fv
+
+ # Remove the builddir path from the scripts.
+ # NOTE: There's a new script each release, so using patch file would be
+ # very inconvenient.
+ find src/share/database/scripts/ \
+ -name '*.sh.in' \
+ -exec sed -i 's|^\s*. @abs_top_builddir@/src/bin/admin/admin-utils.sh.*|echo "admin-utils.sh not found!"; exit 1|' {} \;
+}
+
+build() {
+ # Complete build for dev and doc
+
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --localstatedir=/var \
+ --libexecdir=/usr/lib \
+ --runstatedir=/run \
+ --with-mysql \
+ --with-pgsql \
+ --disable-rpath \
+ --enable-generate-messages \
+ --enable-generate-parser \
+ --enable-shell
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+ cd "$pkgdir"
+
+ install -d -m 0750 -o kea -g kea ./var/log/kea ./var/lib/kea
+
+ # keactrl is unnecessary since we provide OpenRC init scripts.
+ rm ./usr/sbin/keactrl ./etc/kea/keactrl.conf
+
+ rm -Rf ./run
+}
+
+dev() {
+ default_dev
+
+ amove ./usr/bin/kea-msg-compiler
+}
+
+admin() {
+ pkgdesc="Databases administration tools for Kea DHCP server"
+ depends="$pkgname-common=$pkgver-r$pkgrel"
+
+ amove ./usr/sbin/kea-admin
+ amove ./usr/share/kea
+}
+
+ctrlagent() {
+ pkgdesc="Kea Control Agent - REST service for controlling Kea DHCP server"
+ depends="$pkgname-common=$pkgver-r$pkgrel"
+
+ amove usr/sbin/kea-ctrl-agent
+ amove ./etc/kea/kea-ctrl-agent.conf
+
+ _install_initd kea-ctrl-agent
+}
+
+dhcpddns() {
+ pkgdesc="Kea DHCP Dynamic DNS Server"
+ depends="$pkgname-common=$pkgver-r$pkgrel"
+
+ amove ./usr/sbin/kea-dhcp-ddns
+ amove ./etc/kea/kea-dhcp-ddns.conf
+ amove ./usr/lib/libkea-asiodns.so.*
+ amove ./usr/lib/libkea-d2srv.so.*
+
+ _install_initd kea-dhcp-ddns
+}
+
+dhcp4() {
+ pkgdesc="Kea IPv4 DHCP Server"
+ depends="$pkgname-common=$pkgver-r$pkgrel"
+
+ amove ./usr/sbin/kea-dhcp4
+ amove ./etc/kea/kea-dhcp4.conf
+
+ _install_initd kea-dhcp4
+}
+
+dhcp6() {
+ pkgdesc="Kea IPv6 DHCP Server"
+ depends="$pkgname-common=$pkgver-r$pkgrel"
+
+ amove ./usr/sbin/kea-dhcp6
+ amove ./etc/kea/kea-dhcp6.conf
+
+ _install_initd kea-dhcp6
+}
+
+shell() {
+ pkgdesc="Text client for Kea DHCP Control Agent"
+ depends="python3"
+
+ amove ./usr/sbin/kea-shell
+ amove ./usr/lib/python3*
+}
+
+hook_mysql_cb() {
+ pkgdesc="Kea MySQL Configuration Backend hooks library"
+ depends=""
+
+ amove ./usr/lib/kea/hooks/libdhcp_mysql_cb.so
+}
+
+hook_pgsql_cb() {
+ pkgdesc="Kea PostgreSQL Configuration Backend hooks library"
+ depends=""
+
+ amove ./usr/lib/kea/hooks/libdhcp_pgsql_cb.so
+}
+
+hook_ha() {
+ pkgdesc="Kea High Availability hooks library"
+ depends="$pkgname-hook-lease-cmds"
+
+ amove ./usr/lib/kea/hooks/libdhcp_ha.so
+}
+
+hook_stat_cmds() {
+ pkgdesc="Kea Statistics Commands hooks library"
+ depends=""
+
+ amove ./usr/lib/kea/hooks/libdhcp_stat_cmds.so
+}
+
+hook_lease_cmds() {
+ pkgdesc="Kea Lease Commands hooks library"
+ depends=""
+
+ amove ./usr/lib/kea/hooks/libdhcp_lease_cmds.so
+}
+
+hook_flex_option() {
+ pkgdesc="Kea Flexible Option hooks library"
+ depends=""
+
+ amove ./usr/lib/kea/hooks/libdhcp_flex_option.so
+}
+
+hook_bootp() {
+ pkgdesc="Kea BOOTP hooks library"
+ depends=""
+
+ amove ./usr/lib/kea/hooks/libdhcp_bootp.so
+}
+
+hook_run_script() {
+ pkgdesc="Kea Run Script hooks library"
+ depends=""
+
+ amove ./usr/lib/kea/hooks/libdhcp_run_script.so
+}
+
+common() {
+ pkgdesc="Common files and libraries for Kea DHCP Server"
+ replaces="kea-utils" # for backward compatibility
+ provides="kea-utils=$pkgver-r$pkgrel kea-http=$pkgver-r$pkgrel" # for backward compatibility
+ depends=""
+
+ mkdir -p "$subpkgdir"
+ mv "$pkgdir"/* "$subpkgdir"/
+}
+
+_install_initd() {
+ local name="$1"
+
+ local caps='^cap_net_bind_service'
+ case "$name" in
+ kea-dhcp4) caps="$caps,^cap_net_raw";;
+ kea-ctrl-agent) caps='';;
+ esac
+
+ install -Dm755 "$srcdir"/kea.initd.in "$subpkgdir"/etc/init.d/$name
+ install -Dm644 "$srcdir"/kea.confd.in "$subpkgdir"/etc/conf.d/$name
+ # /^capabilities... is to remove this variable when it's rendered empty (see #15048).
+ sed -i \
+ -e "s|@@NAME@@|$name|g" \
+ -e "s|@@CAPABILITIES@@|$caps|" \
+ -e '/^capabilities=""/d' \
+ "$subpkgdir"/etc/init.d/$name \
+ "$subpkgdir"/etc/conf.d/$name
+}
+
+sha512sums="
+b8a3b6f2cae213fd9826c37568c71d3458f52eed973dbe437a1d0974dafa026635a730d828c6ff03b32e030be57d75a7914a8ca313833e91d9996b6a05b2b224 kea-2.4.1.tar.gz
+9008df39883884db5fb4a6551d92262b465c186275bebd45358bdd25a637517c5613634f7541c226869dd8ca4118230726bf250b1d4c5198f3c5079527c72440 disable-db-tests.patch
+3439046a80de33b31bf3f12e3c9728e47119e245fb888a1e4484a443b20e7b364f0e15e10fa96b4fcfcec29e6d2828ba9ab728a83028546a9c28f30fc404512d configs-fix-paths.patch
+52de95e9b4de3e518b4fbbce19799230684a2924433e666c24b866e537ffeaea9cd16b0b41499a17dd3ed528be1f899e94e67f6e464d551149b850cdbf29c1b2 put-LOCKFILE_DIR-to-runstatedir.patch
+100b70f3ccecb46b98e9fd599ab6f0c3aa191d862d914ed84f4d34efea0cc119817d1e14b967c0f5024614af1ef6841a8d12e789945cad147d943965f194ece1 move-api-files-to-doc.patch
+eef973da24aaa3dd1b02925d6be1f59caa363a7721e2e4dd6bd8553b0c351961f7436b21c32cbc6acdf90cf99a7fe7daa954c8ce4dbd0eda36844f566b126c48 kea-admin-remove-builddir.patch
+8feb09cf184c3128b8f434e896f062d12e978a3fda435bb57389756cf0290ba993604fc2512101b7d7865c7be831d9fe6519c9e16885c7e737ea63513ed9135f python3.12.patch
+e2f77a403b1c84918c92acf8c22d4bd3ea3662d109c334aebb4f55f1821901fbf287f0c1ac03f5de56227e888edc63667f54a0ee51fa4b654479f4e14841d11a kea.initd.in
+eb45671073174e319cd4fedb61c5f8664370f701856569c675a5aaa280bde974bdabbc30e733379b2e61b32dc2e1e94808b79f141de7c209109e874b2b4b5e8f kea.confd.in
+"
diff --git a/main/kea/configs-fix-paths.patch b/main/kea/configs-fix-paths.patch
new file mode 100644
index 00000000000..d2b3136d005
--- /dev/null
+++ b/main/kea/configs-fix-paths.patch
@@ -0,0 +1,116 @@
+* We have to move logs from /var/log to /var/log/kea to allow running
+ under unprivileged user.
+* /tmp is not a good location for control sockets, move them to /run/kea.
+
+--- a/src/bin/keactrl/kea-ctrl-agent.conf.pre
++++ b/src/bin/keactrl/kea-ctrl-agent.conf.pre
+@@ -32,15 +32,15 @@
+ "control-sockets": {
+ "dhcp4": {
+ "socket-type": "unix",
+- "socket-name": "/tmp/kea4-ctrl-socket"
++ "socket-name": "/run/kea/kea-dhcp4-ctrl.sock"
+ },
+ "dhcp6": {
+ "socket-type": "unix",
+- "socket-name": "/tmp/kea6-ctrl-socket"
++ "socket-name": "/run/kea/kea-dhcp6-ctrl.sock"
+ },
+ "d2": {
+ "socket-type": "unix",
+- "socket-name": "/tmp/kea-ddns-ctrl-socket"
++ "socket-name": "/run/kea/kea-dhcp-ddns-ctrl.sock"
+ }
+ },
+
+@@ -73,7 +73,7 @@
+ // - syslog (logs to syslog)
+ // - syslog:name (logs to syslog using specified name)
+ // Any other value is considered a name of the file
+- "output": "@localstatedir@/log/kea-ctrl-agent.log"
++ "output": "@localstatedir@/log/kea/kea-ctrl-agent.log"
+
+ // Shorter log pattern suitable for use with systemd,
+ // avoids redundant information
+--- a/src/bin/keactrl/kea-dhcp-ddns.conf.pre
++++ b/src/bin/keactrl/kea-dhcp-ddns.conf.pre
+@@ -23,7 +23,7 @@
+ "port": 53001,
+ "control-socket": {
+ "socket-type": "unix",
+- "socket-name": "/tmp/kea-ddns-ctrl-socket"
++ "socket-name": "/run/kea/kea-dhcp-ddns-ctrl.sock"
+ },
+ "tsig-keys": [],
+ "forward-ddns" : {},
+@@ -44,7 +44,7 @@
+ // - syslog (logs to syslog)
+ // - syslog:name (logs to syslog using specified name)
+ // Any other value is considered a name of the file
+- "output": "@localstatedir@/log/kea-ddns.log"
++ "output": "@localstatedir@/log/kea/kea-ddns.log"
+
+ // Shorter log pattern suitable for use with systemd,
+ // avoids redundant information
+--- a/src/bin/keactrl/kea-dhcp4.conf.pre
++++ b/src/bin/keactrl/kea-dhcp4.conf.pre
+@@ -49,7 +49,7 @@
+ // more. For detailed description, see Sections 8.8, 16 and 15.
+ "control-socket": {
+ "socket-type": "unix",
+- "socket-name": "/tmp/kea4-ctrl-socket"
++ "socket-name": "/run/kea/kea-dhcp4-ctrl.sock"
+ },
+
+ // Use Memfile lease database backend to store leases in a CSV file.
+@@ -429,7 +429,7 @@
+ // - syslog (logs to syslog)
+ // - syslog:name (logs to syslog using specified name)
+ // Any other value is considered a name of the file
+- "output": "@localstatedir@/log/kea-dhcp4.log"
++ "output": "@localstatedir@/log/kea/kea-dhcp4.log"
+
+ // Shorter log pattern suitable for use with systemd,
+ // avoids redundant information
+--- a/src/bin/keactrl/kea-dhcp6.conf.pre
++++ b/src/bin/keactrl/kea-dhcp6.conf.pre
+@@ -43,7 +43,7 @@
+ // description, see Sections 9.12, 16 and 15.
+ "control-socket": {
+ "socket-type": "unix",
+- "socket-name": "/tmp/kea6-ctrl-socket"
++ "socket-name": "/run/kea/kea-dhcp6-ctrl.sock"
+ },
+
+ // Use Memfile lease database backend to store leases in a CSV file.
+@@ -388,7 +388,7 @@
+ // - syslog (logs to syslog)
+ // - syslog:name (logs to syslog using specified name)
+ // Any other value is considered a name of the file
+- "output": "@localstatedir@/log/kea-dhcp6.log"
++ "output": "@localstatedir@/log/kea/kea-dhcp6.log"
+
+ // Shorter log pattern suitable for use with systemd,
+ // avoids redundant information
+--- a/src/bin/keactrl/kea-netconf.conf.pre
++++ b/src/bin/keactrl/kea-netconf.conf.pre
+@@ -69,7 +69,7 @@
+ // - syslog (logs to syslog)
+ // - syslog:name (logs to syslog using specified name)
+ // Any other value is considered a name of a time
+- "output": "@localstatedir@/log/kea-netconf.log"
++ "output": "@localstatedir@/log/kea/kea-netconf.log"
+
+ // Shorter log pattern suitable for use with systemd,
+ // avoids redundant information
+--- a/src/bin/keactrl/keactrl.in
++++ b/src/bin/keactrl/keactrl.in
+@@ -336,7 +336,7 @@
+ # to the default file.
+ if [ -z "${KEA_LOGGER_DESTINATION+x}" ]; then
+ prefix="@prefix@"
+- export KEA_LOGGER_DESTINATION="@localstatedir@/log/kea.log"
++ export KEA_LOGGER_DESTINATION="@localstatedir@/log/kea/kea.log"
+ fi
+
+ command=${1-}
diff --git a/main/kea/disable-db-tests.patch b/main/kea/disable-db-tests.patch
new file mode 100644
index 00000000000..6d254d17833
--- /dev/null
+++ b/main/kea/disable-db-tests.patch
@@ -0,0 +1,18 @@
+Tests for MySQL/PostgreSQL integration are kinda broken, they expect
+already initialized databases prepared for Kea tests.
+
+--- a/src/bin/admin/tests/Makefile.am
++++ b/src/bin/admin/tests/Makefile.am
+@@ -10,10 +10,10 @@
+ SHTESTS += admin_tests.sh
+ SHTESTS += memfile_tests.sh
+ if HAVE_MYSQL
+-SHTESTS += mysql_tests.sh
++#SHTESTS += mysql_tests.sh
+ endif
+ if HAVE_PGSQL
+-SHTESTS += pgsql_tests.sh
++#SHTESTS += pgsql_tests.sh
+ endif
+
+ # Run tests on "make check".
diff --git a/main/kea/kea-admin-remove-builddir.patch b/main/kea/kea-admin-remove-builddir.patch
new file mode 100644
index 00000000000..de6be64899b
--- /dev/null
+++ b/main/kea/kea-admin-remove-builddir.patch
@@ -0,0 +1,19 @@
+Patch-Source: https://sources.debian.org/src/isc-kea/1.5.0-2/debian/patches/0003-kea_admin_fix/ (modified)
+--
+From: Kea <isc-kea@packages.debian.org>
+Date: Tue, 19 Feb 2019 12:39:35 +0000
+Subject: kea_admin_fix
+
+Removed the fallback to the build version of kea-admin since it will not exist on users hosts.
+
+--- a/src/bin/admin/kea-admin.in
++++ b/src/bin/admin/kea-admin.in
+@@ -50,8 +50,6 @@
+ # Include the installed admin-utils.sh if available. Fallback to sources otherwise.
+ if test -f "@datarootdir@/@PACKAGE_NAME@/scripts/admin-utils.sh"; then
+ . "@datarootdir@/@PACKAGE_NAME@/scripts/admin-utils.sh"
+-else
+- . "@abs_top_builddir@/src/bin/admin/admin-utils.sh"
+ fi
+
+ # Find the installed kea-lfc if available. Fallback to sources otherwise.
diff --git a/main/kea/kea-common.post-upgrade b/main/kea/kea-common.post-upgrade
new file mode 100644
index 00000000000..b873f3150cc
--- /dev/null
+++ b/main/kea/kea-common.post-upgrade
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+ver_old="$2"
+
+if [ "$(apk version -t "$ver_old" '2.0.0-r0')" = '<' ]; then
+ cat >&2 <<-EOF
+ *
+ * Kea BOOTP hook has been moved to a subpackage. If you use it, run
+ * apk add kea-hook-bootp
+ *
+ EOF
+fi
+
+exit 0
diff --git a/main/kea/kea-common.pre-install b/main/kea/kea-common.pre-install
new file mode 100644
index 00000000000..820a35b364c
--- /dev/null
+++ b/main/kea/kea-common.pre-install
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+addgroup -S kea 2>/dev/null
+adduser -S -D -H -h /var/lib/kea -s /sbin/nologin -G kea -g "Kea" kea 2>/dev/null
+
+exit 0
diff --git a/main/kea/kea.confd.in b/main/kea/kea.confd.in
new file mode 100644
index 00000000000..2a2289eb04f
--- /dev/null
+++ b/main/kea/kea.confd.in
@@ -0,0 +1,17 @@
+# Configuration for /etc/init.d/@@NAME@@
+
+# Path to @@NAME@@ configuration file.
+#cfgfile="/etc/kea/@@NAME@@.conf"
+
+# Specifies the logging output; one of:
+# - stdout - log to standard output
+# - stderr - log to standard error
+# - syslog:<facility> - log via syslog (default facility is local0)
+# - <filepath> - log to file <filepath>
+#logger_dest="syslog"
+
+# The user (and group) to run @@NAME@@ daemon.
+#command_user="kea"
+
+# Comment out to run without process supervisor.
+supervisor=supervise-daemon
diff --git a/main/kea/kea.initd.in b/main/kea/kea.initd.in
new file mode 100644
index 00000000000..383465d8f49
--- /dev/null
+++ b/main/kea/kea.initd.in
@@ -0,0 +1,45 @@
+#!/sbin/openrc-run
+
+: ${cfgfile:="/etc/kea/@@NAME@@.conf"}
+: ${logger_dest:="syslog"}
+: ${command_user:="kea"}
+: ${retry:="SIGTERM/5/SIGINT/1/SIGKILL/1"}
+: ${wait:=300}
+
+name="@@NAME@@"
+extra_commands="checkconfig"
+description_checkconfig="Checks configuration file for errors"
+
+command="/usr/sbin/@@NAME@@"
+command_args="-c $cfgfile"
+command_background="yes"
+pidfile="/run/$RC_SVCNAME.pid"
+
+start_stop_daemon_args="--wait $wait $start_stop_daemon_args"
+# The leading space is to avoid fallback to $start_stop_daemon_args when this
+# is empty (supervise-daemon doesn't support --wait).
+supervise_daemon_args=" $supervise_daemon_args"
+
+capabilities="@@CAPABILITIES@@"
+
+depend() {
+ need net
+ after firewall
+}
+
+start_pre() {
+ checkpath -d -m 0750 -o $command_user -q /run/kea /run/kea/lock || return 1
+ case "$logger_dest" in
+ /*) checkpath -f -m 0640 -o $command_user "$logger_dest" || return 1
+ esac
+
+ export KEA_LOGGER_DESTINATION="$logger_dest"
+
+ checkconfig
+}
+
+checkconfig() {
+ ebegin "Checking $name configuration"
+ $command -t "$cfgfile" >/dev/null
+ eend $?
+}
diff --git a/main/kea/move-api-files-to-doc.patch b/main/kea/move-api-files-to-doc.patch
new file mode 100644
index 00000000000..d90d9157294
--- /dev/null
+++ b/main/kea/move-api-files-to-doc.patch
@@ -0,0 +1,18 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Tue, 26 Oct 2021 22:40:00 +0200
+Subject: [PATCH] Move api files to /usr/share/doc/kea
+
+--- a/src/share/api/Makefile.am
++++ b/src/share/api/Makefile.am
+@@ -10,8 +10,8 @@
+ EXTRA_DIST += $(api_files)
+
+ install-data-local:
+- mkdir -p $(DESTDIR)$(datarootdir)/${PACKAGE_NAME}/api
+- cp $(api_files) $(DESTDIR)$(datarootdir)/${PACKAGE_NAME}/api
++ mkdir -p $(DESTDIR)$(datarootdir)/doc/${PACKAGE_NAME}/api
++ cp $(api_files) $(DESTDIR)$(datarootdir)/doc/${PACKAGE_NAME}/api
+
+ uninstall-local:
+- rm -rf $(DESTDIR)$(datarootdir)/${PACKAGE_NAME}/api
++ rm -rf $(DESTDIR)$(datarootdir)/doc/${PACKAGE_NAME}/api
diff --git a/main/kea/put-LOCKFILE_DIR-to-runstatedir.patch b/main/kea/put-LOCKFILE_DIR-to-runstatedir.patch
new file mode 100644
index 00000000000..edf4823c23d
--- /dev/null
+++ b/main/kea/put-LOCKFILE_DIR-to-runstatedir.patch
@@ -0,0 +1,13 @@
+This patch is based on https://sources.debian.org/src/isc-kea/1.5.0-2/debian/patches/0005-Put-KEA_LOCKFILE_DIR-to-runstatedir.patch/
+
+--- a/src/lib/log/interprocess/Makefile.am
++++ b/src/lib/log/interprocess/Makefile.am
+@@ -1,7 +1,7 @@
+ SUBDIRS = . tests
+
+ AM_CPPFLAGS = -I$(top_srcdir)/src/lib -I$(top_builddir)/src/lib
+-AM_CPPFLAGS += -DLOCKFILE_DIR=\"$(localstatedir)/run/$(PACKAGE_NAME)\"
++AM_CPPFLAGS += -DLOCKFILE_DIR=\"$(runstatedir)/$(PACKAGE_NAME)\"
+ AM_CPPFLAGS += $(BOOST_INCLUDES)
+
+ AM_CXXFLAGS = $(KEA_CXXFLAGS)
diff --git a/main/kea/python3.12.patch b/main/kea/python3.12.patch
new file mode 100644
index 00000000000..5619bf90a2e
--- /dev/null
+++ b/main/kea/python3.12.patch
@@ -0,0 +1,90 @@
+From 9ba2f0ddbcf08d4d67baffa8779abff7042a1c96 Mon Sep 17 00:00:00 2001
+From: Karl Berry <karl@freefriends.org>
+Date: Tue, 25 Feb 2020 18:07:15 -0800
+Subject: python: support both Python 2 and 3 in py-compile
+
+* lib/py-compile: check python major version and use imp
+or importlib accordingly, plus related changes. Original
+patch for Python 3 only from Gabriel Ganne at:
+https://lists.gnu.org/archive/html/automake-patches/2019-07/msg00002.html
+---
+ lib/py-compile | 33 ++++++++++++++++++++++++++-------
+ 1 file changed, 26 insertions(+), 7 deletions(-)
+
+(limited to 'lib/py-compile')
+
+diff --git a/lib/py-compile b/lib/py-compile
+index f2be7d0..e56d98d 100755
+--- a/py-compile
++++ b/py-compile
+@@ -1,7 +1,7 @@
+ #!/bin/sh
+ # py-compile - Compile a Python program
+
+-scriptversion=2018-03-07.03; # UTC
++scriptversion=2020-02-19.23; # UTC
+
+ # Copyright (C) 2000-2020 Free Software Foundation, Inc.
+
+@@ -115,8 +115,27 @@ else
+ filetrans="filepath = os.path.normpath('$destdir' + os.sep + path)"
+ fi
+
++python_major=$($PYTHON -V 2>&1 | sed -e 's/.* //;s/\..*$//;1q')
++if test -z "$python_major"; then
++ echo "$me: could not determine $PYTHON major version, guessing 3" >&2
++ python_major=3
++fi
++
++# The old way to import libraries was deprecated.
++if test "$python_major" -le 2; then
++ import_lib=imp
++ import_test="hasattr(imp, 'get_tag')"
++ import_call=imp.cache_from_source
++ import_arg2=', False' # needed in one call and not the other
++else
++ import_lib=importlib
++ import_test="hasattr(sys.implementation, 'cache_tag')"
++ import_call=importlib.util.cache_from_source
++ import_arg2=
++fi
++
+ $PYTHON -c "
+-import sys, os, py_compile, imp
++import sys, os, py_compile, $import_lib
+
+ files = '''$files'''
+
+@@ -129,15 +148,15 @@ for file in files.split():
+ continue
+ sys.stdout.write(file)
+ sys.stdout.flush()
+- if hasattr(imp, 'get_tag'):
+- py_compile.compile(filepath, imp.cache_from_source(filepath), path)
++ if $import_test:
++ py_compile.compile(filepath, $import_call(filepath), path)
+ else:
+ py_compile.compile(filepath, filepath + 'c', path)
+ sys.stdout.write('\n')" || exit $?
+
+ # this will fail for python < 1.5, but that doesn't matter ...
+ $PYTHON -O -c "
+-import sys, os, py_compile, imp
++import sys, os, py_compile, $import_lib
+
+ # pypy does not use .pyo optimization
+ if hasattr(sys, 'pypy_translation_info'):
+@@ -153,8 +172,8 @@ for file in files.split():
+ continue
+ sys.stdout.write(file)
+ sys.stdout.flush()
+- if hasattr(imp, 'get_tag'):
+- py_compile.compile(filepath, imp.cache_from_source(filepath, False), path)
++ if $import_test:
++ py_compile.compile(filepath, $import_call(filepath$import_arg2), path)
+ else:
+ py_compile.compile(filepath, filepath + 'o', path)
+ sys.stdout.write('\n')" 2>/dev/null || :
+--
+cgit v1.1
+
diff --git a/main/keyutils/APKBUILD b/main/keyutils/APKBUILD
index ea20f5e44b3..7172031166a 100644
--- a/main/keyutils/APKBUILD
+++ b/main/keyutils/APKBUILD
@@ -2,12 +2,12 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=keyutils
pkgver=1.6.3
-pkgrel=1
+pkgrel=3
pkgdesc="Linux Key Management Utilities"
url="https://people.redhat.com/~dhowells/keyutils/"
arch="all"
options="!check" # Test suite requires RPM.
-license="GPL-2.0-or-later LGPL-2.0-or-later"
+license="GPL-2.0-or-later AND LGPL-2.0-or-later"
makedepends="file linux-headers"
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
source="https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git/snapshot/keyutils-$pkgver.tar.gz"
diff --git a/main/kmod/APKBUILD b/main/kmod/APKBUILD
index 47e7ed8d71e..2819f90e4c2 100644
--- a/main/kmod/APKBUILD
+++ b/main/kmod/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=kmod
-pkgver=30
+pkgver=32
pkgrel=0
pkgdesc="Linux kernel module management utilities"
url="http://git.kernel.org/?p=utils/kernel/kmod/kmod.git;a=summary"
@@ -10,22 +10,24 @@ options="!check" # https://bugs.gentoo.org/408915#c3
license="GPL-2.0-or-later"
# gnu sed is needed for symlink
makedepends_build="sed libxslt"
-makedepends_host="$depends_dev zlib-dev xz-dev zstd-dev openssl-dev"
+makedepends_host="$depends_dev zlib-dev xz-dev zstd-dev openssl-dev>3"
makedepends="$makedepends_build $makedepends_host"
triggers="$pkgname.trigger=/lib/modules/*"
subpackages="
$pkgname-dev
$pkgname-doc
- $pkgname-openrc
$pkgname-libs
$pkgname-bash-completion
"
source="https://kernel.org/pub/linux/utils/kernel/kmod/kmod-$pkgver.tar.xz
strndupa.patch
- kmod-static-nodes.initd
+ portable-basename.patch
"
build() {
+ if [ -z "$BOOTSTRAP" ]; then
+ export CFLAGS="$CFLAGS -flto=auto"
+ fi
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -45,13 +47,8 @@ package() {
local i
mkdir -p "$pkgdir"/sbin
for i in lsmod rmmod insmod modinfo modprobe depmod; do
- ln -sf ../bin/kmod "$pkgdir"/sbin/$i
+ ln -sf ../bin/$i "$pkgdir"/sbin/$i
done
- for i in lsmod modinfo; do
- ln -s kmod "$pkgdir"/bin/$i
- done
- install -Dm755 "$srcdir"/kmod-static-nodes.initd \
- "$pkgdir"/etc/init.d/kmod-static-nodes
}
libs() {
@@ -60,7 +57,7 @@ libs() {
}
sha512sums="
-e2cd34e600a72e44710760dfda9364b790b8352a99eafbd43e683e4a06f37e6b5c0b5d14e7c28070e30fc5fc6ceddedf7b97f3b6c2c5c2d91204fefd630b9a3e kmod-30.tar.xz
+29162135aabd025dff178a4147a754b5da5964855dbeee65ca867dec3b84437f35c1c97f0f027e974a021d3ee9a4940309a716859cc3cfe93c7ed0aada338f24 kmod-32.tar.xz
f2ea3527bfba182c5e15557c224a5bba8c7e2ea3d21cf604e6eb2277226dcf983c3aeb9ac44a322c7f2b4942b35135da999d63a5b946b829d3f3b09c050a0f17 strndupa.patch
-7f0f89fe98167f71b7924f341ba701d001158225463c2f5e39f706a0224b1e952ee901b441f28cb15787563e83bb6e54eb752bf8669ae7c0ffbb11984542f354 kmod-static-nodes.initd
+5fc41a7c4ea3ad3e33516ebdf8d19ac7ce0223d75a3e99f185e8a7fd71007b9d2e2d850e319b122d470cd95f45098a5a39faa21a17c0fb82124138f97db9d85c portable-basename.patch
"
diff --git a/main/kmod/kmod-static-nodes.initd b/main/kmod/kmod-static-nodes.initd
deleted file mode 100644
index ef8912f60b7..00000000000
--- a/main/kmod/kmod-static-nodes.initd
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/kmod/files/kmod-static-nodes-r1,v 1.1 2014/07/11 12:28:07 ssuominen Exp $
-
-description="Create list of required static device nodes for the current kernel"
-
-depend() {
- after dev-mount
- before tmpfiles.dev dev
- keyword -lxc
-}
-
-start() {
- ebegin "Creating list of required static device nodes for the current kernel"
- checkpath -q -d /run/tmpfiles.d
- kmod static-nodes --format=tmpfiles --output=/run/tmpfiles.d/kmod.conf
- eend $?
-}
diff --git a/main/kmod/kmod.trigger b/main/kmod/kmod.trigger
index 1693ea1eaea..4516d8a0708 100644
--- a/main/kmod/kmod.trigger
+++ b/main/kmod/kmod.trigger
@@ -1,8 +1,21 @@
#!/bin/sh
for i in "$@"; do
- if [ -d "$i" ]; then
+ if [ -e "$i"/modules.order ]; then
/sbin/depmod ${i#/lib/modules/}
- fi
+ else
+ #clean up on uninstall
+ rm -f "$i"/modules.alias \
+ "$i"/modules.builtin.alias.bin \
+ "$i"/modules.dep \
+ "$i"/modules.devname \
+ "$i"/modules.symbols \
+ "$i"/modules.alias.bin \
+ "$i"/modules.builtin.bin \
+ "$i"/modules.dep.bin \
+ "$i"/modules.softdep \
+ "$i"/modules.symbols.bin
+ rmdir "$i" 2>/dev/null || :
+ fi
done
diff --git a/main/kmod/portable-basename.patch b/main/kmod/portable-basename.patch
new file mode 100644
index 00000000000..ddaab288278
--- /dev/null
+++ b/main/kmod/portable-basename.patch
@@ -0,0 +1,106 @@
+Upstream PR #32
+
+musl has removed the non-prototype declaration of basename from
+string.h [1] which now results in build errors with clang-17+
+compiler.
+
+https://github.com/kmod-project/kmod/pull/32
+
+---
+
+diff -aur a/libkmod/libkmod-config.c b/libkmod/libkmod-config.c
+--- a/libkmod/libkmod-config.c
++++ b/libkmod/libkmod-config.c
+@@ -794,7 +794,7 @@
+ bool is_single = false;
+
+ if (name == NULL) {
+- name = basename(path);
++ name = gnu_basename(path);
+ is_single = true;
+ }
+
+diff -aur a/shared/util.c b/shared/util.c
+--- a/shared/util.c
++++ b/shared/util.c
+@@ -172,9 +172,9 @@
+
+ char *path_to_modname(const char *path, char buf[static PATH_MAX], size_t *len)
+ {
+- char *modname;
++ const char *modname;
+
+- modname = basename(path);
++ modname = gnu_basename(path);
+ if (modname == NULL || modname[0] == '\0')
+ return NULL;
+
+diff -aur a/shared/util.h b/shared/util.h
+--- a/shared/util.h
++++ b/shared/util.h
+@@ -5,6 +5,7 @@
+ #include <stdbool.h>
+ #include <stdlib.h>
+ #include <stdio.h>
++#include <string.h>
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <time.h>
+@@ -76,6 +77,12 @@
+ __p->__v = (val); \
+ } while(0)
+
++static _always_inline_ const char *gnu_basename(const char *s)
++{
++ const char *p = strrchr(s, '/');
++ return p ? p+1 : s;
++}
++
+ static _always_inline_ unsigned int ALIGN_POWER2(unsigned int u)
+ {
+ return 1 << ((sizeof(u) * 8) - __builtin_clz(u - 1));
+diff -aur a/testsuite/testsuite.c b/testsuite/testsuite.c
+--- a/testsuite/testsuite.c
++++ b/testsuite/testsuite.c
+@@ -70,7 +70,7 @@
+
+ printf("Usage:\n"
+ "\t%s [options] <test>\n"
+- "Options:\n", basename(progname));
++ "Options:\n", gnu_basename(progname));
+
+ for (itr = options, itr_short = options_short;
+ itr->name != NULL; itr++, itr_short++)
+diff -aur a/tools/depmod.c b/tools/depmod.c
+--- a/tools/depmod.c
++++ b/tools/depmod.c
+@@ -761,7 +761,7 @@
+ if (name != NULL)
+ namelen = strlen(name);
+ else {
+- name = basename(dir);
++ name = gnu_basename(dir);
+ namelen = strlen(name);
+ dirlen -= namelen + 1;
+ }
+diff -aur a/tools/kmod.c b/tools/kmod.c
+--- a/tools/kmod.c
++++ b/tools/kmod.c
+@@ -68,7 +68,7 @@
+ "Options:\n"
+ "\t-V, --version show version\n"
+ "\t-h, --help show this help\n\n"
+- "Commands:\n", basename(argv[0]));
++ "Commands:\n", gnu_basename(argv[0]));
+
+ for (i = 0; i < ARRAY_SIZE(kmod_cmds); i++) {
+ if (kmod_cmds[i]->help != NULL) {
+@@ -156,7 +156,7 @@
+ const char *cmd;
+ size_t i;
+
+- cmd = basename(argv[0]);
++ cmd = gnu_basename(argv[0]);
+
+ for (i = 0; i < ARRAY_SIZE(kmod_compat_cmds); i++) {
+ if (streq(kmod_compat_cmds[i]->name, cmd))
diff --git a/main/knock/APKBUILD b/main/knock/APKBUILD
index 2a9c6034716..9336f5fa49f 100644
--- a/main/knock/APKBUILD
+++ b/main/knock/APKBUILD
@@ -2,9 +2,9 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=knock
pkgver=0.8.2
-pkgrel=0
+pkgrel=2
pkgdesc="A simple port-knocking daemon"
-url="https://www.zeroflux.org/projects/knock"
+url="https://github.com/TDFKAOlli/knock"
arch="all"
license="GPL-2.0-or-later"
depends="iptables"
@@ -12,13 +12,12 @@ makedepends="libpcap-dev autoconf automake"
subpackages="$pkgname-doc $pkgname-openrc"
# Original hasnt been maintained in a long time - use this fork instead - includes IPv6 support
_fork="TDFKAOlli"
-source="$pkgname-$pkgver.tar.gz::https://github.com/$_fork/knock/archive/${pkgver}.tar.gz
+source="$pkgname-$pkgver.tar.gz::https://github.com/$_fork/knock/archive/$pkgver.tar.gz
knock.initd
knock.confd"
options="!check"
build() {
- cd "$builddir"
autoreconf -fi
./configure \
--build=$CBUILD \
@@ -31,7 +30,6 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
install -m755 -D "$srcdir"/$pkgname.initd \
diff --git a/main/knot/APKBUILD b/main/knot/APKBUILD
index dff7f5614b0..463d754204d 100644
--- a/main/knot/APKBUILD
+++ b/main/knot/APKBUILD
@@ -4,12 +4,11 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=knot
-pkgver=3.1.8
-pkgrel=1
+pkgver=3.3.5
+pkgrel=0
pkgdesc="An high-performance authoritative-only DNS server"
url="https://www.knot-dns.cz/"
-# testsuite fails on 32 bit arches with musl 1.2
-arch="all !x86 !armhf !armv7"
+arch="all"
license="GPL-3.0-or-later"
depends_dev="
$pkgname=$pkgver-r$pkgrel
@@ -26,13 +25,14 @@ makedepends="
jansson-dev
libcap-ng-dev
libedit-dev
- libidn-dev
+ libidn2-dev
libtool
lmdb-dev
m4
libmaxminddb-dev
nghttp2-dev
- openssl1.1-compat-dev
+ ngtcp2-dev
+ openssl-dev>3
perl
protobuf-c-dev
sed
@@ -52,21 +52,17 @@ subpackages="
$pkgname-doc
$pkgname-openrc
"
-source="https://secure.nic.cz/files/$pkgname-dns/$pkgname-$pkgver.tar.xz
+source="https://secure.nic.cz/files/knot-dns/knot-$pkgver.tar.xz
knotd.confd
knotd.initd
"
-# tests fail due to alignment problems on armv6
-[ "$CARCH" = "armhf" ] && options="!check"
-
# link against gcc libatomic on riscv64
[ "$CARCH" = "riscv64" ] && export LDFLAGS="$LDFLAGS -latomic"
prepare() {
default_prepare
- cd "$builddir"
# Make sure embedded LMDB library is not used.
rm -rf src/contrib/lmdb
}
@@ -79,6 +75,7 @@ build() {
--sysconfdir=/etc \
--libexecdir="/usr/lib/$pkgname" \
--enable-maxminddb \
+ --enable-quic=yes \
--with-rundir="/run/$pkgname" \
--with-storage="/var/lib/$pkgname" \
--with-module-dnstap=shared \
@@ -130,7 +127,7 @@ gpg_signature_extensions="asc"
gpgfingerprints="good:742F A4E9 5829 B6C5 EAC6 B857 10BB 7AF6 FEBB D6AB"
sha512sums="
-af72cbcc5b511dad148e7ce990819df00bdf99c110b44b3b521eddd8690a6ebd4c76c24e63d843956971d5f158bbfa851804616630d34f3a0ec06888c78ecf2c knot-3.1.8.tar.xz
+f0e22514aba4bdf01d3e21f1e8a61852a0cabcd12bfa0d955c36bb127bb57448f38f8bdb45fe40fdd0d15abe8a707288c1dbbe96ef14d8918c4ddc5f3edf97ea knot-3.3.5.tar.xz
471d3c639a8235ba09491c99d36c0a4f1074d6055ccfd3807be02a30d3ed5bbe69a84f0414ea7810db6bbc1e38f5837108e5744fc59f949ed78a262a7de4597e knotd.confd
-979f06a83dd4326920a682f8190319577faf904e0e379b3c55e0420eb43dcb55d86c6727015634fa0c2dff1dddac43bbd5a216ff04f217ad91d670eb899dbefa knotd.initd
+352f9f85344743670e1ed2be3a4b9e6ddffa47fcc1958c3b903713a7437da02a1ec0521d73289a826e1d6bd5ad24553116757a5763e3c2b3dba74b3220937dbb knotd.initd
"
diff --git a/main/knot/knotd.initd b/main/knot/knotd.initd
index 781346216ca..6ae461267e1 100644
--- a/main/knot/knotd.initd
+++ b/main/knot/knotd.initd
@@ -16,7 +16,8 @@ depend() {
}
start_pre() {
- checkpath -d -m 0750 -o knot:knot /run/knot/ /var/lib/knot/
+ checkpath -d -m 0751 -o knot:knot /run/knot/
+ checkpath -d -m 0750 -o knot:knot /var/lib/knot/
}
stop() {
diff --git a/main/krb5/APKBUILD b/main/krb5/APKBUILD
index 2e1fc420dfd..149af55aa03 100644
--- a/main/krb5/APKBUILD
+++ b/main/krb5/APKBUILD
@@ -1,14 +1,14 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=krb5
-pkgver=1.19.3
+pkgver=1.21.2
pkgrel=0
pkgdesc="The Kerberos network authentication system"
url="https://web.mit.edu/kerberos/www/"
arch="all"
license="MIT"
depends="krb5-conf"
-depends_dev="e2fsprogs-dev"
-makedepends="$depends_dev libverto-dev openldap-dev openssl1.1-compat-dev
+depends_dev="e2fsprogs-dev libverto-dev"
+makedepends="$depends_dev openldap-dev openssl-dev>3
keyutils-dev bison flex perl"
options="suid !check" # https://gitlab.alpinelinux.org/alpine/aports/-/issues/13155
subpackages="$pkgname-dev $pkgname-doc $pkgname-server
@@ -21,7 +21,6 @@ case $pkgver in
esac
source="https://web.mit.edu/kerberos/dist/krb5/$_maj_min/krb5-$pkgver.tar.gz
- mit-krb5_krb5-config_LDFLAGS.patch
krb5kadmind.initd
krb5kdc.initd
@@ -30,6 +29,8 @@ source="https://web.mit.edu/kerberos/dist/krb5/$_maj_min/krb5-$pkgver.tar.gz
builddir="$srcdir/$pkgname-$pkgver/src"
# secfixes:
+# 1.20.1-r0:
+# - CVE-2022-42898
# 1.19.3-r0:
# - CVE-2021-37750
# 1.18.4-r0:
@@ -120,8 +121,7 @@ libs() {
}
sha512sums="
-18235440d6f7d8a72c5d7ca5cd8c6465e8adf091d85c483225c7b00d64b4688c1c7924cb800c2fc17e590b2709f1a9de48e6ec79f6debd11dcb7d6fa16c6f351 krb5-1.19.3.tar.gz
-5c62cbcbf1ef0462323f3392a362b42ed301967a1de80ddcb27eece4fad23efeeb5f04f5af521cfffff36b918bb93813262aa62785e59d6cb5af437a2c9e886d mit-krb5_krb5-config_LDFLAGS.patch
+4e09296b412383d53872661718dbfaa90201e0d85f69db48e57a8d4bd73c95a90c7ec7b6f0f325f6bc967f8d203b256b071c0191facf080aca0e2caec5d0ac49 krb5-1.21.2.tar.gz
43b9885b7eb8d0d60920def688de482f2b1701288f9acb1bb21dc76b2395428ff304961959eb04ba5eafd0412bae35668d6d2c8223424b9337bc051eadf51682 krb5kadmind.initd
ede15f15bbbc9d0227235067abe15245bb9713aea260d397379c63275ce74aea0db6c91c15d599e40c6e89612d76f3a0f8fdd21cbafa3f30d426d4310d3e2cec krb5kdc.initd
45be0d421efd41e9dd056125a750c90856586e990317456b68170d733b03cba9ecd18ab87603b20e49575e7839fb4a6d628255533f2631f9e8ddb7f3cc493a90 krb5kpropd.initd
diff --git a/main/krb5/mit-krb5_krb5-config_LDFLAGS.patch b/main/krb5/mit-krb5_krb5-config_LDFLAGS.patch
deleted file mode 100644
index 9ae52264cde..00000000000
--- a/main/krb5/mit-krb5_krb5-config_LDFLAGS.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-Bug #448778
---- a/build-tools/krb5-config.in
-+++ b/build-tools/krb5-config.in
-@@ -221,7 +221,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/main/kyua/APKBUILD b/main/kyua/APKBUILD
index a8ceaaa7da9..ad4313eeba9 100644
--- a/main/kyua/APKBUILD
+++ b/main/kyua/APKBUILD
@@ -1,16 +1,20 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=kyua
pkgver=0.13
-pkgrel=5
+pkgrel=8
pkgdesc="testing framework for infrastructure software"
-url="https://github.com/jmmv/kyua"
+url="https://github.com/freebsd/kyua"
arch="all"
license="BSD-3-Clause"
makedepends="atf-dev lutok-dev sqlite-dev"
subpackages="$pkgname-dbg $pkgname-doc"
-source="https://github.com/jmmv/kyua/releases/download/kyua-$pkgver/kyua-$pkgver.tar.gz"
+source="https://github.com/freebsd/kyua/releases/download/kyua-$pkgver/kyua-$pkgver.tar.gz"
+options="!check"
build() {
+
+ # reduce size of debug syms
+ CFLAGS="$CFLAGS -g1" CXXFLAGS="$CXXFLAGS -g1" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -25,4 +29,6 @@ package() {
make -j1 DESTDIR="$pkgdir" install
}
-sha512sums="80ecf4fd888d4759122f3c1d1d5b06a19135e06f7bca1ef8458c7a5e78c1b6baff54969c863c93f11c40611ca256fc0334402531397b16788fb3ec701dd278ae kyua-0.13.tar.gz"
+sha512sums="
+80ecf4fd888d4759122f3c1d1d5b06a19135e06f7bca1ef8458c7a5e78c1b6baff54969c863c93f11c40611ca256fc0334402531397b16788fb3ec701dd278ae kyua-0.13.tar.gz
+"
diff --git a/main/lame/APKBUILD b/main/lame/APKBUILD
index 75a21d54843..1be22556321 100644
--- a/main/lame/APKBUILD
+++ b/main/lame/APKBUILD
@@ -1,15 +1,17 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lame
pkgver=3.100
-pkgrel=0
+pkgrel=5
pkgdesc="An MP3 encoder and graphical frame analyzer"
-url="http://lame.sourceforge.net/"
+url="https://lame.sourceforge.net/"
arch="all"
license="LGPL-2.0-or-later"
-subpackages="$pkgname-dev $pkgname-doc"
+subpackages="$pkgname-dev $pkgname-libs $pkgname-doc"
makedepends="nasm ncurses-dev autoconf automake libtool"
-source="https://downloads.sourceforge.net/project/lame/lame/$pkgver/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$pkgname-$pkgver
+source="https://downloads.sourceforge.net/project/lame/lame/$pkgver/lame-$pkgver.tar.gz
+ id3tagfix.patch
+ lame.pc.in
+ "
# secfixes:
# 3.99.5-r6:
@@ -21,8 +23,6 @@ builddir="$srcdir"/$pkgname-$pkgver
# - CVE-2017-11720
prepare() {
- cd "$builddir"
-
default_prepare
# fix for parallel builds
@@ -35,7 +35,6 @@ prepare() {
}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -44,19 +43,23 @@ build() {
--disable-mp3x \
--enable-shared \
--with-pic
-
make
}
check() {
- cd "$builddir"
make test
}
package() {
- cd "$builddir"
-
make DESTDIR="$pkgdir" install
+
+ mkdir -p "$pkgdir"/usr/lib/pkgconfig/
+ sed "s|@PKGVER@|$pkgver|" "$srcdir"/lame.pc.in \
+ > "$pkgdir"/usr/lib/pkgconfig/lame.pc
}
-sha512sums="0844b9eadb4aacf8000444621451277de365041cc1d97b7f7a589da0b7a23899310afd4e4d81114b9912aa97832621d20588034715573d417b2923948c08634b lame-3.100.tar.gz"
+sha512sums="
+0844b9eadb4aacf8000444621451277de365041cc1d97b7f7a589da0b7a23899310afd4e4d81114b9912aa97832621d20588034715573d417b2923948c08634b lame-3.100.tar.gz
+2b47995715c526c74e782ac34778b7075fad1fa16b5299e73b2c62cdf6bfa64ba0862d18e949565aff49c613d2468794dc6e336836ed4ebdb2e6ef67be8af5b0 id3tagfix.patch
+ace7813debdb2cd8b08c26e99db50776180b05105832db96ad0bb314dc3e1eadccfd14de3adab7b1a37b6df7d521b5216ed7d9c3c11d5bae388197debca58f0f lame.pc.in
+"
diff --git a/main/lame/id3tagfix.patch b/main/lame/id3tagfix.patch
new file mode 100644
index 00000000000..4b633f1cbeb
--- /dev/null
+++ b/main/lame/id3tagfix.patch
@@ -0,0 +1,29 @@
+Patch-Source: https://github.com/void-linux/void-packages/commit/ba30046be66be546c307c4186d54f448a674fb7e
+musl doesn't have translit, so just remove it
+--
+--- a/frontend/parse.c
++++ b/frontend/parse.c
+@@ -232,7 +232,11 @@
+ dst = calloc(n+4, 4);
+ if (dst != 0) {
+ char* cur_code = nl_langinfo(CODESET);
++#ifdef __GLIBC__
+ iconv_t xiconv = iconv_open("ISO_8859-1//TRANSLIT", cur_code);
++#else
++ iconv_t xiconv = iconv_open("ISO_8859-1", cur_code);
++#endif
+ if (xiconv != (iconv_t)-1) {
+ char* i_ptr = (char*)src;
+ char* o_ptr = dst;
+@@ -258,7 +262,11 @@
+ dst = calloc(n+4, 4);
+ if (dst != 0) {
+ char* cur_code = nl_langinfo(CODESET);
++#ifdef __GLIBC__
+ iconv_t xiconv = iconv_open("UTF-16LE//TRANSLIT", cur_code);
++#else
++ iconv_t xiconv = iconv_open("UTF-16LE", cur_code);
++#endif
+ dst[0] = 0xff;
+ dst[1] = 0xfe;
+ if (xiconv != (iconv_t)-1) {
diff --git a/main/lame/lame.pc.in b/main/lame/lame.pc.in
new file mode 100644
index 00000000000..327f6f4dc32
--- /dev/null
+++ b/main/lame/lame.pc.in
@@ -0,0 +1,10 @@
+prefix=/usr
+includedir=${prefix}/include
+libdir=${prefix}/lib
+
+Name: Lame
+Description: MP3 encoder/decoder
+Version: @PKGVER@
+Requires:
+Libs: -L${libdir} -lmp3lame
+Cflags: -I${includedir}/lame
diff --git a/main/lang/APKBUILD b/main/lang/APKBUILD
index 1030c2172c3..e3b24684423 100644
--- a/main/lang/APKBUILD
+++ b/main/lang/APKBUILD
@@ -2,11 +2,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lang
pkgver=0.1
-pkgrel=1
+pkgrel=2
pkgdesc="Meta package for translations"
url="https://alpinelinux.org"
arch="noarch"
license="GPL-2.0-only"
+depends="musl-locales"
+options="!check"
package() {
mkdir -p "$pkgdir"
diff --git a/main/lcms2/APKBUILD b/main/lcms2/APKBUILD
index 20a9e46ea38..58c44426f95 100644
--- a/main/lcms2/APKBUILD
+++ b/main/lcms2/APKBUILD
@@ -1,15 +1,20 @@
# Contributor: Sergei Lukin <sergej.lukin@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lcms2
-pkgver=2.13.1
+pkgver=2.16
pkgrel=0
pkgdesc="Color Management Engine"
url="https://www.littlecms.com"
arch="all"
-license="MIT GPL-3.0-only"
-depends_dev="libjpeg-turbo-dev tiff-dev zlib-dev"
-makedepends="$depends_dev"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-utils"
+license="MIT"
+depends_dev="
+ $pkgname-plugins=$pkgver-r$pkgrel
+ libjpeg-turbo-dev
+ tiff-dev
+ zlib-dev
+ "
+makedepends="$depends_dev meson"
+subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-utils $pkgname-plugins"
source="https://github.com/mm2/Little-CMS/releases/download/lcms$pkgver/lcms2-$pkgver.tar.gz"
# secfixes:
@@ -19,35 +24,38 @@ source="https://github.com/mm2/Little-CMS/releases/download/lcms$pkgver/lcms2-$p
# - CVE-2016-10165
build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --localstatedir=/var \
- --with-jpeg \
- --with-tiff \
- --with-zlib \
- --with-threads
- make
+ abuild-meson \
+ --default-library=both \
+ -Dfastfloat=true \
+ -Dthreaded=true \
+ -Dutils=true \
+ -Djpeg=enabled \
+ -Dtiff=enabled \
+ . output
+ meson compile -C output
}
check() {
- make check
+ meson test -t4 --no-rebuild -C output
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
utils() {
pkgdesc="Utility applications for lcms2"
- mkdir -p "$subpkgdir"/usr/
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+
+ amove usr/bin
+}
+
+plugins() {
+ pkgdesc="$pkgdesc (threaded + fast_float plugins)"
+ license="GPL-3.0-or-later"
+
+ amove usr/lib/liblcms2_*.so
}
sha512sums="
-214ec63fa086b580a6507d493a54ccf5faf02c40e149d71e41f9fc8510efdb16554621c96d91cc886f09682c9631b10aa194b4b67eb6ffcc871d5d4666b05617 lcms2-2.13.1.tar.gz
+638dd6ad6787456c8145510d18b2d0727bd0a446a13ac2934aabc9531d1156eca2a2c0fd780a453823fbd35a1895f9d8de5dc4b3cab505459dd3f0535b4e837d lcms2-2.16.tar.gz
"
diff --git a/main/ldapvi/APKBUILD b/main/ldapvi/APKBUILD
index fb3587df712..2e6ada9c80b 100644
--- a/main/ldapvi/APKBUILD
+++ b/main/ldapvi/APKBUILD
@@ -2,38 +2,34 @@
# Maintainer: ScrumpyJack <scrumpyjack@st.ilet.to>
pkgname=ldapvi
pkgver=1.7
-pkgrel=12
+pkgrel=15
pkgdesc="ldapvi is an interactive LDAP client for Unix terminals"
url="http://www.lichteblau.com/ldapvi/"
arch="all"
-license="GPL"
-depends=""
-makedepends="ncurses-dev openldap-dev popt-dev readline-dev glib-dev"
+license="GPL-2.0-or-later"
+makedepends="ncurses-dev openldap-dev popt-dev readline-dev glib-dev openssl-dev>3"
subpackages="$pkgname-doc"
-source="http://www.lichteblau.com/download/${pkgname}-${pkgver}.tar.gz
+source="http://www.lichteblau.com/download/ldapvi-$pkgver.tar.gz
GNUmakefile.in.diff
ldapvi_vim_modeline_fix.patch
ldapvi_getline.patch"
-builddir="$srcdir/${pkgname}-${pkgver}"
+options="!check"
prepare() {
- cd "$builddir"
- patch -Np0 -i "$srcdir"/GNUmakefile.in.diff || return 1
+ patch -Np0 -i "$srcdir"/GNUmakefile.in.diff
default_prepare # apply patches
}
build() {
- cd "$builddir"
./configure --prefix=/usr && make
}
package() {
- cd "$builddir"
mkdir -p "$pkgdir/usr/bin" "$pkgdir/usr/share/doc/ldapvi" \
"$pkgdir/usr/share/man/man1"
make DESTDIR="$pkgdir" MANDIR="$pkgdir"/usr/share/man/man1 \
- DOCDIR="$pkgdir/usr/share/doc/ldapvi" install || return 1
+ DOCDIR="$pkgdir/usr/share/doc/ldapvi" install
}
sha512sums="4b38cee0763aa33703afbd5e358a458b1468abf58e43ea885879b2117bc1c0bbc375d91c6a43467ec08035b8b3b7dd4b024f2937c37741c7a5513ea9192aed36 ldapvi-1.7.tar.gz
diff --git a/main/ldb/APKBUILD b/main/ldb/APKBUILD
index 96847c2abb3..14d0bfd9d86 100644
--- a/main/ldb/APKBUILD
+++ b/main/ldb/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=ldb
-pkgver=2.4.2
-pkgrel=0
+pkgver=2.8.0
+pkgrel=1
pkgdesc="schema-less, ldap like, API and database"
url="https://ldb.samba.org/"
arch="all"
@@ -11,6 +11,7 @@ makedepends="libtirpc-dev tevent-dev py3-tevent tdb-dev py3-tdb talloc-dev
subpackages="$pkgname-dev py3-$pkgname:_py3 $pkgname-tools $pkgname-doc"
source="https://www.samba.org/ftp/pub/ldb/ldb-$pkgver.tar.gz
disable-compile-error-test.patch
+ strtoull.patch
"
# secfixes:
@@ -25,40 +26,38 @@ case "$CARCH" in
esac
build() {
- "$_waf" configure \
+ CFLAGS="$CFLAGS -flto=auto" \
+ ./configure \
--prefix=/usr \
--disable-rpath \
--disable-rpath-install \
--builtin-libraries=replace \
--bundled-libraries=NONE \
--with-modulesdir=/usr/lib/ldb/modules
- "$_waf" build
+ make
}
check() {
- "$_waf" test
+ make check
}
package() {
- DESTDIR="$pkgdir" "$_waf" install
+ make install DESTDIR="$pkgdir"
}
_py3() {
pkgdesc="Python 3 binding for the ldb library"
-
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/python3* "$subpkgdir"/usr/lib/
- mv "$pkgdir"/usr/lib/libpyldb-util.cpython* "$subpkgdir"/usr/lib/
+ amove usr/lib/python3* \
+ usr/lib/libpyldb-util.cpython*
}
tools() {
pkgdesc="Tools to manage LDB files"
- mkdir -p "$subpkgdir"/usr/lib/ldb
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
- mv "$pkgdir"/usr/lib/ldb/libldb-cmdline.* "$subpkgdir"/usr/lib/ldb/
+ amove usr/bin usr/lib/ldb/libldb-cmdline.*
}
sha512sums="
-77705ad284eed9105c9aba0459d2e48cd66ca19b657a55f7513e10281dd2e96540d24d1c8df53adc84109a918900687dc75b635cda05c4e788424ed71b5ff989 ldb-2.4.2.tar.gz
+b6f289af3137e02a8e3ee0588bc300d1756b8980558e0b3a3a9eee4449100ccd42ed873187dbdb334e7e7834a8bff8478cd4f20588d4ca834d9ea14c0ee2c2f9 ldb-2.8.0.tar.gz
ed55d5151bbcaf5c0a1b70a1f44b461a501ad94ce02ee97e3ea10c560ce3656a190510697bbd3c5b6f70a74519bf7c0a91210bcb415ffd97d9440045e10a02e8 disable-compile-error-test.patch
+8e005bf69759b962b60898a746443a7324ab93dde0e6e21bbeddeb6e49a9cb90152129ef874c8cf82c45291427363307182bb54ce573eee3669ec0f0a251e3cb strtoull.patch
"
diff --git a/main/ldb/strtoull.patch b/main/ldb/strtoull.patch
new file mode 100644
index 00000000000..2fcd928a3d1
--- /dev/null
+++ b/main/ldb/strtoull.patch
@@ -0,0 +1,89 @@
+diff --git a/lib/replace/replace.c b/lib/replace/replace.c
+index 0652cb4..02b6ebf 100644
+--- a/lib/replace/replace.c
++++ b/lib/replace/replace.c
+@@ -559,41 +559,6 @@ long long int rep_strtoll(const char *str, char **endptr, int base)
+ #endif /* HAVE_STRTOLL */
+
+
+-#ifndef HAVE_STRTOULL
+-unsigned long long int rep_strtoull(const char *str, char **endptr, int base)
+-{
+-#ifdef HAVE_STRTOUQ
+- return strtouq(str, endptr, base);
+-#elif defined(HAVE___STRTOULL)
+- return __strtoull(str, endptr, base);
+-#elif SIZEOF_LONG == SIZEOF_LONG_LONG
+- return (unsigned long long int) strtoul(str, endptr, base);
+-#else
+-# error "You need a strtoull function"
+-#endif
+-}
+-#else
+-#ifdef HAVE_BSD_STRTOLL
+-#undef strtoull
+-unsigned long long int rep_strtoull(const char *str, char **endptr, int base)
+-{
+- int saved_errno = errno;
+- unsigned long long int nb = strtoull(str, endptr, base);
+- /* With glibc EINVAL is only returned if base is not ok */
+- if (errno == EINVAL) {
+- if (base == 0 || (base >1 && base <37)) {
+- /* Base was ok so it's because we were not
+- * able to make the conversion.
+- * Let's reset errno.
+- */
+- errno = saved_errno;
+- }
+- }
+- return nb;
+-}
+-#endif /* HAVE_BSD_STRTOLL */
+-#endif /* HAVE_STRTOULL */
+-
+ #ifndef HAVE_SETENV
+ int rep_setenv(const char *name, const char *value, int overwrite)
+ {
+diff --git a/lib/replace/replace.h b/lib/replace/replace.h
+index a8910e2..854b1a7 100644
+--- a/lib/replace/replace.h
++++ b/lib/replace/replace.h
+@@ -394,16 +394,6 @@ long long int rep_strtoll(const char *str, char **endptr, int base);
+ #endif
+ #endif
+
+-#ifndef HAVE_STRTOULL
+-#define strtoull rep_strtoull
+-unsigned long long int rep_strtoull(const char *str, char **endptr, int base);
+-#else
+-#ifdef HAVE_BSD_STRTOLL /* yes, it's not HAVE_BSD_STRTOULL */
+-#define strtoull rep_strtoull
+-unsigned long long int rep_strtoull(const char *str, char **endptr, int base);
+-#endif
+-#endif
+-
+ #ifndef HAVE_FTRUNCATE
+ #define ftruncate rep_ftruncate
+ int rep_ftruncate(int,off_t);
+diff --git a/lib/replace/wscript b/lib/replace/wscript
+index 4c774d9..a1dc6d0 100644
+--- a/lib/replace/wscript
++++ b/lib/replace/wscript
+@@ -411,7 +411,7 @@ def configure(conf):
+ conf.CHECK_FUNCS('initgroups pread pwrite strndup strcasestr strsep')
+ conf.CHECK_FUNCS('strtok_r mkdtemp dup2 dprintf vdprintf isatty chown lchown')
+ conf.CHECK_FUNCS('link readlink symlink realpath snprintf vsnprintf')
+- conf.CHECK_FUNCS('asprintf vasprintf setenv unsetenv strnlen strtoull __strtoull')
++ conf.CHECK_FUNCS('asprintf vasprintf setenv unsetenv strnlen')
+ conf.CHECK_FUNCS('strtouq strtoll __strtoll strtoq memalign posix_memalign')
+ conf.CHECK_FUNCS('fmemopen')
+
+@@ -866,7 +866,7 @@ REPLACEMENT_FUNCTIONS = {
+ 'memmove', 'strdup', 'setlinebuf', 'vsyslog', 'strnlen',
+ 'strndup', 'waitpid', 'seteuid', 'setegid', 'chroot',
+ 'mkstemp', 'mkdtemp', 'pread', 'pwrite', 'strcasestr',
+- 'strsep', 'strtok_r', 'strtoll', 'strtoull', 'setenv', 'unsetenv',
++ 'strsep', 'strtok_r', 'strtoll', 'setenv', 'unsetenv',
+ 'utime', 'utimes', 'dup2', 'chown', 'link', 'readlink',
+ 'symlink', 'lchown', 'realpath', 'memmem', 'vdprintf',
+ 'dprintf', 'get_current_dir_name', 'copy_file_range',
diff --git a/main/lddtree/0001-use-musl-ldso-conf.patch b/main/lddtree/0001-use-musl-ldso-conf.patch
deleted file mode 100644
index a0f2b321867..00000000000
--- a/main/lddtree/0001-use-musl-ldso-conf.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-Author: Ain <41307858+nero@users.noreply.github.com>
-
- Fix ldso configuration parsing for musl binaries
-
- Previously, lddtree always checked for the glibc library paths, even
- when ran on a musl binary. This resulted in incorrect results on
- multiarch systems with both musl and glibc.
-
-diff --git a/lddtree.sh b/lddtree.sh
-index 5f06813..74ca830 100755
---- a/lddtree.sh
-+++ b/lddtree.sh
-@@ -107,7 +107,7 @@ c_ldso_paths_loaded='false'
- find_elf() {
- _find_elf=''
-
-- local elf=$1 needed_by=$2
-+ local interp elf=$1 needed_by=$2
- if [ "${elf}" != "${elf##*/}" ] && [ -e "${elf}" ] ; then
- _find_elf=${elf}
- return 0
-@@ -151,28 +151,36 @@ find_elf() {
- if ! ${c_ldso_paths_loaded} ; then
- c_ldso_paths_loaded='true'
- c_ldso_paths=
-- if [ -r ${ROOT}etc/ld.so.conf ] ; then
-- read_ldso_conf() {
-- local line p
-- for p ; do
-- # if the glob didnt match anything #360041,
-- # or the files arent readable, skip it
-- [ -r "${p}" ] || continue
-- while read line ; do
-- case ${line} in
-- "#"*) ;;
-- "include "*) read_ldso_conf ${line#* } ;;
-- *) c_ldso_paths="$c_ldso_paths:${ROOT}${line#/}";;
-- esac
-- done <"${p}"
-- done
-- }
-- # the 'include' command is relative
-- local _oldpwd="$PWD"
-- cd "$ROOT"etc >/dev/null
-+ read_ldso_conf() {
-+ local line p
-+ for p ; do
-+ # if the glob didnt match anything #360041,
-+ # or the files arent readable, skip it
-+ [ -r "${p}" ] || continue
-+ while read line ; do
-+ case ${line} in
-+ "#"*) ;;
-+ "include "*) read_ldso_conf ${line#* } ;;
-+ *) c_ldso_paths="$c_ldso_paths:${ROOT}${line#/}";;
-+ esac
-+ done <"${p}"
-+ done
-+ }
-+ # the 'include' command is relative
-+ local _oldpwd="$PWD"
-+ cd "$ROOT"etc >/dev/null
-+ interp=$(elf_interp "${needed_by}")
-+ case "$interp" in
-+ */ld-musl-*)
-+ musl_arch=${interp%.so*}
-+ musl_arch=${musl_arch##*-}
-+ read_ldso_conf "${ROOT}"etc/ld-musl-${musl_arch}.path
-+ ;;
-+ */ld-linux*|*/ld.so*) # glibc
- read_ldso_conf "${ROOT}"etc/ld.so.conf
-- cd "$_oldpwd"
-- fi
-+ ;;
-+ esac
-+ cd "$_oldpwd"
- fi
- if [ -n "${c_ldso_paths}" ] ; then
- check_paths "${elf}" "${c_ldso_paths}" && return 0
diff --git a/main/lddtree/APKBUILD b/main/lddtree/APKBUILD
index 3856f0f3e22..7b1dcfbd0f6 100644
--- a/main/lddtree/APKBUILD
+++ b/main/lddtree/APKBUILD
@@ -1,30 +1,25 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lddtree
-pkgver=1.26
-pkgrel=2
+pkgver=1.27
+pkgrel=0
pkgdesc="List dynamic dependencies as a tree"
url="https://github.com/ncopa/lddtree"
arch="noarch"
-license="GPL-2.0"
+license="GPL-2.0-only"
depends="scanelf"
-depends_dev=""
replaces="pax-utils"
-makedepends="$depends_dev"
-install=""
-subpackages=""
-options="!check"
+checkdepends="kyua"
source="lddtree-$pkgver.tar.gz::https://github.com/ncopa/lddtree/archive/v$pkgver.tar.gz
- 0001-use-musl-ldso-conf.patch
"
-build() {
- return 0
+check() {
+ make check
}
package() {
- cd "$builddir"
install -Dm755 lddtree.sh "$pkgdir"/usr/bin/lddtree
}
-sha512sums="9c244cf47627e6cfb396f4187e7c35b438bcb8e3978e43a91ad5a5d034233eaaffd1319e98b6a26b8bbcb570ede3eeb809a14720b50771587a96dde5f6516340 lddtree-1.26.tar.gz
-de2e9321a955697860a74a6bd383e7c77a4a10733247b2cb0c5ccbb4586c24d60cd7ee3d30cc4f33620cb971247d84b9550073ff0f7a11ef7a46af75c5fcf920 0001-use-musl-ldso-conf.patch"
+sha512sums="
+aa27c8556a8370a662dc08a5a1fe80ce1dbcab28478e61bf52997fe93108c1ce96f6bbe5427326c5f215abc58b3ba45a8aae4e5196bda1746ef9c95c99dd5ee2 lddtree-1.27.tar.gz
+"
diff --git a/main/ldns/APKBUILD b/main/ldns/APKBUILD
index 4226abe2708..1c5d9d94d85 100644
--- a/main/ldns/APKBUILD
+++ b/main/ldns/APKBUILD
@@ -1,13 +1,14 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=ldns
-pkgver=1.8.1
-pkgrel=0
+pkgver=1.8.3
+pkgrel=2
pkgdesc="Lowlevel DNS(SEC) library"
url="https://nlnetlabs.nl/projects/ldns/"
arch="all"
-license="Custom"
-depends_dev="openssl1.1-compat-dev"
+license="BSD-3-Clause"
+options="!check" # tests not shipped in tarball
+depends_dev="openssl-dev>3"
makedepends="$depends_dev libpcap-dev perl autoconf automake libtool"
subpackages="$pkgname-dev $pkgname-doc drill $pkgname-tools"
source="https://nlnetlabs.nl/downloads/ldns/ldns-$pkgver.tar.gz"
@@ -33,6 +34,10 @@ build() {
make
}
+check() {
+ make test
+}
+
package() {
make DESTDIR="$pkgdir" install
@@ -69,5 +74,5 @@ tools() {
}
sha512sums="
-600f8e221716742caf439a425008827aef1814fc1d9e751f8f492d0235ff45ca48df90abba17979bac9f4485947bb9fe8102924d9cebe6cb56d5b788e1c4bd14 ldns-1.8.1.tar.gz
+c318747bd975ade389d048680b80495fb083b46507d8dcea7d4d42c75823f56a35b438dcc5320803d39583e5a1e515a51686f7f9010c061a6e8199e1a5505ae9 ldns-1.8.3.tar.gz
"
diff --git a/main/ldoc/APKBUILD b/main/ldoc/APKBUILD
index 6b0b73e63d9..9ba4cc187ca 100644
--- a/main/ldoc/APKBUILD
+++ b/main/ldoc/APKBUILD
@@ -1,23 +1,18 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=ldoc
-_pkgname=LDoc
-pkgver=1.4.6
-pkgrel=3
+pkgver=1.5.0
+pkgrel=0
pkgdesc="Documentation tool for Lua"
-url="https://github.com/stevedonovan/LDoc"
+url="https://github.com/lunarmodules/LDoc"
arch="noarch"
license="MIT"
_luaver=5.4
depends="lua-penlight lua$_luaver" # lua-penlight provides lua5.4-penlight
-source="$_pkgname-$pkgver.tar.gz::https://github.com/stevedonovan/$_pkgname/archive/$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-prepare() {
- default_prepare
- sed -i "1s:.*:#!/usr/bin/lua$_luaver:" ldoc.lua
- find . -type d | xargs chmod 755
-}
+source="$pkgname-$pkgver.tar.gz::https://github.com/lunarmodules/LDoc/archive/v$pkgver.tar.gz
+ lua5.4.patch
+ "
+options="!check"
package() {
local lmod_dir="$pkgdir/usr/share/lua/$_luaver"
@@ -27,4 +22,7 @@ package() {
cp -a ldoc "$lmod_dir"/
}
-sha512sums="bcaddba4e462a4fb0aa0d8fcff390de3f195fa5cc569d8f05b84ad0fff900f5ac945be7a2eb15cf5ca60cc462f02c874579e4a19e33776178a04104ef9d944af LDoc-1.4.6.tar.gz"
+sha512sums="
+5879c5a73546ca30240faf65803500754af37b8a51eb0baac0c0ee71870fbdb258011901e50c8e204906c8f705bab1ba2f94ce6fcc417920d4c8d92363f44e07 ldoc-1.5.0.tar.gz
+c39db0dc643c40c0e98611057cd2d9fc01bf54a55608f8083ad704cce8adb2d86172bebe0867a6a0da425bce90f60468b0f6367afe9063b2f37d22f8f22adfc6 lua5.4.patch
+"
diff --git a/main/ldoc/lua5.4.patch b/main/ldoc/lua5.4.patch
new file mode 100644
index 00000000000..9f68bf8407a
--- /dev/null
+++ b/main/ldoc/lua5.4.patch
@@ -0,0 +1,10 @@
+diff --git a/ldoc.lua b/ldoc.lua
+index aff63b9..06501fc 100644
+--- a/ldoc.lua
++++ b/ldoc.lua
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env lua
++#!/usr/bin/env lua5.4
+ ---------------
+ -- ## ldoc, a Lua documentation generator.
+ --
diff --git a/main/less/APKBUILD b/main/less/APKBUILD
index f55926d6889..5dce792a566 100644
--- a/main/less/APKBUILD
+++ b/main/less/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Cameron Banta <cbanta@gmail.com>
-# Maintainer: Cameron Banta <cbanta@gmail.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=less
-pkgver=590
-pkgrel=0
+pkgver=643
+pkgrel=2
pkgdesc="File pager"
url="https://www.greenwoodsoftware.com/less/"
arch="all"
@@ -10,7 +10,9 @@ license="GPL-3.0-or-later OR BSD-2-Clause"
options="!check"
makedepends="ncurses-dev"
subpackages="$pkgname-doc"
-source="https://www.greenwoodsoftware.com/less/less-$pkgver.tar.gz"
+source="https://www.greenwoodsoftware.com/less/less-$pkgver.tar.gz
+ CVE-2024-32487.patch
+ "
build() {
./configure \
@@ -28,5 +30,6 @@ package() {
}
sha512sums="
-426fa5840fd43c17bd5a452ad35ad24f2d6684623c6914403fd0059af62266bf2138e6828c7d73a1cef26a736c0d2b8ed4ab180eea8297281dae79a4228eb903 less-590.tar.gz
+6a324ac54e22429ac652dc303bc1fe48933555d1cbf8ad7ecf345940910c014fef9551a3219743cfb7115e356b5841ae97d6ce62e7a1ba1e3300d243efca34d9 less-643.tar.gz
+a7d32e8f969a19f23b6ce4b53e6c58f2920e95ac76ce2a4a1b97e5d545e3556c2f9edf804a8475748f477f97aaa3faa290d393995c863e99090a09fda3d82a56 CVE-2024-32487.patch
"
diff --git a/main/less/CVE-2024-32487.patch b/main/less/CVE-2024-32487.patch
new file mode 100644
index 00000000000..b879d90309a
--- /dev/null
+++ b/main/less/CVE-2024-32487.patch
@@ -0,0 +1,67 @@
+From 007521ac3c95bc76e3d59c6dbfe75d06c8075c33 Mon Sep 17 00:00:00 2001
+From: Mark Nudelman <markn@greenwoodsoftware.com>
+Date: Thu, 11 Apr 2024 17:49:48 -0700
+Subject: [PATCH] Fix bug when viewing a file whose name contains a newline.
+
+---
+ filename.c | 31 +++++++++++++++++++++++++------
+ 1 file changed, 25 insertions(+), 6 deletions(-)
+
+diff --git a/filename.c b/filename.c
+index f90e0e82..a52c6354 100644
+--- a/filename.c
++++ b/filename.c
+@@ -133,6 +133,15 @@ static constant char * metachars(void)
+ return (strchr(metachars(), c) != NULL);
+ }
+
++/*
++ * Must use quotes rather than escape char for this metachar?
++ */
++static int must_quote(char c)
++{
++ /* {{ Maybe the set of must_quote chars should be configurable? }} */
++ return (c == '\n');
++}
++
+ /*
+ * Insert a backslash before each metacharacter in a string.
+ */
+@@ -164,6 +173,9 @@ public char * shell_quoten(constant char *s, size_t slen)
+ * doesn't support escape chars. Use quotes.
+ */
+ use_quotes = 1;
++ } else if (must_quote(*p))
++ {
++ len += 3; /* open quote + char + close quote */
+ } else
+ {
+ /*
+@@ -193,15 +205,22 @@ public char * shell_quoten(constant char *s, size_t slen)
+ {
+ while (*s != '\0')
+ {
+- if (metachar(*s))
++ if (!metachar(*s))
+ {
+- /*
+- * Add the escape char.
+- */
++ *p++ = *s++;
++ } else if (must_quote(*s))
++ {
++ /* Surround the char with quotes. */
++ *p++ = openquote;
++ *p++ = *s++;
++ *p++ = closequote;
++ } else
++ {
++ /* Insert an escape char before the char. */
+ strcpy(p, esc);
+ p += esclen;
++ *p++ = *s++;
+ }
+- *p++ = *s++;
+ }
+ *p = '\0';
+ }
diff --git a/main/leveldb/APKBUILD b/main/leveldb/APKBUILD
deleted file mode 100644
index 8bebff0b8d4..00000000000
--- a/main/leveldb/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer: TBK <alpine@jjtc.eu>
-pkgname=leveldb
-pkgver=1.22
-pkgrel=2
-pkgdesc="A fast and lightweight key/value database library by Google"
-url="https://github.com/google/leveldb"
-arch="all"
-license="BSD-3-Clause"
-makedepends="cmake snappy-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/google/$pkgname/archive/$pkgver.tar.gz"
-
-build() {
- mkdir build && cd build
- cmake .. \
- -DCMAKE_BUILD_TYPE=MinSizeRel \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=/usr/lib \
- -DLEVELDB_BUILD_TESTS=ON \
- -DLEVELDB_INSTALL=ON \
- -DBUILD_SHARED_LIBS=ON
- make
-}
-
-check() {
- cd "$builddir"/build
- make test
-}
-
-package() {
- cd "$builddir"/build
- make DESTDIR="$pkgdir" install
- mkdir -p "$pkgdir"/usr/share/doc
- cp -a ../doc "$pkgdir"/usr/share/doc/$pkgname
-}
-
-sha512sums="f9bbf5f466e7f707b94e19261762319ea9f65d41911690e84f59098551e2e69beccf756a414d705ade74ee96fd979bdb8b94c171c6f2cc83873cbd4a9380dbab leveldb-1.22.tar.gz"
diff --git a/main/lftp/APKBUILD b/main/lftp/APKBUILD
index 84e93ef0a8c..f3e6f4f39e8 100644
--- a/main/lftp/APKBUILD
+++ b/main/lftp/APKBUILD
@@ -3,12 +3,12 @@
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=lftp
pkgver=4.9.2
-pkgrel=3
+pkgrel=6
pkgdesc="Sophisticated ftp/http client"
url="https://lftp.tech"
arch="all"
license="GPL-3.0-or-later"
-makedepends="zlib-dev openssl1.1-compat-dev readline-dev ncurses-dev"
+makedepends="zlib-dev openssl-dev>3 readline-dev ncurses-dev"
subpackages="$pkgname-doc"
source="https://lftp.yar.ru/ftp/lftp-$pkgver.tar.xz"
diff --git a/main/libaio/APKBUILD b/main/libaio/APKBUILD
index 276fbf0a816..6dc8f5853ca 100644
--- a/main/libaio/APKBUILD
+++ b/main/libaio/APKBUILD
@@ -2,7 +2,7 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=libaio
-pkgver=0.3.112
+pkgver=0.3.113
pkgrel=2
pkgdesc="Asynchronous input/output library"
url="https://pagure.io/libaio"
@@ -10,14 +10,21 @@ arch="all"
license="LGPL-2.1-or-later"
checkdepends="bash"
subpackages="$pkgname-dev $pkgname-doc"
-source="https://releases.pagure.org/libaio/libaio-$pkgver.tar.gz
- libaio-optional-werror.patch
+source="https://pagure.io/libaio/archive/libaio-$pkgver/libaio-libaio-$pkgver.tar.gz
libaio-cppflags.patch
libaio-errno.patch
test.patch
test-poll.patch
"
+case "$CARCH" in
+arm*|aarch64)
+ # fail for some reason on builders only
+ options="$options !check"
+ ;;
+esac
+builddir="$srcdir/libaio-libaio-$pkgver"
+
build() {
make
}
@@ -33,8 +40,7 @@ package() {
}
sha512sums="
-5f984529c9f747a6c82f1e4457fc0832bb1fc299ae6e700f2ac5a8ea7b9bfc6ea1e75809728cc115a020cff6685ed1f4e38c6aeacc1ea98dfccce04dd19dafaa libaio-0.3.112.tar.gz
-9b04df1f92b245c3012d161a96bc54d3bcc07d8a1049d7e5acfae50fba9bba94cbdbc220d75d186d6bf2333d58b093b9cf17bd7cd594cfdbfb6682a63daf19fd libaio-optional-werror.patch
+8058c927de0b5f7079fc232d2be23272537694bf271488af1dc0330b58afc307931792ab138512c5e00aa3ea921935a6d862f575fb0cc2bf323de63d8df208cd libaio-libaio-0.3.113.tar.gz
c9ad6ff35ba12f33e308059d89592281768cef7091213b4702b64af2d194462864ec660dea327f8b718e5c723ec9ba6170b591461e2b140ba94f6838cddb8d7c libaio-cppflags.patch
2bf5224f5c5714786cb9ed28d9ae7c1721ad21a498d7e76d0cd1443435f7cd424bd6d80baa961a07f38f20359711b3270cd5913890a47b683e035dfe00f66054 libaio-errno.patch
b2bb73b7fe2ae083af8d7a8a6e5fe34830bff007b5dcdb565a440d81178f85862ac5b45b5e9ea061a5624eb4841ef013ed5c0d725e23f329721d4699b3d2cf56 test.patch
diff --git a/main/libaio/libaio-optional-werror.patch b/main/libaio/libaio-optional-werror.patch
deleted file mode 100644
index a5bd4045e6f..00000000000
--- a/main/libaio/libaio-optional-werror.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From ebe62b178f3e5fcde8a311e64aaffe62099204a5 Mon Sep 17 00:00:00 2001
-From: Mike Frysinger <vapier@gentoo.org>
-Date: Sun, 21 Apr 2019 12:44:26 +0200
-Subject: [PATCH] make -Werror into an optional flag
-
-This lets distros disable the flag as random errors might come up with
-different compiler flags and older/newer toolchain versions.
-
-Signed-off-by: Mike Frysinger <vapier@gentoo.org>
----
- harness/Makefile | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/harness/Makefile b/harness/Makefile
-index f477737..a155c4b 100644
---- a/harness/Makefile
-+++ b/harness/Makefile
-@@ -6,7 +6,8 @@ PROGS:=$(PARTPROGS) $(EXTRAPROGS)
- HARNESS_SRCS:=main.c
- # io_queue.c
-
--CFLAGS+=-Wall -Werror -I../src -g -O2 -DPAGE_SIZE=$(shell getconf PAGESIZE)
-+CFLAGS_WERROR?=-Werror
-+CFLAGS+=-Wall $(CFLAGS_WERROR) -I../src -g -O2 -DPAGE_SIZE=$(shell getconf PAGESIZE)
- #-lpthread -lrt
-
- all: $(PROGS)
---
-2.21.0
-
-
diff --git a/main/libarchive/APKBUILD b/main/libarchive/APKBUILD
index c45f91d7dbb..184bb58b397 100644
--- a/main/libarchive/APKBUILD
+++ b/main/libarchive/APKBUILD
@@ -1,18 +1,31 @@
# Contributor: Sergei Lukin <sergej.lukin@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libarchive
-pkgver=3.6.1
+pkgver=3.7.3
pkgrel=0
pkgdesc="library that can create and read several streaming archive formats"
url="https://libarchive.org/"
arch="all"
license="BSD-2-Clause AND BSD-3-Clause AND Public-Domain"
-makedepends="zlib-dev bzip2-dev xz-dev lz4-dev acl-dev openssl1.1-compat-dev expat-dev
- attr-dev zstd-dev"
+makedepends="
+ acl-dev
+ attr-dev
+ bsd-compat-headers
+ bzip2-dev
+ expat-dev
+ lz4-dev
+ openssl-dev
+ xz-dev
+ zlib-dev
+ zstd-dev
+ "
subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-tools"
source="https://libarchive.org/downloads/libarchive-$pkgver.tar.xz"
+options="!check"
# secfixes:
+# 3.6.1-r2:
+# - CVE-2022-36227
# 3.6.1-r0:
# - CVE-2022-26280
# 3.6.0-r0:
@@ -26,6 +39,7 @@ source="https://libarchive.org/downloads/libarchive-$pkgver.tar.xz"
# - CVE-2017-14166
build() {
+ CFLAGS="$CFLAGS -ffat-lto-objects -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -41,10 +55,9 @@ package() {
tools() {
pkgdesc="libarchive tools bsdtar and bsdcpio"
- mkdir -p "$subpkgdir"/usr/
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+ amove usr/bin
}
sha512sums="
-2e5a72edc468080c0e8f29e07d9c33826ffb246fa040ec42399bedeecf698b7555f69ffd15057ad79c0f50cd4926d43174599d99632b1b99ec6cd159c43a70b8 libarchive-3.6.1.tar.xz
+984e7c61010b9555bafe54d5f52ff2d089e28afe5cea3a14615e2aca8539075293789d18f17f8915882ec328bcbdca7b3d1536d6dc19620ca226e8b6d802ef63 libarchive-3.7.3.tar.xz
"
diff --git a/main/libart-lgpl/APKBUILD b/main/libart-lgpl/APKBUILD
index ff7603ac6fe..53a1371c723 100644
--- a/main/libart-lgpl/APKBUILD
+++ b/main/libart-lgpl/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libart-lgpl
pkgver=2.3.21
-pkgrel=6
+pkgrel=8
pkgdesc="A library for high-performance 2D graphics"
url="https://www.levien.com/libart/"
arch="all"
diff --git a/main/libasr/0002-Replace-missing-res_randomid-with-the-more-secure-ar.patch b/main/libasr/0002-Replace-missing-res_randomid-with-the-more-secure-ar.patch
deleted file mode 100644
index a843125a5a1..00000000000
--- a/main/libasr/0002-Replace-missing-res_randomid-with-the-more-secure-ar.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From fb2c3b37d1022d84506ca0815c7c888c4f08e90c Mon Sep 17 00:00:00 2001
-From: xentec <xentec@aix0.eu>
-Date: Sat, 11 Feb 2017 14:39:24 +0000
-Subject: [PATCH 2/3] Replace missing res_randomid() with the more secure
- arc4random()
-
----
- configure.ac | 2 ++
- openbsd-compat/openbsd-compat.h | 2 ++
- src/res_mkquery.c | 2 +-
- src/res_send_async.c | 2 +-
- 4 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/configure.ac b/configure.ac
-index 10aff04..fa0e896 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -87,6 +87,8 @@
- # libasr specific checks.
- #
-
-+LIBS="-lcrypto -lbsd $LIBS"
-+
- # This ought to be part of the generic compat library, but we don't want to force
- # linking against other libs (-lresolv for instance) in all cases.
- # It has to be improved at some point.
-diff --git a/openbsd-compat/openbsd-compat.h b/openbsd-compat/openbsd-compat.h
-index c30591c..9be2e0b 100644
---- a/openbsd-compat/includes/compat-stdlib.h
-+++ b/openbsd-compat/includes/compat-stdlib.h
-@@ -30,3 +30,5 @@
- long long strtonum(const char *nptr, long long minval, long long maxval,
- const char **errstr);
- #endif
-+
-+unsigned int arc4random(void);
-diff --git a/src/res_mkquery.c b/src/res_mkquery.c
-index 27ed21e..cce4029 100644
---- a/src/res_mkquery.c
-+++ b/src/res_mkquery.c
-@@ -57,7 +57,7 @@ res_mkquery(int op, const char *dname, int class, int type,
- ac = asr_use_resolver(NULL);
-
- memset(&h, 0, sizeof h);
-- h.id = res_randomid();
-+ h.id = arc4random();
- if (ac->ac_options & RES_RECURSE)
- h.flags |= RD_MASK;
- h.qdcount = 1;
-diff --git a/src/res_send_async.c b/src/res_send_async.c
-index a60aa0d..a0f4704 100644
---- a/src/res_send_async.c
-+++ b/src/res_send_async.c
-@@ -380,7 +380,7 @@ setup_query(struct asr_query *as, const char *name, const char *dom,
- as->as.dns.obuflen = 0;
-
- memset(&h, 0, sizeof h);
-- h.id = res_randomid();
-+ h.id = arc4random();
- if (as->as_ctx->ac_options & RES_RECURSE)
- h.flags |= RD_MASK;
- h.qdcount = 1;
---
-2.11.1
diff --git a/main/libasr/APKBUILD b/main/libasr/APKBUILD
deleted file mode 100644
index 03f75e23b74..00000000000
--- a/main/libasr/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Contributor: ScrumpyJack <scrumpyjack@st.ilet.to>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=libasr
-pkgver=1.0.4
-pkgrel=2
-pkgdesc="libasr is a free, simple and portable asynchronous resolver library"
-url="https://www.opensmtpd.org"
-arch="all"
-license="ISC"
-makedepends="mandoc bison openssl1.1-compat-dev automake autoconf libtool libbsd-dev"
-subpackages="$pkgname-dbg $pkgname-static $pkgname-dev"
-source="https://github.com/OpenSMTPD/libasr/archive/$pkgver/libasr-$pkgver.tar.gz
- 0002-Replace-missing-res_randomid-with-the-more-secure-ar.patch
- "
-
-prepare() {
- default_prepare
- ./bootstrap
-}
-
-check() {
- gcc -L src/.libs -I src tests/asr_simple.c -lasr -o tests/asr_simple
- LD_LIBRARY_PATH=src/.libs ./tests/asr_simple
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --mandir=/usr/share/man
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="93ff4643c46cccb36e4981336dde198975499c1e48df6ed0fa8e57628ea05a8dc1d5159fe9d0ee99ff2e7ab418aa346668749aca8be2f3346f07d884e4818368 libasr-1.0.4.tar.gz
-693c2bfce2ca9397909a281b3d634b37608ff6286a4e9b3c1d638a337c585d307db4a325fb8b607ef45399c1ee05063eda5eb46060d804e5b4ad51ca6890846d 0002-Replace-missing-res_randomid-with-the-more-secure-ar.patch"
diff --git a/main/libassuan/APKBUILD b/main/libassuan/APKBUILD
index 56aebdbd41d..d7ac94c9a05 100644
--- a/main/libassuan/APKBUILD
+++ b/main/libassuan/APKBUILD
@@ -1,20 +1,21 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libassuan
-pkgver=2.5.5
+pkgver=2.5.7
pkgrel=0
pkgdesc="IPC library used by some GnuPG related software"
url="https://www.gnupg.org/software/libassuan/index.html"
arch="all"
license="LGPL-2.1-or-later"
makedepends="libgpg-error-dev"
-subpackages="$pkgname-dev $pkgname-doc"
+subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
source="https://www.gnupg.org/ftp/gcrypt/libassuan/libassuan-$pkgver.tar.bz2"
build() {
./configure \
--build=$CBUILD \
--host=$CHOST \
- --prefix=/usr
+ --prefix=/usr \
+ --enable-static
make
}
@@ -26,4 +27,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="70117f77aa43bbbe0ed28da5ef23834c026780a74076a92ec775e30f851badb423e9a2cb9e8d142c94e4f6f8a794988c1b788fd4bd2271e562071adf0ab16403 libassuan-2.5.5.tar.bz2"
+sha512sums="
+ca33bd0325bbebccb63b6a84cc0aa5c85b25c6275a68df83aeb3f3729b2cd38220198a941c3479bd461f16b7ddb6b558c0664697ca3153c7fb430544303d773f libassuan-2.5.7.tar.bz2
+"
diff --git a/main/libatomic_ops/APKBUILD b/main/libatomic_ops/APKBUILD
deleted file mode 100644
index 6fbc0c1a160..00000000000
--- a/main/libatomic_ops/APKBUILD
+++ /dev/null
@@ -1,50 +0,0 @@
-# Maintainer: TBK <alpine@jjtc.eu>
-# Contributor: Bartłomiej Piotrowski <bpiotrowski@alpinelinux.org>
-pkgname=libatomic_ops
-pkgver=7.6.12
-pkgrel=0
-pkgdesc="Semi-portable access to hardware provided atomic memory operations"
-arch="all"
-url="https://github.com/ivmai/libatomic_ops"
-license="GPL-2.0-or-later AND MIT"
-subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
-source="https://github.com/ivmai/libatomic_ops/releases/download/v$pkgver/libatomic_ops-$pkgver.tar.gz"
-
-case "$CARCH" in
- s390x) options="!check" ;; # FIXME https://github.com/ivmai/libatomic_ops/issues/44
-esac
-
-prepare() {
- default_prepare
- update_config_sub
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var \
- --enable-shared
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-static() {
- depends=""
- pkgdesc="$pkgdesc (static library)"
-
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib
-}
-
-sha512sums="bbf98a38a80c8fe6b7eab773967edc55b8d48be32b36ed827fb835ee3dcd96d5ec1dc97149714e015e93a0a5b9fc03595797663fdb5a0f673869ea8bfe640df5 libatomic_ops-7.6.12.tar.gz"
diff --git a/main/libavif/APKBUILD b/main/libavif/APKBUILD
new file mode 100644
index 00000000000..e8054123a69
--- /dev/null
+++ b/main/libavif/APKBUILD
@@ -0,0 +1,66 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=libavif
+pkgver=1.0.4
+pkgrel=0
+pkgdesc="Library for encoding and decoding .avif files"
+url="https://aomediacodec.github.io/av1-avif/"
+arch="all"
+license="BSD-2-Clause"
+makedepends="
+ aom-dev
+ cmake
+ dav1d-dev
+ gdk-pixbuf-dev
+ gtest-dev
+ libjpeg-turbo-dev
+ libpng-dev
+ samurai
+ zlib-dev
+ "
+subpackages="$pkgname-dev $pkgname-apps $pkgname-pixbuf-loader"
+source="https://github.com/AOMediaCodec/libavif/archive/v$pkgver/libavif-v$pkgver.tar.gz"
+
+build() {
+ CFLAGS="$CFLAGS -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DAVIF_BUILD_APPS=ON \
+ -DAVIF_BUILD_GDK_PIXBUF=ON \
+ -DAVIF_BUILD_TESTS=ON \
+ -DAVIF_CODEC_AOM=ON \
+ -DAVIF_CODEC_DAV1D=ON
+ cmake --build build
+}
+
+check() {
+ # cmake --build build --target avif_test_all
+
+ # https://github.com/AOMediaCodec/libavif/issues/800
+ cd "$builddir"/build
+ ./tests/aviftest ../tests/data --io-only
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+apps() {
+ amove usr/bin
+}
+
+loader() {
+ pkgdesc="$pkgdesc (pixbuf loader)"
+ install_if="$pkgname=$pkgver-r$pkgrel gdk-pixbuf-loaders"
+
+ amove \
+ usr/lib/gdk-pixbuf-* \
+ usr/share/thumbnailers
+}
+
+sha512sums="
+37f0de757180c6414778e688006940395960b316c25192d6beb97a07942aff4bd3b712dec2eff52cd26f5d72c352731442175dfeb90e2e1381133539760142b0 libavif-v1.0.4.tar.gz
+"
diff --git a/main/libax25/APKBUILD b/main/libax25/APKBUILD
deleted file mode 100644
index 569c868ad63..00000000000
--- a/main/libax25/APKBUILD
+++ /dev/null
@@ -1,42 +0,0 @@
-# Contributor: Milan P. Stanić <mps@arvanta.net>
-# Maintainer: Milan P. Stanić <mps@arvanta.net>
-pkgname=libax25
-pkgver=0.0.12
-_patchver=rc5
-pkgrel=1
-pkgdesc="set of functions making it easier to write hamradio programs"
-url="https://www.linux-ax25.org/wiki/Libax25"
-arch="all"
-license="LGPL-2.1-or-later"
-makedepends="zlib-dev"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://www.linux-ax25.org/pub/libax25/libax25-$pkgver-$_patchver.tar.gz
- musl.patch"
-builddir="$srcdir"/$pkgname-$pkgver-$_patchver
-
-build() {
- export CBUILD=$CHOST
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --enable-shared \
- --enable-static \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="
-01aaf1ef5be7a347ec702f890e26e7cad02eff1cc8b4932fe9452cab8012bb0d7cd25f74871d83f188f22a3a5fd600ec57131ddb540a6c746908bf47e42f958f libax25-0.0.12-rc5.tar.gz
-e890378c47b3803182f28c7b88ec7db37ec7204f69e7eddf7bd88a76164b3141b8a3278a8985c6c921471caf3b62db046c04b1becd4810f98f3965b0441a6c94 musl.patch
-"
diff --git a/main/libax25/musl.patch b/main/libax25/musl.patch
deleted file mode 100644
index 1624485ca59..00000000000
--- a/main/libax25/musl.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/daemon.c 2016-01-16 20:34:52.682900674 -0600
-+++ b/daemon.c 2016-01-16 20:34:45.496900167 -0600
-@@ -3,6 +3,7 @@
- #include <stdlib.h>
- #include <signal.h>
- #include <errno.h>
-+#include <fcntl.h>
-
- #include <sys/param.h>
- #include <sys/file.h>
diff --git a/main/libbpf/10-consolidate-lib-dirs.patch b/main/libbpf/10-consolidate-lib-dirs.patch
new file mode 100644
index 00000000000..34083371306
--- /dev/null
+++ b/main/libbpf/10-consolidate-lib-dirs.patch
@@ -0,0 +1,18 @@
+Alpine doesn't recognize lib64 directories by default, so we consolidate into lib.
+
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -77,12 +77,7 @@
+
+ DESTDIR ?=
+
+-HOSTARCH = $(firstword $(subst -, ,$(shell $(CC) -dumpmachine)))
+-ifeq ($(filter-out %64 %64be %64eb %64le %64el s390x, $(HOSTARCH)),)
+- LIBSUBDIR := lib64
+-else
+- LIBSUBDIR := lib
+-endif
++LIBSUBDIR := lib
+
+ # By default let the pc file itself use ${prefix} in includedir/libdir so that
+ # the prefix can be overridden at runtime (eg: --define-prefix)
diff --git a/main/libbpf/APKBUILD b/main/libbpf/APKBUILD
new file mode 100644
index 00000000000..cc5df6998a7
--- /dev/null
+++ b/main/libbpf/APKBUILD
@@ -0,0 +1,41 @@
+# Maintainer: Adam Jensen <acjensen@gmail.com>
+pkgname=libbpf
+pkgver=1.4.0
+pkgrel=0
+pkgdesc="A library for interacting with the Linux kernel's Berkeley Packet Filter (BPF) facility from user space"
+url="https://github.com/libbpf/libbpf"
+arch="all"
+license="LGPL-2.1-only OR BSD-2-Clause"
+makedepends="
+ elfutils-dev
+ linux-headers
+ zlib-dev
+ "
+subpackages="$pkgname-dev"
+source="https://github.com/libbpf/libbpf/archive/v$pkgver/libbpf-$pkgver.tar.gz
+ 10-consolidate-lib-dirs.patch
+ "
+
+build() {
+ make -C src
+}
+
+check() {
+ echo "#include \"$builddir/src/btf.h\"" | gcc -xc -c -o /dev/null -
+}
+
+package() {
+ make -C src install DESTDIR="$pkgdir"
+
+ # Install somewhere out of the way that will hopefully not be included by mistake.
+ cd include/uapi/linux
+ install -D -m644 -t "$pkgdir"/usr/include/bpf/uapi/linux/ \
+ bpf.h \
+ bpf_common.h \
+ btf.h
+}
+
+sha512sums="
+400c91a4870be8bb115f7abcc12c460700980fb6a3afdf43c885b1cdbe28fed1d37142d3987a85e12b4c565787a48f5cd0b07cafff067d91902d70713528929f libbpf-1.4.0.tar.gz
+a374386f8b361b60c70d566aebb11b87a23bc43d8cfa02cce9997961139f89caf691d826020c4b08159e815c14d87cc907f2cc6e784329d0288d18d2b609fefd 10-consolidate-lib-dirs.patch
+"
diff --git a/main/libbsd/APKBUILD b/main/libbsd/APKBUILD
index 1264f4afbb2..b686090559b 100644
--- a/main/libbsd/APKBUILD
+++ b/main/libbsd/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer: Drew DeVault <sir@cmpwn.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libbsd
-pkgver=0.11.6
-pkgrel=2
+pkgver=0.12.2
+pkgrel=0
pkgdesc="commonly-used BSD functions not implemented by all libcs"
url="https://libbsd.freedesktop.org/"
arch="all"
@@ -12,8 +12,7 @@ depends_dev="bsd-compat-headers linux-headers libmd-dev libbsd=$pkgver-r$pkgrel"
makedepends_build="autoconf automake libtool"
makedepends_host="$depends_dev"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
-source="https://libbsd.freedesktop.org/releases/libbsd-$pkgver.tar.xz
- disable-fpurge-test.patch"
+source="https://libbsd.freedesktop.org/releases/libbsd-$pkgver.tar.xz"
# secfixes:
# 0.10.0-r0:
@@ -51,6 +50,5 @@ dev() {
}
sha512sums="
-9dbbfb84340fc69f59667241701d81d176439ce168f123344805898a269f7bd0e98abf8c7fc12d9bf539d1effb19424d93b647cc9120f693327e736d339e6075 libbsd-0.11.6.tar.xz
-c90e7d75bac79f821962227593b91d8a373b5bd991592b71b6ac20f86908bbe72af874542f591202f29ad42f57da6d5d71f445871679793b29bd3ed002beb4ce disable-fpurge-test.patch
+ce43e4f0486d5f00d4a8119ee863eaaa2f968cae4aa3d622976bb31ad601dfc565afacef7ebade5eba33fff1c329b5296c6387c008d1e1805d878431038f8b21 libbsd-0.12.2.tar.xz
"
diff --git a/main/libbsd/disable-fpurge-test.patch b/main/libbsd/disable-fpurge-test.patch
deleted file mode 100644
index a276eca3de4..00000000000
--- a/main/libbsd/disable-fpurge-test.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-On musl, FILE is not a complete type for C standards >=C11. See:
-
- https://git.musl-libc.org/cgit/musl/commit/?id=f368d9fd26ae002fe2fce20add4cb2b806f48972
-
-For this reason, the fpurge test fails to compile with:
-
- fpurge.c: In function 'main':
- fpurge.c:32:21: error: storage size of 'fp_bad' isn't known
- 32 | static FILE fp_bad;
- | ^~~~~~
-
-diff -upr libbsd-0.11.5.orig/test/Makefile.am libbsd-0.11.5/test/Makefile.am
---- libbsd-0.11.5.orig/test/Makefile.am 2022-02-04 23:14:39.252701411 +0100
-+++ libbsd-0.11.5/test/Makefile.am 2022-02-04 23:14:45.209390741 +0100
-@@ -38,7 +38,6 @@ check_PROGRAMS = \
- fgetln \
- funopen \
- fparseln \
-- fpurge \
- md5 \
- nlist \
- proctitle-init \
diff --git a/main/libburn/APKBUILD b/main/libburn/APKBUILD
index 1a49ac692d0..cedada57c70 100644
--- a/main/libburn/APKBUILD
+++ b/main/libburn/APKBUILD
@@ -1,13 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libburn
-pkgver=1.5.4
+pkgver=1.5.6
_ver=${pkgver%_p*}
if [ "$_ver" != "$pkgver" ]; then
_pver=".pl${pkgver##*_p}"
fi
-pkgrel=1
+pkgrel=0
pkgdesc="Library for reading, mastering and writing optical discs"
-url="https://libburnia-project.org/"
+url="https://dev.lovelyhq.com/libburnia/web/wiki"
arch="all"
license="GPL-2.0-or-later"
makedepends="linux-headers"
@@ -20,6 +20,7 @@ prepare() {
}
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -36,5 +37,5 @@ package() {
}
sha512sums="
-dd7b14093e62e2c02011955c24e01d70ed78969b14faf7e5a63c0da97a80c438b628922532eb135af7dea8ee7c7b83554b3354160306dad852ce5bf6eb1d5ac9 libburn-1.5.4.tar.gz
+549cb25310aac5ce445639374d84f0c09fb1fdd70be97479588775e5afcc12dd0655c5bf51bd3f1bf8c06a66b318fd1e709dcfd72845e795ffaf353ea621accd libburn-1.5.6.tar.gz
"
diff --git a/main/libc-dev/APKBUILD b/main/libc-dev/APKBUILD
deleted file mode 100644
index 6f79ce9c15e..00000000000
--- a/main/libc-dev/APKBUILD
+++ /dev/null
@@ -1,59 +0,0 @@
-# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=libc-dev
-pkgver=0.7.2
-pkgrel=3
-pkgdesc="Meta package to pull in correct libc"
-url="https://alpinelinux.org"
-arch="noarch"
-license="BSD-2-Clause AND BSD-3-Clause"
-options="!check" # No test suite
-makedepends_build=" "
-makedepends_host=" "
-makedepends="$makedepends_build $makedepends_host"
-depends="$CLIBC-dev"
-subpackages="libc-utils:utils bsd-compat-headers:bsdcompat"
-source="sys-cdefs.h
- sys-queue.h
- sys-tree.h
- sgidefs.h
- "
-
-prepare() {
- mkdir -p "$builddir"
-}
-
-package() {
- mkdir -p "$pkgdir"
-
- case "$CTARGET" in
- mips*)
- install -D "$srcdir"/sgidefs.h "$pkgdir"/usr/include/sgidefs.h
- ;;
- esac
-}
-
-utils() {
- depends="$CLIBC-utils"
-
- mkdir -p "$subpkgdir"
-}
-
-bsdcompat() {
- pkgdesc="BSD compatibility headers (cdefs, queue, tree)"
- depends=""
-
- mkdir -p "$subpkgdir"
- case "$CLIBC" in
- musl)
- install -D "$srcdir"/sys-cdefs.h "$subpkgdir"/usr/include/sys/cdefs.h
- install -D "$srcdir"/sys-queue.h "$subpkgdir"/usr/include/sys/queue.h
- install -D "$srcdir"/sys-tree.h "$subpkgdir"/usr/include/sys/tree.h
- ;;
- esac
-}
-
-sha512sums="8c3fddd73b696a38e633953715c79c47703739be27ee085fc6c960a57b6746ca05bf6406f7e6126cc1a13204254fd5830afb566624e1f298f4d6b58216013c28 sys-cdefs.h
-2f0d5e6e4dc3350285cf17009265dddcbe12431c111868eea39bc8cb038ab7c1f2acacbb21735c4e9d4a1fd106a8fc0f8611ea33987d4faba37dde5ce6da0750 sys-queue.h
-07cb70f2f0ddb31e23dd913c6f561fc9885667c5803fdf3a559676c99d08834b4104589bacb5d17b4a0b379c68c81a1cf3173832b3da33a7b936fa7b93706844 sys-tree.h
-7f8fc4b50aa88106adfba4971b2e441d6f480efef45ba8dce3b6c1235b1835a31883718e3d1f0606ad7366b965e52e00faf91c322e53f3af35da630126f26de4 sgidefs.h"
diff --git a/main/libc-dev/sgidefs.h b/main/libc-dev/sgidefs.h
deleted file mode 100644
index 22c110c928c..00000000000
--- a/main/libc-dev/sgidefs.h
+++ /dev/null
@@ -1,13 +0,0 @@
-#include <asm/sgidefs.h>
-
-#ifndef _ABIO32
-# define _ABIO32 _MIPS_SIM_ABI32
-#endif
-
-#ifndef _ABIN32
-# define _ABIN32 _MIPS_SIM_NABI32
-#endif
-
-#ifndef _ABI64
-# define _ABI64 _MIPS_SIM_ABI64
-#endif
diff --git a/main/libcap-ng/APKBUILD b/main/libcap-ng/APKBUILD
index d6a002b0d91..b3397c90ec1 100644
--- a/main/libcap-ng/APKBUILD
+++ b/main/libcap-ng/APKBUILD
@@ -1,11 +1,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libcap-ng
-pkgver=0.8.3
-pkgrel=1
+pkgver=0.8.4
+pkgrel=0
pkgdesc="POSIX capabilities library"
url="https://people.redhat.com/sgrubb/libcap-ng/index.html"
arch="all"
-license="GPL-2.0-or-later LGPL-2.1-or-later"
+license="GPL-2.0-or-later AND LGPL-2.1-or-later"
depends_dev="linux-headers"
makedepends_host="$depends_dev"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-utils"
@@ -43,6 +43,6 @@ utils() {
}
sha512sums="
-0ef9bc7bc6b7b59991f43b79aa6cde3e8d2c22c4b9ced2af8deae501e01d51e893033d109cb8aa0fdcba190140110993089245346334d7b114d18f1bb1b55b97 libcap-ng-0.8.3.tar.gz
+f4f3499d592e8583c2bdb8d700981a7930bd545f0889bc02f49acecf17e3bc600b100cd4f64e9326e5bac0a07a02a1ac4b7e83e919563066665a3d67cbe6871e libcap-ng-0.8.4.tar.gz
5f362d5d3f791d1bddc5d9ef3b31e5089c54f852904e12bc3b58dcd22fa87086766cfc095ae8b485bee1b3c4fd854575b89821052b77967a6fdca4ff7e0a0397 apply-disable.patch
"
diff --git a/main/libcap/APKBUILD b/main/libcap/APKBUILD
index 38a5b6795dd..14a4143e2db 100644
--- a/main/libcap/APKBUILD
+++ b/main/libcap/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libcap
-pkgver=2.64
-pkgrel=0
+pkgver=2.69
+pkgrel=1
pkgdesc="POSIX 1003.1e capabilities"
arch="all"
license="BSD-3-Clause OR GPL-2.0-only"
@@ -11,7 +11,15 @@ depends_dev="linux-headers"
makedepends_build="linux-headers perl bash"
makedepends_host="$depends_dev"
makedepends="$makedepends_build $makedepends_host"
-subpackages="$pkgname-doc $pkgname-static $pkgname-dev"
+subpackages="
+ $pkgname-doc
+ $pkgname-static
+ $pkgname-dev
+ $pkgname-getcap
+ $pkgname-setcap
+ $pkgname-utils
+ libcap2
+ "
source="https://kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-$pkgver.tar.xz"
build() {
@@ -20,16 +28,41 @@ build() {
}
check() {
- make test
+ make GOLANG=no test
}
package() {
- make lib=lib prefix=/usr RAISE_SETFCAP=no GOLANG=no DESTDIR="$pkgdir" \
+ # backwards compatibility for things that depended on 'libcap'
+ depends="libcap2=$pkgver-r$pkgrel $pkgname-utils=$pkgver-r$pkgrel"
+
+ make lib=lib prefix=/usr GOLANG=no DESTDIR="$pkgdir" \
install
- # Fix perms
- chmod -v 0755 "$pkgdir"/usr/lib/libcap.so.$pkgver
+}
+
+getcap() {
+ pkgdesc="$pkgdesc (getcap utility)"
+
+ amove usr/sbin/getcap
+}
+
+setcap() {
+ pkgdesc="$pkgdesc (setcap utility)"
+
+ amove usr/sbin/setcap
+}
+
+utils() {
+ pkgdesc="$pkgdesc (extra utils)"
+ depends="$pkgname-getcap=$pkgver-r$pkgrel $pkgname-setcap=$pkgver-r$pkgrel"
+
+ amove usr/sbin
+}
+
+libcap2() {
+ replaces="$pkgname<2.64-r1"
+ default_libs
}
sha512sums="
-3c5cf478cef249585ee1a0dfd75c6b41b0daf4e1ecb59dce894eac5523841aa79ca499be4161f73193dd8e7363edcd51063f3e281930cee939ebd50983eecbaf libcap-2.64.tar.xz
+647c307dc451517da9d089495ab959b4a6fbbe41c79f4e1e9bb663569dad630ead0c2e413dfb393319e3ea14dc9848c81b392107fe3382ce1813d278c3394a7f libcap-2.69.tar.xz
"
diff --git a/main/libcbor/APKBUILD b/main/libcbor/APKBUILD
index ab6e52f38bc..81cbaf5349f 100644
--- a/main/libcbor/APKBUILD
+++ b/main/libcbor/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Maintainer: Will Sinatra <wpsinatra@gmail.com>
pkgname=libcbor
-pkgver=0.9.0
-pkgrel=1
+pkgver=0.11.0
+pkgrel=0
pkgdesc="CBOR protocol implementation for C"
url="https://github.com/PJK/libcbor"
arch="all"
@@ -10,6 +10,7 @@ license="MIT"
makedepends="cmake samurai"
subpackages="$pkgname-dev"
source="$pkgname-$pkgver.tar.gz::https://github.com/PJK/libcbor/archive/refs/tags/v$pkgver.tar.gz"
+#rebuild: libfido2 fwupd
build() {
if [ "$CBUILD" != "$CHOST" ]; then
@@ -34,5 +35,5 @@ package() {
}
sha512sums="
-710239f69d770212a82e933e59df1aba0fb3ec516ef6666a366f30a950565a52981b0d46ca7e0eea739f5785d79cc21fc19acd857a4a0b135f4f6aa3ef5fd3b0 libcbor-0.9.0.tar.gz
+c14aaa55c0c82e09b9eb2cc6847951d1bac8a081a247776c507d5450367da5717b1056bad09fb0f0178311de8754e8f89c060e0fc0f400fafdc42de441421e66 libcbor-0.11.0.tar.gz
"
diff --git a/main/libclc/APKBUILD b/main/libclc/APKBUILD
new file mode 100644
index 00000000000..8ff2067b5b6
--- /dev/null
+++ b/main/libclc/APKBUILD
@@ -0,0 +1,52 @@
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=libclc
+# follow llvm versioning
+pkgver=17.0.6
+pkgrel=0
+_llvmver=${pkgver%%.*}
+pkgdesc="Open source implementation of the library requirements of the OpenCL C programming language"
+url="https://libclc.llvm.org/"
+arch="all"
+license="Apache-2.0 WITH LLVM-exception"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ clang$_llvmver
+ cmake
+ llvm$_llvmver-dev
+ llvm$_llvmver-static
+ llvm$_llvmver-gtest
+ samurai
+ spirv-llvm-translator-dev
+ "
+checkdepends="llvm-test-utils"
+subpackages="$pkgname-dev"
+source="https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/libclc-$pkgver.src.tar.xz
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/cmake-$pkgver.src.tar.xz
+ "
+builddir="$srcdir/libclc-$pkgver.src"
+options="!check" # todo: they fail for some reason
+
+build() {
+ CC=clang-$_llvmver \
+ CXX=clang++-$_llvmver \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLLVM_CONFIG="llvm-config-$_llvmver" \
+ -DLLVM_SPIRV=/usr/bin/llvm-spirv \
+ -DCMAKE_MODULE_PATH="$srcdir/cmake-$pkgver.src/Modules"
+ cmake --build build
+}
+
+check() {
+ cmake --build build --target test
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+6165bfa0112fb42756cd0e83a0d3d4406985b1d6db6eed8abb3bee9a74fcc451cc88928b24231493694035c35d9bcd367aa6a4a67da631cb4ee5e7a98037fee3 libclc-17.0.6.src.tar.xz
+b2c5e404ca36542d44e1a7f2801bbcecbcf5f1e8c63b793bb2308228483406bdfe002720aadb913c0228cd2bbe5998465eaadc4a49fad6a5eb6ff907fa5fd45a cmake-17.0.6.src.tar.xz
+"
diff --git a/main/libconfig/APKBUILD b/main/libconfig/APKBUILD
index cdd57fadba7..c0e3bea6897 100644
--- a/main/libconfig/APKBUILD
+++ b/main/libconfig/APKBUILD
@@ -2,9 +2,9 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libconfig
pkgver=1.7.3
-pkgrel=0
+pkgrel=3
pkgdesc="A simple library for manipulating structured configuration files"
-url="http://www.hyperrealm.com/libconfig/"
+url="https://www.hyperrealm.com/libconfig/libconfig.html"
arch="all"
license="LGPL-2.1-or-later"
makedepends="automake autoconf libtool texinfo"
@@ -30,7 +30,7 @@ check() {
}
package() {
- make -j1 DESTDIR="$pkgdir/" install
+ make DESTDIR="$pkgdir/" install
}
_cxx() {
diff --git a/main/libdaemon/APKBUILD b/main/libdaemon/APKBUILD
index 658da7848ef..4f690c526e7 100644
--- a/main/libdaemon/APKBUILD
+++ b/main/libdaemon/APKBUILD
@@ -1,27 +1,23 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libdaemon
pkgver=0.14
-pkgrel=3
+pkgrel=4
pkgdesc="A lightweight C library which eases the writing of UNIX daemons"
url="http://0pointer.de/lennart/projects/libdaemon/"
arch="all"
license="LGPL-2.1-or-later"
options="!check" # No test suite.
-depends=""
-makedepends=""
subpackages="$pkgname-dev $pkgname-doc"
source="https://dev.alpinelinux.org/archive/libdaemon/libdaemon-$pkgver.tar.gz
fix-includes.patch
"
prepare() {
- cd "$builddir"
update_config_sub
default_prepare
}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -32,7 +28,6 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
diff --git a/main/libdbi/APKBUILD b/main/libdbi/APKBUILD
index 262aeba5c82..21b9298afe5 100644
--- a/main/libdbi/APKBUILD
+++ b/main/libdbi/APKBUILD
@@ -2,12 +2,12 @@
# Maintainer: ScrumpyJack <scrumpyjack@st.ilet.to>
pkgname=libdbi
pkgver=0.9.0
-pkgrel=0
+pkgrel=4
pkgdesc="Database independent abstraction layer for C"
-options="libtool"
-url="http://libdbi.sourceforge.net/"
+options="libtool !check"
+url="https://libdbi.sourceforge.net/"
arch="all"
-license="LGPL-2.0-or-later"
+license="LGPL-2.1-or-later"
subpackages="$pkgname-doc $pkgname-dev"
source="https://downloads.sourceforge.net/project/libdbi/libdbi/libdbi-$pkgver/libdbi-$pkgver.tar.gz"
diff --git a/main/libde265/APKBUILD b/main/libde265/APKBUILD
index 707d2f925e0..a486f972150 100644
--- a/main/libde265/APKBUILD
+++ b/main/libde265/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=libde265
-pkgver=1.0.8
-pkgrel=2
+pkgver=1.0.15
+pkgrel=0
pkgdesc="Open h.265 video codec implementation"
url="https://github.com/strukturag/libde265"
arch="all"
@@ -11,15 +11,47 @@ makedepends="autoconf automake libtool"
options="!check" # no tests provided
subpackages="$pkgname-dev $pkgname-examples"
source="https://github.com/strukturag/libde265/releases/download/v$pkgver/libde265-$pkgver.tar.gz
- $pkgname-CVE-2022-1253.patch::https://github.com/strukturag/libde265/commit/8e89fe0e175d2870c39486fdd09250b230ec10b8.patch
- $pkgname-CVE-2021-36408.patch::https://github.com/strukturag/libde265/commit/f538254e4658ef5ea4e233c2185dcbfd165e8911.patch
- $pkgname-CVE-2021-36410.patch::https://github.com/strukturag/libde265/commit/697aa4f7c774abd6374596e6707a6f4f54265355.patch
- $pkgname-CVE-2021-35452.patch::https://github.com/strukturag/libde265/commit/e83f3798dd904aa579425c53020c67e03735138d.patch
- $pkgname-CVE-2021-36411.patch::https://github.com/strukturag/libde265/commit/45904e5667c5bf59c67fcdc586dfba110832894c.patch
- export-only-decoder-api.patch
disable_tools.patch
+ export-only-decoder-api.patch
"
# secfixes:
+# 1.0.15-r0:
+# - CVE-2023-49465
+# - CVE-2023-49467
+# - CVE-2023-49468
+# 1.0.11-r1:
+# - CVE-2023-27102
+# - CVE-2023-27103
+# 1.0.11-r0:
+# - CVE-2020-21594
+# - CVE-2020-21595
+# - CVE-2020-21596
+# - CVE-2020-21597
+# - CVE-2020-21598
+# - CVE-2020-21599
+# - CVE-2020-21600
+# - CVE-2020-21601
+# - CVE-2020-21602
+# - CVE-2020-21603
+# - CVE-2020-21604
+# - CVE-2020-21605
+# - CVE-2020-21606
+# - CVE-2022-43236
+# - CVE-2022-43237
+# - CVE-2022-43238
+# - CVE-2022-43239
+# - CVE-2022-43240
+# - CVE-2022-43241
+# - CVE-2022-43242
+# - CVE-2022-43243
+# - CVE-2022-43244
+# - CVE-2022-43245
+# - CVE-2022-43248
+# - CVE-2022-43249
+# - CVE-2022-43250
+# - CVE-2022-43252
+# - CVE-2022-43253
+# - CVE-2022-47655
# 1.0.8-r2:
# - CVE-2021-35452
# - CVE-2021-36408
@@ -61,12 +93,7 @@ examples() {
}
sha512sums="
-bcb33493cbc337d29047c6765189aaba523b20c138aa4fd5c264b3c6aea64cd174cbe14ca2d88c76319e0a8bd5d2e6269f300f056876d2962217eea7934172da libde265-1.0.8.tar.gz
-6ffdc33cd2910032b8de37388f2c724a4cfd23a1c6553d110b63be0ab07cfc7e4383cda53946b65c36fc1ed88604079c88fb93a186231c673c6ca778a744d56e libde265-CVE-2022-1253.patch
-b98274b37d5e9f0ac94bab79e9e2c56bd977f0905b7a246bd5e5c000e32046f7a80a43270aa77ca94bb81fda302582d2373e16cc9cce873eadd85336d44f9f20 libde265-CVE-2021-36408.patch
-bdc381b489f55a82c70795e0a32167383057baee3443089d5dfbb454500f2adc9f1c285ba7354026313f30fc84fd9de062cc1338c8d9beb452276201fa1858c1 libde265-CVE-2021-36410.patch
-41c1821169e6267c4b77ddcb3bf90d3f5018327abd32e4aa63786b919de647167c6994bfa65a46c7c1504222fc9e97011684807aea29c6182bf6f7069dd1bd59 libde265-CVE-2021-35452.patch
-5173a0cba2d1c8155cfa82596b344e426bcd815e5675499223d05b93f9afa7025192b10a709ab6f142ff9afe2991aa46597a09c538950e46e53e5d821173196a libde265-CVE-2021-36411.patch
+375d8e781108247e0e8b4d7a036d20cc5d0670bdbf6ddb40a6d3dbf912fa776d2f001fb762301cb97e4d43be29eb415b0cdbfc6e07aa18b3f2346f7409c64fce libde265-1.0.15.tar.gz
+1c702f229e2bafb2e72c90aed55b14691fa8f216ea855931197b8cd266c701ce2679a8f143651bdf984d7ac79a66a0d84b603822601a800ffb504461399d84ee disable_tools.patch
f7bd3799f4e4440e7efb98671eca425a5926dd526f8b1147cee2e49b1995853f67b63287c12739ef8ea680713af903517820f83f7f88eac6459f37bae01b4d50 export-only-decoder-api.patch
-1f12bf8c7f52932ab8a205996b4439afb75baf9bd6aab13126791f281784f5c7f1b3e20f9c20cfb0ab889b8643da5737a51d5571b54a3a8733ff5da835564eca disable_tools.patch
"
diff --git a/main/libde265/disable_tools.patch b/main/libde265/disable_tools.patch
index 8fb5ddd25b5..e927ac1e0f7 100644
--- a/main/libde265/disable_tools.patch
+++ b/main/libde265/disable_tools.patch
@@ -1,34 +1,11 @@
Description: Disable building of some internal tools that no longer link
- because internal symbols are no longer exported.
-Author: Joachim Bauch <bauch@struktur.de>
+ because internal symbols are no longer exported.
-Patch-Source: https://launchpad.net/~strukturag/+archive/ubuntu/libde265/+sourcefiles/libde265/1.0.8-1~ppa1~ubuntu20.10.1/libde265_1.0.8-1~ppa1~ubuntu20.10.1.debian.tar.gz
-
---- a/dec265/Makefile.am
-+++ b/dec265/Makefile.am
-@@ -1,5 +1,5 @@
-
--bin_PROGRAMS = dec265 hdrcopy
-+bin_PROGRAMS = dec265
-
- AM_CPPFLAGS = -I$(top_srcdir)/libde265 -I$(top_srcdir)
-
-@@ -9,12 +9,6 @@
- dec265_LDADD = ../libde265/libde265.la -lstdc++
- dec265_SOURCES = dec265.cc
-
--hdrcopy_DEPENDENCIES = ../libde265/libde265.la
--hdrcopy_CXXFLAGS =
--hdrcopy_LDFLAGS =
--hdrcopy_LDADD = ../libde265/libde265.la -lstdc++
--hdrcopy_SOURCES = hdrcopy.cc
--
- if HAVE_VIDEOGFX
- dec265_CXXFLAGS += $(VIDEOGFX_CFLAGS)
- dec265_LDFLAGS += $(VIDEOGFX_LIBS)
+diff --git a/Makefile.am b/Makefile.am
+index b4098f8..0d66934 100644
--- a/Makefile.am
+++ b/Makefile.am
-@@ -8,13 +8,6 @@
+@@ -8,13 +8,6 @@ if ENABLE_DEC265
SUBDIRS+=dec265
endif
diff --git a/main/libdnet/APKBUILD b/main/libdnet/APKBUILD
index e62967c01ad..636d0cd1ac7 100644
--- a/main/libdnet/APKBUILD
+++ b/main/libdnet/APKBUILD
@@ -1,18 +1,19 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libdnet
-pkgver=1.14
+pkgver=1.17.0
pkgrel=0
pkgdesc="simplified, portable interface to several low-level networking routines"
-url="https://github.com/dugsong/libdnet"
+url="https://github.com/ofalk/libdnet"
arch="all"
license="BSD-3-Clause"
-makedepends="linux-headers"
+makedepends="check-dev linux-headers"
+options="!check" # fails to find test-driver
subpackages="$pkgname-dev $pkgname-doc"
-source="https://github.com/dugsong/libdnet/archive/libdnet-$pkgver.tar.gz"
+source="https://github.com/ofalk/libdnet/archive/libdnet-$pkgver.tar.gz"
builddir="$srcdir"/$pkgname-$pkgname-$pkgver
prepare() {
- default_prepare
+ default_prepare
update_config_sub
}
@@ -26,10 +27,14 @@ build() {
make
}
+check() {
+ make check
+}
+
package() {
make DESTDIR="$pkgdir" install
}
sha512sums="
-ce8d95228f5175e4d9a8ff71bb99eb1ccc3ccd599a85dd07adbfd9842fc54066235d362c8060828fb3ba8129d0e1e8e071e93d60d69c6d03be310c80e61cea93 libdnet-1.14.tar.gz
+b207b2f61e3759a2b17827eabf37b0eb68cb9fa27418f99ee4efd754b01dfe8504dff465664b14054d54df334195d43963d142c7104dc603b2b8b1491590d2a7 libdnet-1.17.0.tar.gz
"
diff --git a/main/libdrm/APKBUILD b/main/libdrm/APKBUILD
index 4cc6d2775e8..fbdd8e4fbd0 100644
--- a/main/libdrm/APKBUILD
+++ b/main/libdrm/APKBUILD
@@ -1,42 +1,53 @@
# Contributor: Will Sinatra <wpsinatra@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libdrm
-pkgver=2.4.111
+pkgver=2.4.120
pkgrel=0
pkgdesc="Userspace interface to kernel DRM services"
-url="https://dri.freedesktop.org/"
+url="https://gitlab.freedesktop.org/mesa/drm"
arch="all"
# Requires a computer with gfx, no X running, build user in 'video' group..
options="!check"
license="MIT"
depends_dev="linux-headers"
-makedepends="$depends_dev meson libpthread-stubs eudev-dev libpciaccess-dev xmlto"
+makedepends="$depends_dev meson eudev-dev libpciaccess-dev xmlto"
checkdepends="cunit-dev bash"
-subpackages="$pkgname-dev"
+subpackages="$pkgname-dev $pkgname-tests"
source="https://gitlab.freedesktop.org/mesa/drm/-/archive/libdrm-$pkgver/drm-libdrm-$pkgver.tar.gz"
builddir="$srcdir/drm-libdrm-$pkgver"
build() {
+ CFLAGS="$CFLAGS -O2" \
+ CPPFLAGS="$CPPFLAGS -O2" \
+ CXXFLAGS="$CXXFLAGS -O2" \
abuild-meson \
- -Dfreedreno=true \
- -Dtegra=true \
- -Domap=true \
- -Dexynos=true \
- -Dvc4=true \
- -Detnaviv=true \
+ -Db_lto=true \
+ -Dfreedreno=enabled \
+ -Dintel=enabled \
+ -Dtegra=enabled \
+ -Domap=enabled \
+ -Dexynos=enabled \
+ -Dvc4=enabled \
+ -Detnaviv=enabled \
-Dudev=true \
+ -Dinstall-test-programs=true \
+ -Dtests=true \
. output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
check() {
- meson test -v -C output
+ meson test --print-errorlogs -C output
}
package() {
DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
+tests() {
+ amove usr/bin
+}
+
sha512sums="
-6d1a9688adcfedf71b14c08d04cee0df568a18be26f5d547354676d552fd1b17f41d142e098e649d0ca952baf95ac773af001be6c1dec25027bdc7a27813ced9 drm-libdrm-2.4.111.tar.gz
+31428ec49476af3bb7acbe088ebb2411f2f69013af63afd0832546df1a45a7f45ebb472dce3f07946b9202e41deba7aae3590c2e721c56b6d64de908704ae308 drm-libdrm-2.4.120.tar.gz
"
diff --git a/main/libdwarf/APKBUILD b/main/libdwarf/APKBUILD
new file mode 100644
index 00000000000..04862973fa5
--- /dev/null
+++ b/main/libdwarf/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: David Huffman <storedbox@outlook.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=libdwarf
+pkgver=0.9.2
+pkgrel=0
+pkgdesc="Parsing library for DWARF2 and later debugging file format"
+url="https://www.prevanders.net/dwarf.html"
+arch="all"
+license="LGPL-2.1-only"
+makedepends="elfutils-dev meson python3 zlib-dev zstd-dev"
+subpackages="liblibdwarfp $pkgname-dev dwarf-tools dwarf-tools-doc"
+source="https://www.prevanders.net/libdwarf-$pkgver.tar.xz"
+
+# secfixes:
+# 0.9.2-r0:
+# - DW202402-001
+# - DW202402-002
+# - DW202402-003
+# - DW202403-001
+# 0.6.0-r0:
+# - CVE-2019-14249
+# - CVE-2015-8538
+
+build() {
+ abuild-meson \
+ -Db_lto=true \
+ -Ddwarfgen=true \
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+liblibdwarfp() {
+ amove usr/lib/libdwarfp.so.*
+}
+
+tools() {
+ license="GPL-2.0-only AND BSD-3-Clause"
+ pkgdesc="Tools for interacting with DWARF2 and later debugging files"
+
+ amove usr/bin usr/share/dwarfdump
+}
+
+sha512sums="
+f502b6da4b96d5962da1197c4ae522bfdb2858496c4af198109d844e0021318cb2a5ebc9c8cf9fc2e4439997ca9545c650ca4f28f0d96cb66b05c9b89b98f2f8 libdwarf-0.9.2.tar.xz
+"
diff --git a/main/libeatmydata/APKBUILD b/main/libeatmydata/APKBUILD
new file mode 100644
index 00000000000..7a2b5df84fc
--- /dev/null
+++ b/main/libeatmydata/APKBUILD
@@ -0,0 +1,38 @@
+# Contributor: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer:
+pkgname=libeatmydata
+pkgver=131
+pkgrel=7
+pkgdesc="LD_PRELOAD library and utility that disables all forms of writing data safely to disk"
+url="https://www.flamingspork.com/projects/libeatmydata/"
+arch="all"
+license="GPL-3.0-or-later"
+checkdepends="bash strace"
+source="https://github.com/stewartsmith/libeatmydata/releases/download/v$pkgver/libeatmydata-$pkgver.tar.gz
+ lfs64.patch
+ "
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --disable-static
+ make
+}
+
+check() {
+ make check-debug
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+064417dc085cb82e4baf1d160fcde2c6e0d9fed60e5c595799630b030053c373d888853055894c127c5b384be9204e8bbb251877651811b5fc5cdca8ffd9cf42 libeatmydata-131.tar.gz
+e23d50193673d568442b9562cd61817710787b9cbd4b7c6bf30438b58bf421c1505a745147d0d901fe5c2e188cf36d9ffabd5dde97d860c5436fc6e7463d1458 lfs64.patch
+"
diff --git a/main/libeatmydata/lfs64.patch b/main/libeatmydata/lfs64.patch
new file mode 100644
index 00000000000..e1522aae810
--- /dev/null
+++ b/main/libeatmydata/lfs64.patch
@@ -0,0 +1,22 @@
+diff --git a/libeatmydata/libeatmydata.c b/libeatmydata/libeatmydata.c
+index 134afcd..b302e7b 100644
+--- a/libeatmydata/libeatmydata.c
++++ b/libeatmydata/libeatmydata.c
+@@ -44,7 +44,7 @@ typedef int (*libc_sync_t)(void);
+ typedef int (*libc_fdatasync_t)(int);
+ typedef int (*libc_msync_t)(void*, size_t, int);
+ #ifdef HAVE_SYNC_FILE_RANGE
+-typedef int (*libc_sync_file_range_t)(int, off64_t, off64_t, unsigned int);
++typedef int (*libc_sync_file_range_t)(int, off_t, off_t, unsigned int);
+ #endif
+ #ifdef HAVE_SYNCFS
+ typedef int (*libc_syncfs_t)(int);
+@@ -259,7 +259,7 @@ int LIBEATMYDATA_API msync(void *addr, size_t length, int flags)
+ }
+
+ #ifdef HAVE_SYNC_FILE_RANGE
+-int LIBEATMYDATA_API sync_file_range(int fd, off64_t offset, off64_t nbytes,
++int LIBEATMYDATA_API sync_file_range(int fd, off_t offset, off_t nbytes,
+ unsigned int flags)
+ {
+ if (eatmydata_is_hungry()) {
diff --git a/main/libeconf/0001-Fix-build-with-musl-libc-on-ppc64le.patch b/main/libeconf/0001-Fix-build-with-musl-libc-on-ppc64le.patch
new file mode 100644
index 00000000000..a181e139e35
--- /dev/null
+++ b/main/libeconf/0001-Fix-build-with-musl-libc-on-ppc64le.patch
@@ -0,0 +1,29 @@
+From abeea53fd7b214a6cb72e4a42ae2646e1db8fd06 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Fri, 8 Mar 2024 12:40:06 +0100
+Subject: [PATCH] Fix build with musl libc on ppc64le
+
+PATH_MAX is defined in limits.h in POSIX.
+
+Fixes https://github.com/openSUSE/libeconf/issues/197
+
+ref: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/limits.h.html
+---
+ lib/libeconf.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/lib/libeconf.c b/lib/libeconf.c
+index c68a290..8459724 100644
+--- a/lib/libeconf.c
++++ b/lib/libeconf.c
+@@ -31,6 +31,7 @@
+ #include "readconfig.h"
+
+ #include <libgen.h>
++#include <limits.h>
+ #include <dirent.h>
+ #include <stdio.h>
+ #include <string.h>
+--
+2.44.0
+
diff --git a/main/libeconf/APKBUILD b/main/libeconf/APKBUILD
index 9b4033ec21b..6d0ee9e84dc 100644
--- a/main/libeconf/APKBUILD
+++ b/main/libeconf/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libeconf
-pkgver=0.4.4
+pkgver=0.6.2
pkgrel=0
pkgdesc="Enhanced Config File Parser"
url="https://github.com/openSUSE/libeconf"
@@ -12,15 +12,16 @@ checkdepends="bash"
subpackages="$pkgname-dev $pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/openSUSE/libeconf/archive/refs/tags/v$pkgver.tar.gz
musl-tests.patch
+ 0001-Fix-build-with-musl-libc-on-ppc64le.patch
"
build() {
- abuild-meson . output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ abuild-meson -Db_lto=true . output
+ meson compile -C output
}
check() {
- meson test --no-rebuild -v -C output
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
@@ -28,6 +29,7 @@ package() {
}
sha512sums="
-ccceb3b3f3a9aa84ebc4bb3f6e7b8edddecad4a190d13973805e6d61f354204f0b1a7609e434f9d38c356ec771d007f14cd5b045e5fc56aa63bd771f0cd22390 libeconf-0.4.4.tar.gz
+5646af5e76b54a9a1a05780160404dd53cdf2022085a519098223539d5c162b6ab5c1ba0ce1099a28eb411a19dd2df1a51c487a34cfe4f7f9fc3ecbce7762e59 libeconf-0.6.2.tar.gz
28431c1f80ee7815991584ef6307dabe593b4da58b9406e6f1a9cb30bfba3e925a48c83b0d3824427631bede5b1249b0c87e0d9fb55971d4ecf90805076b25dd musl-tests.patch
+88a2e97e9952fee4f0957e97877e85da3524fb8ff2dfe14bb76eb77dbf1d93335377380a1277723491d98a66739b1d35e729524f4807ad03979476e8fef62b97 0001-Fix-build-with-musl-libc-on-ppc64le.patch
"
diff --git a/main/libedit/APKBUILD b/main/libedit/APKBUILD
index b6b7f65664f..1c48d7d0231 100644
--- a/main/libedit/APKBUILD
+++ b/main/libedit/APKBUILD
@@ -1,13 +1,13 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libedit
-pkgver=20210910.3.1
+pkgver=20230828.3.1
_ver=${pkgver/./-}
-pkgrel=0
+pkgrel=4
pkgdesc="BSD line editing library"
url="https://www.thrysoee.dk/editline"
arch="all"
license="BSD-3-Clause"
-depends_dev="ncurses-dev"
+depends_dev="bsd-compat-headers ncurses-dev"
makedepends_host="$depends_dev"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
source="https://www.thrysoee.dk/editline/libedit-$_ver.tar.gz"
@@ -35,9 +35,16 @@ package() {
# Prevent conflict with editline-doc and readline-doc
mv "$pkgdir"/usr/share/man/man3/editline.3 \
"$pkgdir"/usr/share/man/man3/libedit.3
+
+ # update symlinks
+ find "$pkgdir"/usr/share/man/man3/ -type l | while IFS= read -r path; do
+ [ "$(readlink "$path")" != 'editline.3.gz' ] && continue
+ echo ln -s -f -T -- 'libedit.3.gz' "$path"
+ done
+
rm "$pkgdir"/usr/share/man/man3/history.3*
}
sha512sums="
-b7361c277f971ebe87e0e539e5e1fb01a4ca1bbab61e199eb97774d8b60dddeb9e35796faf9cc68eb86d1890e8aac11db13b44b57ccc8302d559741fbe9d979e libedit-20210910-3.1.tar.gz
+c7232376ef1bc128ed79f950a5f1f207f874011218682d7e6186f76443927df5483b46c4daa8cf02e327079259aee1a56e2b791aa682491eb802d90ff8940cca libedit-20230828-3.1.tar.gz
"
diff --git a/main/libepoxy/APKBUILD b/main/libepoxy/APKBUILD
index 60871bcfaf1..ad1943fabda 100644
--- a/main/libepoxy/APKBUILD
+++ b/main/libepoxy/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libepoxy
pkgver=1.5.10
-pkgrel=0
+pkgrel=1
pkgdesc="Direct Rendering Manager runtime library"
url="https://github.com/anholt/libepoxy"
arch="all"
@@ -21,11 +21,11 @@ build() {
-Dx11=true \
-Dtests=true \
. output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
check() {
- meson test --no-rebuild -v -C output
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
diff --git a/main/libestr/APKBUILD b/main/libestr/APKBUILD
index f65b19c4b72..2fa2c5897dc 100644
--- a/main/libestr/APKBUILD
+++ b/main/libestr/APKBUILD
@@ -2,17 +2,21 @@
# Maintainer: Cameron Banta <cbanta@gmail.com>
pkgname=libestr
pkgver=0.1.11
-pkgrel=1
+pkgrel=4
pkgdesc="essentials for string handling (and a bit more)"
options="!check" # No testsuite
url="https://libestr.adiscon.com/"
arch="all"
license="LGPL-2.1-or-later"
subpackages="$pkgname-dev"
-source="http://libestr.adiscon.com/files/download/$pkgname-$pkgver.tar.gz"
+source="http://libestr.adiscon.com/files/download/libestr-$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -22,7 +26,6 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
diff --git a/main/libev/APKBUILD b/main/libev/APKBUILD
index 5c6e850931f..e4e8dd88f5e 100644
--- a/main/libev/APKBUILD
+++ b/main/libev/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libev
pkgver=4.33
-pkgrel=0
+pkgrel=1
pkgdesc="event dispatch library"
url="http://software.schmorp.de/pkg/libev.html"
arch="all"
@@ -16,6 +16,8 @@ source="http://dist.schmorp.de/libev/Attic/libev-$pkgver.tar.gz
prepare() {
default_prepare
+ update_config_sub
+
libtoolize --force && aclocal -I m4 && autoheader&& autoconf \
&& automake --add-missing
}
diff --git a/main/libevent/APKBUILD b/main/libevent/APKBUILD
index 427130ce328..632db86c63a 100644
--- a/main/libevent/APKBUILD
+++ b/main/libevent/APKBUILD
@@ -3,14 +3,14 @@
pkgname=libevent
pkgver=2.1.12
_pkgver=$pkgver-stable
-pkgrel=4
+pkgrel=7
pkgdesc="An event notification library"
url="https://libevent.org/"
arch="all"
license="BSD-3-Clause"
options="!check" # regression tests failed
depends_dev="python3"
-makedepends="$depends_dev openssl1.1-compat-dev"
+makedepends="$depends_dev openssl-dev>3"
subpackages="$pkgname-static $pkgname-dev"
source="https://github.com/libevent/libevent/releases/download/release-$_pkgver/libevent-$_pkgver.tar.gz"
builddir="$srcdir/$pkgname-$_pkgver"
@@ -23,6 +23,7 @@ builddir="$srcdir/$pkgname-$_pkgver"
prepare() {
default_prepare
+ update_config_sub
sed -i '1s|^#!/usr/bin/env python$|#!/usr/bin/python3|' event_rpcgen.py
# help provides tracing work out correctly
diff --git a/main/libexecinfo/10-execinfo.patch b/main/libexecinfo/10-execinfo.patch
deleted file mode 100644
index 44db53026ad..00000000000
--- a/main/libexecinfo/10-execinfo.patch
+++ /dev/null
@@ -1,64 +0,0 @@
---- a/execinfo.c.orig
-+++ b/execinfo.c
-@@ -69,7 +69,8 @@
- char **
- backtrace_symbols(void *const *buffer, int size)
- {
-- int i, clen, alen, offset;
-+ size_t clen, alen;
-+ int i, offset;
- char **rval;
- char *cp;
- Dl_info info;
-@@ -78,7 +79,6 @@
- rval = malloc(clen);
- if (rval == NULL)
- return NULL;
-- (char **)cp = &(rval[size]);
- for (i = 0; i < size; i++) {
- if (dladdr(buffer[i], &info) != 0) {
- if (info.dli_sname == NULL)
-@@ -92,14 +92,14 @@
- 2 + /* " <" */
- strlen(info.dli_sname) + /* "function" */
- 1 + /* "+" */
-- D10(offset) + /* "offset */
-+ 10 + /* "offset */
- 5 + /* "> at " */
- strlen(info.dli_fname) + /* "filename" */
- 1; /* "\0" */
- rval = realloc_safe(rval, clen + alen);
- if (rval == NULL)
- return NULL;
-- snprintf(cp, alen, "%p <%s+%d> at %s",
-+ snprintf((char *) rval + clen, alen, "%p <%s+%d> at %s",
- buffer[i], info.dli_sname, offset, info.dli_fname);
- } else {
- alen = 2 + /* "0x" */
-@@ -108,12 +108,15 @@
- rval = realloc_safe(rval, clen + alen);
- if (rval == NULL)
- return NULL;
-- snprintf(cp, alen, "%p", buffer[i]);
-+ snprintf((char *) rval + clen, alen, "%p", buffer[i]);
- }
-- rval[i] = cp;
-- cp += alen;
-+ rval[i] = (char *) clen;
-+ clen += alen;
- }
-
-+ for (i = 0; i < size; i++)
-+ rval[i] += (long) rval;
-+
- return rval;
- }
-
-@@ -155,6 +158,6 @@
- return;
- snprintf(buf, len, "%p\n", buffer[i]);
- }
-- write(fd, buf, len - 1);
-+ write(fd, buf, strlen(buf));
- }
- }
diff --git a/main/libexecinfo/20-define-gnu-source.patch b/main/libexecinfo/20-define-gnu-source.patch
deleted file mode 100644
index 7255ecdd6a8..00000000000
--- a/main/libexecinfo/20-define-gnu-source.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- a/execinfo.c.orig
-+++ b/execinfo.c
-@@ -26,6 +26,7 @@
- * $Id: execinfo.c,v 1.3 2004/07/19 05:21:09 sobomax Exp $
- */
-
-+#define _GNU_SOURCE
- #include <sys/types.h>
- #include <sys/uio.h>
- #include <dlfcn.h>
---- a/stacktraverse.c.orig
-+++ b/stacktraverse.c
-@@ -1,3 +1,4 @@
-+#define _GNU_SOURCE
- #include <stddef.h>
-
- #include "stacktraverse.h"
---- a/test.c.orig
-+++ b/test.c
-@@ -1,3 +1,4 @@
-+#define _GNU_SOURCE
- #include <stdio.h>
- #include <stdlib.h>
-
diff --git a/main/libexecinfo/30-linux-makefile.patch b/main/libexecinfo/30-linux-makefile.patch
deleted file mode 100644
index 6bc8a899d25..00000000000
--- a/main/libexecinfo/30-linux-makefile.patch
+++ /dev/null
@@ -1,44 +0,0 @@
---- a/Makefile.orig
-+++ b/Makefile
-@@ -23,24 +23,25 @@
- # SUCH DAMAGE.
- #
- # $Id: Makefile,v 1.3 2004/07/19 05:19:55 sobomax Exp $
-+#
-+# Linux Makefile by Matt Smith <mcs@darkregion.net>, 2011/01/04
-
--LIB= execinfo
-+CC=cc
-+AR=ar
-+EXECINFO_CFLAGS=$(CFLAGS) -O2 -pipe -fno-strict-aliasing -std=gnu99 -fstack-protector -c
-+EXECINFO_LDFLAGS=$(LDFLAGS)
-
--SRCS= stacktraverse.c stacktraverse.h execinfo.c execinfo.h
-+all: static dynamic
-
--INCS= execinfo.h
-+static:
-+ $(CC) $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) stacktraverse.c
-+ $(CC) $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) execinfo.c
-+ $(AR) rcs libexecinfo.a stacktraverse.o execinfo.o
-
--SHLIB_MAJOR= 1
--SHLIB_MINOR= 0
-+dynamic:
-+ $(CC) -fpic -DPIC $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) stacktraverse.c -o stacktraverse.So
-+ $(CC) -fpic -DPIC $(EXECINFO_CFLAGS) $(EXECINFO_LDFLAGS) execinfo.c -o execinfo.So
-+ $(CC) -shared -Wl,-soname,libexecinfo.so.1 -o libexecinfo.so.1 stacktraverse.So execinfo.So
-
--NOPROFILE= yes
--
--DPADD= ${LIBM}
--LDADD= -lm
--
--#WARNS?= 4
--
--#stacktraverse.c: gen.py
--# ./gen.py > stacktraverse.c
--
--.include <bsd.lib.mk>
-+clean:
-+ rm -rf *.o *.So *.a *.so
diff --git a/main/libexecinfo/APKBUILD b/main/libexecinfo/APKBUILD
deleted file mode 100644
index 0e91c2ca359..00000000000
--- a/main/libexecinfo/APKBUILD
+++ /dev/null
@@ -1,50 +0,0 @@
-# Contributor: Philipp Andronov <filipp.andronov@gmail.com>
-# Maintainer: Matt Smith <mcs@darkregion.net>
-pkgname=libexecinfo
-pkgver=1.1
-pkgrel=1
-pkgdesc="A quick-n-dirty BSD licensed clone of the GNU libc backtrace facility."
-options="!check" # No testsuite
-url="https://www.freshports.org/devel/libexecinfo"
-arch="all"
-license="BSD-2-Clause"
-subpackages="$pkgname-static ${pkgname}-dev"
-source="http://distcache.freebsd.org/local-distfiles/itetcu/$pkgname-$pkgver.tar.bz2
- 10-execinfo.patch
- 20-define-gnu-source.patch
- 30-linux-makefile.patch
- "
-
-build() {
- cd "$builddir"
- export CFLAGS="${CFLAGS} -fno-omit-frame-pointer"
- make
-}
-
-package() {
- cd "$builddir"
-
- install -D -m755 "$builddir"/execinfo.h \
- "$pkgdir"/usr/include/execinfo.h
- install -D -m755 "$builddir"/stacktraverse.h \
- "$pkgdir"/usr/include/stacktraverse.h
- install -D -m755 "$builddir"/libexecinfo.a \
- "$pkgdir"/usr/lib/libexecinfo.a
- install -D -m755 "$builddir"/libexecinfo.so.1 \
- "$pkgdir"/usr/lib/libexecinfo.so.1
- ln -s /usr/lib/libexecinfo.so.1 \
- "$pkgdir"/usr/lib/libexecinfo.so
-}
-
-static() {
- depends=""
- pkgdesc="$pkgdesc (static library)"
-
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib
-}
-
-sha512sums="51fea7910ef6873061a25c22434ce4da724e9d8e37616a069ad0a58c0463755be4c6c7da88cd747484c2f3373909d7be4678b32a4bd91b6d9e0f74526094e92c libexecinfo-1.1.tar.bz2
-cd35c9046d88b39b05bc36faffb1e71ae3b2140632da7da37f374fff671d4ad812eebd0581011ff9e3b25d3cb4bc962cf35957074f713817b3b617511425af1a 10-execinfo.patch
-c961b2f86cba291e8c69a507e3880354ad7369fd04c8948d54c4db0578fe30cca8f4250742cb63d1ab6e5875988f04c4729256197030369404f0e925f299a66c 20-define-gnu-source.patch
-13d3df88a6dabd78ee2cf50092511f5a10f0e5ff3d81dbacb182fcf85ceb0c13a5f0252397b4eb0ac57f8d8bd3fc3af6c05865d6398cbc1517f347210c5750da 30-linux-makefile.patch"
diff --git a/main/libfastjson/APKBUILD b/main/libfastjson/APKBUILD
index 2476e80eaf2..f4a0bfcd756 100644
--- a/main/libfastjson/APKBUILD
+++ b/main/libfastjson/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Ashley Sommer <ashleysommer@gmail.com>
# Maintainer: Ashley Sommer <ashleysommer@gmail.com>
pkgname=libfastjson
-pkgver=0.99.9
-pkgrel=0
+pkgver=1.2304.0
+pkgrel=4
pkgdesc="fork of the json-c library for rsyslog, optimized for liblognorm processing."
url="https://www.rsyslog.com/"
arch="all"
@@ -11,6 +11,10 @@ makedepends="autoconf automake libtool"
subpackages="$pkgname-dev $pkgname-dbg"
source="$pkgname-$pkgver.tar.gz::https://github.com/rsyslog/libfastjson/archive/v$pkgver.tar.gz"
+# secfixes:
+# 1.2304.0-r0:
+# - CVE-2020-12762
+
prepare() {
default_prepare
./autogen.sh
@@ -35,4 +39,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="d32d949465dcc94d04be6cd0e1cf78e5653bbbef7e2bd148079a5f4d69102febabd1fe8af668e344b82c62a918d1cc6c9f39a203d65cb1d81409a6d400a63d6a libfastjson-0.99.9.tar.gz"
+sha512sums="
+a43dc809c0fc073f8bddaebdf91c996ccfc6275d7dcc312762e8dfb366dc121c7698c316b71bd5b43f2f7e9b3c326c90cfa927ce415824a7d32dd5e6667048ab libfastjson-1.2304.0.tar.gz
+"
diff --git a/main/libffi/APKBUILD b/main/libffi/APKBUILD
index 227a5568f99..0fd49b272f1 100644
--- a/main/libffi/APKBUILD
+++ b/main/libffi/APKBUILD
@@ -1,28 +1,16 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libffi
-pkgver=3.4.2
-pkgrel=1
+pkgver=3.4.6
+pkgrel=0
pkgdesc="portable, high level programming interface to various calling conventions."
url="https://sourceware.org/libffi/"
arch="all"
license="MIT"
depends_dev="linux-headers"
-makedepends_build="texinfo automake autoconf libtool"
-# on mips* ffitarget.h wants <asm/sgidefs.h>
-makedepends_host="linux-headers"
+makedepends_build="texinfo"
checkdepends="dejagnu"
subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/libffi/libffi/archive/refs/tags/v$pkgver.tar.gz
- pax-dlmmap.patch
- "
-
-[ "$CARCH" = "ppc64le" ] && options="$options !check" # test fails
-
-prepare() {
- default_prepare
- update_config_sub
- ./autogen.sh
-}
+source="https://github.com/libffi/libffi/releases/download/v$pkgver/libffi-$pkgver.tar.gz"
build() {
./configure \
@@ -44,6 +32,5 @@ package() {
}
sha512sums="
-d399319efcca375fe901b05722e25eca31d11a4261c6a5d5079480bbc552d4e4b42de2026912689d3b2f886ebb3c8bebbea47102e38a2f6acbc526b8d5bba388 libffi-3.4.2.tar.gz
-72486b389db16055ae4d7d33ba0cb05840537e28fe7a86aa89e2cb922592125d99c18c26c5df7ffde6282742e79f2b9126353e58b58f091f0486589e14dd6474 pax-dlmmap.patch
+033d2600e879b83c6bce0eb80f69c5f32aa775bf2e962c9d39fbd21226fa19d1e79173d8eaa0d0157014d54509ea73315ad86842356fc3a303c0831c94c6ab39 libffi-3.4.6.tar.gz
"
diff --git a/main/libffi/pax-dlmmap.patch b/main/libffi/pax-dlmmap.patch
deleted file mode 100644
index ec4150410d3..00000000000
--- a/main/libffi/pax-dlmmap.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-From 48d2e46528fb6e621d95a7fa194069fd136b712d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Stefan=20B=C3=BChler?= <buehler@cert.uni-stuttgart.de>
-Date: Wed, 7 Sep 2016 15:49:48 +0200
-Subject: [PATCH 1/2] dlmmap_locked always needs locking as it always modifies
- execsize
-
----
- src/closures.c | 13 ++++---------
- 1 file changed, 4 insertions(+), 9 deletions(-)
-
-diff --git a/src/closures.c b/src/closures.c
-index 2e0ffb45..04d6e27f 100644
---- a/src/closures.c
-+++ b/src/closures.c
-@@ -769,16 +769,11 @@ dlmmap (void *start, size_t length, int prot,
- MREMAP_DUP and prot at this point. */
- }
-
-- if (execsize == 0 || execfd == -1)
-- {
-- pthread_mutex_lock (&open_temp_exec_file_mutex);
-- ptr = dlmmap_locked (start, length, prot, flags, offset);
-- pthread_mutex_unlock (&open_temp_exec_file_mutex);
-+ pthread_mutex_lock (&open_temp_exec_file_mutex);
-+ ptr = dlmmap_locked (start, length, prot, flags, offset);
-+ pthread_mutex_unlock (&open_temp_exec_file_mutex);
-
-- return ptr;
-- }
--
-- return dlmmap_locked (start, length, prot, flags, offset);
-+ return ptr;
- }
-
- /* Release memory at the given address, as well as the corresponding
-
-From 7aad5f895e2dfdb79d2ef67e1b231d21063e6511 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Stefan=20B=C3=BChler?= <buehler@cert.uni-stuttgart.de>
-Date: Wed, 7 Sep 2016 15:50:54 +0200
-Subject: [PATCH 2/2] ignore PaX EMUTRAMP flag; instead check for MPROTECT
-
-- code using ffi_closure_alloc doesn't necessarily generate gcc compatible trampolines; only those are allowed by PaX
-- if MPROTECT is enabled use the same workaround as is used for SELinux (double mmap())
----
- src/closures.c | 29 +++++++++++++----------------
- 1 file changed, 13 insertions(+), 16 deletions(-)
-
-diff --git a/src/closures.c b/src/closures.c
-index 04d6e27f..babecc1a 100644
---- a/src/closures.c
-+++ b/src/closures.c
-@@ -401,14 +401,15 @@ selinux_enabled_check (void)
-
- #endif /* !FFI_MMAP_EXEC_SELINUX */
-
--/* On PaX enable kernels that have MPROTECT enable we can't use PROT_EXEC. */
-+/* On PaX enable kernels that have MPROTECT enabled we can't use PROT_EXEC. */
- #ifdef FFI_MMAP_EXEC_EMUTRAMP_PAX
- #include <stdlib.h>
-
--static int emutramp_enabled = -1;
-+/* -1: not read yet; 0: no PaX or MPROTECT disabled; 1: MPROTECT enabled. */
-+static int mprotect_enabled = -1;
-
- static int
--emutramp_enabled_check (void)
-+mprotect_enabled_check (void)
- {
- char *buf = NULL;
- size_t len = 0;
-@@ -422,9 +423,7 @@ emutramp_enabled_check (void)
- while (getline (&buf, &len, f) != -1)
- if (!strncmp (buf, "PaX:", 4))
- {
-- char emutramp;
-- if (sscanf (buf, "%*s %*c%c", &emutramp) == 1)
-- ret = (emutramp == 'E');
-+ ret = (NULL != strchr (buf + 4, 'M'));
- break;
- }
- free (buf);
-@@ -432,8 +431,9 @@ emutramp_enabled_check (void)
- return ret;
- }
-
--#define is_emutramp_enabled() (emutramp_enabled >= 0 ? emutramp_enabled \
-- : (emutramp_enabled = emutramp_enabled_check ()))
-+#define is_mprotect_enabled() (mprotect_enabled >= 0 ? mprotect_enabled \
-+ : (mprotect_enabled = mprotect_enabled_check ()))
-+
- #endif /* FFI_MMAP_EXEC_EMUTRAMP_PAX */
-
- #elif defined (__CYGWIN__) || defined(__INTERIX)
-@@ -446,7 +446,7 @@ emutramp_enabled_check (void)
- #endif /* !defined(X86_WIN32) && !defined(X86_WIN64) */
-
- #ifndef FFI_MMAP_EXEC_EMUTRAMP_PAX
--#define is_emutramp_enabled() 0
-+#define is_mprotect_enabled() 0
- #endif /* FFI_MMAP_EXEC_EMUTRAMP_PAX */
-
- /* Declare all functions defined in dlmalloc.c as static. */
-@@ -750,13 +750,10 @@ dlmmap (void *start, size_t length, int prot,
- && flags == (MAP_PRIVATE | MAP_ANONYMOUS)
- && fd == -1 && offset == 0);
-
-- if (execfd == -1 && is_emutramp_enabled ())
-- {
-- ptr = mmap (start, length, prot & ~PROT_EXEC, flags, fd, offset);
-- return ptr;
-- }
--
-- if (execfd == -1 && !is_selinux_enabled ())
-+ /* -1 != execfd hints that we already decided to use dlmmap_locked
-+ last time. If PaX MPROTECT or SELinux is active fallback to
-+ dlmmap_locked. */
-+ if (execfd == -1 && !is_mprotect_enabled () && !is_selinux_enabled ())
- {
- ptr = mmap (start, length, prot | PROT_EXEC, flags, fd, offset);
-
diff --git a/main/libfido2/APKBUILD b/main/libfido2/APKBUILD
index 411410479e9..41c494ffd25 100644
--- a/main/libfido2/APKBUILD
+++ b/main/libfido2/APKBUILD
@@ -1,14 +1,14 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Maintainer: Will Sinatra <wpsinatra@gmail.com>
pkgname=libfido2
-pkgver=1.10.0
+pkgver=1.14.0
pkgrel=1
pkgdesc="library for FIDO 2.0 functionality"
url="https://github.com/Yubico/libfido2"
arch="all"
license="BSD-2-Clause"
install="$pkgname.pre-install"
-makedepends="cmake libcbor-dev openssl-dev zlib-dev eudev-dev linux-headers samurai"
+makedepends="cmake libcbor-dev openssl-dev>3 zlib-dev eudev-dev linux-headers samurai"
subpackages="$pkgname-dev $pkgname-doc fido2:fido"
source="$pkgname-$pkgver.tar.gz::https://github.com/Yubico/libfido2/archive/refs/tags/$pkgver.tar.gz"
@@ -27,7 +27,7 @@ build() {
check() {
cd build
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest -j4
}
package() {
@@ -41,5 +41,5 @@ fido() {
}
sha512sums="
-ba03e25d3f42f11cec74dee48c853ae35d03600f24ca06d2b751840408a132290fe22461372ae42ae31419061a63d9908c20a2c0cf3c0c9c8dbc46c34916784f libfido2-1.10.0.tar.gz
+83454b0db0cc8546f377d0dd59f95785fe6b73cf28e499a6182a6ece4b7bce17c3e750155262adf71f339ec0b3b6c3d3d64a07b01c8428b4b91de97ae768f0e6 libfido2-1.14.0.tar.gz
"
diff --git a/main/libfontenc/APKBUILD b/main/libfontenc/APKBUILD
index ad6b2ba4eb9..0024b51e7b0 100644
--- a/main/libfontenc/APKBUILD
+++ b/main/libfontenc/APKBUILD
@@ -1,19 +1,17 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libfontenc
-pkgver=1.1.4
-pkgrel=0
+pkgver=1.1.7
+pkgrel=5
pkgdesc="X11 font encoding library"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="all"
license="MIT"
options="!check" # No test suite.
-depends=
makedepends="util-macros xorgproto zlib-dev"
subpackages="$pkgname-dev"
-source="https://www.x.org/releases/individual/lib/$pkgname-$pkgver.tar.bz2"
+source="https://www.x.org/releases/individual/lib/libfontenc-$pkgver.tar.xz"
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -26,8 +24,9 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
-sha512sums="76fa851d00113241f15fdd5b5bb7e927b8d8b9a82ce3fcb0678b8c7e32cb5e8d898c4bda1d60dafb7748145049d3240627ac34a2360c64e98a7a912ea7c30582 libfontenc-1.1.4.tar.bz2"
+sha512sums="
+fd8578a81090fa938dd75ad9081ab62c6c54fa2535d1c6291afd799ac8dc7c344a43f07cea5cd4433af16df0d926c22e7c169877bc8b13d92584e7dec173d701 libfontenc-1.1.7.tar.xz
+"
diff --git a/main/libgcrypt/APKBUILD b/main/libgcrypt/APKBUILD
index fae24941637..bf0410a0c7f 100644
--- a/main/libgcrypt/APKBUILD
+++ b/main/libgcrypt/APKBUILD
@@ -1,11 +1,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libgcrypt
-pkgver=1.10.1
+pkgver=1.10.3
pkgrel=0
pkgdesc="General purpose crypto library based on the code used in GnuPG"
url="https://www.gnupg.org/"
arch="all"
-license="LGPL-2.1-or-later"
+license="LGPL-2.1-or-later AND GPL-2.0-or-later"
makedepends="libgpg-error-dev texinfo"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
source="https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-$pkgver.tar.bz2"
@@ -20,6 +20,11 @@ source="https://www.gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-$pkgver.tar.bz2"
# 1.8.3-r0:
# - CVE-2018-0495
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
./configure \
--build=$CBUILD \
@@ -48,5 +53,5 @@ dev() {
}
sha512sums="
-e5ca7966624fff16c3013795836a2c4377f0193dbb4ac5ad2b79654b1fa8992e17d83816569a402212dc8367a7980d4141f5d6ac282bae6b9f02186365b61f13 libgcrypt-1.10.1.tar.bz2
+8a8d4c61a6622d8481ceb9edc88ec43f58da32e316f79f8d4775325a48f8936aaa9eb355923b39e2c267b784e9c390600daeb62e0c94f00e30bbadb0d8c0865d libgcrypt-1.10.3.tar.bz2
"
diff --git a/main/libgpg-error/APKBUILD b/main/libgpg-error/APKBUILD
index 21287594f14..a16244e3612 100644
--- a/main/libgpg-error/APKBUILD
+++ b/main/libgpg-error/APKBUILD
@@ -1,24 +1,16 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
# Contributor: Arto Kitula <arto.kitula@gmail.com>
-
pkgname=libgpg-error
-pkgver=1.45
+pkgver=1.48
pkgrel=0
pkgdesc="Support library for libgcrypt"
url="https://www.gnupg.org/"
arch="all"
-license="GPL-2.0-or-later LGPL-2.1-or-later"
+license="GPL-2.0-or-later AND LGPL-2.1-or-later"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-lisp:lisp:noarch"
-makedepends="automake autoconf"
source="https://gnupg.org/ftp/gcrypt/libgpg-error/libgpg-error-$pkgver.tar.bz2"
-prepare() {
- default_prepare
- aclocal
- automake
-}
-
build() {
./configure \
--build=$CBUILD \
@@ -27,6 +19,7 @@ build() {
--sysconfdir=/etc \
--mandir=/usr/share/man \
--localstatedir=/var \
+ --enable-install-gpg-error-config \
--enable-static \
--disable-nls
make
@@ -58,5 +51,5 @@ static() {
}
sha512sums="
-882f2dd617e89137d7a9d61b60488dac32321dd4fdb699e9687b6bd9380c056c027da502837f4482289c0fe00e7de01210e804428f05a0843ae2ca23fdcc6457 libgpg-error-1.45.tar.bz2
+3e9ea99cfb7d706791eb3349a9356b6bc44a53ef8bfa9a4e89afb5203dad5af3f466a039a1764361c0c7f697a6fa668a21d05ceaeb8e44ec5a11d6468998adf2 libgpg-error-1.48.tar.bz2
"
diff --git a/main/libical/APKBUILD b/main/libical/APKBUILD
index 157c2d2807e..10f2c9202aa 100644
--- a/main/libical/APKBUILD
+++ b/main/libical/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libical
-pkgver=3.0.14
-pkgrel=1
+pkgver=3.0.18
+pkgrel=0
pkgdesc="Reference implementation of the iCalendar format"
url="https://libical.github.io/libical/"
arch="all"
@@ -35,5 +35,5 @@ package() {
}
sha512sums="
-36da5516672976c71b049a12af36164d91f9b655f81f1884766558149f25e80c30e64d15da848842f8a629295d708f39ce6fa63a3b0da39b5cbeb91911a4e6d8 libical-3.0.14.tar.gz
+53ecf6c14a68d569dd11bfdeb1a072def847a14d189c6af16eab202e004350ee7d9488c6b63e9cb67889e8c2dec90643fef46aec143a915f28270d0752eaa9d5 libical-3.0.18.tar.gz
"
diff --git a/main/libice/APKBUILD b/main/libice/APKBUILD
index f0423a57c5b..af947c6facb 100644
--- a/main/libice/APKBUILD
+++ b/main/libice/APKBUILD
@@ -1,26 +1,26 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libice
-pkgver=1.0.10
-pkgrel=0
+pkgver=1.1.1
+pkgrel=6
pkgdesc="X11 Inter-Client Exchange library"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="all"
license="X11"
-makedepends="xorgproto xtrans util-macros xmlto check-dev
- autoconf automake libtool"
+makedepends="
+ check-dev
+ util-macros
+ xmlto
+ xorgproto
+ xtrans
+ "
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
-source="https://www.x.org/releases/individual/lib/libICE-$pkgver.tar.bz2"
+source="https://www.x.org/releases/individual/lib/libICE-$pkgver.tar.xz"
builddir="$srcdir/libICE-$pkgver"
# secfixes:
# 1.0.10-r0:
# - CVE-2017-2626
-prepare() {
- default_prepare
- autoreconf -fi
-}
-
build() {
./configure \
--build=$CBUILD \
@@ -41,4 +41,7 @@ check() {
package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="2f1ef2c32c833c71894a08fa7e7ed53f301f6c7bd22485d71c12884d8e8b36b99f362ec886349dcc84d08edc81c8b2cea035320831d64974edeba021b433c468 libICE-1.0.10.tar.bz2"
+
+sha512sums="
+2f7833a25f31cc743ca95cb88f9a8403b50e19ffb5bf43bfef87ba405857d359789daaa9ec2391351237d958f16d35dbf082adb76d301e46d3a54162a6b452d3 libICE-1.1.1.tar.xz
+"
diff --git a/main/libid3tag/APKBUILD b/main/libid3tag/APKBUILD
index 489b5a21e9d..6d05da73639 100644
--- a/main/libid3tag/APKBUILD
+++ b/main/libid3tag/APKBUILD
@@ -1,54 +1,36 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=libid3tag
-pkgver=0.16.1
-pkgrel=0
+pkgver=0.16.2
+pkgrel=2
pkgdesc="MAD ID3 tagger for MP3 audio files"
-url="https://www.underbit.com/products/mad/"
+url="https://codeberg.org/tenacityteam/libid3tag"
arch="all"
license="GPL-2.0-or-later"
options="!check" # no tests
makedepends="cmake samurai zlib-dev"
subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/tenacityteam/libid3tag/archive/refs/tags/$pkgver.tar.gz"
+source="$pkgname-$pkgver-1.tar.gz::https://codeberg.org/tenacityteam/libid3tag/archive/$pkgver.tar.gz"
+builddir="$srcdir/$pkgname"
# secfixes:
-# 0.16.1-r0:
+# 0.16.2-r0:
# - CVE-2017-11550
+# 0.16.1-r0:
# - CVE-2017-11551
build() {
cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=MinSizeRel \
- -DENABLE_TESTS=YES \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib
cmake --build build
}
-check() {
- cd build
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest
-}
-
package() {
DESTDIR="$pkgdir" cmake --install build
- mkdir -p "$pkgdir"/usr/lib/pkgconfig
- cat > "$pkgdir"/usr/lib/pkgconfig/id3tag.pc <<- EOF
- prefix=/usr
- exec_prefix=/usr/bin
- libdir=/usr/lib
- includedir=/usr/include
-
- Name: id3tag
- Description: ID3 tag manipulation library
- Requires:
- Version: $pkgver
- Libs: -lid3tag
- Cflags:
- EOF
}
sha512sums="
-621cbdf7a0ea5cdca6a9133c88fb07ff0c519ed73bc26a535de3928f4784b912bb44315b45362600d53cd03083b66f38d674d1880ca30e5f6c342321977a6eb2 libid3tag-0.16.1.tar.gz
+b093614599ddc4d90072f355659a6d4d7d9fb6fe99509f62273db27291c02fb6cba280bb7ee954e014f4e5cffecc4e7f0258ebd15fcd18bf4e8abf8a02267c4c libid3tag-0.16.2-1.tar.gz
"
diff --git a/main/libid3tag/CVE-2008-2109.patch b/main/libid3tag/CVE-2008-2109.patch
deleted file mode 100644
index 6226d14af7a..00000000000
--- a/main/libid3tag/CVE-2008-2109.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/field.c.orig 2008-05-05 09:49:15.000000000 -0400
-+++ b/field.c 2008-05-05 09:49:25.000000000 -0400
-@@ -291,7 +291,7 @@
-
- end = *ptr + length;
-
-- while (end - *ptr > 0) {
-+ while (end - *ptr > 0 && **ptr != '\0') {
- ucs4 = id3_parse_string(ptr, end - *ptr, *encoding, 0);
- if (ucs4 == 0)
- goto fail;
diff --git a/main/libidn/APKBUILD b/main/libidn/APKBUILD
index f54ef988ecd..efd2dfaf9e8 100644
--- a/main/libidn/APKBUILD
+++ b/main/libidn/APKBUILD
@@ -1,15 +1,18 @@
# Contributor: Michael Mason <ms13sp@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libidn
-pkgver=1.38
+pkgver=1.42
pkgrel=0
pkgdesc="Encode/Decode library for internationalized domain names"
url="https://www.gnu.org/software/libidn"
arch="all"
-license="GPL-2.0-or-later GPL-3.0-or-later LGPL-3.0-or-later"
+license="LGPL-2.1-or-later"
+makedepends="help2man texinfo"
checkdepends="diffutils"
subpackages="$pkgname-dev $pkgname-doc"
-source="https://ftp.gnu.org/gnu/libidn/libidn-$pkgver.tar.gz"
+source="https://ftp.gnu.org/gnu/libidn/libidn-$pkgver.tar.gz
+ format-security.patch
+ "
# secfixes:
# 1.33-r0:
@@ -42,5 +45,6 @@ package() {
}
sha512sums="
-5e59b2263fde44d1463b47b516347b17a4e3e3696ebba66ab5fe464d567e2ec81f769fa7cf72ed51cfb501e32221813bb375373713a47e2f599fc6122850e419 libidn-1.38.tar.gz
+1a99f0c9aa12cebed2de7db603c203696544cfe093afd7b233b0955f4fbe65440bf637089a624ed74e204abe854b1d16d11b77dc1b8d56c97ba6b20715aeb0d7 libidn-1.42.tar.gz
+bc4fc4348ff87615d40cc535b35de6edfe4379720313df1de8d0041609307dec51b1d283da29b562f7d5ab8fd1934ad094ea5df8044341ad206009739e7751c9 format-security.patch
"
diff --git a/main/libidn/format-security.patch b/main/libidn/format-security.patch
new file mode 100644
index 00000000000..1ebf736e1c9
--- /dev/null
+++ b/main/libidn/format-security.patch
@@ -0,0 +1,129 @@
+diff --git a/src/idn.c b/src/idn.c
+index 9e1e766..ea89ecb 100644
+--- a/src/idn.c
++++ b/src/idn.c
+@@ -170,7 +170,7 @@ main (int argc, char *argv[])
+ (args_info.nfkc_given ? 1 : 0) != 1)
+ {
+ error (0, 0,
+- _("only one of -s, -e, -d, -a, -u or -n can be specified"));
++ "%s", _("only one of -s, -e, -d, -a, -u or -n can be specified"));
+ usage (EXIT_FAILURE);
+ }
+
+@@ -183,7 +183,7 @@ main (int argc, char *argv[])
+
+ if (!args_info.quiet_given
+ && args_info.inputs_num == 0 && isatty (fileno (stdin)))
+- fprintf (stderr, _("Type each input string on a line by itself, "
++ fprintf (stderr, "%s", _("Type each input string on a line by itself, "
+ "terminated by a newline character.\n"));
+
+ do
+@@ -195,7 +195,7 @@ main (int argc, char *argv[])
+ if (feof (stdin))
+ break;
+
+- error (EXIT_FAILURE, errno, _("input error"));
++ error (EXIT_FAILURE, errno, "%s", _("input error"));
+ }
+
+ if (strlen (line) > 0)
+@@ -213,7 +213,7 @@ main (int argc, char *argv[])
+ if (!q)
+ {
+ free (p);
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UTF-8 to UCS-4"));
+ }
+
+@@ -238,7 +238,7 @@ main (int argc, char *argv[])
+ if (!q)
+ {
+ free (r);
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UTF-8 to UCS-4"));
+ }
+
+@@ -275,7 +275,7 @@ main (int argc, char *argv[])
+ q = stringprep_utf8_to_ucs4 (p, -1, &len);
+ free (p);
+ if (!q)
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UTF-8 to UCS-4"));
+
+ if (args_info.debug_given)
+@@ -334,7 +334,7 @@ main (int argc, char *argv[])
+ r = stringprep_ucs4_to_utf8 (q, -1, NULL, NULL);
+ free (q);
+ if (!r)
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UCS-4 to UTF-8"));
+
+ p = stringprep_utf8_to_locale (r);
+@@ -358,14 +358,14 @@ main (int argc, char *argv[])
+ q = stringprep_utf8_to_ucs4 (p, -1, NULL);
+ free (p);
+ if (!q)
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UCS-4 to UTF-8"));
+
+ if (args_info.debug_given)
+ {
+ size_t i;
+ for (i = 0; q[i]; i++)
+- fprintf (stderr, "input[%lu] = U+%04x\n",
++ fprintf (stderr, "%s", "input[%lu] = U+%04x\n",
+ (unsigned long) i, q[i]);
+ }
+
+@@ -436,7 +436,7 @@ main (int argc, char *argv[])
+ if (!q)
+ {
+ free (p);
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UCS-4 to UTF-8"));
+ }
+
+@@ -492,7 +492,7 @@ main (int argc, char *argv[])
+ r = stringprep_ucs4_to_utf8 (q, -1, NULL, NULL);
+ free (q);
+ if (!r)
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UTF-8 to UCS-4"));
+
+ p = stringprep_utf8_to_locale (r);
+@@ -521,7 +521,7 @@ main (int argc, char *argv[])
+ if (!q)
+ {
+ free (p);
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UTF-8 to UCS-4"));
+ }
+
+@@ -535,7 +535,7 @@ main (int argc, char *argv[])
+ r = stringprep_utf8_nfkc_normalize (p, -1);
+ free (p);
+ if (!r)
+- error (EXIT_FAILURE, 0, _("could not do NFKC normalization"));
++ error (EXIT_FAILURE, 0, "%s", _("could not do NFKC normalization"));
+
+ if (args_info.debug_given)
+ {
+@@ -545,7 +545,7 @@ main (int argc, char *argv[])
+ if (!q)
+ {
+ free (r);
+- error (EXIT_FAILURE, 0,
++ error (EXIT_FAILURE, 0, "%s",
+ _("could not convert from UTF-8 to UCS-4"));
+ }
+
diff --git a/main/libidn2/APKBUILD b/main/libidn2/APKBUILD
index 9c5d0778dfc..afb526cbae9 100644
--- a/main/libidn2/APKBUILD
+++ b/main/libidn2/APKBUILD
@@ -1,11 +1,11 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libidn2
-pkgver=2.3.2
-pkgrel=2
+pkgver=2.3.7
+pkgrel=0
pkgdesc="Encode/Decode library for internationalized domain names"
url="https://www.gnu.org/software/libidn#libidn2"
arch="all"
-license="GPL-2.0-or-later AND LGPL-3.0-or-later"
+license="GPL-2.0-or-later OR LGPL-3.0-or-later"
makedepends="libunistring-dev"
checkdepends="diffutils"
subpackages="${pkgname#lib}-utils:utils $pkgname-static $pkgname-dev $pkgname-doc"
@@ -48,5 +48,5 @@ utils() {
}
sha512sums="
-958dbf49a47a84c7627ac182f4cc8ea452696cec3f0d1ff102a6c48e89893e772b2aa81f75da8223dfc6326515cca3ae085268fbf997828de9330c3a351152f1 libidn2-2.3.2.tar.gz
+eab5702bc0baed45492f8dde43a4d2ea3560ad80645e5f9e0cfa8d3b57bccd7fd782d04638e000ba07924a5d9f85e760095b55189188c4017b94705bef9b4a66 libidn2-2.3.7.tar.gz
"
diff --git a/main/libimagequant/APKBUILD b/main/libimagequant/APKBUILD
deleted file mode 100644
index 6f8cccc62b7..00000000000
--- a/main/libimagequant/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Contributor: TBK <alpine@jjtc.eu>
-# Maintainer: TBK <alpine@jjtc.eu>
-pkgname=libimagequant
-pkgver=2.16.0
-pkgrel=0
-pkgdesc="Small, portable C library for high-quality conversion of RGBA images to 8-bit indexed-color (palette) images."
-url="https://pngquant.org/lib/"
-arch="all"
-license="GPL-3.0-or-later"
-options="!check" # No test suite
-makedepends="bash"
-subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/ImageOptim/libimagequant/archive/$pkgver.tar.gz
- "
-
-build() {
- local _conf
- case $CARCH in
- riscv64) _conf=--disable-sse ;;
- esac
-
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- $_conf
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- rm -f "$pkgdir"/usr/lib/*.a
-}
-
-sha512sums="
-aada80a77ba57da6db0c713f2001582a233d8418630eeceb6253bc4ea58ab631fcf38d3e41a2ff3595fd258c12a81bee83c6fe985cbd309fa8ddc286b9bd4d65 libimagequant-2.16.0.tar.gz
-"
diff --git a/main/libisoburn/APKBUILD b/main/libisoburn/APKBUILD
index b6aca475d17..df6e625f3c2 100644
--- a/main/libisoburn/APKBUILD
+++ b/main/libisoburn/APKBUILD
@@ -1,13 +1,18 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libisoburn
-pkgver=1.5.4
-pkgrel=2
+pkgver=1.5.6
+pkgrel=0
pkgdesc="Library to enable creation and expansion of ISO-9660 filesystems"
url="https://dev.lovelyhq.com/libburnia/libisoburn"
arch="all"
license="GPL-2.0-or-later"
-makedepends="libburn-dev libisofs-dev acl-dev zlib-dev
- libedit-dev"
+makedepends="
+ acl-dev
+ libburn-dev
+ libedit-dev
+ libisofs-dev
+ zlib-dev
+ "
subpackages="$pkgname-dev $pkgname-doc xorriso:_xorriso"
source="https://files.libburnia-project.org/releases/libisoburn-$pkgver.tar.gz"
@@ -17,6 +22,7 @@ prepare() {
}
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -41,10 +47,9 @@ package() {
_xorriso() {
pkgdesc="ISO-9660 and Rock Ridge image manipulation tool"
replaces="cdrkit"
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+ amove usr/bin
}
sha512sums="
-5fc8532a13caf6caa5a0711753ca99ee2b3f4d5e2db9b3ed2aeef76714e3ae6de6d9c2db0d8297c0d749c42c5ab84fe92989751d8da24d41457b98656eb1bd86 libisoburn-1.5.4.tar.gz
+0fc0058aa4cf755f30d5be0de808012978c657348412c7f129b8f8128da41f18216f3e039050a5851b557ffab344cf7dc44df374400ca008e34e2e2524fbd979 libisoburn-1.5.6.tar.gz
"
diff --git a/main/libisofs/APKBUILD b/main/libisofs/APKBUILD
index 89fc759cfab..bdca65435ab 100644
--- a/main/libisofs/APKBUILD
+++ b/main/libisofs/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libisofs
-pkgver=1.5.4
-pkgrel=2
+pkgver=1.5.6
+pkgrel=0
pkgdesc="Library to pack up hard disk files and directories into a ISO 9660 disk image"
url="https://dev.lovelyhq.com/libburnia/libisofs"
arch="all"
@@ -16,6 +16,7 @@ prepare() {
}
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -35,5 +36,5 @@ package() {
}
sha512sums="
-a06e834e81081358478cdd27d1dcc6f3bb52ffd2ea57ade59f3ff2f69868fb6886a0b38fd1580d24295b7ed936ac471f107df64d62c1ff42b57dd8ce0810e3f2 libisofs-1.5.4.tar.gz
+a5f573bbe9758e072fad195cc9beb672568273ddb993ece9c15585ad3f99efb0deae6fefb6d3d40b9712e73e3bc68869d79d923b2a09623d190f5dc84974d65f libisofs-1.5.6.tar.gz
"
diff --git a/main/libjpeg-turbo/APKBUILD b/main/libjpeg-turbo/APKBUILD
index dcde1251503..7eb09c36324 100644
--- a/main/libjpeg-turbo/APKBUILD
+++ b/main/libjpeg-turbo/APKBUILD
@@ -1,20 +1,24 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libjpeg-turbo
-pkgver=2.1.3
-pkgrel=1
+pkgver=3.0.2
+pkgrel=0
pkgdesc="Accelerated baseline JPEG compression and decompression library"
url="https://libjpeg-turbo.org/"
arch="all"
-license="BSD-3-Clause IJG Zlib"
+license="BSD-3-Clause AND IJG AND Zlib"
makedepends="cmake nasm samurai"
replaces="libjpeg"
-subpackages="$pkgname-static $pkgname-doc $pkgname-dev $pkgname-utils"
-source="https://downloads.sourceforge.net/libjpeg-turbo/libjpeg-turbo-$pkgver.tar.gz"
+subpackages="$pkgname-static $pkgname-doc $pkgname-dev libturbojpeg $pkgname-utils"
+source="https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/$pkgver/libjpeg-turbo-$pkgver.tar.gz"
# secfixes:
+# 2.1.5.1-r4:
+# - CVE-2023-2804
# 2.1.0-r0:
# - CVE-2021-20205
+# 2.0.6-r0:
+# - CVE-2020-35538
# 2.0.4-r2:
# - CVE-2020-13790
# 2.0.4-r0:
@@ -27,7 +31,6 @@ source="https://downloads.sourceforge.net/libjpeg-turbo/libjpeg-turbo-$pkgver.ta
# 1.5.3-r2:
# - CVE-2018-1152
-
build() {
local _floattest=
if [ "$CBUILD" != "$CHOST" ]; then
@@ -37,25 +40,43 @@ build() {
ppc64le) export JSIMD_FORCENONE=1;;
s390x|riscv64) _floattest="-DFLOATTEST=fp-contract";;
esac
- cmake -B build -G Ninja \
+
+ CFLAGS="$CFLAGS -O2 -DNDEBUG -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -O2 -DNDEBUG -flto=auto" \
+ cmake -B build-shared -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=/usr/lib \
-DBUILD_SHARED_LIBS=True \
- -DCMAKE_BUILD_TYPE=MinSizeRel \
- -DCMAKE_C_FLAGS="$CFLAGS" \
+ -DENABLE_STATIC=False \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_SKIP_INSTALL_RPATH=ON \
-DWITH_JPEG8=1 \
$_floattest \
$CMAKE_CROSSOPTS
- cmake --build build
+ cmake --build build-shared
+
+ cmake -B build-static -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=/usr/lib \
+ -DBUILD_SHARED_LIBS=False \
+ -DENABLE_STATIC=True \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_SKIP_INSTALL_RPATH=ON \
+ -DWITH_JPEG8=1 \
+ $_floattest \
+ $CMAKE_CROSSOPTS
+ cmake --build build-static
}
check() {
- cd build
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+ cd build-shared
+ # random checksum failures
+ ctest --output-on-failure -E '(djpeg-shared-3x2-float-prog-cmp|example-12bit-shared-decompress-cmp)'
}
package() {
- DESTDIR="$pkgdir" cmake --build build --target install
+ DESTDIR="$pkgdir" cmake --install build-static
+ DESTDIR="$pkgdir" cmake --install build-shared
install -d "$pkgdir"/usr/share/licenses/$pkgname
ln -s ../../doc/libjpeg-turbo/LICENSE.md "$pkgdir/usr/share/licenses/$pkgname"
}
@@ -63,8 +84,12 @@ package() {
utils() {
pkgdesc="Utilities for manipulating JPEG images"
replaces="jpeg"
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+
+ amove usr/bin
+}
+
+libturbojpeg() {
+ amove usr/lib/libturbojpeg.so.*
}
doc() {
@@ -78,5 +103,5 @@ dev() {
}
sha512sums="
-975c9835de7d70c6c8c5a1959adfa18f7f956bc9946fde8f1b40c1d853245c38a3118ac06b93841ec3e90be6945c38d687d062b371496c2ee9b5638d7f60418d libjpeg-turbo-2.1.3.tar.gz
+f5eadda0712feb810a8c3bb2621fda24a4c30574998ce30f423b3ffa25225c7a87cb14b696232bc0270485f422a2853a5c32eafb65bc5eeab1b41d8aeb32ad29 libjpeg-turbo-3.0.2.tar.gz
"
diff --git a/main/libkcapi/APKBUILD b/main/libkcapi/APKBUILD
new file mode 100644
index 00000000000..643441e6902
--- /dev/null
+++ b/main/libkcapi/APKBUILD
@@ -0,0 +1,88 @@
+# Maintainer:
+pkgname=libkcapi
+pkgver=1.4.0
+pkgrel=4
+pkgdesc="Linux Kernel Crypto API User Space Interface Library"
+url="https://www.chronox.de/libkcapi.html"
+arch="all"
+license="BSD-3-Clause OR GPL-2.0-only"
+makedepends="
+ autoconf
+ automake
+ libtool
+ linux-headers
+ "
+checkdepends="bash openssl"
+subpackages="$pkgname-dev $pkgname-tools $pkgname-doc"
+# upstream returns 404
+#source="https://www.chronox.de/libkcapi/libkcapi-$pkgver.tar.xz
+source="https://dev.alpinelinux.org/archive/libkcapi/libkcapi-$pkgver.tar.xz
+ no-werror.patch
+ "
+# requires AF_ALG support and enablement of ktls on running kernel
+options="!check"
+
+prepare() {
+ default_prepare
+
+ autoreconf -fvi
+}
+
+build() {
+ CFLAGS="$CFLAGS -flto=auto" \
+ ./configure \
+ --prefix=/usr \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --enable-kcapi-hasher \
+ --enable-kcapi-speed \
+ --enable-kcapi-rngapp \
+ --enable-kcapi-encapp \
+ --enable-kcapi-dgstapp \
+ --enable-kcapi-test \
+ --disable-static
+ make
+}
+
+check() {
+ local tests="
+ hasher-test.sh
+ kcapi-convenience.sh
+ kcapi-dgst-test.sh
+ kcapi-enc-test-large.sh
+ kcapi-enc-test.sh
+ kcapi-fuzz-test.sh
+ "
+ for test in $tests; do
+ msg "testing $test"
+ ./test/$test
+ done
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+ rm "$pkgdir"/usr/lib/.[!.]*
+ rm "$pkgdir"/usr/bin/.[!.]*
+ rm "$pkgdir"/usr/bin/fips*
+ rm -r "$pkgdir"/usr/libexec/
+
+ cd "$pkgdir"/usr/bin
+
+ # rename generic utils to not conflict with generic names. the options
+ # aren't guaranteed to be compatible
+ for tool in sha* md5* sm3*; do
+ mv $tool kcapi-$tool
+ done
+}
+
+tools() {
+ pkgdesc="$pkgdesc (commandline utilities)"
+
+ amove usr/bin
+}
+
+sha512sums="
+fa3df1fe22eba32585de5df044f907d3ad189c33f5704fe29b0fdeda92e772ef077055b80e17bc1646a8cdedaf4f195aadf0b133f493597f0f7657b04ea93a99 libkcapi-1.4.0.tar.xz
+a5b38f49a7bb07eb57523566e065bad702999d8be21fa6cd8a01af1b60e9bd8fbb6fd9cf71f70dca7d616aa381475273d995841b8580f91418fb0094263e6402 no-werror.patch
+"
diff --git a/main/libkcapi/no-werror.patch b/main/libkcapi/no-werror.patch
new file mode 100644
index 00000000000..d2a0677e02b
--- /dev/null
+++ b/main/libkcapi/no-werror.patch
@@ -0,0 +1,13 @@
+diff --git a/Makefile.am b/Makefile.am
+index fa7ba4d..5d9e45b 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -2,7 +2,7 @@ ACLOCAL_AMFLAGS = -I m4
+ AUTOMAKE_OPTIONS = subdir-objects
+ lib_LTLIBRARIES = libkcapi.la
+
+-COMMON_CPPFLAGS = -Wextra -Wall -pedantic -fwrapv --param ssp-buffer-size=4 -O2 -Werror -std=gnu99 -Wconversion
++COMMON_CPPFLAGS = -Wextra -Wall -pedantic -fwrapv --param ssp-buffer-size=4 -O2 -std=gnu99 -Wconversion
+ COMMON_LDFLAGS = -Wl,-z,relro,-z,now
+
+ libtool: $(LIBTOOL_DEPS)
diff --git a/main/libks/APKBUILD b/main/libks/APKBUILD
index a11746b7686..32cda3f25a6 100644
--- a/main/libks/APKBUILD
+++ b/main/libks/APKBUILD
@@ -1,34 +1,33 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=libks
-pkgver=1.7.0
-pkgrel=2
+pkgver=1.8.2
+pkgrel=1
pkgdesc="Foundational support for signalwire C products"
url="https://github.com/signalwire/libks"
arch="all"
license="MIT"
-makedepends="cmake util-linux-dev openssl-dev"
+makedepends="cmake samurai util-linux-dev openssl-dev>3"
subpackages="$pkgname-dev $pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/signalwire/libks/archive/refs/tags/v$pkgver.tar.gz
disable-failing-tests.patch"
build() {
- cmake \
+ cmake -B . -G Ninja \
-DCMAKE_BUILD_TYPE=MinSizeRel \
- -DCMAKE_INSTALL_PREFIX=/usr \
- .
- make
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build .
}
check() {
- ctest
+ ctest --test-dir . --output-on-failure
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install .
}
sha512sums="
-d5e1244f1c42b22684cb342d6007dd6ed84f39466631d1fb198e4d57e374a8014a957bae74f2ea62cfdc8824564f21c417e984101640d938fc12471f4ffcc2cc libks-1.7.0.tar.gz
+5c976803ce649e0690c5b4c14e16e2f08e21cbce67d21fcaaf1f3edbc83c110ad68eb1798b1f5601bd3245992fe471eee1e584d7232c8727957e6804e899b923 libks-1.8.2.tar.gz
2b9dcde2423531ce9677780c8bd1781450ace473fb9e176fd7449deeef51dc323af9825011f856e3494a7efaf688aff802b7c58105d65e3d21c22bfc71cffbaa disable-failing-tests.patch
"
diff --git a/main/libksba/APKBUILD b/main/libksba/APKBUILD
index f4ab9daa793..4025172095d 100644
--- a/main/libksba/APKBUILD
+++ b/main/libksba/APKBUILD
@@ -1,16 +1,21 @@
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libksba
-pkgver=1.6.0
+pkgver=1.6.6
pkgrel=0
pkgdesc="Libksba is a CMS and X.509 access library"
url="https://www.gnupg.org/software/libksba/index.html"
arch="all"
-license="GPL-2.0-or-later or GPL-3.0-or-later"
+license="LGPL-3.0-only AND GPL-2.0-only AND GPL-3.0-only"
makedepends="libgpg-error-dev"
subpackages="$pkgname-dev $pkgname-doc"
source="https://www.gnupg.org/ftp/gcrypt/libksba/libksba-$pkgver.tar.bz2"
+# secfixes:
+# 1.6.3-r0:
+# - CVE-2022-47629
+# 1.6.2-r0:
+# - CVE-2022-3515
build() {
./configure \
@@ -29,5 +34,5 @@ package() {
}
sha512sums="
-a7c76d41dfd8ec6383ac2de3c53848cd9f066b538f6f3cd43175e3c8095df51b96d0a24a573481c0c4856b09b7c224e2b562d88f5c0801e7acfb582ea2739c2b libksba-1.6.0.tar.bz2
+3b30bef9452ae0c52b4a52e9145fbd6dc57cf7a2b59302e3af063db6b45384e8ed7af62604efd7939b9e0cb5931e946b15609888e9699fafe4acbb0cbf138087 libksba-1.6.6.tar.bz2
"
diff --git a/main/liblockfile/APKBUILD b/main/liblockfile/APKBUILD
index b7946c93624..1aa101bbad6 100644
--- a/main/liblockfile/APKBUILD
+++ b/main/liblockfile/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=liblockfile
pkgver=1.17
-pkgrel=0
+pkgrel=4
pkgdesc="Shared library with NFS-safe locking functions"
url="https://github.com/miquels/liblockfile"
arch="all"
-license="LGPL-2.0-or-later and GPL-2.0-or-later"
+license="LGPL-2.0-or-later AND GPL-2.0-or-later"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/miquels/liblockfile/archive/v$pkgver.tar.gz"
diff --git a/main/liblogging/APKBUILD b/main/liblogging/APKBUILD
index bd42f7083f0..7d531668cdf 100644
--- a/main/liblogging/APKBUILD
+++ b/main/liblogging/APKBUILD
@@ -1,19 +1,22 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer:
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
pkgname=liblogging
pkgver=1.0.6
-pkgrel=1
+pkgrel=4
pkgdesc="An easy to use logging library"
url="http://www.liblogging.org/"
arch="all"
license="BSD-2-Clause"
-depends=""
subpackages="$pkgname-dev $pkgname-doc"
-source="http://download.rsyslog.com/$pkgname/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$pkgname-$pkgver
+source="http://download.rsyslog.com/liblogging/liblogging-$pkgver.tar.gz"
+options="!check"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -23,14 +26,12 @@ build() {
--infodir=/usr/share/info \
--localstatedir=/var \
--disable-journal \
- --enable-stdlog \
- || return 1
- make || return 1
+ --enable-stdlog
+ make
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
}
sha512sums="09c90a93b2d32afa44be5a800705a64690810a56d21bed1455cb70680b01fecd4efef3881a43f98ebcafa996b6046ed8e5af935eacc12014f330a7fd23674964 liblogging-1.0.6.tar.gz"
diff --git a/main/liblognorm/APKBUILD b/main/liblognorm/APKBUILD
index 64415ddb7bc..54c6d9e758f 100644
--- a/main/liblognorm/APKBUILD
+++ b/main/liblognorm/APKBUILD
@@ -2,21 +2,25 @@
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=liblognorm
pkgver=2.0.6
-pkgrel=2
+pkgrel=5
pkgdesc="A fast log-normalization library"
url="https://www.liblognorm.com/"
arch="all"
-license="LGPL-2.1-or-later Apache-2.0"
+license="LGPL-2.1-or-later AND Apache-2.0"
depends_dev="libestr-dev"
checkdepends="bash"
makedepends="$depends_dev libfastjson-dev"
subpackages="$pkgname-dev"
-source="http://www.liblognorm.com/files/download/$pkgname-$pkgver.tar.gz
+source="http://www.liblognorm.com/files/download/liblognorm-$pkgver.tar.gz
parse-name-value-quoting-support.patch
"
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -27,12 +31,10 @@ build() {
}
check() {
- cd "$builddir"
make -j1 check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
diff --git a/main/libmaxminddb/APKBUILD b/main/libmaxminddb/APKBUILD
index 171a4196956..c1d4c82d9c3 100644
--- a/main/libmaxminddb/APKBUILD
+++ b/main/libmaxminddb/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=libmaxminddb
-pkgver=1.6.0
-pkgrel=1
+pkgver=1.9.1
+pkgrel=0
pkgdesc="Maxmind GeoIP2 database library"
url="https://github.com/maxmind/libmaxminddb"
arch="all"
@@ -9,6 +9,7 @@ license="Apache-2.0"
depends="curl"
checkdepends="perl"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-libs"
+install="libmaxminddb.post-upgrade"
source="https://github.com/maxmind/libmaxminddb/releases/download/$pkgver/libmaxminddb-$pkgver.tar.gz
libmaxminddb.cron
libmaxminddb.confd
@@ -43,7 +44,7 @@ package() {
}
sha512sums="
-9394e8dd959982d4ef5d15a928d32700722ed9d6c9988d9cc1bf2f4e67de0a53cc6987e90aaef3a6926c9ff36ac378f7a1fe47818fda4f5a3a22539210b2d004 libmaxminddb-1.6.0.tar.gz
-7eb66e563b156c176a2b23c73c60c55c52f20f94393a82cbdedd8f2ddb136a029bad8a4df0ca2c0f2bb923af170ae56cdd19dbb4e09c3affc23be6f79dd23f80 libmaxminddb.cron
-03bdfd6d1d508ea5261a396ac9539f363dcb477b9cf11fd4c9b01001e03205fa667cde21295dc0cc3d38db50adebb9c57e147a22fc7945de7c72d75d10637128 libmaxminddb.confd
+6da76bb584c5f8a0c01eb9439afd7c4b18b765966591c15e9aaf6ce7edfd3c429cff87a3e7481eff1d3e75df6eb7fd484752946417747c193dbfb277a843810c libmaxminddb-1.9.1.tar.gz
+ca1d60847b20a477e91e14ae27d6bbe5d34ddc328e39387eaf9376c72e7f3b4418a932e007fc5b018f0f40e28761dca2a0e9c78f6cf423049f959a075fcaa34f libmaxminddb.cron
+d7a9614d7420c2ffff9f789d5086002a84a1e9d6dd1dc014d8f792e0e4bd47f7d4794991b786005b8d5539815b305cfc768058c8b4ed49cad542e74e095971a7 libmaxminddb.confd
"
diff --git a/main/libmaxminddb/libmaxminddb.confd b/main/libmaxminddb/libmaxminddb.confd
index 80609eefa4e..2c8e711d42c 100755..100644
--- a/main/libmaxminddb/libmaxminddb.confd
+++ b/main/libmaxminddb/libmaxminddb.confd
@@ -2,10 +2,11 @@
# MAXMINDDB_FILES="GeoLite2-City.mmdb"
# Database download directory
-# MAXMINDDB_URL="https://download.maxmind.com/app/geoip_download"
+# MAXMINDDB_URL="https://download.maxmind.com/geoip/databases"
# Local target directory
# MAXMINDDB_LIBDIR="/var/lib/libmaxminddb"
-# MaxMind license key, can be retrieved through https://www.maxmind.com/en/geolite2/signup
+# MaxMind license key and user id can be retrieved through https://www.maxmind.com/en/geolite2/signup
MAXMINDDB_LICENSE_KEY=""
+MAXMINDDB_USER_ID=""
diff --git a/main/libmaxminddb/libmaxminddb.cron b/main/libmaxminddb/libmaxminddb.cron
index ad16b470a5c..1027dc99c11 100755
--- a/main/libmaxminddb/libmaxminddb.cron
+++ b/main/libmaxminddb/libmaxminddb.cron
@@ -5,9 +5,10 @@
set -e
[ -z "$MAXMINDDB_FILES" ] && MAXMINDDB_FILES="GeoLite2-City.mmdb"
-[ -z "$MAXMINDDB_URL" ] && MAXMINDDB_URL="https://download.maxmind.com/app/geoip_download"
+[ -z "$MAXMINDDB_URL" ] && MAXMINDDB_URL="https://download.maxmind.com/geoip/databases"
[ -z "$MAXMINDDB_LIBDIR" ] && MAXMINDDB_LIBDIR="/var/lib/libmaxminddb"
[ -z "$MAXMINDDB_LICENSE_KEY" ] && { echo "No MaxMind license key found; exiting. Please enter your license key into /etc/libmaxminddb.cron.conf"; exit 1; }
+[ -z "$MAXMINDDB_USER_ID" ] && { echo "No MaxMind user id found; exiting. Please enter your user id into /etc/libmaxminddb.cron.conf"; exit 1; }
clean_up() {
[ -n "$TMPDIR" ] && rm -rf "$TMPDIR"
@@ -17,7 +18,7 @@ trap clean_up EXIT TERM INT QUIT
TMPDIR="$(mktemp -d)"
for filename in $MAXMINDDB_FILES; do
EDITION_ID=$(echo "${filename}" | sed 's/\.mmdb$//')
- curl --silent "${MAXMINDDB_URL}?edition_id=${EDITION_ID}&license_key=${MAXMINDDB_LICENSE_KEY}&suffix=tar.gz" -o "$TMPDIR/${filename}.tar.gz"
+ curl --silent -L -u "${MAXMINDDB_USER_ID}:${MAXMINDDB_LICENSE_KEY}" "${MAXMINDDB_URL}/${EDITION_ID}/download?suffix=tar.gz" -o "$TMPDIR/${filename}.tar.gz"
tar xf "$TMPDIR/${filename}.tar.gz" -C "$TMPDIR" --strip-components=1
mv "$TMPDIR/$filename" "$MAXMINDDB_LIBDIR"
done
diff --git a/main/libmaxminddb/libmaxminddb.post-upgrade b/main/libmaxminddb/libmaxminddb.post-upgrade
new file mode 100755
index 00000000000..0a150753af2
--- /dev/null
+++ b/main/libmaxminddb/libmaxminddb.post-upgrade
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+ver_old="$2"
+
+if [ "$(apk version -t "$ver_old" "1.9.1-r0")" = "<" ]; then
+ cat >&2 <<-"EOF"
+ The cron to update the geoip db now requires $MAXMINDDB_USER_ID to be
+ set in /etc/libmaxminddb.cron.conf
+ EOF
+fi
diff --git a/main/libmd/APKBUILD b/main/libmd/APKBUILD
index 1836410298e..c87bef7b14d 100644
--- a/main/libmd/APKBUILD
+++ b/main/libmd/APKBUILD
@@ -1,12 +1,12 @@
# Contributor: omni <omni+alpine@hack.org>
# Maintainer: omni <omni+alpine@hack.org>
pkgname=libmd
-pkgver=1.0.4
+pkgver=1.1.0
pkgrel=0
pkgdesc="Message Digest functions from BSD systems"
url="https://www.hadrons.org/software/libmd/"
arch="all"
-license="Public Domain"
+license="BSD-3-Clause AND BSD-2-Clause AND ISC AND Beerware AND Public Domain"
subpackages="$pkgname-dev $pkgname-doc"
source="https://archive.hadrons.org/software/libmd/libmd-$pkgver.tar.xz"
@@ -32,5 +32,5 @@ package() {
}
sha512sums="
-731553ecc5e0e1eb228cced8fccd531fe31fb5c7627ca30013d287e1aeb8222959cf7498fbb7414bbabb967b25d4e8b0edd54fc47f6ccf55fc91087db0725ce3 libmd-1.0.4.tar.xz
+5d0da3337038e474fae7377bbc646d17214e72dc848a7aadc157f49333ce7b5ac1456e45d13674bd410ea08477c6115fc4282fed6c8e6a0bf63537a418c0df96 libmd-1.1.0.tar.xz
"
diff --git a/main/libmemcached/APKBUILD b/main/libmemcached/APKBUILD
index 2755e650650..08608de729c 100644
--- a/main/libmemcached/APKBUILD
+++ b/main/libmemcached/APKBUILD
@@ -1,44 +1,47 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libmemcached
-pkgver=1.0.18
-pkgrel=4
-pkgdesc="Client library and command line tools for memcached server"
-url="https://libmemcached.org/libMemcached.html"
+pkgver=1.1.4
+pkgrel=1
+pkgdesc="Client library and command line tools for memcached server (resurrected)"
+url="https://github.com/awesomized/libmemcached"
arch="all"
license="BSD-3-Clause"
-options="!check" # tests are broken
depends_dev="cyrus-sasl-dev"
-makedepends="$depends_dev memcached-dev"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
-source="https://launchpad.net/libmemcached/${pkgver%.*}/$pkgver/+download/libmemcached-$pkgver.tar.gz
- fix-ppc64le-ptr-check.patch
- musl-fixes.patch"
-
-prepare() {
- default_prepare
- update_config_sub
-}
+makedepends="
+ $depends_dev
+ bison
+ cmake
+ flex
+ libevent-dev
+ memcached-dev
+ samurai
+ "
+subpackages="$pkgname-dev $pkgname-libs"
+source="$pkgname-$pkgver.tar.gz::https://github.com/awesomized/libmemcached/archive/refs/tags/$pkgver.tar.gz"
+options="!check" # no tests built
build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --disable-static \
- --enable-sasl \
- --enable-libmemcachedprotocol \
- --enable-memaslap
- make
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ CFLAGS="$CFLAGS -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=ON \
+ -DENABLE_SASL=ON
+ cmake --build build
}
check() {
- make check
+ # make check
+ ctest --test-dir build --output-on-failure
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
+ # just junk top-level readme/changelog files from repo
+ rm -r "$pkgdir"/usr/share/doc
}
-sha512sums="2d95fea63b8b6dc7ded42c3a88a54aad74d5a1d417af1247144dae4a88c3b639a3aabc0c2b66661ff69a7609a314efaaae236e10971af9c428a4bca0a0101585 libmemcached-1.0.18.tar.gz
-ca92a91c1cbe6497195013d101a465899b9d84243f0416a9eef6fd4cec9e7f29667763891af5fd7fbbf20094a3ddf222a2d31f322909193bd65fa0dce20c73bc fix-ppc64le-ptr-check.patch
-ff8f59d2b6d3b7d1d110ff3f1d03dbceba3a000271e69f465ffd02e77c0a092e6904b19ac4aea624a0622cec6a16ecd048f46107e011cb9011027ef71265aaf5 musl-fixes.patch"
+sha512sums="
+0a10a2431142ec6e4547f82fdd35b55c018264e5f8c39910a65252c3f53d862fb5945e7a671951915aac076767cc995740b3e499eb584017a38eb2d1e82171fb libmemcached-1.1.4.tar.gz
+"
diff --git a/main/libmemcached/fix-ppc64le-ptr-check.patch b/main/libmemcached/fix-ppc64le-ptr-check.patch
deleted file mode 100644
index 6644c8353e0..00000000000
--- a/main/libmemcached/fix-ppc64le-ptr-check.patch
+++ /dev/null
@@ -1,20 +0,0 @@
---- a/clients/memflush.cc
-+++ b/clients/memflush.cc
-@@ -39,7 +39,7 @@
- {
- options_parse(argc, argv);
-
-- if (opt_servers == false)
-+ if (opt_servers == NULL)
- {
- char *temp;
-
-@@ -48,7 +48,7 @@
- opt_servers= strdup(temp);
- }
-
-- if (opt_servers == false)
-+ if (opt_servers == NULL)
- {
- std::cerr << "No Servers provided" << std::endl;
- exit(EXIT_FAILURE);
diff --git a/main/libmemcached/musl-fixes.patch b/main/libmemcached/musl-fixes.patch
deleted file mode 100644
index eb2a6bc980e..00000000000
--- a/main/libmemcached/musl-fixes.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-diff --git a/libhashkit/fnv_64.cc b/libhashkit/fnv_64.cc
-index 68e4dd0..64656b7 100644
---- a/libhashkit/fnv_64.cc
-+++ b/libhashkit/fnv_64.cc
-@@ -37,8 +37,9 @@
-
-
- #include <libhashkit/common.h>
-+#include <limits.h>
-
--#if __WORDSIZE == 64 && defined(HAVE_FNV64_HASH)
-+#if (LONG_BITS == 64) && defined(HAVE_FNV64_HASH)
-
- /* FNV hash'es lifted from Dustin Sallings work */
- static uint64_t FNV_64_INIT= 0xcbf29ce484222325;
-diff --git a/libhashkit/has.cc b/libhashkit/has.cc
-index 843e32e..4153e5e 100644
---- a/libhashkit/has.cc
-+++ b/libhashkit/has.cc
-@@ -37,6 +37,7 @@
-
-
- #include <libhashkit/common.h>
-+#include <limits.h>
-
- bool libhashkit_has_algorithm(const hashkit_hash_algorithm_t algo)
- {
-@@ -44,7 +45,7 @@ bool libhashkit_has_algorithm(const hashkit_hash_algorithm_t algo)
- {
- case HASHKIT_HASH_FNV1_64:
- case HASHKIT_HASH_FNV1A_64:
--#if __WORDSIZE == 64 && defined(HAVE_FNV64_HASH)
-+#if (LONG_BITS == 64) && defined(HAVE_FNV64_HASH)
- return true;
- #else
- return false;
-diff --git a/libtest/cmdline.cc b/libtest/cmdline.cc
-index 29a22de..161c646 100644
---- a/libtest/cmdline.cc
-+++ b/libtest/cmdline.cc
-@@ -61,7 +61,7 @@ using namespace libtest;
- #include <algorithm>
- #include <stdexcept>
-
--#ifndef __USE_GNU
-+#ifndef _GNU_SOURCE
- static char **environ= NULL;
- #endif
-
-@@ -201,7 +201,7 @@ Application::error_t Application::run(const char *args[])
-
- fatal_assert(posix_spawnattr_setsigmask(&spawnattr, &mask) == 0);
-
--#if defined(POSIX_SPAWN_USEVFORK) || defined(__linux__)
-+#if defined(POSIX_SPAWN_USEVFORK) || defined(__GLIBC__)
- // Use USEVFORK on linux
- flags |= POSIX_SPAWN_USEVFORK;
- #endif
diff --git a/main/libmilter/APKBUILD b/main/libmilter/APKBUILD
index f17302361b8..d2bdbe98682 100644
--- a/main/libmilter/APKBUILD
+++ b/main/libmilter/APKBUILD
@@ -5,11 +5,11 @@ pkgname=libmilter
_pkgname=sendmail
# This library is part of sendmail, but it does not share the version number with it.
# In order to find the right libmilter version number, check SMFI_VERSION definition
-# that can be found in ${S}/include/libmilter/mfapi.h (see also SM_LM_VRS_* defines).
+# that can be found in include/libmilter/mfapi.h (see also SM_LM_VRS_* defines).
# For example, version 1.0.1 has a SMFI_VERSION of 0x01000001.
pkgver=1.0.2
-_pkgver=8.16.1
-pkgrel=7
+_pkgver=8.17.1
+pkgrel=9
pkgdesc="Sendmail Mail Filter API (Milter)"
url="https://www.sendmail.com/sm/open_source"
arch="all"
@@ -25,7 +25,6 @@ builddir="$srcdir/$_pkgname-$_pkgver"
prepare() {
default_prepare
- cd "$builddir"
cat >> devtools/Site/site.config.m4 <<-EOF
dnl enable ipv6
APPENDDEF(\`conf_libmilter_ENVDEF',\`-DNETINET6=1')
@@ -35,13 +34,10 @@ prepare() {
}
build() {
- cd "$builddir"
make -C libmilter MILTER_SOVER=$pkgver
}
package() {
- cd "$builddir"
-
mkdir -p "$pkgdir"/usr/lib
make -C libmilter \
INCOWN=root INCGRP=root INCMODE=644 \
@@ -57,7 +53,7 @@ package() {
}
sha512sums="
-d7d4aac3c6d7505782abdb166204901b8b51cac000d610dfe40eda9eef7441a073af9e8e0b14c8719b07b445f55a1e2c28ac63d663d0daa7f1eafc5a101788b2 sendmail.8.16.1.tar.gz
+ae42343fb06c09f2db5d919d602afc4241914387dfdae0f15e0967dda3be25bf1d3a4637b57266763679646a3cea6aa07e6453266fd9b7358c1a09ec2b627a15 sendmail.8.17.1.tar.gz
31c36b57739946c1b9c7c85307fe5c53c45d7f8cbf427a0f2248db8b74871a6f5a30ef1af524915821aeca54310d28272bcd0a587cb918192214fa5c30e4a8da libmilter-sharedlib.patch
d3e12943fe7e9babdf700a2d8c0229bc16fa2ea16097615600341dee13f137b157ffa4b03f76c92ba9c5552ca3bf01cb598f6a6201720408df3a37247001a219 default-pthread-stacksize.patch
"
diff --git a/main/libmnl/APKBUILD b/main/libmnl/APKBUILD
index 1dd1b89fcd8..4e1c5f4f5bb 100644
--- a/main/libmnl/APKBUILD
+++ b/main/libmnl/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=libmnl
pkgver=1.0.5
-pkgrel=0
+pkgrel=2
pkgdesc="Library for minimalistic netlink"
url="https://www.netfilter.org/projects/libmnl/"
arch="all"
@@ -10,9 +10,14 @@ license="LGPL-2.1-or-later"
depends_dev="linux-headers"
makedepends="$depends_dev bsd-compat-headers"
subpackages="$pkgname-static $pkgname-dev"
-source="https://www.netfilter.org/projects/$pkgname/files/$pkgname-$pkgver.tar.bz2
+source="https://www.netfilter.org/projects/libmnl/files/libmnl-$pkgver.tar.bz2
musl-fix-headers.patch"
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
./configure \
--build=$CBUILD \
diff --git a/main/libnet/APKBUILD b/main/libnet/APKBUILD
index 1842f5f8f74..65b433ff1f7 100644
--- a/main/libnet/APKBUILD
+++ b/main/libnet/APKBUILD
@@ -1,15 +1,15 @@
# Contributor: Mika Havela <mika.havela@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libnet
-pkgver=1.2
+pkgver=1.3
pkgrel=0
pkgdesc="A generic networking API that provides access to several protocols."
url="https://sourceforge.net/projects/libnet-dev/"
arch="all"
license="BSD-2-Clause"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
-source="https://github.com/libnet/libnet/releases/download/v$pkgver/libnet-$pkgver.tar.gz
- fix-types.patch"
+source="https://github.com/libnet/libnet/releases/download/v$pkgver/libnet-$pkgver.tar.gz"
+options="!check"
build() {
./configure \
@@ -24,5 +24,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="84430f24e000eb7728b1fbb5e620716d13d193e8b9e024cf56a08fbeeeaaf56c9122caaf7647f01e6b38b73212e592fa5cc4e8ff56b1d5f5a73aea462e84edd6 libnet-1.2.tar.gz
-1c32c8fe62b04546550f4d961fdb4abf10a1faef8f76def691fb6c57dccb7166b5dc0b8c007b99e0d95138fce4be92c2bc72a618c6b8b7c5149bf04192aaece7 fix-types.patch"
+sha512sums="
+c434327108b61e73b61acc5f2b346d049ab5d58e494db21971368eac733a9a0a3e9d95e0b4523c20629b02ed0feef086c50c582719635f21e980c440d55dd462 libnet-1.3.tar.gz
+"
diff --git a/main/libnet/fix-types.patch b/main/libnet/fix-types.patch
deleted file mode 100644
index 38b1f536a31..00000000000
--- a/main/libnet/fix-types.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/include/libnet/libnet-structures.h
-+++ b/include/libnet/libnet-structures.h
-@@ -49,9 +49,9 @@
- /* libnet statistics structure */
- struct libnet_stats
- {
-- __int64_t packets_sent; /* packets sent */
-- __int64_t packet_errors; /* packets errors */
-- __int64_t bytes_written; /* bytes written */
-+ int64_t packets_sent; /* packets sent */
-+ int64_t packet_errors; /* packets errors */
-+ int64_t bytes_written; /* bytes written */
- };
-
-
diff --git a/main/libnetfilter_acct/APKBUILD b/main/libnetfilter_acct/APKBUILD
index b7e9b97cf1f..c71d96e00d3 100644
--- a/main/libnetfilter_acct/APKBUILD
+++ b/main/libnetfilter_acct/APKBUILD
@@ -2,24 +2,21 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=libnetfilter_acct
pkgver=1.0.3
-pkgrel=1
+pkgrel=3
pkgdesc="Userspace library providing interface to extended accounting infrastructure."
url="https://www.netfilter.org/projects/libnetfilter_acct/"
arch="all"
-license="GPL-2.0"
+license="LGPL-2.1-or-later"
makedepends="libnfnetlink-dev libmnl-dev linux-headers"
subpackages="$pkgname-dev"
-source="https://www.netfilter.org/projects/$pkgname/files/$pkgname-$pkgver.tar.bz2"
-
-_builddir="$srcdir/$pkgname-$pkgver"
+source="https://www.netfilter.org/projects/libnetfilter_acct/files/libnetfilter_acct-$pkgver.tar.bz2"
+options="!check"
prepare() {
- cd "$_builddir"
update_config_sub
}
build() {
- cd "$_builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -31,7 +28,6 @@ build() {
}
package() {
- cd "$_builddir"
make DESTDIR="$pkgdir" install
}
diff --git a/main/libnetfilter_conntrack/APKBUILD b/main/libnetfilter_conntrack/APKBUILD
index e5b11a474f1..5b108a27527 100644
--- a/main/libnetfilter_conntrack/APKBUILD
+++ b/main/libnetfilter_conntrack/APKBUILD
@@ -1,15 +1,22 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libnetfilter_conntrack
-pkgver=1.0.8
-pkgrel=1
+pkgver=1.0.9
+pkgrel=3
pkgdesc="programming interface (API) to the in-kernel connection tracking state table"
url="https://www.netfilter.org/projects/libnetfilter_conntrack/"
arch="all"
license="GPL-2.0-or-later"
makedepends="linux-headers libnfnetlink-dev libmnl-dev"
-subpackages="$pkgname-dev"
-source="https://www.netfilter.org/projects/libnetfilter_conntrack/files/libnetfilter_conntrack-$pkgver.tar.bz2"
+subpackages="$pkgname-static $pkgname-dev"
+source="https://www.netfilter.org/projects/libnetfilter_conntrack/files/libnetfilter_conntrack-$pkgver.tar.bz2
+ fix_build_with_kernel_5.15_and_musl.patch
+ "
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
./configure \
@@ -18,12 +25,20 @@ build() {
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
- --infodir=/usr/share/info
+ --infodir=/usr/share/info \
+ --enable-static
make
}
+check() {
+ make check
+}
+
package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="ddc70e7e3f2d764ed1e115e4a03fe8848b8c04bd69eea0952e63131dd4dae3c23f33b8be518673e1ec3b5dbf708f5f86eac97be46fe265d95386a5e902bd0b82 libnetfilter_conntrack-1.0.8.tar.bz2"
+sha512sums="
+e8b03425aaba3b72e6034c215656c34176d0550c08e0455aaeb1365d9141505d0c4feaa8978c8ccf2b7af9db6c9e874ceb866347e533b41cb03a189884f4004c libnetfilter_conntrack-1.0.9.tar.bz2
+1a93a36cf5cb89cec08e6e2476bf8d6fc68e9608f55e370418ed6a87e369545bdff1050e810aab2d5a9706f9559b3c1c48c404d954b2d01b84dbd68bae063450 fix_build_with_kernel_5.15_and_musl.patch
+"
diff --git a/main/libnetfilter_conntrack/fix_build_with_kernel_5.15_and_musl.patch b/main/libnetfilter_conntrack/fix_build_with_kernel_5.15_and_musl.patch
new file mode 100644
index 00000000000..2e5608ae95c
--- /dev/null
+++ b/main/libnetfilter_conntrack/fix_build_with_kernel_5.15_and_musl.patch
@@ -0,0 +1,56 @@
+From 21ee35dde73aec5eba35290587d479218c6dd824 Mon Sep 17 00:00:00 2001
+From: Robert Marko <robimarko@gmail.com>
+Date: Thu, 24 Feb 2022 15:01:11 +0100
+Subject: [PATCH] conntrack: fix build with kernel 5.15 and musl
+
+Currently, with kernel 5.15 headers and musl building is failing with
+redefinition errors due to a conflict between the kernel and musl headers.
+
+Musl is able to suppres the conflicting kernel header definitions if they
+are included after the standard libc ones, however since ICMP definitions
+were moved into a separate internal header to avoid duplication this has
+stopped working and is breaking the builds.
+
+It seems that the issue is that <netinet/in.h> which contains the UAPI
+suppression defines is included in the internal.h header and not in the
+proto.h which actually includes the kernel ICMP headers and thus UAPI
+supression defines are not present.
+
+Solve this by moving the <netinet/in.h> include before the ICMP kernel
+includes in the proto.h
+
+Fixes: bc1cb4b11403 ("conntrack: Move icmp request>reply type mapping to common file")
+Signed-off-by: Robert Marko <robimarko@gmail.com>
+Signed-off-by: Florian Westphal <fw@strlen.de>
+---
+ include/internal/internal.h | 1 -
+ include/internal/proto.h | 1 +
+ 2 files changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/internal/internal.h b/include/internal/internal.h
+index 2ef8a90..7cd7c44 100644
+--- a/include/internal/internal.h
++++ b/include/internal/internal.h
+@@ -14,7 +14,6 @@
+ #include <arpa/inet.h>
+ #include <time.h>
+ #include <errno.h>
+-#include <netinet/in.h>
+
+ #include <libnfnetlink/libnfnetlink.h>
+ #include <libnetfilter_conntrack/libnetfilter_conntrack.h>
+diff --git a/include/internal/proto.h b/include/internal/proto.h
+index 40e7bfe..60a5f4e 100644
+--- a/include/internal/proto.h
++++ b/include/internal/proto.h
+@@ -2,6 +2,7 @@
+ #define _NFCT_PROTO_H_
+
+ #include <stdint.h>
++#include <netinet/in.h>
+ #include <linux/icmp.h>
+ #include <linux/icmpv6.h>
+
+--
+2.37.1
+
diff --git a/main/libnetfilter_cthelper/APKBUILD b/main/libnetfilter_cthelper/APKBUILD
index 80a4131fc0c..92cac88545b 100644
--- a/main/libnetfilter_cthelper/APKBUILD
+++ b/main/libnetfilter_cthelper/APKBUILD
@@ -1,14 +1,20 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libnetfilter_cthelper
pkgver=1.0.1
-pkgrel=0
+pkgrel=2
pkgdesc="A Netfilter netlink library for connection tracking helpers"
url="https://www.netfilter.org/projects/libnetfilter_cthelper/"
arch="all"
-license="GPL-2.0"
+license="GPL-2.0-only"
makedepends="linux-headers libmnl-dev"
subpackages="$pkgname-dev"
source="https://www.netfilter.org/projects/libnetfilter_cthelper/files/libnetfilter_cthelper-$pkgver.tar.bz2"
+options="!check"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
./configure \
diff --git a/main/libnetfilter_cttimeout/APKBUILD b/main/libnetfilter_cttimeout/APKBUILD
index 85fbfcdc386..cdb7295be25 100644
--- a/main/libnetfilter_cttimeout/APKBUILD
+++ b/main/libnetfilter_cttimeout/APKBUILD
@@ -2,15 +2,21 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libnetfilter_cttimeout
pkgver=1.0.1
-pkgrel=0
+pkgrel=2
pkgdesc="Library for the connection tracking timeout infrastructure"
url="https://www.netfilter.org/projects/libnetfilter_cttimeout/"
arch="all"
-license="GPL-2.0"
+license="GPL-2.0-only"
depends_dev="libmnl-dev"
makedepends="linux-headers $depends_dev"
subpackages="$pkgname-dev"
source="https://www.netfilter.org/projects/libnetfilter_cttimeout/files/libnetfilter_cttimeout-$pkgver.tar.bz2"
+options="!check"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
./configure \
diff --git a/main/libnetfilter_log/APKBUILD b/main/libnetfilter_log/APKBUILD
index a39f6e12f9e..480e3091ee1 100644
--- a/main/libnetfilter_log/APKBUILD
+++ b/main/libnetfilter_log/APKBUILD
@@ -3,15 +3,21 @@
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=libnetfilter_log
pkgver=1.0.2
-pkgrel=0
+pkgrel=2
pkgdesc="interface to packets that have been logged by the kernel packet filter"
url="https://www.netfilter.org/projects/libnetfilter_log/"
arch="all"
-license="GPL-2.0"
+license="GPL-2.0-only"
depends_dev="linux-headers"
makedepends="$depends_dev libnfnetlink-dev libmnl-dev"
subpackages="$pkgname-dev"
source="https://www.netfilter.org/projects/libnetfilter_log/files/libnetfilter_log-$pkgver.tar.bz2"
+options="!check"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
./configure \
diff --git a/main/libnetfilter_queue/APKBUILD b/main/libnetfilter_queue/APKBUILD
index bc90eeefe6b..3bb74efc7f8 100644
--- a/main/libnetfilter_queue/APKBUILD
+++ b/main/libnetfilter_queue/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libnetfilter_queue
pkgver=1.0.5
-pkgrel=1
+pkgrel=2
pkgdesc="API to packets that have been queued by the kernel packet filter"
url="https://www.netfilter.org/projects/libnetfilter_queue/"
arch="all"
@@ -10,6 +10,11 @@ makedepends="libnfnetlink-dev libmnl-dev linux-headers"
subpackages="$pkgname-dev"
source="https://www.netfilter.org/projects/libnetfilter_queue/files/libnetfilter_queue-$pkgver.tar.bz2"
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
./configure \
--build=$CBUILD \
diff --git a/main/libnfnetlink/APKBUILD b/main/libnfnetlink/APKBUILD
index 4ecc1d54f79..d6af283c6dc 100644
--- a/main/libnfnetlink/APKBUILD
+++ b/main/libnfnetlink/APKBUILD
@@ -2,14 +2,20 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libnfnetlink
pkgver=1.0.2
-pkgrel=0
+pkgrel=3
pkgdesc="low-level library for netfilter related kernel/userspace communication"
url="https://www.netfilter.org/projects/libnfnetlink/"
arch="all"
license="GPL-2.0-only"
makedepends="linux-headers"
-subpackages="$pkgname-dev"
+subpackages="$pkgname-static $pkgname-dev"
source="https://www.netfilter.org/projects/libnfnetlink/files/libnfnetlink-$pkgver.tar.bz2"
+options="!check"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
./configure \
@@ -18,7 +24,8 @@ build() {
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
- --infodir=/usr/share/info
+ --infodir=/usr/share/info \
+ --enable-static
make
}
diff --git a/main/libnftnl/APKBUILD b/main/libnftnl/APKBUILD
index d83b61ecf73..85cf969ac4c 100644
--- a/main/libnftnl/APKBUILD
+++ b/main/libnftnl/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=libnftnl
-pkgver=1.2.2
+pkgver=1.2.6
pkgrel=0
pkgdesc="Netfilter library providing interface to the nf_tables subsystem"
url="https://netfilter.org/projects/libnftnl"
@@ -11,14 +11,18 @@ makedepends="bash jansson-dev libmnl-dev"
provides="$pkgname-libs=$pkgver-r$pkgrel" # for backward compatibility (Alpine <3.15)
replaces="$pkgname-libs" # for backward compatibility (Alpine <3.15)
subpackages="$pkgname-dev"
-source="https://netfilter.org/projects/libnftnl/files/libnftnl-$pkgver.tar.bz2"
+source="https://netfilter.org/projects/libnftnl/files/libnftnl-$pkgver.tar.xz"
case "$CARCH" in
s390x) options="!check" ;; # FIXME
esac
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -31,15 +35,14 @@ build() {
}
check() {
- cd "$builddir"/tests
+ cd tests
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
sha512sums="
-657d48aa263043b80daa39eb8e2647c84c03b3e3a4a30b85bec1d8e4a0976075a71ad233bb384f4460d5f6662f285c12947feb8c1a6c9a534a2c9cf7ba04eee3 libnftnl-1.2.2.tar.bz2
+0c8c369eec84b0c568f0067598bece6e3be9a0fbd977e443ae3b14a5a6d842a6086ceb5426a65f8c77204709655f148c1241193f1a928f8c12154a57e3548b34 libnftnl-1.2.6.tar.xz
"
diff --git a/main/libnl/APKBUILD b/main/libnl/APKBUILD
deleted file mode 100644
index 8e2aaf59830..00000000000
--- a/main/libnl/APKBUILD
+++ /dev/null
@@ -1,48 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=libnl
-pkgver=1.1.4
-pkgrel=1
-pkgdesc="Library for applications dealing with netlink sockets"
-url="https://www.infradead.org/~tgr/libnl/"
-arch="all"
-license="LGPL-2.1-only"
-makedepends="linux-headers"
-subpackages="$pkgname-dev"
-source="https://www.infradead.org/~tgr/libnl/files/$pkgname-$pkgver.tar.gz
- libnl-1.1-flags.patch
- libnl-1.1-vlan-header.patch
- fix-strerror_r.patch
- fix-includes.patch"
-
-# tests does not work on s390x builder
-# or mips
-case "$CARCH" in
-s390x) options="$options !check";;
-mips*) options="$options !check";;
-esac
-
-build() {
- cd "$builddir"
- export CFLAGS="$CFLAGS -D_GNU_SOURCE"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr
- make
-}
-
-check() {
- cd "$builddir"/tests
- LD_LIBRARY_PATH=$(pwd)/../lib ./test-genl
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="25e26ddcc16540346ea34815ab6ac094177e5cee2eb3d843c4f8b30cd9d83390a3e87cb46046dc3bd9ae4d21f77e57bb3827c2cfc588eb18afe049921f2030b4 libnl-1.1.4.tar.gz
-7ef2b3a7fb79227644c897a8cd59d6fc1e94a37211ea59684fe11ec4e34fe95cdc8c3df72134128326c2db10cbada9641290994253a4a80875971d95a73a74c0 libnl-1.1-flags.patch
-ea45d780b16e6045735aaf2e3febf19ddccab4ca0e03710aebfe51655adc50177aefa3bd4d06e0ccce0160f4c6db73cfa4eb7cebe53b3e15c1807c3b00dc1c9c libnl-1.1-vlan-header.patch
-0464db6611234e3ece7191d88da12d241d0a1cf03e8fa1a8ec1757c0ae971fde1ae727e39358a49ac74f2fee8465b02f6fe21ae0ccc58851299c325b9475d58b fix-strerror_r.patch
-3d7281137f95e2dcdbc17e1e1676f2a220a735161527cef80d4608e0c16d985d4d14df1d040b6d18b24c407577b6bf0cfb0d7f3520657e9c16b2d487eb1d445a fix-includes.patch"
diff --git a/main/libnl/fix-includes.patch b/main/libnl/fix-includes.patch
deleted file mode 100644
index b9a6bea0644..00000000000
--- a/main/libnl/fix-includes.patch
+++ /dev/null
@@ -1,25 +0,0 @@
---- libnl-1.1.orig/lib/netfilter/log.c
-+++ libnl-1.1/lib/netfilter/log.c
-@@ -18,6 +18,7 @@
- * @{
- */
-
-+#include <byteswap.h>
- #include <sys/types.h>
- #include <linux/netfilter/nfnetlink_log.h>
-
---- libnl-1.1.orig/include/netlink/netlink.h
-+++ libnl-1.1/include/netlink/netlink.h
-@@ -12,11 +12,11 @@
- #ifndef NETLINK_NETLINK_H_
- #define NETLINK_NETLINK_H_
-
-+#include <poll.h>
- #include <stdio.h>
- #include <stdint.h>
- #include <string.h>
- #include <stdlib.h>
--#include <sys/poll.h>
- #include <sys/socket.h>
- #include <sys/types.h>
- #include <sys/time.h>
diff --git a/main/libnl/fix-strerror_r.patch b/main/libnl/fix-strerror_r.patch
deleted file mode 100644
index ff129be7219..00000000000
--- a/main/libnl/fix-strerror_r.patch
+++ /dev/null
@@ -1,50 +0,0 @@
---- libnl-1.1.4.orig/lib/fib_lookup/lookup.c
-+++ libnl-1.1.4/lib/fib_lookup/lookup.c
-@@ -124,7 +124,7 @@
- static int result_dump_brief(struct nl_object *obj, struct nl_dump_params *p)
- {
- struct flnl_result *res = (struct flnl_result *) obj;
-- char buf[256];
-+ char buf[256], buf2[256];
- int line = 1;
-
- dp_dump(p, "table %s prefixlen %u next-hop-selector %u\n",
-@@ -132,9 +132,10 @@
- res->fr_prefixlen, res->fr_nh_sel);
- dp_dump_line(p, line++, "type %s ",
- nl_rtntype2str(res->fr_type, buf, sizeof(buf)));
-+ strerror_r(-res->fr_error, buf2, sizeof(buf2));
- dp_dump(p, "scope %s error %s (%d)\n",
- rtnl_scope2str(res->fr_scope, buf, sizeof(buf)),
-- strerror_r(-res->fr_error, buf, sizeof(buf)), res->fr_error);
-+ buf2, res->fr_error);
-
- return line;
- }
---- libnl-1.1.4.orig/lib/handlers.c
-+++ libnl-1.1.4/lib/handlers.c
-@@ -136,8 +136,8 @@
- FILE *ofd = arg ? arg : stderr;
- char buf[256];
-
-- fprintf(ofd, "-- Error received: %s\n-- Original message: ",
-- strerror_r(-e->error, buf, sizeof(buf)));
-+ strerror_r(-e->error, buf, sizeof(buf));
-+ fprintf(ofd, "-- Error received: %s\n-- Original message: ", buf);
- print_header_content(ofd, &e->msg);
- fprintf(ofd, "\n");
-
---- libnl-1.1.4.orig/lib/msg.c
-+++ libnl-1.1.4/lib/msg.c
-@@ -961,9 +961,9 @@
- struct nlmsgerr *err = nlmsg_data(hdr);
- char buf[256];
-
-+ strerror_r(-err->error, buf, sizeof(buf));
- fprintf(ofd, " [ERRORMSG] %Zu octets\n", sizeof(*err));
-- fprintf(ofd, " .error = %d \"%s\"\n", err->error,
-- strerror_r(-err->error, buf, sizeof(buf)));
-+ fprintf(ofd, " .error = %d \"%s\"\n", err->error, buf);
- fprintf(ofd, " [ORIGINAL MESSAGE] %Zu octets\n", sizeof(*hdr));
-
- errmsg = nlmsg_inherit(&err->msg);
diff --git a/main/libnl/libnl-1.1-flags.patch b/main/libnl/libnl-1.1-flags.patch
deleted file mode 100644
index bb09b362660..00000000000
--- a/main/libnl/libnl-1.1-flags.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- libnl-1.1/lib/Makefile.orig 2008-01-14 16:48:45.000000000 +0100
-+++ libnl-1.1/lib/Makefile 2009-05-26 09:47:42.000000000 +0200
-@@ -48,7 +48,7 @@
-
- $(OUT_SLIB): ../Makefile.opts $(OBJ)
- @echo " LD $(OUT_SLIB)"; \
-- $(CC) -shared -Wl,-soname,libnl.so.1 -o $(OUT_SLIB) $(OBJ) $(LIBNL_LIB) -lc
-+ $(CC) $(CFLAGS) $(LDFLAGS) -shared -Wl,-soname,libnl.so.1 -o $(OUT_SLIB) $(OBJ) $(LIBNL_LIB) -lc
- @echo " LN $(OUT_SLIB) $(LN1_SLIB)"; \
- rm -f $(LN1_SLIB) ; $(LN) -s $(OUT_SLIB) $(LN1_SLIB)
- @echo " LN $(LN1_SLIB) $(LN_SLIB)"; \
diff --git a/main/libnl/libnl-1.1-vlan-header.patch b/main/libnl/libnl-1.1-vlan-header.patch
deleted file mode 100644
index c4c2fc6382d..00000000000
--- a/main/libnl/libnl-1.1-vlan-header.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From: Patrick McHardy <kaber@trash.net>
-Date: Fri, 18 Jan 2008 16:55:48 +0000 (+0100)
-Subject: [LIBNL]: Add if_vlan.h
-X-Git-Url: http://git.kernel.org/?p=libs%2Fnetlink%2Flibnl.git;a=commitdiff_plain;h=e91bb2ffb090955d443e643a25b250bf3d33534a;hp=7f6b7a8eea0334b34d58dec72c66121a76f08958
-
-[LIBNL]: Add if_vlan.h
-
-vlan support needs VLAN_FLAG_REORDER_HDR, which is not available in
-older if_vlan.h versions. Add the current version from the kernel.
-
-Signed-off-by: Patrick McHardy <kaber@trash.net>
----
-
-diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h
-new file mode 100644
-index 0000000..068cd7b
---- /dev/null
-+++ include/linux/if_vlan.h
-@@ -0,0 +1,61 @@
-+/*
-+ * VLAN An implementation of 802.1Q VLAN tagging.
-+ *
-+ * Authors: Ben Greear <greearb@candelatech.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.
-+ *
-+ */
-+
-+#ifndef _LINUX_IF_VLAN_H_
-+#define _LINUX_IF_VLAN_H_
-+
-+
-+/* VLAN IOCTLs are found in sockios.h */
-+
-+/* Passed in vlan_ioctl_args structure to determine behaviour. */
-+enum vlan_ioctl_cmds {
-+ ADD_VLAN_CMD,
-+ DEL_VLAN_CMD,
-+ SET_VLAN_INGRESS_PRIORITY_CMD,
-+ SET_VLAN_EGRESS_PRIORITY_CMD,
-+ GET_VLAN_INGRESS_PRIORITY_CMD,
-+ GET_VLAN_EGRESS_PRIORITY_CMD,
-+ SET_VLAN_NAME_TYPE_CMD,
-+ SET_VLAN_FLAG_CMD,
-+ GET_VLAN_REALDEV_NAME_CMD, /* If this works, you know it's a VLAN device, btw */
-+ GET_VLAN_VID_CMD /* Get the VID of this VLAN (specified by name) */
-+};
-+
-+enum vlan_flags {
-+ VLAN_FLAG_REORDER_HDR = 0x1,
-+};
-+
-+enum vlan_name_types {
-+ VLAN_NAME_TYPE_PLUS_VID, /* Name will look like: vlan0005 */
-+ VLAN_NAME_TYPE_RAW_PLUS_VID, /* name will look like: eth1.0005 */
-+ VLAN_NAME_TYPE_PLUS_VID_NO_PAD, /* Name will look like: vlan5 */
-+ VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD, /* Name will look like: eth0.5 */
-+ VLAN_NAME_TYPE_HIGHEST
-+};
-+
-+struct vlan_ioctl_args {
-+ int cmd; /* Should be one of the vlan_ioctl_cmds enum above. */
-+ char device1[24];
-+
-+ union {
-+ char device2[24];
-+ int VID;
-+ unsigned int skb_priority;
-+ unsigned int name_type;
-+ unsigned int bind_type;
-+ unsigned int flag; /* Matches vlan_dev_info flags */
-+ } u;
-+
-+ short vlan_qos;
-+};
-+
-+#endif /* !(_LINUX_IF_VLAN_H_) */
diff --git a/main/libnl3/APKBUILD b/main/libnl3/APKBUILD
index 337b89b1ea5..3999ffab1b4 100644
--- a/main/libnl3/APKBUILD
+++ b/main/libnl3/APKBUILD
@@ -1,34 +1,31 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libnl3
-pkgver=3.6.0
-pkgrel=0
+pkgver=3.9.0
+pkgrel=1
pkgdesc="Library for applications dealing with netlink sockets"
url="http://www.infradead.org/~tgr/libnl/"
arch="all"
license="LGPL-2.1-or-later"
makedepends="linux-headers flex bison libtool autoconf automake"
checkdepends="check-dev"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-cli"
+subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-cli"
# XXX: Since 3.6.0, the tests modify the process namespace.
# Many of these operations are not allowed by our CI sandbox.
# The tests should pass locally.
#
# See: https://github.com/thom311/libnl/commit/9102872ac24c71f5ac48b6a1f09115c872b5793b
-options="!check"
+options="!check"
source="https://github.com/thom311/libnl/releases/download/libnl${pkgver//./_}/libnl-$pkgver.tar.gz
libnl3-musl.patch
- fix-tests.patch
"
builddir="$srcdir"/libnl-$pkgver
prepare() {
default_prepare
- cd "$builddir"
autoreconf -vif
}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -36,18 +33,16 @@ build() {
--sysconfdir=/etc \
--mandir=/usr/share/man \
--localstatedir=/var \
- --disable-static \
+ --enable-static \
--enable-unit-tests
make
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
@@ -61,7 +56,6 @@ cli() {
}
sha512sums="
-7d1190ce94f43f5b18b1f7909221ca034d4ea5c8ed5735dbd27224d03e7f95d3c4e8ccdb611e33b58007729a21bfc0e23adc8758b112c712355664d87a81ce1b libnl-3.6.0.tar.gz
+b6f3633d1920e61645c97f4c4c4419444e7fd66aa3b67b0a73bc29df24cf27065542a62a9c2581f90d0c153247922ce5c649b7da51c0fead6afceaf4d0361dce libnl-3.9.0.tar.gz
2b9b569c00b9e29930a83e88264e9cb63a4991bd89a04f2fc4b4c468a2a73309d9463f0b9e4a945e614c0f831a68fc99c5768a0f2214a0dde00785215e24e1dc libnl3-musl.patch
-2789f2ef3a6f803b8abed473f69a26950973d48c72b6589a3c9dde82352ba959965e17524e1bb31254df28e77eb41108bffe6f880c5ade2830780a7dfbeb38ab fix-tests.patch
"
diff --git a/main/libnl3/fix-tests.patch b/main/libnl3/fix-tests.patch
deleted file mode 100644
index ecc03dc377f..00000000000
--- a/main/libnl3/fix-tests.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From fa7f97f8982544c4fcb403893bae6701230d5165 Mon Sep 17 00:00:00 2001
-From: Thomas Haller <thaller@redhat.com>
-Date: Fri, 15 Apr 2022 13:29:49 +0200
-Subject: [PATCH] build: avoid building check-direct with --disable-static
-
-"check-direct" needs to statically link with the libraries, because
-it wants to test internal ABI, which is hidden in the share libraries.
-When configuring with "--disable-static", static libs are not build
-and the test tool cannot be build.
-
-Just skip the test in that case.
-
-https://github.com/thom311/libnl/issues/306
----
- Makefile.am | 2 ++
- configure.ac | 2 ++
- 2 files changed, 4 insertions(+)
-
-diff --git a/Makefile.am b/Makefile.am
-index a6bcf553..2f5e0dfc 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -984,8 +984,10 @@ tests_check_all_LDADD = \
- $(NULL)
-
- if WITH_CHECK
-+if ENABLE_STATIC
- check_programs += tests/check-direct
- endif
-+endif
-
- tests_check_direct_SOURCES = \
- tests/check-direct.c \
-diff --git a/configure.ac b/configure.ac
-index 1f9ad0eb..0fd1cc0f 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -107,6 +107,8 @@ else
- AC_CHECK_LIB([pthread], [pthread_mutex_lock], [], AC_MSG_ERROR([libpthread is required]))
- fi
-
-+AM_CONDITIONAL([ENABLE_STATIC], [test "$enable_static" != "no"])
-+
- AC_ARG_ENABLE([debug],
- AS_HELP_STRING([--disable-debug], [Do not include debugging statements]),
- [enable_debug="$enableval"], [enable_debug="yes"])
diff --git a/main/libnvme/APKBUILD b/main/libnvme/APKBUILD
new file mode 100644
index 00000000000..34f0db57d1d
--- /dev/null
+++ b/main/libnvme/APKBUILD
@@ -0,0 +1,60 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=libnvme
+pkgver=1.8
+pkgrel=1
+pkgdesc="C Library for NVM Express on Linux"
+url="https://github.com/linux-nvme/libnvme/"
+arch="all"
+license="LGPL-2.1-or-later"
+depends_dev="
+ json-c-dev
+ linux-headers
+ openssl-dev
+ "
+makedepends="
+ $depends_dev
+ bash
+ dbus-dev
+ meson
+ python3-dev
+ swig
+ util-linux-dev
+ xz
+ "
+checkdepends="diffutils"
+subpackages="${pkgname}mi:mi $pkgname-dev py3-nvme:_py3"
+source="https://github.com/linux-nvme/libnvme/archive/v$pkgver/libnvme-v$pkgver.tar.gz
+ doc-test.patch
+ sysfs-test-getc-eof.patch
+ "
+
+build() {
+ abuild-meson \
+ -Db_lto=true \
+ -Ddocs=false \
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --print-errorlogs -C output || [ "$CARCH" = "s390x" ]
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+_py3() {
+ pkgdesc="$pkgdesc (python bindings)"
+ amove usr/lib/python3*
+}
+
+mi() {
+ amove usr/lib/libnvme-mi.so.*
+}
+
+sha512sums="
+ba0cec72fd6c9bb29b29c4342be7b25aec1f31157a094ad387a1105cbd1961ab600e1448a2462d8be2af91d5251b2970d6d06d4871ce96604c5be204d6096bcb libnvme-v1.8.tar.gz
+6ca036287d964db018a2ddfb5480b0b46e6f2edd9f0a7c39dbf5977ce58d8da4d619705e16a3f269bfa7c619d6da5aeff20d9b558c697f6d68e5d89a73ef586e doc-test.patch
+5c417a296fb9fcf4ef3f617017d1bc2bfc450eb7cea808c5560728a25f3bf584a8b8973c299acff8e303100cbc93d2ac01746873bd931112b1a9305e74194b9f sysfs-test-getc-eof.patch
+"
diff --git a/main/libnvme/doc-test.patch b/main/libnvme/doc-test.patch
new file mode 100644
index 00000000000..40bcab7c724
--- /dev/null
+++ b/main/libnvme/doc-test.patch
@@ -0,0 +1,14 @@
+needs kernel-doc from linux docs
+diff --git a/doc/meson.build b/doc/meson.build
+index d716c8b..02e90e2 100644
+--- a/doc/meson.build
++++ b/doc/meson.build
+@@ -49,7 +49,7 @@ want_docs_build = get_option('docs-build')
+ kernel_doc = find_program('kernel-doc')
+ kernel_doc_check = find_program('kernel-doc-check')
+
+-test('kdoc', kernel_doc_check, args: api_paths)
++#test('kdoc', kernel_doc_check, args: api_paths)
+
+ if want_docs != 'false'
+
diff --git a/main/libnvme/sysfs-test-getc-eof.patch b/main/libnvme/sysfs-test-getc-eof.patch
new file mode 100644
index 00000000000..bf8fae206ce
--- /dev/null
+++ b/main/libnvme/sysfs-test-getc-eof.patch
@@ -0,0 +1,11 @@
+--- a/test/sysfs/sysfs.c
++++ b/test/sysfs/sysfs.c
+@@ -44,7 +44,7 @@
+ static bool compare_content(const char *filename1, const char *filename2)
+ {
+ FILE *f1, *f2;
+- char c1, c2;
++ int c1, c2;
+ bool pass = false;
+
+ f1 = fopen(filename1, "r");
diff --git a/main/libogg/APKBUILD b/main/libogg/APKBUILD
index 943a5183377..0d9ae64523f 100644
--- a/main/libogg/APKBUILD
+++ b/main/libogg/APKBUILD
@@ -2,37 +2,45 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libogg
pkgver=1.3.5
-pkgrel=1
+pkgrel=5
pkgdesc="Ogg bitstream and framing library"
url="https://xiph.org/ogg/"
arch="all"
license="BSD-3-Clause"
makedepends="cmake samurai"
-subpackages="$pkgname-doc $pkgname-dev"
-source="http://downloads.xiph.org/releases/ogg/libogg-$pkgver.tar.gz"
+subpackages="$pkgname-doc $pkgname-static $pkgname-dev"
+source="https://downloads.xiph.org/releases/ogg/libogg-$pkgver.tar.gz"
build() {
if [ "$CBUILD" != "$CHOST" ]; then
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
fi
- cmake -B build -G Ninja \
+ CFLAGS="$CFLAGS -O2 -flto=auto" \
+ cmake -B build-shared -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
- -DBUILD_SHARED_LIBS=True \
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=None \
+ $CMAKE_CROSSOPTS
+ cmake --build build-shared
+
+ cmake -B build-static -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DBUILD_SHARED_LIBS=OFF \
-DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
$CMAKE_CROSSOPTS
- cmake --build build
+ cmake --build build-static
}
check() {
- cmake --build build --target test
+ ctest --test-dir build-shared --output-on-failure
+ ctest --test-dir build-static --output-on-failure
}
package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-
- install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
+ DESTDIR="$pkgdir" cmake --install build-static
+ DESTDIR="$pkgdir" cmake --install build-shared
}
sha512sums="
diff --git a/main/libotr/APKBUILD b/main/libotr/APKBUILD
index 507bb54e0f1..07c85f058dd 100644
--- a/main/libotr/APKBUILD
+++ b/main/libotr/APKBUILD
@@ -2,16 +2,18 @@
# Maintainer: Sheila Aman <sheila@vulpine.house>
pkgname=libotr
pkgver=4.1.1
-pkgrel=2
+pkgrel=5
pkgdesc="Off The Record Messaging, an encryption library for secure IM conversations"
options="!check"
url="http://otr.cypherpunks.ca/"
arch="all"
-license="LGPL-2.0-or-later"
+license="LGPL-2.1-only"
depends_dev="libgcrypt-dev"
makedepends="$depends_dev"
subpackages="$pkgname-dev $pkgname-doc $pkgname-tools"
-source="https://www.cypherpunks.ca/otr/libotr-$pkgver.tar.gz"
+source="https://www.cypherpunks.ca/otr/libotr-$pkgver.tar.gz
+ socklen-t.patch
+ "
prepare() {
default_prepare
@@ -36,4 +38,7 @@ tools() {
mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
}
-sha512sums="c957206235b9f627542f23a645c822ea1b318d83fa655f41ed8d9a3c0dddf30b88f0ca82060026af155e48ecb13969dc9270831f20304669794151f666ae5cb0 libotr-4.1.1.tar.gz"
+sha512sums="
+c957206235b9f627542f23a645c822ea1b318d83fa655f41ed8d9a3c0dddf30b88f0ca82060026af155e48ecb13969dc9270831f20304669794151f666ae5cb0 libotr-4.1.1.tar.gz
+0e17f0ffd91c54c7d8b9960b65696ebd4735d52c525ef46fb35e2eeb6a43bdc850e40132a9d2581fc51e2e3f7e88d8cf44e0d01c6792648e9d6dd0252b3cbb26 socklen-t.patch
+"
diff --git a/main/libotr/socklen-t.patch b/main/libotr/socklen-t.patch
new file mode 100644
index 00000000000..6d543adb8df
--- /dev/null
+++ b/main/libotr/socklen-t.patch
@@ -0,0 +1,12 @@
+diff --git a/tests/regression/client/client.c b/tests/regression/client/client.c
+index e72b661..e0b3453 100644
+--- a/tests/regression/client/client.c
++++ b/tests/regression/client/client.c
+@@ -26,6 +26,7 @@
+ #include <stdlib.h>
+ #include <syscall.h>
+ #include <sys/epoll.h>
++#include <sys/socket.h>
+ #include <sys/types.h>
+ #include <sys/un.h>
+ #include <unistd.h>
diff --git a/main/libpaper/APKBUILD b/main/libpaper/APKBUILD
index dc1d90980f1..dcfd2c765fb 100644
--- a/main/libpaper/APKBUILD
+++ b/main/libpaper/APKBUILD
@@ -1,36 +1,36 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libpaper
-pkgver=1.1.28
-pkgrel=1
+pkgver=2.2.5
+pkgrel=0
pkgdesc="Library for handling paper characteristics"
-url="https://packages.debian.org/unstable/source/libpaper"
+url="https://github.com/rrthomas/libpaper/"
arch="all"
-options="!check" # No test suite.
-license="GPL-2.0-only"
-makedepends="automake autoconf libtool"
+license="LGPL-2.1-or-later OR MIT"
+makedepends="help2man"
+checkdepends="bash"
subpackages="$pkgname-dev $pkgname-doc"
-source="https://deb.debian.org/debian/pool/main/libp/libpaper/libpaper_$pkgver.tar.gz"
-
-prepare() {
- cd "$builddir"
- default_prepare
- autoreconf -fi
-}
+source="https://github.com/rrthomas/libpaper/releases/download/v$pkgver/libpaper-$pkgver.tar.gz"
+options="!check" # really broken
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
- --disable-static \
- --mandir="$pkgdir"/usr/share/man
+ --sysconfdir=/etc \
+ --disable-static
make
}
+check() {
+ cd tests
+ ./run-test
+}
+
package() {
- cd "$builddir"
- make prefix="$pkgdir"/usr install
+ make DESTDIR="$pkgdir" install
}
-sha512sums="3bf6ebb0af89931d2f72ea4a09a7fa958b2facda5f238983ec7bac39652e08614b33f0de3af74a03457b2a4203eee4950bf18a4b726e79aa64093ace6a1fb0bc libpaper_1.1.28.tar.gz"
+sha512sums="
+db8da6f7c41a11458e917e4ecceab69c77ada54ac7de9ca13137f019ccca29d85f49573307327c05704697f8bdf7a044231c123b41e5033f78ad610202163808 libpaper-2.2.5.tar.gz
+"
diff --git a/main/libpcap/APKBUILD b/main/libpcap/APKBUILD
index a28a3805197..8fb63ca07b4 100644
--- a/main/libpcap/APKBUILD
+++ b/main/libpcap/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libpcap
-pkgver=1.10.1
-pkgrel=0
+pkgver=1.10.4
+pkgrel=1
pkgdesc="A system-independent interface for user-level packet capture"
url="https://www.tcpdump.org/"
arch="all"
@@ -43,6 +43,6 @@ package() {
}
sha512sums="
-56c314f19c2b857742bf8abcb1e78066986aaa95cec339b75a3c8b70a9fa2b5167da98708352f9ec97a1cea2700cfb4e040bda108d58ac46cec9b7deab88d171 libpcap-1.10.1.tar.gz
+1f6d6ddd07dae7c557054cb246437ecdaf39d579592a5a6bdf1144eea6cb5a779ac4ca647cfed11ec1b0bb18efc63b845444e497070bacefaaed19a5787ae5e1 libpcap-1.10.4.tar.gz
77590c8fcea96427fd08e85023609695f8b280a9b24a503d19b08a3c6baf3537a949c94078a5cd577f0476d735a257050955590374d85ce6a2f35a09143da5a3 fix-headers.patch
"
diff --git a/main/libpciaccess/APKBUILD b/main/libpciaccess/APKBUILD
index 504715127ff..7ef6211a1f4 100644
--- a/main/libpciaccess/APKBUILD
+++ b/main/libpciaccess/APKBUILD
@@ -1,31 +1,29 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libpciaccess
-pkgver=0.16
+pkgver=0.18.1
pkgrel=0
pkgdesc="X11 PCI access library"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="all"
license="X11"
options="!check" # No test suite.
-makedepends="util-macros"
-subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
-source="https://www.x.org/releases/individual/lib/$pkgname-$pkgver.tar.bz2
- limits_h.patch"
+depends="hwdata-pci"
+makedepends="meson util-macros"
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://www.x.org/releases/individual/lib/libpciaccess-$pkgver.tar.xz"
build() {
- cd "$builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr
- make
+ abuild-meson \
+ -Db_lto=true \
+ . output
+ meson compile -C output
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
}
-sha512sums="2f250048a270dfc0823d4bdd613aa272c58a80eaafd922850f56c4b6f7a45a263ed4cf521b52b49f04484ea44ebefb7407d079aa058318a5751ffb181e38fed1 libpciaccess-0.16.tar.bz2
-331a498059d8b2bfd0a7da0ced3616266ebc129b785090ef1dc19cd645b013428c60d5678fc080bd15ecaf7598ec8b1084509d6bea5d563101169a449b6fe75b limits_h.patch"
+sha512sums="
+ef27999446e735df2331e94219ee3dafe9198a2472bb452f63ef9c9c446d5431f9e231e224cfabdeba1402974a5a0064546f9abced4d1770f994f5fc0c2b3310 libpciaccess-0.18.1.tar.xz
+"
diff --git a/main/libpciaccess/limits_h.patch b/main/libpciaccess/limits_h.patch
deleted file mode 100644
index 6e0d7eeab56..00000000000
--- a/main/libpciaccess/limits_h.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/src/linux_sysfs.c
-+++ b/src/linux_sysfs.c
-@@ -48,6 +48,7 @@
- #include <sys/mman.h>
- #include <dirent.h>
- #include <errno.h>
-+#include <limits.h>
-
- #if defined(__i386__) || defined(__x86_64__) || defined(__arm__)
- #include <sys/io.h>
diff --git a/main/libpng/APKBUILD b/main/libpng/APKBUILD
index 3ed50ed39af..535bc3c7cae 100644
--- a/main/libpng/APKBUILD
+++ b/main/libpng/APKBUILD
@@ -1,20 +1,18 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libpng
-pkgver=1.6.37
-pkgrel=1
+pkgver=1.6.43
+pkgrel=0
pkgdesc="Portable Network Graphics library"
url="http://www.libpng.org"
arch="all"
license="Libpng"
makedepends="zlib-dev gawk autoconf automake libtool"
subpackages="$pkgname-doc $pkgname-static $pkgname-dev $pkgname-utils"
-source="https://downloads.sourceforge.net/libpng/$pkgname-$pkgver.tar.gz
- https://downloads.sourceforge.net/sourceforge/libpng-apng/$pkgname-$pkgver-apng.patch.gz
+source="https://downloads.sourceforge.net/libpng/libpng-$pkgver.tar.gz
+ https://downloads.sourceforge.net/sourceforge/libpng-apng/libpng-1.6.43-apng.patch.gz
libpng-fix-arm-neon.patch
- dont-run-pngtest.patch
"
-builddir="$srcdir/$pkgname-$pkgver"
# secfixes:
# 1.6.37-r0:
@@ -23,14 +21,12 @@ builddir="$srcdir/$pkgname-$pkgver"
# - CVE-2018-14550
prepare() {
- cd "$builddir"
default_prepare
# libpng-fix-arm-neon.patch modifies configure.ac
autoreconf -vif
}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -42,31 +38,22 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
rm -f "$pkgdir"/usr/lib/*.la
}
utils() {
pkgdesc="$pkgdesc (pngfix utils)"
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr
-}
-
-static() {
- depends=""
- pkgdesc="$pkgdesc (static library)"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib
+ amove usr/bin
}
-sha512sums="2ce2b855af307ca92a6e053f521f5d262c36eb836b4810cb53c809aa3ea2dcc08f834aee0ffd66137768a54397e28e92804534a74abb6fc9f6f3127f14c9c338 libpng-1.6.37.tar.gz
-226adcb3a8c60f2267fe2976ab531329ae43c2603dab4d0cf8f16217d64069936b879f3d6516b75d259c47d6f5c5b1f24f887602206c8e46abde0fb7f5c7946b libpng-1.6.37-apng.patch.gz
-e3fae918f14bc34e7c126892f69527c6e1b4d72593835ece839d9a28cff55a886b2030f877cf9e29b2c97abf2e47bbb5ba54584828edd2a841c2556f330b9c7e libpng-fix-arm-neon.patch
-dbd581dacdc284ac9a6ea5a8d043478f17b9173d89d05acc1bcdc8fab7032437b5a21fd18a06c52df91d9cd4a2d8aee48f1a7bd1cb2e3f6cfd6f6a13d31c7823 dont-run-pngtest.patch"
+sha512sums="
+ac8831f28afcdf951001dff1b7a0c89cbd907a1e3ba3f21bc7bc98574b1bd7e0358ee6ac0d343b3f0a2083be730ecbd2ba8e94d0ee816f3ae58f4c664df63beb libpng-1.6.43.tar.gz
+a724f7de486920cb119818f7172fb589bc2c3c1cc1f81bb5c4da0609ab108ef9ef7406cf689a20bc4e8da69647847f550ed497b3fa99a10539e9a0abf492c053 libpng-1.6.43-apng.patch.gz
+0a5efa609bda4c2a38f5110b7287020a5f9dc81583f2b05a951d897a18ce62ea80350baf52daa3d02f20dff51bbc177b3af317ab7bbc09eb23a3c252600414a5 libpng-fix-arm-neon.patch
+"
diff --git a/main/libpng/dont-run-pngtest.patch b/main/libpng/dont-run-pngtest.patch
deleted file mode 100644
index 7ce5d67b75a..00000000000
--- a/main/libpng/dont-run-pngtest.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/Makefile.am b/Makefile.am
-index 4f621aa..3583c60 100644
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -59,7 +59,6 @@ pngcp_LDADD = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la
- # Generally these are single line shell scripts to run a test with a particular
- # set of parameters:
- TESTS =\
-- tests/pngtest\
- tests/pngtest-badpngs\
- tests/pngvalid-gamma-16-to-8 tests/pngvalid-gamma-alpha-mode\
- tests/pngvalid-gamma-background tests/pngvalid-gamma-expand16-alpha-mode\
diff --git a/main/libpng/libpng-fix-arm-neon.patch b/main/libpng/libpng-fix-arm-neon.patch
index 2cd3f18c28d..099083fd923 100644
--- a/main/libpng/libpng-fix-arm-neon.patch
+++ b/main/libpng/libpng-fix-arm-neon.patch
@@ -1,6 +1,8 @@
+diff --git a/configure.ac b/configure.ac
+index 7b6d5b9..d02e16d 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -364,17 +364,21 @@
+@@ -357,17 +357,21 @@ AC_ARG_ENABLE([arm-neon],
[case "$enableval" in
no|off)
# disable the default enabling on __ARM_NEON__ systems:
@@ -8,7 +10,7 @@
AC_DEFINE([PNG_ARM_NEON_OPT], [0],
[Disable ARM Neon optimizations])
# Prevent inclusion of the assembler files below:
- enable_arm_neon=no;;
+ enable_arm_neon=no ;;
check)
+ AC_DEFINE([PNG_ARM_NEON], [], [ARM NEON support])
AC_DEFINE([PNG_ARM_NEON_CHECK_SUPPORTED], [],
@@ -22,6 +24,8 @@
AC_DEFINE([PNG_ARM_NEON_OPT], [2],
[Enable ARM Neon optimizations])
AC_MSG_WARN([--enable-arm-neon: please specify 'check' or 'api', if]
+diff --git a/pngpriv.h b/pngpriv.h
+index 2e426cf..fb521cf 100644
--- a/pngpriv.h
+++ b/pngpriv.h
@@ -127,7 +127,7 @@
diff --git a/main/libpri/APKBUILD b/main/libpri/APKBUILD
deleted file mode 100644
index 6bc9d153816..00000000000
--- a/main/libpri/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Timo Teras <timo.teras@iki.fi>
-# Maintainer: Timo Teras <timo.teras@iki.fi>
-pkgname=libpri
-pkgver=1.6.0
-pkgrel=1
-pkgdesc="Primary Rate ISDN (PRI) library"
-options="!check" # No testsuite
-url="https://github.com/asterisk/libpri"
-arch="all"
-license="GPL-2.0-only"
-makedepends="dahdi-linux-dev dahdi-tools-dev"
-subpackages="$pkgname-dev"
-source="http://downloads.digium.com/pub/telephony/libpri/releases/libpri-$pkgver.tar.gz"
-
-prepare() {
- default_prepare
- sed -e 's,^#include <sys/signal.h>$,#include <signal.h>,g' \
- -i pritest.c testprilib.c
- sed -e 's|-Werror|-Wno-error|g' -i Makefile
-}
-
-build() {
- make LDCONFIG="echo"
-}
-
-package() {
- make LDCONFIG="echo" INSTALL_PREFIX="$pkgdir" install
- rm -f "$pkgdir"/usr/lib/*.a
-}
-
-sha512sums="3eb876477cdd27c88f274e4a2e35a67f660b8d8eed140e56c40769982a58f1cdd4e5be352f8f220dc100eedf1ad09286c578430a52d9abe326440c8cbf517fa5 libpri-1.6.0.tar.gz"
diff --git a/main/libpsl/APKBUILD b/main/libpsl/APKBUILD
new file mode 100644
index 00000000000..cb82a796256
--- /dev/null
+++ b/main/libpsl/APKBUILD
@@ -0,0 +1,44 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=libpsl
+pkgver=0.21.5
+pkgrel=1
+pkgdesc="C library for the Publix Suffix List"
+url="https://rockdaboot.github.io/libpsl"
+arch="all"
+license="MIT"
+depends_dev="$pkgname-utils=$pkgver-r$pkgrel"
+makedepends="python3 libidn2-dev libunistring-dev meson"
+subpackages="$pkgname-static $pkgname-utils $pkgname-dev $pkgname-doc"
+source="https://github.com/rockdaboot/libpsl/releases/download/$pkgver/libpsl-$pkgver.tar.gz"
+
+build() {
+ # -Db_lto=true does not work when cross-compiling
+ if [ "$CBUILD" != "$CHOST" ];then
+ _b_lto_configure="-Db_lto=false"
+ else
+ _b_lto_configure="-Db_lto=true"
+ fi
+ abuild-meson \
+ --default-library=both \
+ $_b_lto_configure \
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+}
+
+utils() {
+ pkgdesc="$pkgdesc (utils)"
+
+ amove usr/bin
+}
+
+sha512sums="
+c14d575cecc0f1693894dd79565b6b9220084ddfa43b908a1cefe16d147cdd5ec47796eb0c2135e2f829a951abaf39d8a371ab5c1352f57b36e610e25adf91f5 libpsl-0.21.5.tar.gz
+"
diff --git a/main/libpthread-stubs/APKBUILD b/main/libpthread-stubs/APKBUILD
deleted file mode 100644
index f3654f7a86d..00000000000
--- a/main/libpthread-stubs/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=libpthread-stubs
-pkgver=0.4
-pkgrel=0
-pkgdesc="Pthread functions stubs for platforms missing them"
-url="https://cgit.freedesktop.org/xcb/pthread-stubs"
-arch="all"
-license="X11"
-options="!check !dbg" # no tests
-source="https://xcb.freedesktop.org/dist/libpthread-stubs-$pkgver.tar.bz2"
-builddir="$srcdir/$pkgname-$pkgver"
-
-#prepare() {
-# default_prepare
-#
-# cd "$builddir"
-# update_config_sub
-#}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="
-0fec563f3833b84311b32cb13a4fd9832aeb0204c65b1541bf453d5d35693b2267c3cee656e00a4b8533b07a8f6320ca5c3672dcf8ab047cdac8628154c08954 libpthread-stubs-0.4.tar.bz2
-"
diff --git a/main/librelp/APKBUILD b/main/librelp/APKBUILD
index 6b36b542c1a..8dda5c4009d 100644
--- a/main/librelp/APKBUILD
+++ b/main/librelp/APKBUILD
@@ -1,30 +1,47 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=librelp
-pkgver=1.10.0
-pkgrel=0
+pkgver=1.11.0
+pkgrel=2
pkgdesc="The Reliable Event Logging Protocol library"
url="https://www.rsyslog.com"
arch="all"
license="GPL-3.0-or-later"
-makedepends="gnutls-dev openssl1.1-compat-dev"
+makedepends="gnutls-dev openssl-dev>3"
+checkdepends="bash coreutils"
subpackages="$pkgname-static $pkgname-dev"
-source="https://download.rsyslog.com/librelp/librelp-$pkgver.tar.gz"
-options="!check" # XXX: all tests fail, don't know why
+source="https://download.rsyslog.com/librelp/librelp-$pkgver.tar.gz
+ implicit-decl.patch
+ "
+options="!check" # XXX: some fail in CI, don't know why
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
- --mandir=/usr/share/man
+ --mandir=/usr/share/man \
+ --enable-valgrind=no
make
}
+check() {
+ make -j1 check || {
+ cat tests/test-suite.log
+ return 1
+ }
+}
+
package() {
make DESTDIR="$pkgdir" install
}
sha512sums="
-a38840231902bec034edb497166deded7577c989e4f735e406c8488384972925de1ca6132b3080472f7919d2439559c8774c02a49c356e90ad791dfbba2a4865 librelp-1.10.0.tar.gz
+e93cbc12fb6e596762c351cdfa3293fea89dd8cf90de4f890771216b56c3f66e3578fefea447d4ca9f754f146712481e7bab9a831f16fcf0cd15b10d475925bc librelp-1.11.0.tar.gz
+706447c06fe5a9d5d2f55093c692142884bd6802eb3be51214c356c00d210681d5ce2d33485e6f22edd2bb8113cf63318880cbfca193ea686626e5c23eb941a6 implicit-decl.patch
"
diff --git a/main/librelp/implicit-decl.patch b/main/librelp/implicit-decl.patch
new file mode 100644
index 00000000000..413fc849630
--- /dev/null
+++ b/main/librelp/implicit-decl.patch
@@ -0,0 +1,12 @@
+diff --git a/tests/receive.c b/tests/receive.c
+index f376cb4..c2a6137 100644
+--- a/tests/receive.c
++++ b/tests/receive.c
+@@ -31,6 +31,7 @@
+ #endif
+ #include <string.h>
+ #include <limits.h>
++#include <sys/select.h>
+ #include <errno.h>
+ #include <signal.h>
+ #include "librelp.h"
diff --git a/main/libresample/APKBUILD b/main/libresample/APKBUILD
index 1bfe1a18149..8581ec7f9bf 100644
--- a/main/libresample/APKBUILD
+++ b/main/libresample/APKBUILD
@@ -2,18 +2,18 @@
# Maintainer:
pkgname=libresample
pkgver=0.1.3
-pkgrel=2
+pkgrel=3
pkgdesc="real-time library for sampling rate conversion"
url="https://ccrma.stanford.edu/~jos/resample/Free_Resampling_Software.html"
arch="all"
-license="LGPL-2.1-only"
+license="LGPL-2.1-or-later"
source="https://ccrma.stanford.edu/~jos/gz/libresample-$pkgver.tgz"
+options="!check"
# append extra dependencies to -dev subpackage
# remove if not used.
# depends_dev="somepackage-dev"
-
build() {
./configure \
--build=$CBUILD \
diff --git a/main/libretls/APKBUILD b/main/libretls/APKBUILD
index aeb80aab586..8a8d475f297 100644
--- a/main/libretls/APKBUILD
+++ b/main/libretls/APKBUILD
@@ -1,17 +1,17 @@
# Contributor: TBK <alpine@jjtc.eu>
# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
pkgname=libretls
-pkgver=3.5.2
-pkgrel=0
+pkgver=3.7.0
+pkgrel=2
pkgdesc="port of libtls from libressl to openssl"
arch="all"
url="https://git.causal.agency/libretls/"
license="ISC AND ( BSD-3-Clause OR MIT )"
depends="ca-certificates-bundle"
-depends_dev="openssl1.1-compat-dev"
+depends_dev="openssl-dev>3"
base_deps="autoconf automake libtool"
makedepends="$depends_dev $base_deps"
-makedepends_host="openssl1.1-compat-dev"
+makedepends_host="openssl-dev>3"
makedepends_build="$base_deps"
subpackages="$pkgname-doc $pkgname-static $pkgname-dev"
@@ -24,6 +24,7 @@ source="https://causal.agency/libretls/libretls-$pkgver.tar.gz
prepare() {
default_prepare
+ update_config_sub
# Override the LIBTLS_VERSION to be 2:*:*, as libtls-standalone was 1:0:0.
# also make sure the LIBTLS version is different from upstream libressl
@@ -58,6 +59,6 @@ check() {
}
sha512sums="
-62eed971cbacb4a50e5ebdad1ea1d57dd3b4f7520634393faf1fc141ef63b6e7d50acbe49747c956fca6b9f2dec8a79ab724df6e08a77858a1624b5a6e3cbe57 libretls-3.5.2.tar.gz
+18987d09ee804883e2c3cfae1209494b7020d976cc7137ba39540c18e0dc23d25034a46c6c64955201b425ca981e03cbe629f9ff979fd4a72d3dcfbd51efdf84 libretls-3.7.0.tar.gz
71d36fe25c95a0a45497e3f699b01dddcaae9053dd1b1e2419df94272c47024cf6516c51c902129201061601b04a72551904b15a332a4cf53358983b5db73618 test_program.c
"
diff --git a/main/librsync/APKBUILD b/main/librsync/APKBUILD
index 8f8d38c926b..c2c4958df75 100644
--- a/main/librsync/APKBUILD
+++ b/main/librsync/APKBUILD
@@ -1,26 +1,29 @@
# Contributor: Jeremy Thomerson <jeremy@thomersonfamily.com>
# Maintainer: Jeremy Thomerson <jeremy@thomersonfamily.com>
pkgname=librsync
-pkgver=2.3.2
-pkgrel=2
+pkgver=2.3.4
+pkgrel=1
pkgdesc="librsync implements the rolling-checksum algorithm of rsync"
url="https://github.com/librsync/librsync"
arch="all"
license="LGPL-2.1-or-later"
-makedepends="cmake popt-dev bzip2-dev zlib-dev perl samurai"
+makedepends="
+ bzip2-dev
+ cmake
+ perl
+ popt-dev
+ samurai
+ zlib-dev
+ "
subpackages="$pkgname-dev $pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/librsync/librsync/archive/v$pkgver.tar.gz
"
-prepare() {
- default_prepare
- # don't invoke bash in test scripts
- sed -i 's,#! /bin/bash,#!/bin/sh,' tests/rdiff_bad_option.sh
-}
-
build() {
+ CFLAGS="$CFLAGS -O2 -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto" \
cmake -B build -G Ninja \
- -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_LIBDIR=lib \
-DCMAKE_INSTALL_PREFIX=/usr
cmake --build build
@@ -28,15 +31,13 @@ build() {
check() {
cd build
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest -j${JOBS:-2}
}
package() {
DESTDIR="$pkgdir" cmake --install build
- install -D -m644 doc/rdiff.1 "$pkgdir/usr/share/man/man1/rdiff.1"
- install -D -m644 doc/librsync.3 "$pkgdir/usr/share/man/man3/librsync.3"
}
sha512sums="
-77d826dbaf02061b759d876a6b537238bad40379a08e4494ebfd3e380b2eb921b7b060bc570330aeac9424ef1a9d521f449d559c9ffa3be24acdef4ad530fe90 librsync-2.3.2.tar.gz
+ac01413b875e774db9fec3888210a4b9a5f3d32c081f1ed5f2cf9dc29cfae6ecedf6eac42062631e6dcf188853313fce4520430549768a0f68993419b07e58d9 librsync-2.3.4.tar.gz
"
diff --git a/main/librtlsdr/APKBUILD b/main/librtlsdr/APKBUILD
index b927199d040..071b4e49453 100644
--- a/main/librtlsdr/APKBUILD
+++ b/main/librtlsdr/APKBUILD
@@ -1,17 +1,21 @@
# Contributor: Jared Szechy <jared.szechy@gmail.com>
-# Maintainer: Jared Szechy <jared.szechy@gmail.com>
+# Maintainer: omni <omni+alpine@hack.org>
pkgname=librtlsdr
-pkgver=0.6.0
-pkgrel=3
+_realpkgname=rtl-sdr
+pkgver=2.0.1
+pkgrel=1
pkgdesc="Software defined radio receiver for Realtek RTL2832U"
url="https://osmocom.org/projects/sdr/wiki/rtl-sdr"
arch="all"
-license="GPL-2.0"
+license="GPL-2.0-or-later"
options="!check" # no tests
depends_dev="libusb-dev"
makedepends="$depends_dev cmake samurai"
-subpackages="$pkgname-dev rtl-sdr:tools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/steve-m/librtlsdr/archive/$pkgver.tar.gz"
+subpackages="$pkgname-dev rtl-sdr:tools $pkgname-doc"
+source="$_realpkgname-$pkgver.tar.gz::https://gitea.osmocom.org/sdr/rtl-sdr/archive/v$pkgver.tar.gz
+ correct_udev_rules_path.patch
+ "
+builddir=$srcdir/$_realpkgname
build() {
cmake -B build -G Ninja \
@@ -19,19 +23,27 @@ build() {
-DCMAKE_INSTALL_PREFIX:PATH=/usr \
-DDETACH_KERNEL_DRIVER=ON \
-DINSTALL_UDEV_RULES=ON \
- -Wno-dev \
- .
+ -Wno-dev
cmake --build build
}
package() {
DESTDIR="$pkgdir" cmake --install build
+ mkdir -p $pkgdir/usr/share/man1/
+ cp $builddir/debian/*1 $pkgdir/usr/share/man1/
}
tools() {
pkgdesc="Software defined radio receiver for Realtek RTL2832U (tools)"
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+ amove usr/bin
}
-sha512sums="a08356a08672f03d86adb662e28923e7998b78c0f49432dc1b1e3844976158c467242e0c5eabf206fd257bdebcf91cd2767dabf13d2ef475f2f3e1d82e23ed75 librtlsdr-0.6.0.tar.gz"
+doc() {
+ pkgdesc="Software defined radio receiver for Realtek RTL2832U (doc)"
+ amove usr/share/
+}
+
+sha512sums="
+ae481780ed6d084c8fa367c19c1d87007e4d4bf91f183e8e243924aa0369b386f7628f806af74f048978591549c7aeb40e6a5036840ddf52d7008f69edce9271 rtl-sdr-2.0.1.tar.gz
+8768be0e24cd5502f304363728caf65df10ae88806a2fffcde80acb4aa844d46b8433b5cb7cb5a658f7dece564e8c749f32a0a9636a49adb5e9d71530826b0f0 correct_udev_rules_path.patch
+"
diff --git a/main/librtlsdr/correct_udev_rules_path.patch b/main/librtlsdr/correct_udev_rules_path.patch
new file mode 100644
index 00000000000..10b477808bf
--- /dev/null
+++ b/main/librtlsdr/correct_udev_rules_path.patch
@@ -0,0 +1,11 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -111,7 +111,7 @@ option(INSTALL_UDEV_RULES "Install udev
+ if (INSTALL_UDEV_RULES)
+ install (
+ FILES rtl-sdr.rules
+- DESTINATION "/etc/udev/rules.d"
++ DESTINATION "/usr/lib/udev/rules.d"
+ COMPONENT "udev"
+ )
+ else (INSTALL_UDEV_RULES)
diff --git a/main/libsamplerate/APKBUILD b/main/libsamplerate/APKBUILD
index 48037a85e2b..2fb0f62a236 100644
--- a/main/libsamplerate/APKBUILD
+++ b/main/libsamplerate/APKBUILD
@@ -1,12 +1,12 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libsamplerate
pkgver=0.2.2
-pkgrel=0
+pkgrel=3
pkgdesc="Secret Rabbit Code - aka Sample Rate Converter for audio"
url="http://www.mega-nerd.com/SRC/index.html"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
arch="all"
-license="BSD-2-Clause-NetBSD"
+license="BSD-2-Clause"
makedepends="fftw-dev libsndfile-dev linux-headers"
source="https://github.com/libsndfile/libsamplerate/releases/download/$pkgver/libsamplerate-$pkgver.tar.xz"
diff --git a/main/libseccomp/APKBUILD b/main/libseccomp/APKBUILD
index 65a91730847..43b39a4549a 100644
--- a/main/libseccomp/APKBUILD
+++ b/main/libseccomp/APKBUILD
@@ -2,19 +2,18 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Contributor: Dan Williams <dan@ma.ssive.co>
pkgname=libseccomp
-pkgver=2.5.2
+pkgver=2.5.5
pkgrel=1
pkgdesc="interface to the Linux Kernel's syscall filtering mechanism"
url="https://github.com/seccomp/libseccomp"
arch="all"
license="LGPL-2.1-or-later"
depends_dev="linux-headers"
-makedepends="$depends_dev gperf cython python3 python3-dev"
+makedepends="$depends_dev gperf cython python3 python3-dev py3-setuptools"
checkdepends="bash"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc py3-$pkgname:py3"
source="https://github.com/seccomp/libseccomp/releases/download/v$pkgver/libseccomp-$pkgver.tar.gz
remove-redefinition-prctl.patch
- tests-11-basic-errors-support-older-kernels.patch
"
case "$CARCH" in
@@ -64,7 +63,6 @@ py3() {
}
sha512sums="
-b2a95152cb274d6b35753596fd825406dae20c4a48b2f4076f835f977ecf324de38a3fe02e789dc20b49ecf6b4eb67f03e7733e92d40f5e20f25874307f1c2ac libseccomp-2.5.2.tar.gz
+f630e7a7e53a21b7ccb4d3e7b37616b89aeceba916677c8e3032830411d77a14c2d74dcf594cd193b1acc11f52595072e28316dc44300e54083d5d7b314a38da libseccomp-2.5.5.tar.gz
f2c31dcafdc9a1ad78e32e76b75e1c1603071eaa3f979e1f2483b879a34ad07e0a4ef3642196a695415cdf81e1ed2bf325175872fb4e203ef9d0e668c287493f remove-redefinition-prctl.patch
-1b80fe8db16aead6f00ac30687b496b01cab16b60b2177f5992df7ed86bef6578de3ead74f2860b1ba951f62d6ba83aefd377d8ec2bc2f771e71ddafbe4a4b56 tests-11-basic-errors-support-older-kernels.patch
"
diff --git a/main/libseccomp/tests-11-basic-errors-support-older-kernels.patch b/main/libseccomp/tests-11-basic-errors-support-older-kernels.patch
deleted file mode 100644
index 2e80c8e8527..00000000000
--- a/main/libseccomp/tests-11-basic-errors-support-older-kernels.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-Url: https://github.com/seccomp/libseccomp/issues/338
-From 5532444587fa5f33a43179ca5cc710f1bb05f51f Mon Sep 17 00:00:00 2001
-From: Paul Moore <paul@paul-moore.com>
-Date: Mon, 18 Oct 2021 09:42:02 -0600
-Subject: [PATCH] tests: fix 11-basic-basic_errors on old kernels (API level <
- 5)
-
-Reported-by: Johannes Schauer Marin Rodrigues <josch@mister-muffin.de>
-Reported-by: Po-Hsu Lin <po-hsu.lin@canonical.com>
-Signed-off-by: Paul Moore <paul@paul-moore.com>
-Signed-off-by: Tom Hromatka <tom.hromatka@oracle.com>
----
- tests/11-basic-basic_errors.c | 72 +++++++++++++++++++----------------
- 1 file changed, 39 insertions(+), 33 deletions(-)
-
-diff --git a/tests/11-basic-basic_errors.c b/tests/11-basic-basic_errors.c
-index 785e094e..dcfa7c28 100644
---- a/tests/11-basic-basic_errors.c
-+++ b/tests/11-basic-basic_errors.c
-@@ -29,9 +29,13 @@ int main(int argc, char *argv[])
- int rc;
- scmp_filter_ctx ctx;
- uint32_t attr;
-+ unsigned int api;
- struct seccomp_notif *req = NULL;
- struct seccomp_notif_resp *resp = NULL;
-
-+ /* get the api level */
-+ api = seccomp_api_get();
-+
- /* seccomp_init errors */
- ctx = seccomp_init(SCMP_ACT_ALLOW + 1);
- if (ctx != NULL)
-@@ -234,39 +238,41 @@ int main(int argc, char *argv[])
- ctx = NULL;
-
- /* seccomp notify errors */
-- ctx = seccomp_init(SCMP_ACT_ALLOW);
-- if (ctx == NULL)
-- return -1;
-- rc = seccomp_notify_alloc(NULL, NULL);
-- if (rc != 0)
-- return -1;
-- rc = seccomp_notify_alloc(&req, NULL);
-- if (rc != 0)
-- return -1;
-- rc = seccomp_notify_alloc(NULL, &resp);
-- if (rc != 0)
-- return -1;
-- seccomp_notify_free(NULL, NULL);
-- seccomp_notify_free(req, resp);
-- req = NULL;
-- resp = NULL;
-- rc = seccomp_notify_receive(-1, NULL);
-- if (rc == 0)
-- return -1;
-- rc = seccomp_notify_respond(-1, NULL);
-- if (rc == 0)
-- return -1;
-- rc = seccomp_notify_id_valid(-1, 0);
-- if (rc == 0)
-- return -1;
-- rc = seccomp_notify_fd(NULL);
-- if (rc == 0)
-- return -1;
-- rc = seccomp_notify_fd(ctx);
-- if (rc == 0)
-- return -1;
-- seccomp_release(ctx);
-- ctx = NULL;
-+ if (api >= 5) {
-+ ctx = seccomp_init(SCMP_ACT_ALLOW);
-+ if (ctx == NULL)
-+ return -1;
-+ rc = seccomp_notify_alloc(NULL, NULL);
-+ if (rc != 0)
-+ return -1;
-+ rc = seccomp_notify_alloc(&req, NULL);
-+ if (rc != 0)
-+ return -1;
-+ rc = seccomp_notify_alloc(NULL, &resp);
-+ if (rc != 0)
-+ return -1;
-+ seccomp_notify_free(NULL, NULL);
-+ seccomp_notify_free(req, resp);
-+ req = NULL;
-+ resp = NULL;
-+ rc = seccomp_notify_receive(-1, NULL);
-+ if (rc == 0)
-+ return -1;
-+ rc = seccomp_notify_respond(-1, NULL);
-+ if (rc == 0)
-+ return -1;
-+ rc = seccomp_notify_id_valid(-1, 0);
-+ if (rc == 0)
-+ return -1;
-+ rc = seccomp_notify_fd(NULL);
-+ if (rc == 0)
-+ return -1;
-+ rc = seccomp_notify_fd(ctx);
-+ if (rc == 0)
-+ return -1;
-+ seccomp_release(ctx);
-+ ctx = NULL;
-+ }
-
- return 0;
- }
diff --git a/main/libsecret/APKBUILD b/main/libsecret/APKBUILD
index e7752a4711c..4d5902fa2e8 100644
--- a/main/libsecret/APKBUILD
+++ b/main/libsecret/APKBUILD
@@ -1,29 +1,29 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libsecret
-pkgver=0.20.5
+pkgver=0.21.4
pkgrel=0
pkgdesc="Library for storing and retrieving passwords and other secrets"
url="https://wiki.gnome.org/Projects/Libsecret"
arch="all"
-license="LGPL-2.0-or-later"
-makedepends="glib-dev intltool libxslt-dev docbook-xsl libgcrypt-dev
+license="LGPL-2.1-or-later"
+makedepends="glib-dev libxslt-dev docbook-xsl libgcrypt-dev
gobject-introspection-dev vala meson"
checkdepends="py3-dbus py3-gobject3 xvfb-run dbus-x11"
options="!check" # gjs is in community now
subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-lang"
-source="https://download.gnome.org/sources/libsecret/${pkgver%.*}/libsecret-$pkgver.tar.xz"
+source="https://gitlab.gnome.org/GNOME/libsecret/-/archive/$pkgver/libsecret-$pkgver.tar.bz2"
build() {
abuild-meson \
--default-library=both \
-Dgtk_doc=false \
output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
check() {
- xvfb-run meson test --no-rebuild -v -C output
+ xvfb-run meson test --no-rebuild --print-errorlogs -C output
}
package() {
@@ -31,5 +31,5 @@ package() {
}
sha512sums="
-61ca248aafd265e1f31d56c9084c68d880ebf03660ace3d4a6c6622ab306b56e921ac24647b6a60633bfa99c8a0407d4ae1aa6148511f289bf5ce2025b72692a libsecret-0.20.5.tar.xz
+6618e0096ae2e500071f997957085080e2c0c8c8e6ed7927f13a6ee51c70b91b61b46706982be2e2254e6af3f803461aaf5c02a62651b6a5eb8d93014d3dc0ad libsecret-0.21.4.tar.bz2
"
diff --git a/main/libshout/APKBUILD b/main/libshout/APKBUILD
index cb8c9b56e87..733684f00fc 100644
--- a/main/libshout/APKBUILD
+++ b/main/libshout/APKBUILD
@@ -2,14 +2,19 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=libshout
pkgver=2.4.6
-pkgrel=0
+pkgrel=3
pkgdesc="Library for accessing a shoutcast/icecast server"
url="https://icecast.org/"
arch="all"
license="GPL-2.0-only"
-makedepends="speex-dev libtheora-dev libvorbis-dev openssl1.1-compat-dev"
+makedepends="speex-dev libtheora-dev libvorbis-dev openssl-dev>3"
subpackages="$pkgname-static $pkgname-doc $pkgname-dev"
-source="http://downloads.xiph.org/releases/libshout/libshout-$pkgver.tar.gz"
+source="https://downloads.xiph.org/releases/libshout/libshout-$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
./configure \
diff --git a/main/libsm/APKBUILD b/main/libsm/APKBUILD
index 35f9eebfd46..0a2b6e65574 100644
--- a/main/libsm/APKBUILD
+++ b/main/libsm/APKBUILD
@@ -1,21 +1,18 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libsm
-pkgver=1.2.3
-pkgrel=0
+pkgver=1.2.4
+pkgrel=4
pkgdesc="X11 Session Management library"
url="https://xorg.freedesktop.org/"
arch="all"
license="MIT"
-depends=
subpackages="$pkgname-dev $pkgname-doc"
makedepends="libice-dev xorgproto xtrans util-linux-dev util-macros xmlto"
checkdepends="check-dev"
-source="https://www.x.org/releases/individual/lib/libSM-$pkgver.tar.bz2"
-
+source="https://www.x.org/releases/individual/lib/libSM-$pkgver.tar.xz"
builddir="$srcdir"/libSM-$pkgver
-build () {
- cd "$builddir"
+build() {
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -29,14 +26,13 @@ build () {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
- install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
}
-sha512sums="74c42e27029db78475e62025b4711dbac5e22d2f8e8a24be98a1c31b03c0fc4afe859928f851800ea0b76854f12147900dc4f27bbfd3d8ea45daaaf24b70a903 libSM-1.2.3.tar.bz2"
+sha512sums="
+7f1d41b7b6c5dd456c49ccad7740c3ba9791a2793fa50fd94814a4164ce2e20c4a0a0ad42a87708e494ed5c23f611be6d3ccd9ef1e9add6d46ac545e2b0f6f86 libSM-1.2.4.tar.xz
+"
diff --git a/main/libsndfile/APKBUILD b/main/libsndfile/APKBUILD
index 8085f1f9e01..a3d4cd3a621 100644
--- a/main/libsndfile/APKBUILD
+++ b/main/libsndfile/APKBUILD
@@ -1,16 +1,25 @@
# Contributor: Sergei Lukin <sergej.lukin@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libsndfile
-pkgver=1.1.0
-pkgrel=1
+pkgver=1.2.2
+pkgrel=0
pkgdesc="C library for reading and writing files containing sampled sound"
url="https://libsndfile.github.io/libsndfile/"
arch="all"
-license="LGPL-2.0-or-later"
+license="LGPL-2.1-or-later"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
-depends_dev="libogg-dev opus-dev"
-makedepends="alsa-lib-dev cmake flac-dev libvorbis-dev linux-headers python3 samurai
- $depends_dev"
+depends_dev="opus-dev"
+makedepends="
+ $depends_dev
+ alsa-lib-dev
+ cmake
+ flac-dev
+ libogg-dev
+ libvorbis-dev
+ linux-headers
+ python3
+ samurai
+ "
source="https://github.com/libsndfile/libsndfile/releases/download/$pkgver/libsndfile-$pkgver.tar.xz"
# arm: sporadic testsuite failures
@@ -47,6 +56,7 @@ esac
# - CVE-2017-8365
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
cmake -B build-shared -G Ninja \
-DBUILD_SHARED_LIBS=ON \
-DCMAKE_BUILD_TYPE=MinSizeRel \
@@ -64,7 +74,7 @@ build() {
check() {
cd build-static
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest -E write_read_test_sd2
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest
}
package() {
@@ -73,5 +83,5 @@ package() {
}
sha512sums="
-d01696a8a88a4444e5eb91a137cf7b26b55b12c1fe3b648653f7e78674bbdf61870066216c9ff2f6a1e63bdf7b558af9a759480cf6523b607d29347b12762006 libsndfile-1.1.0.tar.xz
+a6e3ea3ac5d91befaa99f6a31a3fac44e7b7c11f1de4698167317a461d5a19a2651d47486a920b34400f18367b4f6173bf0c1c9ba80eb682cece1b5beee352a0 libsndfile-1.2.2.tar.xz
"
diff --git a/main/libsodium/APKBUILD b/main/libsodium/APKBUILD
index 45d2bfaf7a4..b566bec53bd 100644
--- a/main/libsodium/APKBUILD
+++ b/main/libsodium/APKBUILD
@@ -2,14 +2,15 @@
# Contributor: Stuart Cardall <developer@it-offshore.co.uk>
# Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
pkgname=libsodium
-pkgver=1.0.18
+pkgver=1.0.19
pkgrel=0
pkgdesc="P(ortable|ackageable) NaCl-based crypto library"
url="https://github.com/jedisct1/libsodium"
arch="all"
license="ISC"
subpackages="$pkgname-static $pkgname-dev"
-source="https://download.libsodium.org/$pkgname/releases/$pkgname-$pkgver.tar.gz"
+source="https://github.com/jedisct1/libsodium/releases/download/$pkgver-RELEASE/libsodium-$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-stable"
build() {
./configure \
@@ -23,15 +24,10 @@ check() {
make check
}
-static() {
- pkgdesc="libsodium static libraries"
-
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib/
-}
-
package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="17e8638e46d8f6f7d024fe5559eccf2b8baf23e143fadd472a7d29d228b186d86686a5e6920385fe2020729119a5f12f989c3a782afbd05a8db4819bb18666ef libsodium-1.0.18.tar.gz"
+sha512sums="
+8e9b6d796f6330e00921ce37f1b43545966094250938626ae227deef5fd1279f2fc18b5cd55e23484732a27df4d919cf0d2f07b9c2f1aa0c0ef689e668b0d439 libsodium-1.0.19.tar.gz
+"
diff --git a/main/libspf2/APKBUILD b/main/libspf2/APKBUILD
index f1effcd750f..9c5e7122363 100644
--- a/main/libspf2/APKBUILD
+++ b/main/libspf2/APKBUILD
@@ -4,7 +4,7 @@
pkgname=libspf2
pkgver=1.2.11
_commit=8131fe140704eaae695e76b5cd09e39bd1dd220b
-pkgrel=0
+pkgrel=3
pkgdesc="Sender Policy Framework library, a part of the SPF/SRS protocol pair."
url="https://www.libspf2.org/"
arch="all"
@@ -13,14 +13,18 @@ subpackages="$pkgname-dev $pkgname-tools"
makedepends="autoconf automake libtool"
options="!check" # no test suite
source="$pkgname-$pkgver.tar.gz::https://github.com/shevek/libspf2/archive/$_commit.tar.gz
+ CVE-2023-42118.patch
00001.patch
00002.patch
netdb_success.patch
musl-res_close.patch
+ implicit.patch
"
builddir="$srcdir/$pkgname-$_commit"
# secfixes:
+# 1.2.11-r3:
+# - CVE-2023-42118
# 1.2.11-r0:
# - CVE-2021-33912
# - CVE-2021-33913
@@ -59,8 +63,10 @@ tools() {
sha512sums="
bbc8b053aa5dc960be7a31ee4d4385d9ed7f42a7c998a392626610de9a7dd9f95f16ad309990d0118f1eab3bed49189ed1be9c30d291c0ca54541677a968ceb3 libspf2-1.2.11.tar.gz
+9e17764f24de8147a27a41a5aeaf0554af6f434c04aa5ddea56fd4692f208c1c2576acd28ff06a2be6ff32945f5a441405b2ebb2f393c6a571e34723b023b1f5 CVE-2023-42118.patch
3b9bff9b5a5b95f6722f86a43373b0c84cbb79a4509cf0c73486612c0a1b33587bb0b42966b0d2e3a317e4d7a730091fa444bd1258afd06bb3553c4a96d3ee34 00001.patch
18ddfe106b652e2fb9e36a9f1743fc7cecf38530da65a06ac892b60d2c430aaad657f5653495950d4af4b9833826366b79e629937498e5ce7f6af716303221c4 00002.patch
033dd1e959004f7a1026fb1de73813e934560101e04897297e468918ee28e4d7d0f271d6f05d984db22dd43e097f6aa133df18d11419b085d89db89b120750c9 netdb_success.patch
4fb8a28a667d8fe54a48fa89230446b758c6d532866ee26e8b9ef3032f6e0993ec19a2cc2fb265d18d259e35de6fe66183763bbc69c424de70ad8fe0dbcf7a2f musl-res_close.patch
+1c17b099e8a3533c45881250a62c8bc52bd46572a7a36588ea9063dca09f7d431d870289abafe15ec5285354fb14301a4b6c866dd6ccd8da4488dd73cbdd7af2 implicit.patch
"
diff --git a/main/libspf2/CVE-2023-42118.patch b/main/libspf2/CVE-2023-42118.patch
new file mode 100644
index 00000000000..e13f3646da1
--- /dev/null
+++ b/main/libspf2/CVE-2023-42118.patch
@@ -0,0 +1,26 @@
+From c93823faef044150e1b232928d225ff5ff297e6c Mon Sep 17 00:00:00 2001
+From: Simon Arlott <sa.me.uk>
+Date: Sat, 30 Sep 2023 12:18:51 +0100
+Subject: [PATCH] Fix integer underflow
+
+---
+ src/libspf2/spf_compile.c | 6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+diff --git a/src/libspf2/spf_compile.c b/src/libspf2/spf_compile.c
+index b08ffe2..d401028 100644
+--- a/src/libspf2/spf_compile.c
++++ b/src/libspf2/spf_compile.c
+@@ -455,7 +455,11 @@ SPF_c_parse_var(SPF_response_t *spf_response, SPF_data_var_t *data,
+ /* Magic numbers for x/Nc in gdb. */ \
+ data->ds.__unused0 = 0xba; data->ds.__unused1 = 0xbe; \
+ dst = SPF_data_str( data ); \
+- ds_avail = _avail - sizeof(SPF_data_t); \
++ if ((_avail) < sizeof(SPF_data_t)) \
++ return SPF_response_add_error_ptr(spf_response, \
++ SPF_E_BIG_STRING, NULL, src, \
++ "Out of memory for string literal");\
++ ds_avail = (_avail) - sizeof(SPF_data_t); \
+ ds_len = 0; \
+ } while(0)
+
diff --git a/main/libspf2/implicit.patch b/main/libspf2/implicit.patch
new file mode 100644
index 00000000000..cf51f29022f
--- /dev/null
+++ b/main/libspf2/implicit.patch
@@ -0,0 +1,13 @@
+diff --git a/src/libspf2/spf_utils.c b/src/libspf2/spf_utils.c
+index 54878fa..49188dc 100644
+--- a/src/libspf2/spf_utils.c
++++ b/src/libspf2/spf_utils.c
+@@ -25,6 +25,8 @@
+ #include <memory.h>
+ #endif
+
++#include <string.h>
++
+
+
+ #include "spf.h"
diff --git a/main/libsrtp/APKBUILD b/main/libsrtp/APKBUILD
index 9a0101850ca..d68369ab983 100644
--- a/main/libsrtp/APKBUILD
+++ b/main/libsrtp/APKBUILD
@@ -1,14 +1,14 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libsrtp
-pkgver=2.4.2
-pkgrel=2
+pkgver=2.5.0
+pkgrel=1
pkgdesc="implementation of the Secure Real-time Transport Protocol (SRTP)"
url="https://github.com/cisco/libsrtp"
arch="all"
license="BSD-3-Clause"
-makedepends="doxygen libpcap-dev meson ninja openssl-dev"
-subpackages="$pkgname-static $pkgname-dev"
+makedepends="doxygen libpcap-dev meson openssl-dev"
+subpackages="$pkgname-dev"
source="$pkgname-$pkgver.tar.gz::https://github.com/cisco/libsrtp/archive/v$pkgver.tar.gz"
case "$CARCH" in
@@ -23,20 +23,13 @@ build() {
}
check() {
- meson test --no-rebuild -v -C builddir
+ meson test --no-rebuild --print-errorlogs -C builddir
}
package() {
DESTDIR="$pkgdir" meson install --no-rebuild -C builddir
}
-static() {
- depends=""
- pkgdesc="$pkgdesc (static library)"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$builddir"/builddir/*.a "$subpkgdir"/usr/lib
-}
-
sha512sums="
-6e4805e6d34b2050a6f68f629b0b42356b1d27f2cbaa6cc6166e56957609c3d9aa6b723dcc674e5c74180d122d27badd2f9496639ccb1e0c210b9e1f7949d0e2 libsrtp-2.4.2.tar.gz
+bd679ab65ccf22ca30fe867b9649a0b84cfa6fad6e22eb10f081141632f6dd56479a04d525b865f11fd46007303ca211065d9c170e4820d6ea7055403702340a libsrtp-2.5.0.tar.gz
"
diff --git a/main/libssh2/APKBUILD b/main/libssh2/APKBUILD
index 0089411ed27..ac3f82698ab 100644
--- a/main/libssh2/APKBUILD
+++ b/main/libssh2/APKBUILD
@@ -1,18 +1,21 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libssh2
-pkgver=1.10.0
+pkgver=1.11.0
pkgrel=2
pkgdesc="library for accessing ssh1/ssh2 protocol servers"
url="https://libssh2.org/"
arch="all"
license="BSD-3-Clause"
-makedepends_host="openssl1.1-compat-dev zlib-dev"
+makedepends_host="openssl-dev>3 zlib-dev"
+checkdepends="bash"
subpackages="$pkgname-dbg $pkgname-static $pkgname-dev $pkgname-doc"
-source="http://www.libssh2.org/download/libssh2-$pkgver.tar.gz
+source="https://www.libssh2.org/download/libssh2-$pkgver.tar.gz
+ add-strict-KEX-to-fix-CVE-2023-48795-Terrapin-Attack.patch
"
-options="!check" # FIXME: debug why integration test fails on builders but not rootbld
# secfixes:
+# 1.11.0-r1:
+# - CVE-2023-48795
# 1.9.0-r1:
# - CVE-2019-17498
# 1.9.0-r0:
@@ -28,9 +31,7 @@ options="!check" # FIXME: debug why integration test fails on builders but not r
# - CVE-2019-3862
# - CVE-2019-3863
-
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -40,28 +41,22 @@ build() {
--infodir=/usr/share/info \
--localstatedir=/var \
--with-crypto=openssl \
- --with-libssl-prefix=$CBUILDROOT/
+ --with-libssl-prefix=$CBUILDROOT/ \
+ --disable-docker-tests
make
}
check() {
- cd "$builddir"
- make check
+ # with --disable-docker-tests above only mansyntax.sh and test_simple are
+ # run, other tests require docker and a running sshd
+ make check VERBOSE=1
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
-static() {
- depends=""
- pkgdesc="$pkgdesc (static library)"
-
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib
-}
-
sha512sums="
-e064ee1089eb8e6cd5fa2617f4fd8ff56c2721c5476775a98bdb68c6c4ee4d05c706c3bb0eb479a27a8ec0b17a8a5ef43e1d028ad3f134519aa582d3981a3a30 libssh2-1.10.0.tar.gz
+ef85e152dc252bd9b1c05276972b9c22313f5d492743dde090235742746d67f634f2a419eff9162132e2274c8582113b75279b074e0c7b34b2526b92fd1a1e8e libssh2-1.11.0.tar.gz
+5a3fc886962032d4f0a244942c0db216bb108d57ac79f454ec05527e76a744689a5dc89d6d20b5abc2a0b75144d7c2eb95286f23190ecaf9bbb456fb14922125 add-strict-KEX-to-fix-CVE-2023-48795-Terrapin-Attack.patch
"
diff --git a/main/libssh2/add-strict-KEX-to-fix-CVE-2023-48795-Terrapin-Attack.patch b/main/libssh2/add-strict-KEX-to-fix-CVE-2023-48795-Terrapin-Attack.patch
new file mode 100644
index 00000000000..a651422bcd4
--- /dev/null
+++ b/main/libssh2/add-strict-KEX-to-fix-CVE-2023-48795-Terrapin-Attack.patch
@@ -0,0 +1,436 @@
+diff --git a/src/kex.c b/src/kex.c
+index 8e7b7f0af3..a7b301e157 100644
+--- a/src/kex.c
++++ b/src/kex.c
+@@ -3032,6 +3032,13 @@ kex_method_extension_negotiation = {
+ 0,
+ };
+
++static const LIBSSH2_KEX_METHOD
++kex_method_strict_client_extension = {
++ "kex-strict-c-v00@openssh.com",
++ NULL,
++ 0,
++};
++
+ static const LIBSSH2_KEX_METHOD *libssh2_kex_methods[] = {
+ #if LIBSSH2_ED25519
+ &kex_method_ssh_curve25519_sha256,
+@@ -3050,6 +3057,7 @@ static const LIBSSH2_KEX_METHOD *libssh2_kex_methods[] = {
+ &kex_method_diffie_helman_group1_sha1,
+ &kex_method_diffie_helman_group_exchange_sha1,
+ &kex_method_extension_negotiation,
++ &kex_method_strict_client_extension,
+ NULL
+ };
+
+@@ -3302,13 +3310,13 @@ static int kexinit(LIBSSH2_SESSION * session)
+ return 0;
+ }
+
+-/* kex_agree_instr
++/* _libssh2_kex_agree_instr
+ * Kex specific variant of strstr()
+ * Needle must be preceded by BOL or ',', and followed by ',' or EOL
+ */
+-static unsigned char *
+-kex_agree_instr(unsigned char *haystack, size_t haystack_len,
+- const unsigned char *needle, size_t needle_len)
++unsigned char *
++_libssh2_kex_agree_instr(unsigned char *haystack, size_t haystack_len,
++ const unsigned char *needle, size_t needle_len)
+ {
+ unsigned char *s;
+ unsigned char *end_haystack;
+@@ -3393,7 +3401,7 @@ static int kex_agree_hostkey(LIBSSH2_SESSION * session,
+ while(s && *s) {
+ unsigned char *p = (unsigned char *) strchr((char *) s, ',');
+ size_t method_len = (p ? (size_t)(p - s) : strlen((char *) s));
+- if(kex_agree_instr(hostkey, hostkey_len, s, method_len)) {
++ if(_libssh2_kex_agree_instr(hostkey, hostkey_len, s, method_len)) {
+ const LIBSSH2_HOSTKEY_METHOD *method =
+ (const LIBSSH2_HOSTKEY_METHOD *)
+ kex_get_method_by_name((char *) s, method_len,
+@@ -3427,9 +3435,9 @@ static int kex_agree_hostkey(LIBSSH2_SESSION * session,
+ }
+
+ while(hostkeyp && (*hostkeyp) && (*hostkeyp)->name) {
+- s = kex_agree_instr(hostkey, hostkey_len,
+- (unsigned char *) (*hostkeyp)->name,
+- strlen((*hostkeyp)->name));
++ s = _libssh2_kex_agree_instr(hostkey, hostkey_len,
++ (unsigned char *) (*hostkeyp)->name,
++ strlen((*hostkeyp)->name));
+ if(s) {
+ /* So far so good, but does it suit our purposes? (Encrypting vs
+ Signing) */
+@@ -3463,6 +3471,12 @@ static int kex_agree_kex_hostkey(LIBSSH2_SESSION * session, unsigned char *kex,
+ {
+ const LIBSSH2_KEX_METHOD **kexp = libssh2_kex_methods;
+ unsigned char *s;
++ const unsigned char *strict =
++ (unsigned char *)"kex-strict-s-v00@openssh.com";
++
++ if(_libssh2_kex_agree_instr(kex, kex_len, strict, 28)) {
++ session->kex_strict = 1;
++ }
+
+ if(session->kex_prefs) {
+ s = (unsigned char *) session->kex_prefs;
+@@ -3470,7 +3484,7 @@ static int kex_agree_kex_hostkey(LIBSSH2_SESSION * session, unsigned char *kex,
+ while(s && *s) {
+ unsigned char *q, *p = (unsigned char *) strchr((char *) s, ',');
+ size_t method_len = (p ? (size_t)(p - s) : strlen((char *) s));
+- q = kex_agree_instr(kex, kex_len, s, method_len);
++ q = _libssh2_kex_agree_instr(kex, kex_len, s, method_len);
+ if(q) {
+ const LIBSSH2_KEX_METHOD *method = (const LIBSSH2_KEX_METHOD *)
+ kex_get_method_by_name((char *) s, method_len,
+@@ -3504,9 +3518,9 @@ static int kex_agree_kex_hostkey(LIBSSH2_SESSION * session, unsigned char *kex,
+ }
+
+ while(*kexp && (*kexp)->name) {
+- s = kex_agree_instr(kex, kex_len,
+- (unsigned char *) (*kexp)->name,
+- strlen((*kexp)->name));
++ s = _libssh2_kex_agree_instr(kex, kex_len,
++ (unsigned char *) (*kexp)->name,
++ strlen((*kexp)->name));
+ if(s) {
+ /* We've agreed on a key exchange method,
+ * Can we agree on a hostkey that works with this kex?
+@@ -3550,7 +3564,7 @@ static int kex_agree_crypt(LIBSSH2_SESSION * session,
+ unsigned char *p = (unsigned char *) strchr((char *) s, ',');
+ size_t method_len = (p ? (size_t)(p - s) : strlen((char *) s));
+
+- if(kex_agree_instr(crypt, crypt_len, s, method_len)) {
++ if(_libssh2_kex_agree_instr(crypt, crypt_len, s, method_len)) {
+ const LIBSSH2_CRYPT_METHOD *method =
+ (const LIBSSH2_CRYPT_METHOD *)
+ kex_get_method_by_name((char *) s, method_len,
+@@ -3572,9 +3586,9 @@ static int kex_agree_crypt(LIBSSH2_SESSION * session,
+ }
+
+ while(*cryptp && (*cryptp)->name) {
+- s = kex_agree_instr(crypt, crypt_len,
+- (unsigned char *) (*cryptp)->name,
+- strlen((*cryptp)->name));
++ s = _libssh2_kex_agree_instr(crypt, crypt_len,
++ (unsigned char *) (*cryptp)->name,
++ strlen((*cryptp)->name));
+ if(s) {
+ endpoint->crypt = *cryptp;
+ return 0;
+@@ -3614,7 +3628,7 @@ static int kex_agree_mac(LIBSSH2_SESSION * session,
+ unsigned char *p = (unsigned char *) strchr((char *) s, ',');
+ size_t method_len = (p ? (size_t)(p - s) : strlen((char *) s));
+
+- if(kex_agree_instr(mac, mac_len, s, method_len)) {
++ if(_libssh2_kex_agree_instr(mac, mac_len, s, method_len)) {
+ const LIBSSH2_MAC_METHOD *method = (const LIBSSH2_MAC_METHOD *)
+ kex_get_method_by_name((char *) s, method_len,
+ (const LIBSSH2_COMMON_METHOD **)
+@@ -3635,8 +3649,9 @@ static int kex_agree_mac(LIBSSH2_SESSION * session,
+ }
+
+ while(*macp && (*macp)->name) {
+- s = kex_agree_instr(mac, mac_len, (unsigned char *) (*macp)->name,
+- strlen((*macp)->name));
++ s = _libssh2_kex_agree_instr(mac, mac_len,
++ (unsigned char *) (*macp)->name,
++ strlen((*macp)->name));
+ if(s) {
+ endpoint->mac = *macp;
+ return 0;
+@@ -3667,7 +3682,7 @@ static int kex_agree_comp(LIBSSH2_SESSION *session,
+ unsigned char *p = (unsigned char *) strchr((char *) s, ',');
+ size_t method_len = (p ? (size_t)(p - s) : strlen((char *) s));
+
+- if(kex_agree_instr(comp, comp_len, s, method_len)) {
++ if(_libssh2_kex_agree_instr(comp, comp_len, s, method_len)) {
+ const LIBSSH2_COMP_METHOD *method =
+ (const LIBSSH2_COMP_METHOD *)
+ kex_get_method_by_name((char *) s, method_len,
+@@ -3689,8 +3704,9 @@ static int kex_agree_comp(LIBSSH2_SESSION *session,
+ }
+
+ while(*compp && (*compp)->name) {
+- s = kex_agree_instr(comp, comp_len, (unsigned char *) (*compp)->name,
+- strlen((*compp)->name));
++ s = _libssh2_kex_agree_instr(comp, comp_len,
++ (unsigned char *) (*compp)->name,
++ strlen((*compp)->name));
+ if(s) {
+ endpoint->comp = *compp;
+ return 0;
+@@ -3871,6 +3887,7 @@ _libssh2_kex_exchange(LIBSSH2_SESSION * session, int reexchange,
+ session->local.kexinit = key_state->oldlocal;
+ session->local.kexinit_len = key_state->oldlocal_len;
+ key_state->state = libssh2_NB_state_idle;
++ session->state &= ~LIBSSH2_STATE_INITIAL_KEX;
+ session->state &= ~LIBSSH2_STATE_KEX_ACTIVE;
+ session->state &= ~LIBSSH2_STATE_EXCHANGING_KEYS;
+ return -1;
+@@ -3896,6 +3913,7 @@ _libssh2_kex_exchange(LIBSSH2_SESSION * session, int reexchange,
+ session->local.kexinit = key_state->oldlocal;
+ session->local.kexinit_len = key_state->oldlocal_len;
+ key_state->state = libssh2_NB_state_idle;
++ session->state &= ~LIBSSH2_STATE_INITIAL_KEX;
+ session->state &= ~LIBSSH2_STATE_KEX_ACTIVE;
+ session->state &= ~LIBSSH2_STATE_EXCHANGING_KEYS;
+ return -1;
+@@ -3944,6 +3962,7 @@ _libssh2_kex_exchange(LIBSSH2_SESSION * session, int reexchange,
+ session->remote.kexinit = NULL;
+ }
+
++ session->state &= ~LIBSSH2_STATE_INITIAL_KEX;
+ session->state &= ~LIBSSH2_STATE_KEX_ACTIVE;
+ session->state &= ~LIBSSH2_STATE_EXCHANGING_KEYS;
+
+diff --git a/src/libssh2_priv.h b/src/libssh2_priv.h
+index 7660366954..18d9ab2130 100644
+--- a/src/libssh2_priv.h
++++ b/src/libssh2_priv.h
+@@ -736,6 +736,9 @@ struct _LIBSSH2_SESSION
+ /* key signing algorithm preferences -- NULL yields server order */
+ char *sign_algo_prefs;
+
++ /* Whether to use the OpenSSH Strict KEX extension */
++ int kex_strict;
++
+ /* (remote as source of data -- packet_read ) */
+ libssh2_endpoint_data remote;
+
+@@ -908,6 +911,7 @@ struct _LIBSSH2_SESSION
+ int fullpacket_macstate;
+ size_t fullpacket_payload_len;
+ int fullpacket_packet_type;
++ uint32_t fullpacket_required_type;
+
+ /* State variables used in libssh2_sftp_init() */
+ libssh2_nonblocking_states sftpInit_state;
+@@ -948,10 +952,11 @@ struct _LIBSSH2_SESSION
+ };
+
+ /* session.state bits */
+-#define LIBSSH2_STATE_EXCHANGING_KEYS 0x00000001
+-#define LIBSSH2_STATE_NEWKEYS 0x00000002
+-#define LIBSSH2_STATE_AUTHENTICATED 0x00000004
+-#define LIBSSH2_STATE_KEX_ACTIVE 0x00000008
++#define LIBSSH2_STATE_INITIAL_KEX 0x00000001
++#define LIBSSH2_STATE_EXCHANGING_KEYS 0x00000002
++#define LIBSSH2_STATE_NEWKEYS 0x00000004
++#define LIBSSH2_STATE_AUTHENTICATED 0x00000008
++#define LIBSSH2_STATE_KEX_ACTIVE 0x00000010
+
+ /* session.flag helpers */
+ #ifdef MSG_NOSIGNAL
+@@ -1182,6 +1187,11 @@ ssize_t _libssh2_send(libssh2_socket_t socket, const void *buffer,
+ int _libssh2_kex_exchange(LIBSSH2_SESSION * session, int reexchange,
+ key_exchange_state_t * state);
+
++unsigned char *_libssh2_kex_agree_instr(unsigned char *haystack,
++ size_t haystack_len,
++ const unsigned char *needle,
++ size_t needle_len);
++
+ /* Let crypt.c/hostkey.c expose their method structs */
+ const LIBSSH2_CRYPT_METHOD **libssh2_crypt_methods(void);
+ const LIBSSH2_HOSTKEY_METHOD **libssh2_hostkey_methods(void);
+diff --git a/src/packet.c b/src/packet.c
+index eccb8c56a8..6da14e9fa1 100644
+--- a/src/packet.c
++++ b/src/packet.c
+@@ -624,14 +624,13 @@ packet_authagent_open(LIBSSH2_SESSION * session,
+ * layer when it has received a packet.
+ *
+ * The input pointer 'data' is pointing to allocated data that this function
+- * is asked to deal with so on failure OR success, it must be freed fine.
+- * The only exception is when the return code is LIBSSH2_ERROR_EAGAIN.
++ * will be freed unless return the code is LIBSSH2_ERROR_EAGAIN.
+ *
+ * This function will always be called with 'datalen' greater than zero.
+ */
+ int
+ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data,
+- size_t datalen, int macstate)
++ size_t datalen, int macstate, uint32_t seq)
+ {
+ int rc = 0;
+ unsigned char *message = NULL;
+@@ -676,6 +675,70 @@ _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data,
+ break;
+ }
+
++ if(session->state & LIBSSH2_STATE_INITIAL_KEX) {
++ if(msg == SSH_MSG_KEXINIT) {
++ if(!session->kex_strict) {
++ if(datalen < 17) {
++ LIBSSH2_FREE(session, data);
++ session->packAdd_state = libssh2_NB_state_idle;
++ return _libssh2_error(session,
++ LIBSSH2_ERROR_BUFFER_TOO_SMALL,
++ "Data too short extracting kex");
++ }
++ else {
++ const unsigned char *strict =
++ (unsigned char *)"kex-strict-s-v00@openssh.com";
++ struct string_buf buf;
++ unsigned char *algs = NULL;
++ size_t algs_len = 0;
++
++ buf.data = (unsigned char *)data;
++ buf.dataptr = buf.data;
++ buf.len = datalen;
++ buf.dataptr += 17; /* advance past type and cookie */
++
++ if(_libssh2_get_string(&buf, &algs, &algs_len)) {
++ LIBSSH2_FREE(session, data);
++ session->packAdd_state = libssh2_NB_state_idle;
++ return _libssh2_error(session,
++ LIBSSH2_ERROR_BUFFER_TOO_SMALL,
++ "Algs too short");
++ }
++
++ if(algs_len == 0 ||
++ _libssh2_kex_agree_instr(algs, algs_len, strict, 28)) {
++ session->kex_strict = 1;
++ }
++ }
++ }
++
++ if(session->kex_strict && seq) {
++ LIBSSH2_FREE(session, data);
++ session->socket_state = LIBSSH2_SOCKET_DISCONNECTED;
++ session->packAdd_state = libssh2_NB_state_idle;
++ libssh2_session_disconnect(session, "strict KEX violation: "
++ "KEXINIT was not the first packet");
++
++ return _libssh2_error(session, LIBSSH2_ERROR_SOCKET_DISCONNECT,
++ "strict KEX violation: "
++ "KEXINIT was not the first packet");
++ }
++ }
++
++ if(session->kex_strict && session->fullpacket_required_type &&
++ session->fullpacket_required_type != msg) {
++ LIBSSH2_FREE(session, data);
++ session->socket_state = LIBSSH2_SOCKET_DISCONNECTED;
++ session->packAdd_state = libssh2_NB_state_idle;
++ libssh2_session_disconnect(session, "strict KEX violation: "
++ "unexpected packet type");
++
++ return _libssh2_error(session, LIBSSH2_ERROR_SOCKET_DISCONNECT,
++ "strict KEX violation: "
++ "unexpected packet type");
++ }
++ }
++
+ if(session->packAdd_state == libssh2_NB_state_allocated) {
+ /* A couple exceptions to the packet adding rule: */
+ switch(msg) {
+@@ -1364,6 +1427,15 @@ _libssh2_packet_ask(LIBSSH2_SESSION * session, unsigned char packet_type,
+
+ return 0;
+ }
++ else if(session->kex_strict &&
++ (session->state & LIBSSH2_STATE_INITIAL_KEX)) {
++ libssh2_session_disconnect(session, "strict KEX violation: "
++ "unexpected packet type");
++
++ return _libssh2_error(session, LIBSSH2_ERROR_SOCKET_DISCONNECT,
++ "strict KEX violation: "
++ "unexpected packet type");
++ }
+ packet = _libssh2_list_next(&packet->node);
+ }
+ return -1;
+@@ -1425,7 +1497,10 @@ _libssh2_packet_require(LIBSSH2_SESSION * session, unsigned char packet_type,
+ }
+
+ while(session->socket_state == LIBSSH2_SOCKET_CONNECTED) {
+- int ret = _libssh2_transport_read(session);
++ int ret;
++ session->fullpacket_required_type = packet_type;
++ ret = _libssh2_transport_read(session);
++ session->fullpacket_required_type = 0;
+ if(ret == LIBSSH2_ERROR_EAGAIN)
+ return ret;
+ else if(ret < 0) {
+diff --git a/src/packet.h b/src/packet.h
+index 1d90b8af12..955351e5f6 100644
+--- a/src/packet.h
++++ b/src/packet.h
+@@ -72,6 +72,6 @@ int _libssh2_packet_burn(LIBSSH2_SESSION * session,
+ int _libssh2_packet_write(LIBSSH2_SESSION * session, unsigned char *data,
+ unsigned long data_len);
+ int _libssh2_packet_add(LIBSSH2_SESSION * session, unsigned char *data,
+- size_t datalen, int macstate);
++ size_t datalen, int macstate, uint32_t seq);
+
+ #endif /* LIBSSH2_PACKET_H */
+diff --git a/src/session.c b/src/session.c
+index 35e7929fe7..9d89ade8ec 100644
+--- a/src/session.c
++++ b/src/session.c
+@@ -469,6 +469,8 @@ libssh2_session_init_ex(LIBSSH2_ALLOC_FUNC((*my_alloc)),
+ session->abstract = abstract;
+ session->api_timeout = 0; /* timeout-free API by default */
+ session->api_block_mode = 1; /* blocking API by default */
++ session->state = LIBSSH2_STATE_INITIAL_KEX;
++ session->fullpacket_required_type = 0;
+ session->packet_read_timeout = LIBSSH2_DEFAULT_READ_TIMEOUT;
+ session->flag.quote_paths = 1; /* default behavior is to quote paths
+ for the scp subsystem */
+@@ -1223,6 +1225,7 @@ libssh2_session_disconnect_ex(LIBSSH2_SESSION *session, int reason,
+ const char *desc, const char *lang)
+ {
+ int rc;
++ session->state &= ~LIBSSH2_STATE_INITIAL_KEX;
+ session->state &= ~LIBSSH2_STATE_EXCHANGING_KEYS;
+ BLOCK_ADJUST(rc, session,
+ session_disconnect(session, reason, desc, lang));
+diff --git a/src/transport.c b/src/transport.c
+index 21be9d2b80..a8bb588a4b 100644
+--- a/src/transport.c
++++ b/src/transport.c
+@@ -186,6 +186,7 @@ fullpacket(LIBSSH2_SESSION * session, int encrypted /* 1 or 0 */ )
+ struct transportpacket *p = &session->packet;
+ int rc;
+ int compressed;
++ uint32_t seq = session->remote.seqno;
+
+ if(session->fullpacket_state == libssh2_NB_state_idle) {
+ session->fullpacket_macstate = LIBSSH2_MAC_CONFIRMED;
+@@ -317,7 +318,7 @@ fullpacket(LIBSSH2_SESSION * session, int encrypted /* 1 or 0 */ )
+ if(session->fullpacket_state == libssh2_NB_state_created) {
+ rc = _libssh2_packet_add(session, p->payload,
+ session->fullpacket_payload_len,
+- session->fullpacket_macstate);
++ session->fullpacket_macstate, seq);
+ if(rc == LIBSSH2_ERROR_EAGAIN)
+ return rc;
+ if(rc) {
+@@ -328,6 +329,11 @@ fullpacket(LIBSSH2_SESSION * session, int encrypted /* 1 or 0 */ )
+
+ session->fullpacket_state = libssh2_NB_state_idle;
+
++ if(session->kex_strict &&
++ session->fullpacket_packet_type == SSH_MSG_NEWKEYS) {
++ session->remote.seqno = 0;
++ }
++
+ return session->fullpacket_packet_type;
+ }
+
+@@ -1093,6 +1099,10 @@ int _libssh2_transport_send(LIBSSH2_SESSION *session,
+
+ session->local.seqno++;
+
++ if(session->kex_strict && data[0] == SSH_MSG_NEWKEYS) {
++ session->local.seqno = 0;
++ }
++
+ ret = LIBSSH2_SEND(session, p->outbuf, total_length,
+ LIBSSH2_SOCKET_SEND_FLAGS(session));
+ if(ret < 0)
diff --git a/main/libtasn1/APKBUILD b/main/libtasn1/APKBUILD
index 114f53107e2..ee8bb88df58 100644
--- a/main/libtasn1/APKBUILD
+++ b/main/libtasn1/APKBUILD
@@ -1,18 +1,21 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libtasn1
-pkgver=4.18.0
-pkgrel=0
+pkgver=4.19.0
+pkgrel=2
pkgdesc="The ASN.1 library used in GNUTLS"
url="https://www.gnu.org/software/gnutls/"
arch="all"
license="LGPL-2.1-or-later"
+depends_dev="$pkgname-progs=$pkgver-r$pkgrel"
makedepends="texinfo"
checkdepends="diffutils"
subpackages="$pkgname-dev $pkgname-doc $pkgname-progs"
source="https://ftp.gnu.org/gnu/libtasn1/libtasn1-$pkgver.tar.gz"
# secfixes:
+# 4.19-r0:
+# - CVE-2021-46848
# 4.14-r0:
# - CVE-2018-1000654
# 4.13-r0:
@@ -21,7 +24,7 @@ source="https://ftp.gnu.org/gnu/libtasn1/libtasn1-$pkgver.tar.gz"
# - CVE-2017-10790
build() {
- CFLAGS="$CFLAGS -Wno-error=inline" ./configure \
+ ./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
@@ -29,7 +32,7 @@ build() {
--mandir=/usr/share/man \
--localstatedir=/var \
--disable-static
- make -j1
+ make
}
check() {
@@ -40,19 +43,13 @@ package() {
make DESTDIR="$pkgdir" install
}
-dev() {
- depends_dev="$pkgname-progs=$pkgver-r$pkgrel"
- default_dev
-}
-
progs() {
license="GPL-3.0-only"
pkgdesc="$pkgdesc (utilities)"
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/bin
+ amove usr/bin
}
sha512sums="
-4f2f4afc7561fda7a1f1c6c525c3c3b08228a1a4aa8c3d3d5e02e993d8f83ccee1dd0f1b201cec0fbfc97043d4b1d7a95ffd34d65422a38b85b931ac7a015831 libtasn1-4.18.0.tar.gz
+287f5eddfb5e21762d9f14d11997e56b953b980b2b03a97ed4cd6d37909bda1ed7d2cdff9da5d270a21d863ab7e54be6b85c05f1075ac5d8f0198997cf335ef4 libtasn1-4.19.0.tar.gz
"
diff --git a/main/libtheora/APKBUILD b/main/libtheora/APKBUILD
index 32825bcb92a..4bd2f6f2b79 100644
--- a/main/libtheora/APKBUILD
+++ b/main/libtheora/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libtheora
pkgver=1.1.1
-pkgrel=16
+pkgrel=18
pkgdesc="An open video codec developed by the Xiph.org"
url="https://www.xiph.org"
arch="all"
@@ -10,7 +10,7 @@ subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
depends_dev="libogg-dev"
makedepends="libvorbis-dev libogg-dev autoconf automake libtool
linux-headers"
-source="http://downloads.xiph.org/releases/theora/libtheora-$pkgver.tar.bz2
+source="https://downloads.xiph.org/releases/theora/libtheora-$pkgver.tar.bz2
libtheora-flags.patch
enc.patch
fix-timeb.patch
diff --git a/main/libtirpc/APKBUILD b/main/libtirpc/APKBUILD
index 4a970d30463..39febd342a4 100644
--- a/main/libtirpc/APKBUILD
+++ b/main/libtirpc/APKBUILD
@@ -1,15 +1,24 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libtirpc
-pkgver=1.3.2
-pkgrel=1
+pkgver=1.3.4
+pkgrel=0
pkgdesc="Transport Independent RPC library (SunRPC replacement)"
-url="https://sourceforge.net/projects/libtirpc"
+url="https://sourceforge.net/projects/libtirpc/"
arch="all"
license="BSD-3-Clause"
options="!check"
depends="$pkgname-conf"
-depends_dev="krb5-dev bsd-compat-headers"
-makedepends="$depends_dev autoconf automake libtool linux-headers"
+depends_dev="
+ bsd-compat-headers
+ krb5-dev
+ "
+makedepends="
+ $depends_dev
+ autoconf
+ automake
+ libtool
+ linux-headers
+ "
subpackages="
$pkgname-dbg
$pkgname-static
@@ -22,6 +31,10 @@ source="https://sourceforge.net/projects/libtirpc/files/libtirpc/$pkgver/libtirp
soname-suffix.patch
"
+# secfixes:
+# 1.3.2-r2:
+# - CVE-2021-46828
+
prepare() {
default_prepare
autoreconf -fi
@@ -64,6 +77,6 @@ nokrb() {
}
sha512sums="
-8664d5c4f842ee5acf83b9c1cadb7871f17b8157a7c4500e2236dcfb3a25768cab39f7c5123758dcd7381e30eb028ddfa26a28f458283f2dcea3426c9878c255 libtirpc-1.3.2.tar.bz2
-8bd50cab1e34a88f4f82ae722bdd60839212173a0ac6ceef21dee4dceea37a9fa2953b8a40068918b3c0d95b476111f0d7f19830efd3e4bff1ec5e72a5f9fade soname-suffix.patch
+004e61b5853717324790c46cda5ff227d525909f189194ae72a1ec8f476ca35d7f4c1f03c0fbc690c1696d60a212675b09246dbe627fdbf1a9a47f5664e82b00 libtirpc-1.3.4.tar.bz2
+912a2ad979cb7f41c4d2b558d2d213aaa02e904685ddddc43fbab4ee537543df5288d08b704102654e780d96175774496680384a4bfec37e7f1d7770922a63af soname-suffix.patch
"
diff --git a/main/libtirpc/soname-suffix.patch b/main/libtirpc/soname-suffix.patch
index 1e07ed442c0..4037ef0ae24 100644
--- a/main/libtirpc/soname-suffix.patch
+++ b/main/libtirpc/soname-suffix.patch
@@ -39,7 +39,7 @@ diff --git a/libtirpc.pc.in b/libtirpc.pc.in
index d2c7878..090b3fa 100644
--- a/libtirpc.pc.in
+++ b/libtirpc.pc.in
-@@ -3,10 +3,10 @@ exec_prefix=@exec_prefix@
+@@ -3,10 +3,10 @@
libdir=@libdir@
includedir=@includedir@
@@ -50,22 +50,22 @@ index d2c7878..090b3fa 100644
Version: @PACKAGE_VERSION@
-Libs: -L${libdir} -ltirpc
+Libs: -L${libdir} -ltirpc@SONAME_SUFFIX@
- Libs.private: -lpthread
+ Libs.private: @PTHREAD_LIBS@
Cflags: -I${includedir}/tirpc
diff --git a/src/Makefile.am b/src/Makefile.am
index b2d5436..7280403 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
-@@ -10,12 +10,12 @@ noinst_HEADERS = rpc_com.h debug.h
+@@ -10,12 +10,12 @@
AM_CPPFLAGS = -I$(top_srcdir)/tirpc -include config.h -DPORTMAP -DINET6 \
-D_GNU_SOURCE -Wall -pipe
-lib_LTLIBRARIES = libtirpc.la
+lib_LTLIBRARIES = libtirpc@SONAME_SUFFIX@.la
--libtirpc_la_LDFLAGS = @LDFLAG_NOUNDEFINED@ -no-undefined -lpthread
+-libtirpc_la_LDFLAGS = @LDFLAG_NOUNDEFINED@ -no-undefined @PTHREAD_LIBS@
-libtirpc_la_LDFLAGS += -version-info @LT_VERSION_INFO@
-+libtirpc@SONAME_SUFFIX@_la_LDFLAGS = @LDFLAG_NOUNDEFINED@ -no-undefined -lpthread
++libtirpc@SONAME_SUFFIX@_la_LDFLAGS = @LDFLAG_NOUNDEFINED@ -no-undefined @PTHREAD_LIBS@
+libtirpc@SONAME_SUFFIX@_la_LDFLAGS += -version-info @LT_VERSION_INFO@
-libtirpc_la_SOURCES = auth_none.c auth_unix.c authunix_prot.c \
@@ -73,7 +73,7 @@ index b2d5436..7280403 100644
binddynport.c bindresvport.c \
clnt_bcast.c clnt_dg.c clnt_generic.c clnt_perror.c clnt_raw.c clnt_simple.c \
clnt_vc.c rpc_dtablesize.c getnetconfig.c getnetpath.c getrpcent.c \
-@@ -27,26 +27,26 @@ libtirpc_la_SOURCES = auth_none.c auth_unix.c authunix_prot.c \
+@@ -27,26 +27,26 @@
auth_time.c debug.c
if AUTHDES
diff --git a/main/libtool/APKBUILD b/main/libtool/APKBUILD
index 5d552915091..7b622fb2499 100644
--- a/main/libtool/APKBUILD
+++ b/main/libtool/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libtool
pkgver=2.4.7
-pkgrel=0
+pkgrel=3
pkgdesc="A generic library support script"
arch="all"
license="LGPL-2.0-or-later AND GPL-2.0-or-later"
diff --git a/main/libtxc_dxtn/APKBUILD b/main/libtxc_dxtn/APKBUILD
deleted file mode 100644
index 89057d55e9f..00000000000
--- a/main/libtxc_dxtn/APKBUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-# Contributor:
-# Maintainer:
-pkgname=libtxc_dxtn
-pkgver=1.0.1
-pkgrel=5
-pkgdesc="S3TC texture decompression helper library"
-url="http://dri.freedesktop.org/wiki/S3TC"
-arch="all"
-license="BSD"
-depends_dev="mesa-dev"
-makedepends="$depends_dev automake autoconf libtool"
-subpackages="$pkgname-dev"
-source="$pkgname-$pkgver-r$pkgrel.tar.bz2::https://people.freedesktop.org/~cbrill/$pkgname/$pkgname-$pkgver.tar.bz2"
-builddir="$srcdir/$pkgname-$pkgver"
-
-prepare() {
- default_prepare
- libtoolize --force && aclocal -I m4 && autoreconf -fvi \
- && automake --add-missing
-}
-
-build() {
- cd "$builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- || return 1
- make
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
- rm "$pkgdir"/usr/lib/libtxc_dxtn.la
-}
-
-sha512sums="56714a8c947d9b1f47e3ccb23cff9e4e57bd131907a82968de521d094a000275b3aaeecff28e9184bcc4f3932baa1a8bfbbefbc970fcd034ff953d0617148479 libtxc_dxtn-1.0.1-r5.tar.bz2"
diff --git a/main/libucontext/0001-common-trampoline-Ensure-omission-of-frame-pointer.patch b/main/libucontext/0001-common-trampoline-Ensure-omission-of-frame-pointer.patch
new file mode 100644
index 00000000000..cb0c588b8fd
--- /dev/null
+++ b/main/libucontext/0001-common-trampoline-Ensure-omission-of-frame-pointer.patch
@@ -0,0 +1,47 @@
+From 13437174df7cd45873cf2d1d9c4c4277e2db8a5a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
+Date: Sat, 10 Feb 2024 00:13:28 +0100
+Subject: [PATCH] common-trampoline: Ensure omission of frame-pointer
+
+Some architecture-specific implementations of the FETCH_LINKPTR
+(e.g. the one for x86) attempt to find the linkptr relative to the
+stack pointer. Therefore, they make assumption about the value of
+the SP at the point where the FETCH_LINKPTR code is executed. This
+means that we don't want the C compiler to mess with our SP.
+
+For this purpose, local variables in this function are currently
+declared using the register storage specifier. Additionally, we
+need to make sure that a frame pointer is /always/ omitted for
+this function. On x86 Alpine, the frame pointer is presently not
+omitted with GCC 13 when using -Os, therefore the tests segfault
+with -Os on Alpine presently.
+
+Fixes #52
+---
+ arch/common/common-trampoline.c | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/arch/common/common-trampoline.c b/arch/common/common-trampoline.c
+index 5b52327..41f994b 100644
+--- a/arch/common/common-trampoline.c
++++ b/arch/common/common-trampoline.c
+@@ -14,7 +14,19 @@
+ #include <stdlib.h>
+ #include <stdio.h>
+
++/* We need to make sure that the C compiler doesn't push any
++ * additional data to the stack frame. Otherwise, assumptions
++ * made by the architecture-specific implementation of the
++ * FETCH_LINKPTR() macro about the location of the linkptr,
++ * relative to the stack pointer, will not hold.
++ *
++ * Hence, we compile this function with -fomit-frame-pointer
++ * and use the register storage-class specifier for all local
++ * vars. Note that the latter is just a "suggestion" (see C99).
++ */
++
+ __attribute__ ((visibility ("hidden")))
++__attribute__ ((optimize ("omit-frame-pointer")))
+ void
+ libucontext_trampoline(void)
+ {
diff --git a/main/libucontext/APKBUILD b/main/libucontext/APKBUILD
index 497df68ac84..25242d05f48 100644
--- a/main/libucontext/APKBUILD
+++ b/main/libucontext/APKBUILD
@@ -1,14 +1,15 @@
# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
pkgname=libucontext
pkgver=1.2
-pkgrel=0
+pkgrel=3
pkgdesc="ucontext function implementations"
url="https://github.com/kaniini/libucontext"
arch="all"
license="ISC"
subpackages="$pkgname-dev $pkgname-doc"
makedepends="scdoc"
-source="https://distfiles.dereferenced.org/libucontext/libucontext-$pkgver.tar.xz"
+source="https://distfiles.ariadne.space/libucontext/libucontext-$pkgver.tar.xz
+ 0001-common-trampoline-Ensure-omission-of-frame-pointer.patch"
case "$CTARGET_ARCH" in
arm*) LIBUCONTEXT_ARCH="arm" ;;
@@ -31,4 +32,5 @@ package() {
sha512sums="
6603f2dcd87c4d9919c1726f2964632483e1a647733ff543d5935e3e2dac548adf320f1f9fb4c494691fe99fb393d64b15369f04d3783b2ca4c40b68c3d87865 libucontext-1.2.tar.xz
+4e797976943dcc98dbc2541a17e517da1b95ed50e0c730c547ccc604e682d1150e90c6bb29f601549b6a0bf4b7228e7a7d9883e97ea6bff4d12956df6b9a1195 0001-common-trampoline-Ensure-omission-of-frame-pointer.patch
"
diff --git a/main/libucontext0/APKBUILD b/main/libucontext0/APKBUILD
deleted file mode 100644
index 06c4cb1b448..00000000000
--- a/main/libucontext0/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
-pkgname=libucontext0
-pkgver=0.13.1
-pkgrel=0
-pkgdesc="ucontext function implementations compat for abi version 0"
-url="https://github.com/kaniini/libucontext"
-arch="all"
-license="ISC"
-source="https://distfiles.dereferenced.org/libucontext/libucontext-$pkgver.tar.xz"
-replaces=libucontext
-builddir="$srcdir"/libucontext-$pkgver
-
-case "$CTARGET_ARCH" in
- arm*) LIBUCONTEXT_ARCH="arm" ;;
- ppc64le) LIBUCONTEXT_ARCH="ppc64" ;;
- *) LIBUCONTEXT_ARCH="$CTARGET_ARCH" ;;
-esac
-
-build() {
- make ARCH="$LIBUCONTEXT_ARCH"
-}
-
-check() {
- make ARCH="$LIBUCONTEXT_ARCH" check
-}
-
-package() {
- install -Dm644 libucontext.so.0 "$pkgdir"/usr/lib/libucontext.so.0
-}
-
-sha512sums="b39c9b97bb64054ac1a95ab2f531977e9db6e6cb5ffbbc7f22e129000b0e9418331bd6b9620f1b77d0fd5df5679b4d785e0c47ab6581baed10a1905cddd9ca7b libucontext-0.13.1.tar.xz"
diff --git a/main/libunistring/APKBUILD b/main/libunistring/APKBUILD
index ab1a886ae11..660d42c9511 100644
--- a/main/libunistring/APKBUILD
+++ b/main/libunistring/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libunistring
-pkgver=1.0
+pkgver=1.2
pkgrel=0
pkgdesc="Library for manipulating Unicode strings and C strings"
url="https://www.gnu.org/software/libunistring/"
@@ -28,5 +28,5 @@ package() {
}
sha512sums="
-70d5ad82722844dbeacdfcb4d7593358e4a00a9222a98537add4b7f0bf4a2bb503dfb3cd627e52e2a5ca1d3da9e5daf38a6bd521197f92002e11e715fb1662d1 libunistring-1.0.tar.xz
+5fbb5a0a864db73a6d18cdea7b31237da907fff0ef288f3a8db6ebdba8ef61ad8855e5fc780c2bbf632218d8fa59dd119734e5937ca64dc77f53f30f13b80b17 libunistring-1.2.tar.xz
"
diff --git a/main/libunwind/APKBUILD b/main/libunwind/APKBUILD
index 77aa7181b8e..1f68817aa69 100644
--- a/main/libunwind/APKBUILD
+++ b/main/libunwind/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Ben Pye <ben@curlybracket.co.uk>
-# Maintainer: Ben Pye <ben@curlybracket.co.uk>
+# Maintainer: Krassy Boykinov <kboykinov@teamcentrixx.com>
pkgname=libunwind
-pkgver=1.6.2
+pkgver=1.8.1
pkgrel=0
pkgdesc="Portable and efficient C programming interface (API) to determine the call-chain of a program"
url="https://www.nongnu.org/libunwind/"
@@ -13,19 +13,14 @@ makedepends_build="autoconf automake libtool"
makedepends_host="$depends_dev linux-headers xz-dev"
makedepends="$makedepends_build $makedepends_host"
subpackages="$pkgname-dbg $pkgname-static $pkgname-dev $pkgname-doc"
-source="https://download.savannah.gnu.org/releases/libunwind/libunwind-$pkgver.tar.gz
+source="https://github.com/libunwind/libunwind/releases/download/v$pkgver/libunwind-$pkgver.tar.gz
force-enable-man.patch
- musl-mips-fix.patch
- ppc64-musl.patch
fix-libunwind-pc-in.patch
+ Remove-the-useless-endina.h-for-loongarch64.patch
"
-prepare() {
- default_prepare
- autoreconf -fi
-}
-
build() {
+ # shellcheck disable=2046
LDFLAGS="$LDFLAGS -lucontext" CFLAGS="$CFLAGS -fno-stack-protector" \
./configure \
--build="$CBUILD" \
@@ -34,7 +29,8 @@ build() {
--sysconfdir=/etc \
--mandir=/usr/share/man \
--localstatedir=/var \
- --enable-cxx-exceptions
+ --enable-cxx-exceptions \
+ $(want_check || echo --disable-tests)
make
}
@@ -47,9 +43,8 @@ package() {
}
sha512sums="
-1d17dfb14f99a894a6cda256caf9ec481c14068aaf8f3a85fa3befa7c7cca7fca0f544a91a3a7c2f2fc55bab19b06a67ca79f55ac9081151d94478c7f611f8f7 libunwind-1.6.2.tar.gz
-de3cefd8a2fa9ae3eabf052cb94a1fdde4f9b7e85af839220592269f7a885470572f67ecf6d773129de8d82916fbcbdda44b541f4eeec84744c54f230c36b6a1 force-enable-man.patch
-a1751b80f2c42a741f0a7778f758c7afe42653bf61a353edf38182d731008ed7bd0b8a41bf466aa83275b22241bfcd4f6051055489e3cc87fcd7dd4488bc089d musl-mips-fix.patch
-3b59620c758784faa6d66c8a0a2e49ced743b7ebff6a7e461e40aea653ef9f8cbd8948fb766c63acdd625cb506601c102f133074cef9ef150e9bb8b81584fe9d ppc64-musl.patch
-52b568846db7adb50a181f17635e53c8a6d99d6d13c3d35fd8c9a5de5ec0a1ad18d8462c4ae4483d413d4b5aa7375017c36b5cb49805b6f67d96cffafbd02548 fix-libunwind-pc-in.patch
+aba7b578c1b8cbe78f05b64e154f3530525f8a34668b2a9f1ee6acb4b22c857befe34ad4e9e8cca99dbb66689d41bc72060a8f191bd8be232725d342809431b3 libunwind-1.8.1.tar.gz
+2d210a2d8e960610e515d8cf9ebd388faa30a4f35613cae6a40a06e1ca1267540b974e96a9d94c02c465d47e114d3d3d6cbad72b4c1dbd0eb53d812970b1712d force-enable-man.patch
+ab5d44e9d3aaf32e3119fe79389e5dfcdc859c78cfda8400e54ee29fd1cdf04b99e2686caf18ab0b76ac94f861861d69a5cf740d46967af9c630095485523f1c fix-libunwind-pc-in.patch
+db8ab626920fa7fea5f0ff17e92909f0b293804eca61425dff53dd79a0f92b4db80941850fa144cfc9ecd2e1537b26fa8d62c56824ffea8e2790ed3930c8ff96 Remove-the-useless-endina.h-for-loongarch64.patch
"
diff --git a/main/libunwind/Remove-the-useless-endina.h-for-loongarch64.patch b/main/libunwind/Remove-the-useless-endina.h-for-loongarch64.patch
new file mode 100644
index 00000000000..eef66128174
--- /dev/null
+++ b/main/libunwind/Remove-the-useless-endina.h-for-loongarch64.patch
@@ -0,0 +1,25 @@
+From 44359b80a85cc2fa5bcb7c9c82d68a94fca3bd33 Mon Sep 17 00:00:00 2001
+From: Jingyun Hua <huajingyun@loongson.cn>
+Date: Mon, 8 Apr 2024 15:57:15 +0800
+Subject: [PATCH] Remove the useless endina.h in getcontext.S for loongarch64
+
+Fix issue #740
+---
+ src/loongarch64/getcontext.S | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/src/loongarch64/getcontext.S b/src/loongarch64/getcontext.S
+index 3344fc2e..c568832c 100644
+--- a/src/loongarch64/getcontext.S
++++ b/src/loongarch64/getcontext.S
+@@ -25,7 +25,6 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
+
+ #include "offsets.h"
+-#include <endian.h>
+ .text
+
+ #define SREG(X) st.d $r##X, $r4, (LINUX_UC_MCONTEXT_GREGS + 8 * X)
+--
+2.27.0
+
diff --git a/main/libunwind/fix-libunwind-pc-in.patch b/main/libunwind/fix-libunwind-pc-in.patch
index 5053013f7cb..4fe5008eaf9 100644
--- a/main/libunwind/fix-libunwind-pc-in.patch
+++ b/main/libunwind/fix-libunwind-pc-in.patch
@@ -1,3 +1,6 @@
+needed since we need libucontext for ppc, and other reasons (musl doesn't have
+ucontext api, so the lib is external)
+--
--- a/src/unwind/libunwind.pc.in
+++ b/src/unwind/libunwind.pc.in
@@ -6,6 +6,6 @@
diff --git a/main/libunwind/force-enable-man.patch b/main/libunwind/force-enable-man.patch
index 0940c8110f6..57240d67902 100644
--- a/main/libunwind/force-enable-man.patch
+++ b/main/libunwind/force-enable-man.patch
@@ -1,16 +1,15 @@
Man pages are already built in the release tarball, so we don't need latex2man.
---- a/configure.ac
-+++ b/configure.ac
-@@ -420,12 +420,6 @@
- AC_SUBST(DLLIB)
- AC_SUBST(BACKTRACELIB)
+--
+diff --git a/configure b/configure
+index 86c8126..989bcc2 100755
+--- a/configure
++++ b/configure
+@@ -18024,7 +18024,7 @@
--AC_PATH_PROG([LATEX2MAN],[latex2man])
--if test "x$LATEX2MAN" = "x"; then
-- AC_MSG_WARN([latex2man not found. Install latex2man. Disabling docs.])
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: latex2man not found. Install latex2man. Disabling docs." >&5
+ $as_echo "$as_me: WARNING: latex2man not found. Install latex2man. Disabling docs." >&2;}
- enable_documentation="no";
--fi
--
- AM_CONDITIONAL([CONFIG_DOCS], [test x$enable_documentation = xyes])
- if test "x$enable_documentation" = "xyes"; then
- AC_CONFIG_FILES(doc/Makefile doc/common.tex)
++ enable_documentation="yes";
+
+ fi
+ if test x$enable_documentation != xno; then
diff --git a/main/libunwind/musl-mips-fix.patch b/main/libunwind/musl-mips-fix.patch
deleted file mode 100644
index 2f62e345f48..00000000000
--- a/main/libunwind/musl-mips-fix.patch
+++ /dev/null
@@ -1,95 +0,0 @@
---- a/src/coredump/_UCD_access_reg_linux.c
-+++ b/src/coredump/_UCD_access_reg_linux.c
-@@ -58,36 +58,36 @@
- #if defined(UNW_TARGET_MIPS)
- static const uint8_t remap_regs[] =
- {
-- [UNW_MIPS_R0] = EF_REG0,
-- [UNW_MIPS_R1] = EF_REG1,
-- [UNW_MIPS_R2] = EF_REG2,
-- [UNW_MIPS_R3] = EF_REG3,
-- [UNW_MIPS_R4] = EF_REG4,
-- [UNW_MIPS_R5] = EF_REG5,
-- [UNW_MIPS_R6] = EF_REG6,
-- [UNW_MIPS_R7] = EF_REG7,
-- [UNW_MIPS_R8] = EF_REG8,
-- [UNW_MIPS_R9] = EF_REG9,
-- [UNW_MIPS_R10] = EF_REG10,
-- [UNW_MIPS_R11] = EF_REG11,
-- [UNW_MIPS_R12] = EF_REG12,
-- [UNW_MIPS_R13] = EF_REG13,
-- [UNW_MIPS_R14] = EF_REG14,
-- [UNW_MIPS_R15] = EF_REG15,
-- [UNW_MIPS_R16] = EF_REG16,
-- [UNW_MIPS_R17] = EF_REG17,
-- [UNW_MIPS_R18] = EF_REG18,
-- [UNW_MIPS_R19] = EF_REG19,
-- [UNW_MIPS_R20] = EF_REG20,
-- [UNW_MIPS_R21] = EF_REG21,
-- [UNW_MIPS_R22] = EF_REG22,
-- [UNW_MIPS_R23] = EF_REG23,
-- [UNW_MIPS_R24] = EF_REG24,
-- [UNW_MIPS_R25] = EF_REG25,
-- [UNW_MIPS_R28] = EF_REG28,
-- [UNW_MIPS_R29] = EF_REG29,
-- [UNW_MIPS_R30] = EF_REG30,
-- [UNW_MIPS_R31] = EF_REG31,
-+ [UNW_MIPS_R0] = EF_R0,
-+ [UNW_MIPS_R1] = EF_R1,
-+ [UNW_MIPS_R2] = EF_R2,
-+ [UNW_MIPS_R3] = EF_R3,
-+ [UNW_MIPS_R4] = EF_R4,
-+ [UNW_MIPS_R5] = EF_R5,
-+ [UNW_MIPS_R6] = EF_R6,
-+ [UNW_MIPS_R7] = EF_R7,
-+ [UNW_MIPS_R8] = EF_R8,
-+ [UNW_MIPS_R9] = EF_R9,
-+ [UNW_MIPS_R10] = EF_R10,
-+ [UNW_MIPS_R11] = EF_R11,
-+ [UNW_MIPS_R12] = EF_R12,
-+ [UNW_MIPS_R13] = EF_R13,
-+ [UNW_MIPS_R14] = EF_R14,
-+ [UNW_MIPS_R15] = EF_R15,
-+ [UNW_MIPS_R16] = EF_R16,
-+ [UNW_MIPS_R17] = EF_R17,
-+ [UNW_MIPS_R18] = EF_R18,
-+ [UNW_MIPS_R19] = EF_R19,
-+ [UNW_MIPS_R20] = EF_R20,
-+ [UNW_MIPS_R21] = EF_R21,
-+ [UNW_MIPS_R22] = EF_R22,
-+ [UNW_MIPS_R23] = EF_R23,
-+ [UNW_MIPS_R24] = EF_R24,
-+ [UNW_MIPS_R25] = EF_R25,
-+ [UNW_MIPS_R28] = EF_R28,
-+ [UNW_MIPS_R29] = EF_R29,
-+ [UNW_MIPS_R30] = EF_R30,
-+ [UNW_MIPS_R31] = EF_R31,
- [UNW_MIPS_PC] = EF_CP0_EPC,
- };
- #elif defined(UNW_TARGET_X86)
---- a/src/coredump/_UCD_lib.h
-+++ b/src/coredump/_UCD_lib.h
-@@ -50,6 +50,7 @@
- #include <stdbool.h>
- #include <limits.h>
- #include <sys/param.h>
-+#include <sys/reg.h>
- #include <pwd.h>
- #include <grp.h>
- #include <syslog.h>
---- a/src/mips/getcontext.S
-+++ b/src/mips/getcontext.S
-@@ -24,12 +24,11 @@
- WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
-
- #include "offsets.h"
--#include <endian.h>
-
- .text
-
- #if _MIPS_SIM == _ABIO32
--# if __BYTE_ORDER == __BIG_ENDIAN
-+# if __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
- # define OFFSET 4
- # else
- # define OFFSET 0
diff --git a/main/libunwind/ppc64-musl.patch b/main/libunwind/ppc64-musl.patch
deleted file mode 100644
index e3f4848871a..00000000000
--- a/main/libunwind/ppc64-musl.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/ptrace/_UPT_reg_offset.c
-+++ b/src/ptrace/_UPT_reg_offset.c
-@@ -32,6 +32,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
- # include <asm/ptrace_offsets.h>
- #endif
-
-+#include <asm/ptrace.h>
-+
- const int _UPT_reg_offset[UNW_REG_LAST + 1] =
- {
- #ifdef HAVE_ASM_PTRACE_OFFSETS_H
diff --git a/main/liburing/APKBUILD b/main/liburing/APKBUILD
index d89be9b5f60..479730f61d9 100644
--- a/main/liburing/APKBUILD
+++ b/main/liburing/APKBUILD
@@ -1,19 +1,20 @@
# Maintainer: Milan P. Stanić <mps@arvanta.net>
pkgname=liburing
-pkgver=2.2
-pkgrel=0
+pkgver=2.5
+pkgrel=1
pkgdesc="Linux kernel io_uring access library"
url="https://git.kernel.dk/cgit/liburing/"
arch="all"
-license="LGPL-2.1-or-later"
+license="LGPL-2.1-or-later OR MIT"
makedepends="linux-headers"
-subpackages="$pkgname-dev $pkgname-doc"
+subpackages="liburing-ffi $pkgname-dev $pkgname-doc"
source="https://git.kernel.dk/cgit/liburing/snapshot/liburing-$pkgver.tar.gz
"
build() {
./configure \
--prefix=/usr \
+ --use-libc \
--mandir=/usr/share/man
}
@@ -25,6 +26,10 @@ package() {
make DESTDIR="$pkgdir" install
}
+ffi() {
+ amove usr/lib/liburing-ffi.so.*
+}
+
sha512sums="
-c401da53ee43badeaa149d3f11e6b3954639c7b7ea5f17ed7d57a439bce15c603e41005d8403942ecb64e01094ebbde1a718c16c5a5446c520bd8cc8bbbedca4 liburing-2.2.tar.gz
+b537a644ba338fc6edc747e08a0c33e99008f5b0a33be03f304c7f94f4c28473d0eee7b0d731be966bf32be835b0e45beb308b3a0b3f6264a69a9e5362f00928 liburing-2.5.tar.gz
"
diff --git a/main/libusb-compat/APKBUILD b/main/libusb-compat/APKBUILD
index a7d3ddec45a..572d55db7d1 100644
--- a/main/libusb-compat/APKBUILD
+++ b/main/libusb-compat/APKBUILD
@@ -1,21 +1,15 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libusb-compat
-pkgver=0.1.7
-pkgrel=1
+pkgver=0.1.8
+pkgrel=2
pkgdesc="Compatility for older libusb"
url="https://libusb.info/"
arch="all"
license="LGPL-2.1-or-later"
subpackages="$pkgname-dev"
depends="libusb"
-makedepends="libusb-dev"
-source="https://github.com/libusb/libusb-compat-0.1/releases/download/v$pkgver/libusb-compat-$pkgver.tar.gz
- fix-headers.patch"
-
-prepare() {
- default_prepare
- update_config_sub
-}
+makedepends="autoconf automake linux-headers libtool libusb-dev"
+source="https://github.com/libusb/libusb-compat-0.1/releases/download/v$pkgver/libusb-compat-$pkgver.tar.gz"
build() {
./configure \
@@ -34,6 +28,5 @@ package() {
}
sha512sums="
-8f3b2f9a275987b13278215b28950f9bc4c4cd30d3dc08ff5141ed6486d484981d059588533857eb521a5362ce2eb74c9f9c98f3d0c59d9a288debf9fc95a882 libusb-compat-0.1.7.tar.gz
-3abb7e90299f6cdb397b4fcf1b7af0bfc20cc3b0937e0787716109608313bc988ce3532ed88ba4d05e7d57bdaca3de4b5ce704e0a3d4bf871c48ac03103a18d7 fix-headers.patch
+0f935b89d06a8ffd6c87b03d649b1136a0f84110874d1b8d071a0af922b9b2f911143670fc9297309053f29ba02e1714fa4f4bdd8b71c26dbaf32146699fcf34 libusb-compat-0.1.8.tar.gz
"
diff --git a/main/libusb-compat/fix-headers.patch b/main/libusb-compat/fix-headers.patch
deleted file mode 100644
index ea9cbc34978..00000000000
--- a/main/libusb-compat/fix-headers.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- libusb-compat-0.1.5.orig/libusb/usb.h
-+++ libusb-compat-0.1.5/libusb/usb.h
-@@ -25,6 +25,7 @@
- #ifndef __USB_H__
- #define __USB_H__
-
-+#include <sys/types.h>
- #include <unistd.h>
- #include <stdlib.h>
- #include <limits.h>
diff --git a/main/libusb/APKBUILD b/main/libusb/APKBUILD
index fe1d20ca5cf..7363e90ae1e 100644
--- a/main/libusb/APKBUILD
+++ b/main/libusb/APKBUILD
@@ -1,11 +1,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libusb
-pkgver=1.0.26
+pkgver=1.0.27
pkgrel=0
pkgdesc="Library that enables userspace access to USB devices"
url="https://libusb.info/"
arch="all"
-license="LGPL-2.0-or-later"
+license="LGPL-2.1-or-later"
subpackages="$pkgname-dev"
replaces="libusbx"
makedepends="linux-headers"
@@ -30,5 +30,5 @@ package() {
}
sha512sums="
-fcdb85c98f21639668693c2fd522814d440972d65883984c4ae53d0555bdbdb7e8c7a32199cd4b01113556a1eb5be7841b750cc73c9f6bda79bfe1af80914e71 libusb-1.0.26.tar.bz2
+42abbbcf2564f86cc2f05826aeefa6beb03c9f89dc9fe05bdfa351caa3dbd07713ce193daadecf29557604dd3cbc770c8031a78e1ad0a8df3627c3f551d28ff0 libusb-1.0.27.tar.bz2
"
diff --git a/main/libutempter/APKBUILD b/main/libutempter/APKBUILD
index c125937de72..05a6507c043 100644
--- a/main/libutempter/APKBUILD
+++ b/main/libutempter/APKBUILD
@@ -3,7 +3,7 @@
pkgname=libutempter
pkgver=1.2.1
_pkgver=$pkgver-alt1
-pkgrel=5
+pkgrel=9
pkgdesc="Library interface to record user sessions in utmp/wtmp files"
url="http://freecode.com/projects/libutempter"
arch="all"
@@ -16,7 +16,7 @@ source="https://github.com/altlinux/libutempter/archive/$_pkgver.tar.gz"
builddir="$srcdir/$pkgname-$_pkgver/$pkgname"
build() {
- make CFLAGS="-I/usr/include/utmps" LDLIBS="-Wl,--no-as-needed -lutmps -lskarnet -Wl,--as-needed"
+ make CFLAGS="$CFLAGS -I/usr/include/utmps" LDLIBS="-Wl,--no-as-needed -lutmps -lskarnet -Wl,--as-needed"
}
package() {
@@ -25,4 +25,6 @@ package() {
chmod 2755 "$pkgdir/usr/lib/utempter/utempter"
}
-sha512sums="4dcc52bdc0d45b959c45d37d195794f5386061490b943e4473485259de46f31bb23d82feb74a54aea49eeb339bf1682a0a96adba1ae4a1114c8f39aaa2df6761 1.2.1-alt1.tar.gz"
+sha512sums="
+4dcc52bdc0d45b959c45d37d195794f5386061490b943e4473485259de46f31bb23d82feb74a54aea49eeb339bf1682a0a96adba1ae4a1114c8f39aaa2df6761 1.2.1-alt1.tar.gz
+"
diff --git a/main/libuv/APKBUILD b/main/libuv/APKBUILD
index 07992e5b62a..ebe5e156ff4 100644
--- a/main/libuv/APKBUILD
+++ b/main/libuv/APKBUILD
@@ -2,19 +2,21 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libuv
-pkgver=1.44.1
+pkgver=1.48.0
pkgrel=0
pkgdesc="Cross-platform asychronous I/O"
url="https://libuv.org/"
arch="all"
-license="MIT AND ISC"
+license="MIT"
makedepends_build="automake autoconf libtool"
makedepends_host="linux-headers"
-subpackages="$pkgname-static $pkgname-dev $pkgname-dbg"
+subpackages="$pkgname-dbg $pkgname-static $pkgname-dev"
source="https://dist.libuv.org/dist/v$pkgver/libuv-v$pkgver.tar.gz"
builddir="$srcdir/$pkgname-v$pkgver"
# secfixes:
+# 1.48.0-r0:
+# - CVE-2024-24806
# 1.39.0-r0:
# - CVE-2020-8252
@@ -24,6 +26,7 @@ prepare() {
}
build() {
+ CFLAGS="$CFLAGS -O2" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -31,7 +34,7 @@ build() {
--sysconfdir=/etc \
--mandir=/usr/share/man \
--localstatedir=/var
- make CFLAGS="$CFLAGS -D__USE_MISC" BUILDTYPE=Release
+ make
}
check() {
@@ -45,5 +48,5 @@ package() {
}
sha512sums="
-b4f8944e2c79e3a6a31ded6cccbe4c0eeada50db6bc8a448d7015642795012a4b80ffeef7ca455bb093c59a8950d0e1430566c3c2fa87b73f82699098162d834 libuv-v1.44.1.tar.gz
+7ae3a4c02f654a26056db1541e52ccc4c54aaea39c33585f0cf6949af997d0a0a29f30a294c8df6e92f6f6af7ce64c2766b1a2cc67f342e3e139cd55b7326c94 libuv-v1.48.0.tar.gz
"
diff --git a/main/libva/APKBUILD b/main/libva/APKBUILD
index 1a932c88f59..dc71a1755c9 100644
--- a/main/libva/APKBUILD
+++ b/main/libva/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libva
-pkgver=2.15.0
+pkgver=2.21.0
pkgrel=0
pkgdesc="Video Acceleration (VA) API for Linux"
url="https://01.org/linuxmedia"
@@ -26,10 +26,11 @@ prepare() {
build() {
abuild-meson \
+ -Db_lto=true \
-Dwith_glx=no \
-Dwith_wayland=yes \
builddir
- meson compile ${JOBS:+-j ${JOBS}} -C builddir
+ meson compile -C builddir
}
package() {
@@ -37,5 +38,5 @@ package() {
}
sha512sums="
-fd96da76db6e6a80bb83d74a6f736e168d3a27cd200e77553d8ca9a19b9766b101b2e550953ca50445e1874f7ad59bf6c3a166eee6c83fe66c924b5a3494be9d libva-2.15.0.tar.gz
+93654bb892e0e269d7682a1344fe6f7298432d1f2b347396c63aa1bd84ac0f707af34950a93098fe86a9bc8986fc9f97f75f0f15d8495ffd2caf8cf0eed9612c libva-2.21.0.tar.gz
"
diff --git a/main/libvdpau/APKBUILD b/main/libvdpau/APKBUILD
index d25a2269685..e9ca58306ae 100644
--- a/main/libvdpau/APKBUILD
+++ b/main/libvdpau/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libvdpau
pkgver=1.5
-pkgrel=0
+pkgrel=3
pkgdesc="Hardware-accelerated video playback library"
url="https://gitlab.freedesktop.org/vdpau/libvdpau"
arch="all"
@@ -15,11 +15,11 @@ build() {
abuild-meson \
-Ddri2=true \
. output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
check() {
- meson test --no-rebuild -v -C output
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
diff --git a/main/libverto/APKBUILD b/main/libverto/APKBUILD
index 9cc459c3e46..133792f6e95 100644
--- a/main/libverto/APKBUILD
+++ b/main/libverto/APKBUILD
@@ -2,18 +2,17 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=libverto
pkgver=0.3.2
-pkgrel=0
+pkgrel=2
pkgdesc="Main loop abstraction library"
-url="https://github.com/npmccallum/libverto"
+url="https://github.com/latchset/libverto"
arch="all"
license="MIT"
makedepends="glib-dev libevent-dev libev-dev automake autoconf libtool"
subpackages="$pkgname-dev $pkgname-libev $pkgname-libevent $pkgname-glib"
-source="$pkgname-$pkgver.tar.gz::https://github.com/npmccallum/libverto/archive/$pkgver.tar.gz"
+source="$pkgname-$pkgver.tar.gz::https://github.com/latchset/libverto/archive/$pkgver.tar.gz"
prepare() {
default_prepare
- cd "$builddir"
autoreconf -i
}
diff --git a/main/libvorbis/APKBUILD b/main/libvorbis/APKBUILD
index 05c08d84594..1abdf1db95a 100644
--- a/main/libvorbis/APKBUILD
+++ b/main/libvorbis/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libvorbis
pkgver=1.3.7
-pkgrel=0
+pkgrel=2
pkgdesc="Vorbis codec library"
url="https://xiph.org/vorbis"
arch="all"
@@ -23,6 +23,11 @@ source="https://downloads.xiph.org/releases/vorbis/libvorbis-$pkgver.tar.xz"
# 1.3.5-r3:
# - CVE-2017-14160
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
./configure \
--build=$CBUILD \
diff --git a/main/libwebp/APKBUILD b/main/libwebp/APKBUILD
index 42c3894fbbf..9831a09ee13 100644
--- a/main/libwebp/APKBUILD
+++ b/main/libwebp/APKBUILD
@@ -1,22 +1,33 @@
# Contributor: Sheila Aman <sheila@vulpine.house>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libwebp
-pkgver=1.2.2
+pkgver=1.3.2
pkgrel=0
pkgdesc="Libraries for working with WebP images"
url="https://developers.google.com/speed/webp"
arch="all"
license="BSD-3-Clause"
-makedepends="autoconf automake giflib-dev libjpeg-turbo-dev libpng-dev libtool"
-subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-tools"
+makedepends="giflib-dev libjpeg-turbo-dev libpng-dev"
+subpackages="
+ $pkgname-static
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-tools
+ libsharpyuv:_lib
+ libwebpdecoder:_lib
+ libwebpdemux:_lib
+ libwebpmux:_lib
+ "
source="https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-$pkgver.tar.gz"
-prepare() {
- default_prepare
- ./autogen.sh
-}
+# secfixes:
+# 1.3.1-r1:
+# - CVE-2023-4863
+# 1.3.0-r3:
+# - CVE-2023-1999
build() {
+ CFLAGS="$CFLAGS -O2 -flto=auto -ffat-lto-objects" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -35,15 +46,19 @@ check() {
package() {
make DESTDIR="$pkgdir" install
mkdir -p "$pkgdir"/usr/share/doc/$pkgname
- install -Dm644 PATENTS README "$pkgdir"/usr/share/doc/$pkgname
+ install -Dm644 PATENTS README.md "$pkgdir"/usr/share/doc/$pkgname
}
tools() {
pkgdesc="The WebP command line tools"
- mkdir -p "$subpkgdir"/usr/
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+ amove usr/bin
+}
+
+_lib() {
+ pkgdesc="$pkgdesc ($subpkgname library)"
+ amove usr/lib/$subpkgname.so.*
}
sha512sums="
-0dd0a721352b513a218d55383bcd0cc45b786df8089f70f87257b5dcc0c4e2f1798e20f1ca98b8fe51710abb667f9c4c14f20f980a11c484c8832f0dc66e3bff libwebp-1.2.2.tar.gz
+2b624d2ecfbff6b4db2719e38f146722638ae262acd96327073a04451dd05fb27ef70c5681187821d251df728a6be7e89209c861c561a13bfb786495a830bc20 libwebp-1.3.2.tar.gz
"
diff --git a/main/libwebsockets/APKBUILD b/main/libwebsockets/APKBUILD
index 230105827c3..ecb00222c50 100644
--- a/main/libwebsockets/APKBUILD
+++ b/main/libwebsockets/APKBUILD
@@ -1,23 +1,19 @@
# Contributor: V.Krishn <vkrishn4@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libwebsockets
-pkgver=4.3.1
+pkgver=4.3.3
pkgrel=0
pkgdesc="C library for lightweight websocket clients and servers"
url="https://libwebsockets.org/"
arch="all"
license="MIT"
-makedepends="cmake linux-headers openssl1.1-compat-dev zlib-dev libuv-dev samurai"
+makedepends="cmake linux-headers openssl-dev>3 zlib-dev libuv-dev samurai"
subpackages="$pkgname-doc $pkgname-dev $pkgname-test:_test $pkgname-evlib_uv:_evlib"
-source="
- libwebsockets-$pkgver.tar.gz::https://github.com/warmcat/libwebsockets/archive/v$pkgver.tar.gz
+source="$pkgname-$pkgver.tar.gz::https://github.com/warmcat/libwebsockets/archive/v$pkgver.tar.gz
fix-version-string.patch
-"
+ "
build() {
- #mkdir -p "$builddir"/build
- #cd "$builddir"/build
-
cmake -B build -G Ninja \
-DCMAKE_BUILD_TYPE=MinSizeRel \
-DCMAKE_INSTALL_PREFIX=/usr \
@@ -32,8 +28,7 @@ build() {
# TODO: Use test subpkg to validate
check() {
- cd build
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+ ctest --test-dir build --output-on-failure
}
package() {
@@ -56,6 +51,6 @@ _evlib() {
}
sha512sums="
-3cc2daadd7d2587ce946209a31741662d98367f0f9f77a1555497bef6fc6acc6cb97f5196d6ecef2d13828bb5613c60cccada03d9a01a5c970a9cfd25baeb0ae libwebsockets-4.3.1.tar.gz
+2ffd248ddf283369725097ca7410f947fe0389c360b329c76f0754afab4ba87c20a0687c5e7b8bd991b157f9d20c6faa3049757b3398e66d08662c3aa7ff9658 libwebsockets-4.3.3.tar.gz
9325b7cadeb2ca8fb20b4759feb49fb255b1b14c432b7c8c3a1b793a49266bb4f69b78a9c72656039e94ba4fc59ca2c5e821ba33e4f133e72cab26786feb9d60 fix-version-string.patch
"
diff --git a/main/libx11/APKBUILD b/main/libx11/APKBUILD
index 19fa1812a10..b9873d64ecf 100644
--- a/main/libx11/APKBUILD
+++ b/main/libx11/APKBUILD
@@ -1,11 +1,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libx11
-pkgver=1.8.1
+pkgver=1.8.9
pkgrel=1
pkgdesc="X11 client-side library"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="all"
-license="custom:XFREE86"
+license="X11"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
depends_dev="libxcb-dev xtrans"
makedepends="$depends_dev xorgproto util-macros xmlto"
@@ -13,6 +13,10 @@ source="https://www.x.org/releases/individual/lib/libX11-$pkgver.tar.xz"
builddir="$srcdir"/libX11-$pkgver
# secfixes:
+# 1.8.7-r0:
+# - CVE-2023-43785
+# - CVE-2023-43786
+# - CVE-2023-43787
# 1.7.1-r0:
# - CVE-2021-31535
# 1.6.12-r0:
@@ -32,8 +36,7 @@ build() {
--sysconfdir=/etc \
--mandir=/usr/share/man \
--localstatedir=/var \
- --with-xcb \
- --disable-thread-safety-constructor
+ --disable-xf86bigfont
make
}
@@ -47,5 +50,5 @@ package() {
}
sha512sums="
-2e36d2c47519e0cb2697f588c0ccdf73fbe75c2163f0855c78f7052dc9e920bca081f9d5e39c707a14067f101faef74fc758c8862eeba675b1535b43119d533a libX11-1.8.1.tar.xz
+737af91818537295ac86be601b1e3d7e37d150716ec549580913b7cc9a44fee7a6ce9dbc3d46167eed91f23fe857c4dd355ed8f8440fe5fbbf8e9ebe47091b96 libX11-1.8.9.tar.xz
"
diff --git a/main/libxau/APKBUILD b/main/libxau/APKBUILD
index 8bd22dc5c51..3ee0cd25c2c 100644
--- a/main/libxau/APKBUILD
+++ b/main/libxau/APKBUILD
@@ -1,20 +1,18 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libxau
-pkgver=1.0.9
-pkgrel=0
+pkgver=1.0.11
+pkgrel=4
pkgdesc="X11 authorisation library"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="all"
license="MIT"
-depends=
makedepends="xorgproto util-macros"
subpackages="$pkgname-dev $pkgname-doc"
-source="https://www.x.org/releases/individual/lib/libXau-$pkgver.tar.bz2"
+source="https://www.x.org/releases/individual/lib/libXau-$pkgver.tar.xz"
builddir="$srcdir"/libXau-$pkgver
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -24,15 +22,14 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
- install -m755 -d "$pkgdir"/usr/share/licenses/$pkgname
- install -m644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
+ install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
}
-sha512sums="3ca454ba466a807ea28b0f715066d73dc76ad312697b121d43e4d5766215052e9b7ffb8fe3ed3e496fa3f2a13f164ac692ff85cc428e26731b679f0f06a1d562 libXau-1.0.9.tar.bz2"
+sha512sums="
+f56abba3bef3fdd4739dfa69367a4251b5fab7c89194c9aece9efa66b9ebbf0736690cc9bd654aab19d9db377e4b9a5268c9c020b3d293bb5351bff5fe75a4dd libXau-1.0.11.tar.xz
+"
diff --git a/main/libxaw/APKBUILD b/main/libxaw/APKBUILD
index 32e815d28da..989dc1fc68f 100644
--- a/main/libxaw/APKBUILD
+++ b/main/libxaw/APKBUILD
@@ -1,16 +1,23 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libxaw
-pkgver=1.0.14
-pkgrel=0
+pkgver=1.0.16
+pkgrel=1
pkgdesc="X Athena Widget Set"
-url="https://www.x.org"
+url="https://www.x.org/"
arch="all"
license="MIT"
-makedepends="libxmu-dev libxpm-dev libxext-dev libx11-dev util-macros xorgproto"
+makedepends="
+ libx11-dev
+ libxext-dev
+ libxmu-dev
+ libxpm-dev
+ util-macros
+ xorgproto
+ "
subpackages="$pkgname-dev $pkgname-doc"
-source="https://www.x.org/releases/individual/lib/libXaw-$pkgver.tar.bz2"
-
+source="https://www.x.org/releases/individual/lib/libXaw-$pkgver.tar.xz"
builddir="$srcdir"/libXaw-$pkgver
+
build() {
./configure \
--build=$CBUILD \
@@ -33,4 +40,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="29d1c151369523ae6cb418e636b0b7b39ccccc35462a0b394dbeb46d5b6d780badd2eb872a55d9fbba1ee1af034e76c0463f40f8d8a7be2c336d08b3b1bf81d4 libXaw-1.0.14.tar.bz2"
+sha512sums="
+1cabad1a9b06dec7de601b977e844536823ee1a0045244acc42ca6b6107da9b4953736d94898a96cab40845eab77dae21e20e1fa66a3dfc4dedf575dfbca04aa libXaw-1.0.16.tar.xz
+"
diff --git a/main/libxcb/APKBUILD b/main/libxcb/APKBUILD
index ecd3f8918f2..a93a8b8c328 100644
--- a/main/libxcb/APKBUILD
+++ b/main/libxcb/APKBUILD
@@ -1,16 +1,16 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libxcb
-pkgver=1.15
+pkgver=1.16.1
pkgrel=0
pkgdesc="X11 client-side library"
-url="https://xcb.freedesktop.org"
+url="https://xcb.freedesktop.org/"
arch="all"
license="MIT"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
depends_dev="libxau-dev xcb-proto"
checkdepends="check-dev"
options="!check" # upstream requires an old check version (0.9.4)
-makedepends="$depends_dev libpthread-stubs libxdmcp-dev libxslt python3"
+makedepends="$depends_dev libxdmcp-dev libxslt python3"
source="https://xorg.freedesktop.org/archive/individual/lib/libxcb-$pkgver.tar.xz"
build() {
@@ -33,5 +33,5 @@ check() {
}
sha512sums="
-f6c7d766b7cf9cab6abe948ee424cbae6951dbfe2f76fa58a109cdc05b0f0919dcc4e38176a22ff4b95fc1e38596115317e32ba33b24cae0035a4e30dbcbdad9 libxcb-1.15.tar.xz
+e3afdae1c0e2a5ae2add7b2c4fdd3283cb86023ef6448f5b8b29a4bb72c274e34eaf0fc7523762bcd3f5116910fe7374490e8f26c25744301563ced80acc3e7f libxcb-1.16.1.tar.xz
"
diff --git a/main/libxcomposite/APKBUILD b/main/libxcomposite/APKBUILD
index e4741c2fd5f..2a4822d71f9 100644
--- a/main/libxcomposite/APKBUILD
+++ b/main/libxcomposite/APKBUILD
@@ -1,22 +1,20 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libxcomposite
-pkgver=0.4.5
-pkgrel=0
+pkgver=0.4.6
+pkgrel=5
pkgdesc="X11 Composite extension library"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="all"
-license="custom"
+license="MIT"
options="!check" # No test suite.
subpackages="$pkgname-dev $pkgname-doc"
depends_dev="libxext-dev"
makedepends="xorgproto libx11-dev libxext-dev libxfixes-dev util-macros"
-source="https://www.x.org/releases/individual/lib/libXcomposite-$pkgver.tar.bz2"
-
+source="https://www.x.org/releases/individual/lib/libXcomposite-$pkgver.tar.xz"
builddir="$srcdir"/libXcomposite-$pkgver
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -26,9 +24,10 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
install -D -m644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
-sha512sums="502fd51fd9097bb3ca72174ac5b25b9d3b1ff240d32c4765199df03d89337d94b4ddea49e90b177b370862430089d966ce9c38988337156352cfeae911c2d3d5 libXcomposite-0.4.5.tar.bz2"
+sha512sums="
+f35a0da8f9f22fd788eee01209557fe3a1b1abdc9744f76330ba42b21b6e3af5464ca4451c33415856417c30da5aa5624e3707980c644327249bfeda5a62a59b libXcomposite-0.4.6.tar.xz
+"
diff --git a/main/libxcursor/APKBUILD b/main/libxcursor/APKBUILD
index 3962a79a2f1..f7fdd53e9bc 100644
--- a/main/libxcursor/APKBUILD
+++ b/main/libxcursor/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libxcursor
-pkgver=1.2.1
+pkgver=1.2.2
pkgrel=1
pkgdesc="X cursor management library"
url="https://xorg.freedesktop.org/"
@@ -16,6 +16,11 @@ builddir="$srcdir"/libXcursor-$pkgver
# 1.1.15-r0:
# - CVE-2017-16612
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
./configure \
--build=$CBUILD \
@@ -30,5 +35,5 @@ package() {
}
sha512sums="
-ebb42a39855aab86d0c11fe6ad33d011cf56a6dc5c309bef643460319c03df239b7e09fe88777bb25c0e9ff8aceac6bf66e51cc04a2d5ee463b3bc3bbf1674e3 libXcursor-1.2.1.tar.xz
+6550ce1e69b35ef3356f25e31aa2779503d9cea780eff307cb646364993dfaa971304085d32677e68996bd3b8e067436c8fc89aeb4db07a12ce5bc93b735b5b0 libXcursor-1.2.2.tar.xz
"
diff --git a/main/libxdamage/APKBUILD b/main/libxdamage/APKBUILD
index 6ed10e947c5..408b271927b 100644
--- a/main/libxdamage/APKBUILD
+++ b/main/libxdamage/APKBUILD
@@ -1,16 +1,15 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libxdamage
-pkgver=1.1.5
-pkgrel=1
+pkgver=1.1.6
+pkgrel=5
pkgdesc="X11 damaged region extension library"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="all"
license="MIT"
options="!check" # No test suite.
makedepends="xorgproto libx11-dev libxfixes-dev util-macros"
subpackages="$pkgname-dev"
-source="https://www.x.org/releases/individual/lib/libXdamage-$pkgver.tar.bz2"
-
+source="https://www.x.org/releases/individual/lib/libXdamage-$pkgver.tar.xz"
builddir="$srcdir"/libXdamage-$pkgver
build() {
@@ -27,4 +26,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="a3ca6cc33b1727f717a3e2aa5593f660508a81a47918a0aa949e9e8fba105e303fe5071983b48caac92feea0fe6e8e01620805e4d19b41f21f20d837b191c124 libXdamage-1.1.5.tar.bz2"
+sha512sums="
+624dcefa1c79064569df952892f7f1351dc19ad338ce73d1a57041e406cb3e18abe531bab352b93d1f0f5c9b5c6b2652cc84a8f1fbfcbba648343812695a8acb libXdamage-1.1.6.tar.xz
+"
diff --git a/main/libxdmcp/APKBUILD b/main/libxdmcp/APKBUILD
index 37a53dd7a2c..6fdc55ec79b 100644
--- a/main/libxdmcp/APKBUILD
+++ b/main/libxdmcp/APKBUILD
@@ -1,14 +1,14 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libxdmcp
-pkgver=1.1.3
-pkgrel=0
+pkgver=1.1.5
+pkgrel=1
pkgdesc="X11 Display Manager Control Protocol library"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="all"
license="MIT"
makedepends="xorgproto libbsd-dev util-macros xmlto"
subpackages="$pkgname-dev $pkgname-doc"
-source="https://www.x.org/releases/individual/lib/libXdmcp-$pkgver.tar.bz2"
+source="https://www.x.org/releases/individual/lib/libXdmcp-$pkgver.tar.xz"
builddir="$srcdir/libXdmcp-$pkgver"
# secfixes:
@@ -31,4 +31,7 @@ check() {
package() {
make -j1 DESTDIR="$pkgdir" install
}
-sha512sums="cb1d4650f97d66e73acd2465ec7d757b9b797cce2f85e301860a44997a461837eea845ec9bd5b639ec5ca34c804f8bdd870697a5ce3f4e270b687c9ef74f25ec libXdmcp-1.1.3.tar.bz2"
+
+sha512sums="
+d7a1d70a58b7d34ddd01a91d3ccbc086a36626b7081cfcbb150d24288c6adad612b042ba7ea63a218595afb2ee04384c0f8ba84ee3c6bd29913724b54e898d83 libXdmcp-1.1.5.tar.xz
+"
diff --git a/main/libxext/APKBUILD b/main/libxext/APKBUILD
index b811247bdbc..e953421741f 100644
--- a/main/libxext/APKBUILD
+++ b/main/libxext/APKBUILD
@@ -1,36 +1,36 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libxext
-pkgver=1.3.4
-pkgrel=0
+pkgver=1.3.6
+pkgrel=2
pkgdesc="X11 miscellaneous extensions library"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="all"
license="MIT"
-depends=
depends_dev="libxau-dev"
makedepends="$depends_dev libx11-dev xorgproto util-macros xmlto"
-subpackages="$pkgname-dev $pkgname-doc"
+subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
options="!check"
-source="https://www.x.org/releases/individual/lib/libXext-$pkgver.tar.bz2
+source="https://www.x.org/releases/individual/lib/libXext-$pkgver.tar.xz
"
builddir="$srcdir"/libXext-$pkgver
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--sysconfdir=/etc \
+ --enable-static \
--with-xmlto \
--without-fop
make
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
-sha512sums="09146397d95f80c04701be1cc0a9c580ab5a085842ac31d17dfb6d4c2e42b4253b89cba695e54444e520be359883a76ffd02f42484c9e2ba2c33a5a40c29df4a libXext-1.3.4.tar.bz2"
+sha512sums="
+fd7693b5698cc4f5e80002a2cd4bd88e5d52c755c19a0417ee73029bd65f9d77b0969e765a1febc4d8fce1ba5dfb7278717f47be742e33d8fc5eb941e769792e libXext-1.3.6.tar.xz
+"
diff --git a/main/libxfixes/APKBUILD b/main/libxfixes/APKBUILD
index 57576ab0f0c..692ca9b7304 100644
--- a/main/libxfixes/APKBUILD
+++ b/main/libxfixes/APKBUILD
@@ -1,21 +1,18 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libxfixes
-pkgver=6.0.0
-pkgrel=0
+pkgver=6.0.1
+pkgrel=4
pkgdesc="X11 miscellaneous 'fixes' extension library"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="all"
-license="custom"
+license="MIT"
options="!check" # No test suite.
-depends=
makedepends="xorgproto libx11-dev util-macros"
subpackages="$pkgname-dev $pkgname-doc"
-source="https://www.x.org/releases/individual/lib/libXfixes-$pkgver.tar.bz2"
-
+source="https://www.x.org/releases/individual/lib/libXfixes-$pkgver.tar.xz"
builddir="$srcdir"/libXfixes-$pkgver
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -27,10 +24,9 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
sha512sums="
-1985ef156f382e9a7e1cc7e044e0f626de1e4c82557a511cbcf6431994c0ac25b1f8b3a0293bd3089331593db8ce01d3a71ddec68f19b5fe6029d5082fb6885d libXfixes-6.0.0.tar.bz2
+b46deffb30cd73ec8a127390d99f2ba2f3ab78f334fdba227f1f461441644a0c169b0d13ffa47576fa458780e7a6db664ff8b93e9195fb217262efd8128f1ffe libXfixes-6.0.1.tar.xz
"
diff --git a/main/libxfont/APKBUILD b/main/libxfont/APKBUILD
deleted file mode 100644
index 76917a8ebcb..00000000000
--- a/main/libxfont/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=libxfont
-pkgver=1.5.4
-pkgrel=1
-pkgdesc="X11 font rasterisation library"
-url="http://xorg.freedesktop.org/"
-arch="all"
-license="custom"
-options="!check" # No test suite.
-subpackages="$pkgname-dev"
-depends=""
-makedepends="xorgproto libfontenc-dev freetype-dev xtrans zlib-dev util-macros"
-source="https://www.x.org/archive/individual/lib/libXfont-$pkgver.tar.bz2"
-builddir="$srcdir/libXfont-$pkgver"
-
-# secfixes:
-# 1.5.4-r0:
-# - CVE-2017-16611
-
-build() {
- cd "$builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc
- make
-}
-
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
-}
-sha512sums="864edbaff45c44bd92bc4b06275c73fdf584a9b88bc523a297d4c75c01ca253f438463e929af70d753ddecfa648bb0b9bcf0ec72267db9f2b1704f7afa906cb3 libXfont-1.5.4.tar.bz2"
diff --git a/main/libxft/APKBUILD b/main/libxft/APKBUILD
index 10a725cc4e6..33b9b180dcc 100644
--- a/main/libxft/APKBUILD
+++ b/main/libxft/APKBUILD
@@ -1,17 +1,16 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libxft
-pkgver=2.3.4
-pkgrel=0
+pkgver=2.3.8
+pkgrel=3
pkgdesc="FreeType-based font drawing library for X"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="all"
license="MIT"
options="!check" # No test suite.
subpackages="$pkgname-dev $pkgname-doc"
depends_dev="zlib-dev"
makedepends="$depends_dev xorgproto fontconfig-dev freetype-dev libxrender-dev util-macros"
-source="https://www.x.org/releases/individual/lib/libXft-$pkgver.tar.bz2
- emoji.patch"
+source="https://www.x.org/releases/individual/lib/libXft-$pkgver.tar.xz"
builddir="$srcdir/libXft-$pkgver"
@@ -30,6 +29,5 @@ package() {
}
sha512sums="
-5bb019750982ed4643880efd7368bc226ad49cfa8c0c8c6d4614dfeed74f588c65e1ba69adcc12284ec07d841e5b58fc1c27f3fddf83fe1a2837b29dd9ecec51 libXft-2.3.4.tar.bz2
-fd1abcb83aa44c524dc24dca9072c4370f4716a122fed55f4de6490cb179a6ea11192d4f0ba64c822c6d4eefaeaa94796da81db4ebcf32807706f45469b304a0 emoji.patch
+fc385d73e1acb701942c154ffb5a283d17891f21d3ac598c4a3fb375a7d6082734593062368c15cad67c1a94177dd15deed878ec5ea852188393b52e92c372c8 libXft-2.3.8.tar.xz
"
diff --git a/main/libxft/emoji.patch b/main/libxft/emoji.patch
deleted file mode 100644
index 5c594ccdb61..00000000000
--- a/main/libxft/emoji.patch
+++ /dev/null
@@ -1,861 +0,0 @@
-From 723092ece088559f1af299236305911f4ee4d450 Mon Sep 17 00:00:00 2001
-From: Maxime Coste <mawww@kakoune.org>
-Date: Thu, 28 Jan 2021 19:59:10 +1100
-Subject: [PATCH 1/3] Introduce a _XftCompositeString helper function
-
-Dispatch to XRenderCompositeString{8,16,32} based off the given width.
-
-Signed-off-by: Maxime Coste <mawww@kakoune.org>
----
- src/xftrender.c | 61 ++++++++++++++++++++++++++++++++++---------------
- 1 file changed, 43 insertions(+), 18 deletions(-)
-
-diff --git a/src/xftrender.c b/src/xftrender.c
-index a352737..181c27a 100644
---- a/src/xftrender.c
-+++ b/src/xftrender.c
-@@ -25,6 +25,47 @@
- #define NUM_LOCAL 1024
- #define NUM_ELT_LOCAL 128
-
-+/*
-+ * Dispatch glyph drawing to the correct XRenderCompositeString function
-+ */
-+static void
-+_XftCompositeString (Display *dpy,
-+ int op,
-+ Picture src,
-+ Picture dst,
-+ XRenderPictFormat *format,
-+ GlyphSet glyphset,
-+ int srcx,
-+ int srcy,
-+ int dstx,
-+ int dsty,
-+ int charwidth,
-+ unsigned int *chars,
-+ int nchars)
-+{
-+ if (nchars == 0)
-+ return;
-+
-+ switch (charwidth) {
-+ case 1:
-+ default:
-+ XRenderCompositeString8 (dpy, op,
-+ src, dst, format, glyphset,
-+ srcx, srcy, dstx, dsty, (char*)chars, nchars);
-+ break;
-+ case 2:
-+ XRenderCompositeString16(dpy, op,
-+ src, dst, format, glyphset,
-+ srcx, srcy, dstx, dsty, (unsigned short*)chars, nchars);
-+ break;
-+ case 4:
-+ XRenderCompositeString32(dpy, op,
-+ src, dst, format, glyphset,
-+ srcx, srcy, dstx, dsty, (unsigned int*)chars, nchars);
-+ break;
-+ }
-+}
-+
- /*
- * Use the Render extension to draw the glyphs
- */
-@@ -114,24 +155,8 @@ XftGlyphRender (Display *dpy,
- case 4: char32[i] = (unsigned int) wire; break;
- }
- }
-- switch (width) {
-- case 1:
-- default:
-- XRenderCompositeString8 (dpy, op,
-- src, dst, font->format, font->glyphset,
-- srcx, srcy, x, y, char8, nglyphs);
-- break;
-- case 2:
-- XRenderCompositeString16(dpy, op,
-- src, dst, font->format, font->glyphset,
-- srcx, srcy, x, y, char16, nglyphs);
-- break;
-- case 4:
-- XRenderCompositeString32(dpy, op,
-- src, dst, font->format, font->glyphset,
-- srcx, srcy, x, y, char32, nglyphs);
-- break;
-- }
-+ _XftCompositeString(dpy, op, src, dst, font->format, font->glyphset,
-+ srcx, srcy, x, y, width, chars, nglyphs);
- if (chars != char_local)
- free (chars);
- bail1:
---
-GitLab
-
-
-From e0fc4ce7e87ab9c4b47e5c8e693f070dfd0d2f7b Mon Sep 17 00:00:00 2001
-From: Maxime Coste <mawww@kakoune.org>
-Date: Thu, 28 Jan 2021 20:05:13 +1100
-Subject: [PATCH 2/3] Introduce a _XftCompositeText helper function
-
-Dispatch to XRenderCompositeText{8,16,32} based off the given width.
-
-Signed-off-by: Maxime Coste <mawww@kakoune.org>
----
- src/xftrender.c | 83 +++++++++++++++++++++++++++++--------------------
- 1 file changed, 49 insertions(+), 34 deletions(-)
-
-diff --git a/src/xftrender.c b/src/xftrender.c
-index 181c27a..5852b2e 100644
---- a/src/xftrender.c
-+++ b/src/xftrender.c
-@@ -164,6 +164,49 @@ bail1:
- _XftFontManageMemory (dpy, pub);
- }
-
-+/*
-+ * Dispatch glyph drawing to the correct XRenderCompositeText function
-+ */
-+static void
-+_XftCompositeText (Display *dpy,
-+ int op,
-+ Picture src,
-+ Picture dst,
-+ XRenderPictFormat *format,
-+ int srcx,
-+ int srcy,
-+ int dstx,
-+ int dsty,
-+ int eltwidth,
-+ XGlyphElt8 *elts,
-+ int nelt)
-+{
-+ if (nelt == 0)
-+ return;
-+
-+ switch (eltwidth) {
-+ case 1:
-+ default:
-+ XRenderCompositeText8 (dpy, op,
-+ src, dst, format,
-+ srcx, srcy, dstx, dsty,
-+ (XGlyphElt8*)elts, nelt);
-+ break;
-+ case 2:
-+ XRenderCompositeText16(dpy, op,
-+ src, dst, format,
-+ srcx, srcy, dstx, dsty,
-+ (XGlyphElt16*)elts, nelt);
-+ break;
-+ case 4:
-+ XRenderCompositeText32(dpy, op,
-+ src, dst, format,
-+ srcx, srcy, dstx, dsty,
-+ (XGlyphElt32*)elts, nelt);
-+ break;
-+ }
-+}
-+
- _X_EXPORT void
- XftGlyphSpecRender (Display *dpy,
- int op,
-@@ -345,23 +388,9 @@ XftGlyphSpecRender (Display *dpy,
- elts[nelt].nchars = n;
- nelt++;
- }
-- switch (width) {
-- case 1:
-- XRenderCompositeText8 (dpy, op, src, dst, font->format,
-- srcx, srcy, glyphs[0].x, glyphs[0].y,
-- elts, nelt);
-- break;
-- case 2:
-- XRenderCompositeText16 (dpy, op, src, dst, font->format,
-- srcx, srcy, glyphs[0].x, glyphs[0].y,
-- (XGlyphElt16 *) elts, nelt);
-- break;
-- case 4:
-- XRenderCompositeText32 (dpy, op, src, dst, font->format,
-- srcx, srcy, glyphs[0].x, glyphs[0].y,
-- (XGlyphElt32 *) elts, nelt);
-- break;
-- }
-+ _XftCompositeText(dpy, op, src, dst, font->format,
-+ srcx, srcy, glyphs[0].x, glyphs[0].y,
-+ width, elts, nelt);
-
- if (elts != elts_local)
- free (elts);
-@@ -635,23 +664,9 @@ XftGlyphFontSpecRender (Display *dpy,
- elts[nelt].nchars = n;
- nelt++;
- }
-- switch (width) {
-- case 1:
-- XRenderCompositeText8 (dpy, op, src, dst, format,
-- srcx, srcy, glyphs[0].x, glyphs[0].y,
-- elts, nelt);
-- break;
-- case 2:
-- XRenderCompositeText16 (dpy, op, src, dst, format,
-- srcx, srcy, glyphs[0].x, glyphs[0].y,
-- (XGlyphElt16 *) elts, nelt);
-- break;
-- case 4:
-- XRenderCompositeText32 (dpy, op, src, dst, format,
-- srcx, srcy, glyphs[0].x, glyphs[0].y,
-- (XGlyphElt32 *) elts, nelt);
-- break;
-- }
-+ _XftCompositeText(dpy, op, src, dst, format,
-+ srcx, srcy, glyphs[0].x, glyphs[0].y,
-+ width, elts, nelt);
-
- if (elts != elts_local)
- free (elts);
---
-GitLab
-
-
-From d385aa3e5320d18918413df0e8aef3a713a47e0b Mon Sep 17 00:00:00 2001
-From: Maxime Coste <mawww@kakoune.org>
-Date: Tue, 22 Oct 2019 22:46:49 +1100
-Subject: [PATCH 3/3] Add support for BGRA glyphs display and scaling
-
-Display is done using an XRender Picture, as XRender
-glyphs are incompatible with BGRA rendering due to
-their use of the glyph bitmap as a mask.
-
-Scaling is done by averaging all relevant pixel, which gives
-much better result than nearest pixel sampling while staying
-simple enough and not too computationally expensive.
-
-This enables color emoji rendering support.
-
-Fixes: #6
-
-Signed-off-by: Maxime Coste <mawww@kakoune.org>
----
- src/xftfreetype.c | 18 +++-
- src/xftglyphs.c | 234 +++++++++++++++++++++++++++++++++++++++++++---
- src/xftint.h | 2 +
- src/xftrender.c | 69 +++++++++++---
- 4 files changed, 293 insertions(+), 30 deletions(-)
-
-diff --git a/src/xftfreetype.c b/src/xftfreetype.c
-index 1f79a81..4325d65 100644
---- a/src/xftfreetype.c
-+++ b/src/xftfreetype.c
-@@ -523,7 +523,7 @@ XftFontInfoFill (Display *dpy, _Xconst FcPattern *pattern, XftFontInfo *fi)
- /*
- * Compute glyph load flags
- */
-- fi->load_flags = FT_LOAD_DEFAULT;
-+ fi->load_flags = FT_LOAD_DEFAULT | FT_LOAD_COLOR;
-
- #ifndef XFT_EMBEDDED_BITMAP
- #define XFT_EMBEDDED_BITMAP "embeddedbitmap"
-@@ -775,6 +775,7 @@ XftFontOpenInfo (Display *dpy,
- FcChar32 hash_value;
- FcChar32 rehash_value;
- FcBool antialias;
-+ FcBool color;
- int max_glyph_memory;
- int alloc_size;
- int ascent, descent, height;
-@@ -831,12 +832,18 @@ XftFontOpenInfo (Display *dpy,
- if (!(face->face_flags & FT_FACE_FLAG_SCALABLE))
- antialias = FcFalse;
-
-+ color = FT_HAS_COLOR(face) ? FcTrue : FcFalse;
-+
- /*
- * Find the appropriate picture format
- */
- if (fi->render)
- {
-- if (antialias)
-+ if (color)
-+ {
-+ format = XRenderFindStandardFormat (dpy, PictStandardARGB32);
-+ }
-+ else if (antialias)
- {
- switch (fi->rgba) {
- case FC_RGBA_RGB:
-@@ -968,6 +975,13 @@ XftFontOpenInfo (Display *dpy,
- * which doesn't happen in XftFontInfoFill
- */
- font->info.antialias = antialias;
-+
-+ /*
-+ * Set color value, which is only known once the
-+ * font was loaded
-+ */
-+ font->info.color = color;
-+
- /*
- * bump XftFile reference count
- */
-diff --git a/src/xftglyphs.c b/src/xftglyphs.c
-index b536df4..e0bad10 100644
---- a/src/xftglyphs.c
-+++ b/src/xftglyphs.c
-@@ -26,6 +26,8 @@
-
- #include FT_SYNTHESIS_H
-
-+#include FT_GLYPH_H
-+
- /*
- * Validate the memory info for a font
- */
-@@ -78,9 +80,11 @@ _XftFontValidateMemory (Display *dpy, XftFont *public)
- static int
- _compute_xrender_bitmap_size( FT_Bitmap* target,
- FT_GlyphSlot slot,
-- FT_Render_Mode mode )
-+ FT_Render_Mode mode,
-+ FT_Matrix* matrix )
- {
- FT_Bitmap* ftbit;
-+ FT_Vector vector;
- int width, height, pitch;
-
- if ( slot->format != FT_GLYPH_FORMAT_BITMAP )
-@@ -91,6 +95,16 @@ _compute_xrender_bitmap_size( FT_Bitmap* target,
-
- width = (int)ftbit->width;
- height = (int)ftbit->rows;
-+
-+ if ( matrix && mode == FT_RENDER_MODE_NORMAL )
-+ {
-+ vector.x = ftbit->width;
-+ vector.y = ftbit->rows;
-+ FT_Vector_Transform(&vector, matrix);
-+
-+ width = (int)vector.x;
-+ height = (int)vector.y;
-+ }
- pitch = (width+3) & ~3;
-
- switch ( ftbit->pixel_mode )
-@@ -112,6 +126,10 @@ _compute_xrender_bitmap_size( FT_Bitmap* target,
- }
- break;
-
-+ case FT_PIXEL_MODE_BGRA:
-+ pitch = width * 4;
-+ break;
-+
- case FT_PIXEL_MODE_LCD:
- if ( mode != FT_RENDER_MODE_LCD )
- return -1;
-@@ -142,6 +160,105 @@ _compute_xrender_bitmap_size( FT_Bitmap* target,
- return pitch * height;
- }
-
-+/* this functions converts the glyph bitmap found in a FT_GlyphSlot
-+ * into a different format while scaling by applying the given matrix
-+ * (see _compute_xrender_bitmap_size)
-+ *
-+ * you should call this function after _compute_xrender_bitmap_size
-+ *
-+ * target :: target bitmap descriptor. Note that its 'buffer' pointer
-+ * must point to memory allocated by the caller
-+ *
-+ * source :: the source bitmap descriptor
-+ *
-+ * matrix :: the scaling matrix to apply
-+ */
-+static void
-+_scaled_fill_xrender_bitmap( FT_Bitmap* target,
-+ FT_Bitmap* source,
-+ const FT_Matrix* matrix )
-+{
-+ unsigned char* src_buf = source->buffer;
-+ unsigned char* dst_line = target->buffer;
-+ int src_pitch = source->pitch;
-+ int width = target->width;
-+ int height = target->rows;
-+ int pitch = target->pitch;
-+ int h;
-+ FT_Vector vector;
-+ FT_Matrix inverse = *matrix;
-+ int sampling_width;
-+ int sampling_height;
-+ int sample_count;
-+
-+ if ( src_pitch < 0 )
-+ src_buf -= src_pitch * (source->rows - 1);
-+
-+ FT_Matrix_Invert(&inverse);
-+
-+ /* compute how many source pixels a target pixel spans */
-+ vector.x = 1;
-+ vector.y = 1;
-+ FT_Vector_Transform(&vector, &inverse);
-+ sampling_width = vector.x / 2;
-+ sampling_height = vector.y / 2;
-+ sample_count = (2 * sampling_width + 1) * (2 * sampling_height + 1);
-+
-+ for ( h = height; h > 0; h--, dst_line += pitch )
-+ {
-+ int x;
-+
-+ for ( x = 0; x < width; x++ )
-+ {
-+ unsigned char* src;
-+
-+#define CLAMP(x, min, max) ((x) < (min) ? (min) : ((x) > (max) ? (max) : (x)))
-+
-+ /* compute target pixel location in source space */
-+ vector.x = (x * 0x10000) + 0x10000 / 2;
-+ vector.y = ((height - h) * 0x10000) + 0x10000 / 2;
-+ FT_Vector_Transform(&vector, &inverse);
-+ vector.x = CLAMP(FT_RoundFix(vector.x) / 0x10000, 0, source->width - 1);
-+ vector.y = CLAMP(FT_RoundFix(vector.y) / 0x10000, 0, source->rows - 1);
-+
-+ switch ( source->pixel_mode )
-+ {
-+ case FT_PIXEL_MODE_MONO: /* convert mono to 8-bit gray, scale using nearest pixel */
-+ src = src_buf + (vector.y * src_pitch);
-+ if ( src[(vector.x >> 3)] & (0x80 >> (vector.x & 7)) )
-+ dst_line[x] = 0xff;
-+ break;
-+
-+ case FT_PIXEL_MODE_GRAY: /* scale using nearest pixel */
-+ src = src_buf + (vector.y * src_pitch);
-+ dst_line[x] = src[vector.x];
-+ break;
-+
-+ case FT_PIXEL_MODE_BGRA: /* scale by averaging all relevant source pixels, keep BGRA format */
-+ {
-+ int sample_x, sample_y;
-+ int bgra[4] = {};
-+ for (sample_y = - sampling_height; sample_y < sampling_height + 1; ++sample_y)
-+ {
-+ int src_y = CLAMP(vector.y + sample_y, 0, source->rows - 1);
-+ src = src_buf + (src_y * src_pitch);
-+ for (sample_x = - sampling_width; sample_x < sampling_width + 1; ++sample_x)
-+ {
-+ int src_x = CLAMP(vector.x + sample_x, 0, source->width - 1);
-+ for (int i = 0; i < 4; ++i)
-+ bgra[i] += src[src_x * 4 + i];
-+ }
-+ }
-+
-+ for (int i = 0; i < 4; ++i)
-+ dst_line[4 * x + i] = bgra[i] / sample_count;
-+ break;
-+ }
-+ }
-+ }
-+ }
-+}
-+
- /* this functions converts the glyph bitmap found in a FT_GlyphSlot
- * into a different format (see _compute_xrender_bitmap_size)
- *
-@@ -244,6 +361,11 @@ _fill_xrender_bitmap( FT_Bitmap* target,
- }
- break;
-
-+ case FT_PIXEL_MODE_BGRA: /* Preserve BGRA format */
-+ for ( h = height; h > 0; h--, srcLine += src_pitch, dstLine += pitch )
-+ memcpy( dstLine, srcLine, width * 4 );
-+ break;
-+
- case FT_PIXEL_MODE_LCD:
- if ( !bgr )
- {
-@@ -339,6 +461,55 @@ _fill_xrender_bitmap( FT_Bitmap* target,
- }
- }
-
-+/* This function creates a Picture for the given glyph on the default root window
-+ * It will only work in Xinerama mode
-+ *
-+ * dpy :: target display
-+ *
-+ * format :: target pixmap format
-+ *
-+ * width :: picture width
-+ *
-+ * width :: picture height
-+ *
-+ * data :: bitmap data
-+ *
-+ */
-+static Picture
-+_create_glyph_bgra_picture (Display *dpy,
-+ XRenderPictFormat *format,
-+ int width,
-+ int height,
-+ unsigned char *data)
-+{
-+ XImage image = {
-+ width, height, 0, ZPixmap, (char *)data,
-+ dpy->byte_order, dpy->bitmap_unit, dpy->bitmap_bit_order, 32,
-+ 32, 0, 32,
-+ 0, 0, 0
-+ };
-+ Picture picture;
-+ Pixmap pixmap;
-+ GC gc;
-+
-+ pixmap = XCreatePixmap(dpy, DefaultRootWindow(dpy), width, height, 32);
-+ if (!pixmap)
-+ return None;
-+
-+ gc = XCreateGC(dpy, pixmap, 0, NULL);
-+ if (!gc)
-+ return None;
-+
-+ XInitImage(&image);
-+ XPutImage(dpy, pixmap, gc, &image, 0, 0, 0, 0, width, height);
-+ picture = XRenderCreatePicture(dpy, pixmap, format, 0, NULL);
-+
-+ XFreeGC(dpy, gc);
-+ XFreePixmap(dpy, pixmap);
-+
-+ return picture;
-+}
-+
- _X_EXPORT void
- XftFontLoadGlyphs (Display *dpy,
- XftFont *pub,
-@@ -365,6 +536,8 @@ XftFontLoadGlyphs (Display *dpy,
- FT_Vector vector;
- FT_Face face;
- FT_Render_Mode mode = FT_RENDER_MODE_MONO;
-+ FcBool transform;
-+ FcBool glyph_transform;
-
- if (!info)
- return;
-@@ -374,6 +547,8 @@ XftFontLoadGlyphs (Display *dpy,
- if (!face)
- return;
-
-+ if (font->info.color)
-+ mode = FT_RENDER_MODE_NORMAL;
- if (font->info.antialias)
- {
- switch (font->info.rgba) {
-@@ -390,6 +565,8 @@ XftFontLoadGlyphs (Display *dpy,
- }
- }
-
-+ transform = font->info.transform && mode != FT_RENDER_MODE_MONO;
-+
- while (nglyph--)
- {
- glyphindex = *glyphs++;
-@@ -440,7 +617,7 @@ XftFontLoadGlyphs (Display *dpy,
- /*
- * Compute glyph metrics from FreeType information
- */
-- if(font->info.transform && glyphslot->format != FT_GLYPH_FORMAT_BITMAP)
-+ if (transform)
- {
- /*
- * calculate the true width by transforming all four corners.
-@@ -487,7 +664,7 @@ XftFontLoadGlyphs (Display *dpy,
- * Clip charcell glyphs to the bounding box
- * XXX transformed?
- */
-- if (font->info.spacing >= FC_CHARCELL && !font->info.transform)
-+ if (font->info.spacing >= FC_CHARCELL && !transform)
- {
- if (font->info.load_flags & FT_LOAD_VERTICAL_LAYOUT)
- {
-@@ -519,18 +696,20 @@ XftFontLoadGlyphs (Display *dpy,
- }
- }
-
-+ glyph_transform = transform;
- if ( glyphslot->format != FT_GLYPH_FORMAT_BITMAP )
- {
- error = FT_Render_Glyph( face->glyph, mode );
- if (error)
- continue;
-+ glyph_transform = False;
- }
-
- FT_Library_SetLcdFilter( _XftFTlibrary, FT_LCD_FILTER_NONE );
-
- if (font->info.spacing >= FC_MONO)
- {
-- if (font->info.transform)
-+ if (transform)
- {
- if (font->info.load_flags & FT_LOAD_VERTICAL_LAYOUT)
- {
-@@ -613,14 +792,27 @@ XftFontLoadGlyphs (Display *dpy,
- }
- }
-
-- size = _compute_xrender_bitmap_size( &local, glyphslot, mode );
-+ size = _compute_xrender_bitmap_size( &local, glyphslot, mode, glyph_transform ? &font->info.matrix : NULL );
- if ( size < 0 )
- continue;
-
- xftg->metrics.width = (unsigned short)local.width;
- xftg->metrics.height = (unsigned short)local.rows;
-- xftg->metrics.x = (short)(- glyphslot->bitmap_left);
-- xftg->metrics.y = (short)( glyphslot->bitmap_top);
-+ if (transform)
-+ {
-+ vector.x = - glyphslot->bitmap_left;
-+ vector.y = glyphslot->bitmap_top;
-+
-+ FT_Vector_Transform(&vector, &font->info.matrix);
-+
-+ xftg->metrics.x = (short)vector.x;
-+ xftg->metrics.y = (short)vector.y;
-+ }
-+ else
-+ {
-+ xftg->metrics.x = (short)(- glyphslot->bitmap_left);
-+ xftg->metrics.y = (short)( glyphslot->bitmap_top);
-+ }
-
- /*
- * If the glyph is relatively large (> 1% of server memory),
-@@ -645,9 +837,12 @@ XftFontLoadGlyphs (Display *dpy,
-
- local.buffer = bufBitmap;
-
-- _fill_xrender_bitmap( &local, glyphslot, mode,
-- (font->info.rgba == FC_RGBA_BGR ||
-- font->info.rgba == FC_RGBA_VBGR ) );
-+ if (mode == FT_RENDER_MODE_NORMAL && glyph_transform)
-+ _scaled_fill_xrender_bitmap(&local, &glyphslot->bitmap, &font->info.matrix);
-+ else
-+ _fill_xrender_bitmap( &local, glyphslot, mode,
-+ (font->info.rgba == FC_RGBA_BGR ||
-+ font->info.rgba == FC_RGBA_VBGR ) );
-
- /*
- * Copy or convert into local buffer.
-@@ -662,6 +857,7 @@ XftFontLoadGlyphs (Display *dpy,
- */
- glyph = (Glyph) glyphindex;
-
-+ xftg->picture = 0;
- xftg->glyph_memory = (size_t)size + sizeof (XftGlyph);
- if (font->format)
- {
-@@ -685,15 +881,21 @@ XftFontLoadGlyphs (Display *dpy,
- }
- }
- }
-- else if ( mode != FT_RENDER_MODE_NORMAL )
-+ else if (glyphslot->bitmap.pixel_mode == FT_PIXEL_MODE_BGRA || mode != FT_RENDER_MODE_NORMAL)
- {
- /* invert ARGB <=> BGRA */
- if (ImageByteOrder (dpy) != XftNativeByteOrder ())
- XftSwapCARD32 ((CARD32 *) bufBitmap, size >> 2);
- }
-- XRenderAddGlyphs (dpy, font->glyphset, &glyph,
-- &xftg->metrics, 1,
-- (char *) bufBitmap, size);
-+
-+ if (glyphslot->bitmap.pixel_mode == FT_PIXEL_MODE_BGRA)
-+ xftg->picture = _create_glyph_bgra_picture(dpy, font->format,
-+ local.width, local.rows,
-+ bufBitmap);
-+ else
-+ XRenderAddGlyphs (dpy, font->glyphset, &glyph,
-+ &xftg->metrics, 1,
-+ (char *) bufBitmap, size);
- }
- else
- {
-@@ -744,7 +946,9 @@ XftFontUnloadGlyphs (Display *dpy,
- {
- if (font->format)
- {
-- if (font->glyphset)
-+ if (xftg->picture)
-+ XRenderFreePicture(dpy, xftg->picture);
-+ else if (font->glyphset)
- {
- glyphBuf[nused++] = (Glyph) glyphindex;
- if (nused == sizeof (glyphBuf) / sizeof (glyphBuf[0]))
-diff --git a/src/xftint.h b/src/xftint.h
-index ced9a02..1af40fe 100644
---- a/src/xftint.h
-+++ b/src/xftint.h
-@@ -85,6 +85,7 @@ typedef struct _XftGlyph {
- XGlyphInfo metrics;
- void *bitmap;
- unsigned long glyph_memory;
-+ Picture picture;
- } XftGlyph;
-
- /*
-@@ -134,6 +135,7 @@ struct _XftFontInfo {
- FT_F26Dot6 xsize, ysize; /* pixel size */
- FcBool antialias; /* doing antialiasing */
- FcBool embolden; /* force emboldening */
-+ FcBool color; /* contains color glyphs */
- int rgba; /* subpixel order */
- int lcd_filter; /* lcd filter */
- FT_Matrix matrix; /* glyph transformation matrix */
-diff --git a/src/xftrender.c b/src/xftrender.c
-index 5852b2e..bd001be 100644
---- a/src/xftrender.c
-+++ b/src/xftrender.c
-@@ -84,12 +84,14 @@ XftGlyphRender (Display *dpy,
- int nglyphs)
- {
- XftFontInt *font = (XftFontInt *) pub;
-- int i;
-+ int i, j;
- FT_UInt missing[XFT_NMISSING];
- int nmissing;
- FT_UInt g, max;
- int size, width;
-+ int dstx, dsty;
- Glyph wire;
-+ XftGlyph* glyph;
- char *char8;
- unsigned short *char16;
- unsigned int *char32;
-@@ -141,22 +143,46 @@ XftGlyphRender (Display *dpy,
- if (!chars)
- goto bail1;
- }
-+ dstx = x;
-+ dsty = y;
- char8 = (char *) chars;
- char16 = (unsigned short *) chars;
- char32 = (unsigned int *) chars;
-- for (i = 0; i < nglyphs; i++)
-+ for (i = 0, j = 0; i < nglyphs; i++)
- {
- wire = (Glyph) glyphs[i];
- if (wire >= font->num_glyphs || !font->glyphs[wire])
- wire = 0;
-- switch (width) {
-- case 1: char8[i] = (char) wire; break;
-- case 2: char16[i] = (unsigned short) wire; break;
-- case 4: char32[i] = (unsigned int) wire; break;
-+ glyph = font->glyphs[wire];
-+ if (glyph->picture)
-+ {
-+ _XftCompositeString(dpy, op, src, dst, font->format, font->glyphset,
-+ srcx, srcy, x, y, width, chars, j);
-+ XRenderComposite(dpy, PictOpOver, glyph->picture, None,
-+ dst, 0, 0, 0, 0, dstx, dsty - glyph->metrics.y,
-+ glyph->metrics.width, glyph->metrics.height);
-+
-+ dstx += glyph->metrics.xOff;
-+ dsty += glyph->metrics.yOff;
-+
-+ x = dstx;
-+ y = dsty;
-+ j = 0;
-+ }
-+ else
-+ {
-+ switch (width) {
-+ case 1: char8[j] = (char) wire; break;
-+ case 2: char16[j] = (unsigned short) wire; break;
-+ case 4: char32[j] = (unsigned int) wire; break;
-+ }
-+ dstx += glyph->metrics.xOff;
-+ dsty += glyph->metrics.yOff;
-+ ++j;
- }
- }
- _XftCompositeString(dpy, op, src, dst, font->format, font->glyphset,
-- srcx, srcy, x, y, width, chars, nglyphs);
-+ srcx, srcy, x, y, width, chars, j);
- if (chars != char_local)
- free (chars);
- bail1:
-@@ -319,9 +345,10 @@ XftGlyphSpecRender (Display *dpy,
- g = 0;
- /*
- * check to see if the glyph is placed where it would
-- * fall using the normal spacing
-+ * fall using the normal spacing and if it would render
-+ * as a XRender glyph
- */
-- if ((glyph = font->glyphs[g]))
-+ if ((glyph = font->glyphs[g]) && !glyph->picture)
- {
- if (x != glyphs[i].x || y != glyphs[i].y)
- {
-@@ -335,7 +362,7 @@ XftGlyphSpecRender (Display *dpy,
- }
-
- elts = elts_local;
-- if (nelt > NUM_ELT_LOCAL)
-+ if (!font->info.color && nelt > NUM_ELT_LOCAL)
- {
- elts = malloc ((size_t)nelt * sizeof (XGlyphElt8));
- if (!elts)
-@@ -343,7 +370,7 @@ XftGlyphSpecRender (Display *dpy,
- }
-
- /*
-- * Generate the list of glyph elts
-+ * Generate the list of glyph elts or render color glyphs
- */
- nelt = 0;
- x = y = 0;
-@@ -357,6 +384,14 @@ XftGlyphSpecRender (Display *dpy,
- g = 0;
- if ((glyph = font->glyphs[g]))
- {
-+ if (glyph->picture)
-+ {
-+ XRenderComposite(dpy, PictOpOver, glyph->picture, None,
-+ dst, 0, 0, 0, 0,
-+ glyphs[i].x, glyphs[i].y - glyph->metrics.y,
-+ glyph->metrics.width, glyph->metrics.height);
-+ continue;
-+ }
- if (!i || x != glyphs[i].x || y != glyphs[i].y)
- {
- if (n)
-@@ -589,7 +624,7 @@ XftGlyphFontSpecRender (Display *dpy,
- * check to see if the glyph is placed where it would
- * fall using the normal spacing
- */
-- if ((glyph = font->glyphs[g]))
-+ if ((glyph = font->glyphs[g]) && !glyph->picture)
- {
- if (pub != prevPublic || x != glyphs[i].x || y != glyphs[i].y)
- {
-@@ -614,7 +649,7 @@ XftGlyphFontSpecRender (Display *dpy,
- }
-
- /*
-- * Generate the list of glyph elts
-+ * Generate the list of glyph elts and render color glyphs
- */
- nelt = 0;
- x = y = 0;
-@@ -632,6 +667,14 @@ XftGlyphFontSpecRender (Display *dpy,
- g = 0;
- if ((glyph = font->glyphs[g]))
- {
-+ if (glyph->picture)
-+ {
-+ XRenderComposite(dpy, PictOpOver, glyph->picture, None,
-+ dst, 0, 0, 0, 0,
-+ glyphs[i].x, glyphs[i].y - glyph->metrics.y,
-+ glyph->metrics.width, glyph->metrics.height);
-+ continue;
-+ }
- if (!i || pub != prevPublic || x != glyphs[i].x || y != glyphs[i].y)
- {
- if (n)
---
-GitLab
-
diff --git a/main/libxi/APKBUILD b/main/libxi/APKBUILD
index 262a82500ea..57074c66445 100644
--- a/main/libxi/APKBUILD
+++ b/main/libxi/APKBUILD
@@ -1,13 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libxi
-pkgver=1.8
-pkgrel=0
+pkgver=1.8.1
+pkgrel=4
pkgdesc="X11 Input extension library"
url="https://www.x.org"
arch="all"
license="MIT AND X11"
options="!check" # No test suite.
-subpackages="$pkgname-dev $pkgname-doc"
+subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
makedepends="
xorgproto
libx11-dev
@@ -16,7 +16,7 @@ makedepends="
util-macros
xmlto
"
-source="https://www.x.org/releases/individual/lib/libXi-$pkgver.tar.bz2"
+source="https://www.x.org/releases/individual/lib/libXi-$pkgver.tar.xz"
builddir="$srcdir"/libXi-$pkgver
build() {
@@ -29,7 +29,7 @@ build() {
--localstatedir=/var \
--with-xmlto \
--without-fop \
- --disable-static
+ --enable-static
make
}
@@ -39,5 +39,5 @@ package() {
}
sha512sums="
-4b2c667a8466eb389f253d77285c3f506c4a2b6c75054c722974a864565d565cc0c5701f8ea773eb929ceb94adfeb737ecd7a0bfc2c240157416a5f343c07aba libXi-1.8.tar.bz2
+a30b1a07e6d710f5196e7477415d68074736f89d954e8f2d5ccc9b5f349e7d1d440c90fb512508176b5db5ecad55608cfb540872936b731963fd83343db3a0b9 libXi-1.8.1.tar.xz
"
diff --git a/main/libxinerama/APKBUILD b/main/libxinerama/APKBUILD
index 07661b4bf40..b223dfa5577 100644
--- a/main/libxinerama/APKBUILD
+++ b/main/libxinerama/APKBUILD
@@ -1,22 +1,20 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libxinerama
-pkgver=1.1.4
-pkgrel=1
+pkgver=1.1.5
+pkgrel=4
pkgdesc="X11 Xinerama extension library"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="all"
license="MIT"
options="!check" # No test suite.
subpackages="$pkgname-dev $pkgname-doc"
-depends=
makedepends="libx11-dev libxext-dev util-macros xorgproto"
-source="https://www.x.org/releases/individual/lib/libXinerama-$pkgver.tar.bz2
+source="https://www.x.org/releases/individual/lib/libXinerama-$pkgver.tar.xz
"
builddir="$srcdir"/libXinerama-$pkgver
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -25,7 +23,9 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
-sha512sums="cff777ad942614fbf6bc6d8529f399e62debf3ecbf6cc0694a94e38c022bf929ffd5636fb59f55533c394d89b23af3ea51fa5128927f12a85787e16239330f14 libXinerama-1.1.4.tar.bz2"
+
+sha512sums="
+735b5320de4782005b379e409bf2f976131c17d496b297d33a0e127ca1443034778586b6b25c077b2ad73a4ab34d440d7510475e0041f38202bb40f15fb08ff7 libXinerama-1.1.5.tar.xz
+"
diff --git a/main/libxkbcommon/APKBUILD b/main/libxkbcommon/APKBUILD
index bc6a7bede5e..3d50e9b8e00 100644
--- a/main/libxkbcommon/APKBUILD
+++ b/main/libxkbcommon/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
+# Maintainer: Peter Shkenev <santurysim@gmail.com>
pkgname=libxkbcommon
-pkgver=1.4.1
+pkgver=1.7.0
pkgrel=0
pkgdesc="keyboard handling library"
url="https://www.xkbcommon.org/"
@@ -19,9 +19,17 @@ makedepends="
xkeyboard-config-dev
"
checkdepends="bash"
-subpackages="$pkgname-static $pkgname-dev $pkgname-x11 xkbcli xkbcli-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/xkbcommon/libxkbcommon/archive/xkbcommon-$pkgver.tar.gz"
-builddir="$srcdir/libxkbcommon-xkbcommon-$pkgver"
+subpackages="
+ $pkgname-static
+ $pkgname-dev
+ $pkgname-x11
+ xkbcli
+ xkbcli-doc
+ xkbcli-bash-completion
+ "
+source="https://xkbcommon.org/download/libxkbcommon-$pkgver.tar.xz
+ allow-skip-test.patch
+ "
build() {
abuild-meson \
@@ -30,11 +38,11 @@ build() {
-Denable-x11=true \
-Ddefault_library=both \
build
- meson compile ${JOBS:+-j ${JOBS}} -C build
+ meson compile -C build
}
check() {
- meson test --no-rebuild -v -C build
+ meson test --no-rebuild --print-errorlogs -C build
}
package() {
@@ -43,16 +51,26 @@ package() {
x11() {
pkgdesc="$pkgdesc (x11 support)"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*x11*.so.* "$subpkgdir"/usr/lib
+
+ amove usr/lib/*x11*.so.*
}
xkbcli() {
pkgdesc="xkb command-line tool with interactive debugger"
+
amove usr/bin/xkbcli
amove usr/libexec/xkbcommon/xkbcli*
}
+bashcomp() {
+ default_bashcomp
+
+ pkgdesc="Bash completions for xkbcli"
+ install_if="xkbcli=$pkgver-r$pkgrel bash-completion"
+}
+
+
sha512sums="
-9d8c34e719d6dfcba62d0f3c72ad7861beefffe9e7ea583271845ed2cecfb79ea14ccf7c623f72d503fd831a1d339a711f4b7177a0bfc5d37499720fec04bcc9 libxkbcommon-1.4.1.tar.gz
+4b74a9f3f63e2ebc1cbdcaa963c70362e55fa527e1d89b6a1fd30d7a84a8b60c1b3dc99bcfbde85aa31890e0b2f62f0bad3c8ff8340fe6a930ee662b33448ba5 libxkbcommon-1.7.0.tar.xz
+17608171e5fe145030585a84ac43770a5f3d57a8d083b27ee443f08e886e046a802833658f68bcd2c07834ec7c95d5fa952414d6940a9ae4c38736c55d0bf98f allow-skip-test.patch
"
diff --git a/main/libxkbcommon/allow-skip-test.patch b/main/libxkbcommon/allow-skip-test.patch
new file mode 100644
index 00000000000..b0f342ec4ca
--- /dev/null
+++ b/main/libxkbcommon/allow-skip-test.patch
@@ -0,0 +1,84 @@
+Partial revert of 0ed9390c07130c2d3ebaf2e1b67c6dc0011a8aee
+as we don't have xvfb, needed for the tests, packaged in main
+
+diff --git a/test/x11.c b/test/x11.c
+index c3cf2ee..4ff211e 100644
+--- a/test/x11.c
++++ b/test/x11.c
+@@ -45,7 +45,7 @@ X11_TEST(test_basic)
+ */
+ conn = xcb_connect(display, NULL);
+ if (!conn || xcb_connection_has_error(conn)) {
+- exit_code = TEST_SETUP_FAILURE;
++ exit_code = SKIP_TEST;
+ goto err_conn;
+ }
+
+@@ -55,7 +55,7 @@ X11_TEST(test_basic)
+ XKB_X11_SETUP_XKB_EXTENSION_NO_FLAGS,
+ NULL, NULL, NULL, NULL);
+ if (!ret) {
+- exit_code = TEST_SETUP_FAILURE;
++ exit_code = SKIP_TEST;
+ goto err_conn;
+ }
+
+diff --git a/test/x11comp.c b/test/x11comp.c
+index 33dd7c2..dc70fd1 100644
+--- a/test/x11comp.c
++++ b/test/x11comp.c
+@@ -51,7 +51,7 @@ X11_TEST(test_basic)
+
+ conn = xcb_connect(display, NULL);
+ if (xcb_connection_has_error(conn)) {
+- ret = TEST_SETUP_FAILURE;
++ ret = SKIP_TEST;
+ goto err_conn;
+ }
+ ret = xkb_x11_setup_xkb_extension(conn,
+@@ -60,7 +60,7 @@ X11_TEST(test_basic)
+ XKB_X11_SETUP_XKB_EXTENSION_NO_FLAGS,
+ NULL, NULL, NULL, NULL);
+ if (!ret) {
+- ret = TEST_SETUP_FAILURE;
++ ret = SKIP_TEST;
+ goto err_xcb;
+ }
+ device_id = xkb_x11_get_core_keyboard_device_id(conn);
+@@ -72,12 +72,12 @@ X11_TEST(test_basic)
+ ret = posix_spawnp(&xkbcomp_pid, "xkbcomp", NULL, NULL, xkbcomp_argv, envp);
+ free(xkb_path);
+ if (ret != 0) {
+- ret = TEST_SETUP_FAILURE;
++ ret = SKIP_TEST;
+ goto err_xcb;
+ }
+ ret = waitpid(xkbcomp_pid, &status, 0);
+ if (ret < 0 || !WIFEXITED(status) || WEXITSTATUS(status) != 0) {
+- ret = TEST_SETUP_FAILURE;
++ ret = SKIP_TEST;
+ goto err_xcb;
+ }
+
+diff --git a/test/xvfb-wrapper.c b/test/xvfb-wrapper.c
+index ab0c645..144187a 100644
+--- a/test/xvfb-wrapper.c
++++ b/test/xvfb-wrapper.c
+@@ -92,7 +92,7 @@ xvfb_wrapper(int (*test_func)(char* display))
+ ret = posix_spawnp(&xvfb_pid, "Xvfb", NULL, NULL, xvfb_argv, envp);
+ if (ret != 0) {
+ fprintf(stderr, "posix_spawnp error %d: %s\n", ret, strerror(ret));
+- ret = TEST_SETUP_FAILURE;
++ ret = SKIP_TEST;
+ goto err_xvfd;
+ }
+
+@@ -118,7 +118,7 @@ xvfb_wrapper(int (*test_func)(char* display))
+ length = fread(&display[1], 1, sizeof(display) - 1, display_fd);
+ if (length <= 0) {
+ fprintf(stderr, "fread error: length=%zu\n", length);
+- ret = TEST_SETUP_FAILURE;
++ ret = SKIP_TEST;
+ goto err_xvfd;
+ } else {
+ /* Drop the newline character */
diff --git a/main/libxkbfile/APKBUILD b/main/libxkbfile/APKBUILD
index 24a42a5442a..4d6bae58c69 100644
--- a/main/libxkbfile/APKBUILD
+++ b/main/libxkbfile/APKBUILD
@@ -1,20 +1,16 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libxkbfile
-pkgver=1.1.0
+pkgver=1.1.3
pkgrel=0
pkgdesc="X11 keyboard file manipulation library"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="all"
license="MIT"
-depends=
makedepends="libx11-dev util-macros"
-subpackages="$pkgname-dev"
-source="https://www.x.org/releases/individual/lib/$pkgname-$pkgver.tar.bz2"
+subpackages="$pkgname-dev $pkgname-doc"
+source="https://www.x.org/releases/individual/lib/libxkbfile-$pkgver.tar.xz"
-builddir="$srcdir/$pkgname-$pkgver"
-
-build () {
- cd "$builddir"
+build() {
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -24,15 +20,15 @@ build () {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
- install -D -m644 "$srcdir"/$pkgname-$pkgver/COPYING \
+ install -D -m644 COPYING \
"$pkgdir"/usr/share/licenses/$pkgname/COPYING
}
-sha512sums="1c6a57564e916ccdc3df3c49b9f3589f701df0cec55112c12ddc35ac3ed556608c28fe98e5ba0ac1962e9a65ed1e90eb7e6169b564951bf55a7cf3499b745826 libxkbfile-1.1.0.tar.bz2"
+sha512sums="
+d80ac41f6fa3a1ffad77ea1f8f9d9542f0bd210d74b263802bc6e6c1594fe325b27f42b5454aeeb36352518963b1ed1fdbbad95d7db3690b2e36d54742b7c236 libxkbfile-1.1.3.tar.xz
+"
diff --git a/main/libxml2/APKBUILD b/main/libxml2/APKBUILD
index a0fb8ba6464..6ff9ac0e451 100644
--- a/main/libxml2/APKBUILD
+++ b/main/libxml2/APKBUILD
@@ -1,32 +1,42 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=libxml2
-pkgver=2.9.14
-pkgrel=0
+pkgver=2.12.6
+pkgrel=2
pkgdesc="XML parsing library, version 2"
-url="http://www.xmlsoft.org/"
+url="https://gitlab.gnome.org/GNOME/libxml2"
arch="all"
license="MIT"
-depends_dev="zlib-dev xz-dev"
+depends_dev="zlib-dev xz-dev $pkgname-utils=$pkgver-r$pkgrel"
checkdepends="perl tar"
makedepends_host="$depends_dev"
-subpackages="$pkgname-dbg $pkgname-doc $pkgname-dev $pkgname-utils"
+subpackages="$pkgname-dbg $pkgname-doc $pkgname-static $pkgname-dev $pkgname-utils"
if [ -z "$BOOTSTRAP" ]; then
- makedepends_build="python3-dev"
- subpackages="$subpackages py3-$pkgname:_py3"
- py_configure="--with-python=/usr/bin/python3"
+ makedepends_build="$makedepends_build python3-dev"
+ subpackages="$subpackages py3-$pkgname-pyc py3-$pkgname:_py3"
+ _py_configure="--with-python=/usr/bin/python3"
+else
+ _py_configure="--with-python=no"
fi
-options="!strip"
-source="https://download.gnome.org/sources/libxml2/${pkgver%.*}/libxml2-$pkgver.tar.xz
- libxml2-2.9.8-python3-unicode-errors.patch
- "
+source="https://download.gnome.org/sources/libxml2/${pkgver%.*}/libxml2-$pkgver.tar.xz"
# secfixes:
+# 2.12.5-r0:
+# - CVE-2024-25062
+# 2.10.4-r0:
+# - CVE-2023-28484
+# - CVE-2023-29469
+# 2.10.3-r0:
+# - CVE-2022-40303
+# - CVE-2022-40304
+# 2.10.0-r0:
+# - CVE-2022-2309
# 2.9.14-r0:
# - CVE-2022-29824
# 2.9.13-r0:
# - CVE-2022-23308
# 2.9.11-r0:
+# - CVE-2016-3709
# - CVE-2021-3517
# - CVE-2021-3518
# - CVE-2021-3537
@@ -51,9 +61,6 @@ source="https://download.gnome.org/sources/libxml2/${pkgver%.*}/libxml2-$pkgver.
prepare() {
default_prepare
- # setup.py is generated
- rm python/setup.py
-
# We don't build libxml2 with icu.
rm test/icu_parse_test.xml
}
@@ -66,9 +73,10 @@ build() {
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
+ --enable-static \
--with-lzma \
--with-zlib \
- $py_configure
+ $_py_configure
make
}
@@ -79,33 +87,22 @@ check() {
package() {
make -j1 DESTDIR="$pkgdir" install
-
- # We don't need static lib for python bindings.
- if [ -z "$BOOTSTRAP" ]; then
- rm "$pkgdir"/usr/lib/python*/site-packages/*.a
- fi
-}
-
-dev() {
- default_dev
- mv "$pkgdir"/usr/lib/*.sh "$subpkgdir"/usr/lib/
}
_py3() {
depends="python3"
pkgdesc="$pkgname python3 bindings"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/python3* "$subpkgdir"/usr/lib/
+
+ amove usr/lib/python3*
}
utils() {
pkgdesc="XML utilities"
replaces="libxml2"
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+
+ amove usr/bin
}
sha512sums="
-d08e6cafb289c499fdc5b3a12181e032a34f7a249bc66758859f964d3e71e19fd69be79921e1a9d8ab1e692d15b13f5fae95eeb10c3236974d89e218f5107606 libxml2-2.9.14.tar.xz
-a205c97fa1488fb8907cfa08b5f82e2055c80b86213dc3cc5c4b526fe6aa786bcc4e4eeb226c44635a1d021307b39e3940f706c42fb60e9e3e9b490a84164df7 libxml2-2.9.8-python3-unicode-errors.patch
+19d6901c0f189813e8bd20ffdfbb29d8545ca30154d1f3cc82624d64e4db3cfbe8eef7e8ccc1e195289f1bf94bb50fefcf11a95badb0ddeb845b4e4ea5a819ac libxml2-2.12.6.tar.xz
"
diff --git a/main/libxml2/libxml2-2.9.8-python3-unicode-errors.patch b/main/libxml2/libxml2-2.9.8-python3-unicode-errors.patch
deleted file mode 100644
index e87dcdedf88..00000000000
--- a/main/libxml2/libxml2-2.9.8-python3-unicode-errors.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-Index: libxml2-2.9.5/python/libxml.c
-===================================================================
---- libxml2-2.9.5.orig/python/libxml.c
-+++ libxml2-2.9.5/python/libxml.c
-@@ -1620,6 +1620,7 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNU
- PyObject *message;
- PyObject *result;
- char str[1000];
-+ unsigned char *ptr = (unsigned char *)str;
-
- #ifdef DEBUG_ERROR
- printf("libxml_xmlErrorFuncHandler(%p, %s, ...) called\n", ctx, msg);
-@@ -1636,12 +1637,20 @@ libxml_xmlErrorFuncHandler(ATTRIBUTE_UNU
- str[999] = 0;
- va_end(ap);
-
-+#if PY_MAJOR_VERSION >= 3
-+ /* Ensure the error string doesn't start at UTF8 continuation. */
-+ while (*ptr && (*ptr & 0xc0) == 0x80)
-+ ptr++;
-+#endif
-+
- list = PyTuple_New(2);
- PyTuple_SetItem(list, 0, libxml_xmlPythonErrorFuncCtxt);
- Py_XINCREF(libxml_xmlPythonErrorFuncCtxt);
-- message = libxml_charPtrConstWrap(str);
-+ message = libxml_charPtrConstWrap(ptr);
- PyTuple_SetItem(list, 1, message);
- result = PyEval_CallObject(libxml_xmlPythonErrorFuncHandler, list);
-+ /* Forget any errors caused in the error handler. */
-+ PyErr_Clear();
- Py_XDECREF(list);
- Py_XDECREF(result);
- }
diff --git a/main/libxmu/APKBUILD b/main/libxmu/APKBUILD
index 6fc2c7689a3..232ec26c704 100644
--- a/main/libxmu/APKBUILD
+++ b/main/libxmu/APKBUILD
@@ -1,22 +1,26 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libxmu
-pkgver=1.1.3
-pkgrel=0
+pkgver=1.1.4
+pkgrel=2
pkgdesc="X11 miscellaneous micro-utility library"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="all"
license="MIT"
-options="!check" # No test suite.
subpackages="$pkgname-dev $pkgname-doc"
-depends=
depends_dev="util-linux-dev"
-makedepends="libxext-dev libxt-dev libx11-dev libsm-dev util-linux-dev
- util-macros xmlto"
-source="https://www.x.org/releases/individual/lib/libXmu-$pkgver.tar.bz2"
-
+makedepends="
+ libsm-dev
+ libx11-dev
+ libxext-dev
+ libxt-dev
+ util-linux-dev
+ util-macros
+ xmlto
+ "
+source="https://www.x.org/releases/individual/lib/libXmu-$pkgver.tar.xz"
builddir="$srcdir"/libXmu-$pkgver
+
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -26,10 +30,15 @@ build() {
make
}
+check() {
+ make check
+}
+
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
}
-sha512sums="8c6cc65b22aa031ad870dd92736681a068a0878a425a53dbed909943da1136c4a24034d467cfd3785c3a8d78f66850b69f1ebe1eb24aaf9bc176b1d171a5c762 libXmu-1.1.3.tar.bz2"
+sha512sums="
+3cf90cb3ff380aafefbb39297bdd95b9e1e6d6618cecb53ff09faf38f9b9c54599d28367f07a9ec77a20214c6c3e661b8d0a12b38082556790a79a59942039c1 libXmu-1.1.4.tar.xz
+"
diff --git a/main/libxpm/APKBUILD b/main/libxpm/APKBUILD
index de514b92ac3..7f5a14efb63 100644
--- a/main/libxpm/APKBUILD
+++ b/main/libxpm/APKBUILD
@@ -1,25 +1,34 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libxpm
-pkgver=3.5.13
+pkgver=3.5.17
pkgrel=0
pkgdesc="X11 pixmap library"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="all"
-license="custom:BELL"
+license="X11"
options="!check" # No test suite.
subpackages="$pkgname-dev $pkgname-doc"
makedepends="libxt-dev libxext-dev util-linux-dev util-macros"
-source="https://www.x.org/releases/individual/lib/libXpm-$pkgver.tar.bz2"
-
+source="https://www.x.org/releases/individual/lib/libXpm-$pkgver.tar.xz"
builddir="$srcdir"/libXpm-$pkgver
+# secfixes:
+# 3.5.17-r0:
+# - CVE-2023-43788
+# - CVE-2023-43789
+# 3.5.15-r0:
+# - CVE-2022-46285
+# - CVE-2022-44617
+# - CVE-2022-4883
+
build() {
ac_cv_search_gettext=no \
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
- --sysconfdir=/etc
+ --sysconfdir=/etc \
+ --disable-open-zfile
make
}
@@ -27,4 +36,7 @@ package() {
make DESTDIR="$pkgdir" install
install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
}
-sha512sums="3b8f6e926272f39b1d95135c2274c00f5aaee1f9fb2ef79f71628df5edeb7ba20158819ef6a778101cc4092493a3b5b613c53634fdccadcc0fc85f0605e5e9a5 libXpm-3.5.13.tar.bz2"
+
+sha512sums="
+52f9d2664a47a26c1a6ad65d18867de870b66947b0b0d99cca3512756a0aaa6ce2a245c0b49f20b70c3ce48bf04c47c333e8119a147465c277bca727f6ab017e libXpm-3.5.17.tar.xz
+"
diff --git a/main/libxrandr/APKBUILD b/main/libxrandr/APKBUILD
index bac9b17d244..452deb4f6cd 100644
--- a/main/libxrandr/APKBUILD
+++ b/main/libxrandr/APKBUILD
@@ -1,17 +1,16 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libxrandr
-pkgver=1.5.2
+pkgver=1.5.4
pkgrel=1
pkgdesc="X11 RandR extension library"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="all"
license="MIT"
subpackages="$pkgname-dev $pkgname-doc"
options="!check" # No test suite.
depends_dev="libxext-dev"
makedepends="xorgproto $depends_dev libx11-dev libxrender-dev util-macros"
-source="https://www.x.org/releases/individual/lib/libXrandr-$pkgver.tar.bz2
- "
+source="https://www.x.org/releases/individual/lib/libXrandr-$pkgver.tar.xz"
builddir="$srcdir"/libXrandr-$pkgver
build() {
@@ -31,4 +30,6 @@ package() {
install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
}
-sha512sums="fcd005f9839e7ef980607128a5d76d7b671cc2f5755949e03c569c500d7e987cb3f6932750ab8bf6e2c1086ec69dde09d5831f0c2098b9f9ad46be4f56db0d87 libXrandr-1.5.2.tar.bz2"
+sha512sums="
+f7c0b083943e11b4cc3c97e10e2cbbc3920fe0c9c5031ef86fca2eb5df413d767caf53dca266abf65395eb10e55354c8fe59ed6b3265402ffccb919a813bc781 libXrandr-1.5.4.tar.xz
+"
diff --git a/main/libxrender/APKBUILD b/main/libxrender/APKBUILD
index 82e918afb0e..acb078244b6 100644
--- a/main/libxrender/APKBUILD
+++ b/main/libxrender/APKBUILD
@@ -1,25 +1,18 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libxrender
-pkgver=0.9.10
-pkgrel=3
+pkgver=0.9.11
+pkgrel=5
pkgdesc="X Rendering Extension client library"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="all"
-license="custom"
+license="MIT"
subpackages="$pkgname-dev $pkgname-doc"
options="!check" # No test suite.
-depends=
makedepends="xorgproto libx11-dev util-macros"
-source="https://www.x.org/releases/individual/lib/libXrender-$pkgver.tar.bz2"
-
-prepare() {
- default_prepare
- update_config_sub
-}
-
+source="https://www.x.org/releases/individual/lib/libXrender-$pkgver.tar.xz"
builddir="$srcdir"/libXrender-$pkgver
+
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -31,8 +24,9 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
-sha512sums="16ea0cf638b32d7df54b270457ef8c9d9a80da27fa845b105b560cb31027b4c7fe799cf23d6b6bac492be5961264e96d7845d316a9af4de9ff38bf40885ea6fe libXrender-0.9.10.tar.bz2"
+sha512sums="
+2327cc1b530382d81df29b8d579f801f1f990202107cc84506986bcf5d15010d414e9418987b200e3f222d188afce46f0d7754febcdca62a5fc1e541b3bb82de libXrender-0.9.11.tar.xz
+"
diff --git a/main/libxshmfence/APKBUILD b/main/libxshmfence/APKBUILD
index 38e08928107..91890bd3bee 100644
--- a/main/libxshmfence/APKBUILD
+++ b/main/libxshmfence/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer:
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=libxshmfence
-pkgver=1.3
-pkgrel=1
+pkgver=1.3.2
+pkgrel=6
pkgdesc="X11 shared memory fences"
url="https://www.x.org/"
arch="all"
@@ -10,9 +10,10 @@ license="MIT"
depends_dev="linux-headers"
makedepends="$depends_dev util-macros xorgproto"
subpackages="$pkgname-dev"
-source="https://www.x.org/releases/individual/lib/libxshmfence-$pkgver.tar.bz2"
+source="https://www.x.org/releases/individual/lib/libxshmfence-$pkgver.tar.xz"
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -30,4 +31,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="c446e055f8fac62b9aa266132289a4cfc030282147974c45ce96d1768a98d1afb997470e58e4a68513174c404cbf373bdde2f0cd4b34abdbce1d89dd0b6fe2b7 libxshmfence-1.3.tar.bz2"
+sha512sums="
+e20a6827e370726cf50489a69f4a52b897f1c44e3eba8c72a4e626b08724e877d090770b8016765736d887d5d5eaba1fda9c29066e62d259b4d1e2064bc1626c libxshmfence-1.3.2.tar.xz
+"
diff --git a/main/libxslt/APKBUILD b/main/libxslt/APKBUILD
index defc4a03d0c..9b190600926 100644
--- a/main/libxslt/APKBUILD
+++ b/main/libxslt/APKBUILD
@@ -1,14 +1,22 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
pkgname=libxslt
-pkgver=1.1.35
-pkgrel=0
+pkgver=1.1.39
+pkgrel=1
pkgdesc="XML stylesheet transformation library"
url="http://xmlsoft.org/XSLT/"
arch="all"
-license="custom"
-makedepends="libxml2-dev libgcrypt-dev libgpg-error-dev"
-subpackages="$pkgname-dev $pkgname-doc"
+license="X11"
+makedepends="
+ libgcrypt-dev
+ libgpg-error-dev
+ libxml2-dev
+ "
+subpackages="
+ $pkgname-static
+ $pkgname-doc
+ $pkgname-dev
+ "
source="https://download.gnome.org/sources/libxslt/${pkgver%.*}/libxslt-$pkgver.tar.xz"
# secfixes:
@@ -23,17 +31,22 @@ source="https://download.gnome.org/sources/libxslt/${pkgver%.*}/libxslt-$pkgver.
# - CVE-2019-11068
# 1.1.29-r1:
# - CVE-2017-5029
+# 0:
+# - CVE-2022-29824
prepare() {
default_prepare
- chmod 644 python/tests/*
+ # fails for some reason
+ rm -fv tests/REC/test-10-3.xsl
}
build() {
./configure \
--build=$CBUILD \
--host=$CHOST \
- --prefix=/usr
+ --prefix=/usr \
+ --with-python=no \
+ --enable-static
make
}
@@ -45,6 +58,13 @@ package() {
make DESTDIR="$pkgdir" install
install -D -m644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
}
+
+dev() {
+ default_dev
+
+ amove usr/lib/xsltConf.sh
+}
+
sha512sums="
-9dd4a699235f50ae9b75b25137e387471635b4b2da0a4e4380879cd49f1513470fcfbfd775269b066eac513a1ffa6860c77ec42747168e2348248f09f60c8c96 libxslt-1.1.35.tar.xz
+c0c99dc63f8b2acb6cc3ad7ad684ffa2a427ee8d1740495cbf8a7c9b9c8679f96351b4b676c73ccc191014db4cb4ab42b9a0070f6295565f39dbc665c5c16f89 libxslt-1.1.39.tar.xz
"
diff --git a/main/libxt/APKBUILD b/main/libxt/APKBUILD
index ca976a2b953..0c618d0be71 100644
--- a/main/libxt/APKBUILD
+++ b/main/libxt/APKBUILD
@@ -1,21 +1,20 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libxt
-pkgver=1.2.1
-pkgrel=0
+pkgver=1.3.0
+pkgrel=5
pkgdesc="X11 toolkit intrinsics library"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="all"
-license="custom"
+license="MIT"
subpackages="$pkgname-dev $pkgname-doc"
depends_dev="libsm-dev"
makedepends="$depends_dev libice-dev libx11-dev util-macros xorgproto"
checkdepends="glib-dev"
-source="https://www.x.org/releases/individual/lib/libXt-$pkgver.tar.bz2
- "
-
+source="https://www.x.org/releases/individual/lib/libXt-$pkgver.tar.xz"
builddir="$srcdir"/libXt-$pkgver
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -32,4 +31,7 @@ check() {
package() {
make -j1 DESTDIR="$pkgdir" install
}
-sha512sums="6877af61ba91eeed6b6f80471b84f354ad0ec0827249c7ee0a00c13508063fe8d2696dd400a4bdbc6ca2ff67cbe1317ad5ac24522fd96099dc56535e33ca052c libXt-1.2.1.tar.bz2"
+
+sha512sums="
+64c5978655135b925c3aaad86b1aa6a3f3b57ad8b3592bf142be616b8aa339a02c2fc7badfab9564ea8076ea8f37acfe31709ed528f5a1d251f2d116aa074118 libXt-1.3.0.tar.xz
+"
diff --git a/main/libxtst/APKBUILD b/main/libxtst/APKBUILD
index 5402a513343..b435b639c18 100644
--- a/main/libxtst/APKBUILD
+++ b/main/libxtst/APKBUILD
@@ -1,25 +1,19 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libxtst
-pkgver=1.2.3
-pkgrel=3
+pkgver=1.2.4
+pkgrel=6
pkgdesc="X11 Testing -- Resource extension library"
url="https://wiki.freedesktop.org/xorg/"
arch="all"
-license="custom"
+license="MIT"
options="!check" # No test suite.
-subpackages="$pkgname-dev $pkgname-doc"
+subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
makedepends="xorgproto libx11-dev libxext-dev libxi-dev util-macros"
-source="https://www.x.org/releases/individual/lib/libXtst-$pkgver.tar.bz2
+source="https://www.x.org/releases/individual/lib/libXtst-$pkgver.tar.xz
"
-
-prepare() {
- default_prepare
- update_config_sub
-}
-
builddir="$srcdir"/libXtst-$pkgver
+
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -27,14 +21,15 @@ build() {
--sysconfdir=/etc \
--mandir=/usr/share/man \
--localstatedir=/var \
- --disable-static
+ --enable-static
make
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
-sha512sums="6f6741fd3596775eaa056465319f78c29c91b3893a851a4899df651a2023a4d762497b112a33d7d3e8865fe85d173d03e4b49daef76a66af1ae1eaab82a12765 libXtst-1.2.3.tar.bz2"
+sha512sums="
+f2f4e01239b892b8e26284cede90feb4fe7738beb243bca0f6adb349029f8bf87b5a482911edcd2401733c92ef78eec07fcd455b92e5b8c4828374769e60098d libXtst-1.2.4.tar.xz
+"
diff --git a/main/libxv/APKBUILD b/main/libxv/APKBUILD
index 0310484ba0d..fe610724e11 100644
--- a/main/libxv/APKBUILD
+++ b/main/libxv/APKBUILD
@@ -1,25 +1,17 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libxv
-pkgver=1.0.11
-pkgrel=2
+pkgver=1.0.12
+pkgrel=5
pkgdesc="X11 Video extension library"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="all"
-license="custom"
-depends=""
+license="MIT"
makedepends="xorgproto libx11-dev libxext-dev util-macros"
subpackages="$pkgname-dev $pkgname-doc"
-source="https://www.x.org/releases/individual/lib/libXv-$pkgver.tar.bz2
- "
-
-prepare() {
- default_prepare
- update_config_sub
-}
-
+source="https://www.x.org/releases/individual/lib/libXv-$pkgver.tar.xz"
builddir="$srcdir"/libXv-$pkgver
+
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -31,14 +23,14 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
install -D -m644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
}
-sha512sums="97cb3ab06cedc87799d06e1affd5cee32ed0e551903fa5c915f79e7ed92eded867e3220b4a663822f7ebd86fdc71b09943b7077d98f1200019992e8d24144e58 libXv-1.0.11.tar.bz2"
+sha512sums="
+bdd00de1ce6a8911056181ab4de32f9e319a68567389162d4bc2e3c9946d5f3c60f87eb6c53f74c9b6a342255e591d5fef4a445a4ac8ca3c1b6fe87d42c51c1e libXv-1.0.12.tar.xz
+"
diff --git a/main/libxvmc/APKBUILD b/main/libxvmc/APKBUILD
deleted file mode 100644
index 974084aa8c4..00000000000
--- a/main/libxvmc/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=libxvmc
-pkgver=1.0.13
-pkgrel=0
-pkgdesc="X11 Video Motion Compensation extension library"
-url="http://xorg.freedesktop.org/"
-arch="all"
-license="MIT"
-options="!check" # No test suite.
-subpackages="$pkgname-dev $pkgname-doc"
-depends_dev="libxext-dev"
-makedepends="xorgproto libx11-dev libxv-dev util-macros"
-source="https://www.x.org/releases/individual/lib/libXvMC-$pkgver.tar.xz"
-builddir="$srcdir"/libXvMC-$pkgver
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- rm -f "$pkgdir"/usr/lib/*.a
-}
-
-sha512sums="
-c9d0f73884a586efb9ea4f77fc8555f60d940077d7dff8eaa765b86345c8b4e3d80b860f68191d2830c272b9e464c08450fbb51bb64819753a6f4228c71861ac libXvMC-1.0.13.tar.xz
-"
diff --git a/main/libxxf86vm/APKBUILD b/main/libxxf86vm/APKBUILD
index c73b4b5a029..afba70836a5 100644
--- a/main/libxxf86vm/APKBUILD
+++ b/main/libxxf86vm/APKBUILD
@@ -1,37 +1,30 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=libxxf86vm
-pkgver=1.1.4
-pkgrel=2
+pkgver=1.1.5
+pkgrel=6
pkgdesc="X11 XFree86 video mode extension library"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="all"
-license="custom"
+license="MIT"
options="!check" # No test suite.
subpackages="$pkgname-dev $pkgname-doc"
-depends=
makedepends="xorgproto libx11-dev libxext-dev util-macros"
-source="https://www.x.org/releases/individual/lib/libXxf86vm-$pkgver.tar.bz2
- "
-
+source="https://www.x.org/releases/individual/lib/libXxf86vm-$pkgver.tar.xz"
builddir="$srcdir"/libXxf86vm-$pkgver
-
-prepare() {
- default_prepare
- update_config_sub
-}
-
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
- --prefix=/usr
+ --prefix=/usr \
+ --disable-static
make
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
}
-sha512sums="c5f92d86e143db02ebb36bcd25618acaa2cb2831f5a23800a06dd431cd73b6702d95de8fe7407ce626336bf614c288d5256f4d87ea7781fad2ab6c517cbf09e0 libXxf86vm-1.1.4.tar.bz2"
+
+sha512sums="
+68226fcb9773a583ea417ab413146203dd7db6ff8a4d388285da972353355e11e179861a77c9fa284aefac025bb3bbf5a9537fa0bf246c782e0116a667c9d9b6 libXxf86vm-1.1.5.tar.xz
+"
diff --git a/main/lighttpd/APKBUILD b/main/lighttpd/APKBUILD
index 8f80dd7353a..9e82fd6f100 100644
--- a/main/lighttpd/APKBUILD
+++ b/main/lighttpd/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lighttpd
-pkgver=1.4.65
+pkgver=1.4.76
pkgrel=0
pkgdesc="Secure, fast, compliant and very flexible web-server"
url="https://www.lighttpd.net"
@@ -11,23 +11,26 @@ install="$pkgname.pre-install $pkgname.pre-upgrade"
pkgusers="lighttpd"
pkggroups="lighttpd"
makedepends="
- automake
- autoconf
brotli-dev
- bsd-compat-headers
- flex
libdbi-dev
libxml2-dev
lua5.4-dev
+ meson
openldap-dev
- openssl1.1-compat-dev
+ openssl-dev
pcre2-dev
sqlite-dev
zlib-dev
zstd-dev
"
-subpackages="$pkgname-doc $pkgname-dbg $pkgname-openrc $pkgname-mod_auth
- $pkgname-mod_webdav"
+checkdepends="perl"
+subpackages="
+ $pkgname-dbg
+ $pkgname-doc
+ $pkgname-openrc
+ $pkgname-mod_auth
+ $pkgname-mod_webdav
+ "
source="https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-$pkgver.tar.xz
$pkgname.initd
$pkgname.confd
@@ -40,37 +43,33 @@ source="https://download.lighttpd.net/lighttpd/releases-1.4.x/lighttpd-$pkgver.t
"
# secfixes:
+# 1.4.67-r0:
+# - CVE-2022-41556
# 1.4.64-r0:
# - CVE-2022-22707
build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --disable-dependency-tracking \
- --enable-lfs \
- --libdir=/usr/lib/lighttpd \
- --without-mysql \
- --without-attr \
- --with-webdav-props \
- --with-webdav-locks \
- --with-pcre2 \
- --with-dbi \
- --with-ldap \
- --with-openssl \
- --with-zstd \
- --with-brotli \
- --with-lua
- make
+ abuild-meson \
+ -Db_lto=true \
+ -Dwith_brotli=enabled \
+ -Dwith_dbi=enabled \
+ -Dwith_ldap=enabled \
+ -Dwith_lua=true \
+ -Dwith_openssl=true \
+ -Dwith_pcre2=true \
+ -Dwith_webdav_locks=enabled \
+ -Dwith_webdav_props=enabled \
+ -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 -m2750 -o lighttpd -g wheel \
@@ -91,7 +90,7 @@ package() {
local i; for i in lighttpd.conf mime-types.conf mod_cgi.conf \
mod_fastcgi.conf mod_fastcgi_fpm.conf
do
- install -m644 "$srcdir"/$i "$pkgdir"/etc/lighttpd/$i
+ install -Dm644 "$srcdir"/$i "$pkgdir"/etc/lighttpd/$i
done
}
@@ -115,11 +114,11 @@ mod_webdav() {
}
sha512sums="
-e9ecb3e99dd5cd0efbf98cfc937f0cfcfafe712ab0e6c11f9cdee936c508820cd8de06ef03d2f888dab19a842eebae342a83818e601dd21094f154832acb69ec lighttpd-1.4.65.tar.xz
+940f00f2d84e3424c389108d09756a0af41db3559474135b6c502deccd08ad051b5184f3f7907436384964d2b05045e27dca463af98c889cee69b0ae6e202782 lighttpd-1.4.76.tar.xz
a74fb8394fb77fca2a08bdcfc79d4e13de6aca7bc4ed842b7e05f7f3a9cc85dccaa4971ba8fd0edfaa19da8d3870a743b713d9e51f1cbfe5b8e2843bb7fe5346 lighttpd.initd
9d2ab5deb7353ebf290e90936b511941df440859c78589d0bcf130ef69a5e9c79e4d318548b6b118df002083c46f7476230a28954b7a10a9dbd05040e02b1291 lighttpd.confd
0536b4f21d2e8659f7831b45998c13d9f6051ae7ecde13be01f372f837d255bfc4e211de48a7686cc743d53aa9c08ab3f10ec19788896dcf8356b90053ca7a16 lighttpd.logrotate
-4cd896cde71e477f8c32a7210b7f2b09755108a7126c5e9706af4fa2e9104fef91c635aa470144e0bd8ffca6d6ff6acc2b656d9eb4a998260dd2532e77264bd3 lighttpd.conf
+37ff6ad319fbbe1f390098c7eecee8e292d5766af94533243e603c4918f41d702abe449eaed59455d2b65f13546f5fd1353ca6455aede5ce62ec1d77edaf9a97 lighttpd.conf
a3f2f5763885d7e4f510491b24164e34aaf62bb02daa12991575dc64335c12668355af5bb8d6ce191eb4e9cce95324b1f7c9ba61b323b4e7b50a1e03e021afcf mime-types.conf
27cc638d8068dcf47bd9db44943d1db6c6f4e8e6abd6b42af7cea004b1c093440068541d98c68f8bea70b956713adaf8ed59a4b642dea826ee8620a05f8cfde5 mod_cgi.conf
1d15b84c03fb648a0e67ab5c5411b85478b4454c44bc2959cc96d1700eeadd7ff429520a5f1550db6527267646622dccd3d47d3fd1258869fccaf5c22d4ad4b2 mod_fastcgi.conf
diff --git a/main/lighttpd/lighttpd.conf b/main/lighttpd/lighttpd.conf
index 60c3620552b..6d6e76afa90 100644
--- a/main/lighttpd/lighttpd.conf
+++ b/main/lighttpd/lighttpd.conf
@@ -18,8 +18,6 @@ server.modules = (
# "mod_redirect",
# "mod_alias",
"mod_access",
-# "mod_cml",
-# "mod_trigger_b4_dl",
# "mod_auth",
# "mod_status",
# "mod_setenv",
@@ -29,9 +27,7 @@ server.modules = (
# "mod_userdir",
# "mod_deflate",
# "mod_ssi",
-# "mod_usertrack",
# "mod_expire",
-# "mod_secdownload",
# "mod_rrdtool",
# "mod_webdav",
"mod_accesslog"
@@ -59,18 +55,13 @@ server.errorlog = var.logdir + "/error.log"
# log errors to syslog instead
# server.errorlog-use-syslog = "enable"
-server.indexfiles = ("index.php", "index.html",
- "index.htm", "default.htm")
+index-file.names = ("index.php", "index.html", "index.htm", "default.htm")
# server.tag = "lighttpd"
-server.follow-symlink = "enable"
-
-# event handler (defaults to "poll")
+# event handler (defaults to OS-specific event framework)
# see performance.txt
#
-# for >= linux-2.4
-# server.event-handler = "linux-rtsig"
# for >= linux-2.6
# server.event-handler = "linux-sysepoll"
# for FreeBSD
@@ -93,9 +84,11 @@ server.follow-symlink = "enable"
# -> ..../status-404.html for 'File not found'
# server.errorfile-prefix = var.basedir + "/error/status-"
-# FAM support for caching stat() calls
-# requires that lighttpd be built with USE=fam
-# server.stat-cache-engine = "fam"
+# support for caching stat() calls (default "simple")
+# for Linux
+# server.stat-cache-engine = "inotify"
+# for FreeBSD
+# server.stat-cache-engine = "kqueue"
# }}}
# {{{ mod_staticfile
@@ -269,25 +262,6 @@ url.access-deny = ("~", ".inc")
# setenv.add-response-header = ( "X-Secret-Message" => "42" )
# }}}
-# {{{ 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_cml
-# see cml.txt
-#
-# don't forget to add index.cml to server.indexfiles
-# cml.extension = ".cml"
-# cml.memcache-hosts = ( "127.0.0.1:11211" )
-# }}}
-
# {{{ mod_webdav
# see webdav.txt
#
diff --git a/main/linenoise/APKBUILD b/main/linenoise/APKBUILD
index 92443594f2e..d484162f687 100644
--- a/main/linenoise/APKBUILD
+++ b/main/linenoise/APKBUILD
@@ -1,29 +1,24 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer:
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=linenoise
pkgver=1.0
-pkgrel=1
+pkgrel=5
pkgdesc="Minimal replacement for readline"
url="https://github.com/antirez/linenoise"
arch="all"
options="!check" # No test suite.
-license="BSD-2-Clause-NetBSD"
-depends=""
-depends_dev=""
+license="BSD-2-Clause"
makedepends="$depends_dev"
-install=""
subpackages="$pkgname-dev"
source="linenoise-$pkgver.tar.gz::https://github.com/antirez/linenoise/archive/$pkgver.tar.gz
build-shared-lib.patch
"
build() {
- cd "$builddir"
make
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
diff --git a/main/links/APKBUILD b/main/links/APKBUILD
index ad6cc434207..c44dc519bcf 100644
--- a/main/links/APKBUILD
+++ b/main/links/APKBUILD
@@ -1,15 +1,17 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=links
-pkgver=2.27
-pkgrel=0
+pkgver=2.29
+pkgrel=1
pkgdesc="Web browser running in both graphics and text mode"
url="http://links.twibright.com/"
arch="all"
options="!check" # No test suite.
license="GPL-2.0-or-later WITH OpenSSL-Exception"
subpackages="$pkgname-doc"
-makedepends="bzip2-dev openssl1.1-compat-dev zlib-dev libevent-dev zstd-dev"
-source="http://links.twibright.com/download/links-$pkgver.tar.bz2"
+makedepends="bzip2-dev openssl-dev>3 zlib-dev libevent-dev zstd-dev"
+source="http://links.twibright.com/download/links-$pkgver.tar.bz2
+ configure.patch
+ "
build() {
./configure \
@@ -29,5 +31,6 @@ package() {
}
sha512sums="
-8b46472184f2eab1aeca5de9b957a87f475f5acd9801260678b07475cf36afb1a9602e67ef39ad59da90d2d6cee235521db95d93349fd9bd6cee667eab2e5d32 links-2.27.tar.bz2
+5ea8b2fd0eb74d9dc2b45614aef6ee878fe686dff9bcee75ac6ea01f6a7331670f7709233d31986fc64ad86ce549616a4471057837b6caf15af6d1c5c503ac75 links-2.29.tar.bz2
+b56fcfb6165b3a3340672b25b83826ae32ab5a36673ac90207a40afa5e1e4e5fe21cd958bfb9600035dd84a9b8af1b68ad5be97d794840796d4d2deb992ffa4c configure.patch
"
diff --git a/main/links/configure.patch b/main/links/configure.patch
new file mode 100644
index 00000000000..dcd20c452b8
--- /dev/null
+++ b/main/links/configure.patch
@@ -0,0 +1,57 @@
+werror=implicit-int
+diff --git a/confdefs.h b/confdefs.h
+new file mode 100644
+index 0000000..260c62f
+--- /dev/null
++++ b/confdefs.h
+@@ -0,0 +1,3 @@
++
++#define PACKAGE "links"
++#define VERSION "2.29"
+diff --git a/config.cache b/config.cache
+new file mode 100644
+index 0000000..e69de29
+diff --git a/config.log b/config.log
+new file mode 100644
+index 0000000..7bf8995
+--- /dev/null
++++ b/config.log
+@@ -0,0 +1,25 @@
++This file contains any messages produced by compilers while
++running configure, to aid debugging if configure makes a mistake.
++
++configure:640: checking for a BSD compatible install
++configure:693: checking whether build environment is sane
++configure:750: checking whether make sets ${MAKE}
++configure:796: checking for working aclocal-1.4
++configure:809: checking for working autoconf
++configure:822: checking for working automake-1.4
++configure:835: checking for working autoheader
++configure:848: checking for working makeinfo
++configure:880: checking for gcc
++configure:993: checking whether the C compiler (clang -O3 -flto=thin -DNDEBUG -march=native -fPIC -fstack-clash-protection -fstack-protector-strong -fcf-protection -pipe -fomit-frame-pointer -fdiagnostics-color=always -fno-semantic-interposition -flto=thin -fuse-ld=lld -Wl,-O2,--as-needed,--gc-sections,-z,defs,-z,relro,-z,now,--icf=safe,-z,pack-relative-relocs,--Bsymbolic) works
++configure:1009: clang -o conftest -O3 -flto=thin -DNDEBUG -march=native -fPIC -fstack-clash-protection -fstack-protector-strong -fcf-protection -pipe -fomit-frame-pointer -fdiagnostics-color=always -fno-semantic-interposition -flto=thin -fuse-ld=lld -Wl,-O2,--as-needed,--gc-sections,-z,defs,-z,relro,-z,now,--icf=safe,-z,pack-relative-relocs,--Bsymbolic conftest.c 1>&5
++configure:1006:1: error: type specifier missing, defaults to 'int'; ISO C99 and later do not support implicit int [-Wimplicit-int]
++main(){return(0);}
++^
++int
++1 error generated.
++configure: failed program was:
++
++#line 1004 "configure"
++#include "confdefs.h"
++
++main(){return(0);}
+diff --git a/configure b/configure
+index 354c422..88e0d53 100755
+--- a/configure
++++ b/configure
+@@ -1001,7 +1001,7 @@ cat > conftest.$ac_ext << EOF
+ #line 1004 "configure"
+ #include "confdefs.h"
+
+-main(){return(0);}
++int main(){return(0);}
+ EOF
+ if { (eval echo configure:1009: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ ac_cv_prog_cc_works=yes
diff --git a/main/linux-firmware/APKBUILD b/main/linux-firmware/APKBUILD
index 270a9f9d35a..73cc04423ef 100644
--- a/main/linux-firmware/APKBUILD
+++ b/main/linux-firmware/APKBUILD
@@ -1,40 +1,38 @@
# Contributor: Oliver Smith <ollieparanoid@postmarketos.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=linux-firmware
-pkgver=20220610
+pkgver=20240410
pkgrel=0
pkgdesc="firmware files for linux"
url="https://git.kernel.org/?p=linux/kernel/git/firmware/linux-firmware.git;a=summary"
arch="all"
-license="custom:multiple"
-makedepends="libarchive-tools"
+license="custom"
+makedepends="libarchive-tools coreutils rdfind"
provides="linux-firmware-any"
-provider_priority=1
-options="!strip !check !archcheck !tracedeps !spdx"
+provider_priority=2
+options="!strip !check !archcheck !spdx"
-_rpi_bt=e7fd166981ab4bb9a36c2d1500205a078a35714d
-_rpi_brcm=2c8f665254899a52260788dd902083bb57a99738
+_rpi_bt=78d6a07730e2d20c035899521ab67726dc028e1c
+_rpi_brcm=223ccf3a3ddb11b3ea829749fbbba4d65b380897
source="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/snapshot/linux-firmware-$pkgver.tar.gz
- BCM43430A1.hcd.${_rpi_bt::8}::https://github.com/RPi-Distro/bluez-firmware/raw/$_rpi_bt/broadcom/BCM43430A1.hcd
- BCM4345C0.hcd.${_rpi_bt::8}::https://github.com/RPi-Distro/bluez-firmware/raw/$_rpi_bt/broadcom/BCM4345C0.hcd
- BCM43430B0.hcd.${_rpi_bt::8}::https://github.com/RPi-Distro/bluez-firmware/raw/$_rpi_bt/broadcom/BCM43430B0.hcd
- BCM4345C5.hcd.${_rpi_bt::8}::https://github.com/RPi-Distro/bluez-firmware/raw/$_rpi_bt/broadcom/BCM4345C5.hcd
- brcm-firmware-${_rpi_brcm::8}.tar.gz::https://github.com/RPi-Distro/firmware-nonfree/archive/$_rpi_brcm.tar.gz
+ bluez-firmware-$_rpi_bt.tar.gz::https://github.com/RPi-Distro/bluez-firmware/archive/$_rpi_bt.tar.gz
+ brcm-firmware-$_rpi_brcm.tar.gz::https://github.com/RPi-Distro/firmware-nonfree/archive/$_rpi_brcm.tar.gz
+ $pkgname-ucode-amd17h-zenbleed-microcode_amd_fam17h.bin::https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amd-ucode/microcode_amd_fam17h.bin?id=59fbffa9ec8e4b0b31d2d13e715cf6580ad0e99c
+ $pkgname-ucode-amd19h-zenbleed-microcode_amd_fam19h.bin::https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/plain/amd-ucode/microcode_amd_fam19h.bin?id=59fbffa9ec8e4b0b31d2d13e715cf6580ad0e99c
"
-_builddir="$srcdir"/$pkgname-$pkgver
-
# Put /lib/firmware/* folders in subpackages
-_folders="3com acenic adaptec advansys amd amd-ucode amdgpu amphion ar3k ath10k
- ath11k ath6k ath9k_htc atmel atusb av7110 bnx2 bnx2x brcm cadence cavium cis
- cnm cpia2 cxgb3 cxgb4 cypress dabusb dpaa2 dsp56k e100 edgeport emi26 emi62
- ene-ub6250 ess go7007 i915 imx inside-secure intel isci kaweth keyspan
- keyspan_pda korg libertas liquidio matrox mediatek mellanox meson microchip
- moxa mrvl mwl8k mwlwifi myricom netronome nvidia ositech qca qcom qed qlogic
- r128 radeon rockchip rsi rtl8192e rtl_bt rtl_nic rtlwifi rtw88 rtw89 sb16
- wfx slicoss sun sxg tehuti ti ti-connectivity ti-keystone tigon ttusb-budget
- ueagle-atm vicam vxge yam yamaha"
+_folders="3com acenic adaptec advansys airoha amd amd-ucode amdgpu amdtee
+ amlogic amphion ar3k arm ath10k ath11k ath12k ath6k ath9k_htc atmel atusb
+ av7110 bnx2 bnx2x brcm cadence cavium cirrus cis cnm cpia2 cxgb3 cxgb4 cypress
+ dabusb dpaa2 dsp56k e100 edgeport emi26 emi62 ene-ub6250 ess go7007 i915 imx
+ inside-secure intel isci ixp4xx kaweth keyspan keyspan_pda korg libertas
+ liquidio matrox mediatek mellanox meson microchip moxa mrvl mwl8k mwlwifi
+ myricom netronome nvidia nxp ositech powervr qca qcom qed qlogic r128 radeon
+ rockchip rsi rtl_bt rtl_nic rtlwifi rtw88 rtw89 sb16 slicoss sun sxg synaptics
+ tehuti ti ti-connectivity ti-keystone tigon ttusb-budget ueagle-atm vicam vxge
+ wfx xe yam yamaha"
subpackages="$pkgname-other::noarch $pkgname-none::noarch"
depends="linux-firmware-other=$pkgver-r$pkgrel"
@@ -44,36 +42,65 @@ for i in $_folders; do
done
subpackages="amd-ucode::noarch $subpackages"
+# Add S5P MFC subpackage separately (it doesn't have its own folder)
+subpackages="$pkgname-s5p-mfc:s5p_mfc:noarch $subpackages"
+depends="$pkgname-s5p-mfc=$pkgver-r$pkgrel $depends"
+
+prepare() {
+ default_prepare
+
+ cp "$srcdir"/$pkgname-ucode-amd17h-zenbleed-microcode_amd_fam17h.bin amd-ucode/microcode_amd_fam17h.bin
+ cp "$srcdir"/$pkgname-ucode-amd19h-zenbleed-microcode_amd_fam19h.bin amd-ucode/microcode_amd_fam19h.bin
+}
+
package() {
- cd "${_builddir}"
- make DESTDIR="${pkgdir}" FIRMWAREDIR="/lib/firmware" install
+ ## install upstream linux-firmare files
+ make DESTDIR="$pkgdir" FIRMWAREDIR="/lib/firmware" install
- # add compat links for pre-5.0 kernel
- ln -s brcmfmac43455-sdio.raspberrypi,3-model-b-plus.txt "$pkgdir"/lib/firmware/brcm/brcmfmac43455-sdio.txt
- ln -s brcmfmac43430-sdio.raspberrypi,3-model-b.txt "$pkgdir"/lib/firmware/brcm/brcmfmac43430-sdio.txt
+ rm -f "$pkgdir/usr/lib/firmware/{Makefile,README,configure,GPL-3}"
- # symlinks for Visionfive1 riscv64 boards, till it fixed upstream
- ln -s ../cypress/cyfmac43430-sdio.bin "$pkgdir"/lib/firmware/brcm/brcmfmac43430-sdio.starfive,visionfive-v1.bin
+ find "$pkgdir" \( -name '*.S' -or -name '*.asm' -or \
+ -name '*.c' -or -name '*.h' -or -name '*.pl' -or \
+ -name 'Makefile' \) -exec rm -- {} \;
+ ## add original Pi Foundation bluetooth firmware files (supplement to upstream)
+ install -Dm 644 "$srcdir"/bluez-firmware-$_rpi_bt/debian/firmware/broadcom/*.hcd \
+ -t "$pkgdir"/lib/firmware/brcm
+ install -Dm 644 "$srcdir"/bluez-firmware-$_rpi_bt/debian/firmware/synaptics/*.hcd \
+ -t "$pkgdir"/lib/firmware/synaptics
+ # add symlinks from bluez-firmware.links
+ while read -r link_args; do
+ link_args="${link_args/ \/lib/ lib}"
+ link_args="${link_args/\/lib\/firmware\/brcm\//}"
+ ( cd "$pkgdir" && ln -sfv ${link_args/\/lib\/firmware\/synaptics\//..\/synaptics\/} )
+ done < "$srcdir/bluez-firmware-$_rpi_bt/debian/bluez-firmware.links"
+
+
+ ## add original Pi Foundation brcm wifi firmware files
+ # we can use either the -standard or -minimal 43455 file so use standard by default
+ ln -sfv cyfmac43455-sdio-standard.bin "$srcdir"/firmware-nonfree-$_rpi_brcm/debian/config/brcm80211/cypress/cyfmac43455-sdio.bin
+
+ # install deref's symlinks and copies a whole file, which makes rpi use duplicated
+ # variants specifically from downstream firmware (does not alter base upstream files)
install -Dm644 \
- "$srcdir"/firmware-nonfree-$_rpi_brcm/debian/config/brcm80211/brcm/brcmfmac43436* \
+ "$srcdir"/firmware-nonfree-$_rpi_brcm/debian/config/brcm80211/brcm/brcmfmac*raspberrypi* \
-t "$pkgdir"/lib/firmware/brcm
- local fw; for fw in $source; do
- local _f=${fw%::*}
- case $_f in
- *.hcd*)
- install -Dm 644 "$srcdir"/$_f \
- "$pkgdir"/lib/firmware/brcm/"${_f%.*}"
- ;;
- esac
- done
+ # but 43436/43436s/43456 is not in linux-firmware, so copy it normally
+ cp -a \
+ "$srcdir"/firmware-nonfree-$_rpi_brcm/debian/config/brcm80211/brcm/brcmfmac43456* \
+ "$srcdir"/firmware-nonfree-$_rpi_brcm/debian/config/brcm80211/brcm/brcmfmac43436* \
+ "$pkgdir"/lib/firmware/brcm
- rm -f "${pkgdir}/usr/lib/firmware/{Makefile,README,configure,GPL-3}"
+ ## symlinks for Visionfive1 riscv64 boards, till it fixed upstream
+ ln -sfv ../cypress/cyfmac43430-sdio.bin "$pkgdir"/lib/firmware/brcm/brcmfmac43430-sdio.starfive,visionfive-v1.bin
- find "${pkgdir}" \( -name '*.S' -or -name '*.asm' -or \
- -name '*.c' -or -name '*.h' -or -name '*.pl' -or \
- -name 'Makefile' \) -exec rm -- {} \;
+ dangling=$(cd "$pkgdir" && find . -type l ! -exec test -e {} \; -print)
+ if [ -n "$dangling" ]; then
+ error "dangling symlinks:"
+ echo "$dangling" >&2
+ return 1
+ fi
}
_folder() {
@@ -81,12 +108,26 @@ _folder() {
pkgdesc="firmware files for linux ($folder folder)"
depends=""
provides="linux-firmware-any"
- provider_priority=
+ provider_priority=1
+
+ local linkedbins= bin=
+ cd "$pkgdir"
+ # Move things that symlink into the target folder
+ # this fixes the -other deps, because
+ # - there are top-level files that are in -other (non-folder)
+ # - but, they are actually symlinks into .e.g -mediatek
+ # so, -other now depends on -mediatek due to symlink resolution
+ # this moves the symlinks along with the thing they symlink to.
+ linkedbins="$(find lib/firmware -maxdepth 1 -type l -exec sh -c "readlink \$1 | grep -qi $folder && echo \$1" - {} \;)"
+
+ if [ -n "$linkedbins" ]; then
+ for bin in $linkedbins; do
+ amove "$bin"
+ done
+ fi
# Move /lib/firmware/$folder (case insensitive)
- mkdir -p "$subpkgdir/lib/firmware"
- mv "$(find "$pkgdir/lib/firmware" -iname "$folder" -type d)" \
- "$subpkgdir/lib/firmware"
+ amove "$(find lib/firmware -iname "$folder" -type d)"
}
other() {
@@ -100,8 +141,8 @@ other() {
local fixed
error "Not all subfolders have been moved to subpackages!"
error "Fix this by adjusting _folders as follows:"
- fixed="$(echo $_folders$leftover | tr " " "\n" | tr '[A-Z]' '[a-z]' | sort)"
- echo "_folders=\"$(printf "$fixed" | tr "\n" " ")\"" | fold -s
+ fixed="$(echo $_folders$leftover | tr " " "\n" | tr '[:upper:]' '[:lower:]' | sort)"
+ echo "_folders=\"$(printf "%s" "$fixed" | tr "\n" " ")\"" | fold -s
return 1
fi
@@ -109,16 +150,16 @@ other() {
pkgdesc="firmware files for linux (uncategorized)"
depends=""
provides="linux-firmware-any"
- provider_priority=
- mkdir -p "$subpkgdir"/
- mv "$pkgdir"/lib "$subpkgdir"/
+ provider_priority=1
+
+ amove /lib
}
none() {
# dummy package with no firmware
pkgdesc="Empty linux firwmare package for those who does not need any firmware"
- provider_priority=
provides="linux-firmware-any"
+ provider_priority=1
depends=
mkdir -p "$subpkgdir"
}
@@ -139,11 +180,21 @@ ucode() {
bsdtar --null -cf - --format=newc @- > "$subpkgdir"/boot/amd-ucode.img
}
+s5p_mfc() {
+ # This needs its own function as the files are not in a directory,
+ # but rather loose in the main directory.
+ pkgdesc="firmware files for linux (S5P MFC firmware)"
+ provides="linux-firmware-any"
+ provider_priority=1
+ depends=
+
+ amove /lib/firmware/s5p-mfc*.fw
+}
+
sha512sums="
-5ef8160dd0b72a9bbe2176fb9dca680ec010863084e3bf6d0566a95d4be4e00efa77dc0ab3408eeaeba56bc1f257800ca5d77722df369ebd3ad59887cc522366 linux-firmware-20220610.tar.gz
-355c940b4fd597101c332207678fd28154d7e7a90cb374b1fdf230d2061bf979af0209c5a423fca8d23ddb3d95abec741e7dd651da7f0aaa97459ed4fe4d2355 BCM43430A1.hcd.e7fd1669
-1707c2955ceac3e6fc4b1edb8965c871dcfab21ce85cc617de67d7e6f3d6f9b93ee5a8a202de6b20f7b43d1462668287a8569786146cadf5e0268058d2524a9c BCM4345C0.hcd.e7fd1669
-c8b943bfeffa54ce1687ca69884e9d56efd28d5ea1dbef660915a80c3e036a8675e7d4299102c32006193e4895367654bb67e2d08e66d7803f396eee7e3dfbd6 BCM43430B0.hcd.e7fd1669
-eac7428befa36952542e19d3c4a5fa96e1cb3a56c3b00770534909fb0d8caf503a42368175e715e1de58e50cfbd2b4c8ea5a26af3bd546cbbaf8d2c12457a628 BCM4345C5.hcd.e7fd1669
-5f24b2213d687f9a5ed07fdbbeae260d73e2d72e58c56a53744b232aacf990cfd217d211f18c028148edc20584326959e641fdf0bb1ecd48b5ed04a7254499a0 brcm-firmware-2c8f6652.tar.gz
+559cedb0e7f549ef4fd130a790f3c92e41fb5889120bb8c9ec1e4068a2dc658d851c5d217036b019dbbd6e984c73527c952c27ad18020138111bbbb6718c2a3b linux-firmware-20240410.tar.gz
+d5182840ba3c1a12e5d8afa078fa334d8c1a2e0e5ca33fa675e64ac1ac26f732a588ac2c7451a4ccf739121268bc56b2f7f22d66cc5344ff108e39e410886419 bluez-firmware-78d6a07730e2d20c035899521ab67726dc028e1c.tar.gz
+0dd00bc388a76613ec0e06000dc1066d200f236142ca9777a4cee62faf611064f0b4625e6120bb3e5f9ec60d33a80b3a2b62bcc1a710618260c3c720eed8b800 brcm-firmware-223ccf3a3ddb11b3ea829749fbbba4d65b380897.tar.gz
+1e122c69184c2b8b6aa71ad7dc961816cd74070622386af11880333190d5cd13dbac11fe2afe92535b0048e207ab25f5d465b1fc97095e24b3e54ccf6f1ea922 linux-firmware-ucode-amd17h-zenbleed-microcode_amd_fam17h.bin
+75bc2c681606c37fc363c54f318a01d3f25a0265c1690b68e4b294f4dc17bb803a2619dd0d41ac72cb7e58fdc4423ad85979b4c9a1039c1c01c1e86ce140d7b8 linux-firmware-ucode-amd19h-zenbleed-microcode_amd_fam19h.bin
"
diff --git a/main/linux-headers/APKBUILD b/main/linux-headers/APKBUILD
index cd437c13951..3992f449f2e 100644
--- a/main/linux-headers/APKBUILD
+++ b/main/linux-headers/APKBUILD
@@ -1,22 +1,41 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=linux-headers
-pkgver=5.16.7
-_kernver=${pkgver%.*}
-pkgrel=1
+pkgver=6.6 # Follow the latest Linux stable
+case $pkgver in
+ *.*.*) _kernver=${pkgver%.*};;
+ *.*) _kernver=$pkgver;;
+esac
+pkgrel=0
pkgdesc="Linux system headers"
url="https://kernel.org/"
arch="noarch"
license="GPL-2.0-only"
-makedepends="perl rsync"
+makedepends="perl"
options="!check !dbg !strip !tracedeps"
-source="https://kernel.org/pub/linux/kernel/v5.x/linux-$_kernver.tar.xz
- https://kernel.org/pub/linux/kernel/v5.x/patch-$pkgver.xz
+source="https://kernel.org/pub/linux/kernel/v6.x/linux-$_kernver.tar.xz
revert-broken-uapi.patch
0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch
- include-uapi-linux-swab-Fix-potentially-missing-__always_inline.patch
"
+if [ "${pkgver%.0}" = "$pkgver" ]; then
+ source="
+ $source
+ https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/patch-$pkgver.xz
+ "
+fi
builddir="$srcdir/linux-$_kernver"
+_carch="$CARCH"
+case "$_carch" in
+aarch64*) _carch="arm64" ;;
+arm*) _carch="arm" ;;
+mips*) _carch="mips" ;;
+s390*) _carch="s390" ;;
+ppc*) _carch="powerpc" ;;
+riscv*) _carch="riscv" ;;
+loongarch*) _carch="loongarch" ;;
+# not sure about this -- ppc64*) _carch="powerpc64" ;;
+esac
+
prepare() {
if [ "$_kernver" != "$pkgver" ]; then
unxz -c < "$srcdir"/patch-$pkgver.xz | patch -p1
@@ -24,33 +43,24 @@ prepare() {
default_prepare
}
-package() {
- local _carch=$CARCH
-
- case "$_carch" in
- aarch64*) _carch="arm64" ;;
- arm*) _carch="arm" ;;
- mips*) _carch="mips" ;;
- s390*) _carch="s390" ;;
- ppc*) _carch="powerpc" ;;
- riscv*) _carch="riscv" ;;
-# not sure about this -- ppc64*) _carch="powerpc64" ;;
- esac
+build() {
+ make headers ARCH="$_carch"
+}
- mkdir -p "$pkgdir/usr"
- make headers_install ARCH="$_carch" INSTALL_HDR_PATH="$pkgdir/usr"
+package() {
+ mkdir -p "$pkgdir"/usr/
+ cp -a usr/include/ "$pkgdir"/usr/include/
- find "$pkgdir/usr" \( -name .install -o -name ..install.cmd \) -exec \
- rm -f {} \;
+ msg "purging non header files.."
+ find "$pkgdir"/usr/include/ ! -iname "*.h" -type f -exec rm -v {} \+
# provided by libdrm
rm -rf "$pkgdir"/usr/include/drm
}
sha512sums="
-7a257dd576bc8493595ec7d6f3c9cb6e22c772a8b2dbe735d2485c4f5c56e26a08695546e7e0f1f1cd04a533f25e829361958d4da0b98bf0ba8094dd57a85aaf linux-5.16.tar.xz
-784fd87796b818f921deed92e1646058fa21e89b436c4d31dde2aeb5e445eb2bec76e9f6587f3179a9a531aeee770b027ecd2322d828f27e7a30c85fb95bb671 patch-5.16.7.xz
+458b2c34d46206f9b4ccbac54cc57aeca1eaecaf831bc441e59701bac6eadffc17f6ce24af6eadd0454964e843186539ac0d63295ad2cc32d112b60360c39a35 linux-6.6.tar.xz
32597f2672d1ec365a936d15041a7cf219ef9353241d4a5c378244cf2fc155610443a19bbcd391c86099a0b08486c45e042ec7c90b0d04fe675c3ad0ffc36b53 revert-broken-uapi.patch
607c074d72aca88fea9ecdbd62198d8f7857daca75e5d027966e0a9997338d6ac8ce0a1e9114b19232b390751d05acca09e28b0cfad2a12d5942f5575a9f4684 0003-remove-inclusion-of-sysinfo.h-in-kernel.h.patch
-7cfa786144009c52d682e307bb512156e4812d7abe03b3fed99651a02d80567d47ee6f347f88d083c1b9805e0c09625fc3df08a8d0ae96b169d24eb5b83917b7 include-uapi-linux-swab-Fix-potentially-missing-__always_inline.patch
+1898e06d074961ab3919de9408cdb9bcb359194e3c5d7de78e9a2dd20457a3f55e2bf1d8a9c1689d3117353b095d6b63a29ff7d9874ac35c7deb7a2155bcbf72 patch-6.6.xz
"
diff --git a/main/linux-headers/include-uapi-linux-swab-Fix-potentially-missing-__always_inline.patch b/main/linux-headers/include-uapi-linux-swab-Fix-potentially-missing-__always_inline.patch
deleted file mode 100644
index 3ef4477ac55..00000000000
--- a/main/linux-headers/include-uapi-linux-swab-Fix-potentially-missing-__always_inline.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 2b7d2ece0b60b8f450f29119f28668dc74bb692e Mon Sep 17 00:00:00 2001
-From: Matt Redfearn <matt.redfearn@mips.com>
-Date: Wed, 3 Jan 2018 09:57:30 +0000
-Subject: [PATCH] include/uapi/linux/swab: Fix potentially missing
- __always_inline
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Commit bc27fb68aaad ("include/uapi/linux/byteorder, swab: force inlining
-of some byteswap operations") added __always_inline to swab functions
-and commit 283d75737837 ("uapi/linux/stddef.h: Provide __always_inline to
-userspace headers") added a definition of __always_inline for use in
-exported headers when the kernel's compiler.h is not available.
-
-However, since swab.h does not include stddef.h, if the header soup does
-not indirectly include it, the definition of __always_inline is missing,
-resulting in a compilation failure, which was observed compiling the
-perf tool using exported headers containing this commit:
-
-In file included from /usr/include/linux/byteorder/little_endian.h:12:0,
- from /usr/include/asm/byteorder.h:14,
- from tools/include/uapi/linux/perf_event.h:20,
- from perf.h:8,
- from builtin-bench.c:18:
-/usr/include/linux/swab.h:160:8: error: unknown type name ‘__always_inline’
- static __always_inline __u16 __swab16p(const __u16 *p)
-
-Fix this by replacing the inclusion of linux/compiler.h with
-linux/stddef.h to ensure that we pick up that definition if required,
-without relying on it's indirect inclusion. compiler.h is then included
-indirectly, via stddef.h.
-
-Fixes: 283d75737837 ("uapi/linux/stddef.h: Provide __always_inline to userspace headers")
-Signed-off-by: Matt Redfearn <matt.redfearn@mips.com>
----
- include/uapi/linux/swab.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/uapi/linux/swab.h b/include/uapi/linux/swab.h
-index 7272f85d6d6a..3736f2fe1541 100644
---- a/include/uapi/linux/swab.h
-+++ b/include/uapi/linux/swab.h
-@@ -3,7 +3,7 @@
- #define _UAPI_LINUX_SWAB_H
-
- #include <linux/types.h>
--#include <linux/compiler.h>
-+#include <linux/stddef.h>
- #include <asm/bitsperlong.h>
- #include <asm/swab.h>
-
---
-2.27.0
-
diff --git a/main/linux-lts/0001-powerpc-boot-wrapper-Add-z-notext-flag-for-ppc64le.patch b/main/linux-lts/0001-powerpc-boot-wrapper-Add-z-notext-flag-for-ppc64le.patch
new file mode 100644
index 00000000000..f994c25fc86
--- /dev/null
+++ b/main/linux-lts/0001-powerpc-boot-wrapper-Add-z-notext-flag-for-ppc64le.patch
@@ -0,0 +1,28 @@
+From b4d7a16d2b76e09ec88ff53a86f6e263c329e160 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Tue, 28 Nov 2023 14:35:54 +0100
+Subject: [PATCH 1/5] powerpc/boot/wrapper: Add "-z notext" flag for ppc64le
+
+This is a follow up to commit 4c078c86b4a4 (powerpc/boot/wrapper: Add
+"-z notext" flag to disable diagnostic)
+
+Ref: https://gitlab.alpinelinux.org/alpine/aports/-/issues/14560
+---
+ arch/powerpc/boot/wrapper | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/arch/powerpc/boot/wrapper b/arch/powerpc/boot/wrapper
+index 352d7de24018..ceaef956f821 100755
+--- a/arch/powerpc/boot/wrapper
++++ b/arch/powerpc/boot/wrapper
+@@ -268,6 +268,7 @@ pseries)
+ if [ "$format" != "elf32ppc" ]; then
+ link_address=
+ pie=-pie
++ notext='-z notext'
+ fi
+ make_space=n
+ ;;
+--
+2.43.0
+
diff --git a/main/linux-lts/0002-x86-Compress-vmlinux-with-zstd-19-instead-of-22.patch b/main/linux-lts/0002-x86-Compress-vmlinux-with-zstd-19-instead-of-22.patch
new file mode 100644
index 00000000000..39acc392f8b
--- /dev/null
+++ b/main/linux-lts/0002-x86-Compress-vmlinux-with-zstd-19-instead-of-22.patch
@@ -0,0 +1,30 @@
+From b7a5aef6b0d761be21e8df6cd11a963f762768ea Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Tue, 13 Dec 2022 16:45:51 +0100
+Subject: [PATCH 2/5] x86: Compress vmlinux with zstd -19 instead of -22
+
+This gives slightly bigger kernel but it avoids run out of memory on 32
+bit kernels with the error:
+zstd kernel compression error 11
+
+https://forums.gentoo.org/viewtopic-p-8641020.html#8641020
+---
+ arch/x86/boot/compressed/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
+index 71fc531b95b4..260d38e772b0 100644
+--- a/arch/x86/boot/compressed/Makefile
++++ b/arch/x86/boot/compressed/Makefile
+@@ -147,7 +147,7 @@ $(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) FORCE
+ $(obj)/vmlinux.bin.lz4: $(vmlinux.bin.all-y) FORCE
+ $(call if_changed,lz4_with_size)
+ $(obj)/vmlinux.bin.zst: $(vmlinux.bin.all-y) FORCE
+- $(call if_changed,zstd22_with_size)
++ $(call if_changed,zstd_with_size)
+
+ suffix-$(CONFIG_KERNEL_GZIP) := gz
+ suffix-$(CONFIG_KERNEL_BZIP2) := bz2
+--
+2.43.0
+
diff --git a/main/linux-lts/0003-kexec-add-kexec_load_disabled-boot-option.patch b/main/linux-lts/0003-kexec-add-kexec_load_disabled-boot-option.patch
new file mode 100644
index 00000000000..a13d12a4bd4
--- /dev/null
+++ b/main/linux-lts/0003-kexec-add-kexec_load_disabled-boot-option.patch
@@ -0,0 +1,36 @@
+From cf29b5a58ef88adf96317c3c933a16f9c865e09a Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Thu, 14 Jul 2022 13:23:51 +0200
+Subject: [PATCH 3/5] kexec: add kexec_load_disabled boot option
+
+Make kexec_load disabled by default and add a boot option to enable it:
+kexec_load_disabled=0
+---
+ kernel/kexec_core.c | 11 ++++++++++-
+ 1 file changed, 10 insertions(+), 1 deletion(-)
+
+diff --git a/kernel/kexec_core.c b/kernel/kexec_core.c
+index 9dc728982d79..7650ffe5631e 100644
+--- a/kernel/kexec_core.c
++++ b/kernel/kexec_core.c
+@@ -942,7 +942,16 @@ static struct kexec_load_limit load_limit_panic = {
+
+ struct kimage *kexec_image;
+ struct kimage *kexec_crash_image;
+-static int kexec_load_disabled;
++static int kexec_load_disabled = 1;
++
++static int __init kexec_load_disabled_setup(char *str)
++{
++ unsigned long disabled;
++ if (!kstrtoul(str, 0, &disabled))
++ kexec_load_disabled = disabled ? 1 : 0;
++ return 1;
++}
++__setup("kexec_load_disabled=", kexec_load_disabled_setup);
+
+ #ifdef CONFIG_SYSCTL
+ static int kexec_limit_handler(struct ctl_table *table, int write,
+--
+2.43.0
+
diff --git a/main/linux-lts/0004-objtool-respect-AWK-setting.patch b/main/linux-lts/0004-objtool-respect-AWK-setting.patch
new file mode 100644
index 00000000000..7c04574b846
--- /dev/null
+++ b/main/linux-lts/0004-objtool-respect-AWK-setting.patch
@@ -0,0 +1,26 @@
+From dc34b09b20b7aa88ca55742a113d223f33c09c32 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Tue, 28 Nov 2023 14:22:46 +0100
+Subject: [PATCH 4/5] objtool: respect AWK setting
+
+AWK= is not passed on as an makefile argument so we need pass it as an env.
+---
+ tools/objtool/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tools/objtool/Makefile b/tools/objtool/Makefile
+index 83b100c1e7f6..6ccddfa6de4f 100644
+--- a/tools/objtool/Makefile
++++ b/tools/objtool/Makefile
+@@ -42,7 +42,7 @@ OBJTOOL_CFLAGS += $(if $(elfshdr),,-DLIBELF_USE_DEPRECATED)
+ # Always want host compilation.
+ HOST_OVERRIDES := CC="$(HOSTCC)" LD="$(HOSTLD)" AR="$(HOSTAR)"
+
+-AWK = awk
++AWK ?= awk
+ MKDIR = mkdir
+
+ ifeq ($(V),1)
+--
+2.43.0
+
diff --git a/main/linux-lts/0001-powerpc-config-defang-gcc-check-for-stack-protector-.patch b/main/linux-lts/0005-powerpc-config-defang-gcc-check-for-stack-protector-.patch
index 9598a4edc91..bf2e0d52884 100644
--- a/main/linux-lts/0001-powerpc-config-defang-gcc-check-for-stack-protector-.patch
+++ b/main/linux-lts/0005-powerpc-config-defang-gcc-check-for-stack-protector-.patch
@@ -1,7 +1,8 @@
-From f4009d74f6cf569b85cbba15a994bcc7f1af2ce7 Mon Sep 17 00:00:00 2001
+From 0306d648bbd12489c9ffbe8f5bd9cc82fa5eadd8 Mon Sep 17 00:00:00 2001
From: Ariadne Conill <ariadne@dereferenced.org>
Date: Tue, 18 Feb 2020 21:10:22 +0000
-Subject: [PATCH] powerpc: config: defang gcc check for stack-protector support
+Subject: [PATCH 5/5] powerpc: config: defang gcc check for stack-protector
+ support
When we rebase kernel configs in Alpine, it is common to do so from
an environment where CARCH does not match CHOST.
@@ -16,19 +17,19 @@ Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
-index ba5b66189358..60d9e1bbed9a 100644
+index d5d5388973ac..0ba9d88de22f 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
-@@ -239,8 +239,7 @@ config PPC
- select HAVE_RELIABLE_STACKTRACE
+@@ -271,8 +271,7 @@ config PPC
select HAVE_RSEQ
+ select HAVE_SETUP_PER_CPU_AREA if PPC64
select HAVE_SOFTIRQ_ON_OWN_STACK
- select HAVE_STACKPROTECTOR if PPC32 && $(cc-option,-mstack-protector-guard=tls -mstack-protector-guard-reg=r2)
- select HAVE_STACKPROTECTOR if PPC64 && $(cc-option,-mstack-protector-guard=tls -mstack-protector-guard-reg=r13)
+ select HAVE_STACKPROTECTOR
+ select HAVE_STATIC_CALL if PPC32
select HAVE_SYSCALL_TRACEPOINTS
select HAVE_VIRT_CPU_ACCOUNTING
- select HUGETLB_PAGE_SIZE_VARIABLE if PPC_BOOK3S_64 && HUGETLB_PAGE
--
-2.33.1
+2.43.0
diff --git a/main/linux-lts/APKBUILD b/main/linux-lts/APKBUILD
index 6c48c90e2d9..d5e710a3fea 100644
--- a/main/linux-lts/APKBUILD
+++ b/main/linux-lts/APKBUILD
@@ -1,8 +1,8 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
_flavor=lts
-pkgname=linux-${_flavor}
-pkgver=5.15.51
+pkgname=linux-$_flavor
+pkgver=6.6.28
case $pkgver in
*.*.*) _kernver=${pkgver%.*};;
*.*) _kernver=$pkgver;;
@@ -12,15 +12,16 @@ pkgdesc="Linux lts kernel"
url="https://www.kernel.org"
depends="initramfs-generator"
_depends_dev="perl gmp-dev mpc1-dev mpfr-dev elfutils-dev bash flex bison zstd"
-makedepends="$_depends_dev sed installkernel bc linux-headers linux-firmware-any openssl1.1-compat-dev mawk
- diffutils findutils zstd"
-options="!strip"
+makedepends="$_depends_dev sed installkernel bc linux-headers linux-firmware-any openssl-dev>3 mawk
+ diffutils findutils zstd pahole python3 gcc>=13.1.1_git20230624"
+options="!strip !check"
_config=${config:-config-lts.${CARCH}}
-install=
source="https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/linux-$_kernver.tar.xz
- 0001-powerpc-config-defang-gcc-check-for-stack-protector-.patch
- vmlinux-zstd.patch
- ppc-export_mmu_feature_keys_as_non-GPL.patch
+ 0001-powerpc-boot-wrapper-Add-z-notext-flag-for-ppc64le.patch
+ 0002-x86-Compress-vmlinux-with-zstd-19-instead-of-22.patch
+ 0003-kexec-add-kexec_load_disabled-boot-option.patch
+ 0004-objtool-respect-AWK-setting.patch
+ 0005-powerpc-config-defang-gcc-check-for-stack-protector-.patch
lts.aarch64.config
lts.armv7.config
@@ -28,6 +29,7 @@ source="https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/linux-$_kernver
lts.x86_64.config
lts.ppc64le.config
lts.s390x.config
+ lts.loongarch64.config
virt.aarch64.config
virt.armv7.config
@@ -35,58 +37,49 @@ source="https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/linux-$_kernver
virt.x86.config
virt.x86_64.config
"
-subpackages="$pkgname-dev:_dev:$CBUILD_ARCH"
-_flavors=
+subpackages="$pkgname-dev:_dev:$CBUILD_ARCH $pkgname-doc"
for _i in $source; do
case $_i in
*.$CARCH.config)
- _f=${_i%.$CARCH.config}
- _flavors="$_flavors ${_f}"
+ _f=${_i%."$CARCH".config}
+ _flavors="$_flavors $_f"
if [ "linux-$_f" != "$pkgname" ]; then
- subpackages="$subpackages linux-${_f}::$CBUILD_ARCH linux-${_f}-dev:_dev:$CBUILD_ARCH"
+ subpackages="$subpackages linux-$_f::$CBUILD_ARCH linux-$_f-dev:_dev:$CBUILD_ARCH"
fi
;;
esac
done
+builddir="$srcdir"/linux-$_kernver
if [ "${pkgver%.0}" = "$pkgver" ]; then
source="$source
https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/patch-$pkgver.xz"
fi
arch="all !armhf !riscv64"
-license="GPL-2.0"
+license="GPL-2.0-only"
# secfixes:
# 5.10.4-r0:
# - CVE-2020-29568
# - CVE-2020-29569
+# 5.15.74-r0:
+# - CVE-2022-41674
+# - CVE-2022-42719
+# - CVE-2022-42720
+# - CVE-2022-42721
+# - CVE-2022-42722
+# 6.1.27-r3:
+# - CVE-2023-32233
+# 6.6.13-r1:
+# - CVE-46838
prepare() {
- local _patch_failed=
- cd "$srcdir"/linux-$_kernver
if [ "$_kernver" != "$pkgver" ]; then
msg "Applying patch-$pkgver.xz"
unxz -c < "$srcdir"/patch-$pkgver.xz | patch -p1 -N
fi
- # first apply patches in specified order
- for i in $source; do
- case $i in
- *.patch)
- msg "Applying $i..."
- if ! patch -s -p1 -N -i "$srcdir"/$i; then
- echo $i >>failed
- _patch_failed=1
- fi
- ;;
- esac
- done
-
- if ! [ -z "$_patch_failed" ]; then
- error "The following patches failed:"
- cat failed
- return 1
- fi
+ default_prepare
# remove localversion from patch if any
rm -f localversion*
@@ -100,6 +93,8 @@ _kernelarch() {
mips*) arch="mips" ;;
ppc*) arch="powerpc" ;;
s390*) arch="s390" ;;
+ riscv*) arch="riscv" ;;
+ loongarch64) arch="loongarch" ;;
esac
echo "$arch"
}
@@ -110,15 +105,25 @@ _prepareconfig() {
local _config=$_flavor.$_arch.config
local _builddir="$srcdir"/build-$_flavor.$_arch
mkdir -p "$_builddir"
- echo "-$pkgrel-$_flavor" > "$_builddir"/localversion-alpine \
- || return 1
+ echo "-$pkgrel-$_flavor" > "$_builddir"/localversion-alpine
cp "$srcdir"/$_config "$_builddir"/.config
msg "Configuring $_flavor kernel ($_arch)"
- make -C "$srcdir"/linux-$_kernver \
+ make -C "$builddir" \
O="$_builddir" \
ARCH="$(_kernelarch $_arch)" \
olddefconfig
+
+ if grep "CONFIG_MODULE_SIG=y" "$_builddir"/.config >/dev/null; then
+ if [ -f "$KERNEL_SIGNING_KEY" ]; then
+ sed -i -e "s:^CONFIG_MODULE_SIG_KEY=.*:CONFIG_MODULE_SIG_KEY=\"$KERNEL_SIGNING_KEY\":" \
+ "$_builddir"/.config
+ msg "Using $KERNEL_SIGNING_KEY to sign $_flavor kernel ($_arch) modules"
+ else
+ warning "KERNEL_SIGNING_KEY was not set. A signing key will be generated, but 3rd"
+ warning "party modules can not be signed"
+ fi
+ fi
}
listconfigs() {
@@ -144,14 +149,15 @@ prepareconfigs() {
prepareupdate() {
clean && fetch && unpack && prepare && deps
prepareconfigs
- rm -r "$srcdir"/linux-$_kernver
+ rm -r "$builddir"
}
updateconfigs() {
- if ! [ -d "$srcdir"/linux-$_kernver ]; then
+ if ! [ -d "$builddir" ]; then
deps && fetch && unpack && prepare
fi
- for _config in $(listconfigs); do
+ for _config in ${CONFIGS:-$(listconfigs)}; do
+ msg "updating $_config"
local _flavor=${_config%%.*}
local _arch=${_config%.config}
_arch=${_arch#*.}
@@ -162,9 +168,9 @@ updateconfigs() {
if ! [ -f "$_builddir"/.config ]; then
cp "$srcdir"/$_config "$_builddir"/.config
actions="olddefconfig"
- env | grep ^CONFIG_ >> "$_builddir"/.config || true
fi
- make -j1 -C "$srcdir"/linux-$_kernver \
+ env | grep ^CONFIG_ >> "$_builddir"/.config || true
+ make -j1 -C "$builddir" \
O="$_builddir" \
ARCH="$(_kernelarch $_arch)" \
$actions savedefconfig
@@ -175,6 +181,9 @@ updateconfigs() {
build() {
unset LDFLAGS
+ # for some reason these sometimes leak into the kernel build,
+ # -Werror=format-security breaks some stuff
+ unset CFLAGS CPPFLAGS CXXFLAGS
export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
for i in $_flavors; do
_prepareconfig "$i" "$CARCH"
@@ -182,6 +191,14 @@ build() {
for i in $_flavors; do
msg "Building $i kernel"
cd "$srcdir"/build-$i.$CARCH
+
+ # set org in cert for modules signing
+ # https://www.kernel.org/doc/html/v6.1/admin-guide/module-signing.html#generating-signing-keys
+ mkdir -p certs
+ sed -e 's/#O = Unspecified company/O = alpinelinux.org/' \
+ "$builddir"/certs/default_x509.genkey \
+ > certs/x509.genkey
+
make ARCH="$(_kernelarch $CARCH)" \
CC="${CC:-gcc}" \
AWK="${AWK:-mawk}" \
@@ -191,10 +208,10 @@ build() {
_package() {
local _buildflavor="$1" _outdir="$2"
- local _abi_release=${pkgver}-${pkgrel}-${_buildflavor}
export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
cd "$srcdir"/build-$_buildflavor.$CARCH
+ local _abi_release="$(make -s kernelrelease)"
# modules_install seems to regenerate a defect Modules.symvers on s390x. Work
# around it by backing it up and restore it after modules_install
cp Module.symvers Module.symvers.backup
@@ -203,31 +220,59 @@ _package() {
local _install
case "$CARCH" in
- arm*|aarch64) _install="zinstall dtbs_install";;
+ arm*|aarch64|riscv*) _install="zinstall dtbs_install";;
*) _install=install;;
esac
- make -j1 modules_install $_install \
+ make modules_install $_install \
ARCH="$(_kernelarch $CARCH)" \
INSTALL_MOD_PATH="$_outdir" \
+ INSTALL_MOD_STRIP=1 \
INSTALL_PATH="$_outdir"/boot \
INSTALL_DTBS_PATH="$_outdir/boot/dtbs-$_buildflavor"
cp Module.symvers.backup Module.symvers
- rm -f "$_outdir"/lib/modules/${_abi_release}/build \
- "$_outdir"/lib/modules/${_abi_release}/source
+ rm -f "$_outdir"/lib/modules/"$_abi_release"/build \
+ "$_outdir"/lib/modules/"$_abi_release"/source
rm -rf "$_outdir"/lib/firmware
install -D -m644 include/config/kernel.release \
"$_outdir"/usr/share/kernel/$_buildflavor/kernel.release
+
+ case "$CARCH" in
+ loongarch64)
+ mv "$_outdir"/boot/vmlinuz-$_abi_release \
+ "$_outdir"/boot/vmlinuz-$_buildflavor
+
+ mv "$_outdir"/boot/config-$_abi_release \
+ "$_outdir"/boot/config-$_buildflavor
+
+ mv "$_outdir"/boot/System.map-$_abi_release \
+ "$_outdir"/boot/System.map-$_buildflavor
+ ;;
+ esac
}
# main flavor installs in $pkgdir
package() {
depends="$depends linux-firmware-any"
- _package lts "$pkgdir"
+ _package "$_flavor" "$pkgdir"
+
+ # copy files for linux-lts-doc sub package
+ mkdir -p "$pkgdir"/usr/share/doc
+ cp -r "$builddir"/Documentation \
+ "$pkgdir"/usr/share/doc/linux-doc-"$pkgver"/
+ # remove files that aren't part of the documentation itself
+ for nondoc in \
+ .gitignore conf.py docutils.conf \
+ dontdiff Kconfig Makefile
+ do
+ rm "$pkgdir"/usr/share/doc/linux-doc-"$pkgver"/"$nondoc"
+ done
+ # create /usr/share/doc/linux-doc symlink
+ cd "$pkgdir"/usr/share/doc; ln -s linux-doc-"$pkgver" linux-doc
}
# subflavors install in $subpkgdir
@@ -237,7 +282,8 @@ virt() {
_dev() {
local _flavor=$(echo $subpkgname | sed -E 's/(^linux-|-dev$)//g')
- local _abi_release=${pkgver}-${pkgrel}-$_flavor
+ local _builddir="$srcdir"/build-$_flavor.$CARCH
+ local _abi_release="$(make -C "$_builddir" -s kernelrelease)"
# copy the only the parts that we really need for build 3rd party
# kernel modules and install those as /usr/src/linux-headers,
# simlar to what ubuntu does
@@ -247,30 +293,32 @@ _dev() {
#
pkgdesc="Headers and script for third party modules for $_flavor kernel"
depends="$_depends_dev"
- local dir="$subpkgdir"/usr/src/linux-headers-${_abi_release}
+ local dir="$subpkgdir"/usr/src/linux-headers-"$_abi_release"
export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
# first we import config, run prepare to set up for building
# external modules, and create the scripts
mkdir -p "$dir"
- local _builddir="$srcdir"/build-$_flavor.$CARCH
cp -a "$_builddir"/.config "$_builddir"/localversion-alpine \
"$dir"/
- make -j1 -C "$srcdir"/linux-$_kernver \
+ install -D -t "$dir"/certs "$_builddir"/certs/signing_key.x509 || :
+
+ make -C "$builddir" \
O="$dir" \
ARCH="$(_kernelarch $CARCH)" \
+ AWK="${AWK:-mawk}" \
prepare modules_prepare scripts
# remove the stuff that points to real sources. we want 3rd party
- # modules to believe this is the soruces
+ # modules to believe this is the sources
rm "$dir"/Makefile "$dir"/source
# copy the needed stuff from real sources
#
# this is taken from ubuntu kernel build script
# http://kernel.ubuntu.com/git/ubuntu/ubuntu-zesty.git/tree/debian/rules.d/3-binary-indep.mk
- cd "$srcdir"/linux-$_kernver
+ cd "$builddir"
find . -path './include/*' -prune \
-o -path './scripts/*' -prune -o -type f \
\( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \
@@ -279,32 +327,49 @@ _dev() {
cp -a scripts include "$dir"
- find $(find arch -name include -type d -print) -type f \
- | cpio -pdm "$dir"
+ find "arch/$_karch" -name include -type d -print | while IFS='' read -r folder; do
+ find "$folder" -type f
+ done | sort -u | cpio -pdm "$dir"
install -Dm644 "$srcdir"/build-$_flavor.$CARCH/Module.symvers \
"$dir"/Module.symvers
- mkdir -p "$subpkgdir"/lib/modules/${_abi_release}
- ln -sf /usr/src/linux-headers-${_abi_release} \
- "$subpkgdir"/lib/modules/${_abi_release}/build
+ # remove unneeded things
+ msg "Removing documentation..."
+ rm -r "$dir"/Documentation
+ find "$dir" -type f -name '*.o' -printf 'Removing %P\n' -delete
+ local _karch="$(_kernelarch $CARCH | sed 's/x86_64/x86/')"
+ msg "Removing unneeded arch headers..."
+ for i in "$dir"/arch/*; do
+ if [ "${i##*/}" != "$_karch" ]; then
+ echo " ${i##*/}"
+ rm -r "$i"
+ fi
+ done
+
+ mkdir -p "$subpkgdir"/lib/modules/"$_abi_release"
+ ln -sf /usr/src/linux-headers-"$_abi_release" \
+ "$subpkgdir"/lib/modules/"$_abi_release"/build
}
sha512sums="
-d25ad40b5bcd6a4c6042fd0fd84e196e7a58024734c3e9a484fd0d5d54a0c1d87db8a3c784eff55e43b6f021709dc685eb0efa18d2aec327e4f88a79f405705a linux-5.15.tar.xz
-214c54a839ae37849715520f4b1049f0df5366ca32522701b43afecfad116794c4542940ba32d389f28f2549d08c03d148f884cb8e565b75aa3c0cad6a4887b7 0001-powerpc-config-defang-gcc-check-for-stack-protector-.patch
-d26d3f99fdcbd0f56e9af32a281870bbfd9fe6a12d17921ef3876e72bd1e92a3c131e06567078a45c11a41826b39d3068cc6f0e89f67d9e16a14825984869268 vmlinux-zstd.patch
-bb374cecb32f32f2fe669ed00abbbe35a91ddcda469801a5cc4a4941605aa1768cd872a54906acf77d627ee7addd21b0565f73495a49e34c5bce3865deb4b45a ppc-export_mmu_feature_keys_as_non-GPL.patch
-3d8f570338ba4a1093b37c5a2e74df54317811c63cdac16533ee2177243faf7c3136bd9923bfd6ca3a9799e707d27c280d3953d143bc9585715e30d949d95186 lts.aarch64.config
-a5e2626609ae81a8334d2dc1cf846264189dd0d7713ce4ef7f9e195214165d0b7b854cbfe68b6a6eaf6d3823d78850f115686c9f87f552d75cb9618c1451e990 lts.armv7.config
-7d8cd3e7ab0588b51434773be901b19cb9172837725ee6478f6c1071c2a78ea07b6626e94f253574a7c5b102b900bea91e17ea48959c7e85398cc977eaf2777b lts.x86.config
-78b17e87b725773783d4df3019800bbdbcd419a166c9b3c0aa369a7ccef0fbcfcb79a90f63936f2d62b0547f149bf96d350e3ea59d0e2017bf13c6bf05f5be1d lts.x86_64.config
-11b5d1146a77039d2c3ca34209c199d823ba001525ba391551f78f596f754064114837f4a3d8ab7b0a6dc1277fa26ad20c8bb378164a1d369288249cc14db336 lts.ppc64le.config
-4408a26a1b278c2bd9ed96440da014d69f29565fc5597d14e3649c19e0ca15ddd5b3cfc3f38652a1ea340c3a862f276f3a3f70d12e6b102c935622f74cafddf4 lts.s390x.config
-b60ddfd4e2bdc7f2b80fb1945a3e39fc837518abbce81eb546fae0b7c2ca828987496dcea2c9170fe75ee25a494ca76281ff31e1d1f897ef05d79c35b29c89ee virt.aarch64.config
-5a468162ee2f33d5e01ca8fcf2d63043ba364535de273b93335cf532905a59bbd6bbfef68e883747b22b0fcf0e5ad4bf31edd0de5b2fb7248f921ed89f622665 virt.armv7.config
-5a91305a3a92ede3fa0910b84e8327dc7e49aa01beb6bf7c49ba9695f21a4f42bf7c7410fac50878858a614baf3e9868e365bb9969defd5ce03933a758119384 virt.ppc64le.config
-1df02b268e37505e240a96586832306dd8106f026ab6898c18abe21f6add73ddf090fcb5b68e490ce9e9a4045049cb780b6b59db93ca5015328cfa08e186d42c virt.x86.config
-ae3d94a12b8d04ac7a134dfddb9a73b9dc35cfc68c5c2b21456aae5b1976d0aa9a63955eaa5e12a5e6b85b40e1b09584de501d07d81866e2ec1b70fd8ada535d virt.x86_64.config
-82b656f0ae343db32e8300bdac413bb1a81ab05615c86f725b8c57b1eea54827f021b1ea0d8d1ae0f5e767e85b9898282d39f8742443a1b360c85e51f6abae9e patch-5.15.51.xz
+458b2c34d46206f9b4ccbac54cc57aeca1eaecaf831bc441e59701bac6eadffc17f6ce24af6eadd0454964e843186539ac0d63295ad2cc32d112b60360c39a35 linux-6.6.tar.xz
+58bf9e84fb01f811f0cada7f7953d111908f0b0650648d6a3522061fe08c9fe284c9315515ae386189253e37d0c92419f78048d6568e2e426654b1e61010685f 0001-powerpc-boot-wrapper-Add-z-notext-flag-for-ppc64le.patch
+763dcb40f698d43b0bb856f44493973e840b66efe62a8fd41a08b6e3fa38cf903e059d107be3735ab2f38a0f27bdb0262798e5e530a1905f96195cd8bcf62fdf 0002-x86-Compress-vmlinux-with-zstd-19-instead-of-22.patch
+75f232b6becee7d36d360ffaf2aaa837d13518f9ec620ca159bcb2a0e98eb18a77631406a9b44244ea0164a7ed59fad583823909681e9b894a012f9d13365b69 0003-kexec-add-kexec_load_disabled-boot-option.patch
+2956050bb332411d00a285e9656618f2e34b631492bbc19bef54d83a6e91b8531f4e18830b9313cfe52fbf8a8ca6fb76cf55b3ddd146ca3b977046cf2fd10cad 0004-objtool-respect-AWK-setting.patch
+4b16f15b47b5e5835b926126e39723f519290469517875cfb2d2b857a93ad1344f0d1ba4b255289e20f4da9c867647526b344f752981cee0a48c51577badac3f 0005-powerpc-config-defang-gcc-check-for-stack-protector-.patch
+db28d1a2fe74f1d5147ccbaf693d464e7e52ca911433debe50c7dccdbb382baf2de193820e7ec11b9eff7a57e5266c4490e240b5c7bd657297829737f449c458 lts.aarch64.config
+00f389f3f53b71b963e1f730d869b97c990499febecaa62b620c9cc9ac759b538c87526de894faa1a51b223ebbb1e5ed31dfa778bc11fd66c77095430666c6c1 lts.armv7.config
+6dd7a9aa588fa5b3d15bf1064d12b44c74b3445d9cfed16950e309225b115a6706cb26798cab7cf29413514979d0600b827b32871767413b244dad73b8455331 lts.x86.config
+0c364a4098dd69cf5e95c6a90f60a0a3cbe21d4ffa1ac91ddd0f8ce7a7efecbe1189554549ff546ece9284a33c4c34969882d93a3a0d71098acaaaa1d9f9860c lts.x86_64.config
+d2664761764e9c0b1a3cdcc028fbeb2bb8b98fe28ce5bcda832fbdc69316cff41e78402f834b8cb2e16d9f1743568d9cfbe5ec1e4a4437cd0526464e521519d2 lts.ppc64le.config
+a29343f52d69e7f8b91d92421098ade75b3249fa356c4c909b02c92efc49bfc98c52e43c715ca803da91255822865c7274794aa52f934c588dcd333b6c6dce14 lts.s390x.config
+fc45e1f44c4f97ad00349ae412507ac6d040da4c071d3485ef8ac0f30e703424111fc2f6f9146eb901a84322fda2f3bb8bad66d3fd9cf152156e666398fd22e3 lts.loongarch64.config
+a66b4f86921bc34f931b00a81bc56c837ca34abf984720fcbcdaaabeaef767427b2805fc1056eea7ed732685bfbdf8850425e5eab10918a7ff6f5d2a1a2388c9 virt.aarch64.config
+8251d9f585e4468f54e800e0cbecff5ed7dba4f06ecd40309d3eae64804d3b6074a5b1082bf9ab3ae33259afe9e64bcec5b69db487f0c0b53ccec72f2fa441bc virt.armv7.config
+461623079918cf73d621231c86497273be91bec9fc2d2aa4c520720a7a432c1dd0b7ee29652c90d8f21bd2293a3a8022aa55f2ac767fc3f0cc72d10c06fc3c24 virt.ppc64le.config
+bc3f98ab75e02f6baf47bc8372b0b8ba75aae68b0a5130f7e53076dce255dc16f6c5afe8acec1aa848b51c391255285d3f2cdd491388acdf00dc90a42d64a1f8 virt.x86.config
+5fc65b8033c56b58dc5c9a227a6bcb1069d53fabc79864c65ddb86d4fef25692b107665aaeb4fb07fe05bb7c1085956e18adf9cb2b62487a7f2202aded9162b7 virt.x86_64.config
+26d7bacd5516faa6377b135fb066bd8a00323a8999840b9a74ef03de8b993d2cba59e7f182a318b93b50de1f3453935bbbfd65c7ee1eaf3cb6dba5dcbab35724 patch-6.6.28.xz
"
diff --git a/main/linux-lts/lts.aarch64.config b/main/linux-lts/lts.aarch64.config
index 561ff123c3c..947b3335f2d 100644
--- a/main/linux-lts/lts.aarch64.config
+++ b/main/linux-lts/lts.aarch64.config
@@ -2,13 +2,14 @@
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
# CONFIG_CROSS_MEMORY_ATTACH is not set
+CONFIG_NO_HZ_FULL=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT=y
CONFIG_BPF_JIT_ALWAYS_ON=y
-CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
CONFIG_PREEMPT_VOLUNTARY=y
+CONFIG_PREEMPT_DYNAMIC=y
CONFIG_SCHED_CORE=y
CONFIG_IRQ_TIME_ACCOUNTING=y
CONFIG_BSD_PROCESS_ACCT=y
@@ -21,7 +22,6 @@ CONFIG_PSI=y
CONFIG_PSI_DEFAULT_DISABLED=y
CONFIG_IKCONFIG=m
CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=14
CONFIG_NUMA_BALANCING=y
CONFIG_MEMCG=y
CONFIG_BLK_CGROUP=y
@@ -44,18 +44,17 @@ CONFIG_BLK_DEV_INITRD=y
CONFIG_EXPERT=y
# CONFIG_SYSFS_SYSCALL is not set
# CONFIG_FHANDLE is not set
-# CONFIG_SLUB_DEBUG is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_PROFILING=y
+CONFIG_KEXEC=y
CONFIG_ARCH_SUNXI=y
CONFIG_ARCH_APPLE=y
+CONFIG_ARCH_BCM=y
CONFIG_ARCH_BCM2835=y
CONFIG_ARCH_BERLIN=y
CONFIG_ARCH_EXYNOS=y
-CONFIG_ARCH_LAYERSCAPE=y
CONFIG_ARCH_HISI=y
CONFIG_ARCH_MEDIATEK=y
+CONFIG_ARCH_MESON=y
CONFIG_ARCH_MVEBU=y
CONFIG_ARCH_QCOM=y
CONFIG_ARCH_ROCKCHIP=y
@@ -83,7 +82,6 @@ CONFIG_ARM64_ACPI_PARKING_PROTOCOL=y
CONFIG_HIBERNATION=y
# CONFIG_HIBERNATION_SNAPSHOT_DEV is not set
CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_ARM_CPUIDLE=y
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
@@ -93,6 +91,7 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
CONFIG_CPUFREQ_DT=m
CONFIG_ARM_ARMADA_37XX_CPUFREQ=m
+CONFIG_ARM_RASPBERRYPI_CPUFREQ=m
CONFIG_ARM_SCMI_CPUFREQ=m
CONFIG_ARM_TEGRA186_CPUFREQ=m
CONFIG_ARM_TEGRA194_CPUFREQ=m
@@ -111,26 +110,16 @@ CONFIG_ACPI_CONFIGFS=m
CONFIG_PMIC_OPREGION=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=y
-CONFIG_CRYPTO_SHA1_ARM64_CE=m
-CONFIG_CRYPTO_SHA2_ARM64_CE=m
-CONFIG_CRYPTO_SHA512_ARM64_CE=m
-CONFIG_CRYPTO_SHA3_ARM64=m
-CONFIG_CRYPTO_SM3_ARM64_CE=m
-CONFIG_CRYPTO_SM4_ARM64_CE=m
-CONFIG_CRYPTO_GHASH_ARM64_CE=m
-CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m
-CONFIG_CRYPTO_AES_ARM64_CE_CCM=m
-CONFIG_CRYPTO_AES_ARM64_CE_BLK=m
-CONFIG_CRYPTO_NHPOLY1305_NEON=m
-CONFIG_CRYPTO_AES_ARM64_BS=m
CONFIG_KPROBES=y
-CONFIG_JUMP_LABEL=y
CONFIG_ARCH_MMAP_RND_BITS=24
CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y
CONFIG_GCC_PLUGIN_LATENT_ENTROPY=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_UNLOAD_TAINT_TRACKING=y
CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SIG=y
+CONFIG_MODULE_SIG_SHA256=y
CONFIG_MODULE_COMPRESS_GZIP=y
CONFIG_BLK_DEV_THROTTLING=y
CONFIG_BLK_CGROUP_IOLATENCY=y
@@ -138,19 +127,20 @@ CONFIG_PARTITION_ADVANCED=y
CONFIG_MAC_PARTITION=y
CONFIG_LDM_PARTITION=y
CONFIG_IOSCHED_BFQ=y
-CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_BINFMT_MISC=m
+CONFIG_ZSWAP=y
+CONFIG_ZSMALLOC=y
+CONFIG_SLAB_FREELIST_RANDOM=y
+# CONFIG_COMPAT_BRK is not set
CONFIG_KSM=y
CONFIG_TRANSPARENT_HUGEPAGE=y
-CONFIG_FRONTSWAP=y
CONFIG_CMA_AREAS=7
-CONFIG_ZSWAP=y
-CONFIG_ZSMALLOC=y
+CONFIG_LRU_GEN=y
+CONFIG_LRU_GEN_ENABLED=y
CONFIG_NET=y
CONFIG_PACKET=m
CONFIG_PACKET_DIAG=m
-CONFIG_UNIX=y
CONFIG_UNIX_DIAG=m
CONFIG_TLS=m
CONFIG_XFRM_USER=m
@@ -160,7 +150,6 @@ CONFIG_XFRM_STATISTICS=y
CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y
CONFIG_XDP_SOCKETS=y
-CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
@@ -211,6 +200,7 @@ CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
CONFIG_IPV6_PIMSM_V2=y
CONFIG_IPV6_SEG6_LWTUNNEL=y
CONFIG_IPV6_SEG6_HMAC=y
+CONFIG_MPTCP=y
CONFIG_NETWORK_SECMARK=y
CONFIG_NETWORK_PHY_TIMESTAMPING=y
CONFIG_NETFILTER=y
@@ -241,7 +231,6 @@ CONFIG_NF_TABLES_NETDEV=y
CONFIG_NFT_NUMGEN=m
CONFIG_NFT_CT=m
CONFIG_NFT_FLOW_OFFLOAD=m
-CONFIG_NFT_COUNTER=m
CONFIG_NFT_CONNLIMIT=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
@@ -255,14 +244,18 @@ CONFIG_NFT_REJECT=m
CONFIG_NFT_COMPAT=m
CONFIG_NFT_HASH=m
CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_XFRM=m
CONFIG_NFT_SOCKET=m
CONFIG_NFT_OSF=m
CONFIG_NFT_TPROXY=m
+CONFIG_NFT_SYNPROXY=m
CONFIG_NFT_DUP_NETDEV=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_REJECT_NETDEV=m
CONFIG_NF_FLOW_TABLE_INET=m
CONFIG_NF_FLOW_TABLE=m
+CONFIG_NF_FLOW_TABLE_PROCFS=y
CONFIG_NETFILTER_XT_SET=m
CONFIG_NETFILTER_XT_TARGET_AUDIT=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
@@ -367,7 +360,6 @@ CONFIG_IP_VS_PE_SIP=m
CONFIG_NFT_DUP_IPV4=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NF_TABLES_ARP=y
-CONFIG_NF_FLOW_TABLE_IPV4=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_IPV4=m
CONFIG_IP_NF_IPTABLES=m
@@ -383,7 +375,6 @@ CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_RAW=m
@@ -392,7 +383,6 @@ CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
-CONFIG_NF_FLOW_TABLE_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_EUI64=m
@@ -413,7 +403,6 @@ CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_TARGET_MASQUERADE=m
CONFIG_IP6_NF_TARGET_NPT=m
-CONFIG_DECNET_NF_GRABULATOR=m
CONFIG_NF_TABLES_BRIDGE=m
CONFIG_NFT_BRIDGE_REJECT=m
CONFIG_NF_CONNTRACK_BRIDGE=m
@@ -456,8 +445,6 @@ CONFIG_BRIDGE_VLAN_FILTERING=y
CONFIG_NET_DSA=m
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
-CONFIG_DECNET=m
-CONFIG_DECNET_ROUTER=y
CONFIG_LLC2=m
CONFIG_ATALK=m
CONFIG_DEV_APPLETALK=m
@@ -478,10 +465,8 @@ CONFIG_IEEE802154=m
CONFIG_IEEE802154_6LOWPAN=m
CONFIG_MAC802154=m
CONFIG_NET_SCHED=y
-CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_MULTIQ=m
CONFIG_NET_SCH_RED=m
@@ -492,7 +477,6 @@ CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_CBS=m
CONFIG_NET_SCH_ETF=m
CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_MQPRIO=m
@@ -505,17 +489,15 @@ CONFIG_NET_SCH_CAKE=m
CONFIG_NET_SCH_FQ=m
CONFIG_NET_SCH_HHF=m
CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_FQ_PIE=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_SCH_PLUG=m
CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_PERF=y
CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_FLOW=m
CONFIG_NET_CLS_BPF=m
CONFIG_NET_CLS_FLOWER=m
@@ -552,6 +534,7 @@ CONFIG_DNS_RESOLVER=y
CONFIG_OPENVSWITCH=m
CONFIG_VSOCKETS=m
CONFIG_VIRTIO_VSOCKETS=m
+CONFIG_HYPERV_VSOCKETS=m
CONFIG_NETLINK_DIAG=y
CONFIG_MPLS_ROUTING=m
CONFIG_MPLS_IPTUNNEL=m
@@ -566,7 +549,6 @@ CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_CMTP=m
CONFIG_BT_HIDP=m
-CONFIG_BT_HS=y
CONFIG_BT_LEDS=y
# CONFIG_BT_DEBUGFS is not set
CONFIG_BT_HCIBTUSB=m
@@ -622,52 +604,55 @@ CONFIG_NFC_ST_NCI_I2C=m
CONFIG_NFC_ST_NCI_SPI=m
CONFIG_NFC_S3FWRN5_I2C=m
CONFIG_PCI=y
-CONFIG_PCIEPORTBUS=y
-CONFIG_HOTPLUG_PCI_PCIE=y
CONFIG_PCIE_PTM=y
CONFIG_PCI_STUB=m
CONFIG_PCI_PF_STUB=m
CONFIG_PCI_IOV=y
CONFIG_PCI_PRI=y
CONFIG_PCI_PASID=y
-CONFIG_HOTPLUG_PCI=y
+CONFIG_PCI_HYPERV=m
CONFIG_HOTPLUG_PCI_ACPI=y
CONFIG_HOTPLUG_PCI_ACPI_IBM=m
CONFIG_HOTPLUG_PCI_CPCI=y
CONFIG_PCI_AARDVARK=y
-CONFIG_PCI_HOST_GENERIC=y
-CONFIG_PCIE_XILINX=y
-CONFIG_PCI_XGENE=y
+CONFIG_PCIE_APPLE=m
+CONFIG_PCIE_BRCMSTB=m
CONFIG_PCI_HOST_THUNDER_PEM=y
CONFIG_PCI_HOST_THUNDER_ECAM=y
+CONFIG_PCI_HOST_GENERIC=y
+CONFIG_PCIE_ROCKCHIP_HOST=y
+CONFIG_PCI_XGENE=y
+CONFIG_PCIE_XILINX=y
+CONFIG_PCIE_HISI_STB=y
+CONFIG_PCIE_ARMADA_8K=y
CONFIG_PCIE_DW_PLAT_HOST=y
-CONFIG_PCI_LAYERSCAPE=y
CONFIG_PCIE_QCOM=y
-CONFIG_PCIE_ARMADA_8K=y
-CONFIG_PCIE_HISI_STB=y
CONFIG_UEVENT_HELPER=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_DEVTMPFS_SAFE=y
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
+CONFIG_FW_LOADER_COMPRESS=y
+# CONFIG_FW_LOADER_COMPRESS_XZ is not set
+CONFIG_FW_LOADER_COMPRESS_ZSTD=y
# CONFIG_ALLOW_DEV_COREDUMP is not set
CONFIG_DEBUG_DEVRES=y
CONFIG_HISILICON_LPC=y
# CONFIG_QCOM_EBI2 is not set
CONFIG_SUNXI_RSB=m
CONFIG_TEGRA_ACONNECT=m
-CONFIG_FSL_MC_UAPI_SUPPORT=y
CONFIG_CONNECTOR=y
CONFIG_ARM_SCMI_PROTOCOL=y
CONFIG_ARM_SCMI_POWER_DOMAIN=m
-CONFIG_ARM_SDE_INTERFACE=y
CONFIG_FIRMWARE_MEMMAP=y
-CONFIG_RASPBERRYPI_FIRMWARE=m
+CONFIG_RASPBERRYPI_FIRMWARE=y
CONFIG_FW_CFG_SYSFS=m
CONFIG_SYSFB_SIMPLEFB=y
+CONFIG_TURRIS_MOX_RWTM=m
CONFIG_EFI_VARS_PSTORE=m
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
-CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
+CONFIG_EFI_ZBOOT=y
CONFIG_MTD=m
CONFIG_MTD_TESTS=m
CONFIG_MTD_AR7_PARTS=m
@@ -710,27 +695,25 @@ CONFIG_MTD_LPDDR=m
CONFIG_MTD_UBI=m
CONFIG_OF_OVERLAY=y
CONFIG_PARPORT=m
-CONFIG_PARPORT_AX88796=m
# CONFIG_PNP_DEBUG_MESSAGES is not set
CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
CONFIG_ZRAM=m
CONFIG_ZRAM_DEF_COMP_LZ4=y
CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_SX8=m
CONFIG_BLK_DEV_RAM=y
CONFIG_CDROM_PKTCDVD=m
CONFIG_ATA_OVER_ETH=m
CONFIG_XEN_BLKDEV_BACKEND=m
CONFIG_VIRTIO_BLK=m
CONFIG_BLK_DEV_RBD=m
-CONFIG_BLK_DEV_RSXX=m
CONFIG_BLK_DEV_NVME=m
CONFIG_NVME_MULTIPATH=y
CONFIG_NVME_HWMON=y
CONFIG_NVME_RDMA=m
+CONFIG_NVME_TCP=m
+CONFIG_NVME_APPLE=m
CONFIG_NVME_TARGET=m
CONFIG_NVME_TARGET_LOOP=m
CONFIG_NVME_TARGET_RDMA=m
@@ -804,8 +787,6 @@ CONFIG_MEGARAID_LEGACY=m
CONFIG_MEGARAID_SAS=m
CONFIG_SCSI_MPT2SAS=m
CONFIG_SCSI_SMARTPQI=m
-CONFIG_SCSI_UFSHCD=m
-CONFIG_SCSI_UFSHCD_PCI=m
CONFIG_SCSI_HPTIOP=m
CONFIG_XEN_SCSI_FRONTEND=m
CONFIG_LIBFC=m
@@ -839,7 +820,6 @@ CONFIG_AHCI_MVEBU=m
CONFIG_AHCI_SUNXI=m
CONFIG_AHCI_TEGRA=m
CONFIG_AHCI_XGENE=m
-CONFIG_AHCI_QORIQ=m
CONFIG_SATA_AHCI_SEATTLE=m
CONFIG_SATA_INIC162X=m
CONFIG_SATA_ACARD_AHCI=m
@@ -894,7 +874,6 @@ CONFIG_PATA_CMD640_PCI=m
CONFIG_PATA_MPIIX=m
CONFIG_PATA_NS87410=m
CONFIG_PATA_OPTI=m
-CONFIG_PATA_PLATFORM=m
CONFIG_PATA_RZ1000=m
CONFIG_PATA_ACPI=m
CONFIG_ATA_GENERIC=m
@@ -964,6 +943,7 @@ CONFIG_MACVTAP=m
CONFIG_IPVLAN=m
CONFIG_VXLAN=m
CONFIG_GENEVE=m
+CONFIG_BAREUDP=m
CONFIG_MACSEC=m
CONFIG_NETCONSOLE=m
CONFIG_NETCONSOLE_DYNAMIC=y
@@ -1044,8 +1024,7 @@ CONFIG_ULI526X=m
CONFIG_DL2K=m
CONFIG_SUNDANCE=m
CONFIG_BE2NET=m
-CONFIG_GIANFAR=m
-CONFIG_FSL_DPAA2_ETH=m
+CONFIG_GVE=m
CONFIG_HIX5HD2_GMAC=m
CONFIG_HISI_FEMAC=m
CONFIG_HIP04_ETH=m
@@ -1057,14 +1036,13 @@ CONFIG_E1000=m
CONFIG_E1000E=m
CONFIG_IGB=m
CONFIG_IGBVF=m
-CONFIG_IXGB=m
CONFIG_IXGBE=m
CONFIG_IXGBEVF=m
CONFIG_I40E=m
CONFIG_ICE=m
CONFIG_JME=m
# CONFIG_NET_VENDOR_LITEX is not set
-CONFIG_MVMDIO=m
+CONFIG_MVNETA=m
CONFIG_PXA168_ETH=m
CONFIG_SKGE=m
CONFIG_SKGE_GENESIS=y
@@ -1086,7 +1064,6 @@ CONFIG_FEALNX=m
CONFIG_NATSEMI=m
CONFIG_NS83820=m
CONFIG_S2IO=m
-CONFIG_VXGE=m
CONFIG_NFP=m
# CONFIG_NFP_APP_FLOWER is not set
# CONFIG_NFP_APP_ABM_NIC is not set
@@ -1117,7 +1094,6 @@ CONFIG_SMSC911X=m
CONFIG_SMSC9420=m
CONFIG_SNI_NETSEC=m
CONFIG_STMMAC_ETH=m
-# CONFIG_STMMAC_PLATFORM is not set
CONFIG_HAPPYMEAL=m
CONFIG_SUNGEM=m
CONFIG_CASSINI=m
@@ -1138,6 +1114,7 @@ CONFIG_NET_SB1000=m
CONFIG_PHYLIB=y
CONFIG_SFP=m
CONFIG_AMD_PHY=m
+CONFIG_MESON_GXL_PHY=m
CONFIG_AQUANTIA_PHY=m
CONFIG_BCM87XX_PHY=m
CONFIG_CICADA_PHY=m
@@ -1151,6 +1128,7 @@ CONFIG_NATIONAL_PHY=m
CONFIG_AT803X_PHY=m
CONFIG_QSEMI_PHY=m
CONFIG_RENESAS_PHY=m
+CONFIG_ROCKCHIP_PHY=m
CONFIG_STE10XP=m
CONFIG_TERANETICS_PHY=m
CONFIG_DP83822_PHY=m
@@ -1225,7 +1203,6 @@ CONFIG_AR5523=m
CONFIG_WIL6210=m
CONFIG_ATH10K=m
CONFIG_ATH10K_PCI=m
-CONFIG_ATH10K_SNOC=m
CONFIG_WCN36XX=m
CONFIG_ATH11K=m
CONFIG_ATH11K_PCI=m
@@ -1321,8 +1298,8 @@ CONFIG_WLCORE_SPI=m
CONFIG_WLCORE_SDIO=m
CONFIG_USB_ZD1201=m
CONFIG_ZD1211RW=m
-CONFIG_MAC80211_HWSIM=m
CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_MAC80211_HWSIM=m
CONFIG_WAN=y
CONFIG_HDLC=m
CONFIG_HDLC_RAW=m
@@ -1345,6 +1322,7 @@ CONFIG_XEN_NETDEV_BACKEND=m
CONFIG_VMXNET3=m
CONFIG_FUJITSU_ES=m
CONFIG_USB4_NET=m
+CONFIG_HYPERV_NET=m
CONFIG_ISDN=y
CONFIG_MISDN=m
CONFIG_MISDN_DSP=m
@@ -1364,6 +1342,7 @@ CONFIG_KEYBOARD_ADC=m
CONFIG_KEYBOARD_GPIO_POLLED=m
CONFIG_KEYBOARD_TEGRA=m
CONFIG_KEYBOARD_OMAP4=m
+CONFIG_KEYBOARD_CROS_EC=m
CONFIG_MOUSE_PS2=m
# CONFIG_MOUSE_PS2_BYD is not set
CONFIG_MOUSE_PS2_ELANTECH=y
@@ -1402,11 +1381,9 @@ CONFIG_TOUCHSCREEN_WACOM_W8001=m
CONFIG_TOUCHSCREEN_MTOUCH=m
CONFIG_TOUCHSCREEN_IMX6UL_TSC=m
CONFIG_TOUCHSCREEN_INEXIO=m
-CONFIG_TOUCHSCREEN_MK712=m
CONFIG_TOUCHSCREEN_PENMOUNT=m
CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
CONFIG_TOUCHSCREEN_TOUCHWIN=m
-CONFIG_TOUCHSCREEN_UCB1400=m
CONFIG_TOUCHSCREEN_PIXCIR=m
CONFIG_TOUCHSCREEN_WDT87XX_I2C=m
CONFIG_TOUCHSCREEN_WM97XX=m
@@ -1439,7 +1416,6 @@ CONFIG_INPUT_AXP20X_PEK=m
CONFIG_INPUT_UINPUT=m
CONFIG_INPUT_PCF50633_PMU=m
CONFIG_INPUT_PCF8574=m
-CONFIG_INPUT_RK805_PWRKEY=m
CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
CONFIG_INPUT_ADXL34X=m
CONFIG_INPUT_CMA3000=m
@@ -1467,13 +1443,15 @@ CONFIG_SERIAL_8250_MANY_PORTS=y
CONFIG_SERIAL_8250_SHARE_IRQ=y
CONFIG_SERIAL_8250_RSA=y
CONFIG_SERIAL_8250_BCM2835AUX=m
+CONFIG_SERIAL_8250_DW=y
CONFIG_SERIAL_8250_TEGRA=m
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_SERIAL_AMBA_PL010=y
CONFIG_SERIAL_AMBA_PL010_CONSOLE=y
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
-CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST=y
+CONFIG_SERIAL_MESON=y
+CONFIG_SERIAL_MESON_CONSOLE=y
CONFIG_SERIAL_SAMSUNG=y
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
CONFIG_SERIAL_MAX3100=m
@@ -1487,7 +1465,6 @@ CONFIG_SERIAL_MVEBU_UART=y
CONFIG_SERIAL_NONSTANDARD=y
CONFIG_MOXA_INTELLIO=m
CONFIG_MOXA_SMARTIO=m
-CONFIG_SYNCLINK_GT=m
CONFIG_N_HDLC=m
CONFIG_NOZOMI=m
CONFIG_PRINTER=m
@@ -1503,6 +1480,8 @@ CONFIG_HW_RANDOM_VIRTIO=m
# CONFIG_HW_RANDOM_EXYNOS is not set
CONFIG_APPLICOM=m
CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS_SPI=m
+CONFIG_TCG_TIS_SPI_CR50=y
CONFIG_TCG_ATMEL=m
CONFIG_TCG_INFINEON=m
CONFIG_TCG_XEN=m
@@ -1529,10 +1508,12 @@ CONFIG_I2C_BCM2835=m
CONFIG_I2C_DESIGNWARE_PLATFORM=m
CONFIG_I2C_DESIGNWARE_PCI=m
CONFIG_I2C_GPIO=m
+CONFIG_I2C_MESON=m
CONFIG_I2C_MV64XXX=m
CONFIG_I2C_OCORES=m
CONFIG_I2C_PCA_PLATFORM=m
CONFIG_I2C_QCOM_GENI=m
+CONFIG_I2C_RK3X=m
CONFIG_I2C_SIMTEC=m
CONFIG_I2C_SYNQUACER=m
CONFIG_I2C_TEGRA=m
@@ -1544,6 +1525,7 @@ CONFIG_I2C_DIOLAN_U2C=m
CONFIG_I2C_PARPORT=m
CONFIG_I2C_TAOS_EVM=m
CONFIG_I2C_TINY_USB=m
+CONFIG_I2C_CROS_EC_TUNNEL=m
CONFIG_I2C_XGENE_SLIMPRO=m
CONFIG_I2C_VIRTIO=m
CONFIG_I2C_STUB=m
@@ -1557,7 +1539,10 @@ CONFIG_SPI_DESIGNWARE=m
CONFIG_SPI_DW_PCI=m
CONFIG_SPI_GPIO=m
CONFIG_SPI_LM70_LLP=m
+CONFIG_SPI_MESON_SPICC=m
+CONFIG_SPI_MESON_SPIFC=m
CONFIG_SPI_ORION=m
+CONFIG_SPI_ROCKCHIP=m
CONFIG_SPI_SUN6I=m
CONFIG_SPI_THUNDERX=m
CONFIG_SPI_XCOMM=m
@@ -1567,21 +1552,21 @@ CONFIG_SPI_TLE62X0=m
CONFIG_PPS_CLIENT_LDISC=m
CONFIG_DP83640_PHY=m
CONFIG_PTP_1588_CLOCK_KVM=m
+CONFIG_PINCTRL_APPLE_GPIO=m
CONFIG_PINCTRL_AXP209=m
-CONFIG_PINCTRL_RK805=m
+# CONFIG_PINCTRL_MT7622 is not set
CONFIG_PINCTRL_MSM=y
CONFIG_PINCTRL_MSM8996=m
CONFIG_PINCTRL_MSM8998=m
CONFIG_PINCTRL_SDM845=y
-# CONFIG_PINCTRL_MT7622 is not set
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_MB86S7X=m
+CONFIG_GPIO_PL061=m
CONFIG_GPIO_TEGRA186=m
CONFIG_GPIO_THUNDERX=y
CONFIG_GPIO_XGENE=y
CONFIG_GPIO_XGENE_SB=m
CONFIG_GPIO_XLP=m
-CONFIG_GPIO_ADP5588=m
CONFIG_GPIO_MAX7300=m
CONFIG_GPIO_MAX732X=m
CONFIG_GPIO_PCA953X=m
@@ -1598,11 +1583,12 @@ CONFIG_POWER_RESET_XGENE=y
CONFIG_POWER_RESET_SYSCON=y
CONFIG_POWER_RESET_SYSCON_POWEROFF=y
CONFIG_GENERIC_ADC_BATTERY=m
+CONFIG_BATTERY_AXP20X=m
+CONFIG_CHARGER_CROS_USBPD=m
CONFIG_HWMON=m
CONFIG_SENSORS_AD7314=m
CONFIG_SENSORS_AD7414=m
CONFIG_SENSORS_AD7418=m
-CONFIG_SENSORS_ADM1021=m
CONFIG_SENSORS_ADM1025=m
CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
@@ -1650,7 +1636,6 @@ CONFIG_SENSORS_MAX1668=m
CONFIG_SENSORS_MAX197=m
CONFIG_SENSORS_MAX31722=m
CONFIG_SENSORS_MAX6639=m
-CONFIG_SENSORS_MAX6642=m
CONFIG_SENSORS_MAX6650=m
CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_MAX31790=m
@@ -1709,7 +1694,6 @@ CONFIG_SENSORS_SMSC47M192=m
CONFIG_SENSORS_SMSC47B397=m
CONFIG_SENSORS_SCH5627=m
CONFIG_SENSORS_SCH5636=m
-CONFIG_SENSORS_SMM665=m
CONFIG_SENSORS_ADC128D818=m
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
@@ -1742,20 +1726,22 @@ CONFIG_THERMAL_WRITABLE_TRIPS=y
CONFIG_THERMAL_GOV_FAIR_SHARE=y
CONFIG_THERMAL_GOV_BANG_BANG=y
CONFIG_THERMAL_GOV_USER_SPACE=y
+CONFIG_ROCKCHIP_THERMAL=m
CONFIG_ARMADA_THERMAL=m
-# CONFIG_MTK_THERMAL is not set
+CONFIG_BCM2711_THERMAL=m
CONFIG_BCM2835_THERMAL=m
CONFIG_TEGRA_BPMP_THERMAL=m
CONFIG_GENERIC_ADC_THERMAL=m
-CONFIG_QCOM_TSENS=m
CONFIG_WATCHDOG=y
-CONFIG_WATCHDOG_CORE=y
CONFIG_WATCHDOG_SYSFS=y
CONFIG_SOFT_WATCHDOG=m
CONFIG_WDAT_WDT=m
CONFIG_ARM_SBSA_WATCHDOG=m
CONFIG_SUNXI_WATCHDOG=m
CONFIG_MAX63XX_WATCHDOG=m
+CONFIG_MESON_GXBB_WATCHDOG=m
+CONFIG_MESON_WATCHDOG=m
+CONFIG_APPLE_WATCHDOG=m
CONFIG_ALIM7101_WDT=m
CONFIG_I6300ESB_WDT=m
CONFIG_BCM2835_WDT=m
@@ -1768,68 +1754,63 @@ CONFIG_BCMA_DRIVER_GPIO=y
CONFIG_MFD_AC100=m
CONFIG_MFD_AXP20X_RSB=m
CONFIG_MFD_HI655X_PMIC=m
-CONFIG_HTC_PASIC3=m
CONFIG_LPC_ICH=m
CONFIG_MFD_JANZ_CMODIO=m
CONFIG_MFD_PCF50633=m
CONFIG_PCF50633_ADC=m
CONFIG_PCF50633_GPIO=m
-CONFIG_UCB1400_CORE=m
-CONFIG_MFD_RK808=m
CONFIG_MFD_SM501=m
CONFIG_TPS65010=m
CONFIG_TPS6507X=m
CONFIG_MFD_WL1273_CORE=m
CONFIG_MFD_VX855=m
+CONFIG_REGULATOR_FIXED_VOLTAGE=y
CONFIG_REGULATOR_AXP20X=m
+CONFIG_REGULATOR_GPIO=m
CONFIG_REGULATOR_HI655X=m
CONFIG_REGULATOR_QCOM_RPMH=m
CONFIG_REGULATOR_QCOM_SMD_RPM=m
-CONFIG_REGULATOR_RK808=m
CONFIG_REGULATOR_SY8106A=m
CONFIG_RC_CORE=m
CONFIG_RC_DECODERS=y
+CONFIG_IR_IMON_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
CONFIG_IR_NEC_DECODER=m
CONFIG_IR_RC5_DECODER=m
CONFIG_IR_RC6_DECODER=m
-CONFIG_IR_JVC_DECODER=m
-CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SHARP_DECODER=m
-CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_IR_SONY_DECODER=m
CONFIG_IR_XMP_DECODER=m
-CONFIG_IR_IMON_DECODER=m
CONFIG_RC_DEVICES=y
-CONFIG_RC_ATI_REMOTE=m
CONFIG_IR_ENE=m
+CONFIG_IR_FINTEK=m
+CONFIG_IR_GPIO_CIR=m
CONFIG_IR_HIX5HD2=m
+CONFIG_IR_IGORPLUGUSB=m
+CONFIG_IR_IGUANA=m
CONFIG_IR_IMON=m
CONFIG_IR_IMON_RAW=m
-CONFIG_IR_MCEUSB=m
CONFIG_IR_ITE_CIR=m
-CONFIG_IR_FINTEK=m
+CONFIG_IR_MCEUSB=m
+CONFIG_IR_MESON=m
+CONFIG_IR_MESON_TX=m
CONFIG_IR_NUVOTON=m
CONFIG_IR_REDRAT3=m
CONFIG_IR_STREAMZAP=m
-CONFIG_IR_IGORPLUGUSB=m
-CONFIG_IR_IGUANA=m
+CONFIG_IR_SUNXI=m
CONFIG_IR_TTUSBIR=m
+CONFIG_RC_ATI_REMOTE=m
CONFIG_RC_LOOPBACK=m
-CONFIG_IR_GPIO_CIR=m
-CONFIG_IR_SUNXI=m
# CONFIG_MEDIA_CEC_SUPPORT is not set
CONFIG_MEDIA_SUPPORT=m
CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
-CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_V4L2_FLASH_LED_CLASS=m
CONFIG_DVB_MAX_ADAPTERS=8
# CONFIG_DVB_DYNAMIC_MINORS is not set
CONFIG_MEDIA_USB_SUPPORT=y
-CONFIG_USB_VIDEO_CLASS=m
CONFIG_USB_GSPCA=m
-CONFIG_USB_M5602=m
-CONFIG_USB_STV06XX=m
-CONFIG_USB_GL860=m
CONFIG_USB_GSPCA_BENQ=m
CONFIG_USB_GSPCA_CONEX=m
CONFIG_USB_GSPCA_CPIA1=m
@@ -1873,40 +1854,16 @@ CONFIG_USB_GSPCA_TV8532=m
CONFIG_USB_GSPCA_VC032X=m
CONFIG_USB_GSPCA_VICAM=m
CONFIG_USB_GSPCA_ZC3XX=m
-CONFIG_USB_ZR364XX=m
-CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_GL860=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
CONFIG_USB_S2255=m
CONFIG_VIDEO_USBTV=m
+CONFIG_USB_VIDEO_CLASS=m
CONFIG_VIDEO_CX231XX=m
CONFIG_VIDEO_CX231XX_ALSA=m
CONFIG_VIDEO_CX231XX_DVB=m
-CONFIG_VIDEO_TM6000=m
-CONFIG_VIDEO_TM6000_ALSA=m
-CONFIG_VIDEO_TM6000_DVB=m
-CONFIG_DVB_USB=m
-CONFIG_DVB_USB_A800=m
-CONFIG_DVB_USB_DIBUSB_MB=m
-CONFIG_DVB_USB_DIBUSB_MC=m
-CONFIG_DVB_USB_DIB0700=m
-CONFIG_DVB_USB_UMT_010=m
-CONFIG_DVB_USB_CXUSB=m
-CONFIG_DVB_USB_M920X=m
-CONFIG_DVB_USB_DIGITV=m
-CONFIG_DVB_USB_VP7045=m
-CONFIG_DVB_USB_VP702X=m
-CONFIG_DVB_USB_GP8PSK=m
-CONFIG_DVB_USB_NOVA_T_USB2=m
-CONFIG_DVB_USB_TTUSB2=m
-CONFIG_DVB_USB_DTT200U=m
-CONFIG_DVB_USB_OPERA1=m
-CONFIG_DVB_USB_AF9005=m
-CONFIG_DVB_USB_AF9005_REMOTE=m
-CONFIG_DVB_USB_PCTV452E=m
-CONFIG_DVB_USB_DW2102=m
-CONFIG_DVB_USB_CINERGY_T2=m
-CONFIG_DVB_USB_DTV5100=m
-CONFIG_DVB_USB_AZ6027=m
-CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
CONFIG_DVB_USB_V2=m
CONFIG_DVB_USB_AF9015=m
CONFIG_DVB_USB_AF9035=m
@@ -1914,15 +1871,38 @@ CONFIG_DVB_USB_ANYSEE=m
CONFIG_DVB_USB_AU6610=m
CONFIG_DVB_USB_AZ6007=m
CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_DVBSKY=m
CONFIG_DVB_USB_EC168=m
CONFIG_DVB_USB_GL861=m
CONFIG_DVB_USB_LME2510=m
CONFIG_DVB_USB_MXL111SF=m
CONFIG_DVB_USB_RTL28XXU=m
-CONFIG_DVB_USB_DVBSKY=m
+CONFIG_DVB_USB=m
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_PCTV452E=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_VP7045=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
-CONFIG_DVB_B2C2_FLEXCOP_USB=m
CONFIG_VIDEO_EM28XX=m
CONFIG_VIDEO_EM28XX_V4L2=m
CONFIG_VIDEO_EM28XX_ALSA=m
@@ -1944,27 +1924,24 @@ CONFIG_VIDEO_SAA7134=m
CONFIG_VIDEO_SAA7134_ALSA=m
CONFIG_VIDEO_SAA7134_DVB=m
CONFIG_VIDEO_SAA7164=m
-CONFIG_DVB_BUDGET_CORE=m
-CONFIG_DVB_BUDGET=m
-CONFIG_DVB_BUDGET_CI=m
-CONFIG_DVB_BUDGET_AV=m
CONFIG_DVB_B2C2_FLEXCOP_PCI=m
-CONFIG_DVB_PLUTO2=m
+CONFIG_DVB_DDBRIDGE=m
CONFIG_DVB_DM1105=m
-CONFIG_DVB_PT1=m
CONFIG_MANTIS_CORE=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_HOPPER=m
+CONFIG_DVB_NETUP_UNIDVB=m
CONFIG_DVB_NGENE=m
-CONFIG_DVB_DDBRIDGE=m
+CONFIG_DVB_PLUTO2=m
+CONFIG_DVB_PT1=m
CONFIG_DVB_SMIPCIE=m
-CONFIG_DVB_NETUP_UNIDVB=m
# CONFIG_RADIO_ADAPTERS is not set
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_ROCKCHIP_RGA=m
CONFIG_DVB_FIREDTV=m
CONFIG_CXD2880_SPI_DRV=m
CONFIG_DVB_DUMMY_FE=m
+CONFIG_AUXDISPLAY=y
CONFIG_DRM=m
CONFIG_DRM_DP_AUX_CHARDEV=y
CONFIG_DRM_DP_CEC=y
@@ -2001,10 +1978,6 @@ CONFIG_DRM_UDL=m
CONFIG_DRM_AST=m
CONFIG_DRM_MGAG200=m
CONFIG_DRM_SUN4I=m
-CONFIG_DRM_SUN4I_HDMI_CEC=y
-CONFIG_DRM_SUN6I_DSI=m
-CONFIG_DRM_SUN8I_DW_HDMI=m
-CONFIG_DRM_SUN8I_MIXER=m
CONFIG_DRM_QXL=m
CONFIG_DRM_VIRTIO_GPU=m
CONFIG_DRM_MSM=m
@@ -2020,15 +1993,14 @@ CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03=m
CONFIG_DRM_PANEL_SEIKO_43WVF1G=m
CONFIG_DRM_PANEL_SHARP_LS043T1LE01=m
CONFIG_DRM_SII9234=m
+CONFIG_DRM_ANALOGIX_ANX6345=m
CONFIG_DRM_ANALOGIX_ANX78XX=m
CONFIG_DRM_I2C_ADV7511=m
CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
-CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
CONFIG_DRM_DW_HDMI_CEC=m
-CONFIG_DRM_VC4=m
-CONFIG_DRM_VC4_HDMI_CEC=y
CONFIG_DRM_ETNAVIV=m
CONFIG_DRM_HISI_KIRIN=m
+CONFIG_DRM_MESON=m
CONFIG_DRM_BOCHS=m
CONFIG_DRM_CIRRUS_QEMU=m
CONFIG_DRM_GM12U320=m
@@ -2038,9 +2010,11 @@ CONFIG_DRM_LIMA=m
CONFIG_DRM_PANFROST=m
CONFIG_DRM_TIDSS=m
CONFIG_DRM_GUD=m
+CONFIG_DRM_HYPERV=m
CONFIG_FB=y
-CONFIG_FB_TILEBLITTING=y
+CONFIG_FB_EFI=y
CONFIG_XEN_FBDEV_FRONTEND=m
+CONFIG_FB_TILEBLITTING=y
CONFIG_LCD_CLASS_DEVICE=m
CONFIG_LCD_L4F00242T03=m
CONFIG_LCD_LMS283GF05=m
@@ -2055,7 +2029,7 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_PWM=m
CONFIG_BACKLIGHT_ADP8860=m
CONFIG_BACKLIGHT_PCF50633=m
-CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
CONFIG_SOUND=m
CONFIG_SND=m
@@ -2165,16 +2139,19 @@ CONFIG_SND_SOC_AMD_ACP=m
CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH=m
CONFIG_SND_SOC_AMD_CZ_RT5645_MACH=m
CONFIG_SND_BCM2835_SOC_I2S=m
+CONFIG_SND_DESIGNWARE_I2S=m
+CONFIG_SND_MESON_AXG_SOUND_CARD=m
+CONFIG_SND_MESON_GX_SOUND_CARD=m
CONFIG_SND_SOC_AK4458=m
CONFIG_SND_SOC_AK5558=m
CONFIG_SND_SOC_BD28623=m
+CONFIG_SND_SOC_CROS_EC_CODEC=m
+# CONFIG_SND_SOC_DMIC is not set
CONFIG_SND_SOC_MAX9867=m
CONFIG_SND_SOC_PCM1789_I2C=m
CONFIG_SND_SOC_PCM186X_I2C=m
CONFIG_SND_SOC_PCM186X_SPI=m
-CONFIG_SND_SOC_RK817=m
CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
-CONFIG_SND_SOC_SPDIF=m
CONFIG_SND_SOC_TAS6424=m
CONFIG_SND_SOC_TDA7419=m
CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
@@ -2220,6 +2197,8 @@ CONFIG_HID_PICOLCD_LCD=y
CONFIG_HID_PICOLCD_LEDS=y
CONFIG_HID_PICOLCD_CIR=y
CONFIG_HID_PLANTRONICS=m
+CONFIG_HID_PLAYSTATION=m
+CONFIG_PLAYSTATION_FF=y
CONFIG_HID_PRIMAX=m
CONFIG_HID_ROCCAT=m
CONFIG_HID_SEMITEK=m
@@ -2228,6 +2207,7 @@ CONFIG_SONY_FF=y
CONFIG_HID_SPEEDLINK=m
CONFIG_HID_STEAM=m
CONFIG_HID_RMI=m
+CONFIG_HID_HYPERV_MOUSE=m
CONFIG_HID_THINGM=m
CONFIG_HID_WACOM=m
CONFIG_HID_WIIMOTE=m
@@ -2253,10 +2233,10 @@ CONFIG_USB_ISP116X_HCD=m
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_OHCI_HCD_SSB=y
CONFIG_USB_UHCI_HCD=m
-CONFIG_USB_U132_HCD=m
CONFIG_USB_SL811_HCD=m
CONFIG_USB_SL811_HCD_ISO=y
CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_XEN_HCD=m
CONFIG_USB_PRINTER=m
CONFIG_USB_TMC=m
CONFIG_USB_STORAGE=m
@@ -2284,7 +2264,6 @@ CONFIG_USB_DWC2=m
CONFIG_USB_DWC2_PCI=m
CONFIG_USB_CHIPIDEA=m
CONFIG_USB_ISP1760=m
-CONFIG_USB_USS720=m
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_SIMPLE=m
@@ -2333,6 +2312,7 @@ CONFIG_USB_SERIAL_XSENS_MT=m
CONFIG_USB_SERIAL_QT2=m
CONFIG_USB_SERIAL_XR=m
CONFIG_USB_SERIAL_DEBUG=m
+CONFIG_USB_USS720=m
CONFIG_USB_EMI62=m
CONFIG_USB_EMI26=m
CONFIG_USB_ADUTUX=m
@@ -2341,7 +2321,6 @@ CONFIG_USB_LCD=m
CONFIG_USB_CYPRESS_CY7C63=m
CONFIG_USB_CYTHERM=m
CONFIG_USB_IDMOUSE=m
-CONFIG_USB_FTDI_ELAN=m
CONFIG_APPLE_MFI_FASTCHARGE=m
CONFIG_USB_SISUSBVGA=m
CONFIG_USB_LD=m
@@ -2373,11 +2352,12 @@ CONFIG_MMC_SDHCI_PCI=m
CONFIG_MMC_SDHCI_PLTFM=m
CONFIG_MMC_SDHCI_OF_ARASAN=m
CONFIG_MMC_SDHCI_OF_AT91=m
-CONFIG_MMC_SDHCI_OF_ESDHC=m
CONFIG_MMC_SDHCI_TEGRA=m
CONFIG_MMC_SDHCI_PXAV3=m
CONFIG_MMC_SDHCI_F_SDH30=m
CONFIG_MMC_SDHCI_IPROC=m
+CONFIG_MMC_MESON_GX=m
+CONFIG_MMC_MESON_MX_SDIO=m
CONFIG_MMC_SDHCI_MSM=m
CONFIG_MMC_TIFM_SD=m
CONFIG_MMC_CB710=m
@@ -2394,9 +2374,11 @@ CONFIG_MMC_REALTEK_PCI=m
CONFIG_MMC_REALTEK_USB=m
CONFIG_MMC_SUNXI=m
CONFIG_MMC_TOSHIBA_PCI=m
+CONFIG_MMC_BCM2835=m
CONFIG_MMC_MTK=m
CONFIG_MMC_SDHCI_XENON=m
-CONFIG_MMC_SDHCI_OMAP=m
+CONFIG_SCSI_UFSHCD=m
+CONFIG_SCSI_UFSHCD_PCI=m
CONFIG_MEMSTICK=m
CONFIG_MSPRO_BLOCK=m
CONFIG_MEMSTICK_TIFM_MS=m
@@ -2406,6 +2388,7 @@ CONFIG_MEMSTICK_REALTEK_PCI=m
CONFIG_MEMSTICK_REALTEK_USB=m
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLASS_FLASH=m
+CONFIG_LEDS_CLASS_MULTICOLOR=m
CONFIG_LEDS_CR0014114=m
CONFIG_LEDS_LM3530=m
CONFIG_LEDS_LM3692X=m
@@ -2425,7 +2408,6 @@ CONFIG_LEDS_TRIGGER_MTD=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_BACKLIGHT=m
CONFIG_LEDS_TRIGGER_ACTIVITY=m
-CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
CONFIG_LEDS_TRIGGER_TRANSIENT=m
CONFIG_LEDS_TRIGGER_CAMERA=m
@@ -2435,12 +2417,12 @@ CONFIG_ACCESSIBILITY=y
CONFIG_INFINIBAND=m
CONFIG_INFINIBAND_USER_MAD=m
CONFIG_INFINIBAND_USER_ACCESS=m
-CONFIG_INFINIBAND_MTHCA=m
-# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
CONFIG_INFINIBAND_CXGB4=m
CONFIG_INFINIBAND_IRDMA=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_INFINIBAND=m
+CONFIG_INFINIBAND_MTHCA=m
+# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
CONFIG_RDMA_RXE=m
CONFIG_INFINIBAND_IPOIB=m
# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
@@ -2460,7 +2442,6 @@ CONFIG_RTC_DRV_DS1374=m
CONFIG_RTC_DRV_DS1374_WDT=y
CONFIG_RTC_DRV_DS1672=m
CONFIG_RTC_DRV_MAX6900=m
-CONFIG_RTC_DRV_RK808=m
CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_ISL1208=m
CONFIG_RTC_DRV_ISL12026=m
@@ -2500,17 +2481,15 @@ CONFIG_RTC_DRV_DS1553=m
CONFIG_RTC_DRV_DS1685_FAMILY=m
CONFIG_RTC_DRV_DS1742=m
CONFIG_RTC_DRV_DS2404=m
-CONFIG_RTC_DRV_EFI=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_PCF50633=m
-CONFIG_RTC_DRV_FSL_FTM_ALARM=y
+CONFIG_RTC_DRV_CROS_EC=m
CONFIG_RTC_DRV_SUN6I=y
CONFIG_RTC_DRV_MV=m
CONFIG_RTC_DRV_ARMADA38X=m
@@ -2528,7 +2507,6 @@ CONFIG_QCOM_HIDMA_MGMT=m
CONFIG_QCOM_HIDMA=m
CONFIG_DW_DMAC_PCI=m
CONFIG_DMATEST=m
-CONFIG_AUXDISPLAY=y
CONFIG_UIO_CIF=m
CONFIG_UIO_PDRV_GENIRQ=m
CONFIG_UIO_AEC=m
@@ -2555,21 +2533,28 @@ CONFIG_VHOST_SCSI=m
CONFIG_VHOST_VSOCK=m
CONFIG_VHOST_VDPA=m
CONFIG_VHOST_CROSS_ENDIAN_LEGACY=y
+CONFIG_HYPERV=m
+CONFIG_HYPERV_UTILS=m
+CONFIG_HYPERV_BALLOON=m
CONFIG_XEN_DEV_EVTCHN=m
CONFIG_XENFS=m
CONFIG_XEN_PVCALLS_FRONTEND=m
CONFIG_XEN_SCSI_BACKEND=m
+CONFIG_XEN_VIRTIO=y
CONFIG_STAGING=y
CONFIG_RTLLIB=m
-CONFIG_R8188EU=m
-CONFIG_88EU_AP_MODE=y
-CONFIG_ASHMEM=y
+CONFIG_R8712U=m
CONFIG_CHROME_PLATFORMS=y
-CONFIG_COMMON_CLK_RK808=m
+CONFIG_CHROMEOS_ACPI=m
+CONFIG_CHROMEOS_TBMC=m
+CONFIG_CROS_EC=m
+CONFIG_CROS_EC_I2C=m
+CONFIG_CROS_EC_SPI=m
+CONFIG_CHROMEOS_PRIVACY_SCREEN=m
# CONFIG_COMMON_CLK_HI655X is not set
CONFIG_COMMON_CLK_SCMI=m
CONFIG_COMMON_CLK_SI544=m
-CONFIG_CLK_BCM2711_DVP=m
+CONFIG_CLK_RASPBERRYPI=m
# CONFIG_COMMON_CLK_HI3519 is not set
# CONFIG_STUB_CLK_HI6220 is not set
# CONFIG_COMMON_CLK_MT2712 is not set
@@ -2586,11 +2571,9 @@ CONFIG_CLK_BCM2711_DVP=m
# CONFIG_COMMON_CLK_MT8183_MMSYS is not set
# CONFIG_COMMON_CLK_MT8183_VDECSYS is not set
# CONFIG_COMMON_CLK_MT8183_VENCSYS is not set
-CONFIG_CLK_RK3399=m
# CONFIG_EXYNOS_AUDSS_CLK_CON is not set
# CONFIG_SPRD_COMMON_CLK is not set
# CONFIG_SUN8I_H3_CCU is not set
-# CONFIG_SUN8I_DE2_CCU is not set
CONFIG_XILINX_VCU=m
# CONFIG_COMMON_CLK_ZYNQMP is not set
# CONFIG_SPRD_TIMER is not set
@@ -2599,17 +2582,18 @@ CONFIG_PLATFORM_MHU=m
CONFIG_PL320_MBOX=y
CONFIG_ROCKCHIP_MBOX=y
CONFIG_PCC=y
-CONFIG_BCM2835_MBOX=m
+CONFIG_BCM2835_MBOX=y
CONFIG_HI6220_MBOX=m
CONFIG_XGENE_SLIMPRO_MBOX=y
CONFIG_SUN6I_MSGBOX=m
CONFIG_IOMMU_DEFAULT_DMA_LAZY=y
+CONFIG_ROCKCHIP_IOMMU=y
CONFIG_ARM_SMMU=y
CONFIG_ARM_SMMU_V3=y
CONFIG_VIRTIO_IOMMU=m
CONFIG_RPMSG_VIRTIO=m
CONFIG_SOUNDWIRE=y
-CONFIG_FSL_MC_DPIO=y
+CONFIG_RASPBERRYPI_POWER=y
CONFIG_QCOM_COMMAND_DB=y
CONFIG_QCOM_GENI_SE=m
CONFIG_QCOM_LLCC=m
@@ -2617,6 +2601,8 @@ CONFIG_QCOM_RMTFS_MEM=m
CONFIG_QCOM_RPMH=y
CONFIG_QCOM_SMD_RPM=m
CONFIG_QCOM_WCNSS_CTRL=m
+CONFIG_ROCKCHIP_IODOMAIN=m
+CONFIG_ROCKCHIP_PM_DOMAINS=y
CONFIG_ARCH_TEGRA_132_SOC=y
CONFIG_ARCH_TEGRA_210_SOC=y
CONFIG_ARCH_TEGRA_194_SOC=y
@@ -2625,16 +2611,25 @@ CONFIG_DEVFREQ_GOV_POWERSAVE=m
CONFIG_DEVFREQ_GOV_USERSPACE=m
CONFIG_ARM_RK3399_DMC_DEVFREQ=m
CONFIG_EXTCON_GPIO=m
+CONFIG_EXTCON_USBC_CROS_EC=m
CONFIG_MEMORY=y
CONFIG_IIO=m
CONFIG_HID_SENSOR_ACCEL_3D=m
+CONFIG_IIO_CROS_EC_ACCEL_LEGACY=m
+CONFIG_AXP20X_ADC=m
+CONFIG_ROCKCHIP_SARADC=m
+CONFIG_IIO_CROS_EC_SENSORS_CORE=m
+CONFIG_IIO_CROS_EC_SENSORS=m
+CONFIG_IIO_CROS_EC_SENSORS_LID_ANGLE=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_HID_SENSOR_HUMIDITY=m
+CONFIG_IIO_CROS_EC_LIGHT_PROX=m
CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_PROX=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
+CONFIG_IIO_CROS_EC_BARO=m
CONFIG_HID_SENSOR_PRESS=m
CONFIG_HID_SENSOR_TEMP=m
CONFIG_NTB=m
@@ -2643,15 +2638,22 @@ CONFIG_NTB_PINGPONG=m
CONFIG_NTB_PERF=m
CONFIG_NTB_TRANSPORT=m
CONFIG_PWM=y
+CONFIG_PWM_APPLE=m
CONFIG_PWM_BCM2835=m
+CONFIG_PWM_CROS_EC=m
+CONFIG_PWM_MESON=m
CONFIG_PWM_PCA9685=m
CONFIG_PWM_RASPBERRYPI_POE=m
+CONFIG_PWM_ROCKCHIP=m
CONFIG_PWM_SUN4I=m
CONFIG_QCOM_PDC=y
CONFIG_RESET_BERLIN=y
CONFIG_RESET_QCOM_AOSS=y
CONFIG_COMMON_RESET_HI6220=m
CONFIG_PHY_XGENE=m
+CONFIG_PHY_SUN4I_USB=m
+CONFIG_PHY_SUN9I_USB=m
+CONFIG_PHY_SUN50I_USB3=m
CONFIG_PHY_HI6220_USB=m
CONFIG_PHY_HISTB_COMBPHY=m
CONFIG_PHY_HISI_INNO_USB2=m
@@ -2660,27 +2662,27 @@ CONFIG_PHY_ROCKCHIP_EMMC=m
CONFIG_PHY_ROCKCHIP_INNO_USB2=m
CONFIG_PHY_ROCKCHIP_PCIE=m
CONFIG_PHY_ROCKCHIP_TYPEC=m
+CONFIG_PHY_ROCKCHIP_USB=m
CONFIG_PHY_TEGRA_XUSB=m
CONFIG_ARM_CCI_PMU=y
# CONFIG_ARM_CCI400_PMU is not set
CONFIG_ARM_DSU_PMU=m
CONFIG_XGENE_PMU=y
CONFIG_ARM_SPE_PMU=m
+CONFIG_APPLE_M1_CPU_PMU=y
CONFIG_HISI_PMU=y
CONFIG_RAS=y
CONFIG_USB4=m
-CONFIG_ANDROID=y
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ANDROID_BINDERFS=y
-CONFIG_ANDROID_BINDER_IPC_SELFTEST=y
CONFIG_LIBNVDIMM=y
CONFIG_BLK_DEV_PMEM=m
CONFIG_OF_PMEM=m
CONFIG_DEV_DAX=m
-CONFIG_QCOM_QFPROM=m
-CONFIG_ROCKCHIP_EFUSE=m
-CONFIG_NVMEM_SUNXI_SID=m
+CONFIG_NVMEM_MESON_EFUSE=m
+CONFIG_NVMEM_MESON_MX_EFUSE=m
CONFIG_NVMEM_RMEM=m
+CONFIG_NVMEM_SUNXI_SID=m
CONFIG_SLIMBUS=m
CONFIG_SLIM_QCOM_CTRL=m
CONFIG_EXT2_FS=m
@@ -2712,16 +2714,17 @@ CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_NILFS2_FS=m
CONFIG_F2FS_FS=m
# CONFIG_F2FS_STAT_FS is not set
-CONFIG_FS_DAX=y
+CONFIG_F2FS_UNFAIR_RWSEM=y
CONFIG_FS_ENCRYPTION=y
CONFIG_FS_VERITY=y
CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
# CONFIG_DNOTIFY is not set
+CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
CONFIG_QFMT_V1=m
CONFIG_QFMT_V2=m
-CONFIG_AUTOFS4_FS=m
+CONFIG_AUTOFS_FS=m
CONFIG_FUSE_FS=m
CONFIG_VIRTIO_FS=m
CONFIG_OVERLAY_FS=m
@@ -2759,7 +2762,6 @@ CONFIG_JFFS2_RUBIN=y
CONFIG_UBIFS_FS=m
CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_FILE_DIRECT=y
-CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
@@ -2771,9 +2773,6 @@ CONFIG_OMFS_FS=m
CONFIG_HPFS_FS=m
CONFIG_ROMFS_FS=m
CONFIG_PSTORE=y
-CONFIG_PSTORE_DEFLATE_COMPRESS=m
-CONFIG_PSTORE_ZSTD_COMPRESS=y
-CONFIG_PSTORE_ZSTD_COMPRESS_DEFAULT=y
CONFIG_PSTORE_RAM=m
CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m
@@ -2787,7 +2786,6 @@ CONFIG_NFSD_V4=y
CONFIG_NFSD_BLOCKLAYOUT=y
CONFIG_NFSD_SCSILAYOUT=y
CONFIG_NFSD_FLEXFILELAYOUT=y
-CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -2869,7 +2867,6 @@ CONFIG_SECURITY_LANDLOCK=y
# CONFIG_INTEGRITY is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,integrity"
-CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF=y
CONFIG_GCC_PLUGIN_STACKLEAK=y
CONFIG_STACKLEAK_RUNTIME_DISABLE=y
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
@@ -2880,23 +2877,6 @@ CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_ECDSA=m
CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_CURVE25519=m
-CONFIG_CRYPTO_CHACHA20POLY1305=m
-CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_CFB=m
-CONFIG_CRYPTO_CTS=y
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_XTS=y
-CONFIG_CRYPTO_KEYWRAP=m
-CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-CONFIG_CRYPTO_BLAKE2S=m
-CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_SHA512=y
-CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_AES=y
CONFIG_CRYPTO_AES_TI=m
CONFIG_CRYPTO_BLOWFISH=m
@@ -2905,8 +2885,23 @@ CONFIG_CRYPTO_CAST5=m
CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_SM4=m
CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_ADIANTUM=m
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CFB=m
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_HCTR2=m
+CONFIG_CRYPTO_KEYWRAP=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=y
+CONFIG_CRYPTO_AEGIS128=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_VMAC=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_842=m
CONFIG_CRYPTO_LZ4=m
@@ -2917,9 +2912,20 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
+CONFIG_CRYPTO_NHPOLY1305_NEON=m
+CONFIG_CRYPTO_GHASH_ARM64_CE=m
+CONFIG_CRYPTO_SHA1_ARM64_CE=m
+CONFIG_CRYPTO_SHA2_ARM64_CE=m
+CONFIG_CRYPTO_SHA512_ARM64_CE=m
+CONFIG_CRYPTO_SHA3_ARM64=m
+CONFIG_CRYPTO_SM3_ARM64_CE=m
+CONFIG_CRYPTO_AES_ARM64_CE_BLK=m
+CONFIG_CRYPTO_AES_ARM64_BS=m
+CONFIG_CRYPTO_SM4_ARM64_CE=m
+CONFIG_CRYPTO_AES_ARM64_CE_CCM=m
+CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m
CONFIG_CRYPTO_DEV_SUN4I_SS=m
CONFIG_CRYPTO_DEV_SUN8I_CE=m
-CONFIG_CRYPTO_DEV_FSL_CAAM=m
CONFIG_CRYPTO_DEV_S5P=m
CONFIG_CRYPTO_DEV_CCP=y
CONFIG_CAVIUM_CPT=m
@@ -2932,13 +2938,18 @@ CONFIG_CRYPTO_DEV_QCOM_RNG=m
CONFIG_CRYPTO_DEV_ROCKCHIP=m
CONFIG_CRYPTO_DEV_CHELSIO=m
CONFIG_CRYPTO_DEV_VIRTIO=m
+CONFIG_CRYPTO_DEV_SAFEXCEL=m
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
CONFIG_SECONDARY_TRUSTED_KEYRING=y
CONFIG_CRC_T10DIF=y
CONFIG_PRINTK_TIME=y
CONFIG_CONSOLE_LOGLEVEL_QUIET=3
+CONFIG_DYNAMIC_DEBUG=y
+CONFIG_DEBUG_INFO_DWARF5=y
+CONFIG_DEBUG_INFO_BTF=y
CONFIG_FRAME_WARN=1280
CONFIG_MAGIC_SYSRQ=y
+# CONFIG_SLUB_DEBUG is not set
CONFIG_DEBUG_KMEMLEAK=y
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
CONFIG_KFENCE=y
diff --git a/main/linux-lts/lts.armv7.config b/main/linux-lts/lts.armv7.config
index f4a31555b2e..b05c5b47100 100644
--- a/main/linux-lts/lts.armv7.config
+++ b/main/linux-lts/lts.armv7.config
@@ -1,10 +1,10 @@
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
+CONFIG_NO_HZ_FULL=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_BPF_SYSCALL=y
-CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_SCHED_CORE=y
CONFIG_BSD_PROCESS_ACCT=y
@@ -33,10 +33,8 @@ CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_EXPERT=y
# CONFIG_SYSFS_SYSCALL is not set
-# CONFIG_SLUB_DEBUG is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_PROFILING=y
+CONFIG_ARCH_VIRT=y
CONFIG_ARCH_BCM=y
CONFIG_ARCH_BCM2835=y
CONFIG_ARCH_EXYNOS=y
@@ -49,6 +47,8 @@ CONFIG_SOC_IMX6SL=y
CONFIG_SOC_IMX6SX=y
CONFIG_SOC_IMX6UL=y
CONFIG_SOC_IMX7D=y
+CONFIG_ARCH_MVEBU=y
+CONFIG_MACH_ARMADA_38X=y
CONFIG_SOC_AM33XX=y
CONFIG_ARCH_QCOM=y
CONFIG_ARCH_MSM8X60=y
@@ -80,7 +80,6 @@ CONFIG_VMSPLIT_2G=y
# CONFIG_HIGHPTE is not set
# CONFIG_CPU_SW_DOMAIN_PAN is not set
# CONFIG_ARM_MODULE_PLTS is not set
-CONFIG_FORCE_MAX_ZONEORDER=11
CONFIG_PARAVIRT_TIME_ACCOUNTING=y
CONFIG_ZBOOT_ROM_TEXT=0
CONFIG_ZBOOT_ROM_BSS=0
@@ -97,40 +96,36 @@ CONFIG_ARM_IMX6Q_CPUFREQ=y
# CONFIG_ARM_TI_CPUFREQ is not set
CONFIG_CPU_IDLE=y
CONFIG_CPU_IDLE_GOV_LADDER=y
+CONFIG_ARM_MVEBU_V7_CPUIDLE=y
CONFIG_KERNEL_MODE_NEON=y
CONFIG_HIBERNATION=y
# CONFIG_HIBERNATION_SNAPSHOT_DEV is not set
CONFIG_PM_AUTOSLEEP=y
CONFIG_PM_WAKELOCKS=y
-CONFIG_CRYPTO_SHA1_ARM_NEON=m
-CONFIG_CRYPTO_SHA256_ARM=m
-CONFIG_CRYPTO_SHA512_ARM=m
-CONFIG_CRYPTO_BLAKE2B_NEON=m
-CONFIG_CRYPTO_AES_ARM=m
-CONFIG_CRYPTO_AES_ARM_BS=m
-CONFIG_CRYPTO_NHPOLY1305_NEON=m
CONFIG_KPROBES=y
-CONFIG_JUMP_LABEL=y
CONFIG_GCC_PLUGIN_LATENT_ENTROPY=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_UNLOAD_TAINT_TRACKING=y
CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SIG=y
+CONFIG_MODULE_SIG_SHA256=y
CONFIG_MODULE_COMPRESS_GZIP=y
CONFIG_BLK_DEV_THROTTLING=y
CONFIG_BLK_CGROUP_IOLATENCY=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_IOSCHED_BFQ=y
-CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_BINFMT_MISC=m
-CONFIG_KSM=y
-CONFIG_FRONTSWAP=y
CONFIG_ZSWAP=y
-CONFIG_ZSMALLOC=m
+CONFIG_SLAB_FREELIST_RANDOM=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_KSM=y
+CONFIG_LRU_GEN=y
+CONFIG_LRU_GEN_ENABLED=y
CONFIG_NET=y
CONFIG_PACKET=m
CONFIG_PACKET_DIAG=m
-CONFIG_UNIX=y
CONFIG_UNIX_DIAG=m
CONFIG_TLS=m
CONFIG_XFRM_USER=m
@@ -140,7 +135,6 @@ CONFIG_XFRM_STATISTICS=y
CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y
CONFIG_XDP_SOCKETS=y
-CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
@@ -192,6 +186,7 @@ CONFIG_IPV6_PIMSM_V2=y
CONFIG_IPV6_SEG6_LWTUNNEL=y
CONFIG_IPV6_SEG6_HMAC=y
CONFIG_NETLABEL=y
+CONFIG_MPTCP=y
CONFIG_NETWORK_SECMARK=y
CONFIG_NETFILTER=y
CONFIG_BRIDGE_NETFILTER=m
@@ -221,7 +216,6 @@ CONFIG_NF_TABLES_NETDEV=y
CONFIG_NFT_NUMGEN=m
CONFIG_NFT_CT=m
CONFIG_NFT_FLOW_OFFLOAD=m
-CONFIG_NFT_COUNTER=m
CONFIG_NFT_CONNLIMIT=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
@@ -235,14 +229,18 @@ CONFIG_NFT_REJECT=m
CONFIG_NFT_COMPAT=m
CONFIG_NFT_HASH=m
CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_XFRM=m
CONFIG_NFT_SOCKET=m
CONFIG_NFT_OSF=m
CONFIG_NFT_TPROXY=m
+CONFIG_NFT_SYNPROXY=m
CONFIG_NFT_DUP_NETDEV=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_REJECT_NETDEV=m
CONFIG_NF_FLOW_TABLE_INET=m
CONFIG_NF_FLOW_TABLE=m
+CONFIG_NF_FLOW_TABLE_PROCFS=y
CONFIG_NETFILTER_XT_SET=m
CONFIG_NETFILTER_XT_TARGET_AUDIT=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
@@ -347,7 +345,6 @@ CONFIG_IP_VS_PE_SIP=m
CONFIG_NFT_DUP_IPV4=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NF_TABLES_ARP=y
-CONFIG_NF_FLOW_TABLE_IPV4=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_IPV4=m
CONFIG_IP_NF_IPTABLES=m
@@ -363,7 +360,6 @@ CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_RAW=m
@@ -373,7 +369,6 @@ CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
-CONFIG_NF_FLOW_TABLE_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_EUI64=m
@@ -434,8 +429,6 @@ CONFIG_L2TP_ETH=m
CONFIG_BRIDGE=m
CONFIG_BRIDGE_VLAN_FILTERING=y
CONFIG_NET_DSA=m
-CONFIG_NET_DSA_TAG_DSA=m
-CONFIG_NET_DSA_TAG_EDSA=m
CONFIG_NET_DSA_TAG_TRAILER=m
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_GVRP=y
@@ -459,10 +452,8 @@ CONFIG_IEEE802154=m
CONFIG_IEEE802154_6LOWPAN=m
CONFIG_MAC802154=m
CONFIG_NET_SCHED=y
-CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_MULTIQ=m
CONFIG_NET_SCH_RED=m
@@ -473,7 +464,6 @@ CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_CBS=m
CONFIG_NET_SCH_ETF=m
CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_MQPRIO=m
@@ -485,17 +475,15 @@ CONFIG_NET_SCH_FQ_CODEL=m
CONFIG_NET_SCH_CAKE=m
CONFIG_NET_SCH_HHF=m
CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_FQ_PIE=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_SCH_PLUG=m
CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_PERF=y
CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_FLOW=m
CONFIG_NET_CLS_CGROUP=m
CONFIG_NET_CLS_BPF=m
@@ -545,7 +533,6 @@ CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=m
-CONFIG_BT_HS=y
CONFIG_BT_6LOWPAN=m
CONFIG_BT_LEDS=y
# CONFIG_BT_DEBUGFS is not set
@@ -602,11 +589,16 @@ CONFIG_NFC_S3FWRN5_I2C=m
CONFIG_NFC_ST95HF=m
CONFIG_PSAMPLE=m
CONFIG_PCI=y
+CONFIG_PCI_MVEBU=m
CONFIG_UEVENT_HELPER=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_DEVTMPFS_SAFE=y
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
+CONFIG_FW_LOADER_COMPRESS=y
+# CONFIG_FW_LOADER_COMPRESS_XZ is not set
+CONFIG_FW_LOADER_COMPRESS_ZSTD=y
# CONFIG_ALLOW_DEV_COREDUMP is not set
CONFIG_DEBUG_DEVRES=y
# CONFIG_QCOM_EBI2 is not set
@@ -615,7 +607,6 @@ CONFIG_FIRMWARE_MEMMAP=y
CONFIG_SYSFB_SIMPLEFB=y
CONFIG_EFI_VARS_PSTORE=m
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
-CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
CONFIG_MTD=m
CONFIG_MTD_TESTS=m
CONFIG_MTD_AR7_PARTS=m
@@ -658,7 +649,6 @@ CONFIG_OF_OVERLAY=y
CONFIG_ZRAM=m
CONFIG_ZRAM_DEF_COMP_LZ4=y
CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=y
@@ -668,6 +658,7 @@ CONFIG_VIRTIO_BLK=m
CONFIG_BLK_DEV_RBD=m
CONFIG_NVME_MULTIPATH=y
CONFIG_NVME_HWMON=y
+CONFIG_NVME_TCP=m
CONFIG_NVME_TARGET=m
CONFIG_NVME_TARGET_LOOP=m
CONFIG_AD525X_DPOT=m
@@ -710,17 +701,18 @@ CONFIG_SCSI_SAS_ATA=y
CONFIG_SCSI_SRP_ATTRS=m
CONFIG_ISCSI_TCP=m
CONFIG_ISCSI_BOOT_SYSFS=m
-CONFIG_SCSI_UFSHCD=m
CONFIG_LIBFC=m
CONFIG_LIBFCOE=m
CONFIG_SCSI_DEBUG=m
CONFIG_SCSI_VIRTIO=m
CONFIG_ATA=m
+CONFIG_SATA_AHCI=m
CONFIG_SATA_AHCI_PLATFORM=m
CONFIG_AHCI_IMX=m
+CONFIG_AHCI_MVEBU=m
CONFIG_AHCI_SUNXI=m
+CONFIG_SATA_MV=m
CONFIG_PATA_IMX=m
-CONFIG_PATA_PLATFORM=m
CONFIG_MD=y
CONFIG_BLK_DEV_MD=y
# CONFIG_MD_AUTODETECT is not set
@@ -772,6 +764,7 @@ CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
CONFIG_IPVLAN=m
CONFIG_VXLAN=m
+CONFIG_BAREUDP=m
CONFIG_GTP=m
CONFIG_MACSEC=m
CONFIG_NETCONSOLE=m
@@ -788,6 +781,7 @@ CONFIG_B53_MDIO_DRIVER=m
CONFIG_B53_MMAP_DRIVER=m
CONFIG_B53_SRAB_DRIVER=m
CONFIG_B53_SERDES=m
+CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_SUN4I_EMAC=m
CONFIG_ALTERA_TSE=m
# CONFIG_NET_VENDOR_AMAZON is not set
@@ -802,6 +796,9 @@ CONFIG_FSL_PQ_MDIO=m
CONFIG_FSL_XGMAC_MDIO=m
# CONFIG_NET_VENDOR_HISILICON is not set
# CONFIG_NET_VENDOR_LITEX is not set
+CONFIG_MV643XX_ETH=m
+CONFIG_MVNETA_BM_ENABLE=m
+CONFIG_MVNETA=m
CONFIG_KS8842=m
CONFIG_KS8851=m
CONFIG_KS8851_MLL=m
@@ -822,6 +819,7 @@ CONFIG_WIZNET_W5100=m
CONFIG_WIZNET_W5300=m
CONFIG_WIZNET_W5100_SPI=m
CONFIG_PHYLIB=y
+CONFIG_SFP=m
CONFIG_AMD_PHY=m
CONFIG_AQUANTIA_PHY=m
CONFIG_BCM87XX_PHY=m
@@ -845,7 +843,6 @@ CONFIG_DP83867_PHY=m
CONFIG_VITESSE_PHY=m
CONFIG_XILINX_GMII2RGMII=m
CONFIG_MICREL_KS8995MA=m
-CONFIG_MDIO_BITBANG=m
CONFIG_MDIO_GPIO=m
CONFIG_PPP=m
CONFIG_PPP_BSDCOMP=m
@@ -901,6 +898,8 @@ CONFIG_ATH6KL_SDIO=m
CONFIG_ATH6KL_USB=m
CONFIG_ATH6KL_DEBUG=y
CONFIG_AR5523=m
+CONFIG_ATH10K=m
+CONFIG_ATH10K_PCI=m
# CONFIG_WLAN_VENDOR_ATMEL is not set
CONFIG_B43=m
CONFIG_B43_SDIO=y
@@ -950,8 +949,8 @@ CONFIG_WLCORE_SPI=m
CONFIG_WLCORE_SDIO=m
CONFIG_USB_ZD1201=m
CONFIG_ZD1211RW=m
-CONFIG_MAC80211_HWSIM=m
CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_MAC80211_HWSIM=m
CONFIG_WAN=y
CONFIG_HDLC=m
CONFIG_HDLC_RAW=m
@@ -1006,11 +1005,9 @@ CONFIG_TOUCHSCREEN_WACOM_W8001=m
CONFIG_TOUCHSCREEN_MTOUCH=m
CONFIG_TOUCHSCREEN_IMX6UL_TSC=m
CONFIG_TOUCHSCREEN_INEXIO=m
-CONFIG_TOUCHSCREEN_MK712=m
CONFIG_TOUCHSCREEN_PENMOUNT=m
CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
CONFIG_TOUCHSCREEN_TOUCHWIN=m
-CONFIG_TOUCHSCREEN_UCB1400=m
CONFIG_TOUCHSCREEN_PIXCIR=m
CONFIG_TOUCHSCREEN_WDT87XX_I2C=m
CONFIG_TOUCHSCREEN_WM97XX=m
@@ -1059,6 +1056,7 @@ CONFIG_SERIO_RAW=m
CONFIG_SERIO_ALTERA_PS2=m
CONFIG_SERIO_PS2MULT=m
# CONFIG_LEGACY_PTYS is not set
+# CONFIG_LEGACY_TIOCSTI is not set
# CONFIG_LDISC_AUTOLOAD is not set
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
@@ -1070,7 +1068,6 @@ CONFIG_SERIAL_AMBA_PL010=y
CONFIG_SERIAL_AMBA_PL010_CONSOLE=y
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
-CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST=y
CONFIG_SERIAL_SAMSUNG=y
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
CONFIG_SERIAL_IMX=y
@@ -1090,6 +1087,8 @@ CONFIG_IPMI_POWEROFF=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_TCG_TPM=m
+CONFIG_TCG_TIS_SPI=m
+CONFIG_TCG_TIS_SPI_CR50=y
CONFIG_I2C_CHARDEV=m
CONFIG_I2C_MUX_GPIO=m
CONFIG_I2C_MUX_PCA9541=m
@@ -1116,7 +1115,7 @@ CONFIG_SPI_DESIGNWARE=m
CONFIG_SPI_FSL_QUADSPI=m
CONFIG_SPI_GPIO=m
CONFIG_SPI_IMX=m
-CONFIG_SPI_ROCKCHIP=m
+CONFIG_SPI_ORION=m
CONFIG_SPI_QUP=m
CONFIG_SPI_S3C64XX=m
CONFIG_SPI_SUN4I=m
@@ -1134,16 +1133,15 @@ CONFIG_PINCTRL_IPQ8064=m
CONFIG_PINCTRL_MSM8660=m
CONFIG_PINCTRL_MSM8960=m
CONFIG_PINCTRL_MSM8916=m
-CONFIG_PINCTRL_MSM8998=m
CONFIG_PINCTRL_QCOM_SPMI_PMIC=m
CONFIG_PINCTRL_QCOM_SSBI_PMIC=m
CONFIG_GPIO_SYSFS=y
CONFIG_GPIO_74XX_MMIO=m
CONFIG_GPIO_ALTERA=m
CONFIG_GPIO_MXC=y
+CONFIG_GPIO_PL061=y
CONFIG_GPIO_SYSCON=m
CONFIG_GPIO_TS4800=m
-CONFIG_GPIO_ADP5588=m
CONFIG_GPIO_MAX7300=m
CONFIG_GPIO_MAX732X=m
CONFIG_GPIO_PCA953X=m
@@ -1151,6 +1149,7 @@ CONFIG_GPIO_PCF857X=m
CONFIG_GPIO_TPS65218=m
CONFIG_GPIO_74X164=m
CONFIG_GPIO_MAX7301=m
+CONFIG_GPIO_VIRTIO=m
CONFIG_POWER_RESET_GPIO_RESTART=y
CONFIG_POWER_RESET_MSM=y
CONFIG_POWER_RESET_QCOM_PON=m
@@ -1163,7 +1162,6 @@ CONFIG_HWMON=m
CONFIG_SENSORS_AD7314=m
CONFIG_SENSORS_AD7414=m
CONFIG_SENSORS_AD7418=m
-CONFIG_SENSORS_ADM1021=m
CONFIG_SENSORS_ADM1025=m
CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
@@ -1206,7 +1204,6 @@ CONFIG_SENSORS_MAX1619=m
CONFIG_SENSORS_MAX1668=m
CONFIG_SENSORS_MAX31722=m
CONFIG_SENSORS_MAX6639=m
-CONFIG_SENSORS_MAX6642=m
CONFIG_SENSORS_MAX6650=m
CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_MAX31790=m
@@ -1260,7 +1257,6 @@ CONFIG_SENSORS_SMSC47M192=m
CONFIG_SENSORS_SMSC47B397=m
CONFIG_SENSORS_SCH5627=m
CONFIG_SENSORS_SCH5636=m
-CONFIG_SENSORS_SMM665=m
CONFIG_SENSORS_ADC128D818=m
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
@@ -1286,8 +1282,8 @@ CONFIG_SENSORS_W83627HF=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_THERMAL_STATISTICS=y
CONFIG_THERMAL_GOV_FAIR_SHARE=y
+CONFIG_ARMADA_THERMAL=m
# CONFIG_TI_SOC_THERMAL is not set
-CONFIG_QCOM_TSENS=m
CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_CORE=y
CONFIG_WATCHDOG_SYSFS=y
@@ -1297,6 +1293,7 @@ CONFIG_XILINX_WATCHDOG=m
CONFIG_CADENCE_WATCHDOG=m
CONFIG_S3C2410_WATCHDOG=m
CONFIG_OMAP_WATCHDOG=m
+CONFIG_ORION_WATCHDOG=m
CONFIG_SUNXI_WATCHDOG=m
CONFIG_QCOM_WDT=m
CONFIG_USBPCWATCHDOG=m
@@ -1309,15 +1306,12 @@ CONFIG_MFD_AXP20X_RSB=m
CONFIG_MFD_DLN2=m
CONFIG_MFD_MC13XXX_SPI=m
CONFIG_MFD_MC13XXX_I2C=m
-CONFIG_HTC_PASIC3=m
CONFIG_MFD_MAX77686=m
CONFIG_MFD_PCF50633=m
CONFIG_PCF50633_ADC=m
CONFIG_PCF50633_GPIO=m
-CONFIG_UCB1400_CORE=m
CONFIG_MFD_PM8XXX=m
CONFIG_MFD_SPMI_PMIC=m
-CONFIG_MFD_RK808=m
CONFIG_MFD_SM501=m
CONFIG_MFD_TI_AM335X_TSCADC=m
CONFIG_TPS65010=m
@@ -1337,47 +1331,41 @@ CONFIG_REGULATOR_PV88060=m
CONFIG_REGULATOR_PV88090=m
CONFIG_REGULATOR_PWM=m
CONFIG_REGULATOR_QCOM_SMD_RPM=m
-CONFIG_REGULATOR_RK808=m
CONFIG_REGULATOR_TPS65217=m
CONFIG_REGULATOR_TPS65218=m
CONFIG_RC_CORE=m
CONFIG_RC_DECODERS=y
+CONFIG_IR_IMON_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
CONFIG_IR_NEC_DECODER=m
CONFIG_IR_RC5_DECODER=m
CONFIG_IR_RC6_DECODER=m
-CONFIG_IR_JVC_DECODER=m
-CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SHARP_DECODER=m
-CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_IR_SONY_DECODER=m
CONFIG_IR_XMP_DECODER=m
-CONFIG_IR_IMON_DECODER=m
CONFIG_RC_DEVICES=y
-CONFIG_RC_ATI_REMOTE=m
+CONFIG_IR_GPIO_CIR=m
CONFIG_IR_HIX5HD2=m
+CONFIG_IR_IGORPLUGUSB=m
+CONFIG_IR_IGUANA=m
CONFIG_IR_IMON=m
CONFIG_IR_IMON_RAW=m
CONFIG_IR_MCEUSB=m
CONFIG_IR_REDRAT3=m
CONFIG_IR_STREAMZAP=m
-CONFIG_IR_IGORPLUGUSB=m
-CONFIG_IR_IGUANA=m
-CONFIG_RC_LOOPBACK=m
-CONFIG_IR_GPIO_CIR=m
CONFIG_IR_SUNXI=m
+CONFIG_RC_ATI_REMOTE=m
+CONFIG_RC_LOOPBACK=m
# CONFIG_MEDIA_CEC_SUPPORT is not set
CONFIG_MEDIA_SUPPORT=m
CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
-CONFIG_VIDEO_V4L2_SUBDEV_API=y
CONFIG_V4L2_FLASH_LED_CLASS=m
CONFIG_DVB_MAX_ADAPTERS=8
# CONFIG_DVB_DYNAMIC_MINORS is not set
CONFIG_MEDIA_USB_SUPPORT=y
-CONFIG_USB_VIDEO_CLASS=m
CONFIG_USB_GSPCA=m
-CONFIG_USB_M5602=m
-CONFIG_USB_STV06XX=m
-CONFIG_USB_GL860=m
CONFIG_USB_GSPCA_BENQ=m
CONFIG_USB_GSPCA_CONEX=m
CONFIG_USB_GSPCA_CPIA1=m
@@ -1419,39 +1407,15 @@ CONFIG_USB_GSPCA_TV8532=m
CONFIG_USB_GSPCA_VC032X=m
CONFIG_USB_GSPCA_VICAM=m
CONFIG_USB_GSPCA_ZC3XX=m
-CONFIG_USB_ZR364XX=m
-CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_GL860=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
CONFIG_USB_S2255=m
+CONFIG_USB_VIDEO_CLASS=m
CONFIG_VIDEO_CX231XX=m
CONFIG_VIDEO_CX231XX_ALSA=m
CONFIG_VIDEO_CX231XX_DVB=m
-CONFIG_VIDEO_TM6000=m
-CONFIG_VIDEO_TM6000_ALSA=m
-CONFIG_VIDEO_TM6000_DVB=m
-CONFIG_DVB_USB=m
-CONFIG_DVB_USB_A800=m
-CONFIG_DVB_USB_DIBUSB_MB=m
-CONFIG_DVB_USB_DIBUSB_MC=m
-CONFIG_DVB_USB_DIB0700=m
-CONFIG_DVB_USB_UMT_010=m
-CONFIG_DVB_USB_CXUSB=m
-CONFIG_DVB_USB_M920X=m
-CONFIG_DVB_USB_DIGITV=m
-CONFIG_DVB_USB_VP7045=m
-CONFIG_DVB_USB_VP702X=m
-CONFIG_DVB_USB_GP8PSK=m
-CONFIG_DVB_USB_NOVA_T_USB2=m
-CONFIG_DVB_USB_TTUSB2=m
-CONFIG_DVB_USB_DTT200U=m
-CONFIG_DVB_USB_OPERA1=m
-CONFIG_DVB_USB_AF9005=m
-CONFIG_DVB_USB_AF9005_REMOTE=m
-CONFIG_DVB_USB_PCTV452E=m
-CONFIG_DVB_USB_DW2102=m
-CONFIG_DVB_USB_CINERGY_T2=m
-CONFIG_DVB_USB_DTV5100=m
-CONFIG_DVB_USB_AZ6027=m
-CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
CONFIG_DVB_USB_V2=m
CONFIG_DVB_USB_AF9015=m
CONFIG_DVB_USB_AF9035=m
@@ -1459,13 +1423,36 @@ CONFIG_DVB_USB_ANYSEE=m
CONFIG_DVB_USB_AU6610=m
CONFIG_DVB_USB_AZ6007=m
CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_DVBSKY=m
CONFIG_DVB_USB_EC168=m
CONFIG_DVB_USB_GL861=m
CONFIG_DVB_USB_LME2510=m
CONFIG_DVB_USB_MXL111SF=m
CONFIG_DVB_USB_RTL28XXU=m
-CONFIG_DVB_USB_DVBSKY=m
-CONFIG_DVB_B2C2_FLEXCOP_USB=m
+CONFIG_DVB_USB=m
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_PCTV452E=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_VP7045=m
CONFIG_VIDEO_EM28XX=m
CONFIG_VIDEO_EM28XX_V4L2=m
CONFIG_VIDEO_EM28XX_ALSA=m
@@ -1475,6 +1462,7 @@ CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m
CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC=m
CONFIG_CXD2880_SPI_DRV=m
+CONFIG_AUXDISPLAY=y
CONFIG_IMX_IPUV3_CORE=m
CONFIG_DRM=m
CONFIG_DRM_DP_AUX_CHARDEV=y
@@ -1502,7 +1490,6 @@ CONFIG_DRM_UDL=m
CONFIG_DRM_ARMADA=m
CONFIG_DRM_SUN4I=m
CONFIG_DRM_SUN4I_HDMI_CEC=y
-CONFIG_DRM_SUN8I_DW_HDMI=m
CONFIG_DRM_OMAP=m
CONFIG_OMAP5_DSS_HDMI=y
CONFIG_OMAP2_DSS_SDI=y
@@ -1512,8 +1499,6 @@ CONFIG_DRM_VIRTIO_GPU=m
CONFIG_DRM_MSM=m
CONFIG_DRM_TEGRA=m
CONFIG_DRM_TEGRA_STAGING=y
-CONFIG_DRM_STM=m
-CONFIG_DRM_STM_DSI=m
CONFIG_DRM_PANEL_ARM_VERSATILE=m
CONFIG_DRM_PANEL_SIMPLE=m
CONFIG_DRM_PANEL_ILITEK_IL9322=m
@@ -1532,15 +1517,12 @@ CONFIG_DRM_I2C_ADV7511_AUDIO=y
CONFIG_DRM_DW_HDMI_AHB_AUDIO=m
CONFIG_DRM_DW_HDMI_I2S_AUDIO=m
CONFIG_DRM_DW_HDMI_CEC=m
-CONFIG_DRM_STI=m
CONFIG_DRM_IMX=m
CONFIG_DRM_IMX_PARALLEL_DISPLAY=m
CONFIG_DRM_IMX_TVE=m
CONFIG_DRM_IMX_LDB=m
CONFIG_DRM_IMX_HDMI=m
CONFIG_DRM_V3D=m
-CONFIG_DRM_VC4=m
-CONFIG_DRM_VC4_HDMI_CEC=y
CONFIG_DRM_ETNAVIV=m
CONFIG_DRM_MXSFB=m
CONFIG_DRM_GM12U320=m
@@ -1551,8 +1533,8 @@ CONFIG_DRM_PANFROST=m
CONFIG_DRM_TIDSS=m
CONFIG_DRM_GUD=m
CONFIG_FB=y
+CONFIG_FB_EFI=y
CONFIG_FB_TILEBLITTING=y
-# CONFIG_FB_MX3 is not set
CONFIG_LCD_CLASS_DEVICE=m
CONFIG_LCD_L4F00242T03=m
CONFIG_LCD_LMS283GF05=m
@@ -1567,7 +1549,7 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_BACKLIGHT_PWM=m
CONFIG_BACKLIGHT_ADP8860=m
CONFIG_BACKLIGHT_PCF50633=m
-CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
CONFIG_SOUND=m
CONFIG_SND=m
@@ -1695,7 +1677,7 @@ CONFIG_USB_LEDS_TRIGGER_USBPORT=m
CONFIG_USB_MON=m
CONFIG_USB_C67X00_HCD=m
CONFIG_USB_XHCI_HCD=m
-CONFIG_USB_XHCI_PLATFORM=m
+CONFIG_USB_XHCI_MVEBU=m
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_EHCI_ROOT_HUB_TT=y
CONFIG_USB_EHCI_EXYNOS=m
@@ -1703,7 +1685,6 @@ CONFIG_USB_OXU210HP_HCD=m
CONFIG_USB_ISP116X_HCD=m
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_OHCI_EXYNOS=m
-CONFIG_USB_U132_HCD=m
CONFIG_USB_SL811_HCD=m
CONFIG_USB_SL811_HCD_ISO=y
CONFIG_USB_R8A66597_HCD=m
@@ -1788,7 +1769,6 @@ CONFIG_USB_LCD=m
CONFIG_USB_CYPRESS_CY7C63=m
CONFIG_USB_CYTHERM=m
CONFIG_USB_IDMOUSE=m
-CONFIG_USB_FTDI_ELAN=m
CONFIG_USB_SISUSBVGA=m
CONFIG_USB_LD=m
CONFIG_USB_IOWARRIOR=m
@@ -1820,11 +1800,13 @@ CONFIG_MMC_SDHCI_OF_AT91=m
CONFIG_MMC_SDHCI_OF_ESDHC=m
CONFIG_MMC_SDHCI_ESDHC_IMX=m
CONFIG_MMC_SDHCI_S3C=m
+CONFIG_MMC_SDHCI_PXAV3=m
CONFIG_MMC_SDHCI_S3C_DMA=y
CONFIG_MMC_SDHCI_F_SDH30=m
CONFIG_MMC_OMAP_HS=m
CONFIG_MMC_SDHCI_MSM=m
CONFIG_MMC_MXC=m
+CONFIG_MMC_MVSDIO=m
CONFIG_MMC_DW=m
CONFIG_MMC_DW_EXYNOS=m
CONFIG_MMC_VUB300=m
@@ -1832,14 +1814,17 @@ CONFIG_MMC_REALTEK_USB=m
CONFIG_MMC_SUNXI=m
CONFIG_MMC_MTK=m
CONFIG_MMC_SDHCI_OMAP=m
+CONFIG_SCSI_UFSHCD=m
CONFIG_MEMSTICK=m
CONFIG_MSPRO_BLOCK=m
CONFIG_MEMSTICK_REALTEK_USB=m
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLASS_FLASH=m
+CONFIG_LEDS_CLASS_MULTICOLOR=m
CONFIG_LEDS_BCM6328=m
CONFIG_LEDS_BCM6358=m
CONFIG_LEDS_CR0014114=m
+CONFIG_LEDS_TURRIS_OMNIA=m
CONFIG_LEDS_LM3530=m
CONFIG_LEDS_LM3692X=m
CONFIG_LEDS_PCA9532=m
@@ -1863,7 +1848,6 @@ CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_BACKLIGHT=m
CONFIG_LEDS_TRIGGER_CPU=y
CONFIG_LEDS_TRIGGER_ACTIVITY=m
-CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
CONFIG_LEDS_TRIGGER_TRANSIENT=m
CONFIG_LEDS_TRIGGER_PANIC=y
@@ -1879,7 +1863,6 @@ CONFIG_RTC_DRV_DS1374=m
CONFIG_RTC_DRV_DS1672=m
CONFIG_RTC_DRV_MAX6900=m
CONFIG_RTC_DRV_MAX77686=m
-CONFIG_RTC_DRV_RK808=m
CONFIG_RTC_DRV_RS5C372=m
CONFIG_RTC_DRV_ISL1208=m
CONFIG_RTC_DRV_ISL12026=m
@@ -1915,20 +1898,20 @@ CONFIG_RTC_DRV_DS1511=m
CONFIG_RTC_DRV_DS1553=m
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_PCF50633=m
CONFIG_RTC_DRV_IMXDI=m
CONFIG_RTC_DRV_S3C=m
CONFIG_RTC_DRV_PL030=m
CONFIG_RTC_DRV_PL031=m
CONFIG_RTC_DRV_SUNXI=m
+CONFIG_RTC_DRV_ARMADA38X=m
CONFIG_RTC_DRV_PM8XXX=m
CONFIG_RTC_DRV_MXC=m
CONFIG_RTC_DRV_MXC_V2=m
@@ -1940,7 +1923,6 @@ CONFIG_IMX_SDMA=m
CONFIG_PL330_DMA=m
CONFIG_QCOM_BAM_DMA=m
CONFIG_DMATEST=m
-CONFIG_AUXDISPLAY=y
CONFIG_UIO=m
CONFIG_UIO_PDRV_GENIRQ=m
CONFIG_VFIO=m
@@ -1949,20 +1931,17 @@ CONFIG_VFIO_AMBA=m
CONFIG_VIRT_DRIVERS=y
CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_INPUT=m
CONFIG_VIRTIO_MMIO=m
# CONFIG_VHOST_MENU is not set
CONFIG_STAGING=y
CONFIG_RTLLIB=m
-CONFIG_R8188EU=m
-CONFIG_88EU_AP_MODE=y
-CONFIG_ASHMEM=y
-CONFIG_GS_FPGABOOT=m
+CONFIG_R8712U=m
CONFIG_MELLANOX_PLATFORM=y
CONFIG_MLXREG_HOTPLUG=m
CONFIG_MLXREG_IO=m
# CONFIG_CLK_SP810 is not set
CONFIG_COMMON_CLK_MAX77686=m
-CONFIG_COMMON_CLK_RK808=m
CONFIG_COMMON_CLK_SI544=m
CONFIG_CLK_BCM2711_DVP=m
# CONFIG_SUN6I_A31_CCU is not set
@@ -1992,6 +1971,7 @@ CONFIG_PWM_SUN4I=m
CONFIG_QCOM_PDC=y
CONFIG_PHY_SUN4I_USB=m
CONFIG_PHY_SUN9I_USB=m
+CONFIG_PHY_MVEBU_A38X_COMPHY=m
CONFIG_PHY_QCOM_APQ8064_SATA=m
CONFIG_PHY_QCOM_IPQ806X_SATA=m
CONFIG_PHY_EXYNOS_MIPI_VIDEO=m
@@ -1999,16 +1979,13 @@ CONFIG_MCB=m
CONFIG_ARM_CCI_PMU=y
CONFIG_ARM_CCN=y
CONFIG_RAS=y
-CONFIG_ANDROID=y
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ANDROID_BINDERFS=y
-CONFIG_ANDROID_BINDER_IPC_SELFTEST=y
CONFIG_DAX=m
CONFIG_NVMEM_IMX_OCOTP=y
-CONFIG_QCOM_QFPROM=m
-CONFIG_NVMEM_SUNXI_SID=m
-CONFIG_NVMEM_SNVS_LPGPR=m
CONFIG_NVMEM_RMEM=m
+CONFIG_NVMEM_SNVS_LPGPR=m
+CONFIG_NVMEM_SUNXI_SID=m
CONFIG_EXT2_FS=m
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
@@ -2037,14 +2014,16 @@ CONFIG_NILFS2_FS=m
CONFIG_F2FS_FS=m
# CONFIG_F2FS_STAT_FS is not set
CONFIG_F2FS_FS_COMPRESSION=y
+CONFIG_F2FS_UNFAIR_RWSEM=y
CONFIG_FS_ENCRYPTION=y
CONFIG_FS_VERITY=y
CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
# CONFIG_DNOTIFY is not set
+CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
CONFIG_QFMT_V2=m
-CONFIG_AUTOFS4_FS=m
+CONFIG_AUTOFS_FS=m
CONFIG_FUSE_FS=m
CONFIG_VIRTIO_FS=m
CONFIG_OVERLAY_FS=m
@@ -2078,7 +2057,6 @@ CONFIG_JFFS2_RUBIN=y
CONFIG_UBIFS_FS=m
CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_FILE_DIRECT=y
-CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
@@ -2088,9 +2066,6 @@ CONFIG_SQUASHFS_4K_DEVBLK_SIZE=y
CONFIG_MINIX_FS=m
CONFIG_ROMFS_FS=m
CONFIG_PSTORE=y
-CONFIG_PSTORE_DEFLATE_COMPRESS=m
-CONFIG_PSTORE_ZSTD_COMPRESS=y
-CONFIG_PSTORE_ZSTD_COMPRESS_DEFAULT=y
CONFIG_PSTORE_RAM=m
CONFIG_UFS_FS=m
CONFIG_UFS_FS_WRITE=y
@@ -2184,7 +2159,6 @@ CONFIG_SECURITY_LANDLOCK=y
# CONFIG_INTEGRITY is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,integrity"
-CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF=y
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
CONFIG_ZERO_CALL_USED_REGS=y
CONFIG_CRYPTO_USER=m
@@ -2193,24 +2167,6 @@ CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_ECDSA=m
CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_CURVE25519=m
-CONFIG_CRYPTO_CHACHA20POLY1305=m
-CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_CFB=m
-CONFIG_CRYPTO_CTS=y
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_XTS=y
-CONFIG_CRYPTO_KEYWRAP=m
-CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-CONFIG_CRYPTO_BLAKE2S=m
-CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_SHA512=y
-CONFIG_CRYPTO_SHA3=m
-CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_AES=y
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m
@@ -2219,8 +2175,24 @@ CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_SM4=m
CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_ADIANTUM=m
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CFB=m
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_HCTR2=m
+CONFIG_CRYPTO_KEYWRAP=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=y
+CONFIG_CRYPTO_AEGIS128=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_SHA512=y
+CONFIG_CRYPTO_VMAC=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_LZ4=m
CONFIG_CRYPTO_LZ4HC=m
@@ -2230,10 +2202,18 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
+CONFIG_CRYPTO_NHPOLY1305_NEON=m
+CONFIG_CRYPTO_BLAKE2B_NEON=m
+CONFIG_CRYPTO_SHA1_ARM_NEON=m
+CONFIG_CRYPTO_SHA256_ARM=m
+CONFIG_CRYPTO_SHA512_ARM=m
+CONFIG_CRYPTO_AES_ARM=m
+CONFIG_CRYPTO_AES_ARM_BS=m
CONFIG_CRYPTO_DEV_SUN4I_SS=m
CONFIG_CRYPTO_DEV_FSL_CAAM=m
CONFIG_CRYPTO_DEV_EXYNOS_RNG=m
CONFIG_CRYPTO_DEV_MXS_DCP=m
+CONFIG_CRYPTO_DEV_MARVELL_CESA=m
CONFIG_CRYPTO_DEV_QCE=m
CONFIG_CRYPTO_DEV_QCOM_RNG=m
CONFIG_CRYPTO_DEV_VIRTIO=m
@@ -2244,9 +2224,12 @@ CONFIG_CMA_SIZE_MBYTES=48
CONFIG_IRQ_POLL=y
CONFIG_PRINTK_TIME=y
CONFIG_CONSOLE_LOGLEVEL_QUIET=3
+CONFIG_DYNAMIC_DEBUG=y
# CONFIG_DEBUG_BUGVERBOSE is not set
+CONFIG_DEBUG_INFO_DWARF5=y
CONFIG_FRAME_WARN=1024
CONFIG_MAGIC_SYSRQ=y
+# CONFIG_SLUB_DEBUG is not set
CONFIG_DEBUG_KMEMLEAK=y
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
CONFIG_DEBUG_SHIRQ=y
diff --git a/main/linux-lts/lts.loongarch64.config b/main/linux-lts/lts.loongarch64.config
new file mode 100644
index 00000000000..42e75625d78
--- /dev/null
+++ b/main/linux-lts/lts.loongarch64.config
@@ -0,0 +1,885 @@
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SYSVIPC=y
+CONFIG_POSIX_MQUEUE=y
+CONFIG_NO_HZ=y
+CONFIG_HIGH_RES_TIMERS=y
+CONFIG_BPF_SYSCALL=y
+CONFIG_BPF_JIT=y
+CONFIG_PREEMPT=y
+CONFIG_BSD_PROCESS_ACCT=y
+CONFIG_BSD_PROCESS_ACCT_V3=y
+CONFIG_TASKSTATS=y
+CONFIG_TASK_DELAY_ACCT=y
+CONFIG_TASK_XACCT=y
+CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_LOG_BUF_SHIFT=18
+CONFIG_NUMA_BALANCING=y
+CONFIG_MEMCG=y
+CONFIG_BLK_CGROUP=y
+CONFIG_CFS_BANDWIDTH=y
+CONFIG_RT_GROUP_SCHED=y
+CONFIG_CGROUP_PIDS=y
+CONFIG_CGROUP_FREEZER=y
+CONFIG_CGROUP_HUGETLB=y
+CONFIG_CPUSETS=y
+CONFIG_CGROUP_DEVICE=y
+CONFIG_CGROUP_CPUACCT=y
+CONFIG_CGROUP_PERF=y
+CONFIG_CGROUP_BPF=y
+CONFIG_NAMESPACES=y
+CONFIG_USER_NS=y
+CONFIG_CHECKPOINT_RESTORE=y
+CONFIG_SCHED_AUTOGROUP=y
+CONFIG_RELAY=y
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_EXPERT=y
+CONFIG_KALLSYMS_ALL=y
+CONFIG_PERF_EVENTS=y
+CONFIG_KEXEC=y
+CONFIG_CRASH_DUMP=y
+CONFIG_NUMA=y
+CONFIG_RANDOMIZE_BASE=y
+CONFIG_HIBERNATION=y
+CONFIG_ACPI_SPCR_TABLE=y
+CONFIG_ACPI_TAD=y
+CONFIG_ACPI_DOCK=y
+CONFIG_ACPI_IPMI=m
+CONFIG_ACPI_PCI_SLOT=y
+CONFIG_ACPI_HOTPLUG_MEMORY=y
+CONFIG_JUMP_LABEL=y
+CONFIG_MODULES=y
+CONFIG_MODULE_FORCE_LOAD=y
+CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_FORCE_UNLOAD=y
+CONFIG_MODVERSIONS=y
+CONFIG_BLK_DEV_THROTTLING=y
+CONFIG_PARTITION_ADVANCED=y
+CONFIG_BSD_DISKLABEL=y
+CONFIG_UNIXWARE_DISKLABEL=y
+CONFIG_IOSCHED_BFQ=y
+CONFIG_BINFMT_MISC=m
+CONFIG_ZSWAP=y
+CONFIG_ZSWAP_COMPRESSOR_DEFAULT_ZSTD=y
+CONFIG_Z3FOLD=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y
+CONFIG_MEMORY_HOTREMOVE=y
+CONFIG_KSM=y
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_USERFAULTFD=y
+CONFIG_NET=y
+CONFIG_PACKET=y
+CONFIG_TLS=m
+CONFIG_TLS_DEVICE=y
+CONFIG_XFRM_USER=y
+CONFIG_NET_KEY=y
+CONFIG_XDP_SOCKETS=y
+CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
+CONFIG_IP_PNP=y
+CONFIG_IP_PNP_DHCP=y
+CONFIG_IP_PNP_BOOTP=y
+CONFIG_IP_PNP_RARP=y
+CONFIG_NET_IPIP=m
+CONFIG_NET_IPGRE_DEMUX=m
+CONFIG_NET_IPGRE=m
+CONFIG_NET_IPGRE_BROADCAST=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IP_PIMSM_V1=y
+CONFIG_IP_PIMSM_V2=y
+CONFIG_INET_ESP=m
+CONFIG_INET_UDP_DIAG=y
+CONFIG_TCP_CONG_ADVANCED=y
+CONFIG_TCP_CONG_BBR=m
+CONFIG_IPV6_ROUTER_PREF=y
+CONFIG_IPV6_ROUTE_INFO=y
+CONFIG_INET6_ESP=m
+CONFIG_IPV6_MROUTE=y
+CONFIG_NETWORK_PHY_TIMESTAMPING=y
+CONFIG_NETFILTER=y
+CONFIG_BRIDGE_NETFILTER=m
+CONFIG_NETFILTER_NETLINK_LOG=m
+CONFIG_NF_CONNTRACK=m
+CONFIG_NF_CONNTRACK_AMANDA=m
+CONFIG_NF_CONNTRACK_FTP=m
+CONFIG_NF_CONNTRACK_NETBIOS_NS=m
+CONFIG_NF_CONNTRACK_SNMP=m
+CONFIG_NF_CONNTRACK_PPTP=m
+CONFIG_NF_CONNTRACK_TFTP=m
+CONFIG_NF_CT_NETLINK=m
+CONFIG_NF_TABLES=m
+CONFIG_NFT_NUMGEN=m
+CONFIG_NFT_CT=m
+CONFIG_NFT_CONNLIMIT=m
+CONFIG_NFT_LOG=m
+CONFIG_NFT_LIMIT=m
+CONFIG_NFT_MASQ=m
+CONFIG_NFT_REDIR=m
+CONFIG_NFT_NAT=m
+CONFIG_NFT_TUNNEL=m
+CONFIG_NFT_QUEUE=m
+CONFIG_NFT_QUOTA=m
+CONFIG_NFT_REJECT=m
+CONFIG_NFT_COMPAT=m
+CONFIG_NFT_HASH=m
+CONFIG_NFT_XFRM=m
+CONFIG_NFT_SOCKET=m
+CONFIG_NFT_OSF=m
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_SYNPROXY=m
+CONFIG_NETFILTER_XT_SET=m
+CONFIG_NETFILTER_XT_TARGET_AUDIT=m
+CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
+CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
+CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
+CONFIG_NETFILTER_XT_TARGET_CT=m
+CONFIG_NETFILTER_XT_TARGET_DSCP=m
+CONFIG_NETFILTER_XT_TARGET_HMARK=m
+CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
+CONFIG_NETFILTER_XT_TARGET_LED=m
+CONFIG_NETFILTER_XT_TARGET_LOG=m
+CONFIG_NETFILTER_XT_TARGET_MARK=m
+CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
+CONFIG_NETFILTER_XT_TARGET_TRACE=m
+CONFIG_NETFILTER_XT_TARGET_SECMARK=m
+CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
+CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
+CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
+CONFIG_NETFILTER_XT_MATCH_BPF=m
+CONFIG_NETFILTER_XT_MATCH_CGROUP=m
+CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
+CONFIG_NETFILTER_XT_MATCH_COMMENT=m
+CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
+CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
+CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
+CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
+CONFIG_NETFILTER_XT_MATCH_CPU=m
+CONFIG_NETFILTER_XT_MATCH_DCCP=m
+CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
+CONFIG_NETFILTER_XT_MATCH_DSCP=m
+CONFIG_NETFILTER_XT_MATCH_ESP=m
+CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
+CONFIG_NETFILTER_XT_MATCH_HELPER=m
+CONFIG_NETFILTER_XT_MATCH_IPCOMP=m
+CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
+CONFIG_NETFILTER_XT_MATCH_IPVS=m
+CONFIG_NETFILTER_XT_MATCH_LENGTH=m
+CONFIG_NETFILTER_XT_MATCH_LIMIT=m
+CONFIG_NETFILTER_XT_MATCH_MAC=m
+CONFIG_NETFILTER_XT_MATCH_MARK=m
+CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
+CONFIG_NETFILTER_XT_MATCH_NFACCT=m
+CONFIG_NETFILTER_XT_MATCH_OSF=m
+CONFIG_NETFILTER_XT_MATCH_OWNER=m
+CONFIG_NETFILTER_XT_MATCH_POLICY=m
+CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
+CONFIG_NETFILTER_XT_MATCH_QUOTA=m
+CONFIG_NETFILTER_XT_MATCH_RATEEST=m
+CONFIG_NETFILTER_XT_MATCH_REALM=m
+CONFIG_NETFILTER_XT_MATCH_SOCKET=m
+CONFIG_NETFILTER_XT_MATCH_STATE=m
+CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
+CONFIG_NETFILTER_XT_MATCH_STRING=m
+CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
+CONFIG_NETFILTER_XT_MATCH_TIME=m
+CONFIG_NETFILTER_XT_MATCH_U32=m
+CONFIG_IP_SET=m
+CONFIG_IP_VS=m
+CONFIG_IP_VS_IPV6=y
+CONFIG_IP_VS_PROTO_TCP=y
+CONFIG_IP_VS_PROTO_UDP=y
+CONFIG_IP_VS_PROTO_ESP=y
+CONFIG_IP_VS_PROTO_AH=y
+CONFIG_IP_VS_PROTO_SCTP=y
+CONFIG_IP_VS_RR=m
+CONFIG_IP_VS_WRR=m
+CONFIG_IP_VS_NFCT=y
+CONFIG_NF_TABLES_IPV4=y
+CONFIG_NFT_DUP_IPV4=m
+CONFIG_NFT_FIB_IPV4=m
+CONFIG_NF_TABLES_ARP=y
+CONFIG_IP_NF_IPTABLES=m
+CONFIG_IP_NF_MATCH_AH=m
+CONFIG_IP_NF_MATCH_ECN=m
+CONFIG_IP_NF_MATCH_RPFILTER=m
+CONFIG_IP_NF_MATCH_TTL=m
+CONFIG_IP_NF_FILTER=m
+CONFIG_IP_NF_TARGET_REJECT=m
+CONFIG_IP_NF_TARGET_SYNPROXY=m
+CONFIG_IP_NF_NAT=m
+CONFIG_IP_NF_TARGET_MASQUERADE=m
+CONFIG_IP_NF_TARGET_NETMAP=m
+CONFIG_IP_NF_TARGET_REDIRECT=m
+CONFIG_IP_NF_MANGLE=m
+CONFIG_IP_NF_TARGET_ECN=m
+CONFIG_IP_NF_TARGET_TTL=m
+CONFIG_IP_NF_RAW=m
+CONFIG_IP_NF_SECURITY=m
+CONFIG_IP_NF_ARPTABLES=m
+CONFIG_IP_NF_ARPFILTER=m
+CONFIG_IP_NF_ARP_MANGLE=m
+CONFIG_NF_TABLES_IPV6=y
+CONFIG_NFT_DUP_IPV6=m
+CONFIG_NFT_FIB_IPV6=m
+CONFIG_IP6_NF_IPTABLES=y
+CONFIG_IP6_NF_MATCH_AH=m
+CONFIG_IP6_NF_MATCH_EUI64=m
+CONFIG_IP6_NF_MATCH_FRAG=m
+CONFIG_IP6_NF_MATCH_OPTS=m
+CONFIG_IP6_NF_MATCH_IPV6HEADER=m
+CONFIG_IP6_NF_MATCH_MH=m
+CONFIG_IP6_NF_MATCH_RPFILTER=m
+CONFIG_IP6_NF_MATCH_RT=m
+CONFIG_IP6_NF_MATCH_SRH=m
+CONFIG_IP6_NF_FILTER=y
+CONFIG_IP6_NF_TARGET_REJECT=m
+CONFIG_IP6_NF_TARGET_SYNPROXY=m
+CONFIG_IP6_NF_MANGLE=m
+CONFIG_IP6_NF_RAW=m
+CONFIG_IP6_NF_SECURITY=m
+CONFIG_IP6_NF_NAT=m
+CONFIG_IP6_NF_TARGET_MASQUERADE=m
+CONFIG_IP6_NF_TARGET_NPT=m
+CONFIG_NF_TABLES_BRIDGE=m
+CONFIG_NFT_BRIDGE_REJECT=m
+CONFIG_BRIDGE_NF_EBTABLES=m
+CONFIG_BRIDGE_EBT_BROUTE=m
+CONFIG_BRIDGE_EBT_T_FILTER=m
+CONFIG_BRIDGE_EBT_T_NAT=m
+CONFIG_BRIDGE_EBT_ARP=m
+CONFIG_BRIDGE_EBT_IP=m
+CONFIG_BRIDGE_EBT_IP6=m
+CONFIG_BPFILTER=y
+CONFIG_RDS=y
+CONFIG_L2TP=m
+CONFIG_L2TP_V3=y
+CONFIG_L2TP_IP=m
+CONFIG_L2TP_ETH=m
+CONFIG_BRIDGE=m
+CONFIG_VLAN_8021Q=m
+CONFIG_VLAN_8021Q_GVRP=y
+CONFIG_VLAN_8021Q_MVRP=y
+CONFIG_LLC2=m
+CONFIG_NET_SCHED=y
+CONFIG_NET_SCH_HTB=m
+CONFIG_NET_SCH_PRIO=m
+CONFIG_NET_SCH_SFQ=m
+CONFIG_NET_SCH_TBF=m
+CONFIG_NET_SCH_NETEM=m
+CONFIG_NET_SCH_INGRESS=m
+CONFIG_NET_CLS_BASIC=m
+CONFIG_NET_CLS_FW=m
+CONFIG_NET_CLS_U32=m
+CONFIG_NET_CLS_CGROUP=m
+CONFIG_NET_CLS_BPF=m
+CONFIG_NET_CLS_ACT=y
+CONFIG_NET_ACT_POLICE=m
+CONFIG_NET_ACT_GACT=m
+CONFIG_NET_ACT_MIRRED=m
+CONFIG_NET_ACT_IPT=m
+CONFIG_NET_ACT_NAT=m
+CONFIG_NET_ACT_BPF=m
+CONFIG_OPENVSWITCH=m
+CONFIG_VSOCKETS=m
+CONFIG_VIRTIO_VSOCKETS=m
+CONFIG_NETLINK_DIAG=y
+CONFIG_CGROUP_NET_PRIO=y
+CONFIG_BPF_STREAM_PARSER=y
+CONFIG_BT=m
+CONFIG_BT_RFCOMM=m
+CONFIG_BT_RFCOMM_TTY=y
+CONFIG_BT_BNEP=m
+CONFIG_BT_BNEP_MC_FILTER=y
+CONFIG_BT_BNEP_PROTO_FILTER=y
+CONFIG_BT_HIDP=m
+CONFIG_BT_HCIBTUSB=m
+CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y
+CONFIG_BT_HCIBTUSB_MTK=y
+CONFIG_BT_HCIUART=m
+CONFIG_BT_HCIUART_BCSP=y
+CONFIG_BT_HCIUART_ATH3K=y
+CONFIG_BT_HCIUART_INTEL=y
+CONFIG_BT_HCIUART_AG6XX=y
+CONFIG_BT_HCIBCM203X=m
+CONFIG_BT_HCIBPA10X=m
+CONFIG_BT_HCIBFUSB=m
+CONFIG_BT_HCIDTL1=m
+CONFIG_BT_HCIBT3C=m
+CONFIG_BT_HCIBLUECARD=m
+CONFIG_BT_HCIVHCI=m
+CONFIG_BT_MRVL=m
+CONFIG_BT_ATH3K=m
+CONFIG_BT_VIRTIO=m
+CONFIG_CFG80211=m
+CONFIG_CFG80211_WEXT=y
+CONFIG_MAC80211=m
+CONFIG_RFKILL=m
+CONFIG_RFKILL_INPUT=y
+CONFIG_NET_9P=y
+CONFIG_NET_9P_VIRTIO=y
+CONFIG_PCIEPORTBUS=y
+CONFIG_HOTPLUG_PCI_PCIE=y
+CONFIG_PCIEAER=y
+# CONFIG_PCIEASPM is not set
+CONFIG_PCI_IOV=y
+CONFIG_HOTPLUG_PCI=y
+CONFIG_HOTPLUG_PCI_SHPC=y
+CONFIG_PCCARD=m
+CONFIG_YENTA=m
+CONFIG_RAPIDIO=y
+CONFIG_RAPIDIO_TSI721=y
+CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS=y
+CONFIG_RAPIDIO_ENUM_BASIC=m
+CONFIG_RAPIDIO_CHMAN=m
+CONFIG_RAPIDIO_MPORT_CDEV=m
+CONFIG_UEVENT_HELPER=y
+CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_FW_LOADER_COMPRESS=y
+CONFIG_FW_LOADER_COMPRESS_ZSTD=y
+CONFIG_EFI_ZBOOT=y
+CONFIG_EFI_CAPSULE_LOADER=m
+CONFIG_EFI_TEST=m
+CONFIG_MTD=m
+CONFIG_MTD_BLOCK=m
+CONFIG_MTD_CFI=m
+CONFIG_MTD_JEDECPROBE=m
+CONFIG_MTD_CFI_INTELEXT=m
+CONFIG_MTD_CFI_AMDSTD=m
+CONFIG_MTD_CFI_STAA=m
+CONFIG_MTD_RAM=m
+CONFIG_MTD_ROM=m
+CONFIG_MTD_UBI=m
+CONFIG_MTD_UBI_BLOCK=y
+CONFIG_PARPORT=y
+CONFIG_PARPORT_PC=y
+CONFIG_PARPORT_SERIAL=y
+CONFIG_PARPORT_PC_FIFO=y
+CONFIG_ZRAM=m
+CONFIG_ZRAM_DEF_COMP_ZSTD=y
+CONFIG_BLK_DEV_LOOP=y
+CONFIG_BLK_DEV_DRBD=m
+CONFIG_BLK_DEV_NBD=m
+CONFIG_BLK_DEV_RAM=y
+CONFIG_BLK_DEV_RAM_SIZE=8192
+CONFIG_VIRTIO_BLK=y
+CONFIG_BLK_DEV_RBD=m
+CONFIG_BLK_DEV_NVME=y
+CONFIG_NVME_MULTIPATH=y
+CONFIG_NVME_RDMA=m
+CONFIG_NVME_FC=m
+CONFIG_NVME_TCP=m
+CONFIG_NVME_TARGET=m
+CONFIG_NVME_TARGET_PASSTHRU=y
+CONFIG_NVME_TARGET_LOOP=m
+CONFIG_NVME_TARGET_RDMA=m
+CONFIG_NVME_TARGET_FC=m
+CONFIG_NVME_TARGET_TCP=m
+CONFIG_EEPROM_AT24=m
+CONFIG_BLK_DEV_SD=y
+CONFIG_BLK_DEV_SR=y
+CONFIG_CHR_DEV_SG=y
+CONFIG_CHR_DEV_SCH=m
+CONFIG_SCSI_CONSTANTS=y
+CONFIG_SCSI_LOGGING=y
+CONFIG_SCSI_SPI_ATTRS=m
+CONFIG_SCSI_FC_ATTRS=m
+CONFIG_SCSI_SAS_ATA=y
+CONFIG_ISCSI_TCP=m
+CONFIG_SCSI_MVSAS=y
+# CONFIG_SCSI_MVSAS_DEBUG is not set
+CONFIG_SCSI_MVSAS_TASKLET=y
+CONFIG_SCSI_MVUMI=y
+CONFIG_MEGARAID_NEWGEN=y
+CONFIG_MEGARAID_MM=y
+CONFIG_MEGARAID_MAILBOX=y
+CONFIG_MEGARAID_LEGACY=y
+CONFIG_MEGARAID_SAS=y
+CONFIG_SCSI_MPT2SAS=y
+CONFIG_LIBFC=m
+CONFIG_LIBFCOE=m
+CONFIG_FCOE=m
+CONFIG_SCSI_QLOGIC_1280=m
+CONFIG_SCSI_QLA_FC=m
+CONFIG_TCM_QLA2XXX=m
+CONFIG_SCSI_QLA_ISCSI=m
+CONFIG_SCSI_VIRTIO=m
+CONFIG_ATA=y
+CONFIG_SATA_AHCI=y
+CONFIG_SATA_AHCI_PLATFORM=y
+CONFIG_AHCI_DWC=y
+CONFIG_PATA_ATIIXP=y
+CONFIG_PATA_PCMCIA=m
+CONFIG_MD=y
+CONFIG_MD_LINEAR=m
+CONFIG_MD_MULTIPATH=m
+CONFIG_BCACHE=m
+CONFIG_BLK_DEV_DM=y
+CONFIG_DM_CRYPT=m
+CONFIG_DM_SNAPSHOT=m
+CONFIG_DM_THIN_PROVISIONING=m
+CONFIG_DM_CACHE=m
+CONFIG_DM_WRITECACHE=m
+CONFIG_DM_MIRROR=m
+CONFIG_DM_RAID=m
+CONFIG_DM_ZERO=m
+CONFIG_DM_MULTIPATH=m
+CONFIG_DM_MULTIPATH_QL=m
+CONFIG_DM_MULTIPATH_ST=m
+CONFIG_TARGET_CORE=m
+CONFIG_TCM_IBLOCK=m
+CONFIG_TCM_FILEIO=m
+CONFIG_TCM_PSCSI=m
+CONFIG_TCM_USER2=m
+CONFIG_LOOPBACK_TARGET=m
+CONFIG_ISCSI_TARGET=m
+CONFIG_NETDEVICES=y
+CONFIG_BONDING=m
+CONFIG_DUMMY=y
+CONFIG_WIREGUARD=m
+CONFIG_MACVLAN=m
+CONFIG_MACVTAP=m
+CONFIG_IPVLAN=m
+CONFIG_VXLAN=y
+CONFIG_RIONET=m
+CONFIG_TUN=m
+CONFIG_VETH=m
+CONFIG_VIRTIO_NET=m
+# CONFIG_NET_VENDOR_3COM is not set
+# CONFIG_NET_VENDOR_ADAPTEC is not set
+# CONFIG_NET_VENDOR_AGERE is not set
+# CONFIG_NET_VENDOR_ALACRITECH is not set
+# CONFIG_NET_VENDOR_ALTEON is not set
+# CONFIG_NET_VENDOR_AMAZON is not set
+# CONFIG_NET_VENDOR_AMD is not set
+# CONFIG_NET_VENDOR_AQUANTIA is not set
+# CONFIG_NET_VENDOR_ARC is not set
+# CONFIG_NET_VENDOR_ATHEROS is not set
+CONFIG_BNX2=y
+# CONFIG_NET_VENDOR_CAVIUM is not set
+CONFIG_CHELSIO_T1=m
+CONFIG_CHELSIO_T1_1G=y
+CONFIG_CHELSIO_T3=m
+CONFIG_CHELSIO_T4=m
+# CONFIG_NET_VENDOR_CISCO is not set
+# CONFIG_NET_VENDOR_DEC is not set
+# CONFIG_NET_VENDOR_DLINK is not set
+# CONFIG_NET_VENDOR_EMULEX is not set
+# CONFIG_NET_VENDOR_EZCHIP is not set
+# CONFIG_NET_VENDOR_I825XX is not set
+CONFIG_E1000=y
+CONFIG_E1000E=y
+CONFIG_IGB=y
+CONFIG_IXGBE=y
+# CONFIG_NET_VENDOR_MARVELL is not set
+# CONFIG_NET_VENDOR_MELLANOX is not set
+# CONFIG_NET_VENDOR_MICREL is not set
+# CONFIG_NET_VENDOR_MYRI is not set
+# CONFIG_NET_VENDOR_NATSEMI is not set
+# CONFIG_NET_VENDOR_NETRONOME is not set
+# CONFIG_NET_VENDOR_NVIDIA is not set
+# CONFIG_NET_VENDOR_OKI is not set
+# CONFIG_NET_VENDOR_QLOGIC is not set
+# CONFIG_NET_VENDOR_BROCADE is not set
+# CONFIG_NET_VENDOR_QUALCOMM is not set
+# CONFIG_NET_VENDOR_RDC is not set
+CONFIG_8139CP=m
+CONFIG_8139TOO=m
+CONFIG_R8169=y
+# CONFIG_NET_VENDOR_RENESAS is not set
+# CONFIG_NET_VENDOR_ROCKER is not set
+# CONFIG_NET_VENDOR_SAMSUNG is not set
+# CONFIG_NET_VENDOR_SEEQ is not set
+# CONFIG_NET_VENDOR_SILAN is not set
+# CONFIG_NET_VENDOR_SIS is not set
+# CONFIG_NET_VENDOR_SOLARFLARE is not set
+# CONFIG_NET_VENDOR_SMSC is not set
+CONFIG_STMMAC_ETH=y
+# CONFIG_NET_VENDOR_SUN is not set
+# CONFIG_NET_VENDOR_TEHUTI is not set
+# CONFIG_NET_VENDOR_TI is not set
+# CONFIG_NET_VENDOR_VIA is not set
+CONFIG_NGBE=y
+CONFIG_TXGBE=y
+# CONFIG_NET_VENDOR_WIZNET is not set
+# CONFIG_NET_VENDOR_XILINX is not set
+CONFIG_PPP=m
+CONFIG_PPP_BSDCOMP=m
+CONFIG_PPP_DEFLATE=m
+CONFIG_PPP_FILTER=y
+CONFIG_PPP_MPPE=m
+CONFIG_PPP_MULTILINK=y
+CONFIG_PPPOE=m
+CONFIG_PPTP=m
+CONFIG_PPPOL2TP=m
+CONFIG_PPP_ASYNC=m
+CONFIG_PPP_SYNC_TTY=m
+CONFIG_USB_RTL8150=m
+CONFIG_USB_RTL8152=m
+# CONFIG_USB_NET_AX8817X is not set
+# CONFIG_USB_NET_AX88179_178A is not set
+CONFIG_USB_NET_CDC_EEM=m
+CONFIG_USB_NET_HUAWEI_CDC_NCM=m
+CONFIG_USB_NET_CDC_MBIM=m
+# CONFIG_USB_NET_NET1080 is not set
+# CONFIG_USB_BELKIN is not set
+# CONFIG_USB_ARMLINUX is not set
+# CONFIG_USB_NET_ZAURUS is not set
+CONFIG_ATH9K=m
+CONFIG_ATH9K_HTC=m
+CONFIG_IWLWIFI=m
+CONFIG_IWLDVM=m
+CONFIG_IWLMVM=m
+CONFIG_HOSTAP=m
+CONFIG_MT7601U=m
+CONFIG_RT2X00=m
+CONFIG_RT2800USB=m
+CONFIG_RTL8192CE=m
+CONFIG_RTL8192SE=m
+CONFIG_RTL8192DE=m
+CONFIG_RTL8723AE=m
+CONFIG_RTL8723BE=m
+CONFIG_RTL8188EE=m
+CONFIG_RTL8192EE=m
+CONFIG_RTL8821AE=m
+CONFIG_RTL8192CU=m
+# CONFIG_RTLWIFI_DEBUG is not set
+CONFIG_RTL8XXXU=m
+CONFIG_RTW88=m
+CONFIG_RTW88_8822BE=m
+CONFIG_RTW88_8822CE=m
+CONFIG_RTW88_8723DE=m
+CONFIG_RTW88_8821CE=m
+CONFIG_RTW89=m
+CONFIG_RTW89_8852AE=m
+CONFIG_RTW89_8852CE=m
+CONFIG_ZD1211RW=m
+CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_INPUT_MOUSEDEV=y
+CONFIG_INPUT_MOUSEDEV_PSAUX=y
+CONFIG_INPUT_EVDEV=y
+CONFIG_KEYBOARD_XTKBD=m
+CONFIG_MOUSE_PS2_ELANTECH=y
+CONFIG_MOUSE_PS2_SENTELIC=y
+CONFIG_MOUSE_SERIAL=m
+CONFIG_INPUT_MISC=y
+CONFIG_INPUT_UINPUT=m
+CONFIG_SERIO_SERPORT=m
+CONFIG_SERIO_RAW=m
+CONFIG_LEGACY_PTY_COUNT=16
+CONFIG_SERIAL_8250=y
+CONFIG_SERIAL_8250_CONSOLE=y
+CONFIG_SERIAL_8250_NR_UARTS=16
+CONFIG_SERIAL_8250_RUNTIME_UARTS=16
+CONFIG_SERIAL_8250_EXTENDED=y
+CONFIG_SERIAL_8250_MANY_PORTS=y
+CONFIG_SERIAL_8250_SHARE_IRQ=y
+CONFIG_SERIAL_8250_RSA=y
+CONFIG_SERIAL_OF_PLATFORM=y
+CONFIG_SERIAL_NONSTANDARD=y
+CONFIG_PRINTER=m
+CONFIG_VIRTIO_CONSOLE=y
+CONFIG_IPMI_HANDLER=m
+CONFIG_IPMI_DEVICE_INTERFACE=m
+CONFIG_IPMI_SI=m
+CONFIG_HW_RANDOM=y
+CONFIG_HW_RANDOM_VIRTIO=m
+CONFIG_I2C_CHARDEV=y
+CONFIG_I2C_PIIX4=y
+CONFIG_I2C_GPIO=y
+CONFIG_I2C_LS2X=y
+CONFIG_SPI=y
+CONFIG_SPI_LOONGSON_PCI=m
+CONFIG_SPI_LOONGSON_PLATFORM=m
+CONFIG_PINCTRL=y
+CONFIG_PINCTRL_LOONGSON2=y
+CONFIG_GPIO_SYSFS=y
+CONFIG_GPIO_LOONGSON_64BIT=y
+CONFIG_POWER_RESET=y
+CONFIG_POWER_RESET_RESTART=y
+CONFIG_POWER_RESET_SYSCON=y
+CONFIG_POWER_RESET_SYSCON_POWEROFF=y
+CONFIG_SYSCON_REBOOT_MODE=y
+CONFIG_SENSORS_LM75=m
+CONFIG_SENSORS_LM93=m
+CONFIG_SENSORS_W83795=m
+CONFIG_SENSORS_W83627HF=m
+CONFIG_LOONGSON2_THERMAL=m
+CONFIG_RC_CORE=m
+CONFIG_LIRC=y
+CONFIG_RC_DECODERS=y
+CONFIG_IR_IMON_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_IR_NEC_DECODER=m
+CONFIG_IR_RC5_DECODER=m
+CONFIG_IR_RC6_DECODER=m
+CONFIG_IR_SANYO_DECODER=m
+CONFIG_IR_SHARP_DECODER=m
+CONFIG_IR_SONY_DECODER=m
+CONFIG_IR_XMP_DECODER=m
+CONFIG_MEDIA_SUPPORT=m
+CONFIG_MEDIA_USB_SUPPORT=y
+CONFIG_USB_VIDEO_CLASS=m
+CONFIG_MEDIA_PCI_SUPPORT=y
+CONFIG_VIDEO_BT848=m
+CONFIG_DVB_BT8XX=m
+CONFIG_DRM=y
+CONFIG_DRM_RADEON=m
+CONFIG_DRM_RADEON_USERPTR=y
+CONFIG_DRM_AMDGPU=m
+CONFIG_DRM_AMDGPU_SI=y
+CONFIG_DRM_AMDGPU_CIK=y
+CONFIG_DRM_AMDGPU_USERPTR=y
+CONFIG_DRM_AST=y
+CONFIG_DRM_QXL=m
+CONFIG_DRM_VIRTIO_GPU=m
+CONFIG_DRM_LOONGSON=y
+CONFIG_FB=y
+CONFIG_FB_EFI=y
+CONFIG_FB_RADEON=y
+CONFIG_LCD_CLASS_DEVICE=y
+CONFIG_LCD_PLATFORM=m
+# CONFIG_VGA_CONSOLE is not set
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
+CONFIG_LOGO=y
+CONFIG_SOUND=y
+CONFIG_SND=y
+CONFIG_SND_SEQUENCER=m
+CONFIG_SND_SEQ_DUMMY=m
+CONFIG_SND_BT87X=m
+CONFIG_SND_BT87X_OVERCLOCK=y
+CONFIG_SND_HDA_INTEL=y
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_INPUT_BEEP=y
+CONFIG_SND_HDA_PATCH_LOADER=y
+CONFIG_SND_HDA_CODEC_REALTEK=y
+CONFIG_SND_HDA_CODEC_SIGMATEL=y
+CONFIG_SND_HDA_CODEC_HDMI=y
+CONFIG_SND_HDA_CODEC_CONEXANT=y
+CONFIG_SND_USB_AUDIO=m
+CONFIG_HIDRAW=y
+CONFIG_UHID=m
+CONFIG_HID_A4TECH=m
+CONFIG_HID_CHERRY=m
+CONFIG_HID_LOGITECH=m
+CONFIG_HID_LOGITECH_DJ=m
+CONFIG_LOGITECH_FF=y
+CONFIG_LOGIRUMBLEPAD2_FF=y
+CONFIG_LOGIG940_FF=y
+CONFIG_HID_MICROSOFT=m
+CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_SUNPLUS=m
+CONFIG_USB_HIDDEV=y
+CONFIG_USB=y
+CONFIG_USB_OTG=y
+CONFIG_USB_MON=y
+CONFIG_USB_XHCI_HCD=y
+CONFIG_USB_EHCI_HCD=y
+CONFIG_USB_EHCI_ROOT_HUB_TT=y
+CONFIG_USB_EHCI_HCD_PLATFORM=y
+CONFIG_USB_OHCI_HCD=y
+CONFIG_USB_OHCI_HCD_PLATFORM=y
+CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_ACM=m
+CONFIG_USB_PRINTER=m
+CONFIG_USB_STORAGE=m
+CONFIG_USB_STORAGE_REALTEK=m
+CONFIG_USB_UAS=m
+CONFIG_USB_DWC2=y
+CONFIG_USB_DWC2_HOST=y
+CONFIG_USB_SERIAL=m
+CONFIG_USB_SERIAL_CH341=m
+CONFIG_USB_SERIAL_CP210X=m
+CONFIG_USB_SERIAL_FTDI_SIO=m
+CONFIG_USB_SERIAL_PL2303=m
+CONFIG_USB_SERIAL_OPTION=m
+CONFIG_USB_GADGET=y
+CONFIG_TYPEC=m
+CONFIG_TYPEC_TCPM=m
+CONFIG_TYPEC_TCPCI=m
+CONFIG_TYPEC_UCSI=m
+CONFIG_UCSI_ACPI=m
+CONFIG_INFINIBAND=m
+CONFIG_RTC_CLASS=y
+CONFIG_RTC_DRV_EFI=y
+CONFIG_RTC_DRV_LOONGSON=y
+CONFIG_DMADEVICES=y
+CONFIG_UIO=m
+CONFIG_UIO_PDRV_GENIRQ=m
+CONFIG_UIO_DMEM_GENIRQ=m
+CONFIG_UIO_PCI_GENERIC=m
+CONFIG_VFIO=m
+CONFIG_VFIO_PCI=m
+CONFIG_VIRTIO_PCI=y
+CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_INPUT=m
+CONFIG_VIRTIO_MMIO=m
+CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
+CONFIG_VHOST_NET=m
+CONFIG_VHOST_SCSI=m
+CONFIG_VHOST_VSOCK=m
+CONFIG_COMEDI=m
+CONFIG_COMEDI_PCI_DRIVERS=m
+CONFIG_COMEDI_8255_PCI=m
+CONFIG_COMEDI_ADL_PCI6208=m
+CONFIG_COMEDI_ADL_PCI7X3X=m
+CONFIG_COMEDI_ADL_PCI8164=m
+CONFIG_COMEDI_ADL_PCI9111=m
+CONFIG_COMEDI_ADL_PCI9118=m
+CONFIG_COMEDI_ADV_PCI1710=m
+CONFIG_COMEDI_ADV_PCI1720=m
+CONFIG_COMEDI_ADV_PCI1723=m
+CONFIG_COMEDI_ADV_PCI1724=m
+CONFIG_COMEDI_ADV_PCI1760=m
+CONFIG_COMEDI_ADV_PCI_DIO=m
+CONFIG_COMEDI_NI_LABPC_PCI=m
+CONFIG_COMEDI_NI_PCIDIO=m
+CONFIG_COMEDI_NI_PCIMIO=m
+CONFIG_STAGING=y
+CONFIG_COMMON_CLK_LOONGSON2=y
+CONFIG_LOONGSON2_GUTS=y
+CONFIG_LOONGSON2_PM=y
+CONFIG_PM_DEVFREQ=y
+CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
+CONFIG_DEVFREQ_GOV_PERFORMANCE=y
+CONFIG_DEVFREQ_GOV_POWERSAVE=y
+CONFIG_DEVFREQ_GOV_USERSPACE=y
+CONFIG_PWM=y
+CONFIG_EXT2_FS=y
+CONFIG_EXT2_FS_XATTR=y
+CONFIG_EXT2_FS_POSIX_ACL=y
+CONFIG_EXT2_FS_SECURITY=y
+CONFIG_EXT3_FS=y
+CONFIG_EXT3_FS_POSIX_ACL=y
+CONFIG_EXT3_FS_SECURITY=y
+CONFIG_JFS_FS=m
+CONFIG_JFS_POSIX_ACL=y
+CONFIG_JFS_SECURITY=y
+CONFIG_XFS_FS=y
+CONFIG_XFS_QUOTA=y
+CONFIG_XFS_POSIX_ACL=y
+CONFIG_GFS2_FS=m
+CONFIG_GFS2_FS_LOCKING_DLM=y
+CONFIG_OCFS2_FS=m
+CONFIG_BTRFS_FS=y
+CONFIG_BTRFS_FS_POSIX_ACL=y
+CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
+CONFIG_QFMT_V1=m
+CONFIG_QFMT_V2=m
+CONFIG_AUTOFS_FS=y
+CONFIG_FUSE_FS=m
+CONFIG_CUSE=m
+CONFIG_VIRTIO_FS=m
+CONFIG_OVERLAY_FS=y
+CONFIG_OVERLAY_FS_INDEX=y
+CONFIG_OVERLAY_FS_XINO_AUTO=y
+CONFIG_OVERLAY_FS_METACOPY=y
+CONFIG_FSCACHE=y
+CONFIG_CACHEFILES=m
+CONFIG_ISO9660_FS=y
+CONFIG_JOLIET=y
+CONFIG_ZISOFS=y
+CONFIG_UDF_FS=y
+CONFIG_MSDOS_FS=m
+CONFIG_VFAT_FS=m
+CONFIG_FAT_DEFAULT_CODEPAGE=936
+CONFIG_FAT_DEFAULT_IOCHARSET="gb2312"
+CONFIG_EXFAT_FS=m
+CONFIG_NTFS3_FS=m
+CONFIG_NTFS3_64BIT_CLUSTER=y
+CONFIG_NTFS3_LZX_XPRESS=y
+CONFIG_PROC_KCORE=y
+CONFIG_TMPFS=y
+CONFIG_TMPFS_POSIX_ACL=y
+CONFIG_HUGETLBFS=y
+CONFIG_CONFIGFS_FS=y
+CONFIG_ORANGEFS_FS=m
+CONFIG_ECRYPT_FS=m
+CONFIG_ECRYPT_FS_MESSAGING=y
+CONFIG_HFS_FS=m
+CONFIG_HFSPLUS_FS=m
+CONFIG_UBIFS_FS=m
+CONFIG_UBIFS_FS_ADVANCED_COMPR=y
+CONFIG_CRAMFS=m
+CONFIG_SQUASHFS=y
+CONFIG_SQUASHFS_XATTR=y
+CONFIG_SQUASHFS_LZ4=y
+CONFIG_SQUASHFS_LZO=y
+CONFIG_SQUASHFS_XZ=y
+CONFIG_MINIX_FS=m
+CONFIG_ROMFS_FS=m
+CONFIG_PSTORE=m
+CONFIG_SYSV_FS=m
+CONFIG_UFS_FS=m
+CONFIG_EROFS_FS=m
+CONFIG_EROFS_FS_ZIP_LZMA=y
+CONFIG_EROFS_FS_PCPU_KTHREAD=y
+CONFIG_NFS_FS=y
+CONFIG_NFS_V3_ACL=y
+CONFIG_NFS_V4=y
+CONFIG_NFS_V4_1=y
+CONFIG_NFS_V4_2=y
+CONFIG_ROOT_NFS=y
+CONFIG_NFSD=y
+CONFIG_NFSD_V3_ACL=y
+CONFIG_NFSD_V4=y
+CONFIG_NFSD_BLOCKLAYOUT=y
+CONFIG_CEPH_FS=m
+CONFIG_CEPH_FSCACHE=y
+CONFIG_CEPH_FS_POSIX_ACL=y
+CONFIG_CEPH_FS_SECURITY_LABEL=y
+CONFIG_CIFS=m
+# CONFIG_CIFS_DEBUG is not set
+CONFIG_9P_FS=y
+CONFIG_NLS_CODEPAGE_437=y
+CONFIG_NLS_CODEPAGE_936=y
+CONFIG_NLS_ASCII=y
+CONFIG_NLS_UTF8=y
+CONFIG_DLM=m
+CONFIG_KEY_DH_OPERATIONS=y
+CONFIG_SECURITY=y
+CONFIG_SECURITY_SELINUX=y
+CONFIG_SECURITY_SELINUX_BOOTPARAM=y
+CONFIG_SECURITY_APPARMOR=y
+CONFIG_SECURITY_YAMA=y
+CONFIG_DEFAULT_SECURITY_DAC=y
+CONFIG_CRYPTO_USER=m
+# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
+CONFIG_CRYPTO_PCRYPT=m
+CONFIG_CRYPTO_CRYPTD=m
+CONFIG_CRYPTO_ANUBIS=m
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_KHAZAD=m
+CONFIG_CRYPTO_SEED=m
+CONFIG_CRYPTO_SERPENT=m
+CONFIG_CRYPTO_TEA=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_VMAC=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_842=m
+CONFIG_CRYPTO_LZ4=m
+CONFIG_CRYPTO_LZ4HC=m
+CONFIG_CRYPTO_USER_API_HASH=m
+CONFIG_CRYPTO_USER_API_SKCIPHER=m
+CONFIG_CRYPTO_USER_API_RNG=m
+CONFIG_CRYPTO_USER_API_AEAD=m
+CONFIG_CRYPTO_CRC32_LOONGARCH=m
+CONFIG_CRYPTO_DEV_VIRTIO=m
+CONFIG_PRINTK_TIME=y
+CONFIG_STRIP_ASM_SYMS=y
+CONFIG_MAGIC_SYSRQ=y
+CONFIG_DEBUG_FS=y
+# CONFIG_SCHED_DEBUG is not set
+CONFIG_SCHEDSTATS=y
+# CONFIG_FTRACE is not set
diff --git a/main/linux-lts/lts.ppc64le.config b/main/linux-lts/lts.ppc64le.config
index 4139dd57e1a..0e3c524d17e 100644
--- a/main/linux-lts/lts.ppc64le.config
+++ b/main/linux-lts/lts.ppc64le.config
@@ -1,9 +1,9 @@
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
+CONFIG_NO_HZ_FULL=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_BPF_SYSCALL=y
-CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
CONFIG_SCHED_CORE=y
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
@@ -27,9 +27,8 @@ CONFIG_CGROUP_BPF=y
CONFIG_USER_NS=y
CONFIG_CHECKPOINT_RESTORE=y
CONFIG_BLK_DEV_INITRD=y
-# CONFIG_COMPAT_BRK is not set
-CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_PROFILING=y
+CONFIG_KEXEC=y
CONFIG_PPC64=y
CONFIG_POWER8_CPU=y
CONFIG_NR_CPUS=2048
@@ -45,48 +44,55 @@ CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y
CONFIG_HZ_100=y
CONFIG_PPC_TRANSACTIONAL_MEM=y
-CONFIG_KEXEC=y
CONFIG_IRQ_ALL_CPUS=y
-CONFIG_PPC_64K_PAGES=y
CONFIG_PPC_SUBPAGE_PROT=y
CONFIG_SCHED_SMT=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM_BOOK3S_64=m
CONFIG_KVM_BOOK3S_64_HV=m
CONFIG_KPROBES=y
-CONFIG_JUMP_LABEL=y
-CONFIG_STRICT_MODULE_RWX=y
CONFIG_GCC_PLUGIN_LATENT_ENTROPY=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_UNLOAD_TAINT_TRACKING=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_MODULE_SIG=y
+CONFIG_MODULE_SIG_SHA256=y
CONFIG_MODULE_COMPRESS_GZIP=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_IOSCHED_BFQ=y
CONFIG_BINFMT_MISC=m
+CONFIG_ZSWAP=y
+CONFIG_SLAB_FREELIST_RANDOM=y
+# CONFIG_COMPAT_BRK is not set
CONFIG_MEMORY_HOTPLUG=y
CONFIG_MEMORY_HOTREMOVE=y
CONFIG_KSM=y
CONFIG_TRANSPARENT_HUGEPAGE=y
-CONFIG_FRONTSWAP=y
CONFIG_CMA_AREAS=7
CONFIG_MEM_SOFT_DIRTY=y
-CONFIG_ZSWAP=y
+CONFIG_LRU_GEN=y
+CONFIG_LRU_GEN_ENABLED=y
CONFIG_NET=y
CONFIG_PACKET=y
-CONFIG_UNIX=y
CONFIG_TLS=m
CONFIG_XFRM_USER=m
CONFIG_XFRM_INTERFACE=m
CONFIG_NET_KEY=m
CONFIG_XDP_SOCKETS=y
-CONFIG_INET=y
CONFIG_IP_MULTICAST=y
+CONFIG_IP_ADVANCED_ROUTER=y
+CONFIG_IP_MULTIPLE_TABLES=y
+CONFIG_IP_ROUTE_MULTIPATH=y
+CONFIG_IP_ROUTE_VERBOSE=y
CONFIG_NET_IPIP=m
CONFIG_NET_IPGRE_DEMUX=m
CONFIG_NET_IPGRE=m
CONFIG_NET_IPGRE_BROADCAST=y
+CONFIG_IP_MROUTE=y
+CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
+CONFIG_IP_PIMSM_V2=y
CONFIG_NET_FOU_IP_TUNNELS=y
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
@@ -110,6 +116,7 @@ CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
CONFIG_IPV6_PIMSM_V2=y
CONFIG_IPV6_SEG6_LWTUNNEL=y
CONFIG_IPV6_SEG6_HMAC=y
+CONFIG_MPTCP=y
CONFIG_NETFILTER=y
CONFIG_BRIDGE_NETFILTER=m
CONFIG_NF_CONNTRACK=m
@@ -134,7 +141,6 @@ CONFIG_NF_TABLES_NETDEV=y
CONFIG_NFT_NUMGEN=m
CONFIG_NFT_CT=m
CONFIG_NFT_FLOW_OFFLOAD=m
-CONFIG_NFT_COUNTER=m
CONFIG_NFT_CONNLIMIT=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
@@ -148,14 +154,18 @@ CONFIG_NFT_REJECT=m
CONFIG_NFT_COMPAT=m
CONFIG_NFT_HASH=m
CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_XFRM=m
CONFIG_NFT_SOCKET=m
CONFIG_NFT_OSF=m
CONFIG_NFT_TPROXY=m
+CONFIG_NFT_SYNPROXY=m
CONFIG_NFT_DUP_NETDEV=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_REJECT_NETDEV=m
CONFIG_NF_FLOW_TABLE_INET=m
CONFIG_NF_FLOW_TABLE=m
+CONFIG_NF_FLOW_TABLE_PROCFS=y
CONFIG_NETFILTER_XT_SET=m
CONFIG_NETFILTER_XT_TARGET_AUDIT=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
@@ -261,7 +271,6 @@ CONFIG_IP_VS_PE_SIP=m
CONFIG_NFT_DUP_IPV4=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NF_TABLES_ARP=y
-CONFIG_NF_FLOW_TABLE_IPV4=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_IPV4=m
CONFIG_IP_NF_IPTABLES=m
@@ -277,7 +286,6 @@ CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_ARPTABLES=m
@@ -285,7 +293,6 @@ CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
-CONFIG_NF_FLOW_TABLE_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_EUI64=m
@@ -306,6 +313,8 @@ CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_TARGET_MASQUERADE=m
CONFIG_IP6_NF_TARGET_NPT=m
+CONFIG_NF_TABLES_BRIDGE=m
+CONFIG_NFT_BRIDGE_REJECT=m
CONFIG_NF_CONNTRACK_BRIDGE=m
CONFIG_BRIDGE=m
CONFIG_VLAN_8021Q=m
@@ -343,6 +352,10 @@ CONFIG_UEVENT_HELPER=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_DEVTMPFS_SAFE=y
+CONFIG_FW_LOADER_COMPRESS=y
+# CONFIG_FW_LOADER_COMPRESS_XZ is not set
+CONFIG_FW_LOADER_COMPRESS_ZSTD=y
CONFIG_MTD=y
CONFIG_MTD_BLOCK=y
CONFIG_MTD_POWERNV_FLASH=y
@@ -359,6 +372,7 @@ CONFIG_BLK_DEV_NVME=m
CONFIG_NVME_MULTIPATH=y
CONFIG_NVME_HWMON=y
CONFIG_NVME_RDMA=m
+CONFIG_NVME_TCP=m
CONFIG_NVME_TARGET=m
CONFIG_NVME_TARGET_LOOP=m
CONFIG_NVME_TARGET_RDMA=m
@@ -431,6 +445,7 @@ CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
CONFIG_IPVLAN=m
CONFIG_VXLAN=m
+CONFIG_BAREUDP=m
CONFIG_MACSEC=m
CONFIG_NETCONSOLE=m
CONFIG_TUN=m
@@ -452,7 +467,6 @@ CONFIG_IBMVNIC=m
CONFIG_E100=y
CONFIG_E1000=y
CONFIG_E1000E=y
-CONFIG_IXGB=m
CONFIG_IXGBE=m
CONFIG_I40E=m
CONFIG_ICE=m
@@ -462,7 +476,6 @@ CONFIG_MLX5_CORE=m
CONFIG_MLX5_FPGA=y
CONFIG_MLX5_CORE_EN=y
CONFIG_MLX5_CORE_IPOIB=y
-CONFIG_MLX5_FPGA_IPSEC=y
# CONFIG_NET_VENDOR_MICROSEMI is not set
# CONFIG_NET_VENDOR_MICROSOFT is not set
CONFIG_MYRI10GE=m
@@ -491,6 +504,7 @@ CONFIG_INPUT_EVDEV=m
# CONFIG_MOUSE_PS2 is not set
CONFIG_INPUT_MISC=y
# CONFIG_SERIO_SERPORT is not set
+# CONFIG_LEGACY_TIOCSTI is not set
# CONFIG_LDISC_AUTOLOAD is not set
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
@@ -648,11 +662,11 @@ CONFIG_LEDS_POWERNV=m
CONFIG_INFINIBAND=m
CONFIG_INFINIBAND_USER_MAD=m
CONFIG_INFINIBAND_USER_ACCESS=m
-CONFIG_INFINIBAND_MTHCA=m
CONFIG_INFINIBAND_CXGB4=m
CONFIG_INFINIBAND_IRDMA=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_INFINIBAND=m
+CONFIG_INFINIBAND_MTHCA=m
CONFIG_RDMA_RXE=m
CONFIG_INFINIBAND_IPOIB=m
CONFIG_INFINIBAND_IPOIB_CM=y
@@ -660,6 +674,8 @@ CONFIG_INFINIBAND_SRP=m
CONFIG_INFINIBAND_ISER=m
CONFIG_RTC_CLASS=y
CONFIG_RTC_DRV_GENERIC=m
+CONFIG_VFIO=m
+CONFIG_VFIO_PCI=m
CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_VDPA=m
CONFIG_VIRTIO_BALLOON=m
@@ -696,11 +712,12 @@ CONFIG_XFS_ONLINE_SCRUB=y
CONFIG_BTRFS_FS=m
CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_NILFS2_FS=m
-CONFIG_FS_DAX=y
CONFIG_FS_ENCRYPTION=y
CONFIG_FS_VERITY=y
CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
-CONFIG_AUTOFS4_FS=m
+CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
+CONFIG_AUTOFS_FS=m
CONFIG_FUSE_FS=m
CONFIG_VIRTIO_FS=m
CONFIG_OVERLAY_FS=m
@@ -722,7 +739,6 @@ CONFIG_HUGETLBFS=y
CONFIG_CONFIGFS_FS=m
CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_FILE_DIRECT=y
-CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
@@ -730,9 +746,6 @@ CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZSTD=y
CONFIG_SQUASHFS_4K_DEVBLK_SIZE=y
CONFIG_PSTORE=y
-CONFIG_PSTORE_DEFLATE_COMPRESS=m
-CONFIG_PSTORE_ZSTD_COMPRESS=y
-CONFIG_PSTORE_ZSTD_COMPRESS_DEFAULT=y
CONFIG_NFS_FS=m
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=m
@@ -744,7 +757,6 @@ CONFIG_NFSD_V4=y
CONFIG_NFSD_BLOCKLAYOUT=y
CONFIG_NFSD_SCSILAYOUT=y
CONFIG_NFSD_FLEXFILELAYOUT=y
-CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES=y
CONFIG_CIFS=m
# CONFIG_CIFS_STATS2 is not set
CONFIG_CIFS_UPCALL=y
@@ -815,7 +827,6 @@ CONFIG_SECURITY_LANDLOCK=y
# CONFIG_INTEGRITY is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,integrity"
-CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF=y
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
CONFIG_ZERO_CALL_USED_REGS=y
CONFIG_CRYPTO_USER=m
@@ -825,20 +836,19 @@ CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECDSA=m
CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_CURVE25519=m
-CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_CFB=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_BLAKE2S=m
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_SHA3=m
-CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_SM4=m
CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_ADIANTUM=m
+CONFIG_CRYPTO_CFB=m
+CONFIG_CRYPTO_HCTR2=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_AEGIS128=m
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_LZ4=m
CONFIG_CRYPTO_LZ4HC=m
@@ -850,10 +860,10 @@ CONFIG_CRYPTO_USER_API_AEAD=m
CONFIG_CRYPTO_DEV_NX=y
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_PKCS8_PRIVATE_KEY_PARSER=m
-CONFIG_CRC64=m
CONFIG_CONSOLE_LOGLEVEL_QUIET=3
-CONFIG_MAGIC_SYSRQ=y
+CONFIG_DYNAMIC_DEBUG=y
CONFIG_DEBUG_KERNEL=y
+CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_WX=y
CONFIG_DEBUG_STACK_USAGE=y
CONFIG_DEBUG_STACKOVERFLOW=y
@@ -861,6 +871,7 @@ CONFIG_HARDLOCKUP_DETECTOR=y
CONFIG_DETECT_HUNG_TASK=y
# CONFIG_RCU_TRACE is not set
CONFIG_LATENCYTOP=y
+CONFIG_FUNCTION_TRACER=y
CONFIG_SCHED_TRACER=y
CONFIG_FTRACE_SYSCALLS=y
CONFIG_BLK_DEV_IO_TRACE=y
diff --git a/main/linux-lts/lts.s390x.config b/main/linux-lts/lts.s390x.config
index 2a503501f79..51d0f5ce571 100644
--- a/main/linux-lts/lts.s390x.config
+++ b/main/linux-lts/lts.s390x.config
@@ -4,7 +4,6 @@ CONFIG_POSIX_MQUEUE=y
CONFIG_AUDIT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
-CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
CONFIG_SCHED_CORE=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
@@ -34,48 +33,47 @@ CONFIG_SCHED_AUTOGROUP=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_EXPERT=y
# CONFIG_SYSFS_SYSCALL is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_PROFILING=y
CONFIG_PCI_QUIRKS=y
CONFIG_LIVEPATCH=y
CONFIG_NR_CPUS=256
CONFIG_NUMA=y
CONFIG_HZ_100=y
-CONFIG_EXPOLINE=y
-CONFIG_EXPOLINE_AUTO=y
CONFIG_PCI_NR_FUNCTIONS=64
CONFIG_CMM=m
CONFIG_APPLDATA_BASE=y
CONFIG_KPROBES=y
-CONFIG_JUMP_LABEL=y
CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y
CONFIG_GCC_PLUGIN_LATENT_ENTROPY=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_UNLOAD_TAINT_TRACKING=y
CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SIG=y
+CONFIG_MODULE_SIG_SHA256=y
CONFIG_MODULE_COMPRESS_GZIP=y
CONFIG_BLK_DEV_THROTTLING=y
CONFIG_BLK_CGROUP_IOLATENCY=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_IBM_PARTITION=y
CONFIG_IOSCHED_BFQ=y
-CONFIG_BFQ_GROUP_IOSCHED=y
CONFIG_BINFMT_MISC=m
+CONFIG_ZSWAP=y
+CONFIG_ZSMALLOC=y
+CONFIG_SLAB_FREELIST_RANDOM=y
+# CONFIG_COMPAT_BRK is not set
CONFIG_MEMORY_HOTPLUG=y
CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y
CONFIG_MEMORY_HOTREMOVE=y
CONFIG_KSM=y
CONFIG_TRANSPARENT_HUGEPAGE=y
-CONFIG_FRONTSWAP=y
CONFIG_CMA_AREAS=7
CONFIG_MEM_SOFT_DIRTY=y
-CONFIG_ZSWAP=y
-CONFIG_ZSMALLOC=y
+CONFIG_LRU_GEN=y
+CONFIG_LRU_GEN_ENABLED=y
CONFIG_NET=y
CONFIG_PACKET=m
CONFIG_PACKET_DIAG=m
-CONFIG_UNIX=y
CONFIG_UNIX_DIAG=m
CONFIG_TLS=m
CONFIG_XFRM_USER=m
@@ -83,7 +81,6 @@ CONFIG_XFRM_INTERFACE=m
CONFIG_XFRM_SUB_POLICY=y
CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y
-CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
@@ -137,6 +134,7 @@ CONFIG_IPV6_PIMSM_V2=y
CONFIG_IPV6_SEG6_LWTUNNEL=y
CONFIG_IPV6_SEG6_HMAC=y
CONFIG_NETLABEL=y
+CONFIG_MPTCP=y
CONFIG_NETWORK_SECMARK=y
CONFIG_NETWORK_PHY_TIMESTAMPING=y
CONFIG_NETFILTER=y
@@ -167,7 +165,6 @@ CONFIG_NF_TABLES_NETDEV=y
CONFIG_NFT_NUMGEN=m
CONFIG_NFT_CT=m
CONFIG_NFT_FLOW_OFFLOAD=m
-CONFIG_NFT_COUNTER=m
CONFIG_NFT_CONNLIMIT=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
@@ -181,14 +178,18 @@ CONFIG_NFT_REJECT=m
CONFIG_NFT_COMPAT=m
CONFIG_NFT_HASH=m
CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_XFRM=m
CONFIG_NFT_SOCKET=m
CONFIG_NFT_OSF=m
CONFIG_NFT_TPROXY=m
+CONFIG_NFT_SYNPROXY=m
CONFIG_NFT_DUP_NETDEV=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_REJECT_NETDEV=m
CONFIG_NF_FLOW_TABLE_INET=m
CONFIG_NF_FLOW_TABLE=m
+CONFIG_NF_FLOW_TABLE_PROCFS=y
CONFIG_NETFILTER_XT_SET=m
CONFIG_NETFILTER_XT_TARGET_AUDIT=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
@@ -292,7 +293,6 @@ CONFIG_IP_VS_PE_SIP=m
CONFIG_NFT_DUP_IPV4=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NF_TABLES_ARP=y
-CONFIG_NF_FLOW_TABLE_IPV4=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_IPV4=m
CONFIG_IP_NF_IPTABLES=m
@@ -308,7 +308,6 @@ CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_RAW=m
@@ -318,7 +317,6 @@ CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
-CONFIG_NF_FLOW_TABLE_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_EUI64=m
@@ -383,7 +381,6 @@ CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q_MVRP=y
CONFIG_NET_SCHED=y
-CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_PRIO=m
@@ -395,7 +392,6 @@ CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_CBS=m
CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_MQPRIO=m
@@ -406,17 +402,15 @@ CONFIG_NET_SCH_FQ_CODEL=m
CONFIG_NET_SCH_FQ=m
CONFIG_NET_SCH_HHF=m
CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_FQ_PIE=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_SCH_PLUG=m
CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_PERF=y
CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_FLOW=m
CONFIG_NET_CLS_CGROUP=m
CONFIG_NET_CLS_BPF=m
@@ -490,11 +484,13 @@ CONFIG_HOTPLUG_PCI_S390=y
CONFIG_PCI_SW_SWITCHTEC=m
CONFIG_PCCARD=m
CONFIG_YENTA=m
-CONFIG_PD6729=m
-CONFIG_I82092=m
CONFIG_UEVENT_HELPER=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
+CONFIG_DEVTMPFS_SAFE=y
+CONFIG_FW_LOADER_COMPRESS=y
+# CONFIG_FW_LOADER_COMPRESS_XZ is not set
+CONFIG_FW_LOADER_COMPRESS_ZSTD=y
CONFIG_CONNECTOR=y
CONFIG_MTD=m
CONFIG_MTD_AR7_PARTS=m
@@ -517,7 +513,6 @@ CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
CONFIG_ZRAM=m
CONFIG_ZRAM_DEF_COMP_LZ4=y
CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_NBD=m
CONFIG_BLK_DEV_RAM=y
@@ -526,10 +521,10 @@ CONFIG_ATA_OVER_ETH=m
CONFIG_DASD=m
CONFIG_VIRTIO_BLK=m
CONFIG_BLK_DEV_RBD=m
-CONFIG_BLK_DEV_RSXX=m
CONFIG_BLK_DEV_NVME=m
CONFIG_NVME_MULTIPATH=y
CONFIG_NVME_RDMA=m
+CONFIG_NVME_TCP=m
CONFIG_NVME_TARGET=m
CONFIG_NVME_TARGET_LOOP=m
CONFIG_NVME_TARGET_RDMA=m
@@ -604,11 +599,6 @@ CONFIG_TCM_USER2=m
CONFIG_LOOPBACK_TARGET=m
CONFIG_TCM_FC=m
CONFIG_ISCSI_TARGET=m
-CONFIG_FUSION=y
-CONFIG_FUSION_SPI=m
-CONFIG_FUSION_FC=m
-CONFIG_FUSION_SAS=m
-CONFIG_FUSION_CTL=m
CONFIG_NETDEVICES=y
CONFIG_BONDING=m
CONFIG_DUMMY=m
@@ -626,6 +616,7 @@ CONFIG_MACVTAP=m
CONFIG_IPVLAN=m
CONFIG_VXLAN=m
CONFIG_GENEVE=m
+CONFIG_BAREUDP=m
CONFIG_MACSEC=m
CONFIG_NETCONSOLE=m
CONFIG_NETCONSOLE_DYNAMIC=y
@@ -730,6 +721,7 @@ CONFIG_INPUT_EVBUG=m
# CONFIG_INPUT_MOUSE is not set
CONFIG_VT_HW_CONSOLE_BINDING=y
# CONFIG_LEGACY_PTYS is not set
+# CONFIG_LEGACY_TIOCSTI is not set
# CONFIG_LDISC_AUTOLOAD is not set
CONFIG_SERIAL_RP2=m
CONFIG_N_GSM=m
@@ -811,15 +803,17 @@ CONFIG_NILFS2_FS=m
CONFIG_F2FS_FS=m
CONFIG_F2FS_FS_SECURITY=y
CONFIG_F2FS_FS_COMPRESSION=y
+CONFIG_F2FS_UNFAIR_RWSEM=y
CONFIG_FS_DAX=y
CONFIG_FS_ENCRYPTION=y
CONFIG_FS_VERITY=y
CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
CONFIG_QFMT_V1=m
CONFIG_QFMT_V2=m
-CONFIG_AUTOFS4_FS=m
+CONFIG_AUTOFS_FS=m
CONFIG_FUSE_FS=m
CONFIG_CUSE=m
CONFIG_VIRTIO_FS=m
@@ -851,7 +845,6 @@ CONFIG_ECRYPT_FS_MESSAGING=y
CONFIG_HFSPLUS_FS=m
CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_FILE_DIRECT=y
-CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
@@ -953,7 +946,6 @@ CONFIG_FORTIFY_SOURCE=y
CONFIG_SECURITY_YAMA=y
CONFIG_SECURITY_LANDLOCK=y
CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,integrity"
-CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF=y
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
CONFIG_ZERO_CALL_USED_REGS=y
CONFIG_CRYPTO_USER=m
@@ -964,24 +956,7 @@ CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECDSA=m
CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_CURVE25519=m
-CONFIG_CRYPTO_CHACHA20POLY1305=m
-CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_SEQIV=y
-CONFIG_CRYPTO_CFB=m
-CONFIG_CRYPTO_CTR=y
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_KEYWRAP=m
-CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-CONFIG_CRYPTO_BLAKE2S=m
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_SHA1=y
-CONFIG_CRYPTO_SHA3=m
-CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_ARC4=m
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m
CONFIG_CRYPTO_CAST5=m
@@ -990,9 +965,25 @@ CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_SEED=m
CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_SM4=m
CONFIG_CRYPTO_TEA=m
CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_ADIANTUM=m
+CONFIG_CRYPTO_ARC4=m
+CONFIG_CRYPTO_CFB=m
+CONFIG_CRYPTO_CTR=y
+CONFIG_CRYPTO_HCTR2=m
+CONFIG_CRYPTO_KEYWRAP=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_AEGIS128=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_SEQIV=y
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_SHA1=y
+CONFIG_CRYPTO_VMAC=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_LZ4=m
CONFIG_CRYPTO_LZ4HC=m
CONFIG_CRYPTO_ZSTD=m
@@ -1001,16 +992,16 @@ CONFIG_CRYPTO_USER_API_HASH=m
CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m
-CONFIG_ZCRYPT=m
-CONFIG_PKEY=m
-CONFIG_CRYPTO_PAES_S390=m
+CONFIG_CRYPTO_CRC32_S390=m
+CONFIG_CRYPTO_SHA512_S390=m
CONFIG_CRYPTO_SHA1_S390=m
CONFIG_CRYPTO_SHA256_S390=m
-CONFIG_CRYPTO_SHA512_S390=m
-CONFIG_CRYPTO_DES_S390=m
-CONFIG_CRYPTO_AES_S390=m
CONFIG_CRYPTO_GHASH_S390=m
-CONFIG_CRYPTO_CRC32_S390=m
+CONFIG_CRYPTO_AES_S390=m
+CONFIG_CRYPTO_DES_S390=m
+CONFIG_ZCRYPT=m
+CONFIG_PKEY=m
+CONFIG_CRYPTO_PAES_S390=m
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CORDIC=m
CONFIG_CRC_CCITT=y
@@ -1025,13 +1016,15 @@ CONFIG_CRC8=m
# CONFIG_XZ_DEC_SPARC is not set
CONFIG_PRINTK_TIME=y
CONFIG_CONSOLE_LOGLEVEL_QUIET=3
+CONFIG_DYNAMIC_DEBUG=y
+CONFIG_DEBUG_INFO_DWARF5=y
+CONFIG_DEBUG_INFO_BTF=y
CONFIG_FRAME_WARN=1280
CONFIG_MAGIC_SYSRQ=y
CONFIG_DEBUG_WX=y
CONFIG_DEBUG_KMEMLEAK=y
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
CONFIG_DEBUG_VM=y
-CONFIG_DEBUG_VM_VMACACHE=y
CONFIG_DEBUG_VM_RB=y
# CONFIG_DEBUG_VM_PGTABLE is not set
CONFIG_KFENCE=y
diff --git a/main/linux-lts/lts.x86.config b/main/linux-lts/lts.x86.config
index cfd3a857c7e..4ac1b89ea07 100644
--- a/main/linux-lts/lts.x86.config
+++ b/main/linux-lts/lts.x86.config
@@ -1,13 +1,11 @@
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
-# CONFIG_USELIB is not set
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT=y
CONFIG_BPF_JIT_ALWAYS_ON=y
-CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_SCHED_CORE=y
CONFIG_IRQ_TIME_ACCOUNTING=y
@@ -22,9 +20,11 @@ CONFIG_PSI_DEFAULT_DISABLED=y
CONFIG_IKCONFIG=m
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
+CONFIG_MEMCG=y
CONFIG_BLK_CGROUP=y
CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_FREEZER=y
+CONFIG_CPUSETS=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_BPF=y
@@ -35,9 +35,6 @@ CONFIG_BLK_DEV_INITRD=y
CONFIG_EXPERT=y
# CONFIG_SGETMASK_SYSCALL is not set
# CONFIG_SYSFS_SYSCALL is not set
-# CONFIG_SLUB_DEBUG is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_PROFILING=y
# CONFIG_64BIT is not set
CONFIG_SMP=y
@@ -56,10 +53,7 @@ CONFIG_PERF_EVENTS_AMD_POWER=m
CONFIG_PERF_EVENTS_AMD_UNCORE=m
# CONFIG_X86_16BIT is not set
CONFIG_TOSHIBA=m
-CONFIG_I8K=m
CONFIG_X86_REBOOTFIXUPS=y
-CONFIG_MICROCODE_AMD=y
-CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
CONFIG_X86_INTEL_TSX_MODE_AUTO=y
@@ -95,6 +89,7 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=m
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
CONFIG_X86_PCC_CPUFREQ=m
+CONFIG_X86_AMD_PSTATE=y
CONFIG_X86_ACPI_CPUFREQ=m
CONFIG_X86_POWERNOW_K8=m
CONFIG_X86_AMD_FREQ_SENSITIVITY=m
@@ -112,28 +107,31 @@ CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
CONFIG_KPROBES=y
-CONFIG_JUMP_LABEL=y
CONFIG_GCC_PLUGIN_LATENT_ENTROPY=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_UNLOAD_TAINT_TRACKING=y
CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SIG=y
+CONFIG_MODULE_SIG_SHA256=y
CONFIG_MODULE_COMPRESS_GZIP=y
CONFIG_BLK_DEV_THROTTLING=y
CONFIG_BLK_CGROUP_IOLATENCY=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_IOSCHED_BFQ=y
-CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_BINFMT_MISC=m
-CONFIG_KSM=y
-CONFIG_TRANSPARENT_HUGEPAGE=y
-CONFIG_FRONTSWAP=y
CONFIG_ZSWAP=y
CONFIG_ZSMALLOC=y
+CONFIG_SLAB_FREELIST_RANDOM=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_KSM=y
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_LRU_GEN=y
+CONFIG_LRU_GEN_ENABLED=y
CONFIG_NET=y
CONFIG_PACKET=m
CONFIG_PACKET_DIAG=m
-CONFIG_UNIX=y
CONFIG_UNIX_DIAG=m
CONFIG_TLS=m
CONFIG_XFRM_USER=m
@@ -143,7 +141,6 @@ CONFIG_XFRM_STATISTICS=y
CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y
CONFIG_XDP_SOCKETS=y
-CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
@@ -194,6 +191,7 @@ CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
CONFIG_IPV6_PIMSM_V2=y
CONFIG_IPV6_SEG6_LWTUNNEL=y
CONFIG_IPV6_SEG6_HMAC=y
+CONFIG_MPTCP=y
CONFIG_NETWORK_SECMARK=y
CONFIG_NETWORK_PHY_TIMESTAMPING=y
CONFIG_NETFILTER=y
@@ -224,7 +222,6 @@ CONFIG_NF_TABLES_NETDEV=y
CONFIG_NFT_NUMGEN=m
CONFIG_NFT_CT=m
CONFIG_NFT_FLOW_OFFLOAD=m
-CONFIG_NFT_COUNTER=m
CONFIG_NFT_CONNLIMIT=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
@@ -238,14 +235,18 @@ CONFIG_NFT_REJECT=m
CONFIG_NFT_COMPAT=m
CONFIG_NFT_HASH=m
CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_XFRM=m
CONFIG_NFT_SOCKET=m
CONFIG_NFT_OSF=m
CONFIG_NFT_TPROXY=m
+CONFIG_NFT_SYNPROXY=m
CONFIG_NFT_DUP_NETDEV=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_REJECT_NETDEV=m
CONFIG_NF_FLOW_TABLE_INET=m
CONFIG_NF_FLOW_TABLE=m
+CONFIG_NF_FLOW_TABLE_PROCFS=y
CONFIG_NETFILTER_XT_SET=m
CONFIG_NETFILTER_XT_TARGET_AUDIT=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
@@ -350,7 +351,6 @@ CONFIG_IP_VS_PE_SIP=m
CONFIG_NFT_DUP_IPV4=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NF_TABLES_ARP=y
-CONFIG_NF_FLOW_TABLE_IPV4=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_IPV4=m
CONFIG_IP_NF_IPTABLES=m
@@ -366,7 +366,6 @@ CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_RAW=m
@@ -375,7 +374,6 @@ CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
-CONFIG_NF_FLOW_TABLE_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_EUI64=m
@@ -396,7 +394,6 @@ CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_TARGET_MASQUERADE=m
CONFIG_IP6_NF_TARGET_NPT=m
-CONFIG_DECNET_NF_GRABULATOR=m
CONFIG_NF_TABLES_BRIDGE=m
CONFIG_NFT_BRIDGE_REJECT=m
CONFIG_NF_CONNTRACK_BRIDGE=m
@@ -439,8 +436,6 @@ CONFIG_BRIDGE_VLAN_FILTERING=y
CONFIG_NET_DSA=m
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
-CONFIG_DECNET=m
-CONFIG_DECNET_ROUTER=y
CONFIG_LLC2=m
CONFIG_ATALK=m
CONFIG_DEV_APPLETALK=m
@@ -460,10 +455,8 @@ CONFIG_IEEE802154=m
CONFIG_IEEE802154_6LOWPAN=m
CONFIG_MAC802154=m
CONFIG_NET_SCHED=y
-CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_MULTIQ=m
CONFIG_NET_SCH_RED=m
@@ -474,7 +467,6 @@ CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_CBS=m
CONFIG_NET_SCH_ETF=m
CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_MQPRIO=m
@@ -487,17 +479,15 @@ CONFIG_NET_SCH_CAKE=m
CONFIG_NET_SCH_FQ=m
CONFIG_NET_SCH_HHF=m
CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_FQ_PIE=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_SCH_PLUG=m
CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_PERF=y
CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_FLOW=m
CONFIG_NET_CLS_BPF=m
CONFIG_NET_CLS_FLOWER=m
@@ -535,6 +525,7 @@ CONFIG_OPENVSWITCH=m
CONFIG_VSOCKETS=m
CONFIG_VMWARE_VMCI_VSOCKETS=m
CONFIG_VIRTIO_VSOCKETS=m
+CONFIG_HYPERV_VSOCKETS=m
CONFIG_NETLINK_DIAG=y
CONFIG_MPLS_ROUTING=m
CONFIG_MPLS_IPTUNNEL=m
@@ -549,7 +540,6 @@ CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_CMTP=m
CONFIG_BT_HIDP=m
-CONFIG_BT_HS=y
CONFIG_BT_LEDS=y
# CONFIG_BT_DEBUGFS is not set
CONFIG_BT_HCIBTUSB=m
@@ -609,16 +599,11 @@ CONFIG_NFC_ST_NCI_I2C=m
CONFIG_NFC_ST_NCI_SPI=m
CONFIG_NFC_S3FWRN5_I2C=m
CONFIG_PCI=y
-CONFIG_PCIEPORTBUS=y
-CONFIG_HOTPLUG_PCI_PCIE=y
CONFIG_PCIEAER=y
CONFIG_PCIE_PTM=y
CONFIG_PCI_MSI=y
CONFIG_PCI_STUB=m
CONFIG_PCI_PF_STUB=m
-CONFIG_PCI_PRI=y
-CONFIG_PCI_PASID=y
-CONFIG_HOTPLUG_PCI=y
CONFIG_HOTPLUG_PCI_ACPI=y
CONFIG_HOTPLUG_PCI_ACPI_IBM=m
CONFIG_HOTPLUG_PCI_CPCI=y
@@ -633,14 +618,17 @@ CONFIG_UEVENT_HELPER=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_DEVTMPFS_SAFE=y
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
+CONFIG_FW_LOADER_COMPRESS=y
+# CONFIG_FW_LOADER_COMPRESS_XZ is not set
+CONFIG_FW_LOADER_COMPRESS_ZSTD=y
# CONFIG_ALLOW_DEV_COREDUMP is not set
CONFIG_DEBUG_DEVRES=y
CONFIG_CONNECTOR=y
CONFIG_EDD=m
CONFIG_FW_CFG_SYSFS=m
CONFIG_SYSFB_SIMPLEFB=y
-CONFIG_EFI_VARS=m
CONFIG_EFI_VARS_PSTORE=m
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
CONFIG_GNSS=m
@@ -697,27 +685,24 @@ CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
CONFIG_PARPORT_SERIAL=m
CONFIG_PARPORT_PC_PCMCIA=m
-CONFIG_PARPORT_AX88796=m
# CONFIG_PNP_DEBUG_MESSAGES is not set
CONFIG_BLK_DEV_FD=m
CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
CONFIG_ZRAM=m
CONFIG_ZRAM_DEF_COMP_LZ4=y
CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_SX8=m
CONFIG_BLK_DEV_RAM=y
CONFIG_CDROM_PKTCDVD=m
CONFIG_ATA_OVER_ETH=m
CONFIG_VIRTIO_BLK=m
CONFIG_BLK_DEV_RBD=m
-CONFIG_BLK_DEV_RSXX=m
CONFIG_BLK_DEV_NVME=m
CONFIG_NVME_MULTIPATH=y
CONFIG_NVME_HWMON=y
CONFIG_NVME_RDMA=m
+CONFIG_NVME_TCP=m
CONFIG_NVME_TARGET=m
CONFIG_NVME_TARGET_LOOP=m
CONFIG_NVME_TARGET_RDMA=m
@@ -789,7 +774,6 @@ CONFIG_SCSI_AIC94XX=m
CONFIG_SCSI_MVSAS=m
CONFIG_SCSI_MVSAS_TASKLET=y
CONFIG_SCSI_MVUMI=m
-CONFIG_SCSI_DPT_I2O=m
CONFIG_SCSI_ADVANSYS=m
CONFIG_SCSI_ARCMSR=m
CONFIG_SCSI_ESAS2R=m
@@ -801,9 +785,6 @@ CONFIG_MEGARAID_SAS=m
CONFIG_SCSI_MPT2SAS=m
CONFIG_SCSI_MPI3MR=m
CONFIG_SCSI_SMARTPQI=m
-CONFIG_SCSI_UFSHCD=m
-CONFIG_SCSI_UFSHCD_PCI=m
-CONFIG_SCSI_UFS_HPB=y
CONFIG_SCSI_HPTIOP=m
CONFIG_SCSI_BUSLOGIC=m
CONFIG_VMWARE_PVSCSI=m
@@ -894,7 +875,6 @@ CONFIG_PATA_MPIIX=m
CONFIG_PATA_NS87410=m
CONFIG_PATA_OPTI=m
CONFIG_PATA_PCMCIA=m
-CONFIG_PATA_PLATFORM=m
CONFIG_PATA_RZ1000=m
CONFIG_PATA_ACPI=m
CONFIG_ATA_GENERIC=m
@@ -965,6 +945,7 @@ CONFIG_MACVTAP=m
CONFIG_IPVLAN=m
CONFIG_VXLAN=m
CONFIG_GENEVE=m
+CONFIG_BAREUDP=m
CONFIG_MACSEC=m
CONFIG_NETCONSOLE=m
CONFIG_NETCONSOLE_DYNAMIC=y
@@ -990,12 +971,8 @@ CONFIG_ATM_DUMMY=m
CONFIG_ATM_TCP=m
CONFIG_ATM_LANAI=m
CONFIG_ATM_ENI=m
-CONFIG_ATM_FIRESTREAM=m
-CONFIG_ATM_ZATM=m
CONFIG_ATM_NICSTAR=m
CONFIG_ATM_IDT77252=m
-CONFIG_ATM_AMBASSADOR=m
-CONFIG_ATM_HORIZON=m
CONFIG_ATM_IA=m
CONFIG_ATM_FORE200E=m
CONFIG_ATM_FORE200E_USE_TASKLET=y
@@ -1011,7 +988,6 @@ CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_MV88E6XXX_PTP=y
CONFIG_NET_DSA_QCA8K=m
-CONFIG_NET_DSA_REALTEK_SMI=m
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_3C589=m
CONFIG_VORTEX=m
@@ -1045,7 +1021,6 @@ CONFIG_DNET=m
CONFIG_NET_TULIP=y
CONFIG_DE2104X=m
CONFIG_TULIP=m
-CONFIG_DE4X5=m
CONFIG_WINBOND_840=m
CONFIG_DM9102=m
CONFIG_ULI526X=m
@@ -1054,12 +1029,12 @@ CONFIG_DL2K=m
CONFIG_SUNDANCE=m
CONFIG_BE2NET=m
CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_GVE=m
CONFIG_E100=m
CONFIG_E1000=m
CONFIG_E1000E=m
CONFIG_IGB=m
CONFIG_IGBVF=m
-CONFIG_IXGB=m
CONFIG_IXGBE=m
CONFIG_IXGBEVF=m
CONFIG_I40E=m
@@ -1071,6 +1046,7 @@ CONFIG_SKGE_GENESIS=y
CONFIG_SKY2=m
CONFIG_MLX4_EN=m
CONFIG_MLX5_CORE=m
+CONFIG_MLX5_CORE_EN=y
CONFIG_KS8842=m
CONFIG_KS8851=m
CONFIG_KS8851_MLL=m
@@ -1085,7 +1061,6 @@ CONFIG_FEALNX=m
CONFIG_NATSEMI=m
CONFIG_NS83820=m
CONFIG_S2IO=m
-CONFIG_VXGE=m
CONFIG_NFP=m
# CONFIG_NFP_APP_FLOWER is not set
# CONFIG_NFP_APP_ABM_NIC is not set
@@ -1219,7 +1194,6 @@ CONFIG_USB_IPHETH=m
CONFIG_USB_SIERRA_NET=m
CONFIG_USB_VL600=m
CONFIG_USB_NET_CH9200=m
-CONFIG_USB_RTL8153_ECM=m
# CONFIG_WLAN_VENDOR_ADMTEK is not set
CONFIG_ATH5K=m
CONFIG_ATH9K=m
@@ -1341,11 +1315,10 @@ CONFIG_USB_ZD1201=m
CONFIG_ZD1211RW=m
CONFIG_PCMCIA_RAYCS=m
CONFIG_PCMCIA_WL3501=m
-CONFIG_MAC80211_HWSIM=m
CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_MAC80211_HWSIM=m
CONFIG_VIRT_WIFI=m
CONFIG_WAN=y
-CONFIG_LANMEDIA=m
CONFIG_HDLC=m
CONFIG_HDLC_RAW=m
CONFIG_HDLC_RAW_ETH=m
@@ -1425,11 +1398,9 @@ CONFIG_TOUCHSCREEN_ELO=m
CONFIG_TOUCHSCREEN_WACOM_W8001=m
CONFIG_TOUCHSCREEN_MTOUCH=m
CONFIG_TOUCHSCREEN_INEXIO=m
-CONFIG_TOUCHSCREEN_MK712=m
CONFIG_TOUCHSCREEN_PENMOUNT=m
CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
CONFIG_TOUCHSCREEN_TOUCHWIN=m
-CONFIG_TOUCHSCREEN_UCB1400=m
CONFIG_TOUCHSCREEN_PIXCIR=m
CONFIG_TOUCHSCREEN_WDT87XX_I2C=m
CONFIG_TOUCHSCREEN_WM97XX=m
@@ -1481,6 +1452,7 @@ CONFIG_SERIO_RAW=m
CONFIG_SERIO_ALTERA_PS2=m
CONFIG_SERIO_PS2MULT=m
# CONFIG_LEGACY_PTYS is not set
+# CONFIG_LEGACY_TIOCSTI is not set
# CONFIG_LDISC_AUTOLOAD is not set
CONFIG_SERIAL_8250=y
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
@@ -1499,6 +1471,7 @@ CONFIG_SERIAL_JSM=m
CONFIG_SERIAL_ALTERA_JTAGUART=m
CONFIG_SERIAL_ALTERA_UART=m
CONFIG_SERIAL_ARC=m
+CONFIG_IPWIRELESS=m
CONFIG_SERIAL_DEV_BUS=m
CONFIG_PRINTER=m
CONFIG_PPDEV=m
@@ -1511,16 +1484,14 @@ CONFIG_IPMI_POWEROFF=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_APPLICOM=m
-CONFIG_SYNCLINK_CS=m
-CONFIG_CARDMAN_4000=m
-CONFIG_CARDMAN_4040=m
-CONFIG_IPWIRELESS=m
CONFIG_MWAVE=m
CONFIG_HPET=y
# CONFIG_HPET_MMAP is not set
CONFIG_HANGCHECK_TIMER=m
CONFIG_TCG_TPM=m
CONFIG_TCG_TIS=m
+CONFIG_TCG_TIS_SPI=m
+CONFIG_TCG_TIS_SPI_CR50=y
CONFIG_TCG_NSC=m
CONFIG_TCG_ATMEL=m
CONFIG_TCG_INFINEON=m
@@ -1592,14 +1563,12 @@ CONFIG_GPIO_VX855=m
CONFIG_GPIO_SCH=m
CONFIG_GPIO_WINBOND=m
CONFIG_GPIO_WS16C48=m
-CONFIG_GPIO_ADP5588=m
CONFIG_GPIO_MAX7300=m
CONFIG_GPIO_MAX732X=m
CONFIG_GPIO_PCA953X=m
CONFIG_GPIO_PCF857X=m
CONFIG_GPIO_CS5535=m
CONFIG_GPIO_JANZ_TTL=m
-CONFIG_GPIO_UCB1400=m
CONFIG_GPIO_WHISKEY_COVE=m
CONFIG_GPIO_AMD8111=m
CONFIG_GPIO_ML_IOH=m
@@ -1614,7 +1583,6 @@ CONFIG_SENSORS_ABITUGURU3=m
CONFIG_SENSORS_AD7314=m
CONFIG_SENSORS_AD7414=m
CONFIG_SENSORS_AD7418=m
-CONFIG_SENSORS_ADM1021=m
CONFIG_SENSORS_ADM1025=m
CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
@@ -1669,7 +1637,6 @@ CONFIG_SENSORS_MAX1668=m
CONFIG_SENSORS_MAX197=m
CONFIG_SENSORS_MAX31722=m
CONFIG_SENSORS_MAX6639=m
-CONFIG_SENSORS_MAX6642=m
CONFIG_SENSORS_MAX6650=m
CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_MAX31790=m
@@ -1728,7 +1695,6 @@ CONFIG_SENSORS_SMSC47M192=m
CONFIG_SENSORS_SMSC47B397=m
CONFIG_SENSORS_SCH5627=m
CONFIG_SENSORS_SCH5636=m
-CONFIG_SENSORS_SMM665=m
CONFIG_SENSORS_ADC128D818=m
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
@@ -1811,19 +1777,15 @@ CONFIG_BCMA_DRIVER_GMAC_CMN=y
CONFIG_BCMA_DRIVER_GPIO=y
CONFIG_MFD_CS5535=m
CONFIG_MFD_AXP20X_I2C=m
-CONFIG_HTC_PASIC3=m
CONFIG_LPC_ICH=m
CONFIG_INTEL_SOC_PMIC_BXTWC=m
-CONFIG_INTEL_SOC_PMIC_CHTDC_TI=m
CONFIG_MFD_INTEL_LPSS_ACPI=m
CONFIG_MFD_INTEL_LPSS_PCI=m
CONFIG_MFD_INTEL_PMC_BXT=m
-CONFIG_MFD_INTEL_PMT=m
CONFIG_MFD_JANZ_CMODIO=m
CONFIG_MFD_PCF50633=m
CONFIG_PCF50633_ADC=m
CONFIG_PCF50633_GPIO=m
-CONFIG_UCB1400_CORE=m
CONFIG_MFD_SM501=m
CONFIG_TPS65010=m
CONFIG_TPS6507X=m
@@ -1831,33 +1793,33 @@ CONFIG_MFD_WL1273_CORE=m
CONFIG_RC_CORE=m
CONFIG_LIRC=y
CONFIG_RC_DECODERS=y
+CONFIG_IR_IMON_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
CONFIG_IR_NEC_DECODER=m
CONFIG_IR_RC5_DECODER=m
CONFIG_IR_RC6_DECODER=m
-CONFIG_IR_JVC_DECODER=m
-CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SHARP_DECODER=m
-CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_IR_SONY_DECODER=m
CONFIG_IR_XMP_DECODER=m
-CONFIG_IR_IMON_DECODER=m
CONFIG_RC_DEVICES=y
-CONFIG_RC_ATI_REMOTE=m
CONFIG_IR_ENE=m
+CONFIG_IR_FINTEK=m
+CONFIG_IR_IGORPLUGUSB=m
+CONFIG_IR_IGUANA=m
CONFIG_IR_IMON=m
CONFIG_IR_IMON_RAW=m
-CONFIG_IR_MCEUSB=m
CONFIG_IR_ITE_CIR=m
-CONFIG_IR_FINTEK=m
+CONFIG_IR_MCEUSB=m
CONFIG_IR_NUVOTON=m
CONFIG_IR_REDRAT3=m
+CONFIG_IR_SERIAL=m
CONFIG_IR_STREAMZAP=m
-CONFIG_IR_WINBOND_CIR=m
-CONFIG_IR_IGORPLUGUSB=m
-CONFIG_IR_IGUANA=m
CONFIG_IR_TTUSBIR=m
+CONFIG_IR_WINBOND_CIR=m
+CONFIG_RC_ATI_REMOTE=m
CONFIG_RC_LOOPBACK=m
-CONFIG_IR_SERIAL=m
# CONFIG_MEDIA_CEC_SUPPORT is not set
CONFIG_MEDIA_SUPPORT=m
CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
@@ -1865,11 +1827,7 @@ CONFIG_V4L2_FLASH_LED_CLASS=m
CONFIG_DVB_MAX_ADAPTERS=8
# CONFIG_DVB_DYNAMIC_MINORS is not set
CONFIG_MEDIA_USB_SUPPORT=y
-CONFIG_USB_VIDEO_CLASS=m
CONFIG_USB_GSPCA=m
-CONFIG_USB_M5602=m
-CONFIG_USB_STV06XX=m
-CONFIG_USB_GL860=m
CONFIG_USB_GSPCA_BENQ=m
CONFIG_USB_GSPCA_CONEX=m
CONFIG_USB_GSPCA_CPIA1=m
@@ -1913,40 +1871,16 @@ CONFIG_USB_GSPCA_TV8532=m
CONFIG_USB_GSPCA_VC032X=m
CONFIG_USB_GSPCA_VICAM=m
CONFIG_USB_GSPCA_ZC3XX=m
-CONFIG_USB_ZR364XX=m
-CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_GL860=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
CONFIG_USB_S2255=m
CONFIG_VIDEO_USBTV=m
+CONFIG_USB_VIDEO_CLASS=m
CONFIG_VIDEO_CX231XX=m
CONFIG_VIDEO_CX231XX_ALSA=m
CONFIG_VIDEO_CX231XX_DVB=m
-CONFIG_VIDEO_TM6000=m
-CONFIG_VIDEO_TM6000_ALSA=m
-CONFIG_VIDEO_TM6000_DVB=m
-CONFIG_DVB_USB=m
-CONFIG_DVB_USB_A800=m
-CONFIG_DVB_USB_DIBUSB_MB=m
-CONFIG_DVB_USB_DIBUSB_MC=m
-CONFIG_DVB_USB_DIB0700=m
-CONFIG_DVB_USB_UMT_010=m
-CONFIG_DVB_USB_CXUSB=m
-CONFIG_DVB_USB_M920X=m
-CONFIG_DVB_USB_DIGITV=m
-CONFIG_DVB_USB_VP7045=m
-CONFIG_DVB_USB_VP702X=m
-CONFIG_DVB_USB_GP8PSK=m
-CONFIG_DVB_USB_NOVA_T_USB2=m
-CONFIG_DVB_USB_TTUSB2=m
-CONFIG_DVB_USB_DTT200U=m
-CONFIG_DVB_USB_OPERA1=m
-CONFIG_DVB_USB_AF9005=m
-CONFIG_DVB_USB_AF9005_REMOTE=m
-CONFIG_DVB_USB_PCTV452E=m
-CONFIG_DVB_USB_DW2102=m
-CONFIG_DVB_USB_CINERGY_T2=m
-CONFIG_DVB_USB_DTV5100=m
-CONFIG_DVB_USB_AZ6027=m
-CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
CONFIG_DVB_USB_V2=m
CONFIG_DVB_USB_AF9015=m
CONFIG_DVB_USB_AF9035=m
@@ -1954,21 +1888,43 @@ CONFIG_DVB_USB_ANYSEE=m
CONFIG_DVB_USB_AU6610=m
CONFIG_DVB_USB_AZ6007=m
CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_DVBSKY=m
CONFIG_DVB_USB_EC168=m
CONFIG_DVB_USB_GL861=m
CONFIG_DVB_USB_LME2510=m
CONFIG_DVB_USB_MXL111SF=m
CONFIG_DVB_USB_RTL28XXU=m
-CONFIG_DVB_USB_DVBSKY=m
+CONFIG_DVB_USB=m
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_PCTV452E=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_VP7045=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
-CONFIG_DVB_B2C2_FLEXCOP_USB=m
CONFIG_VIDEO_EM28XX=m
CONFIG_VIDEO_EM28XX_V4L2=m
CONFIG_VIDEO_EM28XX_ALSA=m
CONFIG_VIDEO_EM28XX_DVB=m
CONFIG_MEDIA_PCI_SUPPORT=y
-CONFIG_VIDEO_MEYE=m
CONFIG_VIDEO_SOLO6X10=m
CONFIG_VIDEO_TW686X=m
CONFIG_VIDEO_CX18=m
@@ -1985,27 +1941,25 @@ CONFIG_VIDEO_SAA7134=m
CONFIG_VIDEO_SAA7134_ALSA=m
CONFIG_VIDEO_SAA7134_DVB=m
CONFIG_VIDEO_SAA7164=m
-CONFIG_DVB_BUDGET_CORE=m
-CONFIG_DVB_BUDGET=m
-CONFIG_DVB_BUDGET_CI=m
-CONFIG_DVB_BUDGET_AV=m
CONFIG_DVB_B2C2_FLEXCOP_PCI=m
-CONFIG_DVB_PLUTO2=m
+CONFIG_DVB_DDBRIDGE=m
CONFIG_DVB_DM1105=m
-CONFIG_DVB_PT1=m
CONFIG_MANTIS_CORE=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_HOPPER=m
+CONFIG_DVB_NETUP_UNIDVB=m
CONFIG_DVB_NGENE=m
-CONFIG_DVB_DDBRIDGE=m
+CONFIG_DVB_PLUTO2=m
+CONFIG_DVB_PT1=m
CONFIG_DVB_SMIPCIE=m
-CONFIG_DVB_NETUP_UNIDVB=m
CONFIG_VIDEO_IPU3_CIO2=m
-CONFIG_CIO2_BRIDGE=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
CONFIG_DVB_FIREDTV=m
CONFIG_CXD2880_SPI_DRV=m
CONFIG_DVB_DUMMY_FE=m
+CONFIG_AUXDISPLAY=y
+CONFIG_KS0108=m
+CONFIG_CFAG12864B=m
CONFIG_AGP=m
CONFIG_AGP_AMD64=m
CONFIG_AGP_INTEL=m
@@ -2024,13 +1978,11 @@ CONFIG_DRM_AMDGPU_SI=y
CONFIG_DRM_AMDGPU_CIK=y
CONFIG_DRM_AMDGPU_USERPTR=y
CONFIG_DRM_AMD_ACP=y
-CONFIG_DRM_AMD_DC_HDCP=y
CONFIG_DRM_AMD_DC_SI=y
CONFIG_DRM_NOUVEAU=m
CONFIG_DRM_I915=m
CONFIG_DRM_VGEM=m
CONFIG_DRM_VMWGFX=m
-CONFIG_DRM_VMWGFX_FBCON=y
CONFIG_DRM_GMA500=m
CONFIG_DRM_AST=m
CONFIG_DRM_MGAG200=m
@@ -2044,14 +1996,9 @@ CONFIG_DRM_SIMPLEDRM=m
CONFIG_DRM_VBOXVIDEO=m
CONFIG_DRM_GUD=m
CONFIG_DRM_HYPERV=m
-CONFIG_DRM_TDFX=m
-CONFIG_DRM_R128=m
-CONFIG_DRM_I810=m
-CONFIG_DRM_MGA=m
-CONFIG_DRM_SIS=m
-CONFIG_DRM_VIA=m
-CONFIG_DRM_SAVAGE=m
CONFIG_FB=y
+CONFIG_FB_EFI=y
+CONFIG_FB_TRIDENT=m
CONFIG_FB_TILEBLITTING=y
CONFIG_LCD_CLASS_DEVICE=m
CONFIG_LCD_L4F00242T03=m
@@ -2068,7 +2015,7 @@ CONFIG_BACKLIGHT_PWM=m
CONFIG_BACKLIGHT_SAHARA=m
CONFIG_BACKLIGHT_ADP8860=m
CONFIG_BACKLIGHT_PCF50633=m
-CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
CONFIG_SOUND=m
CONFIG_SND=m
@@ -2308,7 +2255,6 @@ CONFIG_HID_ALPS=m
CONFIG_USB_HIDDEV=y
CONFIG_I2C_HID_ACPI=m
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-CONFIG_USB_OTG=y
CONFIG_USB_LEDS_TRIGGER_USBPORT=m
CONFIG_USB_MON=m
CONFIG_USB_C67X00_HCD=m
@@ -2322,7 +2268,6 @@ CONFIG_USB_ISP116X_HCD=m
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_OHCI_HCD_SSB=y
CONFIG_USB_UHCI_HCD=m
-CONFIG_USB_U132_HCD=m
CONFIG_USB_SL811_HCD=m
CONFIG_USB_SL811_HCD_ISO=y
CONFIG_USB_SL811_CS=m
@@ -2347,7 +2292,6 @@ CONFIG_USB_UAS=m
CONFIG_USBIP_CORE=m
CONFIG_USBIP_VHCI_HCD=m
CONFIG_USBIP_HOST=m
-CONFIG_USB_USS720=m
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_SIMPLE=m
@@ -2396,6 +2340,7 @@ CONFIG_USB_SERIAL_XSENS_MT=m
CONFIG_USB_SERIAL_QT2=m
CONFIG_USB_SERIAL_XR=m
CONFIG_USB_SERIAL_DEBUG=m
+CONFIG_USB_USS720=m
CONFIG_USB_EMI62=m
CONFIG_USB_EMI26=m
CONFIG_USB_ADUTUX=m
@@ -2404,7 +2349,6 @@ CONFIG_USB_LCD=m
CONFIG_USB_CYPRESS_CY7C63=m
CONFIG_USB_CYTHERM=m
CONFIG_USB_IDMOUSE=m
-CONFIG_USB_FTDI_ELAN=m
CONFIG_APPLE_MFI_FASTCHARGE=m
CONFIG_USB_SISUSBVGA=m
CONFIG_USB_LD=m
@@ -2446,6 +2390,8 @@ CONFIG_MMC_REALTEK_USB=m
CONFIG_MMC_HSQ=m
CONFIG_MMC_TOSHIBA_PCI=m
CONFIG_MMC_MTK=m
+CONFIG_SCSI_UFSHCD=m
+CONFIG_SCSI_UFSHCD_PCI=m
CONFIG_MEMSTICK=m
CONFIG_MSPRO_BLOCK=m
CONFIG_MEMSTICK_TIFM_MS=m
@@ -2459,7 +2405,6 @@ CONFIG_LEDS_APU=m
CONFIG_LEDS_LM3530=m
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
-CONFIG_LEDS_CLEVO_MAIL=m
CONFIG_LEDS_REGULATOR=m
CONFIG_LEDS_INTEL_SS4200=m
CONFIG_LEDS_LT3593=m
@@ -2475,7 +2420,6 @@ CONFIG_LEDS_TRIGGER_MTD=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_BACKLIGHT=m
CONFIG_LEDS_TRIGGER_ACTIVITY=m
-CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
CONFIG_LEDS_TRIGGER_TRANSIENT=m
CONFIG_LEDS_TRIGGER_CAMERA=m
@@ -2497,11 +2441,11 @@ CONFIG_SPEAKUP_SYNTH_TXPRT=m
CONFIG_INFINIBAND=m
CONFIG_INFINIBAND_USER_MAD=m
CONFIG_INFINIBAND_USER_ACCESS=m
-CONFIG_INFINIBAND_MTHCA=m
-# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
CONFIG_INFINIBAND_CXGB4=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_INFINIBAND=m
+CONFIG_INFINIBAND_MTHCA=m
+# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
CONFIG_INFINIBAND_IPOIB=m
# CONFIG_INFINIBAND_IPOIB_DEBUG is not set
CONFIG_INFINIBAND_SRP=m
@@ -2559,17 +2503,12 @@ 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_PCF50633=m
CONFIG_DMADEVICES=y
CONFIG_PCH_DMA=m
CONFIG_QCOM_HIDMA_MGMT=m
CONFIG_DMATEST=m
-CONFIG_AUXDISPLAY=y
-CONFIG_KS0108=m
-CONFIG_CFAG12864B=m
CONFIG_UIO_CIF=m
CONFIG_UIO_PDRV_GENIRQ=m
CONFIG_UIO_AEC=m
@@ -2601,6 +2540,16 @@ CONFIG_HYPERV_BALLOON=m
CONFIG_STAGING=y
CONFIG_RTLLIB=m
CONFIG_RTL8723BS=m
+CONFIG_R8712U=m
+CONFIG_CHROME_PLATFORMS=y
+CONFIG_CHROMEOS_ACPI=m
+CONFIG_CHROMEOS_LAPTOP=m
+CONFIG_CHROMEOS_PSTORE=m
+CONFIG_CROS_KBD_LED_BACKLIGHT=m
+CONFIG_CHROMEOS_PRIVACY_SCREEN=m
+CONFIG_MELLANOX_PLATFORM=y
+CONFIG_MLXREG_HOTPLUG=m
+CONFIG_MLXREG_IO=m
CONFIG_GIGABYTE_WMI=m
CONFIG_ACERHDF=m
CONFIG_ACER_WIRELESS=m
@@ -2618,9 +2567,7 @@ CONFIG_DELL_WMI_PRIVACY=y
CONFIG_AMILO_RFKILL=m
CONFIG_FUJITSU_LAPTOP=m
CONFIG_GPD_POCKET_FAN=m
-CONFIG_HP_ACCEL=m
CONFIG_WIRELESS_HOTKEY=y
-CONFIG_HP_WMI=m
CONFIG_IDEAPAD_LAPTOP=m
CONFIG_SENSORS_HDAPS=m
CONFIG_THINKPAD_ACPI=m
@@ -2634,7 +2581,6 @@ CONFIG_INTEL_HID_EVENT=m
CONFIG_INTEL_VBTN=m
CONFIG_INTEL_OAKTRAIL=m
CONFIG_INTEL_BXTWC_PMIC_TMU=m
-CONFIG_INTEL_CHTDC_TI_PWRBTN=m
CONFIG_INTEL_PUNIT_IPC=m
CONFIG_MSI_LAPTOP=m
CONFIG_MSI_WMI=m
@@ -2645,16 +2591,8 @@ CONFIG_ACPI_CMPC=m
CONFIG_COMPAL_LAPTOP=m
CONFIG_PANASONIC_LAPTOP=m
CONFIG_SONY_LAPTOP=m
-CONFIG_I2C_MULTI_INSTANTIATE=m
CONFIG_MLX_PLATFORM=m
CONFIG_INTEL_IPS=m
-CONFIG_CHROME_PLATFORMS=y
-CONFIG_CHROMEOS_LAPTOP=m
-CONFIG_CHROMEOS_PSTORE=m
-CONFIG_CROS_KBD_LED_BACKLIGHT=m
-CONFIG_MELLANOX_PLATFORM=y
-CONFIG_MLXREG_HOTPLUG=m
-CONFIG_MLXREG_IO=m
CONFIG_COMMON_CLK_SI544=m
CONFIG_XILINX_VCU=m
CONFIG_INTEL_IOMMU=y
@@ -2693,7 +2631,6 @@ CONFIG_PWM_PCA9685=m
CONFIG_POWERCAP=y
CONFIG_INTEL_RAPL=m
CONFIG_USB4=m
-CONFIG_DEV_DAX=m
CONFIG_NVMEM_RMEM=m
CONFIG_EXT2_FS=m
CONFIG_EXT2_FS_XATTR=y
@@ -2725,16 +2662,17 @@ CONFIG_NILFS2_FS=m
CONFIG_F2FS_FS=m
# CONFIG_F2FS_STAT_FS is not set
CONFIG_F2FS_FS_COMPRESSION=y
-CONFIG_FS_DAX=y
+CONFIG_F2FS_UNFAIR_RWSEM=y
CONFIG_FS_ENCRYPTION=y
CONFIG_FS_VERITY=y
CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
# CONFIG_DNOTIFY is not set
+CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
CONFIG_QFMT_V1=m
CONFIG_QFMT_V2=m
-CONFIG_AUTOFS4_FS=m
+CONFIG_AUTOFS_FS=m
CONFIG_FUSE_FS=m
CONFIG_VIRTIO_FS=m
CONFIG_OVERLAY_FS=m
@@ -2770,7 +2708,6 @@ CONFIG_JFFS2_RUBIN=y
CONFIG_UBIFS_FS=m
CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_FILE_DIRECT=y
-CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
@@ -2781,9 +2718,6 @@ CONFIG_MINIX_FS=m
CONFIG_OMFS_FS=m
CONFIG_HPFS_FS=m
CONFIG_ROMFS_FS=m
-CONFIG_PSTORE_DEFLATE_COMPRESS=m
-CONFIG_PSTORE_ZSTD_COMPRESS=y
-CONFIG_PSTORE_ZSTD_COMPRESS_DEFAULT=y
CONFIG_PSTORE_RAM=m
CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m
@@ -2798,7 +2732,6 @@ CONFIG_NFSD_V4=y
CONFIG_NFSD_BLOCKLAYOUT=y
CONFIG_NFSD_SCSILAYOUT=y
CONFIG_NFSD_FLEXFILELAYOUT=y
-CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -2879,7 +2812,6 @@ CONFIG_SECURITY_LANDLOCK=y
# CONFIG_INTEGRITY is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,integrity"
-CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF=y
CONFIG_GCC_PLUGIN_STACKLEAK=y
CONFIG_STACKLEAK_RUNTIME_DISABLE=y
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
@@ -2890,37 +2822,31 @@ CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_ECDSA=m
CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_CURVE25519=m
-CONFIG_CRYPTO_CHACHA20POLY1305=m
-CONFIG_CRYPTO_AEGIS128=m
+CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_ADIANTUM=m
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_CFB=m
CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_HCTR2=m
+CONFIG_CRYPTO_KEYWRAP=m
CONFIG_CRYPTO_LRW=m
CONFIG_CRYPTO_PCBC=m
CONFIG_CRYPTO_XTS=y
-CONFIG_CRYPTO_KEYWRAP=m
-CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-CONFIG_CRYPTO_CRC32_PCLMUL=m
-CONFIG_CRYPTO_BLAKE2S=m
+CONFIG_CRYPTO_AEGIS128=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_RMD160=m
CONFIG_CRYPTO_SHA512=y
-CONFIG_CRYPTO_SHA3=m
+CONFIG_CRYPTO_VMAC=m
CONFIG_CRYPTO_WP512=m
-CONFIG_CRYPTO_AES=y
-CONFIG_CRYPTO_AES_NI_INTEL=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_CAMELLIA=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_FCRYPT=m
-CONFIG_CRYPTO_SERPENT_SSE2_586=m
-CONFIG_CRYPTO_SM4=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_586=m
+CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_LZ4=m
CONFIG_CRYPTO_LZ4HC=m
@@ -2930,6 +2856,10 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
+CONFIG_CRYPTO_AES_NI_INTEL=m
+CONFIG_CRYPTO_SERPENT_SSE2_586=m
+CONFIG_CRYPTO_TWOFISH_586=m
+CONFIG_CRYPTO_CRC32_PCLMUL=m
CONFIG_CRYPTO_DEV_PADLOCK=m
CONFIG_CRYPTO_DEV_PADLOCK_AES=m
CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
@@ -2952,8 +2882,11 @@ CONFIG_SECONDARY_TRUSTED_KEYRING=y
CONFIG_CRC_T10DIF=y
CONFIG_PRINTK_TIME=y
CONFIG_CONSOLE_LOGLEVEL_QUIET=3
+CONFIG_DYNAMIC_DEBUG=y
+CONFIG_DEBUG_INFO_DWARF5=y
CONFIG_FRAME_WARN=1024
CONFIG_MAGIC_SYSRQ=y
+# CONFIG_SLUB_DEBUG is not set
CONFIG_DEBUG_KMEMLEAK=y
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
CONFIG_DEBUG_STACKOVERFLOW=y
diff --git a/main/linux-lts/lts.x86_64.config b/main/linux-lts/lts.x86_64.config
index 6e5d0d3cf06..2a7b1e023f0 100644
--- a/main/linux-lts/lts.x86_64.config
+++ b/main/linux-lts/lts.x86_64.config
@@ -1,13 +1,12 @@
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
-# CONFIG_USELIB is not set
+CONFIG_NO_HZ_FULL=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT=y
CONFIG_BPF_JIT_ALWAYS_ON=y
-CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
CONFIG_PREEMPT_VOLUNTARY=y
CONFIG_SCHED_CORE=y
CONFIG_IRQ_TIME_ACCOUNTING=y
@@ -21,7 +20,6 @@ CONFIG_PSI=y
CONFIG_PSI_DEFAULT_DISABLED=y
CONFIG_IKCONFIG=m
CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=14
CONFIG_MEMCG=y
CONFIG_BLK_CGROUP=y
CONFIG_CFS_BANDWIDTH=y
@@ -42,34 +40,33 @@ CONFIG_BLK_DEV_INITRD=y
CONFIG_EXPERT=y
# CONFIG_SGETMASK_SYSCALL is not set
# CONFIG_SYSFS_SYSCALL is not set
-# CONFIG_SLUB_DEBUG is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_PROFILING=y
+CONFIG_KEXEC=y
CONFIG_SMP=y
+CONFIG_X86_CPU_RESCTRL=y
CONFIG_X86_INTEL_LPSS=y
CONFIG_X86_AMD_PLATFORM_DEVICE=y
CONFIG_HYPERVISOR_GUEST=y
CONFIG_XEN=y
CONFIG_XEN_PVH=y
+CONFIG_INTEL_TDX_GUEST=y
CONFIG_GART_IOMMU=y
CONFIG_NR_CPUS=256
CONFIG_PERF_EVENTS_INTEL_RAPL=m
CONFIG_PERF_EVENTS_INTEL_CSTATE=m
CONFIG_PERF_EVENTS_AMD_POWER=m
CONFIG_PERF_EVENTS_AMD_UNCORE=m
+CONFIG_PERF_EVENTS_AMD_BRS=y
# CONFIG_X86_16BIT is not set
-CONFIG_I8K=m
-CONFIG_MICROCODE_AMD=y
-CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
# CONFIG_X86_5LEVEL is not set
CONFIG_NUMA=y
-CONFIG_X86_PMEM_LEGACY=y
+CONFIG_ARCH_MEMORY_PROBE=y
CONFIG_X86_INTEL_TSX_MODE_AUTO=y
CONFIG_EFI=y
CONFIG_EFI_STUB=y
+CONFIG_EFI_MIXED=y
CONFIG_HZ_300=y
CONFIG_PHYSICAL_ALIGN=0x1000000
CONFIG_LEGACY_VSYSCALL_NONE=y
@@ -88,6 +85,7 @@ CONFIG_ACPI_IPMI=m
CONFIG_ACPI_PROCESSOR_AGGREGATOR=m
CONFIG_ACPI_THERMAL=m
CONFIG_ACPI_PCI_SLOT=y
+CONFIG_ACPI_HOTPLUG_MEMORY=y
CONFIG_ACPI_SBS=m
CONFIG_ACPI_HED=m
CONFIG_ACPI_BGRT=y
@@ -98,6 +96,7 @@ CONFIG_ACPI_APEI_ERST_DEBUG=y
CONFIG_ACPI_EXTLOG=y
CONFIG_ACPI_CONFIGFS=m
CONFIG_PMIC_OPREGION=y
+CONFIG_BYTCRC_PMIC_OPREGION=y
CONFIG_XPOWER_PMIC_OPREGION=y
CONFIG_BXT_WC_PMIC_OPREGION=y
CONFIG_CPU_FREQ_STAT=y
@@ -106,6 +105,8 @@ CONFIG_CPU_FREQ_GOV_USERSPACE=m
CONFIG_CPU_FREQ_GOV_ONDEMAND=y
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m
CONFIG_X86_PCC_CPUFREQ=m
+CONFIG_X86_AMD_PSTATE=y
+CONFIG_X86_AMD_PSTATE_UT=m
CONFIG_X86_ACPI_CPUFREQ=m
CONFIG_X86_POWERNOW_K8=m
CONFIG_X86_AMD_FREQ_SENSITIVITY=m
@@ -120,12 +121,14 @@ CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
CONFIG_KPROBES=y
-CONFIG_JUMP_LABEL=y
CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y
CONFIG_GCC_PLUGIN_LATENT_ENTROPY=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_UNLOAD_TAINT_TRACKING=y
CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SIG=y
+CONFIG_MODULE_SIG_SHA256=y
CONFIG_MODULE_COMPRESS_GZIP=y
CONFIG_BLK_DEV_THROTTLING=y
CONFIG_BLK_CGROUP_IOLATENCY=y
@@ -133,19 +136,24 @@ CONFIG_PARTITION_ADVANCED=y
CONFIG_MAC_PARTITION=y
CONFIG_LDM_PARTITION=y
CONFIG_IOSCHED_BFQ=y
-CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_BINFMT_MISC=m
+CONFIG_ZSWAP=y
+CONFIG_ZSMALLOC=y
+CONFIG_SLAB_FREELIST_RANDOM=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y
+CONFIG_MEMORY_HOTREMOVE=y
CONFIG_KSM=y
CONFIG_TRANSPARENT_HUGEPAGE=y
-CONFIG_FRONTSWAP=y
CONFIG_MEM_SOFT_DIRTY=y
-CONFIG_ZSWAP=y
-CONFIG_ZSMALLOC=y
+CONFIG_ZONE_DEVICE=y
+CONFIG_LRU_GEN=y
+CONFIG_LRU_GEN_ENABLED=y
CONFIG_NET=y
CONFIG_PACKET=m
CONFIG_PACKET_DIAG=m
-CONFIG_UNIX=y
CONFIG_UNIX_DIAG=m
CONFIG_TLS=m
CONFIG_XFRM_USER=m
@@ -155,7 +163,6 @@ CONFIG_XFRM_STATISTICS=y
CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y
CONFIG_XDP_SOCKETS=y
-CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
@@ -206,6 +213,7 @@ CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
CONFIG_IPV6_PIMSM_V2=y
CONFIG_IPV6_SEG6_LWTUNNEL=y
CONFIG_IPV6_SEG6_HMAC=y
+CONFIG_MPTCP=y
CONFIG_NETWORK_SECMARK=y
CONFIG_NETWORK_PHY_TIMESTAMPING=y
CONFIG_NETFILTER=y
@@ -236,7 +244,6 @@ CONFIG_NF_TABLES_NETDEV=y
CONFIG_NFT_NUMGEN=m
CONFIG_NFT_CT=m
CONFIG_NFT_FLOW_OFFLOAD=m
-CONFIG_NFT_COUNTER=m
CONFIG_NFT_CONNLIMIT=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
@@ -250,14 +257,18 @@ CONFIG_NFT_REJECT=m
CONFIG_NFT_COMPAT=m
CONFIG_NFT_HASH=m
CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_XFRM=m
CONFIG_NFT_SOCKET=m
CONFIG_NFT_OSF=m
CONFIG_NFT_TPROXY=m
+CONFIG_NFT_SYNPROXY=m
CONFIG_NFT_DUP_NETDEV=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_REJECT_NETDEV=m
CONFIG_NF_FLOW_TABLE_INET=m
CONFIG_NF_FLOW_TABLE=m
+CONFIG_NF_FLOW_TABLE_PROCFS=y
CONFIG_NETFILTER_XT_SET=m
CONFIG_NETFILTER_XT_TARGET_AUDIT=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
@@ -362,7 +373,6 @@ CONFIG_IP_VS_PE_SIP=m
CONFIG_NFT_DUP_IPV4=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NF_TABLES_ARP=y
-CONFIG_NF_FLOW_TABLE_IPV4=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_IPV4=m
CONFIG_IP_NF_IPTABLES=m
@@ -378,7 +388,6 @@ CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_RAW=m
@@ -387,7 +396,6 @@ CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
-CONFIG_NF_FLOW_TABLE_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_EUI64=m
@@ -408,7 +416,6 @@ CONFIG_IP6_NF_RAW=m
CONFIG_IP6_NF_NAT=m
CONFIG_IP6_NF_TARGET_MASQUERADE=m
CONFIG_IP6_NF_TARGET_NPT=m
-CONFIG_DECNET_NF_GRABULATOR=m
CONFIG_NF_TABLES_BRIDGE=m
CONFIG_NFT_BRIDGE_REJECT=m
CONFIG_NF_CONNTRACK_BRIDGE=m
@@ -449,10 +456,9 @@ CONFIG_L2TP_ETH=m
CONFIG_BRIDGE=m
CONFIG_BRIDGE_VLAN_FILTERING=y
CONFIG_NET_DSA=m
+CONFIG_NET_DSA_TAG_RTL8_4=m
CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
-CONFIG_DECNET=m
-CONFIG_DECNET_ROUTER=y
CONFIG_LLC2=m
CONFIG_ATALK=m
CONFIG_DEV_APPLETALK=m
@@ -472,10 +478,8 @@ CONFIG_IEEE802154=m
CONFIG_IEEE802154_6LOWPAN=m
CONFIG_MAC802154=m
CONFIG_NET_SCHED=y
-CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_ATM=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_MULTIQ=m
CONFIG_NET_SCH_RED=m
@@ -486,7 +490,6 @@ CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_CBS=m
CONFIG_NET_SCH_ETF=m
CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_MQPRIO=m
@@ -499,17 +502,15 @@ CONFIG_NET_SCH_CAKE=m
CONFIG_NET_SCH_FQ=m
CONFIG_NET_SCH_HHF=m
CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_FQ_PIE=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_SCH_PLUG=m
CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_PERF=y
CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_FLOW=m
CONFIG_NET_CLS_BPF=m
CONFIG_NET_CLS_FLOWER=m
@@ -548,6 +549,7 @@ CONFIG_OPENVSWITCH=m
CONFIG_VSOCKETS=m
CONFIG_VMWARE_VMCI_VSOCKETS=m
CONFIG_VIRTIO_VSOCKETS=m
+CONFIG_HYPERV_VSOCKETS=m
CONFIG_NETLINK_DIAG=y
CONFIG_MPLS_ROUTING=m
CONFIG_MPLS_IPTUNNEL=m
@@ -558,25 +560,6 @@ CONFIG_CAN=y
CONFIG_CAN_RAW=m
CONFIG_CAN_BCM=m
CONFIG_CAN_GW=m
-CONFIG_CAN_VCAN=m
-CONFIG_CAN_VXCAN=m
-CONFIG_CAN_SLCAN=m
-CONFIG_CAN_DEV=m
-CONFIG_CAN_PEAK_PCIEFD=m
-CONFIG_CAN_SJA1000=m
-CONFIG_CAN_EMS_PCI=m
-CONFIG_CAN_KVASER_PCI=m
-CONFIG_CAN_PEAK_PCI=m
-CONFIG_CAN_PLX_PCI=m
-CONFIG_CAN_SOFTING=m
-CONFIG_CAN_8DEV_USB=m
-CONFIG_CAN_EMS_USB=m
-CONFIG_CAN_ESD_USB2=m
-CONFIG_CAN_GS_USB=m
-CONFIG_CAN_KVASER_USB=m
-CONFIG_CAN_MCBA_USB=m
-CONFIG_CAN_PEAK_USB=m
-CONFIG_CAN_UCAN=m
CONFIG_BT=m
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
@@ -585,11 +568,11 @@ CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_CMTP=m
CONFIG_BT_HIDP=m
-CONFIG_BT_HS=y
CONFIG_BT_LEDS=y
# CONFIG_BT_DEBUGFS is not set
CONFIG_BT_HCIBTUSB=m
CONFIG_BT_HCIBTUSB_AUTOSUSPEND=y
+CONFIG_BT_HCIBTUSB_MTK=y
CONFIG_BT_HCIBTSDIO=m
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_BCSP=y
@@ -648,15 +631,13 @@ CONFIG_NFC_ST_NCI_I2C=m
CONFIG_NFC_ST_NCI_SPI=m
CONFIG_NFC_S3FWRN5_I2C=m
CONFIG_PCI=y
-CONFIG_PCIEPORTBUS=y
-CONFIG_HOTPLUG_PCI_PCIE=y
CONFIG_PCIEAER=y
CONFIG_PCIE_PTM=y
CONFIG_PCI_STUB=m
CONFIG_PCI_PF_STUB=m
CONFIG_XEN_PCIDEV_FRONTEND=m
+CONFIG_PCI_P2PDMA=y
CONFIG_PCI_HYPERV=m
-CONFIG_HOTPLUG_PCI=y
CONFIG_HOTPLUG_PCI_ACPI=y
CONFIG_HOTPLUG_PCI_ACPI_IBM=m
CONFIG_HOTPLUG_PCI_CPCI=y
@@ -672,14 +653,17 @@ CONFIG_UEVENT_HELPER=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_DEVTMPFS_SAFE=y
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
+CONFIG_FW_LOADER_COMPRESS=y
+# CONFIG_FW_LOADER_COMPRESS_XZ is not set
+CONFIG_FW_LOADER_COMPRESS_ZSTD=y
# CONFIG_ALLOW_DEV_COREDUMP is not set
CONFIG_DEBUG_DEVRES=y
CONFIG_CONNECTOR=y
CONFIG_EDD=m
CONFIG_FW_CFG_SYSFS=m
CONFIG_SYSFB_SIMPLEFB=y
-CONFIG_EFI_VARS=m
CONFIG_EFI_VARS_PSTORE=m
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
CONFIG_GNSS=m
@@ -729,6 +713,7 @@ CONFIG_MTD_BLOCK2MTD=m
CONFIG_MTD_ONENAND=m
CONFIG_MTD_ONENAND_OTP=y
CONFIG_MTD_ONENAND_2X_PROGRAM=y
+CONFIG_MTD_NAND_ECC_MXIC=y
CONFIG_MTD_LPDDR=m
CONFIG_MTD_SPI_NOR=m
CONFIG_MTD_UBI=m
@@ -736,33 +721,33 @@ CONFIG_PARPORT=m
CONFIG_PARPORT_PC=m
CONFIG_PARPORT_SERIAL=m
CONFIG_PARPORT_PC_PCMCIA=m
-CONFIG_PARPORT_AX88796=m
# CONFIG_PNP_DEBUG_MESSAGES is not set
CONFIG_BLK_DEV_FD=m
CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m
CONFIG_ZRAM=m
CONFIG_ZRAM_DEF_COMP_LZ4=y
CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_NBD=m
-CONFIG_BLK_DEV_SX8=m
CONFIG_BLK_DEV_RAM=y
CONFIG_CDROM_PKTCDVD=m
CONFIG_ATA_OVER_ETH=m
CONFIG_XEN_BLKDEV_BACKEND=m
CONFIG_VIRTIO_BLK=m
CONFIG_BLK_DEV_RBD=m
-CONFIG_BLK_DEV_RSXX=m
+CONFIG_BLK_DEV_UBLK=m
CONFIG_BLK_DEV_RNBD_CLIENT=m
CONFIG_BLK_DEV_RNBD_SERVER=m
CONFIG_BLK_DEV_NVME=m
CONFIG_NVME_MULTIPATH=y
CONFIG_NVME_HWMON=y
CONFIG_NVME_RDMA=m
+CONFIG_NVME_TCP=m
+CONFIG_NVME_AUTH=y
CONFIG_NVME_TARGET=m
CONFIG_NVME_TARGET_LOOP=m
CONFIG_NVME_TARGET_RDMA=m
+CONFIG_NVME_TARGET_AUTH=y
CONFIG_AD525X_DPOT=m
CONFIG_AD525X_DPOT_I2C=m
CONFIG_AD525X_DPOT_SPI=m
@@ -791,7 +776,9 @@ CONFIG_EEPROM_EE1004=m
CONFIG_TI_ST=m
CONFIG_SENSORS_LIS3_I2C=m
CONFIG_INTEL_MEI_TXE=m
+CONFIG_INTEL_MEI_GSC=m
CONFIG_INTEL_MEI_HDCP=m
+CONFIG_INTEL_MEI_PXP=m
CONFIG_VMWARE_VMCI=m
CONFIG_MISC_RTSX_PCI=m
CONFIG_MISC_RTSX_USB=m
@@ -828,7 +815,6 @@ CONFIG_SCSI_AIC94XX=m
CONFIG_SCSI_MVSAS=m
CONFIG_SCSI_MVSAS_TASKLET=y
CONFIG_SCSI_MVUMI=m
-CONFIG_SCSI_DPT_I2O=m
CONFIG_SCSI_ADVANSYS=m
CONFIG_SCSI_ARCMSR=m
CONFIG_SCSI_ESAS2R=m
@@ -840,9 +826,6 @@ CONFIG_MEGARAID_SAS=m
CONFIG_SCSI_MPT2SAS=m
CONFIG_SCSI_MPI3MR=m
CONFIG_SCSI_SMARTPQI=m
-CONFIG_SCSI_UFSHCD=m
-CONFIG_SCSI_UFSHCD_PCI=m
-CONFIG_SCSI_UFS_HPB=y
CONFIG_SCSI_HPTIOP=m
CONFIG_SCSI_BUSLOGIC=m
CONFIG_VMWARE_PVSCSI=m
@@ -930,7 +913,6 @@ CONFIG_PATA_MPIIX=m
CONFIG_PATA_NS87410=m
CONFIG_PATA_OPTI=m
CONFIG_PATA_PCMCIA=m
-CONFIG_PATA_PLATFORM=m
CONFIG_PATA_RZ1000=m
CONFIG_PATA_ACPI=m
CONFIG_ATA_GENERIC=m
@@ -1001,6 +983,8 @@ CONFIG_MACVTAP=m
CONFIG_IPVLAN=m
CONFIG_VXLAN=m
CONFIG_GENEVE=m
+CONFIG_BAREUDP=m
+CONFIG_AMT=m
CONFIG_MACSEC=m
CONFIG_NETCONSOLE=m
CONFIG_NETCONSOLE_DYNAMIC=y
@@ -1026,12 +1010,8 @@ CONFIG_ATM_DUMMY=m
CONFIG_ATM_TCP=m
CONFIG_ATM_LANAI=m
CONFIG_ATM_ENI=m
-CONFIG_ATM_FIRESTREAM=m
-CONFIG_ATM_ZATM=m
CONFIG_ATM_NICSTAR=m
CONFIG_ATM_IDT77252=m
-CONFIG_ATM_AMBASSADOR=m
-CONFIG_ATM_HORIZON=m
CONFIG_ATM_IA=m
CONFIG_ATM_FORE200E=m
CONFIG_ATM_FORE200E_USE_TASKLET=y
@@ -1047,7 +1027,7 @@ CONFIG_NET_DSA_MV88E6060=m
CONFIG_NET_DSA_MV88E6XXX=m
CONFIG_NET_DSA_MV88E6XXX_PTP=y
CONFIG_NET_DSA_QCA8K=m
-CONFIG_NET_DSA_REALTEK_SMI=m
+CONFIG_NET_DSA_REALTEK=m
CONFIG_PCMCIA_3C574=m
CONFIG_PCMCIA_3C589=m
CONFIG_VORTEX=m
@@ -1059,7 +1039,9 @@ CONFIG_ENA_ETHERNET=m
CONFIG_AMD8111_ETH=m
CONFIG_PCNET32=m
CONFIG_PCMCIA_NMCLAN=m
+CONFIG_AMD_XGBE=m
CONFIG_AQTION=m
+CONFIG_SPI_AX88796C=m
CONFIG_ATL2=m
CONFIG_ATL1=m
CONFIG_ATL1E=m
@@ -1077,11 +1059,11 @@ CONFIG_CHELSIO_T1_1G=y
CONFIG_CHELSIO_T4VF=m
CONFIG_ENIC=m
# CONFIG_NET_VENDOR_CORTINA is not set
+CONFIG_DM9051=m
CONFIG_DNET=m
CONFIG_NET_TULIP=y
CONFIG_DE2104X=m
CONFIG_TULIP=m
-CONFIG_DE4X5=m
CONFIG_WINBOND_840=m
CONFIG_DM9102=m
CONFIG_ULI526X=m
@@ -1089,13 +1071,15 @@ CONFIG_PCMCIA_XIRCOM=m
CONFIG_DL2K=m
CONFIG_SUNDANCE=m
CONFIG_BE2NET=m
+CONFIG_TSNEP=m
CONFIG_PCMCIA_FMVJ18X=m
+CONFIG_FUN_ETH=m
+CONFIG_GVE=m
CONFIG_E100=m
CONFIG_E1000=m
CONFIG_E1000E=m
CONFIG_IGB=m
CONFIG_IGBVF=m
-CONFIG_IXGB=m
CONFIG_IXGBE=m
CONFIG_IXGBEVF=m
CONFIG_I40E=m
@@ -1106,6 +1090,7 @@ CONFIG_JME=m
CONFIG_SKGE=m
CONFIG_SKGE_GENESIS=y
CONFIG_SKY2=m
+CONFIG_OCTEON_EP=m
CONFIG_MLX4_EN=m
CONFIG_MLX5_CORE=m
CONFIG_MLX5_CORE_EN=y
@@ -1124,7 +1109,6 @@ CONFIG_FEALNX=m
CONFIG_NATSEMI=m
CONFIG_NS83820=m
CONFIG_S2IO=m
-CONFIG_VXGE=m
CONFIG_NFP=m
# CONFIG_NFP_APP_FLOWER is not set
# CONFIG_NFP_APP_ABM_NIC is not set
@@ -1153,6 +1137,7 @@ CONFIG_SC92031=m
CONFIG_SIS900=m
CONFIG_SIS190=m
CONFIG_SFC=m
+CONFIG_SFC_SIENA=m
CONFIG_PCMCIA_SMC91C92=m
CONFIG_EPIC100=m
CONFIG_SMSC911X=m
@@ -1166,8 +1151,11 @@ CONFIG_CASSINI=m
CONFIG_NIU=m
CONFIG_TEHUTI=m
CONFIG_TLAN=m
+CONFIG_MSE102X=m
CONFIG_VIA_RHINE=m
CONFIG_VIA_VELOCITY=m
+CONFIG_NGBE=m
+CONFIG_TXGBE=m
CONFIG_WIZNET_W5100=m
CONFIG_WIZNET_W5300=m
CONFIG_WIZNET_W5100_SPI=m
@@ -1179,7 +1167,6 @@ CONFIG_SKFP=m
CONFIG_HIPPI=y
CONFIG_ROADRUNNER=m
CONFIG_NET_SB1000=m
-CONFIG_SFP=m
CONFIG_AMD_PHY=m
CONFIG_AQUANTIA_PHY=m
CONFIG_BROADCOM_PHY=m
@@ -1209,6 +1196,24 @@ CONFIG_DP83867_PHY=m
CONFIG_VITESSE_PHY=m
CONFIG_XILINX_GMII2RGMII=m
CONFIG_MICREL_KS8995MA=m
+CONFIG_CAN_DEV=m
+CONFIG_CAN_VCAN=m
+CONFIG_CAN_VXCAN=m
+CONFIG_CAN_SLCAN=m
+CONFIG_CAN_PEAK_PCIEFD=m
+CONFIG_CAN_SJA1000=m
+CONFIG_CAN_EMS_PCI=m
+CONFIG_CAN_KVASER_PCI=m
+CONFIG_CAN_PEAK_PCI=m
+CONFIG_CAN_PLX_PCI=m
+CONFIG_CAN_SOFTING=m
+CONFIG_CAN_8DEV_USB=m
+CONFIG_CAN_EMS_USB=m
+CONFIG_CAN_GS_USB=m
+CONFIG_CAN_KVASER_USB=m
+CONFIG_CAN_MCBA_USB=m
+CONFIG_CAN_PEAK_USB=m
+CONFIG_CAN_UCAN=m
CONFIG_MDIO_BITBANG=m
CONFIG_MDIO_GPIO=m
CONFIG_MDIO_THUNDER=m
@@ -1258,7 +1263,6 @@ CONFIG_USB_IPHETH=m
CONFIG_USB_SIERRA_NET=m
CONFIG_USB_VL600=m
CONFIG_USB_NET_CH9200=m
-CONFIG_USB_RTL8153_ECM=m
# CONFIG_WLAN_VENDOR_ADMTEK is not set
CONFIG_ATH5K=m
CONFIG_ATH9K=m
@@ -1334,6 +1338,8 @@ CONFIG_MT76x0U=m
CONFIG_MT76x2E=m
CONFIG_MT76x2U=m
CONFIG_MT7921E=m
+CONFIG_MT7921S=m
+CONFIG_MT7921U=m
CONFIG_RT2X00=m
CONFIG_RT2400PCI=m
CONFIG_RT2500PCI=m
@@ -1367,6 +1373,9 @@ CONFIG_RTW88_8822BE=m
CONFIG_RTW88_8822CE=m
CONFIG_RTW88_8723DE=m
CONFIG_RTW88_8821CE=m
+CONFIG_RTW89=m
+CONFIG_RTW89_8852AE=m
+CONFIG_RTW89_8852CE=m
CONFIG_RSI_91X=m
CONFIG_CW1200=m
CONFIG_CW1200_WLAN_SDIO=m
@@ -1381,8 +1390,8 @@ CONFIG_USB_ZD1201=m
CONFIG_ZD1211RW=m
CONFIG_PCMCIA_RAYCS=m
CONFIG_PCMCIA_WL3501=m
-CONFIG_MAC80211_HWSIM=m
CONFIG_USB_NET_RNDIS_WLAN=m
+CONFIG_MAC80211_HWSIM=m
CONFIG_VIRT_WIFI=m
CONFIG_IEEE802154_FAKELB=m
CONFIG_IEEE802154_CC2520=m
@@ -1409,6 +1418,9 @@ CONFIG_INPUT_JOYDEV=m
CONFIG_INPUT_EVDEV=m
CONFIG_INPUT_EVBUG=m
CONFIG_KEYBOARD_APPLESPI=m
+CONFIG_KEYBOARD_GPIO=m
+CONFIG_KEYBOARD_CROS_EC=m
+CONFIG_KEYBOARD_CYPRESS_SF=m
CONFIG_MOUSE_PS2=m
# CONFIG_MOUSE_PS2_BYD is not set
CONFIG_MOUSE_PS2_ELANTECH=y
@@ -1448,12 +1460,11 @@ CONFIG_TOUCHSCREEN_ELAN=m
CONFIG_TOUCHSCREEN_ELO=m
CONFIG_TOUCHSCREEN_WACOM_W8001=m
CONFIG_TOUCHSCREEN_MTOUCH=m
+CONFIG_TOUCHSCREEN_IMAGIS=m
CONFIG_TOUCHSCREEN_INEXIO=m
-CONFIG_TOUCHSCREEN_MK712=m
CONFIG_TOUCHSCREEN_PENMOUNT=m
CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
CONFIG_TOUCHSCREEN_TOUCHWIN=m
-CONFIG_TOUCHSCREEN_UCB1400=m
CONFIG_TOUCHSCREEN_PIXCIR=m
CONFIG_TOUCHSCREEN_WDT87XX_I2C=m
CONFIG_TOUCHSCREEN_WM97XX=m
@@ -1470,6 +1481,7 @@ CONFIG_TOUCHSCREEN_ST1232=m
CONFIG_TOUCHSCREEN_SURFACE3_SPI=m
CONFIG_TOUCHSCREEN_TPS6507X=m
CONFIG_TOUCHSCREEN_ZFORCE=m
+CONFIG_TOUCHSCREEN_COLIBRI_VF50=m
CONFIG_TOUCHSCREEN_ROHM_BU21023=m
CONFIG_INPUT_MISC=y
CONFIG_INPUT_AD714X=m
@@ -1491,10 +1503,13 @@ CONFIG_INPUT_PCF50633_PMU=m
CONFIG_INPUT_PCF8574=m
CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
CONFIG_INPUT_ADXL34X=m
+CONFIG_INPUT_IBM_PANEL=m
+CONFIG_INPUT_IQS7222=m
CONFIG_INPUT_CMA3000=m
CONFIG_INPUT_CMA3000_I2C=m
CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
+CONFIG_INPUT_SOC_BUTTON_ARRAY=m
CONFIG_INPUT_DRV2665_HAPTICS=m
CONFIG_RMI4_I2C=m
CONFIG_RMI4_SPI=m
@@ -1511,6 +1526,7 @@ CONFIG_SERIO_PS2MULT=m
# CONFIG_LDISC_AUTOLOAD is not set
CONFIG_SERIAL_8250=y
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
+CONFIG_SERIAL_8250_FINTEK=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_CS=m
CONFIG_SERIAL_8250_NR_UARTS=16
@@ -1529,9 +1545,10 @@ CONFIG_SERIAL_ARC=m
CONFIG_SERIAL_NONSTANDARD=y
CONFIG_MOXA_INTELLIO=m
CONFIG_MOXA_SMARTIO=m
-CONFIG_SYNCLINK_GT=m
CONFIG_N_HDLC=m
+CONFIG_IPWIRELESS=m
CONFIG_NOZOMI=m
+CONFIG_RPMSG_TTY=m
CONFIG_SERIAL_DEV_BUS=m
CONFIG_PRINTER=m
CONFIG_PPDEV=m
@@ -1539,6 +1556,7 @@ CONFIG_VIRTIO_CONSOLE=m
CONFIG_IPMI_HANDLER=m
CONFIG_IPMI_DEVICE_INTERFACE=m
CONFIG_IPMI_SSIF=m
+CONFIG_IPMI_IPMB=m
CONFIG_IPMI_WATCHDOG=m
CONFIG_IPMI_POWEROFF=m
CONFIG_HW_RANDOM_TIMERIOMEM=m
@@ -1546,22 +1564,23 @@ CONFIG_HW_RANDOM_BA431=m
CONFIG_HW_RANDOM_VIRTIO=m
CONFIG_HW_RANDOM_XIPHERA=m
CONFIG_APPLICOM=m
-CONFIG_SYNCLINK_CS=m
-CONFIG_CARDMAN_4000=m
-CONFIG_CARDMAN_4040=m
-CONFIG_IPWIRELESS=m
CONFIG_MWAVE=m
CONFIG_HPET=y
# CONFIG_HPET_MMAP is not set
CONFIG_HANGCHECK_TIMER=m
CONFIG_TCG_TPM=m
CONFIG_TCG_TIS=m
+CONFIG_TCG_TIS_SPI=m
+CONFIG_TCG_TIS_SPI_CR50=y
+CONFIG_TCG_TIS_I2C=m
+CONFIG_TCG_TIS_I2C_CR50=m
CONFIG_TCG_NSC=m
CONFIG_TCG_ATMEL=m
CONFIG_TCG_INFINEON=m
CONFIG_TCG_XEN=m
CONFIG_TCG_CRB=m
CONFIG_TELCLOCK=m
+CONFIG_I2C=y
CONFIG_I2C_CHARDEV=m
CONFIG_I2C_MUX_GPIO=m
CONFIG_I2C_MUX_PCA9541=m
@@ -1584,7 +1603,7 @@ CONFIG_I2C_SIS96X=m
CONFIG_I2C_VIA=m
CONFIG_I2C_VIAPRO=m
CONFIG_I2C_SCMI=m
-CONFIG_I2C_DESIGNWARE_PLATFORM=m
+CONFIG_I2C_DESIGNWARE_PLATFORM=y
CONFIG_I2C_DESIGNWARE_BAYTRAIL=y
CONFIG_I2C_DESIGNWARE_PCI=m
CONFIG_I2C_GPIO=m
@@ -1594,8 +1613,10 @@ CONFIG_I2C_SIMTEC=m
CONFIG_I2C_XILINX=m
CONFIG_I2C_DIOLAN_U2C=m
CONFIG_I2C_PARPORT=m
+CONFIG_I2C_PCI1XXXX=m
CONFIG_I2C_TAOS_EVM=m
CONFIG_I2C_TINY_USB=m
+CONFIG_I2C_CROS_EC_TUNNEL=m
CONFIG_I2C_VIRTIO=m
CONFIG_I2C_STUB=m
CONFIG_I2C_SLAVE=y
@@ -1606,6 +1627,8 @@ CONFIG_SPI_DESIGNWARE=m
CONFIG_SPI_DW_PCI=m
CONFIG_SPI_GPIO=m
CONFIG_SPI_LM70_LLP=m
+CONFIG_SPI_MICROCHIP_CORE=m
+CONFIG_SPI_MICROCHIP_CORE_QSPI=m
CONFIG_SPI_XCOMM=m
CONFIG_SPI_SPIDEV=m
CONFIG_SPI_TLE62X0=m
@@ -1614,6 +1637,7 @@ CONFIG_DP83640_PHY=m
CONFIG_PTP_1588_CLOCK_KVM=m
CONFIG_PTP_1588_CLOCK_VMW=m
CONFIG_PINCTRL_AMD=y
+CONFIG_PINCTRL_CY8C95X0=m
CONFIG_PINCTRL_BAYTRAIL=y
CONFIG_PINCTRL_CHERRYVIEW=y
CONFIG_PINCTRL_ALDERLAKE=m
@@ -1623,6 +1647,8 @@ CONFIG_PINCTRL_CEDARFORK=m
CONFIG_PINCTRL_ELKHARTLAKE=m
CONFIG_PINCTRL_GEMINILAKE=m
CONFIG_PINCTRL_ICELAKE=m
+CONFIG_PINCTRL_JASPERLAKE=m
+CONFIG_PINCTRL_METEORLAKE=m
CONFIG_PINCTRL_SUNRISEPOINT=m
CONFIG_PINCTRL_TIGERLAKE=m
CONFIG_GPIO_SYSFS=y
@@ -1631,13 +1657,11 @@ CONFIG_GPIO_VX855=m
CONFIG_GPIO_SCH=m
CONFIG_GPIO_WINBOND=m
CONFIG_GPIO_WS16C48=m
-CONFIG_GPIO_ADP5588=m
CONFIG_GPIO_MAX7300=m
CONFIG_GPIO_MAX732X=m
CONFIG_GPIO_PCA953X=m
CONFIG_GPIO_PCF857X=m
CONFIG_GPIO_JANZ_TTL=m
-CONFIG_GPIO_UCB1400=m
CONFIG_GPIO_WHISKEY_COVE=m
CONFIG_GPIO_AMD8111=m
CONFIG_GPIO_BT8XX=m
@@ -1647,13 +1671,15 @@ CONFIG_GPIO_MAX7301=m
CONFIG_GENERIC_ADC_BATTERY=m
CONFIG_AXP288_CHARGER=m
CONFIG_AXP288_FUEL_GAUGE=m
+CONFIG_CHARGER_CROS_USBPD=m
+CONFIG_CHARGER_WILCO=m
+CONFIG_BATTERY_UG3105=m
CONFIG_HWMON=m
CONFIG_SENSORS_ABITUGURU=m
CONFIG_SENSORS_ABITUGURU3=m
CONFIG_SENSORS_AD7314=m
CONFIG_SENSORS_AD7414=m
CONFIG_SENSORS_AD7418=m
-CONFIG_SENSORS_ADM1021=m
CONFIG_SENSORS_ADM1025=m
CONFIG_SENSORS_ADM1026=m
CONFIG_SENSORS_ADM1029=m
@@ -1707,8 +1733,9 @@ CONFIG_SENSORS_MAX1619=m
CONFIG_SENSORS_MAX1668=m
CONFIG_SENSORS_MAX197=m
CONFIG_SENSORS_MAX31722=m
+CONFIG_SENSORS_MAX31760=m
+CONFIG_SENSORS_MAX6620=m
CONFIG_SENSORS_MAX6639=m
-CONFIG_SENSORS_MAX6642=m
CONFIG_SENSORS_MAX6650=m
CONFIG_SENSORS_MAX6697=m
CONFIG_SENSORS_MAX31790=m
@@ -1736,22 +1763,31 @@ CONFIG_SENSORS_PC87427=m
CONFIG_SENSORS_NTC_THERMISTOR=m
CONFIG_SENSORS_NCT6683=m
CONFIG_SENSORS_NCT6775=m
+CONFIG_SENSORS_NCT6775_I2C=m
CONFIG_SENSORS_NCT7802=m
CONFIG_SENSORS_NCT7904=m
CONFIG_SENSORS_NPCM7XX=m
+CONFIG_SENSORS_NZXT_SMART2=m
CONFIG_SENSORS_PCF8591=m
CONFIG_PMBUS=m
CONFIG_SENSORS_ADM1275=m
+CONFIG_SENSORS_DELTA_AHE50DC_FAN=m
CONFIG_SENSORS_LM25066=m
+CONFIG_SENSORS_LM25066_REGULATOR=y
+CONFIG_SENSORS_LT7182S=m
CONFIG_SENSORS_LTC2978=m
CONFIG_SENSORS_LTC3815=m
CONFIG_SENSORS_MAX16064=m
CONFIG_SENSORS_MAX20751=m
CONFIG_SENSORS_MAX34440=m
CONFIG_SENSORS_MAX8688=m
+CONFIG_SENSORS_MP5023=m
+CONFIG_SENSORS_PLI1209BC=m
CONFIG_SENSORS_TPS40422=m
+CONFIG_SENSORS_TPS546D24=m
CONFIG_SENSORS_UCD9000=m
CONFIG_SENSORS_UCD9200=m
+CONFIG_SENSORS_XDPE152=m
CONFIG_SENSORS_ZL6100=m
CONFIG_SENSORS_SHT15=m
CONFIG_SENSORS_SHT21=m
@@ -1761,24 +1797,26 @@ CONFIG_SENSORS_SIS5595=m
CONFIG_SENSORS_DME1737=m
CONFIG_SENSORS_EMC1403=m
CONFIG_SENSORS_EMC2103=m
+CONFIG_SENSORS_EMC2305=m
CONFIG_SENSORS_EMC6W201=m
CONFIG_SENSORS_SMSC47M1=m
CONFIG_SENSORS_SMSC47M192=m
CONFIG_SENSORS_SMSC47B397=m
CONFIG_SENSORS_SCH5627=m
CONFIG_SENSORS_SCH5636=m
-CONFIG_SENSORS_SMM665=m
CONFIG_SENSORS_ADC128D818=m
CONFIG_SENSORS_ADS7828=m
CONFIG_SENSORS_ADS7871=m
CONFIG_SENSORS_AMC6821=m
CONFIG_SENSORS_INA209=m
+CONFIG_SENSORS_INA238=m
CONFIG_SENSORS_INA3221=m
CONFIG_SENSORS_THMC50=m
CONFIG_SENSORS_TMP102=m
CONFIG_SENSORS_TMP103=m
CONFIG_SENSORS_TMP401=m
CONFIG_SENSORS_TMP421=m
+CONFIG_SENSORS_TMP464=m
CONFIG_SENSORS_VIA_CPUTEMP=m
CONFIG_SENSORS_VIA686A=m
CONFIG_SENSORS_VT1211=m
@@ -1796,7 +1834,8 @@ CONFIG_SENSORS_W83627HF=m
CONFIG_SENSORS_W83627EHF=m
CONFIG_SENSORS_ACPI_POWER=m
CONFIG_SENSORS_ATK0110=m
-CONFIG_THERMAL_NETLINK=y
+CONFIG_SENSORS_ASUS_WMI=m
+CONFIG_SENSORS_ASUS_EC=m
CONFIG_THERMAL_STATISTICS=y
CONFIG_THERMAL_GOV_FAIR_SHARE=y
CONFIG_INTEL_POWERCLAMP=m
@@ -1806,7 +1845,7 @@ CONFIG_INT3406_THERMAL=m
CONFIG_INTEL_BXT_PMIC_THERMAL=m
CONFIG_INTEL_PCH_THERMAL=m
CONFIG_INTEL_TCC_COOLING=m
-CONFIG_INTEL_MENLOW=m
+CONFIG_INTEL_HFI_THERMAL=y
CONFIG_GENERIC_ADC_THERMAL=m
CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_CORE=y
@@ -1819,6 +1858,7 @@ CONFIG_ADVANTECH_WDT=m
CONFIG_ALIM1535_WDT=m
CONFIG_ALIM7101_WDT=m
CONFIG_EBC_C384_WDT=m
+CONFIG_EXAR_WDT=m
CONFIG_F71808E_WDT=m
CONFIG_SP5100_TCO=m
CONFIG_EUROTECH_WDT=m
@@ -1853,53 +1893,59 @@ CONFIG_SSB_PCMCIAHOST=y
CONFIG_BCMA_DRIVER_GMAC_CMN=y
CONFIG_BCMA_DRIVER_GPIO=y
CONFIG_MFD_AXP20X_I2C=m
-CONFIG_HTC_PASIC3=m
CONFIG_LPC_ICH=m
+CONFIG_INTEL_SOC_PMIC=y
CONFIG_INTEL_SOC_PMIC_BXTWC=m
-CONFIG_INTEL_SOC_PMIC_CHTDC_TI=m
CONFIG_MFD_INTEL_LPSS_ACPI=m
CONFIG_MFD_INTEL_LPSS_PCI=m
CONFIG_MFD_INTEL_PMC_BXT=m
-CONFIG_MFD_INTEL_PMT=m
CONFIG_MFD_JANZ_CMODIO=m
+CONFIG_MFD_MT6370=m
CONFIG_MFD_PCF50633=m
CONFIG_PCF50633_ADC=m
CONFIG_PCF50633_GPIO=m
-CONFIG_UCB1400_CORE=m
+CONFIG_MFD_SY7636A=m
+CONFIG_MFD_RT5120=m
CONFIG_MFD_SM501=m
CONFIG_TPS65010=m
CONFIG_TPS6507X=m
CONFIG_MFD_WL1273_CORE=m
+CONFIG_MFD_ARIZONA_I2C=m
+CONFIG_MFD_ARIZONA_SPI=m
+CONFIG_MFD_WM5102=y
+CONFIG_REGULATOR_RT5190A=m
+CONFIG_REGULATOR_RT5759=m
+CONFIG_REGULATOR_TPS68470=m
CONFIG_RC_CORE=m
CONFIG_LIRC=y
CONFIG_RC_DECODERS=y
+CONFIG_IR_IMON_DECODER=m
+CONFIG_IR_JVC_DECODER=m
+CONFIG_IR_MCE_KBD_DECODER=m
CONFIG_IR_NEC_DECODER=m
CONFIG_IR_RC5_DECODER=m
CONFIG_IR_RC6_DECODER=m
-CONFIG_IR_JVC_DECODER=m
-CONFIG_IR_SONY_DECODER=m
CONFIG_IR_SANYO_DECODER=m
CONFIG_IR_SHARP_DECODER=m
-CONFIG_IR_MCE_KBD_DECODER=m
+CONFIG_IR_SONY_DECODER=m
CONFIG_IR_XMP_DECODER=m
-CONFIG_IR_IMON_DECODER=m
CONFIG_RC_DEVICES=y
-CONFIG_RC_ATI_REMOTE=m
CONFIG_IR_ENE=m
+CONFIG_IR_FINTEK=m
+CONFIG_IR_IGORPLUGUSB=m
+CONFIG_IR_IGUANA=m
CONFIG_IR_IMON=m
CONFIG_IR_IMON_RAW=m
-CONFIG_IR_MCEUSB=m
CONFIG_IR_ITE_CIR=m
-CONFIG_IR_FINTEK=m
+CONFIG_IR_MCEUSB=m
CONFIG_IR_NUVOTON=m
CONFIG_IR_REDRAT3=m
+CONFIG_IR_SERIAL=m
CONFIG_IR_STREAMZAP=m
-CONFIG_IR_WINBOND_CIR=m
-CONFIG_IR_IGORPLUGUSB=m
-CONFIG_IR_IGUANA=m
CONFIG_IR_TTUSBIR=m
+CONFIG_IR_WINBOND_CIR=m
+CONFIG_RC_ATI_REMOTE=m
CONFIG_RC_LOOPBACK=m
-CONFIG_IR_SERIAL=m
# CONFIG_MEDIA_CEC_SUPPORT is not set
CONFIG_MEDIA_SUPPORT=m
CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
@@ -1907,11 +1953,7 @@ CONFIG_V4L2_FLASH_LED_CLASS=m
CONFIG_DVB_MAX_ADAPTERS=8
# CONFIG_DVB_DYNAMIC_MINORS is not set
CONFIG_MEDIA_USB_SUPPORT=y
-CONFIG_USB_VIDEO_CLASS=m
CONFIG_USB_GSPCA=m
-CONFIG_USB_M5602=m
-CONFIG_USB_STV06XX=m
-CONFIG_USB_GL860=m
CONFIG_USB_GSPCA_BENQ=m
CONFIG_USB_GSPCA_CONEX=m
CONFIG_USB_GSPCA_CPIA1=m
@@ -1955,40 +1997,16 @@ CONFIG_USB_GSPCA_TV8532=m
CONFIG_USB_GSPCA_VC032X=m
CONFIG_USB_GSPCA_VICAM=m
CONFIG_USB_GSPCA_ZC3XX=m
-CONFIG_USB_ZR364XX=m
-CONFIG_USB_STKWEBCAM=m
+CONFIG_USB_GL860=m
+CONFIG_USB_M5602=m
+CONFIG_USB_STV06XX=m
CONFIG_USB_S2255=m
CONFIG_VIDEO_USBTV=m
+CONFIG_USB_VIDEO_CLASS=m
CONFIG_VIDEO_CX231XX=m
CONFIG_VIDEO_CX231XX_ALSA=m
CONFIG_VIDEO_CX231XX_DVB=m
-CONFIG_VIDEO_TM6000=m
-CONFIG_VIDEO_TM6000_ALSA=m
-CONFIG_VIDEO_TM6000_DVB=m
-CONFIG_DVB_USB=m
-CONFIG_DVB_USB_A800=m
-CONFIG_DVB_USB_DIBUSB_MB=m
-CONFIG_DVB_USB_DIBUSB_MC=m
-CONFIG_DVB_USB_DIB0700=m
-CONFIG_DVB_USB_UMT_010=m
-CONFIG_DVB_USB_CXUSB=m
-CONFIG_DVB_USB_M920X=m
-CONFIG_DVB_USB_DIGITV=m
-CONFIG_DVB_USB_VP7045=m
-CONFIG_DVB_USB_VP702X=m
-CONFIG_DVB_USB_GP8PSK=m
-CONFIG_DVB_USB_NOVA_T_USB2=m
-CONFIG_DVB_USB_TTUSB2=m
-CONFIG_DVB_USB_DTT200U=m
-CONFIG_DVB_USB_OPERA1=m
-CONFIG_DVB_USB_AF9005=m
-CONFIG_DVB_USB_AF9005_REMOTE=m
-CONFIG_DVB_USB_PCTV452E=m
-CONFIG_DVB_USB_DW2102=m
-CONFIG_DVB_USB_CINERGY_T2=m
-CONFIG_DVB_USB_DTV5100=m
-CONFIG_DVB_USB_AZ6027=m
-CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_B2C2_FLEXCOP_USB=m
CONFIG_DVB_USB_V2=m
CONFIG_DVB_USB_AF9015=m
CONFIG_DVB_USB_AF9035=m
@@ -1996,21 +2014,43 @@ CONFIG_DVB_USB_ANYSEE=m
CONFIG_DVB_USB_AU6610=m
CONFIG_DVB_USB_AZ6007=m
CONFIG_DVB_USB_CE6230=m
+CONFIG_DVB_USB_DVBSKY=m
CONFIG_DVB_USB_EC168=m
CONFIG_DVB_USB_GL861=m
CONFIG_DVB_USB_LME2510=m
CONFIG_DVB_USB_MXL111SF=m
CONFIG_DVB_USB_RTL28XXU=m
-CONFIG_DVB_USB_DVBSKY=m
+CONFIG_DVB_USB=m
+CONFIG_DVB_USB_A800=m
+CONFIG_DVB_USB_AF9005=m
+CONFIG_DVB_USB_AF9005_REMOTE=m
+CONFIG_DVB_USB_AZ6027=m
+CONFIG_DVB_USB_CINERGY_T2=m
+CONFIG_DVB_USB_CXUSB=m
+CONFIG_DVB_USB_DIB0700=m
+CONFIG_DVB_USB_DIBUSB_MB=m
+CONFIG_DVB_USB_DIBUSB_MC=m
+CONFIG_DVB_USB_DIGITV=m
+CONFIG_DVB_USB_DTT200U=m
+CONFIG_DVB_USB_DTV5100=m
+CONFIG_DVB_USB_DW2102=m
+CONFIG_DVB_USB_GP8PSK=m
+CONFIG_DVB_USB_M920X=m
+CONFIG_DVB_USB_NOVA_T_USB2=m
+CONFIG_DVB_USB_OPERA1=m
+CONFIG_DVB_USB_PCTV452E=m
+CONFIG_DVB_USB_TECHNISAT_USB2=m
+CONFIG_DVB_USB_TTUSB2=m
+CONFIG_DVB_USB_UMT_010=m
+CONFIG_DVB_USB_VP702X=m
+CONFIG_DVB_USB_VP7045=m
CONFIG_DVB_TTUSB_BUDGET=m
CONFIG_DVB_TTUSB_DEC=m
-CONFIG_DVB_B2C2_FLEXCOP_USB=m
CONFIG_VIDEO_EM28XX=m
CONFIG_VIDEO_EM28XX_V4L2=m
CONFIG_VIDEO_EM28XX_ALSA=m
CONFIG_VIDEO_EM28XX_DVB=m
CONFIG_MEDIA_PCI_SUPPORT=y
-CONFIG_VIDEO_MEYE=m
CONFIG_VIDEO_SOLO6X10=m
CONFIG_VIDEO_TW686X=m
CONFIG_VIDEO_CX18=m
@@ -2027,27 +2067,35 @@ CONFIG_VIDEO_SAA7134=m
CONFIG_VIDEO_SAA7134_ALSA=m
CONFIG_VIDEO_SAA7134_DVB=m
CONFIG_VIDEO_SAA7164=m
-CONFIG_DVB_BUDGET_CORE=m
-CONFIG_DVB_BUDGET=m
-CONFIG_DVB_BUDGET_CI=m
-CONFIG_DVB_BUDGET_AV=m
CONFIG_DVB_B2C2_FLEXCOP_PCI=m
-CONFIG_DVB_PLUTO2=m
+CONFIG_DVB_DDBRIDGE=m
CONFIG_DVB_DM1105=m
-CONFIG_DVB_PT1=m
CONFIG_MANTIS_CORE=m
CONFIG_DVB_MANTIS=m
CONFIG_DVB_HOPPER=m
+CONFIG_DVB_NETUP_UNIDVB=m
CONFIG_DVB_NGENE=m
-CONFIG_DVB_DDBRIDGE=m
+CONFIG_DVB_PLUTO2=m
+CONFIG_DVB_PT1=m
CONFIG_DVB_SMIPCIE=m
-CONFIG_DVB_NETUP_UNIDVB=m
CONFIG_VIDEO_IPU3_CIO2=m
-CONFIG_CIO2_BRIDGE=y
CONFIG_V4L_MEM2MEM_DRIVERS=y
+CONFIG_VIDEO_CADENCE_CSI2RX=m
+CONFIG_VIDEO_CADENCE_CSI2TX=m
CONFIG_DVB_FIREDTV=m
+CONFIG_VIDEO_AR0521=m
+CONFIG_VIDEO_HI846=m
+CONFIG_VIDEO_HI847=m
+CONFIG_VIDEO_OG01A1B=m
+CONFIG_VIDEO_OV08D10=m
+CONFIG_VIDEO_OV13B10=m
+CONFIG_VIDEO_OV5693=m
CONFIG_CXD2880_SPI_DRV=m
CONFIG_DVB_DUMMY_FE=m
+CONFIG_AUXDISPLAY=y
+CONFIG_KS0108=m
+CONFIG_CFAG12864B=m
+CONFIG_HT16K33=m
CONFIG_AGP=m
CONFIG_AGP_AMD64=m
CONFIG_AGP_INTEL=m
@@ -2065,15 +2113,12 @@ CONFIG_DRM_AMDGPU=m
CONFIG_DRM_AMDGPU_SI=y
CONFIG_DRM_AMDGPU_CIK=y
CONFIG_DRM_AMD_ACP=y
-CONFIG_DRM_AMD_DC_HDCP=y
CONFIG_DRM_AMD_DC_SI=y
CONFIG_HSA_AMD=y
CONFIG_DRM_NOUVEAU=m
CONFIG_DRM_I915=m
-CONFIG_DRM_I915_GVT=y
CONFIG_DRM_VGEM=m
CONFIG_DRM_VMWGFX=m
-CONFIG_DRM_VMWGFX_FBCON=y
CONFIG_DRM_GMA500=m
CONFIG_DRM_AST=m
CONFIG_DRM_MGAG200=m
@@ -2083,20 +2128,17 @@ CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN=m
CONFIG_DRM_ANALOGIX_ANX78XX=m
CONFIG_DRM_BOCHS=m
CONFIG_DRM_CIRRUS_QEMU=m
+CONFIG_DRM_PANEL_MIPI_DBI=m
CONFIG_DRM_SIMPLEDRM=m
+CONFIG_TINYDRM_ILI9163=m
CONFIG_DRM_VBOXVIDEO=m
CONFIG_DRM_GUD=m
+CONFIG_DRM_SSD130X=m
CONFIG_DRM_HYPERV=m
-CONFIG_DRM_TDFX=m
-CONFIG_DRM_R128=m
-CONFIG_DRM_I810=m
-CONFIG_DRM_MGA=m
-CONFIG_DRM_SIS=m
-CONFIG_DRM_VIA=m
-CONFIG_DRM_SAVAGE=m
CONFIG_FB=y
-CONFIG_FB_TILEBLITTING=y
+CONFIG_FB_EFI=y
# CONFIG_XEN_FBDEV_FRONTEND is not set
+CONFIG_FB_TILEBLITTING=y
CONFIG_LCD_CLASS_DEVICE=m
CONFIG_LCD_L4F00242T03=m
CONFIG_LCD_LMS283GF05=m
@@ -2113,7 +2155,7 @@ CONFIG_BACKLIGHT_APPLE=m
CONFIG_BACKLIGHT_SAHARA=m
CONFIG_BACKLIGHT_ADP8860=m
CONFIG_BACKLIGHT_PCF50633=m
-CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER=y
CONFIG_SOUND=m
CONFIG_SND=m
@@ -2207,6 +2249,8 @@ CONFIG_SND_HDA_HWDEP=y
CONFIG_SND_HDA_RECONFIG=y
CONFIG_SND_HDA_INPUT_BEEP=y
CONFIG_SND_HDA_INPUT_BEEP_MODE=0
+CONFIG_SND_HDA_SCODEC_CS35L41_I2C=m
+CONFIG_SND_HDA_SCODEC_CS35L41_SPI=m
CONFIG_SND_HDA_CODEC_REALTEK=m
CONFIG_SND_HDA_CODEC_ANALOG=m
CONFIG_SND_HDA_CODEC_SIGMATEL=m
@@ -2220,6 +2264,7 @@ CONFIG_SND_HDA_CODEC_CA0132=m
CONFIG_SND_HDA_CODEC_CMEDIA=m
CONFIG_SND_HDA_CODEC_SI3054=m
CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM=y
+CONFIG_SND_INTEL_BYT_PREFER_SOF=y
CONFIG_SND_USB_AUDIO=m
CONFIG_SND_USB_UA101=m
CONFIG_SND_USB_USX2Y=m
@@ -2242,59 +2287,113 @@ CONFIG_SND_SOC=m
CONFIG_SND_SOC_AMD_ACP=m
CONFIG_SND_SOC_AMD_CZ_DA7219MX98357_MACH=m
CONFIG_SND_SOC_AMD_CZ_RT5645_MACH=m
+CONFIG_SND_SOC_AMD_ST_ES8336_MACH=m
CONFIG_SND_SOC_AMD_RENOIR=m
CONFIG_SND_SOC_AMD_RENOIR_MACH=m
+CONFIG_SND_SOC_AMD_ACP5x=m
+CONFIG_SND_SOC_AMD_VANGOGH_MACH=m
+CONFIG_SND_SOC_AMD_ACP6x=m
+CONFIG_SND_SOC_AMD_ACP_COMMON=m
+CONFIG_SND_SOC_AMD_ACP_PCI=m
+CONFIG_SND_AMD_ASOC_RENOIR=m
+CONFIG_SND_AMD_ASOC_REMBRANDT=m
+CONFIG_SND_SOC_AMD_SOF_MACH=m
+CONFIG_SND_SOC_AMD_RPL_ACP6x=m
+CONFIG_SND_SOC_AMD_PS=m
+CONFIG_SND_DESIGNWARE_I2S=m
CONFIG_SND_SOC_INTEL_CATPT=m
CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI=m
CONFIG_SND_SOC_INTEL_SKYLAKE=m
+CONFIG_SND_SOC_INTEL_CML_H=m
+CONFIG_SND_SOC_INTEL_CML_LP=m
CONFIG_SND_SOC_INTEL_SKYLAKE_HDAUDIO_CODEC=y
+CONFIG_SND_SOC_INTEL_AVS=m
+CONFIG_SND_SOC_INTEL_AVS_MACH_DA7219=m
+CONFIG_SND_SOC_INTEL_AVS_MACH_DMIC=m
+CONFIG_SND_SOC_INTEL_AVS_MACH_HDAUDIO=m
+CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98357A=m
+CONFIG_SND_SOC_INTEL_AVS_MACH_MAX98373=m
+CONFIG_SND_SOC_INTEL_AVS_MACH_NAU8825=m
+CONFIG_SND_SOC_INTEL_AVS_MACH_RT274=m
+CONFIG_SND_SOC_INTEL_AVS_MACH_RT286=m
+CONFIG_SND_SOC_INTEL_AVS_MACH_RT298=m
+CONFIG_SND_SOC_INTEL_AVS_MACH_RT5682=m
+CONFIG_SND_SOC_INTEL_AVS_MACH_SSM4567=m
+CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES=y
+CONFIG_SND_SOC_INTEL_HASWELL_MACH=m
+CONFIG_SND_SOC_INTEL_BDW_RT5650_MACH=m
CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH=m
CONFIG_SND_SOC_INTEL_BROADWELL_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH=m
CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH=m
+CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH=m
CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_CX2072X_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH=m
+CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH=m
+CONFIG_SND_SOC_INTEL_SKL_RT286_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH=m
CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_BXT_RT298_MACH=m
CONFIG_SND_SOC_INTEL_SOF_WM8804_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH=m
CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98357A_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_DA7219_MAX98927_MACH=m
+CONFIG_SND_SOC_INTEL_KBL_RT5660_MACH=m
CONFIG_SND_SOC_INTEL_GLK_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_GLK_RT5682_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_SKL_HDA_DSP_GENERIC_MACH=m
CONFIG_SND_SOC_INTEL_SOF_RT5682_MACH=m
CONFIG_SND_SOC_INTEL_SOF_CS42L42_MACH=m
CONFIG_SND_SOC_INTEL_SOF_PCM512x_MACH=m
+CONFIG_SND_SOC_INTEL_SOF_ES8336_MACH=m
+CONFIG_SND_SOC_INTEL_SOF_NAU8825_MACH=m
CONFIG_SND_SOC_INTEL_CML_LP_DA7219_MAX98357A_MACH=m
CONFIG_SND_SOC_INTEL_SOF_CML_RT1011_RT5682_MACH=m
CONFIG_SND_SOC_INTEL_SOF_DA7219_MAX98373_MACH=m
+CONFIG_SND_SOC_INTEL_SOF_SSP_AMP_MACH=m
CONFIG_SND_SOC_INTEL_EHL_RT5660_MACH=m
+CONFIG_SND_SOC_INTEL_SOUNDWIRE_SOF_MACH=m
CONFIG_SND_SOC_SOF_TOPLEVEL=y
CONFIG_SND_SOC_SOF_PCI=m
CONFIG_SND_SOC_SOF_ACPI=m
+CONFIG_SND_SOC_SOF_AMD_TOPLEVEL=m
+CONFIG_SND_SOC_SOF_AMD_REMBRANDT=m
CONFIG_SND_SOC_SOF_INTEL_TOPLEVEL=y
CONFIG_SND_SOC_SOF_HDA_LINK=y
CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC=y
CONFIG_SND_SOC_AK4458=m
CONFIG_SND_SOC_AK5558=m
+CONFIG_SND_SOC_AW8738=m
CONFIG_SND_SOC_BD28623=m
+CONFIG_SND_SOC_CROS_EC_CODEC=m
+CONFIG_SND_SOC_CS35L45_SPI=m
+CONFIG_SND_SOC_CS35L45_I2C=m
CONFIG_SND_SOC_MAX9867=m
+CONFIG_SND_SOC_MAX98520=m
+CONFIG_SND_SOC_MAX98396=m
CONFIG_SND_SOC_PCM1789_I2C=m
CONFIG_SND_SOC_PCM186X_I2C=m
CONFIG_SND_SOC_PCM186X_SPI=m
-CONFIG_SND_SOC_RT1316_SDW=m
-CONFIG_SND_SOC_RT711_SDCA_SDW=m
-CONFIG_SND_SOC_RT715_SDCA_SDW=m
CONFIG_SND_SOC_SIMPLE_AMPLIFIER=m
CONFIG_SND_SOC_SIMPLE_MUX=m
CONFIG_SND_SOC_SPDIF=m
+CONFIG_SND_SOC_TAS2780=m
+CONFIG_SND_SOC_TAS5805M=m
CONFIG_SND_SOC_TAS6424=m
CONFIG_SND_SOC_TDA7419=m
+CONFIG_SND_SOC_TLV320ADC3XXX=m
CONFIG_SND_SOC_TLV320AIC32X4_I2C=m
CONFIG_SND_SOC_TLV320AIC32X4_SPI=m
CONFIG_SND_SOC_TSCS42XX=m
+CONFIG_SND_SOC_WM8731_I2C=m
+CONFIG_SND_SOC_WM8731_SPI=m
+CONFIG_SND_SOC_WM8940=m
+CONFIG_SND_SOC_WSA883X=m
CONFIG_SND_SOC_MAX9759=m
CONFIG_SND_SIMPLE_CARD=m
CONFIG_HDMI_LPE_AUDIO=m
@@ -2314,11 +2413,13 @@ CONFIG_HID_ELAN=m
CONFIG_HID_GT683R=m
CONFIG_HID_KEYTOUCH=m
CONFIG_HID_UCLOGIC=m
+CONFIG_HID_XIAOMI=m
CONFIG_HID_ICADE=m
CONFIG_HID_JABRA=m
CONFIG_HID_KENSINGTON=m
CONFIG_HID_LCPOWER=m
CONFIG_HID_LENOVO=m
+CONFIG_HID_LETSKETCH=m
CONFIG_HID_LOGITECH=m
CONFIG_HID_LOGITECH_DJ=m
CONFIG_LOGITECH_FF=y
@@ -2326,8 +2427,10 @@ CONFIG_LOGIRUMBLEPAD2_FF=y
CONFIG_LOGIG940_FF=y
CONFIG_HID_MAGICMOUSE=m
CONFIG_HID_MAYFLASH=m
+CONFIG_HID_MEGAWORLD_FF=m
CONFIG_HID_MICROSOFT=m
CONFIG_HID_MULTITOUCH=m
+CONFIG_HID_NINTENDO=m
CONFIG_HID_ORTEK=m
CONFIG_HID_PENMOUNT=m
CONFIG_HID_PICOLCD=m
@@ -2337,15 +2440,21 @@ CONFIG_HID_PICOLCD_LCD=y
CONFIG_HID_PICOLCD_LEDS=y
CONFIG_HID_PICOLCD_CIR=y
CONFIG_HID_PLANTRONICS=m
+CONFIG_HID_PLAYSTATION=m
+CONFIG_PLAYSTATION_FF=y
+CONFIG_HID_PXRC=m
+CONFIG_HID_RAZER=m
CONFIG_HID_PRIMAX=m
CONFIG_HID_ROCCAT=m
CONFIG_HID_SEMITEK=m
+CONFIG_HID_SIGMAMICRO=m
CONFIG_HID_SONY=m
CONFIG_SONY_FF=y
CONFIG_HID_SPEEDLINK=m
CONFIG_HID_STEAM=m
CONFIG_HID_RMI=m
CONFIG_HID_HYPERV_MOUSE=m
+CONFIG_HID_TOPRE=m
CONFIG_HID_THINGM=m
CONFIG_HID_WACOM=m
CONFIG_HID_WIIMOTE=m
@@ -2358,7 +2467,6 @@ CONFIG_INTEL_ISH_HID=m
CONFIG_AMD_SFH_HID=m
CONFIG_USB_LED_TRIG=y
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-CONFIG_USB_OTG=y
CONFIG_USB_LEDS_TRIGGER_USBPORT=m
CONFIG_USB_MON=m
CONFIG_USB_C67X00_HCD=m
@@ -2372,11 +2480,11 @@ CONFIG_USB_ISP116X_HCD=m
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_OHCI_HCD_SSB=y
CONFIG_USB_UHCI_HCD=m
-CONFIG_USB_U132_HCD=m
CONFIG_USB_SL811_HCD=m
CONFIG_USB_SL811_HCD_ISO=y
CONFIG_USB_SL811_CS=m
CONFIG_USB_R8A66597_HCD=m
+CONFIG_USB_XEN_HCD=m
CONFIG_USB_PRINTER=m
CONFIG_USB_TMC=m
CONFIG_USB_STORAGE=m
@@ -2397,7 +2505,6 @@ CONFIG_USB_UAS=m
CONFIG_USBIP_CORE=m
CONFIG_USBIP_VHCI_HCD=m
CONFIG_USBIP_HOST=m
-CONFIG_USB_USS720=m
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_SIMPLE=m
@@ -2446,6 +2553,7 @@ CONFIG_USB_SERIAL_XSENS_MT=m
CONFIG_USB_SERIAL_QT2=m
CONFIG_USB_SERIAL_XR=m
CONFIG_USB_SERIAL_DEBUG=m
+CONFIG_USB_USS720=m
CONFIG_USB_EMI62=m
CONFIG_USB_EMI26=m
CONFIG_USB_ADUTUX=m
@@ -2454,7 +2562,6 @@ CONFIG_USB_LCD=m
CONFIG_USB_CYPRESS_CY7C63=m
CONFIG_USB_CYTHERM=m
CONFIG_USB_IDMOUSE=m
-CONFIG_USB_FTDI_ELAN=m
CONFIG_APPLE_MFI_FASTCHARGE=m
CONFIG_USB_SISUSBVGA=m
CONFIG_USB_LD=m
@@ -2473,6 +2580,9 @@ CONFIG_NOP_USB_XCEIV=m
CONFIG_USB_GPIO_VBUS=m
CONFIG_TYPEC=m
CONFIG_TYPEC_TPS6598X=m
+CONFIG_TYPEC_RT1719=m
+CONFIG_TYPEC_WUSB3801=m
+CONFIG_TYPEC_MUX_FSA4480=m
CONFIG_TYPEC_MUX_PI3USB30532=m
CONFIG_TYPEC_MUX_INTEL_PMC=m
CONFIG_TYPEC_DP_ALTMODE=m
@@ -2496,6 +2606,11 @@ CONFIG_MMC_REALTEK_USB=m
CONFIG_MMC_HSQ=m
CONFIG_MMC_TOSHIBA_PCI=m
CONFIG_MMC_MTK=m
+CONFIG_SCSI_UFSHCD=m
+CONFIG_SCSI_UFS_HWMON=y
+CONFIG_SCSI_UFSHCD_PCI=m
+CONFIG_SCSI_UFSHCD_PLATFORM=m
+CONFIG_SCSI_UFS_CDNS_PLATFORM=m
CONFIG_MEMSTICK=m
CONFIG_MSPRO_BLOCK=m
CONFIG_MEMSTICK_TIFM_MS=m
@@ -2505,11 +2620,11 @@ CONFIG_MEMSTICK_REALTEK_PCI=m
CONFIG_MEMSTICK_REALTEK_USB=m
CONFIG_LEDS_CLASS=y
CONFIG_LEDS_CLASS_FLASH=m
+CONFIG_LEDS_CLASS_MULTICOLOR=m
CONFIG_LEDS_APU=m
CONFIG_LEDS_LM3530=m
CONFIG_LEDS_LP3944=m
CONFIG_LEDS_LP3952=m
-CONFIG_LEDS_CLEVO_MAIL=m
CONFIG_LEDS_REGULATOR=m
CONFIG_LEDS_INTEL_SS4200=m
CONFIG_LEDS_LT3593=m
@@ -2524,7 +2639,6 @@ CONFIG_LEDS_TRIGGER_MTD=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=m
CONFIG_LEDS_TRIGGER_BACKLIGHT=m
CONFIG_LEDS_TRIGGER_ACTIVITY=m
-CONFIG_LEDS_TRIGGER_GPIO=m
CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
CONFIG_LEDS_TRIGGER_TRANSIENT=m
CONFIG_LEDS_TRIGGER_CAMERA=m
@@ -2546,13 +2660,14 @@ CONFIG_SPEAKUP_SYNTH_TXPRT=m
CONFIG_INFINIBAND=m
CONFIG_INFINIBAND_USER_MAD=m
CONFIG_INFINIBAND_USER_ACCESS=m
-CONFIG_INFINIBAND_MTHCA=m
-# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
CONFIG_INFINIBAND_CXGB4=m
+CONFIG_INFINIBAND_ERDMA=m
+CONFIG_INFINIBAND_HFI1=m
CONFIG_INFINIBAND_IRDMA=m
CONFIG_MLX4_INFINIBAND=m
CONFIG_MLX5_INFINIBAND=m
-CONFIG_INFINIBAND_HFI1=m
+CONFIG_INFINIBAND_MTHCA=m
+# CONFIG_INFINIBAND_MTHCA_DEBUG is not set
CONFIG_INFINIBAND_RDMAVT=m
CONFIG_RDMA_RXE=m
CONFIG_INFINIBAND_IPOIB=m
@@ -2572,7 +2687,6 @@ CONFIG_EDAC_IE31200=m
CONFIG_EDAC_X38=m
CONFIG_EDAC_I5400=m
CONFIG_EDAC_I7CORE=m
-CONFIG_EDAC_I5000=m
CONFIG_EDAC_I5100=m
CONFIG_EDAC_I7300=m
CONFIG_EDAC_SBRIDGE=m
@@ -2631,19 +2745,15 @@ 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_PCF50633=m
+CONFIG_RTC_DRV_CROS_EC=m
CONFIG_DMADEVICES=y
CONFIG_INTEL_IDMA64=m
CONFIG_INTEL_IOATDMA=m
CONFIG_AMD_PTDMA=m
CONFIG_QCOM_HIDMA_MGMT=m
CONFIG_DMATEST=m
-CONFIG_AUXDISPLAY=y
-CONFIG_KS0108=m
-CONFIG_CFAG12864B=m
CONFIG_UIO_CIF=m
CONFIG_UIO_PDRV_GENIRQ=m
CONFIG_UIO_AEC=m
@@ -2653,12 +2763,15 @@ CONFIG_UIO_NETX=m
CONFIG_VFIO=m
CONFIG_VFIO_PCI=m
CONFIG_VFIO_PCI_VGA=y
+CONFIG_MLX5_VFIO_PCI=m
CONFIG_VIRT_DRIVERS=y
CONFIG_VBOXGUEST=m
CONFIG_NITRO_ENCLAVES=m
+CONFIG_EFI_SECRET=m
CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_VDPA=m
CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_MEM=m
CONFIG_VIRTIO_INPUT=m
CONFIG_VIRTIO_MMIO=m
CONFIG_VDPA=m
@@ -2678,23 +2791,49 @@ CONFIG_XENFS=m
CONFIG_XEN_PVCALLS_FRONTEND=m
CONFIG_XEN_SCSI_BACKEND=m
# CONFIG_XEN_SYMS is not set
+CONFIG_XEN_VIRTIO=y
CONFIG_STAGING=y
CONFIG_RTLLIB=m
CONFIG_RTL8723BS=m
-CONFIG_R8188EU=m
-CONFIG_88EU_AP_MODE=y
-CONFIG_ASHMEM=y
+CONFIG_R8712U=m
+CONFIG_STAGING_MEDIA=y
+CONFIG_INTEL_ATOMISP=y
CONFIG_QLGE=m
+CONFIG_CHROME_PLATFORMS=y
+CONFIG_CHROMEOS_ACPI=m
+CONFIG_CHROMEOS_LAPTOP=m
+CONFIG_CHROMEOS_PSTORE=m
+CONFIG_CHROMEOS_TBMC=m
+CONFIG_CROS_EC=m
+CONFIG_CROS_EC_I2C=m
+CONFIG_CROS_EC_ISHTP=m
+CONFIG_CROS_EC_SPI=m
+CONFIG_CROS_EC_LPC=m
+CONFIG_CROS_KBD_LED_BACKLIGHT=m
+CONFIG_CHROMEOS_PRIVACY_SCREEN=m
+CONFIG_WILCO_EC=m
+CONFIG_WILCO_EC_DEBUGFS=m
+CONFIG_WILCO_EC_EVENTS=m
+CONFIG_WILCO_EC_TELEMETRY=m
+CONFIG_MELLANOX_PLATFORM=y
+CONFIG_MLXREG_HOTPLUG=m
+CONFIG_MLXREG_IO=m
+CONFIG_MLXREG_LC=m
+CONFIG_NVSW_SN2201=m
+CONFIG_NVIDIA_WMI_EC_BACKLIGHT=m
CONFIG_GIGABYTE_WMI=m
CONFIG_ACERHDF=m
CONFIG_ACER_WIRELESS=m
CONFIG_ACER_WMI=m
+CONFIG_AMD_PMF=m
CONFIG_AMD_PMC=m
+CONFIG_AMD_HSMP=m
CONFIG_APPLE_GMUX=m
CONFIG_ASUS_LAPTOP=m
CONFIG_ASUS_WIRELESS=m
CONFIG_ASUS_WMI=m
CONFIG_ASUS_NB_WMI=m
+CONFIG_ASUS_TF103C_DOCK=m
CONFIG_EEEPC_LAPTOP=m
CONFIG_EEEPC_WMI=m
CONFIG_X86_PLATFORM_DRIVERS_DELL=y
@@ -2703,29 +2842,28 @@ CONFIG_DELL_WMI_PRIVACY=y
CONFIG_AMILO_RFKILL=m
CONFIG_FUJITSU_LAPTOP=m
CONFIG_GPD_POCKET_FAN=m
-CONFIG_HP_ACCEL=m
CONFIG_WIRELESS_HOTKEY=m
-CONFIG_HP_WMI=m
CONFIG_IDEAPAD_LAPTOP=m
CONFIG_SENSORS_HDAPS=m
CONFIG_THINKPAD_ACPI=m
CONFIG_THINKPAD_LMI=m
-CONFIG_INTEL_ATOMISP2_PM=m
CONFIG_INTEL_SAR_INT1092=m
CONFIG_INTEL_SKL_INT3472=m
CONFIG_INTEL_PMC_CORE=y
CONFIG_INTEL_TELEMETRY=m
CONFIG_INTEL_WMI_THUNDERBOLT=m
+CONFIG_INTEL_UNCORE_FREQ_CONTROL=m
CONFIG_INTEL_HID_EVENT=m
CONFIG_INTEL_VBTN=m
CONFIG_INTEL_OAKTRAIL=m
CONFIG_INTEL_BXTWC_PMIC_TMU=m
-CONFIG_INTEL_CHTDC_TI_PWRBTN=m
+CONFIG_INTEL_ISHTP_ECLITE=m
CONFIG_INTEL_PUNIT_IPC=m
-CONFIG_INTEL_UNCORE_FREQ_CONTROL=m
+CONFIG_INTEL_VSEC=m
CONFIG_MSI_LAPTOP=m
CONFIG_MSI_WMI=m
CONFIG_PCENGINES_APU2=m
+CONFIG_BARCO_P50_GPIO=m
CONFIG_TOSHIBA_BT_RFKILL=m
CONFIG_TOSHIBA_HAPS=m
CONFIG_ACPI_CMPC=m
@@ -2733,16 +2871,12 @@ CONFIG_COMPAL_LAPTOP=m
CONFIG_PANASONIC_LAPTOP=m
CONFIG_SONY_LAPTOP=m
CONFIG_SYSTEM76_ACPI=m
-CONFIG_I2C_MULTI_INSTANTIATE=m
+CONFIG_SERIAL_MULTI_INSTANTIATE=m
CONFIG_MLX_PLATFORM=m
-CONFIG_CHROME_PLATFORMS=y
-CONFIG_CHROMEOS_LAPTOP=m
-CONFIG_CHROMEOS_PSTORE=m
-CONFIG_CROS_KBD_LED_BACKLIGHT=m
-CONFIG_MELLANOX_PLATFORM=y
-CONFIG_MLXREG_HOTPLUG=m
-CONFIG_MLXREG_IO=m
+CONFIG_X86_ANDROID_TABLETS=m
+CONFIG_WINMATE_FM07_KEYS=m
CONFIG_COMMON_CLK_SI544=m
+CONFIG_COMMON_CLK_TPS68470=m
CONFIG_XILINX_VCU=m
CONFIG_AMD_IOMMU=y
CONFIG_INTEL_IOMMU=y
@@ -2750,6 +2884,7 @@ CONFIG_INTEL_IOMMU=y
# CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set
CONFIG_IRQ_REMAP=y
CONFIG_VIRTIO_IOMMU=m
+CONFIG_RPMSG_CTRL=m
CONFIG_RPMSG_VIRTIO=m
CONFIG_SOUNDWIRE=y
CONFIG_DEVFREQ_GOV_PERFORMANCE=m
@@ -2757,20 +2892,43 @@ CONFIG_DEVFREQ_GOV_POWERSAVE=m
CONFIG_DEVFREQ_GOV_USERSPACE=m
CONFIG_EXTCON_AXP288=m
CONFIG_EXTCON_GPIO=m
+CONFIG_EXTCON_USBC_CROS_EC=m
CONFIG_MEMORY=y
CONFIG_IIO=m
CONFIG_HID_SENSOR_ACCEL_3D=m
+CONFIG_IIO_CROS_EC_ACCEL_LEGACY=m
+CONFIG_MSA311=m
CONFIG_AXP288_ADC=m
+CONFIG_ENVELOPE_DETECTOR=m
+CONFIG_MAX11205=m
+CONFIG_RICHTEK_RTQ6056=m
+CONFIG_SD_ADC_MODULATOR=m
+CONFIG_TI_ADS8344=m
+CONFIG_IIO_RESCALE=m
+CONFIG_IIO_CROS_EC_SENSORS_CORE=m
+CONFIG_IIO_CROS_EC_SENSORS=m
+CONFIG_IIO_CROS_EC_SENSORS_LID_ANGLE=m
CONFIG_IIO_SSP_SENSORHUB=m
+CONFIG_LTC2688=m
+CONFIG_DPOT_DAC=m
CONFIG_HID_SENSOR_GYRO_3D=m
CONFIG_HID_SENSOR_HUMIDITY=m
+CONFIG_CM32181=m
+CONFIG_CM3605=m
+CONFIG_IIO_CROS_EC_LIGHT_PROX=m
CONFIG_HID_SENSOR_ALS=m
CONFIG_HID_SENSOR_PROX=m
+CONFIG_LTRF216A=m
CONFIG_HID_SENSOR_MAGNETOMETER_3D=m
+CONFIG_IIO_MUX=m
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
+CONFIG_IIO_CROS_EC_BARO=m
CONFIG_HID_SENSOR_PRESS=m
+CONFIG_SX9324=m
+CONFIG_SX9360=m
CONFIG_HID_SENSOR_TEMP=m
+CONFIG_MAX31865=m
CONFIG_NTB=m
CONFIG_NTB_AMD=m
CONFIG_NTB_INTEL=m
@@ -2779,20 +2937,21 @@ CONFIG_NTB_PINGPONG=m
CONFIG_NTB_PERF=m
CONFIG_NTB_TRANSPORT=m
CONFIG_PWM=y
+CONFIG_PWM_CRC=y
+CONFIG_PWM_CROS_EC=m
+CONFIG_PWM_DWC=m
CONFIG_PWM_LPSS_PCI=m
CONFIG_PWM_LPSS_PLATFORM=m
CONFIG_PWM_PCA9685=m
-CONFIG_POWERCAP=y
+CONFIG_RESET_TI_TPS380X=m
CONFIG_INTEL_RAPL=m
CONFIG_USB4=m
-CONFIG_ANDROID=y
CONFIG_ANDROID_BINDER_IPC=y
CONFIG_ANDROID_BINDERFS=y
-CONFIG_ANDROID_BINDER_IPC_SELFTEST=y
+CONFIG_LIBNVDIMM=y
CONFIG_BLK_DEV_PMEM=m
CONFIG_DEV_DAX=m
CONFIG_NVMEM_RMEM=m
-CONFIG_UNISYS_VISORBUS=m
CONFIG_EXT2_FS=m
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
@@ -2823,16 +2982,18 @@ CONFIG_NILFS2_FS=m
CONFIG_F2FS_FS=m
# CONFIG_F2FS_STAT_FS is not set
CONFIG_F2FS_FS_COMPRESSION=y
+CONFIG_F2FS_UNFAIR_RWSEM=y
CONFIG_FS_DAX=y
CONFIG_FS_ENCRYPTION=y
CONFIG_FS_VERITY=y
CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
# CONFIG_DNOTIFY is not set
+CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
CONFIG_QFMT_V1=m
CONFIG_QFMT_V2=m
-CONFIG_AUTOFS4_FS=m
+CONFIG_AUTOFS_FS=m
CONFIG_FUSE_FS=m
CONFIG_VIRTIO_FS=m
CONFIG_OVERLAY_FS=m
@@ -2870,7 +3031,6 @@ CONFIG_JFFS2_RUBIN=y
CONFIG_UBIFS_FS=m
CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_FILE_DIRECT=y
-CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
@@ -2881,9 +3041,6 @@ CONFIG_MINIX_FS=m
CONFIG_OMFS_FS=m
CONFIG_HPFS_FS=m
CONFIG_ROMFS_FS=m
-CONFIG_PSTORE_DEFLATE_COMPRESS=m
-CONFIG_PSTORE_ZSTD_COMPRESS=y
-CONFIG_PSTORE_ZSTD_COMPRESS_DEFAULT=y
CONFIG_PSTORE_RAM=m
CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m
@@ -2898,7 +3055,6 @@ CONFIG_NFSD_V4=y
CONFIG_NFSD_BLOCKLAYOUT=y
CONFIG_NFSD_SCSILAYOUT=y
CONFIG_NFSD_FLEXFILELAYOUT=y
-CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -2979,7 +3135,6 @@ CONFIG_SECURITY_LANDLOCK=y
# CONFIG_INTEGRITY is not set
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,integrity"
-CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF=y
CONFIG_GCC_PLUGIN_STACKLEAK=y
CONFIG_STACKLEAK_RUNTIME_DISABLE=y
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
@@ -2990,49 +3145,28 @@ CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_ECDSA=m
CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_CURVE25519=m
-CONFIG_CRYPTO_CHACHA20POLY1305=m
-CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m
+CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_ADIANTUM=m
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_CFB=m
CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_HCTR2=m
+CONFIG_CRYPTO_KEYWRAP=m
CONFIG_CRYPTO_LRW=m
CONFIG_CRYPTO_PCBC=m
CONFIG_CRYPTO_XTS=y
-CONFIG_CRYPTO_KEYWRAP=m
-CONFIG_CRYPTO_NHPOLY1305_SSE2=m
-CONFIG_CRYPTO_NHPOLY1305_AVX2=m
-CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-CONFIG_CRYPTO_CRC32_PCLMUL=m
-CONFIG_CRYPTO_BLAKE2S=m
-CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m
+CONFIG_CRYPTO_AEGIS128=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_SHA1_SSSE3=m
-CONFIG_CRYPTO_SHA256_SSSE3=m
-CONFIG_CRYPTO_SHA512_SSSE3=m
-CONFIG_CRYPTO_SHA512=y
-CONFIG_CRYPTO_SHA3=m
+CONFIG_CRYPTO_VMAC=m
CONFIG_CRYPTO_WP512=m
-CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
-CONFIG_CRYPTO_AES=y
-CONFIG_CRYPTO_AES_NI_INTEL=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_BLOWFISH_X86_64=m
-CONFIG_CRYPTO_CAMELLIA=m
-CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m
-CONFIG_CRYPTO_CAST5_AVX_X86_64=m
-CONFIG_CRYPTO_CAST6_AVX_X86_64=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_FCRYPT=m
-CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
-CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m
-CONFIG_CRYPTO_SM4=m
-CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
+CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_LZ4=m
CONFIG_CRYPTO_LZ4HC=m
@@ -3042,6 +3176,24 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
+CONFIG_CRYPTO_AES_NI_INTEL=m
+CONFIG_CRYPTO_BLOWFISH_X86_64=m
+CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m
+CONFIG_CRYPTO_CAST5_AVX_X86_64=m
+CONFIG_CRYPTO_CAST6_AVX_X86_64=m
+CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
+CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m
+CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64=m
+CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
+CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m
+CONFIG_CRYPTO_NHPOLY1305_SSE2=m
+CONFIG_CRYPTO_NHPOLY1305_AVX2=m
+CONFIG_CRYPTO_SHA1_SSSE3=m
+CONFIG_CRYPTO_SHA256_SSSE3=m
+CONFIG_CRYPTO_SHA512_SSSE3=m
+CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
+CONFIG_CRYPTO_CRC32_PCLMUL=m
+CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m
CONFIG_CRYPTO_DEV_PADLOCK=m
CONFIG_CRYPTO_DEV_PADLOCK_AES=m
CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
@@ -3059,10 +3211,15 @@ CONFIG_PKCS8_PRIVATE_KEY_PARSER=m
CONFIG_SIGNED_PE_FILE_VERIFICATION=y
CONFIG_SECONDARY_TRUSTED_KEYRING=y
CONFIG_CRC_T10DIF=y
+CONFIG_XZ_DEC_MICROLZMA=y
CONFIG_PRINTK_TIME=y
CONFIG_CONSOLE_LOGLEVEL_QUIET=3
+CONFIG_DYNAMIC_DEBUG=y
+CONFIG_DEBUG_INFO_DWARF5=y
+CONFIG_DEBUG_INFO_BTF=y
CONFIG_FRAME_WARN=1280
CONFIG_MAGIC_SYSRQ=y
+# CONFIG_SLUB_DEBUG is not set
CONFIG_DEBUG_KMEMLEAK=y
CONFIG_DEBUG_KMEMLEAK_DEFAULT_OFF=y
CONFIG_KFENCE=y
diff --git a/main/linux-lts/ppc-export_mmu_feature_keys_as_non-GPL.patch b/main/linux-lts/ppc-export_mmu_feature_keys_as_non-GPL.patch
deleted file mode 100644
index 6aaa5d2dfda..00000000000
--- a/main/linux-lts/ppc-export_mmu_feature_keys_as_non-GPL.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From d9e5c3e9e75162f845880535957b7fd0b4637d23 Mon Sep 17 00:00:00 2001
-From: Kevin Hao <haokexin@gmail.com>
-Date: Tue, 29 Mar 2022 16:57:09 +0800
-Subject: [PATCH] powerpc: Export mmu_feature_keys[] as non-GPL
-
-When the mmu_feature_keys[] was introduced in the commit c12e6f24d413
-("powerpc: Add option to use jump label for mmu_has_feature()"),
-it is unlikely that it would be used either directly or indirectly in
-the out of tree modules. So we exported it as GPL only.
-
-But with the evolution of the codes, especially the PPC_KUAP support, it
-may be indirectly referenced by some primitive macro or inline functions
-such as get_user() or __copy_from_user_inatomic(), this will make it
-impossible to build many non GPL modules (such as ZFS) on ppc
-architecture. Fix this by exposing the mmu_feature_keys[] to the non-GPL
-modules too.
-
-Fixes: 7613f5a66bec ("powerpc/64s/kuap: Use mmu_has_feature()")
-Reported-by: Nathaniel Filardo <nwfilardo@gmail.com>
-Signed-off-by: Kevin Hao <haokexin@gmail.com>
-Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-Link: https://lore.kernel.org/r/20220329085709.4132729-1-haokexin@gmail.com
----
- arch/powerpc/kernel/cputable.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/powerpc/kernel/cputable.c b/arch/powerpc/kernel/cputable.c
-index 7bd6546b9fde..f9b3def5b254 100644
---- a/arch/powerpc/kernel/cputable.c
-+++ b/arch/powerpc/kernel/cputable.c
-@@ -2119,7 +2119,7 @@ void __init cpu_feature_keys_init(void)
- struct static_key_true mmu_feature_keys[NUM_MMU_FTR_KEYS] = {
- [0 ... NUM_MMU_FTR_KEYS - 1] = STATIC_KEY_TRUE_INIT
- };
--EXPORT_SYMBOL_GPL(mmu_feature_keys);
-+EXPORT_SYMBOL(mmu_feature_keys);
-
- void __init mmu_feature_keys_init(void)
- {
---
-2.36.1
-
diff --git a/main/linux-lts/virt.aarch64.config b/main/linux-lts/virt.aarch64.config
index f076e9a5046..beae57a663f 100644
--- a/main/linux-lts/virt.aarch64.config
+++ b/main/linux-lts/virt.aarch64.config
@@ -3,12 +3,13 @@ CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_USELIB=y
CONFIG_AUDIT=y
+CONFIG_NO_HZ_FULL=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT=y
CONFIG_BPF_JIT_ALWAYS_ON=y
-CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
+CONFIG_PREEMPT_DYNAMIC=y
CONFIG_SCHED_CORE=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
@@ -16,7 +17,8 @@ CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y
-CONFIG_LOG_BUF_SHIFT=14
+CONFIG_PSI=y
+CONFIG_PSI_DEFAULT_DISABLED=y
CONFIG_NUMA_BALANCING=y
CONFIG_MEMCG=y
CONFIG_BLK_CGROUP=y
@@ -38,10 +40,8 @@ CONFIG_BLK_DEV_INITRD=y
CONFIG_EXPERT=y
# CONFIG_SYSFS_SYSCALL is not set
CONFIG_KALLSYMS_ALL=y
-# CONFIG_SLUB_DEBUG is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_PROFILING=y
+CONFIG_KEXEC=y
CONFIG_ARCH_ALPINE=y
CONFIG_ARCH_HISI=y
CONFIG_ARCH_QCOM=y
@@ -57,7 +57,6 @@ CONFIG_NR_CPUS=4096
CONFIG_NUMA=y
CONFIG_NODES_SHIFT=2
CONFIG_HZ_100=y
-CONFIG_PARAVIRT=y
CONFIG_COMPAT=y
CONFIG_ARMV8_DEPRECATED=y
CONFIG_SWP_EMULATION=y
@@ -66,7 +65,6 @@ CONFIG_ARM64_ACPI_PARKING_PROTOCOL=y
CONFIG_HIBERNATION=y
# CONFIG_HIBERNATION_SNAPSHOT_DEV is not set
CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_ARM_CPUIDLE=y
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_STAT=y
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
@@ -80,49 +78,42 @@ CONFIG_ACPI_TINY_POWER_BUTTON=m
CONFIG_ACPI_FAN=m
CONFIG_ACPI_THERMAL=m
CONFIG_ACPI_PCI_SLOT=y
+CONFIG_ACPI_HOTPLUG_MEMORY=y
CONFIG_ACPI_APEI=y
CONFIG_ACPI_APEI_GHES=y
CONFIG_ACPI_APEI_EINJ=m
CONFIG_VIRTUALIZATION=y
CONFIG_KVM=y
-CONFIG_CRYPTO_SHA1_ARM64_CE=m
-CONFIG_CRYPTO_SHA2_ARM64_CE=m
-CONFIG_CRYPTO_SHA512_ARM64_CE=m
-CONFIG_CRYPTO_SHA3_ARM64=m
-CONFIG_CRYPTO_SM3_ARM64_CE=m
-CONFIG_CRYPTO_SM4_ARM64_CE=m
-CONFIG_CRYPTO_GHASH_ARM64_CE=m
-CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m
-CONFIG_CRYPTO_AES_ARM64_CE_CCM=m
-CONFIG_CRYPTO_AES_ARM64_CE_BLK=m
-CONFIG_CRYPTO_NHPOLY1305_NEON=m
-CONFIG_CRYPTO_AES_ARM64_BS=m
CONFIG_KPROBES=y
-CONFIG_JUMP_LABEL=y
CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y
CONFIG_GCC_PLUGIN_LATENT_ENTROPY=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_UNLOAD_TAINT_TRACKING=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SIG=y
+CONFIG_MODULE_SIG_SHA256=y
CONFIG_MODULE_COMPRESS_GZIP=y
CONFIG_BLK_DEV_THROTTLING=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_IOSCHED_BFQ=y
-CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_BINFMT_MISC=m
-CONFIG_KSM=y
-CONFIG_TRANSPARENT_HUGEPAGE=y
-CONFIG_CLEANCACHE=y
-CONFIG_FRONTSWAP=y
CONFIG_ZSWAP=y
CONFIG_Z3FOLD=m
CONFIG_ZSMALLOC=y
+CONFIG_SLAB_FREELIST_RANDOM=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_MEMORY_HOTPLUG=y
+CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y
+CONFIG_MEMORY_HOTREMOVE=y
+CONFIG_KSM=y
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_LRU_GEN=y
+CONFIG_LRU_GEN_ENABLED=y
CONFIG_NET=y
CONFIG_PACKET=m
CONFIG_PACKET_DIAG=m
-CONFIG_UNIX=y
CONFIG_UNIX_DIAG=m
CONFIG_TLS=m
CONFIG_XFRM_USER=m
@@ -132,7 +123,6 @@ CONFIG_XFRM_STATISTICS=y
CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y
CONFIG_XDP_SOCKETS=y
-CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
@@ -181,6 +171,7 @@ CONFIG_IPV6_SUBTREES=y
CONFIG_IPV6_MROUTE=y
CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
CONFIG_IPV6_PIMSM_V2=y
+CONFIG_MPTCP=y
CONFIG_NETWORK_SECMARK=y
CONFIG_NETWORK_PHY_TIMESTAMPING=y
CONFIG_NETFILTER=y
@@ -211,7 +202,6 @@ CONFIG_NF_TABLES_NETDEV=y
CONFIG_NFT_NUMGEN=m
CONFIG_NFT_CT=m
CONFIG_NFT_FLOW_OFFLOAD=m
-CONFIG_NFT_COUNTER=m
CONFIG_NFT_CONNLIMIT=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
@@ -219,21 +209,24 @@ CONFIG_NFT_MASQ=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_NAT=m
CONFIG_NFT_TUNNEL=m
-CONFIG_NFT_OBJREF=m
CONFIG_NFT_QUEUE=m
CONFIG_NFT_QUOTA=m
CONFIG_NFT_REJECT=m
CONFIG_NFT_COMPAT=m
CONFIG_NFT_HASH=m
CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_XFRM=m
CONFIG_NFT_SOCKET=m
CONFIG_NFT_OSF=m
CONFIG_NFT_TPROXY=m
+CONFIG_NFT_SYNPROXY=m
CONFIG_NFT_DUP_NETDEV=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_REJECT_NETDEV=m
CONFIG_NF_FLOW_TABLE_INET=m
CONFIG_NF_FLOW_TABLE=m
+CONFIG_NF_FLOW_TABLE_PROCFS=y
CONFIG_NETFILTER_XT_SET=m
CONFIG_NETFILTER_XT_TARGET_AUDIT=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
@@ -337,7 +330,6 @@ CONFIG_IP_VS_PE_SIP=m
CONFIG_NFT_DUP_IPV4=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NF_TABLES_ARP=y
-CONFIG_NF_FLOW_TABLE_IPV4=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_IPV4=m
CONFIG_IP_NF_IPTABLES=m
@@ -353,7 +345,6 @@ CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_RAW=m
@@ -362,7 +353,6 @@ CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
-CONFIG_NF_FLOW_TABLE_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_EUI64=m
@@ -421,7 +411,6 @@ CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q_MVRP=y
CONFIG_LLC2=m
CONFIG_NET_SCHED=y
-CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_PRIO=m
@@ -434,7 +423,6 @@ CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_CBS=m
CONFIG_NET_SCH_ETF=m
CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_MQPRIO=m
@@ -447,17 +435,15 @@ CONFIG_NET_SCH_CAKE=m
CONFIG_NET_SCH_FQ=m
CONFIG_NET_SCH_HHF=m
CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_FQ_PIE=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_SCH_PLUG=m
CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_PERF=y
CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_FLOW=m
CONFIG_NET_CLS_CGROUP=m
CONFIG_NET_CLS_BPF=m
@@ -494,6 +480,7 @@ CONFIG_NET_IFE_SKBTCINDEX=m
CONFIG_OPENVSWITCH=m
CONFIG_VSOCKETS=m
CONFIG_VIRTIO_VSOCKETS=m
+CONFIG_HYPERV_VSOCKETS=m
CONFIG_NETLINK_DIAG=m
CONFIG_MPLS_ROUTING=m
CONFIG_MPLS_IPTUNNEL=m
@@ -511,18 +498,21 @@ CONFIG_PCI_PF_STUB=m
CONFIG_PCI_IOV=y
CONFIG_PCI_PRI=y
CONFIG_PCI_PASID=y
+CONFIG_PCI_HYPERV=m
+# CONFIG_VGA_ARB is not set
CONFIG_HOTPLUG_PCI=y
CONFIG_HOTPLUG_PCI_ACPI=y
CONFIG_HOTPLUG_PCI_ACPI_IBM=m
-CONFIG_PCI_HOST_GENERIC=y
-CONFIG_PCI_XGENE=y
CONFIG_PCI_HOST_THUNDER_PEM=y
CONFIG_PCI_HOST_THUNDER_ECAM=y
+CONFIG_PCI_HOST_GENERIC=y
+CONFIG_PCI_XGENE=y
CONFIG_PCI_HISI=y
CONFIG_UEVENT_HELPER=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_DEVTMPFS_SAFE=y
CONFIG_FW_LOADER=m
CONFIG_FW_LOADER_USER_HELPER=y
CONFIG_CONNECTOR=y
@@ -532,7 +522,7 @@ CONFIG_FW_CFG_SYSFS=m
CONFIG_SYSFB_SIMPLEFB=y
CONFIG_EFI_VARS_PSTORE=m
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
-CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
+CONFIG_EFI_ZBOOT=y
# CONFIG_EFI_CUSTOM_SSDT_OVERLAYS is not set
# CONFIG_ARM_SMCCC_SOC_ID is not set
CONFIG_MTD=m
@@ -548,7 +538,6 @@ CONFIG_OF_OVERLAY=y
CONFIG_ZRAM=m
CONFIG_ZRAM_DEF_COMP_LZ4=y
CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_NBD=m
CONFIG_VIRTIO_BLK=m
@@ -628,6 +617,7 @@ CONFIG_IPVLAN=m
CONFIG_IPVTAP=m
CONFIG_VXLAN=m
CONFIG_GENEVE=m
+CONFIG_BAREUDP=m
CONFIG_MACSEC=m
CONFIG_NETCONSOLE=m
CONFIG_NETCONSOLE_DYNAMIC=y
@@ -656,6 +646,7 @@ CONFIG_ENA_ETHERNET=m
# CONFIG_NET_VENDOR_DLINK is not set
# CONFIG_NET_VENDOR_EMULEX is not set
# CONFIG_NET_VENDOR_EZCHIP is not set
+CONFIG_GVE=m
# CONFIG_NET_VENDOR_HISILICON is not set
# CONFIG_NET_VENDOR_HUAWEI is not set
# CONFIG_NET_VENDOR_I825XX is not set
@@ -664,7 +655,9 @@ CONFIG_E1000E=m
CONFIG_IXGBEVF=m
# CONFIG_NET_VENDOR_LITEX is not set
# CONFIG_NET_VENDOR_MARVELL is not set
-# CONFIG_NET_VENDOR_MELLANOX is not set
+CONFIG_MLX4_EN=m
+CONFIG_MLX5_CORE=m
+CONFIG_MLX5_CORE_EN=y
# CONFIG_NET_VENDOR_MICREL is not set
# CONFIG_NET_VENDOR_MICROSEMI is not set
# CONFIG_NET_VENDOR_MICROSOFT is not set
@@ -715,11 +708,13 @@ CONFIG_SLIP_MODE_SLIP6=y
# CONFIG_USB_NET_DRIVERS is not set
# CONFIG_WLAN is not set
CONFIG_VMXNET3=m
+CONFIG_HYPERV_NET=m
CONFIG_INPUT_EVDEV=m
# CONFIG_INPUT_KEYBOARD is not set
# CONFIG_INPUT_MOUSE is not set
CONFIG_SERIO_SERPORT=m
# CONFIG_LEGACY_PTYS is not set
+# CONFIG_LEGACY_TIOCSTI is not set
# CONFIG_LDISC_AUTOLOAD is not set
CONFIG_SERIAL_8250=y
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
@@ -733,7 +728,6 @@ CONFIG_SERIAL_8250_RSA=y
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
-CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST=y
CONFIG_VIRTIO_CONSOLE=y
CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_VIRTIO=m
@@ -758,20 +752,21 @@ CONFIG_SENSORS_ACPI_POWER=m
# CONFIG_THERMAL_OF is not set
CONFIG_HISI_THERMAL=m
# CONFIG_MFD_VEXPRESS_SYSREG is not set
-# CONFIG_VGA_ARB is not set
CONFIG_DRM=m
+CONFIG_DRM_VMWGFX=m
CONFIG_DRM_QXL=m
CONFIG_DRM_VIRTIO_GPU=m
CONFIG_DRM_BOCHS=m
CONFIG_DRM_CIRRUS_QEMU=m
CONFIG_DRM_SIMPLEDRM=m
+CONFIG_DRM_HYPERV=m
CONFIG_FB=m
CONFIG_FB_TILEBLITTING=y
CONFIG_BACKLIGHT_CLASS_DEVICE=m
-CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_HID=m
CONFIG_HIDRAW=y
CONFIG_UHID=m
+CONFIG_HID_HYPERV_MOUSE=m
CONFIG_USB_KBD=m
CONFIG_USB_MOUSE=m
CONFIG_USB=m
@@ -798,9 +793,7 @@ CONFIG_RTC_DRV_STK17TA8=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_PL031=y
CONFIG_DMADEVICES=y
CONFIG_QCOM_HIDMA_MGMT=m
@@ -811,6 +804,7 @@ CONFIG_VIRT_DRIVERS=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_VDPA=m
CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_MEM=m
CONFIG_VIRTIO_INPUT=m
CONFIG_VIRTIO_MMIO=m
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
@@ -822,6 +816,9 @@ CONFIG_VHOST_NET=m
CONFIG_VHOST_SCSI=m
CONFIG_VHOST_VSOCK=m
CONFIG_VHOST_VDPA=m
+CONFIG_HYPERV=m
+CONFIG_HYPERV_UTILS=m
+CONFIG_HYPERV_BALLOON=m
# CONFIG_SURFACE_PLATFORMS is not set
# CONFIG_CLK_VEXPRESS_OSC is not set
# CONFIG_COMMON_CLK_XGENE is not set
@@ -868,16 +865,17 @@ CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_NILFS2_FS=m
CONFIG_F2FS_FS=m
CONFIG_F2FS_FS_COMPRESSION=y
-CONFIG_FS_DAX=y
+CONFIG_F2FS_UNFAIR_RWSEM=y
CONFIG_FS_ENCRYPTION=y
CONFIG_FS_VERITY=y
CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
# CONFIG_DNOTIFY is not set
+CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
CONFIG_QFMT_V1=m
CONFIG_QFMT_V2=m
-CONFIG_AUTOFS4_FS=m
+CONFIG_AUTOFS_FS=m
CONFIG_FUSE_FS=m
CONFIG_CUSE=m
CONFIG_VIRTIO_FS=m
@@ -909,7 +907,6 @@ CONFIG_CRAMFS=m
# CONFIG_CRAMFS_MTD is not set
CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_FILE_DIRECT=y
-CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
@@ -917,9 +914,6 @@ CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZSTD=y
CONFIG_SQUASHFS_4K_DEVBLK_SIZE=y
CONFIG_ROMFS_FS=m
-CONFIG_PSTORE_DEFLATE_COMPRESS=m
-CONFIG_PSTORE_ZSTD_COMPRESS=y
-CONFIG_PSTORE_ZSTD_COMPRESS_DEFAULT=y
CONFIG_PSTORE_RAM=m
CONFIG_NFS_FS=m
CONFIG_NFS_V4=m
@@ -931,7 +925,6 @@ CONFIG_NFSD_V4=y
CONFIG_NFSD_BLOCKLAYOUT=y
CONFIG_NFSD_SCSILAYOUT=y
CONFIG_NFSD_FLEXFILELAYOUT=y
-CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -1005,7 +998,6 @@ CONFIG_SECURITYFS=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_SECURITY_LANDLOCK=y
CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,integrity"
-CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF=y
CONFIG_GCC_PLUGIN_STACKLEAK=y
CONFIG_STACKLEAK_RUNTIME_DISABLE=y
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
@@ -1017,24 +1009,6 @@ CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECDSA=m
CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_CURVE25519=m
-CONFIG_CRYPTO_GCM=y
-CONFIG_CRYPTO_CHACHA20POLY1305=m
-CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_SEQIV=y
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_CFB=m
-CONFIG_CRYPTO_CTS=y
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_XTS=y
-CONFIG_CRYPTO_KEYWRAP=m
-CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-CONFIG_CRYPTO_BLAKE2S=m
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_AES=y
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m
@@ -1043,8 +1017,26 @@ CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_SM4=m
CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_ADIANTUM=m
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CFB=m
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_HCTR2=m
+CONFIG_CRYPTO_KEYWRAP=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=y
+CONFIG_CRYPTO_AEGIS128=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_GCM=y
+CONFIG_CRYPTO_SEQIV=y
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_VMAC=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_LZ4=m
CONFIG_CRYPTO_LZ4HC=m
@@ -1054,6 +1046,19 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
+CONFIG_CRYPTO_NHPOLY1305_NEON=m
+CONFIG_CRYPTO_GHASH_ARM64_CE=m
+CONFIG_CRYPTO_SHA1_ARM64_CE=m
+CONFIG_CRYPTO_SHA2_ARM64_CE=m
+CONFIG_CRYPTO_SHA512_ARM64_CE=m
+CONFIG_CRYPTO_SHA3_ARM64=m
+CONFIG_CRYPTO_SM3_NEON=m
+CONFIG_CRYPTO_SM3_ARM64_CE=m
+CONFIG_CRYPTO_AES_ARM64_CE_BLK=m
+CONFIG_CRYPTO_AES_ARM64_BS=m
+CONFIG_CRYPTO_SM4_ARM64_CE=m
+CONFIG_CRYPTO_AES_ARM64_CE_CCM=m
+CONFIG_CRYPTO_CRCT10DIF_ARM64_CE=m
CONFIG_CRYPTO_DEV_CCP=y
CONFIG_CAVIUM_CPT=m
CONFIG_CRYPTO_DEV_QCOM_RNG=m
@@ -1066,9 +1071,12 @@ CONFIG_CRC8=m
CONFIG_IRQ_POLL=y
CONFIG_PRINTK_TIME=y
CONFIG_CONSOLE_LOGLEVEL_QUIET=3
+CONFIG_DYNAMIC_DEBUG=y
+CONFIG_DEBUG_INFO_DWARF5=y
+CONFIG_DEBUG_INFO_BTF=y
CONFIG_FRAME_WARN=1280
CONFIG_MAGIC_SYSRQ=y
-CONFIG_DEBUG_FS=y
+# CONFIG_SLUB_DEBUG is not set
CONFIG_DEBUG_MEMORY_INIT=y
CONFIG_KFENCE=y
CONFIG_DEBUG_SHIRQ=y
diff --git a/main/linux-lts/virt.armv7.config b/main/linux-lts/virt.armv7.config
index b19deb7f00b..ba095005772 100644
--- a/main/linux-lts/virt.armv7.config
+++ b/main/linux-lts/virt.armv7.config
@@ -3,12 +3,12 @@ CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_USELIB=y
CONFIG_AUDIT=y
+CONFIG_NO_HZ_FULL=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT=y
CONFIG_BPF_JIT_ALWAYS_ON=y
-CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
CONFIG_SCHED_CORE=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
@@ -16,6 +16,8 @@ CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_PSI=y
+CONFIG_PSI_DEFAULT_DISABLED=y
CONFIG_LOG_BUF_SHIFT=14
CONFIG_MEMCG=y
CONFIG_BLK_CGROUP=y
@@ -36,11 +38,8 @@ CONFIG_BLK_DEV_INITRD=y
CONFIG_EXPERT=y
# CONFIG_SYSFS_SYSCALL is not set
CONFIG_KALLSYMS_ALL=y
-# CONFIG_SLUB_DEBUG is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_SLAB_FREELIST_RANDOM=y
-CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
CONFIG_PROFILING=y
+CONFIG_ARCH_VIRT=y
CONFIG_ARCH_ALPINE=y
CONFIG_ARCH_HISI=y
CONFIG_ARCH_QCOM=y
@@ -68,34 +67,32 @@ CONFIG_NEON=y
CONFIG_KERNEL_MODE_NEON=y
CONFIG_HIBERNATION=y
# CONFIG_HIBERNATION_SNAPSHOT_DEV is not set
-CONFIG_CRYPTO_SHA1_ARM=m
-CONFIG_CRYPTO_SHA256_ARM=m
-CONFIG_CRYPTO_SHA512_ARM=m
-CONFIG_CRYPTO_AES_ARM=m
CONFIG_KPROBES=y
-CONFIG_JUMP_LABEL=y
CONFIG_GCC_PLUGIN_LATENT_ENTROPY=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_UNLOAD_TAINT_TRACKING=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SIG=y
+CONFIG_MODULE_SIG_SHA256=y
CONFIG_MODULE_COMPRESS_GZIP=y
CONFIG_BLK_DEV_THROTTLING=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_IOSCHED_BFQ=y
-CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_BINFMT_MISC=m
-CONFIG_KSM=y
-CONFIG_CLEANCACHE=y
-CONFIG_FRONTSWAP=y
CONFIG_ZSWAP=y
CONFIG_Z3FOLD=m
CONFIG_ZSMALLOC=y
+CONFIG_SLAB_FREELIST_RANDOM=y
+CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_KSM=y
+CONFIG_LRU_GEN=y
+CONFIG_LRU_GEN_ENABLED=y
CONFIG_NET=y
CONFIG_PACKET=m
CONFIG_PACKET_DIAG=m
-CONFIG_UNIX=y
CONFIG_UNIX_DIAG=m
CONFIG_TLS=m
CONFIG_XFRM_USER=m
@@ -105,7 +102,6 @@ CONFIG_XFRM_STATISTICS=y
CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y
CONFIG_XDP_SOCKETS=y
-CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
@@ -154,6 +150,7 @@ CONFIG_IPV6_SUBTREES=y
CONFIG_IPV6_MROUTE=y
CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
CONFIG_IPV6_PIMSM_V2=y
+CONFIG_MPTCP=y
CONFIG_NETWORK_SECMARK=y
CONFIG_NETWORK_PHY_TIMESTAMPING=y
CONFIG_NETFILTER=y
@@ -184,7 +181,6 @@ CONFIG_NF_TABLES_NETDEV=y
CONFIG_NFT_NUMGEN=m
CONFIG_NFT_CT=m
CONFIG_NFT_FLOW_OFFLOAD=m
-CONFIG_NFT_COUNTER=m
CONFIG_NFT_CONNLIMIT=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
@@ -192,21 +188,24 @@ CONFIG_NFT_MASQ=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_NAT=m
CONFIG_NFT_TUNNEL=m
-CONFIG_NFT_OBJREF=m
CONFIG_NFT_QUEUE=m
CONFIG_NFT_QUOTA=m
CONFIG_NFT_REJECT=m
CONFIG_NFT_COMPAT=m
CONFIG_NFT_HASH=m
CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_XFRM=m
CONFIG_NFT_SOCKET=m
CONFIG_NFT_OSF=m
CONFIG_NFT_TPROXY=m
+CONFIG_NFT_SYNPROXY=m
CONFIG_NFT_DUP_NETDEV=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_REJECT_NETDEV=m
CONFIG_NF_FLOW_TABLE_INET=m
CONFIG_NF_FLOW_TABLE=m
+CONFIG_NF_FLOW_TABLE_PROCFS=y
CONFIG_NETFILTER_XT_SET=m
CONFIG_NETFILTER_XT_TARGET_AUDIT=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
@@ -310,7 +309,6 @@ CONFIG_IP_VS_PE_SIP=m
CONFIG_NFT_DUP_IPV4=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NF_TABLES_ARP=y
-CONFIG_NF_FLOW_TABLE_IPV4=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_IPV4=m
CONFIG_IP_NF_IPTABLES=m
@@ -326,7 +324,6 @@ CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_RAW=m
@@ -335,7 +332,6 @@ CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
-CONFIG_NF_FLOW_TABLE_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_EUI64=m
@@ -394,7 +390,6 @@ CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q_MVRP=y
CONFIG_LLC2=m
CONFIG_NET_SCHED=y
-CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_PRIO=m
@@ -407,7 +402,6 @@ CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_CBS=m
CONFIG_NET_SCH_ETF=m
CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_MQPRIO=m
@@ -420,17 +414,15 @@ CONFIG_NET_SCH_CAKE=m
CONFIG_NET_SCH_FQ=m
CONFIG_NET_SCH_HHF=m
CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_FQ_PIE=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_SCH_PLUG=m
CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_PERF=y
CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_FLOW=m
CONFIG_NET_CLS_CGROUP=m
CONFIG_NET_CLS_BPF=m
@@ -483,11 +475,13 @@ CONFIG_PCI_PF_STUB=m
CONFIG_PCI_IOV=y
CONFIG_PCI_PRI=y
CONFIG_PCI_PASID=y
+# CONFIG_VGA_ARB is not set
CONFIG_HOTPLUG_PCI=y
CONFIG_UEVENT_HELPER=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_DEVTMPFS_SAFE=y
CONFIG_FW_LOADER=m
CONFIG_FW_LOADER_USER_HELPER=y
CONFIG_CONNECTOR=y
@@ -496,7 +490,6 @@ CONFIG_DMI_SYSFS=m
CONFIG_SYSFB_SIMPLEFB=y
CONFIG_EFI_VARS_PSTORE=m
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
-CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y
CONFIG_MTD=m
CONFIG_MTD_BLOCK=m
CONFIG_MTD_CFI=m
@@ -509,7 +502,6 @@ CONFIG_OF_OVERLAY=y
CONFIG_ZRAM=m
CONFIG_ZRAM_DEF_COMP_LZ4=y
CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_NBD=m
CONFIG_VIRTIO_BLK=m
@@ -589,6 +581,7 @@ CONFIG_IPVLAN=m
CONFIG_IPVTAP=m
CONFIG_VXLAN=m
CONFIG_GENEVE=m
+CONFIG_BAREUDP=m
CONFIG_MACSEC=m
CONFIG_NETCONSOLE=m
CONFIG_NETCONSOLE_DYNAMIC=y
@@ -682,6 +675,7 @@ CONFIG_INPUT_EVDEV=m
# CONFIG_INPUT_MOUSE is not set
CONFIG_SERIO_SERPORT=m
# CONFIG_LEGACY_PTYS is not set
+# CONFIG_LEGACY_TIOCSTI is not set
# CONFIG_LDISC_AUTOLOAD is not set
CONFIG_SERIAL_8250=y
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
@@ -695,7 +689,6 @@ CONFIG_SERIAL_8250_RSA=y
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
-CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST=y
CONFIG_VIRTIO_CONSOLE=y
CONFIG_HW_RANDOM_TIMERIOMEM=m
CONFIG_HW_RANDOM_VIRTIO=m
@@ -713,13 +706,14 @@ CONFIG_I2C_NFORCE2=m
CONFIG_I2C_VIRTIO=m
CONFIG_PTP_1588_CLOCK=m
CONFIG_DP83640_PHY=m
+CONFIG_GPIO_PL061=y
+CONFIG_GPIO_VIRTIO=m
CONFIG_POWER_RESET_GPIO=y
CONFIG_POWER_RESET_GPIO_RESTART=y
CONFIG_HWMON=m
CONFIG_THERMAL=y
# CONFIG_THERMAL_OF is not set
CONFIG_HISI_THERMAL=m
-# CONFIG_VGA_ARB is not set
CONFIG_DRM=m
CONFIG_DRM_QXL=m
CONFIG_DRM_VIRTIO_GPU=m
@@ -729,7 +723,6 @@ CONFIG_DRM_SIMPLEDRM=m
CONFIG_FB=m
CONFIG_FB_TILEBLITTING=y
CONFIG_BACKLIGHT_CLASS_DEVICE=m
-CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_HID=m
CONFIG_HIDRAW=y
CONFIG_UHID=m
@@ -759,9 +752,7 @@ CONFIG_RTC_DRV_STK17TA8=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_PL031=y
CONFIG_DMADEVICES=y
CONFIG_QCOM_HIDMA_MGMT=m
@@ -771,6 +762,7 @@ CONFIG_DW_DMAC_PCI=m
CONFIG_VIRT_DRIVERS=y
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_VDPA=m
+CONFIG_VIRTIO_PMEM=m
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_INPUT=m
CONFIG_VIRTIO_MMIO=m
@@ -824,15 +816,17 @@ CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_NILFS2_FS=m
CONFIG_F2FS_FS=m
CONFIG_F2FS_FS_COMPRESSION=y
+CONFIG_F2FS_UNFAIR_RWSEM=y
CONFIG_FS_ENCRYPTION=y
CONFIG_FS_VERITY=y
CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
# CONFIG_DNOTIFY is not set
+CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
CONFIG_QFMT_V1=m
CONFIG_QFMT_V2=m
-CONFIG_AUTOFS4_FS=m
+CONFIG_AUTOFS_FS=m
CONFIG_FUSE_FS=m
CONFIG_CUSE=m
CONFIG_VIRTIO_FS=m
@@ -862,7 +856,6 @@ CONFIG_CRAMFS=m
# CONFIG_CRAMFS_MTD is not set
CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_FILE_DIRECT=y
-CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
@@ -871,9 +864,6 @@ CONFIG_SQUASHFS_ZSTD=y
CONFIG_SQUASHFS_4K_DEVBLK_SIZE=y
CONFIG_ROMFS_FS=m
CONFIG_PSTORE=y
-CONFIG_PSTORE_DEFLATE_COMPRESS=m
-CONFIG_PSTORE_ZSTD_COMPRESS=y
-CONFIG_PSTORE_ZSTD_COMPRESS_DEFAULT=y
CONFIG_PSTORE_RAM=m
CONFIG_NFS_FS=m
CONFIG_NFS_V4=m
@@ -885,7 +875,6 @@ CONFIG_NFSD_V4=y
CONFIG_NFSD_BLOCKLAYOUT=y
CONFIG_NFSD_SCSILAYOUT=y
CONFIG_NFSD_FLEXFILELAYOUT=y
-CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -959,7 +948,6 @@ CONFIG_SECURITYFS=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_SECURITY_LANDLOCK=y
CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,integrity"
-CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF=y
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
CONFIG_ZERO_CALL_USED_REGS=y
CONFIG_CRYPTO_USER=m
@@ -970,25 +958,6 @@ CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECDSA=m
CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_CURVE25519=m
-CONFIG_CRYPTO_GCM=y
-CONFIG_CRYPTO_CHACHA20POLY1305=m
-CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_SEQIV=y
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_CFB=m
-CONFIG_CRYPTO_CTS=y
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_XTS=y
-CONFIG_CRYPTO_KEYWRAP=m
-CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-CONFIG_CRYPTO_BLAKE2S=m
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_SHA3=m
-CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_AES=y
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m
@@ -997,8 +966,26 @@ CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_SM4=m
CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_ADIANTUM=m
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CFB=m
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_HCTR2=m
+CONFIG_CRYPTO_KEYWRAP=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=y
+CONFIG_CRYPTO_AEGIS128=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_GCM=y
+CONFIG_CRYPTO_SEQIV=y
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_VMAC=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_LZ4=m
CONFIG_CRYPTO_LZ4HC=m
@@ -1008,6 +995,10 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
+CONFIG_CRYPTO_SHA1_ARM=m
+CONFIG_CRYPTO_SHA256_ARM=m
+CONFIG_CRYPTO_SHA512_ARM=m
+CONFIG_CRYPTO_AES_ARM=m
CONFIG_CRYPTO_DEV_QCOM_RNG=m
CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_SECONDARY_TRUSTED_KEYRING=y
@@ -1018,9 +1009,11 @@ CONFIG_CRC8=m
CONFIG_IRQ_POLL=y
CONFIG_PRINTK_TIME=y
CONFIG_CONSOLE_LOGLEVEL_QUIET=3
+CONFIG_DYNAMIC_DEBUG=y
+CONFIG_DEBUG_INFO_DWARF5=y
CONFIG_FRAME_WARN=1280
CONFIG_MAGIC_SYSRQ=y
-CONFIG_DEBUG_FS=y
+# CONFIG_SLUB_DEBUG is not set
CONFIG_DEBUG_MEMORY_INIT=y
CONFIG_DEBUG_SHIRQ=y
CONFIG_SOFTLOCKUP_DETECTOR=y
diff --git a/main/linux-lts/virt.ppc64le.config b/main/linux-lts/virt.ppc64le.config
index 4c298f606a5..31471bd4b91 100644
--- a/main/linux-lts/virt.ppc64le.config
+++ b/main/linux-lts/virt.ppc64le.config
@@ -3,21 +3,21 @@ CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
CONFIG_USELIB=y
CONFIG_AUDIT=y
+CONFIG_NO_HZ_FULL=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT=y
CONFIG_BPF_JIT_ALWAYS_ON=y
-CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
CONFIG_SCHED_CORE=y
-CONFIG_TICK_CPU_ACCOUNTING=y
CONFIG_BSD_PROCESS_ACCT=y
CONFIG_BSD_PROCESS_ACCT_V3=y
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y
-CONFIG_LOG_BUF_SHIFT=14
+CONFIG_PSI=y
+CONFIG_PSI_DEFAULT_DISABLED=y
CONFIG_NUMA_BALANCING=y
CONFIG_MEMCG=y
CONFIG_BLK_CGROUP=y
@@ -41,12 +41,10 @@ CONFIG_EXPERT=y
# CONFIG_SYSFS_SYSCALL is not set
# CONFIG_PCSPKR_PLATFORM is not set
CONFIG_KALLSYMS_ALL=y
-# CONFIG_SLUB_DEBUG is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_SLAB_FREELIST_RANDOM=y
-CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
CONFIG_PROFILING=y
+CONFIG_KEXEC=y
CONFIG_PPC64=y
+CONFIG_POWER8_CPU=y
CONFIG_NR_CPUS=4096
CONFIG_CPU_LITTLE_ENDIAN=y
CONFIG_PANIC_TIMEOUT=0
@@ -69,39 +67,39 @@ CONFIG_PPC_TRANSACTIONAL_MEM=y
# CONFIG_PPC_QUEUED_SPINLOCKS is not set
CONFIG_PPC64_SUPPORTS_MEMORY_FAILURE=y
CONFIG_IRQ_ALL_CPUS=y
-CONFIG_PPC_64K_PAGES=y
CONFIG_PPC_SUBPAGE_PROT=y
CONFIG_SCHED_SMT=y
CONFIG_HIBERNATION=y
CONFIG_VIRTUALIZATION=y
CONFIG_KVM_BOOK3S_64=m
-CONFIG_KVM_BOOK3S_64_PR=m
CONFIG_KPROBES=y
-CONFIG_JUMP_LABEL=y
CONFIG_GCC_PLUGIN_LATENT_ENTROPY=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_UNLOAD_TAINT_TRACKING=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SIG=y
+CONFIG_MODULE_SIG_SHA256=y
CONFIG_MODULE_COMPRESS_GZIP=y
CONFIG_BLK_DEV_THROTTLING=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_IOSCHED_BFQ=y
-CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_BINFMT_MISC=m
-CONFIG_KSM=y
-CONFIG_TRANSPARENT_HUGEPAGE=y
-CONFIG_CLEANCACHE=y
-CONFIG_FRONTSWAP=y
-CONFIG_MEM_SOFT_DIRTY=y
CONFIG_ZSWAP=y
CONFIG_Z3FOLD=m
CONFIG_ZSMALLOC=y
+CONFIG_SLAB_FREELIST_RANDOM=y
+CONFIG_SHUFFLE_PAGE_ALLOCATOR=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_KSM=y
+CONFIG_TRANSPARENT_HUGEPAGE=y
+CONFIG_MEM_SOFT_DIRTY=y
+CONFIG_LRU_GEN=y
+CONFIG_LRU_GEN_ENABLED=y
CONFIG_NET=y
CONFIG_PACKET=m
CONFIG_PACKET_DIAG=m
-CONFIG_UNIX=y
CONFIG_UNIX_DIAG=m
CONFIG_TLS=m
CONFIG_XFRM_USER=m
@@ -111,7 +109,6 @@ CONFIG_XFRM_STATISTICS=y
CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y
CONFIG_XDP_SOCKETS=y
-CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
@@ -160,6 +157,7 @@ CONFIG_IPV6_SUBTREES=y
CONFIG_IPV6_MROUTE=y
CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
CONFIG_IPV6_PIMSM_V2=y
+CONFIG_MPTCP=y
CONFIG_NETWORK_SECMARK=y
CONFIG_NETWORK_PHY_TIMESTAMPING=y
CONFIG_NETFILTER=y
@@ -190,7 +188,6 @@ CONFIG_NF_TABLES_NETDEV=y
CONFIG_NFT_NUMGEN=m
CONFIG_NFT_CT=m
CONFIG_NFT_FLOW_OFFLOAD=m
-CONFIG_NFT_COUNTER=m
CONFIG_NFT_CONNLIMIT=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
@@ -198,21 +195,24 @@ CONFIG_NFT_MASQ=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_NAT=m
CONFIG_NFT_TUNNEL=m
-CONFIG_NFT_OBJREF=m
CONFIG_NFT_QUEUE=m
CONFIG_NFT_QUOTA=m
CONFIG_NFT_REJECT=m
CONFIG_NFT_COMPAT=m
CONFIG_NFT_HASH=m
CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_XFRM=m
CONFIG_NFT_SOCKET=m
CONFIG_NFT_OSF=m
CONFIG_NFT_TPROXY=m
+CONFIG_NFT_SYNPROXY=m
CONFIG_NFT_DUP_NETDEV=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_REJECT_NETDEV=m
CONFIG_NF_FLOW_TABLE_INET=m
CONFIG_NF_FLOW_TABLE=m
+CONFIG_NF_FLOW_TABLE_PROCFS=y
CONFIG_NETFILTER_XT_SET=m
CONFIG_NETFILTER_XT_TARGET_AUDIT=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
@@ -316,7 +316,6 @@ CONFIG_IP_VS_PE_SIP=m
CONFIG_NFT_DUP_IPV4=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NF_TABLES_ARP=y
-CONFIG_NF_FLOW_TABLE_IPV4=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_IPV4=m
CONFIG_IP_NF_IPTABLES=m
@@ -332,7 +331,6 @@ CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_RAW=m
@@ -341,7 +339,6 @@ CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
-CONFIG_NF_FLOW_TABLE_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_EUI64=m
@@ -400,7 +397,6 @@ CONFIG_VLAN_8021Q_GVRP=y
CONFIG_VLAN_8021Q_MVRP=y
CONFIG_LLC2=m
CONFIG_NET_SCHED=y
-CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_PRIO=m
@@ -413,7 +409,6 @@ CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_CBS=m
CONFIG_NET_SCH_ETF=m
CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_MQPRIO=m
@@ -426,17 +421,15 @@ CONFIG_NET_SCH_CAKE=m
CONFIG_NET_SCH_FQ=m
CONFIG_NET_SCH_HHF=m
CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_FQ_PIE=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_SCH_PLUG=m
CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_PERF=y
CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_FLOW=m
CONFIG_NET_CLS_CGROUP=m
CONFIG_NET_CLS_BPF=m
@@ -489,12 +482,14 @@ CONFIG_PCI_PF_STUB=m
CONFIG_PCI_IOV=y
CONFIG_PCI_PRI=y
CONFIG_PCI_PASID=y
+# CONFIG_VGA_ARB is not set
CONFIG_HOTPLUG_PCI=y
CONFIG_PCI_HOST_GENERIC=y
CONFIG_UEVENT_HELPER=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_DEVTMPFS_SAFE=y
CONFIG_FW_LOADER=m
CONFIG_FW_LOADER_USER_HELPER=y
CONFIG_CONNECTOR=y
@@ -510,7 +505,6 @@ CONFIG_OF_OVERLAY=y
CONFIG_ZRAM=m
CONFIG_ZRAM_DEF_COMP_LZ4=y
CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_NBD=m
CONFIG_VIRTIO_BLK=m
@@ -590,6 +584,7 @@ CONFIG_IPVLAN=m
CONFIG_IPVTAP=m
CONFIG_VXLAN=m
CONFIG_GENEVE=m
+CONFIG_BAREUDP=m
CONFIG_MACSEC=m
CONFIG_NETCONSOLE=m
CONFIG_NETCONSOLE_DYNAMIC=y
@@ -680,6 +675,7 @@ CONFIG_INPUT_EVDEV=m
# CONFIG_INPUT_MOUSE is not set
CONFIG_SERIO_SERPORT=m
# CONFIG_LEGACY_PTYS is not set
+# CONFIG_LEGACY_TIOCSTI is not set
# CONFIG_LDISC_AUTOLOAD is not set
CONFIG_SERIAL_8250=y
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
@@ -718,7 +714,6 @@ CONFIG_POWER_SUPPLY=y
CONFIG_HWMON=m
CONFIG_THERMAL=y
# CONFIG_THERMAL_OF is not set
-# CONFIG_VGA_ARB is not set
CONFIG_DRM=m
CONFIG_DRM_QXL=m
CONFIG_DRM_VIRTIO_GPU=m
@@ -728,7 +723,6 @@ CONFIG_DRM_SIMPLEDRM=m
CONFIG_FB=m
CONFIG_FB_TILEBLITTING=y
CONFIG_BACKLIGHT_CLASS_DEVICE=m
-CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_HID=m
CONFIG_HIDRAW=y
CONFIG_UHID=m
@@ -757,9 +751,7 @@ CONFIG_RTC_DRV_STK17TA8=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_GENERIC=m
CONFIG_DMADEVICES=y
CONFIG_QCOM_HIDMA_MGMT=m
@@ -811,16 +803,17 @@ CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_NILFS2_FS=m
CONFIG_F2FS_FS=m
CONFIG_F2FS_FS_COMPRESSION=y
-CONFIG_FS_DAX=y
+CONFIG_F2FS_UNFAIR_RWSEM=y
CONFIG_FS_ENCRYPTION=y
CONFIG_FS_VERITY=y
CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
# CONFIG_DNOTIFY is not set
+CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
CONFIG_QFMT_V1=m
CONFIG_QFMT_V2=m
-CONFIG_AUTOFS4_FS=m
+CONFIG_AUTOFS_FS=m
CONFIG_FUSE_FS=m
CONFIG_CUSE=m
CONFIG_VIRTIO_FS=m
@@ -838,7 +831,6 @@ CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_IOCHARSET="utf8"
CONFIG_EXFAT_FS=m
CONFIG_NTFS_FS=m
-CONFIG_NTFS_RW=y
CONFIG_NTFS3_FS=m
CONFIG_NTFS3_LZX_XPRESS=y
CONFIG_NTFS3_FS_POSIX_ACL=y
@@ -852,7 +844,6 @@ CONFIG_CRAMFS=m
# CONFIG_CRAMFS_MTD is not set
CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_FILE_DIRECT=y
-CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
@@ -861,9 +852,6 @@ CONFIG_SQUASHFS_ZSTD=y
CONFIG_SQUASHFS_4K_DEVBLK_SIZE=y
CONFIG_ROMFS_FS=m
CONFIG_PSTORE=y
-CONFIG_PSTORE_DEFLATE_COMPRESS=m
-CONFIG_PSTORE_ZSTD_COMPRESS=y
-CONFIG_PSTORE_ZSTD_COMPRESS_DEFAULT=y
CONFIG_PSTORE_RAM=m
CONFIG_NFS_FS=m
CONFIG_NFS_V4=m
@@ -875,7 +863,6 @@ CONFIG_NFSD_V4=y
CONFIG_NFSD_BLOCKLAYOUT=y
CONFIG_NFSD_SCSILAYOUT=y
CONFIG_NFSD_FLEXFILELAYOUT=y
-CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -950,7 +937,6 @@ CONFIG_SECURITYFS=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_SECURITY_LANDLOCK=y
CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,integrity"
-CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF=y
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
CONFIG_ZERO_CALL_USED_REGS=y
CONFIG_CRYPTO_USER=m
@@ -961,28 +947,6 @@ CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECDSA=m
CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_CURVE25519=m
-CONFIG_CRYPTO_GCM=y
-CONFIG_CRYPTO_CHACHA20POLY1305=m
-CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_SEQIV=y
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_CFB=m
-CONFIG_CRYPTO_CTS=y
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_XTS=y
-CONFIG_CRYPTO_KEYWRAP=m
-CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-CONFIG_CRYPTO_CRC32C_VPMSUM=m
-CONFIG_CRYPTO_CRCT10DIF_VPMSUM=m
-CONFIG_CRYPTO_MD5_PPC=m
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_SHA1_PPC=m
-CONFIG_CRYPTO_SHA3=m
-CONFIG_CRYPTO_WP512=m
CONFIG_CRYPTO_AES=y
CONFIG_CRYPTO_BLOWFISH=m
CONFIG_CRYPTO_CAMELLIA=m
@@ -991,8 +955,26 @@ CONFIG_CRYPTO_CAST6=m
CONFIG_CRYPTO_DES=m
CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_SM4=m
CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_ADIANTUM=m
+CONFIG_CRYPTO_CBC=y
+CONFIG_CRYPTO_CFB=m
+CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_HCTR2=m
+CONFIG_CRYPTO_KEYWRAP=m
+CONFIG_CRYPTO_LRW=m
+CONFIG_CRYPTO_PCBC=m
+CONFIG_CRYPTO_XTS=y
+CONFIG_CRYPTO_AEGIS128=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_GCM=y
+CONFIG_CRYPTO_SEQIV=y
+CONFIG_CRYPTO_MD4=m
+CONFIG_CRYPTO_MICHAEL_MIC=m
+CONFIG_CRYPTO_RMD160=m
+CONFIG_CRYPTO_VMAC=m
+CONFIG_CRYPTO_WP512=m
+CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_LZ4=m
CONFIG_CRYPTO_LZ4HC=m
@@ -1002,6 +984,10 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
+CONFIG_CRYPTO_CRC32C_VPMSUM=m
+CONFIG_CRYPTO_CRCT10DIF_VPMSUM=m
+CONFIG_CRYPTO_MD5_PPC=m
+CONFIG_CRYPTO_SHA1_PPC=m
CONFIG_CRYPTO_DEV_NX=y
CONFIG_CRYPTO_DEV_NX_COMPRESS=m
CONFIG_CRYPTO_DEV_VIRTIO=m
@@ -1013,9 +999,10 @@ CONFIG_CRC8=m
CONFIG_IRQ_POLL=y
CONFIG_PRINTK_TIME=y
CONFIG_CONSOLE_LOGLEVEL_QUIET=3
+CONFIG_DYNAMIC_DEBUG=y
CONFIG_FRAME_WARN=1280
CONFIG_MAGIC_SYSRQ=y
-CONFIG_DEBUG_FS=y
+# CONFIG_SLUB_DEBUG is not set
CONFIG_DEBUG_MEMORY_INIT=y
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_DEBUG_SHIRQ=y
diff --git a/main/linux-lts/virt.x86.config b/main/linux-lts/virt.x86.config
index 807cf8edf7f..f060ccb5b34 100644
--- a/main/linux-lts/virt.x86.config
+++ b/main/linux-lts/virt.x86.config
@@ -7,7 +7,6 @@ CONFIG_HIGH_RES_TIMERS=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT=y
CONFIG_BPF_JIT_ALWAYS_ON=y
-CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
CONFIG_SCHED_CORE=y
CONFIG_IRQ_TIME_ACCOUNTING=y
CONFIG_BSD_PROCESS_ACCT=y
@@ -16,12 +15,16 @@ CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_PSI=y
+CONFIG_PSI_DEFAULT_DISABLED=y
CONFIG_IKCONFIG=m
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
+CONFIG_MEMCG=y
CONFIG_BLK_CGROUP=y
CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_FREEZER=y
+CONFIG_CPUSETS=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_BPF=y
@@ -34,9 +37,6 @@ CONFIG_EXPERT=y
# CONFIG_SGETMASK_SYSCALL is not set
# CONFIG_SYSFS_SYSCALL is not set
# CONFIG_PCSPKR_PLATFORM is not set
-# CONFIG_SLUB_DEBUG is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_PROFILING=y
# CONFIG_64BIT is not set
CONFIG_SMP=y
@@ -45,18 +45,18 @@ CONFIG_X86_BIGSMP=y
# CONFIG_X86_EXTENDED_PLATFORM is not set
CONFIG_HYPERVISOR_GUEST=y
CONFIG_PARAVIRT_SPINLOCKS=y
+CONFIG_XEN=y
+CONFIG_XEN_PVH=y
CONFIG_PARAVIRT_TIME_ACCOUNTING=y
-CONFIG_M586TSC=y
CONFIG_X86_GENERIC=y
CONFIG_HPET_TIMER=y
CONFIG_NR_CPUS=64
# CONFIG_X86_MCE is not set
# CONFIG_PERF_EVENTS_INTEL_RAPL is not set
# CONFIG_PERF_EVENTS_INTEL_CSTATE is not set
-# CONFIG_MICROCODE is not set
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
-# CONFIG_X86_SMAP is not set
+CONFIG_HIGHMEM64G=y
CONFIG_X86_INTEL_TSX_MODE_AUTO=y
CONFIG_HZ_100=y
CONFIG_PHYSICAL_ALIGN=0x1000000
@@ -76,6 +76,7 @@ CONFIG_ACPI_HED=m
CONFIG_ACPI_APEI=y
CONFIG_ACPI_APEI_ERST_DEBUG=y
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+CONFIG_X86_AMD_PSTATE=y
CONFIG_CPU_IDLE_GOV_LADDER=y
CONFIG_PCI_CNB20LE_QUIRK=y
CONFIG_SCx200=m
@@ -83,31 +84,30 @@ CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
CONFIG_KPROBES=y
-CONFIG_JUMP_LABEL=y
CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y
CONFIG_GCC_PLUGIN_LATENT_ENTROPY=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_UNLOAD_TAINT_TRACKING=y
CONFIG_MODVERSIONS=y
CONFIG_MODULE_SIG=y
+CONFIG_MODULE_SIG_SHA256=y
CONFIG_MODULE_COMPRESS_GZIP=y
CONFIG_BLK_DEV_THROTTLING=y
CONFIG_BLK_CGROUP_IOLATENCY=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_IOSCHED_BFQ=y
-CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_BINFMT_MISC=m
-CONFIG_KSM=y
-CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
-CONFIG_CLEANCACHE=y
-CONFIG_FRONTSWAP=y
CONFIG_ZSWAP=y
CONFIG_ZSMALLOC=y
+CONFIG_SLAB_FREELIST_RANDOM=y
+# CONFIG_COMPAT_BRK is not set
+CONFIG_KSM=y
+CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
CONFIG_NET=y
CONFIG_PACKET=m
CONFIG_PACKET_DIAG=m
-CONFIG_UNIX=y
CONFIG_UNIX_DIAG=m
CONFIG_TLS=m
CONFIG_XFRM_USER=m
@@ -117,7 +117,6 @@ CONFIG_XFRM_STATISTICS=y
CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y
CONFIG_XDP_SOCKETS=y
-CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
@@ -171,6 +170,7 @@ CONFIG_IPV6_SUBTREES=y
CONFIG_IPV6_MROUTE=y
CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
CONFIG_IPV6_PIMSM_V2=y
+CONFIG_MPTCP=y
CONFIG_NETWORK_SECMARK=y
CONFIG_NETWORK_PHY_TIMESTAMPING=y
CONFIG_NETFILTER=y
@@ -199,23 +199,31 @@ CONFIG_NF_TABLES_NETDEV=y
CONFIG_NFT_NUMGEN=m
CONFIG_NFT_CT=m
CONFIG_NFT_FLOW_OFFLOAD=m
-CONFIG_NFT_COUNTER=m
+CONFIG_NFT_CONNLIMIT=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
CONFIG_NFT_MASQ=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_NAT=m
+CONFIG_NFT_TUNNEL=m
CONFIG_NFT_QUEUE=m
CONFIG_NFT_QUOTA=m
CONFIG_NFT_REJECT=m
CONFIG_NFT_COMPAT=m
CONFIG_NFT_HASH=m
CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_XFRM=m
+CONFIG_NFT_SOCKET=m
+CONFIG_NFT_OSF=m
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_SYNPROXY=m
CONFIG_NFT_DUP_NETDEV=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_REJECT_NETDEV=m
CONFIG_NF_FLOW_TABLE_INET=m
CONFIG_NF_FLOW_TABLE=m
+CONFIG_NF_FLOW_TABLE_PROCFS=y
CONFIG_NETFILTER_XT_SET=m
CONFIG_NETFILTER_XT_TARGET_AUDIT=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
@@ -311,6 +319,7 @@ CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_MH=m
CONFIG_IP_VS_SED=m
CONFIG_IP_VS_NQ=m
CONFIG_IP_VS_FTP=m
@@ -318,7 +327,6 @@ CONFIG_IP_VS_PE_SIP=m
CONFIG_NFT_DUP_IPV4=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NF_TABLES_ARP=y
-CONFIG_NF_FLOW_TABLE_IPV4=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_IPV4=m
CONFIG_IP_NF_IPTABLES=m
@@ -334,7 +342,6 @@ CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_RAW=m
@@ -343,7 +350,6 @@ CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
-CONFIG_NF_FLOW_TABLE_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_EUI64=m
@@ -400,7 +406,6 @@ CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
CONFIG_LLC2=m
CONFIG_NET_SCHED=y
-CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_PRIO=m
@@ -412,7 +417,6 @@ CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_CBS=m
CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_MQPRIO=m
@@ -424,17 +428,15 @@ CONFIG_NET_SCH_CAKE=m
CONFIG_NET_SCH_FQ=m
CONFIG_NET_SCH_HHF=m
CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_FQ_PIE=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_SCH_PLUG=m
CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_PERF=y
CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_FLOW=m
CONFIG_NET_CLS_BPF=m
CONFIG_NET_CLS_FLOWER=m
@@ -472,6 +474,7 @@ CONFIG_OPENVSWITCH=m
CONFIG_VSOCKETS=m
CONFIG_VMWARE_VMCI_VSOCKETS=m
CONFIG_VIRTIO_VSOCKETS=m
+CONFIG_HYPERV_VSOCKETS=m
CONFIG_NETLINK_DIAG=m
CONFIG_MPLS_ROUTING=m
CONFIG_MPLS_IPTUNNEL=m
@@ -480,20 +483,21 @@ CONFIG_NET_PKTGEN=m
# CONFIG_WIRELESS is not set
CONFIG_NET_9P=m
CONFIG_NET_9P_VIRTIO=m
+CONFIG_NET_9P_XEN=m
CONFIG_CEPH_LIB_USE_DNS_RESOLVER=y
CONFIG_PCI=y
CONFIG_PCIEPORTBUS=y
CONFIG_HOTPLUG_PCI_PCIE=y
CONFIG_PCI_MSI=y
CONFIG_PCI_STUB=m
-CONFIG_PCI_PRI=y
-CONFIG_PCI_PASID=y
+# CONFIG_VGA_ARB is not set
CONFIG_HOTPLUG_PCI=y
CONFIG_HOTPLUG_PCI_ACPI=y
CONFIG_UEVENT_HELPER=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_DEVTMPFS_SAFE=y
# CONFIG_STANDALONE is not set
CONFIG_FW_LOADER=m
CONFIG_CONNECTOR=y
@@ -504,9 +508,9 @@ CONFIG_BLK_DEV_FD=m
CONFIG_ZRAM=m
CONFIG_ZRAM_DEF_COMP_LZ4=y
CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_NBD=m
+CONFIG_XEN_BLKDEV_FRONTEND=m
CONFIG_VIRTIO_BLK=m
CONFIG_BLK_DEV_RBD=m
CONFIG_BLK_DEV_NVME=m
@@ -530,6 +534,7 @@ CONFIG_SCSI_SRP_ATTRS=m
CONFIG_ISCSI_TCP=m
CONFIG_SCSI_MPI3MR=m
CONFIG_VMWARE_PVSCSI=y
+CONFIG_XEN_SCSI_FRONTEND=m
CONFIG_SCSI_VIRTIO=m
CONFIG_ATA=y
CONFIG_SATA_AHCI=y
@@ -586,6 +591,7 @@ CONFIG_MACVTAP=m
CONFIG_IPVLAN=m
CONFIG_VXLAN=m
CONFIG_GENEVE=m
+CONFIG_BAREUDP=m
CONFIG_MACSEC=m
CONFIG_NETCONSOLE=m
CONFIG_NETCONSOLE_DYNAMIC=y
@@ -612,6 +618,7 @@ CONFIG_ENA_ETHERNET=m
# CONFIG_NET_VENDOR_DLINK is not set
# CONFIG_NET_VENDOR_EMULEX is not set
# CONFIG_NET_VENDOR_EZCHIP is not set
+CONFIG_GVE=m
# CONFIG_NET_VENDOR_I825XX is not set
CONFIG_E1000=m
CONFIG_E1000E=m
@@ -619,7 +626,9 @@ CONFIG_IXGBEVF=m
CONFIG_I40EVF=m
# CONFIG_NET_VENDOR_LITEX is not set
# CONFIG_NET_VENDOR_MARVELL is not set
-# CONFIG_NET_VENDOR_MELLANOX is not set
+CONFIG_MLX4_EN=m
+CONFIG_MLX5_CORE=m
+CONFIG_MLX5_CORE_EN=y
# CONFIG_NET_VENDOR_MICREL is not set
# CONFIG_NET_VENDOR_MICROSEMI is not set
# CONFIG_NET_VENDOR_MICROSOFT is not set
@@ -685,6 +694,7 @@ CONFIG_MOUSE_PS2_VMMOUSE=y
# CONFIG_SERIO_SERPORT is not set
CONFIG_SERIO_PCIPS2=m
# CONFIG_LEGACY_PTYS is not set
+# CONFIG_LEGACY_TIOCSTI is not set
# CONFIG_LDISC_AUTOLOAD is not set
CONFIG_SERIAL_8250=y
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
@@ -725,20 +735,26 @@ CONFIG_WATCHDOG_CORE=y
CONFIG_WATCHDOG_SYSFS=y
CONFIG_I6300ESB_WDT=m
CONFIG_RC_CORE=y
-# CONFIG_VGA_ARB is not set
CONFIG_DRM=m
CONFIG_DRM_VMWGFX=m
-CONFIG_DRM_VMWGFX_FBCON=y
CONFIG_DRM_QXL=m
CONFIG_DRM_VIRTIO_GPU=m
CONFIG_DRM_BOCHS=m
CONFIG_DRM_CIRRUS_QEMU=m
CONFIG_DRM_SIMPLEDRM=m
+CONFIG_DRM_XEN_FRONTEND=m
CONFIG_DRM_VBOXVIDEO=m
CONFIG_DRM_HYPERV=m
CONFIG_FB=m
CONFIG_FB_TILEBLITTING=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_SOUND=y
+CONFIG_SND=m
+# CONFIG_SND_SUPPORT_OLD_API is not set
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_GENERIC=m
+# CONFIG_SND_USB is not set
+CONFIG_SND_VIRTIO=m
CONFIG_HID=m
CONFIG_HIDRAW=y
CONFIG_UHID=m
@@ -757,6 +773,7 @@ CONFIG_USB_EHCI_HCD_PLATFORM=m
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_OHCI_HCD_PLATFORM=m
CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_XEN_HCD=m
CONFIG_USB_STORAGE=m
CONFIG_USB_UAS=m
CONFIG_RTC_CLASS=y
@@ -783,8 +800,9 @@ CONFIG_VHOST_VDPA=m
CONFIG_HYPERV=m
CONFIG_HYPERV_UTILS=m
CONFIG_HYPERV_BALLOON=m
-# CONFIG_X86_PLATFORM_DEVICES is not set
+CONFIG_XEN_VIRTIO=y
# CONFIG_SURFACE_PLATFORMS is not set
+# CONFIG_X86_PLATFORM_DEVICES is not set
CONFIG_INTEL_IOMMU=y
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
# CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set
@@ -820,16 +838,17 @@ CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_NILFS2_FS=m
CONFIG_F2FS_FS=m
CONFIG_F2FS_FS_COMPRESSION=y
-CONFIG_FS_DAX=y
+CONFIG_F2FS_UNFAIR_RWSEM=y
CONFIG_FS_ENCRYPTION=y
CONFIG_FS_VERITY=y
CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
# CONFIG_DNOTIFY is not set
+CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
CONFIG_QFMT_V1=m
CONFIG_QFMT_V2=m
-CONFIG_AUTOFS4_FS=m
+CONFIG_AUTOFS_FS=m
CONFIG_FUSE_FS=m
CONFIG_VIRTIO_FS=m
CONFIG_OVERLAY_FS=m
@@ -854,27 +873,18 @@ CONFIG_TMPFS=y
CONFIG_TMPFS_POSIX_ACL=y
CONFIG_CONFIGFS_FS=m
CONFIG_ECRYPT_FS=m
-CONFIG_HFS_FS=m
-CONFIG_HFSPLUS_FS=m
CONFIG_EFS_FS=m
CONFIG_CRAMFS=m
# CONFIG_CRAMFS_BLOCKDEV is not set
CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_FILE_DIRECT=y
-CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZSTD=y
CONFIG_SQUASHFS_4K_DEVBLK_SIZE=y
-CONFIG_MINIX_FS=m
-CONFIG_OMFS_FS=m
-CONFIG_HPFS_FS=m
CONFIG_ROMFS_FS=m
-CONFIG_PSTORE_DEFLATE_COMPRESS=m
-CONFIG_PSTORE_ZSTD_COMPRESS=y
-CONFIG_PSTORE_ZSTD_COMPRESS_DEFAULT=y
CONFIG_PSTORE_RAM=m
CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m
@@ -889,7 +899,6 @@ CONFIG_NFSD_V4=y
CONFIG_NFSD_BLOCKLAYOUT=y
CONFIG_NFSD_SCSILAYOUT=y
CONFIG_NFSD_FLEXFILELAYOUT=y
-CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -963,7 +972,6 @@ CONFIG_SECURITYFS=y
CONFIG_HARDENED_USERCOPY=y
CONFIG_SECURITY_LANDLOCK=y
CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,integrity"
-CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF=y
CONFIG_GCC_PLUGIN_STACKLEAK=y
CONFIG_STACKLEAK_RUNTIME_DISABLE=y
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
@@ -974,39 +982,32 @@ CONFIG_CRYPTO_TEST=m
CONFIG_CRYPTO_ECDSA=m
CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_CURVE25519=m
-CONFIG_CRYPTO_CHACHA20POLY1305=m
-CONFIG_CRYPTO_AEGIS128=m
+CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_CAST5=m
+CONFIG_CRYPTO_CAST6=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_ADIANTUM=m
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_CFB=m
CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_HCTR2=m
+CONFIG_CRYPTO_KEYWRAP=m
CONFIG_CRYPTO_LRW=m
CONFIG_CRYPTO_PCBC=m
CONFIG_CRYPTO_XTS=y
-CONFIG_CRYPTO_KEYWRAP=m
-CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-CONFIG_CRYPTO_CRC32C_INTEL=m
-CONFIG_CRYPTO_CRC32_PCLMUL=m
-CONFIG_CRYPTO_BLAKE2S=m
+CONFIG_CRYPTO_AEGIS128=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_RMD160=m
CONFIG_CRYPTO_SHA512=y
-CONFIG_CRYPTO_SHA3=m
+CONFIG_CRYPTO_VMAC=m
CONFIG_CRYPTO_WP512=m
-CONFIG_CRYPTO_AES=y
-CONFIG_CRYPTO_AES_NI_INTEL=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_CAMELLIA=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_FCRYPT=m
-CONFIG_CRYPTO_SERPENT_SSE2_586=m
-CONFIG_CRYPTO_SM4=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_586=m
+CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_LZ4=m
CONFIG_CRYPTO_LZ4HC=m
@@ -1016,6 +1017,11 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
+CONFIG_CRYPTO_AES_NI_INTEL=m
+CONFIG_CRYPTO_SERPENT_SSE2_586=m
+CONFIG_CRYPTO_TWOFISH_586=m
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_CRC32_PCLMUL=m
CONFIG_CRYPTO_DEV_PADLOCK=m
CONFIG_CRYPTO_DEV_PADLOCK_AES=m
CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
@@ -1027,13 +1033,14 @@ CONFIG_CRYPTO_DEV_VIRTIO=m
CONFIG_CORDIC=m
CONFIG_CRC_T10DIF=y
CONFIG_CRC7=m
-CONFIG_CRC8=m
CONFIG_IRQ_POLL=y
CONFIG_PRINTK_TIME=y
CONFIG_CONSOLE_LOGLEVEL_QUIET=3
+CONFIG_DYNAMIC_DEBUG=y
+CONFIG_DEBUG_INFO_DWARF5=y
CONFIG_FRAME_WARN=1024
CONFIG_MAGIC_SYSRQ=y
-CONFIG_DEBUG_FS=y
+# CONFIG_SLUB_DEBUG is not set
CONFIG_DEBUG_RODATA_TEST=y
CONFIG_DEBUG_STACKOVERFLOW=y
CONFIG_KFENCE=y
diff --git a/main/linux-lts/virt.x86_64.config b/main/linux-lts/virt.x86_64.config
index 7fafb867e90..a512e800e6d 100644
--- a/main/linux-lts/virt.x86_64.config
+++ b/main/linux-lts/virt.x86_64.config
@@ -1,12 +1,12 @@
# CONFIG_LOCALVERSION_AUTO is not set
CONFIG_SYSVIPC=y
CONFIG_POSIX_MQUEUE=y
+CONFIG_NO_HZ_FULL=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_JIT=y
CONFIG_BPF_JIT_ALWAYS_ON=y
-CONFIG_BPF_UNPRIV_DEFAULT_OFF=y
CONFIG_SCHED_CORE=y
CONFIG_IRQ_TIME_ACCOUNTING=y
CONFIG_BSD_PROCESS_ACCT=y
@@ -15,9 +15,10 @@ CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y
+CONFIG_PSI=y
+CONFIG_PSI_DEFAULT_DISABLED=y
CONFIG_IKCONFIG=m
CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=14
CONFIG_MEMCG=y
CONFIG_BLK_CGROUP=y
CONFIG_CFS_BANDWIDTH=y
@@ -39,10 +40,8 @@ CONFIG_EXPERT=y
# CONFIG_SGETMASK_SYSCALL is not set
# CONFIG_SYSFS_SYSCALL is not set
# CONFIG_PCSPKR_PLATFORM is not set
-# CONFIG_SLUB_DEBUG is not set
-# CONFIG_COMPAT_BRK is not set
-CONFIG_SLAB_FREELIST_RANDOM=y
CONFIG_PROFILING=y
+CONFIG_KEXEC=y
CONFIG_SMP=y
# CONFIG_X86_MPPARSE is not set
# CONFIG_X86_EXTENDED_PLATFORM is not set
@@ -55,12 +54,10 @@ CONFIG_NR_CPUS=256
# CONFIG_X86_MCE is not set
# CONFIG_PERF_EVENTS_INTEL_RAPL is not set
# CONFIG_PERF_EVENTS_INTEL_CSTATE is not set
-# CONFIG_MICROCODE is not set
CONFIG_X86_MSR=m
CONFIG_X86_CPUID=m
# CONFIG_X86_5LEVEL is not set
CONFIG_ARCH_MEMORY_PROBE=y
-# CONFIG_X86_SMAP is not set
# CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS is not set
CONFIG_EFI=y
CONFIG_EFI_STUB=y
@@ -87,6 +84,7 @@ CONFIG_ACPI_APEI=y
CONFIG_ACPI_APEI_ERST_DEBUG=y
# CONFIG_ACPI_PRMT is not set
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
+CONFIG_X86_AMD_PSTATE=y
CONFIG_CPU_IDLE_GOV_LADDER=y
CONFIG_PCI_CNB20LE_QUIRK=y
CONFIG_IA32_EMULATION=y
@@ -94,34 +92,36 @@ CONFIG_KVM=m
CONFIG_KVM_INTEL=m
CONFIG_KVM_AMD=m
CONFIG_KPROBES=y
-CONFIG_JUMP_LABEL=y
CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT=y
CONFIG_GCC_PLUGIN_LATENT_ENTROPY=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
+CONFIG_MODULE_UNLOAD_TAINT_TRACKING=y
CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SIG_SHA256=y
CONFIG_MODULE_COMPRESS_GZIP=y
CONFIG_BLK_DEV_THROTTLING=y
CONFIG_BLK_CGROUP_IOLATENCY=y
CONFIG_PARTITION_ADVANCED=y
CONFIG_IOSCHED_BFQ=y
-CONFIG_BFQ_GROUP_IOSCHED=y
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
CONFIG_BINFMT_MISC=m
+CONFIG_ZSWAP=y
+CONFIG_ZSMALLOC=y
+CONFIG_SLAB_FREELIST_RANDOM=y
+# CONFIG_COMPAT_BRK is not set
CONFIG_MEMORY_HOTPLUG=y
CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE=y
CONFIG_MEMORY_HOTREMOVE=y
CONFIG_KSM=y
CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
-CONFIG_CLEANCACHE=y
-CONFIG_FRONTSWAP=y
+CONFIG_TRANSPARENT_HUGEPAGE=y
CONFIG_MEM_SOFT_DIRTY=y
-CONFIG_ZSWAP=y
-CONFIG_ZSMALLOC=y
+CONFIG_LRU_GEN=y
+CONFIG_LRU_GEN_ENABLED=y
CONFIG_NET=y
CONFIG_PACKET=m
CONFIG_PACKET_DIAG=m
-CONFIG_UNIX=y
CONFIG_UNIX_DIAG=m
CONFIG_TLS=m
CONFIG_XFRM_USER=m
@@ -131,7 +131,6 @@ CONFIG_XFRM_STATISTICS=y
CONFIG_NET_KEY=m
CONFIG_NET_KEY_MIGRATE=y
CONFIG_XDP_SOCKETS=y
-CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
@@ -185,6 +184,7 @@ CONFIG_IPV6_SUBTREES=y
CONFIG_IPV6_MROUTE=y
CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
CONFIG_IPV6_PIMSM_V2=y
+CONFIG_MPTCP=y
CONFIG_NETWORK_SECMARK=y
CONFIG_NETWORK_PHY_TIMESTAMPING=y
CONFIG_NETFILTER=y
@@ -215,23 +215,31 @@ CONFIG_NF_TABLES_NETDEV=y
CONFIG_NFT_NUMGEN=m
CONFIG_NFT_CT=m
CONFIG_NFT_FLOW_OFFLOAD=m
-CONFIG_NFT_COUNTER=m
+CONFIG_NFT_CONNLIMIT=m
CONFIG_NFT_LOG=m
CONFIG_NFT_LIMIT=m
CONFIG_NFT_MASQ=m
CONFIG_NFT_REDIR=m
CONFIG_NFT_NAT=m
+CONFIG_NFT_TUNNEL=m
CONFIG_NFT_QUEUE=m
CONFIG_NFT_QUOTA=m
CONFIG_NFT_REJECT=m
CONFIG_NFT_COMPAT=m
CONFIG_NFT_HASH=m
CONFIG_NFT_FIB_INET=m
+CONFIG_NFT_XFRM=m
+CONFIG_NFT_SOCKET=m
+CONFIG_NFT_OSF=m
+CONFIG_NFT_TPROXY=m
+CONFIG_NFT_SYNPROXY=m
CONFIG_NFT_DUP_NETDEV=m
CONFIG_NFT_FWD_NETDEV=m
CONFIG_NFT_FIB_NETDEV=m
+CONFIG_NFT_REJECT_NETDEV=m
CONFIG_NF_FLOW_TABLE_INET=m
CONFIG_NF_FLOW_TABLE=m
+CONFIG_NF_FLOW_TABLE_PROCFS=y
CONFIG_NETFILTER_XT_SET=m
CONFIG_NETFILTER_XT_TARGET_AUDIT=m
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
@@ -327,6 +335,7 @@ CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
CONFIG_IP_VS_SH=m
+CONFIG_IP_VS_MH=m
CONFIG_IP_VS_SED=m
CONFIG_IP_VS_NQ=m
CONFIG_IP_VS_FTP=m
@@ -334,7 +343,6 @@ CONFIG_IP_VS_PE_SIP=m
CONFIG_NFT_DUP_IPV4=m
CONFIG_NFT_FIB_IPV4=m
CONFIG_NF_TABLES_ARP=y
-CONFIG_NF_FLOW_TABLE_IPV4=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_IPV4=m
CONFIG_IP_NF_IPTABLES=m
@@ -350,7 +358,6 @@ CONFIG_IP_NF_TARGET_MASQUERADE=m
CONFIG_IP_NF_TARGET_NETMAP=m
CONFIG_IP_NF_TARGET_REDIRECT=m
CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
CONFIG_IP_NF_TARGET_ECN=m
CONFIG_IP_NF_TARGET_TTL=m
CONFIG_IP_NF_RAW=m
@@ -359,7 +366,6 @@ CONFIG_IP_NF_ARPFILTER=m
CONFIG_IP_NF_ARP_MANGLE=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NFT_FIB_IPV6=m
-CONFIG_NF_FLOW_TABLE_IPV6=m
CONFIG_IP6_NF_IPTABLES=m
CONFIG_IP6_NF_MATCH_AH=m
CONFIG_IP6_NF_MATCH_EUI64=m
@@ -416,7 +422,6 @@ CONFIG_VLAN_8021Q=m
CONFIG_VLAN_8021Q_MVRP=y
CONFIG_LLC2=m
CONFIG_NET_SCHED=y
-CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_HFSC=m
CONFIG_NET_SCH_PRIO=m
@@ -428,7 +433,6 @@ CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_CBS=m
CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_NETEM=m
CONFIG_NET_SCH_DRR=m
CONFIG_NET_SCH_MQPRIO=m
@@ -440,17 +444,15 @@ CONFIG_NET_SCH_CAKE=m
CONFIG_NET_SCH_FQ=m
CONFIG_NET_SCH_HHF=m
CONFIG_NET_SCH_PIE=m
+CONFIG_NET_SCH_FQ_PIE=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_SCH_PLUG=m
CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_CLS_U32_PERF=y
CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_FLOW=m
CONFIG_NET_CLS_CGROUP=m
CONFIG_NET_CLS_BPF=m
@@ -489,6 +491,7 @@ CONFIG_OPENVSWITCH=m
CONFIG_VSOCKETS=m
CONFIG_VMWARE_VMCI_VSOCKETS=m
CONFIG_VIRTIO_VSOCKETS=m
+CONFIG_HYPERV_VSOCKETS=m
CONFIG_NETLINK_DIAG=y
CONFIG_MPLS_ROUTING=m
CONFIG_MPLS_IPTUNNEL=m
@@ -504,27 +507,25 @@ CONFIG_PCIEPORTBUS=y
CONFIG_HOTPLUG_PCI_PCIE=y
CONFIG_PCI_MSI=y
CONFIG_PCI_STUB=m
-CONFIG_PCI_PRI=y
-CONFIG_PCI_PASID=y
CONFIG_PCI_HYPERV=m
+# CONFIG_VGA_ARB is not set
CONFIG_HOTPLUG_PCI=y
CONFIG_HOTPLUG_PCI_ACPI=y
CONFIG_UEVENT_HELPER=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_DEVTMPFS=y
CONFIG_DEVTMPFS_MOUNT=y
+CONFIG_DEVTMPFS_SAFE=y
CONFIG_FW_LOADER=m
CONFIG_CONNECTOR=y
CONFIG_FW_CFG_SYSFS=m
CONFIG_SYSFB_SIMPLEFB=y
-CONFIG_EFI_VARS=m
CONFIG_EFI_VARS_PSTORE=m
# CONFIG_PNP_DEBUG_MESSAGES is not set
CONFIG_BLK_DEV_FD=m
CONFIG_ZRAM=m
CONFIG_ZRAM_DEF_COMP_LZ4=y
CONFIG_BLK_DEV_LOOP=m
-CONFIG_BLK_DEV_CRYPTOLOOP=m
CONFIG_BLK_DEV_DRBD=m
CONFIG_BLK_DEV_NBD=m
CONFIG_XEN_BLKDEV_BACKEND=m
@@ -608,6 +609,7 @@ CONFIG_MACVTAP=m
CONFIG_IPVLAN=m
CONFIG_VXLAN=m
CONFIG_GENEVE=m
+CONFIG_BAREUDP=m
CONFIG_MACSEC=m
CONFIG_NETCONSOLE=m
CONFIG_NETCONSOLE_DYNAMIC=y
@@ -636,6 +638,7 @@ CONFIG_ENA_ETHERNET=m
# CONFIG_NET_VENDOR_DLINK is not set
# CONFIG_NET_VENDOR_EMULEX is not set
# CONFIG_NET_VENDOR_EZCHIP is not set
+CONFIG_GVE=m
# CONFIG_NET_VENDOR_HUAWEI is not set
# CONFIG_NET_VENDOR_I825XX is not set
CONFIG_E1000=m
@@ -644,7 +647,9 @@ CONFIG_IXGBEVF=m
CONFIG_I40EVF=m
# CONFIG_NET_VENDOR_LITEX is not set
# CONFIG_NET_VENDOR_MARVELL is not set
-# CONFIG_NET_VENDOR_MELLANOX is not set
+CONFIG_MLX4_EN=m
+CONFIG_MLX5_CORE=m
+CONFIG_MLX5_CORE_EN=y
# CONFIG_NET_VENDOR_MICREL is not set
# CONFIG_NET_VENDOR_MICROSEMI is not set
# CONFIG_NET_VENDOR_MICROSOFT is not set
@@ -713,6 +718,7 @@ CONFIG_INPUT_MISC=y
# CONFIG_SERIO_SERPORT is not set
CONFIG_SERIO_PCIPS2=m
# CONFIG_LEGACY_PTYS is not set
+# CONFIG_LEGACY_TIOCSTI is not set
# CONFIG_LDISC_AUTOLOAD is not set
CONFIG_SERIAL_8250=y
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
@@ -749,10 +755,8 @@ CONFIG_WATCHDOG_CORE=y
CONFIG_WATCHDOG_SYSFS=y
CONFIG_I6300ESB_WDT=m
CONFIG_XEN_WDT=m
-# CONFIG_VGA_ARB is not set
CONFIG_DRM=m
CONFIG_DRM_VMWGFX=m
-CONFIG_DRM_VMWGFX_FBCON=y
CONFIG_DRM_VMWGFX_MKSSTATS=y
CONFIG_DRM_QXL=m
CONFIG_DRM_VIRTIO_GPU=m
@@ -764,7 +768,14 @@ CONFIG_DRM_VBOXVIDEO=m
CONFIG_DRM_HYPERV=m
CONFIG_FB=m
# CONFIG_XEN_FBDEV_FRONTEND is not set
-CONFIG_FRAMEBUFFER_CONSOLE=y
+CONFIG_SOUND=y
+CONFIG_SND=m
+# CONFIG_SND_SUPPORT_OLD_API is not set
+CONFIG_SND_HDA_INTEL=m
+CONFIG_SND_HDA_HWDEP=y
+CONFIG_SND_HDA_GENERIC=m
+# CONFIG_SND_USB is not set
+CONFIG_SND_VIRTIO=m
CONFIG_HID=m
CONFIG_HIDRAW=y
CONFIG_UHID=m
@@ -782,6 +793,7 @@ CONFIG_USB_EHCI_HCD_PLATFORM=m
CONFIG_USB_OHCI_HCD=m
CONFIG_USB_OHCI_HCD_PLATFORM=m
CONFIG_USB_UHCI_HCD=m
+CONFIG_USB_XEN_HCD=m
CONFIG_USB_STORAGE=m
CONFIG_USB_UAS=m
CONFIG_RTC_CLASS=y
@@ -793,9 +805,11 @@ CONFIG_QCOM_HIDMA=m
CONFIG_VIRT_DRIVERS=y
CONFIG_VBOXGUEST=m
CONFIG_NITRO_ENCLAVES=m
+CONFIG_EFI_SECRET=m
CONFIG_VIRTIO_PCI=y
CONFIG_VIRTIO_VDPA=m
CONFIG_VIRTIO_BALLOON=m
+CONFIG_VIRTIO_MEM=m
CONFIG_VIRTIO_INPUT=m
CONFIG_VIRTIO_MMIO=y
CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y
@@ -811,8 +825,9 @@ CONFIG_XEN_DEV_EVTCHN=m
CONFIG_XEN_PVCALLS_FRONTEND=m
CONFIG_XEN_SCSI_BACKEND=m
# CONFIG_XEN_SYMS is not set
-# CONFIG_X86_PLATFORM_DEVICES is not set
+CONFIG_XEN_VIRTIO=y
# CONFIG_SURFACE_PLATFORMS is not set
+# CONFIG_X86_PLATFORM_DEVICES is not set
CONFIG_INTEL_IOMMU=y
# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set
# CONFIG_INTEL_IOMMU_SCALABLE_MODE_DEFAULT_ON is not set
@@ -821,6 +836,8 @@ CONFIG_VIRTIO_IOMMU=m
CONFIG_RPMSG_VIRTIO=m
CONFIG_MEMORY=y
CONFIG_LIBNVDIMM=y
+CONFIG_BLK_DEV_PMEM=m
+CONFIG_DAX=y
CONFIG_EXT2_FS=m
CONFIG_EXT2_FS_XATTR=y
CONFIG_EXT2_FS_POSIX_ACL=y
@@ -849,16 +866,17 @@ CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_NILFS2_FS=m
CONFIG_F2FS_FS=m
CONFIG_F2FS_FS_COMPRESSION=y
-CONFIG_FS_DAX=y
+CONFIG_F2FS_UNFAIR_RWSEM=y
CONFIG_FS_ENCRYPTION=y
CONFIG_FS_VERITY=y
CONFIG_FS_VERITY_BUILTIN_SIGNATURES=y
# CONFIG_DNOTIFY is not set
+CONFIG_FANOTIFY=y
+CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
-# CONFIG_PRINT_QUOTA_WARNING is not set
CONFIG_QFMT_V1=m
CONFIG_QFMT_V2=m
-CONFIG_AUTOFS4_FS=m
+CONFIG_AUTOFS_FS=m
CONFIG_FUSE_FS=m
CONFIG_VIRTIO_FS=m
CONFIG_OVERLAY_FS=m
@@ -884,27 +902,18 @@ CONFIG_TMPFS_POSIX_ACL=y
CONFIG_TMPFS_INODE64=y
CONFIG_HUGETLBFS=y
CONFIG_ECRYPT_FS=m
-CONFIG_HFS_FS=m
-CONFIG_HFSPLUS_FS=m
CONFIG_EFS_FS=m
CONFIG_CRAMFS=m
# CONFIG_CRAMFS_BLOCKDEV is not set
CONFIG_SQUASHFS=m
CONFIG_SQUASHFS_FILE_DIRECT=y
-CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y
CONFIG_SQUASHFS_XATTR=y
CONFIG_SQUASHFS_LZ4=y
CONFIG_SQUASHFS_LZO=y
CONFIG_SQUASHFS_XZ=y
CONFIG_SQUASHFS_ZSTD=y
CONFIG_SQUASHFS_4K_DEVBLK_SIZE=y
-CONFIG_MINIX_FS=m
-CONFIG_OMFS_FS=m
-CONFIG_HPFS_FS=m
CONFIG_ROMFS_FS=m
-CONFIG_PSTORE_DEFLATE_COMPRESS=m
-CONFIG_PSTORE_ZSTD_COMPRESS=y
-CONFIG_PSTORE_ZSTD_COMPRESS_DEFAULT=y
CONFIG_PSTORE_RAM=m
CONFIG_SYSV_FS=m
CONFIG_UFS_FS=m
@@ -919,7 +928,6 @@ CONFIG_NFSD_V4=y
CONFIG_NFSD_BLOCKLAYOUT=y
CONFIG_NFSD_SCSILAYOUT=y
CONFIG_NFSD_FLEXFILELAYOUT=y
-CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES=y
CONFIG_CEPH_FS=m
CONFIG_CEPH_FSCACHE=y
CONFIG_CEPH_FS_POSIX_ACL=y
@@ -996,7 +1004,6 @@ CONFIG_SECURITY_LOCKDOWN_LSM=y
CONFIG_SECURITY_LANDLOCK=y
CONFIG_DEFAULT_SECURITY_DAC=y
CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,integrity"
-CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF=y
CONFIG_GCC_PLUGIN_STACKLEAK=y
CONFIG_STACKLEAK_RUNTIME_DISABLE=y
CONFIG_INIT_ON_ALLOC_DEFAULT_ON=y
@@ -1008,49 +1015,30 @@ CONFIG_CRYPTO_ECDH=m
CONFIG_CRYPTO_ECDSA=m
CONFIG_CRYPTO_SM2=m
CONFIG_CRYPTO_CURVE25519=m
-CONFIG_CRYPTO_CHACHA20POLY1305=m
-CONFIG_CRYPTO_AEGIS128=m
-CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m
+CONFIG_CRYPTO_AES=y
+CONFIG_CRYPTO_BLOWFISH=m
+CONFIG_CRYPTO_CAMELLIA=m
+CONFIG_CRYPTO_DES=m
+CONFIG_CRYPTO_FCRYPT=m
+CONFIG_CRYPTO_TWOFISH=m
+CONFIG_CRYPTO_ADIANTUM=m
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_CFB=m
CONFIG_CRYPTO_CTS=y
+CONFIG_CRYPTO_HCTR2=m
+CONFIG_CRYPTO_KEYWRAP=m
CONFIG_CRYPTO_LRW=m
CONFIG_CRYPTO_PCBC=m
CONFIG_CRYPTO_XTS=y
-CONFIG_CRYPTO_KEYWRAP=m
-CONFIG_CRYPTO_ADIANTUM=m
-CONFIG_CRYPTO_HMAC=y
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-CONFIG_CRYPTO_CRC32C_INTEL=m
-CONFIG_CRYPTO_CRC32_PCLMUL=m
-CONFIG_CRYPTO_BLAKE2S=m
-CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m
+CONFIG_CRYPTO_AEGIS128=m
+CONFIG_CRYPTO_CHACHA20POLY1305=m
+CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MICHAEL_MIC=m
CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_SHA1_SSSE3=m
-CONFIG_CRYPTO_SHA256_SSSE3=m
-CONFIG_CRYPTO_SHA512_SSSE3=m
CONFIG_CRYPTO_SHA512=y
-CONFIG_CRYPTO_SHA3=m
+CONFIG_CRYPTO_VMAC=m
CONFIG_CRYPTO_WP512=m
-CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
-CONFIG_CRYPTO_AES=y
-CONFIG_CRYPTO_AES_NI_INTEL=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_BLOWFISH_X86_64=m
-CONFIG_CRYPTO_CAMELLIA=m
-CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m
-CONFIG_CRYPTO_CAST5_AVX_X86_64=m
-CONFIG_CRYPTO_CAST6_AVX_X86_64=m
-CONFIG_CRYPTO_DES=m
-CONFIG_CRYPTO_FCRYPT=m
-CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
-CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m
-CONFIG_CRYPTO_SM4=m
-CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
+CONFIG_CRYPTO_XCBC=m
CONFIG_CRYPTO_DEFLATE=y
CONFIG_CRYPTO_LZ4=m
CONFIG_CRYPTO_LZ4HC=m
@@ -1060,6 +1048,23 @@ CONFIG_CRYPTO_USER_API_SKCIPHER=m
CONFIG_CRYPTO_USER_API_RNG=m
CONFIG_CRYPTO_USER_API_AEAD=m
# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set
+CONFIG_CRYPTO_AES_NI_INTEL=m
+CONFIG_CRYPTO_BLOWFISH_X86_64=m
+CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m
+CONFIG_CRYPTO_CAST5_AVX_X86_64=m
+CONFIG_CRYPTO_CAST6_AVX_X86_64=m
+CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
+CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m
+CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64=m
+CONFIG_CRYPTO_TWOFISH_AVX_X86_64=m
+CONFIG_CRYPTO_AEGIS128_AESNI_SSE2=m
+CONFIG_CRYPTO_SHA1_SSSE3=m
+CONFIG_CRYPTO_SHA256_SSSE3=m
+CONFIG_CRYPTO_SHA512_SSSE3=m
+CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m
+CONFIG_CRYPTO_CRC32C_INTEL=m
+CONFIG_CRYPTO_CRC32_PCLMUL=m
+CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m
CONFIG_CRYPTO_DEV_PADLOCK=m
CONFIG_CRYPTO_DEV_PADLOCK_AES=m
CONFIG_CRYPTO_DEV_PADLOCK_SHA=m
@@ -1071,13 +1076,15 @@ CONFIG_SECONDARY_TRUSTED_KEYRING=y
CONFIG_CORDIC=m
CONFIG_CRC_T10DIF=y
CONFIG_CRC7=m
-CONFIG_CRC8=m
CONFIG_IRQ_POLL=y
CONFIG_PRINTK_TIME=y
CONFIG_CONSOLE_LOGLEVEL_QUIET=3
+CONFIG_DYNAMIC_DEBUG=y
+CONFIG_DEBUG_INFO_DWARF5=y
+CONFIG_DEBUG_INFO_BTF=y
CONFIG_FRAME_WARN=1280
CONFIG_MAGIC_SYSRQ=y
-CONFIG_DEBUG_FS=y
+# CONFIG_SLUB_DEBUG is not set
CONFIG_DEBUG_RODATA_TEST=y
CONFIG_KFENCE=y
CONFIG_DEBUG_SHIRQ=y
diff --git a/main/linux-lts/vmlinux-zstd.patch b/main/linux-lts/vmlinux-zstd.patch
deleted file mode 100644
index 8e0f1fba30f..00000000000
--- a/main/linux-lts/vmlinux-zstd.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-Compress vmlinux with zstd -19 instead of -22
-
-This gives slightly bigger kernel but on 32bit x86 solves:
-zstd kernel compression error 11
-
-diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
-index 431bf7f..decc2de 100644
---- a/arch/x86/boot/compressed/Makefile
-+++ b/arch/x86/boot/compressed/Makefile
-@@ -133,7 +133,7 @@ $(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) FORCE
- $(obj)/vmlinux.bin.lz4: $(vmlinux.bin.all-y) FORCE
- $(call if_changed,lz4)
- $(obj)/vmlinux.bin.zst: $(vmlinux.bin.all-y) FORCE
-- $(call if_changed,zstd22)
-+ $(call if_changed,zstd)
-
- suffix-$(CONFIG_KERNEL_GZIP) := gz
- suffix-$(CONFIG_KERNEL_BZIP2) := bz2
diff --git a/main/linux-octeon/APKBUILD b/main/linux-octeon/APKBUILD
deleted file mode 100644
index e516f3841de..00000000000
--- a/main/linux-octeon/APKBUILD
+++ /dev/null
@@ -1,219 +0,0 @@
-# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
-
-_flavor=octeon
-pkgname=linux-${_flavor}
-pkgver=5.4.70
-case $pkgver in
- *.*.*) _kernver=${pkgver%.*};;
- *.*) _kernver=$pkgver;;
-esac
-pkgrel=3
-pkgdesc="Linux lts kernel (for Octeon)"
-url="http://kernel.org"
-depends="initramfs-generator"
-_depends_dev="perl gmp-dev elfutils-dev bash flex bison"
-makedepends="$_depends_dev sed installkernel bc linux-headers linux-firmware-any openssl1.1-compat-dev
- diffutils"
-options="!strip"
-_config=${config:-config-lts.${CARCH}}
-install=
-source="https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/linux-$_kernver.tar.xz
- octeon-rd_name.patch
- octeon-disable-devicetree-deprecation-warning.patch
- ubnt-e200-sdio-underclock.patch
- kvm-fallthrough.patch
-
- config-octeon.mips64
- "
-subpackages="$pkgname-dev:_dev:$CBUILD_ARCH"
-_flavors=
-for _i in $source; do
- case $_i in
- config-*.$CARCH)
- _f=${_i%.$CARCH}
- _f=${_f#config-}
- _flavors="$_flavors ${_f}"
- if [ "linux-$_f" != "$pkgname" ]; then
- subpackages="$subpackages linux-${_f}::$CBUILD_ARCH linux-${_f}-dev:_dev:$CBUILD_ARCH"
- fi
- ;;
- esac
-done
-
-if [ "${pkgver%.0}" = "$pkgver" ]; then
- source="$source
- https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/patch-$pkgver.xz"
-fi
-arch="mips64 mips64el"
-license="GPL-2.0"
-
-_carch=${CARCH}
-case "$_carch" in
-aarch64*) _carch="arm64" ;;
-arm*) _carch="arm" ;;
-mips*) _carch="mips" ;;
-ppc*) _carch="powerpc" ;;
-s390*) _carch="s390" ;;
-esac
-
-prepare() {
- local _patch_failed=
- cd "$srcdir"/linux-$_kernver
- if [ "$_kernver" != "$pkgver" ]; then
- msg "Applying patch-$pkgver.xz"
- unxz -c < "$srcdir"/patch-$pkgver.xz | patch -p1 -N
- fi
-
- # first apply patches in specified order
- for i in $source; do
- case $i in
- *.patch)
- msg "Applying $i..."
- if ! patch -s -p1 -N -i "$srcdir"/$i; then
- echo $i >>failed
- _patch_failed=1
- fi
- ;;
- esac
- done
-
- if ! [ -z "$_patch_failed" ]; then
- error "The following patches failed:"
- cat failed
- return 1
- fi
-
- # remove localversion from patch if any
- rm -f localversion*
- oldconfig
-}
-
-oldconfig() {
- for i in $_flavors; do
- local _config=config-$i.${CARCH}
- local _builddir="$srcdir"/build-$i.$CARCH
- mkdir -p "$_builddir"
- echo "-$pkgrel-$i" > "$_builddir"/localversion-alpine \
- || return 1
-
- cp "$srcdir"/$_config "$_builddir"/.config
- make -C "$srcdir"/linux-$_kernver \
- O="$_builddir" \
- ARCH="$_carch" \
- listnewconfig oldconfig
- done
-}
-
-build() {
- unset LDFLAGS
- export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
- for i in $_flavors; do
- cd "$srcdir"/build-$i.$CARCH
- make ARCH="$_carch" CC="${CC:-gcc}" \
- KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-Alpine"
- done
-}
-
-_package() {
- local _buildflavor="$1" _outdir="$2"
- local _abi_release=${pkgver}-${pkgrel}-${_buildflavor}
- export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
-
- cd "$srcdir"/build-$_buildflavor.$CARCH
- # modules_install seems to regenerate a defect Modules.symvers on s390x. Work
- # around it by backing it up and restore it after modules_install
- cp Module.symvers Module.symvers.backup
-
- mkdir -p "$_outdir"/boot "$_outdir"/lib/modules
-
- local _install
- case "$CARCH" in
- arm*|aarch64) _install="zinstall dtbs_install";;
- *) _install=install;;
- esac
-
- make -j1 modules_install $_install \
- ARCH="$_carch" \
- INSTALL_MOD_PATH="$_outdir" \
- INSTALL_PATH="$_outdir"/boot \
- INSTALL_DTBS_PATH="$_outdir/boot/dtbs-$_flavor"
-
- cp Module.symvers.backup Module.symvers
-
- rm -f "$_outdir"/lib/modules/${_abi_release}/build \
- "$_outdir"/lib/modules/${_abi_release}/source
- rm -rf "$_outdir"/lib/firmware
-
- install -D -m644 include/config/kernel.release \
- "$_outdir"/usr/share/kernel/$_buildflavor/kernel.release
-
- mv "$_outdir"/boot/vmlinux* "$_outdir"/boot/vmlinux.64
- md5sum "$_outdir"/boot/vmlinux.64 | cut -c1-32 > "$_outdir"/boot/vmlinux.64.md5
-}
-
-# main flavor installs in $pkgdir
-package() {
- depends="$depends linux-firmware-any"
-
- _package octeon "$pkgdir"
-}
-
-_dev() {
- local _flavor=$(echo $subpkgname | sed -E 's/(^linux-|-dev$)//g')
- local _abi_release=${pkgver}-${pkgrel}-$_flavor
- # copy the only the parts that we really need for build 3rd party
- # kernel modules and install those as /usr/src/linux-headers,
- # simlar to what ubuntu does
- #
- # this way you dont need to install the 300-400 kernel sources to
- # build a tiny kernel module
- #
- pkgdesc="Headers and script for third party modules for $_flavor kernel"
- depends="$_depends_dev"
- local dir="$subpkgdir"/usr/src/linux-headers-${_abi_release}
- export KBUILD_BUILD_TIMESTAMP="$(date -Ru${SOURCE_DATE_EPOCH:+d @$SOURCE_DATE_EPOCH})"
-
- # first we import config, run prepare to set up for building
- # external modules, and create the scripts
- mkdir -p "$dir"
- cp "$srcdir"/config-$_flavor.${CARCH} "$dir"/.config
- echo "-$pkgrel-$_flavor" > "$dir"/localversion-alpine
-
- make -j1 -C "$srcdir"/linux-$_kernver O="$dir" ARCH="$_carch" \
- syncconfig prepare modules_prepare scripts
-
- # remove the stuff that points to real sources. we want 3rd party
- # modules to believe this is the soruces
- rm "$dir"/Makefile "$dir"/source
-
- # copy the needed stuff from real sources
- #
- # this is taken from ubuntu kernel build script
- # http://kernel.ubuntu.com/git/ubuntu/ubuntu-zesty.git/tree/debian/rules.d/3-binary-indep.mk
- cd "$srcdir"/linux-$_kernver
- find . -path './include/*' -prune \
- -o -path './scripts/*' -prune -o -type f \
- \( -name 'Makefile*' -o -name 'Kconfig*' -o -name 'Kbuild*' -o \
- -name '*.sh' -o -name '*.pl' -o -name '*.lds' -o -name 'Platform' \) \
- -print | cpio -pdm "$dir"
-
- cp -a scripts include "$dir"
-
- find $(find arch -name include -type d -print) -type f \
- | cpio -pdm "$dir"
-
- install -Dm644 "$srcdir"/build-$_flavor.$CARCH/Module.symvers \
- "$dir"/Module.symvers
-
- mkdir -p "$subpkgdir"/lib/modules/${_abi_release}
- ln -sf /usr/src/linux-headers-${_abi_release} \
- "$subpkgdir"/lib/modules/${_abi_release}/build
-}
-
-sha512sums="9f60f77e8ab972b9438ac648bed17551c8491d6585a5e85f694b2eaa4c623fbc61eb18419b2656b6795eac5deec0edaa04547fc6723fbda52256bd7f3486898f linux-5.4.tar.xz
-39d145b7afd3297d9572e7c37eb40b58c3b0d7f30cc361bdf6c89e6bb54a6072f79dea979f4b4fc24d06fe06c406d10949cbf79d373e1ba82514a2f1bb0a6255 octeon-rd_name.patch
-a2c0d901188570ebba6917b727cdb4823bda5dbe29a559ed2055db21b4f5dd4990f623b94f07072bcbf69647f250afb52d1771d706bdc072e2cfb00003e257b4 octeon-disable-devicetree-deprecation-warning.patch
-c227cd4a0c9712a75d62211becb8591fccd15a93ae4483835f1ec69aabca51aaf8254c37e6315bbd5a08b1f521b369269bfe973700eb993ec6a629b7167e75f7 ubnt-e200-sdio-underclock.patch
-7dde2a2d5c7bfd06a2482da2cc9477d106fbeaf563d696cf32c2455fd9dff0c1efb69b1ddab7ef030fd2e3cb9f0774b0355d739d1ae848697e08121e617aaa9e kvm-fallthrough.patch
-b6e122adc2595a0b69f8eebca2380f4dc1e5e895bf49e9616bf7d24fc47fade577c016540119b1ff02738e42b3af9dc8a9787321c74876afab58b6b9ae9f00c5 config-octeon.mips64
-a87fffe500b7f0355fe49077b4d80359b31e0721d824ba95135ba851d1b1b747ea9dfd0bc15e6133bc93132df60c4ca9ee99830acb0309866f02f9c88b7784f9 patch-5.4.70.xz"
diff --git a/main/linux-octeon/config-octeon.mips64 b/main/linux-octeon/config-octeon.mips64
deleted file mode 100644
index e514810d788..00000000000
--- a/main/linux-octeon/config-octeon.mips64
+++ /dev/null
@@ -1,3296 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Linux/mips 5.4.70 Kernel Configuration
-#
-
-#
-# Compiler: gcc (Alpine 9.3.0) 9.3.0
-#
-CONFIG_CC_IS_GCC=y
-CONFIG_GCC_VERSION=90300
-CONFIG_CLANG_VERSION=0
-CONFIG_CC_CAN_LINK=y
-CONFIG_CC_HAS_ASM_GOTO=y
-CONFIG_CC_HAS_ASM_INLINE=y
-CONFIG_IRQ_WORK=y
-CONFIG_BUILDTIME_EXTABLE_SORT=y
-
-#
-# General setup
-#
-CONFIG_INIT_ENV_ARG_LIMIT=32
-# CONFIG_COMPILE_TEST is not set
-CONFIG_LOCALVERSION=""
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_BUILD_SALT=""
-CONFIG_DEFAULT_HOSTNAME="(none)"
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_POSIX_MQUEUE_SYSCTL=y
-# CONFIG_CROSS_MEMORY_ATTACH is not set
-# CONFIG_USELIB is not set
-# CONFIG_AUDIT is not set
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_IRQ_DOMAIN=y
-CONFIG_HANDLE_DOMAIN_IRQ=y
-CONFIG_IRQ_FORCED_THREADING=y
-# end of IRQ subsystem
-
-CONFIG_ARCH_CLOCKSOURCE_DATA=y
-CONFIG_GENERIC_TIME_VSYSCALL=y
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_GENERIC_CMOS_UPDATE=y
-
-#
-# Timers subsystem
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_HZ_PERIODIC=y
-# CONFIG_NO_HZ_IDLE is not set
-# CONFIG_NO_HZ_FULL is not set
-# CONFIG_NO_HZ is not set
-CONFIG_HIGH_RES_TIMERS=y
-# end of Timers subsystem
-
-CONFIG_PREEMPT_NONE=y
-# CONFIG_PREEMPT_VOLUNTARY is not set
-# CONFIG_PREEMPT is not set
-
-#
-# CPU/Task time and stats accounting
-#
-CONFIG_TICK_CPU_ACCOUNTING=y
-# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set
-# CONFIG_IRQ_TIME_ACCOUNTING is not set
-# CONFIG_BSD_PROCESS_ACCT is not set
-# CONFIG_TASKSTATS is not set
-# CONFIG_PSI is not set
-# end of CPU/Task time and stats accounting
-
-CONFIG_CPU_ISOLATION=y
-
-#
-# RCU Subsystem
-#
-CONFIG_TREE_RCU=y
-# CONFIG_RCU_EXPERT is not set
-CONFIG_SRCU=y
-CONFIG_TREE_SRCU=y
-CONFIG_RCU_STALL_COMMON=y
-CONFIG_RCU_NEED_SEGCBLIST=y
-# end of RCU Subsystem
-
-# CONFIG_IKCONFIG is not set
-# CONFIG_IKHEADERS is not set
-CONFIG_LOG_BUF_SHIFT=16
-CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
-CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13
-
-#
-# Scheduler features
-#
-# end of Scheduler features
-
-CONFIG_CGROUPS=y
-# CONFIG_MEMCG is not set
-# CONFIG_BLK_CGROUP is not set
-# CONFIG_CGROUP_SCHED is not set
-# CONFIG_CGROUP_PIDS is not set
-# CONFIG_CGROUP_RDMA is not set
-# CONFIG_CGROUP_FREEZER is not set
-# CONFIG_CGROUP_HUGETLB is not set
-# CONFIG_CPUSETS is not set
-# CONFIG_CGROUP_DEVICE is not set
-# CONFIG_CGROUP_CPUACCT is not set
-CONFIG_CGROUP_BPF=y
-# CONFIG_CGROUP_DEBUG is not set
-CONFIG_SOCK_CGROUP_DATA=y
-CONFIG_NAMESPACES=y
-# CONFIG_UTS_NS is not set
-# CONFIG_IPC_NS is not set
-# CONFIG_USER_NS is not set
-# CONFIG_PID_NS is not set
-CONFIG_NET_NS=y
-# CONFIG_CHECKPOINT_RESTORE is not set
-# CONFIG_SCHED_AUTOGROUP is not set
-# CONFIG_SYSFS_DEPRECATED is not set
-# CONFIG_RELAY is not set
-# CONFIG_BLK_DEV_INITRD is not set
-CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION=y
-# CONFIG_LD_DEAD_CODE_DATA_ELIMINATION is not set
-CONFIG_SYSCTL=y
-CONFIG_SYSCTL_EXCEPTION_TRACE=y
-CONFIG_BPF=y
-CONFIG_EXPERT=y
-CONFIG_MULTIUSER=y
-CONFIG_SGETMASK_SYSCALL=y
-CONFIG_SYSFS_SYSCALL=y
-CONFIG_SYSCTL_SYSCALL=y
-CONFIG_FHANDLE=y
-CONFIG_POSIX_TIMERS=y
-CONFIG_PRINTK=y
-CONFIG_PRINTK_NMI=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_FUTEX_PI=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-CONFIG_IO_URING=y
-CONFIG_ADVISE_SYSCALLS=y
-CONFIG_MEMBARRIER=y
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_ALL is not set
-CONFIG_KALLSYMS_BASE_RELATIVE=y
-CONFIG_BPF_SYSCALL=y
-CONFIG_BPF_JIT_ALWAYS_ON=y
-# CONFIG_USERFAULTFD is not set
-CONFIG_RSEQ=y
-# CONFIG_DEBUG_RSEQ is not set
-CONFIG_EMBEDDED=y
-CONFIG_HAVE_PERF_EVENTS=y
-CONFIG_PERF_USE_VMALLOC=y
-# CONFIG_PC104 is not set
-
-#
-# Kernel Performance Events And Counters
-#
-# CONFIG_PERF_EVENTS is not set
-# end of Kernel Performance Events And Counters
-
-CONFIG_VM_EVENT_COUNTERS=y
-# CONFIG_COMPAT_BRK is not set
-CONFIG_SLAB=y
-# CONFIG_SLUB is not set
-# CONFIG_SLOB is not set
-CONFIG_SLAB_MERGE_DEFAULT=y
-# CONFIG_SLAB_FREELIST_RANDOM is not set
-# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set
-# CONFIG_PROFILING is not set
-# end of General setup
-
-CONFIG_MIPS=y
-
-#
-# Machine selection
-#
-# CONFIG_MIPS_GENERIC is not set
-# CONFIG_MIPS_ALCHEMY is not set
-# CONFIG_AR7 is not set
-# CONFIG_ATH25 is not set
-# CONFIG_ATH79 is not set
-# CONFIG_BMIPS_GENERIC is not set
-# CONFIG_BCM47XX is not set
-# CONFIG_BCM63XX is not set
-# CONFIG_MIPS_COBALT is not set
-# CONFIG_MACH_DECSTATION is not set
-# CONFIG_MACH_JAZZ is not set
-# CONFIG_MACH_INGENIC is not set
-# CONFIG_LANTIQ is not set
-# CONFIG_LASAT is not set
-# CONFIG_MACH_LOONGSON32 is not set
-# CONFIG_MACH_LOONGSON64 is not set
-# CONFIG_MACH_PISTACHIO is not set
-# CONFIG_MIPS_MALTA is not set
-# CONFIG_MACH_PIC32 is not set
-# CONFIG_NEC_MARKEINS is not set
-# CONFIG_MACH_VR41XX is not set
-# CONFIG_NXP_STB220 is not set
-# CONFIG_NXP_STB225 is not set
-# CONFIG_PMC_MSP is not set
-# CONFIG_RALINK is not set
-# CONFIG_SGI_IP22 is not set
-# CONFIG_SGI_IP27 is not set
-# CONFIG_SGI_IP28 is not set
-# CONFIG_SGI_IP32 is not set
-# CONFIG_SIBYTE_CRHINE is not set
-# CONFIG_SIBYTE_CARMEL is not set
-# CONFIG_SIBYTE_CRHONE is not set
-# CONFIG_SIBYTE_RHONE is not set
-# CONFIG_SIBYTE_SWARM is not set
-# CONFIG_SIBYTE_LITTLESUR is not set
-# CONFIG_SIBYTE_SENTOSA is not set
-# CONFIG_SIBYTE_BIGSUR is not set
-# CONFIG_SNI_RM is not set
-# CONFIG_MACH_TX39XX is not set
-# CONFIG_MACH_TX49XX is not set
-# CONFIG_MIKROTIK_RB532 is not set
-CONFIG_CAVIUM_OCTEON_SOC=y
-# CONFIG_NLM_XLR_BOARD is not set
-# CONFIG_NLM_XLP_BOARD is not set
-# CONFIG_MIPS_PARAVIRT is not set
-CONFIG_CAVIUM_CN63XXP1=y
-CONFIG_CAVIUM_OCTEON_CVMSEG_SIZE=3
-CONFIG_CAVIUM_OCTEON_LOCK_L2=y
-CONFIG_CAVIUM_OCTEON_LOCK_L2_TLB=y
-CONFIG_CAVIUM_OCTEON_LOCK_L2_EXCEPTION=y
-CONFIG_CAVIUM_OCTEON_LOCK_L2_LOW_LEVEL_INTERRUPT=y
-CONFIG_CAVIUM_OCTEON_LOCK_L2_INTERRUPT=y
-CONFIG_CAVIUM_OCTEON_LOCK_L2_MEMCPY=y
-# CONFIG_OCTEON_ILM is not set
-# end of Machine selection
-
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_SCHED_OMIT_FRAME_POINTER=y
-CONFIG_CEVT_R4K=y
-CONFIG_ARCH_SUPPORTS_UPROBES=y
-CONFIG_SYS_HAS_EARLY_PRINTK=y
-CONFIG_SYS_SUPPORTS_HOTPLUG_CPU=y
-CONFIG_HOLES_IN_ZONE=y
-CONFIG_SYS_SUPPORTS_RELOCATABLE=y
-CONFIG_MIPS_EBPF_JIT=y
-CONFIG_CPU_BIG_ENDIAN=y
-# CONFIG_CPU_LITTLE_ENDIAN is not set
-CONFIG_EXPORT_UASM=y
-CONFIG_SYS_SUPPORTS_BIG_ENDIAN=y
-CONFIG_SYS_SUPPORTS_LITTLE_ENDIAN=y
-CONFIG_SYS_SUPPORTS_HUGETLBFS=y
-CONFIG_MIPS_HUGE_TLB_SUPPORT=y
-CONFIG_MIPS_SPRAM=y
-CONFIG_MIPS_L1_CACHE_SHIFT_7=y
-CONFIG_MIPS_L1_CACHE_SHIFT=7
-
-#
-# CPU selection
-#
-CONFIG_CPU_CAVIUM_OCTEON=y
-CONFIG_SYS_HAS_CPU_CAVIUM_OCTEON=y
-CONFIG_WEAK_ORDERING=y
-# end of CPU selection
-
-CONFIG_CPU_MIPSR2=y
-CONFIG_TARGET_ISA_REV=2
-CONFIG_SYS_SUPPORTS_64BIT_KERNEL=y
-CONFIG_CPU_SUPPORTS_64BIT_KERNEL=y
-CONFIG_CPU_SUPPORTS_HUGEPAGES=y
-CONFIG_MIPS_PGD_C0_CONTEXT=y
-CONFIG_HARDWARE_WATCHPOINTS=y
-
-#
-# Kernel type
-#
-CONFIG_64BIT=y
-# CONFIG_MIPS_VA_BITS_48 is not set
-CONFIG_PAGE_SIZE_4KB=y
-# CONFIG_PAGE_SIZE_8KB is not set
-# CONFIG_PAGE_SIZE_16KB is not set
-# CONFIG_PAGE_SIZE_32KB is not set
-# CONFIG_PAGE_SIZE_64KB is not set
-CONFIG_FORCE_MAX_ZONEORDER=14
-CONFIG_CPU_HAS_PREFETCH=y
-CONFIG_CPU_GENERIC_DUMP_TLB=y
-CONFIG_MIPS_FP_SUPPORT=y
-CONFIG_CPU_R4K_FPU=y
-CONFIG_CPU_NEEDS_NO_SMARTMIPS_OR_MICROMIPS=y
-CONFIG_CPU_HAS_RIXI=y
-CONFIG_CPU_HAS_LOAD_STORE_LR=y
-CONFIG_CPU_HAS_SYNC=y
-CONFIG_MIPS_ASID_SHIFT=0
-CONFIG_MIPS_ASID_BITS=8
-CONFIG_CPU_SUPPORTS_HIGHMEM=y
-CONFIG_ARCH_FLATMEM_ENABLE=y
-CONFIG_ARCH_SPARSEMEM_ENABLE=y
-# CONFIG_RELOCATABLE is not set
-CONFIG_SMP=y
-CONFIG_HOTPLUG_CPU=y
-CONFIG_SYS_SUPPORTS_SMP=y
-CONFIG_NR_CPUS_DEFAULT_64=y
-CONFIG_NR_CPUS=256
-CONFIG_MIPS_NR_CPU_NR_MAP_1024=y
-CONFIG_MIPS_NR_CPU_NR_MAP=1024
-# CONFIG_HZ_24 is not set
-# CONFIG_HZ_48 is not set
-CONFIG_HZ_100=y
-# CONFIG_HZ_128 is not set
-# CONFIG_HZ_250 is not set
-# CONFIG_HZ_256 is not set
-# CONFIG_HZ_1000 is not set
-# CONFIG_HZ_1024 is not set
-CONFIG_SYS_SUPPORTS_ARBIT_HZ=y
-CONFIG_HZ=100
-CONFIG_SCHED_HRTICK=y
-CONFIG_KEXEC=y
-# CONFIG_CRASH_DUMP is not set
-# CONFIG_SECCOMP is not set
-# CONFIG_MIPS_O32_FP64_SUPPORT is not set
-CONFIG_USE_OF=y
-CONFIG_BUILTIN_DTB=y
-CONFIG_MIPS_NO_APPENDED_DTB=y
-# CONFIG_MIPS_ELF_APPENDED_DTB is not set
-# CONFIG_MIPS_RAW_APPENDED_DTB is not set
-# CONFIG_MIPS_CMDLINE_FROM_DTB is not set
-# CONFIG_MIPS_CMDLINE_DTB_EXTEND is not set
-CONFIG_MIPS_CMDLINE_FROM_BOOTLOADER=y
-# CONFIG_MIPS_CMDLINE_BUILTIN_EXTEND is not set
-# end of Kernel type
-
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_PGTABLE_LEVELS=3
-
-#
-# Bus options (PCI, PCMCIA, EISA, ISA, TC)
-#
-CONFIG_PCI_DRIVERS_LEGACY=y
-CONFIG_MMU=y
-CONFIG_ARCH_MMAP_RND_BITS_MIN=12
-CONFIG_ARCH_MMAP_RND_BITS_MAX=18
-CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8
-CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=15
-CONFIG_ZONE_DMA32=y
-# end of Bus options (PCI, PCMCIA, EISA, ISA, TC)
-
-CONFIG_MIPS32_COMPAT=y
-CONFIG_COMPAT=y
-CONFIG_SYSVIPC_COMPAT=y
-CONFIG_MIPS32_O32=y
-CONFIG_MIPS32_N32=y
-CONFIG_BINFMT_ELF32=y
-
-#
-# Power management options
-#
-CONFIG_ARCH_HIBERNATION_POSSIBLE=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-# CONFIG_SUSPEND is not set
-# CONFIG_HIBERNATION is not set
-# CONFIG_PM is not set
-# end of Power management options
-
-#
-# CPU Power Management
-#
-
-#
-# CPU Idle
-#
-# CONFIG_CPU_IDLE is not set
-# end of CPU Idle
-# end of CPU Power Management
-
-#
-# Firmware Drivers
-#
-# CONFIG_FIRMWARE_MEMMAP is not set
-# CONFIG_GOOGLE_FIRMWARE is not set
-CONFIG_EFI_EARLYCON=y
-
-#
-# Tegra firmware driver
-#
-# end of Tegra firmware driver
-# end of Firmware Drivers
-
-CONFIG_HAVE_KVM=y
-CONFIG_KVM_MMIO=y
-CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y
-CONFIG_KVM_COMPAT=y
-CONFIG_HAVE_KVM_VCPU_ASYNC_IOCTL=y
-CONFIG_VIRTUALIZATION=y
-CONFIG_KVM=m
-# CONFIG_KVM_MIPS_TE is not set
-CONFIG_KVM_MIPS_VZ=y
-# CONFIG_KVM_MIPS_DEBUG_COP0_COUNTERS is not set
-CONFIG_VHOST_NET=m
-CONFIG_VHOST=m
-CONFIG_VHOST_CROSS_ENDIAN_LEGACY=y
-
-#
-# General architecture-dependent options
-#
-CONFIG_CRASH_CORE=y
-CONFIG_KEXEC_CORE=y
-CONFIG_HAVE_OPROFILE=y
-# CONFIG_KPROBES is not set
-CONFIG_JUMP_LABEL=y
-# CONFIG_STATIC_KEYS_SELFTEST is not set
-CONFIG_ARCH_USE_BUILTIN_BSWAP=y
-CONFIG_HAVE_IOREMAP_PROT=y
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_NMI=y
-CONFIG_HAVE_ARCH_TRACEHOOK=y
-CONFIG_HAVE_DMA_CONTIGUOUS=y
-CONFIG_GENERIC_SMP_IDLE_THREAD=y
-CONFIG_HAVE_ASM_MODVERSIONS=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_RSEQ=y
-CONFIG_HAVE_ARCH_JUMP_LABEL=y
-CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
-CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y
-CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y
-CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
-CONFIG_HAVE_STACKPROTECTOR=y
-CONFIG_CC_HAS_STACKPROTECTOR_NONE=y
-CONFIG_STACKPROTECTOR=y
-CONFIG_STACKPROTECTOR_STRONG=y
-CONFIG_HAVE_CONTEXT_TRACKING=y
-CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y
-CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y
-CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y
-CONFIG_HAVE_MOD_ARCH_SPECIFIC=y
-CONFIG_MODULES_USE_ELF_RELA=y
-CONFIG_MODULES_USE_ELF_REL=y
-CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y
-CONFIG_ARCH_HAS_ELF_RANDOMIZE=y
-CONFIG_HAVE_ARCH_MMAP_RND_BITS=y
-CONFIG_HAVE_EXIT_THREAD=y
-CONFIG_ARCH_MMAP_RND_BITS=12
-CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y
-CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8
-CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y
-CONFIG_HAVE_COPY_THREAD_TLS=y
-CONFIG_CLONE_BACKWARDS=y
-CONFIG_64BIT_TIME=y
-CONFIG_COMPAT_32BIT_TIME=y
-CONFIG_ARCH_HAS_PHYS_TO_DMA=y
-# CONFIG_REFCOUNT_FULL is not set
-CONFIG_HAVE_ARCH_COMPILER_H=y
-CONFIG_ARCH_USE_MEMREMAP_PROT=y
-
-#
-# GCOV-based kernel profiling
-#
-# end of GCOV-based kernel profiling
-
-CONFIG_PLUGIN_HOSTCC=""
-# end of General architecture-dependent options
-
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-# CONFIG_MODULE_FORCE_LOAD is not set
-CONFIG_MODULE_UNLOAD=y
-# CONFIG_MODULE_FORCE_UNLOAD is not set
-# CONFIG_MODVERSIONS is not set
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-# CONFIG_MODULE_SIG is not set
-# CONFIG_MODULE_COMPRESS is not set
-# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set
-# CONFIG_UNUSED_SYMBOLS is not set
-# CONFIG_TRIM_UNUSED_KSYMS is not set
-CONFIG_BLOCK=y
-CONFIG_BLK_SCSI_REQUEST=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_BLK_DEV_BSGLIB is not set
-# CONFIG_BLK_DEV_INTEGRITY is not set
-# CONFIG_BLK_DEV_ZONED is not set
-# CONFIG_BLK_CMDLINE_PARSER is not set
-# CONFIG_BLK_WBT is not set
-# CONFIG_BLK_SED_OPAL is not set
-
-#
-# Partition Types
-#
-# CONFIG_PARTITION_ADVANCED is not set
-CONFIG_MSDOS_PARTITION=y
-CONFIG_EFI_PARTITION=y
-# end of Partition Types
-
-CONFIG_BLOCK_COMPAT=y
-
-#
-# IO Schedulers
-#
-CONFIG_MQ_IOSCHED_DEADLINE=y
-CONFIG_MQ_IOSCHED_KYBER=y
-# CONFIG_IOSCHED_BFQ is not set
-# end of IO Schedulers
-
-CONFIG_PREEMPT_NOTIFIERS=y
-CONFIG_ASN1=m
-CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-CONFIG_INLINE_READ_UNLOCK=y
-CONFIG_INLINE_READ_UNLOCK_IRQ=y
-CONFIG_INLINE_WRITE_UNLOCK=y
-CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
-CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y
-CONFIG_QUEUED_SPINLOCKS=y
-CONFIG_ARCH_USE_QUEUED_RWLOCKS=y
-CONFIG_QUEUED_RWLOCKS=y
-
-#
-# Executable file formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_ARCH_BINFMT_ELF_STATE=y
-CONFIG_ELFCORE=y
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-CONFIG_BINFMT_SCRIPT=y
-# CONFIG_BINFMT_MISC is not set
-CONFIG_COREDUMP=y
-# end of Executable file formats
-
-#
-# Memory Management options
-#
-CONFIG_SPARSEMEM=y
-CONFIG_HAVE_MEMORY_PRESENT=y
-CONFIG_SPARSEMEM_STATIC=y
-CONFIG_HAVE_MEMBLOCK_NODE_MAP=y
-CONFIG_HAVE_FAST_GUP=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-CONFIG_COMPACTION=y
-CONFIG_MIGRATION=y
-CONFIG_PHYS_ADDR_T_64BIT=y
-CONFIG_VIRT_TO_BUS=y
-CONFIG_MMU_NOTIFIER=y
-# CONFIG_KSM is not set
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-# CONFIG_TRANSPARENT_HUGEPAGE is not set
-# CONFIG_CLEANCACHE is not set
-# CONFIG_FRONTSWAP is not set
-# CONFIG_CMA is not set
-# CONFIG_ZPOOL is not set
-# CONFIG_ZBUD is not set
-# CONFIG_ZSMALLOC is not set
-# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
-# CONFIG_IDLE_PAGE_TRACKING is not set
-# CONFIG_PERCPU_STATS is not set
-# CONFIG_GUP_BENCHMARK is not set
-CONFIG_ARCH_HAS_PTE_SPECIAL=y
-# end of Memory Management options
-
-CONFIG_NET=y
-CONFIG_NET_INGRESS=y
-CONFIG_NET_EGRESS=y
-CONFIG_NET_REDIRECT=y
-CONFIG_SKB_EXTENSIONS=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-# CONFIG_PACKET_DIAG is not set
-CONFIG_UNIX=y
-CONFIG_UNIX_SCM=y
-# CONFIG_UNIX_DIAG is not set
-# CONFIG_TLS is not set
-CONFIG_XFRM=y
-CONFIG_XFRM_OFFLOAD=y
-CONFIG_XFRM_ALGO=y
-CONFIG_XFRM_USER=m
-# CONFIG_XFRM_INTERFACE is not set
-# CONFIG_XFRM_SUB_POLICY is not set
-# CONFIG_XFRM_MIGRATE is not set
-CONFIG_XFRM_STATISTICS=y
-CONFIG_XFRM_IPCOMP=m
-CONFIG_NET_KEY=y
-# CONFIG_NET_KEY_MIGRATE is not set
-CONFIG_XDP_SOCKETS=y
-CONFIG_XDP_SOCKETS_DIAG=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-# CONFIG_IP_FIB_TRIE_STATS is not set
-CONFIG_IP_MULTIPLE_TABLES=y
-CONFIG_IP_ROUTE_MULTIPATH=y
-CONFIG_IP_ROUTE_VERBOSE=y
-CONFIG_IP_ROUTE_CLASSID=y
-# CONFIG_IP_PNP is not set
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE_DEMUX=m
-CONFIG_NET_IP_TUNNEL=m
-CONFIG_NET_IPGRE=m
-CONFIG_NET_IPGRE_BROADCAST=y
-CONFIG_IP_MROUTE_COMMON=y
-CONFIG_IP_MROUTE=y
-# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
-CONFIG_IP_PIMSM_V1=y
-CONFIG_IP_PIMSM_V2=y
-CONFIG_SYN_COOKIES=y
-CONFIG_NET_IPVTI=m
-CONFIG_NET_UDP_TUNNEL=m
-# CONFIG_NET_FOU is not set
-# CONFIG_NET_FOU_IP_TUNNELS is not set
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_ESP_OFFLOAD=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_XFRM_TUNNEL=m
-CONFIG_INET_TUNNEL=m
-CONFIG_INET_DIAG=m
-CONFIG_INET_TCP_DIAG=m
-CONFIG_INET_UDP_DIAG=m
-CONFIG_INET_RAW_DIAG=m
-# CONFIG_INET_DIAG_DESTROY is not set
-CONFIG_TCP_CONG_ADVANCED=y
-# CONFIG_TCP_CONG_BIC is not set
-CONFIG_TCP_CONG_CUBIC=y
-# CONFIG_TCP_CONG_WESTWOOD is not set
-# CONFIG_TCP_CONG_HTCP is not set
-# CONFIG_TCP_CONG_HSTCP is not set
-# CONFIG_TCP_CONG_HYBLA is not set
-# CONFIG_TCP_CONG_VEGAS is not set
-# CONFIG_TCP_CONG_NV is not set
-# CONFIG_TCP_CONG_SCALABLE is not set
-# CONFIG_TCP_CONG_LP is not set
-# CONFIG_TCP_CONG_VENO is not set
-# CONFIG_TCP_CONG_YEAH is not set
-# CONFIG_TCP_CONG_ILLINOIS is not set
-# CONFIG_TCP_CONG_DCTCP is not set
-# CONFIG_TCP_CONG_CDG is not set
-# CONFIG_TCP_CONG_BBR is not set
-CONFIG_DEFAULT_CUBIC=y
-# CONFIG_DEFAULT_RENO is not set
-CONFIG_DEFAULT_TCP_CONG="cubic"
-CONFIG_TCP_MD5SIG=y
-CONFIG_IPV6=m
-CONFIG_IPV6_ROUTER_PREF=y
-CONFIG_IPV6_ROUTE_INFO=y
-CONFIG_IPV6_OPTIMISTIC_DAD=y
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_ESP_OFFLOAD=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_IPV6_MIP6=m
-# CONFIG_IPV6_ILA is not set
-CONFIG_INET6_XFRM_TUNNEL=m
-CONFIG_INET6_TUNNEL=m
-# CONFIG_IPV6_VTI is not set
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_SIT_6RD=y
-CONFIG_IPV6_NDISC_NODETYPE=y
-CONFIG_IPV6_TUNNEL=m
-CONFIG_IPV6_GRE=m
-CONFIG_IPV6_MULTIPLE_TABLES=y
-CONFIG_IPV6_SUBTREES=y
-CONFIG_IPV6_MROUTE=y
-CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
-CONFIG_IPV6_PIMSM_V2=y
-CONFIG_IPV6_SEG6_LWTUNNEL=y
-CONFIG_IPV6_SEG6_HMAC=y
-# CONFIG_NETLABEL is not set
-CONFIG_NETWORK_SECMARK=y
-CONFIG_NET_PTP_CLASSIFY=y
-# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
-CONFIG_NETFILTER=y
-CONFIG_NETFILTER_ADVANCED=y
-CONFIG_BRIDGE_NETFILTER=m
-
-#
-# Core Netfilter Configuration
-#
-CONFIG_NETFILTER_INGRESS=y
-CONFIG_NETFILTER_NETLINK=m
-CONFIG_NETFILTER_FAMILY_BRIDGE=y
-CONFIG_NETFILTER_FAMILY_ARP=y
-CONFIG_NETFILTER_NETLINK_ACCT=m
-CONFIG_NETFILTER_NETLINK_QUEUE=m
-CONFIG_NETFILTER_NETLINK_LOG=m
-CONFIG_NETFILTER_NETLINK_OSF=m
-CONFIG_NF_CONNTRACK=m
-CONFIG_NF_LOG_COMMON=m
-CONFIG_NF_LOG_NETDEV=m
-CONFIG_NETFILTER_CONNCOUNT=m
-CONFIG_NF_CONNTRACK_MARK=y
-CONFIG_NF_CONNTRACK_SECMARK=y
-# CONFIG_NF_CONNTRACK_ZONES is not set
-# CONFIG_NF_CONNTRACK_PROCFS is not set
-CONFIG_NF_CONNTRACK_EVENTS=y
-CONFIG_NF_CONNTRACK_TIMEOUT=y
-CONFIG_NF_CONNTRACK_TIMESTAMP=y
-CONFIG_NF_CONNTRACK_LABELS=y
-# CONFIG_NF_CT_PROTO_DCCP is not set
-CONFIG_NF_CT_PROTO_GRE=y
-# CONFIG_NF_CT_PROTO_SCTP is not set
-# CONFIG_NF_CT_PROTO_UDPLITE is not set
-# CONFIG_NF_CONNTRACK_AMANDA is not set
-CONFIG_NF_CONNTRACK_FTP=m
-CONFIG_NF_CONNTRACK_H323=m
-CONFIG_NF_CONNTRACK_IRC=m
-CONFIG_NF_CONNTRACK_BROADCAST=m
-CONFIG_NF_CONNTRACK_NETBIOS_NS=m
-CONFIG_NF_CONNTRACK_SNMP=m
-CONFIG_NF_CONNTRACK_PPTP=m
-# CONFIG_NF_CONNTRACK_SANE is not set
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-CONFIG_NF_CT_NETLINK_TIMEOUT=m
-# CONFIG_NETFILTER_NETLINK_GLUE_CT is not set
-CONFIG_NF_NAT=m
-CONFIG_NF_NAT_FTP=m
-CONFIG_NF_NAT_IRC=m
-CONFIG_NF_NAT_SIP=m
-CONFIG_NF_NAT_TFTP=m
-CONFIG_NF_NAT_REDIRECT=y
-CONFIG_NF_NAT_MASQUERADE=y
-# CONFIG_NF_TABLES is not set
-CONFIG_NETFILTER_XTABLES=m
-
-#
-# Xtables combined modules
-#
-CONFIG_NETFILTER_XT_MARK=m
-CONFIG_NETFILTER_XT_CONNMARK=m
-CONFIG_NETFILTER_XT_SET=m
-
-#
-# Xtables targets
-#
-CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
-CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
-CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
-CONFIG_NETFILTER_XT_TARGET_CT=m
-CONFIG_NETFILTER_XT_TARGET_DSCP=m
-CONFIG_NETFILTER_XT_TARGET_HL=m
-CONFIG_NETFILTER_XT_TARGET_HMARK=m
-CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
-CONFIG_NETFILTER_XT_TARGET_LOG=m
-CONFIG_NETFILTER_XT_TARGET_MARK=m
-CONFIG_NETFILTER_XT_NAT=m
-CONFIG_NETFILTER_XT_TARGET_NETMAP=m
-CONFIG_NETFILTER_XT_TARGET_NFLOG=m
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
-CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
-CONFIG_NETFILTER_XT_TARGET_RATEEST=m
-CONFIG_NETFILTER_XT_TARGET_REDIRECT=m
-CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m
-# CONFIG_NETFILTER_XT_TARGET_TEE is not set
-# CONFIG_NETFILTER_XT_TARGET_TPROXY is not set
-CONFIG_NETFILTER_XT_TARGET_TRACE=m
-CONFIG_NETFILTER_XT_TARGET_SECMARK=m
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
-CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
-
-#
-# Xtables matches
-#
-CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
-# CONFIG_NETFILTER_XT_MATCH_BPF is not set
-# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set
-# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
-CONFIG_NETFILTER_XT_MATCH_COMMENT=m
-CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
-CONFIG_NETFILTER_XT_MATCH_CONNLABEL=m
-CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-# CONFIG_NETFILTER_XT_MATCH_CPU is not set
-# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
-# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
-CONFIG_NETFILTER_XT_MATCH_DSCP=m
-CONFIG_NETFILTER_XT_MATCH_ECN=m
-CONFIG_NETFILTER_XT_MATCH_ESP=m
-CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_HELPER=m
-CONFIG_NETFILTER_XT_MATCH_HL=m
-# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set
-CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
-CONFIG_NETFILTER_XT_MATCH_IPVS=m
-CONFIG_NETFILTER_XT_MATCH_L2TP=m
-CONFIG_NETFILTER_XT_MATCH_LENGTH=m
-CONFIG_NETFILTER_XT_MATCH_LIMIT=m
-CONFIG_NETFILTER_XT_MATCH_MAC=m
-CONFIG_NETFILTER_XT_MATCH_MARK=m
-CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
-CONFIG_NETFILTER_XT_MATCH_NFACCT=m
-CONFIG_NETFILTER_XT_MATCH_OSF=m
-# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
-CONFIG_NETFILTER_XT_MATCH_POLICY=m
-CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
-CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
-CONFIG_NETFILTER_XT_MATCH_QUOTA=m
-CONFIG_NETFILTER_XT_MATCH_RATEEST=m
-CONFIG_NETFILTER_XT_MATCH_REALM=m
-CONFIG_NETFILTER_XT_MATCH_RECENT=m
-# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
-# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set
-CONFIG_NETFILTER_XT_MATCH_STATE=m
-CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
-CONFIG_NETFILTER_XT_MATCH_STRING=m
-CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
-CONFIG_NETFILTER_XT_MATCH_TIME=m
-CONFIG_NETFILTER_XT_MATCH_U32=m
-# end of Core Netfilter Configuration
-
-CONFIG_IP_SET=m
-CONFIG_IP_SET_MAX=256
-CONFIG_IP_SET_BITMAP_IP=m
-CONFIG_IP_SET_BITMAP_IPMAC=m
-CONFIG_IP_SET_BITMAP_PORT=m
-CONFIG_IP_SET_HASH_IP=m
-# CONFIG_IP_SET_HASH_IPMARK is not set
-CONFIG_IP_SET_HASH_IPPORT=m
-CONFIG_IP_SET_HASH_IPPORTIP=m
-CONFIG_IP_SET_HASH_IPPORTNET=m
-CONFIG_IP_SET_HASH_IPMAC=m
-CONFIG_IP_SET_HASH_MAC=m
-# CONFIG_IP_SET_HASH_NETPORTNET is not set
-CONFIG_IP_SET_HASH_NET=m
-# CONFIG_IP_SET_HASH_NETNET is not set
-CONFIG_IP_SET_HASH_NETPORT=m
-CONFIG_IP_SET_HASH_NETIFACE=m
-CONFIG_IP_SET_LIST_SET=m
-CONFIG_IP_VS=m
-CONFIG_IP_VS_IPV6=y
-# CONFIG_IP_VS_DEBUG is not set
-CONFIG_IP_VS_TAB_BITS=12
-
-#
-# IPVS transport protocol load balancing support
-#
-CONFIG_IP_VS_PROTO_TCP=y
-CONFIG_IP_VS_PROTO_UDP=y
-CONFIG_IP_VS_PROTO_AH_ESP=y
-CONFIG_IP_VS_PROTO_ESP=y
-CONFIG_IP_VS_PROTO_AH=y
-# CONFIG_IP_VS_PROTO_SCTP is not set
-
-#
-# IPVS scheduler
-#
-CONFIG_IP_VS_RR=m
-CONFIG_IP_VS_WRR=m
-CONFIG_IP_VS_LC=m
-CONFIG_IP_VS_WLC=m
-# CONFIG_IP_VS_FO is not set
-# CONFIG_IP_VS_OVF is not set
-CONFIG_IP_VS_LBLC=m
-CONFIG_IP_VS_LBLCR=m
-CONFIG_IP_VS_DH=m
-CONFIG_IP_VS_SH=m
-CONFIG_IP_VS_MH=m
-CONFIG_IP_VS_SED=m
-CONFIG_IP_VS_NQ=m
-
-#
-# IPVS SH scheduler
-#
-CONFIG_IP_VS_SH_TAB_BITS=8
-
-#
-# IPVS MH scheduler
-#
-CONFIG_IP_VS_MH_TAB_INDEX=12
-
-#
-# IPVS application helper
-#
-CONFIG_IP_VS_FTP=m
-CONFIG_IP_VS_NFCT=y
-CONFIG_IP_VS_PE_SIP=m
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV4=m
-CONFIG_NF_SOCKET_IPV4=m
-CONFIG_NF_TPROXY_IPV4=m
-# CONFIG_NF_DUP_IPV4 is not set
-# CONFIG_NF_LOG_ARP is not set
-CONFIG_NF_LOG_IPV4=m
-CONFIG_NF_REJECT_IPV4=m
-CONFIG_NF_NAT_SNMP_BASIC=m
-CONFIG_NF_NAT_PPTP=m
-CONFIG_NF_NAT_H323=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_AH=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_RPFILTER=m
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_FILTER=m
-CONFIG_IP_NF_TARGET_REJECT=m
-# CONFIG_IP_NF_TARGET_SYNPROXY is not set
-CONFIG_IP_NF_NAT=m
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_TTL=m
-CONFIG_IP_NF_RAW=m
-# CONFIG_IP_NF_SECURITY is not set
-# CONFIG_IP_NF_ARPTABLES is not set
-# end of IP: Netfilter Configuration
-
-#
-# IPv6: Netfilter Configuration
-#
-CONFIG_NF_SOCKET_IPV6=m
-CONFIG_NF_TPROXY_IPV6=m
-# CONFIG_NF_DUP_IPV6 is not set
-CONFIG_NF_REJECT_IPV6=m
-CONFIG_NF_LOG_IPV6=m
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_MATCH_AH=m
-CONFIG_IP6_NF_MATCH_EUI64=m
-CONFIG_IP6_NF_MATCH_FRAG=m
-CONFIG_IP6_NF_MATCH_OPTS=m
-CONFIG_IP6_NF_MATCH_HL=m
-CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-CONFIG_IP6_NF_MATCH_MH=m
-CONFIG_IP6_NF_MATCH_RPFILTER=m
-CONFIG_IP6_NF_MATCH_RT=m
-CONFIG_IP6_NF_MATCH_SRH=m
-CONFIG_IP6_NF_TARGET_HL=m
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_REJECT=m
-# CONFIG_IP6_NF_TARGET_SYNPROXY is not set
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_RAW=m
-# CONFIG_IP6_NF_SECURITY is not set
-# CONFIG_IP6_NF_NAT is not set
-# end of IPv6: Netfilter Configuration
-
-CONFIG_NF_DEFRAG_IPV6=m
-CONFIG_NF_CONNTRACK_BRIDGE=m
-CONFIG_BRIDGE_NF_EBTABLES=m
-CONFIG_BRIDGE_EBT_BROUTE=m
-CONFIG_BRIDGE_EBT_T_FILTER=m
-CONFIG_BRIDGE_EBT_T_NAT=m
-CONFIG_BRIDGE_EBT_802_3=m
-CONFIG_BRIDGE_EBT_AMONG=m
-CONFIG_BRIDGE_EBT_ARP=m
-CONFIG_BRIDGE_EBT_IP=m
-CONFIG_BRIDGE_EBT_IP6=m
-CONFIG_BRIDGE_EBT_LIMIT=m
-CONFIG_BRIDGE_EBT_MARK=m
-CONFIG_BRIDGE_EBT_PKTTYPE=m
-CONFIG_BRIDGE_EBT_STP=m
-CONFIG_BRIDGE_EBT_VLAN=m
-CONFIG_BRIDGE_EBT_ARPREPLY=m
-CONFIG_BRIDGE_EBT_DNAT=m
-CONFIG_BRIDGE_EBT_MARK_T=m
-CONFIG_BRIDGE_EBT_REDIRECT=m
-CONFIG_BRIDGE_EBT_SNAT=m
-CONFIG_BRIDGE_EBT_LOG=m
-CONFIG_BRIDGE_EBT_NFLOG=m
-CONFIG_BPFILTER=y
-CONFIG_BPFILTER_UMH=m
-# CONFIG_IP_DCCP is not set
-# CONFIG_IP_SCTP is not set
-# CONFIG_RDS is not set
-# CONFIG_TIPC is not set
-# CONFIG_ATM is not set
-CONFIG_L2TP=m
-CONFIG_L2TP_V3=y
-CONFIG_L2TP_IP=m
-CONFIG_L2TP_ETH=m
-CONFIG_STP=m
-CONFIG_GARP=m
-CONFIG_BRIDGE=m
-CONFIG_BRIDGE_IGMP_SNOOPING=y
-CONFIG_BRIDGE_VLAN_FILTERING=y
-CONFIG_HAVE_NET_DSA=y
-# CONFIG_NET_DSA is not set
-CONFIG_VLAN_8021Q=m
-CONFIG_VLAN_8021Q_GVRP=y
-# CONFIG_VLAN_8021Q_MVRP is not set
-# CONFIG_DECNET is not set
-CONFIG_LLC=m
-# CONFIG_LLC2 is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_PHONET is not set
-# CONFIG_6LOWPAN is not set
-# CONFIG_IEEE802154 is not set
-CONFIG_NET_SCHED=y
-
-#
-# Queueing/Scheduling
-#
-CONFIG_NET_SCH_CBQ=m
-CONFIG_NET_SCH_HTB=m
-CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_PRIO=m
-# CONFIG_NET_SCH_MULTIQ is not set
-CONFIG_NET_SCH_RED=m
-CONFIG_NET_SCH_SFB=m
-CONFIG_NET_SCH_SFQ=m
-CONFIG_NET_SCH_TEQL=m
-CONFIG_NET_SCH_TBF=m
-CONFIG_NET_SCH_CBS=m
-CONFIG_NET_SCH_ETF=m
-CONFIG_NET_SCH_TAPRIO=m
-CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
-CONFIG_NET_SCH_NETEM=m
-CONFIG_NET_SCH_DRR=m
-# CONFIG_NET_SCH_MQPRIO is not set
-CONFIG_NET_SCH_SKBPRIO=m
-CONFIG_NET_SCH_CHOKE=m
-CONFIG_NET_SCH_QFQ=m
-CONFIG_NET_SCH_CODEL=m
-CONFIG_NET_SCH_FQ_CODEL=m
-CONFIG_NET_SCH_CAKE=m
-# CONFIG_NET_SCH_FQ is not set
-# CONFIG_NET_SCH_HHF is not set
-# CONFIG_NET_SCH_PIE is not set
-CONFIG_NET_SCH_INGRESS=m
-# CONFIG_NET_SCH_PLUG is not set
-# CONFIG_NET_SCH_DEFAULT is not set
-
-#
-# Classification
-#
-CONFIG_NET_CLS=y
-CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
-CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_FW=m
-CONFIG_NET_CLS_U32=m
-CONFIG_CLS_U32_PERF=y
-CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-CONFIG_NET_CLS_FLOW=m
-# CONFIG_NET_CLS_CGROUP is not set
-# CONFIG_NET_CLS_BPF is not set
-# CONFIG_NET_CLS_FLOWER is not set
-# CONFIG_NET_CLS_MATCHALL is not set
-CONFIG_NET_EMATCH=y
-CONFIG_NET_EMATCH_STACK=32
-CONFIG_NET_EMATCH_CMP=m
-CONFIG_NET_EMATCH_NBYTE=m
-CONFIG_NET_EMATCH_U32=m
-CONFIG_NET_EMATCH_META=m
-CONFIG_NET_EMATCH_TEXT=m
-CONFIG_NET_EMATCH_IPSET=m
-CONFIG_NET_EMATCH_IPT=m
-CONFIG_NET_CLS_ACT=y
-CONFIG_NET_ACT_POLICE=m
-CONFIG_NET_ACT_GACT=m
-CONFIG_GACT_PROB=y
-CONFIG_NET_ACT_MIRRED=m
-CONFIG_NET_ACT_SAMPLE=m
-CONFIG_NET_ACT_IPT=m
-CONFIG_NET_ACT_NAT=m
-CONFIG_NET_ACT_PEDIT=m
-# CONFIG_NET_ACT_SIMP is not set
-# CONFIG_NET_ACT_SKBEDIT is not set
-# CONFIG_NET_ACT_CSUM is not set
-CONFIG_NET_ACT_MPLS=m
-# CONFIG_NET_ACT_VLAN is not set
-# CONFIG_NET_ACT_BPF is not set
-# CONFIG_NET_ACT_CONNMARK is not set
-CONFIG_NET_ACT_CTINFO=m
-# CONFIG_NET_ACT_SKBMOD is not set
-# CONFIG_NET_ACT_IFE is not set
-# CONFIG_NET_ACT_TUNNEL_KEY is not set
-CONFIG_NET_ACT_CT=m
-# CONFIG_NET_TC_SKB_EXT is not set
-CONFIG_NET_SCH_FIFO=y
-# CONFIG_DCB is not set
-# CONFIG_BATMAN_ADV is not set
-# CONFIG_OPENVSWITCH is not set
-# CONFIG_VSOCKETS is not set
-# CONFIG_NETLINK_DIAG is not set
-# CONFIG_MPLS is not set
-# CONFIG_NET_NSH is not set
-# CONFIG_HSR is not set
-# CONFIG_NET_SWITCHDEV is not set
-CONFIG_NET_L3_MASTER_DEV=y
-# CONFIG_NET_NCSI is not set
-CONFIG_RPS=y
-CONFIG_RFS_ACCEL=y
-CONFIG_XPS=y
-# CONFIG_CGROUP_NET_PRIO is not set
-# CONFIG_CGROUP_NET_CLASSID is not set
-CONFIG_NET_RX_BUSY_POLL=y
-CONFIG_BQL=y
-CONFIG_BPF_JIT=y
-CONFIG_BPF_STREAM_PARSER=y
-CONFIG_NET_FLOW_LIMIT=y
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# end of Network testing
-# end of Networking options
-
-# CONFIG_HAMRADIO is not set
-# CONFIG_CAN is not set
-# CONFIG_BT is not set
-# CONFIG_AF_RXRPC is not set
-# CONFIG_AF_KCM is not set
-CONFIG_STREAM_PARSER=y
-CONFIG_FIB_RULES=y
-# CONFIG_WIRELESS is not set
-# CONFIG_WIMAX is not set
-# CONFIG_RFKILL is not set
-# CONFIG_NET_9P is not set
-# CONFIG_CAIF is not set
-# CONFIG_CEPH_LIB is not set
-# CONFIG_NFC is not set
-CONFIG_PSAMPLE=m
-CONFIG_NET_IFE=m
-CONFIG_LWTUNNEL=y
-CONFIG_LWTUNNEL_BPF=y
-CONFIG_DST_CACHE=y
-CONFIG_GRO_CELLS=y
-CONFIG_NET_SOCK_MSG=y
-# CONFIG_FAILOVER is not set
-CONFIG_HAVE_EBPF_JIT=y
-
-#
-# Device Drivers
-#
-CONFIG_HAVE_PCI=y
-# CONFIG_PCI is not set
-# CONFIG_PCCARD is not set
-CONFIG_HAVE_RAPIDIO=y
-# CONFIG_RAPIDIO is not set
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER=y
-CONFIG_UEVENT_HELPER_PATH=""
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-
-#
-# Firmware loader
-#
-CONFIG_FW_LOADER=m
-CONFIG_EXTRA_FIRMWARE=""
-# CONFIG_FW_LOADER_USER_HELPER is not set
-# CONFIG_FW_LOADER_COMPRESS is not set
-# end of Firmware loader
-
-CONFIG_ALLOW_DEV_COREDUMP=y
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set
-# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set
-CONFIG_GENERIC_CPU_AUTOPROBE=y
-# end of Generic Driver Options
-
-#
-# Bus devices
-#
-# CONFIG_BRCMSTB_GISB_ARB is not set
-# CONFIG_MOXTET is not set
-# CONFIG_MIPS_CDMM is not set
-# end of Bus devices
-
-# CONFIG_CONNECTOR is not set
-# CONFIG_GNSS is not set
-CONFIG_MTD=y
-# CONFIG_MTD_TESTS is not set
-
-#
-# Partition parsers
-#
-# CONFIG_MTD_AR7_PARTS is not set
-CONFIG_MTD_CMDLINE_PARTS=y
-# CONFIG_MTD_OF_PARTS is not set
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# end of Partition parsers
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_BLKDEVS=y
-# CONFIG_MTD_BLOCK is not set
-CONFIG_MTD_BLOCK_RO=y
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-# CONFIG_RFD_FTL is not set
-# CONFIG_SSFDC is not set
-# CONFIG_SM_FTL is not set
-# CONFIG_MTD_OOPS is not set
-# CONFIG_MTD_SWAP is not set
-# CONFIG_MTD_PARTITIONED_MASTER is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=y
-CONFIG_MTD_JEDECPROBE=y
-CONFIG_MTD_GEN_PROBE=y
-# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-CONFIG_MTD_CFI_INTELEXT=y
-CONFIG_MTD_CFI_AMDSTD=y
-# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=y
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-# end of RAM/ROM/Flash chip drivers
-
-#
-# Mapping drivers for chip access
-#
-CONFIG_MTD_COMPLEX_MAPPINGS=y
-CONFIG_MTD_PHYSMAP=y
-# CONFIG_MTD_PHYSMAP_COMPAT is not set
-# CONFIG_MTD_PHYSMAP_OF is not set
-# CONFIG_MTD_PHYSMAP_GPIO_ADDR is not set
-# CONFIG_MTD_PLATRAM is not set
-# end of Mapping drivers for chip access
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_DATAFLASH is not set
-# CONFIG_MTD_MCHP23K256 is not set
-# CONFIG_MTD_SST25L is not set
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOCG3 is not set
-# end of Self-contained MTD device drivers
-
-# CONFIG_MTD_ONENAND is not set
-# CONFIG_MTD_RAW_NAND is not set
-# CONFIG_MTD_SPI_NAND is not set
-
-#
-# LPDDR & LPDDR2 PCM memory drivers
-#
-# CONFIG_MTD_LPDDR is not set
-# end of LPDDR & LPDDR2 PCM memory drivers
-
-CONFIG_MTD_SPI_NOR=y
-CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
-# CONFIG_SPI_MTK_QUADSPI is not set
-# CONFIG_MTD_UBI is not set
-# CONFIG_MTD_HYPERBUS is not set
-CONFIG_DTC=y
-CONFIG_OF=y
-# CONFIG_OF_UNITTEST is not set
-CONFIG_OF_FLATTREE=y
-CONFIG_OF_EARLY_FLATTREE=y
-CONFIG_OF_KOBJ=y
-CONFIG_OF_ADDRESS=y
-CONFIG_OF_IRQ=y
-CONFIG_OF_NET=y
-CONFIG_OF_MDIO=y
-CONFIG_OF_RESERVED_MEM=y
-# CONFIG_OF_OVERLAY is not set
-# CONFIG_PARPORT is not set
-CONFIG_BLK_DEV=y
-# CONFIG_BLK_DEV_NULL_BLK is not set
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-# CONFIG_BLK_DEV_DRBD is not set
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_RAM is not set
-# CONFIG_CDROM_PKTCDVD is not set
-# CONFIG_ATA_OVER_ETH is not set
-# CONFIG_BLK_DEV_RBD is not set
-
-#
-# NVME Support
-#
-# CONFIG_NVME_FC is not set
-# CONFIG_NVME_TARGET is not set
-# end of NVME Support
-
-#
-# Misc devices
-#
-# CONFIG_AD525X_DPOT is not set
-# CONFIG_DUMMY_IRQ is not set
-# CONFIG_ICS932S401 is not set
-# CONFIG_ENCLOSURE_SERVICES is not set
-# CONFIG_APDS9802ALS is not set
-# CONFIG_ISL29003 is not set
-# CONFIG_ISL29020 is not set
-# CONFIG_SENSORS_TSL2550 is not set
-# CONFIG_SENSORS_BH1770 is not set
-# CONFIG_SENSORS_APDS990X is not set
-# CONFIG_HMC6352 is not set
-# CONFIG_DS1682 is not set
-# CONFIG_LATTICE_ECP3_CONFIG is not set
-# CONFIG_SRAM is not set
-# CONFIG_XILINX_SDFEC is not set
-# CONFIG_PVPANIC is not set
-# CONFIG_C2PORT is not set
-
-#
-# EEPROM support
-#
-# CONFIG_EEPROM_AT24 is not set
-# CONFIG_EEPROM_AT25 is not set
-# CONFIG_EEPROM_LEGACY is not set
-# CONFIG_EEPROM_MAX6875 is not set
-# CONFIG_EEPROM_93CX6 is not set
-# CONFIG_EEPROM_93XX46 is not set
-# CONFIG_EEPROM_IDT_89HPESX is not set
-# CONFIG_EEPROM_EE1004 is not set
-# end of EEPROM support
-
-#
-# Texas Instruments shared transport line discipline
-#
-# CONFIG_TI_ST is not set
-# end of Texas Instruments shared transport line discipline
-
-# CONFIG_SENSORS_LIS3_SPI is not set
-# CONFIG_SENSORS_LIS3_I2C is not set
-# CONFIG_ALTERA_STAPL is not set
-
-#
-# Intel MIC & related support
-#
-
-#
-# Intel MIC Bus Driver
-#
-
-#
-# SCIF Bus Driver
-#
-
-#
-# VOP Bus Driver
-#
-# CONFIG_VOP_BUS is not set
-
-#
-# Intel MIC Host Driver
-#
-
-#
-# Intel MIC Card Driver
-#
-
-#
-# SCIF Driver
-#
-
-#
-# Intel MIC Coprocessor State Management (COSM) Drivers
-#
-
-#
-# VOP Driver
-#
-# end of Intel MIC & related support
-
-# CONFIG_ECHO is not set
-# CONFIG_MISC_RTSX_USB is not set
-# end of Misc devices
-
-CONFIG_HAVE_IDE=y
-# CONFIG_IDE is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=y
-# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-# CONFIG_CHR_DEV_ST is not set
-# CONFIG_BLK_DEV_SR is not set
-# CONFIG_CHR_DEV_SG is not set
-# CONFIG_CHR_DEV_SCH is not set
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
-# CONFIG_SCSI_SCAN_ASYNC is not set
-
-#
-# SCSI Transports
-#
-# CONFIG_SCSI_SPI_ATTRS is not set
-# CONFIG_SCSI_FC_ATTRS is not set
-# CONFIG_SCSI_ISCSI_ATTRS is not set
-# CONFIG_SCSI_SAS_ATTRS is not set
-# CONFIG_SCSI_SAS_LIBSAS is not set
-# CONFIG_SCSI_SRP_ATTRS is not set
-# end of SCSI Transports
-
-# CONFIG_SCSI_LOWLEVEL is not set
-# CONFIG_SCSI_DH is not set
-# end of SCSI device support
-
-# CONFIG_ATA is not set
-# CONFIG_MD is not set
-# CONFIG_TARGET_CORE is not set
-CONFIG_NETDEVICES=y
-CONFIG_MII=m
-CONFIG_NET_CORE=y
-CONFIG_BONDING=m
-CONFIG_DUMMY=m
-# CONFIG_EQUALIZER is not set
-CONFIG_IFB=m
-# CONFIG_NET_TEAM is not set
-CONFIG_MACVLAN=m
-# CONFIG_MACVTAP is not set
-CONFIG_IPVLAN_L3S=y
-CONFIG_IPVLAN=m
-CONFIG_IPVTAP=m
-# CONFIG_VXLAN is not set
-# CONFIG_GENEVE is not set
-# CONFIG_GTP is not set
-# CONFIG_MACSEC is not set
-CONFIG_NETCONSOLE=m
-CONFIG_NETCONSOLE_DYNAMIC=y
-CONFIG_NETPOLL=y
-CONFIG_NET_POLL_CONTROLLER=y
-CONFIG_TUN=m
-CONFIG_TAP=m
-# CONFIG_TUN_VNET_CROSS_LE is not set
-CONFIG_VETH=m
-# CONFIG_NLMON is not set
-CONFIG_NET_VRF=m
-
-#
-# CAIF transport drivers
-#
-
-#
-# Distributed Switch Architecture drivers
-#
-# end of Distributed Switch Architecture drivers
-
-CONFIG_ETHERNET=y
-# CONFIG_NET_VENDOR_ALACRITECH is not set
-# CONFIG_ALTERA_TSE is not set
-# CONFIG_NET_VENDOR_AMAZON is not set
-# CONFIG_NET_VENDOR_AQUANTIA is not set
-# CONFIG_NET_VENDOR_ARC is not set
-# CONFIG_NET_VENDOR_AURORA is not set
-# CONFIG_NET_VENDOR_BROADCOM is not set
-# CONFIG_NET_VENDOR_CADENCE is not set
-CONFIG_NET_VENDOR_CAVIUM=y
-# CONFIG_OCTEON_MGMT_ETHERNET is not set
-# CONFIG_NET_VENDOR_CORTINA is not set
-# CONFIG_DM9000 is not set
-# CONFIG_DNET is not set
-# CONFIG_NET_VENDOR_EZCHIP is not set
-# CONFIG_NET_VENDOR_GOOGLE is not set
-# CONFIG_NET_VENDOR_HUAWEI is not set
-# CONFIG_NET_VENDOR_INTEL is not set
-# CONFIG_NET_VENDOR_MARVELL is not set
-# CONFIG_NET_VENDOR_MELLANOX is not set
-# CONFIG_NET_VENDOR_MICREL is not set
-# CONFIG_NET_VENDOR_MICROCHIP is not set
-# CONFIG_NET_VENDOR_MICROSEMI is not set
-# CONFIG_NET_VENDOR_NATSEMI is not set
-# CONFIG_NET_VENDOR_NETRONOME is not set
-# CONFIG_NET_VENDOR_NI is not set
-# CONFIG_ETHOC is not set
-# CONFIG_NET_VENDOR_PENSANDO is not set
-# CONFIG_NET_VENDOR_QUALCOMM is not set
-# CONFIG_NET_VENDOR_RENESAS is not set
-# CONFIG_NET_VENDOR_ROCKER is not set
-# CONFIG_NET_VENDOR_SAMSUNG is not set
-# CONFIG_NET_VENDOR_SEEQ is not set
-# CONFIG_NET_VENDOR_SOLARFLARE is not set
-# CONFIG_NET_VENDOR_SMSC is not set
-# CONFIG_NET_VENDOR_SOCIONEXT is not set
-# CONFIG_NET_VENDOR_STMICRO is not set
-# CONFIG_NET_VENDOR_SYNOPSYS is not set
-# CONFIG_NET_VENDOR_VIA is not set
-# CONFIG_NET_VENDOR_WIZNET is not set
-# CONFIG_NET_VENDOR_XILINX is not set
-CONFIG_MDIO_DEVICE=y
-CONFIG_MDIO_BUS=y
-# CONFIG_MDIO_BCM_UNIMAC is not set
-# CONFIG_MDIO_BITBANG is not set
-CONFIG_MDIO_BUS_MUX=m
-CONFIG_MDIO_BUS_MUX_GPIO=m
-# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
-# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set
-CONFIG_MDIO_CAVIUM=y
-# CONFIG_MDIO_HISI_FEMAC is not set
-# CONFIG_MDIO_MSCC_MIIM is not set
-CONFIG_MDIO_OCTEON=y
-CONFIG_PHYLIB=y
-CONFIG_SWPHY=y
-
-#
-# MII PHY device drivers
-#
-# CONFIG_ADIN_PHY is not set
-# CONFIG_AMD_PHY is not set
-# CONFIG_AQUANTIA_PHY is not set
-# CONFIG_AX88796B_PHY is not set
-CONFIG_AT803X_PHY=m
-# CONFIG_BCM7XXX_PHY is not set
-# CONFIG_BCM87XX_PHY is not set
-# CONFIG_BROADCOM_PHY is not set
-# CONFIG_CICADA_PHY is not set
-CONFIG_CORTINA_PHY=m
-# CONFIG_DAVICOM_PHY is not set
-# CONFIG_DP83822_PHY is not set
-# CONFIG_DP83TC811_PHY is not set
-# CONFIG_DP83848_PHY is not set
-# CONFIG_DP83867_PHY is not set
-CONFIG_FIXED_PHY=y
-# CONFIG_ICPLUS_PHY is not set
-# CONFIG_INTEL_XWAY_PHY is not set
-# CONFIG_LSI_ET1011C_PHY is not set
-# CONFIG_LXT_PHY is not set
-# CONFIG_MARVELL_PHY is not set
-CONFIG_MARVELL_10G_PHY=m
-# CONFIG_MICREL_PHY is not set
-# CONFIG_MICROCHIP_PHY is not set
-# CONFIG_MICROCHIP_T1_PHY is not set
-# CONFIG_MICROSEMI_PHY is not set
-# CONFIG_NATIONAL_PHY is not set
-# CONFIG_NXP_TJA11XX_PHY is not set
-# CONFIG_QSEMI_PHY is not set
-# CONFIG_REALTEK_PHY is not set
-# CONFIG_RENESAS_PHY is not set
-# CONFIG_ROCKCHIP_PHY is not set
-# CONFIG_SMSC_PHY is not set
-# CONFIG_STE10XP is not set
-# CONFIG_TERANETICS_PHY is not set
-CONFIG_VITESSE_PHY=m
-# CONFIG_XILINX_GMII2RGMII is not set
-# CONFIG_MICREL_KS8995MA is not set
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPPOE=m
-CONFIG_PPTP=m
-CONFIG_PPPOL2TP=m
-CONFIG_PPP_ASYNC=m
-# CONFIG_PPP_SYNC_TTY is not set
-# CONFIG_SLIP is not set
-CONFIG_SLHC=m
-CONFIG_USB_NET_DRIVERS=y
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_RTL8152=m
-# CONFIG_USB_LAN78XX is not set
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_AX88179_178A=m
-CONFIG_USB_NET_CDCETHER=m
-# CONFIG_USB_NET_CDC_EEM is not set
-CONFIG_USB_NET_CDC_NCM=m
-# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set
-# CONFIG_USB_NET_CDC_MBIM is not set
-# CONFIG_USB_NET_DM9601 is not set
-# CONFIG_USB_NET_SR9700 is not set
-# CONFIG_USB_NET_SR9800 is not set
-CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=m
-# CONFIG_USB_NET_GL620A is not set
-CONFIG_USB_NET_NET1080=m
-# CONFIG_USB_NET_PLUSB is not set
-# CONFIG_USB_NET_MCS7830 is not set
-# CONFIG_USB_NET_RNDIS_HOST is not set
-CONFIG_USB_NET_CDC_SUBSET_ENABLE=m
-CONFIG_USB_NET_CDC_SUBSET=m
-# CONFIG_USB_ALI_M5632 is not set
-# CONFIG_USB_AN2720 is not set
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-# CONFIG_USB_EPSON2888 is not set
-# CONFIG_USB_KC2190 is not set
-CONFIG_USB_NET_ZAURUS=m
-# CONFIG_USB_NET_CX82310_ETH is not set
-CONFIG_USB_NET_KALMIA=m
-CONFIG_USB_NET_QMI_WWAN=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_IPHETH=m
-CONFIG_USB_SIERRA_NET=m
-# CONFIG_USB_VL600 is not set
-# CONFIG_USB_NET_CH9200 is not set
-# CONFIG_USB_NET_AQC111 is not set
-# CONFIG_WLAN is not set
-
-#
-# Enable WiMAX (Networking options) to see the WiMAX drivers
-#
-# CONFIG_WAN is not set
-# CONFIG_NET_FAILOVER is not set
-# CONFIG_ISDN is not set
-# CONFIG_NVM is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-CONFIG_INPUT_LEDS=m
-# CONFIG_INPUT_FF_MEMLESS is not set
-# CONFIG_INPUT_POLLDEV is not set
-# CONFIG_INPUT_SPARSEKMAP is not set
-# CONFIG_INPUT_MATRIXKMAP is not set
-
-#
-# Userland interfaces
-#
-# CONFIG_INPUT_MOUSEDEV is not set
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_EVDEV is not set
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-# CONFIG_INPUT_KEYBOARD is not set
-# CONFIG_INPUT_MOUSE is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TABLET is not set
-# CONFIG_INPUT_TOUCHSCREEN is not set
-# CONFIG_INPUT_MISC is not set
-# CONFIG_RMI4_CORE is not set
-
-#
-# Hardware I/O ports
-#
-# CONFIG_SERIO is not set
-# CONFIG_GAMEPORT is not set
-# end of Hardware I/O ports
-# end of Input device support
-
-#
-# Character devices
-#
-CONFIG_TTY=y
-# CONFIG_VT is not set
-CONFIG_UNIX98_PTYS=y
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-# CONFIG_N_GSM is not set
-# CONFIG_TRACE_SINK is not set
-# CONFIG_NULL_TTY is not set
-CONFIG_LDISC_AUTOLOAD=y
-CONFIG_DEVMEM=y
-CONFIG_DEVKMEM=y
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_EARLYCON=y
-CONFIG_SERIAL_8250=y
-# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
-# CONFIG_SERIAL_8250_FINTEK is not set
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_NR_UARTS=6
-CONFIG_SERIAL_8250_RUNTIME_UARTS=6
-# CONFIG_SERIAL_8250_EXTENDED is not set
-# CONFIG_SERIAL_8250_ASPEED_VUART is not set
-CONFIG_SERIAL_8250_DWLIB=y
-CONFIG_SERIAL_8250_DW=y
-# CONFIG_SERIAL_8250_RT288X is not set
-# CONFIG_SERIAL_8250_INGENIC is not set
-# CONFIG_SERIAL_OF_PLATFORM is not set
-
-#
-# Non-8250 serial port support
-#
-# CONFIG_SERIAL_MAX3100 is not set
-# CONFIG_SERIAL_MAX310X is not set
-# CONFIG_SERIAL_UARTLITE is not set
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_SERIAL_SIFIVE is not set
-# CONFIG_SERIAL_SCCNXP is not set
-# CONFIG_SERIAL_SC16IS7XX is not set
-# CONFIG_SERIAL_BCM63XX is not set
-# CONFIG_SERIAL_ALTERA_JTAGUART is not set
-# CONFIG_SERIAL_ALTERA_UART is not set
-# CONFIG_SERIAL_IFX6X60 is not set
-# CONFIG_SERIAL_XILINX_PS_UART is not set
-# CONFIG_SERIAL_ARC is not set
-# CONFIG_SERIAL_FSL_LPUART is not set
-# CONFIG_SERIAL_FSL_LINFLEXUART is not set
-# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
-# end of Serial drivers
-
-CONFIG_SERIAL_MCTRL_GPIO=y
-CONFIG_SERIAL_DEV_BUS=m
-# CONFIG_TTY_PRINTK is not set
-# CONFIG_IPMI_HANDLER is not set
-CONFIG_HW_RANDOM=m
-# CONFIG_HW_RANDOM_TIMERIOMEM is not set
-CONFIG_HW_RANDOM_OCTEON=m
-# CONFIG_RAW_DRIVER is not set
-# CONFIG_TCG_TPM is not set
-# CONFIG_XILLYBUS is not set
-# end of Character devices
-
-# CONFIG_RANDOM_TRUST_BOOTLOADER is not set
-
-#
-# I2C support
-#
-CONFIG_I2C=y
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
-# CONFIG_I2C_CHARDEV is not set
-# CONFIG_I2C_MUX is not set
-CONFIG_I2C_HELPER_AUTO=y
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-# CONFIG_I2C_CBUS_GPIO is not set
-# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
-# CONFIG_I2C_GPIO is not set
-# CONFIG_I2C_IMG is not set
-# CONFIG_I2C_JZ4780 is not set
-# CONFIG_I2C_OCORES is not set
-# CONFIG_I2C_PCA_PLATFORM is not set
-# CONFIG_I2C_SIMTEC is not set
-CONFIG_I2C_OCTEON=y
-# CONFIG_I2C_XILINX is not set
-
-#
-# External I2C/SMBus adapter drivers
-#
-# CONFIG_I2C_DIOLAN_U2C is not set
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_ROBOTFUZZ_OSIF is not set
-# CONFIG_I2C_TAOS_EVM is not set
-# CONFIG_I2C_TINY_USB is not set
-
-#
-# Other I2C/SMBus bus drivers
-#
-# end of I2C Hardware Bus support
-
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_SLAVE is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-# end of I2C support
-
-# CONFIG_I3C is not set
-CONFIG_SPI=y
-# CONFIG_SPI_DEBUG is not set
-CONFIG_SPI_MASTER=y
-CONFIG_SPI_MEM=y
-
-#
-# SPI Master Controller Drivers
-#
-# CONFIG_SPI_ALTERA is not set
-# CONFIG_SPI_AXI_SPI_ENGINE is not set
-# CONFIG_SPI_BITBANG is not set
-# CONFIG_SPI_CADENCE is not set
-# CONFIG_SPI_DESIGNWARE is not set
-# CONFIG_SPI_NXP_FLEXSPI is not set
-# CONFIG_SPI_GPIO is not set
-# CONFIG_SPI_IMG_SPFI is not set
-# CONFIG_SPI_FSL_SPI is not set
-# CONFIG_SPI_OC_TINY is not set
-CONFIG_SPI_OCTEON=y
-# CONFIG_SPI_ROCKCHIP is not set
-# CONFIG_SPI_SC18IS602 is not set
-# CONFIG_SPI_SIFIVE is not set
-# CONFIG_SPI_MXIC is not set
-# CONFIG_SPI_XCOMM is not set
-# CONFIG_SPI_XILINX is not set
-# CONFIG_SPI_ZYNQMP_GQSPI is not set
-
-#
-# SPI Protocol Masters
-#
-# CONFIG_SPI_SPIDEV is not set
-# CONFIG_SPI_LOOPBACK_TEST is not set
-# CONFIG_SPI_TLE62X0 is not set
-# CONFIG_SPI_SLAVE is not set
-# CONFIG_SPMI is not set
-# CONFIG_HSI is not set
-CONFIG_PPS=m
-# CONFIG_PPS_DEBUG is not set
-# CONFIG_NTP_PPS is not set
-
-#
-# PPS clients support
-#
-# CONFIG_PPS_CLIENT_KTIMER is not set
-# CONFIG_PPS_CLIENT_LDISC is not set
-# CONFIG_PPS_CLIENT_GPIO is not set
-
-#
-# PPS generators support
-#
-
-#
-# PTP clock support
-#
-CONFIG_PTP_1588_CLOCK=m
-
-#
-# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.
-#
-# end of PTP clock support
-
-# CONFIG_PINCTRL is not set
-CONFIG_GPIOLIB=y
-CONFIG_GPIOLIB_FASTPATH_LIMIT=512
-CONFIG_OF_GPIO=y
-# CONFIG_DEBUG_GPIO is not set
-CONFIG_GPIO_SYSFS=y
-
-#
-# Memory mapped GPIO drivers
-#
-# CONFIG_GPIO_74XX_MMIO is not set
-# CONFIG_GPIO_ALTERA is not set
-# CONFIG_GPIO_CADENCE is not set
-# CONFIG_GPIO_DWAPB is not set
-# CONFIG_GPIO_FTGPIO010 is not set
-# CONFIG_GPIO_GENERIC_PLATFORM is not set
-# CONFIG_GPIO_GRGPIO is not set
-# CONFIG_GPIO_HLWD is not set
-# CONFIG_GPIO_MB86S7X is not set
-CONFIG_GPIO_OCTEON=y
-# CONFIG_GPIO_XILINX is not set
-# CONFIG_GPIO_AMD_FCH is not set
-# end of Memory mapped GPIO drivers
-
-#
-# I2C GPIO expanders
-#
-# CONFIG_GPIO_ADP5588 is not set
-# CONFIG_GPIO_ADNP is not set
-# CONFIG_GPIO_GW_PLD is not set
-# CONFIG_GPIO_MAX7300 is not set
-# CONFIG_GPIO_MAX732X is not set
-# CONFIG_GPIO_PCA953X is not set
-# CONFIG_GPIO_PCF857X is not set
-# CONFIG_GPIO_TPIC2810 is not set
-# end of I2C GPIO expanders
-
-#
-# MFD GPIO expanders
-#
-# end of MFD GPIO expanders
-
-#
-# SPI GPIO expanders
-#
-# CONFIG_GPIO_74X164 is not set
-# CONFIG_GPIO_MAX3191X is not set
-# CONFIG_GPIO_MAX7301 is not set
-# CONFIG_GPIO_MC33880 is not set
-# CONFIG_GPIO_PISOSR is not set
-# CONFIG_GPIO_XRA1403 is not set
-# end of SPI GPIO expanders
-
-#
-# USB GPIO expanders
-#
-# end of USB GPIO expanders
-
-# CONFIG_GPIO_MOCKUP is not set
-# CONFIG_W1 is not set
-# CONFIG_POWER_AVS is not set
-# CONFIG_POWER_RESET is not set
-# CONFIG_POWER_SUPPLY is not set
-CONFIG_HWMON=m
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-# CONFIG_SENSORS_AD7314 is not set
-# CONFIG_SENSORS_AD7414 is not set
-# CONFIG_SENSORS_AD7418 is not set
-# CONFIG_SENSORS_ADM1021 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-# CONFIG_SENSORS_ADM1029 is not set
-# CONFIG_SENSORS_ADM1031 is not set
-# CONFIG_SENSORS_ADM9240 is not set
-# CONFIG_SENSORS_ADT7310 is not set
-# CONFIG_SENSORS_ADT7410 is not set
-# CONFIG_SENSORS_ADT7411 is not set
-# CONFIG_SENSORS_ADT7462 is not set
-# CONFIG_SENSORS_ADT7470 is not set
-# CONFIG_SENSORS_ADT7475 is not set
-# CONFIG_SENSORS_AS370 is not set
-# CONFIG_SENSORS_ASC7621 is not set
-# CONFIG_SENSORS_ASPEED is not set
-# CONFIG_SENSORS_ATXP1 is not set
-# CONFIG_SENSORS_DS620 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_F71805F is not set
-# CONFIG_SENSORS_F71882FG is not set
-# CONFIG_SENSORS_F75375S is not set
-# CONFIG_SENSORS_FTSTEUTATES is not set
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-# CONFIG_SENSORS_G760A is not set
-# CONFIG_SENSORS_G762 is not set
-# CONFIG_SENSORS_GPIO_FAN is not set
-# CONFIG_SENSORS_HIH6130 is not set
-# CONFIG_SENSORS_IT87 is not set
-# CONFIG_SENSORS_JC42 is not set
-# CONFIG_SENSORS_POWR1220 is not set
-# CONFIG_SENSORS_LINEAGE is not set
-# CONFIG_SENSORS_LTC2945 is not set
-# CONFIG_SENSORS_LTC2990 is not set
-# CONFIG_SENSORS_LTC4151 is not set
-# CONFIG_SENSORS_LTC4215 is not set
-# CONFIG_SENSORS_LTC4222 is not set
-# CONFIG_SENSORS_LTC4245 is not set
-# CONFIG_SENSORS_LTC4260 is not set
-# CONFIG_SENSORS_LTC4261 is not set
-# CONFIG_SENSORS_MAX1111 is not set
-# CONFIG_SENSORS_MAX16065 is not set
-# CONFIG_SENSORS_MAX1619 is not set
-# CONFIG_SENSORS_MAX1668 is not set
-# CONFIG_SENSORS_MAX197 is not set
-# CONFIG_SENSORS_MAX31722 is not set
-# CONFIG_SENSORS_MAX6621 is not set
-# CONFIG_SENSORS_MAX6639 is not set
-# CONFIG_SENSORS_MAX6642 is not set
-# CONFIG_SENSORS_MAX6650 is not set
-# CONFIG_SENSORS_MAX6697 is not set
-# CONFIG_SENSORS_MAX31790 is not set
-# CONFIG_SENSORS_MCP3021 is not set
-# CONFIG_SENSORS_TC654 is not set
-# CONFIG_SENSORS_ADCXX is not set
-# CONFIG_SENSORS_LM63 is not set
-# CONFIG_SENSORS_LM70 is not set
-# CONFIG_SENSORS_LM73 is not set
-# CONFIG_SENSORS_LM75 is not set
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM78 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM85 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_LM92 is not set
-# CONFIG_SENSORS_LM93 is not set
-# CONFIG_SENSORS_LM95234 is not set
-# CONFIG_SENSORS_LM95241 is not set
-# CONFIG_SENSORS_LM95245 is not set
-# CONFIG_SENSORS_PC87360 is not set
-# CONFIG_SENSORS_PC87427 is not set
-# CONFIG_SENSORS_NTC_THERMISTOR is not set
-# CONFIG_SENSORS_NCT6683 is not set
-# CONFIG_SENSORS_NCT6775 is not set
-# CONFIG_SENSORS_NCT7802 is not set
-# CONFIG_SENSORS_NCT7904 is not set
-# CONFIG_SENSORS_NPCM7XX is not set
-# CONFIG_SENSORS_PCF8591 is not set
-# CONFIG_PMBUS is not set
-# CONFIG_SENSORS_SHT15 is not set
-# CONFIG_SENSORS_SHT21 is not set
-# CONFIG_SENSORS_SHT3x is not set
-# CONFIG_SENSORS_SHTC1 is not set
-# CONFIG_SENSORS_DME1737 is not set
-# CONFIG_SENSORS_EMC1403 is not set
-# CONFIG_SENSORS_EMC2103 is not set
-# CONFIG_SENSORS_EMC6W201 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_SMSC47M192 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_SCH5627 is not set
-# CONFIG_SENSORS_SCH5636 is not set
-# CONFIG_SENSORS_STTS751 is not set
-# CONFIG_SENSORS_SMM665 is not set
-# CONFIG_SENSORS_ADC128D818 is not set
-# CONFIG_SENSORS_ADS7828 is not set
-# CONFIG_SENSORS_ADS7871 is not set
-# CONFIG_SENSORS_AMC6821 is not set
-# CONFIG_SENSORS_INA209 is not set
-# CONFIG_SENSORS_INA2XX is not set
-# CONFIG_SENSORS_INA3221 is not set
-# CONFIG_SENSORS_TC74 is not set
-# CONFIG_SENSORS_THMC50 is not set
-# CONFIG_SENSORS_TMP102 is not set
-# CONFIG_SENSORS_TMP103 is not set
-# CONFIG_SENSORS_TMP108 is not set
-# CONFIG_SENSORS_TMP401 is not set
-CONFIG_SENSORS_TMP421=m
-# CONFIG_SENSORS_VT1211 is not set
-# CONFIG_SENSORS_W83773G is not set
-# CONFIG_SENSORS_W83781D is not set
-# CONFIG_SENSORS_W83791D is not set
-# CONFIG_SENSORS_W83792D is not set
-# CONFIG_SENSORS_W83793 is not set
-# CONFIG_SENSORS_W83795 is not set
-# CONFIG_SENSORS_W83L785TS is not set
-# CONFIG_SENSORS_W83L786NG is not set
-# CONFIG_SENSORS_W83627HF is not set
-# CONFIG_SENSORS_W83627EHF is not set
-# CONFIG_THERMAL is not set
-CONFIG_WATCHDOG=y
-CONFIG_WATCHDOG_CORE=y
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y
-CONFIG_WATCHDOG_OPEN_TIMEOUT=0
-# CONFIG_WATCHDOG_SYSFS is not set
-
-#
-# Watchdog Pretimeout Governors
-#
-# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set
-
-#
-# Watchdog Device Drivers
-#
-# CONFIG_SOFT_WATCHDOG is not set
-# CONFIG_GPIO_WATCHDOG is not set
-# CONFIG_XILINX_WATCHDOG is not set
-# CONFIG_ZIIRAVE_WATCHDOG is not set
-# CONFIG_CADENCE_WATCHDOG is not set
-# CONFIG_DW_WATCHDOG is not set
-# CONFIG_MAX63XX_WATCHDOG is not set
-CONFIG_OCTEON_WDT=y
-# CONFIG_IMGPDC_WDT is not set
-# CONFIG_MEN_A21_WDT is not set
-
-#
-# USB-based Watchdog Cards
-#
-# CONFIG_USBPCWATCHDOG is not set
-CONFIG_SSB_POSSIBLE=y
-# CONFIG_SSB is not set
-CONFIG_BCMA_POSSIBLE=y
-# CONFIG_BCMA is not set
-
-#
-# Multifunction device drivers
-#
-# CONFIG_MFD_ACT8945A is not set
-# CONFIG_MFD_AS3711 is not set
-# CONFIG_MFD_AS3722 is not set
-# CONFIG_PMIC_ADP5520 is not set
-# CONFIG_MFD_AAT2870_CORE is not set
-# CONFIG_MFD_ATMEL_FLEXCOM is not set
-# CONFIG_MFD_ATMEL_HLCDC is not set
-# CONFIG_MFD_BCM590XX is not set
-# CONFIG_MFD_BD9571MWV is not set
-# CONFIG_MFD_AXP20X_I2C is not set
-# CONFIG_MFD_MADERA is not set
-# CONFIG_PMIC_DA903X is not set
-# CONFIG_MFD_DA9052_SPI is not set
-# CONFIG_MFD_DA9052_I2C is not set
-# CONFIG_MFD_DA9055 is not set
-# CONFIG_MFD_DA9062 is not set
-# CONFIG_MFD_DA9063 is not set
-# CONFIG_MFD_DA9150 is not set
-# CONFIG_MFD_DLN2 is not set
-# CONFIG_MFD_MC13XXX_SPI is not set
-# CONFIG_MFD_MC13XXX_I2C is not set
-# CONFIG_MFD_HI6421_PMIC is not set
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_HTC_I2CPLD is not set
-# CONFIG_MFD_KEMPLD is not set
-# CONFIG_MFD_88PM800 is not set
-# CONFIG_MFD_88PM805 is not set
-# CONFIG_MFD_88PM860X is not set
-# CONFIG_MFD_MAX14577 is not set
-# CONFIG_MFD_MAX77620 is not set
-# CONFIG_MFD_MAX77650 is not set
-# CONFIG_MFD_MAX77686 is not set
-# CONFIG_MFD_MAX77693 is not set
-# CONFIG_MFD_MAX77843 is not set
-# CONFIG_MFD_MAX8907 is not set
-# CONFIG_MFD_MAX8925 is not set
-# CONFIG_MFD_MAX8997 is not set
-# CONFIG_MFD_MAX8998 is not set
-# CONFIG_MFD_MT6397 is not set
-# CONFIG_MFD_MENF21BMC is not set
-# CONFIG_EZX_PCAP is not set
-# CONFIG_MFD_CPCAP is not set
-# CONFIG_MFD_VIPERBOARD is not set
-# CONFIG_MFD_RETU is not set
-# CONFIG_MFD_PCF50633 is not set
-# CONFIG_MFD_RT5033 is not set
-# CONFIG_MFD_RC5T583 is not set
-# CONFIG_MFD_RK808 is not set
-# CONFIG_MFD_RN5T618 is not set
-# CONFIG_MFD_SEC_CORE is not set
-# CONFIG_MFD_SI476X_CORE is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_MFD_SKY81452 is not set
-# CONFIG_MFD_SMSC is not set
-# CONFIG_ABX500_CORE is not set
-# CONFIG_MFD_STMPE is not set
-# CONFIG_MFD_SYSCON is not set
-# CONFIG_MFD_TI_AM335X_TSCADC is not set
-# CONFIG_MFD_LP3943 is not set
-# CONFIG_MFD_LP8788 is not set
-# CONFIG_MFD_TI_LMU is not set
-# CONFIG_MFD_PALMAS is not set
-# CONFIG_TPS6105X is not set
-# CONFIG_TPS65010 is not set
-# CONFIG_TPS6507X is not set
-# CONFIG_MFD_TPS65086 is not set
-# CONFIG_MFD_TPS65090 is not set
-# CONFIG_MFD_TPS65217 is not set
-# CONFIG_MFD_TI_LP873X is not set
-# CONFIG_MFD_TI_LP87565 is not set
-# CONFIG_MFD_TPS65218 is not set
-# CONFIG_MFD_TPS6586X is not set
-# CONFIG_MFD_TPS65910 is not set
-# CONFIG_MFD_TPS65912_I2C is not set
-# CONFIG_MFD_TPS65912_SPI is not set
-# CONFIG_MFD_TPS80031 is not set
-# CONFIG_TWL4030_CORE is not set
-# CONFIG_TWL6040_CORE is not set
-# CONFIG_MFD_WL1273_CORE is not set
-# CONFIG_MFD_LM3533 is not set
-# CONFIG_MFD_TC3589X is not set
-# CONFIG_MFD_TQMX86 is not set
-# CONFIG_MFD_LOCHNAGAR is not set
-# CONFIG_MFD_ARIZONA_I2C is not set
-# CONFIG_MFD_ARIZONA_SPI is not set
-# CONFIG_MFD_WM8400 is not set
-# CONFIG_MFD_WM831X_I2C is not set
-# CONFIG_MFD_WM831X_SPI is not set
-# CONFIG_MFD_WM8350_I2C is not set
-# CONFIG_MFD_WM8994 is not set
-# CONFIG_MFD_ROHM_BD718XX is not set
-# CONFIG_MFD_ROHM_BD70528 is not set
-# CONFIG_MFD_STPMIC1 is not set
-# CONFIG_MFD_STMFX is not set
-# CONFIG_RAVE_SP_CORE is not set
-# end of Multifunction device drivers
-
-# CONFIG_REGULATOR is not set
-# CONFIG_RC_CORE is not set
-# CONFIG_MEDIA_SUPPORT is not set
-
-#
-# Graphics support
-#
-# CONFIG_DRM is not set
-# CONFIG_DRM_DP_CEC is not set
-
-#
-# ARM devices
-#
-# end of ARM devices
-
-#
-# ACP (Audio CoProcessor) Configuration
-#
-# end of ACP (Audio CoProcessor) Configuration
-
-#
-# Frame buffer Devices
-#
-# CONFIG_FB is not set
-# end of Frame buffer Devices
-
-#
-# Backlight & LCD device support
-#
-# CONFIG_LCD_CLASS_DEVICE is not set
-# CONFIG_BACKLIGHT_CLASS_DEVICE is not set
-# end of Backlight & LCD device support
-# end of Graphics support
-
-# CONFIG_SOUND is not set
-
-#
-# HID support
-#
-# CONFIG_HID is not set
-
-#
-# USB HID support
-#
-# CONFIG_USB_HID is not set
-# CONFIG_HID_PID is not set
-
-#
-# USB HID Boot Protocol drivers
-#
-# CONFIG_USB_KBD is not set
-# CONFIG_USB_MOUSE is not set
-# end of USB HID Boot Protocol drivers
-# end of USB HID support
-
-#
-# I2C HID support
-#
-# CONFIG_I2C_HID is not set
-# end of I2C HID support
-# end of HID support
-
-CONFIG_USB_OHCI_BIG_ENDIAN_MMIO=y
-CONFIG_USB_OHCI_LITTLE_ENDIAN=y
-CONFIG_USB_EHCI_BIG_ENDIAN_MMIO=y
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_COMMON=y
-# CONFIG_USB_ULPI_BUS is not set
-# CONFIG_USB_CONN_GPIO is not set
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB=y
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEFAULT_PERSIST=y
-CONFIG_USB_DYNAMIC_MINORS=y
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-CONFIG_USB_AUTOSUSPEND_DELAY=2
-CONFIG_USB_MON=y
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_C67X00_HCD is not set
-CONFIG_USB_XHCI_HCD=y
-# CONFIG_USB_XHCI_DBGCAP is not set
-CONFIG_USB_XHCI_PLATFORM=y
-CONFIG_USB_EHCI_HCD=y
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-# CONFIG_USB_EHCI_TT_NEWSCHED is not set
-# CONFIG_USB_EHCI_FSL is not set
-CONFIG_USB_EHCI_HCD_PLATFORM=y
-CONFIG_USB_OCTEON_EHCI=y
-# CONFIG_USB_OXU210HP_HCD is not set
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_FOTG210_HCD is not set
-# CONFIG_USB_MAX3421_HCD is not set
-CONFIG_USB_OHCI_HCD=y
-CONFIG_USB_OHCI_HCD_PLATFORM=y
-CONFIG_USB_OCTEON_OHCI=y
-# CONFIG_USB_SL811_HCD is not set
-# CONFIG_USB_R8A66597_HCD is not set
-# CONFIG_USB_HCD_TEST_MODE is not set
-
-#
-# USB Device Class drivers
-#
-# CONFIG_USB_ACM is not set
-# CONFIG_USB_PRINTER is not set
-CONFIG_USB_WDM=m
-# CONFIG_USB_TMC is not set
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-CONFIG_USB_STORAGE=y
-# CONFIG_USB_STORAGE_DEBUG is not set
-# CONFIG_USB_STORAGE_REALTEK is not set
-# CONFIG_USB_STORAGE_DATAFAB is not set
-# CONFIG_USB_STORAGE_FREECOM is not set
-# CONFIG_USB_STORAGE_ISD200 is not set
-# CONFIG_USB_STORAGE_USBAT is not set
-# CONFIG_USB_STORAGE_SDDR09 is not set
-# CONFIG_USB_STORAGE_SDDR55 is not set
-# CONFIG_USB_STORAGE_JUMPSHOT is not set
-# CONFIG_USB_STORAGE_ALAUDA is not set
-# CONFIG_USB_STORAGE_ONETOUCH is not set
-# CONFIG_USB_STORAGE_KARMA is not set
-# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
-# CONFIG_USB_STORAGE_ENE_UB6250 is not set
-# CONFIG_USB_UAS is not set
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-# CONFIG_USBIP_CORE is not set
-# CONFIG_USB_CDNS3 is not set
-# CONFIG_USB_MUSB_HDRC is not set
-CONFIG_USB_DWC3=y
-CONFIG_USB_DWC3_HOST=y
-
-#
-# Platform Glue Driver Support
-#
-# CONFIG_USB_DWC2 is not set
-# CONFIG_USB_CHIPIDEA is not set
-# CONFIG_USB_ISP1760 is not set
-
-#
-# USB port drivers
-#
-# CONFIG_USB_SERIAL is not set
-
-#
-# USB Miscellaneous drivers
-#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
-# CONFIG_USB_ADUTUX is not set
-# CONFIG_USB_SEVSEG is not set
-# CONFIG_USB_LEGOTOWER is not set
-# CONFIG_USB_LCD is not set
-# CONFIG_USB_CYPRESS_CY7C63 is not set
-# CONFIG_USB_CYTHERM is not set
-# CONFIG_USB_IDMOUSE is not set
-# CONFIG_USB_FTDI_ELAN is not set
-# CONFIG_USB_APPLEDISPLAY is not set
-# CONFIG_USB_SISUSBVGA is not set
-# CONFIG_USB_LD is not set
-# CONFIG_USB_TRANCEVIBRATOR is not set
-# CONFIG_USB_IOWARRIOR is not set
-# CONFIG_USB_TEST is not set
-# CONFIG_USB_EHSET_TEST_FIXTURE is not set
-# CONFIG_USB_ISIGHTFW is not set
-# CONFIG_USB_YUREX is not set
-# CONFIG_USB_EZUSB_FX2 is not set
-# CONFIG_USB_HUB_USB251XB is not set
-# CONFIG_USB_HSIC_USB3503 is not set
-# CONFIG_USB_HSIC_USB4604 is not set
-# CONFIG_USB_LINK_LAYER_TEST is not set
-# CONFIG_USB_CHAOSKEY is not set
-
-#
-# USB Physical Layer drivers
-#
-# CONFIG_NOP_USB_XCEIV is not set
-# CONFIG_USB_GPIO_VBUS is not set
-# CONFIG_USB_ISP1301 is not set
-# end of USB Physical Layer drivers
-
-# CONFIG_USB_GADGET is not set
-# CONFIG_TYPEC is not set
-# CONFIG_USB_ROLE_SWITCH is not set
-CONFIG_MMC=y
-CONFIG_PWRSEQ_EMMC=y
-CONFIG_PWRSEQ_SIMPLE=y
-CONFIG_MMC_BLOCK=y
-CONFIG_MMC_BLOCK_MINORS=8
-# CONFIG_SDIO_UART is not set
-# CONFIG_MMC_TEST is not set
-
-#
-# MMC/SD/SDIO Host Controller Drivers
-#
-# CONFIG_MMC_DEBUG is not set
-CONFIG_MMC_SDHCI=y
-# CONFIG_MMC_SDHCI_PLTFM is not set
-# CONFIG_MMC_SPI is not set
-CONFIG_MMC_CAVIUM_OCTEON=y
-# CONFIG_MMC_DW is not set
-# CONFIG_MMC_JZ4740 is not set
-# CONFIG_MMC_VUB300 is not set
-# CONFIG_MMC_USHC is not set
-# CONFIG_MMC_USDHI6ROL0 is not set
-# CONFIG_MMC_CQHCI is not set
-# CONFIG_MMC_MTK is not set
-# CONFIG_MEMSTICK is not set
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=m
-# CONFIG_LEDS_CLASS_FLASH is not set
-# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set
-
-#
-# LED drivers
-#
-# CONFIG_LEDS_AN30259A is not set
-# CONFIG_LEDS_BCM6328 is not set
-# CONFIG_LEDS_BCM6358 is not set
-# CONFIG_LEDS_CR0014114 is not set
-# CONFIG_LEDS_LM3530 is not set
-# CONFIG_LEDS_LM3532 is not set
-# CONFIG_LEDS_LM3642 is not set
-# CONFIG_LEDS_LM3692X is not set
-# CONFIG_LEDS_PCA9532 is not set
-CONFIG_LEDS_GPIO=m
-# CONFIG_LEDS_LP3944 is not set
-# CONFIG_LEDS_LP3952 is not set
-# CONFIG_LEDS_LP5521 is not set
-# CONFIG_LEDS_LP5523 is not set
-# CONFIG_LEDS_LP5562 is not set
-# CONFIG_LEDS_LP8501 is not set
-# CONFIG_LEDS_LP8860 is not set
-# CONFIG_LEDS_PCA955X is not set
-# CONFIG_LEDS_PCA963X is not set
-# CONFIG_LEDS_DAC124S085 is not set
-# CONFIG_LEDS_BD2802 is not set
-# CONFIG_LEDS_LT3593 is not set
-# CONFIG_LEDS_TCA6507 is not set
-# CONFIG_LEDS_TLC591XX is not set
-# CONFIG_LEDS_LM355x is not set
-# CONFIG_LEDS_IS31FL319X is not set
-# CONFIG_LEDS_IS31FL32XX is not set
-
-#
-# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
-#
-# CONFIG_LEDS_BLINKM is not set
-# CONFIG_LEDS_MLXREG is not set
-# CONFIG_LEDS_USER is not set
-# CONFIG_LEDS_SPI_BYTE is not set
-
-#
-# LED Triggers
-#
-# CONFIG_LEDS_TRIGGERS is not set
-# CONFIG_ACCESSIBILITY is not set
-# CONFIG_INFINIBAND is not set
-CONFIG_EDAC_ATOMIC_SCRUB=y
-CONFIG_EDAC_SUPPORT=y
-CONFIG_RTC_LIB=y
-# CONFIG_RTC_CLASS is not set
-# CONFIG_DMADEVICES is not set
-
-#
-# DMABUF options
-#
-# CONFIG_SYNC_FILE is not set
-# end of DMABUF options
-
-# CONFIG_AUXDISPLAY is not set
-# CONFIG_UIO is not set
-# CONFIG_VIRT_DRIVERS is not set
-# CONFIG_VIRTIO_MENU is not set
-
-#
-# Microsoft Hyper-V guest support
-#
-# end of Microsoft Hyper-V guest support
-
-# CONFIG_GREYBUS is not set
-CONFIG_STAGING=y
-# CONFIG_COMEDI is not set
-CONFIG_OCTEON_ETHERNET=y
-CONFIG_OCTEON_USB=y
-
-#
-# Speakup console speech
-#
-# end of Speakup console speech
-
-# CONFIG_STAGING_MEDIA is not set
-
-#
-# Android
-#
-# end of Android
-
-# CONFIG_LTE_GDM724X is not set
-# CONFIG_GS_FPGABOOT is not set
-# CONFIG_UNISYSSPAR is not set
-# CONFIG_MOST is not set
-# CONFIG_PI433 is not set
-
-#
-# Gasket devices
-#
-# end of Gasket devices
-
-# CONFIG_XIL_AXIS_FIFO is not set
-# CONFIG_FIELDBUS_DEV is not set
-# CONFIG_USB_WUSB_CBAF is not set
-# CONFIG_UWB is not set
-# CONFIG_EXFAT_FS is not set
-CONFIG_MIPS_PLATFORM_DEVICES=y
-# CONFIG_GOLDFISH is not set
-# CONFIG_HWSPINLOCK is not set
-
-#
-# Clock Source drivers
-#
-# end of Clock Source drivers
-
-# CONFIG_MAILBOX is not set
-# CONFIG_IOMMU_SUPPORT is not set
-
-#
-# Remoteproc drivers
-#
-# CONFIG_REMOTEPROC is not set
-# end of Remoteproc drivers
-
-#
-# Rpmsg drivers
-#
-# CONFIG_RPMSG_VIRTIO is not set
-# end of Rpmsg drivers
-
-# CONFIG_SOUNDWIRE is not set
-
-#
-# SOC (System On Chip) specific Drivers
-#
-
-#
-# Amlogic SoC drivers
-#
-# end of Amlogic SoC drivers
-
-#
-# Aspeed SoC drivers
-#
-# end of Aspeed SoC drivers
-
-#
-# Broadcom SoC drivers
-#
-# end of Broadcom SoC drivers
-
-#
-# NXP/Freescale QorIQ SoC drivers
-#
-# end of NXP/Freescale QorIQ SoC drivers
-
-#
-# i.MX SoC drivers
-#
-# end of i.MX SoC drivers
-
-#
-# Qualcomm SoC drivers
-#
-# end of Qualcomm SoC drivers
-
-# CONFIG_SOC_TI is not set
-
-#
-# Xilinx SoC drivers
-#
-# CONFIG_XILINX_VCU is not set
-# end of Xilinx SoC drivers
-# end of SOC (System On Chip) specific Drivers
-
-# CONFIG_PM_DEVFREQ is not set
-# CONFIG_EXTCON is not set
-# CONFIG_MEMORY is not set
-# CONFIG_IIO is not set
-# CONFIG_PWM is not set
-
-#
-# IRQ chip support
-#
-CONFIG_IRQCHIP=y
-# CONFIG_AL_FIC is not set
-# CONFIG_INGENIC_TCU_IRQ is not set
-# end of IRQ chip support
-
-# CONFIG_IPACK_BUS is not set
-# CONFIG_RESET_CONTROLLER is not set
-
-#
-# PHY Subsystem
-#
-# CONFIG_GENERIC_PHY is not set
-# CONFIG_BCM_KONA_USB2_PHY is not set
-# CONFIG_PHY_CADENCE_DP is not set
-# CONFIG_PHY_CADENCE_DPHY is not set
-# CONFIG_PHY_FSL_IMX8MQ_USB is not set
-# 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_MAPPHONE_MDM6600 is not set
-# end of PHY Subsystem
-
-# CONFIG_POWERCAP is not set
-# CONFIG_MCB is not set
-# CONFIG_RAS is not set
-
-#
-# Android
-#
-# CONFIG_ANDROID is not set
-# end of Android
-
-# CONFIG_LIBNVDIMM is not set
-# CONFIG_DAX is not set
-# CONFIG_NVMEM is not set
-
-#
-# HW tracing support
-#
-# CONFIG_STM is not set
-# CONFIG_INTEL_TH is not set
-# end of HW tracing support
-
-# CONFIG_FPGA is not set
-# CONFIG_FSI is not set
-# CONFIG_SIOX is not set
-# CONFIG_SLIMBUS is not set
-# CONFIG_INTERCONNECT is not set
-# CONFIG_COUNTER is not set
-# end of Device Drivers
-
-#
-# File systems
-#
-# CONFIG_VALIDATE_FS_PARSER is not set
-CONFIG_FS_IOMAP=y
-CONFIG_EXT2_FS=y
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-CONFIG_EXT3_FS=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-# CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD2=y
-# CONFIG_JBD2_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS is not set
-# CONFIG_XFS_FS is not set
-# CONFIG_GFS2_FS is not set
-# CONFIG_OCFS2_FS is not set
-# CONFIG_BTRFS_FS is not set
-# CONFIG_NILFS2_FS is not set
-# CONFIG_F2FS_FS is not set
-CONFIG_FS_POSIX_ACL=y
-CONFIG_EXPORTFS=y
-# CONFIG_EXPORTFS_BLOCK_OPS is not set
-CONFIG_FILE_LOCKING=y
-CONFIG_MANDATORY_FILE_LOCKING=y
-# CONFIG_FS_ENCRYPTION is not set
-# CONFIG_FS_VERITY is not set
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY_USER=y
-# CONFIG_FANOTIFY is not set
-# CONFIG_QUOTA is not set
-CONFIG_AUTOFS4_FS=y
-CONFIG_AUTOFS_FS=y
-# CONFIG_FUSE_FS is not set
-CONFIG_OVERLAY_FS=y
-# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set
-# CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW is not set
-# CONFIG_OVERLAY_FS_INDEX is not set
-# CONFIG_OVERLAY_FS_XINO_AUTO is not set
-# CONFIG_OVERLAY_FS_METACOPY is not set
-
-#
-# Caches
-#
-# CONFIG_FSCACHE is not set
-# end of Caches
-
-#
-# CD-ROM/DVD Filesystems
-#
-# CONFIG_ISO9660_FS is not set
-# CONFIG_UDF_FS is not set
-# end of CD-ROM/DVD Filesystems
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=y
-# CONFIG_MSDOS_FS is not set
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-# CONFIG_FAT_DEFAULT_UTF8 is not set
-# CONFIG_NTFS_FS is not set
-# end of DOS/FAT/NT Filesystems
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_KCORE=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_PROC_PAGE_MONITOR=y
-# CONFIG_PROC_CHILDREN is not set
-CONFIG_KERNFS=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_TMPFS_XATTR=y
-CONFIG_HUGETLBFS=y
-CONFIG_HUGETLB_PAGE=y
-CONFIG_MEMFD_CREATE=y
-CONFIG_CONFIGFS_FS=m
-# end of Pseudo filesystems
-
-CONFIG_MISC_FILESYSTEMS=y
-# CONFIG_ORANGEFS_FS is not set
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_JFFS2_FS is not set
-# CONFIG_CRAMFS is not set
-CONFIG_SQUASHFS=y
-CONFIG_SQUASHFS_FILE_CACHE=y
-# CONFIG_SQUASHFS_FILE_DIRECT is not set
-CONFIG_SQUASHFS_DECOMP_SINGLE=y
-# CONFIG_SQUASHFS_DECOMP_MULTI is not set
-# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set
-CONFIG_SQUASHFS_XATTR=y
-CONFIG_SQUASHFS_ZLIB=y
-# CONFIG_SQUASHFS_LZ4 is not set
-CONFIG_SQUASHFS_LZO=y
-CONFIG_SQUASHFS_XZ=y
-# CONFIG_SQUASHFS_ZSTD is not set
-# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
-# CONFIG_SQUASHFS_EMBEDDED is not set
-CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-# CONFIG_VXFS_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_OMFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_QNX6FS_FS is not set
-# CONFIG_ROMFS_FS is not set
-# CONFIG_PSTORE is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-# CONFIG_EROFS_FS is not set
-# CONFIG_NETWORK_FILESYSTEMS is not set
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="iso8859-1"
-CONFIG_NLS_CODEPAGE_437=y
-# CONFIG_NLS_CODEPAGE_737 is not set
-# CONFIG_NLS_CODEPAGE_775 is not set
-# CONFIG_NLS_CODEPAGE_850 is not set
-# CONFIG_NLS_CODEPAGE_852 is not set
-# CONFIG_NLS_CODEPAGE_855 is not set
-# CONFIG_NLS_CODEPAGE_857 is not set
-# CONFIG_NLS_CODEPAGE_860 is not set
-# CONFIG_NLS_CODEPAGE_861 is not set
-# CONFIG_NLS_CODEPAGE_862 is not set
-# CONFIG_NLS_CODEPAGE_863 is not set
-# CONFIG_NLS_CODEPAGE_864 is not set
-# CONFIG_NLS_CODEPAGE_865 is not set
-# CONFIG_NLS_CODEPAGE_866 is not set
-# CONFIG_NLS_CODEPAGE_869 is not set
-# CONFIG_NLS_CODEPAGE_936 is not set
-# CONFIG_NLS_CODEPAGE_950 is not set
-# CONFIG_NLS_CODEPAGE_932 is not set
-# CONFIG_NLS_CODEPAGE_949 is not set
-# CONFIG_NLS_CODEPAGE_874 is not set
-# CONFIG_NLS_ISO8859_8 is not set
-# CONFIG_NLS_CODEPAGE_1250 is not set
-# CONFIG_NLS_CODEPAGE_1251 is not set
-# CONFIG_NLS_ASCII is not set
-CONFIG_NLS_ISO8859_1=y
-# CONFIG_NLS_ISO8859_2 is not set
-# CONFIG_NLS_ISO8859_3 is not set
-# CONFIG_NLS_ISO8859_4 is not set
-# CONFIG_NLS_ISO8859_5 is not set
-# CONFIG_NLS_ISO8859_6 is not set
-# CONFIG_NLS_ISO8859_7 is not set
-# CONFIG_NLS_ISO8859_9 is not set
-# CONFIG_NLS_ISO8859_13 is not set
-# CONFIG_NLS_ISO8859_14 is not set
-# CONFIG_NLS_ISO8859_15 is not set
-# CONFIG_NLS_KOI8_R is not set
-# CONFIG_NLS_KOI8_U is not set
-# CONFIG_NLS_MAC_ROMAN is not set
-# CONFIG_NLS_MAC_CELTIC is not set
-# CONFIG_NLS_MAC_CENTEURO is not set
-# CONFIG_NLS_MAC_CROATIAN is not set
-# CONFIG_NLS_MAC_CYRILLIC is not set
-# CONFIG_NLS_MAC_GAELIC is not set
-# CONFIG_NLS_MAC_GREEK is not set
-# CONFIG_NLS_MAC_ICELAND is not set
-# CONFIG_NLS_MAC_INUIT is not set
-# CONFIG_NLS_MAC_ROMANIAN is not set
-# CONFIG_NLS_MAC_TURKISH is not set
-# CONFIG_NLS_UTF8 is not set
-# CONFIG_DLM is not set
-# CONFIG_UNICODE is not set
-# end of File systems
-
-#
-# Security options
-#
-# CONFIG_KEYS is not set
-# CONFIG_SECURITY_DMESG_RESTRICT is not set
-CONFIG_SECURITY=y
-# CONFIG_SECURITYFS is not set
-CONFIG_SECURITY_NETWORK=y
-CONFIG_SECURITY_NETWORK_XFRM=y
-# CONFIG_SECURITY_PATH is not set
-CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
-# CONFIG_HARDENED_USERCOPY is not set
-# CONFIG_STATIC_USERMODEHELPER is not set
-# CONFIG_SECURITY_SMACK is not set
-# CONFIG_SECURITY_TOMOYO is not set
-# CONFIG_SECURITY_APPARMOR is not set
-# CONFIG_SECURITY_LOADPIN is not set
-# CONFIG_SECURITY_YAMA is not set
-# CONFIG_SECURITY_SAFESETID is not set
-# CONFIG_SECURITY_LOCKDOWN_LSM is not set
-CONFIG_INTEGRITY=y
-# CONFIG_INTEGRITY_SIGNATURE is not set
-# CONFIG_IMA is not set
-# CONFIG_EVM is not set
-CONFIG_DEFAULT_SECURITY_DAC=y
-CONFIG_LSM="lockdown,yama,loadpin,safesetid,integrity"
-
-#
-# Kernel hardening options
-#
-
-#
-# Memory initialization
-#
-CONFIG_INIT_STACK_NONE=y
-# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set
-# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set
-# end of Memory initialization
-# end of Kernel hardening options
-# end of Security options
-
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_AEAD=m
-CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_BLKCIPHER=y
-CONFIG_CRYPTO_BLKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG=m
-CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_RNG_DEFAULT=m
-CONFIG_CRYPTO_AKCIPHER2=y
-CONFIG_CRYPTO_KPP2=y
-CONFIG_CRYPTO_ACOMP2=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-# CONFIG_CRYPTO_USER is not set
-CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
-CONFIG_CRYPTO_GF128MUL=m
-CONFIG_CRYPTO_NULL=m
-CONFIG_CRYPTO_NULL2=y
-# CONFIG_CRYPTO_PCRYPT is not set
-# CONFIG_CRYPTO_CRYPTD is not set
-CONFIG_CRYPTO_AUTHENC=m
-# CONFIG_CRYPTO_TEST is not set
-
-#
-# Public-key cryptography
-#
-# CONFIG_CRYPTO_RSA is not set
-# CONFIG_CRYPTO_DH is not set
-# CONFIG_CRYPTO_ECDH is not set
-# CONFIG_CRYPTO_ECRDSA is not set
-
-#
-# Authenticated Encryption with Associated Data
-#
-# CONFIG_CRYPTO_CCM is not set
-CONFIG_CRYPTO_GCM=m
-# CONFIG_CRYPTO_CHACHA20POLY1305 is not set
-# CONFIG_CRYPTO_AEGIS128 is not set
-CONFIG_CRYPTO_SEQIV=m
-CONFIG_CRYPTO_ECHAINIV=m
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=y
-# CONFIG_CRYPTO_CFB is not set
-CONFIG_CRYPTO_CTR=m
-# CONFIG_CRYPTO_CTS is not set
-CONFIG_CRYPTO_ECB=y
-# CONFIG_CRYPTO_LRW is not set
-# CONFIG_CRYPTO_OFB is not set
-# CONFIG_CRYPTO_PCBC is not set
-# CONFIG_CRYPTO_XTS is not set
-# CONFIG_CRYPTO_KEYWRAP is not set
-# CONFIG_CRYPTO_ADIANTUM is not set
-# CONFIG_CRYPTO_ESSIV is not set
-
-#
-# Hash modes
-#
-# CONFIG_CRYPTO_CMAC is not set
-CONFIG_CRYPTO_HMAC=y
-# CONFIG_CRYPTO_XCBC is not set
-# CONFIG_CRYPTO_VMAC is not set
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=y
-# CONFIG_CRYPTO_CRC32 is not set
-# CONFIG_CRYPTO_XXHASH is not set
-# CONFIG_CRYPTO_CRCT10DIF is not set
-CONFIG_CRYPTO_GHASH=m
-# CONFIG_CRYPTO_POLY1305 is not set
-# CONFIG_CRYPTO_MD4 is not set
-CONFIG_CRYPTO_MD5=y
-# CONFIG_CRYPTO_MD5_OCTEON is not set
-# CONFIG_CRYPTO_MICHAEL_MIC is not set
-# CONFIG_CRYPTO_RMD128 is not set
-# CONFIG_CRYPTO_RMD160 is not set
-# CONFIG_CRYPTO_RMD256 is not set
-# CONFIG_CRYPTO_RMD320 is not set
-CONFIG_CRYPTO_SHA1=m
-# CONFIG_CRYPTO_SHA1_OCTEON is not set
-CONFIG_CRYPTO_LIB_SHA256=m
-CONFIG_CRYPTO_SHA256=m
-# CONFIG_CRYPTO_SHA256_OCTEON is not set
-CONFIG_CRYPTO_SHA512=m
-# CONFIG_CRYPTO_SHA512_OCTEON is not set
-# CONFIG_CRYPTO_SHA3 is not set
-# CONFIG_CRYPTO_SM3 is not set
-# CONFIG_CRYPTO_STREEBOG is not set
-# CONFIG_CRYPTO_TGR192 is not set
-# CONFIG_CRYPTO_WP512 is not set
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_LIB_AES=y
-CONFIG_CRYPTO_AES=y
-# CONFIG_CRYPTO_AES_TI is not set
-# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_LIB_ARC4=m
-CONFIG_CRYPTO_ARC4=m
-# CONFIG_CRYPTO_BLOWFISH is not set
-# CONFIG_CRYPTO_CAMELLIA is not set
-# CONFIG_CRYPTO_CAST5 is not set
-# CONFIG_CRYPTO_CAST6 is not set
-CONFIG_CRYPTO_LIB_DES=y
-CONFIG_CRYPTO_DES=y
-# CONFIG_CRYPTO_FCRYPT is not set
-# CONFIG_CRYPTO_KHAZAD is not set
-# CONFIG_CRYPTO_SALSA20 is not set
-# CONFIG_CRYPTO_CHACHA20 is not set
-# CONFIG_CRYPTO_SEED is not set
-# CONFIG_CRYPTO_SERPENT is not set
-# CONFIG_CRYPTO_SM4 is not set
-# CONFIG_CRYPTO_TEA is not set
-# CONFIG_CRYPTO_TWOFISH is not set
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=m
-# CONFIG_CRYPTO_LZO is not set
-# CONFIG_CRYPTO_842 is not set
-# CONFIG_CRYPTO_LZ4 is not set
-# CONFIG_CRYPTO_LZ4HC is not set
-# CONFIG_CRYPTO_ZSTD is not set
-
-#
-# Random Number Generation
-#
-CONFIG_CRYPTO_ANSI_CPRNG=m
-CONFIG_CRYPTO_DRBG_MENU=m
-CONFIG_CRYPTO_DRBG_HMAC=y
-# CONFIG_CRYPTO_DRBG_HASH is not set
-# CONFIG_CRYPTO_DRBG_CTR is not set
-CONFIG_CRYPTO_DRBG=m
-CONFIG_CRYPTO_JITTERENTROPY=m
-CONFIG_CRYPTO_USER_API=m
-CONFIG_CRYPTO_USER_API_HASH=m
-# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
-# CONFIG_CRYPTO_USER_API_RNG is not set
-# CONFIG_CRYPTO_USER_API_AEAD is not set
-CONFIG_CRYPTO_HW=y
-# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set
-# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set
-# CONFIG_CRYPTO_DEV_IMGTEC_HASH is not set
-# CONFIG_CRYPTO_DEV_SAFEXCEL is not set
-# CONFIG_CRYPTO_DEV_CCREE is not set
-
-#
-# Certificates for signature checking
-#
-# end of Certificates for signature checking
-
-#
-# Library routines
-#
-# CONFIG_PACKING is not set
-CONFIG_BITREVERSE=y
-CONFIG_GENERIC_NET_UTILS=y
-# CONFIG_CORDIC is not set
-CONFIG_NO_GENERIC_PCI_IOPORT_MAP=y
-CONFIG_GENERIC_PCI_IOMAP=y
-CONFIG_GENERIC_IOMAP=y
-CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
-CONFIG_CRC_CCITT=m
-CONFIG_CRC16=y
-# CONFIG_CRC_T10DIF is not set
-# CONFIG_CRC_ITU_T is not set
-CONFIG_CRC32=y
-# CONFIG_CRC32_SELFTEST is not set
-CONFIG_CRC32_SLICEBY8=y
-# CONFIG_CRC32_SLICEBY4 is not set
-# CONFIG_CRC32_SARWATE is not set
-# CONFIG_CRC32_BIT is not set
-# CONFIG_CRC64 is not set
-# CONFIG_CRC4 is not set
-# CONFIG_CRC7 is not set
-CONFIG_LIBCRC32C=m
-# CONFIG_CRC8 is not set
-# CONFIG_RANDOM32_SELFTEST is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=m
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_XZ_DEC=y
-# CONFIG_XZ_DEC_X86 is not set
-# CONFIG_XZ_DEC_POWERPC is not set
-# CONFIG_XZ_DEC_IA64 is not set
-# CONFIG_XZ_DEC_ARM is not set
-# CONFIG_XZ_DEC_ARMTHUMB is not set
-# CONFIG_XZ_DEC_SPARC is not set
-# CONFIG_XZ_DEC_TEST is not set
-CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_TEXTSEARCH=y
-CONFIG_TEXTSEARCH_KMP=m
-CONFIG_TEXTSEARCH_BM=m
-CONFIG_TEXTSEARCH_FSM=m
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT_MAP=y
-CONFIG_HAS_DMA=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_ARCH_DMA_ADDR_T_64BIT=y
-CONFIG_DMA_DECLARE_COHERENT=y
-CONFIG_SWIOTLB=y
-# CONFIG_DMA_API_DEBUG is not set
-CONFIG_SGL_ALLOC=y
-CONFIG_CPU_RMAP=y
-CONFIG_DQL=y
-CONFIG_NLATTR=y
-# CONFIG_IRQ_POLL is not set
-CONFIG_LIBFDT=y
-CONFIG_HAVE_GENERIC_VDSO=y
-CONFIG_GENERIC_GETTIMEOFDAY=y
-CONFIG_FONT_SUPPORT=y
-CONFIG_FONT_8x16=y
-CONFIG_FONT_AUTOSELECT=y
-CONFIG_SG_POOL=y
-CONFIG_SBITMAP=y
-# CONFIG_STRING_SELFTEST is not set
-# end of Library routines
-
-CONFIG_GENERIC_LIB_ASHLDI3=y
-CONFIG_GENERIC_LIB_ASHRDI3=y
-CONFIG_GENERIC_LIB_LSHRDI3=y
-CONFIG_GENERIC_LIB_CMPDI2=y
-CONFIG_GENERIC_LIB_UCMPDI2=y
-
-#
-# Kernel hacking
-#
-
-#
-# printk and dmesg options
-#
-CONFIG_PRINTK_TIME=y
-# CONFIG_PRINTK_CALLER is not set
-CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7
-CONFIG_CONSOLE_LOGLEVEL_QUIET=4
-CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4
-# CONFIG_BOOT_PRINTK_DELAY is not set
-# end of printk and dmesg options
-
-#
-# Compile-time checks and compiler options
-#
-# CONFIG_DEBUG_INFO is not set
-CONFIG_ENABLE_MUST_CHECK=y
-CONFIG_FRAME_WARN=2048
-# CONFIG_STRIP_ASM_SYMS is not set
-# CONFIG_READABLE_ASM is not set
-# CONFIG_DEBUG_FS is not set
-# CONFIG_HEADERS_INSTALL is not set
-CONFIG_OPTIMIZE_INLINING=y
-# CONFIG_DEBUG_SECTION_MISMATCH is not set
-CONFIG_SECTION_MISMATCH_WARN_ONLY=y
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-# end of Compile-time checks and compiler options
-
-CONFIG_MAGIC_SYSRQ=y
-CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1
-CONFIG_MAGIC_SYSRQ_SERIAL=y
-CONFIG_DEBUG_KERNEL=y
-CONFIG_DEBUG_MISC=y
-
-#
-# Memory Debugging
-#
-# CONFIG_PAGE_EXTENSION is not set
-# CONFIG_DEBUG_PAGEALLOC is not set
-# CONFIG_PAGE_OWNER is not set
-# CONFIG_PAGE_POISONING is not set
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_DEBUG_SLAB is not set
-CONFIG_HAVE_DEBUG_KMEMLEAK=y
-# CONFIG_DEBUG_KMEMLEAK is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_MEMORY_INIT is not set
-# CONFIG_DEBUG_PER_CPU_MAPS is not set
-CONFIG_HAVE_DEBUG_STACKOVERFLOW=y
-# CONFIG_DEBUG_STACKOVERFLOW is not set
-CONFIG_CC_HAS_KASAN_GENERIC=y
-CONFIG_KASAN_STACK=1
-# end of Memory Debugging
-
-CONFIG_CC_HAS_SANCOV_TRACE_PC=y
-# CONFIG_DEBUG_SHIRQ is not set
-
-#
-# Debug Lockups and Hangs
-#
-# CONFIG_SOFTLOCKUP_DETECTOR is not set
-CONFIG_DETECT_HUNG_TASK=y
-CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
-CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y
-CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=1
-# CONFIG_WQ_WATCHDOG is not set
-# end of Debug Lockups and Hangs
-
-# CONFIG_PANIC_ON_OOPS is not set
-CONFIG_PANIC_ON_OOPS_VALUE=0
-CONFIG_PANIC_TIMEOUT=0
-# CONFIG_SCHED_DEBUG is not set
-# CONFIG_SCHEDSTATS is not set
-# CONFIG_SCHED_STACK_END_CHECK is not set
-# CONFIG_DEBUG_TIMEKEEPING is not set
-
-#
-# Lock Debugging (spinlocks, mutexes, etc...)
-#
-CONFIG_LOCK_DEBUGGING_SUPPORT=y
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set
-# CONFIG_DEBUG_RWSEMS is not set
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_DEBUG_ATOMIC_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-# CONFIG_LOCK_TORTURE_TEST is not set
-# CONFIG_WW_MUTEX_SELFTEST is not set
-# end of Lock Debugging (spinlocks, mutexes, etc...)
-
-# CONFIG_STACKTRACE is not set
-# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set
-# CONFIG_DEBUG_KOBJECT is not set
-# CONFIG_DEBUG_LIST is not set
-# CONFIG_DEBUG_PLIST is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_DEBUG_CREDENTIALS is not set
-
-#
-# RCU Debugging
-#
-# CONFIG_RCU_PERF_TEST is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-CONFIG_RCU_CPU_STALL_TIMEOUT=60
-# CONFIG_RCU_TRACE is not set
-# CONFIG_RCU_EQS_DEBUG is not set
-# end of RCU Debugging
-
-# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set
-# CONFIG_NOTIFIER_ERROR_INJECTION is not set
-# CONFIG_FAULT_INJECTION is not set
-# CONFIG_LATENCYTOP is not set
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_SYSCALL_TRACEPOINTS=y
-CONFIG_HAVE_C_RECORDMCOUNT=y
-CONFIG_TRACING_SUPPORT=y
-# CONFIG_FTRACE is not set
-CONFIG_RUNTIME_TESTING_MENU=y
-# CONFIG_TEST_LIST_SORT is not set
-# CONFIG_TEST_SORT is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_RBTREE_TEST is not set
-# CONFIG_REED_SOLOMON_TEST is not set
-# CONFIG_INTERVAL_TREE_TEST is not set
-# CONFIG_PERCPU_TEST is not set
-# CONFIG_ATOMIC64_SELFTEST is not set
-# CONFIG_TEST_HEXDUMP is not set
-# CONFIG_TEST_STRING_HELPERS is not set
-# CONFIG_TEST_STRSCPY is not set
-# CONFIG_TEST_KSTRTOX is not set
-# CONFIG_TEST_PRINTF is not set
-# CONFIG_TEST_BITMAP is not set
-# CONFIG_TEST_BITFIELD is not set
-# CONFIG_TEST_UUID is not set
-# CONFIG_TEST_XARRAY is not set
-# CONFIG_TEST_OVERFLOW is not set
-# CONFIG_TEST_RHASHTABLE is not set
-# CONFIG_TEST_HASH is not set
-# CONFIG_TEST_IDA is not set
-# CONFIG_TEST_LKM is not set
-# CONFIG_TEST_VMALLOC is not set
-# CONFIG_TEST_USER_COPY is not set
-# CONFIG_TEST_BPF is not set
-# CONFIG_TEST_BLACKHOLE_DEV is not set
-# CONFIG_FIND_BIT_BENCHMARK is not set
-# CONFIG_TEST_FIRMWARE is not set
-# CONFIG_TEST_SYSCTL is not set
-# CONFIG_TEST_UDELAY is not set
-# CONFIG_TEST_STATIC_KEYS is not set
-# CONFIG_TEST_KMOD is not set
-# CONFIG_TEST_MEMCAT_P is not set
-# CONFIG_TEST_STACKINIT is not set
-# CONFIG_TEST_MEMINIT is not set
-# CONFIG_MEMTEST is not set
-# CONFIG_BUG_ON_DATA_CORRUPTION is not set
-# CONFIG_SAMPLES is not set
-CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_KGDB is not set
-CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y
-# CONFIG_UBSAN is not set
-CONFIG_UBSAN_ALIGNMENT=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_EARLY_PRINTK=y
-CONFIG_CMDLINE_BOOL=y
-CONFIG_CMDLINE="rootwait rootflags=data=journal"
-# CONFIG_CMDLINE_OVERRIDE is not set
-# end of Kernel hacking
diff --git a/main/linux-octeon/kvm-fallthrough.patch b/main/linux-octeon/kvm-fallthrough.patch
deleted file mode 100644
index 6479f5f161a..00000000000
--- a/main/linux-octeon/kvm-fallthrough.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -urN linux-5.4.orig/arch/mips/kvm/emulate.c linux-5.4/arch/mips/kvm/emulate.c
---- linux-5.4.orig/arch/mips/kvm/emulate.c 2020-06-04 09:01:01.953454087 -0600
-+++ linux-5.4/arch/mips/kvm/emulate.c 2020-06-04 09:01:50.763579884 -0600
-@@ -1716,7 +1716,8 @@
-
- case lwu_op:
- vcpu->mmio_needed = 1; /* unsigned */
-- /* fall through */
-+ run->mmio.len = 4;
-+ break;
- #endif
- case lw_op:
- run->mmio.len = 4;
diff --git a/main/linux-octeon/octeon-disable-devicetree-deprecation-warning.patch b/main/linux-octeon/octeon-disable-devicetree-deprecation-warning.patch
deleted file mode 100644
index 39e55e9c43e..00000000000
--- a/main/linux-octeon/octeon-disable-devicetree-deprecation-warning.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-Disable device tree deprecation warnings, they're burned into ROM and we
-cannot do anything about them.
-
-diff -urN linux-5.4.orig/arch/mips/cavium-octeon/executive/cvmx-helper-board.c linux-5.4/arch/mips/cavium-octeon/executive/cvmx-helper-board.c
---- linux-5.4.orig/arch/mips/cavium-octeon/executive/cvmx-helper-board.c 2019-12-22 15:48:45.702104526 +0000
-+++ linux-5.4/arch/mips/cavium-octeon/executive/cvmx-helper-board.c 2019-12-22 15:49:50.470135827 +0000
-@@ -211,8 +211,10 @@
- {
- cvmx_helper_link_info_t result;
-
-+#if 0
- WARN(!octeon_is_simulation(),
- "Using deprecated link status - please update your DT");
-+#endif
-
- /* Unless we fix it later, all links are defaulted to down */
- result.u64 = 0;
-diff -urN linux-5.4.orig/arch/mips/cavium-octeon/executive/cvmx-helper.c linux-5.4/arch/mips/cavium-octeon/executive/cvmx-helper.c
---- linux-5.4.orig/arch/mips/cavium-octeon/executive/cvmx-helper.c 2019-12-22 15:48:45.702104526 +0000
-+++ linux-5.4/arch/mips/cavium-octeon/executive/cvmx-helper.c 2019-12-22 15:50:37.328711499 +0000
-@@ -1100,7 +1100,9 @@
- if (index == 0)
- result = __cvmx_helper_rgmii_link_get(ipd_port);
- else {
-+#if 0
- WARN(1, "Using deprecated link status - please update your DT");
-+#endif
- result.s.full_duplex = 1;
- result.s.link_up = 1;
- result.s.speed = 1000;
diff --git a/main/linux-octeon/octeon-rd_name.patch b/main/linux-octeon/octeon-rd_name.patch
deleted file mode 100644
index 02fea130c24..00000000000
--- a/main/linux-octeon/octeon-rd_name.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-From: David Daney <david.daney@cavium.com>
-
-If 'rd_name=xxx' is passed to the kernel, the named block with name
-'xxx' is used for the initrd.
-
-Signed-off-by: David Daney <david.daney@cavium.com>
-Signed-off-by: Leonid Rosenboim <lrosenboim@caviumnetworks.com>
-Signed-off-by: Aleksey Makarov <aleksey.makarov@auriga.com>
-Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
-[forward porting to 5.4]
-
---- a/arch/mips/cavium-octeon/setup.c
-+++ b/arch/mips/cavium-octeon/setup.c
-@@ -28,6 +28,7 @@
- #include <linux/of_fdt.h>
- #include <linux/libfdt.h>
- #include <linux/kexec.h>
-+#include <linux/initrd.h>
-
- #include <asm/processor.h>
- #include <asm/reboot.h>
-@@ -298,6 +299,9 @@
-
- extern asmlinkage void handle_int(void);
-
-+/* If an initrd named block is specified, its name goes here. */
-+static char rd_name[64] __initdata;
-+
- /**
- * Return non zero if we are currently running in the Octeon simulator
- *
-@@ -877,6 +881,10 @@
- max_memory = 32ull << 30;
- if (*p == '@')
- reserve_low_mem = memparse(p + 1, &p);
-+ } else if (strncmp(arg, "rd_name=", 8) == 0) {
-+ strncpy(rd_name, arg + 8, sizeof(rd_name));
-+ rd_name[sizeof(rd_name) - 1] = 0;
-+ goto append_arg;
- #ifdef CONFIG_KEXEC
- } else if (strncmp(arg, "crashkernel=", 12) == 0) {
- crashk_size = memparse(arg+12, &p);
-@@ -889,11 +897,15 @@
- * parse_crashkernel(arg, sysinfo->system_dram_size,
- * &crashk_size, &crashk_base);
- */
-+ goto append_arg;
- #endif
-- } else if (strlen(arcs_cmdline) + strlen(arg) + 1 <
-- sizeof(arcs_cmdline) - 1) {
-- strcat(arcs_cmdline, " ");
-- strcat(arcs_cmdline, arg);
-+ } else {
-+append_arg:
-+ if (strlen(arcs_cmdline) + strlen(arg) + 1
-+ < sizeof(arcs_cmdline) - 1) {
-+ strcat(arcs_cmdline, " ");
-+ strcat(arcs_cmdline, arg);
-+ }
- }
- }
-
-@@ -978,6 +990,23 @@
-
- total = 0;
- crashk_end = 0;
-+
-+#ifdef CONFIG_BLK_DEV_INITRD
-+
-+ if (rd_name[0]) {
-+ const struct cvmx_bootmem_named_block_desc *initrd_block;
-+
-+ initrd_block = cvmx_bootmem_find_named_block(rd_name);
-+ if (initrd_block != NULL) {
-+ initrd_start = initrd_block->base_addr + PAGE_OFFSET;
-+ initrd_end = initrd_start + initrd_block->size;
-+ add_memory_region(initrd_block->base_addr,
-+ initrd_block->size, BOOT_MEM_INIT_RAM);
-+ initrd_in_reserved = 1;
-+ total += initrd_block->size;
-+ }
-+ }
-+#endif
-
- /*
- * The Mips memory init uses the first memory location for
---- a/arch/mips/include/asm/bootinfo.h
-+++ b/arch/mips/include/asm/bootinfo.h
-@@ -167,4 +167,8 @@
- #endif /* CONFIG_RELOCATABLE */
- #endif /* CONFIG_USE_OF */
-
-+#ifdef CONFIG_BLK_DEV_INITRD
-+extern bool initrd_in_reserved;
-+#endif
-+
- #endif /* _ASM_BOOTINFO_H */
---- a/arch/mips/kernel/setup.c
-+++ b/arch/mips/kernel/setup.c
-@@ -63,6 +63,10 @@
-
- EXPORT_SYMBOL(mips_machtype);
-
-+#ifdef CONFIG_BLK_DEV_INITRD
-+bool initrd_in_reserved;
-+#endif
-+
- static char __initdata command_line[COMMAND_LINE_SIZE];
- char __initdata arcs_cmdline[COMMAND_LINE_SIZE];
-
-@@ -310,6 +314,12 @@
- * will reserve the area used for the initrd.
- */
- init_initrd();
-+
-+#ifdef CONFIG_BLK_DEV_INITRD
-+ if (initrd_in_reserved) {
-+ pr_info("Initramfs image loaded from rd_name= parameter.\n");
-+ }
-+#endif
-
- /* Reserve memory occupied by kernel. */
- memblock_reserve(__pa_symbol(&_text),
diff --git a/main/linux-octeon/ubnt-e200-sdio-underclock.patch b/main/linux-octeon/ubnt-e200-sdio-underclock.patch
deleted file mode 100644
index 423917ac52e..00000000000
--- a/main/linux-octeon/ubnt-e200-sdio-underclock.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-Underclock the SDIO bus on E200 devices.
-
-Signed-off-by: Ariadne Conill <ariadne@dereferenced.org>
-Upstream-status: Not yet submitted
-
---- a/arch/mips/cavium-octeon/octeon-platform.c
-+++ b/arch/mips/cavium-octeon/octeon-platform.c
-@@ -760,6 +760,28 @@
- }
- }
-
-+int __init alpine_prune_device_tree(void)
-+{
-+ if (fdt_check_header(initial_boot_params))
-+ panic("Corrupt Device Tree.");
-+
-+ /* UBNT underclocks the SDIO bus on E200. We do the same here. */
-+ if (octeon_bootinfo->board_type == CVMX_BOARD_TYPE_UBNT_E200 || octeon_bootinfo->board_type == CVMX_BOARD_TYPE_UBNT_E220) {
-+ int mmc_slot0;
-+ u32 freq = 26000000;
-+
-+ pr_info("UBNT E200 board detected, underclocking SDIO bus.\n");
-+
-+ mmc_slot0 = fdt_path_offset(initial_boot_params, "/soc/mmc/mmc-slot@0");
-+ if (mmc_slot0 > 0) {
-+ fdt_setprop_inplace_cell(initial_boot_params, mmc_slot0,
-+ "spi-max-frequency", freq);
-+ }
-+ }
-+
-+ return 0;
-+}
-+
- int __init octeon_prune_device_tree(void)
- {
- int i, max_port, uart_mask;
---- a/arch/mips/cavium-octeon/setup.c
-+++ b/arch/mips/cavium-octeon/setup.c
-@@ -1184,6 +1184,7 @@
- }
-
- void __init octeon_fill_mac_addresses(void);
-+int alpine_prune_device_tree(void);
-
- void __init device_tree_init(void)
- {
-@@ -1219,6 +1220,9 @@
- octeon_prune_device_tree();
- pr_info("Using internal Device Tree.\n");
- }
-+
-+ alpine_prune_device_tree();
-+
- if (fill_mac)
- octeon_fill_mac_addresses();
- unflatten_and_copy_device_tree();
---- a/arch/mips/include/asm/octeon/cvmx-bootinfo.h
-+++ b/arch/mips/include/asm/octeon/cvmx-bootinfo.h
-@@ -295,6 +295,9 @@
- */
- CVMX_BOARD_TYPE_CUST_PRIVATE_MIN = 20001,
- CVMX_BOARD_TYPE_UBNT_E100 = 20002,
-+ CVMX_BOARD_TYPE_UBNT_E200 = 20003,
-+ CVMX_BOARD_TYPE_UBNT_E120 = 20004,
-+ CVMX_BOARD_TYPE_UBNT_E220 = 20005,
- CVMX_BOARD_TYPE_CUST_DSR1000N = 20006,
- CVMX_BOARD_TYPE_KONTRON_S1901 = 21901,
- CVMX_BOARD_TYPE_CUST_PRIVATE_MAX = 30000,
-@@ -396,6 +399,9 @@
- /* Customer private range */
- ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MIN)
- ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E100)
-+ ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E200)
-+ ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E120)
-+ ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_UBNT_E220)
- ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_DSR1000N)
- ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_KONTRON_S1901)
- ENUM_BRD_TYPE_CASE(CVMX_BOARD_TYPE_CUST_PRIVATE_MAX)
diff --git a/main/linux-pam/APKBUILD b/main/linux-pam/APKBUILD
index 30687ab5e5d..7b8209a277b 100644
--- a/main/linux-pam/APKBUILD
+++ b/main/linux-pam/APKBUILD
@@ -1,19 +1,30 @@
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=linux-pam
-pkgver=1.5.2
-pkgrel=1
+pkgver=1.6.0
+pkgrel=0
pkgdesc="Linux PAM (Pluggable Authentication Modules for Linux)"
url="https://www.kernel.org/pub/linux/libs/pam"
arch="all"
license="BSD-3-Clause"
depends_dev="gettext-dev"
-makedepends="$depends_dev bison flex-dev autoconf automake libtool linux-headers"
+makedepends="
+ $depends_dev
+ autoconf
+ automake
+ bison
+ flex-dev
+ libtool
+ linux-headers
+ utmps-dev
+ "
options="suid !check"
-subpackages="$pkgname-dev $pkgname-doc"
+subpackages="$pkgname-dev $pkgname-manual::noarch $pkgname-doc"
source="
https://github.com/linux-pam/linux-pam/releases/download/v$pkgver/Linux-PAM-$pkgver.tar.xz
+ https://github.com/linux-pam/linux-pam/releases/download/v$pkgver/Linux-PAM-$pkgver-docs.tar.xz
+ pam_namespace.patch
base-auth.pamd
base-account.pamd
@@ -21,26 +32,20 @@ source="
base-session.pamd
base-session-noninteractive.pamd
other.pamd
- system-local-login.pamd
- system-login.pamd
+ login.pamd
su.pamd
"
builddir="$srcdir"/Linux-PAM-$pkgver
# secfixes:
+# 1.6.0-r0:
+# - CVE-2024-22365
# 1.5.1-r0:
# - CVE-2020-27780
-prepare() {
- default_prepare
- # disable insecure modules
- sed -e 's/pam_rhosts//g' -i modules/Makefile.am
-
- autoreconf -vif
-}
-
build() {
- [ "$CLIBC" = "musl" ] && export ac_cv_search_crypt=no
+ export CFLAGS="$CFLAGS -flto=auto $(pkg-config --cflags utmps)"
+ export LDFLAGS="$LDFLAGS $(pkg-config --libs utmps)"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -51,7 +56,8 @@ build() {
--infodir=/usr/share/info \
--localstatedir=/var \
--disable-nls \
- --disable-db
+ --disable-db \
+ --disable-examples
make
}
@@ -59,33 +65,44 @@ package() {
make DESTDIR="$pkgdir" install
# install our pam.d files
- mkdir "$pkgdir"/etc/pam.d
- for i in $source; do
- case $i in
- *.pamd)
- basename=$(echo $i | cut -d. -f1)
- cp "$srcdir"/$i "$pkgdir"/etc/pam.d/"$basename"
- ;;
- esac
- done
+ install -Dm644 "$srcdir"/base-auth.pamd "$pkgdir"/etc/pam.d/base-auth
+ install -Dm644 "$srcdir"/base-password.pamd "$pkgdir"/etc/pam.d/base-password
+ install -Dm644 "$srcdir"/base-account.pamd "$pkgdir"/etc/pam.d/base-account
+ install -Dm644 "$srcdir"/base-session.pamd "$pkgdir"/etc/pam.d/base-session
+ install -Dm644 "$srcdir"/base-session-noninteractive.pamd \
+ "$pkgdir"/etc/pam.d/base-session-noninteractive
+ install -Dm644 "$srcdir"/other.pamd "$pkgdir"/etc/pam.d/other
+ install -Dm644 "$srcdir"/login.pamd "$pkgdir"/etc/pam.d/login
+ install -Dm644 "$srcdir"/su.pamd "$pkgdir"/etc/pam.d/su
- # delete pointless libtool archives.
+ # make "unix_chkpwd" shadow group and enable g+s
chgrp shadow "$pkgdir"/sbin/unix_chkpwd \
&& chmod g+s "$pkgdir"/sbin/unix_chkpwd
+ # wrong dir due to libdir
+ mkdir -p "$pkgdir"/usr/lib
+ mv "$pkgdir"/lib/pkgconfig "$pkgdir"/usr/lib/pkgconfig
+
# we don't ship systemd
rm -r "$pkgdir"/usr/lib/systemd
}
+manual() {
+ pkgdesc="$pkgdesc (manual)"
+
+ amove usr/share/doc/Linux-PAM
+}
+
sha512sums="
-fa16350c132d3e5fb82b60d991768fb596582639841b8ece645c684705467305ccf1302a0147ec222ab78c01b2c9114c5496dc1ca565d2b56bf315f29a815144 Linux-PAM-1.5.2.tar.xz
-ea6a10957ba9ec50d982bfabafb35060426ac797936f874097b4fa7620b89fd2ba3be9757401f9b787956fb23879d8ef73676f7703e75fcef3dca0b9559c4167 base-auth.pamd
-85462201a4044c7e170e617d39b0eceb4790abc6c0504999117548030a16d80a9d2078d1ad97690d7d346e6374201f0c52e792ccb08ce2b1c4bbf0cc2be96f5b base-account.pamd
-da5d9a361abfc5b705e01a8da3a2e6de3ba394a0814307a65ec5b6c88ddae199d54b4d443204bf770f8daccb990777b68a5da716fb756932cf21f9046c839540 base-password.pamd
-b72bbce09f7a3f7da9bdaa2518cd4e44be9f343ab935eb8576d8d5d7d2a6b7d37040e98051e43cdf8027dda13fdca56e4d801f9ce6d1dcafd0f69bb94e9925cb base-session.pamd
-444e20046843057b17c0aac14d2b71a68923b989b3d8b478bbf684698673683186e928e5ca2e6cb9a1c76abc4248044a0e10ef6b06b3f51857106796ecce250d base-session-noninteractive.pamd
-d103ba06b2c4929171e09c845f9866539220cd20d8d56a03d25850342ef5eabe281e958dfe1eaefd550c00f9440e8700c1d74c88c3001f933134ca6fd7cb9b7b other.pamd
-83cc3d84ef5afded9afd4d347132901b9adcbd8b21be45b80d010370a2082e8388a713eb78d052944bc47b07fd7383edf18e2674d9d0545215cc45e14a2e14b1 system-local-login.pamd
-3a05cdb4b1d9d2dc30bd091e69941e24f653df7f62acf577cff7ceb4f925cfde3412c8b48bf7aeeca9fd68fb50cbfe5b567f45a61338c9f496f68b6d079ad567 system-login.pamd
-b512d691f2a6b11fc329bf91dd05ca9c589bbd444308b27d3c87c75262dedf6afc68a9739229249a4bd3d0c43cb1f871eecbb93c4fe559e0f38bdabbffd06ad7 su.pamd
+7af07edb71a79275ad7f7f3bd82a4619b12a23a10f5fb2e5d810c6aadb718fd739ed17ca336c3420945d48d326e91874d8e45cfc5a4bf01a0cc5f9663bd2a0ad Linux-PAM-1.6.0.tar.xz
+e21d939c71edfccfce5378fce0b317b7deadffa21a84b11164baa10bdf129354f01291d15df2e0a2db5e21b47578be8ddca477cb95f735b3cc10d32972df46de Linux-PAM-1.6.0-docs.tar.xz
+e9593ffb9bc29368c8e12fef770562bffd84001053bee5c4b0b859d4b39c675a13c1f9b689c619b78f61eee23a152e5a64ece4cca81d4306049a9108167cc708 pam_namespace.patch
+988e4ba32fe6b7adeb4898c784eb40d6f88f3fca78ead82b61686f0e1597f306abb3ee338aa2e4cf2db0191b8c1a7e319332e7f6d6aed3ab381f71c0a3355de9 base-auth.pamd
+5d3e960ead44dcb2b3f732825482eefab9a9ffa4d4d5fc1d30cbf2fe8c5c896f1114a0ad3a6c606fa9fbf5c43400388f4ee8d7fca8110721eabfc9691004756b base-account.pamd
+b3a900d6067ba04faa8016d9408da75917e8c0502020a4048bba1de2ca54c705c4d5f8307e759080fd5a9d5f3522f52a708803f1f01627eac56d9d7c6d363d13 base-password.pamd
+d963071b93c1178a15142db1929bd8cc5c46654fa68e299c4bcf1d4325adbc541195df7c034221daf6cc7f8937d771b5707acbdd36eee98a36180ee07529138d base-session.pamd
+2f18114b8a6a78ed798646962526876f3536b4759c00dce339e21f0695ea71d0917c048dc852c3d1c79bd17cd19dc513a3c6463abaffcff3f792b906cec98ede base-session-noninteractive.pamd
+299bb3791652174a4d836d60f146200bb692ad80c20c18e6e872543ac8885156ff1a7ca00acaf55b89672fa98f00b8df53879c9ab1913a9cc91f620163dd50be other.pamd
+ae3a807bc121eb59b54f5e53ff8efdde972610cf7463b6a38bccbc89b49954aa2e0a8693919b01f8bc7a956ba58c97de34a28963bc14f526b70b3073d64427b5 login.pamd
+a71ac72a21a5d18612365b2b0a4a0da1f9d1101a30d3f5d97f479f6378c3a0fbc219617000448c8b5a0ab2597f2e4944202b13a69624dbe849bf9ea39d00ca22 su.pamd
"
diff --git a/main/linux-pam/base-account.pamd b/main/linux-pam/base-account.pamd
index 591092944d2..68749cc17f7 100644
--- a/main/linux-pam/base-account.pamd
+++ b/main/linux-pam/base-account.pamd
@@ -1,3 +1,4 @@
# basic PAM configuration for Alpine.
-account required pam_unix.so
+account required pam_unix.so
+account required pam_nologin.so
diff --git a/main/linux-pam/base-auth.pamd b/main/linux-pam/base-auth.pamd
index 8955a71f056..0fdf9de9503 100644
--- a/main/linux-pam/base-auth.pamd
+++ b/main/linux-pam/base-auth.pamd
@@ -1,15 +1,8 @@
# basic PAM configuration for Alpine.
-auth required pam_env.so
-auth required pam_unix.so nullok_secure
-auth required pam_nologin.so successok
-auth sufficient pam_unix.so nullok try_first_pass
+auth required pam_unix.so nullok
+auth required pam_nologin.so
+auth required pam_env.so
-account required pam_nologin.so
-account sufficient pam_unix.so
-
-password sufficient pam_unix.so nullok sha512 shadow try_first_pass use_authtok
-
--session optional pam_loginuid.so
--session optional pam_elogind.so
-session sufficient pam_unix.so
+-auth optional pam_gnome_keyring.so
+-auth optional pam_kwallet5.so
diff --git a/main/linux-pam/base-password.pamd b/main/linux-pam/base-password.pamd
index 63a6a2e9d4c..c249f8357fa 100644
--- a/main/linux-pam/base-password.pamd
+++ b/main/linux-pam/base-password.pamd
@@ -1,3 +1,7 @@
# basic PAM configuration for Alpine.
-password required pam_unix.so nullok md5 sha512
+password required pam_unix.so nullok sha512 shadow
+
+# desktop keyrings
+-password optional pam_gnome_keyring.so use_authtok
+-password optional pam_kwallet5.so
diff --git a/main/linux-pam/base-session-noninteractive.pamd b/main/linux-pam/base-session-noninteractive.pamd
index 85e07d59436..0ad3695249f 100644
--- a/main/linux-pam/base-session-noninteractive.pamd
+++ b/main/linux-pam/base-session-noninteractive.pamd
@@ -1,4 +1,5 @@
# basic PAM configuration for Alpine.
-session required pam_limits.so
-session required pam_unix.so
+session required pam_env.so
+session required pam_limits.so
+session required pam_unix.so
diff --git a/main/linux-pam/base-session.pamd b/main/linux-pam/base-session.pamd
index 987574d4e27..ef6c5580f0e 100644
--- a/main/linux-pam/base-session.pamd
+++ b/main/linux-pam/base-session.pamd
@@ -1,4 +1,14 @@
# basic PAM configuration for Alpine.
-session include base-session-noninteractive
--session optional pam_elogind.so
+session include base-session-noninteractive
+
+# potential providers that set up session stuff / a XDG_RUNTIME_DIR
+-session optional pam_rundir.so
+-session optional pam_elogind.so
+-session optional pam_ck_connector.so
+-session optional pam_turnstile.so
+-session optional pam_dumb_runtime_dir.so
+
+# desktop keyrings
+-session optional pam_gnome_keyring.so auto_start
+-session optional pam_kwallet5.so auto_start
diff --git a/main/linux-pam/login.pamd b/main/linux-pam/login.pamd
new file mode 100644
index 00000000000..300d3831a64
--- /dev/null
+++ b/main/linux-pam/login.pamd
@@ -0,0 +1,6 @@
+# "login" that is required by pam-enabled util-linux-login/shadow-login
+
+auth include base-auth
+account include base-account
+password include base-password
+session include base-session
diff --git a/main/linux-pam/other.pamd b/main/linux-pam/other.pamd
index 8c9797e7184..c64c363af90 100644
--- a/main/linux-pam/other.pamd
+++ b/main/linux-pam/other.pamd
@@ -1,6 +1,6 @@
-# basic PAM configuration for Alpine.
-
-auth include base-auth
-account include base-account
-password include base-password
-session include base-session-noninteractive
+#%PAM-1.0
+# default config for any service don't specified
+auth include base-auth
+account include base-account
+password include base-password
+session include base-session-noninteractive
diff --git a/main/linux-pam/pam_namespace.patch b/main/linux-pam/pam_namespace.patch
new file mode 100644
index 00000000000..a0fad12b024
--- /dev/null
+++ b/main/linux-pam/pam_namespace.patch
@@ -0,0 +1,39 @@
+From cc9d40b7cdbd3e15ccaa324a0dda1680ef9dea13 Mon Sep 17 00:00:00 2001
+From: Jacob Heider <jacob@pkgx.dev>
+Date: Wed, 17 Jan 2024 11:49:26 -0500
+Subject: [PATCH] pam_namespace: include stdint.h
+
+pam_namespace.c makes use of SIZE_MAX but doesn't include stdint.h,
+resulting in the following build failures on 1.6.0:
+
+ pam_namespace.c: In function 'process_line':
+ pam_namespace.c:649:41: error: 'SIZE_MAX' undeclared (first use in this function)
+ 649 | if (count > UINT_MAX || count > SIZE_MAX / sizeof(uid_t)) {
+ | ^~~~~~~~
+ pam_namespace.c:41:1: note: 'SIZE_MAX' is defined in header '<stdint.h>'; did you forget to '#include <stdint.h>'?
+ 40 | #include "argv_parse.h"
+ +++ |+#include <stdint.h>
+ 41 |
+ pam_namespace.c:649:41: note: each undeclared identifier is reported only once for each function it appears in
+ 649 | if (count > UINT_MAX || count > SIZE_MAX / sizeof(uid_t)) {
+ | ^~~~~~~~
+
+Fixes: v1.6.0~100 ("pam_namespace: validate amount of uids in config")
+Resolves: https://github.com/linux-pam/linux-pam/issues/733
+---
+ modules/pam_namespace/pam_namespace.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/modules/pam_namespace/pam_namespace.c b/modules/pam_namespace/pam_namespace.c
+index f72d67189..b16731c22 100644
+--- a/modules/pam_namespace/pam_namespace.c
++++ b/modules/pam_namespace/pam_namespace.c
+@@ -34,6 +34,8 @@
+
+ #define _ATFILE_SOURCE
+
++#include "config.h"
++#include <stdint.h>
+ #include "pam_cc_compat.h"
+ #include "pam_inline.h"
+ #include "pam_namespace.h"
diff --git a/main/linux-pam/su.pamd b/main/linux-pam/su.pamd
index 84f2ae7ea90..0c0ef1699e1 100644
--- a/main/linux-pam/su.pamd
+++ b/main/linux-pam/su.pamd
@@ -1,6 +1,6 @@
# basic PAM configuration for Alpine.
-auth sufficient pam_rootok.so
-auth include base-auth
-account include base-account
-password include base-password
-session include base-session-noninteractive
+auth sufficient pam_rootok.so
+auth include base-auth
+account include base-account
+password include base-password
+session include base-session-noninteractive
diff --git a/main/linux-pam/system-local-login.pamd b/main/linux-pam/system-local-login.pamd
deleted file mode 100644
index 347b8155b86..00000000000
--- a/main/linux-pam/system-local-login.pamd
+++ /dev/null
@@ -1,6 +0,0 @@
-#%PAM-1.0
-
-auth include system-login
-account include system-login
-password include system-login
-session include system-login
diff --git a/main/linux-pam/system-login.pamd b/main/linux-pam/system-login.pamd
deleted file mode 100644
index 00894a3d1b1..00000000000
--- a/main/linux-pam/system-login.pamd
+++ /dev/null
@@ -1,23 +0,0 @@
-#%PAM-1.0
-
-auth required pam_faillock.so preauth
-auth required pam_shells.so
-auth requisite pam_nologin.so
-auth include base-auth
-auth [default=die] pam_faillock.so authfail
-auth required pam_faillock.so authsucc
-
-
-account required pam_access.so
-account required pam_nologin.so
-account include base-auth
-
-password include base-auth
-
-session optional pam_loginuid.so
-session include base-auth
-session optional pam_motd.so motd=/etc/motd
-session optional pam_mail.so dir=/var/mail standard quiet
--session optional pam_elogind.so
--session optional pam_ck_connector.so nox11
-session required pam_env.so
diff --git a/main/linux-rpi/APKBUILD b/main/linux-rpi/APKBUILD
index 4d5ff606959..d95b8fa14aa 100644
--- a/main/linux-rpi/APKBUILD
+++ b/main/linux-rpi/APKBUILD
@@ -1,48 +1,37 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=linux-rpi
-pkgver=5.15.51
+pkgver=6.6.21
case $pkgver in
*.*.*) _kernver=${pkgver%.*};;
-*.*) _kernver=${pkgver};;
+*.*) _kernver=$pkgver;;
esac
pkgrel=0
pkgdesc="Linux kernel with Raspberry Pi patches"
url=https://github.com/raspberrypi/linux
-depends="initramfs-generator linux-firmware-brcm linux-firmware-cypress"
+depends="initramfs-generator linux-firmware-brcm"
_depends_dev="perl gmp-dev elfutils-dev bash mpc1-dev mpfr-dev"
-makedepends="$_depends_dev sed installkernel bc linux-headers linux-firmware
- bison flex openssl1.1-compat-dev findutils xz
+makedepends="$_depends_dev gcc>=13.1.1_git20230603 sed installkernel bc linux-headers linux-firmware
+ bison flex openssl-dev>3 findutils xz
"
options="!strip !check"
-_rpi_repo="git://github.com/raspberrypi/linux.git"
-_linux_repo="git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
-source="https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-$_kernver.tar.xz
- https://cdn.kernel.org/pub/linux/kernel/v5.x/patch-$pkgver.xz
+_rpi_repo="https://github.com/raspberrypi/linux.git"
+_linux_repo="https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
+source="https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/linux-$_kernver.tar.xz
+ https://cdn.kernel.org/pub/linux/kernel/v${pkgver%%.*}.x/patch-$pkgver.xz
https://dev.alpinelinux.org/archive/rpi-patches/rpi-$pkgver-alpine.patch
- config-changes-rpi.armhf
- config-changes-rpi.armv7
- config-changes-rpi.aarch64
- config-changes-rpi2.armhf
- config-changes-rpi2.armv7
- config-changes-rpi4.armv7
- config-changes-rpi4.aarch64
+ common-changes.config
"
-subpackages=""
arch="armhf armv7 aarch64"
-license="GPL-2.0"
-_flavors=
-for _i in $source; do
- case $_i in
- config-*.$CARCH)
- _f=${_i%.$CARCH}
- _f=${_f#config-changes-}
- _flavors="$_flavors ${_f}"
- [ "linux-$_f" != "$pkgname" ] && subpackages="$subpackages linux-${_f}::$CBUILD_ARCH"
- subpackages="$subpackages linux-${_f}-dev:_dev:$CBUILD_ARCH"
- ;;
- esac
+license="GPL-2.0-only"
+_flavors="rpi"
+
+for _f in $_flavors; do
+ if [ "linux-$_f" != "$pkgname" ]; then
+ subpackages="$subpackages linux-$_f::$CBUILD_ARCH"
+ fi
+ subpackages="$subpackages linux-$_f-dev:_dev:$CBUILD_ARCH"
done
case "$CARCH" in
@@ -82,7 +71,7 @@ prepare() {
local flavor=
for flavor in $_flavors; do
- local _builddir="$srcdir"/build-$flavor
+ local _builddir="$srcdir"/build-$flavor.$CARCH
mkdir -p "$_builddir"
echo "-$pkgrel-$flavor" > "$_builddir"/localversion-alpine
_genconfig $flavor
@@ -95,18 +84,17 @@ prepare() {
}
# generate config from defconfig and apply local changes.
-# config-changes-$flavor.$CARCH holds a list of = delimited
+# common-changes.config holds a list of = delimited
# config command and values used by kernel scripts/config script.
_genconfig() {
local flavor=$1 defconfig=
- local builddir="$srcdir"/build-$flavor
+ local builddir="$srcdir"/build-$flavor.$CARCH
local defconfig=
- case $flavor in
- rpi) defconfig=bcmrpi_defconfig
- [ "$CARCH" = "aarch64" ] && defconfig=bcmrpi3_defconfig ;;
- rpi2) defconfig=bcm2709_defconfig ;;
- rpi4) defconfig=bcm2711_defconfig ;;
- *) die "Unknown flavor: $flavor" ;;
+ case "$CARCH" in
+ armhf) defconfig=bcmrpi_defconfig;;
+ armv7) defconfig=bcm2709_defconfig;;
+ aarch64) defconfig=bcm2711_defconfig;;
+ *) die "Unknown CARCH: $CARCH" ;;
esac
cp "$srcdir"/linux-$_kernver/arch/$_carch/configs/$defconfig \
@@ -130,14 +118,14 @@ _genconfig() {
msg "[$flavor] $cmd: $option $str"
"$srcdir"/linux-$_kernver/scripts/config \
--file "$builddir"/.config \
- --${cmd} "$option" "${str//\"/}"
- done < "$srcdir"/config-changes-$flavor.${CARCH}
+ --$cmd "$option" "${str//\"/}"
+ done < "$srcdir"/common-changes.config
}
# verify if options are set to correct value
_verifyconfig() {
local flavor=$1
- local builddir="$srcdir"/build-$flavor
+ local builddir="$srcdir"/build-$flavor.$CARCH
while read line; do
[ ${line:0:1} = "#" ] && continue
local option=${line%%=*} str= invert=
@@ -152,13 +140,16 @@ _verifyconfig() {
esac
grep -q $invert "^$str" "$builddir"/.config || \
die "Config: $option not properly set!"
- done < "$srcdir"/config-changes-$flavor.${CARCH}
+ done < "$srcdir"/common-changes.config
}
build() {
unset LDFLAGS
+ # for some reason these sometimes leak into the kernel build,
+ # -Werror=format-security breaks some stuff
+ unset CFLAGS CPPFLAGS CXXFLAGS
for i in $_flavors; do
- cd "$srcdir"/build-$i
+ cd "$srcdir"/build-$i.$CARCH
local _kver=$(make kernelversion)
if [ "$_kver" != "$pkgver" ]; then
error "Version in Makefile ($_kver) does not correspond with pkgver ($pkgver)"
@@ -171,10 +162,10 @@ build() {
_package() {
local _buildflavor="$1" _outdir="$2"
- local _abi_release=${pkgver}-${pkgrel}-${_buildflavor}
-
- cd "$srcdir"/build-$_buildflavor
+ local _builddir="$srcdir"/build-$_buildflavor.$CARCH
+ cd "$_builddir"
+ local _abi_release="$(make -s kernelrelease)"
mkdir -p "$_outdir"/boot "$_outdir"/lib/modules
local _install
@@ -190,26 +181,28 @@ _package() {
;;
esac
- cd "$srcdir"/build-$_buildflavor
# modules_install seems to regenerate a defect Modules.symvers. Work
# around it by backing it up and restore it after modules_install
cp Module.symvers Module.symvers.backup
local INSTALL_DTBS_PATH="$_outdir"/boot
- make -j1 modules_install $_install \
+ make modules_install $_install \
ARCH="$_carch" \
INSTALL_MOD_PATH="$_outdir" \
INSTALL_PATH="$_outdir"/boot \
INSTALL_DTBS_PATH="$INSTALL_DTBS_PATH"
cp Module.symvers.backup Module.symvers
- rm -f "$_outdir"/lib/modules/${_abi_release}/build \
- "$_outdir"/lib/modules/${_abi_release}/source
+ rm -f "$_outdir"/lib/modules/$_abi_release/build \
+ "$_outdir"/lib/modules/$_abi_release/source
rm -rf "$_outdir"/lib/firmware
install -D -m644 include/config/kernel.release \
"$_outdir"/usr/share/kernel/$_buildflavor/kernel.release
+ # allow the initramfs generators to know the package name the kernel came from
+ echo "${subpkgname:-$pkgname}" > "$_outdir"/lib/modules/$_abi_release/pkgname
+
if [ "$CARCH" = "aarch64" ]; then
mv -f "$INSTALL_DTBS_PATH"/broadcom/*.dtb \
"$INSTALL_DTBS_PATH"
@@ -217,43 +210,28 @@ _package() {
fi
}
-genpatch() {
- local RPI_REPO_PATH="$HOME/repositories/linux-rpi"
- msg "Checking out/pulling the Linux kernel git repository.."
- mkdir -p "$RPI_REPO_PATH" && cd "$RPI_REPO_PATH"
- git clone "$_linux_repo" "$RPI_REPO_PATH" 2>/dev/null || git pull
- msg "Fetching raspberry git repository.."
- git remote add rpi "$_rpi_repo" 2>/dev/null || true
- git fetch rpi
- msg "Generating rpi patch: rpi-$pkgver.patch"
- mkdir -p "$srcdir"
- git diff v$pkgver remotes/rpi/rpi-${pkgver%.*}.y > \
- "$srcdir"/rpi-$pkgver.patch
- msg "Sending patch to dev.alpinelinux.org.."
- scp "$srcdir"/rpi-$pkgver.patch \
- dev.alpinelinux.org:/archive/rpi-patches/rpi-$pkgver.patch
- cd "$startdir" && abuild checksum
-}
-
# main flavor installs in $pkgdir
package() {
+ case "$CARCH" in
+ armv7)
+ provides="linux-rpi2=$pkgver-r$pkgrel" # for backward compatibility
+ replaces="linux-rpi2" # for backward compatibility
+ ;;
+ aarch64)
+ provides="linux-rpi4=$pkgver-r$pkgrel" # for backward compatibility
+ replaces="linux-rpi4" # for backward compatibility
+ ;;
+ esac
_package rpi "$pkgdir"
}
-# subflavors install in $subpkgdir
-rpi2() {
- depends="initramfs-generator linux-firmware-brcm linux-firmware-cypress"
- _package rpi2 "$subpkgdir"
-}
-
-rpi4() {
- depends="initramfs-generator linux-firmware-brcm linux-firmware-cypress"
- _package rpi4 "$subpkgdir"
-}
_dev() {
local _flavor=$(echo $subpkgname | sed -E 's/(^linux-|-dev$)//g')
- local _abi_release=${pkgver}-${pkgrel}-$_flavor
+ local _builddir="$srcdir"/build-$_flavor.$CARCH
+
+ cd "$_builddir"
+ local _abi_release="$(make -s kernelrelease)"
# copy the only the parts that we really need for build 3rd party
# kernel modules and install those as /usr/src/linux-headers,
# simlar to what ubuntu does
@@ -263,15 +241,33 @@ _dev() {
#
pkgdesc="Headers and script for third party modules for $_flavor kernel"
depends="$_depends_dev"
- local dir="$subpkgdir"/usr/src/linux-headers-${_abi_release}
+
+ # handle backward compatibility with legacy flavors
+ case "$_flavor" in
+ rpi)
+ case "$CARCH" in
+ armv7)
+ provides="linux-rpi2-dev=$pkgver-r$pkgrel"
+ replaces="linux-rpi2-dev"
+ ;;
+ aarch64)
+ provides="linux-rpi4-dev=$pkgver-r$pkgrel"
+ replaces="linux-rpi4-dev"
+ ;;
+ esac
+ ;;
+ *) die "Unknown flavor: $flavor" ;;
+ esac
+
+ local dir="$subpkgdir"/usr/src/linux-headers-$_abi_release
# first we import config, run prepare to set up for building
# external modules, and create the scripts
mkdir -p "$dir"
- cp "$srcdir"/build-$_flavor/.config "$dir"/.config
+ cp "$_builddir"/.config "$dir"/.config
echo "-$pkgrel-$_flavor" > "$dir"/localversion-alpine
- make -j1 -C "$srcdir"/linux-$_kernver O="$dir" \
+ make -j1 -C "$srcdir"/linux-$_kernver ARCH="$_carch" O="$dir" \
syncconfig prepare modules_prepare scripts
# remove the stuff that points to real sources. we want 3rd party
@@ -293,23 +289,17 @@ _dev() {
find $(find arch -name include -type d -print) -type f \
| cpio -pdm "$dir"
- install -Dm644 "$srcdir"/build-$_flavor/Module.symvers \
+ install -Dm644 "$_builddir"/Module.symvers \
"$dir"/Module.symvers
- mkdir -p "$subpkgdir"/lib/modules/${_abi_release}
- ln -sf /usr/src/linux-headers-${_abi_release} \
- "$subpkgdir"/lib/modules/${_abi_release}/build
+ mkdir -p "$subpkgdir"/lib/modules/$_abi_release
+ ln -sf /usr/src/linux-headers-$_abi_release \
+ "$subpkgdir"/lib/modules/$_abi_release/build
}
sha512sums="
-d25ad40b5bcd6a4c6042fd0fd84e196e7a58024734c3e9a484fd0d5d54a0c1d87db8a3c784eff55e43b6f021709dc685eb0efa18d2aec327e4f88a79f405705a linux-5.15.tar.xz
-82b656f0ae343db32e8300bdac413bb1a81ab05615c86f725b8c57b1eea54827f021b1ea0d8d1ae0f5e767e85b9898282d39f8742443a1b360c85e51f6abae9e patch-5.15.51.xz
-5533e86fbf9d9511692844b44e45bdc39edffa92b44d8c204138e09be4ab09754f3a34ec1328717e04544fcde2d5d047d4fc19b8e2d610d08dad7ef98b744f24 rpi-5.15.51-alpine.patch
-c7c76cb4e530669d33cd05f79416ac1a60120018ee321385ff202208125863db198956a5752cb980c98bb09f06671781fcf45c9dd9b0dec42a10d0f9d9a83373 config-changes-rpi.armhf
-c7c76cb4e530669d33cd05f79416ac1a60120018ee321385ff202208125863db198956a5752cb980c98bb09f06671781fcf45c9dd9b0dec42a10d0f9d9a83373 config-changes-rpi.armv7
-c7c76cb4e530669d33cd05f79416ac1a60120018ee321385ff202208125863db198956a5752cb980c98bb09f06671781fcf45c9dd9b0dec42a10d0f9d9a83373 config-changes-rpi.aarch64
-c7c76cb4e530669d33cd05f79416ac1a60120018ee321385ff202208125863db198956a5752cb980c98bb09f06671781fcf45c9dd9b0dec42a10d0f9d9a83373 config-changes-rpi2.armhf
-c7c76cb4e530669d33cd05f79416ac1a60120018ee321385ff202208125863db198956a5752cb980c98bb09f06671781fcf45c9dd9b0dec42a10d0f9d9a83373 config-changes-rpi2.armv7
-c7c76cb4e530669d33cd05f79416ac1a60120018ee321385ff202208125863db198956a5752cb980c98bb09f06671781fcf45c9dd9b0dec42a10d0f9d9a83373 config-changes-rpi4.armv7
-c7c76cb4e530669d33cd05f79416ac1a60120018ee321385ff202208125863db198956a5752cb980c98bb09f06671781fcf45c9dd9b0dec42a10d0f9d9a83373 config-changes-rpi4.aarch64
+458b2c34d46206f9b4ccbac54cc57aeca1eaecaf831bc441e59701bac6eadffc17f6ce24af6eadd0454964e843186539ac0d63295ad2cc32d112b60360c39a35 linux-6.6.tar.xz
+e7c8e640fc519d6c92cd13985a7e37d2c8fe0277b7386a9f861c39a6f164d815133b5fb02a691d43c7b79563b09d6ea78674af0ccecfef1b418f4d03bf52a9bc patch-6.6.21.xz
+cd73e92fbd2fe47bd756eeaae06b3927813bca528c2aecc7e5833797f0bb1d24cd15dec762088b1faaa8ca9785d8d30027aa6b4a419d030a7f1c7d078c8d6486 rpi-6.6.21-alpine.patch
+f014a9b3574df17a3f6e0d8a2c48aef4239f33a062d64704fd56ecd596d090bb0413c8cb2abd6ec3ceeee09fa66243b6a3f7b405657edbd9c7a6407d6ec79fef common-changes.config
"
diff --git a/main/linux-rpi/config-changes-rpi.armhf b/main/linux-rpi/common-changes.config
index b0628820c8f..6cee621b9f4 100644
--- a/main/linux-rpi/config-changes-rpi.armhf
+++ b/main/linux-rpi/common-changes.config
@@ -25,11 +25,10 @@ CONFIG_UEVENT_HELPER=y
CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
CONFIG_USB_DWC2=m
CONFIG_USB_ETH=m
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
CONFIG_RTC_DRV_DS1307=y
CONFIG_I2C_BCM2835=y
CONFIG_MEMCG=y
CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y
+CONFIG_PSI=y
diff --git a/main/linux-rpi/config-changes-rpi.aarch64 b/main/linux-rpi/config-changes-rpi.aarch64
deleted file mode 120000
index 514280e61ab..00000000000
--- a/main/linux-rpi/config-changes-rpi.aarch64
+++ /dev/null
@@ -1 +0,0 @@
-config-changes-rpi.armhf \ No newline at end of file
diff --git a/main/linux-rpi/config-changes-rpi.armv7 b/main/linux-rpi/config-changes-rpi.armv7
deleted file mode 120000
index 514280e61ab..00000000000
--- a/main/linux-rpi/config-changes-rpi.armv7
+++ /dev/null
@@ -1 +0,0 @@
-config-changes-rpi.armhf \ No newline at end of file
diff --git a/main/linux-rpi/config-changes-rpi2.armhf b/main/linux-rpi/config-changes-rpi2.armhf
deleted file mode 120000
index 514280e61ab..00000000000
--- a/main/linux-rpi/config-changes-rpi2.armhf
+++ /dev/null
@@ -1 +0,0 @@
-config-changes-rpi.armhf \ No newline at end of file
diff --git a/main/linux-rpi/config-changes-rpi2.armv7 b/main/linux-rpi/config-changes-rpi2.armv7
deleted file mode 120000
index 514280e61ab..00000000000
--- a/main/linux-rpi/config-changes-rpi2.armv7
+++ /dev/null
@@ -1 +0,0 @@
-config-changes-rpi.armhf \ No newline at end of file
diff --git a/main/linux-rpi/config-changes-rpi4.aarch64 b/main/linux-rpi/config-changes-rpi4.aarch64
deleted file mode 120000
index 514280e61ab..00000000000
--- a/main/linux-rpi/config-changes-rpi4.aarch64
+++ /dev/null
@@ -1 +0,0 @@
-config-changes-rpi.armhf \ No newline at end of file
diff --git a/main/linux-rpi/config-changes-rpi4.armv7 b/main/linux-rpi/config-changes-rpi4.armv7
deleted file mode 120000
index 514280e61ab..00000000000
--- a/main/linux-rpi/config-changes-rpi4.armv7
+++ /dev/null
@@ -1 +0,0 @@
-config-changes-rpi.armhf \ No newline at end of file
diff --git a/main/lksctp-tools/APKBUILD b/main/lksctp-tools/APKBUILD
index 288ae2f84a0..ff98edd6f21 100644
--- a/main/lksctp-tools/APKBUILD
+++ b/main/lksctp-tools/APKBUILD
@@ -1,13 +1,14 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lksctp-tools
pkgver=1.0.19
-pkgrel=0
+pkgrel=5
pkgdesc="User-space access to Linux Kernel SCTP"
-url="http://lksctp.sourceforge.net"
+url="https://lksctp.sourceforge.net/"
arch="all"
options="!check" # sctp_connectx in v4test fails on kernel 4.14
-license="GPL-2.0-only AND LGPL-2.1-or-later"
-makedepends="libtool automake autoconf linux-headers"
+license="GPL-2.0-or-later AND LGPL-2.1-or-later"
+depends_dev="linux-headers"
+makedepends="$depends_dev libtool automake autoconf"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc lib${pkgname%-tools}:libs"
source="$pkgname-$pkgver.tar.gz::https://github.com/sctp/lksctp-tools/archive/v$pkgver.tar.gz"
diff --git a/main/lld/APKBUILD b/main/lld/APKBUILD
new file mode 100644
index 00000000000..a7bd193d9a3
--- /dev/null
+++ b/main/lld/APKBUILD
@@ -0,0 +1,74 @@
+# Contributor: Eric Molitor <eric@molitor.org>
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Contributor: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=lld
+pkgver=17.0.6
+pkgrel=0
+_llvmver=${pkgver%%.*}
+pkgdesc="The LLVM Linker"
+url="https://llvm.org/"
+arch="all"
+license="Apache-2.0"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="
+ clang
+ cmake
+ compiler-rt
+ libedit-dev
+ libxml2-dev
+ llvm$_llvmver-dev
+ llvm$_llvmver-gtest
+ llvm$_llvmver-static
+ llvm$_llvmver-test-utils
+ llvm-libunwind-dev
+ patchelf
+ samurai
+ scudo-malloc
+ zlib-dev
+ "
+checkdepends="gtest-dev bash llvm$_llvmver-test-utils"
+subpackages="$pkgname-dbg $pkgname-libs $pkgname-dev $pkgname-doc"
+source="https://github.com/llvm/llvm-project/releases/download/llvmorg-${pkgver//_/-}/lld-${pkgver//_/}.src.tar.xz
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-${pkgver//_/-}/cmake-${pkgver//_/}.src.tar.xz
+ "
+builddir="$srcdir/$pkgname-${pkgver//_/}.src"
+
+prepare() {
+ default_prepare
+ mv "$srcdir"/cmake-${pkgver//_/}.src "$srcdir"/cmake
+}
+
+build() {
+ CFLAGS="$CFLAGS -O2 -DNDEBUG -g1" \
+ CXXFLAGS="$CXXFLAGS -O2 -DNDEBUG -g1" \
+ CC=clang CXX=clang++ \
+ cmake -B build -G Ninja -Wno-dev \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_SKIP_INSTALL_RPATH=ON \
+ -DBUILD_SHARED_LIBS=ON \
+ -DLLVM_INCLUDE_TESTS="$(want_check && echo ON || echo OFF)" \
+ -DLLVM_EXTERNAL_LIT=/usr/bin/lit \
+ -DLLD_BUILT_STANDALONE=ON \
+ -DCMAKE_EXE_LINKER_FLAGS="$LDFLAGS -Wl,-z,stack-size=2097152"
+ cmake --build build
+}
+
+check() {
+ ninja -C build check-lld
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ install -Dm644 "$builddir"/docs/ld.lld.1 -t "$pkgdir"/usr/share/man/man1/
+
+ # we have the scudo allocator available, so link lld to it to
+ # significantly improve performance, especially in LTO contexts
+ patchelf --add-needed libscudo.so "$pkgdir"/usr/bin/lld
+}
+
+sha512sums="
+55955fc24b3fb87012486618cf227a1640ad9a6d607c898d890337aa8c28f3e6a9ed48a52bd0ed57f365f0dc5081a6b3a037cb65da9a9f2cbc53a1527cb8db60 lld-17.0.6.src.tar.xz
+b2c5e404ca36542d44e1a7f2801bbcecbcf5f1e8c63b793bb2308228483406bdfe002720aadb913c0228cd2bbe5998465eaadc4a49fad6a5eb6ff907fa5fd45a cmake-17.0.6.src.tar.xz
+"
diff --git a/main/llvm-runtimes/APKBUILD b/main/llvm-runtimes/APKBUILD
new file mode 100644
index 00000000000..59fcd32db4a
--- /dev/null
+++ b/main/llvm-runtimes/APKBUILD
@@ -0,0 +1,153 @@
+# Contributor: Eric Molitor <eric@molitor.org>
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Contributor: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=llvm-runtimes
+# Note: Update together with llvm.
+pkgver=17.0.6
+_llvmver=${pkgver%%.*}
+pkgrel=0
+pkgdesc="LLVM Runtimes"
+url="https://llvm.org/"
+arch="all"
+license="Apache-2.0"
+makedepends="
+ clang
+ cmake
+ linux-headers
+ llvm$_llvmver-dev
+ llvm$_llvmver-static
+ python3
+ samurai
+ "
+subpackages="
+ libc++:libcxx
+ libc++-static:libcxx_static
+ libc++-dev:libcxx_dev
+ compiler-rt:rt
+ llvm-libunwind:libunwind
+ llvm-libunwind-static:libunwind_static
+ llvm-libunwind-dev:libunwind_dev
+ "
+source="https://github.com/llvm/llvm-project/releases/download/llvmorg-${pkgver//_/-}/llvm-project-${pkgver//_/}.src.tar.xz
+ armv6-arch.patch.noauto
+ compiler-rt-lsan-dtp-offset.patch
+ compiler-rt-ppc-fixes.patch
+ compiler-rt-sanitizer-supported-arch.patch
+ libunwind-link-libssp.patch
+ fix-msan-with-musl.patch
+ "
+builddir="$srcdir/llvm-project-${pkgver//_/}.src"
+options="!check"
+
+case "$CARCH" in
+# Sanitizers are broken on other arches.
+# Keep in sync with compiler-rt-sanitizer-supported-arch.patch.
+aarch64|ppc64le|x86_64)
+ _build_sanitizers='ON'
+ ;;
+*)
+ _build_sanitizers='OFF'
+ ;;
+esac
+
+prepare() {
+ default_prepare
+
+ case "$CARCH" in
+ armhf)
+ patch -Np1 < "$srcdir"/armv6-arch.patch.noauto
+ ;;
+ esac
+}
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ local crossopts="
+ -DCMAKE_SYSTEM_NAME=Linux
+ -DCMAKE_HOST_SYSTEM_NAME=Linux
+ -DLIBUNWIND_SYSROOT=$CBUILDROOT
+ "
+ fi
+
+ CC=clang \
+ CXX=clang++ \
+ CFLAGS="$CFLAGS -DNDEBUG" \
+ CXXFLAGS="$CXXFLAGS -DNDEBUG" \
+ cmake -B build -G Ninja -Wno-dev -S runtimes \
+ -DLLVM_ENABLE_RUNTIMES="compiler-rt;libunwind;libcxx;libcxxabi" \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DLIBCXX_HAS_MUSL_LIBC=ON \
+ -DLIBUNWIND_HAS_NODEFAULTLIBS_FLAG=OFF \
+ -DCOMPILER_RT_INCLUDE_TESTS="$(want_check && echo ON || echo OFF)" \
+ -DCOMPILER_RT_BUILD_SANITIZERS=$_build_sanitizers \
+ -DCOMPILER_RT_INSTALL_PATH="/usr/lib/llvm$_llvmver/lib/clang/$_llvmver" \
+ -DCOMPILER_RT_BUILD_GWP_ASAN=OFF \
+ -DCMAKE_VERBOSE_MAKEFILE=ON \
+ $crossopts
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ mkdir -p "$pkgdir"/usr/include/mach-o
+ cp libunwind/include/*.h "$pkgdir"/usr/include/
+ cp libunwind/include/mach-o/*.h "$pkgdir"/usr/include/mach-o/
+}
+
+libunwind() {
+ pkgdesc="LLVM libunwind library"
+ depends="!libunwind-dev"
+
+ amove usr/lib/libunwind.so.*
+}
+
+libunwind_static() {
+ pkgdesc="LLVM libunwind library (static)"
+
+ amove usr/lib/libunwind.a
+}
+
+libunwind_dev() {
+ pkgdesc="LLVM libunwind library (development files)"
+
+ amove usr/lib/libunwind.so
+ amove usr/include
+}
+
+rt() {
+ pkgdesc="LLVM compiler-rt runtime libraries"
+
+ amove usr/lib/llvm$_llvmver/lib/clang/$_llvmver
+}
+
+libcxx() {
+ pkgdesc="LLVM libc++ library"
+
+ amove usr/lib/libc++*.so.*
+}
+
+libcxx_static() {
+ pkgdesc="LLVM libc++ library (static libs)"
+
+ amove usr/lib/libc++*.a
+}
+
+libcxx_dev() {
+ pkgdesc="LLVM libc++ library (development files)"
+
+ amove usr/lib/libc++*.so
+ amove usr/include/c++
+}
+
+sha512sums="
+6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30 llvm-project-17.0.6.src.tar.xz
+5e7bbddbaea902e5ba5cd4db78bedbeef216f44fdd9b8f73efde6c09f40115c078649a109ffa61fefa0ee2f26655c038a48589ecac83068a47d60e9248c5dff1 armv6-arch.patch.noauto
+7c2cbd095b863f735842aaa8f0daecbf0282200fc58f1394139cee30d53c4a738757e38cbf0ec734398ee827e8a47314592bd7dc9768ef5c3664db682680e5a1 compiler-rt-lsan-dtp-offset.patch
+aaef886f71c5499da18ff18937404ab641cbc3a540ee9e4eed7ae6895970863e6d01ed598f8b2f1512936f33d6dd122cd7a00545afaf710a8026c729a3af720c compiler-rt-ppc-fixes.patch
+448ad39865b1a86d69c80b6626500e16509834787944f0b402b3eb3b2d6d1c034073b4004b7e1eee6afdc21b553945e65943b79426105503012c4dfac1ee2e7b compiler-rt-sanitizer-supported-arch.patch
+102d050172d1f20c273515b8ccf05ee7e756287f1d74529116ac061f0119da5ce4e5ea3d1a5d21c6395256b5d0538aa928302a6cf39ae59f41aa35929b265e2f libunwind-link-libssp.patch
+4295d104f3615d0ccae3f17e60a8e00c7df5b899fb790c746033f48e76c2b020e312639e03148d6162ce471a3c3b45461a5a82ac4eed407fafc670223656b572 fix-msan-with-musl.patch
+"
diff --git a/main/llvm-runtimes/armv6-arch.patch.noauto b/main/llvm-runtimes/armv6-arch.patch.noauto
new file mode 100644
index 00000000000..7de1183a5a1
--- /dev/null
+++ b/main/llvm-runtimes/armv6-arch.patch.noauto
@@ -0,0 +1,18 @@
+the build system recognises armhf as armv7 (which it usually is..)
+but for us that is wrong. it compiles anyway since clang is a cross compiler.
+diff --git a/compiler-rt/cmake/base-config-ix.cmake b/compiler-rt/cmake/base-config-ix.cmake
+index 0ad95d57f..795ca5deb 100644
+--- a/compiler-rt/cmake/base-config-ix.cmake
++++ b/compiler-rt/cmake/base-config-ix.cmake
+@@ -236,10 +236,7 @@ macro(test_targets)
+ if(WIN32)
+ test_target_arch(arm "" "" "")
+ else()
+- test_target_arch(armv4t "" "-march=armv4t" "-mfloat-abi=soft")
+- test_target_arch(armv6m "" "-march=armv6m" "-mfloat-abi=soft")
+- test_target_arch(arm "" "-march=armv7-a" "-mfloat-abi=soft")
+- test_target_arch(armhf "" "-march=armv7-a" "-mfloat-abi=hard")
++ test_target_arch(armhf "" "-march=armv6zk" "-mfloat-abi=hard")
+ endif()
+ elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "avr")
+ test_target_arch(avr "__AVR__" "--target=avr")
diff --git a/main/llvm-runtimes/compiler-rt-lsan-dtp-offset.patch b/main/llvm-runtimes/compiler-rt-lsan-dtp-offset.patch
new file mode 100644
index 00000000000..a5617f56c05
--- /dev/null
+++ b/main/llvm-runtimes/compiler-rt-lsan-dtp-offset.patch
@@ -0,0 +1,70 @@
+more ppc64le sanitizer fixes
+From 01de315ff348fec5b7c17a6ae94ce517d23a2f0c Mon Sep 17 00:00:00 2001
+From: Daniel Kolesa <daniel@octaforge.org>
+Date: Sat, 5 Nov 2022 23:39:29 +0100
+Subject: [PATCH] rudimentary lsan musl fixes on some archs (ppc64le)
+
+---
+ .../sanitizer_common/sanitizer_linux_libcdep.cpp | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
+
+diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
+index d74851c43..f13fc84be 100644
+--- a/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
++++ b/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp
+@@ -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 @@ static uptr ThreadDescriptorSizeFallback() {
+ return val;
+ }
+
++#if SANITIZER_GLIBC
+ uptr ThreadDescriptorSize() {
+ uptr val = atomic_load_relaxed(&thread_descriptor_size);
+ if (val)
+@@ -303,6 +312,9 @@ uptr ThreadDescriptorSize() {
+ 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 @@ static int CollectStaticTlsBlocks(struct dl_phdr_info *info, size_t size,
+ 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 @@ static void GetTls(uptr *addr, uptr *size) {
+ 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
+--
+2.38.1
+
diff --git a/main/llvm-runtimes/compiler-rt-ppc-fixes.patch b/main/llvm-runtimes/compiler-rt-ppc-fixes.patch
new file mode 100644
index 00000000000..6738ebc55c9
--- /dev/null
+++ b/main/llvm-runtimes/compiler-rt-ppc-fixes.patch
@@ -0,0 +1,118 @@
+fixes some sanitizers on ppc64le
+From 95fa3d049e35b141f0c2c3b3b0abb6c1b3702e46 Mon Sep 17 00:00:00 2001
+From: Daniel Kolesa <daniel@octaforge.org>
+Date: Wed, 6 Apr 2022 00:54:03 +0200
+Subject: [PATCH 07/19] compiler-rt: ppc sanitizer fixes
+
+---
+ .../lib/sanitizer_common/sanitizer_linux.cpp | 4 ++
+ .../sanitizer_platform_limits_posix.cpp | 2 +-
+ .../sanitizer_stoptheworld_linux_libcdep.cpp | 2 +-
+ compiler-rt/lib/xray/xray_powerpc64.inc | 37 ++++++++++++++++++-
+ 4 files changed, 42 insertions(+), 3 deletions(-)
+
+diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
+index 24c6acaa9..5d79dea48 100644
+--- a/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
++++ b/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
+@@ -74,6 +74,10 @@
+ #include <sys/utsname.h>
+ #endif
+
++#if SANITIZER_LINUX && defined(__powerpc__)
++#include <asm/ptrace.h>
++#endif
++
+ #if SANITIZER_LINUX && !SANITIZER_ANDROID
+ #include <sys/personality.h>
+ #endif
+diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
+index fc01498aa..2fd663d88 100644
+--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
++++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
+@@ -94,7 +94,7 @@
+ # include <utime.h>
+ # include <sys/ptrace.h>
+ # if defined(__mips64) || defined(__aarch64__) || defined(__arm__) || \
+- defined(__hexagon__) || defined(__loongarch__) ||SANITIZER_RISCV64
++ defined(__hexagon__) || defined(__loongarch__) || defined(__powerpc__) || SANITIZER_RISCV64
+ # include <asm/ptrace.h>
+ # ifdef __arm__
+ typedef struct user_fpregs elf_fpregset_t;
+diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
+index 13b90ce9b..f8702753e 100644
+--- a/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
++++ b/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
+@@ -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_LOONGARCH64) && \
++#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64 || SANITIZER_LOONGARCH64) && \
+ !SANITIZER_ANDROID
+ // GLIBC 2.20+ sys/user does not include asm/ptrace.h
+ # include <asm/ptrace.h>
+diff --git a/compiler-rt/lib/xray/xray_powerpc64.inc b/compiler-rt/lib/xray/xray_powerpc64.inc
+index 7e872b5b4..9616a09d8 100644
+--- a/compiler-rt/lib/xray/xray_powerpc64.inc
++++ b/compiler-rt/lib/xray/xray_powerpc64.inc
+@@ -12,7 +12,7 @@
+
+ #include <cstdint>
+ #include <mutex>
+-#ifdef __linux__
++#ifdef __GLIBC__
+ #include <sys/platform/ppc.h>
+ #elif defined(__FreeBSD__)
+ #include <sys/types.h>
+@@ -27,6 +27,14 @@ uint64_t __ppc_get_timebase_freq (void)
+ sysctlbyname("kern.timecounter.tc.timebase.frequency", &tb_freq, &length, nullptr, 0);
+ return tb_freq;
+ }
++#else
++#include <cctype>
++#include <cstdio>
++#include <cstring>
++#include <cstdlib>
++
++#define __ppc_get_timebase __builtin_ppc_get_timebase
++
+ #endif
+
+ #include "xray_defs.h"
+@@ -41,7 +48,35 @@ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT {
+ inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT {
+ static std::mutex M;
+ std::lock_guard<std::mutex> Guard(M);
++#ifdef __GLIBC__
+ return __ppc_get_timebase_freq();
++#else
++ /* FIXME: a less dirty implementation? */
++ static uint64_t base;
++ if (!base) {
++ FILE *f = fopen("/proc/cpuinfo", "rb");
++ if (f) {
++ ssize_t nr;
++ /* virtually always big enough to hold the line */
++ char buf[512];
++ while (fgets(buf, sizeof(buf), f)) {
++ char *ret = strstr(buf, "timebase");
++ if (!ret) {
++ continue;
++ }
++ ret += sizeof("timebase") - 1;
++ ret = strchr(ret, ':');
++ if (!ret) {
++ continue;
++ }
++ base = strtoul(ret + 1, nullptr, 10);
++ break;
++ }
++ fclose(f);
++ }
++ }
++ return base;
++#endif
+ }
+
+ inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT {
diff --git a/main/compiler-rt/sanitizer-supported-arch.patch b/main/llvm-runtimes/compiler-rt-sanitizer-supported-arch.patch
index 05db295a802..c5ef4437cb9 100644
--- a/main/compiler-rt/sanitizer-supported-arch.patch
+++ b/main/llvm-runtimes/compiler-rt-sanitizer-supported-arch.patch
@@ -1,16 +1,16 @@
Sanitizer code is broken on armhf, armv7, s390x, x86, and probably riscv64,
i.e. enable it only on x86_64, aarch64, and ppc64le.
---- a/cmake/Modules/AllSupportedArchDefs.cmake
-+++ b/cmake/Modules/AllSupportedArchDefs.cmake
+--- a/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
++++ b/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
@@ -22,9 +22,7 @@
set(X86_64 x86_64 x86_64h)
endif()
-set(ALL_SANITIZER_COMMON_SUPPORTED_ARCH ${X86} ${X86_64} ${PPC64} ${RISCV64}
- ${ARM32} ${ARM64} ${MIPS32} ${MIPS64} ${S390X} ${SPARC} ${SPARCV9}
-- ${HEXAGON})
-+set(ALL_SANITIZER_COMMON_SUPPORTED_ARCH ${X86_64} ${ARM64} ${MIPS32})
+- ${HEXAGON} ${LOONGARCH64})
++set(ALL_SANITIZER_COMMON_SUPPORTED_ARCH ${X86_64} ${ARM64} ${PPC64})
set(ALL_ASAN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${RISCV64}
${MIPS32} ${MIPS64} ${PPC64} ${S390X} ${SPARC} ${SPARCV9} ${HEXAGON})
- set(ALL_CRT_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${PPC32}
+ ${LOONGARCH64})
diff --git a/main/llvm-runtimes/fix-msan-with-musl.patch b/main/llvm-runtimes/fix-msan-with-musl.patch
new file mode 100644
index 00000000000..1ca7896d889
--- /dev/null
+++ b/main/llvm-runtimes/fix-msan-with-musl.patch
@@ -0,0 +1,37 @@
+From 8904ed80c262e973c0da7758337f586c9854f38a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren+git@soeren-tempel.net>
+Date: Thu, 15 Jun 2023 09:28:57 +0200
+Subject: [PATCH] msan: fix ifdef guard for getrlimit etc interceptors
+
+These interceptors need struct_ustat_sz, struct_rlimit64_sz, and
+struct_statvfs64_sz which are defined in the following file:
+
+ compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
+
+However, these variables are only defined for GLIBC sanitizers.
+As such, if we attempt to use MSAN on a Linux system that does not
+utilize glibc (e.g. Alpine Linux) then we will get a linker error
+complaining about undefined references to __sanitizer::struct_rlimit64_sz
+and __sanitizer::struct_rlimit64_sz.
+
+This patch fixes this by only defining the interceptors that require
+these constants if SANITIZER_GLIBC is defined. Thereby aligning the
+macro guards of msan_interceptors.cpp with those of
+sanitizer_platform_limits_posix.cpp.
+---
+ compiler-rt/lib/msan/msan_interceptors.cpp | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/compiler-rt/lib/msan/msan_interceptors.cpp b/compiler-rt/lib/msan/msan_interceptors.cpp
+index 6f57c33ee..349eff549 100644
+--- a/compiler-rt/lib/msan/msan_interceptors.cpp
++++ b/compiler-rt/lib/msan/msan_interceptors.cpp
+@@ -822,7 +822,7 @@ INTERCEPTOR(int, getrlimit, int resource, void *rlim) {
+ INTERCEPTOR_GETRLIMIT_BODY(getrlimit, resource, rlim);
+ }
+
+-#if !SANITIZER_FREEBSD && !SANITIZER_NETBSD
++#if SANITIZER_GLIBC
+ INTERCEPTOR(int, __getrlimit, int resource, void *rlim) {
+ INTERCEPTOR_GETRLIMIT_BODY(__getrlimit, resource, rlim);
+ }
diff --git a/main/llvm-runtimes/libunwind-link-libssp.patch b/main/llvm-runtimes/libunwind-link-libssp.patch
new file mode 100644
index 00000000000..11f9cef5f24
--- /dev/null
+++ b/main/llvm-runtimes/libunwind-link-libssp.patch
@@ -0,0 +1,22 @@
+diff --git a/libunwind/src/CMakeLists.txt b/libunwind/src/CMakeLists.txt
+index bb2ada9..478f5b8 100644
+--- a/libunwind/src/CMakeLists.txt
++++ b/libunwind/src/CMakeLists.txt
+@@ -126,7 +126,7 @@ if(CMAKE_C_COMPILER_ID STREQUAL MSVC)
+ else()
+ target_compile_options(unwind_shared_objects PRIVATE -fno-rtti)
+ endif()
+-target_link_libraries(unwind_shared_objects PRIVATE unwind-headers ${LIBUNWIND_LIBRARIES})
++target_link_libraries(unwind_shared_objects PRIVATE unwind-headers ${LIBUNWIND_LIBRARIES} -lssp_nonshared)
+ target_compile_options(unwind_shared_objects PUBLIC "${LIBUNWIND_ADDITIONAL_COMPILE_FLAGS}")
+ target_link_libraries(unwind_shared_objects PUBLIC "${LIBUNWIND_ADDITIONAL_LIBRARIES}")
+ set_target_properties(unwind_shared_objects
+@@ -166,7 +166,7 @@ if(CMAKE_C_COMPILER_ID STREQUAL MSVC)
+ else()
+ target_compile_options(unwind_static_objects PRIVATE -fno-rtti)
+ endif()
+-target_link_libraries(unwind_static_objects PRIVATE unwind-headers ${LIBUNWIND_LIBRARIES})
++target_link_libraries(unwind_static_objects PRIVATE unwind-headers ${LIBUNWIND_LIBRARIES} -lssp_nonshared)
+ target_compile_options(unwind_static_objects PUBLIC "${LIBUNWIND_ADDITIONAL_COMPILE_FLAGS}")
+ target_link_libraries(unwind_static_objects PUBLIC "${LIBUNWIND_ADDITIONAL_LIBRARIES}")
+ set_target_properties(unwind_static_objects
diff --git a/main/llvm13/APKBUILD b/main/llvm13/APKBUILD
deleted file mode 100644
index 5a9a088f6cc..00000000000
--- a/main/llvm13/APKBUILD
+++ /dev/null
@@ -1,298 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Contributor: Martell Malone <martell@marinelayer.io>
-# Contributor: Travis Tilley <ttilley@gmail.com>
-# Contributor: Mitch Tishmack <mitch.tishmack@gmail.com>
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Contributor: Ariadne Conill <ariadne@dereferenced.org>
-# Contributor: omni <omni+alpine@hack.org>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-_pkgname=llvm
-pkgver=13.0.1
-_majorver=${pkgver%%.*}
-pkgname=$_pkgname$_majorver
-pkgrel=3
-pkgdesc="Low Level Virtual Machine compiler system, version $_majorver"
-arch="all"
-url="https://llvm.org/"
-license="Apache-2.0"
-depends_dev="$pkgname=$pkgver-r$pkgrel"
-# See https://gitlab.alpinelinux.org/alpine/aports/-/commit/51d2fba931fb2ef0046dea19405a9290c8735051#note_234651
-[ -z "$BOOTSTRAP" ] && depends_dev="$default_dev $pkgname-test-utils=$pkgver-r$pkgrel"
-makedepends_host="binutils-dev libffi-dev zlib-dev libxml2-dev"
-makedepends_build="cmake chrpath python3 py3-setuptools samurai"
-# diffutils for diff: unrecognized option: strip-trailing-cr
-# coreutils for 'od' binary
-checkdepends="bash coreutils diffutils"
-subpackages="$pkgname-static $pkgname-libs $pkgname-dev $pkgname-test-utils:_test_utils"
-source="https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/llvm-$pkgver.src.tar.xz
- 0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch
- fix-memory-mf_exec-on-aarch64.patch
- fix-LLVMConfig-cmake-install-prefix.patch
- "
-builddir="$srcdir/$_pkgname-$pkgver.src"
-
-# If crosscompiling, we need llvm-tblgen on the build machine.
-if [ -n "$BOOTSTRAP" ]; then
- makedepends_build="$makedepends_build cmd:llvm-tblgen"
- cmake_cross_options="
- -DCMAKE_CROSSCOMPILING=ON
- -DLLVM_TABLEGEN=/usr/bin/llvm-tblgen
- "
-fi
-
-# Whether is this package the default (latest) LLVM version.
-_default_llvm="no"
-
-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
-
- # Substitute python hashbangs with python3
- find . -name '*.py' -type f -exec \
- sed -i 's,^#!/usr/bin/env python$,#!/usr/bin/env python3,' {} +
- find utils -type f -exec \
- sed -i 's,^#!/usr/bin/env python$,#!/usr/bin/env python3,' {} +
- find runtimes -type f -exec \
- sed -i 's,^#!/usr/bin/env python$,#!/usr/bin/env python3,' {} +
-
- # Known broken test on musl
- rm -v test/CodeGen/AArch64/wineh4.mir
- # https://bugs.llvm.org/show_bug.cgi?id=48313
- rm -v test/ExecutionEngine/Interpreter/intrinsics.ll
-
- case "$CARCH" in
- x86) rm -v test/Object/macho-invalid.test \
- test/tools/llvm-size/radix.test
- ;;
- armv7) rm -v test/tools/llvm-readobj/ELF/dependent-libraries.test \
- test/Object/macho-invalid.test \
- test/tools/llvm-size/radix.test
- ;;
- armhf) rm -v test/tools/llvm-readobj/ELF/dependent-libraries.test \
- test/Object/macho-invalid.test \
- test/tools/llvm-size/radix.test \
- test/ExecutionEngine/frem.ll \
- unittests/ExecutionEngine/Orc/OrcCAPITest.cpp
- sed -i "/OrcCAPITest.cpp/d" \
- unittests/ExecutionEngine/Orc/CMakeLists.txt
- ;;
- esac
-
- # Known broken codegen for Hexagon target, reported upstream.
- # https://bugs.llvm.org/show_bug.cgi?id=49592
- rm -v \
- test/CodeGen/Hexagon/csr-stubs-spill-threshold.ll \
- test/CodeGen/Hexagon/long-calls.ll \
- test/CodeGen/Hexagon/mlong-calls.ll \
- test/CodeGen/Hexagon/pic-regusage.ll \
- test/CodeGen/Hexagon/runtime-stkchk.ll \
- test/CodeGen/Hexagon/swp-memrefs-epilog.ll \
- test/CodeGen/Hexagon/vararg-formal.ll \
- test/tools/llvm-objcopy/MachO/universal-object.test \
- test/DebugInfo/X86/vla-multi.ll
-
-}
-
-build() {
- # Auto-detect it by guessing either.
- local ffi_include_dir="$(pkg-config --cflags-only-I libffi | sed 's|^-I||g')"
- case "$CARCH" in
- x86) LDFLAGS="$LDFLAGS -Wl,--no-keep-memory";; # avoid exhausting memory limit
- esac
-
- # NOTE: DO NOT change CMAKE_BUILD_TYPE! Buildmodes like None will enable
- # debug assertions for LLVM!
- cmake -B build -G Ninja -Wno-dev \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_INSTALL_PREFIX=/$_prefix \
- -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_INSTALL_UTILS=ON \
- -DLLVM_HOST_TRIPLE="$CHOST" \
- -DLLVM_INCLUDE_EXAMPLES=OFF \
- -DLLVM_LINK_LLVM_DYLIB=ON \
- -DLLVM_APPEND_VC_REV=OFF \
- $cmake_cross_options
-
- cmake --build build --target llvm-tblgen
- cmake --build build
-
- python3 utils/lit/setup.py build
-}
-
-check() {
- ninja -C build check-llvm
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --install build
-
- cd "$pkgdir"/$_prefix
-
- # Remove RPATHs.
- file lib/*.so bin/* \
- | awk -F: '$2~/ELF/{print $1}' \
- | xargs -r chrpath -d
-
- # Symlink files from /usr/lib/llvm*/bin to /usr/bin.
- mkdir -p "$pkgdir"/usr/bin
- local name newname path
- for path in bin/*; do
- name=${path##*/}
- # Add version infix/suffix to the executable name.
- case "$name" in
- llvm-*) newname="llvm$_majorver-${name#llvm-}";;
- *) newname="$name$_majorver";;
- esac
- # If this package provides=llvm (i.e. it's the default/latest
- # llvm package), omit version infix/suffix.
- if [ "$_default_llvm" = yes ]; then
- newname=$name
- fi
- case "$name" in
- FileCheck | obj2yaml | yaml2obj) continue;;
- esac
- ln -s ../lib/llvm$_majorver/bin/$name "$pkgdir"/usr/bin/$newname
- done
-
- # Move /usr/lib/$pkgname/include/ into /usr/include/$pkgname/
- # and symlink it back.
- mkdir "$pkgdir"/usr/include/
- mv include "$pkgdir"/usr/include/$pkgname
- ln -s ../../include/$pkgname include
-
- # Move /usr/lib/$pkgname/lib/cmake/llvm/ into /usr/lib/cmake/$pkgname/
- # and symlink it back.
- mkdir "$pkgdir"/usr/lib/cmake/
- mv lib/cmake/llvm "$pkgdir"/usr/lib/cmake/$pkgname
- ln -s ../../../cmake/$pkgname lib/cmake/llvm
-}
-
-static() {
- pkgdesc="LLVM $_majorver static libraries"
- _common_subpkg
-
- _mv "$pkgdir"/$_prefix/lib/*.a "$subpkgdir"/$_prefix/lib/
-}
-
-libs() {
- pkgdesc="LLVM $_majorver runtime library"
- local soname="libLLVM-$_majorver.so"
- local soname2="libLLVM-$pkgver.so"
-
- mkdir -p "$subpkgdir"
- cd "$subpkgdir"
-
- # 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.
- _mv "$pkgdir"/$_prefix/lib/$soname usr/lib/
- ln -s $soname usr/lib/$soname2
-
- # And also symlink it back to the LLVM prefix.
- mkdir -p $_prefix/lib
- ln -s ../../$soname $_prefix/lib/$soname
- ln -s ../../$soname $_prefix/lib/$soname2
-}
-
-dev() {
- _common_subpkg
- default_dev
- cd "$subpkgdir"
-
- _mv "$pkgdir"/$_prefix/lib $_prefix/
- _mv "$pkgdir"/$_prefix/include $_prefix/
-
- _mv "$pkgdir"/$_prefix/bin/llvm-config $_prefix/bin/
-
- # Move libLTO and LLVMgold back
- _mv "$subpkgdir"/$_prefix/lib/libLTO.so.* \
- "$subpkgdir"/$_prefix/lib/LLVMgold* \
- "$pkgdir"/$_prefix/lib
-
- if [ "$_default_llvm" = yes ]; then
- ln -sf llvm$_majorver usr/lib/cmake/llvm
- ln -sf llvm$_majorver/lib/LLVMgold.so "$subpkgdir"/usr/lib/
- ln -sf llvm$_majorver/lib/libLTO.so "$subpkgdir"/usr/lib/
- fi
-}
-
-_test_utils() {
- pkgdesc="LLVM $_majorver utilities for executing LLVM and Clang style test suites"
- depends="python3 py3-setuptools"
- _common_subpkg
- replaces=""
-
- local litver=$(python3 "$builddir"/utils/lit/setup.py --version 2>/dev/null \
- | sed 's/\.dev.*$//')
- test -n "$litver"
- provides="$provides lit=$litver-r$pkgrel"
-
- amove usr/lib/llvm13/bin/FileCheck \
- usr/lib/llvm13/bin/count \
- usr/lib/llvm13/bin/not \
- usr/bin/count13 \
- usr/bin/not13
-
- cd "$builddir"/build
-
- 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
-}
-
-_mv() {
- local dest; for dest; do true; done # get last argument
- mkdir -p "$dest"
- mv "$@"
-}
-
-sha512sums="
-05fbe8708ac3d0dfef3a9135ee88185a95ed492095429a97d33b8aadb0187e59ad42d1a7184f02b5c84fdd31f3d7227c65bd292ed0aa039b29522e59cf90a965 llvm-13.0.1.src.tar.xz
-6021b5a39843d645a8c63d558568f120d0d91a1ce209e46f0b980253fafb18dfc2078ef39cf63b0900f4313e3c5636320b3c179ff7a4e220d06aec2455063993 0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch
-dd5efd88abdd13db3b17bde8735c2ddb1ed1ac690a8ab06072e3e91f87d7ede924dcb513ee31b855d304fe43246619e5fa83fcbaeabb256b3b96ff4ebaf3b110 fix-memory-mf_exec-on-aarch64.patch
-362c2ca890e9080a055667754d2687c9ff5a729b516674380569198f779473d3d8c3a6caccd72b34e1f5704efc182b68446d997429377cda59cf8d9dd0a6490d fix-LLVMConfig-cmake-install-prefix.patch
-"
diff --git a/main/llvm13/fix-LLVMConfig-cmake-install-prefix.patch b/main/llvm13/fix-LLVMConfig-cmake-install-prefix.patch
deleted file mode 100644
index 4516ebe0ee7..00000000000
--- a/main/llvm13/fix-LLVMConfig-cmake-install-prefix.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-Fix LLVMConfig.cmake being generated to use correct LLVM_INSTALL_PREFIX
-(e.g. /usr/lib/llvm5).
-
-This is needed e.g. for building lldb.
-
---- a/cmake/modules/CMakeLists.txt
-+++ b/cmake/modules/CMakeLists.txt
-@@ -99,15 +99,7 @@
-
- # Generate LLVMConfig.cmake for the install tree.
- set(LLVM_CONFIG_CODE "
--# Compute the installation prefix from this LLVMConfig.cmake file location.
--get_filename_component(LLVM_INSTALL_PREFIX \"\${CMAKE_CURRENT_LIST_FILE}\" PATH)")
--# Construct the proper number of get_filename_component(... PATH)
--# calls to compute the installation prefix.
--string(REGEX REPLACE "/" ";" _count "${LLVM_INSTALL_PACKAGE_DIR}")
--foreach(p ${_count})
-- set(LLVM_CONFIG_CODE "${LLVM_CONFIG_CODE}
--get_filename_component(LLVM_INSTALL_PREFIX \"\${LLVM_INSTALL_PREFIX}\" PATH)")
--endforeach(p)
-+set(LLVM_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")")
- set(LLVM_CONFIG_INCLUDE_DIRS "\${LLVM_INSTALL_PREFIX}/include")
- set(LLVM_CONFIG_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}")
- set(LLVM_CONFIG_MAIN_INCLUDE_DIR "${LLVM_CONFIG_INCLUDE_DIRS}")
diff --git a/main/llvm14/0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch b/main/llvm15/0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch
index b5a6e353247..e0cb43a2257 100644
--- a/main/llvm14/0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch
+++ b/main/llvm15/0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch
@@ -9,8 +9,8 @@ Subject: [PATCH] Disable dynamic lib tests for musl's dlclose() is noop
diff --git a/unittests/Support/CMakeLists.txt b/unittests/Support/CMakeLists.txt
index 641163e..4f508d9 100644
---- a/unittests/Support/CMakeLists.txt
-+++ b/unittests/Support/CMakeLists.txt
+--- a/llvm/unittests/Support/CMakeLists.txt
++++ b/llvm/unittests/Support/CMakeLists.txt
@@ -124,5 +124,5 @@
if(NOT LLVM_INTEGRATED_CRT_ALLOC)
diff --git a/main/llvm14/APKBUILD b/main/llvm15/APKBUILD
index 0e464a59418..7244736050f 100644
--- a/main/llvm14/APKBUILD
+++ b/main/llvm15/APKBUILD
@@ -5,49 +5,61 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Contributor: Ariadne Conill <ariadne@dereferenced.org>
# Contributor: omni <omni+alpine@hack.org>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
_pkgname=llvm
-pkgver=14.0.6
+pkgver=15.0.7
_majorver=${pkgver%%.*}
pkgname=$_pkgname$_majorver
-pkgrel=0
+pkgrel=13
pkgdesc="Low Level Virtual Machine compiler system, version $_majorver"
arch="all"
url="https://llvm.org/"
license="Apache-2.0"
-depends_dev="$pkgname=$pkgver-r$pkgrel"
+install="$pkgname.pre-upgrade"
+depends_dev="$pkgname=$pkgver-r$pkgrel libffi-dev zlib-dev zstd-dev"
# See https://gitlab.alpinelinux.org/alpine/aports/-/commit/51d2fba931fb2ef0046dea19405a9290c8735051#note_234651
-[ -z "$BOOTSTRAP" ] && depends_dev="$default_dev $pkgname-test-utils=$pkgver-r$pkgrel"
-makedepends_host="binutils-dev libffi-dev zlib-dev libxml2-dev"
+[ -z "$BOOTSTRAP" ] && depends_dev="$depends_dev $pkgname-test-utils=$pkgver-r$pkgrel"
+makedepends_host="$depends_dev binutils-dev libxml2-dev"
makedepends_build="cmake chrpath python3 py3-setuptools samurai"
# diffutils for diff: unrecognized option: strip-trailing-cr
# coreutils for 'od' binary
checkdepends="bash coreutils diffutils"
subpackages="$pkgname-static $pkgname-libs $pkgname-dev $pkgname-test-utils:_test_utils"
-source="https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/llvm-$pkgver.src.tar.xz
+source="https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/llvm-project-$pkgver.src.tar.xz
0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch
+ allocscore.patch
fix-memory-mf_exec-on-aarch64.patch
install-prefix.patch
+ lfs64.patch
+ llvm-stack-size.patch
+ rust-feature-tables.patch
"
-builddir="$srcdir/$_pkgname-$pkgver.src"
+builddir="$srcdir/$_pkgname-project-$pkgver.src"
+
+# Whether is this package the default (latest) LLVM version.
+_default_llvm="no"
# If crosscompiling, we need llvm-tblgen on the build machine.
-if [ -n "$BOOTSTRAP" ]; then
- makedepends_build="$makedepends_build cmd:llvm-tblgen"
+if [ "$CBUILD" != "$CHOST" ]; then
+ _llvm_tblgen="llvm-tblgen"
+ if [ "$_default_llvm" = no ]; then
+ _llvm_tblgen="llvm$_majorver-tblgen"
+ fi
+ makedepends_build="$makedepends_build cmd:$_llvm_tblgen"
cmake_cross_options="
-DCMAKE_CROSSCOMPILING=ON
- -DLLVM_TABLEGEN=/usr/bin/llvm-tblgen
+ -DLLVM_TABLEGEN=/usr/bin/$_llvm_tblgen
"
fi
-# 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
+# explicit override for previous version as well
+replaces="llvm14"
+
# 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
@@ -71,13 +83,7 @@ _prefix="usr/lib/llvm$_majorver"
prepare() {
default_prepare
- # Substitute python hashbangs with python3
- find . -name '*.py' -type f -exec \
- sed -i 's,^#!/usr/bin/env python$,#!/usr/bin/env python3,' {} +
- find utils -type f -exec \
- sed -i 's,^#!/usr/bin/env python$,#!/usr/bin/env python3,' {} +
- find runtimes -type f -exec \
- sed -i 's,^#!/usr/bin/env python$,#!/usr/bin/env python3,' {} +
+ cd llvm
# Known broken test on musl
rm -v test/CodeGen/AArch64/wineh4.mir
@@ -85,22 +91,24 @@ prepare() {
rm -v test/ExecutionEngine/Interpreter/intrinsics.ll
case "$CARCH" in
- x86) rm -v test/Object/macho-invalid.test \
- test/tools/llvm-size/radix.test
+ x86)
+ rm -v test/Object/macho-invalid.test \
+ test/tools/llvm-size/radix.test \
+ unittests/Support/JSONTest.cpp
+ sed -i "/JSONTest.cpp/d" \
+ unittests/Support/CMakeLists.txt
;;
- armv7) rm -v test/tools/llvm-readobj/ELF/dependent-libraries.test \
- test/Object/macho-invalid.test \
- test/tools/llvm-size/radix.test \
- test/tools/llvm-dwarfdump/X86/prettyprint_types.s \
- test/tools/llvm-dwarfdump/X86/simplified-template-names.s
- ;;
- armhf) rm -v test/tools/llvm-readobj/ELF/dependent-libraries.test \
- test/Object/macho-invalid.test \
- test/tools/llvm-size/radix.test \
- test/ExecutionEngine/frem.ll \
- test/tools/llvm-dwarfdump/X86/prettyprint_types.s \
- test/tools/llvm-dwarfdump/X86/simplified-template-names.s \
- unittests/ExecutionEngine/Orc/OrcCAPITest.cpp
+ arm*)
+ rm -v test/tools/llvm-readobj/ELF/dependent-libraries.test \
+ test/Object/macho-invalid.test \
+ test/tools/llvm-size/radix.test \
+ test/tools/gold/X86/split-dwarf.ll \
+ test/ExecutionEngine/frem.ll \
+ test/tools/llvm-dwarfdump/X86/prettyprint_types.s \
+ test/tools/llvm-dwarfdump/X86/simplified-template-names.s \
+ unittests/ExecutionEngine/Orc/OrcCAPITest.cpp \
+ test/CodeGen/RISCV/rv32zbp.ll \
+ test/CodeGen/RISCV/rv64zbp.ll
sed -i "/OrcCAPITest.cpp/d" \
unittests/ExecutionEngine/Orc/CMakeLists.txt
;;
@@ -118,52 +126,67 @@ prepare() {
test/CodeGen/Hexagon/vararg-formal.ll \
test/tools/llvm-objcopy/MachO/universal-object.test \
test/DebugInfo/X86/vla-multi.ll
-
+ # XXX: fail when built with gcc13
+ rm -v \
+ test/CodeGen/X86/vector-interleaved-load-i32-stride-4.ll \
+ test/Transforms/SampleProfile/pseudo-probe-update-2.ll \
+ test/Transforms/SampleProfile/pseudo-probe-update.ll
}
build() {
# Auto-detect it by guessing either.
local ffi_include_dir="$(pkg-config --cflags-only-I libffi | sed 's|^-I||g')"
- case "$CARCH" in
- x86) LDFLAGS="$LDFLAGS -Wl,--no-keep-memory";; # avoid exhausting memory limit
- esac
+
+ # tries linking host libzstd in cross
+ if [ -n "$BOOTSTRAP" ]; then
+ local zstd=OFF
+ else
+ local zstd=ON
+ fi
# NOTE: DO NOT change CMAKE_BUILD_TYPE! Buildmodes like None will enable
# debug assertions for LLVM!
- cmake -B build -G Ninja -Wno-dev \
+ cmake -B build -G Ninja -Wno-dev -S llvm \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/$_prefix \
+ -DCMAKE_INSTALL_RPATH=/$_prefix \
+ \
+ -DLLVM_DEFAULT_TARGET_TRIPLE="$CBUILD" \
+ -DLLVM_HOST_TRIPLE="$CHOST" \
+ \
-DFFI_INCLUDE_DIR="$ffi_include_dir" \
+ -DLLVM_APPEND_VC_REV=OFF \
-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_BUILD_TESTS="$(want_check && echo ON || echo OFF)" \
-DLLVM_ENABLE_ASSERTIONS=OFF \
+ -DLLVM_ENABLE_DUMP=ON \
+ -DLLVM_ENABLE_EH=ON \
-DLLVM_ENABLE_FFI=ON \
-DLLVM_ENABLE_LIBCXX=OFF \
+ -DLLVM_ENABLE_LIBEDIT=OFF \
-DLLVM_ENABLE_PIC=ON \
-DLLVM_ENABLE_RTTI=ON \
-DLLVM_ENABLE_SPHINX=OFF \
-DLLVM_ENABLE_TERMINFO=ON \
-DLLVM_ENABLE_ZLIB=ON \
- -DLLVM_INSTALL_UTILS=ON \
- -DLLVM_HOST_TRIPLE="$CHOST" \
+ -DLLVM_ENABLE_ZSTD=$zstd \
+ -DLLVM_INCLUDE_BENCHMARKS=OFF \
-DLLVM_INCLUDE_EXAMPLES=OFF \
+ -DLLVM_INSTALL_UTILS=ON \
-DLLVM_LINK_LLVM_DYLIB=ON \
- -DLLVM_APPEND_VC_REV=OFF \
- -DLLVM_INCLUDE_BENCHMARKS=OFF \
$cmake_cross_options
- cmake --build build --target llvm-tblgen
cmake --build build
- python3 utils/lit/setup.py build
+ python3 llvm/utils/lit/setup.py build
}
check() {
+ LD_LIBRARY_PATH="$PWD/build/lib" \
ninja -C build check-llvm
}
@@ -172,11 +195,6 @@ package() {
cd "$pkgdir"/$_prefix
- # Remove RPATHs.
- file lib/*.so bin/* \
- | awk -F: '$2~/ELF/{print $1}' \
- | xargs -r chrpath -d
-
# Symlink files from /usr/lib/llvm*/bin to /usr/bin.
mkdir -p "$pkgdir"/usr/bin
local name newname path
@@ -198,17 +216,13 @@ package() {
ln -s ../lib/llvm$_majorver/bin/$name "$pkgdir"/usr/bin/$newname
done
- # Move /usr/lib/$pkgname/include/ into /usr/include/$pkgname/
- # and symlink it back.
- mkdir "$pkgdir"/usr/include/
- mv include "$pkgdir"/usr/include/$pkgname
- ln -s ../../include/$pkgname include
-
- # Move /usr/lib/$pkgname/lib/cmake/llvm/ into /usr/lib/cmake/$pkgname/
- # and symlink it back.
- mkdir "$pkgdir"/usr/lib/cmake/
- mv lib/cmake/llvm "$pkgdir"/usr/lib/cmake/$pkgname
- ln -s ../../../cmake/$pkgname lib/cmake/llvm
+ mkdir -p "$pkgdir"/usr/include "$pkgdir"/usr/lib/cmake
+
+ # symlink include to /usr/include/llvm$_llvmver
+ ln -sfv ../lib/$pkgname/include "$pkgdir"/usr/include/$pkgname
+
+ # symlink cmake dir to system cmake
+ ln -sfv ../$pkgname/lib/cmake/llvm "$pkgdir"/usr/lib/cmake/$pkgname
}
static() {
@@ -242,44 +256,51 @@ dev() {
default_dev
cd "$subpkgdir"
- _mv "$pkgdir"/$_prefix/lib $_prefix/
- _mv "$pkgdir"/$_prefix/include $_prefix/
-
- _mv "$pkgdir"/$_prefix/bin/llvm-config $_prefix/bin/
+ amove \
+ $_prefix/lib \
+ $_prefix/bin/llvm-config
# Move libLTO and LLVMgold back
- _mv "$subpkgdir"/$_prefix/lib/libLTO.so.* \
+ _mv "$subpkgdir"/$_prefix/lib/libLTO.so* \
"$subpkgdir"/$_prefix/lib/LLVMgold* \
"$pkgdir"/$_prefix/lib
if [ "$_default_llvm" = yes ]; then
ln -sf llvm$_majorver usr/lib/cmake/llvm
- ln -sf llvm$_majorver/lib/LLVMgold.so "$subpkgdir"/usr/lib/
- ln -sf llvm$_majorver/lib/libLTO.so "$subpkgdir"/usr/lib/
+ ln -sf llvm$_majorver/lib/LLVMgold.so "$pkgdir"/usr/lib/
+ ln -sf llvm$_majorver/lib/libLTO.so "$pkgdir"/usr/lib/
fi
+
+ # also add a suffix-version variant of llvm-config, as that's what things normally check for
+ mkdir -p "$subpkgdir"/usr/bin/
+ ln -sfv ../lib/llvm$_majorver/bin/llvm-config "$subpkgdir"/usr/bin/llvm-config-$_majorver
}
_test_utils() {
pkgdesc="LLVM $_majorver utilities for executing LLVM and Clang style test suites"
- depends="python3 py3-setuptools"
+ depends="python3"
_common_subpkg
- replaces=""
- local litver=$(python3 "$builddir"/utils/lit/setup.py --version 2>/dev/null \
+ local litver=$(python3 "$builddir"/llvm/utils/lit/setup.py --version 2>/dev/null \
| sed 's/\.dev.*$//')
test -n "$litver"
provides="$provides lit=$litver-r$pkgrel"
+ python3 "$builddir"/llvm/utils/lit/setup.py install --root="$subpkgdir"
+
amove usr/lib/$pkgname/bin/FileCheck \
usr/lib/$pkgname/bin/count \
- usr/lib/$pkgname/bin/not \
- usr/bin/count \
- usr/bin/not
+ usr/lib/$pkgname/bin/not
- cd "$builddir"/build
+ mv "$subpkgdir"/usr/bin/lit "$subpkgdir"/$_prefix/bin/lit
+ ln -s /$_prefix/bin/lit "$subpkgdir"/$_prefix/bin/llvm-lit
- python3 ../utils/lit/setup.py install --prefix=/usr --root="$subpkgdir"
- ln -s ../../../bin/lit "$subpkgdir"/$_prefix/bin/lit
+ if [ "$_default_llvm" = yes ]; then
+ amove usr/bin/count usr/bin/not
+ ln -s /$_prefix/bin/lit "$subpkgdir"/usr/bin/lit
+ else
+ amove usr/bin/count$_majorver usr/bin/not$_majorver
+ fi
}
_common_subpkg() {
@@ -296,8 +317,12 @@ _mv() {
}
sha512sums="
-6461bdde27aac17fa44c3e99a85ec47ffb181d0d4e5c3ef1c4286a59583e3b0c51af3c8081a300f45b99524340773a3011380059e3b3a571c3b0a8733e96fc1d llvm-14.0.6.src.tar.xz
-6021b5a39843d645a8c63d558568f120d0d91a1ce209e46f0b980253fafb18dfc2078ef39cf63b0900f4313e3c5636320b3c179ff7a4e220d06aec2455063993 0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch
-dd5efd88abdd13db3b17bde8735c2ddb1ed1ac690a8ab06072e3e91f87d7ede924dcb513ee31b855d304fe43246619e5fa83fcbaeabb256b3b96ff4ebaf3b110 fix-memory-mf_exec-on-aarch64.patch
-7a87da5ee5f9d4db21974023eab88645610fdfae856e445f402169bc2aed74ab3861ad03974421aaa2312e24efb55bdbcd312146eb12b52f5c8c7515713bd40f install-prefix.patch
+4836d3603f32e8e54434cbfa8ef33d9d473ac5dc20ebf9c67132653c73f4524931abd1084655eaee5f20bcfcb91bcc4bbc5c4a0b603ad0c9029c556e14dc4c52 llvm-project-15.0.7.src.tar.xz
+84ed6b165445d0cdb59daa59f612a7d960bf67b13a1b19bdd2a19d46548013e756faca6b8249cb6c60354f3a9aaef46652e5f531944c71294e46d2f7bfd8b832 0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch
+ef63d5e01440cff65c10b84b65099bbd539bae72065d5581a8d2409cf2d0d4410d5bb3f501273ab29ee65bf8f5d23653a074428c2711ff9209324de56b857f3f allocscore.patch
+18a8270dec2c86e88dc2686de655f98c22fd26c71cd2d06d0de68029a1b363851a07b897694c5af0871805e2f59ecaab9363375e0223d27bbd04838462edf5c8 fix-memory-mf_exec-on-aarch64.patch
+ebc0be314c129ef38f00c8c2be9d589658cae89ac8cda109e35933b5044e775a3d370c0c584d3e501e4d43167b8523d8c5e5a85653d8ebe853571697ae40fb35 install-prefix.patch
+14439883c4967d99b496e6af9ad920afbeb9e12538ccc411329e7b39d319a216322f733f0d8511c4e2d7702015e5f552980bf586e95459cecf3c8cff5a245fd6 lfs64.patch
+18668bc5ba056b6f0cc2ef28db1d1a7a60d2ff67e8a741cbd704aba510128e6564f70a1bbc3140562445e03a83169f6cdf0ee4a6adba1a5009a689a7a3bb6541 llvm-stack-size.patch
+84d2cc5c0376d8a8a2bbc0891849c9421feaea5b38a329aecdb822c136f7ded7ab4c3b87838d8915e6eb54cfe89f3e88f3b81ae98733e9a58d935be74a3c456c rust-feature-tables.patch
"
diff --git a/main/llvm15/allocscore.patch b/main/llvm15/allocscore.patch
new file mode 100644
index 00000000000..5421c6b1ae8
--- /dev/null
+++ b/main/llvm15/allocscore.patch
@@ -0,0 +1,20 @@
+on x86, this fails with a float comparison error even though the floats are the
+same, because it does absolute eq
+--
+--- a/llvm/unittests/CodeGen/RegAllocScoreTest.cpp
++++ b/llvm/unittests/CodeGen/RegAllocScoreTest.cpp
+@@ -172,14 +172,5 @@
+ ASSERT_EQ(Freq2, TotalScore.loadStoreCounts());
+ ASSERT_EQ(Freq1, TotalScore.cheapRematCounts());
+ ASSERT_EQ(Freq2, TotalScore.expensiveRematCounts());
+- ASSERT_EQ(TotalScore.getScore(),
+- TotalScore.copyCounts() * CopyWeight +
+- TotalScore.loadCounts() * LoadWeight +
+- TotalScore.storeCounts() * StoreWeight +
+- TotalScore.loadStoreCounts() * (LoadWeight + StoreWeight) +
+- TotalScore.cheapRematCounts() * CheapRematWeight +
+- TotalScore.expensiveRematCounts() * ExpensiveRematWeight
+-
+- );
+ }
+ } // end namespace
diff --git a/main/llvm13/fix-memory-mf_exec-on-aarch64.patch b/main/llvm15/fix-memory-mf_exec-on-aarch64.patch
index c4166ed9a80..8e8f1d3a2f3 100644
--- a/main/llvm13/fix-memory-mf_exec-on-aarch64.patch
+++ b/main/llvm15/fix-memory-mf_exec-on-aarch64.patch
@@ -12,8 +12,8 @@ Fix failures in AllocationTests/MappedMemoryTest.* on aarch64:
Upstream-Issue: https://bugs.llvm.org/show_bug.cgi?id=14278#c10
---- a/lib/Support/Unix/Memory.inc
-+++ b/lib/Support/Unix/Memory.inc
+--- a/llvm/lib/Support/Unix/Memory.inc
++++ b/llvm/lib/Support/Unix/Memory.inc
@@ -58,7 +58,7 @@
return PROT_READ | PROT_WRITE | PROT_EXEC;
case llvm::sys::Memory::MF_EXEC:
diff --git a/main/llvm14/install-prefix.patch b/main/llvm15/install-prefix.patch
index f7802cb8424..90f6c3e62d2 100644
--- a/main/llvm14/install-prefix.patch
+++ b/main/llvm15/install-prefix.patch
@@ -8,8 +8,9 @@ always be correct, and what cmake tries to autodetect anyway.
also see: https://reviews.llvm.org/D29969
---- a/cmake/modules/CMakeLists.txt
-+++ b/cmake/modules/CMakeLists.txt
+this is supposedly fixed now, but for some reason it still isn't
+--- a/llvm/cmake/modules/CMakeLists.txt
++++ b/llvm/cmake/modules/CMakeLists.txt
@@ -41,6 +41,8 @@
#
diff --git a/main/llvm15/lfs64.patch b/main/llvm15/lfs64.patch
new file mode 100644
index 00000000000..6de47a2838f
--- /dev/null
+++ b/main/llvm15/lfs64.patch
@@ -0,0 +1,120 @@
+Patch-Source: https://github.com/llvm/llvm-project/commit/5cd554303ead0f8891eee3cd6d25cb07f5a7bf67
+--
+From 5cd554303ead0f8891eee3cd6d25cb07f5a7bf67 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Sat, 4 Feb 2023 13:54:41 -0800
+Subject: [PATCH] cmake: Enable 64bit off_t on 32bit glibc systems
+
+Pass -D_FILE_OFFSET_BITS=64 to compiler flags on 32bit glibc based
+systems. This will make sure that 64bit versions of LFS functions are
+used e.g. seek will behave same as lseek64. Also revert [1] partially
+because this added a cmake test to detect lseek64 but then forgot to
+pass the needed macro to actual compile, this test was incomplete too
+since libc implementations like musl has 64bit off_t by default on 32bit
+systems and does not bundle[2] -D_LARGEFILE64_SOURCE under -D_GNU_SOURCE
+like glibc, which means the compile now fails on musl because the cmake
+check passes but we do not have _LARGEFILE64_SOURCE defined. Using the
+*64 function was transitional anyways so use -D_FILE_OFFSET_BITS=64
+instead
+
+[1] https://github.com/llvm/llvm-project/commit/8db7e5e4eed4c4e697dc3164f2c9351d8c3e942b
+[2] https://git.musl-libc.org/cgit/musl/commit/?id=25e6fee27f4a293728dd15b659170e7b9c7db9bc
+
+Reviewed By: MaskRay
+
+Differential Revision: https://reviews.llvm.org/D139752
+---
+ llvm/cmake/config-ix.cmake | 8 +++++---
+ llvm/include/llvm/Config/config.h.cmake | 3 ---
+ llvm/lib/Support/raw_ostream.cpp | 2 --
+ llvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn | 2 --
+ utils/bazel/llvm_configs/config.h.cmake | 3 ---
+ 5 files changed, 5 insertions(+), 13 deletions(-)
+
+diff --git a/llvm/cmake/config-ix.cmake b/llvm/cmake/config-ix.cmake
+index f959cd1f88484..b78c1b34ab8b9 100644
+--- a/llvm/cmake/config-ix.cmake
++++ b/llvm/cmake/config-ix.cmake
+@@ -284,9 +284,6 @@ check_symbol_exists(futimes sys/time.h HAVE_FUTIMES)
+ if( HAVE_SIGNAL_H AND NOT LLVM_USE_SANITIZER MATCHES ".*Address.*" AND NOT APPLE )
+ check_symbol_exists(sigaltstack signal.h HAVE_SIGALTSTACK)
+ endif()
+-set(CMAKE_REQUIRED_DEFINITIONS "-D_LARGEFILE64_SOURCE")
+-check_symbol_exists(lseek64 "sys/types.h;unistd.h" HAVE_LSEEK64)
+-set(CMAKE_REQUIRED_DEFINITIONS "")
+ check_symbol_exists(mallctl malloc_np.h HAVE_MALLCTL)
+ check_symbol_exists(mallinfo malloc.h HAVE_MALLINFO)
+ check_symbol_exists(mallinfo2 malloc.h HAVE_MALLINFO2)
+@@ -340,6 +337,11 @@ check_symbol_exists(__GLIBC__ stdio.h LLVM_USING_GLIBC)
+ if( LLVM_USING_GLIBC )
+ add_compile_definitions(_GNU_SOURCE)
+ list(APPEND CMAKE_REQUIRED_DEFINITIONS "-D_GNU_SOURCE")
++# enable 64bit off_t on 32bit systems using glibc
++ if (CMAKE_SIZEOF_VOID_P EQUAL 4)
++ add_compile_definitions(_FILE_OFFSET_BITS=64)
++ list(APPEND CMAKE_REQUIRED_DEFINITIONS "-D_FILE_OFFSET_BITS=64")
++ endif()
+ endif()
+
+ # This check requires _GNU_SOURCE.
+diff --git a/llvm/include/llvm/Config/config.h.cmake b/llvm/include/llvm/Config/config.h.cmake
+index 3543e6fc29944..29ac536b4c31b 100644
+--- a/llvm/include/llvm/Config/config.h.cmake
++++ b/llvm/include/llvm/Config/config.h.cmake
+@@ -128,9 +128,6 @@
+ /* Define to 1 if you have the <link.h> header file. */
+ #cmakedefine HAVE_LINK_H ${HAVE_LINK_H}
+
+-/* Define to 1 if you have the `lseek64' function. */
+-#cmakedefine HAVE_LSEEK64 ${HAVE_LSEEK64}
+-
+ /* Define to 1 if you have the <mach/mach.h> header file. */
+ #cmakedefine HAVE_MACH_MACH_H ${HAVE_MACH_MACH_H}
+
+diff --git a/llvm/lib/Support/raw_ostream.cpp b/llvm/lib/Support/raw_ostream.cpp
+index 92b15f14c62fd..8943c4478c7f2 100644
+--- a/llvm/lib/Support/raw_ostream.cpp
++++ b/llvm/lib/Support/raw_ostream.cpp
+@@ -802,8 +802,6 @@ uint64_t raw_fd_ostream::seek(uint64_t off) {
+ flush();
+ #ifdef _WIN32
+ pos = ::_lseeki64(FD, off, SEEK_SET);
+-#elif defined(HAVE_LSEEK64)
+- pos = ::lseek64(FD, off, SEEK_SET);
+ #else
+ pos = ::lseek(FD, off, SEEK_SET);
+ #endif
+diff --git a/llvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn b/llvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn
+index 1d70d96bd6d76..393744f2d6c53 100644
+--- a/llvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn
++++ b/llvm/utils/gn/secondary/llvm/include/llvm/Config/BUILD.gn
+@@ -139,7 +139,6 @@ write_cmake_config("config") {
+ values += [
+ "HAVE_FUTIMENS=1",
+ "HAVE_LINK_H=1",
+- "HAVE_LSEEK64=1",
+ "HAVE_MALLINFO=1",
+ "HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC=1",
+ ]
+@@ -147,7 +146,6 @@ write_cmake_config("config") {
+ values += [
+ "HAVE_FUTIMENS=",
+ "HAVE_LINK_H=",
+- "HAVE_LSEEK64=",
+ "HAVE_MALLINFO=",
+ "HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC=",
+ ]
+diff --git a/utils/bazel/llvm_configs/config.h.cmake b/utils/bazel/llvm_configs/config.h.cmake
+index 3543e6fc29944..29ac536b4c31b 100644
+--- a/utils/bazel/llvm_configs/config.h.cmake
++++ b/utils/bazel/llvm_configs/config.h.cmake
+@@ -128,9 +128,6 @@
+ /* Define to 1 if you have the <link.h> header file. */
+ #cmakedefine HAVE_LINK_H ${HAVE_LINK_H}
+
+-/* Define to 1 if you have the `lseek64' function. */
+-#cmakedefine HAVE_LSEEK64 ${HAVE_LSEEK64}
+-
+ /* Define to 1 if you have the <mach/mach.h> header file. */
+ #cmakedefine HAVE_MACH_MACH_H ${HAVE_MACH_MACH_H}
+
diff --git a/main/llvm15/llvm-stack-size.patch b/main/llvm15/llvm-stack-size.patch
new file mode 100644
index 00000000000..9803c0de191
--- /dev/null
+++ b/main/llvm15/llvm-stack-size.patch
@@ -0,0 +1,34 @@
+Patch-Source: https://github.com/chimera-linux/cports/blob/8c0359f31b9d888e59ced0320e93ca8ad79ba1f9/main/llvm/patches/0010-always-set-a-larger-stack-size-explicitly.patch
+From 18e09846d9333b554e3dfbbd768ada6643bf92c0 Mon Sep 17 00:00:00 2001
+From: Daniel Kolesa <daniel@octaforge.org>
+Date: Sat, 27 Nov 2021 01:03:28 +0100
+Subject: [PATCH 10/22] always set a larger stack size explicitly
+
+---
+ llvm/lib/Support/Threading.cpp | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+diff --git a/llvm/lib/Support/Threading.cpp b/llvm/lib/Support/Threading.cpp
+index 04a1a9e19..776badaad 100644
+--- a/llvm/lib/Support/Threading.cpp
++++ b/llvm/lib/Support/Threading.cpp
+@@ -82,16 +82,7 @@ unsigned llvm::ThreadPoolStrategy::compute_thread_count() const {
+ // keyword.
+ #include "llvm/Support/thread.h"
+
+-#if defined(__APPLE__)
+- // Darwin's default stack size for threads except the main one is only 512KB,
+- // which is not enough for some/many normal LLVM compilations. This implements
+- // the same interface as std::thread but requests the same stack size as the
+- // main thread (8MB) before creation.
+ const llvm::Optional<unsigned> llvm::thread::DefaultStackSize = 8 * 1024 * 1024;
+-#else
+-const llvm::Optional<unsigned> llvm::thread::DefaultStackSize = None;
+-#endif
+-
+
+ #endif
+
+--
+2.35.1
+
diff --git a/main/llvm15/llvm15.pre-upgrade b/main/llvm15/llvm15.pre-upgrade
new file mode 100644
index 00000000000..7da6e9fb754
--- /dev/null
+++ b/main/llvm15/llvm15.pre-upgrade
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+ver_old=$2
+
+if [ "$(apk version -t "$ver_old" '15.0.7-r1')" = '<' ]; then
+ # in 15.0.7-r1 we flipped the symlink/target dirs for include/cmake
+ # so we have to delete the symlink to allow apk to replace them..
+ # and only after an apk fix :/
+
+ # include
+ rm /usr/lib/llvm15/include
+
+ # cmake
+ rm /usr/lib/llvm15/lib/cmake/llvm
+fi
+
+exit 0
diff --git a/main/llvm15/rust-feature-tables.patch b/main/llvm15/rust-feature-tables.patch
new file mode 100644
index 00000000000..2068d51f2b9
--- /dev/null
+++ b/main/llvm15/rust-feature-tables.patch
@@ -0,0 +1,31 @@
+Patch-Source: https://github.com/rust-lang/llvm-project/commit/0a157fd7a5f61973ffddf96b3d445a718193eb1a
+From 0a157fd7a5f61973ffddf96b3d445a718193eb1a Mon Sep 17 00:00:00 2001
+From: Cameron Hart <cameron.hart@gmail.com>
+Date: Sun, 10 Jul 2016 23:55:53 +1000
+Subject: [PATCH] [rust] Add accessors for MCSubtargetInfo CPU and Feature
+ tables
+
+This is needed for `-C target-cpu=help` and `-C target-feature=help` in rustc
+---
+ llvm/include/llvm/MC/MCSubtargetInfo.h | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/llvm/include/llvm/MC/MCSubtargetInfo.h b/llvm/include/llvm/MC/MCSubtargetInfo.h
+index e1f0a86141e36..1e529bf4fb31e 100644
+--- a/llvm/include/llvm/MC/MCSubtargetInfo.h
++++ b/llvm/include/llvm/MC/MCSubtargetInfo.h
+@@ -230,6 +230,14 @@ class MCSubtargetInfo {
+ return Found != ProcDesc.end() && StringRef(Found->Key) == CPU;
+ }
+
++ ArrayRef<SubtargetSubTypeKV> getCPUTable() const {
++ return ProcDesc;
++ }
++
++ ArrayRef<SubtargetFeatureKV> getFeatureTable() const {
++ return ProcFeatures;
++ }
++
+ virtual unsigned getHwMode() const { return 0; }
+
+ /// Return the cache size in bytes for the given level of cache.
diff --git a/main/llvm13/0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch b/main/llvm16/0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch
index b5a6e353247..e0cb43a2257 100644
--- a/main/llvm13/0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch
+++ b/main/llvm16/0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch
@@ -9,8 +9,8 @@ Subject: [PATCH] Disable dynamic lib tests for musl's dlclose() is noop
diff --git a/unittests/Support/CMakeLists.txt b/unittests/Support/CMakeLists.txt
index 641163e..4f508d9 100644
---- a/unittests/Support/CMakeLists.txt
-+++ b/unittests/Support/CMakeLists.txt
+--- a/llvm/unittests/Support/CMakeLists.txt
++++ b/llvm/unittests/Support/CMakeLists.txt
@@ -124,5 +124,5 @@
if(NOT LLVM_INTEGRATED_CRT_ALLOC)
diff --git a/main/llvm16/9001-CMake-Quote-variables-where-TARGET-may-be-a-value.patch b/main/llvm16/9001-CMake-Quote-variables-where-TARGET-may-be-a-value.patch
new file mode 100644
index 00000000000..5b68c006242
--- /dev/null
+++ b/main/llvm16/9001-CMake-Quote-variables-where-TARGET-may-be-a-value.patch
@@ -0,0 +1,143 @@
+From 7ccbee12658c375dfdf7ee274f6ee91d9cef680d Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Tue, 6 Jun 2023 02:08:01 +0100
+Subject: [PATCH 01/10] [CMake] Quote variables where "TARGET" may be a value
+
+In CMake, "TARGET" is a special keyword. But it's also an LLVM component, which
+means downstreams may request "target" or "TARGET" from CMake. Quote such input
+so "TARGET" is interpreted as a string rather than a keyword.
+
+This is a followup to 75a0502fe0053c72b57b61143a55600814d931fd (D150884).
+
+Fixes Meson's test suite and an issue which manifested identically to #61436
+but appears to have been a slightly different problem.
+
+Bug: https://github.com/mesonbuild/meson/issues/11642
+Bug: https://github.com/llvm/llvm-project/issues/61436
+
+Reviewed By: tstellar
+
+Differential Revision: https://reviews.llvm.org/D152121
+
+Gentoo-Component: llvm
+---
+ llvm/cmake/modules/LLVM-Config.cmake | 30 ++++++++++++++--------------
+ 1 file changed, 15 insertions(+), 15 deletions(-)
+
+diff --git a/llvm/cmake/modules/LLVM-Config.cmake b/llvm/cmake/modules/LLVM-Config.cmake
+index ae082c6ae520..96ccf20aa89b 100644
+--- a/llvm/cmake/modules/LLVM-Config.cmake
++++ b/llvm/cmake/modules/LLVM-Config.cmake
+@@ -134,7 +134,7 @@ function(llvm_expand_pseudo_components out_components)
+ endif()
+ foreach(c ${link_components})
+ # add codegen, asmprinter, asmparser, disassembler
+- if(${c} IN_LIST LLVM_TARGETS_TO_BUILD)
++ if("${c}" IN_LIST LLVM_TARGETS_TO_BUILD)
+ if(LLVM${c}CodeGen IN_LIST LLVM_AVAILABLE_LIBS)
+ list(APPEND expanded_components "${c}CodeGen")
+ else()
+@@ -149,48 +149,48 @@ function(llvm_expand_pseudo_components out_components)
+ list(APPEND expanded_components "${c}${subcomponent}")
+ endif()
+ endforeach()
+- elseif( c STREQUAL "nativecodegen" )
++ elseif("${c}" STREQUAL "nativecodegen" )
+ foreach(subcomponent IN ITEMS CodeGen Desc Info)
+ if(LLVM${LLVM_NATIVE_ARCH}${subcomponent} IN_LIST LLVM_AVAILABLE_LIBS)
+ list(APPEND expanded_components "${LLVM_NATIVE_ARCH}${subcomponent}")
+ endif()
+ endforeach()
+- elseif( c STREQUAL "AllTargetsCodeGens" )
++ elseif("${c}" STREQUAL "AllTargetsCodeGens" )
+ # Link all the codegens from all the targets
+ foreach(t ${LLVM_TARGETS_TO_BUILD})
+ if( TARGET LLVM${t}CodeGen)
+ list(APPEND expanded_components "${t}CodeGen")
+ endif()
+ endforeach(t)
+- elseif( c STREQUAL "AllTargetsAsmParsers" )
++ elseif("${c}" STREQUAL "AllTargetsAsmParsers" )
+ # Link all the asm parsers from all the targets
+ foreach(t ${LLVM_TARGETS_TO_BUILD})
+ if(LLVM${t}AsmParser IN_LIST LLVM_AVAILABLE_LIBS)
+ list(APPEND expanded_components "${t}AsmParser")
+ endif()
+ endforeach(t)
+- elseif( c STREQUAL "AllTargetsDescs" )
++ elseif( "${c}" STREQUAL "AllTargetsDescs" )
+ # Link all the descs from all the targets
+ foreach(t ${LLVM_TARGETS_TO_BUILD})
+ if(LLVM${t}Desc IN_LIST LLVM_AVAILABLE_LIBS)
+ list(APPEND expanded_components "${t}Desc")
+ endif()
+ endforeach(t)
+- elseif( c STREQUAL "AllTargetsDisassemblers" )
++ elseif("${c}" STREQUAL "AllTargetsDisassemblers" )
+ # Link all the disassemblers from all the targets
+ foreach(t ${LLVM_TARGETS_TO_BUILD})
+ if(LLVM${t}Disassembler IN_LIST LLVM_AVAILABLE_LIBS)
+ list(APPEND expanded_components "${t}Disassembler")
+ endif()
+ endforeach(t)
+- elseif( c STREQUAL "AllTargetsInfos" )
++ elseif("${c}" STREQUAL "AllTargetsInfos" )
+ # Link all the infos from all the targets
+ foreach(t ${LLVM_TARGETS_TO_BUILD})
+ if(LLVM${t}Info IN_LIST LLVM_AVAILABLE_LIBS)
+ list(APPEND expanded_components "${t}Info")
+ endif()
+ endforeach(t)
+- elseif( c STREQUAL "AllTargetsMCAs" )
++ elseif("${c}" STREQUAL "AllTargetsMCAs" )
+ # Link all the TargetMCAs from all the targets
+ foreach(t ${LLVM_TARGETS_TO_BUILD})
+ if( TARGET LLVM${t}TargetMCA )
+@@ -222,7 +222,7 @@ function(llvm_map_components_to_libnames out_libs)
+ # process target dependencies.
+ if(NOT LLVM_TARGETS_CONFIGURED)
+ foreach(c ${link_components})
+- is_llvm_target_specifier(${c} iltl_result ALL_TARGETS)
++ is_llvm_target_specifier("${c}" iltl_result ALL_TARGETS)
+ if(iltl_result)
+ message(FATAL_ERROR "Specified target library before target registration is complete.")
+ endif()
+@@ -250,13 +250,13 @@ function(llvm_map_components_to_libnames out_libs)
+ if(c_rename)
+ set(c ${c_rename})
+ endif()
+- if( c STREQUAL "native" )
++ if("${c}" STREQUAL "native" )
+ # already processed
+- elseif( c STREQUAL "backend" )
++ elseif("${c}" STREQUAL "backend" )
+ # same case as in `native'.
+- elseif( c STREQUAL "engine" )
++ elseif("${c}" STREQUAL "engine" )
+ # already processed
+- elseif( c STREQUAL "all" )
++ elseif("${c}" STREQUAL "all" )
+ get_property(all_components GLOBAL PROPERTY LLVM_COMPONENT_LIBS)
+ list(APPEND expanded_components ${all_components})
+ else()
+@@ -265,7 +265,7 @@ function(llvm_map_components_to_libnames out_libs)
+ list(FIND capitalized_libs LLVM${capitalized} lib_idx)
+ if( lib_idx LESS 0 )
+ # The component is unknown. Maybe is an omitted target?
+- is_llvm_target_library(${c} iltl_result OMITTED_TARGETS)
++ is_llvm_target_library("${c}" iltl_result OMITTED_TARGETS)
+ if(iltl_result)
+ # A missing library to a directly referenced omitted target would be bad.
+ message(FATAL_ERROR "Library '${c}' is a direct reference to a target library for an omitted target.")
+@@ -280,7 +280,7 @@ function(llvm_map_components_to_libnames out_libs)
+ list(GET LLVM_AVAILABLE_LIBS ${lib_idx} canonical_lib)
+ list(APPEND expanded_components ${canonical_lib})
+ endif( lib_idx LESS 0 )
+- endif( c STREQUAL "native" )
++ endif("${c}" STREQUAL "native" )
+ endforeach(c)
+
+ set(${out_libs} ${expanded_components} PARENT_SCOPE)
+--
+2.41.0
+
diff --git a/main/llvm16/9002-LV-Convert-consecutive-ptr-uniforms.ll-to-use-opaque.patch b/main/llvm16/9002-LV-Convert-consecutive-ptr-uniforms.ll-to-use-opaque.patch
new file mode 100644
index 00000000000..f34f53a6af5
--- /dev/null
+++ b/main/llvm16/9002-LV-Convert-consecutive-ptr-uniforms.ll-to-use-opaque.patch
@@ -0,0 +1,557 @@
+From b4e62c8753a37cdb0dd9fbc693cd825fd69e5537 Mon Sep 17 00:00:00 2001
+From: Florian Hahn <flo@fhahn.com>
+Date: Fri, 17 Mar 2023 14:07:10 +0000
+Subject: [PATCH 02/10] [LV] Convert consecutive-ptr-uniforms.ll to use opaque
+ pointers (NFC).
+
+Gentoo-Component: llvm
+---
+ .../LoopVectorize/consecutive-ptr-uniforms.ll | 300 +++++++++---------
+ 1 file changed, 151 insertions(+), 149 deletions(-)
+
+diff --git a/llvm/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll b/llvm/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll
+index 40337e7da7a4..e4129747898b 100644
+--- a/llvm/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll
++++ b/llvm/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll
+@@ -1,6 +1,6 @@
+ ; REQUIRES: asserts
+-; RUN: opt -opaque-pointers=0 < %s -passes=loop-vectorize,instcombine -force-vector-width=4 -force-vector-interleave=1 -debug-only=loop-vectorize -disable-output -print-after=instcombine 2>&1 | FileCheck %s
+-; RUN: opt -opaque-pointers=0 < %s -passes=loop-vectorize,instcombine -force-vector-width=4 -force-vector-interleave=1 -enable-interleaved-mem-accesses -debug-only=loop-vectorize -disable-output -print-after=instcombine 2>&1 | FileCheck %s --check-prefix=INTER
++; RUN: opt %s -passes=loop-vectorize,instcombine -force-vector-width=4 -force-vector-interleave=1 -debug-only=loop-vectorize -disable-output -print-after=instcombine 2>&1 | FileCheck %s
++; RUN: opt %s -passes=loop-vectorize,instcombine -force-vector-width=4 -force-vector-interleave=1 -enable-interleaved-mem-accesses -debug-only=loop-vectorize -disable-output -print-after=instcombine 2>&1 | FileCheck %s --check-prefix=INTER
+
+ target datalayout = "e-m:e-i64:64-i128:128-n32:64-S128"
+
+@@ -11,23 +11,23 @@ target datalayout = "e-m:e-i64:64-i128:128-n32:64-S128"
+ ; Check that a forward consecutive pointer is recognized as uniform and remains
+ ; uniform after vectorization.
+ ;
+-; CHECK: LV: Found uniform instruction: %tmp1 = getelementptr inbounds i32, i32* %a, i64 %i
++; CHECK: LV: Found uniform instruction: %tmp1 = getelementptr inbounds i32, ptr %a, i64 %i
+ ; CHECK: vector.body
+ ; CHECK: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
+ ; CHECK-NOT: getelementptr
+-; CHECK: getelementptr inbounds i32, i32* %a, i64 %index
++; CHECK: getelementptr inbounds i32, ptr %a, i64 %index
+ ; CHECK-NOT: getelementptr
+ ; CHECK: br i1 {{.*}}, label %middle.block, label %vector.body
+ ;
+-define i32 @consecutive_ptr_forward(i32* %a, i64 %n) {
++define i32 @consecutive_ptr_forward(ptr %a, i64 %n) {
+ entry:
+ br label %for.body
+
+ for.body:
+ %i = phi i64 [ %i.next, %for.body ], [ 0, %entry ]
+ %tmp0 = phi i32 [ %tmp3, %for.body ], [ 0, %entry ]
+- %tmp1 = getelementptr inbounds i32, i32* %a, i64 %i
+- %tmp2 = load i32, i32* %tmp1, align 8
++ %tmp1 = getelementptr inbounds i32, ptr %a, i64 %i
++ %tmp2 = load i32, ptr %tmp1, align 8
+ %tmp3 = add i32 %tmp0, %tmp2
+ %i.next = add nuw nsw i64 %i, 1
+ %cond = icmp slt i64 %i.next, %n
+@@ -43,25 +43,25 @@ for.end:
+ ; Check that a reverse consecutive pointer is recognized as uniform and remains
+ ; uniform after vectorization.
+ ;
+-; CHECK: LV: Found uniform instruction: %tmp1 = getelementptr inbounds i32, i32* %a, i64 %i
++; CHECK: LV: Found uniform instruction: %tmp1 = getelementptr inbounds i32, ptr %a, i64 %i
+ ; CHECK: vector.body
+ ; CHECK: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
+ ; CHECK: %offset.idx = sub i64 %n, %index
+ ; CHECK-NOT: getelementptr
+-; CHECK: %[[G0:.+]] = getelementptr i32, i32* %a, i64 -3
+-; CHECK: getelementptr i32, i32* %[[G0]], i64 %offset.idx
++; CHECK: %[[G0:.+]] = getelementptr i32, ptr %a, i64 -3
++; CHECK: getelementptr i32, ptr %[[G0]], i64 %offset.idx
+ ; CHECK-NOT: getelementptr
+ ; CHECK: br i1 {{.*}}, label %middle.block, label %vector.body
+ ;
+-define i32 @consecutive_ptr_reverse(i32* %a, i64 %n) {
++define i32 @consecutive_ptr_reverse(ptr %a, i64 %n) {
+ entry:
+ br label %for.body
+
+ for.body:
+ %i = phi i64 [ %i.next, %for.body ], [ %n, %entry ]
+ %tmp0 = phi i32 [ %tmp3, %for.body ], [ 0, %entry ]
+- %tmp1 = getelementptr inbounds i32, i32* %a, i64 %i
+- %tmp2 = load i32, i32* %tmp1, align 8
++ %tmp1 = getelementptr inbounds i32, ptr %a, i64 %i
++ %tmp2 = load i32, ptr %tmp1, align 8
+ %tmp3 = add i32 %tmp0, %tmp2
+ %i.next = add nsw i64 %i, -1
+ %cond = icmp sgt i64 %i.next, 0
+@@ -80,43 +80,43 @@ for.end:
+ ; interleaved memory accesses aren't enabled, the pointer should not be
+ ; recognized as uniform, and it should not be uniform after vectorization.
+ ;
+-; CHECK-NOT: LV: Found uniform instruction: %tmp1 = getelementptr inbounds %pair, %pair* %p, i64 %i, i32 0
+-; CHECK-NOT: LV: Found uniform instruction: %tmp2 = getelementptr inbounds %pair, %pair* %p, i64 %i, i32 1
++; CHECK-NOT: LV: Found uniform instruction: %tmp1 = getelementptr inbounds %pair, ptr %p, i64 %i, i32 0
++; CHECK-NOT: LV: Found uniform instruction: %tmp2 = getelementptr inbounds %pair, ptr %p, i64 %i, i32 1
+ ; CHECK: vector.body
+ ; CHECK: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
+ ; CHECK: %[[I1:.+]] = or i64 %index, 1
+ ; CHECK: %[[I2:.+]] = or i64 %index, 2
+ ; CHECK: %[[I3:.+]] = or i64 %index, 3
+-; CHECK: getelementptr inbounds %pair, %pair* %p, i64 %index, i32 0
+-; CHECK: getelementptr inbounds %pair, %pair* %p, i64 %[[I1]], i32 0
+-; CHECK: getelementptr inbounds %pair, %pair* %p, i64 %[[I2]], i32 0
+-; CHECK: getelementptr inbounds %pair, %pair* %p, i64 %[[I3]], i32 0
+-; CHECK: getelementptr inbounds %pair, %pair* %p, i64 %index, i32 1
+-; CHECK: getelementptr inbounds %pair, %pair* %p, i64 %[[I1]], i32 1
+-; CHECK: getelementptr inbounds %pair, %pair* %p, i64 %[[I2]], i32 1
+-; CHECK: getelementptr inbounds %pair, %pair* %p, i64 %[[I3]], i32 1
++; CHECK: getelementptr inbounds %pair, ptr %p, i64 %index, i32 0
++; CHECK: getelementptr inbounds %pair, ptr %p, i64 %[[I1]], i32 0
++; CHECK: getelementptr inbounds %pair, ptr %p, i64 %[[I2]], i32 0
++; CHECK: getelementptr inbounds %pair, ptr %p, i64 %[[I3]], i32 0
++; CHECK: getelementptr inbounds %pair, ptr %p, i64 %index, i32 1
++; CHECK: getelementptr inbounds %pair, ptr %p, i64 %[[I1]], i32 1
++; CHECK: getelementptr inbounds %pair, ptr %p, i64 %[[I2]], i32 1
++; CHECK: getelementptr inbounds %pair, ptr %p, i64 %[[I3]], i32 1
+ ; CHECK: br i1 {{.*}}, label %middle.block, label %vector.body
+ ;
+-; INTER: LV: Found uniform instruction: %tmp1 = getelementptr inbounds %pair, %pair* %p, i64 %i, i32 0
+-; INTER: LV: Found uniform instruction: %tmp2 = getelementptr inbounds %pair, %pair* %p, i64 %i, i32 1
++; INTER: LV: Found uniform instruction: %tmp1 = getelementptr inbounds %pair, ptr %p, i64 %i, i32 0
++; INTER: LV: Found uniform instruction: %tmp2 = getelementptr inbounds %pair, ptr %p, i64 %i, i32 1
+ ; INTER: vector.body
+ ; INTER: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
+ ; INTER-NOT: getelementptr
+-; INTER: getelementptr inbounds %pair, %pair* %p, i64 %index, i32 0
++; INTER: getelementptr inbounds %pair, ptr %p, i64 %index, i32 0
+ ; INTER-NOT: getelementptr
+ ; INTER: br i1 {{.*}}, label %middle.block, label %vector.body
+ ;
+-define i32 @interleaved_access_forward(%pair* %p, i64 %n) {
++define i32 @interleaved_access_forward(ptr %p, i64 %n) {
+ entry:
+ br label %for.body
+
+ for.body:
+ %i = phi i64 [ %i.next, %for.body ], [ 0, %entry ]
+ %tmp0 = phi i32 [ %tmp6, %for.body ], [ 0, %entry ]
+- %tmp1 = getelementptr inbounds %pair, %pair* %p, i64 %i, i32 0
+- %tmp2 = getelementptr inbounds %pair, %pair* %p, i64 %i, i32 1
+- %tmp3 = load i32, i32* %tmp1, align 8
+- %tmp4 = load i32, i32* %tmp2, align 8
++ %tmp1 = getelementptr inbounds %pair, ptr %p, i64 %i, i32 0
++ %tmp2 = getelementptr inbounds %pair, ptr %p, i64 %i, i32 1
++ %tmp3 = load i32, ptr %tmp1, align 8
++ %tmp4 = load i32, ptr %tmp2, align 8
+ %tmp5 = add i32 %tmp3, %tmp4
+ %tmp6 = add i32 %tmp0, %tmp5
+ %i.next = add nuw nsw i64 %i, 1
+@@ -137,46 +137,46 @@ for.end:
+ ; recognized as uniform, and it should not be uniform after vectorization.
+ ;
+ ; recognized as uniform, and it should not be uniform after vectorization.
+-; CHECK-NOT: LV: Found uniform instruction: %tmp1 = getelementptr inbounds %pair, %pair* %p, i64 %i, i32 0
+-; CHECK-NOT: LV: Found uniform instruction: %tmp2 = getelementptr inbounds %pair, %pair* %p, i64 %i, i32 1
++; CHECK-NOT: LV: Found uniform instruction: %tmp1 = getelementptr inbounds %pair, ptr %p, i64 %i, i32 0
++; CHECK-NOT: LV: Found uniform instruction: %tmp2 = getelementptr inbounds %pair, ptr %p, i64 %i, i32 1
+ ; CHECK: vector.body
+ ; CHECK: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
+ ; CHECK: %offset.idx = sub i64 %n, %index
+ ; CHECK: %[[I1:.+]] = add i64 %offset.idx, -1
+ ; CHECK: %[[I2:.+]] = add i64 %offset.idx, -2
+ ; CHECK: %[[I3:.+]] = add i64 %offset.idx, -3
+-; CHECK: getelementptr inbounds %pair, %pair* %p, i64 %offset.idx, i32 0
+-; CHECK: getelementptr inbounds %pair, %pair* %p, i64 %[[I1]], i32 0
+-; CHECK: getelementptr inbounds %pair, %pair* %p, i64 %[[I2]], i32 0
+-; CHECK: getelementptr inbounds %pair, %pair* %p, i64 %[[I3]], i32 0
+-; CHECK: getelementptr inbounds %pair, %pair* %p, i64 %offset.idx, i32 1
+-; CHECK: getelementptr inbounds %pair, %pair* %p, i64 %[[I1]], i32 1
+-; CHECK: getelementptr inbounds %pair, %pair* %p, i64 %[[I2]], i32 1
+-; CHECK: getelementptr inbounds %pair, %pair* %p, i64 %[[I3]], i32 1
++; CHECK: getelementptr inbounds %pair, ptr %p, i64 %offset.idx, i32 0
++; CHECK: getelementptr inbounds %pair, ptr %p, i64 %[[I1]], i32 0
++; CHECK: getelementptr inbounds %pair, ptr %p, i64 %[[I2]], i32 0
++; CHECK: getelementptr inbounds %pair, ptr %p, i64 %[[I3]], i32 0
++; CHECK: getelementptr inbounds %pair, ptr %p, i64 %offset.idx, i32 1
++; CHECK: getelementptr inbounds %pair, ptr %p, i64 %[[I1]], i32 1
++; CHECK: getelementptr inbounds %pair, ptr %p, i64 %[[I2]], i32 1
++; CHECK: getelementptr inbounds %pair, ptr %p, i64 %[[I3]], i32 1
+ ; CHECK: br i1 {{.*}}, label %middle.block, label %vector.body
+ ;
+-; INTER: LV: Found uniform instruction: %tmp1 = getelementptr inbounds %pair, %pair* %p, i64 %i, i32 0
+-; INTER: LV: Found uniform instruction: %tmp2 = getelementptr inbounds %pair, %pair* %p, i64 %i, i32 1
++; INTER: LV: Found uniform instruction: %tmp1 = getelementptr inbounds %pair, ptr %p, i64 %i, i32 0
++; INTER: LV: Found uniform instruction: %tmp2 = getelementptr inbounds %pair, ptr %p, i64 %i, i32 1
+ ; INTER: vector.body
+ ; INTER: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
+ ; INTER: %offset.idx = sub i64 %n, %index
+ ; INTER-NOT: getelementptr
+-; INTER: %[[G0:.+]] = getelementptr inbounds %pair, %pair* %p, i64 %offset.idx, i32 0
+-; INTER: getelementptr inbounds i32, i32* %[[G0]], i64 -6
++; INTER: %[[G0:.+]] = getelementptr inbounds %pair, ptr %p, i64 %offset.idx, i32 0
++; INTER: getelementptr inbounds i32, ptr %[[G0]], i64 -6
+ ; INTER-NOT: getelementptr
+ ; INTER: br i1 {{.*}}, label %middle.block, label %vector.body
+ ;
+-define i32 @interleaved_access_reverse(%pair* %p, i64 %n) {
++define i32 @interleaved_access_reverse(ptr %p, i64 %n) {
+ entry:
+ br label %for.body
+
+ for.body:
+ %i = phi i64 [ %i.next, %for.body ], [ %n, %entry ]
+ %tmp0 = phi i32 [ %tmp6, %for.body ], [ 0, %entry ]
+- %tmp1 = getelementptr inbounds %pair, %pair* %p, i64 %i, i32 0
+- %tmp2 = getelementptr inbounds %pair, %pair* %p, i64 %i, i32 1
+- %tmp3 = load i32, i32* %tmp1, align 8
+- %tmp4 = load i32, i32* %tmp2, align 8
++ %tmp1 = getelementptr inbounds %pair, ptr %p, i64 %i, i32 0
++ %tmp2 = getelementptr inbounds %pair, ptr %p, i64 %i, i32 1
++ %tmp3 = load i32, ptr %tmp1, align 8
++ %tmp4 = load i32, ptr %tmp2, align 8
+ %tmp5 = add i32 %tmp3, %tmp4
+ %tmp6 = add i32 %tmp0, %tmp5
+ %i.next = add nsw i64 %i, -1
+@@ -197,18 +197,17 @@ for.end:
+ ; as if it were uniform, the store is scalarized, making the pointer
+ ; non-uniform.
+ ;
+-; INTER-NOT: LV: Found uniform instruction: %tmp0 = getelementptr inbounds %pair, %pair* %p, i64 %i, i32 0
++; INTER-NOT: LV: Found uniform instruction: %tmp0 = getelementptr inbounds %pair, ptr %p, i64 %i, i32 0
+ ; INTER: vector.body
+ ; INTER: %index = phi i64 [ 0, %vector.ph ], [ %index.next, {{.*}} ]
+-; INTER: %[[G0:.+]] = getelementptr inbounds %pair, %pair* %p, i64 %index, i32 0
+-; INTER: %[[B0:.+]] = bitcast i32* %[[G0]] to <8 x i32>*
+-; INTER: %wide.vec = load <8 x i32>, <8 x i32>* %[[B0]], align 8
++; INTER: %[[G0:.+]] = getelementptr inbounds %pair, ptr %p, i64 %index, i32 0
++; INTER: %wide.vec = load <8 x i32>, ptr %[[G0]], align 8
+ ; INTER: %[[I1:.+]] = or i64 %index, 1
+-; INTER: getelementptr inbounds %pair, %pair* %p, i64 %[[I1]], i32 0
++; INTER: getelementptr inbounds %pair, ptr %p, i64 %[[I1]], i32 0
+ ; INTER: %[[I2:.+]] = or i64 %index, 2
+-; INTER: getelementptr inbounds %pair, %pair* %p, i64 %[[I2]], i32 0
++; INTER: getelementptr inbounds %pair, ptr %p, i64 %[[I2]], i32 0
+ ; INTER: %[[I3:.+]] = or i64 %index, 3
+-; INTER: getelementptr inbounds %pair, %pair* %p, i64 %[[I3]], i32 0
++; INTER: getelementptr inbounds %pair, ptr %p, i64 %[[I3]], i32 0
+ ; INTER: br i1 {{.*}}, label %middle.block, label %vector.body
+ ;
+ define void @predicated_store(%pair *%p, i32 %x, i64 %n) {
+@@ -217,13 +216,13 @@ entry:
+
+ for.body:
+ %i = phi i64 [ %i.next, %if.merge ], [ 0, %entry ]
+- %tmp0 = getelementptr inbounds %pair, %pair* %p, i64 %i, i32 0
+- %tmp1 = load i32, i32* %tmp0, align 8
++ %tmp0 = getelementptr inbounds %pair, ptr %p, i64 %i, i32 0
++ %tmp1 = load i32, ptr %tmp0, align 8
+ %tmp2 = icmp eq i32 %tmp1, %x
+ br i1 %tmp2, label %if.then, label %if.merge
+
+ if.then:
+- store i32 %tmp1, i32* %tmp0, align 8
++ store i32 %tmp1, ptr %tmp0, align 8
+ br label %if.merge
+
+ if.merge:
+@@ -241,27 +240,27 @@ for.end:
+ ; as uniform and is not uniform after vectorization. The store is scalarized
+ ; because the stored type may required padding.
+ ;
+-; CHECK-NOT: LV: Found uniform instruction: %tmp1 = getelementptr inbounds x86_fp80, x86_fp80* %a, i64 %i
++; CHECK-NOT: LV: Found uniform instruction: %tmp1 = getelementptr inbounds x86_fp80, ptr %a, i64 %i
+ ; CHECK: vector.body
+ ; CHECK: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
+ ; CHECK: %[[I1:.+]] = or i64 %index, 1
+ ; CHECK: %[[I2:.+]] = or i64 %index, 2
+ ; CHECK: %[[I3:.+]] = or i64 %index, 3
+-; CHECK: getelementptr inbounds x86_fp80, x86_fp80* %a, i64 %index
+-; CHECK: getelementptr inbounds x86_fp80, x86_fp80* %a, i64 %[[I1]]
+-; CHECK: getelementptr inbounds x86_fp80, x86_fp80* %a, i64 %[[I2]]
+-; CHECK: getelementptr inbounds x86_fp80, x86_fp80* %a, i64 %[[I3]]
++; CHECK: getelementptr inbounds x86_fp80, ptr %a, i64 %index
++; CHECK: getelementptr inbounds x86_fp80, ptr %a, i64 %[[I1]]
++; CHECK: getelementptr inbounds x86_fp80, ptr %a, i64 %[[I2]]
++; CHECK: getelementptr inbounds x86_fp80, ptr %a, i64 %[[I3]]
+ ; CHECK: br i1 {{.*}}, label %middle.block, label %vector.body
+ ;
+-define void @irregular_type(x86_fp80* %a, i64 %n) {
++define void @irregular_type(ptr %a, i64 %n) {
+ entry:
+ br label %for.body
+
+ for.body:
+ %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]
+ %tmp0 = sitofp i32 1 to x86_fp80
+- %tmp1 = getelementptr inbounds x86_fp80, x86_fp80* %a, i64 %i
+- store x86_fp80 %tmp0, x86_fp80* %tmp1, align 16
++ %tmp1 = getelementptr inbounds x86_fp80, ptr %a, i64 %i
++ store x86_fp80 %tmp0, ptr %tmp1, align 16
+ %i.next = add i64 %i, 1
+ %cond = icmp slt i64 %i.next, %n
+ br i1 %cond, label %for.body, label %for.end
+@@ -275,23 +274,24 @@ for.end:
+ ; Check that a pointer induction variable is recognized as uniform and remains
+ ; uniform after vectorization.
+ ;
+-; CHECK: LV: Found uniform instruction: %p = phi i32* [ %tmp03, %for.body ], [ %a, %entry ]
++; CHECK: LV: Found uniform instruction: %p = phi ptr [ %tmp03, %for.body ], [ %a, %entry ]
+ ; CHECK: vector.body
+ ; CHECK: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
+ ; CHECK-NOT: getelementptr
+-; CHECK: %next.gep = getelementptr i32, i32* %a, i64 %index
++; CHECK: [[SHL:%.+]] = shl i64 %index, 2
++; CHECK: %next.gep = getelementptr i8, ptr %a, i64 [[SHL]]
+ ; CHECK-NOT: getelementptr
+ ; CHECK: br i1 {{.*}}, label %middle.block, label %vector.body
+ ;
+-define void @pointer_iv_uniform(i32* %a, i32 %x, i64 %n) {
++define void @pointer_iv_uniform(ptr %a, i32 %x, i64 %n) {
+ entry:
+ br label %for.body
+
+ for.body:
+ %i = phi i64 [ %i.next, %for.body ], [ 0, %entry ]
+- %p = phi i32* [ %tmp03, %for.body ], [ %a, %entry ]
+- store i32 %x, i32* %p, align 8
+- %tmp03 = getelementptr inbounds i32, i32* %p, i32 1
++ %p = phi ptr [ %tmp03, %for.body ], [ %a, %entry ]
++ store i32 %x, ptr %p, align 8
++ %tmp03 = getelementptr inbounds i32, ptr %p, i32 1
+ %i.next = add nuw nsw i64 %i, 1
+ %cond = icmp slt i64 %i.next, %n
+ br i1 %cond, label %for.body, label %for.end
+@@ -307,42 +307,42 @@ for.end:
+ ; induction variable is used by getelementptr instructions that are non-uniform
+ ; due to scalarization of the stores.
+ ;
+-; INTER-NOT: LV: Found uniform instruction: %p = phi i32* [ %tmp03, %for.body ], [ %a, %entry ]
++; INTER-NOT: LV: Found uniform instruction: %p = phi ptr [ %tmp03, %for.body ], [ %a, %entry ]
+ ; INTER: vector.body
+ ; INTER: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
+-; INTER: %[[I0:.+]] = shl i64 %index, 2
+-; INTER: %next.gep = getelementptr i32, i32* %a, i64 %[[I0]]
+-; INTER: %[[S1:.+]] = shl i64 %index, 2
+-; INTER: %[[I1:.+]] = or i64 %[[S1]], 4
+-; INTER: %next.gep2 = getelementptr i32, i32* %a, i64 %[[I1]]
+-; INTER: %[[S2:.+]] = shl i64 %index, 2
+-; INTER: %[[I2:.+]] = or i64 %[[S2]], 8
+-; INTER: %next.gep3 = getelementptr i32, i32* %a, i64 %[[I2]]
+-; INTER: %[[S3:.+]] = shl i64 %index, 2
+-; INTER: %[[I3:.+]] = or i64 %[[S3]], 12
+-; INTER: %next.gep4 = getelementptr i32, i32* %a, i64 %[[I3]]
++; INTER: %[[I0:.+]] = shl i64 %index, 4
++; INTER: %next.gep = getelementptr i8, ptr %a, i64 %[[I0]]
++; INTER: %[[S1:.+]] = shl i64 %index, 4
++; INTER: %[[I1:.+]] = or i64 %[[S1]], 16
++; INTER: %next.gep2 = getelementptr i8, ptr %a, i64 %[[I1]]
++; INTER: %[[S2:.+]] = shl i64 %index, 4
++; INTER: %[[I2:.+]] = or i64 %[[S2]], 32
++; INTER: %next.gep3 = getelementptr i8, ptr %a, i64 %[[I2]]
++; INTER: %[[S3:.+]] = shl i64 %index, 4
++; INTER: %[[I3:.+]] = or i64 %[[S3]], 48
++; INTER: %next.gep4 = getelementptr i8, ptr %a, i64 %[[I3]]
+ ; INTER: br i1 {{.*}}, label %middle.block, label %vector.body
+ ;
+-define void @pointer_iv_non_uniform_0(i32* %a, i64 %n) {
++define void @pointer_iv_non_uniform_0(ptr %a, i64 %n) {
+ entry:
+ br label %for.body
+
+ for.body:
+ %i = phi i64 [ %i.next, %for.body ], [ 0, %entry ]
+- %p = phi i32* [ %tmp03, %for.body ], [ %a, %entry ]
+- %tmp00 = load i32, i32* %p, align 8
+- %tmp01 = getelementptr inbounds i32, i32* %p, i32 1
+- %tmp02 = load i32, i32* %tmp01, align 8
+- %tmp03 = getelementptr inbounds i32, i32* %p, i32 4
+- %tmp04 = load i32, i32* %tmp03, align 8
+- %tmp05 = getelementptr inbounds i32, i32* %p, i32 5
+- %tmp06 = load i32, i32* %tmp05, align 8
++ %p = phi ptr [ %tmp03, %for.body ], [ %a, %entry ]
++ %tmp00 = load i32, ptr %p, align 8
++ %tmp01 = getelementptr inbounds i32, ptr %p, i32 1
++ %tmp02 = load i32, ptr %tmp01, align 8
++ %tmp03 = getelementptr inbounds i32, ptr %p, i32 4
++ %tmp04 = load i32, ptr %tmp03, align 8
++ %tmp05 = getelementptr inbounds i32, ptr %p, i32 5
++ %tmp06 = load i32, ptr %tmp05, align 8
+ %tmp07 = sub i32 %tmp04, %tmp00
+ %tmp08 = sub i32 %tmp02, %tmp02
+- %tmp09 = getelementptr inbounds i32, i32* %p, i32 2
+- store i32 %tmp07, i32* %tmp09, align 8
+- %tmp10 = getelementptr inbounds i32, i32* %p, i32 3
+- store i32 %tmp08, i32* %tmp10, align 8
++ %tmp09 = getelementptr inbounds i32, ptr %p, i32 2
++ store i32 %tmp07, ptr %tmp09, align 8
++ %tmp10 = getelementptr inbounds i32, ptr %p, i32 3
++ store i32 %tmp08, ptr %tmp10, align 8
+ %i.next = add nuw nsw i64 %i, 1
+ %cond = icmp slt i64 %i.next, %n
+ br i1 %cond, label %for.body, label %for.end
+@@ -357,28 +357,32 @@ for.end:
+ ; recognized as uniform and is not uniform after vectorization. The pointer
+ ; induction variable is used by a store that will be scalarized.
+ ;
+-; CHECK-NOT: LV: Found uniform instruction: %p = phi x86_fp80* [%tmp1, %for.body], [%a, %entry]
++; CHECK-NOT: LV: Found uniform instruction: %p = phi ptr [%tmp1, %for.body], [%a, %entry]
+ ; CHECK: vector.body
+ ; CHECK: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
+-; CHECK: %next.gep = getelementptr x86_fp80, x86_fp80* %a, i64 %index
+-; CHECK: %[[I1:.+]] = or i64 %index, 1
+-; CHECK: %next.gep2 = getelementptr x86_fp80, x86_fp80* %a, i64 %[[I1]]
+-; CHECK: %[[I2:.+]] = or i64 %index, 2
+-; CHECK: %next.gep3 = getelementptr x86_fp80, x86_fp80* %a, i64 %[[I2]]
+-; CHECK: %[[I3:.+]] = or i64 %index, 3
+-; CHECK: %next.gep4 = getelementptr x86_fp80, x86_fp80* %a, i64 %[[I3]]
++; CHECK: [[SHL1:%.+]] = shl i64 %index, 4
++; CHECK: %next.gep = getelementptr i8, ptr %a, i64 [[SHL1]]
++; CHECK: [[SHL2:%.+]] = shl i64 %index, 4
++; CHECK: %[[I1:.+]] = or i64 [[SHL2]], 16
++; CHECK: %next.gep2 = getelementptr i8, ptr %a, i64 %[[I1]]
++; CHECK: [[SHL3:%.+]] = shl i64 %index, 4
++; CHECK: %[[I2:.+]] = or i64 [[SHL3]], 32
++; CHECK: %next.gep3 = getelementptr i8, ptr %a, i64 %[[I2]]
++; CHECK: [[SHL4:%.+]] = shl i64 %index, 4
++; CHECK: %[[I3:.+]] = or i64 [[SHL4]], 48
++; CHECK: %next.gep4 = getelementptr i8, ptr %a, i64 %[[I3]]
+ ; CHECK: br i1 {{.*}}, label %middle.block, label %vector.body
+ ;
+-define void @pointer_iv_non_uniform_1(x86_fp80* %a, i64 %n) {
++define void @pointer_iv_non_uniform_1(ptr %a, i64 %n) {
+ entry:
+ br label %for.body
+
+ for.body:
+ %i = phi i64 [ %i.next, %for.body ], [ 0, %entry ]
+- %p = phi x86_fp80* [%tmp1, %for.body], [%a, %entry]
++ %p = phi ptr [%tmp1, %for.body], [%a, %entry]
+ %tmp0 = sitofp i32 1 to x86_fp80
+- store x86_fp80 %tmp0, x86_fp80* %p, align 16
+- %tmp1 = getelementptr inbounds x86_fp80, x86_fp80* %p, i32 1
++ store x86_fp80 %tmp0, ptr %p, align 16
++ %tmp1 = getelementptr inbounds x86_fp80, ptr %p, i32 1
+ %i.next = add i64 %i, 1
+ %cond = icmp slt i64 %i.next, %n
+ br i1 %cond, label %for.body, label %for.end
+@@ -394,32 +398,32 @@ for.end:
+ ; variable is not recognized as uniform and is not uniform after vectorization
+ ; because it is stored to memory.
+ ;
+-; CHECK-NOT: LV: Found uniform instruction: %p = phi i32* [ %tmp3, %for.body ], [ %a, %entry ]
+-; CHECK: LV: Found uniform instruction: %q = phi i32** [ %tmp4, %for.body ], [ %b, %entry ]
++; CHECK-NOT: LV: Found uniform instruction: %p = phi ptr [ %tmp3, %for.body ], [ %a, %entry ]
++; CHECK: LV: Found uniform instruction: %q = phi ptr [ %tmp4, %for.body ], [ %b, %entry ]
+ ; CHECK: vector.body
+-; CHECK: %pointer.phi = phi i32* [ %a, %vector.ph ], [ %ptr.ind, %vector.body ]
++; CHECK: %pointer.phi = phi ptr [ %a, %vector.ph ], [ %ptr.ind, %vector.body ]
+ ; CHECK: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
+-; CHECK: %[[PTRVEC:.+]] = getelementptr i32, i32* %pointer.phi, <4 x i64> <i64 0, i64 1, i64 2, i64 3>
+-; CHECK: %next.gep = getelementptr i32*, i32** %b, i64 %index
+-; CHECK: %[[NEXTGEPBC:.+]] = bitcast i32** %next.gep to <4 x i32*>*
+-; CHECK: store <4 x i32*> %[[PTRVEC]], <4 x i32*>* %[[NEXTGEPBC]], align 8
+-; CHECK: %ptr.ind = getelementptr i32, i32* %pointer.phi, i64 4
++; CHECK: %[[PTRVEC:.+]] = getelementptr i8, ptr %pointer.phi, <4 x i64> <i64 0, i64 4, i64 8, i64 12>
++; CHECK: [[SHL:%.+]] = shl i64 %index, 3
++; CHECK: %next.gep = getelementptr i8, ptr %b, i64 [[SHL]]
++; CHECK: store <4 x ptr> %[[PTRVEC]], ptr %next.gep, align 8
++; CHECK: %ptr.ind = getelementptr i8, ptr %pointer.phi, i64 16
+ ; CHECK: br i1 {{.*}}, label %middle.block, label %vector.body
+ ;
+-define i32 @pointer_iv_mixed(i32* %a, i32** %b, i64 %n) {
++define i32 @pointer_iv_mixed(ptr %a, ptr %b, i64 %n) {
+ entry:
+ br label %for.body
+
+ for.body:
+ %i = phi i64 [ %i.next, %for.body ], [ 0, %entry ]
+- %p = phi i32* [ %tmp3, %for.body ], [ %a, %entry ]
+- %q = phi i32** [ %tmp4, %for.body ], [ %b, %entry ]
++ %p = phi ptr [ %tmp3, %for.body ], [ %a, %entry ]
++ %q = phi ptr [ %tmp4, %for.body ], [ %b, %entry ]
+ %tmp0 = phi i32 [ %tmp2, %for.body ], [ 0, %entry ]
+- %tmp1 = load i32, i32* %p, align 8
++ %tmp1 = load i32, ptr %p, align 8
+ %tmp2 = add i32 %tmp1, %tmp0
+- store i32* %p, i32** %q, align 8
+- %tmp3 = getelementptr inbounds i32, i32* %p, i32 1
+- %tmp4 = getelementptr inbounds i32*, i32** %q, i32 1
++ store ptr %p, ptr %q, align 8
++ %tmp3 = getelementptr inbounds i32, ptr %p, i32 1
++ %tmp4 = getelementptr inbounds ptr, ptr %q, i32 1
+ %i.next = add nuw nsw i64 %i, 1
+ %cond = icmp slt i64 %i.next, %n
+ br i1 %cond, label %for.body, label %for.end
+@@ -429,49 +433,47 @@ for.end:
+ ret i32 %tmp5
+ }
+
+-; INTER-LABEL: bitcast_pointer_operand
++; INTER-LABEL: pointer_operand_geps_with_different_indexed_types
+ ;
+ ; Check that a pointer operand having a user other than a memory access is
+-; recognized as uniform after vectorization. In this test case, %tmp1 is a
+-; bitcast that is used by a load and a getelementptr instruction (%tmp2). Once
+-; %tmp2 is marked uniform, %tmp1 should be marked uniform as well.
++; recognized as uniform after vectorization. In this test case, %tmp0 is a
++; GEP that is used by a load and a getelementptr instruction (%tmp2). Once
++; %tmp2 is marked uniform, %tmp0 should be marked uniform as well.
+ ;
+ ; INTER: LV: Found uniform instruction: %cond = icmp slt i64 %i.next, %n
+-; INTER-NEXT: LV: Found uniform instruction: %tmp2 = getelementptr inbounds i8, i8* %tmp1, i64 3
+-; INTER-NEXT: LV: Found uniform instruction: %tmp6 = getelementptr inbounds i8, i8* %B, i64 %i
+-; INTER-NEXT: LV: Found uniform instruction: %tmp1 = bitcast i64* %tmp0 to i8*
+-; INTER-NEXT: LV: Found uniform instruction: %tmp0 = getelementptr inbounds i64, i64* %A, i64 %i
++; INTER-NEXT: LV: Found uniform instruction: %tmp2 = getelementptr inbounds i8, ptr %tmp0, i64 3
++; INTER-NEXT: LV: Found uniform instruction: %tmp6 = getelementptr inbounds i8, ptr %B, i64 %i
++; INTER-NEXT: LV: Found uniform instruction: %tmp0 = getelementptr inbounds i64, ptr %A, i64 %i
+ ; INTER-NEXT: LV: Found uniform instruction: %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]
+ ; INTER-NEXT: LV: Found uniform instruction: %i.next = add nuw nsw i64 %i, 1
+-; INTER: define void @bitcast_pointer_operand(
++; INTER: define void @pointer_operand_geps_with_different_indexed_types(
+ ; INTER: vector.body:
+ ; INTER-NEXT: [[INDEX:%.*]] = phi i64 [ 0, %vector.ph ], [ [[INDEX_NEXT:%.*]], %vector.body ]
+-; INTER-NEXT: [[TMP4:%.*]] = getelementptr inbounds i64, i64* %A, i64 [[INDEX]]
+-; INTER-NEXT: [[TMP5:%.*]] = bitcast i64* [[TMP4]] to <32 x i8>*
+-; INTER-NEXT: [[WIDE_VEC:%.*]] = load <32 x i8>, <32 x i8>* [[TMP5]], align 1
++; INTER-NEXT: [[TMP4:%.*]] = getelementptr inbounds i64, ptr %A, i64 [[INDEX]]
++; INTER-NEXT: [[TMP5:%.*]] = getelementptr inbounds i8, ptr [[TMP4]], i64 3
++; INTER-NEXT: [[TMP6:%.*]] = getelementptr inbounds i8, ptr [[TMP5]], i64 -3
++; INTER-NEXT: [[WIDE_VEC:%.*]] = load <32 x i8>, ptr [[TMP6]], align 1
+ ; INTER-NEXT: [[STRIDED_VEC:%.*]] = shufflevector <32 x i8> [[WIDE_VEC]], <32 x i8> poison, <4 x i32> <i32 0, i32 8, i32 16, i32 24>
+ ; INTER-NEXT: [[STRIDED_VEC5:%.*]] = shufflevector <32 x i8> [[WIDE_VEC]], <32 x i8> poison, <4 x i32> <i32 3, i32 11, i32 19, i32 27>
+ ; INTER-NEXT: [[TMP6:%.*]] = xor <4 x i8> [[STRIDED_VEC5]], [[STRIDED_VEC]]
+-; INTER-NEXT: [[TMP7:%.*]] = getelementptr inbounds i8, i8* %B, i64 [[INDEX]]
+-; INTER-NEXT: [[TMP8:%.*]] = bitcast i8* [[TMP7]] to <4 x i8>*
+-; INTER-NEXT: store <4 x i8> [[TMP6]], <4 x i8>* [[TMP8]], align 1
++; INTER-NEXT: [[TMP7:%.*]] = getelementptr inbounds i8, ptr %B, i64 [[INDEX]]
++; INTER-NEXT: store <4 x i8> [[TMP6]], ptr [[TMP7]], align 1
+ ; INTER-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], 4
+ ; INTER: br i1 {{.*}}, label %middle.block, label %vector.body
+ ;
+-define void @bitcast_pointer_operand(i64* %A, i8* %B, i64 %n) {
++define void @pointer_operand_geps_with_different_indexed_types(i64* %A, i8* %B, i64 %n) {
+ entry:
+ br label %for.body
+
+ for.body:
+ %i = phi i64 [ 0, %entry ], [ %i.next, %for.body ]
+- %tmp0 = getelementptr inbounds i64, i64* %A, i64 %i
+- %tmp1 = bitcast i64* %tmp0 to i8*
+- %tmp2 = getelementptr inbounds i8, i8* %tmp1, i64 3
+- %tmp3 = load i8, i8* %tmp2, align 1
+- %tmp4 = load i8, i8* %tmp1, align 1
++ %tmp0 = getelementptr inbounds i64, ptr %A, i64 %i
++ %tmp2 = getelementptr inbounds i8, ptr %tmp0, i64 3
++ %tmp3 = load i8, ptr %tmp2, align 1
++ %tmp4 = load i8, ptr %tmp0, align 1
+ %tmp5 = xor i8 %tmp3, %tmp4
+- %tmp6 = getelementptr inbounds i8, i8* %B, i64 %i
+- store i8 %tmp5, i8* %tmp6
++ %tmp6 = getelementptr inbounds i8, ptr %B, i64 %i
++ store i8 %tmp5, ptr %tmp6
+ %i.next = add nuw nsw i64 %i, 1
+ %cond = icmp slt i64 %i.next, %n
+ br i1 %cond, label %for.body, label %for.end
+--
+2.41.0
+
diff --git a/main/llvm16/9003-LV-Add-test-where-pointer-is-incorrectly-marked-as-u.patch b/main/llvm16/9003-LV-Add-test-where-pointer-is-incorrectly-marked-as-u.patch
new file mode 100644
index 00000000000..e09e8be9018
--- /dev/null
+++ b/main/llvm16/9003-LV-Add-test-where-pointer-is-incorrectly-marked-as-u.patch
@@ -0,0 +1,55 @@
+From 3e4888751641fbbfb99b7579f0d5f4d3df567fbf Mon Sep 17 00:00:00 2001
+From: Florian Hahn <flo@fhahn.com>
+Date: Fri, 17 Mar 2023 14:23:56 +0000
+Subject: [PATCH 03/10] [LV] Add test where pointer is incorrectly marked as
+ uniform.
+
+Test for #61396.
+
+Gentoo-Component: llvm
+---
+ .../LoopVectorize/consecutive-ptr-uniforms.ll | 31 +++++++++++++++++++
+ 1 file changed, 31 insertions(+)
+
+diff --git a/llvm/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll b/llvm/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll
+index e4129747898b..8431972f78ee 100644
+--- a/llvm/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll
++++ b/llvm/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll
+@@ -481,3 +481,34 @@ for.body:
+ for.end:
+ ret void
+ }
++
++
++; FIXME: Currently %cur.ptr is incorrectly identified as uniform.
++
++; CHECK-LABEL: pr61396_pointer_used_as_both_stored_value_and_pointer_operand_by_store
++; CHECK: LV: Found uniform instruction: %cur.ptr = getelementptr inbounds ptr, ptr %ary, i64 %iv
++
++; CHECK: define void @pr61396_pointer_used_as_both_stored_value_and_pointer_operand_by_store(
++; CHECK: vector.body:
++; CHECK-NEXT: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
++; CHECK-NEXT: [[GEP:%.+]] = getelementptr inbounds ptr, ptr %ary, i64 %index
++; CHECK-NEXT: [[INS:%.+]] = insertelement <4 x ptr> poison, ptr [[GEP]], i64 0
++; CHECK-NEXT: [[SPLAT:%.+]] = shufflevector <4 x ptr> %broadcast.splatinsert, <4 x ptr> poison, <4 x i32> zeroinitializer
++; CHECK-NEXT: store <4 x ptr> [[SPLAT]], ptr [[GEP]], align 8
++;
++
++define void @pr61396_pointer_used_as_both_stored_value_and_pointer_operand_by_store(ptr %ary) {
++entry:
++ br label %loop
++
++loop:
++ %iv = phi i64 [ 0, %entry ], [ %iv.next, %loop ]
++ %cur.ptr = getelementptr inbounds ptr, ptr %ary, i64 %iv
++ store ptr %cur.ptr, ptr %cur.ptr, align 8
++ %iv.next = add nuw nsw i64 %iv, 1
++ %done = icmp eq i64 %iv, 10240
++ br i1 %done, label %exit, label %loop
++
++exit:
++ ret void
++}
+--
+2.41.0
+
diff --git a/main/llvm16/9004-LV-Don-t-consider-pointer-as-uniform-if-it-is-also-s.patch b/main/llvm16/9004-LV-Don-t-consider-pointer-as-uniform-if-it-is-also-s.patch
new file mode 100644
index 00000000000..be393247c58
--- /dev/null
+++ b/main/llvm16/9004-LV-Don-t-consider-pointer-as-uniform-if-it-is-also-s.patch
@@ -0,0 +1,129 @@
+From 13375bc7bbafc690823cbd9f284b70ac222d80bc Mon Sep 17 00:00:00 2001
+From: Florian Hahn <flo@fhahn.com>
+Date: Fri, 17 Mar 2023 16:26:07 +0000
+Subject: [PATCH 04/10] [LV] Don't consider pointer as uniform if it is also
+ stored.
+
+Update isVectorizedMemAccessUse to also check if the pointer is stored.
+This prevents LV to incorrectly consider a pointer as uniform if it is
+used as both pointer and stored by the same StoreInst.
+
+Fixes #61396.
+
+Gentoo-Component: llvm
+---
+ .../Transforms/Vectorize/LoopVectorize.cpp | 16 +++++++++-----
+ .../LoopVectorize/consecutive-ptr-uniforms.ll | 13 +++++------
+ .../Transforms/LoopVectorize/opaque-ptr.ll | 22 ++++++++-----------
+ 3 files changed, 25 insertions(+), 26 deletions(-)
+
+diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+index 148f2c545b41..0bd519a6d945 100644
+--- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
++++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
+@@ -4689,11 +4689,17 @@ void LoopVectorizationCostModel::collectLoopUniforms(ElementCount VF) {
+ WideningDecision == CM_Interleave);
+ };
+
+-
+ // Returns true if Ptr is the pointer operand of a memory access instruction
+- // I, and I is known to not require scalarization.
++ // I, I is known to not require scalarization, and the pointer is not also
++ // stored.
+ auto isVectorizedMemAccessUse = [&](Instruction *I, Value *Ptr) -> bool {
+- return getLoadStorePointerOperand(I) == Ptr && isUniformDecision(I, VF);
++ auto GetStoredValue = [I]() -> Value * {
++ if (!isa<StoreInst>(I))
++ return nullptr;
++ return I->getOperand(0);
++ };
++ return getLoadStorePointerOperand(I) == Ptr && isUniformDecision(I, VF) &&
++ GetStoredValue() != Ptr;
+ };
+
+ // Holds a list of values which are known to have at least one uniform use.
+@@ -4739,8 +4745,8 @@ void LoopVectorizationCostModel::collectLoopUniforms(ElementCount VF) {
+ if (isUniformMemOpUse(&I))
+ addToWorklistIfAllowed(&I);
+
+- if (isUniformDecision(&I, VF)) {
+- assert(isVectorizedMemAccessUse(&I, Ptr) && "consistency check");
++ if (isVectorizedMemAccessUse(&I, Ptr)) {
++ assert(isUniformDecision(&I, VF) && "consistency check");
+ HasUniformUse.insert(Ptr);
+ }
+ }
+diff --git a/llvm/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll b/llvm/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll
+index 8431972f78ee..29b2c4533e39 100644
+--- a/llvm/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll
++++ b/llvm/test/Transforms/LoopVectorize/consecutive-ptr-uniforms.ll
+@@ -482,19 +482,16 @@ for.end:
+ ret void
+ }
+
+-
+-; FIXME: Currently %cur.ptr is incorrectly identified as uniform.
+-
+ ; CHECK-LABEL: pr61396_pointer_used_as_both_stored_value_and_pointer_operand_by_store
+-; CHECK: LV: Found uniform instruction: %cur.ptr = getelementptr inbounds ptr, ptr %ary, i64 %iv
++; CHECK-NOT: LV: Found uniform instruction: %cur.ptr = getelementptr inbounds ptr, ptr %ary, i64 %iv
+
+ ; CHECK: define void @pr61396_pointer_used_as_both_stored_value_and_pointer_operand_by_store(
+ ; CHECK: vector.body:
+ ; CHECK-NEXT: %index = phi i64 [ 0, %vector.ph ], [ %index.next, %vector.body ]
+-; CHECK-NEXT: [[GEP:%.+]] = getelementptr inbounds ptr, ptr %ary, i64 %index
+-; CHECK-NEXT: [[INS:%.+]] = insertelement <4 x ptr> poison, ptr [[GEP]], i64 0
+-; CHECK-NEXT: [[SPLAT:%.+]] = shufflevector <4 x ptr> %broadcast.splatinsert, <4 x ptr> poison, <4 x i32> zeroinitializer
+-; CHECK-NEXT: store <4 x ptr> [[SPLAT]], ptr [[GEP]], align 8
++; CHECK-NEXT: [[VEC_IND:%.+]] = phi <4 x i64> [ <i64 0, i64 1, i64 2, i64 3>, %vector.ph ], [ %vec.ind.next, %vector.body ]
++; CHECK-NEXT: [[GEP:%.+]] = getelementptr inbounds ptr, ptr %ary, <4 x i64> [[VEC_IND]]
++; CHECK-NEXT: [[EXT:%.+]] = extractelement <4 x ptr> [[GEP]], i64 0
++; CHECK-NEXT: store <4 x ptr> [[GEP]], ptr [[EXT]], align 8
+ ;
+
+ define void @pr61396_pointer_used_as_both_stored_value_and_pointer_operand_by_store(ptr %ary) {
+diff --git a/llvm/test/Transforms/LoopVectorize/opaque-ptr.ll b/llvm/test/Transforms/LoopVectorize/opaque-ptr.ll
+index 5ec653531379..bb58173f63e1 100644
+--- a/llvm/test/Transforms/LoopVectorize/opaque-ptr.ll
++++ b/llvm/test/Transforms/LoopVectorize/opaque-ptr.ll
+@@ -57,20 +57,16 @@ define void @store_pointer_induction(ptr %start, ptr %end) {
+ ; CHECK-NEXT: [[IND_END:%.*]] = getelementptr i8, ptr [[START]], i64 [[TMP4]]
+ ; CHECK-NEXT: br label [[VECTOR_BODY:%.*]]
+ ; CHECK: vector.body:
++; CHECK-NEXT: [[POINTER_PHI:%.*]] = phi ptr [ [[START]], [[VECTOR_PH]] ], [ [[PTR_IND:%.*]], [[VECTOR_BODY]] ]
+ ; CHECK-NEXT: [[INDEX:%.*]] = phi i64 [ 0, [[VECTOR_PH]] ], [ [[INDEX_NEXT:%.*]], [[VECTOR_BODY]] ]
+-; CHECK-NEXT: [[TMP5:%.*]] = add i64 [[INDEX]], 0
+-; CHECK-NEXT: [[TMP6:%.*]] = mul i64 [[TMP5]], 8
+-; CHECK-NEXT: [[NEXT_GEP:%.*]] = getelementptr i8, ptr [[START]], i64 [[TMP6]]
+-; CHECK-NEXT: [[TMP7:%.*]] = add i64 [[INDEX]], 1
+-; CHECK-NEXT: [[TMP8:%.*]] = mul i64 [[TMP7]], 8
+-; CHECK-NEXT: [[NEXT_GEP3:%.*]] = getelementptr i8, ptr [[START]], i64 [[TMP8]]
+-; CHECK-NEXT: [[TMP9:%.*]] = insertelement <2 x ptr> poison, ptr [[NEXT_GEP]], i32 0
+-; CHECK-NEXT: [[TMP10:%.*]] = insertelement <2 x ptr> [[TMP9]], ptr [[NEXT_GEP3]], i32 1
+-; CHECK-NEXT: [[TMP11:%.*]] = getelementptr ptr, ptr [[NEXT_GEP]], i32 0
+-; CHECK-NEXT: store <2 x ptr> [[TMP10]], ptr [[TMP11]], align 4
++; CHECK-NEXT: [[TMP5:%.*]] = getelementptr i8, ptr [[POINTER_PHI]], <2 x i64> <i64 0, i64 8>
++; CHECK-NEXT: [[TMP6:%.*]] = extractelement <2 x ptr> [[TMP5]], i32 0
++; CHECK-NEXT: [[TMP7:%.*]] = getelementptr ptr, ptr [[TMP6]], i32 0
++; CHECK-NEXT: store <2 x ptr> [[TMP5]], ptr [[TMP7]], align 4
+ ; CHECK-NEXT: [[INDEX_NEXT]] = add nuw i64 [[INDEX]], 2
+-; CHECK-NEXT: [[TMP12:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
+-; CHECK-NEXT: br i1 [[TMP12]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
++; CHECK-NEXT: [[PTR_IND]] = getelementptr i8, ptr [[POINTER_PHI]], i64 16
++; CHECK-NEXT: [[TMP8:%.*]] = icmp eq i64 [[INDEX_NEXT]], [[N_VEC]]
++; CHECK-NEXT: br i1 [[TMP8]], label [[MIDDLE_BLOCK:%.*]], label [[VECTOR_BODY]], !llvm.loop [[LOOP0:![0-9]+]]
+ ; CHECK: middle.block:
+ ; CHECK-NEXT: [[CMP_N:%.*]] = icmp eq i64 [[TMP3]], [[N_VEC]]
+ ; CHECK-NEXT: br i1 [[CMP_N]], label [[EXIT:%.*]], label [[SCALAR_PH]]
+@@ -82,7 +78,7 @@ define void @store_pointer_induction(ptr %start, ptr %end) {
+ ; CHECK-NEXT: store ptr [[IV]], ptr [[IV]], align 4
+ ; CHECK-NEXT: [[IV_NEXT]] = getelementptr inbounds ptr, ptr [[IV]], i32 1
+ ; CHECK-NEXT: [[EXITCOND:%.*]] = icmp eq ptr [[IV_NEXT]], [[END]]
+-; CHECK-NEXT: br i1 [[EXITCOND]], label [[EXIT]], label [[LOOP]], !llvm.loop [[LOOP2:![0-9]+]]
++; CHECK-NEXT: br i1 [[EXITCOND]], label [[EXIT]], label [[LOOP]], !llvm.loop [[LOOP3:![0-9]+]]
+ ; CHECK: exit:
+ ; CHECK-NEXT: ret void
+ ;
+--
+2.41.0
+
diff --git a/main/llvm16/9011-AArch64CompressJumpTables-prevent-over-compression.patch b/main/llvm16/9011-AArch64CompressJumpTables-prevent-over-compression.patch
new file mode 100644
index 00000000000..01c6a234353
--- /dev/null
+++ b/main/llvm16/9011-AArch64CompressJumpTables-prevent-over-compression.patch
@@ -0,0 +1,165 @@
+From 957e85ce449ab281fbbdc99c5546b928d5b2fb7b Mon Sep 17 00:00:00 2001
+From: Paul Walker <paul.walker@arm.com>
+Date: Tue, 6 Jun 2023 18:21:16 +0100
+Subject: [PATCH] [AArch64CompressJumpTables] Prevent over-compression caused
+ by invalid alignment.
+
+AArch64CompressJumpTables assumes it can calculate exact block
+offsets. This assumption is bogus because getInstSizeInBytes()
+only returns an upper bound rather than an exact size. The
+assumption is also invalid when a block alignment is bigger than
+the function's alignment.
+
+To mitigate both scenarios this patch changes the algorithm to
+compute the maximum upper bound for all block offsets. This is
+pessimistic but safe because all offsets are treated as unsigned.
+
+Differential Revision: https://reviews.llvm.org/D150009
+
+(cherry picked from commit 31c485c99024edf267b505070f87473fd397eb6a)
+---
+ .../AArch64/AArch64CompressJumpTables.cpp | 17 ++--
+ .../CodeGen/AArch64/jump-table-compress.mir | 85 +++++++++++++++++++
+ 2 files changed, 94 insertions(+), 8 deletions(-)
+
+diff --git a/llvm/lib/Target/AArch64/AArch64CompressJumpTables.cpp b/llvm/lib/Target/AArch64/AArch64CompressJumpTables.cpp
+index 75abe9c53e3b..7d14d2d20bad 100644
+--- a/llvm/lib/Target/AArch64/AArch64CompressJumpTables.cpp
++++ b/llvm/lib/Target/AArch64/AArch64CompressJumpTables.cpp
+@@ -37,7 +37,7 @@ class AArch64CompressJumpTables : public MachineFunctionPass {
+ MachineFunction *MF;
+ SmallVector<int, 8> BlockInfo;
+
+- /// Returns the size in instructions of the block \p MBB, or std::nullopt if
++ /// Returns the size of instructions in the block \p MBB, or std::nullopt if
+ /// we couldn't get a safe upper bound.
+ std::optional<int> computeBlockSize(MachineBasicBlock &MBB);
+
+@@ -88,19 +88,20 @@ bool AArch64CompressJumpTables::scanFunction() {
+ BlockInfo.clear();
+ BlockInfo.resize(MF->getNumBlockIDs());
+
++ // NOTE: BlockSize, Offset, OffsetAfterAlignment are all upper bounds.
++
+ unsigned Offset = 0;
+ for (MachineBasicBlock &MBB : *MF) {
+ const Align Alignment = MBB.getAlignment();
+- unsigned AlignedOffset;
+- if (Alignment == Align(1))
+- AlignedOffset = Offset;
+- else
+- AlignedOffset = alignTo(Offset, Alignment);
+- BlockInfo[MBB.getNumber()] = AlignedOffset;
++ unsigned OffsetAfterAlignment = Offset;
++ // We don't know the exact size of MBB so assume worse case padding.
++ if (Alignment > Align(4))
++ OffsetAfterAlignment += Alignment.value() - 4;
++ BlockInfo[MBB.getNumber()] = OffsetAfterAlignment;
+ auto BlockSize = computeBlockSize(MBB);
+ if (!BlockSize)
+ return false;
+- Offset = AlignedOffset + *BlockSize;
++ Offset = OffsetAfterAlignment + *BlockSize;
+ }
+ return true;
+ }
+diff --git a/llvm/test/CodeGen/AArch64/jump-table-compress.mir b/llvm/test/CodeGen/AArch64/jump-table-compress.mir
+index a46b7c6ac9c0..375357f4fd5c 100644
+--- a/llvm/test/CodeGen/AArch64/jump-table-compress.mir
++++ b/llvm/test/CodeGen/AArch64/jump-table-compress.mir
+@@ -5,6 +5,7 @@
+ }
+
+ define void @test_inline_asm_no_compress() { ret void }
++ define void @test_bb_alignment_not_byte_compressable() { ret void }
+
+ ...
+ ---
+@@ -197,3 +198,87 @@ body: |
+ RET undef $lr, implicit $w0
+
+ ...
++---
++name: test_bb_alignment_not_byte_compressable
++alignment: 4
++tracksRegLiveness: true
++liveins:
++ - { reg: '$w0' }
++ - { reg: '$w1' }
++ - { reg: '$w2' }
++frameInfo:
++ maxAlignment: 1
++ maxCallFrameSize: 0
++machineFunctionInfo:
++ hasRedZone: false
++jumpTable:
++ kind: label-difference32
++ entries:
++ - id: 0
++ blocks: [ '%bb.2', '%bb.4', '%bb.5', '%bb.6', '%bb.7', '%bb.8' ]
++body: |
++ bb.0:
++ successors: %bb.3(0x12492492), %bb.1(0x6db6db6e)
++ liveins: $w0, $w1, $w2
++
++ dead $wzr = SUBSWri renamable $w0, 5, 0, implicit-def $nzcv
++ Bcc 8, %bb.3, implicit $nzcv
++
++ bb.1:
++ successors: %bb.2, %bb.4, %bb.5, %bb.6, %bb.7, %bb.8
++ liveins: $w0, $w1, $w2
++ ; Ensure there's no jump table compression when block alignments are bigger
++ ; than the function alignment because we don't known the padding length at
++ ; the point where compression is done.
++ ; CHECK-LABEL: test_bb_alignment_not_byte_compressable
++ ; CHECK-LABEL: bb.1
++ ; CHECK: JumpTableDest16
++ renamable $w8 = ORRWrs $wzr, killed renamable $w0, 0, implicit-def $x8
++ $x9 = ADRP target-flags(aarch64-page) %jump-table.0
++ renamable $x9 = ADDXri $x9, target-flags(aarch64-pageoff, aarch64-nc) %jump-table.0, 0
++ early-clobber renamable $x10, dead early-clobber renamable $x11 = JumpTableDest32 killed renamable $x9, killed renamable $x8, %jump-table.0
++ BR killed renamable $x10
++
++ bb.2:
++ liveins: $w1, $w2
++ $w0 = ADDWrs killed renamable $w2, killed renamable $w1, 0
++ RET undef $lr, implicit $w0
++
++ bb.3:
++ $w0 = MOVZWi 0, 0
++ RET undef $lr, implicit $w0
++
++ bb.4:
++ liveins: $w1, $w2
++
++ renamable $w0 = nsw MADDWrrr killed renamable $w2, killed renamable $w1, $wzr
++ RET undef $lr, implicit $w0
++
++ ; bb.5 is aligned to make it more that 256 instructions away from bb.1, which
++ ; means we can no longer assume the jump table will be byte indexable.
++ bb.5 (align 1024):
++ liveins: $w1, $w2
++
++ $w0 = SUBWrs killed renamable $w1, killed renamable $w2, 0
++ RET undef $lr, implicit $w0
++
++ bb.6:
++ liveins: $w1, $w2
++
++ $w0 = SUBWrs killed renamable $w2, killed renamable $w1, 0
++ RET undef $lr, implicit $w0
++
++ bb.7:
++ liveins: $w1, $w2
++
++ renamable $w0 = MADDWrrr killed renamable $w1, renamable $w1, killed renamable $w2
++ RET undef $lr, implicit $w0
++
++ bb.8:
++ liveins: $w1, $w2
++
++ renamable $w8 = nsw MADDWrrr renamable $w2, renamable $w2, $wzr
++ renamable $w0 = MADDWrrr killed renamable $w8, killed renamable $w2, killed renamable $w1
++ RET undef $lr, implicit $w0
++
++...
diff --git a/main/llvm16/APKBUILD b/main/llvm16/APKBUILD
new file mode 100644
index 00000000000..26cc29992c7
--- /dev/null
+++ b/main/llvm16/APKBUILD
@@ -0,0 +1,362 @@
+# Contributor: Rasmus Thomsen <oss@cogitri.dev>
+# Contributor: Martell Malone <martell@marinelayer.io>
+# Contributor: Travis Tilley <ttilley@gmail.com>
+# Contributor: Mitch Tishmack <mitch.tishmack@gmail.com>
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Contributor: Ariadne Conill <ariadne@dereferenced.org>
+# Contributor: omni <omni+alpine@hack.org>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+_pkgname=llvm
+pkgver=16.0.6
+_majorver=${pkgver%%.*}
+pkgname=$_pkgname$_majorver
+pkgrel=8
+pkgdesc="Low Level Virtual Machine compiler system, version $_majorver"
+arch="all"
+url="https://llvm.org/"
+license="Apache-2.0"
+depends_dev="$pkgname=$pkgver-r$pkgrel libffi-dev zlib-dev zstd-dev"
+# See https://gitlab.alpinelinux.org/alpine/aports/-/commit/51d2fba931fb2ef0046dea19405a9290c8735051#note_234651
+[ -z "$BOOTSTRAP" ] && depends_dev="$depends_dev $pkgname-test-utils=$pkgver-r$pkgrel"
+makedepends_host="$depends_dev binutils-dev libxml2-dev"
+makedepends_build="cmake chrpath python3 py3-setuptools samurai"
+# diffutils for diff: unrecognized option: strip-trailing-cr
+# coreutils for 'od' binary
+checkdepends="bash coreutils diffutils"
+subpackages="$pkgname-static $pkgname-libs $pkgname-linker-tools:linktools $pkgname-dev $pkgname-test-utils-pyc $pkgname-test-utils:_test_utils"
+source="https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/llvm-project-$pkgver.src.tar.xz
+ 0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch
+ allocscore.patch
+ fix-memory-mf_exec-on-aarch64.patch
+ install-prefix.patch
+ llvm-stack-size.patch
+ ppc64le-miscompile.patch
+ rust-feature-tables.patch
+ 9001-CMake-Quote-variables-where-TARGET-may-be-a-value.patch
+ 9002-LV-Convert-consecutive-ptr-uniforms.ll-to-use-opaque.patch
+ 9003-LV-Add-test-where-pointer-is-incorrectly-marked-as-u.patch
+ 9004-LV-Don-t-consider-pointer-as-uniform-if-it-is-also-s.patch
+ 9011-AArch64CompressJumpTables-prevent-over-compression.patch
+ LoongArch-Assume-no-op-addrspacecasts-by-default.patch
+ "
+builddir="$srcdir/$_pkgname-project-$pkgver.src"
+
+# Whether is this package the default (latest) LLVM version.
+_default_llvm="no"
+
+# If crosscompiling, we need llvm-tblgen on the build machine.
+if [ "$CBUILD" != "$CHOST" ]; then
+ _llvm_tblgen="llvm-tblgen"
+ if [ "$_default_llvm" = no ]; then
+ _llvm_tblgen="llvm$_majorver-tblgen"
+ fi
+ makedepends_build="$makedepends_build cmd:$_llvm_tblgen"
+ cmake_cross_options="
+ -DCMAKE_CROSSCOMPILING=ON
+ -DLLVM_TABLEGEN=/usr/bin/$_llvm_tblgen
+ "
+fi
+
+if [ "$_default_llvm" = yes ]; then
+ provides="llvm=$pkgver-r$pkgrel"
+ replaces="llvm"
+fi
+
+# explicit override for previous version as well
+replaces="llvm15"
+
+# 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
+
+ cd llvm
+
+ # Known broken test on musl
+ rm -v test/CodeGen/AArch64/wineh4.mir
+ # https://github.com/llvm/llvm-project/issues/47657
+ rm -v test/ExecutionEngine/Interpreter/intrinsics.ll
+
+ case "$CARCH" in
+ x86)
+ rm -v test/Object/macho-invalid.test \
+ test/tools/llvm-size/radix.test \
+ unittests/Support/JSONTest.cpp
+ sed -i "/JSONTest.cpp/d" \
+ unittests/Support/CMakeLists.txt
+ ;;
+ arm*)
+ rm -v test/tools/llvm-readobj/ELF/dependent-libraries.test \
+ test/Object/macho-invalid.test \
+ test/tools/llvm-size/radix.test \
+ test/tools/gold/X86/split-dwarf.ll \
+ test/ExecutionEngine/frem.ll \
+ test/tools/llvm-dwarfdump/X86/prettyprint_types.s \
+ test/tools/llvm-dwarfdump/X86/simplified-template-names.s \
+ unittests/ExecutionEngine/Orc/OrcCAPITest.cpp
+ sed -i "/OrcCAPITest.cpp/d" \
+ unittests/ExecutionEngine/Orc/CMakeLists.txt
+ ;;
+ esac
+
+ # Known broken codegen for Hexagon target, reported upstream.
+ # https://github.com/llvm/llvm-project/issues/48936
+ rm -v \
+ test/CodeGen/Hexagon/csr-stubs-spill-threshold.ll \
+ test/CodeGen/Hexagon/long-calls.ll \
+ test/CodeGen/Hexagon/mlong-calls.ll \
+ test/CodeGen/Hexagon/pic-regusage.ll \
+ test/CodeGen/Hexagon/runtime-stkchk.ll \
+ test/CodeGen/Hexagon/swp-memrefs-epilog.ll \
+ test/CodeGen/Hexagon/vararg-formal.ll \
+ test/tools/llvm-objcopy/MachO/universal-object.test \
+ test/DebugInfo/X86/vla-multi.ll
+
+ # XXX: why does this fail for me locally
+ rm -v \
+ test/tools/yaml2obj/ELF/header-elfdatanone.yaml
+
+ # XXX: fail when built with gcc13
+ rm -v \
+ test/CodeGen/X86/vector-interleaved-load-i32-stride-4.ll \
+ test/Transforms/SampleProfile/pseudo-probe-update-2.ll \
+ test/Transforms/SampleProfile/pseudo-probe-update.ll \
+ test/Transforms/LoopUnroll/peel-branch-weights.ll
+}
+
+build() {
+ # Auto-detect it by guessing either.
+ local ffi_include_dir="$(pkg-config --cflags-only-I libffi | sed 's|^-I||g')"
+
+ # tries linking host libzstd in cross
+ if [ -n "$BOOTSTRAP" ]; then
+ local zstd=OFF
+ else
+ local zstd=ON
+ fi
+
+ # NOTE: DO NOT change CMAKE_BUILD_TYPE! Buildmodes like None will enable
+ # debug assertions for LLVM!
+ cmake -B build -G Ninja -Wno-dev -S llvm \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/$_prefix \
+ -DCMAKE_INSTALL_RPATH=/$_prefix \
+ \
+ -DLLVM_DEFAULT_TARGET_TRIPLE="$CBUILD" \
+ -DLLVM_HOST_TRIPLE="$CHOST" \
+ \
+ -DFFI_INCLUDE_DIR="$ffi_include_dir" \
+ -DLLVM_APPEND_VC_REV=OFF \
+ -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="$(want_check && echo ON || echo OFF)" \
+ -DLLVM_ENABLE_ASSERTIONS=OFF \
+ -DLLVM_ENABLE_DUMP=ON \
+ -DLLVM_ENABLE_EH=ON \
+ -DLLVM_ENABLE_FFI=ON \
+ -DLLVM_ENABLE_LIBCXX=OFF \
+ -DLLVM_ENABLE_LIBEDIT=OFF \
+ -DLLVM_ENABLE_PIC=ON \
+ -DLLVM_ENABLE_RTTI=ON \
+ -DLLVM_ENABLE_SPHINX=OFF \
+ -DLLVM_ENABLE_TERMINFO=ON \
+ -DLLVM_ENABLE_ZLIB=ON \
+ -DLLVM_ENABLE_ZSTD=$zstd \
+ -DLLVM_INCLUDE_BENCHMARKS=OFF \
+ -DLLVM_INCLUDE_EXAMPLES=OFF \
+ -DLLVM_INSTALL_UTILS=ON \
+ -DLLVM_LINK_LLVM_DYLIB=ON \
+ -DLLVM_USE_PERF=ON \
+ $cmake_cross_options
+
+ cmake --build build
+
+ python3 llvm/utils/lit/setup.py build
+}
+
+check() {
+ LD_LIBRARY_PATH="$PWD/build/lib" \
+ ninja -C build check-llvm
+}
+
+package() {
+ depends="$pkgname-linker-tools=$pkgver-r$pkgrel"
+ DESTDIR="$pkgdir" cmake --install build
+ python3 llvm/utils/lit/setup.py install --root="$pkgdir"
+
+ cd "$pkgdir"/$_prefix
+
+ # Symlink files from /usr/lib/llvm*/bin to /usr/bin.
+ mkdir -p "$pkgdir"/usr/bin
+ local name newname path
+ for path in bin/*; do
+ name=${path##*/}
+ # Add version infix/suffix to the executable name.
+ case "$name" in
+ llvm-*) newname="llvm$_majorver-${name#llvm-}";;
+ *) newname="$name$_majorver";;
+ esac
+ # If this package provides=llvm (i.e. it's the default/latest
+ # llvm package), omit version infix/suffix.
+ if [ "$_default_llvm" = yes ]; then
+ newname=$name
+ fi
+ case "$name" in
+ FileCheck | obj2yaml | yaml2obj) continue;;
+ esac
+ ln -s ../lib/llvm$_majorver/bin/$name "$pkgdir"/usr/bin/$newname
+ done
+
+ mkdir -p "$pkgdir"/usr/include "$pkgdir"/usr/lib/cmake
+
+ # symlink include to /usr/include/llvm$_llvmver
+ ln -sfv ../lib/$pkgname/include "$pkgdir"/usr/include/$pkgname
+
+ # symlink cmake dir to system cmake
+ ln -sfv ../$pkgname/lib/cmake/llvm "$pkgdir"/usr/lib/cmake/$pkgname
+}
+
+static() {
+ pkgdesc="LLVM $_majorver static libraries"
+ depends=""
+ _common_subpkg
+
+ _mv "$pkgdir"/$_prefix/lib/*.a "$subpkgdir"/$_prefix/lib/
+}
+
+libs() {
+ pkgdesc="LLVM $_majorver runtime library"
+ depends=""
+ local soname="libLLVM-$_majorver.so"
+ local soname2="libLLVM-$pkgver.so"
+
+ mkdir -p "$subpkgdir"
+ cd "$subpkgdir"
+
+ # 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.
+ _mv "$pkgdir"/$_prefix/lib/$soname usr/lib/
+ ln -s $soname usr/lib/$soname2
+
+ # And also symlink it back to the LLVM prefix.
+ mkdir -p $_prefix/lib
+ ln -s ../../$soname $_prefix/lib/$soname
+ ln -s ../../$soname $_prefix/lib/$soname2
+}
+
+linktools() {
+ _common_subpkg
+ pkgdesc="$pkgdesc (linker plugins)"
+
+ amove \
+ $_prefix/lib/libLTO.so* \
+ $_prefix/lib/LLVMgold* \
+
+ if [ "$_default_llvm" = yes ]; then
+ ln -sfv llvm$_majorver/lib/LLVMgold.so "$subpkgdir"/usr/lib/
+ ln -sfv llvm$_majorver/lib/libLTO.so "$subpkgdir"/usr/lib/
+
+ # for bfd to work with clang -flto, you need to put the linker plugin in the bfd dir too,
+ # not just usr/lib.
+ mkdir -p "$subpkgdir"/usr/lib/bfd-plugins/
+ ln -sfv ../llvm$_majorver/lib/LLVMgold.so "$subpkgdir"/usr/lib/bfd-plugins/
+ fi
+}
+
+dev() {
+ _common_subpkg
+ default_dev
+ cd "$subpkgdir"
+
+ amove \
+ $_prefix/lib \
+ $_prefix/bin/llvm-config
+
+ if [ "$_default_llvm" = yes ]; then
+ ln -sf llvm$_majorver usr/lib/cmake/llvm
+ ln -sf llvm$_majorver/lib/LLVMgold.so "$pkgdir"/usr/lib/
+ ln -sf llvm$_majorver/lib/libLTO.so "$pkgdir"/usr/lib/
+ fi
+
+ # also add a suffix-version variant of llvm-config, as that's what things normally check for
+ mkdir -p "$subpkgdir"/usr/bin/
+ ln -sfv ../lib/llvm$_majorver/bin/llvm-config "$subpkgdir"/usr/bin/llvm-config-$_majorver
+}
+
+_test_utils() {
+ pkgdesc="LLVM $_majorver utilities for executing LLVM and Clang style test suites"
+ depends="python3"
+ _common_subpkg
+
+ local litver=$(python3 "$builddir"/llvm/utils/lit/setup.py --version 2>/dev/null \
+ | sed 's/\.dev.*$//')
+ test -n "$litver"
+ provides="$provides lit=$litver-r$pkgrel"
+
+ amove usr/lib/$pkgname/bin/FileCheck \
+ usr/lib/$pkgname/bin/count \
+ usr/lib/$pkgname/bin/not \
+ usr/lib/python* \
+ usr/bin/lit
+
+ mv "$subpkgdir"/usr/bin/lit "$subpkgdir"/$_prefix/bin/lit
+ ln -s lit "$subpkgdir"/$_prefix/bin/llvm-lit
+
+ if [ "$_default_llvm" = yes ]; then
+ amove usr/bin/count usr/bin/not
+ ln -s ../lib/llvm$_majorver/bin/lit "$subpkgdir"/usr/bin/lit
+ else
+ amove usr/bin/count$_majorver usr/bin/not$_majorver
+ fi
+}
+
+_common_subpkg() {
+ if [ "$_default_llvm" = yes ]; then
+ replaces="llvm${subpkgname#"$pkgname"} llvm15${subpkgname#"$pkgname"}"
+ provides="llvm${subpkgname#"$pkgname"}=$pkgver-r$pkgrel"
+ fi
+}
+
+_mv() {
+ local dest; for dest; do true; done # get last argument
+ mkdir -p "$dest"
+ mv "$@"
+}
+
+sha512sums="
+89a67ebfbbc764cc456e8825ecfa90707741f8835b1b2adffae0b227ab1fe5ca9cce75b0efaffc9ca8431cae528dc54fd838867a56a2b645344d9e82d19ab1b7 llvm-project-16.0.6.src.tar.xz
+84ed6b165445d0cdb59daa59f612a7d960bf67b13a1b19bdd2a19d46548013e756faca6b8249cb6c60354f3a9aaef46652e5f531944c71294e46d2f7bfd8b832 0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch
+ef63d5e01440cff65c10b84b65099bbd539bae72065d5581a8d2409cf2d0d4410d5bb3f501273ab29ee65bf8f5d23653a074428c2711ff9209324de56b857f3f allocscore.patch
+1826a6877d0c9e93c2d6ce0b4f83fe1118b9449f82f1919b37be5fc6d7c11ae22e0c02a7d3e6e23ce41bbb07df2ff08124aa9172e254ef2b12ecbc80d9a674a9 fix-memory-mf_exec-on-aarch64.patch
+ebc0be314c129ef38f00c8c2be9d589658cae89ac8cda109e35933b5044e775a3d370c0c584d3e501e4d43167b8523d8c5e5a85653d8ebe853571697ae40fb35 install-prefix.patch
+2123f01d8075a15cf8c2d8091fc8c92cb99807b1d654af13b436690ddb55f3e893a494593b3c92aeab26e50db4e0500ac688129ab6bc11e4765c0308b90db101 llvm-stack-size.patch
+f0d7262981ef94a7d08b69f732e69f0c7a76690b1b89442ef0ab17d5d3bb5bcc52ecb4ab8eae00cb710e142e1f8988d5d0e512d18aac6e215fc793cb52d11eb7 ppc64le-miscompile.patch
+84d2cc5c0376d8a8a2bbc0891849c9421feaea5b38a329aecdb822c136f7ded7ab4c3b87838d8915e6eb54cfe89f3e88f3b81ae98733e9a58d935be74a3c456c rust-feature-tables.patch
+0783b831b9cde1a41a731d9d4414dbe396e138d5d4ba76bfc20c31cb054cc66daa5a74edb1bbbe401b0fde349e8bba05978470ccbc4c39cbaf03daff2b72d68b 9001-CMake-Quote-variables-where-TARGET-may-be-a-value.patch
+ed07e007536bd9be62098123bee69e19569084d8070a6582b2a55c951d394239c1d2e9d93238a1a4a1575f75161c6d92f9aba6907835d469ff94817d40d9421b 9002-LV-Convert-consecutive-ptr-uniforms.ll-to-use-opaque.patch
+92284100281c3384de1d5aa859feed418e5c94cdb9eeb4c8b3286095d0524023d50359648c2bbc547b2c2b8ce3629faed34472190d5d313e3ed746a05db2f73c 9003-LV-Add-test-where-pointer-is-incorrectly-marked-as-u.patch
+2b5ee9088124f9cbea08943392027f525f981b788e60606067c0731caed08ae8f946eed5844f1b23c94a765ed1397951d3080c7a249dc9a8341d4eedbb60544b 9004-LV-Don-t-consider-pointer-as-uniform-if-it-is-also-s.patch
+6881a8a49e12f2d168ffac188dbc8beca04756e28856591b71dd7e8695b633e54341d9b7b3c9858106b6917d80a3d4dae24442b323488b73edf2c301254fb52a 9011-AArch64CompressJumpTables-prevent-over-compression.patch
+f84c89577225c8c9c7feefe7e0ee446834421c4e222069800bac425d21699393330f29b5567e4e8ef2ee9925b5de89b67fa31abddcf930f7abe03b9403cb6968 LoongArch-Assume-no-op-addrspacecasts-by-default.patch
+"
diff --git a/main/llvm16/LoongArch-Assume-no-op-addrspacecasts-by-default.patch b/main/llvm16/LoongArch-Assume-no-op-addrspacecasts-by-default.patch
new file mode 100644
index 00000000000..ee912eb1e10
--- /dev/null
+++ b/main/llvm16/LoongArch-Assume-no-op-addrspacecasts-by-default.patch
@@ -0,0 +1,84 @@
+From 525b1a631e3d858df1cf5e9e64dace666dc851bb Mon Sep 17 00:00:00 2001
+From: WANG Rui <wangrui@loongson.cn>
+Date: Tue, 20 Feb 2024 17:41:36 +0800
+Subject: [PATCH] [LoongArch] Assume no-op addrspacecasts by default
+
+Fixes #82330
+---
+ .../Target/LoongArch/LoongArchTargetMachine.h | 5 ++
+ llvm/test/CodeGen/LoongArch/addrspacecast.ll | 47 +++++++++++++++++++
+ 2 files changed, 52 insertions(+)
+ create mode 100644 llvm/test/CodeGen/LoongArch/addrspacecast.ll
+
+diff --git a/llvm/lib/Target/LoongArch/LoongArchTargetMachine.h b/llvm/lib/Target/LoongArch/LoongArchTargetMachine.h
+index 7d39d47e86b3..fa9bc7608e7d 100644
+--- a/llvm/lib/Target/LoongArch/LoongArchTargetMachine.h
++++ b/llvm/lib/Target/LoongArch/LoongArchTargetMachine.h
+@@ -45,6 +45,11 @@ public:
+ MachineFunctionInfo *
+ createMachineFunctionInfo(BumpPtrAllocator &Allocator, const Function &F,
+ const TargetSubtargetInfo *STI) const override;
++
++ // Addrspacecasts are always noops.
++ bool isNoopAddrSpaceCast(unsigned SrcAS, unsigned DestAS) const override {
++ return true;
++ }
+ };
+
+ } // end namespace llvm
+diff --git a/llvm/test/CodeGen/LoongArch/addrspacecast.ll b/llvm/test/CodeGen/LoongArch/addrspacecast.ll
+new file mode 100644
+index 000000000000..2b90f32d0297
+--- /dev/null
++++ b/llvm/test/CodeGen/LoongArch/addrspacecast.ll
+@@ -0,0 +1,47 @@
++; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
++; RUN: llc -mtriple=loongarch32 -verify-machineinstrs < %s | FileCheck %s --check-prefix=LA32
++; RUN: llc -mtriple=loongarch64 -verify-machineinstrs < %s | FileCheck %s --check-prefix=LA64
++
++define void @cast0(ptr addrspace(1) %ptr) {
++; LA32-LABEL: cast0:
++; LA32: # %bb.0:
++; LA32-NEXT: st.w $zero, $a0, 0
++; LA32-NEXT: ret
++;
++; LA64-LABEL: cast0:
++; LA64: # %bb.0:
++; LA64-NEXT: st.w $zero, $a0, 0
++; LA64-NEXT: ret
++ %ptr0 = addrspacecast ptr addrspace(1) %ptr to ptr addrspace(0)
++ store i32 0, ptr %ptr0
++ ret void
++}
++
++define void @cast1(ptr %ptr) {
++; LA32-LABEL: cast1:
++; LA32: # %bb.0:
++; LA32-NEXT: addi.w $sp, $sp, -16
++; LA32-NEXT: .cfi_def_cfa_offset 16
++; LA32-NEXT: st.w $ra, $sp, 12 # 4-byte Folded Spill
++; LA32-NEXT: .cfi_offset 1, -4
++; LA32-NEXT: bl %plt(foo)
++; LA32-NEXT: ld.w $ra, $sp, 12 # 4-byte Folded Reload
++; LA32-NEXT: addi.w $sp, $sp, 16
++; LA32-NEXT: ret
++;
++; LA64-LABEL: cast1:
++; LA64: # %bb.0:
++; LA64-NEXT: addi.d $sp, $sp, -16
++; LA64-NEXT: .cfi_def_cfa_offset 16
++; LA64-NEXT: st.d $ra, $sp, 8 # 8-byte Folded Spill
++; LA64-NEXT: .cfi_offset 1, -8
++; LA64-NEXT: bl %plt(foo)
++; LA64-NEXT: ld.d $ra, $sp, 8 # 8-byte Folded Reload
++; LA64-NEXT: addi.d $sp, $sp, 16
++; LA64-NEXT: ret
++ %castptr = addrspacecast ptr %ptr to ptr addrspace(10)
++ call void @foo(ptr addrspace(10) %castptr)
++ ret void
++}
++
++declare void @foo(ptr addrspace(10))
+--
+2.27.0
+
diff --git a/main/llvm16/allocscore.patch b/main/llvm16/allocscore.patch
new file mode 100644
index 00000000000..5421c6b1ae8
--- /dev/null
+++ b/main/llvm16/allocscore.patch
@@ -0,0 +1,20 @@
+on x86, this fails with a float comparison error even though the floats are the
+same, because it does absolute eq
+--
+--- a/llvm/unittests/CodeGen/RegAllocScoreTest.cpp
++++ b/llvm/unittests/CodeGen/RegAllocScoreTest.cpp
+@@ -172,14 +172,5 @@
+ ASSERT_EQ(Freq2, TotalScore.loadStoreCounts());
+ ASSERT_EQ(Freq1, TotalScore.cheapRematCounts());
+ ASSERT_EQ(Freq2, TotalScore.expensiveRematCounts());
+- ASSERT_EQ(TotalScore.getScore(),
+- TotalScore.copyCounts() * CopyWeight +
+- TotalScore.loadCounts() * LoadWeight +
+- TotalScore.storeCounts() * StoreWeight +
+- TotalScore.loadStoreCounts() * (LoadWeight + StoreWeight) +
+- TotalScore.cheapRematCounts() * CheapRematWeight +
+- TotalScore.expensiveRematCounts() * ExpensiveRematWeight
+-
+- );
+ }
+ } // end namespace
diff --git a/main/llvm14/fix-memory-mf_exec-on-aarch64.patch b/main/llvm16/fix-memory-mf_exec-on-aarch64.patch
index c4166ed9a80..6e0e0fcb69d 100644
--- a/main/llvm14/fix-memory-mf_exec-on-aarch64.patch
+++ b/main/llvm16/fix-memory-mf_exec-on-aarch64.patch
@@ -12,14 +12,16 @@ Fix failures in AllocationTests/MappedMemoryTest.* on aarch64:
Upstream-Issue: https://bugs.llvm.org/show_bug.cgi?id=14278#c10
---- a/lib/Support/Unix/Memory.inc
-+++ b/lib/Support/Unix/Memory.inc
-@@ -58,7 +58,7 @@
+diff --git a/llvm/lib/Support/Unix/Memory.inc b/llvm/lib/Support/Unix/Memory.inc
+index 4c8f6b2ea..6cddae13b 100644
+--- a/llvm/lib/Support/Unix/Memory.inc
++++ b/llvm/lib/Support/Unix/Memory.inc
+@@ -50,7 +50,7 @@ static int getPosixProtectionFlags(unsigned Flags) {
+ llvm::sys::Memory::MF_EXEC:
return PROT_READ | PROT_WRITE | PROT_EXEC;
case llvm::sys::Memory::MF_EXEC:
- #if (defined(__FreeBSD__) || defined(__POWERPC__) || defined (__ppc__) || \
-- defined(_POWER) || defined(_ARCH_PPC))
-+ defined(_POWER) || defined(_ARCH_PPC) || (defined(__linux__) && defined(__aarch64__)))
+-#if defined(__FreeBSD__) || defined(__powerpc__)
++#if defined(__FreeBSD__) || defined(__powerpc__) || (defined(__linux__) && defined(__aarch64__))
// On PowerPC, having an executable page that has no read permission
// can have unintended consequences. The function InvalidateInstruction-
// Cache uses instructions dcbf and icbi, both of which are treated by
diff --git a/main/llvm16/install-prefix.patch b/main/llvm16/install-prefix.patch
new file mode 100644
index 00000000000..90f6c3e62d2
--- /dev/null
+++ b/main/llvm16/install-prefix.patch
@@ -0,0 +1,31 @@
+starting from llvm14 the install prefix breaks via symlinks;
+/usr/lib/llvm14/lib/cmake/llvm/LLVMConfig.cmake goes up 3 directories to find
+/usr/lib/llvm14/include as LLVM_INCLUDE_DIRS, but to even use this cmake folder
+at all it has to be symlinked to /usr/lib/cmake/llvm .. so the directory it
+instead uses is just /usr/include, which is not where the cmake includes are.
+this hardcodes them to the install prefix we pass via cmake, which should
+always be correct, and what cmake tries to autodetect anyway.
+
+also see: https://reviews.llvm.org/D29969
+
+this is supposedly fixed now, but for some reason it still isn't
+--- a/llvm/cmake/modules/CMakeLists.txt
++++ b/llvm/cmake/modules/CMakeLists.txt
+@@ -41,6 +41,8 @@
+ #
+
+ set(LLVM_CONFIG_CODE "
++# this is wrong when automatically detected
++set(LLVM_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")
+ # LLVM_BUILD_* values available only from LLVM build tree.
+ set(LLVM_BUILD_BINARY_DIR \"${LLVM_BINARY_DIR}\")
+ set(LLVM_BUILD_LIBRARY_DIR \"${LLVM_LIBRARY_DIR}\")
+@@ -109,8 +111,6 @@
+ #
+ # Generate LLVMConfig.cmake for the install tree.
+ #
+-
+-find_prefix_from_config(LLVM_CONFIG_CODE LLVM_INSTALL_PREFIX "${LLVM_INSTALL_PACKAGE_DIR}")
+
+ extend_path(LLVM_CONFIG_MAIN_INCLUDE_DIR "\${LLVM_INSTALL_PREFIX}" "${CMAKE_INSTALL_INCLUDEDIR}")
+ # This is the same as the above because the handwritten and generated headers
diff --git a/main/llvm16/llvm-stack-size.patch b/main/llvm16/llvm-stack-size.patch
new file mode 100644
index 00000000000..0a053154242
--- /dev/null
+++ b/main/llvm16/llvm-stack-size.patch
@@ -0,0 +1,23 @@
+Patch-Source: https://github.com/chimera-linux/cports/blob/8c0359f31b9d888e59ced0320e93ca8ad79ba1f9/main/llvm/patches/0010-always-set-a-larger-stack-size-explicitly.patch
+From 18e09846d9333b554e3dfbbd768ada6643bf92c0 Mon Sep 17 00:00:00 2001
+From: Daniel Kolesa <daniel@octaforge.org>
+Date: Sat, 27 Nov 2021 01:03:28 +0100
+Subject: [PATCH 10/22] always set a larger stack size explicitly
+
+---
+ llvm/lib/Support/Threading.cpp | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+diff --git a/llvm/lib/Support/Threading.cpp b/llvm/lib/Support/Threading.cpp
+index 923935bbc..26594aac8 100644
+--- a/llvm/lib/Support/Threading.cpp
++++ b/llvm/lib/Support/Threading.cpp
+@@ -77,7 +77,7 @@ unsigned llvm::ThreadPoolStrategy::compute_thread_count() const {
+ // keyword.
+ #include "llvm/Support/thread.h"
+
+-#if defined(__APPLE__)
++#if 1
+ // Darwin's default stack size for threads except the main one is only 512KB,
+ // which is not enough for some/many normal LLVM compilations. This implements
+ // the same interface as std::thread but requests the same stack size as the
diff --git a/main/llvm16/ppc64le-miscompile.patch b/main/llvm16/ppc64le-miscompile.patch
new file mode 100644
index 00000000000..e98fc2841cd
--- /dev/null
+++ b/main/llvm16/ppc64le-miscompile.patch
@@ -0,0 +1,81 @@
+Patch-Source: https://github.com/llvm/llvm-project/commit/398d68f624d667a17727d346a2139a951a1ebce4
+--
+From 398d68f624d667a17727d346a2139a951a1ebce4 Mon Sep 17 00:00:00 2001
+From: Fangrui Song <i@maskray.me>
+Date: Mon, 24 Apr 2023 10:02:06 -0700
+Subject: [PATCH] [PPCMIPeephole] Fix incorrect compare elimination
+
+D38236 moves a redundant compare instruction from the loop body to the
+preheader.
+
+It has a bug: when `MBB1 == &MBB2`, there may be only one compare instruction in the
+loop. The code will lift the compare instruction to the preheader, failing to
+account for the change of the compare result in a tail call, leading to a miscompile.
+
+Suppress the compare elimination to fix https://github.com/llvm/llvm-project/issues/62294
+
+Reviewed By: #powerpc, nemanjai
+
+Differential Revision: https://reviews.llvm.org/D149030
+---
+ llvm/lib/Target/PowerPC/PPCMIPeephole.cpp | 5 ++++-
+ llvm/test/CodeGen/PowerPC/cmp_elimination.ll | 23 ++++++++++++++++++++
+ 2 files changed, 27 insertions(+), 1 deletion(-)
+
+diff --git a/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp b/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
+index b9cb0a29a9511..f1d1d2f3757f6 100644
+--- a/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
++++ b/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
+@@ -1315,7 +1315,7 @@ static bool eligibleForCompareElimination(MachineBasicBlock &MBB,
+ if (isEligibleBB(*Pred1MBB) && isEligibleForMoveCmp(*Pred2MBB)) {
+ // We assume Pred1MBB is the BB containing the compare to be merged and
+ // Pred2MBB is the BB to which we will append a compare instruction.
+- // Hence we can proceed as is.
++ // Proceed as is if Pred1MBB is different from MBB.
+ }
+ else if (isEligibleBB(*Pred2MBB) && isEligibleForMoveCmp(*Pred1MBB)) {
+ // We need to swap Pred1MBB and Pred2MBB to canonicalize.
+@@ -1323,6 +1323,9 @@ static bool eligibleForCompareElimination(MachineBasicBlock &MBB,
+ }
+ else return false;
+
++ if (Pred1MBB == &MBB)
++ return false;
++
+ // Here, Pred2MBB is the BB to which we need to append a compare inst.
+ // We cannot move the compare instruction if operands are not available
+ // in Pred2MBB (i.e. defined in MBB by an instruction other than PHI).
+diff --git a/llvm/test/CodeGen/PowerPC/cmp_elimination.ll b/llvm/test/CodeGen/PowerPC/cmp_elimination.ll
+index 56af49f0c267e..871cc5df1f5fb 100644
+--- a/llvm/test/CodeGen/PowerPC/cmp_elimination.ll
++++ b/llvm/test/CodeGen/PowerPC/cmp_elimination.ll
+@@ -779,6 +779,29 @@ if.end3:
+ ret void
+ }
+
++;; The result of %cmp may change in a tail call. Don't lift %cmp to the entry block.
++; CHECK-LABEL: func_tailrecurse:
++; CHECK-NOT: cmp
++; CHECK: .LBB{{.*}}:
++; CHECK: cmplw
++; CHECK: blt
++define fastcc zeroext i32 @func_tailrecurse(i32 zeroext %a, i32 zeroext %b) {
++entry:
++ br label %tailrecurse
++
++tailrecurse: ; preds = %tailrecurse, %entry
++ %a.tr = phi i32 [ %a, %entry ], [ %b.tr, %tailrecurse ]
++ %b.tr = phi i32 [ %b, %entry ], [ %a.tr, %tailrecurse ]
++ %cmp = icmp ult i32 %a.tr, %b.tr
++ %conv = zext i1 %cmp to i32
++ %ignore = call signext i32 (i32) @func(i32 %conv)
++ br i1 %cmp, label %tailrecurse, label %if.end
++
++if.end: ; preds = %tailrecurse
++ %sub = sub nsw i32 %a.tr, %b.tr
++ ret i32 %sub
++}
++
+ declare void @dummy1()
+ declare void @dummy2()
+ declare void @dummy3()
diff --git a/main/llvm16/rust-feature-tables.patch b/main/llvm16/rust-feature-tables.patch
new file mode 100644
index 00000000000..2068d51f2b9
--- /dev/null
+++ b/main/llvm16/rust-feature-tables.patch
@@ -0,0 +1,31 @@
+Patch-Source: https://github.com/rust-lang/llvm-project/commit/0a157fd7a5f61973ffddf96b3d445a718193eb1a
+From 0a157fd7a5f61973ffddf96b3d445a718193eb1a Mon Sep 17 00:00:00 2001
+From: Cameron Hart <cameron.hart@gmail.com>
+Date: Sun, 10 Jul 2016 23:55:53 +1000
+Subject: [PATCH] [rust] Add accessors for MCSubtargetInfo CPU and Feature
+ tables
+
+This is needed for `-C target-cpu=help` and `-C target-feature=help` in rustc
+---
+ llvm/include/llvm/MC/MCSubtargetInfo.h | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/llvm/include/llvm/MC/MCSubtargetInfo.h b/llvm/include/llvm/MC/MCSubtargetInfo.h
+index e1f0a86141e36..1e529bf4fb31e 100644
+--- a/llvm/include/llvm/MC/MCSubtargetInfo.h
++++ b/llvm/include/llvm/MC/MCSubtargetInfo.h
+@@ -230,6 +230,14 @@ class MCSubtargetInfo {
+ return Found != ProcDesc.end() && StringRef(Found->Key) == CPU;
+ }
+
++ ArrayRef<SubtargetSubTypeKV> getCPUTable() const {
++ return ProcDesc;
++ }
++
++ ArrayRef<SubtargetFeatureKV> getFeatureTable() const {
++ return ProcFeatures;
++ }
++
+ virtual unsigned getHwMode() const { return 0; }
+
+ /// Return the cache size in bytes for the given level of cache.
diff --git a/main/llvm17/0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch b/main/llvm17/0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch
new file mode 100644
index 00000000000..e0cb43a2257
--- /dev/null
+++ b/main/llvm17/0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch
@@ -0,0 +1,22 @@
+From f8e83c4c7866ae830abe9bec15cfe805dd825b6e Mon Sep 17 00:00:00 2001
+From: xentec <xentec@aix0.eu>
+Date: Tue, 12 Sep 2017 07:18:38 +0200
+Subject: [PATCH] Disable dynamic lib tests for musl's dlclose() is noop
+
+---
+ unittests/Support/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/unittests/Support/CMakeLists.txt b/unittests/Support/CMakeLists.txt
+index 641163e..4f508d9 100644
+--- a/llvm/unittests/Support/CMakeLists.txt
++++ b/llvm/unittests/Support/CMakeLists.txt
+@@ -124,5 +124,5 @@
+
+ if(NOT LLVM_INTEGRATED_CRT_ALLOC)
+ # The test doesn't pass when using a custom allocator, PR47881.
+- add_subdirectory(DynamicLibrary)
++ # add_subdirectory(DynamicLibrary)
+ endif()
+
+
diff --git a/main/llvm17/0001-Revert-Pseudo-Probe-Make-.pseudo_probe-GC-able.patch b/main/llvm17/0001-Revert-Pseudo-Probe-Make-.pseudo_probe-GC-able.patch
new file mode 100644
index 00000000000..65891bcf577
--- /dev/null
+++ b/main/llvm17/0001-Revert-Pseudo-Probe-Make-.pseudo_probe-GC-able.patch
@@ -0,0 +1,132 @@
+From 2ddc4203c63972ec58b6118a6c55b0c7e0e087c0 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 27 Sep 2023 09:07:58 +0200
+Subject: [PATCH] Revert "[Pseudo Probe] Make .pseudo_probe GC-able"
+
+This reverts commit 62d861422317b3e94a97706f07e8f1abce9a8135.
+
+ref: https://github.com/llvm/llvm-project/issues/66776#issuecomment-1737051566
+---
+ llvm/lib/MC/MCObjectFileInfo.cpp | 24 ++++-----
+ .../SampleProfile/pseudo-probe-emit.ll | 54 ++-----------------
+ 2 files changed, 16 insertions(+), 62 deletions(-)
+
+diff --git a/llvm/lib/MC/MCObjectFileInfo.cpp b/llvm/lib/MC/MCObjectFileInfo.cpp
+index 0b5109e41e71..7911e0c8c381 100644
+--- a/llvm/lib/MC/MCObjectFileInfo.cpp
++++ b/llvm/lib/MC/MCObjectFileInfo.cpp
+@@ -1172,20 +1172,18 @@ MCObjectFileInfo::getKCFITrapSection(const MCSection &TextSec) const {
+
+ MCSection *
+ MCObjectFileInfo::getPseudoProbeSection(const MCSection &TextSec) const {
+- if (Ctx->getObjectFileType() != MCContext::IsELF)
+- return PseudoProbeSection;
+-
+- const auto &ElfSec = static_cast<const MCSectionELF &>(TextSec);
+- unsigned Flags = ELF::SHF_LINK_ORDER;
+- StringRef GroupName;
+- if (const MCSymbol *Group = ElfSec.getGroup()) {
+- GroupName = Group->getName();
+- Flags |= ELF::SHF_GROUP;
++ if (Ctx->getObjectFileType() == MCContext::IsELF) {
++ const auto &ElfSec = static_cast<const MCSectionELF &>(TextSec);
++ // Create a separate section for probes that comes with a comdat function.
++ if (const MCSymbol *Group = ElfSec.getGroup()) {
++ auto *S = static_cast<MCSectionELF *>(PseudoProbeSection);
++ auto Flags = S->getFlags() | ELF::SHF_GROUP;
++ return Ctx->getELFSection(S->getName(), S->getType(), Flags,
++ S->getEntrySize(), Group->getName(),
++ /*IsComdat=*/true);
++ }
+ }
+-
+- return Ctx->getELFSection(PseudoProbeSection->getName(), ELF::SHT_PROGBITS,
+- Flags, 0, GroupName, true, ElfSec.getUniqueID(),
+- cast<MCSymbolELF>(TextSec.getBeginSymbol()));
++ return PseudoProbeSection;
+ }
+
+ MCSection *
+diff --git a/llvm/test/Transforms/SampleProfile/pseudo-probe-emit.ll b/llvm/test/Transforms/SampleProfile/pseudo-probe-emit.ll
+index 13cfd820ae82..e56431b5abd1 100644
+--- a/llvm/test/Transforms/SampleProfile/pseudo-probe-emit.ll
++++ b/llvm/test/Transforms/SampleProfile/pseudo-probe-emit.ll
+@@ -5,12 +5,9 @@
+ ; RUN: llc %t -function-sections -filetype=asm -o %t1
+ ; RUN: FileCheck %s < %t1 --check-prefix=CHECK-ASM
+ ; RUN: llc %t -function-sections -filetype=obj -o %t2
+-; RUN: llvm-readelf -S -g %t2 | FileCheck %s --check-prefix=CHECK-SEC
++; RUN: llvm-objdump --section-headers %t2 | FileCheck %s --check-prefix=CHECK-OBJ
+ ; RUN: llvm-mc %t1 -filetype=obj -o %t3
+-; RUN: llvm-readelf -S -g %t3 | FileCheck %s --check-prefix=CHECK-SEC
+-
+-; RUN: llc %t -function-sections -unique-section-names=0 -filetype=obj -o %t4
+-; RUN: llvm-readelf -S %t4 | FileCheck %s --check-prefix=CHECK-SEC2
++; RUN: llvm-objdump --section-headers %t3 | FileCheck %s --check-prefix=CHECK-OBJ
+
+ ;; Check the generation of pseudoprobe intrinsic call.
+
+@@ -69,13 +66,6 @@ entry:
+ ret void
+ }
+
+-$foo3 = comdat any
+-
+-define void @foo3(i32 %x) comdat {
+-entry:
+- ret void
+-}
+-
+ ; CHECK-IL: Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite)
+ ; CHECK-IL-NEXT: declare void @llvm.pseudoprobe(i64, i64, i32, i64)
+
+@@ -104,43 +94,9 @@ entry:
+ ; CHECK-ASM-NEXT: .byte 4
+ ; CHECK-ASM-NEXT: .ascii "foo2"
+
+-; CHECK-SEC: [Nr] Name Type {{.*}} ES Flg Lk Inf Al
+-; CHECK-SEC: [ 3] .text.foo PROGBITS {{.*}} 00 AX 0 0 16
+-; CHECK-SEC: [ 5] .text.foo2 PROGBITS {{.*}} 00 AX 0 0 16
+-; CHECK-SEC: [ 8] .text.foo3 PROGBITS {{.*}} 00 AXG 0 0 16
+-; CHECK-SEC-COUNT-3: .pseudo_probe_desc PROGBITS
+-; CHECK-SEC: .pseudo_probe PROGBITS {{.*}} 00 L 3 0 1
+-; CHECK-SEC-NEXT: .pseudo_probe PROGBITS {{.*}} 00 L 5 0 1
+-; CHECK-SEC-NEXT: .pseudo_probe PROGBITS {{.*}} 00 LG 8 0 1
+-; CHECK-SEC-NOT: .rela.pseudo_probe
+-
+-; CHECK-SEC: COMDAT group section [ 7] `.group' [foo3] contains 2 sections:
+-; CHECK-SEC-NEXT: [Index] Name
+-; CHECK-SEC-NEXT: [ 8] .text.foo3
+-; CHECK-SEC-NEXT: [ 21] .pseudo_probe
+-; CHECK-SEC-EMPTY:
+-; CHECK-SEC-NEXT: COMDAT group section [ 10] `.group' [.pseudo_probe_desc_foo] contains 1 sections:
+-; CHECK-SEC-NEXT: [Index] Name
+-; CHECK-SEC-NEXT: [ 11] .pseudo_probe_desc
+-; CHECK-SEC-EMPTY:
+-; CHECK-SEC-NEXT: COMDAT group section [ 12] `.group' [.pseudo_probe_desc_foo2] contains 1 sections:
+-; CHECK-SEC-NEXT: [Index] Name
+-; CHECK-SEC-NEXT: [ 13] .pseudo_probe_desc
+-; CHECK-SEC-EMPTY:
+-; CHECK-SEC-NEXT: COMDAT group section [ 14] `.group' [.pseudo_probe_desc_foo3] contains 1 sections:
+-; CHECK-SEC-NEXT: [Index] Name
+-; CHECK-SEC-NEXT: [ 15] .pseudo_probe_desc
+-
+-
+-; CHECK-SEC2: [Nr] Name Type {{.*}} ES Flg Lk Inf Al
+-; CHECK-SEC2: [ 3] .text PROGBITS {{.*}} 00 AX 0 0 16
+-; CHECK-SEC2: [ 5] .text PROGBITS {{.*}} 00 AX 0 0 16
+-; CHECK-SEC2: [ 8] .text PROGBITS {{.*}} 00 AXG 0 0 16
+-; CHECK-SEC2-COUNT-3: .pseudo_probe_desc PROGBITS
+-; CHECK-SEC2: .pseudo_probe PROGBITS {{.*}} 00 L 3 0 1
+-; CHECK-SEC2-NEXT: .pseudo_probe PROGBITS {{.*}} 00 L 5 0 1
+-; CHECK-SEC2-NEXT: .pseudo_probe PROGBITS {{.*}} 00 LG 8 0 1
+-; CHECK-SEC2-NOT: .rela.pseudo_probe
++; CHECK-OBJ-COUNT-2: .pseudo_probe_desc
++; CHECK-OBJ: .pseudo_probe
++; CHECK-OBJ-NOT: .rela.pseudo_probe
+
+ !llvm.dbg.cu = !{!0}
+ !llvm.module.flags = !{!9, !10}
+--
+2.42.0
+
diff --git a/main/llvm17/APKBUILD b/main/llvm17/APKBUILD
new file mode 100644
index 00000000000..2bcb80ee5f0
--- /dev/null
+++ b/main/llvm17/APKBUILD
@@ -0,0 +1,330 @@
+# Contributor: Rasmus Thomsen <oss@cogitri.dev>
+# Contributor: Martell Malone <martell@marinelayer.io>
+# Contributor: Travis Tilley <ttilley@gmail.com>
+# Contributor: Mitch Tishmack <mitch.tishmack@gmail.com>
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Contributor: Ariadne Conill <ariadne@dereferenced.org>
+# Contributor: omni <omni+alpine@hack.org>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+_pkgname=llvm
+pkgver=17.0.6
+_majorver=${pkgver%%.*}
+_prevmajorver=$((_majorver - 1))
+pkgname=$_pkgname$_majorver
+pkgrel=1
+pkgdesc="Low Level Virtual Machine compiler system, version $_majorver"
+arch="all"
+url="https://llvm.org/"
+license="Apache-2.0"
+depends_dev="$pkgname=$pkgver-r$pkgrel libffi-dev zlib-dev zstd-dev"
+# See https://gitlab.alpinelinux.org/alpine/aports/-/commit/51d2fba931fb2ef0046dea19405a9290c8735051#note_234651
+[ -z "$BOOTSTRAP" ] && depends_dev="$depends_dev $pkgname-test-utils=$pkgver-r$pkgrel"
+makedepends_host="$depends_dev binutils-dev libxml2-dev"
+makedepends_build="cmake chrpath python3 py3-setuptools samurai"
+# diffutils for diff: unrecognized option: strip-trailing-cr
+# coreutils for 'od' binary
+checkdepends="bash coreutils diffutils"
+subpackages="
+ $pkgname-gtest:_gtest
+ $pkgname-static
+ $pkgname-libs
+ $pkgname-linker-tools:linktools
+ $pkgname-dev
+ $pkgname-test-utils-pyc
+ $pkgname-test-utils:_test_utils
+ "
+source="https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/llvm-project-$pkgver.src.tar.xz
+ 0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch
+ allocscore.patch
+ fix-memory-mf_exec-on-aarch64.patch
+ install-prefix.patch
+ llvm-stack-size.patch
+ rust-feature-tables.patch
+
+ 0001-Revert-Pseudo-Probe-Make-.pseudo_probe-GC-able.patch
+ fix-hexagon-tests.patch
+ workaround-codegen-riscv-xtheadmempair-miscompile.patch
+ "
+builddir="$srcdir/$_pkgname-project-$pkgver.src"
+
+# Whether is this package the default (latest) LLVM version.
+_default_llvm="yes"
+
+# If crosscompiling, we need llvm-tblgen on the build machine.
+if [ "$CBUILD" != "$CHOST" ]; then
+ _llvm_tblgen="llvm-tblgen"
+ if [ "$_default_llvm" = no ]; then
+ _llvm_tblgen="llvm$_majorver-tblgen"
+ fi
+ makedepends_build="$makedepends_build cmd:$_llvm_tblgen"
+ cmake_cross_options="
+ -DCMAKE_CROSSCOMPILING=ON
+ -DLLVM_TABLEGEN=/usr/bin/$_llvm_tblgen
+ "
+fi
+
+if [ "$_default_llvm" = yes ]; then
+ provides="llvm=$pkgver-r$pkgrel"
+ replaces="llvm"
+fi
+
+# explicit override for previous version as well
+replaces="llvm16"
+
+# 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
+
+ cd llvm
+
+ # Known broken test on musl
+ rm -v test/CodeGen/AArch64/wineh4.mir
+ # https://github.com/llvm/llvm-project/issues/47657
+ rm -v test/ExecutionEngine/Interpreter/intrinsics.ll
+
+ case "$CARCH" in
+ x86|arm*)
+ rm -v test/Object/macho-invalid.test \
+ test/tools/llvm-size/radix.test \
+ test/ExecutionEngine/frem.ll
+ ;;
+ esac
+}
+
+build() {
+ # Auto-detect it by guessing either.
+ local ffi_include_dir="$(pkg-config --cflags-only-I libffi | sed 's|^-I||g')"
+
+ local zstd=ON
+ # tries linking host libzstd in cross
+ if [ -n "$BOOTSTRAP" ]; then
+ zstd=OFF
+ fi
+
+ # NOTE: DO NOT change CMAKE_BUILD_TYPE! Buildmodes like None will enable
+ # debug assertions for LLVM!
+ cmake -B build -G Ninja -Wno-dev -S llvm \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/$_prefix \
+ -DCMAKE_INSTALL_RPATH=/$_prefix \
+ \
+ -DLLVM_DEFAULT_TARGET_TRIPLE="$CBUILD" \
+ -DLLVM_HOST_TRIPLE="$CHOST" \
+ \
+ -DFFI_INCLUDE_DIR="$ffi_include_dir" \
+ -DLLVM_APPEND_VC_REV=OFF \
+ -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="$(want_check && echo ON || echo OFF)" \
+ -DLLVM_ENABLE_ASSERTIONS=OFF \
+ -DLLVM_ENABLE_DUMP=ON \
+ -DLLVM_ENABLE_EH=ON \
+ -DLLVM_ENABLE_FFI=ON \
+ -DLLVM_ENABLE_LIBCXX=OFF \
+ -DLLVM_ENABLE_LIBEDIT=OFF \
+ -DLLVM_ENABLE_PIC=ON \
+ -DLLVM_ENABLE_RTTI=ON \
+ -DLLVM_ENABLE_SPHINX=OFF \
+ -DLLVM_ENABLE_TERMINFO=ON \
+ -DLLVM_ENABLE_ZLIB=ON \
+ -DLLVM_ENABLE_ZSTD=$zstd \
+ -DLLVM_INCLUDE_BENCHMARKS=OFF \
+ -DLLVM_INCLUDE_EXAMPLES=OFF \
+ -DLLVM_INSTALL_GTEST=ON \
+ -DLLVM_INSTALL_UTILS=ON \
+ -DLLVM_LINK_LLVM_DYLIB=ON \
+ -DLLVM_USE_PERF=ON \
+ $cmake_cross_options
+
+ cmake --build build
+
+ python3 llvm/utils/lit/setup.py build
+}
+
+check() {
+ LD_LIBRARY_PATH="$PWD/build/lib" \
+ ninja -C build check-llvm
+}
+
+package() {
+ depends="$pkgname-linker-tools=$pkgver-r$pkgrel"
+ DESTDIR="$pkgdir" cmake --install build
+ python3 llvm/utils/lit/setup.py install --root="$pkgdir"
+
+ cd "$pkgdir"/$_prefix
+
+ # Symlink files from /usr/lib/llvm*/bin to /usr/bin.
+ mkdir -p "$pkgdir"/usr/bin
+ local name newname path
+ for path in bin/*; do
+ name=${path##*/}
+ # Add version infix/suffix to the executable name.
+ case "$name" in
+ llvm-*) newname="llvm$_majorver-${name#llvm-}";;
+ *) newname="$name$_majorver";;
+ esac
+ # If this package provides=llvm (i.e. it's the default/latest
+ # llvm package), omit version infix/suffix.
+ if [ "$_default_llvm" = yes ]; then
+ newname=$name
+ fi
+ case "$name" in
+ FileCheck | obj2yaml | yaml2obj) continue;;
+ esac
+ ln -s ../lib/llvm$_majorver/bin/$name "$pkgdir"/usr/bin/$newname
+ done
+
+ mkdir -p "$pkgdir"/usr/include "$pkgdir"/usr/lib/cmake
+
+ # symlink include to /usr/include/llvm$_llvmver
+ ln -sfv ../lib/$pkgname/include "$pkgdir"/usr/include/$pkgname
+
+ # symlink cmake dir to system cmake
+ ln -sfv ../$pkgname/lib/cmake/llvm "$pkgdir"/usr/lib/cmake/$pkgname
+}
+
+_gtest() {
+ pkgdesc="LLVM $_majorver gtest static libraries"
+ depends=""
+ _common_subpkg
+ amove "$_prefix"/lib/libLLVMTesting*.a \
+ "$_prefix"/lib/libllvm_gtest*.a \
+ "$_prefix"/include/llvm-gmock \
+ "$_prefix"/include/llvm-gtest
+}
+
+static() {
+ pkgdesc="LLVM $_majorver static libraries"
+ depends=""
+ _common_subpkg
+ amove "$_prefix"/lib/*.a
+}
+
+libs() {
+ pkgdesc="LLVM $_majorver runtime library"
+ depends=""
+ local soname="libLLVM-$_majorver.so"
+ local soname2="libLLVM-$pkgver.so"
+
+ mkdir -p "$subpkgdir"
+ cd "$subpkgdir"
+
+ # 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/$soname "$subpkgdir"/usr/lib/
+ ln -s $soname usr/lib/$soname2
+
+ # And also symlink it back to the LLVM prefix.
+ mkdir -p $_prefix/lib
+ ln -s ../../$soname $_prefix/lib/$soname
+ ln -s ../../$soname $_prefix/lib/$soname2
+}
+
+linktools() {
+ _common_subpkg
+ pkgdesc="$pkgdesc (linker plugins)"
+
+ amove \
+ $_prefix/lib/libLTO.so* \
+ $_prefix/lib/LLVMgold* \
+
+ if [ "$_default_llvm" = yes ]; then
+ ln -sfv llvm$_majorver/lib/LLVMgold.so "$subpkgdir"/usr/lib/
+ ln -sfv llvm$_majorver/lib/libLTO.so "$subpkgdir"/usr/lib/
+
+ # for bfd to work with clang -flto, you need to put the linker plugin in the bfd dir too,
+ # not just usr/lib.
+ mkdir -p "$subpkgdir"/usr/lib/bfd-plugins/
+ ln -sfv ../llvm$_majorver/lib/LLVMgold.so "$subpkgdir"/usr/lib/bfd-plugins/
+ fi
+}
+
+dev() {
+ _common_subpkg
+ default_dev
+ cd "$subpkgdir"
+
+ amove \
+ $_prefix/lib \
+ $_prefix/bin/llvm-config
+
+ if [ "$_default_llvm" = yes ]; then
+ ln -sf llvm$_majorver usr/lib/cmake/llvm
+ ln -sf llvm$_majorver/lib/LLVMgold.so "$pkgdir"/usr/lib/
+ ln -sf llvm$_majorver/lib/libLTO.so "$pkgdir"/usr/lib/
+ fi
+
+ # also add a suffix-version variant of llvm-config, as that's what things normally check for
+ mkdir -p "$subpkgdir"/usr/bin/
+ ln -sfv ../lib/llvm$_majorver/bin/llvm-config "$subpkgdir"/usr/bin/llvm-config-$_majorver
+}
+
+_test_utils() {
+ pkgdesc="LLVM $_majorver utilities for executing LLVM and Clang style test suites"
+ depends="python3"
+ _common_subpkg
+
+ local litver=$(python3 "$builddir"/llvm/utils/lit/setup.py --version 2>/dev/null \
+ | sed 's/\.dev.*$//')
+ test -n "$litver"
+ provides="$provides lit=$litver-r$pkgrel"
+
+ amove usr/lib/$pkgname/bin/FileCheck \
+ usr/lib/$pkgname/bin/count \
+ usr/lib/$pkgname/bin/not \
+ usr/lib/python* \
+ usr/bin/lit
+
+ mv "$subpkgdir"/usr/bin/lit "$subpkgdir"/$_prefix/bin/lit
+ ln -s lit "$subpkgdir"/$_prefix/bin/llvm-lit
+
+ if [ "$_default_llvm" = yes ]; then
+ amove usr/bin/count usr/bin/not
+ ln -s ../lib/llvm$_majorver/bin/lit "$subpkgdir"/usr/bin/lit
+ else
+ amove usr/bin/count$_majorver usr/bin/not$_majorver
+ fi
+}
+
+_common_subpkg() {
+ if [ "$_default_llvm" = yes ]; then
+ replaces="llvm${subpkgname#"$pkgname"} llvm${_prevmajorver}${subpkgname#"$pkgname"}"
+ provides="llvm${subpkgname#"$pkgname"}=$pkgver-r$pkgrel"
+ fi
+}
+
+sha512sums="
+6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30 llvm-project-17.0.6.src.tar.xz
+84ed6b165445d0cdb59daa59f612a7d960bf67b13a1b19bdd2a19d46548013e756faca6b8249cb6c60354f3a9aaef46652e5f531944c71294e46d2f7bfd8b832 0001-Disable-dynamic-lib-tests-for-musl-s-dlclose-is-noop.patch
+ef63d5e01440cff65c10b84b65099bbd539bae72065d5581a8d2409cf2d0d4410d5bb3f501273ab29ee65bf8f5d23653a074428c2711ff9209324de56b857f3f allocscore.patch
+1826a6877d0c9e93c2d6ce0b4f83fe1118b9449f82f1919b37be5fc6d7c11ae22e0c02a7d3e6e23ce41bbb07df2ff08124aa9172e254ef2b12ecbc80d9a674a9 fix-memory-mf_exec-on-aarch64.patch
+ebc0be314c129ef38f00c8c2be9d589658cae89ac8cda109e35933b5044e775a3d370c0c584d3e501e4d43167b8523d8c5e5a85653d8ebe853571697ae40fb35 install-prefix.patch
+2123f01d8075a15cf8c2d8091fc8c92cb99807b1d654af13b436690ddb55f3e893a494593b3c92aeab26e50db4e0500ac688129ab6bc11e4765c0308b90db101 llvm-stack-size.patch
+84d2cc5c0376d8a8a2bbc0891849c9421feaea5b38a329aecdb822c136f7ded7ab4c3b87838d8915e6eb54cfe89f3e88f3b81ae98733e9a58d935be74a3c456c rust-feature-tables.patch
+58a4887feedb72f2aa286b396f91348a6730028c358686701c30e084dd968de9597d86373e118c865f0b495d201e094bb0a2cdc19ede49d9f60e34eb7b0b71dc 0001-Revert-Pseudo-Probe-Make-.pseudo_probe-GC-able.patch
+bd51d487c46472963a350cd90f7d7a5d8a4494467716f4e4e3d21ba6be5f65c0e84f173a5bb8468fb68325e75401f08110f8886320d5caa9acd339d795b254bc fix-hexagon-tests.patch
+7367b26f263cb0d36a358b79fe41256b4e8632170f3955e00aeeac3ccc6c3ae5dc370d596370bcf8c6b847473f02445fd1de7e6af36de6bd34b87995736fbf16 workaround-codegen-riscv-xtheadmempair-miscompile.patch
+"
diff --git a/main/llvm17/allocscore.patch b/main/llvm17/allocscore.patch
new file mode 100644
index 00000000000..5421c6b1ae8
--- /dev/null
+++ b/main/llvm17/allocscore.patch
@@ -0,0 +1,20 @@
+on x86, this fails with a float comparison error even though the floats are the
+same, because it does absolute eq
+--
+--- a/llvm/unittests/CodeGen/RegAllocScoreTest.cpp
++++ b/llvm/unittests/CodeGen/RegAllocScoreTest.cpp
+@@ -172,14 +172,5 @@
+ ASSERT_EQ(Freq2, TotalScore.loadStoreCounts());
+ ASSERT_EQ(Freq1, TotalScore.cheapRematCounts());
+ ASSERT_EQ(Freq2, TotalScore.expensiveRematCounts());
+- ASSERT_EQ(TotalScore.getScore(),
+- TotalScore.copyCounts() * CopyWeight +
+- TotalScore.loadCounts() * LoadWeight +
+- TotalScore.storeCounts() * StoreWeight +
+- TotalScore.loadStoreCounts() * (LoadWeight + StoreWeight) +
+- TotalScore.cheapRematCounts() * CheapRematWeight +
+- TotalScore.expensiveRematCounts() * ExpensiveRematWeight
+-
+- );
+ }
+ } // end namespace
diff --git a/main/llvm17/fix-hexagon-tests.patch b/main/llvm17/fix-hexagon-tests.patch
new file mode 100644
index 00000000000..aef1470dbd9
--- /dev/null
+++ b/main/llvm17/fix-hexagon-tests.patch
@@ -0,0 +1,36 @@
+From 03160ed7b3c1be7884dae94635a4dcee787034ef Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Tue, 19 Sep 2023 17:13:42 +0200
+Subject: [PATCH] [Hexagon][test] Fix more tests on linux-musl
+
+-march=hexagon uses the default target triple and changes the arch part of
+hexagon. On linux-musl, this essentially becomes hexagon-unknown-linux-musl
+which has different code generation. Use -mtriple instead.
+
+Link: https://github.com/llvm/llvm-project/commit/944110353b970fc99de3f012292b4c29d4d91999
+Link: https://github.com/llvm/llvm-project/issues/48936
+---
+ llvm/test/CodeGen/Hexagon/swp-memrefs-epilog.ll | 2 +-
+ llvm/test/CodeGen/Hexagon/vararg-formal.ll | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/llvm/test/CodeGen/Hexagon/swp-memrefs-epilog.ll b/llvm/test/CodeGen/Hexagon/swp-memrefs-epilog.ll
+index 20e39dd08fd727a..bdb0ad459f6fb54 100644
+--- a/llvm/test/CodeGen/Hexagon/swp-memrefs-epilog.ll
++++ b/llvm/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 -mtriple=hexagon -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/llvm/test/CodeGen/Hexagon/vararg-formal.ll b/llvm/test/CodeGen/Hexagon/vararg-formal.ll
+index 6bba65fcab16900..07a53c79020be0e 100644
+--- a/llvm/test/CodeGen/Hexagon/vararg-formal.ll
++++ b/llvm/test/CodeGen/Hexagon/vararg-formal.ll
+@@ -1,4 +1,4 @@
+-; RUN: llc -march=hexagon < %s | FileCheck %s
++; RUN: llc -mtriple=hexagon < %s | FileCheck %s
+
+ ; Make sure that the first formal argument is not loaded from memory.
+ ; CHECK-NOT: memw
diff --git a/main/llvm17/fix-memory-mf_exec-on-aarch64.patch b/main/llvm17/fix-memory-mf_exec-on-aarch64.patch
new file mode 100644
index 00000000000..6e0e0fcb69d
--- /dev/null
+++ b/main/llvm17/fix-memory-mf_exec-on-aarch64.patch
@@ -0,0 +1,27 @@
+Fix failures in AllocationTests/MappedMemoryTest.* on aarch64:
+
+ Failing Tests (8):
+ LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.AllocAndRelease/3
+ LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.DuplicateNear/3
+ LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.EnabledWrite/3
+ LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.MultipleAllocAndRelease/3
+ LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.SuccessiveNear/3
+ LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.UnalignedNear/3
+ LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.ZeroNear/3
+ LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.ZeroSizeNear/3
+
+Upstream-Issue: https://bugs.llvm.org/show_bug.cgi?id=14278#c10
+
+diff --git a/llvm/lib/Support/Unix/Memory.inc b/llvm/lib/Support/Unix/Memory.inc
+index 4c8f6b2ea..6cddae13b 100644
+--- a/llvm/lib/Support/Unix/Memory.inc
++++ b/llvm/lib/Support/Unix/Memory.inc
+@@ -50,7 +50,7 @@ static int getPosixProtectionFlags(unsigned Flags) {
+ llvm::sys::Memory::MF_EXEC:
+ return PROT_READ | PROT_WRITE | PROT_EXEC;
+ case llvm::sys::Memory::MF_EXEC:
+-#if defined(__FreeBSD__) || defined(__powerpc__)
++#if defined(__FreeBSD__) || defined(__powerpc__) || (defined(__linux__) && defined(__aarch64__))
+ // On PowerPC, having an executable page that has no read permission
+ // can have unintended consequences. The function InvalidateInstruction-
+ // Cache uses instructions dcbf and icbi, both of which are treated by
diff --git a/main/llvm17/install-prefix.patch b/main/llvm17/install-prefix.patch
new file mode 100644
index 00000000000..90f6c3e62d2
--- /dev/null
+++ b/main/llvm17/install-prefix.patch
@@ -0,0 +1,31 @@
+starting from llvm14 the install prefix breaks via symlinks;
+/usr/lib/llvm14/lib/cmake/llvm/LLVMConfig.cmake goes up 3 directories to find
+/usr/lib/llvm14/include as LLVM_INCLUDE_DIRS, but to even use this cmake folder
+at all it has to be symlinked to /usr/lib/cmake/llvm .. so the directory it
+instead uses is just /usr/include, which is not where the cmake includes are.
+this hardcodes them to the install prefix we pass via cmake, which should
+always be correct, and what cmake tries to autodetect anyway.
+
+also see: https://reviews.llvm.org/D29969
+
+this is supposedly fixed now, but for some reason it still isn't
+--- a/llvm/cmake/modules/CMakeLists.txt
++++ b/llvm/cmake/modules/CMakeLists.txt
+@@ -41,6 +41,8 @@
+ #
+
+ set(LLVM_CONFIG_CODE "
++# this is wrong when automatically detected
++set(LLVM_INSTALL_PREFIX \"${CMAKE_INSTALL_PREFIX}\")
+ # LLVM_BUILD_* values available only from LLVM build tree.
+ set(LLVM_BUILD_BINARY_DIR \"${LLVM_BINARY_DIR}\")
+ set(LLVM_BUILD_LIBRARY_DIR \"${LLVM_LIBRARY_DIR}\")
+@@ -109,8 +111,6 @@
+ #
+ # Generate LLVMConfig.cmake for the install tree.
+ #
+-
+-find_prefix_from_config(LLVM_CONFIG_CODE LLVM_INSTALL_PREFIX "${LLVM_INSTALL_PACKAGE_DIR}")
+
+ extend_path(LLVM_CONFIG_MAIN_INCLUDE_DIR "\${LLVM_INSTALL_PREFIX}" "${CMAKE_INSTALL_INCLUDEDIR}")
+ # This is the same as the above because the handwritten and generated headers
diff --git a/main/llvm17/llvm-stack-size.patch b/main/llvm17/llvm-stack-size.patch
new file mode 100644
index 00000000000..0a053154242
--- /dev/null
+++ b/main/llvm17/llvm-stack-size.patch
@@ -0,0 +1,23 @@
+Patch-Source: https://github.com/chimera-linux/cports/blob/8c0359f31b9d888e59ced0320e93ca8ad79ba1f9/main/llvm/patches/0010-always-set-a-larger-stack-size-explicitly.patch
+From 18e09846d9333b554e3dfbbd768ada6643bf92c0 Mon Sep 17 00:00:00 2001
+From: Daniel Kolesa <daniel@octaforge.org>
+Date: Sat, 27 Nov 2021 01:03:28 +0100
+Subject: [PATCH 10/22] always set a larger stack size explicitly
+
+---
+ llvm/lib/Support/Threading.cpp | 9 ---------
+ 1 file changed, 9 deletions(-)
+
+diff --git a/llvm/lib/Support/Threading.cpp b/llvm/lib/Support/Threading.cpp
+index 923935bbc..26594aac8 100644
+--- a/llvm/lib/Support/Threading.cpp
++++ b/llvm/lib/Support/Threading.cpp
+@@ -77,7 +77,7 @@ unsigned llvm::ThreadPoolStrategy::compute_thread_count() const {
+ // keyword.
+ #include "llvm/Support/thread.h"
+
+-#if defined(__APPLE__)
++#if 1
+ // Darwin's default stack size for threads except the main one is only 512KB,
+ // which is not enough for some/many normal LLVM compilations. This implements
+ // the same interface as std::thread but requests the same stack size as the
diff --git a/main/llvm17/rust-feature-tables.patch b/main/llvm17/rust-feature-tables.patch
new file mode 100644
index 00000000000..2068d51f2b9
--- /dev/null
+++ b/main/llvm17/rust-feature-tables.patch
@@ -0,0 +1,31 @@
+Patch-Source: https://github.com/rust-lang/llvm-project/commit/0a157fd7a5f61973ffddf96b3d445a718193eb1a
+From 0a157fd7a5f61973ffddf96b3d445a718193eb1a Mon Sep 17 00:00:00 2001
+From: Cameron Hart <cameron.hart@gmail.com>
+Date: Sun, 10 Jul 2016 23:55:53 +1000
+Subject: [PATCH] [rust] Add accessors for MCSubtargetInfo CPU and Feature
+ tables
+
+This is needed for `-C target-cpu=help` and `-C target-feature=help` in rustc
+---
+ llvm/include/llvm/MC/MCSubtargetInfo.h | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/llvm/include/llvm/MC/MCSubtargetInfo.h b/llvm/include/llvm/MC/MCSubtargetInfo.h
+index e1f0a86141e36..1e529bf4fb31e 100644
+--- a/llvm/include/llvm/MC/MCSubtargetInfo.h
++++ b/llvm/include/llvm/MC/MCSubtargetInfo.h
+@@ -230,6 +230,14 @@ class MCSubtargetInfo {
+ return Found != ProcDesc.end() && StringRef(Found->Key) == CPU;
+ }
+
++ ArrayRef<SubtargetSubTypeKV> getCPUTable() const {
++ return ProcDesc;
++ }
++
++ ArrayRef<SubtargetFeatureKV> getFeatureTable() const {
++ return ProcFeatures;
++ }
++
+ virtual unsigned getHwMode() const { return 0; }
+
+ /// Return the cache size in bytes for the given level of cache.
diff --git a/main/llvm17/workaround-codegen-riscv-xtheadmempair-miscompile.patch b/main/llvm17/workaround-codegen-riscv-xtheadmempair-miscompile.patch
new file mode 100644
index 00000000000..338af469817
--- /dev/null
+++ b/main/llvm17/workaround-codegen-riscv-xtheadmempair-miscompile.patch
@@ -0,0 +1,19 @@
+https://github.com/llvm/llvm-project/issues/62195#issuecomment-1770250844
+
+diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+index f030982cb815..fdc8987cb312 100644
+--- a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
++++ b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+@@ -1198,8 +1198,10 @@ RISCVTargetLowering::RISCVTargetLowering(const TargetMachine &TM,
+ ISD::VP_GATHER, ISD::VP_SCATTER, ISD::SRA, ISD::SRL,
+ ISD::SHL, ISD::STORE, ISD::SPLAT_VECTOR,
+ ISD::CONCAT_VECTORS});
+- if (Subtarget.hasVendorXTHeadMemPair())
+- setTargetDAGCombine({ISD::LOAD, ISD::STORE});
++ if (Subtarget.hasVendorXTHeadMemPair()) {
++ setTargetDAGCombine(ISD::LOAD);
++ setTargetDAGCombine(ISD::STORE);
++ }
+ if (Subtarget.useRVVForFixedLengthVectors())
+ setTargetDAGCombine(ISD::BITCAST);
+
diff --git a/main/lm-sensors/APKBUILD b/main/lm-sensors/APKBUILD
index 26b8ffee40a..94f445f6e6c 100644
--- a/main/lm-sensors/APKBUILD
+++ b/main/lm-sensors/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lm-sensors
pkgver=3.6.0
-pkgrel=2
+pkgrel=5
_ver=${pkgver//./-}
pkgdesc="Collection of user space tools for general SMBus access and hardware monitoring."
url="https://github.com/lm-sensors/lm-sensors"
@@ -9,11 +9,19 @@ arch="all"
provides="lm_sensors=$pkgver-r$pkgrel"
options="!check" # No test suite.
license="LGPL-2.1-or-later AND GPL-2.0-or-later" # libs are LGPL, binaries are GPL
-depends="bash sysfsutils"
-makedepends="perl rrdtool-dev bison flex"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-detect $pkgname-sensord
- $pkgname-sensord-openrc:sensord_openrc"
-#install=sensors.install
+depends="sysfsutils"
+makedepends="bash perl rrdtool-dev bison flex"
+subpackages="
+ $pkgname-detect
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-fancontrol
+ $pkgname-fancontrol-openrc:fancontrol_openrc
+ $pkgname-libs
+ $pkgname-sensord
+ $pkgname-sensord-openrc:sensord_openrc
+ "
+install="$pkgname.post-upgrade"
source="$pkgname-$pkgver.tar.gz::https://github.com/lm-sensors/lm-sensors/archive/V$_ver.tar.gz
sensors-detect-alpine.patch
@@ -24,7 +32,6 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/lm-sensors/lm-sensors/archiv
builddir="$srcdir"/$pkgname-$_ver
prepare() {
- cd "$builddir"
sed -i -e 's:^# \(PROG_EXTRA\):\1:' Makefile
# Respect LDFLAGS
sed -i -e 's/\$(LIBDIR)$/\$(LIBDIR) \$(LDFLAGS)/g' Makefile
@@ -38,20 +45,15 @@ prepare() {
}
build() {
- cd "$builddir"
export CFLAGS="$CFLAGS -fno-stack-protector"
make PREFIX=/usr user
}
package() {
- cd "$builddir"
make PROG_EXTRA:=sensord user_install \
PREFIX=/usr \
MANDIR=/usr/share/man \
DESTDIR="$pkgdir"
-
- cd "$srcdir"
- install -Dm755 fancontrol.initd "$pkgdir"/etc/init.d/fancontrol
}
detect() {
@@ -63,6 +65,19 @@ detect() {
mv usr/sbin/sensors-detect "$subpkgdir"/usr/bin/
}
+fancontrol() {
+ arch="noarch"
+ depends="bash"
+ pkgdesc="fancontrol daemon"
+ amove usr/sbin/fancontrol usr/sbin/pwmconfig
+}
+
+fancontrol_openrc() {
+ pkgdesc="fancontrol daemon (OpenRC init scripts)"
+ install_if="$pkgname-fancontrol=$pkgver-r$pkgrel openrc"
+ install -Dm755 "$srcdir"/fancontrol.initd "$subpkgdir"/etc/init.d/fancontrol
+}
+
sensord() {
pkgdesc="sensord daemon"
cd "$builddir"
@@ -77,8 +92,10 @@ sensord_openrc() {
install -Dm644 "$srcdir"/sensord.confd "$subpkgdir"/etc/conf.d/sensord
}
-sha512sums="4e80361913aff5403f1f0737fd4f42cffe43cc170ef48fff3914c9952f71990739d723f7b0b8120d9a01bcbbc829e964cfbd0a5cf18508af8f8dc825b49860bf lm-sensors-3.6.0.tar.gz
+sha512sums="
+4e80361913aff5403f1f0737fd4f42cffe43cc170ef48fff3914c9952f71990739d723f7b0b8120d9a01bcbbc829e964cfbd0a5cf18508af8f8dc825b49860bf lm-sensors-3.6.0.tar.gz
794cf2aaa2a9e809c6b67f4c888a89064bba3e5b9333a9f0101a92372c25012e506fa48e86523f57cf30e5c2a808bc38058fd8640c870ea6b48faab44794cfbb sensors-detect-alpine.patch
04756c3844033dc7897e1348181140a43f8470c1bb863f1524b21bbe6be2f13fbf17ac3a68270c96a70d8c148124fea569d1ef75619bbe383e15ec705ea18b21 fancontrol.initd
a77d81ab7ded085ba19e4c637e93268f889ccb8ce9e008a210ae135cb6e2140be07e5d455cf7fcc1084fd57cfbfb3f2bb37207123aebe9566f78b5183806fd7d sensord.confd
-9a19874c158e82ab076ed5fb96a40d4bfb4957bfd5a2ce66aa207c06e577bc1b048336c0046a9f856f6d00dc10e68a0dc9726f6e726a8f7bfd50c4043ee1e26a sensord.initd"
+9a19874c158e82ab076ed5fb96a40d4bfb4957bfd5a2ce66aa207c06e577bc1b048336c0046a9f856f6d00dc10e68a0dc9726f6e726a8f7bfd50c4043ee1e26a sensord.initd
+"
diff --git a/main/lm-sensors/lm-sensors.post-upgrade b/main/lm-sensors/lm-sensors.post-upgrade
new file mode 100644
index 00000000000..47c720c2aeb
--- /dev/null
+++ b/main/lm-sensors/lm-sensors.post-upgrade
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+ver_old=$2
+
+# In 3.6.0-4 fancontrol and pwmconfig moved to the
+# lm-sensors-fancontrol subpackage.
+
+if [ "$(apk version -t "$ver_old" '3.6.0-r4')" = '<' ]; then
+ echo "fancontrol & pwmconfig have moved to the lm-sensors-fancontrol subpackage"
+fi
+
+exit 0
diff --git a/main/lmdb/APKBUILD b/main/lmdb/APKBUILD
index fb1161c1557..94b4d0e687c 100644
--- a/main/lmdb/APKBUILD
+++ b/main/lmdb/APKBUILD
@@ -1,19 +1,18 @@
# Contributor: Olivier Mauras <olivier@mauras.ch>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lmdb
-pkgver=0.9.29
-pkgrel=1
+pkgver=0.9.32
+pkgrel=0
pkgdesc="Lightning Memory-Mapped Database"
url="https://symas.com/lmdb/"
arch="all"
license="OLDAP-2.8"
subpackages="$pkgname-dev $pkgname-doc $pkgname-tools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/LMDB/lmdb/archive/refs/tags/LMDB_$pkgver.tar.gz
+source="https://git.openldap.org/openldap/openldap/-/archive/LMDB_$pkgver/openldap-LMDB_$pkgver.tar.gz
lmdb-make.patch
- cacheflush.patch
lmdb.pc
"
-builddir="$srcdir/lmdb-LMDB_$pkgver/libraries/liblmdb"
+builddir="$srcdir/openldap-LMDB_$pkgver/libraries/liblmdb"
prepare() {
default_prepare
@@ -21,7 +20,7 @@ prepare() {
}
build() {
- make CFLAGS+="-fPIC"
+ make CC="${CC:-cc}" LDFLAGS="$LDFLAGS" CFLAGS="$CFLAGS -O2 -fPIC"
}
check() {
@@ -40,8 +39,7 @@ tools() {
}
sha512sums="
-a29e40b1a2f2ed542fb59b6dd92cf7f5f9ac603f74b1d2a66d143b65edf0324a03dc4a0a35657ba0992b00a3e9764e33af0dcc5ae8ae91c40c90c3b0581dade3 lmdb-0.9.29.tar.gz
-1ae28e850a32694f81cb7bf4abaab9cd96ef6c963de91f96810de3afee4da41102e310a6fb0ed889e9e9e04e00342f25272c04a8b483615dccfc039e34538594 lmdb-make.patch
-f30b5f60ad3788abe3caa91a787c00190d6cceef5d20339624ce3d128f59de1a65d6913ab28f938c52237c40cbaef8a2bff2be7158da32f8c4562aa240fd11a2 cacheflush.patch
+b249e598e6e54e39d664525ecfef96b05b2ad7838530026edd2f3bb0069f4e7d8d058dbbb51ccd9bac5b6d7838adba31ae60639bbfe74cd370489adf394bca72 openldap-LMDB_0.9.32.tar.gz
+2d964e250894cecd00a6b4f2f3dd3797ee1434c4299fcea0a4255f5f09cdfa2fe21bfb74d9e0816d79fd44bfa309697f1eb2709268a5376593bde901463852cf lmdb-make.patch
0cc194beedd8c1adc7cc1390eb131c800142c14120e47fc744d84f8225efecfa8d4854f4ed26021166b4b7cb021ffc4f068e0009958b1ce6247941fce9658233 lmdb.pc
"
diff --git a/main/lmdb/cacheflush.patch b/main/lmdb/cacheflush.patch
deleted file mode 100644
index 281a03124c1..00000000000
--- a/main/lmdb/cacheflush.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/mdb.c
-+++ b/mdb.c
-@@ -77,8 +77,7 @@
-
- #if defined(__mips) && defined(__linux)
- /* MIPS has cache coherency issues, requires explicit cache control */
--#include <asm/cachectl.h>
--extern int cacheflush(char *addr, int nbytes, int cache);
-+#include <sys/cachectl.h>
- #define CACHEFLUSH(addr, bytes, cache) cacheflush(addr, bytes, cache)
- #else
- #define CACHEFLUSH(addr, bytes, cache)
diff --git a/main/lmdb/lmdb-make.patch b/main/lmdb/lmdb-make.patch
index e053b796e82..55326749423 100644
--- a/main/lmdb/lmdb-make.patch
+++ b/main/lmdb/lmdb-make.patch
@@ -41,7 +41,7 @@ index f254511..949d9ae 100644
test: all
rm -rf testdb && mkdir testdb
-@@ -64,20 +68,24 @@ test: all
+@@ -64,21 +68,25 @@ test: all
liblmdb.a: mdb.o midl.o
$(AR) rs $@ mdb.o midl.o
@@ -64,6 +64,7 @@ index f254511..949d9ae 100644
-mtest4: mtest4.o liblmdb.a
-mtest5: mtest5.o liblmdb.a
-mtest6: mtest6.o liblmdb.a
+-mplay: mplay.o liblmdb.a
+ $(CC) $(LDFLAGS) -pthread -shared -Wl,-soname,liblmdb$(SOEXT).$(SOVER_MAJ) -o $@ mdb.lo midl.lo $(SOLIBS)
+
+mdb_stat: mdb_stat.o liblmdb.so
@@ -76,6 +77,7 @@ index f254511..949d9ae 100644
+mtest4: mtest4.o liblmdb.so
+mtest5: mtest5.o liblmdb.so
+mtest6: mtest6.o liblmdb.so
++mplay: mplay.o liblmdb.so
mdb.o: mdb.c lmdb.h midl.h
$(CC) $(CFLAGS) $(CPPFLAGS) -c mdb.c
diff --git a/main/lockfile-progs/APKBUILD b/main/lockfile-progs/APKBUILD
index 950314840bf..95437e9dd7f 100644
--- a/main/lockfile-progs/APKBUILD
+++ b/main/lockfile-progs/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lockfile-progs
pkgver=0.1.19
-pkgrel=0
+pkgrel=3
pkgdesc="Programs for locking and unlocking files and mailboxes"
url="https://packages.debian.org/sid/lockfile-progs"
arch="all"
-license="GPL-2.0-only"
+license="GPL-2.0-or-later"
makedepends="liblockfile-dev"
subpackages="$pkgname-doc"
source="https://deb.debian.org/debian/pool/main/l/lockfile-progs/lockfile-progs_$pkgver.tar.gz"
diff --git a/main/log4cplus/APKBUILD b/main/log4cplus/APKBUILD
new file mode 100644
index 00000000000..e2068c2dd63
--- /dev/null
+++ b/main/log4cplus/APKBUILD
@@ -0,0 +1,54 @@
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=log4cplus
+pkgver=2.1.1
+pkgrel=0
+pkgdesc="Logging Framework for C++"
+url="https://github.com/log4cplus/log4cplus"
+arch="all"
+license="Apache-2.0 AND BSD-2-Clause"
+checkdepends="findutils"
+subpackages="
+ $pkgname-static
+ $pkgname-dev
+ $pkgname-unicode
+ "
+source="https://github.com/log4cplus/log4cplus/releases/download/REL_${pkgver//./_}/log4cplus-$pkgver.tar.xz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var \
+ --disable-implicit-initialization \
+ --enable-lto \
+ --enable-static \
+ --with-working-c-locale
+ make
+}
+
+check() {
+ make check || {
+ find . -name testsuite.log -type f -ls \
+ -printf '%P {{{\n' \
+ -exec cat -v -n '{}' ';' \
+ -printf '}}} %P\n'
+ return 1
+ }
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+unicode() {
+ pkgdesc="$pkgdesc (Unicode)"
+
+ amove ./usr/lib/liblog4cplusU*
+}
+
+sha512sums="
+7cb03b7e230c3ec775eaf91ed32860e8d5e8015fa07713312c7febd379ec5a05758ef861b8cddf7a8776c8981c0948dff0baccf0aa9ce07540de7e2864669b74 log4cplus-2.1.1.tar.xz
+"
diff --git a/main/logcheck/APKBUILD b/main/logcheck/APKBUILD
index 21ae8e2c49a..d95bb53d563 100644
--- a/main/logcheck/APKBUILD
+++ b/main/logcheck/APKBUILD
@@ -1,34 +1,38 @@
# Contributor: Duane Hughes <duanejevon@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=logcheck
-pkgver=1.3.23
+pkgver=1.4.3
pkgrel=1
pkgdesc="Bash scripts used to monitor system log files for anomalies"
-options="!check" # Requires writing to root owned paths but can't run as root
+# !check: Requires writing to root owned paths but can't run as root
+options="!check"
url="https://packages.debian.org/source/sid/logcheck"
arch="noarch"
license="GPL-2.0-or-later"
-depends="lockfile-progs"
+depends="
+ bash
+ lockfile-progs
+ perl
+ "
install="$pkgname.pre-install"
subpackages="$pkgname-doc"
pkgusers="logcheck"
source="https://deb.debian.org/debian/pool/main/l/logcheck/logcheck_$pkgver.tar.xz
- logcheck.cron.d"
-
-builddir="$srcdir"/$pkgname
+ run-lock.patch
+ logcheck.cron.d
+ "
package() {
make DESTDIR="$pkgdir" install
- mkdir -p "$pkgdir"/var/lib/$pkgname
- mkdir -p "$pkgdir"/var/lock/$pkgname
install -D -m 644 "$srcdir"/logcheck.cron.d "$pkgdir"/etc/logcheck/logcheck.cron.sample
install -d "$pkgdir"/usr/share/man
cp -a "$builddir"/docs/* "$pkgdir"/usr/share/man
- chown -R $pkgusers "$pkgdir"/etc/logcheck "$pkgdir"/var/lock/logcheck "$pkgdir"/var/lib/logcheck
+ chown -R $pkgusers "$pkgdir"/etc/logcheck "$pkgdir"/run/lock/logcheck "$pkgdir"/var/lib/logcheck
}
sha512sums="
-635a96c3e0beaf6056e5b96b3bd69134c3330308452e3bcf8cc28cb36365f07806046bf498cbfaf5cfbc38a812eb2723ddf51a16304140e8f7091f1e6005ec4d logcheck_1.3.23.tar.xz
+e6c3ef20b44e23099a6b9054f210c8baead6f6a6a84d2d2f0bc465ef95bdf9b267a85f59ec876d1854e0e76f1fb4263a30036caf84b4c8bff15763fb6f9ff6a2 logcheck_1.4.3.tar.xz
+543575733f935d6f959a9eaf873dd800846e21f810b4041e6cbf6b64ec8fede2cf9672faeb8b44acbf1c8cd184edb5e44b5aeadb646d65dc93fa60f8d85c48a7 run-lock.patch
a177388f18c220323eea6f5413f76873e6ad2a2334f58a05727c7b94a793fcb98bd605cefc6fe44aca6afe5c50a9ef851abcc439aefe5b7545d5d6bb584c0a8b logcheck.cron.d
"
diff --git a/main/logcheck/logcheck.post-install b/main/logcheck/logcheck.post-install
index c3439021c39..35fca4de3fd 100644
--- a/main/logcheck/logcheck.post-install
+++ b/main/logcheck/logcheck.post-install
@@ -1,3 +1,3 @@
#!/bin/sh
-chown -R logcheck /etc/logcheck /var/lock/logcheck /var/lib/logcheck
+chown -R logcheck /etc/logcheck /run/lock/logcheck /var/lib/logcheck
diff --git a/main/logcheck/run-lock.patch b/main/logcheck/run-lock.patch
new file mode 100644
index 00000000000..8b884fa1b04
--- /dev/null
+++ b/main/logcheck/run-lock.patch
@@ -0,0 +1,16 @@
+logcheck uses /run/lock by default so fix the path for systems without
+/var/lock -> /run/lock symlink
+
+diff --git a/Makefile b/Makefile
+index fded3699..2a992473 100644
+--- a/Makefile
++++ b/Makefile
+@@ -13,7 +13,7 @@ install:
+ install -d $(DESTDIR)/var/lib/logcheck
+ install -d $(DESTDIR)/$(SBINDIR)
+ install -d $(DESTDIR)/$(BINDIR)
+- install -d $(DESTDIR)/var/lock/logcheck
++ install -d $(DESTDIR)/run/lock/logcheck
+ install -d $(DESTDIR)/$(SHAREDIR)
+
+ # Create directories for rules logcheck-database \ No newline at end of file
diff --git a/main/logrotate/APKBUILD b/main/logrotate/APKBUILD
index c18f7ff5c72..f260e073fc2 100644
--- a/main/logrotate/APKBUILD
+++ b/main/logrotate/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=logrotate
-pkgver=3.20.1
+pkgver=3.21.0
pkgrel=1
pkgdesc="Tool to rotate logfiles"
url="https://github.com/logrotate/logrotate"
@@ -10,11 +10,12 @@ license="GPL-2.0-or-later"
install="$pkgname.post-upgrade"
makedepends="popt-dev autoconf automake acl-dev libtool"
checkdepends="coreutils"
-subpackages="$pkgname-doc $pkgname-openrc"
+subpackages="$pkgname-doc $pkgname-openrc $pkgname-syslog"
source="https://github.com/logrotate/logrotate/releases/download/$pkgver/logrotate-$pkgver.tar.xz
logrotate.cron
logrotate.conf
- logrotate.confd"
+ logrotate.confd
+ syslog"
# secfixes:
# 3.20.1-r0:
@@ -23,6 +24,9 @@ source="https://github.com/logrotate/logrotate/releases/download/$pkgver/logrota
prepare() {
default_prepare
+ # If set, setgid bit is inherited by testdir causing test-0013 to fail
+ chmod -v -s test
+
./autogen.sh
}
@@ -55,9 +59,16 @@ package() {
"$pkgdir"/etc/conf.d/logrotate
}
+syslog() {
+ pkgdesc="Rotation for the main syslog file"
+ depends=$pkgname
+ install -D -m 644 syslog "$subpkgdir"/etc/logrotate.d/syslog
+}
+
sha512sums="
-a9ed5796ab254f511d0029a8f29ef7557f62e12e3ea9af24e30b5b9f348b1c1a16df26d44314b78299916fb3b5000b9cd9eed7cee2cee8df11cfd8e40c79b092 logrotate-3.20.1.tar.xz
+c576df7d2bc1a1db2f99befdd0ea627aef2d97bdcd4a7cdea76870623ba92fb1f04f1af6d15b75e4a9085f4aef2ae5e9843c4094cdd01e24d89872ccaf9c0d4a logrotate-3.21.0.tar.xz
f4d708594fb2b240cfc2928f38a180d27c2cecb9867e048dc29a32c0147244db4d2f6d92e7bff27e1f2623537587db87b2f8fc9bb988f98eff0c98f79f5a5bf2 logrotate.cron
e91c1648a088410d1f5ad16d05b67e316977be5cc0cbbb21a4e1fda2267415fb7945553aa4b4a4701d658fd6bfe35e3d9a304e0cf2a9c7f1be5a5753c3dbc7cb logrotate.conf
be9f0043b594d26b4f64e07a2188d19c3c43af75ef726305e4d98f744fc16cee9f280227116858e2f5b781c0a7b58e0209d7e9ab1285dfa7ba55a9dfda700229 logrotate.confd
+db8792e407635ea272a1caab2d25d59b3180443057ec2b624fdd7f115cb904afb192690eb1c88b1fb25712189fc4e44cebd77bc5236abdc323c5c526841dccf7 syslog
"
diff --git a/main/logrotate/syslog b/main/logrotate/syslog
new file mode 100644
index 00000000000..6eb4e73fccc
--- /dev/null
+++ b/main/logrotate/syslog
@@ -0,0 +1 @@
+/var/log/messages {}
diff --git a/main/logtail/APKBUILD b/main/logtail/APKBUILD
index d20bc2e3fb3..d21f2e78d25 100644
--- a/main/logtail/APKBUILD
+++ b/main/logtail/APKBUILD
@@ -11,11 +11,11 @@
# At the risk of being technically incorrect we call this package logtail
pkgname=logtail
pkgver=3.22
-pkgrel=0
+pkgrel=3
pkgdesc="Print new lines in log file since the last run (sf.net logtail-v3 ver)"
-url="http://logtail-v3.sourceforge.net/"
+url="https://logtail-v3.sourceforge.net/"
arch="all"
-license="GPL-2.1-only"
+license="GPL-2.0-or-later"
options="!check" # no tests
source="https://downloads.sourceforge.net/logtail-v3/logtail-v$pkgver.zip"
diff --git a/main/lsof/APKBUILD b/main/lsof/APKBUILD
index 8ec944eac8a..832bcd5c7fa 100644
--- a/main/lsof/APKBUILD
+++ b/main/lsof/APKBUILD
@@ -1,20 +1,28 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lsof
-pkgver=4.95.0
+pkgver=4.99.3
pkgrel=0
pkgdesc="LiSt Open Files"
url="https://github.com/lsof-org/lsof"
arch="all"
-license="lsof"
+license="custom"
subpackages="$pkgname-doc"
-makedepends="linux-headers"
-source="$pkgname-$pkgver.tar.gz::https://github.com/lsof-org/lsof/archive/$pkgver/lsof-$pkgver.tar.gz"
+makedepends="bash linux-headers perl"
+source="https://github.com/lsof-org/lsof/archive/$pkgver/lsof-$pkgver.tar.gz
+ hassecurity.patch
+ "
prepare() {
default_prepare
- sed -i "s|/\* #define\tHASSECURITY\t1 \*/|#define\tHASSECURITY\t1|" \
- dialects/linux/machine.h
+ # This test is skipped on other architectures where unshare
+ # returns "Operation not permitted", but on ppc64le unshare
+ # returns "Function not implemented" causing a fail instead
+ case "$CARCH" in
+ ppc64le)
+ rm -v lib/dialects/linux/tests/case-20-mmap.bash
+ ;;
+ esac
}
build() {
@@ -22,11 +30,18 @@ build() {
make
}
+check() {
+ (cd tests && ./Add2TestDB)
+ make check
+}
+
package() {
- install -Dm0755 lsof "$pkgdir"/usr/bin/lsof
+ install -Dm0755 lsof -t "$pkgdir"/usr/bin/
install -Dm0644 Lsof.8 "$pkgdir"/usr/share/man/man8/lsof.8
+ install -Dm0644 COPYING -t "$pkgdir"/usr/share/licenses/$pkgname/
}
sha512sums="
-09c5c4b0ea0530e23b98b96df8485f37c2594028b604097a816aee216a8b1a7bc887071e8727cbaf3c765d0992314a5aa49723572cfe926f88806be18a6b8aef lsof-4.95.0.tar.gz
+eed9cddecf93cf55e8106a0409d254feca8c5c40792d7dad4b34cbe7c9caec00b7a7b9526465362bf3448efef219fd6e309051455d20fd0945391e915a43bc93 lsof-4.99.3.tar.gz
+379c24df3bcad88bd35c2d9331064312e9faa0e6426479b3e3d3edd377860007ba3af2a0b4b0b998f0146bfd7d067dc4ee7d6f32a6f5e352afc875f6298ab1c2 hassecurity.patch
"
diff --git a/main/lsof/hassecurity.patch b/main/lsof/hassecurity.patch
new file mode 100644
index 00000000000..5e758d8a85d
--- /dev/null
+++ b/main/lsof/hassecurity.patch
@@ -0,0 +1,11 @@
+--- a/lib/dialects/linux/machine.h
++++ b/lib/dialects/linux/machine.h
+@@ -390,7 +390,7 @@
+ * (the one that its user logged on with) of the lsof process.
+ */
+
+-/* #define HASSECURITY 1 */
++#define HASSECURITY 1
+
+ /*
+ * If HASSECURITY is defined, define HASNOSOCKSECURITY to allow users
diff --git a/main/lsyncd/APKBUILD b/main/lsyncd/APKBUILD
index f235e646d3e..6d31a4d47b7 100644
--- a/main/lsyncd/APKBUILD
+++ b/main/lsyncd/APKBUILD
@@ -1,18 +1,18 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lsyncd
-pkgver=2.2.4
-pkgrel=0
+pkgver=2.3.1
+pkgrel=1
_luaver=5.4
pkgdesc="Live Syncing (Mirror) Daemon"
-url="https://github.com/axkibe/lsyncd"
+url="https://github.com/lsyncd/lsyncd"
arch="all"
license="GPL-2.0-or-later"
depends="rsync"
-makedepends="$depends_dev cmake lua$_luaver lua$_luaver-dev"
+makedepends="$depends_dev cmake lua$_luaver lua$_luaver-dev samurai"
options="!check" # needs passwordless ssh access to localhost
subpackages="$pkgname-doc $pkgname-openrc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/axkibe/lsyncd/archive/release-$pkgver.tar.gz
+source="$pkgname-$pkgver.tar.gz::https://github.com/lsyncd/lsyncd/archive/release-$pkgver.tar.gz
fix-realpath.patch
lpostcmd.patch
fix-mandir.patch
@@ -27,18 +27,18 @@ prepare() {
}
build() {
- cmake \
+ cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_BUILD_TYPE=MinSizeRel \
-DLUA_COMPILER=/usr/bin/luac$_luaver \
-DLUA_EXECUTABLE=/usr/bin/lua$_luaver \
-DLUA_INCLUDE_DIR=/usr/include/lua$_luaver \
-DLUA_LIBRARY=/usr/lib/lua$_luaver/liblua.so
- cmake --build .
+ cmake --build build
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
mkdir -p "$pkgdir/etc/lsyncd"
cp "$builddir"/examples/*.lua \
"$pkgdir"/etc/lsyncd/
@@ -47,7 +47,7 @@ package() {
}
sha512sums="
-8f4a55e54fe0a1da1d354bf1192c4b52b05859edf02713dba84a4b596fc36866d1bffe3a8768565637fefa54ba9248a209449f007b249998217f4b9dde0f447b lsyncd-2.2.4.tar.gz
+195cc46e00c58301aca6afb027eb0ad663254b3028bcf3e5d4fb7709bbcf2a6eb8ba9a39cae62c951eb4562795e0a147efb1ddcdd22a0b46742ec7c17f478fbe lsyncd-2.3.1.tar.gz
2cebaf59d960321c2eda4ef1e0d850f62eb7eedb7ba8922a5db33a7f78c769d1a52839fbb597ae06ba576632e2abc7b92a6ba2eaf58b71b93bc877db83e25576 fix-realpath.patch
047ee8b2fae169e444c81e9b3ce0ef38713a114877cc38f6aee0594cd64c7b7d99d22ac81fe5e6ac87767956e8757731374a179800ec57fe664f058788ba482b lpostcmd.patch
8bf810537085cf5b0408bb50e29fe1d197bc56d4dcfc8ed34c05d3a8fa2bf89c7d8091a53eda0818aa92a2db9714562186618ddb7b4fef94ebdc2d200d95387e fix-mandir.patch
diff --git a/main/ltrace/APKBUILD b/main/ltrace/APKBUILD
index a09bd3018bc..882c157be1c 100644
--- a/main/ltrace/APKBUILD
+++ b/main/ltrace/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=ltrace
pkgver=0.7.3
-pkgrel=4
+pkgrel=6
pkgdesc="Tracks runtime library calls in dynamically linked programs"
url="https://www.ltrace.org/"
arch="all !riscv64"
@@ -11,7 +11,7 @@ makedepends="linux-headers elfutils-dev autoconf automake"
subpackages="$pkgname-doc"
# you find latest release here, but need a login:
# https://alioth.debian.org/frs/?group_id=30892
-source="http://www.ltrace.org/ltrace_0.7.3.orig.tar.bz2
+source="https://www.ltrace.org/ltrace_0.7.3.orig.tar.bz2
musl.patch
add_ppc64le.patch
mips.patch
diff --git a/main/lttng-ust/APKBUILD b/main/lttng-ust/APKBUILD
index a18b162848c..a94d61a7464 100644
--- a/main/lttng-ust/APKBUILD
+++ b/main/lttng-ust/APKBUILD
@@ -1,14 +1,14 @@
# Contributor: Michael Jeanson <mjeanson@efficios.com>
# Maintainer: Michael Jeanson <mjeanson@efficios.com>
pkgname=lttng-ust
-pkgver=2.13.2
-pkgrel=0
+pkgver=2.13.6
+pkgrel=1
pkgdesc="LTTng 2.0 Userspace Tracer"
url="https://lttng.org"
arch="all"
-license="LGPL-2.1-or-later"
+license="LGPL-2.1-only AND GPL-2.0-only AND MIT"
depends_dev="userspace-rcu-dev>0.10"
-makedepends="$depends_dev util-linux-dev linux-headers python3"
+makedepends="$depends_dev util-linux-dev linux-headers python3 py3-setuptools"
checkdepends="bash"
subpackages="$pkgname-doc $pkgname-dev $pkgname-tools::noarch py3-lttng:pyagent"
source="https://lttng.org/files/lttng-ust/lttng-ust-$pkgver.tar.bz2"
@@ -43,12 +43,11 @@ tools() {
pyagent() {
pkgdesc="lttng-ust python agent"
- depends="python3"
amove usr/lib/python*
amove usr/lib/liblttng-ust-python-agent.*
}
sha512sums="
-2392b0aeabbaea6daf62a9c752a04ea3043e1cc2d93064b073fd4438beac0d30832aea9b2f158cc8b90b3d98f427bca2999cce4e873fa3f82e04693e13ed9fb3 lttng-ust-2.13.2.tar.bz2
+15458f8dd0ad6fa96a9cf7569ffabadfddcaa70b822b69b39d4d7dfba3701c9489706b06f12f9d7e376147299fb3cfc6fe1213d46d510bdb7b3dc834271da55f lttng-ust-2.13.6.tar.bz2
"
diff --git a/main/lua-alt-getopt/APKBUILD b/main/lua-alt-getopt/APKBUILD
index 9d26a83d949..881b0e293f8 100644
--- a/main/lua-alt-getopt/APKBUILD
+++ b/main/lua-alt-getopt/APKBUILD
@@ -1,15 +1,15 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Contributor: Natanael Copa <ncopa@alpinlinux.org>
-# Maintainer: Natanael Copa <ncopa@alpinlinux.org>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lua-alt-getopt
pkgver=0.8.0
-pkgrel=0
+pkgrel=1
pkgdesc="Lua module for processing options similar to getopt_long(3)"
url="https://github.com/cheusov/lua-alt-getopt"
arch="noarch"
license="MIT"
source="$pkgname-$pkgver.tar.gz::https://github.com/cheusov/lua-alt-getopt/archive/$pkgver.tar.gz
"
+options="!check"
_luaversions="5.1 5.2 5.3 5.4"
for _v in $_luaversions; do
@@ -38,7 +38,6 @@ _split() {
done
}
-
for _v in $_luaversions; do
eval "split_${_v/./_}() { _split $_v; }"
done
diff --git a/main/lua-aports/APKBUILD b/main/lua-aports/APKBUILD
index 126f696c275..b5a244523fc 100644
--- a/main/lua-aports/APKBUILD
+++ b/main/lua-aports/APKBUILD
@@ -1,22 +1,22 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lua-aports
pkgver=1.1.0
-pkgrel=0
+pkgrel=1
pkgdesc="Lua modules for parsing aports tree"
url="https://dev.alpinelinux.org/archive/lua-aports/"
arch="noarch"
license="MIT"
depends="lua5.2-cjson lua5.2-filesystem lua5.2-optarg lua5.2"
replaces="abuild"
-source="https://gitlab.alpinelinux.org/alpine/lua-aports/-/archive/v$pkgver/lua-aports-v$pkgver.tar.gz
+source="$pkgname-$pkgver.tar.gz::https://gitlab.alpinelinux.org/alpine/lua-aports/-/archive/v$pkgver/lua-aports-v$pkgver.tar.gz
"
builddir="$srcdir/$pkgname-v$pkgver"
+options="!check"
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
sha512sums="
-961c54aba2078f6b9a6f40eeeab1d11c0f12f0f672f09860e8c93f9b378088ca8d0a6e1fc1c6936965744e1215874be526f95309a21a5d2fd52fb2688e09609b lua-aports-v1.1.0.tar.gz
+961c54aba2078f6b9a6f40eeeab1d11c0f12f0f672f09860e8c93f9b378088ca8d0a6e1fc1c6936965744e1215874be526f95309a21a5d2fd52fb2688e09609b lua-aports-1.1.0.tar.gz
"
diff --git a/main/lua-asn1/APKBUILD b/main/lua-asn1/APKBUILD
index 58b32d0a096..48125469852 100644
--- a/main/lua-asn1/APKBUILD
+++ b/main/lua-asn1/APKBUILD
@@ -2,35 +2,16 @@
# Maintainer: Kaarle Ritvanen <kunkku@alpinelinux.org>
pkgname=lua-asn1
pkgver=2.2.0
-pkgrel=0
+pkgrel=1
pkgdesc="ASN.1 framework for Lua"
url=https://github.com/kunkku/lua-asn1
arch=noarch
license=MIT
depends=lua-stringy
-makedepends=
-install=
-subpackages=
-source="$pkgname-$pkgver.tar.gz::$url/archive/v$pkgver.tar.gz
- "
-
-_builddir=$srcdir/$pkgname-$pkgver
-prepare() {
- local i
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
-}
-
-build() {
- :
-}
+source="$pkgname-$pkgver.tar.gz::https://github.com/kunkku/lua-asn1/archive/v$pkgver.tar.gz"
+options="!check"
package() {
- cd "$_builddir"
make install "ROOT_DIR=$pkgdir"
}
diff --git a/main/lua-augeas/APKBUILD b/main/lua-augeas/APKBUILD
index 3c0bffe0557..f38b974c2f3 100644
--- a/main/lua-augeas/APKBUILD
+++ b/main/lua-augeas/APKBUILD
@@ -4,9 +4,9 @@ _luaversions="5.1 5.2 5.3 5.4"
pkgname=lua-augeas
pkgver=0.1.2
-pkgrel=5
+pkgrel=7
pkgdesc="Lua bindings for Augeas"
-url="https://git.alpinelinux.org/cgit/lua-augeas/"
+url="https://git-old.alpinelinux.org/hosted/lua-augeas/"
arch="all"
license="MIT"
makedepends="augeas-dev"
@@ -16,6 +16,7 @@ for _i in $_luaversions; do
done
source="https://dev.alpinelinux.org/archive/lua-augeas/lua-augeas-$pkgver.tar.bz2
0001-support-for-Lua-5.2.patch"
+options="!check"
prepare() {
default_prepare
diff --git a/main/lua-b64/APKBUILD b/main/lua-b64/APKBUILD
index cf74a9a052a..4419081ee87 100644
--- a/main/lua-b64/APKBUILD
+++ b/main/lua-b64/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lua-b64
pkgver=0.1
-pkgrel=4
+pkgrel=5
pkgdesc="Lua base64 implementation with support for urlsafe"
url="https://github.com/ncopa/lua-b64"
arch="all"
@@ -9,6 +9,7 @@ license="MIT"
depends="lua"
source="$pkgname-$pkgver.tar.gz::https://github.com/ncopa/lua-b64/archive/v$pkgver.tar.gz
0001-b64-fix-segfault-caused-by-signed-char.patch"
+options="!check"
_luaversions="5.2 5.3 5.4"
for _v in $_luaversions; do
diff --git a/main/lua-bit32/APKBUILD b/main/lua-bit32/APKBUILD
index b2c3dae08a2..035cb722834 100644
--- a/main/lua-bit32/APKBUILD
+++ b/main/lua-bit32/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lua-bit32
pkgver=5.3.0
-pkgrel=4
+pkgrel=5
pkgdesc="A lua library providing bitwise operations"
url="https://github.com/keplerproject/lua-compat-5.2"
arch="all"
diff --git a/main/lua-busted/APKBUILD b/main/lua-busted/APKBUILD
new file mode 100644
index 00000000000..0329edf69c6
--- /dev/null
+++ b/main/lua-busted/APKBUILD
@@ -0,0 +1,86 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=lua-busted
+_pkgname=busted
+pkgver=2.2.0
+pkgrel=0
+pkgdesc="Elegant Lua unit testing"
+url="https://lunarmodules.github.io/busted/"
+arch="noarch"
+license="MIT"
+# Note: We have replaced dkjson with lua-cjson.
+depends="
+ lua-cjson
+ lua-cliargs
+ lua-luassert
+ lua-mediator
+ lua-penlight
+ lua-say
+ lua-system
+ lua-term
+ "
+checkdepends="luajit"
+source="$pkgname-$pkgver.tar.gz::https://github.com/lunarmodules/busted/archive/v$pkgver.tar.gz
+ use-cjson.patch"
+builddir="$srcdir/$_pkgname-$pkgver"
+# tests fail on x86_64 because cl_standalone.lua output is different, i don't know why --kaniini
+options="!check"
+
+_luaversions="5.1 5.2 5.3 5.4"
+for _v in $_luaversions; do
+ subpackages="$subpackages lua$_v-${pkgname#lua-}:_subpackage"
+ checkdepends="$checkdepends lua$_v"
+done
+
+prepare() {
+ default_prepare
+
+ local lver; for lver in $_luaversions jit; do
+ sed "s|/usr/bin/env lua|/usr/bin/lua$lver|" \
+ bin/busted > bin/busted-$lver
+ done
+}
+
+check() {
+ mv bin/busted bin/busted.orig
+
+ local lver; for lver in $_luaversions jit; do
+ # Some specs invokes bin/busted as subprocess, so we must
+ # ensure that it will run on the correct Lua version.
+ install -m 755 bin/busted-$lver bin/busted
+
+ msg "Running tests on lua$lver..."
+ lua$lver bin/busted spec
+ done
+
+ mv bin/busted.orig bin/busted
+}
+
+package() {
+ # Executable with shebang #!/usr/bin/env lua.
+ install -m 755 -D bin/busted "$pkgdir"/usr/bin/busted
+}
+
+_subpackage() {
+ local lver="${subpkgname:3:3}"
+ pkgdesc="$pkgdesc (for Lua $lver)"
+ depends="lua$lver ${depends//lua-/lua$lver-}"
+ install_if="$pkgname=$pkgver-r$pkgrel lua$lver"
+ local destdir="$subpkgdir/usr/share/lua/$lver/$_pkgname"
+ local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$_pkgname/$pkgver-1"
+
+ cd "$builddir"
+
+ mkdir -p "$destdir"
+ cp -r busted/* "$destdir"
+
+ mkdir -p "$rockdir"
+ echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
+
+ install -m 755 -D bin/busted-$lver "$subpkgdir"/usr/bin/busted-$lver
+}
+
+sha512sums="
+86789ddb93e1b7958a0a6f447ce17532a60d0af27df21159100d3ee8a98496ae30d5a22939e91cbbfac805df118be1ed571360f90a3b31b81d654e493e77b0b7 lua-busted-2.2.0.tar.gz
+8495713a5710d1b4369c992061ca5c424577c7cd487c73e9b045c7e4eb2a417b87955a5bd41b7ceb20cfb77f3331443b4bfeec179af973883dacae47f6988a2a use-cjson.patch
+"
diff --git a/main/lua-busted/use-cjson.patch b/main/lua-busted/use-cjson.patch
new file mode 100644
index 00000000000..40c93df97e9
--- /dev/null
+++ b/main/lua-busted/use-cjson.patch
@@ -0,0 +1,8 @@
+--- a/busted/outputHandlers/json.lua
++++ b/busted/outputHandlers/json.lua
+@@ -1,4 +1,4 @@
+-local json = require 'dkjson'
++local json = require 'cjson'
+ local io_write = io.write
+ local io_flush = io.flush
+
diff --git a/main/lua-cjson/APKBUILD b/main/lua-cjson/APKBUILD
index ba5c4bc883d..b91db7b38b6 100644
--- a/main/lua-cjson/APKBUILD
+++ b/main/lua-cjson/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lua-cjson
pkgver=2.1.0
-pkgrel=10
+pkgrel=11
pkgdesc="fast JSON parsing and encoding support for Lua"
url="https://www.kyne.com.au/~mark/software/lua-cjson.php"
arch="all"
@@ -12,6 +12,7 @@ source="http://www.kyne.com.au/~mark/software/download/lua-cjson-$pkgver.tar.gz
0003-empty-array-metadata.patch
0004-Option-for-sorting-object-keys.patch
"
+options="!check"
_luaversions="5.1 5.2 5.3 5.4"
for _v in $_luaversions; do
diff --git a/main/lua-cliargs/APKBUILD b/main/lua-cliargs/APKBUILD
new file mode 100644
index 00000000000..91630c7e672
--- /dev/null
+++ b/main/lua-cliargs/APKBUILD
@@ -0,0 +1,51 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=lua-cliargs
+_rockname=lua_cliargs
+pkgver=3.0.2
+pkgrel=0
+pkgdesc="A command-line argument parsing module for Lua"
+url="https://github.com/amireh/lua_cliargs"
+arch="noarch"
+license="MIT"
+checkdepends="
+ lua-busted
+ lua-cjson
+ lua-yaml
+ "
+source="https://github.com/amireh/lua_cliargs/archive/v$pkgver/$_rockname-$pkgver.tar.gz
+ support-cjson.patch
+ "
+builddir="$srcdir/$_rockname-$pkgver"
+options="!check" # avoid circular dependency with lua-busted
+
+_luaversions="5.1 5.2 5.3 5.4"
+for _v in $_luaversions; do
+ checkdepends="$checkdepends lua$_v"
+ # for backward compatibility (Alpine <3.18)
+ provides="$provides lua$_v-cliargs=$pkgver-r$pkgrel"
+done
+
+check() {
+ local lver; for lver in $_luaversions jit; do
+ msg "Testing on lua$lver"
+ # from_ini - missing aport lua-inifile
+ lua$lver /usr/bin/busted --no-coverage --exclude-tags="from_ini"
+ done
+}
+
+package() {
+ local rockdir="$pkgdir/usr/lib/luarocks/rocks-common/$_rockname/$pkgver-1"
+ local luadir="$pkgdir/usr/share/lua/common"
+
+ mkdir -p "$luadir"
+ cp -r src/* "$luadir"/
+
+ mkdir -p "$rockdir"
+ echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
+}
+
+sha512sums="
+3d9dac4723e8a41284eb28a7d1b5c400add91de055eb59645406929f5091c52bd71640b5f4914597b222b5ce7b43bbc918e4a34a69ce7bae726638bd2447abf8 lua_cliargs-3.0.2.tar.gz
+69c1d1118a9a4f270eb458c91c4cb73621e25d9ddede8b9a2892cf551b756abb328f705e69ff1e76b3e59af26dbe2852267e0c765db7d8e8e38f014797edc347 support-cjson.patch
+"
diff --git a/main/lua-cliargs/support-cjson.patch b/main/lua-cliargs/support-cjson.patch
new file mode 100644
index 00000000000..e8d952a0934
--- /dev/null
+++ b/main/lua-cliargs/support-cjson.patch
@@ -0,0 +1,27 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sun, 18 Dec 2022 19:43:00 +0100
+Subject: [PATCH] Add support for cjson
+
+--- a/src/cliargs/config_loader.lua
++++ b/src/cliargs/config_loader.lua
+@@ -36,14 +36,16 @@
+
+ --- Load configuration from a JSON file.
+ ---
+- --- Requires the "dkjson"[1] module to be present on the system. Get it with:
++ --- Requires the "cjson"[1] or "dkjson"[2] module to be present on the system. Get it with:
+ ---
+- --- luarocks install dkjson
++ --- luarocks install cjson
+ ---
+- --- [1] http://dkolf.de/src/dkjson-lua.fsl/home
++ --- [1] https://www.kyne.com.au/~mark/software/lua-cjson.php
++ --- [2] http://dkolf.de/src/dkjson-lua.fsl/home
+ from_json = function(filepath)
+ local src, config, _, err
+- local json = require 'dkjson'
++ local ok, json = pcall(require, 'cjson')
++ if not ok then json = require 'dkjson' end
+
+ src, err = read_file(filepath)
+
diff --git a/main/lua-cmsgpack/APKBUILD b/main/lua-cmsgpack/APKBUILD
index 8faa4f9b25c..007b9b888f3 100644
--- a/main/lua-cmsgpack/APKBUILD
+++ b/main/lua-cmsgpack/APKBUILD
@@ -2,13 +2,14 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=lua-cmsgpack
pkgver=0.4.0
-pkgrel=0
+pkgrel=2
pkgdesc="MessagePack C implementation for Lua"
url="https://github.com/antirez/lua-cmsgpack"
arch="all"
license="BSD-2-Clause"
makedepends="lua-dev"
source="lua-cmsgpack-$pkgver.tar.gz::https://github.com/antirez/lua-cmsgpack/archive/$pkgver.tar.gz"
+options="!check"
build() {
${CC:-gcc} $CFLAGS -fPIC $(pkg-config --cflags lua) -o cmsgpack.so -shared $LFDLAGS $(pkg-config --libs lua) lua_cmsgpack.c
diff --git a/main/lua-cqueues/APKBUILD b/main/lua-cqueues/APKBUILD
index f41c22173ac..ea8345a7b70 100644
--- a/main/lua-cqueues/APKBUILD
+++ b/main/lua-cqueues/APKBUILD
@@ -4,12 +4,12 @@ _luaversions="5.1 5.2 5.3 5.4"
pkgname=lua-cqueues
_pkgname=cqueues
pkgver=20200726
-pkgrel=3
+pkgrel=5
pkgdesc="Lua event loop using coroutines"
url="http://25thandclement.com/~william/projects/cqueues.html"
arch="all"
license="MIT"
-makedepends="openssl1.1-compat-dev m4 bsd-compat-headers"
+makedepends="openssl-dev>3 m4 bsd-compat-headers"
for _i in $_luaversions; do
makedepends="$makedepends lua$_i-dev"
subpackages="$subpackages lua$_i-$_pkgname:_package"
@@ -17,6 +17,7 @@ done
source="cqueues-$pkgver.tar.gz::https://github.com/wahern/cqueues/archive/rel-$pkgver.tar.gz
"
builddir="$srcdir/cqueues-rel-$pkgver"
+options="!check"
build() {
# Override the HAVE_* tests that depend on GLIBC. grep for "#define HAVE_" on new releases.
diff --git a/main/lua-curl/APKBUILD b/main/lua-curl/APKBUILD
index c3d8308ca0b..10d4afc5e68 100644
--- a/main/lua-curl/APKBUILD
+++ b/main/lua-curl/APKBUILD
@@ -2,7 +2,7 @@
pkgname=lua-curl
_pkgname=Lua-cURLv3
pkgver=0.3.13
-pkgrel=0
+pkgrel=1
pkgdesc="Lua bindings to cURL library"
url="https://github.com/Lua-cURL/Lua-cURLv3"
arch="all"
@@ -11,6 +11,7 @@ makedepends="curl-dev"
source="$pkgname-$pkgver.tar.gz::https://github.com/Lua-cURL/$_pkgname/archive/v$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
+options="!check"
_luaversions="5.1 5.2 5.3 5.4"
for _v in $_luaversions; do
diff --git a/main/lua-dbi/APKBUILD b/main/lua-dbi/APKBUILD
index 00e832684f0..bb5c8f3fe18 100644
--- a/main/lua-dbi/APKBUILD
+++ b/main/lua-dbi/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=lua-dbi
_pkgname=luadbi
-pkgver=0.7.2
+pkgver=0.7.3
pkgrel=1
pkgdesc="database interface library for Lua"
url="https://github.com/mwild1/luadbi"
@@ -10,7 +10,7 @@ arch="all"
license="MIT"
makedepends="mariadb-connector-c-dev libpq-dev sqlite-dev"
_subpackages="$pkgname-mysql $pkgname-postgresql $pkgname-sqlite3"
-source="https://github.com/mwild1/$_pkgname/archive/v$pkgver/$_pkgname.tar.gz"
+source="$pkgname-$pkgver.tar.gz::https://github.com/mwild1/$_pkgname/archive/v$pkgver/$_pkgname.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
options="!check" # provided tests require running DBs
@@ -56,4 +56,6 @@ _subpackage() {
echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
}
-sha512sums="891f99cbc8f1b5327ef820641a1608abf41410f2f28584b975cc3cf65154b9bebf6f1b9ca7d1818b9c965738ad700dd17ae042dfd2a7146cf755871ebae535b9 luadbi.tar.gz"
+sha512sums="
+1122bc9e83cf7071aff8685163a2dc387b40d2fb28aeb57e9c19e14afa6dcb0fb05fa76ea700f69751fdc79b0f1155235195d525041124fed5cefab0d50835bb lua-dbi-0.7.3.tar.gz
+"
diff --git a/main/lua-discount/APKBUILD b/main/lua-discount/APKBUILD
index d95c6993107..a2a70913123 100644
--- a/main/lua-discount/APKBUILD
+++ b/main/lua-discount/APKBUILD
@@ -3,9 +3,9 @@
_luaversions="5.1 5.2 5.3 5.4"
pkgname=lua-discount
pkgver=1.2.10.1
-pkgrel=6
+pkgrel=8
pkgdesc="Markdown implementation in C for Lua"
-url="http://asbradbury.org/projects/lua-discount"
+url="https://asbradbury.org/projects/lua-discount"
arch="all"
license="custom" # BSD-based custom license
subpackages="$pkgname-doc"
@@ -13,7 +13,8 @@ for _i in $_luaversions; do
makedepends="$makedepends lua$_i-dev"
subpackages="$subpackages lua$_i-discount:split_${_i/./_}"
done
-source="http://files.luaforge.net/releases/lua-discount/lua-discount/$pkgver/lua-discount-$pkgver.tar.gz"
+source="https://dev.alpinelinux.org/archive/lua-discount/lua-discount-$pkgver.tar.gz"
+options="!check"
build() {
cd "$srcdir"
@@ -45,5 +46,6 @@ for _v in $_luaversions; do
eval "split_${_v/./_}() { _split $_v; }"
done
-
-sha512sums="84c26a19d97ca085c785d1916b05bc0c78a2b5a0965d7feeef9a545c4b69c71627791c5d560bcb529c9ed414ed2ebe99f253879d6eae593a5b6f93291d66d5b1 lua-discount-1.2.10.1.tar.gz"
+sha512sums="
+84c26a19d97ca085c785d1916b05bc0c78a2b5a0965d7feeef9a545c4b69c71627791c5d560bcb529c9ed414ed2ebe99f253879d6eae593a5b6f93291d66d5b1 lua-discount-1.2.10.1.tar.gz
+"
diff --git a/main/lua-dns/APKBUILD b/main/lua-dns/APKBUILD
index a15b2610fbe..f677e0cdfd1 100644
--- a/main/lua-dns/APKBUILD
+++ b/main/lua-dns/APKBUILD
@@ -1,17 +1,15 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lua-dns
pkgver=20080404
-pkgrel=2
+pkgrel=4
pkgdesc="a DNS client library written in Lua using LuaSocket"
-url="http://ztact.com/software/dns.lua"
+url="https://github.com/abma/dns.lua"
arch="noarch"
-license="GPL"
+license="Public Domain"
depends="lua lua-socket"
-makedepends=
-install=
-subpackages=
# Was found here: http://ztact.com/files/src/ztact-lua/
source="dns.lua ztact.lua"
+options="!check"
prepare() {
:
diff --git a/main/lua-evdev/APKBUILD b/main/lua-evdev/APKBUILD
index 21824b16f29..e5082d43f4c 100644
--- a/main/lua-evdev/APKBUILD
+++ b/main/lua-evdev/APKBUILD
@@ -3,27 +3,26 @@ _luaversions="5.1 5.2 5.3"
pkgname=lua-evdev
_rockname=evdev
pkgver=2.2.1
-pkgrel=1
+pkgrel=3
pkgdesc="Lua module for reading input events"
url="https://github.com/Tangent128/lua-evdev"
arch="all"
license="MIT"
-depends=""
makedepends="linux-headers"
-subpackages=""
for _v in $_luaversions; do
makedepends="$makedepends lua$_v-dev"
subpackages="$subpackages lua$_v-${pkgname#lua-}:_package"
done
-source="$pkgname-$pkgver.tar.gz::https://github.com/Tangent128/$pkgname/archive/evdev-$pkgver.tar.gz
+source="$pkgname-$pkgver.tar.gz::https://github.com/Tangent128/lua-evdev/archive/evdev-$pkgver.tar.gz
time64.patch"
builddir="$srcdir/$pkgname-evdev-$pkgver"
+options="!check"
prepare() {
- default_prepare || return 1
+ default_prepare
local lver; for lver in $_luaversions; do
- cp -r "$builddir" "$builddir-$lver" || return 1
+ cp -r "$builddir" "$builddir-$lver"
done
}
@@ -32,7 +31,7 @@ build() {
msg "Building for Lua $lver..."
cd "$builddir-$lver"
- make MYCFLAGS="$CFLAGS $(pkg-config --cflags lua$lver)" || return 1
+ make MYCFLAGS="$CFLAGS $(pkg-config --cflags lua$lver)"
done
}
@@ -50,7 +49,7 @@ _package() {
cd "$builddir-$lver"
local f; for f in evdev.lua evdev/constants.lua; do
- install -D $f "$subpkgdir"/usr/share/lua/$lver/$f || return 1
+ install -D $f "$subpkgdir"/usr/share/lua/$lver/$f
done
install -D evdev/core.so "$subpkgdir"/usr/lib/lua/$lver/evdev/core.so
diff --git a/main/lua-expat/APKBUILD b/main/lua-expat/APKBUILD
index 989040bc454..5489269f3bb 100644
--- a/main/lua-expat/APKBUILD
+++ b/main/lua-expat/APKBUILD
@@ -3,10 +3,10 @@
_luaversions="5.1 5.2 5.3 5.4"
pkgname=lua-expat
_name=expat
-pkgver=1.3.0
-pkgrel=4
+pkgver=1.5.1
+pkgrel=1
pkgdesc="SAX XML parser based on the Expat library"
-url="https://matthewwild.co.uk/projects/luaexpat/"
+url="https://lunarmodules.github.io/luaexpat/"
arch="all"
license="MIT"
makedepends="expat-dev"
@@ -15,8 +15,9 @@ for _i in $_luaversions; do
subpackages="$subpackages lua$_i-$_name:_split${_i/./}"
done
-source="https://github.com/LuaDist/luaexpat/archive/$pkgver/expat-$pkgver.tar.gz"
-builddir="$srcdir"/luaexpat-$pkgver
+source="$pkgname-$pkgver.tar.gz::https://github.com/lunarmodules/luaexpat/archive/refs/tags/$pkgver.tar.gz"
+builddir="$srcdir/luaexpat-$pkgver"
+options="!check"
build() {
cd "$srcdir"
@@ -51,5 +52,5 @@ for _i in $_luaversions; do
done
sha512sums="
-46dda739a8b7fcde2591460fc1c7c4809cf434540b8718e28408260dde20f35b6c3a753061bdf0207676ef6680463663636133d7b64611388922b18c55b3501a expat-1.3.0.tar.gz
+45834b02d863a65c6de2ad3c5c671935ae512dd906233a647269438aeeb37c7bbd6e7166aefd8da72480b33e1aa79a86ed070ed8800a8e0f303ccc74918f3bb8 lua-expat-1.5.1.tar.gz
"
diff --git a/main/lua-feedparser/APKBUILD b/main/lua-feedparser/APKBUILD
index 4bb6279cf73..2b27d9bf301 100644
--- a/main/lua-feedparser/APKBUILD
+++ b/main/lua-feedparser/APKBUILD
@@ -8,7 +8,6 @@ url="https://github.com/slact/lua-feedparser"
arch="noarch"
license="BSD-3-Clause"
depends="lua lua-expat"
-checkdepends="luajit"
source="$pkgname-$pkgver.tar.gz::https://github.com/slact/lua-feedparser/archive/$pkgver.tar.gz"
provides="$pkgname-common=$pkgver-r$pkgrel" # for backward compatibility
@@ -21,7 +20,7 @@ for _v in $_luaversions; do
done
check() {
- local lver; for lver in $_luaversions jit; do
+ local lver; for lver in $_luaversions; do
msg "Testing on Lua $lver"
make test LUA_BIN=lua$lver
done
@@ -38,4 +37,6 @@ package() {
echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
}
-sha512sums="8a65947b5472321fc162ec325c31e4d92e52e6cba6952c01c9941a7596403ed495ee464bfc32f5fdda3c58d33fae3a3b38882f7f22ecc16360c6603cd7ab4d4d lua-feedparser-0.71.tar.gz"
+sha512sums="
+8a65947b5472321fc162ec325c31e4d92e52e6cba6952c01c9941a7596403ed495ee464bfc32f5fdda3c58d33fae3a3b38882f7f22ecc16360c6603cd7ab4d4d lua-feedparser-0.71.tar.gz
+"
diff --git a/main/lua-file-magic/APKBUILD b/main/lua-file-magic/APKBUILD
index 5865fe3b5c2..a83e122a31c 100644
--- a/main/lua-file-magic/APKBUILD
+++ b/main/lua-file-magic/APKBUILD
@@ -1,14 +1,15 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lua-file-magic
pkgver=0.2
-pkgrel=3
+pkgrel=5
pkgdesc="Lua binding to libmagic"
url="https://github.com/ncopa/lua-file-magic"
arch="all"
-license="LGPL"
+license="MIT"
depends="lua"
makedepends="file-dev"
source="$pkgname-$pkgver.tar.gz::https://github.com/ncopa/lua-file-magic/archive/v$pkgver.tar.gz"
+options="!check"
_luaversions="5.2 5.3 5.4"
for _v in $_luaversions; do
diff --git a/main/lua-filesize/APKBUILD b/main/lua-filesize/APKBUILD
index 2d7f8053a3c..379fc6a5e2f 100644
--- a/main/lua-filesize/APKBUILD
+++ b/main/lua-filesize/APKBUILD
@@ -8,6 +8,7 @@ url="https://github.com/starius/lua-filesize"
arch="all"
license="MIT"
source="$_pkgname-$pkgver.tar.gz::https://github.com/starius/lua-filesize/archive/$pkgver.tar.gz"
+options="!check"
_luaversions="5.1 5.2 5.3 5.4"
for _v in $_luaversions; do
diff --git a/main/lua-filesystem/APKBUILD b/main/lua-filesystem/APKBUILD
index 51046dcfaf4..d9c2e6db168 100644
--- a/main/lua-filesystem/APKBUILD
+++ b/main/lua-filesystem/APKBUILD
@@ -4,13 +4,12 @@ _pkgname=luafilesystem
pkgver=1.8.0
_pkgver=${pkgver//./_}
_rockver=${pkgver%.*}-${pkgver##*.}
-pkgrel=1
+pkgrel=4
pkgdesc="Filesystem functions for Lua"
-url="http://keplerproject.github.io/luafilesystem/"
+url="https://lunarmodules.github.io/luafilesystem/"
arch="all"
license="MIT"
-checkdepends="luajit"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/keplerproject/$_pkgname/archive/v$_pkgver.tar.gz"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/lunarmodules/$_pkgname/archive/v$_pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$_pkgver"
_luaversions="5.1 5.2 5.3 5.4"
@@ -36,11 +35,11 @@ build() {
}
check() {
- local lver; for lver in $_luaversions jit; do
+ local lver; for lver in $_luaversions; do
msg "Testing on lua$lver"
cd "$builddir-${lver/jit/5.1}"
- LUA_CPATH=./src/?.so lua$lver tests/test.lua
+ LUA_CPATH="./src/?.so" lua$lver tests/test.lua
done
}
@@ -54,7 +53,7 @@ _subpackage() {
depends="lua$lver"
install_if="$pkgname=$pkgver-r$pkgrel lua$lver"
local install_cmod=$(pkg-config --variable=INSTALL_CMOD lua$lver)
- local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$_rockname/$_rockver"
+ local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$_pkgname/$_rockver"
make -C "$builddir-$lver" LUA_LIBDIR="$subpkgdir/$install_cmod" install
@@ -62,4 +61,6 @@ _subpackage() {
echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
}
-sha512sums="79d964f13ae43716281dc8521d2f128b22f2261234c443e242b857cfdf621e208bdf4512f8ba710baa113e9b3b71e2544609de65e2c483f569c243a5cf058247 luafilesystem-1.8.0.tar.gz"
+sha512sums="
+79d964f13ae43716281dc8521d2f128b22f2261234c443e242b857cfdf621e208bdf4512f8ba710baa113e9b3b71e2544609de65e2c483f569c243a5cf058247 luafilesystem-1.8.0.tar.gz
+"
diff --git a/main/lua-gversion/APKBUILD b/main/lua-gversion/APKBUILD
index 8374ee737aa..61576851002 100644
--- a/main/lua-gversion/APKBUILD
+++ b/main/lua-gversion/APKBUILD
@@ -12,6 +12,7 @@ license="MIT"
depends="lua"
source="$pkgname-$pkgver.tar.gz::https://github.com/jirutka/$_pkgname/archive/v$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
+options="!check"
_luaversions="5.1 5.2 5.3 5.4"
for _v in $_luaversions; do
diff --git a/main/lua-hashids/APKBUILD b/main/lua-hashids/APKBUILD
index 8422017149b..e303a635552 100644
--- a/main/lua-hashids/APKBUILD
+++ b/main/lua-hashids/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=lua-hashids
pkgver=1.0.6
-pkgrel=3
+pkgrel=4
pkgdesc="Lua implementation of hashids"
url="https://github.com/leihog/hashids.lua"
arch="all"
diff --git a/main/lua-iconv/APKBUILD b/main/lua-iconv/APKBUILD
index 1e1cff43929..00697ce5a64 100644
--- a/main/lua-iconv/APKBUILD
+++ b/main/lua-iconv/APKBUILD
@@ -2,7 +2,7 @@
_luaversions="5.1 5.2 5.3 5.4"
pkgname=lua-iconv
pkgver=7
-pkgrel=2
+pkgrel=4
pkgdesc="Lua binding to the POSIX 'iconv' library"
url="http://ittner.github.io/lua-iconv/"
arch="all"
@@ -11,8 +11,11 @@ for _i in $_luaversions; do
makedepends="$makedepends lua$_i-dev"
subpackages="$subpackages lua$_i-iconv:split_${_i/./_}"
done
-source="https://github.com/downloads/ittner/lua-iconv/lua-iconv-$pkgver.tar.gz
- 0001-lua-iconv-make-close-available-from-lua.patch"
+source="$pkgname-$pkgver-2.tar.gz::https://github.com/ittner/lua-iconv/archive/refs/tags/lua-iconv-$pkgver.tar.gz
+ 0001-lua-iconv-make-close-available-from-lua.patch
+ "
+builddir="$srcdir/lua-iconv-lua-iconv-$pkgver"
+options="!check"
prepare() {
default_prepare
@@ -50,5 +53,7 @@ for _v in $_luaversions; do
eval "split_${_v/./_}() { _split $_v; }"
done
-sha512sums="03b537ba6050ca8e59e6a62474e837c0d6463d1da4610e6da820afc573659571f75de0c7507792e8b7348fd91623d7af7050ead18bd09ec0c7b89a742e024a57 lua-iconv-7.tar.gz
-472e6611638d57c6c99fcfe53defa9766d89c45f6eec5fb4dd31bd63a119901a99fa2219d38d66644d00c0fcfd006418ccb3ee5c0496f2397d3d76d05ae0cee9 0001-lua-iconv-make-close-available-from-lua.patch"
+sha512sums="
+7fae8be68878747a6bcb559d1548f7d0b330d519cdf306f6ec8250cb914ed971ba1a86fef20771a5add728d796c613c32544c20ba4f8b4315d20ee8ac39a607f lua-iconv-7-2.tar.gz
+472e6611638d57c6c99fcfe53defa9766d89c45f6eec5fb4dd31bd63a119901a99fa2219d38d66644d00c0fcfd006418ccb3ee5c0496f2397d3d76d05ae0cee9 0001-lua-iconv-make-close-available-from-lua.patch
+"
diff --git a/main/lua-inspect/APKBUILD b/main/lua-inspect/APKBUILD
index cded7334283..ae4788e188e 100644
--- a/main/lua-inspect/APKBUILD
+++ b/main/lua-inspect/APKBUILD
@@ -13,6 +13,7 @@ depends="lua"
subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/kikito/$_pkgname/archive/v$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
+options="!check"
_luaversions="5.1 5.2 5.3 5.4"
for _v in $_luaversions; do
diff --git a/main/lua-json4/APKBUILD b/main/lua-json4/APKBUILD
index 1cfe2701a4c..ffc5ccc08d2 100644
--- a/main/lua-json4/APKBUILD
+++ b/main/lua-json4/APKBUILD
@@ -10,6 +10,7 @@ license="MIT"
depends="lua"
source="$pkgname-$pkgver.tar.gz::https://github.com/craigmj/$_rockname/archive/$pkgver.tar.gz"
builddir="$srcdir/$_rockname-$pkgver"
+options="!check"
_luaversions="5.1 5.2 5.3 5.4"
for _v in $_luaversions; do
diff --git a/main/lua-ldap/APKBUILD b/main/lua-ldap/APKBUILD
index e85a06f1d4a..a69c85129b6 100644
--- a/main/lua-ldap/APKBUILD
+++ b/main/lua-ldap/APKBUILD
@@ -3,8 +3,8 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lua-ldap
_pkgname=lualdap
-pkgver=1.2.6
-pkgrel=2
+pkgver=1.3.1
+pkgrel=1
pkgdesc="Lua binding to LDAP"
url="https://github.com/lualdap/lualdap"
arch="all"
@@ -74,4 +74,6 @@ _package() {
echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
}
-sha512sums="e32010caa8efea5c23f2a595bd6a339267ecd08cf23e39389005bf8e499d6bad63771d0c7faf3ab5b8f670ba22bb15bf7ae691ed67920e86d8ed2c5649d7a079 lualdap-1.2.6.tar.gz"
+sha512sums="
+29d622ecf63214ac26ade71478c383e4f1b7468097bf19b99b8209b3f6cbb2078298a149d64ba8a7ca4abe97aa45550982792fa4ac0a8014f7daf709fe725e9f lualdap-1.3.1.tar.gz
+"
diff --git a/main/lua-ldbus/APKBUILD b/main/lua-ldbus/APKBUILD
index 5c78342e531..cd997aacf49 100644
--- a/main/lua-ldbus/APKBUILD
+++ b/main/lua-ldbus/APKBUILD
@@ -3,71 +3,53 @@ _luaversions="5.1 5.2 5.3"
pkgname=lua-ldbus
pkgver=20150430
_commitid=9f6db626600eb7e04000368da947e0c5cd175fb5
-pkgrel=2
+pkgrel=4
pkgdesc="Lua D-Bus bindings"
url="https://github.com/daurnimator/ldbus"
arch="all"
license="MIT"
-depends=""
-subpackages=""
makedepends="dbus-dev"
-install=""
source="ldbus-$pkgver.tar.gz::https://github.com/daurnimator/ldbus/archive/$_commitid.tar.gz
0001-fix-lua_State-usage-for-callbacks.patch
fix-makefile.patch
"
+options="!check" # no tests
for _i in $_luaversions; do
- makedepends="$makedepends lua${_i}-dev"
- subpackages="$subpackages lua${_i}-ldbus:_split_${_i/./}"
+ makedepends="$makedepends lua$_i-dev"
+ subpackages="$subpackages lua$_i-ldbus:_package"
done
-_builddir="$srcdir"/ldbus-$_commitid/src
-prepare() {
- local i
- cd "$srcdir"/ldbus-$_commitid
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
-}
+builddir="$srcdir"/ldbus-$_commitid
build() {
- cd "$_builddir"
+ cd src
for _i in $_luaversions; do
msg "Build for Lua $_i"
- make LUA_VERSION=$_i LUA_LIBDIR="$pkgdir"/usr/lib/lua/$_i all || return 1
+ make LUA_VERSION=$_i LUA_LIBDIR="$pkgdir"/usr/lib/lua/$_i all
done
}
package() {
- cd "$_builddir"
+ cd src
for _i in $_luaversions; do
msg "Install for Lua $_i"
- make LUA_VERSION=$_i LUA_LIBDIR="$pkgdir"/usr/lib/lua/$_i install || return 1
+ make LUA_VERSION=$_i LUA_LIBDIR="$pkgdir"/usr/lib/lua/$_i install
done
rm -f "$pkgdir"/usr/lib/*.la
}
-_split() {
- local d= _ver=$1
- pkgdesc="$pkgdesc - for Lua $_ver"
- depends=
- install_if="lua$_ver $pkgname=$pkgver-r$pkgrel"
- for d in usr/lib/lua usr/share/lua; do
- if [ -d "$pkgdir"/$d/$_ver ]; then
- mkdir -p "$subpkgdir"/$d
- mv "$pkgdir"/$d/$_ver "$subpkgdir"/$d/ || return 1
- fi
- done
-}
-
-for _i in $_luaversions; do
- eval "_split_${_i/./}() { _split $_i; }"
-done
+_package() {
+ local lver=${subpkgname:3:3}
+ pkgdesc="$pkgdesc - for Lua $lver"
+ depends="lua$lver"
+ install_if="lua$lver $pkgname=$pkgver-r$pkgrel"
+ amove usr/lib/lua/$lver
+}
-sha512sums="cab609800b3d67bb6fd533b62179345430e822ad30c711bc8f35cb079353108339288eb7adc374a681bb4f42b66cfd025cff4591fd9cbef045acad41e72d3073 ldbus-20150430.tar.gz
+sha512sums="
+cab609800b3d67bb6fd533b62179345430e822ad30c711bc8f35cb079353108339288eb7adc374a681bb4f42b66cfd025cff4591fd9cbef045acad41e72d3073 ldbus-20150430.tar.gz
77d631acfa58ad28868a7ccd8a3ec3f5e44357f0243cdf373037955b5961bc84094790d137a05a47b3cd26665d5afcfc1491b361dd895797fe317fe7e947a252 0001-fix-lua_State-usage-for-callbacks.patch
-ee9dfa64598cb856602d70f7d15b4783423799ed428ed3c2f6f28d1085dd14c34204cd38fa390574b982237858d0c8970f5f517827310d780afe2bd32e496380 fix-makefile.patch"
+ee9dfa64598cb856602d70f7d15b4783423799ed428ed3c2f6f28d1085dd14c34204cd38fa390574b982237858d0c8970f5f517827310d780afe2bd32e496380 fix-makefile.patch
+"
diff --git a/main/lua-luassert/APKBUILD b/main/lua-luassert/APKBUILD
new file mode 100644
index 00000000000..9c3dc949d91
--- /dev/null
+++ b/main/lua-luassert/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=lua-luassert
+_pkgname=luassert
+pkgver=1.9.0
+pkgrel=0
+pkgdesc="Assertion library for Lua"
+url="https://github.com/Olivine-Labs/luassert"
+arch="noarch"
+license="MIT"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Olivine-Labs/$_pkgname/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+# This module needs lua-busted to run tests, but lua-busted depends on
+# lua-luassert and we wanna avoid circular dependencies.
+options="!check"
+
+_luaversions="5.1 5.2 5.3 5.4"
+for _v in $_luaversions; do
+ subpackages="$subpackages lua$_v-${pkgname#lua-}:_subpackage"
+done
+
+package() {
+ mkdir -p "$pkgdir"
+}
+
+_subpackage() {
+ local lver="${subpkgname:3:3}"
+ pkgdesc="$pkgdesc (for Lua $lver)"
+ depends="lua$lver lua$lver-say"
+ install_if="$pkgname=$pkgver-r$pkgrel lua$lver"
+ local destdir="$subpkgdir/usr/share/lua/$lver/$_pkgname"
+ local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$_pkgname/$pkgver-1"
+
+ cd "$builddir"
+ mkdir -p "$destdir"
+ cp -r src/* "$destdir"/
+
+ mkdir -p "$rockdir"
+ echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
+}
+
+sha512sums="
+267d31f0061376a4766c7e978bda9e4a2396c8bf959d4aaa347ad40bd286a3873441e38983e1e86ea07a1be7cf7c92d91248c4ba70d6dd4ec82f02c7f7638e9f lua-luassert-1.9.0.tar.gz
+"
diff --git a/main/lua-luaxml/APKBUILD b/main/lua-luaxml/APKBUILD
index b6e690d0161..dbf37dcdf23 100644
--- a/main/lua-luaxml/APKBUILD
+++ b/main/lua-luaxml/APKBUILD
@@ -2,7 +2,7 @@
pkgname=lua-luaxml
pkgver=2.0.0
_pkgver=$pkgver-1
-pkgrel=0
+pkgrel=1
pkgdesc="A minimal set of functions for the processing of XML data in Lua"
url="https://github.com/n1tehawk/LuaXML"
arch="all"
diff --git a/main/lua-lub/APKBUILD b/main/lua-lub/APKBUILD
index 12f89e24ded..cb0cb6747ab 100644
--- a/main/lua-lub/APKBUILD
+++ b/main/lua-lub/APKBUILD
@@ -11,6 +11,7 @@ license="MIT"
depends="lua lua-filesystem"
source="$pkgname-$pkgver.tar.gz::https://github.com/lubyk/$_rockname/archive/REL-$pkgver.tar.gz"
builddir="$srcdir/$_rockname-REL-$pkgver"
+options="!check"
for _v in 5.1 5.2 5.3 5.4; do
provides="$provides lua$_v-$_rockname=$pkgver-r$pkgrel"
diff --git a/main/lua-lustache/APKBUILD b/main/lua-lustache/APKBUILD
index c66b91b8425..3f9293016d5 100644
--- a/main/lua-lustache/APKBUILD
+++ b/main/lua-lustache/APKBUILD
@@ -13,6 +13,7 @@ provides="$pkgname-common=$pkgver-r$pkgrel" # for backward compatibility
replaces="$pkgname-common" # for backward compatibility
source="$pkgname-$pkgver.tar.gz::https://github.com/Olivine-Labs/$_rockname/archive/v$_pkgver.tar.gz"
builddir="$srcdir/$_rockname-$_pkgver"
+options="!check"
_luaversions="5.1 5.2 5.3 5.4"
for _v in $_luaversions; do
diff --git a/main/lua-lxc/APKBUILD b/main/lua-lxc/APKBUILD
index 14ea9bbc9ee..ffd582b7aed 100644
--- a/main/lua-lxc/APKBUILD
+++ b/main/lua-lxc/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=lua-lxc
pkgver=3.0.2
-pkgrel=1
+pkgrel=2
pkgdesc="Lua bindings for LXC"
url="https://linuxcontainers.org"
arch="all"
diff --git a/main/lua-lyaml/APKBUILD b/main/lua-lyaml/APKBUILD
index 71333d971fb..442c84c9f2c 100644
--- a/main/lua-lyaml/APKBUILD
+++ b/main/lua-lyaml/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
_pkgname=lyaml
pkgname=lua-$_pkgname
-pkgver=6.2.7
+pkgver=6.2.8
pkgrel=1
pkgdesc="LibYAML binding for Lua"
url="https://github.com/gvvaughan/lyaml"
@@ -11,6 +11,7 @@ makedepends="yaml-dev lua-stdlib-normalize"
replaces="lua-yaml"
source="$_pkgname-$pkgver.tar.gz::https://github.com/gvvaughan/lyaml/archive/v$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
+options="!check"
_luaversions="5.1 5.2 5.3 5.4"
for _v in $_luaversions; do
@@ -49,4 +50,6 @@ _subpackage() {
echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
}
-sha512sums="a2ee9eefd5fdeda5ddfd1b1cfbd2d2d09beeb13597e63a57a21687fa367c51a574f2cc2cde29faab2cd3e3ead8783f25e8eace6c0cfa13152f6ba00b8b4b4c5b lyaml-6.2.7.tar.gz"
+sha512sums="
+d9166d89f2275a1050218425c1365d6bda42294ab2629c71da3a2007eac7e8018e13d6e69181ea204eb7f051a49533e4b67227468b161df1f3450a073e2dbeab lyaml-6.2.8.tar.gz
+"
diff --git a/main/lua-lzlib/APKBUILD b/main/lua-lzlib/APKBUILD
index ce30d4b1c5e..b75c64198b4 100644
--- a/main/lua-lzlib/APKBUILD
+++ b/main/lua-lzlib/APKBUILD
@@ -5,7 +5,7 @@ _luaversions="5.1 5.2 5.3 5.4"
pkgname=lua-lzlib
_name=lzlib
pkgver=0.4.3
-pkgrel=1
+pkgrel=2
pkgdesc="Lua bindings to the ZLib compression library"
url="https://github.com/LuaDist/lzlib"
arch="all"
@@ -18,6 +18,7 @@ done
source="$pkgname-$pkgver.tar.gz::https://github.com/LuaDist/$_name/archive/$pkgver.tar.gz"
builddir="$srcdir"/$_name-$pkgver
+options="!check"
prepare() {
default_prepare
diff --git a/main/lua-lzmq/APKBUILD b/main/lua-lzmq/APKBUILD
index d22d2f12eb3..48253608c11 100644
--- a/main/lua-lzmq/APKBUILD
+++ b/main/lua-lzmq/APKBUILD
@@ -4,14 +4,15 @@
pkgname=lua-lzmq
_pkgname=lzmq
pkgver=0.4.4
-pkgrel=3
+pkgrel=5
pkgdesc="Lua bindings to ZeroMQ"
url="https://github.com/zeromq/lzmq"
arch="all"
license="MIT"
-makedepends="cmake zeromq-dev"
+makedepends="cmake samurai zeromq-dev"
source="$pkgname-$pkgver.tar.gz::https://github.com/zeromq/$_pkgname/archive/v$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
+options="!check"
_luaversions="5.1 5.2 5.3 5.4"
for _v in $_luaversions; do
@@ -23,17 +24,13 @@ build() {
local lver; for lver in $_luaversions; do
msg "Building for Lua $lver..."
- mkdir -p "$builddir"/build/$lver
- cd "$builddir"/build/$lver
-
- cmake \
+ cmake -B build/$lver -G Ninja \
-DCMAKE_BUILD_TYPE=MinSizeRel \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_C_FLAGS="$CFLAGS $(pkg-config --cflags lua$lver)" \
-DINSTALL_CMOD=/usr/lib/lua/$lver \
- -DINSTALL_LMOD=/usr/share/lua/$lver \
- "$builddir"
- make
+ -DINSTALL_LMOD=/usr/share/lua/$lver
+ cmake --build build/$lver
done
}
@@ -47,12 +44,13 @@ _package() {
install_if="lua$lver $pkgname=$pkgver-r$pkgrel"
local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$_pkgname/$pkgver-1"
- cd "$builddir"/build/$lver
- make DESTDIR="$subpkgdir" install
+ DESTDIR="$subpkgdir" cmake --install "$builddir"/build/$lver
rm -Rf "$subpkgdir"/usr/share/lzmq
mkdir -p "$rockdir"
echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
}
-sha512sums="fd7e3e61755ec7e33b631a7fd28a3c34163ee696c5b92c6c271001f2ab5c2e41bca07e11580ba5aa1cd09031ed4f7f0e22f546f0ebcaa29b91598648b86d46fb lua-lzmq-0.4.4.tar.gz"
+sha512sums="
+fd7e3e61755ec7e33b631a7fd28a3c34163ee696c5b92c6c271001f2ab5c2e41bca07e11580ba5aa1cd09031ed4f7f0e22f546f0ebcaa29b91598648b86d46fb lua-lzmq-0.4.4.tar.gz
+"
diff --git a/main/lua-maxminddb/APKBUILD b/main/lua-maxminddb/APKBUILD
index 6efe966fbca..f96555b754b 100644
--- a/main/lua-maxminddb/APKBUILD
+++ b/main/lua-maxminddb/APKBUILD
@@ -3,7 +3,7 @@ _luaversions="5.1 5.2 5.3 5.4"
pkgname=lua-maxminddb
pkgver=0.1
-pkgrel=3
+pkgrel=4
pkgdesc="libmaxminddb bindings for Lua"
url="https://github.com/fabled/lua-maxminddb"
arch="all"
@@ -15,6 +15,7 @@ for _i in $_luaversions; do
subpackages="$subpackages lua$_i-maxminddb:_maxminddb_${_i/./_}"
done
source="$pkgname-$pkgver.tar.gz::https://github.com/fabled/lua-maxminddb/archive/v$pkgver.tar.gz"
+options="!check"
prepare() {
default_prepare
diff --git a/main/lua-md5/APKBUILD b/main/lua-md5/APKBUILD
index 4fcce3b29c0..595c1c63bb4 100644
--- a/main/lua-md5/APKBUILD
+++ b/main/lua-md5/APKBUILD
@@ -3,7 +3,7 @@ _luaversions="5.1 5.2 5.3 5.4"
pkgname=lua-md5
_name=md5
pkgver=1.3
-pkgrel=1
+pkgrel=2
pkgdesc="Basic cryptographic facilities for Lua"
url="https://github.com/keplerproject/md5"
arch="all"
@@ -17,6 +17,7 @@ source="lua-md5-$pkgver.tar.gz::https://github.com/keplerproject/md5/archive/$pk
"
builddir="$srcdir"/md5-$pkgver
+options="!check"
prepare() {
default_prepare
diff --git a/main/lua-mediator/APKBUILD b/main/lua-mediator/APKBUILD
new file mode 100644
index 00000000000..1535099b3dc
--- /dev/null
+++ b/main/lua-mediator/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=lua-mediator
+_pkgname=mediator_lua
+pkgver=1.1.2
+_pkgver=$pkgver-0
+pkgrel=2
+pkgdesc="Mediator pattern implementation for pub-sub management"
+url="http://olivinelabs.com/mediator_lua/"
+arch="noarch"
+license="MIT"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/Olivine-Labs/$_pkgname/archive/v$_pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$_pkgver"
+# This module needs lua-busted to run tests, but lua-busted depends on
+# lua-mediator and we wanna avoid circular dependencies.
+options="!check"
+
+_luaversions="5.1 5.2 5.3 5.4"
+for _v in $_luaversions; do
+ subpackages="$subpackages lua$_v-${pkgname#lua-}:_subpackage"
+done
+
+package() {
+ mkdir -p "$pkgdir"
+}
+
+_subpackage() {
+ local lver="${subpkgname:3:3}"
+ pkgdesc="$pkgdesc (for Lua $lver)"
+ depends="lua$lver"
+ install_if="$pkgname=$pkgver-r$pkgrel lua$lver"
+ local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$_pkgname/$_pkgver"
+
+ cd "$builddir"
+ install -m 644 -D src/mediator.lua \
+ "$subpkgdir"/usr/share/lua/$lver/mediator.lua
+
+ mkdir -p "$rockdir"
+ echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
+}
+
+sha512sums="116d08a96fa0bd540ac4d3cac61a529a634cba3621c6f2e917b405462bbc0e2ab5b170dc6819e470105cdedf958a382945819eaff4affa63bc057824c163c8a0 mediator_lua-1.1.2.tar.gz"
diff --git a/main/lua-microlight/APKBUILD b/main/lua-microlight/APKBUILD
index 18bbceed931..a17dbc979b8 100644
--- a/main/lua-microlight/APKBUILD
+++ b/main/lua-microlight/APKBUILD
@@ -17,6 +17,7 @@ source="lua-microlight-$pkgver.tar.gz::https://github.com/stevedonovan/Microligh
"
builddir="$srcdir"/Microlight-$pkgver
+options="!check"
build() {
mkdir -p "$pkgdir"
diff --git a/main/lua-mosquitto/0001-handle-lookup-errors-when-connecting.patch b/main/lua-mosquitto/0001-handle-lookup-errors-when-connecting.patch
new file mode 100644
index 00000000000..775c163782d
--- /dev/null
+++ b/main/lua-mosquitto/0001-handle-lookup-errors-when-connecting.patch
@@ -0,0 +1,49 @@
+From d1e530459cb45b4aace4a3e7258e83dbefff93bb Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Mon, 12 Jun 2023 15:54:59 +0200
+Subject: [PATCH] handle lookup errors when connecting
+
+Connect may result in lookup error, which was not handled. Solve this by
+use a default error handler which returns whatever mosquitto reports.
+
+This prevents us from missing errors.
+---
+ lua-mosquitto.c | 15 +++++++--------
+ 1 file changed, 7 insertions(+), 8 deletions(-)
+
+diff --git a/lua-mosquitto.c b/lua-mosquitto.c
+index 7f298bd..bae378d 100644
+--- a/lua-mosquitto.c
++++ b/lua-mosquitto.c
+@@ -99,21 +99,20 @@ static int mosq__pstatus(lua_State *L, int mosq_errno) {
+ return luaL_error(L, mosquitto_strerror(mosq_errno));
+ break;
+
+- case MOSQ_ERR_NO_CONN:
+- case MOSQ_ERR_CONN_LOST:
+- case MOSQ_ERR_PAYLOAD_SIZE:
++ case MOSQ_ERR_ERRNO:
+ lua_pushnil(L);
+- lua_pushinteger(L, mosq_errno);
+- lua_pushstring(L, mosquitto_strerror(mosq_errno));
++ lua_pushinteger(L, errno);
++ lua_pushstring(L, strerror(errno));
+ return 3;
+ break;
+
+- case MOSQ_ERR_ERRNO:
++ default:
+ lua_pushnil(L);
+- lua_pushinteger(L, errno);
+- lua_pushstring(L, strerror(errno));
++ lua_pushinteger(L, mosq_errno);
++ lua_pushstring(L, mosquitto_strerror(mosq_errno));
+ return 3;
+ break;
++
+ }
+
+ return 0;
+--
+2.41.0
+
diff --git a/main/lua-mosquitto/APKBUILD b/main/lua-mosquitto/APKBUILD
index 38361d333e5..84514174c64 100644
--- a/main/lua-mosquitto/APKBUILD
+++ b/main/lua-mosquitto/APKBUILD
@@ -1,14 +1,16 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lua-mosquitto
pkgver=0.4.1
-pkgrel=1
+pkgrel=3
pkgdesc="Bindings to libmosquitto for Lua"
url="https://github.com/flukso/lua-mosquitto"
arch="all"
license="MIT"
makedepends="mosquitto-dev"
source="lua-mosquitto-$pkgver.tar.gz::https://github.com/flukso/lua-mosquitto/archive/v$pkgver.tar.gz
- checkinteger.patch"
+ checkinteger.patch
+ 0001-handle-lookup-errors-when-connecting.patch
+ "
_luaversions="5.1 5.2 5.3 5.4"
for _v in $_luaversions; do
@@ -27,7 +29,7 @@ prepare() {
build() {
local lver; for lver in $_luaversions; do
msg "Building for Lua $lver..."
- make -C "$builddir-$lver" LUAPKGC=lua$lver
+ make -C "$builddir-$lver" LUAPKGC=lua$lver LUA_VERSION=$lver
done
}
@@ -53,9 +55,11 @@ _package() {
local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$pkgname/$pkgver-1"
cd "$builddir-$lver"
+ msg "installig Lua $lver"
make install DESTDIR="$subpkgdir" \
LUA_LIBDIR=/usr/lib \
- LUAPKGC=lua$lver
+ LUAPKGC=lua$lver \
+ LUA_VERSION=$lver
mkdir -p "$rockdir"
echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
@@ -64,4 +68,5 @@ _package() {
sha512sums="
f94944d334142283006c3f079ced5284a1c41199fb9de7d7c4eb7c1a4fc412dc53f2f93cb5f08c54fec85c59fc8c2ee840111d4fbf0ff61a2254c8f83fa97e87 lua-mosquitto-0.4.1.tar.gz
d564b6ffbc1ed79cdaeb53c8cb94db946d697fa97a9e36a68ef5300a3f7f53eeb5216ddb5941cf8610b31d9f29f8ca697790431284842e87d1d85be8637a519b checkinteger.patch
+627ea37dfbfe2df93bfbd0d8918b1e0d0c8619c404b6009779dc2cf55dde519add76b0ca2320dfee7e1524b4ce89415523f8d327a97e7dceb575de2c92830793 0001-handle-lookup-errors-when-connecting.patch
"
diff --git a/main/lua-mqtt-publish/APKBUILD b/main/lua-mqtt-publish/APKBUILD
index 0f1d2805166..fdb74414a29 100644
--- a/main/lua-mqtt-publish/APKBUILD
+++ b/main/lua-mqtt-publish/APKBUILD
@@ -1,20 +1,21 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
_luaversions="5.1 5.2 5.3 5.4"
pkgname=lua-mqtt-publish
-pkgver=0.3
-pkgrel=3
+pkgver=0.5
+pkgrel=0
pkgdesc="Lua module for simple MQTT connect, publish and disconnect"
url="https://github.com/ncopa/lua-mqtt-publish"
arch="all"
license="MIT"
-makedepends="lua-posix lua-mosquitto" # so build order can be calculated
+makedepends="lua-mosquitto" # so build order can be calculated
+options="!check"
for _v in $_luaversions; do
subpackages="$subpackages lua$_v-mqtt-publish:_split"
done
source="lua-mqtt-publish-$pkgver.tar.gz::https://github.com/ncopa/lua-mqtt-publish/archive/v$pkgver.tar.gz
- restore-sigpipe-handler.patch"
+ "
package() {
for i in $_luaversions; do
@@ -28,7 +29,7 @@ _split() {
msg "_ver=$_ver"
pkgdesc="$pkgdesc for Lua $_ver"
install_if="lua$_ver $pkgname=$pkgver-r$pkgrel"
- depends="lua$_ver-posix lua$_ver-mosquitto"
+ depends="lua$_ver-mosquitto"
for d in usr/lib/lua usr/share/lua; do
if [ -d "$pkgdir"/$d/$_ver ]; then
mkdir -p "$subpkgdir"/$d
@@ -38,6 +39,5 @@ _split() {
}
sha512sums="
-ccbf87c53305e19a2dd04f07ac7b3d1fdae3ce0a6c726b89f357d3d5a68a73c0ce830d0ca47d57eaf1990224fcc97794720bdbc8e4e0caa408003cc33dce3b65 lua-mqtt-publish-0.3.tar.gz
-3bba23bc2dfbf88e39d37bb85df1634fbda92d906e8f0d8803e84729f870efe2ca1c9cf507155e91679d10c0e75a2925f57744d84f95a714f049b909549a8b6c restore-sigpipe-handler.patch
+89a2796d97b3d4ff210ec86f958fdef7459db7829ef99bb85a7055aa632197922a3a1a9b0b9e33ab973a00e053557463a7468af51702086024516496d090ace4 lua-mqtt-publish-0.5.tar.gz
"
diff --git a/main/lua-mqtt-publish/restore-sigpipe-handler.patch b/main/lua-mqtt-publish/restore-sigpipe-handler.patch
deleted file mode 100644
index ceedfb97e66..00000000000
--- a/main/lua-mqtt-publish/restore-sigpipe-handler.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-See https://gitlab.alpinelinux.org/alpine/infra/infra/-/issues/10758
-
-diff -upr lua-mqtt-publish-0.3.orig/mqtt/publish.lua lua-mqtt-publish-0.3/mqtt/publish.lua
---- lua-mqtt-publish-0.3.orig/mqtt/publish.lua 2022-06-12 12:09:12.127534562 +0200
-+++ lua-mqtt-publish-0.3/mqtt/publish.lua 2022-06-12 12:15:41.038026395 +0200
-@@ -1,6 +1,7 @@
- --- @module mosquitto.publish
-
- local mqtt = require("mosquitto")
-+local signal = require("posix.signal")
- local publish = {}
-
- function publish.tls_set(cafile, capath, certfile, keyfile)
-@@ -51,6 +52,9 @@ function publish.multiple(msgs, hostname
- keepalive or publish.keepalive)
- client:loop_forever()
- client:destroy()
-+
-+ -- Workaround for https://github.com/eclipse/mosquitto/issues/2564
-+ signal.signal(signal.SIGPIPE, signal.SIG_DFL)
- end
-
- function publish.single(topic, payload, qos, retain, hostname, port, client_id,
diff --git a/main/lua-openrc/APKBUILD b/main/lua-openrc/APKBUILD
index b67c1a319d1..c8ac0e75eb5 100644
--- a/main/lua-openrc/APKBUILD
+++ b/main/lua-openrc/APKBUILD
@@ -2,11 +2,11 @@
_luaversions="5.1 5.2 5.3 5.4"
pkgname=lua-openrc
pkgver=0.2
-pkgrel=4
+pkgrel=6
pkgdesc="Lua module for OpenRC"
url="https://github.com/ncopa/lua-openrc"
arch="all"
-license="GPL"
+license="GPL-2.0-only"
makedepends="openrc-dev bsd-compat-headers"
for _i in $_luaversions; do
makedepends="$makedepends lua$_i-dev"
@@ -15,7 +15,7 @@ done
source="lua-openrc-$pkgver.tar.gz::https://github.com/ncopa/lua-openrc/archive/v$pkgver.tar.gz
0001-build-fix-for-openrc-0.14.patch
"
-
+options="!check"
prepare() {
default_prepare
diff --git a/main/lua-optarg/APKBUILD b/main/lua-optarg/APKBUILD
index 903cdcb3e06..c91e6a2d82f 100644
--- a/main/lua-optarg/APKBUILD
+++ b/main/lua-optarg/APKBUILD
@@ -1,24 +1,24 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lua-optarg
_rockname=optarg
-pkgver=0.3
+pkgver=0.4
pkgrel=0
pkgdesc="Simple command line option parser for Lua"
url="https://github.com/ncopa/lua-optarg"
arch="noarch"
license="MIT"
-source="$pkgname-$pkgver.tar.gz::https://github.com/ncopa/lua-optarg/archive/v$pkgver.tar.gz"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ncopa/lua-optarg/archive/$pkgver.tar.gz"
_luaversions="5.1 5.2 5.3 5.4"
for _v in $_luaversions; do
subpackages="$subpackages lua$_v-${pkgname#lua-}:_package"
- checkdepends="$checkdepends lua$_v-unit"
+ checkdepends="$checkdepends lua$_v-busted"
done
check() {
for _v in $_luaversions; do
msg "testing Lua $_v"
- lua$_v -e "package.path='$PWD/?.lua;'..package.path" test.lua
+ busted-$_v
done
}
@@ -41,5 +41,5 @@ _package() {
}
sha512sums="
-394a0cc4055bc2bb0fdb486f4f07d319232733b639fcc95d4cf59d88d18058641b58b6cd3f56766ccd08bcf2af0dae1e11a492b80f763fb9ae8ce75673089349 lua-optarg-0.3.tar.gz
+8aa26bbcd93651a6f1411b952b3ff6680e1ae534d76ea41e9e61a3d2c840b6525e9550277ab6f363f2ed550da3f82941f90747d793972745b15fe07ddf718c84 lua-optarg-0.4.tar.gz
"
diff --git a/main/lua-ossl/APKBUILD b/main/lua-ossl/APKBUILD
index 8cf0b75bd68..da6c9a0d5b3 100644
--- a/main/lua-ossl/APKBUILD
+++ b/main/lua-ossl/APKBUILD
@@ -2,14 +2,14 @@
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=lua-ossl
_pkgname=luaossl
-pkgver=20200709
+pkgver=20220711
_ver=${pkgver%_git*}
-pkgrel=3
+pkgrel=1
pkgdesc="comprehensive OpenSSL Lua module"
-url="http://25thandclement.com/~william/projects/luaossl.html"
+url="https://25thandclement.com/~william/projects/luaossl.html"
arch="all"
license="MIT"
-makedepends="openssl1.1-compat-dev"
+makedepends="openssl-dev>3"
source="$_pkgname-$_ver.tar.gz::https://github.com/wahern/$_pkgname/archive/rel-$pkgver.tar.gz
0001-pkey.toPEM-opts-rename-const-array.patch
0002-pkey.toPEM-accept-table-arguments.patch
@@ -23,7 +23,7 @@ source="$_pkgname-$_ver.tar.gz::https://github.com/wahern/$_pkgname/archive/rel-
0010-pkey-PEM-password-callback.patch
"
builddir="$srcdir/$_pkgname-rel-$pkgver"
-options="!check"
+options="!check" # https://gitlab.alpinelinux.org/alpine/aports/-/issues/15383
_luaversions="5.1 5.2 5.3 5.4"
for _v in $_luaversions; do
@@ -78,7 +78,8 @@ _package() {
echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
}
-sha512sums="324175f65e9d292ecb1343cfa9e111f1fd17f15e67037bd705d3db95d32b859c039a6e70620d649f446a8e7043a125a75c64de1714f0fe18e077fb9c017bea34 luaossl-20200709.tar.gz
+sha512sums="
+13c51881218a5a9995d195d4781f6871f0dfe58f061b85dd997b98ec970a38302ac6b057b7987bff5f7719bfdb826aae09f602ea8db5e4b2d462648ad0236909 luaossl-20220711.tar.gz
896fd302480b42829c79226d08c05e9ed7348ba441ac15a2d4e0d473486f1476b36bc296878d55e5678864e6161861ab2e178973f3e1d7f3c2d4a915a62c7471 0001-pkey.toPEM-opts-rename-const-array.patch
9362910e3bc5e1f3110d2e6f49c086374a9277698c26917a2b43e312f81160f5330212a27915efc8cd969273452f7057bf4db9cdb8481728067d1b10e03230cd 0002-pkey.toPEM-accept-table-arguments.patch
2a021ab500e1539ba7259ef38e1e015c3ecf561b31c7f344732cbf860525db8335acd61eaaa10049881b862f17064d640da6dedeeb94d92b3aeba32d822b575c 0003-pkey.toPEM-private-key-encryption.patch
@@ -88,4 +89,5 @@ sha512sums="324175f65e9d292ecb1343cfa9e111f1fd17f15e67037bd705d3db95d32b859c039a
9b992db5d0c33258e3858bd60c2a085669112089658600fe8b84be947d33ee858a0189fc5aef96565c226ebaf3ae9a326c23fb993c95c5f3ae0caa02844f2632 0007-pkey.new-accept-option-table.patch
f8b3a1c4815f03180ca60df62e6be307c180a9d5225dcb6b78b5f6fc2d67f176756d02b1a8cd06e1909b0b0430ae876b5b1172b090ba9b8b9873169ad21b354f 0008-pkey.new-decryption.patch
fc433f9e15479083f1d737247556a2404704727712604c43d0bc93d3d7269dc73e07acd09bfaa46dfade6756cb67bcbf586aadf58f9b48c6c39ecb659ed02640 0009-pkey.toPEM-use-password-callback.patch
-edcbf7110c838404bda83a4d15719264e798ddd18d2b550652d6e07218104f9bfbf33a6a08ab9baa2491a56c8723394663a06be669aee92d3b3ecd83cc5f0305 0010-pkey-PEM-password-callback.patch"
+edcbf7110c838404bda83a4d15719264e798ddd18d2b550652d6e07218104f9bfbf33a6a08ab9baa2491a56c8723394663a06be669aee92d3b3ecd83cc5f0305 0010-pkey-PEM-password-callback.patch
+"
diff --git a/main/lua-pc/APKBUILD b/main/lua-pc/APKBUILD
index cf0a70eeaf2..c4108d8564f 100644
--- a/main/lua-pc/APKBUILD
+++ b/main/lua-pc/APKBUILD
@@ -5,7 +5,7 @@ _luaversions="5.1 5.2 5.3 5.4"
pkgname=lua-pc
_name=lpc
pkgver=1.0.0
-pkgrel=11
+pkgrel=12
pkgdesc="Lua Process Call"
url="https://github.com/LuaDist/lpc"
arch="all"
@@ -21,6 +21,7 @@ for _i in $_luaversions; do
done
builddir="$srcdir/$_name-$pkgver"
+options="!check"
prepare() {
default_prepare
diff --git a/main/lua-penlight/APKBUILD b/main/lua-penlight/APKBUILD
index 314ae448323..722f0a96c47 100644
--- a/main/lua-penlight/APKBUILD
+++ b/main/lua-penlight/APKBUILD
@@ -1,15 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lua-penlight
_rockname=penlight
-pkgver=1.12.0
+pkgver=1.14.0
pkgrel=0
pkgdesc="Lua libraries for extended operations on tables, lists and strings"
-options="!check" # Requires lua-coveralls
url="https://lunarmodules.github.io/Penlight/"
arch="noarch"
license="MIT"
depends="lua lua-filesystem"
-checkdepends="luajit"
subpackages="$pkgname-doc"
source="https://github.com/lunarmodules/Penlight/archive/$pkgver/lua-penlight-$pkgver.tar.gz"
builddir="$srcdir/Penlight-$pkgver"
@@ -23,8 +21,17 @@ for _v in $_luaversions; do
subpackages="$subpackages lua$_v-penlight:_split"
done
+case "$CARCH" in
+ppc64le|riscv64|loongarch64)
+ ;;
+*)
+ checkdepends="$checkdepends luajit"
+ _luaversions="$_luaversions jit"
+ ;;
+esac
+
check() {
- local lver; for lver in $_luaversions jit; do
+ local lver; for lver in $_luaversions; do
msg "Testing on Lua $lver"
lua$lver run.lua tests
done
@@ -56,5 +63,5 @@ _split() {
}
sha512sums="
-70628bd43a0ac4176704611e47c3a42c287c24aac98a0bc63071a192326e4ecab016a499ff9ab201a9e7d7848f26760f0a2ef87d46220df679b4f70a0fdc4aac lua-penlight-1.12.0.tar.gz
+a83f70716106d6576b27a42222ba897d5d5a7b3918088c582e89283cf091a95a9920fe6d0b8d65e1ffc4c1664166f7d5bc4df3b023539d1b33d7175e585bbe9f lua-penlight-1.14.0.tar.gz
"
diff --git a/main/lua-posix/APKBUILD b/main/lua-posix/APKBUILD
index 9ebe2d12737..eca1ce096c2 100644
--- a/main/lua-posix/APKBUILD
+++ b/main/lua-posix/APKBUILD
@@ -4,9 +4,9 @@ _luaversions="5.1 5.2 5.3 5.4"
pkgname=lua-posix
_name=luaposix
-pkgver=35.1
+pkgver=36.2.1
pkgrel=0
-pkgdesc="POSIX library for Lua $_luaver"
+pkgdesc="POSIX library for Lua"
url="https://github.com/luaposix/luaposix"
arch="all"
license="MIT"
@@ -16,9 +16,10 @@ for _i in $_luaversions; do
makedepends="$makedepends lua$_i-dev lua$_i"
subpackages="$subpackages lua$_i-posix:_posix_${_i/./_}"
done
-source="luaposix-$pkgver.tar.gz::https://github.com/luaposix/luaposix/archive/v$pkgver.tar.gz"
+source="luaposix-$pkgver-2.tar.gz::https://github.com/luaposix/luaposix/archive/v$pkgver.tar.gz"
builddir="$srcdir"/$_name-$pkgver
+options="!check"
prepare() {
default_prepare
@@ -71,5 +72,5 @@ for _i in $_luaversions; do
done
sha512sums="
-f2c36bf69c0d73b4a2c6ab0915f81473addce427c22e82e2d1c334016dec7fecb4365fc980fa6adb0de21ad1a60bc75b73f58579e8a423990ad2067c9ae37775 luaposix-35.1.tar.gz
+cd7deeaa9179306f90bafdc6cfb2668cf42d5378e72e5baa09419198f2d42c5eab5d881e5584ac511f317bbfd850f2ad46b8cb743f1ae5e1a96f8153e03599d8 luaposix-36.2.1-2.tar.gz
"
diff --git a/main/lua-posixtz/APKBUILD b/main/lua-posixtz/APKBUILD
index 383e5e5ec69..f91608380be 100644
--- a/main/lua-posixtz/APKBUILD
+++ b/main/lua-posixtz/APKBUILD
@@ -3,7 +3,7 @@
_luaversions="5.1 5.2 5.3 5.4"
pkgname=lua-posixtz
pkgver=0.5
-pkgrel=3
+pkgrel=4
pkgdesc="Lua module to extract POSIX timezone from tzdata"
url="http://git.alpinelinux.org/cgit/posixtz.git/"
arch="all"
@@ -15,6 +15,7 @@ done
source="https://dev.alpinelinux.org/archive/posixtz/posixtz-$pkgver.tar.xz"
builddir="$srcdir"/posixtz-$pkgver
+options="!check"
prepare() {
default_prepare
diff --git a/main/lua-pty/APKBUILD b/main/lua-pty/APKBUILD
index aa503f3fac4..2a2dd2977db 100644
--- a/main/lua-pty/APKBUILD
+++ b/main/lua-pty/APKBUILD
@@ -3,13 +3,14 @@ pkgname=lua-pty
_pkgname=lpty
pkgver=1.2.2
_rockver=1
-pkgrel=1
+pkgrel=3
pkgdesc="Lua module to control other programs via PTYs"
url="https://www.tset.de/lpty/"
arch="all"
license="MIT"
-source="http://www.tset.de/downloads/$_pkgname-$pkgver-$_rockver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver-$_rockver"
+source=$pkgname-$pkgver-1.tar.gz::https://codeberg.org/gnarz/lpty/archive/version_$pkgver.tar.gz
+builddir="$srcdir/lpty"
+options="!check"
_luaversions="5.1 5.2 5.3 5.4"
for _v in $_luaversions; do
@@ -29,7 +30,7 @@ build() {
local lver; for lver in $_luaversions; do
msg "Building for Lua $lver..."
- cd "$builddir-$lver"
+ cd "$builddir-$lver"/src
make CFLAGS="$CFLAGS -fPIC" \
LUA_INCDIR="$(pkg-config --variable=includedir lua$lver)" \
LUA_LIBDIR="$(pkg-config --variable=libdir lua$lver)" \
@@ -49,11 +50,13 @@ _subpackage() {
install_if="$pkgname=$pkgver-r$pkgrel lua$lver"
[ "$lver" = 5.1 ] && replaces="$pkgname"
- cd "$builddir-$lver"
+ cd "$builddir-$lver"/src
make INST_DIR="$subpkgdir/usr" LUAVERSION=$lver install
mkdir -p "$rockdir"
echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
}
-sha512sums="6251f8394be53ab812bb3483fcd8280c9cf8d63590534864b439f5357a4c11507c3a7d6e03efa11018547435f7eede6ea5896a39f0d9ddaaf3f4f41f7827ba96 lpty-1.2.2-1.tar.gz"
+sha512sums="
+9a7ed46dabacf663eef03fb711b316acae5266c90c4e5ad1f9aa6857ab7402482c5c38b4ce706bae82622c6c343a56e9bbfcd03ef050983af2ed282bf0195097 lua-pty-1.2.2-1.tar.gz
+"
diff --git a/main/lua-resty-core/APKBUILD b/main/lua-resty-core/APKBUILD
index c2c10a32916..53ea84bbbe0 100644
--- a/main/lua-resty-core/APKBUILD
+++ b/main/lua-resty-core/APKBUILD
@@ -1,11 +1,12 @@
# Contributor: Michael Pirogov <vbnet.ru@gmail.com>
# Maintainer: Michael Pirogov <vbnet.ru@gmail.com>
pkgname=lua-resty-core
-pkgver=0.1.23
+pkgver=0.1.28
pkgrel=0
pkgdesc="New FFI-based API for lua-nginx-module"
url="https://github.com/openresty/lua-resty-core"
-arch="noarch !riscv64"
+# luajit
+arch="noarch !ppc64le !riscv64"
license="BSD-2-Clause"
depends="luajit lua-resty-lrucache"
source="https://github.com/openresty/lua-resty-core/archive/v$pkgver/lua-resty-core-$pkgver.tar.gz"
@@ -20,5 +21,5 @@ package() {
}
sha512sums="
-eccae9705217583deca292cd2cb4b7ac03a304926257d1e62a9434c0a08d5fa31546f7d7f196b40c29cad2c560e48daa78d558a11083c9598f7e5242f6099105 lua-resty-core-0.1.23.tar.gz
+0f54f6eec0805ce31091ce11b065b98a3b286ca3523f5eaf8a85bd8ba229c362a90fa464d5b4b68f155b06011ebb071115e16fd35aa3dd33e316e84a7ec43593 lua-resty-core-0.1.28.tar.gz
"
diff --git a/main/lua-resty-lrucache/APKBUILD b/main/lua-resty-lrucache/APKBUILD
index eb042ef6581..a1deb5d8b31 100644
--- a/main/lua-resty-lrucache/APKBUILD
+++ b/main/lua-resty-lrucache/APKBUILD
@@ -1,14 +1,15 @@
# Contributor: Michael Pirogov <vbnet.ru@gmail.com>
# Maintainer: Michael Pirogov <vbnet.ru@gmail.com>
pkgname=lua-resty-lrucache
-pkgver=0.09
+pkgver=0.13
pkgrel=1
pkgdesc="Lua-land LRU Cache based on LuaJIT FFI"
url="https://github.com/openresty/lua-resty-lrucache"
-arch="noarch !riscv64"
+# luajit
+arch="noarch !ppc64le !riscv64 !loongarch64"
license="BSD-2-Clause"
depends="luajit"
-source="https://github.com/openresty/lua-resty-lrucache/archive/v$pkgver/$pkgname-$pkgver.tar.gz"
+source="$pkgname-$pkgver-2.tar.gz::https://github.com/openresty/lua-resty-lrucache/archive/v$pkgver/lua-resty-lrucache-$pkgver.tar.gz"
options="!check" # FIXME: tests require OpenResty and additional dependencies
package() {
@@ -19,4 +20,6 @@ package() {
"$pkgdir"/usr/lib/luarocks/rocks-common/$pkgname/$pkgver-1
}
-sha512sums="0042f5459a5d994ad3837ceeba7884efe85d2ab7194c8b08d026418c7c81c948ae1de91628d29afde45dae44f326fc5fb295988f24e95e5398a52014af50e3e2 lua-resty-lrucache-0.09.tar.gz"
+sha512sums="
+d6491acdca5d7b02feef1bf7fafb31798ae3194ad759a9ba87e895ef4e71268a2785291504f73e07e6872bed0d30147ca5e2cd0a0250db11f0a361af43426dfe lua-resty-lrucache-0.13-2.tar.gz
+"
diff --git a/main/lua-rex/APKBUILD b/main/lua-rex/APKBUILD
index fc5ff8a9650..a44988593ee 100644
--- a/main/lua-rex/APKBUILD
+++ b/main/lua-rex/APKBUILD
@@ -3,22 +3,22 @@
_luaversions="5.1 5.2 5.3 5.4"
pkgname=lua-rex
pkgver=2.9.1
-pkgrel=1
-pkgdesc="Lua bindings to regular expression library pcre and posix"
+pkgrel=3
+pkgdesc="Lua bindings to regular expression library pcre2 and posix"
options="!check" # TODO: get testsuite
url="http://lrexlib.luaforge.net/"
arch="all"
license="MIT"
-depends="lua-rex-pcre lua-rex-posix"
-makedepends="pcre-dev"
-subpackages="$pkgname-pcre:_pcre $pkgname-posix:_posix"
+depends="lua-rex-pcre2 lua-rex-posix"
+makedepends="pcre2-dev"
+subpackages="$pkgname-pcre2:_pcre2 $pkgname-posix:_posix"
for _i in $_luaversions; do
makedepends="$makedepends lua$_i-dev lua$_i"
- subpackages="$subpackages lua$_i-rex-pcre:_pcre_${_i/./_}
+ subpackages="$subpackages lua$_i-rex-pcre2:_pcre2_${_i/./_}
lua$_i-rex-posix:_posix_${_i/./_}"
- eval "_pcre_${_i/./_}() { _split $_i pcre; }"
+ eval "_pcre2_${_i/./_}() { _split $_i pcre2; }"
eval "_posix_${_i/./_}() { _split $_i posix; }"
done
@@ -57,9 +57,9 @@ build() {
for _ver in $_luaversions; do
msg "build for Lua $_ver"
cd "$srcdir"/build-$_ver
- _build_variant $_ver rex_pcre.so \
- 'src/common.c src/pcre/lpcre.c src/pcre/lpcre_f.c
- -lpcre'
+ _build_variant $_ver rex_pcre2.so \
+ 'src/common.c src/pcre2/lpcre2.c src/pcre2/lpcre2_f.c
+ -lpcre2-8 -DPCRE2_CODE_UNIT_WIDTH=8'
_build_variant $_ver rex_posix.so \
'src/common.c src/posix/lposix.c'
@@ -71,8 +71,8 @@ package() {
mkdir -p "$pkgdir"
}
-_pcre() {
- pkgdesc="Lua bindings to pcre regular expressions library"
+_pcre2() {
+ pkgdesc="Lua bindings to pcre2 regular expressions library"
depends=
mkdir -p "$subpkgdir"
}
@@ -96,4 +96,6 @@ _split() {
}
-sha512sums="05f9305b76791521f0fcc0010c96dc883542acf97597ad15d448fdaf3d2deb7dd09919c052b974c6de3cb7e3cf4980b73b51d4482c6e25dfaf055a62e46205b9 lua-rex-2.9.1.tar.gz"
+sha512sums="
+05f9305b76791521f0fcc0010c96dc883542acf97597ad15d448fdaf3d2deb7dd09919c052b974c6de3cb7e3cf4980b73b51d4482c6e25dfaf055a62e46205b9 lua-rex-2.9.1.tar.gz
+"
diff --git a/main/lua-say/APKBUILD b/main/lua-say/APKBUILD
new file mode 100644
index 00000000000..7642d51198e
--- /dev/null
+++ b/main/lua-say/APKBUILD
@@ -0,0 +1,42 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=lua-say
+_rockname=say
+pkgver=1.4.1
+pkgrel=0
+pkgdesc="Lua string hashing library, useful for internationalization"
+url="https://github.com/Olivine-Labs/say"
+arch="noarch"
+license="MIT"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Olivine-Labs/say/archive/v$pkgver.tar.gz"
+builddir="$srcdir/${pkgname#lua-}-$pkgver"
+# This module needs lua-busted to run tests, but lua-busted depends on
+# lua-say and we wanna avoid circular dependencies.
+options="!check"
+
+_luaversions="5.1 5.2 5.3 5.4"
+for _v in $_luaversions; do
+ subpackages="$subpackages lua$_v-${pkgname#lua-}:_subpackage"
+done
+
+package() {
+ mkdir -p "$pkgdir"
+}
+
+_subpackage() {
+ local lver="${subpkgname:3:3}"
+ pkgdesc="$pkgdesc (for Lua $lver)"
+ depends="lua$lver"
+ install_if="$pkgname=$pkgver-r$pkgrel lua$lver"
+ local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$_rockname/$pkgver"
+
+ install -m 644 -D "$builddir"/src/say/init.lua \
+ "$subpkgdir"/usr/share/lua/$lver/say.lua
+
+ mkdir -p "$rockdir"
+ echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
+}
+
+sha512sums="
+a6c3477859615d7ae0677ac7aa0cefe8bf6f43424812062b4a06145017952b176801431c5be920cb67f52c07cc3d374e8a6714233e2252a2bb6b7ed4c3e32f90 lua-say-1.4.1.tar.gz
+"
diff --git a/main/lua-schema/APKBUILD b/main/lua-schema/APKBUILD
index b5ab169859a..a19e369b5d7 100644
--- a/main/lua-schema/APKBUILD
+++ b/main/lua-schema/APKBUILD
@@ -11,7 +11,7 @@ url="https://github.com/sschoener/lua-schema"
arch="noarch"
license="MIT"
makedepends="lua5.2 lua5.3 lua5.4"
-source="lua-schema-$_commit.tar.gz::$url/archive/$_commit.tar.gz"
+source="lua-schema-$_commit.tar.gz::https://github.com/sschoener/lua-schema/archive/$_commit.tar.gz"
builddir="$srcdir/$pkgname-$_commit"
options="!check"
diff --git a/main/lua-sec/APKBUILD b/main/lua-sec/APKBUILD
index 6f5d35191b5..0d5a87a988d 100644
--- a/main/lua-sec/APKBUILD
+++ b/main/lua-sec/APKBUILD
@@ -2,13 +2,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
_luaversions="5.1 5.2 5.3 5.4"
pkgname=lua-sec
-pkgver=1.0.2
-pkgrel=2
+pkgver=1.3.2
+pkgrel=0
pkgdesc="TLS/SSL Support for Lua"
url="https://github.com/brunoos/luasec/wiki"
arch="all"
license="MIT"
-makedepends="openssl1.1-compat-dev"
+makedepends="openssl-dev>3"
subpackages="$pkgname-doc"
for _i in $_luaversions; do
makedepends="$makedepends lua$_i-dev"
@@ -18,6 +18,7 @@ done
source="luasec-$pkgver.tar.gz::https://github.com/brunoos/luasec/archive/v$pkgver.tar.gz"
builddir="$srcdir/luasec-$pkgver"
+options="!check"
prepare() {
default_prepare
@@ -66,5 +67,5 @@ _split() {
}
sha512sums="
-a873d8217b1ec9e66f50d7319ea0fa467b92b5855e7514dbd00429a26be3546e69fdfc985ac79a80d86f3c6845910b2e14a2198951dcad249b2d1c7d6855453f luasec-1.0.2.tar.gz
+8f0c4b5ff87c024685b23770e1d342467554b8dc19a1704076e184d9e84b966f171091c31d1da135ab009e850275adc2bf2720fc9f32c83ac23f0a42f13d311f luasec-1.3.2.tar.gz
"
diff --git a/main/lua-soap/APKBUILD b/main/lua-soap/APKBUILD
index dadb30fb42e..0084cb0eb04 100644
--- a/main/lua-soap/APKBUILD
+++ b/main/lua-soap/APKBUILD
@@ -3,41 +3,26 @@
pkgname=lua-soap
pkgver=3.0
_pkgver=${pkgver/./_}
-pkgrel=0
+pkgrel=1
pkgdesc="Lua library to ease the use of SOAP"
url="http://tomasguisasola.github.io/luasoap/"
arch="noarch"
license="MIT"
depends="lua-expat lua-socket"
-depends_dev=""
-makedepends="$depends_dev"
-install=""
-subpackages=""
source="https://github.com/tomasguisasola/luasoap/archive/v$_pkgver.tar.gz"
-
-_builddir="$srcdir"/luasoap-$_pkgver
-prepare() {
- local i
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
-}
+builddir="$srcdir"/luasoap-$_pkgver
+options="!check"
build() {
- cd "$_builddir"
- make || return 1
+ make
}
package() {
- cd "$_builddir"
- make LUA_DIR="$pkgdir"/usr/share/lua/5.1 install || return 1
+ make LUA_DIR="$pkgdir"/usr/share/lua/5.1 install
# https://github.com/tomasguisasola/luasoap/issues/7
mv "$pkgdir"/usr/share/lua/5.1/soap/soap.lua \
- "$pkgdir"/usr/share/lua/5.1/soap.lua || return 1
+ "$pkgdir"/usr/share/lua/5.1/soap.lua
}
sha512sums="de0fa591f5bc9bbf9740660edd4482289bca2139e60119cb5607304cd7afdf6b0d63aedf5c67386022d538a5f8d206323fada49e8ae268f297dec71eda2bc0ad v3_0.tar.gz"
diff --git a/main/lua-socket/0001-Create-socket-on-first-sendto-if-family-agnostic-udp.patch b/main/lua-socket/0001-Create-socket-on-first-sendto-if-family-agnostic-udp.patch
deleted file mode 100644
index 61bae6fbf48..00000000000
--- a/main/lua-socket/0001-Create-socket-on-first-sendto-if-family-agnostic-udp.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 3041a808c3797e3c87272d71666e7b2f7c7a9f46 Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Wed, 25 Jan 2017 12:43:29 +0100
-Subject: [PATCH] Create socket on first sendto if family agnostic udp() was
- used
-
-Create socket and set family on first sendto() if udp() was created
-without address family.
-
-Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
----
- src/udp.c | 21 +++++++++++++++++++++
- 1 file changed, 21 insertions(+)
-
-diff --git a/src/udp.c b/src/udp.c
-index ec97252..605c195 100644
---- a/src/udp.c
-+++ b/src/udp.c
-@@ -189,6 +189,27 @@ static int meth_sendto(lua_State *L) {
- lua_pushstring(L, gai_strerror(err));
- return 2;
- }
-+
-+ /* create socket if on first sendto if AF_UNSPEC was set */
-+ if (udp->family == AF_UNSPEC && udp->sock == SOCKET_INVALID) {
-+ struct addrinfo *ap;
-+ const char *errstr = NULL;
-+ for (ap = ai; ap != NULL; ap = ap->ai_next) {
-+ errstr = inet_trycreate(&udp->sock, ap->ai_family, SOCK_DGRAM, 0);
-+ if (errstr == NULL) {
-+ socket_setnonblocking(&udp->sock);
-+ udp->family = ap->ai_family;
-+ break;
-+ }
-+ }
-+ if (errstr != NULL) {
-+ lua_pushnil(L);
-+ lua_pushstring(L, errstr);
-+ freeaddrinfo(ai);
-+ return 2;
-+ }
-+ }
-+
- timeout_markstart(tm);
- err = socket_sendto(&udp->sock, data, count, &sent, ai->ai_addr,
- (socklen_t) ai->ai_addrlen, tm);
---
-2.11.0
-
diff --git a/main/lua-socket/APKBUILD b/main/lua-socket/APKBUILD
index 37bafe009dd..44b2845236e 100644
--- a/main/lua-socket/APKBUILD
+++ b/main/lua-socket/APKBUILD
@@ -2,27 +2,22 @@
# Maintainer: Mika Havela <mika.havela@gmail.com>
_luaversions="5.1 5.2 5.3 5.4"
pkgname=lua-socket
-_name=luasocket
-pkgver=3.0_rc1_git20160306
-pkgrel=3
-_ver=${pkgver%_git*}
-_ver=${_ver/_rc/-rc}
+_pkgname=luasocket
+pkgver=3.1.0
+pkgrel=1
pkgdesc="Networking library for Lua"
-url="http://luaforge.net/projects/luasocket/"
+url="https://lunarmodules.github.io/luasocket/"
arch="all"
license="MIT"
for _i in $_luaversions; do
makedepends="$makedepends lua$_i-dev"
subpackages="$subpackages lua$_i-socket:split_${_i/./_}"
done
-source="luasocket-$_ver.tar.gz::https://github.com/diegonehab/luasocket/archive/v$_ver.tar.gz
- git.patch
+source="$pkgname-$pkgver.tar.gz::https://github.com/lunarmodules/luasocket/archive/refs/tags/v$pkgver.tar.gz
lua-cflags.patch
- 0001-Create-socket-on-first-sendto-if-family-agnostic-udp.patch
"
-
-# default_prepare assumes $_builddir
-builddir="$srcdir/$_name-$_ver"
+builddir="$srcdir/$_pkgname-$pkgver"
+options="!check"
prepare() {
default_prepare
@@ -62,7 +57,7 @@ for _i in $_luaversions; do
eval "split_${_i/./_}() { _split $_i; }"
done
-sha512sums="f6efce259aaacaa11472911471f8a13b118fe009b8953a82c6aa18b9ec829cd1293180904e56935cb130d36d267e3f27c91db2d78e03f7488f3e100571ed0540 luasocket-3.0-rc1.tar.gz
-45c80e488fedc879f0217bc8a654d80da003039f5d1ff21b0dea0eb769151787dbe793e44a3dfd72cb07ff2697eceaf4fc7b55b4634cd170fa71281f19f025a5 git.patch
-fb482ad22b5caa2054b25c86edc01d1a666035930f6b55e7d12704dd78b9c31343c39eab5f13958941180d819aa37470c75fe27f1b206a4b431fb589663e2685 lua-cflags.patch
-c45a12e17771a1b3b71154b5415421f524cd10b7969b4649a5f37b652cdc826721e117edb8fe64758d3520e59946e2f755b814f72cbb39ff42bf59bbcf9a64e9 0001-Create-socket-on-first-sendto-if-family-agnostic-udp.patch"
+sha512sums="
+1e9e98484740ec6538fe3d2b0dab74d31f052956ecf9ee3b60e229f2d0b13fcc6d4aaf74cd2a3e2ee330333dabb316fe6a43c60baaea26f0cc01069b6aa4519b lua-socket-3.1.0.tar.gz
+66d9b84a756800bab813042bd2ca4d473aa963686ec769be9171babbe5707ba94f62e7a5d4c0d14b71036c37953ee6ca157b97452f2b0e4196ffb81fdd7d8d21 lua-cflags.patch
+"
diff --git a/main/lua-socket/git.patch b/main/lua-socket/git.patch
deleted file mode 100644
index d665fc2323d..00000000000
--- a/main/lua-socket/git.patch
+++ /dev/null
@@ -1,6609 +0,0 @@
-diff --git a/doc/http.html b/doc/http.html
-index cd41c0d..3b7a8b1 100644
---- a/doc/http.html
-+++ b/doc/http.html
-@@ -112,12 +112,15 @@ the HTTP module:
- </p>
-
- <ul>
--<li> <tt>PORT</tt>: default port used for connections;
--<li> <tt>PROXY</tt>: default proxy used for connections;
-+<li> <tt>PROXY</tt>: default proxy used for connections;
- <li> <tt>TIMEOUT</tt>: sets the timeout for all I/O operations;
- <li> <tt>USERAGENT</tt>: default user agent reported to server.
- </ul>
-
-+<p class=note id="post">
-+Note: These constants are global. Changing them will also
-+change the behavior other code that might be using LuaSocket.
-+</p>
-
- <!-- http.request ++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
-diff --git a/doc/mime.html b/doc/mime.html
-index ae136fd..8cb3507 100644
---- a/doc/mime.html
-+++ b/doc/mime.html
-@@ -72,34 +72,6 @@ local mime = require("mime")
-
- <h3 id=high>High-level filters</h3>
-
--<!-- normalize ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
--
--<p class=name id="normalize">
--mime.<b>normalize(</b>[marker]<b>)</b>
--</p>
--
--<p class=description>
--Converts most common end-of-line markers to a specific given marker.
--</p>
--
--<p class=parameters>
--<tt>Marker</tt> is the new marker. It defaults to CRLF, the canonic
--end-of-line marker defined by the MIME standard.
--</p>
--
--<p class=return>
--The function returns a filter that performs the conversion.
--</p>
--
--<p class=note>
--Note: There is no perfect solution to this problem. Different end-of-line
--markers are an evil that will probably plague developers forever.
--This function, however, will work perfectly for text created with any of
--the most common end-of-line markers, i.e. the Mac OS (CR), the Unix (LF),
--or the DOS (CRLF) conventions. Even if the data has mixed end-of-line
--markers, the function will still work well, although it doesn't
--guarantee that the number of empty lines will be correct.
--</p>
-
- <!-- decode +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
-@@ -159,6 +131,35 @@ base64 = ltn12.filter.chain(
- )
- </pre>
-
-+<!-- normalize ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-+
-+<p class=name id="normalize">
-+mime.<b>normalize(</b>[marker]<b>)</b>
-+</p>
-+
-+<p class=description>
-+Converts most common end-of-line markers to a specific given marker.
-+</p>
-+
-+<p class=parameters>
-+<tt>Marker</tt> is the new marker. It defaults to CRLF, the canonic
-+end-of-line marker defined by the MIME standard.
-+</p>
-+
-+<p class=return>
-+The function returns a filter that performs the conversion.
-+</p>
-+
-+<p class=note>
-+Note: There is no perfect solution to this problem. Different end-of-line
-+markers are an evil that will probably plague developers forever.
-+This function, however, will work perfectly for text created with any of
-+the most common end-of-line markers, i.e. the Mac OS (CR), the Unix (LF),
-+or the DOS (CRLF) conventions. Even if the data has mixed end-of-line
-+markers, the function will still work well, although it doesn't
-+guarantee that the number of empty lines will be correct.
-+</p>
-+
- <!-- stuff +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
- <p class=name id="stuff">
-@@ -466,7 +467,7 @@ marker.
- <p>
- <small>
- Last modified by Diego Nehab on <br>
--Thu Apr 20 00:25:44 EDT 2006
-+Fri Mar 4 15:19:17 BRT 2016
- </small>
- </p>
- </center>
-diff --git a/doc/reference.css b/doc/reference.css
-index b1dd25d..04e38cf 100644
---- a/doc/reference.css
-+++ b/doc/reference.css
-@@ -2,6 +2,7 @@ body {
- margin-left: 1em;
- margin-right: 1em;
- font-family: "Verdana", sans-serif;
-+ background: #ffffff;
- }
-
- tt {
-diff --git a/doc/reference.html b/doc/reference.html
-index e9bb5eb..287dc19 100644
---- a/doc/reference.html
-+++ b/doc/reference.html
-@@ -147,6 +147,7 @@ Support, Manual">
- <a href="socket.html#connect">connect</a>,
- <a href="socket.html#connect">connect4</a>,
- <a href="socket.html#connect">connect6</a>,
-+<a href="socket.html#datagramsize">_DATAGRAMSIZE</a>,
- <a href="socket.html#debug">_DEBUG</a>,
- <a href="dns.html#dns">dns</a>,
- <a href="socket.html#gettime">gettime</a>,
-@@ -158,11 +159,14 @@ Support, Manual">
- <a href="socket.html#skip">skip</a>,
- <a href="socket.html#sleep">sleep</a>,
- <a href="socket.html#setsize">_SETSIZE</a>,
-+<a href="socket.html#socketinvalid">_SOCKETINVALID</a>,
- <a href="socket.html#source">source</a>,
- <a href="tcp.html#socket.tcp">tcp</a>,
-+<a href="tcp.html#socket.tcp4">tcp4</a>,
- <a href="tcp.html#socket.tcp6">tcp6</a>,
- <a href="socket.html#try">try</a>,
- <a href="udp.html#socket.udp">udp</a>,
-+<a href="udp.html#socket.udp4">udp4</a>,
- <a href="udp.html#socket.udp6">udp6</a>,
- <a href="socket.html#version">_VERSION</a>.
- </blockquote>
-@@ -183,6 +187,7 @@ Support, Manual">
- <a href="tcp.html#getpeername">getpeername</a>,
- <a href="tcp.html#getsockname">getsockname</a>,
- <a href="tcp.html#getstats">getstats</a>,
-+<a href="tcp.html#gettimeout">gettimeout</a>,
- <a href="tcp.html#listen">listen</a>,
- <a href="tcp.html#receive">receive</a>,
- <a href="tcp.html#send">send</a>,
-@@ -203,6 +208,7 @@ Support, Manual">
- <a href="udp.html#getoption">getoption</a>,
- <a href="udp.html#getpeername">getpeername</a>,
- <a href="udp.html#getsockname">getsockname</a>,
-+<a href="udp.html#gettimeout">gettimeout</a>,
- <a href="udp.html#receive">receive</a>,
- <a href="udp.html#receivefrom">receivefrom</a>,
- <a href="udp.html#send">send</a>,
-diff --git a/doc/smtp.html b/doc/smtp.html
-index bbbff80..600ec37 100644
---- a/doc/smtp.html
-+++ b/doc/smtp.html
-@@ -114,6 +114,124 @@ the SMTP module:
- <li> <tt>ZONE</tt>: default time zone.
- </ul>
-
-+<!-- message ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-+
-+<p class=name id=message>
-+smtp.<b>message(</b>mesgt<b>)</b>
-+</p>
-+
-+<p class=description>
-+Returns a <em>simple</em>
-+<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a> source that sends an SMTP message body, possibly multipart (arbitrarily deep).
-+</p>
-+
-+<p class=parameters>
-+The only parameter of the function is a table describing the message.
-+<tt>Mesgt</tt> has the following form (notice the recursive structure):
-+</p>
-+
-+<blockquote>
-+<table summary="Mesgt table structure">
-+<tr><td><tt>
-+mesgt = {<br>
-+&nbsp;&nbsp;headers = <i>header-table</i>,<br>
-+&nbsp;&nbsp;body = <i>LTN12 source</i> or <i>string</i> or
-+<i>multipart-mesgt</i><br>
-+}<br>
-+&nbsp;<br>
-+multipart-mesgt = {<br>
-+&nbsp;&nbsp;[preamble = <i>string</i>,]<br>
-+&nbsp;&nbsp;[1] = <i>mesgt</i>,<br>
-+&nbsp;&nbsp;[2] = <i>mesgt</i>,<br>
-+&nbsp;&nbsp;...<br>
-+&nbsp;&nbsp;[<i>n</i>] = <i>mesgt</i>,<br>
-+&nbsp;&nbsp;[epilogue = <i>string</i>,]<br>
-+}<br>
-+</tt></td></tr>
-+</table>
-+</blockquote>
-+
-+<p class=parameters>
-+For a simple message, all that is needed is a set of <tt>headers</tt>
-+and the <tt>body</tt>. The message <tt>body</tt> can be given as a string
-+or as a <em>simple</em>
-+<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a>
-+source. For multipart messages, the body is a table that
-+recursively defines each part as an independent message, plus an optional
-+<tt>preamble</tt> and <tt>epilogue</tt>.
-+</p>
-+
-+<p class=return>
-+The function returns a <em>simple</em>
-+<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a>
-+source that produces the
-+message contents as defined by <tt>mesgt</tt>, chunk by chunk.
-+Hopefully, the following
-+example will make things clear. When in doubt, refer to the appropriate RFC
-+as listed in the introduction. </p>
-+
-+<pre class=example>
-+-- load the smtp support and its friends
-+local smtp = require("socket.smtp")
-+local mime = require("mime")
-+local ltn12 = require("ltn12")
-+
-+-- creates a source to send a message with two parts. The first part is
-+-- plain text, the second part is a PNG image, encoded as base64.
-+source = smtp.message{
-+ headers = {
-+ -- Remember that headers are *ignored* by smtp.send.
-+ from = "Sicrano de Oliveira &lt;sicrano@example.com&gt;",
-+ to = "Fulano da Silva &lt;fulano@example.com&gt;",
-+ subject = "Here is a message with attachments"
-+ },
-+ body = {
-+ preamble = "If your client doesn't understand attachments, \r\n" ..
-+ "it will still display the preamble and the epilogue.\r\n" ..
-+ "Preamble will probably appear even in a MIME enabled client.",
-+ -- first part: no headers means plain text, us-ascii.
-+ -- The mime.eol low-level filter normalizes end-of-line markers.
-+ [1] = {
-+ body = mime.eol(0, [[
-+ Lines in a message body should always end with CRLF.
-+ The smtp module will *NOT* perform translation. However, the
-+ send function *DOES* perform SMTP stuffing, whereas the message
-+ function does *NOT*.
-+ ]])
-+ },
-+ -- second part: headers describe content to be a png image,
-+ -- sent under the base64 transfer content encoding.
-+ -- notice that nothing happens until the message is actually sent.
-+ -- small chunks are loaded into memory right before transmission and
-+ -- translation happens on the fly.
-+ [2] = {
-+ headers = {
-+ ["content-type"] = 'image/png; name="image.png"',
-+ ["content-disposition"] = 'attachment; filename="image.png"',
-+ ["content-description"] = 'a beautiful image',
-+ ["content-transfer-encoding"] = "BASE64"
-+ },
-+ body = ltn12.source.chain(
-+ ltn12.source.file(io.open("image.png", "rb")),
-+ ltn12.filter.chain(
-+ mime.encode("base64"),
-+ mime.wrap()
-+ )
-+ )
-+ },
-+ epilogue = "This might also show up, but after the attachments"
-+ }
-+}
-+
-+-- finally send it
-+r, e = smtp.send{
-+ from = "&lt;sicrano@example.com&gt;",
-+ rcpt = "&lt;fulano@example.com&gt;",
-+ source = source,
-+}
-+</pre>
-+
-+
- <!-- send +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
- <p class=name id=send>
-@@ -275,123 +393,6 @@ r, e = smtp.send{
- }
- </pre>
-
--<!-- message ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
--
--<p class=name id=message>
--smtp.<b>message(</b>mesgt<b>)</b>
--</p>
--
--<p class=description>
--Returns a <em>simple</em>
--<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a> source that sends an SMTP message body, possibly multipart (arbitrarily deep).
--</p>
--
--<p class=parameters>
--The only parameter of the function is a table describing the message.
--<tt>Mesgt</tt> has the following form (notice the recursive structure):
--</p>
--
--<blockquote>
--<table summary="Mesgt table structure">
--<tr><td><tt>
--mesgt = {<br>
--&nbsp;&nbsp;headers = <i>header-table</i>,<br>
--&nbsp;&nbsp;body = <i>LTN12 source</i> or <i>string</i> or
--<i>multipart-mesgt</i><br>
--}<br>
--&nbsp;<br>
--multipart-mesgt = {<br>
--&nbsp;&nbsp;[preamble = <i>string</i>,]<br>
--&nbsp;&nbsp;[1] = <i>mesgt</i>,<br>
--&nbsp;&nbsp;[2] = <i>mesgt</i>,<br>
--&nbsp;&nbsp;...<br>
--&nbsp;&nbsp;[<i>n</i>] = <i>mesgt</i>,<br>
--&nbsp;&nbsp;[epilogue = <i>string</i>,]<br>
--}<br>
--</tt></td></tr>
--</table>
--</blockquote>
--
--<p class=parameters>
--For a simple message, all that is needed is a set of <tt>headers</tt>
--and the <tt>body</tt>. The message <tt>body</tt> can be given as a string
--or as a <em>simple</em>
--<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a>
--source. For multipart messages, the body is a table that
--recursively defines each part as an independent message, plus an optional
--<tt>preamble</tt> and <tt>epilogue</tt>.
--</p>
--
--<p class=return>
--The function returns a <em>simple</em>
--<a href="http://lua-users.org/wiki/FiltersSourcesAndSinks">LTN12</a>
--source that produces the
--message contents as defined by <tt>mesgt</tt>, chunk by chunk.
--Hopefully, the following
--example will make things clear. When in doubt, refer to the appropriate RFC
--as listed in the introduction. </p>
--
--<pre class=example>
---- load the smtp support and its friends
--local smtp = require("socket.smtp")
--local mime = require("mime")
--local ltn12 = require("ltn12")
--
---- creates a source to send a message with two parts. The first part is
---- plain text, the second part is a PNG image, encoded as base64.
--source = smtp.message{
-- headers = {
-- -- Remember that headers are *ignored* by smtp.send.
-- from = "Sicrano de Oliveira &lt;sicrano@example.com&gt;",
-- to = "Fulano da Silva &lt;fulano@example.com&gt;",
-- subject = "Here is a message with attachments"
-- },
-- body = {
-- preamble = "If your client doesn't understand attachments, \r\n" ..
-- "it will still display the preamble and the epilogue.\r\n" ..
-- "Preamble will probably appear even in a MIME enabled client.",
-- -- first part: no headers means plain text, us-ascii.
-- -- The mime.eol low-level filter normalizes end-of-line markers.
-- [1] = {
-- body = mime.eol(0, [[
-- Lines in a message body should always end with CRLF.
-- The smtp module will *NOT* perform translation. However, the
-- send function *DOES* perform SMTP stuffing, whereas the message
-- function does *NOT*.
-- ]])
-- },
-- -- second part: headers describe content to be a png image,
-- -- sent under the base64 transfer content encoding.
-- -- notice that nothing happens until the message is actually sent.
-- -- small chunks are loaded into memory right before transmission and
-- -- translation happens on the fly.
-- [2] = {
-- headers = {
-- ["content-type"] = 'image/png; name="image.png"',
-- ["content-disposition"] = 'attachment; filename="image.png"',
-- ["content-description"] = 'a beautiful image',
-- ["content-transfer-encoding"] = "BASE64"
-- },
-- body = ltn12.source.chain(
-- ltn12.source.file(io.open("image.png", "rb")),
-- ltn12.filter.chain(
-- mime.encode("base64"),
-- mime.wrap()
-- )
-- )
-- },
-- epilogue = "This might also show up, but after the attachments"
-- }
--}
--
---- finally send it
--r, e = smtp.send{
-- from = "&lt;sicrano@example.com&gt;",
-- rcpt = "&lt;fulano@example.com&gt;",
-- source = source,
--}
--</pre>
--
- <!-- footer +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
- <div class=footer>
-diff --git a/doc/socket.html b/doc/socket.html
-index b9303cb..35f8391 100644
---- a/doc/socket.html
-+++ b/doc/socket.html
-@@ -51,6 +51,30 @@ To obtain the <tt>socket</tt> namespace, run:
- local socket = require("socket")
- </pre>
-
-+<!-- headers.canonic ++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-+
-+<p class=name id="headers.canonic">
-+socket.headers.<b>canonic</b></p>
-+
-+<p> The <tt>socket.headers.canonic</tt> table
-+is used by the HTTP and SMTP modules to translate from
-+lowercase field names back into their canonic
-+capitalization. When a lowercase field name exists as a key
-+in this table, the associated value is substituted in
-+whenever the field name is sent out.
-+</p>
-+
-+<p>
-+You can obtain the <tt>headers</tt> namespace if case run-time
-+modifications are required by running:
-+</p>
-+
-+<pre class=example>
-+-- loads the headers module
-+local headers = require("headers")
-+</pre>
-+
-+
- <!-- bind ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
- <p class=name id=bind>
-@@ -90,7 +114,7 @@ of connect are defined as simple helper functions that restrict the
-
- <!-- debug ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
--<p class=name id=debug>
-+<p class=name id=debug>
- socket.<b>_DEBUG</b>
- </p>
-
-@@ -99,6 +123,19 @@ This constant is set to <tt><b>true</b></tt> if the library was compiled
- with debug support.
- </p>
-
-+<!-- datagramsize +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-+
-+<p class=name id=debug>
-+socket.<b>_DATAGRAMSIZE</b>
-+</p>
-+
-+<p class=description>
-+Default datagram size used by calls to
-+<a href="udp.html#receive"<tt>receive</tt></a> and
-+<a href="udp.html#receivefrom"><tt>receivefrom</tt></a>.
-+(Unless changed in compile time, the value is 8192.)
-+</p>
-+
- <!-- get time +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
- <p class=name id=gettime>
-@@ -106,8 +143,7 @@ socket.<b>gettime()</b>
- </p>
-
- <p class=description>
--Returns the time in seconds, relative to the origin of the
--universe. You should subtract the values returned by this function
-+Returns the UNIX time in seconds. You should subtract the values returned by this function
- to get meaningful values.
- </p>
-
-@@ -117,29 +153,6 @@ t = socket.gettime()
- print(socket.gettime() - t .. " seconds elapsed")
- </pre>
-
--<!-- socket.headers ++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
--
--<p class=name id="headers.canonic">
--socket.headers.<b>canonic</b></p>
--
--<p> The <tt>socket.headers.canonic</tt> table
--is used by the HTTP and SMTP modules to translate from
--lowercase field names back into their canonic
--capitalization. When a lowercase field name exists as a key
--in this table, the associated value is substituted in
--whenever the field name is sent out.
--</p>
--
--<p>
--You can obtain the <tt>headers</tt> namespace if case run-time
--modifications are required by running:
--</p>
--
--<pre class=example>
---- loads the headers module
--local headers = require("headers")
--</pre>
--
- <!-- newtry +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
- <p class=name id=newtry>
-@@ -155,8 +168,7 @@ is raised.
-
- <p class=parameters>
- <tt>Finalizer</tt> is a function that will be called before
--<tt>try</tt> throws the exception. It will be called
--in <em>protected</em> mode.
-+<tt>try</tt> throws the exception.
- </p>
-
- <p class=return>
-@@ -204,15 +216,9 @@ to throw exceptions.
- </p>
-
- <p class=return>
--Returns an equivalent function that instead of throwing exceptions,
--returns <tt><b>nil</b></tt> followed by an error message.
--</p>
--
--<p class=note>
--Note: Beware that if your function performs some illegal operation that
--raises an error, the protected function will catch the error and return it
--as a string. This is because the <a href=#try><tt>try</tt></a> function
--uses errors as the mechanism to throw exceptions.
-+Returns an equivalent function that instead of throwing exceptions in case of
-+a failed <a href=#try><tt>try</tt></a> call, returns <tt><b>nil</b></tt>
-+followed by an error message.
- </p>
-
- <!-- select +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-@@ -238,7 +244,9 @@ non-numeric indices) in the arrays will be silently ignored.
-
- <p class=return> The function returns a list with the sockets ready for
- reading, a list with the sockets ready for writing and an error message.
--The error message is "<tt>timeout</tt>" if a timeout condition was met and
-+The error message is "<tt>timeout</tt>" if a timeout
-+condition was met, "<tt>select failed</tt>" if the call
-+to <tt>select</tt> failed, and
- <tt><b>nil</b></tt> otherwise. The returned tables are
- doubly keyed both by integers and also by the sockets
- themselves, to simplify the test if a specific socket has
-@@ -246,7 +254,7 @@ changed status.
- </p>
-
- <p class=note>
--<b>Note: </b>: <tt>select</tt> can monitor a limited number
-+<b>Note:</b> <tt>select</tt> can monitor a limited number
- of sockets, as defined by the constant <tt>socket._SETSIZE</tt>. This
- number may be as high as 1024 or as low as 64 by default,
- depending on the system. It is usually possible to change this
-@@ -276,6 +284,18 @@ it to <tt>select</tt>, it will be ignored.
- <b>Using select with non-socket objects</b>: Any object that implements <tt>getfd</tt> and <tt>dirty</tt> can be used with <tt>select</tt>, allowing objects from other libraries to be used within a <tt>socket.select</tt> driven loop.
- </p>
-
-+<!-- setsize ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-+
-+<p class=name id=setsize>
-+socket.<b>_SETSIZE</b>
-+</p>
-+
-+<p class=description>
-+The maximum number of sockets that the <a
-+href=#select><tt>select</tt></a> function can handle.
-+</p>
-+
-+
- <!-- sink ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
- <p class=name id=sink>
-@@ -383,15 +403,14 @@ side closes the connection.
- The function returns a source with the appropriate behavior.
- </p>
-
--<!-- setsize ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-+<!-- socketinvalid ++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
--<p class=name id=setsize>
--socket.<b>_SETSIZE</b>
-+<p class=name id=socketinvalid>
-+socket.<b>_SOCKETINVALID</b>
- </p>
-
- <p class=description>
--The maximum number of sockets that the <a
--href=#select><tt>select</tt></a> function can handle.
-+The OS value for an invalid socket.
- </p>
-
- <!-- try ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-@@ -401,9 +420,9 @@ socket.<b>try(</b>ret<sub>1</sub> [, ret<sub>2</sub> ... ret<sub>N</sub>]<b>)</b
- </p>
-
- <p class=description>
--Throws an exception in case of error. The exception can only be caught
--by the <a href=#protect><tt>protect</tt></a> function. It does not explode
--into an error message.
-+Throws an exception in case <tt>ret<sub>1</sub></tt> is falsy, using
-+<tt>ret<sub>2</sub></tt> as the error message. The exception is supposed to be caught
-+by a <a href=#protect><tt>protect</tt></a>ed function only.
- </p>
-
- <p class=parameters>
-@@ -414,7 +433,10 @@ nested with <tt>try</tt>.
-
- <p class=return>
- The function returns <tt>ret</tt><sub>1</sub> to <tt>ret</tt><sub>N</sub> if
--<tt>ret</tt><sub>1</sub> is not <tt><b>nil</b></tt>. Otherwise, it calls <tt>error</tt> passing <tt>ret</tt><sub>2</sub>.
-+<tt>ret</tt><sub>1</sub> is not <tt><b>nil</b></tt> or <tt><b>false</b></tt>.
-+Otherwise, it calls <tt>error</tt> passing <tt>ret</tt><sub>2</sub> wrapped
-+in a table with metatable used by <a href=#protect><tt>protect</tt></a> to
-+distinguish exceptions from runtime errors.
- </p>
-
- <pre class=example>
-diff --git a/doc/tcp.html b/doc/tcp.html
-index 4226d78..c6c6eb2 100644
---- a/doc/tcp.html
-+++ b/doc/tcp.html
-@@ -1,10 +1,10 @@
--<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
-+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
- "http://www.w3.org/TR/html4/strict.dtd">
- <html>
-
- <head>
- <meta name="description" content="LuaSocket: The TCP/IP support">
--<meta name="keywords" content="Lua, LuaSocket, Socket, TCP, Library, Network, Support">
-+<meta name="keywords" content="Lua, LuaSocket, Socket, TCP, Library, Network, Support">
- <title>LuaSocket: TCP/IP support</title>
- <link rel="stylesheet" href="reference.css" type="text/css">
- </head>
-@@ -28,7 +28,7 @@
- <a href="index.html#download">download</a> &middot;
- <a href="installation.html">installation</a> &middot;
- <a href="introduction.html">introduction</a> &middot;
--<a href="reference.html">reference</a>
-+<a href="reference.html">reference</a>
- </p>
- </center>
- <hr>
-@@ -36,56 +36,11 @@
-
- <!-- tcp ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
--<h2 id="tcp">TCP</h2>
--
--<!-- socket.tcp +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
--
--<p class=name id="socket.tcp">
--socket.<b>tcp()</b>
--</p>
--
--<p class=description>
--Creates and returns an IPv4 TCP master object. A master object can
--be transformed into a server object with the method
--<a href=#listen><tt>listen</tt></a> (after a call to <a
--href=#bind><tt>bind</tt></a>) or into a client object with
--the method <a href=#connect><tt>connect</tt></a>. The only other
--method supported by a master object is the
--<a href=#close><tt>close</tt></a> method.</p>
--
--<p class=return>
--In case of success, a new master object is returned. In case of error,
--<b><tt>nil</tt></b> is returned, followed by an error message.
--</p>
--
--<!-- socket.tcp6 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
--
--<p class=name id="socket.tcp6">
--socket.<b>tcp6()</b>
--</p>
--
--<p class=description>
--Creates and returns an IPv6 TCP master object. A master object can
--be transformed into a server object with the method
--<a href=#listen><tt>listen</tt></a> (after a call to <a
--href=#bind><tt>bind</tt></a>) or into a client object with
--the method <a href=#connect><tt>connect</tt></a>. The only other
--method supported by a master object is the
--<a href=#close><tt>close</tt></a> method.</p>
--
--<p class=return>
--In case of success, a new master object is returned. In case of error,
--<b><tt>nil</tt></b> is returned, followed by an error message.
--</p>
--
--<p class=note>
--Note: The TCP object returned will have the option
--"<tt>ipv6-v6only</tt>" set to <tt><b>true</b></tt>.
--</p>
-+<h2 id="tcp">TCP</h2>
-
- <!-- accept +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
--<p class=name id="accept">
-+<p class=name id="accept">
- server:<b>accept()</b>
- </p>
-
-@@ -95,9 +50,9 @@ object and returns a client object representing that connection.
- </p>
-
- <p class=return>
--If a connection is successfully initiated, a client object is returned.
-+If a connection is successfully initiated, a client object is returned.
- If a timeout condition is met, the method returns <b><tt>nil</tt></b>
--followed by the error string '<tt>timeout</tt>'. Other errors are
-+followed by the error string '<tt>timeout</tt>'. Other errors are
- reported by <b><tt>nil</tt></b> followed by a message describing the error.
- </p>
-
-@@ -107,28 +62,28 @@ with a server object in
- the <tt>recvt</tt> parameter before a call to <tt>accept</tt> does
- <em>not</em> guarantee <tt>accept</tt> will return immediately. Use the <a
- href=#settimeout><tt>settimeout</tt></a> method or <tt>accept</tt>
--might block until <em>another</em> client shows up.
-+might block until <em>another</em> client shows up.
- </p>
-
- <!-- bind +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
--<p class=name id="bind">
-+<p class=name id="bind">
- master:<b>bind(</b>address, port<b>)</b>
- </p>
-
- <p class=description>
- Binds a master object to <tt>address</tt> and <tt>port</tt> on the
--local host.
-+local host.
-
- <p class=parameters>
--<tt>Address</tt> can be an IP address or a host name.
--<tt>Port</tt> must be an integer number in the range [0..64K).
-+<tt>Address</tt> can be an IP address or a host name.
-+<tt>Port</tt> must be an integer number in the range [0..64K).
- If <tt>address</tt>
- is '<tt>*</tt>', the system binds to all local interfaces
- using the <tt>INADDR_ANY</tt> constant or
--<tt>IN6ADDR_ANY_INIT</tt>, according to the family.
-+<tt>IN6ADDR_ANY_INIT</tt>, according to the family.
- If <tt>port</tt> is 0, the system automatically
--chooses an ephemeral port.
-+chooses an ephemeral port.
- </p>
-
- <p class=return>
-@@ -137,13 +92,13 @@ method returns <b><tt>nil</tt></b> followed by an error message.
- </p>
-
- <p class=note>
--Note: The function <a href=socket.html#bind><tt>socket.bind</tt></a>
-+Note: The function <a href=socket.html#bind><tt>socket.bind</tt></a>
- is available and is a shortcut for the creation of server sockets.
- </p>
-
- <!-- close ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
--<p class=name id="close">
-+<p class=name id="close">
- master:<b>close()</b><br>
- client:<b>close()</b><br>
- server:<b>close()</b>
-@@ -154,14 +109,14 @@ Closes a TCP object. The internal socket used by the object is closed
- and the local address to which the object was
- bound is made available to other applications. No further operations
- (except for further calls to the <tt>close</tt> method) are allowed on
--a closed socket.
-+a closed socket.
- </p>
-
- <p class=note>
- Note: It is important to close all used sockets once they are not
- needed, since, in many systems, each socket uses a file descriptor,
- which are limited system resources. Garbage-collected objects are
--automatically closed before destruction, though.
-+automatically closed before destruction, though.
- </p>
-
- <!-- connect ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-@@ -172,19 +127,19 @@ master:<b>connect(</b>address, port<b>)</b>
-
- <p class=description>
- Attempts to connect a master object to a remote host, transforming it into a
--client object.
--Client objects support methods
-+client object.
-+Client objects support methods
- <a href=#send><tt>send</tt></a>,
--<a href=#receive><tt>receive</tt></a>,
--<a href=#getsockname><tt>getsockname</tt></a>,
-+<a href=#receive><tt>receive</tt></a>,
-+<a href=#getsockname><tt>getsockname</tt></a>,
- <a href=#getpeername><tt>getpeername</tt></a>,
--<a href=#settimeout><tt>settimeout</tt></a>,
-+<a href=#settimeout><tt>settimeout</tt></a>,
- and <a href=#close><tt>close</tt></a>.
- </p>
-
- <p class=parameters>
--<tt>Address</tt> can be an IP address or a host name.
--<tt>Port</tt> must be an integer number in the range [1..64K).
-+<tt>Address</tt> can be an IP address or a host name.
-+<tt>Port</tt> must be an integer number in the range [1..64K).
- </p>
-
- <p class=return>
-@@ -193,14 +148,14 @@ describing the error. In case of success, the method returns 1.
- </p>
-
- <p class=note>
--Note: The function <a href=socket.html#connect><tt>socket.connect</tt></a>
-+Note: The function <a href=socket.html#connect><tt>socket.connect</tt></a>
- is available and is a shortcut for the creation of client sockets.
- </p>
-
- <p class=note>
--Note: Starting with LuaSocket 2.0,
-+Note: Starting with LuaSocket 2.0,
- the <a href=#settimeout><tt>settimeout</tt></a>
--method affects the behavior of <tt>connect</tt>, causing it to return
-+method affects the behavior of <tt>connect</tt>, causing it to return
- with an error in case of a timeout. If that happens, you can still call <a
- href=socket.html#select><tt>socket.select</tt></a> with the socket in the
- <tt>sendt</tt> table. The socket will be writable when the connection is
-@@ -209,13 +164,88 @@ established.
-
- <p class=note>
- Note: Starting with LuaSocket 3.0, the host name resolution
--depends on whether the socket was created by <a
--href=#socket.tcp><tt>socket.tcp</tt></a> or <a
--href=#socket.tcp6><tt>socket.tcp6</tt></a>. Addresses from
--the appropriate family are tried in succession until the
--first success or until the last failure.
-+depends on whether the socket was created by
-+<a href=#socket.tcp><tt>socket.tcp</tt></a>,
-+<a href=#socket.tcp4><tt>socket.tcp4</tt></a> or
-+<a href=#socket.tcp6><tt>socket.tcp6</tt></a>. Addresses from
-+the appropriate family (or both) are tried in the order
-+returned by the resolver until the
-+first success or until the last failure. If the timeout was
-+set to zero, only the first address is tried.
-+</p>
-+
-+<!-- dirty +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-+
-+<p class=name id="dirty">
-+master:<b>dirty()</b><br>
-+client:<b>dirty()</b><br>
-+server:<b>dirty()</b>
-+</p>
-+
-+<p class=description>
-+Check the read buffer status.
-+</p>
-+
-+<p class=return>
-+Returns <tt>true</tt> if there is any data in the read buffer, <tt>false</tt> otherwise.
-+</p>
-+
-+<p class=note>
-+Note: <b>This is an internal method, use at your own risk.</b>
-+</p>
-+
-+
-+<!-- getfd +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-+
-+<p class=name id="getfd">
-+master:<b>getfd()</b><br>
-+client:<b>getfd()</b><br>
-+server:<b>getfd()</b>
-+</p>
-+
-+<p class=description>
-+Returns the underling socket descriptor or handle associated to the object.
-+</p>
-+
-+<p class=return>
-+The descriptor or handle. In case the object has been closed, the return will be -1.
-+</p>
-+
-+<p class=note>
-+Note: <b>This is an internal method. Unlikely to be
-+portable. Use at your own risk. </b>
-+</p>
-+
-+
-+<!-- getoption ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-+
-+<p class=name id="getoption">
-+client:<b>getoption(</b>option)</b><br>
-+server:<b>getoption(</b>option)</b>
-+</p>
-+
-+<p class=description>
-+Gets options for the TCP object.
-+See <a href=#setoption><tt>setoption</tt></a> for description of the
-+option names and values.
-+</p>
-+
-+<p class=parameters>
-+<tt>Option</tt> is a string with the option name.
-+<ul>
-+
-+<li> '<tt>keepalive</tt>'
-+<li> '<tt>linger</tt>'
-+<li> '<tt>reuseaddr</tt>'
-+<li> '<tt>tcp-nodelay</tt>'
-+</ul>
-+
-+<p class=return>
-+The method returns the option <tt>value</tt> in case of success, or
-+<b><tt>nil</tt></b> followed by an error message otherwise.
- </p>
-
-+
- <!-- getpeername ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
- <p class=name id="getpeername">
-@@ -227,10 +257,10 @@ Returns information about the remote side of a connected client object.
- </p>
-
- <p class=return>
--Returns a string with the IP address of the peer, the
--port number that peer is using for the connection,
--and a string with the family ("<tt>inet</tt>" or "<tt>inet6</tt>").
--In case of error, the method returns <b><tt>nil</tt></b>.
-+Returns a string with the IP address of the peer, the
-+port number that peer is using for the connection,
-+and a string with the family ("<tt>inet</tt>" or "<tt>inet6</tt>").
-+In case of error, the method returns <b><tt>nil</tt></b>.
- </p>
-
- <p class=note>
-@@ -246,13 +276,13 @@ server:<b>getsockname()</b>
- </p>
-
- <p class=description>
--Returns the local address information associated to the object.
-+Returns the local address information associated to the object.
- </p>
-
- <p class=return>
--The method returns a string with local IP address, a number with
--the local port,
--and a string with the family ("<tt>inet</tt>" or "<tt>inet6</tt>").
-+The method returns a string with local IP address, a number with
-+the local port,
-+and a string with the family ("<tt>inet</tt>" or "<tt>inet6</tt>").
- In case of error, the method returns <b><tt>nil</tt></b>.
- </p>
-
-@@ -266,32 +296,46 @@ server:<b>getstats()</b><br>
-
- <p class=description>
- Returns accounting information on the socket, useful for throttling
--of bandwidth.
-+of bandwidth.
- </p>
-
- <p class=return>
- The method returns the number of bytes received, the number of bytes sent,
--and the age of the socket object in seconds.
-+and the age of the socket object in seconds.
- </p>
-
-+<!-- gettimeout +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-+
-+<p class=name id="gettimeout">
-+master:<b>gettimeout()</b><br>
-+client:<b>gettimeout()</b><br>
-+server:<b>gettimeout()</b>
-+</p>
-+
-+<p class=description>
-+Returns the current block timeout followed by the curent
-+total timeout.
-+</p>
-+
-+
- <!-- listen ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
--<p class=name id="listen">
-+<p class=name id="listen">
- master:<b>listen(</b>backlog<b>)</b>
- </p>
-
- <p class=description>
- Specifies the socket is willing to receive connections, transforming the
--object into a server object. Server objects support the
--<a href=#accept><tt>accept</tt></a>,
--<a href=#getsockname><tt>getsockname</tt></a>,
--<a href=#setoption><tt>setoption</tt></a>,
--<a href=#settimeout><tt>settimeout</tt></a>,
--and <a href=#close><tt>close</tt></a> methods.
-+object into a server object. Server objects support the
-+<a href=#accept><tt>accept</tt></a>,
-+<a href=#getsockname><tt>getsockname</tt></a>,
-+<a href=#setoption><tt>setoption</tt></a>,
-+<a href=#settimeout><tt>settimeout</tt></a>,
-+and <a href=#close><tt>close</tt></a> methods.
- </p>
-
- <p class=parameters>
--The parameter <tt>backlog</tt> specifies the number of client
-+The parameter <tt>backlog</tt> specifies the number of client
- connections that can
- be queued waiting for service. If the queue is full and another client
- attempts connection, the connection is refused.
-@@ -310,11 +354,11 @@ client:<b>receive(</b>[pattern [, prefix]]<b>)</b>
-
- <p class=description>
- Reads data from a client object, according to the specified <em>read
--pattern</em>. Patterns follow the Lua file I/O format, and the difference in performance between all patterns is negligible.
-+pattern</em>. Patterns follow the Lua file I/O format, and the difference in performance between all patterns is negligible.
- </p>
-
- <p class=parameters>
--<tt>Pattern</tt> can be any of the following:
-+<tt>Pattern</tt> can be any of the following:
- </p>
-
- <ul>
-@@ -325,7 +369,7 @@ terminated by a LF character (ASCII&nbsp;10), optionally preceded by a
- CR character (ASCII&nbsp;13). The CR and LF characters are not included in
- the returned line. In fact, <em>all</em> CR characters are
- ignored by the pattern. This is the default pattern;
--<li> <tt>number</tt>: causes the method to read a specified <tt>number</tt>
-+<li> <tt>number</tt>: causes the method to read a specified <tt>number</tt>
- of bytes from the socket.
- </ul>
-
-@@ -347,10 +391,10 @@ closed before the transmission was completed or the string
- <p class=note>
- <b>Important note</b>: This function was changed <em>severely</em>. It used
- to support multiple patterns (but I have never seen this feature used) and
--now it doesn't anymore. Partial results used to be returned in the same
-+now it doesn't anymore. Partial results used to be returned in the same
- way as successful results. This last feature violated the idea that all
- functions should return <tt><b>nil</b></tt> on error. Thus it was changed
--too.
-+too.
- </p>
-
- <!-- send +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-@@ -366,7 +410,7 @@ Sends <tt>data</tt> through client object.
- <p class=parameters>
- <tt>Data</tt> is the string to be sent. The optional arguments
- <tt>i</tt> and <tt>j</tt> work exactly like the standard
--<tt>string.sub</tt> Lua function to allow the selection of a
-+<tt>string.sub</tt> Lua function to allow the selection of a
- substring to be sent.
- </p>
-
-@@ -385,10 +429,10 @@ there was a timeout during the operation.
- </p>
-
- <p class=note>
--Note: Output is <em>not</em> buffered. For small strings,
--it is always better to concatenate them in Lua
--(with the '<tt>..</tt>' operator) and send the result in one call
--instead of calling the method several times.
-+Note: Output is <em>not</em> buffered. For small strings,
-+it is always better to concatenate them in Lua
-+(with the '<tt>..</tt>' operator) and send the result in one call
-+instead of calling the method several times.
- </p>
-
- <!-- setoption ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-@@ -400,12 +444,12 @@ server:<b>setoption(</b>option [, value]<b>)</b>
-
- <p class=description>
- Sets options for the TCP object. Options are only needed by low-level or
--time-critical applications. You should only modify an option if you
--are sure you need it.
-+time-critical applications. You should only modify an option if you
-+are sure you need it.
- </p>
-
- <p class=parameters>
--<tt>Option</tt> is a string with the option name, and <tt>value</tt>
-+<tt>Option</tt> is a string with the option name, and <tt>value</tt>
- depends on the option being set:
-
- <ul>
-@@ -413,7 +457,7 @@ depends on the option being set:
- <li> '<tt>keepalive</tt>': Setting this option to <tt>true</tt> enables
- the periodic transmission of messages on a connected socket. Should the
- connected party fail to respond to these messages, the connection is
--considered broken and processes using the socket are notified;
-+considered broken and processes using the socket are notified;
-
- <li> '<tt>linger</tt>': Controls the action taken when unsent data are
- queued on a socket and a close is performed. The value is a table with a
-@@ -424,13 +468,13 @@ it is able to transmit the data or until '<tt>timeout</tt>' has passed. If
- '<tt>on</tt>' is <tt>false</tt> and a close is issued, the system will
- process the close in a manner that allows the process to continue as
- quickly as possible. I do not advise you to set this to anything other than
--zero;
-+zero;
-
- <li> '<tt>reuseaddr</tt>': Setting this option indicates that the rules
--used in validating addresses supplied in a call to
-+used in validating addresses supplied in a call to
- <a href=#bind><tt>bind</tt></a> should allow reuse of local addresses;
-
--<li> '<tt>tcp-nodelay</tt>': Setting this option to <tt>true</tt>
-+<li> '<tt>tcp-nodelay</tt>': Setting this option to <tt>true</tt>
- disables the Nagle's algorithm for the connection;
-
- <li> '<tt>ipv6-v6only</tt>':
-@@ -447,34 +491,6 @@ followed by an error message otherwise.
- Note: The descriptions above come from the man pages.
- </p>
-
--<!-- getoption ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
--
--<p class=name id="getoption">
--client:<b>getoption(</b>option)</b><br>
--server:<b>getoption(</b>option)</b>
--</p>
--
--<p class=description>
--Gets options for the TCP object.
--See <a href=#setoption><tt>setoption</tt></a> for description of the
--option names and values.
--</p>
--
--<p class=parameters>
--<tt>Option</tt> is a string with the option name.
--<ul>
--
--<li> '<tt>keepalive</tt>'
--<li> '<tt>linger</tt>'
--<li> '<tt>reuseaddr</tt>'
--<li> '<tt>tcp-nodelay</tt>'
--</ul>
--
--<p class=return>
--The method returns the option <tt>value</tt> in case of success, or
--<b><tt>nil</tt></b> followed by an error message otherwise.
--</p>
--
- <!-- setstats +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
- <p class=name id="setstats">
-@@ -485,7 +501,7 @@ server:<b>setstats(</b>received, sent, age<b>)</b><br>
-
- <p class=description>
- Resets accounting information on the socket, useful for throttling
--of bandwidth.
-+of bandwidth.
- </p>
-
- <p class=parameters>
-@@ -495,7 +511,7 @@ of bandwidth.
- </p>
-
- <p class=return>
--The method returns 1 in case of success and <tt><b>nil</b></tt> otherwise.
-+The method returns 1 in case of success and <tt><b>nil</b></tt> otherwise.
- </p>
-
- <!-- settimeout +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-@@ -509,8 +525,8 @@ server:<b>settimeout(</b>value [, mode]<b>)</b>
- <p class=description>
- Changes the timeout values for the object. By default,
- all I/O operations are blocking. That is, any call to the methods
--<a href=#send><tt>send</tt></a>,
--<a href=#receive><tt>receive</tt></a>, and
-+<a href=#send><tt>send</tt></a>,
-+<a href=#receive><tt>receive</tt></a>, and
- <a href=#accept><tt>accept</tt></a>
- will block indefinitely, until the operation completes. The
- <tt>settimeout</tt> method defines a limit on the amount of time the
-@@ -521,7 +537,7 @@ time has elapsed, the affected methods give up and fail with an error code.
- <p class=parameters>
- The amount of time to wait is specified as the
- <tt>value</tt> parameter, in seconds. There are two timeout modes and
--both can be used together for fine tuning:
-+both can be used together for fine tuning:
- </p>
-
- <ul>
-@@ -532,7 +548,7 @@ default mode;</li>
-
- <li> '<tt>t</tt>': <em>total</em> timeout. Specifies the upper limit on
- the amount of time LuaSocket can block a Lua script before returning from
--a call.</li>
-+a call.</li>
- </ul>
-
- <p class=parameters>
-@@ -562,7 +578,7 @@ client:<b>shutdown(</b>mode<b>)</b><br>
- </p>
-
- <p class=description>
--Shuts down part of a full-duplex connection.
-+Shuts down part of a full-duplex connection.
- </p>
-
- <p class=parameters>
-@@ -579,66 +595,107 @@ This is the default mode;
- This function returns 1.
- </p>
-
--<!-- dirty +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-+<!-- setfd +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
--<p class=name id="dirty">
--master:<b>dirty()</b><br>
--client:<b>dirty()</b><br>
--server:<b>dirty()</b>
-+<p class=name id="setfd">
-+master:<b>setfd(</b>fd<b>)</b><br>
-+client:<b>setfd(</b>fd<b>)</b><br>
-+server:<b>setfd(</b>fd<b>)</b>
- </p>
-
- <p class=description>
--Check the read buffer status.
-+Sets the underling socket descriptor or handle associated to the object. The current one is simply replaced, not closed, and no other change to the object state is made.
- </p>
-
- <p class=return>
--Returns <tt>true</tt> if there is any data in the read buffer, <tt>false</tt> otherwise.
-+No return value.
- </p>
-
- <p class=note>
--Note: <b>This is an internal method, any use is unlikely to be portable.</b>
-+Note: <b>This is an internal method. Unlikely to be
-+portable. Use at your own risk. </b>
- </p>
-
--<!-- getfd +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-+<!-- socket.tcp +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
--<p class=name id="getfd">
--master:<b>getfd()</b><br>
--client:<b>getfd()</b><br>
--server:<b>getfd()</b>
-+<p class=name id="socket.tcp">
-+socket.<b>tcp()</b>
- </p>
-
- <p class=description>
--Returns the underling socket descriptor or handle associated to the object.
--</p>
-+Creates and returns an TCP master object. A master object can
-+be transformed into a server object with the method
-+<a href=#listen><tt>listen</tt></a> (after a call to <a
-+href=#bind><tt>bind</tt></a>) or into a client object with
-+the method <a href=#connect><tt>connect</tt></a>. The only other
-+method supported by a master object is the
-+<a href=#close><tt>close</tt></a> method.</p>
-
- <p class=return>
--The descriptor or handle. In case the object has been closed, the return will be -1.
-+In case of success, a new master object is returned. In case of error,
-+<b><tt>nil</tt></b> is returned, followed by an error message.
- </p>
-
- <p class=note>
--Note: <b>This is an internal method, any use is unlikely to be portable.</b>
-+Note: The choice between IPv4 and IPv6 happens during a call to
-+<a href=#bind><tt>bind</tt></a> or <a
-+href=#bind><tt>connect</tt></a>, depending on the address
-+family obtained from the resolver.
- </p>
-
--<!-- setfd +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-+<p class=note>
-+Note: Before the choice between IPv4 and IPv6 happens,
-+the internal socket object is invalid and therefore <a
-+href=#setoption><tt>setoption</tt></a> will fail.
-+</p>
-
--<p class=name id="setfd">
--master:<b>setfd(</b>fd<b>)</b><br>
--client:<b>setfd(</b>fd<b>)</b><br>
--server:<b>setfd(</b>fd<b>)</b>
-+<!-- socket.tcp +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-+
-+<p class=name id="socket.tcp4">
-+socket.<b>tcp4()</b>
- </p>
-
- <p class=description>
--Sets the underling socket descriptor or handle associated to the object. The current one is simply replaced, not closed, and no other change to the object state is made.
-+Creates and returns an IPv4 TCP master object. A master object can
-+be transformed into a server object with the method
-+<a href=#listen><tt>listen</tt></a> (after a call to <a
-+href=#bind><tt>bind</tt></a>) or into a client object with
-+the method <a href=#connect><tt>connect</tt></a>. The only other
-+method supported by a master object is the
-+<a href=#close><tt>close</tt></a> method.</p>
-+
-+<p class=return>
-+In case of success, a new master object is returned. In case of error,
-+<b><tt>nil</tt></b> is returned, followed by an error message.
-+</p>
-+
-+<!-- socket.tcp6 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-+
-+<p class=name id="socket.tcp6">
-+socket.<b>tcp6()</b>
- </p>
-
-+<p class=description>
-+Creates and returns an IPv6 TCP master object. A master object can
-+be transformed into a server object with the method
-+<a href=#listen><tt>listen</tt></a> (after a call to <a
-+href=#bind><tt>bind</tt></a>) or into a client object with
-+the method <a href=#connect><tt>connect</tt></a>. The only other
-+method supported by a master object is the
-+<a href=#close><tt>close</tt></a> method.</p>
-+
- <p class=return>
--No return value.
-+In case of success, a new master object is returned. In case of error,
-+<b><tt>nil</tt></b> is returned, followed by an error message.
- </p>
-
- <p class=note>
--Note: <b>This is an internal method, any use is unlikely to be portable.</b>
-+Note: The TCP object returned will have the option
-+"<tt>ipv6-v6only</tt>" set to <tt><b>true</b></tt>.
- </p>
-
-+
-+
- <!-- footer +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
- <div class=footer>
-diff --git a/doc/udp.html b/doc/udp.html
-index e5b0ad0..4618aad 100644
---- a/doc/udp.html
-+++ b/doc/udp.html
-@@ -4,7 +4,7 @@
-
- <head>
- <meta name="description" content="LuaSocket: The UDP support">
--<meta name="keywords" content="Lua, LuaSocket, Socket, UDP, Library, Network, Support">
-+<meta name="keywords" content="Lua, LuaSocket, Socket, UDP, Library, Network, Support">
- <title>LuaSocket: UDP support</title>
- <link rel="stylesheet" href="reference.css" type="text/css">
- </head>
-@@ -28,7 +28,7 @@
- <a href="index.html#download">download</a> &middot;
- <a href="installation.html">installation</a> &middot;
- <a href="introduction.html">introduction</a> &middot;
--<a href="reference.html">reference</a>
-+<a href="reference.html">reference</a>
- </p>
- </center>
- <hr>
-@@ -37,74 +37,7 @@
-
- <!-- udp ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
--<h2 id="udp">UDP</h2>
--
--<!-- socket.udp ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
--
--<p class="name" id="socket.udp">
--socket.<b>udp()</b>
--</p>
--
--<p class="description">
--Creates and returns an unconnected IPv4 UDP object.
--Unconnected objects support the
--<a href="#sendto"><tt>sendto</tt></a>,
--<a href="#receive"><tt>receive</tt></a>,
--<a href="#receivefrom"><tt>receivefrom</tt></a>,
--<a href="#getoption"><tt>getoption</tt></a>,
--<a href="#getsockname"><tt>getsockname</tt></a>,
--<a href="#setoption"><tt>setoption</tt></a>,
--<a href="#settimeout"><tt>settimeout</tt></a>,
--<a href="#setpeername"><tt>setpeername</tt></a>,
--<a href="#setsockname"><tt>setsockname</tt></a>, and
--<a href="#close"><tt>close</tt></a>.
--The <a href="#setpeername"><tt>setpeername</tt></a>
--is used to connect the object.
--</p>
--
--<p class="return">
--In case of success, a new unconnected UDP object
--returned. In case of error, <b><tt>nil</tt></b> is returned, followed by
--an error message.
--</p>
--
--<!-- socket.udp ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
--
--<p class="name" id="socket.udp6">
--socket.<b>udp6()</b>
--</p>
--
--<p class="description">
--Creates and returns an unconnected IPv6 UDP object.
--Unconnected objects support the
--<a href="#sendto"><tt>sendto</tt></a>,
--<a href="#receive"><tt>receive</tt></a>,
--<a href="#receivefrom"><tt>receivefrom</tt></a>,
--<a href="#getoption"><tt>getoption</tt></a>,
--<a href="#getsockname"><tt>getsockname</tt></a>,
--<a href="#setoption"><tt>setoption</tt></a>,
--<a href="#settimeout"><tt>settimeout</tt></a>,
--<a href="#setpeername"><tt>setpeername</tt></a>,
--<a href="#setsockname"><tt>setsockname</tt></a>, and
--<a href="#close"><tt>close</tt></a>.
--The <a href="#setpeername"><tt>setpeername</tt></a>
--is used to connect the object.
--</p>
--
--<p class="return">
--In case of success, a new unconnected UDP object
--returned. In case of error, <b><tt>nil</tt></b> is returned, followed by
--an error message.
--</p>
--
--<p class=note>
--Note: The TCP object returned will have the option
--"<tt>ipv6-v6only</tt>" set to <tt><b>true</b></tt>.
--</p>
--
--
--
--<!-- close +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-+<h2 id="udp">UDP</h2>
-
- <!-- close +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
-@@ -129,6 +62,40 @@ Garbage-collected objects are automatically closed before
- destruction, though.
- </p>
-
-+<!-- getoption +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-+
-+<p class="name" id="getoption">
-+connected:<b>getoption()</b><br>
-+unconnected:<b>getoption()</b>
-+</p>
-+
-+<p class="description">
-+Gets an option value from the UDP object.
-+See <a href=#setoption><tt>setoption</tt></a> for
-+description of the option names and values.
-+</p>
-+
-+<p class="parameters"><tt>Option</tt> is a string with the option name.
-+<ul>
-+<li> '<tt>dontroute</tt>'
-+<li> '<tt>broadcast</tt>'
-+<li> '<tt>reuseaddr</tt>'
-+<li> '<tt>reuseport</tt>'
-+<li> '<tt>ip-multicast-loop</tt>'
-+<li> '<tt>ipv6-v6only</tt>'
-+<li> '<tt>ip-multicast-if</tt>'
-+<li> '<tt>ip-multicast-ttl</tt>'
-+<li> '<tt>ip-add-membership</tt>'
-+<li> '<tt>ip-drop-membership</tt>'
-+</ul>
-+</p>
-+
-+<p class=return>
-+The method returns the option <tt>value</tt> in case of
-+success, or
-+<b><tt>nil</tt></b> followed by an error message otherwise.
-+</p>
-+
- <!-- getpeername +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
- <p class="name" id="getpeername">
-@@ -142,10 +109,10 @@ associated with a connected UDP object.
-
-
- <p class=return>
--Returns a string with the IP address of the peer, the
--port number that peer is using for the connection,
--and a string with the family ("<tt>inet</tt>" or "<tt>inet6</tt>").
--In case of error, the method returns <b><tt>nil</tt></b>.
-+Returns a string with the IP address of the peer, the
-+port number that peer is using for the connection,
-+and a string with the family ("<tt>inet</tt>" or "<tt>inet6</tt>").
-+In case of error, the method returns <b><tt>nil</tt></b>.
- </p>
-
- <p class="note">
-@@ -165,9 +132,9 @@ Returns the local address information associated to the object.
-
-
- <p class=return>
--The method returns a string with local IP address, a number with
--the local port,
--and a string with the family ("<tt>inet</tt>" or "<tt>inet6</tt>").
-+The method returns a string with local IP address, a number with
-+the local port,
-+and a string with the family ("<tt>inet</tt>" or "<tt>inet6</tt>").
- In case of error, the method returns <b><tt>nil</tt></b>.
- </p>
-
-@@ -179,6 +146,18 @@ first time (in which case it is bound to an ephemeral port and the
- wild-card address).
- </p>
-
-+<!-- gettimeout +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-+
-+<p class=name id="gettimeout">
-+connected:<b>settimeout(</b>value<b>)</b><br>
-+unconnected:<b>settimeout(</b>value<b>)</b>
-+</p>
-+
-+<p class=description>
-+Returns the current timeout value.
-+</p>
-+
-+
- <!-- receive +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
- <p class="name" id="receive">
-@@ -199,9 +178,12 @@ specifies the maximum size of the datagram to be retrieved. If
- there are more than <tt>size</tt> bytes available in the datagram,
- the excess bytes are discarded. If there are less then
- <tt>size</tt> bytes available in the current datagram, the
--available bytes are returned. If <tt>size</tt> is omitted, the
--maximum datagram size is used (which is currently limited by the
--implementation to 8192 bytes).
-+available bytes are returned.
-+If <tt>size</tt> is omitted, the
-+compile-time constant <a
-+href=socket.html#datagramsize><tt>socket._DATAGRAMSIZE</tt></a> is used
-+(it defaults to 8192 bytes). Larger sizes will cause a
-+temporary buffer to be allocated for the operation.
- </p>
-
- <p class="return">
-@@ -217,46 +199,12 @@ unconnected:<b>receivefrom(</b>[size]<b>)</b>
- </p>
-
- <p class="description">
--Works exactly as the <a href="#receive"><tt>receive</tt></a>
-+Works exactly as the <a href="#receive"><tt>receive</tt></a>
- method, except it returns the IP
- address and port as extra return values (and is therefore slightly less
- efficient).
- </p>
-
--<!-- getoption +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
--
--<p class="name" id="getoption">
--connected:<b>getoption()</b><br>
--unconnected:<b>getoption()</b>
--</p>
--
--<p class="description">
--Gets an option value from the UDP object.
--See <a href=#setoption><tt>setoption</tt></a> for
--description of the option names and values.
--</p>
--
--<p class="parameters"><tt>Option</tt> is a string with the option name.
--<ul>
--<li> '<tt>dontroute</tt>'
--<li> '<tt>broadcast</tt>'
--<li> '<tt>reuseaddr</tt>'
--<li> '<tt>reuseport</tt>'
--<li> '<tt>ip-multicast-loop</tt>'
--<li> '<tt>ipv6-v6only</tt>'
--<li> '<tt>ip-multicast-if</tt>'
--<li> '<tt>ip-multicast-ttl</tt>'
--<li> '<tt>ip-add-membership</tt>'
--<li> '<tt>ip-drop-membership</tt>'
--</ul>
--</p>
--
--<p class=return>
--The method returns the option <tt>value</tt> in case of
--success, or
--<b><tt>nil</tt></b> followed by an error message otherwise.
--</p>
--
- <!-- send ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
- <p class="name" id="send">
-@@ -268,7 +216,7 @@ Sends a datagram to the UDP peer of a connected object.
- </p>
-
- <p class="parameters">
--<tt>Datagram</tt> is a string with the datagram contents.
-+<tt>Datagram</tt> is a string with the datagram contents.
- The maximum datagram size for UDP is 64K minus IP layer overhead.
- However datagrams larger than the link layer packet size will be
- fragmented, which may deteriorate performance and/or reliability.
-@@ -298,11 +246,11 @@ Sends a datagram to the specified IP address and port number.
-
- <p class="parameters">
- <tt>Datagram</tt> is a string with the
--datagram contents.
-+datagram contents.
- The maximum datagram size for UDP is 64K minus IP layer overhead.
- However datagrams larger than the link layer packet size will be
- fragmented, which may deteriorate performance and/or reliability.
--<tt>Ip</tt> is the IP address of the recipient.
-+<tt>Ip</tt> is the IP address of the recipient.
- Host names are <em>not</em> allowed for performance reasons.
-
- <tt>Port</tt> is the port number at the recipient.
-@@ -320,6 +268,75 @@ refuses to send a message to the specified address (i.e. no
- interface accepts the address).
- </p>
-
-+<!-- setoption +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-+
-+<p class="name" id="setoption">
-+connected:<b>setoption(</b>option [, value]<b>)</b><br>
-+unconnected:<b>setoption(</b>option [, value]<b>)</b>
-+</p>
-+
-+<p class="description">
-+Sets options for the UDP object. Options are
-+only needed by low-level or time-critical applications. You should
-+only modify an option if you are sure you need it.</p>
-+<p class="parameters"><tt>Option</tt> is a string with the option
-+name, and <tt>value</tt> depends on the option being set:
-+</p>
-+
-+<ul>
-+<li> '<tt>dontroute</tt>': Indicates that outgoing
-+messages should bypass the standard routing facilities.
-+Receives a boolean value;
-+<li> '<tt>broadcast</tt>': Requests permission to send
-+broadcast datagrams on the socket.
-+Receives a boolean value;
-+<li> '<tt>reuseaddr</tt>': Indicates that the rules used in
-+validating addresses supplied in a <tt>bind()</tt> call
-+should allow reuse of local addresses.
-+Receives a boolean value;
-+<li> '<tt>reuseport</tt>': Allows completely duplicate
-+bindings by multiple processes if they all set
-+'<tt>reuseport</tt>' before binding the port.
-+Receives a boolean value;
-+<li> '<tt>ip-multicast-loop</tt>':
-+Specifies whether or not a copy of an outgoing multicast
-+datagram is delivered to the sending host as long as it is a
-+member of the multicast group.
-+Receives a boolean value;
-+<li> '<tt>ipv6-v6only</tt>':
-+Specifies whether to restrict <tt>inet6</tt> sockets to
-+sending and receiving only IPv6 packets.
-+Receive a boolean value;
-+<li> '<tt>ip-multicast-if</tt>':
-+Sets the interface over which outgoing multicast datagrams
-+are sent.
-+Receives an IP address;
-+<li> '<tt>ip-multicast-ttl</tt>':
-+Sets the Time To Live in the IP header for outgoing
-+multicast datagrams.
-+Receives a number;
-+<li> '<tt>ip-add-membership</tt>':
-+Joins the multicast group specified.
-+Receives a table with fields
-+<tt>multiaddr</tt> and <tt>interface</tt>, each containing an
-+IP address;
-+<li> '<tt>ip-drop-membership</tt>': Leaves the multicast
-+group specified.
-+Receives a table with fields
-+<tt>multiaddr</tt> and <tt>interface</tt>, each containing an
-+IP address.
-+</ul>
-+
-+<p class="return">
-+The method returns 1 in case of success, or
-+<b><tt>nil</tt></b> followed by an error message otherwise.
-+</p>
-+
-+<p class=note>
-+Note: The descriptions above come from the man pages.
-+</p>
-+
-+
- <!-- setpeername +++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
- <p class="name" id="setpeername">
-@@ -337,9 +354,9 @@ object or vice versa.
- For connected objects, outgoing datagrams
- will be sent to the specified peer, and datagrams received from
- other peers will be discarded by the OS. Connected UDP objects must
--use the <a href="#send"><tt>send</tt></a> and
--<a href="#receive"><tt>receive</tt></a> methods instead of
--<a href="#sendto"><tt>sendto</tt></a> and
-+use the <a href="#send"><tt>send</tt></a> and
-+<a href="#receive"><tt>receive</tt></a> methods instead of
-+<a href="#sendto"><tt>sendto</tt></a> and
- <a href="#receivefrom"><tt>receivefrom</tt></a>.
- </p>
-
-@@ -406,74 +423,6 @@ system or explicitly by <tt>setsockname</tt>, it cannot be
- changed.
- </p>
-
--<!-- setoption +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
--
--<p class="name" id="setoption">
--connected:<b>setoption(</b>option [, value]<b>)</b><br>
--unconnected:<b>setoption(</b>option [, value]<b>)</b>
--</p>
--
--<p class="description">
--Sets options for the UDP object. Options are
--only needed by low-level or time-critical applications. You should
--only modify an option if you are sure you need it.</p>
--<p class="parameters"><tt>Option</tt> is a string with the option
--name, and <tt>value</tt> depends on the option being set:
--</p>
--
--<ul>
--<li> '<tt>dontroute</tt>': Indicates that outgoing
--messages should bypass the standard routing facilities.
--Receives a boolean value;
--<li> '<tt>broadcast</tt>': Requests permission to send
--broadcast datagrams on the socket.
--Receives a boolean value;
--<li> '<tt>reuseaddr</tt>': Indicates that the rules used in
--validating addresses supplied in a <tt>bind()</tt> call
--should allow reuse of local addresses.
--Receives a boolean value;
--<li> '<tt>reuseport</tt>': Allows completely duplicate
--bindings by multiple processes if they all set
--'<tt>reuseport</tt>' before binding the port.
--Receives a boolean value;
--<li> '<tt>ip-multicast-loop</tt>':
--Specifies whether or not a copy of an outgoing multicast
--datagram is delivered to the sending host as long as it is a
--member of the multicast group.
--Receives a boolean value;
--<li> '<tt>ipv6-v6only</tt>':
--Specifies whether to restrict <tt>inet6</tt> sockets to
--sending and receiving only IPv6 packets.
--Receive a boolean value;
--<li> '<tt>ip-multicast-if</tt>':
--Sets the interface over which outgoing multicast datagrams
--are sent.
--Receives an IP address;
--<li> '<tt>ip-multicast-ttl</tt>':
--Sets the Time To Live in the IP header for outgoing
--multicast datagrams.
--Receives a number;
--<li> '<tt>ip-add-membership</tt>':
--Joins the multicast group specified.
--Receives a table with fields
--<tt>multiaddr</tt> and <tt>interface</tt>, each containing an
--IP address;
--<li> '<tt>ip-drop-membership</tt>': Leaves the multicast
--group specified.
--Receives a table with fields
--<tt>multiaddr</tt> and <tt>interface</tt>, each containing an
--IP address.
--</ul>
--
--<p class="return">
--The method returns 1 in case of success, or
--<b><tt>nil</tt></b> followed by an error message otherwise.
--</p>
--
--<p class=note>
--Note: The descriptions above come from the man pages.
--</p>
--
- <!-- settimeout +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
- <p class="name" id="settimeout">
-@@ -482,14 +431,14 @@ unconnected:<b>settimeout(</b>value<b>)</b>
- </p>
-
- <p class="description">
--Changes the timeout values for the object. By default, the
--<a href="#receive"><tt>receive</tt></a> and
--<a href="#receivefrom"><tt>receivefrom</tt></a>
-+Changes the timeout values for the object. By default, the
-+<a href="#receive"><tt>receive</tt></a> and
-+<a href="#receivefrom"><tt>receivefrom</tt></a>
- operations are blocking. That is, any call to the methods will block
- indefinitely, until data arrives. The <tt>settimeout</tt> function defines
- a limit on the amount of time the functions can block. When a timeout is
- set and the specified amount of time has elapsed, the affected methods
--give up and fail with an error code.
-+give up and fail with an error code.
- </p>
-
- <p class="parameters">
-@@ -514,6 +463,114 @@ all other method names already contained verbs making their
- imperative nature obvious.
- </p>
-
-+<!-- socket.udp ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-+
-+<p class="name" id="socket.udp">
-+socket.<b>udp()</b>
-+</p>
-+
-+<p class="description">
-+Creates and returns an unconnected UDP object.
-+Unconnected objects support the
-+<a href="#sendto"><tt>sendto</tt></a>,
-+<a href="#receive"><tt>receive</tt></a>,
-+<a href="#receivefrom"><tt>receivefrom</tt></a>,
-+<a href="#getoption"><tt>getoption</tt></a>,
-+<a href="#getsockname"><tt>getsockname</tt></a>,
-+<a href="#setoption"><tt>setoption</tt></a>,
-+<a href="#settimeout"><tt>settimeout</tt></a>,
-+<a href="#setpeername"><tt>setpeername</tt></a>,
-+<a href="#setsockname"><tt>setsockname</tt></a>, and
-+<a href="#close"><tt>close</tt></a>.
-+The <a href="#setpeername"><tt>setpeername</tt></a>
-+is used to connect the object.
-+</p>
-+
-+<p class="return">
-+In case of success, a new unconnected UDP object
-+returned. In case of error, <b><tt>nil</tt></b> is returned, followed by
-+an error message.
-+</p>
-+
-+<p class=note>
-+Note: The choice between IPv4 and IPv6 happens during a call to
-+<a href=#sendto><tt>sendto</tt></a>, <a
-+href=#setpeername><tt>setpeername</tt></a>, or <a
-+href=#setsockname><tt>sockname</tt></a>, depending on the address
-+family obtained from the resolver.
-+</p>
-+
-+<p class=note>
-+Note: Before the choice between IPv4 and IPv6 happens,
-+the internal socket object is invalid and therefore <a
-+href=#setoption><tt>setoption</tt></a> will fail.
-+</p>
-+
-+<!-- socket.udp4 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-+
-+<p class="name" id="socket.udp">
-+socket.<b>udp4()</b>
-+</p>
-+
-+<p class="description">
-+Creates and returns an unconnected IPv4 UDP object.
-+Unconnected objects support the
-+<a href="#sendto"><tt>sendto</tt></a>,
-+<a href="#receive"><tt>receive</tt></a>,
-+<a href="#receivefrom"><tt>receivefrom</tt></a>,
-+<a href="#getoption"><tt>getoption</tt></a>,
-+<a href="#getsockname"><tt>getsockname</tt></a>,
-+<a href="#setoption"><tt>setoption</tt></a>,
-+<a href="#settimeout"><tt>settimeout</tt></a>,
-+<a href="#setpeername"><tt>setpeername</tt></a>,
-+<a href="#setsockname"><tt>setsockname</tt></a>, and
-+<a href="#close"><tt>close</tt></a>.
-+The <a href="#setpeername"><tt>setpeername</tt></a>
-+is used to connect the object.
-+</p>
-+
-+<p class="return">
-+In case of success, a new unconnected UDP object
-+returned. In case of error, <b><tt>nil</tt></b> is returned, followed by
-+an error message.
-+</p>
-+
-+<!-- socket.udp ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-+
-+<p class="name" id="socket.udp6">
-+socket.<b>udp6()</b>
-+</p>
-+
-+<p class="description">
-+Creates and returns an unconnected IPv6 UDP object.
-+Unconnected objects support the
-+<a href="#sendto"><tt>sendto</tt></a>,
-+<a href="#receive"><tt>receive</tt></a>,
-+<a href="#receivefrom"><tt>receivefrom</tt></a>,
-+<a href="#getoption"><tt>getoption</tt></a>,
-+<a href="#getsockname"><tt>getsockname</tt></a>,
-+<a href="#setoption"><tt>setoption</tt></a>,
-+<a href="#settimeout"><tt>settimeout</tt></a>,
-+<a href="#setpeername"><tt>setpeername</tt></a>,
-+<a href="#setsockname"><tt>setsockname</tt></a>, and
-+<a href="#close"><tt>close</tt></a>.
-+The <a href="#setpeername"><tt>setpeername</tt></a>
-+is used to connect the object.
-+</p>
-+
-+<p class="return">
-+In case of success, a new unconnected UDP object
-+returned. In case of error, <b><tt>nil</tt></b> is returned, followed by
-+an error message.
-+</p>
-+
-+<p class=note>
-+Note: The TCP object returned will have the option
-+"<tt>ipv6-v6only</tt>" set to <tt><b>true</b></tt>.
-+</p>
-+
-+
-+
- <!-- footer ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ -->
-
- <div class=footer>
-@@ -524,7 +581,7 @@ imperative nature obvious.
- <a href="index.html#download">download</a> &middot;
- <a href="installation.html">installation</a> &middot;
- <a href="introduction.html">introduction</a> &middot;
--<a href="reference.html">reference</a>
-+<a href="reference.html">reference</a>
- </p>
- <p>
- <small>
-diff --git a/etc/dispatch.lua b/etc/dispatch.lua
-index cab7f59..2485415 100644
---- a/etc/dispatch.lua
-+++ b/etc/dispatch.lua
-@@ -5,6 +5,7 @@
- -----------------------------------------------------------------------------
- local base = _G
- local table = require("table")
-+local string = require("string")
- local socket = require("socket")
- local coroutine = require("coroutine")
- module("dispatch")
-@@ -43,26 +44,32 @@ end
- -----------------------------------------------------------------------------
- -- Mega hack. Don't try to do this at home.
- -----------------------------------------------------------------------------
---- we can't yield across calls to protect, so we rewrite it with coxpcall
-+-- we can't yield across calls to protect on Lua 5.1, so we rewrite it with
-+-- coroutines
- -- make sure you don't require any module that uses socket.protect before
- -- loading our hack
--function socket.protect(f)
-- return function(...)
-- local co = coroutine.create(f)
-- while true do
-- local results = {coroutine.resume(co, ...)}
-- local status = table.remove(results, 1)
-- if not status then
-- if base.type(results[1]) == 'table' then
-- return nil, results[1][1]
-- else base.error(results[1]) end
-- end
-- if coroutine.status(co) == "suspended" then
-- arg = {coroutine.yield(base.unpack(results))}
-+if string.sub(base._VERSION, -3) == "5.1" then
-+ local function _protect(co, status, ...)
-+ if not status then
-+ local msg = ...
-+ if base.type(msg) == 'table' then
-+ return nil, msg[1]
- else
-- return base.unpack(results)
-+ base.error(msg, 0)
- end
- end
-+ if coroutine.status(co) == "suspended" then
-+ return _protect(co, coroutine.resume(co, coroutine.yield(...)))
-+ else
-+ return ...
-+ end
-+ end
-+
-+ function socket.protect(f)
-+ return function(...)
-+ local co = coroutine.create(f)
-+ return _protect(co, coroutine.resume(co, ...))
-+ end
- end
- end
-
-diff --git a/linux.cmd b/linux.cmd
-index bd59adc..6c6636b 100644
---- a/linux.cmd
-+++ b/linux.cmd
-@@ -1 +1 @@
--make PLAT=linux DEBUG=DEBUG LUAINC_linux_base=/home/diego/build/linux/include LUAPREFIX_linux=/home/diego/build/linux
-+make PLAT=linux DEBUG=DEBUG LUAINC_linux_base=/home/diego/build/ubuntu/include LUAPREFIX_linux=/home/diego/build/ubuntu
-diff --git a/luasocket-scm-0.rockspec b/luasocket-scm-0.rockspec
-index f86567b..352a497 100644
---- a/luasocket-scm-0.rockspec
-+++ b/luasocket-scm-0.rockspec
-@@ -50,13 +50,12 @@ local function make_plat(plat)
- }
- local modules = {
- ["socket.core"] = {
-- sources = { "src/luasocket.c", "src/timeout.c", "src/buffer.c", "src/io.c", "src/auxiliar.c",
-- "src/options.c", "src/inet.c", "src/except.c", "src/select.c", "src/tcp.c", "src/udp.c" },
-+ sources = { "src/luasocket.c", "src/timeout.c", "src/buffer.c", "src/io.c", "src/auxiliar.c", "src/options.c", "src/inet.c", "src/except.c", "src/select.c", "src/tcp.c", "src/udp.c", "src/compat.c" },
- defines = defines[plat],
- incdir = "/src"
- },
-- ["mime.core"] = {
-- sources = { "src/mime.c" },
-+ ["mime.core"] = {
-+ sources = { "src/mime.c", "src/compat.c" },
- defines = defines[plat],
- incdir = "/src"
- },
-@@ -73,14 +72,12 @@ local function make_plat(plat)
- if plat == "unix" or plat == "macosx" then
- modules["socket.core"].sources[#modules["socket.core"].sources+1] = "src/usocket.c"
- modules["socket.unix"] = {
-- sources = { "src/buffer.c", "src/auxiliar.c", "src/options.c", "src/timeout.c", "src/io.c",
-- "src/usocket.c", "src/unix.c" },
-+ sources = { "src/buffer.c", "src/auxiliar.c", "src/options.c", "src/timeout.c", "src/io.c", "src/usocket.c", "src/unix.c" },
- defines = defines[plat],
- incdir = "/src"
- }
- modules["socket.serial"] = {
-- sources = { "src/buffer.c", "src/auxiliar.c", "src/options.c", "src/timeout.c",
-- "src/io.c", "src/usocket.c", "src/serial.c" },
-+ sources = { "src/buffer.c", "src/auxiliar.c", "src/options.c", "src/timeout.c", "src/io.c", "src/usocket.c", "src/serial.c" },
- defines = defines[plat],
- incdir = "/src"
- }
-diff --git a/makefile b/makefile
-index 04cd894..cc15b4e 100644
---- a/makefile
-+++ b/makefile
-@@ -5,12 +5,12 @@
- # Targets:
- # install install system independent support
- # install-unix also install unix-only support
--# install-both install for both lua5.1 and lua5.2
--# install-both-unix also install unix-only
-+# install-both install for lua51 lua52 lua53
-+# install-both-unix also install unix-only
- # print print the build settings
-
- PLAT?= linux
--PLATS= macosx linux win32 mingw
-+PLATS= macosx linux win32 mingw freebsd solaris
-
- all: $(PLAT)
-
-@@ -24,20 +24,26 @@ test:
- lua test/hello.lua
-
- install-both:
-- $(MAKE) clean
-+ $(MAKE) clean
- @cd src; $(MAKE) $(PLAT) LUAV=5.1
- @cd src; $(MAKE) install LUAV=5.1
-- $(MAKE) clean
-+ $(MAKE) clean
- @cd src; $(MAKE) $(PLAT) LUAV=5.2
- @cd src; $(MAKE) install LUAV=5.2
-+ $(MAKE) clean
-+ @cd src; $(MAKE) $(PLAT) LUAV=5.3
-+ @cd src; $(MAKE) install LUAV=5.3
-
- install-both-unix:
-- $(MAKE) clean
-+ $(MAKE) clean
- @cd src; $(MAKE) $(PLAT) LUAV=5.1
- @cd src; $(MAKE) install-unix LUAV=5.1
-- $(MAKE) clean
-+ $(MAKE) clean
- @cd src; $(MAKE) $(PLAT) LUAV=5.2
- @cd src; $(MAKE) install-unix LUAV=5.2
-+ $(MAKE) clean
-+ @cd src; $(MAKE) $(PLAT) LUAV=5.3
-+ @cd src; $(MAKE) install-unix LUAV=5.3
-
- .PHONY: test
-
-diff --git a/src/auxiliar.c b/src/auxiliar.c
-index de625e9..18fa8e4 100644
---- a/src/auxiliar.c
-+++ b/src/auxiliar.c
-@@ -26,7 +26,7 @@ void auxiliar_newclass(lua_State *L, const char *classname, luaL_Reg *func) {
- luaL_newmetatable(L, classname); /* mt */
- /* create __index table to place methods */
- lua_pushstring(L, "__index"); /* mt,"__index" */
-- lua_newtable(L); /* mt,"__index",it */
-+ lua_newtable(L); /* mt,"__index",it */
- /* put class name into class metatable */
- lua_pushstring(L, "class"); /* mt,"__index",it,"class" */
- lua_pushstring(L, classname); /* mt,"__index",it,"class",classname */
-@@ -84,7 +84,7 @@ int auxiliar_checkboolean(lua_State *L, int objidx) {
- }
-
- /*-------------------------------------------------------------------------*\
--* Return userdata pointer if object belongs to a given class, abort with
-+* Return userdata pointer if object belongs to a given class, abort with
- * error otherwise
- \*-------------------------------------------------------------------------*/
- void *auxiliar_checkclass(lua_State *L, const char *classname, int objidx) {
-@@ -98,7 +98,7 @@ void *auxiliar_checkclass(lua_State *L, const char *classname, int objidx) {
- }
-
- /*-------------------------------------------------------------------------*\
--* Return userdata pointer if object belongs to a given group, abort with
-+* Return userdata pointer if object belongs to a given group, abort with
- * error otherwise
- \*-------------------------------------------------------------------------*/
- void *auxiliar_checkgroup(lua_State *L, const char *groupname, int objidx) {
-@@ -121,7 +121,7 @@ void auxiliar_setclass(lua_State *L, const char *classname, int objidx) {
- }
-
- /*-------------------------------------------------------------------------*\
--* Get a userdata pointer if object belongs to a given group. Return NULL
-+* Get a userdata pointer if object belongs to a given group. Return NULL
- * otherwise
- \*-------------------------------------------------------------------------*/
- void *auxiliar_getgroupudata(lua_State *L, const char *groupname, int objidx) {
-@@ -139,7 +139,7 @@ void *auxiliar_getgroupudata(lua_State *L, const char *groupname, int objidx) {
- }
-
- /*-------------------------------------------------------------------------*\
--* Get a userdata pointer if object belongs to a given class. Return NULL
-+* Get a userdata pointer if object belongs to a given class. Return NULL
- * otherwise
- \*-------------------------------------------------------------------------*/
- void *auxiliar_getclassudata(lua_State *L, const char *classname, int objidx) {
-@@ -151,7 +151,7 @@ void *auxiliar_getclassudata(lua_State *L, const char *classname, int objidx) {
- * Used to be part of lauxlib in Lua 5.1, was dropped from 5.2.
- \*-------------------------------------------------------------------------*/
- int auxiliar_typeerror (lua_State *L, int narg, const char *tname) {
-- const char *msg = lua_pushfstring(L, "%s expected, got %s", tname,
-+ const char *msg = lua_pushfstring(L, "%s expected, got %s", tname,
- luaL_typename(L, narg));
- return luaL_argerror(L, narg, msg);
- }
-diff --git a/src/auxiliar.h b/src/auxiliar.h
-index ea99013..65511d4 100644
---- a/src/auxiliar.h
-+++ b/src/auxiliar.h
-@@ -4,12 +4,12 @@
- * Auxiliar routines for class hierarchy manipulation
- * LuaSocket toolkit (but completely independent of other LuaSocket modules)
- *
--* A LuaSocket class is a name associated with Lua metatables. A LuaSocket
--* group is a name associated with a class. A class can belong to any number
-+* A LuaSocket class is a name associated with Lua metatables. A LuaSocket
-+* group is a name associated with a class. A class can belong to any number
- * of groups. This module provides the functionality to:
- *
--* - create new classes
--* - add classes to groups
-+* - create new classes
-+* - add classes to groups
- * - set the class of objects
- * - check if an object belongs to a given class or group
- * - get the userdata associated to objects
-@@ -26,11 +26,12 @@
- * "class" with the class name.
- *
- * The mapping from class name to the corresponding metatable and the
--* reverse mapping are done using lauxlib.
-+* reverse mapping are done using lauxlib.
- \*=========================================================================*/
-
- #include "lua.h"
- #include "lauxlib.h"
-+#include "compat.h"
-
- int auxiliar_open(lua_State *L);
- void auxiliar_newclass(lua_State *L, const char *classname, luaL_Reg *func);
-diff --git a/src/buffer.c b/src/buffer.c
-index 4ef4e8e..fff1634 100644
---- a/src/buffer.c
-+++ b/src/buffer.c
-@@ -4,6 +4,7 @@
- \*=========================================================================*/
- #include "lua.h"
- #include "lauxlib.h"
-+#include "compat.h"
-
- #include "buffer.h"
-
-@@ -37,7 +38,7 @@ int buffer_open(lua_State *L) {
- }
-
- /*-------------------------------------------------------------------------*\
--* Initializes C structure
-+* Initializes C structure
- \*-------------------------------------------------------------------------*/
- void buffer_init(p_buffer buf, p_io io, p_timeout tm) {
- buf->first = buf->last = 0;
-@@ -61,8 +62,8 @@ int buffer_meth_getstats(lua_State *L, p_buffer buf) {
- * object:setstats() interface
- \*-------------------------------------------------------------------------*/
- int buffer_meth_setstats(lua_State *L, p_buffer buf) {
-- buf->received = (long) luaL_optnumber(L, 2, (lua_Number) buf->received);
-- buf->sent = (long) luaL_optnumber(L, 3, (lua_Number) buf->sent);
-+ buf->received = (long) luaL_optnumber(L, 2, (lua_Number) buf->received);
-+ buf->sent = (long) luaL_optnumber(L, 3, (lua_Number) buf->sent);
- if (lua_isnumber(L, 4)) buf->birthday = timeout_gettime() - lua_tonumber(L, 4);
- lua_pushnumber(L, 1);
- return 1;
-@@ -78,9 +79,7 @@ int buffer_meth_send(lua_State *L, p_buffer buf) {
- const char *data = luaL_checklstring(L, 2, &size);
- long start = (long) luaL_optnumber(L, 3, 1);
- long end = (long) luaL_optnumber(L, 4, -1);
--#ifdef LUASOCKET_DEBUG
-- p_timeout tm = timeout_markstart(buf->tm);
--#endif
-+ timeout_markstart(buf->tm);
- if (start < 0) start = (long) (size+start+1);
- if (end < 0) end = (long) (size+end+1);
- if (start < 1) start = (long) 1;
-@@ -89,7 +88,7 @@ int buffer_meth_send(lua_State *L, p_buffer buf) {
- /* check if there was an error */
- if (err != IO_DONE) {
- lua_pushnil(L);
-- lua_pushstring(L, buf->io->error(buf->io->ctx, err));
-+ lua_pushstring(L, buf->io->error(buf->io->ctx, err));
- lua_pushnumber(L, (lua_Number) (sent+start-1));
- } else {
- lua_pushnumber(L, (lua_Number) (sent+start-1));
-@@ -98,7 +97,7 @@ int buffer_meth_send(lua_State *L, p_buffer buf) {
- }
- #ifdef LUASOCKET_DEBUG
- /* push time elapsed during operation as the last return value */
-- lua_pushnumber(L, timeout_gettime() - timeout_getstart(tm));
-+ lua_pushnumber(L, timeout_gettime() - timeout_getstart(buf->tm));
- #endif
- return lua_gettop(L) - top;
- }
-@@ -111,10 +110,8 @@ int buffer_meth_receive(lua_State *L, p_buffer buf) {
- luaL_Buffer b;
- size_t size;
- const char *part = luaL_optlstring(L, 3, "", &size);
--#ifdef LUASOCKET_DEBUG
-- p_timeout tm = timeout_markstart(buf->tm);
--#endif
-- /* initialize buffer with optional extra prefix
-+ timeout_markstart(buf->tm);
-+ /* initialize buffer with optional extra prefix
- * (useful for concatenating previous partial results) */
- luaL_buffinit(L, &b);
- luaL_addlstring(&b, part, size);
-@@ -122,12 +119,12 @@ int buffer_meth_receive(lua_State *L, p_buffer buf) {
- if (!lua_isnumber(L, 2)) {
- const char *p= luaL_optstring(L, 2, "*l");
- if (p[0] == '*' && p[1] == 'l') err = recvline(buf, &b);
-- else if (p[0] == '*' && p[1] == 'a') err = recvall(buf, &b);
-+ else if (p[0] == '*' && p[1] == 'a') err = recvall(buf, &b);
- else luaL_argcheck(L, 0, 2, "invalid receive pattern");
-- /* get a fixed number of bytes (minus what was already partially
-+ /* get a fixed number of bytes (minus what was already partially
- * received) */
- } else {
-- double n = lua_tonumber(L, 2);
-+ double n = lua_tonumber(L, 2);
- size_t wanted = (size_t) n;
- luaL_argcheck(L, n >= 0, 2, "invalid receive pattern");
- if (size == 0 || wanted > size)
-@@ -138,8 +135,8 @@ int buffer_meth_receive(lua_State *L, p_buffer buf) {
- /* we can't push anyting in the stack before pushing the
- * contents of the buffer. this is the reason for the complication */
- luaL_pushresult(&b);
-- lua_pushstring(L, buf->io->error(buf->io->ctx, err));
-- lua_pushvalue(L, -2);
-+ lua_pushstring(L, buf->io->error(buf->io->ctx, err));
-+ lua_pushvalue(L, -2);
- lua_pushnil(L);
- lua_replace(L, -4);
- } else {
-@@ -149,7 +146,7 @@ int buffer_meth_receive(lua_State *L, p_buffer buf) {
- }
- #ifdef LUASOCKET_DEBUG
- /* push time elapsed during operation as the last return value */
-- lua_pushnumber(L, timeout_gettime() - timeout_getstart(tm));
-+ lua_pushnumber(L, timeout_gettime() - timeout_getstart(buf->tm));
- #endif
- return lua_gettop(L) - top;
- }
-@@ -222,7 +219,7 @@ static int recvall(p_buffer buf, luaL_Buffer *b) {
- }
-
- /*-------------------------------------------------------------------------*\
--* Reads a line terminated by a CR LF pair or just by a LF. The CR and LF
-+* Reads a line terminated by a CR LF pair or just by a LF. The CR and LF
- * are not returned by the function and are discarded from the buffer
- \*-------------------------------------------------------------------------*/
- static int recvline(p_buffer buf, luaL_Buffer *b) {
-@@ -252,7 +249,7 @@ static int recvline(p_buffer buf, luaL_Buffer *b) {
- static void buffer_skip(p_buffer buf, size_t count) {
- buf->received += count;
- buf->first += count;
-- if (buffer_isempty(buf))
-+ if (buffer_isempty(buf))
- buf->first = buf->last = 0;
- }
-
-diff --git a/src/compat.c b/src/compat.c
-new file mode 100644
-index 0000000..c2d99cb
---- /dev/null
-+++ b/src/compat.c
-@@ -0,0 +1,19 @@
-+#include "compat.h"
-+
-+#if LUA_VERSION_NUM==501
-+/*
-+** Adapted from Lua 5.2
-+*/
-+void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup) {
-+ luaL_checkstack(L, nup+1, "too many upvalues");
-+ for (; l->name != NULL; l++) { /* fill the table with given functions */
-+ int i;
-+ lua_pushstring(L, l->name);
-+ for (i = 0; i < nup; i++) /* copy upvalues to the top */
-+ lua_pushvalue(L, -(nup+1));
-+ lua_pushcclosure(L, l->func, nup); /* closure with those upvalues */
-+ lua_settable(L, -(nup + 3));
-+ }
-+ lua_pop(L, nup); /* remove upvalues */
-+}
-+#endif
-diff --git a/src/compat.h b/src/compat.h
-new file mode 100644
-index 0000000..7bf8010
---- /dev/null
-+++ b/src/compat.h
-@@ -0,0 +1,11 @@
-+#ifndef COMPAT_H
-+#define COMPAT_H
-+
-+#include "lua.h"
-+#include "lauxlib.h"
-+
-+#if LUA_VERSION_NUM==501
-+void luaL_setfuncs (lua_State *L, const luaL_Reg *l, int nup);
-+#endif
-+
-+#endif
-diff --git a/src/except.c b/src/except.c
-index 002e701..60b5005 100644
---- a/src/except.c
-+++ b/src/except.c
-@@ -6,9 +6,19 @@
-
- #include "lua.h"
- #include "lauxlib.h"
-+#include "compat.h"
-
- #include "except.h"
-
-+#if LUA_VERSION_NUM < 502
-+#define lua_pcallk(L, na, nr, err, ctx, cont) \
-+ (((void)ctx),((void)cont),lua_pcall(L, na, nr, err))
-+#endif
-+
-+#if LUA_VERSION_NUM < 503
-+typedef int lua_KContext;
-+#endif
-+
- /*=========================================================================*\
- * Internal function prototypes.
- \*=========================================================================*/
-@@ -29,18 +39,17 @@ static luaL_Reg func[] = {
- * Try factory
- \*-------------------------------------------------------------------------*/
- static void wrap(lua_State *L) {
-- lua_newtable(L);
-- lua_pushnumber(L, 1);
-- lua_pushvalue(L, -3);
-- lua_settable(L, -3);
-- lua_insert(L, -2);
-- lua_pop(L, 1);
-+ lua_createtable(L, 1, 0);
-+ lua_pushvalue(L, -2);
-+ lua_rawseti(L, -2, 1);
-+ lua_pushvalue(L, lua_upvalueindex(1));
-+ lua_setmetatable(L, -2);
- }
-
- static int finalize(lua_State *L) {
- if (!lua_toboolean(L, 1)) {
-- lua_pushvalue(L, lua_upvalueindex(1));
-- lua_pcall(L, 0, 0, 0);
-+ lua_pushvalue(L, lua_upvalueindex(2));
-+ lua_call(L, 0, 0);
- lua_settop(L, 2);
- wrap(L);
- lua_error(L);
-@@ -48,15 +57,17 @@ static int finalize(lua_State *L) {
- } else return lua_gettop(L);
- }
-
--static int do_nothing(lua_State *L) {
-+static int do_nothing(lua_State *L) {
- (void) L;
-- return 0;
-+ return 0;
- }
-
- static int global_newtry(lua_State *L) {
- lua_settop(L, 1);
- if (lua_isnil(L, 1)) lua_pushcfunction(L, do_nothing);
-- lua_pushcclosure(L, finalize, 1);
-+ lua_pushvalue(L, lua_upvalueindex(1));
-+ lua_insert(L, -2);
-+ lua_pushcclosure(L, finalize, 2);
- return 1;
- }
-
-@@ -64,27 +75,49 @@ static int global_newtry(lua_State *L) {
- * Protect factory
- \*-------------------------------------------------------------------------*/
- static int unwrap(lua_State *L) {
-- if (lua_istable(L, -1)) {
-- lua_pushnumber(L, 1);
-- lua_gettable(L, -2);
-- lua_pushnil(L);
-- lua_insert(L, -2);
-- return 1;
-- } else return 0;
-+ if (lua_istable(L, -1) && lua_getmetatable(L, -1)) {
-+ int r = lua_rawequal(L, -1, lua_upvalueindex(1));
-+ lua_pop(L, 1);
-+ if (r) {
-+ lua_pushnil(L);
-+ lua_rawgeti(L, -2, 1);
-+ return 1;
-+ }
-+ }
-+ return 0;
- }
-
--static int protected_(lua_State *L) {
-- lua_pushvalue(L, lua_upvalueindex(1));
-- lua_insert(L, 1);
-- if (lua_pcall(L, lua_gettop(L) - 1, LUA_MULTRET, 0) != 0) {
-+static int protected_finish(lua_State *L, int status, lua_KContext ctx) {
-+ (void)ctx;
-+ if (status != 0 && status != LUA_YIELD) {
- if (unwrap(L)) return 2;
-- else lua_error(L);
-- return 0;
-+ else return lua_error(L);
- } else return lua_gettop(L);
- }
-
-+#if LUA_VERSION_NUM == 502
-+static int protected_cont(lua_State *L) {
-+ int ctx = 0;
-+ int status = lua_getctx(L, &ctx);
-+ return protected_finish(L, status, ctx);
-+}
-+#else
-+#define protected_cont protected_finish
-+#endif
-+
-+static int protected_(lua_State *L) {
-+ int status;
-+ lua_pushvalue(L, lua_upvalueindex(2));
-+ lua_insert(L, 1);
-+ status = lua_pcallk(L, lua_gettop(L) - 1, LUA_MULTRET, 0, 0, protected_cont);
-+ return protected_finish(L, status, 0);
-+}
-+
- static int global_protect(lua_State *L) {
-- lua_pushcclosure(L, protected_, 1);
-+ lua_settop(L, 1);
-+ lua_pushvalue(L, lua_upvalueindex(1));
-+ lua_insert(L, 1);
-+ lua_pushcclosure(L, protected_, 2);
- return 1;
- }
-
-@@ -92,10 +125,9 @@ static int global_protect(lua_State *L) {
- * Init module
- \*-------------------------------------------------------------------------*/
- int except_open(lua_State *L) {
--#if LUA_VERSION_NUM > 501 && !defined(LUA_COMPAT_MODULE)
-- luaL_setfuncs(L, func, 0);
--#else
-- luaL_openlib(L, NULL, func, 0);
--#endif
-+ lua_newtable(L); /* metatable for wrapped exceptions */
-+ lua_pushboolean(L, 0);
-+ lua_setfield(L, -2, "__metatable");
-+ luaL_setfuncs(L, func, 1);
- return 0;
- }
-diff --git a/src/except.h b/src/except.h
-index 1e7a245..2497c05 100644
---- a/src/except.h
-+++ b/src/except.h
-@@ -9,21 +9,26 @@
- * error checking was taking a substantial amount of the coding. These
- * function greatly simplify the task of checking errors.
- *
--* The main idea is that functions should return nil as its first return
--* value when it finds an error, and return an error message (or value)
-+* The main idea is that functions should return nil as their first return
-+* values when they find an error, and return an error message (or value)
- * following nil. In case of success, as long as the first value is not nil,
- * the other values don't matter.
- *
- * The idea is to nest function calls with the "try" function. This function
--* checks the first value, and calls "error" on the second if the first is
--* nil. Otherwise, it returns all values it received.
-+* checks the first value, and, if it's falsy, wraps the second value in a
-+* table with metatable and calls "error" on it. Otherwise, it returns all
-+* values it received. Basically, it works like the Lua "assert" function,
-+* but it creates errors targeted specifically at "protect".
- *
--* The protect function returns a new function that behaves exactly like the
--* function it receives, but the new function doesn't throw exceptions: it
--* returns nil followed by the error message instead.
-+* The "newtry" function is a factory for "try" functions that call a
-+* finalizer in protected mode before calling "error".
- *
--* With these two function, it's easy to write functions that throw
--* exceptions on error, but that don't interrupt the user script.
-+* The "protect" function returns a new function that behaves exactly like
-+* the function it receives, but the new function catches exceptions thrown
-+* by "try" functions and returns nil followed by the error message instead.
-+*
-+* With these three functions, it's easy to write functions that throw
-+* exceptions on error, but that don't interrupt the user script.
- \*=========================================================================*/
-
- #include "lua.h"
-diff --git a/src/ftp.lua b/src/ftp.lua
-index ea1145b..e0c3cae 100644
---- a/src/ftp.lua
-+++ b/src/ftp.lua
-@@ -268,11 +268,20 @@ _M.command = socket.protect(function(cmdt)
- cmdt = override(cmdt)
- socket.try(cmdt.host, "missing hostname")
- socket.try(cmdt.command, "missing command")
-- local f = open(cmdt.host, cmdt.port, cmdt.create)
-+ local f = _M.open(cmdt.host, cmdt.port, cmdt.create)
- f:greet()
- f:login(cmdt.user, cmdt.password)
-- f.try(f.tp:command(cmdt.command, cmdt.argument))
-- if cmdt.check then f.try(f.tp:check(cmdt.check)) end
-+ if type(cmdt.command) == "table" then
-+ local argument = cmdt.argument or {}
-+ local check = cmdt.check or {}
-+ for i,cmd in ipairs(cmdt.command) do
-+ f.try(f.tp:command(cmd, argument[i]))
-+ if check[i] then f.try(f.tp:check(check[i])) end
-+ end
-+ else
-+ f.try(f.tp:command(cmdt.command, cmdt.argument))
-+ if cmdt.check then f.try(f.tp:check(cmdt.check)) end
-+ end
- f:quit()
- return f:close()
- end)
-@@ -282,4 +291,4 @@ _M.get = socket.protect(function(gett)
- else return tget(gett) end
- end)
-
--return _M
-\ No newline at end of file
-+return _M
-diff --git a/src/http.lua b/src/http.lua
-index ac4b2d6..d6bcc91 100644
---- a/src/http.lua
-+++ b/src/http.lua
-@@ -22,12 +22,15 @@ local _M = socket.http
- -- Program constants
- -----------------------------------------------------------------------------
- -- connection timeout in seconds
--TIMEOUT = 60
---- default port for document retrieval
--_M.PORT = 80
-+_M.TIMEOUT = 60
- -- user agent field sent in request
- _M.USERAGENT = socket._VERSION
-
-+-- supported schemes
-+local SCHEMES = { ["http"] = true }
-+-- default port for document retrieval
-+local PORT = 80
-+
- -----------------------------------------------------------------------------
- -- Reads MIME headers from a connection, unfolding where needed
- -----------------------------------------------------------------------------
-@@ -114,7 +117,7 @@ function _M.open(host, port, create)
- h.try = socket.newtry(function() h:close() end)
- -- set timeout before connecting
- h.try(c:settimeout(_M.TIMEOUT))
-- h.try(c:connect(host, port or _M.PORT))
-+ h.try(c:connect(host, port or PORT))
- -- here everything worked
- return h
- end
-@@ -186,7 +189,7 @@ end
- local function adjusturi(reqt)
- local u = reqt
- -- if there is a proxy, we need the full url. otherwise, just a part.
-- if not reqt.proxy and not PROXY then
-+ if not reqt.proxy and not _M.PROXY then
- u = {
- path = socket.try(reqt.path, "invalid path 'nil'"),
- params = reqt.params,
-@@ -198,7 +201,7 @@ local function adjusturi(reqt)
- end
-
- local function adjustproxy(reqt)
-- local proxy = reqt.proxy or PROXY
-+ local proxy = reqt.proxy or _M.PROXY
- if proxy then
- proxy = url.parse(proxy)
- return proxy.host, proxy.port or 3128
-@@ -209,17 +212,27 @@ end
-
- local function adjustheaders(reqt)
- -- default headers
-+ local host = string.gsub(reqt.authority, "^.-@", "")
- local lower = {
- ["user-agent"] = _M.USERAGENT,
-- ["host"] = reqt.host,
-+ ["host"] = host,
- ["connection"] = "close, TE",
- ["te"] = "trailers"
- }
- -- if we have authentication information, pass it along
- if reqt.user and reqt.password then
-- lower["authorization"] =
-+ lower["authorization"] =
- "Basic " .. (mime.b64(reqt.user .. ":" .. reqt.password))
- end
-+ -- if we have proxy authentication information, pass it along
-+ local proxy = reqt.proxy or _M.PROXY
-+ if proxy then
-+ proxy = url.parse(proxy)
-+ if proxy.user and proxy.password then
-+ lower["proxy-authorization"] =
-+ "Basic " .. (mime.b64(proxy.user .. ":" .. proxy.password))
-+ end
-+ end
- -- override with user headers
- for i,v in base.pairs(reqt.headers or lower) do
- lower[string.lower(i)] = v
-@@ -230,7 +243,7 @@ end
- -- default url parts
- local default = {
- host = "",
-- port = _M.PORT,
-+ port = PORT,
- path ="/",
- scheme = "http"
- }
-@@ -240,22 +253,27 @@ local function adjustrequest(reqt)
- local nreqt = reqt.url and url.parse(reqt.url, default) or {}
- -- explicit components override url
- for i,v in base.pairs(reqt) do nreqt[i] = v end
-- if nreqt.port == "" then nreqt.port = 80 end
-- socket.try(nreqt.host and nreqt.host ~= "",
-- "invalid host '" .. base.tostring(nreqt.host) .. "'")
-+ if nreqt.port == "" then nreqt.port = PORT end
-+ if not (nreqt.host and nreqt.host ~= "") then
-+ socket.try(nil, "invalid host '" .. base.tostring(nreqt.host) .. "'")
-+ end
- -- compute uri if user hasn't overriden
- nreqt.uri = reqt.uri or adjusturi(nreqt)
-- -- ajust host and port if there is a proxy
-- nreqt.host, nreqt.port = adjustproxy(nreqt)
- -- adjust headers in request
- nreqt.headers = adjustheaders(nreqt)
-+ -- ajust host and port if there is a proxy
-+ nreqt.host, nreqt.port = adjustproxy(nreqt)
- return nreqt
- end
-
- local function shouldredirect(reqt, code, headers)
-- return headers.location and
-- string.gsub(headers.location, "%s", "") ~= "" and
-- (reqt.redirect ~= false) and
-+ local location = headers.location
-+ if not location then return false end
-+ location = string.gsub(location, "%s", "")
-+ if location == "" then return false end
-+ local scheme = string.match(location, "^([%w][%w%+%-%.]*)%:")
-+ if scheme and not SCHEMES[scheme] then return false end
-+ return (reqt.redirect ~= false) and
- (code == 301 or code == 302 or code == 303 or code == 307) and
- (not reqt.method or reqt.method == "GET" or reqt.method == "HEAD")
- and (not reqt.nredirects or reqt.nredirects < 5)
-@@ -279,10 +297,10 @@ local trequest, tredirect
- source = reqt.source,
- sink = reqt.sink,
- headers = reqt.headers,
-- proxy = reqt.proxy,
-+ proxy = reqt.proxy,
- nredirects = (reqt.nredirects or 0) + 1,
- create = reqt.create
-- }
-+ }
- -- pass location header back as a hint we redirected
- headers = headers or {}
- headers.location = headers.location or location
-@@ -299,7 +317,7 @@ end
- h:sendheaders(nreqt.headers)
- -- if there is a body, send it
- if nreqt.source then
-- h:sendbody(nreqt.headers, nreqt.source, nreqt.step)
-+ h:sendbody(nreqt.headers, nreqt.source, nreqt.step)
- end
- local code, status = h:receivestatusline()
- -- if it is an HTTP/0.9 server, simply get the body and we are done
-@@ -309,13 +327,13 @@ end
- end
- local headers
- -- ignore any 100-continue messages
-- while code == 100 do
-+ while code == 100 do
- headers = h:receiveheaders()
- code, status = h:receivestatusline()
- end
- headers = h:receiveheaders()
- -- at this point we should have a honest reply from the server
-- -- we can't redirect if we already used the source, so we report the error
-+ -- we can't redirect if we already used the source, so we report the error
- if shouldredirect(nreqt, code, headers) and not nreqt.source then
- h:close()
- return tredirect(reqt, headers.location)
-@@ -351,4 +369,4 @@ _M.request = socket.protect(function(reqt, body)
- else return trequest(reqt) end
- end)
-
--return _M
-\ No newline at end of file
-+return _M
-diff --git a/src/inet.c b/src/inet.c
-index 1a411f6..f4c8404 100644
---- a/src/inet.c
-+++ b/src/inet.c
-@@ -8,6 +8,7 @@
-
- #include "lua.h"
- #include "lauxlib.h"
-+#include "compat.h"
-
- #include "inet.h"
-
-@@ -41,11 +42,7 @@ int inet_open(lua_State *L)
- {
- lua_pushstring(L, "dns");
- lua_newtable(L);
--#if LUA_VERSION_NUM > 501 && !defined(LUA_COMPAT_MODULE)
- luaL_setfuncs(L, func, 0);
--#else
-- luaL_openlib(L, NULL, func, 0);
--#endif
- lua_settable(L, -3);
- return 0;
- }
-@@ -97,7 +94,7 @@ static int inet_global_getnameinfo(lua_State *L) {
-
- memset(&hints, 0, sizeof(hints));
- hints.ai_socktype = SOCK_STREAM;
-- hints.ai_family = PF_UNSPEC;
-+ hints.ai_family = AF_UNSPEC;
-
- ret = getaddrinfo(host, serv, &hints, &resolved);
- if (ret != 0) {
-@@ -108,8 +105,8 @@ static int inet_global_getnameinfo(lua_State *L) {
-
- lua_newtable(L);
- for (i = 1, iter = resolved; iter; i++, iter = iter->ai_next) {
-- getnameinfo(iter->ai_addr, (socklen_t) iter->ai_addrlen,
-- hbuf, host? (socklen_t) sizeof(hbuf): 0,
-+ getnameinfo(iter->ai_addr, (socklen_t) iter->ai_addrlen,
-+ hbuf, host? (socklen_t) sizeof(hbuf): 0,
- sbuf, serv? (socklen_t) sizeof(sbuf): 0, 0);
- if (host) {
- lua_pushnumber(L, i);
-@@ -149,7 +146,7 @@ static int inet_global_toip(lua_State *L)
- int inet_optfamily(lua_State* L, int narg, const char* def)
- {
- static const char* optname[] = { "unspec", "inet", "inet6", NULL };
-- static int optvalue[] = { PF_UNSPEC, PF_INET, PF_INET6, 0 };
-+ static int optvalue[] = { AF_UNSPEC, AF_INET, AF_INET6, 0 };
-
- return optvalue[luaL_checkoption(L, narg, def, optname)];
- }
-@@ -170,7 +167,7 @@ static int inet_global_getaddrinfo(lua_State *L)
- int i = 1, ret = 0;
- memset(&hints, 0, sizeof(hints));
- hints.ai_socktype = SOCK_STREAM;
-- hints.ai_family = PF_UNSPEC;
-+ hints.ai_family = AF_UNSPEC;
- ret = getaddrinfo(hostname, NULL, &hints, &resolved);
- if (ret != 0) {
- lua_pushnil(L);
-@@ -180,9 +177,10 @@ static int inet_global_getaddrinfo(lua_State *L)
- lua_newtable(L);
- for (iterator = resolved; iterator; iterator = iterator->ai_next) {
- char hbuf[NI_MAXHOST];
-- ret = getnameinfo(iterator->ai_addr, (socklen_t) iterator->ai_addrlen,
-+ ret = getnameinfo(iterator->ai_addr, (socklen_t) iterator->ai_addrlen,
- hbuf, (socklen_t) sizeof(hbuf), NULL, 0, NI_NUMERICHOST);
- if (ret){
-+ freeaddrinfo(resolved);
- lua_pushnil(L);
- lua_pushstring(L, socket_gaistrerror(ret));
- return 2;
-@@ -200,6 +198,16 @@ static int inet_global_getaddrinfo(lua_State *L)
- lua_pushliteral(L, "inet6");
- lua_settable(L, -3);
- break;
-+ case AF_UNSPEC:
-+ lua_pushliteral(L, "family");
-+ lua_pushliteral(L, "unspec");
-+ lua_settable(L, -3);
-+ break;
-+ default:
-+ lua_pushliteral(L, "family");
-+ lua_pushliteral(L, "unknown");
-+ lua_settable(L, -3);
-+ break;
- }
- lua_pushliteral(L, "addr");
- lua_pushstring(L, hbuf);
-@@ -256,12 +264,11 @@ int inet_meth_getpeername(lua_State *L, p_socket ps, int family)
- }
- lua_pushstring(L, name);
- lua_pushinteger(L, (int) strtol(port, (char **) NULL, 10));
-- if (family == PF_INET) {
-- lua_pushliteral(L, "inet");
-- } else if (family == PF_INET6) {
-- lua_pushliteral(L, "inet6");
-- } else {
-- lua_pushliteral(L, "uknown family");
-+ switch (family) {
-+ case AF_INET: lua_pushliteral(L, "inet"); break;
-+ case AF_INET6: lua_pushliteral(L, "inet6"); break;
-+ case AF_UNSPEC: lua_pushliteral(L, "unspec"); break;
-+ default: lua_pushliteral(L, "unknown"); break;
- }
- return 3;
- }
-@@ -281,7 +288,7 @@ int inet_meth_getsockname(lua_State *L, p_socket ps, int family)
- lua_pushstring(L, socket_strerror(errno));
- return 2;
- }
-- err=getnameinfo((struct sockaddr *)&peer, peer_len,
-+ err=getnameinfo((struct sockaddr *)&peer, peer_len,
- name, INET6_ADDRSTRLEN, port, 6, NI_NUMERICHOST | NI_NUMERICSERV);
- if (err) {
- lua_pushnil(L);
-@@ -290,12 +297,11 @@ int inet_meth_getsockname(lua_State *L, p_socket ps, int family)
- }
- lua_pushstring(L, name);
- lua_pushstring(L, port);
-- if (family == PF_INET) {
-- lua_pushliteral(L, "inet");
-- } else if (family == PF_INET6) {
-- lua_pushliteral(L, "inet6");
-- } else {
-- lua_pushliteral(L, "uknown family");
-+ switch (family) {
-+ case AF_INET: lua_pushliteral(L, "inet"); break;
-+ case AF_INET6: lua_pushliteral(L, "inet6"); break;
-+ case AF_UNSPEC: lua_pushliteral(L, "unspec"); break;
-+ default: lua_pushliteral(L, "unknown"); break;
- }
- return 3;
- }
-@@ -346,8 +352,13 @@ static void inet_pushresolved(lua_State *L, struct hostent *hp)
- /*-------------------------------------------------------------------------*\
- * Tries to create a new inet socket
- \*-------------------------------------------------------------------------*/
--const char *inet_trycreate(p_socket ps, int family, int type) {
-- return socket_strerror(socket_create(ps, family, type, 0));
-+const char *inet_trycreate(p_socket ps, int family, int type, int protocol) {
-+ const char *err = socket_strerror(socket_create(ps, family, type, protocol));
-+ if (err == NULL && family == AF_INET6) {
-+ int yes = 1;
-+ setsockopt(*ps, IPPROTO_IPV6, IPV6_V6ONLY, (void *)&yes, sizeof(yes));
-+ }
-+ return err;
- }
-
- /*-------------------------------------------------------------------------*\
-@@ -356,21 +367,21 @@ const char *inet_trycreate(p_socket ps, int family, int type) {
- const char *inet_trydisconnect(p_socket ps, int family, p_timeout tm)
- {
- switch (family) {
-- case PF_INET: {
-+ case AF_INET: {
- struct sockaddr_in sin;
- memset((char *) &sin, 0, sizeof(sin));
- sin.sin_family = AF_UNSPEC;
- sin.sin_addr.s_addr = INADDR_ANY;
-- return socket_strerror(socket_connect(ps, (SA *) &sin,
-+ return socket_strerror(socket_connect(ps, (SA *) &sin,
- sizeof(sin), tm));
- }
-- case PF_INET6: {
-+ case AF_INET6: {
- struct sockaddr_in6 sin6;
-- struct in6_addr addrany = IN6ADDR_ANY_INIT;
-+ struct in6_addr addrany = IN6ADDR_ANY_INIT;
- memset((char *) &sin6, 0, sizeof(sin6));
- sin6.sin6_family = AF_UNSPEC;
- sin6.sin6_addr = addrany;
-- return socket_strerror(socket_connect(ps, (SA *) &sin6,
-+ return socket_strerror(socket_connect(ps, (SA *) &sin6,
- sizeof(sin6), tm));
- }
- }
-@@ -385,6 +396,7 @@ const char *inet_tryconnect(p_socket ps, int *family, const char *address,
- {
- struct addrinfo *iterator = NULL, *resolved = NULL;
- const char *err = NULL;
-+ int current_family = *family;
- /* try resolving */
- err = socket_gaistrerror(getaddrinfo(address, serv,
- connecthints, &resolved));
-@@ -399,23 +411,23 @@ const char *inet_tryconnect(p_socket ps, int *family, const char *address,
- * that shows up while iterating. if there was a
- * bind, all families will be the same and we will
- * not enter this branch. */
-- if (*family != iterator->ai_family) {
-+ if (current_family != iterator->ai_family || *ps == SOCKET_INVALID) {
- socket_destroy(ps);
-- err = socket_strerror(socket_create(ps, iterator->ai_family,
-- iterator->ai_socktype, iterator->ai_protocol));
-- if (err != NULL) {
-- freeaddrinfo(resolved);
-- return err;
-- }
-- *family = iterator->ai_family;
-- /* all sockets initially non-blocking */
-+ err = inet_trycreate(ps, iterator->ai_family,
-+ iterator->ai_socktype, iterator->ai_protocol);
-+ if (err) continue;
-+ current_family = iterator->ai_family;
-+ /* set non-blocking before connect */
- socket_setnonblocking(ps);
- }
- /* try connecting to remote address */
-- err = socket_strerror(socket_connect(ps, (SA *) iterator->ai_addr,
-+ err = socket_strerror(socket_connect(ps, (SA *) iterator->ai_addr,
- (socklen_t) iterator->ai_addrlen, tm));
-- /* if success, break out of loop */
-- if (err == NULL) break;
-+ /* if success or timeout is zero, break out of loop */
-+ if (err == NULL || timeout_iszero(tm)) {
-+ *family = current_family;
-+ break;
-+ }
- }
- freeaddrinfo(resolved);
- /* here, if err is set, we failed */
-@@ -425,29 +437,27 @@ const char *inet_tryconnect(p_socket ps, int *family, const char *address,
- /*-------------------------------------------------------------------------*\
- * Tries to accept a socket
- \*-------------------------------------------------------------------------*/
--const char *inet_tryaccept(p_socket server, int family, p_socket client,
-- p_timeout tm)
--{
-+const char *inet_tryaccept(p_socket server, int family, p_socket client,
-+ p_timeout tm) {
- socklen_t len;
- t_sockaddr_storage addr;
-- if (family == PF_INET6) {
-- len = sizeof(struct sockaddr_in6);
-- } else {
-- len = sizeof(struct sockaddr_in);
-- }
-- return socket_strerror(socket_accept(server, client, (SA *) &addr,
-+ switch (family) {
-+ case AF_INET6: len = sizeof(struct sockaddr_in6); break;
-+ case AF_INET: len = sizeof(struct sockaddr_in); break;
-+ default: len = sizeof(addr); break;
-+ }
-+ return socket_strerror(socket_accept(server, client, (SA *) &addr,
- &len, tm));
- }
-
- /*-------------------------------------------------------------------------*\
- * Tries to bind socket to (address, port)
- \*-------------------------------------------------------------------------*/
--const char *inet_trybind(p_socket ps, const char *address, const char *serv,
-- struct addrinfo *bindhints)
--{
-+const char *inet_trybind(p_socket ps, int *family, const char *address,
-+ const char *serv, struct addrinfo *bindhints) {
- struct addrinfo *iterator = NULL, *resolved = NULL;
- const char *err = NULL;
-- t_socket sock = *ps;
-+ int current_family = *family;
- /* translate luasocket special values to C */
- if (strcmp(address, "*") == 0) address = NULL;
- if (!serv) serv = "0";
-@@ -459,35 +469,32 @@ const char *inet_trybind(p_socket ps, const char *address, const char *serv,
- }
- /* iterate over resolved addresses until one is good */
- for (iterator = resolved; iterator; iterator = iterator->ai_next) {
-- if(sock == SOCKET_INVALID) {
-- err = socket_strerror(socket_create(&sock, iterator->ai_family,
-- iterator->ai_socktype, iterator->ai_protocol));
-- if(err)
-- continue;
-+ if (current_family != iterator->ai_family || *ps == SOCKET_INVALID) {
-+ socket_destroy(ps);
-+ err = inet_trycreate(ps, iterator->ai_family,
-+ iterator->ai_socktype, iterator->ai_protocol);
-+ if (err) continue;
-+ current_family = iterator->ai_family;
- }
- /* try binding to local address */
-- err = socket_strerror(socket_bind(&sock,
-- (SA *) iterator->ai_addr,
-+ err = socket_strerror(socket_bind(ps, (SA *) iterator->ai_addr,
- (socklen_t) iterator->ai_addrlen));
--
- /* keep trying unless bind succeeded */
-- if (err) {
-- if(sock != *ps)
-- socket_destroy(&sock);
-- } else {
-- /* remember what we connected to, particularly the family */
-- *bindhints = *iterator;
-+ if (err == NULL) {
-+ *family = current_family;
-+ /* set to non-blocking after bind */
-+ socket_setnonblocking(ps);
- break;
- }
- }
- /* cleanup and return error */
- freeaddrinfo(resolved);
-- *ps = sock;
-+ /* here, if err is set, we failed */
- return err;
- }
-
- /*-------------------------------------------------------------------------*\
--* Some systems do not provide these so that we provide our own.
-+* Some systems do not provide these so that we provide our own.
- \*-------------------------------------------------------------------------*/
- #ifdef LUASOCKET_INET_ATON
- int inet_aton(const char *cp, struct in_addr *inp)
-@@ -512,7 +519,7 @@ int inet_aton(const char *cp, struct in_addr *inp)
- #endif
-
- #ifdef LUASOCKET_INET_PTON
--int inet_pton(int af, const char *src, void *dst)
-+int inet_pton(int af, const char *src, void *dst)
- {
- struct addrinfo hints, *res;
- int ret = 1;
-@@ -529,7 +536,7 @@ int inet_pton(int af, const char *src, void *dst)
- } else {
- ret = -1;
- }
-- freeaddrinfo(res);
-+ freeaddrinfo(res);
- return ret;
- }
-
-diff --git a/src/inet.h b/src/inet.h
-index 1f1a96a..feb3541 100644
---- a/src/inet.h
-+++ b/src/inet.h
-@@ -1,12 +1,12 @@
--#ifndef INET_H
--#define INET_H
-+#ifndef INET_H
-+#define INET_H
- /*=========================================================================*\
- * Internet domain functions
- * LuaSocket toolkit
- *
- * This module implements the creation and connection of internet domain
- * sockets, on top of the socket.h interface, and the interface of with the
--* resolver.
-+* resolver.
- *
- * The function inet_aton is provided for the platforms where it is not
- * available. The module also implements the interface of the internet
-@@ -24,11 +24,11 @@
-
- int inet_open(lua_State *L);
-
--const char *inet_trycreate(p_socket ps, int family, int type);
-+const char *inet_trycreate(p_socket ps, int family, int type, int protocol);
- const char *inet_tryconnect(p_socket ps, int *family, const char *address,
- const char *serv, p_timeout tm, struct addrinfo *connecthints);
--const char *inet_trybind(p_socket ps, const char *address, const char *serv,
-- struct addrinfo *bindhints);
-+const char *inet_trybind(p_socket ps, int *family, const char *address,
-+ const char *serv, struct addrinfo *bindhints);
- const char *inet_trydisconnect(p_socket ps, int family, p_timeout tm);
- const char *inet_tryaccept(p_socket server, int family, p_socket client, p_timeout tm);
-
-diff --git a/src/io.c b/src/io.c
-index 35f46f7..a4230ce 100644
---- a/src/io.c
-+++ b/src/io.c
-@@ -25,6 +25,6 @@ const char *io_strerror(int err) {
- case IO_DONE: return NULL;
- case IO_CLOSED: return "closed";
- case IO_TIMEOUT: return "timeout";
-- default: return "unknown error";
-+ default: return "unknown error";
- }
- }
-diff --git a/src/io.h b/src/io.h
-index 76a3e58..8cca08a 100644
---- a/src/io.h
-+++ b/src/io.h
-@@ -22,7 +22,7 @@ enum {
- IO_DONE = 0, /* operation completed successfully */
- IO_TIMEOUT = -1, /* operation timed out */
- IO_CLOSED = -2, /* the connection has been closed */
-- IO_UNKNOWN = -3
-+ IO_UNKNOWN = -3
- };
-
- /* interface to error message function */
-diff --git a/src/ltn12.lua b/src/ltn12.lua
-index 5b10f56..575c5a7 100644
---- a/src/ltn12.lua
-+++ b/src/ltn12.lua
-@@ -9,6 +9,7 @@
- -----------------------------------------------------------------------------
- local string = require("string")
- local table = require("table")
-+local unpack = unpack or table.unpack
- local base = _G
- local _M = {}
- if module then -- heuristic for exporting a global package table
-@@ -21,6 +22,9 @@ _M.source = source
- _M.sink = sink
- _M.pump = pump
-
-+local unpack = unpack or table.unpack
-+local select = base.select
-+
- -- 2048 seems to be better in windows...
- _M.BLOCKSIZE = 2048
- _M._VERSION = "LTN12 1.0.3"
-@@ -42,7 +46,7 @@ end
- -- (thanks to Wim Couwenberg)
- function filter.chain(...)
- local arg = {...}
-- local n = select('#',...)
-+ local n = base.select('#',...)
- local top, index = 1, 1
- local retry = ""
- return function(chunk)
-@@ -139,7 +143,9 @@ function source.rewind(src)
- end
- end
-
--function source.chain(src, f)
-+-- chains a source with one or several filter(s)
-+function source.chain(src, f, ...)
-+ if ... then f=filter.chain(f, ...) end
- base.assert(src and f)
- local last_in, last_out = "", ""
- local state = "feeding"
-@@ -254,8 +260,13 @@ function sink.error(err)
- end
- end
-
---- chains a sink with a filter
--function sink.chain(f, snk)
-+-- chains a sink with one or several filter(s)
-+function sink.chain(f, snk, ...)
-+ if ... then
-+ local args = { f, snk, ... }
-+ snk = table.remove(args, #args)
-+ f = filter.chain(unpack(args))
-+ end
- base.assert(f and snk)
- return function(chunk, err)
- if chunk ~= "" then
-diff --git a/src/luasocket.c b/src/luasocket.c
-index e6ee747..7d9c802 100644
---- a/src/luasocket.c
-+++ b/src/luasocket.c
-@@ -17,7 +17,7 @@
- \*=========================================================================*/
- #include "lua.h"
- #include "lauxlib.h"
--
-+#include "compat.h"
-
- /*=========================================================================*\
- * LuaSocket includes
-@@ -64,7 +64,7 @@ static luaL_Reg func[] = {
- * Skip a few arguments
- \*-------------------------------------------------------------------------*/
- static int global_skip(lua_State *L) {
-- int amount = luaL_checkint(L, 1);
-+ int amount = luaL_checkinteger(L, 1);
- int ret = lua_gettop(L) - amount - 1;
- return ret >= 0 ? ret : 0;
- }
-@@ -78,26 +78,14 @@ static int global_unload(lua_State *L) {
- return 0;
- }
-
--#if LUA_VERSION_NUM > 501
--int luaL_typerror (lua_State *L, int narg, const char *tname) {
-- const char *msg = lua_pushfstring(L, "%s expected, got %s",
-- tname, luaL_typename(L, narg));
-- return luaL_argerror(L, narg, msg);
--}
--#endif
--
- /*-------------------------------------------------------------------------*\
- * Setup basic stuff.
- \*-------------------------------------------------------------------------*/
- static int base_open(lua_State *L) {
- if (socket_open()) {
- /* export functions (and leave namespace table on top of stack) */
--#if LUA_VERSION_NUM > 501 && !defined(LUA_COMPAT_MODULE)
- lua_newtable(L);
- luaL_setfuncs(L, func, 0);
--#else
-- luaL_openlib(L, "socket", func, 0);
--#endif
- #ifdef LUASOCKET_DEBUG
- lua_pushstring(L, "_DEBUG");
- lua_pushboolean(L, 1);
-diff --git a/src/makefile b/src/makefile
-index c24e61b..adf687f 100644
---- a/src/makefile
-+++ b/src/makefile
-@@ -20,15 +20,17 @@ PLAT?=linux
- # lua version to build against
- LUAV?=5.1
-
-+# MYCFLAGS: to be set by user if needed
-+MYCFLAGS=
-+
-+# MYLDFLAGS: to be set by user if needed
-+MYLDFLAGS=
-+
- # DEBUG: NODEBUG DEBUG
- # debug mode causes luasocket to collect and returns timing information useful
- # for testing and debugging luasocket itself
- DEBUG?=NODEBUG
-
--# COMPAT: COMPAT NOCOMPAT
--# when compiling for 5.2, use LUA_COMPAT_MODULE
--COMPAT?=NOCOMPAT
--
- # where lua headers are found for macosx builds
- # LUAINC_macosx:
- # /opt/local/include
-@@ -40,7 +42,6 @@ LUAPREFIX_macosx?=/opt/local
- CDIR_macosx?=lib/lua/$(LUAV)
- LDIR_macosx?=share/lua/$(LUAV)
-
--
- # LUAINC_linux:
- # /usr/include/lua$(LUAV)
- # /usr/local/include
-@@ -52,8 +53,17 @@ LUAPREFIX_linux?=/usr/local
- CDIR_linux?=lib/lua/$(LUAV)
- LDIR_linux?=share/lua/$(LUAV)
-
-+# LUAINC_freebsd:
-+# /usr/local/include/lua$(LUAV)
-+# where lua headers are found for freebsd builds
-+LUAINC_freebsd_base?=/usr/local/include/
-+LUAINC_freebsd?=$(LUAINC_freebsd_base)/lua$(LUAV)
-+LUAPREFIX_freebsd?=/usr/local/
-+CDIR_freebsd?=lib/lua/$(LUAV)
-+LDIR_freebsd?=share/lua/$(LUAV)
-+
- # where lua headers are found for mingw builds
--# LUAINC_mingw:
-+# LUAINC_mingw:
- # /opt/local/include
- LUAINC_mingw_base?=/usr/include
- LUAINC_mingw?=$(LUAINC_mingw_base)/lua/$(LUAV)
-@@ -67,13 +77,21 @@ LDIR_mingw?=lua/$(LUAV)/lua
- # LUAINC_win32:
- # LUALIB_win32:
- # where lua headers and libraries are found for win32 builds
--LUAINC_win32_base?=
--LUAINC_win32?=$(LUAINC_win32_base)/lua/$(LUAV)
--PLATFORM_win32?=Release
- LUAPREFIX_win32?=
--CDIR_win32?=lua/$(LUAV)/$(PLATFORM_win32)
--LDIR_win32?=lua/$(LUAV)/$(PLATFORM_win32)/lua
--LUALIB_win32?=$(LUAPREFIX_win32)/lua/$(LUAV)/$(PLATFORM_win32)
-+LUAINC_win32?=$(LUAPREFIX_win32)/include/lua/$(LUAV)
-+PLATFORM_win32?=Release
-+CDIR_win32?=bin/lua/$(LUAV)/$(PLATFORM_win32)
-+LDIR_win32?=bin/lua/$(LUAV)/$(PLATFORM_win32)/lua
-+LUALIB_win32?=$(LUAPREFIX_win32)/lib/lua/$(LUAV)/$(PLATFORM_win32)
-+LUALIBNAME_win32?=lua$(subst .,,$(LUAV)).lib
-+
-+
-+# LUAINC_solaris:
-+LUAINC_solaris_base?=/usr/include
-+LUAINC_solaris?=$(LUAINC_solaris_base)/lua/$(LUAV)
-+LUAPREFIX_solaris?=/usr/local
-+CDIR_solaris?=lib/lua/$(LUAV)
-+LDIR_solaris?=share/lua/$(LUAV)
-
- # prefix: /usr/local /usr /opt/local /sw
- # the top of the default install tree
-@@ -121,7 +139,7 @@ print:
- #------
- # Supported platforms
- #
--PLATS= macosx linux win32 mingw
-+PLATS= macosx linux win32 mingw solaris
-
- #------
- # Compiler and linker settings
-@@ -129,11 +147,11 @@ PLATS= macosx linux win32 mingw
- SO_macosx=so
- O_macosx=o
- CC_macosx=gcc
--DEF_macosx= -DLUASOCKET_$(DEBUG) -DUNIX_HAS_SUN_LEN -DLUA_$(COMPAT)_MODULE \
-+DEF_macosx= -DLUASOCKET_$(DEBUG) -DUNIX_HAS_SUN_LEN \
- -DLUASOCKET_API='__attribute__((visibility("default")))' \
- -DUNIX_API='__attribute__((visibility("default")))' \
- -DMIME_API='__attribute__((visibility("default")))'
--CFLAGS_macosx= -I$(LUAINC) $(DEF) -pedantic -Wall -O2 -fno-common \
-+CFLAGS_macosx= -I$(LUAINC) $(DEF) -Wall -O2 -fno-common \
- -fvisibility=hidden
- LDFLAGS_macosx= -bundle -undefined dynamic_lookup -o
- LD_macosx= export MACOSX_DEPLOYMENT_TARGET="10.3"; gcc
-@@ -145,11 +163,11 @@ SOCKET_macosx=usocket.o
- SO_linux=so
- O_linux=o
- CC_linux=gcc
--DEF_linux=-DLUASOCKET_$(DEBUG) -DLUA_$(COMPAT)_MODULE \
-+DEF_linux=-DLUASOCKET_$(DEBUG) \
- -DLUASOCKET_API='__attribute__((visibility("default")))' \
- -DUNIX_API='__attribute__((visibility("default")))' \
- -DMIME_API='__attribute__((visibility("default")))'
--CFLAGS_linux= -I$(LUAINC) $(DEF) -pedantic -Wall -Wshadow -Wextra \
-+CFLAGS_linux= -I$(LUAINC) $(DEF) -Wall -Wshadow -Wextra \
- -Wimplicit -O2 -ggdb3 -fpic -fvisibility=hidden
- LDFLAGS_linux=-O -shared -fpic -o
- LD_linux=gcc
-@@ -157,14 +175,46 @@ SOCKET_linux=usocket.o
-
- #------
- # Compiler and linker settings
-+# for FreeBSD
-+SO_freebsd=so
-+O_freebsd=o
-+CC_freebsd=gcc
-+DEF_freebsd=-DLUASOCKET_$(DEBUG) \
-+ -DLUASOCKET_API='__attribute__((visibility("default")))' \
-+ -DUNIX_API='__attribute__((visibility("default")))' \
-+ -DMIME_API='__attribute__((visibility("default")))'
-+CFLAGS_freebsd= -I$(LUAINC) $(DEF) -Wall -Wshadow -Wextra \
-+ -Wimplicit -O2 -ggdb3 -fpic -fvisibility=hidden
-+LDFLAGS_freebsd=-O -shared -fpic -o
-+LD_freebsd=gcc
-+SOCKET_freebsd=usocket.o
-+
-+#------
-+# Compiler and linker settings
-+# for Solaris
-+SO_solaris=so
-+O_solaris=o
-+CC_solaris=gcc
-+DEF_solaris=-DLUASOCKET_$(DEBUG) \
-+ -DLUASOCKET_API='__attribute__((visibility("default")))' \
-+ -DUNIX_API='__attribute__((visibility("default")))' \
-+ -DMIME_API='__attribute__((visibility("default")))'
-+CFLAGS_solaris=-I$(LUAINC) $(DEF) -Wall -Wshadow -Wextra \
-+ -Wimplicit -O2 -ggdb3 -fpic -fvisibility=hidden
-+LDFLAGS_solaris=-lnsl -lsocket -lresolv -O -shared -fpic -o
-+LD_solaris=gcc
-+SOCKET_solaris=usocket.o
-+
-+#------
-+# Compiler and linker settings
- # for MingW
- SO_mingw=dll
- O_mingw=o
- CC_mingw=gcc
--DEF_mingw= -DLUASOCKET_INET_PTON -DLUASOCKET_$(DEBUG) -DLUA_$(COMPAT)_MODULE \
-+DEF_mingw= -DLUASOCKET_INET_PTON -DLUASOCKET_$(DEBUG) \
- -DWINVER=0x0501 -DLUASOCKET_API='__declspec(dllexport)' \
- -DMIME_API='__declspec(dllexport)'
--CFLAGS_mingw= -I$(LUAINC) $(DEF) -pedantic -Wall -O2 -fno-common \
-+CFLAGS_mingw= -I$(LUAINC) $(DEF) -Wall -O2 -fno-common \
- -fvisibility=hidden
- LDFLAGS_mingw= $(LUALIB) -shared -Wl,-s -lws2_32 -o
- LD_mingw=gcc
-@@ -179,8 +229,7 @@ O_win32=obj
- CC_win32=cl
- DEF_win32= //D "WIN32" //D "NDEBUG" //D "_WINDOWS" //D "_USRDLL" \
- //D "LUASOCKET_API=__declspec(dllexport)" //D "_CRT_SECURE_NO_WARNINGS" \
-- //D "_WINDLL" //D "LUA_$(COMPAT)_MODULE" \
-- //D "MIME_API=__declspec(dllexport)" \
-+ //D "_WINDLL" //D "MIME_API=__declspec(dllexport)" \
- //D "LUASOCKET_$(DEBUG)"
- CFLAGS_win32=//I "$(LUAINC)" $(DEF) //O2 //Ot //MD //W3 //nologo
- LDFLAGS_win32= //nologo //link //NOLOGO //DLL //INCREMENTAL:NO \
-@@ -188,7 +237,7 @@ LDFLAGS_win32= //nologo //link //NOLOGO //DLL //INCREMENTAL:NO \
- //MANIFESTUAC:"level='asInvoker' uiAccess='false'" \
- //SUBSYSTEM:WINDOWS //OPT:REF //OPT:ICF //DYNAMICBASE:NO \
- //MACHINE:X86 /LIBPATH:"$(shell cmd //c echo $(LUALIB))" \
-- lua$(subst .,,$(LUAV)).lib ws2_32.lib //OUT:
-+ $(LUALIBNAME_win32) ws2_32.lib //OUT:
- LD_win32=cl
- SOCKET_win32=wsocket.obj
-
-@@ -204,8 +253,8 @@ SO=$(SO_$(PLAT))
- O=$(O_$(PLAT))
- SOCKET_V=3.0-rc1
- MIME_V=1.0.3
--SOCKET_SO=socket.$(SO).$(SOCKET_V)
--MIME_SO=mime.$(SO).$(MIME_V)
-+SOCKET_SO=socket-$(SOCKET_V).$(SO)
-+MIME_SO=mime-$(MIME_V).$(SO)
- UNIX_SO=unix.$(SO)
- SERIAL_SO=serial.$(SO)
- SOCKET=$(SOCKET_$(PLAT))
-@@ -215,8 +264,8 @@ SOCKET=$(SOCKET_$(PLAT))
- #
- CC=$(CC_$(PLAT))
- DEF=$(DEF_$(PLAT))
--CFLAGS=$(CFLAGS_$(PLAT))
--LDFLAGS=$(LDFLAGS_$(PLAT))
-+CFLAGS=$(MYCFLAGS) $(CFLAGS_$(PLAT))
-+LDFLAGS=$(MYLDFLAGS) $(LDFLAGS_$(PLAT))
- LD=$(LD_$(PLAT))
- LUAINC= $(LUAINC_$(PLAT))
- LUALIB= $(LUALIB_$(PLAT))
-@@ -230,6 +279,7 @@ SOCKET_OBJS= \
- buffer.$(O) \
- io.$(O) \
- auxiliar.$(O) \
-+ compat.$(O) \
- options.$(O) \
- inet.$(O) \
- $(SOCKET) \
-@@ -242,7 +292,8 @@ SOCKET_OBJS= \
- # Modules belonging mime-core
- #
- MIME_OBJS= \
-- mime.$(O)
-+ mime.$(O) \
-+ compat.$(O)
-
- #------
- # Modules belonging unix (local domain sockets)
-@@ -259,7 +310,7 @@ UNIX_OBJS=\
- #------
- # Modules belonging to serial (device streams)
- #
--SERIAL_OBJS:=\
-+SERIAL_OBJS=\
- buffer.$(O) \
- auxiliar.$(O) \
- options.$(O) \
-@@ -289,6 +340,10 @@ TO_TOP_LDIR= \
- #
- default: $(PLAT)
-
-+
-+freebsd:
-+ $(MAKE) all-unix PLAT=freebsd
-+
- macosx:
- $(MAKE) all-unix PLAT=macosx
-
-@@ -300,6 +355,9 @@ linux:
-
- mingw:
- $(MAKE) all PLAT=mingw
-+
-+solaris:
-+ $(MAKE) all-unix PLAT=solaris
-
- none:
- @echo "Please run"
-@@ -349,6 +407,7 @@ clean:
- #------
- # List of dependencies
- #
-+compat.$(O): compat.c compat.h
- auxiliar.$(O): auxiliar.c auxiliar.h
- buffer.$(O): buffer.c buffer.h io.h timeout.h
- except.$(O): except.c except.h
-diff --git a/src/mbox.lua b/src/mbox.lua
-index 7724ae2..ed9e781 100644
---- a/src/mbox.lua
-+++ b/src/mbox.lua
-@@ -61,7 +61,7 @@ function _M.parse_from(from)
- end
-
- function _M.split_mbox(mbox_s)
-- mbox = {}
-+ local mbox = {}
- mbox_s = string.gsub(mbox_s, "\r\n", "\n") .."\n\nFrom \n"
- local nj, i, j = 1, 1, 1
- while 1 do
-diff --git a/src/mime.c b/src/mime.c
-index dd37dcf..ed44104 100644
---- a/src/mime.c
-+++ b/src/mime.c
-@@ -6,10 +6,7 @@
-
- #include "lua.h"
- #include "lauxlib.h"
--
--#if !defined(LUA_VERSION_NUM) || (LUA_VERSION_NUM < 501)
--#include "compat-5.1.h"
--#endif
-+#include "compat.h"
-
- #include "mime.h"
-
-@@ -41,7 +38,7 @@ static size_t b64decode(UC c, UC *input, size_t size, luaL_Buffer *buffer);
- static void qpsetup(UC *class, UC *unbase);
- static void qpquote(UC c, luaL_Buffer *buffer);
- static size_t qpdecode(UC c, UC *input, size_t size, luaL_Buffer *buffer);
--static size_t qpencode(UC c, UC *input, size_t size,
-+static size_t qpencode(UC c, UC *input, size_t size,
- const char *marker, luaL_Buffer *buffer);
- static size_t qppad(UC *input, size_t size, luaL_Buffer *buffer);
-
-@@ -81,12 +78,8 @@ static UC b64unbase[256];
- \*-------------------------------------------------------------------------*/
- MIME_API int luaopen_mime_core(lua_State *L)
- {
--#if LUA_VERSION_NUM > 501 && !defined(LUA_COMPAT_MODULE)
- lua_newtable(L);
- luaL_setfuncs(L, func, 0);
--#else
-- luaL_openlib(L, "mime", func, 0);
--#endif
- /* make version string available to scripts */
- lua_pushstring(L, "_VERSION");
- lua_pushstring(L, MIME_VERSION);
-@@ -103,15 +96,15 @@ MIME_API int luaopen_mime_core(lua_State *L)
- /*-------------------------------------------------------------------------*\
- * Incrementaly breaks a string into lines. The string can have CRLF breaks.
- * A, n = wrp(l, B, length)
--* A is a copy of B, broken into lines of at most 'length' bytes.
--* 'l' is how many bytes are left for the first line of B.
--* 'n' is the number of bytes left in the last line of A.
-+* A is a copy of B, broken into lines of at most 'length' bytes.
-+* 'l' is how many bytes are left for the first line of B.
-+* 'n' is the number of bytes left in the last line of A.
- \*-------------------------------------------------------------------------*/
- static int mime_global_wrp(lua_State *L)
- {
- size_t size = 0;
- int left = (int) luaL_checknumber(L, 1);
-- const UC *input = (UC *) luaL_optlstring(L, 2, NULL, &size);
-+ const UC *input = (const UC *) luaL_optlstring(L, 2, NULL, &size);
- const UC *last = input + size;
- int length = (int) luaL_optnumber(L, 3, 76);
- luaL_Buffer buffer;
-@@ -123,7 +116,7 @@ static int mime_global_wrp(lua_State *L)
- else lua_pushnil(L);
- lua_pushnumber(L, length);
- return 2;
-- }
-+ }
- luaL_buffinit(L, &buffer);
- while (input < last) {
- switch (*input) {
-@@ -150,9 +143,9 @@ static int mime_global_wrp(lua_State *L)
- }
-
- /*-------------------------------------------------------------------------*\
--* Fill base64 decode map.
-+* Fill base64 decode map.
- \*-------------------------------------------------------------------------*/
--static void b64setup(UC *unbase)
-+static void b64setup(UC *unbase)
- {
- int i;
- for (i = 0; i <= 255; i++) unbase[i] = (UC) 255;
-@@ -161,11 +154,11 @@ static void b64setup(UC *unbase)
- }
-
- /*-------------------------------------------------------------------------*\
--* Acumulates bytes in input buffer until 3 bytes are available.
-+* Acumulates bytes in input buffer until 3 bytes are available.
- * Translate the 3 bytes into Base64 form and append to buffer.
- * Returns new number of bytes in buffer.
- \*-------------------------------------------------------------------------*/
--static size_t b64encode(UC c, UC *input, size_t size,
-+static size_t b64encode(UC c, UC *input, size_t size,
- luaL_Buffer *buffer)
- {
- input[size++] = c;
-@@ -174,7 +167,7 @@ static size_t b64encode(UC c, UC *input, size_t size,
- unsigned long value = 0;
- value += input[0]; value <<= 8;
- value += input[1]; value <<= 8;
-- value += input[2];
-+ value += input[2];
- code[3] = b64base[value & 0x3f]; value >>= 6;
- code[2] = b64base[value & 0x3f]; value >>= 6;
- code[1] = b64base[value & 0x3f]; value >>= 6;
-@@ -186,11 +179,11 @@ static size_t b64encode(UC c, UC *input, size_t size,
- }
-
- /*-------------------------------------------------------------------------*\
--* Encodes the Base64 last 1 or 2 bytes and adds padding '='
-+* Encodes the Base64 last 1 or 2 bytes and adds padding '='
- * Result, if any, is appended to buffer.
- * Returns 0.
- \*-------------------------------------------------------------------------*/
--static size_t b64pad(const UC *input, size_t size,
-+static size_t b64pad(const UC *input, size_t size,
- luaL_Buffer *buffer)
- {
- unsigned long value = 0;
-@@ -203,7 +196,7 @@ static size_t b64pad(const UC *input, size_t size,
- luaL_addlstring(buffer, (char *) code, 4);
- break;
- case 2:
-- value = input[0]; value <<= 8;
-+ value = input[0]; value <<= 8;
- value |= input[1]; value <<= 2;
- code[2] = b64base[value & 0x3f]; value >>= 6;
- code[1] = b64base[value & 0x3f]; value >>= 6;
-@@ -217,11 +210,11 @@ static size_t b64pad(const UC *input, size_t size,
- }
-
- /*-------------------------------------------------------------------------*\
--* Acumulates bytes in input buffer until 4 bytes are available.
-+* Acumulates bytes in input buffer until 4 bytes are available.
- * Translate the 4 bytes from Base64 form and append to buffer.
- * Returns new number of bytes in buffer.
- \*-------------------------------------------------------------------------*/
--static size_t b64decode(UC c, UC *input, size_t size,
-+static size_t b64decode(UC c, UC *input, size_t size,
- luaL_Buffer *buffer)
- {
- /* ignore invalid characters */
-@@ -239,7 +232,7 @@ static size_t b64decode(UC c, UC *input, size_t size,
- decoded[1] = (UC) (value & 0xff); value >>= 8;
- decoded[0] = (UC) value;
- /* take care of paddding */
-- valid = (input[2] == '=') ? 1 : (input[3] == '=') ? 2 : 3;
-+ valid = (input[2] == '=') ? 1 : (input[3] == '=') ? 2 : 3;
- luaL_addlstring(buffer, (char *) decoded, valid);
- return 0;
- /* need more data */
-@@ -251,7 +244,7 @@ static size_t b64decode(UC c, UC *input, size_t size,
- * A, B = b64(C, D)
- * A is the encoded version of the largest prefix of C .. D that is
- * divisible by 3. B has the remaining bytes of C .. D, *without* encoding.
--* The easiest thing would be to concatenate the two strings and
-+* The easiest thing would be to concatenate the two strings and
- * encode the result, but we can't afford that or Lua would dupplicate
- * every chunk we received.
- \*-------------------------------------------------------------------------*/
-@@ -259,7 +252,7 @@ static int mime_global_b64(lua_State *L)
- {
- UC atom[3];
- size_t isize = 0, asize = 0;
-- const UC *input = (UC *) luaL_optlstring(L, 1, NULL, &isize);
-+ const UC *input = (const UC *) luaL_optlstring(L, 1, NULL, &isize);
- const UC *last = input + isize;
- luaL_Buffer buffer;
- /* end-of-input blackhole */
-@@ -272,9 +265,9 @@ static int mime_global_b64(lua_State *L)
- lua_settop(L, 2);
- /* process first part of the input */
- luaL_buffinit(L, &buffer);
-- while (input < last)
-+ while (input < last)
- asize = b64encode(*input++, atom, asize, &buffer);
-- input = (UC *) luaL_optlstring(L, 2, NULL, &isize);
-+ input = (const UC *) luaL_optlstring(L, 2, NULL, &isize);
- /* if second part is nil, we are done */
- if (!input) {
- size_t osize = 0;
-@@ -288,7 +281,7 @@ static int mime_global_b64(lua_State *L)
- }
- /* otherwise process the second part */
- last = input + isize;
-- while (input < last)
-+ while (input < last)
- asize = b64encode(*input++, atom, asize, &buffer);
- luaL_pushresult(&buffer);
- lua_pushlstring(L, (char *) atom, asize);
-@@ -305,7 +298,7 @@ static int mime_global_unb64(lua_State *L)
- {
- UC atom[4];
- size_t isize = 0, asize = 0;
-- const UC *input = (UC *) luaL_optlstring(L, 1, NULL, &isize);
-+ const UC *input = (const UC *) luaL_optlstring(L, 1, NULL, &isize);
- const UC *last = input + isize;
- luaL_Buffer buffer;
- /* end-of-input blackhole */
-@@ -318,9 +311,9 @@ static int mime_global_unb64(lua_State *L)
- lua_settop(L, 2);
- /* process first part of the input */
- luaL_buffinit(L, &buffer);
-- while (input < last)
-+ while (input < last)
- asize = b64decode(*input++, atom, asize, &buffer);
-- input = (UC *) luaL_optlstring(L, 2, NULL, &isize);
-+ input = (const UC *) luaL_optlstring(L, 2, NULL, &isize);
- /* if second is nil, we are done */
- if (!input) {
- size_t osize = 0;
-@@ -333,7 +326,7 @@ static int mime_global_unb64(lua_State *L)
- }
- /* otherwise, process the rest of the input */
- last = input + isize;
-- while (input < last)
-+ while (input < last)
- asize = b64decode(*input++, atom, asize, &buffer);
- luaL_pushresult(&buffer);
- lua_pushlstring(L, (char *) atom, asize);
-@@ -349,7 +342,7 @@ static int mime_global_unb64(lua_State *L)
- * 9 and 32 can be plain, unless in the end of a line, where must be =XX
- * encoded lines must be no longer than 76 not counting CRLF
- * soft line-break are =CRLF
--* To encode one byte, we need to see the next two.
-+* To encode one byte, we need to see the next two.
- * Worst case is when we see a space, and wonder if a CRLF is comming
- \*-------------------------------------------------------------------------*/
- /*-------------------------------------------------------------------------*\
-@@ -362,7 +355,7 @@ static void qpsetup(UC *cl, UC *unbase)
- for (i = 0; i < 256; i++) cl[i] = QP_QUOTED;
- for (i = 33; i <= 60; i++) cl[i] = QP_PLAIN;
- for (i = 62; i <= 126; i++) cl[i] = QP_PLAIN;
-- cl['\t'] = QP_IF_LAST;
-+ cl['\t'] = QP_IF_LAST;
- cl[' '] = QP_IF_LAST;
- cl['\r'] = QP_CR;
- for (i = 0; i < 256; i++) unbase[i] = 255;
-@@ -388,9 +381,9 @@ static void qpquote(UC c, luaL_Buffer *buffer)
-
- /*-------------------------------------------------------------------------*\
- * Accumulate characters until we are sure about how to deal with them.
--* Once we are sure, output to the buffer, in the correct form.
-+* Once we are sure, output to the buffer, in the correct form.
- \*-------------------------------------------------------------------------*/
--static size_t qpencode(UC c, UC *input, size_t size,
-+static size_t qpencode(UC c, UC *input, size_t size,
- const char *marker, luaL_Buffer *buffer)
- {
- input[size++] = c;
-@@ -431,7 +424,7 @@ static size_t qpencode(UC c, UC *input, size_t size,
- }
-
- /*-------------------------------------------------------------------------*\
--* Deal with the final characters
-+* Deal with the final characters
- \*-------------------------------------------------------------------------*/
- static size_t qppad(UC *input, size_t size, luaL_Buffer *buffer)
- {
-@@ -448,8 +441,8 @@ static size_t qppad(UC *input, size_t size, luaL_Buffer *buffer)
- * Incrementally converts a string to quoted-printable
- * A, B = qp(C, D, marker)
- * Marker is the text to be used to replace CRLF sequences found in A.
--* A is the encoded version of the largest prefix of C .. D that
--* can be encoded without doubts.
-+* A is the encoded version of the largest prefix of C .. D that
-+* can be encoded without doubts.
- * B has the remaining bytes of C .. D, *without* encoding.
- \*-------------------------------------------------------------------------*/
- static int mime_global_qp(lua_State *L)
-@@ -457,7 +450,7 @@ static int mime_global_qp(lua_State *L)
-
- size_t asize = 0, isize = 0;
- UC atom[3];
-- const UC *input = (UC *) luaL_optlstring(L, 1, NULL, &isize);
-+ const UC *input = (const UC *) luaL_optlstring(L, 1, NULL, &isize);
- const UC *last = input + isize;
- const char *marker = luaL_optstring(L, 3, CRLF);
- luaL_Buffer buffer;
-@@ -473,7 +466,7 @@ static int mime_global_qp(lua_State *L)
- luaL_buffinit(L, &buffer);
- while (input < last)
- asize = qpencode(*input++, atom, asize, marker, &buffer);
-- input = (UC *) luaL_optlstring(L, 2, NULL, &isize);
-+ input = (const UC *) luaL_optlstring(L, 2, NULL, &isize);
- /* if second part is nil, we are done */
- if (!input) {
- asize = qppad(atom, asize, &buffer);
-@@ -493,7 +486,7 @@ static int mime_global_qp(lua_State *L)
-
- /*-------------------------------------------------------------------------*\
- * Accumulate characters until we are sure about how to deal with them.
--* Once we are sure, output the to the buffer, in the correct form.
-+* Once we are sure, output the to the buffer, in the correct form.
- \*-------------------------------------------------------------------------*/
- static size_t qpdecode(UC c, UC *input, size_t size, luaL_Buffer *buffer) {
- int d;
-@@ -501,8 +494,8 @@ static size_t qpdecode(UC c, UC *input, size_t size, luaL_Buffer *buffer) {
- /* deal with all characters we can deal */
- switch (input[0]) {
- /* if we have an escape character */
-- case '=':
-- if (size < 3) return size;
-+ case '=':
-+ if (size < 3) return size;
- /* eliminate soft line break */
- if (input[1] == '\r' && input[2] == '\n') return 0;
- /* decode quoted representation */
-@@ -512,7 +505,7 @@ static size_t qpdecode(UC c, UC *input, size_t size, luaL_Buffer *buffer) {
- else luaL_addchar(buffer, (char) ((c << 4) + d));
- return 0;
- case '\r':
-- if (size < 2) return size;
-+ if (size < 2) return size;
- if (input[1] == '\n') luaL_addlstring(buffer, (char *)input, 2);
- return 0;
- default:
-@@ -525,15 +518,15 @@ static size_t qpdecode(UC c, UC *input, size_t size, luaL_Buffer *buffer) {
- /*-------------------------------------------------------------------------*\
- * Incrementally decodes a string in quoted-printable
- * A, B = qp(C, D)
--* A is the decoded version of the largest prefix of C .. D that
--* can be decoded without doubts.
-+* A is the decoded version of the largest prefix of C .. D that
-+* can be decoded without doubts.
- * B has the remaining bytes of C .. D, *without* decoding.
- \*-------------------------------------------------------------------------*/
- static int mime_global_unqp(lua_State *L)
- {
- size_t asize = 0, isize = 0;
- UC atom[3];
-- const UC *input = (UC *) luaL_optlstring(L, 1, NULL, &isize);
-+ const UC *input = (const UC *) luaL_optlstring(L, 1, NULL, &isize);
- const UC *last = input + isize;
- luaL_Buffer buffer;
- /* end-of-input blackhole */
-@@ -548,14 +541,14 @@ static int mime_global_unqp(lua_State *L)
- luaL_buffinit(L, &buffer);
- while (input < last)
- asize = qpdecode(*input++, atom, asize, &buffer);
-- input = (UC *) luaL_optlstring(L, 2, NULL, &isize);
-+ input = (const UC *) luaL_optlstring(L, 2, NULL, &isize);
- /* if second part is nil, we are done */
- if (!input) {
- luaL_pushresult(&buffer);
- if (!(*lua_tostring(L, -1))) lua_pushnil(L);
- lua_pushnil(L);
- return 2;
-- }
-+ }
- /* otherwise process rest of input */
- last = input + isize;
- while (input < last)
-@@ -568,9 +561,9 @@ static int mime_global_unqp(lua_State *L)
- /*-------------------------------------------------------------------------*\
- * Incrementally breaks a quoted-printed string into lines
- * A, n = qpwrp(l, B, length)
--* A is a copy of B, broken into lines of at most 'length' bytes.
--* 'l' is how many bytes are left for the first line of B.
--* 'n' is the number of bytes left in the last line of A.
-+* A is a copy of B, broken into lines of at most 'length' bytes.
-+* 'l' is how many bytes are left for the first line of B.
-+* 'n' is the number of bytes left in the last line of A.
- * There are two complications: lines can't be broken in the middle
- * of an encoded =XX, and there might be line breaks already
- \*-------------------------------------------------------------------------*/
-@@ -578,7 +571,7 @@ static int mime_global_qpwrp(lua_State *L)
- {
- size_t size = 0;
- int left = (int) luaL_checknumber(L, 1);
-- const UC *input = (UC *) luaL_optlstring(L, 2, NULL, &size);
-+ const UC *input = (const UC *) luaL_optlstring(L, 2, NULL, &size);
- const UC *last = input + size;
- int length = (int) luaL_optnumber(L, 3, 76);
- luaL_Buffer buffer;
-@@ -603,11 +596,11 @@ static int mime_global_qpwrp(lua_State *L)
- if (left <= 3) {
- left = length;
- luaL_addstring(&buffer, EQCRLF);
-- }
-+ }
- luaL_addchar(&buffer, *input);
- left--;
- break;
-- default:
-+ default:
- if (left <= 1) {
- left = length;
- luaL_addstring(&buffer, EQCRLF);
-@@ -635,7 +628,7 @@ static int mime_global_qpwrp(lua_State *L)
- * last is the previous character
- \*-------------------------------------------------------------------------*/
- #define eolcandidate(c) (c == '\r' || c == '\n')
--static int eolprocess(int c, int last, const char *marker,
-+static int eolprocess(int c, int last, const char *marker,
- luaL_Buffer *buffer)
- {
- if (eolcandidate(c)) {
-@@ -653,15 +646,15 @@ static int eolprocess(int c, int last, const char *marker,
- }
-
- /*-------------------------------------------------------------------------*\
--* Converts a string to uniform EOL convention.
-+* Converts a string to uniform EOL convention.
- * A, n = eol(o, B, marker)
- * A is the converted version of the largest prefix of B that can be
--* converted unambiguously. 'o' is the context returned by the previous
-+* converted unambiguously. 'o' is the context returned by the previous
- * call. 'n' is the new context.
- \*-------------------------------------------------------------------------*/
- static int mime_global_eol(lua_State *L)
- {
-- int ctx = luaL_checkint(L, 1);
-+ int ctx = luaL_checkinteger(L, 1);
- size_t isize = 0;
- const char *input = luaL_optlstring(L, 2, NULL, &isize);
- const char *last = input + isize;
-@@ -683,18 +676,18 @@ static int mime_global_eol(lua_State *L)
- }
-
- /*-------------------------------------------------------------------------*\
--* Takes one byte and stuff it if needed.
-+* Takes one byte and stuff it if needed.
- \*-------------------------------------------------------------------------*/
- static size_t dot(int c, size_t state, luaL_Buffer *buffer)
- {
- luaL_addchar(buffer, (char) c);
- switch (c) {
-- case '\r':
-+ case '\r':
- return 1;
-- case '\n':
-- return (state == 1)? 2: 0;
-- case '.':
-- if (state == 2)
-+ case '\n':
-+ return (state == 1)? 2: 0;
-+ case '.':
-+ if (state == 2)
- luaL_addchar(buffer, '.');
- default:
- return 0;
-@@ -719,7 +712,7 @@ static int mime_global_dot(lua_State *L)
- }
- /* process all input */
- luaL_buffinit(L, &buffer);
-- while (input < last)
-+ while (input < last)
- state = dot(*input++, state, &buffer);
- luaL_pushresult(&buffer);
- lua_pushnumber(L, (lua_Number) state);
-diff --git a/src/options.c b/src/options.c
-index 8ac2a14..20f4c28 100644
---- a/src/options.c
-+++ b/src/options.c
-@@ -1,8 +1,8 @@
- /*=========================================================================*\
--* Common option interface
-+* Common option interface
- * LuaSocket toolkit
- \*=========================================================================*/
--#include <string.h>
-+#include <string.h>
-
- #include "lauxlib.h"
-
-@@ -20,9 +20,9 @@ static int opt_setboolean(lua_State *L, p_socket ps, int level, int name);
- static int opt_getboolean(lua_State *L, p_socket ps, int level, int name);
- static int opt_setint(lua_State *L, p_socket ps, int level, int name);
- static int opt_getint(lua_State *L, p_socket ps, int level, int name);
--static int opt_set(lua_State *L, p_socket ps, int level, int name,
-+static int opt_set(lua_State *L, p_socket ps, int level, int name,
- void *val, int len);
--static int opt_get(lua_State *L, p_socket ps, int level, int name,
-+static int opt_get(lua_State *L, p_socket ps, int level, int name,
- void *val, int* len);
-
- /*=========================================================================*\
-@@ -60,29 +60,29 @@ int opt_meth_getoption(lua_State *L, p_opt opt, p_socket ps)
- /* enables reuse of local address */
- int opt_set_reuseaddr(lua_State *L, p_socket ps)
- {
-- return opt_setboolean(L, ps, SOL_SOCKET, SO_REUSEADDR);
-+ return opt_setboolean(L, ps, SOL_SOCKET, SO_REUSEADDR);
- }
-
- int opt_get_reuseaddr(lua_State *L, p_socket ps)
- {
-- return opt_getboolean(L, ps, SOL_SOCKET, SO_REUSEADDR);
-+ return opt_getboolean(L, ps, SOL_SOCKET, SO_REUSEADDR);
- }
-
- /* enables reuse of local port */
- int opt_set_reuseport(lua_State *L, p_socket ps)
- {
-- return opt_setboolean(L, ps, SOL_SOCKET, SO_REUSEPORT);
-+ return opt_setboolean(L, ps, SOL_SOCKET, SO_REUSEPORT);
- }
-
- int opt_get_reuseport(lua_State *L, p_socket ps)
- {
-- return opt_getboolean(L, ps, SOL_SOCKET, SO_REUSEPORT);
-+ return opt_getboolean(L, ps, SOL_SOCKET, SO_REUSEPORT);
- }
-
- /* disables the Naggle algorithm */
- int opt_set_tcp_nodelay(lua_State *L, p_socket ps)
- {
-- return opt_setboolean(L, ps, IPPROTO_TCP, TCP_NODELAY);
-+ return opt_setboolean(L, ps, IPPROTO_TCP, TCP_NODELAY);
- }
-
- int opt_get_tcp_nodelay(lua_State *L, p_socket ps)
-@@ -92,12 +92,12 @@ int opt_get_tcp_nodelay(lua_State *L, p_socket ps)
-
- int opt_set_keepalive(lua_State *L, p_socket ps)
- {
-- return opt_setboolean(L, ps, SOL_SOCKET, SO_KEEPALIVE);
-+ return opt_setboolean(L, ps, SOL_SOCKET, SO_KEEPALIVE);
- }
-
- int opt_get_keepalive(lua_State *L, p_socket ps)
- {
-- return opt_getboolean(L, ps, SOL_SOCKET, SO_KEEPALIVE);
-+ return opt_getboolean(L, ps, SOL_SOCKET, SO_KEEPALIVE);
- }
-
- int opt_set_dontroute(lua_State *L, p_socket ps)
-@@ -105,11 +105,21 @@ int opt_set_dontroute(lua_State *L, p_socket ps)
- return opt_setboolean(L, ps, SOL_SOCKET, SO_DONTROUTE);
- }
-
-+int opt_get_dontroute(lua_State *L, p_socket ps)
-+{
-+ return opt_getboolean(L, ps, SOL_SOCKET, SO_DONTROUTE);
-+}
-+
- int opt_set_broadcast(lua_State *L, p_socket ps)
- {
- return opt_setboolean(L, ps, SOL_SOCKET, SO_BROADCAST);
- }
-
-+int opt_get_broadcast(lua_State *L, p_socket ps)
-+{
-+ return opt_getboolean(L, ps, SOL_SOCKET, SO_BROADCAST);
-+}
-+
- int opt_set_ip6_unicast_hops(lua_State *L, p_socket ps)
- {
- return opt_setint(L, ps, IPPROTO_IPV6, IPV6_UNICAST_HOPS);
-@@ -156,12 +166,12 @@ int opt_set_linger(lua_State *L, p_socket ps)
- if (!lua_istable(L, 3)) auxiliar_typeerror(L,3,lua_typename(L, LUA_TTABLE));
- lua_pushstring(L, "on");
- lua_gettable(L, 3);
-- if (!lua_isboolean(L, -1))
-+ if (!lua_isboolean(L, -1))
- luaL_argerror(L, 3, "boolean 'on' field expected");
- li.l_onoff = (u_short) lua_toboolean(L, -1);
- lua_pushstring(L, "timeout");
- lua_gettable(L, 3);
-- if (!lua_isnumber(L, -1))
-+ if (!lua_isnumber(L, -1))
- luaL_argerror(L, 3, "number 'timeout' field expected");
- li.l_linger = (u_short) lua_tonumber(L, -1);
- return opt_set(L, ps, SOL_SOCKET, SO_LINGER, (char *) &li, sizeof(li));
-@@ -194,7 +204,7 @@ int opt_set_ip_multicast_if(lua_State *L, p_socket ps)
- val.s_addr = htonl(INADDR_ANY);
- if (strcmp(address, "*") && !inet_aton(address, &val))
- luaL_argerror(L, 3, "ip expected");
-- return opt_set(L, ps, IPPROTO_IP, IP_MULTICAST_IF,
-+ return opt_set(L, ps, IPPROTO_IP, IP_MULTICAST_IF,
- (char *) &val, sizeof(val));
- }
-
-@@ -250,17 +260,17 @@ static int opt_setmembership(lua_State *L, p_socket ps, int level, int name)
- if (!lua_istable(L, 3)) auxiliar_typeerror(L,3,lua_typename(L, LUA_TTABLE));
- lua_pushstring(L, "multiaddr");
- lua_gettable(L, 3);
-- if (!lua_isstring(L, -1))
-+ if (!lua_isstring(L, -1))
- luaL_argerror(L, 3, "string 'multiaddr' field expected");
-- if (!inet_aton(lua_tostring(L, -1), &val.imr_multiaddr))
-+ if (!inet_aton(lua_tostring(L, -1), &val.imr_multiaddr))
- luaL_argerror(L, 3, "invalid 'multiaddr' ip address");
- lua_pushstring(L, "interface");
- lua_gettable(L, 3);
-- if (!lua_isstring(L, -1))
-+ if (!lua_isstring(L, -1))
- luaL_argerror(L, 3, "string 'interface' field expected");
- val.imr_interface.s_addr = htonl(INADDR_ANY);
- if (strcmp(lua_tostring(L, -1), "*") &&
-- !inet_aton(lua_tostring(L, -1), &val.imr_interface))
-+ !inet_aton(lua_tostring(L, -1), &val.imr_interface))
- luaL_argerror(L, 3, "invalid 'interface' ip address");
- return opt_set(L, ps, level, name, (char *) &val, sizeof(val));
- }
-@@ -272,14 +282,14 @@ static int opt_ip6_setmembership(lua_State *L, p_socket ps, int level, int name)
- if (!lua_istable(L, 3)) auxiliar_typeerror(L,3,lua_typename(L, LUA_TTABLE));
- lua_pushstring(L, "multiaddr");
- lua_gettable(L, 3);
-- if (!lua_isstring(L, -1))
-+ if (!lua_isstring(L, -1))
- luaL_argerror(L, 3, "string 'multiaddr' field expected");
-- if (!inet_pton(AF_INET6, lua_tostring(L, -1), &val.ipv6mr_multiaddr))
-+ if (!inet_pton(AF_INET6, lua_tostring(L, -1), &val.ipv6mr_multiaddr))
- luaL_argerror(L, 3, "invalid 'multiaddr' ip address");
- lua_pushstring(L, "interface");
- lua_gettable(L, 3);
- /* By default we listen to interface on default route
-- * (sigh). However, interface= can override it. We should
-+ * (sigh). However, interface= can override it. We should
- * support either number, or name for it. Waiting for
- * windows port of if_nametoindex */
- if (!lua_isnil(L, -1)) {
-@@ -291,7 +301,7 @@ static int opt_ip6_setmembership(lua_State *L, p_socket ps, int level, int name)
- return opt_set(L, ps, level, name, (char *) &val, sizeof(val));
- }
-
--static
-+static
- int opt_get(lua_State *L, p_socket ps, int level, int name, void *val, int* len)
- {
- socklen_t socklen = *len;
-@@ -304,7 +314,7 @@ int opt_get(lua_State *L, p_socket ps, int level, int name, void *val, int* len)
- return 0;
- }
-
--static
-+static
- int opt_set(lua_State *L, p_socket ps, int level, int name, void *val, int len)
- {
- if (setsockopt(*ps, level, name, (char *) val, len) < 0) {
-diff --git a/src/options.h b/src/options.h
-index 5657a06..19ba0df 100644
---- a/src/options.h
-+++ b/src/options.h
-@@ -21,7 +21,6 @@ typedef t_opt *p_opt;
- /* supported options for setoption */
- int opt_set_dontroute(lua_State *L, p_socket ps);
- int opt_set_broadcast(lua_State *L, p_socket ps);
--int opt_set_reuseaddr(lua_State *L, p_socket ps);
- int opt_set_tcp_nodelay(lua_State *L, p_socket ps);
- int opt_set_keepalive(lua_State *L, p_socket ps);
- int opt_set_linger(lua_State *L, p_socket ps);
-@@ -40,18 +39,21 @@ int opt_set_ip6_drop_membersip(lua_State *L, p_socket ps);
- int opt_set_ip6_v6only(lua_State *L, p_socket ps);
-
- /* supported options for getoption */
-+int opt_get_dontroute(lua_State *L, p_socket ps);
-+int opt_get_broadcast(lua_State *L, p_socket ps);
- int opt_get_reuseaddr(lua_State *L, p_socket ps);
-+int opt_get_reuseport(lua_State *L, p_socket ps);
- int opt_get_tcp_nodelay(lua_State *L, p_socket ps);
- int opt_get_keepalive(lua_State *L, p_socket ps);
- int opt_get_linger(lua_State *L, p_socket ps);
--int opt_get_reuseaddr(lua_State *L, p_socket ps);
- int opt_get_ip_multicast_loop(lua_State *L, p_socket ps);
- int opt_get_ip_multicast_if(lua_State *L, p_socket ps);
- int opt_get_error(lua_State *L, p_socket ps);
- int opt_get_ip6_multicast_loop(lua_State *L, p_socket ps);
- int opt_get_ip6_multicast_hops(lua_State *L, p_socket ps);
- int opt_get_ip6_unicast_hops(lua_State *L, p_socket ps);
--int opt_get_ip6_v6only(lua_State *L, p_socket ps);
-+int opt_get_ip6_v6only(lua_State *L, p_socket ps);
-+int opt_get_reuseport(lua_State *L, p_socket ps);
-
- /* invokes the appropriate option handler */
- int opt_meth_setoption(lua_State *L, p_opt opt, p_socket ps);
-diff --git a/src/pierror.h b/src/pierror.h
-new file mode 100644
-index 0000000..cb773ab
---- /dev/null
-+++ b/src/pierror.h
-@@ -0,0 +1,28 @@
-+#ifndef PIERROR_H
-+#define PIERROR_H
-+/*=========================================================================*\
-+* Error messages
-+* Defines platform independent error messages
-+\*=========================================================================*/
-+
-+#define PIE_HOST_NOT_FOUND "host not found"
-+#define PIE_ADDRINUSE "address already in use"
-+#define PIE_ISCONN "already connected"
-+#define PIE_ACCESS "permission denied"
-+#define PIE_CONNREFUSED "connection refused"
-+#define PIE_CONNABORTED "closed"
-+#define PIE_CONNRESET "closed"
-+#define PIE_TIMEDOUT "timeout"
-+#define PIE_AGAIN "temporary failure in name resolution"
-+#define PIE_BADFLAGS "invalid value for ai_flags"
-+#define PIE_BADHINTS "invalid value for hints"
-+#define PIE_FAIL "non-recoverable failure in name resolution"
-+#define PIE_FAMILY "ai_family not supported"
-+#define PIE_MEMORY "memory allocation failure"
-+#define PIE_NONAME "host or service not provided, or not known"
-+#define PIE_OVERFLOW "argument buffer overflow"
-+#define PIE_PROTOCOL "resolved protocol is unknown"
-+#define PIE_SERVICE "service not supported for socket type"
-+#define PIE_SOCKTYPE "ai_socktype not supported"
-+
-+#endif
-diff --git a/src/select.c b/src/select.c
-index fafaa62..9d133b7 100644
---- a/src/select.c
-+++ b/src/select.c
-@@ -6,6 +6,7 @@
-
- #include "lua.h"
- #include "lauxlib.h"
-+#include "compat.h"
-
- #include "socket.h"
- #include "timeout.h"
-@@ -16,10 +17,10 @@
- \*=========================================================================*/
- static t_socket getfd(lua_State *L);
- static int dirty(lua_State *L);
--static void collect_fd(lua_State *L, int tab, int itab,
-+static void collect_fd(lua_State *L, int tab, int itab,
- fd_set *set, t_socket *max_fd);
- static int check_dirty(lua_State *L, int tab, int dtab, fd_set *set);
--static void return_fd(lua_State *L, fd_set *set, t_socket max_fd,
-+static void return_fd(lua_State *L, fd_set *set, t_socket max_fd,
- int itab, int tab, int start);
- static void make_assoc(lua_State *L, int tab);
- static int global_select(lua_State *L);
-@@ -38,13 +39,12 @@ static luaL_Reg func[] = {
- \*-------------------------------------------------------------------------*/
- int select_open(lua_State *L) {
- lua_pushstring(L, "_SETSIZE");
-- lua_pushnumber(L, FD_SETSIZE);
-+ lua_pushinteger(L, FD_SETSIZE);
-+ lua_rawset(L, -3);
-+ lua_pushstring(L, "_SOCKETINVALID");
-+ lua_pushinteger(L, SOCKET_INVALID);
- lua_rawset(L, -3);
--#if LUA_VERSION_NUM > 501 && !defined(LUA_COMPAT_MODULE)
- luaL_setfuncs(L, func, 0);
--#else
-- luaL_openlib(L, NULL, func, 0);
--#endif
- return 0;
- }
-
-@@ -98,10 +98,10 @@ static t_socket getfd(lua_State *L) {
- lua_pushvalue(L, -2);
- lua_call(L, 1, 1);
- if (lua_isnumber(L, -1)) {
-- double numfd = lua_tonumber(L, -1);
-+ double numfd = lua_tonumber(L, -1);
- fd = (numfd >= 0.0)? (t_socket) numfd: SOCKET_INVALID;
- }
-- }
-+ }
- lua_pop(L, 1);
- return fd;
- }
-@@ -114,12 +114,12 @@ static int dirty(lua_State *L) {
- lua_pushvalue(L, -2);
- lua_call(L, 1, 1);
- is = lua_toboolean(L, -1);
-- }
-+ }
- lua_pop(L, 1);
- return is;
- }
-
--static void collect_fd(lua_State *L, int tab, int itab,
-+static void collect_fd(lua_State *L, int tab, int itab,
- fd_set *set, t_socket *max_fd) {
- int i = 1, n = 0;
- /* nil is the same as an empty table */
-@@ -139,16 +139,16 @@ static void collect_fd(lua_State *L, int tab, int itab,
- if (fd != SOCKET_INVALID) {
- /* make sure we don't overflow the fd_set */
- #ifdef _WIN32
-- if (n >= FD_SETSIZE)
-+ if (n >= FD_SETSIZE)
- luaL_argerror(L, tab, "too many sockets");
- #else
-- if (fd >= FD_SETSIZE)
-+ if (fd >= FD_SETSIZE)
- luaL_argerror(L, tab, "descriptor too large for set size");
- #endif
- FD_SET(fd, set);
- n++;
- /* keep track of the largest descriptor so far */
-- if (*max_fd == SOCKET_INVALID || *max_fd < fd)
-+ if (*max_fd == SOCKET_INVALID || *max_fd < fd)
- *max_fd = fd;
- /* make sure we can map back from descriptor to the object */
- lua_pushnumber(L, (lua_Number) fd);
-@@ -162,9 +162,9 @@ static void collect_fd(lua_State *L, int tab, int itab,
-
- static int check_dirty(lua_State *L, int tab, int dtab, fd_set *set) {
- int ndirty = 0, i = 1;
-- if (lua_isnil(L, tab))
-+ if (lua_isnil(L, tab))
- return 0;
-- for ( ;; ) {
-+ for ( ;; ) {
- t_socket fd;
- lua_pushnumber(L, i);
- lua_gettable(L, tab);
-@@ -185,7 +185,7 @@ static int check_dirty(lua_State *L, int tab, int dtab, fd_set *set) {
- return ndirty;
- }
-
--static void return_fd(lua_State *L, fd_set *set, t_socket max_fd,
-+static void return_fd(lua_State *L, fd_set *set, t_socket max_fd,
- int itab, int tab, int start) {
- t_socket fd;
- for (fd = 0; fd < max_fd; fd++) {
-diff --git a/src/serial.c b/src/serial.c
-index 583d4e5..7bdb21c 100644
---- a/src/serial.c
-+++ b/src/serial.c
-@@ -2,7 +2,7 @@
- * Serial stream
- * LuaSocket toolkit
- \*=========================================================================*/
--#include <string.h>
-+#include <string.h>
-
- #include "lua.h"
- #include "lauxlib.h"
-@@ -11,7 +11,7 @@
- #include "socket.h"
- #include "options.h"
- #include "unix.h"
--#include <sys/un.h>
-+#include <sys/un.h>
-
- /*
- Reuses userdata definition from unix.h, since it is useful for all
-@@ -54,15 +54,6 @@ static luaL_Reg serial_methods[] = {
- {NULL, NULL}
- };
-
--/* our socket creation function */
--/* this is an ad-hoc module that returns a single function
-- * as such, do not include other functions in this array. */
--static luaL_Reg func[] = {
-- {"serial", global_create},
-- {NULL, NULL}
--};
--
--
- /*-------------------------------------------------------------------------*\
- * Initializes module
- \*-------------------------------------------------------------------------*/
-@@ -71,14 +62,7 @@ LUASOCKET_API int luaopen_socket_serial(lua_State *L) {
- auxiliar_newclass(L, "serial{client}", serial_methods);
- /* create class groups */
- auxiliar_add2group(L, "serial{client}", "serial{any}");
--#if LUA_VERSION_NUM > 501 && !defined(LUA_COMPAT_MODULE)
-- lua_pushcfunction(L, global_create);
-- (void) func;
--#else
-- /* set function into socket namespace */
-- luaL_openlib(L, "socket", func, 0);
- lua_pushcfunction(L, global_create);
--#endif
- return 1;
- }
-
-@@ -120,7 +104,7 @@ static int meth_getfd(lua_State *L) {
- /* this is very dangerous, but can be handy for those that are brave enough */
- static int meth_setfd(lua_State *L) {
- p_unix un = (p_unix) auxiliar_checkgroup(L, "serial{any}", 1);
-- un->sock = (t_socket) luaL_checknumber(L, 2);
-+ un->sock = (t_socket) luaL_checknumber(L, 2);
- return 0;
- }
-
-@@ -131,7 +115,7 @@ static int meth_dirty(lua_State *L) {
- }
-
- /*-------------------------------------------------------------------------*\
--* Closes socket used by object
-+* Closes socket used by object
- \*-------------------------------------------------------------------------*/
- static int meth_close(lua_State *L)
- {
-@@ -156,7 +140,7 @@ static int meth_settimeout(lua_State *L) {
-
-
- /*-------------------------------------------------------------------------*\
--* Creates a serial object
-+* Creates a serial object
- \*-------------------------------------------------------------------------*/
- static int global_create(lua_State *L) {
- const char* path = luaL_checkstring(L, 1);
-@@ -180,7 +164,7 @@ static int global_create(lua_State *L) {
- /* initialize remaining structure fields */
- socket_setnonblocking(&sock);
- un->sock = sock;
-- io_init(&un->io, (p_send) socket_write, (p_recv) socket_read,
-+ io_init(&un->io, (p_send) socket_write, (p_recv) socket_read,
- (p_error) socket_ioerror, &un->sock);
- timeout_init(&un->tm, -1, -1);
- buffer_init(&un->buf, &un->io, &un->tm);
-diff --git a/src/socket.lua b/src/socket.lua
-index 3913e6f..d1c0b16 100644
---- a/src/socket.lua
-+++ b/src/socket.lua
-@@ -32,23 +32,23 @@ function _M.bind(host, port, backlog)
- err = "no info on address"
- for i, alt in base.ipairs(addrinfo) do
- if alt.family == "inet" then
-- sock, err = socket.tcp()
-+ sock, err = socket.tcp4()
- else
- sock, err = socket.tcp6()
- end
- if not sock then return nil, err end
- sock:setoption("reuseaddr", true)
- res, err = sock:bind(alt.addr, port)
-- if not res then
-+ if not res then
- sock:close()
-- else
-+ else
- res, err = sock:listen(backlog)
-- if not res then
-+ if not res then
- sock:close()
- else
- return sock
- end
-- end
-+ end
- end
- return nil, err
- end
-diff --git a/src/tcp.c b/src/tcp.c
-index 6594bda..ef9ee6f 100644
---- a/src/tcp.c
-+++ b/src/tcp.c
-@@ -6,6 +6,7 @@
-
- #include "lua.h"
- #include "lauxlib.h"
-+#include "compat.h"
-
- #include "auxiliar.h"
- #include "socket.h"
-@@ -17,6 +18,7 @@
- * Internal function prototypes
- \*=========================================================================*/
- static int global_create(lua_State *L);
-+static int global_create4(lua_State *L);
- static int global_create6(lua_State *L);
- static int global_connect(lua_State *L);
- static int meth_connect(lua_State *L);
-@@ -34,6 +36,7 @@ static int meth_accept(lua_State *L);
- static int meth_close(lua_State *L);
- static int meth_getoption(lua_State *L);
- static int meth_setoption(lua_State *L);
-+static int meth_gettimeout(lua_State *L);
- static int meth_settimeout(lua_State *L);
- static int meth_getfd(lua_State *L);
- static int meth_setfd(lua_State *L);
-@@ -63,6 +66,7 @@ static luaL_Reg tcp_methods[] = {
- {"setpeername", meth_connect},
- {"setsockname", meth_bind},
- {"settimeout", meth_settimeout},
-+ {"gettimeout", meth_gettimeout},
- {"shutdown", meth_shutdown},
- {NULL, NULL}
- };
-@@ -71,6 +75,7 @@ static luaL_Reg tcp_methods[] = {
- static t_opt optget[] = {
- {"keepalive", opt_get_keepalive},
- {"reuseaddr", opt_get_reuseaddr},
-+ {"reuseport", opt_get_reuseport},
- {"tcp-nodelay", opt_get_tcp_nodelay},
- {"linger", opt_get_linger},
- {"error", opt_get_error},
-@@ -80,6 +85,7 @@ static t_opt optget[] = {
- static t_opt optset[] = {
- {"keepalive", opt_set_keepalive},
- {"reuseaddr", opt_set_reuseaddr},
-+ {"reuseport", opt_set_reuseport},
- {"tcp-nodelay", opt_set_tcp_nodelay},
- {"ipv6-v6only", opt_set_ip6_v6only},
- {"linger", opt_set_linger},
-@@ -89,6 +95,7 @@ static t_opt optset[] = {
- /* functions in library namespace */
- static luaL_Reg func[] = {
- {"tcp", global_create},
-+ {"tcp4", global_create4},
- {"tcp6", global_create6},
- {"connect", global_connect},
- {NULL, NULL}
-@@ -108,11 +115,7 @@ int tcp_open(lua_State *L)
- auxiliar_add2group(L, "tcp{client}", "tcp{any}");
- auxiliar_add2group(L, "tcp{server}", "tcp{any}");
- /* define library functions */
--#if LUA_VERSION_NUM > 501 && !defined(LUA_COMPAT_MODULE)
- luaL_setfuncs(L, func, 0);
--#else
-- luaL_openlib(L, NULL, func, 0);
--#endif
- return 0;
- }
-
-@@ -216,8 +219,7 @@ static int meth_accept(lua_State *L)
- /*-------------------------------------------------------------------------*\
- * Binds an object to an address
- \*-------------------------------------------------------------------------*/
--static int meth_bind(lua_State *L)
--{
-+static int meth_bind(lua_State *L) {
- p_tcp tcp = (p_tcp) auxiliar_checkclass(L, "tcp{master}", 1);
- const char *address = luaL_checkstring(L, 2);
- const char *port = luaL_checkstring(L, 3);
-@@ -227,7 +229,7 @@ static int meth_bind(lua_State *L)
- bindhints.ai_socktype = SOCK_STREAM;
- bindhints.ai_family = tcp->family;
- bindhints.ai_flags = AI_PASSIVE;
-- err = inet_trybind(&tcp->sock, address, port, &bindhints);
-+ err = inet_trybind(&tcp->sock, &tcp->family, address, port, &bindhints);
- if (err) {
- lua_pushnil(L);
- lua_pushstring(L, err);
-@@ -240,8 +242,7 @@ static int meth_bind(lua_State *L)
- /*-------------------------------------------------------------------------*\
- * Turns a master tcp object into a client object.
- \*-------------------------------------------------------------------------*/
--static int meth_connect(lua_State *L)
--{
-+static int meth_connect(lua_State *L) {
- p_tcp tcp = (p_tcp) auxiliar_checkgroup(L, "tcp{any}", 1);
- const char *address = luaL_checkstring(L, 2);
- const char *port = luaL_checkstring(L, 3);
-@@ -252,7 +253,7 @@ static int meth_connect(lua_State *L)
- /* make sure we try to connect only to the same family */
- connecthints.ai_family = tcp->family;
- timeout_markstart(&tcp->tm);
-- err = inet_tryconnect(&tcp->sock, &tcp->family, address, port,
-+ err = inet_tryconnect(&tcp->sock, &tcp->family, address, port,
- &tcp->tm, &connecthints);
- /* have to set the class even if it failed due to non-blocking connects */
- auxiliar_setclass(L, "tcp{client}", 1);
-@@ -282,9 +283,12 @@ static int meth_close(lua_State *L)
- static int meth_getfamily(lua_State *L)
- {
- p_tcp tcp = (p_tcp) auxiliar_checkgroup(L, "tcp{any}", 1);
-- if (tcp->family == PF_INET6) {
-+ if (tcp->family == AF_INET6) {
- lua_pushliteral(L, "inet6");
- return 1;
-+ } else if (tcp->family == AF_INET) {
-+ lua_pushliteral(L, "inet4");
-+ return 1;
- } else {
- lua_pushliteral(L, "inet4");
- return 1;
-@@ -348,6 +352,12 @@ static int meth_settimeout(lua_State *L)
- return timeout_meth_settimeout(L, &tcp->tm);
- }
-
-+static int meth_gettimeout(lua_State *L)
-+{
-+ p_tcp tcp = (p_tcp) auxiliar_checkgroup(L, "tcp{any}", 1);
-+ return timeout_meth_gettimeout(L, &tcp->tm);
-+}
-+
- /*=========================================================================*\
- * Library functions
- \*=========================================================================*/
-@@ -355,37 +365,36 @@ static int meth_settimeout(lua_State *L)
- * Creates a master tcp object
- \*-------------------------------------------------------------------------*/
- static int tcp_create(lua_State *L, int family) {
-- t_socket sock;
-- const char *err = inet_trycreate(&sock, family, SOCK_STREAM);
-- /* try to allocate a system socket */
-- if (!err) {
-- /* allocate tcp object */
-- p_tcp tcp = (p_tcp) lua_newuserdata(L, sizeof(t_tcp));
-- memset(tcp, 0, sizeof(t_tcp));
-- /* set its type as master object */
-- auxiliar_setclass(L, "tcp{master}", -1);
-- /* initialize remaining structure fields */
-- socket_setnonblocking(&sock);
-- if (family == PF_INET6) {
-- int yes = 1;
-- setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY,
-- (void *)&yes, sizeof(yes));
-+ p_tcp tcp = (p_tcp) lua_newuserdata(L, sizeof(t_tcp));
-+ memset(tcp, 0, sizeof(t_tcp));
-+ /* set its type as master object */
-+ auxiliar_setclass(L, "tcp{master}", -1);
-+ /* if family is AF_UNSPEC, we leave the socket invalid and
-+ * store AF_UNSPEC into family. This will allow it to later be
-+ * replaced with an AF_INET6 or AF_INET socket upon first use. */
-+ tcp->sock = SOCKET_INVALID;
-+ tcp->family = family;
-+ io_init(&tcp->io, (p_send) socket_send, (p_recv) socket_recv,
-+ (p_error) socket_ioerror, &tcp->sock);
-+ timeout_init(&tcp->tm, -1, -1);
-+ buffer_init(&tcp->buf, &tcp->io, &tcp->tm);
-+ if (family != AF_UNSPEC) {
-+ const char *err = inet_trycreate(&tcp->sock, family, SOCK_STREAM, 0);
-+ if (err != NULL) {
-+ lua_pushnil(L);
-+ lua_pushstring(L, err);
-+ return 2;
- }
-- tcp->sock = sock;
-- io_init(&tcp->io, (p_send) socket_send, (p_recv) socket_recv,
-- (p_error) socket_ioerror, &tcp->sock);
-- timeout_init(&tcp->tm, -1, -1);
-- buffer_init(&tcp->buf, &tcp->io, &tcp->tm);
-- tcp->family = family;
-- return 1;
-- } else {
-- lua_pushnil(L);
-- lua_pushstring(L, err);
-- return 2;
-+ socket_setnonblocking(&tcp->sock);
- }
-+ return 1;
- }
-
- static int global_create(lua_State *L) {
-+ return tcp_create(L, AF_UNSPEC);
-+}
-+
-+static int global_create4(lua_State *L) {
- return tcp_create(L, AF_INET);
- }
-
-@@ -393,53 +402,6 @@ static int global_create6(lua_State *L) {
- return tcp_create(L, AF_INET6);
- }
-
--#if 0
--static const char *tryconnect6(const char *remoteaddr, const char *remoteserv,
-- struct addrinfo *connecthints, p_tcp tcp) {
-- struct addrinfo *iterator = NULL, *resolved = NULL;
-- const char *err = NULL;
-- /* try resolving */
-- err = socket_gaistrerror(getaddrinfo(remoteaddr, remoteserv,
-- connecthints, &resolved));
-- if (err != NULL) {
-- if (resolved) freeaddrinfo(resolved);
-- return err;
-- }
-- /* iterate over all returned addresses trying to connect */
-- for (iterator = resolved; iterator; iterator = iterator->ai_next) {
-- p_timeout tm = timeout_markstart(&tcp->tm);
-- /* create new socket if necessary. if there was no
-- * bind, we need to create one for every new family
-- * that shows up while iterating. if there was a
-- * bind, all families will be the same and we will
-- * not enter this branch. */
-- if (tcp->family != iterator->ai_family) {
-- socket_destroy(&tcp->sock);
-- err = socket_strerror(socket_create(&tcp->sock,
-- iterator->ai_family, iterator->ai_socktype,
-- iterator->ai_protocol));
-- if (err != NULL) {
-- freeaddrinfo(resolved);
-- return err;
-- }
-- tcp->family = iterator->ai_family;
-- /* all sockets initially non-blocking */
-- socket_setnonblocking(&tcp->sock);
-- }
-- /* finally try connecting to remote address */
-- err = socket_strerror(socket_connect(&tcp->sock,
-- (SA *) iterator->ai_addr,
-- (socklen_t) iterator->ai_addrlen, tm));
-- /* if success, break out of loop */
-- if (err == NULL) break;
-- }
--
-- freeaddrinfo(resolved);
-- /* here, if err is set, we failed */
-- return err;
--}
--#endif
--
- static int global_connect(lua_State *L) {
- const char *remoteaddr = luaL_checkstring(L, 1);
- const char *remoteserv = luaL_checkstring(L, 2);
-@@ -456,26 +418,26 @@ static int global_connect(lua_State *L) {
- timeout_init(&tcp->tm, -1, -1);
- buffer_init(&tcp->buf, &tcp->io, &tcp->tm);
- tcp->sock = SOCKET_INVALID;
-- tcp->family = PF_UNSPEC;
-+ tcp->family = AF_UNSPEC;
- /* allow user to pick local address and port */
- memset(&bindhints, 0, sizeof(bindhints));
- bindhints.ai_socktype = SOCK_STREAM;
- bindhints.ai_family = family;
- bindhints.ai_flags = AI_PASSIVE;
- if (localaddr) {
-- err = inet_trybind(&tcp->sock, localaddr, localserv, &bindhints);
-+ err = inet_trybind(&tcp->sock, &tcp->family, localaddr,
-+ localserv, &bindhints);
- if (err) {
- lua_pushnil(L);
- lua_pushstring(L, err);
- return 2;
- }
-- tcp->family = bindhints.ai_family;
- }
- /* try to connect to remote address and port */
- memset(&connecthints, 0, sizeof(connecthints));
- connecthints.ai_socktype = SOCK_STREAM;
- /* make sure we try to connect only to the same family */
-- connecthints.ai_family = bindhints.ai_family;
-+ connecthints.ai_family = tcp->family;
- err = inet_tryconnect(&tcp->sock, &tcp->family, remoteaddr, remoteserv,
- &tcp->tm, &connecthints);
- if (err) {
-diff --git a/src/timeout.c b/src/timeout.c
-index bdd5e1c..5a601d5 100644
---- a/src/timeout.c
-+++ b/src/timeout.c
-@@ -8,6 +8,7 @@
-
- #include "lua.h"
- #include "lauxlib.h"
-+#include "compat.h"
-
- #include "auxiliar.h"
- #include "timeout.h"
-@@ -52,7 +53,7 @@ void timeout_init(p_timeout tm, double block, double total) {
-
- /*-------------------------------------------------------------------------*\
- * Determines how much time we have left for the next system call,
--* if the previous call was successful
-+* if the previous call was successful
- * Input
- * tm: timeout control structure
- * Returns
-@@ -107,7 +108,7 @@ double timeout_getretry(p_timeout tm) {
- }
-
- /*-------------------------------------------------------------------------*\
--* Marks the operation start time in structure
-+* Marks the operation start time in structure
- * Input
- * tm: timeout control structure
- \*-------------------------------------------------------------------------*/
-@@ -117,7 +118,7 @@ p_timeout timeout_markstart(p_timeout tm) {
- }
-
- /*-------------------------------------------------------------------------*\
--* Gets time in s, relative to January 1, 1970 (UTC)
-+* Gets time in s, relative to January 1, 1970 (UTC)
- * Returns
- * time in s.
- \*-------------------------------------------------------------------------*/
-@@ -144,11 +145,7 @@ double timeout_gettime(void) {
- * Initializes module
- \*-------------------------------------------------------------------------*/
- int timeout_open(lua_State *L) {
--#if LUA_VERSION_NUM > 501 && !defined(LUA_COMPAT_MODULE)
- luaL_setfuncs(L, func, 0);
--#else
-- luaL_openlib(L, NULL, func, 0);
--#endif
- return 0;
- }
-
-@@ -163,7 +160,7 @@ int timeout_meth_settimeout(lua_State *L, p_timeout tm) {
- const char *mode = luaL_optstring(L, 3, "b");
- switch (*mode) {
- case 'b':
-- tm->block = t;
-+ tm->block = t;
- break;
- case 'r': case 't':
- tm->total = t;
-@@ -176,6 +173,16 @@ int timeout_meth_settimeout(lua_State *L, p_timeout tm) {
- return 1;
- }
-
-+/*-------------------------------------------------------------------------*\
-+* Gets timeout values for IO operations
-+* Lua Output: block, total
-+\*-------------------------------------------------------------------------*/
-+int timeout_meth_gettimeout(lua_State *L, p_timeout tm) {
-+ lua_pushnumber(L, tm->block);
-+ lua_pushnumber(L, tm->total);
-+ return 2;
-+}
-+
- /*=========================================================================*\
- * Test support functions
- \*=========================================================================*/
-diff --git a/src/timeout.h b/src/timeout.h
-index 6715ca7..af90231 100644
---- a/src/timeout.h
-+++ b/src/timeout.h
-@@ -22,6 +22,7 @@ p_timeout timeout_markstart(p_timeout tm);
- double timeout_getstart(p_timeout tm);
- double timeout_gettime(void);
- int timeout_meth_settimeout(lua_State *L, p_timeout tm);
-+int timeout_meth_gettimeout(lua_State *L, p_timeout tm);
-
- #define timeout_iszero(tm) ((tm)->block == 0.0)
-
-diff --git a/src/tp.lua b/src/tp.lua
-index cbeff56..328cbab 100644
---- a/src/tp.lua
-+++ b/src/tp.lua
-@@ -74,7 +74,7 @@ function metat.__index:command(cmd, arg)
- end
-
- function metat.__index:sink(snk, pat)
-- local chunk, err = c:receive(pat)
-+ local chunk, err = self.c:receive(pat)
- return snk(chunk, err)
- end
-
-diff --git a/src/udp.c b/src/udp.c
-index a9f2393..ec97252 100644
---- a/src/udp.c
-+++ b/src/udp.c
-@@ -7,6 +7,7 @@
-
- #include "lua.h"
- #include "lauxlib.h"
-+#include "compat.h"
-
- #include "auxiliar.h"
- #include "socket.h"
-@@ -26,6 +27,7 @@
- * Internal function prototypes
- \*=========================================================================*/
- static int global_create(lua_State *L);
-+static int global_create4(lua_State *L);
- static int global_create6(lua_State *L);
- static int meth_send(lua_State *L);
- static int meth_sendto(lua_State *L);
-@@ -34,6 +36,7 @@ static int meth_receivefrom(lua_State *L);
- static int meth_getfamily(lua_State *L);
- static int meth_getsockname(lua_State *L);
- static int meth_getpeername(lua_State *L);
-+static int meth_gettimeout(lua_State *L);
- static int meth_setsockname(lua_State *L);
- static int meth_setpeername(lua_State *L);
- static int meth_close(lua_State *L);
-@@ -64,6 +67,7 @@ static luaL_Reg udp_methods[] = {
- {"setpeername", meth_setpeername},
- {"setsockname", meth_setsockname},
- {"settimeout", meth_settimeout},
-+ {"gettimeout", meth_gettimeout},
- {NULL, NULL}
- };
-
-@@ -89,6 +93,10 @@ static t_opt optset[] = {
-
- /* socket options for getoption */
- static t_opt optget[] = {
-+ {"dontroute", opt_get_dontroute},
-+ {"broadcast", opt_get_broadcast},
-+ {"reuseaddr", opt_get_reuseaddr},
-+ {"reuseport", opt_get_reuseport},
- {"ip-multicast-if", opt_get_ip_multicast_if},
- {"ip-multicast-loop", opt_get_ip_multicast_loop},
- {"error", opt_get_error},
-@@ -102,6 +110,7 @@ static t_opt optget[] = {
- /* functions in library namespace */
- static luaL_Reg func[] = {
- {"udp", global_create},
-+ {"udp4", global_create4},
- {"udp6", global_create6},
- {NULL, NULL}
- };
-@@ -109,8 +118,7 @@ static luaL_Reg func[] = {
- /*-------------------------------------------------------------------------*\
- * Initializes module
- \*-------------------------------------------------------------------------*/
--int udp_open(lua_State *L)
--{
-+int udp_open(lua_State *L) {
- /* create classes */
- auxiliar_newclass(L, "udp{connected}", udp_methods);
- auxiliar_newclass(L, "udp{unconnected}", udp_methods);
-@@ -120,18 +128,18 @@ int udp_open(lua_State *L)
- auxiliar_add2group(L, "udp{connected}", "select{able}");
- auxiliar_add2group(L, "udp{unconnected}", "select{able}");
- /* define library functions */
--#if LUA_VERSION_NUM > 501 && !defined(LUA_COMPAT_MODULE)
- luaL_setfuncs(L, func, 0);
--#else
-- luaL_openlib(L, NULL, func, 0);
--#endif
-+ /* export default UDP size */
-+ lua_pushliteral(L, "_DATAGRAMSIZE");
-+ lua_pushinteger(L, UDP_DATAGRAMSIZE);
-+ lua_rawset(L, -3);
- return 0;
- }
-
- /*=========================================================================*\
- * Lua methods
- \*=========================================================================*/
--const char *udp_strerror(int err) {
-+static const char *udp_strerror(int err) {
- /* a 'closed' error on an unconnected means the target address was not
- * accepted by the transport layer */
- if (err == IO_CLOSED) return "refused";
-@@ -182,7 +190,7 @@ static int meth_sendto(lua_State *L) {
- return 2;
- }
- timeout_markstart(tm);
-- err = socket_sendto(&udp->sock, data, count, &sent, ai->ai_addr,
-+ err = socket_sendto(&udp->sock, data, count, &sent, ai->ai_addr,
- (socklen_t) ai->ai_addrlen, tm);
- freeaddrinfo(ai);
- if (err != IO_DONE) {
-@@ -199,71 +207,80 @@ static int meth_sendto(lua_State *L) {
- \*-------------------------------------------------------------------------*/
- static int meth_receive(lua_State *L) {
- p_udp udp = (p_udp) auxiliar_checkgroup(L, "udp{any}", 1);
-- char buffer[UDP_DATAGRAMSIZE];
-- size_t got, count = (size_t) luaL_optnumber(L, 2, sizeof(buffer));
-+ char buf[UDP_DATAGRAMSIZE];
-+ size_t got, wanted = (size_t) luaL_optnumber(L, 2, sizeof(buf));
-+ char *dgram = wanted > sizeof(buf)? (char *) malloc(wanted): buf;
- int err;
- p_timeout tm = &udp->tm;
-- count = MIN(count, sizeof(buffer));
- timeout_markstart(tm);
-- err = socket_recv(&udp->sock, buffer, count, &got, tm);
-+ if (!dgram) {
-+ lua_pushnil(L);
-+ lua_pushliteral(L, "out of memory");
-+ return 2;
-+ }
-+ err = socket_recv(&udp->sock, dgram, wanted, &got, tm);
- /* Unlike TCP, recv() of zero is not closed, but a zero-length packet. */
-- if (err == IO_CLOSED)
-- err = IO_DONE;
-- if (err != IO_DONE) {
-+ if (err != IO_DONE && err != IO_CLOSED) {
- lua_pushnil(L);
- lua_pushstring(L, udp_strerror(err));
-+ if (wanted > sizeof(buf)) free(dgram);
- return 2;
- }
-- lua_pushlstring(L, buffer, got);
-+ lua_pushlstring(L, dgram, got);
-+ if (wanted > sizeof(buf)) free(dgram);
- return 1;
- }
-
- /*-------------------------------------------------------------------------*\
- * Receives data and sender from a UDP socket
- \*-------------------------------------------------------------------------*/
--static int meth_receivefrom(lua_State *L)
--{
-+static int meth_receivefrom(lua_State *L) {
- p_udp udp = (p_udp) auxiliar_checkclass(L, "udp{unconnected}", 1);
-- char buffer[UDP_DATAGRAMSIZE];
-- size_t got, count = (size_t) luaL_optnumber(L, 2, sizeof(buffer));
-- int err;
-- p_timeout tm = &udp->tm;
-+ char buf[UDP_DATAGRAMSIZE];
-+ size_t got, wanted = (size_t) luaL_optnumber(L, 2, sizeof(buf));
-+ char *dgram = wanted > sizeof(buf)? (char *) malloc(wanted): buf;
- struct sockaddr_storage addr;
- socklen_t addr_len = sizeof(addr);
- char addrstr[INET6_ADDRSTRLEN];
- char portstr[6];
-+ int err;
-+ p_timeout tm = &udp->tm;
- timeout_markstart(tm);
-- count = MIN(count, sizeof(buffer));
-- err = socket_recvfrom(&udp->sock, buffer, count, &got, (SA *) &addr,
-+ if (!dgram) {
-+ lua_pushnil(L);
-+ lua_pushliteral(L, "out of memory");
-+ return 2;
-+ }
-+ err = socket_recvfrom(&udp->sock, dgram, wanted, &got, (SA *) &addr,
- &addr_len, tm);
- /* Unlike TCP, recv() of zero is not closed, but a zero-length packet. */
-- if (err == IO_CLOSED)
-- err = IO_DONE;
-- if (err != IO_DONE) {
-+ if (err != IO_DONE && err != IO_CLOSED) {
- lua_pushnil(L);
- lua_pushstring(L, udp_strerror(err));
-+ if (wanted > sizeof(buf)) free(dgram);
- return 2;
- }
-- err = getnameinfo((struct sockaddr *)&addr, addr_len, addrstr,
-+ err = getnameinfo((struct sockaddr *)&addr, addr_len, addrstr,
- INET6_ADDRSTRLEN, portstr, 6, NI_NUMERICHOST | NI_NUMERICSERV);
- if (err) {
- lua_pushnil(L);
- lua_pushstring(L, gai_strerror(err));
-+ if (wanted > sizeof(buf)) free(dgram);
- return 2;
- }
-- lua_pushlstring(L, buffer, got);
-+ lua_pushlstring(L, dgram, got);
- lua_pushstring(L, addrstr);
- lua_pushinteger(L, (int) strtol(portstr, (char **) NULL, 10));
-+ if (wanted > sizeof(buf)) free(dgram);
- return 3;
- }
-
- /*-------------------------------------------------------------------------*\
- * Returns family as string
- \*-------------------------------------------------------------------------*/
--static int meth_getfamily(lua_State *L)
--{
-+static int meth_getfamily(lua_State *L) {
- p_udp udp = (p_udp) auxiliar_checkgroup(L, "udp{any}", 1);
-- if (udp->family == PF_INET6) {
-+ if (udp->family == AF_INET6) {
- lua_pushliteral(L, "inet6");
- return 1;
- } else {
-@@ -332,6 +349,11 @@ static int meth_settimeout(lua_State *L) {
- return timeout_meth_settimeout(L, &udp->tm);
- }
-
-+static int meth_gettimeout(lua_State *L) {
-+ p_udp udp = (p_udp) auxiliar_checkgroup(L, "udp{any}", 1);
-+ return timeout_meth_gettimeout(L, &udp->tm);
-+}
-+
- /*-------------------------------------------------------------------------*\
- * Turns a master udp object into a client object.
- \*-------------------------------------------------------------------------*/
-@@ -348,7 +370,7 @@ static int meth_setpeername(lua_State *L) {
- /* make sure we try to connect only to the same family */
- connecthints.ai_family = udp->family;
- if (connecting) {
-- err = inet_tryconnect(&udp->sock, &udp->family, address,
-+ err = inet_tryconnect(&udp->sock, &udp->family, address,
- port, tm, &connecthints);
- if (err) {
- lua_pushnil(L);
-@@ -362,7 +384,6 @@ static int meth_setpeername(lua_State *L) {
- inet_trydisconnect(&udp->sock, udp->family, tm);
- auxiliar_setclass(L, "udp{unconnected}", 1);
- }
-- /* change class to connected or unconnected depending on address */
- lua_pushnumber(L, 1);
- return 1;
- }
-@@ -390,7 +411,7 @@ static int meth_setsockname(lua_State *L) {
- bindhints.ai_socktype = SOCK_DGRAM;
- bindhints.ai_family = udp->family;
- bindhints.ai_flags = AI_PASSIVE;
-- err = inet_trybind(&udp->sock, address, port, &bindhints);
-+ err = inet_trybind(&udp->sock, &udp->family, address, port, &bindhints);
- if (err) {
- lua_pushnil(L);
- lua_pushstring(L, err);
-@@ -407,32 +428,32 @@ static int meth_setsockname(lua_State *L) {
- * Creates a master udp object
- \*-------------------------------------------------------------------------*/
- static int udp_create(lua_State *L, int family) {
-- t_socket sock;
-- const char *err = inet_trycreate(&sock, family, SOCK_DGRAM);
-- /* try to allocate a system socket */
-- if (!err) {
-- /* allocate udp object */
-- p_udp udp = (p_udp) lua_newuserdata(L, sizeof(t_udp));
-- auxiliar_setclass(L, "udp{unconnected}", -1);
-- /* initialize remaining structure fields */
-- socket_setnonblocking(&sock);
-- if (family == PF_INET6) {
-- int yes = 1;
-- setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY,
-- (void *)&yes, sizeof(yes));
-+ /* allocate udp object */
-+ p_udp udp = (p_udp) lua_newuserdata(L, sizeof(t_udp));
-+ auxiliar_setclass(L, "udp{unconnected}", -1);
-+ /* if family is AF_UNSPEC, we leave the socket invalid and
-+ * store AF_UNSPEC into family. This will allow it to later be
-+ * replaced with an AF_INET6 or AF_INET socket upon first use. */
-+ udp->sock = SOCKET_INVALID;
-+ timeout_init(&udp->tm, -1, -1);
-+ udp->family = family;
-+ if (family != AF_UNSPEC) {
-+ const char *err = inet_trycreate(&udp->sock, family, SOCK_DGRAM, 0);
-+ if (err != NULL) {
-+ lua_pushnil(L);
-+ lua_pushstring(L, err);
-+ return 2;
- }
-- udp->sock = sock;
-- timeout_init(&udp->tm, -1, -1);
-- udp->family = family;
-- return 1;
-- } else {
-- lua_pushnil(L);
-- lua_pushstring(L, err);
-- return 2;
-+ socket_setnonblocking(&udp->sock);
- }
-+ return 1;
- }
-
- static int global_create(lua_State *L) {
-+ return udp_create(L, AF_UNSPEC);
-+}
-+
-+static int global_create4(lua_State *L) {
- return udp_create(L, AF_INET);
- }
-
-diff --git a/src/udp.h b/src/udp.h
-index 2b831a5..be9b6a5 100644
---- a/src/udp.h
-+++ b/src/udp.h
-@@ -8,7 +8,7 @@
- * (AF_INET, SOCK_DGRAM).
- *
- * Two classes are defined: connected and unconnected. UDP objects are
--* originally unconnected. They can be "connected" to a given address
-+* originally unconnected. They can be "connected" to a given address
- * with a call to the setpeername function. The same function can be used to
- * break the connection.
- \*=========================================================================*/
-@@ -17,7 +17,6 @@
- #include "timeout.h"
- #include "socket.h"
-
--/* can't be larger than wsocket.c MAXCHUNK!!! */
- #define UDP_DATAGRAMSIZE 8192
-
- typedef struct t_udp_ {
-diff --git a/src/unix.c b/src/unix.c
-index 91aaaf8..5bc3148 100644
---- a/src/unix.c
-+++ b/src/unix.c
-@@ -1,8 +1,8 @@
- /*=========================================================================*\
--* Unix domain socket
-+* Unix domain socket
- * LuaSocket toolkit
- \*=========================================================================*/
--#include <string.h>
-+#include <string.h>
-
- #include "lua.h"
- #include "lauxlib.h"
-@@ -11,7 +11,7 @@
- #include "socket.h"
- #include "options.h"
- #include "unix.h"
--#include <sys/un.h>
-+#include <sys/un.h>
-
- /*=========================================================================*\
- * Internal function prototypes
-@@ -68,15 +68,6 @@ static t_opt optset[] = {
- {NULL, NULL}
- };
-
--/* our socket creation function */
--/* this is an ad-hoc module that returns a single function
-- * as such, do not include other functions in this array. */
--static luaL_Reg func[] = {
-- {"unix", global_create},
-- {NULL, NULL}
--};
--
--
- /*-------------------------------------------------------------------------*\
- * Initializes module
- \*-------------------------------------------------------------------------*/
-@@ -89,15 +80,8 @@ int luaopen_socket_unix(lua_State *L) {
- auxiliar_add2group(L, "unix{master}", "unix{any}");
- auxiliar_add2group(L, "unix{client}", "unix{any}");
- auxiliar_add2group(L, "unix{server}", "unix{any}");
--#if LUA_VERSION_NUM > 501 && !defined(LUA_COMPAT_MODULE)
-- lua_pushcfunction(L, global_create);
-- (void) func;
--#else
-- /* set function into socket namespace */
-- luaL_openlib(L, "socket", func, 0);
-- lua_pushcfunction(L, global_create);
--#endif
- /* return the function instead of the 'socket' table */
-+ lua_pushcfunction(L, global_create);
- return 1;
- }
-
-@@ -147,7 +131,7 @@ static int meth_getfd(lua_State *L) {
- /* this is very dangerous, but can be handy for those that are brave enough */
- static int meth_setfd(lua_State *L) {
- p_unix un = (p_unix) auxiliar_checkgroup(L, "unix{any}", 1);
-- un->sock = (t_socket) luaL_checknumber(L, 2);
-+ un->sock = (t_socket) luaL_checknumber(L, 2);
- return 0;
- }
-
-@@ -158,8 +142,8 @@ static int meth_dirty(lua_State *L) {
- }
-
- /*-------------------------------------------------------------------------*\
--* Waits for and returns a client object attempting connection to the
--* server object
-+* Waits for and returns a client object attempting connection to the
-+* server object
- \*-------------------------------------------------------------------------*/
- static int meth_accept(lua_State *L) {
- p_unix server = (p_unix) auxiliar_checkclass(L, "unix{server}", 1);
-@@ -173,20 +157,20 @@ static int meth_accept(lua_State *L) {
- /* initialize structure fields */
- socket_setnonblocking(&sock);
- clnt->sock = sock;
-- io_init(&clnt->io, (p_send)socket_send, (p_recv)socket_recv,
-+ io_init(&clnt->io, (p_send)socket_send, (p_recv)socket_recv,
- (p_error) socket_ioerror, &clnt->sock);
- timeout_init(&clnt->tm, -1, -1);
- buffer_init(&clnt->buf, &clnt->io, &clnt->tm);
- return 1;
- } else {
-- lua_pushnil(L);
-+ lua_pushnil(L);
- lua_pushstring(L, socket_strerror(err));
- return 2;
- }
- }
-
- /*-------------------------------------------------------------------------*\
--* Binds an object to an address
-+* Binds an object to an address
- \*-------------------------------------------------------------------------*/
- static const char *unix_trybind(p_unix un, const char *path) {
- struct sockaddr_un local;
-@@ -197,16 +181,16 @@ static const char *unix_trybind(p_unix un, const char *path) {
- strcpy(local.sun_path, path);
- local.sun_family = AF_UNIX;
- #ifdef UNIX_HAS_SUN_LEN
-- local.sun_len = sizeof(local.sun_family) + sizeof(local.sun_len)
-+ local.sun_len = sizeof(local.sun_family) + sizeof(local.sun_len)
- + len + 1;
- err = socket_bind(&un->sock, (SA *) &local, local.sun_len);
-
--#else
-- err = socket_bind(&un->sock, (SA *) &local,
-+#else
-+ err = socket_bind(&un->sock, (SA *) &local,
- sizeof(local.sun_family) + len);
- #endif
- if (err != IO_DONE) socket_destroy(&un->sock);
-- return socket_strerror(err);
-+ return socket_strerror(err);
- }
-
- static int meth_bind(lua_State *L) {
-@@ -236,11 +220,11 @@ static const char *unix_tryconnect(p_unix un, const char *path)
- remote.sun_family = AF_UNIX;
- timeout_markstart(&un->tm);
- #ifdef UNIX_HAS_SUN_LEN
-- remote.sun_len = sizeof(remote.sun_family) + sizeof(remote.sun_len)
-+ remote.sun_len = sizeof(remote.sun_family) + sizeof(remote.sun_len)
- + len + 1;
- err = socket_connect(&un->sock, (SA *) &remote, remote.sun_len, &un->tm);
- #else
-- err = socket_connect(&un->sock, (SA *) &remote,
-+ err = socket_connect(&un->sock, (SA *) &remote,
- sizeof(remote.sun_family) + len, &un->tm);
- #endif
- if (err != IO_DONE) socket_destroy(&un->sock);
-@@ -264,7 +248,7 @@ static int meth_connect(lua_State *L)
- }
-
- /*-------------------------------------------------------------------------*\
--* Closes socket used by object
-+* Closes socket used by object
- \*-------------------------------------------------------------------------*/
- static int meth_close(lua_State *L)
- {
-@@ -319,13 +303,13 @@ static int meth_settimeout(lua_State *L) {
- * Library functions
- \*=========================================================================*/
- /*-------------------------------------------------------------------------*\
--* Creates a master unix object
-+* Creates a master unix object
- \*-------------------------------------------------------------------------*/
- static int global_create(lua_State *L) {
- t_socket sock;
- int err = socket_create(&sock, AF_UNIX, SOCK_STREAM, 0);
- /* try to allocate a system socket */
-- if (err == IO_DONE) {
-+ if (err == IO_DONE) {
- /* allocate unix object */
- p_unix un = (p_unix) lua_newuserdata(L, sizeof(t_unix));
- /* set its type as master object */
-@@ -333,7 +317,7 @@ static int global_create(lua_State *L) {
- /* initialize remaining structure fields */
- socket_setnonblocking(&sock);
- un->sock = sock;
-- io_init(&un->io, (p_send) socket_send, (p_recv) socket_recv,
-+ io_init(&un->io, (p_send) socket_send, (p_recv) socket_recv,
- (p_error) socket_ioerror, &un->sock);
- timeout_init(&un->tm, -1, -1);
- buffer_init(&un->buf, &un->io, &un->tm);
-diff --git a/src/url.lua b/src/url.lua
-index 7809535..fbd93d1 100644
---- a/src/url.lua
-+++ b/src/url.lua
-@@ -219,6 +219,7 @@ end
- -- corresponding absolute url
- -----------------------------------------------------------------------------
- function _M.absolute(base_url, relative_url)
-+ local base_parsed
- if base.type(base_url) == "table" then
- base_parsed = base_url
- base_url = _M.build(base_parsed)
-diff --git a/src/usocket.c b/src/usocket.c
-index 096ecd0..8adc573 100644
---- a/src/usocket.c
-+++ b/src/usocket.c
-@@ -4,12 +4,13 @@
- *
- * The code is now interrupt-safe.
- * The penalty of calling select to avoid busy-wait is only paid when
--* the I/O call fail in the first place.
-+* the I/O call fail in the first place.
- \*=========================================================================*/
--#include <string.h>
-+#include <string.h>
- #include <signal.h>
-
- #include "socket.h"
-+#include "pierror.h"
-
- /*-------------------------------------------------------------------------*\
- * Wait for readable/writable/connected socket with timeout
-@@ -72,7 +73,7 @@ int socket_waitfd(p_socket ps, int sw, p_timeout tm) {
-
-
- /*-------------------------------------------------------------------------*\
--* Initializes module
-+* Initializes module
- \*-------------------------------------------------------------------------*/
- int socket_open(void) {
- /* instals a handler to ignore sigpipe or it will crash us */
-@@ -81,7 +82,7 @@ int socket_open(void) {
- }
-
- /*-------------------------------------------------------------------------*\
--* Close module
-+* Close module
- \*-------------------------------------------------------------------------*/
- int socket_close(void) {
- return 1;
-@@ -92,7 +93,6 @@ int socket_close(void) {
- \*-------------------------------------------------------------------------*/
- void socket_destroy(p_socket ps) {
- if (*ps != SOCKET_INVALID) {
-- socket_setblocking(ps);
- close(*ps);
- *ps = SOCKET_INVALID;
- }
-@@ -101,7 +101,7 @@ void socket_destroy(p_socket ps) {
- /*-------------------------------------------------------------------------*\
- * Select with timeout control
- \*-------------------------------------------------------------------------*/
--int socket_select(t_socket n, fd_set *rfds, fd_set *wfds, fd_set *efds,
-+int socket_select(t_socket n, fd_set *rfds, fd_set *wfds, fd_set *efds,
- p_timeout tm) {
- int ret;
- do {
-@@ -120,8 +120,8 @@ int socket_select(t_socket n, fd_set *rfds, fd_set *wfds, fd_set *efds,
- \*-------------------------------------------------------------------------*/
- int socket_create(p_socket ps, int domain, int type, int protocol) {
- *ps = socket(domain, type, protocol);
-- if (*ps != SOCKET_INVALID) return IO_DONE;
-- else return errno;
-+ if (*ps != SOCKET_INVALID) return IO_DONE;
-+ else return errno;
- }
-
- /*-------------------------------------------------------------------------*\
-@@ -130,29 +130,25 @@ int socket_create(p_socket ps, int domain, int type, int protocol) {
- int socket_bind(p_socket ps, SA *addr, socklen_t len) {
- int err = IO_DONE;
- socket_setblocking(ps);
-- if (bind(*ps, addr, len) < 0) err = errno;
-+ if (bind(*ps, addr, len) < 0) err = errno;
- socket_setnonblocking(ps);
- return err;
- }
-
- /*-------------------------------------------------------------------------*\
--*
-+*
- \*-------------------------------------------------------------------------*/
- int socket_listen(p_socket ps, int backlog) {
-- int err = IO_DONE;
-- socket_setblocking(ps);
-- if (listen(*ps, backlog)) err = errno;
-- socket_setnonblocking(ps);
-+ int err = IO_DONE;
-+ if (listen(*ps, backlog)) err = errno;
- return err;
- }
-
- /*-------------------------------------------------------------------------*\
--*
-+*
- \*-------------------------------------------------------------------------*/
- void socket_shutdown(p_socket ps, int how) {
-- socket_setblocking(ps);
- shutdown(*ps, how);
-- socket_setnonblocking(ps);
- }
-
- /*-------------------------------------------------------------------------*\
-@@ -166,7 +162,7 @@ int socket_connect(p_socket ps, SA *addr, socklen_t len, p_timeout tm) {
- do if (connect(*ps, addr, len) == 0) return IO_DONE;
- while ((err = errno) == EINTR);
- /* if connection failed immediately, return error code */
-- if (err != EINPROGRESS && err != EAGAIN) return err;
-+ if (err != EINPROGRESS && err != EAGAIN) return err;
- /* zero timeout case optimization */
- if (timeout_iszero(tm)) return IO_TIMEOUT;
- /* wait until we have the result of the connection attempt or timeout */
-@@ -181,7 +177,7 @@ int socket_connect(p_socket ps, SA *addr, socklen_t len, p_timeout tm) {
- * Accept with timeout
- \*-------------------------------------------------------------------------*/
- int socket_accept(p_socket ps, p_socket pa, SA *addr, socklen_t *len, p_timeout tm) {
-- if (*ps == SOCKET_INVALID) return IO_CLOSED;
-+ if (*ps == SOCKET_INVALID) return IO_CLOSED;
- for ( ;; ) {
- int err;
- if ((*pa = accept(*ps, addr, len)) != SOCKET_INVALID) return IO_DONE;
-@@ -197,7 +193,7 @@ int socket_accept(p_socket ps, p_socket pa, SA *addr, socklen_t *len, p_timeout
- /*-------------------------------------------------------------------------*\
- * Send with timeout
- \*-------------------------------------------------------------------------*/
--int socket_send(p_socket ps, const char *data, size_t count,
-+int socket_send(p_socket ps, const char *data, size_t count,
- size_t *sent, p_timeout tm)
- {
- int err;
-@@ -215,6 +211,8 @@ int socket_send(p_socket ps, const char *data, size_t count,
- err = errno;
- /* EPIPE means the connection was closed */
- if (err == EPIPE) return IO_CLOSED;
-+ /* EPROTOTYPE means the connection is being closed (on Yosemite!)*/
-+ if (err == EPROTOTYPE) continue;
- /* we call was interrupted, just try again */
- if (err == EINTR) continue;
- /* if failed fatal reason, report error */
-@@ -229,20 +227,21 @@ int socket_send(p_socket ps, const char *data, size_t count,
- /*-------------------------------------------------------------------------*\
- * Sendto with timeout
- \*-------------------------------------------------------------------------*/
--int socket_sendto(p_socket ps, const char *data, size_t count, size_t *sent,
-+int socket_sendto(p_socket ps, const char *data, size_t count, size_t *sent,
- SA *addr, socklen_t len, p_timeout tm)
- {
- int err;
- *sent = 0;
- if (*ps == SOCKET_INVALID) return IO_CLOSED;
- for ( ;; ) {
-- long put = (long) sendto(*ps, data, count, 0, addr, len);
-+ long put = (long) sendto(*ps, data, count, 0, addr, len);
- if (put >= 0) {
- *sent = put;
- return IO_DONE;
- }
- err = errno;
- if (err == EPIPE) return IO_CLOSED;
-+ if (err == EPROTOTYPE) continue;
- if (err == EINTR) continue;
- if (err != EAGAIN) return err;
- if ((err = socket_waitfd(ps, WAITFD_W, tm)) != IO_DONE) return err;
-@@ -266,8 +265,8 @@ int socket_recv(p_socket ps, char *data, size_t count, size_t *got, p_timeout tm
- err = errno;
- if (taken == 0) return IO_CLOSED;
- if (err == EINTR) continue;
-- if (err != EAGAIN) return err;
-- if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err;
-+ if (err != EAGAIN) return err;
-+ if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err;
- }
- return IO_UNKNOWN;
- }
-@@ -275,7 +274,7 @@ int socket_recv(p_socket ps, char *data, size_t count, size_t *got, p_timeout tm
- /*-------------------------------------------------------------------------*\
- * Recvfrom with timeout
- \*-------------------------------------------------------------------------*/
--int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got,
-+int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got,
- SA *addr, socklen_t *len, p_timeout tm) {
- int err;
- *got = 0;
-@@ -289,8 +288,8 @@ int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got,
- err = errno;
- if (taken == 0) return IO_CLOSED;
- if (err == EINTR) continue;
-- if (err != EAGAIN) return err;
-- if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err;
-+ if (err != EAGAIN) return err;
-+ if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err;
- }
- return IO_UNKNOWN;
- }
-@@ -303,7 +302,7 @@ int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got,
- * with send/recv replaced with write/read. We can't just use write/read
- * in the socket version, because behaviour when size is zero is different.
- \*-------------------------------------------------------------------------*/
--int socket_write(p_socket ps, const char *data, size_t count,
-+int socket_write(p_socket ps, const char *data, size_t count,
- size_t *sent, p_timeout tm)
- {
- int err;
-@@ -321,6 +320,8 @@ int socket_write(p_socket ps, const char *data, size_t count,
- err = errno;
- /* EPIPE means the connection was closed */
- if (err == EPIPE) return IO_CLOSED;
-+ /* EPROTOTYPE means the connection is being closed (on Yosemite!)*/
-+ if (err == EPROTOTYPE) continue;
- /* we call was interrupted, just try again */
- if (err == EINTR) continue;
- /* if failed fatal reason, report error */
-@@ -349,8 +350,8 @@ int socket_read(p_socket ps, char *data, size_t count, size_t *got, p_timeout tm
- err = errno;
- if (taken == 0) return IO_CLOSED;
- if (err == EINTR) continue;
-- if (err != EAGAIN) return err;
-- if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err;
-+ if (err != EAGAIN) return err;
-+ if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err;
- }
- return IO_UNKNOWN;
- }
-@@ -374,7 +375,7 @@ void socket_setnonblocking(p_socket ps) {
- }
-
- /*-------------------------------------------------------------------------*\
--* DNS helpers
-+* DNS helpers
- \*-------------------------------------------------------------------------*/
- int socket_gethostbyaddr(const char *addr, socklen_t len, struct hostent **hp) {
- *hp = gethostbyaddr(addr, len, AF_INET);
-@@ -399,7 +400,7 @@ int socket_gethostbyname(const char *addr, struct hostent **hp) {
- const char *socket_hoststrerror(int err) {
- if (err <= 0) return io_strerror(err);
- switch (err) {
-- case HOST_NOT_FOUND: return "host not found";
-+ case HOST_NOT_FOUND: return PIE_HOST_NOT_FOUND;
- default: return hstrerror(err);
- }
- }
-@@ -407,42 +408,43 @@ const char *socket_hoststrerror(int err) {
- const char *socket_strerror(int err) {
- if (err <= 0) return io_strerror(err);
- switch (err) {
-- case EADDRINUSE: return "address already in use";
-- case EISCONN: return "already connected";
-- case EACCES: return "permission denied";
-- case ECONNREFUSED: return "connection refused";
-- case ECONNABORTED: return "closed";
-- case ECONNRESET: return "closed";
-- case ETIMEDOUT: return "timeout";
-- default: return strerror(err);
-+ case EADDRINUSE: return PIE_ADDRINUSE;
-+ case EISCONN: return PIE_ISCONN;
-+ case EACCES: return PIE_ACCESS;
-+ case ECONNREFUSED: return PIE_CONNREFUSED;
-+ case ECONNABORTED: return PIE_CONNABORTED;
-+ case ECONNRESET: return PIE_CONNRESET;
-+ case ETIMEDOUT: return PIE_TIMEDOUT;
-+ default: {
-+ return strerror(err);
-+ }
- }
- }
-
- const char *socket_ioerror(p_socket ps, int err) {
- (void) ps;
- return socket_strerror(err);
--}
-+}
-
- const char *socket_gaistrerror(int err) {
-- if (err == 0) return NULL;
-+ if (err == 0) return NULL;
- switch (err) {
-- case EAI_AGAIN: return "temporary failure in name resolution";
-- case EAI_BADFLAGS: return "invalid value for ai_flags";
-+ case EAI_AGAIN: return PIE_AGAIN;
-+ case EAI_BADFLAGS: return PIE_BADFLAGS;
- #ifdef EAI_BADHINTS
-- case EAI_BADHINTS: return "invalid value for hints";
-+ case EAI_BADHINTS: return PIE_BADHINTS;
- #endif
-- case EAI_FAIL: return "non-recoverable failure in name resolution";
-- case EAI_FAMILY: return "ai_family not supported";
-- case EAI_MEMORY: return "memory allocation failure";
-- case EAI_NONAME:
-- return "host or service not provided, or not known";
-- case EAI_OVERFLOW: return "argument buffer overflow";
-+ case EAI_FAIL: return PIE_FAIL;
-+ case EAI_FAMILY: return PIE_FAMILY;
-+ case EAI_MEMORY: return PIE_MEMORY;
-+ case EAI_NONAME: return PIE_NONAME;
-+ case EAI_OVERFLOW: return PIE_OVERFLOW;
- #ifdef EAI_PROTOCOL
-- case EAI_PROTOCOL: return "resolved protocol is unknown";
-+ case EAI_PROTOCOL: return PIE_PROTOCOL;
- #endif
-- case EAI_SERVICE: return "service not supported for socket type";
-- case EAI_SOCKTYPE: return "ai_socktype not supported";
-- case EAI_SYSTEM: return strerror(errno);
-+ case EAI_SERVICE: return PIE_SERVICE;
-+ case EAI_SOCKTYPE: return PIE_SOCKTYPE;
-+ case EAI_SYSTEM: return strerror(errno);
- default: return gai_strerror(err);
- }
- }
-diff --git a/src/wsocket.c b/src/wsocket.c
-index b4a4384..8ecb0fc 100644
---- a/src/wsocket.c
-+++ b/src/wsocket.c
-@@ -3,33 +3,34 @@
- * LuaSocket toolkit
- *
- * The penalty of calling select to avoid busy-wait is only paid when
--* the I/O call fail in the first place.
-+* the I/O call fail in the first place.
- \*=========================================================================*/
- #include <string.h>
-
- #include "socket.h"
-+#include "pierror.h"
-
- /* WinSock doesn't have a strerror... */
- static const char *wstrerror(int err);
-
- /*-------------------------------------------------------------------------*\
--* Initializes module
-+* Initializes module
- \*-------------------------------------------------------------------------*/
- int socket_open(void) {
- WSADATA wsaData;
-- WORD wVersionRequested = MAKEWORD(2, 0);
-+ WORD wVersionRequested = MAKEWORD(2, 0);
- int err = WSAStartup(wVersionRequested, &wsaData );
- if (err != 0) return 0;
- if ((LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 0) &&
- (LOBYTE(wsaData.wVersion) != 1 || HIBYTE(wsaData.wVersion) != 1)) {
- WSACleanup();
-- return 0;
-+ return 0;
- }
- return 1;
- }
-
- /*-------------------------------------------------------------------------*\
--* Close module
-+* Close module
- \*-------------------------------------------------------------------------*/
- int socket_close(void) {
- WSACleanup();
-@@ -50,10 +51,10 @@ int socket_waitfd(p_socket ps, int sw, p_timeout tm) {
- struct timeval tv, *tp = NULL;
- double t;
- if (timeout_iszero(tm)) return IO_TIMEOUT; /* optimize timeout == 0 case */
-- if (sw & WAITFD_R) {
-- FD_ZERO(&rfds);
-+ if (sw & WAITFD_R) {
-+ FD_ZERO(&rfds);
- FD_SET(*ps, &rfds);
-- rp = &rfds;
-+ rp = &rfds;
- }
- if (sw & WAITFD_W) { FD_ZERO(&wfds); FD_SET(*ps, &wfds); wp = &wfds; }
- if (sw & WAITFD_C) { FD_ZERO(&efds); FD_SET(*ps, &efds); ep = &efds; }
-@@ -72,9 +73,9 @@ int socket_waitfd(p_socket ps, int sw, p_timeout tm) {
- /*-------------------------------------------------------------------------*\
- * Select with int timeout in ms
- \*-------------------------------------------------------------------------*/
--int socket_select(t_socket n, fd_set *rfds, fd_set *wfds, fd_set *efds,
-+int socket_select(t_socket n, fd_set *rfds, fd_set *wfds, fd_set *efds,
- p_timeout tm) {
-- struct timeval tv;
-+ struct timeval tv;
- double t = timeout_get(tm);
- tv.tv_sec = (int) t;
- tv.tv_usec = (int) ((t - tv.tv_sec) * 1.0e6);
-@@ -96,7 +97,7 @@ void socket_destroy(p_socket ps) {
- }
-
- /*-------------------------------------------------------------------------*\
--*
-+*
- \*-------------------------------------------------------------------------*/
- void socket_shutdown(p_socket ps, int how) {
- socket_setblocking(ps);
-@@ -134,10 +135,10 @@ int socket_connect(p_socket ps, SA *addr, socklen_t len, p_timeout tm) {
- /* give windows time to set the error (yes, disgusting) */
- Sleep(10);
- /* find out why we failed */
-- getsockopt(*ps, SOL_SOCKET, SO_ERROR, (char *)&err, &len);
-+ getsockopt(*ps, SOL_SOCKET, SO_ERROR, (char *)&err, &len);
- /* we KNOW there was an error. if 'why' is 0, we will return
- * "unknown error", but it's not really our fault */
-- return err > 0? err: IO_UNKNOWN;
-+ return err > 0? err: IO_UNKNOWN;
- } else return err;
-
- }
-@@ -154,7 +155,7 @@ int socket_bind(p_socket ps, SA *addr, socklen_t len) {
- }
-
- /*-------------------------------------------------------------------------*\
--*
-+*
- \*-------------------------------------------------------------------------*/
- int socket_listen(p_socket ps, int backlog) {
- int err = IO_DONE;
-@@ -167,7 +168,7 @@ int socket_listen(p_socket ps, int backlog) {
- /*-------------------------------------------------------------------------*\
- * Accept with timeout
- \*-------------------------------------------------------------------------*/
--int socket_accept(p_socket ps, p_socket pa, SA *addr, socklen_t *len,
-+int socket_accept(p_socket ps, p_socket pa, SA *addr, socklen_t *len,
- p_timeout tm) {
- if (*ps == SOCKET_INVALID) return IO_CLOSED;
- for ( ;; ) {
-@@ -175,21 +176,21 @@ int socket_accept(p_socket ps, p_socket pa, SA *addr, socklen_t *len,
- /* try to get client socket */
- if ((*pa = accept(*ps, addr, len)) != SOCKET_INVALID) return IO_DONE;
- /* find out why we failed */
-- err = WSAGetLastError();
-+ err = WSAGetLastError();
- /* if we failed because there was no connectoin, keep trying */
- if (err != WSAEWOULDBLOCK && err != WSAECONNABORTED) return err;
- /* call select to avoid busy wait */
- if ((err = socket_waitfd(ps, WAITFD_R, tm)) != IO_DONE) return err;
-- }
-+ }
- }
-
- /*-------------------------------------------------------------------------*\
- * Send with timeout
--* On windows, if you try to send 10MB, the OS will buffer EVERYTHING
--* this can take an awful lot of time and we will end up blocked.
-+* On windows, if you try to send 10MB, the OS will buffer EVERYTHING
-+* this can take an awful lot of time and we will end up blocked.
- * Therefore, whoever calls this function should not pass a huge buffer.
- \*-------------------------------------------------------------------------*/
--int socket_send(p_socket ps, const char *data, size_t count,
-+int socket_send(p_socket ps, const char *data, size_t count,
- size_t *sent, p_timeout tm)
- {
- int err;
-@@ -206,18 +207,18 @@ int socket_send(p_socket ps, const char *data, size_t count,
- return IO_DONE;
- }
- /* deal with failure */
-- err = WSAGetLastError();
-+ err = WSAGetLastError();
- /* we can only proceed if there was no serious error */
- if (err != WSAEWOULDBLOCK) return err;
- /* avoid busy wait */
- if ((err = socket_waitfd(ps, WAITFD_W, tm)) != IO_DONE) return err;
-- }
-+ }
- }
-
- /*-------------------------------------------------------------------------*\
- * Sendto with timeout
- \*-------------------------------------------------------------------------*/
--int socket_sendto(p_socket ps, const char *data, size_t count, size_t *sent,
-+int socket_sendto(p_socket ps, const char *data, size_t count, size_t *sent,
- SA *addr, socklen_t len, p_timeout tm)
- {
- int err;
-@@ -229,17 +230,17 @@ int socket_sendto(p_socket ps, const char *data, size_t count, size_t *sent,
- *sent = put;
- return IO_DONE;
- }
-- err = WSAGetLastError();
-+ err = WSAGetLastError();
- if (err != WSAEWOULDBLOCK) return err;
- if ((err = socket_waitfd(ps, WAITFD_W, tm)) != IO_DONE) return err;
-- }
-+ }
- }
-
- /*-------------------------------------------------------------------------*\
- * Receive with timeout
- \*-------------------------------------------------------------------------*/
--int socket_recv(p_socket ps, char *data, size_t count, size_t *got,
-- p_timeout tm)
-+int socket_recv(p_socket ps, char *data, size_t count, size_t *got,
-+ p_timeout tm)
- {
- int err, prev = IO_DONE;
- *got = 0;
-@@ -252,9 +253,9 @@ int socket_recv(p_socket ps, char *data, size_t count, size_t *got,
- }
- if (taken == 0) return IO_CLOSED;
- err = WSAGetLastError();
-- /* On UDP, a connreset simply means the previous send failed.
-- * So we try again.
-- * On TCP, it means our socket is now useless, so the error passes.
-+ /* On UDP, a connreset simply means the previous send failed.
-+ * So we try again.
-+ * On TCP, it means our socket is now useless, so the error passes.
- * (We will loop again, exiting because the same error will happen) */
- if (err != WSAEWOULDBLOCK) {
- if (err != WSAECONNRESET || prev == WSAECONNRESET) return err;
-@@ -267,8 +268,8 @@ int socket_recv(p_socket ps, char *data, size_t count, size_t *got,
- /*-------------------------------------------------------------------------*\
- * Recvfrom with timeout
- \*-------------------------------------------------------------------------*/
--int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got,
-- SA *addr, socklen_t *len, p_timeout tm)
-+int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got,
-+ SA *addr, socklen_t *len, p_timeout tm)
- {
- int err, prev = IO_DONE;
- *got = 0;
-@@ -281,8 +282,8 @@ int socket_recvfrom(p_socket ps, char *data, size_t count, size_t *got,
- }
- if (taken == 0) return IO_CLOSED;
- err = WSAGetLastError();
-- /* On UDP, a connreset simply means the previous send failed.
-- * So we try again.
-+ /* On UDP, a connreset simply means the previous send failed.
-+ * So we try again.
- * On TCP, it means our socket is now useless, so the error passes.
- * (We will loop again, exiting because the same error will happen) */
- if (err != WSAEWOULDBLOCK) {
-@@ -310,7 +311,7 @@ void socket_setnonblocking(p_socket ps) {
- }
-
- /*-------------------------------------------------------------------------*\
--* DNS helpers
-+* DNS helpers
- \*-------------------------------------------------------------------------*/
- int socket_gethostbyaddr(const char *addr, socklen_t len, struct hostent **hp) {
- *hp = gethostbyaddr(addr, len, AF_INET);
-@@ -330,21 +331,21 @@ int socket_gethostbyname(const char *addr, struct hostent **hp) {
- const char *socket_hoststrerror(int err) {
- if (err <= 0) return io_strerror(err);
- switch (err) {
-- case WSAHOST_NOT_FOUND: return "host not found";
-- default: return wstrerror(err);
-+ case WSAHOST_NOT_FOUND: return PIE_HOST_NOT_FOUND;
-+ default: return wstrerror(err);
- }
- }
-
- const char *socket_strerror(int err) {
- if (err <= 0) return io_strerror(err);
- switch (err) {
-- case WSAEADDRINUSE: return "address already in use";
-- case WSAECONNREFUSED: return "connection refused";
-- case WSAEISCONN: return "already connected";
-- case WSAEACCES: return "permission denied";
-- case WSAECONNABORTED: return "closed";
-- case WSAECONNRESET: return "closed";
-- case WSAETIMEDOUT: return "timeout";
-+ case WSAEADDRINUSE: return PIE_ADDRINUSE;
-+ case WSAECONNREFUSED : return PIE_CONNREFUSED;
-+ case WSAEISCONN: return PIE_ISCONN;
-+ case WSAEACCES: return PIE_ACCESS;
-+ case WSAECONNABORTED: return PIE_CONNABORTED;
-+ case WSAECONNRESET: return PIE_CONNRESET;
-+ case WSAETIMEDOUT: return PIE_TIMEDOUT;
- default: return wstrerror(err);
- }
- }
-@@ -357,7 +358,7 @@ const char *socket_ioerror(p_socket ps, int err) {
- static const char *wstrerror(int err) {
- switch (err) {
- case WSAEINTR: return "Interrupted function call";
-- case WSAEACCES: return "Permission denied";
-+ case WSAEACCES: return PIE_ACCESS; // "Permission denied";
- case WSAEFAULT: return "Bad address";
- case WSAEINVAL: return "Invalid argument";
- case WSAEMFILE: return "Too many open files";
-@@ -370,63 +371,61 @@ static const char *wstrerror(int err) {
- case WSAEPROTOTYPE: return "Protocol wrong type for socket";
- case WSAENOPROTOOPT: return "Bad protocol option";
- case WSAEPROTONOSUPPORT: return "Protocol not supported";
-- case WSAESOCKTNOSUPPORT: return "Socket type not supported";
-+ case WSAESOCKTNOSUPPORT: return PIE_SOCKTYPE; // "Socket type not supported";
- case WSAEOPNOTSUPP: return "Operation not supported";
- case WSAEPFNOSUPPORT: return "Protocol family not supported";
-- case WSAEAFNOSUPPORT:
-- return "Address family not supported by protocol family";
-- case WSAEADDRINUSE: return "Address already in use";
-+ case WSAEAFNOSUPPORT: return PIE_FAMILY; // "Address family not supported by protocol family";
-+ case WSAEADDRINUSE: return PIE_ADDRINUSE; // "Address already in use";
- case WSAEADDRNOTAVAIL: return "Cannot assign requested address";
- case WSAENETDOWN: return "Network is down";
- case WSAENETUNREACH: return "Network is unreachable";
- case WSAENETRESET: return "Network dropped connection on reset";
- case WSAECONNABORTED: return "Software caused connection abort";
-- case WSAECONNRESET: return "Connection reset by peer";
-+ case WSAECONNRESET: return PIE_CONNRESET; // "Connection reset by peer";
- case WSAENOBUFS: return "No buffer space available";
-- case WSAEISCONN: return "Socket is already connected";
-+ case WSAEISCONN: return PIE_ISCONN; // "Socket is already connected";
- case WSAENOTCONN: return "Socket is not connected";
- case WSAESHUTDOWN: return "Cannot send after socket shutdown";
-- case WSAETIMEDOUT: return "Connection timed out";
-- case WSAECONNREFUSED: return "Connection refused";
-+ case WSAETIMEDOUT: return PIE_TIMEDOUT; // "Connection timed out";
-+ case WSAECONNREFUSED: return PIE_CONNREFUSED; // "Connection refused";
- case WSAEHOSTDOWN: return "Host is down";
- case WSAEHOSTUNREACH: return "No route to host";
- case WSAEPROCLIM: return "Too many processes";
- case WSASYSNOTREADY: return "Network subsystem is unavailable";
- case WSAVERNOTSUPPORTED: return "Winsock.dll version out of range";
-- case WSANOTINITIALISED:
-+ case WSANOTINITIALISED:
- return "Successful WSAStartup not yet performed";
- case WSAEDISCON: return "Graceful shutdown in progress";
-- case WSAHOST_NOT_FOUND: return "Host not found";
-+ case WSAHOST_NOT_FOUND: return PIE_HOST_NOT_FOUND; // "Host not found";
- case WSATRY_AGAIN: return "Nonauthoritative host not found";
-- case WSANO_RECOVERY: return "Nonrecoverable name lookup error";
-+ case WSANO_RECOVERY: return PIE_FAIL; // "Nonrecoverable name lookup error";
- case WSANO_DATA: return "Valid name, no data record of requested type";
- default: return "Unknown error";
- }
- }
-
- const char *socket_gaistrerror(int err) {
-- if (err == 0) return NULL;
-+ if (err == 0) return NULL;
- switch (err) {
-- case EAI_AGAIN: return "temporary failure in name resolution";
-- case EAI_BADFLAGS: return "invalid value for ai_flags";
-+ case EAI_AGAIN: return PIE_AGAIN;
-+ case EAI_BADFLAGS: return PIE_BADFLAGS;
- #ifdef EAI_BADHINTS
-- case EAI_BADHINTS: return "invalid value for hints";
-+ case EAI_BADHINTS: return PIE_BADHINTS;
- #endif
-- case EAI_FAIL: return "non-recoverable failure in name resolution";
-- case EAI_FAMILY: return "ai_family not supported";
-- case EAI_MEMORY: return "memory allocation failure";
-- case EAI_NONAME:
-- return "host or service not provided, or not known";
-+ case EAI_FAIL: return PIE_FAIL;
-+ case EAI_FAMILY: return PIE_FAMILY;
-+ case EAI_MEMORY: return PIE_MEMORY;
-+ case EAI_NONAME: return PIE_NONAME;
- #ifdef EAI_OVERFLOW
-- case EAI_OVERFLOW: return "argument buffer overflow";
-+ case EAI_OVERFLOW: return PIE_OVERFLOW;
- #endif
- #ifdef EAI_PROTOCOL
-- case EAI_PROTOCOL: return "resolved protocol is unknown";
-+ case EAI_PROTOCOL: return PIE_PROTOCOL;
- #endif
-- case EAI_SERVICE: return "service not supported for socket type";
-- case EAI_SOCKTYPE: return "ai_socktype not supported";
-+ case EAI_SERVICE: return PIE_SERVICE;
-+ case EAI_SOCKTYPE: return PIE_SOCKTYPE;
- #ifdef EAI_SYSTEM
-- case EAI_SYSTEM: return strerror(errno);
-+ case EAI_SYSTEM: return strerror(errno);
- #endif
- default: return gai_strerror(err);
- }
-diff --git a/test/auth/.htaccess b/test/auth/.htaccess
-new file mode 100644
-index 0000000..bb2794a
---- /dev/null
-+++ b/test/auth/.htaccess
-@@ -0,0 +1,4 @@
-+AuthName "test-auth"
-+ AuthType Basic
-+ AuthUserFile /Users/diego/impa/luasocket/test/auth/.htpasswd
-+ Require valid-user
-diff --git a/test/auth/.htpasswd b/test/auth/.htpasswd
-index fd9002b..cfb2603 100644
---- a/test/auth/.htpasswd
-+++ b/test/auth/.htpasswd
-@@ -1 +1 @@
--luasocket:l8n2npozPB.sQ
-+luasocket:$apr1$47u2O.Me$.m/5BWAtt7GVoxsouIPBR1
-diff --git a/test/excepttest.lua b/test/excepttest.lua
-index ce9f197..80c9cb8 100644
---- a/test/excepttest.lua
-+++ b/test/excepttest.lua
-@@ -1,6 +1,30 @@
- local socket = require("socket")
--try = socket.newtry(function()
-- print("finalized!!!")
-+
-+local finalizer_called
-+
-+local func = socket.protect(function(err, ...)
-+ local try = socket.newtry(function()
-+ finalizer_called = true
-+ end)
-+
-+ if err then
-+ return error(err, 0)
-+ else
-+ return try(...)
-+ end
- end)
--try = socket.protect(try)
--print(try(nil, "it works"))
-+
-+local ret1, ret2, ret3 = func(false, 1, 2, 3)
-+assert(not finalizer_called, "unexpected finalizer call")
-+assert(ret1 == 1 and ret2 == 2 and ret3 == 3, "incorrect return values")
-+
-+ret1, ret2, ret3 = func(false, false, "error message")
-+assert(finalizer_called, "finalizer not called")
-+assert(ret1 == nil and ret2 == "error message" and ret3 == nil, "incorrect return values")
-+
-+local err = {key = "value"}
-+ret1, ret2 = pcall(func, err)
-+assert(not ret1, "error not rethrown")
-+assert(ret2 == err, "incorrect error rethrown")
-+
-+print("OK")
-diff --git a/test/httptest.lua b/test/httptest.lua
-index d5fbb37..63ff921 100644
---- a/test/httptest.lua
-+++ b/test/httptest.lua
-@@ -1,4 +1,4 @@
---- needs Alias from /home/c/diego/tec/luasocket/test to
-+-- needs Alias from /home/c/diego/tec/luasocket/test to
- -- "/luasocket-test" and "/luasocket-test/"
- -- needs ScriptAlias from /home/c/diego/tec/luasocket/test/cgi
- -- to "/luasocket-test-cgi" and "/luasocket-test-cgi/"
-@@ -36,22 +36,22 @@ index = readfile(index_file)
- local check_result = function(response, expect, ignore)
- for i,v in pairs(response) do
- if not ignore[i] then
-- if v ~= expect[i] then
-+ if v ~= expect[i] then
- local f = io.open("err", "w")
- f:write(tostring(v), "\n\n versus\n\n", tostring(expect[i]))
- f:close()
-- fail(i .. " differs!")
-+ fail(i .. " differs!")
- end
- end
- end
- for i,v in pairs(expect) do
- if not ignore[i] then
-- if v ~= response[i] then
-+ if v ~= response[i] then
- local f = io.open("err", "w")
- f:write(tostring(response[i]), "\n\n versus\n\n", tostring(v))
- v = string.sub(type(v) == "string" and v or "", 1, 70)
- f:close()
-- fail(i .. " differs!")
-+ fail(i .. " differs!")
- end
- end
- end
-@@ -61,10 +61,10 @@ end
- local check_request = function(request, expect, ignore)
- local t
- if not request.sink then request.sink, t = ltn12.sink.table() end
-- request.source = request.source or
-+ request.source = request.source or
- (request.body and ltn12.source.string(request.body))
- local response = {}
-- response.code, response.headers, response.status =
-+ response.code, response.headers, response.status =
- socket.skip(1, http.request(request))
- if t and #t > 0 then response.body = table.concat(t) end
- check_result(response, expect, ignore)
-@@ -82,7 +82,7 @@ else fail(back.query) end
- ------------------------------------------------------------------------
- io.write("testing query string correctness: ")
- forth = "this+is+the+query+string"
--back = http.request("http://" .. host .. cgiprefix ..
-+back = http.request("http://" .. host .. cgiprefix ..
- "/query-string?" .. forth)
- if similar(back, forth) then print("ok")
- else fail("failed!") end
-@@ -120,10 +120,10 @@ check_request(request, expect, ignore)
- ------------------------------------------------------------------------
- io.write("testing invalid url: ")
- local r, e = http.request{url = host .. prefix}
--assert(r == nil and e == "invalid host ''")
-+assert(r == nil and e == "invalid host ''")
- r, re = http.request(host .. prefix)
--assert(r == nil and e == re, tostring(r) ..", " .. tostring(re) ..
-- " vs " .. tostring(e))
-+assert(r == nil and e == re, tostring(r) ..", " .. tostring(re) ..
-+ " vs " .. tostring(e))
- print("ok")
-
- io.write("testing invalid empty port: ")
-@@ -212,7 +212,7 @@ os.remove(index_file .. "-back")
- io.write("testing ltn12.(sink|source).chain and mime.(encode|decode): ")
-
- local function b64length(len)
-- local a = math.ceil(len/3)*4
-+ local a = math.ceil(len/3)*4
- local l = math.ceil(a/76)
- return a + l*2
- end
-@@ -313,7 +313,7 @@ ignore = {
- headers = 1
- }
- check_request(request, expect, ignore)
--
-+
- ------------------------------------------------------------------------
- io.write("testing document not found: ")
- request = {
-@@ -429,9 +429,9 @@ print("ok")
- io.write("testing host not found: ")
- local c, e = socket.connect("example.invalid", 80)
- local r, re = http.request{url = "http://example.invalid/does/not/exist"}
--assert(r == nil and e == re, tostring(r) .. " " .. tostring(re))
-+assert(r == nil and e == re, tostring(r) .. " " .. tostring(re))
- r, re = http.request("http://example.invalid/does/not/exist")
--assert(r == nil and e == re)
-+assert(r == nil and e == re)
- print("ok")
-
- ------------------------------------------------------------------------
-diff --git a/test/ltn12test.lua b/test/ltn12test.lua
-index 74a45e8..e3f85fb 100644
---- a/test/ltn12test.lua
-+++ b/test/ltn12test.lua
-@@ -192,6 +192,21 @@ assert(filter(nil, 1), "filter not empty")
- print("ok")
-
- --------------------------------
-+io.write("testing source.chain (with several filters): ")
-+local function double(x) -- filter turning "ABC" into "AABBCC"
-+ if not x then return end
-+ local b={}
-+ for k in x:gmatch'.' do table.insert(b, k..k) end
-+ return table.concat(b)
-+end
-+source = ltn12.source.string(s)
-+source = ltn12.source.chain(source, double, double, double)
-+sink, t = ltn12.sink.table()
-+assert(ltn12.pump.all(source, sink), "returned error")
-+assert(table.concat(t) == double(double(double(s))), "mismatch")
-+print("ok")
-+
-+--------------------------------
- io.write("testing source.chain (with split) and sink.chain (with merge): ")
- source = ltn12.source.string(s)
- filter = split(5)
-@@ -206,6 +221,15 @@ assert(filter2(nil, 1), "filter2 not empty")
- print("ok")
-
- --------------------------------
-+io.write("testing sink.chain (with several filters): ")
-+source = ltn12.source.string(s)
-+sink, t = ltn12.sink.table()
-+sink = ltn12.sink.chain(double, double, double, sink)
-+assert(ltn12.pump.all(source, sink), "returned error")
-+assert(table.concat(t) == double(double(double(s))), "mismatch")
-+print("ok")
-+
-+--------------------------------
- io.write("testing filter.chain (and sink.chain, with split, merge): ")
- source = ltn12.source.string(s)
- filter = split(5)
-@@ -272,3 +296,4 @@ assert(filter3(nil, 1), "filter3 not empty")
- assert(filter4(nil, 1), "filter4 not empty")
- assert(filter5(nil, 1), "filter5 not empty")
- print("ok")
-+
-diff --git a/test/testclnt.lua b/test/testclnt.lua
-index 315783b..170e187 100644
---- a/test/testclnt.lua
-+++ b/test/testclnt.lua
-@@ -8,7 +8,7 @@ function printf(...)
- end
-
- function pass(...)
-- printf(...)
-+ printf(...)
- io.stderr:write("\n")
- end
-
-@@ -45,30 +45,30 @@ function check_timeout(tm, sl, elapsed, err, opp, mode, alldone)
- if not err then warn("must be buffered")
- elseif err == "timeout" then pass("proper timeout")
- else fail("unexpected error '%s'", err) end
-- else
-- if err ~= "timeout" then fail("should have timed out")
-+ else
-+ if err ~= "timeout" then fail("should have timed out")
- else pass("proper timeout") end
- end
- else
- if mode == "total" then
-- if elapsed > tm then
-+ if elapsed > tm then
- if err ~= "timeout" then fail("should have timed out")
- else pass("proper timeout") end
- elseif elapsed < tm then
-- if err then fail(err)
-+ if err then fail(err)
- else pass("ok") end
-- else
-- if alldone then
-- if err then fail("unexpected error '%s'", err)
-+ else
-+ if alldone then
-+ if err then fail("unexpected error '%s'", err)
- else pass("ok") end
- else
-- if err ~= "timeout" then fail(err)
-+ if err ~= "timeout" then fail(err)
- else pass("proper timeoutk") end
- end
- end
-- else
-- if err then fail(err)
-- else pass("ok") end
-+ else
-+ if err then fail(err)
-+ else pass("ok") end
- end
- end
- end
-@@ -104,8 +104,8 @@ control:setoption("tcp-nodelay", true)
- ------------------------------------------------------------------------
- function test_methods(sock, methods)
- for _, v in pairs(methods) do
-- if type(sock[v]) ~= "function" then
-- fail(sock.class .. " method '" .. v .. "' not registered")
-+ if type(sock[v]) ~= "function" then
-+ fail(sock.class .. " method '" .. v .. "' not registered")
- end
- end
- pass(sock.class .. " methods are ok")
-@@ -121,7 +121,7 @@ function test_mixed(len)
- local p3 = "raw " .. string.rep("z", inter) .. "bytes"
- local p4 = "end" .. string.rep("w", inter) .. "bytes"
- local bp1, bp2, bp3, bp4
--remote (string.format("str = data:receive(%d)",
-+remote (string.format("str = data:receive(%d)",
- string.len(p1)+string.len(p2)+string.len(p3)+string.len(p4)))
- sent, err = data:send(p1..p2..p3..p4)
- if err then fail(err) end
-@@ -166,7 +166,7 @@ function test_rawline(len)
- io.stderr:write("length " .. len .. ": ")
- local str, str10, back, err
- str = string.rep(string.char(47), math.mod(len, 10))
-- str10 = string.rep(string.char(120,21,77,4,5,0,7,36,44,100),
-+ str10 = string.rep(string.char(120,21,77,4,5,0,7,36,44,100),
- math.floor(len/10))
- str = str .. str10
- remote "str = data:receive()"
-@@ -216,7 +216,7 @@ function test_totaltimeoutreceive(len, tm, sl)
- data:settimeout(tm, "total")
- local t = socket.gettime()
- str, err, partial, elapsed = data:receive(2*len)
-- check_timeout(tm, sl, elapsed, err, "receive", "total",
-+ check_timeout(tm, sl, elapsed, err, "receive", "total",
- string.len(str or partial) == 2*len)
- end
-
-@@ -236,7 +236,7 @@ function test_totaltimeoutsend(len, tm, sl)
- data:settimeout(tm, "total")
- str = string.rep("a", 2*len)
- total, err, partial, elapsed = data:send(str)
-- check_timeout(tm, sl, elapsed, err, "send", "total",
-+ check_timeout(tm, sl, elapsed, err, "send", "total",
- total == 2*len)
- end
-
-@@ -256,7 +256,7 @@ function test_blockingtimeoutreceive(len, tm, sl)
- ]], 2*tm, len, sl, sl))
- data:settimeout(tm)
- str, err, partial, elapsed = data:receive(2*len)
-- check_timeout(tm, sl, elapsed, err, "receive", "blocking",
-+ check_timeout(tm, sl, elapsed, err, "receive", "blocking",
- string.len(str or partial) == 2*len)
- end
-
-@@ -290,10 +290,10 @@ function empty_connect()
- data = server:accept()
- ]]
- data, err = socket.connect("", port)
-- if not data then
-+ if not data then
- pass("ok")
- data = socket.connect(host, port)
-- else
-+ else
- pass("gethostbyname returns localhost on empty string...")
- end
- end
-@@ -304,15 +304,20 @@ function isclosed(c)
- end
-
- function active_close()
-- reconnect()
-- if isclosed(data) then fail("should not be closed") end
-- data:close()
-- if not isclosed(data) then fail("should be closed") end
-- data = nil
-- local udp = socket.udp()
-+ local tcp = socket.tcp4()
-+ if isclosed(tcp) then fail("should not be closed") end
-+ tcp:close()
-+ if not isclosed(tcp) then fail("should be closed") end
-+ tcp = socket.tcp()
-+ if not isclosed(tcp) then fail("should be closed") end
-+ tcp = nil
-+ local udp = socket.udp4()
- if isclosed(udp) then fail("should not be closed") end
- udp:close()
- if not isclosed(udp) then fail("should be closed") end
-+ udp = socket.udp()
-+ if not isclosed(udp) then fail("should be closed") end
-+ udp = nil
- pass("ok")
- end
-
-@@ -327,7 +332,7 @@ function test_closed()
- data:close()
- data = nil
- ]], str))
-- -- try to get a line
-+ -- try to get a line
- back, err, partial = data:receive()
- if not err then fail("should have gotten 'closed'.")
- elseif err ~= "closed" then fail("got '"..err.."' instead of 'closed'.")
-@@ -340,25 +345,25 @@ function test_closed()
- data = nil
- ]]
- total, err, partial = data:send(string.rep("ugauga", 100000))
-- if not err then
-+ if not err then
- pass("failed: output buffer is at least %d bytes long!", total)
-- elseif err ~= "closed" then
-+ elseif err ~= "closed" then
- fail("got '"..err.."' instead of 'closed'.")
-- else
-- pass("graceful 'closed' received after %d bytes were sent", partial)
-+ else
-+ pass("graceful 'closed' received after %d bytes were sent", partial)
- end
- end
-
- ------------------------------------------------------------------------
- function test_selectbugs()
- local r, s, e = socket.select(nil, nil, 0.1)
-- assert(type(r) == "table" and type(s) == "table" and
-+ assert(type(r) == "table" and type(s) == "table" and
- (e == "timeout" or e == "error"))
- pass("both nil: ok")
- local udp = socket.udp()
- udp:close()
- r, s, e = socket.select({ udp }, { udp }, 0.1)
-- assert(type(r) == "table" and type(s) == "table" and
-+ assert(type(r) == "table" and type(s) == "table" and
- (e == "timeout" or e == "error"))
- pass("closed sockets: ok")
- e = pcall(socket.select, "wrong", 1, 0.1)
-@@ -368,7 +373,7 @@ function test_selectbugs()
- pass("invalid input: ok")
- local toomany = {}
- for i = 1, socket._SETSIZE+1 do
-- toomany[#toomany+1] = socket.udp()
-+ toomany[#toomany+1] = socket.udp4()
- end
- if #toomany > socket._SETSIZE then
- local e = pcall(socket.select, toomany, nil, 0.1)
-@@ -389,7 +394,7 @@ function accept_timeout()
- local t = socket.gettime()
- s:settimeout(1)
- local c, e = s:accept()
-- assert(not c, "should not accept")
-+ assert(not c, "should not accept")
- assert(e == "timeout", string.format("wrong error message (%s)", e))
- t = socket.gettime() - t
- assert(t < 2, string.format("took to long to give up (%gs)", t))
-@@ -407,9 +412,9 @@ function connect_timeout()
- local t = socket.gettime()
- local r, e = c:connect("10.0.0.1", 81)
- assert(not r, "should not connect")
-- assert(socket.gettime() - t < 2, "took too long to give up.")
-+ assert(socket.gettime() - t < 2, "took too long to give up.")
- c:close()
-- pass("ok")
-+ pass("ok")
- end
-
- ------------------------------------------------------------------------
-@@ -447,16 +452,14 @@ end
-
- ------------------------------------------------------------------------
- function rebind_test()
-- --local c ,c1 = socket.bind("localhost", 0)
- local c ,c1 = socket.bind("127.0.0.1", 0)
- if not c then pass ("failed to bind! " .. tostring(c) .. ' ' .. tostring(c1)) return end
- assert(c,c1)
--
- local i, p = c:getsockname()
- local s, e = socket.tcp()
- assert(s, e)
- s:setoption("reuseaddr", false)
-- r, e = s:bind("localhost", p)
-+ r, e = s:bind(i, p)
- assert(not r, "managed to rebind!")
- assert(e)
- pass("ok")
-@@ -476,9 +479,9 @@ function getstats_test()
- data:receive(c)
- t = t + c
- local r, s, a = data:getstats()
-- assert(r == t, "received count failed" .. tostring(r)
-+ assert(r == t, "received count failed" .. tostring(r)
- .. "/" .. tostring(t))
-- assert(s == t, "sent count failed" .. tostring(s)
-+ assert(s == t, "sent count failed" .. tostring(s)
- .. "/" .. tostring(t))
- end
- pass("ok")
-@@ -486,7 +489,7 @@ end
-
-
- ------------------------------------------------------------------------
--function test_nonblocking(size)
-+function test_nonblocking(size)
- reconnect()
- printf("testing " .. 2*size .. " bytes: ")
- remote(string.format([[
-@@ -545,7 +548,7 @@ function test_readafterclose()
- data:close()
- data = nil
- ]]))
-- data:close()
-+ data:close()
- back, err, partial = data:receive("*a")
- assert(back == nil and err == "closed", "should have returned 'closed'")
- pass("ok")
-@@ -555,7 +558,7 @@ function test_readafterclose()
- data:close()
- data = nil
- ]]))
-- data:close()
-+ data:close()
- back, err, partial = data:receive()
- assert(back == nil and err == "closed", "should have returned 'closed'")
- pass("ok")
-@@ -565,7 +568,7 @@ function test_readafterclose()
- data:close()
- data = nil
- ]]))
-- data:close()
-+ data:close()
- back, err, partial = data:receive(1)
- assert(back == nil and err == "closed", "should have returned 'closed'")
- pass("ok")
-@@ -575,7 +578,7 @@ function test_readafterclose()
- data:close()
- data = nil
- ]]))
-- data:close()
-+ data:close()
- back, err, partial = data:receive(0)
- assert(back == nil and err == "closed", "should have returned 'closed'")
- pass("ok")
-@@ -590,10 +593,10 @@ function test_writeafterclose()
- data = nil
- ]]))
- local sent, err, errsent
-- while not err do
-+ while not err do
- sent, err, errsent, time = data:send(str)
- end
-- assert(err == "closed", "should have returned 'closed'")
-+ assert(err == "closed", "got " .. err .. " instead of 'closed'")
- pass("ok")
- end
-
-@@ -648,25 +651,24 @@ else io.stderr:write("Warning! IPv6 does not support!\n") end
- end
-
- local udp_methods = {
-- "close",
-+ "close",
- "dirty",
- "getfamily",
- "getfd",
- "getoption",
- "getpeername",
- "getsockname",
-- "receive",
-- "receivefrom",
-- "send",
-- "sendto",
-- "setfd",
-+ "receive",
-+ "receivefrom",
-+ "send",
-+ "sendto",
-+ "setfd",
- "setoption",
- "setpeername",
- "setsockname",
- "settimeout"
- }
-
--
- ------------------------------------------------------------------------
- test_methods(socket.udp(), udp_methods)
- do local sock = socket.tcp6()
-@@ -674,6 +676,9 @@ if sock then test_methods(socket.udp6(), udp_methods)
- else io.stderr:write("Warning! IPv6 does not support!\n") end
- end
-
-+test("closed connection detection: ")
-+test_closed()
-+
- test("partial receive")
- test_partialrecv()
-
-@@ -697,9 +702,6 @@ rebind_test()
- test("active close: ")
- active_close()
-
--test("closed connection detection: ")
--test_closed()
--
- test("accept function: ")
- accept_timeout()
- accept_errors()
-diff --git a/test/testsrvr.lua b/test/testsrvr.lua
-index 72b93ab..1eb2d5b 100644
---- a/test/testsrvr.lua
-+++ b/test/testsrvr.lua
-@@ -6,7 +6,7 @@ ack = "\n";
- while 1 do
- print("server: waiting for client connection...");
- control = assert(server:accept());
-- while 1 do
-+ while 1 do
- command, emsg = control:receive();
- if emsg == "closed" then
- control:close()
-diff --git a/test/udpconnectclnt.lua b/test/udpconnectclnt.lua
-index effe13a..ad6ab6a 100644
---- a/test/udpconnectclnt.lua
-+++ b/test/udpconnectclnt.lua
-@@ -1,7 +1,7 @@
- local socket = require"socket"
- local udp = socket.udp
- local localhost = "127.0.0.1"
--local port = arg[1]
-+local port = assert(arg[1], "missing port argument")
-
- se = udp(); se:setoption("reuseaddr", true)
- se:setsockname(localhost, 5062)
-diff --git a/win32.cmd b/win32.cmd
-index 48522f0..3045721 100644
---- a/win32.cmd
-+++ b/win32.cmd
-@@ -1,12 +1 @@
--make PLAT=win32 LUAV=5.2 LUAINC_win32='c:\cygwin\home\diego\build\include' LUALIB_win32='c:\cygwin\home\diego\build\bin\release'
--
--#!/bin/sh
--for p in Release Debug x64/Release x64/Debug; do
-- for el in mime socket; do
-- for e in dll lib; do
-- cp $p/$el/core.$e ../bin/$p/$el/
-- done;
-- done;
-- cp src/ltn12.lua src/socket.lua src/mime.lua ../bin/$p/
-- cp src/http.lua src/url.lua src/tp.lua src/ftp.lua src/headers.lua src/smtp.lua ../bin/$p/socket/
--done;
-+make LUAPREFIX_win32='c:\cygwin\home\diego\vc12' LUAV=5.1 PLAT=win32 LUALIBNAME_win32=lualib.lib PLATFORM_win32=Debug install-both
diff --git a/main/lua-socket/lua-cflags.patch b/main/lua-socket/lua-cflags.patch
index 57122ec0bcd..78314504c33 100644
--- a/main/lua-socket/lua-cflags.patch
+++ b/main/lua-socket/lua-cflags.patch
@@ -1,8 +1,7 @@
-diff --git a/src/makefile b/src/makefile
-index adf687f..c2abddc 100644
+Use pkg-config to detect cflags
--- a/src/makefile
+++ b/src/makefile
-@@ -160,6 +160,8 @@ SOCKET_macosx=usocket.o
+@@ -170,11 +170,13 @@ SOCKET_macosx=usocket.o
#------
# Compiler and linker settings
# for Linux
@@ -11,12 +10,9 @@ index adf687f..c2abddc 100644
SO_linux=so
O_linux=o
CC_linux=gcc
-@@ -167,7 +169,7 @@ DEF_linux=-DLUASOCKET_$(DEBUG) \
- -DLUASOCKET_API='__attribute__((visibility("default")))' \
- -DUNIX_API='__attribute__((visibility("default")))' \
- -DMIME_API='__attribute__((visibility("default")))'
--CFLAGS_linux= -I$(LUAINC) $(DEF) -Wall -Wshadow -Wextra \
-+CFLAGS_linux= $(LUA_CFLAGS) -I$(LUAINC) $(DEF) -Wall -Wshadow -Wextra \
- -Wimplicit -O2 -ggdb3 -fpic -fvisibility=hidden
- LDFLAGS_linux=-O -shared -fpic -o
+ DEF_linux=-DLUASOCKET_$(DEBUG)
+-CFLAGS_linux=$(LUAINC:%=-I%) $(DEF) -Wall -Wshadow -Wextra \
++CFLAGS_linux=$(LUA_CFLAGS) $(LUAINC:%=-I%) $(DEF) -Wall -Wshadow -Wextra \
+ -Wimplicit -O2 -ggdb3 -fpic
+ LDFLAGS_linux=-O -shared -fpic -o
LD_linux=gcc
diff --git a/main/lua-sql/APKBUILD b/main/lua-sql/APKBUILD
index 0253506161b..9822cae001f 100644
--- a/main/lua-sql/APKBUILD
+++ b/main/lua-sql/APKBUILD
@@ -6,9 +6,9 @@ _drivers="mysql postgres sqlite3 odbc"
pkgname=lua-sql
_pkgname=luasql
pkgver=2.6.0
-pkgrel=1
+pkgrel=4
pkgdesc="Lua SQL drivers"
-url="https://keplerproject.github.io/luasql/"
+url="http://lunarmodules.github.io/luasql/"
arch="all"
license="MIT"
makedepends="mariadb-connector-c-dev libpq-dev sqlite-dev unixodbc-dev"
@@ -22,8 +22,9 @@ for _d in $_drivers; do
subpackages="$subpackages lua-sql-$_d:_meta_subpackage"
done
-source="$_pkgname-$pkgver.tar.gz::https://github.com/keplerproject/$_pkgname/archive/$pkgver.tar.gz"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/lunarmodules/$_pkgname/archive/$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
+options="!check"
prepare() {
default_prepare
@@ -37,21 +38,21 @@ build() {
local cflags lver
for lver in $_luaversions; do
- CFLAGS="$CFLAGS $(pkg-config lua$lver --cflags) -fPIC"
+ cflags="$CFLAGS $(pkg-config lua$lver --cflags) -fPIC"
msg "Building for Lua $lver..."
cd "$builddir-$lver"
- make CFLAGS="$CFLAGS" DRIVER_LIBS="-lmysqlclient" \
+ make CFLAGS="$cflags" DRIVER_LIBS="-lmysqlclient" \
mysql
- make CFLAGS="$CFLAGS" DRIVER_LIBS="$(pkg-config --libs libpq)" \
+ make CFLAGS="$cflags" DRIVER_LIBS="$(pkg-config --libs libpq)" \
postgres
- make CFLAGS="$CFLAGS" DRIVER_LIBS="$(pkg-config --libs sqlite3)" \
+ make CFLAGS="$cflags" DRIVER_LIBS="$(pkg-config --libs sqlite3)" \
sqlite3
- make CFLAGS="$CFLAGS -DUNIXODBC" DRIVER_LIBS="-lodbc" \
+ make CFLAGS="$cflags -DUNIXODBC" DRIVER_LIBS="-lodbc" \
odbc
done
}
@@ -84,4 +85,6 @@ _subpackage() {
echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
}
-sha512sums="051438d4f5a9059c2ecf52143a06279469c220117b8b99363ea4fda434f08780794f0c4d54185ea891845238b3f5a307ba06ee7a1e7f4583a3b393c63eed66e9 luasql-2.6.0.tar.gz"
+sha512sums="
+051438d4f5a9059c2ecf52143a06279469c220117b8b99363ea4fda434f08780794f0c4d54185ea891845238b3f5a307ba06ee7a1e7f4583a3b393c63eed66e9 luasql-2.6.0.tar.gz
+"
diff --git a/main/lua-sqlite/APKBUILD b/main/lua-sqlite/APKBUILD
index 6b7367bad03..5ef67cc42d4 100644
--- a/main/lua-sqlite/APKBUILD
+++ b/main/lua-sqlite/APKBUILD
@@ -6,7 +6,7 @@ pkgver=0.9.5
_uuid="fsl_9y"
[ "$pkgver" != "0.9.5" ] && die "Please update uuid!"
_luaversions="5.1 5.2 5.3 5.4"
-pkgrel=4
+pkgrel=6
pkgdesc="Sqlite3 Binding for Lua"
url="http://lua.sqlite.org/index.cgi/home"
arch="all"
@@ -14,7 +14,7 @@ license="MIT"
makedepends="sqlite-dev"
# the uuid determines the archive version and the filename the target directory
source="$pkgname-$pkgver.zip::http://lua.sqlite.org/index.cgi/zip/$pkgname-$pkgver.zip?uuid=$_uuid"
-
+options="!check"
for _v in $_luaversions; do
makedepends="$makedepends lua$_v-dev"
@@ -51,7 +51,7 @@ _package() {
pkgdesc="$pkgdesc (for Lua $lver)"
depends="lua$lver"
install_if="$pkgname=$pkgver-r$pkgrel lua$lver"
- local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$_pkgname/$pkgver-1"
+ local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$_rockname/$pkgver-1"
cd "$builddir-$lver"
install -Dm755 lsqlite3.so \
diff --git a/main/lua-stdlib/APKBUILD b/main/lua-stdlib/APKBUILD
index 0e35ed03ea7..c357e85f9a2 100644
--- a/main/lua-stdlib/APKBUILD
+++ b/main/lua-stdlib/APKBUILD
@@ -2,11 +2,11 @@
_luaversions="5.1 5.2 5.3 5.4"
pkgname=lua-stdlib
pkgver=41.2.2
-pkgrel=1
+pkgrel=2
pkgdesc="Lua library of modules for common programming tasks"
url="https://github.com/lua-stdlib/lua-stdlib"
arch="noarch"
-license="MIT/X"
+license="MIT"
makedepends="autoconf automake"
subpackages="$pkgname-doc"
for _v in $_luaversions; do
@@ -15,6 +15,7 @@ for _v in $_luaversions; do
done
source="$pkgname-$pkgver.tar.gz::https://github.com/lua-stdlib/lua-stdlib/archive/release-v$pkgver.tar.gz"
builddir="$srcdir"/lua-stdlib-release-v$pkgver
+options="!check"
prepare() {
default_prepare
@@ -56,10 +57,8 @@ _split() {
done
}
-
for _v in $_luaversions; do
eval "split_${_v/./_}() { _split $_v; }"
done
-
sha512sums="b477ff90f2c3e49ad83194b1a67592d786c91dbc9dfe199a701fa68bc84b6ba8c820d37ac2fc74c2ebc3fb7a83aac8bcf0af58041ce14fc1dc6b297f3ae054aa lua-stdlib-41.2.2.tar.gz"
diff --git a/main/lua-stringy/APKBUILD b/main/lua-stringy/APKBUILD
index ffdd293c797..746bea91c14 100644
--- a/main/lua-stringy/APKBUILD
+++ b/main/lua-stringy/APKBUILD
@@ -3,12 +3,11 @@
pkgname=lua-stringy
pkgver=0.5.1
_pkgver=${pkgver%.*}-${pkgver##*.}
-pkgrel=2
+pkgrel=3
pkgdesc="Lua string utility library"
url="https://github.com/brentp/lua-stringy/"
arch="all"
license="MIT"
-checkdepends="luajit"
source="$pkgname-$pkgver.tar.gz::https://github.com/brentp/lua-stringy/archive/v$_pkgver.tar.gz
makefile.patch"
builddir="$srcdir/$pkgname-$_pkgver/stringy"
@@ -40,7 +39,7 @@ build() {
}
check() {
- local lver; for lver in $_luaversions jit; do
+ local lver; for lver in $_luaversions; do
msg "Testing on lua$lver..."
cd "$builddir-${lver/jit/5.1}"
lua$lver stringy_test.lua
diff --git a/main/lua-struct/APKBUILD b/main/lua-struct/APKBUILD
index fb95f7359bd..309e55b21b0 100644
--- a/main/lua-struct/APKBUILD
+++ b/main/lua-struct/APKBUILD
@@ -2,7 +2,7 @@
_luaversions="5.1 5.2 5.3 5.4"
pkgname=lua-struct
pkgver=0.2
-pkgrel=3
+pkgrel=4
pkgdesc="Library for Converting Data to and from C Structs for Lua"
url="http://www.inf.puc-rio.br/~roberto/struct/"
arch="all"
@@ -18,6 +18,8 @@ for _i in $_luaversions; do
done
builddir="$srcdir"
+options="!check"
+
prepare() {
default_prepare
for i in $_luaversions; do
diff --git a/main/lua-subprocess/APKBUILD b/main/lua-subprocess/APKBUILD
index fd18b603ef7..6ed36d9afca 100644
--- a/main/lua-subprocess/APKBUILD
+++ b/main/lua-subprocess/APKBUILD
@@ -1,75 +1,44 @@
# Contributor: Ted Trask <ttrask01@yahoo.com>
# Maintainer: Ted Trask <ttrask01@yahoo.com>
-
-_luaversions="5.1 5.2"
+_luaversions="5.1 5.2 5.3 5.4"
pkgname=lua-subprocess
-pkgver=0.0.20141229
-pkgrel=4
+pkgver=0_git20230625
+pkgrel=0
+_gitrev=ccd71c90653b39c6745c771af4393c9e76e4105f
pkgdesc="A Lua module written in C that allows you to create child processes and communicate with them"
url="https://github.com/tdtrask/lua-subprocess"
arch="all"
-license="AS-IS"
-depends=""
-install=""
-depends_dev=""
-makedepends="$depends_dev asciidoc"
-subpackages=""
+license="MIT"
+makedepends="asciidoc"
for _i in $_luaversions; do
makedepends="$makedepends lua$_i-dev"
subpackages="$subpackages lua$_i-subprocess:split_${_i/./_}"
done
-source="https://dev.alpinelinux.org/archive/$pkgname/$pkgname-$pkgver.tar.gz
- makefile.patch"
-
-_giturl="git://github.com/tdtrask/lua-subprocess.git"
-_upload="dev.alpinelinux.org:/archive/$pkgname/"
-
-snapshot() {
- local _date=$(date +%Y%m%d)
- local _ver=0.0.$_date
- local _pkg=$pkgname-$_ver.tar.gz
- mkdir -p "$srcdir"
- cd "$srcdir"
- msg "Creating snapshot: $_pkg"
- rm -rf ${_giturl##*/}
- git clone --depth=1 --bare $_giturl || return 1
- git --git-dir ${_giturl##*/} archive -o $_pkg \
- --prefix=$pkgname-$_ver/ HEAD \
- || return 1
- msg "Uploading to $_upload"
- rsync -Lave ssh $_pkg $_upload || return 1
- cd "$startdir"
- sed -i -e "s/^pkgver=.*/pkgver=$_ver/" \
- APKBUILD || return 1
- abuild checksum
-}
-
-_sdir="$srcdir"/$pkgname-$pkgver
+source="$pkgname-$_gitrev.tar.gz::https://github.com/tdtrask/lua-subprocess/archive/$_gitrev.tar.gz
+ makefile.patch
+ "
+builddir="$srcdir/lua-subprocess-$_gitrev"
+options="!check"
prepare() {
- local i
- cd "$_sdir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
+ default_prepare
for _i in $_luaversions; do
- cp -r "$_sdir" "$srcdir"/build-$_i
+ cp -r "$builddir" "$srcdir"/build-$_i
done
}
build() {
+ export CFLAGS="$CFLAGS -DSHARE_LIOLIB"
for _i in $_luaversions; do
cd "$srcdir"/build-$_i
- make lua_package="lua$_i" || return 1
+ make lua_package="lua$_i"
done
}
package() {
for _i in $_luaversions; do
cd "$srcdir"/build-$_i
- make lua_package="lua$_i" DESTDIR="$pkgdir" install || return 1
+ make lua_package="lua$_i" DESTDIR="$pkgdir" install
done
}
@@ -77,12 +46,10 @@ _split() {
local d= _ver=$1
pkgdesc="A Lua $_ver module written in C that allows you to create child processes and communicate with them"
install_if="lua$_ver $pkgname=$pkgver-r$pkgrel"
- replaces="$pkgname"
- depends=
for d in usr/lib/lua usr/share/lua; do
if [ -d "$pkgdir"/$d/$_ver ]; then
mkdir -p "$subpkgdir"/$d
- mv "$pkgdir"/$d/$_ver "$subpkgdir"/$d/ || return 1
+ mv "$pkgdir"/$d/$_ver "$subpkgdir"/$d/
fi
done
}
@@ -91,5 +58,7 @@ for _i in $_luaversions; do
eval "split_${_i/./_}() { _split $_i; }"
done
-sha512sums="5d0648a883102172bc086a0054f76832d25ce760149f0e0ddac927a325815b1937e780efc5d553bb6b751ed7642d728ff37745be134dfdb42753bde3b338a1b9 lua-subprocess-0.0.20141229.tar.gz
-af4e25d8d503e9cb8296a2b8d8b19577e64b412f56607bf38bc828a7c214904ecdf9619fc2541461bc4dda6c6fcd47cbb1051499bd2f132dad76092cf3ae5e9d makefile.patch"
+sha512sums="
+d6c2cb45225f518748405ae6039ecad5475eac029f1a1f7250a73dcfcc429420298884d00f8d11677b3fffab833232d3b9436a067cfcce8f70585b2a2b31c46e lua-subprocess-ccd71c90653b39c6745c771af4393c9e76e4105f.tar.gz
+af4e25d8d503e9cb8296a2b8d8b19577e64b412f56607bf38bc828a7c214904ecdf9619fc2541461bc4dda6c6fcd47cbb1051499bd2f132dad76092cf3ae5e9d makefile.patch
+"
diff --git a/main/lua-system/APKBUILD b/main/lua-system/APKBUILD
new file mode 100644
index 00000000000..97c1dbc7482
--- /dev/null
+++ b/main/lua-system/APKBUILD
@@ -0,0 +1,62 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=lua-system
+_pkgname=luasystem
+pkgver=0.2.1
+pkgrel=2
+pkgdesc="Platform independent system calls for Lua"
+url="https://github.com/o-lim/luasystem/"
+arch="all"
+license="MIT"
+source="$pkgname-$pkgver.tar.gz::https://github.com/o-lim/$_pkgname/archive/v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+# This module needs lua-busted to run tests, but lua-busted depends on
+# lua-system and we wanna avoid circular dependencies.
+options="!check"
+
+_luaversions="5.1 5.2 5.3 5.4"
+for _v in $_luaversions; do
+ makedepends="$makedepends lua$_v-dev"
+ subpackages="$subpackages lua$_v-${pkgname#lua-}:_subpackage"
+done
+
+prepare() {
+ default_prepare
+
+ local lver; for lver in $_luaversions; do
+ cp -r "$builddir" "$builddir-$lver"
+ done
+}
+
+build() {
+ local lver; for lver in $_luaversions; do
+ msg "Building against Lua $lver..."
+ make -C "$builddir-$lver"/src \
+ LUA_VERSION=$lver \
+ MYCFLAGS="$CFLAGS"
+ done
+}
+
+package() {
+ mkdir -p "$pkgdir"
+}
+
+_subpackage() {
+ local lver="${subpkgname:3:3}"
+ pkgdesc="$pkgdesc $lver"
+ depends="lua$lver"
+ install_if="$pkgname=$pkgver-r$pkgrel lua$lver"
+ local lmod_dir=$(pkg-config --variable=INSTALL_LMOD lua$lver)
+ local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$_pkgname/$pkgver-0"
+
+ cd "$builddir-$lver"
+
+ make -C src LUA_VERSION=$lver DESTDIR="$subpkgdir" prefix=/usr \
+ install
+ install -m 644 -D system/init.lua "$subpkgdir"/$lmod_dir/system.lua
+
+ mkdir -p "$rockdir"
+ echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
+}
+
+sha512sums="b8a04a83e8e39c98da23484c9eba9ff60da2fb4db3deca0d52784a6c13c7e0faf7a8b326999d88703847107e4fce739062fc04a00266140969c9f57b70064f46 lua-system-0.2.1.tar.gz"
diff --git a/main/lua-term/APKBUILD b/main/lua-term/APKBUILD
new file mode 100644
index 00000000000..808797616a1
--- /dev/null
+++ b/main/lua-term/APKBUILD
@@ -0,0 +1,53 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=lua-term
+pkgver=0.07
+_rockver=0.7-1
+pkgrel=2
+pkgdesc="Terminal operations for Lua"
+url="https://github.com/hoelzro/lua-term"
+arch="all"
+license="MIT"
+source="$pkgname-$pkgver.tar.gz::https://github.com/hoelzro/lua-term/archive/$pkgver.tar.gz"
+options="!check" # upstream does not provide tests
+
+_luaversions="5.1 5.2 5.3 5.4"
+for _v in $_luaversions; do
+ makedepends="$makedepends lua$_v-dev"
+ subpackages="$subpackages lua$_v-${pkgname#lua-}:_subpackage"
+done
+
+prepare() {
+ default_prepare
+
+ local lver; for lver in $_luaversions; do
+ cp -r "$builddir" "$builddir-$lver"
+ done
+}
+
+build() {
+ local lver; for lver in $_luaversions; do
+ msg "Building for Lua $lver..."
+ make -C "$builddir-$lver" LUA_VER=$lver CFLAGS="$CFLAGS"
+ done
+}
+
+package() {
+ mkdir -p "$pkgdir"
+}
+
+_subpackage() {
+ local lver="${subpkgname:3:3}"
+ pkgdesc="$pkgdesc $lver"
+ depends="lua$lver"
+ install_if="$pkgname=$pkgver-r$pkgrel lua$lver"
+ local rockdir="$subpkgdir/usr/lib/luarocks/rocks-$lver/$pkgname/$_rockver"
+
+ cd "$builddir-$lver"
+ make LUA_VER=$lver LUA_DIR="$subpkgdir/usr" install
+
+ mkdir -p "$rockdir"
+ echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
+}
+
+sha512sums="2046ba1861ff590c191bb651941c45eb8b6e9a1252b05e78daaeb31837ce1fc7da9ba124aec34dc7842fd304e945754c463ffd75941125ff952e911ba66efa31 lua-term-0.07.tar.gz"
diff --git a/main/lua-uuid/APKBUILD b/main/lua-uuid/APKBUILD
index dd45649bfac..1cb506305d0 100644
--- a/main/lua-uuid/APKBUILD
+++ b/main/lua-uuid/APKBUILD
@@ -2,15 +2,15 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lua-uuid
_realname=uuid
-pkgver=0.2.0
-pkgrel=2
+pkgver=0.3
+pkgrel=0
pkgdesc="A pure Lua uuid generator (modified from a Rackspace module)"
url="https://tieske.github.io/uuid/"
arch="noarch"
license="Apache-2.0"
options="!check"
-source="$pkgname-$pkgver.tar.gz::https://github.com/Tieske/uuid/archive/version_$pkgver.tar.gz"
-builddir="$srcdir/uuid-version_$pkgver"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Tieske/uuid/archive/$pkgver.tar.gz"
+builddir="$srcdir/uuid-$pkgver"
_luaversions="5.1 5.2 5.3 5.4"
for _v in $_luaversions; do
@@ -32,4 +32,6 @@ _subpackage() {
"$subpkgdir"/usr/share/lua/$lver/uuid.lua
}
-sha512sums="1117c76dbbabee6de01d1657339236810822040e20afd974dec302b9d2035ca087d33ef47029c6184203c3e694cc9282a303ce19eadffc71b0f48c6a4a5ef5b0 lua-uuid-0.2.0.tar.gz"
+sha512sums="
+b003fa36d47e5e325abb261ccfdfa3457455da4ddafa551f316cf8c7269db97f9f9ec7a056533defece316fb149911c0f00013a89293ee0b898e3fd5cd79541f lua-uuid-0.3.tar.gz
+"
diff --git a/main/lua-xctrl/APKBUILD b/main/lua-xctrl/APKBUILD
index 542751eaff4..4414b9de3c0 100644
--- a/main/lua-xctrl/APKBUILD
+++ b/main/lua-xctrl/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lua-xctrl
pkgver=2015.04.10
-pkgrel=3
+pkgrel=4
pkgdesc="Lua module that allows you to query and manipulate various aspects of an X11 window manager"
url="https://github.com/yetanothergeek/xctrl"
arch="all"
diff --git a/main/lua-yaml/APKBUILD b/main/lua-yaml/APKBUILD
index d1504e0869e..fb992668a1c 100644
--- a/main/lua-yaml/APKBUILD
+++ b/main/lua-yaml/APKBUILD
@@ -4,15 +4,16 @@
pkgname=lua-yaml
_pkgname=yaml
pkgver=1.1.2
-pkgrel=4
+pkgrel=7
pkgdesc="LibYaml binding for Lua"
-url="http://yaml.luaforge.net"
+url="https://lubyk.github.io/lubyk/yaml.html"
arch="all"
license="MIT"
-makedepends="cmake yaml-dev"
+makedepends="cmake samurai yaml-dev"
source="$pkgname-$pkgver.tar.gz::https://github.com/lubyk/$_pkgname/archive/REL-$pkgver.tar.gz
cmake.patch"
builddir="$srcdir/$_pkgname-REL-$pkgver"
+options="!check"
_luaversions="5.1 5.2 5.3 5.4"
for _v in $_luaversions; do
@@ -24,19 +25,14 @@ build() {
local lver; for lver in $_luaversions; do
msg "Building for Lua $lver..."
- mkdir -p "$builddir"/build/$lver
- cd "$builddir"/build/$lver
-
- cmake \
+ cmake -B build/$lver -G Ninja \
-DCMAKE_C_FLAGS="$CFLAGS -Wall -DNDEBUG $(pkg-config --cflags lua$lver)" \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
-DCMAKE_SKIP_RPATH=TRUE \
-DCMAKE_VERBOSE_MAKEFILE=TRUE \
-DCMAKE_BUILD_TYPE=MinSizeRel \
-DLUA_INSTALL_DIR=/usr/share/lua/$lver \
- -DLUA_INSTALL_BINDIR=/usr/lib/lua/$lver \
- "$builddir"
- make
+ -DLUA_INSTALL_BINDIR=/usr/lib/lua/$lver
+ cmake --build build/$lver
done
}
@@ -52,12 +48,13 @@ _subpackage() {
install_if="$pkgname=$pkgver-r$pkgrel lua$lver"
[ "$lver" = 5.1 ] && replaces="$pkgname"
- cd "$builddir"/build/$lver
- make DESTDIR="$subpkgdir" install
+ DESTDIR="$subpkgdir" cmake --install "$builddir"/build/$lver
mkdir -p "$rockdir"
echo 'rock_manifest = {}' > "$rockdir"/rock_manifest
}
-sha512sums="9d2ff4ddc243922f11c2ebea1d45bb3fa02e96a30752c04e65aec236e76780780511fe605a7a0bdbe9764189764a3951aadff8bb028c402571fd052cd70e35ac lua-yaml-1.1.2.tar.gz
-db024b2acfa88441a4a72ec9c2a42d0980465cd759815474f02e3912ca458d913317aacdecf911e4048d43bab7878f472ce044f57dac3df66d20752e1255a8a8 cmake.patch"
+sha512sums="
+9d2ff4ddc243922f11c2ebea1d45bb3fa02e96a30752c04e65aec236e76780780511fe605a7a0bdbe9764189764a3951aadff8bb028c402571fd052cd70e35ac lua-yaml-1.1.2.tar.gz
+db024b2acfa88441a4a72ec9c2a42d0980465cd759815474f02e3912ca458d913317aacdecf911e4048d43bab7878f472ce044f57dac3df66d20752e1255a8a8 cmake.patch
+"
diff --git a/main/lua5.1/APKBUILD b/main/lua5.1/APKBUILD
index de6fc7f7608..eb9b28cd7f9 100644
--- a/main/lua5.1/APKBUILD
+++ b/main/lua5.1/APKBUILD
@@ -3,7 +3,7 @@ pkgname=lua5.1
_pkgname=lua
pkgver=5.1.5
_luaver=${pkgname#lua}
-pkgrel=11
+pkgrel=13
pkgdesc="A powerful light-weight programming language designed for extending applications."
url="https://www.lua.org/"
arch="all"
@@ -24,8 +24,6 @@ builddir="$srcdir/lua-$pkgver"
prepare() {
default_prepare
- cd "$builddir"
-
# we want packages to find our things
sed -i 's:/usr/local:/usr:' etc/lua.pc
@@ -45,8 +43,6 @@ prepare() {
}
build() {
- cd "$builddir"
-
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -61,13 +57,10 @@ build() {
}
check() {
- cd "$builddir"
make test
}
package() {
- cd "$builddir"
-
make V=$pkgver \
INSTALL_TOP="$pkgdir/usr" \
INSTALL_INC="$pkgdir/usr/include" \
@@ -92,6 +85,10 @@ package() {
ln -s lua$_luaver.pc "$pkgdir"/usr/lib/pkgconfig/lua.pc
ln -s lua$_luaver.1 "$pkgdir"/usr/share/man/man1/lua.1
ln -s luac$_luaver.1 "$pkgdir"/usr/share/man/man1/luac.1
+
+ # compat names since we are unique
+ # other distros name it lua-5.1 or lua51. pick the former as a compat name..
+ ln -sv lua5.1.pc "$pkgdir"/usr/lib/pkgconfig/lua-5.1.pc
}
dev() {
diff --git a/main/lua5.2/APKBUILD b/main/lua5.2/APKBUILD
index 2d1c50d02fb..14502c6fba9 100644
--- a/main/lua5.2/APKBUILD
+++ b/main/lua5.2/APKBUILD
@@ -2,32 +2,24 @@
pkgname=lua5.2
pkgver=5.2.4
_luaver=${pkgname#lua}
-pkgrel=9
+pkgrel=13
pkgdesc="Powerful light-weight programming language"
url="https://www.lua.org/"
arch="all"
license="MIT"
-depends=
ldpath="/usr/lib/$pkgname"
makedepends="libtool autoconf automake"
provides="lua"
+provider_priority=200
subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc $pkgname-libs"
source="https://www.lua.org/ftp/lua-$pkgver.tar.gz
lua-5.2-make.patch
lua-5.2-module_paths.patch
"
+builddir="$srcdir"/lua-$pkgver
-_builddir="$srcdir"/lua-$pkgver
prepare() {
- cd "$_builddir"
- for i in $source; do
- case $i in
- patch*|*.patch)
- msg "Applying $i"
- patch -p1 -i "$srcdir"/$i || return 1
- ;;
- esac
- done
+ default_prepare
# disable readline
sed -i -e '/#define LUA_USE_READLINE/d' src/luaconf.h
@@ -44,46 +36,41 @@ EOF
}
build() {
- cd "$_builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
- --prefix=/usr \
- || return 1
+ --prefix=/usr
cd src
make V=$pkgver \
- CFLAGS=" -DLUA_USE_LINUX -DLUA_COMPAT_ALL" \
+ CFLAGS="$CFLAGS -DLUA_USE_LINUX -DLUA_COMPAT_ALL" \
SYSLDFLAGS="$LDFLAGS" \
RPATH="/usr/lib" \
LIB_LIBS="-lpthread -lm -ldl" \
- alpine_all || return 1
+ alpine_all
}
check() {
- cd "$_builddir"
make test
}
package() {
- cd "$_builddir"
make V=$pkgver \
INSTALL_TOP="$pkgdir"/usr \
INSTALL_INC="$pkgdir"/usr/include/$pkgname \
INSTALL_LIB="$pkgdir"/usr/lib/$pkgname \
- alpine_install || return 1
+ alpine_install
for i in "$pkgdir"/usr/bin/* ; do
- mv $i ${i}${_luaver} || return 1
+ mv $i ${i}${_luaver}
done
for i in "$pkgdir"/usr/lib/$pkgname/*.so.*; do
- ln -s $pkgname/${i##*/} "$pkgdir"/usr/lib/${i##*/} || return 1
+ ln -s $pkgname/${i##*/} "$pkgdir"/usr/lib/${i##*/}
done
install -D -m 644 doc/lua.1 "$pkgdir"/usr/share/man/man1/lua$_luaver.1 \
&& install -D -m 644 doc/luac.1 \
- "$pkgdir"/usr/share/man/man1/luac$_luaver.1 \
- || return 1
+ "$pkgdir"/usr/share/man/man1/luac$_luaver.1
mkdir -p "$pkgdir"/usr/share/doc/$pkgname/
install -m644 doc/*.html doc/*.css doc/logo.gif doc/osi-certified-72x60.png \
@@ -124,16 +111,18 @@ Cflags: -I\${includedir}
# (end of lua$_luaver.pc)
EOF
+ # compat names since we are unique
+ # other distros name it lua-5.2 or lua52. pick the former as a compat name..
+ ln -sv lua5.2.pc "$pkgdir"/usr/lib/pkgconfig/lua-5.2.pc
}
dev() {
depends_dev=$pkgname
default_dev
mkdir -p "$subpkgdir"/usr/$pkgname "$subpkgdir"/usr/lib/$pkgname
- ln -s ../include/$pkgname "$subpkgdir"/usr/$pkgname/include || return 1
- ln -s ../lib/$pkgname "$subpkgdir"/usr/$pkgname/lib || return 1
- mv "$pkgdir"/usr/lib/$pkgname/liblua.so "$subpkgdir"/usr/lib/$pkgname/ \
- || return 1
+ ln -s ../include/$pkgname "$subpkgdir"/usr/$pkgname/include
+ ln -s ../lib/$pkgname "$subpkgdir"/usr/$pkgname/lib
+ mv "$pkgdir"/usr/lib/$pkgname/liblua.so "$subpkgdir"/usr/lib/$pkgname/
}
libs() {
@@ -143,6 +132,8 @@ libs() {
mv "$pkgdir"/usr/lib "$subpkgdir"/usr/
}
-sha512sums="cd77148aba4b707b6c159758b5e8444e04f968092eb98f6b4c405b2fb647e709370d5a8dcf604176101d3407e196a7433b5dcdce4fe9605c76191d3649d61a8c lua-5.2.4.tar.gz
+sha512sums="
+cd77148aba4b707b6c159758b5e8444e04f968092eb98f6b4c405b2fb647e709370d5a8dcf604176101d3407e196a7433b5dcdce4fe9605c76191d3649d61a8c lua-5.2.4.tar.gz
f1d5e0a1db0790fae82dd6de5742631c6c4ca009752630a612d864746990a00c8f2eacc7dbf07be2bce94d04da4ad185ed10dc317d7bf093df698bf84fea682e lua-5.2-make.patch
-ca11e6b92acbdb3430faeeaa45fe1326043c3fff19da22a5d22ca38bff98635df3e33266046b1bf02302090f222dd5ab28759b4ed587da26ceb6e1dae6859829 lua-5.2-module_paths.patch"
+ca11e6b92acbdb3430faeeaa45fe1326043c3fff19da22a5d22ca38bff98635df3e33266046b1bf02302090f222dd5ab28759b4ed587da26ceb6e1dae6859829 lua-5.2-module_paths.patch
+"
diff --git a/main/lua5.3/APKBUILD b/main/lua5.3/APKBUILD
index e527cba91b9..395af53283b 100644
--- a/main/lua5.3/APKBUILD
+++ b/main/lua5.3/APKBUILD
@@ -3,7 +3,7 @@ pkgname=lua5.3
_pkgname=lua
pkgver=5.3.6
_luaver=${pkgname#lua}
-pkgrel=3
+pkgrel=6
pkgdesc="Powerful light-weight programming language"
url="https://www.lua.org/"
arch="all"
@@ -12,6 +12,7 @@ ldpath="/usr/lib/$pkgname"
depends_dev="$pkgname"
makedepends="libtool autoconf automake linenoise-dev"
provides="lua"
+provider_priority=300
subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc $pkgname-libs"
source="https://www.lua.org/ftp/$_pkgname-$pkgver.tar.gz
lua-5.3-make.patch
@@ -117,6 +118,9 @@ package() {
# (end of lua$_luaver.pc)
EOF
+ # compat names since we are unique
+ # other distros name it lua-5.3 or lua53. pick the former as a compat name..
+ ln -sv lua5.3.pc "$pkgdir"/usr/lib/pkgconfig/lua-5.3.pc
}
dev() {
@@ -136,7 +140,9 @@ libs() {
mv "$pkgdir"/usr/lib "$subpkgdir"/usr/
}
-sha512sums="ccc380d5e114d54504de0bfb0321ca25ec325d6ff1bfee44b11870b660762d1a9bf120490c027a0088128b58bb6b5271bbc648400cab84d2dc22b512c4841681 lua-5.3.6.tar.gz
+sha512sums="
+ccc380d5e114d54504de0bfb0321ca25ec325d6ff1bfee44b11870b660762d1a9bf120490c027a0088128b58bb6b5271bbc648400cab84d2dc22b512c4841681 lua-5.3.6.tar.gz
1bc6c623024c1738155b30ff9c0edcce0f336edc25aa20c3a1400c859421ea2015d75175cce8d515e055ac3e96028426b74812e04022af18a0ed4c4601556027 lua-5.3-make.patch
bc68772390dc8d8940176af0b9fbacc0af61891b5d27de5f1466a4e7f9b3291a1c08ba5add829bc96b789a53fa5ec2dadaa096ca6eabe54ec27724fa2810940f lua-5.3-module_paths.patch
-a2edcf5a41513492edff5fa6e97652e676ceb6c66bb2c6a7e6f345570248d7646167f0172ceb07a74fd9d4a43051ed8244fbd94706dd9f5593f174075592a527 linenoise.patch"
+a2edcf5a41513492edff5fa6e97652e676ceb6c66bb2c6a7e6f345570248d7646167f0172ceb07a74fd9d4a43051ed8244fbd94706dd9f5593f174075592a527 linenoise.patch
+"
diff --git a/main/lua5.4/APKBUILD b/main/lua5.4/APKBUILD
index 872a3d5b425..42223029c67 100644
--- a/main/lua5.4/APKBUILD
+++ b/main/lua5.4/APKBUILD
@@ -1,9 +1,9 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lua5.4
_pkgname=lua
-pkgver=5.4.4
+pkgver=5.4.6
_luaver=${pkgname#lua}
-pkgrel=5
+pkgrel=1
pkgdesc="Powerful light-weight programming language"
url="https://www.lua.org/"
arch="all"
@@ -12,14 +12,13 @@ ldpath="/usr/lib/$pkgname"
depends_dev="$pkgname"
makedepends="libtool autoconf automake readline-dev"
provides="lua"
+provider_priority=400
subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc $pkgname-libs"
source="https://www.lua.org/ftp/$_pkgname-$pkgver.tar.gz
lua-5.4-make.patch
lua-5.4-module_paths.patch
lua5.4.pc
- fix-double-free.patch
extern-c-for-cpp.patch
- CVE-2022-28805.patch
"
builddir="$srcdir/$_pkgname-$pkgver"
@@ -56,7 +55,7 @@ build() {
cd src
make V=${pkgver%.*} \
- CFLAGS="$CFLAGS -DLUA_USE_LINUX -DLUA_COMPAT_5_2 -DLUA_USE_READLINE" \
+ CFLAGS="$CFLAGS -DLUA_USE_LINUX -DLUA_COMPAT_5_3 -DLUA_USE_READLINE" \
SYSLDFLAGS="$LDFLAGS" \
RPATH="/usr/lib" \
LIB_LIBS="-lpthread -lm -ldl -lreadline" \
@@ -79,7 +78,7 @@ package() {
mv "$i" "$i"$_luaver
done
- for i in "$pkgdir"/usr/lib/$pkgname/*.so.*; do
+ for i in "$pkgdir/usr/lib/$pkgname"/*.so.*; do
ln -s $pkgname/${i##*/} "$pkgdir"/usr/lib/${i##*/}
done
@@ -91,7 +90,12 @@ package() {
"$pkgdir"/usr/share/doc/$pkgname/
install -Dm644 "$srcdir"/lua5.4.pc -t "$pkgdir"/usr/lib/pkgconfig
+ # compat name for "c++" lua (same thing with extern C
ln -sv lua5.4.pc "$pkgdir"/usr/lib/pkgconfig/lua5.4-c++.pc
+ # compat names since we are unique
+ # other distros name it lua-5.4 or lua54. pick the former as a compat name..
+ ln -sv lua5.4.pc "$pkgdir"/usr/lib/pkgconfig/lua-5.4-c++.pc
+ ln -sv lua5.4.pc "$pkgdir"/usr/lib/pkgconfig/lua-5.4.pc
}
dev() {
@@ -112,11 +116,9 @@ libs() {
}
sha512sums="
-af0c35d5ba00fecbb2dd617bd7b825edf7418a16a73076e04f2a0df58cdbf098dc3ff4402e974afd789eb5d86d2e12ec6df9c84b99b23656ea694a85f83bcd21 lua-5.4.4.tar.gz
+d90c6903355ee1309cb0d92a8a024522ff049091a117ea21efb585b5de35776191cd67d17a65b18c2f9d374795b7c944f047576f0e3fe818d094b26f0e4845c5 lua-5.4.6.tar.gz
1bc6c623024c1738155b30ff9c0edcce0f336edc25aa20c3a1400c859421ea2015d75175cce8d515e055ac3e96028426b74812e04022af18a0ed4c4601556027 lua-5.4-make.patch
904a9b296d0bdb68630f8865fce86fc8f092120ee6ebfeb97f069b5aa49f203ddc63aeceee276ae8e006bbb73bf2811e7eceb6aae82817170d3acef3ad057c93 lua-5.4-module_paths.patch
34466bc244737a557ff2c87efbc62ab5c5424523f574d17b2f34aea40f534f2c45cdfa242097aadecd38f00d732b0c8e9daef1cd461728a084c72946edb9a48a lua5.4.pc
-2886af85fea2023ef80f03e32786d7578229904115fddccb01d98ffbc31f470c6a1e17d773393c2cc1fdd23eba4705522bb86bf6bed4995bbc4849305e47adec fix-double-free.patch
e0932fedde440e76738725a6eca91bfdc94236fc1ead12731d303282c3cf721f09c601bae88dd9e6d7e77d89e5877ab18d720f146685a273318d33d48dedeba8 extern-c-for-cpp.patch
-de9b2203ccde8711bfd3e6ff59fda12f48130fd9f6cc3e9db0403326a03e56433f929e29f869a12e9a4f1461d84b713efc5ea47e631a2830f945ea34fc4e081c CVE-2022-28805.patch
"
diff --git a/main/lua5.4/CVE-2022-28805.patch b/main/lua5.4/CVE-2022-28805.patch
deleted file mode 100644
index b00fcc63f7c..00000000000
--- a/main/lua5.4/CVE-2022-28805.patch
+++ /dev/null
@@ -1,23 +0,0 @@
-Patch-Source: https://github.com/lua/lua/commit/1f3c6f4534c6411313361697d98d1145a1f030fa
-From 1f3c6f4534c6411313361697d98d1145a1f030fa Mon Sep 17 00:00:00 2001
-From: Roberto Ierusalimschy <roberto@inf.puc-rio.br>
-Date: Tue, 15 Feb 2022 12:28:46 -0300
-Subject: [PATCH] Bug: Lua can generate wrong code when _ENV is <const>
-
----
- lparser.c | 1 +
- testes/attrib.lua | 10 ++++++++++
- 2 files changed, 11 insertions(+)
-
-diff --git a/lparser.c b/lparser.c
-index 3abe3d751..a5cd55257 100644
---- a/src/lparser.c
-+++ b/src/lparser.c
-@@ -468,6 +468,7 @@ static void singlevar (LexState *ls, expdesc *var) {
- expdesc key;
- singlevaraux(fs, ls->envn, var, 1); /* get environment variable */
- lua_assert(var->k != VVOID); /* this one must exist */
-+ luaK_exp2anyregup(fs, var); /* but could be a constant */
- codestring(&key, varname); /* key is variable name */
- luaK_indexed(fs, var, &key); /* env[varname] */
- }
diff --git a/main/lua5.4/fix-double-free.patch b/main/lua5.4/fix-double-free.patch
deleted file mode 100644
index ad87fafc29d..00000000000
--- a/main/lua5.4/fix-double-free.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-Lua5.4 frees the lineinfo memory twice. Once via combine() and once
-via close_state() this causes a segfault on musl. The segfault double
-free can be fixed by having combine assign NULL to f->lineinfo after
-it has been freed. Thus not freeing it again in close_state().
-
-Valgrind output for the double-free:
-
- ==29903== Invalid free() / delete / delete[] / realloc()
- ==29903== at 0x48A4B0D: free (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
- ==29903== by 0x11E5D2: l_alloc (lauxlib.c:1014)
- ==29903== by 0x112F51: luaM_free_ (lmem.c:135)
- ==29903== by 0x11111B: luaF_freeproto (lfunc.c:271)
- ==29903== by 0x112ABB: deletelist (lgc.c:1494)
- ==29903== by 0x112ABB: luaC_freeallobjects (lgc.c:1511)
- ==29903== by 0x116D54: close_state (lstate.c:276)
- ==29903== by 0x10B549: main (luac.c:210)
- ==29903== Address 0x48ec220 is 0 bytes inside a block of size 10 free'd
- ==29903== at 0x48A4B0D: free (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
- ==29903== by 0x11E5D2: l_alloc (lauxlib.c:1014)
- ==29903== by 0x112F51: luaM_free_ (lmem.c:135)
- ==29903== by 0x10C60C: combine (luac.c:158)
- ==29903== by 0x10C60C: pmain (luac.c:183)
- ==29903== by 0x10FF38: precallC (ldo.c:506)
- ==29903== by 0x11020C: luaD_precall (ldo.c:572)
- ==29903== by 0x110340: ccall (ldo.c:607)
- ==29903== by 0x10F7CA: luaD_rawrunprotected (ldo.c:144)
- ==29903== by 0x110668: luaD_pcall (ldo.c:926)
- ==29903== by 0x10DB2F: lua_pcallk (lapi.c:1067)
- ==29903== by 0x10B528: main (luac.c:209)
- ==29903== Block was alloc'd at
- ==29903== at 0x48A6FC9: realloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
- ==29903== by 0x112F7E: luaM_realloc_ (lmem.c:166)
- ==29903== by 0x112FC5: luaM_saferealloc_ (lmem.c:180)
- ==29903== by 0x113074: luaM_shrinkvector_ (lmem.c:116)
- ==29903== by 0x114B02: close_func (lparser.c:764)
- ==29903== by 0x116B1B: mainfunc (lparser.c:1937)
- ==29903== by 0x116B1B: luaY_parser (lparser.c:1959)
- ==29903== by 0x10F718: f_parser (ldo.c:971)
- ==29903== by 0x10F7CA: luaD_rawrunprotected (ldo.c:144)
- ==29903== by 0x110668: luaD_pcall (ldo.c:926)
- ==29903== by 0x11074B: luaD_protectedparser (ldo.c:988)
- ==29903== by 0x10DC13: lua_load (lapi.c:1097)
- ==29903== by 0x10C5B1: combine (luac.c:151)
- ==29903== by 0x10C5B1: pmain (luac.c:183)
-
-diff -upr lua5.4.4.orig/src/luac.c lua-5.4.4/src/luac.c
---- lua5.4.4.orig/src/luac.c 2022-04-14 20:57:01.927447850 +0200
-+++ lua-5.4.4/src/luac.c 2022-04-14 20:57:35.260900910 +0200
-@@ -156,6 +156,7 @@ static const Proto* combine(lua_State* L
- if (f->p[i]->sizeupvalues>0) f->p[i]->upvalues[0].instack=0;
- }
- luaM_freearray(L,f->lineinfo,f->sizelineinfo);
-+ f->lineinfo=NULL;
- f->sizelineinfo=0;
- return f;
- }
diff --git a/main/luajit/APKBUILD b/main/luajit/APKBUILD
index 1fcb94b6493..5a7f42231de 100644
--- a/main/luajit/APKBUILD
+++ b/main/luajit/APKBUILD
@@ -2,13 +2,15 @@
# Contributor: Bartłomiej Piotrowski <nospam@bpiotrowski.pl>
pkgname=luajit
_pkgname=luajit2
-pkgver=2.1_p20210510
+pkgver=2.1_p20230410
_pkgver=${pkgver/_p/-}
-pkgrel=0
-_gitrev_tests=485311ff265763c2aecce155ad697a974838857c
+pkgrel=3
+_gitrev_tests=1fa1f103f9235e22aac5331fe04b267ee7be6206
pkgdesc="OpenResty's branch of LuaJIT"
url="https://github.com/openresty/luajit2"
-arch="all !riscv64"
+# ppc64le: fails tests/not really supported
+# riscv64 loongarch64: does not build/not supported
+arch="all !ppc64le !riscv64 !loongarch64"
license="MIT"
checkdepends="
perl
@@ -17,11 +19,11 @@ checkdepends="
zlib-dev
"
provides="lua"
+# lower than 5.1
+provider_priority=90
subpackages="$pkgname-dev $pkgname-doc"
source="https://github.com/openresty/luajit2/archive/v$_pkgver/$_pkgname-$_pkgver.tar.gz
https://github.com/openresty/luajit2-test-suite/archive/$_gitrev_tests/luajit2-test-suite-$_gitrev_tests.tar.gz
- fix-lual_newstate-returns-null-on-ppc64le.patch
- fix-compilation-error-on-ppc.patch
fix-tests-alpine.patch
module-paths.patch
"
@@ -37,19 +39,16 @@ prepare() {
arm*) rm test-suite/test/misc/bit_op.lua;;
# 35: declaration specifier expected near '_Alignas' at line 882
x86) rm test-suite/test/sysdep/ffi_include_std.lua;;
- # bunch of broken tests on mips64
- mips64) rm test-suite/test/ffi/ffi_jit_conv.lua \
- test-suite/test/ffi/ffi_convert.lua \
- test-suite/test/sysdep/catch_cpp.lua \
- test-suite/test/sysdep/ffi_include_std.lua \
- test-suite/test/misc/dualnum.lua ;;
esac
}
build() {
+ # It's a language runtime, performance does matter. Users for whom disk
+ # size is more important can use lua5.1 instead.
+ export CFLAGS="${CFLAGS/-Os/-O2}"
+
# These flags are recommended by OpenResty.
local xcflags="-DLUAJIT_ENABLE_LUA52COMPAT -DLUAJIT_NUMMODE=2"
- [ "$CARCH" = x86_64 ] && xcflags="$xcflags -msse4.2"
make amalg PREFIX=/usr XCFLAGS="$xcflags"
}
@@ -72,10 +71,8 @@ package() {
}
sha512sums="
-c94b2c000f923f53bab88f5f90da74b3ac813fcf153d989a03b816654a26c5d50b7e5a2a70a86a0e8784431377d48f9be1635399e030d4882a0609ed786c87fb luajit2-2.1-20210510.tar.gz
-87995ffd648ca57049dadda12fa563a8c47c7735c0a34471372eeedaf4023361cf20824118e478e4466e3063ef864aa6b5ab0bbca1a5e0a3a5ef7ff044151deb luajit2-test-suite-485311ff265763c2aecce155ad697a974838857c.tar.gz
-57a60839c4416227bb0995ad0ae98f973b6bd82155fda2e6a1c8369d662d470b733582d4aeff6181771ea496d4d8af6aa684c0b45734abc5b1fd0d91d54f20bb fix-lual_newstate-returns-null-on-ppc64le.patch
-7eaf1c9f73127c7bd321cc0d4f4d9c1db87cc9ff672936a98e2f9f247aca7bdc570fc54120e90cf9bc1dc74f48d65f340f600a2bb93fd22fe1904d957a8172ec fix-compilation-error-on-ppc.patch
-9702eb7f51d52ef97be0fb5c7369bde9ce229444ae05e5387e3d1144acc03391f225ede07a7fd3799ca749a916c1d934dbac383c36720ba2e13b1bc19d8df1a5 fix-tests-alpine.patch
+b861b4182f4e6814878a9de84ed5a864429a8b9a29f8d1b20b2ec5f42e8883214f3d04ee0e8d7f80e3e58debfedff7a8b6363310b74d926f5cfe7be13ce0892c luajit2-2.1-20230410.tar.gz
+9931f56998f89638e97ce60d9dab8e8e091d5001a576f7bb4125a8bf7c55cee391421fdf8c60c4454f2518c2865c9374e727ec24a09594b3edb08f2c100950d7 luajit2-test-suite-1fa1f103f9235e22aac5331fe04b267ee7be6206.tar.gz
+684be4199634ac6e52183e98b65c9bcdc99217865c47b83a1f579a9f0e1ec55fb1a5fe8ae2f1293ac561c8c806aef269e451e3d73bf168ec20a4fd343c7a89d4 fix-tests-alpine.patch
9c6c410e142838c5128c70570e66beb53cc5422df5ecfb8ab0b5f362637b21ab5978c00f19bc1759165df162fd6438a2ed43e25020400011b7bb14014d87c62e module-paths.patch
"
diff --git a/main/luajit/fix-compilation-error-on-ppc.patch b/main/luajit/fix-compilation-error-on-ppc.patch
deleted file mode 100644
index a00e948a878..00000000000
--- a/main/luajit/fix-compilation-error-on-ppc.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 4d080589ada785636bf440e3e8afe9947671f406 Mon Sep 17 00:00:00 2001
-From: Maniraj Deivendran <maniraj.deivendran@ibm.com>
-Date: Tue, 1 Jun 2021 09:14:02 +0000
-Subject: [PATCH] Change: Resolve compilation error in ppc
-
----
- src/lj_ccallback.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-Patch-Source: https://github.com/openresty/luajit2/pull/124
-
-diff --git a/src/lj_ccallback.c b/src/lj_ccallback.c
-index 3dbf1e9c..568ab336 100644
---- a/src/lj_ccallback.c
-+++ b/src/lj_ccallback.c
-@@ -21,6 +21,10 @@
- #include "lj_trace.h"
- #include "lj_vm.h"
-
-+#if LJ_ARCH_PPC_ELFV2
-+#include "lualib.h"
-+#endif
-+
- /* -- Target-specific handling of callback slots -------------------------- */
-
- #define CALLBACK_MCODE_SIZE (LJ_PAGESIZE * LJ_NUM_CBPAGE)
diff --git a/main/luajit/fix-lual_newstate-returns-null-on-ppc64le.patch b/main/luajit/fix-lual_newstate-returns-null-on-ppc64le.patch
deleted file mode 100644
index 95fda15545c..00000000000
--- a/main/luajit/fix-lual_newstate-returns-null-on-ppc64le.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From e1c27418c7d3dc6161a70e119e588091957c80b9 Mon Sep 17 00:00:00 2001
-From: Maniraj Deivendran <maniraj.deivendran@ibm.com>
-Date: Tue, 1 Jun 2021 08:27:51 +0000
-Subject: [PATCH] Change: Resolve luaL_newstate() return NULL in ppc64le issue
-
----
- src/lj_def.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Patch-Source: https://github.com/openresty/luajit2/pull/123
-
-diff --git a/src/lj_def.h b/src/lj_def.h
-index 68ae3d51..56362092 100644
---- a/src/lj_def.h
-+++ b/src/lj_def.h
-@@ -111,7 +111,7 @@ typedef unsigned int uintptr_t;
- #define checkptr31(x) (((uint64_t)(uintptr_t)(x) >> 31) == 0)
- #define checkptr32(x) ((uintptr_t)(x) == (uint32_t)(uintptr_t)(x))
- #define checkptr47(x) (((uint64_t)(uintptr_t)(x) >> 47) == 0)
--#define checkptrGC(x) (LJ_GC64 ? checkptr47((x)) : LJ_64 ? checkptr31((x)) :1)
-+#define checkptrGC(x) (LJ_GC64 ? checkptr47((x)) : LJ_64 ? checkptr32((x)) :1)
-
- /* Every half-decent C compiler transforms this into a rotate instruction. */
- #define lj_rol(x, n) (((x)<<(n)) | ((x)>>(-(int)(n)&(8*sizeof(x)-1))))
diff --git a/main/luajit/fix-tests-alpine.patch b/main/luajit/fix-tests-alpine.patch
index 3a930098523..83e3108a282 100644
--- a/main/luajit/fix-tests-alpine.patch
+++ b/main/luajit/fix-tests-alpine.patch
@@ -2,7 +2,7 @@ Fix tests to pass on musl and also avoid extra dependencies (e.g. ncurses, mpc,
--- a/test-suite/run-tests
+++ b/test-suite/run-tests
-@@ -73,14 +73,6 @@
+@@ -73,15 +73,6 @@
$ENV{LUA_CPATH} = "$cwd/test/clib/?;;";
@@ -13,6 +13,7 @@ Fix tests to pass on musl and also avoid extra dependencies (e.g. ncurses, mpc,
-}
-chomp $cdefs;
-$ENV{CDEFS} = $cdefs;
+-#warn "CDEFS=$cdefs";
-
if (@ARGV) {
for my $test_file (@ARGV) {
diff --git a/main/lutok/APKBUILD b/main/lutok/APKBUILD
index b527abe1084..fdd7ac3f6d8 100644
--- a/main/lutok/APKBUILD
+++ b/main/lutok/APKBUILD
@@ -1,15 +1,16 @@
-# Maintainer:
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lutok
pkgver=0.4
-pkgrel=3
+pkgrel=6
pkgdesc="lightweight C++ API for Lua"
-url="https://github.com/jmmv/lutok"
+url="https://github.com/freebsd/lutok"
arch="all"
license="BSD-3-Clause"
-depends_dev="lua5.3-dev"
+_luaver=5.4
+depends_dev="lua$_luaver-dev"
makedepends="$depends_dev"
subpackages="$pkgname-dev $pkgname-doc"
-source="https://github.com/jmmv/lutok/releases/download/lutok-$pkgver/lutok-$pkgver.tar.gz"
+source="https://github.com/freebsd/lutok/releases/download/lutok-$pkgver/lutok-$pkgver.tar.gz"
prepare() {
default_prepare
@@ -17,8 +18,8 @@ prepare() {
}
build() {
- LUA_CFLAGS=$(pkg-config --cflags lua5.3) \
- LUA_LIBS=$(pkg-config --libs lua5.3) \
+ LUA_CFLAGS=$(pkg-config --cflags lua$_luaver) \
+ LUA_LIBS=$(pkg-config --libs lua$_luaver) \
./configure \
--build=$CBUILD \
--host=$CHOST \
diff --git a/main/lvm2/0001-lvresize-use-POSIX-shell.patch b/main/lvm2/0001-lvresize-use-POSIX-shell.patch
new file mode 100644
index 00000000000..cf9609bac8b
--- /dev/null
+++ b/main/lvm2/0001-lvresize-use-POSIX-shell.patch
@@ -0,0 +1,124 @@
+From 50fe324ff953eedd210054ffc21715d22134b3c1 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 16 Nov 2022 11:55:34 +0100
+Subject: [PATCH] lvresize: use POSIX shell
+
+---
+ scripts/lvresize_fs_helper.sh | 28 ++++++++++++++--------------
+ 1 file changed, 14 insertions(+), 14 deletions(-)
+
+diff --git a/scripts/lvresize_fs_helper.sh b/scripts/lvresize_fs_helper.sh
+index 90b1a97..1c48a71 100755
+--- a/scripts/lvresize_fs_helper.sh
++++ b/scripts/lvresize_fs_helper.sh
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #
+ # Copyright (C) 2022 Red Hat, Inc. All rights reserved.
+ #
+@@ -69,7 +69,7 @@ fsextend() {
+ fi
+ fi
+
+- if [[ "$FSTYPE" == "ext"* ]]; then
++ if [ "${FSTYPE#ext}" != "$FSTYPE" ]; then
+ logmsg "resize2fs ${DEVPATH}"
+ if resize2fs "$DEVPATH"; then
+ logmsg "resize2fs done"
+@@ -77,7 +77,7 @@ fsextend() {
+ logmsg "resize2fs failed"
+ RESIZEFS_FAILED=1
+ fi
+- elif [[ "$FSTYPE" == "xfs" ]]; then
++ elif [ "$FSTYPE" = "xfs" ]; then
+ logmsg "xfs_growfs ${DEVPATH}"
+ if xfs_growfs "$DEVPATH"; then
+ logmsg "xfs_growfs done"
+@@ -102,7 +102,7 @@ fsextend() {
+
+ # If the fs was temporarily unmounted, now remount it.
+ # Not considered a command failure if this fails.
+- if [[ $DO_UNMOUNT -eq 1 && $REMOUNT -eq 1 ]]; then
++ if [ "$DO_UNMOUNT" -eq 1 ] && [ "$REMOUNT" -eq 1 ]; then
+ logmsg "remount ${DEVPATH} ${MOUNTDIR}"
+ if mount -t "$FSTYPE" "$DEVPATH" "$MOUNTDIR"; then
+ logmsg "remount done"
+@@ -151,7 +151,7 @@ fsreduce() {
+ fi
+ fi
+
+- if [[ "$FSTYPE" == "ext"* ]]; then
++ if [ "${FSTYPE#ext}" != "$FSTYPE" ]; then
+ NEWSIZEKB=$(( NEWSIZEBYTES / 1024 ))
+ logmsg "resize2fs ${DEVPATH} ${NEWSIZEKB}k"
+ if resize2fs "$DEVPATH" "$NEWSIZEKB"k; then
+@@ -194,7 +194,7 @@ fsreduce() {
+
+ # If the fs was temporarily unmounted, now remount it.
+ # Not considered a command failure if this fails.
+- if [[ $DO_UNMOUNT -eq 1 && $REMOUNT -eq 1 ]]; then
++ if [ "$DO_UNMOUNT" -eq 1 ] && [ "$REMOUNT" -eq 1 ]; then
+ logmsg "remount ${DEVPATH} ${MOUNTDIR}"
+ if mount -t "$FSTYPE" "$DEVPATH" "$MOUNTDIR"; then
+ logmsg "remount done"
+@@ -291,7 +291,7 @@ DO_FSCK=0
+ # mounted and the script unmounted it.
+ REMOUNT=0
+
+-if [ "$UID" != 0 ] && [ "$EUID" != 0 ]; then
++if [ "$(id -u)" != 0 ]; then
+ errorexit "${SCRIPTNAME} must be run as root."
+ fi
+
+@@ -372,11 +372,11 @@ done
+ #
+
+ # There are three top level commands: --fsextend, --fsreduce, --cryptresize.
+-if [[ "$DO_FSEXTEND" -eq 0 && "$DO_FSREDUCE" -eq 0 && "$DO_CRYPTRESIZE" -eq 0 ]]; then
++if [ "$DO_FSEXTEND" -eq 0 ] && [ "$DO_FSREDUCE" -eq 0 ] && [ "$DO_CRYPTRESIZE" -eq 0 ]; then
+ errorexit "Missing --fsextend|--fsreduce|--cryptresize."
+ fi
+
+-if [[ "$DO_FSEXTEND" -eq 1 || "$DO_FSREDUCE" -eq 1 ]]; then
++if [ "$DO_FSEXTEND" -eq 1 ] || [ "$DO_FSREDUCE" -eq 1 ]; then
+ case "$FSTYPE" in
+ ext[234]) ;;
+ "xfs") ;;
+@@ -388,7 +388,7 @@ if [[ "$DO_FSEXTEND" -eq 1 || "$DO_FSREDUCE" -eq 1 ]]; then
+ fi
+ fi
+
+-if [[ "$DO_CRYPTRESIZE" -eq 1 && -z "$CRYPTPATH" ]]; then
++if [ "$DO_CRYPTRESIZE" -eq 1 ] && [ -z "$CRYPTPATH" ]; then
+ errorexit "Missing required --cryptpath for --cryptresize."
+ fi
+
+@@ -406,15 +406,15 @@ if [ ! -e "$DEVPATH" ]; then
+ errorexit "Device does not exist \"$DEVPATH\"."
+ fi
+
+-if [[ "$DO_UNMOUNT" -eq 1 && -z "$MOUNTDIR" ]]; then
++if [ "$DO_UNMOUNT" -eq 1 ] && [ -z "$MOUNTDIR" ]; then
+ errorexit "Missing required --mountdir for --unmount."
+ fi
+
+-if [[ "$DO_FSREDUCE" -eq 1 && "$FSTYPE" == "xfs" ]]; then
++if [ "$DO_FSREDUCE" -eq 1 ] && [ "$FSTYPE" = "xfs" ]; then
+ errorexit "Cannot reduce xfs."
+ fi
+
+-if [[ "$DO_FSCK" -eq 1 && "$FSTYPE" == "xfs" ]]; then
++if [ "$DO_FSCK" -eq 1 ] && [ "$FSTYPE" = "xfs" ]; then
+ errorexit "Cannot use --fsck with xfs."
+ fi
+
+@@ -424,7 +424,7 @@ if [ "$DO_MOUNT" -eq 1 ]; then
+ errorexit "Failed to create temp dir."
+ fi
+ # In case the script terminates without doing cleanup
+- function finish {
++ finish() {
+ if [ "$TMP_MOUNT_DONE" -eq 1 ]; then
+ logmsg "exit unmount ${TMPDIR}"
+ umount "$TMPDIR"
diff --git a/main/lvm2/APKBUILD b/main/lvm2/APKBUILD
index eeefedc2bac..e7bab1538d9 100644
--- a/main/lvm2/APKBUILD
+++ b/main/lvm2/APKBUILD
@@ -1,46 +1,53 @@
# Contributor: Jacek Migacz <jacekmigacz@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lvm2
-pkgver=2.02.187
+pkgver=2.03.23
pkgrel=2
pkgdesc="Logical Volume Manager 2 utilities"
url="https://sourceware.org/lvm2/"
arch="all"
options="!check" # Test tries to use real /dev/mapper/control.
-license="GPL-2.0-only LGPL-2.1-only"
+license="GPL-2.0-or-later AND LGPL-2.1-or-later AND BSD-2-Clause"
# lvm2 will dlopen libs so we need to add explicit depend
depends="lvm2-libs=$pkgver-r$pkgrel"
depends_dev="linux-headers"
-makedepends_build="coreutils"
-makedepends_host="$depends_dev libaio-dev util-linux-dev"
-makedepends="$makedepends_build $makedepends_host"
+makedepends_host="$depends_dev libaio-dev util-linux-static util-linux-dev"
source="https://mirrors.kernel.org/sourceware/lvm2/LVM2.$pkgver.tgz
+ default-udev-sync.patch
fix-stdio-usage.patch
- mallinfo.patch
library_dir-default-config.patch
mlockall-default-config.patch
+ no-systemd.patch
+ 0001-lvresize-use-POSIX-shell.patch
lvm.initd
lvm.confd
+ lvmlockd.initd
dmeventd.initd
"
subpackages="
$pkgname-static:lvm2_static
device-mapper-static:dm_static
device-mapper-libs:dm_libs
- device-mapper-event-static:dm_event_static
device-mapper-event-libs:dm_event_libs
$pkgname-dev
$pkgname-doc
- $pkgname-dmeventd
$pkgname-openrc
+ $pkgname-dmeventd
+ $pkgname-dmeventd-openrc:dmeventd_openrc
device-mapper:dm
device-mapper-udev:udev:noarch
$pkgname-libs
$pkgname-extra::noarch
"
-
builddir="$srcdir/LVM2.$pkgver"
+if [ -z "$BOOTSTRAP" ] && [ -z "$APORTS_BOOTSTRAP" ]; then
+ # XXX: enable-udev_sync needs a bit more polish to not fail with mdev-only
+ _no_bootstrap="--enable-lvmlockd-sanlock --disable-udev_sync"
+ makedepends_host="$makedepends_host eudev-dev sanlock-dev"
+ subpackages="$subpackages $pkgname-lockd $pkgname-lockd-openrc:lockd_openrc"
+fi
+
prepare() {
default_prepare
update_config_sub
@@ -60,18 +67,27 @@ build() {
--sbindir=/sbin \
--localstatedir=/var \
--enable-static_link \
+ --disable-dependency-tracking \
--disable-nls \
--disable-readline \
--enable-pkgconfig \
- --enable-applib \
--with-thin=internal \
--enable-dmeventd \
--enable-cmdlib \
- --with-thin-check=/sbin/thin_check \
- --with-thin-dump=/sbin/thin_dump \
- --with-thin-repair=/sbin/thin_repair \
+ --with-thin-check=/usr/sbin/thin_check \
+ --disable-thin_check_needs_check \
+ --with-thin-dump=/usr/sbin/thin_dump \
+ --with-thin-repair=/usr/sbin/thin_repair \
+ --with-thin-restore=/usr/sbin/thin_restore \
+ --with-cache-check=/usr/sbin/cache_check \
+ --disable-cache_check_needs_check \
+ --with-cache-dump=/usr/sbin/cache_dump \
+ --with-cache-repair=/usr/sbin/cache_repair \
+ --with-cache-restore=/usr/sbin/cache_restore \
--with-dmeventd-path=/sbin/dmeventd \
+ --without-systemd-run \
--enable-udev_rules \
+ $_no_bootstrap \
CLDFLAGS="$LDFLAGS"
make
}
@@ -81,92 +97,93 @@ package() {
install -d "$pkgdir"/etc/lvm/archive "$pkgdir"/etc/lvm/backup
install -Dm755 "$srcdir"/lvm.initd "$pkgdir"/etc/init.d/lvm
install -Dm644 "$srcdir"/lvm.confd "$pkgdir"/etc/conf.d/lvm
- ln -s libdevmapper.so.1.02 "$pkgdir"/lib/libdevmapper.so
}
dmeventd() {
pkgdesc="Device-mapper event daemon"
- mkdir -p "$subpkgdir"/sbin
- mv "$pkgdir"/sbin/dmeventd "$subpkgdir"/sbin/
+ amove sbin/dmeventd
+}
+
+dmeventd_openrc() {
+ pkgdesc="Device-mapper event daemon (OpenRC init scripts)"
+ install_if="$pkgname-dmeventd=$pkgver-r$pkgrel openrc"
install -Dm755 "$srcdir"/dmeventd.initd "$subpkgdir"/etc/init.d/dmeventd
}
+
dm_static() {
- pkgdesc="Device-mapper static library"
- mkdir -p "$subpkgdir"/lib
- mv "$pkgdir"/usr/lib/libdevmapper.a "$subpkgdir"/lib/
+ pkgdesc="Device-mapper static libraries and binaries"
+ provides="device-mapper-event-static=$pkgver-r$pkgrel"
+ amove usr/lib/libdevmapper*.a usr/sbin/dm*.static
}
dm() {
pkgdesc="Device mapper userspace library and tools from LVM2"
- mkdir -p "$subpkgdir"/sbin
- mv "$pkgdir"/sbin/dm* "$subpkgdir"/sbin/
-
- mkdir -p "$subpkgdir"/usr/sbin
- mv "$pkgdir"/usr/sbin/dm* "$subpkgdir"/usr/sbin/
-
- # remove duplicate dmstats
- rm -f "$subpkgdir"/usr/sbin/dmstats
+ amove sbin/dm*
}
udev() {
pkgdesc="Device mapper udev rules"
install="$subpkgname.post-install $subpkgname.post-upgrade"
- install_if="device-mapper eudev"
- mkdir -p "$subpkgdir"/usr/lib/udev
- mv "$pkgdir"/usr/lib/udev/rules.d "$subpkgdir"/usr/lib/udev/
+ install_if="device-mapper=$pkgver-r$pkgrel eudev"
+ amove usr/lib/udev/rules.d
}
libs() {
pkgdesc="LVM2 shared libraries"
depends=
- mkdir -p "$subpkgdir"/lib
- mv "$pkgdir"/lib/liblvm2*.so.* "$subpkgdir"/lib/
- mv "$pkgdir"/lib/libdevmapper-event-lvm2*.so.* "$subpkgdir"/lib/
- mv "$pkgdir"/lib/device-mapper "$subpkgdir"/lib/
+ amove lib/liblvm2*.so.* \
+ lib/libdevmapper-event-lvm2*.so.* \
+ lib/device-mapper
}
dm_libs() {
pkgdesc="Device-mapper shared library"
depends=
- mkdir -p "$subpkgdir"/lib
- mv "$pkgdir"/lib/libdevmapper.so.* "$subpkgdir"/lib/
+ amove lib/libdevmapper.so.*
}
dm_event_libs() {
pkgdesc="Device-mapper event daemon shared library"
depends=
- mkdir -p "$subpkgdir"/lib
- mv "$pkgdir"/lib/libdevmapper-event.so.* "$subpkgdir"/lib/
-}
-
-dm_event_static() {
- pkgdesc="Device-mapper event daemon static library"
- mkdir -p "$subpkgdir"/lib
- mv "$pkgdir"/usr/lib/libdevmapper-event.a "$subpkgdir"/lib/
+ amove lib/libdevmapper-event.so.*
}
lvm2_static() {
pkgdesc="$pkgdesc static library"
- mkdir -p "$subpkgdir"/lib
- mv "$pkgdir"/usr/lib/liblvm2*.a "$subpkgdir"/lib/
+ amove usr/lib/liblvm2*.a usr/sbin/lvm.static
}
extra() {
pkgdesc="LVM2 extra utilities"
depends="bash coreutils"
- local util
- for util in sbin/lvmdump sbin/lvmconf sbin/fsadm sbin/blkdeactivate; do
- mkdir -p "$subpkgdir/${util%/*}"
- mv $pkgdir/$util $subpkgdir/$util
- done
+ amove sbin/lvmdump sbin/fsadm sbin/blkdeactivate sbin/lvm_import_vdo
+}
+
+lockd() {
+ pkgdesc="LVM2 locking daemon"
+ depends="sanlock"
+ # lvmpolld isn't strictly part of this, but is enabled by enabling this, so put it here too
+ amove sbin/lvmlockctl sbin/lvmlockd sbin/lvmpolld
+}
+
+lockd_openrc() {
+ pkgdesc="LVM2 locking daemon (OpenRC init scripts)"
+ install_if="$pkgname-lockd=$pkgver-r$pkgrel openrc"
+
+ install -Dm755 "$srcdir"/lvmlockd.initd "$subpkgdir"/etc/init.d/lvmlockd
}
-sha512sums="3ce56f0c0d2e7dbcdae5be263199f73ee5c4c052599d53cde9b16500a326d0340893344f4671839be06b5b4225d592175d01c9974db14f2dc220d6e9a1d47e91 LVM2.2.02.187.tgz
-9ad38a68620986db826ccbc4972c44b3ef12e5b37f1f573db20748e7b2327726c7c51b04aaad2a2e9bb76101ec352b7e7a102fdc4a75e79e9587cfc3b87da0e5 fix-stdio-usage.patch
-9272ec8c5184ef5dc776ead8f74132e072b7563b5119a3a38b712f00d92a1e3878c9b3a54eb2b01dcba038110c686b39d4c17ecd0eb258537e9217d7ed03c408 mallinfo.patch
-33004594a5cce7af1e493a2a66ce8ad2f864dde3b2ec0960d0fda9df9b7bcf65d9455f9eccf7860f48726c48f14111b843b0a0c9bd395ef2952b41aaab8092b2 library_dir-default-config.patch
-e113c518bb7f03feea892252518f1df3733fad32f04ed0701a8313cf35ba932c3e2d29ecd97d739f8908b481ed1f6a2eb0129cb307214d0a084d9a8d0b4bc290 mlockall-default-config.patch
-a853078660fd2fd943538924f56e81dc5793294e26b8f61d93e6188893f15f4a438d33792b341c1865d61e03f4a371b7c7ee0db5f4130ef7cb7aeaeb9290086a lvm.initd
+sha512sums="
+293430a80c7f599d14e77610456d0f44cac8164e6159cd0e2e287462278a89787e289fdb4d481eb8fd6b5eea07a6535c41cb7fdc3deee83df7fea9bf77dcbdaa LVM2.2.03.23.tgz
+ce526e0b58236d26fcb21c81090f8a5baecc0909e645696dccf4c9c7b7adc31fb6f2ababb158217a81324aca14a55631d2fac3176177d81f0bbd35032c0b9979 default-udev-sync.patch
+c65ef16840321d8a58373e872713eeccbc315a84bb35beebccb6bc6063295b0f54b7c0726c799efd8cafedd011c21f51ec8e85f8a50d0d5df80b7428aedf29c3 fix-stdio-usage.patch
+b790cfcb55aa0362c7046c26a8e050708edecaf0233946adbb34d9c1d967d3614bc19e0c91695da4fd12d7b18adb74041ae11239cd635310cc44b8a7079ccbec library_dir-default-config.patch
+07f77491cffa0d9dcda86004e2df428d5d52652a3bda8037a4b09c9c786146253314a11bae42512231c664a8fae110fec815bd12135fc3c6152b94e2101f8213 mlockall-default-config.patch
+dfcda00e5607606ae8f10e5765de048af933afd05e0719b14036ba84ebc3b4eb07b138e5ce9af9f653416b4a6cc42161591e6f93ee3a36721a2b7396d70d5d91 no-systemd.patch
+3cec0a44e44b15dcfc0bb22f8a4318e76bf719fe9a550b6cf99160ea4181707f81ba6a50c8dafedc942638b1ae8bfde901eeff83ba0d6cb8383a178274ba54a5 0001-lvresize-use-POSIX-shell.patch
+714e6aaba3437b43af38b0b559d0f983b2cea023e2bc64e0c3763e9c78ae4ca125fb75839fda52128e7044a4add81940fd69e92439d30d232cf20a4204f0e321 lvm.initd
07caf8fa942290f3c953cc2463aaf55bac01d0bcb9351daf3880fa4d0eefb67fe00761c46a7a4da91cd2f8e492a12fed35853a15dc939cd80d19d3303bc3951d lvm.confd
-ca06220065525e93347efb7a5746a367cf55cb03574e50eed29bd7c4eae036bdd199b52c42d81811b6e742649e73ab8e66525f663bed66f9d1d82d0efde50332 dmeventd.initd"
+7215daf0872063672d5ad13f65ccd90833c6ebea7347149789b97a232d92af28ddc21c2893cb9ee2cb004f857700822917152c2005300a5060b3095f0582bfdd lvmlockd.initd
+ca06220065525e93347efb7a5746a367cf55cb03574e50eed29bd7c4eae036bdd199b52c42d81811b6e742649e73ab8e66525f663bed66f9d1d82d0efde50332 dmeventd.initd
+"
diff --git a/main/lvm2/default-udev-sync.patch b/main/lvm2/default-udev-sync.patch
new file mode 100644
index 00000000000..b1dc1906e5e
--- /dev/null
+++ b/main/lvm2/default-udev-sync.patch
@@ -0,0 +1,15 @@
+make this opt-in
+--
+diff --git a/lib/config/defaults.h b/lib/config/defaults.h
+index 1ff3637..9c2711b 100644
+--- a/lib/config/defaults.h
++++ b/lib/config/defaults.h
+@@ -199,7 +199,7 @@
+ #define DEFAULT_LABELSECTOR UINT64_C(1)
+ #define DEFAULT_READ_AHEAD "auto"
+ #define DEFAULT_UDEV_RULES 1
+-#define DEFAULT_UDEV_SYNC 1
++#define DEFAULT_UDEV_SYNC 0
+ #define DEFAULT_NOTIFY_DBUS 1
+ #define DEFAULT_VERIFY_UDEV_OPERATIONS 0
+ #define DEFAULT_RETRY_DEACTIVATION 1
diff --git a/main/lvm2/fix-stdio-usage.patch b/main/lvm2/fix-stdio-usage.patch
index 5ac99fd26e3..98cdc6eb3ec 100644
--- a/main/lvm2/fix-stdio-usage.patch
+++ b/main/lvm2/fix-stdio-usage.patch
@@ -1,6 +1,40 @@
---- ./tools/lvmcmdline.c
-+++ ./tools/lvmcmdline.c
-@@ -1252,7 +1252,7 @@
+From 63b1c7332bee6080bffecf9ce9d75ff15d799166 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Wed, 16 Nov 2022 10:42:39 +0100
+Subject: [PATCH] fix stdio usage
+
+---
+ lib/commands/toolcontext.c | 4 ++--
+ tools/lvmcmdline.c | 6 +++---
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/lib/commands/toolcontext.c b/lib/commands/toolcontext.c
+index b630554a9..f20080d18 100644
+--- a/lib/commands/toolcontext.c
++++ b/lib/commands/toolcontext.c
+@@ -1667,7 +1667,7 @@ struct cmd_context *create_toolcontext(unsigned is_clvmd,
+ /* FIXME Make this configurable? */
+ reset_lvm_errno(1);
+
+-#ifndef VALGRIND_POOL
++#if !defined(VALGRIND_POOL) && defined(__GLIBC__)
+ /* Set in/out stream buffering before glibc */
+ if (set_buffering
+ #ifdef SYS_gettid
+@@ -2045,7 +2045,7 @@ void destroy_toolcontext(struct cmd_context *cmd)
+ dm_hash_destroy(cmd->cft_def_hash);
+
+ dm_device_list_destroy(&cmd->cache_dm_devs);
+-#ifndef VALGRIND_POOL
++#if !defined(VALGRIND_POOL) && defined(__GLIBC__)
+ if (cmd->linebuffer) {
+ /* Reset stream buffering to defaults */
+ if (is_valid_fd(STDIN_FILENO) &&
+diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c
+index a5bb6a5c5..0ebfa375c 100644
+--- a/tools/lvmcmdline.c
++++ b/tools/lvmcmdline.c
+@@ -3422,7 +3422,7 @@ static int _check_standard_fds(void)
int err = is_valid_fd(STDERR_FILENO);
if (!is_valid_fd(STDIN_FILENO) &&
@@ -9,7 +43,7 @@
if (err)
perror("stdin stream open");
else
-@@ -1262,7 +1262,7 @@
+@@ -3432,7 +3432,7 @@ static int _check_standard_fds(void)
}
if (!is_valid_fd(STDOUT_FILENO) &&
@@ -18,7 +52,7 @@
if (err)
perror("stdout stream open");
/* else no stdout */
-@@ -1270,7 +1270,7 @@
+@@ -3440,7 +3440,7 @@ static int _check_standard_fds(void)
}
if (!is_valid_fd(STDERR_FILENO) &&
@@ -27,23 +61,6 @@
printf("stderr stream open: %s\n",
strerror(errno));
return 0;
---- ./lib/commands/toolcontext.c
-+++ ./lib/commands/toolcontext.c
-@@ -1869,7 +1869,7 @@
- /* FIXME Make this configurable? */
- reset_lvm_errno(1);
-
--#ifndef VALGRIND_POOL
-+#if !defined(VALGRIND_POOL) && defined(__GLIBC__)
- /* Set in/out stream buffering before glibc */
- if (set_buffering
- #ifdef SYS_gettid
-@@ -2274,7 +2274,7 @@
-
- if (cmd->pending_delete_mem)
- dm_pool_destroy(cmd->pending_delete_mem);
--#ifndef VALGRIND_POOL
-+#if !defined(VALGRIND_POOL) && defined(__GLIBC__)
- if (cmd->linebuffer) {
- /* Reset stream buffering to defaults */
- if (is_valid_fd(STDIN_FILENO) &&
+--
+2.38.1
+
diff --git a/main/lvm2/library_dir-default-config.patch b/main/lvm2/library_dir-default-config.patch
index 6e3b95832d9..600fdcbd353 100644
--- a/main/lvm2/library_dir-default-config.patch
+++ b/main/lvm2/library_dir-default-config.patch
@@ -1,6 +1,6 @@
--- ./conf/example.conf.in.orig
+++ ./conf/example.conf.in
-@@ -694,6 +694,7 @@
+@@ -982,6 +982,7 @@
# Configuration option global/library_dir.
# Search this directory first for shared libraries.
# This configuration option does not have a default value defined.
diff --git a/main/lvm2/lvm.initd b/main/lvm2/lvm.initd
index db6adbeed76..c5b4163de1a 100644
--- a/main/lvm2/lvm.initd
+++ b/main/lvm2/lvm.initd
@@ -17,12 +17,12 @@ dm_in_proc() {
start() {
local rc=0 msg=
ebegin "Setting up the Logical Volume Manager"
- if [ -e /proc/modules ] && ! dm_in_proc; then
+ if [ -e /proc/modules ] && ! dm_in_proc; then
modprobe dm-mod 2>/dev/null
fi
if [ -d /proc/lvm ] || dm_in_proc; then
- vgscan --mknodes --ignorelockingfailure >/dev/null 2>&1
- vgchange --sysinit --activate y >/dev/null 2>&1
+ vgscan --mknodes --ignorelockingfailure
+ vgchange --sysinit --activate y
rc=$?
else
rc=1
@@ -33,6 +33,10 @@ start() {
stop() {
ebegin "Shutting down the Logical Volume Manager"
vgchange --ignorelockingfailure -a n >/dev/null 2>&1
- eend $?
+ # At this stage all filesystems except rootfs have been
+ # unmounted. A "standard" error here is failure to deactivate
+ # the VG containing the rootfs (as it is still obviously in use)
+ # so why bother giving a non-zero error code?
+ eend 0
}
diff --git a/main/lvm2/lvmlockd.initd b/main/lvm2/lvmlockd.initd
new file mode 100644
index 00000000000..44d7e61f969
--- /dev/null
+++ b/main/lvm2/lvmlockd.initd
@@ -0,0 +1,11 @@
+#!/sbin/openrc-run
+
+name=lvmlockd
+command="/sbin/$name"
+command_args_foreground="--foreground"
+command_background=true
+pidfile="/run/$name.pid"
+
+start_pre() {
+ checkpath --directory /run/lvm
+}
diff --git a/main/lvm2/mallinfo.patch b/main/lvm2/mallinfo.patch
deleted file mode 100644
index 471a6b25515..00000000000
--- a/main/lvm2/mallinfo.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- ./lib/mm/memlock.c.orig 2015-03-09 11:18:41.560028850 -0100
-+++ ./lib/mm/memlock.c 2015-03-09 11:19:54.504373309 -0100
-@@ -137,7 +137,7 @@
-
- static void _allocate_memory(void)
- {
--#ifndef VALGRIND_POOL
-+#if !defined(VALGRIND_POOL) && defined(__GLIBC__)
- void *stack_mem;
- struct rlimit limit;
- int i, area = 0, missing = _size_malloc_tmp, max_areas = 32, hblks;
diff --git a/main/lvm2/mlockall-default-config.patch b/main/lvm2/mlockall-default-config.patch
index 305ddeedb74..5e25893715e 100644
--- a/main/lvm2/mlockall-default-config.patch
+++ b/main/lvm2/mlockall-default-config.patch
@@ -1,17 +1,21 @@
---- ./conf/example.conf.in.orig
-+++ ./conf/example.conf.in
-@@ -1352,7 +1352,7 @@
- # Use the old behavior of mlockall to pin all memory.
+diff --git a/conf/example.conf.in b/conf/example.conf.in
+index 923d238..a069dac 100644
+--- a/conf/example.conf.in
++++ b/conf/example.conf.in
+@@ -1778,7 +1778,7 @@ activation {
# Prior to version 2.02.62, LVM used mlockall() to pin the whole
# process's memory while activating devices.
-- use_mlockall = 0
-+ use_mlockall = 1
+ # This configuration option has an automatic default value.
+- # use_mlockall = 0
++ # use_mlockall = 1
# Configuration option activation/monitoring.
# Monitor LVs that are activated.
---- ./lib/config/defaults.h.orig
-+++ ./lib/config/defaults.h
-@@ -55,7 +55,7 @@
+diff --git a/lib/config/defaults.h b/lib/config/defaults.h
+index 571054d..1ff3637 100644
+--- a/lib/config/defaults.h
++++ b/lib/config/defaults.h
+@@ -66,7 +66,7 @@
#define DEFAULT_LVMLOCKD_LOCK_RETRIES 3
#define DEFAULT_LVMETAD_UPDATE_WAIT_TIME 10
#define DEFAULT_PRIORITISE_WRITE_LOCKS 1
diff --git a/main/lvm2/no-systemd.patch b/main/lvm2/no-systemd.patch
new file mode 100644
index 00000000000..1159b13f021
--- /dev/null
+++ b/main/lvm2/no-systemd.patch
@@ -0,0 +1,13 @@
+diff --git a/udev/69-dm-lvm.rules.in b/udev/69-dm-lvm.rules.in
+index ff15681..9f83bfa 100644
+--- a/udev/69-dm-lvm.rules.in
++++ b/udev/69-dm-lvm.rules.in
+@@ -76,7 +76,7 @@ LABEL="lvm_scan"
+ # it's better suited to appearing in the journal.
+
+ IMPORT{program}="(LVM_EXEC)/lvm pvscan --cache --listvg --checkcomplete --vgonline --autoactivation event --udevoutput --journal=output $env{DEVNAME}"
+-ENV{LVM_VG_NAME_COMPLETE}=="?*", RUN+="(SYSTEMDRUN) --no-block --property DefaultDependencies=no --unit lvm-activate-$env{LVM_VG_NAME_COMPLETE} (LVM_EXEC)/lvm vgchange -aay --autoactivation event $env{LVM_VG_NAME_COMPLETE}"
++ENV{LVM_VG_NAME_COMPLETE}=="?*", RUN+="(LVM_EXEC)/lvm vgchange -aay --autoactivation event $env{LVM_VG_NAME_COMPLETE}"
+ GOTO="lvm_end"
+
+ LABEL="lvm_end"
diff --git a/main/lxc-templates-legacy/0001-Update-alpine-keys-URI-fix-package-verification.patch b/main/lxc-templates-legacy/0001-Update-alpine-keys-URI-fix-package-verification.patch
new file mode 100644
index 00000000000..1733e91b9c2
--- /dev/null
+++ b/main/lxc-templates-legacy/0001-Update-alpine-keys-URI-fix-package-verification.patch
@@ -0,0 +1,66 @@
+From 2163a7e4e04383696bb88a9da2f7fa61ab4781b7 Mon Sep 17 00:00:00 2001
+From: 4oo4 <4oo4@users.noreply.github.com>
+Date: Wed, 8 Jun 2022 00:58:04 +0000
+Subject: [PATCH] Update alpine keys URI - fix package verification
+
+Alpine started using https://git.alpinelinux.org/aports/plain/main/alpine-keys/ to publish their apk keys as of 3.15, so using the old URI will give errors about signature verification since a required key is missing
+
+Remove old key
+
+Fix #43 - let lxc config create character devices
+
+Creating lxc containers will error out when trying to create character devices with "file exists". This does not appear to be necessary for most of them since they get created when you actually start the container.
+
+Signed-off-by: 4oo4 <4oo4@users.noreply.github.com>
+---
+ templates/lxc-alpine.in | 22 +++++++++++++---------
+ 1 file changed, 13 insertions(+), 9 deletions(-)
+
+diff --git a/templates/lxc-alpine.in b/templates/lxc-alpine.in
+index 543961c..18f163c 100644
+--- a/templates/lxc-alpine.in
++++ b/templates/lxc-alpine.in
+@@ -40,15 +40,24 @@ readonly LXC_CACHE_DIR="${LXC_CACHE_PATH:-"$LOCAL_STATE_DIR/cache/lxc"}/alpine"
+ # SHA256 checksums of GPG keys for APK.
+ readonly APK_KEYS_SHA256="\
+ 9c102bcc376af1498d549b77bdbfa815ae86faa1d2d82f040e616b18ef2df2d4 alpine-devel@lists.alpinelinux.org-4a6a0840.rsa.pub
+-2adcf7ce224f476330b5360ca5edb92fd0bf91c92d83292ed028d7c4e26333ab alpine-devel@lists.alpinelinux.org-4d07755e.rsa.pub
+ ebf31683b56410ecc4c00acd9f6e2839e237a3b62b5ae7ef686705c7ba0396a9 alpine-devel@lists.alpinelinux.org-5243ef4b.rsa.pub
+ 1bb2a846c0ea4ca9d0e7862f970863857fc33c32f5506098c636a62a726a847b alpine-devel@lists.alpinelinux.org-524d27bb.rsa.pub
+ 12f899e55a7691225603d6fb3324940fc51cd7f133e7ead788663c2b7eecb00c alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub
+ 73867d92083f2f8ab899a26ccda7ef63dfaa0032a938620eda605558958a8041 alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub
+ 9a4cd858d9710963848e6d5f555325dc199d1c952b01cf6e64da2c15deedbd97 alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub
+-780b3ed41786772cbc7b68136546fa3f897f28a23b30c72dde6225319c44cfff alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub"
+-
+-readonly APK_KEYS_URI='http://alpinelinux.org/keys'
++780b3ed41786772cbc7b68136546fa3f897f28a23b30c72dde6225319c44cfff alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub
++59c01c57b446633249f67c04b115dd6787f4378f183dff2bbf65406df93f176d alpine-devel@lists.alpinelinux.org-5e69ca50.rsa.pub
++db0b49163f07ffba64a5ca198bcf1688610b0bd1f0d8d5afeaf78559d73f2278 alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub
++207e4696d3c05f7cb05966aee557307151f1f00217af4143c1bcaf33b8df733f alpine-devel@lists.alpinelinux.org-6165ee59.rsa.pub
++128d34d4aec39b0daedea8163cd8dc24dff36fd3d848630ab97eeb1d3084bbb3 alpine-devel@lists.alpinelinux.org-61666e3f.rsa.pub
++10877cce0a935e46ad88cb79e174a2491680508eccda08e92bf04fb9bf37fbc1 alpine-devel@lists.alpinelinux.org-616a9724.rsa.pub
++4a095a9daca86da496a3cd9adcd95ee2197fdbeb84638656d469f05a4d740751 alpine-devel@lists.alpinelinux.org-616abc23.rsa.pub
++0caf5662fde45616d88cfd7021b7bda269a2fcaf311e51c48945a967a609ec0b alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub
++ebe717d228555aa58133c202314a451f81e71f174781fd7ff8d8970d6cfa60da alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub
++d11f6b21c61b4274e182eb888883a8ba8acdbf820dcc7a6d82a7d9fc2fd2836d alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub
++40a216cbd163f22e5f16a9e0929de7cde221b9cbae8e36aa368b1e128afe0a31 alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub"
++
++readonly APK_KEYS_URI='https://git.alpinelinux.org/aports/plain/main/alpine-keys/'
+ readonly DEFAULT_MIRROR_URL='http://dl-cdn.alpinelinux.org/alpine'
+
+ : ${APK_KEYS_DIR:=/etc/apk/keys}
+@@ -278,11 +287,6 @@ make_dev_nodes() {
+ mkdir -p -m 755 dev/pts
+ mkdir -p -m 1777 dev/shm
+
+- mknod -m 666 dev/zero c 1 5
+- mknod -m 666 dev/full c 1 7
+- mknod -m 666 dev/random c 1 8
+- mknod -m 666 dev/urandom c 1 9
+-
+ local i; for i in $(seq 0 4); do
+ mknod -m 620 dev/tty$i c 4 $i
+ chown 0:5 dev/tty$i # root:tty
+--
+2.40.1
+
diff --git a/main/lxc-templates-legacy/0001-alpine-fix-arch-and-enable-mips64-and-s390x.patch b/main/lxc-templates-legacy/0001-alpine-fix-arch-and-enable-mips64-and-s390x.patch
new file mode 100644
index 00000000000..1d0b9e09eec
--- /dev/null
+++ b/main/lxc-templates-legacy/0001-alpine-fix-arch-and-enable-mips64-and-s390x.patch
@@ -0,0 +1,85 @@
+From 4f22286657af9dffae66ea12e6ca91cc603a7766 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Thu, 11 May 2023 16:17:33 +0200
+Subject: [PATCH 1/4] alpine: fix arch and enable mips64 and s390x
+
+Fix detecion of the alpine architecture name.
+
+This allows us to create both armv7 and armhf (armv6) containers on an
+aarch64 host. eg.
+
+ lxc-create -t alpine a1 -- -a armv7
+
+It also allows us to create mips64 and s390x containers, and potentially
+new architectures in the future.
+---
+ templates/lxc-alpine.in | 29 +++++++++++++++++------------
+ 1 file changed, 17 insertions(+), 12 deletions(-)
+
+diff --git a/templates/lxc-alpine.in b/templates/lxc-alpine.in
+index 18f163c..e3bbab1 100644
+--- a/templates/lxc-alpine.in
++++ b/templates/lxc-alpine.in
+@@ -133,13 +133,18 @@ latest_release_branch() {
+
+ parse_arch() {
+ case "$1" in
+- x86 | i[3-6]86) echo 'x86';;
+- x86_64 | amd64) echo 'x86_64';;
+- aarch64 | arm64) echo 'aarch64';;
+- armv7) echo 'armv7';;
+- arm*) echo 'armhf';;
+- ppc64le) echo 'ppc64le';;
+- *) return 1;;
++ i[3-6]86) echo 'x86';;
++ amd64) echo 'x86_64';;
++ arm64) echo 'aarch64';;
++ armv6) echo 'armhf';;
++ *) echo "$1";;
++ esac
++}
++
++lxc_arch() {
++ case "$1" in
++ armv[67]) echo "armhf";;
++ *) echo "$1";;
+ esac
+ }
+
+@@ -261,7 +266,8 @@ install() {
+ echo "$MIRROR_URL/$branch/$repo" >> etc/apk/repositories
+ done
+
+- install_packages "$arch" "alpine-base $extra_packages"
++ install_packages "$arch" "alpine-base $extra_packages" \
++ || die 1 "Failed to install $arch packages"
+ make_dev_nodes
+ setup_inittab
+ setup_hosts
+@@ -384,7 +390,7 @@ setup_services() {
+ configure_container() {
+ local config="$1"
+ local hostname="$2"
+- local arch="$3"
++ local arch="$(lxc_arch "$3")"
+
+ cat <<-EOF >> "$config"
+
+@@ -499,12 +505,11 @@ if [ -z "$rootfs" ]; then
+ rootfs="$path/rootfs"
+ fi
+
+-arch=$(parse_arch "$arch") \
+- || die 1 "Unsupported architecture: $arch"
++arch=$(parse_arch "$arch")
+
+ if [ -z "$release" ]; then
+ release=$(latest_release_branch "$arch") \
+- || die 2 'Failed to resolve Alpine last release branch'
++ || die 2 "Failed to resolve Alpine $arch last release branch"
+ fi
+
+ # Here we go!
+--
+2.40.1
+
diff --git a/main/lxc-templates-legacy/0002-alpine-use-https-repository-by-default.patch b/main/lxc-templates-legacy/0002-alpine-use-https-repository-by-default.patch
new file mode 100644
index 00000000000..90323beff73
--- /dev/null
+++ b/main/lxc-templates-legacy/0002-alpine-use-https-repository-by-default.patch
@@ -0,0 +1,25 @@
+From 28a3791e0e48d9a393a2fe30918b4c1a73ae85ef Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Thu, 11 May 2023 16:42:27 +0200
+Subject: [PATCH 2/4] alpine: use https repository by default
+
+---
+ templates/lxc-alpine.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/templates/lxc-alpine.in b/templates/lxc-alpine.in
+index e3bbab1..9dc71b2 100644
+--- a/templates/lxc-alpine.in
++++ b/templates/lxc-alpine.in
+@@ -58,7 +58,7 @@ d11f6b21c61b4274e182eb888883a8ba8acdbf820dcc7a6d82a7d9fc2fd2836d alpine-devel@l
+ 40a216cbd163f22e5f16a9e0929de7cde221b9cbae8e36aa368b1e128afe0a31 alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub"
+
+ readonly APK_KEYS_URI='https://git.alpinelinux.org/aports/plain/main/alpine-keys/'
+-readonly DEFAULT_MIRROR_URL='http://dl-cdn.alpinelinux.org/alpine'
++readonly DEFAULT_MIRROR_URL='https://dl-cdn.alpinelinux.org/alpine'
+
+ : ${APK_KEYS_DIR:=/etc/apk/keys}
+ if ! ls "$APK_KEYS_DIR"/alpine* >/dev/null 2>&1; then
+--
+2.40.1
+
diff --git a/main/lxc-templates-legacy/0003-alpine-add-riscv64-key.patch b/main/lxc-templates-legacy/0003-alpine-add-riscv64-key.patch
new file mode 100644
index 00000000000..0cdaf12bb4d
--- /dev/null
+++ b/main/lxc-templates-legacy/0003-alpine-add-riscv64-key.patch
@@ -0,0 +1,26 @@
+From 6c19d91e22d9ab33f61f4be37d942023f24bbc3e Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Thu, 11 May 2023 16:48:55 +0200
+Subject: [PATCH 3/4] alpine: add riscv64 key
+
+---
+ templates/lxc-alpine.in | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/templates/lxc-alpine.in b/templates/lxc-alpine.in
+index 9dc71b2..8e71cc0 100644
+--- a/templates/lxc-alpine.in
++++ b/templates/lxc-alpine.in
+@@ -55,7 +55,8 @@ db0b49163f07ffba64a5ca198bcf1688610b0bd1f0d8d5afeaf78559d73f2278 alpine-devel@l
+ 0caf5662fde45616d88cfd7021b7bda269a2fcaf311e51c48945a967a609ec0b alpine-devel@lists.alpinelinux.org-616ac3bc.rsa.pub
+ ebe717d228555aa58133c202314a451f81e71f174781fd7ff8d8970d6cfa60da alpine-devel@lists.alpinelinux.org-616adfeb.rsa.pub
+ d11f6b21c61b4274e182eb888883a8ba8acdbf820dcc7a6d82a7d9fc2fd2836d alpine-devel@lists.alpinelinux.org-616ae350.rsa.pub
+-40a216cbd163f22e5f16a9e0929de7cde221b9cbae8e36aa368b1e128afe0a31 alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub"
++40a216cbd163f22e5f16a9e0929de7cde221b9cbae8e36aa368b1e128afe0a31 alpine-devel@lists.alpinelinux.org-616db30d.rsa.pub
++db0b49163f07ffba64a5ca198bcf1688610b0bd1f0d8d5afeaf78559d73f2278 alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub"
+
+ readonly APK_KEYS_URI='https://git.alpinelinux.org/aports/plain/main/alpine-keys/'
+ readonly DEFAULT_MIRROR_URL='https://dl-cdn.alpinelinux.org/alpine'
+--
+2.40.1
+
diff --git a/main/lxc-templates-legacy/alpine-skip-mknod-when-existing.patch b/main/lxc-templates-legacy/0004-alpine-only-create-missing-device-node.patch
index 394d91ddf50..641dd0705be 100644
--- a/main/lxc-templates-legacy/alpine-skip-mknod-when-existing.patch
+++ b/main/lxc-templates-legacy/0004-alpine-only-create-missing-device-node.patch
@@ -1,11 +1,22 @@
-Description: Some device nodes already exist, causing mknod to return an error
+From a927ebd931418af32b37f71d8b9037ae30a3d658 Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Thu, 11 May 2023 16:58:28 +0200
+Subject: [PATCH 4/4] alpine: only create missing device node
+
+Avoid error out if some of the device nodes exists
+---
+ templates/lxc-alpine.in | 22 ++++++++++++++++++----
+ 1 file changed, 18 insertions(+), 4 deletions(-)
+
+diff --git a/templates/lxc-alpine.in b/templates/lxc-alpine.in
+index 8e71cc0..45ffc6f 100644
--- a/templates/lxc-alpine.in
+++ b/templates/lxc-alpine.in
-@@ -273,24 +273,38 @@
+@@ -290,19 +290,33 @@ install_packages() {
--update-cache --initdb add $packages
}
-+mkdev() {
++_mknod() {
+ while getopts "m:" opt; do
+ case $opt in
+ m) MODE="-m $OPTARG";;
@@ -23,28 +34,22 @@ Description: Some device nodes already exist, causing mknod to return an error
mkdir -p -m 755 dev/pts
mkdir -p -m 1777 dev/shm
-- mknod -m 666 dev/zero c 1 5
-- mknod -m 666 dev/full c 1 7
-- mknod -m 666 dev/random c 1 8
-- mknod -m 666 dev/urandom c 1 9
-+ mkdev -m 666 dev/zero c 1 5
-+ mkdev -m 666 dev/full c 1 7
-+ mkdev -m 666 dev/random c 1 8
-+ mkdev -m 666 dev/urandom c 1 9
-
local i; for i in $(seq 0 4); do
- mknod -m 620 dev/tty$i c 4 $i
-+ mkdev -m 620 dev/tty$i c 4 $i
++ _mknod -m 620 dev/tty$i c 4 $i
chown 0:5 dev/tty$i # root:tty
done
- mknod -m 666 dev/tty c 5 0
-+ mkdev -m 666 dev/tty c 5 0
++ _mknod -m 666 dev/tty c 5 0
chown 0:5 dev/tty # root:tty
- mknod -m 620 dev/console c 5 1
- mknod -m 666 dev/ptmx c 5 2
-+ mkdev -m 620 dev/console c 5 1
-+ mkdev -m 666 dev/ptmx c 5 2
++ _mknod -m 620 dev/console c 5 1
++ _mknod -m 666 dev/ptmx c 5 2
chown 0:5 dev/ptmx # root:tty
}
+--
+2.40.1
+
diff --git a/main/lxc-templates-legacy/APKBUILD b/main/lxc-templates-legacy/APKBUILD
index 59b4dbccbd3..1ccf55256e1 100644
--- a/main/lxc-templates-legacy/APKBUILD
+++ b/main/lxc-templates-legacy/APKBUILD
@@ -2,22 +2,23 @@
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=lxc-templates-legacy
pkgver=3.0.3
-pkgrel=3
+pkgrel=5
pkgdesc="Legacy LXC container templates"
url="https://linuxcontainers.org"
arch="noarch"
-license="LGPL-2.1"
+license="LGPL-2.1-or-later"
depends="bash tar"
subpackages="$pkgname-alpine"
source="https://linuxcontainers.org/downloads/lxc/lxc-templates-$pkgver.tar.gz
- add-mips64-s390x.patch
- alpine-skip-mknod-when-existing.patch
- add-riscv64-key.patch
+ 0001-Update-alpine-keys-URI-fix-package-verification.patch
+ 0001-alpine-fix-arch-and-enable-mips64-and-s390x.patch
+ 0002-alpine-use-https-repository-by-default.patch
+ 0003-alpine-add-riscv64-key.patch
+ 0004-alpine-only-create-missing-device-node.patch
"
builddir="$srcdir/lxc-templates-$pkgver"
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -29,12 +30,10 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
@@ -51,7 +50,9 @@ alpine() {
sha512sums="
3e9d5304f5e06580eeb766570ddfebb0c80061c2d7e47c9ea37d834fe0cf4fabe7eedd667e4937df3f2451bc3e7aa1e98a1b386f3b19964dc218ff0e21011632 lxc-templates-3.0.3.tar.gz
-9e4a28374e5c52315deed1f643ddbcfcca8f7fc96745f456f567721287c8b87b4d974ca901c3f018ea58bcaca07896d3b1bc465749812ef1ee80d936a12031ad add-mips64-s390x.patch
-10218eb23e70af82c3e059e462b3decd7af47bf7bc26324ed30848d18e33a317489cc2b92bb91f3a82c5fac6b3d3649cec452df80f2cca2bd2ce0e8eb2b4fd0f alpine-skip-mknod-when-existing.patch
-50a7a6d256071907694ec955aa4b92e8577a75443d1e6b3321aa7f8caf279416afba866924526033d72e3ebbece56badbba16572c02749a676abe5b6d8583476 add-riscv64-key.patch
+70e3a7b0acd38b71b28c8a92896a7ef04a26cd9cef3f617056197edf2742344b1ec44e3d8d5ed6767a9a7c9c7af986300172f2cc15b9cc69ffbaf741a471f531 0001-Update-alpine-keys-URI-fix-package-verification.patch
+0a34b0346fa5749e2d0e52cd68cede939c371668db07d0622275e3ec58b072059833236241d0c05a1df17997c2e6a021d48dabddb65b2d1e844bbcb45ca5c7a8 0001-alpine-fix-arch-and-enable-mips64-and-s390x.patch
+7f90102df12aff63c0b8e38106ec30d309d6c0a2733b66d47b67f74b0bc8846b3d8eebb7b7cbd2f95ac724633357c06a36d8c69161db863f68dc4c023ad96137 0002-alpine-use-https-repository-by-default.patch
+5036df735f6fa35593516d63a46a1cc398651ee1a6426d2f12397d211deac16e8c587b701df13d46e7d3251b3d0a48d63b8422af92a8e4874ebda045b328d20b 0003-alpine-add-riscv64-key.patch
+20106603e9d3f73759469ebba5c44196a4f6091f414139e30dc4a5f12a3dc9220aa4301dd274a4ca50edef3cec3545f1406b2505be70d5a3496c233a9f9438fb 0004-alpine-only-create-missing-device-node.patch
"
diff --git a/main/lxc-templates-legacy/add-mips64-s390x.patch b/main/lxc-templates-legacy/add-mips64-s390x.patch
deleted file mode 100644
index 3120c209779..00000000000
--- a/main/lxc-templates-legacy/add-mips64-s390x.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/templates/lxc-alpine.in b/templates/lxc-alpine.in
-index 543961c..932ef4f 100644
---- a/templates/lxc-alpine.in
-+++ b/templates/lxc-alpine.in
-@@ -127,9 +127,8 @@ parse_arch() {
- x86 | i[3-6]86) echo 'x86';;
- x86_64 | amd64) echo 'x86_64';;
- aarch64 | arm64) echo 'aarch64';;
-- armv7) echo 'armv7';;
- arm*) echo 'armhf';;
-- ppc64le) echo 'ppc64le';;
-+ armv7 | mips64 | ppc64le | s390x | riscv64) echo "$1";;
- *) return 1;;
- esac
- }
diff --git a/main/lxc-templates-legacy/add-riscv64-key.patch b/main/lxc-templates-legacy/add-riscv64-key.patch
deleted file mode 100644
index 5c954271655..00000000000
--- a/main/lxc-templates-legacy/add-riscv64-key.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- ./templates/lxc-alpine.in
-+++ ./templates/lxc-alpine.in
-@@ -46,7 +46,8 @@
- 12f899e55a7691225603d6fb3324940fc51cd7f133e7ead788663c2b7eecb00c alpine-devel@lists.alpinelinux.org-5261cecb.rsa.pub
- 73867d92083f2f8ab899a26ccda7ef63dfaa0032a938620eda605558958a8041 alpine-devel@lists.alpinelinux.org-58199dcc.rsa.pub
- 9a4cd858d9710963848e6d5f555325dc199d1c952b01cf6e64da2c15deedbd97 alpine-devel@lists.alpinelinux.org-58cbb476.rsa.pub
--780b3ed41786772cbc7b68136546fa3f897f28a23b30c72dde6225319c44cfff alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub"
-+780b3ed41786772cbc7b68136546fa3f897f28a23b30c72dde6225319c44cfff alpine-devel@lists.alpinelinux.org-58e4f17d.rsa.pub
-+db0b49163f07ffba64a5ca198bcf1688610b0bd1f0d8d5afeaf78559d73f2278 alpine-devel@lists.alpinelinux.org-60ac2099.rsa.pub"
-
- readonly APK_KEYS_URI='http://alpinelinux.org/keys'
- readonly DEFAULT_MIRROR_URL='http://dl-cdn.alpinelinux.org/alpine'
diff --git a/main/lxc/APKBUILD b/main/lxc/APKBUILD
index 7a7686974ba..378798961aa 100644
--- a/main/lxc/APKBUILD
+++ b/main/lxc/APKBUILD
@@ -2,51 +2,49 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=lxc
-pkgver=4.0.12
+pkgver=6.0.0
_pkgver=${pkgver/_rc/.rc}
pkgrel=1
pkgdesc="Userspace interface for the Linux kernel containment features"
url="https://linuxcontainers.org/lxc/"
arch="all"
-license="GPL-2.0-only"
+license="LGPL-2.1-or-later"
makedepends="
+ dbus-dev
+ docbook2x
+ libapparmor-dev
libcap-dev
libcap-static
libseccomp-dev
- linux-pam-dev
linux-headers
- bsd-compat-headers
- docbook2x
-
- automake
- autoconf
- libtool
+ linux-pam-dev
+ meson
"
-
-options="suid"
-# temp allow textrels on riscv64
-[ "$CARCH" = "riscv64" ] && options="$options textrels"
subpackages="
$pkgname-dbg
$pkgname-dev
$pkgname-doc
$pkgname-openrc
$pkgname-lvm::noarch
+ $pkgname-test-utils:_test_utils
$pkgname-libs
$pkgname-bridge::noarch
- $pkgname-bash-completion:bashcomp:noarch
+ $pkgname-bash-completion
$pkgname-pam
$pkgname-download:_download:noarch
$pkgname-templates-oci:templates_oci:noarch
$pkgname-templates::noarch
"
-
source="https://linuxcontainers.org/downloads/lxc/lxc-$_pkgver.tar.gz
lxc.initd
lxc.confd
"
+# no buildtime tests
+options="!check suid"
# secfixes:
+# 5.0.1-r2:
+# - CVE-2022-47952
# 3.1.0-r1:
# - CVE-2019-5736
# 2.1.1-r9:
@@ -55,26 +53,27 @@ source="https://linuxcontainers.org/downloads/lxc/lxc-$_pkgver.tar.gz
_tmpldir="usr/share/lxc/templates"
build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --disable-apparmor \
- --enable-pam \
- --with-distro=alpine \
- --disable-werror \
- --enable-doc
- make
-}
-
-check() {
- make check
+ case "$CARCH" in
+ riscv64)
+ local lto=false
+ ;;
+ *)
+ local lto=true
+ ;;
+ esac
+ abuild-meson \
+ -Db_lto=$lto \
+ -Ddistrosysconfdir=/etc/default \
+ -Dpam-cgroup=true \
+ -Dtests=true \
+ -Dinit-script="[]" \
+ . output
+
+ meson compile -C output
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
install -Dm755 "$srcdir"/lxc.initd "$pkgdir"/etc/init.d/lxc
install -Dm644 "$srcdir"/lxc.confd "$pkgdir"/etc/conf.d/lxc
@@ -82,6 +81,11 @@ package() {
# Remove useless config for SysVinit.
rm -r "$pkgdir"/etc/default
+
+ # they install this to libdir, but the other things are in /usr/lib
+ # so we can't change it
+ mkdir -p "$pkgdir"/lib
+ mv "$pkgdir"/usr/lib/security "$pkgdir"/lib
}
lvm() {
@@ -91,40 +95,44 @@ lvm() {
mkdir "$subpkgdir"
}
+_test_utils() {
+ pkgdesc="Runtime testing utilities for LXC"
+
+ amove usr/bin/lxc-test-*
+}
+
_py3() {
pkgdesc="Python3 module for LXC"
depends="python3"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/python3.* "$subpkgdir"/usr/lib
+
+ amove usr/lib/python3*
}
_download() {
pkgdesc="LXC container image downloader template"
depends="$pkgname gpg gnupg-dirmngr tar wget"
- mkdir -p "$subpkgdir"/$_tmpldir
- mv "$pkgdir"/$_tmpldir/lxc-download "$subpkgdir"/$_tmpldir/
+ amove $_tmpldir/lxc-download
}
templates() {
pkgdesc="Templates for LXC (except alpine and download)"
depends="tar"
- mkdir -p "$subpkgdir"/$_tmpldir
- mv "$pkgdir"/$_tmpldir/* "$subpkgdir"/$_tmpldir/
+
+ amove $_tmpldir/*
}
templates_oci() {
pkgdesc="OCI Template for LXC"
depends="bash jq"
- mkdir -p "$subpkgdir"/usr/share/lxc/templates
- mv "$pkgdir"/usr/share/lxc/templates/lxc-oci \
- "$subpkgdir"/usr/share/lxc/templates/
+
+ amove $_tmpldir/lxc-oci
}
pam() {
pkgdesc="PAM module for LXC"
- mkdir -p "$subpkgdir"/lib/security
- mv "$pkgdir"/lib/security/pam_cgfs.so "$subpkgdir"/lib/security/
+
+ amove lib/security
}
dev() {
@@ -158,17 +166,8 @@ bridge() {
EOF
}
-bashcomp() {
- depends=""
- pkgdesc="Bash completions for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
- mkdir -p "$subpkgdir"/usr/share/bash-completion/completions
- mv "$pkgdir"/etc/bash_completion.d/* "$subpkgdir"/usr/share/bash-completion/completions
- rmdir "$pkgdir"/etc/bash_completion.d
-}
-
sha512sums="
-04437d9c891cd3a22f756c42f05e97398772587175d65aff9d394f0f3e810efc5c1fe7077c39573de3ec259e0605bc2a7ea51093613b2cef908372ae338df19d lxc-4.0.12.tar.gz
+acff2fc70cf2c65af37b70a21239482c3d845c408f7132558b54980e4400c23670c63178a3a3dfb239f047f529004df93cd829d728852a8c8647ce6babf7857f lxc-6.0.0.tar.gz
db71783366277a68a5c8116604cf845da4780fe4aebdb5820ae2c4fe028cfe52a9c94246db362476f2f195be6a9c2b835edbe521423f116fc66eb50023d6daab lxc.initd
91de43db5369a9e10102933514d674e9c875218a1ff2910dd882e5b9c308f9e430deacb13d1d7e0b2ed1ef682d0bb035aa6f8a6738f54fa2ca3a05acce04e467 lxc.confd
"
diff --git a/main/lynx/APKBUILD b/main/lynx/APKBUILD
index 3a4b22a2cf6..167b4283459 100644
--- a/main/lynx/APKBUILD
+++ b/main/lynx/APKBUILD
@@ -2,18 +2,17 @@
# Contributor: Sheila Aman <sheila@vulpine.house>
# Maintainer: Sheila Aman <sheila@vulpine.house>
pkgname=lynx
-pkgver=2.8.9_p1
+pkgver=2.9.1
_relver=${pkgver/_p/rel.}
-pkgrel=7
+pkgrel=0
pkgdesc="Cross-platform text-based browser"
url="https://lynx.invisible-island.net/"
arch="all"
license="GPL-2.0-only"
depends="gzip"
-makedepends="openssl1.1-compat-dev gettext zlib-dev glib-dev perl ncurses-dev"
+makedepends="openssl-dev>3 gettext zlib-dev glib-dev perl ncurses-dev"
subpackages="$pkgname-doc $pkgname-lang"
-source="http://invisible-mirror.net/archives/lynx/tarballs/lynx$_relver.tar.bz2
- CVE-2021-38165.patch"
+source="https://invisible-mirror.net/archives/lynx/tarballs/lynx$_relver.tar.bz2"
builddir="$srcdir"/$pkgname$_relver
# secfixes:
@@ -52,6 +51,5 @@ package() {
}
sha512sums="
-61edbe082684fcbd91bdbf4f4d27c3baf92358811aaffc2f8af46adf23ca7b48aede1520fc5f2a8fc974a2f4bbf4e57e7e6027a187bfc6101e56878c98178e6d lynx2.8.9rel.1.tar.bz2
-b68d9f3a89c1e09a13c5d8cc3769fb7e6fe86cce83c4c9000f90425a925b50ff62c14ca52330777d3e94c292a0dca6b5fedc7193030e276f376d91da42b030c5 CVE-2021-38165.patch
+d1891b48fa226dbbd3a59717e4b927802f97423c10db220e4d482b63fdced366d80417825d712ab9ae788da5595c9e39e71d630838e9443d0b340a5fe11bec40 lynx2.9.1.tar.bz2
"
diff --git a/main/lynx/CVE-2021-38165.patch b/main/lynx/CVE-2021-38165.patch
deleted file mode 100644
index e8a767aaf5e..00000000000
--- a/main/lynx/CVE-2021-38165.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 71880f862c9cd9353511291f237af386c11b98ea Mon Sep 17 00:00:00 2001
-From: "Thomas E. Dickey" <dickey@invisible-island.net>
-Date: Sat, 7 Aug 2021 14:33:59 +0000
-Subject: [PATCH] snapshot of project "lynx", label v2-9-0dev_8b
-
----
- WWW/Library/Implementation/HTTP.c | 20 +++++++++++++++++++-
- 1 file changed, 23 insertions(+), 3 deletions(-)
-
-diff --git a/WWW/Library/Implementation/HTTP.c b/WWW/Library/Implementation/HTTP.c
-index 07e30d74..338a6ebd 100644
---- a/WWW/Library/Implementation/HTTP.c
-+++ b/WWW/Library/Implementation/HTTP.c
-@@ -764,6 +764,23 @@ static char *StripIpv6Brackets(char *host)
- }
- #endif
-
-+/*
-+ * Remove user/password, if any, from the given host-string.
-+ */
-+#ifdef USE_SSL
-+static char *StripUserAuthents(char *host)
-+{
-+ char *p = strchr(host, '@');
-+
-+ if (p != NULL) {
-+ char *q = host;
-+
-+ while ((*q++ = *++p) != '\0') ;
-+ }
-+ return host;
-+}
-+#endif
-+
- /* Load Document from HTTP Server HTLoadHTTP()
- * ==============================
- *
-@@ -959,6 +976,7 @@ static int HTLoadHTTP(const char *arg,
- /* get host we're connecting to */
- ssl_host = HTParse(url, "", PARSE_HOST);
- ssl_host = StripIpv6Brackets(ssl_host);
-+ ssl_host = StripUserAuthents(ssl_host);
- #if defined(USE_GNUTLS_FUNCS)
- ret = gnutls_server_name_set(handle->gnutls_state,
- GNUTLS_NAME_DNS,
diff --git a/main/lz4/APKBUILD b/main/lz4/APKBUILD
index e7a0edc282d..69e849355ad 100644
--- a/main/lz4/APKBUILD
+++ b/main/lz4/APKBUILD
@@ -1,17 +1,15 @@
# Contributor: Stuart Cardall <developer@it-offshore.co.uk>
# Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
pkgname=lz4
-pkgver=1.9.3
-pkgrel=1
+pkgver=1.9.4
+pkgrel=5
pkgdesc="LZ4 is lossless compression algorithm with fast decoder @ multiple GB/s per core."
url="https://github.com/lz4/lz4"
arch="all"
-license="BSD-2-Clause GPL-2.0-only"
+license="BSD-2-Clause AND GPL-2.0-only"
checkdepends="diffutils"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-libs $pkgname-tests:tests"
-source="$pkgname-$pkgver.tar.gz::https://github.com/lz4/lz4/archive/v$pkgver.tar.gz
- CVE-2021-3520.patch
- "
+source="$pkgname-$pkgver.tar.gz::https://github.com/lz4/lz4/archive/v$pkgver.tar.gz"
# secfixes:
# 1.9.3-r1:
@@ -20,26 +18,31 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/lz4/lz4/archive/v$pkgver.tar
# - CVE-2019-17543
build() {
+ export CFLAGS="$CFLAGS -O2 -flto=auto"
+ export CPPFLAGS="$CPPFLAGS -O2 -flto=auto"
make PREFIX="/usr"
}
check() {
- # https://github.com/lz4/lz4/issues/957
- make -j1 check
-}
-
-tests() {
- cd "$builddir"/tests
- mkdir -p "$subpkgdir"/usr/share/$pkgname
- rm -f *.c COPYING Makefile .gitignore
- cp -rf "$builddir"/tests "$subpkgdir"/usr/share/$pkgname
+ make check
}
package() {
make PREFIX="/usr" DESTDIR="$pkgdir" install
+
+ (
+ cd tests/
+ rm -f ./*.c COPYING Makefile .gitignore
+ )
+ mkdir -p "$pkgdir"/usr/share/$pkgname
+ cp -rf tests "$pkgdir"/usr/share/$pkgname/
+}
+
+tests() {
+ pkgdesc="$pkgdesc (tests)"
+ amove usr/share/$pkgname
}
sha512sums="
-c246b0bda881ee9399fa1be490fa39f43b291bb1d9db72dba8a85db1a50aad416a97e9b300eee3d2a4203c2bd88bda2762e81bc229c3aa409ad217eb306a454c lz4-1.9.3.tar.gz
-29038d80c4399ded52b49e69d0f0d80bef8bf424e3540de366ef539706c8c1119784d6137c96130f131239d74a4c110dd9790cae5c9b17c102820446582c5637 CVE-2021-3520.patch
+043a9acb2417624019d73db140d83b80f1d7c43a6fd5be839193d68df8fd0b3f610d7ed4d628c2a9184f7cde9a0fd1ba9d075d8251298e3eb4b3a77f52736684 lz4-1.9.4.tar.gz
"
diff --git a/main/lz4/CVE-2021-3520.patch b/main/lz4/CVE-2021-3520.patch
deleted file mode 100644
index 053958dfe87..00000000000
--- a/main/lz4/CVE-2021-3520.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From 8301a21773ef61656225e264f4f06ae14462bca7 Mon Sep 17 00:00:00 2001
-From: Jasper Lievisse Adriaanse <j@jasper.la>
-Date: Fri, 26 Feb 2021 15:21:20 +0100
-Subject: [PATCH] Fix potential memory corruption with negative memmove() size
-
----
- lib/lz4.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/lib/lz4.c b/lib/lz4.c
-index 5f524d01d..c2f504ef3 100644
---- a/lib/lz4.c
-+++ b/lib/lz4.c
-@@ -1749,7 +1749,7 @@ LZ4_decompress_generic(
- const size_t dictSize /* note : = 0 if noDict */
- )
- {
-- if (src == NULL) { return -1; }
-+ if ((src == NULL) || (outputSize < 0)) { return -1; }
-
- { const BYTE* ip = (const BYTE*) src;
- const BYTE* const iend = ip + srcSize;
diff --git a/main/lzip/APKBUILD b/main/lzip/APKBUILD
index 4b4a989f2bb..da09a0b37eb 100644
--- a/main/lzip/APKBUILD
+++ b/main/lzip/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: ScrumpyJack <scrumpyjack@st.ilet.to>
# Maintainer: ScrumpyJack <scrumpyjack@st.ilet.to>
pkgname=lzip
-pkgver=1.23
+pkgver=1.24.1
pkgrel=0
pkgdesc="Lzip is a lossless data compressor"
url="https://nongnu.org/lzip/"
@@ -29,5 +29,5 @@ package() {
}
sha512sums="
-482804205b6e92fdf9cb17fb9482df7987227c7b1bef9e42d78787acfabe73995f5b1a66f847d2176423f22dce56f1122c5b1c9670f0b778c0bdad2852369c85 lzip-1.23.tar.gz
+b67b3b8ab594306dd863b6f51525ab80e90cbff3af1faf190fd7a35eac895ef869e6a1f8f503d623c16ad5c1496816c8f851abf0be5983d53052bea80afc34bd lzip-1.24.1.tar.gz
"
diff --git a/main/lzo/APKBUILD b/main/lzo/APKBUILD
index 212c1640623..63ca3457efa 100644
--- a/main/lzo/APKBUILD
+++ b/main/lzo/APKBUILD
@@ -3,7 +3,7 @@
# Maintainer: Michael Mason <ms13sp@gmail.com>
pkgname=lzo
pkgver=2.10
-pkgrel=3
+pkgrel=5
pkgdesc="LZO -- a real-time data compression library"
url="https://www.oberhumer.com/opensource/lzo"
arch="all"
@@ -16,7 +16,7 @@ build() {
cmake -B build -G Ninja \
-DBUILD_TESTING=ON \
-DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_BUILD_TYPE=Release \
-DENABLE_SHARED=ON
cmake --build build
}
diff --git a/main/m4/0001-test-execute-main.c-set-default-handler-for-SIGPIPE-.patch b/main/m4/0001-test-execute-main.c-set-default-handler-for-SIGPIPE-.patch
new file mode 100644
index 00000000000..769b0b0f7dd
--- /dev/null
+++ b/main/m4/0001-test-execute-main.c-set-default-handler-for-SIGPIPE-.patch
@@ -0,0 +1,37 @@
+Patch-Source: https://lists.gnu.org/archive/html/bug-m4/2022-11/msg00003.html
+From ed64def45d68b2af53f1d3d783cc98e9dbe2ff74 Mon Sep 17 00:00:00 2001
+From: Alexander Kanavin <alex@linutronix.de>
+Date: Sat, 12 Nov 2022 15:18:41 +0100
+Subject: [PATCH] test-execute-main.c: set default handler for SIGPIPE in tests
+ 3 and 4
+
+make 4.4 sets this to SIG_IGN and the tests fail
+
+Signed-off-by: Alexander Kanavin <alex@linutronix.de>
+---
+ tests/test-execute-main.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/tests/test-execute-main.c b/tests/test-execute-main.c
+index 372ff1d..b4c1ddf 100644
+--- a/tests/test-execute-main.c
++++ b/tests/test-execute-main.c
+@@ -132,6 +132,7 @@ main (int argc, char *argv[])
+ #if !(defined _WIN32 && !defined __CYGWIN__)
+ {
+ /* Check SIGPIPE handling with ignore_sigpipe = false. */
++ signal(SIGPIPE, SIG_DFL);
+ const char *prog_argv[3] = { prog_path, "3", NULL };
+ int termsig = 0x7DEADBEE;
+ int ret = execute (progname, prog_argv[0], prog_argv, NULL,
+@@ -145,6 +146,7 @@ main (int argc, char *argv[])
+ #if !(defined _WIN32 && !defined __CYGWIN__)
+ {
+ /* Check SIGPIPE handling with ignore_sigpipe = true. */
++ signal(SIGPIPE, SIG_DFL);
+ const char *prog_argv[3] = { prog_path, "4", NULL };
+ int termsig = 0x7DEADBEE;
+ int ret = execute (progname, prog_argv[0], prog_argv, NULL,
+--
+2.30.2
+
diff --git a/main/m4/APKBUILD b/main/m4/APKBUILD
index 4b6e782f8a3..f372aef7a7e 100644
--- a/main/m4/APKBUILD
+++ b/main/m4/APKBUILD
@@ -1,23 +1,22 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=m4
pkgver=1.4.19
-pkgrel=1
+pkgrel=3
pkgdesc="GNU macro processor"
url="https://www.gnu.org/software/m4"
-depends=
makedepends=texinfo
checkdepends=diffutils
arch="all"
-license="GPL-3.0+"
+license="GPL-3.0-or-later"
subpackages="m4-doc"
-source="https://ftp.gnu.org/gnu/m4/$pkgname-$pkgver.tar.gz
+source="https://ftp.gnu.org/gnu/m4/m4-$pkgver.tar.gz
musl-realpath.patch
fix-sysval-test.patch
test-posix_spawn_file_actions_addclose.patch
+ 0001-test-execute-main.c-set-default-handler-for-SIGPIPE-.patch
"
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -26,12 +25,10 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make install DESTDIR="$pkgdir"
rm -rf "$pkgdir"/usr/lib/charset.alias
rmdir -p "$pkgdir"/usr/lib 2>/dev/null || true
@@ -42,4 +39,5 @@ f5dd0f02fcae65a176a16af9a8e1747c26e9440c6c224003ba458d3298b777a75ffb189aee9051fb
cc86f883eac255301615278af9ee172e13bbe48ce0ac318ab6c325ab2406000ceb10c5360868111210eb784ea028ef93cdfe12b77e17fa0066786957c347fd71 musl-realpath.patch
d251842f8a6d71b4dc6912961bd873383b1b102a14ae3c1d06f44444b3db69d599fd8afec436734c4dad1c08de06c2ef2a48582a1528cc67b20f8db5afe287d9 fix-sysval-test.patch
78f78f3f3145515da0a4b6f5fc891b0289b20d25f548d403f7de38f27a4b0f4bf06bf987d994ec85b61f4b28de1494a93c3347ff35b695becf8a5e9f2f3f7d49 test-posix_spawn_file_actions_addclose.patch
+23b1638712dcf648a1333c0ffa626666f60248fe8a9c09bfb7dc62680453a29a08007c3f44f9a93b5f5e53106f8e5269c08cc551e3ba4f6719f13edc469870bc 0001-test-execute-main.c-set-default-handler-for-SIGPIPE-.patch
"
diff --git a/main/macifrename/APKBUILD b/main/macifrename/APKBUILD
index a9c9f735ca9..d83db7ddd04 100644
--- a/main/macifrename/APKBUILD
+++ b/main/macifrename/APKBUILD
@@ -1,29 +1,24 @@
# Contributor: Ariadne Conill <ariadne@dereferenced.org>
# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
-pkgname="macifrename"
+pkgname=macifrename
pkgver=0.1.2
-pkgrel=0
+pkgrel=1
pkgdesc="stably rename NICs based on MAC addresses"
url="https://git.sr.ht/~kaniini/macifrename"
arch="all"
license="ISC"
-depends=""
makedepends="linux-headers"
-install=""
subpackages="$pkgname-openrc"
-source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~kaniini/$pkgname/archive/$pkgver.tar.gz
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~kaniini/macifrename/archive/$pkgver.tar.gz
macifrename.initd
macifrename.confd"
-builddir="$srcdir/$pkgname-$pkgver"
options="!check"
build() {
- cd "$builddir"
make
}
package() {
- cd "$builddir"
make install DESTDIR="$pkgdir"
install -D -m755 "$srcdir"/macifrename.initd "$pkgdir"/etc/init.d/macifrename
diff --git a/main/mailcap/APKBUILD b/main/mailcap/APKBUILD
index 9cb2e9e6f61..9c2160a2cb7 100644
--- a/main/mailcap/APKBUILD
+++ b/main/mailcap/APKBUILD
@@ -1,11 +1,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mailcap
-pkgver=2.1.53
+pkgver=2.1.54
pkgrel=0
pkgdesc="Helper application and MIME type associations for file types"
url="https://pagure.io/mailcap"
arch="noarch"
-license="Public-Domain and MIT"
+license="Public Domain"
options="!check" # no testsuite
subpackages="$pkgname-doc"
source="https://releases.pagure.org/mailcap/mailcap-$pkgver.tar.xz"
@@ -16,5 +16,5 @@ package() {
}
sha512sums="
-26cc8b84193e653edd518cb079e0a2baf76b223f6c865b85d68115b7cc2878dbafd6de0eb04f5c495b4ba440f460a9b12e707b91840528494917fa2c1b0b0753 mailcap-2.1.53.tar.xz
+a80caba013b644111f163d8ef74fe801d7266cf4edd38ca723f98fb12a103a24e84a8fca0c569beb05ca0f407437ed1282306b30303c38327b744194c6fe80b2 mailcap-2.1.54.tar.xz
"
diff --git a/main/mailx/00-Makefiles.patch b/main/mailx/00-Makefiles.patch
new file mode 100644
index 00000000000..ca40b9250f3
--- /dev/null
+++ b/main/mailx/00-Makefiles.patch
@@ -0,0 +1,88 @@
+From: Loic Prylli <Loic.Prylli@graville.fdn.fr>
+Date: Mon, 29 Jun 1998 20:15:00 -0400
+Subject: 00 Makefiles
+
+Fix makefiles to make it possible to compile mailx on non-BSD systems.
+---
+ Makefile | 32 +++++++++++++++++++++++++++++++-
+ USD.doc/Makefile | 14 +++++++++-----
+ 2 files changed, 40 insertions(+), 6 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index e2313ca..e693279 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,12 +1,24 @@
+ # $OpenBSD: Makefile,v 1.13 2020/12/15 00:50:01 daniel Exp $
+
+ PROG= mail
++CC ?= gcc
++
++CFLAGS += -D_DEFAULT_SOURCE -D_BSD_SOURCE -DDEBIAN -g -Wall
++
+ SRCS= version.c cmd1.c cmd2.c cmd3.c cmdtab.c collect.c \
+ edit.c fio.c head.c v7.local.c lex.c list.c main.c names.c \
+ popen.c quit.c send.c strings.c temp.c tty.c util.c vars.c
++
++
++OBJS=$(SRCS:%.c=%.o)
++LIBS=-llockfile -lbsd
++
+ SFILES= mail.help mail.tildehelp
+ EFILES= mail.rc
+ LINKS= ${BINDIR}/mail ${BINDIR}/Mail ${BINDIR}/mail ${BINDIR}/mailx
++MFILES= mail.1
++
++all: $(PROG)
+
+ distribution:
+ cd ${.CURDIR}/misc; ${INSTALL} ${INSTALL_COPY} -o root -g wheel \
+@@ -14,4 +26,22 @@ distribution:
+ cd ${.CURDIR}/misc; ${INSTALL} ${INSTALL_COPY} -o ${BINOWN} -g ${BINGRP} \
+ -m 444 ${SFILES} ${DESTDIR}/usr/share/misc
+
+-.include <bsd.prog.mk>
++
++$(PROG): $(OBJS)
++ $(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
++
++.c.o:
++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
++
++.y.c:
++ bison $<
++ mv -f $*.tab.c $@
++
++clean:
++ rm -f $(PROG) $(OBJS) *~ core
++
++install:
++ install -p -c -m 755 $(PROG) $(DESTDIR)/usr/bin/mail
++ install -p -c -m 644 $(MFILES) $(DESTDIR)/usr/share/man/man1/mail.1
++ cd misc && install -p -c -m 644 $(EFILES) $(DESTDIR)/etc/
++ cd misc && install -p -c -m 644 $(SFILES) $(DESTDIR)/usr/share/misc/
+diff --git a/USD.doc/Makefile b/USD.doc/Makefile
+index fc82a17..a59ecb0 100644
+--- a/USD.doc/Makefile
++++ b/USD.doc/Makefile
+@@ -5,11 +5,15 @@ DIR= usd/07.mail
+ SRCS= mail0.nr mail1.nr mail2.nr mail3.nr mail4.nr mail5.nr mail6.nr \
+ mail7.nr mail8.nr mail9.nr maila.nr
+ MACROS= -me
++TBL=tbl
+
+-paper.ps: ${SRCS}
+- ${TBL} ${SRCS} | ${ROFF} > ${.TARGET}
++all: manual.ps manual.txt
+
+-paper.txt: ${SRCS}
+- ${TBL} ${SRCS} | ${ROFF} -Tascii > ${.TARGET}
++manual.ps: ${SRCS}
++ ${TBL} ${SRCS} | groff ${MACROS} -Tps > $@
+
+-.include <bsd.doc.mk>
++manual.txt: ${SRCS}
++ ${TBL} ${SRCS} | groff ${MACROS} -Tascii > $@
++
++clean :
++ -rm -f manual.ps manual.txt
diff --git a/main/mailx/02-Base-fixes-1.patch b/main/mailx/02-Base-fixes-1.patch
new file mode 100644
index 00000000000..58d849f9064
--- /dev/null
+++ b/main/mailx/02-Base-fixes-1.patch
@@ -0,0 +1,178 @@
+From: Loic Prylli <Loic.Prylli@graville.fdn.fr>
+Date: Mon, 29 Jun 1998 20:15:00 -0400
+Subject: 02 Base fixes 1
+
+Fixes from Debian patch 1:8.1.1-10
+---
+ USD.doc/mail1.nr | 2 +-
+ USD.doc/mail5.nr | 2 +-
+ collect.c | 2 ++
+ head.c | 3 +++
+ mail.1 | 6 +++---
+ main.c | 2 +-
+ misc/mail.rc | 4 ++--
+ names.c | 3 ++-
+ pathnames.h | 39 +++++++++++++++++++++++++++++++++++----
+ 9 files changed, 50 insertions(+), 13 deletions(-)
+
+diff --git a/USD.doc/mail1.nr b/USD.doc/mail1.nr
+index 1d21d52..414fc2b 100644
+--- a/USD.doc/mail1.nr
++++ b/USD.doc/mail1.nr
+@@ -90,7 +90,7 @@ When you log in, the system notifies you if there are any messages
+ waiting in your system mailbox. If you are a
+ .i csh
+ user, you will be notified when new mail arrives if you inform
+-the shell of the location of your mailbox. On OpenBSD,
++the shell of the location of your mailbox. On Debian,
+ your system mailbox is located in the directory /var/mail
+ in a file with your login name. If your login name is
+ .q sam,
+diff --git a/USD.doc/mail5.nr b/USD.doc/mail5.nr
+index aecaf61..3e352af 100644
+--- a/USD.doc/mail5.nr
++++ b/USD.doc/mail5.nr
+@@ -489,7 +489,7 @@ commands.
+ .. The
+ .. .b local
+ .. command is usually not used be general users since it is designed for
+-.. local configuration; it is usually found in the file /usr/lib/Mail.rc.
++.. local configuration; it is usually found in the file /etc/mail.rc.
+ .ip "\fBmail\fP\ \ "
+ Send mail to one or more people. If you have the
+ .i ask
+diff --git a/collect.c b/collect.c
+index 930d9a1..a63693f 100644
+--- a/collect.c
++++ b/collect.c
+@@ -402,6 +402,8 @@ exwrite(char *name, FILE *fp, int f)
+ fputs("File exists\n", stderr);
+ return(-1);
+ }
++ /* FIXME: Fopen with "w" will currently prevent writing to an existig file
++ (/dev/null), for now I am not sure this would even marginally useful to allow */
+ if ((of = Fopen(name, "w")) == NULL) {
+ warn(NULL);
+ return(-1);
+diff --git a/head.c b/head.c
+index 3043e5c..e89e92f 100644
+--- a/head.c
++++ b/head.c
+@@ -60,10 +60,13 @@ ishead(char *linebuf)
+ fail(linebuf, "No from or date field");
+ return(0);
+ }
++ /* be very tolerant about the date */
++#ifndef DEBIAN
+ if (!isdate(hl.l_date)) {
+ fail(linebuf, "Date field not legal date");
+ return(0);
+ }
++#endif
+ /*
+ * I guess we got it!
+ */
+diff --git a/mail.1 b/mail.1
+index d712811..aece9c1 100644
+--- a/mail.1
++++ b/mail.1
+@@ -298,7 +298,7 @@ The current list of such aliases can be displayed with the
+ command in
+ .Nm mail .
+ System wide distribution lists can be created by editing
+-.Pa /etc/mail/aliases
++.Pa /etc/aliases ,
+ (see
+ .Xr aliases 5 ) ;
+ these are kept in a different syntax.
+diff --git a/main.c b/main.c
+index f802c07..b8c80fd 100644
+--- a/main.c
++++ b/main.c
+@@ -316,7 +316,7 @@ setscreensize(void)
+ if (ioctl(1, TIOCGWINSZ, (char *) &ws) == -1)
+ ws.ws_col = ws.ws_row = 0;
+ if (tcgetattr(1, &tbuf) == -1)
+- ospeed = 9600;
++ ospeed = B9600;
+ else
+ ospeed = cfgetospeed(&tbuf);
+ if (ospeed < B1200)
+diff --git a/misc/mail.rc b/misc/mail.rc
+index 95717f3..3fcc98d 100644
+--- a/misc/mail.rc
++++ b/misc/mail.rc
+@@ -1,2 +1,2 @@
+-set append dot save asksub
+-ignore Received Message-Id Resent-Message-Id Status Mail-From Return-Path Via
++set ask askcc append dot save crt
++ignore Received Message-Id Resent-Message-Id Status Mail-From Return-Path Via Delivered-To
+diff --git a/names.c b/names.c
+index d08cbde..8f35e6d 100644
+--- a/names.c
++++ b/names.c
+@@ -238,8 +238,9 @@ outof(struct name *names, FILE *fo, struct header *hp)
+
+ (void)snprintf(tempname, sizeof(tempname),
+ "%s/mail.ReXXXXXXXXXX", tmpdir);
++ /* hopefully we always create the file, so I change the "a" to "w" the line below */
+ if ((fd = mkstemp(tempname)) == -1 ||
+- (fout = Fdopen(fd, "a")) == NULL) {
++ (fout = Fdopen(fd, "w")) == NULL) {
+ warn("%s", tempname);
+ senderr++;
+ goto cant;
+diff --git a/pathnames.h b/pathnames.h
+index f1f5100..aa639d2 100644
+--- a/pathnames.h
++++ b/pathnames.h
+@@ -36,14 +36,45 @@
+ #include <paths.h>
+
+ /* executables */
++#ifndef _PATH_SHELL
++#define _PATH_SHELL "/bin/sh"
++#endif
++#ifndef _PATH_PAGER
++#define _PATH_PAGER "/usr/bin/pager"
++#endif
++#ifndef _PATH_EX
++#define _PATH_EX "/usr/bin/editor"
++#endif
++#ifndef _PATH_VI
++#define _PATH_VI "/usr/bin/vi"
++#endif
++#ifndef _PATH_SENDMAIL
++#define _PATH_SENDMAIL "/usr/sbin/sendmail"
++#endif
++
++/* directories */
++#ifndef _PATH_TMP
++#define _PATH_TMP "/tmp/"
++#endif
++
++/* executables */
++#ifndef _PATH_LS
++#define _PATH_LS "/bin/ls"
++#endif
++
++#ifndef DEBIAN
+ #define _PATH_EX "/usr/bin/ex"
+ #define _PATH_MORE "/usr/bin/more"
+-#define _PATH_LS "/bin/ls"
+ #define _PATH_LOCKSPOOL "/usr/libexec/lockspool"
++#endif
+
+-/* directories & files */
++/* mail runtime files */
++#ifndef _PATH_MAILDIR
+ #define _PATH_MAILDIR "/var/mail"
+-#define _PATH_HELP "/usr/share/misc/mail.help"
+-#define _PATH_TILDE "/usr/share/misc/mail.tildehelp"
++#endif
++
++/* directories & files */
++#define _PATH_HELP "/usr/share/misc/mail.help"
++#define _PATH_TILDE "/usr/share/misc/mail.tildehelp"
+ #define _PATH_MASTER_RC "/etc/mail.rc"
+ #define _PATH_LOCTMP "/tmp/local.XXXXXXXXXX"
diff --git a/main/mailx/APKBUILD b/main/mailx/APKBUILD
index fe55b7c3611..6ad328a8e1b 100644
--- a/main/mailx/APKBUILD
+++ b/main/mailx/APKBUILD
@@ -1,39 +1,54 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Michael Mason <ms13sp@gmail.com>
pkgname=mailx
-pkgver=8.1.1
-pkgrel=2
+# tracks debians cvs checkouts
+_date=20220412
+_version=8.1.2
+pkgver=${_version}_git$_date
+pkgrel=1
pkgdesc="commandline utility for sending email"
-options="suid !check" # No testsuite
url="http://www.opengroup.org/onlinepubs/007908799/xcu/mailx.html"
arch="all"
license="BSD-4-Clause-UC"
-makedepends="bsd-compat-headers"
+makedepends="libbsd-dev liblockfile-dev"
subpackages="$pkgname-doc"
-source="https://sources.archlinux.org/other/mailx/mailx-$pkgver-fixed.tar.gz
- mailx-8.1.1.patch
- musl-fix.patch
- mailx-gcc4.patch
- respect-flags.patch
+source="http://deb.debian.org/debian/pool/main/b/bsd-mailx/bsd-mailx_$_version-0.${_date}cvs.orig.tar.xz
+ http://deb.debian.org/debian/pool/main/b/bsd-mailx/bsd-mailx_$_version-0.${_date}cvs-1.debian.tar.xz
+ 00-Makefiles.patch
+ 02-Base-fixes-1.patch
+ CCEQ.patch
"
-
-builddir="$srcdir/$pkgname-$pkgver-fixed"
+builddir="$srcdir/bsd-mailx-$_version-0.${_date}cvs.orig"
+options="suid !check" # No testsuite
prepare() {
default_prepare
- sed -i 's#/man/#/share/man/#' Makefile
+ # debian keeps their patchset in their own folder
+ while read -r patch; do
+ # put these top level to modify them
+ echo "$patch" | grep -q 00-Makefiles && continue
+ echo "$patch" | grep -q 02-Base-fixes-1 && continue
+
+ patch -Np1 < "$srcdir"/debian/patches/"$patch"
+ done < "$srcdir"/debian/patches/series
}
build() {
- CFLAGS="$CFLAGS -fcommon" make
+ make PROG=mail
}
package() {
+ mkdir -p "$pkgdir"/usr/bin
+ mkdir -p "$pkgdir"/usr/share/man/man1
+ mkdir -p "$pkgdir"/usr/share/misc
+ mkdir -p "$pkgdir"/etc
make DESTDIR="$pkgdir" install
}
-sha512sums="adfb1ae796505f2706d03e34ae9b89f45dd878d55014ae8fab91fbf4b53f1bd97e0ac78ce1af5999adf62e99230f91d9539605ae388cf6c16e8334c14c0cce10 mailx-8.1.1-fixed.tar.gz
-05c4185ef54601c9bae6b6505201a9b357f69d9d22c4b992a9ba52f4022b8dec2d0e5b97654fff7c9f303bdcc87ab8bb279a7293fdd538d4291dcd99f6eae1d4 mailx-8.1.1.patch
-de633d557552c38e221cd48c0cf6cefe108f22332eab5e155183463b0209a08b1ae6754508a12bf9f261a345b2feb1a4e607167d51b7a16e60d47c3c02d0218f musl-fix.patch
-e3fa1016da2cd1583e1ba2f6cd05566385607e144da2766101e4bf8c8dc089c4b956d1d90ccc040e5faf31c98d0855a0bc909bf0d6538df34925e798bba1a074 mailx-gcc4.patch
-ec9a85c53c6e979947a5589b8bddcf81ac6d46f696ec21e65e6a50d316f1f27644f460ce6093d1840aaae035de9dd8361e6104cdd1e8ba50744356377a016b1d respect-flags.patch"
+sha512sums="
+acee80e49fbac85dfaa48d885dd310a056a1418c6e3b02ee9f30441a34c104b134fb7c47cac91a1b2359d3d3cba0cf026d9cdf51f659b8c172100d7f98156203 bsd-mailx_8.1.2-0.20220412cvs.orig.tar.xz
+8794d8a41ec86012f4e74509f489afa8dcb624a17a6bc779024b2bb6eed8a7a86826785601bd295147641cd26f4288ec73aa8c3a2451b35b41fbc682f91c157f bsd-mailx_8.1.2-0.20220412cvs-1.debian.tar.xz
+030ba8fe900d42c0a780109a0b21d2eb040d182dd1febed0e079e1291f0cb3d65472e00ef557f5ea8a96122eef68b17ec00645aaf9b07355bbd44e5ee1139b81 00-Makefiles.patch
+a8c975196468015e2e57b2848c17c0a827c18db9d04b019d3912d3f0a40d379f7f115d6b1db32f129f4faf171e99eb746dcfbbc157329ad11fde1a1b8415175e 02-Base-fixes-1.patch
+c285c25620bfe5ca07fc1d068c40dea1f1a980cce1c4dcd7dd4f6de0d492e9fe8f968ef818c630aa1d95beed269e9b9464a53a5ff1af54cdaf3e0bab92a76d3f CCEQ.patch
+"
diff --git a/main/mailx/CCEQ.patch b/main/mailx/CCEQ.patch
new file mode 100644
index 00000000000..d04ddd789e3
--- /dev/null
+++ b/main/mailx/CCEQ.patch
@@ -0,0 +1,17 @@
+https://bugs.gentoo.org/719512
+
+Tiny definition copied from /usr/include/termios.h.
+--- a/tty.c
++++ b/tty.c
+@@ -57,6 +57,10 @@
+ size_t cursor;
+ };
+
++#ifndef CCEQ
++#define CCEQ(val, c) ((c) == (val) && (val) != _POSIX_VDISABLE)
++#endif
++
+ static void tty_flush(struct tty *);
+ static int tty_getc(struct tty *);
+ static int tty_insert(struct tty *, int, int);
+
diff --git a/main/mailx/mailx-8.1.1.patch b/main/mailx/mailx-8.1.1.patch
deleted file mode 100644
index f1c9519c0c3..00000000000
--- a/main/mailx/mailx-8.1.1.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- ./Makefile Thu Mar 16 09:30:36 2000
-+++ ./Makefile Wed Feb 27 12:50:09 2002
-@@ -7,18 +7,20 @@
- BINOWN = root
- BINGRP = mail
-
-+DESTDIR =
-+
- all:
- gcc $(SRCS) -o $(PROG)
-
- install:
-- mkdir -p /usr/share/misc
-- mkdir -p /usr/share/man/man1
-- mkdir -p /etc
-- mkdir -p /usr/bin
-- install -o $(BINOWN) -g $(BINGRP) -m 2755 $(PROG) /usr/bin
-- install -o root -g root -m 644 mail.1 /usr/share/man/man1
-+ mkdir -p $(DESTDIR)/usr/share/misc
-+ mkdir -p $(DESTDIR)/usr/man/man1
-+ mkdir -p $(DESTDIR)/etc
-+ mkdir -p $(DESTDIR)/usr/bin
-+ install -o $(BINOWN) -g $(BINGRP) -m 2755 $(PROG) $(DESTDIR)/usr/bin
-+ install -o root -g root -m 644 mail.1 $(DESTDIR)/usr/man/man1
- cd misc; install -c -o ${BINOWN} -g ${BINGRP} \
-- -m 444 ${SFILES} /usr/share/misc
-+ -m 444 ${SFILES} $(DESTDIR)/usr/share/misc
- cd misc; install -c -o root -g root \
-- -m 644 ${EFILES} /etc
-+ -m 644 ${EFILES} $(DESTDIR)/etc
-
diff --git a/main/mailx/mailx-gcc4.patch b/main/mailx/mailx-gcc4.patch
deleted file mode 100644
index 18452759c39..00000000000
--- a/main/mailx/mailx-gcc4.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-K. Piche: Unofficial patch for mailx.
-
---- ./dotlock.c.orig 2005-09-18 20:28:20.000000000 -0400
-+++ ./dotlock.c 2005-09-18 20:26:59.000000000 -0400
-@@ -47,6 +47,7 @@
- #include <errno.h>
- #include <signal.h>
-
-+#include "def.h"
- #include "extern.h"
-
- #ifndef O_SYNC
diff --git a/main/mailx/musl-fix.patch b/main/mailx/musl-fix.patch
deleted file mode 100644
index 8b409b286d5..00000000000
--- a/main/mailx/musl-fix.patch
+++ /dev/null
@@ -1,126 +0,0 @@
---- mailx-8.1.1-fixed.orig/cmd2.c
-+++ mailx-8.1.1-fixed/cmd2.c
-@@ -383,7 +383,7 @@
- void *v;
- {
- int pid;
-- extern union wait wait_status;
-+ extern int wait_status;
-
- switch (pid = vfork()) {
- case -1:
-@@ -396,7 +396,7 @@
- printf("Okie dokie");
- fflush(stdout);
- wait_child(pid);
-- if (wait_status.w_coredump)
-+ if (WCOREDUMP(wait_status))
- printf(" -- Core dumped.\n");
- else
- printf(" -- Can't dump core.\n");
---- mailx-8.1.1-fixed.orig/def.h
-+++ mailx-8.1.1-fixed/def.h
-@@ -43,6 +43,7 @@
- */
-
- #include <sys/param.h>
-+#include <sys/cdefs.h>
- #include <sys/stat.h>
- #include <sys/time.h>
-
---- mailx-8.1.1-fixed.orig/extern.h
-+++ mailx-8.1.1-fixed/extern.h
-@@ -37,6 +37,8 @@
- * $NetBSD: extern.h,v 1.4 1996/06/08 19:48:21 christos Exp $
- */
-
-+#include <sys/cdefs.h>
-+
- struct name;
- struct name *cat __P((struct name *, struct name *));
- struct name *delname __P((struct name *, char []));
---- mailx-8.1.1-fixed.orig/fio.c
-+++ mailx-8.1.1-fixed/fio.c
-@@ -47,7 +47,6 @@
- #include <sys/wait.h>
-
- #include <unistd.h>
--#include <paths.h>
- #include <errno.h>
- #include "extern.h"
-
-@@ -326,7 +325,7 @@
- register char *cp, *shell;
- int pivec[2];
- struct stat sbuf;
-- extern union wait wait_status;
-+ extern int wait_status;
-
- /*
- * The order of evaluation is "%" and "#" expand into constants.
-@@ -378,7 +377,7 @@
- close(pivec[1]);
- l = read(pivec[0], xname, BUFSIZ);
- close(pivec[0]);
-- if (wait_child(pid) < 0 && wait_status.w_termsig != SIGPIPE) {
-+ if (wait_child(pid) < 0 && WIFSIGNALED(wait_status) && WTERMSIG(wait_status) != SIGPIPE) {
- fprintf(stderr, "\"%s\": Expansion failed.\n", name);
- return NOSTR;
- }
---- mailx-8.1.1-fixed.orig/pathnames.h
-+++ mailx-8.1.1-fixed/pathnames.h
-@@ -44,3 +44,4 @@
- #define _PATH_TILDE "/usr/share/misc/mail.tildehelp"
- #define _PATH_MASTER_RC "/etc/mail.rc"
- #define _PATH_MORE "/usr/bin/more"
-+#define _PATH_CSHELL "/bin/csh"
---- mailx-8.1.1-fixed.orig/popen.c
-+++ mailx-8.1.1-fixed/popen.c
-@@ -62,7 +62,7 @@
- int pid;
- char done;
- char free;
-- union wait status;
-+ int status;
- struct child *link;
- };
- static struct child *child;
-@@ -341,7 +341,7 @@
- int signo;
- {
- int pid;
-- union wait status;
-+ int status;
- register struct child *cp;
-
- while ((pid =
-@@ -356,7 +356,7 @@
- }
- }
-
--union wait wait_status;
-+int wait_status;
-
- /*
- * Wait for a specific child to die.
-@@ -376,7 +376,9 @@
- wait_status = cp->status;
- delchild(cp);
- sigprocmask(SIG_SETMASK, &oset, NULL);
-- return wait_status.w_status ? -1 : 0;
-+ if (WIFEXITED(wait_status) && WEXITSTATUS(wait_status) == 0)
-+ return 0;
-+ return -1;
- }
-
- /*
---- mailx-8.1.1-fixed.orig/quit.c
-+++ mailx-8.1.1-fixed/quit.c
-@@ -43,6 +43,7 @@
- #endif /* not lint */
-
- #include "rcv.h"
-+#include <sys/file.h>
- #include <fcntl.h>
- #include "extern.h"
-
diff --git a/main/mailx/respect-flags.patch b/main/mailx/respect-flags.patch
deleted file mode 100644
index 271c05fe394..00000000000
--- a/main/mailx/respect-flags.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Upstream: Does they exist?
-
-diff --git a/Makefile b/Makefile
-index 6e1a900..2acf268 100644
---- a/Makefile
-+++ b/Makefile
-@@ -8,7 +8,7 @@ BINOWN = root
- BINGRP = mail
-
- all:
-- gcc $(SRCS) -o $(PROG)
-+ gcc $(SRCS) $(CFLAGS) $(LDFLAGS) -o $(PROG)
-
- install:
- mkdir -p /usr/share/misc
diff --git a/main/make/APKBUILD b/main/make/APKBUILD
index 8fba088dde2..d4518194ec8 100644
--- a/main/make/APKBUILD
+++ b/main/make/APKBUILD
@@ -1,16 +1,18 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=make
-pkgver=4.3
-pkgrel=0
+pkgver=4.4.1
+pkgrel=2
pkgdesc="GNU make utility to maintain groups of programs"
url="https://www.gnu.org/software/make"
arch="all"
license="GPL-3.0-or-later"
subpackages="$pkgname-doc"
-source="https://ftp.gnu.org/gnu/make/make-$pkgver.tar.gz
- "
+source="https://ftp.gnu.org/gnu/make/make-$pkgver.tar.gz"
build() {
+ if [ -z "$BOOTSTRAP" ]; then
+ export CFLAGS="$CFLAGS -flto=auto"
+ fi
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -27,6 +29,9 @@ check() {
package() {
make DESTDIR="$pkgdir" install
+ ln -sfv make "$pkgdir"/usr/bin/gmake
}
-sha512sums="9a1185cc468368f4ec06478b1cfa343bf90b5cd7c92c0536567db0315b0ee909af53ecce3d44cfd93dd137dbca1ed13af5713e8663590c4fdd21ea635d78496b make-4.3.tar.gz"
+sha512sums="
+145260cbd6a8226cef3dfef0c8baba31847beaebc7e6b65d39d02715fd4f4cab9b139b6c3772e550088d4f9ae80c6d3ed20b9a7664c693644dfb96b4cb60e67c make-4.4.1.tar.gz
+"
diff --git a/main/makedepend/APKBUILD b/main/makedepend/APKBUILD
index d3427dea9e2..5481241aabd 100644
--- a/main/makedepend/APKBUILD
+++ b/main/makedepend/APKBUILD
@@ -1,18 +1,17 @@
# Contributor:
-# Maintainer:
+# Maintainer: Steven Guikal <void@fluix.one>
pkgname=makedepend
-pkgver=1.0.6
+pkgver=1.0.9
pkgrel=0
pkgdesc="utility for making makefile dependencies"
-url="http://www.freedesktop.org/"
+url="https://www.freedesktop.org/"
arch="all"
-license="MIT"
-makedepends="xorgproto util-macros"
+license="MIT-open-group"
+makedepends="util-macros"
subpackages="$pkgname-doc"
-source="https://www.x.org/releases/individual/util/makedepend-$pkgver.tar.bz2"
+source="https://www.x.org/releases/individual/util/makedepend-$pkgver.tar.xz"
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -22,13 +21,13 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
-sha512sums="eb0e8ee8ab7515806d7d98a060cdcd392ec38e4225e5e05db26daa6651f185d0b764aab403edeea904d4d23211b1f7db20daeee6eafce8abe65225784ed0aa42 makedepend-1.0.6.tar.bz2"
+sha512sums="
+68d289656314dc9f12c792d0e394cfbc95404a0d01155dbcb38313d451b506da48a3d44183f568a2cbb2b1d1da9e26703a0d92f2bb658f72fc968eeb03bf2fe8 makedepend-1.0.9.tar.xz
+"
diff --git a/main/man-pages-posix/APKBUILD b/main/man-pages-posix/APKBUILD
index 2db636b2382..42fd5b57dc3 100644
--- a/main/man-pages-posix/APKBUILD
+++ b/main/man-pages-posix/APKBUILD
@@ -9,9 +9,10 @@ pkgdesc="POSIX.1-$_majorver manual pages"
url="https://mirrors.edge.kernel.org/pub/linux/docs/man-pages/man-pages-posix/"
arch="noarch"
license="custom"
-options="!strip !check"
source="https://cdn.kernel.org/pub/linux/docs/man-pages/man-pages-posix/man-pages-posix-$_majorver-$_minorver.tar.xz"
builddir="$srcdir/$pkgname-$_majorver"
+# just manpages
+options="!check"
package() {
for sect in 0 1 3; do
diff --git a/main/man-pages/APKBUILD b/main/man-pages/APKBUILD
index 3caf91aa3ec..190e84787a9 100644
--- a/main/man-pages/APKBUILD
+++ b/main/man-pages/APKBUILD
@@ -1,22 +1,39 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=man-pages
-pkgver=5.13
-pkgrel=1
+pkgver=6.06
+pkgrel=0
pkgdesc="Linux man pages"
url="https://www.kernel.org/doc/man-pages/"
arch="noarch"
license="GPL-2.0-or-later"
-options="!strip !check"
-makedepends="coreutils"
-source="https://cdn.kernel.org/pub/linux/docs/man-pages/man-pages-$pkgver.tar.xz"
+source="https://cdn.kernel.org/pub/linux/docs/man-pages/man-pages-$pkgver.tar.xz
+ gnumakefile-shell.patch
+ no-install-T.patch
+ "
+# just manpages
+options="!check"
package() {
- make prefix="$pkgdir"/usr install
- find "$pkgdir"/usr/share/man -name "*.[0-9]" -o -name "*.[0-9]" \
- | xargs gzip -9
+ make LINK_PAGES=symlink SHELL=/bin/sh prefix="$pkgdir"/usr install
+ # skip things already zipped- find can iterate over new files made by -exec
+ find "$pkgdir"/usr/share/man -type f \
+ ! -name "*.gz" \
+ -exec gzip -9 {} \+
- # provided by libiconv-doc
+ # the symlink install links to non-gzipped
+ # installing with pre-gzipped form requires 'sponge'
+ # shellcheck disable=SC3045 # we aren't using dash
+ find "$pkgdir"/usr/share/man \( -type l -a ! -name "*.gz" \) -print0 | while IFS= read -r -d '' link; do
+ # append gz since gzipped
+ local target="$(readlink "$link")".gz
+
+ rm "$link"
+ ln -sfv "$target" "$link".gz
+ done
+
+ # provided by gnu-libiconv-doc
+ rm -f "$pkgdir"/usr/share/man/man1/iconv*
rm -f "$pkgdir"/usr/share/man/man3/iconv*
# provided by mandoc
@@ -28,11 +45,10 @@ package() {
"$pkgdir"/usr/share/man/man8/tzselect* \
"$pkgdir"/usr/share/man/man8/zic* \
"$pkgdir"/usr/share/man/man8/zdump*
-
- # provided by libbsd
- rm -f "$pkgdir"/usr/share/man/man3/explicit_bzero*
}
sha512sums="
-a68c0bd5f078aff2f13f962060863e5d30734c1c562e8e9e3d5eda5a329b18ad3e9b4ebb883d31cacfc0a476f91fccb8dd4257598acd75d09dd21351893d3499 man-pages-5.13.tar.xz
+c50b5a47cff5172e46752b61af4dd9f54ee0be88ab69bcc5914bd8ce5ddfaf7358143bea9f69bd6a45f0420eb5eb4596c2200109b23fe98a5221dd01e4a8ea15 man-pages-6.06.tar.xz
+1a11f3c6d15198e1eae7cc81c62fcecffce7a0a3690c1d00c312b749f4556b824dd8b87a96910da2936ecb94cefb52be8e957edaa38a201823629d66113c4b7d gnumakefile-shell.patch
+ee68e51fc13f058410b95236ae7cc7217531af39e15f6ca6ff5595efa1a7d10e1ef17da1499114e5e03e77268bb9ba0fb6732bf53958c4de744c43baed435005 no-install-T.patch
"
diff --git a/main/man-pages/gnumakefile-shell.patch b/main/man-pages/gnumakefile-shell.patch
new file mode 100644
index 00000000000..7825028e47a
--- /dev/null
+++ b/main/man-pages/gnumakefile-shell.patch
@@ -0,0 +1,13 @@
+--- a/GNUmakefile
++++ b/GNUmakefile
+@@ -21,8 +21,8 @@
+ ########################################################################
+
+
+-SHELL := /usr/bin/env
+-.SHELLFLAGS := -S bash -Eeuo pipefail -c
++SHELL := /bin/sh
++.SHELLFLAGS := -Eeuo pipefail -c
+
+
+ MAKEFLAGS += --no-builtin-rules
diff --git a/main/man-pages/no-install-T.patch b/main/man-pages/no-install-T.patch
new file mode 100644
index 00000000000..4f41192eeed
--- /dev/null
+++ b/main/man-pages/no-install-T.patch
@@ -0,0 +1,33 @@
+--- a/share/mk/dist.mk
++++ b/share/mk/dist.mk
+@@ -49,7 +49,7 @@
+ <$< \
+ $(SED) "/^.TH/s/(date)/$$(git log --format=%cs -1 -- $< $(HIDE_ERR))/" \
+ | $(SED) '/^.TH/s/(unreleased)/$(DISTVERSION)/' \
+- | $(INSTALL_DATA) -T /dev/stdin $@
++ | $(INSTALL_DATA) /dev/stdin $@
+
+ $(_DISTOTHERS): $(_DISTDIR)/%: $(srcdir)/% $(MK) | $$(@D)/
+ $(info CP $@)
+--- a/share/mk/install/html.mk
++++ b/share/mk/install/html.mk
+@@ -23,7 +23,7 @@
+
+ $(_htmlpages): $(_htmldir)/%: $(_HTMLDIR)/% $(MK) | $$(@D)/
+ $(info INSTALL $@)
+- $(INSTALL_DATA) -T $< $@
++ $(INSTALL_DATA) $< $@
+
+
+ .PHONY: install-html
+--- a/share/mk/install/man.mk
++++ b/share/mk/install/man.mk
+@@ -63,7 +63,7 @@
+ <$< \
+ $(SED) $(foreach s, $(MANSECTIONS), \
+ -e '/^\.so /s, man$(s)/\(.*\)\.$(s)$$, $(notdir $(man$(s)dir))/\1$(man$(s)ext)$(Z),') \
+- | $(INSTALL_DATA) -T /dev/stdin $@
++ | $(INSTALL_DATA) /dev/stdin $@
+ ifeq ($(LINK_PAGES),symlink)
+ if $(GREP) '^\.so ' <$@ >/dev/null; then \
+ $(GREP) '^\.so ' <$@ \
diff --git a/main/mandoc/APKBUILD b/main/mandoc/APKBUILD
index ff5755e5838..5f88c7658e8 100644
--- a/main/mandoc/APKBUILD
+++ b/main/mandoc/APKBUILD
@@ -3,23 +3,27 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mandoc
pkgver=1.14.6
-pkgrel=2
+pkgrel=13
pkgdesc="mandoc (formerly mdocml) UNIX manpage compiler toolset"
url="https://mandoc.bsd.lv/"
arch="all"
-license="ISC and BSD-2-Clause and BSD-3-Clause"
+license="ISC"
makedepends="zlib-dev"
checkdepends="perl"
-install="$pkgname.post-deinstall"
+install="$pkgname-apropos.post-deinstall"
triggers="$pkgname-apropos.trigger=/usr/share/man/*"
replaces="mdocml"
-provides="mdocml=$pkgver-r$pkgrel"
subpackages="$pkgname-doc $pkgname-dev $pkgname-apropos $pkgname-soelim"
source="https://mandoc.bsd.lv/snapshots/mandoc-$pkgver.tar.gz
+ dynamic-tagfile-support.patch
shared-libmandoc.patch
outdated-warn-disable.patch
"
+# higher than community/man-db for this
+provides="doc-provider mdocml=$pkgver-r$pkgrel"
+provider_priority=100
+
prepare() {
default_prepare
@@ -32,7 +36,6 @@ prepare() {
MANPATH_DEFAULT="/usr/share/man:/usr/local/man:/usr/local/share/man"
MANPATH_BASE="/usr/share/man"
LN="ln -sf"
- HAVE_LESS_T=0
__EOF__
}
@@ -51,24 +54,18 @@ package() {
apropos() {
pkgdesc="makewhatis/whatis and apropos tools and index"
- mkdir -p "$subpkgdir"/usr/sbin "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/apropos \
- "$pkgdir"/usr/bin/whatis \
- "$subpkgdir"/usr/bin/
- mv "$pkgdir"/usr/sbin/makewhatis \
- "$subpkgdir"/usr/sbin/
+ amove usr/bin/apropos usr/bin/whatis usr/sbin/makewhatis
}
soelim() {
pkgdesc="so elimination tool"
depends=""
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/soelim \
- "$subpkgdir"/usr/bin/
+ amove usr/bin/soelim
}
sha512sums="
54286070812a47b629f68757046d3c9a1bdd2b5d1c3b84a5c8e4cb92f1331afa745443f7238175835d8cfbe5b8dd442e00c75c3a5b5b8f8efd8d2ec8f636dad4 mandoc-1.14.6.tar.gz
+d84afd0f462dc3c00753f3db5b2690d8f0954b51f5b679667a75f8ea34cb3d2e961d732218b8c1c3a39c209df70ab273b583c4899c56482e7f8761c4b9fea02c dynamic-tagfile-support.patch
b512bcb8bae11853a3006e2122d7e652806d4bf2234638d8809fd823375b5b0bd590f7d6a90412baffcc3b7b6a0f197a10986728a70f24fe628f91bfb651d266 shared-libmandoc.patch
6eda39920cccb1238b104bb90ac4be2c32883897c72363560d8d39345819cdeff535680e78396052b2b8f981e169ad9b3c30da724def80a1501785d82ce7fa25 outdated-warn-disable.patch
"
diff --git a/main/mandoc/dynamic-tagfile-support.patch b/main/mandoc/dynamic-tagfile-support.patch
new file mode 100644
index 00000000000..7294d5582ae
--- /dev/null
+++ b/main/mandoc/dynamic-tagfile-support.patch
@@ -0,0 +1,131 @@
+BusyBox less doesn't support tag files (-T option), hence we previously
+disabled tag file support in mandoc at compile-time (HAVE_LESS_T).
+However, on Alpine it is entirely possible to replace BusyBox less with
+an implementation that supports tag files (e.g. main/less). In order to
+support tag files when such an implementation is installed, we need to
+detect at runtime whether -T is supported.
+
+This patch achieves this by invoking the pager once with -T beforehand
+and checking if it terminates with a non-zero exit status.
+
+diff -upr mandoc-1.14.6.orig/configure mandoc-1.14.6/configure
+--- mandoc-1.14.6.orig/configure 2023-07-02 19:38:31.011639507 +0200
++++ mandoc-1.14.6/configure 2023-07-02 19:38:41.794998501 +0200
+@@ -67,7 +67,6 @@ HAVE_FTS_COMPARE_CONST=
+ HAVE_GETLINE=
+ HAVE_GETSUBOPT=
+ HAVE_ISBLANK=
+-HAVE_LESS_T=
+ HAVE_MKDTEMP=
+ HAVE_MKSTEMPS=
+ HAVE_NANOSLEEP=
+@@ -363,21 +362,6 @@ fi
+ echo "selected BINM_PAGER=${BINM_PAGER}${manual}" 1>&2
+ echo "selected BINM_PAGER=${BINM_PAGER}${manual}" 1>&3
+
+-# --- tagging support in the pager ---
+-if ismanual "${BINM_PAGER} -T" LESS_T ${HAVE_LESS_T}; then
+- :
+-elif ${BINM_PAGER} -T /dev/null test-noop.c 1>/dev/null 2>&3; then
+- HAVE_LESS_T=1
+- echo "tested ${BINM_PAGER} -T: yes" 1>&2
+- echo "tested ${BINM_PAGER} -T: yes" 1>&3
+- echo 1>&3
+-else
+- HAVE_LESS_T=0
+- echo "tested ${BINM_PAGER} -T: no" 1>&2
+- echo "tested ${BINM_PAGER} -T: no" 1>&3
+- echo 1>&3
+-fi
+-
+ # --- wide character and locale support ---
+ if get_locale; then
+ runtest wchar WCHAR "-DUTF8_LOCALE=\"${UTF8_LOCALE}\"" \
+@@ -484,7 +468,6 @@ cat << __HEREDOC__
+ #define HAVE_GETLINE ${HAVE_GETLINE}
+ #define HAVE_GETSUBOPT ${HAVE_GETSUBOPT}
+ #define HAVE_ISBLANK ${HAVE_ISBLANK}
+-#define HAVE_LESS_T ${HAVE_LESS_T}
+ #define HAVE_MKDTEMP ${HAVE_MKDTEMP}
+ #define HAVE_MKSTEMPS ${HAVE_MKSTEMPS}
+ #define HAVE_NTOHL ${HAVE_NTOHL}
+diff -upr mandoc-1.14.6.orig/main.c mandoc-1.14.6/main.c
+--- mandoc-1.14.6.orig/main.c 2023-07-02 19:38:31.011639507 +0200
++++ mandoc-1.14.6/main.c 2023-07-02 19:38:50.635019538 +0200
+@@ -1271,6 +1271,44 @@ run_pager(struct outstate *outst, char *
+ }
+ }
+
++static int
++supports_tags(const char *pager, char *tagfile)
++{
++ int fd;
++ pid_t pid;
++ int wstatus;
++
++ if (strcmp(pager, "less") != 0)
++ return 0;
++
++ pid = fork();
++ switch (pid) {
++ case -1:
++ err(1, "fork");
++ case 0:
++ close(STDIN_FILENO);
++ fd = open("/dev/null", O_RDWR);
++ if (fd == -1)
++ err(1, "open");
++ assert(fd == STDIN_FILENO);
++
++ close(STDOUT_FILENO);
++ dup2(fd, STDOUT_FILENO);
++ close(STDERR_FILENO);
++ dup2(fd, STDERR_FILENO);
++
++ /* If the pager doesn't support -T we expect a non-zero exit code */
++ execlp(pager, pager, "-T", tagfile, "-", (char *)NULL);
++ exit(EXIT_FAILURE);
++ default:
++ if (waitpid(pid, &wstatus, 0) == -1)
++ err(1, "waitpid");
++ break;
++ }
++
++ return wstatus == EXIT_SUCCESS;
++}
++
+ static pid_t
+ spawn_pager(struct outstate *outst, char *tag_target)
+ {
+@@ -1279,9 +1317,7 @@ spawn_pager(struct outstate *outst, char
+ char *argv[MAX_PAGER_ARGS];
+ const char *pager;
+ char *cp;
+-#if HAVE_LESS_T
+ size_t cmdlen;
+-#endif
+ int argc, use_ofn;
+ pid_t pager_pid;
+
+@@ -1316,11 +1352,10 @@ spawn_pager(struct outstate *outst, char
+ /* For less(1), use the tag file. */
+
+ use_ofn = 1;
+-#if HAVE_LESS_T
+ if (*outst->tag_files->tfn != '\0' &&
+ (cmdlen = strlen(argv[0])) >= 4) {
+ cp = argv[0] + cmdlen - 4;
+- if (strcmp(cp, "less") == 0) {
++ if (supports_tags(pager, outst->tag_files->tfn)) {
+ argv[argc++] = mandoc_strdup("-T");
+ argv[argc++] = outst->tag_files->tfn;
+ if (tag_target != NULL) {
+@@ -1330,7 +1365,7 @@ spawn_pager(struct outstate *outst, char
+ }
+ }
+ }
+-#endif
++
+ if (use_ofn) {
+ if (outst->outtype == OUTT_HTML && tag_target != NULL)
+ mandoc_asprintf(&argv[argc], "file://%s#%s",
diff --git a/main/mandoc/mandoc.post-deinstall b/main/mandoc/mandoc-apropos.post-deinstall
index 77b2574d861..77b2574d861 100644
--- a/main/mandoc/mandoc.post-deinstall
+++ b/main/mandoc/mandoc-apropos.post-deinstall
diff --git a/main/mandoc/mandoc-apropos.trigger b/main/mandoc/mandoc-apropos.trigger
index 517480493fb..ce19526f750 100644
--- a/main/mandoc/mandoc-apropos.trigger
+++ b/main/mandoc/mandoc-apropos.trigger
@@ -1,3 +1,4 @@
#!/bin/sh
-exec /usr/sbin/makewhatis -a -T utf8 /usr/share/man
+nohup nice sh -c "( flock 9 && /usr/sbin/makewhatis -T utf8 ) 9>/tmp/makewhatis.lock" \
+ >/dev/null 2>&1 &
diff --git a/main/mariadb-connector-c/APKBUILD b/main/mariadb-connector-c/APKBUILD
index 64554076671..29348ae750a 100644
--- a/main/mariadb-connector-c/APKBUILD
+++ b/main/mariadb-connector-c/APKBUILD
@@ -1,24 +1,20 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mariadb-connector-c
-pkgver=3.1.13
-pkgrel=4
+pkgver=3.3.9
+pkgrel=0
pkgdesc="The MariaDB Native Client library (C driver)"
url="https://mariadb.org/"
arch="all"
license="LGPL-2.1-or-later"
-depends_dev="openssl1.1-compat-dev zlib-dev"
+depends_dev="openssl-dev>3 zlib-dev"
makedepends="$depends_dev cmake samurai"
options="!check" # no testsuite
replaces="mariadb-client-libs"
subpackages="$pkgname-dev"
-source="https://mirror.vpsfree.cz/mariadb/connector-c-$pkgver/mariadb-connector-c-$pkgver-src.tar.gz"
-builddir="$srcdir/mariadb-connector-c-$pkgver-src"
-
-prepare() {
- default_prepare
- # Patch source to fix error in how the .cmake file was written
- sed -e 's|END()|ENDIF()|' -i cmake/ConnectorName.cmake
-}
+source="$pkgname-$pkgver.tar.gz::https://github.com/mariadb-corporation/mariadb-connector-c/archive/refs/tags/v$pkgver.tar.gz
+ incorrect-sys-poll.patch
+ unused-parameter.patch
+ "
build() {
if [ "$CBUILD" != "$CHOST" ]; then
@@ -30,7 +26,6 @@ build() {
-DCMAKE_BUILD_TYPE=MinSizeRel \
-DCMAKE_INSTALL_PREFIX=/usr \
-DBUILD_SHARED_LIBS=True \
- -DCMAKE_C_FLAGS="$CFLAGS" \
-DINSTALL_LIBDIR=lib \
-DINSTALL_INCLUDEDIR=include/mysql \
\
@@ -49,6 +44,9 @@ package() {
# purge static libs
rm "$pkgdir"/usr/lib/*.a
+ # Docs conflict with mariadb-doc
+ rm -r "$pkgdir"/usr/man
+
# compat symlinks
ln -s mariadb_config "$pkgdir"/usr/bin/mysql_config
ln -s mariadb_version.h "$pkgdir"/usr/include/mysql/mysql_version.h
@@ -61,5 +59,7 @@ dev() {
}
sha512sums="
-a179a4fa689f681d64f926c1f3abfd3912896ec3e39c15be6a330647ded207aa2f110277dc43b90faffa4386365a72babc96264e29ac436e5d212d8b7cef7c32 mariadb-connector-c-3.1.13-src.tar.gz
+2365628248d83fdb31ad8aedc2209aaa855262d799183dbc6445d3419f3b769d782232d590add33e7aa2b9d226417a9cdf65707bb95768a60b5215d839d6c55b mariadb-connector-c-3.3.9.tar.gz
+ca55213d91a1495cc85a972528820af058ea194073f050389fbac829e077fc179fa7c0422b18953ebe7751379af7e670a5fffef9bd642cd2051d35e0410ab4f3 incorrect-sys-poll.patch
+1e71e01ffb2a95833ae08fe6bb72c75f762b57ea5919d27be518e40c4cb1dee16ac2609fe4a663a1ca7781523046285ab1c757b5c82bce42ef4b5ecd75d5ed90 unused-parameter.patch
"
diff --git a/main/mariadb-connector-c/incorrect-sys-poll.patch b/main/mariadb-connector-c/incorrect-sys-poll.patch
new file mode 100644
index 00000000000..8a1a53acee5
--- /dev/null
+++ b/main/mariadb-connector-c/incorrect-sys-poll.patch
@@ -0,0 +1,11 @@
+--- a/plugins/pvio/pvio_socket.c
++++ b/plugins/pvio/pvio_socket.c
+@@ -39,7 +39,7 @@
+ #include <sys/un.h>
+ #endif
+ #ifdef HAVE_POLL
+-#include <sys/poll.h>
++#include <poll.h>
+ #endif
+ #ifdef HAVE_SYS_IOCTL_H
+ #include <sys/ioctl.h>
diff --git a/main/mariadb-connector-c/unused-parameter.patch b/main/mariadb-connector-c/unused-parameter.patch
new file mode 100644
index 00000000000..6200bf53aa7
--- /dev/null
+++ b/main/mariadb-connector-c/unused-parameter.patch
@@ -0,0 +1,25 @@
+These functions are implemented in assembly for x86 and x86_64.
+On other architectures, they are no-ops, and so parameters are unused.
+
+Starting from version 3.3.7, mariadb-connector-c is compiled with "-Werror"
+turned on, so allow unused parameters here with GCC's Diagnostic Pragma:
+https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html
+
+--- a/libmariadb/ma_context.c
++++ b/libmariadb/ma_context.c
+@@ -692,6 +692,9 @@
+ #endif /* MY_CONTEXT_USE_WIN32_FIBERS */
+
+ #ifdef MY_CONTEXT_DISABLE
++#pragma GCC diagnostic push
++#pragma GCC diagnostic ignored "-Wunused-parameter"
++
+ int
+ my_context_continue(struct my_context *c)
+ {
+@@ -723,4 +726,5 @@
+ {
+ }
+
++#pragma GCC diagnostic pop
+ #endif
diff --git a/main/mariadb/APKBUILD b/main/mariadb/APKBUILD
index 2c908a0ebc6..8380a6c1065 100644
--- a/main/mariadb/APKBUILD
+++ b/main/mariadb/APKBUILD
@@ -7,7 +7,7 @@
# Contributor: Jake Buchholz <tomalok@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mariadb
-pkgver=10.6.8
+pkgver=10.11.7
pkgrel=0
pkgdesc="A fast SQL database server"
url="https://www.mariadb.org/"
@@ -16,17 +16,58 @@ pkggroups="mysql"
arch="all"
license="GPL-2.0-or-later"
depends="$pkgname-common"
-_mytopdeps="perl perl-dbi perl-dbd-mysql perl-getopt-long perl-socket perl-term-readkey"
-depends_dev="openssl1.1-compat-dev zlib-dev mariadb-connector-c-dev"
-makedepends="$depends_dev bison cmake curl-dev libaio-dev libarchive-dev libevent-dev
- libxml2-dev ncurses-dev pcre2-dev readline-dev xz-dev linux-headers linux-pam-dev
- samurai $_mytopdeps"
+_mytopdeps="
+ perl
+ perl-dbd-mysql
+ perl-dbi
+ perl-getopt-long
+ perl-socket
+ perl-term-readkey
+ "
+depends_dev="
+ fmt-dev
+ mariadb-connector-c-dev
+ openssl-dev
+ zlib-dev
+ "
+makedepends="
+ $_mytopdeps
+ $depends_dev
+ bison
+ cmake
+ curl-dev
+ libaio-dev
+ libarchive-dev
+ libevent-dev
+ libxml2-dev
+ linux-headers
+ linux-pam-dev
+ ncurses-dev
+ pcre2-dev
+ readline-dev
+ samurai
+ xz-dev
+ zstd-dev
+ "
install="$pkgname.pre-install $pkgname-common.post-upgrade"
-subpackages="$pkgname-static $pkgname-test:mytest $pkgname-embedded-dev:_embedded_dev
- $pkgname-doc $pkgname-dev $pkgname-common $pkgname-openrc
- $pkgname-client $pkgname-bench $pkgname-backup $pkgname-embedded $pkgname-mytop
+subpackages="
+ $pkgname-static
+ $pkgname-test:mytest
+ $pkgname-embedded-dev:_embedded_dev
+ $pkgname-doc
+ $pkgname-dev
+ $pkgname-common
+ $pkgname-openrc
+ $pkgname-client
+ $pkgname-bench
+ $pkgname-backup
+ $pkgname-embedded
+ $pkgname-mytop
$pkgname-server-utils:_server_utils
- mysql mysql-client:_compat_client mysql-bench:_compat_bench"
+ mysql
+ mysql-client:_compat_client
+ mysql-bench:_compat_bench
+ "
options="suid"
case "$CARCH" in
@@ -37,14 +78,34 @@ case "$CARCH" in
;;
esac
-source="https://downloads.mariadb.org/interstitial/mariadb-$pkgver/source/mariadb-$pkgver.tar.gz
+case "$CARCH" in
+ armv7|s390x)
+ # FIXME: sigbus armv7, sigsegv s390x
+ # test-aes
+ options="$options !check"
+ ;;
+esac
+
+source="https://rsync.osuosl.org/pub/mariadb/mariadb-$pkgver/source/mariadb-$pkgver.tar.gz
$pkgname.initd
+ gcc13.patch
+ lfs64.patch
ppc-remove-glibc-dep.patch
disable-failing-test.patch
have_stacktrace.patch
+ revert-c432c9ef.patch
"
# secfixes:
+# 10.11.6-r0:
+# - CVE-2023-22084
+# 10.6.9-r0:
+# - CVE-2018-25032
+# - CVE-2022-32081
+# - CVE-2022-32082
+# - CVE-2022-32084
+# - CVE-2022-32089
+# - CVE-2022-32091
# 10.6.8-r0:
# - CVE-2022-27376
# - CVE-2022-27377
@@ -82,6 +143,11 @@ source="https://downloads.mariadb.org/interstitial/mariadb-$pkgver/source/mariad
# - CVE-2022-24050
# - CVE-2022-24051
# - CVE-2022-24052
+# - CVE-2022-27385
+# - CVE-2022-31621
+# - CVE-2022-31622
+# - CVE-2022-31623
+# - CVE-2022-31624
# 10.6.4-r0:
# - CVE-2021-2372
# - CVE-2021-2389
@@ -170,19 +236,20 @@ source="https://downloads.mariadb.org/interstitial/mariadb-$pkgver/source/mariad
# All cmake configuration options can be displayed with: cmake ../server -LH
build() {
# set MinSizeRel as otherwise project enables debugging for some parts
- cmake . -G Ninja \
- -DBUILD_CONFIG=mysql_release \
- -DCMAKE_BUILD_TYPE=MinSizeRel \
+ cmake -B build -G Ninja -Wno-dev \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_PREFIX=/usr \
+ -DCOMPILATION_COMMENT="Alpine Linux" \
-DSYSCONFDIR=/etc \
-DSYSCONF2DIR=/etc/my.cnf.d \
-DMYSQL_DATADIR=/var/lib/mysql \
- -DMYSQL_UNIX_ADDR=/run/mysqld/mysqld.sock \
+ -DINSTALL_UNIX_ADDRDIR=/run/mysqld/mysqld.sock \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DENABLED_LOCAL_INFILE=ON \
-DINSTALL_INFODIR=share/info \
-DINSTALL_MANDIR=share/man \
+ -DINSTALL_PAMDIR=/lib/security \
-DINSTALL_PLUGINDIR=lib/$pkgname/plugin \
-DINSTALL_SCRIPTDIR=bin \
-DINSTALL_INCLUDEDIR=include/mysql \
@@ -203,7 +270,7 @@ build() {
-DPLUGIN_MYISAM=YES \
-DPLUGIN_MROONGA=NO \
-DPLUGIN_OQGRAPH=NO \
- -DPLUGIN_PARTITION=YES \
+ -DPLUGIN_PARTITION=STATIC \
-DPLUGIN_ROCKSDB=$_enable_rocksdb \
-DPLUGIN_SPHINX=NO \
-DPLUGIN_TOKUDB=NO \
@@ -221,10 +288,11 @@ build() {
-DWITH_ROCKSDB_BZIP2=OFF \
-DWITH_ROCKSDB_JEMALLOC=OFF \
-DWITH_ROCKSDB_LZ4=OFF \
- -DWITH_ROCKSDB_ZSTD=OFF \
+ -DWITH_ROCKSDB_ZSTD=ON \
-DWITH_ROCKSDB_SNAPPY=OFF \
-DWITH_JEMALLOC=NO \
-DWITH_LIBARCHIVE=system \
+ -DWITH_LIBFMT=system \
-DWITH_LIBNUMA=NO \
-DWITH_LIBWRAP=OFF \
-DWITH_LIBWSEP=OFF \
@@ -237,21 +305,18 @@ build() {
-DWITH_ZLIB=system \
-DSKIP_TESTS=ON # Disables the client lib tests since a running server is needed
- # print config options to log
- cmake -L
-
- cmake --build .
+ cmake --build build
}
check() {
# exclude test-connect which seems to be buggy. testsuite does not set port env var
- ctest --output-on-failure -E '(test-connect)'
+ ctest --test-dir build --output-on-failure -E '(test-connect|mf_iocache)' -j${JOBS:-2}
}
package() {
- DESTDIR="$pkgdir/" cmake --install .
+ DESTDIR="$pkgdir/" cmake --install build
- install -Dm 755 "$startdir"/$pkgname.initd \
+ install -Dm 755 "$srcdir"/$pkgname.initd \
"$pkgdir"/etc/init.d/$pkgname
mkdir -p "$pkgdir"/etc/my.cnf.d
@@ -262,7 +327,6 @@ package() {
ln -s ../../../../bin/my_safe_process \
"$pkgdir"/usr/mysql-test/lib/My/SafeProcess/my_safe_process
-
# remove files provided by mariadb-connector-c
rm \
"$pkgdir"/usr/bin/mariadb_config \
@@ -293,6 +357,8 @@ package() {
"$pkgdir"/usr/lib/libmariadb.so* \
"$pkgdir"/usr/lib/pkgconfig/libmariadb.pc
+ install -d -m750 -o mysql -g mysql "$pkgdir"/usr/lib/mysql
+
cat >"$pkgdir"/etc/my.cnf<<-EOF
# This group is read both both by the client and the server
# use it for options that affect everything
@@ -365,50 +431,49 @@ common() {
pkgdesc="MariaDB common files for both server and client"
replaces="mysql-common"
depends=
- mkdir -p "$subpkgdir"/usr/share/$pkgname \
- "$subpkgdir"/etc/mysql \
- "$subpkgdir"/usr/lib/$pkgname/plugin
- mv "$pkgdir"/etc/my.* "$subpkgdir"/etc/
+ mkdir -p "$subpkgdir"/usr/lib/$pkgname/plugin
+
+ amove etc/my.*
+
local lang="charsets danish english french greek italian korean norwegian-ny
portuguese russian slovak swedish czech dutch estonian german
hungarian japanese norwegian polish romanian serbian spanish
ukrainian"
for l in $lang; do
- mv "$pkgdir"/usr/share/$pkgname/$l \
- "$subpkgdir"/usr/share/$pkgname/
+ amove usr/share/$pkgname/$l
done
}
mytest() {
pkgdesc="The test suite distributed with MariaDB"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/mysql_client_test \
- "$pkgdir"/usr/bin/mysql_client_test_embedded \
- "$pkgdir"/usr/bin/my_safe_process \
- "$pkgdir"/usr/bin/mariadb-client-test \
- "$pkgdir"/usr/bin/mariadb-client-test-embedded \
- "$pkgdir"/usr/bin/mariadb-test \
- "$pkgdir"/usr/bin/mariadb-test-embedded \
- "$pkgdir"/usr/bin/mysqltest \
- "$pkgdir"/usr/bin/mysqltest_embedded \
- "$subpkgdir"/usr/bin/
- mv "$pkgdir"/usr/mysql-test \
- "$subpkgdir"/usr/
+
+ amove usr/bin/mysql_client_test \
+ usr/bin/mysql_client_test_embedded \
+ usr/bin/my_safe_process \
+ usr/bin/mariadb-client-test \
+ usr/bin/mariadb-client-test-embedded \
+ usr/bin/mariadb-test \
+ usr/bin/mariadb-test-embedded \
+ usr/bin/mysqltest \
+ usr/bin/mysqltest_embedded \
+ usr/mysql-test
}
client() {
pkgdesc="Client for the MariaDB database"
- depends="mariadb-common=$pkgver-r$pkgrel"
+ # perl needed for mariadb-access
+ depends="mariadb-common=$pkgver-r$pkgrel perl"
install=""
local bins="myisam_ftdump mysql mysqlaccess mysqladmin
mysqlcheck mysqldump mysqldumpslow mysql_find_rows
- mysql_fix_extensions mysqlimport mysqlshow mysql_waitpid"
+ mysql_fix_extensions mysqlimport mysqlshow mysql_waitpid
+ mariadb-secure-installation"
local symlinks="mariadb mariadb-access mariadb-admin mariadb-check
mariadb-dump mariadb-dumpslow mariadb-find-rows mariadb-fix-extensions
- mariadb-import mariadb-show mariadb-waitpid"
- mkdir -p "$subpkgdir"/usr/bin/
+ mariadb-import mariadb-show mariadb-waitpid mysql_secure_installation"
+
for i in $bins $symlinks; do
- mv "$pkgdir"/usr/bin/$i "$subpkgdir"/usr/bin/
+ amove usr/bin/$i
done
}
@@ -429,18 +494,12 @@ mysql() { _compat mysql mariadb; }
_compat_client() { _compat mysql-client mariadb-client; }
_compat_bench() { _compat mysql-bench mariadb-client; }
-static() {
- pkgdesc="Static libraries for MariaDB"
- amove usr/lib/*.a
-}
-
backup() {
pkgdesc="The mariabackup tool for physical online backups"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/mariabackup \
- "$pkgdir"/usr/bin/mariadb-backup \
- "$pkgdir"/usr/bin/mbstream \
- "$subpkgdir"/usr/bin/
+
+ amove usr/bin/mariabackup \
+ usr/bin/mariadb-backup \
+ usr/bin/mbstream
}
embedded() {
@@ -449,7 +508,6 @@ embedded() {
amove usr/lib/libmariadbd.so.*
}
-
_embedded_dev() {
pkgdesc="MariaDB as an embeddable library - development files"
# this package only contains a symlink, but we want avoid pull in
@@ -466,41 +524,41 @@ mytop() {
_server_utils() {
pkgdesc="Non-essential server utilities for MariaDB/MySQL applications"
depends="perl $pkgname-common=$pkgver-r$pkgrel"
- mkdir -p "$subpkgdir"/usr/bin
+
# perl utils
- mv \
- "$pkgdir"/usr/bin/mysql_convert_table_format \
- "$pkgdir"/usr/bin/mariadb-convert-table-format \
- "$pkgdir"/usr/bin/mysql_setpermission \
- "$pkgdir"/usr/bin/mariadb-setpermission \
- "$pkgdir"/usr/bin/mysqld_multi \
- "$pkgdir"/usr/bin/mariadbd-multi \
- "$pkgdir"/usr/bin/mysqlhotcopy \
- "$pkgdir"/usr/bin/mariadb-hotcopy \
- "$subpkgdir"/usr/bin/
+ amove \
+ usr/bin/mysql_convert_table_format \
+ usr/bin/mariadb-convert-table-format \
+ usr/bin/mysql_setpermission \
+ usr/bin/mariadb-setpermission \
+ usr/bin/mysqld_multi \
+ usr/bin/mariadbd-multi \
+ usr/bin/mysqlhotcopy \
+ usr/bin/mariadb-hotcopy
# tools that can be used remotely and other tools
- mv \
- "$pkgdir"/usr/bin/mysql_upgrade \
- "$pkgdir"/usr/bin/mariadb-upgrade \
- "$pkgdir"/usr/bin/perror \
- "$pkgdir"/usr/bin/mysqld_safe_helper \
- "$pkgdir"/usr/bin/mariadbd-safe-helper \
- "$subpkgdir"/usr/bin/
+ amove \
+ usr/bin/mysql_upgrade \
+ usr/bin/mariadb-upgrade \
+ usr/bin/perror \
+ usr/bin/mysqld_safe_helper \
+ usr/bin/mariadbd-safe-helper
}
_plugin_rocksdb() {
pkgdesc="MariaDB plugin for RocksDB (MyRocks)"
url="https://mariadb.com/kb/en/library/myrocks/"
depends="$pkgname=$pkgver-r$pkgrel"
- mkdir -p "$subpkgdir"/usr/lib/mariadb/plugin
- mv "$pkgdir"/usr/lib/mariadb/plugin/ha_rocksdb.so \
- "$subpkgdir"/usr/lib/mariadb/plugin/ha_rocksdb.so
+
+ amove usr/lib/mariadb/plugin/ha_rocksdb.so
}
sha512sums="
-b4327000eb3e5fc75bbd78de9890b0464217a432c8aac744948af94e092ffeef1f101885b81ec49029900a92b0018838e46efcf225056a9b06f35a04ecf26aab mariadb-10.6.8.tar.gz
+a6ebc9ba88b52e5d339b176b6fa48c03fcbe5bb590740a02c1bbd083a3d62e619937e645de2504a9f9adeed2f67127fab0307dece524b7c5217ad5df0f3ccc71 mariadb-10.11.7.tar.gz
c352969f6665b0ffa387f7b185a5dea7751f4b16c12c809627857b27321efa09159369d7dd5c852d6159a9f173cb895fb601f0c52a1fa6e3527899520030964c mariadb.initd
+ec9068ee1da8276f04ac3654640cb6149e0f0a21ee77b133d7e5b82fa2ab2fd7971bce6ea3c5a5e094d8c6e2571f4ce43d7014b2767bb27e0a335005ced81968 gcc13.patch
+466d21376f6abae024aee26af701aa93275734c47a9c93084cec17e2e089667d059fbf76ea9c748c97de4a4b37c6663370f1d1f2183e17e69bd98213a57667ce lfs64.patch
20331e52e3dc419b4833e3c16bbb9828b9591f8aa3b6fce93c592161f3cae403c4a5d073369b2383d7d2325a2c9394d178866ac3e069fd8b6c50be00155ba942 ppc-remove-glibc-dep.patch
598490b4bb45c9f7be46086d25c2b6c601d417c45f11aa519c2290065e7d6e98a7519f9860b823e67a8fd3e6ce3b4728af73ec3a2c66eec32b42fd4ad7cc07f7 disable-failing-test.patch
4965275371e6d5e08e32a16fcfff2e68dfdcf6f4c30e5beffe18dcf56b503cbf373feeda814694e048964b16165ad65156c32fe27e974bed47201e8cf60736c6 have_stacktrace.patch
+3757166dae8cd2c517d7e09d286f0012c12815e58edbf615d3fb935d52ec4ab56fa4bd62fcb126a434a229a6757a34ec17900dd469d629ea22ed680733a2686d revert-c432c9ef.patch
"
diff --git a/main/mariadb/gcc13.patch b/main/mariadb/gcc13.patch
new file mode 100644
index 00000000000..e174d40912b
--- /dev/null
+++ b/main/mariadb/gcc13.patch
@@ -0,0 +1,40 @@
+--- a/storage/rocksdb/rocksdb/util/string_util.h
++++ b/storage/rocksdb/rocksdb/util/string_util.h
+@@ -6,6 +6,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include <sstream>
+ #include <string>
+ #include <unordered_map>
+--- a/storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h
++++ b/storage/rocksdb/rocksdb/include/rocksdb/utilities/checkpoint.h
+@@ -8,6 +8,7 @@
+ #pragma once
+ #ifndef ROCKSDB_LITE
+
++#include <cstdint>
+ #include <string>
+ #include <vector>
+ #include "rocksdb/status.h"
+--- a/storage/rocksdb/rocksdb/table/block_based/data_block_hash_index.h
++++ b/storage/rocksdb/rocksdb/table/block_based/data_block_hash_index.h
+@@ -5,6 +5,7 @@
+
+ #pragma once
+
++#include <cstdint>
+ #include <string>
+ #include <vector>
+
+--- a/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h
++++ b/storage/rocksdb/rocksdb/db/compaction/compaction_iteration_stats.h
+@@ -6,6 +6,7 @@
+ #pragma once
+
+ #include "rocksdb/rocksdb_namespace.h"
++#include <cstdint>
+
+ struct CompactionIterationStats {
+ // Compaction statistics
diff --git a/main/mariadb/lfs64.patch b/main/mariadb/lfs64.patch
new file mode 100644
index 00000000000..38cf1fc1b9e
--- /dev/null
+++ b/main/mariadb/lfs64.patch
@@ -0,0 +1,936 @@
+needed since https://github.com/bminor/musl/commit/25e6fee27f4a293728dd15b659170e7b9c7db9bc
+--
+diff --git a/storage/columnstore/columnstore/dbcon/execplan/objectidmanager.h b/storage/columnstore/columnstore/dbcon/execplan/objectidmanager.h
+index 0a389db6..6e3c900f 100644
+--- a/storage/columnstore/columnstore/dbcon/execplan/objectidmanager.h
++++ b/storage/columnstore/columnstore/dbcon/execplan/objectidmanager.h
+@@ -129,7 +129,7 @@ class ObjectIDManager
+ * @param offset the offset to start reading at
+ * @param size the number of bytes to read into buf
+ */
+- void readData(uint8_t* buf, off64_t offset, int size) const;
++ void readData(uint8_t* buf, off_t offset, int size) const;
+
+ /** @brief Reliably writes data to the bitmap file
+ *
+@@ -140,7 +140,7 @@ class ObjectIDManager
+ * @param offset the offset to start writing at
+ * @param size the number of bytes to write
+ */
+- void writeData(uint8_t* buf, off64_t offset, int size) const;
++ void writeData(uint8_t* buf, off_t offset, int size) const;
+
+ /** @brief If there is no bitmap file yet, this is used to make one
+ *
+diff --git a/storage/columnstore/columnstore/primitives/blockcache/iomanager.cpp.single-read b/storage/columnstore/columnstore/primitives/blockcache/iomanager.cpp.single-read
+index d5368cfa..18754df4 100644
+--- a/storage/columnstore/columnstore/primitives/blockcache/iomanager.cpp.single-read
++++ b/storage/columnstore/columnstore/primitives/blockcache/iomanager.cpp.single-read
+@@ -115,7 +115,7 @@ void* thr_popper(void* arg) {
+ #endif
+
+ longSeekOffset=(uint64_t)offset * (uint64_t)fileBlockSize;
+- lseek64(fd, longSeekOffset, SEEK_SET);
++ lseek(fd, longSeekOffset, SEEK_SET);
+ totalRqst++;
+ dlen = (fr->BlocksRequested() > extentSize ? extentSize : fr->BlocksRequested());
+ sz=0;
+diff --git a/storage/columnstore/columnstore/utils/cloudio/SMComm.cpp b/storage/columnstore/columnstore/utils/cloudio/SMComm.cpp
+index e2e9b3a9..3bb30fd1 100644
+--- a/storage/columnstore/columnstore/utils/cloudio/SMComm.cpp
++++ b/storage/columnstore/columnstore/utils/cloudio/SMComm.cpp
+@@ -192,7 +192,7 @@ int SMComm::stat(const string& filename, struct stat* statbuf)
+ common_exit(command, response, err);
+ }
+
+-int SMComm::truncate(const string& filename, const off64_t length)
++int SMComm::truncate(const string& filename, const off_t length)
+ {
+ ByteStream* command = buffers.getByteStream();
+ ByteStream* response = buffers.getByteStream();
+diff --git a/storage/columnstore/columnstore/utils/cloudio/SMComm.h b/storage/columnstore/columnstore/utils/cloudio/SMComm.h
+index bb46304b..51edc0be 100644
+--- a/storage/columnstore/columnstore/utils/cloudio/SMComm.h
++++ b/storage/columnstore/columnstore/utils/cloudio/SMComm.h
+@@ -50,7 +50,7 @@ class SMComm : public boost::noncopyable
+
+ // added this one because it should be trivial to implement in SM, and prevents a large
+ // operation in SMDataFile.
+- int truncate(const std::string& filename, const off64_t length);
++ int truncate(const std::string& filename, const off_t length);
+
+ int listDirectory(const std::string& path, std::list<std::string>* entries);
+
+diff --git a/storage/columnstore/columnstore/utils/cloudio/SMDataFile.cpp b/storage/columnstore/columnstore/utils/cloudio/SMDataFile.cpp
+index 84eab1ac..0d827c16 100644
+--- a/storage/columnstore/columnstore/utils/cloudio/SMDataFile.cpp
++++ b/storage/columnstore/columnstore/utils/cloudio/SMDataFile.cpp
+@@ -38,7 +38,7 @@ SMDataFile::SMDataFile(const char* name, int _openmode, const struct stat& _stat
+ comm = SMComm::get();
+ }
+
+-ssize_t SMDataFile::pread(void* buf, off64_t offset, size_t count)
++ssize_t SMDataFile::pread(void* buf, off_t offset, size_t count)
+ {
+ return comm->pread(name(), buf, count, offset);
+ }
+@@ -63,7 +63,7 @@ ssize_t SMDataFile::write(const void* buf, size_t count)
+ return ret;
+ }
+
+-int SMDataFile::seek(off64_t offset, int whence)
++int SMDataFile::seek(off_t offset, int whence)
+ {
+ switch (whence)
+ {
+@@ -83,18 +83,18 @@ int SMDataFile::seek(off64_t offset, int whence)
+ return 0;
+ }
+
+-int SMDataFile::truncate(off64_t length)
++int SMDataFile::truncate(off_t length)
+ {
+ return comm->truncate(name(), length);
+ }
+
+-int SMDataFile::fallocate(int mode, off64_t offset, off64_t length)
++int SMDataFile::fallocate(int mode, off_t offset, off_t length)
+ {
+ idbassert_s(mode == 0, "SMDataFile::fallocate() does not support mode != 0 right now.");
+ return comm->truncate(name(), offset + length);
+ }
+
+-off64_t SMDataFile::size()
++off_t SMDataFile::size()
+ {
+ struct stat _stat;
+ int err = comm->stat(name(), &_stat);
+@@ -104,7 +104,7 @@ off64_t SMDataFile::size()
+ return _stat.st_size;
+ }
+
+-off64_t SMDataFile::tell()
++off_t SMDataFile::tell()
+ {
+ return position;
+ }
+diff --git a/storage/columnstore/columnstore/utils/cloudio/SMDataFile.h b/storage/columnstore/columnstore/utils/cloudio/SMDataFile.h
+index 1d77edd6..6bd9b20f 100644
+--- a/storage/columnstore/columnstore/utils/cloudio/SMDataFile.h
++++ b/storage/columnstore/columnstore/utils/cloudio/SMDataFile.h
+@@ -30,14 +30,14 @@ class SMDataFile : public IDBDataFile
+ public:
+ virtual ~SMDataFile();
+
+- ssize_t pread(void* ptr, off64_t offset, size_t count);
++ ssize_t pread(void* ptr, off_t offset, size_t count);
+ ssize_t read(void* ptr, size_t count);
+ ssize_t write(const void* ptr, size_t count);
+- int seek(off64_t offset, int whence);
+- int truncate(off64_t length);
+- int fallocate(int mode, off64_t offset, off64_t length);
+- off64_t size();
+- off64_t tell();
++ int seek(off_t offset, int whence);
++ int truncate(off_t length);
++ int fallocate(int mode, off_t offset, off_t length);
++ off_t size();
++ off_t tell();
+ int flush();
+ time_t mtime();
+ int close();
+@@ -48,7 +48,7 @@ class SMDataFile : public IDBDataFile
+ private:
+ SMDataFile();
+ SMDataFile(const char* fname, int openmode, const struct stat&);
+- off64_t position;
++ off_t position;
+ int openmode;
+ SMComm* comm;
+
+diff --git a/storage/columnstore/columnstore/utils/cloudio/SMFileSystem.cpp b/storage/columnstore/columnstore/utils/cloudio/SMFileSystem.cpp
+index 96fe25d3..c15653ad 100644
+--- a/storage/columnstore/columnstore/utils/cloudio/SMFileSystem.cpp
++++ b/storage/columnstore/columnstore/utils/cloudio/SMFileSystem.cpp
+@@ -38,7 +38,7 @@ int SMFileSystem::mkdir(const char* path)
+ return 0;
+ }
+
+-off64_t SMFileSystem::size(const char* filename) const
++off_t SMFileSystem::size(const char* filename) const
+ {
+ struct stat _stat;
+
+@@ -50,7 +50,7 @@ off64_t SMFileSystem::size(const char* filename) const
+ return _stat.st_size;
+ }
+
+-off64_t SMFileSystem::compressedSize(const char* filename) const
++off_t SMFileSystem::compressedSize(const char* filename) const
+ {
+ // Yikes, punting on this one.
+ throw NotImplementedYet(__func__);
+diff --git a/storage/columnstore/columnstore/utils/cloudio/SMFileSystem.h b/storage/columnstore/columnstore/utils/cloudio/SMFileSystem.h
+index 0e60f533..bace23fb 100644
+--- a/storage/columnstore/columnstore/utils/cloudio/SMFileSystem.h
++++ b/storage/columnstore/columnstore/utils/cloudio/SMFileSystem.h
+@@ -33,8 +33,8 @@ class SMFileSystem : public IDBFileSystem, boost::noncopyable
+
+ // why are some of these const and some not const in IDBFileSystem?
+ int mkdir(const char* pathname);
+- off64_t size(const char* path) const;
+- off64_t compressedSize(const char* path) const;
++ off_t size(const char* path) const;
++ off_t compressedSize(const char* path) const;
+ int remove(const char* pathname);
+ int rename(const char* oldpath, const char* newpath);
+ bool exists(const char* pathname) const;
+diff --git a/storage/columnstore/columnstore/utils/idbdatafile/BufferedFile.cpp b/storage/columnstore/columnstore/utils/idbdatafile/BufferedFile.cpp
+index 6d7c5834..cb3f2510 100644
+--- a/storage/columnstore/columnstore/utils/idbdatafile/BufferedFile.cpp
++++ b/storage/columnstore/columnstore/utils/idbdatafile/BufferedFile.cpp
+@@ -67,7 +67,7 @@ BufferedFile::~BufferedFile()
+ delete[] m_buffer;
+ }
+
+-ssize_t BufferedFile::pread(void* ptr, off64_t offset, size_t count)
++ssize_t BufferedFile::pread(void* ptr, off_t offset, size_t count)
+ {
+ ssize_t ret = 0;
+ int savedErrno;
+@@ -122,7 +122,7 @@ ssize_t BufferedFile::read(void* ptr, size_t count)
+ ssize_t BufferedFile::write(const void* ptr, size_t count)
+ {
+ ssize_t ret = 0;
+- off64_t offset = tell();
++ off_t offset = tell();
+ int savedErrno = 0;
+ size_t progress = 0;
+ uint8_t* ptr8 = (uint8_t*)ptr;
+@@ -150,7 +150,7 @@ ssize_t BufferedFile::write(const void* ptr, size_t count)
+ return progress;
+ }
+
+-int BufferedFile::seek(off64_t offset, int whence)
++int BufferedFile::seek(off_t offset, int whence)
+ {
+ int ret = 0;
+ int savedErrno;
+@@ -168,7 +168,7 @@ int BufferedFile::seek(off64_t offset, int whence)
+ return ret;
+ }
+
+-int BufferedFile::truncate(off64_t length)
++int BufferedFile::truncate(off_t length)
+ {
+ int ret = 0;
+ int savedErrno;
+@@ -187,14 +187,14 @@ int BufferedFile::truncate(off64_t length)
+ return ret;
+ }
+
+-off64_t BufferedFile::size()
++off_t BufferedFile::size()
+ {
+ #ifdef _MSC_VER
+ return _filelengthi64(fileno(m_fp)); // Interestingly, implemented as fseek/ftell in the windows crt
+ #else
+ // going to calculate size 2 ways - first, via seek
+- off64_t length = -1;
+- off64_t here;
++ off_t length = -1;
++ off_t here;
+
+ flockfile(m_fp);
+
+@@ -220,7 +220,7 @@ off64_t BufferedFile::size()
+ #endif
+ }
+
+-off64_t BufferedFile::tell()
++off_t BufferedFile::tell()
+ {
+ #ifdef _MSC_VER
+ return _ftelli64(m_fp);
+@@ -282,7 +282,7 @@ int BufferedFile::close()
+ @see
+ This one is used in shared/we_fileop.cpp to skip expensive file preallocation.
+ */
+-int BufferedFile::fallocate(int mode, off64_t offset, off64_t length)
++int BufferedFile::fallocate(int mode, off_t offset, off_t length)
+ {
+ int ret = 0;
+ int savedErrno = 0;
+diff --git a/storage/columnstore/columnstore/utils/idbdatafile/BufferedFile.h b/storage/columnstore/columnstore/utils/idbdatafile/BufferedFile.h
+index 09646b44..ba688a10 100644
+--- a/storage/columnstore/columnstore/utils/idbdatafile/BufferedFile.h
++++ b/storage/columnstore/columnstore/utils/idbdatafile/BufferedFile.h
+@@ -40,16 +40,16 @@ class BufferedFile : public IDBDataFile, boost::noncopyable
+ BufferedFile(const char* fname, const char* mode, unsigned opts);
+ /* virtual */ ~BufferedFile();
+
+- /* virtual */ ssize_t pread(void* ptr, off64_t offset, size_t count);
++ /* virtual */ ssize_t pread(void* ptr, off_t offset, size_t count);
+ /* virtual */ ssize_t read(void* ptr, size_t count);
+ /* virtual */ ssize_t write(const void* ptr, size_t count);
+- /* virtual */ int seek(off64_t offset, int whence);
+- /* virtual */ int truncate(off64_t length);
+- /* virtual */ off64_t size();
+- /* virtual */ off64_t tell();
++ /* virtual */ int seek(off_t offset, int whence);
++ /* virtual */ int truncate(off_t length);
++ /* virtual */ off_t size();
++ /* virtual */ off_t tell();
+ /* virtual */ int flush();
+ /* virtual */ time_t mtime();
+- /* virtual */ int fallocate(int mode, off64_t offset, off64_t length);
++ /* virtual */ int fallocate(int mode, off_t offset, off_t length);
+
+ protected:
+ /* virtual */
+diff --git a/storage/columnstore/columnstore/utils/idbdatafile/IDBDataFile.h b/storage/columnstore/columnstore/utils/idbdatafile/IDBDataFile.h
+index 1747189e..739e7717 100644
+--- a/storage/columnstore/columnstore/utils/idbdatafile/IDBDataFile.h
++++ b/storage/columnstore/columnstore/utils/idbdatafile/IDBDataFile.h
+@@ -124,7 +124,7 @@ class IDBDataFile
+ * or fseek followed by read for C-library FILE*. Return value
+ * is the number of bytes read.
+ */
+- virtual ssize_t pread(void* ptr, off64_t offset, size_t count) = 0;
++ virtual ssize_t pread(void* ptr, off_t offset, size_t count) = 0;
+
+ /**
+ * This is a read method similar to kernel style read or C library
+@@ -148,7 +148,7 @@ class IDBDataFile
+ * operation - ex. HDFS will not support it for files opened for writing
+ * Returns 0 on success, -1 on error
+ */
+- virtual int seek(off64_t offset, int whence) = 0;
++ virtual int seek(off_t offset, int whence) = 0;
+
+ /**
+ * The truncate() method is equivalent to the ftruncate method. Note
+@@ -156,7 +156,7 @@ class IDBDataFile
+ * or write or append do not, but HDFS files opened for modification do.
+ * Returns 0 on success, -1 on error.
+ */
+- virtual int truncate(off64_t length) = 0;
++ virtual int truncate(off_t length) = 0;
+
+ /**
+ * The size() method returns the size of the file in a manner consistent
+@@ -166,14 +166,14 @@ class IDBDataFile
+ * external view of size may differ (ex. if writing buffered i/o before
+ * a flush/sync or if writing an open HDFS file). Returns -1 on error.
+ */
+- virtual off64_t size() = 0;
++ virtual off_t size() = 0;
+
+ /**
+ * The tell() call returns the current offset in the file. This is
+ * similar to lseek with 0 offset in the standard library and ftell
+ * for buffered FILE *s.
+ */
+- virtual off64_t tell() = 0;
++ virtual off_t tell() = 0;
+
+ /**
+ * The flush() method instructs the file to write any buffered contents
+@@ -194,7 +194,7 @@ class IDBDataFile
+ * only.
+ * Returns -1 on error.
+ */
+- virtual int fallocate(int mode, off64_t offset, off64_t length) = 0;
++ virtual int fallocate(int mode, off_t offset, off_t length) = 0;
+
+ int colWidth()
+ {
+diff --git a/storage/columnstore/columnstore/utils/idbdatafile/IDBFileSystem.h b/storage/columnstore/columnstore/utils/idbdatafile/IDBFileSystem.h
+index 4ca4a285..54e58540 100644
+--- a/storage/columnstore/columnstore/utils/idbdatafile/IDBFileSystem.h
++++ b/storage/columnstore/columnstore/utils/idbdatafile/IDBFileSystem.h
+@@ -82,14 +82,14 @@ class IDBFileSystem
+ * size() returns the size of the file specified by path.
+ * Returns the size on success, -1 on error
+ */
+- virtual off64_t size(const char* path) const = 0;
++ virtual off_t size(const char* path) const = 0;
+
+ /**
+ * compressedSize() returns the decompressed size of the file
+ * speicified by path.
+ * Returns the size on success, -1 on error
+ */
+- virtual off64_t compressedSize(const char* path) const = 0;
++ virtual off_t compressedSize(const char* path) const = 0;
+
+ /**
+ * exists() checks for the existence of a particular path.
+diff --git a/storage/columnstore/columnstore/utils/idbdatafile/IDBLogger.cpp b/storage/columnstore/columnstore/utils/idbdatafile/IDBLogger.cpp
+index 37d4cb3c..8111d00c 100644
+--- a/storage/columnstore/columnstore/utils/idbdatafile/IDBLogger.cpp
++++ b/storage/columnstore/columnstore/utils/idbdatafile/IDBLogger.cpp
+@@ -117,14 +117,14 @@ void IDBLogger::logRW(const char* op, const std::string& fname, const IDBDataFil
+ writeLog(logmsg.str());
+ }
+
+-void IDBLogger::logSeek(const std::string& fname, const IDBDataFile* ptr, off64_t offset, int whence, int ret)
++void IDBLogger::logSeek(const std::string& fname, const IDBDataFile* ptr, off_t offset, int whence, int ret)
+ {
+ ostringstream logmsg;
+ logmsg << fname << "," << ptr << ",seek," << offset << "," << whence << "," << ret;
+ writeLog(logmsg.str());
+ }
+
+-void IDBLogger::logTruncate(const std::string& fname, const IDBDataFile* ptr, off64_t length, int ret)
++void IDBLogger::logTruncate(const std::string& fname, const IDBDataFile* ptr, off_t length, int ret)
+ {
+ ostringstream logmsg;
+ logmsg << fname << "," << ptr << ",truncate," << length << ",," << ret;
+diff --git a/storage/columnstore/columnstore/utils/idbdatafile/IDBLogger.h b/storage/columnstore/columnstore/utils/idbdatafile/IDBLogger.h
+index b200c914..c4d6d0a5 100644
+--- a/storage/columnstore/columnstore/utils/idbdatafile/IDBLogger.h
++++ b/storage/columnstore/columnstore/utils/idbdatafile/IDBLogger.h
+@@ -36,8 +36,8 @@ class IDBLogger
+ static void logNoArg(const std::string& fname, const IDBDataFile* ptr, const char* op, int ret);
+ static void logRW(const char* op, const std::string& fname, const IDBDataFile* ptr, size_t offset,
+ size_t count, size_t bytesRead);
+- static void logSeek(const std::string& fname, const IDBDataFile* ptr, off64_t offset, int whence, int ret);
+- static void logTruncate(const std::string& fname, const IDBDataFile* ptr, off64_t length, int ret);
++ static void logSeek(const std::string& fname, const IDBDataFile* ptr, off_t offset, int whence, int ret);
++ static void logTruncate(const std::string& fname, const IDBDataFile* ptr, off_t length, int ret);
+ static void logSize(const std::string& fname, const IDBDataFile* ptr, long long ret);
+
+ static void logFSop(IDBFileSystem::Types type, const char* op, const char* pathname,
+diff --git a/storage/columnstore/columnstore/utils/idbdatafile/IDBPolicy.h b/storage/columnstore/columnstore/utils/idbdatafile/IDBPolicy.h
+index 117f1e8d..d53fbfa0 100644
+--- a/storage/columnstore/columnstore/utils/idbdatafile/IDBPolicy.h
++++ b/storage/columnstore/columnstore/utils/idbdatafile/IDBPolicy.h
+@@ -125,8 +125,8 @@ class IDBPolicy
+ * please see IDBFileSystem.h.
+ */
+ static int mkdir(const char* pathname);
+- static off64_t size(const char* path);
+- static off64_t compressedSize(const char* path);
++ static off_t size(const char* path);
++ static off_t compressedSize(const char* path);
+ static int remove(const char* pathname);
+ static int rename(const char* oldpath, const char* newpath);
+ static bool exists(const char* pathname);
+@@ -194,12 +194,12 @@ inline int IDBPolicy::mkdir(const char* pathname)
+ return IDBPolicy::getFs(pathname).mkdir(pathname);
+ }
+
+-inline off64_t IDBPolicy::size(const char* path)
++inline off_t IDBPolicy::size(const char* path)
+ {
+ return IDBPolicy::getFs(path).size(path);
+ }
+
+-inline off64_t IDBPolicy::compressedSize(const char* path)
++inline off_t IDBPolicy::compressedSize(const char* path)
+ {
+ return IDBPolicy::getFs(path).compressedSize(path);
+ }
+diff --git a/storage/columnstore/columnstore/utils/idbdatafile/PosixFileSystem.cpp b/storage/columnstore/columnstore/utils/idbdatafile/PosixFileSystem.cpp
+index bd3e1c4b..6c9d04a5 100644
+--- a/storage/columnstore/columnstore/utils/idbdatafile/PosixFileSystem.cpp
++++ b/storage/columnstore/columnstore/utils/idbdatafile/PosixFileSystem.cpp
+@@ -115,13 +115,13 @@ int PosixFileSystem::rename(const char* oldpath, const char* newpath)
+ return ret;
+ }
+
+-off64_t PosixFileSystem::size(const char* path) const
++off_t PosixFileSystem::size(const char* path) const
+ {
+ // should this use Boost??
+ struct stat statBuf;
+ int rc = ::stat(path, &statBuf);
+ int savedErrno = errno;
+- off64_t ret = ((rc == 0) ? statBuf.st_size : -1);
++ off_t ret = ((rc == 0) ? statBuf.st_size : -1);
+
+ if (IDBLogger::isEnabled())
+ IDBLogger::logFSop(POSIX, "fs:size", path, this, ret);
+@@ -156,11 +156,11 @@ size_t readFillBuffer(idbdatafile::IDBDataFile* pFile, char* buffer, size_t byte
+ return totalBytesRead;
+ }
+
+-off64_t PosixFileSystem::compressedSize(const char* path) const
++off_t PosixFileSystem::compressedSize(const char* path) const
+ {
+ IDBDataFile* pFile = NULL;
+ size_t nBytes;
+- off64_t dataSize = 0;
++ off_t dataSize = 0;
+
+ try
+ {
+diff --git a/storage/columnstore/columnstore/utils/idbdatafile/PosixFileSystem.h b/storage/columnstore/columnstore/utils/idbdatafile/PosixFileSystem.h
+index c1f4e5ff..6e18ca45 100644
+--- a/storage/columnstore/columnstore/utils/idbdatafile/PosixFileSystem.h
++++ b/storage/columnstore/columnstore/utils/idbdatafile/PosixFileSystem.h
+@@ -29,8 +29,8 @@ class PosixFileSystem : public IDBFileSystem
+ ~PosixFileSystem();
+
+ int mkdir(const char* pathname) override;
+- off64_t size(const char* path) const override;
+- off64_t compressedSize(const char* path) const override;
++ off_t size(const char* path) const override;
++ off_t compressedSize(const char* path) const override;
+ int remove(const char* pathname) override;
+ int rename(const char* oldpath, const char* newpath) override;
+ bool exists(const char* pathname) const override;
+diff --git a/storage/columnstore/columnstore/utils/idbdatafile/UnbufferedFile.cpp b/storage/columnstore/columnstore/utils/idbdatafile/UnbufferedFile.cpp
+index 07a7630b..97dcb97c 100644
+--- a/storage/columnstore/columnstore/utils/idbdatafile/UnbufferedFile.cpp
++++ b/storage/columnstore/columnstore/utils/idbdatafile/UnbufferedFile.cpp
+@@ -75,7 +75,7 @@ UnbufferedFile::~UnbufferedFile()
+ close();
+ }
+
+-ssize_t UnbufferedFile::pread(void* ptr, off64_t offset, size_t count)
++ssize_t UnbufferedFile::pread(void* ptr, off_t offset, size_t count)
+ {
+ ssize_t ret;
+ int savedErrno;
+@@ -161,7 +161,7 @@ ssize_t UnbufferedFile::write(const void* ptr, size_t count)
+ return ret;
+ }
+
+-int UnbufferedFile::seek(off64_t offset, int whence)
++int UnbufferedFile::seek(off_t offset, int whence)
+ {
+ int ret;
+ int savedErrno;
+@@ -182,7 +182,7 @@ int UnbufferedFile::seek(off64_t offset, int whence)
+ return ret;
+ }
+
+-int UnbufferedFile::truncate(off64_t length)
++int UnbufferedFile::truncate(off_t length)
+ {
+ int ret;
+ int savedErrno;
+@@ -207,15 +207,15 @@ int UnbufferedFile::truncate(off64_t length)
+ return ret;
+ }
+
+-off64_t UnbufferedFile::size()
++off_t UnbufferedFile::size()
+ {
+- off64_t ret = 0;
++ off_t ret = 0;
+ int savedErrno;
+
+ #ifdef _MSC_VER
+ DWORD hi = 0;
+ DWORD lo = GetFileSize(m_fd, &hi);
+- ret = off64_t(((uint64_t)hi) << 32) | lo;
++ ret = off_t(((uint64_t)hi) << 32) | lo;
+ #else
+ struct stat statBuf;
+ int rc = ::fstat(m_fd, &statBuf);
+@@ -230,9 +230,9 @@ off64_t UnbufferedFile::size()
+ return ret;
+ }
+
+-off64_t UnbufferedFile::tell()
++off_t UnbufferedFile::tell()
+ {
+- off64_t ret;
++ off_t ret;
+ #ifdef _MSC_VER
+ LARGE_INTEGER wRet;
+ LARGE_INTEGER dist;
+@@ -333,7 +333,7 @@ int UnbufferedFile::close()
+ @see
+ This one is used in shared/we_fileop.cpp to skip expensive file preallocation.
+ */
+-int UnbufferedFile::fallocate(int mode, off64_t offset, off64_t length)
++int UnbufferedFile::fallocate(int mode, off_t offset, off_t length)
+ {
+ int ret = 0;
+ int savedErrno = 0;
+diff --git a/storage/columnstore/columnstore/utils/idbdatafile/tdriver.cpp b/storage/columnstore/columnstore/utils/idbdatafile/tdriver.cpp
+index 42b46873..0cef9ebb 100644
+--- a/storage/columnstore/columnstore/utils/idbdatafile/tdriver.cpp
++++ b/storage/columnstore/columnstore/utils/idbdatafile/tdriver.cpp
+@@ -623,9 +623,9 @@ bool TestRunner::truncateTest(IDBDataFile::Types filetype)
+ blk_num = m_opts.numblocks;
+ }
+
+- off64_t fsize = m_file->size();
++ off_t fsize = m_file->size();
+
+- if (fsize != (off64_t)(blk_num * BLK_SIZE))
++ if (fsize != (off_t)(blk_num * BLK_SIZE))
+ {
+ ostringstream errstr;
+ errstr << "wrong file size after truncate, " << fsize << " != " << blk_num * BLK_SIZE;
+@@ -645,7 +645,7 @@ bool TestRunner::renameTest(IDBDataFile::Types type)
+ IDBFileSystem& fs = IDBFileSystem::getFs(type);
+
+ // get the size before we move for compare purposes.
+- off64_t fsize_orig = fs.size(m_fname.c_str());
++ off_t fsize_orig = fs.size(m_fname.c_str());
+
+ // choose a path in a different directory that we know already exists
+ // and make it specific to our thread...
+@@ -666,7 +666,7 @@ bool TestRunner::renameTest(IDBDataFile::Types type)
+ }
+
+ // now check if oldpath exists using size method
+- off64_t fsize = fs.size(m_fname.c_str());
++ off_t fsize = fs.size(m_fname.c_str());
+
+ if (fsize != -1)
+ {
+@@ -712,7 +712,7 @@ bool TestRunner::copyTest(IDBDataFile::Types type)
+ IDBFileSystem& fs = IDBFileSystem::getFs(type);
+
+ // get the size before we copy for compare purposes.
+- off64_t fsize_orig = fs.size(m_fname.c_str());
++ off_t fsize_orig = fs.size(m_fname.c_str());
+
+ // choose a path in a different directory that we know already exists
+ // and make it specific to our thread...
+@@ -733,7 +733,7 @@ bool TestRunner::copyTest(IDBDataFile::Types type)
+ }
+
+ // now check if newpath exists using size method
+- off64_t fsize = fs.size(newpath.c_str());
++ off_t fsize = fs.size(newpath.c_str());
+
+ if (fsize != fsize_orig)
+ {
+@@ -1023,9 +1023,9 @@ bool TestRunner::tellTest(IDBDataFile::Types filetype)
+ return false;
+ }
+
+- off64_t filepos = m_file->tell();
++ off_t filepos = m_file->tell();
+
+- if (filepos != off64_t(BLK_SIZE))
++ if (filepos != off_t(BLK_SIZE))
+ {
+ ostringstream errstr;
+ errstr << "tellTest: File position not at correct block, " << filepos << " != " << BLK_SIZE;
+diff --git a/storage/columnstore/columnstore/writeengine/bulk/we_colbufcompressed.cpp b/storage/columnstore/columnstore/writeengine/bulk/we_colbufcompressed.cpp
+index 9678501c..4bb33049 100644
+--- a/storage/columnstore/columnstore/writeengine/bulk/we_colbufcompressed.cpp
++++ b/storage/columnstore/columnstore/writeengine/bulk/we_colbufcompressed.cpp
+@@ -393,7 +393,7 @@ int ColumnBufferCompressed::compressAndFlush(bool bFinishingFile)
+ Stats::startParseEvent(WE_STATS_WRITE_COL);
+ #endif
+
+- off64_t fileOffset = fFile->tell();
++ off_t fileOffset = fFile->tell();
+ size_t nitems = fFile->write(compressedOutBuf, outputLen) / outputLen;
+
+ if (nitems != 1)
+diff --git a/storage/columnstore/columnstore/writeengine/bulk/we_columninfo.cpp b/storage/columnstore/columnstore/writeengine/bulk/we_columninfo.cpp
+index 3f89c28a..57f74352 100644
+--- a/storage/columnstore/columnstore/writeengine/bulk/we_columninfo.cpp
++++ b/storage/columnstore/columnstore/writeengine/bulk/we_columninfo.cpp
+@@ -955,7 +955,7 @@ int ColumnInfo::expandAbbrevExtent(bool bRetainFilePos)
+ {
+ if (fLoadingAbbreviatedExtent)
+ {
+- off64_t oldOffset = 0;
++ off_t oldOffset = 0;
+
+ if (bRetainFilePos)
+ {
+diff --git a/storage/columnstore/columnstore/writeengine/dictionary/we_dctnry.cpp b/storage/columnstore/columnstore/writeengine/dictionary/we_dctnry.cpp
+index 0a4f5e90..c7eb5fe6 100644
+--- a/storage/columnstore/columnstore/writeengine/dictionary/we_dctnry.cpp
++++ b/storage/columnstore/columnstore/writeengine/dictionary/we_dctnry.cpp
+@@ -318,7 +318,7 @@ int Dctnry::expandDctnryExtent()
+ {
+ RETURN_ON_NULL(m_dFile, ERR_FILE_SEEK);
+
+- off64_t oldOffset = m_dFile->tell();
++ off_t oldOffset = m_dFile->tell();
+
+ RETURN_ON_ERROR(setFileOffset(m_dFile, 0, SEEK_END));
+
+diff --git a/storage/columnstore/columnstore/writeengine/server/we_getfilesizes.cpp b/storage/columnstore/columnstore/writeengine/server/we_getfilesizes.cpp
+index 194b260e..4f9ce81b 100644
+--- a/storage/columnstore/columnstore/writeengine/server/we_getfilesizes.cpp
++++ b/storage/columnstore/columnstore/writeengine/server/we_getfilesizes.cpp
+@@ -93,9 +93,9 @@ size_t readFillBuffer(idbdatafile::IDBDataFile* pFile, char* buffer, size_t byte
+ return totalBytesRead;
+ }
+
+-static off64_t getCompressedDataSize(string& fileName)
++static off_t getCompressedDataSize(string& fileName)
+ {
+- off64_t dataSize = 0;
++ off_t dataSize = 0;
+ IDBDataFile* pFile = 0;
+ size_t nBytes;
+ // Some IDBPolicy functions can throw exceptions, caller will catch it
+@@ -198,7 +198,7 @@ struct ColumnThread
+ char fileName[200];
+ (void)fileOp.getFileName(fOid, fileName, rootList[i], entries[0].partitionNum, entries[0].segmentNum);
+ string aFile(fileName); // convert between char* and string
+- off64_t fileSize = 0;
++ off_t fileSize = 0;
+
+ if (fReportRealUse && (fCompressionType > 0))
+ {
+diff --git a/storage/columnstore/columnstore/writeengine/shared/we_chunkmanager.cpp b/storage/columnstore/columnstore/writeengine/shared/we_chunkmanager.cpp
+index b34535c7..474a44a8 100644
+--- a/storage/columnstore/columnstore/writeengine/shared/we_chunkmanager.cpp
++++ b/storage/columnstore/columnstore/writeengine/shared/we_chunkmanager.cpp
+@@ -1183,7 +1183,7 @@ int ChunkManager::openFile(CompFileData* fileData, const char* mode, int colWidt
+ // (ex __LINE__); this is used for logging error messages. Likewise, filename
+ // is used for logging any error message.
+ //------------------------------------------------------------------------------
+-int ChunkManager::setFileOffset(IDBDataFile* pFile, const string& fileName, off64_t offset, int ln) const
++int ChunkManager::setFileOffset(IDBDataFile* pFile, const string& fileName, off_t offset, int ln) const
+ {
+ int rc = NO_ERROR;
+
+diff --git a/storage/columnstore/columnstore/writeengine/shared/we_chunkmanager.h b/storage/columnstore/columnstore/writeengine/shared/we_chunkmanager.h
+index 30a9862f..bc22a451 100644
+--- a/storage/columnstore/columnstore/writeengine/shared/we_chunkmanager.h
++++ b/storage/columnstore/columnstore/writeengine/shared/we_chunkmanager.h
+@@ -309,7 +309,7 @@ class ChunkManager
+ int openFile(CompFileData* fileData, const char* mode, int colWidth, bool useTmpSuffix, int ln) const;
+
+ // @brief set offset in a compressed DB file from beginning.
+- int setFileOffset(IDBDataFile* pFile, const std::string& fileName, off64_t offset, int ln) const;
++ int setFileOffset(IDBDataFile* pFile, const std::string& fileName, off_t offset, int ln) const;
+
+ // @brief read from a compressed DB file.
+ int readFile(IDBDataFile* pFile, const std::string& fileName, void* buf, size_t size, int ln) const;
+diff --git a/storage/columnstore/columnstore/writeengine/shared/we_fileop.cpp b/storage/columnstore/columnstore/writeengine/shared/we_fileop.cpp
+index 1db08a92..2c783325 100644
+--- a/storage/columnstore/columnstore/writeengine/shared/we_fileop.cpp
++++ b/storage/columnstore/columnstore/writeengine/shared/we_fileop.cpp
+@@ -1310,7 +1310,7 @@ int FileOp::fillCompColumnExtentEmptyChunks(OID oid, int colWidth, const uint8_t
+ getLogger()->logMsg(oss.str(), MSGLVL_INFO2);
+ }
+
+- off64_t endHdrsOffset = pFile->tell();
++ off_t endHdrsOffset = pFile->tell();
+ rc = expandAbbrevColumnExtent(pFile, dbRoot, emptyVal, colWidth, colDataType);
+
+ if (rc != NO_ERROR)
+@@ -1374,7 +1374,7 @@ int FileOp::fillCompColumnExtentEmptyChunks(OID oid, int colWidth, const uint8_t
+ std::endl << std::endl;
+ #endif
+
+- off64_t endOffset = 0;
++ off_t endOffset = 0;
+
+ // Fill in or add necessary remaining empty chunks
+ if (numChunksToFill > 0)
+@@ -1416,7 +1416,7 @@ int FileOp::fillCompColumnExtentEmptyChunks(OID oid, int colWidth, const uint8_t
+
+ // Position file to write empty chunks; default to end of headers
+ // in case there are no chunks listed in the header
+- off64_t startOffset = pFile->tell();
++ off_t startOffset = pFile->tell();
+
+ if (chunkPtrs.size() > 0)
+ {
+diff --git a/storage/connect/filamfix.cpp b/storage/connect/filamfix.cpp
+index 3298a833..ec256a2a 100644
+--- a/storage/connect/filamfix.cpp
++++ b/storage/connect/filamfix.cpp
+@@ -695,7 +695,7 @@ bool BGXFAM::BigSeek(PGLOBAL g, HANDLE h, BIGINT pos, int org)
+ return true;
+ } // endif
+ #else // !_WIN32
+- if (lseek64(h, pos, org) < 0) {
++ if (lseek(h, pos, org) < 0) {
+ snprintf(g->Message, sizeof(g->Message), "lseek64: %s", strerror(errno));
+ printf("%s\n", g->Message);
+ return true;
+@@ -1022,7 +1022,7 @@ int BGXFAM::Cardinality(PGLOBAL g)
+
+ #else // UNIX
+ if (Hfile == INVALID_HANDLE_VALUE) {
+- int h = open64(filename, O_RDONLY, 0);
++ int h = open(filename, O_RDONLY, 0);
+
+ if (trace(1))
+ htrc(" h=%d\n", h);
+@@ -1041,13 +1041,13 @@ int BGXFAM::Cardinality(PGLOBAL g)
+ } // endif h
+
+ // Get the size of the file (can be greater than 4 GB)
+- fsize = lseek64(h, 0, SEEK_END);
++ fsize = lseek(h, 0, SEEK_END);
+ close(h);
+ } else {
+- BIGINT curpos = lseek64(Hfile, 0, SEEK_CUR);
++ BIGINT curpos = lseek(Hfile, 0, SEEK_CUR);
+
+- fsize = lseek64(Hfile, 0, SEEK_END);
+- lseek64(Hfile, curpos, SEEK_SET);
++ fsize = lseek(Hfile, 0, SEEK_END);
++ lseek(Hfile, curpos, SEEK_SET);
+ } // endif Hfile
+
+ if (fsize < 0) {
+@@ -1357,7 +1357,7 @@ int BGXFAM::DeleteRecords(PGLOBAL g, int irc)
+ return RC_FX;
+ } // endif error
+ #else // !_WIN32
+- if (ftruncate64(Hfile, (BIGINT)(Tpos * Lrecl))) {
++ if (ftruncate(Hfile, (BIGINT)(Tpos * Lrecl))) {
+ snprintf(g->Message, sizeof(g->Message), MSG(TRUNCATE_ERROR), strerror(errno));
+ return RC_FX;
+ } // endif
+@@ -1402,7 +1402,7 @@ bool BGXFAM::OpenTempFile(PGLOBAL g)
+ return true;
+ } // endif Tfile
+ #else // UNIX
+- Tfile = open64(tempname, O_WRONLY | O_TRUNC, S_IWRITE);
++ Tfile = open(tempname, O_WRONLY | O_TRUNC, S_IWRITE);
+
+ if (Tfile == INVALID_HANDLE_VALUE) {
+ int rc = errno;
+@@ -1531,7 +1531,7 @@ void BGXFAM::Rewind(void)
+ #if defined(_WIN32) //OB
+ SetFilePointer(Hfile, 0, NULL, FILE_BEGIN);
+ #else // UNIX
+- lseek64(Hfile, 0, SEEK_SET);
++ lseek(Hfile, 0, SEEK_SET);
+ #endif // UNIX
+ #endif // 0
+ CurBlk = -1;
+diff --git a/storage/connect/filamvct.cpp b/storage/connect/filamvct.cpp
+index 184df646..f462060a 100644
+--- a/storage/connect/filamvct.cpp
++++ b/storage/connect/filamvct.cpp
+@@ -3084,7 +3084,7 @@ bool BGVFAM::BigSeek(PGLOBAL g, HANDLE h, BIGINT pos, bool b)
+ return true;
+ } // endif
+ #else // !_WIN32
+- if (lseek64(h, pos, (b) ? SEEK_END : SEEK_SET) < 0) {
++ if (lseek(h, pos, (b) ? SEEK_END : SEEK_SET) < 0) {
+ snprintf(g->Message, sizeof(g->Message), MSG(ERROR_IN_LSK), errno);
+ return true;
+ } // endif
+@@ -3238,7 +3238,7 @@ int BGVFAM::GetBlockInfo(PGLOBAL g)
+
+ if (h == INVALID_HANDLE_VALUE || !len.QuadPart) {
+ #else // !_WIN32
+- h = open64(filename, O_RDONLY, 0);
++ h = open(filename, O_RDONLY, 0);
+
+ if (h == INVALID_HANDLE_VALUE || !_filelength(h)) {
+ #endif // !_WIN32
+@@ -3314,7 +3314,7 @@ bool BGVFAM::SetBlockInfo(PGLOBAL g)
+ #else // !_WIN32
+ int oflag = (b) ? O_RDWR : O_RDWR | O_TRUNC;
+
+- h = open64(filename, oflag, 0);
++ h = open(filename, oflag, 0);
+ #endif // !_WIN32
+
+ if (h == INVALID_HANDLE_VALUE) {
+@@ -3409,7 +3409,7 @@ bool BGVFAM::MakeEmptyFile(PGLOBAL g, PCSZ fn)
+ int h;
+ BIGINT pos;
+
+- h= open64(filename, O_CREAT | O_WRONLY, S_IREAD | S_IWRITE);
++ h= open(filename, O_CREAT | O_WRONLY, S_IREAD | S_IWRITE);
+
+ if (h == -1)
+ return true;
+@@ -3420,7 +3420,7 @@ bool BGVFAM::MakeEmptyFile(PGLOBAL g, PCSZ fn)
+ htrc("MEF: pos=%lld n=%d maxblk=%d blksize=%d\n",
+ pos, n, MaxBlk, Blksize);
+
+- if (lseek64(h, pos, SEEK_SET) < 0)
++ if (lseek(h, pos, SEEK_SET) < 0)
+ goto err;
+
+ // This actually fills the empty file
+@@ -3619,7 +3619,7 @@ bool BGVFAM::OpenTableFile(PGLOBAL g)
+ return true;
+ } // endswitch
+
+- Hfile = open64(filename, oflag, pmd); // Enable file size > 2G
++ Hfile = open(filename, oflag, pmd); // Enable file size > 2G
+
+ if (Hfile == INVALID_HANDLE_VALUE) {
+ rc = errno;
+@@ -3933,7 +3933,7 @@ int BGVFAM::DeleteRecords(PGLOBAL g, int irc)
+ return RC_FX;
+ } // endif error
+ #else // !_WIN32
+- if (ftruncate64(Hfile, (BIGINT)(Tpos * Lrecl))) {
++ if (ftruncate(Hfile, (BIGINT)(Tpos * Lrecl))) {
+ snprintf(g->Message, sizeof(g->Message), MSG(TRUNCATE_ERROR), strerror(errno));
+ return RC_FX;
+ } // endif
+@@ -3993,7 +3993,7 @@ bool BGVFAM::OpenTempFile(PGLOBAL g)
+ #else // UNIX
+ int oflag = (MaxBlk) ? O_WRONLY : O_WRONLY | O_TRUNC;
+
+- Tfile = open64(tempname, oflag, S_IWRITE);
++ Tfile = open(tempname, oflag, S_IWRITE);
+
+ if (Tfile == INVALID_HANDLE_VALUE) {
+ int rc = errno;
+@@ -4250,7 +4250,7 @@ void BGVFAM::Rewind(void)
+ #if defined(_WIN32) //OB
+ SetFilePointer(Hfile, 0, NULL, FILE_BEGIN);
+ #else // UNIX
+- lseek64(Hfile, 0, SEEK_SET);
++ lseek(Hfile, 0, SEEK_SET);
+ #endif // UNIX
+ #endif // 0
+ } // end of Rewind
+diff --git a/storage/connect/xindex.cpp b/storage/connect/xindex.cpp
+index 4bcbbfd4..1144f89a 100644
+--- a/storage/connect/xindex.cpp
++++ b/storage/connect/xindex.cpp
+@@ -2652,7 +2652,7 @@ bool XHUGE::Open(PGLOBAL g, char *filename, int id, MODE mode)
+ /*******************************************************************/
+ /* Position the cursor at end of file so ftell returns file size. */
+ /*******************************************************************/
+- if (!(NewOff.Val = (longlong)lseek64(Hfile, 0LL, SEEK_END))) {
++ if (!(NewOff.Val = (longlong)lseek(Hfile, 0LL, SEEK_END))) {
+ snprintf(g->Message, sizeof(g->Message), MSG(FUNC_ERRNO), errno, "Seek");
+ return true;
+ } // endif
+@@ -2681,7 +2681,7 @@ bool XHUGE::Open(PGLOBAL g, char *filename, int id, MODE mode)
+ htrc("noff[%d]=%lld\n", id, noff[id].Val);
+
+ // Position the cursor at the offset of this index
+- if (lseek64(Hfile, noff[id].Val, SEEK_SET) < 0) {
++ if (lseek(Hfile, noff[id].Val, SEEK_SET) < 0) {
+ snprintf(g->Message, sizeof(g->Message), "(XHUGE)lseek64: %s (%lld)", strerror(errno), noff[id].Val);
+ printf("%s\n", g->Message);
+ // snprintf(g->Message, sizeof(g->Message), MSG(FUNC_ERRNO), errno, "Hseek");
+@@ -2709,10 +2709,10 @@ bool XHUGE::Seek(PGLOBAL g, int low, int high, int origin)
+ } // endif
+
+ #else // UNIX
+- off64_t pos = (off64_t)low
+- + (off64_t)high * ((off64_t)0x100 * (off64_t)0x1000000);
++ off_t pos = (off_t)low
++ + (off_t)high * ((off_t)0x100 * (off_t)0x1000000);
+
+- if (lseek64(Hfile, pos, origin) < 0) {
++ if (lseek(Hfile, pos, origin) < 0) {
+ snprintf(g->Message, sizeof(g->Message), MSG(ERROR_IN_LSK), errno);
+
+ if (trace(1))
+@@ -2841,7 +2841,7 @@ void XHUGE::Close(char *fn, int id)
+ #else // !_WIN32
+ if (id >= 0 && fn) {
+ if (Hfile != INVALID_HANDLE_VALUE) {
+- if (lseek64(Hfile, id * sizeof(IOFF), SEEK_SET) >= 0) {
++ if (lseek(Hfile, id * sizeof(IOFF), SEEK_SET) >= 0) {
+ ssize_t nbw = write(Hfile, &NewOff, sizeof(IOFF));
+
+ if (nbw != (signed)sizeof(IOFF))
diff --git a/main/mariadb/mariadb.initd b/main/mariadb/mariadb.initd
index 0d914bde581..0d914bde581 100644..100755
--- a/main/mariadb/mariadb.initd
+++ b/main/mariadb/mariadb.initd
diff --git a/main/mariadb/mariadb.pre-install b/main/mariadb/mariadb.pre-install
index 2ab1374c764..5b2695f8078 100644
--- a/main/mariadb/mariadb.pre-install
+++ b/main/mariadb/mariadb.pre-install
@@ -1,6 +1,6 @@
#!/bin/sh
addgroup -S mysql 2>/dev/null
-adduser -S -D -h /var/lib/mysql -s /sbin/nologin -G mysql -g mysql mysql 2>/dev/null
+adduser -S -D -H -h /var/lib/mysql -s /sbin/nologin -G mysql -g mysql mysql 2>/dev/null
exit 0
diff --git a/main/mariadb/revert-c432c9ef.patch b/main/mariadb/revert-c432c9ef.patch
new file mode 100644
index 00000000000..d13fa9dbbc4
--- /dev/null
+++ b/main/mariadb/revert-c432c9ef.patch
@@ -0,0 +1,23 @@
+Date: Wed, 21 Feb 2024 20:34:12 -0800
+Subject: [PATCH] Revert compile_time_assert() changes from "MDEV-32862 MYSQL struct in C/C and server differs"
+
+This partially reverts commit c432c9ef19bf6ff40ab9551bcae202d7e1319878 which
+most likely caused the regression that broke builds on many 32-bit platforms.
+
+--- a/tests/mysql_client_fw.c
++++ b/tests/mysql_client_fw.c
+@@ -1430,14 +1430,6 @@ int main(int argc, char **argv)
+ tests_to_run[i]= NULL;
+ }
+
+-#ifdef _WIN32
+- /* must be the same in C/C and embedded, 1208 on 64bit, 968 on 32bit */
+- compile_time_assert(sizeof(MYSQL) == 60*sizeof(void*)+728);
+-#else
+- /* must be the same in C/C and embedded, 1272 on 64bit, 964 on 32bit */
+- compile_time_assert(sizeof(MYSQL) == 77*sizeof(void*)+656);
+-#endif
+-
+ if (mysql_server_init(embedded_server_arg_count,
+ embedded_server_args,
+ (char**) embedded_server_groups))
diff --git a/main/mawk/APKBUILD b/main/mawk/APKBUILD
index 457cd11585a..b992ca7e453 100644
--- a/main/mawk/APKBUILD
+++ b/main/mawk/APKBUILD
@@ -2,17 +2,19 @@
# Maintainer: Miguel Terron <miguel.a.terron@gmail.com>
pkgname=mawk
pkgver=1.3.4
-_pkgdate=20200120
-pkgrel=2
+_pkgdate=20240123
+pkgrel=9
pkgdesc="mawk is an interpreter for the AWK Programming Language"
url="https://invisible-island.net/mawk/"
arch="all"
license="GPL-2.0-only"
subpackages="$pkgname-doc"
-source="https://invisible-island.net/datafiles/release/mawk.tar.gz"
+source="https://invisible-island.net/archives/mawk/mawk-$pkgver-$_pkgdate.tgz"
builddir="$srcdir"/$pkgname-$pkgver-$_pkgdate
build() {
+ # implicit decls for srandom/environ
+ CFLAGS="$CFLAGS -D_GNU_SOURCE" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -31,4 +33,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="14d9a6642ce931bf6457d248fc2d6da4f0ea7541976ca282ea708b26df048f86fdf92c27f72d497501ccd43a244d1d1a606f1a2f266a7558306fea35dcc3041b mawk.tar.gz"
+sha512sums="
+f6d5da44280afeac4a9bb6d3788ed71ee816daaa5816f49b9d40add5292f3ae06e5af007a6c993d14405238cbb70ba4997fdd2fcd5901c9a1a4b61357045c4a6 mawk-1.3.4-20240123.tgz
+"
diff --git a/main/mbedtls/APKBUILD b/main/mbedtls/APKBUILD
index bc40caf0391..eb993bf3b11 100644
--- a/main/mbedtls/APKBUILD
+++ b/main/mbedtls/APKBUILD
@@ -2,20 +2,32 @@
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mbedtls
-pkgver=2.28.0
+pkgver=3.6.0 # long-time support branch
pkgrel=0
+_framework_commit=f1aa3f5c96da714f06dd4e23d84ba18e4f3cf359
pkgdesc="Light-weight cryptographic and SSL/TLS library"
-url="https://tls.mbed.org/"
+url="https://www.trustedfirmware.org/projects/mbed-tls/"
arch="all"
-license="Apache-2.0"
+license="Apache-2.0 OR GPL-2.0-or-later"
makedepends="cmake perl python3 samurai"
subpackages="$pkgname-static $pkgname-dev $pkgname-utils"
-source="$pkgname-$pkgver.tar.gz::https://github.com/ARMmbed/mbedtls/archive/v$pkgver.tar.gz"
+source="$pkgname-$pkgver.tar.gz::https://github.com/ARMmbed/mbedtls/archive/v$pkgver.tar.gz
+ $pkgname-framework-$_framework_commit.tar.gz::https://github.com/Mbed-TLS/mbedtls-framework/archive/$_framework_commit.tar.gz
+ "
# Track security issues
# https://tls.mbed.org/security
# secfixes:
+# 2.28.8-r0:
+# - CVE-2024-28960
+# 2.28.7-r0:
+# - CVE-2024-23170
+# - CVE-2024-23775
+# 2.28.5-r0:
+# - CVE-2023-43615
+# 2.28.1-r0:
+# - CVE-2022-35409
# 2.16.12-r0:
# - CVE-2021-44732
# 2.16.8-r0:
@@ -43,25 +55,29 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/ARMmbed/mbedtls/archive/v$pk
prepare() {
default_prepare
+ # TF-PSA-Crypto and Mbed TLS version-independent build and test framework
+ rmdir "$builddir"/framework
+ mv "$srcdir/$pkgname-framework-$_framework_commit" "$builddir"/framework
+
# Enable flags for non-embedded systems.
- sed -i \
- -e 's|//\(#define MBEDTLS_THREADING_C\)|\1|' \
- -e 's|//\(#define MBEDTLS_THREADING_PTHREAD\)|\1|' \
- "$builddir"/include/mbedtls/config.h
+ python3 scripts/config.py set MBEDTLS_THREADING_C
+ python3 scripts/config.py set MBEDTLS_THREADING_PTHREAD
}
build() {
cmake -B build -G Ninja \
- -DCMAKE_BUILD_TYPE="MinSizeRel" \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
-DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_VERBOSE_MAKEFILE=ON \
- -DUSE_SHARED_MBEDTLS_LIBRARY=ON
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DUSE_SHARED_MBEDTLS_LIBRARY=ON \
+ -DENABLE_TESTING="$(want_check && echo ON || echo OFF)"
cmake --build build
}
check() {
cd build
- CTEST_OUTPUT_ON_FAILURE=TRUE ctest
+ # tests break in parallel
+ CTEST_OUTPUT_ON_FAILURE=TRUE ctest -j1
}
package() {
@@ -84,5 +100,6 @@ static() {
}
sha512sums="
-907867edf532ba3b099f4fb7ce31f5773ceceb072a8d067b1d830e879d541f92f401d64f13bbe6b4eb0845e58bb765d7d28896be414bb0fc7ac5b3876066be5f mbedtls-2.28.0.tar.gz
+7e50cf2bb2c9abeb56f18a25bc126b96ac5e3329702cf5b2e266df6b649b9544ab5f2ac00bd57e06091e10cdcf907e600c14eb415942d028000d7b6f1c0cfa42 mbedtls-3.6.0.tar.gz
+9f415f96d6b6c6750dad900e6bc8d5f641e6c322d0cb19143218a4b4e7aee5fa6a7a15fe388b883f5d08b49f2e508c6c4838706133768aa668b972343e547c07 mbedtls-framework-f1aa3f5c96da714f06dd4e23d84ba18e4f3cf359.tar.gz
"
diff --git a/main/mc/APKBUILD b/main/mc/APKBUILD
index c93fd1b8391..d95c29d62cf 100644
--- a/main/mc/APKBUILD
+++ b/main/mc/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mc
-pkgver=4.8.28
+pkgver=4.8.31
pkgrel=0
pkgdesc="Filemanager/shell that emulates Norton Commander"
options="!check" # https://midnight-commander.org/ticket/3972#comment:2
@@ -11,10 +11,8 @@ license="GPL-3.0-or-later"
subpackages="$pkgname-doc $pkgname-lang"
makedepends="e2fsprogs-dev glib-dev libssh2-dev slang-dev perl gpm-dev"
source="https://www.midnight-commander.org/downloads/mc-$pkgver.tar.xz
- fix-cchar_t.patch
alpine_syntax.patch"
-
build() {
./configure \
--build=$CBUILD \
@@ -32,7 +30,6 @@ build() {
--with-screen=slang \
--with-subshell \
--with-gpm-mouse \
- --without-included-gettext \
--without-x
make
}
@@ -66,7 +63,6 @@ lang() {
}
sha512sums="
-ca3b3a57281e9387cb52bf1fcfc3f39a4d5f438aafc256dc492c192678824f67c983a852c759664efc5bc6d0de471c9b3929834f8301f6302ca1ebeee513fdfd mc-4.8.28.tar.xz
-7d4c52ada69f9d66fda92a07d04de2a3060a7e5eed4cac21dfdbbcac69ab28f2c6debbfbcc84f9e6fed8587b2a14a929b3655c291323fc4c9b9872ea44f84f32 fix-cchar_t.patch
+dc2272a0016ed782eafc78efda575b04d064ffa7984a146f3389dea81f4c7886647e7d1f097b547f7ae00190c10e35979a24400a6bb936c023f190a82934c12d mc-4.8.31.tar.xz
47aa001e8c20a24631617d665fd0d81b269ebad96696c4bd70c7040bbca713868e02fe53dfaee9a775a57f35a0e7c9e44ce299037379e249ad27354a78d905c3 alpine_syntax.patch
"
diff --git a/main/mc/fix-cchar_t.patch b/main/mc/fix-cchar_t.patch
deleted file mode 100644
index 7d7635d54f1..00000000000
--- a/main/mc/fix-cchar_t.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-Subject: fix usage of cchar_t
---- a/lib/tty/tty-ncurses.h 2021-01-23 02:50:51.458002969 +0200
-+++ b/lib/tty/tty-ncurses.h 2021-01-23 02:42:49.203049070 +0200
-@@ -3,6 +3,7 @@
- #define MC__TTY_NCURSES_H
-
- #ifdef USE_NCURSES
-+#define _XOPEN_SOURCE_EXTENDED
- #ifdef HAVE_NCURSES_CURSES_H
- #include <ncurses/curses.h>
- #elif defined (HAVE_NCURSES_NCURSES_H)
diff --git a/main/mdadm/APKBUILD b/main/mdadm/APKBUILD
index 3820324803e..78f24686e3d 100644
--- a/main/mdadm/APKBUILD
+++ b/main/mdadm/APKBUILD
@@ -3,19 +3,20 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mdadm
pkgver=4.2
-pkgrel=0
+pkgrel=4
pkgdesc="a tool for managing Linux Software RAID arrays"
-url="https://neil.brown.name/blog/mdadm"
+url="https://raid.wiki.kernel.org/index.php/A_guide_to_mdadm"
arch="all"
license="GPL-2.0-only"
depends="lsblk"
makedepends="groff linux-headers"
checkdepends="bash eudev e2fsprogs"
-subpackages="$pkgname-doc $pkgname-udev::noarch $pkgname-misc::noarch"
+subpackages="$pkgname-doc $pkgname-udev::noarch $pkgname-misc::noarch $pkgname-openrc"
source="https://www.kernel.org/pub/linux/utils/raid/mdadm/mdadm-$pkgver.tar.gz
$pkgname.initd
$pkgname.confd
$pkgname-raid.initd
+ lfs64.patch
no-werror.patch
mdadm-include-sysmacros.patch
fix-monitor-tv_sec.patch
@@ -69,6 +70,7 @@ sha512sums="
ca5f4e3ff5b284102b44e818d11622e1889066e3d18edce2d62c1a44ee8f4cfdc0979121c0462a916c638423c5ebc706c46aa996a7c4f68e030589adc62803f4 mdadm.initd
7d45bf489ef93a4f217ffcf72311eb661b8de7fbf63a5344697252c0d3a684b0123ff60efa5f218da4eb4cda7c88d91c2ef3625d5e44a588e3e1210cb60b0ab9 mdadm.confd
10d2456ca82c353c9b8540ca996de48575a60b83ede5b0bb7e960b4dd28aac2aa73eaeff4bdb99d03ce9630f986c2023b38fe332c5be74e0234985af6273a934 mdadm-raid.initd
+df8b5d78000c416652da07e46d94c5c3b8afa48619a360b0a33290420f718bf88069ff4cf62537cc510208fae95b5632a9f340fe97d1aa31661b031bd4dc5d71 lfs64.patch
d3e67b8d4f41996007a4b6dd28666e844925e071cd59530b9611590d536dd206375e372f56bca25cbdf45def41ffe199bd4bf64688436cdd5ac71a6ff699d95d no-werror.patch
e711c15fada5fc98984f43f90a8ab3b6a2a20e9b91c56b5672fdb0ea127b61934b2f0c6ca986bd91c96c56b66f46326cb616101a62e4bfebe3a2b0d33ed2465c mdadm-include-sysmacros.patch
d7aeac1ce8e1b17bfdc6178551aaee364b731003e03b1d0c713ee879ac3f82164dff70999ad56c0e91c4bf90c5bca7708bdbb5d2a57e032fd0291828a917b054 fix-monitor-tv_sec.patch
diff --git a/main/mdadm/lfs64.patch b/main/mdadm/lfs64.patch
new file mode 100644
index 00000000000..414f76d3e68
--- /dev/null
+++ b/main/mdadm/lfs64.patch
@@ -0,0 +1,641 @@
+needed since https://github.com/bminor/musl/commit/25e6fee27f4a293728dd15b659170e7b9c7db9bc
+--
+diff --git a/Grow.c b/Grow.c
+index 9c6fc95..bb21333 100644
+--- a/Grow.c
++++ b/Grow.c
+@@ -4260,10 +4260,10 @@ static int grow_backup(struct mdinfo *sra,
+ bsb.magic[15] = '2';
+ for (i = 0; i < dests; i++)
+ if (part)
+- lseek64(destfd[i], destoffsets[i] +
++ lseek(destfd[i], destoffsets[i] +
+ __le64_to_cpu(bsb.devstart2)*512, 0);
+ else
+- lseek64(destfd[i], destoffsets[i], 0);
++ lseek(destfd[i], destoffsets[i], 0);
+
+ rv = save_stripes(sources, offsets, disks, chunk, level, layout,
+ dests, destfd, offset * 512 * odata,
+@@ -4282,14 +4282,14 @@ static int grow_backup(struct mdinfo *sra,
+ ((char*)&bsb.sb_csum2)-((char*)&bsb));
+
+ rv = -1;
+- if ((unsigned long long)lseek64(destfd[i],
++ if ((unsigned long long)lseek(destfd[i],
+ destoffsets[i] - 4096, 0) !=
+ destoffsets[i] - 4096)
+ break;
+ if (write(destfd[i], &bsb, 512) != 512)
+ break;
+ if (destoffsets[i] > 4096) {
+- if ((unsigned long long)lseek64(destfd[i], destoffsets[i]+stripes*chunk*odata, 0) !=
++ if ((unsigned long long)lseek(destfd[i], destoffsets[i]+stripes*chunk*odata, 0) !=
+ destoffsets[i]+stripes*chunk*odata)
+ break;
+ if (write(destfd[i], &bsb, 512) != 512)
+@@ -4339,7 +4339,7 @@ static int forget_backup(int dests, int *destfd,
+ if (memcmp(bsb.magic, "md_backup_data-2", 16) == 0)
+ bsb.sb_csum2 = bsb_csum((char*)&bsb,
+ ((char*)&bsb.sb_csum2)-((char*)&bsb));
+- if ((unsigned long long)lseek64(destfd[i], destoffsets[i]-4096, 0) !=
++ if ((unsigned long long)lseek(destfd[i], destoffsets[i]-4096, 0) !=
+ destoffsets[i]-4096)
+ rv = -1;
+ if (rv == 0 && write(destfd[i], &bsb, 512) != 512)
+@@ -4367,7 +4367,7 @@ static void validate(int afd, int bfd, unsigned long long offset)
+ */
+ if (afd < 0)
+ return;
+- lseek64(bfd, offset - 4096, 0);
++ lseek(bfd, offset - 4096, 0);
+ if (read(bfd, &bsb2, 512) != 512)
+ fail("cannot read bsb");
+ if (bsb2.sb_csum != bsb_csum((char*)&bsb2,
+@@ -4398,12 +4398,12 @@ static void validate(int afd, int bfd, unsigned long long offset)
+ }
+ }
+
+- lseek64(bfd, offset, 0);
++ lseek(bfd, offset, 0);
+ if ((unsigned long long)read(bfd, bbuf, len) != len) {
+ //printf("len %llu\n", len);
+ fail("read first backup failed");
+ }
+- lseek64(afd, __le64_to_cpu(bsb2.arraystart)*512, 0);
++ lseek(afd, __le64_to_cpu(bsb2.arraystart)*512, 0);
+ if ((unsigned long long)read(afd, abuf, len) != len)
+ fail("read first from array failed");
+ if (memcmp(bbuf, abuf, len) != 0) {
+@@ -4431,10 +4431,10 @@ static void validate(int afd, int bfd, unsigned long long offset)
+ bbuf = xmalloc(abuflen);
+ }
+
+- lseek64(bfd, offset+__le64_to_cpu(bsb2.devstart2)*512, 0);
++ lseek(bfd, offset+__le64_to_cpu(bsb2.devstart2)*512, 0);
+ if ((unsigned long long)read(bfd, bbuf, len) != len)
+ fail("read second backup failed");
+- lseek64(afd, __le64_to_cpu(bsb2.arraystart2)*512, 0);
++ lseek(afd, __le64_to_cpu(bsb2.arraystart2)*512, 0);
+ if ((unsigned long long)read(afd, abuf, len) != len)
+ fail("read second from array failed");
+ if (memcmp(bbuf, abuf, len) != 0)
+@@ -4711,7 +4711,7 @@ int Grow_restart(struct supertype *st, struct mdinfo *info, int *fdlist,
+ st->ss->getinfo_super(st, &dinfo, NULL);
+ st->ss->free_super(st);
+
+- if (lseek64(fd,
++ if (lseek(fd,
+ (dinfo.data_offset + dinfo.component_size - 8) <<9,
+ 0) < 0) {
+ pr_err("Cannot seek on device %d\n", i);
+@@ -4811,7 +4811,7 @@ int Grow_restart(struct supertype *st, struct mdinfo *info, int *fdlist,
+ goto nonew; /* No new data here */
+ }
+ }
+- if (lseek64(fd, __le64_to_cpu(bsb.devstart)*512, 0)< 0) {
++ if (lseek(fd, __le64_to_cpu(bsb.devstart)*512, 0)< 0) {
+ second_fail:
+ if (verbose)
+ pr_err("Failed to verify secondary backup-metadata block on %s\n",
+@@ -4819,7 +4819,7 @@ int Grow_restart(struct supertype *st, struct mdinfo *info, int *fdlist,
+ continue; /* Cannot seek */
+ }
+ /* There should be a duplicate backup superblock 4k before here */
+- if (lseek64(fd, -4096, 1) < 0 ||
++ if (lseek(fd, -4096, 1) < 0 ||
+ read(fd, &bsb2, sizeof(bsb2)) != sizeof(bsb2))
+ goto second_fail; /* Cannot find leading superblock */
+ if (bsb.magic[15] == '1')
+diff --git a/raid6check.c b/raid6check.c
+index a8e6005..392cf29 100644
+--- a/raid6check.c
++++ b/raid6check.c
+@@ -206,7 +206,7 @@ int autorepair(int *disk, unsigned long long start, int chunk_size,
+ for(j = 0; j < (chunk_size >> CHECK_PAGE_BITS); j++) {
+ if(page_to_write[j] == 1) {
+ int slot = block_index_for_slot[disk[j]];
+- lseek64(source[slot], offsets[slot] + start * chunk_size + j * CHECK_PAGE_SIZE, SEEK_SET);
++ lseek(source[slot], offsets[slot] + start * chunk_size + j * CHECK_PAGE_SIZE, SEEK_SET);
+ write_res += write(source[slot],
+ blocks[disk[j]] + j * CHECK_PAGE_SIZE,
+ CHECK_PAGE_SIZE);
+@@ -279,9 +279,9 @@ int manual_repair(int chunk_size, int syndrome_disks,
+ }
+
+ int write_res1, write_res2;
+- off64_t seek_res;
++ off_t seek_res;
+
+- seek_res = lseek64(source[fd1],
++ seek_res = lseek(source[fd1],
+ offsets[fd1] + start * chunk_size, SEEK_SET);
+ if (seek_res < 0) {
+ fprintf(stderr, "lseek failed for failed_disk1\n");
+@@ -289,7 +289,7 @@ int manual_repair(int chunk_size, int syndrome_disks,
+ }
+ write_res1 = write(source[fd1], blocks[failed_slot1], chunk_size);
+
+- seek_res = lseek64(source[fd2],
++ seek_res = lseek(source[fd2],
+ offsets[fd2] + start * chunk_size, SEEK_SET);
+ if (seek_res < 0) {
+ fprintf(stderr, "lseek failed for failed_disk2\n");
+@@ -374,7 +374,7 @@ int check_stripes(struct mdinfo *info, int *source, unsigned long long *offsets,
+ goto exitCheck;
+ }
+ for (i = 0 ; i < raid_disks ; i++) {
+- off64_t seek_res = lseek64(source[i], offsets[i] + start * chunk_size,
++ off_t seek_res = lseek(source[i], offsets[i] + start * chunk_size,
+ SEEK_SET);
+ if (seek_res < 0) {
+ fprintf(stderr, "lseek to source %d failed\n", i);
+diff --git a/restripe.c b/restripe.c
+index a7a7229..eec3619 100644
+--- a/restripe.c
++++ b/restripe.c
+@@ -581,7 +581,7 @@ int save_stripes(int *source, unsigned long long *offsets,
+ raid_disks, level, layout);
+ if (dnum < 0) abort();
+ if (source[dnum] < 0 ||
+- lseek64(source[dnum],
++ lseek(source[dnum],
+ offsets[dnum] + offset, 0) < 0 ||
+ read(source[dnum], buf+disk * chunk_size,
+ chunk_size) != chunk_size) {
+@@ -754,8 +754,8 @@ int restore_stripes(int *dest, unsigned long long *offsets,
+ raid_disks, level, layout);
+ if (src_buf == NULL) {
+ /* read from file */
+- if (lseek64(source, read_offset, 0) !=
+- (off64_t)read_offset) {
++ if (lseek(source, read_offset, 0) !=
++ (off_t)read_offset) {
+ rv = -1;
+ goto abort;
+ }
+@@ -816,7 +816,7 @@ int restore_stripes(int *dest, unsigned long long *offsets,
+ }
+ for (i=0; i < raid_disks ; i++)
+ if (dest[i] >= 0) {
+- if (lseek64(dest[i],
++ if (lseek(dest[i],
+ offsets[i]+offset, 0) < 0) {
+ rv = -1;
+ goto abort;
+@@ -866,7 +866,7 @@ int test_stripes(int *source, unsigned long long *offsets,
+ int disk;
+
+ for (i = 0 ; i < raid_disks ; i++) {
+- if ((lseek64(source[i], offsets[i]+start, 0) < 0) ||
++ if ((lseek(source[i], offsets[i]+start, 0) < 0) ||
+ (read(source[i], stripes[i], chunk_size) !=
+ chunk_size)) {
+ free(q);
+diff --git a/super-ddf.c b/super-ddf.c
+index 3f304cd..7b10568 100644
+--- a/super-ddf.c
++++ b/super-ddf.c
+@@ -816,7 +816,7 @@ static int load_ddf_header(int fd, unsigned long long lba,
+ if (lba >= size-1)
+ return 0;
+
+- if (lseek64(fd, lba<<9, 0) < 0)
++ if (lseek(fd, lba<<9, 0) < 0)
+ return 0;
+
+ if (read(fd, hdr, 512) != 512)
+@@ -870,7 +870,7 @@ static void *load_section(int fd, struct ddf_super *super, void *buf,
+ else
+ offset += be64_to_cpu(super->active->secondary_lba);
+
+- if ((unsigned long long)lseek64(fd, offset<<9, 0) != (offset<<9)) {
++ if ((unsigned long long)lseek(fd, offset<<9, 0) != (offset<<9)) {
+ if (dofree)
+ free(buf);
+ return NULL;
+@@ -889,7 +889,7 @@ static int load_ddf_headers(int fd, struct ddf_super *super, char *devname)
+
+ get_dev_size(fd, NULL, &dsize);
+
+- if (lseek64(fd, dsize-512, 0) < 0) {
++ if (lseek(fd, dsize-512, 0) < 0) {
+ if (devname)
+ pr_err("Cannot seek to anchor block on %s: %s\n",
+ devname, strerror(errno));
+@@ -1691,7 +1691,7 @@ static int copy_metadata_ddf(struct supertype *st, int from, int to)
+ if (!get_dev_size(from, NULL, &dsize))
+ goto err;
+
+- if (lseek64(from, dsize-512, 0) < 0)
++ if (lseek(from, dsize-512, 0) < 0)
+ goto err;
+ if (read(from, buf, 512) != 512)
+ goto err;
+@@ -1710,8 +1710,8 @@ static int copy_metadata_ddf(struct supertype *st, int from, int to)
+
+ bytes = dsize - offset;
+
+- if (lseek64(from, offset, 0) < 0 ||
+- lseek64(to, offset, 0) < 0)
++ if (lseek(from, offset, 0) < 0 ||
++ lseek(to, offset, 0) < 0)
+ goto err;
+ while (written < bytes) {
+ int n = bytes - written;
+@@ -3037,7 +3037,7 @@ static int __write_ddf_structure(struct dl *d, struct ddf_super *ddf, __u8 type)
+ header->openflag = 1;
+ header->crc = calc_crc(header, 512);
+
+- lseek64(fd, sector<<9, 0);
++ lseek(fd, sector<<9, 0);
+ if (write(fd, header, 512) < 0)
+ goto out;
+
+@@ -3101,7 +3101,7 @@ out:
+ header->openflag = 0;
+ header->crc = calc_crc(header, 512);
+
+- lseek64(fd, sector<<9, 0);
++ lseek(fd, sector<<9, 0);
+ if (write(fd, header, 512) < 0)
+ ret = 0;
+
+@@ -3154,7 +3154,7 @@ static int _write_super_to_disk(struct ddf_super *ddf, struct dl *d)
+ if (!__write_ddf_structure(d, ddf, DDF_HEADER_SECONDARY))
+ return 0;
+
+- lseek64(fd, (size-1)*512, SEEK_SET);
++ lseek(fd, (size-1)*512, SEEK_SET);
+ if (write(fd, &ddf->anchor, 512) < 0)
+ return 0;
+
+@@ -3909,7 +3909,7 @@ static int store_super_ddf(struct supertype *st, int fd)
+ return 1;
+ memset(buf, 0, 512);
+
+- lseek64(fd, dsize-512, 0);
++ lseek(fd, dsize-512, 0);
+ rc = write(fd, buf, 512);
+ free(buf);
+ if (rc < 0)
+diff --git a/super-intel.c b/super-intel.c
+index d5fad10..236e2ee 100644
+--- a/super-intel.c
++++ b/super-intel.c
+@@ -3092,7 +3092,7 @@ static int read_imsm_migr_rec(int fd, struct intel_super *super)
+ unsigned long long dsize;
+
+ get_dev_size(fd, NULL, &dsize);
+- if (lseek64(fd, dsize - (sector_size*MIGR_REC_SECTOR_POSITION),
++ if (lseek(fd, dsize - (sector_size*MIGR_REC_SECTOR_POSITION),
+ SEEK_SET) < 0) {
+ pr_err("Cannot seek to anchor block: %s\n",
+ strerror(errno));
+@@ -3283,7 +3283,7 @@ static int write_imsm_migr_rec(struct supertype *st)
+ continue;
+
+ get_dev_size(sd->fd, NULL, &dsize);
+- if (lseek64(sd->fd, dsize - (MIGR_REC_SECTOR_POSITION *
++ if (lseek(sd->fd, dsize - (MIGR_REC_SECTOR_POSITION *
+ sector_size),
+ SEEK_SET) < 0) {
+ pr_err("Cannot seek to anchor block: %s\n",
+@@ -4404,7 +4404,7 @@ static int load_imsm_mpb(int fd, struct intel_super *super, char *devname)
+ return 1;
+ }
+
+- if (lseek64(fd, dsize - (sector_size * 2), SEEK_SET) < 0) {
++ if (lseek(fd, dsize - (sector_size * 2), SEEK_SET) < 0) {
+ if (devname)
+ pr_err("Cannot seek to anchor block on %s: %s\n",
+ devname, strerror(errno));
+@@ -4472,7 +4472,7 @@ static int load_imsm_mpb(int fd, struct intel_super *super, char *devname)
+ }
+
+ /* read the extended mpb */
+- if (lseek64(fd, dsize - (sector_size * (2 + sectors)), SEEK_SET) < 0) {
++ if (lseek(fd, dsize - (sector_size * (2 + sectors)), SEEK_SET) < 0) {
+ if (devname)
+ pr_err("Cannot seek to extended mpb on %s: %s\n",
+ devname, strerror(errno));
+@@ -5994,7 +5994,7 @@ static int add_to_super_imsm(struct supertype *st, mdu_disk_info_t *dk,
+
+ /* clear migr_rec when adding disk to container */
+ memset(super->migr_rec_buf, 0, MIGR_REC_BUF_SECTORS*MAX_SECTOR_SIZE);
+- if (lseek64(fd, size - MIGR_REC_SECTOR_POSITION*member_sector_size,
++ if (lseek(fd, size - MIGR_REC_SECTOR_POSITION*member_sector_size,
+ SEEK_SET) >= 0) {
+ if ((unsigned int)write(fd, super->migr_rec_buf,
+ MIGR_REC_BUF_SECTORS*member_sector_size) !=
+@@ -6219,7 +6219,7 @@ static int write_super_imsm(struct supertype *st, int doclose)
+ unsigned long long dsize;
+
+ get_dev_size(d->fd, NULL, &dsize);
+- if (lseek64(d->fd, dsize - sector_size,
++ if (lseek(d->fd, dsize - sector_size,
+ SEEK_SET) >= 0) {
+ if ((unsigned int)write(d->fd,
+ super->migr_rec_buf,
+@@ -6302,7 +6302,7 @@ static int write_ppl_header(unsigned long long ppl_sector, int fd, void *buf)
+
+ ppl_hdr->checksum = __cpu_to_le32(~crc32c_le(~0, buf, PPL_HEADER_SIZE));
+
+- if (lseek64(fd, ppl_sector * 512, SEEK_SET) < 0) {
++ if (lseek(fd, ppl_sector * 512, SEEK_SET) < 0) {
+ ret = -errno;
+ perror("Failed to seek to PPL header location");
+ return ret;
+@@ -6396,7 +6396,7 @@ static int validate_ppl_imsm(struct supertype *st, struct mdinfo *info,
+
+ dprintf("Checking potential PPL at offset: %llu\n", ppl_offset);
+
+- if (lseek64(d->fd, info->ppl_sector * 512 + ppl_offset,
++ if (lseek(d->fd, info->ppl_sector * 512 + ppl_offset,
+ SEEK_SET) < 0) {
+ perror("Failed to seek to PPL header location");
+ ret = -1;
+@@ -8858,7 +8858,7 @@ static int store_imsm_mpb(int fd, struct imsm_super *mpb)
+ sectors = mpb_sectors(mpb, sector_size) - 1;
+
+ /* write the extended mpb to the sectors preceeding the anchor */
+- if (lseek64(fd, dsize - (sector_size * (2 + sectors)),
++ if (lseek(fd, dsize - (sector_size * (2 + sectors)),
+ SEEK_SET) < 0)
+ return 1;
+
+@@ -8868,7 +8868,7 @@ static int store_imsm_mpb(int fd, struct imsm_super *mpb)
+ }
+
+ /* first block is stored on second to last sector of the disk */
+- if (lseek64(fd, dsize - (sector_size * 2), SEEK_SET) < 0)
++ if (lseek(fd, dsize - (sector_size * 2), SEEK_SET) < 0)
+ return 1;
+
+ if ((unsigned int)write(fd, buf, sector_size) != sector_size)
+@@ -11058,7 +11058,7 @@ int recover_backup_imsm(struct supertype *st, struct mdinfo *info)
+ skipped_disks++;
+ continue;
+ }
+- if (lseek64(dl_disk->fd, read_offset, SEEK_SET) < 0) {
++ if (lseek(dl_disk->fd, read_offset, SEEK_SET) < 0) {
+ pr_err("Cannot seek to block: %s\n",
+ strerror(errno));
+ skipped_disks++;
+@@ -11070,7 +11070,7 @@ int recover_backup_imsm(struct supertype *st, struct mdinfo *info)
+ skipped_disks++;
+ continue;
+ }
+- if (lseek64(dl_disk->fd, write_offset, SEEK_SET) < 0) {
++ if (lseek(dl_disk->fd, write_offset, SEEK_SET) < 0) {
+ pr_err("Cannot seek to block: %s\n",
+ strerror(errno));
+ skipped_disks++;
+@@ -12320,7 +12320,7 @@ static int imsm_manage_reshape(
+ unsigned long long dsize;
+
+ get_dev_size(d->fd, NULL, &dsize);
+- if (lseek64(d->fd, dsize - MIGR_REC_SECTOR_POSITION*sector_size,
++ if (lseek(d->fd, dsize - MIGR_REC_SECTOR_POSITION*sector_size,
+ SEEK_SET) >= 0) {
+ if ((unsigned int)write(d->fd, super->migr_rec_buf,
+ MIGR_REC_BUF_SECTORS*sector_size) !=
+@@ -12476,7 +12476,7 @@ static int validate_internal_bitmap_for_drive(struct supertype *st,
+ }
+ }
+
+- if (lseek64(fd, offset * super->sector_size, SEEK_SET) < 0)
++ if (lseek(fd, offset * super->sector_size, SEEK_SET) < 0)
+ goto abort;
+ if (read(fd, read_buf, IMSM_BITMAP_HEADER_SIZE) !=
+ IMSM_BITMAP_HEADER_SIZE)
+@@ -12605,7 +12605,7 @@ static int locate_bitmap_imsm(struct supertype *st, int fd, int node_num)
+ offset = get_bitmap_header_sector(super, super->current_vol);
+ dprintf("bitmap header offset is %llu\n", offset);
+
+- lseek64(fd, offset << 9, 0);
++ lseek(fd, offset << 9, 0);
+
+ return 0;
+ }
+@@ -12659,7 +12659,7 @@ static int write_init_bitmap_imsm(struct supertype *st, int fd,
+ return -1;
+ memset(buf, 0xFF, MAX_SECTOR_SIZE);
+ offset = get_bitmap_sector(super, vol_idx);
+- lseek64(fd, offset << 9, 0);
++ lseek(fd, offset << 9, 0);
+ while (written < IMSM_BITMAP_AREA_SIZE) {
+ to_write = IMSM_BITMAP_AREA_SIZE - written;
+ if (to_write > MAX_SECTOR_SIZE)
+diff --git a/super0.c b/super0.c
+index b79b97a..74bb418 100644
+--- a/super0.c
++++ b/super0.c
+@@ -327,12 +327,12 @@ static int copy_metadata0(struct supertype *st, int from, int to)
+
+ offset *= 512;
+
+- if (lseek64(from, offset, 0) < 0LL)
++ if (lseek(from, offset, 0) < 0LL)
+ goto err;
+ if (read(from, buf, bufsize) != bufsize)
+ goto err;
+
+- if (lseek64(to, offset, 0) < 0LL)
++ if (lseek(to, offset, 0) < 0LL)
+ goto err;
+ super = buf;
+ if (super->md_magic != MD_SB_MAGIC ||
+@@ -862,7 +862,7 @@ static int store_super0(struct supertype *st, int fd)
+ offset = dsize/512 - 8*2;
+ offset &= ~(4*2-1);
+ offset *= 512;
+- if (lseek64(fd, offset, 0)< 0LL)
++ if (lseek(fd, offset, 0)< 0LL)
+ ret = 3;
+ else if (write(fd, st->other, 1024) != 1024)
+ ret = 4;
+@@ -877,7 +877,7 @@ static int store_super0(struct supertype *st, int fd)
+
+ offset *= 512;
+
+- if (lseek64(fd, offset, 0)< 0LL)
++ if (lseek(fd, offset, 0)< 0LL)
+ return 3;
+
+ if (write(fd, super, sizeof(*super)) != sizeof(*super))
+@@ -1004,7 +1004,7 @@ static int load_super0(struct supertype *st, int fd, char *devname)
+
+ offset *= 512;
+
+- if (lseek64(fd, offset, 0)< 0LL) {
++ if (lseek(fd, offset, 0)< 0LL) {
+ if (devname)
+ pr_err("Cannot seek to superblock on %s: %s\n",
+ devname, strerror(errno));
+@@ -1189,7 +1189,7 @@ static int locate_bitmap0(struct supertype *st, int fd, int node_num)
+
+ offset += MD_SB_BYTES;
+
+- lseek64(fd, offset, 0);
++ lseek(fd, offset, 0);
+ return 0;
+ }
+
+@@ -1214,7 +1214,7 @@ static int write_bitmap0(struct supertype *st, int fd, enum bitmap_update update
+
+ offset *= 512;
+
+- if (lseek64(fd, offset + 4096, 0)< 0LL)
++ if (lseek(fd, offset + 4096, 0)< 0LL)
+ return 3;
+
+ if (posix_memalign(&buf, 4096, 4096))
+diff --git a/super1.c b/super1.c
+index a12a5bc..4e098b0 100644
+--- a/super1.c
++++ b/super1.c
+@@ -761,7 +761,7 @@ static int copy_metadata1(struct supertype *st, int from, int to)
+ goto err;
+ }
+
+- if (lseek64(from, sb_offset << 9, 0) < 0LL)
++ if (lseek(from, sb_offset << 9, 0) < 0LL)
+ goto err;
+ if (read(from, buf, bufsize) != bufsize)
+ goto err;
+@@ -775,7 +775,7 @@ static int copy_metadata1(struct supertype *st, int from, int to)
+ calc_sb_1_csum(sb) != super.sb_csum)
+ goto err;
+
+- if (lseek64(to, sb_offset << 9, 0) < 0LL)
++ if (lseek(to, sb_offset << 9, 0) < 0LL)
+ goto err;
+ if (write(to, buf, bufsize) != bufsize)
+ goto err;
+@@ -791,9 +791,9 @@ static int copy_metadata1(struct supertype *st, int from, int to)
+
+ bitmap_offset += (int32_t)__le32_to_cpu(super.bitmap_offset);
+
+- if (lseek64(from, bitmap_offset<<9, 0) < 0)
++ if (lseek(from, bitmap_offset<<9, 0) < 0)
+ goto err;
+- if (lseek64(to, bitmap_offset<<9, 0) < 0)
++ if (lseek(to, bitmap_offset<<9, 0) < 0)
+ goto err;
+
+ for (written = 0; written < bytes ; ) {
+@@ -832,9 +832,9 @@ static int copy_metadata1(struct supertype *st, int from, int to)
+
+ bb_offset += (int32_t)__le32_to_cpu(super.bblog_offset);
+
+- if (lseek64(from, bb_offset<<9, 0) < 0)
++ if (lseek(from, bb_offset<<9, 0) < 0)
+ goto err;
+- if (lseek64(to, bb_offset<<9, 0) < 0)
++ if (lseek(to, bb_offset<<9, 0) < 0)
+ goto err;
+
+ for (written = 0; written < bytes ; ) {
+@@ -940,7 +940,7 @@ static int examine_badblocks_super1(struct supertype *st, int fd, char *devname)
+ offset = __le64_to_cpu(sb->super_offset) +
+ (int)__le32_to_cpu(sb->bblog_offset);
+ offset <<= 9;
+- if (lseek64(fd, offset, 0) < 0) {
++ if (lseek(fd, offset, 0) < 0) {
+ pr_err("Cannot seek to bad-blocks list\n");
+ return 1;
+ }
+@@ -1797,7 +1797,7 @@ static int store_super1(struct supertype *st, int fd)
+ abort();
+ }
+
+- if (lseek64(fd, sb_offset << 9, 0)< 0LL)
++ if (lseek(fd, sb_offset << 9, 0)< 0LL)
+ return 3;
+
+ sbsize = ROUND_UP(sizeof(*sb) + 2 * __le32_to_cpu(sb->max_dev), 512);
+@@ -1866,7 +1866,7 @@ static int write_init_ppl1(struct supertype *st, struct mdinfo *info, int fd)
+ sizeof(sb->set_uuid)));
+ ppl_hdr->checksum = __cpu_to_le32(~crc32c_le(~0, buf, PPL_HEADER_SIZE));
+
+- if (lseek64(fd, info->ppl_sector * 512, SEEK_SET) < 0) {
++ if (lseek(fd, info->ppl_sector * 512, SEEK_SET) < 0) {
+ ret = errno;
+ perror("Failed to seek to PPL header location");
+ }
+@@ -1911,7 +1911,7 @@ static int write_empty_r5l_meta_block(struct supertype *st, int fd)
+ crc = crc32c_le(crc, (void *)mb, META_BLOCK_SIZE);
+ mb->checksum = crc;
+
+- if (lseek64(fd, __le64_to_cpu(sb->data_offset) * 512, 0) < 0LL) {
++ if (lseek(fd, __le64_to_cpu(sb->data_offset) * 512, 0) < 0LL) {
+ pr_err("cannot seek to offset of the meta block\n");
+ goto fail_to_write;
+ }
+@@ -2268,7 +2268,7 @@ static int load_super1(struct supertype *st, int fd, char *devname)
+ return -EINVAL;
+ }
+
+- if (lseek64(fd, sb_offset << 9, 0)< 0LL) {
++ if (lseek(fd, sb_offset << 9, 0)< 0LL) {
+ if (devname)
+ pr_err("Cannot seek to superblock on %s: %s\n",
+ devname, strerror(errno));
+@@ -2639,7 +2639,7 @@ static int locate_bitmap1(struct supertype *st, int fd, int node_num)
+ }
+ if (mustfree)
+ free(sb);
+- lseek64(fd, offset<<9, 0);
++ lseek(fd, offset<<9, 0);
+ return ret;
+ }
+
+diff --git a/swap_super.c b/swap_super.c
+index b6db574..9c39aff 100644
+--- a/swap_super.c
++++ b/swap_super.c
+@@ -16,7 +16,7 @@
+
+ #define MD_NEW_SIZE_SECTORS(x) ((x & ~(MD_RESERVED_SECTORS - 1)) - MD_RESERVED_SECTORS)
+
+-extern long long lseek64(int, long long, int);
++extern long long lseek(int, long long, int);
+
+ int main(int argc, char *argv[])
+ {
+@@ -38,8 +38,8 @@ int main(int argc, char *argv[])
+ exit(1);
+ }
+ offset = MD_NEW_SIZE_SECTORS(size) * 512LL;
+- if (lseek64(fd, offset, 0) < 0LL) {
+- perror("lseek64");
++ if (lseek(fd, offset, 0) < 0LL) {
++ perror("lseek");
+ exit(1);
+ }
+ if (read(fd, super, 4096) != 4096) {
+@@ -68,8 +68,8 @@ int main(int argc, char *argv[])
+ super[32*4+10*4 +i] = t;
+ }
+
+- if (lseek64(fd, offset, 0) < 0LL) {
+- perror("lseek64");
++ if (lseek(fd, offset, 0) < 0LL) {
++ perror("lseek");
+ exit(1);
+ }
+ if (write(fd, super, 4096) != 4096) {
+diff --git a/util.c b/util.c
+index 3d05d07..6109fd4 100644
+--- a/util.c
++++ b/util.c
+@@ -2344,7 +2344,7 @@ int zero_disk_range(int fd, unsigned long long sector, size_t count)
+ return -1;
+ }
+
+- if (lseek64(fd, sector * 512, SEEK_SET) < 0) {
++ if (lseek(fd, sector * 512, SEEK_SET) < 0) {
+ ret = -errno;
+ pr_err("Failed to seek offset for zeroing\n");
+ goto out;
diff --git a/main/mdev-conf/APKBUILD b/main/mdev-conf/APKBUILD
new file mode 100644
index 00000000000..ef45021a0ee
--- /dev/null
+++ b/main/mdev-conf/APKBUILD
@@ -0,0 +1,28 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=mdev-conf
+pkgver=4.6
+pkgrel=0
+pkgdesc="Configuration files for mdev and mdevd"
+url="https://gitlab.alpinelinux.org/alpine/mdev-conf"
+arch="noarch"
+license="MIT"
+checkdepends="kyua"
+replaces="busybox-initscripts"
+source="https://gitlab.alpinelinux.org/alpine/mdev-conf/-/archive/$pkgver/mdev-conf-$pkgver.tar.gz
+ "
+
+build() {
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+51334962944701e95d3e6da10aa9f9806c89fd10caaed906336f54e8dfa75275c86ed27c6dacac082978a43b3251cfca28e2fd6ec417e628f58c02d84c977d0e mdev-conf-4.6.tar.gz
+"
diff --git a/main/mdevd/APKBUILD b/main/mdevd/APKBUILD
index 7cbec825a2c..6509c6e0992 100644
--- a/main/mdevd/APKBUILD
+++ b/main/mdevd/APKBUILD
@@ -1,19 +1,19 @@
-# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
# Contributor: Laurent Bercot <ska-devel@skarnet.org>
+# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
pkgname=mdevd
-pkgver=0.1.5.2
+pkgver=0.1.6.3
pkgrel=0
pkgdesc="A netlink-listening device manager using mdev's configuration files"
-url="https://skarnet.org/software/mdevd/"
+url=https://skarnet.org/software/mdevd/
arch="all"
license="ISC"
options="!check" # no tests provided
depends_openrc="mdevd mdev-conf"
-makedepends="linux-headers skalibs-dev>=2.12"
+makedepends="linux-headers skalibs-dev>=2.14"
subpackages="$pkgname-doc $pkgname-openrc"
source="https://skarnet.org/software/mdevd/mdevd-$pkgver.tar.gz
$pkgname.initd
- mdevd-init.initd"
+ mdevd-init.initd"
build() {
./configure \
@@ -31,8 +31,14 @@ package() {
install -m 755 "$srcdir"/mdevd-init.initd "$pkgdir"/etc/init.d/mdevd-init
}
+openrc() {
+ provides="dev-openrc"
+ provider_priority=20
+ default_openrc
+}
+
sha512sums="
-50d0b517255bc8acc25b226822186a6315569e7691511bca44a274e18bd443b9ff70e99884ffb9467c9ec85af2a1bd5256b05c92905eeca67ee14b98cd0b540d mdevd-0.1.5.2.tar.gz
+2962be689858117960aa5b332bbc7ca31c2d6592bae1c10acb35a7d66e4bf093cc70d2966649b742ce10ab3ac252b49a4b86b2c548355544aae65ca6214cdaf1 mdevd-0.1.6.3.tar.gz
3d826495788b1530548e090675f91fe4828f78a95b3b24cb4c73b92f5d5c16b103e6c25a2591d2d0bd17da2d16fa59d1214e70d936930f25cd9872dfd202585b mdevd.initd
-d713aaf38c3507a0c3080df6e4990c4f9781a20141aa89a7116b817154c0a34e74fd4d2d9ee00467d4cbcd89d178c99ae389a9d34ad0fb956a173b89123d48ff mdevd-init.initd
+a1e4734b1ad1a508da6c035aa9523a465cfd44489cceb7552f3b6e94ca8b8fb39e6baa3b230388ff9e89c1edbdcac5682f4c636b9fe52d94a92ac98f55bdd972 mdevd-init.initd
"
diff --git a/main/mdevd/mdevd-init.initd b/main/mdevd/mdevd-init.initd
index 8c61b63ad10..daaf82321de 100644
--- a/main/mdevd/mdevd-init.initd
+++ b/main/mdevd/mdevd-init.initd
@@ -12,6 +12,6 @@ depend() {
start() {
ebegin "Scanning hardware for mdevd"
- mdevd-coldplug
+ mdevd-coldplug -O4
eend $?
}
diff --git a/main/memcached/APKBUILD b/main/memcached/APKBUILD
index 9cbd55998d8..0cad10ec0ce 100644
--- a/main/memcached/APKBUILD
+++ b/main/memcached/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Jeff Bilyk <jbilyk@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=memcached
-pkgver=1.6.15
+pkgver=1.6.26
pkgrel=0
pkgdesc="Distributed memory object caching system"
url="https://memcached.org/"
@@ -17,7 +17,12 @@ source="https://www.memcached.org/files/memcached-$pkgver.tar.gz
fix-bsd-headers.patch
"
+# secfixes:
+# 0:
+# - CVE-2022-26635
+
build() {
+ CFLAGS="$CFLAGS -flto=auto -O2" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -41,7 +46,7 @@ package() {
}
sha512sums="
-00ee15eb7932420a25f3ce973bc7fcc5ba77a514091883f8b4e58ea861073caa91c676c0020f03c768077e20c76f34bca96616be104af3fbc8e7e78303958f3d memcached-1.6.15.tar.gz
+7bd0d0dc0d228cde2fc3841c8973a2dde86bd50a4819f9737a22e12435f61d7459655029da390b63b8e6c3ca555b92a9c4c125a7c0bef5e6b051216414f1d49e memcached-1.6.26.tar.gz
31bd788433b8021ed332f86d291e7f03222ae234520e52ba673b581d5da2adf5656e8f73e8b985df73258dea9b2a1b8ef36195163fe47a92fda59825deedfed4 memcached.confd
11566ce544c3feedbbcca7f87cf21c9d7f7e47c8a0ebdbc0e833ac18a858211c5b00d4128457f957401f6f20453f0cbe902570488133a503c79ee01c102a7c18 memcached.initd
5b1ea6b0be30ca82b914532f698eea9c05eded06b45385b0fc565ee1c241836df36d421e0b86f8fe15876519d5d2e9661e30f8af0d1485b71be3f0896aedf9dd fix-bsd-headers.patch
diff --git a/main/mesa/0001-radeonsi-On-Aarch64-force-persistent-buffers-to-GTT.patch b/main/mesa/0001-radeonsi-On-Aarch64-force-persistent-buffers-to-GTT.patch
deleted file mode 100644
index ea855f67f9c..00000000000
--- a/main/mesa/0001-radeonsi-On-Aarch64-force-persistent-buffers-to-GTT.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From d72aa8ae74ffb7329003f9f23ffa05833af951ab Mon Sep 17 00:00:00 2001
-From: Jon Nettleton <jon@solid-run.com>
-Date: Fri, 14 Aug 2020 13:36:08 +0200
-Subject: [PATCH] radeonsi: On Aarch64 force persistent buffers to GTT
-
-This fixes a glamore corruption issue on the HoneyComb and by
-internet reports should also fix problems seen on Huaweii
-Kunpeng hardware.
-
-The root cause of the corruption needs to be worked out, but
-this patch also adds a noticable performance improvement. The
-aquarium webgl demo under chromium increases from 39-49 FPS
-when 5000 fish being rendered is selected. Glmark scores also
-improve by ~200 with no specific tests showing any regression.
-
-Signed-off-by: Jon Nettleton <jon@solid-run.com>
----
- src/gallium/drivers/radeonsi/si_buffer.c | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/src/gallium/drivers/radeonsi/si_buffer.c b/src/gallium/drivers/radeonsi/si_buffer.c
-index 6b58aebee2d..c9e983367a0 100644
---- a/src/gallium/drivers/radeonsi/si_buffer.c
-+++ b/src/gallium/drivers/radeonsi/si_buffer.c
-@@ -151,6 +151,11 @@ void si_init_resource_fields(struct si_screen *sscreen, struct si_resource *res,
- */
- if (!sscreen->info.kernel_flushes_hdp_before_ib || !sscreen->info.is_amdgpu)
- res->domains = RADEON_DOMAIN_GTT;
-+
-+#if defined(PIPE_ARCH_AARCH64)
-+ if (size <= 1024 * 512)
-+ res->domains = RADEON_DOMAIN_GTT;
-+#endif
- }
-
- /* Tiled textures are unmappable. Always put them in VRAM. */
---
-2.26.2
diff --git a/main/mesa/APKBUILD b/main/mesa/APKBUILD
index 1c90e4dd48b..44ab597f5ea 100644
--- a/main/mesa/APKBUILD
+++ b/main/mesa/APKBUILD
@@ -1,26 +1,30 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mesa
-pkgver=21.3.9
-pkgrel=2
+pkgver=24.0.5
+pkgrel=0
pkgdesc="Mesa DRI OpenGL library"
url="https://www.mesa3d.org"
arch="all"
-license="MIT SGI-B-2.0 BSL-1.0"
+license="MIT AND SGI-B-2.0 AND BSL-1.0"
subpackages="
$pkgname-dbg
$pkgname-dev
- $pkgname-dri-classic:_dri
- $pkgname-dri-gallium:_dri
+ $pkgname-dri-gallium:_gallium
$pkgname-va-gallium:_va
$pkgname-vdpau-gallium:_vdpau
- $pkgname-glapi $pkgname-egl $pkgname-gl $pkgname-gles
- $pkgname-xatracker $pkgname-osmesa $pkgname-gbm
+ $pkgname-glapi
+ $pkgname-egl
+ $pkgname-gl
+ $pkgname-gles
+ $pkgname-xatracker
+ $pkgname-osmesa
+ $pkgname-gbm
$pkgname-vulkan-ati:_vulkan
- $pkgname-dri-ati:_dri_deprecated
- $pkgname-dri-nouveau:_dri_deprecated
+ $pkgname-vulkan-swrast:_vulkan
$pkgname-vulkan-layers:_vulkan_layers
+ $pkgname-libd3dadapter9
"
-_llvmver=14
+_llvmver=17
depends_dev="
libdrm-dev
libxext-dev
@@ -45,12 +49,13 @@ makedepends="
libx11-dev
libxml2-dev
libxrandr-dev
- libxvmc-dev
libxxf86vm-dev
llvm$_llvmver-dev
meson
py3-mako
+ py3-packaging
python3
+ vulkan-loader-dev
wayland-dev
wayland-protocols
xorgproto
@@ -58,83 +63,107 @@ makedepends="
zstd-dev
"
source="
- https://mesa.freedesktop.org/archive/mesa-$pkgver.tar.xz
- musl-fix-includes.patch
- add-use-elf-tls.patch
- disable-rgb10-by-default.patch
- 0001-radeonsi-On-Aarch64-force-persistent-buffers-to-GTT.patch
+ https://mesa.freedesktop.org/archive/mesa-${pkgver/_/-}.tar.xz
+ enable-mali-t600.patch
+ no-unlink-megadrivers.patch
"
replaces="mesa-dricore"
options="!check" # we skip tests intentionally
-
-if [ "$CARCH" = x86 ]; then
- # Bug upstream that needs to be fixed
- options="$options textrels"
-fi
+builddir="$srcdir/mesa-${pkgver/_/-}"
_dri_driverdir=/usr/lib/xorg/modules/dri
-_dri_drivers="r100,r200,nouveau"
-_gallium_drivers="r300,r600,radeonsi,nouveau,swrast,virgl"
-_gallium_provides="
- $pkgname-dri-swrast=$pkgver-r$pkgrel
- $pkgname-dri-virtio=$pkgver-r$pkgrel
- "
-_vulkan_drivers="amd"
+_gallium_drivers="r300,r600,radeonsi,nouveau,swrast,virgl,zink"
+_vulkan_drivers="amd,swrast"
_vulkan_layers="device-select,overlay"
+
+# extra gallium per arch
case "$CARCH" in
x86*)
- _dri_drivers="${_dri_drivers},i915,i965"
- _gallium_drivers="${_gallium_drivers},svga,iris,crocus"
- _vulkan_drivers="${_vulkan_drivers},intel"
+ _gallium_drivers="$_gallium_drivers,svga,i915,iris,crocus"
+ ;;
+armhf|armv7|aarch64)
+ _gallium_drivers="$_gallium_drivers,vc4,v3d,freedreno,kmsro,lima,panfrost,etnaviv,tegra"
+ ;;
+esac
+
+# extra vulkan per arch
+case "$CARCH" in
+x86*)
+ _vulkan_drivers="$_vulkan_drivers,intel,intel_hasvk"
_vulkan_layers="$_vulkan_layers,intel-nullhw"
subpackages="
- $subpackages
- $pkgname-dri-intel:_dri_deprecated
- $pkgname-vulkan-intel:_vulkan
- "
- _gallium_provides="$_gallium_provides $pkgname-dri-vmwgfx=$pkgver-r$pkgrel"
- _arch_opts="-Ddri3=enabled"
- case "$CARCH" in
- x86)
- _arch_opts="$_arch_opts -Dglx-read-only-text=true";;
- esac
+ $subpackages
+ $pkgname-vulkan-intel:_vulkan
+ "
;;
-armhf|armv7|aarch64)
- _gallium_drivers="${_gallium_drivers},vc4,v3d,freedreno,kmsro,lima,panfrost,etnaviv,tegra"
- _gallium_provides="$_gallium_provides
- $pkgname-dri-vc4=$pkgver-r$pkgrel
- $pkgname-dri-v3d=$pkgver-r$pkgrel
- $pkgname-dri-freedreno=$pkgver-r$pkgrel
- $pkgname-dri-kmsro=$pkgver-r$pkgrel
- $pkgname-dri-lima=$pkgver-r$pkgrel
- $pkgname-dri-panfrost=$pkgver-r$pkgrel
- $pkgname-dri-etnaviv=$pkgver-r$pkgrel
- $pkgname-dri-tegra=$pkgver-r$pkgrel
+aarch64)
+ _vulkan_drivers="$_vulkan_drivers,broadcom,freedreno,panfrost"
+ subpackages="
+ $subpackages
+ $pkgname-vulkan-broadcom:_vulkan
+ $pkgname-vulkan-freedreno:_vulkan
+ $pkgname-vulkan-panfrost:_vulkan
"
- case "$CARCH" in
- aarch64)
- _vulkan_drivers="${_vulkan_drivers},broadcom,freedreno,panfrost"
- subpackages="
- $subpackages
- $pkgname-vulkan-broadcom:_vulkan
- $pkgname-vulkan-freedreno:_vulkan
- $pkgname-vulkan-panfrost:_vulkan
- "
- ;;
- esac
+ ;;
+esac
+
+case "$CARCH" in
+x86)
+ # lto fails on x86 only
+ # mostly:
+ # https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21371
+ # https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21180
+ _lto=false
+ ;;
+*)
+ # ~5% smaller
+ _lto=true
+ ;;
+esac
+
+case "$CARCH" in
+aarch64|x86_64)
+ _rusticl=true
+ makedepends="
+ $makedepends
+ clang$_llvmver-dev
+ libclc-dev~$_llvmver
+ rust
+ rust-bindgen
+ spirv-llvm-translator-dev
+ "
+ subpackages="
+ $subpackages
+ $pkgname-rusticl
+ "
+ ;;
+*)
+ _rusticl=false
;;
esac
build() {
- export CFLAGS="$CFLAGS -D_XOPEN_SOURCE=700"
- export MESA_GIT_SHA1_OVERRIDE=53b2b224dc2de982c37915a0ad218e33365ff75e
+ # use -g1 to generate less debug info:
+ # 485 MiB -> ~80 MiB
+ export CFLAGS="$CFLAGS -O2 -g1"
+ export CXXFLAGS="$CXXFLAGS -O2 -g1"
+ export CPPFLAGS="$CPPFLAGS -O2 -g1"
- python3 bin/git_sha1_gen.py --output include/git_sha1.h
+ case "$CARCH" in
+ armhf|armv7)
+ # gnu2 tlsdesc is broken in binutils
+ export CFLAGS="$CFLAGS -mtls-dialect=gnu"
+ export CXXFLAGS="$CXXFLAGS -mtls-dialect=gnu"
+ ;;
+ esac
+ PATH="$PATH:/usr/lib/llvm$_llvmver/bin" \
abuild-meson \
+ -Db_ndebug=true \
+ -Db_lto=$_lto \
+ -Dbackend_max_links=2 \
-Ddri-drivers-path=$_dri_driverdir \
-Dgallium-drivers=$_gallium_drivers \
- -Ddri-drivers=$_dri_drivers \
-Dvulkan-drivers=$_vulkan_drivers \
-Dvulkan-layers=$_vulkan_layers \
-Dplatforms=x11,wayland \
@@ -145,85 +174,101 @@ build() {
-Dglx=dri \
-Dopengl=true \
-Dosmesa=true \
- -Dgles1=disabled \
+ -Dgles1=enabled \
-Dgles2=enabled \
-Degl=enabled \
- -Dgallium-xa=enabled \
- -Dgallium-vdpau=enabled \
+ -Dgallium-extra-hud=true \
+ -Dgallium-nine=true \
+ -Dgallium-rusticl=$_rusticl \
-Dgallium-va=enabled \
- -Dgallium-xvmc=disabled \
- -Dgallium-nine=false \
- -Db_ndebug=true \
- $_arch_opts \
+ -Dgallium-vdpau=enabled \
+ -Dgallium-xa=enabled \
+ -Drust_std=2021 \
+ -Dvideo-codecs=all \
. output
# Print config
- meson configure output
+ meson configure --no-pager output
- # parallel build workaround
- ninja -C output src/compiler/nir/nir_intrinsics.h
-
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
package() {
+ provider_priority=100
DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
egl() {
pkgdesc="Mesa libEGL runtime libraries"
depends="mesa=$pkgver-r$pkgrel"
+ provider_priority=100
- install -d "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libEGL.so* "$subpkgdir"/usr/lib/
+ amove usr/lib/libEGL.so*
}
gl() {
pkgdesc="Mesa libGL runtime libraries"
depends="mesa=$pkgver-r$pkgrel"
+ provider_priority=100
- install -d "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libGL.so* "$subpkgdir"/usr/lib/
+ amove usr/lib/libGL.so*
}
glapi() {
pkgdesc="Mesa shared glapi"
replaces="$pkgname-gles=$pkgver-r$pkgrel"
+ provider_priority=100
- install -d "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libglapi.so.* "$subpkgdir"/usr/lib/
+ amove usr/lib/libglapi.so.*
}
gles() {
pkgdesc="Mesa libGLESv2 runtime libraries"
depends="mesa=$pkgver-r$pkgrel"
+ provider_priority=100
- install -d "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libGLES*.so* "$subpkgdir"/usr/lib/
+ amove usr/lib/libGLES*.so*
}
xatracker() {
pkgdesc="Mesa XA state tracker for vmware"
depends="mesa=$pkgver-r$pkgrel"
+ provider_priority=100
- install -d "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libxatracker*.so.* "$subpkgdir"/usr/lib/
+ amove usr/lib/libxatracker*.so.*
}
osmesa() {
pkgdesc="Mesa offscreen rendering libraries"
depends="mesa=$pkgver-r$pkgrel"
+ provider_priority=100
- install -d "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libOSMesa.so.* "$subpkgdir"/usr/lib/
+ amove usr/lib/libOSMesa.so.*
}
gbm() {
pkgdesc="Mesa gbm library"
depends="mesa=$pkgver-r$pkgrel"
+ provider_priority=100
+
+ amove usr/lib/libgbm.so.*
+}
+
+libd3dadapter9() {
+ pkgdesc="Mesa directx9 adapter"
+ depends="mesa=$pkgver-r$pkgrel"
+ provider_priority=100
- install -d "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libgbm.so.* "$subpkgdir"/usr/lib/
+ amove usr/lib/d3d/d3dadapter9.so*
+}
+
+rusticl() {
+ pkgdesc="Mesa OpenCL driver"
+ depends="mesa=$pkgver-r$pkgrel clang$_llvmver-headers libclc~$_llvmver"
+ provider_priority=100
+
+ amove usr/lib/libRusticlOpenCL.so.*
+ amove etc/OpenCL/vendors/
}
# Move links referencing the same file to the subpackage.
@@ -238,11 +283,9 @@ _mv_links() {
_mv_vulkan() {
local i
- install -d "$subpkgdir"/usr/lib
- install -d "$subpkgdir"/usr/share/vulkan/icd.d
for i in "$@"; do
- mv "$pkgdir"/usr/lib/libvulkan_$i.so "$subpkgdir"/usr/lib/
- mv "$pkgdir"/usr/share/vulkan/icd.d/${i}* "$subpkgdir"/usr/share/vulkan/icd.d/
+ amove usr/lib/libvulkan_$i*.so
+ amove usr/share/vulkan/icd.d/${i}_*.*
done
}
@@ -250,44 +293,20 @@ _mv_vulkan() {
# library. This library is then hard-linked to separate files (one for each driver).
# Each subpackage contains one megadriver so that all the hard-links are preserved.
-_dri() {
- local n=${subpkgname##*-dri-}
- pkgdesc="Mesa $n DRI drivers"
+_gallium() {
+ pkgdesc="Mesa gallium DRI drivers"
depends="mesa=$pkgver-r$pkgrel"
+ provider_priority=100
- case $n in
- classic)
- # libmesa_dri_drivers.so
- _mv_links $_dri_driverdir radeon_dri.so ;;
- gallium)
- # libgallium_dri.so
- _mv_links $_dri_driverdir swrast_dri.so
- provides="$_gallium_provides"
- ;;
- esac
-}
-
-# Compatibility packages for upgrading from the old (driver-specific) subpackages
-_dri_deprecated() {
- local n=${subpkgname##*-dri-}
- pkgdesc="Mesa DRI drivers for $n (DEPRECATED)"
- depends="
- mesa-dri-classic=$pkgver-r$pkgrel
- mesa-dri-gallium=$pkgver-r$pkgrel
- "
-
- case $n in
- ati|nouveau)
- depends="$depends mesa-va-gallium mesa-vdpau-gallium" ;;
- esac
-
- mkdir "$subpkgdir"
+ # libgallium_dri.so
+ _mv_links $_dri_driverdir swrast_dri.so
}
_va() {
local n=${subpkgname##*-va-}
pkgdesc="Mesa $n VAAPI drivers"
depends="mesa=$pkgver-r$pkgrel libva"
+ provider_priority=100
case $n in
gallium)
@@ -300,6 +319,7 @@ _vdpau() {
local n=${subpkgname##*-vdpau-}
pkgdesc="Mesa $n VDPAU drivers"
depends="mesa=$pkgver-r$pkgrel libvdpau"
+ provider_priority=100
case $n in
gallium)
@@ -312,6 +332,7 @@ _vulkan() {
local n=${subpkgname##*-vulkan-}
pkgdesc="Mesa Vulkan API driver for $n"
depends="mesa=$pkgver-r$pkgrel"
+ provider_priority=100
case $n in
ati)
@@ -324,18 +345,22 @@ _vulkan() {
_mv_vulkan freedreno ;;
panfrost)
_mv_vulkan panfrost ;;
+ swrast)
+ _mv_vulkan lvp ;;
esac
}
_vulkan_layers() {
pkgdesc="collection of vulkan layers from mesa"
depends="python3"
+ provider_priority=100
# Remove this after the release of the next stable (3.14)
# it originally was claed layer as it only packaged the
# overlay one but now it also packages device-select and
# intel-nullhw (on x86*)
provides="$pkgname-vulkan-layer=$pkgver-r$pkgrel"
+ provider_priority=100
replaces="$pkgname-vulkan-layer=$pkgver-r$pkgrel"
amove usr/share/vulkan/explicit_layer.d
@@ -345,9 +370,7 @@ _vulkan_layers() {
}
sha512sums="
-4cec6f4f50f444fcd327f7c40f8899c2f265e348e121455262b540b1f890a1468bbea59965af0876c548fa97aa0a05a1b23fa6ca7d308bd60328cfdeab757684 mesa-21.3.9.tar.xz
-77b40d3b70a78e1f261f0a0358f3b5f15d5f0a6d51ba317e38053f426a14487a459743df2e4734e9c086f1f083572e78279eb8a5dde191ef0c2914594513194b musl-fix-includes.patch
-de7c6fec14476539c564afa4bf59a3c8d5f34a687ffdbacfe94403e3ad4e78773222b2b74b08a1fd16b7dc9504decca1429273c179ad702c02a140e1dff15205 add-use-elf-tls.patch
-ae5ffb9259efc339a868c778186889fa1a6eacb4dc4b2452f31f9c65e1a6273e856665300d2982fb2680b4d182aae574ceda258e15c00d7ae16960ba09240ef1 disable-rgb10-by-default.patch
-fdbc13888f09d157feae6ce3b8a63cc606d7ed19e364cdb89ccce25a367255b498bbe82862a487c29d8f98d5e31980ef1f0879b06823cedb54801fd54cd461ad 0001-radeonsi-On-Aarch64-force-persistent-buffers-to-GTT.patch
+9476af4b9ac8db5dce397084ef169927d10b28adea7e74aa5b3136810b499ac98ddf7ab564e7d1ff81c887208c8ebab3ad2d4e27e7f46136609b5c67527018eb mesa-24.0.5.tar.xz
+450e9c61a62487e2cc83e03a05521d40a48294118b1af9d56220fb546c50fedd61f1f005b85c5e956e23eb2397f696fe1bbf9626253c99233278ca406b75543b enable-mali-t600.patch
+e3d39d61b14188cd5a22e19e8c065650995f85943e6c42ec5775db5b76a9ebe8913253a8b9ac32056ac13a2c357cd951f867ecb39976c52f7d014dcc1a2d87dc no-unlink-megadrivers.patch
"
diff --git a/main/mesa/add-use-elf-tls.patch b/main/mesa/add-use-elf-tls.patch
deleted file mode 100644
index 629c5ac187f..00000000000
--- a/main/mesa/add-use-elf-tls.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-diff --git a/meson.build b/meson.build
-index e1e94e7..b355f94 100644
---- a/meson.build
-+++ b/meson.build
-@@ -447,7 +447,9 @@ endif
-
- # Android uses emutls for versions <= P/28. For USE_ELF_TLS we need ELF TLS.
- use_elf_tls = false
--if (not ['freebsd', 'openbsd', 'haiku'].contains(host_machine.system()) and
-+with_use_elf_tls = get_option('use-elf-tls')
-+if with_use_elf_tls and
-+ (not ['freebsd', 'openbsd', 'haiku'].contains(host_machine.system()) and
- (not with_platform_android or get_option('platform-sdk-version') >= 29) and
- (not with_platform_windows or not with_shared_glapi))
- pre_args += '-DUSE_ELF_TLS'
-diff --git a/meson_options.txt b/meson_options.txt
-index a7030ab..73bd28e 100644
---- a/meson_options.txt
-+++ b/meson_options.txt
-@@ -465,3 +465,9 @@ option(
- value : true,
- description : 'use msse2 flag for mingw x86. Default: true',
- )
-+option(
-+ 'use-elf-tls',
-+ type : 'boolean',
-+ value : false,
-+ description : 'Build support for initial-exec TLS model'
-+)
diff --git a/main/mesa/disable-rgb10-by-default.patch b/main/mesa/disable-rgb10-by-default.patch
deleted file mode 100644
index 6e1158b6cf1..00000000000
--- a/main/mesa/disable-rgb10-by-default.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From b33c8b56abcc4837f96f7f106b108681858482e0 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jonas=20=C3=85dahl?= <jadahl@gmail.com>
-Date: Tue, 24 Apr 2018 09:46:41 +0200
-Subject: [PATCH] gallium: Disable rgb10 configs by default
-
-Applications tend to not handle rgb10 configs very well, so lets
-disable it for now.
-
-https://bugzilla.redhat.com/show_bug.cgi?id=1560481
----
- src/gallium/auxiliary/pipe-loader/driinfo_gallium.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h b/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h
-index 3b630f7..b542e0c 100644
---- a/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h
-+++ b/src/gallium/auxiliary/pipe-loader/driinfo_gallium.h
-@@ -49,6 +49,6 @@ DRI_CONF_SECTION_MISCELLANEOUS
- DRI_CONF_GLSL_ZERO_INIT(false)
- DRI_CONF_VS_POSITION_ALWAYS_INVARIANT(false)
- DRI_CONF_VS_POSITION_ALWAYS_PRECISE(false)
-- DRI_CONF_ALLOW_RGB10_CONFIGS(true)
-+ DRI_CONF_ALLOW_RGB10_CONFIGS(false)
- DRI_CONF_FORCE_INTEGER_TEX_NEAREST(false)
- DRI_CONF_SECTION_END
diff --git a/main/mesa/enable-mali-t600.patch b/main/mesa/enable-mali-t600.patch
new file mode 100644
index 00000000000..4cbbf87476d
--- /dev/null
+++ b/main/mesa/enable-mali-t600.patch
@@ -0,0 +1,27 @@
+From e3111262ee009bfa2a0aad202aaf535715e38ec7 Mon Sep 17 00:00:00 2001
+From: Anton Bambura <jenneron@postmarketos.org>
+Date: Thu, 8 Feb 2024 10:01:58 +0000
+Subject: [PATCH] panfrost: Enable Mali-T600
+
+Upstream MR: https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27519
+
+Signed-off-by: Anton Bambura <jenneron@postmarketos.org>
+---
+ src/panfrost/lib/pan_props.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/panfrost/lib/pan_props.c b/src/panfrost/lib/pan_props.c
+index 55871169638fd..f2da5f6e82a78 100644
+--- a/src/panfrost/lib/pan_props.c
++++ b/src/panfrost/lib/pan_props.c
+@@ -46,6 +46,7 @@
+ /* Table of supported Mali GPUs */
+ /* clang-format off */
+ const struct panfrost_model panfrost_model_list[] = {
++ MODEL(0x600, "T600", "T60x", NO_ANISO, 8192, {}),
+ MODEL(0x620, "T620", "T62x", NO_ANISO, 8192, {}),
+ MODEL(0x720, "T720", "T72x", NO_ANISO, 8192, { .no_hierarchical_tiling = true }),
+ MODEL(0x750, "T760", "T76x", NO_ANISO, 8192, {}),
+--
+GitLab
+
diff --git a/main/mesa/musl-fix-includes.patch b/main/mesa/musl-fix-includes.patch
deleted file mode 100644
index 8553d44894f..00000000000
--- a/main/mesa/musl-fix-includes.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/util/rand_xor.c b/src/util/rand_xor.c
-index 81b64f1ea71..14e6c9d27c3 100644
---- a/src/util/rand_xor.c
-+++ b/src/util/rand_xor.c
-@@ -27,6 +27,8 @@
- #if !DETECT_OS_WINDOWS
- #if defined(HAVE_GETRANDOM)
- #include <sys/random.h>
-+#include <sys/types.h>
-+#include <sys/stat.h>
- #endif
- #include <unistd.h>
- #include <fcntl.h>
diff --git a/main/mesa/no-unlink-megadrivers.patch b/main/mesa/no-unlink-megadrivers.patch
new file mode 100644
index 00000000000..3bac68f19d6
--- /dev/null
+++ b/main/mesa/no-unlink-megadrivers.patch
@@ -0,0 +1,24 @@
+this converts megadriver installation to use symlinks instead of hardlinks,
+so checkapk diff does not differ by what got made first, and simplifies disk
+representation (hardlinks are less easy to see)
+--- a/bin/install_megadrivers.py
++++ b/bin/install_megadrivers.py
+@@ -56,7 +56,7 @@ def main():
+ if os.path.lexists(abs_driver):
+ os.unlink(abs_driver)
+ print('installing {} to {}'.format(args.megadriver, abs_driver))
+- os.link(master, abs_driver)
++ os.symlink(os.path.basename(master), abs_driver)
+
+ try:
+ ret = os.getcwd()
+@@ -71,8 +71,7 @@ def main():
+ finally:
+ os.chdir(ret)
+
+- # Remove meson-created master .so and symlinks
+- os.unlink(master)
++ # Remove meson-created symlinks
+ name, ext = os.path.splitext(master)
+ while ext != '.so':
+ if os.path.lexists(name):
diff --git a/main/meson/APKBUILD b/main/meson/APKBUILD
index 0d32327942a..a8be48f1585 100644
--- a/main/meson/APKBUILD
+++ b/main/meson/APKBUILD
@@ -2,14 +2,14 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=meson
-pkgver=0.62.2
-pkgrel=0
+pkgver=1.4.0
+pkgrel=2
pkgdesc="Fast and user friendly build system"
url="https://mesonbuild.com"
arch="noarch"
license="Apache-2.0"
-depends="samurai python3"
-makedepends="py3-setuptools"
+depends="samurai"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
# glib-dev, gobject-introspection-dev, gtk+3.0-dev is a circular dep,
# but only during bootstrap-
# not installing checkdepends with !check should be fine
@@ -40,13 +40,15 @@ checkdepends="
"
subpackages="
$pkgname-doc
+ $pkgname-pyc
$pkgname-vim::noarch
$pkgname-bash-completion
$pkgname-zsh-completion
+ $pkgname-polkit::noarch
"
source="https://github.com/mesonbuild/meson/releases/download/$pkgver/meson-$pkgver.tar.gz
- skip-broken-tests.patch
fix-ninja-output-test.patch
+ skip-broken-tests.patch
abuild-meson
"
@@ -58,7 +60,9 @@ prepare() {
}
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
@@ -69,7 +73,7 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
install -Dm644 data/shell-completions/zsh/* -t "$pkgdir"/usr/share/zsh/site-functions
install -Dm644 data/shell-completions/bash/* -t "$pkgdir"/usr/share/bash-completion/completions
@@ -79,6 +83,7 @@ package() {
vim() {
pkgdesc="$pkgdesc (vim support)"
+ depends=
install_if="vim $pkgname=$pkgver-r$pkgrel"
cd "$builddir"
for kind in ftdetect ftplugin indent syntax
@@ -90,9 +95,17 @@ vim() {
done
}
+polkit() {
+ pkgdesc="$pkgdesc (polkit config)"
+ depends=""
+ install_if="$pkgname=$pkgver-r$pkgrel polkit"
+
+ amove usr/share/polkit-*
+}
+
sha512sums="
-4089588701f0f702eb3b794e0ede78b99f13ec7545d1a7470c7bfd6a857de59673684a543928dd578402578c53f38365a3a59e3e29022fd30a525353818a4195 meson-0.62.2.tar.gz
-0bbbf65f56f4feab43b4ec3fbe7d4c64ef9abb563ea114d0b960048319b936dd577e538a762991661a1cb256f32c0da0fef2d3add07730e37a8bbd4ec27dc611 skip-broken-tests.patch
+2787941fbc77d5ad95011753df52fe39812929a06d84dbce8bdc965c9c1e62fd6bfa819712eb1f5934c2ebe6919a65f7874ecac2caf40d111ea024343108cfbd meson-1.4.0.tar.gz
a60dd85ecc1004523c213f4d06bfe10ba906a5115e93cfa4f1b70733e0c16f39c2c22b38ff71bb07c67166f3121c263a56842e8f8e2022f0a44094f956e28f02 fix-ninja-output-test.patch
-1029e7a7af86ff4a5636f8cea4b5dbe970a58741d2f25dad50712664f1e387078e7583fafd4f7d1d420c9e116b0ea72b20cf22532cfece9a7d2d8cf60c9aadab abuild-meson
+0bbbf65f56f4feab43b4ec3fbe7d4c64ef9abb563ea114d0b960048319b936dd577e538a762991661a1cb256f32c0da0fef2d3add07730e37a8bbd4ec27dc611 skip-broken-tests.patch
+3e609e58ec6a68633023a3fb3a8fa857f18925c7f0988bcb4171ef89583244aa3631d1ee4292671369a1e4e6c185d841ad3c1aafc577d0f190e3f0ddd37319e6 abuild-meson
"
diff --git a/main/meson/abuild-meson b/main/meson/abuild-meson
index c39396d9389..2e56c411496 100644..100755
--- a/main/meson/abuild-meson
+++ b/main/meson/abuild-meson
@@ -1,8 +1,55 @@
#!/bin/sh -e
# Highly opinionated wrapper for Alpine Linux packaging
-# TODO: enable LTO once our GCC works with LTO by default
-exec meson \
+. /usr/share/abuild/functions.sh
+
+# mostly taken from https://github.com/void-linux/void-packages/blob/22bf95cf356bf1a09212733d775d447d011f70b0/common/build-style/meson.sh
+if [ "$CHOST" != "$CBUILD" ]; then
+ _meson_crossfile="abuild-meson.cross"
+ _meson_target_endian=little
+ # just the first part of the hostspec
+ _meson_target_cpu="$CARCH"
+ case "$CARCH" in
+ arm*)
+ _meson_cpu_family=arm
+ ;;
+ x86)
+ _meson_cpu_family=x86
+ ;;
+ ppc64le)
+ _meson_cpu_family=ppc64
+ ;;
+ s390x)
+ _meson_cpu_family=s390x
+ _meson_target_endian=big
+ ;;
+ riscv64)
+ _meson_cpu_family=riscv64
+ ;;
+ x86_64)
+ _meson_cpu_family=x86_64
+ ;;
+ aarch64)
+ _meson_cpu_family=aarch64
+ ;;
+ esac
+ cat > $_meson_crossfile <<-EOF
+ [binaries]
+ strip = '${CROSS_COMPILE}strip'
+ readelf = '${CROSS_COMPILE}readelf'
+ objcopy = '${CROSS_COMPILE}objcopy'
+ [properties]
+ needs_exe_wrapper = true
+ [host_machine]
+ system = 'linux'
+ cpu_family = '$_meson_cpu_family'
+ cpu = '$_meson_target_cpu'
+ endian = '$_meson_target_endian'
+ EOF
+ unset _meson_target_cpu _meson_target_endian _meson_cpu_family
+fi
+
+exec meson setup \
--prefix=/usr \
--libdir=/usr/lib \
--libexecdir=/usr/libexec \
@@ -22,4 +69,7 @@ exec meson \
-Db_lto=false \
-Db_staticpic=true \
-Db_pie=true \
+ -Dpython.bytecompile=0 \
+ -Dwerror=false \
+ ${_meson_crossfile:+--cross-file=$_meson_crossfile} \
"$@"
diff --git a/main/mg/APKBUILD b/main/mg/APKBUILD
index f9cd0e54247..01e1b6c7d5c 100644
--- a/main/mg/APKBUILD
+++ b/main/mg/APKBUILD
@@ -1,12 +1,12 @@
# Contributor: Lee Hinman <hinman@gmail.com>
# Maintainer: Will Sinatra <wpsinatra@gmail.com>
pkgname=mg
-pkgver=20220614
-pkgrel=0
+pkgver=20230501
+pkgrel=2
pkgdesc="microscopic EMACS style editor"
url="https://github.com/hboetes/mg"
arch="all"
-license="Public-Domain"
+license="Public Domain"
makedepends="ncurses-dev libbsd-dev bsd-compat-headers"
subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/hboetes/mg/archive/$pkgver.tar.gz"
@@ -26,5 +26,5 @@ package() {
}
sha512sums="
-bed455cda856e54fae28592ac0a520841d5d542880a7405dadf702d7407ac33ae7fb7b63880805a7e166e0e0a87c76b9fca1700c444f1b999a5af66732c69b65 mg-20220614.tar.gz
+db7b9815a01dc9fb1ff92741748d24d558c329135e591c24450d0a3bc10e38a992ef346dd744854864538f330a018415df539d06543570a3566dbabc6c88a8fd mg-20230501.tar.gz
"
diff --git a/main/mini_httpd/APKBUILD b/main/mini_httpd/APKBUILD
index 42d90d91970..33679d51864 100644
--- a/main/mini_httpd/APKBUILD
+++ b/main/mini_httpd/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mini_httpd
pkgver=1.30
-pkgrel=3
+pkgrel=5
pkgdesc="Small forking webserver with ssl and ipv6 support"
url="http://www.acme.com/software/mini_httpd/"
arch="all"
@@ -10,17 +10,15 @@ pkgusers="minihttpd"
pkggroups="www-data"
# no tests/check provided by upstream
options="!check"
-makedepends="openssl1.1-compat-dev"
+makedepends="openssl-dev>3"
subpackages="$pkgname-doc $pkgname-openrc"
install="$pkgname.pre-install"
-source="http://www.acme.com/software/$pkgname/$pkgname-$pkgver.tar.gz
+source="http://www.acme.com/software/mini_httpd/mini_httpd-$pkgver.tar.gz
$pkgname.conf
$pkgname.initd
$pkgname.logrotate
cgi.patch
"
-builddir="$srcdir/$pkgname-$pkgver"
-
# secfixes:
# 1.30-r0:
# - CVE-2018-18778
@@ -28,14 +26,12 @@ builddir="$srcdir/$pkgname-$pkgver"
# - CVE-2017-17663
build() {
- cd "$builddir"
- make CFLAGS="${CFLAGS} -DUSE_SSL" \
- LDFLAGS="${LDFLAGS}" \
+ make CFLAGS="$CFLAGS -DUSE_SSL" \
+ LDFLAGS="$LDFLAGS" \
SSL_LIBS="-lssl -lcrypto"
}
package() {
- cd "$builddir"
# does not respect DESTDIR
make install \
BINDIR="$pkgdir"/usr/sbin \
diff --git a/main/minicom/APKBUILD b/main/minicom/APKBUILD
index 68be7600be7..ef8420cd23c 100644
--- a/main/minicom/APKBUILD
+++ b/main/minicom/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Michael Mason <ms13sp@gmail.com>
# Maintainer: Michael Mason <ms13sp@gmail.com>
pkgname=minicom
-pkgver=2.8
+pkgver=2.9
pkgrel=0
pkgdesc="menu driven communications program for terminals"
url="https://tracker.debian.org/pkg/minicom"
@@ -9,8 +9,7 @@ arch="all"
license="GPL-2.0-or-later"
makedepends="ncurses-dev gettext-dev linux-headers"
subpackages="$pkgname-doc $pkgname-lang"
-source="https://salsa.debian.org/minicom-team/minicom/-/archive/$pkgver/minicom-$pkgver.tar.gz
- "
+source="https://salsa.debian.org/minicom-team/minicom/-/archive/$pkgver/minicom-$pkgver.tar.gz"
build() {
./configure \
@@ -23,8 +22,14 @@ build() {
make
}
+check() {
+ make check
+}
+
package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="5ced0ff79cec11464154561130ddc6a38865170d4e4d80185ada540ba173fe89e35703b6d7fd0cf86caef6e020fcad1d7b1fdb4d4f55e3ddb906aea6a4b81b36 minicom-2.8.tar.gz"
+sha512sums="
+3bd41fa3b93b086c7b0fc851e9f46f241b13a037a4a325fc5e0ca6a4db7e9389443e8965891aa938a9c31ff848d50fd0cb88b98690a06737b5f3aca2520a60e2 minicom-2.9.tar.gz
+"
diff --git a/main/mkfontscale/APKBUILD b/main/mkfontscale/APKBUILD
index b51cfb86473..a75e66de24c 100644
--- a/main/mkfontscale/APKBUILD
+++ b/main/mkfontscale/APKBUILD
@@ -1,9 +1,9 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mkfontscale
pkgver=1.2.2
-pkgrel=1
+pkgrel=6
pkgdesc="Scalable font index generator for X"
-url="http://xorg.freedesktop.org"
+url="https://xorg.freedesktop.org/"
arch="all"
license="MIT"
options="!check" # No test suite.
diff --git a/main/mkfontscale/mkfontscale.trigger b/main/mkfontscale/mkfontscale.trigger
index 244f88425b5..1bd9d93ff69 100644
--- a/main/mkfontscale/mkfontscale.trigger
+++ b/main/mkfontscale/mkfontscale.trigger
@@ -1,6 +1,10 @@
#!/bin/sh
for i in "$@"; do
+ case "$i" in
+ # encodings dir doesn't include fonts
+ */encodings) continue;
+ esac
mkfontdir "$i"
mkfontscale "$i"
done
diff --git a/main/mkinitfs/0001-mkinitfs.in-ensure-when-run-in-chroot-that-correct-k.patch b/main/mkinitfs/0001-mkinitfs.in-ensure-when-run-in-chroot-that-correct-k.patch
deleted file mode 100644
index dc419b0623b..00000000000
--- a/main/mkinitfs/0001-mkinitfs.in-ensure-when-run-in-chroot-that-correct-k.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 82002bafa3de220b7bde1cd03e1ac0758a65abc2 Mon Sep 17 00:00:00 2001
-From: Dermot Bradley <dermot_bradley@yahoo.com>
-Date: Tue, 12 Apr 2022 14:50:55 +0100
-Subject: [PATCH] mkinitfs.in: ensure when run in chroot that correct kernel
- version is used
-
-modinfo is called without the "-k version" argument and so when
-running mkinitfs inside a chroot where the version of the kernel
-package being installed differs from the version of the host
-machine's kernel then modinfo is called (to check firmware
-requirements) using the wrong kernel version.
-
-Add the "-k" argument to ensure the correct kernel version is used.
-
-NOTE: Busybox's modinfo does not support the "-k" option. Currently
-Alpine is using modinfo from the kmod package, however obviously in
-the future Busybox's version is to be used this this will break. It
-appears the only solution in that scenario would be to add "-k"
-support to Busybox's version.
----
- mkinitfs.in | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/mkinitfs.in b/mkinitfs.in
-index db0b324..aa1f87b 100755
---- a/mkinitfs.in
-+++ b/mkinitfs.in
-@@ -140,7 +140,7 @@ initfs_firmware() {
- # Verify if there are initfs modules
- _modules=`find "$tmpdir"/lib/modules -type f -name "*.ko*" -print -quit`
- [ -n "$_modules" ] || return 0
-- find "$tmpdir"/lib/modules -type f -name "*.ko*" | xargs modinfo -F firmware | sort -u | while read FW; do
-+ find "$tmpdir"/lib/modules -type f -name "*.ko*" | xargs modinfo -k $kernel -F firmware | sort -u | while read FW; do
- [ -e "${basedir}/lib/firmware/${FW}" ] && install -pD "${basedir}/lib/firmware/${FW}" "$tmpdir"/lib/firmware/$FW
- done
- return 0
---
-2.36.1
-
diff --git a/main/mkinitfs/APKBUILD b/main/mkinitfs/APKBUILD
index a2a4345a63a..94031574b57 100644
--- a/main/mkinitfs/APKBUILD
+++ b/main/mkinitfs/APKBUILD
@@ -1,23 +1,28 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mkinitfs
-pkgver=3.6.1
+pkgver=3.9.1
# shellcheck disable=SC2034 # used for git versions, keep around for next time
_ver=${pkgver%_git*}
-pkgrel=3
+pkgrel=0
pkgdesc="Tool to generate initramfs images for Alpine"
url="https://gitlab.alpinelinux.org/alpine/mkinitfs"
arch="all"
license="GPL-2.0-only"
-# currently we do not ship any testsuite
-options="!check"
makedepends_host="busybox kmod-dev util-linux-dev cryptsetup-dev linux-headers"
makedepends="$makedepends_host"
-depends="busybox>=1.28.2-r1 apk-tools>=2.9.1 lddtree>=1.25 kmod"
+checkdepends="kyua"
+depends="
+ apk-tools>=2.9.1
+ busybox-binsh
+ busybox>=1.28.2-r1
+ kmod
+ lddtree>=1.25
+ mdev-conf
+ "
subpackages="$pkgname-doc"
install="$pkgname.pre-upgrade $pkgname.post-install $pkgname.post-upgrade"
-triggers="$pkgname.trigger=/usr/share/kernel/*"
+triggers="$pkgname.trigger=/lib/modules/*"
source="https://gitlab.alpinelinux.org/alpine/mkinitfs/-/archive/$pkgver/mkinitfs-$pkgver.tar.gz
- 0001-mkinitfs.in-ensure-when-run-in-chroot-that-correct-k.patch
"
provides="initramfs-generator"
@@ -27,11 +32,14 @@ build() {
make VERSION=$pkgver-r$pkgrel
}
+check() {
+ make check
+}
+
package() {
make install DESTDIR="$pkgdir"
}
sha512sums="
-18203384465a060e3f2920cda15ef71fd4739492f29661919216a632def496eb269b4f62d0a4132c817bd5a2d540decea3378807d1bc327d5bba169ef62a73ba mkinitfs-3.6.1.tar.gz
-8c00f368329e4f26d7a2a32212f11370b0832d1dfb0a2538caf48ca75295668f9fc3e3fb9ea6ea5c45187e06723c139ee214c646b14d8b1abb92bd945a1c2d48 0001-mkinitfs.in-ensure-when-run-in-chroot-that-correct-k.patch
+217ae1353dad9bf5e5c7ebb25f281c80493c2bad16fe99aa079a30a9196918ac39fd02c54d59de19f338e07f93f9297945d621d32a6d802f0f01d93df89398d1 mkinitfs-3.9.1.tar.gz
"
diff --git a/main/mkinitfs/mkinitfs.trigger b/main/mkinitfs/mkinitfs.trigger
index 04938dd2096..8ec777c4a79 100644
--- a/main/mkinitfs/mkinitfs.trigger
+++ b/main/mkinitfs/mkinitfs.trigger
@@ -9,17 +9,40 @@ fi
for i in "$@"; do
# get last element in path
- flavor=${i##*/}
- if ! [ -f "$i"/kernel.release ]; then
- # kernel was uninstalled
- rm -f $( readlink -f /boot/initramfs-$flavor ) \
- /boot/initramfs-$flavor /boot/vmlinuz-$flavor \
- /boot/$flavor /boot/$flavor.gz /$flavor /$flavor.gz
- continue
- fi
- abi_release=$(cat "$i"/kernel.release)
- initfs=initramfs-$flavor
- mkinitfs -o /boot/$initfs $abi_release
+ abi_release=${i##*/}
+
+ suffix="$(cat "$i"/kernel-suffix 2>/dev/null)" || {
+ # clean up on uninstall
+ suffix="$(cat "$i/initramfs-suffix" 2>/dev/null)" || {
+ # fallback suffix
+ flavor="${abi_release##*[0-9]-}"
+ if [ "$flavor" != "$abi_release" ]; then
+ suffix="-$flavor"
+ fi
+ }
+
+ rm -f "$i"/initramfs-suffix
+ rmdir "$i" 2>/dev/null
+ if ! [ -e "/boot/vmlinuz$suffix" ]; then
+ # kernel was removed
+ rm -v "/boot/initramfs$suffix"
+ continue
+ fi
+
+ # upgrading
+ if ! [ -e "$i"/modules.order ]; then
+ continue
+ fi
+ }
+
+ # store the initramfs suffix for removal
+ echo "$suffix" > "$i"/initramfs-suffix
+ initramfs="/boot/initramfs$suffix"
+ mkinitfs -o "$initramfs" "$abi_release" || {
+ echo " mkinitfs failed!" >&2
+ echo " your system may not be bootable" >&2
+ exit 1
+ }
done
# extlinux will use path relative partition, so if /boot is on a
@@ -28,5 +51,6 @@ if ! [ -e /boot/boot ]; then
ln -sf . /boot/boot 2>/dev/null # silence error in case of FAT
fi
-sync
+# sync only the filesystem on /boot as that is where we are writing the initfs.
+sync -f /boot
exit 0
diff --git a/main/mksh/APKBUILD b/main/mksh/APKBUILD
index 532563dee91..d217f89b750 100644
--- a/main/mksh/APKBUILD
+++ b/main/mksh/APKBUILD
@@ -3,7 +3,7 @@
pkgname=mksh
pkgver=59c
_pkgver=R$pkgver
-pkgrel=3
+pkgrel=4
pkgdesc="MirBSD Korn Shell"
url="https://www.mirbsd.org/mksh"
arch="all"
@@ -11,7 +11,7 @@ license="MirOS AND Unicode-DFS-2016"
checkdepends="perl"
install="$pkgname.post-install $pkgname.post-upgrade $pkgname.pre-deinstall"
subpackages="$pkgname-doc"
-source="https://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-$_pkgver.tgz"
+source="http://www.mirbsd.org/MirOS/dist/mir/mksh/mksh-$_pkgver.tgz"
builddir="$srcdir/$pkgname"
prepare() {
@@ -39,4 +39,6 @@ package() {
install -Dm644 mksh.1 "$pkgdir"/usr/share/man/man1/mksh.1
}
-sha512sums="f56b6956f9e1dd88ddce2294301a5eb698050d9d4f49286fdcd8f9df8554eabbcc71d37e2bf3eb7234e3968a17231cc6de8aa7efbf17768834a90b14e8cdf340 mksh-R59c.tgz"
+sha512sums="
+f56b6956f9e1dd88ddce2294301a5eb698050d9d4f49286fdcd8f9df8554eabbcc71d37e2bf3eb7234e3968a17231cc6de8aa7efbf17768834a90b14e8cdf340 mksh-R59c.tgz
+"
diff --git a/main/mlmmj/APKBUILD b/main/mlmmj/APKBUILD
index e57701e38b1..2c794cf2456 100644
--- a/main/mlmmj/APKBUILD
+++ b/main/mlmmj/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mlmmj
-pkgver=1.3.0
+pkgver=1.4.5
pkgrel=0
pkgdesc="Mailing list managing made joyful"
url="http://mlmmj.org/"
@@ -10,15 +10,15 @@ subpackages="$pkgname-doc"
install="$pkgname.pre-install"
pkgusers="mlmmj"
pkggroups="mlmmj"
-source="http://mlmmj.org/releases/mlmmj-$pkgver.tar.gz
- gcc-10.patch
- "
+source="https://codeberg.org/mlmmj/mlmmj/releases/download/RELEASE_${pkgver//./_}/mlmmj-$pkgver.tar.gz"
+options="!check"
build() {
./configure \
--build=$CBUILD \
--host=$CHOST \
- --prefix=/usr
+ --prefix=/usr \
+ "$(want_check || echo --disable-tests)"
make
}
@@ -28,5 +28,7 @@ package() {
cp -r listtexts/* "$pkgdir"/usr/share/mlmmj/texts/
install -o mlmmj -g mlmmj -d "$pkgdir"/var/spool/mlmmj
}
-sha512sums="ea40cae02a7ca5949af6ae01adcdc97536f63f9336f1e4081cf875312bb121a285405353a5863aa6d5f09834b2b6dd328650ed212a30f4940b5fbf82d20184cf mlmmj-1.3.0.tar.gz
-8c929fc1e078ae1ffeaced0a7f188da75de390e93abfe7abd8b481f9f51efee52997dbca2e5904003ac2a95f61be9764da41082fabca01767320b86873f6734c gcc-10.patch"
+
+sha512sums="
+b555328bb34e642598965ce086dfaf20ea2a5157976fa6263b7b4274fdc81eb1e8691f31808a7f978ca5a4486c7baee7bf20bf732097f46f19d71cca31d9c94b mlmmj-1.4.5.tar.gz
+"
diff --git a/main/mlmmj/gcc-10.patch b/main/mlmmj/gcc-10.patch
deleted file mode 100644
index 9a7698cc501..00000000000
--- a/main/mlmmj/gcc-10.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-Taken from Gentoo
-
---- a/include/mlmmj.h
-+++ b/include/mlmmj.h
-@@ -81,7 +81,7 @@ enum subtype {
- SUB_NONE /* For when an address is not subscribed at all */
- };
-
--char *subtype_strs[7]; /* count matches enum above; defined in subscriberfuncs.c */
-+extern char *subtype_strs[7]; /* count matches enum above; defined in subscriberfuncs.c */
-
- enum subreason {
- SUB_REQUEST,
-@@ -92,7 +92,7 @@ enum subreason {
- SUB_SWITCH
- };
-
--char * subreason_strs[6]; /* count matches enum above; defined in subscriberfuncs.c */
-+extern char * subreason_strs[6]; /* count matches enum above; defined in subscriberfuncs.c */
-
- void print_version(const char *prg);
-
diff --git a/main/monit/APKBUILD b/main/monit/APKBUILD
index d02ee745a00..71c1df5fed6 100644
--- a/main/monit/APKBUILD
+++ b/main/monit/APKBUILD
@@ -2,17 +2,18 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=monit
-pkgver=5.32.0
-pkgrel=0
+pkgver=5.33.0
+pkgrel=3
pkgdesc="Managing and monitoring on a UNIX system"
url="https://mmonit.com/monit/"
arch="all"
license="AGPL-3.0-or-later WITH OpenSSL-Exception"
-makedepends="openssl1.1-compat-dev zlib-dev"
+makedepends="openssl-dev>3 zlib-dev"
subpackages="$pkgname-doc $pkgname-openrc"
source="https://mmonit.com/monit/dist/monit-$pkgver.tar.gz
fix-invalid-use-of-vfork.patch
$pkgname.initd
+ $pkgname.confd
"
build() {
@@ -33,8 +34,10 @@ check() {
package() {
make DESTDIR="$pkgdir" install
- install -Dm 755 "$srcdir"/$pkgname.initd \
- "$pkgdir"/etc/init.d/$pkgname
+
+ install -Dm 755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -Dm 644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+
install -Dm 644 "$builddir"/monitrc \
"$pkgdir"/etc/monitrc
sed -i '/allow @monit/s/^/#/' \
@@ -47,7 +50,8 @@ package() {
}
sha512sums="
-dcb56bee23c5fef4abe08a2b1633e58b60c8863b335d651d26e87f5306b4f98bd4887d2bf6311c2fc11c9b99eb853226d836b9d212ab65c0f150872c7297e005 monit-5.32.0.tar.gz
+f84edfc03a7386bb712c3d1e1e74801c5deea596f533bd898f342c8435e4b9f4225ec24a4daee11c4d23a5742e9f8a9c666ebaa1ba56f13842ac7214d1d70d4f monit-5.33.0.tar.gz
549fda6dc92c2630152a29f5bb94d29a59abb06300e55eb93ed729758d73ed7dceaa2e9f491c9d33419920aef24c0360f865753be28af13a11216129529611ae fix-invalid-use-of-vfork.patch
-cf2b417a73766ff568f1df904f1ccdee1289037994c8ba1743cf1d04cb1ea8945f66d6cb2c9bab868f600a7c7ae57436d1f49cccbe22745b41282034e169ef25 monit.initd
+05475c60ddfbf8690a83b83c4ec238d6c8e2f1b38ee076f323937d48bd447bb3d415302c23223f7fc0783476cedda81200ac6e08aa60512838f91ce359f3aaae monit.initd
+0385a06684bae5f66585b7e1de732d9efcb3d13535e5410da85d0a04151ef0c9d8c28f862176a91e5ba769fca5ebab76e5423a8807709859a87314a513acee2d monit.confd
"
diff --git a/main/monit/monit.confd b/main/monit/monit.confd
new file mode 100644
index 00000000000..76c17a023be
--- /dev/null
+++ b/main/monit/monit.confd
@@ -0,0 +1,8 @@
+# Configuration for /etc/init.d/monit
+
+# Additional arguments for the monit command.
+#command_args=""
+
+# Run with the process supervisor. If you want to run the daemon with
+# start-stop-daemon instead, comment it out.
+supervisor="supervise-daemon"
diff --git a/main/monit/monit.initd b/main/monit/monit.initd
index 56323bbf984..f8317b25794 100644
--- a/main/monit/monit.initd
+++ b/main/monit/monit.initd
@@ -1,39 +1,46 @@
#!/sbin/openrc-run
-# Copyright 1999-2011 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License, v2 or later
-# $Header: /var/cvsroot/gentoo-x86/app-admin/monit/files/monit.initd-5.0-r1,v 1.2 2011/12/31 16:28:50 idl0r Exp $
-
-supervisor=supervise-daemon
name="monit"
description="Monit service supervisor"
-: ${monit_config:=${CONF:-/etc/monitrc}}
+extra_commands="checkconfig configtest"
+extra_started_commands="reload"
+
+# $monit_config is for backward compatibility (Alpine <3.19)
+: ${cfgfile:="${monit_config:-/etc/monitrc}"}
-command=/usr/bin/monit
-command_args="-c ${monit_config}"
+command="/usr/bin/monit"
+command_args="-c $cfgfile"
command_args_foreground="-I"
-extra_commands="configtest"
-extra_started_commands="reload"
+required_files="$cfgfile"
depend() {
use net
}
+start_pre() {
+ checkconfig
+}
+
+checkconfig() {
+ ebegin "Checking $name configuration"
+
+ if ! /usr/bin/monit -t -c "$cfgfile" >/dev/null 2>&1; then
+ eerror "$RC_SVCNAME has detected an error in your setup:"
+ /usr/bin/monit -t "$cfgfile"
+ return 1
+ fi
+ eend 0
+}
+
+# Deprecated, only for backward compatibility (Alpine <3.19)
configtest() {
- /usr/bin/monit -t -c "${monit_config}" 1>/dev/null 2>&1
- ret=$?
- if [ $ret -ne 0 ]; then
- eerror "${RC_SVCNAME} has detected an error in your setup:"
- /usr/bin/monit -t "${monit_config}"
- fi
- return $ret
+ checkconfig "$@"
}
reload() {
- ebegin "Reloading monit"
- $command -c "${monit_config}" reload >/dev/null 2>&1
+ ebegin "Reloading $name"
+ $command -c "$cfgfile" reload >/dev/null 2>&1
eend $?
}
-
diff --git a/main/mosh/APKBUILD b/main/mosh/APKBUILD
index fe4570c6689..eb1a869a01e 100644
--- a/main/mosh/APKBUILD
+++ b/main/mosh/APKBUILD
@@ -1,36 +1,51 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=mosh
-pkgver=1.3.2
-pkgrel=23
+pkgver=1.4.0
+pkgrel=8
pkgdesc="Mobile shell surviving disconnects with local echo and line editing"
-options="!check" # emulation-cursor-motion.test fails
url="https://mosh.org"
-arch="all !mips64"
+arch="all"
license="GPL-3.0-or-later"
depends="$pkgname-client $pkgname-server"
checkdepends="tmux perl"
-makedepends="ncurses-dev zlib-dev openssl1.1-compat-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"
-
-builddir="$srcdir"/$pkgname-$pkgver
+makedepends="
+ abseil-cpp-dev
+ autoconf
+ automake
+ gzip
+ libtool
+ ncurses-dev
+ openssl-dev>3
+ perl-dev
+ perl-io-tty
+ protobuf-dev
+ zlib-dev
+ "
+subpackages="
+ $pkgname-client
+ $pkgname-client-doc:clientdoc:noarch
+ $pkgname-server
+ $pkgname-server-doc:serverdoc:noarch
+ $pkgname-doc
+ $pkgname-bash-completion"
+source="https://github.com/mobile-shell/mosh/archive/refs/tags/mosh-$pkgver.tar.gz
+ fix-ppc64le-build-with-musl.patch
+ fix-makefile.am.patch
+ "
+builddir="$srcdir"/$pkgname-$pkgname-$pkgver
+options="!check" # emulation-cursor-motion.test fails
prepare() {
default_prepare
# Test unicode-later-combining is failing. Ideally we want to fix it.
sed -i '/unicode-later-combining.test/d' "$builddir"/src/tests/Makefile.am
- cd "$builddir"
./autogen.sh
}
-export CXXFLAGS="$CXXFLAGS -Wno-deprecated-declarations"
build() {
- cd "$builddir"
+ CXXFLAGS="$CXXFLAGS -std=c++17 -Wno-deprecated-declarations" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -44,22 +59,13 @@ build() {
}
check() {
- cd "$builddir"
make distcheck VERBOSE=1 V=1
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
-}
-
-bashcomp() {
- depends=""
- pkgdesc="Bash completions for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
-
install -Dm644 "$builddir"/conf/bash-completion/completions/mosh \
- "$subpkgdir"/usr/share/bash-completion/completions/$pkgname
+ "$pkgdir"/usr/share/bash-completion/completions/$pkgname
}
server() {
@@ -80,7 +86,26 @@ client() {
"$subpkgdir"/usr/bin/
}
+serverdoc() {
+ pkgdesc="Mosh server (documentation)"
+ install_if="mosh-server docs"
+ depends=""
+
+ gzip -n -9 "$pkgdir/usr/share/man/man1/mosh-server.1"
+ amove usr/share/man/man1/mosh-server.1.gz
+}
+
+clientdoc() {
+ pkgdesc="Mosh client (documentation)"
+ install_if="mosh-client docs"
+ depends=""
+
+ gzip -n -9 "$pkgdir/usr/share/man/man1/mosh-client.1"
+ amove usr/share/man/man1/mosh-client.1.gz
+}
+
sha512sums="
-f400e8fe7ba2ab7362311fc12a00ec69587505f901988aeee500fc68d38a388218500a3f602111c883ff23a9d43572114fcf0a8bf505df203691e5b597615769 mosh-1.3.2.tar.gz
-a276dde98a2dab63ad9c9c05468c55983a95f482878c5694713810b561eae1ea5618efc72431a17ee5b5014b12ee9709c6a8cbf582620294e7888cc837cd073c fix-ppc64le-build-with-musl.patch
+b91b0e719774f87a565c0f5870a6105edae1763fb7bed0697db152fa38dd748c6e413201887ad3c6c7c2fc75ccc003c2afbb60e754c6f6a977103f90a7caee4a mosh-1.4.0.tar.gz
+360bdd9e353eec982c98d68ec1a6806c9ccb6dac57bb58ddc98b2fb03dc14346a8bb613c50cada4efbfa4fee0efc5e69b3dcd1e5b164f6ec85f179a18b262d16 fix-ppc64le-build-with-musl.patch
+52a7c167f4150b03a787d124e3aed40f97215ef4171576f4ef75c504b93d28e5240e9fe0a71769b2ef32756565a46926d711f32ab6e07dca17dd53f774f82c5c fix-makefile.am.patch
"
diff --git a/main/mosh/fix-makefile.am.patch b/main/mosh/fix-makefile.am.patch
new file mode 100644
index 00000000000..beb3bf1bce2
--- /dev/null
+++ b/main/mosh/fix-makefile.am.patch
@@ -0,0 +1,10 @@
+--- a/scripts/Makefile.am 2022-10-27 01:18:11.000000000 +0000
++++ b/scripts/Makefile.am 2022-10-28 20:22:44.569619128 +0000
+@@ -5,6 +5,6 @@
+ CLEANFILES = $(bin_SCRIPTS)
+
+ mosh: mosh.pl ../VERSION Makefile
+- perl -Mdiagnostics -c $(srcdir)/mosh.pl
++ perl -c $(srcdir)/mosh.pl
+ @sed -e "s/\@VERSION\@/`cat ../VERSION`/" -e "s/\@PACKAGE_STRING\@/@PACKAGE_STRING@/" $(srcdir)/mosh.pl > mosh
+ @chmod a+x mosh
diff --git a/main/mosh/fix-ppc64le-build-with-musl.patch b/main/mosh/fix-ppc64le-build-with-musl.patch
index 8d918a963a7..c921a46b5fa 100644
--- a/main/mosh/fix-ppc64le-build-with-musl.patch
+++ b/main/mosh/fix-ppc64le-build-with-musl.patch
@@ -13,8 +13,8 @@ lost.
+++ b/src/frontend/mosh-server.cc
@@ -714,7 +714,12 @@
}
- window_size.ws_col = res->width;
- window_size.ws_row = res->height;
+ 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__))
diff --git a/main/mosquitto/APKBUILD b/main/mosquitto/APKBUILD
index 8c07937dc91..177b787c8b2 100644
--- a/main/mosquitto/APKBUILD
+++ b/main/mosquitto/APKBUILD
@@ -1,25 +1,26 @@
# Contributor: Pedro Filipe <xpecex@outlook.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mosquitto
-pkgver=2.0.14
+pkgver=2.0.18
pkgrel=0
pkgdesc="open source MQTT broker"
url="https://mosquitto.org/"
arch="all"
-license="EPL-1.0"
+license="EPL-1.0 OR EPL-2.0"
replaces="mosquitto-utils"
install="$pkgname.pre-install"
options="!check" # FIXME: some of the tests are flaky
-makedepends="openssl1.1-compat-dev c-ares-dev util-linux-dev libxslt"
+makedepends="openssl-dev>3 c-ares-dev util-linux-dev libxslt"
checkdepends="python3 cunit-dev"
-subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc $pkgname-libs++:_pp $pkgname-openrc
+subpackages="$pkgname-dev $pkgname-doc $pkgname-libs++:_pp $pkgname-openrc
$pkgname-libs $pkgname-clients"
-source="http://mosquitto.org/files/source/mosquitto-$pkgver.tar.gz
+source="https://mosquitto.org/files/source/mosquitto-$pkgver.tar.gz
mosquitto.initd
mosquitto.confd
"
-if [ -z "$BOOTSTRAP" ]; then
+if [ -z "$BOOTSTRAP" ] && [ -z "$APORTS_BOOTSTRAP" ]; then
+ subpackages="$pkgname-dbg $subpackages"
makedepends="$makedepends libwebsockets-dev cjson-dev"
_websockets=yes
_cjson=yes
@@ -29,6 +30,10 @@ else
fi
# secfixes:
+# 2.0.16-r0:
+# - CVE-2023-28366
+# - CVE-2023-0809
+# - CVE-2023-3592
# 2.0.10-r0:
# - CVE-2021-28166
# 2.0.8-r0:
@@ -55,7 +60,7 @@ prepare() {
# don't strip
sed -i -e "s|(INSTALL) -s|(INSTALL)|g" \
-e 's|--strip-program=${CROSS_COMPILE}${STRIP}||' \
- */Makefile */*/Makefile
+ ./*/Makefile ./*/*/Makefile
}
build() {
@@ -85,7 +90,7 @@ package() {
"$pkgdir"/etc/mosquitto/mosquitto.conf
install -Dm755 "$srcdir"/mosquitto.initd "$pkgdir"/etc/init.d/mosquitto
- install -Dm755 "$srcdir"/mosquitto.confd "$pkgdir"/etc/conf.d/mosquitto
+ install -Dm644 "$srcdir"/mosquitto.confd "$pkgdir"/etc/conf.d/mosquitto
}
_pp() {
@@ -105,7 +110,7 @@ clients() {
}
sha512sums="
-a9e4f41b9af679b30318570e86a465546024651373df10e3b132f4593b89d22d0dbac01bb7371a57132ba030a2e73971c612acb5c9ac12f5ccd06aa38d9444c2 mosquitto-2.0.14.tar.gz
+63f7e2811964bab5856848e6918627c47afc6534ff60aad5ece3d2fa330b407c9df14027610826e343ee68ff7d8d5d93f2459713061251ded478c42766946767 mosquitto-2.0.18.tar.gz
a527813957b6f2d7afdb7269bade61d99b3023a147861b38902971929ff342a7c8c276bdb808fcfe7e48fa3e5c7521a16d777e5a3313256b8bf1e759cec5b7b0 mosquitto.initd
678a8aaefb9181f5f4998304046e5a8737049f90cf6bbbfd5fd4549592728afe77cb536547b39ad1598d53fe0b7c03e1506b2683e7b936712b9fad4a317f4b43 mosquitto.confd
"
diff --git a/main/mpc1/APKBUILD b/main/mpc1/APKBUILD
index f61b4ddc56e..9bba4cd751a 100644
--- a/main/mpc1/APKBUILD
+++ b/main/mpc1/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mpc1
-pkgver=1.2.1
-pkgrel=0
+pkgver=1.3.1
+pkgrel=1
pkgdesc="Multiprecision C library"
url="http://www.multiprecision.org/"
arch="all"
@@ -14,8 +14,6 @@ source="https://ftp.gnu.org/gnu/mpc/mpc-$pkgver.tar.gz"
builddir="$srcdir"/mpc-$pkgver
build() {
- # workaround for a bug in configure script
- EGREP=egrep \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -36,4 +34,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="3279f813ab37f47fdcc800e4ac5f306417d07f539593ca715876e43e04896e1d5bceccfb288ef2908a3f24b760747d0dbd0392a24b9b341bc3e12082e5c836ee mpc-1.2.1.tar.gz"
+sha512sums="
+4bab4ef6076f8c5dfdc99d810b51108ced61ea2942ba0c1c932d624360a5473df20d32b300fc76f2ba4aa2a97e1f275c9fd494a1ba9f07c4cb2ad7ceaeb1ae97 mpc-1.3.1.tar.gz
+"
diff --git a/main/mpdecimal/10-pthreads.patch b/main/mpdecimal/10-pthreads.patch
deleted file mode 100644
index 2f1c961f19e..00000000000
--- a/main/mpdecimal/10-pthreads.patch
+++ /dev/null
@@ -1,32 +0,0 @@
---- a-mpdecimal-2.5.1/tests++/runshort.sh
-+++ b-mpdecimal-2.5.1/tests++/runshort.sh
-@@ -12,9 +12,11 @@
- export MallocLogFile=/dev/null
- export MallocDebugReport=crash
- ;;
-- AIX)
-+ AIX|Linux)
- # The thread stack size on AIX (96K) makes std::thread unusable
- # for runtest.cc, which needs around 300K.
-+ #
-+ # The same applies to Alpine Linux (musl).
- THREAD="--pthread"
- ;;
- *)
---- a-mpdecimal-2.5.1/tests++/runshort_alloc.sh
-+++ b-mpdecimal-2.5.1/tests++/runshort_alloc.sh
-@@ -12,9 +12,11 @@
- export MallocLogFile=/dev/null
- export MallocDebugReport=crash
- ;;
-- AIX)
-+ AIX|Linux)
- # The thread stack size on AIX (96K) makes std::thread unusable
- # for runtest.cc, which needs around 300K.
-+ #
-+ # The same applies to Alpine Linux (musl).
- THREAD="--pthread"
- ;;
- *)
-
-
diff --git a/main/mpdecimal/APKBUILD b/main/mpdecimal/APKBUILD
index 3db457243c5..78463dd6f5d 100644
--- a/main/mpdecimal/APKBUILD
+++ b/main/mpdecimal/APKBUILD
@@ -1,14 +1,14 @@
# Contributor: Stefan Stutz <stutz@pm.me>
# Maintainer: Stefan Stutz <stutz@pm.me>
pkgname=mpdecimal
-pkgver=2.5.1
-pkgrel=1
+pkgver=4.0.0
+pkgrel=0
pkgdesc="complete implementation of the General Decimal Arithmetic Specification"
url="https://www.bytereef.org/mpdecimal/index.html"
arch="all"
license="BSD-2-Clause"
subpackages="$pkgname-doc $pkgname-dev"
-source="https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-$pkgver.tar.gz 10-pthreads.patch"
+source="https://www.bytereef.org/software/mpdecimal/releases/mpdecimal-$pkgver.tar.gz"
build() {
./configure \
@@ -28,5 +28,6 @@ check() {
package() {
make install DESTDIR="$pkgdir"
}
-sha512sums="710cb5cb71dbcf3e170ca15869c148df0547b848400c6b6dd70c67d9961dbe1190af8fb4d1623bfb0ca2afe44f369a42e311ab5225ed89d4031cb49a3bd70f30 mpdecimal-2.5.1.tar.gz
-ca22894e5a01c2ad8107a86968692071c7c4dfc6ecad04972d278b45611ea4b5ed02259772a24800da43fbec5bb4335604f6745f599c2cbf0cc452238f7710b3 10-pthreads.patch"
+sha512sums="
+7610ac53ac79f7a8a33fa7a3e61515810444ec73ebca859df7a9ddc18e96b990c99323172810c9cc7f6d6e1502c0be308cd443d6c2d5d0c871648e4842e05d59 mpdecimal-4.0.0.tar.gz
+"
diff --git a/main/mpfr4/APKBUILD b/main/mpfr4/APKBUILD
index 7788fe578c6..41a3d76a0bc 100644
--- a/main/mpfr4/APKBUILD
+++ b/main/mpfr4/APKBUILD
@@ -1,7 +1,9 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mpfr4
-pkgver=4.1.0
+pkgver=4.2.1
pkgrel=0
+# strip p value, the patches are separate and are on https://www.mpfr.org/mpfr-current/
+_pkgver="${pkgver%_*}"
pkgdesc="multiple-precision floating-point library"
url="https://www.mpfr.org/"
arch="all"
@@ -16,14 +18,18 @@ makedepends="$makedepends_build $makedepends_host"
# it is not possible to calculate build order til after package is built.
# Therfore we call -dev package mpfr-dev instead of mpfr4-dev with a
# provides=mpfr-dev
-subpackages="$pkgname-doc mpfr-dev:dev"
+subpackages="$pkgname-doc mpfr-dev"
-source="https://www.mpfr.org/mpfr-$pkgver/mpfr-$pkgver.tar.xz"
-builddir="$srcdir/mpfr-$pkgver"
+source="https://www.mpfr.org/mpfr-$_pkgver/mpfr-$_pkgver.tar.xz"
+builddir="$srcdir/mpfr-$_pkgver"
provides="mpfr=$pkgver-r$pkgrel"
replaces="mpfr"
+# secfixes:
+# 4.2.1-r0:
+# - CVE-2023-25139
+
build() {
./configure \
--build=$CBUILD \
@@ -42,8 +48,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-dev() {
- default_dev
-}
-
-sha512sums="1bd1c349741a6529dfa53af4f0da8d49254b164ece8a46928cdb13a99460285622d57fe6f68cef19c6727b3f9daa25ddb3d7d65c201c8f387e421c7f7bee6273 mpfr-4.1.0.tar.xz"
+sha512sums="
+bc68c0d755d5446403644833ecbb07e37360beca45f474297b5d5c40926df1efc3e2067eecffdf253f946288bcca39ca89b0613f545d46a9e767d1d4cf358475 mpfr-4.2.1.tar.xz
+"
diff --git a/main/mpg123/APKBUILD b/main/mpg123/APKBUILD
index 9cc374fe554..90e1d25fbb1 100644
--- a/main/mpg123/APKBUILD
+++ b/main/mpg123/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mpg123
-pkgver=1.30.0
+pkgver=1.32.6
pkgrel=0
pkgdesc="Console-based MPEG Audio Player for Layers 1, 2 and 3"
options="libtool"
@@ -13,6 +13,7 @@ makedepends="libtool alsa-lib-dev linux-headers"
source="https://www.mpg123.org/download/mpg123-$pkgver.tar.bz2"
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -36,5 +37,5 @@ package() {
}
sha512sums="
-cf508bdff1f75320c7c4d77653ba8170cc0dd8c565390cfb6ba745ce3853816071c86becff3ce304b80481d220cac2113ad244930832ccc78d3d8da74112562f mpg123-1.30.0.tar.bz2
+a8f2833cd5b7568b96467917146d16dec7dbde527ba51b5f97b9f8093bbccab232803263f13a790b60ef36c9630d4277adaea41dac7dfd14052bf0be6620736b mpg123-1.32.6.tar.bz2
"
diff --git a/main/mqtt-exec/0001-Let-library-generate-client-id-when-unset.patch b/main/mqtt-exec/0001-Let-library-generate-client-id-when-unset.patch
deleted file mode 100644
index bd6411e5e31..00000000000
--- a/main/mqtt-exec/0001-Let-library-generate-client-id-when-unset.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 5ba6139990373e77d638f4dd903281673e145e7e Mon Sep 17 00:00:00 2001
-From: Natanael Copa <ncopa@alpinelinux.org>
-Date: Wed, 9 Oct 2019 15:00:51 +0200
-Subject: [PATCH] Let library generate client id when unset
-
----
- mqtt-exec.c | 17 ++++-------------
- 1 file changed, 4 insertions(+), 13 deletions(-)
-
-diff --git a/mqtt-exec.c b/mqtt-exec.c
-index 5c69325..ca585f9 100644
---- a/mqtt-exec.c
-+++ b/mqtt-exec.c
-@@ -151,8 +151,7 @@ int main(int argc, char *argv[])
- int keepalive = 60;
- int i, c, rc = 1;
- struct userdata ud;
-- char hostname[256];
-- static char id[MOSQ_MQTT_ID_MAX_LENGTH+1];
-+ char *id = NULL;
- struct mosquitto *mosq = NULL;
- char *username = NULL;
- char *password = NULL;
-@@ -174,9 +173,6 @@ int main(int argc, char *argv[])
-
- memset(&ud, 0, sizeof(ud));
-
-- memset(hostname, 0, sizeof(hostname));
-- memset(id, 0, sizeof(id));
--
- while ((c = getopt_long(argc, argv, "cdh:i:k:p:P:q:t:u:v", opts, &i)) != -1) {
- switch(c) {
- case 'c':
-@@ -194,7 +190,7 @@ int main(int argc, char *argv[])
- MOSQ_MQTT_ID_MAX_LENGTH);
- return 1;
- }
-- strncpy(id, optarg, sizeof(id)-1);
-+ id = optarg;
- break;
- case 'k':
- keepalive = atoi(optarg);
-@@ -276,12 +272,6 @@ int main(int argc, char *argv[])
- for (i=0; i <= ud.command_argc; i++)
- ud.command_argv[i] = optind+i < argc ? argv[optind+i] : NULL;
-
-- if (id[0] == '\0') {
-- /* generate an id */
-- gethostname(hostname, sizeof(hostname)-1);
-- snprintf(id, sizeof(id), "mqttexe/%x-%s", getpid(), hostname);
-- }
--
- mosquitto_lib_init();
- mosq = mosquitto_new(id, clean_session, &ud);
- if (mosq == NULL)
-@@ -289,7 +279,8 @@ int main(int argc, char *argv[])
-
- if (debug) {
- printf("host=%s:%d\nid=%s\ntopic_count=%zu\ncommand=%s\n",
-- host, port, id, ud.topic_count, ud.command_argv[0]);
-+ host, port, id ? id : "(null)", ud.topic_count,
-+ ud.command_argv[0]);
- mosquitto_log_callback_set(mosq, log_cb);
- }
-
---
-2.23.0
-
diff --git a/main/mqtt-exec/0001-authentication-expose-authentication-with-credential.patch b/main/mqtt-exec/0001-authentication-expose-authentication-with-credential.patch
deleted file mode 100644
index aba1cee9fa5..00000000000
--- a/main/mqtt-exec/0001-authentication-expose-authentication-with-credential.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From 5ee7377172dc0f30a64d009210db7efbf5d2219f Mon Sep 17 00:00:00 2001
-From: Kevin Daudt <me@ikke.info>
-Date: Wed, 14 Mar 2018 22:50:28 +0100
-Subject: [PATCH] authentication: expose authentication with credentials
-
-libmosquitto supports authentication with credentials, so allow settings
-credentials through parameters.
----
- mqtt-exec.c | 20 +++++++++++++++++++-
- 1 file changed, 19 insertions(+), 1 deletion(-)
-
-diff --git a/mqtt-exec.c b/mqtt-exec.c
-index fc5ab03..28251fb 100644
---- a/mqtt-exec.c
-+++ b/mqtt-exec.c
-@@ -71,8 +71,10 @@ int usage(int retcode)
- " -i,--id ID The id to use for this client\n"
- " -k,--keepalive SEC Set keepalive to SEC. Default is 60\n"
- " -p,--port PORT Set TCP port to PORT. Default is 1883\n"
-+" -P,--password PASSWORD Set password for authentication\n"
- " -q,--qos QOS Set Quality of Serive to level. Default is 0\n"
- " -t,--topic TOPIC Set MQTT topic to TOPIC. May be repeated\n"
-+" -u,--username USERNAME Set username for authentication\n"
- " -v,--verbose Pass over the topic to application as firs arg\n"
- " --will-topic TOPIC Set the client Will topic to TOPIC\n"
- " --will-payload MSG Set the client Will message to MSG\n"
-@@ -119,6 +121,8 @@ int main(int argc, char *argv[])
- {"qos", required_argument, 0, 'q' },
- {"topic", required_argument, 0, 't' },
- {"verbose", no_argument, 0, 'v' },
-+ {"username", required_argument, 0, 'u' },
-+ {"password", required_argument, 0, 'P' },
- {"will-topic", required_argument, 0, 0x1001 },
- {"will-payload", required_argument, 0, 0x1002 },
- {"will-qos", required_argument, 0, 0x1003 },
-@@ -145,6 +149,8 @@ int main(int argc, char *argv[])
- char hostname[256];
- static char id[MOSQ_MQTT_ID_MAX_LENGTH+1];
- struct mosquitto *mosq = NULL;
-+ char *username = NULL;
-+ char *password = NULL;
-
- char *will_payload = NULL;
- int will_qos = 0;
-@@ -166,7 +172,7 @@ int main(int argc, char *argv[])
- memset(hostname, 0, sizeof(hostname));
- memset(id, 0, sizeof(id));
-
-- while ((c = getopt_long(argc, argv, "cdh:i:k:p:q:t:v", opts, &i)) != -1) {
-+ while ((c = getopt_long(argc, argv, "cdh:i:k:p:P:q:t:u:v", opts, &i)) != -1) {
- switch(c) {
- case 'c':
- clean_session = false;
-@@ -191,6 +197,8 @@ int main(int argc, char *argv[])
- case 'p':
- port = atoi(optarg);
- break;
-+ case 'P':
-+ password = optarg;
- case 'q':
- ud.qos = atoi(optarg);
- if (!valid_qos_range(ud.qos, "QoS"))
-@@ -202,6 +210,8 @@ int main(int argc, char *argv[])
- sizeof(char *) * ud.topic_count);
- ud.topics[ud.topic_count-1] = optarg;
- break;
-+ case 'u':
-+ username = optarg;
- case 'v':
- ud.verbose = 1;
- break;
-@@ -286,6 +296,14 @@ int main(int argc, char *argv[])
- goto cleanup;
- }
-
-+ if (!username != !password) {
-+ fprintf(stderr, "Need to set both username and password\n");
-+ goto cleanup;
-+ }
-+
-+ if (username && password)
-+ mosquitto_username_pw_set(mosq, username, password);
-+
- #ifdef WITH_TLS
- if ((cafile || capath) && mosquitto_tls_set(mosq, cafile, capath, certfile,
- keyfile, NULL)) {
---
-2.18.0
-
diff --git a/main/mqtt-exec/APKBUILD b/main/mqtt-exec/APKBUILD
index edc24614af9..5e9d76b1b0e 100644
--- a/main/mqtt-exec/APKBUILD
+++ b/main/mqtt-exec/APKBUILD
@@ -1,41 +1,32 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mqtt-exec
-pkgver=0.4
-pkgrel=6
+pkgver=0.5
+pkgrel=3
pkgdesc="simple MQTT client that executes a command on messages"
url="https://github.com/ncopa/mqtt-exec"
arch="all"
license="MIT"
-depends=""
-depends_dev=""
makedepends="$depends_dev mosquitto-dev"
options="!check" # no checks available.
subpackages="$pkgname-dbg $pkgname-openrc"
source="mqtt-exec-$pkgver.tar.gz::https://github.com/ncopa/mqtt-exec/archive/v$pkgver.tar.gz
- 0001-authentication-expose-authentication-with-credential.patch
- 0001-Let-library-generate-client-id-when-unset.patch
- restore-default-sigpipe-handler.patch
mqtt-exec.initd
+ mqtt-exec.confd
"
-builddir="$srcdir"/mqtt-exec-$pkgver
-
build() {
- cd "$builddir"
- make || return 1
+ make
}
package() {
- cd "$builddir"
- install -D mqtt-exec "$pkgdir"/usr/bin/mqtt-exec || return 1
- install -Dm755 "$srcdir"/mqtt-exec.initd \
- "$pkgdir"/etc/init.d/mqtt-exec || return 1
+ install -D mqtt-exec "$pkgdir"/usr/bin/mqtt-exec
+
+ install -Dm755 "$srcdir"/mqtt-exec.initd "$pkgdir"/etc/init.d/mqtt-exec
+ install -Dm644 "$srcdir"/mqtt-exec.confd "$pkgdir"/etc/conf.d/mqtt-exec
}
sha512sums="
-1448b2dda0f27a5275c113331ea2bc073ec1740797c1bb5b472ee3e0fd4d3ef4bcdfa6dc42e7540ee154b291c3d70df89f0646899ebb1bfe585d1384797de5e7 mqtt-exec-0.4.tar.gz
-418058ecc05922df186d0dcbfeab7656977256a143f0346406598d1cf7331d3ba95a9b004bf3b6581be2e3cb2fbf5e69d7954b4c7ac488863f0318506c7f1c7c 0001-authentication-expose-authentication-with-credential.patch
-7007ad1afcba6b5c0e6224a30e3a6c1b9ce178603b27f575bb76d7b979b8e7f4c4c1226afa3ff8cf1f217fff832d0a69cff1cfbc205203dcb8a98afbf6f345ed 0001-Let-library-generate-client-id-when-unset.patch
-a211b3c43048cebb3429794c4a6d2a33778fff8658ffdc8d9756d6aef8e9c04b71720ff604731ffcdd98f4657126f70c1a28ad8f11ca998793f4c16f56845103 restore-default-sigpipe-handler.patch
-7e0c461d5ed73fb8bac1da5f78bb7d8204f692fc3980ee916057c19c3673591d4143a71cc846f863566abfcc9ada22281bb690bc146e9ae37f43896248e5ed4a mqtt-exec.initd
+55746aabe17d47153c01549a65f0db9278a39dc642e355b8416e905934a3abe233eb0ad763ae8add08bf6c3ad8ccaa97e9bac4372c8af6fea522f6670378acd7 mqtt-exec-0.5.tar.gz
+a5f918d9d874052211b8610c9686fde0b2641402c9be3aebd347083109d7457946d47dd99ebb4b765fddc264651a3182ed816a082add262d11c1a0157089ab60 mqtt-exec.initd
+f402e7a44d69a8fc09aa46a9922a68b21264281d69deeb61bdb8ec842b3f9c1ef8b7d83826997f9722c84f8ab15631dfdc55d9cfc416b3db1613c3ddcd53330e mqtt-exec.confd
"
diff --git a/main/mqtt-exec/mqtt-exec.confd b/main/mqtt-exec/mqtt-exec.confd
new file mode 100644
index 00000000000..0ba931e23bb
--- /dev/null
+++ b/main/mqtt-exec/mqtt-exec.confd
@@ -0,0 +1,28 @@
+# Configuration for /etc/init.d/mqtt-exec
+
+# The MQTT broker to connect to
+#mqtt_broker=msg.alpinelinux.org
+
+# The topics to subscribe to. Separate topics by whitespace.
+#mqtt_topics=
+
+# Set the topic for the Will
+#will_topic=
+
+# Whether the Will should be retained or not
+#will_retain=yes
+
+# The message in the Will
+#will_payload=
+
+# QOS level for the Will
+#will_qos=
+
+# Optional username to authenticate as
+#mqtt_user=
+
+# Password for the user
+#export MQTT_EXEC_PASSWORD=
+
+# Run with process supervisor. If you want to disable it, comment it out.
+supervisor=supervise-daemon
diff --git a/main/mqtt-exec/mqtt-exec.initd b/main/mqtt-exec/mqtt-exec.initd
index ff94d01d449..f69781d8b8c 100644
--- a/main/mqtt-exec/mqtt-exec.initd
+++ b/main/mqtt-exec/mqtt-exec.initd
@@ -1,12 +1,12 @@
#!/sbin/openrc-run
+: ${command_user:="${exec_user:-nobody}"}
: ${mqtt_broker:="msg.alpinelinux.org"}
: ${mqtt_topics:="git/aports/$git_branch"}
-command=/usr/bin/mqtt-exec
-command_user="${exec_user:-nobody}"
-pidfile=/run/$SVCNAME/mqtt-exec.pid
-supervisor=supervise-daemon
+command="/usr/bin/mqtt-exec"
+command_background="yes"
+pidfile="/run/$RC_SVCNAME/mqtt-exec.pid"
supervise_daemon_args="--stdout /dev/null --stderr /dev/null"
depend() {
@@ -15,7 +15,7 @@ depend() {
}
start_pre() {
- checkpath --directory --owner ${exec_user:-nobody} ${pidfile%/*}
+ checkpath --directory --owner "${command_user:-nobody}" "${pidfile%/*}"
set -- $command_args -h ${mqtt_broker} -v
local topic; for topic in $mqtt_topics; do
@@ -34,9 +34,11 @@ start_pre() {
if [ -n "$will_qos" ]; then
set -- "$@" --will-qos "$will_qos"
fi
+ if [ -n "$mqtt_user" ]; then
+ set -- "$@" --username "$mqtt_user"
+ fi
set -- "$@" -- ${exec_command}
command_args="$@"
}
-
diff --git a/main/mqtt-exec/restore-default-sigpipe-handler.patch b/main/mqtt-exec/restore-default-sigpipe-handler.patch
deleted file mode 100644
index 4a82d4788f6..00000000000
--- a/main/mqtt-exec/restore-default-sigpipe-handler.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-See https://gitlab.alpinelinux.org/alpine/aports/-/issues/13573
-
-diff -upr mqtt-exec-0.4.orig/mqtt-exec.c mqtt-exec-0.4/mqtt-exec.c
---- mqtt-exec-0.4.orig/mqtt-exec.c 2022-03-03 20:21:34.603698460 +0100
-+++ mqtt-exec-0.4/mqtt-exec.c 2022-03-03 20:22:00.017134230 +0100
-@@ -29,6 +29,11 @@ void message_cb(struct mosquitto *mosq,
- struct userdata *ud = (struct userdata *)obj;
- if (msg->payloadlen || ud->verbose) {
- if (ud->command_argv && fork() == 0) {
-+ /* mosquitto ignores SIGPIPE, this is a problem as it
-+ * gets inherited by all processes spawned by mqtt-exec
-+ * restore the default handler explicitly for now. */
-+ signal(SIGPIPE, SIG_DFL);
-+
- if (ud->verbose)
- ud->command_argv[ud->command_argc-2] = msg->topic;
- ud->command_argv[ud->command_argc-1] =
diff --git a/main/mrtg/APKBUILD b/main/mrtg/APKBUILD
index 41f0027294c..55eb4dcd1e1 100644
--- a/main/mrtg/APKBUILD
+++ b/main/mrtg/APKBUILD
@@ -2,11 +2,12 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mrtg
pkgver=2.17.10
-pkgrel=0
+pkgrel=1
pkgdesc="MRTG Network Latency Monitoring"
url="https://oss.oetiker.ch/mrtg/"
arch="all"
license="GPL-2.0-or-later"
+options="!check" # no testsuite
depends="perl"
makedepends="gd-dev libpng-dev zlib-dev"
subpackages="$pkgname-doc"
diff --git a/main/mt-st/APKBUILD b/main/mt-st/APKBUILD
index e9cdcb98226..8b9e944dc6c 100644
--- a/main/mt-st/APKBUILD
+++ b/main/mt-st/APKBUILD
@@ -1,14 +1,15 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=mt-st
-pkgver=1.4
+pkgver=1.7
pkgrel=0
pkgdesc="Linux SCSI tape driver aware magnetic tape control"
url="https://github.com/iustin/mt-st"
arch="all"
-license="GPL-2.0-or-later"
+license="GPL-2.0-only"
makedepends="linux-headers"
subpackages="$pkgname-doc $pkgname-bash-completion"
source="$pkgname-$pkgver.tar.gz::https://github.com/iustin/mt-st/archive/v$pkgver.tar.gz"
+options="!check"
build() {
make
@@ -22,4 +23,6 @@ package() {
COMPLETIONINSTALLDIR=$pkgdir/usr/share/bash-completion/completions install
}
-sha512sums="a07ac7bbecb00df248cf4de18917fcb10aa47bd1b5ef72e3da06a0cef7a1396c803db1cf085b5b827a130b760947da9837b35ff097fcf669815121295efa8463 mt-st-1.4.tar.gz"
+sha512sums="
+90d98a144b389c7d693fc9360aca5a84d37d60a38fe190c1b23d1c70542fae99b48f328671c72f95a3c357cfaf3ee3bbade5866f00bef319792212044ed23d14 mt-st-1.7.tar.gz
+"
diff --git a/main/mtd-utils/APKBUILD b/main/mtd-utils/APKBUILD
index e3d4b61d0ae..85da4c6ee80 100644
--- a/main/mtd-utils/APKBUILD
+++ b/main/mtd-utils/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Olliver Schinagl <oliver@schinagl.nl>
pkgname=mtd-utils
-pkgver=2.1.3
-pkgrel=2
+pkgver=2.2.0
+pkgrel=0
pkgdesc="Utilities for handling MTD devices, and for dealing with FTL, NFTL JFFS2, etc."
options="!check" # Tests fail on builder
url="http://www.linux-mtd.infradead.org/"
@@ -16,7 +16,7 @@ makedepends="
libtool
linux-headers
lzo-dev
- openssl1.1-compat-dev
+ openssl-dev>3
util-linux-dev
zlib-dev
zstd-dev
@@ -32,8 +32,7 @@ _subpackages="
$pkgname-dev
"
subpackages="$pkgname-doc $_subpackages"
-source="ftp://ftp.infradead.org/pub/mtd-utils/mtd-utils-$pkgver.tar.bz2
- "
+source="https://infraroot.at/pub/mtd/mtd-utils-$pkgver.tar.bz2"
build() {
./configure \
@@ -130,5 +129,5 @@ package() {
}
sha512sums="
-b4a6f2d0e6360a1ebc7262b4796d84e80723d9d789ae81134e133cd7d307430141f5f825cdd7b66f0198d026da2037479fec28b417a8336c801f7df78a1bff7b mtd-utils-2.1.3.tar.bz2
+985d1a600cc6d5c69dd4bd47c67612fcd35c009d772051c5e05b132a13c8a62534e0808930a398f78b3ef83e6f14a198169df71ac4c61c6415d879ddf64202de mtd-utils-2.2.0.tar.bz2
"
diff --git a/main/mtools/APKBUILD b/main/mtools/APKBUILD
index a15dde53ec8..95e31462fab 100644
--- a/main/mtools/APKBUILD
+++ b/main/mtools/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=mtools
-pkgver=4.0.40
-pkgrel=0
+pkgver=4.0.43
+pkgrel=1
pkgdesc="collection of utilities to access MS-DOS disks from Unix without mounting them"
url="https://www.gnu.org/software/mtools/"
arch="all"
@@ -12,6 +12,8 @@ source="https://ftp.gnu.org/gnu/mtools/mtools-$pkgver.tar.bz2
subpackages="$pkgname-dbg $pkgname-doc"
build() {
+ # todo: configure scripts are broken
+ export CFLAGS="$CFLAGS -DOS_linux"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -32,6 +34,6 @@ package() {
}
sha512sums="
-c3acf8723ae207d9eccdca3c2b55aed262175328417031397c14c7120a1e02f0c52c7fefc0145dfb09fb91f1d3e63254e7a45bc7edf50b1ecc87b7cc95d2f390 mtools-4.0.40.tar.bz2
+b70e483688124a653dd333ab127494dab12d413809680a4846dc4ae5c166a0b9938a2ab290e518c1f1a5b18ed96d2c2a29d92d61b16b772a4ab5e495379fe410 mtools-4.0.43.tar.bz2
3c41e2f84d7c2b15b119708453b30b6a056a443dbbf24198f2bdc82c99e6463974f7bb0bb13569fd1f929212506d43deed1ed77502c434a89b2da885baeab597 fix-uninitialized.patch
"
diff --git a/main/mtx/APKBUILD b/main/mtx/APKBUILD
index 93eae0f869f..01d646c5873 100644
--- a/main/mtx/APKBUILD
+++ b/main/mtx/APKBUILD
@@ -1,39 +1,34 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
-pkgname="mtx"
+pkgname=mtx
pkgver=1.3.12
-pkgrel=2
+pkgrel=4
pkgdesc="SCSI Media Changer and Backup Device Control"
-url="http://mtx.opensource-sw.net/"
+url="https://sourceforge.net/projects/mtx/"
arch="all"
-license="GPL-2.0"
-depends=""
-makedepends=""
-install=""
-subpackages=""
-source="https://downloads.sourceforge.net/mtx/$pkgname-$pkgver.tar.gz"
-
-_builddir="$srcdir/$pkgname-$pkgver"
+license="GPL-2.0-only"
+subpackages="$pkgname-doc"
+source="https://downloads.sourceforge.net/mtx/mtx-$pkgver.tar.gz"
+options="!check" # no tests
prepare() {
- cd "$_builddir"
- update_config_sub || return 1
+ default_prepare
+ update_config_sub
}
build() {
- cd "$_builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
- --datadir=/usr/share \
- || return 1
- make || return 1
+ --datadir=/usr/share
+ make
}
package() {
- cd "$_builddir"
- make prefix="$pkgdir" install
+ make prefix="$pkgdir" mandir="$pkgdir/usr/share/man" install
}
-sha512sums="d54c360608a2c25bd4d31af3e659de0557ed355fbe45d2dbf1341cfc7e468515eb07eb89200b77ee1fe2618139295ba3c3f4340cc43a7c506ced26aab2652028 mtx-1.3.12.tar.gz"
+sha512sums="
+d54c360608a2c25bd4d31af3e659de0557ed355fbe45d2dbf1341cfc7e468515eb07eb89200b77ee1fe2618139295ba3c3f4340cc43a7c506ced26aab2652028 mtx-1.3.12.tar.gz
+"
diff --git a/main/multipath-tools/0001-Disable-Werror-and-O2.patch b/main/multipath-tools/0001-Disable-Werror-and-O2.patch
index cc410cabbab..56401b78d7a 100644
--- a/main/multipath-tools/0001-Disable-Werror-and-O2.patch
+++ b/main/multipath-tools/0001-Disable-Werror-and-O2.patch
@@ -17,7 +17,7 @@ index d0ec9b4..2f5da9e 100644
-OPTFLAGS := -O2 -g $(STACKPROT) --param=ssp-buffer-size=4
-WARNFLAGS := -Werror -Wall -Wextra -Wformat=2 $(WFORMATOVERFLOW) -Werror=implicit-int \
-+OPTFLAGS := -g $(STACKPROT) --param=ssp-buffer-size=4
++OPTFLAGS := -Os -g $(STACKPROT) --param=ssp-buffer-size=4
+WARNFLAGS := -Wall -Wextra -Wformat=2 $(WFORMATOVERFLOW) -Werror=implicit-int \
-Werror=implicit-function-declaration -Werror=format-security \
$(WNOCLOBBERED) -Werror=cast-qual $(ERROR_DISCARDED_QUALIFIERS)
diff --git a/main/multipath-tools/APKBUILD b/main/multipath-tools/APKBUILD
index c2ce3f5f55a..6a0ed845a06 100644
--- a/main/multipath-tools/APKBUILD
+++ b/main/multipath-tools/APKBUILD
@@ -1,49 +1,63 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=multipath-tools
-pkgver=0.9.0
+pkgver=0.9.8
pkgrel=0
pkgdesc="Device Mapper Multipathing Driver"
url="http://christophe.varoqui.free.fr/"
arch="all"
license="LGPL-2.0-only"
depends="eudev device-mapper"
-makedepends="lvm2-dev libaio-dev readline-dev ncurses-dev eudev-dev
- userspace-rcu-dev json-c-dev perl"
+makedepends="
+ eudev-dev
+ json-c-dev
+ libaio-dev
+ lvm2-dev
+ ncurses-dev
+ perl
+ readline-dev
+ userspace-rcu-dev
+ util-linux-dev
+ "
subpackages="$pkgname-doc $pkgname-openrc"
source="$pkgname-$pkgver.tar.gz::https://github.com/opensvc/multipath-tools/archive/refs/tags/$pkgver.tar.gz
multipath-tools.conf
multipath.initd
multipathd.initd
+ multipathd.confd
0001-Disable-Werror-and-O2.patch
+ fix-basename.patch
"
options="!check"
build() {
- make -j1 prefix="/usr" \
+ make prefix="/usr" \
sysconfdir="/etc" \
+ configdir="/etc/multipath/conf.d" \
mandir="/usr/share/man" \
infodir="/usr/share/info"
}
package() {
- make -j1 DESTDIR="$pkgdir" install
+ make prefix="/usr" SYSTEMDPATH="/lib" LIB=lib DESTDIR="$pkgdir" install
install -D -m644 "$srcdir"/$pkgname.conf \
"$pkgdir"/etc/multipath.conf
install -D -m755 "$srcdir"/multipathd.initd \
"$pkgdir"/etc/init.d/multipathd
+ install -D -m644 "$srcdir"/multipathd.confd \
+ "$pkgdir"/etc/conf.d/multipathd
install -D -m755 "$srcdir"/multipath.initd \
"$pkgdir"/etc/init.d/multipath
install -D -m644 README.md \
"$pkgdir"/usr/share/doc/$pkgname/README.md
- install -D -m644 README.alua \
- "$pkgdir"/usr/share/doc/$pkgname/README.alua
}
sha512sums="
-6c417f6d1d116fa43bedb9f77769ece9cbb7b35b78a9b3558c41df2360e52a65a07314b12ab7e4a7bbc867b9755250de9db96a2f7eb4a6a37f0b0b3f0bbc840e multipath-tools-0.9.0.tar.gz
+4d73bcf6bce769a829c306c609b206ddba65a708620f458106e406dd18d12f9a9d97f400662daa8e6a75c9fdf7decb6dcbda92cb807b6c53522c7b4b2795b627 multipath-tools-0.9.8.tar.gz
e81462b22c0cbc92ea935d7544b9f9a0c4ccbcf13f3bc03dadf6de96407c9cf49964c9bbf02f12a134e1255c66421c6fde39d54b15eef975e8df81bdc88b2213 multipath-tools.conf
-97deeee57daee787d807da0a4dbf50baae047ddcda30925f7000ec822b5a17a3dc55196c3e032c8ffbc2caeac690ce5ca485b0a7c99f15e66bddaa000439112a multipath.initd
-2f913fed199f12f048eb042b5bb1a326f6f09cfe63d572ac269461d96ebf25b251576de22be7ba9ab631ded7af6fd47dac38fda3b29d00640c806181eb37447c multipathd.initd
-0322dd9c0caf1b43fe3932f57416456d9a12583d0da5c5087540d3d0819771e75277d0f7228ae4643cf48b9e02e032a551428c3a0465cd91ecbd830d89147570 0001-Disable-Werror-and-O2.patch
+6176a4ed32711ff8e417a58ca0cad8279d46ba98ec40095dbdb1035c49c0f82b06b5affbe2b79c5f2020b215ebe31ebeb408509dc810f5d21eb757e88be8c99f multipath.initd
+17853ca127259e129bbd61f24a830777d5b6d69f6500313fa62a0e0773de73387ce2c3a58a93a6182ee3d4891d1ec5fc2322cb674e787b326ef9cd8dcff5cbab multipathd.initd
+2adc2b8322645fec8763a662614b5682294f81dc0f1b9cacace5e5ea62125aa80f4874c1b10f11619e79871087846a946f7a383c22953ca1fbaeb9ea021c5114 multipathd.confd
+f5699633be498cc78ed27c222334b9e5c7271b852f9e687991e425a27db74cd9c01198792fe5fc7f5dedf47fee9b577e8c4803f5b0323b10544f3678d5c6c714 0001-Disable-Werror-and-O2.patch
+3f65a2006c03ba168eb3fcec537042ae9e0ddbcab48a051970fcc477bd88b2eeb16db79c9f06d4fc7b7e06411d46e159b7d13d2fe9613ba5be1ed68d9e66e54c fix-basename.patch
"
diff --git a/main/multipath-tools/fix-basename.patch b/main/multipath-tools/fix-basename.patch
new file mode 100644
index 00000000000..9feff3a06a0
--- /dev/null
+++ b/main/multipath-tools/fix-basename.patch
@@ -0,0 +1,14 @@
+diff --git a/libmultipath/configure.c b/libmultipath/configure.c
+index d809490..62154fd 100644
+--- a/libmultipath/configure.c
++++ b/libmultipath/configure.c
+@@ -43,6 +43,9 @@
+ #include "sysfs.h"
+ #include "io_err_stat.h"
+
++#define basename(dev) \
++ (strrchr((dev),'/') ? strrchr((dev),'/')+1 : (dev))
++
+ /* group paths in pg by host adapter
+ */
+ int group_by_host_adapter(struct pathgroup *pgp, vector adapters)
diff --git a/main/multipath-tools/multipath.initd b/main/multipath-tools/multipath.initd
index fd2bd1d0e4f..4b0a1d498bc 100644
--- a/main/multipath-tools/multipath.initd
+++ b/main/multipath-tools/multipath.initd
@@ -1,5 +1,7 @@
#!/sbin/openrc-run
+description="Initialize multipath"
+
depend() {
before checkfs fsck multipathd iscsid lvm
after modules device-mapper
diff --git a/main/multipath-tools/multipathd.confd b/main/multipath-tools/multipathd.confd
new file mode 100644
index 00000000000..c77d68669fb
--- /dev/null
+++ b/main/multipath-tools/multipathd.confd
@@ -0,0 +1,4 @@
+# Configuration for /etc/init.d/multipathd
+
+# Comment out to run without process supervisor.
+supervisor="supervise-daemon"
diff --git a/main/multipath-tools/multipathd.initd b/main/multipath-tools/multipathd.initd
index 931ef46e8a6..92e982422b8 100644
--- a/main/multipath-tools/multipathd.initd
+++ b/main/multipath-tools/multipathd.initd
@@ -1,7 +1,10 @@
#!/sbin/openrc-run
-supervisor=supervise-daemon
-command=/sbin/multipathd
-command_args_foreground="-d"
-output_log=/var/log/${RC_SVCNAME}.log
-error_log=/var/log/${RC_SVCNAME}.log
+description="Multipath monitoring daemon"
+
+command="/usr/sbin/multipathd"
+command_args="-d $command_args"
+command_background="yes"
+pidfile="/run/$RC_SVCNAME.pid"
+output_log="/var/log/$RC_SVCNAME.log"
+error_log="/var/log/$RC_SVCNAME.log"
diff --git a/main/musl-fts/APKBUILD b/main/musl-fts/APKBUILD
new file mode 100644
index 00000000000..4561f3dd6ee
--- /dev/null
+++ b/main/musl-fts/APKBUILD
@@ -0,0 +1,47 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=musl-fts
+pkgver=1.2.7
+pkgrel=6
+pkgdesc="Provides the fts(3) functions, which are missing in musl libc"
+url="https://github.com/void-linux/musl-fts/"
+arch="all"
+license="BSD-3-Clause"
+makedepends="automake autoconf libtool"
+subpackages="$pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/void-linux/musl-fts/archive/refs/tags/v$pkgver.tar.gz"
+provides="fts=$pkgver-r$pkgrel"
+
+prepare() {
+ default_prepare
+ ./bootstrap.sh
+}
+
+build() {
+ CFLAGS=-fPIC ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --sysconfdir=/etc \
+ --mandir=/usr/share/man \
+ --localstatedir=/var
+ make
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+
+ install -Dm644 musl-fts.pc -t "$pkgdir"/usr/lib/pkgconfig/
+}
+
+dev() {
+ default_dev
+ provides="fts-dev=$pkgver-r$pkgrel"
+}
+
+sha512sums="
+949f73b9406b06bd8712c721b4ec89afcb37d4eaef5666cccf3712242d3a57fc0acf3ca994934e0f57c1e92f40521a9370132a21eb6d1957415a83c76bf20feb musl-fts-1.2.7.tar.gz
+"
diff --git a/main/musl-legacy-error/APKBUILD b/main/musl-legacy-error/APKBUILD
new file mode 100644
index 00000000000..dad76e64c04
--- /dev/null
+++ b/main/musl-legacy-error/APKBUILD
@@ -0,0 +1,21 @@
+# Maintainer:
+pkgname=musl-legacy-error
+pkgver=0.5
+pkgrel=1
+pkgdesc="Legacy compatibility error.h header for musl libc"
+url="https://voidlinux.org"
+arch="noarch"
+# license of the void-packages repository ?
+license="BSD-2-Clause"
+source="error.h"
+builddir="$srcdir"
+options="!check" # no code
+
+package() {
+ install -Dm644 error.h \
+ -t "$pkgdir"/usr/include
+}
+
+sha512sums="
+f71a0e26315c71988573523dcec12e666d10578b59096f52dfea3613cb0eb694bd53df5f7d6764e73157612eafe1e6ef9c37a8357f300105e4c4e6dd28d49761 error.h
+"
diff --git a/main/musl-legacy-error/error.h b/main/musl-legacy-error/error.h
new file mode 100644
index 00000000000..9a4e1f8d006
--- /dev/null
+++ b/main/musl-legacy-error/error.h
@@ -0,0 +1,60 @@
+#ifndef _ERROR_H_
+#define _ERROR_H_
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+
+#warning usage of non-standard #include <error.h> is deprecated
+
+static unsigned int error_message_count = 0;
+
+static inline void error(int status, int errnum, const char* format, ...)
+{
+ /* should be fflush(stdout), but that's unspecified if stdout has been closed;
+ * stick with fflush(NULL) for simplicity (glibc checks if the fd is still valid) */
+ fflush(NULL);
+
+ va_list ap;
+ fprintf(stderr, "%s: ", program_invocation_name);
+ va_start(ap, format);
+ vfprintf(stderr, format, ap);
+ va_end(ap);
+ if (errnum)
+ fprintf(stderr, ": %s", strerror(errnum));
+ fprintf(stderr, "\n");
+ error_message_count++;
+ if (status)
+ exit(status);
+}
+
+static int error_one_per_line = 0;
+
+static inline void error_at_line(int status, int errnum, const char *filename,
+ unsigned int linenum, const char *format, ...)
+{
+ va_list ap;
+ if (error_one_per_line) {
+ static const char *old_filename;
+ static int old_linenum;
+ if (linenum == old_linenum && filename == old_filename)
+ return;
+ old_filename = filename;
+ old_linenum = linenum;
+ }
+ fprintf(stderr, "%s: %s:%u: ", program_invocation_name, filename, linenum);
+ va_start(ap, format);
+ vfprintf(stderr, format, ap);
+ va_end(ap);
+ if (errnum)
+ fprintf(stderr, ": %s", strerror(errnum));
+ fprintf(stderr, "\n");
+ error_message_count++;
+ if (status)
+ exit(status);
+}
+
+
+#endif /* _ERROR_H_ */
diff --git a/main/musl-locales/APKBUILD b/main/musl-locales/APKBUILD
new file mode 100644
index 00000000000..3a8b71e9787
--- /dev/null
+++ b/main/musl-locales/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: TBK <alpine@jjtc.eu>
+# Maintainer: TBK <alpine@jjtc.eu>
+pkgname=musl-locales
+pkgver=0.1.0
+pkgrel=1
+arch="all"
+url="https://git.adelielinux.org/adelie/musl-locales/-/wikis/home"
+pkgdesc="Locales support for musl"
+license="LGPL-3.0-only"
+options="!check" # No test suite
+makedepends="cmake gettext-dev samurai"
+subpackages="$pkgname-lang"
+source="https://git.adelielinux.org/adelie/musl-locales/-/archive/$pkgver/musl-locales-$pkgver.tar.bz2
+ add-all-available-locales.patch
+ "
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ "$CMAKE_CROSSOPTS"
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+lang() {
+ default_lang
+ license="MIT"
+}
+
+sha512sums="
+4c7ae748f70d02195d221ea9b37e0f033e15c9364b797313727303830fb1d848693facb5267a1d7f354508383d72817e3322f001d86842fa716cecf6ef95c7ff musl-locales-0.1.0.tar.bz2
+dac294f9e6207686b8dcbedfc71db4e7e8c648ca6e11992dd6b606e0fcefc44d15db192753f8a6c902941a5aa9540e54fac2747bfa59058b087c46c49ac314de add-all-available-locales.patch
+"
diff --git a/main/musl-locales/add-all-available-locales.patch b/main/musl-locales/add-all-available-locales.patch
new file mode 100644
index 00000000000..fff08c92350
--- /dev/null
+++ b/main/musl-locales/add-all-available-locales.patch
@@ -0,0 +1,24 @@
+Right now we patch e.g. gnome-desktop to list all languages. Musl itself doesn't support
+this localization (so strings from the c lib will always be in English), but at least
+this way users can get translated UIs
+diff --git a/locale.c b/locale.c
+index ede426d..7ae9e67 100644
+--- a/locale.c
++++ b/locale.c
+@@ -107,15 +107,7 @@ static void list_locale()
+ const char *locpath = getenv("MUSL_LOCPATH");
+ printf("C\n");
+ printf("C.UTF-8\n");
+- if(locpath != NULL)
+- {
+- DIR *dir = opendir(locpath);
+- struct dirent *pDir;
+- while ((pDir = readdir(dir)) != NULL){
+- if (strcmp(pDir->d_name,".") && strcmp(pDir->d_name,".."))
+- printf("%s\n",pDir->d_name);
+- }
+- }
++ printf("a_DJ\naa_ER\naa_ET\naf_ZA\nagr_PE\nak_GH\nam_ET\nan_ES\nanp_IN\nar_AE\nar_BH\nar_DZ\nar_EG\nar_IN\nar_IQ\nar_JO\nar_KW\nar_LB\nar_LY\nar_MA\nar_OM\nar_QA\nar_SA\nar_SD\nar_SS\nar_SY\nar_TN\nar_YE\nas_IN\nast_ES\nayc_PE\naz_AZ\naz_IR\nbe_BY\nbem_ZM\nber_DZ\nber_MA\nbg_BG\nbhb_IN\nbho_IN\nbho_NP\nbi_VU\nbn_BD\nbn_IN\nbo_CN\nbo_IN\nbr_FR\nbrx_IN\nbs_BA\nbyn_ER\nca_AD\nca_ES\nca_FR\nca_IT\nce_RU\nch_DE\nchr_US\ncmn_TW\ncrh_UA\ncs_CZ\ncsb_PL\ncv_RU\ncy_GB\nda_DK\nde_AT\nde_BE\nde_CH\nde_DE\nde_IT\nde_LI\nde_LU\ndoi_IN\ndsb_DE\ndv_MV\ndz_BT\nel_CY\nel_GR\nen_AG\nen_AU\nen_BW\nen_CA\nen_DK\nen_GB\nen_HK\nen_IE\nen_IL\nen_IN\nen_NG\nen_NZ\nen_PH\nen_SC\nen_SG\nen_US\nen_ZA\nen_ZM\nen_ZW\neo\nes_AR\nes_BO\nes_CL\nes_CO\nes_CR\nes_CU\nes_DO\nes_EC\nes_ES\nes_GT\nes_HN\nes_MX\nes_NI\nes_PA\nes_PE\nes_PR\nes_PY\nes_SV\nes_US\nes_UY\nes_VE\net_EE\neu_ES\nfa_IR\nff_SN\nfi_FI\nfil_PH\nfo_FO\nfr_BE\nfr_CA\nfr_CH\nfr_FR\nfr_LU\nfur_IT\nfy_DE\nfy_NL\nga_IE\ngd_GB\ngez_ER\ngez_ET\ngl_ES\ngu_IN\ngv_GB\nha_NG\nhak_TW\nhe_IL\nhi_IN\nhif_FJ\nhne_IN\nhr_HR\nhsb_DE\nht_HT\nhu_HU\nhy_AM\nia_FR\nid_ID\nig_NG\nik_CA\nis_IS\nit_CH\nit_IT\niu_CA\nja_JP\nka_GE\nkab_DZ\nkk_KZ\nkl_GL\nkm_KH\nkn_IN\nko_KR\nkok_IN\nks_IN\nku_TR\nkw_GB\nky_KG\nlb_LU\nlg_UG\nli_BE\nli_NL\nlij_IT\nln_CD\nlo_LA\nlt_LT\nlv_LV\nlzh_TW\nmag_IN\nmai_IN\nmai_NP\nmfe_MU\nmg_MG\nmhr_RU\nmi_NZ\nmiq_NI\nmjw_IN\nmk_MK\nml_IN\nmn_MN\nmni_IN\nmnw_MM\nmr_IN\nms_MY\nmt_MT\nmy_MM\nnan_TW\nnb_NO\nnds_DE\nnds_NL\nne_NP\nnhn_MX\nniu_NU\nniu_NZ\nnl_AW\nnl_BE\nnl_NL\nnn_NO\nnr_ZA\nnso_ZA\noc_FR\nom_ET\nom_KE\nor_IN\nos_RU\npa_IN\npa_PK\npap_AW\npap_CW\npl_PL\nps_AF\npt_BR\npt_PT\nquz_PE\nraj_IN\nro_RO\nru_RU\nru_UA\nrw_RW\nsa_IN\nsah_RU\nsat_IN\nsc_IT\nsd_IN\nse_NO\nsgs_LT\nshn_MM\nshs_CA\nsi_LK\nsid_ET\nsk_SK\nsl_SI\nsm_WS\nso_DJ\nso_ET\nso_KE\nso_SO\nsq_AL\nsq_MK\nsr_ME\nsr_RS\nss_ZA\nst_ZA\nsv_FI\nsv_SE\nsw_KE\nsw_TZ\nszl_PL\nta_IN\nta_LK\ntcy_IN\nte_IN\ntg_TJ\nth_TH\nthe_NP\nti_ER\nti_ET\ntig_ER\ntk_TM\ntl_PH\ntn_ZA\nto_TO\ntpi_PG\ntr_CY\ntr_TR\nts_ZA\ntt_RU\nug_CN\nuk_UA\nunm_US\nur_IN\nur_PK\nuz_UZ\nve_ZA\nvi_VN\nwa_BE\nwae_CH\nwal_ET\nwo_SN\nxh_ZA\nyi_US\nyo_NG\nyue_HK\nyuw_PG\nzh_CN\nzh_HK\nzh_SG\nzh_TW\nzu_ZA\n");
+ }
+
+ static void list_charmaps()
diff --git a/main/musl-nscd/APKBUILD b/main/musl-nscd/APKBUILD
index 615ca96c475..baab60de3c0 100644
--- a/main/musl-nscd/APKBUILD
+++ b/main/musl-nscd/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Michael Aldridge <maldridge@voidlinux.org>
pkgname=musl-nscd
pkgver=1.1.1
-pkgrel=0
+pkgrel=4
pkgdesc="Implementation of nscd for nsswitch modules for musl"
url="https://github.com/pikhq/musl-nscd"
arch="all"
@@ -10,7 +10,7 @@ license="MIT"
depends_dev="bison flex"
makedepends="$depends_dev"
install="$pkgname.pre-install"
-subpackages="$pkgname-dev $pkgname-doc"
+subpackages="$pkgname-dev $pkgname-doc $pkgname-openrc"
source="
$pkgname-$pkgver.tar.gz::https://github.com/pikhq/musl-nscd/archive/v$pkgver.tar.gz
musl-nscd.initd
@@ -37,5 +37,7 @@ package() {
"$pkgdir"/etc/init.d/nscd
}
-sha512sums="f067b1491c6c46c3070aa2f61328b874eb6ad390c2efc928e2fee591ef5997b40400e29495546a861e803460efa46024c7a01c53ddae5b763ef63c2f274fceea musl-nscd-1.1.1.tar.gz
-c2e555527cc3d2692b91dbdd2d94ea9f2db7dcc923423517c0aa33869f48e91c84f5d2437d9d278d97b4b2e878d84414f066168d554034bfaab9ae5f8ef73772 musl-nscd.initd"
+sha512sums="
+f067b1491c6c46c3070aa2f61328b874eb6ad390c2efc928e2fee591ef5997b40400e29495546a861e803460efa46024c7a01c53ddae5b763ef63c2f274fceea musl-nscd-1.1.1.tar.gz
+6cf6c030545156de9137520de0c5b80802e5b478cf334aa33d20d00735f897af6ae1c9fca2cc2bd84b1f0bc25d05e6e8b520637f4e25dc12ba355ae0b180ab73 musl-nscd.initd
+"
diff --git a/main/musl-nscd/musl-nscd.initd b/main/musl-nscd/musl-nscd.initd
index d13e2333eaa..215ee06ac23 100644
--- a/main/musl-nscd/musl-nscd.initd
+++ b/main/musl-nscd/musl-nscd.initd
@@ -2,8 +2,9 @@
name="$SVCNAME"
command="/usr/sbin/nscd"
-command_args="$NSCD_OPTS -d -p /var/run/$SVCNAME.pid"
-pidfile="/var/run/$SVCNAME.pid"
+command_args="$NSCD_OPTS"
+pidfile="/run/$SVCNAME.pid"
+command_background=true
start_pre() {
mkdir -p /var/run/nscd
diff --git a/main/musl-nscd/musl-nscd.pre-install b/main/musl-nscd/musl-nscd.pre-install
index 45e214e5ad6..351c086c8a4 100644
--- a/main/musl-nscd/musl-nscd.pre-install
+++ b/main/musl-nscd/musl-nscd.pre-install
@@ -1,6 +1,6 @@
#!/bin/sh
addgroup -S nscd 2>/dev/null
-adduser -S -D -H -s /bin/false -G nscd -g nscd nscd 2>/dev/null
+adduser -S -D -H -s /sbin/nologin -G nscd -g nscd nscd 2>/dev/null
exit 0
diff --git a/main/musl-obstack/APKBUILD b/main/musl-obstack/APKBUILD
index 4d28d110987..ecd4b767b5f 100644
--- a/main/musl-obstack/APKBUILD
+++ b/main/musl-obstack/APKBUILD
@@ -1,11 +1,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=musl-obstack
pkgver=1.2.3
-pkgrel=0
+pkgrel=2
pkgdesc="Standalone library to implement GNU libc's obstack"
url="https://github.com/void-linux/musl-obstack"
arch="all"
-license="LGPL-2.1-or-later"
+license="GPL-2.0-or-later"
options="!check" # no test suite
makedepends="automake autoconf libtool"
subpackages="$pkgname-dev"
diff --git a/main/musl/APKBUILD b/main/musl/APKBUILD
index f27abcbbcf0..5f40cc7da30 100644
--- a/main/musl/APKBUILD
+++ b/main/musl/APKBUILD
@@ -1,26 +1,25 @@
# Contributor: Ariadne Conill <ariadne@dereferenced.org>
-# Maintainer: Timo Teräs <timo.teras@iki.fi>
+# Contributor: Timo Teräs <timo.teras@iki.fi>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=musl
-pkgver=1.2.3
-pkgrel=1
+pkgver=1.2.5
+pkgrel=0
pkgdesc="the musl c library (libc) implementation"
url="https://musl.libc.org/"
arch="all"
license="MIT"
-options="lib64"
+options="lib64 !check"
subpackages="
$pkgname-dbg
$pkgname-libintl:libintl:noarch
$pkgname-dev
- libc6-compat:compat:noarch
"
case "$BOOTSTRAP" in
nocc) pkgname="musl-dev"; subpackages="";;
nolibc) ;;
*) subpackages="$subpackages $pkgname-utils";;
esac
-_commit="v1.2.3"
-source="musl-$_commit.tar.gz::https://git.musl-libc.org/cgit/musl/snapshot/$_commit.tar.gz
+source="https://musl.libc.org/releases/musl-$pkgver.tar.gz
handle-aux-at_base.patch
ldconfig
@@ -29,6 +28,8 @@ source="musl-$_commit.tar.gz::https://git.musl-libc.org/cgit/musl/snapshot/$_com
getent.c
iconv.c
"
+# this is needed for BOOTSTRAP=nocc (see above)
+builddir="$srcdir/musl-$pkgver"
# secfixes:
# 1.2.2_pre2-r0:
@@ -38,24 +39,36 @@ source="musl-$_commit.tar.gz::https://git.musl-libc.org/cgit/musl/snapshot/$_com
# 1.1.15-r4:
# - CVE-2016-8859
-builddir="$srcdir"/$_commit
+prepare() {
+ default_prepare
+
+ echo "$pkgver" > VERSION
+}
build() {
[ "$BOOTSTRAP" = "nocc" ] && return 0
# provide minimal libssp_nonshared.a so we don't need libssp from gcc
- ${CROSS_COMPILE}gcc $CPPFLAGS $CFLAGS -c "$srcdir"/__stack_chk_fail_local.c -o __stack_chk_fail_local.o
+ ${CROSS_COMPILE}cc $CFLAGS -c "$srcdir"/__stack_chk_fail_local.c -o __stack_chk_fail_local.o
${CROSS_COMPILE}ar r libssp_nonshared.a __stack_chk_fail_local.o
if [ "$BOOTSTRAP" != "nolibc" ]; then
# getconf/getent/iconv
local i
for i in getconf getent iconv ; do
- ${CROSS_COMPILE}gcc $CPPFLAGS $CFLAGS "$srcdir"/$i.c -o $i
+ ${CROSS_COMPILE}cc $CPPFLAGS $CFLAGS "$srcdir"/$i.c -o $i
done
fi
+ # musl sets a sane default for flags that they tune based on -O2 with alignment things turned off.
+ # see https://git.musl-libc.org/cgit/musl/commit/?id=b90841e2583237a4132bbbd74752e0e9563660cd ,
+ # and the discussion in https://www.openwall.com/lists/musl/2023/05/22/2
+ # this makes libc.so about 5% bigger in itself, but should yield an overall improved libc.so for general use.
+ # NB: if musl detects an -O it skips its own, so remove just the O value
+ export CFLAGS="${CFLAGS/-O* /}"
+
# note: not autotools
+ # shellcheck disable=2153
LDFLAGS="$LDFLAGS -Wl,-soname,libc.musl-$CARCH.so.1" \
./configure \
--build=$CBUILD \
@@ -65,8 +78,7 @@ build() {
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--localstatedir=/var \
- --enable-debug \
- --disable-eh-frame
+ --enable-debug
make
}
@@ -82,6 +94,7 @@ package() {
mips64*) ARCH="mips64" ;;
mips*) ARCH="mips" ;;
riscv64) ARCH="riscv64" ;;
+ loongarch64) ARCH="loongarch64" ;;
esac
if [ "$BOOTSTRAP" = "nocc" ]; then
@@ -92,7 +105,8 @@ package() {
cp libssp_nonshared.a "$pkgdir"/usr/lib
# make LDSO the be the real file, and libc the symlink
- local LDSO=$(make -f Makefile --eval "$(echo -e 'print-ldso:\n\t@echo $$(basename $(LDSO_PATHNAME))')" print-ldso)
+ local rule="$(printf "%s\n\t%s\n" 'print-ldso:' '@echo $$(basename $(LDSO_PATHNAME))')"
+ local LDSO=$(make -f Makefile --eval "$rule" print-ldso)
mv -f "$pkgdir"/usr/lib/libc.so "$pkgdir"/lib/"$LDSO"
ln -sf "$LDSO" "$pkgdir"/lib/libc.musl-$CARCH.so.1
ln -sf ../../lib/"$LDSO" "$pkgdir"/usr/lib/libc.so
@@ -112,6 +126,9 @@ utils() {
replaces="libiconv"
license="MIT AND BSD-2-Clause AND GPL-2.0-or-later"
+ # for backwards compatibility
+ provides="libc-utils=$pkgver-r$pkgrel"
+
mkdir -p "$subpkgdir"/usr "$subpkgdir"/sbin
mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
@@ -134,37 +151,15 @@ libintl() {
"$subpkgdir"/usr/include/
}
-compat() {
- pkgdesc="compatibility libraries for glibc"
-
- mkdir -p "$subpkgdir"/lib
- # definitive source is https://sourceware.org/glibc/wiki/ABIList
- case "$CARCH" in
- aarch64) _ld="lib/ld-linux-aarch64.so.1" ;;
- armel) _ld="lib/ld-linux.so.3" ;;
- armhf) _ld="lib/ld-linux-armhf.so.3" ;;
- armv7) _ld="lib/ld-linux-armhf.so.3" ;;
- mips) _ld="lib/ld.so.1" ;;
- mips64) _ld="lib64/ld.so.1" ;;
- mipsel) _ld="lib/ld.so.1" ;;
- mips64el) _ld="lib64/ld.so.1" ;;
- ppc) _ld="lib/ld.so.1" ;;
- ppc64) _ld="lib64/ld64.so.1" ;;
- ppc64le) _ld="lib64/ld64.so.2" ;;
- s390x) _ld="lib/ld64.so.1" ;;
- x86) _ld="lib/ld-linux.so.2" ;;
- x86_64) _ld="lib64/ld-linux-x86-64.so.2";;
- esac
- mkdir -p "$subpkgdir/${_ld%/*}"
- ln -sf "/lib/libc.musl-$CARCH.so.1" "$subpkgdir/$_ld"
+dev() {
+ default_dev
- for i in libc.so.6 libcrypt.so.1 libm.so.6 libpthread.so.0 librt.so.1 libutil.so.1; do
- ln -sf "/lib/libc.musl-$CARCH.so.1" "$subpkgdir/lib/$i"
- done
+ # for backwards compatibility
+ provides="libc-dev=$pkgver-r$pkgrel"
}
sha512sums="
-9a1b8f9208d99582ac00e3c46c829aa1fad3b7f09aa7d6822f02f25542453d3d977c69519ad01430b8dd624ac9dc70f47d611e36aefd7fef31ea47a7679e3111 musl-v1.2.3.tar.gz
+7bb7f7833923cd69c7a1a9b8a5f1784bfd5289663eb6061dcd43d583e45987df8a68a1be05d75cc1c88a3f5b610653d1a70f4a9cff4d8f7fd41ae73ee058c17c musl-1.2.5.tar.gz
a76f79b801497ad994746cf82bb6eaf86f9e1ae646e6819fbae8532a7f4eee53a96ac1d4e789ec8f66aea2a68027b0597f7a579b3369e01258da8accfce41370 handle-aux-at_base.patch
8d3a2d5315fc56fee7da9abb8b89bb38c6046c33d154c10d168fb35bfde6b0cf9f13042a3bceee34daf091bc409d699223735dcf19f382eeee1f6be34154f26f ldconfig
062bb49fa54839010acd4af113e20f7263dde1c8a2ca359b5fb2661ef9ed9d84a0f7c3bc10c25dcfa10bb3c5a4874588dff636ac43d5dbb3d748d75400756d0b __stack_chk_fail_local.c
diff --git a/main/nagios-plugins/APKBUILD b/main/nagios-plugins/APKBUILD
index 6df90e7c0d5..fc01ab15284 100644
--- a/main/nagios-plugins/APKBUILD
+++ b/main/nagios-plugins/APKBUILD
@@ -3,8 +3,8 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jeff Bilyk <jbilyk@gmail.com>
pkgname=nagios-plugins
-pkgver=2.4.0
-pkgrel=0
+pkgver=2.4.5
+pkgrel=1
pkgdesc="Plugins for Nagios to check services on hosts"
url="https://nagios-plugins.org/"
arch="all"
@@ -20,13 +20,13 @@ _depends_sensors="grep lm-sensors"
_depends_snmp="net-snmp-tools"
makedepends="openssh-client bind-tools samba-client fping grep rpcbind
lm-sensors net-snmp-tools
- file freeradius-client-dev libdbi-dev libpq linux-headers mariadb-dev
+ file freeradius-client-dev<1.1.8 libdbi-dev libpq linux-headers mariadb-dev
mariadb-connector-c-dev perl
- net-snmp-dev openldap-dev opensmtpd openssl1.1-compat-dev libpq-dev"
+ net-snmp-dev openldap-dev openssl-dev>3 libpq-dev"
install="$pkgname.post-upgrade"
pkgusers="nagios"
pkggroups="nagios"
-options="suid"
+options="suid !check"
source="https://github.com/nagios-plugins/nagios-plugins/releases/download/release-$pkgver/nagios-plugins-$pkgver.tar.gz
fix-compilation-warnings-about-sys-poll.patch
check_openrc
@@ -50,14 +50,12 @@ subpackages="$subpackages
$pkgname-all:_all" # all must be the last
_plugins="$_plugins openrc tcp"
-
prepare() {
- default_prepare
+ default_prepare
update_config_sub
}
build() {
-
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -68,8 +66,10 @@ build() {
--libexecdir="/$_plugins_dir" \
--localstatedir=/var/nagios \
--with-ipv6 \
- --with-ps-command="/bin/ps -o stat,pid,ppid,vsz,rss,comm,args" \
- --with-ps-format="%s %d %d %d %d %s %n" \
+ --with-mailq-command=/usr/bin/mailq \
+ --with-sudo-command=/usr/bin/sudo \
+ --with-ps-command="/bin/busybox ps -o stat,pid,ppid,vsz,rss,comm,args" \
+ --with-ps-format="%s %d %d %s %s %s %n" \
--with-ps-varlist="procstat,&procpid,&procppid,&procvsz,&procrss,procprog,&pos" \
--with-ps-cols=7 \
--with-ping-command="/bin/ping -c %d %s" \
@@ -152,7 +152,7 @@ _all() {
}
sha512sums="
-f6f4cd604d28161f36c1429dbfa8f07e9fa468d8d8c21925d53d7049f0765504cb785e1f1189a0c93aa1f0cd1fe3985409c420b7724aa39790836af5c3f725ff nagios-plugins-2.4.0.tar.gz
+f2575d547ddebff54ac664d2aaa287b29610c76ef6e482b3d55d5856ddbe2f2bd2d8eab3c993ecd1f1ad9bb62cf090f8e0cca3c258cb7c44055fd5e1e4288c65 nagios-plugins-2.4.5.tar.gz
7a62e4808eb8b07ca43bc17a625f4199708da6c52b79eca7a756817cb734648fc3054cd89862638ae925022017db32479d2cfcfddeba79ab4557d7b9ec97c323 fix-compilation-warnings-about-sys-poll.patch
27050160a71e897343da6d6fd25c322a227702caec98065f82e06cba8929c2f6c538a4563a420fb0a07419622107caba1ad44c2cad195a0c0c76a6a925ec1c4b check_openrc
4a4c267c8403d3a1c8630adda9ddbdf7ce421b65e6dbfc0eb3f2bf03f94df563371e78193e8b3127ba9f3edcf8f1a7f96d9312167e6f924028d16d144e8af5d2 nagios-openrc.doasd
diff --git a/main/nagios/APKBUILD b/main/nagios/APKBUILD
index 5940ba9d651..ef4b14d2640 100644
--- a/main/nagios/APKBUILD
+++ b/main/nagios/APKBUILD
@@ -2,15 +2,15 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=nagios
-pkgver=4.4.7
-pkgrel=0
+pkgver=4.4.13
+pkgrel=1
pkgdesc="Popular monitoring tool"
url="https://www.nagios.org/"
arch="all"
license="GPL-2.0-only"
depends="perl"
install="$pkgname.pre-install"
-makedepends="gd-dev perl-dev libpng-dev libjpeg perl-net-snmp unzip openssl-dev"
+makedepends="gd-dev perl-dev libpng-dev libjpeg perl-net-snmp unzip openssl-dev>3"
source="https://downloads.sourceforge.net/nagios/nagios-$pkgver.tar.gz
nagios.confd
nagios.initd
@@ -18,7 +18,7 @@ source="https://downloads.sourceforge.net/nagios/nagios-$pkgver.tar.gz
"
subpackages="
$pkgname-web::noarch
- $pkgname-openrc::noarch
+ $pkgname-openrc
$pkgname-apache::noarch"
pkgusers="nagios"
pkggroups="nagios"
@@ -60,7 +60,6 @@ package() {
install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
}
-
web() {
#depends="php lighttpd"
mkdir -p "$subpkgdir"/usr
@@ -74,7 +73,7 @@ apache() {
}
sha512sums="
-92adc74e687bcbbd742075c8c7222d42c90795a4eb7582e3f1f492349db8200c61f390bf3c4cab4b023c5c111353a43f5dd687b0ee5ab6a8775444e06d42517b nagios-4.4.7.tar.gz
+43808bf2f9460d2d0fcac6aea8492cf7abc18a527c671e3a8e776ee3563bb91be1f5f384cfc3943157a355596ce4e1516e3ebc54d51c30479054180b01dfe3e8 nagios-4.4.13.tar.gz
8575902dcb7252f195847f9997b424c1ef9bee7dfacdd124c922fc119f583923c34847ce77c505783662d91f7290b1a85dc5e382ac50d177406bfb3876d4e40a nagios.confd
a004ed1cf8e7d9faeb849cd714095dbe5157c707618d2cce92c98c78604b896bb806b55aa69b2db8ca3e954bd629f9e3db5d2676015f87d6be5da32fa9ec5664 nagios.initd
6f1448db1964e378dbc7460a6d321638f4d0f7a08bc078824edca12fb6653fb0200b3be365fa519e7b2ff566802701878975bb97e65d65dc54d3da34dae21588 lighttpd-nagios.conf
diff --git a/main/nano/APKBUILD b/main/nano/APKBUILD
index 7a61ebdaa89..a1f03b6425f 100644
--- a/main/nano/APKBUILD
+++ b/main/nano/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Michael Mason <ms13sp@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=nano
-pkgver=6.3
-pkgrel=0
+pkgver=7.2
+pkgrel=1
pkgdesc="Enhanced clone of the Pico text editor"
url="https://www.nano-editor.org"
arch="all"
@@ -11,6 +11,11 @@ makedepends="linux-headers ncurses-dev"
subpackages="$pkgname-doc $pkgname-syntax::noarch"
source="https://www.nano-editor.org/dist/v${pkgver%%.*}/nano-$pkgver.tar.xz"
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
./configure \
--build=$CBUILD \
@@ -42,12 +47,11 @@ package() {
syntax() {
pkgdesc="Syntax highlighting definitions for $pkgname"
+ depends="$pkgname=$pkgver-r$pkgrel"
- mkdir -p "$subpkgdir"/usr/share/$pkgname/
- mv "$pkgdir"/usr/share/$pkgname/* \
- "$subpkgdir"/usr/share/$pkgname/
+ amove usr/share/nano/*
}
sha512sums="
-42279bee54f4d83a0dc06e93c2f385798c304a41e995461b018f5724010213761455563cb53e2411e12bc43c7245e289f4254c359717ca1b89a34d5af8b8c3f3 nano-6.3.tar.xz
+a6dfa70edab62e439a9a998ca214f2415d57dbdc01766ad2e4b14048836557a32755f8b09de13c6a89023f215b61d2854017b389eae8d097ca6f3ba73ce2f583 nano-7.2.tar.xz
"
diff --git a/main/nasm/APKBUILD b/main/nasm/APKBUILD
index ac69ff7f1ae..76e624be879 100644
--- a/main/nasm/APKBUILD
+++ b/main/nasm/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=nasm
-pkgver=2.15.05
+pkgver=2.16.03
pkgrel=0
pkgdesc="80x86 assembler designed for portability and modularity"
url="https://www.nasm.us"
@@ -11,8 +11,7 @@ subpackages="$pkgname-doc"
source="https://www.nasm.us/pub/nasm/releasebuilds/$pkgver/nasm-$pkgver.tar.xz"
build() {
- export CFLAGS=
- export CXXFLAGS=
+ CFLAGS="$CFLAGS -O2 -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -28,4 +27,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="512f90a2584f1c5811429274b97c64a2cedf37b9fdeffb1bcd0ea64afd9ecc19a2d7877ca8f1e05393aa324153fc9f39ea51dacbf8d25a7d5a2d7728c925dba7 nasm-2.15.05.tar.xz"
+sha512sums="
+0c706e41a9c33e1ac3bad5056e8bf8cbcd51785b551a6e34ce7d0d723df8eaab8603a033e89b3dcda1004b558f9e9ef3196691500f10d8201bf47a323a516f84 nasm-2.16.03.tar.xz
+"
diff --git a/main/ncdu/APKBUILD b/main/ncdu/APKBUILD
index 1b6a2b18ff0..7bd22bcc2d4 100644
--- a/main/ncdu/APKBUILD
+++ b/main/ncdu/APKBUILD
@@ -1,16 +1,16 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=ncdu
-pkgver=1.17
+pkgver=1.20
pkgrel=0
pkgdesc="Text-based disk usage viewer"
url="https://dev.yorhel.nl/ncdu"
options="!check" # no test suite
arch="all"
license="MIT"
-makedepends="ncurses-dev"
+makedepends="ncurses-dev linux-headers"
subpackages="$pkgname-doc"
-source="http://dev.yorhel.nl/download/ncdu-$pkgver.tar.gz"
+source="https://dev.yorhel.nl/download/ncdu-$pkgver.tar.gz"
build() {
./configure \
@@ -27,5 +27,5 @@ package() {
}
sha512sums="
-aa2366797760f0c0b2bea866f0ae0446b8113e3ff6460192a4a42d4d888d473d7f37bc4acff6220fa86003bd96d71761168a2ae0ded36456072176a69564c775 ncdu-1.17.tar.gz
+af9a45cc27bb3cdee7fd65236b9b48cb604f9e54208a762ed7b3b18333e07e87a8ae5a4cd0071496e7e382c60a7760734cad1f68fb69423a79fa3f050d2c09bb ncdu-1.20.tar.gz
"
diff --git a/main/ncftp/APKBUILD b/main/ncftp/APKBUILD
index f6f0ec7574c..85d0afa48bf 100644
--- a/main/ncftp/APKBUILD
+++ b/main/ncftp/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=ncftp
pkgver=3.2.6
-pkgrel=4
+pkgrel=6
pkgdesc="A set of free application programs implementing FTP"
url="https://www.ncftp.com/"
arch="all"
diff --git a/main/ncurses/APKBUILD b/main/ncurses/APKBUILD
index 9fd3b4ab51d..9b7f82a85ba 100644
--- a/main/ncurses/APKBUILD
+++ b/main/ncurses/APKBUILD
@@ -1,20 +1,35 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=ncurses
-pkgver=6.3_p20220625
-_ver=${pkgver/_p/-}
+pkgver=6.4_p20240330
+_pkgver=${pkgver/_p/-}
pkgrel=0
pkgdesc="Console display library"
url="https://invisible-island.net/ncurses/"
arch="all"
options="!check" # "tests" are actual demo programs, not a test suite.
-license="MIT"
+license="X11"
makedepends_build="ncurses"
-subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-libs
- $pkgname-terminfo-base:base:noarch $pkgname-terminfo:terminfo:noarch"
-source="https://invisible-mirror.net/archives/ncurses/current/ncurses-$_ver.tgz"
-builddir="$srcdir"/ncurses-$_ver
+subpackages="
+ $pkgname-static
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-terminfo-base:base:noarch
+ $pkgname-terminfo:terminfo:noarch
+ $pkgname-libs:compat:noarch
+ libformw
+ libmenuw
+ libncurses++:pp
+ libncursesw
+ libpanelw
+ "
+source="https://invisible-mirror.net/archives/ncurses/current/ncurses-$_pkgver.tgz
+ cleanup-pkgconfig-ldflags.patch
+ "
+builddir="$srcdir/$pkgname-$_pkgver"
# secfixes:
+# 6.4_p20230424-r0:
+# - CVE-2023-29491
# 6.3_p20220416-r0:
# - CVE-2022-29458
# 6.2_p20200530-r0:
@@ -26,7 +41,45 @@ builddir="$srcdir"/ncurses-$_ver
# 6.0_p20170701-r0:
# - CVE-2017-10684
+# Terminfo definitions to be included in ncurses-terminfo-base.
+_basic_terms="
+ alacritty
+ ansi
+ console
+ dumb
+ gnome
+ gnome-256color
+ konsole
+ konsole-256color
+ konsole-linux
+ linux
+ putty
+ putty-256color
+ rxvt
+ rxvt-256color
+ screen
+ screen-256color
+ st-*
+ sun
+ terminator
+ terminology*
+ tmux
+ tmux-256color
+ vt100
+ vt102
+ vt200
+ vt220
+ vt52
+ vte
+ vte-256color
+ xterm
+ xterm-256color
+ xterm-color
+ xterm-xfree86
+ "
+
build() {
+ export CFLAGS="$CFLAGS -D_GNU_SOURCE"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -34,10 +87,13 @@ build() {
--without-ada \
--without-tests \
--disable-termcap \
+ --disable-root-access \
--disable-rpath-hack \
+ --disable-setuid-environ \
--disable-stripping \
--with-pkg-config-libdir=/usr/lib/pkgconfig \
- --without-cxx-binding \
+ --with-cxx-binding \
+ --with-cxx-shared \
--with-terminfo-dirs="/etc/terminfo:/usr/share/terminfo:/lib/terminfo:/usr/lib/terminfo" \
--enable-pc-files \
--with-shared \
@@ -48,77 +104,109 @@ build() {
package() {
make -j1 DESTDIR="$pkgdir" install
+ cd "$pkgdir"
+
+ # force link against *w.so
+ local lib; for lib in ncurses ncurses++ form panel menu; do
+ ln -s ${lib}w.pc usr/lib/pkgconfig/$lib.pc
+ ln -s lib${lib}w.a usr/lib/lib$lib.a
+ echo "INPUT(-l${lib}w)" > usr/lib/lib$lib.so
+ done
+
+ # link curses -> ncurses
+ ln -s libncurses.a usr/lib/libcurses.a
+ ln -s libncurses.so usr/lib/libcurses.so
+ echo 'INPUT(-lncursesw)' > usr/lib/libcursesw.so
+
# Install basic terms in /etc/terminfo
- for i in ansi console dumb linux rxvt screen sun vt52 vt100 vt102 \
- vt200 vt220 xterm xterm-color xterm-xfree86 xterm-256color \
- alacritty tmux tmux-256color terminator 'terminology*' \
- vte vte-256color gnome gnome-256color kitty konsole konsole-256color \
- konsole-linux putty putty-256color rxvt-256color 'st-*' \
- screen-256color; do
- local termfiles=$(find "$pkgdir"/usr/share/terminfo/ -name "$i" 2>/dev/null) || true
+ local i; for i in $_basic_terms; do
+ local termfiles=$(find usr/share/terminfo/ -name "$i" 2>/dev/null) || true
[ -z "$termfiles" ] && continue
for termfile in $termfiles; do
local basedir=$(basename "$(dirname "$termfile")")
- install -d "$pkgdir"/etc/terminfo/$basedir
- mv "$termfile" "$pkgdir"/etc/terminfo/$basedir/
+ install -d etc/terminfo/$basedir
+ mv "$termfile" etc/terminfo/$basedir/
ln -s "../../../../etc/terminfo/$basedir/${termfile##*/}" \
- "$pkgdir/usr/share/terminfo/$basedir/${termfile##*/}"
+ "usr/share/terminfo/$basedir/${termfile##*/}"
done
done
}
dev() {
default_dev
- # force link against *w.so
- for lib in ncurses ncurses++ form panel menu; do
- echo "INPUT(-l${lib}w)" > "$subpkgdir"/usr/lib/lib$lib.so
- ln -s ${lib}w.pc "$subpkgdir"/usr/lib/pkgconfig/$lib.pc
- done
- # link curses -> ncurses
- echo "INPUT(-lncursesw)" > "$subpkgdir"/usr/lib/libcursesw.so
- ln -s libncurses.so "$subpkgdir"/usr/lib/libcurses.so
+
+ # also move symlinks
+ amove usr/lib/*.so
}
terminfo() {
pkgdesc="$pkgdesc (other terminfo files)"
depends="$pkgname-terminfo-base=$pkgver-r$pkgrel"
+ replaces="kitty<0.25.2-r1" # /usr/share/terminfo/x/xterm-kitty (Alpine <3.17)
- mkdir -p "$subpkgdir"/usr/share "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/share/terminfo "$subpkgdir"/usr/share
+ amove usr/share/terminfo
# also move symlink
- mv "$pkgdir"/usr/lib/terminfo "$subpkgdir"/usr/lib/
+ amove usr/lib/terminfo
}
-libs() {
- pkgdesc="Ncurses libraries"
- depends="$pkgname-terminfo-base=$pkgver-r$pkgrel"
+compat() {
+ pkgdesc="Ncurses libraries (old compat to pull sublibs)"
provides="ncurses-widec-libs=$pkgver-r$pkgrel"
+ depends="
+ libformw=$pkgver-r$pkgrel
+ libmenuw=$pkgver-r$pkgrel
+ libncursesw=$pkgver-r$pkgrel
+ libpanelw=$pkgver-r$pkgrel
+ "
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*.so.* "$subpkgdir"/usr/lib
+ mkdir -p "$subpkgdir"
}
-base() {
- depends=""
- pkgdesc="Descriptions of common terminals"
+libmenuw() {
+ pkgdesc="$pkgdesc ($subpkgname)"
+ depends="$pkgname-terminfo-base=$pkgver-r$pkgrel"
- mkdir -p "$subpkgdir"/etc/terminfo
- mv "$pkgdir"/etc/terminfo/ "$subpkgdir"/etc/
+ amove usr/lib/libmenuw.so.*
}
-static() {
- pkgdesc="Static libraries for the ncurses library"
- mkdir -p "$subpkgdir"/usr/lib
- for lib in ncurses ncurses++ form panel menu; do
- ln -s lib${lib}w.a "$subpkgdir"/usr/lib/lib${lib}.a
- done
- # link curses -> ncurses
- mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib/
- ln -s libncurses.a "$subpkgdir"/usr/lib/libcurses.a
+libformw() {
+ pkgdesc="$pkgdesc ($subpkgname)"
+ depends="$pkgname-terminfo-base=$pkgver-r$pkgrel"
+
+ amove usr/lib/libformw.so.*
+}
+
+pp() {
+ pkgdesc="$pkgdesc ($subpkgname)"
+ depends="$pkgname-terminfo-base=$pkgver-r$pkgrel"
+
+ amove usr/lib/libncurses++w.so.*
+}
+
+libncursesw() {
+ pkgdesc="$pkgdesc ($subpkgname)"
+ depends="$pkgname-terminfo-base=$pkgver-r$pkgrel"
+
+ amove usr/lib/libncursesw.so.*
+}
+
+libpanelw() {
+ pkgdesc="$pkgdesc ($subpkgname)"
+ depends="$pkgname-terminfo-base=$pkgver-r$pkgrel"
+
+ amove usr/lib/libpanelw.so.*
+}
+
+base() {
+ pkgdesc="Descriptions of common terminals"
+ depends=""
+
+ amove etc/terminfo
}
sha512sums="
-bb5e6a8f375cc5e0f61464888e30b8c086c4affb179494110d8e32460ca91fa5bf0316eb11842dcc14b6eaad991ae619423da34e5cfc1ce206573959737db602 ncurses-6.3-20220625.tgz
+d2f293d8a65a9b21db8d5b3a68eb5acbedf485239f02bdd29d20aa3fd2bee0f1e2c1181168a7e79425a007816b7ebac78ad6a62f5bef278a30aacca8f59e4cca ncurses-6.4-20240330.tgz
+201ef1876655101cedabc83a0ce46f75079b08f565ca8de4cf96fd69e41332a2d0597b77fe360dc58b10772586fa39bd52ac9ee670a912fef84840278356065a cleanup-pkgconfig-ldflags.patch
"
diff --git a/main/ncurses/cleanup-pkgconfig-ldflags.patch b/main/ncurses/cleanup-pkgconfig-ldflags.patch
new file mode 100644
index 00000000000..64f4ccfaa75
--- /dev/null
+++ b/main/ncurses/cleanup-pkgconfig-ldflags.patch
@@ -0,0 +1,26 @@
+Patch-Source: https://github.com/archlinux/svntogit-packages/blob/e458113bf9b1fce36b099cc49bc080d0ba6fc024/trunk/ncurses-6.3-pkgconfig.patch
+--
+diff -ruN a/misc/gen-pkgconfig.in b/misc/gen-pkgconfig.in
+--- a/misc/gen-pkgconfig.in 2021-08-07 23:36:33.000000000 +0200
++++ b/misc/gen-pkgconfig.in 2021-11-03 11:12:51.127160950 +0100
+@@ -83,7 +83,7 @@
+ fi
+
+ lib_flags=
+-for opt in -L$libdir @EXTRA_PKG_LDFLAGS@ @LIBS@
++for opt in -L$libdir @LIBS@
+ do
+ case $opt in
+ -l*) # LIBS is handled specially below
+diff -ruN a/misc/ncurses-config.in b/misc/ncurses-config.in
+--- a/misc/ncurses-config.in 2021-08-07 23:36:14.000000000 +0200
++++ b/misc/ncurses-config.in 2021-11-03 11:26:12.393533954 +0100
+@@ -101,7 +101,7 @@
+ # There is no portable way to find the list of standard library directories.
+ # Require a POSIX shell anyway, to keep this simple.
+ lib_flags=
+-for opt in -L$libdir @EXTRA_PKG_LDFLAGS@ $LIBS
++for opt in -L$libdir $LIBS
+ do
+ case $opt in
+ -specs*) # ignore linker specs-files which were used to build library
diff --git a/main/ndisc6/APKBUILD b/main/ndisc6/APKBUILD
index 263d0caa0cb..fc73005ab10 100644
--- a/main/ndisc6/APKBUILD
+++ b/main/ndisc6/APKBUILD
@@ -2,8 +2,8 @@
# Contributor: ungleich <foss@ungleich.ch>
# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
pkgname=ndisc6
-pkgver=1.0.5
-pkgrel=0
+pkgver=1.0.8
+pkgrel=1
pkgdesc="a small collection of useful tools for IPv6 networking"
url="https://www.remlab.net/ndisc6"
arch="all"
@@ -13,7 +13,6 @@ subpackages="$pkgname-doc rdnssd rdnssd-openrc:openrc:noarch $pkgname-dnssort::n
source="https://www.remlab.net/files/ndisc6/ndisc6-$pkgver.tar.bz2
rdnssd.initd
rdnssd.resolvconf
- rdnssd-fix-merge-hook-regex.patch
"
build() {
@@ -23,6 +22,7 @@ build() {
--prefix=/usr \
--localstatedir=/var \
--sysconfdir=/etc \
+ --disable-nls \
--disable-suid-install
make
}
@@ -38,7 +38,7 @@ package() {
dnssort() {
pkgdesc="ndisc6 dnssort (perl)"
- install_if="$pkgname perl"
+ install_if="$pkgname=$pkgver-r$pkgrel perl"
depends=perl
mkdir -p "$subpkgdir"/usr/bin
mv "$pkgdir"/usr/bin/dnssort "$subpkgdir"/usr/bin/
@@ -55,8 +55,7 @@ rdnssd() {
}
sha512sums="
-5a27b78dfb527fd6d0264452b8697f4dcd61758d0c334f7de5daf14198d5bc983027ac49d679630fe35af8ce21349403377385cda188632df859c8218485c843 ndisc6-1.0.5.tar.bz2
+74a8b0058f9171f1098513891fc1ed890ec43f89195eb501af0e38a67f6e849e44ff7158acf8a6d2eb87c49a00daabf0c3a550e724c1c1afecc2437a35621cc0 ndisc6-1.0.8.tar.bz2
7225d35c258bc59c23850811583811e3f62936cc395a010e5e0d32734916dec5f7c434b0915075a26c4670bd218b2e47269b7a685a71eab185766ba614f6f3cf rdnssd.initd
7b23eafa78bd88d43d0910dbb6cb8d248c00425edb0826571c4d4f9129de33f07093dba4a42f05a549ef1bb9a0fd301716a30bf95ceea18d445e291f0169a444 rdnssd.resolvconf
-6e24c20f5b54ed4867ead508e7f85dddc86804441e0876778927e815f4871d31e35e3872e1631b2b147641b18f735dcca9609072217a9e622b10b328b19d2e73 rdnssd-fix-merge-hook-regex.patch
"
diff --git a/main/ndisc6/rdnssd-fix-merge-hook-regex.patch b/main/ndisc6/rdnssd-fix-merge-hook-regex.patch
deleted file mode 100644
index 85e89136c4b..00000000000
--- a/main/ndisc6/rdnssd-fix-merge-hook-regex.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Reason: '{,1}' is not valid in regular expressions, it should be '{0,1}'.
-Busybox sed does not accept the former.
-Upstream: no
-
-diff --git a/rdnss/merge-hook.in b/rdnss/merge-hook.in
-index 383a57c..00ddcb2 100644
---- a/rdnss/merge-hook.in
-+++ b/rdnss/merge-hook.in
-@@ -38,7 +38,7 @@ myresolvconf="$localstatedir/run/rdnssd/resolv.conf"
-
- # These should be POSIX-compliant BREs
- RE_NSV4='^nameserver *\([0-9]\{1,3\}\.\)\{3,3\}[0-9]\{1,3\} *$'
--RE_NSV4OR6='^nameserver *[a-fA-F0-9:\.]\{1,46\}\(%[a-zA-Z0-9]\{1,\}\)\{,1\} *$'
-+RE_NSV4OR6='^nameserver *[a-fA-F0-9:\.]\{1,46\}\(%[a-zA-Z0-9]\{1,\}\)\{0,1\} *$'
-
- # Count how many IPv6 nameservers we can fit
-
diff --git a/main/neon/APKBUILD b/main/neon/APKBUILD
index 3a3f3fcf00e..ed8d2c29212 100644
--- a/main/neon/APKBUILD
+++ b/main/neon/APKBUILD
@@ -1,26 +1,26 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=neon
-pkgver=0.32.2
+pkgver=0.33.0
pkgrel=0
pkgdesc="HTTP and WebDAV client library with a C interface"
url="https://notroj.github.io/neon/"
arch="all"
license="LGPL-2.0-or-later"
-makedepends="expat-dev openssl1.1-compat-dev zlib-dev gzip xmlto
- autoconf automake libtool"
-checkdepends="openssl"
+makedepends="
+ expat-dev
+ gzip
+ openssl-dev>3
+ xmlto
+ zlib-dev
+ "
+checkdepends="openssl>3"
depends="ca-certificates"
depends_dev="$makedepends"
subpackages="$pkgname-dev $pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/notroj/neon/archive/$pkgver.tar.gz"
+source="https://notroj.github.io/neon/neon-$pkgver.tar.gz"
# /usr/bin/openssl invocation fails in testsuite, not sure why
options="!check"
-prepare() {
- default_prepare
- ./autogen.sh
-}
-
build() {
./configure \
--build=$CBUILD \
@@ -34,7 +34,8 @@ build() {
--disable-static \
--enable-threadsafe-ssl=posix \
--with-ca-bundle=/etc/ssl/certs/ca-certificates.crt
- make && make docs
+ make
+ make docs
}
check() {
@@ -44,6 +45,7 @@ check() {
package() {
make -j1 DESTDIR="$pkgdir" install
}
+
sha512sums="
-f207057e82ddc674664d13d7c7bc8236f7a886395eefe1af9e38cd3baf2ecb1905671ac8db02270e00a3baceca6ba5165f26d8e42919c99e571d9ca5d91e0ca3 neon-0.32.2.tar.gz
+b214ed34cd832dfaf3af08d4bdbe459c3e791f691548a6d44ee0cdc9811856185522bcbd6c2aca9a536fc021a2ed6329bd093cb3435cc40e3cfd9f5af8b92644 neon-0.33.0.tar.gz
"
diff --git a/main/net-snmp/0001-snmpd-always-exit-after-displaying-usage.patch b/main/net-snmp/0001-snmpd-always-exit-after-displaying-usage.patch
deleted file mode 100644
index 3d9c160ff47..00000000000
--- a/main/net-snmp/0001-snmpd-always-exit-after-displaying-usage.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From f51095d579b46f35e7bc9ab0aaed4223e9c92c57 Mon Sep 17 00:00:00 2001
-From: Kaarle Ritvanen <kaarle.ritvanen@datakunkku.fi>
-Date: Fri, 27 Aug 2021 14:21:45 +0300
-Subject: [PATCH] snmpd: always exit after displaying usage
-
-Currently, viewing the help text with -h results in snmpd being started
-in the background, whereas this does not happen with --help. Similarly,
-when an error is detected in command line syntax, the help text is
-displayed but sometimes snmpd gets started anyway, depending on the
-execution path.
-
-This patch makes snmpd consistently terminate whenever the usage
-function gets called. It also removes the goto statements no longer
-needed.
----
- agent/snmpd.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/agent/snmpd.c b/agent/snmpd.c
-index f5aab0af8..90de12d99 100644
---- a/agent/snmpd.c
-+++ b/agent/snmpd.c
-@@ -289,6 +289,8 @@ usage(char *prog)
- " -S d|i|0-7\t\tuse -Ls <facility> instead\n"
- "\n"
- );
-+ SOCK_CLEANUP;
-+ exit(1);
- }
-
- static void
-@@ -494,7 +496,6 @@ main(int argc, char *argv[])
- case '-':
- if (strcasecmp(optarg, "help") == 0) {
- usage(argv[0]);
-- goto out;
- }
- if (strcasecmp(optarg, "version") == 0) {
- version();
-@@ -783,7 +784,6 @@ main(int argc, char *argv[])
- fprintf(stderr, "%s: Illegal argument -X:"
- "AgentX support not compiled in.\n", argv[0]);
- usage(argv[0]);
-- goto out;
- #endif
- break;
-
---
-2.31.1
-
diff --git a/main/net-snmp/APKBUILD b/main/net-snmp/APKBUILD
index 0992ca40713..db1aa8b15ad 100644
--- a/main/net-snmp/APKBUILD
+++ b/main/net-snmp/APKBUILD
@@ -1,31 +1,44 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=net-snmp
-pkgver=5.9.1
-pkgrel=7
+pkgver=5.9.4
+pkgrel=0
pkgdesc="Simple Network Management Protocol"
url="http://www.net-snmp.org/"
arch="all"
license="Net-SNMP"
-depends_dev="openssl1.1-compat-dev"
+depends_dev="openssl-dev>3"
# we need perl-net-snmp and perl-tk in make depends for bootstrapping issues
# net-snmp-gui subpackage has perl-net-snmp and perl-tk as depends
-makedepends="file perl-dev openssl1.1-compat-dev perl-net-snmp perl-tk linux-headers"
+makedepends="file perl-dev openssl-dev>3 perl-net-snmp perl-tk linux-headers"
subpackages="$pkgname-dbg $pkgname-doc $pkgname-dev $pkgname-libs $pkgname-agent-libs:alibs
$pkgname-perl:pl $pkgname-gui::noarch $pkgname-tools $pkgname-openrc"
source="https://downloads.sourceforge.net/net-snmp/net-snmp-$pkgver.tar.gz
netsnmp-swinst-crash.patch
fix-includes.patch
- 0001-snmpd-always-exit-after-displaying-usage.patch
+ fix-fd_mask.patch
+ fix-pkgconf-version.patch
snmpd.initd
snmpd.confd
snmptrapd.confd
"
-
+options="!check"
+
+# secfixes:
+# 5.9.3-r2:
+# - CVE-2015-8100
+# - CVE-2022-44792
+# - CVE-2022-44793
+# 5.9.3-r0:
+# - CVE-2022-24805
+# - CVE-2022-24806
+# - CVE-2022-24807
+# - CVE-2022-24808
+# - CVE-2022-24809
+# - CVE-2022-24810
prepare() {
- update_config_sub
default_prepare
# Allow tmpfs volume size monitoring
# Ref #932
@@ -35,9 +48,6 @@ prepare() {
build() {
export lt_cv_sys_max_cmd_len=8192
- #build fails on: libnetsnmpmibs.so: undefined reference to 'pthread_create'
- LDFLAGS="$LDFLAGS -lpthread"
-
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -61,7 +71,7 @@ build() {
--disable-embedded-perl
# embedded-perl seems to create TEXTREL's
- make -j1
+ make
}
package() {
@@ -80,7 +90,7 @@ package() {
install -m644 -D "$srcdir"/snmpd.confd "$pkgdir"/etc/conf.d/snmpd
install -m644 -D "$srcdir"/snmptrapd.confd \
"$pkgdir"/etc/conf.d/snmptrapd
- install -m644 -D EXAMPLE.conf "$pkgdir"/etc/snmp/snmpd.conf
+ install -m640 -D EXAMPLE.conf "$pkgdir"/etc/snmp/snmpd.conf
echo "authCommunity log,execute,net public" > "$pkgdir"/etc/snmp/snmptrapd.conf
mkdir -p "$pkgdir"/var/lib/net-snmp
find "$pkgdir" -name perllocal.pod -delete
@@ -139,10 +149,11 @@ tools() {
}
sha512sums="
-30989e43034e17433b885854490f2f37470a532cb7cab0d2a3beb37f5f3c2b10e803af125a5177d87fc0a36cecc266fefc016b609427b558f36567c2f1a84b20 net-snmp-5.9.1.tar.gz
+a510fa91a21e9ddc86a12fd1d0bc6b356e63f3ea53f184d2e31439004d41d902390664134dc40b3b828eabb4282eaf3da628a07c4d480fa00eff7e700950c423 net-snmp-5.9.4.tar.gz
4ad92f50b14d5e27ba86256cc532a2dd055502f4d5fbb1700434f9f01f881fd09bb1eadb94e727554e1470f036707558314c64a66d0376b54e71ab31d5e4baa3 netsnmp-swinst-crash.patch
87a552bd2e41684bba6e87fbcf6454a85ee912d7a339411fda24cebddf7661f0856729e076a917920a542cf84b687ffd90a091daa15f2c48f0ff64f3a53c0ddb fix-includes.patch
-a085785c935a2791090eaa265c139674387c2f121c843125956fe14377e737844e0f929e2a652f3471b860b406926c43f5e796fedf5041ce6dde0790f25b15a2 0001-snmpd-always-exit-after-displaying-usage.patch
+6b70e65c16c8b5dea81b7aa12155a7d99e647e35b9e3c20c546850fe5a745061bf6ea2985e5405aa0a657fb0931e62264f68be2f55def4ecff1ecb83f26731c8 fix-fd_mask.patch
+e05c82c9d7a2fe1616996f3641d0ea7907ce17133623e771ec5742a161fd94b43b2e4475ae2d9372c4ec93467b3398865c9b0d0aaa501ff7aa4eebf4c9ef3299 fix-pkgconf-version.patch
1616d471105fc004bd7472d244d4ff9eae936875853bc51381ce2ddbb4bc29825beab6ed01299c76e3230b5725083ae169381f4572d12f015f6c682926b708bc snmpd.initd
ca4921190e8b81e3244465fa66bf6f0a075add159c8ec13a1198ded155df89eb984a48e34972b20f549fbfa9bbff4a24d66bf7cd0b51f5f86a26ad4c2f5cf5cc snmpd.confd
073fd2b83eedd6eda1f7345350268ce7946ef6d67a8f26f7c232e46feb75babf68272ae12071a2f9ea76ede71393b3ae4672d3cd47cfd14ab77e3a6482f2e124 snmptrapd.confd
diff --git a/main/net-snmp/fix-fd_mask.patch b/main/net-snmp/fix-fd_mask.patch
new file mode 100644
index 00000000000..a85fe936601
--- /dev/null
+++ b/main/net-snmp/fix-fd_mask.patch
@@ -0,0 +1,11 @@
+--- a/configure
++++ b/configure
+@@ -31638,7 +31638,7 @@
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the type of fd_set::fds_bits" >&5
+ printf %s "checking for the type of fd_set::fds_bits... " >&6; }
+-for type in __fd_mask __int32_t unknown; do
++for type in __fd_mask fd_mask __int32_t unknown; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
diff --git a/main/net-snmp/fix-pkgconf-version.patch b/main/net-snmp/fix-pkgconf-version.patch
new file mode 100644
index 00000000000..f0dbf567307
--- /dev/null
+++ b/main/net-snmp/fix-pkgconf-version.patch
@@ -0,0 +1,13 @@
+--- a/configure
++++ b/configure
+@@ -622,8 +622,8 @@
+ # Identity of this package.
+ PACKAGE_NAME='Net-SNMP'
+ PACKAGE_TARNAME='net-snmp'
+-PACKAGE_VERSION='5.9.4.pre2'
+-PACKAGE_STRING='Net-SNMP 5.9.4.pre2'
++PACKAGE_VERSION='5.9.4'
++PACKAGE_STRING='Net-SNMP 5.9.4'
+ PACKAGE_BUGREPORT='net-snmp-coders@lists.sourceforge.net'
+ PACKAGE_URL=''
+
diff --git a/main/net-tools/0001-Revert-sscanf-pattern-is-Lu-not-llu-for-long-long-un.patch b/main/net-tools/0001-Revert-sscanf-pattern-is-Lu-not-llu-for-long-long-un.patch
new file mode 100644
index 00000000000..c746eee8628
--- /dev/null
+++ b/main/net-tools/0001-Revert-sscanf-pattern-is-Lu-not-llu-for-long-long-un.patch
@@ -0,0 +1,45 @@
+Patch-Source: https://sourceforge.net/p/net-tools/mailman/message/37860727/
+https://git.adelielinux.org/adelie/packages/-/issues/600
+--
+From d7d325d5fddb0be4601a910fe23066be6c8bd603 Mon Sep 17 00:00:00 2001
+From: Zach van Rijn <me@zv.io>
+Date: Wed, 21 Jun 2023 16:50:30 +0000
+Subject: [PATCH] Revert "sscanf pattern is %Lu not %llu for long long unsigned
+ byte counters."
+
+This reverts commit 811cf0aaf40a0e7f426f8ffaea7c3ca4b8bebdfc.
+
+diff --git a/lib/interface.c b/lib/interface.c
+index ef28dec..71d4163 100644
+--- a/lib/interface.c
++++ b/lib/interface.c
+@@ -254,7 +254,7 @@ static int get_dev_fields(const char *bp, struct interface *ife)
+ switch (procnetdev_vsn) {
+ case 3:
+ sscanf(bp,
+- "%Lu %Lu %lu %lu %lu %lu %lu %lu %Lu %Lu %lu %lu %lu %lu %lu %lu",
++ "%llu %llu %lu %lu %lu %lu %lu %lu %llu %llu %lu %lu %lu %lu %lu %lu",
+ &ife->stats.rx_bytes,
+ &ife->stats.rx_packets,
+ &ife->stats.rx_errors,
+@@ -274,7 +274,7 @@ static int get_dev_fields(const char *bp, struct interface *ife)
+ &ife->stats.tx_compressed);
+ break;
+ case 2:
+- sscanf(bp, "%Lu %Lu %lu %lu %lu %lu %Lu %Lu %lu %lu %lu %lu %lu",
++ sscanf(bp, "%llu %llu %lu %lu %lu %lu %llu %llu %lu %lu %lu %lu %lu",
+ &ife->stats.rx_bytes,
+ &ife->stats.rx_packets,
+ &ife->stats.rx_errors,
+@@ -292,7 +292,7 @@ static int get_dev_fields(const char *bp, struct interface *ife)
+ ife->stats.rx_multicast = 0;
+ break;
+ case 1:
+- sscanf(bp, "%Lu %lu %lu %lu %lu %Lu %lu %lu %lu %lu %lu",
++ sscanf(bp, "%llu %lu %lu %lu %lu %llu %lu %lu %lu %lu %lu",
+ &ife->stats.rx_packets,
+ &ife->stats.rx_errors,
+ &ife->stats.rx_dropped,
+--
+2.40.0
+
diff --git a/main/net-tools/APKBUILD b/main/net-tools/APKBUILD
index e3816308429..d4de84609b0 100644
--- a/main/net-tools/APKBUILD
+++ b/main/net-tools/APKBUILD
@@ -1,16 +1,18 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=net-tools
pkgver=2.10
-pkgrel=0
+pkgrel=3
pkgdesc="Linux networking base tools"
url="https://sourceforge.net/projects/net-tools/"
arch="all"
-license="GPL-2.0"
+license="GPL-2.0-or-later"
depends="mii-tool"
makedepends="$depends_dev bash linux-headers"
options="!check"
subpackages="$pkgname-doc $pkgname-dbg mii-tool:mii_tool"
-source="https://downloads.sourceforge.net/project/net-tools/net-tools-$pkgver.tar.xz"
+source="https://downloads.sourceforge.net/project/net-tools/net-tools-$pkgver.tar.xz
+ 0001-Revert-sscanf-pattern-is-Lu-not-llu-for-long-long-un.patch
+ "
prepare() {
default_prepare
@@ -68,6 +70,9 @@ build() {
package() {
make DESTDIR="$pkgdir" install
+
+ # move ifconfig to usr/sbin to override busybox in usr/sbin
+ mv "$pkgdir"/bin/ifconfig "$pkgdir"/sbin/
}
mii_tool() {
@@ -78,4 +83,5 @@ mii_tool() {
sha512sums="
aa8f631772da6c16b165065fc5929a206504f2dce19e74a4ffc680f09b40f3a9180bd4bbeaac67e0b32693358b01383bae4fbfcb6061180c130e9e0801d536bf net-tools-2.10.tar.xz
+c0f5906fe17dc926ecc8767bfbfbfd491cae77680732d02b1c96ca2805cb7ce35ab4edd5485b95b1f691a110d77e028b67c35e201e477981da1eb8bb1e26bad6 0001-Revert-sscanf-pattern-is-Lu-not-llu-for-long-long-un.patch
"
diff --git a/main/net-tools/git.patch b/main/net-tools/git.patch
deleted file mode 100644
index eb35885e81c..00000000000
--- a/main/net-tools/git.patch
+++ /dev/null
@@ -1,26170 +0,0 @@
-diff --git a/.cvsignore b/.cvsignore
-index 1d4a063..ff65062 100644
---- a/.cvsignore
-+++ b/.cvsignore
-@@ -1,2 +1,3 @@
- arp hostname ifconfig ipmaddr iptunnel netstat plipconfig rarp route slattach
- version.h config.make config.status config.h nameif mii-tool
-+.git
-diff --git a/.gitignore b/.gitignore
-new file mode 100644
-index 0000000..9184162
---- /dev/null
-+++ b/.gitignore
-@@ -0,0 +1,36 @@
-+*.o
-+
-+*.diff
-+*.patch
-+*.rej
-+*.orig
-+
-+.gdb_history
-+.gdbinit
-+core
-+*.gdb
-+
-+/config.h
-+/config.make
-+/config.status
-+
-+/net-tools-*.tar*
-+
-+/lib/libnet-tools.a
-+
-+/po/*.mo
-+
-+/version.h
-+
-+/arp
-+/hostname
-+/ifconfig
-+/ipmaddr
-+/iptunnel
-+/mii-tool
-+/nameif
-+/netstat
-+/plipconfig
-+/rarp
-+/route
-+/slattach
-diff --git a/COPYING b/COPYING
-index a43ea21..d159169 100644
---- a/COPYING
-+++ b/COPYING
-@@ -1,12 +1,12 @@
-- GNU GENERAL PUBLIC LICENSE
-- Version 2, June 1991
-+ GNU GENERAL PUBLIC LICENSE
-+ Version 2, June 1991
-
-- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-- 675 Mass Ave, Cambridge, MA 02139, USA
-+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
-+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-- Preamble
-+ Preamble
-
- The licenses for most software are designed to take away your
- freedom to share and change it. By contrast, the GNU General Public
-@@ -15,7 +15,7 @@ software--to make sure the software is free for all its users. This
- General Public License applies to most of the Free Software
- Foundation's software and to any other program whose authors commit to
- using it. (Some other Free Software Foundation software is covered by
--the GNU Library General Public License instead.) You can apply it to
-+the GNU Lesser General Public License instead.) You can apply it to
- your programs, too.
-
- When we speak of free software, we are referring to freedom, not
-@@ -55,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all.
-
- The precise terms and conditions for copying, distribution and
- modification follow.
--
-- GNU GENERAL PUBLIC LICENSE
-+
-+ GNU GENERAL PUBLIC LICENSE
- TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
- 0. This License applies to any program or other work which contains
-@@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
- License. (Exception: if the Program itself is interactive but
- does not normally print such an announcement, your work based on
- the Program is not required to print an announcement.)
--
-+
- These requirements apply to the modified work as a whole. If
- identifiable sections of that work are not derived from the Program,
- and can be reasonably considered independent and separate works in
-@@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
- access to copy the source code from the same place counts as
- distribution of the source code, even though third parties are not
- compelled to copy the source along with the object code.
--
-+
- 4. You may not copy, modify, sublicense, or distribute the Program
- except as expressly provided under this License. Any attempt
- otherwise to copy, modify, sublicense or distribute the Program is
-@@ -225,7 +225,7 @@ impose that choice.
-
- This section is intended to make thoroughly clear what is believed to
- be a consequence of the rest of this License.
--
-+
- 8. If the distribution and/or use of the Program is restricted in
- certain countries either by patents or by copyrighted interfaces, the
- original copyright holder who places the Program under this License
-@@ -255,7 +255,7 @@ make exceptions for this. Our decision will be guided by the two goals
- of preserving the free status of all derivatives of our free software and
- of promoting the sharing and reuse of software generally.
-
-- NO WARRANTY
-+ NO WARRANTY
-
- 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
- FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
-@@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
- PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
- POSSIBILITY OF SUCH DAMAGES.
-
-- END OF TERMS AND CONDITIONS
--
-- Appendix: How to Apply These Terms to Your New Programs
-+ END OF TERMS AND CONDITIONS
-+
-+ How to Apply These Terms to Your New Programs
-
- If you develop a new program, and you want it to be of the greatest
- possible use to the public, the best way to achieve this is to make it
-@@ -291,7 +291,7 @@ convey the exclusion of warranty; and each file should have at least
- the "copyright" line and a pointer to where the full notice is found.
-
- <one line to give the program's name and a brief idea of what it does.>
-- Copyright (C) 19yy <name of author>
-+ Copyright (C) <year> <name of author>
-
- 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
-@@ -303,16 +303,16 @@ the "copyright" line and a pointer to where the full notice is found.
- 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, write to the Free Software
-- Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-+ You should have received a copy of the GNU General Public License along
-+ with this program; if not, write to the Free Software Foundation, Inc.,
-+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-
- Also add information on how to contact you by electronic and paper mail.
-
- If the program is interactive, make it output a short notice like this
- when it starts in an interactive mode:
-
-- Gnomovision version 69, Copyright (C) 19yy name of author
-+ Gnomovision version 69, Copyright (C) year name of author
- Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
- This is free software, and you are welcome to redistribute it
- under certain conditions; type `show c' for details.
-@@ -335,5 +335,5 @@ necessary. Here is a sample; alter the names:
- This General Public License does not permit incorporating your program into
- proprietary programs. If your program is a subroutine library, you may
- consider it more useful to permit linking proprietary applications with the
--library. If this is what you want to do, use the GNU Library General
-+library. If this is what you want to do, use the GNU Lesser General
- Public License instead of this License.
-diff --git a/INSTALLING b/INSTALLING
-index c49f21f..f6180c8 100644
---- a/INSTALLING
-+++ b/INSTALLING
-@@ -27,7 +27,7 @@ of the other options should work as well.
-
-
- COMPILE
---------
-+-------
- To compile simply use "make".
-
- There should be no warnings or errors.
-diff --git a/Makefile b/Makefile
-index 8fcc55c..edf80ec 100644
---- a/Makefile
-+++ b/Makefile
-@@ -5,14 +5,10 @@
- # NET-3 Networking Distribution for the LINUX operating
- # system.
- #
--# Version: 2001-02-13
--#
- # Author: Bernd Eckenfels <net-tools@lina.inka.de>
- # Copyright 1995-1996 Bernd Eckenfels, Germany
- #
--# URLs: ftp://ftp.inka.de/pub/comp/Linux/networking/NetTools/
--# ftp://ftp.linux.org.uk/pub/linux/Networking/PROGRAMS/NetTools/
--# http://www.inka.de/sites/lina/linux/NetTools/index_en.html
-+# URLs: http://net-tools.sourceforge.net/
- #
- # Based on: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- # Copyright 1988-1993 MicroWalt Corporation
-@@ -22,55 +18,16 @@
- # Alan Cox <A.Cox@swansea.ac.uk>
- # Copyright 1993-1994 Swansea University Computer Society
- #
--# Be careful!
-+# Be careful!
- # This Makefile doesn't describe complete dependencies for all include files.
--# If you change include files you might need to do make clean.
--#
--# {1.20} Bernd Eckenfels: Even more modifications for the new
--# package layout
--# {1.21} Bernd Eckenfels: Check if config.in is newer than
--# config.status
--# {1.22} Bernd Eckenfels: Include ypdomainname and nisdomainame
--#
--# 1.3.50-BETA6 private Release
--#
--#960125 {1.23} Bernd Eckenfels: Peter Tobias' rewrite for
--# makefile-based installation
--# 1.3.50-BETA6a private Release
--#
--#960201 {1.24} Bernd Eckenfels: net-features.h added
--#
--#960201 1.3.50-BETA6b private Release
--#
--#960203 1.3.50-BETA6c private Release
--#
--#960204 1.3.50-BETA6d private Release
--#
--#960204 {1.25} Bernd Eckenfels: DISTRIBUTION added
--#
--#960205 1.3.50-BETA6e private Release
--#
--#960206 {1.26} Bernd Eckenfels: afrt.o removed (cleaner solution)
--#
--#960215 1.3.50-BETA6f Release
--#
--#960216 {1.30} Bernd Eckenfels: net-lib support
--#960322 {1.31} Bernd Eckenfels: moveable netlib, TOPDIR
--#960424 {1.32} Bernd Eckenfels: included the URLs in the Comment
--#
--#960514 1.31-alpha release
--#
--#960518 {1.33} Bernd Eckenfels: -I/usr/src/linux/include comment added
--#
--# 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.
-+# If you change include files you might need to do make clean.
- #
-
--# set the base of the Installation
-+# set the base of the Installation
- # BASEDIR = /mnt
-+BASEDIR ?= $(DESTDIR)
-+BINDIR ?= /bin
-+SBINDIR ?= /sbin
-
- # path to the net-lib support library. Default: lib
- NET_LIB_PATH = lib
-@@ -88,20 +45,26 @@ endif
-
- # Compiler and Linker Options
- # You may need to uncomment and edit these if you are using libc5 and IPv6.
--COPTS = -D_GNU_SOURCE -O2 -Wall -g # -I/usr/inet6/include
--ifeq ($(origin LOPTS), undefined)
--LOPTS =
--endif
-+CFLAGS ?= -O2 -g
-+CFLAGS += -Wall
-+CFLAGS += -fno-strict-aliasing # code needs a lot of work before strict aliasing is safe
-+CPPFLAGS += -D_GNU_SOURCE
- RESLIB = # -L/usr/inet6/lib -linet6
-
- ifeq ($(HAVE_AFDECnet),1)
- DNLIB = -ldnet
- endif
-
-+ifeq ($(origin CC), undefined)
-+CC = gcc
-+endif
-+LD = $(CC)
-+PKG_CONFIG ?= pkg-config
-+
- # -------- end of user definitions --------
-
--MAINTAINER = Philip.Blundell@pobox.com
--RELEASE = 1.60
-+MAINTAINER = net-tools-devel@lists.sourceforge.net
-+RELEASE = 2.10-alpha
-
- .EXPORT_ALL_VARIABLES:
-
-@@ -113,22 +76,22 @@ endif
-
- NET_LIB = $(NET_LIB_PATH)/lib$(NET_LIB_NAME).a
-
--CFLAGS = $(COPTS) -I. -idirafter ./include/ -I$(NET_LIB_PATH)
--LDFLAGS = $(LOPTS) -L$(NET_LIB_PATH)
-+ifeq ($(HAVE_SELINUX),1)
-+SE_PC_CFLAGS := $(shell $(PKG_CONFIG) --cflags libselinux)
-+SE_PC_LIBS := $(shell $(PKG_CONFIG) --libs libselinux || echo -lselinux)
-+SELIB = $(SE_PC_LIBS)
-+CPPFLAGS += $(SE_PC_CFLAGS)
-+endif
-
--SUBDIRS = man/ $(NET_LIB_PATH)/
-+CPPFLAGS += -I. -I$(TOPDIR)/include -I$(NET_LIB_PATH)
-+LDFLAGS += -L$(NET_LIB_PATH)
-
--ifeq ($(origin CC), undefined)
--CC = gcc
--endif
--LD = $(CC)
-+SUBDIRS = man/ $(NET_LIB_PATH)/
-
- NLIB = -l$(NET_LIB_NAME)
-
--MDEFINES = COPTS='$(COPTS)' LOPTS='$(LOPTS)' TOPDIR='$(TOPDIR)'
--
--%.o: %.c config.h version.h intl.h net-features.h $<
-- $(CC) $(CFLAGS) -c $<
-+%.o: %.c config.h version.h intl.h lib/net-features.h $<
-+ $(CC) $(CFLAGS) $(CPPFLAGS) -c $<
-
- all: config.h version.h subdirs $(PROGS)
-
-@@ -154,12 +117,21 @@ clobber: clean
- @for i in $(SUBDIRS); do (cd $$i && $(MAKE) clobber) ; done
-
-
--dist: clobber
-- @echo Creating net-tools-$(RELEASE) in ..
-- @tar -cvz -f ../net-tools-$(RELEASE).tar.gz -C .. net-tools
-+dist:
-+ rm -rf net-tools-$(RELEASE)
-+ git archive --prefix=net-tools-$(RELEASE)/ HEAD | tar xf -
-+ $(MAKE) -C net-tools-$(RELEASE)/po $@
-+ tar cf - net-tools-$(RELEASE)/ | xz > net-tools-$(RELEASE).tar.xz
-+ rm -rf net-tools-$(RELEASE)
-
-+distcheck: dist
-+ tar xf net-tools-$(RELEASE).tar.xz
-+ yes "" | $(MAKE) -C net-tools-$(RELEASE) config
-+ $(MAKE) -C net-tools-$(RELEASE)
-+ rm -rf net-tools-$(RELEASE)
-+ @printf "\nThe tarball is ready to go:\n%s\n" "`du -b net-tools-$(RELEASE).tar.xz`"
-
--config.h: config.in Makefile
-+config.h: config.in Makefile
- @echo "Configuring the Linux net-tools (NET-3 Base Utilities)..." ; echo
- @if [ config.status -nt config.in ]; \
- then ./configure.sh config.status; \
-@@ -175,85 +147,91 @@ $(NET_LIB): config.h version.h intl.h libdir
-
- i18n.h: i18ndir
-
--libdir:
-- @$(MAKE) -C $(NET_LIB_PATH) $(MDEFINES)
-+libdir: version.h
-+ @$(MAKE) -C $(NET_LIB_PATH)
-
- i18ndir:
- @$(MAKE) -C po
-
--subdirs:
-- @for i in $(SUBDIRS); do $(MAKE) -C $$i $(MDEFINES) ; done
-+# use libdir target for lib/ to avoid parallel build issues
-+subdirs: libdir
-+ @for i in $(SUBDIRS:$(NET_LIB_PATH)/=); do $(MAKE) -C $$i || exit $$? ; done
-
- ifconfig: $(NET_LIB) ifconfig.o
-- $(CC) $(LDFLAGS) -o ifconfig ifconfig.o $(NLIB) $(RESLIB)
--
--nameif: nameif.o
-- $(CC) $(LDFLAGS) -o nameif nameif.o
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ ifconfig.o $(NLIB) $(RESLIB)
-+
-+nameif: $(NET_LIB) nameif.o
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ nameif.o $(NLIB) $(RESLIB)
-
- hostname: hostname.o
-- $(CC) $(LDFLAGS) -o hostname hostname.o $(DNLIB)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ hostname.o $(DNLIB)
-
- route: $(NET_LIB) route.o
-- $(CC) $(LDFLAGS) -o route route.o $(NLIB) $(RESLIB)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ route.o $(NLIB) $(RESLIB)
-
- arp: $(NET_LIB) arp.o
-- $(CC) $(LDFLAGS) -o arp arp.o $(NLIB) $(RESLIB)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ arp.o $(NLIB) $(RESLIB)
-
- rarp: $(NET_LIB) rarp.o
-- $(CC) $(LDFLAGS) -o rarp rarp.o $(NLIB)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ rarp.o $(NLIB)
-
- slattach: $(NET_LIB) slattach.o
-- $(CC) $(LDFLAGS) -o slattach slattach.o $(NLIB)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ slattach.o $(NLIB)
-
- plipconfig: $(NET_LIB) plipconfig.o
-- $(CC) $(LDFLAGS) -o plipconfig plipconfig.o $(NLIB)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ plipconfig.o $(NLIB)
-
- netstat: $(NET_LIB) netstat.o statistics.o
-- $(CC) $(LDFLAGS) -o netstat netstat.o statistics.o $(NLIB) $(RESLIB)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ netstat.o statistics.o $(NLIB) $(RESLIB) $(SELIB)
-
- iptunnel: $(NET_LIB) iptunnel.o
-- $(CC) $(LDFLAGS) -o iptunnel iptunnel.o $(NLIB) $(RESLIB)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ iptunnel.o $(NLIB) $(RESLIB)
-
- ipmaddr: $(NET_LIB) ipmaddr.o
-- $(CC) $(LDFLAGS) -o ipmaddr ipmaddr.o $(NLIB) $(RESLIB)
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ ipmaddr.o $(NLIB) $(RESLIB)
-
--mii-tool: mii-tool.o
-- $(CC) $(LDFLAGS) -o mii-tool mii-tool.o
-+mii-tool: $(NET_LIB) mii-tool.o
-+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ mii-tool.o $(NLIB) $(RESLIB)
-
- installbin:
-- install -m 0755 -d ${BASEDIR}/sbin
-- install -m 0755 -d ${BASEDIR}/bin
-- install -m 0755 arp ${BASEDIR}/sbin
-- install -m 0755 hostname ${BASEDIR}/bin
-- install -m 0755 ifconfig ${BASEDIR}/sbin
-- install -m 0755 nameif ${BASEDIR}/sbin
-- install -m 0755 netstat ${BASEDIR}/bin
-- install -m 0755 plipconfig $(BASEDIR)/sbin
-- install -m 0755 rarp ${BASEDIR}/sbin
-- install -m 0755 route ${BASEDIR}/sbin
-- install -m 0755 slattach $(BASEDIR)/sbin
-+ @echo
-+ @echo "######################################################"
-+ @echo "Notice: ifconfig and route are now installed into /bin"
-+ @echo "######################################################"
-+ @echo
-+ install -m 0755 -d ${BASEDIR}${SBINDIR}
-+ install -m 0755 -d ${BASEDIR}${BINDIR}
-+ install -m 0755 arp ${BASEDIR}${SBINDIR}
-+ install -m 0755 hostname ${BASEDIR}${BINDIR}
-+ install -m 0755 ifconfig ${BASEDIR}${BINDIR}
-+ install -m 0755 nameif ${BASEDIR}${SBINDIR}
-+ install -m 0755 netstat ${BASEDIR}${BINDIR}
-+ install -m 0755 plipconfig $(BASEDIR)${SBINDIR}
-+ install -m 0755 rarp ${BASEDIR}${SBINDIR}
-+ install -m 0755 route ${BASEDIR}${BINDIR}
-+ install -m 0755 slattach $(BASEDIR)${SBINDIR}
- ifeq ($(HAVE_IP_TOOLS),1)
-- install -m 0755 ipmaddr $(BASEDIR)/sbin
-- install -m 0755 iptunnel $(BASEDIR)/sbin
-+ install -m 0755 ipmaddr $(BASEDIR)${SBINDIR}
-+ install -m 0755 iptunnel $(BASEDIR)${SBINDIR}
- endif
- ifeq ($(HAVE_MII),1)
-- install -m 0755 mii-tool $(BASEDIR)/sbin
-+ install -m 0755 mii-tool $(BASEDIR)${SBINDIR}
- endif
-- ln -fs hostname $(BASEDIR)/bin/dnsdomainname
-- ln -fs hostname $(BASEDIR)/bin/ypdomainname
-- ln -fs hostname $(BASEDIR)/bin/nisdomainname
-- ln -fs hostname $(BASEDIR)/bin/domainname
-+ ln -fs hostname $(BASEDIR)${BINDIR}/dnsdomainname
-+ ln -fs hostname $(BASEDIR)${BINDIR}/ypdomainname
-+ ln -fs hostname $(BASEDIR)${BINDIR}/nisdomainname
-+ ln -fs hostname $(BASEDIR)${BINDIR}/domainname
- ifeq ($(HAVE_AFDECnet),1)
-- ln -fs hostname $(BASEDIR)/bin/nodename
-+ ln -fs hostname $(BASEDIR)${BINDIR}/nodename
- endif
-
- savebin:
-- @for i in ${BASEDIR}/sbin/arp ${BASEDIR}/sbin/ifconfig \
-- ${BASEDIR}/bin/netstat \
-- ${BASEDIR}/sbin/rarp ${BASEDIR}/sbin/route \
-- ${BASEDIR}/bin/hostname ${BASEDIR}/bin/ypdomainname \
-- ${BASEDIR}/bin/dnsdomainname ${BASEDIR}/bin/nisdomainname \
-- ${BASEDIR}/bin/domainname ; do \
-+ @for i in ${BASEDIR}${SBINDIR}/arp ${BASEDIR}${SBINDIR}/ifconfig \
-+ ${BASEDIR}${BINDIR}/netstat \
-+ ${BASEDIR}${SBINDIR}/rarp ${BASEDIR}${SBINDIR}/route \
-+ ${BASEDIR}${BINDIR}/hostname ${BASEDIR}${BINDIR}/ypdomainname \
-+ ${BASEDIR}${BINDIR}/dnsdomainname ${BASEDIR}${BINDIR}/nisdomainname \
-+ ${BASEDIR}${BINDIR}/domainname ; do \
- [ -f $$i ] && cp -f $$i $$i.old ; done ; echo Saved.
-
- installdata:
-diff --git a/README b/README
-index 4e35868..aa6cc9a 100644
---- a/README
-+++ b/README
-@@ -10,29 +10,35 @@ This package includes the important tools for controlling the network
- subsystem of the Linux kernel. This includes arp, hostname, ifconfig,
- netstat, rarp and route. Additionally, this package contains
- utilities relating to particular network hardware types (plipconfig,
--slattach) and advanced aspects of IP configuration (iptunnel,
-+slattach, mii-tool) and advanced aspects of IP configuration (iptunnel,
- ipmaddr).
-
- Please include the output of "program --version" when reporting bugs.
-
-
- Contents:
--
-+
- README This file.
-
- README.ipv6 Notes for people hacking IPv6.
-
- INSTALLING Installation instructions.
-
-- COPYING Your free copy of the GNU Public License.
-+ COPYING Your free copy of the GNU General Public License.
-
- TODO Some things that need to be done.
-
-+The Homepage (including Git repository, release downloads, bug tracker and
-+mailing list) is hosted by SourceForge.net. Please consider to
-+join the project if you want to contribute:
-+
-+ https://sourceforge.net/projects/net-tools/
-+
-
- Notes
- -----
-
--This is net-tools 1.60.
-+This is net-tools 1.6x.
-
- You need kernel 2.0 or later to use these programs. These programs
- should compile cleanly with both glibc (version 2.0 or 2.1) and libc5,
-@@ -59,6 +65,8 @@ all common environments but some of the more esoteric hardware and
- protocol families may be more touchy. Feel free to send patches if
- you have problems.
-
-+For this release, the localized man pages are installed with UTF-8 encoding.
-+
- Phil Blundell
- philb@gnu.org
-
-diff --git a/RPM/net-tools.spec b/RPM/net-tools.spec
-index 86b45db..b12f785 100644
---- a/RPM/net-tools.spec
-+++ b/RPM/net-tools.spec
-@@ -34,7 +34,7 @@ make BASEDIR=$RPM_BUILD_ROOT install
- strip arp ifconfig rarp route slattach plipconfig ipmaddr iptunnel
- cd ../bin
- strip hostname netstat
--)
-+)
-
- %clean
- rm -rf $RPM_BUILD_ROOT
-@@ -92,7 +92,7 @@ rm -rf $RPM_BUILD_ROOT
- * Fri Feb 27 1998 Jason Spangler <jasons@usemail.com>
- - changed to net-tools 1.432
- - removed old glibc 2.1 patch
--
-+
- * Wed Oct 22 1997 Erik Troan <ewt@redhat.com>
- - added extra patches for glibc 2.1
-
-diff --git a/TODO b/TODO
-index ec6aae8..c8a10dc 100644
---- a/TODO
-+++ b/TODO
-@@ -23,7 +23,7 @@ TODO for net-tools
- [ ] supply some informations about new features to HOWTOs
- [ ] Config file only works with bash not ash.
- [ ] Token ring is almost totally untested.
--[ ] additional tools for IPX, AX.25 etc be bundled [ipxripd004, ipx_* tools
-+[ ] additional tools for IPX, AX.25 etc be bundled [ipxripd004, ipx_* tools
- from caldera, axattach] into existing bins
- [ ] "SIOCAX25OPTRT" [Joerg (DL1BKE)]. 1.3.75
- [ ] dummy NOARP?! (2. default route for preveting hostunreachables on linedrop)
-diff --git a/arp.c b/arp.c
-index 509a804..5db71a7 100644
---- a/arp.c
-+++ b/arp.c
-@@ -8,7 +8,7 @@
- * NET-3 Networking Distribution for the LINUX operating
- * system.
- *
-- * Version: $Id: arp.c,v 1.20 2001/04/08 17:05:05 pb Exp $
-+ * Version: $Id: arp.c,v 1.27 2009/09/06 22:50:11 vapier Exp $
- *
- * Maintainer: Bernd 'eckes' Eckenfels, <net-tools@lina.inka.de>
- *
-@@ -20,14 +20,14 @@
- * Andrew Tridgell : proxy arp netmasks
- * Bernd Eckenfels : -n option
- * Bernd Eckenfels : Use only /proc for display
-- * {1.60} Bernd Eckenfels : new arpcode (-i) for 1.3.42 but works
-+ * {1.60} Bernd Eckenfels : new arpcode (-i) for 1.3.42 but works
- * with 1.2.x, too
- * {1.61} Bernd Eckenfels : more verbose messages
- * {1.62} Bernd Eckenfels : check -t for hw adresses and try to
- * explain EINVAL (jeff)
- *970125 {1.63} Bernd Eckenfels : -a print hardwarename instead of tiltle
- *970201 {1.64} Bernd Eckenfels : net-features.h support
-- *970203 {1.65} Bernd Eckenfels : "#define" in "#if",
-+ *970203 {1.65} Bernd Eckenfels : "#define" in "#if",
- * -H|-A additional to -t|-p
- *970214 {1.66} Bernd Eckenfels : Fix optarg required for -H and -A
- *970412 {1.67} Bernd Eckenfels : device=""; is default
-@@ -35,7 +35,7 @@
- *970517 {1.69} Bernd Eckenfels : usage() fixed
- *970622 {1.70} Bernd Eckenfels : arp -d priv
- *970106 {1.80} Bernd Eckenfels : new syntax without -D and with "dev <If>",
-- * ATF_MAGIC, ATF_DONTPUB support.
-+ * ATF_MAGIC, ATF_DONTPUB support.
- * Typo fix (Debian Bug#5728 Giuliano Procida)
- *970803 {1.81} Bernd Eckenfels : removed junk comment line 1
- *970925 {1.82} Bernd Eckenfels : include fix for libc6
-@@ -80,7 +80,7 @@
- #define FEATURE_ARP
- #include "lib/net-features.h"
-
--char *Release = RELEASE, *Version = "arp 1.88 (2001-04-04)";
-+static char *Release = RELEASE;
-
- int opt_n = 0; /* do not resolve addresses */
- int opt_N = 0; /* use symbolic names */
-@@ -100,9 +100,10 @@ static int arp_del(char **args)
- {
- char host[128];
- struct arpreq req;
-- struct sockaddr sa;
-+ struct sockaddr_storage ss;
-+ struct sockaddr *sa;
- int flags = 0;
-- int err;
-+ int deleted = 0;
-
- memset((char *) &req, 0, sizeof(req));
-
-@@ -112,12 +113,13 @@ static int arp_del(char **args)
- return (-1);
- }
- safe_strncpy(host, *args, (sizeof host));
-- if (ap->input(0, host, &sa) < 0) {
-+ sa = (struct sockaddr *)&ss;
-+ if (ap->input(0, host, sa) < 0) {
- ap->herror(host);
- return (-1);
- }
- /* If a host has more than one address, use the correct one! */
-- memcpy((char *) &req.arp_pa, (char *) &sa, sizeof(struct sockaddr));
-+ memcpy((char *) &req.arp_pa, (char *) sa, sizeof(struct sockaddr));
-
- if (hw_set)
- req.arp_ha.sa_family = hw->type;
-@@ -148,7 +150,7 @@ static int arp_del(char **args)
- continue;
- }
- if (!strcmp(*args, "dontpub")) {
--#ifdef HAVE_ATF_DONTPUB
-+#ifdef ATF_DONTPUB
- req.arp_flags |= ATF_DONTPUB;
- #else
- ENOSUPP("arp", "ATF_DONTPUB");
-@@ -157,7 +159,7 @@ static int arp_del(char **args)
- continue;
- }
- if (!strcmp(*args, "auto")) {
--#ifdef HAVE_ATF_MAGIC
-+#ifdef ATF_MAGIC
- req.arp_flags |= ATF_MAGIC;
- #else
- ENOSUPP("arp", "ATF_MAGIC");
-@@ -176,12 +178,12 @@ static int arp_del(char **args)
- if (*++args == NULL)
- usage();
- if (strcmp(*args, "255.255.255.255") != 0) {
-- strcpy(host, *args);
-- if (ap->input(0, host, &sa) < 0) {
-+ safe_strncpy(host, *args, (sizeof host));
-+ if (ap->input(0, host, sa) < 0) {
- ap->herror(host);
- return (-1);
- }
-- memcpy((char *) &req.arp_netmask, (char *) &sa,
-+ memcpy((char *) &req.arp_netmask, (char *) sa,
- sizeof(struct sockaddr));
- req.arp_flags |= ATF_NETMASK;
- }
-@@ -190,35 +192,41 @@ static int arp_del(char **args)
- }
- usage();
- }
-+
-+ // if neighter priv nor pub is given, work on both
- if (flags == 0)
- flags = 3;
-
-- strcpy(req.arp_dev, device);
-+ safe_strncpy(req.arp_dev, device, sizeof(req.arp_dev));
-
-- err = -1;
-+ /* unfortuatelly the kernel interface does not allow us to
-+ delete private entries anlone, so we need this hack
-+ to avoid "not found" errors if we try both. */
-+ deleted = 0;
-
- /* Call the kernel. */
- if (flags & 2) {
- if (opt_v)
-- fprintf(stderr, "arp: SIOCDARP(nopub)\n");
-- if ((err = ioctl(sockfd, SIOCDARP, &req) < 0)) {
-- if (errno == ENXIO) {
-+ fprintf(stderr, "arp: SIOCDARP(dontpub)\n");
-+ if (ioctl(sockfd, SIOCDARP, &req) < 0) {
-+ if ((errno == ENXIO) || (errno == ENOENT)) {
- if (flags & 1)
-- goto nopub;
-+ goto dontpub;
- printf(_("No ARP entry for %s\n"), host);
- return (-1);
- }
-- perror("SIOCDARP(priv)");
-+ perror("SIOCDARP(dontpub)");
- return (-1);
-- }
-+ } else
-+ deleted = 1;
- }
-- if ((flags & 1) && (err)) {
-- nopub:
-+ if (!deleted && (flags & 1)) {
-+ dontpub:
- req.arp_flags |= ATF_PUBL;
- if (opt_v)
- fprintf(stderr, "arp: SIOCDARP(pub)\n");
- if (ioctl(sockfd, SIOCDARP, &req) < 0) {
-- if (errno == ENXIO) {
-+ if ((errno == ENXIO) || (errno == ENOENT)) {
- printf(_("No ARP entry for %s\n"), host);
- return (-1);
- }
-@@ -235,7 +243,7 @@ static int arp_getdevhw(char *ifname, struct sockaddr *sa, struct hwtype *hw)
- struct ifreq ifr;
- struct hwtype *xhw;
-
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
- if (ioctl(sockfd, SIOCGIFHWADDR, &ifr) < 0) {
- fprintf(stderr, _("arp: cant get HW-Address for `%s': %s.\n"), ifname, strerror(errno));
- return (-1);
-@@ -260,7 +268,8 @@ static int arp_set(char **args)
- {
- char host[128];
- struct arpreq req;
-- struct sockaddr sa;
-+ struct sockaddr_storage ss;
-+ struct sockaddr *sa;
- int flags;
-
- memset((char *) &req, 0, sizeof(req));
-@@ -271,12 +280,13 @@ static int arp_set(char **args)
- return (-1);
- }
- safe_strncpy(host, *args++, (sizeof host));
-- if (ap->input(0, host, &sa) < 0) {
-+ sa = (struct sockaddr *)&ss;
-+ if (ap->input(0, host, sa) < 0) {
- ap->herror(host);
- return (-1);
- }
- /* If a host has more than one address, use the correct one! */
-- memcpy((char *) &req.arp_pa, (char *) &sa, sizeof(struct sockaddr));
-+ memcpy((char *) &req.arp_pa, (char *) sa, sizeof(struct sockaddr));
-
- /* Fetch the hardware address. */
- if (*args == NULL) {
-@@ -317,7 +327,7 @@ static int arp_set(char **args)
- continue;
- }
- if (!strcmp(*args, "dontpub")) {
--#ifdef HAVE_ATF_DONTPUB
-+#ifdef ATF_DONTPUB
- flags |= ATF_DONTPUB;
- #else
- ENOSUPP("arp", "ATF_DONTPUB");
-@@ -326,7 +336,7 @@ static int arp_set(char **args)
- continue;
- }
- if (!strcmp(*args, "auto")) {
--#ifdef HAVE_ATF_MAGIC
-+#ifdef ATF_MAGIC
- flags |= ATF_MAGIC;
- #else
- ENOSUPP("arp", "ATF_MAGIC");
-@@ -345,12 +355,12 @@ static int arp_set(char **args)
- if (*++args == NULL)
- usage();
- if (strcmp(*args, "255.255.255.255") != 0) {
-- strcpy(host, *args);
-- if (ap->input(0, host, &sa) < 0) {
-+ safe_strncpy(host, *args, (sizeof host));
-+ if (ap->input(0, host, sa) < 0) {
- ap->herror(host);
- return (-1);
- }
-- memcpy((char *) &req.arp_netmask, (char *) &sa,
-+ memcpy((char *) &req.arp_netmask, (char *) sa,
- sizeof(struct sockaddr));
- flags |= ATF_NETMASK;
- }
-@@ -363,7 +373,7 @@ static int arp_set(char **args)
- /* Fill in the remainder of the request. */
- req.arp_flags = flags;
-
-- strcpy(req.arp_dev, device);
-+ safe_strncpy(req.arp_dev, device, sizeof(req.arp_dev));
-
- /* Call the kernel. */
- if (opt_v)
-@@ -424,7 +434,7 @@ static int arp_file(char *name)
-
-
- /* Print the contents of an ARP request block. */
--static void arp_disp_2(char *name, int type, int arp_flags, char *hwa, char *mask, char *dev)
-+static void arp_disp_2(const char *name, int type, int arp_flags, const char *hwa, const char *mask, const char *dev)
- {
- static int title = 0;
- struct hwtype *xhw;
-@@ -445,11 +455,11 @@ static void arp_disp_2(char *name, int type, int arp_flags, char *hwa, char *mas
- strcat(flags, "M");
- if (arp_flags & ATF_PUBL)
- strcat(flags, "P");
--#ifdef HAVE_ATF_MAGIC
-+#ifdef ATF_MAGIC
- if (arp_flags & ATF_MAGIC)
- strcat(flags, "A");
- #endif
--#ifdef HAVE_ATF_DONTPUB
-+#ifdef ATF_DONTPUB
- if (arp_flags & ATF_DONTPUB)
- strcat(flags, "!");
- #endif
-@@ -463,7 +473,7 @@ static void arp_disp_2(char *name, int type, int arp_flags, char *hwa, char *mas
-
- if (!(arp_flags & ATF_COM)) {
- if (arp_flags & ATF_PUBL)
-- printf("%-8.8s%-20.20s", "*", "*");
-+ printf("%-8.8s%-20.20s", "*", _("<from_interface>"));
- else
- printf("%-8.8s%-20.20s", "", _("(incomplete)"));
- } else {
-@@ -474,7 +484,7 @@ static void arp_disp_2(char *name, int type, int arp_flags, char *hwa, char *mas
- }
-
- /* Print the contents of an ARP request block. */
--static void arp_disp(char *name, char *ip, int type, int arp_flags, char *hwa, char *mask, char *dev)
-+static void arp_disp(const char *name, const char *ip, int type, int arp_flags, const char *hwa, const char *mask, const char *dev)
- {
- struct hwtype *xhw;
-
-@@ -486,7 +496,7 @@ static void arp_disp(char *name, char *ip, int type, int arp_flags, char *hwa, c
-
- if (!(arp_flags & ATF_COM)) {
- if (arp_flags & ATF_PUBL)
-- printf("* ");
-+ printf("<from_interface> ");
- else
- printf(_("<incomplete> "));
- } else {
-@@ -499,12 +509,12 @@ static void arp_disp(char *name, char *ip, int type, int arp_flags, char *hwa, c
- if (arp_flags & ATF_PERM)
- printf("PERM ");
- if (arp_flags & ATF_PUBL)
-- printf("PUP ");
--#ifdef HAVE_ATF_MAGIC
-+ printf("PUB ");
-+#ifdef ATF_MAGIC
- if (arp_flags & ATF_MAGIC)
- printf("AUTO ");
- #endif
--#ifdef HAVE_ATF_DONTPUB
-+#ifdef ATF_DONTPUB
- if (arp_flags & ATF_DONTPUB)
- printf("DONTPUB ");
- #endif
-@@ -519,7 +529,8 @@ static void arp_disp(char *name, char *ip, int type, int arp_flags, char *hwa, c
- static int arp_show(char *name)
- {
- char host[100];
-- struct sockaddr sa;
-+ struct sockaddr_storage ss;
-+ struct sockaddr *sa;
- char ip[100];
- char hwa[100];
- char mask[100];
-@@ -527,19 +538,20 @@ static int arp_show(char *name)
- char dev[100];
- int type, flags;
- FILE *fp;
-- char *hostname;
-+ const char *hostname;
- int num, entries = 0, showed = 0;
-
- host[0] = '\0';
-
-+ sa = (struct sockaddr *)&ss;
- if (name != NULL) {
- /* Resolve the host name. */
- safe_strncpy(host, name, (sizeof host));
-- if (ap->input(0, host, &sa) < 0) {
-+ if (ap->input(0, host, sa) < 0) {
- ap->herror(host);
- return (-1);
- }
-- safe_strncpy(host, ap->sprint(&sa, 1), sizeof(host));
-+ safe_strncpy(host, ap->sprint(sa, 1), sizeof(host));
- }
- /* Open the PROCps kernel table. */
- if ((fp = fopen(_PATH_PROCNET_ARP, "r")) == NULL) {
-@@ -548,11 +560,11 @@ static int arp_show(char *name)
- }
- /* Bypass header -- read until newline */
- if (fgets(line, sizeof(line), fp) != (char *) NULL) {
-- strcpy(mask, "-");
-- strcpy(dev, "-");
-+ safe_strncpy(mask, "-", sizeof(mask));
-+ safe_strncpy(dev, "-", sizeof(dev));
- /* Read the ARP cache entries. */
- for (; fgets(line, sizeof(line), fp);) {
-- num = sscanf(line, "%s 0x%x 0x%x %100s %100s %100s\n",
-+ num = sscanf(line, "%s 0x%x 0x%x %99s %99s %99s\n",
- ip, &type, &flags, hwa, mask, dev);
- if (num < 4)
- break;
-@@ -575,10 +587,10 @@ static int arp_show(char *name)
- if (opt_n)
- hostname = "?";
- else {
-- if (ap->input(0, ip, &sa) < 0)
-+ if (ap->input(0, ip, sa) < 0)
- hostname = ip;
- else
-- hostname = ap->sprint(&sa, opt_n | 0x8000);
-+ hostname = ap->sprint(sa, opt_n | 0x8000);
- if (strcmp(hostname, ip) == 0)
- hostname = "?";
- }
-@@ -605,20 +617,20 @@ static int arp_show(char *name)
-
- static void version(void)
- {
-- fprintf(stderr, "%s\n%s\n%s\n", Release, Version, Features);
-+ fprintf(stderr, "%s\n%s\n", Release, Features);
- exit(E_VERSION);
- }
-
- static void usage(void)
- {
- fprintf(stderr, _("Usage:\n arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP cache\n"));
-- fprintf(stderr, _(" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP entry\n"));
-- fprintf(stderr, _(" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from file\n"));
-- fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add entry\n"));
-- fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub <-''-\n"));
-- fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub <-''-\n\n"));
--
-+ fprintf(stderr, _(" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP entry\n"));
-+ fprintf(stderr, _(" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from file\n"));
-+ fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add entry\n"));
-+ fprintf(stderr, _(" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub <-''-\n\n"));
-+
- fprintf(stderr, _(" -a display (all) hosts in alternative (BSD) style\n"));
-+ fprintf(stderr, _(" -e display (all) hosts in default (Linux) style\n"));
- fprintf(stderr, _(" -s, --set set a new ARP entry\n"));
- fprintf(stderr, _(" -d, --delete delete a specified entry\n"));
- fprintf(stderr, _(" -v, --verbose be verbose\n"));
-diff --git a/config.in b/config.in
-index f3310d6..e080937 100644
---- a/config.in
-+++ b/config.in
-@@ -1,5 +1,5 @@
- #
--# config.in Configure.sh source for the net-tools.
-+# config.in configure.sh source for the net-tools.
- # This file contains the definition of what the support
- # library contains. Most of all, it defines which types
- # of address families and hardware we know of.
-@@ -46,19 +46,20 @@ bool 'Does your system support GNU gettext?' I18N n
- *
- *
- * Protocol Families.
--*
-+*
- bool 'UNIX protocol family' HAVE_AFUNIX y
- bool 'INET (TCP/IP) protocol family' HAVE_AFINET y
--bool 'INET6 (IPv6) protocol family' HAVE_AFINET6 n
-+bool 'INET6 (IPv6) protocol family' HAVE_AFINET6 y
- bool 'Novell IPX/SPX protocol family' HAVE_AFIPX y
- bool 'Appletalk DDP protocol family' HAVE_AFATALK y
- bool 'AX25 (packet radio) protocol family' HAVE_AFAX25 y
- bool 'NET/ROM (packet radio) protocol family' HAVE_AFNETROM y
--bool 'Rose (packet radio) protocol family' HAVE_AFROSE n
-+bool 'Rose (packet radio) protocol family' HAVE_AFROSE y
- bool 'X.25 (CCITT) protocol family' HAVE_AFX25 y
--bool 'Econet protocol family' HAVE_AFECONET n
-+bool 'Econet protocol family' HAVE_AFECONET y
- bool 'DECnet protocol family' HAVE_AFDECnet n
--bool 'Ash protocol family' HAVE_AFASH n
-+bool 'Ash protocol family' HAVE_AFASH y
-+bool 'Bluetooth protocol family' HAVE_AFBLUETOOTH n
- *
- *
- * Device Hardware types.
-@@ -68,24 +69,27 @@ bool 'ARCnet support' HAVE_HWARC y
- bool 'SLIP (serial line) support' HAVE_HWSLIP y
- bool 'PPP (serial line) support' HAVE_HWPPP y
- bool 'IPIP Tunnel support' HAVE_HWTUNNEL y
--bool 'STRIP (Metricom radio) support' HAVE_HWSTRIP y
--bool 'Token ring (generic) support' HAVE_HWTR y
-+bool 'STRIP (Metricom radio) support' HAVE_HWSTRIP n
-+bool 'Token ring (generic) support' HAVE_HWTR n
- bool 'AX25 (packet radio) support' HAVE_HWAX25 y
--bool 'Rose (packet radio) support' HAVE_HWROSE n
-+bool 'Rose (packet radio) support' HAVE_HWROSE y
- bool 'NET/ROM (packet radio) support' HAVE_HWNETROM y
- bool 'X.25 (generic) support' HAVE_HWX25 y
- bool 'DLCI/FRAD (frame relay) support' HAVE_HWFR y
--bool 'SIT (IPv6-in-IPv4) support' HAVE_HWSIT n
--bool 'FDDI (generic) support' HAVE_HWFDDI n
--bool 'HIPPI (generic) support' HAVE_HWHIPPI n
--bool 'Ash hardware support' HAVE_HWASH n
--bool '(Cisco)-HDLC/LAPB support' HAVE_HWHDLCLAPB n
-+bool 'SIT (IPv6-in-IPv4) support' HAVE_HWSIT y
-+bool 'FDDI (generic) support' HAVE_HWFDDI y
-+bool 'HIPPI (generic) support' HAVE_HWHIPPI y
-+bool 'Ash hardware support' HAVE_HWASH y
-+bool '(Cisco)-HDLC/LAPB support' HAVE_HWHDLCLAPB y
- bool 'IrDA support' HAVE_HWIRDA y
--bool 'Econet hardware support' HAVE_HWEC n
-+bool 'Econet hardware support' HAVE_HWEC y
-+bool 'Generic EUI-64 hardware support' HAVE_HWEUI64 y
-+bool 'InfiniBand hardware support' HAVE_HWIB y
- *
- *
- * Other Features.
- *
--bool 'IP Masquerading support' HAVE_FW_MASQUERADE n
--bool 'Build iptunnel and ipmaddr' HAVE_IP_TOOLS n
--bool 'Build mii-tool' HAVE_MII n
-+bool 'IP Masquerading support' HAVE_FW_MASQUERADE y
-+bool 'Build iptunnel and ipmaddr' HAVE_IP_TOOLS y
-+bool 'Build mii-tool' HAVE_MII y
-+bool 'SELinux support' HAVE_SELINUX n
-diff --git a/configure.sh b/configure.sh
-index 9859b59..64b594f 100755
---- a/configure.sh
-+++ b/configure.sh
-@@ -1,6 +1,6 @@
- #!/usr/bin/env bash
- #
--# Configure.sh Generates interactively a config.h from config.in
-+# configure.sh Generates interactively a config.h from config.in
- #
- # net-tools A collection of programs that form the base set of the
- # NET-3 Networking Distribution for the LINUX operating
-@@ -37,7 +37,15 @@ CONFIG=config.h
- MAKECONFIG=config.make
-
-
--[ -z "$BASH" ] && { echo "Configure requires bash" 1>&2; exit 1; }
-+[ -z "$BASH" ] && { echo "configure.sh requires bash" 1>&2; exit 1; }
-+
-+cat <<EOF
-+
-+######################################################
-+Notice: ifconfig and route are now installed into /bin
-+######################################################
-+
-+EOF
-
- # Disable filename globbing once and for all.
- # Enable function cacheing.
-@@ -106,7 +114,7 @@ function int()
- }
-
- #
-- # Make sure we start out with a clean slate.
-+ # Make sure we start out with a clean state.
- #
- > config.new
- > ${CONFIG}
-diff --git a/hostname.c b/hostname.c
-index 8793fb9..ae98ca6 100644
---- a/hostname.c
-+++ b/hostname.c
-@@ -6,23 +6,22 @@
- * Usage: hostname [-d|-f|-s|-a|-i|-y|-n]
- * hostname [-h|-V]
- * hostname {name|-F file}
-- * dnsdmoainname
-+ * dnsdmoainname
- * nisdomainname {name|-F file}
- *
-- * Version: hostname 1.96 (1996-02-18)
-+ * Version: hostname 1.101 (2003-10-11)
- *
- * Author: Peter Tobias <tobias@et-inf.fho-emden.de>
- *
- * Changes:
-- * {1.90} Peter Tobias : Added -a and -i options.
-- * {1.91} Bernd Eckenfels : -v,-V rewritten, long_opts
-- * (major rewrite), usage.
-- *960120 {1.95} Bernd Eckenfels : -y/nisdomainname - support for get/
-- * setdomainname added
-- *960218 {1.96} Bernd Eckenfels : netinet/in.h added
-- *980629 {1.97} Arnaldo Carvalho de Melo : gettext instead of catgets for i18n
-- *20000213 {1.99} Arnaldo Carvalho de Melo : fixed some i18n strings
-+ * {1.90} Peter Tobias : Added -a and -i options.
-+ * {1.91} Bernd Eckenfels : -v,-V rewritten, long_opts (major rewrite), usage.
-+ *19960120 {1.95} Bernd Eckenfels : -y/nisdomainname - support for get/setdomainname added
-+ *19960218 {1.96} Bernd Eckenfels : netinet/in.h added
-+ *19980629 {1.97} Arnaldo Carvalho de Melo : gettext instead of catgets for i18n
-+ *20000213 {1.99} Arnaldo Carvalho de Melo : fixed some i18n strings
- *20010404 {1.100} Arnaldo Carvalho de Melo: use setlocale
-+ *20031011 {1.101} Maik Broemme: gcc 3.x fixes (default: break)
- *
- * This program is free software; you can redistribute it
- * and/or modify it under the terms of the GNU General
-@@ -31,7 +30,9 @@
- * your option) any later version.
- */
- #include <stdio.h>
-+#include <stdlib.h>
- #include <unistd.h>
-+#include <stdlib.h>
- #include <getopt.h>
- #include <string.h>
- #include <netdb.h>
-@@ -41,13 +42,19 @@
- #include <arpa/inet.h>
- #include "config.h"
- #include "version.h"
-+#include "net-support.h"
- #include "../intl.h"
-
-+#if HAVE_AFINET6
-+#include <sys/socket.h> /* for PF_INET6 */
-+#include <sys/types.h> /* for inet_ntop */
-+#endif
-+
- #if HAVE_AFDECnet
- #include <netdnet/dn.h>
- #endif
-
--char *Release = RELEASE, *Version = "hostname 1.100 (2001-04-14)";
-+static char *Release = RELEASE;
-
- static char *program_name;
- static int opt_v;
-@@ -72,12 +79,13 @@ static void setnname(char *nname)
- if (setnodename(nname, strlen(nname))) {
- switch(errno) {
- case EPERM:
-- fprintf(stderr, _("%s: you must be root to change the node name\n"), program_name);
-+ fprintf(stderr, _("%s: you don't have permission to set the node name\n"), program_name);
- break;
- case EINVAL:
- fprintf(stderr, _("%s: name too long\n"), program_name);
- break;
- default:
-+ break;
- }
- exit(1);
- }
-@@ -92,12 +100,11 @@ static void sethname(char *hname)
- if (sethostname(hname, strlen(hname))) {
- switch (errno) {
- case EPERM:
-- fprintf(stderr, _("%s: you must be root to change the host name\n"), program_name);
-+ fprintf(stderr, _("%s: you don't have permission to set the host name\n"), program_name);
- break;
- case EINVAL:
- fprintf(stderr, _("%s: name too long\n"), program_name);
- break;
-- default:
- }
- exit(1);
- };
-@@ -111,12 +118,11 @@ static void setdname(char *dname)
- if (setdomainname(dname, strlen(dname))) {
- switch (errno) {
- case EPERM:
-- fprintf(stderr, _("%s: you must be root to change the domain name\n"), program_name);
-+ fprintf(stderr, _("%s: you don't have permission to set the domain name\n"), program_name);
- break;
- case EINVAL:
- fprintf(stderr, _("%s: name too long\n"), program_name);
- break;
-- default:
- }
- exit(1);
- };
-@@ -125,15 +131,23 @@ static void setdname(char *dname)
- static void showhname(char *hname, int c)
- {
- struct hostent *hp;
-+#if HAVE_AFINET6
-+ struct in6_addr **ip6;
-+#endif
- register char *p, **alias;
- struct in_addr **ip;
-
- if (opt_v)
- fprintf(stderr, _("Resolving `%s' ...\n"), hname);
-- if (!(hp = gethostbyname(hname))) {
-+ if (
-+#if HAVE_AFINET6
-+ !(hp = gethostbyname2(hname, PF_INET6)) &&
-+#endif
-+ !(hp = gethostbyname(hname))) {
- herror(program_name);
- exit(1);
- }
-+
- if (opt_v) {
- fprintf(stderr, _("Result: h_name=`%s'\n"),
- hp->h_name);
-@@ -142,11 +156,28 @@ static void showhname(char *hname, int c)
- while (alias[0])
- fprintf(stderr, _("Result: h_aliases=`%s'\n"),
- *alias++);
--
-- ip = (struct in_addr **) hp->h_addr_list;
-- while (ip[0])
-- fprintf(stderr, _("Result: h_addr_list=`%s'\n"),
-- inet_ntoa(**ip++));
-+#if HAVE_AFINET6
-+ if (hp->h_addrtype == PF_INET6) {
-+ char addr[INET6_ADDRSTRLEN + 1];
-+ addr[INET6_ADDRSTRLEN] = '\0';
-+ ip6 = (struct in6_addr **) hp->h_addr_list;
-+ while (ip6[0]) {
-+ if (inet_ntop(PF_INET6, *ip6++, addr, INET6_ADDRSTRLEN))
-+ fprintf(stderr, _("Result: h_addr_list=`%s'\n"), addr);
-+ else if (errno == EAFNOSUPPORT)
-+ fprintf(stderr, _("%s: protocol family not supported\n"),
-+ program_name);
-+ else if (errno == ENOSPC)
-+ fprintf(stderr, _("%s: name too long\n"), program_name);
-+ }
-+ } else
-+#endif
-+ {
-+ ip = (struct in_addr **) hp->h_addr_list;
-+ while (ip[0])
-+ fprintf(stderr, _("Result: h_addr_list=`%s'\n"),
-+ inet_ntoa(**ip++));
-+ }
- }
- if (!(p = strchr(hp->h_name, '.')) && (c == 'd'))
- return;
-@@ -158,8 +189,29 @@ static void showhname(char *hname, int c)
- printf("\n");
- break;
- case 'i':
-- while (hp->h_addr_list[0])
-- printf("%s ", inet_ntoa(*(struct in_addr *) *hp->h_addr_list++));
-+#if HAVE_AFINET6
-+ if (hp->h_addrtype == PF_INET6) {
-+ char addr[INET6_ADDRSTRLEN + 1];
-+ addr[INET6_ADDRSTRLEN] = '\0';
-+ while (hp->h_addr_list[0]) {
-+ if (inet_ntop(PF_INET6, (struct in6_addr *)*hp->h_addr_list++,
-+ addr, INET6_ADDRSTRLEN)) {
-+ printf("%s ", addr);
-+ } else if (errno == EAFNOSUPPORT) {
-+ fprintf(stderr, _("\n%s: protocol family not supported\n"),
-+ program_name);
-+ exit(1);
-+ } else if (errno == ENOSPC) {
-+ fprintf(stderr, _("\n%s: name too long\n"), program_name);
-+ exit(1);
-+ }
-+ }
-+ } else
-+#endif
-+ {
-+ while (hp->h_addr_list[0])
-+ printf("%s ", inet_ntoa(*(struct in_addr *)*hp->h_addr_list++));
-+ }
- printf("\n");
- break;
- case 'd':
-@@ -173,7 +225,6 @@ static void showhname(char *hname, int c)
- *p = '\0';
- printf("%s\n", hp->h_name);
- break;
-- default:
- }
- }
-
-@@ -215,8 +266,8 @@ static void setfilename(char *name, int what)
-
- static void version(void)
- {
-- fprintf(stderr, "%s\n%s\n", Release, Version);
-- exit(5); /* E_VERSION */
-+ fprintf(stderr, "%s\n", Release);
-+ exit(E_VERSION);
- }
-
- static void usage(void)
-@@ -247,7 +298,7 @@ static void usage(void)
- " FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n"
- " part of the FQDN) in the /etc/hosts file.\n"));
-
-- exit(4); /* E_USAGE */
-+ exit(E_USAGE);
- }
-
-
-@@ -326,11 +377,12 @@ int main(int argc, char **argv)
- break;
- case 'V':
- version();
-+ break; // not reached
- case '?':
- case 'h':
- default:
- usage();
--
-+ break; // not reached
- };
-
-
-@@ -371,7 +423,10 @@ int main(int argc, char **argv)
- setdname(argv[optind]);
- break;
- }
-- getdomainname(myname, sizeof(myname));
-+ if (getdomainname(myname, sizeof(myname)) < 0) {
-+ perror("getdomainname()");
-+ exit(1);
-+ }
- if (opt_v)
- fprintf(stderr, _("getdomainname()=`%s'\n"), myname);
- printf("%s\n", myname);
-diff --git a/ifconfig.c b/ifconfig.c
-index 73a4e9b..df9793a 100644
---- a/ifconfig.c
-+++ b/ifconfig.c
-@@ -3,7 +3,7 @@
- * that either displays or sets the characteristics of
- * one or more of the system's networking interfaces.
- *
-- * Version: $Id: ifconfig.c,v 1.50 2001/04/13 18:25:18 pb Exp $
-+ * Version: $Id: ifconfig.c,v 1.59 2011-01-01 03:22:31 ecki Exp $
- *
- * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- * and others. Copyright 1993 MicroWalt Corporation
-@@ -19,8 +19,8 @@
- *
- * {1.34} - 19980630 - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- * - gettext instead of catgets for i18n
-- * 10/1998 - Andi Kleen. Use interface list primitives.
-- * 20001008 - Bernd Eckenfels, Patch from RH for setting mtu
-+ * 10/1998 - Andi Kleen. Use interface list primitives.
-+ * 20001008 - Bernd Eckenfels, Patch from RH for setting mtu
- * (default AF was wrong)
- * 20010404 - Arnaldo Carvalho de Melo, use setlocale
- */
-@@ -49,7 +49,7 @@
- #include <asm/types.h>
-
-
--#ifdef HAVE_HWSLIP
-+#if HAVE_HWSLIP
- #include <linux/if_slip.h>
- #endif
-
-@@ -85,19 +85,16 @@ struct in6_ifreq {
- #include "sockets.h"
- #include "util.h"
-
--char *Release = RELEASE, *Version = "ifconfig 1.42 (2001-04-13)";
-+static char *Release = RELEASE;
-
- int opt_a = 0; /* show all interfaces */
--int opt_i = 0; /* show the statistics */
- int opt_v = 0; /* debugging output flag */
-
- int addr_family = 0; /* currently selected AF */
-
- /* for ipv4 add/del modes */
--static int get_nmbc_parent(char *parent, unsigned long *nm,
-- unsigned long *bc);
--static int set_ifstate(char *parent, unsigned long ip,
-- unsigned long nm, unsigned long bc,
-+static int get_nmbc_parent(char *parent, in_addr_t *nm, in_addr_t *bc);
-+static int set_ifstate(char *parent, in_addr_t ip, in_addr_t nm, in_addr_t bc,
- int flag);
-
- static int if_print(char *ifname)
-@@ -105,7 +102,7 @@ static int if_print(char *ifname)
- int res;
-
- if (ife_short)
-- printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n"));
-+ printf(_("Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n"));
-
- if (!ifname) {
- res = for_all_interfaces(do_if_print, &opt_a);
-@@ -113,11 +110,14 @@ static int if_print(char *ifname)
- struct interface *ife;
-
- ife = lookup_interface(ifname);
-- res = do_if_fetch(ife);
-- if (res >= 0)
-+ if (!ife) {
-+ return -1;
-+ }
-+ res = do_if_fetch(ife);
-+ if (res >= 0)
- ife_print(ife);
- }
-- return res;
-+ return res;
- }
-
- /* Set a certain interface flag. */
-@@ -127,7 +127,7 @@ static int set_flag(char *ifname, short flag)
-
- safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
- if (ioctl(skfd, SIOCGIFFLAGS, &ifr) < 0) {
-- fprintf(stderr, _("%s: unknown interface: %s\n"),
-+ fprintf(stderr, _("%s: ERROR while getting interface flags: %s\n"),
- ifname, strerror(errno));
- return (-1);
- }
-@@ -159,7 +159,7 @@ static int clr_flag(char *ifname, short flag)
-
- safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
- if (ioctl(fd, SIOCGIFFLAGS, &ifr) < 0) {
-- fprintf(stderr, _("%s: unknown interface: %s\n"),
-+ fprintf(stderr, _("%s: ERROR while getting interface flags: %s\n"),
- ifname, strerror(errno));
- return -1;
- }
-@@ -172,9 +172,35 @@ static int clr_flag(char *ifname, short flag)
- return (0);
- }
-
-+/** test is a specified flag is set */
-+static int test_flag(char *ifname, short flags)
-+{
-+ struct ifreq ifr;
-+ int fd;
-+
-+ if (strchr(ifname, ':')) {
-+ /* This is a v4 alias interface. Downing it via a socket for
-+ another AF may have bad consequences. */
-+ fd = get_socket_for_af(AF_INET);
-+ if (fd < 0) {
-+ fprintf(stderr, _("No support for INET on this system.\n"));
-+ return -1;
-+ }
-+ } else
-+ fd = skfd;
-+
-+ safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
-+ if (ioctl(fd, SIOCGIFFLAGS, &ifr) < 0) {
-+ fprintf(stderr, _("%s: ERROR while testing interface flags: %s\n"),
-+ ifname, strerror(errno));
-+ return -1;
-+ }
-+ return (ifr.ifr_flags & flags);
-+}
-+
- static void usage(void)
- {
-- fprintf(stderr, _("Usage:\n ifconfig [-a] [-i] [-v] [-s] <interface> [[<AF>] <address>]\n"));
-+ fprintf(stderr, _("Usage:\n ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n"));
- #if HAVE_AFINET
- fprintf(stderr, _(" [add <address>[/<prefixlen>]]\n"));
- fprintf(stderr, _(" [del <address>[/<prefixlen>]]\n"));
-@@ -184,7 +210,7 @@ static void usage(void)
- #ifdef SIOCSKEEPALIVE
- fprintf(stderr, _(" [outfill <NN>] [keepalive <NN>]\n"));
- #endif
-- fprintf(stderr, _(" [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n"));
-+ fprintf(stderr, _(" [hw <HW> <address>] [mtu <NN>]\n"));
- fprintf(stderr, _(" [[-]trailers] [[-]arp] [[-]allmulti]\n"));
- fprintf(stderr, _(" [multicast] [[-]promisc]\n"));
- fprintf(stderr, _(" [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"));
-@@ -207,38 +233,39 @@ static void usage(void)
-
- static void version(void)
- {
-- fprintf(stderr, "%s\n%s\n", Release, Version);
-- exit(0);
-+ fprintf(stderr, "%s\n", Release);
-+ exit(E_VERSION);
- }
-
- static int set_netmask(int skfd, struct ifreq *ifr, struct sockaddr *sa)
- {
- int err = 0;
-
-- memcpy((char *) &ifr->ifr_netmask, (char *) sa,
-- sizeof(struct sockaddr));
-+ memcpy(&ifr->ifr_netmask, sa, sizeof(struct sockaddr));
- if (ioctl(skfd, SIOCSIFNETMASK, ifr) < 0) {
- fprintf(stderr, "SIOCSIFNETMASK: %s\n",
- strerror(errno));
- err = 1;
- }
-- return 0;
-+ return err;
- }
-
- int main(int argc, char **argv)
- {
-- struct sockaddr sa;
-- struct sockaddr_in sin;
-+ struct sockaddr_storage _sa, _samask;
-+ struct sockaddr *sa = (struct sockaddr *)&_sa;
-+ struct sockaddr *samask = (struct sockaddr *)&_samask;
-+ struct sockaddr_in *sin = (struct sockaddr_in *)sa;
- char host[128];
- struct aftype *ap;
- struct hwtype *hw;
- struct ifreq ifr;
-- int goterr = 0, didnetmask = 0;
-+ int goterr = 0, didnetmask = 0, neednetmask=0;
- char **spp;
- int fd;
- #if HAVE_AFINET6
- extern struct aftype inet6_aftype;
-- struct sockaddr_in6 sa6;
-+ struct sockaddr_in6 *sin6 = (struct sockaddr_in6 *)sa;
- struct in6_ifreq ifr6;
- unsigned long prefix_len;
- char *cp;
-@@ -248,7 +275,7 @@ int main(int argc, char **argv)
- #endif
-
- #if I18N
-- setlocale (LC_ALL, "");
-+ setlocale(LC_ALL, "");
- bindtextdomain("net-tools", "/usr/share/locale");
- textdomain("net-tools");
- #endif
-@@ -265,7 +292,7 @@ int main(int argc, char **argv)
-
- else if (!strcmp(*argv, "-v"))
- opt_v = 1;
--
-+
- else if (!strcmp(*argv, "-V") || !strcmp(*argv, "-version") ||
- !strcmp(*argv, "--version"))
- version();
-@@ -275,7 +302,7 @@ int main(int argc, char **argv)
- usage();
-
- else {
-- fprintf(stderr, _("ifconfig: option `%s' not recognised.\n"),
-+ fprintf(stderr, _("ifconfig: option `%s' not recognised.\n"),
- argv[0]);
- fprintf(stderr, _("ifconfig: `--help' gives usage information.\n"));
- exit(1);
-@@ -309,9 +336,9 @@ int main(int argc, char **argv)
- /* The next argument is either an address family name, or an option. */
- if ((ap = get_aftype(*spp)) != NULL)
- spp++; /* it was a AF name */
-- else
-+ else
- ap = get_aftype(DFLT_AF);
--
-+
- if (ap) {
- addr_family = ap->af;
- skfd = ap->fd;
-@@ -356,7 +383,7 @@ int main(int argc, char **argv)
- goterr = 1;
- } else {
- if (ioctl(skfd, SIOCGIFMAP, &ifr) < 0) {
-- perror("port: SIOCGIFMAP");
-+ perror("port: SIOCGIFMAP");
- goterr = 1;
- continue;
- }
-@@ -388,6 +415,8 @@ int main(int argc, char **argv)
- }
- if (!strcmp(*spp, "-promisc")) {
- goterr |= clr_flag(ifr.ifr_name, IFF_PROMISC);
-+ if (test_flag(ifr.ifr_name, IFF_PROMISC) > 0)
-+ fprintf(stderr, _("Warning: Interface %s still in promisc mode... maybe other application is running?\n"), ifr.ifr_name);
- spp++;
- continue;
- }
-@@ -398,6 +427,8 @@ int main(int argc, char **argv)
- }
- if (!strcmp(*spp, "-multicast")) {
- goterr |= clr_flag(ifr.ifr_name, IFF_MULTICAST);
-+ if (test_flag(ifr.ifr_name, IFF_MULTICAST) > 0)
-+ fprintf(stderr, _("Warning: Interface %s still in MULTICAST mode.\n"), ifr.ifr_name);
- spp++;
- continue;
- }
-@@ -408,6 +439,8 @@ int main(int argc, char **argv)
- }
- if (!strcmp(*spp, "-allmulti")) {
- goterr |= clr_flag(ifr.ifr_name, IFF_ALLMULTI);
-+ if (test_flag(ifr.ifr_name, IFF_ALLMULTI) > 0)
-+ fprintf(stderr, _("Warning: Interface %s still in ALLMULTI mode.\n"), ifr.ifr_name);
- spp++;
- continue;
- }
-@@ -430,21 +463,12 @@ int main(int argc, char **argv)
- if (!strcmp(*spp, "-dynamic")) {
- goterr |= clr_flag(ifr.ifr_name, IFF_DYNAMIC);
- spp++;
-+ if (test_flag(ifr.ifr_name, IFF_DYNAMIC) > 0)
-+ fprintf(stderr, _("Warning: Interface %s still in DYNAMIC mode.\n"), ifr.ifr_name);
- continue;
- }
- #endif
-
-- if (!strcmp(*spp, "metric")) {
-- if (*++spp == NULL)
-- usage();
-- ifr.ifr_metric = atoi(*spp);
-- if (ioctl(skfd, SIOCSIFMETRIC, &ifr) < 0) {
-- fprintf(stderr, "SIOCSIFMETRIC: %s\n", strerror(errno));
-- goterr = 1;
-- }
-- spp++;
-- continue;
-- }
- if (!strcmp(*spp, "mtu")) {
- if (*++spp == NULL)
- usage();
-@@ -460,7 +484,7 @@ int main(int argc, char **argv)
- if (!strcmp(*spp, "keepalive")) {
- if (*++spp == NULL)
- usage();
-- ifr.ifr_data = (caddr_t) atoi(*spp);
-+ ifr.ifr_data = (caddr_t) (uintptr_t) atoi(*spp);
- if (ioctl(skfd, SIOCSKEEPALIVE, &ifr) < 0) {
- fprintf(stderr, "SIOCSKEEPALIVE: %s\n", strerror(errno));
- goterr = 1;
-@@ -474,7 +498,7 @@ int main(int argc, char **argv)
- if (!strcmp(*spp, "outfill")) {
- if (*++spp == NULL)
- usage();
-- ifr.ifr_data = (caddr_t) atoi(*spp);
-+ ifr.ifr_data = (caddr_t) (uintptr_t) atoi(*spp);
- if (ioctl(skfd, SIOCSOUTFILL, &ifr) < 0) {
- fprintf(stderr, "SIOCSOUTFILL: %s\n", strerror(errno));
- goterr = 1;
-@@ -486,20 +510,24 @@ int main(int argc, char **argv)
-
- if (!strcmp(*spp, "-broadcast")) {
- goterr |= clr_flag(ifr.ifr_name, IFF_BROADCAST);
-+ if (test_flag(ifr.ifr_name, IFF_BROADCAST) > 0)
-+ fprintf(stderr, _("Warning: Interface %s still in BROADCAST mode.\n"), ifr.ifr_name);
- spp++;
- continue;
- }
- if (!strcmp(*spp, "broadcast")) {
- if (*++spp != NULL) {
- safe_strncpy(host, *spp, (sizeof host));
-- if (ap->input(0, host, &sa) < 0) {
-- ap->herror(host);
-+ if (ap->input(0, host, sa) < 0) {
-+ if (ap->herror)
-+ ap->herror(host);
-+ else
-+ fprintf(stderr, _("ifconfig: Error resolving '%s' for broadcast\n"), host);
- goterr = 1;
- spp++;
- continue;
- }
-- memcpy((char *) &ifr.ifr_broadaddr, (char *) &sa,
-- sizeof(struct sockaddr));
-+ memcpy(&ifr.ifr_broadaddr, sa, sizeof(struct sockaddr));
- if (ioctl(ap->fd, SIOCSIFBRDADDR, &ifr) < 0) {
- fprintf(stderr, "SIOCSIFBRDADDR: %s\n",
- strerror(errno));
-@@ -514,14 +542,16 @@ int main(int argc, char **argv)
- if (*++spp == NULL)
- usage();
- safe_strncpy(host, *spp, (sizeof host));
-- if (ap->input(0, host, &sa) < 0) {
-- ap->herror(host);
-+ if (ap->input(0, host, sa) < 0) {
-+ if (ap->herror)
-+ ap->herror(host);
-+ else
-+ fprintf(stderr, _("ifconfig: Error resolving '%s' for dstaddr\n"), host);
- goterr = 1;
- spp++;
- continue;
- }
-- memcpy((char *) &ifr.ifr_dstaddr, (char *) &sa,
-- sizeof(struct sockaddr));
-+ memcpy(&ifr.ifr_dstaddr, sa, sizeof(struct sockaddr));
- if (ioctl(ap->fd, SIOCSIFDSTADDR, &ifr) < 0) {
- fprintf(stderr, "SIOCSIFDSTADDR: %s\n",
- strerror(errno));
-@@ -534,14 +564,17 @@ int main(int argc, char **argv)
- if (*++spp == NULL || didnetmask)
- usage();
- safe_strncpy(host, *spp, (sizeof host));
-- if (ap->input(0, host, &sa) < 0) {
-- ap->herror(host);
-+ if (ap->input(0, host, sa) < 0) {
-+ if (ap->herror)
-+ ap->herror(host);
-+ else
-+ fprintf(stderr, _("ifconfig: Error resolving '%s' for netmask\n"), host);
- goterr = 1;
- spp++;
- continue;
- }
- didnetmask++;
-- goterr = set_netmask(ap->fd, &ifr, &sa);
-+ goterr |= set_netmask(ap->fd, &ifr, sa);
- spp++;
- continue;
- }
-@@ -563,8 +596,8 @@ int main(int argc, char **argv)
- if (*++spp == NULL)
- usage();
- if (ioctl(skfd, SIOCGIFMAP, &ifr) < 0) {
-- fprintf(stderr, "mem_start: SIOCGIFMAP: %s\n", strerror(errno));
-- spp++;
-+ fprintf(stderr, "mem_start: SIOCGIFMAP: %s\n", strerror(errno));
-+ spp++;
- goterr = 1;
- continue;
- }
-@@ -580,8 +613,8 @@ int main(int argc, char **argv)
- if (*++spp == NULL)
- usage();
- if (ioctl(skfd, SIOCGIFMAP, &ifr) < 0) {
-- fprintf(stderr, "io_addr: SIOCGIFMAP: %s\n", strerror(errno));
-- spp++;
-+ fprintf(stderr, "io_addr: SIOCGIFMAP: %s\n", strerror(errno));
-+ spp++;
- goterr = 1;
- continue;
- }
-@@ -597,9 +630,9 @@ int main(int argc, char **argv)
- if (*++spp == NULL)
- usage();
- if (ioctl(skfd, SIOCGIFMAP, &ifr) < 0) {
-- fprintf(stderr, "irq: SIOCGIFMAP: %s\n", strerror(errno));
-+ fprintf(stderr, "irq: SIOCGIFMAP: %s\n", strerror(errno));
- goterr = 1;
-- spp++;
-+ spp++;
- continue;
- }
- ifr.ifr_map.irq = atoi(*spp);
-@@ -613,20 +646,24 @@ int main(int argc, char **argv)
- if (!strcmp(*spp, "-pointopoint")) {
- goterr |= clr_flag(ifr.ifr_name, IFF_POINTOPOINT);
- spp++;
-+ if (test_flag(ifr.ifr_name, IFF_POINTOPOINT) > 0)
-+ fprintf(stderr, _("Warning: Interface %s still in POINTOPOINT mode.\n"), ifr.ifr_name);
- continue;
- }
- if (!strcmp(*spp, "pointopoint")) {
- if (*(spp + 1) != NULL) {
- spp++;
- safe_strncpy(host, *spp, (sizeof host));
-- if (ap->input(0, host, &sa)) {
-- ap->herror(host);
-+ if (ap->input(0, host, sa)) {
-+ if (ap->herror)
-+ ap->herror(host);
-+ else
-+ fprintf(stderr, _("ifconfig: Error resolving '%s' for pointopoint\n"), host);
- goterr = 1;
- spp++;
- continue;
- }
-- memcpy((char *) &ifr.ifr_dstaddr, (char *) &sa,
-- sizeof(struct sockaddr));
-+ memcpy(&ifr.ifr_dstaddr, sa, sizeof(struct sockaddr));
- if (ioctl(ap->fd, SIOCSIFDSTADDR, &ifr) < 0) {
- fprintf(stderr, "SIOCSIFDSTADDR: %s\n",
- strerror(errno));
-@@ -652,17 +689,20 @@ int main(int argc, char **argv)
- if (*++spp == NULL)
- usage();
- safe_strncpy(host, *spp, (sizeof host));
-- if (hw->input(host, &sa) < 0) {
-+ if (hw->input(host, sa) < 0) {
- fprintf(stderr, _("%s: invalid %s address.\n"), host, hw->name);
- goterr = 1;
- spp++;
- continue;
- }
-- memcpy((char *) &ifr.ifr_hwaddr, (char *) &sa,
-- sizeof(struct sockaddr));
-+ memcpy(&ifr.ifr_hwaddr, sa, sizeof(struct sockaddr));
- if (ioctl(skfd, SIOCSIFHWADDR, &ifr) < 0) {
-- fprintf(stderr, "SIOCSIFHWADDR: %s\n",
-- strerror(errno));
-+ if (errno == EBUSY)
-+ fprintf(stderr, "SIOCSIFHWADDR: %s - you may need to down the interface\n",
-+ strerror(errno));
-+ else
-+ fprintf(stderr, "SIOCSIFHWADDR: %s\n",
-+ strerror(errno));
- goterr = 1;
- }
- spp++;
-@@ -681,22 +721,23 @@ int main(int argc, char **argv)
- usage();
- *cp = 0;
- } else {
-- prefix_len = 0;
-+ prefix_len = 128;
- }
- safe_strncpy(host, *spp, (sizeof host));
-- if (inet6_aftype.input(1, host,
-- (struct sockaddr *) &sa6) < 0) {
-- inet6_aftype.herror(host);
-+ if (inet6_aftype.input(1, host, sa) < 0) {
-+ if (inet6_aftype.herror)
-+ inet6_aftype.herror(host);
-+ else
-+ fprintf(stderr, _("ifconfig: Error resolving '%s' for add\n"), host);
- goterr = 1;
- spp++;
- continue;
- }
-- memcpy((char *) &ifr6.ifr6_addr, (char *) &sa6.sin6_addr,
-- sizeof(struct in6_addr));
-+ memcpy(&ifr6.ifr6_addr, &sin6->sin6_addr, sizeof(struct in6_addr));
-
- fd = get_socket_for_af(AF_INET6);
- if (fd < 0) {
-- fprintf(stderr,
-+ fprintf(stderr,
- _("No support for INET6 on this system.\n"));
- goterr = 1;
- spp++;
-@@ -718,11 +759,11 @@ int main(int argc, char **argv)
- continue;
- }
- #endif
--#ifdef HAVE_AFINET
-+#if HAVE_AFINET
- { /* ipv4 address a.b.c.d */
-- unsigned long ip, nm, bc;
-+ in_addr_t ip, nm, bc;
- safe_strncpy(host, *spp, (sizeof host));
-- if (inet_aftype.input(0, host, (struct sockaddr *)&sin) < 0) {
-+ if (inet_aftype.input(0, host, sa) < 0) {
- ap->herror(host);
- goterr = 1;
- spp++;
-@@ -730,15 +771,15 @@ int main(int argc, char **argv)
- }
- fd = get_socket_for_af(AF_INET);
- if (fd < 0) {
-- fprintf(stderr,
-+ fprintf(stderr,
- _("No support for INET on this system.\n"));
- goterr = 1;
- spp++;
- continue;
- }
-
-- memcpy(&ip, &sin.sin_addr.s_addr, sizeof(unsigned long));
--
-+ memcpy(&ip, &sin->sin_addr.s_addr, sizeof(ip));
-+
- if (get_nmbc_parent(ifr.ifr_name, &nm, &bc) < 0) {
- fprintf(stderr, _("Interface %s not initialized\n"),
- ifr.ifr_name);
-@@ -747,7 +788,7 @@ int main(int argc, char **argv)
- continue;
- }
- set_ifstate(ifr.ifr_name, ip, nm, bc, 1);
--
-+
- }
- spp++;
- continue;
-@@ -771,22 +812,21 @@ int main(int argc, char **argv)
- usage();
- *cp = 0;
- } else {
-- prefix_len = 0;
-+ prefix_len = 128;
- }
- safe_strncpy(host, *spp, (sizeof host));
-- if (inet6_aftype.input(1, host,
-- (struct sockaddr *) &sa6) < 0) {
-+ if (inet6_aftype.input(1, host, sa) < 0) {
- inet6_aftype.herror(host);
- goterr = 1;
- spp++;
- continue;
- }
-- memcpy((char *) &ifr6.ifr6_addr, (char *) &sa6.sin6_addr,
-+ memcpy(&ifr6.ifr6_addr, &sin6->sin6_addr,
- sizeof(struct in6_addr));
--
-+
- fd = get_socket_for_af(AF_INET6);
- if (fd < 0) {
-- fprintf(stderr,
-+ fprintf(stderr,
- _("No support for INET6 on this system.\n"));
- goterr = 1;
- spp++;
-@@ -800,6 +840,8 @@ int main(int argc, char **argv)
- }
- ifr6.ifr6_ifindex = ifr.ifr_ifindex;
- ifr6.ifr6_prefixlen = prefix_len;
-+ if (opt_v)
-+ fprintf(stderr, "now deleting: ioctl(SIOCDIFADDR,{ifindex=%d,prefixlen=%ld})\n",ifr.ifr_ifindex,prefix_len);
- if (ioctl(fd, SIOCDIFADDR, &ifr6) < 0) {
- fprintf(stderr, "SIOCDIFADDR: %s\n",
- strerror(errno));
-@@ -809,12 +851,12 @@ int main(int argc, char **argv)
- continue;
- }
- #endif
--#ifdef HAVE_AFINET
-+#if HAVE_AFINET
- {
- /* ipv4 address a.b.c.d */
-- unsigned long ip, nm, bc;
-+ in_addr_t ip, nm, bc;
- safe_strncpy(host, *spp, (sizeof host));
-- if (inet_aftype.input(0, host, (struct sockaddr *)&sin) < 0) {
-+ if (inet_aftype.input(0, host, sa) < 0) {
- ap->herror(host);
- goterr = 1;
- spp++;
-@@ -827,9 +869,11 @@ int main(int argc, char **argv)
- spp++;
- continue;
- }
--
-- memcpy(&ip, &sin.sin_addr.s_addr, sizeof(unsigned long));
--
-+
-+ /* Clear "ip" in case sizeof(unsigned long) > sizeof(sin.sin_addr.s_addr) */
-+ ip = 0;
-+ memcpy(&ip, &sin->sin_addr.s_addr, sizeof(ip));
-+
- if (get_nmbc_parent(ifr.ifr_name, &nm, &bc) < 0) {
- fprintf(stderr, _("Interface %s not initialized\n"),
- ifr.ifr_name);
-@@ -859,17 +903,16 @@ int main(int argc, char **argv)
- usage();
- *cp = 0;
- } else {
-- prefix_len = 0;
-+ prefix_len = 128;
- }
- safe_strncpy(host, *spp, (sizeof host));
-- if (inet6_aftype.input(1, host, (struct sockaddr *) &sa6) < 0) {
-+ if (inet6_aftype.input(1, host, sa) < 0) {
- inet6_aftype.herror(host);
- goterr = 1;
- spp++;
- continue;
- }
-- memcpy((char *) &ifr6.ifr6_addr, (char *) &sa6.sin6_addr,
-- sizeof(struct in6_addr));
-+ memcpy(&ifr6.ifr6_addr, &sin6->sin6_addr, sizeof(struct in6_addr));
-
- fd = get_socket_for_af(AF_INET6);
- if (fd < 0) {
-@@ -900,10 +943,10 @@ int main(int argc, char **argv)
- /* If the next argument is a valid hostname, assume OK. */
- safe_strncpy(host, *spp, (sizeof host));
-
-- /* FIXME: sa is too small for INET6 addresses, inet6 should use that too,
-+ /* FIXME: sa is too small for INET6 addresses, inet6 should use that too,
- broadcast is unexpected */
- if (ap->getmask) {
-- switch (ap->getmask(host, &sa, NULL)) {
-+ switch (ap->getmask(host, samask, NULL)) {
- case -1:
- usage();
- break;
-@@ -911,8 +954,8 @@ int main(int argc, char **argv)
- if (didnetmask)
- usage();
-
-- goterr = set_netmask(skfd, &ifr, &sa);
-- didnetmask++;
-+ // remeber to set the netmask from samask later
-+ neednetmask = 1;
- break;
- }
- }
-@@ -920,12 +963,14 @@ int main(int argc, char **argv)
- fprintf(stderr, _("ifconfig: Cannot set address for this protocol family.\n"));
- exit(1);
- }
-- if (ap->input(0, host, &sa) < 0) {
-- ap->herror(host);
-- fprintf(stderr, _("ifconfig: `--help' gives usage information.\n"));
-- exit(1);
-+ if (ap->input(0, host, sa) < 0) {
-+ if (ap->herror)
-+ ap->herror(host);
-+ else
-+ fprintf(stderr,_("ifconfig: error resolving '%s' to set address for af=%s\n"), host, ap->name); fprintf(stderr,
-+ _("ifconfig: `--help' gives usage information.\n")); exit(1);
- }
-- memcpy((char *) &ifr.ifr_addr, (char *) &sa, sizeof(struct sockaddr));
-+ memcpy(&ifr.ifr_addr, sa, sizeof(struct sockaddr));
- {
- int r = 0; /* to shut gcc up */
- switch (ap->af) {
-@@ -965,14 +1010,14 @@ int main(int argc, char **argv)
- * end, since it's deleted already! - Roman
- *
- * Should really use regex.h here, not sure though how well it'll go
-- * with the cross-platform support etc.
-+ * with the cross-platform support etc.
- */
- {
- char *ptr;
- short int found_colon = 0;
- for (ptr = ifr.ifr_name; *ptr; ptr++ )
- if (*ptr == ':') found_colon++;
--
-+
- if (!(found_colon && *(ptr - 1) == '-'))
- goterr |= set_flag(ifr.ifr_name, (IFF_UP | IFF_RUNNING));
- }
-@@ -980,6 +1025,14 @@ int main(int argc, char **argv)
- spp++;
- }
-
-+ if (neednetmask) {
-+ goterr |= set_netmask(skfd, &ifr, samask);
-+ didnetmask++;
-+ }
-+
-+ if (opt_v && goterr)
-+ fprintf(stderr, _("WARNING: at least one error occured. (%d)\n"), goterr);
-+
- return (goterr);
- }
-
-@@ -1012,7 +1065,7 @@ static int do_ifcmd(struct interface *x, struct ifcmd *ptr)
- char *z, *e;
- struct sockaddr_in *sin;
- int i;
--
-+
- if (do_if_fetch(x) < 0)
- return 0;
- if (strncmp(x->name, ptr->base, ptr->baselen) != 0)
-@@ -1028,13 +1081,13 @@ static int do_ifcmd(struct interface *x, struct ifcmd *ptr)
- if (i < 0 || i > 255)
- abort();
- searcher[i] = 1;
--
-+
- /* copy */
- sin = (struct sockaddr_in *)&x->dstaddr;
- if (sin->sin_addr.s_addr != ptr->addr) {
- return 0;
- }
--
-+
- if (ptr->flag) {
- /* turn UP */
- if (set_flag(x->name, IFF_UP | IFF_RUNNING) == -1)
-@@ -1044,49 +1097,48 @@ static int do_ifcmd(struct interface *x, struct ifcmd *ptr)
- if (clr_flag(x->name, IFF_UP) == -1)
- return -1;
- }
--
-+
- return 1; /* all done! */
- }
-
-
- static int get_nmbc_parent(char *parent,
-- unsigned long *nm, unsigned long *bc)
-+ in_addr_t *nm, in_addr_t *bc)
- {
- struct interface *i;
- struct sockaddr_in *sin;
--
-+
- i = lookup_interface(parent);
- if (!i)
- return -1;
- if (do_if_fetch(i) < 0)
- return 0;
- sin = (struct sockaddr_in *)&i->netmask;
-- memcpy(nm, &sin->sin_addr.s_addr, sizeof(unsigned long));
-+ memcpy(nm, &sin->sin_addr.s_addr, sizeof(*nm));
- sin = (struct sockaddr_in *)&i->broadaddr;
-- memcpy(bc, &sin->sin_addr.s_addr, sizeof(unsigned long));
-+ memcpy(bc, &sin->sin_addr.s_addr, sizeof(*bc));
- return 0;
- }
-
--static int set_ifstate(char *parent, unsigned long ip,
-- unsigned long nm, unsigned long bc,
-+static int set_ifstate(char *parent, in_addr_t ip, in_addr_t nm, in_addr_t bc,
- int flag)
- {
- char buf[IFNAMSIZ];
- struct ifcmd pt;
- int i;
--
-+
- pt.base = parent;
- pt.baselen = strlen(parent);
- pt.addr = ip;
- pt.flag = flag;
- memset(searcher, 0, sizeof(searcher));
-- i = for_all_interfaces((int (*)(struct interface *,void *))do_ifcmd,
-+ i = for_all_interfaces((int (*)(struct interface *,void *))do_ifcmd,
- &pt);
- if (i == -1)
- return -1;
- if (i == 1)
- return 0;
--
-+
- /* add a new interface */
- for (i = 0; i < 256; i++)
- if (searcher[i] == 0)
-@@ -1094,7 +1146,7 @@ static int set_ifstate(char *parent, unsigned long ip,
-
- if (i == 256)
- return -1; /* FAILURE!!! out of ip addresses */
--
-+
- if (snprintf(buf, IFNAMSIZ, "%s:%d", parent, i) > IFNAMSIZ)
- return -1;
- if (set_ip_using(buf, SIOCSIFADDR, ip) == -1)
-diff --git a/include/interface.h b/include/interface.h
-index f95555c..1b58599 100644
---- a/include/interface.h
-+++ b/include/interface.h
-@@ -28,11 +28,10 @@ struct user_net_device_stats {
- };
-
- struct interface {
-- struct interface *next, *prev;
-+ struct interface *next, *prev;
- char name[IFNAMSIZ]; /* interface name */
- short type; /* if type */
- short flags; /* various flags */
-- int metric; /* routing metric */
- int mtu; /* MTU value */
- int tx_queue_len; /* transmit queue length */
- struct ifmap map; /* hardware setup */
-@@ -64,13 +63,17 @@ struct interface {
- extern int if_fetch(struct interface *ife);
-
- extern int for_all_interfaces(int (*)(struct interface *, void *), void *);
--extern int free_interface_list(void);
-+extern int if_cache_free(void);
- extern struct interface *lookup_interface(char *name);
- extern int if_readlist(void);
-
- extern int do_if_fetch(struct interface *ife);
- extern int do_if_print(struct interface *ife, void *cookie);
-
-+extern int procnetdev_version(char *buf);
-+extern int get_dev_fields(char *bp, struct interface *ife);
-+extern char * get_name(char *name, char *p);
-+
- extern void ife_print(struct interface *ptr);
-
- extern int ife_short;
-@@ -84,7 +87,7 @@ extern const char *if_port_text[][4];
- #endif
-
- #if !defined(ifr_qlen)
--/* Actually it is ifru_ivalue, but that is not present in 2.0 kernel headers */
-+/* Actually it is ifru_ivalue, but that is not present in 2.0 kernel headers */
- #define ifr_qlen ifr_ifru.ifru_mtu
- #endif
-
-diff --git a/include/mii.h b/include/mii.h
-deleted file mode 100644
-index 1ef7ccc..0000000
---- a/include/mii.h
-+++ /dev/null
-@@ -1,86 +0,0 @@
--/*
-- * mii.h 1.4 2000/04/25 22:06:15
-- *
-- * Media Independent Interface support: register layout and ioctl's
-- *
-- * Copyright (C) 2000 David A. Hinds -- dhinds@pcmcia.sourceforge.org
-- */
--
--#ifndef _LINUX_MII_H
--#define _LINUX_MII_H
--
--/* network interface ioctl's for MII commands */
--#ifndef SIOCGMIIPHY
--#define SIOCGMIIPHY (SIOCDEVPRIVATE) /* Read from current PHY */
--#define SIOCGMIIREG (SIOCDEVPRIVATE+1) /* Read any PHY register */
--#define SIOCSMIIREG (SIOCDEVPRIVATE+2) /* Write any PHY register */
--#define SIOCGPARAMS (SIOCDEVPRIVATE+3) /* Read operational parameters */
--#define SIOCSPARAMS (SIOCDEVPRIVATE+4) /* Set operational parameters */
--#endif
--
--#include <linux/types.h>
--
--/* This data structure is used for all the MII ioctl's */
--struct mii_data {
-- __u16 phy_id;
-- __u16 reg_num;
-- __u16 val_in;
-- __u16 val_out;
--};
--
--/* Basic Mode Control Register */
--#define MII_BMCR 0x00
--#define MII_BMCR_RESET 0x8000
--#define MII_BMCR_LOOPBACK 0x4000
--#define MII_BMCR_100MBIT 0x2000
--#define MII_BMCR_AN_ENA 0x1000
--#define MII_BMCR_ISOLATE 0x0400
--#define MII_BMCR_RESTART 0x0200
--#define MII_BMCR_DUPLEX 0x0100
--#define MII_BMCR_COLTEST 0x0080
--
--/* Basic Mode Status Register */
--#define MII_BMSR 0x01
--#define MII_BMSR_CAP_MASK 0xf800
--#define MII_BMSR_100BASET4 0x8000
--#define MII_BMSR_100BASETX_FD 0x4000
--#define MII_BMSR_100BASETX_HD 0x2000
--#define MII_BMSR_10BASET_FD 0x1000
--#define MII_BMSR_10BASET_HD 0x0800
--#define MII_BMSR_NO_PREAMBLE 0x0040
--#define MII_BMSR_AN_COMPLETE 0x0020
--#define MII_BMSR_REMOTE_FAULT 0x0010
--#define MII_BMSR_AN_ABLE 0x0008
--#define MII_BMSR_LINK_VALID 0x0004
--#define MII_BMSR_JABBER 0x0002
--#define MII_BMSR_EXT_CAP 0x0001
--
--#define MII_PHY_ID1 0x02
--#define MII_PHY_ID2 0x03
--
--/* Auto-Negotiation Advertisement Register */
--#define MII_ANAR 0x04
--/* Auto-Negotiation Link Partner Ability Register */
--#define MII_ANLPAR 0x05
--#define MII_AN_NEXT_PAGE 0x8000
--#define MII_AN_ACK 0x4000
--#define MII_AN_REMOTE_FAULT 0x2000
--#define MII_AN_ABILITY_MASK 0x07e0
--#define MII_AN_FLOW_CONTROL 0x0400
--#define MII_AN_100BASET4 0x0200
--#define MII_AN_100BASETX_FD 0x0100
--#define MII_AN_100BASETX_HD 0x0080
--#define MII_AN_10BASET_FD 0x0040
--#define MII_AN_10BASET_HD 0x0020
--#define MII_AN_PROT_MASK 0x001f
--#define MII_AN_PROT_802_3 0x0001
--
--/* Auto-Negotiation Expansion Register */
--#define MII_ANER 0x06
--#define MII_ANER_MULT_FAULT 0x0010
--#define MII_ANER_LP_NP_ABLE 0x0008
--#define MII_ANER_NP_ABLE 0x0004
--#define MII_ANER_PAGE_RX 0x0002
--#define MII_ANER_LP_AN_ABLE 0x0001
--
--#endif /* _LINUX_MII_H */
-diff --git a/include/util-ank.h b/include/util-ank.h
-index 04ab16c..c8fcd08 100644
---- a/include/util-ank.h
-+++ b/include/util-ank.h
-@@ -75,6 +75,6 @@ extern int do_qdisc(int argc, char **argv);
- extern int do_class(int argc, char **argv);
- extern int do_filter(int argc, char **argv);
-
--extern const char *format_host(int af, void *addr, __u8 *abuf, int alen);
-+extern const char *format_host(int af, void *addr, char *abuf, int alen);
-
- #endif /* __UTILS_H__ */
-diff --git a/ipmaddr.c b/ipmaddr.c
-index 2134e81..e4ed41d 100644
---- a/ipmaddr.c
-+++ b/ipmaddr.c
-@@ -32,6 +32,7 @@
-
- #include "config.h"
- #include "intl.h"
-+#include "util.h"
- #include "util-ank.h"
- #include "net-support.h"
- #include "version.h"
-@@ -44,13 +45,11 @@ int filter_family;
- #define NEWADDR 1
- #define DELADDR 2
-
--char *Release = RELEASE,
-- *Version = "ipmaddr 1.1",
-- *Signature = "Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>";
-+static char *Release = RELEASE, *Signature = "Alexey Kuznetsov";
-
- static void version(void)
- {
-- printf("%s\n%s\n%s\n", Release, Version, Signature);
-+ printf("%s\n%s\n", Release, Signature);
- exit(E_VERSION);
- }
-
-@@ -61,7 +60,7 @@ static void usage(void)
- fprintf(stderr, _("Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n"));
- fprintf(stderr, _(" ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n"));
- fprintf(stderr, _(" ipmaddr -V | -version\n"));
-- exit(-1);
-+ exit(E_USAGE);
- }
-
- static void print_lla(FILE *fp, int len, unsigned char *addr)
-@@ -75,7 +74,7 @@ static void print_lla(FILE *fp, int len, unsigned char *addr)
- }
- }
-
--static int parse_lla(char *str, unsigned char *addr)
-+static int parse_lla(char *str, char *addr)
- {
- int len=0;
-
-@@ -159,8 +158,7 @@ void read_dev_mcast(struct ma_info **result_p)
-
- len = parse_hex(hexa, (unsigned char*)&m.addr.data);
- if (len >= 0) {
-- struct ma_info *ma = malloc(sizeof(m));
--
-+ struct ma_info *ma = xmalloc(sizeof(m));
- memcpy(ma, &m, sizeof(m));
- ma->addr.bytelen = len;
- ma->addr.bitlen = len<<3;
-@@ -174,22 +172,21 @@ void read_dev_mcast(struct ma_info **result_p)
-
- void read_igmp(struct ma_info **result_p)
- {
-- struct ma_info m;
-+ struct ma_info m, *ma = NULL;
- char buf[256];
- FILE *fp = fopen(_PATH_PROCNET_IGMP, "r");
-
- if (!fp)
- return;
- memset(&m, 0, sizeof(m));
-- fgets(buf, sizeof(buf), fp);
-+ if (fgets(buf, sizeof(buf), fp))
-+ /* eat line */;
-
- m.addr.family = AF_INET;
- m.addr.bitlen = 32;
- m.addr.bytelen = 4;
-
- while (fgets(buf, sizeof(buf), fp)) {
-- struct ma_info *ma = malloc(sizeof(m));
--
- if (buf[0] != '\t') {
- sscanf(buf, "%d%s", &m.index, m.name);
- continue;
-@@ -200,7 +197,7 @@ void read_igmp(struct ma_info **result_p)
-
- sscanf(buf, "%08x%d", (__u32*)&m.addr.data, &m.users);
-
-- ma = malloc(sizeof(m));
-+ ma = xmalloc(sizeof(m));
- memcpy(ma, &m, sizeof(m));
- maddr_ins(result_p, ma);
- }
-@@ -231,8 +228,7 @@ void read_igmp6(struct ma_info **result_p)
-
- len = parse_hex(hexa, (unsigned char*)&m.addr.data);
- if (len >= 0) {
-- struct ma_info *ma = malloc(sizeof(m));
--
-+ struct ma_info *ma = xmalloc(sizeof(m));
- memcpy(ma, &m, sizeof(m));
-
- ma->addr.bytelen = len;
-@@ -291,13 +287,15 @@ static void print_mlist(FILE *fp, struct ma_info *list)
- static int multiaddr_list(int argc, char **argv)
- {
- struct ma_info *list = NULL;
-+ size_t l;
-
- while (argc > 0) {
- if (strcmp(*argv, "dev") == 0) {
- NEXT_ARG();
-- if (filter_dev[0])
-+ l = strlen(*argv);
-+ if (l <= 0 || l >= sizeof(filter_dev))
- usage();
-- strcpy(filter_dev, *argv);
-+ strncpy(filter_dev, *argv, sizeof (filter_dev));
- } else if (strcmp(*argv, "all") == 0) {
- filter_family = AF_UNSPEC;
- } else if (strcmp(*argv, "ipv4") == 0) {
-@@ -307,9 +305,10 @@ static int multiaddr_list(int argc, char **argv)
- } else if (strcmp(*argv, "link") == 0) {
- filter_family = AF_PACKET;
- } else {
-- if (filter_dev[0])
-+ l = strlen(*argv);
-+ if (l <= 0 || l >= sizeof(filter_dev))
- usage();
-- strcpy(filter_dev, *argv);
-+ strncpy(filter_dev, *argv, sizeof (filter_dev));
- }
- argv++; argc--;
- }
-@@ -401,7 +400,7 @@ int main(int argc, char **argv)
- basename = argv[0];
- else
- basename++;
--
-+
- while (argc > 1) {
- if (argv[1][0] != '-')
- break;
-diff --git a/iptunnel.c b/iptunnel.c
-index 4943d83..ddf43b2 100644
---- a/iptunnel.c
-+++ b/iptunnel.c
-@@ -68,13 +68,11 @@
-
- #include "util-ank.h"
-
--char *Release = RELEASE,
-- *Version = "iptunnel 1.01",
-- *Signature = "Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>";
-+static char *Release = RELEASE, *Signature = "Alexey Kuznetsov";
-
- static void version(void)
- {
-- printf("%s\n%s\n%s\n", Release, Version, Signature);
-+ printf("%s\n%s\n", Release, Signature);
- exit(E_VERSION);
- }
-
-@@ -92,7 +90,7 @@ static void usage(void)
- fprintf(stderr, _(" TOS := { NUMBER | inherit }\n"));
- fprintf(stderr, _(" TTL := { 1..255 | inherit }\n"));
- fprintf(stderr, _(" KEY := { DOTTED_QUAD | NUMBER }\n"));
-- exit(-1);
-+ exit(E_USAGE);
- }
-
- static int do_ioctl_get_ifindex(char *dev)
-@@ -101,11 +99,12 @@ static int do_ioctl_get_ifindex(char *dev)
- int fd;
- int err;
-
-- strcpy(ifr.ifr_name, dev);
-+ safe_strncpy(ifr.ifr_name, dev, IFNAMSIZ);
- fd = socket(AF_INET, SOCK_DGRAM, 0);
- err = ioctl(fd, SIOCGIFINDEX, &ifr);
- if (err) {
- perror("ioctl");
-+ close(fd);
- return 0;
- }
- close(fd);
-@@ -118,11 +117,12 @@ static int do_ioctl_get_iftype(char *dev)
- int fd;
- int err;
-
-- strcpy(ifr.ifr_name, dev);
-+ safe_strncpy(ifr.ifr_name, dev, IFNAMSIZ);
- fd = socket(AF_INET, SOCK_DGRAM, 0);
- err = ioctl(fd, SIOCGIFHWADDR, &ifr);
- if (err) {
- perror("ioctl");
-+ close(fd);
- return -1;
- }
- close(fd);
-@@ -141,6 +141,7 @@ static char * do_ioctl_get_ifname(int idx)
- err = ioctl(fd, SIOCGIFNAME, &ifr);
- if (err) {
- perror("ioctl");
-+ close(fd);
- return NULL;
- }
- close(fd);
-@@ -155,7 +156,7 @@ static int do_get_ioctl(char *basedev, struct ip_tunnel_parm *p)
- int fd;
- int err;
-
-- strcpy(ifr.ifr_name, basedev);
-+ safe_strncpy(ifr.ifr_name, basedev, IFNAMSIZ);
- ifr.ifr_ifru.ifru_data = (void*)p;
- fd = socket(AF_INET, SOCK_DGRAM, 0);
- err = ioctl(fd, SIOCGETTUNNEL, &ifr);
-@@ -171,7 +172,7 @@ static int do_add_ioctl(int cmd, char *basedev, struct ip_tunnel_parm *p)
- int fd;
- int err;
-
-- strcpy(ifr.ifr_name, basedev);
-+ safe_strncpy(ifr.ifr_name, basedev, IFNAMSIZ);
- ifr.ifr_ifru.ifru_data = (void*)p;
- fd = socket(AF_INET, SOCK_DGRAM, 0);
- err = ioctl(fd, cmd, &ifr);
-@@ -187,7 +188,7 @@ static int do_del_ioctl(char *basedev, struct ip_tunnel_parm *p)
- int fd;
- int err;
-
-- strcpy(ifr.ifr_name, basedev);
-+ safe_strncpy(ifr.ifr_name, basedev, IFNAMSIZ);
- ifr.ifr_ifru.ifru_data = (void*)p;
- fd = socket(AF_INET, SOCK_DGRAM, 0);
- err = ioctl(fd, SIOCDELTUNNEL, &ifr);
-@@ -375,7 +376,7 @@ static int do_add(int cmd, int argc, char **argv)
- return do_add_ioctl(cmd, "gre0", &p);
- case IPPROTO_IPV6:
- return do_add_ioctl(cmd, "sit0", &p);
-- default:
-+ default:
- fprintf(stderr, _("cannot determine tunnel mode (ipip, gre or sit)\n"));
- return -1;
- }
-@@ -390,13 +391,13 @@ int do_del(int argc, char **argv)
- return -1;
-
- switch (p.iph.protocol) {
-- case IPPROTO_IPIP:
-+ case IPPROTO_IPIP:
- return do_del_ioctl(p.name[0] ? p.name : "tunl0", &p);
-- case IPPROTO_GRE:
-+ case IPPROTO_GRE:
- return do_del_ioctl(p.name[0] ? p.name : "gre0", &p);
-- case IPPROTO_IPV6:
-+ case IPPROTO_IPV6:
- return do_del_ioctl(p.name[0] ? p.name : "sit0", &p);
-- default:
-+ default:
- return do_del_ioctl(p.name, &p);
- }
- return -1;
-@@ -476,8 +477,10 @@ static int do_tunnels_list(struct ip_tunnel_parm *p)
- return -1;
- }
-
-- fgets(buf, sizeof(buf), fp);
-- fgets(buf, sizeof(buf), fp);
-+ if (fgets(buf, sizeof(buf), fp))
-+ /* eat line */;
-+ if (fgets(buf, sizeof(buf), fp))
-+ /* eat line */;
-
- while (fgets(buf, sizeof(buf), fp) != NULL) {
- char *ptr;
-@@ -485,9 +488,10 @@ static int do_tunnels_list(struct ip_tunnel_parm *p)
- if ((ptr = strchr(buf, ':')) == NULL ||
- (*ptr++ = 0, sscanf(buf, "%s", name) != 1)) {
- fprintf(stderr, _("Wrong format of /proc/net/dev. Sorry.\n"));
-+ fclose(fp);
- return -1;
- }
-- if (sscanf(ptr, "%ld%ld%ld%ld%ld%ld%ld%*d%ld%ld%ld%ld%ld%ld%ld",
-+ if (sscanf(ptr, "%lu%lu%lu%lu%lu%lu%lu%*u%lu%lu%lu%lu%lu%lu%lu",
- &rx_bytes, &rx_packets, &rx_errs, &rx_drops,
- &rx_fifo, &rx_frame, &rx_multi,
- &tx_bytes, &tx_packets, &tx_errs, &tx_drops,
-@@ -521,6 +525,7 @@ static int do_tunnels_list(struct ip_tunnel_parm *p)
- tx_packets, tx_bytes, tx_errs, tx_colls, tx_carrier, tx_drops);
- }
- }
-+ fclose(fp);
- return 0;
- }
-
-@@ -533,7 +538,7 @@ static int do_show(int argc, char **argv)
- return -1;
-
- switch (p.iph.protocol) {
-- case IPPROTO_IPIP:
-+ case IPPROTO_IPIP:
- err = do_get_ioctl(p.name[0] ? p.name : "tunl0", &p);
- break;
- case IPPROTO_GRE:
-@@ -592,7 +597,7 @@ int main(int argc, char **argv)
- basename = argv[0];
- else
- basename++;
--
-+
- while (argc > 1) {
- if (argv[1][0] != '-')
- break;
-diff --git a/lib/Makefile b/lib/Makefile
-index d714b2e..431f258 100644
---- a/lib/Makefile
-+++ b/lib/Makefile
-@@ -16,7 +16,7 @@
- #
-
-
--HWOBJS = hw.o loopback.o slip.o ether.o ax25.o ppp.o arcnet.o tr.o tunnel.o frame.o sit.o rose.o ash.o fddi.o hippi.o hdlclapb.o strip.o irda.o ec_hw.o x25.o
-+HWOBJS = hw.o loopback.o slip.o ether.o ax25.o ppp.o arcnet.o tr.o tunnel.o frame.o sit.o rose.o ash.o fddi.o hippi.o hdlclapb.o strip.o irda.o ec_hw.o x25.o eui64.o ib.o
- AFOBJS = unix.o inet.o inet6.o ax25.o ipx.o ddp.o ipx.o netrom.o af.o rose.o econet.o x25.o
- AFGROBJS = inet_gr.o inet6_gr.o ipx_gr.o ddp_gr.o netrom_gr.o ax25_gr.o rose_gr.o getroute.o x25_gr.o
- AFSROBJS = inet_sr.o inet6_sr.o netrom_sr.o ipx_sr.o setroute.o x25_sr.o
-@@ -36,7 +36,7 @@ OBJS = $(sort $(VARIA) $(AFOBJS) $(HWOBJS) \
-
- # This can be overwritten by the TOPLEVEL Makefile
- TOPDIR=..
--CFLAGS += -I$(TOPDIR) -idirafter $(TOPDIR)/include # -fPIC
-+CFLAGS += -I$(TOPDIR) -I$(TOPDIR)/include # -fPIC
- SONAME=libnet-tools.so.0
-
- .SUFFIXES: .a .so
-diff --git a/lib/af.c b/lib/af.c
-index 4f002c4..0500a0a 100644
---- a/lib/af.c
-+++ b/lib/af.c
-@@ -2,7 +2,7 @@
- * lib/af.c This file contains the top-level part of the protocol
- * support functions module for the NET-2 base distribution.
- *
-- * Version: $Id: af.c,v 1.13 2000/05/20 13:38:10 pb Exp $
-+ * Version: $Id: af.c,v 1.14 2007/12/01 17:49:35 ecki Exp $
- *
- * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- * Copyright 1993 MicroWalt Corporation
-@@ -35,8 +35,10 @@ int flag_netrom;
- int flag_inet;
- int flag_inet6;
- int flag_econet;
-+int flag_rose;
- int flag_x25 = 0;
- int flag_ash;
-+int flag_bluetooth;
-
-
- struct aftrans_t {
-@@ -58,6 +60,9 @@ struct aftrans_t {
- "ipx", "ipx", &flag_ipx
- },
- {
-+ "rose", "rose", &flag_rose
-+ },
-+ {
- "appletalk", "ddp", &flag_ddp
- },
- {
-@@ -88,6 +93,9 @@ struct aftrans_t {
- "ash", "ash", &flag_ash
- },
- {
-+ "bluetooth", "bluetooth", &flag_bluetooth
-+ },
-+ {
- 0, 0, 0
- }
- };
-@@ -193,15 +201,14 @@ void aftrans_def(char *tool, char *argv0, char *dflt)
- char *tmp;
- char *buf;
-
-- strcpy(afname, dflt);
-+ safe_strncpy(afname, dflt, sizeof(afname));
-
- if (!(tmp = strrchr(argv0, '/')))
- tmp = argv0; /* no slash?! */
- else
- tmp++;
-
-- if (!(buf = strdup(tmp)))
-- return;
-+ buf = xstrdup(tmp);
-
- if (strlen(tool) >= strlen(tmp)) {
- free(buf);
-@@ -219,7 +226,7 @@ void aftrans_def(char *tool, char *argv0, char *dflt)
-
- afname[0] = '\0';
- if (aftrans_opt(buf))
-- strcpy(afname, buf);
-+ safe_strncpy(afname, buf, sizeof(afname));
-
- free(buf);
- }
-@@ -296,7 +303,6 @@ int aftrans_opt(const char *arg)
- if (tmp2)
- *(tmp2++) = '\0';
-
-- paft = aftrans;
- for (paft = aftrans; paft->alias; paft++) {
- if (strcmp(tmp1, paft->alias))
- continue;
-@@ -335,7 +341,7 @@ void print_aflist(int type) {
- if ((type == 1 && ((*afp)->rprint == NULL)) || ((*afp)->af == 0)) {
- afp++; continue;
- }
-- if ((count % 3) == 0) fprintf(stderr,count?"\n ":" ");
-+ if ((count % 3) == 0) fprintf(stderr,count?"\n ":" ");
- txt = (*afp)->name; if (!txt) txt = "..";
- fprintf(stderr,"%s (%s) ",txt,(*afp)->title);
- count++;
-diff --git a/lib/arcnet.c b/lib/arcnet.c
-index eb0f46e..9bc3267 100644
---- a/lib/arcnet.c
-+++ b/lib/arcnet.c
-@@ -35,7 +35,7 @@ extern struct hwtype arcnet_hwtype;
-
-
- /* Display an ARCnet address in readable format. */
--static char *pr_arcnet(unsigned char *ptr)
-+static const char *pr_arcnet(const char *ptr)
- {
- static char buff[64];
-
-@@ -43,11 +43,16 @@ static char *pr_arcnet(unsigned char *ptr)
- return (buff);
- }
-
-+#ifdef DEBUG
-+#define _DEBUG 1
-+#else
-+#define _DEBUG 0
-+#endif
-
- /* Input an ARCnet address and convert to binary. */
- static int in_arcnet(char *bufp, struct sockaddr *sap)
- {
-- unsigned char *ptr;
-+ char *ptr;
- char c, *orig;
- int i, val;
-
-@@ -66,9 +71,8 @@ static int in_arcnet(char *bufp, struct sockaddr *sap)
- else if (c >= 'A' && c <= 'F')
- val = c - 'A' + 10;
- else {
--#ifdef DEBUG
-- fprintf(stderr, _("in_arcnet(%s): invalid arcnet address!\n"), orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, _("in_arcnet(%s): invalid arcnet address!\n"), orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -81,9 +85,8 @@ static int in_arcnet(char *bufp, struct sockaddr *sap)
- else if (c >= 'A' && c <= 'F')
- val |= c - 'A' + 10;
- else {
--#ifdef DEBUG
-- fprintf(stderr, _("in_arcnet(%s): invalid arcnet address!\n"), orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, _("in_arcnet(%s): invalid arcnet address!\n"), orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -92,28 +95,21 @@ static int in_arcnet(char *bufp, struct sockaddr *sap)
-
- /* We might get a semicolon here - not required. */
- if (*bufp == ':') {
-- if (i == ETH_ALEN) {
--#ifdef DEBUG
-+ if (_DEBUG && i == ETH_ALEN)
- fprintf(stderr, _("in_arcnet(%s): trailing : ignored!\n"),
-- orig)
--#endif
-- ; /* nothing */
-- }
-+ orig);
- bufp++;
- }
- }
-
- /* That's it. Any trailing junk? */
-- if ((i == ETH_ALEN) && (*bufp != '\0')) {
--#ifdef DEBUG
-+ if (_DEBUG && (i == ETH_ALEN) && (*bufp != '\0')) {
- fprintf(stderr, _("in_arcnet(%s): trailing junk!\n"), orig);
- errno = EINVAL;
- return (-1);
--#endif
- }
--#ifdef DEBUG
-- fprintf(stderr, "in_arcnet(%s): %s\n", orig, pr_arcnet(sap->sa_data));
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, "in_arcnet(%s): %s\n", orig, pr_arcnet(sap->sa_data));
-
- return (0);
- }
-diff --git a/lib/ash.c b/lib/ash.c
-index c64667c..6cfc154 100644
---- a/lib/ash.c
-+++ b/lib/ash.c
-@@ -31,8 +31,8 @@ static unsigned char hamming[16] =
- };
-
- /* Display an Ash address in readable format. */
--static char *
--pr_ash(unsigned char *ptr)
-+static const char *
-+pr_ash(const char *ptr)
- {
- static char buff[128];
- char *p = buff;
-@@ -57,10 +57,10 @@ pr_ash(unsigned char *ptr)
-
- struct hwtype ash_hwtype;
-
--static int
-+static int
- in_ash(char *bufp, struct sockaddr *sap)
- {
-- unsigned char *ptr;
-+ char *ptr;
- unsigned int i = 0;
-
- sap->sa_family = ash_hwtype.type;
-@@ -102,7 +102,7 @@ struct hwtype ash_hwtype =
- #if HAVE_AFASH
-
- /* Display an Ash socket address. */
--static char *
-+static const char *
- pr_sash(struct sockaddr *sap, int numeric)
- {
- static char buf[64];
-diff --git a/lib/ax25.c b/lib/ax25.c
-index 11521d2..d57abe7 100644
---- a/lib/ax25.c
-+++ b/lib/ax25.c
-@@ -47,7 +47,7 @@ static char AX25_errmsg[128];
-
- extern struct aftype ax25_aftype;
-
--static char *AX25_print(unsigned char *ptr)
-+static const char *AX25_print(const char *ptr)
- {
- static char buff[8];
- int i;
-@@ -66,7 +66,7 @@ static char *AX25_print(unsigned char *ptr)
-
-
- /* Display an AX.25 socket address. */
--static char *
-+static const char *
- AX25_sprint(struct sockaddr *sap, int numeric)
- {
- static char buf[64];
-@@ -76,10 +76,15 @@ static char *
- return (AX25_print(((struct sockaddr_ax25 *) sap)->sax25_call.ax25_call));
- }
-
-+#ifdef DEBUG
-+#define _DEBUG 1
-+#else
-+#define _DEBUG 0
-+#endif
-
- static int AX25_input(int type, char *bufp, struct sockaddr *sap)
- {
-- unsigned char *ptr;
-+ char *ptr;
- char *orig, c;
- int i;
-
-@@ -95,9 +100,8 @@ static int AX25_input(int type, char *bufp, struct sockaddr *sap)
- c = toupper(c);
- if (!(isupper(c) || isdigit(c))) {
- safe_strncpy(AX25_errmsg, _("Invalid callsign"), sizeof(AX25_errmsg));
--#ifdef DEBUG
-- fprintf(stderr, "ax25_input(%s): %s !\n", AX25_errmsg, orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, "ax25_input(%s): %s !\n", AX25_errmsg, orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -107,10 +111,9 @@ static int AX25_input(int type, char *bufp, struct sockaddr *sap)
-
- /* Callsign too long? */
- if ((i == 6) && (*bufp != '-') && (*bufp != '\0')) {
-- strcpy(AX25_errmsg, _("Callsign too long"));
--#ifdef DEBUG
-- fprintf(stderr, "ax25_input(%s): %s !\n", AX25_errmsg, orig);
--#endif
-+ safe_strncpy(AX25_errmsg, _("Callsign too long"), sizeof(AX25_errmsg));
-+ if (_DEBUG)
-+ fprintf(stderr, "ax25_input(%s): %s !\n", AX25_errmsg, orig);
- errno = E2BIG;
- return (-1);
- }
-@@ -128,12 +131,12 @@ static int AX25_input(int type, char *bufp, struct sockaddr *sap)
- }
-
- /* All done. */
--#ifdef DEBUG
-- fprintf(stderr, "ax25_input(%s): ", orig);
-- for (i = 0; i < sizeof(ax25_address); i++)
-- fprintf(stderr, "%02X ", sap->sa_data[i] & 0377);
-- fprintf(stderr, "\n");
--#endif
-+ if (_DEBUG) {
-+ fprintf(stderr, "ax25_input(%s): ", orig);
-+ for (i = 0; i < sizeof(ax25_address); i++)
-+ fprintf(stderr, "%02X ", sap->sa_data[i] & 0377);
-+ fprintf(stderr, "\n");
-+ }
-
- return (0);
- }
-diff --git a/lib/ax25_gr.c b/lib/ax25_gr.c
-index 4dce92d..46a67ee 100644
---- a/lib/ax25_gr.c
-+++ b/lib/ax25_gr.c
-@@ -49,7 +49,8 @@ int AX25_rprint(int options)
- }
- printf(_("Kernel AX.25 routing table\n")); /* xxx */
- printf(_("Destination Iface Use\n")); /* xxx */
-- fgets(buffer, 256, f);
-+ if (fgets(buffer, 256, f))
-+ /* eat line */;
- while (fgets(buffer, 256, f)) {
- buffer[9] = 0;
- buffer[14] = 0;
-diff --git a/lib/ddp.c b/lib/ddp.c
-index 9b5e829..0a08fd2 100644
---- a/lib/ddp.c
-+++ b/lib/ddp.c
-@@ -32,7 +32,7 @@
- #include "util.h"
-
- /* Display a ddp domain address. */
--static char *ddp_print(unsigned char *ptr)
-+static const char *ddp_print(const char *ptr)
- {
- static char buff[64];
- struct sockaddr_at *sat = (struct sockaddr_at *) (ptr - 2);
-@@ -42,7 +42,7 @@ static char *ddp_print(unsigned char *ptr)
-
-
- /* Display a ddp domain address. */
--static char *ddp_sprint(struct sockaddr *sap, int numeric)
-+static const char *ddp_sprint(struct sockaddr *sap, int numeric)
- {
- static char buf[64];
-
-diff --git a/lib/ddp_gr.c b/lib/ddp_gr.c
-index 94169f0..d05c431 100644
---- a/lib/ddp_gr.c
-+++ b/lib/ddp_gr.c
-@@ -1,3 +1,20 @@
-+/*
-+ * lib/ddp_gr.c Prinbting of DDP (AppleTalk) routing table
-+ * used by the NET-LIB.
-+ *
-+ * NET-LIB
-+ *
-+ * Version: $Id: ddp_gr.c,v 1.4 2002/06/02 05:25:15 ecki Exp $
-+ *
-+ * Author: Ajax <ajax@firest0rm.org>
-+ *
-+ * Modification:
-+ * 2002-06-02 integrated into main source by Bernd Eckenfels
-+ *
-+ */
-+
-+/* TODO: name lookups (/etc/atalk.names? NBP?) */
-+
- #include "config.h"
-
- #if HAVE_AFATALK
-@@ -16,9 +33,62 @@
- #include "pathnames.h"
- #include "intl.h"
-
-+/* stolen from inet_gr.c */
-+#define flags_decode(i,o) do { \
-+ o[0] = '\0'; \
-+ if (i & RTF_UP) strcat(o, "U"); \
-+ if (i & RTF_GATEWAY) strcat(o, "G"); \
-+ if (i & RTF_REJECT) strcat(o, "!"); \
-+ if (i & RTF_HOST) strcat(o, "H"); \
-+ if (i & RTF_REINSTATE) strcat(o, "R"); \
-+ if (i & RTF_DYNAMIC) strcat(o, "D"); \
-+ if (i & RTF_MODIFIED) strcat(o, "M"); \
-+ if (i & RTF_DEFAULT) strcat(o, "d"); \
-+ if (i & RTF_ALLONLINK) strcat(o, "a"); \
-+ if (i & RTF_ADDRCONF) strcat(o, "c"); \
-+ if (i & RTF_NONEXTHOP) strcat(o, "o"); \
-+ if (i & RTF_EXPIRES) strcat(o, "e"); \
-+ if (i & RTF_CACHE) strcat(o, "c"); \
-+ if (i & RTF_FLOW) strcat(o, "f"); \
-+ if (i & RTF_POLICY) strcat(o, "p"); \
-+ if (i & RTF_LOCAL) strcat(o, "l"); \
-+ if (i & RTF_MTU) strcat(o, "u"); \
-+ if (i & RTF_WINDOW) strcat(o, "w"); \
-+ if (i & RTF_IRTT) strcat(o, "i"); \
-+ if (i & RTF_NOTCACHED) strcat(o, "n"); \
-+ } while (0)
-+
- int DDP_rprint(int options)
- {
-- fprintf(stderr, _("Routing table for `ddp' not yet supported.\n"));
-- return (1);
-+ FILE *fp;
-+ char *dest, *gw, *dev, *flags;
-+ char oflags[32];
-+ char *hdr = "Destination Gateway Device Flags";
-+
-+ fp = fopen(_PATH_PROCNET_ATALK_ROUTE, "r");
-+
-+ if (!fp) {
-+ perror("Error opening " _PATH_PROCNET_ATALK_ROUTE);
-+ fprintf(stderr, "DDP (AppleTalk) not configured on this system.\n");
-+ return 1;
-+ }
-+
-+ if (fscanf(fp, "%ms %ms %ms %ms\n", &dest, &gw, &flags, &dev))
-+ /* eat line */;
-+ free(dest); free(gw); free(flags); free(dev);
-+
-+ printf("%s\n", hdr);
-+
-+ while (fscanf(fp, "%ms %ms %ms %ms\n", &dest, &gw, &flags, &dev) == 4) {
-+ int iflags = atoi(flags);
-+ flags_decode(iflags, oflags);
-+ printf("%-16s%-16s%-16s%-s\n", dest, gw, dev, oflags);
-+ free(dest); free(gw); free(flags); free(dev);
-+ }
-+
-+ fclose(fp);
-+
-+ return 0;
-+
- }
- #endif
-diff --git a/lib/ec_hw.c b/lib/ec_hw.c
-index 825e501..088d125 100644
---- a/lib/ec_hw.c
-+++ b/lib/ec_hw.c
-@@ -2,7 +2,7 @@
- * lib/ec_hw.c This file contains an implementation of the Econet
- * hardware support functions.
- *
-- * Version: $Id: ec_hw.c,v 1.2 1999/09/27 11:00:46 philip Exp $
-+ * Version: $Id: ec_hw.c,v 1.3 2009/09/06 22:39:20 ecki Exp $
- *
- * Author: Philip Blundell <philb@gnu.org>
- *
-@@ -16,6 +16,7 @@
-
- #if HAVE_HWEC
-
-+#include <stdlib.h>
- #include <net/if_arp.h>
- #include "net-support.h"
-
-diff --git a/lib/econet.c b/lib/econet.c
-index 1229a28..6cf8a9a 100644
---- a/lib/econet.c
-+++ b/lib/econet.c
-@@ -32,8 +32,8 @@
-
-
- /* Display an Econet address */
--static char *
--ec_print(unsigned char *ptr)
-+static const char *
-+ec_print(const char *ptr)
- {
- static char buff[64];
- struct ec_addr *ec = (struct ec_addr *) ptr;
-@@ -43,7 +43,7 @@ ec_print(unsigned char *ptr)
-
-
- /* Display an Econet socket address */
--static char *
-+static const char *
- ec_sprint(struct sockaddr *sap, int numeric)
- {
- struct sockaddr_ec *sec = (struct sockaddr_ec *) sap;
-@@ -51,10 +51,10 @@ ec_sprint(struct sockaddr *sap, int numeric)
- if (sap->sa_family != AF_ECONET)
- return _("[NONE SET]");
-
-- return ec_print((unsigned char *) &sec->addr);
-+ return ec_print((const char *) &sec->addr);
- }
-
--static int
-+static int
- ec_input(int type, char *bufp, struct sockaddr *sap)
- {
- struct sockaddr_ec *sec = (struct sockaddr_ec *) sap;
-diff --git a/lib/ether.c b/lib/ether.c
-index a71aed7..dee9c73 100644
---- a/lib/ether.c
-+++ b/lib/ether.c
-@@ -2,7 +2,7 @@
- * lib/ether.c This file contains an implementation of the "Ethernet"
- * support functions.
- *
-- * Version: $Id: ether.c,v 1.7 1999/09/27 11:00:47 philip Exp $
-+ * Version: $Id: ether.c,v 1.8 2002/07/30 05:17:29 ecki Exp $
- *
- * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- * Copyright 1993 MicroWalt Corporation
-@@ -35,22 +35,27 @@ extern struct hwtype ether_hwtype;
-
-
- /* Display an Ethernet address in readable format. */
--static char *pr_ether(unsigned char *ptr)
-+static const char *pr_ether(const char *ptr)
- {
- static char buff[64];
-
-- snprintf(buff, sizeof(buff), "%02X:%02X:%02X:%02X:%02X:%02X",
-+ snprintf(buff, sizeof(buff), "%02x:%02x:%02x:%02x:%02x:%02x",
- (ptr[0] & 0377), (ptr[1] & 0377), (ptr[2] & 0377),
- (ptr[3] & 0377), (ptr[4] & 0377), (ptr[5] & 0377)
- );
- return (buff);
- }
-
-+#ifdef DEBUG
-+#define _DEBUG 1
-+#else
-+#define _DEBUG 0
-+#endif
-
- /* Input an Ethernet address and convert to binary. */
- static int in_ether(char *bufp, struct sockaddr *sap)
- {
-- unsigned char *ptr;
-+ char *ptr;
- char c, *orig;
- int i;
- unsigned val;
-@@ -70,9 +75,8 @@ static int in_ether(char *bufp, struct sockaddr *sap)
- else if (c >= 'A' && c <= 'F')
- val = c - 'A' + 10;
- else {
--#ifdef DEBUG
-- fprintf(stderr, _("in_ether(%s): invalid ether address!\n"), orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, _("in_ether(%s): invalid ether address!\n"), orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -87,9 +91,8 @@ static int in_ether(char *bufp, struct sockaddr *sap)
- else if (c == ':' || c == 0)
- val >>= 4;
- else {
--#ifdef DEBUG
-- fprintf(stderr, _("in_ether(%s): invalid ether address!\n"), orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, _("in_ether(%s): invalid ether address!\n"), orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -100,28 +103,21 @@ static int in_ether(char *bufp, struct sockaddr *sap)
-
- /* We might get a semicolon here - not required. */
- if (*bufp == ':') {
-- if (i == ETH_ALEN) {
--#ifdef DEBUG
-+ if (_DEBUG && i == ETH_ALEN)
- fprintf(stderr, _("in_ether(%s): trailing : ignored!\n"),
-- orig)
--#endif
-- ; /* nothing */
-- }
-+ orig);
- bufp++;
- }
- }
-
- /* That's it. Any trailing junk? */
-- if ((i == ETH_ALEN) && (*bufp != '\0')) {
--#ifdef DEBUG
-+ if (_DEBUG && (i == ETH_ALEN) && (*bufp != '\0')) {
- fprintf(stderr, _("in_ether(%s): trailing junk!\n"), orig);
- errno = EINVAL;
- return (-1);
--#endif
- }
--#ifdef DEBUG
-- fprintf(stderr, "in_ether(%s): %s\n", orig, pr_ether(sap->sa_data));
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, "in_ether(%s): %s\n", orig, pr_ether(sap->sa_data));
-
- return (0);
- }
-diff --git a/lib/eui64.c b/lib/eui64.c
-new file mode 100644
-index 0000000..94831c0
---- /dev/null
-+++ b/lib/eui64.c
-@@ -0,0 +1,152 @@
-+/*
-+ * lib/eui64.c This file contains support for generic EUI-64 hw addressing
-+ *
-+ * Version: $Id: eui64.c,v 1.1 2001/11/12 02:12:05 ecki Exp $
-+ *
-+ * Author: Daniel Stodden <stodden@in.tum.de>
-+ * Copyright 2001 Daniel Stodden
-+ *
-+ * blueprinted from ether.c
-+ * Copyright 1993 MicroWalt Corporation
-+ *
-+ * 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.
-+ */
-+#include "config.h"
-+
-+#if HAVE_HWEUI64
-+
-+#include <sys/types.h>
-+#include <sys/ioctl.h>
-+#include <sys/socket.h>
-+#include <net/if_arp.h>
-+#include <stdlib.h>
-+#include <stdio.h>
-+#include <ctype.h>
-+#include <errno.h>
-+#include <fcntl.h>
-+#include <string.h>
-+#include <termios.h>
-+#include <unistd.h>
-+#include "net-support.h"
-+#include "pathnames.h"
-+#include "intl.h"
-+
-+/*
-+ * EUI-64 constants
-+ */
-+
-+#define EUI64_ALEN 8
-+
-+#ifndef ARPHRD_EUI64
-+#define ARPHRD_EUI64 27
-+#warning "ARPHRD_EUI64 not defined in <net/if_arp.h>. Using private value 27"
-+#endif
-+
-+struct hwtype eui64_hwtype;
-+
-+/* Display an EUI-64 address in readable format. */
-+static const char *pr_eui64(const char *ptr)
-+{
-+ static char buff[64];
-+
-+ snprintf(buff, sizeof(buff), "%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X",
-+ (ptr[0] & 0377), (ptr[1] & 0377), (ptr[2] & 0377), (ptr[3] & 0377),
-+ (ptr[4] & 0377), (ptr[5] & 0377), (ptr[6] & 0377), (ptr[7] & 0377)
-+ );
-+ return (buff);
-+}
-+
-+#ifdef DEBUG
-+#define _DEBUG 1
-+#else
-+#define _DEBUG 0
-+#endif
-+
-+/* Start the PPP encapsulation on the file descriptor. */
-+static int in_eui64( char *bufp, struct sockaddr *sap )
-+{
-+ char *ptr;
-+ char c, *orig;
-+ int i;
-+ unsigned val;
-+
-+ sap->sa_family = eui64_hwtype.type;
-+ ptr = sap->sa_data;
-+
-+ i = 0;
-+ orig = bufp;
-+
-+ while ((*bufp != '\0') && (i < EUI64_ALEN)) {
-+ val = 0;
-+ c = *bufp++;
-+ if (isdigit(c))
-+ val = c - '0';
-+ else if (c >= 'a' && c <= 'f')
-+ val = c - 'a' + 10;
-+ else if (c >= 'A' && c <= 'F')
-+ val = c - 'A' + 10;
-+ else {
-+ if (_DEBUG)
-+ fprintf( stderr, _("in_eui64(%s): invalid eui64 address!\n"),
-+ orig );
-+ errno = EINVAL;
-+ return (-1);
-+ }
-+
-+ val <<= 4;
-+ c = *bufp;
-+ if (isdigit(c))
-+ val |= c - '0';
-+ else if (c >= 'a' && c <= 'f')
-+ val |= c - 'a' + 10;
-+ else if (c >= 'A' && c <= 'F')
-+ val |= c - 'A' + 10;
-+ else if (c == ':' || c == 0)
-+ val >>= 4;
-+ else {
-+ if (_DEBUG)
-+ fprintf( stderr, _("in_eui64(%s): invalid eui64 address!\n"),
-+ orig );
-+ errno = EINVAL;
-+ return (-1);
-+ }
-+
-+ if (c != 0)
-+ bufp++;
-+
-+ *ptr++ = (unsigned char) (val & 0377);
-+ i++;
-+
-+ /* We might get a semicolon here - not required. */
-+ if (*bufp == ':') {
-+ if (_DEBUG && i == EUI64_ALEN)
-+ fprintf(stderr, _("in_eui64(%s): trailing : ignored!\n"),
-+ orig);
-+ bufp++;
-+ }
-+ }
-+
-+ /* That's it. Any trailing junk? */
-+ if (_DEBUG && (i == EUI64_ALEN) && (*bufp != '\0')) {
-+ fprintf(stderr, _("in_eui64(%s): trailing junk!\n"), orig);
-+ errno = EINVAL;
-+ return (-1);
-+ }
-+ if (_DEBUG)
-+ fprintf(stderr, "in_eui64(%s): %s\n", orig, pr_eui64(sap->sa_data));
-+
-+ return (0);
-+}
-+
-+struct hwtype eui64_hwtype =
-+{
-+ "eui64", NULL, /*"EUI-64 addressing", */ ARPHRD_EUI64, EUI64_ALEN,
-+ pr_eui64, in_eui64, NULL, 0
-+};
-+
-+
-+#endif /* HAVE_EUI64 */
-diff --git a/lib/fddi.c b/lib/fddi.c
-index f6bf5ca..c18696e 100644
---- a/lib/fddi.c
-+++ b/lib/fddi.c
-@@ -46,7 +46,7 @@ extern struct hwtype fddi_hwtype;
-
-
- /* Display an FDDI address in readable format. */
--static char *pr_fddi(unsigned char *ptr)
-+static const char *pr_fddi(const char *ptr)
- {
- static char buff[64];
-
-@@ -57,11 +57,16 @@ static char *pr_fddi(unsigned char *ptr)
- return (buff);
- }
-
-+#ifdef DEBUG
-+#define _DEBUG 1
-+#else
-+#define _DEBUG 0
-+#endif
-
- /* Input an FDDI address and convert to binary. */
- static int in_fddi(char *bufp, struct sockaddr *sap)
- {
-- unsigned char *ptr;
-+ char *ptr;
- char c, *orig;
- int i, val;
-
-@@ -80,9 +85,8 @@ static int in_fddi(char *bufp, struct sockaddr *sap)
- else if (c >= 'A' && c <= 'F')
- val = c - 'A' + 10;
- else {
--#ifdef DEBUG
-- fprintf(stderr, _("in_fddi(%s): invalid fddi address!\n"), orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, _("in_fddi(%s): invalid fddi address!\n"), orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -95,9 +99,8 @@ static int in_fddi(char *bufp, struct sockaddr *sap)
- else if (c >= 'A' && c <= 'F')
- val |= c - 'A' + 10;
- else {
--#ifdef DEBUG
-- fprintf(stderr, _("in_fddi(%s): invalid fddi address!\n"), orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, _("in_fddi(%s): invalid fddi address!\n"), orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -106,28 +109,21 @@ static int in_fddi(char *bufp, struct sockaddr *sap)
-
- /* We might get a semicolon here - not required. */
- if (*bufp == ':') {
-- if (i == FDDI_K_ALEN) {
--#ifdef DEBUG
-+ if (_DEBUG && i == FDDI_K_ALEN)
- fprintf(stderr, _("in_fddi(%s): trailing : ignored!\n"),
-- orig)
--#endif
-- ; /* nothing */
-- }
-+ orig);
- bufp++;
- }
- }
-
- /* That's it. Any trailing junk? */
-- if ((i == FDDI_K_ALEN) && (*bufp != '\0')) {
--#ifdef DEBUG
-+ if (_DEBUG && (i == FDDI_K_ALEN) && (*bufp != '\0')) {
- fprintf(stderr, _("in_fddi(%s): trailing junk!\n"), orig);
- errno = EINVAL;
- return (-1);
--#endif
- }
--#ifdef DEBUG
-- fprintf(stderr, "in_fddi(%s): %s\n", orig, pr_fddi(sap->sa_data));
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, "in_fddi(%s): %s\n", orig, pr_fddi(sap->sa_data));
-
- return (0);
- }
-diff --git a/lib/frame.c b/lib/frame.c
-index 58d1ad4..ad265d6 100644
---- a/lib/frame.c
-+++ b/lib/frame.c
-@@ -37,7 +37,7 @@
- #include "net-support.h"
- #include "pathnames.h"
-
--char *pr_dlci(unsigned char *ptr)
-+static const char *pr_dlci(const char *ptr)
- {
- static char buf[12];
-
-diff --git a/lib/getargs.c b/lib/getargs.c
-index 4170097..6952777 100644
---- a/lib/getargs.c
-+++ b/lib/getargs.c
-@@ -24,12 +24,13 @@
- #include <unistd.h>
- #include "net-support.h"
- #include "pathnames.h"
-+#include "util.h"
-
-
- /* Split the input string into multiple fields. */
- int getargs(char *string, char *arguments[])
- {
-- int len = strlen(string);
-+ int len = strlen(string);
- char temp[len+1];
- char *sp, *ptr;
- int i, argc;
-@@ -41,7 +42,7 @@ int getargs(char *string, char *arguments[])
- */
- sp = string;
- i = 0;
-- strcpy(temp, string);
-+ safe_strncpy(temp, string, sizeof(temp));
- ptr = temp;
-
- /*
-diff --git a/lib/hdlclapb.c b/lib/hdlclapb.c
-index c4ed074..b7d563e 100644
---- a/lib/hdlclapb.c
-+++ b/lib/hdlclapb.c
-@@ -1,11 +1,11 @@
- /*
-- * lib/hdlclapb.c
-+ * lib/hdlclapb.c
- * This file contains the HDLC/LAPB support for the NET-2 base
- * distribution.
- *
- * Version: $Id: hdlclapb.c,v 1.5 2000/03/05 11:26:02 philip Exp $
- *
-- * Original Author:
-+ * Original Author:
- * Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- * Copyright 1993 MicroWalt Corporation
- *
-diff --git a/lib/hippi.c b/lib/hippi.c
-index 308db00..43e7a79 100644
---- a/lib/hippi.c
-+++ b/lib/hippi.c
-@@ -46,7 +46,7 @@ extern struct hwtype hippi_hwtype;
-
-
- /* Display an HIPPI address in readable format. */
--static char *pr_hippi(unsigned char *ptr)
-+static const char *pr_hippi(const char *ptr)
- {
- static char buff[64];
-
-@@ -57,11 +57,16 @@ static char *pr_hippi(unsigned char *ptr)
- return (buff);
- }
-
-+#ifdef DEBUG
-+#define _DEBUG 1
-+#else
-+#define _DEBUG 0
-+#endif
-
- /* Input an HIPPI address and convert to binary. */
- static int in_hippi(char *bufp, struct sockaddr *sap)
- {
-- unsigned char *ptr;
-+ char *ptr;
- char c, *orig;
- int i, val;
-
-@@ -80,9 +85,8 @@ static int in_hippi(char *bufp, struct sockaddr *sap)
- else if (c >= 'A' && c <= 'F')
- val = c - 'A' + 10;
- else {
--#ifdef DEBUG
-- fprintf(stderr, _("in_hippi(%s): invalid hippi address!\n"), orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, _("in_hippi(%s): invalid hippi address!\n"), orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -95,9 +99,8 @@ static int in_hippi(char *bufp, struct sockaddr *sap)
- else if (c >= 'A' && c <= 'F')
- val |= c - 'A' + 10;
- else {
--#ifdef DEBUG
-- fprintf(stderr, _("in_hippi(%s): invalid hippi address!\n"), orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, _("in_hippi(%s): invalid hippi address!\n"), orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -106,27 +109,20 @@ static int in_hippi(char *bufp, struct sockaddr *sap)
-
- /* We might get a semicolon here - not required. */
- if (*bufp == ':') {
-- if (i == HIPPI_ALEN) {
--#ifdef DEBUG
-- fprintf(stderr, _("in_hippi(%s): trailing : ignored!\n"), orig)
--#endif
-- ; /* nothing */
-- }
-+ if (_DEBUG && i == HIPPI_ALEN)
-+ fprintf(stderr, _("in_hippi(%s): trailing : ignored!\n"), orig);
- bufp++;
- }
- }
-
- /* That's it. Any trailing junk? */
-- if ((i == HIPPI_ALEN) && (*bufp != '\0')) {
--#ifdef DEBUG
-+ if (_DEBUG && (i == HIPPI_ALEN) && (*bufp != '\0')) {
- fprintf(stderr, _("in_hippi(%s): trailing junk!\n"), orig);
- errno = EINVAL;
- return (-1);
--#endif
- }
--#ifdef DEBUG
-- fprintf(stderr, "in_hippi(%s): %s\n", orig, pr_hippi(sap->sa_data));
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, "in_hippi(%s): %s\n", orig, pr_hippi(sap->sa_data));
-
- return (0);
- }
-diff --git a/lib/hw.c b/lib/hw.c
-index 4989748..71dfcf9 100644
---- a/lib/hw.c
-+++ b/lib/hw.c
-@@ -2,7 +2,7 @@
- * lib/hw.c This file contains the top-level part of the hardware
- * support functions module.
- *
-- * Version: $Id: hw.c,v 1.17 2000/05/20 13:38:10 pb Exp $
-+ * Version: $Id: hw.c,v 1.19 2008/10/03 01:52:04 ecki Exp $
- *
- * Maintainer: Bernd 'eckes' Eckenfels, <net-tools@lina.inka.de>
- *
-@@ -73,6 +73,10 @@ extern struct hwtype irda_hwtype;
-
- extern struct hwtype ec_hwtype;
-
-+extern struct hwtype ib_hwtype;
-+
-+extern struct hwtype eui64_hwtype;
-+
- static struct hwtype *hwtypes[] =
- {
-
-@@ -97,7 +101,7 @@ static struct hwtype *hwtypes[] =
- #if HAVE_HWTR
- &tr_hwtype,
- #ifdef ARPHRD_IEEE802_TR
-- &tr_hwtype1,
-+ &tr_hwtype1,
- #endif
- #endif
- #if HAVE_HWAX25
-@@ -144,6 +148,12 @@ static struct hwtype *hwtypes[] =
- #if HAVE_HWX25
- &x25_hwtype,
- #endif
-+#if HAVE_HWIB
-+ &ib_hwtype,
-+#endif
-+#if HAVE_HWEUI64
-+ &eui64_hwtype,
-+#endif
- &unspec_hwtype,
- NULL
- };
-@@ -211,12 +221,18 @@ void hwinit()
- #if HAVE_HWTR
- tr_hwtype.title = _("16/4 Mbps Token Ring");
- #ifdef ARPHRD_IEEE802_TR
-- tr_hwtype1.title = _("16/4 Mbps Token Ring (New)") ;
-+ tr_hwtype1.title = _("16/4 Mbps Token Ring (New)") ;
- #endif
- #endif
- #if HAVE_HWEC
- ec_hwtype.title = _("Econet");
- #endif
-+#if HAVE_HWIB
-+ ib_hwtype.title = _("InfiniBand");
-+#endif
-+#if HAVE_HWEUI64
-+ eui64_hwtype.title = _("Generic EUI-64");
-+#endif
- sVhwinit = 1;
- }
-
-@@ -269,7 +285,7 @@ void print_hwlist(int type) {
- if (((type == 1) && ((*hwp)->alen == 0)) || ((*hwp)->type == -1)) {
- hwp++; continue;
- }
-- if ((count % 3) == 0) fprintf(stderr,count?"\n ":" ");
-+ if ((count % 3) == 0) fprintf(stderr,count?"\n ":" ");
- txt = (*hwp)->name; if (!txt) txt = "..";
- fprintf(stderr,"%s (%s) ",txt,(*hwp)->title);
- count++;
-diff --git a/lib/ib.c b/lib/ib.c
-new file mode 100644
-index 0000000..1eeb7f0
---- /dev/null
-+++ b/lib/ib.c
-@@ -0,0 +1,151 @@
-+/*
-+ * lib/ib.c This file contains an implementation of the "Infiniband"
-+ * support functions.
-+ *
-+ * Version: $Id: ib.c,v 1.1 2008/10/03 01:52:03 ecki Exp $
-+ *
-+ * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
-+ * Copyright 1993 MicroWalt Corporation
-+ * Tom Duffy <tduffy@sun.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.
-+ */
-+#include "config.h"
-+
-+#if HAVE_HWIB
-+#include <sys/types.h>
-+#include <sys/socket.h>
-+#include <net/if_arp.h>
-+#include <linux/if_infiniband.h>
-+#include <stdlib.h>
-+#include <stdio.h>
-+#include <errno.h>
-+#include <ctype.h>
-+#include <string.h>
-+#include <unistd.h>
-+#include "net-support.h"
-+#include "pathnames.h"
-+#include "intl.h"
-+#include "util.h"
-+
-+extern struct hwtype ib_hwtype;
-+
-+
-+/* Display an InfiniBand address in readable format. */
-+static const char *pr_ib(const char *ptr)
-+{
-+ static char buff[128];
-+ char *pos;
-+ unsigned int i;
-+
-+ pos = buff;
-+ for (i = 0; i < INFINIBAND_ALEN; i++) {
-+ pos += sprintf(pos, "%02X:", (*ptr++ & 0377));
-+ }
-+ buff[strlen(buff) - 1] = '\0';
-+ fprintf(stderr, _("Infiniband hardware address can be incorrect! Please read BUGS section in ifconfig(8).\n"));
-+ /* snprintf(buff, sizeof(buff), "%02X:%02X:%02X:%02X:%02X:%02X",
-+ (ptr[0] & 0377), (ptr[1] & 0377), (ptr[2] & 0377),
-+ (ptr[3] & 0377), (ptr[4] & 0377), (ptr[5] & 0377)
-+ );
-+ */
-+ return (buff);
-+}
-+
-+#ifdef DEBUG
-+#define _DEBUG 1
-+#else
-+#define _DEBUG 0
-+#endif
-+
-+/* Input an Infiniband address and convert to binary. */
-+static int in_ib(char *bufp, struct sockaddr *sap)
-+{
-+ char *ptr;
-+ char c, *orig;
-+ int i;
-+ unsigned val;
-+
-+ sap->sa_family = ib_hwtype.type;
-+ ptr = sap->sa_data;
-+
-+ i = 0;
-+ orig = bufp;
-+ while ((*bufp != '\0') && (i < INFINIBAND_ALEN)) {
-+ val = 0;
-+ c = *bufp++;
-+ if (isdigit(c))
-+ val = c - '0';
-+ else if (c >= 'a' && c <= 'f')
-+ val = c - 'a' + 10;
-+ else if (c >= 'A' && c <= 'F')
-+ val = c - 'A' + 10;
-+ else {
-+ if (_DEBUG)
-+ fprintf(stderr, _("in_ib(%s): invalid infiniband address!\n"), orig);
-+ errno = EINVAL;
-+ return (-1);
-+ }
-+ val <<= 4;
-+ c = *bufp;
-+ if (isdigit(c))
-+ val |= c - '0';
-+ else if (c >= 'a' && c <= 'f')
-+ val |= c - 'a' + 10;
-+ else if (c >= 'A' && c <= 'F')
-+ val |= c - 'A' + 10;
-+ else if (c == ':' || c == 0)
-+ val >>= 4;
-+ else {
-+#ifdef DEBUG
-+ fprintf(stderr, _("in_ib(%s): invalid infiniband address!\n"), orig);
-+#endif
-+ errno = EINVAL;
-+ return (-1);
-+ }
-+ if (c != 0)
-+ bufp++;
-+ *ptr++ = (unsigned char) (val & 0377);
-+ i++;
-+
-+ /* We might get a semicolon here - not required. */
-+ if (*bufp == ':') {
-+ if (i == INFINIBAND_ALEN) {
-+#ifdef DEBUG
-+ fprintf(stderr, _("in_ib(%s): trailing : ignored!\n"),
-+ orig)
-+#endif
-+ ; /* nothing */
-+ }
-+ bufp++;
-+ }
-+ }
-+
-+ /* That's it. Any trailing junk? */
-+ if ((i == INFINIBAND_ALEN) && (*bufp != '\0')) {
-+#ifdef DEBUG
-+ fprintf(stderr, _("in_ib(%s): trailing junk!\n"), orig);
-+ errno = EINVAL;
-+ return (-1);
-+#endif
-+ }
-+#ifdef DEBUG
-+ fprintf(stderr, "in_ib(%s): %s\n", orig, pr_ib(sap->sa_data));
-+#endif
-+
-+ return (0);
-+}
-+
-+
-+struct hwtype ib_hwtype =
-+{
-+ "infiniband", NULL, ARPHRD_INFINIBAND, INFINIBAND_ALEN,
-+ pr_ib, in_ib, NULL
-+};
-+
-+
-+#endif /* HAVE_HWIB */
-diff --git a/lib/inet.c b/lib/inet.c
-index ae90664..fc23b17 100644
---- a/lib/inet.c
-+++ b/lib/inet.c
-@@ -3,7 +3,7 @@
- * support functions for the net-tools.
- * (NET-3 base distribution).
- *
-- * Version: $Id: inet.c,v 1.13 1999/12/11 13:35:56 freitag Exp $
-+ * Version: $Id: inet.c,v 1.14 2003/10/19 11:57:37 pb Exp $
- *
- * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- * Copyright 1993 MicroWalt Corporation
-@@ -14,11 +14,11 @@
- *960203 {1.23} Bernd Eckenfels : net-features support
- *960217 {1.24} Bernd Eckenfels : get_sname
- *960219 {1.25} Bernd Eckenfels : extern int h_errno
-- *960329 {1.26} Bernd Eckenfels : resolve 255.255.255.255
-+ *960329 {1.26} Bernd Eckenfels : resolve 255.255.255.255
- *980101 {1.27} Bernd Eckenfels : resolve raw sockets in /etc/protocols
- *990302 {1.28} Phil Blundell : add netmask to INET_rresolve
- *991007 Kurt Garloff : rresolve, resolve: may be hosts
-- * <garloff@suse.de> store type (host?) in cache
-+ * <garloff@suse.de> store type (host?) in cache
- *
- * This program is free software; you can redistribute it
- * and/or modify it under the terms of the GNU General
-@@ -96,9 +96,9 @@ static int INET_resolve(char *name, struct sockaddr_in *sin, int hostfirst)
- #ifdef DEBUG
- if (hostfirst) fprintf (stderr, "gethostbyname (%s)\n", name);
- #endif
-- if (hostfirst &&
-+ if (hostfirst &&
- (hp = gethostbyname(name)) != (struct hostent *) NULL) {
-- memcpy((char *) &sin->sin_addr, (char *) hp->h_addr_list[0],
-+ memcpy((char *) &sin->sin_addr, (char *) hp->h_addr_list[0],
- sizeof(struct in_addr));
- return 0;
- }
-@@ -127,24 +127,24 @@ static int INET_resolve(char *name, struct sockaddr_in *sin, int hostfirst)
- errno = h_errno;
- return -1;
- }
-- memcpy((char *) &sin->sin_addr, (char *) hp->h_addr_list[0],
-+ memcpy((char *) &sin->sin_addr, (char *) hp->h_addr_list[0],
- sizeof(struct in_addr));
-
- return 0;
- }
-
-
--/* numeric: & 0x8000: default instead of *,
-- * & 0x4000: host instead of net,
-+/* numeric: & 0x8000: default instead of *,
-+ * & 0x4000: host instead of net,
- * & 0x0fff: don't resolve
- */
--static int INET_rresolve(char *name, size_t len, struct sockaddr_in *sin,
-+static int INET_rresolve(char *name, size_t len, struct sockaddr_in *sin,
- int numeric, unsigned int netmask)
- {
- struct hostent *ent;
- struct netent *np;
- struct addr *pn;
-- unsigned long ad, host_ad;
-+ u_int32_t ad, host_ad;
- int host = 0;
-
- /* Grmpf. -FvK */
-@@ -155,24 +155,34 @@ static int INET_rresolve(char *name, size_t len, struct sockaddr_in *sin,
- errno = EAFNOSUPPORT;
- return (-1);
- }
-- ad = (unsigned long) sin->sin_addr.s_addr;
-+ ad = sin->sin_addr.s_addr;
- #ifdef DEBUG
-- fprintf (stderr, "rresolve: %08lx, mask %08x, num %08x \n", ad, netmask, numeric);
-+ fprintf (stderr, "rresolve: %08lx, mask %08x, num %08x, len %d\n", ad, netmask, numeric, len);
- #endif
-+
-+ // if no symbolic names are requested we shortcut with ntoa
-+ if (numeric & 0x0FFF) {
-+ safe_strncpy(name, inet_ntoa(sin->sin_addr), len);
-+ return (0);
-+ }
-+
-+ // we skip getnetbyaddr for 0.0.0.0/0 and 0.0.0.0/~0
- if (ad == INADDR_ANY) {
-- if ((numeric & 0x0FFF) == 0) {
-+ if (netmask == INADDR_ANY) {
-+ // for 0.0.0.0/0 we hardcode symbolic name
- if (numeric & 0x8000)
- safe_strncpy(name, "default", len);
- else
- safe_strncpy(name, "*", len);
- return (0);
-+ } else {
-+ // for 0.0.0.0/1 we skip getnetbyname()
-+ safe_strncpy(name, "0.0.0.0", len);
-+ return (0);
- }
- }
-- if (numeric & 0x0FFF) {
-- safe_strncpy(name, inet_ntoa(sin->sin_addr), len);
-- return (0);
-- }
-
-+ // it is a host address if flagged or any host bits set
- if ((ad & (~netmask)) != 0 || (numeric & 0x4000))
- host = 1;
- #if 0
-@@ -183,7 +193,7 @@ static int INET_rresolve(char *name, size_t len, struct sockaddr_in *sin,
- if (pn->addr.sin_addr.s_addr == ad && pn->host == host) {
- safe_strncpy(name, pn->name, len);
- #ifdef DEBUG
-- fprintf (stderr, "rresolve: found %s %08lx in cache\n", (host? "host": "net"), ad);
-+ fprintf (stderr, "rresolve: found %s %08lx in cache (name=%s, len=%d)\n", (host? "host": "net"), ad, name, len);
- #endif
- return (0);
- }
-@@ -210,12 +220,11 @@ static int INET_rresolve(char *name, size_t len, struct sockaddr_in *sin,
- }
- if ((ent == NULL) && (np == NULL))
- safe_strncpy(name, inet_ntoa(sin->sin_addr), len);
-- pn = (struct addr *) malloc(sizeof(struct addr));
-+ pn = (struct addr *) xmalloc(sizeof(struct addr));
- pn->addr = *sin;
- pn->next = INET_nn;
- pn->host = host;
-- pn->name = (char *) malloc(strlen(name) + 1);
-- strcpy(pn->name, name);
-+ pn->name = xstrdup(name);
- INET_nn = pn;
-
- return (0);
-@@ -229,35 +238,35 @@ static void INET_reserror(char *text)
-
-
- /* Display an Internet socket address. */
--static char *INET_print(unsigned char *ptr)
-+static const char *INET_print(const char *ptr)
- {
- return (inet_ntoa((*(struct in_addr *) ptr)));
- }
-
-
- /* Display an Internet socket address. */
--static char *INET_sprint(struct sockaddr *sap, int numeric)
-+static const char *INET_sprint(struct sockaddr *sap, int numeric)
- {
- static char buff[128];
-
- if (sap->sa_family == 0xFFFF || sap->sa_family == 0)
- return safe_strncpy(buff, _("[NONE SET]"), sizeof(buff));
-
-- if (INET_rresolve(buff, sizeof(buff), (struct sockaddr_in *) sap,
-+ if (INET_rresolve(buff, sizeof(buff), (struct sockaddr_in *) sap,
- numeric, 0xffffff00) != 0)
- return (NULL);
-
- return (buff);
- }
-
--char *INET_sprintmask(struct sockaddr *sap, int numeric,
-+char *INET_sprintmask(struct sockaddr *sap, int numeric,
- unsigned int netmask)
- {
- static char buff[128];
-
- if (sap->sa_family == 0xFFFF || sap->sa_family == 0)
- return safe_strncpy(buff, _("[NONE SET]"), sizeof(buff));
-- if (INET_rresolve(buff, sizeof(buff), (struct sockaddr_in *) sap,
-+ if (INET_rresolve(buff, sizeof(buff), (struct sockaddr_in *) sap,
- numeric, netmask) != 0)
- return (NULL);
- return (buff);
-@@ -385,10 +394,8 @@ static int read_services(void)
- setservent(1);
- while ((se = getservent())) {
- /* Allocate a service entry. */
-- item = (struct service *) malloc(sizeof(struct service));
-- if (item == NULL)
-- perror("netstat");
-- item->name = strdup(se->s_name);
-+ item = (struct service *) xmalloc(sizeof(struct service));
-+ item->name = xstrdup(se->s_name);
- item->number = se->s_port;
-
- /* Fill it in. */
-@@ -398,16 +405,17 @@ static int read_services(void)
- add2list(&udp_name, item);
- } else if (!strcmp(se->s_proto, "raw")) {
- add2list(&raw_name, item);
-+ } else { /* sctp, ddp, dccp */
-+ free(item->name);
-+ free(item);
- }
- }
- endservent();
- setprotoent(1);
- while ((pe = getprotoent())) {
- /* Allocate a service entry. */
-- item = (struct service *) malloc(sizeof(struct service));
-- if (item == NULL)
-- perror("netstat");
-- item->name = strdup(pe->p_name);
-+ item = (struct service *) xmalloc(sizeof(struct service));
-+ item->name = xstrdup(pe->p_name);
- item->number = htons(pe->p_proto);
- add2list(&raw_name, item);
- }
-@@ -416,35 +424,38 @@ static int read_services(void)
- }
-
-
--char *get_sname(int socknumber, char *proto, int numeric)
-+const char *get_sname(int socknumber, const char *proto, int numeric)
- {
- static char buffer[64], init = 0;
- struct service *item;
-
- if (socknumber == 0)
- return ("*");
-- if (numeric) {
-- sprintf(buffer, "%d", ntohs(socknumber));
-- return (buffer);
-- }
-+ if (numeric)
-+ goto do_ntohs;
-+
- if (!init) {
- (void) read_services();
- init = 1;
- }
- buffer[0] = '\0';
-- if (!strcmp(proto, "tcp")) {
-- if ((item = searchlist(tcp_name, socknumber)) != NULL)
-- sprintf(buffer, "%s", item->name);
-- } else if (!strcmp(proto, "udp")) {
-- if ((item = searchlist(udp_name, socknumber)) != NULL)
-- sprintf(buffer, "%s", item->name);
-- } else if (!strcmp(proto, "raw")) {
-- if ((item = searchlist(raw_name, socknumber)) != NULL)
-- sprintf(buffer, "%s", item->name);
--
-+ if (!strcmp(proto, "tcp"))
-+ item = searchlist(tcp_name, socknumber);
-+ else if (!strcmp(proto, "udp"))
-+ item = searchlist(udp_name, socknumber);
-+ else if (!strcmp(proto, "raw"))
-+ item = searchlist(raw_name, socknumber);
-+ else
-+ item = NULL;
-+ if (item) {
-+ strncpy(buffer, item->name, sizeof(buffer));
-+ buffer[sizeof(buffer) - 1] = '\0';
- }
-- if (!buffer[0])
-+
-+ if (!buffer[0]) {
-+ do_ntohs:
- sprintf(buffer, "%d", ntohs(socknumber));
-+ }
- return (buffer);
- }
-
-diff --git a/lib/inet6.c b/lib/inet6.c
-index 1f936b3..b428d07 100644
---- a/lib/inet6.c
-+++ b/lib/inet6.c
-@@ -3,7 +3,7 @@
- * support functions for the net-tools.
- * (most of it copied from lib/inet.c 1.26).
- *
-- * Version: $Id: inet6.c,v 1.10 2000/10/28 11:04:00 pb Exp $
-+ * Version: $Id: inet6.c,v 1.13 2010-07-05 22:52:00 ecki Exp $
- *
- * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- * Copyright 1993 MicroWalt Corporation
-@@ -44,6 +44,21 @@
-
- extern int h_errno; /* some netdb.h versions don't export this */
-
-+char * fix_v4_address(char *buf, struct in6_addr *in6)
-+{
-+ if (IN6_IS_ADDR_V4MAPPED(in6->s6_addr)) {
-+ char *s =strchr(buf, '.');
-+ if (s) {
-+ while (s > buf && *s != ':')
-+ --s;
-+ if (*s == ':') ++s;
-+ else s = NULL;
-+ }
-+ if (s) return s;
-+ }
-+ return buf;
-+}
-+
- static int INET6_resolve(char *name, struct sockaddr_in6 *sin6)
- {
- struct addrinfo req, *ai;
-@@ -69,10 +84,9 @@ static int INET6_resolve(char *name, struct sockaddr_in6 *sin6)
- #endif
-
-
--static int INET6_rresolve(char *name, struct sockaddr_in6 *sin6, int numeric)
-+static int INET6_rresolve(char *name, size_t namelen,
-+ struct sockaddr_in6 *sin6, int numeric)
- {
-- int s;
--
- /* Grmpf. -FvK */
- if (sin6->sin6_family != AF_INET6) {
- #ifdef DEBUG
-@@ -83,21 +97,20 @@ static int INET6_rresolve(char *name, struct sockaddr_in6 *sin6, int numeric)
- return (-1);
- }
- if (numeric & 0x7FFF) {
-- inet_ntop(AF_INET6, &sin6->sin6_addr, name, 80);
-+ inet_ntop( AF_INET6, &sin6->sin6_addr, name, namelen);
- return (0);
- }
- if (IN6_IS_ADDR_UNSPECIFIED(&sin6->sin6_addr)) {
- if (numeric & 0x8000)
-- strcpy(name, "default");
-+ safe_strncpy(name, "default", namelen);
- else
-- strcpy(name, "*");
-+ safe_strncpy(name, "[::]", namelen);
- return (0);
- }
-
-- if ((s = getnameinfo((struct sockaddr *) sin6, sizeof(struct sockaddr_in6),
-- name, 255 /* !! */ , NULL, 0, 0))) {
-- fputs("getnameinfo failed\n", stderr);
-- return -1;
-+ if (getnameinfo((struct sockaddr *) sin6, sizeof(struct sockaddr_in6),
-+ name, namelen , NULL, 0, 0)) {
-+ inet_ntop( AF_INET6, &sin6->sin6_addr, name, namelen);
- }
- return (0);
- }
-@@ -109,41 +122,48 @@ static void INET6_reserror(char *text)
- }
-
-
-+
- /* Display an Internet socket address. */
--static char *INET6_print(unsigned char *ptr)
-+static const char *INET6_print(const char *ptr)
- {
- static char name[80];
-
- inet_ntop(AF_INET6, (struct in6_addr *) ptr, name, 80);
-- return name;
-+ return fix_v4_address(name, (struct in6_addr *)ptr);
- }
-
-
- /* Display an Internet socket address. */
- /* dirty! struct sockaddr usually doesn't suffer for inet6 addresses, fst. */
--static char *INET6_sprint(struct sockaddr *sap, int numeric)
-+static const char *INET6_sprint(struct sockaddr *sap, int numeric)
- {
- static char buff[128];
-
- if (sap->sa_family == 0xFFFF || sap->sa_family == 0)
- return safe_strncpy(buff, _("[NONE SET]"), sizeof(buff));
-- if (INET6_rresolve(buff, (struct sockaddr_in6 *) sap, numeric) != 0)
-+ if (INET6_rresolve(buff, sizeof(buff),
-+ (struct sockaddr_in6 *) sap, numeric) != 0)
- return safe_strncpy(buff, _("[UNKNOWN]"), sizeof(buff));
-- return (buff);
-+ return (fix_v4_address(buff, &((struct sockaddr_in6 *)sap)->sin6_addr));
- }
-
-
- static int INET6_getsock(char *bufp, struct sockaddr *sap)
- {
- struct sockaddr_in6 *sin6;
-+ char *p;
-
- sin6 = (struct sockaddr_in6 *) sap;
- sin6->sin6_family = AF_INET6;
- sin6->sin6_port = 0;
-+ sin6->sin6_scope_id = 0;
-+ sin6->sin6_flowinfo = 0;
-
- if (inet_pton(AF_INET6, bufp, sin6->sin6_addr.s6_addr) <= 0)
- return (-1);
--
-+ p = fix_v4_address(bufp, &sin6->sin6_addr);
-+ if (p != bufp)
-+ memcpy(bufp, p, strlen(p)+1);
- return 16; /* ?;) */
- }
-
-diff --git a/lib/inet6_gr.c b/lib/inet6_gr.c
-index 14f32eb..72b4a66 100644
---- a/lib/inet6_gr.c
-+++ b/lib/inet6_gr.c
-@@ -1,4 +1,4 @@
--/*
-+ /*
- Modifications:
- 1998-07-01 - Arnaldo Carvalho de Melo - GNU gettext instead of catgets,
- snprintf instead of sprintf
-@@ -31,6 +31,7 @@
- #include "pathnames.h"
- #include "intl.h"
- #include "net-features.h"
-+#include "util.h"
-
- /* neighbour discovery from linux-2.4.0/include/net/neighbour.h */
-
-@@ -63,7 +64,7 @@ int rprint_fib6(int ext, int numeric)
- struct sockaddr_in6 saddr6, snaddr6;
- int num, iflags, metric, refcnt, use, prefix_len, slen;
- FILE *fp = fopen(_PATH_PROCNET_ROUTE6, "r");
--
-+
- char addr6p[8][5], saddr6p[8][5], naddr6p[8][5];
-
- if (!fp) {
-@@ -71,14 +72,18 @@ int rprint_fib6(int ext, int numeric)
- printf(_("INET6 (IPv6) not configured in this system.\n"));
- return 1;
- }
-- printf(_("Kernel IPv6 routing table\n"));
-
-- printf(_("Destination "
-- "Next Hop "
-- "Flags Metric Ref Use Iface\n"));
-+ if (numeric & RTF_CACHE)
-+ printf(_("Kernel IPv6 routing cache\n"));
-+ else
-+ printf(_("Kernel IPv6 routing table\n"));
-+
-+ printf(_("Destination "
-+ "Next Hop "
-+ "Flag Met Ref Use If\n"));
-
- while (fgets(buff, 1023, fp)) {
-- num = sscanf(buff, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %4s%4s%4s%4s%4s%4s%4s%4s %02x %4s%4s%4s%4s%4s%4s%4s%4s %08x %08x %08x %08x %s\n",
-+ num = sscanf(buff, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %4s%4s%4s%4s%4s%4s%4s%4s %02x %4s%4s%4s%4s%4s%4s%4s%4s %08x %08x %08x %08x %15s\n",
- addr6p[0], addr6p[1], addr6p[2], addr6p[3],
- addr6p[4], addr6p[5], addr6p[6], addr6p[7],
- &prefix_len,
-@@ -87,20 +92,24 @@ int rprint_fib6(int ext, int numeric)
- &slen,
- naddr6p[0], naddr6p[1], naddr6p[2], naddr6p[3],
- naddr6p[4], naddr6p[5], naddr6p[6], naddr6p[7],
-- &metric, &use, &refcnt, &iflags, iface);
--#if 0
-- if (num < 23)
-- continue;
--#endif
-- if (!(iflags & RTF_UP))
-+ &metric, &refcnt, &use, &iflags, iface);
-+ if (0 && num < 23)
- continue;
-+ if (iflags & RTF_CACHE) {
-+ if (!(numeric & RTF_CACHE))
-+ continue;
-+ } else {
-+ if (numeric & RTF_CACHE)
-+ continue;
-+ }
-+
- /* Fetch and resolve the target address. */
- snprintf(addr6, sizeof(addr6), "%s:%s:%s:%s:%s:%s:%s:%s",
- addr6p[0], addr6p[1], addr6p[2], addr6p[3],
- addr6p[4], addr6p[5], addr6p[6], addr6p[7]);
- inet6_aftype.input(1, addr6, (struct sockaddr *) &saddr6);
- snprintf(addr6, sizeof(addr6), "%s/%d",
-- inet6_aftype.sprint((struct sockaddr *) &saddr6, 1),
-+ inet6_aftype.sprint((struct sockaddr *) &saddr6, numeric),
- prefix_len);
-
- /* Fetch and resolve the nexthop address. */
-@@ -109,10 +118,15 @@ int rprint_fib6(int ext, int numeric)
- naddr6p[4], naddr6p[5], naddr6p[6], naddr6p[7]);
- inet6_aftype.input(1, naddr6, (struct sockaddr *) &snaddr6);
- snprintf(naddr6, sizeof(naddr6), "%s",
-- inet6_aftype.sprint((struct sockaddr *) &snaddr6, 1));
-+ inet6_aftype.sprint((struct sockaddr *) &snaddr6, numeric));
-
- /* Decode the flags. */
-- strcpy(flags, "U");
-+
-+ flags[0]=0;
-+ if (iflags & RTF_UP)
-+ strcat(flags, "U");
-+ if (iflags & RTF_REJECT)
-+ strcat(flags, "!");
- if (iflags & RTF_GATEWAY)
- strcat(flags, "G");
- if (iflags & RTF_HOST)
-@@ -123,9 +137,19 @@ int rprint_fib6(int ext, int numeric)
- strcat(flags, "A");
- if (iflags & RTF_CACHE)
- strcat(flags, "C");
-+ if (iflags & RTF_ALLONLINK)
-+ strcat(flags, "a");
-+ if (iflags & RTF_EXPIRES)
-+ strcat(flags, "e");
-+ if (iflags & RTF_MODIFIED)
-+ strcat(flags, "m");
-+ if (iflags & RTF_NONEXTHOP)
-+ strcat(flags, "n");
-+ if (iflags & RTF_FLOW)
-+ strcat(flags, "f");
-
- /* Print the info. */
-- printf("%-43s %-39s %-5s %-6d %-2d %7d %-8s\n",
-+ printf("%-30s %-26s %-4s %-3d %-1d%6d %s\n",
- addr6, naddr6, flags, metric, refcnt, use, iface);
- }
-
-@@ -138,14 +162,13 @@ int rprint_cache6(int ext, int numeric)
- char buff[4096], iface[16], flags[16];
- char addr6[128], haddr[20], statestr[20];
- struct sockaddr_in6 saddr6;
-- int type, num, refcnt, prefix_len, location, state, gc;
-+ int type, refcnt, prefix_len, location, state, gc;
- long tstamp, expire, ndflags, reachable, stale, delete;
- FILE *fp = fopen(_PATH_PROCNET_NDISC, "r");
- char addr6p[8][5], haddrp[6][3];
-
- if (!fp) {
-- ESYSNOT("nd_print", "ND Table");
-- return 1;
-+ return rprint_fib6(ext, numeric | RTF_CACHE);
- }
- printf(_("Kernel IPv6 Neighbour Cache\n"));
-
-@@ -160,7 +183,7 @@ int rprint_cache6(int ext, int numeric)
-
-
- while (fgets(buff, 1023, fp)) {
-- num = sscanf(buff, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %02x %02x %02x %08lx %08lx %08lx %04x %04x %04lx %8s %2s%2s%2s%2s%2s%2s\n",
-+ sscanf(buff, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %02x %02x %02x %08lx %08lx %08lx %04x %04x %04lx %8s %2s%2s%2s%2s%2s%2s\n",
- addr6p[0], addr6p[1], addr6p[2], addr6p[3],
- addr6p[4], addr6p[5], addr6p[6], addr6p[7],
- &location, &prefix_len, &type, &state, &expire, &tstamp, &reachable, &gc, &refcnt,
-@@ -194,31 +217,31 @@ int rprint_cache6(int ext, int numeric)
- /* Decode the state */
- switch (state) {
- case NUD_NONE:
-- strcpy(statestr, "NONE");
-+ safe_strncpy(statestr, "NONE", sizeof(statestr));
- break;
- case NUD_INCOMPLETE:
-- strcpy(statestr, "INCOMPLETE");
-+ safe_strncpy(statestr, "INCOMPLETE", sizeof(statestr));
- break;
- case NUD_REACHABLE:
-- strcpy(statestr, "REACHABLE");
-+ safe_strncpy(statestr, "REACHABLE", sizeof(statestr));
- break;
- case NUD_STALE:
-- strcpy(statestr, "STALE");
-+ safe_strncpy(statestr, "STALE", sizeof(statestr));
- break;
- case NUD_DELAY:
-- strcpy(statestr, "DELAY");
-+ safe_strncpy(statestr, "DELAY", sizeof(statestr));
- break;
- case NUD_PROBE:
-- strcpy(statestr, "PROBE");
-+ safe_strncpy(statestr, "PROBE", sizeof(statestr));
- break;
- case NUD_FAILED:
-- strcpy(statestr, "FAILED");
-+ safe_strncpy(statestr, "FAILED", sizeof(statestr));
- break;
- case NUD_NOARP:
-- strcpy(statestr, "NOARP");
-+ safe_strncpy(statestr, "NOARP", sizeof(statestr));
- break;
- case NUD_PERMANENT:
-- strcpy(statestr, "PERM");
-+ safe_strncpy(statestr, "PERM", sizeof(statestr));
- break;
- default:
- snprintf(statestr, sizeof(statestr), "UNKNOWN(%02x)", state);
-diff --git a/lib/inet6_sr.c b/lib/inet6_sr.c
-index fbfe033..1ad9510 100644
---- a/lib/inet6_sr.c
-+++ b/lib/inet6_sr.c
-@@ -33,7 +33,7 @@
- #include "pathnames.h"
- #include "intl.h"
- #include "net-features.h"
--
-+#include "util.h"
-
-
- extern struct aftype inet6_aftype;
-@@ -63,7 +63,7 @@ static int INET6_setroute(int action, int options, char **args)
- if (*args == NULL)
- return (usage());
-
-- strcpy(target, *args++);
-+ safe_strncpy(target, *args++, sizeof(target));
- if (!strcmp(target, "default")) {
- prefix_len = 0;
- memset(&sa6, 0, sizeof(sa6));
-@@ -112,7 +112,7 @@ static int INET6_setroute(int action, int options, char **args)
- return (usage());
- if (rt.rtmsg_flags & RTF_GATEWAY)
- return (usage());
-- strcpy(gateway, *args);
-+ safe_strncpy(gateway, *args, sizeof(gateway));
- if (inet6_aftype.input(1, gateway,
- (struct sockaddr *) &sa6) < 0) {
- inet6_aftype.herror(gateway);
-@@ -152,7 +152,7 @@ static int INET6_setroute(int action, int options, char **args)
- }
- if (devname) {
- memset(&ifr, 0, sizeof(ifr));
-- strcpy(ifr.ifr_name, devname);
-+ safe_strncpy(ifr.ifr_name, devname, sizeof(ifr.ifr_name));
-
- if (ioctl(skfd, SIOGIFINDEX, &ifr) < 0) {
- perror("SIOGIFINDEX");
-diff --git a/lib/inet_gr.c b/lib/inet_gr.c
-index d1e5efc..f67e89d 100644
---- a/lib/inet_gr.c
-+++ b/lib/inet_gr.c
-@@ -1,5 +1,5 @@
- /*
-- $Id: inet_gr.c,v 1.13 2000/10/08 01:00:44 ecki Exp $
-+ $Id: inet_gr.c,v 1.14 2009/07/08 00:24:03 ecki Exp $
-
- Modifications:
- 1998-07-01 - Arnaldo Carvalho de Melo - GNU gettext instead of catgets
-@@ -31,14 +31,15 @@
- #include "intl.h"
- #include "net-features.h"
- #include "proc.h"
-+#include "util.h"
- extern struct aftype inet_aftype;
-
--extern char *INET_sprintmask(struct sockaddr *sap, int numeric,
-+extern char *INET_sprintmask(struct sockaddr *sap, int numeric,
- unsigned int netmask);
-
- int rprint_fib(int ext, int numeric)
- {
-- char buff[1024], iface[16], flags[64];
-+ char buff[1024], iface[17], flags[64];
- char gate_addr[128], net_addr[128];
- char mask_addr[128];
- int num, iflags, metric, refcnt, use, mss, window, irtt;
-@@ -68,19 +69,19 @@ int rprint_fib(int ext, int numeric)
- mss = 0;
-
- fmt = proc_gen_fmt(_PATH_PROCNET_ROUTE, 0, fp,
-- "Iface", "%16s",
-- "Destination", "%128s",
-- "Gateway", "%128s",
-+ "Iface", "%15s",
-+ "Destination", "%127s",
-+ "Gateway", "%127s",
- "Flags", "%X",
- "RefCnt", "%d",
- "Use", "%d",
- "Metric", "%d",
-- "Mask", "%128s",
-+ "Mask", "%127s",
- "MTU", "%d",
- "Window", "%d",
- "IRTT", "%d",
- NULL);
-- /* "%16s %128s %128s %X %d %d %d %128s %d %d %d\n" */
-+ /* "%15s %127s %127s %X %d %d %d %127s %d %d %d\n" */
-
- if (!fmt)
- return 1;
-@@ -104,18 +105,19 @@ int rprint_fib(int ext, int numeric)
-
- /* Fetch and resolve the genmask. */
- (void) inet_aftype.input(1, mask_addr, &snet_mask);
--
-+
- sin_netmask = (struct sockaddr_in *)&snet_mask;
-- strcpy(net_addr, INET_sprintmask(&snet_target,
-+ safe_strncpy(net_addr, INET_sprintmask(&snet_target,
- (numeric | 0x8000 | (iflags & RTF_HOST? 0x4000: 0)),
-- sin_netmask->sin_addr.s_addr));
-- net_addr[15] = '\0';
-+ sin_netmask->sin_addr.s_addr), sizeof(net_addr));
-+ net_addr[15] = '\0';
-
-- strcpy(gate_addr, inet_aftype.sprint(&snet_gateway, numeric | 0x4000));
-- gate_addr[15] = '\0';
-+ safe_strncpy(gate_addr, inet_aftype.sprint(&snet_gateway, numeric | 0x4000),
-+ sizeof(gate_addr));
-+ gate_addr[15] = '\0';
-
-- strcpy(mask_addr, inet_aftype.sprint(&snet_mask, 1));
-- mask_addr[15] = '\0';
-+ safe_strncpy(mask_addr, inet_aftype.sprint(&snet_mask, 1), sizeof(mask_addr));
-+ mask_addr[15] = '\0';
-
- /* Decode the flags. */
- flags[0] = '\0';
-@@ -125,7 +127,7 @@ int rprint_fib(int ext, int numeric)
- strcat(flags, "G");
- #if HAVE_RTF_REJECT
- if (iflags & RTF_REJECT)
-- strcpy(flags, "!");
-+ safe_strncpy(flags, "!", sizeof(flags));
- #endif
- if (iflags & RTF_HOST)
- strcat(flags, "H");
-@@ -205,7 +207,7 @@ int rprint_fib(int ext, int numeric)
-
- int rprint_cache(int ext, int numeric)
- {
-- char buff[1024], iface[16], flags[64];
-+ char buff[1024], iface[17], flags[64];
- char gate_addr[128], dest_addr[128], specdst[128];
- char src_addr[128];
- struct sockaddr snet;
-@@ -221,17 +223,17 @@ int rprint_cache(int ext, int numeric)
- return 1;
- }
-
-- /* Okay, first thing we need to know is the format of the rt_cache.
-+ /* Okay, first thing we need to know is the format of the rt_cache.
- * I am aware of two possible layouts:
- * 2.2.0
- * "Iface\tDestination\tGateway \tFlags\t\tRefCnt\tUse\tMetric\tSource\t\tMTU\tWindow\tIRTT\tTOS\tHHRef\tHHUptod\tSpecDst"
-- * "%s\t%08lX\t%08lX\t%8X\t%d\t%u\t%d\t%08lX\t%d\t%u\t%u\t%02X\t%d\t%1d\t%08X"
-+ * "%s\t%08lX\t%08lX\t%8X\t%d\t%u\t%d\t%08lX\t%d\t%u\t%u\t%02X\t%d\t%1d\t%08X"
- *
- * 2.0.36
- * "Iface\tDestination\tGateway \tFlags\tRefCnt\tUse\tMetric\tSource\t\tMTU\tWindow\tIRTT\tHH\tARP"
- * "%s\t%08lX\t%08lX\t%02X\t%d\t%u\t%d\t%08lX\t%d\t%lu\t%u\t%d\t%1d"
- */
--
-+
- format = proc_guess_fmt(_PATH_PROCNET_RTCACHE, fp, "IRTT",1,"TOS",2,"HHRef",4,"HHUptod",8,"SpecDst",16,"HH",32,"ARP",64,NULL);
-
- printf(_("Kernel IP routing cache\n"));
-@@ -251,7 +253,7 @@ int rprint_cache(int ext, int numeric)
- printf("ERROR: proc_guess_fmt(%s,... returned: %d\n",_PATH_PROCNET_RTCACHE, format);
- break;
- }
--
-+
- rewind(fp);
-
- if (ext == 1)
-@@ -268,21 +270,21 @@ int rprint_cache(int ext, int numeric)
- "MSS Window irtt HH Arp\n"));
-
- fmt = proc_gen_fmt(_PATH_PROCNET_RTCACHE, 0, fp,
-- "Iface", "%16s",
-- "Destination", "%128s",
-- "Gateway", "%128s",
-+ "Iface", "%15s",
-+ "Destination", "%127s",
-+ "Gateway", "%127s",
- "Flags", "%X",
- "RefCnt", "%d",
- "Use", "%d",
- "Metric", "%d",
-- "Source", "%128s",
-+ "Source", "%127s",
- "MTU", "%d",
- "Window", "%d",
- "IRTT", "%d",
- "HH", "%d",
- "ARP", "%d",
- NULL);
-- /* "%16s %128s %128s %X %d %d %d %128s %d %d %d %d %d\n" */
-+ /* "%15s %127s %127s %X %d %d %d %127s %d %d %d %d %d\n" */
- }
-
- if (format == 2) {
-@@ -291,23 +293,23 @@ int rprint_cache(int ext, int numeric)
- "Flags Metric Ref Use Iface "
- "MSS Window irtt TOS HHRef HHUptod SpecDst\n"));
- fmt = proc_gen_fmt(_PATH_PROCNET_RTCACHE, 0, fp,
-- "Iface", "%16s",
-- "Destination", "%128s",
-- "Gateway", "%128s",
-+ "Iface", "%15s",
-+ "Destination", "%127s",
-+ "Gateway", "%127s",
- "Flags", "%X",
- "RefCnt", "%d",
- "Use", "%d",
- "Metric", "%d",
-- "Source", "%128s",
-+ "Source", "%127s",
- "MTU", "%d",
- "Window", "%d",
- "IRTT", "%d",
- "TOS", "%d",
- "HHRef", "%d",
- "HHUptod", "%d",
-- "SpecDst", "%128s",
-+ "SpecDst", "%127s",
- NULL);
-- /* "%16s %128s %128s %X %d %d %d %128s %d %d %d %d %d %128s\n" */
-+ /* "%15s %127s %127s %X %d %d %d %127s %d %d %d %d %d %127s\n" */
- }
-
-
-@@ -333,27 +335,23 @@ int rprint_cache(int ext, int numeric)
- if (num < 12)
- continue;
- }
--
-+
-
- /* Fetch and resolve the target address. */
- (void) inet_aftype.input(1, dest_addr, &snet);
-- strcpy(dest_addr, inet_aftype.sprint(&snet, numeric));
-- dest_addr[15] = '\0';
-+ safe_strncpy(dest_addr, inet_aftype.sprint(&snet, numeric), sizeof(dest_addr));
-
- /* Fetch and resolve the gateway address. */
- (void) inet_aftype.input(1, gate_addr, &snet);
-- strcpy(gate_addr, inet_aftype.sprint(&snet, numeric));
-- gate_addr[15] = '\0';
-+ safe_strncpy(gate_addr, inet_aftype.sprint(&snet, numeric), sizeof(gate_addr));
-
- /* Fetch and resolve the source. */
- (void) inet_aftype.input(1, src_addr, &snet);
-- strcpy(src_addr, inet_aftype.sprint(&snet, numeric));
-- src_addr[15] = '\0';
-+ safe_strncpy(src_addr, inet_aftype.sprint(&snet, numeric), sizeof(src_addr));
-
- /* Fetch and resolve the SpecDst addrerss. */
- (void) inet_aftype.input(1, specdst, &snet);
-- strcpy(specdst, inet_aftype.sprint(&snet, numeric));
-- specdst[15] = '\0';
-+ safe_strncpy(specdst, inet_aftype.sprint(&snet, numeric), sizeof(specdst));
-
- /* Decode the flags. */
- flags[0] = '\0';
-@@ -367,7 +365,7 @@ if (format == 1) {
- strcat(flags, "G");
- #if HAVE_RTF_REJECT
- if (iflags & RTF_REJECT)
-- strcpy(flags, "!");
-+ safe_strncpy(flags, "!", sizeof(flags));
- #endif
- if (iflags & RTF_REINSTATE)
- strcat(flags, "R");
-diff --git a/lib/inet_sr.c b/lib/inet_sr.c
-index 6d010d5..1a876ae 100644
---- a/lib/inet_sr.c
-+++ b/lib/inet_sr.c
-@@ -3,6 +3,7 @@
- 1998-07-01 - Arnaldo Carvalho de Melo - GNU gettext instead of catgets
- 1999-10-07 - Kurt Garloff - for -host and gws: prefer host names
- over networks (or even reject)
-+ 2003-10-11 - Maik Broemme - gcc 3.x warnign fixes (default: break;)
- */
-
- #include "config.h"
-@@ -104,7 +105,6 @@ static int INET_setroute(int action, int options, char **args)
- isnet = 1; break;
- case 2:
- isnet = 0; break;
-- default:
- }
-
- /* Fill in the other fields. */
-diff --git a/lib/interface.c b/lib/interface.c
-index f4d2a9a..67f0d8f 100644
---- a/lib/interface.c
-+++ b/lib/interface.c
-@@ -1,13 +1,13 @@
- /* Code to manipulate interface information, shared between ifconfig and
-- netstat.
-+ netstat.
-
-- 10/1998 partly rewriten by Andi Kleen to support an interface list.
-- I don't claim that the list operations are efficient @).
-+ 10/1998 partly rewriten by Andi Kleen to support an interface list.
-+ I don't claim that the list operations are efficient @).
-
- 8/2000 Andi Kleen make the list operations a bit more efficient.
- People are crazy enough to use thousands of aliases now.
-
-- $Id: interface.c,v 1.14 2001/02/10 19:31:15 pb Exp $
-+ $Id: interface.c,v 1.35 2011-01-01 03:22:31 ecki Exp $
- */
-
- #include "config.h"
-@@ -23,6 +23,7 @@
- #include <string.h>
- #include <unistd.h>
- #include <ctype.h>
-+#include <string.h>
-
- #if HAVE_AFIPX
- #if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1)
-@@ -36,7 +37,7 @@
- #include <neteconet/ec.h>
- #endif
-
--#ifdef HAVE_HWSLIP
-+#if HAVE_HWSLIP
- #include <linux/if_slip.h>
- #include <net/if_arp.h>
- #endif
-@@ -87,49 +88,58 @@ int procnetdev_vsn = 1;
-
- int ife_short;
-
-+int if_list_all = 0; /* do we have requested the complete proc list, yet? */
-+
- static struct interface *int_list, *int_last;
-
- static int if_readlist_proc(char *);
-
--static struct interface *add_interface(char *name)
-+static struct interface *if_cache_add(char *name)
- {
- struct interface *ife, **nextp, *new;
-
-+ if (!int_list)
-+ int_last = NULL;
-+
-+ /* the cache is sorted, so if we hit a smaller if, exit */
- for (ife = int_last; ife; ife = ife->prev) {
-- int n = nstrcmp(ife->name, name);
-- if (n == 0)
-- return ife;
-- if (n < 0)
-- break;
-+ int n = nstrcmp(ife->name, name);
-+ if (n == 0)
-+ return ife;
-+ if (n < 0)
-+ break;
- }
-- new(new);
-- safe_strncpy(new->name, name, IFNAMSIZ);
-- nextp = ife ? &ife->next : &int_list;
-+ new(new);
-+ safe_strncpy(new->name, name, IFNAMSIZ);
-+ nextp = ife ? &ife->next : &int_list; // keep sorting
- new->prev = ife;
-- new->next = *nextp;
-- if (new->next)
-- new->next->prev = new;
-+ new->next = *nextp;
-+ if (new->next)
-+ new->next->prev = new;
- else
-- int_last = new;
-- *nextp = new;
-- return new;
-+ int_last = new;
-+ *nextp = new;
-+ return new;
- }
-
- struct interface *lookup_interface(char *name)
- {
-- struct interface *ife = NULL;
-+ /* if we have read all, use it */
-+ if (if_list_all)
-+ return if_cache_add(name);
-
-- if (if_readlist_proc(name) < 0)
-- return NULL;
-- ife = add_interface(name);
-- return ife;
-+ /* otherwise we read a limited list */
-+ if (if_readlist_proc(name) < 0)
-+ return NULL;
-+
-+ return if_cache_add(name);
- }
-
- int for_all_interfaces(int (*doit) (struct interface *, void *), void *cookie)
- {
- struct interface *ife;
-
-- if (!int_list && (if_readlist() < 0))
-+ if (!if_list_all && (if_readlist() < 0))
- return -1;
- for (ife = int_list; ife; ife = ife->next) {
- int err = doit(ife, cookie);
-@@ -139,13 +149,15 @@ int for_all_interfaces(int (*doit) (struct interface *, void *), void *cookie)
- return 0;
- }
-
--int free_interface_list(void)
-+int if_cache_free(void)
- {
- struct interface *ife;
- while ((ife = int_list) != NULL) {
- int_list = ife->next;
- free(ife);
- }
-+ int_last = NULL;
-+ if_list_all = 0;
- return 0;
- }
-
-@@ -158,7 +170,7 @@ static int if_readconf(void)
- int skfd;
-
- /* SIOCGIFCONF currently seems to only work properly on AF_INET sockets
-- (as of 2.1.128) */
-+ (as of 2.1.128) */
- skfd = get_socket_for_af(AF_INET);
- if (skfd < 0) {
- fprintf(stderr, _("warning: no inet socket available: %s\n"),
-@@ -180,7 +192,7 @@ static int if_readconf(void)
- }
- if (ifc.ifc_len == sizeof(struct ifreq) * numreqs) {
- /* assume it overflowed and try again */
-- numreqs += 10;
-+ numreqs *= 2;
- continue;
- }
- break;
-@@ -188,7 +200,7 @@ static int if_readconf(void)
-
- ifr = ifc.ifc_req;
- for (n = 0; n < ifc.ifc_len; n += sizeof(struct ifreq)) {
-- add_interface(ifr->ifr_name);
-+ if_cache_add(ifr->ifr_name);
- ifr++;
- }
- err = 0;
-@@ -198,7 +210,7 @@ out:
- return err;
- }
-
--static char *get_name(char *name, char *p)
-+char *get_name(char *name, char *p)
- {
- while (isspace(*p))
- p++;
-@@ -206,16 +218,19 @@ static char *get_name(char *name, char *p)
- if (isspace(*p))
- break;
- if (*p == ':') { /* could be an alias */
-- char *dot = p, *dotname = name;
-- *name++ = *p++;
-- while (isdigit(*p))
-- *name++ = *p++;
-- if (*p != ':') { /* it wasn't, backup */
-- p = dot;
-- name = dotname;
-+ char *dot = p++;
-+ while (*p && isdigit(*p)) p++;
-+ if (*p == ':') {
-+ /* Yes it is, backup and copy it. */
-+ p = dot;
-+ *name++ = *p++;
-+ while (*p && isdigit(*p)) {
-+ *name++ = *p++;
-+ }
-+ } else {
-+ /* No, it isn't */
-+ p = dot;
- }
-- if (*p == '\0')
-- return NULL;
- p++;
- break;
- }
-@@ -225,7 +240,7 @@ static char *get_name(char *name, char *p)
- return p;
- }
-
--static int procnetdev_version(char *buf)
-+int procnetdev_version(char *buf)
- {
- if (strstr(buf, "compressed"))
- return 3;
-@@ -234,12 +249,12 @@ static int procnetdev_version(char *buf)
- return 1;
- }
-
--static int get_dev_fields(char *bp, struct interface *ife)
-+int get_dev_fields(char *bp, struct interface *ife)
- {
- switch (procnetdev_vsn) {
- case 3:
- sscanf(bp,
-- "%llu %llu %lu %lu %lu %lu %lu %lu %llu %llu %lu %lu %lu %lu %lu %lu",
-+ "%Lu %Lu %lu %lu %lu %lu %lu %lu %Lu %Lu %lu %lu %lu %lu %lu %lu",
- &ife->stats.rx_bytes,
- &ife->stats.rx_packets,
- &ife->stats.rx_errors,
-@@ -259,7 +274,7 @@ static int get_dev_fields(char *bp, struct interface *ife)
- &ife->stats.tx_compressed);
- break;
- case 2:
-- sscanf(bp, "%llu %llu %lu %lu %lu %lu %llu %llu %lu %lu %lu %lu %lu",
-+ sscanf(bp, "%Lu %Lu %lu %lu %lu %lu %Lu %Lu %lu %lu %lu %lu %lu",
- &ife->stats.rx_bytes,
- &ife->stats.rx_packets,
- &ife->stats.rx_errors,
-@@ -277,7 +292,7 @@ static int get_dev_fields(char *bp, struct interface *ife)
- ife->stats.rx_multicast = 0;
- break;
- case 1:
-- sscanf(bp, "%llu %lu %lu %lu %lu %llu %lu %lu %lu %lu %lu",
-+ sscanf(bp, "%Lu %lu %lu %lu %lu %Lu %lu %lu %lu %lu %lu",
- &ife->stats.rx_packets,
- &ife->stats.rx_errors,
- &ife->stats.rx_dropped,
-@@ -300,25 +315,21 @@ static int get_dev_fields(char *bp, struct interface *ife)
-
- static int if_readlist_proc(char *target)
- {
-- static int proc_read;
- FILE *fh;
- char buf[512];
- struct interface *ife;
- int err;
-
-- if (proc_read)
-- return 0;
-- if (!target)
-- proc_read = 1;
--
- fh = fopen(_PATH_PROCNET_DEV, "r");
- if (!fh) {
- fprintf(stderr, _("Warning: cannot open %s (%s). Limited output.\n"),
-- _PATH_PROCNET_DEV, strerror(errno));
-- return if_readconf();
-- }
-- fgets(buf, sizeof buf, fh); /* eat line */
-- fgets(buf, sizeof buf, fh);
-+ _PATH_PROCNET_DEV, strerror(errno));
-+ return -2;
-+ }
-+ if (fgets(buf, sizeof buf, fh))
-+ /* eat line */;
-+ if (fgets(buf, sizeof buf, fh))
-+ /* eat line */;
-
- #if 0 /* pretty, but can't cope with missing fields */
- fmt = proc_gen_fmt(_PATH_PROCNET_DEV, 1, fh,
-@@ -349,8 +360,8 @@ static int if_readlist_proc(char *target)
- err = 0;
- while (fgets(buf, sizeof buf, fh)) {
- char *s, name[IFNAMSIZ];
-- s = get_name(name, buf);
-- ife = add_interface(name);
-+ s = get_name(name, buf);
-+ ife = if_cache_add(name);
- get_dev_fields(s, ife);
- ife->statistics_valid = 1;
- if (target && !strcmp(target,name))
-@@ -359,7 +370,6 @@ static int if_readlist_proc(char *target)
- if (ferror(fh)) {
- perror(_PATH_PROCNET_DEV);
- err = -1;
-- proc_read = 0;
- }
-
- #if 0
-@@ -369,13 +379,23 @@ static int if_readlist_proc(char *target)
- return err;
- }
-
--int if_readlist(void)
--{
-- int err = if_readlist_proc(NULL);
-- if (!err)
-- err = if_readconf();
-- return err;
--}
-+int if_readlist(void)
-+{
-+ /* caller will/should check not to call this too often
-+ * (i.e. only if if_list_all == 0
-+ */
-+ int proc_err, conf_err;
-+
-+ proc_err = if_readlist_proc(NULL);
-+ conf_err = if_readconf();
-+
-+ if_list_all = 1;
-+
-+ if (proc_err < 0 && conf_err < 0)
-+ return -1;
-+ else
-+ return 0;
-+}
-
- /* Support for fetching an IPX address */
-
-@@ -392,14 +412,14 @@ int if_fetch(struct interface *ife)
- {
- struct ifreq ifr;
- int fd;
-- char *ifname = ife->name;
-+ char *ifname = ife->name;
-
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(skfd, SIOCGIFFLAGS, &ifr) < 0)
- return (-1);
- ife->flags = ifr.ifr_flags;
-
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(skfd, SIOCGIFHWADDR, &ifr) < 0)
- memset(ife->hwaddr, 0, 32);
- else
-@@ -407,53 +427,47 @@ int if_fetch(struct interface *ife)
-
- ife->type = ifr.ifr_hwaddr.sa_family;
-
-- strcpy(ifr.ifr_name, ifname);
-- if (ioctl(skfd, SIOCGIFMETRIC, &ifr) < 0)
-- ife->metric = 0;
-- else
-- ife->metric = ifr.ifr_metric;
--
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(skfd, SIOCGIFMTU, &ifr) < 0)
- ife->mtu = 0;
- else
- ife->mtu = ifr.ifr_mtu;
-
--#ifdef HAVE_HWSLIP
-+#if HAVE_HWSLIP
- if (ife->type == ARPHRD_SLIP || ife->type == ARPHRD_CSLIP ||
- ife->type == ARPHRD_SLIP6 || ife->type == ARPHRD_CSLIP6 ||
- ife->type == ARPHRD_ADAPT) {
- #ifdef SIOCGOUTFILL
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(skfd, SIOCGOUTFILL, &ifr) < 0)
- ife->outfill = 0;
- else
-- ife->outfill = (unsigned int) ifr.ifr_data;
-+ ife->outfill = (unsigned long) ifr.ifr_data;
- #endif
- #ifdef SIOCGKEEPALIVE
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(skfd, SIOCGKEEPALIVE, &ifr) < 0)
- ife->keepalive = 0;
- else
-- ife->keepalive = (unsigned int) ifr.ifr_data;
-+ ife->keepalive = (unsigned long) ifr.ifr_data;
- #endif
- }
- #endif
-
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(skfd, SIOCGIFMAP, &ifr) < 0)
- memset(&ife->map, 0, sizeof(struct ifmap));
- else
- memcpy(&ife->map, &ifr.ifr_map, sizeof(struct ifmap));
-
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(skfd, SIOCGIFMAP, &ifr) < 0)
- memset(&ife->map, 0, sizeof(struct ifmap));
- else
- ife->map = ifr.ifr_map;
-
- #ifdef HAVE_TXQUEUELEN
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(skfd, SIOCGIFTXQLEN, &ifr) < 0)
- ife->tx_queue_len = -1; /* unknown value */
- else
-@@ -466,24 +480,24 @@ int if_fetch(struct interface *ife)
- /* IPv4 address? */
- fd = get_socket_for_af(AF_INET);
- if (fd >= 0) {
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- ifr.ifr_addr.sa_family = AF_INET;
- if (ioctl(fd, SIOCGIFADDR, &ifr) == 0) {
- ife->has_ip = 1;
- ife->addr = ifr.ifr_addr;
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(fd, SIOCGIFDSTADDR, &ifr) < 0)
- memset(&ife->dstaddr, 0, sizeof(struct sockaddr));
- else
- ife->dstaddr = ifr.ifr_dstaddr;
-
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(fd, SIOCGIFBRDADDR, &ifr) < 0)
- memset(&ife->broadaddr, 0, sizeof(struct sockaddr));
- else
- ife->broadaddr = ifr.ifr_broadaddr;
-
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(fd, SIOCGIFNETMASK, &ifr) < 0)
- memset(&ife->netmask, 0, sizeof(struct sockaddr));
- else
-@@ -497,7 +511,7 @@ int if_fetch(struct interface *ife)
- /* DDP address maybe ? */
- fd = get_socket_for_af(AF_APPLETALK);
- if (fd >= 0) {
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(fd, SIOCGIFADDR, &ifr) == 0) {
- ife->ddpaddr = ifr.ifr_addr;
- ife->has_ddp = 1;
-@@ -509,22 +523,22 @@ int if_fetch(struct interface *ife)
- /* Look for IPX addresses with all framing types */
- fd = get_socket_for_af(AF_IPX);
- if (fd >= 0) {
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (!ipx_getaddr(fd, IPX_FRAME_ETHERII, &ifr)) {
- ife->has_ipx_bb = 1;
- ife->ipxaddr_bb = ifr.ifr_addr;
- }
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (!ipx_getaddr(fd, IPX_FRAME_SNAP, &ifr)) {
- ife->has_ipx_sn = 1;
- ife->ipxaddr_sn = ifr.ifr_addr;
- }
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (!ipx_getaddr(fd, IPX_FRAME_8023, &ifr)) {
- ife->has_ipx_e3 = 1;
- ife->ipxaddr_e3 = ifr.ifr_addr;
- }
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (!ipx_getaddr(fd, IPX_FRAME_8022, &ifr)) {
- ife->has_ipx_e2 = 1;
- ife->ipxaddr_e2 = ifr.ifr_addr;
-@@ -536,7 +550,7 @@ int if_fetch(struct interface *ife)
- /* Econet address maybe? */
- fd = get_socket_for_af(AF_ECONET);
- if (fd >= 0) {
-- strcpy(ifr.ifr_name, ifname);
-+ safe_strncpy(ifr.ifr_name, ifname, sizeof(ifr.ifr_name));
- if (ioctl(fd, SIOCGIFADDR, &ifr) == 0) {
- ife->ecaddr = ifr.ifr_addr;
- ife->has_econet = 1;
-@@ -548,29 +562,29 @@ int if_fetch(struct interface *ife)
- }
-
- int do_if_fetch(struct interface *ife)
--{
-+{
- if (if_fetch(ife) < 0) {
-- char *errmsg;
-- if (errno == ENODEV) {
-- /* Give better error message for this case. */
-- errmsg = _("Device not found");
-- } else {
-- errmsg = strerror(errno);
-+ char *errmsg;
-+ if (errno == ENODEV) {
-+ /* Give better error message for this case. */
-+ errmsg = _("Device not found");
-+ } else {
-+ errmsg = strerror(errno);
- }
- fprintf(stderr, _("%s: error fetching interface information: %s\n"),
- ife->name, errmsg);
- return -1;
- }
-- return 0;
-+ return 0;
- }
-
- int do_if_print(struct interface *ife, void *cookie)
- {
- int *opt_a = (int *) cookie;
-- int res;
-+ int res;
-
-- res = do_if_fetch(ife);
-- if (res >= 0) {
-+ res = do_if_fetch(ife);
-+ if (res >= 0) {
- if ((ife->flags & IFF_UP) || *opt_a)
- ife_print(ife);
- }
-@@ -579,11 +593,11 @@ int do_if_print(struct interface *ife, void *cookie)
-
- void ife_print_short(struct interface *ptr)
- {
-- printf("%-5.5s ", ptr->name);
-- printf("%5d %3d", ptr->mtu, ptr->metric);
-+ printf("%-8.8s ", ptr->name);
-+ printf("%5d ", ptr->mtu);
- /* If needed, display the interface statistics. */
- if (ptr->statistics_valid) {
-- printf("%8llu %6lu %6lu %6lu",
-+ printf("%8llu %6lu %6lu %-6lu ",
- ptr->stats.rx_packets, ptr->stats.rx_errors,
- ptr->stats.rx_dropped, ptr->stats.rx_fifo_errors);
- printf("%8llu %6lu %6lu %6lu ",
-@@ -636,8 +650,9 @@ void ife_print_long(struct interface *ptr)
- int hf;
- int can_compress = 0;
- unsigned long long rx, tx, short_rx, short_tx;
-- char Rext[5]="b";
-- char Text[5]="b";
-+ const char *Rext = "B";
-+ const char *Text = "B";
-+ static char flags[200];
-
- #if HAVE_AFIPX
- static struct aftype *ipxtype = NULL;
-@@ -650,7 +665,7 @@ void ife_print_long(struct interface *ptr)
- #endif
- #if HAVE_AFINET6
- FILE *f;
-- char addr6[40], devname[20];
-+ char addr6[40], devname[21];
- struct sockaddr_in6 sap;
- int plen, scope, dad_status, if_idx;
- extern struct aftype inet6_aftype;
-@@ -663,39 +678,79 @@ void ife_print_long(struct interface *ptr)
-
- hf = ptr->type;
-
-+#if HAVE_HWSLIP
- if (hf == ARPHRD_CSLIP || hf == ARPHRD_CSLIP6)
- can_compress = 1;
-+#endif
-
- hw = get_hwntype(hf);
- if (hw == NULL)
- hw = get_hwntype(-1);
-
-- printf(_("%-9.9s Link encap:%s "), ptr->name, hw->title);
-- /* For some hardware types (eg Ash, ATM) we don't print the
-- hardware address if it's null. */
-- if (hw->print != NULL && (! (hw_null_address(hw, ptr->hwaddr) &&
-- hw->suppress_null_addr)))
-- printf(_("HWaddr %s "), hw->print(ptr->hwaddr));
--#ifdef IFF_PORTSEL
-- if (ptr->flags & IFF_PORTSEL) {
-- printf(_("Media:%s"), if_port_text[ptr->map.port][0]);
-- if (ptr->flags & IFF_AUTOMEDIA)
-- printf(_("(auto)"));
-- }
-+ sprintf(flags, "flags=%d<", ptr->flags);
-+ /* DONT FORGET TO ADD THE FLAGS IN ife_print_short, too */
-+ if (ptr->flags == 0)
-+ strcat(flags,">");
-+ if (ptr->flags & IFF_UP)
-+ strcat(flags,_("UP,"));
-+ if (ptr->flags & IFF_BROADCAST)
-+ strcat(flags,_("BROADCAST,"));
-+ if (ptr->flags & IFF_DEBUG)
-+ strcat(flags,_("DEBUG,"));
-+ if (ptr->flags & IFF_LOOPBACK)
-+ strcat(flags,_("LOOPBACK,"));
-+ if (ptr->flags & IFF_POINTOPOINT)
-+ strcat(flags,_("POINTOPOINT,"));
-+ if (ptr->flags & IFF_NOTRAILERS)
-+ strcat(flags,_("NOTRAILERS,"));
-+ if (ptr->flags & IFF_RUNNING)
-+ strcat(flags,_("RUNNING,"));
-+ if (ptr->flags & IFF_NOARP)
-+ strcat(flags,_("NOARP,"));
-+ if (ptr->flags & IFF_PROMISC)
-+ strcat(flags,_("PROMISC,"));
-+ if (ptr->flags & IFF_ALLMULTI)
-+ strcat(flags,_("ALLMULTI,"));
-+ if (ptr->flags & IFF_SLAVE)
-+ strcat(flags,_("SLAVE,"));
-+ if (ptr->flags & IFF_MASTER)
-+ strcat(flags,_("MASTER,"));
-+ if (ptr->flags & IFF_MULTICAST)
-+ strcat(flags,_("MULTICAST,"));
-+#ifdef HAVE_DYNAMIC
-+ if (ptr->flags & IFF_DYNAMIC)
-+ strcat(flags,_("DYNAMIC,"));
-+#endif
-+ /* DONT FORGET TO ADD THE FLAGS IN ife_print_short */
-+ if (flags[strlen(flags)-1] == ',')
-+ flags[strlen(flags)-1] = '>';
-+ else
-+ flags[strlen(flags)-1] = 0;
-+
-+
-+ printf(_("%s: %s mtu %d"),
-+ ptr->name, flags, ptr->mtu);
-+#ifdef SIOCSKEEPALIVE
-+ if (ptr->outfill || ptr->keepalive)
-+ printf(_(" outfill %d keepalive %d"),
-+ ptr->outfill, ptr->keepalive);
- #endif
- printf("\n");
-
-+
-+
- #if HAVE_AFINET
- if (ptr->has_ip) {
-- printf(_(" %s addr:%s "), ap->name,
-+ printf(_(" %s %s"), ap->name,
- ap->sprint(&ptr->addr, 1));
-- if (ptr->flags & IFF_POINTOPOINT) {
-- printf(_(" P-t-P:%s "), ap->sprint(&ptr->dstaddr, 1));
-- }
-+ printf(_(" netmask %s"), ap->sprint(&ptr->netmask, 1));
- if (ptr->flags & IFF_BROADCAST) {
-- printf(_(" Bcast:%s "), ap->sprint(&ptr->broadaddr, 1));
-+ printf(_(" broadcast %s"), ap->sprint(&ptr->broadaddr, 1));
- }
-- printf(_(" Mask:%s\n"), ap->sprint(&ptr->netmask, 1));
-+ if (ptr->flags & IFF_POINTOPOINT) {
-+ printf(_(" destination %s"), ap->sprint(&ptr->dstaddr, 1));
-+ }
-+ printf("\n");
- }
- #endif
-
-@@ -703,7 +758,7 @@ void ife_print_long(struct interface *ptr)
- /* FIXME: should be integrated into interface.c. */
-
- if ((f = fopen(_PATH_PROCNET_IFINET6, "r")) != NULL) {
-- while (fscanf(f, "%4s%4s%4s%4s%4s%4s%4s%4s %02x %02x %02x %02x %20s\n",
-+ while (fscanf(f, "%4s%4s%4s%4s%4s%4s%4s%4s %08x %02x %02x %02x %20s\n",
- addr6p[0], addr6p[1], addr6p[2], addr6p[3],
- addr6p[4], addr6p[5], addr6p[6], addr6p[7],
- &if_idx, &plen, &scope, &dad_status, devname) != EOF) {
-@@ -712,29 +767,30 @@ void ife_print_long(struct interface *ptr)
- addr6p[0], addr6p[1], addr6p[2], addr6p[3],
- addr6p[4], addr6p[5], addr6p[6], addr6p[7]);
- inet6_aftype.input(1, addr6, (struct sockaddr *) &sap);
-- printf(_(" inet6 addr: %s/%d"),
-- inet6_aftype.sprint((struct sockaddr *) &sap, 1), plen);
-- printf(_(" Scope:"));
-- switch (scope) {
-- case 0:
-- printf(_("Global"));
-- break;
-- case IPV6_ADDR_LINKLOCAL:
-- printf(_("Link"));
-- break;
-- case IPV6_ADDR_SITELOCAL:
-- printf(_("Site"));
-- break;
-- case IPV6_ADDR_COMPATv4:
-- printf(_("Compat"));
-- break;
-- case IPV6_ADDR_LOOPBACK:
-- printf(_("Host"));
-- break;
-- default:
-- printf(_("Unknown"));
-+ printf(_(" %s %s prefixlen %d"),
-+ inet6_aftype.name,
-+ inet6_aftype.sprint((struct sockaddr *) &sap, 1),
-+ plen);
-+ printf(_(" scopeid 0x%x"), scope);
-+
-+ flags[0] = '<'; flags[1] = 0;
-+ if (scope & IPV6_ADDR_COMPATv4) {
-+ strcat(flags, _("compat,"));
-+ scope -= IPV6_ADDR_COMPATv4;
- }
-- printf("\n");
-+ if (scope == 0)
-+ strcat(flags, _("global,"));
-+ if (scope & IPV6_ADDR_LINKLOCAL)
-+ strcat(flags, _("link,"));
-+ if (scope & IPV6_ADDR_SITELOCAL)
-+ strcat(flags, _("site,"));
-+ if (scope & IPV6_ADDR_LOOPBACK)
-+ strcat(flags, _("host,"));
-+ if (flags[strlen(flags)-1] == ',')
-+ flags[strlen(flags)-1] = '>';
-+ else
-+ flags[strlen(flags)-1] = 0;
-+ printf("%s\n", flags);
- }
- }
- fclose(f);
-@@ -747,17 +803,17 @@ void ife_print_long(struct interface *ptr)
-
- if (ipxtype != NULL) {
- if (ptr->has_ipx_bb)
-- printf(_(" IPX/Ethernet II addr:%s\n"),
-- ipxtype->sprint(&ptr->ipxaddr_bb, 1));
-+ printf(_(" %s Ethernet-II %s\n"),
-+ ipxtype->name, ipxtype->sprint(&ptr->ipxaddr_bb, 1));
- if (ptr->has_ipx_sn)
-- printf(_(" IPX/Ethernet SNAP addr:%s\n"),
-- ipxtype->sprint(&ptr->ipxaddr_sn, 1));
-+ printf(_(" %s Ethernet-SNAP %s\n"),
-+ ipxtype->name, ipxtype->sprint(&ptr->ipxaddr_sn, 1));
- if (ptr->has_ipx_e2)
-- printf(_(" IPX/Ethernet 802.2 addr:%s\n"),
-- ipxtype->sprint(&ptr->ipxaddr_e2, 1));
-+ printf(_(" %s Ethernet802.2 %s\n"),
-+ ipxtype->name, ipxtype->sprint(&ptr->ipxaddr_e2, 1));
- if (ptr->has_ipx_e3)
-- printf(_(" IPX/Ethernet 802.3 addr:%s\n"),
-- ipxtype->sprint(&ptr->ipxaddr_e3, 1));
-+ printf(_(" %s Ethernet802.3 %s\n"),
-+ ipxtype->name, ipxtype->sprint(&ptr->ipxaddr_e3, 1));
- }
- #endif
-
-@@ -766,7 +822,7 @@ void ife_print_long(struct interface *ptr)
- ddptype = get_afntype(AF_APPLETALK);
- if (ddptype != NULL) {
- if (ptr->has_ddp)
-- printf(_(" EtherTalk Phase 2 addr:%s\n"), ddptype->sprint(&ptr->ddpaddr, 1));
-+ printf(_(" %s %s\n"), ddptype->name, ddptype->sprint(&ptr->ddpaddr, 1));
- }
- #endif
-
-@@ -775,53 +831,30 @@ void ife_print_long(struct interface *ptr)
- ectype = get_afntype(AF_ECONET);
- if (ectype != NULL) {
- if (ptr->has_econet)
-- printf(_(" econet addr:%s\n"), ectype->sprint(&ptr->ecaddr, 1));
-+ printf(_(" %s %s\n"), ectype->name, ectype->sprint(&ptr->ecaddr, 1));
- }
- #endif
-
-- printf(" ");
-- /* DONT FORGET TO ADD THE FLAGS IN ife_print_short, too */
-- if (ptr->flags == 0)
-- printf(_("[NO FLAGS] "));
-- if (ptr->flags & IFF_UP)
-- printf(_("UP "));
-- if (ptr->flags & IFF_BROADCAST)
-- printf(_("BROADCAST "));
-- if (ptr->flags & IFF_DEBUG)
-- printf(_("DEBUG "));
-- if (ptr->flags & IFF_LOOPBACK)
-- printf(_("LOOPBACK "));
-- if (ptr->flags & IFF_POINTOPOINT)
-- printf(_("POINTOPOINT "));
-- if (ptr->flags & IFF_NOTRAILERS)
-- printf(_("NOTRAILERS "));
-- if (ptr->flags & IFF_RUNNING)
-- printf(_("RUNNING "));
-- if (ptr->flags & IFF_NOARP)
-- printf(_("NOARP "));
-- if (ptr->flags & IFF_PROMISC)
-- printf(_("PROMISC "));
-- if (ptr->flags & IFF_ALLMULTI)
-- printf(_("ALLMULTI "));
-- if (ptr->flags & IFF_SLAVE)
-- printf(_("SLAVE "));
-- if (ptr->flags & IFF_MASTER)
-- printf(_("MASTER "));
-- if (ptr->flags & IFF_MULTICAST)
-- printf(_("MULTICAST "));
--#ifdef HAVE_DYNAMIC
-- if (ptr->flags & IFF_DYNAMIC)
-- printf(_("DYNAMIC "));
--#endif
-- /* DONT FORGET TO ADD THE FLAGS IN ife_print_short */
-- printf(_(" MTU:%d Metric:%d"),
-- ptr->mtu, ptr->metric ? ptr->metric : 1);
--#ifdef SIOCSKEEPALIVE
-- if (ptr->outfill || ptr->keepalive)
-- printf(_(" Outfill:%d Keepalive:%d"),
-- ptr->outfill, ptr->keepalive);
-+ /* For some hardware types (eg Ash, ATM) we don't print the
-+ hardware address if it's null. */
-+ if (hw->print != NULL && (! (hw_null_address(hw, ptr->hwaddr) &&
-+ hw->suppress_null_addr)))
-+ printf(_(" %s %s"), hw->name, hw->print(ptr->hwaddr));
-+ else
-+ printf(_(" %s"), hw->name);
-+ if (ptr->tx_queue_len != -1)
-+ printf(_(" txqueuelen %d"), ptr->tx_queue_len);
-+ printf(" (%s)\n", hw->title);
-+
-+#ifdef IFF_PORTSEL
-+ if (ptr->flags & IFF_PORTSEL) {
-+ printf(_(" media %s"), if_port_text[ptr->map.port][0]);
-+ if (ptr->flags & IFF_AUTOMEDIA)
-+ printf(_("autoselect"));
-+ printf("\n");
-+ }
- #endif
-- printf("\n");
-+
-
- /* If needed, display the interface statistics. */
-
-@@ -830,55 +863,87 @@ void ife_print_long(struct interface *ptr)
- * not for the aliases, although strictly speaking they're shared
- * by all addresses.
- */
-- printf(" ");
--
-- printf(_("RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n"),
-- ptr->stats.rx_packets, ptr->stats.rx_errors,
-- ptr->stats.rx_dropped, ptr->stats.rx_fifo_errors,
-- ptr->stats.rx_frame_errors);
-- if (can_compress)
-- printf(_(" compressed:%lu\n"), ptr->stats.rx_compressed);
--
-- rx = ptr->stats.rx_bytes;
-+ rx = ptr->stats.rx_bytes;
-+ short_rx = rx * 10;
-+ if (rx > 1125899906842624ull) {
-+ short_rx /= 1125899906842624ull;
-+ Rext = "PiB";
-+ } else if (rx > 1099511627776ull) {
-+ short_rx /= 1099511627776ull;
-+ Rext = "TiB";
-+ } else if (rx > 1073741824ull) {
-+ short_rx /= 1073741824ull;
-+ Rext = "GiB";
-+ } else if (rx > 1048576) {
-+ short_rx /= 1048576;
-+ Rext = "MiB";
-+ } else if (rx > 1024) {
-+ short_rx /= 1024;
-+ Rext = "KiB";
-+ }
- tx = ptr->stats.tx_bytes;
-- short_rx = rx * 10;
- short_tx = tx * 10;
-- if (rx > 1048576) { short_rx /= 1048576; strcpy(Rext, "Mb"); }
-- else if (rx > 1024) { short_rx /= 1024; strcpy(Rext, "Kb"); }
-- if (tx > 1048576) { short_tx /= 1048576; strcpy(Text, "Mb"); }
-- else if (tx > 1024) { short_tx /= 1024; strcpy(Text, "Kb"); }
-+ if (tx > 1125899906842624ull) {
-+ short_tx /= 1125899906842624ull;
-+ Text = "PiB";
-+ } else if (tx > 1099511627776ull) {
-+ short_tx /= 1099511627776ull;
-+ Text = "TiB";
-+ } else if (tx > 1073741824ull) {
-+ short_tx /= 1073741824ull;
-+ Text = "GiB";
-+ } else if (tx > 1048576) {
-+ short_tx /= 1048576;
-+ Text = "MiB";
-+ } else if (tx > 1024) {
-+ short_tx /= 1024;
-+ Text = "KiB";
-+ }
-
-- printf(" ");
-- printf(_("TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"),
-- ptr->stats.tx_packets, ptr->stats.tx_errors,
-+ printf(" ");
-+ printf(_("RX packets %llu bytes %llu (%lu.%lu %s)\n"),
-+ ptr->stats.rx_packets,
-+ rx, (unsigned long)(short_rx / 10),
-+ (unsigned long)(short_rx % 10), Rext);
-+ if (can_compress) {
-+ printf(" ");
-+ printf(_("RX compressed:%lu\n"), ptr->stats.rx_compressed);
-+ }
-+ printf(" ");
-+ printf(_("RX errors %lu dropped %lu overruns %lu frame %lu\n"),
-+ ptr->stats.rx_errors, ptr->stats.rx_dropped,
-+ ptr->stats.rx_fifo_errors, ptr->stats.rx_frame_errors);
-+
-+
-+ printf(" ");
-+ printf(_("TX packets %llu bytes %llu (%lu.%lu %s)\n"),
-+ ptr->stats.tx_packets,
-+ tx, (unsigned long)(short_tx / 10),
-+ (unsigned long)(short_tx % 10), Text);
-+ if (can_compress) {
-+ printf(" ");
-+ printf(_("TX compressed %lu\n"), ptr->stats.tx_compressed);
-+ }
-+ printf(" ");
-+ printf(_("TX errors %lu dropped %lu overruns %lu carrier %lu collisions %lu\n"),
-+ ptr->stats.tx_errors,
- ptr->stats.tx_dropped, ptr->stats.tx_fifo_errors,
-- ptr->stats.tx_carrier_errors);
-- printf(_(" collisions:%lu "), ptr->stats.collisions);
-- if (can_compress)
-- printf(_("compressed:%lu "), ptr->stats.tx_compressed);
-- if (ptr->tx_queue_len != -1)
-- printf(_("txqueuelen:%d "), ptr->tx_queue_len);
-- printf("\n ");
-- printf(_("RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n"),
-- rx, (unsigned long)(short_rx / 10),
-- (unsigned long)(short_rx % 10), Rext,
-- tx, (unsigned long)(short_tx / 10),
-- (unsigned long)(short_tx % 10), Text);
-+ ptr->stats.tx_carrier_errors, ptr->stats.collisions);
- }
-
- if ((ptr->map.irq || ptr->map.mem_start || ptr->map.dma ||
-- ptr->map.base_addr)) {
-- printf(" ");
-+ ptr->map.base_addr >= 0x100)) {
-+ printf(" device ");
- if (ptr->map.irq)
-- printf(_("Interrupt:%d "), ptr->map.irq);
-- if (ptr->map.base_addr >= 0x100) /* Only print devices using it for
-+ printf(_("interrupt %d "), ptr->map.irq);
-+ if (ptr->map.base_addr >= 0x100) /* Only print devices using it for
- I/O maps */
-- printf(_("Base address:0x%x "), ptr->map.base_addr);
-+ printf(_("base 0x%x "), ptr->map.base_addr);
- if (ptr->map.mem_start) {
-- printf(_("Memory:%lx-%lx "), ptr->map.mem_start, ptr->map.mem_end);
-+ printf(_("memory 0x%lx-%lx "), ptr->map.mem_start, ptr->map.mem_end);
- }
- if (ptr->map.dma)
-- printf(_("DMA chan:%x "), ptr->map.dma);
-+ printf(_(" dma 0x%x"), ptr->map.dma);
- printf("\n");
- }
- printf("\n");
-diff --git a/lib/ipx.c b/lib/ipx.c
-index 0e760a3..837788c 100644
---- a/lib/ipx.c
-+++ b/lib/ipx.c
-@@ -42,7 +42,7 @@
- #endif
-
- /* Display a ipx domain address. */
--static char *IPX_print(unsigned char *ptr)
-+static const char *IPX_print(const char *ptr)
- {
- static char buff[64];
- struct sockaddr_ipx *sipx = (struct sockaddr_ipx *) (ptr - 2);
-@@ -73,7 +73,7 @@ static char *IPX_print(unsigned char *ptr)
-
-
- /* Display a ipx domain address. */
--static char *IPX_sprint(struct sockaddr *sap, int numeric)
-+static const char *IPX_sprint(struct sockaddr *sap, int numeric)
- {
- static char buf[64];
-
-@@ -87,12 +87,10 @@ static int IPX_getsock(char *bufp, struct sockaddr *sap)
- {
- char *sp = bufp, *bp;
- unsigned int i;
-- unsigned char val;
- struct sockaddr_ipx *sipx = (struct sockaddr_ipx *) sap;
-
- sipx->sipx_port = 0;
-
-- val = 0;
- bp = (char *) sipx->sipx_node;
- for (i = 0; i < sizeof(sipx->sipx_node); i++) {
- *sp = toupper(*sp);
-@@ -133,6 +131,9 @@ static int IPX_input(int type, char *bufp, struct sockaddr *sap)
- char *ep;
- int nbo;
-
-+ if (!sai)
-+ return (-1);
-+
- sai->sipx_family = AF_IPX;
- sai->sipx_network = htonl(0);
- sai->sipx_node[0] = sai->sipx_node[1] = sai->sipx_node[2] =
-diff --git a/lib/ipx_gr.c b/lib/ipx_gr.c
-index 3d7ef1d..09c8dcd 100644
---- a/lib/ipx_gr.c
-+++ b/lib/ipx_gr.c
-@@ -27,6 +27,7 @@
- #include "net-support.h"
- #include "pathnames.h"
- #include "intl.h"
-+#include "util.h"
-
- /* UGLY */
-
-@@ -38,25 +39,32 @@ int IPX_rprint(int options)
- char net[128], router_net[128];
- char router_node[128];
- int num;
-- FILE *fp = fopen(_PATH_PROCNET_IPX_ROUTE, "r");
-+ FILE *fp;
- struct aftype *ap;
- struct sockaddr sa;
-
-- if ((ap = get_afntype(AF_IPX)) == NULL) {
-- EINTERN("lib/ipx_rt.c", "AF_IPX missing");
-- return (-1);
-+ fp = fopen(_PATH_PROCNET_IPX_ROUTE1, "r");
-+
-+ if (!fp) {
-+ fp = fopen(_PATH_PROCNET_IPX_ROUTE2, "r");
- }
-
- if (!fp) {
-- perror(_PATH_PROCNET_IPX_ROUTE);
-- printf(_("IPX not configured in this system.\n"));
-+ perror(NULL);
-+ printf(_("IPX routing not in file %s or %s found.\n"), _PATH_PROCNET_IPX_ROUTE1, _PATH_PROCNET_IPX_ROUTE2);
- return 1;
- }
-
-+ if ((ap = get_afntype(AF_IPX)) == NULL) {
-+ EINTERN("lib/ipx_rt.c", "AF_IPX missing");
-+ return (-1);
-+ }
-+
- printf(_("Kernel IPX routing table\n")); /* xxx */
- printf(_("Destination Router Net Router Node\n"));
-
-- fgets(buff, 1023, fp);
-+ if (fgets(buff, 1023, fp))
-+ /* eat line */;
-
- while (fgets(buff, 1023, fp)) {
- num = sscanf(buff, "%s %s %s", net, router_net, router_node);
-@@ -65,15 +73,15 @@ int IPX_rprint(int options)
-
- /* Fetch and resolve the Destination */
- (void) ap->input(5, net, &sa);
-- strcpy(net, ap->sprint(&sa, numeric));
-+ safe_strncpy(net, ap->sprint(&sa, numeric), sizeof(net));
-
- /* Fetch and resolve the Router Net */
- (void) ap->input(5, router_net, &sa);
-- strcpy(router_net, ap->sprint(&sa, numeric));
-+ safe_strncpy(router_net, ap->sprint(&sa, numeric), sizeof(router_net));
-
- /* Fetch and resolve the Router Node */
- (void) ap->input(2, router_node, &sa);
-- strcpy(router_node, ap->sprint(&sa, numeric));
-+ safe_strncpy(router_node, ap->sprint(&sa, numeric), sizeof(router_node));
-
- printf("%-25s %-25s %-25s\n", net, router_net, router_node);
- }
-diff --git a/lib/irda.c b/lib/irda.c
-index fa147fe..3658673 100644
---- a/lib/irda.c
-+++ b/lib/irda.c
-@@ -1,29 +1,31 @@
- /*********************************************************************
-- *
-+ *
- * Filename: irda.c
-- * Version: 0.1
-- * Description: A first attempt to make ifconfig understand IrDA
-+ * Version: 0.2
-+ * Description: A second attempt to make ifconfig understand IrDA
- * Status: Experimental.
- * Author: Dag Brattli <dagb@cs.uit.no>
- * Created at: Wed Apr 21 09:03:09 1999
- * Modified at: Wed Apr 21 09:17:05 1999
- * Modified by: Dag Brattli <dagb@cs.uit.no>
-- *
-- * 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
-+ * Modified at: Wed May 1 11:51:44 CEST 2002
-+ * Modified by: Christoph Bartelmus <christoph@bartelmus.de>
-+ *
-+ * 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, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
-- *
-+ *
- ********************************************************************/
-
- #include "config.h"
-@@ -57,11 +59,11 @@
- * Print hardware address of interface
- *
- */
--static char *irda_print(unsigned char *ptr)
-+static const char *irda_print(const char *ptr)
- {
-- static char buff[8];
-+ static char buff[12];
-
-- sprintf(&buff[strlen(buff)], "%02x:%02x:%02x:%02x", ptr[3], ptr[2],
-+ snprintf(buff, 12, "%02x:%02x:%02x:%02x", ptr[3], ptr[2],
- ptr[1], ptr[0]);
-
- return (buff);
-diff --git a/lib/loopback.c b/lib/loopback.c
-index 0f08ac2..1b7e9cc 100644
---- a/lib/loopback.c
-+++ b/lib/loopback.c
-@@ -32,7 +32,7 @@
- #include "util.h"
-
- /* Display an UNSPEC address. */
--static char *pr_unspec(unsigned char *ptr)
-+static const char *pr_unspec(const char *ptr)
- {
- static char buff[64];
- char *pos;
-diff --git a/lib/masq_info.c b/lib/masq_info.c
-index 45ca689..3a97a98 100644
---- a/lib/masq_info.c
-+++ b/lib/masq_info.c
-@@ -6,7 +6,7 @@
- * NET-3 Networking Distribution for the LINUX operating
- * system. (net-tools, net-drivers)
- *
-- * Version: $Id: masq_info.c,v 1.7 2000/10/08 01:00:44 ecki Exp $
-+ * Version: $Id: masq_info.c,v 1.8 2009/09/06 22:52:01 vapier Exp $
- *
- * Author: Bernd 'eckes' Eckenfels <net-tools@lina.inka.de>
- * Copyright 1999 Bernd Eckenfels, Germany
-@@ -119,7 +119,9 @@ static int read_masqinfo(FILE * f, struct masq *mslist, int nmslist)
- ms->src.sin_family = AF_INET;
- ms->dst.sin_family = AF_INET;
-
-- if (strcmp("TCP", buf) == 0)
-+ if (strcmp("IP", buf) == 0)
-+ ms->proto = "ip";
-+ else if (strcmp("TCP", buf) == 0)
- ms->proto = "tcp";
- else if (strcmp("UDP", buf) == 0)
- ms->proto = "udp";
-@@ -206,10 +208,9 @@ int ip_masq_info(int numeric_host, int numeric_port, int ext)
- }
- for (i = 0; i < ntotal; i++)
- print_masq(&(mslist[i]), numeric_host, numeric_port, ext);
-- if (mslist)
-- free(mslist);
--
- }
-+
-+ free(mslist);
- return 0;
- }
- #endif
-diff --git a/lib/net-features.h b/lib/net-features.h
-index 0de2730..569f4a5 100644
---- a/lib/net-features.h
-+++ b/lib/net-features.h
-@@ -20,7 +20,7 @@
- * your option) any later version.
- */
-
--/*
-+/*
- * This needs to be included AFTER the KErnel Header Files
- * one of the FEATURE_ should be defined to get the Feature Variable
- * definition included
-@@ -117,6 +117,9 @@ static char *Features =
- "-I18N"
- #endif /* I18N */
-
-+#if HAVE_SELINUX
-+" +SELINUX"
-+#endif
-
- "\nAF: "
- #ifdef DFLT_AF
-@@ -183,6 +186,12 @@ static char *Features =
- "-"
- #endif
- "ROSE "
-+#if HAVE_AFBLUETOOTH
-+"+"
-+#else
-+"-"
-+#endif
-+"BLUETOOTH"
-
- "\nHW: "
-
-@@ -295,6 +304,13 @@ static char *Features =
- "-"
- #endif
- "HDLC/LAPB "
-+
-+#if HAVE_HWEUI64
-+"+"
-+#else
-+"-"
-+#endif
-+"EUI64 "
- ;
-
-
-diff --git a/lib/net-support.h b/lib/net-support.h
-index 568fe81..0841170 100644
---- a/lib/net-support.h
-+++ b/lib/net-support.h
-@@ -38,15 +38,15 @@ struct aftype {
- char *title;
- int af;
- int alen;
-- char *(*print) (unsigned char *);
-- char *(*sprint) (struct sockaddr *, int numeric);
-+ const char *(*print) (const char *);
-+ const char *(*sprint) (struct sockaddr *, int numeric);
- int (*input) (int type, char *bufp, struct sockaddr *);
- void (*herror) (char *text);
- int (*rprint) (int options);
- int (*rinput) (int typ, int ext, char **argv);
-
- /* may modify src */
-- int (*getmask) (char *src, struct sockaddr * mask, char *name);
-+ int (*getmask) (char *src, struct sockaddr *mask, char *name);
-
- int fd;
- char *flag_file;
-@@ -60,7 +60,7 @@ struct hwtype {
- char *title;
- int type;
- int alen;
-- char *(*print) (unsigned char *);
-+ const char *(*print) (const char *);
- int (*input) (char *, struct sockaddr *);
- int (*activate) (int fd);
- int suppress_null_addr;
-@@ -119,11 +119,12 @@ extern int IPX_rinput(int action, int flags, char **argv);
- extern int NETROM_rinput(int action, int flags, char **argv);
- extern int AX25_rinput(int action, int flags, char **argv);
- extern int X25_rinput(int action, int flags, char **argv);
-+extern int ROSE_rinput(int action, int flags, char **argv);
-
- extern int aftrans_opt(const char *arg);
- extern void aftrans_def(char *tool, char *argv0, char *dflt);
-
--extern char *get_sname(int socknumber, char *proto, int numeric);
-+extern const char *get_sname(int socknumber, const char *proto, int numeric);
-
- extern int flag_unx;
- extern int flag_ipx;
-@@ -131,14 +132,16 @@ extern int flag_ax25;
- extern int flag_ddp;
- extern int flag_netrom;
- extern int flag_x25;
-+extern int flag_rose;
- extern int flag_inet;
- extern int flag_inet6;
-+extern int flag_bluetooth;
-
--extern char afname[];
-+extern char afname[256];
-
- #define AFTRANS_OPTS \
- {"ax25", 0, 0, 1}, \
-- {"x25", 0, 0, 1}, \
-+ {"x25", 0, 0, 1}, \
- {"ip", 0, 0, 1}, \
- {"ipx", 0, 0, 1}, \
- {"appletalk", 0, 0, 1}, \
-@@ -146,9 +149,11 @@ extern char afname[];
- {"inet", 0, 0, 1}, \
- {"inet6", 0, 0, 1}, \
- {"ddp", 0, 0, 1}, \
-+ {"rose", 0, 0, 1}, \
- {"unix", 0, 0, 1}, \
-+ {"bluetooth", 0, 0, 1}, \
- {"tcpip", 0, 0, 1}
--#define AFTRANS_CNT 11
-+#define AFTRANS_CNT 12
-
- #define EINTERN(file, text) fprintf(stderr, \
- _("%s: Internal Error `%s'.\n"),file,text);
-@@ -163,8 +168,8 @@ extern char afname[];
- #define E_NOTFOUND 8
- #define E_SOCK 7
- #define E_LOOKUP 6
--#define E_VERSION 5
--#define E_USAGE 4
-+#define E_VERSION EXIT_SUCCESS
-+#define E_USAGE EXIT_SUCCESS
- #define E_OPTERR 3
- #define E_INTERN 2
- #define E_NOSUPP 1
-@@ -234,7 +239,7 @@ extern char afname[];
- /* this is a 2.0.36 flag from /usr/src/linux/include/linux/route.h */
- #define RTF_NOTCACHED 0x0400 /* this route isn't cached */
-
--#ifdef HAVE_AFECONET
-+#if HAVE_AFECONET
- #ifndef AF_ECONET
- #define AF_ECONET 19 /* Acorn Econet */
- #endif
-diff --git a/lib/netrom.c b/lib/netrom.c
-index 1de9dc3..dfe1ae3 100644
---- a/lib/netrom.c
-+++ b/lib/netrom.c
-@@ -11,7 +11,7 @@
- *
- * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- * Copyright 1993 MicroWalt Corporation
-- *
-+ *
- * Changes:
- * 980701 {1.21} Arnaldo Carvalho de Melo - GNU gettext instead of catgets,
- * strncpy instead of strcpy for
-@@ -52,7 +52,7 @@ static char netrom_errmsg[128];
-
- extern struct aftype netrom_aftype;
-
--static char *NETROM_print(unsigned char *ptr)
-+static const char *NETROM_print(const char *ptr)
- {
- static char buff[8];
- int i;
-@@ -71,7 +71,7 @@ static char *NETROM_print(unsigned char *ptr)
-
-
- /* Display an AX.25 socket address. */
--static char *NETROM_sprint(struct sockaddr *sap, int numeric)
-+static const char *NETROM_sprint(struct sockaddr *sap, int numeric)
- {
- char buf[64];
- if (sap->sa_family == 0xFFFF || sap->sa_family == 0)
-@@ -79,10 +79,15 @@ static char *NETROM_sprint(struct sockaddr *sap, int numeric)
- return (NETROM_print(((struct sockaddr_ax25 *) sap)->sax25_call.ax25_call));
- }
-
-+#ifdef DEBUG
-+#define _DEBUG 1
-+#else
-+#define _DEBUG 0
-+#endif
-
- static int NETROM_input(int type, char *bufp, struct sockaddr *sap)
- {
-- unsigned char *ptr;
-+ char *ptr;
- char *orig, c;
- unsigned int i;
-
-@@ -98,9 +103,8 @@ static int NETROM_input(int type, char *bufp, struct sockaddr *sap)
- c = toupper(c);
- if (!(isupper(c) || isdigit(c))) {
- safe_strncpy(netrom_errmsg, _("Invalid callsign"), sizeof(netrom_errmsg));
--#ifdef DEBUG
-- fprintf(stderr, "netrom_input(%s): %s !\n", netrom_errmsg, orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, "netrom_input(%s): %s !\n", netrom_errmsg, orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -111,9 +115,8 @@ static int NETROM_input(int type, char *bufp, struct sockaddr *sap)
- /* Callsign too long? */
- if ((i == 6) && (*bufp != '-') && (*bufp != '\0')) {
- safe_strncpy(netrom_errmsg, _("Callsign too long"), sizeof(netrom_errmsg));
--#ifdef DEBUG
-- fprintf(stderr, "netrom_input(%s): %s !\n", netrom_errmsg, orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, "netrom_input(%s): %s !\n", netrom_errmsg, orig);
- errno = E2BIG;
- return (-1);
- }
-@@ -131,12 +134,12 @@ static int NETROM_input(int type, char *bufp, struct sockaddr *sap)
- }
-
- /* All done. */
--#ifdef DEBUG
-- fprintf(stderr, "netrom_input(%s): ", orig);
-- for (i = 0; i < sizeof(ax25_address); i++)
-- fprintf(stderr, "%02X ", sap->sa_data[i] & 0377);
-- fprintf(stderr, "\n");
--#endif
-+ if (_DEBUG) {
-+ fprintf(stderr, "netrom_input(%s): ", orig);
-+ for (i = 0; i < sizeof(ax25_address); i++)
-+ fprintf(stderr, "%02X ", sap->sa_data[i] & 0377);
-+ fprintf(stderr, "\n");
-+ }
-
- return (0);
- }
-diff --git a/lib/netrom_gr.c b/lib/netrom_gr.c
-index adf54b2..ec82fe8 100644
---- a/lib/netrom_gr.c
-+++ b/lib/netrom_gr.c
-@@ -10,7 +10,7 @@
- *
- * Changes:
- * 980701 {0.02} Arnaldo Carvalho de Melo GNU gettext instead of catgets
-- *
-+ *
- *
- * This program is free software; you can redistribute it
- * and/or modify it under the terms of the GNU General
-@@ -39,9 +39,7 @@ int NETROM_rprint(int options)
- /*int ext = options & FLAG_EXT;
- int numeric = options & FLAG_NUM_HOST; */
-
-- f1 = fopen(_PATH_PROCNET_NR_NODES, "r");
- if (!f1) perror(_PATH_PROCNET_NR_NODES);
-- f2 = fopen(_PATH_PROCNET_NR_NEIGH, "r");
- if (!f2) perror(_PATH_PROCNET_NR_NEIGH);
-
- if (f1 == NULL || f2 == NULL) {
-@@ -50,7 +48,8 @@ int NETROM_rprint(int options)
- }
- printf(_("Kernel NET/ROM routing table\n"));
- printf(_("Destination Mnemonic Quality Neighbour Iface\n"));
-- fgets(buffer, 256, f1);
-+ if (fgets(buffer, 256, f1))
-+ /* eat line */;
- while (fgets(buffer, 256, f1)) {
- buffer[9] = 0;
- buffer[17] = 0;
-@@ -60,7 +59,8 @@ int NETROM_rprint(int options)
- qual = atoi(buffer + 24 + 15 * w);
- n = atoi(buffer + 32 + 15 * w);
- rewind(f2);
-- fgets(buffer, 256, f2);
-+ if (fgets(buffer, 256, f2))
-+ /* eat line */;
- while (fgets(buffer, 256, f2)) {
- if (atoi(buffer) == n) {
- buffer[15] = 0;
-diff --git a/lib/nstrcmp.c b/lib/nstrcmp.c
-index 8b1ff30..e05c778 100644
---- a/lib/nstrcmp.c
-+++ b/lib/nstrcmp.c
-@@ -1,34 +1,190 @@
- /* Copyright 1998 by Andi Kleen. Subject to the GPL. */
--/* $Id: nstrcmp.c,v 1.2 1998/11/15 20:11:38 freitag Exp $ */
-+/* rewritten by bernd eckenfels because of complicated alias semantic */
-+/* $Id: nstrcmp.c,v 1.4 2004/06/03 22:49:17 ecki Exp $ */
- #include <ctype.h>
- #include <stdlib.h>
-+#include <string.h>
- #include "util.h"
-
--/* like strcmp(), but knows about numbers */
--int nstrcmp(const char *astr, const char *b)
-+
-+/* return numerical :999 suffix or null. sideeffect: replace ':' with \0 */
-+char* cutalias(char* name)
-+{
-+ int digit = 0;
-+ int pos;
-+
-+ for(pos=strlen(name); pos>0; pos--)
-+ {
-+ if (name[pos-1]==':' && digit)
-+ {
-+ name[pos-1]='\0';
-+ return name+pos;
-+ }
-+ if (!isdigit(name[pos-1]))
-+ break;
-+ digit = 1;
-+ }
-+ return NULL;
-+}
-+
-+
-+/* return index of last non digit or -1 if it does not end with digits */
-+int rindex_nondigit(char *name)
-+{
-+ int pos = strlen(name);
-+
-+ for(pos=strlen(name); pos>0; pos--)
-+ {
-+ if (!isdigit(name[pos-1]))
-+ return pos;
-+ }
-+ return 0;
-+}
-+
-+
-+/* like strcmp(), but knows about numbers and ':' alias suffix */
-+int nstrcmp(const char *ap, const char *bp)
-+{
-+ char *a = xstrdup(ap);
-+ char *b = xstrdup(bp);
-+ char *an, *bn;
-+ int av = 0, bv = 0;
-+ char *aalias=cutalias(a);
-+ char *balias=cutalias(b);
-+ int aindex=rindex_nondigit(a);
-+ int bindex=rindex_nondigit(b);
-+ int complen=(aindex<bindex)?aindex:bindex;
-+ int res = strncmp(a, b, complen);
-+
-+ if (res != 0) {
-+ goto out;
-+ }
-+
-+ if (aindex > bindex) {
-+ res = 1;
-+ goto out;
-+ }
-+
-+ if (aindex < bindex) {
-+ res = -1;
-+ goto out;
-+ }
-+
-+ an = a+aindex;
-+ bn = b+bindex;
-+
-+ av = atoi(an);
-+ bv = atoi(bn);
-+
-+ if (av < bv) {
-+ res = -1;
-+ goto out;
-+ }
-+
-+ if (av > bv) {
-+ res = 1;
-+ goto out;
-+ }
-+
-+ res = strcmp(a, b);
-+ if (res != 0) {
-+ goto out;
-+ }
-+
-+ av = -1;
-+ if (aalias != NULL)
-+ av = atoi(aalias);
-+
-+ bv = -1;
-+ if (balias != NULL)
-+ bv = atoi(balias);
-+
-+ if (av < bv) {
-+ res = -1;
-+ goto out;
-+ }
-+
-+ if (av > bv) {
-+ res = 1;
-+ goto out;
-+ }
-+
-+ if (aalias && balias) {
-+ res = strcmp(aalias, balias);
-+ }
-+
-+out:
-+
-+ free(a); free(b);
-+
-+ return res;
-+}
-+
-+
-+#ifdef NSTRCMP_TEST
-+
-+int cs(int s)
-+{
-+ if (s < 0) return -1;
-+ if (s > 0) return 1;
-+ return 0;
-+}
-+
-+
-+int dotest(char* a, char* b, int exp)
-+{
-+ int res = nstrcmp(a, b);
-+ int err = (cs(res) != cs(exp));
-+ printf("nstrcmp(\"%s\", \"%s\")=%d %d %s\n", a, b, res, exp, err?"WRONG":"OK");
-+ return err;
-+}
-+
-+int main()
- {
-- const char *a = astr;
--
-- while (*a == *b) {
-- if (*a == '\0')
-- return 0;
-- a++;
-- b++;
-- }
-- if (isdigit(*a)) {
-- if (!isdigit(*b))
-- return -1;
-- while (a > astr) {
-- a--;
-- if (!isdigit(*a)) {
-- a++;
-- break;
-- }
-- if (!isdigit(*b))
-- return -1;
-- b--;
-- }
-- return atoi(a) > atoi(b) ? 1 : -1;
-- }
-- return *a - *b;
-+ int err = 0;
-+
-+ err |= dotest("eth1", "eth1", 0);
-+ err |= dotest("eth0:1", "eth0:1", 0);
-+ err |= dotest("lan", "lan", 0);
-+ err |= dotest("100", "100", 0);
-+ err |= dotest("", "", 0);
-+ err |= dotest(":", ":", 0);
-+ err |= dotest("a:b:c", "a:b:c", 0);
-+ err |= dotest("a:", "a:", 0);
-+ err |= dotest(":a", ":a", 0);
-+
-+ err |= dotest("a", "aa", -1);
-+ err |= dotest("eth0", "eth1", -1);
-+ err |= dotest("eth1", "eth20", -1);
-+ err |= dotest("eth20", "eth100", -1);
-+ err |= dotest("eth1", "eth13", -1);
-+ err |= dotest("eth", "eth2", -1);
-+ err |= dotest("eth0:1", "eth0:2", -1);
-+ err |= dotest("eth1:10", "eth13:10", -1);
-+ err |= dotest("eth1:1", "eth1:13", -1);
-+ err |= dotest("a", "a:", -1);
-+
-+ err |= dotest("aa", "a", 1);
-+ err |= dotest("eth2", "eth1", 1);
-+ err |= dotest("eth13", "eth1", 1);
-+ err |= dotest("eth2", "eth", 1);
-+ err |= dotest("eth2:10", "eth2:1", 1);
-+ err |= dotest("eth2:5", "eth2:4", 1);
-+ err |= dotest("eth3:2", "eth2:3", 1);
-+ err |= dotest("eth13:1", "eth1:0", 1);
-+ err |= dotest("a:", "a", 1);
-+ err |= dotest("a1b12", "a1b2", 1);
-+
-+ err |= dotest("eth1", "eth01", 1);
-+ err |= dotest("eth01", "eth1", -1);
-+ err |= dotest("eth1:1", "eth01:1", 1);
-+ err |= dotest("eth01:1", "eth1:1", -1);
-+ err |= dotest("eth1:1", "eth01:01", 1);
-+ err |= dotest("eth1:01", "eth01:1", 1);
-+ err |= dotest("eth01:1", "eth1:01", -1);
-+ err |= dotest("eth01:01", "eth1:1", -1);
-+
-+ return err;
- }
-+
-+#endif
-diff --git a/lib/pathnames.h b/lib/pathnames.h
-index 1f7fefb..14b051c 100644
---- a/lib/pathnames.h
-+++ b/lib/pathnames.h
-@@ -1,9 +1,8 @@
--
- /*
-- * lib/pathnames.h This file contains the definitions of the path
-+ * lib/pathnames.h This file contains the definitions of the path
- * names used by the NET-LIB.
- *
-- * NET-LIB
-+ * NET-LIB
- *
- * Version: lib/pathnames.h 1.37 (1997-08-23)
- *
-@@ -17,6 +16,12 @@
- #define _PATH_PROCNET_TCP6 "/proc/net/tcp6"
- #define _PATH_PROCNET_UDP "/proc/net/udp"
- #define _PATH_PROCNET_UDP6 "/proc/net/udp6"
-+#define _PATH_PROCNET_UDPLITE "/proc/net/udplite"
-+#define _PATH_PROCNET_UDPLITE6 "/proc/net/udplite6"
-+#define _PATH_PROCNET_SCTPEPTS "/proc/net/sctp/eps"
-+#define _PATH_PROCNET_SCTP6EPTS "/proc/net/sctp6/eps"
-+#define _PATH_PROCNET_SCTPASSOCS "/proc/net/sctp/assocs"
-+#define _PATH_PROCNET_SCTP6ASSOCS "/proc/net/sctp6/assocs"
- #define _PATH_PROCNET_RAW "/proc/net/raw"
- #define _PATH_PROCNET_RAW6 "/proc/net/raw6"
- #define _PATH_PROCNET_UNIX "/proc/net/unix"
-@@ -29,8 +34,10 @@
- #define _PATH_PROCNET_NR_NODES "/proc/net/nr_nodes"
- #define _PATH_PROCNET_ARP "/proc/net/arp"
- #define _PATH_PROCNET_AX25 "/proc/net/ax25"
--#define _PATH_PROCNET_IPX "/proc/net/ipx"
--#define _PATH_PROCNET_IPX_ROUTE "/proc/net/ipx_route"
-+#define _PATH_PROCNET_IPX_SOCKET1 "/proc/net/ipx/socket"
-+#define _PATH_PROCNET_IPX_SOCKET2 "/proc/net/ipx"
-+#define _PATH_PROCNET_IPX_ROUTE1 "/proc/net/ipx/route"
-+#define _PATH_PROCNET_IPX_ROUTE2 "/proc/net/ipx_route"
- #define _PATH_PROCNET_ATALK "/proc/net/appletalk"
- #define _PATH_PROCNET_IP_BLK "/proc/net/ip_block"
- #define _PATH_PROCNET_IP_FWD "/proc/net/ip_forward"
-@@ -42,9 +49,12 @@
- #define _PATH_PROCNET_RARP "/proc/net/rarp"
- #define _PATH_ETHERS "/etc/ethers"
- #define _PATH_PROCNET_ROSE_ROUTE "/proc/net/rose_routes"
--#define _PATH_PROCNET_X25 "/proc/net/x25"
--#define _PATH_PROCNET_X25_ROUTE "/proc/net/x25_routes"
-+#define _PATH_PROCNET_X25 "/proc/net/x25"
-+#define _PATH_PROCNET_X25_ROUTE "/proc/net/x25/route"
- #define _PATH_PROCNET_DEV_MCAST "/proc/net/dev_mcast"
-+#define _PATH_PROCNET_ATALK_ROUTE "/proc/net/atalk_route"
-+#define _PATH_SYS_BLUETOOTH_L2CAP "/sys/class/bluetooth/l2cap"
-+#define _PATH_SYS_BLUETOOTH_RFCOMM "/sys/class/bluetooth/rfcomm"
-
- /* pathname for the netlink device */
- #define _PATH_DEV_ROUTE "/dev/route"
-diff --git a/lib/ppp.c b/lib/ppp.c
-index 8bf1499..27d660c 100644
---- a/lib/ppp.c
-+++ b/lib/ppp.c
-@@ -8,7 +8,7 @@
- * Copyright 1993 MicroWalt Corporation
- *
- * Modified by Alan Cox, May 94 to cover NET-3
-- *
-+ *
- * Changes:
- * 980701 {1.12} Arnaldo Carvalho de Melo - GNU gettext instead of catgets
- *
-diff --git a/lib/proc.c b/lib/proc.c
-index bf34dbe..8e4711d 100644
---- a/lib/proc.c
-+++ b/lib/proc.c
-@@ -1,11 +1,14 @@
- /* Tolerant /proc file parser. Copyright 1998 Andi Kleen */
--/* $Id: proc.c,v 1.4 1999/01/05 20:54:00 philip Exp $ */
--/* Fixme: cannot currently cope with removed fields */
-+/* $Id: proc.c,v 1.5 2007/12/01 18:44:57 ecki Exp $ */
-+/* Fixme: cannot currently cope with removed fields */
-
- #include <string.h>
- #include <stdarg.h>
- #include <stdio.h>
-+#include <stdlib.h>
- #include <ctype.h>
-+#include <unistd.h>
-+#include "util.h"
-
- /* Caller must free return string. */
-
-@@ -46,10 +49,10 @@ char *proc_gen_fmt(char *name, int more, FILE * fh,...)
- name, title);
- return NULL;
- }
-- return strdup(format);
-+ return xstrdup(format);
- }
-
--/*
-+/*
- * this will generate a bitmask of present/missing fields in the header of
- * a /proc file.
- */
-@@ -72,3 +75,22 @@ int proc_guess_fmt(char *name, FILE *fh, ...)
- va_end(ap);
- return flag;
- }
-+
-+
-+FILE *proc_fopen(const char *name)
-+{
-+ static char *buffer;
-+ static size_t pagesz;
-+ FILE *fd = fopen(name, "r");
-+
-+ if (fd == NULL)
-+ return NULL;
-+
-+ if (!buffer) {
-+ pagesz = getpagesize();
-+ buffer = malloc(pagesz);
-+ }
-+
-+ setvbuf(fd, buffer, _IOFBF, pagesz);
-+ return fd;
-+}
-diff --git a/lib/proc.h b/lib/proc.h
-index 91f803c..379de23 100644
---- a/lib/proc.h
-+++ b/lib/proc.h
-@@ -1,5 +1,7 @@
--
--
--/* Generate a suitable scanf format for a column title line */
-+/*
-+ * prototypes for proc.c
-+ */
- char *proc_gen_fmt(char *name, int more, FILE * fh,...);
- int proc_guess_fmt(char *name, FILE* fh,...);
-+FILE *proc_fopen(const char *name);
-+
-diff --git a/lib/rose.c b/lib/rose.c
-index 381226b..6286cb1 100644
---- a/lib/rose.c
-+++ b/lib/rose.c
-@@ -34,6 +34,7 @@
- #include "net-support.h"
- #include "pathnames.h"
- #include "intl.h"
-+#include "util.h"
-
- #ifndef _NETROSE_ROSE_H
- #include <linux/ax25.h>
-@@ -53,8 +54,8 @@ static char ROSE_errmsg[128];
-
- extern struct aftype rose_aftype;
-
--static char *
-- ROSE_print(unsigned char *ptr)
-+static const char *
-+ ROSE_print(const char *ptr)
- {
- static char buff[12];
-
-@@ -64,7 +65,7 @@ static char *
- }
-
- /* Display a ROSE socket address. */
--static char *
-+static const char *
- ROSE_sprint(struct sockaddr *sap, int numeric)
- {
- if (sap->sa_family == 0xFFFF || sap->sa_family == 0)
-@@ -73,7 +74,6 @@ static char *
- return (ROSE_print(((struct sockaddr_rose *) sap)->srose_addr.rose_addr));
- }
-
--
- static int ROSE_input(int type, char *bufp, struct sockaddr *sap)
- {
- char *ptr;
-@@ -84,10 +84,7 @@ static int ROSE_input(int type, char *bufp, struct sockaddr *sap)
-
- /* Node address the correct length ? */
- if (strlen(bufp) != 10) {
-- strcpy(ROSE_errmsg, _("Node address must be ten digits"));
--#ifdef DEBUG
-- fprintf(stderr, "rose_input(%s): %s !\n", ROSE_errmsg, orig);
--#endif
-+ safe_strncpy(ROSE_errmsg, _("Node address must be ten digits"), sizeof(ROSE_errmsg));
- errno = EINVAL;
- return (-1);
- }
-@@ -98,13 +95,6 @@ static int ROSE_input(int type, char *bufp, struct sockaddr *sap)
- }
-
- /* All done. */
--#ifdef DEBUG
-- fprintf(stderr, "rose_input(%s): ", orig);
-- for (i = 0; i < sizeof(rose_address); i++)
-- fprintf(stderr, "%02X ", sap->sa_data[i] & 0377);
-- fprintf(stderr, "\n");
--#endif
--
- return (0);
- }
-
-diff --git a/lib/rose_gr.c b/lib/rose_gr.c
-index cf0a60a..a0858fd 100644
---- a/lib/rose_gr.c
-+++ b/lib/rose_gr.c
-@@ -53,7 +53,8 @@ int ROSE_rprint(int options)
- }
- printf(_("Kernel ROSE routing table\n"));
- printf(_("Destination Iface Use\n"));
-- fgets(buffer, 256, f);
-+ if (fgets(buffer, 256, f))
-+ /* eat line */;
- while (fgets(buffer, 256, f)) {
- buffer[9] = 0;
- buffer[14] = 0;
-diff --git a/lib/strip.c b/lib/strip.c
-index fd396ba..ced2325 100644
---- a/lib/strip.c
-+++ b/lib/strip.c
-@@ -38,8 +38,8 @@
-
- extern struct hwtype strip_hwtype;
-
--static char *
--pr_strip(unsigned char *ptr)
-+static const char *
-+pr_strip(const char *ptr)
- {
- static char buff[64];
- if(ptr[1])
-diff --git a/lib/tr.c b/lib/tr.c
-index 8d86aa7..c5314da 100644
---- a/lib/tr.c
-+++ b/lib/tr.c
-@@ -2,7 +2,7 @@
- * lib/tr.c This file contains an implementation of the "Tokenring"
- * support functions.
- *
-- * Version: $Id: tr.c,v 1.8 2000/02/02 08:56:30 freitag Exp $
-+ * Version: $Id: tr.c,v 1.9 2005/05/16 03:15:12 ecki Exp $
- *
- * Author: Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- * Copyright 1993 MicroWalt Corporation
-@@ -30,10 +30,16 @@
- #include "net-support.h"
- #include "pathnames.h"
- #include "intl.h"
-+#include "util.h"
-
-+
-+/* actual definition at the end of file */
- extern struct hwtype tr_hwtype;
-+#ifdef ARPHRD_IEEE802_TR
-+extern struct hwtype tr_hwtype1;
-+#endif
-
--static char *pr_tr(unsigned char *ptr)
-+static const char *pr_tr(const char *ptr)
- {
- static char buff[64];
-
-@@ -42,16 +48,31 @@ static char *pr_tr(unsigned char *ptr)
- (ptr[3] & 0377), (ptr[4] & 0377), (ptr[5] & 0377)
- );
- return (buff);
--}
-+ }
-
-+#ifdef DEBUG
-+#define _DEBUG 1
-+#else
-+#define _DEBUG 0
-+#endif
-
- static int in_tr(char *bufp, struct sockaddr *sap)
- {
-- unsigned char *ptr;
-+ char *ptr;
- char c, *orig;
- int i, val;
-
-+#ifdef ARPHRD_IEEE802_TR
-+ if (kernel_version() < KRELEASE(2,3,30)) {
-+ sap->sa_family = tr_hwtype.type;
-+ } else {
-+ sap->sa_family = tr_hwtype1.type;
-+ }
-+#else
- sap->sa_family = tr_hwtype.type;
-+ #warning "Limited functionality, no support for ARPHRD_IEEE802_TR (old kernel headers?)"
-+#endif
-+
- ptr = sap->sa_data;
-
- i = 0;
-@@ -66,9 +87,8 @@ static int in_tr(char *bufp, struct sockaddr *sap)
- else if (c >= 'A' && c <= 'F')
- val = c - 'A' + 10;
- else {
--#ifdef DEBUG
-- fprintf(stderr, _("in_tr(%s): invalid token ring address!\n"), orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, _("in_tr(%s): invalid token ring address!\n"), orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -81,9 +101,8 @@ static int in_tr(char *bufp, struct sockaddr *sap)
- else if (c >= 'A' && c <= 'F')
- val |= c - 'A' + 10;
- else {
--#ifdef DEBUG
-- fprintf(stderr, _("in_tr(%s): invalid token ring address!\n"), orig);
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, _("in_tr(%s): invalid token ring address!\n"), orig);
- errno = EINVAL;
- return (-1);
- }
-@@ -92,28 +111,21 @@ static int in_tr(char *bufp, struct sockaddr *sap)
-
- /* We might get a semicolon here - not required. */
- if (*bufp == ':') {
-- if (i == TR_ALEN) {
--#ifdef DEBUG
-+ if (_DEBUG && i == TR_ALEN)
- fprintf(stderr, _("in_tr(%s): trailing : ignored!\n"),
-- orig)
--#endif
-- ; /* nothing */
-- }
-+ orig);
- bufp++;
- }
- }
-
- /* That's it. Any trailing junk? */
-- if ((i == TR_ALEN) && (*bufp != '\0')) {
--#ifdef DEBUG
-+ if (_DEBUG && (i == TR_ALEN) && (*bufp != '\0')) {
- fprintf(stderr, _("in_tr(%s): trailing junk!\n"), orig);
- errno = EINVAL;
- return (-1);
--#endif
- }
--#ifdef DEBUG
-- fprintf(stderr, "in_tr(%s): %s\n", orig, pr_tr(sap->sa_data));
--#endif
-+ if (_DEBUG)
-+ fprintf(stderr, "in_tr(%s): %s\n", orig, pr_tr(sap->sa_data));
-
- return (0);
- }
-diff --git a/lib/tunnel.c b/lib/tunnel.c
-index 19606c1..8a160bf 100644
---- a/lib/tunnel.c
-+++ b/lib/tunnel.c
-@@ -21,7 +21,7 @@
-
- extern struct hwtype ether_hwtype;
-
--static char *pr_tunnel(unsigned char *ptr)
-+static const char *pr_tunnel(const char *ptr)
- {
- return ("");
- }
-diff --git a/lib/unix.c b/lib/unix.c
-index fb4dcce..936cd48 100644
---- a/lib/unix.c
-+++ b/lib/unix.c
-@@ -32,7 +32,7 @@
-
-
- /* Display an UNSPEC address. */
--static char *UNSPEC_print(unsigned char *ptr)
-+static const char *UNSPEC_print(const char *ptr)
- {
- static char buff[64];
- char *pos;
-@@ -48,7 +48,7 @@ static char *UNSPEC_print(unsigned char *ptr)
-
-
- /* Display an UNSPEC socket address. */
--static char *UNSPEC_sprint(struct sockaddr *sap, int numeric)
-+static const char *UNSPEC_sprint(struct sockaddr *sap, int numeric)
- {
- static char buf[64];
-
-@@ -61,14 +61,14 @@ static char *UNSPEC_sprint(struct sockaddr *sap, int numeric)
- #if HAVE_AFUNIX
-
- /* Display a UNIX domain address. */
--static char *UNIX_print(unsigned char *ptr)
-+static const char *UNIX_print(const char *ptr)
- {
- return (ptr);
- }
-
-
- /* Display a UNIX domain address. */
--static char *UNIX_sprint(struct sockaddr *sap, int numeric)
-+static const char *UNIX_sprint(struct sockaddr *sap, int numeric)
- {
- static char buf[64];
-
-diff --git a/lib/util-ank.c b/lib/util-ank.c
-index 43a7f1c..b077f35 100644
---- a/lib/util-ank.c
-+++ b/lib/util-ank.c
-@@ -293,7 +293,7 @@ int inet_addr_match(inet_prefix *a, inet_prefix *b, int bits)
- return 0;
- }
-
--const char *format_host(int af, void *addr, __u8 *abuf, int alen)
-+const char *format_host(int af, void *addr, char *abuf, int alen)
- {
- #ifdef RESOLVE_HOSTNAMES
- if (resolve_hosts) {
-diff --git a/lib/util.c b/lib/util.c
-index ac932f4..0397f1e 100644
---- a/lib/util.c
-+++ b/lib/util.c
-@@ -1,4 +1,4 @@
--/* Copyright 1998 by Andi Kleen. Subject to the GPL. */
-+/* Copyright 1998 by Andi Kleen. Subject to the GPL. */
- /* $Id: util.c,v 1.4 1998/11/17 15:17:02 freitag Exp $ */
- #include <stdio.h>
- #include <stdlib.h>
-@@ -22,6 +22,15 @@ void *xmalloc(size_t sz)
- return p;
- }
-
-+/* Like strdup, but oom() instead of NULL */
-+char *xstrdup(const char *s)
-+{
-+ char *d = strdup(s);
-+ if (!d)
-+ oom();
-+ return d;
-+}
-+
- void *xrealloc(void *oldp, size_t sz)
- {
- void *p = realloc(oldp, sz);
-@@ -33,19 +42,19 @@ void *xrealloc(void *oldp, size_t sz)
- int kernel_version(void)
- {
- struct utsname uts;
-- int major, minor, patch;
-+ int major, minor, patch=0;
-
- if (uname(&uts) < 0)
- return -1;
-- if (sscanf(uts.release, "%d.%d.%d", &major, &minor, &patch) != 3)
-+ if (sscanf(uts.release, "%d.%d.%d", &major, &minor, &patch) < 2)
- return -1;
- return KRELEASE(major, minor, patch);
- }
-
-
--/* Like strncpy but make sure the resulting string is always 0 terminated. */
-+/* Like strncpy but make sure the resulting string is always 0 terminated. */
- char *safe_strncpy(char *dst, const char *src, size_t size)
--{
-+{
- dst[size-1] = '\0';
-- return strncpy(dst,src,size-1);
-+ return strncpy(dst,src,size-1);
- }
-diff --git a/lib/util.h b/lib/util.h
-index 6acb158..b7598e8 100644
---- a/lib/util.h
-+++ b/lib/util.h
-@@ -2,6 +2,7 @@
-
- void *xmalloc(size_t sz);
- void *xrealloc(void *p, size_t sz);
-+char *xstrdup(const char *src);
-
- #define new(p) ((p) = xmalloc(sizeof(*(p))))
-
-@@ -12,5 +13,8 @@ int kernel_version(void);
-
- int nstrcmp(const char *, const char *);
-
--char *safe_strncpy(char *dst, const char *src, size_t size);
-+char *safe_strncpy(char *dst, const char *src, size_t size);
-
-+
-+#define netmin(a,b) ((a)<(b) ? (a) : (b))
-+#define netmax(a,b) ((a)>(b) ? (a) : (b))
-diff --git a/lib/x25.c b/lib/x25.c
-index 1ffb569..45de5af 100644
---- a/lib/x25.c
-+++ b/lib/x25.c
-@@ -38,6 +38,7 @@
- #include "net-locale.h"
- #endif
- #include "intl.h"
-+#include "util.h"
-
- static char X25_errmsg[128];
-
-@@ -50,8 +51,8 @@ extern struct aftype x25_aftype;
- #endif
-
-
--static char *
--X25_print(unsigned char *ptr)
-+static const char *
-+X25_print(const char *ptr)
- {
- static char buff[X25_ADDR_LEN+1];
-
-@@ -63,7 +64,7 @@ X25_print(unsigned char *ptr)
-
-
- /* Display an X.25 socket address. */
--static char *
-+static const char *
- X25_sprint(struct sockaddr *sap, int numeric)
- {
- if (sap->sa_family == 0xFFFF || sap->sa_family == 0)
-@@ -78,7 +79,7 @@ X25_sprint(struct sockaddr *sap, int numeric)
- static int
- X25_input(int type, char *bufp, struct sockaddr *sap)
- {
-- unsigned char *ptr;
-+ char *ptr;
- char *p;
- unsigned int sigdigits;
-
-@@ -88,9 +89,11 @@ X25_input(int type, char *bufp, struct sockaddr *sap)
-
- /* Address the correct length ? */
- if (strlen(bufp)>18) {
-- strcpy(X25_errmsg, _("Address can't exceed eighteen digits with sigdigits"));
-+ safe_strncpy(X25_errmsg,
-+ _("Address can't exceed eighteen digits with sigdigits"),
-+ sizeof(X25_errmsg));
- #ifdef DEBUG
-- fprintf(stderr, "x25_input(%s): %s !\n", X25_errmsg, orig);
-+ fprintf(stderr, "x25_input(%s): %s !\n", bufp, X25_errmsg);
- #endif
- errno = EINVAL;
- return(-1);
-@@ -105,10 +108,11 @@ X25_input(int type, char *bufp, struct sockaddr *sap)
- }
-
- if (strlen(bufp) < 1 || strlen(bufp) > 15 || sigdigits > strlen(bufp)) {
-- *p = '/';
-- strcpy(X25_errmsg, _("Invalid address"));
-+ if (p != NULL)
-+ *p = '/';
-+ safe_strncpy(X25_errmsg, _("Invalid address"), sizeof(X25_errmsg));
- #ifdef DEBUG
-- fprintf(stderr, "x25_input(%s): %s !\n", X25_errmsg, orig);
-+ fprintf(stderr, "x25_input(%s): %s !\n", bufp, X25_errmsg);
- #endif
- errno = EINVAL;
- return(-1);
-@@ -118,10 +122,7 @@ X25_input(int type, char *bufp, struct sockaddr *sap)
-
- /* All done. */
- #ifdef DEBUG
-- fprintf(stderr, "x25_input(%s): ", orig);
-- for (i = 0; i < sizeof(x25_address); i++)
-- fprintf(stderr, "%02X ", sap->sa_data[i] & 0377);
-- fprintf(stderr, "\n");
-+ fprintf(stderr, "x25_input(%s)\n", bufp);
- #endif
-
- return sigdigits;
-@@ -152,7 +153,7 @@ struct hwtype x25_hwtype = {
- };
-
- struct aftype x25_aftype =
--{
-+{
- "x25", NULL, /*"CCITT X.25", */ AF_X25, X25_ADDR_LEN,
- X25_print, X25_sprint, X25_input, X25_herror,
- X25_rprint, X25_rinput, NULL /* getmask */,
-diff --git a/lib/x25_gr.c b/lib/x25_gr.c
-index 187fc05..79682e0 100644
---- a/lib/x25_gr.c
-+++ b/lib/x25_gr.c
-@@ -37,6 +37,7 @@
- #include <string.h>
- #include "net-support.h"
- #include "pathnames.h"
-+#include "proc.h"
- #define EXTERN
- #if 0
- #include "net-locale.h"
-@@ -48,9 +49,18 @@
- #define X25_ADDR_LEN 16
- #endif
-
-+static FILE *proc_fopen_x25_route(void)
-+{
-+ FILE *ret = proc_fopen(_PATH_PROCNET_X25_ROUTE);
-+ if (ret)
-+ return ret;
-+ /* try old linux-2.4 name */
-+ return proc_fopen("/proc/net/x25_routes");
-+}
-+
- int X25_rprint(int options)
- {
-- FILE *f=fopen(_PATH_PROCNET_X25_ROUTE, "r");
-+ FILE *f=proc_fopen_x25_route();
- char buffer[256];
- char *p;
- int digits;
-@@ -62,7 +72,8 @@ int X25_rprint(int options)
- }
- printf( _("Kernel X.25 routing table\n")); /* xxx */
- printf( _("Destination Iface\n")); /* xxx */
-- fgets(buffer,256,f);
-+ if (fgets(buffer,256,f))
-+ /* eat line */;
- while(fgets(buffer,256,f))
- {
- p = strchr(buffer,'\n');
-diff --git a/lib/x25_sr.c b/lib/x25_sr.c
-index 8637c98..fde79dc 100644
---- a/lib/x25_sr.c
-+++ b/lib/x25_sr.c
-@@ -38,6 +38,7 @@
- #include "net-locale.h"
- #endif
- #include "intl.h"
-+#include "util.h"
-
- #include "net-features.h"
-
-@@ -64,10 +65,10 @@ static int X25_setroute(int action, int options, char **args)
- if (*args == NULL)
- return(usage());
-
-- strcpy(target, *args++);
-+ safe_strncpy(target, *args++, sizeof(target));
-
- /* Clean out the x25_route_struct structure. */
-- memset((char *) &rt, 0, sizeof(struct x25_route_struct));
-+ memset((char *) &rt, 0, sizeof(rt));
-
-
- if ((sigdigits = x25_aftype.input(0, target, (struct sockaddr *)&sx25)) < 0) {
-@@ -76,8 +77,8 @@ static int X25_setroute(int action, int options, char **args)
- }
- rt.sigdigits=sigdigits;
-
-- /* x25_route_struct.address isn't type struct sockaddr_x25, Why? */
-- memcpy(&rt.address, &sx25.sx25_addr, sizeof(x25_address));
-+ /* this works with 2.4 and 2.6 headers struct x25_address vs. typedef */
-+ memcpy(&rt.address, &sx25.sx25_addr, sizeof(sx25.sx25_addr));
-
- while (*args) {
- if (!strcmp(*args,"device") || !strcmp(*args,"dev")) {
-@@ -89,7 +90,7 @@ static int X25_setroute(int action, int options, char **args)
- return(usage());
- if (rt.device[0])
- return(usage());
-- strcpy(rt.device, *args);
-+ safe_strncpy(rt.device, *args, sizeof(rt.device));
- args++;
- }
- if (rt.device[0]=='\0')
-@@ -111,7 +112,7 @@ static int X25_setroute(int action, int options, char **args)
- perror("socket");
- return(E_SOCK);
- }
--
-+
- /* Tell the kernel to accept this route. */
- if (action==RTACTION_DEL) {
- if (ioctl(skfd, SIOCDELRT, &rt) < 0) {
-@@ -137,14 +138,14 @@ int X25_rinput(int action, int options, char **args)
- if (action == RTACTION_FLUSH) {
- fprintf(stderr,"Flushing `x25' routing table not supported\n");
- return(usage());
-- }
-+ }
- if (options & FLAG_CACHE) {
- fprintf(stderr,"Modifying `x25' routing cache not supported\n");
- return(usage());
-- }
-+ }
- if ((*args == NULL) || (action == RTACTION_HELP))
- return(usage());
--
-+
- return(X25_setroute(action, options, args));
- }
- #endif /* HAVE_AFX25 */
-diff --git a/man/Makefile b/man/Makefile
-index 4ef1af8..23f5468 100644
---- a/man/Makefile
-+++ b/man/Makefile
-@@ -29,9 +29,14 @@ mandir=/usr/share/man
-
- -include ../config.make
- ifeq ($(I18N),1)
--LANGS=`ls -d * | grep -v Makefile`
-+ALL_LANGS = $(filter-out Makefile,$(wildcard *))
-+ifeq ($(LINGUAS),)
-+LANGS = $(ALL_LANGS)
- else
--LANGS=en_US
-+LANGS = $(sort $(filter $(LINGUAS),$(ALL_LANGS)) en_US)
-+endif
-+else
-+LANGS = en_US
- endif
-
- all:
-@@ -43,7 +48,7 @@ clean:
- clobber: clean
-
- install:
-- LANGS=$(LANGS) ; \
-+ LANGS='$(LANGS)' ; \
- for LANG in $$LANGS; do \
- cd $$LANG; \
- for SECTION in 1 5 8; do \
-diff --git a/man/de_DE/arp.8 b/man/de_DE/arp.8
-index debd879..79abfc7 100644
---- a/man/de_DE/arp.8
-+++ b/man/de_DE/arp.8
-@@ -1,149 +1,145 @@
--.TH ARP 8 "6. M\(:arz 1999" "net-tools" "Handbuch f\(:ur Linuxprogrammierer"
-+.TH ARP 8 "17. Oktober 2012" "net-tools" "Handbuch f\(:ur Linuxprogrammierer"
- .SH NAME
- arp \- Manipulation des ARP-Caches
- .SH SYNOPSIS
--.B arp
--.RB [ \-vn ]
--.RB [ "\-H Typ" ]
--.RB [ "-i Schnittstelle" ]
--.B -a
-+.B arp
-+.RB [ \-vn ]
-+.RB [ "\-H Typ" ]
-+.RB [ "-i Schnittstelle" ]
-+.B -a
- .RB [ Rechnername ]
- .PP
--.B arp
-+.B arp
- .RB [ \-v ]
--.RB [ "\-i if" ]
-+.RB [ "\-i Schnittstelle" ]
- .B "\-d Rechnername"
- .RB [ pub ]
- .PP
--.B arp
--.RB [ \-v ]
--.RB [ "\-H Typ" ]
--.RB [ "\-i Schnittstelle" ]
-+.B arp
-+.RB [ \-v ]
-+.RB [ "\-H Typ" ]
-+.RB [ "\-i Schnittstelle" ]
- .B -s Rechnername hw_adr
--.RB [ temp ]
-+.RB [ temp ]
- .PP
--.B arp
--.RB [ \-v ]
--.RB [ "\-H Typ" ]
--.RB [ "\-i Interface" ]
-+.B arp
-+.RB [ \-v ]
-+.RB [ "\-H Typ" ]
-+.RB [ "\-i Interface" ]
- .B -s Rechnername hw_adr
--.RB [ "netmask nm" ]
-+.RB [ "netmask Maske" ]
- .B pub
- .PP
--.B arp
--.RB [ \-v ]
--.RB [ "\-H Typ" ]
--.RB [ "\-i Schnittstelle" ]
--.B -Ds Rechnername ifa
--.RB [ "netmask nm" ]
-+.B arp
-+.RB [ \-v ]
-+.RB [ "\-H Typ" ]
-+.RB [ "\-i Schnittstelle" ]
-+.B -Ds Rechnername Schnittstelle2
-+.RB [ "netmask Maske" ]
- .B pub
- .PP
--.B arp
-+.B arp
- .RB [ \-vnD ]
--.RB [ "\-H Typ" ]
-+.RB [ "\-H Typ" ]
- .RB [ "-i Schnittstelle" ]
- .B -f [Dateiname]
-
- .SH BESCHREIBUNG
- .B Arp
- kann den ARP-Cache des Kernels auf verschiedene Arten manipulieren. Die
--haupts\(:achliche Verwendung ist es Adresszuordnungseintr\(:age zu
-+haupts\(:achliche Verwendung ist es, Adresszuordnungseintr\(:age zu
- l\(:oschen und von Hand neue zu erzeugen. Zum Zweck der Fehlersuche ist
--moeglich mit dem
--.B arp
--Programm den Inhalt des ARP-Caches vollst\(:andig auszugeben.
-+es m\(:oglich, mit dem
-+.BR arp -Programm
-+den Inhalt des ARP-Caches vollst\(:andig auszugeben.
-+
-+.B ARP
-+steht f\(:ur Address Resolution Protocol, welches dazu verwendet wird, \(:uber
-+die IPv4-Adresse die MAC-Adresse von Nachbarn im Netzwerk zu finden.
- .SH OPTIONEN
- .TP
- .B "\-v, \-\-verbose"
- Ausf\(:uhrlichere Ausgaben.
- .TP
- .B "\-n, \-\-numeric"
--macht numerische Adressausgaben anstatt zu versuche, den symbolischen Rechner-,
-+Numerische Adressausgaben anstatt zu versuchen, den symbolischen Rechner-,
- Port- oder Benutzernamen zu ermitteln.
- .TP
--.B "\-H type, \-\-hw-type type"
-+.B "\-H Typ, \-\-hw-type Typ"
- Beim Setzen oder Auslesen des ARP-Caches schr\(:ankt diese Option
--ein, auf welcher Klasse von Eintr\(:agen
-+ein, auf welcher Klasse von Eintr\(:agen
- .B arp
- operieren soll. Der Standardwert dieses Arguments ist
- .B ether
- (d.h. Hardwarecode 0x01 f\(:ur IEEE 802.3 10Mbps Ethernet).
- Andere m\(:ogliche Werte sind Netzwerkstechnologien so wie z.B.
--.RB "ARCnet (" arcnet ")"
--,
--.RB "PROnet (" pronet ")"
--,
--.RB "AX.25 (" ax25 ")"
--and
--.RB "NET/ROM (" netrom ")."
-+.RB "ARCnet (" arcnet "), PROnet (" pronet "), AX.25 (" ax25 ") und NET/ROM (" netrom ")."
- .TP
- .B "\-a [Rechnername], \-\-display [Rechnername]"
- Zeigt die Eintr\(:age der angegebenen Rechner an. Wird kein
--.B hostname
--Argument verwendet, so werden alle Eintr\(:age aufgelistet.
-+.BR hostname -Argument
-+verwendet, so werden alle Eintr\(:age aufgelistet.
- .TP
- .B "\-d Rechnername, \-\-delete Rechnername"
--Alle Eintr\(:age f\(:ur den angegebenen Host entfernen. Dies kann z.B.
--benutzt werden, wenn ein System angehalten wird.
-+Alle Eintr\(:age f\(:ur den angegebenen Host entfernen. Dies kann z.B. benutzt
-+werden, wenn ein System angehalten wird.
- .TP
- .B "\-D, \-\-use-device"
- Die Hardwareadresse der Netzwerksschnittstelle
--.B ifa
-+.B Schnittstelle2
- verwenden.
- .TP
--.B "\-i If, \-\-device Schnittstelle"
-+.B "\-i Schnittstelle, \-\-device Schnittstelle"
- Eine Netzwerksschnittstelle ausw\(:ahlen. Es werden nur Eintr\(:age
--f\(:ur die angegebene Schnittstelle ausgedruckt. Beim Setzen von von
-+f\(:ur die angegebene Schnittstelle ausgegeben. Beim Setzen von
- permanenten oder tempor\(:aren Eintr\(:agen wird diese Schnittstelle mit
- dem Eintrag assoziiert. Wird diese Option nicht verwendet, so versucht der
--Kernel auf Basis der Routentabelle eine Schnittstelle auszuw\(:ahlen. F\(:ur
--.B pub
--Eintr\(:age ist die angegebene Schnittstelle diejenige, auf der ARP-Anfragen
-+Kernel, auf Basis der Routentabelle eine Schnittstelle auszuw\(:ahlen. F\(:ur
-+.BR pub -Eintr\(:age
-+ist die angegebene Schnittstelle diejenige, auf der ARP-Anfragen
- beantwortet werden.
- .br
- .B ANMERKUNG:
--Diese Schnittstelle mu\(ss eine andere sein als die, auf die die IP-Datagramme
-+Diese Schnittstelle mu\(ss eine andere sein als die, auf welche die IP-Datagramme
- weitergeleitet werden.
- .TP
--.B "\-s Rechnername hw_addr, \-\-set Rechnername"
--Erzeugt manuel einen ARP Adresseintrag f\(:ur den Rechner
--.B Rechnername
-+.B "\-s Rechnername hw_addr, \-\-set Rechnername hw_addr"
-+Erzeugt manuell einen ARP-Adresseintrag f\(:ur den Rechner
-+.BR Rechnername ,
- in dem die Hardwareadresse auf
- .B hw_addr
- gesetzt ist. Das genaue Format der Hardwareadresse ist abh\(:angig von der
--Hardwareklasse aber f\(:ur die meisten Klassen kann man davon ausgehen, da\(ss
-+Hardwareklasse, aber f\(:ur die meisten Klassen kann man davon ausgehen, da\(ss
- die \(:ubliche Darstellung verwendet wird. F\(:ur die Ethernetklasse sind
--dies sechs hexadezimale, von Doppelpunkten getrennte Bytes. Beim Zuf\(:ugen
--von Proxy-ARP-Entr\(:agen (das sind die mit der gesetzten
--.BR pub lizieren
--Flagge) kann
--.B Netmaske
-+dies sechs hexadezimale, durch Doppelpunkte getrennte Bytes. Beim Zuf\(:ugen
-+von Proxy-ARP-Entr\(:agen (das sind die mit dem gesetzten
-+.BR pub lished-Flag)
-+kann die
-+.B Maske
- f\(:ur ARP-Eintr\(:age f\(:ur ganze Subnetze angegeben werde. Von dieser
- Praxis wird abgeraten. Sie wird von \(:alteren Kerneln unterst\(:utzt, da
--sie gelegentlich n\(:utzlich ist. Wird die
--If the
--.B temp
--Flagge nicht angegeben, so werden die erzeugten Eintr\(:age nicht dauerhaft
--in den ARP-Cache eingetragen.
-+sie gelegentlich n\(:utzlich ist.
-+Der Eintrag wird permanent im ARP-Cache gespeichert,
-+wenn das \fBtemp\fR-Flag nicht angegeben wird.
- .br
- .B ANMERKUNG:
--Ab der Kernelversion 2.2.0 ist es nicht mehr m\(:oglich ARP-Eintr\(:age f\(:ur
--ganze Teilnetze zu erzeugen. Statt dessen wird automatisches Proxy ARP
-+Ab der Kernelversion 2.2.0 ist es nicht mehr m\(:oglich, ARP-Eintr\(:age f\(:ur
-+ganze Teilnetze zu erzeugen. Stattdessen wird automatisches Proxy ARP
- durchgef\(:uhrt, d.h. wenn eine Route existiert und Forwarding eingeschaltet
--ist wird automatisch ein tempor\(:arer Proxyarpeintrag erzeugt.
-+ist, wird automatisch ein tempor\(:arer Proxyarpeintrag erzeugt.
- Siehe auch
- .BR arp (7)
- f\(:ur mehr Details.
- .TP
--.B "\-f Dateiname, \-\-file Dateiname"
-+.B "\-f [Dateiname], \-\-file [Dateiname]"
- \(:Ahnlich der
- .B \-s
- Option, au\(sser, da\(ss diesmal die Adressinformation aus der Datei
- .B Dateiname
- verwendet wird. Dies kann verwendet werden, wenn ARP-Eintr\(:age f\(:ur
- etliche Rechner erzeugt werden m\(:ussen. Der Name dieser Datei ist oft
--.IR /etc/ethers ,
--aber dies ist nicht offizieil standardisiert. Wenn kein Dateinamen
-+.IR /etc/ethers ,
-+aber dies ist nicht offizieil standardisiert. Wenn kein Dateinamen
- angeben ist wird /etc/ethers benutzt.
- .sp 1
- Das Format der Datei ist einfach; es enth\(:alt nur ASCII-Textzeilen, die
-@@ -158,16 +154,28 @@ erwartet wird, kann auch eine
- .B "IP-Adresse"
- in Form eines durch Punkte getrennten Dezimalquadrupels angegeben werden.
- .P
--Aus Kompatiblit\(:atsgr\(:unden k\(:onnen Rechnername und die
-+Aus Kompatiblit\(:atsgr\(:unden k\(:onnen Rechnername und die
- Hardwareadresse auch vertauscht werden.
--.LP
--Jeder vollst\(:andige Eintrag wird im ARP-Cache mit der
--.B C
--Flagge markiert. Permanente Eintr\(:age werden mit
-+.LP
-+Jeder vollst\(:andige Eintrag wird im ARP-Cache mit dem
-+.BR C -Flag
-+markiert. Permanente Eintr\(:age werden mit
- .B M
--und zu publizierende Eintr\(:age mit der
-+und zu publizierende Eintr\(:age mit
- .B P
--Flagge.
-+markiert.
-+.SH BEISPIELE
-+.B /usr/sbin/arp -i eth0 -Ds 10.0.0.2 eth1 pub
-+
-+Beantwortet ARP-Anfragen f\(:ur 10.0.0.2 die auf der Schnittstelle eth0
-+empfangen werden mit der MAC-Adresse f\(:ur eth1.
-+
-+.B /usr/sbin/arp -i eth1 -d 10.0.0.1
-+
-+Entfernt den ARP-Eintrag f\(:ur 10.0.0.1 auf der Schnittstelle
-+.BR eth1 .
-+Dies betrifft sowohl publizierte Proxy-ARP-Einträge als auch auf permanente ARP-Eintr\(:age.
-+
- .SH DATEIEN
- .I /proc/net/arp,
- .br
-@@ -176,10 +184,12 @@ Flagge.
- .I /etc/hosts
- .br
- .I /etc/ethers
-+
- .SH SIEHE AUCH
- ethers(5), rarp(8), route(8), ifconfig(8), netstat(8)
-+
- .SH AUTOREN
--Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> mit vielen Verbesserungen vom
--Verwalter der Net-Tools Bernd Eckenfels <net-tools@lina.inka.de>.
-+Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>, Bernd Eckenfels <net-tools@lina.inka.de>.
-+
- .SH \(:Ubersetzung
--Ralf B\(:achle <ralf@gnu.org>
-+Ralf B\(:achle <ralf@gnu.org>, Simon A. Eugster <simon.eu@gmail.com>
-diff --git a/man/de_DE/ifconfig.8 b/man/de_DE/ifconfig.8
-index aa2a4a0..9713965 100644
---- a/man/de_DE/ifconfig.8
-+++ b/man/de_DE/ifconfig.8
-@@ -73,9 +73,6 @@ Modus. Ist er eingeschaltet, so werden alle Multicastpakete vom Netzwerk
- empfangen unabh\(:angig davon, ob sie an die Schnittstelle adressiert sind
- oder nicht.
- .TP
--.B "metric N"
--Dieses Argument setzt den Metrik-Wert f\(:ur die Schnittstelle auf N.
--.TP
- .B "mtu N"
- Dieses Argument setzt die Maximum Transfer Unit (MTU) der Schnittstelle,
- das ist das gr\(:o\(sste Paket, dass gesendet werden kann.
-@@ -98,7 +95,7 @@ F\(:ugt der Schnittstelle eine IPv6-Adresse zu.
- .B "del addr/prefixlen"
- Entfernt eine IPv6-Adresse von der Schnittstelle.
- .TP
--.B "tunnel aa.bb.cc.dd"
-+.B "tunnel ::aa.bb.cc.dd"
- Erzeugt ein neues SIT (IPv6-in-IPv4) Ger\(:at, das Pakete zum angegebenen
- Ziel tunnelt.
- .TP
-@@ -180,12 +177,10 @@ Seit Kernel Version 2.2 gibt es keine expliziten Statistiken f\(:ur
- Schnittstellenaliase mehr. Die Statistiken f\(:ur die Originaladresse werden
- mit allen Aliasen auf das gleiche Ger\(:at geteilt. Um Statistiken per
- Adresse zu erhalten sollte explizite EIntr\(:age f\(:ur die Adresse mit dem
--.BR ipchains(8)
-+.BR iptables(8)
- Kommando gemacht werden.
-
- .SH DATEIEN
--.I /proc/net/socket
--.br
- .I /proc/net/dev
- .br
- .I /proc/net/if_inet6
-@@ -193,7 +188,7 @@ Kommando gemacht werden.
- W\(:ahrend AppleTalk DDP und IPX Adressen angezeigt werden, k\(:onnen sie mit
- diesem Kommando nicht ge\(:andert werden.
- .SH SIEHE AUCH
--route(8), netstat(8), arp(8), rarp(8), ipchains(8)
-+route(8), netstat(8), arp(8), rarp(8), iptables(8)
- .SH AUTOREN
- Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- .br
-diff --git a/man/de_DE/netstat.8 b/man/de_DE/netstat.8
-index f59aec0..fdb76c9 100644
---- a/man/de_DE/netstat.8
-+++ b/man/de_DE/netstat.8
-@@ -9,7 +9,7 @@
- .\" Modified: Tuan Hoang tuan@optimus.mitre.org
- .\"
- .\"
--.TH NETSTAT 8 "6. M\(:arz 1999" "net-tools" "Handbuch f\(:ur Linuxprogrammierer"
-+.TH NETSTAT 8 "2007-12-02" "net-tools" "Handbuch f\(:ur Linuxprogrammierer"
-
- .SH NAME
- netstat \- Anzeige von Netzwerksverbindungen, Routentabellen, Schnittstellenstatistiken, maskierten Verbindungen, Netlink-Nachrichten und Mitgliedschaft in Multicastgruppen
-@@ -20,6 +20,8 @@ netstat \- Anzeige von Netzwerksverbindungen, Routentabellen, Schnittstellenstat
- .RB [ \-venaoc ]
- .RB [ \-\-tcp | \-t ]
- .RB [ \-\-udp | \-u ]
-+.RB [ \-\-udplite | \-U ]
-+.RB [ \-\-sctp | \-S ]
- .RB [ \-\-raw | \-w ]
- .RB [ \-\-groups | \-g ]
- .RB [ \-\-unix | \-x ]
-@@ -44,7 +46,6 @@ netstat \- Anzeige von Netzwerksverbindungen, Routentabellen, Schnittstellenstat
- .B netstat
- .RB [ \-veenpac ]
- .RB { \-\-interfaces | \-i }
--.RI [ Schnittstelle ]
-
- .PP
-
-@@ -68,6 +69,8 @@ netstat \- Anzeige von Netzwerksverbindungen, Routentabellen, Schnittstellenstat
- .SH BESCHREIBUNG
- .B Netstat
- zeigt Informationen des Linux Netzwerkssystems an.
-+.PP
-+.B Bitte beachten Sie, dass der Inhalt der deutschen man-page nicht vollst\(:andig ist, im Moment.
-
- .SS "(no option)"
- Ohne Optionen zeigt
-@@ -103,18 +106,17 @@ benutzt das Ausgabeformat von
- Wegen Details siehe
- .BR route (8).
-
--.SS "\-i, \-\-interface \fISchnittstelle\fI"
-+.SS "\-i, \-\-interfaces"
- Wird die
- .BR -i ", " --interfaces
--Option verwendet, so wird eine Tabelle aller (oder der angegebenen
--.IR Schnittstellen )
-+Option verwendet, so wird eine Tabelle aller Schnittstellen
- ausgedruckt. Die Ausgabe ist im Format von
- .B "ifconfig -e"
- und wird in
- .BR ifconfig (8)
- beschrieben.
- .B "netstat -ei"
--druckt eine Tabelle oder einen Eintrag f\(:ur einen einzelnes Interface wie
-+druckt eine Tabelle f\(:ur Interfaces wie
- .BR ifconfig .
- Die
- .B -a
-@@ -182,7 +184,7 @@ Dies hat den gleichen Effekt wie die Langoptionen
- und
- .BR \-\-ddp.
-
--.SS "\-c, \-\-continous"
-+.SS "\-c, \-\-continuous"
- Mit dieser Option wiederholt
- .B netstat
- im Sekundenabstand die Ausgabe, bis es abgebrochen wird.
-@@ -414,7 +416,7 @@ werden.)
- Seit der Kern Version 2.2 zeigt netstat -i keine Schnittstellenstatistiken
- von Schnittstellenaliasen mehr an. Um Statistiken per Schnittstelle zur
- erhalten, m\(:ussen jetzt mit dem
--.BR ipchains(8)
-+.BR iptables(8)
- Befehl explizite Regeln zugef\(:ugt werden.
-
- .SH DATEIEN
-@@ -477,10 +479,7 @@ Befehl explizite Regeln zugef\(:ugt werden.
- .SH SIEHE AUCH
- .BR route (8),
- .BR ifconfig (8),
--.BR ipfw (4),
--.BR ipfw (8),
--.BR ipfwadm (8)
--.BR ipchains (8)
-+.BR iptables (8)
-
- .PP
- .SH PROBLEME
-diff --git a/man/de_DE/route.8 b/man/de_DE/route.8
-index a28c9d1..1a32712 100644
---- a/man/de_DE/route.8
-+++ b/man/de_DE/route.8
-@@ -55,7 +55,7 @@ Schnittstelle]
- .SH BESCHREIBUNG
- .B Route
- wird zum \(:Andern der IP-Routing-Tabelle der Kernels verwendet. Seine
--prim\(:are Verwendung ist statische Routen f\*:ur bestimmte Rechner oder
-+prim\(:are Verwendung ist statische Routen f\(:ur bestimmte Rechner oder
- Netzwerke \(:uber eine Schnittstelle einzutragen, nachdem diese mit dem
- Programm
- .BR ifconfig (8)
-diff --git a/man/en_US/arp.8 b/man/en_US/arp.8
-index d859b46..c065e22 100644
---- a/man/en_US/arp.8
-+++ b/man/en_US/arp.8
-@@ -1,56 +1,111 @@
--.TH ARP 8 "5 Jan 1999" "net-tools" "Linux Programmer's Manual"
-+.TH ARP 8 "2008\-10\-03" "net\-tools" "Linux System Administrator's Manual"
- .SH NAME
- arp \- manipulate the system ARP cache
- .SH SYNOPSIS
--.B arp
--.RB [ \-vn ]
--.RB [ "\-H type" ]
--.RB [ "-i if" ]
--.B -a
--.RB [ hostname ]
-+.B arp
-+.RB [ \-vn ]
-+.RB [ \-H
-+.IR type ]
-+.RB [ \-i
-+.IR if ]
-+.RB [ \-ae ]
-+.RI [ hostname ]
- .PP
--.B arp
-+.B arp
- .RB [ \-v ]
--.RB [ "\-i if" ]
--.B "\-d hostname"
-+.RB [ \-i
-+.IR if ]
-+.B \-d
-+.I hostname
- .RB [ pub ]
- .PP
--.B arp
--.RB [ \-v ]
--.RB [ "\-H type" ]
--.RB [ "\-i if" ]
--.B -s hostname hw_addr
--.RB [ temp ]
-+.B arp
-+.RB [ \-v ]
-+.RB [ \-H
-+.IR type ]
-+.RB [ \-i
-+.IR if ]
-+.B \-s
-+.I hostname hw_addr
-+.RB [ temp ]
- .PP
--.B arp
--.RB [ \-v ]
--.RB [ "\-H type" ]
--.RB [ "\-i if" ]
--.B -s hostname hw_addr
--.RB [ "netmask nm" ]
-+.B arp
-+.RB [ \-v ]
-+.RB [ \-H
-+.IR type ]
-+.RB [ \-i
-+.IR if ]
-+.B \-s
-+.I hostname hw_addr
-+.RB [ netmask
-+.IR nm ]
- .B pub
- .PP
--.B arp
--.RB [ \-v ]
--.RB [ "\-H type" ]
--.RB [ "\-i if" ]
--.B -Ds hostname ifa
--.RB [ "netmask nm" ]
-+.B arp
-+.RB [ \-v ]
-+.RB [ \-H
-+.IR type ]
-+.RB [ \-i
-+.IR if ]
-+.B \-Ds
-+.I hostname
-+.I ifname
-+.RB [ netmask
-+.IR nm ]
- .B pub
- .PP
--.B arp
-+.B arp
- .RB [ \-vnD ]
--.RB [ "\-H type" ]
--.RB [ "-i if" ]
--.B -f [filename]
-+.RB [ \-H
-+.IR type ]
-+.RB [ \-i
-+.IR if ]
-+.B \-f
-+.RI [ filename ]
-
- .SH DESCRIPTION
- .B Arp
--manipulates the kernel's ARP cache in various ways. The primary options
--are clearing an address mapping entry and manually setting up one. For
--debugging purposes, the
-+manipulates or displays the kernel's IPv4 network neighbour cache. It can add
-+entries to the table, delete one or display the current content.
-+
-+.B ARP
-+stands for Address Resolution Protocol, which is used to find the media
-+access control address of a network neighbour for a given IPv4 Address.
-+.SH MODES
- .B arp
--program also allows a complete dump of the ARP cache.
-+with no mode specifier will print the current content of the table. It is
-+possible to limit the number of entries printed, by specifying an hardware
-+address type, interface name or host address.
-+
-+.B arp -d
-+.I address
-+will delete a ARP table entry. Root or netadmin privilege is required to do
-+this. The entry is found by IP address. If a hostname is given, it will be
-+resolved before looking up the entry in the ARP table.
-+
-+.B arp -s
-+.I address hw_addr
-+is used to set up a new table entry. The format of the
-+.I hw_addr
-+parameter is dependent on the hardware class, but for most classes one can
-+assume that the usual presentation can be used. For the Ethernet class,
-+this is 6 bytes in hexadecimal, separated by colons. When adding proxy arp
-+entries (that is those with the
-+.BR pub lish
-+flag set) a
-+.B netmask
-+may be specified to proxy arp for entire subnets. This is not good
-+practice, but is supported by older kernels because it can be
-+useful. If the
-+.B temp
-+flag is not supplied entries will be permanent stored into the ARP
-+cache. To simplify setting up entries for one of your own network interfaces, you can use the
-+.B "arp \-Ds"
-+.I address ifname
-+form. In that case the hardware address is taken from the interface with the
-+specified name.
-+
-+.br
- .SH OPTIONS
- .TP
- .B "\-v, \-\-verbose"
-@@ -60,7 +115,7 @@ Tell the user what is going on by being verbose.
- shows numerical addresses instead of trying to determine symbolic host, port
- or user names.
- .TP
--.B "\-H type, \-\-hw-type type"
-+\fB\-H\fI type\fR, \fB\-\-hw\-type\fI type\fR, \fB\-t\fI type\fR
- When setting or reading the ARP cache, this optional parameter tells
- .B arp
- which class of entries it should check for. The default value of
-@@ -76,23 +131,18 @@ Other values might include network technologies such as
- and
- .RB "NET/ROM (" netrom ")."
- .TP
--.B "\-a [hostname], \-\-display [hostname]"
--Shows the entries of the specified hosts. If the
--.B hostname
--parameter is not used,
--.B all
--entries will be displayed.
-+.B \-a
-+Use alternate BSD style output format (with no fixed columns).
- .TP
--.B "\-d hostname, \-\-delete hostname"
--Remove any entry for the specified host. This can be used if the
--indicated host is brought down, for example.
-+.B \-e
-+Use default Linux style output format (with fixed columns).
- .TP
- .B "\-D, \-\-use-device"
--Use the interface
--.BR ifa "'s"
--hardware address.
-+Instead of a hw_addr, the given argument is the name of an interface.
-+.B arp
-+will use the MAC address of that interface for the table entry. This is usually the best option to set up a proxy ARP entry to yourself.
- .TP
--.B "\-i If, \-\-device If"
-+\fB\-i\fI If\fR, \fB\-\-device\fI If\fR
- Select an interface. When dumping the ARP cache only entries matching
- the specified interface will be printed. When setting a permanent or
- .B temp
-@@ -101,53 +151,36 @@ option is not used, the kernel will guess based on the routing
- table. For
- .B pub
- entries the specified interface is the interface on which ARP requests will
--be answered.
-+be answered.
- .br
- .B NOTE:
- This has to be different from the interface to which the IP
- datagrams will be routed.
--.TP
--.B "\-s hostname hw_addr, \-\-set hostname"
--Manually create an ARP address mapping entry for host
--.B hostname
--with hardware address set to
--.B hw_addr
--. The format of the hardware address is dependent on the hardware
--class, but for most classes one can assume that the usual presentation
--can be used. For the Ethernet class, this is 6 bytes in hexadecimal,
--separated by colons. When adding proxy arp entries (that is those with
--the
--.BR pub lish
--flag set a
--.B netmask
--may be specified to proxy arp for entire subnets. This is not good
--practice, but is supported by older kernels because it can be
--useful. If the
--.B temp
--flag is not supplied entries will be permanent stored into the ARP
--cache.
--.br
- .B NOTE:
--As of kernel 2.2.0 it is no longer possible to set an ARP entry for an
-+As of kernel 2.2.0 it is no longer possible to set an ARP entry for an
- entire subnet. Linux instead does automagic proxy arp when a route
--exists and it is forwarding. See
-+exists and it is forwarding. See
- .BR arp (7)
--for details.
-+for details. Also the
-+.B dontpub
-+option which is available for delete and set operations cannot be
-+used with 2.4 and newer kernels.
- .TP
--.B "\-f filename, \-\-file filename"
-+\fB\-f\fI filename\fR, \fB\-\-file\fI filename\fR
- Similar to the
- .B \-s
- option, only this time the address info is taken from file
--.B filename
--. This can be used if ARP entries for a lot of hosts have to be
-+.IR filename .
-+This can be used if ARP entries for a lot of hosts have to be
- set up. The name of the data file is very often
--.IR /etc/ethers ,
--but this is not official. If no filename is specified /etc/ethers
-+.IR /etc/ethers ,
-+but this is not official. If no filename is specified
-+.I /etc/ethers
- is used as default.
- .sp 1
- The format of the file is simple; it
- only contains ASCII text lines with a hostname, and a hardware
--address separated by whitespace. Additionally the
-+address separated by whitespace. Additionally the
- .BR "pub" , " temp" " and" " netmask"
- flags can be used.
- .LP
-@@ -157,9 +190,9 @@ is expected, one can also enter an
- .B "IP address"
- in dotted-decimal notation.
- .P
--As a special case for compatibility the order of the hostname and
-+As a special case for compatibility the order of the hostname and
- the hardware address can be exchanged.
--.LP
-+.LP
- Each complete entry in the ARP cache will be marked with the
- .B C
- flag. Permanent entries are marked with
-@@ -167,8 +200,18 @@ flag. Permanent entries are marked with
- and published entries have the
- .B P
- flag.
-+.SH EXAMPLES
-+.B /usr/sbin/arp -i eth0 -Ds 10.0.0.2 eth1 pub
-+
-+This will answer ARP requests for 10.0.0.2 on eth0 with the MAC address for
-+eth1.
-+
-+.B /usr/sbin/arp -i eth1 -d 10.0.0.1
-+
-+Delete the ARP table entry for 10.0.0.1 on interface eth1. This will match
-+published proxy ARP entries and permanent entries.
- .SH FILES
--.I /proc/net/arp,
-+.I /proc/net/arp
- .br
- .I /etc/networks
- .br
-@@ -178,5 +221,4 @@ flag.
- .SH SEE ALSO
- rarp(8), route(8), ifconfig(8), netstat(8)
- .SH AUTHORS
--Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> with a lot of improvements
--from net-tools Maintainer Bernd Eckenfels <net-tools@lina.inka.de>.
-+Fred N. van Kempen <waltje@uwalt.nl.mugnet.org>, Bernd Eckenfels <net\-tools@lina.inka.de>.
-diff --git a/man/en_US/ethers.5 b/man/en_US/ethers.5
-index f3ba116..5a02892 100644
---- a/man/en_US/ethers.5
-+++ b/man/en_US/ethers.5
-@@ -1,4 +1,4 @@
--.TH ETHERS 5 "April 26th, 1996" "" "File formats"
-+.TH ETHERS 5 "2008\-10\-03" "net\-tools" "Linux System Administrator's Manual"
- .SH NAME \"{{{roff}}}\"{{{
- ethers \- Ethernet address to IP number database
- .\"}}}
-@@ -7,17 +7,17 @@ ethers \- Ethernet address to IP number database
- IP numbers, one line for each IP number:
- .sp
- .RS
--\fIEthernet-address\fP \fIIP-number\fP
-+\fIEthernet\-address\fP \fIIP\-number\fP
- .RE
- .sp
--The two items are separated by any number of SPACE and/or TAB char
--acters. A \fB#\fP at the beginning of a line starts a comment
--which extends to the end of the line. The \fIEthernet-address\fP is
-+The two items are separated by any number of SPACE and/or TAB characters.
-+A \fB#\fP at the beginning of a line starts a comment
-+which extends to the end of the line. The \fIEthernet\-address\fP is
- written as
- .IR x : x : x : x : x : x ,
- where \fIx\fP is a hexadecimal number between \fB0\fP and \fBff\fP
- which represents one byte of the address, which is in network byte
--order (big-endian). The \fIIP-number\fP may be a hostname which
-+order (big-endian). The \fIIP\-number\fP may be a hostname which
- can be resolved by DNS or a dot separated number.
- .\"}}}
- .SH EXAMPLES \"{{{
-diff --git a/man/en_US/hostname.1 b/man/en_US/hostname.1
-index cea3f6e..c45b7b6 100644
---- a/man/en_US/hostname.1
-+++ b/man/en_US/hostname.1
-@@ -1,66 +1,60 @@
--.TH HOSTNAME 1 "28 Jan 1996" "net-tools" "Linux Programmer's Manual"
-+.TH HOSTNAME 1 "2013\-08\-29" "net\-tools" "Linux System Administrator's Manual"
-
- .SH NAME
- hostname \- show or set the system's host name
- .br
--domainname \- show or set the system's NIS/YP domain name
--.br
- dnsdomainname \- show the system's DNS domain name
- .br
--nisdomainname \- show or set system's NIS/YP domain name
-+domainname \- show or set the system's NIS/YP domain name
- .br
--ypdomainname \- show or set the system's NIS/YP domain name
-+nisdomainname \- show or set system's NIS/YP domain name
- .br
- nodename \- show or set the system's DECnet node name
-+.br
-+ypdomainname \- show or set the system's NIS/YP domain name
-
- .SH SYNOPSIS
- .B hostname
- .RB [ \-v ]
--.RB [ \-a ]
--.RB [ \-\-alias ]
--.RB [ \-d ]
--.RB [ \-\-domain ]
--.RB [ \-f ]
--.RB [ \-\-fqdn ]
--.RB [ \-i ]
--.RB [ \-\-ip-address ]
--.RB [ \-\-long ]
--.RB [ \-s ]
--.RB [ \-\-short ]
--.RB [ \-y ]
--.RB [ \-\-yp ]
--.RB [ \-\-nis ]
--.RB [ \-n ]
--.RB [ \-\-node ]
-+.RB [ \-s | \-\-short ]
-+
-+.PP
-+.B hostname
-+.RB [ \-v ]
-+.RB [ \-a | \-\-alias ]
-+.RB [ \-d | \-\-domain ]
-+.RB [ \-f | \-\-fqdn | \-\-long ]
-+.RB [ \-i | \-\-ip\-address ]
-+
-+.PP
-+.B hostname
-+.RB [ \-v ]
-+.RB [ \-y | \-\-yp | \-\-nis ]
-+.RB [ \-n | \-\-node ]
-
- .PP
- .B hostname
- .RB [ \-v ]
--.RB [ \-F\ filename ]
--.RB [ \-\-file\ filename ]
--.RB [ hostname ]
-+.RB [ \-F\ filename | \-\-file\ filename ]
-+.RI [ newname ]
-
- .PP
- .B domainname
- .RB [ \-v ]
--.RB [ \-F\ filename ]
--.RB [ \-\-file\ filename ]
--.RB [ name ]
-+.RB [ \-F\ filename | \-\-file\ filename ]
-+.RI [ newname ]
-
- .PP
- .B nodename
- .RB [ \-v ]
--.RB [ \-F\ filename ]
--.RB [ \-\-file\ filename ]
--.RB [ name ]
-+.RB [ \-F\ filename | \-\-file\ filename ]
-+.RI [ newname ]
-
- .PP
- .B hostname
--.RB [ \-v ]
--.RB [ \-h ]
--.RB [ \-\-help ]
--.RB [ \-V ]
--.RB [ \-\-version ]
-+.RB [ \-v | \-\-verbose ]
-+.RB [ \-h | \-\-help ]
-+.RB [ \-V | \-\-version ]
-
- .PP
- .B dnsdomainname
-@@ -124,12 +118,8 @@ command (see
- below).
-
- .LP
--The host name is usually set once at system startup in
--.I /etc/rc.d/rc.inet1
--or
--.I /etc/init.d/boot
--(normally by reading the contents of a file which contains
--the host name, e.g.
-+The host name is usually set once at system startup by reading the
-+contents of a file which contains the host name, e.g.
- .IR /etc/hostname ).
-
- .SS THE FQDN
-@@ -142,16 +132,17 @@ with this command. The FQDN of the system is the name that the
- returns for the host name.
-
- .LP
--Technically: The FQDN is the name
--.BR gethostbyname (2)
--returns for the host name returned by
--.BR gethostname (2).
--The DNS domain name is the part after the first dot.
-+Technically: The FQDN is the canonical name returned by
-+.BR gethostbyname2 (2)
-+when resolving the result of the
-+.BR gethostname (2)
-+name. The DNS domain name is the part after the first dot.
- .LP
- Therefore it depends on the configuration (usually in
- .IR /etc/host.conf )
--how you can change it. Usually (if the hosts file is parsed before DNS or
--NIS) you can change it in
-+how you can change it. If
-+.B hosts
-+is the first lookup method, you can change the FQDN in
- .IR /etc/hosts .
-
-
-@@ -161,27 +152,23 @@ NIS) you can change it in
- Display the alias name of the host (if used).
- .TP
- .I "\-d, \-\-domain"
--Display the name of the DNS domain. Don't use the command
--.B domainname
--to get the DNS domain name because it will show the NIS domain name and
--not the DNS domain name. Use
-+Display the name of the DNS domain (this is the FQDN without the segment up
-+to the first dot). This is equivalent to using the
- .B dnsdomainname
--instead.
-+command.
- .TP
- .I "\-F, \-\-file filename"
--Read the host name from the specified file. Comments (lines starting with
-+Read the new host name from the specified file. Comments (lines starting with
- a `#') are ignored.
- .TP
- .I "\-f, \-\-fqdn, \-\-long"
--Display the FQDN (Fully Qualified Domain Name). A FQDN consists of a
--short host name and the DNS domain name. Unless you are using bind or NIS
--for host lookups you can change the FQDN and the DNS domain name (which is
--part of the FQDN) in the \fI/etc/hosts\fR file.
-+Display the FQDN (Fully Qualified Domain Name). A FQDN consists of name
-+including the DNS domain.
- .TP
- .I "\-h, \-\-help"
- Print a usage message and exit.
- .TP
--.I "\-i, \-\-ip-address"
-+.I "\-i, \-\-ip\-address"
- Display the IP address(es) of the host.
- .TP
- .I "\-n, \-\-node"
-@@ -203,11 +190,13 @@ Display the NIS domain name. If a parameter is given (or
- .B \-\-file name
- ) then root can also set a new NIS domain.
- .SH FILES
-+.B /etc/hostname
- .B /etc/hosts
-+.B /etc/host.conf
-+
- .SH AUTHOR
--Peter Tobias, <tobias@et-inf.fho-emden.de>
-+Peter Tobias, <tobias@et\-inf.fho\-emden.de>
- .br
--Bernd Eckenfels, <net-tools@lina.inka.de> (NIS and manpage).
-+Bernd Eckenfels, <net\-tools@lina.inka.de> (NIS and manpage).
- .br
- Steve Whitehouse, <SteveW@ACM.org> (DECnet support and manpage).
--
-diff --git a/man/en_US/ifconfig.8 b/man/en_US/ifconfig.8
-index e75cf59..0243be3 100644
---- a/man/en_US/ifconfig.8
-+++ b/man/en_US/ifconfig.8
-@@ -1,10 +1,10 @@
--.TH IFCONFIG 8 "14 August 2000" "net-tools" "Linux Programmer's Manual"
-+.TH IFCONFIG 8 "2008\-10\-03" "net\-tools" "Linux System Administrator's Manual"
- .SH NAME
- ifconfig \- configure a network interface
- .SH SYNOPSIS
--.B "ifconfig [interface]"
-+.B "ifconfig [-v] [-a] [-s] [interface]"
- .br
--.B "ifconfig interface [aftype] options | address ..."
-+.B "ifconfig [-v] interface [aftype] options | address ..."
- .SH DESCRIPTION
- .B Ifconfig
- is used to configure the kernel-resident network interfaces. It is
-@@ -18,7 +18,7 @@ a single
- .B interface
- argument is given, it displays the status of the given interface
- only; if a single
--.B -a
-+.B \-a
- argument is given, it displays the status of all interfaces, even
- those that are down. Otherwise, it configures an interface.
-
-@@ -39,13 +39,34 @@ supported address families include
- (Novell IPX) and
- .B netrom
- (AMPR Packet radio).
-+All numbers supplied as parts in IPv4 dotted decimal notation may be decimal,
-+octal, or hexadecimal, as specified in the ISO C standard (that is, a leading 0x
-+or 0X implies hexadecimal; otherwise, a leading '0' implies octal; otherwise,
-+the number is interpreted as decimal). Use of hexadecimal and octal numbers
-+is not RFC-compliant and therefore its use is discouraged.
- .SH OPTIONS
- .TP
-+.B -a
-+display all interfaces which are currently available, even if down
-+.TP
-+.B -s
-+display a short list (like netstat -i)
-+.TP
-+.B -v
-+be more verbose for some error conditions
-+.TP
- .B interface
- The name of the interface. This is usually a driver name followed by
- a unit number, for example
- .B eth0
--for the first Ethernet interface.
-+for the first Ethernet interface. If your kernel supports alias interfaces,
-+you can specify them with
-+.B eth0:0
-+for the first alias of eth0. You can use them to assign a second address. To
-+delete an alias interface use
-+.BR "ifconfig eth0:0 down" .
-+Note: for every scope (i.e. same net with address/netmask combination) all
-+aliases are deleted, if you delete the first (primary).
- .TP
- .B up
- This flag causes the interface to be activated. It is implicitly
-@@ -69,9 +90,6 @@ Enable or disable
- mode. If selected, all multicast packets on the network will be
- received by the interface.
- .TP
--.B "metric N"
--This parameter sets the interface metric.
--.TP
- .B "mtu N"
- This parameter sets the Maximum Transfer Unit (MTU) of an interface.
- .TP
-@@ -92,7 +110,7 @@ Add an IPv6 address to an interface.
- .B "del addr/prefixlen"
- Remove an IPv6 address from an interface.
- .TP
--.B "tunnel aa.bb.cc.dd"
-+.B "tunnel ::aa.bb.cc.dd"
- Create a new SIT (IPv6-in-IPv4) device, tunnelling to the given destination.
- .TP
- .B "irq addr"
-@@ -122,13 +140,13 @@ are
- can be used to tell the driver to auto-sense the media. Again, not
- all drivers can do this.
- .TP
--.B "[-]broadcast [addr]"
-+.B "[\-]broadcast [addr]"
- If the address argument is given, set the protocol broadcast
- address for this interface. Otherwise, set (or clear) the
- .B IFF_BROADCAST
- flag for the interface.
- .TP
--.B "[-]pointopoint [addr]"
-+.B "[\-]pointopoint [addr]"
- This keyword enables the
- .B point-to-point
- mode of an interface, meaning that it is a direct link between two
-@@ -173,23 +191,40 @@ alias interfaces anymore. The statistics printed for the original address
- are shared with all alias addresses on the same device. If you want per-address
- statistics you should add explicit accounting
- rules for the address using the
--.BR ipchains(8)
-+.BR iptables (8)
- command.
- .LP
--Interrupt problems with Ethernet device drivers fail with EAGAIN. See
--.I http://cesdis.gsfc.nasa.gov/linux/misc/irq-conflict.html
-+Since net\-tools 1.60\-4 ifconfig is printing byte counters and human readable
-+counters with IEC 60027-2 units. So 1 KiB are 2^10 byte. Note, the numbers
-+are truncated to one decimal (which can by quite a large error if you
-+consider 0.1 PiB is 112.589.990.684.262 bytes :)
-+.LP
-+Interrupt problems with Ethernet device drivers fail with EAGAIN
-+.I (SIOCSIIFLAGS: Resource temporarily unavailable)
-+it is most likely a interrupt conflict. See
-+.I http://www.scyld.com/expert/irq\-conflict.html
- for more information.
- .SH FILES
--.I /proc/net/socket
--.br
- .I /proc/net/dev
- .br
- .I /proc/net/if_inet6
- .SH BUGS
-+Ifconfig uses the ioctl access method to get the full address information,
-+which limits hardware addresses to 8 bytes.
-+Because Infiniband hardware address has 20 bytes,
-+only the first 8 bytes are displayed correctly.
-+Please use
-+.B ip link
-+command from
-+.B iproute2
-+package to display link layer informations including the hardware address.
-+.LP
- While appletalk DDP and IPX addresses will be displayed they cannot be
- altered by this command.
- .SH SEE ALSO
--route(8), netstat(8), arp(8), rarp(8), ipchains(8)
-+route(8), netstat(8), arp(8), rarp(8), iptables(8), ifup(8), interfaces(5).
-+.br
-+http://physics.nist.gov/cuu/Units/binary.html - Prefixes for binary multiples
- .SH AUTHORS
- Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- .br
-@@ -198,3 +233,5 @@ Alan Cox, <Alan.Cox@linux.org>
- Phil Blundell, <Philip.Blundell@pobox.com>
- .br
- Andi Kleen
-+.br
-+Bernd Eckenfels, <net\-tools@lina.inka.de>
-diff --git a/man/en_US/mii-tool.8 b/man/en_US/mii-tool.8
-index 6b773ec..7decaac 100644
---- a/man/en_US/mii-tool.8
-+++ b/man/en_US/mii-tool.8
-@@ -1,13 +1,12 @@
- .\" Copyright (C) 2000 David A. Hinds -- dhinds@pcmcia.sourceforge.org
--.\" mii-tool.8 1.5 2000/04/25 22:58:19
- .\"
--.TH MII-TOOL 8 "2000/04/25 22:58:19" "net-tools"
-+.TH MII\-TOOL 8 "2013\-02\-15" "net\-tools" "Linux System Administrator's Manual"
-
- .SH NAME
--mii-tool \- view, manipulate media-independent interface status
-+mii\-tool \- view, manipulate media-independent interface status
-
- .SH SYNOPSIS
--.B mii-tool
-+.B mii\-tool
- [\fB\-v\fR, \fB\-\-verbose\fR]
- [\fB\-V\fR, \fB\-\-version\fR]
- [\fB\-R\fR, \fB\-\-reset\fR]
-@@ -16,7 +15,8 @@ mii-tool \- view, manipulate media-independent interface status
- [\fB\-l\fR, \fB\-\-log\fR]
- [\fB\-A\fR, \fB\-\-advertise=\fImedia,...\fR]
- [\fB\-F\fR, \fB\-\-force=\fImedia\fR]
--.RI [ "interface\ ..." ]
-+[\fB\-p\fR, \fB\-\-phy=\fIaddr\fR]
-+.RI "interface\ ..."
-
- .SH DESCRIPTION
- This utility checks or sets the status of a network interface's Media
-@@ -32,18 +32,21 @@ single-speed hubs, are unable to autonegotiate. To handle such
- devices, the MII protocol also allows for establishing a link by
- simply detecting either a 10baseT or 100baseT link beat. The \fB\-F\fR
- or \fB\-\-force\fR options can be used to force the MII to operate in
--one mode, instead of autonegotiating. The \fB\-A\fR and \fB-F\fR
-+one mode, instead of autonegotiating. The \fB\-A\fR and \fB\-F\fR
- options are mutually exclusive.
- .PP
- The default short output reports the negotiated link speed and link
--status for each interface. If an interface or interfaces are not
--specified on the command line, then \fBmii-tool\fR will check any
--available interfaces from \fBeth0\fR through \fBeth7\fR.
-+status for each interface.
- .SH OPTIONS
- .TP
- \fB\-v\fR, \fB\-\-verbose\fR
- Display more detailed MII status information. If used twice, also
- display raw MII register contents.
-+.br
-+\fBAlert:\fR If used three times, will force reading all MII
-+registers, including non standard ones. It's not guaranteed any
-+valid answer from PHY while PHY communication can even hang.
-+With driver e1000e will fail while reading register 0x07.
- .TP
- \fB\-V\fR, \fB\-\-version\fR
- Display program version information.
-@@ -59,7 +62,7 @@ Watch interface(s) and report changes in link status. The MII
- interfaces are polled at one second intervals.
- .TP
- \fB\-l\fR, \fB\-\-log\fR
--Used with \fB-w\fR, records link status changes in the system log
-+Used with \fB\-w\fR, records link status changes in the system log
- instead of printing on standard output.
- .TP
- \fB\-F\fI media\fR, \fB\-\-force=\fImedia\fR
-@@ -71,8 +74,31 @@ Enable and restart autonegotiation, and advertise only the specified
- media technologies. Multiple technologies should be separated by
- commas. Valid media are \fB100baseT4\fR, \fB100baseTx-FD\fR,
- \fB100baseTx-HD\fR, \fB10baseT-FD\fR, and \fB10baseT-HD\fR.
-+.TP
-+\fB\-p\fI addr\fR, \fB\-\-phy=\fIaddr\fR
-+Override the MII address provided by kernel with value \fBaddr\fR.
-+
-+.SH DIAGNOSTICS
-+.TP
-+SIOCGMIIPHY on 'eth?' failed: Invalid argument
-+If the interface is not running (up), kernel will refuse to report its link state.
-+.TP
-+SIOCGMIIPHY on 'eth?' failed: Operation not permitted
-+Most kernels restrict access to root.
-+.TP
-+SIOCGMIIPHY on 'eth?' failed: No such device
-+This error is shown, if the kernel does not know about the named device.
-+.TP
-+SIOCGMIIPHY on 'eth?' failed: Operation not supported
-+The interface in question does not support MII queries. Most likely, it does not have
-+MII transceivers, at all.
-
- .SH AUTHORS
- David Hinds \- dhinds@pcmcia.sourceforge.org
- .br
- Donald Becker \- becker@scyld.com
-+.br
-+Bernd Eckenfels \- net-tools@lina.inka.de
-+
-+.SH SEE ALSO
-+http://net-tools.sourceforge.net \- Homepage of the net-tools project
-diff --git a/man/en_US/nameif.8 b/man/en_US/nameif.8
-index ff2430f..195304d 100644
---- a/man/en_US/nameif.8
-+++ b/man/en_US/nameif.8
-@@ -1,10 +1,10 @@
--.TH NAMEIF 8 "18 Oct 2000" "net-tools" "Linux's Administrator's Manual"
-+.TH NAMEIF 8 "2008\-10\-03" "net\-tools" "Linux System Administrator's Manual"
- .SH NAME
- nameif \- name network interfaces based on MAC addresses
- .SH SYNOPSIS
--.B "nameif [-c configfile] [-s]"
-+.B "nameif [\-c configfile] [\-s]"
- .br
--.B "nameif [-c configfile] [-s] {interface macaddress}"
-+.B "nameif [\-c configfile] [\-s] {interface macaddress}"
- .SH DESCRIPTION
- .B nameif
- renames network interfaces based on mac addresses. When no arguments are
-@@ -18,11 +18,11 @@ looks for the interface with the given MAC address and renames it to the
- name given.
-
- When the
--.I -s
-+.I \-s
- argument is given all error messages go to the syslog.
-
- When the
--.I -c
-+.I \-c
- argument is given with a file name that file is read instead of /etc/mactab.
-
- .SH NOTES
-diff --git a/man/en_US/netstat.8 b/man/en_US/netstat.8
-index b33996a..3157dc4 100644
---- a/man/en_US/netstat.8
-+++ b/man/en_US/netstat.8
-@@ -6,9 +6,10 @@
- .\" Modified: Bernd.Eckenfels@inka.de
- .\" Modified: Andi Kleen ak@muc.de
- .\" Modified: Tuan Hoang tqhoang@bigfoot.com
-+.\" Modified: Brian Micek bmicek@gmail.com
- .\"
- .\"
--.TH NETSTAT 8 "19 December 2000" "net-tools" "Linux Programmer's Manual"
-+.TH NETSTAT 8 "2012\-09\-15" "net\-tools" "Linux System Administrator's Manual"
-
- .SH NAME
- netstat \- Print network connections, routing tables, interface statistics, masquerade connections, and multicast memberships
-@@ -19,17 +20,20 @@ netstat \- Print network connections, routing tables, interface statistics, masq
- .RI [ address_family_options ]
- .RB [ \-\-tcp | \-t ]
- .RB [ \-\-udp | \-u ]
-+.RB [ \-\-udplite | \-U ]
-+.RB [ \-\-sctp | \-S ]
- .RB [ \-\-raw | \-w ]
- .RB [ \-\-listening | \-l ]
- .RB [ \-\-all | \-a ]
- .RB [ \-\-numeric | \-n ]
--.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
-+.RB [ \-\-numeric\-hosts "] [" \-\-numeric\-ports "] [" \-\-numeric\-users ]
- .RB [ \-\-symbolic | \-N ]
- .RB [ \-\-extend | \-e [ \-\-extend | \-e] ]
- .RB [ \-\-timers | \-o ]
- .RB [ \-\-program | \-p ]
- .RB [ \-\-verbose | \-v ]
- .RB [ \-\-continuous | \-c]
-+.RB [ \-\-wide | \-W]
- .P
- .B netstat
- .RB { \-\-route | \-r }
-@@ -37,37 +41,38 @@ netstat \- Print network connections, routing tables, interface statistics, masq
- .RB [ \-\-extend | \-e [ \-\-extend | \-e] ]
- .RB [ \-\-verbose | \-v ]
- .RB [ \-\-numeric | \-n ]
--.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
-+.RB [ \-\-numeric\-hosts "] [" \-\-numeric\-ports "] [" \-\-numeric\-users ]
- .RB [ \-\-continuous | \-c]
- .P
- .B netstat
- .RB { \-\-interfaces | \-i }
--.RI [ iface ]
- .RB [ \-\-all | \-a ]
- .RB [ \-\-extend | \-e [ \-\-extend | \-e] ]
- .RB [ \-\-verbose | \-v ]
- .RB [ \-\-program | \-p ]
- .RB [ \-\-numeric | \-n ]
--.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
-+.RB [ \-\-numeric-hosts "] [" \-\-numeric-ports "] [" \-\-numeric-users ]
- .RB [ \-\-continuous | \-c]
- .P
- .B netstat
- .RB { \-\-groups | \-g }
- .RB [ \-\-numeric | \-n ]
--.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
-+.RB [ \-\-numeric\-hosts "] [" \-\-numeric\-ports "] [" \-\-numeric\-users ]
- .RB [ \-\-continuous | \-c]
- .P
- .B netstat
- .RB { \-\-masquerade | \-M }
- .RB [ \-\-extend | \-e ]
- .RB [ \-\-numeric | \-n ]
--.RB [ \-\-numeric-hosts ] [ \-\-numeric-ports ] [ \-\-numeric-ports ]
-+.RB [ \-\-numeric\-hosts "] [" \-\-numeric\-ports "] [" \-\-numeric\-users ]
- .RB [ \-\-continuous | \-c]
- .P
- .B netstat
- .RB { \-\-statistics | -s }
- .RB [ \-\-tcp | \-t ]
- .RB [ \-\-udp | \-u ]
-+.RB [ \-\-udplite | \-U ]
-+.RB [ \-\-sctp | \-S ]
- .RB [ \-\-raw | \-w ]
- .P
- .B netstat
-@@ -78,13 +83,26 @@ netstat \- Print network connections, routing tables, interface statistics, masq
- .P
- .IR address_family_options :
- .PP
--.RB [ \-\-protocol= { inet , unix , ipx , ax25 , netrom , ddp }[, ...] ]
-+.RB [ -4 | \-\-inet ]
-+.RB [ -6 | \-\-inet6 ]
-+.RB [ \-\-protocol= { inet , inet6 , unix , ipx , ax25 , netrom , ddp ", ... } ]"
- .RB [ \-\-unix | \-x ]
--.RB [ \-\-inet | \-\-ip ]
-+.RB [ \-\-inet | \-\-ip | \-\-tcpip ]
- .RB [ \-\-ax25 ]
-+.RB [ \-\-x25 ]
-+.RB [ \-\-rose ]
-+.RB [ \-\-ash ]
- .RB [ \-\-ipx ]
- .RB [ \-\-netrom ]
--.RB [ \-\-ddp ]
-+.RB [ \-\-ddp | \-\-appletalk ]
-+.RB [ \-\-econet | \-\-ec ]
-+
-+.SH NOTES
-+This program is obsolete.
-+Replacement for \fBnetstat\fR is \fBss\fR.
-+Replacement for \fBnetstat -r\fR is \fBip route\fR.
-+Replacement for \fBnetstat -i\fR is \fBip -s link\fR.
-+Replacement for \fBnetstat -g\fR is \fBip maddr\fR.
-
- .SH DESCRIPTION
- .B Netstat
-@@ -98,12 +116,17 @@ displays a list of open sockets. If you don't specify any
- address families, then the active sockets of all configured address
- families will be printed.
- .SS "\-\-route , \-r"
--Display the kernel routing tables.
-+Display the kernel routing tables. See the description in
-+.BR route (8)
-+for details.
-+.B netstat -r
-+and
-+.B route -e
-+produce the same output.
- .SS "\-\-groups , \-g"
- Display multicast group membership information for IPv4 and IPv6.
--.SS "\-\-interface=\fIiface \fR, \fB\-i"
--Display a table of all network interfaces, or the specified
--.IR iface ) .
-+.SS "\-\-interfaces, \-i"
-+Display a table of all network interfaces.
- .SS "\-\-masquerade , \-M"
- Display a list of masqueraded connections.
- .SS "\-\-statistics , \-s"
-@@ -112,16 +135,19 @@ Display summary statistics for each protocol.
- .SS "\-\-verbose , \-v"
- Tell the user what is going on by being verbose. Especially print some
- useful information about unconfigured address families.
-+.SS "\-\-wide , \-W"
-+Do not truncate IP addresses by using output as wide as needed. This is
-+optional for now to not break existing scripts.
- .SS "\-\-numeric , \-n"
- Show numerical addresses instead of trying to determine symbolic host, port
- or user names.
--.SS "\-\-numeric-hosts"
-+.SS "\-\-numeric\-hosts"
- shows numerical host addresses but does not affect the resolution of
- port or user names.
--.SS "\-\-numeric-ports"
-+.SS "\-\-numeric\-ports"
- shows numerical port numbers but does not affect the resolution of
- host or user names.
--.SS "\-\-numeric-users"
-+.SS "\-\-numeric\-users"
- shows numerical user IDs but does not affect the resolution of host or
- port names.
-
-@@ -131,15 +157,18 @@ protocols) for which connections are to be shown.
- .I family
- is a comma (',') separated list of address family keywords like
- .BR inet ,
-+.BR inet6 ,
- .BR unix ,
- .BR ipx ,
- .BR ax25 ,
- .BR netrom ,
-+.BR econet ,
- and
- .BR ddp .
- This has the same effect as using the
--.BR \-\-inet ,
--.BR \-\-unix " (" \-x ),
-+.BR \-\-inet | -4 ,
-+.BR \-\-inet6 | -6 ,
-+.BR \-\-unix | -x ,
- .BR \-\-ipx ,
- .BR \-\-ax25 ,
- .BR \-\-netrom ,
-@@ -149,7 +178,7 @@ options.
- .P
- The address family
- .B inet
--includes raw, udp and tcp protocol sockets.
-+(Iv4) includes raw, udp, udplite and tcp protocol sockets.
- .SS "\-c, \-\-continuous"
- This will cause
- .B netstat
-@@ -164,23 +193,24 @@ Show the PID and name of the program to which each socket belongs.
- Show only listening sockets. (These are omitted by default.)
- .SS "\-a, \-\-all"
- Show both listening and non-listening sockets. With the
--.B --interfaces
--option, show interfaces that are not marked
-+.B \-\-interfaces
-+option, show interfaces that are not up
- .SS "\-F"
- Print routing information from the FIB. (This is the default.)
- .SS "\-C"
- Print routing information from the route cache.
--.IR UP .
- .P
- .SH OUTPUT
- .P
--.SS Active Internet connections \fR(TCP, UDP, raw)\fR
-+.SS Active Internet connections \fR(TCP, UDP, UDPLite, raw)\fR
- .SS "Proto"
--The protocol (tcp, udp, raw) used by the socket.
--.SS "Recv-Q"
--The count of bytes not copied by the user program connected to this socket.
--.SS "Send-Q"
--The count of bytes not acknowledged by the remote host.
-+The protocol (tcp, udp, udpl, raw) used by the socket.
-+.SS "Recv\-Q"
-+Established: The count of bytes not copied by the user program connected to this socket.
-+Listening: Since Kernel 2.6.18 this column contains the current syn backlog.
-+.SS "Send\-Q"
-+Established: The count of bytes not acknowledged by the remote host.
-+Listening: Since Kernel 2.6.18 this column contains the maximum size of the syn backlog.
- .SS "Local Address"
- Address and port number of the local end of the socket. Unless the
- .BR \-\-numeric " (" \-n )
-@@ -192,7 +222,7 @@ Address and port number of the remote end of the socket.
- Analogous to "Local Address."
- .SS "State"
- The state of the socket. Since there are no states in raw mode and usually no
--states used in UDP, this column may be left blank. Normally this can be one
-+states used in UDP and UDPLite, this column may be left blank. Normally this can be one
- of several values:
- .TP
- .I
-@@ -221,7 +251,7 @@ TIME_WAIT
- The socket is waiting after close to handle packets still in the network.
- .TP
- .I
--CLOSED
-+CLOSE
- The socket is not being used.
- .TP
- .I
-@@ -255,7 +285,7 @@ The username or the user id (UID) of the owner of the socket.
- .SS "PID/Program name"
- Slash-separated pair of the process id (PID) and process name of the
- process that owns the socket.
--.B --program
-+.B \-\-program
- causes this column to be included. You will also need
- .I superuser
- privileges to see this information on sockets you don't own. This
-@@ -356,13 +386,6 @@ to the socket.
- .SS Active AX.25 sockets
- (this needs to be done by somebody who knows it)
- .PP
--.SH NOTES
--Starting with Linux release 2.2
--.B netstat -i
--does not show interface statistics for alias interfaces. To get per
--alias interface counters you need to setup explicit rules using the
--.BR ipchains(8)
--command.
-
- .SH FILES
- .ta
-@@ -385,6 +408,9 @@ status information via the following files.
- .I /proc/net/udp
- -- UDP socket information
-
-+.I /proc/net/udplite
-+-- UDPLite socket information
-+
- .I /proc/net/igmp
- -- IGMP multicast information
-
-@@ -428,9 +454,10 @@ status information via the following files.
- .SH SEE ALSO
- .BR route (8),
- .BR ifconfig (8),
--.BR ipchains (8),
- .BR iptables (8),
- .BR proc (5)
-+.BR ss (8)
-+.BR ip (8)
- .P
- .SH BUGS
- Occasionally strange information may appear if a socket changes
-@@ -438,12 +465,10 @@ as it is viewed. This is unlikely to occur.
- .P
- .SH AUTHORS
- The netstat user interface was written by Fred Baumgarten
--<dc6iq@insu1.etec.uni-karlsruhe.de> the man page basically
-+<dc6iq@insu1.etec.uni\-karlsruhe.de>, the man page basically
- by Matt Welsh <mdw@tc.cornell.edu>. It was updated by
--Alan Cox <Alan.Cox@linux.org> but could do with a bit more
--work. It was updated again by Tuan Hoang
--<tqhoang@bigfoot.com>.
--.br
--The man page and the command included in the net-tools
--package is totally rewritten by Bernd Eckenfels
--<ecki@linux.de>.
-+Alan Cox <Alan.Cox@linux.org>, updated again by Tuan Hoang
-+<tqhoang@bigfoot.com>. The man page and the command included
-+in the net\-tools package is totally rewritten by Bernd Eckenfels
-+<ecki@linux.de>. UDPLite options were added by Brian Micek
-+<bmicek@gmail.com>
-diff --git a/man/en_US/plipconfig.8 b/man/en_US/plipconfig.8
-index c6d2567..d42a0bc 100644
---- a/man/en_US/plipconfig.8
-+++ b/man/en_US/plipconfig.8
-@@ -1,10 +1,18 @@
--.TH PLIPCONFIG 8 "17 February 1995" "" ""
-+.TH PLIPCONFIG 8 "2008\-10\-03" "net\-tools" "Linux System Administrator's Manual"
- .SH NAME
- plipconfig \- fine tune PLIP device parameters
- .SH SYNOPSIS
--.B "plipconfig interface"
-+.B plipconfig interface
-+.RB [ nibble
-+.IR NN ]
-+.RB [ trigger
-+.IR NN ]
- .br
--.B "plipconfig interface [nibble NN] [trigger NN] [unit NN]"
-+.B plipconfig
-+.RB [ \-V ]
-+.RB [ \-\-version ]
-+.RB [ \-h ]
-+.RB [ \-\-help ]
- .SH DESCRIPTION
- .B Plipconfig
- is used to (hopefully) improve PLIP performance by changing the default
-diff --git a/man/en_US/rarp.8 b/man/en_US/rarp.8
-index e462799..d9d31f9 100644
---- a/man/en_US/rarp.8
-+++ b/man/en_US/rarp.8
-@@ -1,20 +1,20 @@
--.TH RARP 8 "4 August 1997" "net-tools" "Linux Programmer's Manual"
-+.TH RARP 8 "2008\-10\-03" "net\-tools" "Linux System Administrator's Manual"
- .SH NAME
- rarp \- manipulate the system RARP table
- .SH SYNOPSIS
--.B "rarp [-V] [--version] [-h] [--help]"
-+.B "rarp [\-V] [\-\-version] [\-h] [\-\-help]"
- .br
--.B "rarp -a"
-+.B "rarp \-a"
- .br
--.B "rarp [-v] -d hostname ..."
-+.B "rarp [\-v] \-d hostname ..."
- .br
--.B "rarp [-v] [-t type] -s hostname hw_addr"
-+.B "rarp [\-v] [\-t type] \-s hostname hw_addr"
- .SH NOTE
- .P
- This program is obsolete. From version 2.3, the Linux kernel
- no longer contains RARP support. For a replacement RARP daemon, see
- .I
--ftp://ftp.dementia.org/pub/net-tools
-+ftp://ftp.dementia.org/pub/net\-tools
- .SH DESCRIPTION
- .B Rarp
- manipulates the kernel's RARP table in various ways. The primary options
-@@ -61,8 +61,8 @@ Remove all RARP entries for the specified host.
- Create a RARP address mapping entry for host
- .B hostname
- with hardware address set to
--.B hw_addr
--. The format of the hardware address is dependent on the hardware
-+.BR hw_addr .
-+The format of the hardware address is dependent on the hardware
- class, but for most classes one can assume that the usual presentation
- can be used. For the Ethernet class, this is 6 bytes in hexadecimal,
- separated by colons.
-diff --git a/man/en_US/route.8 b/man/en_US/route.8
-index f59c074..19895e9 100644
---- a/man/en_US/route.8
-+++ b/man/en_US/route.8
-@@ -1,57 +1,62 @@
--.TH ROUTE 8 "2 January 2000" "net-tools" "Linux Programmer's Manual"
-+.TH ROUTE 8 "2014\-02\-17" "net\-tools" "Linux System Administrator's Manual"
- .SH NAME
- route \- show / manipulate the IP routing table
- .SH SYNOPSIS
- .B route
--.RB [ \-CFvnee ]
-+.RB [ \-CFvnNee ]
-+.RB [ \-A
-+family
-+.RB | \-4 | \-6 ]
- .TP
- .B route
- .RB [ \-v ]
- .RB [ \-A
--family]
-+family
-+.RB | \-4 | \-6 ]
- .B add
- .RB [ \-net | \-host ]
--target
-+.I target
- .RB [ netmask
--Nm]
-+.IR Nm ]
- .RB [ gw
--Gw]
-+.IR Gw ]
- .RB [ metric
--N]
-+.IR N ]
- .RB [ mss
--M]
-+.IR M ]
- .RB [ window
--W]
-+.IR W ]
- .RB [ irtt
--I]
-+.IR I ]
- .RB [ reject ]
- .RB [ mod ]
- .RB [ dyn ]
- .RB [ reinstate ]
- .RB [[ dev ]
--If]
-+.IR If ]
- .TP
- .B route
- .RB [ \-v ]
- .RB [ \-A
--family]
-+.I family
-+.RB | \-4 | \-6 ]
- .B del
- .RB [ \-net | \-host ]
--target
-+.I target
- .RB [ gw
--Gw]
-+.IR Gw ]
- .RB [ netmask
--Nm]
-+.IR Nm ]
- .RB [ metric
--N]
-+.IR M ]
- .RB [[ dev ]
--If]
-+.IR If ]
- .TP
- .B route
- .RB [ \-V ]
- .RB [ \-\-version ]
- .RB [ \-h ]
--.RB [ \--help ]
-+.RB [ \-\-help ]
- .SH DESCRIPTION
- .B Route
- manipulates the kernel's IP routing tables. Its primary use is to set
-@@ -72,19 +77,27 @@ displays the current contents of the routing tables.
-
- .SH OPTIONS
- .TP
--.B \-A family
--use the specified address family (eg `inet'; use `route --help' for a full
--list).
-+\fB\-A \fIfamily\fR
-+use the specified address family (eg `inet'). Use
-+.B route \-\-help
-+for a full list. You can use
-+.B \-6
-+as an alias for
-+.B \-\-inet6
-+and
-+.B \-4
-+as an alias for
-+.B \-A inet
-+.
-
- .TP
--.B -F
-+.B \-F
- operate on the kernel's FIB (Forwarding Information Base) routing
- table.
- This is the default.
- .TP
--.B -C
-+.B \-C
- operate on the kernel's routing cache.
--
- .TP
- .B \-v
- select verbose operation.
-@@ -96,11 +109,10 @@ nameserver has vanished.
- .TP
- .B \-e
- use
--.BR netstat (8)-format
-+.BR netstat (8)\-format
- for displaying the routing table.
- .B \-ee
- will generate a very long line with all parameters from the routing table.
--
- .TP
- .B del
- delete a route.
-@@ -108,25 +120,27 @@ delete a route.
- .B add
- add a new route.
- .TP
--.B target
--the destination network or host. You can provide IP addresses in dotted
--decimal or host/network names.
-+.I target
-+the destination network or host. You can provide an addresses or symbolic
-+network or host name. Optionally you can use \fB/\fIprefixlen\fR notation
-+instead of using the \fBnetmask\fR option.
- .TP
- .B \-net
- the
--.B target
-+.I target
- is a network.
- .TP
--.B -host
-+.B \-host
- the
--.B target
-+.I target
- is a host.
- .TP
--.B netmask NM
-+\fBnetmask \fINM\fR
- when adding a network route, the netmask to be used.
- .TP
--.B gw GW
-+\fBgw \fIGW\fR
- route packets via a gateway.
-+.br
- .B NOTE:
- The specified gateway must be reachable first. This usually means that
- you have to set up a static route to the gateway beforehand. If you specify
-@@ -134,91 +148,94 @@ the address of one of your local interfaces, it will be used to decide about
- the interface to which the packets should be routed to. This is a BSDism
- compatibility hack.
- .TP
--.B metric M
--set the metric field in the routing table (used by routing daemons) to M.
-+\fBmetric \fIM\fR
-+set the metric field in the routing table (used by routing daemons) to \fIM\fR. If this option is not specified the metric for inet6 (IPv6) address family defaults to '1', for inet (IPv4) it defaults to '0'. You should always specify an explicit metric value to not rely on those defaults - they also differ from iproute2.
- .TP
--.B mss M
--set the TCP Maximum Segment Size (MSS) for connections over this route
--to M bytes.
--The default is the device MTU minus headers, or a lower MTU when path mtu
--discovery occured. This setting can be used to force smaller TCP packets on the
--other end when path mtu discovery does not work (usually because of
--misconfigured firewalls that block ICMP Fragmentation Needed)
-+\fBmss \fIM\fR
-+sets MTU (Maximum Transmission Unit) of the route to \fIM\fR bytes.
-+Note that the current implementation of the route command does not allow
-+the option to set the Maximum Segment Size (MSS).
- .TP
--.B window W
--set the TCP window size for connections over this route to W
-+\fBwindow \fIW\fR
-+set the TCP window size for connections over this route to \fIW\fR
- bytes. This is typically only used on AX.25 networks and with drivers
- unable to handle back to back frames.
- .TP
--.B irtt I
-+\fBirtt \fII\fR
- set the initial round trip time (irtt) for TCP connections over this
--route to I milliseconds (1-12000). This is typically only used on
-+route to \fII\fR milliseconds (1-12000). This is typically only used on
- AX.25 networks. If omitted the RFC 1122 default of 300ms is used.
- .TP
- .B reject
- install a blocking route, which will force a route lookup to fail.
- This is for example used to mask out networks before using the default
--route. This is NOT for firewalling.
-+route. This is NOT for firewalling.
- .TP
- .B mod, dyn, reinstate
- install a dynamic or modified route. These flags are for diagnostic
- purposes, and are generally only set by routing daemons.
- .TP
--.B dev If
-+\fBdev \fIIf\fR
- force the route to be associated with the specified device, as the
- kernel will otherwise try to determine the device on its own (by
- checking already existing routes and device specifications, and where
- the route is added to). In most normal networks you won't need this.
-
--If
--.B dev If
-+If \fBdev \fIIf\fR
- is the last option on the command line, the word
- .B dev
- may be omitted, as it's the default. Otherwise the order of the route
--modifiers (metric - netmask - gw - dev) doesn't matter.
-+modifiers (\fBmetric netmask gw dev\fR) doesn't matter.
-
- .SH EXAMPLES
- .TP
--.B route add -net 127.0.0.0
--adds the normal loopback entry, using netmask 255.0.0.0 (class A net,
--determined from the destination address) and associated with the
--"lo" device (assuming this device was prviously set up correctly with
-+.B route add \-net 127.0.0.0 netmask 255.0.0.0 metric 1024 dev lo
-+adds the normal loopback entry, using netmask 255.0.0.0 and associated with the
-+"lo" device (assuming this device was previously set up correctly with
- .BR ifconfig (8)).
-
- .TP
--.B route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
--adds a route to the network 192.56.76.x via
--"eth0". The Class C netmask modifier is not really necessary here because
--192.* is a Class C IP address. The word "dev" can be omitted here.
-+.B route add \-net 192.56.76.0 netmask 255.255.255.0 metric 1024 dev eth0
-+adds a route to the local network 192.56.76.x via
-+"eth0". The word "dev" can be omitted here.
-
- .TP
--.B route add default gw mango-gw
-+.B route del default
-+deletes the current default route, which is labeled "default" or 0.0.0.0
-+in the destination field of the current routing table.
-+
-+.TP
-+.B route add default gw mango
- adds a default route (which will be used if no other route matches).
--All packets using this route will be gatewayed through "mango-gw". The
-+All packets using this route will be gatewayed through the address of a node
-+named "mango". The
- device which will actually be used for that route depends on how we
--can reach "mango-gw" - the static route to "mango-gw" will have to be
--set up before.
-+can reach "mango" - "mango" must be on directly reachable route.
-
- .TP
--.B route add ipx4 sl0
--Adds the route to the "ipx4" host via the SLIP interface (assuming that
--"ipx4" is the SLIP host).
-+.B route add mango sl0
-+Adds the route to the host named "mango" via the SLIP interface (assuming that
-+"mango" is the SLIP host).
-
- .TP
--.B route add -net 192.57.66.0 netmask 255.255.255.0 gw ipx4
-+.B route add \-net 192.57.66.0 netmask 255.255.255.0 gw mango
- This command adds the net "192.57.66.x" to be gatewayed through the former
- route to the SLIP interface.
-
- .TP
--.B route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
-+.B route add \-net 224.0.0.0 netmask 240.0.0.0 dev eth0
- This is an obscure one documented so people know how to do it. This sets
- all of the class D (multicast) IP routes to go via "eth0". This is the
- correct normal configuration line with a multicasting kernel.
-
- .TP
--.B route add -net 10.0.0.0 netmask 255.0.0.0 reject
-+.B route add \-net 10.0.0.0 netmask 255.0.0.0 metric 1024 reject
- This installs a rejecting route for the private network "10.x.x.x."
-
-+.TP
-+.B route -6 add 2001:0002::/48 metric 1 dev eth0
-+This adds a IPv6 route with the specified metric to be directly reachable via eth0.
-+
- .LP
- .SH OUTPUT
- The output of the kernel routing table is organized in the following columns
-@@ -275,21 +292,20 @@ entry)
- route)
- .TP
- .B Metric
--The 'distance' to the target (usually counted in hops). It is not used by
--recent kernels, but may be needed by routing daemons.
-+The 'distance' to the target (usually counted in hops).
- .TP
- .B Ref
- Number of references to this route. (Not used in the Linux kernel.)
- .TP
- .B Use
--Count of lookups for the route. Depending on the use of -F and -C this will
--be either route cache misses (-F) or hits (-C).
-+Count of lookups for the route. Depending on the use of \-F and \-C this will
-+be either route cache misses (\-F) or hits (\-C).
- .TP
- .B Iface
- Interface to which packets for this route will be sent.
- .TP
- .B MSS
--Default maximum segement size for TCP connections over this route.
-+Default maximum segment size for TCP connections over this route.
- .TP
- .B Window
- Default window size for TCP connections over this route.
-@@ -313,8 +329,12 @@ Whether or not the hardware address for the cached route is up to date.
- .br
- .I /proc/net/rt_cache
- .LP
--.SH SEE ALSO
--.I ifconfig(8), netstat(8), arp(8), rarp(8)
-+.SH "SEE ALSO"
-+.IR ifconfig (8),
-+.IR netstat (8),
-+.IR arp (8),
-+.IR rarp (8),
-+.IR ip (8)
- .LP
- .SH HISTORY
- .B Route
-@@ -323,4 +343,4 @@ for Linux was originally written by Fred N. van Kempen,
- Linus Torvalds for pl15. Alan Cox added the mss and window options for
- Linux 1.1.22. irtt support and merged with netstat from Bernd Eckenfels.
- .SH AUTHOR
--Currently maintained by Phil Blundell <Philip.Blundell@pobox.com>.
-+Currently maintained by Phil Blundell <Philip.Blundell@pobox.com> and Bernd Eckenfels <net-tools@lina.inka.de>.
-diff --git a/man/en_US/slattach.8 b/man/en_US/slattach.8
-index 0c4c863..0e2cfcc 100644
---- a/man/en_US/slattach.8
-+++ b/man/en_US/slattach.8
-@@ -1,8 +1,8 @@
--.TH SLATTACH 8 "12 Feb 1994" "" ""
-+.TH SLATTACH 8 "2011\-12\-31" "net\-tools" "Linux System Administrator's Manual"
- .SH NAME
- slattach \- attach a network interface to a serial line
- .SH SYNOPSIS
--.B "slattach [-dehlLmnqv] [-c command] [-p proto] [-s speed] [tty]"
-+.B "slattach [\-dehlLmnqv] [\-c command] [\-p proto] [\-s speed] [tty]"
- .br
- .SH DESCRIPTION
- .B Slattach
-@@ -11,47 +11,53 @@ is a tiny little program that can be used to put a normal terminal
- you to use it for point-to-point links to other computers.
- .SH OPTIONS
- .TP
--.B "[-c command]"
-+.B tty
-+Path to a serial device like
-+.IR /dev/ttyS* ", " /dev/cua* " or " /dev/ptmx
-+to spawn a new pseudo tty.
-+.TP
-+.B "[\-c command]"
- Execute
- .B command
- when the line is hung up. This can be used to run scripts or re-establish
- connections when a link goes down.
- .TP
--.B "[-d]"
-+.B "[\-d]"
- Enable debugging output. Useful when determining why a given
- setup doesn't work.
- .TP
--.B "[-h]"
-+.B "[\-h]"
- Exit when the carrier is lost. This works on both /dev/tty and /dev/cua
- devices by directly monitoring the carrier status every 15 seconds.
--.B "[-v]"
-+.TP
-+.B "[\-v]"
- Enable verbose output. Useful in shell scripts.
- .TP
--.B "[-q]"
-+.B "[\-q]"
- Operate in quiet mode - no messages at all.
- .TP
--.B "[-l]"
-+.B "[\-l]"
- Create an UUCP-style lockfile for the device in /var/lock.
- .TP
--.B "[-n]"
-+.B "[\-n]"
- Equivalent to the "mesg n" command.
- .TP
--.B "[-m]"
-+.B "[\-m]"
- Do \fBnot\fP initialize the line into 8 bits raw mode.
- .TP
--.B "[-e]"
-+.B "[\-e]"
- Exit right after initializing device, instead of waiting for the
--line to hangup.
-+line to hang up.
- .TP
--.B "[-L]"
-+.B "[\-L]"
- Enable 3 wire operation. The terminal is moved into CLOCAL mode,
- carrier watching is disabled.
- .TP
--.B "[-p proto]"
-+.B "[\-p proto]"
- Set a specific kind of protocol to use on the line. The default
- is set to
--.B "cslip"
--, i.e. compressed SLIP. Other possible values are
-+.BR "cslip" ,
-+i.e. compressed SLIP. Other possible values are
- .B "slip"
- (normal SLIP),
- .B "adaptive"
-@@ -70,14 +76,14 @@ to be active on the line. For kiss connections the
- .B axattach
- program should be used.
- .TP
--.B "[-s speed]"
-+.B "[\-s speed]"
- Set a specific line speed, other than the default.
- .PP
- If no arguments are given, the current terminal line (usually: the
- login device) is used. Otherwise, an attempt is made to claim the
- indicated terminal port, lock it, and open it.
- .SH FILES
--.I /dev/cua* /var/lock/LCK.*
-+.I /dev/cua* /var/lock/LCK.* /dev/ttyS* /dev/ptmx
- .SH BUGS
- None known.
- .SH SEE ALSO
-diff --git a/man/fr_FR/arp.8 b/man/fr_FR/arp.8
-index df37e8b..a669469 100644
---- a/man/fr_FR/arp.8
-+++ b/man/fr_FR/arp.8
-@@ -1,32 +1,32 @@
--.TH ARP 8 "5 Jan 1999" "net-tools" "Linux Programmer's Manual"
-+.TH ARP 8 "5 Jan 1999" "net-tools" "Linux Administrator's Manual"
- .SH NOM
--arp \- manipule la table ARP du systme
-+arp \- manipule la table ARP du système
- .SH SYNOPSIS
- .B arp
- .RB [ \-vn ]
- .RB [ "\-H type" ]
- .RB [ "-i if" ]
- .B -a
--.RB [ nom_hte ]
-+.RB [ nom_hôte ]
- .PP
- .B arp
- .RB [ \-v ]
- .RB [ "\-i if" ]
--.B "\-d nom_hte"
-+.B "\-d nom_hôte"
- .RB [ pub ]
- .PP
- .B arp
- .RB [ \-v ]
- .RB [ "\-H type" ]
- .RB [ "\-i if" ]
--.B -s nom_hte hw_addr
-+.B -s nom_hôte hw_addr
- .RB [ temp ]
- .PP
- .B arp
- .RB [ \-v ]
- .RB [ "\-H type" ]
- .RB [ "\-i if" ]
--.B -s nom_hte hw_addr
-+.B -s nom_hôte hw_addr
- .RB [ "netmask nm" ]
- .B pub
- .PP
-@@ -34,7 +34,7 @@ arp \- manipule la table ARP du syst
- .RB [ \-v ]
- .RB [ "\-H type" ]
- .RB [ "\-i if" ]
--.B -Ds nom_hte ifa
-+.B -Ds nom_hôte ifa
- .RB [ "netmask nm" ]
- .B pub
- .PP
-@@ -46,33 +46,33 @@ arp \- manipule la table ARP du syst
-
- .SH DESCRIPTION
- .B Arp
--manipule la table ARP du noyau de diffrentes faons. Les options principales
--permettent d'effacer une correspondance d'adresses et d'en dfinir
-+manipule la table ARP du noyau de différentes façons. Les options principales
-+permettent d'effacer une correspondance d'adresses et d'en définir
- une manuellement.
--Pour les besoins de dbogage, le programme
-+Pour les besoins de débogage, le programme
- .B arp
- permet aussi d'effectuer un dump complet de la table ARP.
- .SH OPTIONS
- .TP
- .B "\-v, \-\-verbose"
--Dit l'utilisateur ce qui se passe en tant verbeux.
-+Dit à l'utilisateur ce qui se passe en étant verbeux.
- .TP
- .B "\-n, \-\-numeric"
--Affiche les adresses numriques au lieu d'essayer de dterminer les nom
--d'htes symboliques.
-+Affiche les adresses numériques au lieu d'essayer de déterminer les nom
-+d'hôtes symboliques.
- .TP
- .B "\-H type, \-\-hw-type type"
--En positionnant ou lisant les entres ARP, ce paramtre optionnel indique
--
-+En positionnant ou lisant les entrées ARP, ce paramètre optionnel indique
-+à
- .B arp
--les classes d'entres qu'il doit contrler. La valeur par dfaut de
--ce paramtre est
-+les classes d'entrées qu'il doit contrôler. La valeur par défaut de
-+ce paramètre est
- .B ether
--(i.e. code de matriel
-+(i.e. code de matériel
- .B 0x01
- pour
- .B "IEEE 802.3 10Mbps Ethernet".
--D'autres valeurs doivent correspondre des technologies rseaux telles que
-+D'autres valeurs doivent correspondre à des technologies réseaux telles que
- .RB "ARCnet (" arcnet ")"
- ,
- .RB "PROnet (" pronet ")"
-@@ -81,89 +81,89 @@ D'autres valeurs doivent correspondre
- and
- .RB "NET/ROM (" netrom ")."
- .TP
--.B "\-a [nom_d_hte], \-\-display [nom_d_hte]"
--Affiche les entres concernant l'hte spcifi. Si le paramtre
--.B nom_d_hte
--n'est pas utilis,
-+.B "\-a [nom_d_hôte], \-\-display [nom_d_hôte]"
-+Affiche les entrées concernant l'hôte spécifié. Si le paramètre
-+.B nom_d_hôte
-+n'est pas utilisé,
- .B toutes
--les entres seront affiches.
-+les entrées seront affichées.
- .TP
--.B "\-d nom_d_hte, \-\-delete nom_d_hte"
--Enlve une entre pour l'hte spcifi. Ceci peut tre
--utilis si l'hte concern ne fonctionne plus, par exemple.
-+.B "\-d nom_d_hôte, \-\-delete nom_d_hôte"
-+Enlève une entrée pour l'hôte spécifié. Ceci peut être
-+utilisé si l'hôte concerné ne fonctionne plus, par exemple.
- .TP
- .B "\-D, \-\-use-device"
--Utilise l'adresse matrielle de l'interface
-+Utilise l'adresse matérielle de l'interface
- .BR ifa
- .
- .TP
- .B "\-i If, \-\-device If"
--Slectionne une interface. Lors du dump du cache ARP, seules les entres
--correspondant l'interface spcifie seront affiches. Lorsque l'on dfinit
--une entre permanente ou une entre
-+Sélectionne une interface. Lors du dump du cache ARP, seules les entrées
-+correspondant à l'interface spécifiée seront affichées. Lorsque l'on définit
-+une entrée permanente ou une entrée
- .B temp
--, cette interface lui sera associe; si cette option n'est pas utilise,
--le noyau fera des tentatives de rsolution selon la table de routage. Pour
--les entres
-+, cette interface lui sera associée; si cette option n'est pas utilisée,
-+le noyau fera des tentatives de résolution selon la table de routage. Pour
-+les entrées
- .B pub
--l'interface spcifie est celle pour laquelle les requtes ARP auront trouv
--une rponse.
-+l'interface spécifiée est celle pour laquelle les requêtes ARP auront trouvé
-+une réponse.
- .br
- .B NOTE:
--Ceci est diffrent de l'interface vers laquelle les datagrammes IP seront routs.
-+Ceci est différent de l'interface vers laquelle les datagrammes IP seront routés.
- .TP
--.B "\-s nom_d_hte hw_addr, \-\-set hostname hw_addr"
--Cre manuellement une correspondance d'adresses ARP pour l'hte
--.B nom_d_hte
--avec l'adresse matrielle positionne
-+.B "\-s nom_d_hôte hw_addr, \-\-set hostname hw_addr"
-+Crée manuellement une correspondance d'adresses ARP pour l'hôte
-+.B nom_d_hôte
-+avec l'adresse matérielle positionnée à
- .B hw_addr.
--Le format de l'adresse matrielle est dpendant de la classe du matriel,
--mais pour la plupart on peut considrer que la prsentation classique
--peut tre utilise. Pour la classe Ethernet, c'est 6 octets en hexadcimal,
--spars par des double-points. Pour ajouter des entres proxy-arp
-+Le format de l'adresse matérielle est dépendant de la classe du matériel,
-+mais pour la plupart on peut considérer que la présentation classique
-+peut être utilisée. Pour la classe Ethernet, c'est 6 octets en hexadécimal,
-+séparés par des double-points. Pour ajouter des entrées proxy-arp
- (Ce sont celles avec l'indicateur
- .BR pub lish
--positionn)
--un masque rseau (
-+positionné)
-+un masque réseau (
- .B netmask
--) peut tre spcifi au proxy-arp pour le
--sous-rseau entier. Ceci n'est pas trs recommand, mais est support par
-+) peut être spécifié au proxy-arp pour le
-+sous-réseau entier. Ceci n'est pas très recommandé, mais est supporté par
- les anciens noyaux, car c'est utile dans certains cas. Si l'indicateur
- .B temp
--n'est pas fourni, les entres ARP seront permanentes.
-+n'est pas fourni, les entrées ARP seront permanentes.
- .br
- .B NOTE:
--A partir du noyau 2.2.0 il n'est plus possible de dfinir des entres ARP
--pour un sous rseau entier.
-+A partir du noyau 2.2.0 il n'est plus possible de définir des entrées ARP
-+pour un sous réseau entier.
- .TP
- .B "\-f nom_de_fichier, \-\-file nom_de_fichier"
--Similaire l'option
-+Similaire à l'option
- .B \-s
- , mais cette fois les informations d'adresses sont prises dans le fichier
--.B nom_de_fichier
--. Ceci peut tre utilis si les entres ARP configurer sont
--nombreuses. Le nom du fichier de donnes est trs souvent nomm
-+.BR nom_de_fichier .
-+Ceci peut être utilisé si les entrées ARP à configurer sont
-+nombreuses. Le nom du fichier de données est très souvent nommé
- .B /etc/ethers
- , mais ce n'est pas officiel.
- .sp 1
- Le format du fichier est simple; Il contient
--seulement des lignes de texte ASCII avec sur chaque ligne un nom d'hte et
--une adresse matrielle, spars par des espaces. Les indicateurs
-+seulement des lignes de texte ASCII avec sur chaque ligne un nom d'hôte et
-+une adresse matérielle, séparés par des espaces. Les indicateurs
- .BR "pub" , " temp" " et" " netmask"
--peuvent galement tre utiliss.
-+peuvent également être utilisés.
- .LP
--A tous les endroits o un
--.B nom d'hte
-+A tous les endroits où un
-+.B nom d'hôte
- est attendu, on peut aussi entrer une
- .B "addresse IP"
--en notation dcimale pointe.
-+en notation décimale pointée.
- .LP
--Chaque entre complte se trouvant dans le cache ARP est marque de
-+Chaque entrée complète se trouvant dans le cache ARP est marquée de
- l'indicateur
--.B C
--. Les entres permanentes sont marques de l'indicateur
-+.BR C .
-+Les entrées permanentes sont marquées de l'indicateur
- .B M
--et les entres 'pub' ont l'indicateur
-+et les entrées 'pub' ont l'indicateur
- .B P
- .
- .SH FICHIERS
-@@ -177,8 +177,8 @@ et les entr
- .SH VOIR AUSSI
- rarp(8), route(8), ifconfig(8), netstat(8)
- .SH AUTEUR
--Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> avec les amliorations
--apportes par le mainteneur des net-tools Bernd Eckenfels
-+Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> avec les améliorations
-+apportées par le mainteneur des net-tools Bernd Eckenfels
- <net-tools@lina.inka.de>.
- .SH TRADUCTION
- Jean Michel VANSTEENE (vanstee@worldnet.fr)
-diff --git a/man/fr_FR/ethers.5 b/man/fr_FR/ethers.5
-index 5e70929..030fdf6 100644
---- a/man/fr_FR/ethers.5
-+++ b/man/fr_FR/ethers.5
-@@ -5,7 +5,7 @@
- .\"
- .TH ETHERS 5 "26 Avril 1996" "" "Formats de fichiers"
- .SH NOM \"{{{roff}}}\"{{{
--ethers \- Base de donnes adresses Ethernet - adresses IP
-+ethers \- Base de données adresses Ethernet - adresses IP
- .\"}}}
- .SH DESCRIPTION \"{{{
- \fB/etc/ethers\fP contient des adresses Ethernet sur 48 bits et leur
-@@ -15,14 +15,14 @@ adresse IP correspondante, une ligne par adresses IP:
- \fIAdresse-Ethernet\fP \fIAdresse-IP\fP
- .RE
- .sp
--Les deux items sont spars par un ou plusieurs espaces et/ou tabulations.
--Un \fB#\fP en dbut de ligne est un commentaire pour tout le reste de la ligne.
--L'\fIadresse-Ethernet\fP est crite sous la forme
-+Les deux items sont séparés par un ou plusieurs espaces et/ou tabulations.
-+Un \fB#\fP en début de ligne est un commentaire pour tout le reste de la ligne.
-+L'\fIadresse-Ethernet\fP est écrite sous la forme
- .IR x : x : x : x : x : x ,
--o \fIx\fP est une valeur hxadecimale comprise entre \fB0\fP et \fBff\fP
--reprsentant un octet de l'adresse, dans l'ordre du rseau (big-endian).
--L'\fIAdresse-IP\fP peut tre soit un nom d'hte rsolu par DNS ou une adresse
--en notation dcimale pointe.
-+où \fIx\fP est une valeur héxadecimale comprise entre \fB0\fP et \fBff\fP
-+représentant un octet de l'adresse, dans l'ordre du réseau (big-endian).
-+L'\fIAdresse-IP\fP peut être soit un nom d'hôte résolu par DNS ou une adresse
-+en notation décimale pointée.
- .\"}}}
- .SH EXEMPLES \"{{{
- 08:00:20:00:61:CA pal
-diff --git a/man/fr_FR/hostname.1 b/man/fr_FR/hostname.1
-index c4cd412..3adaf4b 100644
---- a/man/fr_FR/hostname.1
-+++ b/man/fr_FR/hostname.1
-@@ -1,16 +1,16 @@
- .TH HOSTNAME 1 "15 Mars 1999" "net-tools" "Linux Programmer's Manual"
- .SH NOM
--hostname \- affiche ou dfinit le nom d'hte du systme
-+hostname \- affiche ou définit le nom d'hôte du système
- .br
--domainname \- affiche le nom de domaine NIS/YP du systme
-+domainname \- affiche le nom de domaine NIS/YP du système
- .br
--dnsdomainname \- affiche le nom de domaine du systme
-+dnsdomainname \- affiche le nom de domaine du système
- .br
--nisdomainname \- affiche ou dfinit le nom de domaine NIS/YP du systme
-+nisdomainname \- affiche ou définit le nom de domaine NIS/YP du système
- .br
--ypdomainname \- affiche ou dfinit le nom de domaine NIS/YP du systme
-+ypdomainname \- affiche ou définit le nom de domaine NIS/YP du système
- .br
--nodename \- affiche ou dfinit le nom de domaine DECnet du systme
-+nodename \- affiche ou définit le nom de domaine DECnet du système
-
- .SH SYNOPSIS
- .B hostname
-@@ -73,45 +73,45 @@ nodename \- affiche ou d
-
- .SH DESCRIPTION
- .B Hostname
--est le programme utilis soit pour dfinir le nom d'hte, soit
--pour visualiser le nom d'hte ou de domaine du systme. Ce nom est
--utilis par diffrents programmes rseaux pour identifier la machine. Le
--nom de domaine est galement utilis par les NIS/YP.
-+est le programme utilisé soit pour définir le nom d'hôte, soit
-+pour visualiser le nom d'hôte ou de domaine du système. Ce nom est
-+utilisé par différents programmes réseaux pour identifier la machine. Le
-+nom de domaine est également utilisé par les NIS/YP.
-
- .SS "OBTENTION DU NOM"
--Appel sans argument, le programme affiche les noms courants:
-+Appelé sans argument, le programme affiche les noms courants:
-
- .LP
- .B hostname
--fournit le nom du systme tel qu'il est retourn par la fonction
--.BR getdomainname (2)
--. Ceci est connu comme nom de domaine YP/NIS du systme.
-+fournit le nom du système tel qu'il est retourné par la fonction
-+.BR getdomainname (2).
-+Ceci est connu comme nom de domaine YP/NIS du système.
-
-
- .LP
- .B nodename
--fournit le nom de noeud DECnet du systme tel qu'il est retourn par la
-+fournit le nom de noeud DECnet du système tel qu'il est retourné par la
- fonction
- .BR getnodename (2)
- .
-
- .LP
- .B dnsdomainname
--fournit la partie domaine du nom compltement qualifi - FQDN (Fully
--Qualified Domain Name). Le nom FQDN du systme est retourn par la commande
-+fournit la partie domaine du nom complètement qualifié - FQDN (Fully
-+Qualified Domain Name). Le nom FQDN du système est retourné par la commande
- .BR "hostname \-\-fqdn" .
-
- .SS "SET NAME"
--Appel avec un argument ou avec l'option
-+Appelé avec un argument ou avec l'option
- .B \-\-file
--, la commande dfinit le nom d'hte, le nom de domaine NIS/YP ou
-+, la commande définit le nom d'hôte, le nom de domaine NIS/YP ou
- le nom de noeud.
-
- .LP
- Notez que seul le super-utilisateur peut changer les noms.
-
- .LP
--Il n'est pas possible de dfinir le nom FQDN ou le nom de domaine DNS avec
-+Il n'est pas possible de définir le nom FQDN ou le nom de domaine DNS avec
- la commande
- .B dnsdomainname
- (voir
-@@ -119,8 +119,8 @@ la commande
- ci-dessous).
-
- .LP
--Le nom d'hte est gnrallement dfinit une seule fois, au
--dmarrage du systme, par le script de configuration
-+Le nom d'hôte est générallement définit une seule fois, au
-+démarrage du système, par le script de configuration
- .I /etc/rc.d/rc.inet1.
- ou
- .I /etc/init.d/boot
-@@ -132,45 +132,45 @@ Vous pouvez modifier le FQDN (tel que fourni par la commande
- .BR "hostname \-\-fqdn" )
- ou le nom de domaine DNS (tel que fourni par la commande
- .BR "dnsdomainname" )
--avec cette commande. Le FQDN du systme est le nom que le resolveur (
-+avec cette commande. Le FQDN du système est le nom que le resolveur (
- .BR resolver (3)
-- ) retourne comme nom d'hte.
-+ ) retourne comme nom d'hôte.
-
- .LP
- Techniquement: Le FQDN est le nom fourni par
- .BR gethostbyname (2)
-- partir du nom d'hte retourn par
-+à partir du nom d'hôte retourné par
- .BR gethostname (2).
- Le nom de domaine DNS est la partie suivant le premier point.
- .LP
--La faon dont vous pouvez le changer dpend de la configuration
-+La façon dont vous pouvez le changer dépend de la configuration
- (habituellement dans
--.IR /etc/host.conf )
--. Si le fichier 'hosts' est analys avant d'interroger le DNS ou
-+.IR /etc/host.conf ).
-+Si le fichier 'hosts' est analysé avant d'interroger le DNS ou
- NIS) vous pouvez le changer dans le fichier
- .IR /etc/hosts .
-
- .SH OPTIONS
- .TP
- .I "\-a, \-\-alias"
--Affiche l'alias de l'hte (si utilis).
-+Affiche l'alias de l'hôte (si utilisé).
- .TP
- .I "\-d, \-\-domain"
- Affiche le nom du domaine DNS. Ne pas utiliser la commande
- .B domainname
--pour obtenir le nom de domaine DNS car vous obtiendrez en ralit le
--nom de domaine NIS. Utilisez plutt la commande
-+pour obtenir le nom de domaine DNS car vous obtiendrez en réalité le
-+nom de domaine NIS. Utilisez plutôt la commande
- .B dnsdomainname
- .
- .TP
- .I "\-F, \-\-file nom_fichier"
--Lit le nom d'hte partir du fichier spcifi. Les commentaires (lignes commenant
--par un `#') sont ignors.
-+Lit le nom d'hôte à partir du fichier spécifié. Les commentaires (lignes commençant
-+par un `#') sont ignorés.
- .TP
- .I "\-f, \-\-fqdn, \-\-long"
--Affiche le nom pleinement qualifi - FQDN (Fully Qualified Domain Name). un
--FQDN consiste en un nom d'hte court et un nom de domaine. A moins que vous
--utilisiez 'bind' ou les NIS pour la recherche d'htes, vous pouvez changer
-+Affiche le nom pleinement qualifié - FQDN (Fully Qualified Domain Name). un
-+FQDN consiste en un nom d'hôte court et un nom de domaine. A moins que vous
-+utilisiez 'bind' ou les NIS pour la recherche d'hôtes, vous pouvez changer
- le nom FQDN et le nom de domaine (qui fait partie du FQDN) dans le fichier
- \fI/etc/hosts\fR.
- .TP
-@@ -178,15 +178,15 @@ le nom FQDN et le nom de domaine (qui fait partie du FQDN) dans le fichier
- Affiche un message d'aide et se termine.
- .TP
- .I "\-i, \-\-ip-address"
--Affiche la (les) adresse(s) IP de l'hte.
-+Affiche la (les) adresse(s) IP de l'hôte.
- .TP
- .I "\-n, \-\-node"
--Affiche le nom de noeud DECnet. Si un paramtre est fourni (ou
-+Affiche le nom de noeud DECnet. Si un paramètre est fourni (ou
- .B \-\-file nom_fichier
--) le super-utilisateur peut galement dfinir un nouveau nom de neud.
-+) le super-utilisateur peut également définir un nouveau nom de neud.
- .TP
- .I "\-s, \-\-short"
--Affiche le nom d'hte en format court. Il s'agit du nom d'hte coup au
-+Affiche le nom d'hôte en format court. Il s'agit du nom d'hôte coupé au
- premier point.
- .TP
- .I "\-V, \-\-version"
-@@ -197,9 +197,9 @@ termine correctement.
- Mode verbeux.
- .TP
- .I "\-y, \-\-yp, \-\-nis"
--Affiche le nom de domaine NIS. Si un paramtre est fourni (ou
-+Affiche le nom de domaine NIS. Si un paramètre est fourni (ou
- .B \-\-file nom_fichier
--) le super-utilisateur peut galement dfinir un nouveau nom de domaine NIS.
-+) le super-utilisateur peut également définir un nouveau nom de domaine NIS.
- .SH FICHIERS
- .B /etc/hosts
- .SH AUTEURS
-diff --git a/man/fr_FR/ifconfig.8 b/man/fr_FR/ifconfig.8
-index 0c29eb0..821f164 100644
---- a/man/fr_FR/ifconfig.8
-+++ b/man/fr_FR/ifconfig.8
-@@ -1,160 +1,178 @@
--.TH IFCONFIG 8 "4 August 1997" "net-tools" "Linux Programmer's Manual"
-+.\"
-+.\" Traduction : Jean Michel VANSTEENE <vanstee@worldnet.fr>
-+.\" zz/08/1997
-+.\" Màj zz/08/2004 net-tools-1.60 Guillaume Audirac
-+.\" Màj 17/08/2006 net-tools-1.65 Alain Portal
-+.\"
-+.TH IFCONFIG 8 "30 juin 2005" "net-tools" "Manuel de l'administrateur Linux"
- .SH NOM
--ifconfig \- configure une interface rseau
-+ifconfig \- Configurer une interface réseau.
- .SH SYNOPSIS
--.B "ifconfig [interface]"
-+.B "ifconfig [\-v] [\-a] [\-s] [interface]"
- .br
--.B "ifconfig interface [aftype] options | adresse ..."
-+.B "ifconfig [\-v] interface [aftype] options | adresse ..."
- .SH DESCRIPTION
--.B Ifconfig
--est utilis pour configurer (et maintenir ensuite) les interfaces
--rseau rsidentes dans le noyau. Il est utilis lors du boot pour
--configurer la plupart d'entre-elles et ainsi rendre le systme
--oprationnel. Aprs, ce n'est quasiment plus utilis que pour
--le dbogage ou pour des rglages si ncessaire.
-+.B ifconfig
-+permet de configurer les interfaces réseau présentes dans le noyau.
-+On peut les configurer lors du démarrage quand c'est nécessaire. Ensuite,
-+on l'utilise généralement pour le débogage ou pour d'éventuels réglages.
- .LP
--Si aucun argument n'est donn,
-+Si aucun argument n'est donné,
- .B ifconfig
--affiche simplement l'tat des interfaces actuellement dfinies. Si
--seul le paramtre
-+affiche l'état des interfaces actives. Si seul le paramètre
- .B interface
--est donn, il affiche seulement l'tat de l'interface correspondante;
--si seul le paramtre
--.B -a
--est fourni, il affiche l'tat de toutes les interfaces, mme celles qui
--ne sont pas actives.
--Autrement, il considre qu'il faut positionner de nouvelles valeurs.
--
--.SH Familles d'adresses
--Si le premier argument aprs le nom de l'interface est reconnu comme
--tant un nom de famille d'adresses support, cette famille d'adresses
--est utilise pour dcoder et afficher toutes les adresses
--protocolaires. Les familles d'adresses actuellement supportes comprennent
-+est donné, il affiche seulement l'état de l'interface correspondante\ ;
-+si seul le paramètre
-+.B \-a
-+est fourni, il affiche l'état de toutes les interfaces, même celles
-+qui sont inactives. Autrement, il permet de configurer une interface.
-+.SH Familles d'Adresses
-+Si le premier argument après le nom d'interface est reconnu comme
-+le nom d'une famille d'adresses prise en charge, alors cette famille
-+d'adresses est utilisée pour décoder et afficher toutes les adresses
-+du protocole. Les familles d'adresses actuellement prises en charge
-+comprennent
- .B inet
--(TCP/IP, default)
-+(TCP/IP, par défaut),
-+.B inet6
-+(IPv6),
- .B ax25
--(AMPR Packet Radio.)
-+(AMPR Packet Radio),
- .B ddp
--(Appletalk Phase 2) and
-+(Appletalk Phase 2),
- .B ipx
--(Novell IPX).
-+(Novell IPX) et
-+.B netrom
-+(AMPR Packet Radio).
- .SH OPTIONS
- .TP
-+.B \-a
-+Afficher toutes les interfaces actuellement disponibles, même celles
-+qui sont inactives.
-+.TP
-+.B \-s
-+Afficher un résumé (comme netstat \-i).
-+.TP
-+.B \-v
-+Mode volubile pour certains types d'erreurs.
-+.TP
- .B interface
--Le nom de l'interface rseau. C'est gnralement un nom de pilote suivi
--d'un numro d'ordre comme
-+Correspond au nom de l'interface de réseau. C'est généralement un nom de
-+pilote suivi d'un chiffre, comme
- .B eth0
--pour la premire interface Ethernet.
-+pour la première interface Ethernet. Si votre noyau accepte les alias
-+d'interfaces, vous pouvez les spécifier avec
-+.B eth0:0
-+pour le premier alias de eth0. On peut les utiliser pour les affecter
-+à une seconde adresse. Pour supprimer un alias d'interface, utilisez
-+.BR "ifconfig eth0:0 down" .
-+Note\ : pour chaque groupe (un même noeud donné par une combinaison
-+adresse/masque de réseau), si vous supprimez le premier alias (le
-+principal), tous les alias sont supprimés.
- .TP
- .B up
--Cette option active l'interface. Elle est implicitement spcifie
--si une nouvelle adresse est affecte l'interface (voir plus loin).
-+Activer l'interface donnée. Cette option est implicite si une adresse est
-+affectée à l'interface.
- .TP
- .B down
--Cette option arrte le fonctionnement du pilote pour cette interface, et
--est utilise lorsque les choses commencent aller mal.
-+Désactiver le pilote pour l'interface donnée.
- .TP
- .B "[\-]arp"
--Valide ou invalide l'utilisation du protocole ARP sur cette interface. Si
--le signe moins (\-) est prsent, l'option est invalide.
-+Activer ou désactiver l'utilisation du protocole ARP sur une interface.
- .TP
- .B "[\-]promisc"
--Valide ou invalide le mode
--.B promiscuous
--. S'il est valid, tous les paquets circulant sur le rseau
--seront reus sur cette interface.
-+Activer ou désactiver le mode
-+.BR promiscuous .
-+S'il est activé, tous les paquets circulant sur le réseau seront reçus
-+par l'interface.
- .TP
- .B "[\-]allmulti"
--Valide ou invalide le fonctionnement de l'interface en mode
--.B all-multicast
--. S'il est valid, tous les paquets multicast circulant sur le rseau
--seront reus sur cette interface.
-+Activer ou désactiver le mode
-+.BR all-multicast .
-+S'il est activé, l'interface recevra tous les paquets de multidiffusion
-+circulant sur le réseau.
- .TP
- .B "metric N"
--Ce paramtre dfinit la mtrique de l'interface. Il n'est pour
--l'instant pas implment, mais le sera prochainement.
-+Définir la métrique de l'interface.
- .TP
- .B "mtu N"
--Ce paramtre dfinit le MTU (Maximum Transfer Unit) d'une
--interface.
-+Définir l'unité de transfert maximum ou MTU («\ Maximum Transfer Unit\ »)
-+d'une interface.
- .TP
--.B "dstaddr adr"
--Dfinit l'adresse IP de "l'autre bout" dans le cas d'un lien
--point--point, comme PPP. Ce paramtre est obsolte; utilisez plutt
--le paramtre
--.B pointopoint.
-+.B "dstaddr adresse"
-+Définir l'adresse IP distante dans le cas d'un lien point-à-point
-+(comme PPP). Cette option est obsolète\ ; utilisez à la place l'option
-+.BR pointopoint .
- .TP
--.B "netmask adr"
--Dfinit le masque de rseau IP pour cette interface. La valeur par
--dfaut de cette valeur correspond au masque rseau usuel pour les
--classes A, B ou C (dduite de l'adresse IP), mais toute autre valeur peut
--tre dfinie selon les besoins en sous-rseaux.
-+.B "netmask adresse"
-+Définir le masque de réseau IP pour cette interface. La valeur par
-+défaut correspond au masque de réseau usuel pour les classes A, B ou C
-+(déduite de l'adresse IP), mais une autre valeur peut être définie.
- .TP
--.B "add adr/lg_prefix"
--Ajoute une adresse IPv6 une interface.
-+.B "add adresse/long_préfixe"
-+Ajouter une adresse IPv6 à une interface.
- .TP
--.B "del adr/lg_prefix"
--Supprime une adresse IPv6 d'une interface.
-+.B "del adresse/long_préfixe"
-+Supprimer une adresse IPv6 d'une interface.
- .TP
- .B "tunnel aa.bb.cc.dd"
--Cre un nouveau priphrique SIT (IPv6-dans-IPv4), en mode
--tunnel jusqu' la destination.
-+Créer un nouveau périphérique SIT (IPv6-dans-IPv4), fonctionnant en mode
-+tunnel jusqu'à la destination donnée.
- .TP
--.B "irq adr"
--Dfinit la ligne d'interruption utilise par ce
--priphrique. Certains priphriques ne supportent pas le
--changement dynamique de l'IRQ.
-+.B "irq adresse"
-+Définir la ligne d'interruption utilisée par un périphérique.
-+Certains périphériques ne sont pas capables de changer
-+dynamiquement d'IRQ.
- .TP
--.B "io_addr adr"
--Dfinit pour ce priphrique, l'adresse de dbut dans l'espace
--d'entre-sortie I/O.
-+.B "io_addr adresse"
-+Définir l'adresse de début dans l'espace d'entrée-sortie pour un
-+périphérique.
- .TP
--.B "mem_start adr"
--Dfinit l'adresse de dbut de mmoire partage pour ce priphrique. Seuls
--quelques priphriques ont besoin de ce paramtre.
-+.B "mem_start adresse"
-+Définir l'adresse de début de la mémoire partagée utilisée par un
-+périphérique. Peu de périphériques ont besoin de ce paramètre.
- .TP
- .B "media type"
--Dfinit le port physique ou le type de medium utilis par ce priphrique.
--Tous les priphriques ne peuvent pas changer de configuration et les
--valeurs supportes varient de l'un l'autre. Les valeur typiques sont
-+Définir le port physique ou le type de médium utilisé par le périphérique.
-+Tous les périphériques ne peuvent pas changer cette configuration et les
-+types acceptés varient de l'un à l'autre. Les valeurs habituelles du
-+.B type
-+sont
- .B 10base2
- (Ethernet fin),
- .B 10baseT
--(10Mbps Ethernet paire torsade),
--.B AUI
--(transceiver externe) etc. Le type
-+(Ethernet 10Mbps en paire torsadée),
-+.B AUI
-+(émetteur-récepteur externe), etc. Le médium spécial de type
- .B auto
--permet d'indiquer au pilote de dtecter automatiquement le medium
--utilis. Une fois de plus, tous les priphriques ne supportent pas cette
--option.
--.TP
--.B "[-]broadcast [adr]"
--Si l'adresse est galement donne, dfinit l'adresse broadcast
--protocolaire pour cette interface. Autrement, il permet d'armer (ou dsarmer)
--l'indicateur
-+permet d'indiquer au pilote de détecter automatiquement le médium utilisé.
-+Une fois de plus, tous les pilotes n'acceptent pas cette option.
-+.TP
-+.B "[\-]broadcast [adresse]"
-+Si l'adresse est donnée, elle définit l'adresse de diffusion du
-+protocole pour cette interface. Autrement, on arme
-+(ou désarme) l'indicateur
- .B IFF_BROADCAST
- de l'interface.
- .TP
--.B "[-]pointopoint [adr]"
--Ce mot cl valide le mode
--.B point--point
--d'une interface, signifiant qu'il existe un lien direct entre 2 machines,
--sans que personne d'autre ne puisse tre l'coute.
-+.B "[\-]pointopoint [adresse]"
-+Valider le mode
-+.B point-à-point
-+d'une interface, signifiant qu'il existe un lien direct entre 2\ machines,
-+sans que personne d'autre ne puisse être à l'écoute.
- .br
--Si l'argument d'adresse est galement donn, il dfinit l'adresse
--de l'autre machine, de la mme manire que le paramtre obsolte
--.B dstaddr
--.
--Autrement il arme (ou dsarme) l'indicateur
-+Si l'adresse est également donnée, cela définit l'adresse de
-+protocole de l'autre machine, de la même manière que l'option obsolète
-+.BR dstaddr .
-+Autrement, il arme (ou désarme) l'indicateur
- .B IFF_POINTOPOINT
- de l'interface.
- .TP
- .B hw classe adresse
--Dfinit l'adresse matrielle de l'interface, si le pilote du
--priphrique supporte cette opration. Le mot cl doit tre
--suivi du nom de la classe matrielle et de l'adresse matrielle en
--caractres imprimables ASCII. Les classes matrielles actuellement
--supportes comprennent
-+Définir l'adresse matérielle de l'interface, si le pilote du périphérique
-+accepte cette opération. L'option doit être suivie du nom de la classe
-+matérielle et de l'adresse matérielle en caractères ASCII affichables.
-+Les classes matérielles actuellement prises en charge comprennent
- .B ether
- (Ethernet),
- .B ax25
-@@ -165,45 +183,82 @@ et
- (AMPR NET/ROM).
- .TP
- .B multicast
--Positionne l'indicateur multicast sur l'interface. Elle n'est
--gnralement pas ncessaire puisque les pilotes positionnent
--l'option correcte eux mme.
-+Positionner l'indicateur de multidiffusion sur l'interface. Ce n'est
-+généralement pas nécessaire puisque les pilotes positionnent correctement
-+l'option eux-mêmes.
- .TP
- .B adresse
--L'adresse IP de cette interface.
-+Correspond à l'adresse IP affectée à cette interface.
- .TP
--.B txqueuelen length
--Set the length of the transmit queue of the device. It is useful to set this
--to small values for slower devices with a high latency (modem links, ISDN)
--to prevent fast bulk transfers from disturbing interactive traffic like
--telnet too much.
-+.B txqueuelen longueur
-+Définir la longueur de la file d'attente de transmission du périphérique.
-+Il est utile de la fixer à des valeurs faibles pour les périphériques
-+lents avec un temps d'attente important (modems, ISDN), pour empêcher
-+d'être perturbé par de rapides transferts de masse issus des trafics
-+interactifs, comme
-+.BR telnet .
- .SH NOTES
--Depuis le noyau 2.2 il n'y a plus de statistiques d'interface explicite
--pour les interfaces en alias. Les statistiques affiches pour la vritable
--adresse sont partages avec toutes les adresses alias du mme priphrique.
--Si vous voulez des adresses par interface, vous devez ajouter des rgles de
--comptabilit particulires pour l'adresse en utilisant la commande
--.BR ipchains(8)
--.
--
-+Depuis la version 2.2 du noyau, il n'y a plus de statistiques d'interface
-+explicites pour les alias d'interfaces. Les statistiques affichées pour la
-+véritable adresse sont partagées avec toutes les adresses d'alias du même
-+périphérique. Pour avoir des statistiques par adresse, il faut ajouter
-+des règles de comptabilité particulières pour l'adresse en utilisant
-+la commande
-+.BR ipchains (8)
-+ou
-+.BR iptables (8).
-+.LP
-+Depuis net-tools 1.61,
-+.B ifconfig
-+affiche les compteurs d'octets et ceux lisibles par un utilisateur en
-+unités IEC\ 60027-2. Ainsi, 1\ KiB vaut 2^10 octets. Notez que les nombres
-+sont tronqués à la première décimale (ce qui peut être une erreur importante
-+si vous considérez que 0,1\ PiB vaut 112.589.990.684.262\ octets\ :)
-+.LP
-+Des problèmes d'interruption avec les pilotes de périphériques Ethernet
-+apparaissent avec EAGAIN
-+(\fISIOCSIIFLAGS\ : Ressource temporairement indisponible\fR)
-+il s'agit sûrement d'un conflit d'interruptions. Voir
-+.I http://www.scyld.com/expert/irq-conflict.html
-+pour plus d'informations.
- .SH FICHIERS
--.I /proc/net/socket
-+.I /proc/net/socket
- .br
- .I /proc/net/dev
- .br
- .I /proc/net/if_inet6
--.SH BUGS
--Mme si les adresses appletalk DDP et IPX peuvent tre affiches,
--elles ne peuvent tre modifies avec cette commande.
-+.SH BOGUES
-+Même si les adresses appletalk DDP et IPX peuvent être affichées,
-+elles ne peuvent être modifiées avec cette commande.
- .SH VOIR AUSSI
--route(8), netstat(8), arp(8), rarp(8), ipchains(8)
--.SH AUTHORS
-+.BR route (8),
-+.BR netstat (8),
-+.BR arp (8),
-+.BR rarp (8),
-+.BR ipchains (8),
-+.BR iptables (8)
-+.br
-+http://physics.nist.gov/cuu/Units/binary.html \- Préfixes
-+pour les multiples binaires.
-+.SH AUTEURS
- Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- .br
- Alan Cox, <Alan.Cox@linux.org>
- .br
- Phil Blundell, <Philip.Blundell@pobox.com>
- .br
--Andi Kleen,
-+Andi Kleen,
-+.br
-+Bernd Eckenfels, <net-tools@lina.inka.de>
- .SH TRADUCTION
--Jean-Michel VANSTEENE (vanstee@worldnet.fr)
-+.PP
-+Ce document est une traduction réalisée par Jean Michel Vansteene
-+<vanstee\ AT\ worldnet\ DOT\ fr> en août\ 1997,
-+mise à jour par Guillaume Audirac en août 2004
-+et révisée le 17\ août\ 2006.
-+.PP
-+L'équipe de traduction a fait le maximum pour réaliser une adaptation
-+française de qualité. La version anglaise la plus à jour de ce document est
-+toujours consultable via la commande\ : «\ \fBLANG=C\ man\ 8\ ifconfig\fR\ ».
-+N'hésitez pas à signaler à l'auteur ou au traducteur, selon le cas, toute
-+erreur dans cette page de manuel.
-diff --git a/man/fr_FR/netstat.8 b/man/fr_FR/netstat.8
-index bf16bc6..c65d0be 100644
---- a/man/fr_FR/netstat.8
-+++ b/man/fr_FR/netstat.8
-@@ -8,11 +8,11 @@
- .\" Modified: Tuan Hoang tuan@optimus.mitre.org
- .\"
- .\"
--.TH NETSTAT 8 "25 Fv 1999" "net-tools" "Linux Programmer's Manual"
-+.TH NETSTAT 8 "2007-12-02" "net-tools" "Linux Administrator's Manual"
-
- .SH NAME
--netstat \- Affiche les connexions rseau, les tables de routage, les
--statistiques des interfaces, les connexions masques, les messages netlink,
-+netstat \- Affiche les connexions réseau, les tables de routage, les
-+statistiques des interfaces, les connexions masquées, les messages netlink,
- et les membres multicast.
-
- .SH SYNOPSIS
-@@ -21,6 +21,8 @@ et les membres multicast.
- .RB [ \-venaoc ]
- .RB [ \-\-tcp | \-t ]
- .RB [ \-\-udp | \-u ]
-+.RB [ \-\-udplite | \-U ]
-+.RB [ \-\-sctp | \-S ]
- .RB [ \-\-raw | \-w ]
- .RB [ \-\-groups | \-g ]
- .RB [ \-\-unix | \-x ]
-@@ -68,34 +70,34 @@ et les membres multicast.
- .PP
- .SH DESCRIPTION
- .B Netstat
--affiche les informations du sous-systme rseau de Linux
-+affiche les informations du sous-système réseau de Linux
-
- .SS "(no option)"
--Vous pouvez voir l'tat des connexions rseau en listant les sockets
--ouvertes. C'est l'option par dfaut : si vous ne spcifiez aucune famille
-+Vous pouvez voir l'état des connexions réseau en listant les sockets
-+ouvertes. C'est l'option par défaut : si vous ne spécifiez aucune famille
- d'adresses, les sockets actives de toutes les familles d'adresses seront
--affiches.
--Avec le paramtre
-+affichées.
-+Avec le paramètre
- .B -e
--vous obtenez quelques informations supplmentaires (userid). Avec le paramtre
-+vous obtenez quelques informations supplémentaires (userid). Avec le paramètre
- .B -v
--vous pouvez demander netstat de signaler des familles d'adresses connues
--non supportes par le noyau. Le paramtre
-+vous pouvez demander à netstat de signaler des familles d'adresses connues
-+non supportées par le noyau. Le paramètre
- .B -o
--affiche des informations supplmentaires sur les timers rseau. En donnant
--le paramtre
-+affiche des informations supplémentaires sur les timers réseau. En donnant
-+le paramètre
- .B -p
--vous verrez le PID et le nom du processus qui appartient la socket. Le paramtre
-+vous verrez le PID et le nom du processus à qui appartient la socket. Le paramètre
- .B -a
--affiche toutes les sockets, y compris les sockets d'coute des serveurs. La famille
-+affiche toutes les sockets, y compris les sockets d'écoute des serveurs. La famille
- d'adresses
- .B inet
- affiche les sockets raw, udp et tcp.
-
- .SS "\-r, \-\-route"
--Avec le paramtre
-+Avec le paramètre
- .BR \-r ", " \-\-route
--vous pouvez visualiser les tables de routage dans le mme format qu'avec la
-+vous pouvez visualiser les tables de routage dans le même format qu'avec la
- commande
- .B "route -e"
- .
-@@ -104,44 +106,44 @@ utilisera le format de la commande
- .BR route .
- Veuillez consulter
- .BR route (8)
--pour plus de dtails.
-+pour plus de détails.
-
--.SS "\-i, \-\-interface \fIiface\fI"
-+.SS "\-i, \-\-interfaces \fIiface\fI"
- Si vous utilisez l'option
- .BR -i ", " --interfaces
- , une table de toutes (ou de l'interface
- .IR iface
--spcifie) les interfaces rseau sera affiche. Le format de sortie est le
--mme que celui de la commande
-+spécifiée) les interfaces réseau sera affichée. Le format de sortie est le
-+même que celui de la commande
- .B "ifconfig -e"
--, et est dcrit dans
-+, et est décrit dans
- .BR ifconfig (8).
- .B "netstat -ei"
--affiche une table ou une seule entre d'interface comme la commande
--.B ifconfig
--. Avec le paramtre
-+affiche une table ou une seule entrée d'interface comme la commande
-+.BR ifconfig .
-+Avec le paramètre
- .B -a
--, vous pouvez inclure les interfaces qui ne sont pas configures (c.a.d qui
-+, vous pouvez inclure les interfaces qui ne sont pas configurées (c.a.d qui
- n'ont pas l'indicateur
- .BR U = UP
--arm).
-+armé).
-
- .SS "\-M, \-\-masquerade"
-
--Permet de voir les sessions ayant de l'IP-masquerade. Avec le paramtre
-+Permet de voir les sessions ayant de l'IP-masquerade. Avec le paramètre
- .B -e
--vous pouvez inclure quelques informations concernant les numros de
--squence et les deltas causs par des rcritures de donnes sur des
--sessions FTP (commande PORT). Le support de l'IP-Masquerade est utilis
--pour cacher au monde extrieur des htes appartenant un rseau (et ayant
--des adresses) non officiel, tel que dcrit dans
--.BR ipfw (4), ipfwadm "(8) et " ipfw (8).
-+vous pouvez inclure quelques informations concernant les numéros de
-+séquence et les deltas causés par des réécritures de données sur des
-+sessions FTP (commande PORT). Le support de l'IP-Masquerade est utilisé
-+pour cacher au monde extérieur des hôtes appartenant à un réseau (et ayant
-+des adresses) non officiel, tel que décrit dans
-+.BR iptables (8).
-
- .SS "\-N, \-\-netlink"
-
--Les noyaux rcents supportent une communication avec l'utilisateur appele
--netlink. Vous pouvez obtenir des messages relatifs la cration, la
--suppression d'interfaces ou de routes partir de
-+Les noyaux récents supportent une communication avec l'utilisateur appelée
-+netlink. Vous pouvez obtenir des messages relatifs à la création, la
-+suppression d'interfaces ou de routes à partir de
- .I /dev/route
- (36,0).
-
-@@ -149,23 +151,23 @@ suppression d'interfaces ou de routes
- .SH OPTIONS
- .SS "\-v, \-\-verbose"
- active le mode verbeux. Affiche quelques informations utiles concernant les
--familles d'adresses non configures.
-+familles d'adresses non configurées.
-
- .SS "\-n, \-\-numeric"
--affiche les adresses en format numrique au lieu d'essayer de dterminer le
--nom symbolique d'hte, de port ou d'utilisateur.
-+affiche les adresses en format numérique au lieu d'essayer de déterminer le
-+nom symbolique d'hôte, de port ou d'utilisateur.
-
- .SS "\-p, \-\-programs"
--affiche le nom et le PID des processus propritaires de chaque socket
--dcrite. Vous devez tre le propritaire d'un processus pour visualiser les
--sockets qui lui appartiennent ou tre l'utilisateur
-+affiche le nom et le PID des processus propriétaires de chaque socket
-+décrite. Vous devez être le propriétaire d'un processus pour visualiser les
-+sockets qui lui appartiennent ou être l'utilisateur
- .B root
- pour disposer de toutes les informations.
-
- .SS "\-A, \-\-af \fIfamille\fI"
--utilise une mthode diffrente pour affecter les familles d'adresses.
-+utilise une méthode différente pour affecter les familles d'adresses.
- .I famille
--est une liste de familles d'adresses spares par des (',') telles que
-+est une liste de familles d'adresses séparées par des (',') telles que
- .BR inet ,
- .BR unix ,
- .BR ipx ,
-@@ -173,7 +175,7 @@ est une liste de familles d'adresses s
- .B netrom
- et
- .BR ddp .
--L'utilisation des options longues suivantes a le mme effet
-+L'utilisation des options longues suivantes a le même effet
- .BR \-\-inet ,
- .BR \-\-unix ,
- .BR \-\-ipx ,
-@@ -183,9 +185,9 @@ et
- .BR \-\-ddp.
-
- .SS "\-c, \-\-continous"
--Demandera
-+Demandera à
- .B netstat
--d'afficher la table slectionne chaque seconde jusqu' ce que vous
-+d'afficher la table sélectionnée chaque seconde jusqu'à ce que vous
- l'interrompiez.
-
- .PP
-@@ -195,102 +197,102 @@ l'interrompiez.
- .SS Connexions Internet actives \fR(TCP, UDP, RAW)\fR
-
- .SS "Proto"
--Le protocole (TCP, UDP, RAW) utilis par la socket.
-+Le protocole (TCP, UDP, RAW) utilisé par la socket.
-
- .SS "Recv-Q"
--Le nombre d'octets non encore lus par le programme utilisateur connect
-- cette socket.
-+Le nombre d'octets non encore lus par le programme utilisateur connecté
-+à cette socket.
-
- .SS "Send-Q"
--Le nombre d'octets non encore acquitts par l'hte distant.
-+Le nombre d'octets non encore acquittés par l'hôte distant.
-
- .SS "Local Address (Adresse locale)"
--L'adresse locale (nom d'hte local) et numro de port de la
-+L'adresse locale (nom d'hôte local) et numéro de port de la
- socket. Sauf si l'option
- .B -n
--est donne, l'adresse de la prise est traduite en nom d'hte,
--et le numro de port est traduit en nom de service correspondant.
-+est donnée, l'adresse de la prise est traduite en nom d'hôte,
-+et le numéro de port est traduit en nom de service correspondant.
-
- .SS "Foreign Address (Adresse distante)"
--L'adresse distante (nom d'hte distant) et le numro de port de
--la prise. Comme pour l'adresse locale et le numro de port, l'option
-+L'adresse distante (nom d'hôte distant) et le numéro de port de
-+la prise. Comme pour l'adresse locale et le numéro de port, l'option
- .B -n
--invalide la traduction du nom d'hte et de service.
-+invalide la traduction du nom d'hôte et de service.
-
- .SS "State (Etat)"
--L'tat de la socket. Puisqu'il n'y a pas d'tat dans le mode RAW
--et gnralement pas d'tat utilis en UDP, cette colonne
-+L'état de la socket. Puisqu'il n'y a pas d'état dans le mode RAW
-+et généralement pas d'état utilisé en UDP, cette colonne
- peut se trouver vierge. Normalement, on trouvera une des valeur suivante:
-
- .TP
- .I
- ESTABLISHED
--La socket a une connexion tablie.
-+La socket a une connexion établie.
- .TP
- .I
- SYN_SENT
--La socket attend activement d'tablir une connexion.
-+La socket attend activement d'établir une connexion.
- .TP
- .I
- SYN_RECV
--Une requte de connexion a t reue du rseau.
-+Une requête de connexion a été reçue du réseau.
- .TP
- .I
- FIN_WAIT1
--La socket est ferme, et la connexion est en cours de terminaison.
-+La socket est fermée, et la connexion est en cours de terminaison.
- .TP
- .I
- FIN_WAIT2
--La connexion est ferme, et la socket attend une terminaison du distant.
-+La connexion est fermée, et la socket attend une terminaison du distant.
- .TP
- .I
- TIME_WAIT
--La socket attend le traitement de tous les paquets encore sur le rseau
-+La socket attend le traitement de tous les paquets encore sur le réseau
- avant d'entreprendre la fermeture.
- .TP
- .I
--CLOSED
--La socket n'est pas utilise.
-+CLOSE
-+La socket n'est pas utilisée.
- .TP
- .I
- CLOSE_WAIT
--Le distant a arrt, attendant la fermeture de la socket.
-+Le distant a arrêté, attendant la fermeture de la socket.
- .TP
- .I
- LAST_ACK
--Le distant termine, et la socket est ferme. Attente d'acquittement.
-+Le distant termine, et la socket est fermée. Attente d'acquittement.
- .TP
- .I
- LISTEN
--La socket est l'coute de connexions entrantes. Ces sockets ne sont
--affiches que si le paramtre
-+La socket est à l'écoute de connexions entrantes. Ces sockets ne sont
-+affichées que si le paramètre
- .BR -a , --listening
- est fourni.
- .TP
- .I
- CLOSING
--Les deux prises sont arrtes mais toutes les donnes locales n'ont
--pas encore t envoyes.
-+Les deux prises sont arrêtées mais toutes les données locales n'ont
-+pas encore été envoyées.
- .TP
- .I
- UNKNOWN
--L'tat de la prise est inconnu.
-+L'état de la prise est inconnu.
-
- .SS "User (Utilisateur)"
--Le nom d'utilisateur ou l'UID du propritaire de la socket.
-+Le nom d'utilisateur ou l'UID du propriétaire de la socket.
-
- .SS "PID/Program name (PID/Nom de Programme)"
--Le PID et le nom du programme (spars par un slash) propritaire de la
--socket. Le paramtre
-+Le PID et le nom du programme (séparés par un slash) propriétaire de la
-+socket. Le paramètre
- .B -p
- active l'affichage de cette colonne. Vous devez avoir les droits de
- .B root
--puisque vous devez avoir les droits d'accs aux processus pour visualiser
-+puisque vous devez avoir les droits d'accès aux processus pour visualiser
- les sockets qui lui correspondent. Ces informations ne sont pas disponibles
- avec les sockets IPX.
-
- .SS "Timer"
--(Ceci doit tre rdig)
-+(Ceci doit être rédigé)
-
-
- .PP
-@@ -298,28 +300,28 @@ avec les sockets IPX.
-
-
- .SS "Proto"
--Le protocole (habituellement UNIX) utilis par la socket.
-+Le protocole (habituellement UNIX) utilisé par la socket.
-
- .SS "RefCnt"
--Le nombre de rfrences (i.e. processus attachs via cette socket).
-+Le nombre de références (i.e. processus attachés via cette socket).
-
- .SS "Flags (indicateurs)"
--Les indicateurs affiche sont SO_ACCEPTON (affich
-+Les indicateurs affichée sont SO_ACCEPTON (affiché
- .BR ACC ),
- SO_WAITDATA
- .RB ( W )
- ou SO_NOSPACE
- .RB ( N ).
--SO_ACCECPTON est utilis pour les sockets
--non-connectes si les processus correspondant sont en attente de
--demande de connexion. Les autres indicateurs sont d'un intrt limit.
-+SO_ACCECPTON est utilisé pour les sockets
-+non-connectées si les processus correspondant sont en attente de
-+demande de connexion. Les autres indicateurs sont d'un intérêt limité.
-
- .SS "Type"
--Il y a diffrents types d'accs aux sockets :
-+Il y a différents types d'accès aux sockets :
- .TP
- .I
- SOCK_DGRAM
--La prise est utilise en mode Datagram (sans connexion).
-+La prise est utilisée en mode Datagram (sans connexion).
- .TP
- .I
- SOCK_STREAM
-@@ -327,90 +329,89 @@ C'est une socket `stream' (connexion).
- .TP
- .I
- SOCK_RAW
--La prise est utilise en mode `raw'.
-+La prise est utilisée en mode `raw'.
- .TP
- .I
- SOCK_RDM
--Celle-ci est utilise pour les messages dlivre de manire fiable.
-+Celle-ci est utilisée pour les messages délivrée de manière fiable.
- .TP
- .I
- SOCK_SEQPACKET
--C'est une socket en mode paquets squentiels.
-+C'est une socket en mode paquets séquentiels.
- .TP
- .I
- SOCK_PACKET
--Prise d'accs l'interface RAW.
-+Prise d'accès à l'interface RAW.
- .TP
- .I
- UNKNOWN
--Qui sait ce que l'avenir nous rserve - Juste remplir ici :-)
-+Qui sait ce que l'avenir nous réserve - Juste à remplir ici :-)
-
- .PP
- .SS "State (Etat)"
--Ce champ contient un des mots cls suivants :
-+Ce champ contient un des mots clés suivants :
- .TP
- .I
- FREE
--La socket n'est pas alloue
-+La socket n'est pas allouée
- .TP
- .I
- LISTENING
--La socket est l'coute de demandes de connexions. Ces sockets ne sont
--affiches que si le paramtre
-+La socket est à l'écoute de demandes de connexions. Ces sockets ne sont
-+affichées que si le paramètre
- .BR -a , --listening
- est fourni.
- .TP
- .I
- CONNECTING
--La prise est en cours d'tablissement de connexion.
-+La prise est en cours d'établissement de connexion.
- .TP
- .I
- CONNECTED
--La socket est connecte.
-+La socket est connectée.
- .TP
- .I
- DISCONNECTING
--La socket est en cours de dconnexion.
-+La socket est en cours de déconnexion.
- .TP
- .I
- (empty)
--La socket n'est connecte aucune autre.
-+La socket n'est connectée à aucune autre.
- .TP
- .I
- UNKNOWN
--Cet tat ne devrait pas apparatre.
-+Cet état ne devrait pas apparaître.
-
- .SS "PID/Program name (PID/Nom de programme"
--Le PID et le nom du programme propritaire de la socket. Plus
-+Le PID et le nom du programme propriétaire de la socket. Plus
- d'informations sont disponibles dans la section
- .B "Connexions Internet actives"
- ci-dessus.
-
- .SS "Path (chemin)"
--Affiche le chemin correspondant l'attachement des processus la socket.
-+Affiche le chemin correspondant à l'attachement des processus à la socket.
-
- .PP
- .SS Sockets IPX actives
-
--( faire par quelqu'un qui connat)
-+(à faire par quelqu'un qui connaît)
-
- .PP
- .SS Sockets NET/ROM actives
-
--( faire par quelqu'un qui connat)
-+(à faire par quelqu'un qui connaît)
-
- .PP
- .SS Sockets AX.25 actives
-
--( faire par quelqu'un qui connat)
-+(à faire par quelqu'un qui connaît)
-
- .PP
- .SH NOTES
- Depuis la version 2.2 du noyau, netstat -i n'affiche plus les statistiques
- des interfaces alias. Pour obtenir les compteurs par interface alias, vous
--devez dfinir des rgles spcifiques l'aide de la commande
--.BR ipchains(8)
--.
-+devez définir des règles spécifiques à l'aide de la commande
-+.BR iptables(8).
-
- .SH FICHIERS
- .ta
-@@ -418,7 +419,7 @@ devez d
- -- Le fichier de correspondance des services
-
- .I /proc/net/dev
---- informations priphriques
-+-- informations périphériques
-
- .I /proc/net/raw
- -- informations sockets RAW
-@@ -471,31 +472,28 @@ devez d
- .SH VOIR AUSSI
- .BR route (8),
- .BR ifconfig (8),
--.BR ipfw (4),
--.BR ipfw (8),
--.BR ipfwadm (8)
--.BR ipchains (8)
-+.BR iptables (8)
-
- .PP
- .SH BUGS
--Des informations tranges peuvent apparaitre occasionnellement
--si une socket change d'tat au moment ou elle est visualise.
-+Des informations étranges peuvent apparaitre occasionnellement
-+si une socket change d'état au moment ou elle est visualisée.
- Ceci est peut probable.
- .br
--Le paramtre
-+Le paramètre
- .B netstat -i
--est dcrit tel qu'il fonctionnera lorsque le code de la version BETA du
--paquetage net-tools aura t nettoy.
-+est décrit tel qu'il fonctionnera lorsque le code de la version BETA du
-+paquetage net-tools aura été nettoyé.
-
- .PP
- .SH AUTEURS
--L'interface utilisateur de netstat a t dveloppe par
-+L'interface utilisateur de netstat a été développée par
- Fred Baumgarten <dc6iq@insu1.etec.uni-karlsruhe.de>. Les pages du
--manuel essentiellement crites par Matt Welsh
--<mdw@tc.cornell.edu>. Mis jour par Alan Cox <Alan.Cox@linux.org>.
-+manuel essentiellement écrites par Matt Welsh
-+<mdw@tc.cornell.edu>. Mis à jour par Alan Cox <Alan.Cox@linux.org>.
- .br
- La page de manuel et la commande incluse dans le paquetage net-tools
--a t totallement rcrite par Bernd Eckenfels
-+a été totallement réécrite par Bernd Eckenfels
- <ecki@linux.de>.
- .SH TRADUCTION
- Jean Michel VANSTEENE (vanstee@worldnet.fr)
-diff --git a/man/fr_FR/plipconfig.8 b/man/fr_FR/plipconfig.8
-index cd44449..4d17ea2 100644
---- a/man/fr_FR/plipconfig.8
-+++ b/man/fr_FR/plipconfig.8
-@@ -1,44 +1,44 @@
- .TH PLIPCONFIG 8 "17 February 1995" "" ""
- .SH NOM
--plipconfig \- rglage fin des paramtres du priphrique PLIP
-+plipconfig \- réglage fin des paramètres du périphérique PLIP
- .SH SYNOPSIS
- .B "plipconfig interface"
- .br
- .B "plipconfig interface [nibble NN] [trigger NN] [unit NN]"
- .SH DESCRIPTION
- .B Plipconfig
--est utilis pour amliorer (esprons-le) les performances PLIP
--en changeant les timings par dfaut utiliss par le protocole PLIP. Les
--rsultats dpendent du port parallle
--utilis, du cable, et de la vitesse CPU de chaque machine
-- chaque bout du lien PLIP.
-+est utilisé pour améliorer (espérons-le) les performances PLIP
-+en changeant les timings par défaut utilisés par le protocole PLIP. Les
-+résultats dépendent du port parallèle
-+utilisé, du cable, et de la vitesse CPU de chaque machine
-+à chaque bout du lien PLIP.
- .LP
- Si le seul argument est l'
- .B interface
- ,
- .B plipconfig
--affiche seulement l'tat de cette interface. Autrement, il essaiera de
--positionner les options donnes.
-+affiche seulement l'état de cette interface. Autrement, il essaiera de
-+positionner les options données.
- .SH OPTIONS
- .TP
- .B "nibble NN"
--Dfinit la valeur d'attente des digits en microsecondes. Par dfault : 3000.
-+Définit la valeur d'attente des digits en microsecondes. Par défault : 3000.
- .TP
- .B "trigger NN"
--Dfinit le dlai de dclenchement en microsecondes. Par dfault : 500.
-+Définit le délai de déclenchement en microsecondes. Par défault : 500.
- .LP
--La vitesse de PLIP peut, dans certains cas, tre amliore en
--diminuant les valeurs par dfaut.
-+La vitesse de PLIP peut, dans certains cas, être améliorée en
-+diminuant les valeurs par défaut.
- Les valeurs trop petites peuvent engendrer une utilisation excessive de CPU,
--et un temps de rponse aux interruptions mauvais, dont le rsultat est
--la perte de caractres lus sur le port, ou de paquets PLIP.
-+et un temps de réponse aux interruptions mauvais, dont le résultat est
-+la perte de caractères lus sur le port, ou de paquets PLIP.
- La modification du MTU PLIP peut aussi affecter la vitesse PLIP.
- .SH NOTE
--Si vous n'obtenez aucune rponse, il est fort probable que l'IRQ configure
--soit mauvaise, et qu'elle ncessite une configuration avec ifconfig.
--Les quelques cas pour lesquels les timings par dfaut sont trop courts,
--arrivent lorque l'on utilise de longs cables. Quelque chose ne pas faire,
--puisque le port parallle n'est pas fait pour fonctionner avec de longs cables.
-+Si vous n'obtenez aucune réponse, il est fort probable que l'IRQ configurée
-+soit mauvaise, et qu'elle nécessite une configuration avec ifconfig.
-+Les quelques cas pour lesquels les timings par défaut sont trop courts,
-+arrivent lorque l'on utilise de longs cables. Quelque chose à ne pas faire,
-+puisque le port parallèle n'est pas fait pour fonctionner avec de longs cables.
- .SH VOIR AUSSI
- .I ifconfig(8)
- .SH BUGS
-diff --git a/man/fr_FR/rarp.8 b/man/fr_FR/rarp.8
-index 73e9328..e68730f 100644
---- a/man/fr_FR/rarp.8
-+++ b/man/fr_FR/rarp.8
-@@ -1,6 +1,6 @@
--.TH RARP 8 "4 Aot 1997" "net-tools" "Linux Programmer's Manual"
-+.TH RARP 8 "4 Août 1997" "net-tools" "Linux Administrator's Manual"
- .SH NOM
--rarp \- manipule la table systme RARP
-+rarp \- manipule la table système RARP
- .SH SYNOPSIS
- .B "rarp [-V] [--version] [-h] [--help]"
- .br
-@@ -11,30 +11,30 @@ rarp \- manipule la table syst
- .B "rarp [-v] [-t type] -s nom_d_hote adr_materiel"
- .SH DESCRIPTION
- .B Rarp
--manipule la table RARP du noyau de diffrentes faons. Les options de base
--permettent d'effacer une entre de correspondance d'adresses et d'en
--redfinir une manuellement. Pour des besoins de dbogage, le programme
-+manipule la table RARP du noyau de différentes façons. Les options de base
-+permettent d'effacer une entrée de correspondance d'adresses et d'en
-+redéfinir une manuellement. Pour des besoins de débogage, le programme
- .B rarp
--permet aussi de vider compltement la table RARP.
-+permet aussi de vider complètement la table RARP.
- .SH OPTIONS
- .TP
- .B \-V
--Affiche la version de RARP utilis.
-+Affiche la version de RARP utilisé.
- .TP
- .B \-v
--Dit l'utilisateur ce qui se passe, en tant verbeux.
-+Dit à l'utilisateur ce qui se passe, en étant verbeux.
- .TP
- .B "\-t type"
--En dfinissant ou lisant la table RARP, ce paramtre optionnel dit
-+En définissant ou lisant la table RARP, ce paramètre optionnel dit à
- .B rarp
--quelles classes d'entres il doit contrler. La valeur par dfaut de
--ce paramtre est
-+quelles classes d'entrées il doit contrôler. La valeur par défaut de
-+ce paramètre est
- .B ether
--(i.e. code matriel
-+(i.e. code matériel
- .B 0x01
- pour
- .B "IEEE 802.3 10Mbps Ethernet".
--D'autres valeurs doivent correspondre des technologies rseaux telles que
-+D'autres valeurs doivent correspondre à des technologies réseaux telles que
- .B AX.25 (ax25).
- et
- .B NET/ROM (netrom).
-@@ -42,31 +42,31 @@ et
- .B "\-a"
- .TP
- .B "\-\-list"
--Liste les entres de la table RARP.
-+Liste les entrées de la table RARP.
- .TP
- .B "\-d nom_d_hote"
- .TP
- .B "\-\-delete nom_d_hote"
--Supprime toutes les entres RARP relatives l'hte spcifi.
-+Supprime toutes les entrées RARP relatives à l'hôte spécifié.
- .TP
- .B "\-s nom_d_hote adr_materielle"
- .TP
- .B "\-\-set nom_d_hote adr_materielle"
--Cre manuellement une correspondance d'adresses RARP pour l'hte
--.B nom_d_hte
--avec l'adresse matrielle
--.B adr_materielle
--. Le format de l'adresse matrielle est dpendant du matriel,
--mais pour la plupart on peut considrer que la prsentation classique
--peut tre utilise. Pour la classe Ethernet, c'est 6 octets en hexadcimal,
--spars par des double-points.
-+Crée manuellement une correspondance d'adresses RARP pour l'hôte
-+.B nom_d_hôte
-+avec l'adresse matérielle
-+.BR adr_materielle .
-+Le format de l'adresse matérielle est dépendant du matériel,
-+mais pour la plupart on peut considérer que la présentation classique
-+peut être utilisée. Pour la classe Ethernet, c'est 6 octets en hexadécimal,
-+séparés par des double-points.
-
- .SH ATTENTION
--Certains systmes (notamment des vieux Sun's) supposent que l'hte
--rpondant une requte RARP peut aussi fournir d'autres services
--de boot distance. Par consquent n'ajoutez jamais
--d'entres RARP la lgre moins que vous souhaitiez affronter la
--colre de votre administrateur rseau.
-+Certains systèmes (notamment des vieux Sun's) supposent que l'hôte
-+répondant à une requête RARP peut aussi fournir d'autres services
-+de boot à distance. Par conséquent n'ajoutez jamais
-+d'entrées RARP à la légère à moins que vous souhaitiez affronter la
-+colère de votre administrateur réseau.
- .SH FICHIERS
- .I /proc/net/rarp,
- .SH VOIR AUSSI
-diff --git a/man/fr_FR/route.8 b/man/fr_FR/route.8
-index 9109e8d..986faf9 100644
---- a/man/fr_FR/route.8
-+++ b/man/fr_FR/route.8
-@@ -1,4 +1,4 @@
--.TH ROUTE 8 "8 Aot 1997" "net-tools" "Linux Programmer's Manual"
-+.TH ROUTE 8 "8 Août 1997" "net-tools" "Linux Administrator's Manual"
- .SH NAME
- route \- affiche / manipule la table de routage IP
- .SH SYNOPSIS
-@@ -54,9 +54,9 @@ If]
- .RB [ \--help ]
- .SH DESCRIPTION
- .B Route
--manipule la table de routage IP du noyau. Son utilisation premire
--consiste configurer des routes statiques vers des htes ou des rseaux
--via une interface, aprs sa configuration par le programme
-+manipule la table de routage IP du noyau. Son utilisation première
-+consiste à configurer des routes statiques vers des hôtes ou des réseaux
-+via une interface, après sa configuration par le programme
- .B ifconfig(8).
-
- .SH OPTIONS
-@@ -66,12 +66,12 @@ Active le mode verbeux.
-
- .TP
- .B \-A famille
--Utilise la famille d'adresses spcifie (p.ex. `inet', `inet6').
-+Utilise la famille d'adresses spécifiée (p.ex. `inet', `inet6').
-
- .TP
- .B \-n
--Affiche les adresses numriques, au lieu
--d'essayer de dterminer les noms d'htes. C'est utile si vous essayer de
-+Affiche les adresses numériques, au lieu
-+d'essayer de déterminer les noms d'hôtes. C'est utile si vous essayer de
- savoir pourquoi la route vers votre serveur de nom a disparu.
-
- .TP
-@@ -80,24 +80,24 @@ utilise
- .BR netstat (8)-format
- pour l'affichage de la table de routage.
- .B \-ee
--Gnre une trs longue ligne avec tous les paramtres partir de la table
-+Génère une très longue ligne avec tous les paramètres à partir de la table
- de routage.
-
- .TP
- .B \-net
- la
- .B cible
--est un rseau.
-+est un réseau.
-
- .TP
- .B -host
- la
- .B cible
--est un hte.
-+est un hôte.
-
- .TP
- .B -F
--affiche la table de routage FIB du noyau. L'organisation peut tre change avec
-+affiche la table de routage FIB du noyau. L'organisation peut être changée avec
- .B \-e
- et
- .B \-ee
-@@ -117,131 +117,131 @@ ajoute une route.
-
- .TP
- .B cible
--L'hte ou le rseau destination. Vous pouvez fournir une adresse IP en
--notation dcimale pointe ou un nom d'hte ou de rseau.
-+L'hôte ou le réseau destination. Vous pouvez fournir une adresse IP en
-+notation décimale pointée ou un nom d'hôte ou de réseau.
-
- .TP
- .B netmask Nm
--spcifie le masque rseau de la route ajouter.
-+spécifie le masque réseau de la route à ajouter.
-
- .TP
- .B gw Gw
--signifie que tout paquet IP envoy cette adresse sera rout par
--la passerelle spcifie.
-+signifie que tout paquet IP envoyé à cette adresse sera routé par
-+la passerelle spécifiée.
- .B NOTE:
--La passerelle concerne doit pouvoir tre atteinte. Ceci signifie
--qu'une route statique vers cette passerelle doit pralablement exister.
--Si vous spcifiez l'adresse de l'une de vos interfaces locales, elle sera
--utilise pour dcider de l'interface vers laquelle les paquets seront
--envoys. Ceci est une bidouille permettant d'tre compatible BSD.
-+La passerelle concernée doit pouvoir être atteinte. Ceci signifie
-+qu'une route statique vers cette passerelle doit préalablement exister.
-+Si vous spécifiez l'adresse de l'une de vos interfaces locales, elle sera
-+utilisée pour décider de l'interface vers laquelle les paquets seront
-+envoyés. Ceci est une bidouille permettant d'être compatible BSD.
-
- .TP
- .B metric M
--Affecte la valeur M au champ mtrique de la table de routage (utilis par
--les dmons de routage).
-+Affecte la valeur M au champ métrique de la table de routage (utilisé par
-+les démons de routage).
-
- .TP
- .B mss M
--Spcifie le MSS (Maximum Segment Size, Taille maximum de segment) de TCP,
--pour les connexions empreintant cette route. Ce n'est normalement utilis
-+Spécifie le MSS (Maximum Segment Size, Taille maximum de segment) de TCP,
-+pour les connexions empreintant cette route. Ce n'est normalement utilisé
- que pour des optimisations fines des configurations de routage.
-
-
- .TP
- .B window W
--Dfinit la taille de fentre TCP W octets pour les connexions relatives
-- cette route. C'est en gnral uniquement utilis sur les rseaux AX.25 et
--avec les pilotes incapables de manipuler les trames dos dos.
-+Définit la taille de fenêtre TCP à W octets pour les connexions relatives
-+à cette route. C'est en général uniquement utilisé sur les réseaux AX.25 et
-+avec les pilotes incapables de manipuler les trames dos à dos.
-
- .TP
- .B irtt I
--Dfinit le iRTT initial (round trip time) pour les connexions TCP sur cette
--route I millisecondes (1-12000). C'est en gnral uniquement utilis sur
--les rseaux AX.25. Si omis, la valeur par dfaut (300 ms selon le RFC 1122)
--est utilise.
-+Définit le iRTT initial (round trip time) pour les connexions TCP sur cette
-+route à I millisecondes (1-12000). C'est en général uniquement utilisé sur
-+les réseaux AX.25. Si omis, la valeur par défaut (300 ms selon le RFC 1122)
-+est utilisée.
-
- .TP
- .B reject
--Installe une route bloquante, qui forcera l'chec d'une recherche.
--C'est par exemple utilis pour masquer les rseaux avant d'utiliser la
--route par dfaut. Ce n'est pas une fonction de pare-feu.
-+Installe une route bloquante, qui forcera l'échec d'une recherche.
-+C'est par exemple utilisé pour masquer les réseaux avant d'utiliser la
-+route par défaut. Ce n'est pas une fonction de pare-feu.
-
- .TP
- .B mod, dyn, reinstate
--Installe une route dynamique ou modifie. Les deux indicateurs ne sont en
--gnral positionns que par le dmon de routage. Cela ne sert que pour des
-+Installe une route dynamique ou modifiée. Les deux indicateurs ne sont en
-+général positionnés que par le démon de routage. Cela ne sert que pour des
- besoins de diagnostics.
-
- .TP
- .B dev If
--Force la route tre associe au priphrique spcifi, sinon le noyau
--tentera de le dterminer par lui-mme (en consultant les routes existantes
--et les spcifications de priphriques). Dans la plupart des rseaux
-+Force la route à être associée au périphérique spécifié, sinon le noyau
-+tentera de le déterminer par lui-même (en consultant les routes existantes
-+et les spécifications de périphériques). Dans la plupart des réseaux
- normaux, vous n'aurez pas besoin de ceci.
-
- If
- .B dev If
--est la dernire option de la ligne de commande, le mot
-+est la dernière option de la ligne de commande, le mot
- .B dev
--peut tre omis, puisque c'est la valeur par dfaut. Autrement l'ordre des
-+peut être omis, puisque c'est la valeur par défaut. Autrement l'ordre des
- modificateurs de route (metric - netmask - gw - dev) n'a pas d'importance.
-
- .SH EXEMPLES
- .TP
- .B route add -net 127.0.0.0
--ajoute l'entre loopback normale, en utilisant le masque 255.0.0.0 (rseau
--de classe A, selon l'adresse de destination) et associe avec l'interface
--"lo" (en supposant que ce priphrique a t correctement configur avec
-+ajoute l'entrée loopback normale, en utilisant le masque 255.0.0.0 (réseau
-+de classe A, selon l'adresse de destination) et associée avec l'interface
-+"lo" (en supposant que ce périphérique a été correctement configuré avec
- .BR ifconfig (8)).
-
- .TP
- .B route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
--ajoute une route vers le rseau 192.56.76.x via
--"eth0". Le masque de classe C n'est pas vraiment ncessaire ici car
--192.* est une adresse IP de classe C. Le mot "dev" peut tre omis.
-+ajoute une route vers le réseau 192.56.76.x via
-+"eth0". Le masque de classe C n'est pas vraiment nécessaire ici car
-+192.* est une adresse IP de classe C. Le mot "dev" peut être omis.
-
- .TP
- .B route add default gw mango-gw
--ajoute une route par dfaut (qui sera utilise si aucune autre route ne
-+ajoute une route par défaut (qui sera utilisée si aucune autre route ne
- convient). Tous les paquets empreintant cette route passeront par
--"mango-gw". Le priphrique qui sera effectivement utilis pour cette route
--dpend de la faon dont on atteint "mango-gw" - la route statique vers
--"mango-gw" devra tre pralablement configure.
-+"mango-gw". Le périphérique qui sera effectivement utilisé pour cette route
-+dépend de la façon dont on atteint "mango-gw" - la route statique vers
-+"mango-gw" devra être préalablement configurée.
-
- .TP
- .B route add ipx4 sl0
--ajoute une route vers l'hte "ipx4" via l'interface SLIP (en supposant que
--"ipx4" est l'hte SLIP).
-+ajoute une route vers l'hôte "ipx4" via l'interface SLIP (en supposant que
-+"ipx4" est l'hôte SLIP).
-
- .TP
- .B route add -net 192.57.66.0 netmask 255.255.255.0 gw ipx4
--Cette commande route le rseau "192.57.66.x" par l'ancienne route vers l'interface SLIP.
-+Cette commande route le réseau "192.57.66.x" par l'ancienne route vers l'interface SLIP.
-
- .TP
- .B route add 224.0.0.0 netmask 240.0.0.0 dev eth0
--Ceci est une commande mal documente et les gens savent ce qu'il faut
--faire? Ceci force toutes les routes IP des classes D (multicast)
-+Ceci est une commande mal documentée et les gens savent ce qu'il faut
-+faire? Ceci force toutes les routes IP des classes D (multicast) à
- passer par "eth0". C'est la configuration correcte, normale pour un noyau
- supportant le multicast.
-
- .TP
- .B route add 10.0.0.0 netmask 255.0.0.0 reject
--Installe une route 'rejete' pour le rseau priv "10.x.x.x."
-+Installe une route 'rejetée' pour le réseau privé "10.x.x.x."
-
- .LP
- .SH RESULTATS
--Le contenu des tables de routage du noyaus est affich en colonnes comme
-+Le contenu des tables de routage du noyaus est affiché en colonnes comme
- suit
- .TP
- .B Destination
--Le rseau ou hte destination.
-+Le réseau ou hôte destination.
- .TP
- .B Gateway
--L'adresse de la passerelle ou '*' si indfini.
-+L'adresse de la passerelle ou '*' si indéfini.
- .TP
- .B Genmask
--Le masque de rseau pour le rseau destinataire; '255.255.255.255' pour un hte
--et '0.0.0.0' pour la route par dfaut (
-+Le masque de réseau pour le réseau destinataire; '255.255.255.255' pour un hôte
-+et '0.0.0.0' pour la route par défaut (
- .B default
- ).
- .TP
-@@ -254,63 +254,63 @@ Les indicateurs possibles sont
- .br
- .B H
- (la cible est un
--.BR hte )
-+.BR hôte )
- .br
- .B G
- (utilise comme
- .BR passerelle )
- .br
- .B R
--.RB ( rtablit
-+.RB ( rétablit
- la route pour le routage dynamique)
- .br
- .B D
- .RB ( dynamiquement
--configure par le dmon ou par redirect)
-+configurée par le démon ou par redirect)
- .br
- .B M
--.RB ( modifie
--par le dmon de routage ou par redirect)
-+.RB ( modifiée
-+par le démon de routage ou par redirect)
- .br
- .B !
--.RB ( rejte
-+.RB ( rejète
- la route)
- .TP
- .B Metric
--La 'distance' la cible (habituellement compte en hops). Ce n'est pas
--utilis par les noyaux rcents, mais peut-tre requis par certains dmons
-+La 'distance' à la cible (habituellement comptée en hops). Ce n'est pas
-+utilisé par les noyaux récents, mais peut-être requis par certains démons
- de routage.
- .TP
- .B Ref
--Nombre de rfrences cette route. (Pas utilis dans le noyau Linux.)
-+Nombre de références à cette route. (Pas utilisé dans le noyau Linux.)
- .TP
- .B Use
- Count of lookups for the route. Depending on the use of -F and -C this will
- be either route cache misses (-F) or hits (-C).
- .TP
- .B Iface
--Interface vers laquelle les paquets empruntant cette route seront envoys.
-+Interface vers laquelle les paquets empruntant cette route seront envoyés.
- .TP
- .B MSS
--Taille de segment maximum par dfaut pour les connexions TCP sur cette
-+Taille de segment maximum par défaut pour les connexions TCP sur cette
- route.
- .TP
- .B Window
--Taille de fentre par dfaut pour les connexions TCP sur cette route.
-+Taille de fenêtre par défaut pour les connexions TCP sur cette route.
- .TP
- .B irtt
- RTT Initial (Round Trip Time). Le noyau utilise ceci pour essayer les
--meilleurs paramtres protocolaires TCP sans attendre de rponse
--(ventuellement tardive).
-+meilleurs paramètres protocolaires TCP sans attendre de réponse
-+(éventuellement tardive).
- .TP
--.B HH (seulement cach)
--Le nombre d'entres ARP et de routes caches faisant rfrence au cache
--d'en-tte matriel pour la route en cache. Ce sera la valeur \-1 si aucune adresse
--matrielle n'est ncessaire pour l'interface de la route cache (p.ex. lo).
-+.B HH (seulement caché)
-+Le nombre d'entrées ARP et de routes cachées faisant référence au cache
-+d'en-tête matériel pour la route en cache. Ce sera la valeur \-1 si aucune adresse
-+matérielle n'est nécessaire pour l'interface de la route cachée (p.ex. lo).
- .TP
--.B Arp (seulement cach)
--Indique si oui ou non l'adresse matrielle pour la route en cache est encore
-- jour.
-+.B Arp (seulement caché)
-+Indique si oui ou non l'adresse matérielle pour la route en cache est encore
-+à jour.
- .LP
- .SH FICHIERS
- .I /proc/net/ipv6_route
-@@ -324,11 +324,11 @@ Indique si oui ou non l'adresse mat
- .LP
- .SH HISTORIQUE
- .B Route
--pour Linux a t originellement crit par Fred N. van Kempen,
--<waltje@uwalt.nl.mugnet.org> puis modifi par Johannes Stille et
--Linus Torvalds pour pl15. Alan Cox a ajout les options concernant
--la gestion des fentres et MSS pour Linux 1.1.22. Le support de irtt
--et la fusion avec netstat ont t raliss par Bernd Eckenfels.
-+pour Linux a été originellement écrit par Fred N. van Kempen,
-+<waltje@uwalt.nl.mugnet.org> puis modifié par Johannes Stille et
-+Linus Torvalds pour pl15. Alan Cox a ajouté les options concernant
-+la gestion des fenêtres et MSS pour Linux 1.1.22. Le support de irtt
-+et la fusion avec netstat ont été réalisés par Bernd Eckenfels.
- .SH AUTEUR
- Maintenu par Phil Blundell <Philip.Blundell@pobox.com>.
- .SH TRADUCTION
-diff --git a/man/fr_FR/slattach.8 b/man/fr_FR/slattach.8
-index 512d514..d21d0d7 100644
---- a/man/fr_FR/slattach.8
-+++ b/man/fr_FR/slattach.8
-@@ -1,87 +1,87 @@
- .TH SLATTACH 8 "12 Feb 1994" "" ""
- .SH NOM
--slattach \- attache une interface rseau une ligne srie
-+slattach \- attache une interface réseau à une ligne série
- .SH SYNOPSIS
- .B "slattach [-dehlLmnqv] [-c commande] [-p proto] [-s vitesse] [tty]"
- .br
- .SH DESCRIPTION
- .B Slattach
--est un minuscule programme qui peut tre utilis pour attacher
--un terminal normal ("srie") dans un des diffrents modes "rseau",
--ceci vous permettant de l'utiliser pour des liaisons point--point
--vers d'autres systmes.
-+est un minuscule programme qui peut être utilisé pour attacher
-+un terminal normal ("série") dans un des différents modes "réseau",
-+ceci vous permettant de l'utiliser pour des liaisons point-à-point
-+vers d'autres systèmes.
- .SH OPTIONS
- .TP
- .B "[-c commande]"
--Excute
-+Exécute
- .B `commande'
--lorsque la ligne est suspendue. Ceci peut tre utilis pour lancer
--des scripts ou rtablir des connexions quand un lien tombe.
-+lorsque la ligne est suspendue. Ceci peut être utilisé pour lancer
-+des scripts ou réétablir des connexions quand un lien tombe.
- .TP
- .B "[-d]"
--Valide le dbogage. Utile pour dterminer pourquoi une configuration
-+Valide le débogage. Utile pour déterminer pourquoi une configuration
- ne fonctionne pas.
- .TP
- .B "[-h]"
--Termine lorsque la porteuse est perdue. Ceci fonctionne la fois sur
--les priphriques /dev/tty et /dev/cua en contrlant directement
--l'tat de la porteuse toutes les 15 secondes.
-+Termine lorsque la porteuse est perdue. Ceci fonctionne à la fois sur
-+les périphériques /dev/tty et /dev/cua en contrôlant directement
-+l'état de la porteuse toutes les 15 secondes.
- .TP
- .B "[-v]"
- Valide le mode verbeux. Utile pour les shell scripts.
- .TP
- .B "[-q]"
--Opre en mode silencieux - pas de messages du tout.
-+Opère en mode silencieux - pas de messages du tout.
- .TP
- .B "[-l]"
--Cre un fichier de vrouillage pour le priphrique comme
-+Crée un fichier de vérouillage pour le périphérique comme
- pour UUCP dans /var/lock.
- .TP
- .B "[-n]"
--Equivalent la commande "mesg n".
-+Equivalent à la commande "mesg n".
- .TP
- .B "[-m]"
- \fBn'\fPinitialise \fBpas\fP la ligne en mode raw 8 bits.
- .TP
- .B "[-e]"
--Termine correctement aprs l'initialisation du priphrique,
-+Termine correctement après l'initialisation du périphérique,
- au lieu d'attendre que la ligne soit suspendue.
- .TP
- .B "[-L]"
--Valide les oprations 3 lignes. Le terminal est mis en mode CLOCAL,
--la surveillance de porteuse est invalide.
-+Valide les opérations 3 lignes. Le terminal est mis en mode CLOCAL,
-+la surveillance de porteuse est invalidée.
- .TP
- .B "[-p proto]"
--Dfinit le protocole spcifique utiliser sur la ligne.
--La valeur par dfaut est
-+Définit le protocole spécifique à utiliser sur la ligne.
-+La valeur par défaut est
- .B "cslip"
--, c'est--dire SLIP compress. Les autres valeurs possibles sont :
-+, c'est-à-dire SLIP compressé. Les autres valeurs possibles sont :
- .B "slip"
- (SLIP normal),
- .B "adaptive"
- (CSLIP/SLIP adaptatifs),
- .B "ppp"
--(Protocole Point--Point)
-+(Protocole Point-à-Point)
- et
- .B "kiss"
--(un protocole utilis pour communiquer avec des controleurs AX.25 paquets radios).
--L'argument spcifique
-+(un protocole utilisé pour communiquer avec des controleurs AX.25 paquets radios).
-+L'argument spécifique
- .B "tty"
--peut tre utilis pour refaire passer le priphrique en
--fonctionnement srie normal. L'utilisation du mode 'ppp' n'est en
--principe pas utile puisque ppp ncessite le dmon additionnel
-+peut être utilisé pour refaire passer le périphérique en
-+fonctionnement série normal. L'utilisation du mode 'ppp' n'est en
-+principe pas utile puisque ppp nécessite le démon additionnel
- .B pppd
--pour tre actif sur la ligne. Pour les connexions `kiss', le programme
-+pour être actif sur la ligne. Pour les connexions `kiss', le programme
- .B axattach
--doit tre utilis.
-+doit être utilisé.
- .TP
- .B "[-s vitesse]"
--Dfinit la vitesse de la ligne, diffrente de la valeur par dfaut.
-+Définit la vitesse de la ligne, différente de la valeur par défaut.
- .PP
--Si aucun argument n'est donn, la ligne courante du terminal
--(habituellement lie au login) est utilise. Autrement, une tentative
--est effectue pour obtenir le port du terminal indiqu, puis il est
--vrouill et ouvert.
-+Si aucun argument n'est donné, la ligne courante du terminal
-+(habituellement liée au login) est utilisée. Autrement, une tentative
-+est effectuée pour obtenir le port du terminal indiqué, puis il est
-+vérouillé et ouvert.
- .SH FICHIERS
- .I /dev/cua* /var/lock/LCK.*
- .SH BUGS
-diff --git a/man/pt_BR/arp.8 b/man/pt_BR/arp.8
-index 41c8fd6..6c1e7f7 100644
---- a/man/pt_BR/arp.8
-+++ b/man/pt_BR/arp.8
-@@ -7,12 +7,12 @@ arp \- manipula o cache ARP do sistema
- .RB [ "\-H tipo" ]
- .RB [ "-i if" ]
- .B -a
--.RB [ mquina ]
-+.RB [ máquina ]
- .PP
- .B arp
- .RB [ \-v ]
- .RB [ "\-i if" ]
--.B "\-d mquina"
-+.B "\-d máquina"
- .RB [ pub ]
- .RB [ nopub ]
- .PP
-@@ -20,7 +20,7 @@ arp \- manipula o cache ARP do sistema
- .RB [ \-v ]
- .RB [ "\-H tipo" ]
- .RB [ "\-i if" ]
--.B -s mquina endereo_hardware
-+.B -s máquina endereço_hardware
- .RB [ temp ]
- .RB [ nopub ]
- .PP
-@@ -28,7 +28,7 @@ arp \- manipula o cache ARP do sistema
- .RB [ \-v ]
- .RB [ "\-H tipo" ]
- .RB [ "\-i if" ]
--.B -s mquina endereo_hardware
-+.B -s máquina endereço_hardware
- .RB [ "netmask nm" ]
- .B pub
- .PP
-@@ -36,7 +36,7 @@ arp \- manipula o cache ARP do sistema
- .RB [ \-v ]
- .RB [ "\-H tipo" ]
- .RB [ "\-i if" ]
--.B -Ds mquina ifa
-+.B -Ds máquina ifa
- .RB [ "netmask nm" ]
- .B pub
- .PP
-@@ -46,28 +46,28 @@ arp \- manipula o cache ARP do sistema
- .RB [ "-i if" ]
- .B -f arquivo
-
--.SH DESCRIO
-+.SH DESCRIÇÃO
- .B arp
--manipula o cache ARP do kernel de vrias maneiras. As principais opes
--so remoo de uma entrada de mapeamento de endereo e configurao manual
--de um endereo. Para propsitos de depurao, o programa
-+manipula o cache ARP do kernel de várias maneiras. As principais opções
-+são remoção de uma entrada de mapeamento de endereço e configuração manual
-+de um endereço. Para propósitos de depuração, o programa
- .B arp
--tambm permite um dump completo do cache ARP.
--.SH OPES
-+também permite um dump completo do cache ARP.
-+.SH OPÇÕES
- .TP
- .B "\-v, \-\-verbose"
--Mostra ao usurio o que est acontecendo, de modo detalhado.
-+Mostra ao usuário o que está acontecendo, de modo detalhado.
- .TP
- .B "\-n, \-\-numeric"
--mostra endereos numricos, ao invs de tentar determinar os nomes simblicos da
--mquina, porta e usurio.
-+mostra endereços numéricos, ao invés de tentar determinar os nomes simbólicos da
-+máquina, porta e usuário.
- .TP
- .B "\-H type, \-\-hw-type type"
--Quando configurando ou lendo o cache ARP, este parmetro opcional informa ao
-+Quando configurando ou lendo o cache ARP, este parâmetro opcional informa ao
- .B arp
--que classe de entradas devem ser verificadas. O valor padro deste parmetro
-+que classe de entradas devem ser verificadas. O valor padrão deste parâmetro é
- .B ether
--(i.e. cdigo de hardware 0x01 para Ethernet IEEE 802.3 10Mbps).
-+(i.e. código de hardware 0x01 para Ethernet IEEE 802.3 10Mbps).
- Outros valores podem incluir tecnologias de rede como
- .RB "ARCnet (" arcnet ")"
- ,
-@@ -77,86 +77,86 @@ Outros valores podem incluir tecnologias de rede como
- e
- .RB "NET/ROM (" netrom ")."
- .TP
--.B "\-a [mquina], \-\-display [mquina]"
--Mostra as entradas das mquinas especificadas. Se o parmetro
--.B mquina
--no for usado,
-+.B "\-a [máquina], \-\-display [máquina]"
-+Mostra as entradas das máquinas especificadas. Se o parâmetro
-+.B máquina
-+não for usado,
- .B todas
--as entradas sero mostradas.
-+as entradas serão mostradas.
- .TP
--.B "\-d mquina, \-\-delete mquina"
--Remove quaisquer entradas para a mquina especificada. Isto pode ser
--usado se a mquina indicada for desligada, por exemplo. Nos kernels
-+.B "\-d máquina, \-\-delete máquina"
-+Remove quaisquer entradas para a máquina especificada. Isto pode ser
-+usado se a máquina indicada for desligada, por exemplo. Nos kernels
- mais recentes o
- .BR arp (1)
--suporta a especificao de
-+suporta a especificação de
- .B pub
- ou
- .B nopub
--para decidir se uma entrada pblica ou privada deve ser removida. Se voc
--no informar uma destas flags as duas entradas sero removidas.
-+para decidir se uma entrada pública ou privada deve ser removida. Se você
-+não informar uma destas flags as duas entradas serão removidas.
- .TP
- .B "\-D, \-\-use-device"
--Usa o endereo de hardware da interface
-+Usa o endereço de hardware da interface
- .BR ifa
- .TP
- .B "\-i If, \-\-device If"
- Seleciona uma interface. Quando mostrando o cache ARP somente entradas iguais
-- interface sero mostradas. Configura uma entrada ARP permanente ou
--temporria que ser usada no dispositivo especificado. Se nenhum dispositivo for
-+à interface serão mostradas. Configura uma entrada ARP permanente ou
-+temporária que será usada no dispositivo especificado. Se nenhum dispositivo for
- informado, o kernel descobre o dispositivo a partir da tabela de roteamento.
- Para entradas
- .B pub
--a interface especificada a interface na qual as requisies ARP sero
-+a interface especificada é a interface na qual as requisições ARP serão
- respondidas.
- .br
- .B NOTA:
--Deve ser diferente da interface para a qual os pacotes IP sero roteados.
-+Deve ser diferente da interface para a qual os pacotes IP serão roteados.
- .TP
--.B "\-s mquina endereo_hardware, \-\-set mquina"
--Cria manualmente uma entrada de mapeamento de endereo ARP para a mquina
--.B mquina
--com endereo de hardware configurado para
--.B endereo_hardware.
--O formato do endereo de hardware depende da classe de hardware, mas
--para a maioria das classes pode-se assumir que a apresentao usual pode
--ser usada. Para a classe Ethernet, so 6 bytes em hexadecimal, separados
--por dois pontos (:). Quando adicionando entradas proxy arp (isto , aquelas
-+.B "\-s máquina endereço_hardware, \-\-set máquina"
-+Cria manualmente uma entrada de mapeamento de endereço ARP para a máquina
-+.B máquina
-+com endereço de hardware configurado para
-+.B endereço_hardware.
-+O formato do endereço de hardware depende da classe de hardware, mas
-+para a maioria das classes pode-se assumir que a apresentação usual pode
-+ser usada. Para a classe Ethernet, são 6 bytes em hexadecimal, separados
-+por dois pontos (:). Quando adicionando entradas proxy arp (isto é, aquelas
- com a flag
--.BR pb lico
-+.BR púb lico
- setadas) uma
- .B netmask
- pode ser especificada para o proxy arp de uma subrede inteira.
--Proxy arp para rotear redes inteiras no um bom protocolo, mas algumas
--vezes til, ento suportado. Se a flag
-+Proxy arp para rotear redes inteiras não é um bom protocolo, mas algumas
-+vezes é útil, então é suportado. Se a flag
- .B temp
--no for fornecida, as entradas sero permanentemente armazenadas no cache ARP.
-+não for fornecida, as entradas serão permanentemente armazenadas no cache ARP.
- .TP
- .B "\-f arquivo, \-\-file arquivo"
--Similar opo
-+Similar à opção
- .B \-s
--s que desta vez as informaes de endereos so obtidas a partir do arquivo
-+só que desta vez as informações de endereços são obtidas a partir do arquivo
- .B arquivo.
--Isto pode ser usado se entradas ARP para muitas mquinas tiverem que ser
--configuradas. O nome do arquivo de dados freqentemente
-+Isto pode ser usado se entradas ARP para muitas máquinas tiverem que ser
-+configuradas. O nome do arquivo de dados é freqüentemente
- .IR /etc/ethers ,
--mas isto no oficial.
-+mas isto não é oficial.
- .sp 1
--O formato deste arquivo simples; ele somente contm linhas de texto ASCII com
--um nome de mquina e um endereo de hardware separados por um espao em branco.
-+O formato deste arquivo é simples; ele somente contém linhas de texto ASCII com
-+um nome de máquina e um endereço de hardware separados por um espaço em branco.
- Adicionalmente as flags
- .BR "pub" , " nopub" , " temp" " and" " netmask"
- podem ser usadas.
- .LP
- Em todos os lugares onde uma
--.B mquina
-- esperada, voc tambm pode informar um
--.B "endereo IP"
--em notao decimal separada por pontos.
-+.B máquina
-+é esperada, você também pode informar um
-+.B "endereço IP"
-+em notação decimal separada por pontos.
- .LP
--Cada entrada completa no cache ARP ser marcada com uma flag
-+Cada entrada completa no cache ARP será marcada com uma flag
- .BR C .
--Entradas permanentes so marcadas com um
-+Entradas permanentes são marcadas com um
- .B M
- e entradas publicadas tem uma flag
- .BR P .
-@@ -171,7 +171,7 @@ e entradas publicadas tem uma flag
- .SH AUTOR
- Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org> com muitas melhorias
- feitas pelo mantenedor do net-tools, Bernd Eckenfels <net-tools@lina.inka.de>.
--Traduo para a lngua portuguesa feita por
-+Tradução para a língua portuguesa feita por
- Arnaldo Carvalho de Melo <acme@conectiva.com.br> em 11/abril/1998.
- Revisado por
- Jorge Luiz Godoy Filho <jorge@bestway.com.br> em 15/abril/1998.
-diff --git a/man/pt_BR/hostname.1 b/man/pt_BR/hostname.1
-index fe00879..5880fc8 100644
---- a/man/pt_BR/hostname.1
-+++ b/man/pt_BR/hostname.1
-@@ -1,15 +1,15 @@
- .TH HOSTNAME 1 "28 de janeiro de 1996" "net-tools" "Manual do Programador Linux"
-
- .SH NOME
--hostname \- mostra ou configura o nome da mquina
-+hostname \- mostra ou configura o nome da máquina
- .BR
--domainname \- mostra ou configura o nome do domnio NIS/YP
-+domainname \- mostra ou configura o nome do domínio NIS/YP
- .BR
--dnsdomainname \- mostra o nome do domnio DNS
-+dnsdomainname \- mostra o nome do domínio DNS
- .BR
--nisdomainname \- mostra ou configura o nome do domnio NIS/YP
-+nisdomainname \- mostra ou configura o nome do domínio NIS/YP
- .BR
--ypdomainname \- mostra ou configura o nome do domnio NIS/YP
-+ypdomainname \- mostra ou configura o nome do domínio NIS/YP
-
- .SH SINOPSE
- .B hostname
-@@ -34,7 +34,7 @@ ypdomainname \- mostra ou configura o nome do dom
- .RB [ \-v ]
- .RB [ \-F\ arquivo ]
- .RB [ \-\-file\ arquivo ]
--.RB [ mquina ]
-+.RB [ máquina ]
-
- .PP
- .B domainname
-@@ -61,11 +61,11 @@ ypdomainname \- mostra ou configura o nome do dom
- .B ypdomainname
- .RB [ \-v ]
-
--.SH DESCRIO
-+.SH DESCRIÇÃO
- .B hostname
-- o programa usado para configurar ou mostrar o nome corrente da mquina
--ou o domnio do sistema. Este nome usado por muitos dos programas de
--rede para identificar a mquina. O nome do domnio tambm usado pelo
-+é o programa usado para configurar ou mostrar o nome corrente da máquina
-+ou o domínio do sistema. Este nome é usado por muitos dos programas de
-+rede para identificar a máquina. O nome do domínio também é usado pelo
- NIS/YP.
-
- .SS "OBTER NOME"
-@@ -73,119 +73,119 @@ Quando chamado sem argumentos o programa mostra os nomes correntes:
-
- .LP
- .B hostname
--mostrar o nome do sistema conforme retornado pela funo
-+mostrará o nome do sistema conforme retornado pela função
- .BR gethostname (2).
-
-
- .LP
- .B "domainname, nisdomainname, ypdomainname"
--mostrar o nome do sistema conforme retornado pela funo
-+mostrará o nome do sistema conforme retornado pela função
- .BR getdomainname (2).
--Isto tambm conhecido como o nome de domnio YP/NIS do sistema.
-+Isto também é conhecido como o nome de domínio YP/NIS do sistema.
-
- .LP
- .B dnsdomainname
--mostrara a parte do domnio do FQDN (Nome de domnio completamente qualificado).
--O FQDN do sistema retornado pelo comando
-+mostrara a parte do domínio do FQDN (Nome de domínio completamente qualificado).
-+O FQDN do sistema é retornado pelo comando
- .BR "hostname \-\-fqdn" .
-
- .SS "CONFIGURAR NOME"
--Quando chamado com um argumento ou com a opo
-+Quando chamado com um argumento ou com a opção
- .B \-\-file
--, o comando configura o nome da mquina ou do domnio NIS/YP.
-+, o comando configura o nome da máquina ou do domínio NIS/YP.
-
- .LP
--Note que somente o super usurio pode mudar os nomes.
-+Note que somente o super usuário pode mudar os nomes.
-
- .LP
--Nao possvel configurar o FQDN ou o nome do domnio DNS com o comando
-+Nao é possível configurar o FQDN ou o nome do domínio DNS com o comando
- .B dnsdomainname
- (veja
- .B "O FQDN"
- abaixo).
-
- .LP
--O nome da mquina normalmente configurado durante a inicializao do sistema,
-+O nome da máquina é normalmente configurado durante a inicialização do sistema,
- em
- .I /etc/rc.d/rc.inet1
- ou
- .I /etc/init.d/boot
--(normalmente lendo o contedo de um arquivo que contm o nome da mquina, ex.:
-+(normalmente lendo o conteúdo de um arquivo que contém o nome da máquina, ex.:
- .IR /etc/hostname ).
-
- .SS O FQDN
--Voc no pode mudar o FQDN (conforme retornado por
-+Você não pode mudar o FQDN (conforme retornado por
- .BR "hostname \-\-fqdn" )
--ou o nome do domnio DNS (conforme retornado por
-+ou o nome do domínio DNS (conforme retornado por
- .BR "dnsdomainname" )
--com este comando. O FQDN do sistema o nome que o
-+com este comando. O FQDN do sistema é o nome que o
- .BR resolver (3)
--retorna para o nome da mquina.
-+retorna para o nome da máquina.
-
- .LP
--Tecnicamente: O FQDN o nome retornado pelo
-+Tecnicamente: O FQDN é o nome retornado pelo
- .BR gethostbyname (2)
- para o nome retornado pelo
- .BR gethostname (2).
--O nome do domnio DNS a parte aps o primeiro ponto.
-+O nome do domínio DNS é a parte após o primeiro ponto.
- .LP
--Portanto isto depende da configurao (normalmente em
-+Portanto isto depende da configuração (normalmente em
- .IR /etc/host.conf )
--para que voc possa mud-lo. Normalmente (se o arquivo hosts for lido antes
--do DNS ou NIS) voc pode mud-lo em
-+para que você possa mudá-lo. Normalmente (se o arquivo hosts for lido antes
-+do DNS ou NIS) você pode mudá-lo em
- .IR /etc/hosts .
-
-
--.SH OPES
-+.SH OPÇÕES
- .TP
- .I "\-a, \-\-alias"
--Mostra o alias da mquina (se usado).
-+Mostra o alias da máquina (se usado).
- .TP
- .I "\-d, \-\-domain"
--Mostra o nome do domnio DNS. No use o comando
-+Mostra o nome do domínio DNS. Não use o comando
- .B domainname
--para obter o nome do domnio DNS porque ele mostrar o nome do domnio NIS e
--no o nome do domnio DNS. Use
-+para obter o nome do domínio DNS porque ele mostrará o nome do domínio NIS e
-+não o nome do domínio DNS. Use
- .BR dnsdomainname .
- .TP
- .I "\-F, \-\-file arquivo"
--Leia o nome da mquina a partir do arquivo especificado. Comentrios (linhas
--comeando com um `#') so ignorados.
-+Leia o nome da máquina a partir do arquivo especificado. Comentários (linhas
-+começando com um `#') são ignorados.
- .TP
- .I "\-f, \-\-fqdn, \-\-long"
--Mostra o FQDN (Nome de Domnio Completamente Qualificado). Um FQDN consiste de
--um nome curto de mquina e do nome do domnio DNS. A menos que voc esteja
--usando bind ou NIS para resoluo de nomes voc pode mudar o FQDN e o nome
--do domnio DNS (que parte do FQDN) no arquivo \fI/etc/hosts\fR.
-+Mostra o FQDN (Nome de Domínio Completamente Qualificado). Um FQDN consiste de
-+um nome curto de máquina e do nome do domínio DNS. A menos que você esteja
-+usando bind ou NIS para resolução de nomes você pode mudar o FQDN e o nome
-+do domínio DNS (que é parte do FQDN) no arquivo \fI/etc/hosts\fR.
- .TP
- .I "\-h, \-\-help"
- Mostra uma mensagem sobre como utilizar o comando e termina.
- .TP
- .I "\-i, \-\-ip-address"
--Mostra o(s) endereo(s) IP da mquina.
-+Mostra o(s) endereço(s) IP da máquina.
- .TP
- .I "\-s, \-\-short"
--Mostra o nome curto da mquina. o nome da mquina at o primeiro ponto.
-+Mostra o nome curto da máquina. É o nome da máquina até o primeiro ponto.
- .TP
- .I "\-V, \-\-version"
--Mostra informao de verso na sada padro e termina com sucesso.
-+Mostra informação de versão na saída padrão e termina com sucesso.
- .TP
- .I "\-v, \-\-verbose"
--Mostra uma sada detalhada do que est acontecendo.
-+Mostra uma saída detalhada do que está acontecendo.
- .TP
- .I "\-y, \-\-yp, \-\-nis"
--Mostra o nome do domnio NIS. Se um parmetro for especificado (ou
-+Mostra o nome do domínio NIS. Se um parâmetro for especificado (ou
- .B \-\-file arquivo
--) ento o root tambm pode configurar um novo domnio NIS.
-+) então o root também pode configurar um novo domínio NIS.
- .SH ARQUIVOS
- .B /etc/hosts
- .SH AUTOR
- Peter Tobias, <tobias@et-inf.fho-emden.de>
- .BR
--Bernd Eckenfels, <net-tools@lina.inka.de> (NIS e pgina man).
-+Bernd Eckenfels, <net-tools@lina.inka.de> (NIS e página man).
- .BR
--Arnaldo Carvalho de Melo, <acme@conectiva.com.br> Traduo para a lngua
-+Arnaldo Carvalho de Melo, <acme@conectiva.com.br> Tradução para a língua
- portuguesa.
- .BR
--Jorge Luiz Godoy Filho, <jorge@bestway.com.br> Reviso.
-+Jorge Luiz Godoy Filho, <jorge@bestway.com.br> Revisão.
- .BR
-diff --git a/man/pt_BR/ifconfig.8 b/man/pt_BR/ifconfig.8
-index 0a97683..1432dc5 100644
---- a/man/pt_BR/ifconfig.8
-+++ b/man/pt_BR/ifconfig.8
-@@ -4,13 +4,13 @@ ifconfig \- configura uma interface de rede
- .SH SINOPSE
- .B "ifconfig [interface]"
- .br
--.B "ifconfig interface [aftype] opes | endereos ..."
--.SH DESCRIO
-+.B "ifconfig interface [aftype] opções | endereços ..."
-+.SH DESCRIÇÃO
- .B ifconfig
-- usado para configurar (e posteriormente manter) as interfaces de
--rede. usado durante o boot para configurar a maioria delas para
--um estado usvel. Depois disto, normalmente somente necessrio
--durante depuraes ou quando for necessria uma configurao fina
-+é usado para configurar (e posteriormente manter) as interfaces de
-+rede. É usado durante o boot para configurar a maioria delas para
-+um estado usável. Depois disto, é normalmente somente necessário
-+durante depurações ou quando for necessária uma configuração fina
- do sistema.
- .LP
- Se nenhum argumento for informado,
-@@ -19,12 +19,12 @@ somente mostra o estado das interfaces correntemente definidas. Se
- um argumento
- .B interface
- for informado, ele mostra somente o estado da interface informada. De
--outra forma ele assume que os parmetros devem ser configurados.
--.SH Famlias de Endereamento
--Se o primeiro argumento aps o nome da interface for reconhecido
--como um nome de uma famlia de endereamento suportada, esta famlia
--de endereamento usada na decodificao e apresentao de todos
--os endereos de protocolos. Atualmente as famlias de endereamento
-+outra forma ele assume que os parâmetros devem ser configurados.
-+.SH Famílias de Endereçamento
-+Se o primeiro argumento após o nome da interface for reconhecido
-+como um nome de uma família de endereçamento suportada, esta família
-+de endereçamento é usada na decodificação e apresentação de todos
-+os endereços de protocolos. Atualmente as famílias de endereçamento
- suportadas incluem
- .B inet
- (TCP/IP, default)
-@@ -36,95 +36,91 @@ suportadas incluem
- (Novell IPX) and
- .B netrom
- (AMPR Packet radio).
--.SH OPES
-+.SH OPÇÕES
- .TP
- .B interface
--O nome da interface de rede. Usualmente um nome como
-+O nome da interface de rede. Usualmente é um nome como
- .B eth0
- ,
- .B sl3
- ou algo parecido: um nome de driver de dispositivo seguido por um
--nmero.
-+número.
- .TP
- .B up
--Esta flag causa a ativao da interface. especificada
--implicitamente se a interface receber um novo endereo (veja
-+Esta flag causa a ativação da interface. É especificada
-+implicitamente se a interface receber um novo endereço (veja
- abaixo).
- .TP
- .B down
--Esta flag desativa o driver desta interface, til quando alguma
--coisa comear a ter problemas.
-+Esta flag desativa o driver desta interface, é útil quando alguma
-+coisa começar a ter problemas.
- .TP
- .B "[\-]arp"
- Habilita ou desabilita o uso do protocolo ARP para esta interface. Se
--o sinal de menos (\-) estiver presente a opo desligada.
-+o sinal de menos (\-) estiver presente a opção é desligada.
- .TP
- .B "[\-]trailers"
--Habilita ou desabilita o uso de trailer em frames Ethernet. No
--utilizada na implementao atual do pacote net-tools.
-+Habilita ou desabilita o uso de trailer em frames Ethernet. Não é
-+utilizada na implementação atual do pacote net-tools.
- .TP
- .B "[\-]allmulti"
- Habilita ou desabilita o modo
- .B promiscuous
--da interface. Isto significa que todos os frames passaro pela camada
--de rede do kernel, permitindo monitorao da rede.
--.TP
--.B "metric N"
--Este parmetro configura a mtrica da interface. No usado atualmente,
--mas ser implementado no futuro.
-+da interface. Isto significa que todos os frames passarão pela camada
-+de rede do kernel, permitindo monitoração da rede.
- .TP
- .B "mtu N"
--Este parmetro configura a Unidade Mxima de Transferncia (MTU) de uma
--interface. Para Ethernet um nmero entre 1000-2000 (o padro
--1500). Para SLIP, use algo entre 200 e 4096. Note que a implementao
--atual no manipula fragmentao IP ainda, ento melhor configurar
-+Este parâmetro configura a Unidade Máxima de Transferência (MTU) de uma
-+interface. Para Ethernet é um número entre 1000-2000 (o padrão é
-+1500). Para SLIP, use algo entre 200 e 4096. Note que a implementação
-+atual não manipula fragmentação IP ainda, então é melhor configurar
- a MTU com um tamanho adequado!
- .TP
- .B "dstaddr addr"
--Configura o endereo IP do "outro lado" no caso de um link Ponto-A-Ponto,
-+Configura o endereço IP do "outro lado" no caso de um link Ponto-A-Ponto,
- como PPP. Esta palavra-chave tornou-se obsoleta e deve ser usada a nova
- palavra-chave
- .BR pointopoint .
- .TP
- .B "netmask addr"
--Configura a mscara de rede IP para esta interface. Este valor assume o
--padro usual das classes A, B ou C (deduzindo-o a partir do endereo
-+Configura a máscara de rede IP para esta interface. Este valor assume o
-+padrão usual das classes A, B ou C (deduzindo-o a partir do endereço
- IP da interface), mas pode ser configurado para qualquer valor para o
- uso de sub-redes.
-
- .TP
- .B "irq addr"
--Configura a linha de interrupo (IRQ) usada por este dispositivo. Muitos
--dispositivos no suportam configurao dinmica de IRQ.
-+Configura a linha de interrupção (IRQ) usada por este dispositivo. Muitos
-+dispositivos não suportam configuração dinâmica de IRQ.
- .TP
--.B "[-]broadcast [endereo]"
--Se o argumento endereo for informado, configura o endereo de protocolo
-+.B "[-]broadcast [endereço]"
-+Se o argumento endereço for informado, configura o endereço de protocolo
- broadcast para esta interface. De outra forma ele somente configura a flag
- .B IFF_BROADCAST
- da interface. Se a palavra-chave for precedida por um sinal de menos
- .B (-)
--, ento a flag removida.
-+, então a flag é removida.
- .TP
--.B "[-]pointopoint [endereo]"
-+.B "[-]pointopoint [endereço]"
- Esta palavra-chave habilita o modo
- .B ponto-a-ponto
--da interface, significando que ela um link direto entre duas mquinas
--sem ningum ouvindo (ou, pelo menos ns esperamos que este seja o caso
-+da interface, significando que ela é um link direto entre duas máquinas
-+sem ninguém ouvindo (ou, pelo menos nós esperamos que este seja o caso
- :-)
- .BR
--Se o argumento endereo for informado, configura o endereo de protocolo
-+Se o argumento endereço for informado, configura o endereço de protocolo
- do outro lado do link, exatamente como a palavra-chave obsoleta
- .B dstaddr
- faz. De outra forma, ela somente configura a flag
- .B IFF_POINTOPOINT
- da interface. Se a palavra-chave for precedida por um sinal de menos
- .B (-)
--, ento a flag removida.
-+, então a flag é removida.
- .TP
- .B "hw"
--Configura o endereo de hardware para esta interface, se o driver do
--dispositivo suportar esta operao. A palavra-chave deve ser seguida
--pelo nome da classe do hardware e o equivalente em ASCII do endereo
-+Configura o endereço de hardware para esta interface, se o driver do
-+dispositivo suportar esta operação. A palavra-chave deve ser seguida
-+pelo nome da classe do hardware e o equivalente em ASCII do endereço
- de hardware. As classes de hardware atualmente suportadas incluem
- .B ether
- (Ethernet),
-@@ -136,45 +132,34 @@ e
- (AMPR NET/ROM).
- .TP
- .B multicast
--Inicializa a flag de multicast para a interface. Normalmente, isto no ser
--necessrio j que os drivers ajustam as flags corretas por si s.
-+Inicializa a flag de multicast para a interface. Normalmente, isto não será
-+necessário já que os drivers ajustam as flags corretas por si só.
- .TP
--.B endereo
--O nome ou endereo IP da mquina (um nome de mquina ser traduzido para
--um endereo IP) da interface. Este parmetro necessrio, apesar
--da sintaxe atualmente no requisit-lo.
-+.B endereço
-+O nome ou endereço IP da máquina (um nome de máquina será traduzido para
-+um endereço IP) da interface. Este parâmetro é necessário, apesar
-+da sintaxe atualmente não requisitá-lo.
- .SH NOTAS
--
--+Since kernel release 2.2 there are no explicit interface statistics for
--+alias interfaces anymore. The statistics printed for the original address
--+are shared with all alias addresses on the same device. If you want per-address
--+statistics you should add explicit accounting
--+rules for the address using the
--+.BR ipchains(8)
--+command.
--
--Deste o kernel 2.2 no existem mais estatsticas explcitas para os apelidos (aliases)
--de interfaces. As estatsticas mostradas para o endereo original so compartilhadas
--como todos os endereos associados ao mesmo dispositivo. Se desejar estatsticas
--por endereo voc deve explicitamente adicionar regras de contabilizao para os
--endereos usando o comando
--.BR ipchains(8)
-+Deste o kernel 2.2 não existem mais estatísticas explícitas para os apelidos (aliases)
-+de interfaces. As estatísticas mostradas para o endereço original são compartilhadas
-+como todos os endereços associados ao mesmo dispositivo. Se desejar estatísticas
-+por endereço você deve explicitamente adicionar regras de contabilização para os
-+endereços usando o comando
-+.BR iptables(8)
- .
-
- .SH ARQUIVOS
--.I /proc/net/socket
--.br
- .I /proc/net/dev
- .SH BUGS
--Os endereos appletalk DDP e IPX sero mostrados, mas no podem ser alterados
-+Os endereços appletalk DDP e IPX serão mostrados, mas não podem ser alterados
- com este comando.
--.SH VEJA TAMBM
--route(8), netstat(8), arp(8), rarp(8), ipchains(8)
-+.SH VEJA TAMBÉM
-+route(8), netstat(8), arp(8), rarp(8), iptables(8)
- .SH AUTORES
- Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
- Alan Cox, <Alan.Cox@linux.org>
--.SH TRADUO E REVISO PARA A LNGUA PORTUGUESA
--Arnaldo Carvalho de Melo <acme@conectiva.com.br> (traduo)
-+.SH TRADUÇÃO E REVISÃO PARA A LÍNGUA PORTUGUESA
-+Arnaldo Carvalho de Melo <acme@conectiva.com.br> (tradução)
- .BR
--Jorge Luiz Godoy Filho <jorge@bestway.com.br> (reviso)
-+Jorge Luiz Godoy Filho <jorge@bestway.com.br> (revisão)
-
-diff --git a/man/pt_BR/netstat.8 b/man/pt_BR/netstat.8
-index b9b359a..d2d04ef 100644
---- a/man/pt_BR/netstat.8
-+++ b/man/pt_BR/netstat.8
-@@ -5,13 +5,13 @@
- .\"
- .\" Modificado por: Bernd.Eckenfels@inka.de
- .\" Modificado por: Andi Kleen ak@muc.de
--.\" Traduzido para portugus por Arnaldo Carvalho de Melo <acme@conectiva.com.br>
-+.\" Traduzido para português por Arnaldo Carvalho de Melo <acme@conectiva.com.br>
- .\" Revisado por Jorge Luiz Godoy Filho <jorge@bestway.com.br>
- .\"
--.TH NETSTAT 8 "19 de maio de 1997" "net-tools" "Manual do Programador Linux"
-+.TH NETSTAT 8 "2007-12-02" "net-tools" "Manual do Programador Linux"
-
- .SH NOME
--netstat \- Mostra conexes de rede, tabelas de roteamento, estatsticas de interface e conexes
-+netstat \- Mostra conexões de rede, tabelas de roteamento, estatísticas de interface e conexões
- mascaradas.
- .SH SINOPSE
-
-@@ -19,6 +19,8 @@ mascaradas.
- .RB [ \-venaoc ]
- .RB [ \-\-tcp | \-t ]
- .RB [ \-\-udp | \-u ]
-+.RB [ \-\-udplite | \-U ]
-+.RB [ \-\-sctp | \-S ]
- .RB [ \-\-raw | \-w ]
- .RB [ \-\-unix | \-x ]
- .RB [ \-\-inet | \-\-ip ]
-@@ -63,90 +65,90 @@ mascaradas.
- .RB { \-h | \-\-help }
-
- .PP
--.SH DESCRIO
-+.SH DESCRIÇÃO
- .B netstat
--mostra informaes do subsistema de rede do Linux.
-+mostra informações do subsistema de rede do Linux.
-
--.SS "(sem opes)"
--Voc pode ver o estado das conexes de rede atravs da listagem dos sockets
--abertos. Esta a operao padro: se voc no especificar nenhuma
--famlia de endereos, os sockets ativos de todas as famlias de endereos
--configuradas sero mostrados. Com
-+.SS "(sem opções)"
-+Você pode ver o estado das conexões de rede através da listagem dos sockets
-+abertos. Esta é a operação padrão: se você não especificar nenhuma
-+família de endereços, os sockets ativos de todas as famílias de endereços
-+configuradas serão mostrados. Com
- .B -e
--voc obter informaes adicionais (userid). Com a chave
-+você obterá informações adicionais (userid). Com a chave
- .B -v
--voc poder fazer com que o netstat reclame sobre famlias de endereos
--conhecidas que no sejam suportadas pelo kernel. A opo
-+você poderá fazer com que o netstat reclame sobre famílias de endereços
-+conhecidas que não sejam suportadas pelo kernel. A opção
- .B -o
--mostra algumas informaes adicionais sobre temporizadores de rede.
-+mostra algumas informações adicionais sobre temporizadores de rede.
- .B -a
--mostra todos os sockets, incluindo sockets de servidores. A famlia de
--endereos
-+mostra todos os sockets, incluindo sockets de servidores. A família de
-+endereços
- .B inet
--mostrar sockets raw, udp e tcp.
-+mostrará sockets raw, udp e tcp.
-
- .SS "\-r, \-\-route"
--Com a opo
-+Com a opção
- .BR \-r ", " \-\-route
--voc obter as tabelas de roteamento do kernel no mesmo formato usado por
-+você obterá as tabelas de roteamento do kernel no mesmo formato usado por
- .BR "route -e" .
- .B "netstat -er"
--usar o formato de apresentao do comando
-+usará o formato de apresentação do comando
- .BR route .
- Por favor veja
- .BR route (8)
- para maiores detalhes.
-
--.SS "\-i, \-\-interface \fIiface\fI"
--Se voc usar a opo
-+.SS "\-i, \-\-interfaces \fIiface\fI"
-+Se você usar a opção
- .BR -i ", " --interfaces
- , uma tabela de todas (ou da
- .IR iface
--especificada) as interfaces de rede ser mostrada. A sada usa o formato
-+especificada) as interfaces de rede será mostrada. A saída usa o formato
- .B "ifconfig -e"
--, e descrita em
-+, e é descrita em
- .BR ifconfig (8).
- .B "netstat -ei"
--mostrar uma tabela ou uma entrada de interface como
-+mostrará uma tabela ou uma entrada de interface como
- .B ifconfig
- mostra. Com a chave
- .B -a
--, voc pode incluir interfaces que no estejam configuradas (i.e. no tem
-+, você pode incluir interfaces que não estejam configuradas (i.e. não tem
- a flag
- .BR U = UP
- configurada).
-
- .SS "\-M, \-\-masquerade"
-
--Uma lista de todas as sesses mascaradas tambm pode ser vista. Com a chave
-+Uma lista de todas as sessões mascaradas também pode ser vista. Com a chave
- .B -e
--voc pode incluir mais algumas informaes sobre numerao sequencial e deltas
--, causados por reescritas de dados em sesses FTP (comando PORT).
--O suporte a mascaramento usado para esconder mquinas em endereos de
--rede no oficiais do resto do mundo, como descrito em
--.BR ipfw (4), ipfwadm "(8) e ipfw (8).
-+você pode incluir mais algumas informações sobre numeração sequencial e deltas
-+, causados por reescritas de dados em sessões FTP (comando PORT).
-+O suporte a mascaramento é usado para esconder máquinas em endereços de
-+rede não oficiais do resto do mundo, como descrito em
-+.BR iptables (8).
-
- .SS "\-s, \-\-statistics"
-
--Mostra estatsticas sobre o subsistema de rede do kernel do Linux, que
--so lidas a partir de
-+Mostra estatísticas sobre o subsistema de rede do kernel do Linux, que
-+são lidas a partir de
- .IR /proc/net/snmp .
-
- .PP
--.SH OPES
-+.SH OPÇÕES
- .SS "\-v, \-\-verbose"
--Informa ao usurio o que est ocorrendo, sendo detalhado. Especialmente
--mostra algumas informaes teis sobre famlias de endereos no
-+Informa ao usuário o que está ocorrendo, sendo detalhado. Especialmente
-+mostra algumas informações úteis sobre famílias de endereços não
- configuradas.
-
- .SS "\-n, \-\-numeric"
--Mostra endereos numricos, sem tentar resolver os nomes da mquina, porta ou
--usurio.
-+Mostra endereços numéricos, sem tentar resolver os nomes da máquina, porta ou
-+usuário.
-
--.SS "\-A, \-\-af \fIfamlia\fI"
--Usa um mtodo diferente para configurar as famlias de endereos.
--.I famlia
-- uma lista de palavras-chave de famlias de endereos separadas por vrgulas
-+.SS "\-A, \-\-af \fIfamília\fI"
-+Usa um método diferente para configurar as famílias de endereços.
-+.I família
-+é uma lista de palavras-chave de famílias de endereços separadas por vírgulas
- (',') como
- .BR inet ,
- .BR unix ,
-@@ -155,7 +157,7 @@ Usa um m
- .B netrom
- e
- .BR ddp .
--Tem o mesmo efeito de usar as opes longas
-+Tem o mesmo efeito de usar as opções longas
- .BR \-\-inet ,
- .BR \-\-unix ,
- .BR \-\-ipx ,
-@@ -165,99 +167,99 @@ e
- .BR \-\-ddp.
-
- .SS "\-c, \-\-continuous"
--Isto far com que
-+Isto fará com que
- .B netstat
--mostre a tabela selecionada a cada segundo, continuamente na tela at que
--voc o interrompa.
-+mostre a tabela selecionada a cada segundo, continuamente na tela até que
-+você o interrompa.
-
- .PP
--.SH SADA
-+.SH SAÍDA
-
- .PP
--.SS Conexes Internet Ativas \fR(TCP, UDP, RAW)\fR
-+.SS Conexões Internet Ativas \fR(TCP, UDP, RAW)\fR
-
- .SS "Proto"
- O protocolo (tcp, udp, raw) usado pelo socket.
-
- .SS "Recv-Q"
--O contador de bytes no copiados pelo programa conectado a este socket.
-+O contador de bytes não copiados pelo programa conectado a este socket.
-
- .SS "Send-Q"
--O contador de bytes no confirmados pela mquina remota.
-+O contador de bytes não confirmados pela máquina remota.
-
--.SS "Endereo Local"
--O endereo local (nome da mquina local) e o numero da porta do socket. A menos
-+.SS "Endereço Local"
-+O endereço local (nome da máquina local) e o numero da porta do socket. A menos
- que a chave
- .B -n
--seja especificada o endereo do socket ser resolvido para seu nome de mquina
--cannico e o nmero da porta ser traduzido para o servio correspondente.
-+seja especificada o endereço do socket será resolvido para seu nome de máquina
-+canônico e o número da porta será traduzido para o serviço correspondente.
-
--.SS "Endereo Remoto"
--O endereo remoto (nome da mquina remota) e o nmero da porta do socket. Como
--com o endereo local, a chave
-+.SS "Endereço Remoto"
-+O endereço remoto (nome da máquina remota) e o número da porta do socket. Como
-+com o endereço local, a chave
- .B -n
--desliga a resoluo do nome da mquina e do servio.
-+desliga a resolução do nome da máquina e do serviço.
-
- .SS "Estado"
--O estado do socket. Uma vez que no existem estados no modo RAW e normalmente
--nenhum estado usado em UDP, esta linha pode ser deixada em branco. Normalmente
--ele pode assumir um de vrios valores:
-+O estado do socket. Uma vez que não existem estados no modo RAW e normalmente
-+nenhum estado é usado em UDP, esta linha pode ser deixada em branco. Normalmente
-+ele pode assumir um de vários valores:
- .TP
- .I
- ESTABELECIDO
--O socket tem uma conexo estabelecida.
-+O socket tem uma conexão estabelecida.
- .TP
- .I
- SYN_SENT
--O socket est ativamente tentando estabelecer uma conexo.
-+O socket está ativamente tentando estabelecer uma conexão.
- .TP
- .I
- SYN_RECV
--Uma requisio de conexo foi recebida da rede.
-+Uma requisição de conexão foi recebida da rede.
- .TP
- .I
- FIN_WAIT1
--O socket est fechado e a conexo est terminando.
-+O socket está fechado e a conexão está terminando.
- .TP
- .I
- FIN_WAIT2
--A conexo est fechada e o socket est esperando por uma terminao pela
--mquina remota.
-+A conexão está fechada e o socket está esperando por uma terminação pela
-+máquina remota.
- .TP
- .I
- TIME_WAIT
--O socket est esperando aps o fechamento para tratar os pacotes ainda na rede.
-+O socket está esperando após o fechamento para tratar os pacotes ainda na rede.
- .TP
- .I
- FECHADO
--O socket no est sendo usado.
-+O socket não está sendo usado.
- .TP
- .I
- CLOSE_WAIT
- O lado remoto terminou, esperando pelo fechamento do socket.
- .TP
- .I
--LTIMO_ACK
--O lado remoto terminou, e o socket est fechado. Esperando por uma
--confirmao.
-+ÚLTIMO_ACK
-+O lado remoto terminou, e o socket está fechado. Esperando por uma
-+confirmação.
- .TP
- .I
- OUVINDO
--O socket est ouvindo por conexes. Estes socket so somente mostrados se
-+O socket está ouvindo por conexões. Estes socket são somente mostrados se
- a chave
- .BR -a , --listening
- for especificada.
- .TP
- .I
- FECHANDO
--Ambos os sockets esto terminados mas ns ainda no enviamos todos os nossos
-+Ambos os sockets estão terminados mas nós ainda não enviamos todos os nossos
- dados.
- .TP
- .I
- DESCONHECIDO
--O estado do socket desconhecido.
-+O estado do socket é desconhecido.
-
--.SS "Usurio"
-+.SS "Usuário"
- O nome ou UID do dono do socket.
-
- .SS "Temporizador"
-@@ -272,198 +274,195 @@ O nome ou UID do dono do socket.
- O protocolo (normalmente unix) usado pelo socket.
-
- .SS "CntRef"
--O contador de referncias (i.e. processos conectados via este socket).
-+O contador de referências (i.e. processos conectados via este socket).
-
- .SS "Flags"
--As flags mostradas so SO_ACCEPTON (mostrada como
-+As flags mostradas são SO_ACCEPTON (mostrada como
- .BR ACC ),
- SO_WAITDATA
- .RB ( W )
- ou SO_NOSPACE
- .RB ( N ).
- SO_ACCECPTON
-- usada para sockets no-conectados se seus processos correspondentes
--estiverem esperando por uma solicitao de conexo. As demais flags no
--so de interesse comum.
-+é usada para sockets não-conectados se seus processos correspondentes
-+estiverem esperando por uma solicitação de conexão. As demais flags não
-+são de interesse comum.
-
- .SS "Tipos"
--H diversos tipos de acesso a sockets:
-+Há diversos tipos de acesso a sockets:
- .TP
- .I
- SOCK_DGRAM
--O socket usado no modo de Datagramas (sem conexo).
-+O socket é usado no modo de Datagramas (sem conexão).
- .TP
- .I
- SOCK_STREAM
-- um socket usado quando h conexes (stream socket).
-+É um socket usado quando há conexões (stream socket).
- .TP
- .I
- SOCK_RAW
-- usado como o socket bsico (raw socket).
-+É usado como o socket básico (raw socket).
- .TP
- .I
- SOCK_RDM
--Este usado para confirmao de entrega de mensagens.
-+Este é usado para confirmação de entrega de mensagens.
- .TP
- .I
- SOCK_SEQPACKET
-- um socket para um pacote sequencial.
-+É um socket para um pacote sequencial.
- .TP
- .I
- SOCK_PACKET
--Socket para acesso da interface BSICA.
-+Socket para acesso da interface BÁSICA.
- .TP
- .I
- UNKNOWN
--Quem sabe o que nos trar o futuro? Preencha aqui :-)
-+Quem sabe o que nos trará o futuro? Preencha aqui :-)
-
- .PP
- .SS "Estados"
--Este campo conter uma das seguintes palavras-chave:
-+Este campo conterá uma das seguintes palavras-chave:
- .TP
- .I
- FREE
--Este socket no est alocado.
-+Este socket não está alocado.
- .TP
- .I
- LISTENING
--O socket est aguardando por uma solicitao de conexo. So mostrados
--apenas se as opes
-+O socket está aguardando por uma solicitação de conexão. São mostrados
-+apenas se as opções
- .BR -a , --listening
- forem selecionadas.
- .TP
- .I
- CONNECTING
--O socket est por estabelecer uma conexo.
-+O socket está por estabelecer uma conexão.
- .TP
- .I
- CONNECTED
--O socket est conectado.
-+O socket está conectado.
- .TP
- .I
- DISCONNECTING
--O socket est desconectado.
-+O socket está desconectado.
- .TP
- .I
- (nada)
--O socket no est conectado a nenhum outro.
-+O socket não está conectado a nenhum outro.
- .TP
- .I
- UNKNOWN
--Isto no deve acontecer nunca.
-+Isto não deve acontecer nunca.
-
- .SS "Path"
--Mostra o caminho (path) do processo do qual est tratando esse socket.
-+Mostra o caminho (path) do processo do qual está tratando esse socket.
-
- .PP
- .SS Sockets IPX ativos
-
--(Isso precisa ser feito por algum que saiba faz-lo.)
-+(Isso precisa ser feito por alguém que saiba fazê-lo.)
-
- .PP
- .SS Sockets NET/ROM ativos
-
--(Isso precisa ser feito por algum que saiba faz-lo.)
-+(Isso precisa ser feito por alguém que saiba fazê-lo.)
-
- .PP
- .SS Sockets AX.25 ativos
-
--(Isso precisa ser feito por algum que saiba faz-lo.)
-+(Isso precisa ser feito por alguém que saiba fazê-lo.)
-
- .PP
- .SH NOTAS
--Desde o kernel 2.2 o netstat -i no mostra estatsticas para apelidos (aliases)
--de interfaces. Para obter contadores por apelido de interface voc precisa
--configurar regras explcitas usando o comando
--+.BR ipchains(8)
-+Desde o kernel 2.2 o netstat -i não mostra estatísticas para apelidos (aliases)
-+de interfaces. Para obter contadores por apelido de interface você precisa
-+configurar regras explícitas usando o comando
-++.BR iptables(8)
- .
- .SH FILES
- .ta
- .I /etc/services
---- O arquivo de "traduo" (correspondncia) entre socket e servio.
-+-- O arquivo de "tradução" (correspondência) entre socket e serviço.
-
- .I /proc/net/dev
---- Informaes de dispositivos.
-+-- Informações de dispositivos.
-
- .I /proc/net/snmp
---- Estatsticas da rede.
-+-- Estatísticas da rede.
-
- .I /proc/net/raw
---- Informao sobre o socket BSICO (RAW).
-+-- Informação sobre o socket BÁSICO (RAW).
-
- .I /proc/net/tcp
---- Informao sobre o socket TCP.
-+-- Informação sobre o socket TCP.
-
- .I /proc/net/udp
---- Informao sobre o socket UDP.
-+-- Informação sobre o socket UDP.
-
- .I /proc/net/unix
---- Informao sobre o socket de domnio Unix.
-+-- Informação sobre o socket de domínio Unix.
-
- .I /proc/net/ipx
---- Informao sobre o socket IPX.
-+-- Informação sobre o socket IPX.
-
- .I /proc/net/ax25
---- Informao sobre o socket AX25.
-+-- Informação sobre o socket AX25.
-
- .I /proc/net/appletalk
---- Informao sobre o socket DDP (Appletalk).
-+-- Informação sobre o socket DDP (Appletalk).
-
- .I /proc/net/nr
---- Informao sobre o socket NET/ROM.
-+-- Informação sobre o socket NET/ROM.
-
- .I /proc/net/route
---- Informao sobre os roteamentos IP realizados pelo kernel
-+-- Informação sobre os roteamentos IP realizados pelo kernel
-
- .I /proc/net/ax25_route
---- Informao sobre os roteamentos AX25 realizados pelo kernel
-+-- Informação sobre os roteamentos AX25 realizados pelo kernel
-
- .I /proc/net/ipx_route
---- Informao sobre os roteamentos IPX realizados pelo kernel
-+-- Informação sobre os roteamentos IPX realizados pelo kernel
-
- .I /proc/net/nr_nodes
---- Lista de ns NET/ROM do kernel
-+-- Lista de nós NET/ROM do kernel
-
- .I /proc/net/nr_neigh
- -- "Vizinhos" NET/ROM do kernel
-
- .I /proc/net/ip_masquerade
---- Conexes mascaradas do kernel
-+-- Conexões mascaradas do kernel
-
- .fi
-
- .PP
--.SH VEJA TAMBM
-+.SH VEJA TAMBÉM
- .BR route (8),
- .BR ifconfig (8),
--.BR ipfw (4),
--.BR ipfw (8),
--.BR ipfwadm (8)
--.BR ipchains (8)
-+.BR iptables (8)
-
- .PP
- .SH BUGS
--Ocasionalmente informaes estranhas podem surgir se um socket mudar
--enquanto visualizado. Isso incomum.
-+Ocasionalmente informações estranhas podem surgir se um socket mudar
-+enquanto é visualizado. Isso é incomum.
- .br
--As opes descritas para
-+As opções descritas para
- .B netstat -i
--foram descritas como devero funcionar aps alguma limpeza da liberao
-+foram descritas como deverão funcionar após alguma limpeza da liberação
- BETA do pacote net-tools.
-
- .PP
- .SH AUTORES
--A interface com o usurio foi escrita por Fred Baumgarten
--<dc6iq@insu1.etec.uni-karlsruhe.de> a pgina do manual basicamente
-+A interface com o usuário foi escrita por Fred Baumgarten
-+<dc6iq@insu1.etec.uni-karlsruhe.de> a página do manual basicamente
- por Matt Welsh <mdw@tc.cornell.edu>. Foi atualizada por
- Alan Cox <Alan.Cox@linux.org> mas poderia ter sido feita com um pouco
- mais de trabalho.
- .BR
- .LP
--A pgina do manual e os comandos includos no pacote net-tools
-+A página do manual e os comandos incluídos no pacote net-tools
- foram totalmente reescritos desde Bernd Eckenfels
- <ecki@linux.de>.
- .BR
--.SH TRADUO E REVISO PARA PORTUGUS
--Traduzido para o portugus por Arnaldo Carvalho de Melo
-+.SH TRADUÇÃO E REVISÃO PARA PORTUGUÊS
-+Traduzido para o português por Arnaldo Carvalho de Melo
- <acme@conectiva.com.br> e Jorge Luiz Godoy Filho <jorge@bestway.com.br>.
-diff --git a/man/pt_BR/rarp.8 b/man/pt_BR/rarp.8
-index de31931..b19f1b7 100644
---- a/man/pt_BR/rarp.8
-+++ b/man/pt_BR/rarp.8
-@@ -2,30 +2,30 @@
- .SH NOME
- rarp \- manipula a tabela RARP do sistema
- .SH SINOPSE
--.B "rarp [-v] [-t tipo] -a [mquina]"
-+.B "rarp [-v] [-t tipo] -a [máquina]"
- .br
--.B "rarp [-v] -d mquina ..."
-+.B "rarp [-v] -d máquina ..."
- .br
--.B "rarp [-v] [-t tipo] -s mquina endereo_hardware"
--.SH DESCRIO
-+.B "rarp [-v] [-t tipo] -s máquina endereço_hardware"
-+.SH DESCRIÇÃO
- .B Rarp
--manipula as tabelas RARP do kernel de varias formas. As opes principais
--so limpar uma entrada de mapeamento de endereos e manualmente configurar uma.
--Para propsitos de depurao, o programa
-+manipula as tabelas RARP do kernel de varias formas. As opções principais
-+são limpar uma entrada de mapeamento de endereços e manualmente configurar uma.
-+Para propósitos de depuração, o programa
- .B rarp
--tambm permite um dump completo da tabela RARP.
--.SH OPES
-+também permite um dump completo da tabela RARP.
-+.SH OPÇÕES
- .TP
- .B \-v
--Informe o usurio o que esta acontecendo, sendo detalhado.
-+Informe o usuário o que esta acontecendo, sendo detalhado.
- .TP
- .B "\-t tipo"
--quando configurando ou lendo a tabela RARP, este parmetro opcional informa ao
-+quando configurando ou lendo a tabela RARP, este parâmetro opcional informa ao
- .B rarp
--que classe de entradas devem ser verificadas. O valor default para este parmetro
--
-+que classe de entradas devem ser verificadas. O valor default para este parâmetro
-+é
- .B ether
--(i.e. cdigo de hardware
-+(i.e. código de hardware
- .B 0x01
- para
- .B "IEEE 802.3 10Mbps Ethernet".
-@@ -34,31 +34,31 @@ Outros valores podem incluir tecnologias de rede como
- e
- .B NET/ROM (netrom).
- .TP
--.B "\-a [mquina]"
--Mostra as entradas dos mquinas especificadas. Se o
--Mostra as entradas das mquinas especificadas. Se o parmetro
--.B mquina
--no for usado
-+.B "\-a [máquina]"
-+Mostra as entradas dos máquinas especificadas. Se o
-+Mostra as entradas das máquinas especificadas. Se o parâmetro
-+.B máquina
-+não for usado
- .B todas
--as entradas sero mostradas.
-+as entradas serão mostradas.
- .TP
--.B "\-d mquina"
--Remove a(s) entrada(s) para a mquina especificada. Isto pode ser usado se a
--mquina indicada for desligada, por exemplo.
-+.B "\-d máquina"
-+Remove a(s) entrada(s) para a máquina especificada. Isto pode ser usado se a
-+máquina indicada for desligada, por exemplo.
- .TP
--.B "\-s mquina endereo_hardware"
--Cria um mapeamento de endereos RARP para a mquina
--.B mquina
--com endereo de hardware configurado para
--.B endereo_hardware
--. O formato do endereo de hardware depende da classe do hardware, mas
--para a maioria das classes voc pode assumir que a apresentao usual pode
--ser usada. Para a classe Ethernet, so 6 bytes em hexadecimal, separados
-+.B "\-s máquina endereço_hardware"
-+Cria um mapeamento de endereços RARP para a máquina
-+.B máquina
-+com endereço de hardware configurado para
-+.B endereço_hardware.
-+O formato do endereço de hardware depende da classe do hardware, mas
-+para a maioria das classes você pode assumir que a apresentação usual pode
-+ser usada. Para a classe Ethernet, são 6 bytes em hexadecimal, separados
- por dois pontos (:).
--.SH ATENO
--Alguns arquivos (principalmente Suns velhas) assumem que a mquina respondendo
--ao query ARP tambm podem oferecer outros servios de boot remoto. Portanto
--nunca adiciona gratuitamente entradas rarp a menos que deseje encontrar a fria
-+.SH ATENÇÃO
-+Alguns arquivos (principalmente Suns velhas) assumem que a máquina respondendo
-+ao query ARP também podem oferecer outros serviços de boot remoto. Portanto
-+nunca adiciona gratuitamente entradas rarp a menos que deseje encontrar a fúria
- do administrador da rede.
- .SH ARQUIVOS
- .I /proc/net/rarp,
-@@ -66,5 +66,5 @@ do administrador da rede.
- Ross D. Martin, <martin@trcsun3.eas.asu.edu>
- .br
- Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
--.SH TRADUO
-+.SH TRADUÇÃO
- Arnaldo Carvalho de Melo <acme@conectiva.com.br> - 13/04/1998
-diff --git a/man/pt_BR/route.8 b/man/pt_BR/route.8
-index c440974..eb152e2 100644
---- a/man/pt_BR/route.8
-+++ b/man/pt_BR/route.8
-@@ -50,44 +50,44 @@ If]
- .RB [ \--help ]
- .SH DESCRICAO
- .B Route
--manipula a tabela de roteamento IP do kernel. Seu principal uso
--configurar rotas estticas para hosts ou redes especificadas atravs de
--uma interface, aps a mesma ter sido configurada com o programa
-+manipula a tabela de roteamento IP do kernel. Seu principal uso é
-+configurar rotas estáticas para hosts ou redes especificadas através de
-+uma interface, após a mesma ter sido configurada com o programa
- .BR ifconfig (8)
- .
-
--.SH OPES
-+.SH OPÇÕES
- .TP
- .B \-v
--flag para detalhamento (no usada).
-+flag para detalhamento (não usada).
-
- .TP
- .B \-n
--mostra endereos numricos, sem tentar resolver o nomes simblicos das
--mquinas. til se voc esta tentando determinar por que a rota para o seu
-+mostra endereços numéricos, sem tentar resolver o nomes simbólicos das
-+máquinas. Útil se você esta tentando determinar por que a rota para o seu
- servidor de nomes sumiu.
-
- .TP
- .B \-e
- use o formato
- .BR netstat (8)
--na apresentao da tabela de roteamento.
-+na apresentação da tabela de roteamento.
- .B \-ee
--produzira uma linha bem grande com todos os parmetros da tabela de roteamento.
-+produzira uma linha bem grande com todos os parâmetros da tabela de roteamento.
-
- .TP
- .B \-net
- o
- .B Alvo
-- o endereo de uma rede (encontrado no arquivo
-+é o endereço de uma rede (encontrado no arquivo
- .I /etc/networks
--pela funo
-+pela função
- .BR getnetbyname (2)
- ).
-
- .TP
- .B -host
-- o endereo de uma mquina (descoberto com a funo
-+é o endereço de uma máquina (descoberto com a função
- .BR gethostbyname (2)
- ).
-
-@@ -110,150 +110,150 @@ adiciona uma rota.
-
- .TP
- .B Alvo
--A mquina ou rede destino. Voc pode fornecer endereos IP em formato
--decimal separado por pontos ou nomes de mquinas/redes.
-+A máquina ou rede destino. Você pode fornecer endereços IP em formato
-+decimal separado por pontos ou nomes de máquinas/redes.
-
- .TP
- .B netmask Nm
- modificador para especificar a mascara de rede da rota a ser adicionada.
--Somente faz sentido para uma rota para uma rede e quanto o endereo
-+Somente faz sentido para uma rota para uma rede e quanto o endereço
- .B Alvo
-- valido com relao a mascara especificada. Se nenhuma mascara de rede
-+é valido com relação a mascara especificada. Se nenhuma mascara de rede
- for especificada, o comando
- .B route
--descobre-a, desta forma, para a maioria das configuraes normais voc no
-+descobre-a, desta forma, para a maioria das configurações normais você não
- precisa especificar uma mascara de rede.
-
- .TP
- .B gw Gw
--Quaisquer pacotes IP para a rede/mquina destino sero roteadas atravs
-+Quaisquer pacotes IP para a rede/máquina destino serão roteadas através
- do gateway/roteador especificado.
- .B NOTA:
--O gateway especificado deve ser alcanvel antes deste comando. Isto
--normalmente significa que voc ter que configurar uma rota esttica para
--o gateway antes de emitir este comando. Se voc especificar o endereo
--de uma de suas interfaces locais, isto ser usado para decidir sobre
--qual interface deve ser usada para rotear os pacotes. Isto esta disponvel
-+O gateway especificado deve ser alcançável antes deste comando. Isto
-+normalmente significa que você terá que configurar uma rota estática para
-+o gateway antes de emitir este comando. Se você especificar o endereço
-+de uma de suas interfaces locais, isto será usado para decidir sobre
-+qual interface deve ser usada para rotear os pacotes. Isto esta disponível
- para manter compatibilidade com os sistemas baseados em BSD.
-
- .TP
- .B metric M
--Configura o campo de mtrica na tabela de roteamento, usado em daemons
--para roteamento dinmico.
-+Configura o campo de métrica na tabela de roteamento, usado em daemons
-+para roteamento dinâmico.
-
- .TP
- .B mss M
--Especifica o Tamanho Mximo do Segmento TCP em Bytes (MSS) para conexes
--TCP atravs desta rota. Isto normalmente usado somente para otimizao
--fina de configuraes de roteamento.
-+Especifica o Tamanho Máximo do Segmento TCP em Bytes (MSS) para conexões
-+TCP através desta rota. Isto é normalmente usado somente para otimização
-+fina de configurações de roteamento.
-
- .TP
- .B window W
--Especifica o tamanho da janela TCP para conexes TCP atravs desta rota.
-+Especifica o tamanho da janela TCP para conexões TCP através desta rota.
- Tipicamente somente usado para redes AX.25 e em drivers incapazes de
- de tratar frames back to back.
-
- .TP
- .B irtt I
--Especifica o tempo de ida e volta inicial (irtt) para conexes TCP atravs
--desta rota. Tipicamente usado somente em redes AX.25. O numero especificado
--em milisegundos (1-12000). Se omitido o default da RFC 1122 de 300ms usado.
-+Especifica o tempo de ida e volta inicial (irtt) para conexões TCP através
-+desta rota. Tipicamente usado somente em redes AX.25. O numero é especificado
-+em milisegundos (1-12000). Se omitido o default da RFC 1122 de 300ms é usado.
-
- .TP
- .B reject
--Instala uma rota de bloqueio, que forar falha na procura por esta rota.
--Exemplo de utilizao: bloquear rotas antes do uso da rota default.
--Isto no firewalling.
-+Instala uma rota de bloqueio, que forçará falha na procura por esta rota.
-+Exemplo de utilização: bloquear rotas antes do uso da rota default.
-+Isto não é firewalling.
-
- .TP
- .B mod, dyn, reinstate
--Instala uma rota modificada ou dinmica. Ambas as flags so geralmente somente
--configuradas por um daemon de roteamento. Somente para propsitos de diagnostico.
-+Instala uma rota modificada ou dinâmica. Ambas as flags são geralmente somente
-+configuradas por um daemon de roteamento. Somente para propósitos de diagnostico.
-
- .TP
- .B dev If
--Fora a associao da rota com o dispositivo especificado, pois o kernel
--de outra forma tentara determinar o dispositivo por conta prpria
--(atravs da checagem de rotas e especificaes de dispositivos j existentes
-+Força a associação da rota com o dispositivo especificado, pois o kernel
-+de outra forma tentara determinar o dispositivo por conta própria
-+(através da checagem de rotas e especificações de dispositivos já existentes
- e onde a rota esta adicionada).
-
- If
- .B dev If
-- a ltima opo na linha de comando, a palavra
-+é a última opção na linha de comando, a palavra
- .B dev
--pode ser omitida, pois o default. De outra forma a ordem dos outros
--modificadores do route (metric - netmask - gw - dev) no importa.
-+pode ser omitida, pois é o default. De outra forma a ordem dos outros
-+modificadores do route (metric - netmask - gw - dev) não importa.
-
- .SH EXEMPLOS
- .TP
- .B route add -net 127.0.0.0
- Adiciona a entrada para a interface loopback normal, usando mascara igual
--a 255.0.0.0 (rede classe A, determinada a partir do endereo de destino),
-+a 255.0.0.0 (rede classe A, determinada a partir do endereço de destino),
- associada ao dispositivo "lo" (assumindo que este dispositivo tenha sido
- previamente configurado com o
- .BR ifconfig (8)).
-
- .TP
- .B route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0
--Adiciona uma rota para a rede 192.56.76.x atravs da interface "eth0". O
--modificador de mascara classe C no realmente necessrio aqui por que
--192.* um endereo IP de classe C. A palavra "dev" pode ser omitida aqui.
-+Adiciona uma rota para a rede 192.56.76.x através da interface "eth0". O
-+modificador de mascara classe C não é realmente necessário aqui por que
-+192.* é um endereço IP de classe C. A palavra "dev" pode ser omitida aqui.
-
- .TP
- .B route add default gw mango-gw
--Adiciona uma rota default (que ser usada se nenhuma outra rota for encontrada).
--Todos os pacotes que usarem esta rota sero passados para a mquina "mango-gw".
--O dispositivo que ser utilizado para esta rota depende de como possvel
--alcanar "mango-gw" - a rota esttica para "mango-gw" ter que ser configurada
-+Adiciona uma rota default (que será usada se nenhuma outra rota for encontrada).
-+Todos os pacotes que usarem esta rota serão passados para a máquina "mango-gw".
-+O dispositivo que será utilizado para esta rota depende de como é possível
-+alcançar "mango-gw" - a rota estática para "mango-gw" terá que ser configurada
- previamente.
-
- .TP
- .B route add ipx4 sl0
--Adiciona uma rota para a mquina "ipx4" atravs da interface SLIP (assumindo
--que "ipx4" a mquina SLIP).
-+Adiciona uma rota para a máquina "ipx4" através da interface SLIP (assumindo
-+que "ipx4" é a máquina SLIP).
-
- .TP
- .B route add -net 192.57.66.0 netmask 255.255.255.0 gw ipx4
--Este comando adiciona a rede "192.57.66.x" para ser alcanada atravs da
--rota anterior atravs da interface SLIP.
-+Este comando adiciona a rede "192.57.66.x" para ser alcançada através da
-+rota anterior através da interface SLIP.
-
- .TP
- .B route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
--Isto bem obscura, documentada para que as pessoas saibam como us-la.
--Configura para que todas as rotas IP classe D (multicast) vo atravs da
--interface "eth0". Esta a linha de configurao normal a ser usada com
-+Isto é bem obscura, documentada para que as pessoas saibam como usá-la.
-+Configura para que todas as rotas IP classe D (multicast) vão através da
-+interface "eth0". Esta é a linha de configuração normal a ser usada com
- um kernel multicast.
-
- .TP
- .B route add 10.0.0.0 netmask 255.0.0.0 reject
--Esta instala uma rota de rejeio para a rede privada "10.x.x.x"
-+Esta instala uma rota de rejeição para a rede privada "10.x.x.x"
-
- .LP
--.SH SADA
--A sada da tabela de roteamento do kernel organizada nas seguintes colunas
-+.SH SAÍDA
-+A saída da tabela de roteamento do kernel é organizada nas seguintes colunas
- .TP
- .B Destino
--A rede ou mquina de destino.
-+A rede ou máquina de destino.
- .TP
- .B Roteador
--A mquina roteador ou '*' se nenhuma estiver configurada.
-+A máquina roteador ou '*' se nenhuma estiver configurada.
- .TP
--.B Mascara Genrica
--A mascara para a rede destino. '255.255.255.255' para uma mquina de destino,
--'0.0.0.0' para a rota
-+.B Mascara Genérica
-+A mascara para a rede destino. '255.255.255.255' para uma máquina de
-+destino, '0.0.0.0' para a rota
- .B default
- .
- .TP
- .B Flags
--Os flags possveis so
-+Os flags possíveis são
- .br
- .B U
- (rota esta
- .BR Up )
- .br
- .B H
--(alvo uma
--.BR mquina )
-+(alvo é uma
-+.BR máquina )
- .br
- .B G
- (use
-@@ -261,7 +261,7 @@ Os flags poss
- .br
- .B R
- .RB ( reinstate
--rota para roteamento dinmico)
-+rota para roteamento dinâmico)
- .br
- .B D
- Instalada
-@@ -278,29 +278,29 @@ Rota
- )
- .TP
- .B Metric
--A 'distncia' at o alvo (geralmente contada em hops). No utilizada pelos
-+A 'distância' até o alvo (geralmente contada em hops). Não é utilizada pelos
- kernels recentes, somente daemons de roteamento podem usa-la.
- .TP
- .B Ref
--Numero de referncias a esta rota. No usado no kernel do Linux, sempre 0.
-+Numero de referências a esta rota. Não usado no kernel do Linux, sempre 0.
- .TP
- .B Uso
--Contagem de procuras por esta rota. Nos kernels recentes estes nmeros so
--bem baixos, pois os sockets tem seu prprio cache e no precisam procurar
-+Contagem de procuras por esta rota. Nos kernels recentes estes números são
-+bem baixos, pois os sockets tem seu próprio cache e não precisam procurar
- por rotas.
- .TP
- .B Iface
--Interface atravs da qual os pacotes IP sero enviados.
-+Interface através da qual os pacotes IP serão enviados.
- .TP
- .B MSS
--Tamanho mximo de segmento default para conexes TCP atravs desta rota.
-+Tamanho máximo de segmento default para conexões TCP através desta rota.
- .TP
- .B Window
--Tamanho de janela default para conexes TCP atravs desta rota.
-+Tamanho de janela default para conexões TCP através desta rota.
- .TP
- .B irtt
- RTT (Tempo de Ida e Volta) Inicial. O kernel usa isto para inferir os melhores
--parmetros do protocolo TCP sem esperar por respostas (possivelmente lentas).
-+parâmetros do protocolo TCP sem esperar por respostas (possivelmente lentas).
- .LP
- .SH ARQUIVOS
- .I /proc/net/route
-@@ -311,17 +311,17 @@ par
- .br
- .I /etc/init.d/network
- .LP
--.SH VEJA TAMBM
-+.SH VEJA TAMBÉM
- .I ifconfig(8), netstat(8), arp(8)
- .LP
--.SH HISTRICO
-+.SH HISTÓRICO
- .B Route
- para o linux foi originalmente escrito por Fred N. van Kempen,
- <waltje@uwalt.nl.mugnet.org> e depois modificado por Johannes Stille e
--Linus Torvalds para a verso pl15. Alan Cox adicionou as opes para
-+Linus Torvalds para a versão pl15. Alan Cox adicionou as opções para
- mss e window no kernel 1.1.22. O suporte a irtt (compartilhado com o
- netstat) foi feito por Bernd Eckenfels.
--.SH TRADUO
-+.SH TRADUÇÃO
- Arnaldo Carvalho de Melo <acme@conectiva.com.br> - 13/04/1998
- .SH BUGS
- nenhum :)
-diff --git a/mii-tool.c b/mii-tool.c
-index ef2d48a..1cfecc2 100644
---- a/mii-tool.c
-+++ b/mii-tool.c
-@@ -29,8 +29,6 @@
- http://www.national.com/pf/DP/DP83840.html
- */
-
--static char version[] =
--"mii-tool.c 1.9 2000/04/28 00:56:08 (David Hinds)\n";
-
- #include <unistd.h>
- #include <stdlib.h>
-@@ -46,16 +44,25 @@ static char version[] =
- #include <sys/socket.h>
- #include <sys/ioctl.h>
- #include <net/if.h>
-+#include <linux/sockios.h>
-+
- #ifndef __GLIBC__
- #include <linux/if_arp.h>
- #include <linux/if_ether.h>
- #endif
--#include "mii.h"
-+#include <linux/mii.h>
-+#include <linux/sockios.h>
-+#include "version.h"
-+#include "net-support.h"
-+#include "util.h"
-+
-+static char *Release = RELEASE, *Signature = "David Hinds based on Donald Becker's mii-diag";
-
- #define MAX_ETH 8 /* Maximum # of interfaces */
-+#define LPA_ABILITY_MASK 0x07e0
-
- /* Table of known MII's */
--static struct {
-+static const struct {
- u_short id1, id2;
- char *name;
- } mii_id[] = {
-@@ -64,16 +71,25 @@ static struct {
- { 0x0000, 0x6b90, "AMD 79C901A HomePNA" },
- { 0x0000, 0x6b70, "AMD 79C901A 10baseT" },
- { 0x0181, 0xb800, "Davicom DM9101" },
-- { 0x0043, 0x7411, "Enable EL40-331" },
-+ { 0x0043, 0x7410, "Enable EL40-331" },
-+ { 0x0243, 0x0c50, "ICPlus IP101A" },
- { 0x0015, 0xf410, "ICS 1889" },
- { 0x0015, 0xf420, "ICS 1890" },
- { 0x0015, 0xf430, "ICS 1892" },
- { 0x02a8, 0x0150, "Intel 82555" },
- { 0x7810, 0x0000, "Level One LXT970/971" },
-+ { 0x0022, 0x1510, "Micrel KSZ8041" },
-+ { 0x0022, 0x1610, "Micrel KSZ9021" },
- { 0x2000, 0x5c00, "National DP83840A" },
-+ { 0x2000, 0x5c70, "National DP83865" },
- { 0x0181, 0x4410, "Quality QS6612" },
- { 0x0282, 0x1c50, "SMSC 83C180" },
-+ { 0x0203, 0x8460, "STMicroelectronics ST802RT" },
-+ { 0x1c04, 0x0010, "STMicroelectronics STE100P" },
- { 0x0300, 0xe540, "TDK 78Q2120" },
-+ { 0x0141, 0x0c20, "Yukon 88E1011" },
-+ { 0x0141, 0x0cc0, "Yukon-EC 88E1111" },
-+ { 0x0141, 0x0c90, "Yukon-2 88E1112" },
- };
- #define NMII (sizeof(mii_id)/sizeof(mii_id[0]))
-
-@@ -81,10 +97,10 @@ static struct {
-
- struct option longopts[] = {
- /* { name has_arg *flag val } */
-- {"advertise", 1, 0, 'A'}, /* Change capabilities advertised. */
-- {"force", 1, 0, 'F'}, /* Change capabilities advertised. */
-+ {"advertise", 1, 0, 'A'}, /* Advertise only specified media. */
-+ {"force", 1, 0, 'F'}, /* Force specified media technology. */
- {"phy", 1, 0, 'p'}, /* Set PHY (MII address) to report. */
-- {"log", 0, 0, 'l'}, /* Set PHY (MII address) to report. */
-+ {"log", 0, 0, 'l'}, /* With --watch, write events to syslog. */
- {"restart", 0, 0, 'r'}, /* Restart link negotiation */
- {"reset", 0, 0, 'R'}, /* Reset the transceiver. */
- {"verbose", 0, 0, 'v'}, /* Report each action taken. */
-@@ -112,7 +128,7 @@ static struct ifreq ifr;
-
- static int mdio_read(int skfd, int location)
- {
-- struct mii_data *mii = (struct mii_data *)&ifr.ifr_data;
-+ struct mii_ioctl_data *mii = (struct mii_ioctl_data *)&ifr.ifr_data;
- mii->reg_num = location;
- if (ioctl(skfd, SIOCGMIIREG, &ifr) < 0) {
- fprintf(stderr, "SIOCGMIIREG on %s failed: %s\n", ifr.ifr_name,
-@@ -124,7 +140,7 @@ static int mdio_read(int skfd, int location)
-
- static void mdio_write(int skfd, int location, int value)
- {
-- struct mii_data *mii = (struct mii_data *)&ifr.ifr_data;
-+ struct mii_ioctl_data *mii = (struct mii_ioctl_data *)&ifr.ifr_data;
- mii->reg_num = location;
- mii->val_in = value;
- if (ioctl(skfd, SIOCSMIIREG, &ifr) < 0) {
-@@ -137,40 +153,48 @@ static void mdio_write(int skfd, int location, int value)
-
- const struct {
- char *name;
-- u_short value;
-+ u_short value[2];
- } media[] = {
- /* The order through 100baseT4 matches bits in the BMSR */
-- { "10baseT-HD", MII_AN_10BASET_HD },
-- { "10baseT-FD", MII_AN_10BASET_FD },
-- { "100baseTx-HD", MII_AN_100BASETX_HD },
-- { "100baseTx-FD", MII_AN_100BASETX_FD },
-- { "100baseT4", MII_AN_100BASET4 },
-- { "100baseTx", MII_AN_100BASETX_FD | MII_AN_100BASETX_HD },
-- { "10baseT", MII_AN_10BASET_FD | MII_AN_10BASET_HD },
-+ { "10baseT-HD", {LPA_10HALF} },
-+ { "10baseT-FD", {LPA_10FULL} },
-+ { "100baseTx-HD", {LPA_100HALF} },
-+ { "100baseTx-FD", {LPA_100FULL} },
-+ { "100baseT4", {LPA_100BASE4} },
-+ { "100baseTx", {LPA_100FULL | LPA_100HALF} },
-+ { "10baseT", {LPA_10FULL | LPA_10HALF} },
-+
-+ { "1000baseT-HD", {0, ADVERTISE_1000HALF} },
-+ { "1000baseT-FD", {0, ADVERTISE_1000FULL} },
-+ { "1000baseT", {0, ADVERTISE_1000HALF|ADVERTISE_1000FULL} },
- };
- #define NMEDIA (sizeof(media)/sizeof(media[0]))
--
-+
- /* Parse an argument list of media types */
--static int parse_media(char *arg)
-+static int parse_media(char *arg, unsigned *bmcr2)
- {
- int mask, i;
- char *s;
- mask = strtoul(arg, &s, 16);
- if ((*arg != '\0') && (*s == '\0')) {
-- if ((mask & MII_AN_ABILITY_MASK) &&
-- !(mask & ~MII_AN_ABILITY_MASK))
-- return mask;
-+ if ((mask & LPA_ABILITY_MASK) &&
-+ !(mask & ~LPA_ABILITY_MASK)) {
-+ *bmcr2 = 0;
-+ return mask;
-+ }
- goto failed;
-- } else {
-- mask = 0;
-- s = strtok(arg, ", ");
-- do {
-+ }
-+ mask = 0;
-+ *bmcr2 = 0;
-+ s = strtok(arg, ", ");
-+ do {
- for (i = 0; i < NMEDIA; i++)
-- if (strcasecmp(media[i].name, s) == 0) break;
-+ if (s && strcasecmp(media[i].name, s) == 0) break;
- if (i == NMEDIA) goto failed;
-- mask |= media[i].value;
-- } while ((s = strtok(NULL, ", ")) != NULL);
-- }
-+ mask |= media[i].value[0];
-+ *bmcr2 |= media[i].value[1];
-+ } while ((s = strtok(NULL, ", ")) != NULL);
-+
- return mask;
- failed:
- fprintf(stderr, "Invalid media specification '%s'.\n", arg);
-@@ -179,11 +203,25 @@ failed:
-
- /*--------------------------------------------------------------------*/
-
--static char *media_list(int mask, int best)
-+static const char *media_list(unsigned mask, unsigned mask2, int best)
- {
- static char buf[100];
- int i;
- *buf = '\0';
-+
-+ if (mask & BMCR_SPEED1000) {
-+ if (mask2 & ADVERTISE_1000HALF) {
-+ strcat(buf, " ");
-+ strcat(buf, "1000baseT-HD");
-+ if (best) goto out;
-+ }
-+ if (mask2 & ADVERTISE_1000FULL) {
-+ strcat(buf, " ");
-+ strcat(buf, "1000baseT-FD");
-+ if (best) goto out;
-+ }
-+ }
-+
- mask >>= 5;
- for (i = 4; i >= 0; i--) {
- if (mask & (1<<i)) {
-@@ -192,6 +230,7 @@ static char *media_list(int mask, int best)
- if (best) break;
- }
- }
-+ out:
- if (mask & (1<<5))
- strcat(buf, " flow-control");
- return buf;
-@@ -199,49 +238,82 @@ static char *media_list(int mask, int best)
-
- int show_basic_mii(int sock, int phy_id)
- {
-- char buf[100];
-+ char buf[200];
- int i, mii_val[32];
-- int bmcr, bmsr, advert, lkpar;
-+ unsigned bmcr, bmsr, advert, lkpar, bmcr2, lpa2;
-
- /* Some bits in the BMSR are latched, but we can't rely on being
- the only reader, so only the current values are meaningful */
- mdio_read(sock, MII_BMSR);
-- for (i = 0; i < ((verbose > 1) ? 32 : 8); i++)
-- mii_val[i] = mdio_read(sock, i);
-+ for (i = 0; i < ((verbose > 1) ? 32 : (MII_STAT1000+1)); i++)
-+ switch (i & 0x1F) {
-+ case MII_BMCR:
-+ case MII_BMSR:
-+ case MII_PHYSID1:
-+ case MII_PHYSID2:
-+ case MII_ADVERTISE:
-+ case MII_LPA:
-+ case MII_EXPANSION:
-+ case MII_CTRL1000:
-+ case MII_STAT1000:
-+ case MII_ESTATUS:
-+ case MII_DCOUNTER:
-+ case MII_FCSCOUNTER:
-+ case MII_NWAYTEST:
-+ case MII_RERRCOUNTER:
-+ case MII_SREVISION:
-+ case MII_RESV1:
-+ case MII_LBRERROR:
-+ case MII_PHYADDR:
-+ case MII_RESV2:
-+ case MII_TPISTATUS:
-+ case MII_NCONFIG:
-+ mii_val[i] = mdio_read(sock, i);
-+ break;
-+ default:
-+ if (verbose > 2)
-+ mii_val[i] = mdio_read(sock, i);
-+ else
-+ mii_val[i] = 0;
-+ break;
-+ }
-
-- if (mii_val[MII_BMCR] == 0xffff) {
-+ if (mii_val[MII_BMCR] == 0xffff || mii_val[MII_BMSR] == 0x0000) {
- fprintf(stderr, " No MII transceiver present!.\n");
- return -1;
- }
-
- /* Descriptive rename. */
- bmcr = mii_val[MII_BMCR]; bmsr = mii_val[MII_BMSR];
-- advert = mii_val[MII_ANAR]; lkpar = mii_val[MII_ANLPAR];
-+ advert = mii_val[MII_ADVERTISE]; lkpar = mii_val[MII_LPA];
-+ bmcr2 = mii_val[MII_CTRL1000]; lpa2 = mii_val[MII_STAT1000];
-
- sprintf(buf, "%s: ", ifr.ifr_name);
-- if (bmcr & MII_BMCR_AN_ENA) {
-- if (bmsr & MII_BMSR_AN_COMPLETE) {
-+ if (bmcr & BMCR_ANENABLE) {
-+ if (bmsr & BMSR_ANEGCOMPLETE) {
- if (advert & lkpar) {
-- strcat(buf, (lkpar & MII_AN_ACK) ?
-+ strcat(buf, (lkpar & LPA_LPACK) ?
- "negotiated" : "no autonegotiation,");
-- strcat(buf, media_list(advert & lkpar, 1));
-+ strcat(buf, media_list(advert & lkpar, bmcr2 & lpa2>>2, 1));
- strcat(buf, ", ");
- } else {
- strcat(buf, "autonegotiation failed, ");
- }
-- } else if (bmcr & MII_BMCR_RESTART) {
-+ } else if (bmcr & BMCR_ANRESTART) {
- strcat(buf, "autonegotiation restarted, ");
- }
- } else {
- sprintf(buf+strlen(buf), "%s Mbit, %s duplex, ",
-- (bmcr & MII_BMCR_100MBIT) ? "100" : "10",
-- (bmcr & MII_BMCR_DUPLEX) ? "full" : "half");
-+ ((bmcr2 & (ADVERTISE_1000HALF | ADVERTISE_1000FULL)) & lpa2 >> 2)
-+ ? "1000"
-+ : (bmcr & BMCR_SPEED100) ? "100" : "10",
-+ (bmcr & BMCR_FULLDPLX) ? "full" : "half");
- }
-- strcat(buf, (bmsr & MII_BMSR_LINK_VALID) ? "link ok" : "no link");
-+ strcat(buf, (bmsr & BMSR_LSTATUS) ? "link ok" : "no link");
-
- if (opt_watch) {
- if (opt_log) {
-- syslog(LOG_INFO, buf);
-+ syslog(LOG_INFO, "%s", buf);
- } else {
- char s[20];
- time_t t = time(NULL);
-@@ -273,35 +345,36 @@ int show_basic_mii(int sock, int phy_id)
- ((mii_val[2]<<6)|(mii_val[3]>>10))&0xff,
- (mii_val[3]>>4)&0x3f, mii_val[3]&0x0f);
- printf(" basic mode: ");
-- if (bmcr & MII_BMCR_RESET)
-+ if (bmcr & BMCR_RESET)
- printf("software reset, ");
-- if (bmcr & MII_BMCR_LOOPBACK)
-+ if (bmcr & BMCR_LOOPBACK)
- printf("loopback, ");
-- if (bmcr & MII_BMCR_ISOLATE)
-+ if (bmcr & BMCR_ISOLATE)
- printf("isolate, ");
-- if (bmcr & MII_BMCR_COLTEST)
-+ if (bmcr & BMCR_CTST)
- printf("collision test, ");
-- if (bmcr & MII_BMCR_AN_ENA) {
-+ if (bmcr & BMCR_ANENABLE) {
- printf("autonegotiation enabled\n");
- } else {
- printf("%s Mbit, %s duplex\n",
-- (bmcr & MII_BMCR_100MBIT) ? "100" : "10",
-- (bmcr & MII_BMCR_DUPLEX) ? "full" : "half");
-+ (bmcr & BMCR_SPEED100) ? "100" : "10",
-+ (bmcr & BMCR_FULLDPLX) ? "full" : "half");
- }
- printf(" basic status: ");
-- if (bmsr & MII_BMSR_AN_COMPLETE)
-+ if (bmsr & BMSR_ANEGCOMPLETE)
- printf("autonegotiation complete, ");
-- else if (bmcr & MII_BMCR_RESTART)
-+ else if (bmcr & BMCR_ANRESTART)
- printf("autonegotiation restarted, ");
-- if (bmsr & MII_BMSR_REMOTE_FAULT)
-+ if (bmsr & BMSR_RFAULT)
- printf("remote fault, ");
-- printf((bmsr & MII_BMSR_LINK_VALID) ? "link ok" : "no link");
-- printf("\n capabilities:%s", media_list(bmsr >> 6, 0));
-- printf("\n advertising: %s", media_list(advert, 0));
-- if (lkpar & MII_AN_ABILITY_MASK)
-- printf("\n link partner:%s", media_list(lkpar, 0));
-+ printf((bmsr & BMSR_LSTATUS) ? "link ok" : "no link");
-+ printf("\n capabilities:%s", media_list(bmsr >> 6, bmcr2, 0));
-+ printf("\n advertising: %s", media_list(advert, bmcr2, 0));
-+ if (lkpar & LPA_ABILITY_MASK)
-+ printf("\n link partner:%s", media_list(lkpar, lpa2 >> 2, 0));
- printf("\n");
- }
-+ fflush(stdout);
- return 0;
- }
-
-@@ -309,10 +382,10 @@ int show_basic_mii(int sock, int phy_id)
-
- static int do_one_xcvr(int skfd, char *ifname, int maybe)
- {
-- struct mii_data *mii = (struct mii_data *)&ifr.ifr_data;
-+ struct mii_ioctl_data *mii = (struct mii_ioctl_data *)&ifr.ifr_data;
-
- /* Get the vitals from the interface. */
-- strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
-+ safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
- if (ioctl(skfd, SIOCGMIIPHY, &ifr) < 0) {
- if (!maybe || (errno != ENODEV))
- fprintf(stderr, "SIOCGMIIPHY on '%s' failed: %s\n",
-@@ -327,23 +400,23 @@ static int do_one_xcvr(int skfd, char *ifname, int maybe)
-
- if (opt_reset) {
- printf("resetting the transceiver...\n");
-- mdio_write(skfd, MII_BMCR, MII_BMCR_RESET);
-+ mdio_write(skfd, MII_BMCR, BMCR_RESET);
- }
-- if (nway_advertise) {
-- mdio_write(skfd, MII_ANAR, nway_advertise | 1);
-+ if (nway_advertise > 0) {
-+ mdio_write(skfd, MII_ADVERTISE, nway_advertise | 1);
- opt_restart = 1;
- }
- if (opt_restart) {
- printf("restarting autonegotiation...\n");
- mdio_write(skfd, MII_BMCR, 0x0000);
-- mdio_write(skfd, MII_BMCR, MII_BMCR_AN_ENA|MII_BMCR_RESTART);
-+ mdio_write(skfd, MII_BMCR, BMCR_ANENABLE|BMCR_ANRESTART);
- }
- if (fixed_speed) {
- int bmcr = 0;
-- if (fixed_speed & (MII_AN_100BASETX_FD|MII_AN_100BASETX_HD))
-- bmcr |= MII_BMCR_100MBIT;
-- if (fixed_speed & (MII_AN_100BASETX_FD|MII_AN_10BASET_FD))
-- bmcr |= MII_BMCR_DUPLEX;
-+ if (fixed_speed & (LPA_100FULL|LPA_100HALF))
-+ bmcr |= BMCR_SPEED100;
-+ if (fixed_speed & (LPA_100FULL|LPA_10FULL))
-+ bmcr |= BMCR_FULLDPLX;
- mdio_write(skfd, MII_BMCR, bmcr);
- }
-
-@@ -357,12 +430,12 @@ static int do_one_xcvr(int skfd, char *ifname, int maybe)
-
- static void watch_one_xcvr(int skfd, char *ifname, int index)
- {
-- struct mii_data *mii = (struct mii_data *)&ifr.ifr_data;
-+ struct mii_ioctl_data *mii = (struct mii_ioctl_data *)&ifr.ifr_data;
- static int status[MAX_ETH] = { 0, /* ... */ };
- int now;
-
- /* Get the vitals from the interface. */
-- strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
-+ safe_strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
- if (ioctl(skfd, SIOCGMIIPHY, &ifr) < 0) {
- if (errno != ENODEV)
- fprintf(stderr, "SIOCGMIIPHY on '%s' failed: %s\n",
-@@ -379,27 +452,38 @@ static void watch_one_xcvr(int skfd, char *ifname, int index)
- /*--------------------------------------------------------------------*/
-
- const char *usage =
--"usage: %s [-VvRrwl] [-A media,... | -F media] [interface ...]
-- -V, --version display version information
-- -v, --verbose more verbose output
-- -R, --reset reset MII to poweron state
-- -r, --restart restart autonegotiation
-- -w, --watch monitor for link status changes
-- -l, --log with -w, write events to syslog
-- -A, --advertise=media,... advertise only specified media
-- -F, --force=media force specified media technology
--media: 100baseT4, 100baseTx-FD, 100baseTx-HD, 10baseT-FD, 10baseT-HD,
-- (to advertise both HD and FD) 100baseTx, 10baseT\n";
-+"usage: %s [-VvRrwl] [-A media,... | -F media] [-p addr] <interface ...>\n"
-+" -V, --version display version information\n"
-+" -v, --verbose more verbose output\n"
-+" -R, --reset reset MII to poweron state\n"
-+" -r, --restart restart autonegotiation\n"
-+" -w, --watch monitor for link status changes\n"
-+" -l, --log with -w, write events to syslog\n"
-+" -A, --advertise=media,... advertise only specified media\n"
-+" -F, --force=media force specified media technology\n"
-+" -p, --phy=addr set PHY (MII address) to report\n"
-+"media: 1000baseTx-HD, 1000baseTx-FD,\n"
-+" 100baseT4, 100baseTx-FD, 100baseTx-HD,\n"
-+" 10baseT-FD, 10baseT-HD,\n"
-+" (to advertise both HD and FD) 1000baseTx, 100baseTx, 10baseT\n";
-+
-+
-+static void version(void)
-+{
-+ fprintf(stderr, "%s\n%s\n", Release, Signature);
-+ exit(E_VERSION);
-+}
-+
-
- int main(int argc, char **argv)
- {
- int i, c, ret, errflag = 0;
-- char s[6];
--
-+ unsigned ctrl1000 = 0;
-+
- while ((c = getopt_long(argc, argv, "A:F:p:lrRvVw?", longopts, 0)) != EOF)
- switch (c) {
-- case 'A': nway_advertise = parse_media(optarg); break;
-- case 'F': fixed_speed = parse_media(optarg); break;
-+ case 'A': nway_advertise = parse_media(optarg, &ctrl1000); break;
-+ case 'F': fixed_speed = parse_media(optarg, &ctrl1000); break;
- case 'p': override_phy = atoi(optarg); break;
- case 'r': opt_restart++; break;
- case 'R': opt_reset++; break;
-@@ -411,6 +495,10 @@ int main(int argc, char **argv)
- }
- /* Check for a few inappropriate option combinations */
- if (opt_watch) verbose = 0;
-+
-+ if ((nway_advertise < 0) || (fixed_speed < 0))
-+ return 2;
-+
- if (errflag || (fixed_speed & (fixed_speed-1)) ||
- (fixed_speed && (opt_restart || nway_advertise))) {
- fprintf(stderr, usage, argv[0]);
-@@ -418,7 +506,7 @@ int main(int argc, char **argv)
- }
-
- if (opt_version)
-- printf(version);
-+ version();
-
- /* Open a basic socket. */
- if ((skfd = socket(AF_INET, SOCK_DGRAM,0)) < 0) {
-@@ -426,15 +514,15 @@ int main(int argc, char **argv)
- exit(-1);
- }
-
-+ if (verbose > 1)
-+ printf("Using SIOCGMIIPHY=0x%x\n", SIOCGMIIPHY);
-+
- /* No remaining args means show all interfaces. */
- if (optind == argc) {
-- ret = 1;
-- for (i = 0; i < MAX_ETH; i++) {
-- sprintf(s, "eth%d", i);
-- ret &= do_one_xcvr(skfd, s, 1);
-- }
-- if (ret)
-- fprintf(stderr, "no MII interfaces found\n");
-+ fprintf(stderr, "No interface specified\n");
-+ fprintf(stderr, usage, argv[0]);
-+ close(skfd);
-+ return 2;
- } else {
- ret = 0;
- for (i = optind; i < argc; i++) {
-@@ -445,15 +533,8 @@ int main(int argc, char **argv)
- if (opt_watch && (ret == 0)) {
- while (1) {
- sleep(1);
-- if (optind == argc) {
-- for (i = 0; i < MAX_ETH; i++) {
-- sprintf(s, "eth%d", i);
-- watch_one_xcvr(skfd, s, i);
-- }
-- } else {
-- for (i = optind; i < argc; i++)
-+ for (i = optind; i < argc; i++)
- watch_one_xcvr(skfd, argv[i], i-optind);
-- }
- }
- }
-
-diff --git a/nameif.c b/nameif.c
-index 8d79b50..b280e59 100644
---- a/nameif.c
-+++ b/nameif.c
-@@ -1,11 +1,11 @@
--/*
-+/*
- * Name Interfaces based on MAC address.
- * Writen 2000 by Andi Kleen.
-- * Subject to the Gnu Public License, version 2.
-+ * Subject to the Gnu Public License, version 2.
- * TODO: make it support token ring etc.
-- * $Id: nameif.c,v 1.1 2000/10/18 17:26:29 ak Exp $
-- */
--#ifndef _GNU_SOURCE
-+ * $Id: nameif.c,v 1.4 2003/09/11 03:46:49 ak Exp $
-+ */
-+#ifndef _GNU_SOURCE
- #define _GNU_SOURCE
- #endif
- #include <stdio.h>
-@@ -21,73 +21,68 @@
- #include <net/if.h>
- #include <linux/sockios.h>
- #include <errno.h>
--#include "intl.h"
--
--const char default_conf[] = "/etc/mactab";
--const char *fname = default_conf;
--int use_syslog;
--int ctl_sk = -1;
--
--void err(char *msg)
--{
-- if (use_syslog) {
-- syslog(LOG_ERR,"%s: %m", msg);
-- } else {
-- perror(msg);
-- }
-- exit(1);
-+#include "intl.h"
-+#include "net-support.h"
-+#include "util.h"
-+
-+const char default_conf[] = "/etc/mactab";
-+const char *fname = default_conf;
-+int use_syslog;
-+int ctl_sk = -1;
-+
-+void err(char *msg)
-+{
-+ if (use_syslog) {
-+ syslog(LOG_ERR,"%s: %m", msg);
-+ } else {
-+ perror(msg);
-+ }
-+ exit(1);
- }
-
--void complain(char *fmt, ...)
--{
-+void complain(char *fmt, ...)
-+{
- va_list ap;
- va_start(ap,fmt);
-- if (use_syslog) {
-+ if (use_syslog) {
- vsyslog(LOG_ERR,fmt,ap);
- } else {
- vfprintf(stderr,fmt,ap);
-- fputc('\n',stderr);
-+ fputc('\n',stderr);
- }
-- va_end(ap);
-+ va_end(ap);
- exit(1);
--}
-+}
-
--void warning(char *fmt, ...)
--{
-+void warning(char *fmt, ...)
-+{
- va_list ap;
- va_start(ap,fmt);
-- if (use_syslog) {
-+ if (use_syslog) {
- vsyslog(LOG_ERR,fmt,ap);
- } else {
- vfprintf(stderr,fmt,ap);
-- fputc('\n',stderr);
-+ fputc('\n',stderr);
- }
-- va_end(ap);
--}
-+ va_end(ap);
-+}
-
- int parsemac(char *str, unsigned char *mac)
--{
-- char *s;
-- while ((s = strsep(&str, ":")) != NULL) {
-+{
-+ char *s;
-+ while ((s = strsep(&str, ":")) != NULL) {
- unsigned byte;
-- if (sscanf(s,"%x", &byte)!=1 || byte > 0xff)
-+ if (sscanf(s,"%x", &byte)!=1 || byte > 0xff)
- return -1;
-- *mac++ = byte;
-- }
-+ *mac++ = byte;
-+ }
- return 0;
--}
--
--void *xmalloc(unsigned sz)
--{
-- void *p = calloc(sz,1);
-- if (!p) errno=ENOMEM, err("xmalloc");
-- return p;
--}
-+}
-
- void opensock(void)
- {
-- if (ctl_sk < 0)
-- ctl_sk = socket(PF_INET,SOCK_DGRAM,0);
-+ if (ctl_sk < 0)
-+ ctl_sk = socket(PF_INET,SOCK_DGRAM,0);
- }
-
- #ifndef ifr_newname
-@@ -97,10 +92,10 @@ void opensock(void)
- int setname(char *oldname, char *newname)
- {
- struct ifreq ifr;
-- opensock();
-+ opensock();
- memset(&ifr,0,sizeof(struct ifreq));
-- strcpy(ifr.ifr_name, oldname);
-- strcpy(ifr.ifr_newname, newname);
-+ safe_strncpy(ifr.ifr_name, oldname, IFNAMSIZ);
-+ safe_strncpy(ifr.ifr_newname, newname, IFNAMSIZ);
- return ioctl(ctl_sk, SIOCSIFNAME, &ifr);
- }
-
-@@ -108,118 +103,118 @@ int getmac(char *name, unsigned char *mac)
- {
- int r;
- struct ifreq ifr;
-- opensock();
-+ opensock();
- memset(&ifr,0,sizeof(struct ifreq));
-- strcpy(ifr.ifr_name, name);
-+ safe_strncpy(ifr.ifr_name, name, IFNAMSIZ);
- r = ioctl(ctl_sk, SIOCGIFHWADDR, &ifr);
-- memcpy(mac, ifr.ifr_hwaddr.sa_data, 6);
-- return r;
-+ memcpy(mac, ifr.ifr_hwaddr.sa_data, 6);
-+ return r;
- }
-
--struct change {
-- struct change *next,**pprev;
-+struct change {
-+ struct change *next;
-+ int found;
- char ifname[IFNAMSIZ+1];
- unsigned char mac[6];
--};
-+};
- struct change *clist;
-
--struct change *lookupmac(unsigned char *mac)
--{
-+struct change *lookupmac(unsigned char *mac)
-+{
- struct change *ch;
-- for (ch = clist;ch;ch = ch->next)
-+ for (ch = clist;ch;ch = ch->next)
- if (!memcmp(ch->mac, mac, 6))
- return ch;
-- return NULL;
--}
-+ return NULL;
-+}
-
- int addchange(char *p, struct change *ch, char *pos)
- {
- if (strchr(ch->ifname, ':'))
-- warning(_("alias device %s at %s probably has no mac"),
-- ch->ifname, pos);
-- if (parsemac(p,ch->mac) < 0)
-- complain(_("cannot parse MAC `%s' at %s"), p, pos);
-- if (clist)
-- clist->pprev = &ch->next;
-+ warning(_("alias device %s at %s probably has no mac"),
-+ ch->ifname, pos);
-+ if (parsemac(p,ch->mac) < 0)
-+ complain(_("cannot parse MAC `%s' at %s"), p, pos);
- ch->next = clist;
-- ch->pprev = &clist;
- clist = ch;
-- return 0;
-+ return 0;
- }
-
- void readconf(void)
- {
-- char *line;
-- size_t linel;
-- int linenum;
-+ char *line;
-+ size_t linel;
-+ int linenum;
- FILE *ifh;
- char *p;
- int n;
-+ struct change *ch = NULL;
-
- ifh = fopen(fname, "r");
-- if (!ifh)
-- complain(_("opening configuration file %s: %s"),fname,strerror(errno));
-+ if (!ifh)
-+ complain(_("opening configuration file %s: %s"),fname,strerror(errno));
-
-- line = NULL;
-+ line = NULL;
- linel = 0;
-- linenum = 1;
-+ linenum = 1;
- while (getdelim(&line, &linel, '\n', ifh) > 0) {
-- struct change *ch = xmalloc(sizeof(struct change));
-- char pos[20];
-+ char pos[20];
-
-- sprintf(pos, _("line %d"), linenum);
-+ sprintf(pos, _("line %d"), linenum);
-
- if ((p = strchr(line,'#')) != NULL)
- *p = '\0';
-- p = line;
-+ p = line;
- while (isspace(*p))
-- ++p;
-+ ++p;
- if (*p == '\0')
-- continue;
-- n = strcspn(p, " \t");
-- if (n > IFNAMSIZ)
-- complain(_("interface name too long at line %d"), line);
-- memcpy(ch->ifname, p, n);
-- ch->ifname[n] = 0;
-- p += n;
-- p += strspn(p, " \t");
-- n = strspn(p, "0123456789ABCDEFabcdef:");
-- p[n] = 0;
-+ continue;
-+ n = strcspn(p, " \t");
-+ if (n > IFNAMSIZ-1)
-+ complain(_("interface name too long at line %d"), line);
-+ ch = xmalloc(sizeof(struct change));
-+ memcpy(ch->ifname, p, n);
-+ ch->ifname[n] = 0;
-+ p += n;
-+ p += strspn(p, " \t");
-+ n = strspn(p, "0123456789ABCDEFabcdef:");
-+ p[n] = 0;
- addchange(p, ch, pos);
- linenum++;
-- }
-- fclose(ifh);
-+ }
-+ fclose(ifh);
- }
-
--struct option lopt[] = {
-+struct option lopt[] = {
- {"syslog", 0, NULL, 's' },
- {"config-file", 1, NULL, 'c' },
-- {"help", 0, NULL, '?' },
-- {NULL},
--};
-+ {"help", 0, NULL, '?' },
-+ {NULL},
-+};
-
- void usage(void)
- {
-- fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}"));
-- exit(1);
-+ fprintf(stderr, _("usage: nameif [-c configurationfile] [-s] {ifname macaddress}\n"));
-+ exit(E_USAGE);
- }
-
--int main(int ac, char **av)
--{
-- FILE *ifh;
-+int main(int ac, char **av)
-+{
-+ FILE *ifh;
- char *p;
- int n;
-- int linenum;
-+ int linenum;
- char *line = NULL;
- size_t linel = 0;
-+ int ret = 0;
-
- for (;;) {
- int c = getopt_long(ac,av,"c:s",lopt,NULL);
- if (c == -1) break;
-- switch (c) {
-+ switch (c) {
- default:
- case '?':
-- usage();
-+ usage();
- case 'c':
- fname = optarg;
- break;
-@@ -229,74 +224,76 @@ int main(int ac, char **av)
- }
- }
-
-- if (use_syslog)
-+ if (use_syslog)
- openlog("nameif",0,LOG_LOCAL0);
--
-- while (optind < ac) {
-- struct change *ch = xmalloc(sizeof(struct change));
-+
-+ while (optind < ac) {
-+ struct change *ch = xmalloc(sizeof(struct change));
- char pos[30];
-
-- if ((ac-optind) & 1)
-+ if ((ac-optind) & 1)
- usage();
-- if (strlen(av[optind])+1>IFNAMSIZ)
-+ if (strlen(av[optind])+1>IFNAMSIZ)
- complain(_("interface name `%s' too long"), av[optind]);
-- strcpy(ch->ifname, av[optind]);
-- optind++;
-- sprintf(pos,_("argument %d"),optind);
-- addchange(av[optind], ch, pos);
-- optind++;
-- }
-+ safe_strncpy(ch->ifname, av[optind], sizeof(ch->ifname));
-+ optind++;
-+ sprintf(pos,_("argument %d"),optind);
-+ addchange(av[optind], ch, pos);
-+ optind++;
-+ }
-
-- if (!clist || fname != default_conf)
-- readconf();
-+ if (!clist || fname != default_conf)
-+ readconf();
-
-- ifh = fopen("/proc/net/dev", "r");
-- if (!ifh) complain(_("open of /proc/net/dev: %s"), strerror(errno));
-+ ifh = fopen("/proc/net/dev", "r");
-+ if (!ifh) complain(_("open of /proc/net/dev: %s"), strerror(errno));
-
-
- linenum = 0;
- while (getdelim(&line, &linel, '\n', ifh) > 0) {
-- struct change *ch;
-+ struct change *ch;
- unsigned char mac[6];
-
-- if (linenum++ < 2)
-+ if (linenum++ < 2)
- continue;
--
-- p = line;
-- while (isspace(*p))
-+
-+ p = line;
-+ while (isspace(*p))
- ++p;
-- n = strcspn(p, ": \t");
-- p[n] = 0;
--
-- if (n > IFNAMSIZ-1)
-- complain(_("interface name `%s' too long"), p);
--
-- if (getmac(p, mac) < 0)
-+ n = strcspn(p, ": \t");
-+ p[n] = 0;
-+
-+ if (n > IFNAMSIZ-1)
-+ complain(_("interface name `%s' too long"), p);
-+
-+ if (getmac(p, mac) < 0)
- continue;
--
-- ch = lookupmac(mac);
-- if (!ch)
-+
-+ ch = lookupmac(mac);
-+ if (!ch)
- continue;
--
-- *ch->pprev = ch->next;
-- if (strcmp(p, ch->ifname)) {
-- if (setname(p, ch->ifname) < 0)
-+
-+ ch->found = 1;
-+ if (strcmp(p, ch->ifname)) {
-+ if (setname(p, ch->ifname) < 0)
- complain(_("cannot change name of %s to %s: %s"),
-- p, ch->ifname, strerror(errno));
-- }
-- free(ch);
-- }
-- fclose(ifh);
--
-- while (clist) {
-+ p, ch->ifname, strerror(errno));
-+ }
-+ }
-+ fclose(ifh);
-+
-+ while (clist) {
- struct change *ch = clist;
- clist = clist->next;
-- warning(_("interface '%s' not found"), ch->ifname);
-- free(ch);
-+ if (!ch->found){
-+ warning(_("interface '%s' not found"), ch->ifname);
-+ ret = 1;
-+ }
-+ free(ch);
- }
-
- if (use_syslog)
- closelog();
-- return 0;
--}
-+ return ret;
-+}
-
-diff --git a/netstat.c b/netstat.c
-index 1ef790e..d0c364f 100644
---- a/netstat.c
-+++ b/netstat.c
-@@ -6,7 +6,7 @@
- * NET-3 Networking Distribution for the LINUX operating
- * system.
- *
-- * Version: $Id: netstat.c,v 1.43 2001/04/15 14:41:17 pb Exp $
-+ * Version: $Id: netstat.c,v 1.73 2011-04-20 01:35:22 ecki Exp $
- *
- * Authors: Fred Baumgarten, <dc6iq@insu1.etec.uni-karlsruhe.de>
- * Fred N. van Kempen, <waltje@uwalt.nl.mugnet.org>
-@@ -23,24 +23,24 @@
- * Modified:
- *
- *960116 {1.01} Bernd Eckenfels: verbose, cleanups
-- *960204 {1.10} Bernd Eckenfels: aftrans, usage, new route_info,
-+ *960204 {1.10} Bernd Eckenfels: aftrans, usage, new route_info,
- * DLFT_AF
- *960204 {1.11} Bernd Eckenfels: netlink support
- *960204 {1.12} Bernd Eckenfels: route_init()
- *960215 {1.13} Bernd Eckenfels: netlink_print honors HAVE_
-- *960217 {1.14} Bernd Eckenfels: masq_info from Jos Vos and
-+ *960217 {1.14} Bernd Eckenfels: masq_info from Jos Vos and
- * ax25_info from Jonathan Naylor.
- *960218 {1.15} Bernd Eckenfels: ipx_info rewritten, -e for tcp/ipx
- *960220 {1.16} Bernd Eckenfels: minor output reformats, -a for -x
- *960221 {1.17} Bernd Eckenfels: route_init->getroute_init
- *960426 {1.18} Bernd Eckenfels: new RTACTION, SYM/NUM, FIB/CACHE
-- *960517 {1.19} Bernd Eckenfels: usage() spelling fix and --unix inode,
-+ *960517 {1.19} Bernd Eckenfels: usage() spelling fix and --unix inode,
- * ':' is part of sock_addr for --inet
- *960822 {x.xx} Frank Strauss: INET6 support
- *
- *970406 {1.33} Philip Copeland Added snmp reporting support module -s
- * code provided by Andi Kleen
-- * (relly needs to be kernel hooked but
-+ * (relly needs to be kernel hooked but
- * this will do in the meantime)
- * minor header file misplacement tidy up.
- *980815 {1.xx} Stephane Fillod: X.25 support
-@@ -58,6 +58,8 @@
- *
- *990420 {1.38} Tuan Hoang removed a useless assignment from igmp_do_one()
- *20010404 {1.39} Arnaldo Carvalho de Melo - use setlocale
-+ *20081201 {1.42} Brian Micek added -L|--udplite options for RFC 3828
-+ *20020722 {1.51} Thomas Preusser added SCTP over IPv4 support
- *
- * This program is free software; you can redistribute it
- * and/or modify it under the terms of the GNU General
-@@ -83,6 +85,7 @@
- #include <arpa/inet.h>
- #include <netinet/in.h>
- #include <sys/ioctl.h>
-+#include <sys/stat.h>
- #include <net/if.h>
- #include <dirent.h>
-
-@@ -94,8 +97,18 @@
- #include "sockets.h"
- #include "interface.h"
- #include "util.h"
-+#include "proc.h"
-+
-+#if HAVE_SELINUX
-+#include <selinux/selinux.h>
-+#endif
-+
-+#if HAVE_AFBLUETOOTH
-+#include <bluetooth/bluetooth.h>
-+#endif
-
- #define PROGNAME_WIDTH 20
-+#define SELINUX_WIDTH 50
-
- #if !defined(s6_addr32) && defined(in6a_words)
- #define s6_addr32 in6a_words /* libinet6 */
-@@ -104,6 +117,8 @@
- /* prototypes for statistics.c */
- void parsesnmp(int, int, int);
- void inittab(void);
-+void parsesnmp6(int, int, int);
-+void inittab6(void);
-
- typedef enum {
- SS_FREE = 0, /* not allocated */
-@@ -122,7 +137,7 @@ typedef enum {
- #define FEATURE_NETSTAT
- #include "lib/net-features.h"
-
--char *Release = RELEASE, *Version = "netstat 1.42 (2001-04-15)", *Signature = "Fred Baumgarten, Alan Cox, Bernd Eckenfels, Phil Blundell, Tuan Hoang and others";
-+static char *Release = RELEASE, *Signature = "Fred Baumgarten, Alan Cox, Bernd Eckenfels, Phil Blundell, Tuan Hoang, Brian Micek and others";
-
-
- #define E_READ -1
-@@ -142,18 +157,24 @@ int flag_cf = 0;
- int flag_opt = 0;
- int flag_raw = 0;
- int flag_tcp = 0;
-+int flag_sctp= 0;
- int flag_udp = 0;
-+int flag_udplite = 0;
- int flag_igmp= 0;
- int flag_rom = 0;
- int flag_exp = 1;
-+int flag_wide= 0;
- int flag_prg = 0;
- int flag_arg = 0;
- int flag_ver = 0;
-+int flag_l2cap = 0;
-+int flag_rfcomm = 0;
-+int flag_selinux = 0;
-
- FILE *procinfo;
-
--#define INFO_GUTS1(file,name,proc) \
-- procinfo = fopen((file), "r"); \
-+#define INFO_GUTS1(file,name,proc,prot) \
-+ procinfo = proc_fopen((file)); \
- if (procinfo == NULL) { \
- if (errno != ENOENT) { \
- perror((file)); \
-@@ -166,58 +187,63 @@ FILE *procinfo;
- } else { \
- do { \
- if (fgets(buffer, sizeof(buffer), procinfo)) \
-- (proc)(lnr++, buffer); \
-+ (proc)(lnr++, buffer,prot); \
- } while (!feof(procinfo)); \
- fclose(procinfo); \
- }
-
- #if HAVE_AFINET6
--#define INFO_GUTS2(file,proc) \
-+#define INFO_GUTS2(file,proc,prot) \
- lnr = 0; \
-- procinfo = fopen((file), "r"); \
-+ procinfo = proc_fopen((file)); \
- if (procinfo != NULL) { \
- do { \
- if (fgets(buffer, sizeof(buffer), procinfo)) \
-- (proc)(lnr++, buffer); \
-+ (proc)(lnr++, buffer,prot); \
- } while (!feof(procinfo)); \
- fclose(procinfo); \
- }
- #else
--#define INFO_GUTS2(file,proc)
-+#define INFO_GUTS2(file,proc,prot)
- #endif
-
- #define INFO_GUTS3 \
- return rc;
-
--#define INFO_GUTS6(file,file6,name,proc) \
-+#define INFO_GUTS6(file,file6,name,proc,prot4,prot6) \
- char buffer[8192]; \
- int rc = 0; \
- int lnr = 0; \
- if (!flag_arg || flag_inet) { \
-- INFO_GUTS1(file,name,proc) \
-+ INFO_GUTS1(file,name,proc,prot4) \
- } \
- if (!flag_arg || flag_inet6) { \
-- INFO_GUTS2(file6,proc) \
-+ INFO_GUTS2(file6,proc,prot6) \
- } \
- INFO_GUTS3
-
--#define INFO_GUTS(file,name,proc) \
-+#define INFO_GUTS(file,name,proc,prot) \
- char buffer[8192]; \
- int rc = 0; \
- int lnr = 0; \
-- INFO_GUTS1(file,name,proc) \
-+ INFO_GUTS1(file,name,proc,prot) \
- INFO_GUTS3
-
- #define PROGNAME_WIDTHs PROGNAME_WIDTH1(PROGNAME_WIDTH)
- #define PROGNAME_WIDTH1(s) PROGNAME_WIDTH2(s)
- #define PROGNAME_WIDTH2(s) #s
-
-+#define SELINUX_WIDTHs SELINUX_WIDTH1(SELINUX_WIDTH)
-+#define SELINUX_WIDTH1(s) SELINUX_WIDTH2(s)
-+#define SELINUX_WIDTH2(s) #s
-+
- #define PRG_HASH_SIZE 211
-
- static struct prg_node {
- struct prg_node *next;
-- int inode;
-+ unsigned long inode;
- char name[PROGNAME_WIDTH];
-+ char scon[SELINUX_WIDTH];
- } *prg_hash[PRG_HASH_SIZE];
-
- static char prg_cache_loaded = 0;
-@@ -225,8 +251,11 @@ static char prg_cache_loaded = 0;
- #define PRG_HASHIT(x) ((x) % PRG_HASH_SIZE)
-
- #define PROGNAME_BANNER "PID/Program name"
-+#define SELINUX_BANNER "Security Context"
-+
-+#define print_progname_banner() do { if (flag_prg) printf(" %-" PROGNAME_WIDTHs "s",PROGNAME_BANNER); } while (0)
-
--#define print_progname_banner() do { if (flag_prg) printf("%-" PROGNAME_WIDTHs "s"," " PROGNAME_BANNER); } while (0)
-+#define print_selinux_banner() do { if (flag_selinux) printf("%-" SELINUX_WIDTHs "s"," " SELINUX_BANNER); } while (0)
-
- #define PRG_LOCAL_ADDRESS "local_address"
- #define PRG_INODE "inode"
-@@ -246,40 +275,57 @@ static char prg_cache_loaded = 0;
- #define PATH_PROC_X_FD PATH_PROC "/%s/" PATH_FD_SUFF
- #define PATH_CMDLINE "cmdline"
- #define PATH_CMDLINEl strlen(PATH_CMDLINE)
--/* NOT working as of glibc-2.0.7: */
--#undef DIRENT_HAVE_D_TYPE_WORKS
-
--static void prg_cache_add(int inode, char *name)
-+static void prg_cache_add(unsigned long inode, char *name, const char *scon)
- {
- unsigned hi = PRG_HASHIT(inode);
- struct prg_node **pnp,*pn;
-
-- prg_cache_loaded=2;
-- for (pnp=prg_hash+hi;(pn=*pnp);pnp=&pn->next) {
-- if (pn->inode==inode) {
-+ prg_cache_loaded = 2;
-+ for (pnp = prg_hash + hi; (pn = *pnp); pnp = &pn->next) {
-+ if (pn->inode == inode) {
- /* Some warning should be appropriate here
- as we got multiple processes for one i-node */
- return;
- }
- }
-- if (!(*pnp=malloc(sizeof(**pnp))))
-+ if (!(*pnp = malloc(sizeof(**pnp))))
- return;
-- pn=*pnp;
-- pn->next=NULL;
-- pn->inode=inode;
-- if (strlen(name)>sizeof(pn->name)-1)
-- name[sizeof(pn->name)-1]='\0';
-- strcpy(pn->name,name);
-+ pn = *pnp;
-+ pn->next = NULL;
-+ pn->inode = inode;
-+ safe_strncpy(pn->name, name, sizeof(pn->name));
-+
-+ {
-+ int len = (strlen(scon) - sizeof(pn->scon)) + 1;
-+ if (len > 0)
-+ safe_strncpy(pn->scon, &scon[len + 1], sizeof(pn->scon));
-+ else
-+ safe_strncpy(pn->scon, scon, sizeof(pn->scon));
-+ }
-+
-+}
-+
-+static const char *prg_cache_get(unsigned long inode)
-+{
-+ unsigned hi = PRG_HASHIT(inode);
-+ struct prg_node *pn;
-+
-+ for (pn = prg_hash[hi]; pn; pn = pn->next)
-+ if (pn->inode == inode)
-+ return (pn->name);
-+ return ("-");
- }
-
--static const char *prg_cache_get(int inode)
-+static const char *prg_cache_get_con(unsigned long inode)
- {
-- unsigned hi=PRG_HASHIT(inode);
-+ unsigned hi = PRG_HASHIT(inode);
- struct prg_node *pn;
-
-- for (pn=prg_hash[hi];pn;pn=pn->next)
-- if (pn->inode==inode) return(pn->name);
-- return("-");
-+ for (pn = prg_hash[hi]; pn; pn = pn->next)
-+ if (pn->inode == inode)
-+ return (pn->scon);
-+ return ("-");
- }
-
- static void prg_cache_clear(void)
-@@ -287,143 +333,164 @@ static void prg_cache_clear(void)
- struct prg_node **pnp,*pn;
-
- if (prg_cache_loaded == 2)
-- for (pnp=prg_hash;pnp<prg_hash+PRG_HASH_SIZE;pnp++)
-- while ((pn=*pnp)) {
-- *pnp=pn->next;
-+ for (pnp = prg_hash; pnp < prg_hash + PRG_HASH_SIZE; pnp++)
-+ while ((pn = *pnp)) {
-+ *pnp = pn->next;
- free(pn);
- }
-- prg_cache_loaded=0;
-+ prg_cache_loaded = 0;
-+}
-+
-+static void wait_continous(void)
-+{
-+ fflush(stdout);
-+ sleep(1);
- }
-
--static void extract_type_1_socket_inode(const char lname[], long * inode_p) {
-+static int extract_type_1_socket_inode(const char lname[], unsigned long * inode_p) {
-
- /* If lname is of the form "socket:[12345]", extract the "12345"
- as *inode_p. Otherwise, return -1 as *inode_p.
- */
-
-- if (strlen(lname) < PRG_SOCKET_PFXl+3) *inode_p = -1;
-- else if (memcmp(lname, PRG_SOCKET_PFX, PRG_SOCKET_PFXl)) *inode_p = -1;
-- else if (lname[strlen(lname)-1] != ']') *inode_p = -1;
-- else {
-+ if (strlen(lname) < PRG_SOCKET_PFXl+3) return(-1);
-+
-+ if (memcmp(lname, PRG_SOCKET_PFX, PRG_SOCKET_PFXl)) return(-1);
-+ if (lname[strlen(lname)-1] != ']') return(-1);
-+
-+ {
- char inode_str[strlen(lname + 1)]; /* e.g. "12345" */
- const int inode_str_len = strlen(lname) - PRG_SOCKET_PFXl - 1;
- char *serr;
-
- strncpy(inode_str, lname+PRG_SOCKET_PFXl, inode_str_len);
- inode_str[inode_str_len] = '\0';
-- *inode_p = strtol(inode_str,&serr,0);
-- if (!serr || *serr || *inode_p < 0 || *inode_p >= INT_MAX)
-- *inode_p = -1;
-+ *inode_p = strtoul(inode_str, &serr, 0);
-+ if (!serr || *serr || *inode_p == ~0)
-+ return(-1);
- }
-+ return(0);
- }
-
-
-
--static void extract_type_2_socket_inode(const char lname[], long * inode_p) {
-+static int extract_type_2_socket_inode(const char lname[], unsigned long * inode_p) {
-
- /* If lname is of the form "[0000]:12345", extract the "12345"
- as *inode_p. Otherwise, return -1 as *inode_p.
- */
-
-- if (strlen(lname) < PRG_SOCKET_PFX2l+1) *inode_p = -1;
-- else if (memcmp(lname, PRG_SOCKET_PFX2, PRG_SOCKET_PFX2l)) *inode_p = -1;
-- else {
-+ if (strlen(lname) < PRG_SOCKET_PFX2l+1) return(-1);
-+ if (memcmp(lname, PRG_SOCKET_PFX2, PRG_SOCKET_PFX2l)) return(-1);
-+
-+ {
- char *serr;
-
-- *inode_p=strtol(lname + PRG_SOCKET_PFX2l,&serr,0);
-- if (!serr || *serr || *inode_p < 0 || *inode_p >= INT_MAX)
-- *inode_p = -1;
-+ *inode_p = strtoul(lname + PRG_SOCKET_PFX2l, &serr, 0);
-+ if (!serr || *serr || *inode_p == ~0)
-+ return(-1);
- }
-+ return(0);
- }
-
-
-
-+
- static void prg_cache_load(void)
- {
-- char line[LINE_MAX],eacces=0;
-- int procfdlen,fd,cmdllen,lnamelen;
-- char lname[30],cmdlbuf[512],finbuf[PROGNAME_WIDTH];
-- long inode;
-- const char *cs,*cmdlp;
-- DIR *dirproc=NULL,*dirfd=NULL;
-- struct dirent *direproc,*direfd;
-+ char line[LINE_MAX], eacces=0;
-+ int procfdlen, fd, cmdllen, lnamelen;
-+ char lname[30], cmdlbuf[512], finbuf[PROGNAME_WIDTH];
-+ unsigned long inode;
-+ const char *cs, *cmdlp;
-+ DIR *dirproc = NULL, *dirfd = NULL;
-+ struct dirent *direproc, *direfd;
-+#if HAVE_SELINUX
-+ security_context_t scon = NULL;
-+#endif
-
- if (prg_cache_loaded || !flag_prg) return;
-- prg_cache_loaded=1;
-- cmdlbuf[sizeof(cmdlbuf)-1]='\0';
-+ prg_cache_loaded = 1;
-+ cmdlbuf[sizeof(cmdlbuf) - 1] = '\0';
- if (!(dirproc=opendir(PATH_PROC))) goto fail;
-- while (errno=0,direproc=readdir(dirproc)) {
--#ifdef DIRENT_HAVE_D_TYPE_WORKS
-- if (direproc->d_type!=DT_DIR) continue;
--#endif
-- for (cs=direproc->d_name;*cs;cs++)
-- if (!isdigit(*cs))
-+ while (errno = 0, direproc = readdir(dirproc)) {
-+ for (cs = direproc->d_name; *cs; cs++)
-+ if (!isdigit(*cs))
- break;
-- if (*cs)
-+ if (*cs)
- continue;
-- procfdlen=snprintf(line,sizeof(line),PATH_PROC_X_FD,direproc->d_name);
-- if (procfdlen<=0 || procfdlen>=sizeof(line)-5)
-+ procfdlen = snprintf(line,sizeof(line),PATH_PROC_X_FD,direproc->d_name);
-+ if (procfdlen <= 0 || procfdlen >= sizeof(line) - 5)
- continue;
-- errno=0;
-- dirfd=opendir(line);
-+ errno = 0;
-+ dirfd = opendir(line);
- if (! dirfd) {
-- if (errno==EACCES)
-- eacces=1;
-+ if (errno == EACCES)
-+ eacces = 1;
- continue;
- }
- line[procfdlen] = '/';
- cmdlp = NULL;
- while ((direfd = readdir(dirfd))) {
--#ifdef DIRENT_HAVE_D_TYPE_WORKS
-- if (direfd->d_type!=DT_LNK)
-- continue;
--#endif
-- if (procfdlen+1+strlen(direfd->d_name)+1>sizeof(line))
-+ /* Skip . and .. */
-+ if (!isdigit(direfd->d_name[0]))
-+ continue;
-+ if (procfdlen + 1 + strlen(direfd->d_name) + 1 > sizeof(line))
- continue;
- memcpy(line + procfdlen - PATH_FD_SUFFl, PATH_FD_SUFF "/",
-- PATH_FD_SUFFl+1);
-- strcpy(line + procfdlen + 1, direfd->d_name);
-- lnamelen=readlink(line,lname,sizeof(lname)-1);
-+ PATH_FD_SUFFl + 1);
-+ safe_strncpy(line + procfdlen + 1, direfd->d_name,
-+ sizeof(line) - procfdlen - 1);
-+ lnamelen = readlink(line, lname, sizeof(lname) - 1);
-+ if (lnamelen == -1)
-+ continue;
- lname[lnamelen] = '\0'; /*make it a null-terminated string*/
-
-- extract_type_1_socket_inode(lname, &inode);
--
-- if (inode < 0) extract_type_2_socket_inode(lname, &inode);
--
-- if (inode < 0) continue;
-+ if (extract_type_1_socket_inode(lname, &inode) < 0)
-+ if (extract_type_2_socket_inode(lname, &inode) < 0)
-+ continue;
-
- if (!cmdlp) {
-- if (procfdlen - PATH_FD_SUFFl + PATH_CMDLINEl >=
-- sizeof(line) - 5)
-+ if (procfdlen - PATH_FD_SUFFl + PATH_CMDLINEl >=
-+ sizeof(line) - 5)
- continue;
-- strcpy(line + procfdlen-PATH_FD_SUFFl, PATH_CMDLINE);
-+ safe_strncpy(line + procfdlen - PATH_FD_SUFFl, PATH_CMDLINE,
-+ sizeof(line) - procfdlen + PATH_FD_SUFFl);
- fd = open(line, O_RDONLY);
-- if (fd < 0)
-+ if (fd < 0)
- continue;
- cmdllen = read(fd, cmdlbuf, sizeof(cmdlbuf) - 1);
-- if (close(fd))
-+ if (close(fd))
- continue;
-- if (cmdllen == -1)
-+ if (cmdllen == -1)
- continue;
-- if (cmdllen < sizeof(cmdlbuf) - 1)
-+ if (cmdllen < sizeof(cmdlbuf) - 1)
- cmdlbuf[cmdllen]='\0';
-- if ((cmdlp = strrchr(cmdlbuf, '/')))
-+ if (cmdlbuf[0] == '/' && (cmdlp = strrchr(cmdlbuf, '/')))
- cmdlp++;
-- else
-+ else
- cmdlp = cmdlbuf;
- }
-
- snprintf(finbuf, sizeof(finbuf), "%s/%s", direproc->d_name, cmdlp);
-- prg_cache_add(inode, finbuf);
-+#if HAVE_SELINUX
-+ if (getpidcon(atoi(direproc->d_name), &scon) == -1) {
-+ scon=xstrdup("-");
-+ }
-+ prg_cache_add(inode, finbuf, scon);
-+ freecon(scon);
-+#else
-+ prg_cache_add(inode, finbuf, "-");
-+#endif
- }
-- closedir(dirfd);
-+ closedir(dirfd);
- dirfd = NULL;
- }
-- if (dirproc)
-+ if (dirproc)
- closedir(dirproc);
-- if (dirfd)
-+ if (dirfd)
- closedir(dirfd);
-- if (!eacces)
-+ if (!eacces)
- return;
- if (prg_cache_loaded == 1) {
- fail:
-@@ -450,7 +517,7 @@ static int netrom_info(void)
- char buffer[256], dev[16];
- int st, vs, vr, sendq, recvq, ret;
-
-- f = fopen(_PATH_PROCNET_NR, "r");
-+ f = proc_fopen(_PATH_PROCNET_NR);
- if (f == NULL) {
- if (errno != ENOENT) {
- perror(_PATH_PROCNET_NR);
-@@ -465,7 +532,8 @@ static int netrom_info(void)
- }
- printf(_("Active NET/ROM sockets\n"));
- printf(_("User Dest Source Device State Vr/Vs Send-Q Recv-Q\n"));
-- fgets(buffer, 256, f);
-+ if (fgets(buffer, 256, f))
-+ /* eat line */;
-
- while (fgets(buffer, 256, f)) {
- buffer[9] = 0;
-@@ -527,19 +595,22 @@ static void finish_this_one(int uid, unsigned long inode, const char *timers)
-
- if (flag_exp > 1) {
- if (!(flag_not & FLAG_NUM_USER) && ((pw = getpwuid(uid)) != NULL))
-- printf("%-10s ", pw->pw_name);
-+ printf(" %-10s ", pw->pw_name);
- else
-- printf("%-10d ", uid);
-- printf("%-10ld ",inode);
-+ printf(" %-10d ", uid);
-+ printf("%-10lu",inode);
- }
- if (flag_prg)
-- printf("%-" PROGNAME_WIDTHs "s",prg_cache_get(inode));
-+ printf(" %-" PROGNAME_WIDTHs "s",prg_cache_get(inode));
-+ if (flag_selinux)
-+ printf(" %-" SELINUX_WIDTHs "s",prg_cache_get_con(inode));
-+
- if (flag_opt)
-- printf("%s", timers);
-+ printf(" %s", timers);
- putchar('\n');
- }
-
--static void igmp_do_one(int lnr, const char *line)
-+static void igmp_do_one(int lnr, const char *line,const char *prot)
- {
- char mcast_addr[128];
- #if HAVE_AFINET6
-@@ -598,8 +669,8 @@ static void igmp_do_one(int lnr, const char *line)
- ((struct sockaddr *) &mcastaddr)->sa_family);
- return;
- }
-- safe_strncpy(mcast_addr, ap->sprint((struct sockaddr *) &mcastaddr,
-- flag_not), sizeof(mcast_addr));
-+ safe_strncpy(mcast_addr, ap->sprint((struct sockaddr *) &mcastaddr,
-+ flag_not & FLAG_NUM_HOST), sizeof(mcast_addr));
- printf("%-15s %-6d %s\n", device, refcnt, mcast_addr);
- #endif
- } else { /* IPV4 */
-@@ -630,14 +701,14 @@ static void igmp_do_one(int lnr, const char *line)
- fprintf(stderr, _("warning, got bogus igmp line %d.\n"), lnr);
- return;
- }
--
-+
- if ((ap = get_afntype(((struct sockaddr *) &mcastaddr)->sa_family)) == NULL) {
- fprintf(stderr, _("netstat: unsupported address family %d !\n"),
- ((struct sockaddr *) &mcastaddr)->sa_family);
- return;
- }
-- safe_strncpy(mcast_addr, ap->sprint((struct sockaddr *) &mcastaddr,
-- flag_not), sizeof(mcast_addr));
-+ safe_strncpy(mcast_addr, ap->sprint((struct sockaddr *) &mcastaddr,
-+ flag_not & FLAG_NUM_HOST), sizeof(mcast_addr));
- printf("%-15s %-6d %s\n", device, refcnt, mcast_addr );
- #endif
- } /* IPV4 */
-@@ -646,7 +717,7 @@ static void igmp_do_one(int lnr, const char *line)
- #if HAVE_AFX25
- static int x25_info(void)
- {
-- FILE *f=fopen(_PATH_PROCNET_X25, "r");
-+ FILE *f=proc_fopen(_PATH_PROCNET_X25);
- char buffer[256],dev[16];
- int st,vs,vr,sendq,recvq,lci;
- static char *x25_state[5]=
-@@ -657,7 +728,7 @@ static int x25_info(void)
- "ESTABLISHED",
- "RECOVERY"
- };
-- if(!(f=fopen(_PATH_PROCNET_X25, "r")))
-+ if(!f)
- {
- if (errno != ENOENT) {
- perror(_PATH_PROCNET_X25);
-@@ -673,7 +744,8 @@ static int x25_info(void)
- printf( _("Active X.25 sockets\n"));
- /* IMHO, Vr/Vs is not very usefull --SF */
- printf( _("Dest Source Device LCI State Vr/Vs Send-Q Recv-Q\n"));
-- fgets(buffer,256,f);
-+ if (fgets(buffer,256,f))
-+ /* eat line */;
- while(fgets(buffer,256,f))
- {
- buffer[10]=0;
-@@ -690,21 +762,206 @@ static int x25_info(void)
- vr,vs,sendq,recvq);
- }
- fclose(f);
-- return 0;
-+ return 0;
- }
- #endif
-
- static int igmp_info(void)
- {
- INFO_GUTS6(_PATH_PROCNET_IGMP, _PATH_PROCNET_IGMP6, "AF INET (igmp)",
-- igmp_do_one);
-+ igmp_do_one, "igmp", "igmp6");
-+}
-+
-+static int ip_parse_dots(uint32_t *addr, char const *src) {
-+ unsigned a, b, c, d;
-+ unsigned ret = 4-sscanf(src, "%u.%u.%u.%u", &a, &b, &c, &d);
-+ *addr = htonl((a << 24)|(b << 16)|(c << 8)|d);
-+ return ret;
-+}
-+
-+static void print_ip_service(struct sockaddr_in *addr, char const *protname,
-+ char *buf, unsigned size) {
-+ struct aftype *ap;
-+
-+ if(size == 0) return;
-+
-+ /* print host */
-+ if((ap = get_afntype(addr->sin_family)) == NULL) {
-+ fprintf(stderr, _("netstat: unsupported address family %d !\n"),
-+ addr->sin_family);
-+ return;
-+ }
-+ safe_strncpy(buf, ap->sprint((struct sockaddr*)addr, flag_not), size);
-+
-+ /* print service */
-+ if(flag_all || (flag_lst && !addr->sin_port) || (!flag_lst && addr->sin_port)) {
-+ char bfs[32];
-+
-+ snprintf(bfs, sizeof(bfs), "%s",
-+ get_sname(addr->sin_port, (char*)protname, flag_not & FLAG_NUM_PORT));
-+
-+ /* check if we must cut on host and/or service name */
-+ {
-+ unsigned const bufl = strlen(buf);
-+ unsigned const bfsl = strlen(bfs);
-+
-+ if(bufl+bfsl+2 > size) {
-+ unsigned const half = (size-2)>>1;
-+ if(bufl > half) {
-+ if(bfsl > half) {
-+ buf[size-2-half] = '\0';
-+ bfs[half+1] = '\0';
-+ }
-+ else buf[size-2-bfsl] = '\0';
-+ }
-+ else bfs[size-2-bufl] = '\0';
-+ }
-+ }
-+ strcat(buf, ":");
-+ strcat(buf, bfs);
-+ }
-+}
-+
-+/* process single SCTP endpoint */
-+static void sctp_do_ept(int lnr, char const *line, const char *prot)
-+{
-+ struct sockaddr_in laddr, raddr;
-+ unsigned uid, inode;
-+
-+ char l_addr[23], r_addr[23];
-+
-+ /* fill sockaddr_in structures */
-+ {
-+ unsigned lport;
-+ unsigned ate;
-+
-+ if(lnr == 0) return;
-+ if(sscanf(line, "%*X %*X %*u %*u %*u %u %u %u %n",
-+ &lport, &uid, &inode, &ate) < 3) goto err;
-+
-+ /* decode IP address */
-+ if(ip_parse_dots(&laddr.sin_addr.s_addr, line+ate)) goto err;
-+ raddr.sin_addr.s_addr = htonl(0);
-+ laddr.sin_family = raddr.sin_family = AF_INET;
-+ laddr.sin_port = htons(lport);
-+ raddr.sin_port = htons(0);
-+ }
-+
-+ /* print IP:service to l_addr and r_addr */
-+ print_ip_service(&laddr, prot, l_addr, sizeof(l_addr));
-+ print_ip_service(&raddr, prot, r_addr, sizeof(r_addr));
-+
-+ /* Print line */
-+ printf("%-4s %6d %6d %-*s %-*s %-11s",
-+ prot, 0, 0,
-+ (int)netmax(23,strlen(l_addr)), l_addr,
-+ (int)netmax(23,strlen(r_addr)), r_addr,
-+ _(tcp_state[TCP_LISTEN]));
-+ finish_this_one(uid, inode, "");
-+ return;
-+ err:
-+ fprintf(stderr, "SCTP error in line: %d\n", lnr);
-+}
-+
-+/* process single SCTP association */
-+static void sctp_do_assoc(int lnr, char const *line, const char *prot)
-+{
-+ struct sockaddr_in laddr, raddr;
-+ unsigned long rxq, txq;
-+ unsigned uid, inode;
-+
-+ char l_addr[23], r_addr[23];
-+
-+ /* fill sockaddr_in structures */
-+ {
-+ unsigned lport, rport;
-+ unsigned ate;
-+ char const *addr;
-+
-+ if(lnr == 0) return;
-+ if(sscanf(line, "%*X %*X %*u %*u %*u %*u %*u %lu %lu %u %u %u %u %n",
-+ &txq, &rxq, &uid, &inode, &lport, &rport, &ate) < 6) goto err;
-+
-+ /* decode IP addresses */
-+ addr = strchr(line+ate, '*');
-+ if(addr == 0) goto err;
-+ if(ip_parse_dots(&laddr.sin_addr.s_addr, ++addr)) goto err;
-+ addr = strchr(addr, '*');
-+ if(addr == 0) goto err;
-+ if(ip_parse_dots(&raddr.sin_addr.s_addr, ++addr)) goto err;
-+
-+ /* complete sockaddr_in structures */
-+ laddr.sin_family = raddr.sin_family = AF_INET;
-+ laddr.sin_port = htons(lport);
-+ raddr.sin_port = htons(rport);
-+ }
-+
-+ /* print IP:service to l_addr and r_addr */
-+ print_ip_service(&laddr, prot, l_addr, sizeof(l_addr));
-+ print_ip_service(&raddr, prot, r_addr, sizeof(r_addr));
-+
-+ /* Print line */
-+ printf("%-4s %6ld %6ld %-*s %-*s %-11s",
-+ prot, rxq, txq,
-+ (int)netmax(23,strlen(l_addr)), l_addr,
-+ (int)netmax(23,strlen(r_addr)), r_addr,
-+ _(tcp_state[TCP_ESTABLISHED]));
-+ finish_this_one(uid, inode, "");
-+ return;
-+ err:
-+ fprintf(stderr, "SCTP error in line: %d\n", lnr);
-+}
-+
-+static int sctp_info_epts(void) {
-+ INFO_GUTS6(_PATH_PROCNET_SCTPEPTS, _PATH_PROCNET_SCTP6EPTS, "AF INET (sctp)",
-+ sctp_do_ept, "sctp", "sctp6");
-+}
-+
-+static int sctp_info_assocs(void) {
-+ INFO_GUTS6(_PATH_PROCNET_SCTPASSOCS, _PATH_PROCNET_SCTP6ASSOCS, "AF INET (sctp)",
-+ sctp_do_assoc, "sctp", "sctp6");
-+}
-+
-+static int sctp_info(void) {
-+ int res;
-+ res = sctp_info_epts();
-+ if(res) return res;
-+ return sctp_info_assocs();
-+}
-+
-+static void addr_do_one(char *buf, size_t buf_len, size_t short_len, struct aftype *ap,
-+#if HAVE_AFINET6
-+ struct sockaddr_in6 *addr,
-+#else
-+ struct sockaddr_in *addr,
-+#endif
-+ int port, const char *proto
-+)
-+{
-+ const char *sport, *saddr;
-+ size_t port_len, addr_len;
-+
-+ saddr = ap->sprint((struct sockaddr *)addr, flag_not & FLAG_NUM_HOST);
-+ sport = get_sname(htons(port), proto, flag_not & FLAG_NUM_PORT);
-+ addr_len = strlen(saddr);
-+ port_len = strlen(sport);
-+ if (!flag_wide && (addr_len + port_len > short_len)) {
-+ /* Assume port name is short */
-+ port_len = netmin(port_len, short_len - 4);
-+ addr_len = short_len - port_len;
-+ strncpy(buf, saddr, addr_len);
-+ buf[addr_len] = '\0';
-+ strcat(buf, ":");
-+ strncat(buf, sport, port_len);
-+ } else
-+ snprintf(buf, buf_len, "%s:%s", saddr, sport);
- }
-
--static void tcp_do_one(int lnr, const char *line)
-+static void tcp_do_one(int lnr, const char *line, const char *prot)
- {
- unsigned long rxq, txq, time_len, retr, inode;
- int num, local_port, rem_port, d, state, uid, timer_run, timeout;
-- char rem_addr[128], local_addr[128], timers[64], buffer[1024], more[512];
-+ char rem_addr[128], local_addr[128], timers[64];
- struct aftype *ap;
- #if HAVE_AFINET6
- struct sockaddr_in6 localaddr, remaddr;
-@@ -719,9 +976,17 @@ static void tcp_do_one(int lnr, const char *line)
- return;
-
- num = sscanf(line,
-- "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %ld %512s\n",
-+ "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %lu %*s\n",
- &d, local_addr, &local_port, rem_addr, &rem_port, &state,
-- &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode, more);
-+ &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode);
-+
-+ if (num < 11) {
-+ fprintf(stderr, _("warning, got bogus tcp line.\n"));
-+ return;
-+ }
-+
-+ if (!flag_all && ((flag_lst && rem_port) || (!flag_lst && !rem_port)))
-+ return;
-
- if (strlen(local_addr) > 8) {
- #if HAVE_AFINET6
-@@ -748,45 +1013,16 @@ static void tcp_do_one(int lnr, const char *line)
- ((struct sockaddr *) &remaddr)->sa_family = AF_INET;
- }
-
-- if (num < 11) {
-- fprintf(stderr, _("warning, got bogus tcp line.\n"));
-- return;
-- }
- if ((ap = get_afntype(((struct sockaddr *) &localaddr)->sa_family)) == NULL) {
- fprintf(stderr, _("netstat: unsupported address family %d !\n"),
- ((struct sockaddr *) &localaddr)->sa_family);
- return;
- }
-- if (state == TCP_LISTEN) {
-- time_len = 0;
-- retr = 0L;
-- rxq = 0L;
-- txq = 0L;
-- }
-- safe_strncpy(local_addr, ap->sprint((struct sockaddr *) &localaddr,
-- flag_not), sizeof(local_addr));
-- safe_strncpy(rem_addr, ap->sprint((struct sockaddr *) &remaddr, flag_not),
-- sizeof(rem_addr));
-- if (flag_all || (flag_lst && !rem_port) || (!flag_lst && rem_port)) {
-- snprintf(buffer, sizeof(buffer), "%s",
-- get_sname(htons(local_port), "tcp",
-- flag_not & FLAG_NUM_PORT));
--
-- if ((strlen(local_addr) + strlen(buffer)) > 22)
-- local_addr[22 - strlen(buffer)] = '\0';
--
-- strcat(local_addr, ":");
-- strcat(local_addr, buffer);
-- snprintf(buffer, sizeof(buffer), "%s",
-- get_sname(htons(rem_port), "tcp", flag_not & FLAG_NUM_PORT));
--
-- if ((strlen(rem_addr) + strlen(buffer)) > 22)
-- rem_addr[22 - strlen(buffer)] = '\0';
--
-- strcat(rem_addr, ":");
-- strcat(rem_addr, buffer);
-- timers[0] = '\0';
-
-+ addr_do_one(local_addr, sizeof(local_addr), 22, ap, &localaddr, local_port, "tcp");
-+ addr_do_one(rem_addr, sizeof(rem_addr), 22, ap, &remaddr, rem_port, "tcp");
-+
-+ timers[0] = '\0';
- if (flag_opt)
- switch (timer_run) {
- case 0:
-@@ -813,23 +1049,23 @@ static void tcp_do_one(int lnr, const char *line)
- timer_run, (double) time_len / HZ, retr, timeout);
- break;
- }
-- printf("tcp %6ld %6ld %-23s %-23s %-12s",
-- rxq, txq, local_addr, rem_addr, _(tcp_state[state]));
-+
-+ printf("%-4s %6ld %6ld %-*s %-*s %-11s",
-+ prot, rxq, txq, (int)netmax(23,strlen(local_addr)), local_addr, (int)netmax(23,strlen(rem_addr)), rem_addr, _(tcp_state[state]));
-
- finish_this_one(uid,inode,timers);
-- }
- }
-
- static int tcp_info(void)
- {
- INFO_GUTS6(_PATH_PROCNET_TCP, _PATH_PROCNET_TCP6, "AF INET (tcp)",
-- tcp_do_one);
-+ tcp_do_one, "tcp", "tcp6");
- }
-
--static void udp_do_one(int lnr, const char *line)
-+static void udp_do_one(int lnr, const char *line,const char *prot)
- {
-- char buffer[8192], local_addr[64], rem_addr[64];
-- char *udp_state, timers[64], more[512];
-+ char local_addr[64], rem_addr[64];
-+ char *udp_state, timers[64];
- int num, local_port, rem_port, d, state, timer_run, uid, timeout;
- #if HAVE_AFINET6
- struct sockaddr_in6 localaddr, remaddr;
-@@ -845,12 +1081,16 @@ static void udp_do_one(int lnr, const char *line)
- if (lnr == 0)
- return;
-
-- more[0] = '\0';
- num = sscanf(line,
-- "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %ld %512s\n",
-+ "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %lu %*s\n",
- &d, local_addr, &local_port,
- rem_addr, &rem_port, &state,
-- &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode, more);
-+ &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode);
-+
-+ if (num < 10) {
-+ fprintf(stderr, _("warning, got bogus udp line.\n"));
-+ return;
-+ }
-
- if (strlen(local_addr) > 8) {
- #if HAVE_AFINET6
-@@ -877,13 +1117,7 @@ static void udp_do_one(int lnr, const char *line)
- }
-
- retr = 0L;
-- if (!flag_opt)
-- more[0] = '\0';
-
-- if (num < 10) {
-- fprintf(stderr, _("warning, got bogus udp line.\n"));
-- return;
-- }
- if ((ap = get_afntype(((struct sockaddr *) &localaddr)->sa_family)) == NULL) {
- fprintf(stderr, _("netstat: unsupported address family %d !\n"),
- ((struct sockaddr *) &localaddr)->sa_family);
-@@ -917,24 +1151,8 @@ static void udp_do_one(int lnr, const char *line)
-
- if (flag_all || (notnull(remaddr) && !flag_lst) || (!notnull(remaddr) && flag_lst))
- {
-- safe_strncpy(local_addr, ap->sprint((struct sockaddr *) &localaddr,
-- flag_not), sizeof(local_addr));
-- snprintf(buffer, sizeof(buffer), "%s",
-- get_sname(htons(local_port), "udp",
-- flag_not & FLAG_NUM_PORT));
-- if ((strlen(local_addr) + strlen(buffer)) > 22)
-- local_addr[22 - strlen(buffer)] = '\0';
-- strcat(local_addr, ":");
-- strcat(local_addr, buffer);
--
-- snprintf(buffer, sizeof(buffer), "%s",
-- get_sname(htons(rem_port), "udp", flag_not & FLAG_NUM_PORT));
-- safe_strncpy(rem_addr, ap->sprint((struct sockaddr *) &remaddr,
-- flag_not), sizeof(rem_addr));
-- if ((strlen(rem_addr) + strlen(buffer)) > 22)
-- rem_addr[22 - strlen(buffer)] = '\0';
-- strcat(rem_addr, ":");
-- strcat(rem_addr, buffer);
-+ addr_do_one(local_addr, sizeof(local_addr), 22, ap, &localaddr, local_port, "udp");
-+ addr_do_one(rem_addr, sizeof(rem_addr), 22, ap, &remaddr, rem_port, "udp");
-
- timers[0] = '\0';
- if (flag_opt)
-@@ -953,8 +1171,8 @@ static void udp_do_one(int lnr, const char *line)
- retr, timeout);
- break;
- }
-- printf("udp %6ld %6ld %-23s %-23s %-12s",
-- rxq, txq, local_addr, rem_addr, udp_state);
-+ printf("%-5s %6ld %6ld %-23s %-23s %-11s",
-+ prot, rxq, txq, local_addr, rem_addr, udp_state);
-
- finish_this_one(uid,inode,timers);
- }
-@@ -963,13 +1181,19 @@ static void udp_do_one(int lnr, const char *line)
- static int udp_info(void)
- {
- INFO_GUTS6(_PATH_PROCNET_UDP, _PATH_PROCNET_UDP6, "AF INET (udp)",
-- udp_do_one);
-+ udp_do_one, "udp", "udp6");
- }
-
--static void raw_do_one(int lnr, const char *line)
-+static int udplite_info(void)
- {
-- char buffer[8192], local_addr[64], rem_addr[64];
-- char timers[64], more[512];
-+ INFO_GUTS6(_PATH_PROCNET_UDPLITE, _PATH_PROCNET_UDPLITE6,
-+ "AF INET (udplite)", udp_do_one, "udpl", "udpl6" );
-+}
-+
-+static void raw_do_one(int lnr, const char *line,const char *prot)
-+{
-+ char local_addr[64], rem_addr[64];
-+ char timers[64];
- int num, local_port, rem_port, d, state, timer_run, uid, timeout;
- #if HAVE_AFINET6
- struct sockaddr_in6 localaddr, remaddr;
-@@ -985,11 +1209,15 @@ static void raw_do_one(int lnr, const char *line)
- if (lnr == 0)
- return;
-
-- more[0] = '\0';
- num = sscanf(line,
-- "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %ld %512s\n",
-+ "%d: %64[0-9A-Fa-f]:%X %64[0-9A-Fa-f]:%X %X %lX:%lX %X:%lX %lX %d %d %lu %*s\n",
- &d, local_addr, &local_port, rem_addr, &rem_port, &state,
-- &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode, more);
-+ &txq, &rxq, &timer_run, &time_len, &retr, &uid, &timeout, &inode);
-+
-+ if (num < 10) {
-+ fprintf(stderr, _("warning, got bogus raw line.\n"));
-+ return;
-+ }
-
- if (strlen(local_addr) > 8) {
- #if HAVE_AFINET6
-@@ -1026,34 +1254,10 @@ static void raw_do_one(int lnr, const char *line)
- }
- #endif
-
-- if (!flag_opt)
-- more[0] = '\0';
--
-- if (num < 10) {
-- fprintf(stderr, _("warning, got bogus raw line.\n"));
-- return;
-- }
--
- if (flag_all || (notnull(remaddr) && !flag_lst) || (!notnull(remaddr) && flag_lst))
- {
-- snprintf(buffer, sizeof(buffer), "%s",
-- get_sname(htons(local_port), "raw",
-- flag_not & FLAG_NUM_PORT));
-- safe_strncpy(local_addr, ap->sprint((struct sockaddr *) &localaddr,
-- flag_not), sizeof(local_addr));
-- if ((strlen(local_addr) + strlen(buffer)) > 22)
-- local_addr[22 - strlen(buffer)] = '\0';
-- strcat(local_addr, ":");
-- strcat(local_addr, buffer);
--
-- snprintf(buffer, sizeof(buffer), "%s",
-- get_sname(htons(rem_port), "raw", flag_not & FLAG_NUM_PORT));
-- safe_strncpy(rem_addr, ap->sprint((struct sockaddr *) &remaddr,
-- flag_not), sizeof(rem_addr));
-- if ((strlen(rem_addr) + strlen(buffer)) > 22)
-- rem_addr[22 - strlen(buffer)] = '\0';
-- strcat(rem_addr, ":");
-- strcat(rem_addr, buffer);
-+ addr_do_one(local_addr, sizeof(local_addr), 22, ap, &localaddr, local_port, "raw");
-+ addr_do_one(rem_addr, sizeof(rem_addr), 22, ap, &remaddr, rem_port, "raw");
-
- timers[0] = '\0';
- if (flag_opt)
-@@ -1074,8 +1278,8 @@ static void raw_do_one(int lnr, const char *line)
- retr, timeout);
- break;
- }
-- printf("raw %6ld %6ld %-23s %-23s %-12d",
-- rxq, txq, local_addr, rem_addr, state);
-+ printf("%-4s %6ld %6ld %-23s %-23s %-11d",
-+ prot, rxq, txq, local_addr, rem_addr, state);
-
- finish_this_one(uid,inode,timers);
- }
-@@ -1084,7 +1288,7 @@ static void raw_do_one(int lnr, const char *line)
- static int raw_info(void)
- {
- INFO_GUTS6(_PATH_PROCNET_RAW, _PATH_PROCNET_RAW6, "AF INET (raw)",
-- raw_do_one);
-+ raw_do_one, "raw", "raw6");
- }
-
- #endif
-@@ -1094,14 +1298,14 @@ static int raw_info(void)
-
- #define HAS_INODE 1
-
--static void unix_do_one(int nr, const char *line)
-+static void unix_do_one(int nr, const char *line, const char *prot)
- {
- static int has = 0;
- char path[MAXPATHLEN], ss_flags[32];
- char *ss_proto, *ss_state, *ss_type;
-- int num, state, type, inode;
-+ int num, state, type;
- void *d;
-- unsigned long refcnt, proto, flags;
-+ unsigned long refcnt, proto, flags, inode;
-
- if (nr == 0) {
- if (strstr(line, "Inode"))
-@@ -1109,14 +1313,14 @@ static void unix_do_one(int nr, const char *line)
- return;
- }
- path[0] = '\0';
-- num = sscanf(line, "%p: %lX %lX %lX %X %X %d %s",
-+ num = sscanf(line, "%p: %lX %lX %lX %X %X %lu %s",
- &d, &refcnt, &proto, &flags, &type, &state, &inode, path);
- if (num < 6) {
- fprintf(stderr, _("warning, got bogus unix line.\n"));
- return;
- }
- if (!(has & HAS_INODE))
-- snprintf(path,sizeof(path),"%d",inode);
-+ snprintf(path,sizeof(path),"%lu",inode);
-
- if (!flag_all) {
- if ((state == SS_UNCONNECTED) && (flags & SO_ACCEPTCON)) {
-@@ -1195,7 +1399,7 @@ static void unix_do_one(int nr, const char *line)
- ss_state = _("UNKNOWN");
- }
-
-- strcpy(ss_flags, "[ ");
-+ safe_strncpy(ss_flags, "[ ", sizeof(ss_flags));
- if (flags & SO_ACCEPTCON)
- strcat(ss_flags, "ACC ");
- if (flags & SO_WAITDATA)
-@@ -1208,12 +1412,15 @@ static void unix_do_one(int nr, const char *line)
- printf("%-5s %-6ld %-11s %-10s %-13s ",
- ss_proto, refcnt, ss_flags, ss_type, ss_state);
- if (has & HAS_INODE)
-- printf("%-6d ",inode);
-+ printf("%-8lu",inode);
- else
-- printf("- ");
-+ printf("- ");
- if (flag_prg)
-- printf("%-" PROGNAME_WIDTHs "s",(has & HAS_INODE?prg_cache_get(inode):"-"));
-- puts(path);
-+ printf(" %-" PROGNAME_WIDTHs "s",(has & HAS_INODE?prg_cache_get(inode):"-"));
-+ if (flag_selinux)
-+ printf(" %-" SELINUX_WIDTHs "s",(has & HAS_INODE?prg_cache_get_con(inode):"-"));
-+
-+ printf(" %s\n", path);
- }
-
- static int unix_info(void)
-@@ -1229,12 +1436,13 @@ static int unix_info(void)
- printf(_("(w/o servers)"));
- }
-
-- printf(_("\nProto RefCnt Flags Type State I-Node"));
-+ printf(_("\nProto RefCnt Flags Type State I-Node "));
- print_progname_banner();
-+ print_selinux_banner();
- printf(_(" Path\n")); /* xxx */
-
- {
-- INFO_GUTS(_PATH_PROCNET_UNIX, "AF UNIX", unix_do_one);
-+ INFO_GUTS(_PATH_PROCNET_UNIX, "AF UNIX", unix_do_one, "unix");
- }
- }
- #endif
-@@ -1256,7 +1464,7 @@ static int ax25_info(void)
- N_("ESTABLISHED"),
- N_("RECOVERY")
- };
-- if (!(f = fopen(_PATH_PROCNET_AX25, "r"))) {
-+ if (!(f = proc_fopen(_PATH_PROCNET_AX25))) {
- if (errno != ENOENT) {
- perror(_PATH_PROCNET_AX25);
- return (-1);
-@@ -1350,18 +1558,37 @@ static int ipx_info(void)
- char sad[50], dad[50];
- struct sockaddr sa;
- unsigned sport = 0, dport = 0;
--
-- if (!(f = fopen(_PATH_PROCNET_IPX, "r"))) {
-- if (errno != ENOENT) {
-- perror(_PATH_PROCNET_IPX);
-- return (-1);
-- }
-- if (flag_arg || flag_ver)
-- ESYSNOT("netstat", "AF IPX");
-- if (flag_arg)
-- return (1);
-- else
-- return (0);
-+ struct stat s;
-+
-+ f = proc_fopen(_PATH_PROCNET_IPX_SOCKET1);
-+ if (!f) {
-+ if (errno != ENOENT) {
-+ perror(_PATH_PROCNET_IPX_SOCKET1);
-+ return (-1);
-+ }
-+ f = proc_fopen(_PATH_PROCNET_IPX_SOCKET2);
-+
-+ /* We need to check for directory */
-+ if (f) {
-+ if (fstat (fileno(f), &s) == -1 ||
-+ !S_ISREG(s.st_mode)) {
-+ fclose(f);
-+ f=NULL;
-+ }
-+ }
-+
-+ if (!f) {
-+ if (errno != ENOENT) {
-+ perror(_PATH_PROCNET_IPX_SOCKET2);
-+ return (-1);
-+ }
-+ if (flag_arg || flag_ver)
-+ ESYSNOT("netstat", "AF IPX");
-+ if (flag_arg)
-+ return (1);
-+ else
-+ return (0);
-+ }
- }
- printf(_("Active IPX sockets\nProto Recv-Q Send-Q Local Address Foreign Address State")); /* xxx */
- if (flag_exp > 1)
-@@ -1369,19 +1596,22 @@ static int ipx_info(void)
- printf("\n");
- if ((ap = get_afntype(AF_IPX)) == NULL) {
- EINTERN("netstat.c", "AF_IPX missing");
-+ fclose(f);
- return (-1);
- }
-- fgets(buf, 255, f);
-+ if (fgets(buf, 255, f))
-+ /* eat line */;
-
- while (fgets(buf, 255, f) != NULL) {
-- sscanf(buf, "%s %s %lX %lX %d %d",
-+ sscanf(buf, "%s %s %lX %lX %u %u",
- sad, dad, &txq, &rxq, &state, &uid);
- if ((st = rindex(sad, ':'))) {
- *st++ = '\0';
- sscanf(st, "%X", &sport); /* net byt order */
- sport = ntohs(sport);
- } else {
-- EINTERN("netstat.c", _PATH_PROCNET_IPX " sport format error");
-+ EINTERN("netstat.c", "ipx socket format error in source port");
-+ fclose(f);
- return (-1);
- }
- nc = 0;
-@@ -1391,7 +1621,8 @@ static int ipx_info(void)
- sscanf(st, "%X", &dport); /* net byt order */
- dport = ntohs(dport);
- } else {
-- EINTERN("netstat.c", _PATH_PROCNET_IPX " dport format error");
-+ EINTERN("netstat.c", "ipx socket format error in destination port");
-+ fclose(f);
- return (-1);
- }
- } else
-@@ -1413,16 +1644,16 @@ static int ipx_info(void)
-
- /* Fetch and resolve the Source */
- (void) ap->input(4, sad, &sa);
-- safe_strncpy(buf, ap->sprint(&sa, flag_not), sizeof(buf));
-+ safe_strncpy(buf, ap->sprint(&sa, flag_not & FLAG_NUM_HOST), sizeof(buf));
- snprintf(sad, sizeof(sad), "%s:%04X", buf, sport);
-
- if (!nc) {
- /* Fetch and resolve the Destination */
- (void) ap->input(4, dad, &sa);
-- safe_strncpy(buf, ap->sprint(&sa, flag_not), sizeof(buf));
-+ safe_strncpy(buf, ap->sprint(&sa, flag_not & FLAG_NUM_HOST), sizeof(buf));
- snprintf(dad, sizeof(dad), "%s:%04X", buf, dport);
- } else
-- strcpy(dad, "-");
-+ safe_strncpy(dad, "-", sizeof(dad));
-
- printf("IPX %6ld %6ld %-26s %-26s %-5s", txq, rxq, sad, dad, st);
- if (flag_exp > 1) {
-@@ -1438,6 +1669,116 @@ static int ipx_info(void)
- }
- #endif
-
-+#if HAVE_AFBLUETOOTH
-+const char *bluetooth_state(int state)
-+{
-+ switch (state) {
-+ case BT_CONNECTED:
-+ return _("CONNECTED");
-+ case BT_OPEN:
-+ return _("OPEN");
-+ case BT_BOUND:
-+ return _("BOUND");
-+ case BT_LISTEN:
-+ return _("LISTEN");
-+ case BT_CONNECT:
-+ return _("CONNECT");
-+ case BT_CONNECT2:
-+ return _("CONNECT2");
-+ case BT_CONFIG:
-+ return _("CONFIG");
-+ case BT_DISCONN:
-+ return _("DISCONN");
-+ case BT_CLOSED:
-+ return _("CLOSED");
-+ default:
-+ return _("UNKNOWN");
-+ }
-+}
-+
-+static void l2cap_do_one(int nr, const char *line, const char *prot)
-+{
-+ char daddr[18], saddr[18];
-+ unsigned state, psm, dcid, scid, imtu, omtu, sec_level;
-+ int num;
-+ const char *bt_state, *bt_sec_level;
-+
-+ num = sscanf(line, "%17s %17s %d %d 0x%04x 0x%04x %d %d %d",
-+ daddr, saddr, &state, &psm, &dcid, &scid, &imtu, &omtu, &sec_level);
-+
-+ if (num < 9) {
-+ fprintf(stderr, _("warning, got bogus l2cap line.\n"));
-+ return;
-+ }
-+
-+ if (flag_lst && !(state == BT_LISTEN || state == BT_BOUND))
-+ return;
-+ if (!(flag_all || flag_lst) && (state == BT_LISTEN || state == BT_BOUND))
-+ return;
-+
-+ bt_state = bluetooth_state(state);
-+ switch (sec_level) {
-+ case BT_SECURITY_SDP:
-+ bt_sec_level = _("SDP");
-+ break;
-+ case BT_SECURITY_LOW:
-+ bt_sec_level = _("LOW");
-+ break;
-+ case BT_SECURITY_MEDIUM:
-+ bt_sec_level = _("MEDIUM");
-+ break;
-+ case BT_SECURITY_HIGH:
-+ bt_sec_level = _("HIGH");
-+ break;
-+ default:
-+ bt_sec_level = _("UNKNOWN");
-+ }
-+
-+ printf("l2cap %-17s %-17s %-9s %7d 0x%04x 0x%04x %7d %7d %-7s\n",
-+ (strcmp (daddr, "00:00:00:00:00:00") == 0 ? "*" : daddr),
-+ (strcmp (saddr, "00:00:00:00:00:00") == 0 ? "*" : saddr),
-+ bt_state, psm, dcid, scid, imtu, omtu, bt_sec_level);
-+}
-+
-+static int l2cap_info(void)
-+{
-+ printf("%-6s %-17s %-17s %-9s %7s %-6s %-6s %7s %7s %-7s\n",
-+ "Proto", "Destination", "Source", "State", "PSM", "DCID", "SCID", "IMTU", "OMTU", "Security");
-+ INFO_GUTS(_PATH_SYS_BLUETOOTH_L2CAP, "AF BLUETOOTH", l2cap_do_one, "l2cap");
-+}
-+
-+static void rfcomm_do_one(int nr, const char *line, const char *prot)
-+{
-+ char daddr[18], saddr[18];
-+ unsigned state, channel;
-+ int num;
-+ const char *bt_state;
-+
-+ num = sscanf(line, "%17s %17s %d %d", daddr, saddr, &state, &channel);
-+ if (num < 4) {
-+ fprintf(stderr, _("warning, got bogus rfcomm line.\n"));
-+ return;
-+ }
-+
-+ if (flag_lst && !(state == BT_LISTEN || state == BT_BOUND))
-+ return;
-+ if (!(flag_all || flag_lst) && (state == BT_LISTEN || state == BT_BOUND))
-+ return;
-+
-+ bt_state = bluetooth_state(state);
-+ printf("rfcomm %-17s %-17s %-9s %7d\n",
-+ (strcmp (daddr, "00:00:00:00:00:00") == 0 ? "*" : daddr),
-+ (strcmp (saddr, "00:00:00:00:00:00") == 0 ? "*" : saddr),
-+ bt_state, channel);
-+}
-+
-+static int rfcomm_info(void)
-+{
-+ printf("%-6s %-17s %-17s %-9s %7s\n", "Proto", "Destination", "Source", "State", "Channel");
-+ INFO_GUTS(_PATH_SYS_BLUETOOTH_RFCOMM, "AF BLUETOOTH", rfcomm_do_one, "rfcomm");
-+}
-+#endif
-+
- static int iface_info(void)
- {
- if (skfd < 0) {
-@@ -1449,7 +1790,7 @@ static int iface_info(void)
- }
- if (flag_exp < 2) {
- ife_short = 1;
-- printf(_("Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n"));
-+ printf(_("Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg\n"));
- }
-
- if (for_all_interfaces(do_if_print, &flag_all) < 0) {
-@@ -1457,7 +1798,7 @@ static int iface_info(void)
- exit(1);
- }
- if (flag_cnt)
-- free_interface_list();
-+ if_cache_free();
- else {
- close(skfd);
- skfd = -1;
-@@ -1469,16 +1810,16 @@ static int iface_info(void)
-
- static void version(void)
- {
-- printf("%s\n%s\n%s\n%s\n", Release, Version, Signature, Features);
-+ printf("%s\n%s\n%s\n", Release, Signature, Features);
- exit(E_VERSION);
- }
-
-
- static void usage(void)
- {
-- fprintf(stderr, _("usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--help}\n"));
-- fprintf(stderr, _(" netstat [-vnNcaeol] [<Socket> ...]\n"));
-- fprintf(stderr, _(" netstat { [-veenNac] -i | [-cnNe] -M | -s }\n\n"));
-+ fprintf(stderr, _("usage: netstat [-vWeenNcCF] [<Af>] -r netstat {-V|--version|-h|--help}\n"));
-+ fprintf(stderr, _(" netstat [-vWnNcaeol] [<Socket> ...]\n"));
-+ fprintf(stderr, _(" netstat { [-vWeenNac] -i | [-cnNe] -M | -s [-6tuw] }\n\n"));
-
- fprintf(stderr, _(" -r, --route display routing table\n"));
- fprintf(stderr, _(" -i, --interfaces display interface table\n"));
-@@ -1487,7 +1828,9 @@ static void usage(void)
- #if HAVE_FW_MASQUERADE
- fprintf(stderr, _(" -M, --masquerade display masqueraded connections\n\n"));
- #endif
-+
- fprintf(stderr, _(" -v, --verbose be verbose\n"));
-+ fprintf(stderr, _(" -W, --wide don't truncate IP addresses\n"));
- fprintf(stderr, _(" -n, --numeric don't resolve names\n"));
- fprintf(stderr, _(" --numeric-hosts don't resolve host names\n"));
- fprintf(stderr, _(" --numeric-ports don't resolve port names\n"));
-@@ -1495,15 +1838,19 @@ static void usage(void)
- fprintf(stderr, _(" -N, --symbolic resolve hardware names\n"));
- fprintf(stderr, _(" -e, --extend display other/more information\n"));
- fprintf(stderr, _(" -p, --programs display PID/Program name for sockets\n"));
-+ fprintf(stderr, _(" -o, --timers display timers\n"));
- fprintf(stderr, _(" -c, --continuous continuous listing\n\n"));
- fprintf(stderr, _(" -l, --listening display listening server sockets\n"));
-- fprintf(stderr, _(" -a, --all, --listening display all sockets (default: connected)\n"));
-- fprintf(stderr, _(" -o, --timers display timers\n"));
-+ fprintf(stderr, _(" -a, --all display all sockets (default: connected)\n"));
- fprintf(stderr, _(" -F, --fib display Forwarding Information Base (default)\n"));
-- fprintf(stderr, _(" -C, --cache display routing cache instead of FIB\n\n"));
-+ fprintf(stderr, _(" -C, --cache display routing cache instead of FIB\n"));
-+#if HAVE_SELINUX
-+ fprintf(stderr, _(" -Z, --context display SELinux security context for sockets\n"));
-+#endif
-
-- fprintf(stderr, _(" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --netrom\n"));
-- fprintf(stderr, _(" <AF>=Use '-A <af>' or '--<af>'; default: %s\n"), DFLT_AF);
-+ fprintf(stderr, _("\n <Socket>={-t|--tcp} {-u|--udp} {-U|--udplite} {-S|--sctp} {-w|--raw}\n"));
-+ fprintf(stderr, _(" {-x|--unix} --ax25 --ipx --netrom\n"));
-+ fprintf(stderr, _(" <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n"), DFLT_AF);
- fprintf(stderr, _(" List of possible address families (which support routing):\n"));
- print_aflist(1); /* 1 = routeable */
- exit(E_USAGE);
-@@ -1514,7 +1861,7 @@ int main
- (int argc, char *argv[]) {
- int i;
- int lop;
-- struct option longopts[] =
-+ static struct option longopts[] =
- {
- AFTRANS_OPTS,
- {"version", 0, 0, 'V'},
-@@ -1526,9 +1873,13 @@ int main
- #endif
- {"protocol", 1, 0, 'A'},
- {"tcp", 0, 0, 't'},
-+ {"sctp", 0, 0, 'S'},
- {"udp", 0, 0, 'u'},
-+ {"udplite", 0, 0, 'U'},
- {"raw", 0, 0, 'w'},
- {"unix", 0, 0, 'x'},
-+ {"l2cap", 0, 0, '2'},
-+ {"rfcomm", 0, 0, 'f'},
- {"listening", 0, 0, 'l'},
- {"all", 0, 0, 'a'},
- {"timers", 0, 0, 'o'},
-@@ -1537,6 +1888,7 @@ int main
- {"programs", 0, 0, 'p'},
- {"verbose", 0, 0, 'v'},
- {"statistics", 0, 0, 's'},
-+ {"wide", 0, 0, 'W'},
- {"numeric", 0, 0, 'n'},
- {"numeric-hosts", 0, 0, '!'},
- {"numeric-ports", 0, 0, '@'},
-@@ -1545,6 +1897,7 @@ int main
- {"cache", 0, 0, 'C'},
- {"fib", 0, 0, 'F'},
- {"groups", 0, 0, 'g'},
-+ {"context", 0, 0, 'Z'},
- {NULL, 0, 0, 0}
- };
-
-@@ -1556,7 +1909,7 @@ int main
- getroute_init(); /* Set up AF routing support */
-
- afname[0] = '\0';
-- while ((i = getopt_long(argc, argv, "MCFA:acdegphinNorstuVv?wxl", longopts, &lop)) != EOF)
-+ while ((i = getopt_long(argc, argv, "A:CFMacdeghilnNoprsStuUvVWwx64?Z", longopts, &lop)) != EOF)
- switch (i) {
- case -1:
- break;
-@@ -1600,6 +1953,9 @@ int main
- case 'i':
- flag_int++;
- break;
-+ case 'W':
-+ flag_wide++;
-+ break;
- case 'n':
- flag_not |= FLAG_NUM;
- break;
-@@ -1624,6 +1980,14 @@ int main
- case 'o':
- flag_opt++;
- break;
-+ case '6':
-+ if (aftrans_opt("inet6"))
-+ exit(1);
-+ break;
-+ case '4':
-+ if (aftrans_opt("inet"))
-+ exit(1);
-+ break;
- case 'V':
- version();
- /*NOTREACHED */
-@@ -1633,21 +1997,45 @@ int main
- case 'r':
- flag_rou++;
- break;
--
- case 't':
- flag_tcp++;
- break;
--
-+ case 'S':
-+ flag_sctp++;
-+ break;
- case 'u':
- flag_udp++;
- break;
-+ case 'U':
-+ flag_udplite++;
-+ break;
- case 'w':
- flag_raw++;
- break;
-+ case '2':
-+ flag_l2cap++;
-+ break;
-+ case 'f':
-+ flag_rfcomm++;
-+ break;
- case 'x':
- if (aftrans_opt("unix"))
- exit(1);
- break;
-+ case 'Z':
-+#if HAVE_SELINUX
-+ if (is_selinux_enabled() <= 0) {
-+ fprintf(stderr, _("SELinux is not enabled on this machine.\n"));
-+ exit(1);
-+ }
-+ flag_prg++;
-+ flag_selinux++;
-+#else
-+ fprintf(stderr, _("SELinux is not enabled for this application.\n"));
-+ exit(1);
-+#endif
-+
-+ break;
- case '?':
- case 'h':
- usage();
-@@ -1658,46 +2046,71 @@ int main
- if (flag_int + flag_rou + flag_mas + flag_sta > 1)
- usage();
-
-- if ((flag_inet || flag_inet6 || flag_sta) && !(flag_tcp || flag_udp || flag_raw))
-- flag_tcp = flag_udp = flag_raw = 1;
-+ if ((flag_inet || flag_inet6 || flag_sta) &&
-+ !(flag_tcp || flag_sctp || flag_udp || flag_udplite || flag_raw))
-+ flag_tcp = flag_sctp = flag_udp = flag_udplite = flag_raw = 1;
-
-- if ((flag_tcp || flag_udp || flag_raw || flag_igmp) && !(flag_inet || flag_inet6))
-+ if ((flag_tcp || flag_sctp || flag_udp || flag_udplite || flag_raw || flag_igmp) &&
-+ !(flag_inet || flag_inet6))
- flag_inet = flag_inet6 = 1;
-
-- flag_arg = flag_tcp + flag_udp + flag_raw + flag_unx + flag_ipx
-- + flag_ax25 + flag_netrom + flag_igmp + flag_x25;
-+ if (flag_bluetooth && !(flag_l2cap || flag_rfcomm))
-+ flag_l2cap = flag_rfcomm = 1;
-+
-+ flag_arg = flag_tcp + flag_sctp + flag_udplite + flag_udp + flag_raw + flag_unx
-+ + flag_ipx + flag_ax25 + flag_netrom + flag_igmp + flag_x25 + flag_rose
-+ + flag_l2cap + flag_rfcomm;
-
- if (flag_mas) {
- #if HAVE_FW_MASQUERADE && HAVE_AFINET
- #if MORE_THAN_ONE_MASQ_AF
- if (!afname[0])
-- strcpy(afname, DFLT_AF);
-+ safe_strncpy(afname, DFLT_AF, sizeof(afname));
- #endif
- for (;;) {
- i = ip_masq_info(flag_not & FLAG_NUM_HOST,
- flag_not & FLAG_NUM_PORT, flag_exp);
- if (i || !flag_cnt)
- break;
-- sleep(1);
-+ wait_continous();
- }
- #else
-- ENOSUPP("netstat.c", "FW_MASQUERADE");
-+ ENOSUPP("netstat", "FW_MASQUERADE");
- i = -1;
- #endif
- return (i);
- }
-
- if (flag_sta) {
-- inittab();
-- parsesnmp(flag_raw, flag_tcp, flag_udp);
-- exit(0);
-+ if (!afname[0])
-+ safe_strncpy(afname, DFLT_AF, sizeof(afname));
-+
-+ if (!strcmp(afname, "inet")) {
-+#if HAVE_AFINET
-+ inittab();
-+ parsesnmp(flag_raw, flag_tcp, flag_udp);
-+#else
-+ ENOSUPP("netstat", "AF INET");
-+#endif
-+ } else if(!strcmp(afname, "inet6")) {
-+#if HAVE_AFINET6
-+ inittab6();
-+ parsesnmp6(flag_raw, flag_tcp, flag_udp);
-+#else
-+ ENOSUPP("netstat", "AF INET6");
-+#endif
-+ } else {
-+ printf(_("netstat: No statistics support for specified address family: %s\n"), afname);
-+ exit(1);
-+ }
-+ exit(0);
- }
--
-+
- if (flag_rou) {
- int options = 0;
-
- if (!afname[0])
-- strcpy(afname, DFLT_AF);
-+ safe_strncpy(afname, DFLT_AF, sizeof(afname));
-
- if (flag_exp == 2)
- flag_exp = 1;
-@@ -1712,7 +2125,7 @@ int main
- i = route_info(afname, options);
- if (i || !flag_cnt)
- break;
-- sleep(1);
-+ wait_continous();
- }
- return (i);
- }
-@@ -1721,12 +2134,12 @@ int main
- i = iface_info();
- if (!flag_cnt || i)
- break;
-- sleep(1);
-+ wait_continous();
- }
- return (i);
- }
- for (;;) {
-- if (!flag_arg || flag_tcp || flag_udp || flag_raw) {
-+ if (!flag_arg || flag_tcp || flag_sctp || flag_udp || flag_udplite || flag_raw) {
- #if HAVE_AFINET
- prg_cache_load();
- printf(_("Active Internet connections ")); /* xxx */
-@@ -1743,6 +2156,7 @@ int main
- if (flag_exp > 1)
- printf(_(" User Inode "));
- print_progname_banner();
-+ print_selinux_banner();
- if (flag_opt)
- printf(_(" Timer")); /* xxx */
- printf("\n");
-@@ -1759,11 +2173,25 @@ int main
- if (i)
- return (i);
- }
-+
-+ if (!flag_arg || flag_sctp) {
-+ i = sctp_info();
-+ if (i)
-+ return (i);
-+ }
-+
- if (!flag_arg || flag_udp) {
- i = udp_info();
- if (i)
- return (i);
- }
-+
-+ if (!flag_arg || flag_udplite) {
-+ i = udplite_info();
-+ if (i)
-+ return (i);
-+ }
-+
- if (!flag_arg || flag_raw) {
- i = raw_info();
- if (i)
-@@ -1845,9 +2273,55 @@ int main
- }
- #endif
- }
-+ if (!flag_arg || flag_rose) {
-+#if 0 && HAVE_AFROSE
-+ i = rose_info();
-+ if (i)
-+ return (i);
-+#else
-+ if (flag_arg) {
-+ i = 1;
-+ ENOSUPP("netstat", "AF ROSE");
-+ }
-+#endif
-+ }
-+
-+ if (!flag_arg || flag_l2cap || flag_rfcomm) {
-+#if HAVE_AFBLUETOOTH
-+ printf(_("Active Bluetooth connections ")); /* xxx */
-+
-+ if (flag_all)
-+ printf(_("(servers and established)"));
-+ else {
-+ if (flag_lst)
-+ printf(_("(only servers)"));
-+ else
-+ printf(_("(w/o servers)"));
-+ }
-+ printf("\n");
-+#else
-+ if (flag_arg) {
-+ i = 1;
-+ ENOSUPP("netstat", "AF BLUETOOTH");
-+ }
-+#endif
-+ }
-+#if HAVE_AFBLUETOOTH
-+ if (!flag_arg || flag_l2cap) {
-+ i = l2cap_info();
-+ if (i)
-+ return (i);
-+ }
-+ if (!flag_arg || flag_rfcomm) {
-+ i = rfcomm_info();
-+ if (i)
-+ return (i);
-+ }
-+#endif
-+
- if (!flag_cnt || i)
- break;
-- sleep(1);
-+ wait_continous();
- prg_cache_clear();
- }
- return (i);
-diff --git a/plipconfig.c b/plipconfig.c
-index 1f972a7..86fa890 100644
---- a/plipconfig.c
-+++ b/plipconfig.c
-@@ -4,7 +4,7 @@
- Copyright (c) 1994 John Paul Morrison (VE7JPM).
-
- version 0.2
--
-+
- Changed by Alan Cox, to reflect the way SIOCDEVPRIVATE is meant to work
- and for the extra parameter added by Niibe.
-
-@@ -42,31 +42,27 @@
- #include "intl.h"
- #include "net-support.h"
- #include "version.h"
-+#include "util.h"
-
--int opt_a = 0;
--int opt_i = 0;
--int opt_v = 0;
- int skfd = -1;
-
- struct ifreq ifr;
- struct plipconf *plip;
-
--char *Release = RELEASE,
-- *Version = "plipconfig 0.2",
-- *Signature = "John Paul Morrison, Alan Cox et al.";
-+static char *Release = RELEASE, *Signature = "John Paul Morrison, Alan Cox et al.";
-
- static void version(void)
- {
-- printf("%s\n%s\n%s\n", Release, Version, Signature);
-+ printf("%s\n%s\n", Release, Signature);
- exit(E_VERSION);
- }
-
- void usage(void)
- {
-- fprintf(stderr, _("Usage: plipconfig [-a] [-i] [-v] interface\n"));
-- fprintf(stderr, _(" [nibble NN] [trigger NN]\n"));
-+ fprintf(stderr, _("Usage: plipconfig interface [nibble NN] [trigger NN]\n"));
- fprintf(stderr, _(" plipconfig -V | --version\n"));
-- exit(-1);
-+ fprintf(stderr, _(" plipconfig -h | --help\n"));
-+ exit(E_USAGE);
- }
-
- void print_plip(void)
-@@ -93,12 +89,10 @@ int main(int argc, char **argv)
- argc--;
- argv++;
- while (argv[0] && *argv[0] == '-') {
-- if (!strcmp(*argv, "-a"))
-- opt_a = 1;
-- if (!strcmp(*argv, "-v"))
-- opt_v = 1;
- if (!strcmp(*argv, "-V") || !strcmp(*argv, "--version"))
- version();
-+ else
-+ usage();
- argv++;
- argc--;
- }
-@@ -107,7 +101,7 @@ int main(int argc, char **argv)
- usage();
-
- spp = argv;
-- strncpy(ifr.ifr_name, *spp++, IFNAMSIZ);
-+ safe_strncpy(ifr.ifr_name, *spp++, IFNAMSIZ);
- plip=(struct plipconf *)&ifr.ifr_data;
-
- plip->pcmd = PLIP_GET_TIMEOUT; /* get current settings for device */
-diff --git a/po/Makefile b/po/Makefile
-index 0fdf82d..c7f27fb 100644
---- a/po/Makefile
-+++ b/po/Makefile
-@@ -3,16 +3,24 @@ INSTALL_PROGRAM= ${INSTALL}
- INSTALL_DATA= ${INSTALL} -m 644
- INSTALLNLSDIR=${BASEDIR}/usr/share/locale
-
--TUPDATE = tupdate
-+TUPDATE = msgmerge
-
- NLSPACKAGE = net-tools
-
- -include ../config.make
-+ALL_POS = $(wildcard *.po)
-+ALL_LANGS = $(ALL_POS:%.po=%)
-+ALL_CATALOGS = $(ALL_LANGS:%=%.mo)
- ifeq ($(I18N),1)
--CATALOGS = de.mo fr.mo pt_BR.mo et_EE.mo cs.mo
-+ifeq ($(LINGUAS),)
-+LANGS = $(ALL_LANGS)
- else
--CATALOGS =
-+LANGS = $(filter $(LINGUAS),$(ALL_LANGS))
- endif
-+else
-+LANGS =
-+endif
-+CATALOGS = $(LANGS:%=%.mo)
-
- POTFILES=../arp.c ../hostname.c ../ifconfig.c ../netstat.c ../rarp.c \
- ../route.c ../plipconfig.c ../iptunnel.c ../statistics.c \
-@@ -44,12 +52,12 @@ $(NLSPACKAGE).pot: $(POTFILES)
-
- update-po: Makefile
- $(MAKE) $(NLSPACKAGE).pot
-- catalogs='$(CATALOGS)'; \
-- for cat in $$catalogs; do \
-- lang=`echo $$cat | sed 's/.mo//'`; \
-+ langs='$(ALL_LANGS)'; \
-+ for lang in $$langs; do \
-+ cat=$$lang.mo; \
- mv $$lang.po $$lang.old.po; \
- echo "$$lang:"; \
-- if $(TUPDATE) $(NLSPACKAGE).pot $$lang.old.po > $$lang.po; then \
-+ if $(TUPDATE) $$lang.old.po $(NLSPACKAGE).pot > $$lang.po; then \
- rm -f $$lang.old.po; \
- else \
- echo "tupdate for $$cat failed!"; \
-@@ -61,18 +69,19 @@ update-po: Makefile
- clean:
- rm -f *mo
-
-+dist: $(ALL_CATALOGS)
-+
- distclean: clean
- rm -f .depend Makefile
-
- depend:
-
- install: $(CATALOGS)
-- catalogs='$(CATALOGS)'; \
-- for n in $$catalogs; do \
-- l=`basename $$n .mo`; \
-+ langs='$(LANGS)'; \
-+ for l in $$langs; do \
- $(INSTALL) -m 755 -d $(INSTALLNLSDIR)/$$l; \
- $(INSTALL) -m 755 -d $(INSTALLNLSDIR)/$$l/LC_MESSAGES; \
-- $(INSTALL) -m 644 $$n $(INSTALLNLSDIR)/$$l/LC_MESSAGES/net-tools.mo; \
-+ $(INSTALL) -m 644 $$l.mo $(INSTALLNLSDIR)/$$l/LC_MESSAGES/net-tools.mo; \
- done
-
- %.mo: %.po
-diff --git a/po/cs.po b/po/cs.po
-index b4b66a1..c1d6a8a 100644
---- a/po/cs.po
-+++ b/po/cs.po
-@@ -1,359 +1,385 @@
- # Czech translation of net-tools
- # Copyright (C) 1999 Free Software Foundation, Inc.
--# Ji Pavlovsk <pavlovsk@ffcuni.cz>, 1999.
-+# Jiří Pavlovský <pavlovsk@ffcuni.cz>, 1999.
-+# Petr Pisar <petr.pisar@atlas.cz>, 2009.
- #
- msgid ""
- msgstr ""
--"Project-Id-Version: net-tools-1.51\n"
--"POT-Creation-Date: 2000-02-14 02:31+0100\n"
--"PO-Revision-Date: 1999-08-29 23:20+0200\n"
--"Last-Translator: Ji Pavlovsk <pavlovsk@ff.cuni.cz>\n"
--"Language-Team: Czech <cs@li.org>\n"
-+"Project-Id-Version: net-tools cvs-20090825\n"
-+"Report-Msgid-Bugs-To: \n"
-+"POT-Creation-Date: 2009-08-25 18:34+0200\n"
-+"PO-Revision-Date: 2009-08-26 22:18+0200\n"
-+"Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
-+"Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
- "MIME-Version: 1.0\n"
--"Content-Type: text/plain; charset=iso-8859-2\n"
-+"Content-Type: text/plain; charset=UTF-8\n"
- "Content-Transfer-Encoding: 8bit\n"
-
--#: ../arp.c:110 ../arp.c:269
-+#: ../arp.c:112 ../arp.c:279
-+#, c-format
- msgid "arp: need host name\n"
--msgstr "arp: je teba jmno potae\n"
-+msgstr "arp: je třeba jméno počítače\n"
-
--#: ../arp.c:207 ../arp.c:221
-+#: ../arp.c:215 ../arp.c:230
- #, c-format
- msgid "No ARP entry for %s\n"
--msgstr "Pro %s neexistuje ARP poloka\n"
-+msgstr "Pro %s neexistuje ARP položka\n"
-
--#: ../arp.c:239
-+#: ../arp.c:248
- #, c-format
- msgid "arp: cant get HW-Address for `%s': %s.\n"
- msgstr "arp: HW adresu `%s' nelze zjistit: %s\n"
-
--#: ../arp.c:243
-+#: ../arp.c:252
-+#, c-format
- msgid "arp: protocol type mismatch.\n"
--msgstr "arp: chybn zadan typ protokolu\n"
-+msgstr "arp: chybně zadaný typ protokolu\n"
-
--#: ../arp.c:252
-+#: ../arp.c:261
- #, c-format
- msgid "arp: device `%s' has HW address %s `%s'.\n"
--msgstr "arp: zazen `%s' m Hw adresu %s `%s'.\n"
-+msgstr "arp: zařízení `%s' má Hw adresu %s `%s'.\n"
-
--#: ../arp.c:282
-+#: ../arp.c:293
-+#, c-format
- msgid "arp: need hardware address\n"
--msgstr "arp: je teba hardwarov adresa\n"
-+msgstr "arp: je třeba hardwarová adresa\n"
-
--#: ../arp.c:290
-+#: ../arp.c:301
-+#, c-format
- msgid "arp: invalid hardware address\n"
--msgstr "arp: nesprvn hardwarov adresa\n"
-+msgstr "arp: nesprávná hardwarová adresa\n"
-
--#: ../arp.c:387
-+#: ../arp.c:398
- #, c-format
- msgid "arp: cannot open etherfile %s !\n"
--msgstr "arp: databzi ethernetovch adres %s nelze otevt!\n"
-+msgstr "arp: databázi ethernetových adres %s nelze otevřít!\n"
-
--#: ../arp.c:403
-+#: ../arp.c:414
- #, c-format
- msgid "arp: format error on line %u of etherfile %s !\n"
--msgstr "arp: syntaktick chyba na dku %u databze ethernetovch adres %s!\n"
-+msgstr "arp: syntaktická chyba na řádku %u databáze ethernetových adres %s!\n"
-
--#: ../arp.c:416
-+#: ../arp.c:427
- #, c-format
- msgid "arp: cannot set entry on line %u of etherfile %s !\n"
- msgstr ""
--"arp: poloku na dku %u databze ethernetovch adres %s nelze nastavit!\n"
-+"arp: položku na řádku %u databáze ethernetových adres %s nelze nastavit!\n"
-+
-+#: ../arp.c:448
-+#, c-format
-+msgid ""
-+"Address HWtype HWaddress Flags Mask "
-+"Iface\n"
-+msgstr ""
-+"Adresa HWtyp HWadresa Příz. Maska "
-+"Rozhr\n"
-
--#: ../arp.c:437
--msgid "Address\t\t\tHWtype\tHWaddress\t Flags Mask\t\t Iface\n"
--msgstr "Adresa\t\t\t HWtyp\t HWadresa\t Pz Maska\t\t Rozhran\n"
-+#: ../arp.c:476
-+msgid "<from_interface>"
-+msgstr "<z_rozhraní>"
-
--#: ../arp.c:467
-+#: ../arp.c:478
- msgid "(incomplete)"
--msgstr "(nekompletn)"
-+msgstr "(nekompletní)"
-
--#: ../arp.c:484
-+#: ../arp.c:495
- #, c-format
- msgid "%s (%s) at "
- msgstr "%s (%s) na "
-
--#: ../arp.c:490
-+#: ../arp.c:501
-+#, c-format
- msgid "<incomplete> "
--msgstr "<nekompletn>"
-+msgstr "<nekompletní>"
-
--#: ../arp.c:496
-+#: ../arp.c:507
- #, c-format
- msgid "netmask %s "
--msgstr "sov maska %s "
-+msgstr "síťová maska %s "
-
--#: ../arp.c:513
-+#: ../arp.c:524
- #, c-format
- msgid "on %s\n"
- msgstr "na %s\n"
-
--#: ../arp.c:592
-+#: ../arp.c:605
- #, c-format
- msgid "Entries: %d\tSkipped: %d\tFound: %d\n"
--msgstr "Poloky: %d\tVynechno: %d\tNalezeno: %d\n"
-+msgstr "Položky: %d\tVynecháno: %d\tNalezeno: %d\n"
-
--#: ../arp.c:596
-+#: ../arp.c:609
- #, c-format
- msgid "%s (%s) -- no entry\n"
--msgstr "%s (%s) -- dn poloka\n"
-+msgstr "%s (%s) -- žádná položka\n"
-
--#: ../arp.c:598
-+#: ../arp.c:611
- #, c-format
- msgid "arp: in %d entries no match found.\n"
--msgstr "arp: dn z poloek (%d) nevyhovuje.\n"
-+msgstr "arp: žádná z položek (%d) nevyhovuje.\n"
-
--#: ../arp.c:613
-+#: ../arp.c:626
-+#, c-format
- msgid ""
- "Usage:\n"
- " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP "
- "cache\n"
- msgstr ""
--"Pouit:\n"
--" arp [-vn] [<HW>] [-i <if> [-a] [<pota>] <-Zobraz ARP "
-+"Použití:\n"
-+" arp [-vn] [<HW>] [-i <rozhraní>] [-a] [<počítač>] <-Zobrazí ARP "
- "cache\n"
-
--#: ../arp.c:614
-+#: ../arp.c:627
-+#, c-format
- msgid ""
--" arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP "
-+" arp [-v] [-i <if>] -d <host> [pub] <-Delete ARP "
- "entry\n"
- msgstr ""
--" arp [-v] [-i <if>] -d <pota> [pub][nopub] <-Smae poloku "
-+" arp [-v] [-i <rozhraní>] -d <počítač> [pub] <-Smaže položku "
- "ARP\n"
-
--#: ../arp.c:615
--#, fuzzy
-+#: ../arp.c:628
-+#, c-format
- msgid ""
--" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
-+" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
- "file\n"
- msgstr ""
--" arp [-vnD] [<HW>] [-i <if>] -f <soubor> <-Pid poloku "
--"ze\n"
--" souboru\n"
-+" arp [-vnD] [<HW>] [-i <rozhraní>] -f [<soubor>] <-Přidá položku ze "
-+"souboru\n"
-
--#: ../arp.c:616
-+#: ../arp.c:629
-+#, c-format
- msgid ""
--" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add "
-+" arp [-v] [<HW>] [-i <if>] -s <host> <hwaddr> [temp] <-Add "
- "entry\n"
- msgstr ""
--" arp [-v] [<HW> [-i <if> -s <pota> <hwadr> [temp][nopub] <-Pid "
--"poloku\n"
--
--#: ../arp.c:617
--msgid ""
--" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub "
--"<-''-\n"
--msgstr ""
--" arp [-v] [<HW>] [-i <if>] -s <soubor> <hwadr> [smask <s>] <-''-\n"
-+" arp [-v] [<HW>] [-i <rozhraní>] -s <počítač> <hwadr> [temp] <-Přidá "
-+"položku\n"
-
--#: ../arp.c:618
-+#: ../arp.c:630
-+#, c-format
- msgid ""
--" arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub "
-+" arp [-v] [<HW>] [-i <if>] -Ds <host> <if> [netmask <nm>] pub "
- "<-''-\n"
- "\n"
- msgstr ""
--" arp [-v] [<HW> [-i <if> -Ds <pota> <if> [smask <s>] pub "
--"<-''-\n"
-+" arp [-v] [<HW>] [-i <rozhraní>] -Ds <počítač> <rozhraní> [síťmask <čís>] "
-+"pub\n"
-+" <-Totéž\n"
-
--#: ../arp.c:620
-+#: ../arp.c:632
-+#, c-format
- msgid ""
- " -a display (all) hosts in alternative (BSD) "
- "style\n"
- msgstr ""
--" -a zobraz jmna vech pota alternativnm\n"
--" (BSD) zpsobem\n"
-+" -a zobrazí jména všech počítačů alternativním\n"
-+" (BSD) způsobem\n"
-
--#: ../arp.c:621
-+#: ../arp.c:633
-+#, c-format
- msgid " -s, --set set a new ARP entry\n"
--msgstr " -s, --set nastav novou ARP poloku\n"
-+msgstr " -s, --set nastaví novou ARP položku\n"
-
--#: ../arp.c:622
-+#: ../arp.c:634
-+#, c-format
- msgid " -d, --delete delete a specified entry\n"
--msgstr " -d, --delete smae zadanou ARP poloku\n"
-+msgstr " -d, --delete smaže zadanou ARP položku\n"
-
--#: ../arp.c:623 ../netstat.c:1436 ../route.c:85
-+#: ../arp.c:635 ../netstat.c:1520 ../route.c:86
-+#, c-format
- msgid " -v, --verbose be verbose\n"
- msgstr ""
--" -v, --verbose bude vypisovat podrobn zprvy\n"
--" o innosti\n"
-+" -v, --verbose bude vypisovat podrobné zprávy o činnosti\n"
-
--#: ../arp.c:624 ../netstat.c:1437 ../route.c:86
--msgid " -n, --numeric dont resolve names\n"
--msgstr ""
--" -n, --numeric nebude pevdt seln adresy\n"
--" na kanonick jmna\n"
-+#: ../arp.c:636 ../netstat.c:1522 ../route.c:87
-+#, c-format
-+msgid " -n, --numeric don't resolve names\n"
-+msgstr " -n, --numeric nebude převádět jména\n"
-
--#: ../arp.c:625
-+#: ../arp.c:637
-+#, c-format
- msgid ""
- " -i, --device specify network interface (e.g. eth0)\n"
--msgstr " -i, --device zadv sov rozhran (nap. eth0)\n"
-+msgstr " -i, --device zadává síťové rozhraní (např. eth0)\n"
-
--#: ../arp.c:626
-+#: ../arp.c:638
-+#, c-format
- msgid " -D, --use-device read <hwaddr> from given device\n"
--msgstr " -D, --use-device te <hwadr> ze zadanho zazen\n"
-+msgstr " -D, --use-device čte <hwadr> ze zadaného zařízení\n"
-
--#: ../arp.c:627
--#, fuzzy
-+#: ../arp.c:639
-+#, c-format
- msgid " -A, -p, --protocol specify protocol family\n"
--msgstr " -r, --route vype smrovac tabulku\n"
-+msgstr " -A, -p, --protocol určuje rodinu protokolů\n"
-
--#: ../arp.c:628
--#, fuzzy
-+#: ../arp.c:640
-+#, c-format
- msgid ""
--" -f, --file read new entries from file or from "
--"/etc/ethers\n"
-+" -f, --file read new entries from file or from /etc/"
-+"ethers\n"
- "\n"
- msgstr ""
--" -f, --file te nov poloky ze souboru\n"
--"\n"
-+" -f, --file čte nové položky ze souboru nebo z /etc/"
-+"ethers\n"
-
--#: ../arp.c:630 ../rarp.c:181
-+#: ../arp.c:642 ../rarp.c:183
- #, c-format
- msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n"
- msgstr ""
--" <HW>=Pouijte '-H <hw> pro zadn hardwarovho typu adresy.\n"
--" Implicitn: %s\n"
-+" <HW>=Použijte '-H <hw> pro zadání hardwarového typu adresy.\n"
-+" Implicitně: %s\n"
-
--#: ../arp.c:631 ../rarp.c:182
-+#: ../arp.c:643 ../rarp.c:184
-+#, c-format
- msgid " List of possible hardware types (which support ARP):\n"
--msgstr " Seznam monch hardwarovch typ (podporujcch ARP):\n"
-+msgstr " Seznam možných hardwarových typů (podporujících ARP):\n"
-
--#: ../arp.c:664
-+#: ../arp.c:677 ../arp.c:762
- #, c-format
- msgid "%s: hardware type not supported!\n"
--msgstr "hardwarov typ %s nen podporovn!\n"
-+msgstr "hardwarový typ %s není podporován!\n"
-
--#: ../arp.c:668
-+#: ../arp.c:681
- #, c-format
- msgid "%s: address family not supported!\n"
--msgstr "tda adres %s nen podporovna!\n"
-+msgstr "třída adres %s není podporována!\n"
-
--#: ../arp.c:703
-+#: ../arp.c:716
-+#, c-format
- msgid "arp: -N not yet supported.\n"
--msgstr "arp: pepna -N nen zatm podporovn\n"
-+msgstr "arp: přepínač -N není zatím podporován\n"
-
--#: ../arp.c:713
-+#: ../arp.c:726
- #, c-format
- msgid "arp: %s: unknown address family.\n"
--msgstr "arp: neznm tda adres %s.\n"
-+msgstr "arp: neznámá třída adres %s.\n"
-
--#: ../arp.c:722
-+#: ../arp.c:735
- #, c-format
- msgid "arp: %s: unknown hardware type.\n"
--msgstr "arp: neznm hardwarov typ %s.\n"
-+msgstr "arp: neznámý hardwarový typ %s.\n"
-
--#: ../arp.c:741
-+#: ../arp.c:754
- #, c-format
- msgid "arp: %s: kernel only supports 'inet'.\n"
--msgstr "arp: %s: jdro podporuje pouze 'inet'.\n"
-+msgstr "arp: %s: jádro podporuje pouze 'inet'.\n"
-
--#: ../arp.c:746
-+#: ../arp.c:767
- #, c-format
- msgid "arp: %s: hardware type without ARP support.\n"
--msgstr "arp: hardwarov typ %s nepodporuje ARP.\n"
-+msgstr "arp: hardwarový typ %s nepodporuje ARP.\n"
-
--#: ../hostname.c:69
-+#: ../hostname.c:71
- #, c-format
- msgid "Setting nodename to `%s'\n"
--msgstr "Nastavuji jmno uzlu na `%s'\n"
-+msgstr "Nastavuji jméno uzlu na `%s'\n"
-
--#: ../hostname.c:74
-+#: ../hostname.c:76
- #, c-format
- msgid "%s: you must be root to change the node name\n"
--msgstr "%s: jmno uzlu me zmnit pouze superuivatel\n"
-+msgstr "%s: jméno uzlu může změnit pouze superuživatel\n"
-
--#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116
-+#: ../hostname.c:79 ../hostname.c:100 ../hostname.c:118
- #, c-format
- msgid "%s: name too long\n"
--msgstr "jmno %s je pli dlouh\n"
-+msgstr "jméno %s je příliš dlouhé\n"
-
--#: ../hostname.c:89
-+#: ../hostname.c:92
- #, c-format
- msgid "Setting hostname to `%s'\n"
--msgstr "Nastavuji jmno potae na `%s'\n"
-+msgstr "Nastavuji jméno počítače na `%s'\n"
-
--#: ../hostname.c:94
-+#: ../hostname.c:97
- #, c-format
- msgid "%s: you must be root to change the host name\n"
--msgstr "%s: jmno potae me zmnit pouze superuivatel\n"
-+msgstr "%s: jméno počítače může změnit pouze superuživatel\n"
-
--#: ../hostname.c:108
-+#: ../hostname.c:110
- #, c-format
- msgid "Setting domainname to `%s'\n"
--msgstr "Nastavuji jmno domny na `%s'\n"
-+msgstr "Nastavuji jméno domény na `%s'\n"
-
--#: ../hostname.c:113
-+#: ../hostname.c:115
- #, c-format
- msgid "%s: you must be root to change the domain name\n"
--msgstr "%s: jmno domny me zmnit pouze superuivatel\n"
-+msgstr "%s: jméno domény může změnit pouze superuživatel\n"
-
--#: ../hostname.c:131
-+#: ../hostname.c:132
- #, c-format
- msgid "Resolving `%s' ...\n"
--msgstr "Vyhledvm `%s' ...\n"
-+msgstr "Vyhledávám `%s' ...\n"
-
--#: ../hostname.c:137
-+#: ../hostname.c:138
- #, c-format
- msgid "Result: h_name=`%s'\n"
--msgstr "Vsledek: h_name=`%s'\n"
-+msgstr "Výsledek: h_name=`%s'\n"
-
--#: ../hostname.c:142
-+#: ../hostname.c:143
- #, c-format
- msgid "Result: h_aliases=`%s'\n"
--msgstr "Vsledek: h_aliases=`%s'\n"
-+msgstr "Výsledek: h_aliases=`%s'\n"
-
--#: ../hostname.c:147
-+#: ../hostname.c:148
- #, c-format
- msgid "Result: h_addr_list=`%s'\n"
--msgstr "Vsledek: h_addr_list=`%s'\n"
-+msgstr "Výsledek: h_addr_list=`%s'\n"
-
- #: ../hostname.c:209
- #, c-format
- msgid "%s: can't open `%s'\n"
--msgstr "%s: `%s' nelze otevt\n"
-+msgstr "%s: `%s' nelze otevřít\n"
-
- #: ../hostname.c:223
-+#, c-format
- msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n"
- msgstr ""
--"Pouit:\n"
--" hostname [-v] {jmno|-F soubor} nastav jmno potae (ze "
-+"Použití:\n"
-+" hostname [-v] {jméno|-F soubor} nastaví jméno počítače (ze "
- "souboru)\n"
-
- #: ../hostname.c:224
-+#, c-format
- msgid ""
- " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n"
- msgstr ""
--" domainname [-v] {jmno|-F soubor} nastav jmno NIS domny (ze\n"
-+" domainname [-v] {jméno|-F soubor} nastaví jméno NIS domény (ze\n"
- " souboru)\n"
-
- #: ../hostname.c:226
-+#, c-format
- msgid ""
- " nodename [-v] {nodename|-F file} set DECnet node name (from "
- "file)\n"
- msgstr ""
--" nodename [-v] {jmno|-F soubor} nastav jmno DECnet uzlu (ze\n"
-+" nodename [-v] {jméno|-F soubor} nastaví jméno DECnet uzlu (ze\n"
- " souboru)\n"
-
- #: ../hostname.c:228
-+#, c-format
- msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n"
--msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] vype formtovan jmno\n"
-+msgstr " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] vypíše formátované jméno\n"
-
- #: ../hostname.c:229
-+#, c-format
- msgid ""
- " hostname [-v] display hostname\n"
- "\n"
- msgstr ""
--" hostname [-v] vype jmno potae\n"
-+" hostname [-v] vypíše jméno počítače\n"
- "\n"
-
- #: ../hostname.c:230
-+#, c-format
- msgid ""
- " hostname -V|--version|-h|--help print info and exit\n"
- "\n"
- msgstr ""
--" hostname -V|--version|-h|--help vype informace a skon\n"
-+" hostname -V|--version|-h|--help vypíše informace a skončí\n"
- "\n"
-
- #: ../hostname.c:231
-+#, c-format
- msgid ""
- " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n"
- "\n"
-@@ -362,42 +388,51 @@ msgstr ""
- "\n"
-
- #: ../hostname.c:232
-+#, c-format
- msgid " -s, --short short host name\n"
--msgstr " -s, --short krtk jmno potae\n"
-+msgstr " -s, --short krátké jméno počítače\n"
-
- #: ../hostname.c:233
-+#, c-format
- msgid " -a, --alias alias names\n"
--msgstr " -a, --alias pezdvky\n"
-+msgstr " -a, --alias přezdívky\n"
-
- #: ../hostname.c:234
-+#, c-format
- msgid " -i, --ip-address addresses for the hostname\n"
--msgstr " -i, --ip-address adresy odpovdajc jmnu potae\n"
-+msgstr " -i, --ip-address adresy odpovídající jménu počítače\n"
-
- #: ../hostname.c:235
-+#, c-format
- msgid " -f, --fqdn, --long long host name (FQDN)\n"
--msgstr " -f, --fqdn, --long dlouh jmno potae (kanonick)\n"
-+msgstr " -f, --fqdn, --long dlouhé jméno počítače (kanonické)\n"
-
- #: ../hostname.c:236
-+#, c-format
- msgid " -d, --domain DNS domain name\n"
--msgstr " -d, --domain jmno DNS domny\n"
-+msgstr " -d, --domain jméno DNS domény\n"
-
- #: ../hostname.c:237
-+#, c-format
- msgid " -y, --yp, --nis NIS/YP domainname\n"
--msgstr " -y, --yp, --nis jmno NIS/YP domny\n"
-+msgstr " -y, --yp, --nis jméno NIS/YP domény\n"
-
- #: ../hostname.c:239
-+#, c-format
- msgid " -n, --node DECnet node name\n"
--msgstr " -n, --node jmno DECnet uzlu\n"
-+msgstr " -n, --node jméno DECnet uzlu\n"
-
- #: ../hostname.c:241
-+#, c-format
- msgid ""
- " -F, --file read hostname or NIS domainname from given file\n"
- "\n"
- msgstr ""
--" -F, --file te jmno potae i nis domny ze souboru\n"
-+" -F, --file čte jméno počítače či nis domény ze souboru\n"
- "\n"
-
- #: ../hostname.c:243
-+#, c-format
- msgid ""
- " This command can read or set the hostname or the NIS domainname. You can\n"
- " also read the DNS domain or the FQDN (fully qualified domain name).\n"
-@@ -405,931 +440,929 @@ msgid ""
- " FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n"
- " part of the FQDN) in the /etc/hosts file.\n"
- msgstr ""
-+" Tento příkaz může přečíst nebo nastavit název stroje nebo doménové jméno\n"
-+" NIS. Načíst lze rovněž DNS doménu nebo FQDN (plně kvalifikované doménové\n"
-+" jméno). Pokud pro vyhledávání strojů nepoužíváte bind nebo NIS, můžete\n"
-+" změnit FQDN (Fully Qualified Domain Name) a doménové jméno DNS (což je\n"
-+" část FQDN) v souboru /etc/hosts.\n"
-
--#: ../hostname.c:338
-+#: ../hostname.c:340
- #, c-format
- msgid "%s: You can't change the DNS domain name with this command\n"
--msgstr "%s: Tmto pkazem nelze DNS jmno domny zmnit\n"
-+msgstr "%s: Tímto příkazem nelze DNS jméno domény změnit\n"
-
--#: ../hostname.c:339
-+#: ../hostname.c:341
-+#, c-format
- msgid ""
- "\n"
- "Unless you are using bind or NIS for host lookups you can change the DNS\n"
- msgstr ""
- "\n"
--"Pokud nepouvte bind i NIS pro vyhledvn jmen pota, pak mete "
--"zmnit\n"
-+"Pokud nepoužíváte bind či NIS pro vyhledávání jmen počítačů, pak můžete "
-+"změnit\n"
-
--#: ../hostname.c:340
-+#: ../hostname.c:342
-+#, c-format
- msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n"
- msgstr ""
--"DNS jmno domny (je soust kanonickho jmna potae) v souboru\n"
-+"DNS jméno domény (je součástí kanonického jména počítače) v souboru\n"
- "/etc/hosts\n"
-
--#: ../hostname.c:357
-+#: ../hostname.c:359
- #, c-format
- msgid "gethostname()=`%s'\n"
- msgstr "gethostname()=`%s'\n"
-
--#: ../hostname.c:374
-+#: ../hostname.c:376
- #, c-format
- msgid "getdomainname()=`%s'\n"
- msgstr "getdomainname()=`%s'\n"
-
--#: ../hostname.c:389
-+#: ../hostname.c:391
- #, c-format
- msgid "getnodename()=`%s'\n"
- msgstr "getnodename()=`%s'\n"
-
--#: ../ifconfig.c:159
--#, c-format
--msgid "%-9.9s Link encap:%s "
--msgstr "%-9.9s Zapouzden:%s "
--
--#: ../ifconfig.c:164
-+#: ../ifconfig.c:107 ../netstat.c:1482
- #, c-format
--msgid "HWaddr %s "
--msgstr "HWadr %s "
-+msgid ""
-+"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
-+"Flg\n"
-+msgstr ""
-+"Rozhr MTU Met PŘ-OK PŘ-CHYB PŘ-ZAH PŘ-PŘT OD-OK OD-CHYB OD-ZAH OD-PŘT "
-+"Přízn\n"
-
--#: ../ifconfig.c:167
-+#: ../ifconfig.c:132 ../ifconfig.c:164
- #, c-format
--msgid "Media:%s"
--msgstr "Mdium:%s"
-+msgid "%s: ERROR while getting interface flags: %s\n"
-+msgstr "%s: CHYBA při získávání příznaků rozhraní: %s\n"
-
--#: ../ifconfig.c:169
--msgid "(auto)"
--msgstr "(auto)"
--
--#: ../ifconfig.c:176
-+#: ../ifconfig.c:156 ../ifconfig.c:188 ../ifconfig.c:794 ../ifconfig.c:887
-+#: ../ifconfig.c:1000
- #, c-format
--msgid " %s addr:%s "
--msgstr " %s adr:%s "
-+msgid "No support for INET on this system.\n"
-+msgstr "Tento systém nepodporuje INET.\n"
-
--#: ../ifconfig.c:179
-+#: ../ifconfig.c:196
- #, c-format
--msgid " P-t-P:%s "
--msgstr " P-t-P:%s "
-+msgid "%s: ERROR while testing interface flags: %s\n"
-+msgstr "%s: CHYBA při zkoušení příznaků rozhraní: %s\n"
-
--# V ostatnch katalozch se pekld Broadcast -> vesmrov vysln.
--# Tudi bcast -> Vesmr :)
--#: ../ifconfig.c:182
-+#: ../ifconfig.c:205
- #, c-format
--msgid " Bcast:%s "
--msgstr " Vesmr:%s "
-+msgid ""
-+"Usage:\n"
-+" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n"
-+msgstr ""
-+"Použití:\n"
-+" ifconfig [-a] [-v] [-s] <rozhraní> [[<AF>] <adresa>]\n"
-
--#: ../ifconfig.c:184
-+#: ../ifconfig.c:207
- #, c-format
--msgid " Mask:%s\n"
--msgstr "Maska:%s\n"
-+msgid " [add <address>[/<prefixlen>]]\n"
-+msgstr " [add <adresa>[/<délka prefixu>]]\n"
-
--#: ../ifconfig.c:201
-+#: ../ifconfig.c:208
- #, c-format
--msgid " inet6 addr: %s/%d"
--msgstr " inet6-adr: %s/%d"
--
--#: ../ifconfig.c:203
--msgid " Scope:"
--msgstr " Rozsah:"
--
--#: ../ifconfig.c:206
--msgid "Global"
--msgstr "Globl"
-+msgid " [del <address>[/<prefixlen>]]\n"
-+msgstr " [del <adresa>[/<délka prefixu>]]\n"
-
- #: ../ifconfig.c:209
--msgid "Link"
--msgstr "Linka"
--
--#: ../ifconfig.c:212
--msgid "Site"
--msgstr "Stanovit"
--
--#: ../ifconfig.c:215
--msgid "Compat"
--msgstr "Kompatibilita"
--
--#: ../ifconfig.c:218
--msgid "Host"
--msgstr "Pota"
--
--#: ../ifconfig.c:221
--msgid "Unknown"
--msgstr "Neznm."
--
--#: ../ifconfig.c:236
--#, c-format
--msgid " IPX/Ethernet II addr:%s\n"
--msgstr " IPX/Ethernet II adr: %s\n"
--
--#: ../ifconfig.c:239
- #, c-format
--msgid " IPX/Ethernet SNAP addr:%s\n"
--msgstr " IPX/Ethernet SNAP adr:%s\n"
--
--#: ../ifconfig.c:242
--#, c-format
--msgid " IPX/Ethernet 802.2 addr:%s\n"
--msgstr " IPX/Ethernet 802.2 adr:%s\n"
-+msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n"
-+msgstr " [[-]broadcast [<adresa>]] [[-]pointopoint [<adresa>]]\n"
-
--#: ../ifconfig.c:245
-+#: ../ifconfig.c:210
- #, c-format
--msgid " IPX/Ethernet 802.3 addr:%s\n"
--msgstr " IPX/Ethernet 802.3 adr:%s\n"
-+msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n"
-+msgstr " [netmask <adresa>] [dstaddr <adresa>] [tunnel <adresa>]\n"
-
--#: ../ifconfig.c:255
-+#: ../ifconfig.c:213
- #, c-format
--msgid " EtherTalk Phase 2 addr:%s\n"
--msgstr " EtherTalk Phase 2 adr:%s\n"
-+msgid " [outfill <NN>] [keepalive <NN>]\n"
-+msgstr " [outfill <NN>] [keepalive <NN>]\n"
-
--#: ../ifconfig.c:264
-+#: ../ifconfig.c:215
- #, c-format
--msgid " econet addr:%s\n"
--msgstr " econet adr:%s\n"
--
--# Hic sunt leones ...
--#: ../ifconfig.c:270
--msgid "[NO FLAGS] "
--msgstr "[DN PZNAKY]"
--
--#: ../ifconfig.c:272
--msgid "UP "
--msgstr "AKTIVOVNO "
--
--#: ../ifconfig.c:274
--msgid "BROADCAST "
--msgstr "VESMROV_VYSLN "
--
--#: ../ifconfig.c:276
--msgid "DEBUG "
--msgstr "DEBUG "
--
--#: ../ifconfig.c:278
--msgid "LOOPBACK "
--msgstr "SMYKA "
--
--#: ../ifconfig.c:280
--msgid "POINTOPOINT "
--msgstr "POINTOPOINT "
--
--# ??
--#: ../ifconfig.c:282
--msgid "NOTRAILERS "
--msgstr "NOTRAILERS "
--
--#: ../ifconfig.c:284
--msgid "RUNNING "
--msgstr "B̮ "
--
--#: ../ifconfig.c:286
--msgid "NOARP "
--msgstr "NEARP "
--
--#: ../ifconfig.c:288
--msgid "PROMISC "
--msgstr "PROMISK "
--
--#: ../ifconfig.c:290
--msgid "ALLMULTI "
--msgstr "ALLMULTI "
--
--#: ../ifconfig.c:292
--msgid "SLAVE "
--msgstr "SLAVE "
--
--#: ../ifconfig.c:294
--msgid "MASTER "
--msgstr "MASTER "
--
--#: ../ifconfig.c:296
--msgid "MULTICAST "
--msgstr "MULTICAST "
--
--#: ../ifconfig.c:299
--msgid "DYNAMIC "
--msgstr "DYNAMIC "
-+msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n"
-+msgstr " [hw <HW> <adresa>] [metric <NN>] [mtu <NN>]\n"
-
--#: ../ifconfig.c:302
-+#: ../ifconfig.c:216
- #, c-format
--msgid " MTU:%d Metric:%d"
--msgstr " MTU:%d Metrika:%d"
-+msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n"
-+msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n"
-
--#: ../ifconfig.c:306
-+#: ../ifconfig.c:217
- #, c-format
--msgid " Outfill:%d Keepalive:%d"
--msgstr " Outfill:%d Keepalive:%d"
-+msgid " [multicast] [[-]promisc]\n"
-+msgstr " [multicast] [[-]promisc]\n"
-
--#: ../ifconfig.c:320
-+#: ../ifconfig.c:218
- #, c-format
--msgid "RX packets:%lu errors:%lu dropped:%lu overruns:%lu frame:%lu\n"
--msgstr "pijmutch paket:%lu chyb:%lu zahozeno:%lu peteen:%lu rmc:%lu\n"
-+msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"
-+msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <typ>]\n"
-
--#: ../ifconfig.c:325
-+#: ../ifconfig.c:220
- #, c-format
--msgid " compressed:%lu\n"
--msgstr " komprimovno:%lu\n"
-+msgid " [txqueuelen <NN>]\n"
-+msgstr " [txqueuelen délka]\n"
-
--# carrier?
--#: ../ifconfig.c:329
-+#: ../ifconfig.c:223
- #, c-format
--msgid "TX packets:%lu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"
--msgstr "odeslanch paket:%lu chyb:%lu zahozeno:%lu peteen:%lu penos:%lu\n"
-+msgid " [[-]dynamic]\n"
-+msgstr " [[-]dynamic]\n"
-
--#: ../ifconfig.c:333
-+#: ../ifconfig.c:225
- #, c-format
--msgid " collisions:%lu "
--msgstr " koliz:%lu "
-+msgid ""
-+" [up|down] ...\n"
-+"\n"
-+msgstr ""
-+" [up|down] ...\n"
-+"\n"
-
--#: ../ifconfig.c:335
-+#: ../ifconfig.c:227
- #, c-format
--msgid "compressed:%lu "
--msgstr "komprimovno:%lu "
-+msgid " <HW>=Hardware Type.\n"
-+msgstr " <HW> = Hardwarový Typ.\n"
-
--#: ../ifconfig.c:337
-+#: ../ifconfig.c:228
- #, c-format
--msgid "txqueuelen:%d "
--msgstr "dlka odchoz fronty:%d "
-+msgid " List of possible hardware types:\n"
-+msgstr " Seznam možných hardwarových typů:\n"
-
--#: ../ifconfig.c:345
-+#. 1 = ARPable
-+#: ../ifconfig.c:230
- #, c-format
--msgid "Interrupt:%d "
--msgstr "Peruen:%d "
-+msgid " <AF>=Address family. Default: %s\n"
-+msgstr " <AF> = Třída adres. Implicitní: %s\n"
-
--#. Only print devices using it for
--#. I/O maps
--#: ../ifconfig.c:348
-+#: ../ifconfig.c:231
- #, c-format
--msgid "Base address:0x%x "
--msgstr "Vstupn/Vstupn port:0x%x "
-+msgid " List of possible address families:\n"
-+msgstr " Seznam možných tříd adres:\n"
-
--#: ../ifconfig.c:350
-+#: ../ifconfig.c:307
- #, c-format
--msgid "Memory:%lx-%lx "
--msgstr "Pam:%lx-%lx "
-+msgid "ifconfig: option `%s' not recognised.\n"
-+msgstr "ifconfig: přepínač „%s“ nebyl rozpoznán.\n"
-
--#: ../ifconfig.c:353
-+#: ../ifconfig.c:309 ../ifconfig.c:990
- #, c-format
--msgid "DMA chan:%x "
--msgstr "Kanl DMA:%x "
-+msgid "ifconfig: `--help' gives usage information.\n"
-+msgstr "ifconfig: návod na použití lze získat pomocí „--help“\n"
-
--#: ../ifconfig.c:384 ../ifconfig.c:405
-+#: ../ifconfig.c:384
- #, c-format
--msgid "%s: unknown interface: %s\n"
--msgstr "%s: rozhran %s nen znmo\n"
-+msgid "Unknown media type.\n"
-+msgstr "Neznámý typ média.\n"
-
- #: ../ifconfig.c:421
-+#, c-format
- msgid ""
--"Usage:\n"
--" ifconfig [-a] [-i] [-v] <interface> [[<AF>] <address>]\n"
-+"Warning: Interface %s still in promisc mode... maybe other application is "
-+"running?\n"
- msgstr ""
--"Pouit:\n"
--" ifconfig [-a] [-i] [-v] <rozhran> [[<AF>] <adresa>]\n"
--
--#: ../ifconfig.c:425
--msgid " [add <address>[/<prefixlen>]]\n"
--msgstr " [add <adresa>[/<dlka prefixu>]]\n"
--
--#: ../ifconfig.c:427
--msgid " [del <address>[/<prefixlen>]]\n"
--msgstr " [del <adresa>[/<dlka prefixu>]]\n"
--
--#: ../ifconfig.c:432
--msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n"
--msgstr " [[-]broadcast [<adresa>]] [[-]pointopoint [<adresa>]]\n"
-+"Pozor: Rozhraní %s je stále v promiskuitním režimu. Neběží jiná aplikace?\n"
-
- #: ../ifconfig.c:433
--msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n"
--msgstr " [netmask <adresa>] [dstaddr <adresa>] [tunnel <adresa>]\n"
--
--#: ../ifconfig.c:436
--msgid " [outfill <NN>] [keepalive <NN>]\n"
--msgstr " [outfill <NN>] [keepalive <NN>]\n"
-+#, c-format
-+msgid "Warning: Interface %s still in MULTICAST mode.\n"
-+msgstr "Pozor: Rozhraní %s je stále v režimu MULTICAST.\n"
-
--#: ../ifconfig.c:438
--msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n"
--msgstr " [hw <HW> <adresa>] [metric <NN>] [mtu <NN>]\n"
-+#: ../ifconfig.c:445
-+#, c-format
-+msgid "Warning: Interface %s still in ALLMULTI mode.\n"
-+msgstr "Pozor: Rozhraní %s je stále v režimu ALLMULTI.\n"
-
--#: ../ifconfig.c:439
--msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n"
--msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n"
-+#: ../ifconfig.c:469
-+#, c-format
-+msgid "Warning: Interface %s still in DYNAMIC mode.\n"
-+msgstr "Pozor: Rozhraní %s je stále v režimu DYNAMIC.\n"
-
--#: ../ifconfig.c:440
--msgid " [multicast] [[-]promisc]\n"
--msgstr " [multicast] [[-]promisc]\n"
-+#: ../ifconfig.c:527
-+#, c-format
-+msgid "Warning: Interface %s still in BROADCAST mode.\n"
-+msgstr "Pozor: Rozhraní %s je stále v režimu VŠESMĚR.\n"
-
--#: ../ifconfig.c:441
--msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"
--msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <typ>]\n"
-+#: ../ifconfig.c:538
-+#, c-format
-+msgid "ifconfig: Error resolving '%s' for broadcast\n"
-+msgstr "ifconfig: Chyba při překládání „%s“ pro všesměr\n"
-
--#: ../ifconfig.c:443
--msgid " [txqueuelen <NN>]\n"
--msgstr " [txqueuelen dlka]\n"
-+#: ../ifconfig.c:563
-+#, c-format
-+msgid "ifconfig: Error resolving '%s' for dstaddr\n"
-+msgstr "ifconfig: Chyba při překládání „%s“ pro adresu cíle\n"
-
--#: ../ifconfig.c:446
--msgid " [[-]dynamic]\n"
--msgstr " [[-]dynamic]\n"
-+#: ../ifconfig.c:586
-+#, c-format
-+msgid "ifconfig: Error resolving '%s' for netmask\n"
-+msgstr "ifconfig: Chyba při překládání „%s“ pro masku sítě\n"
-
--#: ../ifconfig.c:448
--msgid ""
--" [up|down] ...\n"
--"\n"
--msgstr ""
--" [up|down] ...\n"
--"\n"
-+#: ../ifconfig.c:665
-+#, c-format
-+msgid "Warning: Interface %s still in POINTOPOINT mode.\n"
-+msgstr "Pozor: Rozhraní %s je stále v DVOUBODOVÉM režimu.\n"
-
--#: ../ifconfig.c:450
--msgid " <HW>=Hardware Type.\n"
--msgstr " <HW>=Hardwarov Typ.\n"
-+#: ../ifconfig.c:676
-+#, c-format
-+msgid "ifconfig: Error resolving '%s' for pointopoint\n"
-+msgstr "ifconfig: Chyba při překládání „%s“ pro dvoubodové nastavení\n"
-
--#: ../ifconfig.c:451
--msgid " List of possible hardware types:\n"
--msgstr " Seznam monch hardwarovch typ:\n"
-+#: ../ifconfig.c:700
-+#, c-format
-+msgid "hw address type `%s' has no handler to set address. failed.\n"
-+msgstr ""
-+"Pro typ hardwarové adresy „%s“ neexistuje obsluha na nastavování adresy.\n"
-+"Operace selhala.\n"
-
--#. 1 = ARPable
--#: ../ifconfig.c:453
-+#: ../ifconfig.c:709
- #, c-format
--msgid " <AF>=Address family. Default: %s\n"
--msgstr " <AF>=tda adres. Implicitn: %s\n"
-+msgid "%s: invalid %s address.\n"
-+msgstr "%s: adresa %s je nesprávná.\n"
-
--#: ../ifconfig.c:454
--msgid " List of possible address families:\n"
--msgstr " Seznam monch td adres:\n"
-+#: ../ifconfig.c:749
-+#, c-format
-+msgid "ifconfig: Error resolving '%s' for add\n"
-+msgstr "ifconfig: Chyba při překládání „%s“ pro adresu\n"
-
--#: ../ifconfig.c:593
--msgid "Unknown media type.\n"
--msgstr "Neznm typ mdia.\n"
-+#: ../ifconfig.c:760 ../ifconfig.c:850 ../ifconfig.c:938
-+#, c-format
-+msgid "No support for INET6 on this system.\n"
-+msgstr "Tento systém nepodporuje INET6.\n"
-
--#: ../ifconfig.c:881
-+#: ../ifconfig.c:803 ../ifconfig.c:896
- #, c-format
--msgid "%s: invalid %s address.\n"
--msgstr "%s: adresa %s je nesprvn.\n"
-+msgid "Interface %s not initialized\n"
-+msgstr "Rozhraní %s není inicializováno\n"
-
--#: ../ifconfig.c:920 ../ifconfig.c:963 ../ifconfig.c:1011
--msgid "No support for INET6 on this system.\n"
--msgstr "Tento systm nepodporuje INET6.\n"
-+#: ../ifconfig.c:815 ../ifconfig.c:907
-+#, c-format
-+msgid "Bad address.\n"
-+msgstr "Chybná adresa.\n"
-
--#: ../ifconfig.c:983
-+#: ../ifconfig.c:910
-+#, c-format
- msgid "Address deletion not supported on this system.\n"
--msgstr "Tento systm nepodporuje mazn adres.\n"
-+msgstr "Tento systém nepodporuje mazání adres.\n"
-
--#: ../ifconfig.c:1066
--msgid "No support for INET on this system.\n"
--msgstr "Tento systm nepodporuje INET.\n"
-+#: ../ifconfig.c:982
-+#, c-format
-+msgid "ifconfig: Cannot set address for this protocol family.\n"
-+msgstr "ifconfig: Pro tuto rodinu protokolů nelze nastavit adresu.\n"
-+
-+#: ../ifconfig.c:989
-+#, c-format
-+msgid "ifconfig: error resolving '%s' to set address for af=%s\n"
-+msgstr "ifconfig: chyba při překládání „%s“ za účelem nastavení adresy AF=%s\n"
-
--#: ../ifconfig.c:1076
-+#: ../ifconfig.c:1010
-+#, c-format
- msgid "No support for ECONET on this system.\n"
--msgstr "Tento systm nepodporuje ECONET.\n"
-+msgstr "Tento systém nepodporuje ECONET.\n"
-
--#: ../ifconfig.c:1084
-+#: ../ifconfig.c:1018
- #, c-format
- msgid "Don't know how to set addresses for family %d.\n"
--msgstr "Nevm, jak nastavit adresu tdy %d.\n"
-+msgstr "Nevím, jak nastavit adresu třídy %d.\n"
-+
-+#: ../ifconfig.c:1053
-+#, c-format
-+msgid "WARNING: at least one error occured. (%d)\n"
-+msgstr "POZOR: Vyskytla se alespoň jedna chyba. (%d)\n"
-
--#: ../netstat.c:383
-+#: ../netstat.c:434
- #, c-format
- msgid ""
- "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n"
- msgstr ""
--"(Pro \"-p\" nelze zskat dn informace: geteuid()=%d, ale je teba, aby "
-+"(Pro \"-p\" nelze získat žádné informace: geteuid()=%d, ale je třeba, aby "
- "jste\n"
--"byl superuivatelem)\n"
-+"byl superuživatelem)\n"
-
--#: ../netstat.c:387
-+#: ../netstat.c:438
-+#, c-format
- msgid ""
- "(Not all processes could be identified, non-owned process info\n"
- " will not be shown, you would have to be root to see it all.)\n"
- msgstr ""
--"(Vechny procesy nemohly bt identifikovny. Budou vypsany informace\n"
--"pouze o procesech, jich jste vlastnkem. Aby jste mohl vidt ve, musel\n"
--"byste bt superuivatelem.)\n"
-+"(Všechny procesy nemohly být identifikovány. Budou vypsány informace\n"
-+"pouze o procesech, jichž jste vlastníkem. Aby jste mohl vidět vše, musel\n"
-+"byste být superuživatelem.)\n"
-
--#: ../netstat.c:394 ../netstat.c:1089 ../netstat.c:1166
-+#: ../netstat.c:445 ../netstat.c:1186 ../netstat.c:1264
- msgid "LISTENING"
--msgstr "NASLOUCH"
-+msgstr "NASLOUCHÁ"
-
--#: ../netstat.c:395
-+#: ../netstat.c:446
- msgid "CONN SENT"
--msgstr "CONN ODESLN"
-+msgstr "CONN ODESLÁN"
-
--#: ../netstat.c:396 ../netstat.c:1168
-+#: ../netstat.c:447 ../netstat.c:1266
- msgid "DISC SENT"
--msgstr "DISC ODESLN"
-+msgstr "DISC ODESLÁN"
-
--#: ../netstat.c:397 ../netstat.c:464 ../netstat.c:809 ../netstat.c:1169
-+#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:898 ../netstat.c:1267
- msgid "ESTABLISHED"
- msgstr "SPOJENO"
-
--#: ../netstat.c:419
-+#: ../netstat.c:470
-+#, c-format
- msgid "Active NET/ROM sockets\n"
--msgstr "Aktivn NET/ROM sokety\n"
-+msgstr "Aktivní NET/ROM sokety\n"
-
--#: ../netstat.c:420
-+#: ../netstat.c:471
-+#, c-format
- msgid ""
--"User Dest Source Device State Vr/Vs Send-Q "
--"Recv-Q\n"
-+"User Dest Source Device State Vr/Vs Send-Q Recv-"
-+"Q\n"
- msgstr ""
--"Uivatel Cl Zdroj Zazen Stav Vr/Vs Odch-F "
--"Pch-F\n"
-+"Uživatel Cíl Zdroj Zařízení Stav Vr/Vs Odch-F Přích-"
-+"F\n"
-
--#: ../netstat.c:430 ../netstat.c:1208
-+#: ../netstat.c:481 ../netstat.c:1306
- #, c-format
- msgid "Problem reading data from %s\n"
--msgstr "Chyba pi ten dat z %s\n"
-+msgstr "Chyba při čtení dat z %s\n"
-
--# nsledujc radji ponechat v originle ?!
--#: ../netstat.c:465
-+# následující raději ponechat v originále ?!
-+#: ../netstat.c:516
- msgid "SYN_SENT"
- msgstr "SYN_SENT"
-
--#: ../netstat.c:466
-+#: ../netstat.c:517
- msgid "SYN_RECV"
- msgstr "SYN_RECV"
-
--#: ../netstat.c:467
-+#: ../netstat.c:518
- msgid "FIN_WAIT1"
- msgstr "FIN_WAIT1"
-
--#: ../netstat.c:468
-+#: ../netstat.c:519
- msgid "FIN_WAIT2"
- msgstr "FIN_WAIT2"
-
--#: ../netstat.c:469
-+#: ../netstat.c:520
- msgid "TIME_WAIT"
- msgstr "TIME_WAIT"
-
--#: ../netstat.c:470
-+#: ../netstat.c:521
- msgid "CLOSE"
--msgstr "ZAVEN"
-+msgstr "ZAVŘEN"
-
--#: ../netstat.c:471
-+#: ../netstat.c:522
- msgid "CLOSE_WAIT"
- msgstr "CLOSE_WAIT"
-
--#: ../netstat.c:472
-+#: ../netstat.c:523
- msgid "LAST_ACK"
--msgstr "POSLEDN ACK"
-+msgstr "POSLEDNÍ ACK"
-
--#: ../netstat.c:473
-+#: ../netstat.c:524
- msgid "LISTEN"
--msgstr "LISTEN"
-+msgstr "NASLOUCHÁ"
-
--#: ../netstat.c:474
-+#: ../netstat.c:525
- msgid "CLOSING"
--msgstr "ZAVR"
-+msgstr "ZAVíRÁ"
-
--#: ../netstat.c:544
-+#: ../netstat.c:596
- #, c-format
- msgid "warning, got bogus igmp6 line %d.\n"
--msgstr "varovn, nesmysln igmp6 dek %d.\n"
-+msgstr "varování, nesmyslný igmp6 řádek %d.\n"
-
--#: ../netstat.c:549 ../netstat.c:587 ../netstat.c:670 ../netstat.c:803
--#: ../netstat.c:935 ../netstat.c:940
-+#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:892
-+#: ../netstat.c:1029 ../netstat.c:1034
- #, c-format
- msgid "netstat: unsupported address family %d !\n"
--msgstr "netstat: tda adres %d nen podporovna !\n"
-+msgstr "netstat: třída adres %d není podporována !\n"
-
--#: ../netstat.c:562 ../netstat.c:567 ../netstat.c:575 ../netstat.c:582
-+#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634
- #, c-format
- msgid "warning, got bogus igmp line %d.\n"
--msgstr "varovn, nesmysln igmp dek %d.\n"
-+msgstr "varování, nesmyslný igmp řádek %d.\n"
-+
-+#: ../netstat.c:677
-+#, c-format
-+msgid "Active X.25 sockets\n"
-+msgstr "Aktivní X.25 sokety\n"
-+
-+#. IMHO, Vr/Vs is not very usefull --SF
-+#: ../netstat.c:679
-+#, c-format
-+msgid ""
-+"Dest Source Device LCI State Vr/Vs Send-Q Recv-"
-+"Q\n"
-+msgstr ""
-+"Cíl Zdroj Zaříz LCI Stav Vr/Vs Odhod-F Přích-"
-+"F\n"
-
--#: ../netstat.c:666
-+#: ../netstat.c:759
-+#, c-format
- msgid "warning, got bogus tcp line.\n"
--msgstr "varovn, nesmysln tcp dek.\n"
-+msgstr "varování, nesmyslný tcp řádek.\n"
-
--#: ../netstat.c:704 ../netstat.c:855 ../netstat.c:975
-+#: ../netstat.c:798 ../netstat.c:947 ../netstat.c:1072
- #, c-format
- msgid "off (0.00/%ld/%d)"
- msgstr "vyp (0.00/%ld/%d)"
-
--#: ../netstat.c:708
--#, fuzzy, c-format
-+#: ../netstat.c:802
-+#, c-format
- msgid "on (%2.2f/%ld/%d)"
--msgstr "zap%d (%2.2f/%ld/%d)"
-+msgstr "zapnut (%2.2f/%ld/%d)"
-
--#: ../netstat.c:713
--#, fuzzy, c-format
-+#: ../netstat.c:807
-+#, c-format
- msgid "keepalive (%2.2f/%ld/%d)"
--msgstr "zap%d (%2.2f/%ld/%d)"
-+msgstr "keepalive (%2.2f/%ld/%d)"
-
--#: ../netstat.c:718
--#, fuzzy, c-format
-+#: ../netstat.c:812
-+#, c-format
- msgid "timewait (%2.2f/%ld/%d)"
--msgstr "zap%d (%2.2f/%ld/%d)"
-+msgstr "timewait (%2.2f/%ld/%d)"
-
--#: ../netstat.c:723 ../netstat.c:864 ../netstat.c:985
-+#: ../netstat.c:817 ../netstat.c:956 ../netstat.c:1082
- #, c-format
- msgid "unkn-%d (%2.2f/%ld/%d)"
- msgstr "nezn-%d (%2.2f/%ld/%d)"
-
--#: ../netstat.c:799
-+#: ../netstat.c:888
-+#, c-format
- msgid "warning, got bogus udp line.\n"
--msgstr "varovn, nesmysln udp dek.\n"
-+msgstr "varování, nesmyslný udp řádek.\n"
-
--#: ../netstat.c:817 ../netstat.c:1075 ../netstat.c:1108
-+#: ../netstat.c:906 ../netstat.c:1172 ../netstat.c:1205
- msgid "UNKNOWN"
--msgstr "NEZNM"
-+msgstr "NEZNÁM"
-
--#: ../netstat.c:860 ../netstat.c:980
-+#: ../netstat.c:952 ../netstat.c:1077
- #, c-format
- msgid "on%d (%2.2f/%ld/%d)"
- msgstr "zap%d (%2.2f/%ld/%d)"
-
--#: ../netstat.c:949
-+#: ../netstat.c:1043
-+#, c-format
- msgid "warning, got bogus raw line.\n"
--msgstr "varovn, nesmysln 'raw' dek.\n"
-+msgstr "varování, nesmyslný 'raw' řádek.\n"
-
--#: ../netstat.c:1028
-+#: ../netstat.c:1125
-+#, c-format
- msgid "warning, got bogus unix line.\n"
--msgstr "varovn, netstat 'unix' dek.\n"
-+msgstr "varování, netstat 'unix' řádek.\n"
-
--#: ../netstat.c:1055
-+#: ../netstat.c:1152
- msgid "STREAM"
- msgstr "STREAM"
-
--#: ../netstat.c:1059
-+#: ../netstat.c:1156
- msgid "DGRAM"
- msgstr "DGRAM"
-
--#: ../netstat.c:1063
-+#: ../netstat.c:1160
- msgid "RAW"
- msgstr "RAW"
-
--#: ../netstat.c:1067
-+#: ../netstat.c:1164
- msgid "RDM"
- msgstr "RDM"
-
--#: ../netstat.c:1071
-+#: ../netstat.c:1168
- msgid "SEQPACKET"
- msgstr "SEQPACKET"
-
--#: ../netstat.c:1080
-+#: ../netstat.c:1177
- msgid "FREE"
--msgstr "NEALOKOVN"
-+msgstr "NEALOKOVÁN"
-
--#: ../netstat.c:1096
-+#: ../netstat.c:1193
- msgid "CONNECTING"
- msgstr "SPOJUJE"
-
--#: ../netstat.c:1100
-+#: ../netstat.c:1197
- msgid "CONNECTED"
- msgstr "SPOJEN"
-
--#: ../netstat.c:1104
-+#: ../netstat.c:1201
- msgid "DISCONNECTING"
- msgstr "ODPOJUJE"
-
--#: ../netstat.c:1135
-+#: ../netstat.c:1233
-+#, c-format
- msgid "Active UNIX domain sockets "
--msgstr "Aktivn sokety domny UNIX "
-+msgstr "Aktivní sokety domény UNIX "
-
--#: ../netstat.c:1137 ../netstat.c:1666
-+#: ../netstat.c:1235 ../netstat.c:1801
-+#, c-format
- msgid "(servers and established)"
--msgstr "(servery a navzan spojen)"
-+msgstr "(servery a navázaná spojení)"
-
--#: ../netstat.c:1140 ../netstat.c:1669
-+#: ../netstat.c:1238 ../netstat.c:1804
-+#, c-format
- msgid "(only servers)"
- msgstr "(pouze servery)"
-
--#: ../netstat.c:1142 ../netstat.c:1671
-+#: ../netstat.c:1240 ../netstat.c:1806
-+#, c-format
- msgid "(w/o servers)"
- msgstr "(w/o servery)"
-
--#: ../netstat.c:1145
-+#: ../netstat.c:1243
-+#, c-format
- msgid ""
- "\n"
--"Proto RefCnt Flags Type State I-Node"
-+"Proto RefCnt Flags Type State I-Node "
- msgstr ""
- "\n"
--"Proto ta Pznaky Typ Stav I-Uzel"
-+"Proto Čítač Příznaky Typ Stav I-Uzel "
-
--#: ../netstat.c:1147
-+#: ../netstat.c:1245
-+#, c-format
- msgid " Path\n"
- msgstr " Cesta\n"
-
--#: ../netstat.c:1167
-+#: ../netstat.c:1265
- msgid "SABM SENT"
--msgstr "SABM ODESLN"
-+msgstr "SABM ODESLÁN"
-
--#: ../netstat.c:1170
-+#: ../netstat.c:1268
- msgid "RECOVERY"
- msgstr "OBNOVA"
-
--#: ../netstat.c:1184
-+#: ../netstat.c:1282
-+#, c-format
- msgid "Active AX.25 sockets\n"
--msgstr "Aktivn AX.25 sokety\n"
-+msgstr "Aktivní AX.25 sokety\n"
-
--#: ../netstat.c:1185
-+#: ../netstat.c:1283
-+#, c-format
- msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n"
--msgstr "Cl Zdroj Zaz Stav Vr/Vs Odhod-F Pch-F\n"
-+msgstr "Cíl Zdroj Zaříz Stav Vr/Vs Odhod-F Přích-F\n"
-
--#: ../netstat.c:1228
-+#: ../netstat.c:1326
- #, c-format
- msgid "problem reading data from %s\n"
--msgstr "chyba pi ten dat z %s\n"
-+msgstr "chyba při čtení dat z %s\n"
-
--#: ../netstat.c:1279
-+#: ../netstat.c:1396
-+#, c-format
- msgid ""
- "Active IPX sockets\n"
- "Proto Recv-Q Send-Q Local Address Foreign Address "
- "State"
- msgstr ""
--"Aktivn IPX sokety\n"
--"Proto Pch-F Odch-F Lokl adresa Vzdlen adresa "
--" Stav"
-+"Aktivní IPX sokety\n"
-+"Proto Přích-F Odch-F Lokál adresa Vzdálená "
-+"adresa Stav"
-
--#: ../netstat.c:1281
-+#: ../netstat.c:1398
-+#, c-format
- msgid " User"
--msgstr " Uivatel"
-+msgstr " Uživatel"
-
--#: ../netstat.c:1315
-+#: ../netstat.c:1432
- msgid "ESTAB"
- msgstr "SPOJEN"
-
--#: ../netstat.c:1323
-+#: ../netstat.c:1440
- msgid "UNK."
- msgstr "NEZ."
-
--#: ../netstat.c:1367
--msgid " - no statistics available -"
--msgstr " - statistick data nejsou dostupn -"
--
--#: ../netstat.c:1370
--msgid "[NO FLAGS]"
--msgstr "[DN PZNAKY]"
--
--#: ../netstat.c:1400
-+#: ../netstat.c:1478
-+#, c-format
- msgid "Kernel Interface table\n"
--msgstr "Tabulka rozhran v jdru\n"
-+msgstr "Tabulka rozhraní v jádru\n"
-
--#: ../netstat.c:1401
--msgid ""
--"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
--"Flg\n"
--msgstr ""
--"Rozhr MTU Met P-OK P-CHYB P-ZAH P-PT OD-OK OD-CHYB OD-ZAH OD-PT "
--"PZ\n"
--
--#: ../netstat.c:1404
-+#: ../netstat.c:1486
- msgid "missing interface information"
--msgstr "chyb informace o rozhran"
-+msgstr "chybí informace o rozhraní"
-
--#: ../netstat.c:1425
-+#: ../netstat.c:1509
-+#, c-format
- msgid ""
--"usage: netstat [-veenNcCF] [<Af>] -r netstat "
--"{-V|--version|-h|--help}\n"
-+"usage: netstat [-vWeenNcCF] [<Af>] -r netstat {-V|--version|-h|--"
-+"help}\n"
- msgstr ""
--"Pouit: netstat [--veenNcCF] [<TA>] -r netstat "
--"{-V|--version|-h|--help}\n"
-+"Použití: netstat [-vWeenNcCF] [<AF>] -r netstat {-V|--version|-h|--"
-+"help}\n"
-
--#: ../netstat.c:1426
--msgid " netstat [-vnNcaeol] [<Socket> ...]\n"
--msgstr " netstat [-vnNcaeol] [<Soket> ...]\n"
-+#: ../netstat.c:1510
-+#, c-format
-+msgid " netstat [-vWnNcaeol] [<Socket> ...]\n"
-+msgstr " netstat [-vWnNcaeol] [<Socket>…]\n"
-
--#: ../netstat.c:1427
-+#: ../netstat.c:1511
-+#, c-format
- msgid ""
--" netstat { [-veenNac] -i | [-cnNe] -M | -s }\n"
-+" netstat { [-vWeenNac] -i | [-cnNe] -M | -s [-6tuw] }\n"
- "\n"
- msgstr ""
--" netstat { [-veenNac] -i | [-cnNe] -M | -s }\n"
-+" netstat { [-vWeenNac] -i | [-cnNe] -M | -s [-6tuw] }\n"
- "\n"
-
--#: ../netstat.c:1429
-+#: ../netstat.c:1513
-+#, c-format
- msgid " -r, --route display routing table\n"
--msgstr " -r, --route vype smrovac tabulku\n"
-+msgstr " -r, --route vypíše směrovací tabulku\n"
-
--#: ../netstat.c:1430
-+#: ../netstat.c:1514
-+#, c-format
- msgid " -i, --interfaces display interface table\n"
--msgstr " -i, --interfaces vype tabulku rozhran\n"
-+msgstr " -i, --interfaces vypíše tabulku rozhraní\n"
-
--#: ../netstat.c:1431
-+#: ../netstat.c:1515
-+#, c-format
- msgid " -g, --groups display multicast group memberships\n"
- msgstr ""
--" -g, --groups vype lenstv v multicast skupinch\n"
-+" -g, --groups vypíše členství v multicast skupinách\n"
-
--#: ../netstat.c:1432
-+#: ../netstat.c:1516
-+#, c-format
- msgid ""
- " -s, --statistics display networking statistics (like SNMP)\n"
- msgstr ""
--" -s, --statistics vype statistiku sov aktivity (jako "
-+" -s, --statistics vypíše statistiku síťové aktivity (jako "
- "SNMP)\n"
-
--#: ../netstat.c:1434
-+#: ../netstat.c:1518
-+#, c-format
- msgid ""
- " -M, --masquerade display masqueraded connections\n"
- "\n"
- msgstr ""
--" -M, --masquerade vype maskovan spojen\n"
-+" -M, --masquerade vypíše maskovaná spojení\n"
- "\n"
-
--#: ../netstat.c:1438 ../route.c:87
-+#: ../netstat.c:1521
-+#, c-format
-+msgid " -W, --wide don't truncate IP addresses\n"
-+msgstr " -W, --wide nezkracuje IP adresy\n"
-+
-+#: ../netstat.c:1523
-+#, c-format
-+msgid " --numeric-hosts don't resolve host names\n"
-+msgstr " --numeric-hosts nepřekládá názvy strojů\n"
-+
-+#: ../netstat.c:1524
-+#, c-format
-+msgid " --numeric-ports don't resolve port names\n"
-+msgstr " --numeric-ports nepřekládá názvy portů\n"
-+
-+#: ../netstat.c:1525
-+#, c-format
-+msgid " --numeric-users don't resolve user names\n"
-+msgstr " --numeric-users nepřekládá uživatelské jména\n"
-+
-+#: ../netstat.c:1526
-+#, c-format
- msgid " -N, --symbolic resolve hardware names\n"
--msgstr " -N, --symbolic pevede hw jmna\n"
-+msgstr " -N, --symbolic převede hw jména\n"
-
--#: ../netstat.c:1439 ../route.c:88
-+#: ../netstat.c:1527 ../route.c:88
-+#, c-format
- msgid " -e, --extend display other/more information\n"
--msgstr " -e, --extend vype podrobnj informace\n"
-+msgstr " -e, --extend vypíše podrobnější informace\n"
-
--#: ../netstat.c:1440
-+#: ../netstat.c:1528
-+#, c-format
- msgid " -p, --programs display PID/Program name for sockets\n"
- msgstr ""
--" -p, --programs vype PID/jmno programu pro sokety\n"
-+" -p, --programs vypíše PID/jméno programu pro sokety\n"
-
--#: ../netstat.c:1441
-+#: ../netstat.c:1529
-+#, c-format
- msgid ""
- " -c, --continuous continuous listing\n"
- "\n"
- msgstr ""
--" -c, --continuous neperuovan vpis\n"
-+" -c, --continuous nepřerušovaný výpis\n"
- "\n"
-
--#: ../netstat.c:1442
-+#: ../netstat.c:1530
-+#, c-format
- msgid " -l, --listening display listening server sockets\n"
- msgstr ""
--" -l, --listening vype sokety, na nich je naslouchno\n"
-+" -l, --listening vypíše sokety, na nichž je nasloucháno\n"
-
--#: ../netstat.c:1443
-+#: ../netstat.c:1531
-+#, c-format
- msgid ""
- " -a, --all, --listening display all sockets (default: connected)\n"
- msgstr ""
--" -a, --all, --listening vype vechny sokety (implicitn: "
--"spojen)\n"
-+" -a, --all, --listening vypíše všechny sokety (implicitně: "
-+"spojené)\n"
-
--#: ../netstat.c:1444
-+#: ../netstat.c:1532
-+#, c-format
- msgid " -o, --timers display timers\n"
--msgstr " -o, --timers zobraz asovae\n"
-+msgstr " -o, --timers zobrazí časovače\n"
-
--#: ../netstat.c:1445 ../route.c:89
-+#: ../netstat.c:1533 ../route.c:89
-+#, c-format
- msgid ""
- " -F, --fib display Forwarding Information Base "
- "(default)\n"
- msgstr ""
--" -F, --fib zobraz Forwarding Infomation Base\n"
--" (implicitn)\n"
-+" -F, --fib zobrazí Forwarding Information Base\n"
-+" (implicitní)\n"
-
--#: ../netstat.c:1446 ../route.c:90
-+#: ../netstat.c:1534 ../route.c:90
-+#, c-format
- msgid ""
- " -C, --cache display routing cache instead of FIB\n"
- "\n"
--msgstr " -C, --cache msto FIB zobraz smrovac cache\n"
-+msgstr " -C, --cache místo FIB zobrazí směrovací cache\n"
-
--#: ../netstat.c:1448
-+#: ../netstat.c:1536
-+#, c-format
- msgid ""
--" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx "
--"--netrom\n"
-+" <Socket>={-t|--tcp} {-u|--udp} {-U|--udplite} {-w|--raw} {-x|--unix} --"
-+"ax25 --ipx --netrom\n"
- msgstr ""
--" <Soket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx "
--"--netrom\n"
-+" <Socket>={-t|--tcp} {-u|--udp} {-U|--udplite} {-w|--raw} {-x|--unix} --"
-+"ax25 --ipx --netrom\n"
-
--#: ../netstat.c:1449 ../route.c:92
-+#: ../netstat.c:1537
- #, c-format
--msgid " <AF>=Use '-A <af>' or '--<af>' Default: %s\n"
--msgstr " <AF>=Pouijte '-A <af>' or '--<af>' Implicitn: %s\n"
-+msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n"
-+msgstr " <AF>=Použijte „-6|-4“ nebo „-A <af>“ nebo „--<af>“. Implicitní: %s\n"
-
--#: ../netstat.c:1450 ../route.c:93
-+#: ../netstat.c:1538 ../route.c:93
-+#, c-format
- msgid " List of possible address families (which support routing):\n"
--msgstr " Seznam monch td adres (podporujcch smrovn):\n"
-+msgstr " Seznam možných tříd adres (podporujících směrování):\n"
-+
-+#: ../netstat.c:1756
-+#, c-format
-+msgid "netstat: No statistics support for specified address family: %s\n"
-+msgstr "netstat: Pro zadanou rodinu adres není podporována statistika: %s\n"
-
--#: ../netstat.c:1663
-+#: ../netstat.c:1798
-+#, c-format
- msgid "Active Internet connections "
--msgstr "Aktivn Internetov spojen "
-+msgstr "Aktivní Internetová spojení "
-
--#: ../netstat.c:1673
-+#: ../netstat.c:1808
-+#, c-format
- msgid ""
- "\n"
--"Proto Recv-Q Send-Q Local Address Foreign Address State "
--" "
-+"Proto Recv-Q Send-Q Local Address Foreign Address "
-+"State "
- msgstr ""
- "\n"
--"Proto Pch-F Odch-F Mstn Adresa Vzdlen Adresa Stav "
-+"Proto Přích-F Odch-F Místní Adresa Vzdálená Adresa Stav "
-
--#: ../netstat.c:1675
-+#: ../netstat.c:1810
-+#, c-format
- msgid " User Inode "
--msgstr " Uivatel I-uzel "
-+msgstr " Uživatel I-uzel "
-
--#: ../netstat.c:1678
-+#: ../netstat.c:1813
-+#, c-format
- msgid " Timer"
--msgstr " asova"
-+msgstr " Časovač"
-
--#: ../netstat.c:1708
-+#: ../netstat.c:1851
-+#, c-format
- msgid "IPv4 Group Memberships\n"
--msgstr "lenstv v IPv4 skupinch\n"
-+msgstr "Členství v IPv4 skupinách\n"
-
--#: ../netstat.c:1709
-+#: ../netstat.c:1852
-+#, c-format
- msgid "Interface RefCnt Group\n"
--msgstr "Rozhran ta Skupina\n"
-+msgstr "Rozhraní Čítač Skupina\n"
-
--#: ../rarp.c:43
-+#: ../rarp.c:45
- msgid "This kernel does not support RARP.\n"
--msgstr "Toto jdro nepodporuje RARP.\n"
-+msgstr "Toto jádro nepodporuje RARP.\n"
-
--#: ../rarp.c:82
-+#: ../rarp.c:84
- #, c-format
- msgid "no RARP entry for %s.\n"
--msgstr "pro %s neexistuje RARP poloka.\n"
-+msgstr "pro %s neexistuje RARP položka.\n"
-
--#: ../rarp.c:95
-+#: ../rarp.c:97
- #, c-format
- msgid "%s: bad hardware address\n"
--msgstr "hardwarov adresa %s je nesprvn\n"
-+msgstr "hardwarová adresa %s je nesprávná\n"
-
--#: ../rarp.c:127
-+#: ../rarp.c:129
- #, c-format
- msgid "rarp: cannot open file %s:%s.\n"
--msgstr "rarp: soubor %s:%s nelze otevt.\n"
-+msgstr "rarp: soubor %s:%s nelze otevřít.\n"
-
--#: ../rarp.c:139
-+#: ../rarp.c:141
- #, c-format
- msgid "rarp: format error at %s:%u\n"
--msgstr "rarp: syntaktick chyba na dku %2$u souboru %1$s\n"
-+msgstr "rarp: syntaktická chyba na řádku %2$u souboru %1$s\n"
-
--#: ../rarp.c:143 ../rarp.c:287
-+#: ../rarp.c:145 ../rarp.c:290
- #, c-format
- msgid "rarp: %s: unknown host\n"
--msgstr "rarp: pota %s nen znm\n"
-+msgstr "rarp: počítač %s není znám\n"
-
--#: ../rarp.c:146
-+#: ../rarp.c:148
- #, c-format
- msgid "rarp: cannot set entry from %s:%u\n"
--msgstr "rarp: nelze nastavit poloku z dku %2$u souboru %1$s\n"
-+msgstr "rarp: nelze nastavit položku z řádku %2$u souboru %1$s\n"
-
--#: ../rarp.c:175
-+#: ../rarp.c:177
-+#, c-format
- msgid "Usage: rarp -a list entries in cache.\n"
--msgstr "Pouit: rarp -a vype poloky z cache.\n"
-+msgstr "Použití: rarp -a vypíše položky z cache.\n"
-
--#: ../rarp.c:176
-+#: ../rarp.c:178
-+#, c-format
- msgid " rarp -d <hostname> delete entry from cache.\n"
--msgstr " rarp -d <jmno> smae poloku z cache.\n"
-+msgstr " rarp -d <jméno> smaže položku z cache.\n"
-
--#: ../rarp.c:177
-+#: ../rarp.c:179
-+#, c-format
- msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n"
- msgstr ""
--" rarp [<HW>] -s <jmno> <hwadr> pid poloku do cache.\n"
-+" rarp [<HW>] -s <jméno> <hwadr> přidá položku do cache.\n"
-
--#: ../rarp.c:178
-+#: ../rarp.c:180
-+#, c-format
- msgid ""
- " rarp -f add entries from /etc/ethers.\n"
- msgstr ""
--" rarp -f pid poloky z /etc/ethers.\n"
-+" rarp -f přidá položky z /etc/ethers.\n"
-
--#: ../rarp.c:179
-+#: ../rarp.c:181
-+#, c-format
- msgid ""
- " rarp -V display program version.\n"
- "\n"
- msgstr ""
--" rarp -V vype oznaen verze "
-+" rarp -V vypíše označení verze "
- "programu.\n"
- "\n"
-
--#: ../rarp.c:236
-+#: ../rarp.c:239
- #, c-format
- msgid "%s: illegal option mix.\n"
--msgstr "Kombinace pepna %s je nesprvn.\n"
-+msgstr "Kombinace přepínačů %s je nesprávná.\n"
-
--#: ../rarp.c:267
-+#: ../rarp.c:270
- #, c-format
- msgid "rarp: %s: unknown hardware type.\n"
--msgstr "rarp: hardwarov typ %s nen znm.\n"
-+msgstr "rarp: hardwarový typ %s není znám.\n"
-
--#: ../route.c:79
-+#: ../route.c:80
-+#, c-format
- msgid ""
- "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n"
- msgstr ""
--"Pouit: route [-nNvee] [-FC] [<AF>] Zobraz smrovac tabulky v "
--"jdru\n"
-+"Použití: route [-nNvee] [-FC] [<AF>] Zobrazí směrovací tabulky v "
-+"jádru\n"
-
--#: ../route.c:80
-+#: ../route.c:81
-+#, c-format
- msgid ""
- " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n"
- "\n"
- msgstr ""
--" route [-v] [-FC] {add|del|flush} ... Zmn smrovac tabulku pro "
-+" route [-v] [-FC] {add|del|flush} ... Změní směrovací tabulku pro "
- "AF.\n"
- "\n"
-
--#: ../route.c:82
-+#: ../route.c:83
-+#, c-format
- msgid ""
- " route {-h|--help} [<AF>] Detailed usage syntax for "
- "specified AF.\n"
- msgstr ""
--" route {-h|--help [<AF>] Npovda pro pouit s AF.\n"
-+" route {-h|--help [<AF>] Nápověda pro použití s AF.\n"
-
--#: ../route.c:83
-+#: ../route.c:84
-+#, c-format
- msgid ""
- " route {-V|--version} Display version/author and "
- "exit.\n"
- "\n"
- msgstr ""
--" route {-V|--version} Vype oznaen verze a autora\n"
-+" route {-V|--version} Vypíše označení verze a autora\n"
- " programu.\n"
-
-+#: ../route.c:92
-+#, c-format
-+msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n"
-+msgstr " <AF>=Použijte „-A <af>“ nebo „--<af>“. Implicitní: %s\n"
-+
- #: ../plipconfig.c:66
-+#, c-format
- msgid "Usage: plipconfig [-a] [-i] [-v] interface\n"
--msgstr "Pouit: plipconfig [-a] [-i] [-v] rozhran\n"
-+msgstr "Použití: plipconfig [-a] [-i] [-v] rozhraní\n"
-
- #: ../plipconfig.c:67
-+#, c-format
- msgid " [nibble NN] [trigger NN]\n"
- msgstr " [nibble NN] [trigger NN]\n"
-
- #: ../plipconfig.c:68
-+#, c-format
- msgid " plipconfig -V | --version\n"
- msgstr " plipconfig -V | --version\n"
-
-@@ -1338,25 +1371,30 @@ msgstr " plipconfig -V | --version\n"
- msgid "%s\tnibble %lu trigger %lu\n"
- msgstr "%s\tnibble %lu trigger %lu\n"
-
--#: ../iptunnel.c:79
-+#: ../iptunnel.c:85
-+#, c-format
- msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n"
--msgstr "Pouit: iptunnel { add | change | del | show } [ JMNO ]\n"
-+msgstr "Použití: iptunnel { add | change | del | show } [ JMÉNO ]\n"
-
--#: ../iptunnel.c:80
-+#: ../iptunnel.c:86
-+#, c-format
- msgid ""
- " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n"
- msgstr ""
--" [ mode { ipip | gre | sit } ] [ vzdlen ADR ] [ mstn ADR ]\n"
-+" [ mode { ipip | gre | sit } ] [ vzdálená ADR ] [ místní ADR ]\n"
-
--#: ../iptunnel.c:81
-+#: ../iptunnel.c:87
-+#, c-format
- msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n"
--msgstr " [ [i|o]seq ] [ [i|o]key KL ] [ [i|o]csum ]\n"
-+msgstr " [ [i|o]seq ] [ [i|o]key KLÍČ ] [ [i|o]csum ]\n"
-
--#: ../iptunnel.c:82
-+#: ../iptunnel.c:88
-+#, c-format
- msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n"
--msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev ZAZEN ]\n"
-+msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev ZAŘÍZENÍ ]\n"
-
--#: ../iptunnel.c:83
-+#: ../iptunnel.c:89
-+#, c-format
- msgid ""
- " iptunnel -V | --version\n"
- "\n"
-@@ -1364,1068 +1402,1781 @@ msgstr ""
- " iptunnel -V | --version\n"
- "\n"
-
--#: ../iptunnel.c:84
-+#: ../iptunnel.c:90
-+#, c-format
- msgid "Where: NAME := STRING\n"
--msgstr "Kde: JMNO := ETZEC\n"
-+msgstr "Kde: JMÉNO := ŘETĚZEC\n"
-
--#: ../iptunnel.c:85
-+#: ../iptunnel.c:91
-+#, c-format
- msgid " ADDR := { IP_ADDRESS | any }\n"
- msgstr " ADR := { IP-ADRESA | any }\n"
-
--#: ../iptunnel.c:86
-+#: ../iptunnel.c:92
-+#, c-format
- msgid " TOS := { NUMBER | inherit }\n"
--msgstr " TOS := { SLO | inherit }\n"
-+msgstr " TOS := { ČÍSLO | inherit }\n"
-
--#: ../iptunnel.c:87
-+#: ../iptunnel.c:93
-+#, c-format
- msgid " TTL := { 1..255 | inherit }\n"
- msgstr " TTL := { 1..255 | inherit }\n"
-
--#: ../iptunnel.c:88
-+#: ../iptunnel.c:94
-+#, c-format
- msgid " KEY := { DOTTED_QUAD | NUMBER }\n"
--msgstr " KL := { DOTTED_QUAD | SLO }\n"
-+msgstr " KLÍČ := { DOTTED_QUAD | ČÍSLO }\n"
-
--#: ../iptunnel.c:326
-+#: ../iptunnel.c:332
-+#, c-format
- msgid "Keys are not allowed with ipip and sit.\n"
--msgstr "S ipip a sit nejsou kle povoleny.\n"
-+msgstr "S ipip a sit nejsou klíče povoleny.\n"
-
--#: ../iptunnel.c:346
-+#: ../iptunnel.c:352
-+#, c-format
- msgid "Broadcast tunnel requires a source address.\n"
--msgstr "Tunel se vesmrovm vyslnm vyaduje zdrojovou adresu.\n"
-+msgstr "Tunel se všesměrovým vysíláním vyžaduje zdrojovou adresu.\n"
-
--#: ../iptunnel.c:361
-+#: ../iptunnel.c:367
-+#, c-format
- msgid "ttl != 0 and noptmudisc are incompatible\n"
--msgstr "ttl != 0 a noptmudisc se navzjem vyluuj\n"
-+msgstr "ttl != 0 a noptmudisc se navzájem vylučují\n"
-
--#: ../iptunnel.c:373
-+#: ../iptunnel.c:379
-+#, c-format
- msgid "cannot determine tunnel mode (ipip, gre or sit)\n"
--msgstr "reim tunelu (ipip, gre i sit) nelze zjistit\n"
-+msgstr "režim tunelu (ipip, gre či sit) nelze zjistit\n"
-
--#: ../iptunnel.c:411
-+#: ../iptunnel.c:417
- #, c-format
- msgid "%s: %s/ip remote %s local %s "
--msgstr "%s: %s/ip vzdlen %s mstn %s "
-+msgstr "%s: %s/ip vzdálený %s místní %s "
-
--#: ../iptunnel.c:415
-+#: ../iptunnel.c:421
- msgid "unknown"
--msgstr "Neznm."
-+msgstr "Neznám."
-
--#: ../iptunnel.c:447
-+#: ../iptunnel.c:453
-+#, c-format
- msgid " Drop packets out of sequence.\n"
--msgstr " Zahazuje pakety mimo poad.\n"
-+msgstr " Zahazuje pakety mimo pořadí.\n"
-
--#: ../iptunnel.c:449
-+#: ../iptunnel.c:455
-+#, c-format
- msgid " Checksum in received packet is required.\n"
--msgstr " Pijman pakety mus mt kontroln souet.\n"
-+msgstr " Přijímané pakety musí mít kontrolní součet.\n"
-
- # ???
--#: ../iptunnel.c:451
-+#: ../iptunnel.c:457
-+#, c-format
- msgid " Sequence packets on output.\n"
--msgstr " ad odchoz pakety.\n"
-+msgstr " Řadí odchozí pakety.\n"
-
--#: ../iptunnel.c:453
-+#: ../iptunnel.c:459
-+#, c-format
- msgid " Checksum output packets.\n"
--msgstr " Odchoz pakety budou mt kontroln souet.\n"
-+msgstr " Odchozí pakety budou mít kontrolní součet.\n"
-
--#: ../iptunnel.c:481
-+#: ../iptunnel.c:487
-+#, c-format
- msgid "Wrong format of /proc/net/dev. Sorry.\n"
--msgstr "Lituji, formt /proc/net/dev je chybn.\n"
-+msgstr "Lituji, formát /proc/net/dev je chybný.\n"
-
--#: ../iptunnel.c:494
-+#: ../iptunnel.c:500
- #, c-format
- msgid "Failed to get type of [%s]\n"
--msgstr "Typ [%s] se nepodailo zjistit.\n"
-+msgstr "Typ [%s] se nepodařilo zjistit.\n"
-
--#: ../iptunnel.c:510
-+#: ../iptunnel.c:516
-+#, c-format
- msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n"
--msgstr "RX: Pakety Bajty Chyby CsumChyb MimoPo Mcasts\n"
-+msgstr "RX: Pakety Bajty Chyby CsumChyb MimoPoř Mcasts\n"
-
--#: ../iptunnel.c:513
-+#: ../iptunnel.c:519
-+#, c-format
- msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n"
- msgstr "TX: Pakety Bajty Chyby DeadLoop NoRoute NoBufs\n"
-
--#: ../statistics.c:45
-+#: ../statistics.c:48
- msgid "ICMP input histogram:"
--msgstr "histogram ICMP vstupu:"
-+msgstr "Histogram ICMP vstupu:"
-
--#: ../statistics.c:46
-+#: ../statistics.c:49
- msgid "ICMP output histogram:"
--msgstr "histogram ICMP vstupu:"
-+msgstr "Histogram ICMP výstupu:"
-+
-+#: ../statistics.c:66
-+#, c-format
-+msgid "Forwarding is %s"
-+msgstr "Předávání je %s"
-+
-+#: ../statistics.c:67
-+#, c-format
-+msgid "Default TTL is %u"
-+msgstr "Implicitní TTL je %u"
-+
-+#: ../statistics.c:68 ../statistics.c:89
-+#, c-format
-+msgid "%u total packets received"
-+msgstr "Celkem přijatých paketů: %u"
-+
-+#: ../statistics.c:69 ../statistics.c:90
-+#, c-format
-+msgid "%u with invalid headers"
-+msgstr "S nesprávnými hlavičkami: %u"
-+
-+#: ../statistics.c:70 ../statistics.c:93
-+#, c-format
-+msgid "%u with invalid addresses"
-+msgstr "S nesprávnými adresami: %u"
-+
-+#: ../statistics.c:71 ../statistics.c:98
-+#, c-format
-+msgid "%u forwarded"
-+msgstr "Přeposláno: %u"
-+
-+#: ../statistics.c:72 ../statistics.c:94
-+#, c-format
-+msgid "%u with unknown protocol"
-+msgstr "S neznámým protokolem: %u"
-+
-+#: ../statistics.c:73 ../statistics.c:96
-+#, c-format
-+msgid "%u incoming packets discarded"
-+msgstr "Počet zahozených příchozích paketů: %u"
-+
-+#: ../statistics.c:74 ../statistics.c:97
-+#, c-format
-+msgid "%u incoming packets delivered"
-+msgstr "Počet doručených příchozích paketů: %u"
-+
-+#: ../statistics.c:75 ../statistics.c:99
-+#, c-format
-+msgid "%u requests sent out"
-+msgstr "Počet požadavků na odeslání: %u"
-+
-+#. ?
-+#: ../statistics.c:76 ../statistics.c:100
-+#, c-format
-+msgid "%u outgoing packets dropped"
-+msgstr "Počet zahozených odchozích paketů: %u"
-+
-+#: ../statistics.c:77 ../statistics.c:101
-+#, c-format
-+msgid "%u dropped because of missing route"
-+msgstr "Zahozeno kvůli chybějící cestě: %u"
-+
-+#: ../statistics.c:78 ../statistics.c:102
-+#, c-format
-+msgid "%u fragments dropped after timeout"
-+msgstr "Počet fragmentů zahozených po vypršení času: %u"
-+
-+#: ../statistics.c:79 ../statistics.c:103
-+#, c-format
-+msgid "%u reassemblies required"
-+msgstr "Počet nutných znovusestavení: %u"
-+
-+#. ?
-+#: ../statistics.c:80 ../statistics.c:104
-+#, c-format
-+msgid "%u packets reassembled ok"
-+msgstr "Počet v pořádku znovu sestavených paketů: %u"
-+
-+#: ../statistics.c:81 ../statistics.c:105
-+#, c-format
-+msgid "%u packet reassembles failed"
-+msgstr "Počet paketů, jež se nepodařilo znovu sestavit: %u"
-+
-+#: ../statistics.c:82 ../statistics.c:106
-+#, c-format
-+msgid "%u fragments received ok"
-+msgstr "Počet v pořádku přijatých fragmentů: %u"
-+
-+#: ../statistics.c:83 ../statistics.c:107
-+#, c-format
-+msgid "%u fragments failed"
-+msgstr "Počet chybných fragmentů: %u"
-+
-+#: ../statistics.c:84 ../statistics.c:108
-+#, c-format
-+msgid "%u fragments created"
-+msgstr "Počet vytvořených fragmentů: %u"
-+
-+#: ../statistics.c:91
-+#, c-format
-+msgid "%u with packets too big"
-+msgstr "Počet příliš velkých packetů: %u"
-+
-+#: ../statistics.c:92
-+#, c-format
-+msgid "%u incoming packets with no route"
-+msgstr "Počet příchozích paketů bez odpovídající cesty: %u"
-+
-+#: ../statistics.c:95
-+#, c-format
-+msgid "%u with truncated packets"
-+msgstr "Počet zkrácených packetů: %u"
-+
-+#: ../statistics.c:109
-+#, c-format
-+msgid "%u incoming multicast packets"
-+msgstr "Počet příchozích multicastových paketů: %u"
-+
-+#: ../statistics.c:110
-+#, c-format
-+msgid "%u outgoing multicast packets"
-+msgstr "Počet odchozích multicastových paketů: %u"
-+
-+#: ../statistics.c:115 ../statistics.c:145
-+#, c-format
-+msgid "%u ICMP messages received"
-+msgstr "Počet přijatých ICMP zpráv: %u"
-+
-+#: ../statistics.c:116 ../statistics.c:146
-+#, c-format
-+msgid "%u input ICMP message failed."
-+msgstr "Počet chybných příchozích ICMP zpráv: %u"
-+
-+#: ../statistics.c:117 ../statistics.c:130 ../statistics.c:147
-+#: ../statistics.c:162
-+#, c-format
-+msgid "destination unreachable: %u"
-+msgstr "Adresát nedostupný: %u"
-+
-+#: ../statistics.c:118
-+#, c-format
-+msgid "timeout in transit: %u"
-+msgstr "Vypršel čas při přenosu: %u"
-+
-+#: ../statistics.c:119 ../statistics.c:132
-+#, c-format
-+msgid "wrong parameters: %u"
-+msgstr "Chybné parametry: %u"
-+
-+#. ?
-+#: ../statistics.c:120
-+#, c-format
-+msgid "source quenches: %u"
-+msgstr "Zahlcení zdroje: %u"
-+
-+#: ../statistics.c:121 ../statistics.c:160 ../statistics.c:175
-+#, c-format
-+msgid "redirects: %u"
-+msgstr "Počet přesměrování: %u"
-+
-+#: ../statistics.c:122 ../statistics.c:151 ../statistics.c:166
-+#, c-format
-+msgid "echo requests: %u"
-+msgstr "Žádost o echo: %u"
-+
-+#: ../statistics.c:123 ../statistics.c:136 ../statistics.c:152
-+#: ../statistics.c:167
-+#, c-format
-+msgid "echo replies: %u"
-+msgstr "Odpověď na žádost o echo: %u"
-+
-+#: ../statistics.c:124
-+#, c-format
-+msgid "timestamp request: %u"
-+msgstr "Žádost o čas: %u"
-+
-+#: ../statistics.c:125
-+#, c-format
-+msgid "timestamp reply: %u"
-+msgstr "Odpověď na žádost o čas: %u"
-+
-+#: ../statistics.c:126
-+#, c-format
-+msgid "address mask request: %u"
-+msgstr "Žádost o masku podsítě: %u"
-+
-+#. ?
-+#: ../statistics.c:127 ../statistics.c:140
-+#, c-format
-+msgid "address mask replies: %u"
-+msgstr "Odpověď na žádost o masku podsítě: %u"
-+
-+#. ?
-+#: ../statistics.c:128 ../statistics.c:161
-+#, c-format
-+msgid "%u ICMP messages sent"
-+msgstr "Počet odeslaných ICMP zpráv: %u"
-+
-+#: ../statistics.c:129
-+#, c-format
-+msgid "%u ICMP messages failed"
-+msgstr "Počet chybných ICMP zpráv: %u"
-+
-+#: ../statistics.c:131
-+#, c-format
-+msgid "time exceeded: %u"
-+msgstr "Vypršení životnosti: %u"
-+
-+#. ?
-+#: ../statistics.c:133
-+#, c-format
-+msgid "source quench: %u"
-+msgstr "Zahlcení zdroje: %u"
-+
-+#: ../statistics.c:134
-+#, c-format
-+msgid "redirect: %u"
-+msgstr "Počet přesměrování: %u"
-+
-+#: ../statistics.c:135
-+#, c-format
-+msgid "echo request: %u"
-+msgstr "Žádost o echo: %u"
-+
-+#: ../statistics.c:137
-+#, c-format
-+msgid "timestamp requests: %u"
-+msgstr "žádost o čas: %u"
-+
-+#: ../statistics.c:138
-+#, c-format
-+msgid "timestamp replies: %u"
-+msgstr "Odpověď na žádost o čas: %u"
-+
-+#: ../statistics.c:139
-+#, c-format
-+msgid "address mask requests: %u"
-+msgstr "Žádost o masku podsítě: %u"
-+
-+#: ../statistics.c:148 ../statistics.c:163
-+#, c-format
-+msgid "packets too big: %u"
-+msgstr "Příliš velkých packetů: %u"
-+
-+#: ../statistics.c:149
-+#, c-format
-+msgid "received ICMPv6 time exceeded: %u"
-+msgstr "Přijato ICMPv6 vypršení životnosti: %u"
-+
-+#: ../statistics.c:150 ../statistics.c:165
-+#, c-format
-+msgid "parameter problem: %u"
-+msgstr "Problém s parametrem: %u"
-+
-+#: ../statistics.c:153 ../statistics.c:168
-+#, c-format
-+msgid "group member queries: %u"
-+msgstr "Dotazů na členství ve skupině: %u"
-+
-+#: ../statistics.c:154 ../statistics.c:169
-+#, c-format
-+msgid "group member responses: %u"
-+msgstr "Odpovědí na členství ve skupině: %u"
-+
-+#: ../statistics.c:155 ../statistics.c:170
-+#, c-format
-+msgid "group member reductions: %u"
-+msgstr "Počet snížení členů skupiny: %u"
-+
-+#: ../statistics.c:156 ../statistics.c:171
-+#, c-format
-+msgid "router solicits: %u"
-+msgstr "Počet výzev směrovači: %u"
-+
-+#: ../statistics.c:157 ../statistics.c:172
-+#, c-format
-+msgid "router advertisement: %u"
-+msgstr "Počet oznámení směrovače: %u"
-+
-+#: ../statistics.c:158
-+#, c-format
-+msgid "neighbour solicits: %u"
-+msgstr "Počet výzev sousedovi: %u"
-+
-+#: ../statistics.c:159
-+#, c-format
-+msgid "neighbour advertisement: %u"
-+msgstr "Počet oznámení souseda: %u"
-+
-+#: ../statistics.c:164
-+#, c-format
-+msgid "sent ICMPv6 time exceeded: %u"
-+msgstr "Počet odeslaných ICMPv6 vypršení životnosti: %u"
-+
-+#: ../statistics.c:173
-+#, c-format
-+msgid "neighbor solicits: %u"
-+msgstr "Počet výzev sousedovi: %u"
-+
-+#: ../statistics.c:174
-+#, c-format
-+msgid "neighbor advertisements: %u"
-+msgstr "Počet oznámení souseda: %u"
-+
-+#: ../statistics.c:180
-+#, c-format
-+msgid "RTO algorithm is %s"
-+msgstr "RTO algoritmus je %s"
-+
-+#: ../statistics.c:184
-+#, c-format
-+msgid "%u active connections openings"
-+msgstr "Počet aktivně navázaných spojení: %u"
-+
-+#: ../statistics.c:185
-+#, c-format
-+msgid "%u passive connection openings"
-+msgstr "Počet pasivně navázaných spojení: %u"
-+
-+#: ../statistics.c:186
-+#, c-format
-+msgid "%u failed connection attempts"
-+msgstr "Počet neúspěšných pokusů o spojení: %u"
-+
-+#: ../statistics.c:187
-+#, c-format
-+msgid "%u connection resets received"
-+msgstr "Počet přijatých resetů spojení: %u"
-+
-+#: ../statistics.c:188
-+#, c-format
-+msgid "%u connections established"
-+msgstr "Počet navázaných spojení: %u"
-+
-+#: ../statistics.c:189
-+#, c-format
-+msgid "%u segments received"
-+msgstr "Počet přijatých segmentů: %u"
-+
-+#: ../statistics.c:190
-+#, c-format
-+msgid "%u segments send out"
-+msgstr "Počet odeslaných segmentů: %u"
-+
-+#: ../statistics.c:191
-+#, c-format
-+msgid "%u segments retransmited"
-+msgstr "Počet přenesených segmentů: %u"
-+
-+#: ../statistics.c:192
-+#, c-format
-+msgid "%u bad segments received."
-+msgstr "Počet chybných příchozích segmentů: %u"
-+
-+#: ../statistics.c:193
-+#, c-format
-+msgid "%u resets sent"
-+msgstr "Počet odeslaných resetů: %u"
-+
-+#: ../statistics.c:198 ../statistics.c:206
-+#, c-format
-+msgid "%u packets received"
-+msgstr "Počet přijatých paketů: %u"
-+
-+#: ../statistics.c:199 ../statistics.c:207
-+#, c-format
-+msgid "%u packets to unknown port received."
-+msgstr "Počet paketů přijatých pro neznámý port: %u"
-+
-+#: ../statistics.c:200 ../statistics.c:208
-+#, c-format
-+msgid "%u packet receive errors"
-+msgstr "Počet chyb při příjmu paketů: %u"
-+
-+#: ../statistics.c:201 ../statistics.c:209
-+#, c-format
-+msgid "%u packets sent"
-+msgstr "Počet odeslaných paketů: %u"
-+
-+#: ../statistics.c:214
-+#, c-format
-+msgid "%u SYN cookies sent"
-+msgstr "Počet odeslaných SYN cookies: %u"
-
--#: ../statistics.c:63
-+#: ../statistics.c:215
- #, c-format
--msgid "Forwarding is %s"
--msgstr "Pedvn je %s"
-+msgid "%u SYN cookies received"
-+msgstr "Počet přijatých SYN cookies: %u"
-
--#: ../statistics.c:64
-+#: ../statistics.c:216
- #, c-format
--msgid "Default TTL is %d"
--msgstr "Implicitn TTL je %d"
-+msgid "%u invalid SYN cookies received"
-+msgstr "Počet chybných příchozích SYN cookies: %u"
-
--#: ../statistics.c:65
-+#: ../statistics.c:218
- #, c-format
--msgid "%d total packets received"
--msgstr "celkem pijmutch paket: %d"
-+msgid "%u resets received for embryonic SYN_RECV sockets"
-+msgstr "Počet resetů přijatých pro sokety v zárodečném stavu SYN_PŘÍCH: %u"
-
--#: ../statistics.c:66
-+#: ../statistics.c:220
- #, c-format
--msgid "%d with invalid headers"
--msgstr "s nesprvnmi hlavikami: %d"
-+msgid "%u packets pruned from receive queue because of socket buffer overrun"
-+msgstr ""
-+"Počet packetů odstraněných z přijímací fronty kvůli přetečení bufferu "
-+"socketu: %u"
-
--#: ../statistics.c:67
-+#. obsolete: 2.2.0 doesn't do that anymore
-+#: ../statistics.c:223
- #, c-format
--msgid "%d with invalid addresses"
--msgstr "s nesprvnmi adresami: %d"
-+msgid "%u packets pruned from receive queue"
-+msgstr "Počet packetů odstraněných z přijímací fronty: %u"
-
--#: ../statistics.c:68
-+#: ../statistics.c:224
- #, c-format
--msgid "%d forwarded"
--msgstr "pedno: %d"
-+msgid ""
-+"%u packets dropped from out-of-order queue because of socket buffer overrun"
-+msgstr ""
-+"Počet packetů zahozených z fronty mimo-pořadí kvůli přetečení bufferu "
-+"socketu: %u"
-
--#: ../statistics.c:69
-+#: ../statistics.c:226
- #, c-format
--msgid "%d with unknown protocol"
--msgstr "s neznmm protokolem: %d"
-+msgid "%u ICMP packets dropped because they were out-of-window"
-+msgstr "Počet ICMP packetů zahozených, protože byly mimo okno: %u"
-
--#: ../statistics.c:70
-+#: ../statistics.c:228
- #, c-format
--msgid "%d incoming packets discarded"
--msgstr "poet zahozench pchozch paket: %d"
-+msgid "%u ICMP packets dropped because socket was locked"
-+msgstr "Počet ICMP packetů zahozených kvůli zamčenému socketu: %u"
-
--#: ../statistics.c:71
-+#: ../statistics.c:230
- #, c-format
--msgid "%d incoming packets delivered"
--msgstr "poet doruench pchozch paket: %d"
-+msgid "%u TCP sockets finished time wait in fast timer"
-+msgstr ""
-+"Počet TCP socketů, které ukončily fázi time-wait uvnitř rychlého časovače: %u"
-
--#: ../statistics.c:72
-+#: ../statistics.c:231
- #, c-format
--msgid "%d requests sent out"
--msgstr "poet odeslanch poadavk: %d"
-+msgid "%u time wait sockets recycled by time stamp"
-+msgstr ""
-+"Počet socketů ve fázi time-wait, které byly znovu použity díky časovému "
-+"razítku: %u"
-
--#. ?
--#: ../statistics.c:73
-+#: ../statistics.c:232
- #, c-format
--msgid "%d outgoing packets dropped"
--msgstr "poet zahozench odchozch paket: %d"
-+msgid "%u TCP sockets finished time wait in slow timer"
-+msgstr ""
-+"Počet TCP socketů, které ukončily fázi time-wait uvnitř pomalého časovače: %u"
-
--#: ../statistics.c:74
-+#: ../statistics.c:233
- #, c-format
--msgid "%d dropped because of missing route"
--msgstr "zahozeno kvli chybjc cest: %d"
-+msgid "%u passive connections rejected because of time stamp"
-+msgstr "Počet odmítnutých pasivních spojení kvůli časovému razítku: %u"
-
--#: ../statistics.c:75
-+#: ../statistics.c:235
- #, c-format
--msgid "%d fragments dropped after timeout"
--msgstr "poet fragment zahozench po vypren asu: %d"
-+msgid "%u active connections rejected because of time stamp"
-+msgstr "Počet odmítnutých aktivních spojení kvůli časovému razítku: %u"
-
--#: ../statistics.c:76
-+#: ../statistics.c:237
- #, c-format
--msgid "%d reassemblies required"
--msgstr "poet nutnch znovusestaven: %d"
-+msgid "%u packets rejects in established connections because of timestamp"
-+msgstr ""
-+"Počet odmítnutých packetů uvnitř navázaného spojení kvůli časovému razítku: %"
-+"u"
-
--#. ?
--#: ../statistics.c:77
-+#: ../statistics.c:239
- #, c-format
--msgid "%d packets reassembled ok"
--msgstr "poet v podku znovu sestavench paket: %d"
-+msgid "%u delayed acks sent"
-+msgstr "Počet odeslaných zpožděných potvrzení: %u"
-
--#: ../statistics.c:78
-+#: ../statistics.c:240
- #, c-format
--msgid "%d packet reassembles failed"
--msgstr "poet paket, je se nepodailo znovu sestavit: %d"
-+msgid "%u delayed acks further delayed because of locked socket"
-+msgstr ""
-+"Počet zpožděných potvrzení dále pozdržených kvůli zamčenému socketu: %u"
-
--#: ../statistics.c:79
-+#: ../statistics.c:242
- #, c-format
--msgid "%d fragments received ok"
--msgstr "poet v podku pijmutch fragment: %d"
-+msgid "Quick ack mode was activated %u times"
-+msgstr "Počet aktivovaní rychlého potvrzovacího režimu: %u"
-
--#: ../statistics.c:80
-+#: ../statistics.c:243
- #, c-format
--msgid "%d fragments failed"
--msgstr "poet chybnch fragment: %d"
-+msgid "%u times the listen queue of a socket overflowed"
-+msgstr "Počet přetečení naslouchací fronty socketu: %u"
-
--#: ../statistics.c:81
-+#: ../statistics.c:245
- #, c-format
--msgid "%d fragments created"
--msgstr "poet vytvoench fragment: %d"
-+msgid "%u SYNs to LISTEN sockets dropped"
-+msgstr "Počet zahozených SYN packetů určených naslouchajícímu socketu: %u"
-
--#: ../statistics.c:86
-+#: ../statistics.c:246
- #, c-format
--msgid "%d ICMP messages received"
--msgstr "poet pijmutch ICMP zprv: %d"
-+msgid "%u packets directly queued to recvmsg prequeue."
-+msgstr "Počet packetů přímo zařazených do předfronty recvmsg: %u"
-
--#: ../statistics.c:87
-+#: ../statistics.c:248
- #, c-format
--msgid "%d input ICMP message failed."
--msgstr "poet chybnch pchozch ICMP zprv: %d"
-+msgid "%u bytes directly in process context from backlog"
-+msgstr "Počet bajtů předaných přímo z backlogu do kontextu procesu: %u"
-
--#: ../statistics.c:88 ../statistics.c:101
-+#: ../statistics.c:249
- #, c-format
--msgid "destination unreachable: %d"
--msgstr "adrest nedostupn: %d"
-+msgid "%u bytes directly received in process context from prequeue"
-+msgstr "Počet bajtů přímo přijatých do kontextu procesu z předfronty: %u"
-
--#: ../statistics.c:89
-+#: ../statistics.c:251
- #, c-format
--msgid "timeout in transit: %d"
--msgstr "vyprel as pi penosu: %d"
-+msgid "%u packets dropped from prequeue"
-+msgstr "Počet paketů odstraněných z předfronty: %u"
-
--#: ../statistics.c:90 ../statistics.c:103
-+#: ../statistics.c:252
- #, c-format
--msgid "wrong parameters: %d"
--msgstr "chybn parametry: %d"
-+msgid "%u packet headers predicted"
-+msgstr "Počet předpovězených hlaviček packetů: %u"
-
--#. ?
--#: ../statistics.c:91
-+#: ../statistics.c:253
- #, c-format
--msgid "source quenchs: %d"
--msgstr "zen toku dat: %d"
-+msgid "%u packets header predicted and directly queued to user"
-+msgstr "Počet hlaviček packetů předpovězených a přímo předaných uživateli: %u"
-
--#: ../statistics.c:92
-+#: ../statistics.c:255
- #, c-format
--msgid "redirects: %d"
--msgstr "zmna cesty: %d"
-+msgid "Ran %u times out of system memory during packet sending"
-+msgstr "Kolikrát systému došla paměť při odesílání packetu: %u"
-
--#: ../statistics.c:93
-+#: ../statistics.c:257
- #, c-format
--msgid "echo requests: %d"
--msgstr "dost o echo: %d"
-+msgid "%u acknowledgments not containing data payload received"
-+msgstr "Počet přijatých potvrzení neobsahující data: %u"
-
--#: ../statistics.c:94 ../statistics.c:107
-+#: ../statistics.c:258
- #, c-format
--msgid "echo replies: %d"
--msgstr "odpov na dost o echo: %d"
-+msgid "%u predicted acknowledgments"
-+msgstr "Počet předpovězených potvrzení: %u"
-
--#: ../statistics.c:95
-+#: ../statistics.c:259
- #, c-format
--msgid "timestamp request: %d"
--msgstr "dost o as: %d"
-+msgid "%u times recovered from packet loss due to fast retransmit"
-+msgstr "Počet zotavení ze ztráty packetu kvůli rychle opakovanému odeslání: %u"
-
--#: ../statistics.c:96
-+#: ../statistics.c:260
- #, c-format
--msgid "timestamp reply: %d"
--msgstr "odpov na dost o as: %d"
-+msgid "%u times recovered from packet loss by selective acknowledgements"
-+msgstr "Počet zotavení ze ztráty packetu pomocí vyběrových potvrzení: %u"
-
--#: ../statistics.c:97
-+#: ../statistics.c:261
- #, c-format
--msgid "address mask request: %d"
--msgstr "dost o masku podst: %d"
-+msgid "%u bad SACK blocks received"
-+msgstr "Počet přijatých chybných SACK bloků: %u"
-
--#. ?
--#: ../statistics.c:98
--msgid "address mask replies"
--msgstr "odpovdi na dost o masku podst"
-+#: ../statistics.c:262
-+#, c-format
-+msgid "Detected reordering %u times using FACK"
-+msgstr "Kolikrát byla nalezena změna pořadí pomocí FACK: %u"
-
--#. ?
--#: ../statistics.c:99
-+#: ../statistics.c:263
- #, c-format
--msgid "%d ICMP messages sent"
--msgstr "poet odeslanch ICMP zprv: %d"
-+msgid "Detected reordering %u times using SACK"
-+msgstr "Kolikrát byla nalezena změna pořadí pomocí SACK: %u"
-
--#: ../statistics.c:100
-+#: ../statistics.c:264
- #, c-format
--msgid "%d ICMP messages failed"
--msgstr "poet chybnch ICMP zprv: %d"
-+msgid "Detected reordering %u times using time stamp"
-+msgstr "Kolikrát byla nalezena změna pořadí pomocí časového razítka: %u"
-
--#: ../statistics.c:102
-+#: ../statistics.c:265
- #, c-format
--msgid "time exceeded: %d"
--msgstr "vypren ivotnosti: %d"
-+msgid "Detected reordering %u times using reno fast retransmit"
-+msgstr ""
-+"Kolikrát byla nalezena změna pořadí kvůli rychlému znovuodeslání Reno: %u"
-
--#. ?
--#: ../statistics.c:104
-+#: ../statistics.c:266
- #, c-format
--msgid "source quench: %d"
--msgstr "zen toku dat: %d"
-+msgid "%u congestion windows fully recovered without slow start"
-+msgstr "Počet plných zotavení ze zahlcení okna bez pomalého startu: %u"
-
--#: ../statistics.c:105
-+#: ../statistics.c:267
- #, c-format
--msgid "redirect: %d"
--msgstr "zmna cesty: %d"
-+msgid "%u congestion windows partially recovered using Hoe heuristic"
-+msgstr "Počet částečných zotavení ze zahlcení okna pomocí heuristiky Hoe: %u"
-
--#: ../statistics.c:106
-+#: ../statistics.c:268
- #, c-format
--msgid "echo request: %d"
--msgstr "dost o echo: %d"
-+msgid "%u congestion window recovered without slow start using DSACK"
-+msgstr "Počet zotavení ze zahlceného okna bez pomalého startu pomocí DSACK: %u"
-
--#: ../statistics.c:108
-+#: ../statistics.c:269
- #, c-format
--msgid "timestamp requests: %d"
--msgstr "dost o as: %d"
-+msgid "%u congestion windows recovered without slow start after partial ack"
-+msgstr ""
-+"Počet zotavení ze zahlcení okna bez pomalého startu po částečném potvrzení: %"
-+"u"
-
--#: ../statistics.c:109
-+#: ../statistics.c:270
- #, c-format
--msgid "timestamp replies: %d"
--msgstr "odpov na dost o as: %d"
-+msgid "%u retransmits lost"
-+msgstr "Počet ztracených opakovaných odeslání: %u"
-
--#: ../statistics.c:110
-+#: ../statistics.c:271
- #, c-format
--msgid "address mask requests: %d"
--msgstr "dost o masku podst: %d"
-+msgid "%u timeouts after reno fast retransmit"
-+msgstr "Počet vypršení času po rychlém opakovaném odeslání Reno: %u"
-
--#: ../statistics.c:111
-+#: ../statistics.c:272
- #, c-format
--msgid "address mask replies: %d"
--msgstr "odpov na dost o masku podst: %d"
-+msgid "%u timeouts after SACK recovery"
-+msgstr "Počet vypršení času po zotavení pomocí SACK: %u"
-
--#: ../statistics.c:116
-+#: ../statistics.c:273
- #, c-format
--msgid "RTO algorithm is %s"
--msgstr "RTO algoritmus je %s"
-+msgid "%u timeouts in loss state"
-+msgstr "Počet vypršení času ve stavu ztráty: %u"
-
--#: ../statistics.c:120
-+#: ../statistics.c:274
- #, c-format
--msgid "%d active connections openings"
--msgstr "poet aktivn navzanch spojen: %d"
-+msgid "%u fast retransmits"
-+msgstr "Počet rychlých opakování odeslání: %u"
-
--#: ../statistics.c:121
-+#: ../statistics.c:275
- #, c-format
--msgid "%d passive connection openings"
--msgstr "poet pasivn navzanch spojen: %d"
-+msgid "%u forward retransmits"
-+msgstr "Počet dopředných opakovaných odeslání: %u"
-
--#: ../statistics.c:122
-+#: ../statistics.c:276
- #, c-format
--msgid "%d failed connection attempts"
--msgstr "poet nespnch pokus o spojen: %d"
-+msgid "%u retransmits in slow start"
-+msgstr "Počet opakovaných odeslání v pomalém startu: %u"
-
--#: ../statistics.c:123
-+#: ../statistics.c:277
- #, c-format
--msgid "%d connection resets received"
--msgstr "poet pijmutch reset: %d"
-+msgid "%u other TCP timeouts"
-+msgstr "Počet jiných vypršení časovače TCP: %u"
-
--#: ../statistics.c:124
-+#: ../statistics.c:278
- #, c-format
--msgid "%d connections established"
--msgstr "poet navzanch spojen: %d"
-+msgid "%u reno fast retransmits failed"
-+msgstr "Počet selhání rychlých opakovaných odeslání Reno: %u"
-
--#: ../statistics.c:125
-+#: ../statistics.c:279
- #, c-format
--msgid "%d segments received"
--msgstr "poet pijmutch segment: %d"
-+msgid "%u SACK retransmits failed"
-+msgstr "Počet selhání opakovaných odeslání SACK: %u"
-
--#: ../statistics.c:126
-+#: ../statistics.c:280
- #, c-format
--msgid "%d segments send out"
--msgstr "poet odeslanch segment: %d"
-+msgid "%u times receiver scheduled too late for direct processing"
-+msgstr "Kolikrát byl přijímač naplánován příliš pozdě na přímé zpracovaní: %u"
-
--#: ../statistics.c:127
-+#: ../statistics.c:281
- #, c-format
--msgid "%d segments retransmited"
--msgstr "poet penesench segment: %d"
-+msgid "%u packets collapsed in receive queue due to low socket buffer"
-+msgstr ""
-+"Počet packetů sloučených v přijímací frontě kvůli malému bufferu socketu: %u"
-
--#: ../statistics.c:128
-+#: ../statistics.c:282
- #, c-format
--msgid "%d bad segments received."
--msgstr "poet chybnch pchozch segment: %d."
-+msgid "%u DSACKs sent for old packets"
-+msgstr "Počet packetů DSACK odeslaných kvůli starým packetům: %u"
-
--#: ../statistics.c:129
-+#: ../statistics.c:283
- #, c-format
--msgid "%d resets sent"
--msgstr "poet odeslanch reset: %d"
-+msgid "%u DSACKs sent for out of order packets"
-+msgstr "Počet packetů DSCACK odeslaných kvůli packetům mimo pořadí: %u"
-
--#: ../statistics.c:134
-+#: ../statistics.c:284
- #, c-format
--msgid "%d packets received"
--msgstr "poet pijmutch paket: %d"
-+msgid "%u DSACKs received"
-+msgstr "Počet přijatých paketů DSACK: %u"
-
--#: ../statistics.c:135
-+#: ../statistics.c:285
- #, c-format
--msgid "%d packets to unknown port received."
--msgstr "poet paket pijmutch pro neznm port: %d."
-+msgid "%u DSACKs for out of order packets received"
-+msgstr "Počet packetů DSACK přijatých kvůli packetům mimo pořadí: %u"
-
--#: ../statistics.c:136
-+#: ../statistics.c:286
- #, c-format
--msgid "%d packet receive errors"
--msgstr "poet chyb pi pjmu paket: %d"
-+msgid "%u connections reset due to unexpected SYN"
-+msgstr "Počet resetů spojení kvůli neočekávanému SYN: %u"
-
--#: ../statistics.c:137
-+#: ../statistics.c:287
- #, c-format
--msgid "%d packets sent"
--msgstr "poet odeslanch paket: %d"
-+msgid "%u connections reset due to unexpected data"
-+msgstr "Počet resetů spojení kvůli neočekávaným datům: %u"
-
--#: ../statistics.c:142
-+#: ../statistics.c:288
- #, c-format
--msgid "%d SYN cookies sent"
--msgstr "poet odeslanch SYN cookies: %d"
-+msgid "%u connections reset due to early user close"
-+msgstr "Počet resetů spojení kvůli časnému uzavření uživatelem: %u"
-
--#: ../statistics.c:143
-+#: ../statistics.c:289
- #, c-format
--msgid "%d SYN cookies received"
--msgstr "poet pijmutch SYN cookies: %d"
-+msgid "%u connections aborted due to memory pressure"
-+msgstr "Počet zrušených spojení kvůli paměťové tísni: %u"
-
--#: ../statistics.c:144
-+#: ../statistics.c:290
- #, c-format
--msgid "%d invalid SYN cookies received"
--msgstr "poet chybnch pchozch SYN cookies: %d"
-+msgid "%u connections aborted due to timeout"
-+msgstr "Počet zrušených spojení kvůli vypršení časovače: %u"
-
--#: ../statistics.c:146
-+#: ../statistics.c:291
- #, c-format
--msgid "%d resets received for embryonic SYN_RECV sockets"
--msgstr "poet reset pijmutch pro sokety ve stavu SYN_PCH: %d"
-+msgid "%u connections aborted after user close in linger timeout"
-+msgstr ""
-+"Počet zrušených spojení po té, co je uživatel uzavřel ve fázi dožití: %u"
-
--#: ../statistics.c:148
-+#: ../statistics.c:292
- #, c-format
--msgid "%d packets pruned from receive queue because of socket buffer overrun"
--msgstr "poet paket odstrannch z fronty kvli peteen bufferu soketu: %d"
-+msgid "%u times unabled to send RST due to no memory"
-+msgstr "Kolikrát nebylo možné odeslat RST kvůli nedostatku paměti: %u"
-
--#. obsolete: 2.2.0 doesn't do that anymore
--#: ../statistics.c:151
-+#: ../statistics.c:293
- #, c-format
--msgid "%d packets pruned from out-of-order queue"
--msgstr "poet paket odstrannch z fronty mimo-poad: %d"
-+msgid "TCP ran low on memory %u times"
-+msgstr "Kolikrát TCP zpomalilo kvůli paměti: %u"
-
--#: ../statistics.c:152
-+#: ../statistics.c:294
- #, c-format
--msgid ""
--"%d packets dropped from out-of-order queue because of socket buffer overrun"
--msgstr ""
--"poet paket zahozench z fronty mimo-poad kvli peteen bufferu soketu: "
--"%d"
-+msgid "%u TCP data loss events"
-+msgstr "Počet ztrát dat TCP: %u"
-
--#: ../statistics.c:154
-+#: ../statistics.c:295
- #, c-format
--msgid "%d ICMP packets dropped because they were out-of-window"
--msgstr "poet ICMP paket zahozench, protoe byly mimo-okno: %d"
-+msgid "%u congestion windows recovered without slow start by DSACK"
-+msgstr "Počet zotavení ze zahlcení okna bez pomalého startu pomocí DSACK: %u"
-
--#: ../statistics.c:156
-+#: ../statistics.c:297
- #, c-format
--msgid "%d ICMP packets dropped because socket was locked"
--msgstr "poet ICMP paket zahozench kvli zamenmu soketu: %d"
-+msgid "%u classic Reno fast retransmits failed"
-+msgstr "Počet selhání klasického rychlého opakovaného odeslání Reno: %u"
-
--#: ../statistics.c:222
-+#: ../statistics.c:373
- msgid "enabled"
- msgstr "zapnuto"
-
--#: ../statistics.c:222
-+#: ../statistics.c:373
- msgid "disabled"
- msgstr "vypnuto"
-
--#: ../statistics.c:272
-+#: ../statistics.c:511 ../statistics.c:555
-+msgid "cannot open /proc/net/snmp"
-+msgstr "/proc/net/snmp nelze otevřít"
-+
-+#: ../statistics.c:516
- #, c-format
--msgid "unknown title %s\n"
--msgstr "titulek %s je neznm\n"
-+msgid "Problem while parsing /proc/net/snmp\n"
-+msgstr "Potíže při při zpracování /proc/net/snmp\n"
-
--#: ../statistics.c:298
--msgid "error parsing /proc/net/snmp"
--msgstr "chyba pi zpracovn /proc/net/snmp"
-+#: ../statistics.c:527
-+#, c-format
-+msgid "Problem while parsing /proc/net/netstat\n"
-+msgstr "Potíže při při zpracování /proc/net/netstat\n"
-
--#: ../statistics.c:311
--msgid "cannot open /proc/net/snmp"
--msgstr "/proc/net/snmp nelze otevt"
-+#: ../statistics.c:545
-+msgid "cannot open /proc/net/snmp6"
-+msgstr "/proc/net/snmp6 nelze otevřít"
-
- #: ../lib/activate.c:69
- #, c-format
- msgid "Hardware type `%s' not supported.\n"
--msgstr "Hardwarov typ `%s' nen podporovn.\n"
-+msgstr "Hardwarový typ „%s“ není podporován.\n"
-
- #: ../lib/activate.c:73
- #, c-format
- msgid "Cannot change line discipline to `%s'.\n"
--msgstr "Linkovou disciplnu nelze na `%s' zmnit.\n"
-+msgstr "Linkovou disciplínu nelze na „%s“ změnit.\n"
-
--#: ../lib/af.c:145 ../lib/hw.c:148
-+#: ../lib/af.c:157 ../lib/hw.c:166
- msgid "UNSPEC"
--msgstr "NEZNM"
-+msgstr "NEZNÁM"
-
--#: ../lib/af.c:147
-+#: ../lib/af.c:159
- msgid "UNIX Domain"
--msgstr "Domna UNIX"
-+msgstr "Doména UNIX"
-
--#: ../lib/af.c:150
-+#: ../lib/af.c:162
- msgid "DARPA Internet"
- msgstr "DARPA Internet"
-
--#: ../lib/af.c:153
-+#: ../lib/af.c:165
- msgid "IPv6"
- msgstr "IPv6"
-
--#: ../lib/af.c:156 ../lib/hw.c:169
-+#: ../lib/af.c:168 ../lib/hw.c:187
- msgid "AMPR AX.25"
- msgstr "AMPR AX.25"
-
--#: ../lib/af.c:159 ../lib/hw.c:175
-+#: ../lib/af.c:171 ../lib/hw.c:193
- msgid "AMPR NET/ROM"
- msgstr "AMPR NET/ROM"
-
--#: ../lib/af.c:162
-+#: ../lib/af.c:174
- msgid "Novell IPX"
- msgstr "Novell IPX"
-
--#: ../lib/af.c:165
-+#: ../lib/af.c:177
- msgid "Appletalk DDP"
- msgstr "Appletalk DDP"
-
--#: ../lib/af.c:168 ../lib/hw.c:207
-+#: ../lib/af.c:180 ../lib/hw.c:228
- msgid "Econet"
- msgstr "Econet"
-
--#: ../lib/af.c:171 ../lib/hw.c:172
-+#: ../lib/af.c:183
-+msgid "CCITT X.25"
-+msgstr "CCITT X.25"
-+
-+#: ../lib/af.c:186 ../lib/hw.c:190
- msgid "AMPR ROSE"
- msgstr "AMPR ROSE"
-
--#: ../lib/af.c:174 ../lib/hw.c:160
-+#: ../lib/af.c:189 ../lib/hw.c:178
- msgid "Ash"
- msgstr "Ash"
-
--#: ../lib/af.c:232
-+#: ../lib/af.c:247
-+#, c-format
- msgid "Please don't supply more than one address family.\n"
--msgstr "Nezadvejte vce ne jednu tdu adres.\n"
-+msgstr "Nezadávejte více než jednu třídu adres.\n"
-
--#: ../lib/af.c:293
-+#: ../lib/af.c:308
-+#, c-format
- msgid "Too much address family arguments.\n"
--msgstr "Bylo zadno pli mnoho td adres.\n"
-+msgstr "Bylo zadáno příliš mnoho tříd adres.\n"
-
--#: ../lib/af.c:304
-+#: ../lib/af.c:319
- #, c-format
- msgid "Unknown address family `%s'.\n"
--msgstr "Tda adres `%s' nen znma.\n"
--
--#: ../lib/arcnet.c:53 ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52
--#: ../lib/fddi.c:67 ../lib/hippi.c:68 ../lib/inet.c:244 ../lib/inet.c:259
--#: ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78 ../lib/rose.c:71
--#: ../lib/rose.c:126 ../lib/unix.c:56 ../lib/unix.c:76
--msgid "[NONE SET]"
--msgstr "[NENASTAVENO]"
-+msgstr "Třída adres `%s' není známa.\n"
-
--#: ../lib/arcnet.c:81 ../lib/arcnet.c:96
-+#: ../lib/arcnet.c:70 ../lib/arcnet.c:85
- #, c-format
- msgid "in_arcnet(%s): invalid arcnet address!\n"
--msgstr "in_arcnet(%s): chybn arcnet adresa!\n"
-+msgstr "in_arcnet(%s): chybná arcnet adresa!\n"
-
--#: ../lib/arcnet.c:108
-+#: ../lib/arcnet.c:97
- #, c-format
- msgid "in_arcnet(%s): trailing : ignored!\n"
--msgstr "in_arcnet(%s): nadbyten : ignorovno!\n"
-+msgstr "in_arcnet(%s): nadbytečné : ignorováno!\n"
-
--#: ../lib/arcnet.c:120
-+#: ../lib/arcnet.c:109
- #, c-format
- msgid "in_arcnet(%s): trailing junk!\n"
--msgstr "in_arcnet(%s): nadbyten znaky!\n"
-+msgstr "in_arcnet(%s): nadbytečné znaky!\n"
-
- #: ../lib/ash.c:81
-+#, c-format
- msgid "Malformed Ash address"
--msgstr "Chybn Ash adresa"
-+msgstr "Chybná Ash adresa"
-+
-+#: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244
-+#: ../lib/inet.c:259 ../lib/inet6.c:145 ../lib/ipx.c:81 ../lib/netrom.c:78
-+#: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76
-+msgid "[NONE SET]"
-+msgstr "[NENASTAVENO]"
-
- #: ../lib/ax25.c:97 ../lib/netrom.c:100
- msgid "Invalid callsign"
--msgstr "Nesprvn volac znak"
-+msgstr "Nesprávný volací znak"
-
- #: ../lib/ax25.c:110 ../lib/netrom.c:113
- msgid "Callsign too long"
--msgstr "Volac znak je pli dlouh."
-+msgstr "Volací znak je příliš dlouhý."
-
- #: ../lib/ax25_gr.c:47
-+#, c-format
- msgid "AX.25 not configured in this system.\n"
--msgstr "AX.25 nen na tomto systmu nakonfigurovno.\n"
-+msgstr "AX.25 není na tomto systému nakonfigurováno.\n"
-
- #: ../lib/ax25_gr.c:50
-+#, c-format
- msgid "Kernel AX.25 routing table\n"
--msgstr "Smrovac tabulka v jdru pro AX.25\n"
-+msgstr "Směrovací tabulka v jádru pro AX.25\n"
-
- #. xxx
- #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55
-+#, c-format
- msgid "Destination Iface Use\n"
--msgstr "Adrest Rozhran Uit\n"
--
--#: ../lib/ddp_gr.c:21
--msgid "Routing table for `ddp' not yet supported.\n"
--msgstr "Smrovac tabulka pro `ddp' nen zatm podporovna.\n"
-+msgstr "Adresát Rozhraní Užití\n"
-
- #: ../lib/ether.c:74 ../lib/ether.c:91
- #, c-format
- msgid "in_ether(%s): invalid ether address!\n"
--msgstr "in_ether(%s): chybn ethernetov adresa!\n"
-+msgstr "in_ether(%s): chybná ethernetová adresa!\n"
-
- #: ../lib/ether.c:105
- #, c-format
- msgid "in_ether(%s): trailing : ignored!\n"
--msgstr "in_ether(%s): nadbyten : ignorovno!\n"
-+msgstr "in_ether(%s): nadbytečné : ignorováno!\n"
-
- #: ../lib/ether.c:117
- #, c-format
- msgid "in_ether(%s): trailing junk!\n"
--msgstr "in_ether(%s): nadbyten znaky!\n"
-+msgstr "in_ether(%s): nadbytečné znaky!\n"
-
--#: ../lib/fddi.c:95 ../lib/fddi.c:110
-+#: ../lib/fddi.c:84 ../lib/fddi.c:99
- #, c-format
- msgid "in_fddi(%s): invalid fddi address!\n"
--msgstr "in_fddi(%s): chybn fddi adresa!\n"
-+msgstr "in_fddi(%s): chybná fddi adresa!\n"
-
--#: ../lib/fddi.c:122
-+#: ../lib/fddi.c:111
- #, c-format
- msgid "in_fddi(%s): trailing : ignored!\n"
--msgstr "in_fddi(%s): nadbyten : ignorovno!\n"
-+msgstr "in_fddi(%s): nadbytečné : ignorováno!\n"
-
--#: ../lib/fddi.c:134
-+#: ../lib/fddi.c:123
- #, c-format
- msgid "in_fddi(%s): trailing junk!\n"
--msgstr "in_fddi(%s): nadbyten znaky!\n"
-+msgstr "in_fddi(%s): nadbytečné znaky!\n"
-
--#: ../lib/getroute.c:97 ../lib/setroute.c:76
-+#: ../lib/getroute.c:101 ../lib/setroute.c:80
- #, c-format
- msgid "Address family `%s' not supported.\n"
--msgstr "Tda adres `%s' nen podporovna.\n"
-+msgstr "Třída adres `%s' není podporována.\n"
-
--#: ../lib/getroute.c:103 ../lib/setroute.c:80
-+#: ../lib/getroute.c:107 ../lib/setroute.c:84
- #, c-format
- msgid "No routing for address family `%s'.\n"
--msgstr "Pro tdu adres `%s' nen dn smrovn.\n"
-+msgstr "Pro třídu adres `%s' není žádné směrování.\n"
-
--#: ../lib/hippi.c:96 ../lib/hippi.c:111
-+#: ../lib/hippi.c:84 ../lib/hippi.c:99
- #, c-format
- msgid "in_hippi(%s): invalid hippi address!\n"
--msgstr "in_hippi(%s): chybn hippi adresa!\n"
-+msgstr "in_hippi(%s): chybná hippi adresa!\n"
-
--#: ../lib/hippi.c:123
-+#: ../lib/hippi.c:111
- #, c-format
- msgid "in_hippi(%s): trailing : ignored!\n"
--msgstr "in_hippi(%s): nadbyten : ignorovno!\n"
-+msgstr "in_hippi(%s): nadbytečné : ignorováno!\n"
-
--#: ../lib/hippi.c:134
-+#: ../lib/hippi.c:122
- #, c-format
- msgid "in_hippi(%s): trailing junk!\n"
--msgstr "in_hippi(%s): nadbyten znaky!\n"
-+msgstr "in_hippi(%s): nadbytečné znaky!\n"
-
--#: ../lib/hw.c:147
-+#: ../lib/hw.c:165
- msgid "Local Loopback"
--msgstr "Mstn smyka"
-+msgstr "Místní smyčka"
-
--#: ../lib/hw.c:150
-+#: ../lib/hw.c:168
- msgid "Serial Line IP"
--msgstr "IP po sriov lince"
-+msgstr "IP po sériové lince"
-
--#: ../lib/hw.c:151
-+#: ../lib/hw.c:169
- msgid "VJ Serial Line IP"
--msgstr "Vj IP po sriov lince"
-+msgstr "VJ IP po sériové lince"
-
--#: ../lib/hw.c:152
-+#: ../lib/hw.c:170
- msgid "6-bit Serial Line IP"
--msgstr "6bitov IP po sriov lince"
-+msgstr "6bitový IP po sériové lince"
-
--#: ../lib/hw.c:153
-+#: ../lib/hw.c:171
- msgid "VJ 6-bit Serial Line IP"
--msgstr "6bitov VJ IP po sriov lince"
-+msgstr "6bitový VJ IP po sériové lince"
-
--#: ../lib/hw.c:154
-+#: ../lib/hw.c:172
- msgid "Adaptive Serial Line IP"
--msgstr "Adaptivn IP po sriov lince"
-+msgstr "Adaptivní IP po sériové lince"
-
--#: ../lib/hw.c:157
-+#: ../lib/hw.c:175
- msgid "Ethernet"
- msgstr "Ethernet"
-
--#: ../lib/hw.c:163
-+#: ../lib/hw.c:181
- msgid "Fiber Distributed Data Interface"
- msgstr "Fiber Distributed Data Interface"
-
--#: ../lib/hw.c:166
-+#: ../lib/hw.c:184
- msgid "HIPPI"
- msgstr "HIPPI"
-
--#: ../lib/hw.c:178
-+#: ../lib/hw.c:196
-+msgid "generic X.25"
-+msgstr "obecné X.25"
-+
-+#: ../lib/hw.c:199
- msgid "IPIP Tunnel"
- msgstr "IPIP Tunnel"
-
--#: ../lib/hw.c:181
-+#: ../lib/hw.c:202
- msgid "Point-to-Point Protocol"
--msgstr "Point-to-Point Protokol"
-+msgstr "Dvoubodový protokol"
-
--#: ../lib/hw.c:184
-+#: ../lib/hw.c:205
- msgid "(Cisco)-HDLC"
- msgstr "(Cisco)-HDLC"
-
--#: ../lib/hw.c:185
-+#: ../lib/hw.c:206
- msgid "LAPB"
- msgstr "LAPB"
-
--#: ../lib/hw.c:188
-+#: ../lib/hw.c:209
- msgid "ARCnet"
- msgstr "ARCnet"
-
--#: ../lib/hw.c:191
-+#: ../lib/hw.c:212
- msgid "Frame Relay DLCI"
- msgstr "Frame Relay DLCI"
-
--#: ../lib/hw.c:192
-+#: ../lib/hw.c:213
- msgid "Frame Relay Access Device"
--msgstr "Pstupov zazen Frame Relay"
-+msgstr "Přístupové zařízení Frame Relay"
-
--#: ../lib/hw.c:195
-+#: ../lib/hw.c:216
- msgid "IPv6-in-IPv4"
- msgstr "IPv6-in-IPv4"
-
--#: ../lib/hw.c:198
-+#: ../lib/hw.c:219
- msgid "IrLAP"
- msgstr "IrLAP"
-
--#: ../lib/hw.c:201
-+#: ../lib/hw.c:222
- msgid "16/4 Mbps Token Ring"
- msgstr "Token Ring 16/4 Mb/s"
-
--#: ../lib/hw.c:203
--#, fuzzy
-+#: ../lib/hw.c:224
- msgid "16/4 Mbps Token Ring (New)"
--msgstr "Token Ring 16/4 Mb/s"
-+msgstr "Token Ring 16/4 Mb/s (Nový)"
-
--#: ../lib/inet.c:153 ../lib/inet6.c:79
-+#: ../lib/hw.c:231
-+msgid "InfiniBand"
-+msgstr "InfiniBand"
-+
-+#: ../lib/hw.c:234
-+msgid "Generic EUI-64"
-+msgstr "Obecné EUI-64"
-+
-+#: ../lib/inet.c:153 ../lib/inet6.c:94
- #, c-format
- msgid "rresolve: unsupport address family %d !\n"
--msgstr "rresolve: tda adres %d nen podporovna!\n"
-+msgstr "rresolve: třída adres %d není podporována!\n"
-
--#: ../lib/inet6_gr.c:79
-+#: ../lib/inet6.c:147
-+msgid "[UNKNOWN]"
-+msgstr "[NEZNÁMÝ]"
-+
-+#: ../lib/inet6_gr.c:71
-+#, c-format
- msgid "INET6 (IPv6) not configured in this system.\n"
--msgstr "INET6 (IPv6) nen na tomto systmu nakonfigurovno.\n"
-+msgstr "INET6 (IPv6) není na tomto systému nakonfigurováno.\n"
-
--#: ../lib/inet6_gr.c:82
-+#: ../lib/inet6_gr.c:76
-+#, c-format
-+msgid "Kernel IPv6 routing cache\n"
-+msgstr "Směrovací cache v jádru pro IPv6\n"
-+
-+#: ../lib/inet6_gr.c:78
-+#, c-format
- msgid "Kernel IPv6 routing table\n"
--msgstr "Smrovac tabulka v jdru pro IPv6\n"
-+msgstr "Směrovací tabulka v jádru pro IPv6\n"
-
--#: ../lib/inet6_gr.c:84
-+#: ../lib/inet6_gr.c:80
-+#, c-format
- msgid ""
--"Destination Next Hop "
--" Flags Metric Ref Use Iface\n"
-+"Destination Next Hop Flag Met Ref Use "
-+"If\n"
- msgstr ""
--"Adrest Dal Smrova "
--" Pzn Metrika Odkaz Uit Rozhran\n"
-+"Adresát Další směrovač Příz Met Odk Užt "
-+"Rozhr\n"
-
--#: ../lib/inet6_gr.c:158
-+#: ../lib/inet6_gr.c:174
-+#, c-format
- msgid "Kernel IPv6 Neighbour Cache\n"
--msgstr "Cache soused v jdru pro IPv6\n"
-+msgstr "Cache sousedů v jádru pro IPv6\n"
-
--#: ../lib/inet6_gr.c:161
-+#: ../lib/inet6_gr.c:177
-+#, c-format
- msgid ""
- "Neighbour HW Address Iface Flags "
- "Ref State\n"
- msgstr ""
--"Soused HW Adresa Rozhran Pzn "
-+"Soused HW Adresa Rozhraní Přízn "
- "Odkazy Stav\n"
-
--#: ../lib/inet6_gr.c:165
-+#: ../lib/inet6_gr.c:181
-+#, c-format
- msgid ""
- "Neighbour HW Address Iface Flags "
- "Ref State Stale(sec) Delete(sec)\n"
- msgstr ""
--"Soused HW Adresa Rozhran "
--"Pznaky Odkazy Stav Prol(sec) Smazat(sec)\n"
-+"Soused HW Adresa Rozhraní "
-+"Příznaky Odkazy Stav Prošlý(sec) Smazat(sec)\n"
-
- #: ../lib/inet6_sr.c:46
-+#, c-format
- msgid "Usage: inet6_route [-vF] del Target\n"
--msgstr "Pouit: inet6_route [-vF] del Cl\n"
-+msgstr "Použití: inet6_route [-vF] del Cíl\n"
-
- #: ../lib/inet6_sr.c:47
-+#, c-format
- msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n"
--msgstr " inet6_route [-vF] add Cl [gw Gw] [metrika M] [[dev] If]\n"
-+msgstr " inet6_route [-vF] add Cíl [gw Gw] [metrika M] [[dev] If]\n"
-
- #: ../lib/inet6_sr.c:48
-+#, c-format
- msgid " inet6_route [-FC] flush NOT supported\n"
--msgstr " inet6_route [-FC] flush NEN podporovno\n"
-+msgstr " inet6_route [-FC] flush NENÍ podporováno\n"
-
--#: ../lib/inet6_sr.c:182
-+#: ../lib/inet6_sr.c:188
-+#, c-format
- msgid "Flushing `inet6' routing table not supported\n"
--msgstr "Smrovac tabulku `inet6' nelze vyprazdovat\n"
-+msgstr "Směrovací tabulku `inet6' nelze vyprazdňovat\n"
-
- #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220
-+#, c-format
- msgid "INET (IPv4) not configured in this system.\n"
--msgstr "INET (IPv4) nen na tomto systmu nakonfigurovno.\n"
-+msgstr "INET (IPv4) není na tomto systému nakonfigurováno.\n"
-
- #: ../lib/inet_gr.c:53
-+#, c-format
- msgid "Kernel IP routing table\n"
--msgstr "Smrovac tabulka v jdru pro IP\n"
-+msgstr "Směrovací tabulka v jádru pro IP\n"
-
- #: ../lib/inet_gr.c:56
-+#, c-format
- msgid ""
- "Destination Gateway Genmask Flags Metric Ref Use "
- "Iface\n"
- msgstr ""
--"Adrest Brna Maska Pzn Metrik Odkaz Ut "
--"Rozhran\n"
-+"Adresát Brána Maska Přízn Metrik Odkazů Užt "
-+"Rozhraní\n"
-
- #: ../lib/inet_gr.c:59
-+#, c-format
- msgid ""
- "Destination Gateway Genmask Flags MSS Window irtt "
- "Iface\n"
- msgstr ""
--"Adrest Brna Maska Pzn MSS Okno irtt "
--"Rozhran\n"
-+"Adresát Brána Maska Přízn MSS Okno irtt "
-+"Rozhraní\n"
-
- #: ../lib/inet_gr.c:62
-+#, c-format
- msgid ""
- "Destination Gateway Genmask Flags Metric Ref Use "
- "Iface MSS Window irtt\n"
- msgstr ""
--"Adrest Brna Maska Pzn Metrik Odkazy Ut "
--"Rozhran MSS Okno irtt\n"
-+"Adresát Brána Maska Přízn Metrik Odkazy Užt "
-+"Rozhraní MSS Okno irtt\n"
-
- #: ../lib/inet_gr.c:237
-+#, c-format
- msgid "Kernel IP routing cache\n"
--msgstr "Smrovac cache v jdru pro IP\n"
-+msgstr "Směrovací cache v jádru pro IP\n"
-
- #: ../lib/inet_gr.c:258
-+#, c-format
- msgid ""
- "Source Destination Gateway Flags Metric Ref Use "
- "Iface\n"
- msgstr ""
--"Odeslatel Adrest Maska Pzn Metrik Odkazy Ut "
--"Rozhran\n"
-+"Odesílatel Adresát Maska Přízn Metrik Odkazy Užt "
-+"Rozhraní\n"
-
- #: ../lib/inet_gr.c:261
-+#, c-format
- msgid ""
- "Source Destination Gateway Flags MSS Window irtt "
- "Iface\n"
- msgstr ""
--"Odeslatel Adrest Maska Pzn MSS Okno irtt "
--"Rozhran\n"
-+"Odesílatel Adresát Maska Přízn MSS Okno irtt "
-+"Rozhraní\n"
-
- #: ../lib/inet_gr.c:266
-+#, c-format
- msgid ""
- "Source Destination Gateway Flags Metric Ref Use "
- "Iface MSS Window irtt HH Arp\n"
- msgstr ""
--"Odeslatel Adrest Maska Pzn Metrik Odkazy Ut "
--"Rozhran MSS Okno irtt HH Arp\n"
-+"Odesílatel Adresát Maska Přízn Metrik Odkazy Užt "
-+"Rozhraní MSS Okno irtt HH Arp\n"
-
- #: ../lib/inet_gr.c:290
-+#, c-format
- msgid ""
- "Source Destination Gateway Flags Metric Ref Use "
- "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n"
- msgstr ""
--"Odeslatel Adrest Maska Pzn Metrik Odkazy Ut "
--"Rozhran MSS Okno irtt TOS HHOdk HHAktul ZvltCl\n"
-+"Odesílatel Adresát Maska Přízn Metrik Odkazy Užt "
-+"Rozhraní MSS Okno irtt TOS HHOdk HHAktuál ZvláštCíl\n"
-
--#: ../lib/inet_sr.c:50
-+#: ../lib/inet_sr.c:51
-+#, c-format
- msgid ""
- "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] "
- "[[dev] If]\n"
- msgstr ""
--"Pouit: inet_route [-vF] del {-host|-net} Cl[/prefix] [gw Gw] [metrika M] "
-+"Použití: inet_route [-vF] del {-host|-net} Cíl[/prefix] [gw Gw] [metrika M] "
- "[[dev] If]\n"
-
--#: ../lib/inet_sr.c:51
-+#: ../lib/inet_sr.c:52
-+#, c-format
- msgid ""
- " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n"
- msgstr ""
--" inet_route [-vF] add {-host|-net} Cl[/prefix] [gw Gw] [metrika M]\n"
-+" inet_route [-vF] add {-host|-net} Cíl[/prefix] [gw Gw] [metrika M]\n"
-
--#: ../lib/inet_sr.c:52
-+#: ../lib/inet_sr.c:53
-+#, c-format
- msgid ""
- " [netmask N] [mss Mss] [window W] [irtt I]\n"
- msgstr ""
- " [netmask N] [mss Mss] [window W] [irtt I]\n"
-
--#: ../lib/inet_sr.c:53
-+#: ../lib/inet_sr.c:54
-+#, c-format
- msgid " [mod] [dyn] [reinstate] [[dev] If]\n"
- msgstr " [mod] [dyn] [reinstate] [[dev] If]\n"
-
--#: ../lib/inet_sr.c:54
-+#: ../lib/inet_sr.c:55
-+#, c-format
- msgid ""
- " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n"
- msgstr ""
--" inet_route [-vF] add {-host|-net} Cl/[prefix] [metrika M] reject\n"
-+" inet_route [-vF] add {-host|-net} Cíl/[prefix] [metrika M] reject\n"
-
--#: ../lib/inet_sr.c:55
-+#: ../lib/inet_sr.c:56
-+#, c-format
- msgid " inet_route [-FC] flush NOT supported\n"
--msgstr " inet_route [-FC] flush NEN podporovno\n"
-+msgstr " inet_route [-FC] flush NENÍ podporováno\n"
-
- #: ../lib/inet_sr.c:158
- #, c-format
- msgid "route: %s: cannot use a NETWORK as gateway!\n"
--msgstr "route: %s: s nelze pout jako brnu!\n"
-+msgstr "route: %s: síť nelze použít jako bránu!\n"
-
- #: ../lib/inet_sr.c:174
--#, fuzzy
-+#, c-format
- msgid "route: Invalid MSS/MTU.\n"
--msgstr "route: Nesprvn NSS.\n"
-+msgstr "route: Neplatné MSS/MTU.\n"
-
- #: ../lib/inet_sr.c:187
-+#, c-format
- msgid "route: Invalid window.\n"
--msgstr "route: Nesprvn okno.\n"
-+msgstr "route: Nesprávné okno.\n"
-
- #: ../lib/inet_sr.c:203
-+#, c-format
- msgid "route: Invalid initial rtt.\n"
--msgstr "route: Nesprvn zahajovac rtt.\n"
-+msgstr "route: Nesprávné zahajovací rtt.\n"
-
- #: ../lib/inet_sr.c:261
- #, c-format
- msgid "route: netmask %.8x doesn't make sense with host route\n"
--msgstr "route: sov maska %.8x nedv smysl, kdy clem je cesty pota\n"
-+msgstr "route: síťová maska %.8x nedává smysl, když cílem je cesty počítač\n"
-
- #: ../lib/inet_sr.c:265
- #, c-format
- msgid "route: bogus netmask %s\n"
--msgstr "route: sov maska %s je nesprvn\n"
-+msgstr "route: síťová maska %s je nesprávná\n"
-
- #: ../lib/inet_sr.c:270
-+#, c-format
- msgid "route: netmask doesn't match route address\n"
--msgstr "route: sov maska nevyhovuje adrese cesty\n"
-+msgstr "route: síťová maska nevyhovuje adrese cesty\n"
-
- #: ../lib/inet_sr.c:306
-+#, c-format
- msgid "Flushing `inet' routing table not supported\n"
--msgstr "Smrovac cache `inet' nelze vyprazdovat\n"
-+msgstr "Směrovací cache `inet' nelze vyprazdňovat\n"
-
- #: ../lib/inet_sr.c:310
-+#, c-format
- msgid "Modifying `inet' routing cache not supported\n"
--msgstr "Smrovac cache `inet' nelze mnit\n"
-+msgstr "Směrovací cache `inet' nelze měnit\n"
-
--#: ../lib/ipx_gr.c:52
--msgid "IPX not configured in this system.\n"
--msgstr "IPX nen na tomto systmu nakonfigurovno.\n"
-+#: ../lib/ipx_gr.c:53
-+#, c-format
-+msgid "IPX routing not in file %s or %s found.\n"
-+msgstr "Směrování IPX nenalezeno v souboru %s nebo %s.\n"
-
--#: ../lib/ipx_gr.c:56
-+#: ../lib/ipx_gr.c:62
-+#, c-format
- msgid "Kernel IPX routing table\n"
--msgstr "Smrovac tabulka v jdru pro IPX\n"
-+msgstr "Směrovací tabulka v jádru pro IPX\n"
-
- #. xxx
--#: ../lib/ipx_gr.c:57
-+#: ../lib/ipx_gr.c:63
-+#, c-format
- msgid "Destination Router Net Router Node\n"
--msgstr "Cl Smrova S Smrova Uzel\n"
-+msgstr "Cíl Směrovač Síť Směrovač Uzel\n"
-
- #: ../lib/ipx_sr.c:33
-+#, c-format
- msgid "IPX: this needs to be written\n"
--msgstr "IPX: toto je teba uloit\n"
-+msgstr "IPX: toto je třeba uložit\n"
-
--#: ../lib/masq_info.c:197
-+#: ../lib/masq_info.c:198
-+#, c-format
- msgid "IP masquerading entries\n"
--msgstr "IP maskovac poloky\n"
-+msgstr "IP maskovací položky\n"
-
--#: ../lib/masq_info.c:200
-+#: ../lib/masq_info.c:201
-+#, c-format
- msgid "prot expire source destination ports\n"
--msgstr "prot ivot zdroj cl porty\n"
-+msgstr "prot život zdroj cíl porty\n"
-
--#: ../lib/masq_info.c:203
-+#: ../lib/masq_info.c:204
-+#, c-format
- msgid ""
--"prot expire initseq delta prevd source destination "
--" ports\n"
-+"prot expire initseq delta prevd source "
-+"destination ports\n"
- msgstr ""
--"prot ivot zahajsek delta pedchd zdroj cl "
--" porty\n"
-+"prot život zahajsek delta předchd zdroj "
-+"cíl porty\n"
-
- #: ../lib/netrom_gr.c:48
-+#, c-format
- msgid "NET/ROM not configured in this system.\n"
--msgstr "NET/ROM nen na tomto systmu nakonfigurovno.\n"
-+msgstr "NET/ROM není na tomto systému nakonfigurováno.\n"
-
- #: ../lib/netrom_gr.c:51
-+#, c-format
- msgid "Kernel NET/ROM routing table\n"
--msgstr "Smrovac tabulka v jdru pro NET/ROM\n"
-+msgstr "Směrovací tabulka v jádru pro NET/ROM\n"
-
- #: ../lib/netrom_gr.c:52
-+#, c-format
- msgid "Destination Mnemonic Quality Neighbour Iface\n"
--msgstr "Cl Mnemonika Kvalita Soused Rozhran\n"
-+msgstr "Cíl Mnemonika Kvalita Soused Rozhraní\n"
-
- #: ../lib/netrom_sr.c:34
-+#, c-format
- msgid "netrom usage\n"
--msgstr "pouit netrom\n"
-+msgstr "použití netrom\n"
-
- #: ../lib/netrom_sr.c:44
-+#, c-format
- msgid "NET/ROM: this needs to be written\n"
--msgstr "NET/ROM: toto je poteba uloit\n"
-+msgstr "NET/ROM: toto je potřeba uložit\n"
-
- #: ../lib/ppp.c:44
-+#, c-format
- msgid "You cannot start PPP with this program.\n"
--msgstr "Tmto programem nelze PPP spustit.\n"
-+msgstr "Tímto programem nelze PPP spustit.\n"
-
- #: ../lib/ppp_ac.c:38
-+#, c-format
- msgid "Sorry, use pppd!\n"
--msgstr "Lituji, pouijte pppd!\n"
-+msgstr "Lituji, použijte pppd!\n"
-
- #: ../lib/rose.c:87
- msgid "Node address must be ten digits"
--msgstr "Adresa uzlu mus mt 10 slic"
-+msgstr "Adresa uzlu musí mít 10 číslic"
-
- #: ../lib/rose_gr.c:51
-+#, c-format
- msgid "ROSE not configured in this system.\n"
--msgstr "ROSE nen na tomto systmu nakonfigurovno.\n"
-+msgstr "ROSE není na tomto systému nakonfigurováno.\n"
-
- #: ../lib/rose_gr.c:54
-+#, c-format
- msgid "Kernel ROSE routing table\n"
--msgstr "Smrovac tabulka v jdru pro ROSE\n"
-+msgstr "Směrovací tabulka v jádru pro ROSE\n"
-
--#: ../lib/tr.c:70 ../lib/tr.c:85
-+#: ../lib/tr.c:86 ../lib/tr.c:101
- #, c-format
- msgid "in_tr(%s): invalid token ring address!\n"
--msgstr "in_tr(%s): nesprvn token ring adresa!\n"
-+msgstr "in_tr(%s): nesprávná token ring adresa!\n"
-
--#: ../lib/tr.c:97
-+#: ../lib/tr.c:113
- #, c-format
- msgid "in_tr(%s): trailing : ignored!\n"
--msgstr "in_tr(%s): nadbyten: ignorovno!\n"
-+msgstr "in_tr(%s): nadbytečné: ignorováno!\n"
-
--#: ../lib/tr.c:109
-+#: ../lib/tr.c:125
- #, c-format
- msgid "in_tr(%s): trailing junk!\n"
--msgstr "in_tr(%s): nadbyten znaky!\n"
-+msgstr "in_tr(%s): nadbytečné znaky!\n"
-
--#: ../lib/interface.c:124
-+#: ../lib/interface.c:176
- #, c-format
- msgid "warning: no inet socket available: %s\n"
--msgstr "varovn: nen dostupn dn inet soket: %s\n"
-+msgstr "varování: není dostupný žádný inet soket: %s\n"
-
--#: ../lib/interface.c:270
-+#: ../lib/interface.c:325
- #, c-format
- msgid "Warning: cannot open %s (%s). Limited output.\n"
--msgstr ""
-+msgstr "Pozor: %s nelze otevřít (%s). Výstup omezen.\n"
-
- #. Give better error message for this case.
--#: ../lib/interface.c:504
-+#: ../lib/interface.c:571
- msgid "Device not found"
--msgstr "Zazen nebylo nalezeno"
-+msgstr "Zařízení nebylo nalezeno"
-
--#: ../lib/interface.c:508
-+#: ../lib/interface.c:575
- #, c-format
- msgid "%s: error fetching interface information: %s\n"
--msgstr "%s: chyba pi zskvn informac o rozhran %s\n"
-+msgstr "%s: chyba při získávání informací o rozhraní %s\n"
-+
-+#: ../lib/interface.c:608
-+msgid " - no statistics available -"
-+msgstr " - statistická data nejsou dostupná -"
-+
-+#: ../lib/interface.c:612
-+#, c-format
-+msgid "[NO FLAGS]"
-+msgstr "[ŽÁDNÉ PŘÍZNAKY]"
-+
-+#: ../lib/interface.c:694
-+msgid "UP,"
-+msgstr "AKTIVOVÁNO,"
-+
-+#: ../lib/interface.c:696
-+msgid "BROADCAST,"
-+msgstr "VŠESMĚR,"
-+
-+#: ../lib/interface.c:698
-+msgid "DEBUG,"
-+msgstr "LADĚNÍ,"
-+
-+#: ../lib/interface.c:700
-+msgid "LOOPBACK,"
-+msgstr "SMYČKA,"
-+
-+#: ../lib/interface.c:702
-+msgid "POINTOPOINT,"
-+msgstr "DVOUBODOVÉ,"
-+
-+# ??
-+#: ../lib/interface.c:704
-+msgid "NOTRAILERS,"
-+msgstr "ŽÁDNÉ_TRAILERS"
-+
-+#: ../lib/interface.c:706
-+msgid "RUNNING,"
-+msgstr "BĚŽÍ,"
-+
-+#: ../lib/interface.c:708
-+msgid "NOARP,"
-+msgstr "NEARP,"
-+
-+#: ../lib/interface.c:710
-+msgid "PROMISC,"
-+msgstr "PROMISK,"
-+
-+#: ../lib/interface.c:712
-+msgid "ALLMULTI,"
-+msgstr "ALLMULTI,"
-+
-+#: ../lib/interface.c:714
-+msgid "SLAVE,"
-+msgstr "PODŘÍZENÝ,"
-+
-+#: ../lib/interface.c:716
-+msgid "MASTER,"
-+msgstr "NADŘÍZENÝ,"
-+
-+#: ../lib/interface.c:718
-+msgid "MULTICAST,"
-+msgstr "MULTICAST,"
-+
-+#: ../lib/interface.c:721
-+msgid "DYNAMIC,"
-+msgstr "DYNAMIC,"
-+
-+#: ../lib/interface.c:730
-+#, c-format
-+msgid "%s: %s mtu %d metric %d"
-+msgstr "%s: %s mtu %d metrika %d"
-+
-+#: ../lib/interface.c:734
-+#, c-format
-+msgid " outfill %d keepalive %d"
-+msgstr " outfill %d keepalive %d"
-+
-+#: ../lib/interface.c:743 ../lib/interface.c:841
-+#, c-format
-+msgid " %s %s"
-+msgstr " %s %s"
-+
-+#: ../lib/interface.c:745
-+#, c-format
-+msgid " netmask %s"
-+msgstr " síťová_maska %s"
-+
-+#: ../lib/interface.c:747
-+#, c-format
-+msgid " broadcast %s"
-+msgstr " všesměr %s"
-+
-+#: ../lib/interface.c:750
-+#, c-format
-+msgid " destination %s"
-+msgstr " cíl %s"
-+
-+#: ../lib/interface.c:769
-+#, c-format
-+msgid " %s %s prefixlen %d"
-+msgstr " %s %s délka_prefixu %d"
-+
-+#: ../lib/interface.c:773
-+#, c-format
-+msgid " scopeid 0x%x"
-+msgstr " scopeid 0x%x"
-+
-+#: ../lib/interface.c:777
-+msgid "compat,"
-+msgstr "kompat,"
-+
-+#: ../lib/interface.c:781
-+msgid "global,"
-+msgstr "globální,"
-+
-+#: ../lib/interface.c:783
-+msgid "link,"
-+msgstr "linka,"
-+
-+#: ../lib/interface.c:785
-+msgid "site,"
-+msgstr "oblast,"
-+
-+#: ../lib/interface.c:787
-+msgid "host,"
-+msgstr "stroj,"
-+
-+#: ../lib/interface.c:805
-+#, c-format
-+msgid " %s Ethernet-II %s\n"
-+msgstr " %s Ethernet-II %s\n"
-+
-+#: ../lib/interface.c:808
-+#, c-format
-+msgid " %s Ethernet-SNAP %s\n"
-+msgstr " %s Ethernet-SNAP %s\n"
-+
-+#: ../lib/interface.c:811
-+#, c-format
-+msgid " %s Ethernet802.2 %s\n"
-+msgstr " %s Ethernet802.2 %s\n"
-+
-+#: ../lib/interface.c:814
-+#, c-format
-+msgid " %s Ethernet802.3 %s\n"
-+msgstr " %s Ethernet802.3 %s\n"
-+
-+#: ../lib/interface.c:824 ../lib/interface.c:833
-+#, c-format
-+msgid " %s %s\n"
-+msgstr " %s %s\n"
-+
-+#: ../lib/interface.c:843
-+#, c-format
-+msgid " %s"
-+msgstr " %s"
-+
-+#: ../lib/interface.c:845
-+#, c-format
-+msgid " txqueuelen %d"
-+msgstr " délka_odchozí_fronty %d"
-+
-+#: ../lib/interface.c:850
-+#, c-format
-+msgid " media %s"
-+msgstr " médium %s"
-+
-+#: ../lib/interface.c:852
-+#, c-format
-+msgid "autoselect"
-+msgstr "automatika"
-+
-+#: ../lib/interface.c:903
-+#, c-format
-+msgid "RX packets %llu bytes %llu (%lu.%lu %s)\n"
-+msgstr "RX packetů %llu bajtů %llu (%lu,%lu %s)\n"
-+
-+#: ../lib/interface.c:909
-+#, c-format
-+msgid "RX compressed:%lu\n"
-+msgstr "RX komprimováno %lu\n"
-+
-+#: ../lib/interface.c:912
-+#, c-format
-+msgid "RX errors %lu dropped %lu overruns %lu frame %lu\n"
-+msgstr "RX chyb %lu zahozeno %lu přetečení %lu rámců %lu\n"
-+
-+#: ../lib/interface.c:918
-+#, c-format
-+msgid "TX packets %llu bytes %llu (%lu.%lu %s)\n"
-+msgstr "TX packetů %llu bajtů %llu (%lu,%lu %s)\n"
-+
-+#: ../lib/interface.c:924
-+#, c-format
-+msgid "TX compressed %lu\n"
-+msgstr "TX komprimováno %lu\n"
-+
-+# carrier?
-+#: ../lib/interface.c:927
-+#, c-format
-+msgid "TX errors %lu dropped %lu overruns %lu carrier %lu collisions %lu\n"
-+msgstr "TX chyb %lu zahozeno %lu přetečení %lu přenos %lu kolizí %lu\n"
-
--#: ../lib/sockets.c:59
-+#: ../lib/interface.c:937
-+#, c-format
-+msgid "interrupt %d "
-+msgstr "přerušení %d "
-+
-+#. Only print devices using it for
-+#. I/O maps
-+#: ../lib/interface.c:940
-+#, c-format
-+msgid "base 0x%x "
-+msgstr "základ 0x%x "
-+
-+#: ../lib/interface.c:942
-+#, c-format
-+msgid "memory 0x%lx-%lx "
-+msgstr "paměť 0x%lx–%lx "
-+
-+#: ../lib/interface.c:945
-+#, c-format
-+msgid " dma 0x%x"
-+msgstr " DMA 0x%x"
-+
-+#: ../lib/sockets.c:63
-+#, c-format
- msgid "No usable address families found.\n"
--msgstr "Nebyla nalezena dn pouiteln tda adres.\n"
-+msgstr "Nebyla nalezena žádná použitelná třída adres.\n"
-
- #: ../lib/util-ank.c:229
- #, c-format
- msgid "ip: %s is invalid inet address\n"
--msgstr "ip: %s nen platnou inet adresou\n"
-+msgstr "ip: %s není platnou inet adresou\n"
-
- #: ../lib/util-ank.c:238
- #, c-format
- msgid "ip: %s is invalid inet prefix\n"
--msgstr "ip: %s nen platnm inet prefixem\n"
-+msgstr "ip: %s není platným inet prefixem\n"
-
- #: ../lib/util-ank.c:248
- #, c-format
- msgid "ip: %s is invalid IPv4 address\n"
--msgstr "ip: %s nen platnou IPv4 adresou\n"
-+msgstr "ip: %s není platnou IPv4 adresou\n"
-
- #: ../lib/util-ank.c:256
- #, c-format
- msgid "ip: argument is wrong: %s\n"
--msgstr "ip: argument %s je nesprvn\n"
-+msgstr "ip: argument %s je nesprávný\n"
-
--#: ../ipmaddr.c:56
-+#: ../ipmaddr.c:61
-+#, c-format
- msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n"
--msgstr " Usage: ipmaddr [ add | del ] MULTIADR dev ETZEC\n"
-+msgstr " Usage: ipmaddr [ add | del ] MULTIADR dev ŘETĚZEC\n"
-
--#: ../ipmaddr.c:57
-+#: ../ipmaddr.c:62
-+#, c-format
- msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n"
--msgstr " ipmaddr show [ dev ETZEC ] [ ipv4 | ipv6 | link | all ]\n"
-+msgstr " ipmaddr show [ dev ŘETĚZEC ] [ ipv4 | ipv6 | link | all ]\n"
-
--#: ../ipmaddr.c:58
-+#: ../ipmaddr.c:63
-+#, c-format
- msgid " ipmaddr -V | -version\n"
- msgstr " ipmaddr -V | -version\n"
-
--#: ../ipmaddr.c:258
-+#: ../ipmaddr.c:263
- #, c-format
- msgid "family %d "
--msgstr "tda %d "
-+msgstr "třída %d "
-
--#: ../ipmaddr.c:267
-+#: ../ipmaddr.c:272
- #, c-format
- msgid " users %d"
--msgstr " uivatel %d"
-+msgstr " uživatelé %d"
-
--#: ../ipmaddr.c:353
-+#: ../ipmaddr.c:361
- msgid "Cannot create socket"
--msgstr "Soket nelze vytvoit"
-+msgstr "Soket nelze vytvořit"
-
- #: ../slattach.c:180
- #, c-format
- msgid "slattach: /dev/%s already locked!\n"
--msgstr "slattach: zazen /dev/%s je ji zameno!\n"
-+msgstr "slattach: zařízení /dev/%s je již zamčeno!\n"
-
- #: ../slattach.c:186
- #, c-format
-@@ -2433,80 +3184,169 @@ msgid "slattach: tty_lock: (%s): %s\n"
- msgstr "slattach: tty_lock: (%s): %s\n"
-
- #: ../slattach.c:192
-+#, c-format
- msgid "slattach: cannot write PID file\n"
- msgstr "slattach: do PID souboru nelze zapisovat\n"
-
- #: ../slattach.c:202
- #, c-format
- msgid "slattach: tty_lock: UUCP user %s unknown!\n"
--msgstr "slattach: tty_lock: uivatel UUCP %s nen znm!\n"
-+msgstr "slattach: tty_lock: uživatel UUCP %s není znám!\n"
-
--#: ../slattach.c:430
-+#: ../slattach.c:432
- #, c-format
- msgid "slattach: tty_hangup(DROP): %s\n"
- msgstr "slattach: tty_hangup(DROP): %s\n"
-
--#: ../slattach.c:437
-+#: ../slattach.c:439
- #, c-format
- msgid "slattach: tty_hangup(RAISE): %s\n"
- msgstr "slattach: tty_hangup(RAISE): %s\n"
-
--#: ../slattach.c:486
-+#: ../slattach.c:470
-+#, c-format
-+msgid "slattach: tty name too long\n"
-+msgstr "slattach: název TTY je příliš dlouhý\n"
-+
-+#: ../slattach.c:500
-+#, c-format
- msgid "slattach: tty_open: cannot get current state!\n"
--msgstr "slattach: tty_open: aktuln stav nelze zjistit!\n"
-+msgstr "slattach: tty_open: aktuální stav nelze zjistit!\n"
-
--#: ../slattach.c:493
-+#: ../slattach.c:507
-+#, c-format
- msgid "slattach: tty_open: cannot get current line disc!\n"
--msgstr "slattach: tty_open: aktuln linkovou disciplnu nelze zjistit!\n"
-+msgstr "slattach: tty_open: aktuální linkovou disciplínu nelze zjistit!\n"
-
--#: ../slattach.c:501
-+#: ../slattach.c:515
-+#, c-format
- msgid "slattach: tty_open: cannot set RAW mode!\n"
--msgstr "slattach: tty_open: reim RAW nelze nastavit!\n"
-+msgstr "slattach: tty_open: režim RAW nelze nastavit!\n"
-
--#: ../slattach.c:508
-+#: ../slattach.c:522
- #, c-format
- msgid "slattach: tty_open: cannot set %s bps!\n"
- msgstr "slattach: tty_open: %s bps nelze nastavit!\n"
-
--#: ../slattach.c:518
-+#: ../slattach.c:532
-+#, c-format
- msgid "slattach: tty_open: cannot set 8N1 mode!\n"
--msgstr "slattach: tty_open: reim 8N1 nelze nastavit!\n"
-+msgstr "slattach: tty_open: režim 8N1 nelze nastavit!\n"
-+
-+#: ../slattach.c:674
-+#, c-format
-+msgid "slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n"
-+msgstr "slattach: setvbuf(stdout, 0, _IOLBF, 0): %s\n"
-
--#: ../slattach.c:686
-+#: ../slattach.c:706
- #, c-format
- msgid "%s started"
--msgstr "protokol %s sputn"
-+msgstr "protokol %s spuštěn"
-
--#: ../slattach.c:687
-+#: ../slattach.c:707
- #, c-format
- msgid " on %s"
- msgstr " na %s"
-
--#: ../slattach.c:688
-+#: ../slattach.c:708
- #, c-format
- msgid " interface %s\n"
--msgstr " rozhran %s\n"
-+msgstr " rozhraní %s\n"
-+
-+#~ msgid ""
-+#~ " arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub "
-+#~ "<-''-\n"
-+#~ msgstr ""
-+#~ " arp [-v] [<HW>] [-i <if>] -s <soubor> <hwadr> [síťmask <čís>] <-''-\n"
-+
-+#~ msgid "%-9.9s Link encap:%s "
-+#~ msgstr "%-9.9s Zapouzdření:%s "
-+
-+#~ msgid "HWaddr %s "
-+#~ msgstr "HWadr %s "
-+
-+#~ msgid "Media:%s"
-+#~ msgstr "Médium:%s"
-+
-+#~ msgid "(auto)"
-+#~ msgstr "(auto)"
-+
-+#~ msgid " P-t-P:%s "
-+#~ msgstr " P-t-P:%s "
-+
-+# V ostatních katalozích se překládá Broadcast -> všesměrové vysílání.
-+# Tudiž bcast -> Všesměr :)
-+#~ msgid " Bcast:%s "
-+#~ msgstr " Všesměr:%s "
-+
-+#~ msgid " Mask:%s\n"
-+#~ msgstr "Maska:%s\n"
-+
-+#~ msgid " Scope:"
-+#~ msgstr " Rozsah:"
-+
-+#~ msgid "Unknown"
-+#~ msgstr "Neznám."
-+
-+#~ msgid " EtherTalk Phase 2 addr:%s\n"
-+#~ msgstr " EtherTalk Phase 2 adr:%s\n"
-+
-+#~ msgid " econet addr:%s\n"
-+#~ msgstr " econet adr:%s\n"
-+
-+# Hic sunt leones ...
-+#~ msgid "[NO FLAGS] "
-+#~ msgstr "[ŽÁDNÉ PŘÍZNAKY]"
-+
-+#~ msgid " MTU:%d Metric:%d"
-+#~ msgstr " MTU:%d Metrika:%d"
-+
-+#~ msgid " compressed:%lu\n"
-+#~ msgstr " komprimováno:%lu\n"
-+
-+#~ msgid " collisions:%lu "
-+#~ msgstr " kolizí:%lu "
-+
-+#~ msgid "DMA chan:%x "
-+#~ msgstr "Kanál DMA:%x "
-+
-+#~ msgid "%s: unknown interface: %s\n"
-+#~ msgstr "%s: rozhraní %s není známo\n"
-+
-+#~ msgid "address mask replies"
-+#~ msgstr "odpovědi na žádost o masku podsítě"
-+
-+#~ msgid "unknown title %s\n"
-+#~ msgstr "titulek %s je neznámý\n"
-+
-+#~ msgid "Routing table for `ddp' not yet supported.\n"
-+#~ msgstr "Směrovací tabulka pro `ddp' není zatím podporována.\n"
-+
-+#~ msgid "IPX not configured in this system.\n"
-+#~ msgstr "IPX není na tomto systému nakonfigurováno.\n"
-
- #~ msgid ""
--#~ " This comand can read or set the hostname or the NIS domainname. You can\n"
-+#~ " This comand can read or set the hostname or the NIS domainname. You "
-+#~ "can\n"
- #~ msgstr ""
--#~ " Tento program zjiuje a nastavuje jmno potae i NIS domny. Me "
--#~ "tak\n"
-+#~ " Tento program zjišťuje a nastavuje jméno počítače či NIS domény. Může "
-+#~ "také\n"
-
- #~ msgid ""
- #~ " also read the DNS domain or the FQDN (fully qualified domain name).\n"
--#~ msgstr " zjistit DNS domnu i kanonick jmno potae.\n"
-+#~ msgstr " zjistit DNS doménu či kanonické jméno počítače.\n"
-
- #~ msgid ""
- #~ " Unless you are using bind or NIS for host lookups you can change the\n"
- #~ msgstr ""
--#~ " Pokud nepouvte bind i NIS pro vyhledvn jmen pota, pak mete\n"
-+#~ " Pokud nepoužíváte bind či NIS pro vyhledávání jmen počítačů, pak "
-+#~ "můžete\n"
-
- #~ msgid ""
- #~ " FQDN (Fully Qualified Domain Name) and the DNS domain name (which is\n"
- #~ msgstr ""
--#~ " zmnit kanonick jmno potae a jmno DNS domny (je soust "
--#~ "kanonickho\n"
-+#~ " změnit kanonické jméno počítače a jméno DNS domény (je součástí "
-+#~ "kanonického\n"
-
- #~ msgid " part of the FQDN) in the /etc/hosts file.\n"
--#~ msgstr " jmna potae) v souboru /etc/hosts.\n"
-+#~ msgstr " jména počítače) v souboru /etc/hosts.\n"
-diff --git a/po/de.po b/po/de.po
-index f884dd9..9f8f679 100644
---- a/po/de.po
-+++ b/po/de.po
-@@ -1,4 +1,4 @@
--# $Id: de.po,v 1.10 2000/08/01 03:19:48 ecki Exp $
-+# $Id: de.po,v 1.11 2003/10/25 21:15:09 ecki Exp $
- # German translation for net-tools 1.51
- # Copyright (C) 1999 Ralf Bchle <ralf@gnu.org>
- msgid ""
-@@ -9,7 +9,7 @@ msgstr ""
- "Last-Translator: Ralf Bchle <ralf@gnu.org>\n"
- "Language-Team:\n"
- "MIME-Version: 1.0\n"
--"Content-Type: text/plain; charset=iso8859-1\n"
-+"Content-Type: text/plain; charset=iso-8859-1\n"
- "Content-Transfer-Encoding: 8bit\n"
-
- #: ../arp.c:110 ../arp.c:269
-@@ -59,12 +59,16 @@ msgid "arp: cannot set entry on line %u of etherfile %s !\n"
- msgstr "arp: Kann Eintrag auf Zeile %u von Etherdatei %s nicht setzen!\n"
-
- #: ../arp.c:437
--msgid "Address\t\t\tHWtype\tHWaddress\t Flags Mask\t\t Iface\n"
--msgstr "Adresse\t\t\tHWTyp\tHWAdresse\t Flags Maske\t\t Iface\n"
-+msgid ""
-+"Address HWtype HWaddress Flags Mask "
-+"Iface\n"
-+msgstr ""
-+"Adresse HW-Typ HW-Adresse Flags Maske "
-+"Iface\n"
-
- #: ../arp.c:467
- msgid "(incomplete)"
--msgstr "(unvollsndig)"
-+msgstr "(unvollstndig)"
-
- #: ../arp.c:484
- #, c-format
-diff --git a/po/et_EE.po b/po/et_EE.po
-index d748410..827406d 100644
---- a/po/et_EE.po
-+++ b/po/et_EE.po
-@@ -1,66 +1,65 @@
- # Estonian translations for net-tools
--# Copyright (C) 1999 Free Software Foundation, Inc.
--# Meelis Roos <Meelis.Roos@mail.ee>, 1999.
-+# Copyright (C) 1999-2001 Free Software Foundation, Inc.
-+# Meelis Roos <mroos@linux.ee>, 1999-2001.
- #
--#, fuzzy
- msgid ""
- msgstr ""
--"Project-Id-Version: net-tools 1.58\n"
--"POT-Creation-Date: 2001-02-15 21:28+0200\n"
--"PO-Revision-Date: 2001-02-15 18:00+0300\n"
-+"Project-Id-Version: net-tools 1.60\n"
-+"POT-Creation-Date: 2001-04-16 20:24+0200\n"
-+"PO-Revision-Date: 2001-04-16 20:30+0200\n"
- "Last-Translator: Meelis Roos <mroos@linux.ee>\n"
- "Language-Team: Estonian <linux-ee@eenet.ee>\n"
- "MIME-Version: 1.0\n"
- "Content-Type: text/plain; charset=iso-8859-15\n"
- "Content-Transfer-Encoding: 8bit\n"
-
--#: ../arp.c:110 ../arp.c:269
-+#: ../arp.c:111 ../arp.c:270
- msgid "arp: need host name\n"
- msgstr "arp: puudub hosti nimi\n"
-
--#: ../arp.c:207 ../arp.c:221
-+#: ../arp.c:208 ../arp.c:222
- #, c-format
- msgid "No ARP entry for %s\n"
- msgstr "%s jaoks pole ARP kirjet\n"
-
--#: ../arp.c:239
-+#: ../arp.c:240
- #, c-format
- msgid "arp: cant get HW-Address for `%s': %s.\n"
- msgstr "arp: ei saa riistvaralist aadressi `%s' jaoks: %s\n"
-
--#: ../arp.c:243
-+#: ../arp.c:244
- msgid "arp: protocol type mismatch.\n"
- msgstr "arp: vale protokolli tp\n"
-
--#: ../arp.c:252
-+#: ../arp.c:253
- #, c-format
- msgid "arp: device `%s' has HW address %s `%s'.\n"
- msgstr "arp: seadmel `%s' on riistvaraline aadress %s `%s'\n"
-
--#: ../arp.c:282
-+#: ../arp.c:283
- msgid "arp: need hardware address\n"
- msgstr "arp: puudub riistvaraline aadress\n"
-
--#: ../arp.c:290
-+#: ../arp.c:291
- msgid "arp: invalid hardware address\n"
- msgstr "arp: vigane riistvaraline aadress\n"
-
--#: ../arp.c:387
-+#: ../arp.c:388
- #, c-format
- msgid "arp: cannot open etherfile %s !\n"
- msgstr "arp: ei saa avada faili %s\n"
-
--#: ../arp.c:403
-+#: ../arp.c:404
- #, c-format
- msgid "arp: format error on line %u of etherfile %s !\n"
- msgstr "arp: formaadiviga real %u failis %s\n"
-
--#: ../arp.c:416
-+#: ../arp.c:417
- #, c-format
- msgid "arp: cannot set entry on line %u of etherfile %s !\n"
- msgstr "arp: ei saa kehtestada ARP kirjet real %u failis %s\n"
-
--#: ../arp.c:437
-+#: ../arp.c:438
- msgid ""
- "Address HWtype HWaddress Flags Mask "
- "Iface\n"
-@@ -68,45 +67,45 @@ msgstr ""
- "Aadress HWtp HWaadress Lipud Mask "
- "Liides\n"
-
--#: ../arp.c:467
-+#: ../arp.c:468
- msgid "(incomplete)"
- msgstr "(mittetielik)"
-
--#: ../arp.c:484
-+#: ../arp.c:485
- #, c-format
- msgid "%s (%s) at "
- msgstr "%s (%s) aadressil "
-
--#: ../arp.c:490
-+#: ../arp.c:491
- msgid "<incomplete> "
- msgstr "<mittetielik>"
-
--#: ../arp.c:496
-+#: ../arp.c:497
- #, c-format
- msgid "netmask %s "
- msgstr "vrgumask %s "
-
--#: ../arp.c:513
-+#: ../arp.c:514
- #, c-format
- msgid "on %s\n"
- msgstr "liides %s\n"
-
--#: ../arp.c:592
-+#: ../arp.c:593
- #, c-format
- msgid "Entries: %d\tSkipped: %d\tFound: %d\n"
- msgstr "ARP kirjeid kokku: %s\tignoreerisin: %d\tleidsin: %d\n"
-
--#: ../arp.c:596
-+#: ../arp.c:597
- #, c-format
- msgid "%s (%s) -- no entry\n"
- msgstr "%s (%s) -- pole kirjet\n"
-
--#: ../arp.c:598
-+#: ../arp.c:599
- #, c-format
- msgid "arp: in %d entries no match found.\n"
- msgstr "arp: ei leidnud %d kirje hulgast sobivat\n"
-
--#: ../arp.c:613
-+#: ../arp.c:614
- msgid ""
- "Usage:\n"
- " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP "
-@@ -116,7 +115,7 @@ msgstr ""
- "ARP cache vaatamine:\n"
- " arp [-vn] [<HW>] [-i <if>] [-a] [<hosti nimi>]\n"
-
--#: ../arp.c:614
-+#: ../arp.c:615
- msgid ""
- " arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP "
- "entry\n"
-@@ -124,7 +123,7 @@ msgstr ""
- "ARP kirje kustutamine:\n"
- " arp [-v] [-i <if>] -d <hosti nimi> [pub] [nopub]\n"
-
--#: ../arp.c:615
-+#: ../arp.c:616
- msgid ""
- " arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
- "file\n"
-@@ -132,7 +131,7 @@ msgstr ""
- "ARP kirjete lisamine failist:\n"
- " arp [-vnD] [<HW>] [-i <if>] -f [<failinimi>]\n"
-
--#: ../arp.c:616
-+#: ../arp.c:617
- msgid ""
- " arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add "
- "entry\n"
-@@ -140,14 +139,14 @@ msgstr ""
- "ARP kirje lisamine:\n"
- " arp [-v] [<HW>] [-i <if>] -s <hosti nimi> <hwaddr> [temp] [nopub]\n"
-
--#: ../arp.c:617
-+#: ../arp.c:618
- msgid ""
- " arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub "
- "<-''-\n"
- msgstr ""
- " arp [-v] [<HW>] [-i <if>] -s <hosti nimi> <hwaddr> [netmask <nm>] pub\n"
-
--#: ../arp.c:618
-+#: ../arp.c:619
- msgid ""
- " arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub "
- "<-''-\n"
-@@ -156,7 +155,7 @@ msgstr ""
- " arp [-v] [<HW>] [-i <if>] -Ds <hosti nimi> <if> [netmask <nm>] pub\n"
- "\n"
-
--#: ../arp.c:620
-+#: ../arp.c:621
- msgid ""
- " -a display (all) hosts in alternative (BSD) "
- "style\n"
-@@ -164,37 +163,37 @@ msgstr ""
- " -a nita kiki hoste alternatiivsel (BSD) "
- "kujul\n"
-
--#: ../arp.c:621
-+#: ../arp.c:622
- msgid " -s, --set set a new ARP entry\n"
- msgstr " -s, --set uue ARP kirje seadmine\n"
-
--#: ../arp.c:622
-+#: ../arp.c:623
- msgid " -d, --delete delete a specified entry\n"
- msgstr " -d, --delete mratud kirje kustutamine\n"
-
--#: ../arp.c:623 ../netstat.c:1485 ../route.c:85
-+#: ../arp.c:624 ../netstat.c:1490 ../route.c:86
- msgid " -v, --verbose be verbose\n"
- msgstr " -v, --verbose jutukas vljund\n"
-
--#: ../arp.c:624
-+#: ../arp.c:625 ../netstat.c:1491 ../route.c:87
- msgid " -n, --numeric don't resolve names\n"
- msgstr " -n, --numeric mitte lahendada nimesid\n"
-
--#: ../arp.c:625
-+#: ../arp.c:626
- msgid ""
- " -i, --device specify network interface (e.g. eth0)\n"
- msgstr ""
- " -i, --device vrguliidese tpsustamine (niteks eth0)\n"
-
--#: ../arp.c:626
-+#: ../arp.c:627
- msgid " -D, --use-device read <hwaddr> from given device\n"
- msgstr " -D, --use-device lugeda <hwaddr> vastavalt liideselt\n"
-
--#: ../arp.c:627
-+#: ../arp.c:628
- msgid " -A, -p, --protocol specify protocol family\n"
- msgstr " -A, -p, --protocol protokollipere mramine\n"
-
--#: ../arp.c:628
-+#: ../arp.c:629
- msgid ""
- " -f, --file read new entries from file or from "
- "/etc/ethers\n"
-@@ -204,125 +203,125 @@ msgstr ""
- "/etc/ethers'st\n"
- "\n"
-
--#: ../arp.c:630 ../rarp.c:181
-+#: ../arp.c:631 ../rarp.c:182
- #, c-format
- msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n"
- msgstr ""
- " <HW>=kasutage '-H <hw>' riistvaralise aadressi mramiseks.\n"
- " Vaikimisi: %s\n"
-
--#: ../arp.c:631 ../rarp.c:182
-+#: ../arp.c:632 ../rarp.c:183
- msgid " List of possible hardware types (which support ARP):\n"
- msgstr " Vimalike ARP-i toetavate riistvara tpide nimekiri:\n"
-
--#: ../arp.c:664 ../arp.c:749
-+#: ../arp.c:666 ../arp.c:751
- #, c-format
- msgid "%s: hardware type not supported!\n"
- msgstr "arp: riistvara tpi %s ei toetata\n"
-
--#: ../arp.c:668
-+#: ../arp.c:670
- #, c-format
- msgid "%s: address family not supported!\n"
- msgstr "arp: aadressiperekonda %s ei toetata\n"
-
--#: ../arp.c:703
-+#: ../arp.c:705
- msgid "arp: -N not yet supported.\n"
- msgstr "arp: -N toetust pole veel\n"
-
--#: ../arp.c:713
-+#: ../arp.c:715
- #, c-format
- msgid "arp: %s: unknown address family.\n"
- msgstr "arp: tundmatu aadressiperekond %s\n"
-
--#: ../arp.c:722
-+#: ../arp.c:724
- #, c-format
- msgid "arp: %s: unknown hardware type.\n"
- msgstr "arp: tundmatu riistvara tp %s\n"
-
--#: ../arp.c:741
-+#: ../arp.c:743
- #, c-format
- msgid "arp: %s: kernel only supports 'inet'.\n"
- msgstr "arp: tuumas on ainult 'inet' aadressiperekonna toetus\n"
-
--#: ../arp.c:754
-+#: ../arp.c:756
- #, c-format
- msgid "arp: %s: hardware type without ARP support.\n"
- msgstr "arp: riistvara tbil %s pole ARP toetust\n"
-
--#: ../hostname.c:69
-+#: ../hostname.c:70
- #, c-format
- msgid "Setting nodename to `%s'\n"
- msgstr "Sean slme nimeks `%s'\n"
-
--#: ../hostname.c:74
-+#: ../hostname.c:75
- #, c-format
- msgid "%s: you must be root to change the node name\n"
- msgstr "%s: ainult root saab slme nime muuta\n"
-
--#: ../hostname.c:77 ../hostname.c:97 ../hostname.c:116
-+#: ../hostname.c:78 ../hostname.c:98 ../hostname.c:117
- #, c-format
- msgid "%s: name too long\n"
- msgstr "%s: nimi on liiga pikk\n"
-
--#: ../hostname.c:89
-+#: ../hostname.c:90
- #, c-format
- msgid "Setting hostname to `%s'\n"
- msgstr "Sean hosti nimeks `%s'\n"
-
--#: ../hostname.c:94
-+#: ../hostname.c:95
- #, c-format
- msgid "%s: you must be root to change the host name\n"
- msgstr "%s: ainult root saab hosti nime muuta\n"
-
--#: ../hostname.c:108
-+#: ../hostname.c:109
- #, c-format
- msgid "Setting domainname to `%s'\n"
- msgstr "Sean domeeni nimeks `%s'\n"
-
--#: ../hostname.c:113
-+#: ../hostname.c:114
- #, c-format
- msgid "%s: you must be root to change the domain name\n"
- msgstr "%s: ainult root saab domeeni nime muuta\n"
-
--#: ../hostname.c:131
-+#: ../hostname.c:132
- #, c-format
- msgid "Resolving `%s' ...\n"
- msgstr "Lahendan `%s' ...\n"
-
--#: ../hostname.c:137
-+#: ../hostname.c:138
- #, c-format
- msgid "Result: h_name=`%s'\n"
- msgstr "Tulemus: h_name=`%s'\n"
-
--#: ../hostname.c:142
-+#: ../hostname.c:143
- #, c-format
- msgid "Result: h_aliases=`%s'\n"
- msgstr "Tulemus: h_aliases=`%s'\n"
-
--#: ../hostname.c:147
-+#: ../hostname.c:148
- #, c-format
- msgid "Result: h_addr_list=`%s'\n"
- msgstr "Tulemus: h_addr_list=`%s'\n"
-
--#: ../hostname.c:209
-+#: ../hostname.c:210
- #, c-format
- msgid "%s: can't open `%s'\n"
- msgstr "%s: ei saa avada faili `%s'\n"
-
--#: ../hostname.c:223
-+#: ../hostname.c:224
- msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n"
- msgstr ""
- "Kasutamine:\n"
- " hostname [-v] {hosti nimi|-F fail} hosti nime seadmine (ka "
- "failist)\n"
-
--#: ../hostname.c:224
-+#: ../hostname.c:225
- msgid ""
- " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n"
- msgstr ""
- " domainname [-v] {nisdomeen|-F fail} NIS domeeni nime seadmine\n"
-
--#: ../hostname.c:226
-+#: ../hostname.c:227
- msgid ""
- " nodename [-v] {nodename|-F file} set DECnet node name (from "
- "file)\n"
-@@ -330,18 +329,18 @@ msgstr ""
- " nodename [-v] {nodename|-F fail} DECneti vrguslme nime "
- "seadmine\n"
-
--#: ../hostname.c:228
-+#: ../hostname.c:229
- msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n"
- msgstr ""
- " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] nime nitamine antud formaadis\n"
-
--#: ../hostname.c:229
-+#: ../hostname.c:230
- msgid ""
- " hostname [-v] display hostname\n"
- "\n"
- msgstr " hostname [-v] hosti nime nitamine\n"
-
--#: ../hostname.c:230
-+#: ../hostname.c:231
- msgid ""
- " hostname -V|--version|-h|--help print info and exit\n"
- "\n"
-@@ -350,7 +349,7 @@ msgstr ""
- " hostname -h|--help seesama abiinfo\n"
- "\n"
-
--#: ../hostname.c:231
-+#: ../hostname.c:232
- msgid ""
- " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n"
- "\n"
-@@ -358,36 +357,36 @@ msgstr ""
- " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n"
- "\n"
-
--#: ../hostname.c:232
-+#: ../hostname.c:233
- msgid " -s, --short short host name\n"
- msgstr " -s, --short lhike hosti nimi\n"
-
--#: ../hostname.c:233
-+#: ../hostname.c:234
- msgid " -a, --alias alias names\n"
- msgstr " -a, --alias alias-nimed\n"
-
--#: ../hostname.c:234
-+#: ../hostname.c:235
- msgid " -i, --ip-address addresses for the hostname\n"
- msgstr " -i, --ip-address hosti IP aadressid\n"
-
--#: ../hostname.c:235
-+#: ../hostname.c:236
- msgid " -f, --fqdn, --long long host name (FQDN)\n"
- msgstr ""
- " -f, --fqdn, --long pikk hosti nimi (FQDN - tielik ssteeminimi)\n"
-
--#: ../hostname.c:236
-+#: ../hostname.c:237
- msgid " -d, --domain DNS domain name\n"
- msgstr " -d, --domain DNS domeeni nimi\n"
-
--#: ../hostname.c:237
-+#: ../hostname.c:238
- msgid " -y, --yp, --nis NIS/YP domainname\n"
- msgstr " -y, --yp, --nis NIS/YP domeeni nimi\n"
-
--#: ../hostname.c:239
-+#: ../hostname.c:240
- msgid " -n, --node DECnet node name\n"
- msgstr " -n, --node DECneti vrguslme nimi\n"
-
--#: ../hostname.c:241
-+#: ../hostname.c:242
- msgid ""
- " -F, --file read hostname or NIS domainname from given file\n"
- "\n"
-@@ -395,7 +394,7 @@ msgstr ""
- " -F, --file lugeda hosti vi NIS domeeni nimi failist\n"
- "\n"
-
--#: ../hostname.c:243
-+#: ../hostname.c:244
- msgid ""
- " This command can read or set the hostname or the NIS domainname. You can\n"
- " also read the DNS domain or the FQDN (fully qualified domain name).\n"
-@@ -409,12 +408,12 @@ msgstr ""
- " tielikku ssteeminime (FQDN) ja DNS domeeni nime (mis on tieliku nime\n"
- " osa) muuta failist /etc/hosts.\n"
-
--#: ../hostname.c:338
-+#: ../hostname.c:340
- #, c-format
- msgid "%s: You can't change the DNS domain name with this command\n"
- msgstr "%s: selle ksuga ei saa muuta DNS domeeni nime\n"
-
--#: ../hostname.c:339
-+#: ../hostname.c:341
- msgid ""
- "\n"
- "Unless you are using bind or NIS for host lookups you can change the DNS\n"
-@@ -422,26 +421,26 @@ msgstr ""
- "\n"
- "Kui Te EI kasuta bind'i ega NIS'i nimede lahendamiseks, saate DNS domeeni\n"
-
--#: ../hostname.c:340
-+#: ../hostname.c:342
- msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n"
- msgstr "(mis on tieliku nime osa) nime muuta failist /etc/hosts.\n"
-
--#: ../hostname.c:357
-+#: ../hostname.c:359
- #, c-format
- msgid "gethostname()=`%s'\n"
- msgstr "gethostname()=`%s'\n"
-
--#: ../hostname.c:374
-+#: ../hostname.c:376
- #, c-format
- msgid "getdomainname()=`%s'\n"
- msgstr "getdomainname()=`%s'\n"
-
--#: ../hostname.c:389
-+#: ../hostname.c:391
- #, c-format
- msgid "getnodename()=`%s'\n"
- msgstr "getnodename()=`%s'\n"
-
--#: ../ifconfig.c:110
-+#: ../ifconfig.c:108
- msgid ""
- "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
- "Flg\n"
-@@ -449,16 +448,16 @@ msgstr ""
- "Liides MTU Meetr. RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
- "Lip\n"
-
--#: ../ifconfig.c:132 ../ifconfig.c:164
-+#: ../ifconfig.c:130 ../ifconfig.c:162
- #, c-format
- msgid "%s: unknown interface: %s\n"
- msgstr "ifconfig: tundmatu liides %s: %s\n"
-
--#: ../ifconfig.c:156 ../ifconfig.c:740 ../ifconfig.c:831 ../ifconfig.c:937
-+#: ../ifconfig.c:154 ../ifconfig.c:734 ../ifconfig.c:825 ../ifconfig.c:936
- msgid "No support for INET on this system.\n"
- msgstr "Antud ssteem ei toeta INET aadressiperekonda\n"
-
--#: ../ifconfig.c:179
-+#: ../ifconfig.c:177
- msgid ""
- "Usage:\n"
- " ifconfig [-a] [-i] [-v] [-s] <interface> [[<AF>] <address>]\n"
-@@ -466,51 +465,51 @@ msgstr ""
- "Kasutamine:\n"
- " ifconfig [-a] [-i] [-v] [-s] <liides> [[<AF>] <aadress>]\n"
-
--#: ../ifconfig.c:181
-+#: ../ifconfig.c:179
- msgid " [add <address>[/<prefixlen>]]\n"
- msgstr " [add <aadress>[/<prefiksi pikkus>]]\n"
-
--#: ../ifconfig.c:182
-+#: ../ifconfig.c:180
- msgid " [del <address>[/<prefixlen>]]\n"
- msgstr " [del <aadress>[/<prefiksi pikkus>]]\n"
-
--#: ../ifconfig.c:183
-+#: ../ifconfig.c:181
- msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n"
- msgstr " [[-]broadcast [<aadress>]] [[-]pointopoint [<aadress>]]\n"
-
--#: ../ifconfig.c:184
-+#: ../ifconfig.c:182
- msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n"
- msgstr " [netmask <aadress>] [dstaddr <aadress>] [tunnel <aadress>]\n"
-
--#: ../ifconfig.c:187
-+#: ../ifconfig.c:185
- msgid " [outfill <NN>] [keepalive <NN>]\n"
- msgstr " [outfill <NN>] [keepalive <NN>]\n"
-
--#: ../ifconfig.c:189
-+#: ../ifconfig.c:187
- msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n"
- msgstr " [hw <HW> <aadress>] [metric <NN>] [mtu <NN>]\n"
-
--#: ../ifconfig.c:190
-+#: ../ifconfig.c:188
- msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n"
- msgstr " [[-]trailers] [[-]arp] [[-]allmulti]\n"
-
--#: ../ifconfig.c:191
-+#: ../ifconfig.c:189
- msgid " [multicast] [[-]promisc]\n"
- msgstr " [multicast] [[-]promisc]\n"
-
--#: ../ifconfig.c:192
-+#: ../ifconfig.c:190
- msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"
- msgstr " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <tp>]\n"
-
--#: ../ifconfig.c:194
-+#: ../ifconfig.c:192
- msgid " [txqueuelen <NN>]\n"
- msgstr " [txqueuelen <NN>]\n"
-
--#: ../ifconfig.c:197
-+#: ../ifconfig.c:195
- msgid " [[-]dynamic]\n"
- msgstr " [[-]dynamic]\n"
-
--#: ../ifconfig.c:199
-+#: ../ifconfig.c:197
- msgid ""
- " [up|down] ...\n"
- "\n"
-@@ -518,73 +517,86 @@ msgstr ""
- " [up|down] ...\n"
- "\n"
-
--#: ../ifconfig.c:201
-+#: ../ifconfig.c:199
- msgid " <HW>=Hardware Type.\n"
- msgstr " <HW>=riistvara tp\n"
-
--#: ../ifconfig.c:202
-+#: ../ifconfig.c:200
- msgid " List of possible hardware types:\n"
- msgstr " Vimalike riistvara tpide nimekiri:\n"
-
- #. 1 = ARPable
--#: ../ifconfig.c:204
-+#: ../ifconfig.c:202
- #, c-format
- msgid " <AF>=Address family. Default: %s\n"
- msgstr " <AF>=aadressiperekond, vaikimisi %s\n"
-
--#: ../ifconfig.c:205
-+#: ../ifconfig.c:203
- msgid " List of possible address families:\n"
- msgstr " Vimalike aadressiperekondade nimekiri:\n"
-
--#: ../ifconfig.c:361
-+#: ../ifconfig.c:278
-+#, c-format
-+msgid "ifconfig: option `%s' not recognised.\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:280 ../ifconfig.c:925
-+msgid "ifconfig: `--help' gives usage information.\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:355
- msgid "Unknown media type.\n"
- msgstr "Tundmatu meedia tp\n"
-
--#: ../ifconfig.c:653
-+#: ../ifconfig.c:647
- #, c-format
- msgid "hw address type `%s' has no handler to set address. failed.\n"
- msgstr ""
- "riistvara aadressi tbil `%s' pole ksitlejat aadressi seadmiseks - ebann\n"
-
--#: ../ifconfig.c:662
-+#: ../ifconfig.c:656
- #, c-format
- msgid "%s: invalid %s address.\n"
- msgstr "%s: vigane %s aadress\n"
-
--#: ../ifconfig.c:706 ../ifconfig.c:796 ../ifconfig.c:882
-+#: ../ifconfig.c:700 ../ifconfig.c:790 ../ifconfig.c:876
- msgid "No support for INET6 on this system.\n"
- msgstr "Antud ssteem ei toeta INET6 aadressiperekonda\n"
-
--#: ../ifconfig.c:749 ../ifconfig.c:840
-+#: ../ifconfig.c:743 ../ifconfig.c:834
- #, c-format
- msgid "Interface %s not initialized\n"
- msgstr "Liides %s pole initsialiseeritud\n"
-
--#: ../ifconfig.c:761 ../ifconfig.c:851
-+#: ../ifconfig.c:755 ../ifconfig.c:845
- msgid "Bad address.\n"
- msgstr "Vigane aadress\n"
-
--#: ../ifconfig.c:854
-+#: ../ifconfig.c:848
- msgid "Address deletion not supported on this system.\n"
- msgstr "Antud ssteem ei toeta aadresside kustutamist\n"
-
--#: ../ifconfig.c:947
-+#: ../ifconfig.c:920
-+msgid "ifconfig: Cannot set address for this protocol family.\n"
-+msgstr "Ei oska seada aadresse selle aadressiperekonna jaoks\n"
-+
-+#: ../ifconfig.c:946
- msgid "No support for ECONET on this system.\n"
- msgstr "Antud ssteem ei toeta ECONET aadressiperekonda\n"
-
--#: ../ifconfig.c:955
-+#: ../ifconfig.c:954
- #, c-format
- msgid "Don't know how to set addresses for family %d.\n"
- msgstr "Ei oska seada aadresse aadressiperekonna %d jaoks\n"
-
--#: ../netstat.c:429
-+#: ../netstat.c:430
- #, c-format
- msgid ""
- "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n"
- msgstr ""
- "(\"-p\" jaoks ei saanud infot lugeda: geteuid()=%d, aga vaja oleks root'u)\n"
-
--#: ../netstat.c:433
-+#: ../netstat.c:434
- msgid ""
- "(Not all processes could be identified, non-owned process info\n"
- " will not be shown, you would have to be root to see it all.)\n"
-@@ -592,27 +604,27 @@ msgstr ""
- "(Mnesid protsesse ei saanud identifitseerida, teiste kasutajate\n"
- "info lugemiseks peab olema root)\n"
-
--#: ../netstat.c:440 ../netstat.c:1171 ../netstat.c:1248
-+#: ../netstat.c:441 ../netstat.c:1176 ../netstat.c:1253
- msgid "LISTENING"
- msgstr "LISTENING"
-
--#: ../netstat.c:441
-+#: ../netstat.c:442
- msgid "CONN SENT"
- msgstr "CONN SENT"
-
--#: ../netstat.c:442 ../netstat.c:1250
-+#: ../netstat.c:443 ../netstat.c:1255
- msgid "DISC SENT"
- msgstr "DISC SENT"
-
--#: ../netstat.c:443 ../netstat.c:510 ../netstat.c:889 ../netstat.c:1251
-+#: ../netstat.c:444 ../netstat.c:511 ../netstat.c:894 ../netstat.c:1256
- msgid "ESTABLISHED"
- msgstr "ESTABLISHED"
-
--#: ../netstat.c:465
-+#: ../netstat.c:466
- msgid "Active NET/ROM sockets\n"
- msgstr "Aktiivsed NET/ROM soklid\n"
-
--#: ../netstat.c:466
-+#: ../netstat.c:467
- msgid ""
- "User Dest Source Device State Vr/Vs Send-Q "
- "Recv-Q\n"
-@@ -620,182 +632,182 @@ msgstr ""
- "Kasutaja Sihtpunkt Lhtepunkt Liides Olek Vr/Vs SaatJrk "
- "VvJrk\n"
-
--#: ../netstat.c:476 ../netstat.c:1290
-+#: ../netstat.c:477 ../netstat.c:1295
- #, c-format
- msgid "Problem reading data from %s\n"
- msgstr "Probleem andmete lugemisel failist %s\n"
-
--#: ../netstat.c:511
-+#: ../netstat.c:512
- msgid "SYN_SENT"
- msgstr "SYN_SENT"
-
--#: ../netstat.c:512
-+#: ../netstat.c:513
- msgid "SYN_RECV"
- msgstr "SYN_RECV"
-
--#: ../netstat.c:513
-+#: ../netstat.c:514
- msgid "FIN_WAIT1"
- msgstr "FIN_WAIT1"
-
--#: ../netstat.c:514
-+#: ../netstat.c:515
- msgid "FIN_WAIT2"
- msgstr "FIN_WAIT2"
-
--#: ../netstat.c:515
-+#: ../netstat.c:516
- msgid "TIME_WAIT"
- msgstr "TIME_WAIT"
-
--#: ../netstat.c:516
-+#: ../netstat.c:517
- msgid "CLOSE"
- msgstr "CLOSE"
-
--#: ../netstat.c:517
-+#: ../netstat.c:518
- msgid "CLOSE_WAIT"
- msgstr "CLOSE_WAIT"
-
--#: ../netstat.c:518
-+#: ../netstat.c:519
- msgid "LAST_ACK"
- msgstr "LAST_ACK"
-
--#: ../netstat.c:519
-+#: ../netstat.c:520
- msgid "LISTEN"
- msgstr "LISTEN"
-
--#: ../netstat.c:520
-+#: ../netstat.c:521
- msgid "CLOSING"
- msgstr "CLOSING"
-
--#: ../netstat.c:587
-+#: ../netstat.c:592
- #, c-format
- msgid "warning, got bogus igmp6 line %d.\n"
- msgstr "Hoiatus - sain imeliku igmp6 rea (nr. %d)\n"
-
--#: ../netstat.c:592 ../netstat.c:630 ../netstat.c:751 ../netstat.c:883
--#: ../netstat.c:1014 ../netstat.c:1019
-+#: ../netstat.c:597 ../netstat.c:635 ../netstat.c:756 ../netstat.c:888
-+#: ../netstat.c:1019 ../netstat.c:1024
- #, c-format
- msgid "netstat: unsupported address family %d !\n"
- msgstr "netstat: aadressiperekonda %d ei toetata\n"
-
--#: ../netstat.c:605 ../netstat.c:610 ../netstat.c:618 ../netstat.c:625
-+#: ../netstat.c:610 ../netstat.c:615 ../netstat.c:623 ../netstat.c:630
- #, c-format
- msgid "warning, got bogus igmp line %d.\n"
- msgstr "Hoiatus - sain imeliku igmp rea (nr. %d)\n"
-
--#: ../netstat.c:668
-+#: ../netstat.c:673
- msgid "Active X.25 sockets\n"
- msgstr "Aktiivsed X.25 soklid\n"
-
- #. IMHO, Vr/Vs is not very usefull --SF
--#: ../netstat.c:670
-+#: ../netstat.c:675
- msgid ""
- "Dest Source Device LCI State Vr/Vs Send-Q "
- "Recv-Q\n"
- msgstr ""
- "Sihtpunkt Lhtepunkt Liides LCI Olek Vr/Vs SaatJrk VvJrk\n"
-
--#: ../netstat.c:747
-+#: ../netstat.c:752
- msgid "warning, got bogus tcp line.\n"
- msgstr "Hoiatus - sain imeliku tcp rea\n"
-
--#: ../netstat.c:788 ../netstat.c:938 ../netstat.c:1057
-+#: ../netstat.c:793 ../netstat.c:943 ../netstat.c:1062
- #, c-format
- msgid "off (0.00/%ld/%d)"
- msgstr "eiki ((0.00/%ld/%d)"
-
--#: ../netstat.c:792
-+#: ../netstat.c:797
- #, c-format
- msgid "on (%2.2f/%ld/%d)"
- msgstr "kib (%2.2f/%ld/%d)"
-
--#: ../netstat.c:797
-+#: ../netstat.c:802
- #, c-format
- msgid "keepalive (%2.2f/%ld/%d)"
- msgstr "keepalive (%2.2f/%ld/%d)"
-
--#: ../netstat.c:802
-+#: ../netstat.c:807
- #, c-format
- msgid "timewait (%2.2f/%ld/%d)"
- msgstr "timewait (%2.2f/%ld/%d)"
-
--#: ../netstat.c:807 ../netstat.c:947 ../netstat.c:1067
-+#: ../netstat.c:812 ../netstat.c:952 ../netstat.c:1072
- #, c-format
- msgid "unkn-%d (%2.2f/%ld/%d)"
- msgstr "eitea-%d (%2.2f/%ld/%d)"
-
--#: ../netstat.c:879
-+#: ../netstat.c:884
- msgid "warning, got bogus udp line.\n"
- msgstr "Hoiatus - sain imeliku udp rea\n"
-
--#: ../netstat.c:897 ../netstat.c:1157 ../netstat.c:1190
-+#: ../netstat.c:902 ../netstat.c:1162 ../netstat.c:1195
- msgid "UNKNOWN"
- msgstr "TUNDMATU"
-
--#: ../netstat.c:943 ../netstat.c:1062
-+#: ../netstat.c:948 ../netstat.c:1067
- #, c-format
- msgid "on%d (%2.2f/%ld/%d)"
- msgstr "kib-%d (%2.2f/%ld/%d)"
-
--#: ../netstat.c:1028
-+#: ../netstat.c:1033
- msgid "warning, got bogus raw line.\n"
- msgstr "Hoiatus - sain imeliku raw rea\n"
-
--#: ../netstat.c:1110
-+#: ../netstat.c:1115
- msgid "warning, got bogus unix line.\n"
- msgstr "Hoiatus - sain imeliku unix rea\n"
-
--#: ../netstat.c:1137
-+#: ../netstat.c:1142
- msgid "STREAM"
- msgstr "STREAM"
-
--#: ../netstat.c:1141
-+#: ../netstat.c:1146
- msgid "DGRAM"
- msgstr "DGRAM"
-
--#: ../netstat.c:1145
-+#: ../netstat.c:1150
- msgid "RAW"
- msgstr "RAW"
-
--#: ../netstat.c:1149
-+#: ../netstat.c:1154
- msgid "RDM"
- msgstr "RDM"
-
--#: ../netstat.c:1153
-+#: ../netstat.c:1158
- msgid "SEQPACKET"
- msgstr "SEQPACKET"
-
--#: ../netstat.c:1162
-+#: ../netstat.c:1167
- msgid "FREE"
- msgstr "VABA"
-
--#: ../netstat.c:1178
-+#: ../netstat.c:1183
- msgid "CONNECTING"
- msgstr "HENDUMAS"
-
--#: ../netstat.c:1182
-+#: ../netstat.c:1187
- msgid "CONNECTED"
- msgstr "HENDATUD"
-
--#: ../netstat.c:1186
-+#: ../netstat.c:1191
- msgid "DISCONNECTING"
- msgstr "LAHTIHENDUMAS"
-
--#: ../netstat.c:1217
-+#: ../netstat.c:1222
- msgid "Active UNIX domain sockets "
- msgstr "Aktiivsed UNIX domeeni soklid "
-
--#: ../netstat.c:1219 ../netstat.c:1729
-+#: ../netstat.c:1224 ../netstat.c:1735
- msgid "(servers and established)"
- msgstr "(serverid ja hendatud)"
-
--#: ../netstat.c:1222 ../netstat.c:1732
-+#: ../netstat.c:1227 ../netstat.c:1738
- msgid "(only servers)"
- msgstr "(ainult serverid)"
-
--#: ../netstat.c:1224 ../netstat.c:1734
-+#: ../netstat.c:1229 ../netstat.c:1740
- msgid "(w/o servers)"
- msgstr "(ilma serveriteta)"
-
--#: ../netstat.c:1227
-+#: ../netstat.c:1232
- msgid ""
- "\n"
- "Proto RefCnt Flags Type State I-Node"
-@@ -803,32 +815,32 @@ msgstr ""
- "\n"
- "Proto Mitu Lipud Tp Olek I-kirje "
-
--#: ../netstat.c:1229
-+#: ../netstat.c:1234
- msgid " Path\n"
- msgstr "Tee\n"
-
--#: ../netstat.c:1249
-+#: ../netstat.c:1254
- msgid "SABM SENT"
- msgstr "SABM SENT"
-
--#: ../netstat.c:1252
-+#: ../netstat.c:1257
- msgid "RECOVERY"
- msgstr "RECOVERY"
-
--#: ../netstat.c:1266
-+#: ../netstat.c:1271
- msgid "Active AX.25 sockets\n"
- msgstr "Aktiivsed AX.25 soklid\n"
-
--#: ../netstat.c:1267
-+#: ../netstat.c:1272
- msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n"
- msgstr "Sihtpunkt Lhtepunkt Liides Olek Vr/Vs SaatJrk VvJrk\n"
-
--#: ../netstat.c:1310
-+#: ../netstat.c:1315
- #, c-format
- msgid "problem reading data from %s\n"
- msgstr "Probleem andmete lugemisel failist %s\n"
-
--#: ../netstat.c:1361
-+#: ../netstat.c:1366
- msgid ""
- "Active IPX sockets\n"
- "Proto Recv-Q Send-Q Local Address Foreign Address "
-@@ -838,23 +850,23 @@ msgstr ""
- "Proto VvJrk SaatJrk Kohalik aadress Vline aadress "
- "Olek "
-
--#: ../netstat.c:1363
-+#: ../netstat.c:1368
- msgid " User"
- msgstr " Kasutaja"
-
--#: ../netstat.c:1397
-+#: ../netstat.c:1402
- msgid "ESTAB"
- msgstr "ESTAB"
-
--#: ../netstat.c:1405
-+#: ../netstat.c:1410
- msgid "UNK."
- msgstr "UNK."
-
--#: ../netstat.c:1443
-+#: ../netstat.c:1448
- msgid "Kernel Interface table\n"
- msgstr "Tuuma liideste tabel\n"
-
--#: ../netstat.c:1447
-+#: ../netstat.c:1452
- msgid ""
- "Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
- "Flg\n"
-@@ -862,11 +874,11 @@ msgstr ""
- "Liides MTU Meetr RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
- "Lip\n"
-
--#: ../netstat.c:1451
-+#: ../netstat.c:1456
- msgid "missing interface information"
- msgstr "Puudulik informatsioon liideste kohta"
-
--#: ../netstat.c:1474
-+#: ../netstat.c:1479
- msgid ""
- "usage: netstat [-veenNcCF] [<Af>] -r netstat "
- "{-V|--version|-h|--help}\n"
-@@ -874,11 +886,11 @@ msgstr ""
- "Kasutamine: netstat [-veenNcCF] [<Af>] -r\n"
- " netstat {-V|--version|-h|--help}\n"
-
--#: ../netstat.c:1475
-+#: ../netstat.c:1480
- msgid " netstat [-vnNcaeol] [<Socket> ...]\n"
- msgstr " netstat [-vnNcaeol] [<Sokkel> ...]\n"
-
--#: ../netstat.c:1476
-+#: ../netstat.c:1481
- msgid ""
- " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n"
- "\n"
-@@ -886,25 +898,25 @@ msgstr ""
- " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n"
- "\n"
-
--#: ../netstat.c:1478
-+#: ../netstat.c:1483
- msgid " -r, --route display routing table\n"
- msgstr " -r, --route ruutingutabeli nitamine\n"
-
--#: ../netstat.c:1479
-+#: ../netstat.c:1484
- msgid " -i, --interfaces display interface table\n"
- msgstr " -i, --interfaces liideste tabeli nitamine\n"
-
--#: ../netstat.c:1480
-+#: ../netstat.c:1485
- msgid " -g, --groups display multicast group memberships\n"
- msgstr " -g, --groups multiedastuse gruppide nitamine\n"
-
--#: ../netstat.c:1481
-+#: ../netstat.c:1486
- msgid ""
- " -s, --statistics display networking statistics (like SNMP)\n"
- msgstr ""
- " -s, --statistics vrgu statistika nitamine (SNMP stiilis)\n"
-
--#: ../netstat.c:1483
-+#: ../netstat.c:1488
- msgid ""
- " -M, --masquerade display masqueraded connections\n"
- "\n"
-@@ -912,36 +924,32 @@ msgstr ""
- " -M, --masquerade maskeeritavate henduste nitamine\n"
- "\n"
-
--#: ../netstat.c:1486 ../route.c:86
--msgid " -n, --numeric dont resolve names\n"
--msgstr " -n, --numeric mitte lahendada numbreid nimedeks\n"
--
--#: ../netstat.c:1487
--msgid " --numeric-hosts dont resolve host names\n"
-+#: ../netstat.c:1492
-+msgid " --numeric-hosts don't resolve host names\n"
- msgstr " --numeric-hosts mitte lahendada hostinimesid\n"
-
--#: ../netstat.c:1488
--msgid " --numeric-ports dont resolve port names\n"
-+#: ../netstat.c:1493
-+msgid " --numeric-ports don't resolve port names\n"
- msgstr " --numeric-ports mitte lahendada pordinimesid\n"
-
--#: ../netstat.c:1489
--msgid " --numeric-users dont resolve user names\n"
-+#: ../netstat.c:1494
-+msgid " --numeric-users don't resolve user names\n"
- msgstr " --numeric-users mitte lahendada kasutajanimesid\n"
-
--#: ../netstat.c:1490
-+#: ../netstat.c:1495
- msgid " -N, --symbolic resolve hardware names\n"
- msgstr " -N, --symbolic lahendada riistvara aadressid\n"
-
--#: ../netstat.c:1491 ../route.c:87
-+#: ../netstat.c:1496 ../route.c:88
- msgid " -e, --extend display other/more information\n"
- msgstr " -e, --extend muu info/lisainfo nitamine\n"
-
--#: ../netstat.c:1492
-+#: ../netstat.c:1497
- msgid " -p, --programs display PID/Program name for sockets\n"
- msgstr ""
- " -p, --programs soklite kohta PID/protsessi nime nitamine\n"
-
--#: ../netstat.c:1493
-+#: ../netstat.c:1498
- msgid ""
- " -c, --continuous continuous listing\n"
- "\n"
-@@ -949,22 +957,22 @@ msgstr ""
- " -c, --continuous pidevalt uuenev nimekiri\n"
- "\n"
-
--#: ../netstat.c:1494
-+#: ../netstat.c:1499
- msgid " -l, --listening display listening server sockets\n"
- msgstr " -l, --listening kuulavate serversoklite nitamine\n"
-
--#: ../netstat.c:1495
-+#: ../netstat.c:1500
- msgid ""
- " -a, --all, --listening display all sockets (default: connected)\n"
- msgstr ""
- " -a, --all, --listening kigi soklite nitamine (vaikimisi "
- "hendatud)\n"
-
--#: ../netstat.c:1496
-+#: ../netstat.c:1501
- msgid " -o, --timers display timers\n"
- msgstr " -o, --timers taimerite nitamine\n"
-
--#: ../netstat.c:1497 ../route.c:88
-+#: ../netstat.c:1502 ../route.c:89
- msgid ""
- " -F, --fib display Forwarding Information Base "
- "(default)\n"
-@@ -972,7 +980,7 @@ msgstr ""
- " -F, --fib ldiste ruutingutabelite nitamine "
- "(vaikimisi)\n"
-
--#: ../netstat.c:1498 ../route.c:89
-+#: ../netstat.c:1503 ../route.c:90
- msgid ""
- " -C, --cache display routing cache instead of FIB\n"
- "\n"
-@@ -981,7 +989,7 @@ msgstr ""
- "nitamine\n"
- "\n"
-
--#: ../netstat.c:1500
-+#: ../netstat.c:1505
- msgid ""
- " <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx "
- "--netrom\n"
-@@ -989,20 +997,19 @@ msgstr ""
- " <Sokkel>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx "
- "--netrom\n"
-
--#: ../netstat.c:1501 ../route.c:91
--#, c-format
--msgid " <AF>=Use '-A <af>' or '--<af>' Default: %s\n"
--msgstr " <AF>=kasutage '-A <af>' vi '--<af>' vaikimisi: %s\n"
-+#: ../netstat.c:1506 ../route.c:92
-+msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n"
-+msgstr " <AF>=kasutage '-A <af>' vi '--<af>'; vaikimisi: %s\n"
-
--#: ../netstat.c:1502 ../route.c:92
-+#: ../netstat.c:1507 ../route.c:93
- msgid " List of possible address families (which support routing):\n"
- msgstr " Vimalike ruutingu toetavate aadressiperekondade nimekiri:\n"
-
--#: ../netstat.c:1726
-+#: ../netstat.c:1732
- msgid "Active Internet connections "
- msgstr "Aktiivsed internetihendused "
-
--#: ../netstat.c:1736
-+#: ../netstat.c:1742
- msgid ""
- "\n"
- "Proto Recv-Q Send-Q Local Address Foreign Address State "
-@@ -1012,77 +1019,77 @@ msgstr ""
- "Proto VvJrk SaatJrk Kohalik aadress Vline aadress Olek "
- " "
-
--#: ../netstat.c:1738
-+#: ../netstat.c:1744
- msgid " User Inode "
- msgstr " Kasutaja I-kirje "
-
--#: ../netstat.c:1741
-+#: ../netstat.c:1747
- msgid " Timer"
- msgstr " Taimer"
-
--#: ../netstat.c:1771
-+#: ../netstat.c:1777
- msgid "IPv4 Group Memberships\n"
- msgstr "IPv4 grupikuuluvused\n"
-
--#: ../netstat.c:1772
-+#: ../netstat.c:1778
- msgid "Interface RefCnt Group\n"
- msgstr "Liides Mitu Grupp\n"
-
--#: ../rarp.c:43
-+#: ../rarp.c:44
- msgid "This kernel does not support RARP.\n"
- msgstr "rarp: tuum ei toeta RARP'i\n"
-
--#: ../rarp.c:82
-+#: ../rarp.c:83
- #, c-format
- msgid "no RARP entry for %s.\n"
- msgstr "rarp: %s jaoks pole RARP kirjet\n"
-
--#: ../rarp.c:95
-+#: ../rarp.c:96
- #, c-format
- msgid "%s: bad hardware address\n"
- msgstr "rarp: vigane riistvaraline aadress %s\n"
-
--#: ../rarp.c:127
-+#: ../rarp.c:128
- #, c-format
- msgid "rarp: cannot open file %s:%s.\n"
- msgstr "rarp: ei saa avada faili %s:%s\n"
-
--#: ../rarp.c:139
-+#: ../rarp.c:140
- #, c-format
- msgid "rarp: format error at %s:%u\n"
- msgstr "rarp: vorminguviga failis %s real %u\n"
-
--#: ../rarp.c:143 ../rarp.c:287
-+#: ../rarp.c:144 ../rarp.c:289
- #, c-format
- msgid "rarp: %s: unknown host\n"
- msgstr "rarp: tundmatu host %s\n"
-
--#: ../rarp.c:146
-+#: ../rarp.c:147
- #, c-format
- msgid "rarp: cannot set entry from %s:%u\n"
- msgstr "rarp: ei saa kehtestada kirjet failist %s realt %u\n"
-
--#: ../rarp.c:175
-+#: ../rarp.c:176
- msgid "Usage: rarp -a list entries in cache.\n"
- msgstr ""
- "Kasutamine:\n"
- " rarp -a puhvris olevate kirjete vaatamine\n"
-
--#: ../rarp.c:176
-+#: ../rarp.c:177
- msgid " rarp -d <hostname> delete entry from cache.\n"
- msgstr " rarp -d <hosti nimi> kirje kustutamine puhvrist\n"
-
--#: ../rarp.c:177
-+#: ../rarp.c:178
- msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n"
- msgstr " rarp [<HW>] -s <hosti nimi> <hwaddr> kirje lisamine puhvrisse\n"
-
--#: ../rarp.c:178
-+#: ../rarp.c:179
- msgid ""
- " rarp -f add entries from /etc/ethers.\n"
- msgstr ""
- " rarp -f kirjete lisamine failist /etc/ethers\n"
-
--#: ../rarp.c:179
-+#: ../rarp.c:180
- msgid ""
- " rarp -V display program version.\n"
- "\n"
-@@ -1090,24 +1097,24 @@ msgstr ""
- " rarp -V programmi versiooni nitamine\n"
- "\n"
-
--#: ../rarp.c:236
-+#: ../rarp.c:238
- #, c-format
- msgid "%s: illegal option mix.\n"
- msgstr "%s: lubamatu vtmete kombinatsioon\n"
-
--#: ../rarp.c:267
-+#: ../rarp.c:269
- #, c-format
- msgid "rarp: %s: unknown hardware type.\n"
- msgstr "rarp: tundmatu riistvara tp %s\n"
-
--#: ../route.c:79
-+#: ../route.c:80
- msgid ""
- "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n"
- msgstr ""
- "Kasutamine:\n"
- " route [-nNvee] [-FC] [<AF>] Tuuma ruutingutabeli nitamine\n"
-
--#: ../route.c:80
-+#: ../route.c:81
- msgid ""
- " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n"
- "\n"
-@@ -1115,7 +1122,7 @@ msgstr ""
- " route [-v] [-FC] {add|del|flush} ... Tuuma ruutingutabeli muutmine\n"
- "\n"
-
--#: ../route.c:82
-+#: ../route.c:83
- msgid ""
- " route {-h|--help} [<AF>] Detailed usage syntax for "
- "specified AF.\n"
-@@ -1123,7 +1130,7 @@ msgstr ""
- " route {-h|--help} [<AF>] Detailne sntaks perekonna AF "
- "jaoks\n"
-
--#: ../route.c:83
-+#: ../route.c:84
- msgid ""
- " route {-V|--version} Display version/author and "
- "exit.\n"
-@@ -1149,25 +1156,25 @@ msgstr " plipconfig -V | --version\n"
- msgid "%s\tnibble %lu trigger %lu\n"
- msgstr "%s\tnibble %lu trigger %lu\n"
-
--#: ../iptunnel.c:84
-+#: ../iptunnel.c:85
- msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n"
- msgstr "Kasutamine: iptunnel { add | change | del | show } [ NIMI ]\n"
-
--#: ../iptunnel.c:85
-+#: ../iptunnel.c:86
- msgid ""
- " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n"
- msgstr ""
- " [ mode { ipip | gre | sit } ] [ remote AADR ] [ local AADR ]\n"
-
--#: ../iptunnel.c:86
-+#: ../iptunnel.c:87
- msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n"
- msgstr " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n"
-
--#: ../iptunnel.c:87
-+#: ../iptunnel.c:88
- msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n"
- msgstr " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev LIIDES ]\n"
-
--#: ../iptunnel.c:88
-+#: ../iptunnel.c:89
- msgid ""
- " iptunnel -V | --version\n"
- "\n"
-@@ -1175,83 +1182,83 @@ msgstr ""
- " iptunnel -V | --version\n"
- "\n"
-
--#: ../iptunnel.c:89
-+#: ../iptunnel.c:90
- msgid "Where: NAME := STRING\n"
- msgstr "Kus: NIMI := STRING\n"
-
--#: ../iptunnel.c:90
-+#: ../iptunnel.c:91
- msgid " ADDR := { IP_ADDRESS | any }\n"
- msgstr " AADR := { IP_AADRESS | any }\n"
-
--#: ../iptunnel.c:91
-+#: ../iptunnel.c:92
- msgid " TOS := { NUMBER | inherit }\n"
- msgstr " TOS := { ARV | inherit }\n"
-
--#: ../iptunnel.c:92
-+#: ../iptunnel.c:93
- msgid " TTL := { 1..255 | inherit }\n"
- msgstr " TTL := { 1..255 | inherit }\n"
-
--#: ../iptunnel.c:93
-+#: ../iptunnel.c:94
- msgid " KEY := { DOTTED_QUAD | NUMBER }\n"
- msgstr ""
- " KEY := { PUNKTIDEGA_ARVUNELIK | ARV }\n"
- " LIIDES := FSILISE_LIIDESE_NIMI\n"
-
--#: ../iptunnel.c:331
-+#: ../iptunnel.c:332
- msgid "Keys are not allowed with ipip and sit.\n"
- msgstr "ipip ja sit juures ei ole vtmed lubatud\n"
-
--#: ../iptunnel.c:351
-+#: ../iptunnel.c:352
- msgid "Broadcast tunnel requires a source address.\n"
- msgstr "Leviedastusega tunnel vajab lhteaadressi\n"
-
--#: ../iptunnel.c:366
-+#: ../iptunnel.c:367
- msgid "ttl != 0 and noptmudisc are incompatible\n"
- msgstr "ttl != 0 ning noptmudisc ei sobi kokku\n"
-
--#: ../iptunnel.c:378
-+#: ../iptunnel.c:379
- msgid "cannot determine tunnel mode (ipip, gre or sit)\n"
- msgstr "Ei suuda mrata tunneli moodi (ipip, gre vi sit)\n"
-
--#: ../iptunnel.c:416
-+#: ../iptunnel.c:417
- #, c-format
- msgid "%s: %s/ip remote %s local %s "
- msgstr "%s: %s/ip teises otsas %s siin %s "
-
--#: ../iptunnel.c:420
-+#: ../iptunnel.c:421
- msgid "unknown"
- msgstr "tundmatu"
-
--#: ../iptunnel.c:452
-+#: ../iptunnel.c:453
- msgid " Drop packets out of sequence.\n"
- msgstr " Jrjekorravlised paketid visatakse minema\n"
-
--#: ../iptunnel.c:454
-+#: ../iptunnel.c:455
- msgid " Checksum in received packet is required.\n"
- msgstr " Vastuvetavates pakettides on kontrollsumma kohustuslik\n"
-
--#: ../iptunnel.c:456
-+#: ../iptunnel.c:457
- msgid " Sequence packets on output.\n"
- msgstr " Vljuvad paketid varustatakse jrjekorranumbritega\n"
-
--#: ../iptunnel.c:458
-+#: ../iptunnel.c:459
- msgid " Checksum output packets.\n"
- msgstr " Vljuvad paketid varustatakse kontrollsummaga\n"
-
--#: ../iptunnel.c:486
-+#: ../iptunnel.c:487
- msgid "Wrong format of /proc/net/dev. Sorry.\n"
- msgstr "/proc/net/dev on vales formaadis. Vale tuuma versioon?\n"
-
--#: ../iptunnel.c:499
-+#: ../iptunnel.c:500
- #, c-format
- msgid "Failed to get type of [%s]\n"
- msgstr "Ei suutnud kindlaks teha liidese %s tpi\n"
-
--#: ../iptunnel.c:515
-+#: ../iptunnel.c:516
- msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n"
- msgstr "RX: Pakette Baite Vigu KSumVigu JrkVigu Levipakette\n"
-
--#: ../iptunnel.c:518
-+#: ../iptunnel.c:519
- msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n"
- msgstr "TX: Pakette Baite Vigu DeadLoop EiRuudi MluOtsas\n"
-
-@@ -1972,15 +1979,15 @@ msgstr "rresolve: toetuseta aadressiperekond %d\n"
- msgid "[UNKNOWN]"
- msgstr "[TUNDMATU]"
-
--#: ../lib/inet6_gr.c:79
-+#: ../lib/inet6_gr.c:71
- msgid "INET6 (IPv6) not configured in this system.\n"
- msgstr "INET6 (IPv6) pole antud ssteemis konfigureeritud\n"
-
--#: ../lib/inet6_gr.c:82
-+#: ../lib/inet6_gr.c:74
- msgid "Kernel IPv6 routing table\n"
- msgstr "Tuuma IPv6 ruutingutabel\n"
-
--#: ../lib/inet6_gr.c:84
-+#: ../lib/inet6_gr.c:76
- msgid ""
- "Destination Next Hop "
- " Flags Metric Ref Use Iface\n"
-@@ -1988,11 +1995,11 @@ msgstr ""
- "Sihtpunkt Jrgmine samm "
- " Lipud Meetr Mitu Kasut Liides\n"
-
--#: ../lib/inet6_gr.c:158
-+#: ../lib/inet6_gr.c:150
- msgid "Kernel IPv6 Neighbour Cache\n"
- msgstr "Tuuma IPv6 naabrite puhver\n"
-
--#: ../lib/inet6_gr.c:161
-+#: ../lib/inet6_gr.c:153
- msgid ""
- "Neighbour HW Address Iface Flags "
- "Ref State\n"
-@@ -2000,7 +2007,7 @@ msgstr ""
- "Naaber HW Aadress Liides Lipud "
- "Mitu Olek\n"
-
--#: ../lib/inet6_gr.c:165
-+#: ../lib/inet6_gr.c:157
- msgid ""
- "Neighbour HW Address Iface Flags "
- "Ref State Stale(sec) Delete(sec)\n"
-@@ -2538,29 +2545,29 @@ msgstr "iptunnel: %s on vigane IPv4 aadress\n"
- msgid "ip: argument is wrong: %s\n"
- msgstr "iptunnel: vale argument %s\n"
-
--#: ../ipmaddr.c:58
-+#: ../ipmaddr.c:61
- msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n"
- msgstr "Kasutamine: ipmaddr [ add | del ] MULTIAADR dev STRING\n"
-
--#: ../ipmaddr.c:59
-+#: ../ipmaddr.c:62
- msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n"
- msgstr " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n"
-
--#: ../ipmaddr.c:60
-+#: ../ipmaddr.c:63
- msgid " ipmaddr -V | -version\n"
- msgstr " ipmaddr -V | -version\n"
-
--#: ../ipmaddr.c:260
-+#: ../ipmaddr.c:263
- #, c-format
- msgid "family %d "
- msgstr "perekond %d "
-
--#: ../ipmaddr.c:269
-+#: ../ipmaddr.c:272
- #, c-format
- msgid " users %d"
- msgstr " kasutajaid %d"
-
--#: ../ipmaddr.c:355
-+#: ../ipmaddr.c:358
- msgid "Cannot create socket"
- msgstr "Ei saa avada soklit"
-
-diff --git a/po/fr.po b/po/fr.po
-index e8e7542..e4e8245 100644
---- a/po/fr.po
-+++ b/po/fr.po
-@@ -9,7 +9,7 @@ msgstr ""
- "Last-Translator: J.M.Vansteene <vanstee@worldnet.fr>\n"
- "Language-Team:\n"
- "MIME-Version: 1.0\n"
--"Content-Type: text/plain; charset=iso8859-1\n"
-+"Content-Type: text/plain; charset=iso-8859-1\n"
- "Content-Transfer-Encoding: 8bit\n"
-
- #: ../arp.c:110 ../arp.c:269
-@@ -59,8 +59,12 @@ msgid "arp: cannot set entry on line %u of etherfile %s !\n"
- msgstr "arp: ne peut dfinir l'entre en ligne %u du fichier ether %s !\n"
-
- #: ../arp.c:437
--msgid "Address\t\t\tHWtype\tHWaddress\t Flags Mask\t\t Iface\n"
--msgstr "Adresse\t\t\tTypeMap\tAdresseMat\t Indicateurs\t\t Iface\n"
-+msgid ""
-+"Address HWtype HWaddress Flags Mask "
-+"Iface\n"
-+msgstr ""
-+"Adresse TypeMap AdresseMat Indicateurs "
-+"Iface\n"
-
- #: ../arp.c:467
- msgid "(incomplete)"
-diff --git a/po/net-tools.pot b/po/net-tools.pot
-index 0231aac..cdeccc9 100644
---- a/po/net-tools.pot
-+++ b/po/net-tools.pot
-@@ -1,263 +1,285 @@
- # SOME DESCRIPTIVE TITLE.
--# Copyright (C) YEAR Free Software Foundation, Inc.
-+# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
-+# This file is distributed under the same license as the PACKAGE package.
- # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
- #
- #, fuzzy
- msgid ""
- msgstr ""
- "Project-Id-Version: PACKAGE VERSION\n"
--"POT-Creation-Date: 2001-04-15 15:40+0100\n"
-+"Report-Msgid-Bugs-To: \n"
-+"POT-Creation-Date: 2005-05-16 05:18+0200\n"
- "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
- "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
- "Language-Team: LANGUAGE <LL@li.org>\n"
- "MIME-Version: 1.0\n"
- "Content-Type: text/plain; charset=CHARSET\n"
--"Content-Transfer-Encoding: ENCODING\n"
-+"Content-Transfer-Encoding: 8bit\n"
-
--#: ../arp.c:111 ../arp.c:270
-+#: ../arp.c:111 ../arp.c:276
-+#, c-format
- msgid "arp: need host name\n"
- msgstr ""
-
--#: ../arp.c:208 ../arp.c:222
-+#: ../arp.c:213 ../arp.c:228
- #, c-format
- msgid "No ARP entry for %s\n"
- msgstr ""
-
--#: ../arp.c:240
-+#: ../arp.c:246
- #, c-format
- msgid "arp: cant get HW-Address for `%s': %s.\n"
- msgstr ""
-
--#: ../arp.c:244
-+#: ../arp.c:250
-+#, c-format
- msgid "arp: protocol type mismatch.\n"
- msgstr ""
-
--#: ../arp.c:253
-+#: ../arp.c:259
- #, c-format
- msgid "arp: device `%s' has HW address %s `%s'.\n"
- msgstr ""
-
--#: ../arp.c:283
-+#: ../arp.c:289
-+#, c-format
- msgid "arp: need hardware address\n"
- msgstr ""
-
--#: ../arp.c:291
-+#: ../arp.c:297
-+#, c-format
- msgid "arp: invalid hardware address\n"
- msgstr ""
-
--#: ../arp.c:388
-+#: ../arp.c:394
- #, c-format
- msgid "arp: cannot open etherfile %s !\n"
- msgstr ""
-
--#: ../arp.c:404
-+#: ../arp.c:410
- #, c-format
- msgid "arp: format error on line %u of etherfile %s !\n"
- msgstr ""
-
--#: ../arp.c:417
-+#: ../arp.c:423
- #, c-format
- msgid "arp: cannot set entry on line %u of etherfile %s !\n"
- msgstr ""
-
--#: ../arp.c:438
-+#: ../arp.c:444
-+#, c-format
- msgid ""
- "Address HWtype HWaddress Flags Mask "
- "Iface\n"
- msgstr ""
-
--#: ../arp.c:468
-+#: ../arp.c:472
-+msgid "<from_interface>"
-+msgstr ""
-+
-+#: ../arp.c:474
- msgid "(incomplete)"
- msgstr ""
-
--#: ../arp.c:485
-+#: ../arp.c:491
- #, c-format
- msgid "%s (%s) at "
- msgstr ""
-
--#: ../arp.c:491
-+#: ../arp.c:497
-+#, c-format
- msgid "<incomplete> "
- msgstr ""
-
--#: ../arp.c:497
-+#: ../arp.c:503
- #, c-format
- msgid "netmask %s "
- msgstr ""
-
--#: ../arp.c:514
-+#: ../arp.c:520
- #, c-format
- msgid "on %s\n"
- msgstr ""
-
--#: ../arp.c:593
-+#: ../arp.c:599
- #, c-format
- msgid "Entries: %d\tSkipped: %d\tFound: %d\n"
- msgstr ""
-
--#: ../arp.c:597
-+#: ../arp.c:603
- #, c-format
- msgid "%s (%s) -- no entry\n"
- msgstr ""
-
--#: ../arp.c:599
-+#: ../arp.c:605
- #, c-format
- msgid "arp: in %d entries no match found.\n"
- msgstr ""
-
--#: ../arp.c:614
-+#: ../arp.c:620
-+#, c-format
- msgid ""
- "Usage:\n"
- " arp [-vn] [<HW>] [-i <if>] [-a] [<hostname>] <-Display ARP "
- "cache\n"
- msgstr ""
-
--#: ../arp.c:615
-+#: ../arp.c:621
-+#, c-format
- msgid ""
- " arp [-v] [-i <if>] -d <hostname> [pub][nopub] <-Delete ARP "
- "entry\n"
- msgstr ""
-
--#: ../arp.c:616
-+#: ../arp.c:622
-+#, c-format
- msgid ""
--" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
-+" arp [-vnD] [<HW>] [-i <if>] -f [<filename>] <-Add entry from "
- "file\n"
- msgstr ""
-
--#: ../arp.c:617
-+#: ../arp.c:623
-+#, c-format
- msgid ""
- " arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [temp][nopub] <-Add "
- "entry\n"
- msgstr ""
-
--#: ../arp.c:618
--msgid ""
--" arp [-v] [<HW>] [-i <if>] -s <hostname> <hwaddr> [netmask <nm>] pub "
--"<-''-\n"
--msgstr ""
--
--#: ../arp.c:619
-+#: ../arp.c:624
-+#, c-format
- msgid ""
- " arp [-v] [<HW>] [-i <if>] -Ds <hostname> <if> [netmask <nm>] pub "
- "<-''-\n"
- "\n"
- msgstr ""
-
--#: ../arp.c:621
-+#: ../arp.c:626
-+#, c-format
- msgid ""
- " -a display (all) hosts in alternative (BSD) "
- "style\n"
- msgstr ""
-
--#: ../arp.c:622
-+#: ../arp.c:627
-+#, c-format
- msgid " -s, --set set a new ARP entry\n"
- msgstr ""
-
--#: ../arp.c:623
-+#: ../arp.c:628
-+#, c-format
- msgid " -d, --delete delete a specified entry\n"
- msgstr ""
-
--#: ../arp.c:624 ../netstat.c:1490 ../route.c:86
-+#: ../arp.c:629 ../netstat.c:1503 ../route.c:86
-+#, c-format
- msgid " -v, --verbose be verbose\n"
- msgstr ""
-
--#: ../arp.c:625 ../netstat.c:1491 ../route.c:87
-+#: ../arp.c:630 ../netstat.c:1504 ../route.c:87
-+#, c-format
- msgid " -n, --numeric don't resolve names\n"
- msgstr ""
-
--#: ../arp.c:626
-+#: ../arp.c:631
-+#, c-format
- msgid ""
- " -i, --device specify network interface (e.g. eth0)\n"
- msgstr ""
-
--#: ../arp.c:627
-+#: ../arp.c:632
-+#, c-format
- msgid " -D, --use-device read <hwaddr> from given device\n"
- msgstr ""
-
--#: ../arp.c:628
-+#: ../arp.c:633
-+#, c-format
- msgid " -A, -p, --protocol specify protocol family\n"
- msgstr ""
-
--#: ../arp.c:629
-+#: ../arp.c:634
-+#, c-format
- msgid ""
--" -f, --file read new entries from file or from "
--"/etc/ethers\n"
-+" -f, --file read new entries from file or from /etc/"
-+"ethers\n"
- "\n"
- msgstr ""
-
--#: ../arp.c:631 ../rarp.c:182
-+#: ../arp.c:636 ../rarp.c:182
- #, c-format
- msgid " <HW>=Use '-H <hw>' to specify hardware address type. Default: %s\n"
- msgstr ""
-
--#: ../arp.c:632 ../rarp.c:183
-+#: ../arp.c:637 ../rarp.c:183
-+#, c-format
- msgid " List of possible hardware types (which support ARP):\n"
- msgstr ""
-
--#: ../arp.c:666 ../arp.c:751
-+#: ../arp.c:671 ../arp.c:756
- #, c-format
- msgid "%s: hardware type not supported!\n"
- msgstr ""
-
--#: ../arp.c:670
-+#: ../arp.c:675
- #, c-format
- msgid "%s: address family not supported!\n"
- msgstr ""
-
--#: ../arp.c:705
-+#: ../arp.c:710
-+#, c-format
- msgid "arp: -N not yet supported.\n"
- msgstr ""
-
--#: ../arp.c:715
-+#: ../arp.c:720
- #, c-format
- msgid "arp: %s: unknown address family.\n"
- msgstr ""
-
--#: ../arp.c:724
-+#: ../arp.c:729
- #, c-format
- msgid "arp: %s: unknown hardware type.\n"
- msgstr ""
-
--#: ../arp.c:743
-+#: ../arp.c:748
- #, c-format
- msgid "arp: %s: kernel only supports 'inet'.\n"
- msgstr ""
-
--#: ../arp.c:756
-+#: ../arp.c:761
- #, c-format
- msgid "arp: %s: hardware type without ARP support.\n"
- msgstr ""
-
--#: ../hostname.c:70
-+#: ../hostname.c:71
- #, c-format
- msgid "Setting nodename to `%s'\n"
- msgstr ""
-
--#: ../hostname.c:75
-+#: ../hostname.c:76
- #, c-format
- msgid "%s: you must be root to change the node name\n"
- msgstr ""
-
--#: ../hostname.c:78 ../hostname.c:98 ../hostname.c:117
-+#: ../hostname.c:79 ../hostname.c:100 ../hostname.c:118
- #, c-format
- msgid "%s: name too long\n"
- msgstr ""
-
--#: ../hostname.c:90
-+#: ../hostname.c:92
- #, c-format
- msgid "Setting hostname to `%s'\n"
- msgstr ""
-
--#: ../hostname.c:95
-+#: ../hostname.c:97
- #, c-format
- msgid "%s: you must be root to change the host name\n"
- msgstr ""
-
--#: ../hostname.c:109
-+#: ../hostname.c:110
- #, c-format
- msgid "Setting domainname to `%s'\n"
- msgstr ""
-
--#: ../hostname.c:114
-+#: ../hostname.c:115
- #, c-format
- msgid "%s: you must be root to change the domain name\n"
- msgstr ""
-@@ -282,83 +304,99 @@ msgstr ""
- msgid "Result: h_addr_list=`%s'\n"
- msgstr ""
-
--#: ../hostname.c:210
-+#: ../hostname.c:209
- #, c-format
- msgid "%s: can't open `%s'\n"
- msgstr ""
-
--#: ../hostname.c:224
-+#: ../hostname.c:223
-+#, c-format
- msgid "Usage: hostname [-v] {hostname|-F file} set hostname (from file)\n"
- msgstr ""
-
--#: ../hostname.c:225
-+#: ../hostname.c:224
-+#, c-format
- msgid ""
- " domainname [-v] {nisdomain|-F file} set NIS domainname (from file)\n"
- msgstr ""
-
--#: ../hostname.c:227
-+#: ../hostname.c:226
-+#, c-format
- msgid ""
- " nodename [-v] {nodename|-F file} set DECnet node name (from "
- "file)\n"
- msgstr ""
-
--#: ../hostname.c:229
-+#: ../hostname.c:228
-+#, c-format
- msgid " hostname [-v] [-d|-f|-s|-a|-i|-y|-n] display formatted name\n"
- msgstr ""
-
--#: ../hostname.c:230
-+#: ../hostname.c:229
-+#, c-format
- msgid ""
- " hostname [-v] display hostname\n"
- "\n"
- msgstr ""
-
--#: ../hostname.c:231
-+#: ../hostname.c:230
-+#, c-format
- msgid ""
- " hostname -V|--version|-h|--help print info and exit\n"
- "\n"
- msgstr ""
-
--#: ../hostname.c:232
-+#: ../hostname.c:231
-+#, c-format
- msgid ""
- " dnsdomainname=hostname -d, {yp,nis,}domainname=hostname -y\n"
- "\n"
- msgstr ""
-
--#: ../hostname.c:233
-+#: ../hostname.c:232
-+#, c-format
- msgid " -s, --short short host name\n"
- msgstr ""
-
--#: ../hostname.c:234
-+#: ../hostname.c:233
-+#, c-format
- msgid " -a, --alias alias names\n"
- msgstr ""
-
--#: ../hostname.c:235
-+#: ../hostname.c:234
-+#, c-format
- msgid " -i, --ip-address addresses for the hostname\n"
- msgstr ""
-
--#: ../hostname.c:236
-+#: ../hostname.c:235
-+#, c-format
- msgid " -f, --fqdn, --long long host name (FQDN)\n"
- msgstr ""
-
--#: ../hostname.c:237
-+#: ../hostname.c:236
-+#, c-format
- msgid " -d, --domain DNS domain name\n"
- msgstr ""
-
--#: ../hostname.c:238
-+#: ../hostname.c:237
-+#, c-format
- msgid " -y, --yp, --nis NIS/YP domainname\n"
- msgstr ""
-
--#: ../hostname.c:240
-+#: ../hostname.c:239
-+#, c-format
- msgid " -n, --node DECnet node name\n"
- msgstr ""
-
--#: ../hostname.c:242
-+#: ../hostname.c:241
-+#, c-format
- msgid ""
- " -F, --file read hostname or NIS domainname from given file\n"
- "\n"
- msgstr ""
-
--#: ../hostname.c:244
-+#: ../hostname.c:243
-+#, c-format
- msgid ""
- " This command can read or set the hostname or the NIS domainname. You can\n"
- " also read the DNS domain or the FQDN (fully qualified domain name).\n"
-@@ -373,12 +411,14 @@ msgid "%s: You can't change the DNS domain name with this command\n"
- msgstr ""
-
- #: ../hostname.c:341
-+#, c-format
- msgid ""
- "\n"
- "Unless you are using bind or NIS for host lookups you can change the DNS\n"
- msgstr ""
-
- #: ../hostname.c:342
-+#, c-format
- msgid "domain name (which is part of the FQDN) in the /etc/hosts file.\n"
- msgstr ""
-
-@@ -397,557 +437,697 @@ msgstr ""
- msgid "getnodename()=`%s'\n"
- msgstr ""
-
--#: ../ifconfig.c:108
-+#: ../ifconfig.c:107 ../netstat.c:1465
-+#, c-format
- msgid ""
--"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
-+"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
- "Flg\n"
- msgstr ""
-
--#: ../ifconfig.c:130 ../ifconfig.c:162
-+#: ../ifconfig.c:129 ../ifconfig.c:161
- #, c-format
--msgid "%s: unknown interface: %s\n"
-+msgid "%s: ERROR while getting interface flags: %s\n"
- msgstr ""
-
--#: ../ifconfig.c:154 ../ifconfig.c:734 ../ifconfig.c:825 ../ifconfig.c:936
-+#: ../ifconfig.c:153 ../ifconfig.c:185 ../ifconfig.c:791 ../ifconfig.c:884
-+#: ../ifconfig.c:997
-+#, c-format
- msgid "No support for INET on this system.\n"
- msgstr ""
-
--#: ../ifconfig.c:177
-+#: ../ifconfig.c:193
-+#, c-format
-+msgid "%s: ERROR while testing interface flags: %s\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:202
-+#, c-format
- msgid ""
- "Usage:\n"
--" ifconfig [-a] [-i] [-v] [-s] <interface> [[<AF>] <address>]\n"
-+" ifconfig [-a] [-v] [-s] <interface> [[<AF>] <address>]\n"
- msgstr ""
-
--#: ../ifconfig.c:179
-+#: ../ifconfig.c:204
-+#, c-format
- msgid " [add <address>[/<prefixlen>]]\n"
- msgstr ""
-
--#: ../ifconfig.c:180
-+#: ../ifconfig.c:205
-+#, c-format
- msgid " [del <address>[/<prefixlen>]]\n"
- msgstr ""
-
--#: ../ifconfig.c:181
-+#: ../ifconfig.c:206
-+#, c-format
- msgid " [[-]broadcast [<address>]] [[-]pointopoint [<address>]]\n"
- msgstr ""
-
--#: ../ifconfig.c:182
-+#: ../ifconfig.c:207
-+#, c-format
- msgid " [netmask <address>] [dstaddr <address>] [tunnel <address>]\n"
- msgstr ""
-
--#: ../ifconfig.c:185
-+#: ../ifconfig.c:210
-+#, c-format
- msgid " [outfill <NN>] [keepalive <NN>]\n"
- msgstr ""
-
--#: ../ifconfig.c:187
-+#: ../ifconfig.c:212
-+#, c-format
- msgid " [hw <HW> <address>] [metric <NN>] [mtu <NN>]\n"
- msgstr ""
-
--#: ../ifconfig.c:188
-+#: ../ifconfig.c:213
-+#, c-format
- msgid " [[-]trailers] [[-]arp] [[-]allmulti]\n"
- msgstr ""
-
--#: ../ifconfig.c:189
-+#: ../ifconfig.c:214
-+#, c-format
- msgid " [multicast] [[-]promisc]\n"
- msgstr ""
-
--#: ../ifconfig.c:190
-+#: ../ifconfig.c:215
-+#, c-format
- msgid " [mem_start <NN>] [io_addr <NN>] [irq <NN>] [media <type>]\n"
- msgstr ""
-
--#: ../ifconfig.c:192
-+#: ../ifconfig.c:217
-+#, c-format
- msgid " [txqueuelen <NN>]\n"
- msgstr ""
-
--#: ../ifconfig.c:195
-+#: ../ifconfig.c:220
-+#, c-format
- msgid " [[-]dynamic]\n"
- msgstr ""
-
--#: ../ifconfig.c:197
-+#: ../ifconfig.c:222
-+#, c-format
- msgid ""
- " [up|down] ...\n"
- "\n"
- msgstr ""
-
--#: ../ifconfig.c:199
-+#: ../ifconfig.c:224
-+#, c-format
- msgid " <HW>=Hardware Type.\n"
- msgstr ""
-
--#: ../ifconfig.c:200
-+#: ../ifconfig.c:225
-+#, c-format
- msgid " List of possible hardware types:\n"
- msgstr ""
-
- #. 1 = ARPable
--#: ../ifconfig.c:202
-+#: ../ifconfig.c:227
- #, c-format
- msgid " <AF>=Address family. Default: %s\n"
- msgstr ""
-
--#: ../ifconfig.c:203
-+#: ../ifconfig.c:228
-+#, c-format
- msgid " List of possible address families:\n"
- msgstr ""
-
--#: ../ifconfig.c:278
-+#: ../ifconfig.c:304
- #, c-format
- msgid "ifconfig: option `%s' not recognised.\n"
- msgstr ""
-
--#: ../ifconfig.c:280 ../ifconfig.c:925
-+#: ../ifconfig.c:306 ../ifconfig.c:987
-+#, c-format
- msgid "ifconfig: `--help' gives usage information.\n"
- msgstr ""
-
--#: ../ifconfig.c:355
-+#: ../ifconfig.c:381
-+#, c-format
- msgid "Unknown media type.\n"
- msgstr ""
-
--#: ../ifconfig.c:647
-+#: ../ifconfig.c:418
-+#, c-format
-+msgid ""
-+"Warning: Interface %s still in promisc mode... maybe other application is "
-+"running?\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:430
-+#, c-format
-+msgid "Warning: Interface %s still in MULTICAST mode.\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:442
-+#, c-format
-+msgid "Warning: Interface %s still in ALLMULTI mode.\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:466
-+#, c-format
-+msgid "Warning: Interface %s still in DYNAMIC mode.\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:524
-+#, c-format
-+msgid "Warning: Interface %s still in BROADCAST mode.\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:535
-+#, c-format
-+msgid "ifconfig: Error resolving '%s' for broadcast\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:560
-+#, c-format
-+msgid "ifconfig: Error resolving '%s' for dstaddr\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:583
-+#, c-format
-+msgid "ifconfig: Error resolving '%s' for netmask\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:662
-+#, c-format
-+msgid "Warning: Interface %s still in POINTOPOINT mode.\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:673
-+#, c-format
-+msgid "ifconfig: Error resolving '%s' for pointopoint\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:697
- #, c-format
- msgid "hw address type `%s' has no handler to set address. failed.\n"
- msgstr ""
-
--#: ../ifconfig.c:656
-+#: ../ifconfig.c:706
- #, c-format
- msgid "%s: invalid %s address.\n"
- msgstr ""
-
--#: ../ifconfig.c:700 ../ifconfig.c:790 ../ifconfig.c:876
-+#: ../ifconfig.c:746
-+#, c-format
-+msgid "ifconfig: Error resolving '%s' for add\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:757 ../ifconfig.c:847 ../ifconfig.c:935
-+#, c-format
- msgid "No support for INET6 on this system.\n"
- msgstr ""
-
--#: ../ifconfig.c:743 ../ifconfig.c:834
-+#: ../ifconfig.c:800 ../ifconfig.c:893
- #, c-format
- msgid "Interface %s not initialized\n"
- msgstr ""
-
--#: ../ifconfig.c:755 ../ifconfig.c:845
-+#: ../ifconfig.c:812 ../ifconfig.c:904
-+#, c-format
- msgid "Bad address.\n"
- msgstr ""
-
--#: ../ifconfig.c:848
-+#: ../ifconfig.c:907
-+#, c-format
- msgid "Address deletion not supported on this system.\n"
- msgstr ""
-
--#: ../ifconfig.c:920
-+#: ../ifconfig.c:979
-+#, c-format
- msgid "ifconfig: Cannot set address for this protocol family.\n"
- msgstr ""
-
--#: ../ifconfig.c:946
-+#: ../ifconfig.c:986
-+#, c-format
-+msgid "ifconfig: error resolving '%s' to set address for af=%s\n"
-+msgstr ""
-+
-+#: ../ifconfig.c:1007
-+#, c-format
- msgid "No support for ECONET on this system.\n"
- msgstr ""
-
--#: ../ifconfig.c:954
-+#: ../ifconfig.c:1015
- #, c-format
- msgid "Don't know how to set addresses for family %d.\n"
- msgstr ""
-
--#: ../netstat.c:430
-+#: ../ifconfig.c:1050
-+#, c-format
-+msgid "WARNING: at least one error occured. (%d)\n"
-+msgstr ""
-+
-+#: ../netstat.c:434
- #, c-format
- msgid ""
- "(No info could be read for \"-p\": geteuid()=%d but you should be root.)\n"
- msgstr ""
-
--#: ../netstat.c:434
-+#: ../netstat.c:438
-+#, c-format
- msgid ""
- "(Not all processes could be identified, non-owned process info\n"
- " will not be shown, you would have to be root to see it all.)\n"
- msgstr ""
-
--#: ../netstat.c:441 ../netstat.c:1176 ../netstat.c:1253
-+#: ../netstat.c:445 ../netstat.c:1189 ../netstat.c:1266
- msgid "LISTENING"
- msgstr ""
-
--#: ../netstat.c:442
-+#: ../netstat.c:446
- msgid "CONN SENT"
- msgstr ""
-
--#: ../netstat.c:443 ../netstat.c:1255
-+#: ../netstat.c:447 ../netstat.c:1268
- msgid "DISC SENT"
- msgstr ""
-
--#: ../netstat.c:444 ../netstat.c:511 ../netstat.c:894 ../netstat.c:1256
-+#: ../netstat.c:448 ../netstat.c:515 ../netstat.c:904 ../netstat.c:1269
- msgid "ESTABLISHED"
- msgstr ""
-
--#: ../netstat.c:466
-+#: ../netstat.c:470
-+#, c-format
- msgid "Active NET/ROM sockets\n"
- msgstr ""
-
--#: ../netstat.c:467
-+#: ../netstat.c:471
-+#, c-format
- msgid ""
--"User Dest Source Device State Vr/Vs Send-Q "
--"Recv-Q\n"
-+"User Dest Source Device State Vr/Vs Send-Q Recv-"
-+"Q\n"
- msgstr ""
-
--#: ../netstat.c:477 ../netstat.c:1295
-+#: ../netstat.c:481 ../netstat.c:1308
- #, c-format
- msgid "Problem reading data from %s\n"
- msgstr ""
-
--#: ../netstat.c:512
-+#: ../netstat.c:516
- msgid "SYN_SENT"
- msgstr ""
-
--#: ../netstat.c:513
-+#: ../netstat.c:517
- msgid "SYN_RECV"
- msgstr ""
-
--#: ../netstat.c:514
-+#: ../netstat.c:518
- msgid "FIN_WAIT1"
- msgstr ""
-
--#: ../netstat.c:515
-+#: ../netstat.c:519
- msgid "FIN_WAIT2"
- msgstr ""
-
--#: ../netstat.c:516
-+#: ../netstat.c:520
- msgid "TIME_WAIT"
- msgstr ""
-
--#: ../netstat.c:517
-+#: ../netstat.c:521
- msgid "CLOSE"
- msgstr ""
-
--#: ../netstat.c:518
-+#: ../netstat.c:522
- msgid "CLOSE_WAIT"
- msgstr ""
-
--#: ../netstat.c:519
-+#: ../netstat.c:523
- msgid "LAST_ACK"
- msgstr ""
-
--#: ../netstat.c:520
-+#: ../netstat.c:524
- msgid "LISTEN"
- msgstr ""
-
--#: ../netstat.c:521
-+#: ../netstat.c:525
- msgid "CLOSING"
- msgstr ""
-
--#: ../netstat.c:592
-+#: ../netstat.c:596
- #, c-format
- msgid "warning, got bogus igmp6 line %d.\n"
- msgstr ""
-
--#: ../netstat.c:597 ../netstat.c:635 ../netstat.c:756 ../netstat.c:888
--#: ../netstat.c:1019 ../netstat.c:1024
-+#: ../netstat.c:601 ../netstat.c:639 ../netstat.c:763 ../netstat.c:898
-+#: ../netstat.c:1032 ../netstat.c:1037
- #, c-format
- msgid "netstat: unsupported address family %d !\n"
- msgstr ""
-
--#: ../netstat.c:610 ../netstat.c:615 ../netstat.c:623 ../netstat.c:630
-+#: ../netstat.c:614 ../netstat.c:619 ../netstat.c:627 ../netstat.c:634
- #, c-format
- msgid "warning, got bogus igmp line %d.\n"
- msgstr ""
-
--#: ../netstat.c:673
-+#: ../netstat.c:677
-+#, c-format
- msgid "Active X.25 sockets\n"
- msgstr ""
-
- #. IMHO, Vr/Vs is not very usefull --SF
--#: ../netstat.c:675
-+#: ../netstat.c:679
-+#, c-format
- msgid ""
--"Dest Source Device LCI State Vr/Vs Send-Q "
--"Recv-Q\n"
-+"Dest Source Device LCI State Vr/Vs Send-Q Recv-"
-+"Q\n"
- msgstr ""
-
--#: ../netstat.c:752
-+#: ../netstat.c:759
-+#, c-format
- msgid "warning, got bogus tcp line.\n"
- msgstr ""
-
--#: ../netstat.c:793 ../netstat.c:943 ../netstat.c:1062
-+#: ../netstat.c:800 ../netstat.c:953 ../netstat.c:1075
- #, c-format
- msgid "off (0.00/%ld/%d)"
- msgstr ""
-
--#: ../netstat.c:797
-+#: ../netstat.c:804
- #, c-format
- msgid "on (%2.2f/%ld/%d)"
- msgstr ""
-
--#: ../netstat.c:802
-+#: ../netstat.c:809
- #, c-format
- msgid "keepalive (%2.2f/%ld/%d)"
- msgstr ""
-
--#: ../netstat.c:807
-+#: ../netstat.c:814
- #, c-format
- msgid "timewait (%2.2f/%ld/%d)"
- msgstr ""
-
--#: ../netstat.c:812 ../netstat.c:952 ../netstat.c:1072
-+#: ../netstat.c:819 ../netstat.c:962 ../netstat.c:1085
- #, c-format
- msgid "unkn-%d (%2.2f/%ld/%d)"
- msgstr ""
-
--#: ../netstat.c:884
-+#: ../netstat.c:894
-+#, c-format
- msgid "warning, got bogus udp line.\n"
- msgstr ""
-
--#: ../netstat.c:902 ../netstat.c:1162 ../netstat.c:1195
-+#: ../netstat.c:912 ../netstat.c:1175 ../netstat.c:1208
- msgid "UNKNOWN"
- msgstr ""
-
--#: ../netstat.c:948 ../netstat.c:1067
-+#: ../netstat.c:958 ../netstat.c:1080
- #, c-format
- msgid "on%d (%2.2f/%ld/%d)"
- msgstr ""
-
--#: ../netstat.c:1033
-+#: ../netstat.c:1046
-+#, c-format
- msgid "warning, got bogus raw line.\n"
- msgstr ""
-
--#: ../netstat.c:1115
-+#: ../netstat.c:1128
-+#, c-format
- msgid "warning, got bogus unix line.\n"
- msgstr ""
-
--#: ../netstat.c:1142
-+#: ../netstat.c:1155
- msgid "STREAM"
- msgstr ""
-
--#: ../netstat.c:1146
-+#: ../netstat.c:1159
- msgid "DGRAM"
- msgstr ""
-
--#: ../netstat.c:1150
-+#: ../netstat.c:1163
- msgid "RAW"
- msgstr ""
-
--#: ../netstat.c:1154
-+#: ../netstat.c:1167
- msgid "RDM"
- msgstr ""
-
--#: ../netstat.c:1158
-+#: ../netstat.c:1171
- msgid "SEQPACKET"
- msgstr ""
-
--#: ../netstat.c:1167
-+#: ../netstat.c:1180
- msgid "FREE"
- msgstr ""
-
--#: ../netstat.c:1183
-+#: ../netstat.c:1196
- msgid "CONNECTING"
- msgstr ""
-
--#: ../netstat.c:1187
-+#: ../netstat.c:1200
- msgid "CONNECTED"
- msgstr ""
-
--#: ../netstat.c:1191
-+#: ../netstat.c:1204
- msgid "DISCONNECTING"
- msgstr ""
-
--#: ../netstat.c:1222
-+#: ../netstat.c:1235
-+#, c-format
- msgid "Active UNIX domain sockets "
- msgstr ""
-
--#: ../netstat.c:1224 ../netstat.c:1735
-+#: ../netstat.c:1237 ../netstat.c:1756
-+#, c-format
- msgid "(servers and established)"
- msgstr ""
-
--#: ../netstat.c:1227 ../netstat.c:1738
-+#: ../netstat.c:1240 ../netstat.c:1759
-+#, c-format
- msgid "(only servers)"
- msgstr ""
-
--#: ../netstat.c:1229 ../netstat.c:1740
-+#: ../netstat.c:1242 ../netstat.c:1761
-+#, c-format
- msgid "(w/o servers)"
- msgstr ""
-
--#: ../netstat.c:1232
-+#: ../netstat.c:1245
-+#, c-format
- msgid ""
- "\n"
- "Proto RefCnt Flags Type State I-Node"
- msgstr ""
-
--#: ../netstat.c:1234
-+#: ../netstat.c:1247
-+#, c-format
- msgid " Path\n"
- msgstr ""
-
--#: ../netstat.c:1254
-+#: ../netstat.c:1267
- msgid "SABM SENT"
- msgstr ""
-
--#: ../netstat.c:1257
-+#: ../netstat.c:1270
- msgid "RECOVERY"
- msgstr ""
-
--#: ../netstat.c:1271
-+#: ../netstat.c:1284
-+#, c-format
- msgid "Active AX.25 sockets\n"
- msgstr ""
-
--#: ../netstat.c:1272
-+#: ../netstat.c:1285
-+#, c-format
- msgid "Dest Source Device State Vr/Vs Send-Q Recv-Q\n"
- msgstr ""
-
--#: ../netstat.c:1315
-+#: ../netstat.c:1328
- #, c-format
- msgid "problem reading data from %s\n"
- msgstr ""
-
--#: ../netstat.c:1366
-+#: ../netstat.c:1379
-+#, c-format
- msgid ""
- "Active IPX sockets\n"
- "Proto Recv-Q Send-Q Local Address Foreign Address "
- "State"
- msgstr ""
-
--#: ../netstat.c:1368
-+#: ../netstat.c:1381
-+#, c-format
- msgid " User"
- msgstr ""
-
--#: ../netstat.c:1402
-+#: ../netstat.c:1415
- msgid "ESTAB"
- msgstr ""
-
--#: ../netstat.c:1410
-+#: ../netstat.c:1423
- msgid "UNK."
- msgstr ""
-
--#: ../netstat.c:1448
-+#: ../netstat.c:1461
-+#, c-format
- msgid "Kernel Interface table\n"
- msgstr ""
-
--#: ../netstat.c:1452
--msgid ""
--"Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR "
--"Flg\n"
--msgstr ""
--
--#: ../netstat.c:1456
-+#: ../netstat.c:1469
- msgid "missing interface information"
- msgstr ""
-
--#: ../netstat.c:1479
-+#: ../netstat.c:1492
-+#, c-format
- msgid ""
--"usage: netstat [-veenNcCF] [<Af>] -r netstat "
--"{-V|--version|-h|--help}\n"
-+"usage: netstat [-veenNcCF] [<Af>] -r netstat {-V|--version|-h|--"
-+"help}\n"
- msgstr ""
-
--#: ../netstat.c:1480
-+#: ../netstat.c:1493
-+#, c-format
- msgid " netstat [-vnNcaeol] [<Socket> ...]\n"
- msgstr ""
-
--#: ../netstat.c:1481
-+#: ../netstat.c:1494
-+#, c-format
- msgid ""
- " netstat { [-veenNac] -i | [-cnNe] -M | -s }\n"
- "\n"
- msgstr ""
-
--#: ../netstat.c:1483
-+#: ../netstat.c:1496
-+#, c-format
- msgid " -r, --route display routing table\n"
- msgstr ""
-
--#: ../netstat.c:1484
-+#: ../netstat.c:1497
-+#, c-format
- msgid " -i, --interfaces display interface table\n"
- msgstr ""
-
--#: ../netstat.c:1485
-+#: ../netstat.c:1498
-+#, c-format
- msgid " -g, --groups display multicast group memberships\n"
- msgstr ""
-
--#: ../netstat.c:1486
-+#: ../netstat.c:1499
-+#, c-format
- msgid ""
- " -s, --statistics display networking statistics (like SNMP)\n"
- msgstr ""
-
--#: ../netstat.c:1488
-+#: ../netstat.c:1501
-+#, c-format
- msgid ""
- " -M, --masquerade display masqueraded connections\n"
- "\n"
- msgstr ""
-
--#: ../netstat.c:1492
-+#: ../netstat.c:1505
-+#, c-format
- msgid " --numeric-hosts don't resolve host names\n"
- msgstr ""
-
--#: ../netstat.c:1493
-+#: ../netstat.c:1506
-+#, c-format
- msgid " --numeric-ports don't resolve port names\n"
- msgstr ""
-
--#: ../netstat.c:1494
-+#: ../netstat.c:1507
-+#, c-format
- msgid " --numeric-users don't resolve user names\n"
- msgstr ""
-
--#: ../netstat.c:1495
-+#: ../netstat.c:1508
-+#, c-format
- msgid " -N, --symbolic resolve hardware names\n"
- msgstr ""
-
--#: ../netstat.c:1496 ../route.c:88
-+#: ../netstat.c:1509 ../route.c:88
-+#, c-format
- msgid " -e, --extend display other/more information\n"
- msgstr ""
-
--#: ../netstat.c:1497
-+#: ../netstat.c:1510
-+#, c-format
- msgid " -p, --programs display PID/Program name for sockets\n"
- msgstr ""
-
--#: ../netstat.c:1498
-+#: ../netstat.c:1511
-+#, c-format
- msgid ""
- " -c, --continuous continuous listing\n"
- "\n"
- msgstr ""
-
--#: ../netstat.c:1499
-+#: ../netstat.c:1512
-+#, c-format
- msgid " -l, --listening display listening server sockets\n"
- msgstr ""
-
--#: ../netstat.c:1500
-+#: ../netstat.c:1513
-+#, c-format
- msgid ""
- " -a, --all, --listening display all sockets (default: connected)\n"
- msgstr ""
-
--#: ../netstat.c:1501
-+#: ../netstat.c:1514
-+#, c-format
- msgid " -o, --timers display timers\n"
- msgstr ""
-
--#: ../netstat.c:1502 ../route.c:89
-+#: ../netstat.c:1515 ../route.c:89
-+#, c-format
- msgid ""
- " -F, --fib display Forwarding Information Base "
- "(default)\n"
- msgstr ""
-
--#: ../netstat.c:1503 ../route.c:90
-+#: ../netstat.c:1516 ../route.c:90
-+#, c-format
- msgid ""
- " -C, --cache display routing cache instead of FIB\n"
- "\n"
- msgstr ""
-
--#: ../netstat.c:1505
-+#: ../netstat.c:1518
-+#, c-format
- msgid ""
--" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx "
--"--netrom\n"
-+" <Socket>={-t|--tcp} {-u|--udp} {-w|--raw} {-x|--unix} --ax25 --ipx --"
-+"netrom\n"
- msgstr ""
-
--#: ../netstat.c:1506 ../route.c:92
-+#: ../netstat.c:1519
- #, c-format
--msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n"
-+msgid " <AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: %s\n"
- msgstr ""
-
--#: ../netstat.c:1507 ../route.c:93
-+#: ../netstat.c:1520 ../route.c:93
-+#, c-format
- msgid " List of possible address families (which support routing):\n"
- msgstr ""
-
--#: ../netstat.c:1732
-+#: ../netstat.c:1753
-+#, c-format
- msgid "Active Internet connections "
- msgstr ""
-
--#: ../netstat.c:1742
-+#: ../netstat.c:1763
-+#, c-format
- msgid ""
- "\n"
--"Proto Recv-Q Send-Q Local Address Foreign Address State "
--" "
-+"Proto Recv-Q Send-Q Local Address Foreign Address "
-+"State "
- msgstr ""
-
--#: ../netstat.c:1744
-+#: ../netstat.c:1765
-+#, c-format
- msgid " User Inode "
- msgstr ""
-
--#: ../netstat.c:1747
-+#: ../netstat.c:1768
-+#, c-format
- msgid " Timer"
- msgstr ""
-
--#: ../netstat.c:1777
-+#: ../netstat.c:1798
-+#, c-format
- msgid "IPv4 Group Memberships\n"
- msgstr ""
-
--#: ../netstat.c:1778
-+#: ../netstat.c:1799
-+#, c-format
- msgid "Interface RefCnt Group\n"
- msgstr ""
-
-@@ -986,23 +1166,28 @@ msgid "rarp: cannot set entry from %s:%u\n"
- msgstr ""
-
- #: ../rarp.c:176
-+#, c-format
- msgid "Usage: rarp -a list entries in cache.\n"
- msgstr ""
-
- #: ../rarp.c:177
-+#, c-format
- msgid " rarp -d <hostname> delete entry from cache.\n"
- msgstr ""
-
- #: ../rarp.c:178
-+#, c-format
- msgid " rarp [<HW>] -s <hostname> <hwaddr> add entry to cache.\n"
- msgstr ""
-
- #: ../rarp.c:179
-+#, c-format
- msgid ""
- " rarp -f add entries from /etc/ethers.\n"
- msgstr ""
-
- #: ../rarp.c:180
-+#, c-format
- msgid ""
- " rarp -V display program version.\n"
- "\n"
-@@ -1019,38 +1204,50 @@ msgid "rarp: %s: unknown hardware type.\n"
- msgstr ""
-
- #: ../route.c:80
-+#, c-format
- msgid ""
- "Usage: route [-nNvee] [-FC] [<AF>] List kernel routing tables\n"
- msgstr ""
-
- #: ../route.c:81
-+#, c-format
- msgid ""
- " route [-v] [-FC] {add|del|flush} ... Modify routing table for AF.\n"
- "\n"
- msgstr ""
-
- #: ../route.c:83
-+#, c-format
- msgid ""
- " route {-h|--help} [<AF>] Detailed usage syntax for "
- "specified AF.\n"
- msgstr ""
-
- #: ../route.c:84
-+#, c-format
- msgid ""
- " route {-V|--version} Display version/author and "
- "exit.\n"
- "\n"
- msgstr ""
-
-+#: ../route.c:92
-+#, c-format
-+msgid " <AF>=Use '-A <af>' or '--<af>'; default: %s\n"
-+msgstr ""
-+
- #: ../plipconfig.c:66
-+#, c-format
- msgid "Usage: plipconfig [-a] [-i] [-v] interface\n"
- msgstr ""
-
- #: ../plipconfig.c:67
-+#, c-format
- msgid " [nibble NN] [trigger NN]\n"
- msgstr ""
-
- #: ../plipconfig.c:68
-+#, c-format
- msgid " plipconfig -V | --version\n"
- msgstr ""
-
-@@ -1060,61 +1257,75 @@ msgid "%s\tnibble %lu trigger %lu\n"
- msgstr ""
-
- #: ../iptunnel.c:85
-+#, c-format
- msgid "Usage: iptunnel { add | change | del | show } [ NAME ]\n"
- msgstr ""
-
- #: ../iptunnel.c:86
-+#, c-format
- msgid ""
- " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n"
- msgstr ""
-
- #: ../iptunnel.c:87
-+#, c-format
- msgid " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n"
- msgstr ""
-
- #: ../iptunnel.c:88
-+#, c-format
- msgid " [ ttl TTL ] [ tos TOS ] [ nopmtudisc ] [ dev PHYS_DEV ]\n"
- msgstr ""
-
- #: ../iptunnel.c:89
-+#, c-format
- msgid ""
- " iptunnel -V | --version\n"
- "\n"
- msgstr ""
-
- #: ../iptunnel.c:90
-+#, c-format
- msgid "Where: NAME := STRING\n"
- msgstr ""
-
- #: ../iptunnel.c:91
-+#, c-format
- msgid " ADDR := { IP_ADDRESS | any }\n"
- msgstr ""
-
- #: ../iptunnel.c:92
-+#, c-format
- msgid " TOS := { NUMBER | inherit }\n"
- msgstr ""
-
- #: ../iptunnel.c:93
-+#, c-format
- msgid " TTL := { 1..255 | inherit }\n"
- msgstr ""
-
- #: ../iptunnel.c:94
-+#, c-format
- msgid " KEY := { DOTTED_QUAD | NUMBER }\n"
- msgstr ""
-
- #: ../iptunnel.c:332
-+#, c-format
- msgid "Keys are not allowed with ipip and sit.\n"
- msgstr ""
-
- #: ../iptunnel.c:352
-+#, c-format
- msgid "Broadcast tunnel requires a source address.\n"
- msgstr ""
-
- #: ../iptunnel.c:367
-+#, c-format
- msgid "ttl != 0 and noptmudisc are incompatible\n"
- msgstr ""
-
- #: ../iptunnel.c:379
-+#, c-format
- msgid "cannot determine tunnel mode (ipip, gre or sit)\n"
- msgstr ""
-
-@@ -1128,22 +1339,27 @@ msgid "unknown"
- msgstr ""
-
- #: ../iptunnel.c:453
-+#, c-format
- msgid " Drop packets out of sequence.\n"
- msgstr ""
-
- #: ../iptunnel.c:455
-+#, c-format
- msgid " Checksum in received packet is required.\n"
- msgstr ""
-
- #: ../iptunnel.c:457
-+#, c-format
- msgid " Sequence packets on output.\n"
- msgstr ""
-
- #: ../iptunnel.c:459
-+#, c-format
- msgid " Checksum output packets.\n"
- msgstr ""
-
- #: ../iptunnel.c:487
-+#, c-format
- msgid "Wrong format of /proc/net/dev. Sorry.\n"
- msgstr ""
-
-@@ -1153,10 +1369,12 @@ msgid "Failed to get type of [%s]\n"
- msgstr ""
-
- #: ../iptunnel.c:516
-+#, c-format
- msgid "RX: Packets Bytes Errors CsumErrs OutOfSeq Mcasts\n"
- msgstr ""
-
- #: ../iptunnel.c:519
-+#, c-format
- msgid "TX: Packets Bytes Errors DeadLoop NoRoute NoBufs\n"
- msgstr ""
-
-@@ -1323,287 +1541,487 @@ msgstr ""
-
- #: ../statistics.c:99
- #, c-format
--msgid "address mask request: %u"
-+msgid "address mask request: %u"
-+msgstr ""
-+
-+#. ?
-+#: ../statistics.c:100 ../statistics.c:113
-+#, c-format
-+msgid "address mask replies: %u"
-+msgstr ""
-+
-+#. ?
-+#: ../statistics.c:101
-+#, c-format
-+msgid "%u ICMP messages sent"
-+msgstr ""
-+
-+#: ../statistics.c:102
-+#, c-format
-+msgid "%u ICMP messages failed"
-+msgstr ""
-+
-+#: ../statistics.c:104
-+#, c-format
-+msgid "time exceeded: %u"
-+msgstr ""
-+
-+#. ?
-+#: ../statistics.c:106
-+#, c-format
-+msgid "source quench: %u"
-+msgstr ""
-+
-+#: ../statistics.c:107
-+#, c-format
-+msgid "redirect: %u"
-+msgstr ""
-+
-+#: ../statistics.c:108
-+#, c-format
-+msgid "echo request: %u"
-+msgstr ""
-+
-+#: ../statistics.c:110
-+#, c-format
-+msgid "timestamp requests: %u"
-+msgstr ""
-+
-+#: ../statistics.c:111
-+#, c-format
-+msgid "timestamp replies: %u"
-+msgstr ""
-+
-+#: ../statistics.c:112
-+#, c-format
-+msgid "address mask requests: %u"
-+msgstr ""
-+
-+#: ../statistics.c:118
-+#, c-format
-+msgid "RTO algorithm is %s"
-+msgstr ""
-+
-+#: ../statistics.c:122
-+#, c-format
-+msgid "%u active connections openings"
-+msgstr ""
-+
-+#: ../statistics.c:123
-+#, c-format
-+msgid "%u passive connection openings"
-+msgstr ""
-+
-+#: ../statistics.c:124
-+#, c-format
-+msgid "%u failed connection attempts"
-+msgstr ""
-+
-+#: ../statistics.c:125
-+#, c-format
-+msgid "%u connection resets received"
-+msgstr ""
-+
-+#: ../statistics.c:126
-+#, c-format
-+msgid "%u connections established"
-+msgstr ""
-+
-+#: ../statistics.c:127
-+#, c-format
-+msgid "%u segments received"
-+msgstr ""
-+
-+#: ../statistics.c:128
-+#, c-format
-+msgid "%u segments send out"
-+msgstr ""
-+
-+#: ../statistics.c:129
-+#, c-format
-+msgid "%u segments retransmited"
-+msgstr ""
-+
-+#: ../statistics.c:130
-+#, c-format
-+msgid "%u bad segments received."
-+msgstr ""
-+
-+#: ../statistics.c:131
-+#, c-format
-+msgid "%u resets sent"
-+msgstr ""
-+
-+#: ../statistics.c:136
-+#, c-format
-+msgid "%u packets received"
-+msgstr ""
-+
-+#: ../statistics.c:137
-+#, c-format
-+msgid "%u packets to unknown port received."
-+msgstr ""
-+
-+#: ../statistics.c:138
-+#, c-format
-+msgid "%u packet receive errors"
-+msgstr ""
-+
-+#: ../statistics.c:139
-+#, c-format
-+msgid "%u packets sent"
-+msgstr ""
-+
-+#: ../statistics.c:144
-+#, c-format
-+msgid "%u SYN cookies sent"
-+msgstr ""
-+
-+#: ../statistics.c:145
-+#, c-format
-+msgid "%u SYN cookies received"
-+msgstr ""
-+
-+#: ../statistics.c:146
-+#, c-format
-+msgid "%u invalid SYN cookies received"
-+msgstr ""
-+
-+#: ../statistics.c:148
-+#, c-format
-+msgid "%u resets received for embryonic SYN_RECV sockets"
-+msgstr ""
-+
-+#: ../statistics.c:150
-+#, c-format
-+msgid "%u packets pruned from receive queue because of socket buffer overrun"
-+msgstr ""
-+
-+#. obsolete: 2.2.0 doesn't do that anymore
-+#: ../statistics.c:153
-+#, c-format
-+msgid "%u packets pruned from receive queue"
-+msgstr ""
-+
-+#: ../statistics.c:154
-+#, c-format
-+msgid ""
-+"%u packets dropped from out-of-order queue because of socket buffer overrun"
-+msgstr ""
-+
-+#: ../statistics.c:156
-+#, c-format
-+msgid "%u ICMP packets dropped because they were out-of-window"
-+msgstr ""
-+
-+#: ../statistics.c:158
-+#, c-format
-+msgid "%u ICMP packets dropped because socket was locked"
-+msgstr ""
-+
-+#: ../statistics.c:160
-+#, c-format
-+msgid "%u TCP sockets finished time wait in fast timer"
-+msgstr ""
-+
-+#: ../statistics.c:161
-+#, c-format
-+msgid "%u time wait sockets recycled by time stamp"
-+msgstr ""
-+
-+#: ../statistics.c:162
-+#, c-format
-+msgid "%u TCP sockets finished time wait in slow timer"
-+msgstr ""
-+
-+#: ../statistics.c:163
-+#, c-format
-+msgid "%u passive connections rejected because of time stamp"
-+msgstr ""
-+
-+#: ../statistics.c:165
-+#, c-format
-+msgid "%u active connections rejected because of time stamp"
-+msgstr ""
-+
-+#: ../statistics.c:167
-+#, c-format
-+msgid "%u packets rejects in established connections because of timestamp"
- msgstr ""
-
--#. ?
--#: ../statistics.c:100 ../statistics.c:113
-+#: ../statistics.c:169
- #, c-format
--msgid "address mask replies: %u"
-+msgid "%u delayed acks sent"
- msgstr ""
-
--#. ?
--#: ../statistics.c:101
-+#: ../statistics.c:170
- #, c-format
--msgid "%u ICMP messages sent"
-+msgid "%u delayed acks further delayed because of locked socket"
- msgstr ""
-
--#: ../statistics.c:102
-+#: ../statistics.c:172
- #, c-format
--msgid "%u ICMP messages failed"
-+msgid "Quick ack mode was activated %u times"
- msgstr ""
-
--#: ../statistics.c:104
-+#: ../statistics.c:173
- #, c-format
--msgid "time exceeded: %u"
-+msgid "%u times the listen queue of a socket overflowed"
- msgstr ""
-
--#. ?
--#: ../statistics.c:106
-+#: ../statistics.c:175
- #, c-format
--msgid "source quench: %u"
-+msgid "%u SYNs to LISTEN sockets dropped"
- msgstr ""
-
--#: ../statistics.c:107
-+#: ../statistics.c:176
- #, c-format
--msgid "redirect: %u"
-+msgid "%u packets directly queued to recvmsg prequeue."
- msgstr ""
-
--#: ../statistics.c:108
-+#: ../statistics.c:178
- #, c-format
--msgid "echo request: %u"
-+msgid "%u bytes directly in process context from backlog"
- msgstr ""
-
--#: ../statistics.c:110
-+#: ../statistics.c:179
- #, c-format
--msgid "timestamp requests: %u"
-+msgid "%u bytes directly received in process context from prequeue"
- msgstr ""
-
--#: ../statistics.c:111
-+#: ../statistics.c:181
- #, c-format
--msgid "timestamp replies: %u"
-+msgid "%u packets dropped from prequeue"
- msgstr ""
-
--#: ../statistics.c:112
-+#: ../statistics.c:182
- #, c-format
--msgid "address mask requests: %u"
-+msgid "%u packet headers predicted"
- msgstr ""
-
--#: ../statistics.c:118
-+#: ../statistics.c:183
- #, c-format
--msgid "RTO algorithm is %s"
-+msgid "%u packets header predicted and directly queued to user"
- msgstr ""
-
--#: ../statistics.c:122
-+#: ../statistics.c:185
- #, c-format
--msgid "%u active connections openings"
-+msgid "Ran %u times out of system memory during packet sending"
- msgstr ""
-
--#: ../statistics.c:123
-+#: ../statistics.c:187
- #, c-format
--msgid "%u passive connection openings"
-+msgid "%u acknowledgments not containing data payload received"
- msgstr ""
-
--#: ../statistics.c:124
-+#: ../statistics.c:188
- #, c-format
--msgid "%u failed connection attempts"
-+msgid "%u predicted acknowledgments"
- msgstr ""
-
--#: ../statistics.c:125
-+#: ../statistics.c:189
- #, c-format
--msgid "%u connection resets received"
-+msgid "%u times recovered from packet loss due to fast retransmit"
- msgstr ""
-
--#: ../statistics.c:126
-+#: ../statistics.c:190
- #, c-format
--msgid "%u connections established"
-+msgid "%u times recovered from packet loss by selective acknowledgements"
- msgstr ""
-
--#: ../statistics.c:127
-+#: ../statistics.c:191
- #, c-format
--msgid "%u segments received"
-+msgid "%u bad SACK blocks received"
- msgstr ""
-
--#: ../statistics.c:128
-+#: ../statistics.c:192
- #, c-format
--msgid "%u segments send out"
-+msgid "Detected reordering %u times using FACK"
- msgstr ""
-
--#: ../statistics.c:129
-+#: ../statistics.c:193
- #, c-format
--msgid "%u segments retransmited"
-+msgid "Detected reordering %u times using SACK"
- msgstr ""
-
--#: ../statistics.c:130
-+#: ../statistics.c:194
- #, c-format
--msgid "%u bad segments received."
-+msgid "Detected reordering %u times using time stamp"
- msgstr ""
-
--#: ../statistics.c:131
-+#: ../statistics.c:195
- #, c-format
--msgid "%u resets sent"
-+msgid "Detected reordering %u times using reno fast retransmit"
- msgstr ""
-
--#: ../statistics.c:136
-+#: ../statistics.c:196
- #, c-format
--msgid "%u packets received"
-+msgid "%u congestion windows fully recovered without slow start"
- msgstr ""
-
--#: ../statistics.c:137
-+#: ../statistics.c:197
- #, c-format
--msgid "%u packets to unknown port received."
-+msgid "%u congestion windows partially recovered using Hoe heuristic"
- msgstr ""
-
--#: ../statistics.c:138
-+#: ../statistics.c:198
- #, c-format
--msgid "%u packet receive errors"
-+msgid "%u congestion window recovered without slow start using DSACK"
- msgstr ""
-
--#: ../statistics.c:139
-+#: ../statistics.c:199
- #, c-format
--msgid "%u packets sent"
-+msgid "%u congestion windows recovered without slow start after partial ack"
- msgstr ""
-
--#: ../statistics.c:144
-+#: ../statistics.c:200
- #, c-format
--msgid "%u SYN cookies sent"
-+msgid "%u retransmits lost"
- msgstr ""
-
--#: ../statistics.c:145
-+#: ../statistics.c:201
- #, c-format
--msgid "%u SYN cookies received"
-+msgid "%u timeouts after reno fast retransmit"
- msgstr ""
-
--#: ../statistics.c:146
-+#: ../statistics.c:202
- #, c-format
--msgid "%u invalid SYN cookies received"
-+msgid "%u timeouts after SACK recovery"
- msgstr ""
-
--#: ../statistics.c:148
-+#: ../statistics.c:203
- #, c-format
--msgid "%u resets received for embryonic SYN_RECV sockets"
-+msgid "%u timeouts in loss state"
- msgstr ""
-
--#: ../statistics.c:150
-+#: ../statistics.c:204
- #, c-format
--msgid "%u packets pruned from receive queue because of socket buffer overrun"
-+msgid "%u fast retransmits"
- msgstr ""
-
--#. obsolete: 2.2.0 doesn't do that anymore
--#: ../statistics.c:153
-+#: ../statistics.c:205
- #, c-format
--msgid "%u packets pruned from receive queue"
-+msgid "%u forward retransmits"
- msgstr ""
-
--#: ../statistics.c:154
-+#: ../statistics.c:206
- #, c-format
--msgid ""
--"%u packets dropped from out-of-order queue because of socket buffer overrun"
-+msgid "%u retransmits in slow start"
- msgstr ""
-
--#: ../statistics.c:156
-+#: ../statistics.c:207
- #, c-format
--msgid "%u ICMP packets dropped because they were out-of-window"
-+msgid "%u other TCP timeouts"
- msgstr ""
-
--#: ../statistics.c:158
-+#: ../statistics.c:208
- #, c-format
--msgid "%u ICMP packets dropped because socket was locked"
-+msgid "%u reno fast retransmits failed"
- msgstr ""
-
--#: ../statistics.c:160
-+#: ../statistics.c:209
- #, c-format
--msgid "%u TCP sockets finished time wait in fast timer"
-+msgid "%u SACK retransmits failed"
- msgstr ""
-
--#: ../statistics.c:161
-+#: ../statistics.c:210
- #, c-format
--msgid "%u time wait sockets recycled by time stamp"
-+msgid "%u times receiver scheduled too late for direct processing"
- msgstr ""
-
--#: ../statistics.c:162
-+#: ../statistics.c:211
- #, c-format
--msgid "%u TCP sockets finished time wait in slow timer"
-+msgid "%u packets collapsed in receive queue due to low socket buffer"
- msgstr ""
-
--#: ../statistics.c:163
-+#: ../statistics.c:212
- #, c-format
--msgid "%u passive connections rejected because of time stamp"
-+msgid "%u DSACKs sent for old packets"
- msgstr ""
-
--#: ../statistics.c:165
-+#: ../statistics.c:213
- #, c-format
--msgid "%u active connections rejected because of time stamp"
-+msgid "%u DSACKs sent for out of order packets"
- msgstr ""
-
--#: ../statistics.c:167
-+#: ../statistics.c:214
- #, c-format
--msgid "%u packets rejects in established connections because of timestamp"
-+msgid "%u DSACKs received"
- msgstr ""
-
--#: ../statistics.c:169
-+#: ../statistics.c:215
- #, c-format
--msgid "%u delayed acks sent"
-+msgid "%u DSACKs for out of order packets received"
- msgstr ""
-
--#: ../statistics.c:170
-+#: ../statistics.c:216
- #, c-format
--msgid "%u delayed acks further delayed because of locked socket"
-+msgid "%u connections reset due to unexpected SYN"
- msgstr ""
-
--#: ../statistics.c:172
-+#: ../statistics.c:217
- #, c-format
--msgid "Quick ack mode was activated %u times"
-+msgid "%u connections reset due to unexpected data"
- msgstr ""
-
--#: ../statistics.c:173
-+#: ../statistics.c:218
- #, c-format
--msgid "%u times the listen queue of a socket overflowed"
-+msgid "%u connections reset due to early user close"
- msgstr ""
-
--#: ../statistics.c:175
-+#: ../statistics.c:219
- #, c-format
--msgid "%u SYNs to LISTEN sockets ignored"
-+msgid "%u connections aborted due to memory pressure"
- msgstr ""
-
--#: ../statistics.c:176
-+#: ../statistics.c:220
- #, c-format
--msgid "%u packets directly queued to recvmsg prequeue."
-+msgid "%u connections aborted due to timeout"
- msgstr ""
-
--#: ../statistics.c:178
-+#: ../statistics.c:221
- #, c-format
--msgid "%u packets directly received from backlog"
-+msgid "%u connections aborted after user close in linger timeout"
- msgstr ""
-
--#: ../statistics.c:180
-+#: ../statistics.c:222
- #, c-format
--msgid "%u packets directly received from prequeue"
-+msgid "%u times unabled to send RST due to no memory"
- msgstr ""
-
--#: ../statistics.c:182
-+#: ../statistics.c:223
- #, c-format
--msgid "%u packets dropped from prequeue"
-+msgid "TCP ran low on memory %u times"
- msgstr ""
-
--#: ../statistics.c:183
-+#: ../statistics.c:224
- #, c-format
--msgid "%u packets header predicted"
-+msgid "%u TCP data loss events"
- msgstr ""
-
--#: ../statistics.c:184
-+#: ../statistics.c:225
- #, c-format
--msgid "%u packets header predicted and directly queued to user"
-+msgid "%u congestion windows recovered without slow start by DSACK"
- msgstr ""
-
--#: ../statistics.c:186
-+#: ../statistics.c:227
- #, c-format
--msgid "Ran %u times out of system memory during packet sending"
-+msgid "%u classic Reno fast retransmits failed"
- msgstr ""
-
--#: ../statistics.c:253
-+#: ../statistics.c:294
- msgid "enabled"
- msgstr ""
-
--#: ../statistics.c:253
-+#: ../statistics.c:294
- msgid "disabled"
- msgstr ""
-
--#: ../statistics.c:336
-+#: ../statistics.c:377
- msgid "error parsing /proc/net/snmp"
- msgstr ""
-
--#: ../statistics.c:349
-+#: ../statistics.c:390
- msgid "cannot open /proc/net/snmp"
- msgstr ""
-
-@@ -1617,7 +2035,7 @@ msgstr ""
- msgid "Cannot change line discipline to `%s'.\n"
- msgstr ""
-
--#: ../lib/af.c:153 ../lib/hw.c:156
-+#: ../lib/af.c:153 ../lib/hw.c:161
- msgid "UNSPEC"
- msgstr ""
-
-@@ -1633,11 +2051,11 @@ msgstr ""
- msgid "IPv6"
- msgstr ""
-
--#: ../lib/af.c:164 ../lib/hw.c:177
-+#: ../lib/af.c:164 ../lib/hw.c:182
- msgid "AMPR AX.25"
- msgstr ""
-
--#: ../lib/af.c:167 ../lib/hw.c:183
-+#: ../lib/af.c:167 ../lib/hw.c:188
- msgid "AMPR NET/ROM"
- msgstr ""
-
-@@ -1649,7 +2067,7 @@ msgstr ""
- msgid "Appletalk DDP"
- msgstr ""
-
--#: ../lib/af.c:176 ../lib/hw.c:218
-+#: ../lib/af.c:176 ../lib/hw.c:223
- msgid "Econet"
- msgstr ""
-
-@@ -1657,19 +2075,21 @@ msgstr ""
- msgid "CCITT X.25"
- msgstr ""
-
--#: ../lib/af.c:182 ../lib/hw.c:180
-+#: ../lib/af.c:182 ../lib/hw.c:185
- msgid "AMPR ROSE"
- msgstr ""
-
--#: ../lib/af.c:185 ../lib/hw.c:168
-+#: ../lib/af.c:185 ../lib/hw.c:173
- msgid "Ash"
- msgstr ""
-
- #: ../lib/af.c:243
-+#, c-format
- msgid "Please don't supply more than one address family.\n"
- msgstr ""
-
- #: ../lib/af.c:304
-+#, c-format
- msgid "Too much address family arguments.\n"
- msgstr ""
-
-@@ -1694,11 +2114,12 @@ msgid "in_arcnet(%s): trailing junk!\n"
- msgstr ""
-
- #: ../lib/ash.c:81
-+#, c-format
- msgid "Malformed Ash address"
- msgstr ""
-
- #: ../lib/ax25.c:75 ../lib/ddp.c:50 ../lib/econet.c:52 ../lib/inet.c:244
--#: ../lib/inet.c:259 ../lib/inet6.c:129 ../lib/ipx.c:81 ../lib/netrom.c:78
-+#: ../lib/inet.c:259 ../lib/inet6.c:145 ../lib/ipx.c:81 ../lib/netrom.c:78
- #: ../lib/rose.c:71 ../lib/unix.c:56 ../lib/unix.c:76
- msgid "[NONE SET]"
- msgstr ""
-@@ -1712,22 +2133,21 @@ msgid "Callsign too long"
- msgstr ""
-
- #: ../lib/ax25_gr.c:47
-+#, c-format
- msgid "AX.25 not configured in this system.\n"
- msgstr ""
-
- #: ../lib/ax25_gr.c:50
-+#, c-format
- msgid "Kernel AX.25 routing table\n"
- msgstr ""
-
- #. xxx
- #: ../lib/ax25_gr.c:51 ../lib/rose_gr.c:55
-+#, c-format
- msgid "Destination Iface Use\n"
- msgstr ""
-
--#: ../lib/ddp_gr.c:21
--msgid "Routing table for `ddp' not yet supported.\n"
--msgstr ""
--
- #: ../lib/ether.c:74 ../lib/ether.c:91
- #, c-format
- msgid "in_ether(%s): invalid ether address!\n"
-@@ -1783,225 +2203,260 @@ msgstr ""
- msgid "in_hippi(%s): trailing junk!\n"
- msgstr ""
-
--#: ../lib/hw.c:155
-+#: ../lib/hw.c:160
- msgid "Local Loopback"
- msgstr ""
-
--#: ../lib/hw.c:158
-+#: ../lib/hw.c:163
- msgid "Serial Line IP"
- msgstr ""
-
--#: ../lib/hw.c:159
-+#: ../lib/hw.c:164
- msgid "VJ Serial Line IP"
- msgstr ""
-
--#: ../lib/hw.c:160
-+#: ../lib/hw.c:165
- msgid "6-bit Serial Line IP"
- msgstr ""
-
--#: ../lib/hw.c:161
-+#: ../lib/hw.c:166
- msgid "VJ 6-bit Serial Line IP"
- msgstr ""
-
--#: ../lib/hw.c:162
-+#: ../lib/hw.c:167
- msgid "Adaptive Serial Line IP"
- msgstr ""
-
--#: ../lib/hw.c:165
-+#: ../lib/hw.c:170
- msgid "Ethernet"
- msgstr ""
-
--#: ../lib/hw.c:171
-+#: ../lib/hw.c:176
- msgid "Fiber Distributed Data Interface"
- msgstr ""
-
--#: ../lib/hw.c:174
-+#: ../lib/hw.c:179
- msgid "HIPPI"
- msgstr ""
-
--#: ../lib/hw.c:186
-+#: ../lib/hw.c:191
- msgid "generic X.25"
- msgstr ""
-
--#: ../lib/hw.c:189
-+#: ../lib/hw.c:194
- msgid "IPIP Tunnel"
- msgstr ""
-
--#: ../lib/hw.c:192
-+#: ../lib/hw.c:197
- msgid "Point-to-Point Protocol"
- msgstr ""
-
--#: ../lib/hw.c:195
-+#: ../lib/hw.c:200
- msgid "(Cisco)-HDLC"
- msgstr ""
-
--#: ../lib/hw.c:196
-+#: ../lib/hw.c:201
- msgid "LAPB"
- msgstr ""
-
--#: ../lib/hw.c:199
-+#: ../lib/hw.c:204
- msgid "ARCnet"
- msgstr ""
-
--#: ../lib/hw.c:202
-+#: ../lib/hw.c:207
- msgid "Frame Relay DLCI"
- msgstr ""
-
--#: ../lib/hw.c:203
-+#: ../lib/hw.c:208
- msgid "Frame Relay Access Device"
- msgstr ""
-
--#: ../lib/hw.c:206
-+#: ../lib/hw.c:211
- msgid "IPv6-in-IPv4"
- msgstr ""
-
--#: ../lib/hw.c:209
-+#: ../lib/hw.c:214
- msgid "IrLAP"
- msgstr ""
-
--#: ../lib/hw.c:212
-+#: ../lib/hw.c:217
- msgid "16/4 Mbps Token Ring"
- msgstr ""
-
--#: ../lib/hw.c:214
-+#: ../lib/hw.c:219
- msgid "16/4 Mbps Token Ring (New)"
- msgstr ""
-
--#: ../lib/inet.c:153 ../lib/inet6.c:79
-+#: ../lib/hw.c:226
-+msgid "Generic EUI-64"
-+msgstr ""
-+
-+#: ../lib/inet.c:153 ../lib/inet6.c:94
- #, c-format
- msgid "rresolve: unsupport address family %d !\n"
- msgstr ""
-
--#: ../lib/inet6.c:131
-+#: ../lib/inet6.c:147
- msgid "[UNKNOWN]"
- msgstr ""
-
- #: ../lib/inet6_gr.c:71
-+#, c-format
- msgid "INET6 (IPv6) not configured in this system.\n"
- msgstr ""
-
--#: ../lib/inet6_gr.c:74
-+#: ../lib/inet6_gr.c:76
-+#, c-format
-+msgid "Kernel IPv6 routing cache\n"
-+msgstr ""
-+
-+#: ../lib/inet6_gr.c:78
-+#, c-format
- msgid "Kernel IPv6 routing table\n"
- msgstr ""
-
--#: ../lib/inet6_gr.c:76
-+#: ../lib/inet6_gr.c:80
-+#, c-format
- msgid ""
--"Destination Next Hop "
--" Flags Metric Ref Use Iface\n"
-+"Destination Next Hop Flag Met Ref Use "
-+"If\n"
- msgstr ""
-
--#: ../lib/inet6_gr.c:150
-+#: ../lib/inet6_gr.c:174
-+#, c-format
- msgid "Kernel IPv6 Neighbour Cache\n"
- msgstr ""
-
--#: ../lib/inet6_gr.c:153
-+#: ../lib/inet6_gr.c:177
-+#, c-format
- msgid ""
- "Neighbour HW Address Iface Flags "
- "Ref State\n"
- msgstr ""
-
--#: ../lib/inet6_gr.c:157
-+#: ../lib/inet6_gr.c:181
-+#, c-format
- msgid ""
- "Neighbour HW Address Iface Flags "
- "Ref State Stale(sec) Delete(sec)\n"
- msgstr ""
-
- #: ../lib/inet6_sr.c:46
-+#, c-format
- msgid "Usage: inet6_route [-vF] del Target\n"
- msgstr ""
-
- #: ../lib/inet6_sr.c:47
-+#, c-format
- msgid " inet6_route [-vF] add Target [gw Gw] [metric M] [[dev] If]\n"
- msgstr ""
-
- #: ../lib/inet6_sr.c:48
-+#, c-format
- msgid " inet6_route [-FC] flush NOT supported\n"
- msgstr ""
-
- #: ../lib/inet6_sr.c:188
-+#, c-format
- msgid "Flushing `inet6' routing table not supported\n"
- msgstr ""
-
- #: ../lib/inet_gr.c:50 ../lib/inet_gr.c:220
-+#, c-format
- msgid "INET (IPv4) not configured in this system.\n"
- msgstr ""
-
- #: ../lib/inet_gr.c:53
-+#, c-format
- msgid "Kernel IP routing table\n"
- msgstr ""
-
- #: ../lib/inet_gr.c:56
-+#, c-format
- msgid ""
- "Destination Gateway Genmask Flags Metric Ref Use "
- "Iface\n"
- msgstr ""
-
- #: ../lib/inet_gr.c:59
-+#, c-format
- msgid ""
- "Destination Gateway Genmask Flags MSS Window irtt "
- "Iface\n"
- msgstr ""
-
- #: ../lib/inet_gr.c:62
-+#, c-format
- msgid ""
- "Destination Gateway Genmask Flags Metric Ref Use "
- "Iface MSS Window irtt\n"
- msgstr ""
-
- #: ../lib/inet_gr.c:237
-+#, c-format
- msgid "Kernel IP routing cache\n"
- msgstr ""
-
- #: ../lib/inet_gr.c:258
-+#, c-format
- msgid ""
- "Source Destination Gateway Flags Metric Ref Use "
- "Iface\n"
- msgstr ""
-
- #: ../lib/inet_gr.c:261
-+#, c-format
- msgid ""
- "Source Destination Gateway Flags MSS Window irtt "
- "Iface\n"
- msgstr ""
-
- #: ../lib/inet_gr.c:266
-+#, c-format
- msgid ""
- "Source Destination Gateway Flags Metric Ref Use "
- "Iface MSS Window irtt HH Arp\n"
- msgstr ""
-
- #: ../lib/inet_gr.c:290
-+#, c-format
- msgid ""
- "Source Destination Gateway Flags Metric Ref Use "
- "Iface MSS Window irtt TOS HHRef HHUptod SpecDst\n"
- msgstr ""
-
--#: ../lib/inet_sr.c:50
-+#: ../lib/inet_sr.c:51
-+#, c-format
- msgid ""
- "Usage: inet_route [-vF] del {-host|-net} Target[/prefix] [gw Gw] [metric M] "
- "[[dev] If]\n"
- msgstr ""
-
--#: ../lib/inet_sr.c:51
-+#: ../lib/inet_sr.c:52
-+#, c-format
- msgid ""
- " inet_route [-vF] add {-host|-net} Target[/prefix] [gw Gw] [metric M]\n"
- msgstr ""
-
--#: ../lib/inet_sr.c:52
-+#: ../lib/inet_sr.c:53
-+#, c-format
- msgid ""
- " [netmask N] [mss Mss] [window W] [irtt I]\n"
- msgstr ""
-
--#: ../lib/inet_sr.c:53
-+#: ../lib/inet_sr.c:54
-+#, c-format
- msgid " [mod] [dyn] [reinstate] [[dev] If]\n"
- msgstr ""
-
--#: ../lib/inet_sr.c:54
-+#: ../lib/inet_sr.c:55
-+#, c-format
- msgid ""
- " inet_route [-vF] add {-host|-net} Target[/prefix] [metric M] reject\n"
- msgstr ""
-
--#: ../lib/inet_sr.c:55
-+#: ../lib/inet_sr.c:56
-+#, c-format
- msgid " inet_route [-FC] flush NOT supported\n"
- msgstr ""
-
-@@ -2011,14 +2466,17 @@ msgid "route: %s: cannot use a NETWORK as gateway!\n"
- msgstr ""
-
- #: ../lib/inet_sr.c:174
-+#, c-format
- msgid "route: Invalid MSS/MTU.\n"
- msgstr ""
-
- #: ../lib/inet_sr.c:187
-+#, c-format
- msgid "route: Invalid window.\n"
- msgstr ""
-
- #: ../lib/inet_sr.c:203
-+#, c-format
- msgid "route: Invalid initial rtt.\n"
- msgstr ""
-
-@@ -2033,73 +2491,90 @@ msgid "route: bogus netmask %s\n"
- msgstr ""
-
- #: ../lib/inet_sr.c:270
-+#, c-format
- msgid "route: netmask doesn't match route address\n"
- msgstr ""
-
- #: ../lib/inet_sr.c:306
-+#, c-format
- msgid "Flushing `inet' routing table not supported\n"
- msgstr ""
-
- #: ../lib/inet_sr.c:310
-+#, c-format
- msgid "Modifying `inet' routing cache not supported\n"
- msgstr ""
-
- #: ../lib/ipx_gr.c:52
-+#, c-format
- msgid "IPX not configured in this system.\n"
- msgstr ""
-
- #: ../lib/ipx_gr.c:56
-+#, c-format
- msgid "Kernel IPX routing table\n"
- msgstr ""
-
- #. xxx
- #: ../lib/ipx_gr.c:57
-+#, c-format
- msgid "Destination Router Net Router Node\n"
- msgstr ""
-
- #: ../lib/ipx_sr.c:33
-+#, c-format
- msgid "IPX: this needs to be written\n"
- msgstr ""
-
- #: ../lib/masq_info.c:198
-+#, c-format
- msgid "IP masquerading entries\n"
- msgstr ""
-
- #: ../lib/masq_info.c:201
-+#, c-format
- msgid "prot expire source destination ports\n"
- msgstr ""
-
- #: ../lib/masq_info.c:204
-+#, c-format
- msgid ""
--"prot expire initseq delta prevd source destination "
--" ports\n"
-+"prot expire initseq delta prevd source "
-+"destination ports\n"
- msgstr ""
-
- #: ../lib/netrom_gr.c:48
-+#, c-format
- msgid "NET/ROM not configured in this system.\n"
- msgstr ""
-
- #: ../lib/netrom_gr.c:51
-+#, c-format
- msgid "Kernel NET/ROM routing table\n"
- msgstr ""
-
- #: ../lib/netrom_gr.c:52
-+#, c-format
- msgid "Destination Mnemonic Quality Neighbour Iface\n"
- msgstr ""
-
- #: ../lib/netrom_sr.c:34
-+#, c-format
- msgid "netrom usage\n"
- msgstr ""
-
- #: ../lib/netrom_sr.c:44
-+#, c-format
- msgid "NET/ROM: this needs to be written\n"
- msgstr ""
-
- #: ../lib/ppp.c:44
-+#, c-format
- msgid "You cannot start PPP with this program.\n"
- msgstr ""
-
- #: ../lib/ppp_ac.c:38
-+#, c-format
- msgid "Sorry, use pppd!\n"
- msgstr ""
-
-@@ -2108,287 +2583,314 @@ msgid "Node address must be ten digits"
- msgstr ""
-
- #: ../lib/rose_gr.c:51
-+#, c-format
- msgid "ROSE not configured in this system.\n"
- msgstr ""
-
- #: ../lib/rose_gr.c:54
-+#, c-format
- msgid "Kernel ROSE routing table\n"
- msgstr ""
-
--#: ../lib/tr.c:70 ../lib/tr.c:85
-+#: ../lib/tr.c:86 ../lib/tr.c:101
- #, c-format
- msgid "in_tr(%s): invalid token ring address!\n"
- msgstr ""
-
--#: ../lib/tr.c:97
-+#: ../lib/tr.c:113
- #, c-format
- msgid "in_tr(%s): trailing : ignored!\n"
- msgstr ""
-
--#: ../lib/tr.c:109
-+#: ../lib/tr.c:125
- #, c-format
- msgid "in_tr(%s): trailing junk!\n"
- msgstr ""
-
--#: ../lib/interface.c:164
-+#: ../lib/interface.c:174
- #, c-format
- msgid "warning: no inet socket available: %s\n"
- msgstr ""
-
--#: ../lib/interface.c:316
-+#: ../lib/interface.c:323
- #, c-format
- msgid "Warning: cannot open %s (%s). Limited output.\n"
- msgstr ""
-
- #. Give better error message for this case.
--#: ../lib/interface.c:556
-+#: ../lib/interface.c:570
- msgid "Device not found"
- msgstr ""
-
--#: ../lib/interface.c:560
-+#: ../lib/interface.c:574
- #, c-format
- msgid "%s: error fetching interface information: %s\n"
- msgstr ""
-
--#: ../lib/interface.c:593
-+#: ../lib/interface.c:607
- msgid " - no statistics available -"
- msgstr ""
-
--#: ../lib/interface.c:597
-+#: ../lib/interface.c:611
-+#, c-format
- msgid "[NO FLAGS]"
- msgstr ""
-
--#: ../lib/interface.c:673
-+#: ../lib/interface.c:687
- #, c-format
- msgid "%-9.9s Link encap:%s "
- msgstr ""
-
--#: ../lib/interface.c:678
-+#: ../lib/interface.c:692
- #, c-format
- msgid "HWaddr %s "
- msgstr ""
-
--#: ../lib/interface.c:681
-+#: ../lib/interface.c:695
- #, c-format
- msgid "Media:%s"
- msgstr ""
-
--#: ../lib/interface.c:683
-+#: ../lib/interface.c:697
-+#, c-format
- msgid "(auto)"
- msgstr ""
-
--#: ../lib/interface.c:690
-+#: ../lib/interface.c:704
- #, c-format
- msgid " %s addr:%s "
- msgstr ""
-
--#: ../lib/interface.c:693
-+#: ../lib/interface.c:707
- #, c-format
- msgid " P-t-P:%s "
- msgstr ""
-
--#: ../lib/interface.c:696
-+#: ../lib/interface.c:710
- #, c-format
- msgid " Bcast:%s "
- msgstr ""
-
--#: ../lib/interface.c:698
-+#: ../lib/interface.c:712
- #, c-format
- msgid " Mask:%s\n"
- msgstr ""
-
--#: ../lib/interface.c:715
-+#: ../lib/interface.c:729
- #, c-format
- msgid " inet6 addr: %s/%d"
- msgstr ""
-
--#: ../lib/interface.c:717
-+#: ../lib/interface.c:731
-+#, c-format
- msgid " Scope:"
- msgstr ""
-
--#: ../lib/interface.c:720
-+#: ../lib/interface.c:734
-+#, c-format
- msgid "Global"
- msgstr ""
-
--#: ../lib/interface.c:723
-+#: ../lib/interface.c:737
-+#, c-format
- msgid "Link"
- msgstr ""
-
--#: ../lib/interface.c:726
-+#: ../lib/interface.c:740
-+#, c-format
- msgid "Site"
- msgstr ""
-
--#: ../lib/interface.c:729
-+#: ../lib/interface.c:743
-+#, c-format
- msgid "Compat"
- msgstr ""
-
--#: ../lib/interface.c:732
-+#: ../lib/interface.c:746
-+#, c-format
- msgid "Host"
- msgstr ""
-
--#: ../lib/interface.c:735
-+#: ../lib/interface.c:749
-+#, c-format
- msgid "Unknown"
- msgstr ""
-
--#: ../lib/interface.c:750
-+#: ../lib/interface.c:764
- #, c-format
- msgid " IPX/Ethernet II addr:%s\n"
- msgstr ""
-
--#: ../lib/interface.c:753
-+#: ../lib/interface.c:767
- #, c-format
- msgid " IPX/Ethernet SNAP addr:%s\n"
- msgstr ""
-
--#: ../lib/interface.c:756
-+#: ../lib/interface.c:770
- #, c-format
- msgid " IPX/Ethernet 802.2 addr:%s\n"
- msgstr ""
-
--#: ../lib/interface.c:759
-+#: ../lib/interface.c:773
- #, c-format
- msgid " IPX/Ethernet 802.3 addr:%s\n"
- msgstr ""
-
--#: ../lib/interface.c:769
-+#: ../lib/interface.c:783
- #, c-format
- msgid " EtherTalk Phase 2 addr:%s\n"
- msgstr ""
-
--#: ../lib/interface.c:778
-+#: ../lib/interface.c:792
- #, c-format
- msgid " econet addr:%s\n"
- msgstr ""
-
--#: ../lib/interface.c:785
-+#: ../lib/interface.c:799
-+#, c-format
- msgid "[NO FLAGS] "
- msgstr ""
-
--#: ../lib/interface.c:787
-+#: ../lib/interface.c:801
-+#, c-format
- msgid "UP "
- msgstr ""
-
--#: ../lib/interface.c:789
-+#: ../lib/interface.c:803
-+#, c-format
- msgid "BROADCAST "
- msgstr ""
-
--#: ../lib/interface.c:791
-+#: ../lib/interface.c:805
-+#, c-format
- msgid "DEBUG "
- msgstr ""
-
--#: ../lib/interface.c:793
-+#: ../lib/interface.c:807
-+#, c-format
- msgid "LOOPBACK "
- msgstr ""
-
--#: ../lib/interface.c:795
-+#: ../lib/interface.c:809
-+#, c-format
- msgid "POINTOPOINT "
- msgstr ""
-
--#: ../lib/interface.c:797
-+#: ../lib/interface.c:811
-+#, c-format
- msgid "NOTRAILERS "
- msgstr ""
-
--#: ../lib/interface.c:799
-+#: ../lib/interface.c:813
-+#, c-format
- msgid "RUNNING "
- msgstr ""
-
--#: ../lib/interface.c:801
-+#: ../lib/interface.c:815
-+#, c-format
- msgid "NOARP "
- msgstr ""
-
--#: ../lib/interface.c:803
-+#: ../lib/interface.c:817
-+#, c-format
- msgid "PROMISC "
- msgstr ""
-
--#: ../lib/interface.c:805
-+#: ../lib/interface.c:819
-+#, c-format
- msgid "ALLMULTI "
- msgstr ""
-
--#: ../lib/interface.c:807
-+#: ../lib/interface.c:821
-+#, c-format
- msgid "SLAVE "
- msgstr ""
-
--#: ../lib/interface.c:809
-+#: ../lib/interface.c:823
-+#, c-format
- msgid "MASTER "
- msgstr ""
-
--#: ../lib/interface.c:811
-+#: ../lib/interface.c:825
-+#, c-format
- msgid "MULTICAST "
- msgstr ""
-
--#: ../lib/interface.c:814
-+#: ../lib/interface.c:828
-+#, c-format
- msgid "DYNAMIC "
- msgstr ""
-
- #. DONT FORGET TO ADD THE FLAGS IN ife_print_short
--#: ../lib/interface.c:817
-+#: ../lib/interface.c:831
- #, c-format
- msgid " MTU:%d Metric:%d"
- msgstr ""
-
--#: ../lib/interface.c:821
-+#: ../lib/interface.c:835
- #, c-format
- msgid " Outfill:%d Keepalive:%d"
- msgstr ""
-
--#: ../lib/interface.c:835
-+#: ../lib/interface.c:849
- #, c-format
- msgid "RX packets:%llu errors:%lu dropped:%lu overruns:%lu frame:%lu\n"
- msgstr ""
-
--#: ../lib/interface.c:840
-+#: ../lib/interface.c:854
- #, c-format
- msgid " compressed:%lu\n"
- msgstr ""
-
--#: ../lib/interface.c:852
-+#: ../lib/interface.c:894
- #, c-format
- msgid "TX packets:%llu errors:%lu dropped:%lu overruns:%lu carrier:%lu\n"
- msgstr ""
-
--#: ../lib/interface.c:856
-+#: ../lib/interface.c:898
- #, c-format
- msgid " collisions:%lu "
- msgstr ""
-
--#: ../lib/interface.c:858
-+#: ../lib/interface.c:900
- #, c-format
- msgid "compressed:%lu "
- msgstr ""
-
--#: ../lib/interface.c:860
-+#: ../lib/interface.c:902
- #, c-format
- msgid "txqueuelen:%d "
- msgstr ""
-
--#: ../lib/interface.c:862
-+#: ../lib/interface.c:904
- #, c-format
- msgid "RX bytes:%llu (%lu.%lu %s) TX bytes:%llu (%lu.%lu %s)\n"
- msgstr ""
-
--#: ../lib/interface.c:873
-+#: ../lib/interface.c:915
- #, c-format
- msgid "Interrupt:%d "
- msgstr ""
-
- #. Only print devices using it for
- #. I/O maps
--#: ../lib/interface.c:876
-+#: ../lib/interface.c:918
- #, c-format
- msgid "Base address:0x%x "
- msgstr ""
-
--#: ../lib/interface.c:878
-+#: ../lib/interface.c:920
- #, c-format
- msgid "Memory:%lx-%lx "
- msgstr ""
-
--#: ../lib/interface.c:881
-+#: ../lib/interface.c:923
- #, c-format
- msgid "DMA chan:%x "
- msgstr ""
-
- #: ../lib/sockets.c:63
-+#, c-format
- msgid "No usable address families found.\n"
- msgstr ""
-
-@@ -2413,14 +2915,17 @@ msgid "ip: argument is wrong: %s\n"
- msgstr ""
-
- #: ../ipmaddr.c:61
-+#, c-format
- msgid "Usage: ipmaddr [ add | del ] MULTIADDR dev STRING\n"
- msgstr ""
-
- #: ../ipmaddr.c:62
-+#, c-format
- msgid " ipmaddr show [ dev STRING ] [ ipv4 | ipv6 | link | all ]\n"
- msgstr ""
-
- #: ../ipmaddr.c:63
-+#, c-format
- msgid " ipmaddr -V | -version\n"
- msgstr ""
-
-@@ -2449,6 +2954,7 @@ msgid "slattach: tty_lock: (%s): %s\n"
- msgstr ""
-
- #: ../slattach.c:192
-+#, c-format
- msgid "slattach: cannot write PID file\n"
- msgstr ""
-
-@@ -2468,18 +2974,22 @@ msgid "slattach: tty_hangup(RAISE): %s\n"
- msgstr ""
-
- #: ../slattach.c:468
-+#, c-format
- msgid "slattach: tty name too long\n"
- msgstr ""
-
- #: ../slattach.c:498
-+#, c-format
- msgid "slattach: tty_open: cannot get current state!\n"
- msgstr ""
-
- #: ../slattach.c:505
-+#, c-format
- msgid "slattach: tty_open: cannot get current line disc!\n"
- msgstr ""
-
- #: ../slattach.c:513
-+#, c-format
- msgid "slattach: tty_open: cannot set RAW mode!\n"
- msgstr ""
-
-@@ -2489,6 +2999,7 @@ msgid "slattach: tty_open: cannot set %s bps!\n"
- msgstr ""
-
- #: ../slattach.c:530
-+#, c-format
- msgid "slattach: tty_open: cannot set 8N1 mode!\n"
- msgstr ""
-
-diff --git a/po/pt_BR.po b/po/pt_BR.po
-index 7c5dd37..17f1e5a 100644
---- a/po/pt_BR.po
-+++ b/po/pt_BR.po
-@@ -2,7 +2,7 @@
- # Copyright (C) 2000 Free Software Foundation, Inc.
- # Arnaldo Carvalho de Melo <acme@conectiva.com.br>, 2000.
- #
--# $Id: pt_BR.po,v 1.7 2000/02/13 22:28:11 ralf Exp $
-+# $Id: pt_BR.po,v 1.8 2006/12/14 23:36:24 ecki Exp $
- # Brazilian portuguese translation for net-tools 1.54
- # Copyright (C) 1998, 1999 Free Software Foundation, Inc.
- # Arnaldo Carvalho de Melo <acme@conectiva.com.br>, 1998-2000
-@@ -14,7 +14,7 @@ msgstr ""
- "PO-Revision-Date: 1999-03-01 02:38+0100\n"
- "Last-Translator: Arnaldo Carvalho de Melo <acme@conectiva.com.br>\n"
- "MIME-Version: 1.0\n"
--"Content-Type: text/plain; charset=ISO8859-9\n"
-+"Content-Type: text/plain; charset=iso-8859-9\n"
- "Content-Transfer-Encoding: 8bit\n"
-
- #: ../arp.c:110 ../arp.c:269
-@@ -64,8 +64,12 @@ msgid "arp: cannot set entry on line %u of etherfile %s !\n"
- msgstr "arp: no foi possvel configurar a linha %u do arquivo etherfile %s!\n"
-
- #: ../arp.c:437
--msgid "Address\t\t\tHWtype\tHWaddress\t Flags Mask\t\t Iface\n"
--msgstr "Endereo\t\tTipoHW\tEndereoHW\t Flags Mascara\t\t Iface\n"
-+msgid ""
-+"Address HWtype HWaddress Flags Mask "
-+"Iface\n"
-+msgstr ""
-+"Endereo TipoHW EndereoHW Flags Mascara "
-+"Iface\n"
-
- #: ../arp.c:467
- msgid "(incomplete)"
-@@ -2361,17 +2365,15 @@ msgstr "aten
- msgid "Warning: cannot open %s (%s). Limited output.\n"
- msgstr "Ateno: no foi possvel abrir %s (%s). Sada limitada.\n"
-
--#. Give better error message for this case.
-+#. better translation?
- #: ../lib/interface.c:504
- msgid "Device not found"
--msgstr "%s: dispositivo no encontrado"
-+msgstr "dispositivo no encontrado"
-
- #: ../lib/interface.c:508
- #, c-format
- msgid "%s: error fetching interface information: %s\n"
--msgstr ""
--"%s: erro obtendo informaes da interface: %s\n"
--"\n"
-+msgstr "%s: erro obtendo informaes da interface: %s\n"
-
- #: ../lib/sockets.c:59
- msgid "No usable address families found.\n"
-diff --git a/rarp.c b/rarp.c
-index aab05b3..ab8f710 100644
---- a/rarp.c
-+++ b/rarp.c
-@@ -3,7 +3,7 @@
- * that maintains the kernel's RARP cache. It is derived
- * from Fred N. van Kempen's arp command.
- *
-- * Version: $Id: rarp.c,v 1.6 2001/04/08 17:05:05 pb Exp $
-+ * Version: $Id: rarp.c,v 1.9 2007/12/02 02:19:52 ecki Exp $
- *
- * Usage: rarp -d hostname Delete entry
- * rarp -s hostname ethernet_address Add entry
-@@ -40,10 +40,11 @@
- #include "net-support.h"
- #include "version.h"
- #include "pathnames.h"
-+#include "proc.h"
-
- static char no_rarp_message[] = N_("This kernel does not support RARP.\n");
-
--static char version_string[] = RELEASE "\nrarp 1.03 (2001-04-04)\n";
-+static char *Release = RELEASE;
-
- static struct hwtype *hardware = NULL;
-
-@@ -154,7 +155,7 @@ static int rarp_file(int fd, const char *name)
-
- static int display_cache(void)
- {
-- FILE *fd = fopen(_PATH_PROCNET_RARP, "r");
-+ FILE *fd = proc_fopen(_PATH_PROCNET_RARP);
- char buffer[256];
- if (fd == NULL) {
- if (errno == ENOENT)
-@@ -225,7 +226,7 @@ int main(int argc, char **argv)
- case 'h':
- usage();
- case 'V':
-- fprintf(stderr, version_string);
-+ fprintf(stderr, "%s\n", Release);
- exit(E_VERSION);
- break;
- case 'v':
-diff --git a/route.c b/route.c
-index f8c2bc3..4eaed49 100644
---- a/route.c
-+++ b/route.c
-@@ -2,7 +2,7 @@
- * route This file contains an implementation of the command
- * that manages the IP routing table in the kernel.
- *
-- * Version: $Id: route.c,v 1.9 2001/04/15 14:41:17 pb Exp $
-+ * Version: $Id: route.c,v 1.10 2002/07/30 05:24:20 ecki Exp $
- *
- * Maintainer: Bernd 'eckes' Eckenfels, <net-tools@lina.inka.de>
- *
-@@ -10,7 +10,7 @@
- * (derived from FvK's 'route.c 1.70 01/04/94')
- *
- * Modifications:
-- * Johannes Stille: for Net-2Debugged by
-+ * Johannes Stille: for Net-2Debugged by
- * <johannes@titan.os.open.de>
- * Linus Torvalds: Misc Changes
- * Alan Cox: add the new mtu/window stuff
-@@ -19,7 +19,7 @@
- * {1.80} Bernd Eckenfels: reject, metric, irtt, 1.2.x support.
- * {1.81} Bernd Eckenfels: reject routes need a dummy device
- *960127 {1.82} Bernd Eckenfels: 'mod' and 'dyn' 'reinstate' added
-- *960129 {1.83} Bernd Eckenfels: resolve and getsock now in lib/,
-+ *960129 {1.83} Bernd Eckenfels: resolve and getsock now in lib/,
- * REJECT displays '-' as gatway.
- *960202 {1.84} Bernd Eckenfels: net-features support added
- *960203 {1.85} Bernd Eckenfels: "#ifdef' in '#if' for net-features
-@@ -60,20 +60,21 @@
- #include "intl.h"
- #include "pathnames.h"
- #include "version.h"
-+#include "util.h"
-
- #define DFLT_AF "inet"
-
- #define FEATURE_ROUTE
- #include "lib/net-features.h" /* needs some of the system includes above! */
-
--char *Release = RELEASE, *Version = "route 1.98 (2001-04-15)";
-+static char *Release = RELEASE;
-
--int opt_n = 0; /* numerical output flag */
--int opt_v = 0; /* debugging output flag */
--int opt_e = 1; /* 1,2,3=type of routetable */
--int opt_fc = 0; /* routing cache/FIB */
--int opt_h = 0; /* help selected */
--struct aftype *ap; /* current address family */
-+int opt_n = 0; // numerical output FLAG_NUM | FLAG_SYM
-+int opt_v = 0; // debugging output flag
-+int opt_e = 1; // 1,2,3=type of routetable
-+int opt_fc = 0; // routing cache/FIB
-+int opt_h = 0; // help selected
-+struct aftype *ap; // selected address family
-
- static void usage(void)
- {
-@@ -89,7 +90,7 @@ static void usage(void)
- fprintf(stderr, _(" -F, --fib display Forwarding Information Base (default)\n"));
- fprintf(stderr, _(" -C, --cache display routing cache instead of FIB\n\n"));
-
-- fprintf(stderr, _(" <AF>=Use '-A <af>' or '--<af>'; default: %s\n"), DFLT_AF);
-+ fprintf(stderr, _(" <AF>=Use -4, -6, '-A <af>' or '--<af>'; default: %s\n"), DFLT_AF);
- fprintf(stderr, _(" List of possible address families (which support routing):\n"));
- print_aflist(1); /* 1 = routeable */
- exit(E_USAGE);
-@@ -98,7 +99,7 @@ static void usage(void)
-
- static void version(void)
- {
-- fprintf(stderr, "%s\n%s\n%s\n", Release, Version, Features);
-+ fprintf(stderr, "%s\n%s\n", Release, Features);
- exit(E_VERSION);
- }
-
-@@ -135,14 +136,12 @@ int main(int argc, char **argv)
-
- /* getopts and -net wont work :-/ */
- for (tmp = argv; *tmp; tmp++) {
-- if (!strcmp(*tmp, "-net"))
-- strcpy(*tmp, "#net");
-- else if (!strcmp(*tmp, "-host"))
-- strcpy(*tmp, "#host");
-+ if (!strcmp(*tmp, "-net") || !strcmp(*tmp, "-host"))
-+ (*tmp)[0]='#';
- }
-
- /* Fetch the command-line arguments. */
-- while ((i = getopt_long(argc, argv, "A:eCFhnNVv?", longopts, &lop)) != EOF)
-+ while ((i = getopt_long(argc, argv, "A:eCFhnN64Vv?", longopts, &lop)) != EOF)
- switch (i) {
- case -1:
- break;
-@@ -176,6 +175,14 @@ int main(int argc, char **argv)
- if ((i = aftrans_opt(optarg)))
- exit(i);
- break;
-+ case '6':
-+ if ((i = aftrans_opt("inet6")))
-+ exit(i);
-+ break;
-+ case '4':
-+ if ((i = aftrans_opt("inet")))
-+ exit(i);
-+ break;
- case 'V':
- version();
- case 'h':
-diff --git a/slattach.c b/slattach.c
-index cedae1b..5c81584 100644
---- a/slattach.c
-+++ b/slattach.c
-@@ -40,7 +40,7 @@
- #include <limits.h>
- #include <pwd.h>
- #include <signal.h>
--#include <stdlib.h>
-+#include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
- #include <getopt.h>
-@@ -62,26 +62,27 @@
- #include "util.h"
-
- #ifndef _PATH_LOCKD
--#define _PATH_LOCKD "/var/lock" /* lock files */
-+#define _PATH_LOCKD "/var/lock" /* lock files */
- #endif
- #ifndef _UID_UUCP
--#define _UID_UUCP "uucp" /* owns locks */
-+#define _UID_UUCP "uucp" /* owns locks */
-+#endif
-+#ifndef _PATH_DEVPTMX
-+#define _PATH_DEVPTMX "/dev/ptmx" /* pseudo-terminal master */
- #endif
-
-
- #define DEF_PROTO "cslip"
-
-
--const char *Release = RELEASE,
-- *Version = "@(#) slattach 1.21 (1999-11-21)",
-- *Signature = "net-tools, Fred N. van Kempen et al.";
-+static char *Release = RELEASE, *Signature = "Fred N. van Kempen et al.";
-
-
- struct {
- const char *speed;
- int code;
- } tty_speeds[] = { /* table of usable baud rates */
-- { "50", B50 }, { "75", B75 },
-+ { "50", B50 }, { "75", B75 },
- { "110", B110 }, { "300", B300 },
- { "600", B600 }, { "1200", B1200 },
- { "2400", B2400 }, { "4800", B4800 },
-@@ -108,6 +109,7 @@ struct termios tty_saved, /* saved TTY device state */
- int tty_sdisc, /* saved TTY line discipline */
- tty_ldisc, /* current TTY line discipline */
- tty_fd = -1; /* TTY file descriptor */
-+char * path_pts = NULL; /* slave pseudo-terminal device */
- int opt_c = 0; /* "command" to run at exit */
- int opt_e = 0; /* "activate only" flag */
- int opt_h = 0; /* "hangup" on carrier loss */
-@@ -115,7 +117,7 @@ int opt_h = 0; /* "hangup" on carrier loss */
- int opt_k = 0; /* "keepalive" value */
- #endif
- int opt_l = 0; /* "lock it" flag */
--int opt_L = 0; /* clocal flag */
-+int opt_L = 0; /* 3-wire mode flag */
- int opt_m = 0; /* "set RAW mode" flag */
- int opt_n = 0; /* "set No Mesg" flag */
- #ifdef SIOCSOUTFILL
-@@ -149,7 +151,7 @@ tty_already_locked(char *nam)
- /* that lock. */
- i = fscanf(fd, "%d", &pid);
- (void) fclose(fd);
--
-+
- if (i != 1) /* Lock file format's wrong! Kill't */
- return(0);
-
-@@ -195,15 +197,18 @@ tty_lock(char *path, int mode)
- return(-1);
- }
-
-- (void) close(fd);
--
- /* Make sure UUCP owns the lockfile. Required by some packages. */
- if ((pw = getpwnam(_UID_UUCP)) == NULL) {
- if (opt_q == 0) fprintf(stderr, _("slattach: tty_lock: UUCP user %s unknown!\n"),
- _UID_UUCP);
-+ (void) close(fd);
- return(0); /* keep the lock anyway */
- }
-- (void) chown(saved_path, pw->pw_uid, pw->pw_gid);
-+ if (fchown(fd, pw->pw_uid, pw->pw_gid))
-+ /* keep the lock anyway */;
-+
-+ (void) close(fd);
-+
- saved_lock = 1;
- } else { /* unlock */
- if (saved_lock != 1) return(0);
-@@ -294,7 +299,7 @@ tty_set_parity(struct termios *tty, char *parity)
- switch(toupper(*parity)) {
- case 'N':
- tty->c_cflag &= ~(PARENB | PARODD);
-- break;
-+ break;
-
- case 'O':
- tty->c_cflag &= ~(PARENB | PARODD);
-@@ -342,9 +347,11 @@ tty_set_raw(struct termios *tty)
- tty->c_oflag = (0); /* output flags */
- tty->c_lflag = (0); /* local flags */
- speed = (tty->c_cflag & CBAUD); /* save current speed */
-- tty->c_cflag = (CRTSCTS | HUPCL | CREAD); /* UART flags */
-- if (opt_L)
-+ tty->c_cflag = (HUPCL | CREAD); /* UART flags */
-+ if (opt_L)
- tty->c_cflag |= CLOCAL;
-+ else
-+ tty->c_cflag |= CRTSCTS;
- tty->c_cflag |= speed; /* restore speed */
- return(0);
- }
-@@ -410,7 +417,7 @@ static int
- tty_get_name(char *name)
- {
- if (ioctl(tty_fd, SIOCGIFNAME, name) < 0) {
-- if (opt_q == 0)
-+ if (opt_q == 0)
- perror("tty_get_name");
- return(-errno);
- }
-@@ -464,7 +471,7 @@ tty_open(char *name, const char *speed)
- if (name != NULL) {
- if (name[0] != '/') {
- if (strlen(name + 6) > sizeof(pathbuf)) {
-- if (opt_q == 0) fprintf(stderr,
-+ if (opt_q == 0) fprintf(stderr,
- _("slattach: tty name too long\n"));
- return (-1);
- }
-@@ -488,7 +495,28 @@ tty_open(char *name, const char *speed)
- return(-errno);
- }
- tty_fd = fd;
-- if (opt_d) printf("slattach: tty_open: %s (fd=%d) ", path_open, fd);
-+ if (opt_d) printf("slattach: tty_open: %s (fd=%d)\n", path_open, fd);
-+ if (!strcmp(path_open, _PATH_DEVPTMX)) {
-+ if (opt_d) printf("slattach: tty_open: trying to grantpt and unlockpt\n");
-+ if (grantpt(fd) < 0) {
-+ if (opt_q == 0) fprintf(stderr,
-+ "slattach: tty_open: grantpt: %s\n", strerror(errno));
-+ return(-errno);
-+ }
-+ if (unlockpt(fd) < 0) {
-+ if (opt_q == 0) fprintf(stderr,
-+ "slattach: tty_open: unlockpt: %s\n", strerror(errno));
-+ return(-errno);
-+ }
-+ path_pts = ptsname(fd);
-+ if (path_pts == NULL) {
-+ if (opt_q == 0) fprintf(stderr,
-+ "slattach: tty_open: ptsname: %s\n", strerror(errno));
-+ return(-errno);
-+ }
-+ if (opt_d) printf("slattach: tty_open: %s: slave pseudo-terminal is %s\n",
-+ path_open, path_pts);
-+ }
- } else {
- tty_fd = 0;
- }
-@@ -504,7 +532,7 @@ tty_open(char *name, const char *speed)
- if (tty_get_disc(&tty_sdisc) < 0) {
- if (opt_q == 0) fprintf(stderr, _("slattach: tty_open: cannot get current line disc!\n"));
- return(-errno);
-- }
-+ }
- tty_ldisc = tty_sdisc;
-
- /* Put this terminal line in a 8-bit transparent mode. */
-@@ -565,15 +593,15 @@ usage(void)
- "[-c cmd] [-s speed] [-p protocol] tty | -\n"
- " slattach -V | --version\n";
-
-- fprintf(stderr, usage_msg);
-- exit(1);
-+ fputs(usage_msg, stderr);
-+ exit(E_USAGE);
- }
-
-
--static void
-+static void
- version(void)
- {
-- printf("%s\n%s\n%s\n", Release, Version, Signature);
-+ printf("%s\n%s\n", Release, Signature);
- exit(E_VERSION);
- }
-
-@@ -581,7 +609,7 @@ version(void)
- int
- main(int argc, char *argv[])
- {
-- char path_buf[128];
-+ char path_buf[128] = "";
- char *path_dev;
- char buff[128];
- const char *speed = NULL;
-@@ -593,7 +621,6 @@ main(int argc, char *argv[])
- { NULL, 0, NULL, 0 }
- };
-
-- strcpy(path_buf, "");
- path_dev = path_buf;
-
- /* Scan command line for any arguments. */
-@@ -667,7 +694,7 @@ main(int argc, char *argv[])
- usage();
- /*NOTREACHED*/
- }
--
-+
- if (setvbuf(stdout,0,_IOLBF,0)) {
- if (opt_q == 0) fprintf(stderr, _("slattach: setvbuf(stdout,0,_IOLBF,0) : %s\n"),
- strerror(errno));
-@@ -703,6 +730,7 @@ main(int argc, char *argv[])
- if (tty_get_name(buff)) { return(3); }
- printf(_("%s started"), proto);
- if (path_dev != NULL) printf(_(" on %s"), path_dev);
-+ if (path_pts != NULL) printf(_(" ptsname %s"), path_pts);
- printf(_(" interface %s\n"), buff);
- }
-
-@@ -738,7 +766,7 @@ main(int argc, char *argv[])
-
- tty_close();
- if(extcmd) /* external command on exit */
-- system(extcmd);
-+ exit(system(extcmd));
- }
- exit(0);
- }
-diff --git a/statistics.c b/statistics.c
-index a878df8..fe8ee4e 100644
---- a/statistics.c
-+++ b/statistics.c
-@@ -1,9 +1,9 @@
- /*
-- * Copyright 1997,1999,2000 Andi Kleen. Subject to the GPL.
-- * $Id: statistics.c,v 1.14 2001/02/02 18:01:23 pb Exp $
-- * 19980630 - i18n - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
-- * 19981113 - i18n fixes - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
-- * 19990101 - added net/netstat, -t, -u, -w supprt - Bernd Eckenfels
-+ * Copyright 1997,1999,2000 Andi Kleen. Subject to the GPL.
-+ * $Id: statistics.c,v 1.23 2010-10-29 19:24:36 ecki Exp $
-+ * 19980630 - i18n - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
-+ * 19981113 - i18n fixes - Arnaldo Carvalho de Melo <acme@conectiva.com.br>
-+ * 19990101 - added net/netstat, -t, -u, -w supprt - Bernd Eckenfels
- */
- #include <ctype.h>
- #include <stdio.h>
-@@ -11,6 +11,7 @@
- #include <string.h>
- #include "config.h"
- #include "intl.h"
-+#include "proc.h"
-
- /* #define WARN 1 */
-
-@@ -35,26 +36,26 @@ struct entry {
- enum State type;
- };
-
--struct statedesc {
-+struct statedesc {
- int indent;
-- char *title;
--};
-+ char *title;
-+};
-
--struct statedesc states[] = {
-+struct statedesc states[] = {
- [number] = { 4, NULL },
-- [opt_number] = { 4, NULL },
-+ [opt_number] = { 4, NULL },
- [i_forward] = { 4, NULL },
- [i_inp_icmp] = { 8, N_("ICMP input histogram:") },
- [i_outp_icmp] = { 8, N_("ICMP output histogram:") },
- [MaxState] = {0},
--};
-+};
-
- static enum State state;
-
- #define I_STATIC (1<<16) /* static configuration option. */
- #define I_TITLE (1<<17)
-
--/*
-+/*
- * XXX check against the snmp mib rfc.
- *
- * Don't mark the first field as translatable! It's a snmp MIB standard.
-@@ -63,54 +64,115 @@ static enum State state;
- struct entry Iptab[] =
- {
- {"Forwarding", N_("Forwarding is %s"), i_forward | I_STATIC},
-- {"DefaultTTL", N_("Default TTL is %u"), number | I_STATIC},
-- {"InReceives", N_("%u total packets received"), number},
-- {"InHdrErrors", N_("%u with invalid headers"), opt_number},
-- {"InAddrErrors", N_("%u with invalid addresses"), opt_number},
-- {"ForwDatagrams", N_("%u forwarded"), number},
-- {"InUnknownProtos", N_("%u with unknown protocol"), opt_number},
-- {"InDiscards", N_("%u incoming packets discarded"), number},
-- {"InDelivers", N_("%u incoming packets delivered"), number},
-- {"OutRequests", N_("%u requests sent out"), number}, /*? */
-- {"OutDiscards", N_("%u outgoing packets dropped"), opt_number},
-- {"OutNoRoutes", N_("%u dropped because of missing route"), opt_number},
-- {"ReasmTimeout", N_("%u fragments dropped after timeout"), opt_number},
-- {"ReasmReqds", N_("%u reassemblies required"), opt_number}, /* ? */
-- {"ReasmOKs", N_("%u packets reassembled ok"), opt_number},
-- {"ReasmFails", N_("%u packet reassembles failed"), opt_number},
-- {"FragOKs", N_("%u fragments received ok"), opt_number},
-- {"FragFails", N_("%u fragments failed"), opt_number},
-- {"FragCreates", N_("%u fragments created"), opt_number}
-+ {"DefaultTTL", N_("Default TTL is %llu"), number | I_STATIC},
-+ {"InReceives", N_("%llu total packets received"), number},
-+ {"InHdrErrors", N_("%llu with invalid headers"), opt_number},
-+ {"InAddrErrors", N_("%llu with invalid addresses"), opt_number},
-+ {"ForwDatagrams", N_("%llu forwarded"), number},
-+ {"InUnknownProtos", N_("%llu with unknown protocol"), opt_number},
-+ {"InDiscards", N_("%llu incoming packets discarded"), number},
-+ {"InDelivers", N_("%llu incoming packets delivered"), number},
-+ {"OutRequests", N_("%llu requests sent out"), number}, /*? */
-+ {"OutDiscards", N_("%llu outgoing packets dropped"), opt_number},
-+ {"OutNoRoutes", N_("%llu dropped because of missing route"), opt_number},
-+ {"ReasmTimeout", N_("%llu fragments dropped after timeout"), opt_number},
-+ {"ReasmReqds", N_("%llu reassemblies required"), opt_number}, /* ? */
-+ {"ReasmOKs", N_("%llu packets reassembled ok"), opt_number},
-+ {"ReasmFails", N_("%llu packet reassembles failed"), opt_number},
-+ {"FragOKs", N_("%llu fragments received ok"), opt_number},
-+ {"FragFails", N_("%llu fragments failed"), opt_number},
-+ {"FragCreates", N_("%llu fragments created"), opt_number}
-+};
-+
-+struct entry Ip6tab[] =
-+{
-+ {"Ip6InReceives", N_("%llu total packets received"), number},
-+ {"Ip6InHdrErrors", N_("%llu with invalid headers"), opt_number},
-+ {"Ip6InTooBigErrors", N_("%llu with packets too big"), opt_number},
-+ {"Ip6InNoRoutes", N_("%llu incoming packets with no route"), opt_number},
-+ {"Ip6InAddrErrors", N_("%llu with invalid addresses"), opt_number},
-+ {"Ip6InUnknownProtos", N_("%llu with unknown protocol"), opt_number},
-+ {"Ip6InTruncatedPkts", N_("%llu with truncated packets"), opt_number},
-+ {"Ip6InDiscards", N_("%llu incoming packets discarded"), number},
-+ {"Ip6InDelivers", N_("%llu incoming packets delivered"), number},
-+ {"Ip6OutForwDatagrams", N_("%llu forwarded"), number},
-+ {"Ip6OutRequests", N_("%llu requests sent out"), number}, /*? */
-+ {"Ip6OutDiscards", N_("%llu outgoing packets dropped"), opt_number},
-+ {"Ip6OutNoRoutes", N_("%llu dropped because of missing route"), opt_number},
-+ {"Ip6ReasmTimeout", N_("%llu fragments dropped after timeout"), opt_number},
-+ {"Ip6ReasmReqds", N_("%llu reassemblies required"), opt_number}, /* ? */
-+ {"Ip6ReasmOKs", N_("%llu packets reassembled ok"), opt_number},
-+ {"Ip6ReasmFails", N_("%llu packet reassembles failed"), opt_number},
-+ {"Ip6FragOKs", N_("%llu fragments received ok"), opt_number},
-+ {"Ip6FragFails", N_("%llu fragments failed"), opt_number},
-+ {"Ip6FragCreates", N_("%llu fragments created"), opt_number},
-+ {"Ip6InMcastPkts", N_("%llu incoming multicast packets"), opt_number},
-+ {"Ip6OutMcastPkts", N_("%llu outgoing multicast packets"), opt_number}
- };
-
- struct entry Icmptab[] =
- {
-- {"InMsgs", N_("%u ICMP messages received"), number},
-- {"InErrors", N_("%u input ICMP message failed."), number},
-- {"InDestUnreachs", N_("destination unreachable: %u"), i_inp_icmp | I_TITLE},
-- {"InTimeExcds", N_("timeout in transit: %u"), i_inp_icmp | I_TITLE},
-- {"InParmProbs", N_("wrong parameters: %u"), i_inp_icmp | I_TITLE}, /*? */
-- {"InSrcQuenchs", N_("source quenches: %u"), i_inp_icmp | I_TITLE},
-- {"InRedirects", N_("redirects: %u"), i_inp_icmp | I_TITLE},
-- {"InEchos", N_("echo requests: %u"), i_inp_icmp | I_TITLE},
-- {"InEchoReps", N_("echo replies: %u"), i_inp_icmp | I_TITLE},
-- {"InTimestamps", N_("timestamp request: %u"), i_inp_icmp | I_TITLE},
-- {"InTimestampReps", N_("timestamp reply: %u"), i_inp_icmp | I_TITLE},
-- {"InAddrMasks", N_("address mask request: %u"), i_inp_icmp | I_TITLE}, /*? */
-- {"InAddrMaskReps", N_("address mask replies: %u"), i_inp_icmp | I_TITLE}, /*? */
-- {"OutMsgs", N_("%u ICMP messages sent"), number},
-- {"OutErrors", N_("%u ICMP messages failed"), number},
-- {"OutDestUnreachs", N_("destination unreachable: %u"), i_outp_icmp | I_TITLE},
-- {"OutTimeExcds", N_("time exceeded: %u"), i_outp_icmp | I_TITLE},
-- {"OutParmProbs", N_("wrong parameters: %u"), i_outp_icmp | I_TITLE}, /*? */
-- {"OutSrcQuenchs", N_("source quench: %u"), i_outp_icmp | I_TITLE},
-- {"OutRedirects", N_("redirect: %u"), i_outp_icmp | I_TITLE},
-- {"OutEchos", N_("echo request: %u"), i_outp_icmp | I_TITLE},
-- {"OutEchoReps", N_("echo replies: %u"), i_outp_icmp | I_TITLE},
-- {"OutTimestamps", N_("timestamp requests: %u"), i_outp_icmp | I_TITLE},
-- {"OutTimestampReps", N_("timestamp replies: %u"), i_outp_icmp | I_TITLE},
-- {"OutAddrMasks", N_("address mask requests: %u"), i_outp_icmp | I_TITLE},
-- {"OutAddrMaskReps", N_("address mask replies: %u"), i_outp_icmp | I_TITLE},
-+ {"InMsgs", N_("%llu ICMP messages received"), number},
-+ {"InErrors", N_("%llu input ICMP message failed."), number},
-+ {"InDestUnreachs", N_("destination unreachable: %llu"), i_inp_icmp | I_TITLE},
-+ {"InTimeExcds", N_("timeout in transit: %llu"), i_inp_icmp | I_TITLE},
-+ {"InParmProbs", N_("wrong parameters: %llu"), i_inp_icmp | I_TITLE}, /*? */
-+ {"InSrcQuenchs", N_("source quenches: %llu"), i_inp_icmp | I_TITLE},
-+ {"InRedirects", N_("redirects: %llu"), i_inp_icmp | I_TITLE},
-+ {"InEchos", N_("echo requests: %llu"), i_inp_icmp | I_TITLE},
-+ {"InEchoReps", N_("echo replies: %llu"), i_inp_icmp | I_TITLE},
-+ {"InTimestamps", N_("timestamp request: %llu"), i_inp_icmp | I_TITLE},
-+ {"InTimestampReps", N_("timestamp reply: %llu"), i_inp_icmp | I_TITLE},
-+ {"InAddrMasks", N_("address mask request: %llu"), i_inp_icmp | I_TITLE}, /*? */
-+ {"InAddrMaskReps", N_("address mask replies: %llu"), i_inp_icmp | I_TITLE}, /*? */
-+ {"OutMsgs", N_("%llu ICMP messages sent"), number},
-+ {"OutErrors", N_("%llu ICMP messages failed"), number},
-+ {"OutDestUnreachs", N_("destination unreachable: %llu"), i_outp_icmp | I_TITLE},
-+ {"OutTimeExcds", N_("time exceeded: %llu"), i_outp_icmp | I_TITLE},
-+ {"OutParmProbs", N_("wrong parameters: %llu"), i_outp_icmp | I_TITLE}, /*? */
-+ {"OutSrcQuenchs", N_("source quench: %llu"), i_outp_icmp | I_TITLE},
-+ {"OutRedirects", N_("redirect: %llu"), i_outp_icmp | I_TITLE},
-+ {"OutEchos", N_("echo request: %llu"), i_outp_icmp | I_TITLE},
-+ {"OutEchoReps", N_("echo replies: %llu"), i_outp_icmp | I_TITLE},
-+ {"OutTimestamps", N_("timestamp requests: %llu"), i_outp_icmp | I_TITLE},
-+ {"OutTimestampReps", N_("timestamp replies: %llu"), i_outp_icmp | I_TITLE},
-+ {"OutAddrMasks", N_("address mask requests: %llu"), i_outp_icmp | I_TITLE},
-+ {"OutAddrMaskReps", N_("address mask replies: %llu"), i_outp_icmp | I_TITLE},
-+};
-+
-+struct entry Icmp6tab[] =
-+{
-+ {"Icmp6InMsgs", N_("%llu ICMP messages received"), number},
-+ {"Icmp6InErrors", N_("%llu input ICMP message failed."), number},
-+ {"Icmp6InDestUnreachs", N_("destination unreachable: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InPktTooBigs", N_("packets too big: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InTimeExcds", N_("received ICMPv6 time exceeded: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InParmProblems", N_("parameter problem: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InEchos", N_("echo requests: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InEchoReplies", N_("echo replies: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InGroupMembQueries", N_("group member queries: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InGroupMembResponses", N_("group member responses: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InGroupMembReductions", N_("group member reductions: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InRouterSolicits", N_("router solicits: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InRouterAdvertisements", N_("router advertisement: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InNeighborSolicits", N_("neighbour solicits: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InNeighborAdvertisements", N_("neighbour advertisement: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6InRedirects", N_("redirects: %llu"), i_inp_icmp | I_TITLE},
-+ {"Icmp6OutMsgs", N_("%llu ICMP messages sent"), number},
-+ {"Icmp6OutDestUnreachs", N_("destination unreachable: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutPktTooBigs", N_("packets too big: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutTimeExcds", N_("sent ICMPv6 time exceeded: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutParmProblems", N_("parameter problem: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutEchos", N_("echo requests: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutEchoReplies", N_("echo replies: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutGroupMembQueries", N_("group member queries: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutGroupMembResponses", N_("group member responses: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutGroupMembReductions", N_("group member reductions: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutRouterSolicits", N_("router solicits: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutRouterAdvertisements ", N_("router advertisement: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutNeighborSolicits", N_("neighbor solicits: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutNeighborAdvertisements", N_("neighbor advertisements: %llu"), i_outp_icmp | I_TITLE},
-+ {"Icmp6OutRedirects", N_("redirects: %llu"), i_outp_icmp | I_TITLE},
- };
-
- struct entry Tcptab[] =
-@@ -119,79 +181,129 @@ struct entry Tcptab[] =
- {"RtoMin", "", number},
- {"RtoMax", "", number},
- {"MaxConn", "", number},
-- {"ActiveOpens", N_("%u active connections openings"), number},
-- {"PassiveOpens", N_("%u passive connection openings"), number},
-- {"AttemptFails", N_("%u failed connection attempts"), number},
-- {"EstabResets", N_("%u connection resets received"), number},
-- {"CurrEstab", N_("%u connections established"), number},
-- {"InSegs", N_("%u segments received"), number},
-- {"OutSegs", N_("%u segments send out"), number},
-- {"RetransSegs", N_("%u segments retransmited"), number},
-- {"InErrs", N_("%u bad segments received."), number},
-- {"OutRsts", N_("%u resets sent"), number},
-+ {"ActiveOpens", N_("%llu active connections openings"), number},
-+ {"PassiveOpens", N_("%llu passive connection openings"), number},
-+ {"AttemptFails", N_("%llu failed connection attempts"), number},
-+ {"EstabResets", N_("%llu connection resets received"), number},
-+ {"CurrEstab", N_("%llu connections established"), number},
-+ {"InSegs", N_("%llu segments received"), number},
-+ {"OutSegs", N_("%llu segments send out"), number},
-+ {"RetransSegs", N_("%llu segments retransmited"), number},
-+ {"InErrs", N_("%llu bad segments received."), number},
-+ {"OutRsts", N_("%llu resets sent"), number},
- };
-
- struct entry Udptab[] =
- {
-- {"InDatagrams", N_("%u packets received"), number},
-- {"NoPorts", N_("%u packets to unknown port received."), number},
-- {"InErrors", N_("%u packet receive errors"), number},
-- {"OutDatagrams", N_("%u packets sent"), number},
-+ {"InDatagrams", N_("%llu packets received"), number},
-+ {"NoPorts", N_("%llu packets to unknown port received."), number},
-+ {"InErrors", N_("%llu packet receive errors"), number},
-+ {"OutDatagrams", N_("%llu packets sent"), number},
-+ {"RcvbufErrors", N_("%llu receive buffer errors"), number},
-+ {"SndbufErrors", N_("%llu send buffer errors"), number},
-+ };
-+
-+struct entry Udp6tab[] =
-+{
-+ {"Udp6InDatagrams", N_("%llu packets received"), number},
-+ {"Udp6NoPorts", N_("%llu packets to unknown port received."), number},
-+ {"Udp6InErrors", N_("%llu packet receive errors"), number},
-+ {"Udp6OutDatagrams", N_("%llu packets sent"), number},
- };
-
- struct entry Tcpexttab[] =
- {
-- {"SyncookiesSent", N_("%u SYN cookies sent"), opt_number},
-- {"SyncookiesRecv", N_("%u SYN cookies received"), opt_number},
-- {"SyncookiesFailed", N_("%u invalid SYN cookies received"), opt_number},
--
-- { "EmbryonicRsts", N_("%u resets received for embryonic SYN_RECV sockets"),
-- opt_number },
-- { "PruneCalled", N_("%u packets pruned from receive queue because of socket"
-- " buffer overrun"), opt_number },
-+ {"SyncookiesSent", N_("%llu SYN cookies sent"), opt_number},
-+ {"SyncookiesRecv", N_("%llu SYN cookies received"), opt_number},
-+ {"SyncookiesFailed", N_("%llu invalid SYN cookies received"), opt_number},
-+
-+ { "EmbryonicRsts", N_("%llu resets received for embryonic SYN_RECV sockets"),
-+ opt_number },
-+ { "PruneCalled", N_("%llu packets pruned from receive queue because of socket"
-+ " buffer overrun"), opt_number },
- /* obsolete: 2.2.0 doesn't do that anymore */
-- { "RcvPruned", N_("%u packets pruned from receive queue"), opt_number },
-- { "OfoPruned", N_("%u packets dropped from out-of-order queue because of"
-- " socket buffer overrun"), opt_number },
-- { "OutOfWindowIcmps", N_("%u ICMP packets dropped because they were "
-- "out-of-window"), opt_number },
-- { "LockDroppedIcmps", N_("%u ICMP packets dropped because"
-+ { "RcvPruned", N_("%llu packets pruned from receive queue"), opt_number },
-+ { "OfoPruned", N_("%llu packets dropped from out-of-order queue because of"
-+ " socket buffer overrun"), opt_number },
-+ { "OutOfWindowIcmps", N_("%llu ICMP packets dropped because they were "
-+ "out-of-window"), opt_number },
-+ { "LockDroppedIcmps", N_("%llu ICMP packets dropped because"
- " socket was locked"), opt_number },
-- { "TW", N_("%u TCP sockets finished time wait in fast timer"), opt_number },
-- { "TWRecycled", N_("%u time wait sockets recycled by time stamp"), opt_number },
-- { "TWKilled", N_("%u TCP sockets finished time wait in slow timer"), opt_number },
-- { "PAWSPassive", N_("%u passive connections rejected because of"
-+ { "TW", N_("%llu TCP sockets finished time wait in fast timer"), opt_number },
-+ { "TWRecycled", N_("%llu time wait sockets recycled by time stamp"), opt_number },
-+ { "TWKilled", N_("%llu TCP sockets finished time wait in slow timer"), opt_number },
-+ { "PAWSPassive", N_("%llu passive connections rejected because of"
- " time stamp"), opt_number },
-- { "PAWSActive", N_("%u active connections rejected because of "
-+ { "PAWSActive", N_("%llu active connections rejected because of "
- "time stamp"), opt_number },
-- { "PAWSEstab", N_("%u packets rejects in established connections because of"
-+ { "PAWSEstab", N_("%llu packets rejects in established connections because of"
- " timestamp"), opt_number },
-- { "DelayedACKs", N_("%u delayed acks sent"), opt_number },
-- { "DelayedACKLocked", N_("%u delayed acks further delayed because of"
-+ { "DelayedACKs", N_("%llu delayed acks sent"), opt_number },
-+ { "DelayedACKLocked", N_("%llu delayed acks further delayed because of"
- " locked socket"), opt_number },
-- { "DelayedACKLost", N_("Quick ack mode was activated %u times"), opt_number },
-- { "ListenOverflows", N_("%u times the listen queue of a socket overflowed"),
-+ { "DelayedACKLost", N_("Quick ack mode was activated %llu times"), opt_number },
-+ { "ListenOverflows", N_("%llu times the listen queue of a socket overflowed"),
- opt_number },
-- { "ListenDrops", N_("%u SYNs to LISTEN sockets ignored"), opt_number },
-- { "TCPPrequeued", N_("%u packets directly queued to recvmsg prequeue."),
-+ { "ListenDrops", N_("%llu SYNs to LISTEN sockets dropped"), opt_number },
-+ { "TCPPrequeued", N_("%llu packets directly queued to recvmsg prequeue."),
- opt_number },
-- { "TCPDirectCopyFromBacklog", N_("%u packets directly received"
-- " from backlog"), opt_number },
-- { "TCPDirectCopyFromPrequeue", N_("%u packets directly received"
-- " from prequeue"), opt_number },
-- { "TCPPrequeueDropped", N_("%u packets dropped from prequeue"), opt_number },
-- { "TCPHPHits", N_("%u packets header predicted"), number },
-- { "TCPHPHitsToUser", N_("%u packets header predicted and "
-+ { "TCPDirectCopyFromBacklog", N_("%llu bytes directly in process context from backlog"), opt_number },
-+ { "TCPDirectCopyFromPrequeue", N_("%llu bytes directly received in process context from prequeue"),
-+ opt_number },
-+ { "TCPPrequeueDropped", N_("%llu packets dropped from prequeue"), opt_number },
-+ { "TCPHPHits", N_("%llu packet headers predicted"), number },
-+ { "TCPHPHitsToUser", N_("%llu packets header predicted and "
- "directly queued to user"), opt_number },
-- { "SockMallocOOM", N_("Ran %u times out of system memory during "
-- "packet sending"), opt_number },
-+ { "SockMallocOOM", N_("Ran %llu times out of system memory during "
-+ "packet sending"), opt_number },
-+ { "TCPPureAcks", N_("%llu acknowledgments not containing data payload received"), opt_number },
-+ { "TCPHPAcks", N_("%llu predicted acknowledgments"), opt_number },
-+ { "TCPRenoRecovery", N_("%llu times recovered from packet loss due to fast retransmit"), opt_number },
-+ { "TCPSackRecovery", N_("%llu times recovered from packet loss by selective acknowledgements"), opt_number },
-+ { "TCPSACKReneging", N_("%llu bad SACK blocks received"), opt_number },
-+ { "TCPFACKReorder", N_("Detected reordering %llu times using FACK"), opt_number },
-+ { "TCPSACKReorder", N_("Detected reordering %llu times using SACK"), opt_number },
-+ { "TCPTSReorder", N_("Detected reordering %llu times using time stamp"), opt_number },
-+ { "TCPRenoReorder", N_("Detected reordering %llu times using reno fast retransmit"), opt_number },
-+ { "TCPFullUndo", N_("%llu congestion windows fully recovered without slow start"), opt_number },
-+ { "TCPPartialUndo", N_("%llu congestion windows partially recovered using Hoe heuristic"), opt_number },
-+ { "TCPDSackUndo", N_("%llu congestion window recovered without slow start using DSACK"), opt_number },
-+ { "TCPLossUndo", N_("%llu congestion windows recovered without slow start after partial ack"), opt_number },
-+ { "TCPLostRetransmits", N_("%llu retransmits lost"), opt_number },
-+ { "TCPRenoFailures", N_("%llu timeouts after reno fast retransmit"), opt_number },
-+ { "TCPSackFailures", N_("%llu timeouts after SACK recovery"), opt_number },
-+ { "TCPLossFailures", N_("%llu timeouts in loss state"), opt_number },
-+ { "TCPFastRetrans", N_("%llu fast retransmits"), opt_number },
-+ { "TCPForwardRetrans", N_("%llu forward retransmits"), opt_number },
-+ { "TCPSlowStartRetrans", N_("%llu retransmits in slow start"), opt_number },
-+ { "TCPTimeouts", N_("%llu other TCP timeouts"), opt_number },
-+ { "TCPRenoRecoveryFailed", N_("%llu reno fast retransmits failed"), opt_number },
-+ { "TCPSackRecoveryFail", N_("%llu SACK retransmits failed"), opt_number },
-+ { "TCPSchedulerFailed", N_("%llu times receiver scheduled too late for direct processing"), opt_number },
-+ { "TCPRcvCollapsed", N_("%llu packets collapsed in receive queue due to low socket buffer"), opt_number },
-+ { "TCPDSACKOldSent", N_("%llu DSACKs sent for old packets"), opt_number },
-+ { "TCPDSACKOfoSent", N_("%llu DSACKs sent for out of order packets"), opt_number },
-+ { "TCPDSACKRecv", N_("%llu DSACKs received"), opt_number },
-+ { "TCPDSACKOfoRecv", N_("%llu DSACKs for out of order packets received"), opt_number },
-+ { "TCPAbortOnSyn", N_("%llu connections reset due to unexpected SYN"), opt_number },
-+ { "TCPAbortOnData", N_("%llu connections reset due to unexpected data"), opt_number },
-+ { "TCPAbortOnClose", N_("%llu connections reset due to early user close"), opt_number },
-+ { "TCPAbortOnMemory", N_("%llu connections aborted due to memory pressure"), opt_number },
-+ { "TCPAbortOnTimeout", N_("%llu connections aborted due to timeout"), opt_number },
-+ { "TCPAbortOnLinger", N_("%llu connections aborted after user close in linger timeout"), opt_number },
-+ { "TCPAbortFailed", N_("%llu times unable to send RST due to no memory"), opt_number },
-+ { "TCPMemoryPressures", N_("TCP ran low on memory %llu times"), opt_number },
-+ { "TCPLoss", N_("%llu TCP data loss events"), opt_number },
-+ { "TCPDSACKUndo", N_("%llu congestion windows recovered without slow start by DSACK"),
-+ opt_number },
-+ { "TCPRenoRecoveryFail", N_("%llu classic Reno fast retransmits failed"), opt_number },
- };
-
- struct tabtab {
- char *title;
- struct entry *tab;
- size_t size;
-- int *flag;
-+ int *flag;
- };
-
- struct tabtab snmptabs[] =
-@@ -204,6 +316,15 @@ struct tabtab snmptabs[] =
- {NULL}
- };
-
-+struct tabtab snmp6tabs[] =
-+{
-+ {"Ip6", Ip6tab, sizeof(Ip6tab), &f_raw},
-+ {"Icmp6", Icmp6tab, sizeof(Icmp6tab), &f_raw},
-+ {"Udp6", Udp6tab, sizeof(Udp6tab), &f_udp},
-+ {"Tcp6", Tcptab, sizeof(Tcptab), &f_tcp},
-+ {NULL}
-+};
-+
- /* XXX IGMP */
-
- int cmpentries(const void *a, const void *b)
-@@ -211,18 +332,19 @@ int cmpentries(const void *a, const void *b)
- return strcmp(((struct entry *) a)->title, ((struct entry *) b)->title);
- }
-
--void printval(struct tabtab *tab, char *title, int val)
-+void printval(struct tabtab *tab, char *title, unsigned long long val)
- {
- struct entry *ent = NULL, key;
- int type;
- char buf[512];
-
- key.title = title;
-- if (tab->tab)
-+ if (tab->tab)
- ent = bsearch(&key, tab->tab, tab->size / sizeof(struct entry),
- sizeof(struct entry), cmpentries);
- if (!ent) { /* try our best */
-- printf("%*s%s: %d\n", states[state].indent, "", title, val);
-+ if (val)
-+ printf("%*s%s: %llu\n", states[state].indent, "", title, val);
- return;
- }
- type = ent->type;
-@@ -242,7 +364,7 @@ void printval(struct tabtab *tab, char *title, int val)
- buf[0] = '\0';
- switch (type) {
- case opt_number:
-- if (val == 0)
-+ if (val == 0)
- break;
- /*FALL THOUGH*/
- case number:
-@@ -272,7 +394,7 @@ struct tabtab *newtable(struct tabtab *tabs, char *title)
- {
- struct tabtab *t;
- static struct tabtab dummytab;
--
-+
- for (t = tabs; t->title; t++) {
- if (!strcmp(title, t->title)) {
- if (*(t->flag))
-@@ -281,22 +403,25 @@ struct tabtab *newtable(struct tabtab *tabs, char *title)
- return t;
- }
- }
-- if (!f_unknown)
-- return NULL;
-+ if (!f_unknown)
-+ return NULL;
- printf("%s:\n", _(title));
- dummytab.title = title;
-- dummytab.flag = &f_unknown;
-+ dummytab.flag = &f_unknown;
- return &dummytab;
- }
-
--void process_fd(FILE *f)
-+int process_fd(FILE *f, int all, char *filter)
- {
-- char buf1[1024], buf2[1024];
-+ char buf1[2048], buf2[2048];
- char *sp, *np, *p;
- while (fgets(buf1, sizeof buf1, f)) {
- int endflag;
- struct tabtab *tab;
-
-+ if (buf1[0] == '\n') // skip empty first line in 2.6 kernels
-+ continue;
-+
- if (!fgets(buf2, sizeof buf2, f))
- break;
- sp = strchr(buf1, ':');
-@@ -305,6 +430,10 @@ void process_fd(FILE *f)
- goto formaterr;
- *sp = '\0';
-
-+ if (!all)
-+ if (strncmp(buf1, filter, strlen(filter)))
-+ continue;
-+
- tab = newtable(snmptabs, buf1);
- if (tab == NULL) {
- printf("unknown %s\n", buf1);
-@@ -315,8 +444,8 @@ void process_fd(FILE *f)
-
- endflag = 0;
- while (!endflag) {
-- sp += strspn(sp, " \t\n");
-- np += strspn(np, " \t\n");
-+ sp += strspn(sp, " \t\n");
-+ np += strspn(np, " \t\n");
- /*if (*np == '\0') goto formaterr; */
-
- p = sp+strcspn(sp, " \t\n");
-@@ -324,51 +453,116 @@ void process_fd(FILE *f)
- endflag = 1;
- *p = '\0';
-
-- if (*sp != '\0' && *(tab->flag))
-- printval(tab, sp, strtoul(np, &np, 10));
-+ if (*sp != '\0' && *(tab->flag))
-+ printval(tab, sp, strtoull(np, &np, 10));
-
- sp = p + 1;
- }
- }
-- return;
--
-+ return 0;
-+
- formaterr:
-- perror(_("error parsing /proc/net/snmp"));
-- return;
-+ return -1;
- }
-
-+void cpytitle(char *original, char *new)
-+{
-+ char *ptr = original;
-+ while(*ptr != '6' && *ptr != '\0') {
-+ *new = *ptr;
-+ new++;
-+ ptr++;
-+ }
-+ *new = *ptr;
-+ new++;
-+ *new = '\0';
-+}
-+
-+void process6_fd(FILE *f)
-+{
-+ char buf1[1024],buf2[50],buf3[1024];
-+ unsigned long long val;
-+ struct tabtab *tab = NULL;
-+ int cpflg = 0;
-+
-+ while (fgets(buf1, sizeof buf1, f)) {
-+ sscanf(buf1, "%s %llu", buf2, &val);
-+ if(!cpflg) {
-+ cpytitle(buf2, buf3);
-+ tab = newtable(snmp6tabs, buf3);
-+ cpflg = 1;
-+ }
-+ if(!strstr(buf2, buf3)) {
-+ cpytitle(buf2, buf3);
-+ tab = newtable(snmp6tabs, buf3);
-+ }
-+ if (*(tab->flag))
-+ printval(tab, buf2, val);
-+ }
-+
-+}
-
- void parsesnmp(int flag_raw, int flag_tcp, int flag_udp)
- {
- FILE *f;
-
- f_raw = flag_raw; f_tcp = flag_tcp; f_udp = flag_udp;
--
-- f = fopen("/proc/net/snmp", "r");
-+
-+ f = proc_fopen("/proc/net/snmp");
- if (!f) {
- perror(_("cannot open /proc/net/snmp"));
- return;
- }
-- process_fd(f);
-+
-+ if (process_fd(f, 1, NULL) < 0)
-+ fprintf(stderr, _("Problem while parsing /proc/net/snmp\n"));
-
- if (ferror(f))
- perror("/proc/net/snmp");
-
- fclose(f);
-
-- f = fopen("/proc/net/netstat", "r");
-+ f = proc_fopen("/proc/net/netstat");
-
- if (f) {
-- process_fd(f);
-+ if (process_fd(f, 1, NULL) <0)
-+ fprintf(stderr, _("Problem while parsing /proc/net/netstat\n"));
-
- if (ferror(f))
- perror("/proc/net/netstat");
--
-+
- fclose(f);
- }
- return;
- }
--
-+
-+void parsesnmp6(int flag_raw, int flag_tcp, int flag_udp)
-+{
-+ FILE *f;
-+
-+ f_raw = flag_raw; f_tcp = flag_tcp; f_udp = flag_udp;
-+
-+ f = fopen("/proc/net/snmp6", "r");
-+ if (!f) {
-+ perror(_("cannot open /proc/net/snmp6"));
-+ return;
-+ }
-+ process6_fd(f);
-+ if (ferror(f))
-+ perror("/proc/net/snmp6");
-+
-+ fclose(f);
-+ f = fopen("/proc/net/snmp", "r");
-+ if (!f) {
-+ perror(_("cannot open /proc/net/snmp"));
-+ return;
-+ }
-+ process_fd(f, 0, "Tcp");
-+ if (ferror(f))
-+ perror("/proc/net/snmp");
-+
-+ fclose(f);
-+}
-
- void inittab(void)
- {
-@@ -379,3 +573,13 @@ void inittab(void)
- qsort(t->tab, t->size / sizeof(struct entry),
- sizeof(struct entry), cmpentries);
- }
-+
-+void inittab6(void)
-+{
-+ struct tabtab *t;
-+
-+ for (t = snmp6tabs; t->title; t++)
-+ qsort(t->tab, t->size / sizeof(struct entry),
-+ sizeof(struct entry), cmpentries);
-+}
-+
diff --git a/main/net-tools/musl-fixes.patch b/main/net-tools/musl-fixes.patch
deleted file mode 100644
index 4d6170ca962..00000000000
--- a/main/net-tools/musl-fixes.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-diff --git a/lib/inet6_gr.c b/lib/inet6_gr.c
-index 72b4a66..2361809 100644
---- a/lib/inet6_gr.c
-+++ b/lib/inet6_gr.c
-@@ -23,7 +23,7 @@
- #include <string.h>
- #include <stdio.h>
- #include <unistd.h>
--#ifndef __GLIBC__
-+#ifdef HAVE_IPV6_ROUTE_H
- #include <netinet6/ipv6_route.h> /* glibc doesn't have this */
- #endif
- #include "version.h"
-diff --git a/lib/inet6_sr.c b/lib/inet6_sr.c
-index 1ad9510..96dbd5f 100644
---- a/lib/inet6_sr.c
-+++ b/lib/inet6_sr.c
-@@ -23,10 +23,10 @@
- #include <string.h>
- #include <stdio.h>
- #include <unistd.h>
--#ifdef __GLIBC__
--#include <net/route.h>
--#else
-+#ifdef HAVE_IPV6_ROUTE_H
- #include <netinet6/ipv6_route.h> /* glibc does not have this */
-+#else
-+#include <net/route.h>
- #endif
- #include "version.h"
- #include "net-support.h"
-diff --git a/lib/inet_sr.c b/lib/inet_sr.c
-index 1a876ae..6a26a76 100644
---- a/lib/inet_sr.c
-+++ b/lib/inet_sr.c
-@@ -26,6 +26,7 @@
- #include <string.h>
- #include <stdio.h>
- #include <unistd.h>
-+#include <asm-generic/param.h>
- #include "version.h"
- #include "net-support.h"
- #include "pathnames.h"
-diff --git a/lib/util-ank.c b/lib/util-ank.c
-index b077f35..4ee59f6 100644
---- a/lib/util-ank.c
-+++ b/lib/util-ank.c
-@@ -14,6 +14,7 @@
- * Rani Assaf <rani@magic.metawire.com> 980929: resolve addresses
- */
-
-+#include <limits.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <unistd.h>
-diff --git a/mii-tool.c b/mii-tool.c
-index 1cfecc2..fbc3b34 100644
---- a/mii-tool.c
-+++ b/mii-tool.c
-@@ -46,10 +46,6 @@
- #include <net/if.h>
- #include <linux/sockios.h>
-
--#ifndef __GLIBC__
--#include <linux/if_arp.h>
--#include <linux/if_ether.h>
--#endif
- #include <linux/mii.h>
- #include <linux/sockios.h>
- #include "version.h"
-diff --git a/netstat.c b/netstat.c
-index d0c364f..8453f18 100644
---- a/netstat.c
-+++ b/netstat.c
-@@ -88,6 +88,7 @@
- #include <sys/stat.h>
- #include <net/if.h>
- #include <dirent.h>
-+#include <asm-generic/param.h>
-
- #include "net-support.h"
- #include "pathnames.h"
-diff --git a/slattach.c b/slattach.c
-index 5c81584..3ccde28 100644
---- a/slattach.c
-+++ b/slattach.c
-@@ -44,6 +44,7 @@
- #include <string.h>
- #include <unistd.h>
- #include <getopt.h>
-+#include <termios.h>
- #include <linux/if_slip.h>
-
- #if defined(__GLIBC__)
diff --git a/main/netcat-openbsd/0001-port-to-linux-with-libsd.patch b/main/netcat-openbsd/0001-port-to-linux-with-libsd.patch
deleted file mode 100644
index 4e15a74dc35..00000000000
--- a/main/netcat-openbsd/0001-port-to-linux-with-libsd.patch
+++ /dev/null
@@ -1,438 +0,0 @@
-From: Aron Xu <aron@debian.org>
-Date: Mon, 13 Feb 2012 15:59:31 +0800
-Subject: port to linux with libsd
-
----
- Makefile | 17 ++++++++++--
- nc.1 | 4 +--
- netcat.c | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---------
- socks.c | 46 +++++++++++++++----------------
- 4 files changed, 122 insertions(+), 41 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 150f829..96a6587 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,19 @@
--# $OpenBSD: Makefile,v 1.6 2001/09/02 18:45:41 jakob Exp $
-+# $OpenBSD: Makefile,v 1.6 2001/09/02 18:45:41 jakob Exp $
-
- PROG= nc
- SRCS= netcat.c atomicio.c socks.c
-
--.include <bsd.prog.mk>
-+LIBS= `pkg-config --libs libbsd` -lresolv
-+OBJS= $(SRCS:.c=.o)
-+CFLAGS= -g -O2
-+LDFLAGS= -Wl,--no-add-needed
-+
-+all: nc
-+nc: $(OBJS)
-+ $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(LIBS) -o nc
-+
-+$(OBJS): %.o: %.c
-+ $(CC) $(CFLAGS) -c $< -o $@
-+
-+clean:
-+ rm -f $(OBJS) nc
-diff --git a/nc.1 b/nc.1
-index d83cb5c..67cc19f 100644
---- a/nc.1
-+++ b/nc.1
-@@ -169,9 +169,6 @@ Proxy authentication is only supported for HTTP CONNECT proxies at present.
- Specifies the source port
- .Nm
- should use, subject to privilege restrictions and availability.
--It is an error to use this option in conjunction with the
--.Fl l
--option.
- .It Fl r
- Specifies that source and/or destination ports should be chosen randomly
- instead of sequentially within a range or in the order that the system
-@@ -193,6 +190,7 @@ Change IPv4 TOS value.
- may be one of
- .Ar critical ,
- .Ar inetcontrol ,
-+.Ar lowcost ,
- .Ar lowdelay ,
- .Ar netcontrol ,
- .Ar throughput ,
-diff --git a/netcat.c b/netcat.c
-index 6358539..30591de 100644
---- a/netcat.c
-+++ b/netcat.c
-@@ -42,6 +42,46 @@
- #include <netinet/ip.h>
- #include <arpa/telnet.h>
-
-+#ifndef IPTOS_LOWDELAY
-+# define IPTOS_LOWDELAY 0x10
-+# define IPTOS_THROUGHPUT 0x08
-+# define IPTOS_RELIABILITY 0x04
-+# define IPTOS_LOWCOST 0x02
-+# define IPTOS_MINCOST IPTOS_LOWCOST
-+#endif /* IPTOS_LOWDELAY */
-+
-+# ifndef IPTOS_DSCP_AF11
-+# define IPTOS_DSCP_AF11 0x28
-+# define IPTOS_DSCP_AF12 0x30
-+# define IPTOS_DSCP_AF13 0x38
-+# define IPTOS_DSCP_AF21 0x48
-+# define IPTOS_DSCP_AF22 0x50
-+# define IPTOS_DSCP_AF23 0x58
-+# define IPTOS_DSCP_AF31 0x68
-+# define IPTOS_DSCP_AF32 0x70
-+# define IPTOS_DSCP_AF33 0x78
-+# define IPTOS_DSCP_AF41 0x88
-+# define IPTOS_DSCP_AF42 0x90
-+# define IPTOS_DSCP_AF43 0x98
-+# define IPTOS_DSCP_EF 0xb8
-+#endif /* IPTOS_DSCP_AF11 */
-+
-+#ifndef IPTOS_DSCP_CS0
-+# define IPTOS_DSCP_CS0 0x00
-+# define IPTOS_DSCP_CS1 0x20
-+# define IPTOS_DSCP_CS2 0x40
-+# define IPTOS_DSCP_CS3 0x60
-+# define IPTOS_DSCP_CS4 0x80
-+# define IPTOS_DSCP_CS5 0xa0
-+# define IPTOS_DSCP_CS6 0xc0
-+# define IPTOS_DSCP_CS7 0xe0
-+#endif /* IPTOS_DSCP_CS0 */
-+
-+#ifndef IPTOS_DSCP_EF
-+# define IPTOS_DSCP_EF 0xb8
-+#endif /* IPTOS_DSCP_EF */
-+
-+
- #include <err.h>
- #include <errno.h>
- #include <fcntl.h>
-@@ -54,6 +94,8 @@
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
-+#include <bsd/stdlib.h>
-+#include <bsd/string.h>
- #include "atomicio.h"
-
- #ifndef SUN_LEN
-@@ -130,7 +172,7 @@ main(int argc, char *argv[])
- struct servent *sv;
- socklen_t len;
- struct sockaddr_storage cliaddr;
-- char *proxy;
-+ char *proxy = NULL;
- const char *errstr, *proxyhost = "", *proxyport = NULL;
- struct addrinfo proxyhints;
- char unix_dg_tmp_socket_buf[UNIX_DG_TMP_SOCKET_SIZE];
-@@ -211,10 +253,14 @@ main(int argc, char *argv[])
- uflag = 1;
- break;
- case 'V':
-+# if defined(RT_TABLEID_MAX)
- rtableid = (int)strtonum(optarg, 0,
- RT_TABLEID_MAX, &errstr);
- if (errstr)
- errx(1, "rtable %s: %s", errstr, optarg);
-+# else
-+ errx(1, "no alternate routing table support available");
-+# endif
- break;
- case 'v':
- vflag = 1;
-@@ -249,7 +295,11 @@ main(int argc, char *argv[])
- errstr, optarg);
- break;
- case 'S':
-+# if defined(TCP_MD5SIG)
- Sflag = 1;
-+# else
-+ errx(1, "no TCP MD5 signature support available");
-+# endif
- break;
- case 'T':
- errstr = NULL;
-@@ -276,6 +326,15 @@ main(int argc, char *argv[])
- if (argv[0] && !argv[1] && family == AF_UNIX) {
- host = argv[0];
- uport = NULL;
-+ } else if (!argv[0] && lflag) {
-+ if (sflag)
-+ errx(1, "cannot use -s and -l");
-+ if (zflag)
-+ errx(1, "cannot use -z and -l");
-+ if (pflag)
-+ uport=pflag;
-+ } else if (!lflag && kflag) {
-+ errx(1, "cannot use -k without -l");
- } else if (argv[0] && !argv[1]) {
- if (!lflag)
- usage(1);
-@@ -287,14 +346,7 @@ main(int argc, char *argv[])
- } else
- usage(1);
-
-- if (lflag && sflag)
-- errx(1, "cannot use -s and -l");
-- if (lflag && pflag)
-- errx(1, "cannot use -p and -l");
-- if (lflag && zflag)
-- errx(1, "cannot use -z and -l");
-- if (!lflag && kflag)
-- errx(1, "must use -l with -k");
-+
-
- /* Get name of temporary socket for unix datagram client */
- if ((family == AF_UNIX) && uflag && !lflag) {
-@@ -303,8 +355,8 @@ main(int argc, char *argv[])
- } else {
- strlcpy(unix_dg_tmp_socket_buf, "/tmp/nc.XXXXXXXXXX",
- UNIX_DG_TMP_SOCKET_SIZE);
-- if (mktemp(unix_dg_tmp_socket_buf) == NULL)
-- err(1, "mktemp");
-+ if (mkstemp(unix_dg_tmp_socket_buf) == -1)
-+ err(1, "mkstemp");
- unix_dg_tmp_socket = unix_dg_tmp_socket_buf;
- }
- }
-@@ -598,16 +650,20 @@ remote_connect(const char *host, const char *port, struct addrinfo hints)
- res0->ai_protocol)) < 0)
- continue;
-
-+# if defined(RT_TABLEID_MAX)
- if (rtableid >= 0 && (setsockopt(s, SOL_SOCKET, SO_RTABLE,
- &rtableid, sizeof(rtableid)) == -1))
- err(1, "setsockopt SO_RTABLE");
-+# endif
-
- /* Bind to a local port or source address if specified. */
- if (sflag || pflag) {
- struct addrinfo ahints, *ares;
-
-+# if defined (SO_BINDANY)
- /* try SO_BINDANY, but don't insist */
- setsockopt(s, SOL_SOCKET, SO_BINDANY, &on, sizeof(on));
-+# endif
- memset(&ahints, 0, sizeof(struct addrinfo));
- ahints.ai_family = res0->ai_family;
- ahints.ai_socktype = uflag ? SOCK_DGRAM : SOCK_STREAM;
-@@ -707,13 +763,21 @@ local_listen(char *host, char *port, struct addrinfo hints)
- res0->ai_protocol)) < 0)
- continue;
-
-+# if defined(RT_TABLEID_MAX)
- if (rtableid >= 0 && (setsockopt(s, SOL_SOCKET, SO_RTABLE,
- &rtableid, sizeof(rtableid)) == -1))
- err(1, "setsockopt SO_RTABLE");
-+# endif
-
-+ ret = setsockopt(s, SOL_SOCKET, SO_REUSEADDR, &x, sizeof(x));
-+ if (ret == -1)
-+ err(1, NULL);
-+
-+# if defined(SO_REUSEPORT)
- ret = setsockopt(s, SOL_SOCKET, SO_REUSEPORT, &x, sizeof(x));
- if (ret == -1)
- err(1, NULL);
-+# endif
-
- set_common_sockopts(s, res0->ai_family);
-
-@@ -1134,11 +1198,13 @@ set_common_sockopts(int s, int af)
- {
- int x = 1;
-
-+# if defined(TCP_MD5SIG)
- if (Sflag) {
- if (setsockopt(s, IPPROTO_TCP, TCP_MD5SIG,
- &x, sizeof(x)) == -1)
- err(1, NULL);
- }
-+# endif
- if (Dflag) {
- if (setsockopt(s, SOL_SOCKET, SO_DEBUG,
- &x, sizeof(x)) == -1)
-@@ -1201,6 +1267,7 @@ map_tos(char *s, int *val)
- { "cs7", IPTOS_DSCP_CS7 },
- { "ef", IPTOS_DSCP_EF },
- { "inetcontrol", IPTOS_PREC_INTERNETCONTROL },
-+ { "lowcost", IPTOS_LOWCOST },
- { "lowdelay", IPTOS_LOWDELAY },
- { "netcontrol", IPTOS_PREC_NETCONTROL },
- { "reliability", IPTOS_RELIABILITY },
-@@ -1247,6 +1314,9 @@ report_connect(const struct sockaddr *sa, socklen_t salen)
- void
- help(void)
- {
-+# if defined(DEBIAN_VERSION)
-+ fprintf(stderr, "OpenBSD netcat (Debian patchlevel " DEBIAN_VERSION ")\n");
-+# endif
- usage(0);
- fprintf(stderr, "\tCommand Summary:\n\
- \t-4 Use IPv4\n\
-@@ -1278,7 +1348,7 @@ help(void)
- \t-x addr[:port]\tSpecify proxy address and port\n\
- \t-z Zero-I/O mode [used for scanning]\n\
- Port numbers can be individual or ranges: lo-hi [inclusive]\n");
-- exit(1);
-+ exit(0);
- }
-
- void
-@@ -1286,7 +1356,7 @@ usage(int ret)
- {
- fprintf(stderr,
- "usage: nc [-46DdFhklNnrStUuvz] [-I length] [-i interval] [-O length]\n"
-- "\t [-P proxy_username] [-p source_port] [-s source] [-T ToS]\n"
-+ "\t [-P proxy_username] [-p source_port] [-s source] [-T toskeyword]\n"
- "\t [-V rtable] [-w timeout] [-X proxy_protocol]\n"
- "\t [-x proxy_address[:port]] [destination] [port]\n");
- if (ret)
-diff --git a/socks.c b/socks.c
-index 1b06e0e..57e4316 100644
---- a/socks.c
-+++ b/socks.c
-@@ -38,7 +38,7 @@
- #include <string.h>
- #include <unistd.h>
- #include <resolv.h>
--#include <readpassphrase.h>
-+#include <bsd/readpassphrase.h>
- #include "atomicio.h"
-
- #define SOCKS_PORT "1080"
-@@ -167,11 +167,11 @@ socks_connect(const char *host, const char *port,
- buf[2] = SOCKS_NOAUTH;
- cnt = atomicio(vwrite, proxyfd, buf, 3);
- if (cnt != 3)
-- err(1, "write failed (%zu/3)", cnt);
-+ err(1, "write failed (%zu/3)", (size_t)cnt);
-
- cnt = atomicio(read, proxyfd, buf, 2);
- if (cnt != 2)
-- err(1, "read failed (%zu/3)", cnt);
-+ err(1, "read failed (%zu/3)", (size_t)cnt);
-
- if (buf[1] == SOCKS_NOMETHOD)
- errx(1, "authentication method negotiation failed");
-@@ -220,23 +220,23 @@ socks_connect(const char *host, const char *port,
-
- cnt = atomicio(vwrite, proxyfd, buf, wlen);
- if (cnt != wlen)
-- err(1, "write failed (%zu/%zu)", cnt, wlen);
-+ err(1, "write failed (%zu/%zu)", (size_t)cnt, (size_t)wlen);
-
- cnt = atomicio(read, proxyfd, buf, 4);
- if (cnt != 4)
-- err(1, "read failed (%zu/4)", cnt);
-+ err(1, "read failed (%zu/4)", (size_t)cnt);
- if (buf[1] != 0)
- errx(1, "connection failed, SOCKS error %d", buf[1]);
- switch (buf[3]) {
- case SOCKS_IPV4:
- cnt = atomicio(read, proxyfd, buf + 4, 6);
- if (cnt != 6)
-- err(1, "read failed (%zu/6)", cnt);
-+ err(1, "read failed (%zu/6)", (size_t)cnt);
- break;
- case SOCKS_IPV6:
- cnt = atomicio(read, proxyfd, buf + 4, 18);
- if (cnt != 18)
-- err(1, "read failed (%zu/18)", cnt);
-+ err(1, "read failed (%zu/18)", (size_t)cnt);
- break;
- default:
- errx(1, "connection failed, unsupported address type");
-@@ -256,11 +256,11 @@ socks_connect(const char *host, const char *port,
-
- cnt = atomicio(vwrite, proxyfd, buf, wlen);
- if (cnt != wlen)
-- err(1, "write failed (%zu/%zu)", cnt, wlen);
-+ err(1, "write failed (%zu/%zu)", (size_t)cnt, (size_t)wlen);
-
- cnt = atomicio(read, proxyfd, buf, 8);
- if (cnt != 8)
-- err(1, "read failed (%zu/8)", cnt);
-+ err(1, "read failed (%zu/8)", (size_t)cnt);
- if (buf[1] != 90)
- errx(1, "connection failed, SOCKS error %d", buf[1]);
- } else if (socksv == -1) {
-@@ -272,39 +272,39 @@ socks_connect(const char *host, const char *port,
-
- /* Try to be sane about numeric IPv6 addresses */
- if (strchr(host, ':') != NULL) {
-- r = snprintf(buf, sizeof(buf),
-+ r = snprintf((char*)buf, sizeof(buf),
- "CONNECT [%s]:%d HTTP/1.0\r\n",
- host, ntohs(serverport));
- } else {
-- r = snprintf(buf, sizeof(buf),
-+ r = snprintf((char*)buf, sizeof(buf),
- "CONNECT %s:%d HTTP/1.0\r\n",
- host, ntohs(serverport));
- }
- if (r == -1 || (size_t)r >= sizeof(buf))
- errx(1, "hostname too long");
-- r = strlen(buf);
-+ r = strlen((char*)buf);
-
- cnt = atomicio(vwrite, proxyfd, buf, r);
- if (cnt != r)
-- err(1, "write failed (%zu/%d)", cnt, r);
-+ err(1, "write failed (%zu/%d)", (size_t)cnt, (int)r);
-
- if (authretry > 1) {
- char resp[1024];
-
- proxypass = getproxypass(proxyuser, proxyhost);
-- r = snprintf(buf, sizeof(buf), "%s:%s",
-+ r = snprintf((char*)buf, sizeof(buf), "%s:%s",
- proxyuser, proxypass);
- if (r == -1 || (size_t)r >= sizeof(buf) ||
-- b64_ntop(buf, strlen(buf), resp,
-+ b64_ntop(buf, strlen((char*)buf), resp,
- sizeof(resp)) == -1)
- errx(1, "Proxy username/password too long");
-- r = snprintf(buf, sizeof(buf), "Proxy-Authorization: "
-+ r = snprintf((char*)buf, sizeof(buf), "Proxy-Authorization: "
- "Basic %s\r\n", resp);
- if (r == -1 || (size_t)r >= sizeof(buf))
- errx(1, "Proxy auth response too long");
-- r = strlen(buf);
-+ r = strlen((char*)buf);
- if ((cnt = atomicio(vwrite, proxyfd, buf, r)) != r)
-- err(1, "write failed (%zu/%d)", cnt, r);
-+ err(1, "write failed (%zu/%d)", (size_t)cnt, r);
- }
-
- /* Terminate headers */
-@@ -312,22 +312,22 @@ socks_connect(const char *host, const char *port,
- err(1, "write failed (%zu/2)", cnt);
-
- /* Read status reply */
-- proxy_read_line(proxyfd, buf, sizeof(buf));
-+ proxy_read_line(proxyfd, (char*)buf, sizeof(buf));
- if (proxyuser != NULL &&
-- strncmp(buf, "HTTP/1.0 407 ", 12) == 0) {
-+ strncmp((char*)buf, "HTTP/1.0 407 ", 12) == 0) {
- if (authretry > 1) {
- fprintf(stderr, "Proxy authentication "
- "failed\n");
- }
- close(proxyfd);
- goto again;
-- } else if (strncmp(buf, "HTTP/1.0 200 ", 12) != 0 &&
-- strncmp(buf, "HTTP/1.1 200 ", 12) != 0)
-+ } else if (strncmp((char*)buf, "HTTP/1.0 200 ", 12) != 0 &&
-+ strncmp((char*)buf, "HTTP/1.1 200 ", 12) != 0)
- errx(1, "Proxy error: \"%s\"", buf);
-
- /* Headers continue until we hit an empty line */
- for (r = 0; r < HTTP_MAXHDRS; r++) {
-- proxy_read_line(proxyfd, buf, sizeof(buf));
-+ proxy_read_line(proxyfd, (char*)buf, sizeof(buf));
- if (*buf == '\0')
- break;
- }
---
diff --git a/main/netcat-openbsd/0002-connect-timeout.patch b/main/netcat-openbsd/0002-connect-timeout.patch
deleted file mode 100644
index 0ea679cc77f..00000000000
--- a/main/netcat-openbsd/0002-connect-timeout.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-From: Aron Xu <aron@debian.org>
-Date: Mon, 13 Feb 2012 14:43:56 +0800
-Subject: connect timeout
-
----
- netcat.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
- 1 file changed, 75 insertions(+), 2 deletions(-)
-
-diff --git a/netcat.c b/netcat.c
-index 30591de..d40e3a5 100644
---- a/netcat.c
-+++ b/netcat.c
-@@ -113,6 +113,10 @@
- #define POLL_STDOUT 3
- #define BUFSIZE 16384
-
-+#define CONNECTION_SUCCESS 0
-+#define CONNECTION_FAILED 1
-+#define CONNECTION_TIMEOUT 2
-+
- /* Command Line Options */
- int dflag; /* detached, no stdin */
- int Fflag; /* fdpass sock to stdout */
-@@ -163,6 +167,9 @@ void usage(int);
- ssize_t drainbuf(int, unsigned char *, size_t *);
- ssize_t fillbuf(int, unsigned char *, size_t *);
-
-+static int connect_with_timeout(int fd, const struct sockaddr *sa,
-+ socklen_t salen, int ctimeout);
-+
- int
- main(int argc, char *argv[])
- {
-@@ -680,11 +687,14 @@ remote_connect(const char *host, const char *port, struct addrinfo hints)
-
- set_common_sockopts(s, res0->ai_family);
-
-- if (timeout_connect(s, res0->ai_addr, res0->ai_addrlen) == 0)
-+ if ((error = connect_with_timeout(s, res0->ai_addr, res0->ai_addrlen, timeout))== CONNECTION_SUCCESS)
- break;
-- else if (vflag)
-+ else if (vflag && error == CONNECTION_FAILED)
- warn("connect to %s port %s (%s) failed", host, port,
- uflag ? "udp" : "tcp");
-+ else if (vflag && error == CONNECTION_TIMEOUT)
-+ warn("connect to %s port %s (%s) timed out", host, port,
-+ uflag ? "udp" : "tcp");
-
- close(s);
- s = -1;
-@@ -732,6 +742,69 @@ timeout_connect(int s, const struct sockaddr *name, socklen_t namelen)
- return (ret);
- }
-
-+static int connect_with_timeout(int fd, const struct sockaddr *sa,
-+ socklen_t salen, int ctimeout)
-+{
-+ int err;
-+ struct timeval tv, *tvp = NULL;
-+ fd_set connect_fdset;
-+ socklen_t len;
-+ int orig_flags;
-+
-+ orig_flags = fcntl(fd, F_GETFL, 0);
-+ if (fcntl(fd, F_SETFL, orig_flags | O_NONBLOCK) < 0 ) {
-+ warn("can't set O_NONBLOCK - timeout not available");
-+ if (connect(fd, sa, salen) == 0)
-+ return CONNECTION_SUCCESS;
-+ else
-+ return CONNECTION_FAILED;
-+ }
-+
-+ /* set connect timeout */
-+ if (ctimeout > 0) {
-+ tv.tv_sec = (time_t)ctimeout/1000;
-+ tv.tv_usec = 0;
-+ tvp = &tv;
-+ }
-+
-+ /* attempt the connection */
-+ err = connect(fd, sa, salen);
-+ if (err != 0 && errno == EINPROGRESS) {
-+ /* connection is proceeding
-+ * it is complete (or failed) when select returns */
-+
-+ /* initialize connect_fdset */
-+ FD_ZERO(&connect_fdset);
-+ FD_SET(fd, &connect_fdset);
-+
-+ /* call select */
-+ do {
-+ err = select(fd + 1, NULL, &connect_fdset,
-+ NULL, tvp);
-+ } while (err < 0 && errno == EINTR);
-+
-+ /* select error */
-+ if (err < 0)
-+ errx(1,"select error: %s", strerror(errno));
-+ /* we have reached a timeout */
-+ if (err == 0)
-+ return CONNECTION_TIMEOUT;
-+ /* select returned successfully, but we must test socket
-+ * error for result */
-+ len = sizeof(err);
-+ if (getsockopt(fd, SOL_SOCKET, SO_ERROR, &err, &len) < 0)
-+ errx(1, "getsockopt error: %s", strerror(errno));
-+ /* setup errno according to the result returned by
-+ * getsockopt */
-+ if (err != 0)
-+ errno = err;
-+ }
-+
-+ /* return aborted if an error occured, and valid otherwise */
-+ fcntl(fd, F_SETFL, orig_flags);
-+ return (err != 0)? CONNECTION_FAILED : CONNECTION_SUCCESS;
-+}
-+
- /*
- * local_listen()
- * Returns a socket listening on a local port, binds to specified source
---
diff --git a/main/netcat-openbsd/0003-get-sev-by-name.patch b/main/netcat-openbsd/0003-get-sev-by-name.patch
deleted file mode 100644
index c5ba82ee699..00000000000
--- a/main/netcat-openbsd/0003-get-sev-by-name.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From: Aron Xu <aron@debian.org>
-Date: Mon, 13 Feb 2012 14:45:08 +0800
-Subject: get sev by name
-
----
- netcat.c | 9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/netcat.c b/netcat.c
-index d40e3a5..e0ad5c7 100644
---- a/netcat.c
-+++ b/netcat.c
-@@ -1193,12 +1193,19 @@ atelnet(int nfd, unsigned char *buf, unsigned int size)
- void
- build_ports(char *p)
- {
-+ struct servent *sv;
- const char *errstr;
- char *n;
- int hi, lo, cp;
- int x = 0;
-
-- if ((n = strchr(p, '-')) != NULL) {
-+ sv = getservbyname(p, uflag ? "udp" : "tcp");
-+ if (sv) {
-+ portlist[0] = calloc(1, PORT_MAX_LEN);
-+ if (portlist[0] == NULL)
-+ err(1, NULL);
-+ snprintf(portlist[0], PORT_MAX_LEN, "%d", ntohs(sv->s_port));
-+ } else if ((n = strchr(p, '-')) != NULL) {
- *n = '\0';
- n++;
-
---
diff --git a/main/netcat-openbsd/0004-send-crlf.patch b/main/netcat-openbsd/0004-send-crlf.patch
deleted file mode 100644
index 8c787c0f23e..00000000000
--- a/main/netcat-openbsd/0004-send-crlf.patch
+++ /dev/null
@@ -1,173 +0,0 @@
-From: Aron Xu <aron@debian.org>
-Date: Mon, 13 Feb 2012 14:57:45 +0800
-Subject: send crlf
-
----
- nc.1 | 6 ++++--
- netcat.c | 50 ++++++++++++++++++++++++++++++++++++--------------
- 2 files changed, 40 insertions(+), 16 deletions(-)
-
-diff --git a/nc.1 b/nc.1
-index 67cc19f..746d3b6 100644
---- a/nc.1
-+++ b/nc.1
-@@ -34,7 +34,7 @@
- .Sh SYNOPSIS
- .Nm nc
- .Bk -words
--.Op Fl 46DdFhklNnrStUuvz
-+.Op Fl 46CDdFhklNnrStUuvz
- .Op Fl I Ar length
- .Op Fl i Ar interval
- .Op Fl O Ar length
-@@ -98,6 +98,8 @@ to use IPv4 addresses only.
- Forces
- .Nm
- to use IPv6 addresses only.
-+.It Fl C
-+Send CRLF as line-ending.
- .It Fl D
- Enable debugging on the socket.
- .It Fl d
-@@ -377,7 +379,7 @@ More complicated examples can be built up when the user knows the format
- of requests required by the server.
- As another example, an email may be submitted to an SMTP server using:
- .Bd -literal -offset indent
--$ nc localhost 25 \*(Lt\*(Lt EOF
-+$ nc [\-C] localhost 25 \*(Lt\*(Lt EOF
- HELO host.example.com
- MAIL FROM:\*(Ltuser@host.example.com\*(Gt
- RCPT TO:\*(Ltuser2@host.example.com\*(Gt
-diff --git a/netcat.c b/netcat.c
-index e0ad5c7..1c90145 100644
---- a/netcat.c
-+++ b/netcat.c
-@@ -118,6 +118,7 @@
- #define CONNECTION_TIMEOUT 2
-
- /* Command Line Options */
-+int Cflag = 0; /* CRLF line-ending */
- int dflag; /* detached, no stdin */
- int Fflag; /* fdpass sock to stdout */
- unsigned int iflag; /* Interval Flag */
-@@ -164,7 +165,7 @@ void set_common_sockopts(int, int);
- int map_tos(char *, int *);
- void report_connect(const struct sockaddr *, socklen_t);
- void usage(int);
--ssize_t drainbuf(int, unsigned char *, size_t *);
-+ssize_t drainbuf(int, unsigned char *, size_t *, int);
- ssize_t fillbuf(int, unsigned char *, size_t *);
-
- static int connect_with_timeout(int fd, const struct sockaddr *sa,
-@@ -194,7 +195,7 @@ main(int argc, char *argv[])
- signal(SIGPIPE, SIG_IGN);
-
- while ((ch = getopt(argc, argv,
-- "46DdFhI:i:klNnO:P:p:rSs:tT:UuV:vw:X:x:z")) != -1) {
-+ "46CDdFhI:i:klNnO:P:p:rSs:tT:UuV:vw:X:x:z")) != -1) {
- switch (ch) {
- case '4':
- family = AF_INET;
-@@ -322,6 +323,9 @@ main(int argc, char *argv[])
- if (Tflag < 0 || Tflag > 255 || errstr || errno)
- errx(1, "illegal tos value %s", optarg);
- break;
-+ case 'C':
-+ Cflag = 1;
-+ break;
- default:
- usage(1);
- }
-@@ -928,12 +932,6 @@ readwrite(int net_fd)
- return;
- }
-
-- /* help says -i is for "wait between lines sent". We read and
-- * write arbitrary amounts of data, and we don't want to start
-- * scanning for newlines, so this is as good as it gets */
-- if (iflag)
-- sleep(iflag);
--
- /* poll */
- num_fds = poll(pfd, 4, timeout);
-
-@@ -999,7 +997,7 @@ readwrite(int net_fd)
- /* try to write to network */
- if (pfd[POLL_NETOUT].revents & POLLOUT && stdinbufpos > 0) {
- ret = drainbuf(pfd[POLL_NETOUT].fd, stdinbuf,
-- &stdinbufpos);
-+ &stdinbufpos, (iflag || Cflag) ? 1 : 0);
- if (ret == -1)
- pfd[POLL_NETOUT].fd = -1;
- /* buffer empty - remove self from polling */
-@@ -1034,7 +1032,7 @@ readwrite(int net_fd)
- /* try to write to stdout */
- if (pfd[POLL_STDOUT].revents & POLLOUT && netinbufpos > 0) {
- ret = drainbuf(pfd[POLL_STDOUT].fd, netinbuf,
-- &netinbufpos);
-+ &netinbufpos, 0);
- if (ret == -1)
- pfd[POLL_STDOUT].fd = -1;
- /* buffer empty - remove self from polling */
-@@ -1059,17 +1057,40 @@ readwrite(int net_fd)
- }
-
- ssize_t
--drainbuf(int fd, unsigned char *buf, size_t *bufpos)
-+drainbuf(int fd, unsigned char *buf, size_t *bufpos, int oneline)
- {
-- ssize_t n;
-+ ssize_t n, r;
- ssize_t adjust;
-+ unsigned char *lf = NULL;
-+
-+ if (oneline)
-+ lf = memchr(buf, '\n', *bufpos);
-+ if (lf == NULL) {
-+ n = *bufpos;
-+ oneline = 0;
-+ }
-+ else if (Cflag && (lf == buf || buf[lf - buf - 1] != '\r')) {
-+ n = lf - buf;
-+ oneline = 2;
-+ }
-+ else
-+ n = lf - buf + 1;
-+ if (n > 0)
-+ n = write(fd, buf, n);
-
-- n = write(fd, buf, *bufpos);
- /* don't treat EAGAIN, EINTR as error */
- if (n == -1 && (errno == EAGAIN || errno == EINTR))
- n = -2;
-+ if (oneline == 2 && n >= 0)
-+ n++;
- if (n <= 0)
- return n;
-+
-+ if (oneline == 2 && (r = atomicio(vwrite, fd, "\r\n", 2)) != 2)
-+ err(1, "write failed (%zu/2)", r);
-+ if (oneline > 0 && iflag)
-+ sleep(iflag);
-+
- /* adjust buffer */
- adjust = *bufpos - n;
- if (adjust > 0)
-@@ -1401,6 +1422,7 @@ help(void)
- fprintf(stderr, "\tCommand Summary:\n\
- \t-4 Use IPv4\n\
- \t-6 Use IPv6\n\
-+ \t-C Send CRLF as line-ending\n\
- \t-D Enable the debug socket option\n\
- \t-d Detach from stdin\n\
- \t-F Pass socket fd\n\
-@@ -1435,7 +1457,7 @@ void
- usage(int ret)
- {
- fprintf(stderr,
-- "usage: nc [-46DdFhklNnrStUuvz] [-I length] [-i interval] [-O length]\n"
-+ "usage: nc [-46CDdFhklNnrStUuvz] [-I length] [-i interval] [-O length]\n"
- "\t [-P proxy_username] [-p source_port] [-s source] [-T toskeyword]\n"
- "\t [-V rtable] [-w timeout] [-X proxy_protocol]\n"
- "\t [-x proxy_address[:port]] [destination] [port]\n");
---
diff --git a/main/netcat-openbsd/0005-quit-timer.patch b/main/netcat-openbsd/0005-quit-timer.patch
deleted file mode 100644
index a4b3fa6bd82..00000000000
--- a/main/netcat-openbsd/0005-quit-timer.patch
+++ /dev/null
@@ -1,140 +0,0 @@
-From: Aron Xu <aron@debian.org>
-Date: Mon, 13 Feb 2012 15:16:04 +0800
-Subject: quit timer
-
----
- nc.1 | 5 +++++
- netcat.c | 52 +++++++++++++++++++++++++++++++++++++++++++---------
- 2 files changed, 48 insertions(+), 9 deletions(-)
-
-diff --git a/nc.1 b/nc.1
-index 746d3b6..1ee6887 100644
---- a/nc.1
-+++ b/nc.1
-@@ -40,6 +40,7 @@
- .Op Fl O Ar length
- .Op Fl P Ar proxy_username
- .Op Fl p Ar source_port
-+.Op Fl q Ar seconds
- .Op Fl s Ar source
- .Op Fl T Ar toskeyword
- .Op Fl V Ar rtable
-@@ -171,6 +172,15 @@ Proxy authentication is only supported for HTTP CONNECT proxies at present.
- Specifies the source port
- .Nm
- should use, subject to privilege restrictions and availability.
-+.It Fl q Ar seconds
-+after EOF on stdin, wait the specified number of
-+.Ar seconds
-+and then quit. If
-+.Ar seconds
-+is negative, wait forever (default). Specifying a non-negative
-+.Ar seconds
-+implies
-+.Fl N .
- .It Fl r
- Specifies that source and/or destination ports should be chosen randomly
- instead of sequentially within a range or in the order that the system
-diff --git a/netcat.c b/netcat.c
-index 1c90145..7572bb2 100644
---- a/netcat.c
-+++ b/netcat.c
-@@ -128,6 +128,7 @@ int Nflag; /* shutdown() network socket */
- int nflag; /* Don't do name look up */
- char *Pflag; /* Proxy username */
- char *pflag; /* Localport flag */
-+int qflag = -1; /* Quit after some secs */
- int rflag; /* Random ports flag */
- char *sflag; /* Source Address */
- int tflag; /* Telnet Emulation */
-@@ -171,6 +172,8 @@ ssize_t fillbuf(int, unsigned char *, size_t *);
- static int connect_with_timeout(int fd, const struct sockaddr *sa,
- socklen_t salen, int ctimeout);
-
-+static void quit();
-+
- int
- main(int argc, char *argv[])
- {
-@@ -195,7 +198,7 @@ main(int argc, char *argv[])
- signal(SIGPIPE, SIG_IGN);
-
- while ((ch = getopt(argc, argv,
-- "46CDdFhI:i:klNnO:P:p:rSs:tT:UuV:vw:X:x:z")) != -1) {
-+ "46CDdFhI:i:klNnO:P:p:q:rSs:tT:UuV:vw:X:x:z")) != -1) {
- switch (ch) {
- case '4':
- family = AF_INET;
-@@ -248,6 +251,13 @@ main(int argc, char *argv[])
- case 'p':
- pflag = optarg;
- break;
-+ case 'q':
-+ qflag = strtonum(optarg, INT_MIN, INT_MAX, &errstr);
-+ if (errstr)
-+ errx(1, "quit timer %s: %s", errstr, optarg);
-+ if (qflag >= 0)
-+ Nflag = 1;
-+ break;
- case 'r':
- rflag = 1;
- break;
-@@ -918,18 +928,26 @@ readwrite(int net_fd)
- if (pfd[POLL_STDIN].fd == -1 && pfd[POLL_NETIN].fd == -1
- && stdinbufpos == 0 && netinbufpos == 0) {
- close(net_fd);
-- return;
-+ if (qflag <= 0)
-+ return;
-+ goto delay_exit;
- }
- /* both outputs are gone, we can't continue */
- if (pfd[POLL_NETOUT].fd == -1 && pfd[POLL_STDOUT].fd == -1) {
- close(net_fd);
-- return;
-+ if (qflag <= 0)
-+ return;
-+ goto delay_exit;
- }
- /* listen and net in gone, queues empty, done */
- if (lflag && pfd[POLL_NETIN].fd == -1
- && stdinbufpos == 0 && netinbufpos == 0) {
- close(net_fd);
-- return;
-+ if (qflag <= 0)
-+ return;
-+delay_exit:
-+ signal(SIGALRM, quit);
-+ alarm(qflag);
- }
-
- /* poll */
-@@ -1436,6 +1454,7 @@ help(void)
- \t-O length TCP send buffer length\n\
- \t-P proxyuser\tUsername for proxy authentication\n\
- \t-p port\t Specify local port for remote connects\n\
-+ \t-q secs\t quit after EOF on stdin and delay of secs\n\
- \t-r Randomize remote ports\n\
- \t-S Enable the TCP MD5 signature option\n\
- \t-s addr\t Local source address\n\
-@@ -1458,9 +1477,18 @@ usage(int ret)
- {
- fprintf(stderr,
- "usage: nc [-46CDdFhklNnrStUuvz] [-I length] [-i interval] [-O length]\n"
-- "\t [-P proxy_username] [-p source_port] [-s source] [-T toskeyword]\n"
-- "\t [-V rtable] [-w timeout] [-X proxy_protocol]\n"
-+ "\t [-P proxy_username] [-p source_port] [-q seconds] [-s source]\n"
-+ "\t [-T toskeyword] [-V rtable] [-w timeout] [-X proxy_protocol]\n"
- "\t [-x proxy_address[:port]] [destination] [port]\n");
- if (ret)
- exit(1);
- }
-+
-+/*
-+ * quit()
-+ * handler for a "-q" timeout (exit 0 instead of 1)
-+ */
-+static void quit()
-+{
-+ exit(0);
-+}
diff --git a/main/netcat-openbsd/0006-udp-scan-timeout.patch b/main/netcat-openbsd/0006-udp-scan-timeout.patch
deleted file mode 100644
index 799acc6ac5a..00000000000
--- a/main/netcat-openbsd/0006-udp-scan-timeout.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From: Aron Xu <aron@debian.org>
-Date: Mon, 13 Feb 2012 15:29:37 +0800
-Subject: udp scan timeout
-
----
- netcat.c | 25 ++++++++++++++++---------
- 1 file changed, 16 insertions(+), 9 deletions(-)
-
-diff --git a/netcat.c b/netcat.c
-index f971893..9ab507a 100644
---- a/netcat.c
-+++ b/netcat.c
-@@ -117,6 +117,8 @@
- #define CONNECTION_FAILED 1
- #define CONNECTION_TIMEOUT 2
-
-+#define UDP_SCAN_TIMEOUT 3 /* Seconds */
-+
- /* Command Line Options */
- int Cflag = 0; /* CRLF line-ending */
- int dflag; /* detached, no stdin */
-@@ -525,7 +527,7 @@ main(int argc, char *argv[])
- continue;
-
- ret = 0;
-- if (vflag || zflag) {
-+ if (vflag) {
- /* For UDP, make sure we are connected. */
- if (uflag) {
- if (udptest(s) == -1) {
-@@ -1298,15 +1300,20 @@ build_ports(char *p)
- int
- udptest(int s)
- {
-- int i, ret;
--
-- for (i = 0; i <= 3; i++) {
-- if (write(s, "X", 1) == 1)
-- ret = 1;
-- else
-- ret = -1;
-+ int i, t;
-+
-+ if ((write(s, "X", 1) != 1) ||
-+ ((write(s, "X", 1) != 1) && (errno == ECONNREFUSED)))
-+ return -1;
-+
-+ /* Give the remote host some time to reply. */
-+ for (i = 0, t = (timeout == -1) ? UDP_SCAN_TIMEOUT : (timeout / 1000);
-+ i < t; i++) {
-+ sleep(1);
-+ if ((write(s, "X", 1) != 1) && (errno == ECONNREFUSED))
-+ return -1;
- }
-- return (ret);
-+ return 1;
- }
-
- void
---
diff --git a/main/netcat-openbsd/0007-verbose-numeric-port.patch b/main/netcat-openbsd/0007-verbose-numeric-port.patch
deleted file mode 100644
index dd6ed009440..00000000000
--- a/main/netcat-openbsd/0007-verbose-numeric-port.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From: Aron Xu <aron@debian.org>
-Date: Mon, 13 Feb 2012 15:38:15 +0800
-Subject: verbose numeric port
-
----
- netcat.c | 19 ++++++++++++++++---
- 1 file changed, 16 insertions(+), 3 deletions(-)
-
-diff --git a/netcat.c b/netcat.c
-index 9ab507a..3240a08 100644
---- a/netcat.c
-+++ b/netcat.c
-@@ -41,6 +41,7 @@
- #include <netinet/tcp.h>
- #include <netinet/ip.h>
- #include <arpa/telnet.h>
-+#include <arpa/inet.h>
-
- #ifndef IPTOS_LOWDELAY
- # define IPTOS_LOWDELAY 0x10
-@@ -436,6 +437,18 @@ main(int argc, char *argv[])
- s = local_listen(host, uport, hints);
- if (s < 0)
- err(1, NULL);
-+
-+ char* local;
-+ if (family == AF_INET6
-+ local = "0.0.0.0";
-+ else if (family == AF_INET)
-+ local = ":::";
-+ else
-+ local = "unknown"
-+ fprintf(stderr, "Listening on [%s] (family %d, port %d)\n",
-+ host ?: local,
-+ family,
-+ *uport);
- /*
- * For UDP and -k, don't connect the socket, let it
- * receive datagrams from multiple socket pairs.
-@@ -452,14 +465,14 @@ main(int argc, char *argv[])
- char buf[16384];
- struct sockaddr_storage z;
-
-- len = sizeof(z);
-+ len = sizeof(cliaddr);
- plen = 2048;
- rv = recvfrom(s, buf, plen, MSG_PEEK,
-- (struct sockaddr *)&z, &len);
-+ (struct sockaddr *)&cliaddr, &len);
- if (rv < 0)
- err(1, "recvfrom");
-
-- rv = connect(s, (struct sockaddr *)&z, len);
-+ rv = connect(s, (struct sockaddr *)&cliaddr, len);
- if (rv < 0)
- err(1, "connect");
-
---
diff --git a/main/netcat-openbsd/0008-dccp-support.patch b/main/netcat-openbsd/0008-dccp-support.patch
deleted file mode 100644
index 26ed8a32c19..00000000000
--- a/main/netcat-openbsd/0008-dccp-support.patch
+++ /dev/null
@@ -1,262 +0,0 @@
-From: Aron Xu <aron@debian.org>
-Date: Mon, 13 Feb 2012 15:56:51 +0800
-Subject: dccp support
-
----
- nc.1 | 4 ++-
- netcat.c | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++-----------
- 2 files changed, 88 insertions(+), 18 deletions(-)
-
-diff --git a/nc.1 b/nc.1
-index 1ee6887..fe42909 100644
---- a/nc.1
-+++ b/nc.1
-@@ -34,7 +34,7 @@
- .Sh SYNOPSIS
- .Nm nc
- .Bk -words
--.Op Fl 46CDdFhklNnrStUuvz
-+.Op Fl 46CDdFhklNnrStUuvZz
- .Op Fl I Ar length
- .Op Fl i Ar interval
- .Op Fl O Ar length
-@@ -279,6 +279,8 @@ If
- .Ar port
- is not specified, the well-known port for the proxy protocol is used (1080
- for SOCKS, 3128 for HTTPS).
-+.It Fl Z
-+DCCP mode.
- .It Fl z
- Specifies that
- .Nm
-diff --git a/netcat.c b/netcat.c
-index 3240a08..f4d85af 100644
---- a/netcat.c
-+++ b/netcat.c
-@@ -136,6 +136,7 @@ int rflag; /* Random ports flag */
- char *sflag; /* Source Address */
- int tflag; /* Telnet Emulation */
- int uflag; /* UDP - Default to TCP */
-+int dccpflag; /* DCCP - Default to TCP */
- int vflag; /* Verbosity */
- int xflag; /* Socks proxy */
- int zflag; /* Port Scan Flag */
-@@ -171,6 +172,7 @@ void report_connect(const struct sockaddr *, socklen_t);
- void usage(int);
- ssize_t drainbuf(int, unsigned char *, size_t *, int);
- ssize_t fillbuf(int, unsigned char *, size_t *);
-+char *proto_name(int uflag, int dccpflag);
-
- static int connect_with_timeout(int fd, const struct sockaddr *sa,
- socklen_t salen, int ctimeout);
-@@ -200,7 +202,7 @@ main(int argc, char *argv[])
- signal(SIGPIPE, SIG_IGN);
-
- while ((ch = getopt(argc, argv,
-- "46CDdFhI:i:klNnO:P:p:q:rSs:tT:UuV:vw:X:x:z")) != -1) {
-+ "46CDdFhI:i:klNnO:P:p:q:rSs:tT:UuV:vw:X:x:Zz")) != -1) {
- switch (ch) {
- case '4':
- family = AF_INET;
-@@ -270,6 +272,13 @@ main(int argc, char *argv[])
- case 'u':
- uflag = 1;
- break;
-+ case 'Z':
-+# if defined(IPPROTO_DCCP) && defined(SOCK_DCCP)
-+ dccpflag = 1;
-+# else
-+ errx(1, "no DCCP support available");
-+# endif
-+ break;
- case 'V':
- # if defined(RT_TABLEID_MAX)
- rtableid = (int)strtonum(optarg, 0,
-@@ -345,6 +354,12 @@ main(int argc, char *argv[])
-
- /* Cruft to make sure options are clean, and used properly. */
- if (argv[0] && !argv[1] && family == AF_UNIX) {
-+ if (uflag)
-+ errx(1, "cannot use -u and -U");
-+# if defined(IPPROTO_DCCP) && defined(SOCK_DCCP)
-+ if (dccpflag)
-+ errx(1, "cannot use -Z and -U");
-+# endif
- host = argv[0];
- uport = NULL;
- } else if (!argv[0] && lflag) {
-@@ -386,8 +401,20 @@ main(int argc, char *argv[])
- if (family != AF_UNIX) {
- memset(&hints, 0, sizeof(struct addrinfo));
- hints.ai_family = family;
-- hints.ai_socktype = uflag ? SOCK_DGRAM : SOCK_STREAM;
-- hints.ai_protocol = uflag ? IPPROTO_UDP : IPPROTO_TCP;
-+ if (uflag) {
-+ hints.ai_socktype = SOCK_DGRAM;
-+ hints.ai_protocol = IPPROTO_UDP;
-+ }
-+# if defined(IPPROTO_DCCP) && defined(SOCK_DCCP)
-+ else if (dccpflag) {
-+ hints.ai_socktype = SOCK_DCCP;
-+ hints.ai_protocol = IPPROTO_DCCP;
-+ }
-+# endif
-+ else {
-+ hints.ai_socktype = SOCK_STREAM;
-+ hints.ai_protocol = IPPROTO_TCP;
-+ }
- if (nflag)
- hints.ai_flags |= AI_NUMERICHOST;
- }
-@@ -395,7 +422,10 @@ main(int argc, char *argv[])
- if (xflag) {
- if (uflag)
- errx(1, "no proxy support for UDP mode");
--
-+# if defined(IPPROTO_DCCP) && defined(SOCK_DCCP)
-+ if (dccpflag)
-+ errx(1, "no proxy support for DCCP mode");
-+# endif
- if (lflag)
- errx(1, "no proxy support for listen");
-
-@@ -439,12 +469,12 @@ main(int argc, char *argv[])
- err(1, NULL);
-
- char* local;
-- if (family == AF_INET6
-+ if (family == AF_INET6 )
- local = "0.0.0.0";
- else if (family == AF_INET)
- local = ":::";
- else
-- local = "unknown"
-+ local = "unknown";
- fprintf(stderr, "Listening on [%s] (family %d, port %d)\n",
- host ?: local,
- family,
-@@ -549,19 +579,20 @@ main(int argc, char *argv[])
- }
- }
-
-+ char *proto = proto_name(uflag, dccpflag);
- /* Don't look up port if -n. */
- if (nflag)
- sv = NULL;
- else {
- sv = getservbyport(
- ntohs(atoi(portlist[i])),
-- uflag ? "udp" : "tcp");
-+ proto);
- }
-
- fprintf(stderr,
- "Connection to %s %s port [%s/%s] "
- "succeeded!\n", host, portlist[i],
-- uflag ? "udp" : "tcp",
-+ proto,
- sv ? sv->s_name : "*");
- }
- if (Fflag)
-@@ -663,6 +694,24 @@ unix_listen(char *path)
- return (s);
- }
-
-+char *proto_name(int uflag, int dccpflag) {
-+
-+ char *proto = NULL;
-+ if (uflag) {
-+ proto = "udp";
-+ }
-+# if defined(IPPROTO_DCCP) && defined(SOCK_DCCP)
-+ else if (dccpflag) {
-+ proto = "dccp";
-+ }
-+# endif
-+ else {
-+ proto = "tcp";
-+ }
-+
-+ return proto;
-+}
-+
- /*
- * remote_connect()
- * Returns a socket connected to a remote host. Properly binds to a local
-@@ -699,8 +748,21 @@ remote_connect(const char *host, const char *port, struct addrinfo hints)
- # endif
- memset(&ahints, 0, sizeof(struct addrinfo));
- ahints.ai_family = res0->ai_family;
-- ahints.ai_socktype = uflag ? SOCK_DGRAM : SOCK_STREAM;
-- ahints.ai_protocol = uflag ? IPPROTO_UDP : IPPROTO_TCP;
-+ if (uflag) {
-+ ahints.ai_socktype = SOCK_DGRAM;
-+ ahints.ai_protocol = IPPROTO_UDP;
-+
-+ }
-+# if defined(IPPROTO_DCCP) && defined(SOCK_DCCP)
-+ else if (dccpflag) {
-+ hints.ai_socktype = SOCK_DCCP;
-+ hints.ai_protocol = IPPROTO_DCCP;
-+ }
-+# endif
-+ else {
-+ ahints.ai_socktype = SOCK_STREAM;
-+ ahints.ai_protocol = IPPROTO_TCP;
-+ }
- ahints.ai_flags = AI_PASSIVE;
- if ((error = getaddrinfo(sflag, pflag, &ahints, &ares)))
- errx(1, "getaddrinfo: %s", gai_strerror(error));
-@@ -712,15 +774,19 @@ remote_connect(const char *host, const char *port, struct addrinfo hints)
- }
-
- set_common_sockopts(s, res0->ai_family);
-+ char *proto = proto_name(uflag, dccpflag);
-
-- if ((error = connect_with_timeout(s, res0->ai_addr, res0->ai_addrlen, timeout))== CONNECTION_SUCCESS)
-+ if ((error = connect_with_timeout(s, res0->ai_addr, res0->ai_addrlen, timeout))== CONNECTION_SUCCESS) {
- break;
-- else if (vflag && error == CONNECTION_FAILED)
-+ }
-+ else if (vflag && error == CONNECTION_FAILED) {
- warn("connect to %s port %s (%s) failed", host, port,
-- uflag ? "udp" : "tcp");
-- else if (vflag && error == CONNECTION_TIMEOUT)
-+ proto);
-+ }
-+ else if (vflag && error == CONNECTION_TIMEOUT) {
- warn("connect to %s port %s (%s) timed out", host, port,
-- uflag ? "udp" : "tcp");
-+ proto);
-+ }
-
- close(s);
- s = -1;
-@@ -1250,7 +1316,8 @@ build_ports(char *p)
- int hi, lo, cp;
- int x = 0;
-
-- sv = getservbyname(p, uflag ? "udp" : "tcp");
-+ char *proto = proto_name(uflag, dccpflag);
-+ sv = getservbyname(p, proto);
- if (sv) {
- portlist[0] = calloc(1, PORT_MAX_LEN);
- if (portlist[0] == NULL)
-@@ -1484,6 +1551,7 @@ help(void)
- \t-w secs\t Timeout for connects and final net reads\n\
- \t-X proto Proxy protocol: \"4\", \"5\" (SOCKS) or \"connect\"\n\
- \t-x addr[:port]\tSpecify proxy address and port\n\
-+ \t-Z DCCP mode\n\
- \t-z Zero-I/O mode [used for scanning]\n\
- Port numbers can be individual or ranges: lo-hi [inclusive]\n");
- exit(0);
-@@ -1493,7 +1561,7 @@ void
- usage(int ret)
- {
- fprintf(stderr,
-- "usage: nc [-46CDdFhklNnrStUuvz] [-I length] [-i interval] [-O length]\n"
-+ "usage: nc [-46CDdFhklNnrStUuvZz] [-I length] [-i interval] [-O length]\n"
- "\t [-P proxy_username] [-p source_port] [-q seconds] [-s source]\n"
- "\t [-T toskeyword] [-V rtable] [-w timeout] [-X proxy_protocol]\n"
- "\t [-x proxy_address[:port]] [destination] [port]\n");
---
diff --git a/main/netcat-openbsd/0009-serialized-handling-multiple-clients.patch b/main/netcat-openbsd/0009-serialized-handling-multiple-clients.patch
deleted file mode 100644
index 0b32737961d..00000000000
--- a/main/netcat-openbsd/0009-serialized-handling-multiple-clients.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From: Aron Xu <aron@debian.org>
-Date: Tue, 14 Feb 2012 23:02:00 +0800
-Subject: serialized handling multiple clients
-
----
- netcat.c | 39 +++++++++++++++++++--------------------
- 1 file changed, 19 insertions(+), 20 deletions(-)
-
-diff --git a/netcat.c b/netcat.c
-index f4d85af..5d3a2d3 100644
---- a/netcat.c
-+++ b/netcat.c
-@@ -459,26 +459,24 @@ main(int argc, char *argv[])
- s = unix_bind(host);
- else
- s = unix_listen(host);
-- }
-+ } else
-+ s = local_listen(host, uport, hints);
-+ if (s < 0)
-+ err(1, NULL);
-+
-+ char* local;
-+ if (family == AF_INET6)
-+ local = ":::";
-+ else
-+ local = "0.0.0.0";
-+ fprintf(stderr, "Listening on [%s] (family %d, port %d)\n",
-+ host ?: local,
-+ family,
-+ *uport);
-
- /* Allow only one connection at a time, but stay alive. */
- for (;;) {
-- if (family != AF_UNIX)
-- s = local_listen(host, uport, hints);
-- if (s < 0)
-- err(1, NULL);
-
-- char* local;
-- if (family == AF_INET6 )
-- local = "0.0.0.0";
-- else if (family == AF_INET)
-- local = ":::";
-- else
-- local = "unknown";
-- fprintf(stderr, "Listening on [%s] (family %d, port %d)\n",
-- host ?: local,
-- family,
-- *uport);
- /*
- * For UDP and -k, don't connect the socket, let it
- * receive datagrams from multiple socket pairs.
-@@ -525,15 +523,16 @@ main(int argc, char *argv[])
- close(connfd);
- }
-
-- if (family != AF_UNIX)
-+ if (kflag)
-+ continue;
-+ if (family != AF_UNIX) {
- close(s);
-+ }
- else if (uflag) {
- if (connect(s, NULL, 0) < 0)
- err(1, "connect");
- }
--
-- if (!kflag)
-- break;
-+ break;
- }
- } else if (family == AF_UNIX) {
- ret = 0;
---
diff --git a/main/netcat-openbsd/0010-misc-failures-and-features.patch b/main/netcat-openbsd/0010-misc-failures-and-features.patch
deleted file mode 100644
index 507f67d8d3a..00000000000
--- a/main/netcat-openbsd/0010-misc-failures-and-features.patch
+++ /dev/null
@@ -1,404 +0,0 @@
-From: Aron Xu <aron@debian.org>
-Date: Mon, 13 Feb 2012 19:06:52 +0800
-Subject: misc failures and features
-
----
- Makefile | 3 +-
- nc.1 | 76 ++++++++++++++++++++++++++++++++++++++++++++---
- netcat.c | 101 +++++++++++++++++++++++++++++++++++++++++++--------------------
- 3 files changed, 143 insertions(+), 37 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 96a6587..becd854 100644
---- a/Makefile
-+++ b/Makefile
-@@ -3,7 +3,8 @@
- PROG= nc
- SRCS= netcat.c atomicio.c socks.c
-
--LIBS= `pkg-config --libs libbsd` -lresolv
-+PKG_CONFIG ?= pkg-config
-+LIBS= `$(PKG_CONFIG) --libs libbsd` -lresolv
- OBJS= $(SRCS:.c=.o)
- CFLAGS= -g -O2
- LDFLAGS= -Wl,--no-add-needed
-diff --git a/nc.1 b/nc.1
-index fe42909..e95918a 100644
---- a/nc.1
-+++ b/nc.1
-@@ -34,7 +34,7 @@
- .Sh SYNOPSIS
- .Nm nc
- .Bk -words
--.Op Fl 46CDdFhklNnrStUuvZz
-+.Op Fl 46bCDdFhklNnrStUuvZz
- .Op Fl I Ar length
- .Op Fl i Ar interval
- .Op Fl O Ar length
-@@ -99,6 +99,8 @@ to use IPv4 addresses only.
- Forces
- .Nm
- to use IPv6 addresses only.
-+.It Fl b
-+Allow broadcast.
- .It Fl C
- Send CRLF as line-ending.
- .It Fl D
-@@ -345,6 +347,54 @@ and which side is being used as a
- The connection may be terminated using an
- .Dv EOF
- .Pq Sq ^D .
-+.Pp
-+There is no
-+.Fl c
-+or
-+.Fl e
-+option in this netcat, but you still can execute a command after connection
-+being established by redirecting file descriptors. Be cautious here because
-+opening a port and let anyone connected execute arbitrary command on your
-+site is DANGEROUS. If you really need to do this, here is an example:
-+.Pp
-+On
-+.Sq server
-+side:
-+.Pp
-+.Dl $ rm -f /tmp/f; mkfifo /tmp/f
-+.Dl $ cat /tmp/f | /bin/sh -i 2>&1 | nc -l 127.0.0.1 1234 > /tmp/f
-+.Pp
-+On
-+.Sq client
-+side:
-+.Pp
-+.Dl $ nc host.example.com 1234
-+.Dl $ (shell prompt from host.example.com)
-+.Pp
-+By doing this, you create a fifo at /tmp/f and make nc listen at port 1234
-+of address 127.0.0.1 on
-+.Sq server
-+side, when a
-+.Sq client
-+establishes a connection successfully to that port, /bin/sh gets executed
-+on
-+.Sq server
-+side and the shell prompt is given to
-+.Sq client
-+side.
-+.Pp
-+When connection is terminated,
-+.Nm
-+quits as well. Use
-+.Fl k
-+if you want it keep listening, but if the command quits this option won't
-+restart it or keep
-+.Nm
-+running. Also don't forget to remove the file descriptor once you don't need
-+it anymore:
-+.Pp
-+.Dl $ rm -f /tmp/f
-+.Pp
- .Sh DATA TRANSFER
- The example in the previous section can be expanded to build a
- basic data transfer model.
-@@ -404,15 +454,30 @@ The
- flag can be used to tell
- .Nm
- to report open ports,
--rather than initiate a connection.
-+rather than initiate a connection. Usually it's useful to turn on verbose
-+output to stderr by use this option in conjunction with
-+.Fl v
-+option.
-+.Pp
- For example:
- .Bd -literal -offset indent
--$ nc -z host.example.com 20-30
-+$ nc \-zv host.example.com 20-30
- Connection to host.example.com 22 port [tcp/ssh] succeeded!
- Connection to host.example.com 25 port [tcp/smtp] succeeded!
- .Ed
- .Pp
--The port range was specified to limit the search to ports 20 \- 30.
-+The port range was specified to limit the search to ports 20 \- 30, and is
-+scanned by increasing order.
-+.Pp
-+You can also specify a list of ports to scan, for example:
-+.Bd -literal -offset indent
-+$ nc \-zv host.example.com 80 20 22
-+nc: connect to host.example.com 80 (tcp) failed: Connection refused
-+nc: connect to host.example.com 20 (tcp) failed: Connection refused
-+Connection to host.example.com port [tcp/ssh] succeeded!
-+.Ed
-+.Pp
-+The ports are scanned by the order you given.
- .Pp
- Alternatively, it might be useful to know which server software
- is running, and which versions.
-@@ -477,6 +542,9 @@ Original implementation by *Hobbit*
- .br
- Rewritten with IPv6 support by
- .An Eric Jackson Aq Mt ericj@monkey.org .
-+.br
-+Modified for Debian port by Aron Xu
-+.Aq aron@debian.org .
- .Sh CAVEATS
- UDP port scans using the
- .Fl uz
-diff --git a/netcat.c b/netcat.c
-index 258a29a..c47fc0f 100644
---- a/netcat.c
-+++ b/netcat.c
-@@ -90,6 +90,7 @@
- #include <netdb.h>
- #include <poll.h>
- #include <signal.h>
-+#include <stddef.h>
- #include <stdarg.h>
- #include <stdio.h>
- #include <stdlib.h>
-@@ -121,6 +122,7 @@
- #define UDP_SCAN_TIMEOUT 3 /* Seconds */
-
- /* Command Line Options */
-+int bflag; /* Allow Broadcast */
- int Cflag = 0; /* CRLF line-ending */
- int dflag; /* detached, no stdin */
- int Fflag; /* fdpass sock to stdout */
-@@ -153,7 +155,7 @@ char *portlist[PORT_MAX+1];
- char *unix_dg_tmp_socket;
-
- void atelnet(int, unsigned char *, unsigned int);
--void build_ports(char *);
-+void build_ports(char **);
- void help(void);
- int local_listen(char *, char *, struct addrinfo);
- void readwrite(int);
-@@ -182,11 +184,14 @@ int
- main(int argc, char *argv[])
- {
- int ch, s, ret, socksv;
-- char *host, *uport;
-+ char *host, **uport;
- struct addrinfo hints;
- struct servent *sv;
- socklen_t len;
-- struct sockaddr_storage cliaddr;
-+ union {
-+ struct sockaddr_storage storage;
-+ struct sockaddr_un forunix;
-+ } cliaddr;
- char *proxy = NULL;
- const char *errstr, *proxyhost = "", *proxyport = NULL;
- struct addrinfo proxyhints;
-@@ -202,7 +207,7 @@ main(int argc, char *argv[])
- signal(SIGPIPE, SIG_IGN);
-
- while ((ch = getopt(argc, argv,
-- "46CDdFhI:i:klNnO:P:p:q:rSs:tT:UuV:vw:X:x:Zz")) != -1) {
-+ "46bCDdFhI:i:klNnO:P:p:q:rSs:tT:UuV:vw:X:x:Zz")) != -1) {
- switch (ch) {
- case '4':
- family = AF_INET;
-@@ -210,6 +215,13 @@ main(int argc, char *argv[])
- case '6':
- family = AF_INET6;
- break;
-+ case 'b':
-+# if defined(SO_BROADCAST)
-+ bflag = 1;
-+# else
-+ errx(1, "no broadcast frame support available");
-+# endif
-+ break;
- case 'U':
- family = AF_UNIX;
- break;
-@@ -354,35 +366,40 @@ main(int argc, char *argv[])
-
- /* Cruft to make sure options are clean, and used properly. */
- if (argv[0] && !argv[1] && family == AF_UNIX) {
-- if (uflag)
-- errx(1, "cannot use -u and -U");
- # if defined(IPPROTO_DCCP) && defined(SOCK_DCCP)
- if (dccpflag)
- errx(1, "cannot use -Z and -U");
- # endif
- host = argv[0];
- uport = NULL;
-- } else if (!argv[0] && lflag) {
-- if (sflag)
-- errx(1, "cannot use -s and -l");
-- if (zflag)
-- errx(1, "cannot use -z and -l");
-- if (pflag)
-- uport=pflag;
-- } else if (!lflag && kflag) {
-- errx(1, "cannot use -k without -l");
-- } else if (argv[0] && !argv[1]) {
-- if (!lflag)
-- usage(1);
-- uport = argv[0];
-+ } else if (argv[0] && !argv[1] && lflag) {
-+ if (pflag) {
-+ uport = &pflag;
-+ host = argv[0];
-+ } else {
-+ uport = argv;
-+ host = NULL;
-+ }
-+ } else if (!argv[0] && lflag && pflag) {
-+ uport = &pflag;
- host = NULL;
- } else if (argv[0] && argv[1]) {
- host = argv[0];
-- uport = argv[1];
-+ uport = &argv[1];
- } else
- usage(1);
-
--
-+ if (lflag) {
-+ if (sflag)
-+ errx(1, "cannot use -s and -l");
-+ if (zflag)
-+ errx(1, "cannot use -z and -l");
-+ if (pflag)
-+ /* This still does not work well because of getopt mess
-+ errx(1, "cannot use -p and -l"); */
-+ uport = &pflag;
-+ } else if (!lflag && kflag)
-+ errx(1, "cannot use -k without -l");
-
- /* Get name of temporary socket for unix datagram client */
- if ((family == AF_UNIX) && uflag && !lflag) {
-@@ -460,7 +477,7 @@ main(int argc, char *argv[])
- else
- s = unix_listen(host);
- } else
-- s = local_listen(host, uport, hints);
-+ s = local_listen(host, *uport, hints);
- if (s < 0)
- err(1, NULL);
-
-@@ -469,7 +486,8 @@ main(int argc, char *argv[])
- local = ":::";
- else
- local = "0.0.0.0";
-- fprintf(stderr, "Listening on [%s] (family %d, port %d)\n",
-+ if (vflag && (family != AF_UNIX))
-+ fprintf(stderr, "Listening on [%s] (family %d, port %s)\n",
- host ?: local,
- family,
- *uport);
-@@ -632,6 +650,8 @@ unix_bind(char *path)
- return (-1);
- }
-
-+ unlink(path);
-+
- if (bind(s, (struct sockaddr *)&sun, SUN_LEN(&sun)) < 0) {
- close(s);
- return (-1);
-@@ -653,8 +673,10 @@ unix_connect(char *path)
- if ((s = unix_bind(unix_dg_tmp_socket)) < 0)
- return (-1);
- } else {
-- if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) < 0)
-+ if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) {
-+ errx(1,"create unix socket failed");
- return (-1);
-+ }
- }
- (void)fcntl(s, F_SETFD, FD_CLOEXEC);
-
-@@ -665,9 +687,11 @@ unix_connect(char *path)
- sizeof(sun.sun_path)) {
- close(s);
- errno = ENAMETOOLONG;
-+ warn("unix connect abandoned");
- return (-1);
- }
- if (connect(s, (struct sockaddr *)&sun, SUN_LEN(&sun)) < 0) {
-+ warn("unix connect failed");
- close(s);
- return (-1);
- }
-@@ -1307,22 +1331,23 @@ atelnet(int nfd, unsigned char *buf, unsigned int size)
- * that we should try to connect to.
- */
- void
--build_ports(char *p)
-+build_ports(char **p)
- {
- struct servent *sv;
- const char *errstr;
- char *n;
- int hi, lo, cp;
- int x = 0;
-+ int i;
-
- char *proto = proto_name(uflag, dccpflag);
-- sv = getservbyname(p, proto);
-+ sv = getservbyname(*p, proto);
- if (sv) {
- portlist[0] = calloc(1, PORT_MAX_LEN);
- if (portlist[0] == NULL)
- err(1, NULL);
- snprintf(portlist[0], PORT_MAX_LEN, "%d", ntohs(sv->s_port));
-- } else if ((n = strchr(p, '-')) != NULL) {
-+ } else if ((n = strchr(*p, '-')) != NULL) {
- *n = '\0';
- n++;
-
-@@ -1330,9 +1355,9 @@ build_ports(char *p)
- hi = strtonum(n, 1, PORT_MAX, &errstr);
- if (errstr)
- errx(1, "port number %s: %s", errstr, n);
-- lo = strtonum(p, 1, PORT_MAX, &errstr);
-+ lo = strtonum(*p, 1, PORT_MAX, &errstr);
- if (errstr)
-- errx(1, "port number %s: %s", errstr, p);
-+ errx(1, "port number %s: %s", errstr, *p);
-
- if (lo > hi) {
- cp = hi;
-@@ -1362,10 +1387,12 @@ build_ports(char *p)
- }
- }
- } else {
-- hi = strtonum(p, 1, PORT_MAX, &errstr);
-+ hi = strtonum(*p, 1, PORT_MAX, &errstr);
- if (errstr)
-- errx(1, "port number %s: %s", errstr, p);
-- portlist[0] = strdup(p);
-+ errx(1, "port number %s: %s", errstr, *p);
-+ for (i=0;p[i];i++) {
-+ portlist[i] = strdup(p[i]);
-+ }
- if (portlist[0] == NULL)
- err(1, NULL);
- }
-@@ -1400,6 +1427,15 @@ set_common_sockopts(int s, int af)
- {
- int x = 1;
-
-+# if defined(SO_BROADCAST)
-+ if (bflag) {
-+ /* allow datagram sockets to send packets to a broadcast address
-+ * (this option has no effect on stream-oriented sockets) */
-+ if (setsockopt(s, SOL_SOCKET, SO_BROADCAST,
-+ &x, sizeof(x)) == -1)
-+ err(1, NULL);
-+ }
-+# endif
- # if defined(TCP_MD5SIG)
- if (Sflag) {
- if (setsockopt(s, IPPROTO_TCP, TCP_MD5SIG,
-@@ -1523,6 +1559,7 @@ help(void)
- fprintf(stderr, "\tCommand Summary:\n\
- \t-4 Use IPv4\n\
- \t-6 Use IPv6\n\
-+ \t-b Allow broadcast\n\
- \t-C Send CRLF as line-ending\n\
- \t-D Enable the debug socket option\n\
- \t-d Detach from stdin\n\
---
diff --git a/main/netcat-openbsd/APKBUILD b/main/netcat-openbsd/APKBUILD
index 3e80ec3d587..fd98ed8610b 100644
--- a/main/netcat-openbsd/APKBUILD
+++ b/main/netcat-openbsd/APKBUILD
@@ -1,8 +1,8 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=netcat-openbsd
-pkgver=1.130
-pkgrel=3
-pkgdesc="The TCP/IP swiss army knife. OpenBSD variant."
+pkgver=1.226
+pkgrel=0
+pkgdesc="The TCP/IP swiss army knife. OpenBSD variant from debian."
url="https://packages.debian.org/sid/netcat-openbsd"
arch="all"
license="BSD-3-Clause"
@@ -10,51 +10,36 @@ makedepends="libbsd-dev"
subpackages="$pkgname-doc"
options="!check"
source="$pkgname-$pkgver.tar.gz::https://deb.debian.org/debian/pool/main/n/netcat-openbsd/netcat-openbsd_$pkgver.orig.tar.gz
+ $pkgname-$pkgver-debian.tar.xz::https://deb.debian.org/debian/pool/main/n/netcat-openbsd/netcat-openbsd_$pkgver-1.debian.tar.xz
+ b64.patch
base64.c
-
- 0001-port-to-linux-with-libsd.patch
- 0002-connect-timeout.patch
- 0003-get-sev-by-name.patch
- 0004-send-crlf.patch
- 0005-quit-timer.patch
- 0006-udp-scan-timeout.patch
- 0007-verbose-numeric-port.patch
- 0008-dccp-support.patch
- 0009-serialized-handling-multiple-clients.patch
- 0010-misc-failures-and-features.patch
"
prepare() {
- cd "$builddir"
- cp "$srcdir"/base64.c .
default_prepare
+
+ # debian keeps their patchset in their own folder
+ while read -r patch; do
+ patch -Np1 < "$srcdir"/debian/patches/"$patch"
+ done < "$srcdir"/debian/patches/series
+
+ # linux port requires b64_ntop
+ cp "$srcdir"/base64.c .
sed -i Makefile -e "/SRCS=/s;\(.*\);& base64.c;"
}
build() {
- cd "$builddir"
make CFLAGS="$CFLAGS -DDEBIAN_VERSION=\"\\\"$pkgver\\\"\""
}
package() {
- cd "$builddir"
- install -d $pkgdir/usr/bin/
- install -d $pkgdir/usr/share/man/man1/
- install nc $pkgdir/usr/bin/nc
- install nc.1 $pkgdir/usr/share/man/man1/nc.openbsd.1
+ install -Dm755 nc "$pkgdir"/usr/bin/nc
+ install -Dm644 nc.1 "$pkgdir"/usr/share/man/man1/nc.openbsd.1
}
sha512sums="
-fb2b80ccbfce364f3d376bd396f38a218127627721052694f1da24751e45a239a72c839b07b54bfc6846be6efa0c557a9cdab349711631ecff7055b763fd98e4 netcat-openbsd-1.130.tar.gz
+1826086282236233757983619d423a538c253474e82050a55963bbc14f8d343432704e9748259873dcab75af03a708d2e2c05b3752e44bd2d198662f8dd5cd3a netcat-openbsd-1.226.tar.gz
+b7ab1a133cbfcca37864df4b2cc5b8d5fab25104670fb03a6ead538c6433064c736ec7c25b930a2c3ea28e19dc8279130f4465607174f1a4806b8d2f94596e74 netcat-openbsd-1.226-debian.tar.xz
+c35ed4e10d0a8d312d8e730cafb8c69538183ce4af5a3cd2a1ceabfc58e009a23bf487507ef4aab5ad0617abf1dde6ac4be4dff6aac4bbb8091f2089cb6a8fe3 b64.patch
2d4b117397e6882b0f4357bb11ca1f520746c59e0305a58f8651582a9cff17f4c59cacb14ce93de1d0fe78db5ba7fd9096c0176afc61b2c715b0b9a0444c2b4f base64.c
-06ebc872c7bedd1961b615625e3690909cdfe5c7635c5bb14826aa5a12ab333fa6cedfd38e1b1dddc00cc6b6527927dee730377c194617f7dc889edec7de410e 0001-port-to-linux-with-libsd.patch
-70dca0943a8045951a50aa3897b0066b3838bec6ea58a6325b888ffe0cbace30afdce52741257ef080e36d2c1d4db2d51287d08d1a5942c0f98327343c036f27 0002-connect-timeout.patch
-e4fca460b25aaa2f6ae360137bfa46b12e1329bacc59f249b46fd55246fbdc4ad8ae0eb6c3ecc4989ab92e385da7b0b9353bc3d72ca230b149b5cd93263ff893 0003-get-sev-by-name.patch
-46c8a5774792590487732e4a5bcca7d5e5be1b4587cccf5c757f7198900d6e4154ef01425a846bbdd3ec52ea476db5d79e80c94620a21e29f277aadecbd1210d 0004-send-crlf.patch
-21bb871a2f55d7cb5759734b16c5b64be937cf7d1a50be7995fdc8885fbcd55ef70a6173c5b266918c5aedf2dc36cf031aa2a3db9c5fcf89d834cd834ac948b4 0005-quit-timer.patch
-f927d547a837314b0418f119ff0d0d83a662a90470fe1739e808c854a7fbe536326a445a2bf83a43af473a159a76d2262f68b5851b86a7a88b72ea0e69995a68 0006-udp-scan-timeout.patch
-4c5ea10262098d411ea428ef1eac59d2cffa85b2d485b4af62ea71a9fd9ee2bc90644b8ba0259f5b182b371bad6a3cdbddca7818f0dd312421768ea4170bf9d6 0007-verbose-numeric-port.patch
-cf3f37272e06908f7fb5ea6d1ab0217cfbc69b19dd5cfd805749498c46177efd208c62c24864ffddaeb7aa4302424d0b964909d1195d72056a000cf204b2a1cc 0008-dccp-support.patch
-fff37c6854403586f1b2e838ad9ee19c511277ada17063847ecaec7066ee052980a646db76c3ffc53bf917e661bbbdc74e944e1bffeba9dc100d9521c15c3b23 0009-serialized-handling-multiple-clients.patch
-ed618931b28e21b52eb8844758edaa434293217ab7f7bd064b56029bb4eef35a45d87800171c14dbef31674490ff9aa9539753ced80fa07f13b567b7e75df3b6 0010-misc-failures-and-features.patch
"
diff --git a/main/netcat-openbsd/b64.patch b/main/netcat-openbsd/b64.patch
new file mode 100644
index 00000000000..5c11d71d8a8
--- /dev/null
+++ b/main/netcat-openbsd/b64.patch
@@ -0,0 +1,14 @@
+declare ahead of time so it's not implicit which is invalid in c23
+diff --git a/socks.c b/socks.c
+index 7c7448c..ce2533d 100644
+--- a/socks.c
++++ b/socks.c
+@@ -53,6 +54,8 @@
+ #define SOCKS_DOMAIN 3
+ #define SOCKS_IPV6 4
+
++int b64_ntop(const uint8_t *, size_t, char *, size_t);
++
+ int remote_connect(const char *, const char *, struct addrinfo, char *);
+ int socks_connect(const char *, const char *, struct addrinfo,
+ const char *, const char *, struct addrinfo, int,
diff --git a/main/netcf/APKBUILD b/main/netcf/APKBUILD
index e9f7fbdeae0..5c16336a6ce 100644
--- a/main/netcf/APKBUILD
+++ b/main/netcf/APKBUILD
@@ -1,20 +1,17 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=netcf
pkgver=0.2.8
-pkgrel=6
+pkgrel=10
pkgdesc="Cross-platform network configuration library"
arch="all"
url="https://fedorahosted.org/released/netcf"
-license="LGPL-2.0"
-depends=
+license="LGPL-2.1-or-later"
makedepends="augeas-dev libgcrypt-dev libnl3-dev libxml2-dev libxslt-dev
linux-headers pkgconfig readline-dev"
-install=
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
-source="https://releases.pagure.org/$pkgname/$pkgname-$pkgver.tar.gz"
+source="https://releases.pagure.org/netcf/netcf-$pkgver.tar.gz"
replaces="libnetcf"
-
-builddir="$srcdir/netcf-$pkgver"
+options="!check"
prepare() {
update_config_sub
@@ -23,7 +20,6 @@ prepare() {
}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -31,20 +27,18 @@ build() {
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
- --with-driver=debian \
- || return 1
- make || return 1
+ --with-driver=debian
+ make
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
}
libs() {
pkgdesc="Libraries for $pkgname"
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/lib "$pkgdir"/usr/share "$subpkgdir"/usr/
+
+ amove usr/lib usr/share
}
sha512sums="d9a667a06469b60e8967423d6a738abc65512bf0ad0975164738c6cd5a168bf0300153067a772a61c4088ea969a88de234be0486c354edf73a7b984ddb003328 netcf-0.2.8.tar.gz"
diff --git a/main/nettle/APKBUILD b/main/nettle/APKBUILD
index 1bc31e33d86..5df66daa21c 100644
--- a/main/nettle/APKBUILD
+++ b/main/nettle/APKBUILD
@@ -2,12 +2,12 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=nettle
-pkgver=3.8
+pkgver=3.9.1
pkgrel=0
-pkgdesc="A low-level cryptographic library"
+pkgdesc="Low-level cryptographic library"
url="https://www.lysator.liu.se/~nisse/nettle/"
arch="all"
-license="LGPL-2.0-or-later"
+license="GPL-2.0-or-later OR LGPL-3.0-or-later"
depends_dev="gmp-dev"
makedepends="$depends_dev m4"
subpackages="$pkgname-static $pkgname-dev $pkgname-utils"
@@ -49,10 +49,9 @@ package() {
utils() {
pkgdesc="Utils for nettle"
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+ amove usr/bin
}
sha512sums="
-af3a910bd661ed9691b1bd66b0f8147aaebdc92ae6ab47640675df263409ecb8d25f0403fcc7dc6471264b9df0a47c025244404f0691ef58c133762f64b67610 nettle-3.8.tar.gz
+5939c4b43cf9ff6c6272245b85f123c81f8f4e37089fa4f39a00a570016d837f6e706a33226e4bbfc531b02a55b2756ff312461225ed88de338a73069e031ced nettle-3.9.1.tar.gz
"
diff --git a/main/network-extras/APKBUILD b/main/network-extras/APKBUILD
index 43ad7ce01db..2098c26f0d4 100644
--- a/main/network-extras/APKBUILD
+++ b/main/network-extras/APKBUILD
@@ -1,15 +1,16 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=network-extras
-pkgver=1.2
+pkgver=2.0
pkgrel=0
pkgdesc="Meta package to pull in ppp, vlan, bonding, bridge and wifi support"
url="https://alpinelinux.org/"
arch="noarch"
license="GPL-2.0-only"
-depends="bridge bonding vlan wpa_supplicant wireless-tools ppp-atm ppp-chat
+depends="bridge bonding vlan wpa_supplicant iw ppp-atm ppp-chat
ppp-daemon ppp-l2tp ppp-minconn ppp-passprompt ppp-passwordfd ppp-pppoe
ppp-radius ppp-winbind usb-modeswitch"
+options="!check"
package() {
mkdir -p "$pkgdir"
diff --git a/main/newt/APKBUILD b/main/newt/APKBUILD
index ebfaf9d844b..fbd5b982cac 100644
--- a/main/newt/APKBUILD
+++ b/main/newt/APKBUILD
@@ -1,28 +1,24 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=newt
-pkgver=0.52.21
-pkgrel=2
+pkgver=0.52.24
+pkgrel=1
pkgdesc="Redhat's Newt windowing toolkit development files"
options="!check" # No testsuite
url="https://pagure.io/newt/"
arch="all"
-license="LGPL-2.0"
+license="LGPL-2.0-only"
makedepends="slang-dev popt-dev python3-dev ncurses-dev"
subpackages="$pkgname-dev $pkgname-doc $pkgname-lang py3-$pkgname:py3"
-source="https://releases.pagure.org/newt/newt-$pkgver.tar.gz
- fix-includes.patch
- "
-
-builddir="$srcdir/$pkgname-$pkgver"
+source="https://releases.pagure.org/newt/newt-$pkgver.tar.gz"
prepare() {
- cd "$builddir"
+ default_prepare
+
sed -i -e 's:-lslang:-lslang -lncurses:g' \
-e 's:instroot:DESTDIR:g' Makefile.in
}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -33,7 +29,6 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" prefix="/usr" RPM_OPT_FLAGS="ERROR" install
rm -f "$pkgdir"/usr/lib/*.a
}
@@ -44,5 +39,6 @@ py3() {
amove '/usr/lib/python*'
}
-sha512sums="d53d927996d17223e688bf54dccfabb2a3dc02bfe38ffc455964e86feaca3cd9f9ab5b19774433be430fa4d761cd9b6680b558f297acb86f80daeb6942f7d23c newt-0.52.21.tar.gz
-ce53446eb587b79790f12f806f02999568cb49067520813ab146d1f16c71f009e86ab72d08666e483b550fdae3332b673935b8aa1a14b02f5273217fb5404611 fix-includes.patch"
+sha512sums="
+2001f45fb1cdb48cbc51feb8b6e555a2e50b65d897db2dbc1b1711c04efb51834801bef921c89879ddb43de221a243ed240c4a3355eebafa78f50f24432acdcd newt-0.52.24.tar.gz
+"
diff --git a/main/newt/fix-includes.patch b/main/newt/fix-includes.patch
deleted file mode 100644
index 0995b6d8e8f..00000000000
--- a/main/newt/fix-includes.patch
+++ /dev/null
@@ -1,8 +0,0 @@
---- newt-0.52.11.orig/whiptail.c
-+++ newt-0.52.11/whiptail.c
-@@ -1,4 +1,5 @@
- #include "config.h"
-+#include <sys/stat.h>
- #include <fcntl.h>
- #include <popt.h>
- #include <stdio.h>
diff --git a/main/nfdump/APKBUILD b/main/nfdump/APKBUILD
index 4b8a829944b..f31d9afba44 100644
--- a/main/nfdump/APKBUILD
+++ b/main/nfdump/APKBUILD
@@ -1,13 +1,15 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=nfdump
-pkgver=1.6.23
+pkgver=1.7.3
pkgrel=0
pkgdesc="Tools to collect and process netflow data"
url="https://github.com/phaag/nfdump"
-arch="all"
+# fails diff tests, probably broken on big endian
+arch="all !s390x"
license="BSD-3-Clause"
makedepends="autoconf automake bison bzip2-dev flex libtool rrdtool-dev"
+checkdepends="tzdata"
subpackages="
$pkgname-doc
$pkgname-dbg
@@ -35,6 +37,8 @@ prepare() {
}
build() {
+ # setresgid
+ CFLAGS="$CFLAGS -D_GNU_SOURCE" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -42,9 +46,20 @@ build() {
--enable-nfprofile \
--enable-sflow \
--enable-shared
+
+ # musl has a fpurge weak alias but only __fpurge in header,
+ # so this gets misdetected
+ sed -i '/HAVE_FPURGE/d' config.h
make
}
+check() {
+ make check || {
+ cat src/test/test-suite.log
+ return 1
+ }
+}
+
package() {
make DESTDIR="$pkgdir" install
install -D -m755 "$srcdir"/nfcapd.initd \
@@ -56,17 +71,15 @@ package() {
nfprofile() {
pkgdesc="Create views of the data with NFdump filters"
- depends="nfdump"
- cd "$builddir"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/nfprofile "$subpkgdir"/usr/bin
+ depends="nfdump=$pkgver-r$pkgrel"
+
+ amove usr/bin/nfprofile
}
sfcapd() {
pkgdesc="sFlow collector"
- cd "$builddir"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/sfcapd "$subpkgdir"/usr/bin
+
+ amove usr/bin/sfcapd
# Install to pkgdir so it is later caught by sfcapd-openrc
install -D -m644 "$srcdir"/sfcapd.confd \
@@ -76,7 +89,7 @@ sfcapd() {
}
sha512sums="
-e3f79af69a170985fcbd1757fab86e90840d040cf7a6214c7f9851ed59695d3844a15269904c3ba989b6b6ed2ddf29fd19a493165d3037e49aa2bb69b831f168 nfdump-1.6.23.tar.gz
+588459558a2831db679d32b0f3da5321bae04b9519b5f4f493ca32521afd87b1eb075faabd97a9d26b095e14e89685c589b2a563280a70e2202bda8b5cb88884 nfdump-1.7.3.tar.gz
fcb467f819f2b73ac0e13de6de4d6c94cafd3866a7a56685d5d4a048fa975135299655e896ff8370c8c5061d03ab38644623f8be455c08dfe5f630f152820148 nfcapd.confd
97e432e884dd1cc8f27c2d7398bb0320164d46dea06c64ad72fa385d190998b3d62356634962f42652daf6e31f237baa2f3f3efad47c3fc38cc6bea799db61cc nfcapd.initd
abe594a95a9320bec1d6ee6af6b75cd4d176526d4b10d07aa7ed79fc292b51c341339ba8e1e468df9ec2aae138b1dd66e3a291921938217835ac33819da9d153 sfcapd.confd
diff --git a/main/nfs-utils/APKBUILD b/main/nfs-utils/APKBUILD
index a80d9628109..cc50b15d10a 100644
--- a/main/nfs-utils/APKBUILD
+++ b/main/nfs-utils/APKBUILD
@@ -1,22 +1,42 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=nfs-utils
-pkgver=2.6.1
+pkgver=2.6.4
pkgrel=1
pkgdesc="kernel-mode NFS"
url="https://linux-nfs.org/"
arch="all"
-license="GPL-2.0-or-later BSD-3-Clause"
+license="GPL-2.0-only"
depends="rpcbind python3"
options="suid"
-makedepends="autoconf automake bsd-compat-headers keyutils-dev krb5-dev
- libcap-dev libevent-dev libtirpc-dev libtool lvm2-dev musl-libintl
- openldap-dev sqlite-dev util-linux-dev"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-dbg $pkgname-openrc rpcgen
- libnfsidmap libnfsidmap-ldap"
+makedepends="
+ bsd-compat-headers
+ keyutils-dev
+ krb5-dev
+ libcap-dev
+ libevent-dev
+ libtirpc-dev
+ libtool
+ lvm2-dev
+ musl-libintl
+ openldap-dev
+ sqlite-dev
+ util-linux-dev
+ "
+subpackages="
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-dbg
+ $pkgname-openrc
+ rpcgen
+ libnfsidmap
+ libnfsidmap-ldap
+ "
source="https://www.kernel.org/pub/linux/utils/nfs-utils/$pkgver/nfs-utils-$pkgver.tar.xz
musl-getservbyport.patch
musl-svcgssd-sysconf.patch
+ musl-stat64.patch
+ include-unistd.patch
nfs.initd
nfsmount.initd
@@ -30,13 +50,9 @@ source="https://www.kernel.org/pub/linux/utils/nfs-utils/$pkgver/nfs-utils-$pkgv
nfs.exports
nfsclient.initd
nfsclient.confd
+ nfsidmap.request-key.conf
"
-prepare() {
- default_prepare
- ./autogen.sh
-}
-
build() {
./configure \
--build=$CBUILD \
@@ -67,6 +83,8 @@ package() {
install -Dm644 "$srcdir"/nfs.exports "$pkgdir"/etc/exports
mv "$pkgdir"/usr/sbin/rpc.statd "$pkgdir"/sbin/
+ install -Dm644 support/nfsidmap/idmapd.conf "$pkgdir"/etc/idmapd.conf
+
local file
for file in $source; do
case "$file" in
@@ -76,6 +94,9 @@ package() {
"$pkgdir"/etc/init.d/${file%.*} ;;
esac
done
+
+ mkdir -p "$pkgdir"/etc/request-key.d
+ install -Dm644 "$srcdir"/nfsidmap.request-key.conf "$pkgdir"/etc/request-key.d/
}
dev() {
@@ -95,7 +116,8 @@ rpcgen() {
libnfsidmap() {
pkgdesc="NFSv4 User and Group ID Mapping Library"
- install -Dm644 "$builddir"/support/nfsidmap/idmapd.conf "$subpkgdir"/etc/idmapd.conf
+
+ amove etc/idmapd.conf
mkdir -p "$subpkgdir"/usr/lib/libnfsidmap
mv "$pkgdir"/usr/lib/libnfsidmap.so* "$subpkgdir"/usr/lib/
mv "$pkgdir"/usr/lib/libnfsidmap/static* "$subpkgdir"/usr/lib/libnfsidmap/
@@ -105,15 +127,17 @@ libnfsidmap() {
ldap() {
pkgdesc="LDAP plugin for libnfsidmap"
- mkdir -p "$subpkgdir"/usr/lib/libnfsidmap
- mv "$pkgdir"/usr/lib/libnfsidmap/*ldap* "$subpkgdir"/usr/lib/libnfsidmap/
+
+ amove usr/lib/libnfsidmap/*ldap*
}
sha512sums="
-20017b276781a79d00f22c5a9472499264983d571af617e79e72d93a9c06e81de3d04afb890e1e0d7f1f2566176266a91915d2ca5b27ae6d8b959849f0fd427a nfs-utils-2.6.1.tar.xz
+3aa4c28780c2dd46aa2d57dffdb79a6146478359d449f636cef3c789e9b1f111cd7492b7b817b9600c9805f45ae0afdc1319c7746fac95963383b92f7bddc114 nfs-utils-2.6.4.tar.xz
94d7ba23164660f1da9298494dff75c57f5a300cb32b2922bc2226fcdaded7eaaa0c50a59a145ac7c75639d177558b5f5594fb1f03a50f60f4c577c93b135748 musl-getservbyport.patch
52eeade44753f2002bf99d58ad4982086aab74ef8b14de46be547f23508197f58a6ff529145f96de7f031ac0bb7779b648d05fd981cdd91556dd13d068dfe57b musl-svcgssd-sysconf.patch
-f7feb79cfcab0478affb640d1e5ad059757c88d51cc790fd54cde2fd7ed2e3cfd8f7f4c2de993d99da03e8ce3bdfb2750a4cb997b850fe33d0ef76d9b91c9018 nfs.initd
+f186a758a7e1e489920be8f7d3b957f358cbcfc158b0ebfe25d8558f54491a4732bfb3b7a3778bc70da5c186d6e6c0901c6c94b7c0475a659420429ee948025f musl-stat64.patch
+c4fd642960fab82956dc1386a0209c7f66f7bc52dc855ad7004ba31c999933f1d0c66ac37f97b6db9548c0b6c799bd3918373789238338f9942ffafe42d0f186 include-unistd.patch
+b7c2f8d0f8f7ff5fa59ef326432b3e063f52ccdf664fd2b4908adb8cac63bbfe12a60d3a75c4c3e893a0ff0fb6e8c726899d7b7245f1acd39efd5c2c29398e2d nfs.initd
89259b9f0878658d48792b5b2f42b43c966ed098dba1fecf9e07fb0de4aab37ad67655ea8dbcc2361ddab2b5013b2de35a03048a513aaeedf790e4b416a35a54 nfsmount.initd
6e23897885cc33c49d9c7353b456585a1e0c7300822edba81bc48ba4ccc18297adce137260cc0aa9487aa5ef0aab3eecf931532cfa5bd40fd03bc9e0ddacfb28 nfsmount.confd
414f2de0b64897b2350666760337683aa4bab612be3e5a3cdd3ac5afa55e498c5cb053430e35b7eb7ed66b93fd66d416d557c2bd8299e3b8b633c7935db6d422 rpc.gssd.initd
@@ -125,4 +149,5 @@ bc11b073735ee86c96b9c249ee187f4d16329c279a4e26760875059d2b5fa1d510ef3e4df5ee9dfb
70f96bb3a465ee0fa857a6e511051ca3ced9f5a5d1e6b8b32eec843a2067f2475d8979c724a3661de0a2b078eef143f55d75ed184d823841d9de5038da91fb91 nfs.exports
85078e2cd38b37a1e6fbaf0e40cf7690f403e71d9c8188d542d12fe56bfc02a49763c7bcc7742691754acc37928468c215db2795bebc29a5dfb052ba08f407bb nfsclient.initd
f12e67728ac4e76357685e2fe38bd7f6fcd90064165758ffeca145e6962ac44d4ff9d8d57e18cc6925a6ada8e95ad8321e9fc355931a804dd455aae1e4850e92 nfsclient.confd
+204e2219b0e74fe6e16673d117018fedfdf4760602fb659e5d3dbd31101313333003ed0b89f47b1ffd7e4847f5111cc5ca85f6a0b6c8bf8ab0f1f2240ba32900 nfsidmap.request-key.conf
"
diff --git a/main/nfs-utils/include-unistd.patch b/main/nfs-utils/include-unistd.patch
new file mode 100644
index 00000000000..ae67e892991
--- /dev/null
+++ b/main/nfs-utils/include-unistd.patch
@@ -0,0 +1,20 @@
+--- a/support/reexport/fsidd.c
++++ b/support/reexport/fsidd.c
+@@ -7,6 +7,7 @@
+ #include <dlfcn.h>
+ #endif
+ #include <event2/event.h>
++#include <unistd.h>
+
+ #include "conffile.h"
+ #include "reexport_backend.h"
+--- a/support/reexport/reexport.c
++++ b/support/reexport/reexport.c
+@@ -7,6 +7,7 @@
+ #endif
+ #include <sys/types.h>
+ #include <sys/vfs.h>
++#include <unistd.h>
+ #include <errno.h>
+
+ #include "nfsd_path.h"
diff --git a/main/nfs-utils/musl-stat64.patch b/main/nfs-utils/musl-stat64.patch
new file mode 100644
index 00000000000..74c2df260b3
--- /dev/null
+++ b/main/nfs-utils/musl-stat64.patch
@@ -0,0 +1,50 @@
+diff --git a/tools/rpcgen/rpc_main.c b/tools/rpcgen/rpc_main.c
+index 277adc6..fd7dea9 100644
+--- a/tools/rpcgen/rpc_main.c
++++ b/tools/rpcgen/rpc_main.c
+@@ -62,12 +62,6 @@
+ #define EXTEND 1 /* alias for TRUE */
+ #define DONT_EXTEND 0 /* alias for FALSE */
+
+-#ifdef __APPLE__
+-# if __DARWIN_ONLY_64_BIT_INO_T
+-# define stat64 stat
+-# endif
+-#endif
+-
+ struct commandline
+ {
+ int cflag; /* xdr C routines */
+@@ -337,9 +331,9 @@ clear_args (void)
+ static void
+ find_cpp (void)
+ {
+- struct stat64 buf;
++ struct stat buf;
+
+- if (stat64 (CPP, &buf) == 0)
++ if (stat (CPP, &buf) == 0)
+ return;
+
+ if (cppDefined) /* user specified cpp but it does not exist */
+@@ -1125,17 +1119,17 @@ putarg (int whereto, const char *cp)
+ static void
+ checkfiles (const char *infile, const char *outfile)
+ {
+- struct stat64 buf;
++ struct stat buf;
+
+ if (infile) /* infile ! = NULL */
+- if (stat64 (infile, &buf) < 0)
++ if (stat (infile, &buf) < 0)
+ {
+ perror (infile);
+ crash ();
+ }
+ if (outfile)
+ {
+- if (stat64 (outfile, &buf) < 0)
++ if (stat (outfile, &buf) < 0)
+ return; /* file does not exist */
+ else
+ {
diff --git a/main/nfs-utils/nfs.initd b/main/nfs-utils/nfs.initd
index 4b572fc2e5e..c88605bd1c4 100644
--- a/main/nfs-utils/nfs.initd
+++ b/main/nfs-utils/nfs.initd
@@ -55,7 +55,7 @@ mount_nfsd() {
fi
# Restart idmapd if needed #220747
if grep -qs nfsd /proc/modules ; then
- killall -q -HUP rpc.idmapd
+ busybox killall -q -HUP rpc.idmapd
fi
fi
diff --git a/main/nfs-utils/nfsidmap.request-key.conf b/main/nfs-utils/nfsidmap.request-key.conf
new file mode 100644
index 00000000000..d5808bb3da5
--- /dev/null
+++ b/main/nfs-utils/nfsidmap.request-key.conf
@@ -0,0 +1,2 @@
+#OP TYPE DESCRIPTION CALLOUT INFO PROGRAM ARG1 ARG2 ARG3 ...
+create id_resolver * * /usr/sbin/nfsidmap %k %d
diff --git a/main/nftables/APKBUILD b/main/nftables/APKBUILD
index d0131b93557..440fe7f0dd1 100644
--- a/main/nftables/APKBUILD
+++ b/main/nftables/APKBUILD
@@ -2,16 +2,13 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=nftables
-pkgver=1.0.4
-pkgrel=0
+pkgver=1.0.9
+pkgrel=2
pkgdesc="Netfilter tables userspace tools"
url="https://netfilter.org/projects/nftables"
arch="all"
license="GPL-2.0-or-later"
makedepends="
- automake
- autoconf
- libtool
asciidoc
bison
docbook2x
@@ -21,22 +18,32 @@ makedepends="
libmnl-dev
libnftnl-dev
ncurses-dev
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
readline-dev
"
install="$pkgname.post-upgrade"
-subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-openrc"
-source="https://netfilter.org/projects/nftables/files/nftables-$pkgver.tar.bz2
+subpackages="
+ $pkgname-static
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-openrc
+ py3-$pkgname-pyc
+ py3-$pkgname:_py3:noarch
+ "
+source="https://netfilter.org/projects/nftables/files/nftables-$pkgver.tar.xz
nftables.confd
nftables.initd
nftables.nft
"
-builddir="$srcdir/$pkgname-$pkgver"
+options="!check"
prepare() {
default_prepare
+ update_config_sub
+
sed -i '1i#include "config.h"' "$builddir"/src/proto.c
- autoreconf -fi
- rm -Rf autom4te*.cache config.h.in~
}
build() {
@@ -48,24 +55,40 @@ build() {
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--localstatedir=/var \
+ --disable-python \
--enable-static=yes \
--with-json \
--with-cli=readline
make
+
+ cd py
+ gpep517 build-wheel \
+ --wheel-dir "$builddir"/.dist \
+ --output-fd 3 3>&1 >&2
}
package() {
make DESTDIR="$pkgdir" install
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
install -Dm644 "$srcdir"/nftables.nft "$pkgdir"/etc/nftables.nft
install -dm755 "$pkgdir"/etc/nftables.d
+ install -dm750 "$pkgdir"/var/lib/nftables
+}
+
+_py3() {
+ pkgdesc="$pkgdesc (Python interface)"
+ depends="$pkgname=$pkgver-r$pkgrel"
+
+ amove usr/lib/python3*
}
sha512sums="
-7d96c791365d399b3b930a1f9d6c6aa4a8c2180c258bb5163d9d62ea4d094857e2ebb20fc3ef13b89f449f216d0a291d3bcf288704f1e3bd3ceb51b6cadf8215 nftables-1.0.4.tar.bz2
-cca875473bbd7b2326afcaeec84b1f9826afb70fc67381a64f3ad104a13a314bd2c352e0fac1f602b9980edb2818bf6242373aa1634ce17bcc1d82eeb8b05b39 nftables.confd
-739e704b263b7afd124c5f497fef43c6f5de69f0a75e0a370c2b84f84619ca6a8a64fe704413c2d1cc1e4a0db062cce2c7fb807c202f9a1a1f60152bd45ad914 nftables.initd
-8770185348e98c3fb7fb3106441bb89f31f9157f8fd475a238ea91f288f4babee7d867b229c5bb29fabca6fce6f3679f9f9c17fdbc077e3693d7c00ee2611446 nftables.nft
+dc34099658e283d9fd4d06264b593710121074558305ea23ab298c5f6a6b564a826f186241b6e106fbaa4e11160cf77e68bb52b4ce401b28d8d2e403cd4b88e8 nftables-1.0.9.tar.xz
+5a298ea01df60b434791fea94306d5b14f7ce684329e4122cc78bb52d1c272fcc48b06eaae154fd082c05f7030792fe42e73814caf3c7be3c446bb265fe25642 nftables.confd
+93a4d3109e3b7d36bcd0901755e1ee4dba3b5555deddc5eecdee2ccbcce15c08f122bf8f1c879c3f696f6a5a13d283536a0ff5e1af82289c3263b6aeb9d116d0 nftables.initd
+b524c124a11f870ae789d5ad05de8a49d365d6c2cb3cd94c21669c5ae0e453481c671a1700ee6518372b10c491b50c5d81ea59fa941092a9161d1b13be7a13b6 nftables.nft
"
diff --git a/main/nftables/nftables.confd b/main/nftables/nftables.confd
index f01275947fc..767ea8b3d69 100644
--- a/main/nftables/nftables.confd
+++ b/main/nftables/nftables.confd
@@ -1,15 +1,27 @@
# Configuration for /etc/init.d/nftables
-# Location of file with nftables rules to restore on service start,
-# and save rules to on service stop when $save_on_stop is enabled.
+# Location of the nftables rules file to load on the service start.
#rules_file="/etc/nftables.nft"
-# Options to pass to nft on save.
-#save_options="-n"
-
-# Save state on stopping nftables (this will overwrite $rules_file).
+# Whether to save the state of stateful objects (or full ruleset, see
+# $save_objects) on the service stopping.
#save_on_stop="no"
+# File path where to save the nftables state on the service stopping.
+# Defaults to $rules_file if $save_objects is "ruleset".
+#save_file="/var/lib/nftables/state.nft"
+
+# A space-separated list of stateful objects to save on the service stop.
+#
+# If you want to save the full ruleset, set it to "ruleset" (that's the default
+# value, for backward compatibility). Please note that this is discouraged;
+# it's highly recommended to write nftable rules by hand and organize them in
+# files /etc/nftables.d/<name>.nft (included by /etc/nftables.nft).
+save_objects="counters limits quotas"
+
+# Options to pass to nft on save.
+#save_options=""
+
# Enable IPv4/IPv6 forwarding with the rules?
# Note: If you want to enable forwarding only on selected interfaces,
# keep this disabled and enable forwarding using /etc/sysctl.conf.
diff --git a/main/nftables/nftables.initd b/main/nftables/nftables.initd
index 3224ea1d017..5d639d56014 100644
--- a/main/nftables/nftables.initd
+++ b/main/nftables/nftables.initd
@@ -1,24 +1,36 @@
#!/sbin/openrc-run
-# Copyright 2014 Nicholas Vinson
-# Copyright 1999-2014 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-extra_commands="checkconfig list panic save"
-extra_started_commands="reload"
+extra_commands="checkconfig panic save"
+extra_started_commands="reload reset"
description="Manage nftable based firewall."
description_checkconfig="Check validity of rulesets on disk without applying changes."
-description_save="Save current nftables rulesets to disk."
-description_list="Displays the current nftables ruleset."
description_panic="Immediately drop all packets on all interfaces."
-description_reload="Clear current rulesets and load rulesets from the saved ruleset files."
-
-# Uppercase variables are there for backward compatibility.
-: ${rules_file:=${NFTABLES_SAVE:="/etc/nftables.nft"}}
-: ${save_options:=${SAVE_OPTIONS:="-n"}}
-: ${save_on_stop:=${SAVE_ON_STOP:="no"}}
+description_reload="Clear current rulesets and load rulesets from the ruleset files."
+description_save="Save nftables state or ruleset to disk."
+description_reset="Reset stateful objects (counters and quotas)."
+
+# Uppercase variables are there for backward compatibility (Alpine <3.8).
+: ${rules_file:=${NFTABLES_SAVE:-"/etc/nftables.nft"}}
+: ${save_objects:="ruleset"} # "ruleset" is for backward compatibility (Alpine <3.17)
+: ${save_options:=${SAVE_OPTIONS:-}}
+: ${save_on_stop:=${SAVE_ON_STOP:-"no"}}
: ${enable_forwarding:="no"}
+if [ "$save_objects" = 'ruleset' ]; then
+ : ${save_file:="$rules_file"}
+else
+ : ${save_file:="/var/lib/nftables/state.nft"}
+fi
+
+nft=nft
+
+# Add ip netns if configured to run in a netns namespace
+if [ -n "$netns" ]; then
+ test -e /run/netns/$netns || ip netns add $netns
+ nft="ip netns exec $netns $nft"
+fi
+
depend() {
need localmount
after sysctl
@@ -30,8 +42,41 @@ start_pre() {
checkkernel && checkconfig
}
-list() {
- nft list ruleset
+start() {
+ ebegin "Loading nftables rules and starting firewall"
+
+ $nft -f "$rules_file"
+ eend $? || return 1
+
+ if yesno "$enable_forwarding"; then
+ ebegin "Enabling forwarding"
+ forwarding 1
+ eend $? || return 1
+ fi
+}
+
+stop() {
+ if yesno "$save_on_stop"; then
+ save || return 1
+ fi
+
+ if yesno "$enable_forwarding"; then
+ ebegin "Disabling forwarding"
+ forwarding 0
+ eend $?
+ fi
+
+ ebegin "Stopping firewall"
+ $nft flush ruleset
+ eend $?
+}
+
+reload() {
+ # This condition is mainly for backward compatibility (Alpine <3.17).
+ if yesno "$save_on_stop" && [ "$save_objects" != 'ruleset' ]; then
+ save || return 1
+ fi
+ start
}
panic() {
@@ -42,7 +87,7 @@ panic() {
fi
ebegin "Dropping all packets"
- nft -f /dev/stdin <<-EOF
+ $nft -f /dev/stdin <<-EOF
flush ruleset
table inet filter {
chain input { type filter hook input priority 0; policy drop; }
@@ -53,53 +98,34 @@ panic() {
eend $?
}
-reload() {
- start
-}
-
save() {
- ebegin "Saving nftables state"
+ [ "$RC_CMD" = 'save' ] && ebegin "Saving nftables state"
- checkpath -q -d "${rules_file%/*}"
- checkpath -q -m 0600 -f "$rules_file"
+ checkpath -q -d "${save_file%/*}"
+ checkpath -q -m 0600 -F -f "$save_file.tmp"
- local tmp_save="$rules_file.tmp"
+ local rc=0
+ local type; for type in $save_objects; do
+ [ "$type" = 'ruleset' ] && echo 'flush ruleset' >> "$save_file.tmp"
+ $nft $save_options list $type >> "$save_file.tmp" || rc=$?
+ done
- echo 'flush ruleset' > "$tmp_save"
- nft list ruleset >> "$tmp_save"; local retval=$?
+ [ $rc -eq 0 ] && mv "$save_file.tmp" "$save_file"
- [ $retval -eq 0 ] && mv "$tmp_save" "$rules_file"
+ [ "$RC_CMD" = 'save' ] && eend $rc
- return $retval
+ return $rc
}
-start() {
- ebegin "Loading nftables state and starting firewall"
+reset() {
+ ebegin "Resetting stateful objects"
- nft -f "$rules_file"
- eend $? || return 1
+ local rc=0 type
+ for type in counters quotas; do
+ $nft reset $type >/dev/null || rc=$?
+ done
- if yesno "$enable_forwarding"; then
- ebegin "Enabling forwarding"
- forwarding 1
- eend $? || return 1
- fi
-}
-
-stop() {
- if yesno "$save_on_stop"; then
- save || return 1
- fi
-
- if yesno "$enable_forwarding"; then
- ebegin "Disabling forwarding"
- forwarding 0
- eend $?
- fi
-
- ebegin "Stopping firewall"
- nft flush ruleset
- eend $?
+ eend $rc
}
checkconfig() {
@@ -107,11 +133,11 @@ checkconfig() {
eerror "Rules files $rules_file does not exist!"
return 1
fi
- nft -c -f "$rules_file"
+ $nft -c -f "$rules_file"
}
checkkernel() {
- if ! nft list tables >/dev/null 2>&1; then
+ if ! $nft list tables >/dev/null 2>&1; then
eerror "Your kernel lacks nftables support, please load"
eerror "appropriate modules and try again."
return 1
@@ -120,8 +146,12 @@ checkkernel() {
}
forwarding() {
- /sbin/sysctl -qw \
- net.ipv4.ip_forward=$1 \
- net.ipv6.conf.default.forwarding=$1 \
- net.ipv6.conf.all.forwarding=$1
+ /sbin/sysctl -qw net.ipv4.ip_forward=$1 || return 1
+
+ if /sbin/sysctl -eq net.ipv6.conf.all.forwarding >/dev/null; then
+ /sbin/sysctl -qw \
+ net.ipv6.conf.default.forwarding=$1 \
+ net.ipv6.conf.all.forwarding=$1 || return 1
+ fi
+ return 0
}
diff --git a/main/nftables/nftables.nft b/main/nftables/nftables.nft
index cffd7bd6517..391e800eae9 100644
--- a/main/nftables/nftables.nft
+++ b/main/nftables/nftables.nft
@@ -1,5 +1,5 @@
#!/usr/sbin/nft -f
-# vim:set ts=4:
+# vim: set ts=4 sw=4:
# You can find examples in /usr/share/nftables/.
# Clear all prior state
@@ -35,7 +35,7 @@ table inet filter {
# ICMPv6
- ip6 nexthdr icmpv6 icmpv6 type {
+ icmpv6 type {
destination-unreachable, # type 1
packet-too-big, # type 2
time-exceeded, # type 3
@@ -45,7 +45,7 @@ table inet filter {
} accept \
comment "Accept basic IPv6 functionality"
- ip6 nexthdr icmpv6 icmpv6 type {
+ icmpv6 type {
nd-router-solicit, # type 133
nd-router-advert, # type 134
nd-neighbor-solicit, # type 135
@@ -53,7 +53,7 @@ table inet filter {
} ip6 hoplimit 255 accept \
comment "Allow IPv6 SLAAC"
- ip6 nexthdr icmpv6 icmpv6 type {
+ icmpv6 type {
mld-listener-query, # type 130
mld-listener-report, # type 131
mld-listener-reduction, # type 132
@@ -74,4 +74,8 @@ table inet filter {
}
}
+# The state of stateful objects saved on the nftables service stop.
+include "/var/lib/nftables/*.nft"
+
+# Rules
include "/etc/nftables.d/*.nft"
diff --git a/main/nghttp2/APKBUILD b/main/nghttp2/APKBUILD
index 952fa457322..59cc0f01147 100644
--- a/main/nghttp2/APKBUILD
+++ b/main/nghttp2/APKBUILD
@@ -1,22 +1,20 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=nghttp2
-pkgver=1.48.0
+pkgver=1.61.0
pkgrel=0
-pkgdesc="Experimental HTTP/2 client, server and proxy"
+pkgdesc="HTTP/2 C client, server and proxy"
url="https://nghttp2.org"
arch="all"
license="MIT"
-makedepends_build="autoconf automake libtool"
-makedepends_host="libev-dev openssl1.1-compat-dev zlib-dev c-ares-dev cunit-dev"
+makedepends_host="libev-dev openssl-dev>3 zlib-dev c-ares-dev"
+checkdepends="cunit-dev"
subpackages="$pkgname-static $pkgname-doc $pkgname-dev $pkgname-libs"
-source="https://github.com/nghttp2/nghttp2/releases/download/v$pkgver/nghttp2-$pkgver.tar.xz
- disable-failing-musl-unittest.patch
- "
-# temp allow textrels on riscv64
-[ "$CARCH" = "riscv64" ] && options="$options textrels"
+source="https://github.com/nghttp2/nghttp2/releases/download/v$pkgver/nghttp2-$pkgver.tar.xz"
# secfixes:
+# 1.57.0-r0:
+# - CVE-2023-44487
# 1.41.0-r0:
# - CVE-2020-11080
# 1.39.2-r0:
@@ -34,7 +32,12 @@ check() {
}
build() {
- autoreconf -vif
+ if [ -z "$BOOTSTRAP" ]; then
+ # fat to keep static non-lto too for non-gcc
+ # -20% size
+ export CFLAGS="$CFLAGS -ffat-lto-objects -flto=auto"
+ export CXXFLAGS="$CXXFLAGS -ffat-lto-objects -flto=auto"
+ fi
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -43,13 +46,25 @@ build() {
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--localstatedir=/var \
- --without-libxml2 \
- --without-neverbleed \
- --without-jemalloc \
- --disable-python-bindings \
--disable-examples \
+ --disable-http3 \
+ --disable-werror \
+ --enable-app \
--enable-static \
- --enable-app
+ --enable-threads \
+ --with-libcares \
+ --with-libev \
+ --with-openssl \
+ --without-jansson \
+ --without-jemalloc \
+ --without-libbpf \
+ --without-libnghttp3 \
+ --without-libngtcp2 \
+ --without-libxml2 \
+ --without-mruby \
+ --without-neverbleed \
+ --without-systemd \
+ "$(want_check && echo --with-cunit || echo --without-cunit)"
make
}
@@ -57,17 +72,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-static() {
- pkgdesc="$pkgname static libraries"
- mkdir -p "$subpkgdir"/usr/lib
- cd "$pkgdir"
- for _lib in $(find . -name '*.a'); do
- mkdir -p "$subpkgdir"/${_lib%/*}
- mv "$_lib" "$subpkgdir"/${_lib%/*}/
- done
-}
-
sha512sums="
-77c22371290f77e8a538b9efea225d23567cc27cb60b71703cbcb057839b5f117cf50796aa82bf4518f22b38a5773e90a1c273eafff4b17c435ac5858bdf7c6f nghttp2-1.48.0.tar.xz
-ad9a645e00d33747338cd23d1d0ff7c744ea6abd504b9175e086574d23881b188fd014464b660923ff37a64c0c46c4379c96374ac8997b03eb2350f9ec817740 disable-failing-musl-unittest.patch
+01e930d7caf464699505f92b76e2bc8192d168612dc564d2546812c42afea2fb81d552d70e8a5fed35e2bf5deadbec8eda095af94a2484bca41542988afce52a nghttp2-1.61.0.tar.xz
"
diff --git a/main/nghttp2/disable-failing-musl-unittest.patch b/main/nghttp2/disable-failing-musl-unittest.patch
deleted file mode 100644
index 3d20eefca20..00000000000
--- a/main/nghttp2/disable-failing-musl-unittest.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-This testcase fails due to musl libc.
-
---- a/src/shrpx-unittest.cc
-+++ b/src/shrpx-unittest.cc
-@@ -177,8 +177,6 @@
- !CU_add_test(pSuite, "util_ends_with", shrpx::test_util_ends_with) ||
- !CU_add_test(pSuite, "util_parse_http_date",
- shrpx::test_util_parse_http_date) ||
-- !CU_add_test(pSuite, "util_localtime_date",
-- shrpx::test_util_localtime_date) ||
- !CU_add_test(pSuite, "util_get_uint64", shrpx::test_util_get_uint64) ||
- !CU_add_test(pSuite, "util_parse_config_str_list",
- shrpx::test_util_parse_config_str_list) ||
diff --git a/main/nginx/APKBUILD b/main/nginx/APKBUILD
index 7a30ccffa49..bcb29b82663 100644
--- a/main/nginx/APKBUILD
+++ b/main/nginx/APKBUILD
@@ -4,6 +4,11 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
#
# secfixes:
+# 1.24.0-r12:
+# - CVE-2023-44487
+# 1.22.1-r0:
+# - CVE-2022-41741
+# - CVE-2022-41742
# 1.20.2-r2:
# - CVE-2021-46461
# - CVE-2021-46462
@@ -25,34 +30,42 @@
# - CVE-2018-16845
# 1.12.1-r0:
# - CVE-2017-7529
+# 0:
+# - CVE-2022-3638
#
pkgname=nginx
# NOTE: Upgrade only to even-numbered versions (e.g. 1.14.z, 1.16.z)!
# Odd-numbered versions are mainline (development) versions.
-pkgver=1.22.0
-pkgrel=2
+pkgver=1.24.0
+pkgrel=18
# Revision of nginx-tests to use for check().
-_tests_hgrev=8f13779e2cde
-_njs_ver=0.7.5
+_tests_hgrev=22f45bf99a9e
+_njs_ver=0.8.3
+# if this isn't set higher than testing/openresty that comes first for some reason
+# even though this has a higher version..
+provider_priority=100
pkgdesc="HTTP and reverse proxy server (stable version)"
url="https://www.nginx.org/"
arch="all"
license="BSD-2-Clause"
-depends=""
makedepends="
brotli-dev
gd-dev
geoip-dev
+ hiredis-dev
+ jansson-dev
libmaxminddb-dev
libxml2-dev
libxslt-dev
linux-headers
- openssl-dev
+ openssl-dev>3
pcre-dev
perl-dev
pkgconf
zeromq-dev
zlib-dev
+ zstd-dev
+ !zstd-static
"
checkdepends="
gd
@@ -70,23 +83,30 @@ _grp_www="www-data"
pkggroups="$_grp_ngx $_grp_www"
install="$pkgname.pre-install $pkgname.post-install $pkgname.pre-upgrade $pkgname.post-upgrade"
subpackages="$pkgname-debug $pkgname-doc $pkgname-openrc $pkgname-vim::noarch"
-source="https://nginx.org/download/$pkgname-$pkgver.tar.gz
+source="https://nginx.org/download/nginx-$pkgver.tar.gz
+ CVE-2023-44487.patch
$pkgname-tests-$_tests_hgrev.tar.gz::https://hg.nginx.org/nginx-tests/archive/$_tests_hgrev.tar.gz
+ nginx-tests~fix-openssl-3.2.0-compatibility.patch
$pkgname-njs-$_njs_ver.tar.gz::https://hg.nginx.org/njs/archive/$_njs_ver.tar.gz
nginx-dav-ext-module~pr-56.patch::https://github.com/arut/nginx-dav-ext-module/pull/56.patch
nginx-dav-ext-module~pr-62.patch::https://github.com/arut/nginx-dav-ext-module/commit/bbf93f75ca58657fb0f8376b0898f854f13cef91.patch
- nginx-module-vts~01-938c19d.patch::https://github.com/vozlt/nginx-module-vts/commit/938c19d2e49d5f3355df5375725982d15f1270c4.patch
- nginx-module-vts~02-ad40022.patch::https://github.com/vozlt/nginx-module-vts/commit/ad4002262c19e81390f518a14f99bb594862c575.patch
- nginx-module-vts~03-c08781c.patch::https://github.com/vozlt/nginx-module-vts/commit/c08781c5095d9e6090c47176bdea322ce983ecb6.patch
- nginx-module-vts~04-1a01a87.patch::https://github.com/vozlt/nginx-module-vts/commit/1a01a87e66c9f111fb399cf40def33ab193ae393.patch
- nginx-module-vts~05-ead62a0.patch::https://github.com/vozlt/nginx-module-vts/commit/ead62a0caf405731c88ac138c4c0a82bb316cc18.patch
- nginx-module-vts~fix-uri-overflow.patch
- nginx-module-vts~cast-key-length-to-correct-type.patch
- nginx-module-vts~set-histogram-buckets-on-first-request.patch
+ no-werror.patch
traffic-accounting-nginx-module~disable-stream-module.patch
+ traffic-accounting-nginx-module~fix-memory-leak.patch
nginx_cookie_flag_module~fix-mem-allocations.patch
njs~mktemp-busybox-compat.patch
- njs~nginx-1.20.x-compat.patch
+ naxsi~assert.patch
+ naxsi~ff-header.patch
+ naxsi~compat.patch
+ nginx-upload-progress-module~fix.patch
+ nginx-upload-progress-module~fix-http2.patch
+ ngx-fancyindex~fix-404-on-fs-root.patch
+ ngx-fancyindex~fix-missing-saturday.patch
+ nchan~dont-fail-redis-cluster-before-consensus.patch
+ nchan~fix-redis-race-condition.patch
+ nginx-upload-module~fixes.patch
+ nginx-upload-module~fix-nginx-compat.patch
+ zstd-nginx-module~fix-infinite-loop.patch
nginx.conf
default.conf
stream.conf
@@ -94,13 +114,12 @@ source="https://nginx.org/download/$pkgname-$pkgver.tar.gz
$pkgname.initd
$pkgname.confd
"
-builddir="$srcdir/$pkgname-$pkgver"
_modules_dir="usr/lib/$pkgname/modules"
_stream_js_depends="$pkgname-mod-stream"
case "$CARCH" in
- riscv64) _has_luajit=false;;
+ ppc64le|riscv64) _has_luajit=false;;
*) _has_luajit=true; makedepends="$makedepends luajit-dev";;
esac
@@ -152,25 +171,28 @@ _add_module() {
subpackages="$subpackages $pkgname-mod-$name:_module"
}
-_add_module "devel-kit" "v0.3.1" "https://github.com/vision5/ngx_devel_kit"
+_add_module "devel-kit" "v0.3.3" "https://github.com/vision5/ngx_devel_kit"
_devel_kit_so="ndk_http_module.so"
_add_module "http-accounting" "v2.0" "https://github.com/Lax/traffic-accounting-nginx-module"
-_add_module "http-array-var" "v0.05" "https://github.com/openresty/array-var-nginx-module"
+_add_module "http-array-var" "v0.06" "https://github.com/openresty/array-var-nginx-module"
_http_array_var_depends="$pkgname-mod-devel-kit"
+_add_module "http-auth-jwt" "0.6.0" "https://github.com/kjdev/nginx-auth-jwt"
+_http_auth_jwt_desc="Nginx third-party module kjdev/nginx-auth-jwt (version $_http_auth_jwt_ver)"
+
_add_module "http-brotli" "v1.0.0rc" "https://github.com/google/ngx_brotli"
_http_brotli_so="ngx_http_brotli_filter_module.so ngx_http_brotli_static_module.so"
-_add_module "http-cache-purge" "2.5.2" "https://github.com/nginx-modules/ngx_cache_purge"
+_add_module "http-cache-purge" "2.5.3" "https://github.com/nginx-modules/ngx_cache_purge"
_add_module "http-cookie-flag" "v1.1.0" "https://github.com/AirisX/nginx_cookie_flag_module"
_http_cookie_flag_so="ngx_http_cookie_flag_filter_module.so"
_add_module "http-dav-ext" "v3.0.0" "https://github.com/arut/nginx-dav-ext-module"
-_add_module "http-echo" "v0.62" "https://github.com/openresty/echo-nginx-module"
+_add_module "http-echo" "v0.63" "https://github.com/openresty/echo-nginx-module"
_add_module "http-encrypted-session" "v0.09" "https://github.com/openresty/encrypted-session-nginx-module"
_http_encrypted_session_depends="$pkgname-mod-devel-kit"
@@ -181,13 +203,15 @@ _add_module "http-geoip2" "3.4" "https://github.com/leev/ngx_http_geoip2_module"
_add_module "stream-geoip2" "3.4" "https://github.com/leev/ngx_http_geoip2_module"
_stream_geoip2_depends="$pkgname-mod-stream"
-_add_module "http-headers-more" "v0.33" "https://github.com/openresty/headers-more-nginx-module"
+_add_module "http-headers-more" "v0.37" "https://github.com/openresty/headers-more-nginx-module"
_http_headers_more_so="ngx_http_headers_more_filter_module.so"
+_add_module "http-keyval" "0.2.0" "https://github.com/kjdev/nginx-keyval"
+
_add_module "http-log-zmq" "v1.0.0" "https://github.com/danifbento/nginx-log-zmq"
# luajit is required for lua-nginx-module since v0.10.14
-_add_module "http-lua" "v0.10.21" "https://github.com/openresty/lua-nginx-module" "" "$_has_luajit"
+_add_module "http-lua" "v0.10.26" "https://github.com/openresty/lua-nginx-module" "" "$_has_luajit"
_http_lua_depends="$pkgname-mod-devel-kit lua-resty-core"
_http_lua_provides="$pkgname-lua" # for backward compatibility
@@ -197,7 +221,7 @@ _http_lua_upstream_depends="$pkgname-mod-http-lua"
_add_module "http-naxsi" "1.3" "https://github.com/nbs-system/naxsi" "naxsi_src"
_naxsi_provides="$pkgname-naxsi" # for backward compatibility
-_add_module "http-nchan" "v1.3.0" "https://github.com/slact/nchan"
+_add_module "http-nchan" "v1.3.6" "https://github.com/slact/nchan"
_http_nchan_so="ngx_nchan_module.so"
_add_module "http-redis2" "v0.15" "https://github.com/openresty/redis2-nginx-module"
@@ -205,28 +229,32 @@ _add_module "http-redis2" "v0.15" "https://github.com/openresty/redis2-nginx-mod
_add_module "http-set-misc" "v0.33" "https://github.com/openresty/set-misc-nginx-module"
_http_set_misc_depends="$pkgname-mod-devel-kit"
-_add_module "http-shibboleth" "v2.0.1" "https://github.com/nginx-shib/nginx-http-shibboleth"
+_add_module "http-shibboleth" "v2.0.2" "https://github.com/nginx-shib/nginx-http-shibboleth"
_add_module "http-untar" "v1.1" "https://github.com/ajax16384/ngx_http_untar_module"
+_add_module "http-upload" "2.3.0" "https://github.com/fdintino/nginx-upload-module"
+
_add_module "http-upload-progress" "v0.9.2" "https://github.com/masterzen/nginx-upload-progress-module"
_http_upload_progress_so="ngx_http_uploadprogress_module.so"
_add_module "http-upstream-fair" "0.1.3" "https://github.com/itoffshore/nginx-upstream-fair"
-_add_module "http-upstream-jdomain" "1.4.0" "https://github.com/nicholaschiasson/ngx_upstream_jdomain"
+_add_module "http-upstream-jdomain" "1.5.0" "https://github.com/nicholaschiasson/ngx_upstream_jdomain"
-_add_module "http-vod" "1.29" "https://github.com/kaltura/nginx-vod-module"
+_add_module "http-vod" "1.33" "https://github.com/kaltura/nginx-vod-module"
-_add_module "http-vts" "v0.1.18" "https://github.com/vozlt/nginx-module-vts"
+_add_module "http-vts" "v0.2.2" "https://github.com/vozlt/nginx-module-vts"
_http_vts_so="ngx_http_vhost_traffic_status_module.so"
-_add_module "http-zip" "1.2.0" "https://github.com/evanmiller/mod_zip"
+_add_module "http-zip" "1.3.0" "https://github.com/evanmiller/mod_zip"
+
+_add_module "http-zstd" "0.1.1" "https://github.com/tokers/zstd-nginx-module"
+_http_zstd_so="ngx_http_zstd_filter_module.so ngx_http_zstd_static_module.so"
_add_module "rtmp" "v1.2.2" "https://github.com/arut/nginx-rtmp-module"
_rtmp_provides="$pkgname-rtmp" # for backward compatibility
-
prepare() {
local file; for file in $source; do
file=${file%%::*}
@@ -258,6 +286,14 @@ _build() {
export LUAJIT_INC="$(pkgconf --variable=includedir luajit)"
fi
+ # Fix compilation with gcc 13.1.
+ # TODO: Remove after upgrade to njs 0.7.13.
+ # https://github.com/nginx/njs/commit/e60d10f2007c332391d7a104453e13567ebbe52d
+ export NJS_CFLAGS="-Wno-error=dangling-pointer"
+
+ # Enable support for Redis store in the http-keyval module.
+ export NGX_HTTP_KEYVAL_ZONE_REDIS=1
+
# --without-pcre2 - Lua module is not compatible with PCRE2 yet
# https://github.com/openresty/lua-nginx-module/issues/1984
./configure \
@@ -317,8 +353,6 @@ _build() {
}
build() {
- cd "$builddir"
-
_build --with-debug
mv objs objs-debug
@@ -337,18 +371,18 @@ check() {
;;
esac
- TEST_NGINX_BINARY="$builddir/objs/nginx" prove .
+ : ${JOBS:-1}
+ TEST_NGINX_BINARY="$builddir/objs/nginx" prove -j $((JOBS > 20 ? 20 : JOBS)) .
- if [ -n "$_njs_mods" ]; then
- msg "Running njs tests..."
- cd "$srcdir"/njs-*
- make test
- fi
+ # FIXME: see !46437
+ #if [ -n "$_njs_mods" ]; then
+ # msg "Running njs tests..."
+ # cd "$srcdir"/njs-*
+ # make test
+ #fi
}
package() {
- cd "$builddir"
-
make DESTDIR="$pkgdir" install
chown root:root "$pkgdir"/usr/sbin/nginx
@@ -418,6 +452,7 @@ _module() {
pkgdesc="Nginx module ${name//_/-}"
[ "$ver" ] && pkgdesc="Nginx third-party module ${name//_/-} (version $ver)"
+ pkgdesc="$(getvar "_${name}_desc" "$pkgdesc")"
url=$(getvar "_${name}_url" "$url")
sonames=$(getvar "_${name}_so" "ngx_${name}_module.so")
depends="$pkgname $(getvar "_${name}_depends")"
@@ -450,7 +485,7 @@ _module() {
;;
stream)
mkdir -p ./etc/nginx/stream.d
- install -m644 "$srcdir"/stream.conf ./etc/nginx/stream.conf
+ install -m644 -D "$srcdir"/stream.conf ./etc/nginx/conf.d/stream.conf
;;
esac
}
@@ -461,55 +496,66 @@ getvar() {
}
sha512sums="
-074782dba9cd5f8f493fbb57e20bda6dc9171814d919a47ee9f825d93f12c9f9d496e25d063c983191b55ad6a236bcef252ce16ecc1d253dc8b23433557559b1 nginx-1.22.0.tar.gz
-40535031f81a3775cdd2da9cb38307a736f0346db348f758d37e8f4cf7d929ea0685c579a52b299526bf0f911896f2f9fb09d8532cd012563f3988d5a46e4e63 nginx-tests-8f13779e2cde.tar.gz
-9f0dc6bda06a0db5a92c45b6d8048c2fbb4e2b43a10d050dd3b2de820da425367808d4262bfc8d8e60ed1350bdabb42d1611f373c3da8c88818e266c46f79c78 nginx-njs-0.7.5.tar.gz
+1114e37de5664a8109c99cfb2faa1f42ff8ac63c932bcf3780d645e5ed32c0b2ac446f80305b4465994c8f9430604968e176ae464fd80f632d1cb2c8f6007ff3 nginx-1.24.0.tar.gz
+18b69643648119dfab45101bb9404be667aeb9d550aa3bc9706e63e7da1c2806106e9a6bbfb2d10bd57ef56b9b5b0b524059353ec30a51469b44641cb7dbd8a6 CVE-2023-44487.patch
+d882d7f79814bd5caf323099aef318a5f4c75c2eb81f13bbd9688fd5404f5a2e4dc653dbc23121f77cc5ccf59742f80fb34db38b8788030c54b376eb9a2065ff nginx-tests-22f45bf99a9e.tar.gz
+ba3512c78007b666b38abd5fd84537c9f3c98816e168022e70f4eca90a55c2c9f5425384b5e1d8ebbb646006810cf9c38d2eda4cabe2ea4cba50f7059c1dbc43 nginx-tests~fix-openssl-3.2.0-compatibility.patch
+1cec9a322c40aa2b4ec6eb5bea78d7442880b0cff3a41ad171a3dc3157a6990baec6c8b9eda99ee02a9e51c0b933f13ef17431079a5ff409aaf84b912c7f4df7 nginx-njs-0.8.3.tar.gz
4c7a94aaebbb69599b0067e74f9f3db54ec383ca9499292fec5b875bb0b5859aa11dc14cef5664c94dd54aba231f31e85feacddc49f7622aa4d0fdb38709b6e1 nginx-dav-ext-module~pr-56.patch
fdd66e433126e194a3ef22737993191a04fcc4c8caa044b27cb22bea0e7f16c8fdbc900553507d2bb541cdb82b542845a297db2a48c2460a38dd772d0ebfca9d nginx-dav-ext-module~pr-62.patch
-fa96e91f495e9891c03730bcafd948e597e7c5d74f2d30df0a8483ae04f7b30c89065a994a0baa5245470f8991db5844b26da925b23ff26c178a384f5f1a887c nginx-module-vts~01-938c19d.patch
-1c37e58921478325bb4dd608900588cda49d608e859127f45a1df73176b228b060bf71d9530dc1ad434a287c7a3225e8fe307fcf1bd15758f327436283db6fb9 nginx-module-vts~02-ad40022.patch
-9f9cda2f3f163654100adf9cde892b26f80d3de30ffec9fcdb0b3c1a42856f9219ebb024fd4c156fd8c4c4a6c7b17faca89e16916128da232d9f3bc825d716ff nginx-module-vts~03-c08781c.patch
-e87d9c8cbebc147881e3a40e6944acfe836f29eb7b393af0465b04dd27f1fa42f17ab63d2bcc75053812140a92dceca4eb4e1f0e35877919af4bd3cd0b2b771a nginx-module-vts~04-1a01a87.patch
-dfcfd4dd14ccb205ea80d28eae8cadd123015d5eddc004a31b7742d8117c69cad1b56868ba94dd75e22b7ef9f44da21c02e5f5f1ecd4f90473cd9fa6128518c5 nginx-module-vts~05-ead62a0.patch
-5d6b5b2f409d8183576d7d58f75a92b859922e6dc6d2e12d3abb92f3491eca4962231c1ba5860366fd83c86283711b79a19c3c7823f042267f14925d7a49cc78 nginx-module-vts~fix-uri-overflow.patch
-90efd127fef5c89ae3148ab626a4061875d84af376d41b2bd36b2cf3188c2a244013bf1d3b09fbde51b68f59f0893e0bfaf929319aeb818904c8cdadd853c229 nginx-module-vts~cast-key-length-to-correct-type.patch
-48689e09dc87f395095408127669c9f21a32c13b1b700ffad225db0c8920ae9e4f08e88332c12c01d96ded2d091ad2033885d81d5d7c9479745b10620f36562d nginx-module-vts~set-histogram-buckets-on-first-request.patch
+c89fab6d3d4226e37f2a8d2122d825046fc9a787e464fc75351a19fbda5b47016ddb907e0a61241a007304af921e11a0715895ba7b6d4c1112afe816177ed02a no-werror.patch
09ec9f18323197eafa55ff68e8c836ad3dd830e6cd3bd4aeaf34e179ef3f72f734a0117288c1c58813aff59f3f1f0f29ccd772a672e17551e7a4fd0693a89c92 traffic-accounting-nginx-module~disable-stream-module.patch
+5a7e72fc6ade460b725e6b91d5eafeb2792ad9832fbdb84ed868bd9a25d43116e42877df587b5f3885a1e38769f072ed4e8605393aca672d61bc71dd106d392b traffic-accounting-nginx-module~fix-memory-leak.patch
ac0f912ae90e0083cc761a622290223edeed0bd32213bbe766d637ac2dfd9835d163e5d16ef28740cbad05d6d92cc418d62df3413c70b4f2c63db02f8ca1c7cc nginx_cookie_flag_module~fix-mem-allocations.patch
4db527d663dbe9e8b503c3cbaa4eae34b45990a5359b3bb98ce970c705faefcac98de49439f2557756a2be8e2e06acc67f98942de01674c498832d80c3cb90c3 njs~mktemp-busybox-compat.patch
-df1d910d5a433ef8aa6620e46bd46cb82c45c840e35420bf81a76e5a868ac73ad88aa3934d1c11bcf004a88a9cd13bf69a96ee1b08540251b09903a30430b199 njs~nginx-1.20.x-compat.patch
-9c5ee975dffa15b76688ef798371635f38f1e6773b143c738add26297878dddfc20ebf276e3871a60f28b197e8a70496ca17d4816c2136171978c157bb8e591f nginx.conf
+eee45b82a594c4dfa5eecf94cf14cd247bd1dd7d627aa0a26666828b3e2da1a358da251a23f0b5feeb5f95f6ba205af6ead54c1e6bcb67f6d11149c0580de3af naxsi~assert.patch
+7c35f51d73b6c20b6b9b030e76a4898752eae38e0f8e4001286a93633f0b1b11c39fd883116d86a323338027766d15d99c824a9cd9ffe934bea80b7af2a3070c naxsi~ff-header.patch
+3e000d58e1259a656bb49af23623e6542ec994e3fe699e0005afde9ded5d505e7a174b206390b55ef639e53fd47516a86d88de675df86d550808da1d2732e683 naxsi~compat.patch
+745e900573bc4d1ca6dd40da4743387f9ffaa764cca59591fcbfb1afe67980e529184f81a7cf8f047ddd1962a6a26ed65f1589d69a4f63f6f5701549f38a0652 nginx-upload-progress-module~fix.patch
+24bcde151301ed41eaea65c3792219b25dbb76e3eddd74064937038326698b83d6620d2515a954984502ad2a1c6c53843680952c2ce813f2da34652047675ddf nginx-upload-progress-module~fix-http2.patch
+37ad4288684d8918045d406f9f46510211413ab343e47aa149e52fd773ad95e6ff10a1b4e7cdd60acaf9231a0c6a935ab489c25880444f1a79e8624693fa166e ngx-fancyindex~fix-404-on-fs-root.patch
+d54eb2152b2ddbf3e8956cb7b4634b1657635b21b9b4f91309d45a43553c9506ad70161d265e0840c1e84c9e04c0e89061600176ad2ec39311b5c0ce75e42f1e ngx-fancyindex~fix-missing-saturday.patch
+abda15727e34178db2f8013a1c47e480ba323a3b3b88a44bbada0169b8ce66743911ec7b551272fc8540199070b62eadc78a19989f770794b43877c6743f573d nchan~dont-fail-redis-cluster-before-consensus.patch
+2a87aee322a146a55e58d48636cdb6a3a182c308a6fe5327c9c2ece0487f669fe6b3f231f56e395e12b7c2ae2dd929a72a03dc18b1032ccc733184aac50d2381 nchan~fix-redis-race-condition.patch
+ef57603bd65ffbbb216fd748dab0126d3df7aafdfa70dce0ea9ef91373df95269546ec2fcaa03f842a8db3a16879274184a23b18db17b4f9be3916aedacb7765 nginx-upload-module~fixes.patch
+bae6c3153810bf6f460248668f2c48e332aba37081e25e45a1691344508530ef1be9acee4d52f506cb09510c4fce8d93ca3178ba45af771c54e37126f4f11b1b nginx-upload-module~fix-nginx-compat.patch
+97ed3a3ad636a8853a993db3a33c67da303063e7ac43c20eeac6afb9f71adafa5dedf5f5f8c6705a256294c0566e3ac9f5fa41930048ad80b10a7d2a7d3c9b53 zstd-nginx-module~fix-infinite-loop.patch
+c209a220b6afc9354a1c4c39817199327425485b3da44778d632cdfd1d95b8412c58ba9b27a5c96599e7a34cc039f5b7d914ad82153c610b27dfbe21fdcdca77 nginx.conf
0907f69dc2d3dc1bad3a04fb6673f741f1a8be964e22b306ef9ae2f8e736e1f5733a8884bfe54f3553fff5132a0e5336716250f54272c3fec2177d6ba16986f3 default.conf
-f3321a45736697009817db335ad36d3f1d05f60d98ac90a943220cdd4c00c52632f018db6a6076d5431a483525aacc5725b87b765b590e2f63b3ef98c5b16bd8 stream.conf
+426f0c317322af7cab152f2070398c7aa5c059276ba504617a212f1e060bbb1dd9edc54e62d4cf5f14e3678235351c808ebeabe8b122757c74b3f505e8427106 stream.conf
09b110693e3f4377349ccea3c43cb8199c8579ee351eae34283299be99fdf764b0c1bddd552e13e4d671b194501618b29c822e1ad53b34101a73a63954363dbb nginx.logrotate
ee10a5687740dde0c3d18d8b3555f49fcdc6abfc0a3bc2de1de3be0e99951a346fe8027d916aab73071ecd4e2c50871e7c867aca3a7a0fd16e3374c5caed1c57 nginx.initd
0b9b9ed01ac077e334c034faa2679f6e26740fb3362eebf8cef82d22b2af2a3faaa53bae3c9e14af51cbf64720a7c66431905ca5cc43f978366456cc4e3b7f4a nginx.confd
-de1e3349d8dd08e5982279b2219dc8a8006739f0409b8e0f5c50d93434beff1fbafba43e9c5ac85a5fab90afc5c0a7244a340610339c36f82f2cba7233e72de9 ngx_devel_kit-0.3.1.tar.gz
+a255e3a4a9b902b3e15140dc88bbbb152b0a9cdc64604152de41e1b254e81aa2a1e2c95c06cb4905c1520886acf9070031d63913b53fe98b034f8adad2bccf61 ngx_devel_kit-0.3.3.tar.gz
0df34c3765e18dc5cc5a053d3a17dbee17a686a1f6e76ad057c262741c4e4465c66bcef86e627a19258f836cad5f14745bf046fd396b00960ad79ed20c2a07bb traffic-accounting-nginx-module-2.0.tar.gz
-7c9fa9b76bc7cd2473ceae6d5ffb8de26993be9293ea967908d6c4550e086affa7016df4c936fb0b79f1142dc0aa1a5f2058d417e6433b5a3497a45d7e866e84 array-var-nginx-module-0.05.tar.gz
+bc72158856a1be18a26ee04c6b5b0f0a20bcce688610a493bf31e2a133e7eb12e11f7c18197a09a72b1513f6a08348ee5281b9d5b84cf43603539040ebd23c26 array-var-nginx-module-0.06.tar.gz
+56fe87b7b456856c167b47e5dfc579ac77f15487785dd8411397f6041561b991218518218b4adf3054392fdf1569469a4eff288706f320cf8d2c45b066ef780b nginx-auth-jwt-0.6.0.tar.gz
05a880d5e48ac83be84498ed41fb4750211b827a9d7541acfd6ef494e5205a6e853d5594bfec3ab4ae668ea3f803e4f4b0ba550c76811971c8e266e42663c56d ngx_brotli-1.0.0rc.tar.gz
-a5e5f901823559d42421f9bc8f2aaba6cc3ad9ddfba2bbad154bb6b70e2001ed1bf25781c2117faeea3c20d824c74827cdf6b97f45eda343b60f50b964e69c40 ngx_cache_purge-2.5.2.tar.gz
+aebc9b19a3e7dda3b57e6bd6d86a5ab66d25e05cf5c6c99c71234c789700eb9da8e29529b8b2abf3d775ff3c2610e695fc88e647738769f0d3730bcafc3be38b ngx_cache_purge-2.5.3.tar.gz
352cc3d033cc67ee34209f958dac13ada2147de429f4dd3da301c865d52970d80c8aa3c193f7fb28cf4854b88baff07b6efc3bae1fb813fe53d5956a87dfc81a nginx_cookie_flag_module-1.1.0.tar.gz
d0193ba90f1ef46c4e470630c4394bdf99d94fd2e3bd8be6cb2ba1655ec59944b1269025f032b79dc2c6dad366e54389ef6a6da2ddeb91d535a4027f2162fbde nginx-dav-ext-module-3.0.0.tar.gz
-240896b1c559a71ca6ca87136d8535edd25b1d65ebb80d46080ad41c09ed1cec9737828f9efe260782294d660cea66cf402f4e75bba3fed26f3a94de0ae2f89b echo-nginx-module-0.62.tar.gz
+c325ac4e3f3f735739e156d8c7ada503b34475c62533b4830231ff1b42c25cb0c841aae06b3448b589c2ab35da8d211436ed194d6fd062cad925af8152c5e789 echo-nginx-module-0.63.tar.gz
399ce2690e85ee27802e8031954a1a3aa3fdc9246e17323a72a298d235931a8dbebdcb121ac8788e074872df0ef5b5a8a3d512b17fbe860b38f696ce42de3655 encrypted-session-nginx-module-0.09.tar.gz
c208cdf3e245527d7b313f9ef1f5d36ca26e3bdafe67df56492a13b7726587538665e5d9fd50f295fc933f218dc33394f2fe442713d15631701dbfc4a156799b ngx-fancyindex-0.5.2.tar.gz
18dea21e5ae2647bea1fc448058a1b773c936917245edef8d861d5e23ed92e9a3b1ec4ef43ffb2ece7b5899d787910adcf4fbd39f84d7e8d7c54759e2fee5b72 ngx_http_geoip2_module-3.4.tar.gz
-13165b1b8d4be281b8bd2404fa48d456013d560bace094c81da08a35dc6a4f025a809a3ae3a42be6bbf67abbcbe41e0730aba06f905220f3baeb01e1192a7d37 headers-more-nginx-module-0.33.tar.gz
+0cc2fffe506194d439e3669644d41b7943e2c3cffa3483eb70b92067930b358d506a14646eff8362b191a11c624db29f6b53d830876929dcb4ce1c9d7b2bc40d headers-more-nginx-module-0.37.tar.gz
+45b8f107a492f415f5053b9b95d3dad481d5736c603b87c1342541214e89b9acbe37925f93acc396782406232e607879b52f9bb480f9021c10d405b832298022 nginx-keyval-0.2.0.tar.gz
015a358d987476bb61302fbbe1cb105f5314edc1a8b7ee6310aae697f755c79fcb1834ff561fced054c8cd5624f5387fcc1de729731ccd70662f2eb72bcdc174 nginx-log-zmq-1.0.0.tar.gz
-c7594be48a3a5a8cc7bbda9288cb836c4c854ad22f91766dba944316d471ab8857a6b6a52813eb041af81939df73614db54ccd3ed35af87036d76317ebbe2e97 lua-nginx-module-0.10.21.tar.gz
+9abf00844ef00ce1dc5ff08d6fe4ddccf843f2ad2de6fd450854b38a66b45add71e814205dba9b19225b9165e67eb93578e83e5fe37af4e0c891e61e6a6bfb3d lua-nginx-module-0.10.26.tar.gz
72887c4490854b099cb26bb3f840073a36b0d812bde4486f04dc1be182ca74f0d1e3fd709e77c240c2dcf37665f74cf04e188ea9efe8e127c6789b27b487d0cd lua-upstream-nginx-module-0.07.tar.gz
d7aac69b5eceeb1b0db4741201159ade1e0e7f6f7c3e8c4afa2f8959c6c00c3b5285d5185747c2fb0b1400efda02e96799836315e7e492bb4a059b14acb2142d naxsi-1.3.tar.gz
-c8cd3eb0b06fc0f17b5a9013d32f5a6d5a8252015b3ac27fbf74a7a1b97bc7ae78c5c8cdd7372e36f5f9d137b59635f007d836746282c85c4a972b6984ba2bef nchan-1.3.0.tar.gz
+0f1c25d460dcf4e3407a1ef4bfcefe17eba7b0ff250f267e5bde0eb4298e9596c1e6992fc58fe35d8420888065353bf3883a1f1bbc5e607a00128992eb1ee6d2 nchan-1.3.6.tar.gz
d6ca250db8de93edbd7875afca35e73cecdaf82132d1a7ee933cf94c6b8afa8e629e9e647a9321f2bc1fbb92137ec0d32dcd89b82ac5fae31e342537fb7e0431 redis2-nginx-module-0.15.tar.gz
1ff4c947538a5bd5f9d6adcd87b37f2702f5cc90e3342bc08359cbe8f290b705a3a2daa3dedfb1df3ce4bc19478c8fcac07081c4a53a804fc2862d50078278dc set-misc-nginx-module-0.33.tar.gz
-1730845ea2e52be8c2f6cfceb2894304c5a07959a96940bb1617ee0e7cf81d22283304f411d9a219ddb71e4d9a66012bba0f6f5574d101aeb3c406f26c5d6a4e nginx-http-shibboleth-2.0.1.tar.gz
+0f0c5167e999ffad0caa816d4b7d0a121f0598d578391834fe3293a3e023453d91b36ffc32a431ff3af3f9f376d2d78703998560094d20643b4049c2fec84bda nginx-http-shibboleth-2.0.2.tar.gz
c3a7dd29c4a4e47d396b19622a290a04d4cceb97c1b8a508bc984eb8c81d17da4bf5789514bb996987f8343bc801ee4457a86a274bde98b49a809afdfc04cbde ngx_http_untar_module-1.1.tar.gz
+a0da355888398f86a6b5d065e58c05f9e057589ee785be9f515d77d7a020ae5a7b0656f5af30fb3b026f457326db2e26f4fed29026221ec5fc8156ef8586da25 nginx-upload-module-2.3.0.tar.gz
c31c46344d49704389722325a041b9cd170fa290acefe92cfc572c07f711cd3039de78f28df48ca7dcb79b2e4bbe442580aaaf4d92883fd3a14bf41d66dd9d8c nginx-upload-progress-module-0.9.2.tar.gz
8adb7453c27748f4e685e3352e9b318b408da818754dc5b6244e908423941a8ba337561104f6e481f2553cbc0e334dcea73b57f8e810a9d6e974bb69ff8859e5 nginx-upstream-fair-0.1.3.tar.gz
-bbf3f4808f17fa797fa0c27bc1351098aa5d6b5d227376a0ab01b4f424942ec5ad9f5c09c7af284345988b119268bf579b24065fb6bc6bc2f2b2392e918f09bc ngx_upstream_jdomain-1.4.0.tar.gz
-4ffbd9f1f641e4304ffda2dfeee627d27fee69ca4f55cf7f5286c415a5962b5d332e69a73be026ebe253c1f7253c5843ea6cffb2663bded0e934ea0015a89bb0 nginx-vod-module-1.29.tar.gz
-86b980095b3b80c8dce2e355db514cb4b3039c8408a2f5ca6df9e105d5462952fddd70f6581ec6aa2763e560b591664c27eefd978c4ea777b1f1f808bc60d4ec nginx-module-vts-0.1.18.tar.gz
-92e1e5aa570b68a19bb718817f864c4347f6dc89f90d828071ab3d06c784cc2786674d9d64fffef8c23749d0a653f2eb996b412ab10015eea1ed895d81268ce1 mod_zip-1.2.0.tar.gz
+2ac8351d8d325353534c87e0ef6034a5d3897411895b4e03f22fa06343337d86897331797541ab9201cd7dc8b0376d6d76eb4458849900348f5e199e0b0bd357 ngx_upstream_jdomain-1.5.0.tar.gz
+29ef77f1bbdb2410ff317ebdd7434f31b8ec370ae6b617b92e745e87c11bc820b451181d1d2b57156b414348da14ac448b689b32b17ab418144292eda094512d nginx-vod-module-1.33.tar.gz
+7295c1af3267b067793fb88e3d3a74fdba5187742141d447f597b8d726c455bfb163209eca5d00b00a57adc3f627078b404a43f5318f910a68c6aeaffb189b1c nginx-module-vts-0.2.2.tar.gz
+8c5dda14da06ef776fe2b496c2f1b80d2c25c9269309aa560a006c369044c52917024a90f897b7212b2409a874bf2e0a3ab2dbc1e10ad84fa64f54f1f4df3d0d mod_zip-1.3.0.tar.gz
+6feb544face95121ea076db5df8ca34854085b57602e732c7ba427be5e3f2bf668729d45497a2c91212f98ed8a2c347aa8778a54594f5d241e39e094a2556e4c zstd-nginx-module-0.1.1.tar.gz
3f8c803221854c4b1a06aadc6313fbfec74bd7179c0ee51d4365b26ffa8875881a6e1e48f777a9c9efbb9170ab7478a82920d5448a2c2df485503d37bb03ab81 nginx-rtmp-module-1.2.2.tar.gz
"
diff --git a/main/nginx/CVE-2023-44487.patch b/main/nginx/CVE-2023-44487.patch
new file mode 100644
index 00000000000..b9fcfbf7d6c
--- /dev/null
+++ b/main/nginx/CVE-2023-44487.patch
@@ -0,0 +1,71 @@
+
+# HG changeset patch
+# User Maxim Dounin <mdounin@mdounin.ru>
+# Date 1696940019 -10800
+# Node ID cdda286c0f1b4b10f30d4eb6a63fefb9b8708ecc
+# Parent 3db945fda515014d220151046d02f3960bcfca0a
+HTTP/2: per-iteration stream handling limit.
+
+To ensure that attempts to flood servers with many streams are detected
+early, a limit of no more than 2 * max_concurrent_streams new streams per one
+event loop iteration was introduced. This limit is applied even if
+max_concurrent_streams is not yet reached - for example, if corresponding
+streams are handled synchronously or reset.
+
+Further, refused streams are now limited to maximum of max_concurrent_streams
+and 100, similarly to priority_limit initial value, providing some tolerance
+to clients trying to open several streams at the connection start, yet
+low tolerance to flooding attempts.
+
+diff -r 3db945fda515 -r cdda286c0f1b src/http/v2/ngx_http_v2.c
+--- a/src/http/v2/ngx_http_v2.c Fri Sep 22 19:23:57 2023 +0400
++++ b/src/http/v2/ngx_http_v2.c Tue Oct 10 15:13:39 2023 +0300
+@@ -347,6 +347,7 @@
+ ngx_log_debug0(NGX_LOG_DEBUG_HTTP, c->log, 0, "http2 read handler");
+
+ h2c->blocked = 1;
++ h2c->new_streams = 0;
+
+ if (c->close) {
+ c->close = 0;
+@@ -1284,6 +1285,14 @@
+ goto rst_stream;
+ }
+
++ if (h2c->new_streams++ >= 2 * h2scf->concurrent_streams) {
++ ngx_log_error(NGX_LOG_INFO, h2c->connection->log, 0,
++ "client sent too many streams at once");
++
++ status = NGX_HTTP_V2_REFUSED_STREAM;
++ goto rst_stream;
++ }
++
+ if (!h2c->settings_ack
+ && !(h2c->state.flags & NGX_HTTP_V2_END_STREAM_FLAG)
+ && h2scf->preread_size < NGX_HTTP_V2_DEFAULT_WINDOW)
+@@ -1349,6 +1358,12 @@
+
+ rst_stream:
+
++ if (h2c->refused_streams++ > ngx_max(h2scf->concurrent_streams, 100)) {
++ ngx_log_error(NGX_LOG_INFO, h2c->connection->log, 0,
++ "client sent too many refused streams");
++ return ngx_http_v2_connection_error(h2c, NGX_HTTP_V2_NO_ERROR);
++ }
++
+ if (ngx_http_v2_send_rst_stream(h2c, h2c->state.sid, status) != NGX_OK) {
+ return ngx_http_v2_connection_error(h2c, NGX_HTTP_V2_INTERNAL_ERROR);
+ }
+diff -r 3db945fda515 -r cdda286c0f1b src/http/v2/ngx_http_v2.h
+--- a/src/http/v2/ngx_http_v2.h Fri Sep 22 19:23:57 2023 +0400
++++ b/src/http/v2/ngx_http_v2.h Tue Oct 10 15:13:39 2023 +0300
+@@ -131,6 +131,8 @@
+ ngx_uint_t processing;
+ ngx_uint_t frames;
+ ngx_uint_t idle;
++ ngx_uint_t new_streams;
++ ngx_uint_t refused_streams;
+ ngx_uint_t priority_limit;
+
+ size_t send_window;
+
diff --git a/main/nginx/naxsi~assert.patch b/main/nginx/naxsi~assert.patch
new file mode 100644
index 00000000000..35ae171d48a
--- /dev/null
+++ b/main/nginx/naxsi~assert.patch
@@ -0,0 +1,23 @@
+Patch-Source: https://github.com/nbs-system/naxsi/commit/aa9da98b1b9b52e5d95bbc28dc8126c0920cb4cb
+
+From aa9da98b1b9b52e5d95bbc28dc8126c0920cb4cb Mon Sep 17 00:00:00 2001
+From: Giovanni <561184+wargio@users.noreply.github.com>
+Date: Fri, 18 Dec 2020 11:31:42 +0100
+Subject: [PATCH] Fix #541 - Removing useless assert.
+
+---
+ naxsi_src/naxsi_runtime.c | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/naxsi_src/naxsi_runtime.c b/naxsi_src/naxsi_runtime.c
+index eccdce3e..28e0b29d 100644
+--- a/naxsi_src/naxsi_runtime.c
++++ b/naxsi_src/naxsi_runtime.c
+@@ -1073,7 +1073,6 @@ ngx_http_nx_log(ngx_http_request_ctx_t* ctx,
+ ** don't handle uri > 4k, string will be split
+ */
+
+- assert(strlen(fmt_config) != 0);
+ sub = snprintf((char*)fragment->data,
+ sz_left,
+ fmt_base,
diff --git a/main/nginx/naxsi~compat.patch b/main/nginx/naxsi~compat.patch
new file mode 100644
index 00000000000..ac9a2d64064
--- /dev/null
+++ b/main/nginx/naxsi~compat.patch
@@ -0,0 +1,133 @@
+Patch-Source: https://github.com/nbs-system/naxsi/commit/d714f1636ea49a9a9f4f06dba14aee003e970834
+
+From d714f1636ea49a9a9f4f06dba14aee003e970834 Mon Sep 17 00:00:00 2001
+From: Danila Vershinin <ciapnz@gmail.com>
+Date: Mon, 27 Jun 2022 19:45:00 +0300
+Subject: [PATCH] Fixes NGINX >= v.1.23.0 (all credits @lubomudr) (#598)
+
+---
+ naxsi_src/naxsi.h | 4 ++--
+ naxsi_src/naxsi_runtime.c | 42 ++++++++++++++++++++++++++++++++-------
+ 2 files changed, 37 insertions(+), 9 deletions(-)
+
+diff --git a/naxsi_src/naxsi.h b/naxsi_src/naxsi.h
+index b2f5c1a5..8c1939e1 100644
+--- a/naxsi_src/naxsi.h
++++ b/naxsi_src/naxsi.h
+@@ -9,12 +9,12 @@
+
+ #define NAXSI_VERSION "1.3"
+
++#include <ngx_config.h>
++#include <ngx_core.h>
+ #include "ext/libinjection/libinjection_sqli.h"
+ #include "ext/libinjection/libinjection_xss.h"
+ #include <ctype.h>
+ #include <nginx.h>
+-#include <ngx_config.h>
+-#include <ngx_core.h>
+ #include <ngx_event.h>
+ #include <ngx_http.h>
+ #include <ngx_http_core_module.h>
+diff --git a/naxsi_src/naxsi_runtime.c b/naxsi_src/naxsi_runtime.c
+index 784852b0..6b55d2b3 100644
+--- a/naxsi_src/naxsi_runtime.c
++++ b/naxsi_src/naxsi_runtime.c
+@@ -4,8 +4,8 @@
+ * Licensed under GNU GPL v3.0 – See the LICENSE notice for details
+ */
+
+-#include "assert.h"
+ #include "naxsi.h"
++#include "assert.h"
+ #include "naxsi_macros.h"
+ #include "naxsi_net.h"
+
+@@ -2912,20 +2912,20 @@ ngx_http_naxsi_data_parse(ngx_http_request_ctx_t* ctx, ngx_http_request_t* r)
+ /* and the presence of data to parse */
+ r->request_body && ((!ctx->block || ctx->learning) && !ctx->drop))
+ ngx_http_naxsi_body_parse(ctx, r, cf, main_cf);
++#if (NGX_HTTP_X_FORWARDED_FOR)
+ ngx_str_t tag;
+ tag.len = 15;
+ tag.data = ngx_pcalloc(r->pool, tag.len + 1);
+ if (tag.data)
+ memcpy(tag.data, "x-forwarded-for", 15);
++#if (nginx_version < 1023000)
+ unsigned int n = 0;
+ ngx_table_elt_t** h = NULL;
+ ngx_array_t a;
+-#if (NGX_HTTP_X_FORWARDED_FOR)
+ if (r->headers_in.x_forwarded_for.nelts >= 1) {
+ a = r->headers_in.x_forwarded_for;
+ n = a.nelts;
+ }
+-#endif
+ if (n >= 1)
+ h = a.elts;
+ if (n >= 1) {
+@@ -2933,6 +2933,16 @@ ngx_http_naxsi_data_parse(ngx_http_request_ctx_t* ctx, ngx_http_request_t* r)
+
+ ngx_http_naxsi_update_current_ctx_status(ctx, cf, r, &tag, (ngx_str_t*)h[0]->value.data);
+ }
++#else
++ ngx_table_elt_t* xff = NULL;
++ if (r->headers_in.x_forwarded_for != NULL) {
++ xff = r->headers_in.x_forwarded_for;
++ ngx_log_debug(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, "xfor %s", xff->value.data);
++
++ ngx_http_naxsi_update_current_ctx_status(ctx, cf, r, &tag, (ngx_str_t*)xff->value.data);
++ }
++#endif
++#endif
+ }
+
+ void
+@@ -2947,19 +2957,20 @@ ngx_http_naxsi_update_current_ctx_status(ngx_http_request_ctx_t* ctx,
+ ngx_http_check_rule_t* cr;
+
+ ngx_http_special_score_t* sc;
+- unsigned int n = 0;
+
+ NX_DEBUG(_debug_custom_score, NGX_LOG_DEBUG_HTTP, r->connection->log, 0, "XX-custom check rules");
+
+ int ignore = 0;
+- ngx_table_elt_t** h;
+- ngx_array_t a;
+
+ ctx->ignore = 0;
+
+ /*cr, sc, cf, ctx*/
+ if (cf->check_rules && ctx->special_scores) {
+ #if (NGX_HTTP_X_FORWARDED_FOR)
++#if (nginx_version < 1023000)
++ unsigned int n = 0;
++ ngx_table_elt_t** h;
++ ngx_array_t a;
+ if (r->headers_in.x_forwarded_for.nelts >= 1) {
+ a = r->headers_in.x_forwarded_for;
+ n = a.nelts;
+@@ -2978,6 +2989,23 @@ ngx_http_naxsi_update_current_ctx_status(ngx_http_request_ctx_t* ctx,
+ ignore = nx_can_ignore_ip(&ip, cf) || nx_can_ignore_cidr(&ip, cf);
+ }
+ } else
++#else
++ ngx_table_elt_t* xff;
++ if (r->headers_in.x_forwarded_for != NULL) {
++ xff = r->headers_in.x_forwarded_for;
++ NX_DEBUG(_debug_whitelist_ignore,
++ NGX_LOG_DEBUG_HTTP,
++ r->connection->log,
++ 0,
++ "XX- lookup ignore X-Forwarded-For: %s",
++ xff->value.data);
++ ngx_str_t ip;
++ ip.len = strlen((char*)xff->value.data);
++ ip.data = ngx_pcalloc(r->pool, ip.len + 1);
++ memcpy(ip.data, xff->value.data, ip.len);
++ ignore = nx_can_ignore_ip(&ip, cf) || nx_can_ignore_cidr(&ip, cf);
++ } else
++#endif
+ #endif
+ {
+ ngx_str_t* ip = &r->connection->addr_text;
diff --git a/main/nginx/naxsi~ff-header.patch b/main/nginx/naxsi~ff-header.patch
new file mode 100644
index 00000000000..b6ed47760d8
--- /dev/null
+++ b/main/nginx/naxsi~ff-header.patch
@@ -0,0 +1,62 @@
+Patch-Source: https://github.com/nbs-system/naxsi/commit/296583f06ba5c43cc859e01fd3c0ae1271eef0ce
+
+From 296583f06ba5c43cc859e01fd3c0ae1271eef0ce Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Sat, 14 Aug 2021 12:57:28 +0200
+Subject: [PATCH] naxsi_src/naxsi_runtime.c: fix build without x_forwarded_for
+ (#568)
+
+x_forwarded_for is not available if realip, geo, geoip or proxy modules
+aren't enabled resulting in the following build failure since version
+1.1a and
+https://github.com/nbs-system/naxsi/commit/07a056ccd36bc3c5c40dc17991db226cb8cf6241:
+
+/home/buildroot/autobuild/instance-3/output-1/build/nginx-naxsi-1.3/naxsi_src/naxsi_runtime.c: In function 'ngx_http_naxsi_data_parse':
+/home/buildroot/autobuild/instance-3/output-1/build/nginx-naxsi-1.3/naxsi_src/naxsi_runtime.c:2846:20: error: 'ngx_http_headers_in_t' has no member named 'x_forwarded_for'
+ if (r->headers_in.x_forwarded_for.nelts >= 1) {
+ ^
+
+Fixes:
+ - http://autobuild.buildroot.org/results/cdbc1536f6b5de3d4c836efa2f0dcaf0cdbb1462
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+---
+ naxsi_src/naxsi_runtime.c | 7 ++++++-
+ 1 file changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/naxsi_src/naxsi_runtime.c b/naxsi_src/naxsi_runtime.c
+index 28e0b29d..6a723d24 100644
+--- a/naxsi_src/naxsi_runtime.c
++++ b/naxsi_src/naxsi_runtime.c
+@@ -2842,10 +2842,12 @@ ngx_http_naxsi_data_parse(ngx_http_request_ctx_t* ctx, ngx_http_request_t* r)
+ unsigned int n = 0;
+ ngx_table_elt_t** h = NULL;
+ ngx_array_t a;
++#if (NGX_HTTP_X_FORWARDED_FOR)
+ if (r->headers_in.x_forwarded_for.nelts >= 1) {
+ a = r->headers_in.x_forwarded_for;
+ n = a.nelts;
+ }
++#endif
+ if (n >= 1)
+ h = a.elts;
+ if (n >= 1) {
+@@ -2879,6 +2881,7 @@ ngx_http_naxsi_update_current_ctx_status(ngx_http_request_ctx_t* ctx,
+
+ /*cr, sc, cf, ctx*/
+ if (cf->check_rules && ctx->special_scores) {
++#if (NGX_HTTP_X_FORWARDED_FOR)
+ if (r->headers_in.x_forwarded_for.nelts >= 1) {
+ a = r->headers_in.x_forwarded_for;
+ n = a.nelts;
+@@ -2896,7 +2899,9 @@ ngx_http_naxsi_update_current_ctx_status(ngx_http_request_ctx_t* ctx,
+ memcpy(ip.data, h[0]->value.data, ip.len);
+ ignore = nx_can_ignore_ip(&ip, cf) || nx_can_ignore_cidr(&ip, cf);
+ }
+- } else {
++ } else
++#endif
++ {
+ ngx_str_t* ip = &r->connection->addr_text;
+ NX_DEBUG(_debug_whitelist_ignore,
+ NGX_LOG_DEBUG_HTTP,
diff --git a/main/nginx/nchan~dont-fail-redis-cluster-before-consensus.patch b/main/nginx/nchan~dont-fail-redis-cluster-before-consensus.patch
new file mode 100644
index 00000000000..114ff925b97
--- /dev/null
+++ b/main/nginx/nchan~dont-fail-redis-cluster-before-consensus.patch
@@ -0,0 +1,49 @@
+Patch-Source: https://github.com/slact/nchan/commit/ed27e02adcac66ce73f5db387596fa063362ac6e
+--
+From ed27e02adcac66ce73f5db387596fa063362ac6e Mon Sep 17 00:00:00 2001
+From: Fabio Urquiza <fabiorush@gmail.com>
+Date: Wed, 1 Feb 2023 14:48:47 +0000
+Subject: [PATCH] Don't fail redis cluster nodes before consensus is reached
+
+diff --git a/src/store/redis/redis_nodeset.c b/src/store/redis/redis_nodeset.c
+index 39fdd396..2c4646c4 100644
+--- a/src/store/redis/redis_nodeset.c
++++ b/src/store/redis/redis_nodeset.c
+@@ -1052,6 +1052,9 @@ static void nodeset_cluster_check_event_callback(redisAsyncContext *ac, void *re
+
+ for(i=0; i<n; i++) {
+ l = &lines[i];
++ if(l->maybe_failed) {
++ nodeset_log_warning(ns, "Ignoring 'fail?' state reported by %V:%d for node %V", &node->connect_params.hostname, node->connect_params.port, &l->address);
++ }
+ if(l->failed && nodeset_node_remove_failed(ns, &l->id)) {
+ failed_nodes++;
+ continue;
+diff --git a/src/store/redis/redis_nodeset_parser.c b/src/store/redis/redis_nodeset_parser.c
+index 7ce0037b..e3052dc2 100644
+--- a/src/store/redis/redis_nodeset_parser.c
++++ b/src/store/redis/redis_nodeset_parser.c
+@@ -132,7 +132,10 @@ static char *nodeset_parser_scan_cluster_nodes_line(const char *line, cluster_no
+ l->slot_ranges_count = 0;
+ l->master = 0;
+ }
+- l->failed = nchan_ngx_str_substr((&l->flags), "fail");
++ l->maybe_failed = nchan_ngx_str_substr((&l->flags), "fail?");
++ if(!l->maybe_failed)
++ l->failed = nchan_ngx_str_substr((&l->flags), "fail");
++
+ l->self = nchan_ngx_str_substr((&l->flags), "myself");
+ l->noaddr = nchan_ngx_str_substr((&l->flags), "noaddr");
+ l->handshake = nchan_ngx_str_substr((&l->flags), "handshake");
+diff --git a/src/store/redis/redis_nodeset_parser.h b/src/store/redis/redis_nodeset_parser.h
+index 5d564b62..a14ae146 100644
+--- a/src/store/redis/redis_nodeset_parser.h
++++ b/src/store/redis/redis_nodeset_parser.h
+@@ -28,6 +28,7 @@ typedef struct {
+ unsigned master:1;
+ unsigned noaddr:1;
+ unsigned failed:1;
++ unsigned maybe_failed:1;
+ unsigned handshake:1;
+ unsigned self:1;
+ } cluster_nodes_line_t;
diff --git a/main/nginx/nchan~fix-redis-race-condition.patch b/main/nginx/nchan~fix-redis-race-condition.patch
new file mode 100644
index 00000000000..75d5b83a050
--- /dev/null
+++ b/main/nginx/nchan~fix-redis-race-condition.patch
@@ -0,0 +1,270 @@
+Patch-Source: https://github.com/slact/nchan/commit/cc705a948cf6797f669b64649605f007f6f26a42
+--
+From cc705a948cf6797f669b64649605f007f6f26a42 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?F=C3=A1bio=20Urquiza?= <fabiorush@gmail.com>
+Date: Mon, 20 Mar 2023 10:31:33 -0300
+Subject: [PATCH] Fix redis connection race condition on many workers (#666)
+
+diff --git a/src/nchan_module.c b/src/nchan_module.c
+index ad6f3534..95b51521 100644
+--- a/src/nchan_module.c
++++ b/src/nchan_module.c
+@@ -39,7 +39,6 @@ int nchan_redis_stats_enabled = 0;
+
+
+ static void nchan_publisher_body_handler(ngx_http_request_t *r);
+-static void nchan_publisher_unavailable_body_handler(ngx_http_request_t *r);
+
+ //#define DEBUG_LEVEL NGX_LOG_WARN
+ //#define DEBUG_LEVEL NGX_LOG_DEBUG
+@@ -746,18 +745,6 @@ ngx_int_t nchan_pubsub_handler(ngx_http_request_t *r) {
+ return NGX_OK;
+ }
+
+- if(cf->redis.enabled && !nchan_store_redis_ready(cf)) {
+- //using redis, and it's not ready yet
+- if(r->method == NGX_HTTP_POST || r->method == NGX_HTTP_PUT) {
+- //discard request body before responding
+- nchan_http_publisher_handler(r, nchan_publisher_unavailable_body_handler);
+- }
+- else {
+- nchan_respond_status(r, NGX_HTTP_SERVICE_UNAVAILABLE, NULL, NULL, 0);
+- }
+- return NGX_OK;
+- }
+-
+ if(cf->pub.websocket || cf->pub.http) {
+ char *err;
+ if(!nchan_parse_message_buffer_config(r, cf, &err)) {
+@@ -841,6 +828,13 @@ ngx_int_t nchan_pubsub_handler(ngx_http_request_t *r) {
+ #if FAKESHARD
+ memstore_sub_debug_start();
+ #endif
++
++ if(cf->redis.enabled && ngx_process_slot == memstore_channel_owner(channel_id) && !nchan_store_redis_ready(cf)) {
++ //using redis, and it's not ready yet
++ nchan_respond_status(r, NGX_HTTP_SERVICE_UNAVAILABLE, NULL, NULL, 0);
++ return NGX_OK;
++ }
++
+ if((msg_id = nchan_subscriber_get_msg_id(r)) == NULL) {
+ goto bad_msgid;
+ }
+@@ -1249,11 +1243,6 @@ static ngx_int_t nchan_publisher_body_authorize_handler(ngx_http_request_t *r, v
+ return NGX_OK;
+ }
+
+-static void nchan_publisher_unavailable_body_handler(ngx_http_request_t *r) {
+- nchan_http_finalize_request(r, NGX_HTTP_SERVICE_UNAVAILABLE);
+- return;
+-}
+-
+ static void nchan_publisher_body_handler(ngx_http_request_t *r) {
+ ngx_str_t *channel_id;
+ nchan_loc_conf_t *cf = ngx_http_get_module_loc_conf(r, ngx_nchan_module);
+diff --git a/src/store/memory/ipc-handlers.c b/src/store/memory/ipc-handlers.c
+index 55df2fd3..bee7c1d9 100644
+--- a/src/store/memory/ipc-handlers.c
++++ b/src/store/memory/ipc-handlers.c
+@@ -47,6 +47,8 @@
+ L(benchmark_finish_reply) \
+ L(redis_stats_request) \
+ L(redis_stats_reply) \
++ L(redis_conn_ready) \
++ L(redis_conn_ready_reply) \
+
+
+
+@@ -1205,6 +1207,35 @@ static void receive_redis_stats_reply(ngx_int_t sender, redis_stats_request_data
+ shm_free(nchan_store_memory_shmem, data->stats);
+ }
+
++////////// REDIS CONN READY DATA ////////////////
++typedef struct {
++ ngx_int_t ready;
++ nchan_loc_conf_t *cf;
++ callback_pt callback;
++ void *privdata;
++} redis_conn_ready_data_t;
++
++ngx_int_t memstore_ipc_send_redis_conn_ready(ngx_int_t dst, nchan_loc_conf_t *cf, callback_pt callback, void* privdata) {
++ DBG("send redis_conn_ready to %i", dst);
++ redis_conn_ready_data_t data;
++ DEBUG_MEMZERO(&data);
++ data.ready = 0;
++ data.cf = cf;
++ data.callback = callback;
++ data.privdata = privdata;
++
++ return ipc_cmd(redis_conn_ready, dst, &data);
++}
++
++static void receive_redis_conn_ready(ngx_int_t sender, redis_conn_ready_data_t *d) {
++ DBG("received redis_conn_ready request for privdata %p", d->privdata);
++ d->ready = nchan_store_redis_ready(d->cf);
++ ipc_cmd(redis_conn_ready_reply, sender, d);
++}
++
++static void receive_redis_conn_ready_reply(ngx_int_t sender, redis_conn_ready_data_t *d) {
++ d->callback(d->ready, NULL, d->privdata);
++}
+
+ #define MAKE_ipc_cmd_handler(val) [offsetof(ipc_handlers_t, val)/sizeof(ipc_handler_pt)] = (ipc_handler_pt )receive_ ## val,
+ static ipc_handler_pt ipc_cmd_handler[] = {
+diff --git a/src/store/memory/ipc-handlers.h b/src/store/memory/ipc-handlers.h
+index e22c4a0d..7fd9c19c 100644
+--- a/src/store/memory/ipc-handlers.h
++++ b/src/store/memory/ipc-handlers.h
+@@ -26,3 +26,5 @@ ngx_int_t memstore_ipc_broadcast_benchmark_finish(void);
+ ngx_int_t memstore_ipc_broadcast_benchmark_abort(void);
+
+ ngx_int_t memstore_ipc_broadcast_redis_stats_request(void *nodeset, callback_pt cb, void *pd);
++
++ngx_int_t memstore_ipc_send_redis_conn_ready(ngx_int_t dst, nchan_loc_conf_t *cf, callback_pt callback, void* privdata);
+\ No newline at end of file
+diff --git a/src/store/memory/memstore.c b/src/store/memory/memstore.c
+index f8b4ee8b..e1e1c7a8 100755
+--- a/src/store/memory/memstore.c
++++ b/src/store/memory/memstore.c
+@@ -2079,12 +2079,13 @@ static void subscribe_data_free(subscribe_data_t *d) {
+ #define SUB_CHANNEL_NOTSURE 2
+
+ static ngx_int_t nchan_store_subscribe_channel_existence_check_callback(ngx_int_t channel_status, void* _, subscribe_data_t *d);
+-static ngx_int_t nchan_store_subscribe_continued(ngx_int_t channel_status, void* _, subscribe_data_t *d);
++static ngx_int_t nchan_store_subscribe_stage2(ngx_int_t continue_subscription, void* _, subscribe_data_t *d);
++static ngx_int_t nchan_store_subscribe_stage3(ngx_int_t channel_status, void* _, subscribe_data_t *d);
+
+ static ngx_int_t nchan_store_subscribe(ngx_str_t *channel_id, subscriber_t *sub) {
+ ngx_int_t owner = memstore_channel_owner(channel_id);
+ subscribe_data_t *d = subscribe_data_alloc(sub->cf->redis.enabled ? -1 : owner);
+-
++
+ assert(d != NULL);
+
+ d->channel_owner = owner;
+@@ -2095,24 +2096,51 @@ static ngx_int_t nchan_store_subscribe(ngx_str_t *channel_id, subscriber_t *sub)
+ d->channel_exists = 0;
+ d->group_channel_limit_pass = 0;
+ d->msg_id = sub->last_msgid;
+-
+- if(sub->cf->subscribe_only_existing_channel || sub->cf->max_channel_subscribers > 0) {
++
++ if(sub->cf->redis.enabled && memstore_slot() != owner) {
++ ngx_int_t rc;
+ sub->fn->reserve(sub);
+ d->reserved = 1;
+- if(memstore_slot() != owner) {
+- ngx_int_t rc;
+- rc = memstore_ipc_send_channel_existence_check(owner, channel_id, sub->cf, (callback_pt )nchan_store_subscribe_channel_existence_check_callback, d);
+- if(rc == NGX_DECLINED) { // out of memory
+- nchan_store_subscribe_channel_existence_check_callback(SUB_CHANNEL_UNAUTHORIZED, NULL, d);
+- return NGX_ERROR;
++ rc = memstore_ipc_send_redis_conn_ready(d->channel_owner, sub->cf, (callback_pt)nchan_store_subscribe_stage2, d);
++ if(rc == NGX_DECLINED) { // out of memory
++ nchan_store_subscribe_stage2(0, NULL, d);
++ return NGX_ERROR;
++ }
++ } else {
++ return nchan_store_subscribe_stage2(1, NULL, d);
++ }
++ return NGX_OK;
++}
++
++static ngx_int_t nchan_store_subscribe_stage2(ngx_int_t continue_subscription, void* _, subscribe_data_t *d) {
++ if(continue_subscription) {
++ if(d->sub->cf->subscribe_only_existing_channel || d->sub->cf->max_channel_subscribers > 0) {
++ if(!d->reserved) {
++ d->sub->fn->reserve(d->sub);
++ d->reserved = 1;
++ }
++ if(memstore_slot() != d->channel_owner) {
++ ngx_int_t rc;
++ rc = memstore_ipc_send_channel_existence_check(d->channel_owner, d->channel_id, d->sub->cf, (callback_pt )nchan_store_subscribe_channel_existence_check_callback, d);
++ if(rc == NGX_DECLINED) { // out of memory
++ nchan_store_subscribe_channel_existence_check_callback(SUB_CHANNEL_UNAUTHORIZED, NULL, d);
++ return NGX_ERROR;
++ }
++ }
++ else {
++ return nchan_store_subscribe_stage3(SUB_CHANNEL_NOTSURE, NULL, d);
+ }
+ }
+ else {
+- return nchan_store_subscribe_continued(SUB_CHANNEL_NOTSURE, NULL, d);
++ return nchan_store_subscribe_stage3(SUB_CHANNEL_AUTHORIZED, NULL, d);
+ }
+- }
+- else {
+- return nchan_store_subscribe_continued(SUB_CHANNEL_AUTHORIZED, NULL, d);
++ } else {
++ //using redis, and it's not ready yet
++ if(d->sub->fn->release(d->sub, 0) == NGX_OK) {
++ d->reserved = 0;
++ nchan_respond_status(d->sub->request, NGX_HTTP_SERVICE_UNAVAILABLE, NULL, NULL, 0);
++ }
++ subscribe_data_free(d);
+ }
+ return NGX_OK;
+ }
+@@ -2120,7 +2148,7 @@ static ngx_int_t nchan_store_subscribe(ngx_str_t *channel_id, subscriber_t *sub)
+ static ngx_int_t nchan_store_subscribe_channel_existence_check_callback(ngx_int_t channel_status, void* _, subscribe_data_t *d) {
+ if(d->sub->fn->release(d->sub, 0) == NGX_OK) {
+ d->reserved = 0;
+- return nchan_store_subscribe_continued(channel_status, _, d);
++ return nchan_store_subscribe_stage3(channel_status, _, d);
+ }
+ else {//don't go any further, the sub has been deleted
+ subscribe_data_free(d);
+@@ -2143,7 +2171,7 @@ static ngx_int_t redis_subscribe_channel_existence_callback(ngx_int_t status, vo
+ /*
+ else if (cf->max_channel_subscribers > 0) {
+ // don't check this anymore -- a total subscribers count check is less
+- // useful as a per-instance check, which is handled in nchan_store_subscribe_continued
++ // useful as a per-instance check, which is handled in nchan_store_subscribe_stage3
+ // shared total subscriber count check can be re-enabled with another config setting
+ channel_status = channel->subscribers >= cf->max_channel_subscribers ? SUB_CHANNEL_UNAUTHORIZED : SUB_CHANNEL_AUTHORIZED;
+ }
+@@ -2152,7 +2180,7 @@ static ngx_int_t redis_subscribe_channel_existence_callback(ngx_int_t status, vo
+ channel_status = SUB_CHANNEL_AUTHORIZED;
+
+ }
+- nchan_store_subscribe_continued(channel_status, NULL, data);
++ nchan_store_subscribe_stage3(channel_status, NULL, data);
+ }
+ else {
+ //error!!
+@@ -2196,7 +2224,7 @@ static ngx_int_t group_subscribe_channel_limit_reached(ngx_int_t rc, nchan_chann
+ if(d->sub->status != DEAD) {
+ if(chaninfo) {
+ //ok, channel already exists.
+- nchan_store_subscribe_continued(SUB_CHANNEL_AUTHORIZED, NULL, d);
++ nchan_store_subscribe_stage3(SUB_CHANNEL_AUTHORIZED, NULL, d);
+ }
+ else {
+ //nope. no channel, no subscribing.
+@@ -2219,14 +2247,14 @@ static ngx_int_t group_subscribe_channel_limit_check(ngx_int_t _, nchan_group_t
+ if(shm_group) {
+ if(!shm_group->limit.channels || (shm_group->channels < shm_group->limit.channels)) {
+ d->group_channel_limit_pass = 1;
+- rc = nchan_store_subscribe_continued(SUB_CHANNEL_AUTHORIZED, NULL, d);
++ rc = nchan_store_subscribe_stage3(SUB_CHANNEL_AUTHORIZED, NULL, d);
+ }
+ else if (shm_group->limit.channels && shm_group->channels == shm_group->limit.channels){
+ //no new channels!
+ rc = nchan_store_find_channel(d->channel_id, d->sub->cf, (callback_pt )group_subscribe_channel_limit_reached, d);
+ }
+ else {
+- rc = nchan_store_subscribe_continued(SUB_CHANNEL_UNAUTHORIZED, NULL, d);
++ rc = nchan_store_subscribe_stage3(SUB_CHANNEL_UNAUTHORIZED, NULL, d);
+ }
+
+ }
+@@ -2246,7 +2274,7 @@ static ngx_int_t group_subscribe_channel_limit_check(ngx_int_t _, nchan_group_t
+ return rc;
+ }
+
+-static ngx_int_t nchan_store_subscribe_continued(ngx_int_t channel_status, void* _, subscribe_data_t *d) {
++static ngx_int_t nchan_store_subscribe_stage3(ngx_int_t channel_status, void* _, subscribe_data_t *d) {
+ memstore_channel_head_t *chanhead = NULL;
+ int retry_null_chanhead = 1;
+ //store_message_t *chmsg;
diff --git a/main/nginx/nginx-module-vts~cast-key-length-to-correct-type.patch b/main/nginx/nginx-module-vts~cast-key-length-to-correct-type.patch
deleted file mode 100644
index e29d52ffd44..00000000000
--- a/main/nginx/nginx-module-vts~cast-key-length-to-correct-type.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 63b917ff8b6755bc6b7e30d4f61daad4b7817372 Mon Sep 17 00:00:00 2001
-From: Jonathan Giddy <jgiddy@mesosphere.com>
-Date: Fri, 22 Mar 2019 21:59:57 +0000
-Subject: [PATCH] Cast key length to correct type
-
----
- src/ngx_http_vhost_traffic_status_shm.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-Patch-Source: https://github.com/vozlt/nginx-module-vts/pull/161
-
-diff --git a/src/ngx_http_vhost_traffic_status_shm.c b/src/ngx_http_vhost_traffic_status_shm.c
-index 8066fc0..d87336f 100644
---- a/src/ngx_http_vhost_traffic_status_shm.c
-+++ b/src/ngx_http_vhost_traffic_status_shm.c
-@@ -147,7 +147,7 @@ ngx_http_vhost_traffic_status_shm_add_node(ngx_http_request_t *r,
- vtsn = (ngx_http_vhost_traffic_status_node_t *) &node->color;
-
- node->key = hash;
-- vtsn->len = (u_char) key->len;
-+ vtsn->len = (u_short) key->len;
- ngx_http_vhost_traffic_status_node_init(r, vtsn);
- vtsn->stat_upstream.type = type;
- ngx_memcpy(vtsn->data, key->data, key->len);
diff --git a/main/nginx/nginx-module-vts~fix-uri-overflow.patch b/main/nginx/nginx-module-vts~fix-uri-overflow.patch
deleted file mode 100644
index 840b5bc0805..00000000000
--- a/main/nginx/nginx-module-vts~fix-uri-overflow.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 5c58aaaa0e3ade270ef0d0534def769a4b3a8b26 Mon Sep 17 00:00:00 2001
-From: spacewander <spacewanderlzx@gmail.com>
-Date: Thu, 20 Aug 2020 16:34:58 +0800
-Subject: [PATCH] fix: limit the r->uri search scope to avoid overflow
-
-r->uri doesn't end with '\0'.
-
----
- src/ngx_http_vhost_traffic_status_display.c | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-Patch-Source: https://github.com/vozlt/nginx-module-vts/pull/188
-
-diff --git a/src/ngx_http_vhost_traffic_status_display.c b/src/ngx_http_vhost_traffic_status_display.c
-index c0d106a..10b5a62 100644
---- a/src/ngx_http_vhost_traffic_status_display.c
-+++ b/src/ngx_http_vhost_traffic_status_display.c
-@@ -38,10 +38,10 @@ ngx_http_vhost_traffic_status_display_handler(ngx_http_request_t *r)
-
- len = 0;
-
-- p = (u_char *) ngx_strchr(r->uri.data, '/');
-+ p = (u_char *) ngx_strlchr(r->uri.data, r->uri.data + r->uri.len, '/');
-
- if (p) {
-- p = (u_char *) ngx_strchr(p + 1, '/');
-+ p = (u_char *) ngx_strlchr(p + 1, r->uri.data + r->uri.len, '/');
- len = r->uri.len - (p - r->uri.data);
- }
-
diff --git a/main/nginx/nginx-module-vts~set-histogram-buckets-on-first-request.patch b/main/nginx/nginx-module-vts~set-histogram-buckets-on-first-request.patch
deleted file mode 100644
index c15d0a30d79..00000000000
--- a/main/nginx/nginx-module-vts~set-histogram-buckets-on-first-request.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-From 25cba1362d42f483f797651609100e732f53cb37 Mon Sep 17 00:00:00 2001
-From: Jonathan Giddy <jgiddy@mesosphere.com>
-Date: Fri, 29 Mar 2019 17:00:19 +0000
-Subject: [PATCH] Set histogram buckets on first request
-
-The `ngx_http_vhost_traffic_status_node_init` function initializes
-the data structures and processes the first request. However it
-was not updating the histogram buckets. Refactor the common code
-from this function and `ngx_http_vhost_traffic_status_node_set`
-into a common `ngx_http_vhost_traffic_status_node_update` function
-to fix this and to reduce the chance of similar problems.
----
- src/ngx_http_vhost_traffic_status_node.c | 59 +++++++++++-------------
- src/ngx_http_vhost_traffic_status_node.h | 2 +
- 2 files changed, 30 insertions(+), 31 deletions(-)
-
-Patch-Source: https://github.com/vozlt/nginx-module-vts/pull/163
-
-diff --git a/src/ngx_http_vhost_traffic_status_node.c b/src/ngx_http_vhost_traffic_status_node.c
-index 1688bee..b91f2ce 100644
---- a/src/ngx_http_vhost_traffic_status_node.c
-+++ b/src/ngx_http_vhost_traffic_status_node.c
-@@ -312,12 +312,15 @@ ngx_http_vhost_traffic_status_node_zero(ngx_http_vhost_traffic_status_node_t *vt
-
- }
-
--
-+/*
-+ Initialize the node and update it with the first request.
-+ Set the `stat_request_time` to the time of the first request.
-+*/
- void
- ngx_http_vhost_traffic_status_node_init(ngx_http_request_t *r,
- ngx_http_vhost_traffic_status_node_t *vtsn)
- {
-- ngx_uint_t status = r->headers_out.status;
-+ ngx_msec_int_t ms;
-
- /* init serverZone */
- ngx_http_vhost_traffic_status_node_zero(vtsn);
-@@ -333,49 +336,50 @@ ngx_http_vhost_traffic_status_node_init(ngx_http_request_t *r,
- &vtsn->stat_upstream.response_buckets);
-
- /* set serverZone */
-- vtsn->stat_request_counter = 1;
-- vtsn->stat_in_bytes = (ngx_atomic_uint_t) r->request_length;
-- vtsn->stat_out_bytes = (ngx_atomic_uint_t) r->connection->sent;
--
-- ngx_http_vhost_traffic_status_add_rc(status, vtsn);
--
-- vtsn->stat_request_time = (ngx_msec_t) ngx_http_vhost_traffic_status_request_time(r);
-- vtsn->stat_request_time_counter = (ngx_atomic_uint_t) vtsn->stat_request_time;
--
-- ngx_http_vhost_traffic_status_node_time_queue_insert(&vtsn->stat_request_times,
-- vtsn->stat_request_time);
--
--#if (NGX_HTTP_CACHE)
-- if (r->upstream != NULL && r->upstream->cache_status != 0) {
-- ngx_http_vhost_traffic_status_add_cc(r->upstream->cache_status, vtsn);
-- }
--#endif
-+ ms = ngx_http_vhost_traffic_status_request_time(r);
-+ vtsn->stat_request_time = (ngx_msec_t) ms;
-
-+ ngx_http_vhost_traffic_status_node_update(r, vtsn, ms);
- }
-
--
-+/*
-+ Update the node from a subsequent request. Now there is more than one request,
-+ calculate the average request time.
-+*/
- void
- ngx_http_vhost_traffic_status_node_set(ngx_http_request_t *r,
- ngx_http_vhost_traffic_status_node_t *vtsn)
- {
-- ngx_uint_t status;
- ngx_msec_int_t ms;
- ngx_http_vhost_traffic_status_node_t ovtsn;
- ngx_http_vhost_traffic_status_loc_conf_t *vtscf;
-
- vtscf = ngx_http_get_module_loc_conf(r, ngx_http_vhost_traffic_status_module);
-
-- status = r->headers_out.status;
- ovtsn = *vtsn;
-
-+ ms = ngx_http_vhost_traffic_status_request_time(r);
-+ ngx_http_vhost_traffic_status_node_update(r, vtsn, ms);
-+
-+ vtsn->stat_request_time = ngx_http_vhost_traffic_status_node_time_queue_average(
-+ &vtsn->stat_request_times, vtscf->average_method,
-+ vtscf->average_period);
-+
-+ ngx_http_vhost_traffic_status_add_oc((&ovtsn), vtsn);
-+}
-+
-+void
-+ngx_http_vhost_traffic_status_node_update(ngx_http_request_t *r,
-+ ngx_http_vhost_traffic_status_node_t *vtsn, ngx_msec_int_t ms)
-+{
-+ ngx_uint_t status = r->headers_out.status;
-+
- vtsn->stat_request_counter++;
- vtsn->stat_in_bytes += (ngx_atomic_uint_t) r->request_length;
- vtsn->stat_out_bytes += (ngx_atomic_uint_t) r->connection->sent;
-
- ngx_http_vhost_traffic_status_add_rc(status, vtsn);
-
-- ms = ngx_http_vhost_traffic_status_request_time(r);
--
- vtsn->stat_request_time_counter += (ngx_atomic_uint_t) ms;
-
- ngx_http_vhost_traffic_status_node_time_queue_insert(&vtsn->stat_request_times,
-@@ -384,20 +388,13 @@ ngx_http_vhost_traffic_status_node_set(ngx_http_request_t *r,
- ngx_http_vhost_traffic_status_node_histogram_observe(&vtsn->stat_request_buckets,
- ms);
-
-- vtsn->stat_request_time = ngx_http_vhost_traffic_status_node_time_queue_average(
-- &vtsn->stat_request_times, vtscf->average_method,
-- vtscf->average_period);
--
- #if (NGX_HTTP_CACHE)
- if (r->upstream != NULL && r->upstream->cache_status != 0) {
- ngx_http_vhost_traffic_status_add_cc(r->upstream->cache_status, vtsn);
- }
- #endif
--
-- ngx_http_vhost_traffic_status_add_oc((&ovtsn), vtsn);
- }
-
--
- void
- ngx_http_vhost_traffic_status_node_time_queue_zero(
- ngx_http_vhost_traffic_status_node_time_queue_t *q)
-diff --git a/src/ngx_http_vhost_traffic_status_node.h b/src/ngx_http_vhost_traffic_status_node.h
-index 9ea6f23..3bbb53e 100644
---- a/src/ngx_http_vhost_traffic_status_node.h
-+++ b/src/ngx_http_vhost_traffic_status_node.h
-@@ -118,6 +118,8 @@ void ngx_http_vhost_traffic_status_node_init(ngx_http_request_t *r,
- ngx_http_vhost_traffic_status_node_t *vtsn);
- void ngx_http_vhost_traffic_status_node_set(ngx_http_request_t *r,
- ngx_http_vhost_traffic_status_node_t *vtsn);
-+void ngx_http_vhost_traffic_status_node_update(ngx_http_request_t *r,
-+ ngx_http_vhost_traffic_status_node_t *vtsn, ngx_msec_int_t ms);
-
- void ngx_http_vhost_traffic_status_node_time_queue_zero(
- ngx_http_vhost_traffic_status_node_time_queue_t *q);
diff --git a/main/nginx/nginx-tests~fix-openssl-3.2.0-compatibility.patch b/main/nginx/nginx-tests~fix-openssl-3.2.0-compatibility.patch
new file mode 100644
index 00000000000..495a8f496cd
--- /dev/null
+++ b/main/nginx/nginx-tests~fix-openssl-3.2.0-compatibility.patch
@@ -0,0 +1,113 @@
+Patch-Source: https://github.com/nginx/nginx-tests/commit/953461781bc0cd780bb5c4b3a3d727d7842e8d2e
+--
+From 953461781bc0cd780bb5c4b3a3d727d7842e8d2e Mon Sep 17 00:00:00 2001
+From: Maxim Dounin <mdounin@mdounin.ru>
+Date: Mon, 29 Jan 2024 00:34:16 +0300
+Subject: [PATCH] Tests: compatibility with "openssl" app from OpenSSL 3.2.0.
+
+OpenSSL 3.2.0's "openssl" app generates X.509v3 certificates unless explicitly
+asked not to. Such certificates, even self-signed ones, cannot be used to sign
+other certificates without CA:TRUE explicitly set in the basicConstraints
+extension. As a result, tests doing so are now failing.
+
+Fix is to provide basicConstraints with CA:TRUE for self-signed root
+certificates used in "openssl ca" calls.
+---
+ ssl.t | 3 +++
+ ssl_certificate_chain.t | 3 +++
+ ssl_crl.t | 3 +++
+ ssl_ocsp.t | 3 +++
+ ssl_stapling.t | 3 +++
+ ssl_verify_depth.t | 3 +++
+ 6 files changed, 18 insertions(+)
+
+diff --git a/ssl.t b/ssl.t
+index 13d3daef..6055e083 100644
+--- a/ssl.t
++++ b/ssl.t
+@@ -116,7 +116,10 @@ $t->write_file('openssl.conf', <<EOF);
+ default_bits = 2048
+ encrypt_key = no
+ distinguished_name = req_distinguished_name
++x509_extensions = myca_extensions
+ [ req_distinguished_name ]
++[ myca_extensions ]
++basicConstraints = critical,CA:TRUE
+ EOF
+
+ my $d = $t->testdir();
+diff --git a/ssl_certificate_chain.t b/ssl_certificate_chain.t
+index 0fce9378..764933f1 100644
+--- a/ssl_certificate_chain.t
++++ b/ssl_certificate_chain.t
+@@ -71,7 +71,10 @@ $t->write_file('openssl.conf', <<EOF);
+ default_bits = 2048
+ encrypt_key = no
+ distinguished_name = req_distinguished_name
++x509_extensions = myca_extensions
+ [ req_distinguished_name ]
++[ myca_extensions ]
++basicConstraints = critical,CA:TRUE
+ EOF
+
+ $t->write_file('ca.conf', <<EOF);
+diff --git a/ssl_crl.t b/ssl_crl.t
+index 8dad2d70..caaeec58 100644
+--- a/ssl_crl.t
++++ b/ssl_crl.t
+@@ -79,7 +79,10 @@ $t->write_file('openssl.conf', <<EOF);
+ default_bits = 2048
+ encrypt_key = no
+ distinguished_name = req_distinguished_name
++x509_extensions = myca_extensions
+ [ req_distinguished_name ]
++[ myca_extensions ]
++basicConstraints = critical,CA:TRUE
+ EOF
+
+ $t->write_file('ca.conf', <<EOF);
+diff --git a/ssl_ocsp.t b/ssl_ocsp.t
+index 3bc9af40..db88fbec 100644
+--- a/ssl_ocsp.t
++++ b/ssl_ocsp.t
+@@ -116,7 +116,10 @@ $t->write_file('openssl.conf', <<EOF);
+ default_bits = 2048
+ encrypt_key = no
+ distinguished_name = req_distinguished_name
++x509_extensions = myca_extensions
+ [ req_distinguished_name ]
++[ myca_extensions ]
++basicConstraints = critical,CA:TRUE
+ EOF
+
+ $t->write_file('ca.conf', <<EOF);
+diff --git a/ssl_stapling.t b/ssl_stapling.t
+index 575c167c..bcb36309 100644
+--- a/ssl_stapling.t
++++ b/ssl_stapling.t
+@@ -125,7 +125,10 @@ $t->write_file('openssl.conf', <<EOF);
+ default_bits = 2048
+ encrypt_key = no
+ distinguished_name = req_distinguished_name
++x509_extensions = myca_extensions
+ [ req_distinguished_name ]
++[ myca_extensions ]
++basicConstraints = critical,CA:TRUE
+ EOF
+
+ $t->write_file('ca.conf', <<EOF);
+diff --git a/ssl_verify_depth.t b/ssl_verify_depth.t
+index 7f2f37b2..89c6668e 100644
+--- a/ssl_verify_depth.t
++++ b/ssl_verify_depth.t
+@@ -76,7 +76,10 @@ $t->write_file('openssl.conf', <<EOF);
+ default_bits = 2048
+ encrypt_key = no
+ distinguished_name = req_distinguished_name
++x509_extensions = myca_extensions
+ [ req_distinguished_name ]
++[ myca_extensions ]
++basicConstraints = critical,CA:TRUE
+ EOF
+
+ $t->write_file('ca.conf', <<EOF);
diff --git a/main/nginx/nginx-upload-module~fix-nginx-compat.patch b/main/nginx/nginx-upload-module~fix-nginx-compat.patch
new file mode 100644
index 00000000000..474a84fec4b
--- /dev/null
+++ b/main/nginx/nginx-upload-module~fix-nginx-compat.patch
@@ -0,0 +1,40 @@
+Patch-Source: https://github.com/fdintino/nginx-upload-module/commit/96e64603dc5a588a2d1ae59a62b0019d6b41070c
+--
+From 96e64603dc5a588a2d1ae59a62b0019d6b41070c Mon Sep 17 00:00:00 2001
+From: Karthikdasari0423 <92445174+Karthikdasari0423@users.noreply.github.com>
+Date: Thu, 22 Jun 2023 01:40:07 +0530
+Subject: [PATCH] Update ngx_http_upload_module.c (#147)
+
+* Update ngx_http_upload_module.c
+
+* Fix whitespace
+
+---------
+
+Co-authored-by: Frankie Dintino <fdintino@gmail.com>
+---
+ ngx_http_upload_module.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/ngx_http_upload_module.c b/ngx_http_upload_module.c
+index c51429f..66150f0 100644
+--- a/ngx_http_upload_module.c
++++ b/ngx_http_upload_module.c
+@@ -12,7 +12,7 @@
+
+ #include <ngx_md5.h>
+
+-typedef ngx_md5_t MD5_CTX;
++typedef ngx_md5_t MD5_CTX1;
+
+ #define MD5Init ngx_md5_init
+ #define MD5Update ngx_md5_update
+@@ -189,7 +189,7 @@ typedef struct {
+ } ngx_http_upload_loc_conf_t;
+
+ typedef struct ngx_http_upload_md5_ctx_s {
+- MD5_CTX md5;
++ MD5_CTX1 md5;
+ u_char md5_digest[MD5_DIGEST_LENGTH * 2];
+ } ngx_http_upload_md5_ctx_t;
+
diff --git a/main/nginx/nginx-upload-module~fixes.patch b/main/nginx/nginx-upload-module~fixes.patch
new file mode 100644
index 00000000000..423647d8089
--- /dev/null
+++ b/main/nginx/nginx-upload-module~fixes.patch
@@ -0,0 +1,620 @@
+git diff 2.3.0..643b4c1fa6993da6bc1f82e7121ca62a7696ee6b ngx_http_upload_module.c
+--
+commit 643b4c1fa6993da6bc1f82e7121ca62a7696ee6b
+Author: Frankie Dintino <fdintino@gmail.com>
+Date: Sun Jun 21 17:09:17 2020 -0400
+
+ Fix bug caused by uploading a single byte range
+
+ fixes #115
+
+commit 1ac57ac4d37bfb0c09337f2eef3fab5a1c1e9a38
+Author: Romain Pomier <romain@cardiologs.com>
+Date: Wed Apr 8 18:42:38 2020 +0200
+
+ Handle quotes problems in Content-Type and Content-Disposition
+
+commit 1b0c530a3abf5c8782feabcfa2e89a312687f968
+Author: Frankie Dintino <fdintino@gmail.com>
+Date: Mon Feb 10 12:48:52 2020 -0500
+
+ Fix issue where upload headers were only added to final request
+
+ fixes #124
+
+commit a350ce9d6814438db56428ad6365db994dbd27f6
+Author: Valery Kholodkov <valery@coldrift.com>
+Date: Mon Nov 18 18:04:55 2019 +0100
+
+ Update read handler
+
+commit 8d50edd32ae788c3e0c12fe1940007e9faa3f15d
+Author: Demid Rudak <demid.r@didww.com>
+Date: Mon Apr 1 15:37:52 2019 +0300
+
+ Fixed upload_aggregate_form_field 'upload_file_md5' calculation
+
+commit 666428bf8ea3ee3e5bd40aaa693624234feb6da3
+Author: Frankie Dintino <fdintino@gmail.com>
+Date: Fri Aug 10 11:39:01 2018 -0400
+
+ Fix and add tests for upload_add_header
+
+commit e8d93f8f37db62f2588c7b3a20c873514fce4f5d
+Author: Frankie Dintino <fdintino@gmail.com>
+Date: Fri Aug 10 11:35:16 2018 -0400
+
+ Remove unnecessary ngx_http_upload_variable_set function
+
+commit 9c58c8ae9b3f4d44a28eebdffbdc1ab4224e3f90
+Author: Frankie Dintino <fdintino@gmail.com>
+Date: Mon Aug 6 09:38:52 2018 -0400
+
+ Fix bug when uc and lc hash aggregate fields present in the same request
+--
+diff --git a/ngx_http_upload_module.c b/ngx_http_upload_module.c
+index 3ac3279..c51429f 100644
+--- a/ngx_http_upload_module.c
++++ b/ngx_http_upload_module.c
+@@ -55,8 +55,8 @@ typedef ngx_md5_t MD5_CTX;
+ #define X_SESSION_ID_STRING "X-Session-ID:"
+ #define FORM_DATA_STRING "form-data"
+ #define ATTACHMENT_STRING "attachment"
+-#define FILENAME_STRING "filename=\""
+-#define FIELDNAME_STRING "name=\""
++#define FILENAME_STRING "filename="
++#define FIELDNAME_STRING "name="
+ #define BYTES_UNIT_STRING "bytes "
+
+ #define NGX_UPLOAD_MALFORMED -11
+@@ -302,8 +302,6 @@ static void *ngx_http_upload_create_loc_conf(ngx_conf_t *cf);
+ static char *ngx_http_upload_merge_loc_conf(ngx_conf_t *cf,
+ void *parent, void *child);
+ static ngx_int_t ngx_http_upload_add_variables(ngx_conf_t *cf);
+-static void ngx_http_upload_variable_set(ngx_http_request_t *r,
+- ngx_http_variable_value_t *v, uintptr_t data);
+ static ngx_int_t ngx_http_upload_variable(ngx_http_request_t *r,
+ ngx_http_variable_value_t *v, uintptr_t data);
+ static ngx_int_t ngx_http_upload_md5_variable(ngx_http_request_t *r,
+@@ -326,6 +324,10 @@ static ngx_int_t ngx_http_upload_uint_variable(ngx_http_request_t *r,
+ ngx_http_variable_value_t *v, uintptr_t data);
+ static char *ngx_http_upload_pass(ngx_conf_t *cf, ngx_command_t *cmd, void *conf);
+
++static ngx_int_t
++ngx_http_upload_process_field_templates(ngx_http_request_t *r,
++ ngx_http_upload_field_template_t *t, ngx_str_t *field_name, ngx_str_t *field_value);
++
+ static ngx_int_t ngx_http_upload_start_handler(ngx_http_upload_ctx_t *u);
+ static void ngx_http_upload_finish_handler(ngx_http_upload_ctx_t *u);
+ static void ngx_http_upload_abort_handler(ngx_http_upload_ctx_t *u);
+@@ -345,9 +347,7 @@ static ngx_int_t ngx_http_read_upload_client_request_body(ngx_http_request_t *r)
+
+ static char *ngx_http_upload_set_form_field(ngx_conf_t *cf, ngx_command_t *cmd,
+ void *conf);
+-static char *ngx_http_upload_add_header(ngx_conf_t *cf, ngx_command_t *cmd,
+- void *conf);
+-static ngx_int_t ngx_http_upload_eval_path(ngx_http_request_t *r);
++ static ngx_int_t ngx_http_upload_eval_path(ngx_http_request_t *r);
+ static ngx_int_t ngx_http_upload_eval_state_path(ngx_http_request_t *r);
+ static char *ngx_http_upload_pass_form_field(ngx_conf_t *cf, ngx_command_t *cmd,
+ void *conf);
+@@ -666,7 +666,7 @@ static ngx_command_t ngx_http_upload_commands[] = { /* {{{ */
+ { ngx_string("upload_add_header"),
+ NGX_HTTP_MAIN_CONF|NGX_HTTP_SRV_CONF|NGX_HTTP_LOC_CONF|NGX_HTTP_LMT_CONF|NGX_HTTP_LIF_CONF
+ |NGX_CONF_TAKE2,
+- ngx_http_upload_add_header,
++ ngx_http_upload_set_form_field,
+ NGX_HTTP_LOC_CONF_OFFSET,
+ offsetof(ngx_http_upload_loc_conf_t, header_templates),
+ NULL},
+@@ -710,7 +710,7 @@ static ngx_http_variable_t ngx_http_upload_variables[] = { /* {{{ */
+ NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOCACHEABLE|NGX_HTTP_VAR_NOHASH, 0 },
+
+ { ngx_string("upload_content_type"),
+- ngx_http_upload_variable_set,
++ NULL,
+ ngx_http_upload_variable,
+ (uintptr_t) offsetof(ngx_http_upload_ctx_t, content_type),
+ NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOCACHEABLE|NGX_HTTP_VAR_NOHASH, 0 },
+@@ -1052,18 +1052,14 @@ err:
+ static ngx_int_t ngx_http_upload_add_headers(ngx_http_request_t *r, ngx_http_upload_loc_conf_t *ulcf) { /* {{{ */
+ ngx_str_t name;
+ ngx_str_t value;
+- ngx_http_upload_header_template_t *t;
++ ngx_http_upload_field_template_t *t;
+ ngx_table_elt_t *h;
+ ngx_uint_t i;
+
+- if(ulcf->header_templates != NULL) {
++ if (ulcf->header_templates != NULL) {
+ t = ulcf->header_templates->elts;
+- for(i = 0; i < ulcf->header_templates->nelts; i++) {
+- if(ngx_http_complex_value(r, t->name, &name) != NGX_OK) {
+- return NGX_ERROR;
+- }
+-
+- if(ngx_http_complex_value(r, t->value, &value) != NGX_OK) {
++ for (i = 0; i < ulcf->header_templates->nelts; i++) {
++ if (ngx_http_upload_process_field_templates(r, &t[i], &name, &value) != NGX_OK) {
+ return NGX_ERROR;
+ }
+
+@@ -1079,8 +1075,6 @@ static ngx_int_t ngx_http_upload_add_headers(ngx_http_request_t *r, ngx_http_upl
+ h->value.len = value.len;
+ h->value.data = value.data;
+ }
+-
+- t++;
+ }
+ }
+
+@@ -1180,10 +1174,6 @@ static ngx_int_t ngx_http_upload_body_handler(ngx_http_request_t *r) { /* {{{ */
+ ngx_str_t dummy = ngx_string("<ngx_upload_module_dummy>");
+ ngx_table_elt_t *h;
+
+- if(ngx_http_upload_add_headers(r, ulcf) != NGX_OK) {
+- return NGX_HTTP_INTERNAL_SERVER_ERROR;
+- }
+-
+ if(ctx->prevent_output) {
+ r->headers_out.status = NGX_HTTP_CREATED;
+
+@@ -1360,6 +1350,27 @@ static ngx_int_t ngx_http_upload_body_handler(ngx_http_request_t *r) { /* {{{ */
+ return rc;
+ } /* }}} */
+
++static ngx_int_t
++ngx_http_upload_process_field_templates(
++ ngx_http_request_t *r, ngx_http_upload_field_template_t *t,
++ ngx_str_t *name, ngx_str_t *value)
++{
++ if (t->field_lengths == NULL) {
++ *name = t->value.key;
++ } else if (ngx_http_script_run(r, name, t->field_lengths->elts, 0,
++ t->field_values->elts) == NULL) {
++ return NGX_UPLOAD_SCRIPTERROR;
++ }
++
++ if (t->value_lengths == NULL) {
++ *value = t->value.value;
++ } else if (ngx_http_script_run(r, value, t->value_lengths->elts, 0,
++ t->value_values->elts) == NULL) {
++ return NGX_UPLOAD_SCRIPTERROR;
++ }
++ return NGX_OK;
++}
++
+ static ngx_int_t ngx_http_upload_start_handler(ngx_http_upload_ctx_t *u) { /* {{{ */
+ ngx_http_request_t *r = u->request;
+ ngx_http_upload_loc_conf_t *ulcf = ngx_http_get_module_loc_conf(r, ngx_http_upload_module);
+@@ -1495,28 +1506,10 @@ static ngx_int_t ngx_http_upload_start_handler(ngx_http_upload_ctx_t *u) { /* {{
+
+ t = ulcf->field_templates->elts;
+ for (i = 0; i < ulcf->field_templates->nelts; i++) {
++ rc = ngx_http_upload_process_field_templates(r, &t[i], &field_name, &field_value);
+
+- if (t[i].field_lengths == NULL) {
+- field_name = t[i].value.key;
+- }else{
+- if (ngx_http_script_run(r, &field_name, t[i].field_lengths->elts, 0,
+- t[i].field_values->elts) == NULL)
+- {
+- rc = NGX_UPLOAD_SCRIPTERROR;
+- goto cleanup_file;
+- }
+- }
+-
+- if (t[i].value_lengths == NULL) {
+- field_value = t[i].value.value;
+- }else{
+- if (ngx_http_script_run(r, &field_value, t[i].value_lengths->elts, 0,
+- t[i].value_values->elts) == NULL)
+- {
+- rc = NGX_UPLOAD_SCRIPTERROR;
+- goto cleanup_file;
+- }
+- }
++ if(rc != NGX_OK)
++ goto cleanup_file;
+
+ rc = ngx_http_upload_append_field(u, &field_name, &field_value);
+
+@@ -1603,6 +1596,11 @@ static ngx_int_t ngx_http_upload_start_handler(ngx_http_upload_ctx_t *u) { /* {{
+ u->discard_data = 1;
+ }
+
++
++ if(ngx_http_upload_add_headers(r, ulcf) != NGX_OK) {
++ return NGX_HTTP_INTERNAL_SERVER_ERROR;
++ }
++
+ return NGX_OK;
+
+ cleanup_file:
+@@ -1697,25 +1695,10 @@ static void ngx_http_upload_finish_handler(ngx_http_upload_ctx_t *u) { /* {{{ */
+ if(ulcf->aggregate_field_templates) {
+ af = ulcf->aggregate_field_templates->elts;
+ for (i = 0; i < ulcf->aggregate_field_templates->nelts; i++) {
+-
+- if (af[i].field_lengths == NULL) {
+- aggregate_field_name = af[i].value.key;
+- }else{
+- if (ngx_http_script_run(r, &aggregate_field_name, af[i].field_lengths->elts, 0,
+- af[i].field_values->elts) == NULL)
+- {
+- goto rollback;
+- }
+- }
+-
+- if (af[i].value_lengths == NULL) {
+- aggregate_field_value = af[i].value.value;
+- }else{
+- if (ngx_http_script_run(r, &aggregate_field_value, af[i].value_lengths->elts, 0,
+- af[i].value_values->elts) == NULL)
+- {
+- goto rollback;
+- }
++ rc = ngx_http_upload_process_field_templates(r, &af[i], &aggregate_field_name,
++ &aggregate_field_value);
++ if (rc != NGX_OK) {
++ goto rollback;
+ }
+
+ rc = ngx_http_upload_append_field(u, &aggregate_field_name, &aggregate_field_value);
+@@ -2001,7 +1984,7 @@ ngx_http_upload_buf_merge_range(ngx_http_upload_merger_state_t *ms, ngx_http_upl
+ return NGX_ERROR;
+ }
+
+- if(ms->current_range_n.start >= ms->current_range_n.end || ms->current_range_n.start >= ms->current_range_n.total
++ if(ms->current_range_n.start > ms->current_range_n.end || ms->current_range_n.start > ms->current_range_n.total
+ || ms->current_range_n.end > ms->current_range_n.total)
+ {
+ ngx_log_debug3(NGX_LOG_DEBUG_CORE, ms->log, 0,
+@@ -2398,21 +2381,6 @@ ngx_http_upload_add_variables(ngx_conf_t *cf)
+ return NGX_OK;
+ } /* }}} */
+
+-static void /* {{{ ngx_http_upload_variable_set */
+-ngx_http_upload_variable_set(ngx_http_request_t *r,
+- ngx_http_variable_value_t *v, uintptr_t data)
+-{
+- ngx_str_t *s;
+- ngx_http_upload_ctx_t *u;
+-
+- u = ngx_http_get_module_ctx(r, ngx_http_upload_module);
+-
+- s = (ngx_str_t *) ((char *) u + data);
+-
+- s->len = v->len;
+- s->data = v->data;
+-} /* }}} */
+-
+ static ngx_int_t /* {{{ ngx_http_upload_variable */
+ ngx_http_upload_variable(ngx_http_request_t *r,
+ ngx_http_variable_value_t *v, uintptr_t data)
+@@ -2434,88 +2402,78 @@ ngx_http_upload_variable(ngx_http_request_t *r,
+ return NGX_OK;
+ } /* }}} */
+
+-static ngx_int_t /* {{{ ngx_http_upload_md5_variable */
+-ngx_http_upload_md5_variable(ngx_http_request_t *r,
+- ngx_http_variable_value_t *v, uintptr_t data)
++static ngx_int_t
++ngx_http_upload_hash_variable(ngx_http_request_t *r,
++ ngx_http_variable_value_t *v, uintptr_t data, u_char *digest,
++ ngx_uint_t digest_len)
+ {
+ ngx_uint_t i;
+- ngx_http_upload_ctx_t *u;
+ u_char *c;
++ u_char *p;
+ u_char *hex_table;
+
+- u = ngx_http_get_module_ctx(r, ngx_http_upload_module);
+-
+- if(u->md5_ctx == NULL || u->partial_content) {
+- v->not_found = 1;
+- return NGX_OK;
+- }
+-
+ v->valid = 1;
+ v->no_cacheable = 0;
+ v->not_found = 0;
+
+ hex_table = (u_char*)data;
+- c = u->md5_ctx->md5_digest + MD5_DIGEST_LENGTH * 2;
+
+- i = MD5_DIGEST_LENGTH;
++ p = ngx_palloc(r->pool, digest_len * 2);
++ if (p == NULL) {
++ return NGX_ERROR;
++ }
++
++ c = p + digest_len * 2;
++ i = digest_len;
+
+ do{
+ i--;
+- *--c = hex_table[u->md5_ctx->md5_digest[i] & 0xf];
+- *--c = hex_table[u->md5_ctx->md5_digest[i] >> 4];
++ *--c = hex_table[digest[i] & 0xf];
++ *--c = hex_table[digest[i] >> 4];
+ }while(i != 0);
+
+- v->data = u->md5_ctx->md5_digest;
+- v->len = MD5_DIGEST_LENGTH * 2;
++ v->data = c;
++ v->len = digest_len * 2;
+
+ return NGX_OK;
+ } /* }}} */
+
+-static ngx_int_t /* {{{ ngx_http_upload_sha1_variable */
+-ngx_http_upload_sha1_variable(ngx_http_request_t *r,
++static ngx_int_t /* {{{ ngx_http_upload_md5_variable */
++ngx_http_upload_md5_variable(ngx_http_request_t *r,
+ ngx_http_variable_value_t *v, uintptr_t data)
+ {
+- ngx_uint_t i;
+ ngx_http_upload_ctx_t *u;
+- u_char *c;
+- u_char *hex_table;
+
+ u = ngx_http_get_module_ctx(r, ngx_http_upload_module);
+
+- if(u->sha1_ctx == NULL || u->partial_content) {
++ if(u->md5_ctx == NULL || u->partial_content) {
+ v->not_found = 1;
+ return NGX_OK;
+ }
++ return ngx_http_upload_hash_variable(r, v, data, u->md5_ctx->md5_digest, MD5_DIGEST_LENGTH);
++} /* }}} */
+
+- v->valid = 1;
+- v->no_cacheable = 0;
+- v->not_found = 0;
+-
+- hex_table = (u_char*)data;
+- c = u->sha1_ctx->sha1_digest + SHA_DIGEST_LENGTH * 2;
+-
+- i = SHA_DIGEST_LENGTH;
++static ngx_int_t /* {{{ ngx_http_upload_sha1_variable */
++ngx_http_upload_sha1_variable(ngx_http_request_t *r,
++ ngx_http_variable_value_t *v, uintptr_t data)
++{
++ ngx_http_upload_ctx_t *u;
+
+- do{
+- i--;
+- *--c = hex_table[u->sha1_ctx->sha1_digest[i] & 0xf];
+- *--c = hex_table[u->sha1_ctx->sha1_digest[i] >> 4];
+- }while(i != 0);
++ u = ngx_http_get_module_ctx(r, ngx_http_upload_module);
+
+- v->data = u->sha1_ctx->sha1_digest;
+- v->len = SHA_DIGEST_LENGTH * 2;
++ if(u->sha1_ctx == NULL || u->partial_content) {
++ v->not_found = 1;
++ return NGX_OK;
++ }
+
+- return NGX_OK;
++ return ngx_http_upload_hash_variable(r, v, data, u->sha1_ctx->sha1_digest, SHA_DIGEST_LENGTH);
+ } /* }}} */
+
+ static ngx_int_t /* {{{ ngx_http_upload_sha256_variable */
+ ngx_http_upload_sha256_variable(ngx_http_request_t *r,
+ ngx_http_variable_value_t *v, uintptr_t data)
+ {
+- ngx_uint_t i;
+ ngx_http_upload_ctx_t *u;
+- u_char *c;
+- u_char *hex_table;
+
+ u = ngx_http_get_module_ctx(r, ngx_http_upload_module);
+
+@@ -2524,35 +2482,14 @@ ngx_http_upload_sha256_variable(ngx_http_request_t *r,
+ return NGX_OK;
+ }
+
+- v->valid = 1;
+- v->no_cacheable = 0;
+- v->not_found = 0;
+-
+- hex_table = (u_char*)data;
+- c = u->sha256_ctx->sha256_digest + SHA256_DIGEST_LENGTH * 2;
+-
+- i = SHA256_DIGEST_LENGTH;
+-
+- do{
+- i--;
+- *--c = hex_table[u->sha256_ctx->sha256_digest[i] & 0xf];
+- *--c = hex_table[u->sha256_ctx->sha256_digest[i] >> 4];
+- }while(i != 0);
+-
+- v->data = u->sha256_ctx->sha256_digest;
+- v->len = SHA256_DIGEST_LENGTH * 2;
+-
+- return NGX_OK;
++ return ngx_http_upload_hash_variable(r, v, data, u->sha256_ctx->sha256_digest, SHA256_DIGEST_LENGTH);
+ } /* }}} */
+
+ static ngx_int_t /* {{{ ngx_http_upload_sha512_variable */
+ ngx_http_upload_sha512_variable(ngx_http_request_t *r,
+ ngx_http_variable_value_t *v, uintptr_t data)
+ {
+- ngx_uint_t i;
+ ngx_http_upload_ctx_t *u;
+- u_char *c;
+- u_char *hex_table;
+
+ u = ngx_http_get_module_ctx(r, ngx_http_upload_module);
+
+@@ -2561,25 +2498,7 @@ ngx_http_upload_sha512_variable(ngx_http_request_t *r,
+ return NGX_OK;
+ }
+
+- v->valid = 1;
+- v->no_cacheable = 0;
+- v->not_found = 0;
+-
+- hex_table = (u_char*)data;
+- c = u->sha512_ctx->sha512_digest + SHA512_DIGEST_LENGTH * 2;
+-
+- i = SHA512_DIGEST_LENGTH;
+-
+- do{
+- i--;
+- *--c = hex_table[u->sha512_ctx->sha512_digest[i] & 0xf];
+- *--c = hex_table[u->sha512_ctx->sha512_digest[i] >> 4];
+- }while(i != 0);
+-
+- v->data = u->sha512_ctx->sha512_digest;
+- v->len = SHA512_DIGEST_LENGTH * 2;
+-
+- return NGX_OK;
++ return ngx_http_upload_hash_variable(r, v, data, u->sha512_ctx->sha512_digest, SHA512_DIGEST_LENGTH);
+ } /* }}} */
+
+ static ngx_int_t /* {{{ ngx_http_upload_crc32_variable */
+@@ -2922,73 +2841,6 @@ ngx_http_upload_pass_form_field(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
+ return NGX_CONF_OK;
+ } /* }}} */
+
+-static char * /* {{{ ngx_http_upload_add_header */
+-ngx_http_upload_add_header(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
+-{
+- ngx_str_t *value;
+- ngx_http_upload_header_template_t *h;
+- ngx_array_t **field;
+- ngx_http_compile_complex_value_t ccv;
+-
+- field = (ngx_array_t**) (((u_char*)conf) + cmd->offset);
+-
+- value = cf->args->elts;
+-
+- /*
+- * Add new entry to header template list
+- */
+- if (*field == NULL) {
+- *field = ngx_array_create(cf->pool, 1,
+- sizeof(ngx_http_upload_header_template_t));
+- if (*field == NULL) {
+- return NGX_CONF_ERROR;
+- }
+- }
+-
+- h = ngx_array_push(*field);
+- if (h == NULL) {
+- return NGX_CONF_ERROR;
+- }
+-
+- /*
+- * Compile header name
+- */
+- h->name = ngx_palloc(cf->pool, sizeof(ngx_http_complex_value_t));
+- if(h->name == NULL) {
+- return NGX_CONF_ERROR;
+- }
+-
+- ngx_memzero(&ccv, sizeof(ngx_http_compile_complex_value_t));
+-
+- ccv.cf = cf;
+- ccv.value = &value[1];
+- ccv.complex_value = h->name;
+-
+- if (ngx_http_compile_complex_value(&ccv) != NGX_OK) {
+- return NGX_CONF_ERROR;
+- }
+-
+- /*
+- * Compile header value
+- */
+- h->value = ngx_palloc(cf->pool, sizeof(ngx_http_complex_value_t));
+- if(h->value == NULL) {
+- return NGX_CONF_ERROR;
+- }
+-
+- ngx_memzero(&ccv, sizeof(ngx_http_compile_complex_value_t));
+-
+- ccv.cf = cf;
+- ccv.value = &value[2];
+- ccv.complex_value = h->value;
+-
+- if (ngx_http_compile_complex_value(&ccv) != NGX_OK) {
+- return NGX_CONF_ERROR;
+- }
+-
+- return NGX_CONF_OK;
+-} /* }}} */
+-
+ static char * /* {{{ ngx_http_upload_cleanup */
+ ngx_http_upload_cleanup(ngx_conf_t *cf, ngx_command_t *cmd, void *conf)
+ {
+@@ -3599,6 +3451,8 @@ ngx_http_do_read_upload_client_request_body(ngx_http_request_t *r)
+ ngx_del_timer(c->read);
+ }
+
++ r->read_event_handler = ngx_http_block_reading;
++
+ rc = ngx_http_process_request_body(r, u->to_write);
+
+ switch(rc) {
+@@ -3667,16 +3521,14 @@ static ngx_int_t upload_parse_content_disposition(ngx_http_upload_ctx_t *upload_
+
+ if(filename_start != 0) {
+
+- filename_start += sizeof(FILENAME_STRING)-1;
+-
+- filename_end = filename_start + strcspn(filename_start, "\"");
++ filename_start += sizeof(FILENAME_STRING) - 1;
+
+- if(*filename_end != '\"') {
+- ngx_log_debug0(NGX_LOG_DEBUG_CORE, upload_ctx->log, 0,
+- "malformed filename in part header");
+- return NGX_UPLOAD_MALFORMED;
++ if (*filename_start == '\"') {
++ filename_start++;
+ }
+
++ filename_end = filename_start + strcspn(filename_start, "\";");
++
+ /*
+ * IE sends full path, strip path from filename
+ * Also strip all UNIX path references
+@@ -3703,16 +3555,14 @@ static ngx_int_t upload_parse_content_disposition(ngx_http_upload_ctx_t *upload_
+ // }while((fieldname_start != 0) && (fieldname_start + sizeof(FIELDNAME_STRING) - 1 == filename_start));
+
+ if(fieldname_start != 0) {
+- fieldname_start += sizeof(FIELDNAME_STRING)-1;
++ fieldname_start += sizeof(FIELDNAME_STRING) - 1;
+
+- if(fieldname_start != filename_start) {
+- fieldname_end = fieldname_start + strcspn(fieldname_start, "\"");
++ if (*fieldname_start == '\"') {
++ fieldname_start++;
++ }
+
+- if(*fieldname_end != '\"') {
+- ngx_log_error(NGX_LOG_ERR, upload_ctx->log, 0,
+- "malformed fieldname in part header");
+- return NGX_UPLOAD_MALFORMED;
+- }
++ if(fieldname_start != filename_start) {
++ fieldname_end = fieldname_start + strcspn(fieldname_start, "\";");
+
+ upload_ctx->field_name.len = fieldname_end - fieldname_start;
+ upload_ctx->field_name.data = ngx_pcalloc(upload_ctx->request->pool, upload_ctx->field_name.len + 1);
+@@ -4087,6 +3937,12 @@ static ngx_int_t upload_parse_request_headers(ngx_http_upload_ctx_t *upload_ctx,
+ boundary_start_ptr += sizeof(BOUNDARY_STRING) - 1;
+ boundary_end_ptr = boundary_start_ptr + strcspn((char*)boundary_start_ptr, " ;\n\r");
+
++ // Handle quoted boundaries
++ if ((boundary_end_ptr - boundary_start_ptr) >= 2 && boundary_start_ptr[0] == '"' && *(boundary_end_ptr - 1) == '"') {
++ boundary_start_ptr++;
++ boundary_end_ptr--;
++ }
++
+ if(boundary_end_ptr == boundary_start_ptr) {
+ ngx_log_debug0(NGX_LOG_DEBUG_CORE, upload_ctx->log, 0,
+ "boundary is empty");
diff --git a/main/nginx/nginx-upload-progress-module~fix-http2.patch b/main/nginx/nginx-upload-progress-module~fix-http2.patch
new file mode 100644
index 00000000000..9886e1d7f09
--- /dev/null
+++ b/main/nginx/nginx-upload-progress-module~fix-http2.patch
@@ -0,0 +1,44 @@
+Patch-Source: https://github.com/masterzen/nginx-upload-progress-module/pull/57
+--
+From 594f1233c3c622ad51a2bde0c3289747af20e245 Mon Sep 17 00:00:00 2001
+From: Allan Jude <allanjude@freebsd.org>
+Date: Sat, 26 Nov 2022 20:28:10 +0000
+Subject: [PATCH] Restore functionality of upload-progress for HTTP2
+
+The upload-progress module was only getting notified of the first
+block of uploaded data, because r->read_event_handler was being
+reset by ngx_http_v2_read_request_body() and
+ngx_http_v2_process_request_body()
+
+The patch detects that situation, updates module_ctx to call the
+new function, then reinserts itself as the read_event_handler so
+we continue to be notified about uploaded data.
+
+Introduced in nginx/nginx@67d160bf25e02ba6679bb6c3b9cbdfeb29b759de
+
+Sponsored-by: ScaleEngine Inc.
+---
+ ngx_http_uploadprogress_module.c | 10 ++++++++++
+ 1 file changed, 10 insertions(+)
+
+diff --git a/ngx_http_uploadprogress_module.c b/ngx_http_uploadprogress_module.c
+index 33bdaf7..f17ad92 100644
+--- a/ngx_http_uploadprogress_module.c
++++ b/ngx_http_uploadprogress_module.c
+@@ -489,6 +489,16 @@ static void ngx_http_uploadprogress_event_handler(ngx_http_request_t *r)
+ module_ctx = ngx_http_get_module_ctx(r, ngx_http_uploadprogress_module);
+ if (module_ctx != NULL ) {
+ module_ctx->read_event_handler(r);
++ /*
++ * Both ngx_http_v2_read_request_body() and
++ * ngx_http_v2_process_request_body() modify read_event_handler,
++ * we respect the change, but re-interpose our function so we still get
++ * future events, otherwise we miss all upload progress.
++ */
++ if (r->read_event_handler != ngx_http_uploadprogress_event_handler) {
++ module_ctx->read_event_handler = r->read_event_handler;
++ r->read_event_handler = ngx_http_uploadprogress_event_handler;
++ }
+ }
+
+ /* at this stage, r is not anymore safe to use */
diff --git a/main/nginx/nginx-upload-progress-module~fix.patch b/main/nginx/nginx-upload-progress-module~fix.patch
new file mode 100644
index 00000000000..7d5fd1bde6d
--- /dev/null
+++ b/main/nginx/nginx-upload-progress-module~fix.patch
@@ -0,0 +1,937 @@
+Patch-Source: https://github.com/masterzen/nginx-upload-progress-module/compare/master...msva:nginx-upload-progress-module:master
+
+Ref https://github.com/masterzen/nginx-upload-progress-module/issues/56
+
+diff --git a/ngx_http_uploadprogress_module.c b/ngx_http_uploadprogress_module.c
+index 33bdaf7..577c146 100644
+--- a/ngx_http_uploadprogress_module.c
++++ b/ngx_http_uploadprogress_module.c
+@@ -8,6 +8,7 @@
+ #include <ngx_core.h>
+ #include <ngx_http.h>
+
++
+ #define TIMER_FREQUENCY 15 * 1000
+
+ typedef enum {
+@@ -31,6 +32,8 @@ struct ngx_http_uploadprogress_node_s {
+ off_t rest;
+ off_t length;
+ ngx_uint_t done;
++ ngx_uint_t sequence;
++ ngx_uint_t sent_portion;
+ time_t timeout;
+ struct ngx_http_uploadprogress_node_s *prev;
+ struct ngx_http_uploadprogress_node_s *next;
+@@ -65,7 +68,13 @@ typedef struct {
+ ngx_str_t content_type;
+ ngx_array_t templates;
+ ngx_str_t header;
++ ngx_str_t header_mul;
++
++ ngx_addr_t progress_server;
++ int udp_socket;
++
+ ngx_str_t jsonp_parameter;
++ ngx_int_t json_multiple:1;
+ } ngx_http_uploadprogress_conf_t;
+
+ typedef struct {
+@@ -87,6 +96,8 @@ static ngx_int_t ngx_http_uploadprogress_offset_variable(ngx_http_request_t *r,
+ ngx_http_variable_value_t *v, uintptr_t data);
+ static ngx_int_t ngx_http_uploadprogress_status_variable(ngx_http_request_t *r,
+ ngx_http_variable_value_t *v, uintptr_t data);
++static ngx_int_t ngx_http_uploadprogress_id_variable(ngx_http_request_t *r,
++ ngx_http_variable_value_t *v, uintptr_t data);
+ static ngx_int_t ngx_http_uploadprogress_callback_variable(ngx_http_request_t *r,
+ ngx_http_variable_value_t *v, uintptr_t data);
+ static char* ngx_http_upload_progress_set_template(ngx_conf_t * cf, ngx_http_uploadprogress_template_t *t, ngx_str_t *source);
+@@ -97,6 +108,8 @@ static char* ngx_http_upload_progress_template(ngx_conf_t * cf, ngx_command_t *
+ static char* ngx_http_upload_progress_java_output(ngx_conf_t * cf, ngx_command_t * cmd, void *conf);
+ static char* ngx_http_upload_progress_json_output(ngx_conf_t * cf, ngx_command_t * cmd, void *conf);
+ static char* ngx_http_upload_progress_jsonp_output(ngx_conf_t * cf, ngx_command_t * cmd, void *conf);
++static char* ngx_http_upload_progress_json_multiple_output(ngx_conf_t * cf, ngx_command_t * cmd, void *conf);
++static char* ngx_http_upload_progress_jsonp_multiple_output(ngx_conf_t * cf, ngx_command_t * cmd, void *conf);
+ static void ngx_clean_old_connections(ngx_event_t * ev);
+ static ngx_int_t ngx_http_uploadprogress_content_handler(ngx_http_request_t *r);
+
+@@ -112,7 +125,7 @@ static ngx_command_t ngx_http_uploadprogress_commands[] = {
+ NULL},
+
+ {ngx_string("track_uploads"),
+- NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_CONF_TAKE2,
++ NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_CONF_TAKE2 | NGX_CONF_TAKE3,
+ ngx_http_track_uploads,
+ NGX_HTTP_LOC_CONF_OFFSET,
+ 0,
+@@ -160,6 +173,20 @@ static ngx_command_t ngx_http_uploadprogress_commands[] = {
+ 0,
+ NULL},
+
++ {ngx_string("upload_progress_json_multiple_output"),
++ NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_CONF_NOARGS,
++ ngx_http_upload_progress_json_multiple_output,
++ NGX_HTTP_LOC_CONF_OFFSET,
++ 0,
++ NULL},
++
++ {ngx_string("upload_progress_jsonp_multiple_output"),
++ NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_CONF_NOARGS,
++ ngx_http_upload_progress_jsonp_multiple_output,
++ NGX_HTTP_LOC_CONF_OFFSET,
++ 0,
++ NULL},
++
+ {ngx_string("upload_progress_header"),
+ NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_CONF_TAKE1,
+ ngx_conf_set_str_slot,
+@@ -167,6 +194,13 @@ static ngx_command_t ngx_http_uploadprogress_commands[] = {
+ offsetof(ngx_http_uploadprogress_conf_t, header),
+ NULL},
+
++ {ngx_string("upload_progress_header_mul"),
++ NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_CONF_TAKE1,
++ ngx_conf_set_str_slot,
++ NGX_HTTP_LOC_CONF_OFFSET,
++ offsetof(ngx_http_uploadprogress_conf_t, header_mul),
++ NULL},
++
+ {ngx_string("upload_progress_jsonp_parameter"),
+ NGX_HTTP_MAIN_CONF | NGX_HTTP_SRV_CONF | NGX_HTTP_LOC_CONF | NGX_CONF_TAKE1,
+ ngx_conf_set_str_slot,
+@@ -195,6 +229,10 @@ static ngx_http_variable_t ngx_http_uploadprogress_variables[] = {
+ (uintptr_t) offsetof(ngx_http_uploadprogress_node_t, err_status),
+ NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOCACHEABLE|NGX_HTTP_VAR_NOHASH, 0 },
+
++ { ngx_string("uploadprogress_id"), NULL, ngx_http_uploadprogress_id_variable,
++ (uintptr_t) offsetof(ngx_http_uploadprogress_node_t, err_status),
++ NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOCACHEABLE|NGX_HTTP_VAR_NOHASH, 0 },
++
+ { ngx_string("uploadprogress_callback"), NULL, ngx_http_uploadprogress_callback_variable,
+ (uintptr_t) NULL,
+ NGX_HTTP_VAR_CHANGEABLE|NGX_HTTP_VAR_NOCACHEABLE|NGX_HTTP_VAR_NOHASH, 0 },
+@@ -261,9 +299,24 @@ static ngx_str_t ngx_http_uploadprogress_jsonp_defaults[] = {
+ ngx_string("$uploadprogress_callback({ \"state\" : \"uploading\", \"received\" : $uploadprogress_received, \"size\" : $uploadprogress_length });\r\n")
+ };
+
++static ngx_str_t ngx_http_uploadprogress_json_multiple_defaults[] = {
++ ngx_string("{ \"id\" : $uploadprogress_id, \"state\" : \"starting\" }"),
++ ngx_string("{ \"id\" : $uploadprogress_id, \"state\" : \"error\", \"status\" : $uploadprogress_status }"),
++ ngx_string("{ \"id\" : $uploadprogress_id, \"state\" : \"done\" }"),
++ ngx_string("{ \"id\" : $uploadprogress_id, \"state\" : \"uploading\", \"received\" : $uploadprogress_received, \"size\" : $uploadprogress_length }")
++};
++
++static ngx_str_t ngx_http_uploadprogress_jsonp_multiple_defaults[] = {
++ ngx_string("$uploadprogress_callback({ \"id\" : $uploadprogress_id, \"state\" : \"starting\" });\r\n"),
++ ngx_string("$uploadprogress_callback({ \"id\" : $uploadprogress_id, \"state\" : \"error\", \"status\" : $uploadprogress_status });\r\n"),
++ ngx_string("$uploadprogress_callback({ \"id\" : $uploadprogress_id, \"state\" : \"done\" });\r\n"),
++ ngx_string("$uploadprogress_callback({ \"id\" : $uploadprogress_id, \"state\" : \"uploading\", \"received\" : $uploadprogress_received, \"size\" : $uploadprogress_length });\r\n")
++};
++
+
+ static ngx_array_t ngx_http_uploadprogress_global_templates;
+
++
+ static ngx_str_t*
+ get_tracking_id(ngx_http_request_t * r)
+ {
+@@ -328,7 +381,7 @@ get_tracking_id(ngx_http_request_t * r)
+ i = 1;
+ break;
+ }
+- if (len<=0)
++ else if (!len)
+ break;
+ }
+ while(p++);
+@@ -355,6 +408,97 @@ get_tracking_id(ngx_http_request_t * r)
+ return NULL;
+ }
+
++static ngx_str_t*
++get_tracking_ids_mul(ngx_http_request_t * r)
++{
++ u_char *p, *start_p;
++ ngx_uint_t i;
++ ngx_list_part_t *part;
++ ngx_table_elt_t *header;
++ ngx_str_t *ret, args;
++ ngx_http_uploadprogress_conf_t *upcf;
++
++ upcf = ngx_http_get_module_loc_conf(r, ngx_http_uploadprogress_module);
++
++ ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0, "upload-progress: get_tracking_ids");
++
++ part = &r->headers_in.headers.part;
++ header = part->elts;
++
++ for (i = 0; /* void */ ; i++) {
++
++ if (i >= part->nelts) {
++ if (part->next == NULL) {
++ break;
++ }
++
++ part = part->next;
++ header = part->elts;
++ i = 0;
++ }
++
++ if (header[i].key.len == upcf->header_mul.len
++ && ngx_strncasecmp(header[i].key.data, upcf->header_mul.data,
++ header[i].key.len) == 0) {
++ ret = ngx_calloc(sizeof(ngx_str_t), r->connection->log );
++ ret->data = header[i].value.data;
++ ret->len = header[i].value.len;
++ ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
++ "upload-progress: get_tracking_ids found header: %V", ret);
++ return ret;
++ }
++ }
++
++ ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
++ "upload-progress: get_tracking_ids no header found");
++
++ /* not found, check as a request arg */
++ /* it is possible the request args have not been yet created (or already released) */
++ /* so let's try harder first from the request line */
++ args.len = r->args.len;
++ args.data = r->args.data;
++
++ if (args.len && args.data) {
++ ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
++ "upload-progress: get_tracking_id no header found, args found");
++ i = 0;
++ p = args.data;
++ do {
++ ngx_uint_t len = args.len - (p - args.data);
++ if (len >= (upcf->header_mul.len + 1) && ngx_strncasecmp(p, upcf->header_mul.data, upcf->header_mul.len) == 0
++ && p[upcf->header_mul.len] == '=') {
++ ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
++ "upload-progress: get_tracking_id found args: %s",p);
++ i = 1;
++ break;
++ }
++ else if (!len)
++ break;
++ }
++ while(p++);
++
++ if (i) {
++ start_p = p += upcf->header_mul.len + 1;
++ while (p < args.data + args.len) {
++ if (*((p++) + 1) == '&') {
++ break;
++ }
++ }
++
++ ret = ngx_calloc(sizeof(ngx_str_t), r->connection->log);
++ ret->data = start_p;
++ ret->len = p - start_p;
++ ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
++ "upload-progress: get_tracking_id found args: %V",ret);
++ return ret;
++ }
++ }
++
++ ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
++ "upload-progress: get_tracking_id no id found");
++ return NULL;
++}
++
+ static ngx_http_uploadprogress_node_t *
+ find_node(ngx_str_t * id, ngx_http_uploadprogress_ctx_t * ctx, ngx_log_t * log)
+ {
+@@ -540,6 +684,27 @@ static void ngx_http_uploadprogress_event_handler(ngx_http_request_t *r)
+
+ if(up->length == 0)
+ up->length = r->headers_in.content_length_n;
++ if(upcf->udp_socket != -1 && upcf->progress_server.socklen != 0)
++ {
++ u_char datagram_buf[1024];
++ u_char * end;
++ off_t uploaded;
++ ngx_uint_t portion;
++
++ uploaded = up->length - up->rest;
++ if(up->length)
++ portion = 100 * uploaded / up->length;
++ else
++ portion = 100;
++ if(portion > up->sent_portion)
++ {
++ end = ngx_snprintf(datagram_buf, sizeof(datagram_buf), "{\"id\" : \"%V\", \"sequence\" : %d, \"size\" : %uO, \"uploaded\" : %uO }",
++ id, up->sequence, up->length, uploaded);
++ sendto(upcf->udp_socket, datagram_buf, end - datagram_buf, 0, (struct sockaddr*)upcf->progress_server.sockaddr, upcf->progress_server.socklen);
++ up->sent_portion = portion;
++ ++up->sequence;
++ }
++ }
+ ngx_log_debug3(NGX_LOG_DEBUG_HTTP, ngx_cycle->log, 0,
+ "upload-progress: read_event_handler storing rest %uO/%uO for %V", up->rest, up->length, id);
+ } else {
+@@ -559,12 +724,12 @@ ngx_http_reportuploads_handler(ngx_http_request_t * r)
+ ngx_chain_t out;
+ ngx_int_t rc, found=0, done=0, err_status=0;
+ off_t rest=0, length=0;
+- ngx_uint_t len, i;
++ ngx_uint_t len;
+ ngx_slab_pool_t *shpool;
+ ngx_http_uploadprogress_conf_t *upcf;
+ ngx_http_uploadprogress_ctx_t *ctx;
+ ngx_http_uploadprogress_node_t *up;
+- ngx_table_elt_t *expires, *cc, **ccp;
++ ngx_table_elt_t *expires, *cc;
+ ngx_http_uploadprogress_state_t state;
+ ngx_http_uploadprogress_template_t *t;
+
+@@ -578,9 +743,13 @@ ngx_http_reportuploads_handler(ngx_http_request_t * r)
+ return rc;
+ }
+
+- /* get the tracking id if any */
+- id = get_tracking_id(r);
++ upcf = ngx_http_get_module_loc_conf(r, ngx_http_uploadprogress_module);
+
++ /* get the tracking id if any */
++ if(upcf->json_multiple)
++ id = get_tracking_ids_mul(r);
++ else
++ id = get_tracking_id(r);
+
+ if (id == NULL) {
+ ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+@@ -591,8 +760,6 @@ ngx_http_reportuploads_handler(ngx_http_request_t * r)
+ ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+ "reportuploads handler found id: %V", id);
+
+- upcf = ngx_http_get_module_loc_conf(r, ngx_http_uploadprogress_module);
+-
+ if (upcf->shm_zone == NULL) {
+ ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+ "reportuploads no shm_zone for id: %V", id);
+@@ -600,32 +767,6 @@ ngx_http_reportuploads_handler(ngx_http_request_t * r)
+ return NGX_DECLINED;
+ }
+
+- ctx = upcf->shm_zone->data;
+-
+- /* get the original connection of the upload */
+- shpool = (ngx_slab_pool_t *) upcf->shm_zone->shm.addr;
+-
+- ngx_shmtx_lock(&shpool->mutex);
+-
+- up = find_node(id, ctx, r->connection->log);
+- if (up != NULL) {
+- ngx_log_debug5(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+- "reportuploads found node: %V (rest: %uO, length: %uO, done: %ui, err_status: %ui)", id, up->rest, up->length, up->done, up->err_status);
+- rest = up->rest;
+- length = up->length;
+- done = up->done;
+- err_status = up->err_status;
+- found = 1;
+- } else {
+- ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+- "reportuploads not found: %V", id);
+- }
+- ngx_shmtx_unlock(&shpool->mutex);
+- ngx_free(id);
+-
+- /* send the output */
+- r->headers_out.content_type = upcf->content_type;
+-
+ /* force no-cache */
+ expires = r->headers_out.expires;
+
+@@ -637,6 +778,7 @@ ngx_http_reportuploads_handler(ngx_http_request_t * r)
+ }
+
+ r->headers_out.expires = expires;
++ expires->next = NULL;
+
+ expires->hash = 1;
+ expires->key.len = sizeof("Expires") - 1;
+@@ -646,37 +788,28 @@ ngx_http_reportuploads_handler(ngx_http_request_t * r)
+ len = sizeof("Mon, 28 Sep 1970 06:00:00 GMT");
+ expires->value.len = len - 1;
+
+- ccp = r->headers_out.cache_control.elts;
+- if (ccp == NULL) {
+-
+- if (ngx_array_init(&r->headers_out.cache_control, r->pool,
+- 1, sizeof(ngx_table_elt_t *))
+- != NGX_OK) {
+- return NGX_HTTP_INTERNAL_SERVER_ERROR;
+- }
+-
+- ccp = ngx_array_push(&r->headers_out.cache_control);
+- if (ccp == NULL) {
+- return NGX_HTTP_INTERNAL_SERVER_ERROR;
+- }
+-
++ cc = r->headers_out.cache_control;
++ if (cc == NULL) {
+ cc = ngx_list_push(&r->headers_out.headers);
+ if (cc == NULL) {
++ expires->hash = 0;
+ return NGX_HTTP_INTERNAL_SERVER_ERROR;
+ }
+
++ r->headers_out.cache_control = cc;
++ cc->next = NULL;
++
+ cc->hash = 1;
+ cc->key.len = sizeof("Cache-Control") - 1;
+ cc->key.data = (u_char *) "Cache-Control";
+
+- *ccp = cc;
+-
+ } else {
+- for (i = 1; i < r->headers_out.cache_control.nelts; i++) {
+- ccp[i]->hash = 0;
++ for (cc = cc->next; cc; cc = cc->next) {
++ cc->hash = 0;
+ }
+
+- cc = ccp[0];
++ cc = r->headers_out.cache_control;
++ cc->next = NULL;
+ }
+
+ expires->value.data = (u_char *) "Thu, 01 Jan 1970 00:00:01 GMT";
+@@ -695,59 +828,282 @@ ngx_http_reportuploads_handler(ngx_http_request_t * r)
+ }
+ }
+
+- ngx_http_set_ctx(r, up, ngx_http_uploadprogress_module);
++ ctx = upcf->shm_zone->data;
+
+-/*
++ /* get the original connection of the upload */
++ shpool = (ngx_slab_pool_t *) upcf->shm_zone->shm.addr;
++
++ if(upcf->json_multiple)
++ {
++ ngx_chain_t * p_chain_end = 0;
++ ngx_chain_t * p_chain_start = 0;
++ size_t offs = 0;
++ u_char * p1 = id->data, * p2;
++ r->headers_out.content_length_n = 0;
++ while(offs < id->len)
++ {
++ p2 = memchr((char *)id->data + offs, ';', id->len - offs);
++ if(!p2) p2 = id->data + id->len;
++ size_t len = p2 - p1;
++ if(len)
++ {
++ ngx_str_t sub_id;
++ sub_id.data = p1;
++ sub_id.len = len;
++
++ // ---->
++
++ ngx_shmtx_lock(&shpool->mutex);
++
++ up = find_node(&sub_id, ctx, r->connection->log);
++ if (up != NULL) {
++ ngx_log_debug5(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
++ "reportuploads found node: %V (rest: %uO, length: %uO, done: %ui, err_status: %ui)", &sub_id, up->rest, up->length, up->done, up->err_status);
++ rest = up->rest;
++ length = up->length;
++ done = up->done;
++ err_status = up->err_status;
++ found = 1;
++ } else {
++ ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
++ "reportuploads not found: %V", &sub_id);
++ }
++ ngx_shmtx_unlock(&shpool->mutex);
++
++ /* send the output */
++ r->headers_out.content_type = upcf->content_type;
++
++ if(up == NULL)
++ {
++ // For current id
++ ngx_http_uploadprogress_node_t * tmp_node = ngx_pcalloc(r->pool, sizeof(ngx_http_uploadprogress_node_t) + sub_id.len);
++ tmp_node->len = sub_id.len;
++ ngx_memcpy(tmp_node->data, sub_id.data, sub_id.len);
++ ngx_http_set_ctx(r, tmp_node, ngx_http_uploadprogress_module);
++ }
++ else
++ ngx_http_set_ctx(r, up, ngx_http_uploadprogress_module);
++
++
++ if (!found) {
++ state = uploadprogress_state_starting;
++ } else if (err_status >= NGX_HTTP_BAD_REQUEST) {
++ state = uploadprogress_state_error;
++ } else if (done) {
++ state = uploadprogress_state_done;
++ } else if ( length == 0 && rest == 0 ) {
++ state = uploadprogress_state_starting;
++ } else {
++ state = uploadprogress_state_uploading;
++ }
++
++ t = upcf->templates.elts;
++
++ if (ngx_http_script_run(r, &response, t[(ngx_uint_t)state].lengths->elts, 0,
++ t[(ngx_uint_t)state].values->elts) == NULL)
++ {
++ ngx_free(id);
++ return NGX_HTTP_INTERNAL_SERVER_ERROR;
++ }
++
++ ngx_log_debug4(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
++ "upload progress: state=%d, err_status=%ui, remaining=%uO, length=%uO",
++ state, err_status, (length - rest), length);
++
++ if(p_chain_end)
++ {
++ p_chain_end->next = ngx_palloc(r->pool, sizeof(ngx_chain_t));
++ if (p_chain_end->next == NULL) {
++ ngx_free(id);
++ return NGX_HTTP_INTERNAL_SERVER_ERROR;
++ }
++ p_chain_end = p_chain_end->next;
++
++ // Insert comma
++ b = ngx_calloc_buf(r->pool);
++ if (b == NULL) {
++ ngx_free(id);
++ return NGX_HTTP_INTERNAL_SERVER_ERROR;
++ }
++
++ b->pos = b->start = ngx_palloc(r->pool, 2);
++ if (b->pos == NULL) {
++ ngx_free(id);
++ return NGX_HTTP_INTERNAL_SERVER_ERROR;
++ }
++ b->last = b->end = b->pos + 2;
++ ngx_memcpy(b->pos, ", ", 2);
++ b->temporary = 1;
++ b->memory = 1;
++
++ p_chain_end->buf = b;
++ p_chain_end->next = ngx_palloc(r->pool, sizeof(ngx_chain_t));
++ if (p_chain_end->next == NULL) {
++ ngx_free(id);
++ return NGX_HTTP_INTERNAL_SERVER_ERROR;
++ }
++ p_chain_end = p_chain_end->next;
++ }
++ else
++ {
++ p_chain_start = p_chain_end = ngx_palloc(r->pool, sizeof(ngx_chain_t));
++ }
++
++ b = ngx_calloc_buf(r->pool);
++ if (b == NULL) {
++ ngx_free(id);
++ return NGX_HTTP_INTERNAL_SERVER_ERROR;
++ }
++
++ b->pos = b->start = response.data;
++ b->last = b->end = response.data + response.len;
++
++ b->temporary = 1;
++ b->memory = 1;
++
++ p_chain_end->buf = b;
++ p_chain_end->next = NULL;
++
++ // ---->
++
++ r->headers_out.content_length_n += b->last - b->pos;
++
++ p1 = p2 + 1;
++ }
++ offs += len + 1;
++ }
++ ngx_free(id);
++ if(!p_chain_end) // Malformed id
++ {
++ ngx_log_debug0(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
++ "reportuploads malformed multiple id");
++ return NGX_DECLINED;
++ }
++ // Prepend brace
++ b = ngx_calloc_buf(r->pool);
++ if (b == NULL) {
++ ngx_free(id);
++ return NGX_HTTP_INTERNAL_SERVER_ERROR;
++ }
++ b->pos = b->start = ngx_palloc(r->pool, 2);
++ if (b->pos == NULL) {
++ return NGX_HTTP_INTERNAL_SERVER_ERROR;
++ }
++ b->last = b->end = b->pos + 2;
++ ngx_memcpy(b->pos, "[ ", 2);
++ b->temporary = 1;
++ b->memory = 1;
++ r->headers_out.content_length_n += 2;
++
++ out.buf = b;
++ out.next = p_chain_start;
++
++ // Append brace
++ p_chain_end->next = ngx_palloc(r->pool, sizeof(ngx_chain_t));
++ if (p_chain_end->next == NULL) {
++ return NGX_HTTP_INTERNAL_SERVER_ERROR;
++ }
++ p_chain_end = p_chain_end->next;
++
++ b = ngx_calloc_buf(r->pool);
++ if (b == NULL) {
++ return NGX_HTTP_INTERNAL_SERVER_ERROR;
++ }
++
++ b->pos = b->start = ngx_palloc(r->pool, 2);
++ if (b->pos == NULL) {
++ return NGX_HTTP_INTERNAL_SERVER_ERROR;
++ }
++ b->last = b->end = b->pos + 4;
++ ngx_memcpy(b->pos, " ]\r\n", 4);
++ b->temporary = 1;
++ b->memory = 1;
++ r->headers_out.content_length_n += 4;
++
++ p_chain_end->buf = b;
++ p_chain_end->next = NULL;
++
++ r->headers_out.status = NGX_HTTP_OK;
++ p_chain_end->buf->last_buf = 1;
++ }
++ else
++ {
++ ngx_shmtx_lock(&shpool->mutex);
++
++ up = find_node(id, ctx, r->connection->log);
++ if (up != NULL) {
++ ngx_log_debug5(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
++ "reportuploads found node: %V (rest: %uO, length: %uO, done: %ui, err_status: %ui)", id, up->rest, up->length, up->done, up->err_status);
++ rest = up->rest;
++ length = up->length;
++ done = up->done;
++ err_status = up->err_status;
++ found = 1;
++ } else {
++ ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
++ "reportuploads not found: %V", id);
++ }
++ ngx_shmtx_unlock(&shpool->mutex);
++ ngx_free(id);
++
++ /* send the output */
++ r->headers_out.content_type = upcf->content_type;
++
++ ngx_http_set_ctx(r, up, ngx_http_uploadprogress_module);
++
++ /*
+ There are 4 possibilities
+ * request not yet started: found = false
+ * request in error: err_status >= NGX_HTTP_BAD_REQUEST
+ * request finished: done = true
+ * request not yet started but registered: length==0 && rest ==0
+- * reauest in progress: rest > 0
++ * reauest in progress: rest > 0
+ */
+
+- if (!found) {
+- state = uploadprogress_state_starting;
+- } else if (err_status >= NGX_HTTP_BAD_REQUEST) {
+- state = uploadprogress_state_error;
+- } else if (done) {
+- state = uploadprogress_state_done;
+- } else if ( length == 0 && rest == 0 ) {
+- state = uploadprogress_state_starting;
+- } else {
+- state = uploadprogress_state_uploading;
+- }
++ if (!found) {
++ state = uploadprogress_state_starting;
++ } else if (err_status >= NGX_HTTP_BAD_REQUEST) {
++ state = uploadprogress_state_error;
++ } else if (done) {
++ state = uploadprogress_state_done;
++ } else if ( length == 0 && rest == 0 ) {
++ state = uploadprogress_state_starting;
++ } else {
++ state = uploadprogress_state_uploading;
++ }
+
+- t = upcf->templates.elts;
++ t = upcf->templates.elts;
+
+- if (ngx_http_script_run(r, &response, t[(ngx_uint_t)state].lengths->elts, 0,
+- t[(ngx_uint_t)state].values->elts) == NULL)
+- {
+- return NGX_HTTP_INTERNAL_SERVER_ERROR;
+- }
++ if (ngx_http_script_run(r, &response, t[(ngx_uint_t)state].lengths->elts, 0,
++ t[(ngx_uint_t)state].values->elts) == NULL)
++ {
++ return NGX_HTTP_INTERNAL_SERVER_ERROR;
++ }
+
+- ngx_log_debug4(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
+- "upload progress: state=%d, err_status=%ui, remaining=%uO, length=%uO",
+- state, err_status, (length - rest), length);
++ ngx_log_debug4(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
++ "upload progress: state=%d, err_status=%ui, remaining=%uO, length=%uO",
++ state, err_status, (length - rest), length);
+
+- b = ngx_calloc_buf(r->pool);
+- if (b == NULL) {
+- return NGX_HTTP_INTERNAL_SERVER_ERROR;
+- }
++ b = ngx_calloc_buf(r->pool);
++ if (b == NULL) {
++ return NGX_HTTP_INTERNAL_SERVER_ERROR;
++ }
+
+- b->pos = b->start = response.data;
+- b->last = b->end = response.data + response.len;
++ b->pos = b->start = response.data;
++ b->last = b->end = response.data + response.len;
+
+- b->temporary = 1;
+- b->memory = 1;
++ b->temporary = 1;
++ b->memory = 1;
+
+- out.buf = b;
+- out.next = NULL;
++ out.buf = b;
++ out.next = NULL;
+
+- r->headers_out.status = NGX_HTTP_OK;
+- r->headers_out.content_length_n = b->last - b->pos;
++ r->headers_out.status = NGX_HTTP_OK;
++ r->headers_out.content_length_n = b->last - b->pos;
++
++ b->last_buf = 1;
++ }
+
+- b->last_buf = 1;
+ rc = ngx_http_send_header(r);
+
+ if (rc == NGX_ERROR || rc > NGX_OK || r->header_only) {
+@@ -774,8 +1130,8 @@ ngx_http_uploadprogress_handler(ngx_http_request_t * r)
+ ngx_http_uploadprogress_cleanup_t *upcln;
+ ngx_pool_cleanup_t *cln;
+
+- /* Is it a POST connection */
+- if (r->method != NGX_HTTP_POST) {
++ /* Only look for progress IDs on POST, PUT and PATCH */
++ if (!(r->method & (NGX_HTTP_POST | NGX_HTTP_PUT | NGX_HTTP_PATCH))) {
+ return NGX_DECLINED;
+ }
+
+@@ -852,6 +1208,8 @@ ngx_http_uploadprogress_handler(ngx_http_request_t * r)
+ up->rest = 0;
+ up->length = 0;
+ up->timeout = 0;
++ up->sequence = 0;
++ up->sent_portion = 0;
+
+ /* Properly handles small files where no read events happen after the */
+ /* request is first handled (apparently this can happen on linux with epoll) */
+@@ -859,6 +1217,8 @@ ngx_http_uploadprogress_handler(ngx_http_request_t * r)
+ up->length = r->headers_in.content_length_n;
+ if (r->request_body) {
+ up->rest = r->request_body->rest;
++ } else {
++ up->rest = up->length;
+ }
+ }
+
+@@ -1197,6 +1557,8 @@ ngx_http_uploadprogress_errortracker(ngx_http_request_t * r)
+ up->rest = 0;
+ up->length = 0;
+ up->timeout = 0;
++ up->sequence = 0;
++ up->sent_portion = 0;
+
+ ngx_memcpy(up->data, id->data, id->len);
+
+@@ -1288,6 +1650,7 @@ ngx_http_uploadprogress_create_loc_conf(ngx_conf_t * cf)
+ elt->values = NULL;
+ elt->lengths = NULL;
+ }
++ conf->udp_socket = -1;
+
+ return conf;
+ }
+@@ -1329,6 +1692,7 @@ ngx_http_uploadprogress_merge_loc_conf(ngx_conf_t * cf, void *parent, void *chil
+ }
+
+ ngx_conf_merge_str_value(conf->header, prev->header, "X-Progress-ID");
++ ngx_conf_merge_str_value(conf->header_mul, prev->header_mul, "X-ProgressMultiple-ID");
+ ngx_conf_merge_str_value(conf->jsonp_parameter, prev->jsonp_parameter, "callback");
+
+ return NGX_CONF_OK;
+@@ -1447,6 +1811,7 @@ ngx_http_track_uploads(ngx_conf_t * cf, ngx_command_t * cmd, void *conf)
+ ngx_http_core_loc_conf_t *clcf;
+ ngx_http_uploadprogress_conf_t *lzcf = conf;
+ ngx_str_t *value;
++ ngx_url_t url;
+
+ ngx_log_debug0(NGX_LOG_DEBUG_HTTP, cf->log, 0, "ngx_track_uploads in");
+
+@@ -1471,10 +1836,27 @@ ngx_http_track_uploads(ngx_conf_t * cf, ngx_command_t * cmd, void *conf)
+ lzcf->timeout = ngx_parse_time(&value[2], 1);
+ if (lzcf->timeout == NGX_ERROR) {
+ ngx_conf_log_error(NGX_LOG_EMERG, cf, 0,
+- "track_uploads \"%V\" timeout value invalid", &value[1]);
++ "track_uploads \"%V\" timeout value invalid", &value[2]);
+ return NGX_CONF_ERROR;
+ }
+
++ if(cf->args->nelts > 3)
++ {
++ ngx_memzero(&url, sizeof(ngx_url_t));
++ url.url = value[3];
++ url.default_port = 80;
++ url.no_resolve = 0;
++
++ if(ngx_parse_url(cf->pool, &url) != NGX_OK)
++ {
++ ngx_conf_log_error(NGX_LOG_EMERG, cf, 0, "Invalid graphite server %V: %s", &url.host, url.err);
++ return NGX_CONF_ERROR;
++ }
++ lzcf->progress_server = url.addrs[0];
++ if(lzcf->udp_socket == -1)
++ lzcf->udp_socket = ngx_socket(PF_INET, SOCK_DGRAM, 0);
++ }
++
+ clcf = ngx_http_conf_get_module_loc_conf(cf, ngx_http_core_module);
+ lzcf->handler = clcf->handler;
+ if ( lzcf->handler == NULL )
+@@ -1555,6 +1937,8 @@ ngx_http_upload_progress_template(ngx_conf_t * cf, ngx_command_t * cmd, void *co
+ ngx_http_uploadprogress_state_map_t *m = ngx_http_uploadprogress_state_map;
+ ngx_http_uploadprogress_template_t *t;
+
++ upcf->json_multiple = 0;
++
+ value = cf->args->elts;
+
+ while(m->name.data != NULL) {
+@@ -1584,6 +1968,8 @@ ngx_http_upload_progress_java_output(ngx_conf_t * cf, ngx_command_t * cmd, void
+ ngx_uint_t i;
+ char* rc;
+
++ upcf->json_multiple = 0;
++
+ t = (ngx_http_uploadprogress_template_t*)upcf->templates.elts;
+
+ for(i = 0;i < upcf->templates.nelts;i++) {
+@@ -1608,6 +1994,8 @@ ngx_http_upload_progress_json_output(ngx_conf_t * cf, ngx_command_t * cmd, void
+ ngx_uint_t i;
+ char* rc;
+
++ upcf->json_multiple = 0;
++
+ t = (ngx_http_uploadprogress_template_t*)upcf->templates.elts;
+
+ for(i = 0;i < upcf->templates.nelts;i++) {
+@@ -1632,6 +2020,8 @@ ngx_http_upload_progress_jsonp_output(ngx_conf_t * cf, ngx_command_t * cmd, void
+ ngx_uint_t i;
+ char* rc;
+
++ upcf->json_multiple = 0;
++
+ t = (ngx_http_uploadprogress_template_t*)upcf->templates.elts;
+
+ for(i = 0;i < upcf->templates.nelts;i++) {
+@@ -1648,6 +2038,58 @@ ngx_http_upload_progress_jsonp_output(ngx_conf_t * cf, ngx_command_t * cmd, void
+ return NGX_CONF_OK;
+ }
+
++static char*
++ngx_http_upload_progress_json_multiple_output(ngx_conf_t * cf, ngx_command_t * cmd, void *conf)
++{
++ ngx_http_uploadprogress_conf_t *upcf = conf;
++ ngx_http_uploadprogress_template_t *t;
++ ngx_uint_t i;
++ char* rc;
++
++ upcf->json_multiple = 1;
++
++ t = (ngx_http_uploadprogress_template_t*)upcf->templates.elts;
++
++ for(i = 0;i < upcf->templates.nelts;i++) {
++ rc = ngx_http_upload_progress_set_template(cf, t + i, ngx_http_uploadprogress_json_multiple_defaults + i);
++
++ if(rc != NGX_CONF_OK) {
++ return rc;
++ }
++ }
++
++ upcf->content_type.data = (u_char*)"application/json";
++ upcf->content_type.len = sizeof("application/json") - 1;
++
++ return NGX_CONF_OK;
++}
++
++static char*
++ngx_http_upload_progress_jsonp_multiple_output(ngx_conf_t * cf, ngx_command_t * cmd, void *conf)
++{
++ ngx_http_uploadprogress_conf_t *upcf = conf;
++ ngx_http_uploadprogress_template_t *t;
++ ngx_uint_t i;
++ char* rc;
++
++ upcf->json_multiple = 1;
++
++ t = (ngx_http_uploadprogress_template_t*)upcf->templates.elts;
++
++ for(i = 0;i < upcf->templates.nelts;i++) {
++ rc = ngx_http_upload_progress_set_template(cf, t + i, ngx_http_uploadprogress_jsonp_multiple_defaults + i);
++
++ if(rc != NGX_CONF_OK) {
++ return rc;
++ }
++ }
++
++ upcf->content_type.data = (u_char*)"application/json";
++ upcf->content_type.len = sizeof("application/json") - 1;
++
++ return NGX_CONF_OK;
++}
++
+ static ngx_int_t ngx_http_uploadprogress_received_variable(ngx_http_request_t *r,
+ ngx_http_variable_value_t *v, uintptr_t data)
+ {
+@@ -1724,6 +2166,30 @@ ngx_http_uploadprogress_status_variable(ngx_http_request_t *r,
+ return NGX_OK;
+ }
+
++static ngx_int_t
++ngx_http_uploadprogress_id_variable(ngx_http_request_t *r,
++ ngx_http_variable_value_t *v, uintptr_t data)
++{
++ ngx_http_uploadprogress_node_t *up;
++ u_char *p;
++
++ up = ngx_http_get_module_ctx(r, ngx_http_uploadprogress_module);
++
++ p = ngx_palloc(r->pool, up->len);
++ if (p == NULL) {
++ return NGX_ERROR;
++ }
++
++ v->len = up->len;
++ v->data = p;
++ ngx_memcpy(v->data, up->data, up->len);
++ v->valid = 1;
++ v->no_cacheable = 0;
++ v->not_found = 0;
++
++ return NGX_OK;
++}
++
+ static ngx_int_t
+ ngx_http_uploadprogress_callback_variable(ngx_http_request_t *r,
+ ngx_http_variable_value_t *v, uintptr_t data)
diff --git a/main/nginx/nginx.conf b/main/nginx/nginx.conf
index bc784a31879..89fa9854bf6 100644
--- a/main/nginx/nginx.conf
+++ b/main/nginx/nginx.conf
@@ -14,9 +14,8 @@ error_log /var/log/nginx/error.log warn;
# Includes files with directives to load dynamic modules.
include /etc/nginx/modules/*.conf;
-# Uncomment to include files with config snippets into the root context.
-# NOTE: This will be enabled by default in Alpine 3.15.
-#include /etc/nginx/conf.d/*.conf;
+# Include files with config snippets into the root context.
+include /etc/nginx/conf.d/*.conf;
events {
# The maximum number of simultaneous connections that can be opened by
@@ -32,7 +31,7 @@ http {
# Name servers used to resolve names of upstream servers into addresses.
# It's also needed when using tcpsocket and udpsocket in Lua modules.
- #resolver 1.1.1.1 1.0.0.1 2606:4700:4700::1111 2606:4700:4700::1001;
+ #resolver 1.1.1.1 1.0.0.1 [2606:4700:4700::1111] [2606:4700:4700::1001];
# Don't tell nginx version to the clients. Default is 'on'.
server_tokens off;
@@ -102,6 +101,3 @@ http {
# Includes virtual hosts configs.
include /etc/nginx/http.d/*.conf;
}
-
-# TIP: Uncomment if you use stream module.
-#include /etc/nginx/stream.conf;
diff --git a/main/nginx/nginx.post-upgrade b/main/nginx/nginx.post-upgrade
index 58e8e1baed6..3062f98223f 100644
--- a/main/nginx/nginx.post-upgrade
+++ b/main/nginx/nginx.post-upgrade
@@ -22,38 +22,25 @@ fi
# Handle transition from /etc/nginx/conf.d to /etc/nginx/http.d.
if [ "$(apk version -t "$ver_old" '1.18.0-r13')" = '<' ]; then
- default_conf='/usr/share/nginx/http-default_server.conf'
-
- if [ -z "$(ls -A /etc/nginx/conf.d 2>/dev/null)" ]; then
- # conf.d dir doesn't exist or is empty, so the user doesn't use it.
- # Thus we can install default.conf to the new directory.
- install -m644 "$default_conf" /etc/nginx/http.d/default.conf
-
- else
- if ! [ -e /etc/nginx/conf.d/default.conf ]; then
- # conf.d dir exists and is not empty, but there's no default.conf
- # file, so the user probably did not modify it and apk has removed
- # it during this upgrade. Prior this version, the default.conf
- # would be installed, so install it now for backward compatibility.
- install -m644 "$default_conf" /etc/nginx/conf.d/default.conf
- fi
- if ! [ -e /etc/nginx/nginx.conf.apk-new ]; then
- # There's no updated nginx.conf, so the user didn't modify this
- # config and apk replaced it during this upgrade. However, the
- # user has some vhost configs in the old directory, so we have
- # to revert the include back to the legacy path.
- sed -i 's|include /etc/nginx/http\.d|# WARNING: Do not use this directory for virtual hosts anymore, use directory http.d!\n\tinclude /etc/nginx/conf.d|' \
- /etc/nginx/nginx.conf
- fi
+ if ! [ -e /etc/nginx/http.d/default.conf ]; then
+ install -D -m644 /usr/share/nginx/http-default_server.conf \
+ /etc/nginx/http.d/default.conf
fi
+fi
- cat >&2 <<-EOF
- *
- * The default and preferred location for nginx vhost configs has been changed
- * from /etc/nginx/conf.d to /etc/nginx/http.d. Although we did our best to not
- * break existing setups by this upgrade, we strongly recommend to verify it.
- *
- EOF
+# Handle transition from /etc/nginx/conf.d to /etc/nginx/http.d.
+if [ "$(apk version -t "$ver_old" '1.22.0-r7')" = '<' ]; then
+ if sed -En '/^http\s*\{/,/^\}/{ /^\s*include\s+\/etc\/nginx\/conf.d\/.*;/p }' /etc/nginx/nginx.conf | grep -q .; then
+ cat >&2 <<-EOF
+ !!
+ !! Found 'include /etc/nginx/conf.d/*.conf' in the 'http' section!
+ !! The default and preferred location for nginx http configs has been changed
+ !! from /etc/nginx/conf.d to /etc/nginx/http.d. The former is now used for
+ !! configs to be included in the root context. Move your vhost configs from
+ !! /etc/nginx/conf.d/ to /etc/nginx/http.d/ and update /etc/nginx/nginx.conf.
+ !!
+ EOF
+ fi
fi
# Handle trasition from /var/tmp/nginx to /var/lib/nginx/tmp
diff --git a/main/nginx/ngx-fancyindex~fix-404-on-fs-root.patch b/main/nginx/ngx-fancyindex~fix-404-on-fs-root.patch
new file mode 100644
index 00000000000..1c0df2bf257
--- /dev/null
+++ b/main/nginx/ngx-fancyindex~fix-404-on-fs-root.patch
@@ -0,0 +1,27 @@
+Patch-Source: https://github.com/aperezdc/ngx-fancyindex/commit/83bef5c8a633ebbf96576eeb596a972a5816e057
+--
+From 83bef5c8a633ebbf96576eeb596a972a5816e057 Mon Sep 17 00:00:00 2001
+From: Ryan Schmidt <git@ryandesign.com>
+Date: Fri, 13 May 2022 00:16:09 -0500
+Subject: [PATCH] Fix 404 not found when indexing filesystem root
+
+Backport of https://github.com/nginx/nginx/commit/4c89c09ad8e574509446efab0347b124372bc53a
+
+Fixes #107
+
+diff --git a/ngx_http_fancyindex_module.c b/ngx_http_fancyindex_module.c
+index e6928dd..dd721d0 100644
+--- a/ngx_http_fancyindex_module.c
++++ b/ngx_http_fancyindex_module.c
+@@ -684,7 +684,10 @@ make_content_buf(
+ return NGX_HTTP_INTERNAL_SERVER_ERROR;
+
+ allocated = path.len;
+- path.len = last - path.data - 1;
++ path.len = last - path.data;
++ if (path.len > 1) {
++ path.len--;
++ }
+ path.data[path.len] = '\0';
+
+ ngx_log_debug1(NGX_LOG_DEBUG_HTTP, r->connection->log, 0,
diff --git a/main/nginx/ngx-fancyindex~fix-missing-saturday.patch b/main/nginx/ngx-fancyindex~fix-missing-saturday.patch
new file mode 100644
index 00000000000..b34f3e5d361
--- /dev/null
+++ b/main/nginx/ngx-fancyindex~fix-missing-saturday.patch
@@ -0,0 +1,25 @@
+Patch-Source: https://github.com/aperezdc/ngx-fancyindex/commit/674e99547d21b8bd9a36dc5d8689d08632d3a34d
+--
+From 674e99547d21b8bd9a36dc5d8689d08632d3a34d Mon Sep 17 00:00:00 2001
+From: Adrian Perez de Castro <aperez@igalia.com>
+Date: Thu, 19 Jan 2023 20:51:08 +0200
+Subject: [PATCH] Add missing entry in long weekday names array
+
+The entry for Saturday was missing, as pointed out in the bug report.
+While at it, add a test case.
+
+Fixes #157
+
+diff --git a/ngx_http_fancyindex_module.c b/ngx_http_fancyindex_module.c
+index bfccdc8..ed349d5 100644
+--- a/ngx_http_fancyindex_module.c
++++ b/ngx_http_fancyindex_module.c
+@@ -37,7 +37,7 @@ static const char *short_weekday[] = {
+ "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun",
+ };
+ static const char *long_weekday[] = {
+- "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Sunday",
++ "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday",
+ };
+ static const char *short_month[] = {
+ "Jan", "Feb", "Mar", "Apr", "May", "Jun",
diff --git a/main/nginx/njs~nginx-1.20.x-compat.patch b/main/nginx/njs~nginx-1.20.x-compat.patch
deleted file mode 100644
index c24a12a59b0..00000000000
--- a/main/nginx/njs~nginx-1.20.x-compat.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Fix compatibility with nginx 1.20.x.
-
-See-Also: https://github.com/nginx/njs/issues/18
-
---- a/nginx/config.make
-+++ b/nginx/config.make
-@@ -3,7 +3,7 @@
- $ngx_addon_dir/../build/libnjs.a: $NGX_MAKEFILE
- cd $ngx_addon_dir/.. \\
- && if [ -f build/Makefile ]; then \$(MAKE) clean; fi \\
-- && CFLAGS="\$(CFLAGS)" CC="\$(CC)" ./configure --no-openssl --no-pcre \\
-+ && CFLAGS="\$(CFLAGS)" CC="\$(CC)" ./configure \\
- && \$(MAKE) libnjs
-
- END
diff --git a/main/nginx/no-werror.patch b/main/nginx/no-werror.patch
new file mode 100644
index 00000000000..58ab7f48537
--- /dev/null
+++ b/main/nginx/no-werror.patch
@@ -0,0 +1,11 @@
+--- a/auto/cc/gcc
++++ b/auto/cc/gcc
+@@ -166,7 +166,7 @@
+
+
+ # stop on warning
+-CFLAGS="$CFLAGS -Werror"
++CFLAGS="$CFLAGS"
+
+ # debug
+ CFLAGS="$CFLAGS -g"
diff --git a/main/nginx/stream.conf b/main/nginx/stream.conf
index 24387445497..4b7177de0c3 100644
--- a/main/nginx/stream.conf
+++ b/main/nginx/stream.conf
@@ -1,4 +1,4 @@
-# /etc/nginx/stream.conf
+# /etc/nginx/conf.d/stream.conf
stream {
# Specifies the main log format.
diff --git a/main/nginx/traffic-accounting-nginx-module~fix-memory-leak.patch b/main/nginx/traffic-accounting-nginx-module~fix-memory-leak.patch
new file mode 100644
index 00000000000..4822d25b656
--- /dev/null
+++ b/main/nginx/traffic-accounting-nginx-module~fix-memory-leak.patch
@@ -0,0 +1,253 @@
+Patch-Source: https://github.com/Lax/traffic-accounting-nginx-module/commit/900fceedcb00a840510d547a5b1e135b4f340745
+Patch-Source: https://github.com/Lax/traffic-accounting-nginx-module/commit/c0667a81a3ab3f62f30e9051179dc705261ec556
+--
+From 900fceedcb00a840510d547a5b1e135b4f340745 Mon Sep 17 00:00:00 2001
+From: Tony Liu <Tony.Liu@harmonicinc.com>
+Date: Thu, 19 Aug 2021 08:03:47 +0000
+Subject: [PATCH] use ngx_calloc to replace ngx_pcalloc to avoid memory leak
+ https://github.com/Lax/traffic-accounting-nginx-module/issues/53
+
+---
+ src/http/ngx_http_accounting_module.c | 8 +++----
+ src/ngx_traffic_accounting.h | 8 +++----
+ src/ngx_traffic_accounting_module.c | 11 +++++-----
+ src/ngx_traffic_accounting_module.h | 4 ++--
+ src/ngx_traffic_accounting_period_metrics.c | 24 ++++++++++-----------
+ src/stream/ngx_stream_accounting_module.c | 8 +++----
+ 6 files changed, 30 insertions(+), 33 deletions(-)
+
+diff --git a/src/http/ngx_http_accounting_module.c b/src/http/ngx_http_accounting_module.c
+index 63eccf0..23a5fc3 100644
+--- a/src/http/ngx_http_accounting_module.c
++++ b/src/http/ngx_http_accounting_module.c
+@@ -139,7 +139,7 @@ ngx_http_accounting_process_init(ngx_cycle_t *cycle)
+ }
+
+ if (amcf->current == NULL) {
+- if (ngx_traffic_accounting_period_create(cycle->pool, amcf) != NGX_OK)
++ if (ngx_traffic_accounting_period_create(amcf) != NGX_OK)
+ return NGX_ERROR;
+ }
+
+@@ -206,7 +206,7 @@ worker_process_alarm_handler(ngx_event_t *ev)
+
+ amcf = ngx_http_cycle_get_module_main_conf(ngx_cycle, ngx_http_accounting_module);
+
+- ngx_traffic_accounting_period_rotate(amcf->current->pool, amcf);
++ ngx_traffic_accounting_period_rotate(amcf);
+ ngx_traffic_accounting_period_rbtree_iterate(amcf->previous,
+ worker_process_export_metrics,
+ amcf->previous->created_at,
+@@ -243,10 +243,10 @@ ngx_http_accounting_request_handler(ngx_http_request_t *r)
+
+ amcf = ngx_http_get_module_main_conf(r, ngx_http_accounting_module);
+
+- metrics = ngx_traffic_accounting_period_fetch_metrics(amcf->current, accounting_id);
++ metrics = ngx_traffic_accounting_period_fetch_metrics(amcf->current, accounting_id, amcf->log);
+ if (metrics == NULL) { return NGX_ERROR; }
+
+- if (ngx_traffic_accounting_metrics_init(metrics, amcf->current->pool, ngx_http_statuses_len) == NGX_ERROR)
++ if (ngx_traffic_accounting_metrics_init(metrics, ngx_http_statuses_len, amcf->log) == NGX_ERROR)
+ return NGX_ERROR;
+
+ amcf->current->updated_at = ngx_timeofday();
+diff --git a/src/ngx_traffic_accounting.h b/src/ngx_traffic_accounting.h
+index 1812927..462becf 100644
+--- a/src/ngx_traffic_accounting.h
++++ b/src/ngx_traffic_accounting.h
+@@ -38,21 +38,19 @@ typedef struct {
+ ngx_rbtree_t rbtree;
+ ngx_rbtree_node_t sentinel;
+
+- ngx_pool_t *pool;
+-
+ ngx_time_t *created_at;
+ ngx_time_t *updated_at;
+ } ngx_traffic_accounting_period_t;
+
+-ngx_int_t ngx_traffic_accounting_metrics_init(ngx_traffic_accounting_metrics_t *metrics, ngx_pool_t *pool, size_t len);
++ngx_int_t ngx_traffic_accounting_metrics_init(ngx_traffic_accounting_metrics_t *metrics, size_t len, ngx_log_t *log);
+
+ ngx_int_t ngx_traffic_accounting_period_init(ngx_traffic_accounting_period_t *period);
+-void ngx_traffic_accounting_period_insert(ngx_traffic_accounting_period_t *period, ngx_str_t *name);
++void ngx_traffic_accounting_period_insert(ngx_traffic_accounting_period_t *period, ngx_str_t *name, ngx_log_t *log);
+ void ngx_traffic_accounting_period_insert_metrics(ngx_traffic_accounting_period_t *period, ngx_traffic_accounting_metrics_t *metrics);
+ void ngx_traffic_accounting_period_delete(ngx_traffic_accounting_period_t *period, ngx_str_t *name);
+ void ngx_traffic_accounting_period_delete_metrics(ngx_traffic_accounting_period_t *period, ngx_traffic_accounting_metrics_t *metrics);
+ ngx_traffic_accounting_metrics_t * ngx_traffic_accounting_period_lookup_metrics(ngx_traffic_accounting_period_t *period, ngx_str_t *name);
+-ngx_traffic_accounting_metrics_t * ngx_traffic_accounting_period_fetch_metrics(ngx_traffic_accounting_period_t *period, ngx_str_t *name);
++ngx_traffic_accounting_metrics_t * ngx_traffic_accounting_period_fetch_metrics(ngx_traffic_accounting_period_t *period, ngx_str_t *name, ngx_log_t *log);
+
+ typedef ngx_int_t (*ngx_traffic_accounting_period_iterate_func)(void *val, void *para1, void *para2);
+
+diff --git a/src/ngx_traffic_accounting_module.c b/src/ngx_traffic_accounting_module.c
+index ebc877a..2291db7 100644
+--- a/src/ngx_traffic_accounting_module.c
++++ b/src/ngx_traffic_accounting_module.c
+@@ -9,15 +9,14 @@
+
+
+ ngx_int_t
+-ngx_traffic_accounting_period_create(ngx_pool_t *pool, ngx_traffic_accounting_main_conf_t *amcf)
++ngx_traffic_accounting_period_create(ngx_traffic_accounting_main_conf_t *amcf)
+ {
+ ngx_traffic_accounting_period_t *period;
+
+- period = ngx_pcalloc(pool, sizeof(ngx_traffic_accounting_period_t));
++ period = ngx_calloc(sizeof(ngx_traffic_accounting_period_t), amcf->log);
+ if (period == NULL)
+ return NGX_ERROR;
+
+- period->pool = pool;
+ ngx_traffic_accounting_period_init(period);
+
+ period->created_at = ngx_timeofday();
+@@ -28,11 +27,11 @@ ngx_traffic_accounting_period_create(ngx_pool_t *pool, ngx_traffic_accounting_ma
+ }
+
+ ngx_int_t
+-ngx_traffic_accounting_period_rotate(ngx_pool_t *pool, ngx_traffic_accounting_main_conf_t *amcf)
++ngx_traffic_accounting_period_rotate(ngx_traffic_accounting_main_conf_t *amcf)
+ {
+- ngx_pfree(pool, amcf->previous);
++ ngx_free(amcf->previous);
+
+ amcf->previous = amcf->current;
+
+- return ngx_traffic_accounting_period_create(pool, amcf);
++ return ngx_traffic_accounting_period_create(amcf);
+ }
+diff --git a/src/ngx_traffic_accounting_module.h b/src/ngx_traffic_accounting_module.h
+index 08881f1..adfccec 100644
+--- a/src/ngx_traffic_accounting_module.h
++++ b/src/ngx_traffic_accounting_module.h
+@@ -46,8 +46,8 @@ ngx_str_t * ngx_traffic_accounting_get_accounting_id(void *entry, ngx_get_loc_co
+ ngx_get_indexed_variable_pt get_indexed_variable);
+
+
+-ngx_int_t ngx_traffic_accounting_period_create(ngx_pool_t *pool, ngx_traffic_accounting_main_conf_t *amcf);
+-ngx_int_t ngx_traffic_accounting_period_rotate(ngx_pool_t *pool, ngx_traffic_accounting_main_conf_t *amcf);
++ngx_int_t ngx_traffic_accounting_period_create(ngx_traffic_accounting_main_conf_t *amcf);
++ngx_int_t ngx_traffic_accounting_period_rotate(ngx_traffic_accounting_main_conf_t *amcf);
+
+
+ #endif /* _NGX_TRAFFIC_ACCOUNTING_MODULE_H_INCLUDED_ */
+diff --git a/src/ngx_traffic_accounting_period_metrics.c b/src/ngx_traffic_accounting_period_metrics.c
+index b6b7055..302bd84 100644
+--- a/src/ngx_traffic_accounting_period_metrics.c
++++ b/src/ngx_traffic_accounting_period_metrics.c
+@@ -10,17 +10,17 @@
+ static void ngx_traffic_accounting_period_insert_value(ngx_rbtree_node_t *temp, ngx_rbtree_node_t *node, ngx_rbtree_node_t *sentinel);
+
+ ngx_int_t
+-ngx_traffic_accounting_metrics_init(ngx_traffic_accounting_metrics_t *metrics, ngx_pool_t *pool, size_t len)
++ngx_traffic_accounting_metrics_init(ngx_traffic_accounting_metrics_t *metrics, size_t len, ngx_log_t *log)
+ {
+ if (metrics->nr_status == NULL) {
+- metrics->nr_status = ngx_pcalloc(pool, sizeof(ngx_uint_t) * len);
++ metrics->nr_status = ngx_calloc(sizeof(ngx_uint_t) * len, log);
+
+ if (metrics->nr_status == NULL)
+ return NGX_ERROR;
+ }
+
+ if (metrics->nr_upstream_status == NULL) {
+- metrics->nr_upstream_status = ngx_pcalloc(pool, sizeof(ngx_uint_t) * len);
++ metrics->nr_upstream_status = ngx_calloc(sizeof(ngx_uint_t) * len, log);
+
+ if (metrics->nr_upstream_status == NULL)
+ return NGX_ERROR;
+@@ -39,14 +39,14 @@ ngx_traffic_accounting_period_init(ngx_traffic_accounting_period_t *period)
+ }
+
+ void
+-ngx_traffic_accounting_period_insert(ngx_traffic_accounting_period_t *period, ngx_str_t *name)
++ngx_traffic_accounting_period_insert(ngx_traffic_accounting_period_t *period, ngx_str_t *name, ngx_log_t *log)
+ {
+ ngx_traffic_accounting_metrics_t *metrics;
+
+- metrics = ngx_pcalloc(period->pool, sizeof(ngx_traffic_accounting_metrics_t));
++ metrics = ngx_calloc(sizeof(ngx_traffic_accounting_metrics_t), log);
+
+ void *data;
+- data = ngx_pcalloc(period->pool, name->len+1);
++ data = ngx_calloc(name->len+1, log);
+ ngx_memcpy(data, name->data, name->len);
+
+ metrics->name.data = data;
+@@ -82,7 +82,7 @@ void
+ ngx_traffic_accounting_period_delete_metrics(ngx_traffic_accounting_period_t *period, ngx_traffic_accounting_metrics_t *metrics)
+ {
+ ngx_rbtree_delete(&period->rbtree, &metrics->rbnode);
+- ngx_pfree(period->pool, metrics);
++ ngx_free(metrics);
+ }
+
+ ngx_traffic_accounting_metrics_t *
+@@ -124,7 +124,7 @@ ngx_traffic_accounting_period_lookup_metrics(ngx_traffic_accounting_period_t *pe
+ }
+
+ ngx_traffic_accounting_metrics_t *
+-ngx_traffic_accounting_period_fetch_metrics(ngx_traffic_accounting_period_t *period, ngx_str_t *name)
++ngx_traffic_accounting_period_fetch_metrics(ngx_traffic_accounting_period_t *period, ngx_str_t *name, ngx_log_t *log)
+ {
+ ngx_traffic_accounting_metrics_t *n;
+
+@@ -132,7 +132,7 @@ ngx_traffic_accounting_period_fetch_metrics(ngx_traffic_accounting_period_t *per
+ if (n != NULL)
+ return n;
+
+- ngx_traffic_accounting_period_insert(period, name);
++ ngx_traffic_accounting_period_insert(period, name, log);
+
+ return ngx_traffic_accounting_period_lookup_metrics(period, name);
+ }
+@@ -158,9 +158,10 @@ ngx_traffic_accounting_period_rbtree_iterate(ngx_traffic_accounting_period_t *pe
+ if (rc == NGX_DONE) {
+ /* NGX_DONE -> destroy node */
+ ngx_rbtree_delete(rbtree, node);
+- ngx_pfree(period->pool, n->nr_status);
+- ngx_pfree(period->pool, n->nr_upstream_status);
+- ngx_pfree(period->pool, n);
++ ngx_free(n->nr_status);
++ ngx_free(n->nr_upstream_status);
++ ngx_free(n->name.data);
++ ngx_free(n);
+
+ goto done;
+ }
+diff --git a/src/stream/ngx_stream_accounting_module.c b/src/stream/ngx_stream_accounting_module.c
+index b1839d1..3db787d 100644
+--- a/src/stream/ngx_stream_accounting_module.c
++++ b/src/stream/ngx_stream_accounting_module.c
+@@ -136,7 +136,7 @@ ngx_stream_accounting_process_init(ngx_cycle_t *cycle)
+ }
+
+ if (amcf->current == NULL) {
+- if (ngx_traffic_accounting_period_create(cycle->pool, amcf) != NGX_OK)
++ if (ngx_traffic_accounting_period_create(amcf) != NGX_OK)
+ return NGX_ERROR;
+ }
+
+@@ -203,7 +203,7 @@ worker_process_alarm_handler(ngx_event_t *ev)
+
+ amcf = ngx_stream_cycle_get_module_main_conf(ngx_cycle, ngx_stream_accounting_module);
+
+- ngx_traffic_accounting_period_rotate(amcf->current->pool, amcf);
++ ngx_traffic_accounting_period_rotate(amcf);
+ ngx_traffic_accounting_period_rbtree_iterate(amcf->previous,
+ worker_process_export_metrics,
+ amcf->previous->created_at,
+@@ -240,10 +240,10 @@ ngx_stream_accounting_session_handler(ngx_stream_session_t *s)
+
+ amcf = ngx_stream_get_module_main_conf(s, ngx_stream_accounting_module);
+
+- metrics = ngx_traffic_accounting_period_fetch_metrics(amcf->current, accounting_id);
++ metrics = ngx_traffic_accounting_period_fetch_metrics(amcf->current, accounting_id, amcf->log);
+ if (metrics == NULL) { return NGX_ERROR; }
+
+- if (ngx_traffic_accounting_metrics_init(metrics, amcf->current->pool, ngx_stream_statuses_len) == NGX_ERROR)
++ if (ngx_traffic_accounting_metrics_init(metrics, ngx_stream_statuses_len, amcf->log) == NGX_ERROR)
+ return NGX_ERROR;
+
+ amcf->current->updated_at = ngx_timeofday();
diff --git a/main/nginx/zstd-nginx-module~fix-infinite-loop.patch b/main/nginx/zstd-nginx-module~fix-infinite-loop.patch
new file mode 100644
index 00000000000..7f71271681a
--- /dev/null
+++ b/main/nginx/zstd-nginx-module~fix-infinite-loop.patch
@@ -0,0 +1,47 @@
+patch-source: https://github.com/tokers/zstd-nginx-module/pull/23
+
+From 7f86e5bbd7711b216688c418ffe2a64c9b25f319 Mon Sep 17 00:00:00 2001
+From: drawing <cppbreak@qq.com>
+Date: Mon, 12 Jun 2023 14:37:00 +0800
+Subject: [PATCH] bugfix: fix zstd module infinite loop when upstream return
+ content-length abnormal
+
+---
+ filter/ngx_http_zstd_filter_module.c | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/filter/ngx_http_zstd_filter_module.c b/filter/ngx_http_zstd_filter_module.c
+index d5784ba..cea386f 100644
+--- a/filter/ngx_http_zstd_filter_module.c
++++ b/filter/ngx_http_zstd_filter_module.c
+@@ -440,6 +440,8 @@ ngx_http_zstd_filter_compress(ngx_http_request_t *r, ngx_http_zstd_ctx_t *ctx)
+ ctx->out_buf->last += ctx->buffer_out.pos - pos_out;
+ ctx->redo = 0;
+
++ unsigned last_action = ctx->action;
++
+ if (rc > 0) {
+ if (ctx->action == NGX_HTTP_ZSTD_FILTER_COMPRESS) {
+ ctx->action = NGX_HTTP_ZSTD_FILTER_FLUSH;
+@@ -459,7 +461,7 @@ ngx_http_zstd_filter_compress(ngx_http_request_t *r, ngx_http_zstd_ctx_t *ctx)
+ ctx->action = NGX_HTTP_ZSTD_FILTER_COMPRESS; /* restore */
+ }
+
+- if (ngx_buf_size(ctx->out_buf) == 0) {
++ if (ngx_buf_size(ctx->out_buf) == 0 && last_action != NGX_HTTP_ZSTD_FILTER_FLUSH) {
+ return NGX_AGAIN;
+ }
+
+@@ -469,6 +471,12 @@ ngx_http_zstd_filter_compress(ngx_http_request_t *r, ngx_http_zstd_ctx_t *ctx)
+ }
+
+ b = ctx->out_buf;
++ if (ngx_buf_size(b) == 0) {
++ b = ngx_calloc_buf(ctx->request->pool);
++ if (b == NULL) {
++ return NGX_ERROR;
++ }
++ }
+
+ if (rc == 0 && (ctx->flush || ctx->last)) {
+ r->connection->buffered &= ~NGX_HTTP_GZIP_BUFFERED;
diff --git a/main/ngircd/APKBUILD b/main/ngircd/APKBUILD
index 321b713f5ee..6f08fbdcd05 100644
--- a/main/ngircd/APKBUILD
+++ b/main/ngircd/APKBUILD
@@ -2,17 +2,18 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=ngircd
pkgver=26.1
-pkgrel=2
+pkgrel=4
pkgdesc="Next Generation IRC Daemon"
url="https://ngircd.barton.de/"
arch="all"
license="GPL-2.0-or-later"
-makedepends="openssl1.1-compat-dev zlib-dev linux-pam-dev"
+makedepends="openssl-dev>3 zlib-dev linux-pam-dev"
subpackages="$pkgname-doc $pkgname-openrc"
install="$pkgname.pre-install"
source="https://ngircd.barton.de/pub/ngircd/ngircd-$pkgver.tar.xz
$pkgname.initd
"
+options="!check"
# secfixes:
# 25-r1:
diff --git a/main/ngrep/APKBUILD b/main/ngrep/APKBUILD
index 2e8d5eba5ac..c256a49c3b1 100644
--- a/main/ngrep/APKBUILD
+++ b/main/ngrep/APKBUILD
@@ -3,9 +3,9 @@
pkgname=ngrep
pkgver=1.47
_pkgver="${pkgver/./_}"
-pkgrel=1
+pkgrel=3
pkgdesc="A grep-like utility that allows you to search for network packets on an interface"
-url="http://ngrep.sourceforge.net/"
+url="https://ngrep.sourceforge.net/"
arch="all"
license="custom"
makedepends="autoconf automake libpcap-dev pcre-dev"
diff --git a/main/ngtcp2/APKBUILD b/main/ngtcp2/APKBUILD
new file mode 100644
index 00000000000..dfc48725110
--- /dev/null
+++ b/main/ngtcp2/APKBUILD
@@ -0,0 +1,69 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=ngtcp2
+pkgver=1.4.0
+pkgrel=0
+pkgdesc="Implementation of IETF QUIC protocol"
+url="https://nghttp2.org/ngtcp2/"
+arch="all"
+license="MIT"
+makedepends="
+ cmake
+ gnutls-dev
+ samurai
+ "
+checkdepends="cunit-dev"
+subpackages="
+ $pkgname-dev
+ $pkgname-gnutls
+ "
+source="https://github.com/ngtcp2/ngtcp2/releases/download/v$pkgver/ngtcp2-$pkgver.tar.xz"
+
+build() {
+ # Build static library separately w/o LTO for compatibility with non-gcc
+ # and minimal size.
+ _build build-static -DENABLE_SHARED_LIB=OFF
+
+ # NOTE: -DINTERPROCEDURAL_OPTIMIZATION=ON doesn't work here.
+ export CFLAGS="$CFLAGS -flto=auto"
+ _build build-shared -DENABLE_STATIC_LIB=OFF
+}
+
+_build() {
+ local outdir="$1"; shift
+
+ local crossopts=
+ [ "$CBUILD" != "$CHOST" ] \
+ && crossopts="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+
+ cmake -B "$outdir" -G Ninja \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_VERBOSE_MAKEFILE=ON \
+ -DENABLE_GNUTLS=ON \
+ $crossopts \
+ "$@"
+ cmake --build "$outdir"
+}
+
+check() {
+ cmake --build build-shared -t check
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build-static
+ DESTDIR="$pkgdir" cmake --install build-shared
+
+ rm -rf "$pkgdir"/usr/share/doc
+}
+
+gnutls() {
+ pkgdesc="$pkgdesc - GnuTLS backend"
+ depends="$pkgname=$pkgver-r$pkgrel"
+
+ amove usr/lib/libngtcp2_crypto_gnutls.so*
+}
+
+sha512sums="
+6491f158cd3bd659d593810935ceedefea8ee4a77e0a1952c0300f83188d0af1ef8313b24f9dbd3e7a795b6ad9099d2681b70ff1bafd92eed429ee028b2f2dea ngtcp2-1.4.0.tar.xz
+"
diff --git a/main/nikto/APKBUILD b/main/nikto/APKBUILD
deleted file mode 100644
index 711226779f5..00000000000
--- a/main/nikto/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Contributor: Fabio Aires <fabioaires.web@gmail.com>
-# Maintainer: Fabio Aires <fabioaires.web@gmail.com>
-pkgname=nikto
-pkgver=2.1.6
-pkgrel=2
-pkgdesc="A web application security scanner"
-url="https://www.cirt.net/Nikto2"
-arch="noarch"
-license="GPL-2.0"
-options="!check" # No test suite
-depends="perl nmap openssl"
-source="$pkgname-$pkgver.tar.gz::https://github.com/sullo/nikto/archive/$pkgver.tar.gz
- nikto.conf.base
- CVE-2018-11652.patch"
-builddir="$srcdir/$pkgname-$pkgver/program"
-
-# secfixes:
-# 2.1.6-r2:
-# - CVE-2018-11652
-
-build() {
- cd "$builddir"
- return 0
-}
-
-package() {
- cd "$builddir"
- mkdir -p "$pkgdir"/etc/nikto "$pkgdir"/usr/bin
- cp "$srcdir"/nikto.conf.base "$pkgdir"/etc/nikto.conf
- cp -r databases "$pkgdir"/etc/nikto
- cp -r templates "$pkgdir"/etc/nikto
- cp -r plugins "$pkgdir"/etc/nikto
- cp -r docs "$pkgdir"/etc/nikto
- install -m 755 nikto.pl "$pkgdir"/usr/bin
-}
-
-sha512sums="
-13632018ef6862de7dc53c674d7266fcfb7e164bcf3070327c103cbf8737720ffb710ccc8949acc920a6e0a85da1bb7575d073ee245bc2ba3a8a292ad1695e69 nikto-2.1.6.tar.gz
-d6e349bd20428e45d6ef49db91630e1c6d65d4cf2107a1f4c58e697d8fceeb428fb90c247fbbf8a8ad6f9d27672790d07040079b94c2480dd77dc445fccd6f69 nikto.conf.base
-c8be4198d6112f7cdcf21ca9a11baff39c0e7f6f63ff364b6bece8362beb4d1393ba0ed1f88ed9273fcf6bad7f8c81e46d73566cb56f0ee017898ddef799cae0 CVE-2018-11652.patch
-"
diff --git a/main/nikto/CVE-2018-11652.patch b/main/nikto/CVE-2018-11652.patch
deleted file mode 100644
index b6d561798e9..00000000000
--- a/main/nikto/CVE-2018-11652.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From e759b3300aace5314fe3d30800c8bd83c81c29f7 Mon Sep 17 00:00:00 2001
-From: sullo <sullo@cirt.net>
-Date: Thu, 31 May 2018 23:30:03 -0400
-Subject: [PATCH] Fix CSV injection issue if server responds with a malicious
- Server string & CSV output is opened in Excel or other spreadsheet app.
- Potentially malicious cell start characters are now prefaced with a ' mark.
- Thanks to Adam (@bytesoverbombs) for letting me know!
-
-Also fixed a crash in the outdated plugin if the $sepr field ends up being something that triggers a panic in split().
----
- program/plugins/nikto_outdated.plugin | 2 +-
- program/plugins/nikto_report_csv.plugin | 41 +++++++++++++++----------
- 2 files changed, 26 insertions(+), 17 deletions(-)
-
-diff --git a/program/plugins/nikto_outdated.plugin b/program/plugins/nikto_outdated.plugin
-index 219505ce..08562c5d 100644
---- program/plugins/nikto_outdated.plugin
-+++ program/plugins/nikto_outdated.plugin
-@@ -88,7 +88,7 @@ sub nikto_outdated {
- $sepr = substr($sepr, (length($sepr) - 1), 1);
-
- # break up ID string on $sepr
-- my @T = split(/$sepr/, $mark->{'banner'});
-+ my @T = split(/\\$sepr/, $mark->{'banner'});
-
- # assume last is version...
- for ($i = 0 ; $i < $#T ; $i++) { $MATCHSTRING .= "$T[$i] "; }
-diff --git a/program/plugins/nikto_report_csv.plugin b/program/plugins/nikto_report_csv.plugin
-index ce65cfef..76bdb3fd 100644
---- program/plugins/nikto_report_csv.plugin
-+++ program/plugins/nikto_report_csv.plugin
-@@ -53,10 +53,11 @@ sub csv_host_start {
- my ($handle, $mark) = @_;
- $mark->{'banner'} =~ s/"/\\"/g;
- my $hostname = $mark->{'vhost'} ? $mark->{'vhost'} : $mark->{'hostname'};
-- print $handle "\"$hostname\","
-- . "\"$mark->{'ip'}\","
-- . "\"$mark->{'port'}\"," . "\"\"," . "\"\"," . "\"\","
-- . "\"$mark->{'banner'}\"\n";
-+ print $handle "\"" . csv_safecell($hostname) . "\","
-+ . "\"" . csv_safecell($mark->{'ip'}) . "\","
-+ . "\"" . csv_safecell($mark->{'port'}) . "\"," . "\"\"," . "\"\"," . "\"\","
-+ #. "\"" . $mark->{'banner'} . "\"\n";
-+ . "\"" . csv_safecell($mark->{'banner'}) . "\"\n";
- return;
- }
-
-@@ -67,33 +68,41 @@ sub csv_item {
- foreach my $uri (split(' ', $item->{'uri'})) {
- my $line = '';
- my $hostname = $item->{'mark'}->{'vhost'} ? $item->{'mark'}->{'vhost'} : $item->{'mark'}->{'hostname'};
-- $line .= "\"$hostname\",";
-- $line .= "\"$item->{'mark'}->{'ip'}\",";
-- $line .= "\"$item->{'mark'}->{'port'}\",";
-+ $line .= "\"" . csv_safecell($hostname) . "\",";
-+ $line .= "\"" . csv_safecell($item->{'mark'}->{'ip'}) . \",";
-+ $line .= "\"" . csv_safecell($item->{'mark'}->{'port'}) . "\",";
-
- $line .= "\"";
- if ($item->{'osvdb'} ne '') { $line .= "OSVDB-" . $item->{'osvdb'}; }
- $line .= "\",";
-
- $line .= "\"";
-- if ($item->{'method'} ne '') { $line .= $item->{'method'}; }
-+ if ($item->{'method'} ne '') { $line .= csv_safecell($item->{'method'}); }
- $line .= "\",";
-
- $line .= "\"";
- if (($uri ne '') && ($mark->{'root'} ne '') && ($uri !~ /^$mark->{'root'}/))
-- { $line .= $mark->{'root'} . $uri; }
-- else { $line .= $uri; }
-+ { $line .= csv_safecell($mark->{'root'}) . $uri; }
-+ else { $line .= csv_safecell($uri); }
- $line .= "\",";
-
-- my $msg = $item->{'message'};
-- $uri=quotemeta($uri);
-- my $root = quotemeta($mark->{'root'});
-- $msg =~ s/^$uri:\s//;
-- $msg =~ s/^$root$uri:\s//;
-+ my $msg = $item->{'message'};
-+ $uri=quotemeta($uri);
-+ my $root = quotemeta($mark->{'root'});
-+ $msg =~ s/^$uri:\s//;
-+ $msg =~ s/^$root$uri:\s//;
- $msg =~ s/"/\\"/g;
-- $line .= "\"$msg\"";
-+ $line .= "\"" . csv_safecell($msg) ."\"";
- print $handle "$line\n";
- }
- }
-
-+###############################################################################
-+# prevent CSV injection attacks
-+sub csv_safecell {
-+ my $celldata = $_[0] || return;
-+ if ($celldata =~ /^[=+@-]/) { $celldata = "'" . $celldata; }
-+ return $celldata;
-+}
-+
- 1;
diff --git a/main/nikto/nikto.conf.base b/main/nikto/nikto.conf.base
deleted file mode 100644
index 3f17dfef2a1..00000000000
--- a/main/nikto/nikto.conf.base
+++ /dev/null
@@ -1,82 +0,0 @@
-#########################################################################################################
-# CONFIG STUFF
-# $Id: config.txt 94 2009-01-21 22:47:25Z deity $
-#########################################################################################################
-
-# default command line options, can't be an option that requires a value. used for ALL runs.
-# CLIOPTS=-g -a
-
-# ports never to scan
-SKIPPORTS=21 111
-
-# User-Agent variables:
- # @VERSION - Nikto version
- # @TESTID - Test identifier
- # @EVASIONS - List of active evasions
-USERAGENT=Mozilla/5.00 (Nikto/@VERSION) (Evasions:@EVASIONS) (Test:@TESTID)
-
-# RFI URL. This remote file should return a phpinfo call, for example: <?php phpinfo(); ?>
-# You may use the one below, if you like.
-RFIURL=http://cirt.net/rfiinc.txt?
-
-# IDs never to alert on (Note: this only works for IDs loaded from db_tests)
-#SKIPIDS=
-
-# The DTD
-NIKTODTD=docs/nikto.dtd
-
-# the default HTTP version to try... can/will be changed as necessary
-DEFAULTHTTPVER=1.0
-
-# Nikto can submit updated version strings to CIRT.net. It won't do this w/o permission. You should
-# send updates because it makes the data better for everyone ;) *NO* server specific information
-# such as IP or name is sent, just the relevant version information.
-# UPDATES=yes - ask before each submission if it should send
-# UPDATES=no - don't ask, don't send
-# UPDATES=auto - automatically attempt submission *without prompting*
-UPDATES=yes
-
-# Warning if MAX_WARN OK or MOVED responses are retrieved
-MAX_WARN=20
-
-# Prompt... if set to 'no' you'll never be asked for anything. Good for automation.
-#PROMPTS=no
-
-# cirt.net : set the IP so that updates can work without name resolution -- just in case
-CIRT=174.142.17.165
-
-# Proxy settings -- still must be enabled by -useproxy
-#PROXYHOST=127.0.0.1
-#PROXYPORT=8080
-#PROXYUSER=proxyuserid
-#PROXYPASS=proxypassword
-
-# Cookies: send cookies with all requests
-# Multiple can be set by separating with a semi-colon, e.g.:
-# "cookie1"="cookie value";"cookie2"="cookie val"
-#STATIC-COOKIE=
-
-# The below allows you to vary which HTTP methods are used to check whether an HTTP(s) server
-# is running. Some web servers, such as the autopsy web server do not implement the HEAD method
-CHECKMETHODS=HEAD GET
-
-# If you want to specify the location of any of the files, specify them here
-EXECDIR=/etc/nikto # Location of Nikto
-PLUGINDIR=/etc/nikto/plugins # Location of plugin dir
-DBDIR=/etc/nikto/databases # Location of plugin dir
-TEMPLATEDIR=/etc/nikto/templates # Location of tempmlate dir
-DOCDIR=/etc/nikto/docs # Location of docs dir
-
-# Default plugin macros
-@@MUTATE=dictionary;subdomain
-@@DEFAULT=@@ALL;-@@MUTATE;tests(report:500)
-
-#Choose SSL libs
-# Options:
-# SSLeay - use Net::SSLeay
-# SSL - use Net::SSL
-# auto - automatically choose whats available
-# (SSLeay wins if both are available)
-LW_SSL_ENGINE=auto
-
-
diff --git a/main/nload/APKBUILD b/main/nload/APKBUILD
index abc947c6fa3..806c085eecc 100644
--- a/main/nload/APKBUILD
+++ b/main/nload/APKBUILD
@@ -2,39 +2,32 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=nload
pkgver=0.7.4
-pkgrel=3
+pkgrel=6
pkgdesc="Console network traffic and bandwidth monitor"
url="http://www.roland-riegel.de/nload"
arch="all"
-license="GPL"
-depends=
+license="GPL-2.0-only"
makedepends="ncurses-dev"
-install=
subpackages="$pkgname-doc"
source="http://www.roland-riegel.de/nload/nload-$pkgver.tar.gz"
-
-_builddir="$srcdir"/$pkgname-$pkgver
+options="!check"
prepare() {
- cd "$_builddir"
- update_config_sub || return 1
+ update_config_sub
}
build() {
- cd "$_builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
- --infodir=/usr/share/info \
- || return 1
- make || return 1
+ --infodir=/usr/share/info
+ make
}
package() {
- cd "$_builddir"
make DESTDIR="$pkgdir" install
}
diff --git a/main/nmap/APKBUILD b/main/nmap/APKBUILD
index a0a46384c86..fc8934710ea 100644
--- a/main/nmap/APKBUILD
+++ b/main/nmap/APKBUILD
@@ -1,19 +1,28 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=nmap
-pkgver=7.92
-pkgrel=2
+pkgver=7.94
+pkgrel=0
pkgdesc="network exploration tool and security/port scanner"
url="https://nmap.org"
arch="all"
license="custom"
-makedepends="linux-headers openssl1.1-compat-dev libpcap-dev pcre-dev zlib-dev libssh2-dev lua5.3-dev"
-options="!check" #FIXME: fails on armhf and aarch64
+makedepends="
+ libpcap-dev
+ libssh2-dev
+ linux-headers
+ lua5.3-dev
+ openssl-dev
+ pcre-dev
+ zlib-dev
+ "
subpackages="
$pkgname-doc
$pkgname-scripts::noarch
$pkgname-nselibs::noarch
$pkgname-nping
- $pkgname-ncat"
+ $pkgname-ncat
+ "
+options="net" # needed for test suite
source="https://nmap.org/dist/nmap-$pkgver.tar.bz2
fortify-source.patch"
@@ -76,6 +85,6 @@ nping() {
}
sha512sums="
-7828367f9dc76ff4d1e8c821260e565fb0c3cb6aba0473d24759133a3006cdf2cb087574f0dd7d2ba47a63754ba4f72e0b78cdae1333a58f05c41d428b56ad59 nmap-7.92.tar.bz2
+a55cddf9c1d9272243d01251eb3315b26f232d0596818857083222a385398618b428dc2bd8282c3e832527e135a74aeb020ca8609d83d8337342f5d8a04d7f2c nmap-7.94.tar.bz2
2d1f6e290723ac643f456a0e1ac95c4c966106cf2ab743839d25c835bf0141dc2d6bfee19285c3518d4c5f553b0505dabe5a496b769ba47b7adb03e791f05b8d fortify-source.patch
"
diff --git a/main/nodejs/APKBUILD b/main/nodejs/APKBUILD
index bd7065e7dd5..d163530c6e6 100644
--- a/main/nodejs/APKBUILD
+++ b/main/nodejs/APKBUILD
@@ -6,6 +6,33 @@
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
#
# secfixes:
+# 20.12.1-r0:
+# - CVE-2024-27982
+# - CVE-2024-27983
+# 18.18.2-r0:
+# - CVE-2023-45143
+# - CVE-2023-38552
+# - CVE-2023-39333
+# 18.17.1-r0:
+# - CVE-2023-32002
+# - CVE-2023-32006
+# - CVE-2023-32559
+# 18.14.1-r0:
+# - CVE-2023-23918
+# - CVE-2023-23919
+# - CVE-2023-23920
+# - CVE-2023-23936
+# - CVE-2023-24807
+# 18.12.1-r0:
+# - CVE-2022-3602
+# - CVE-2022-3786
+# - CVE-2022-43548
+# 16.17.1-r0:
+# - CVE-2022-32213
+# - CVE-2022-32214
+# - CVE-2022-32215
+# - CVE-2022-35255
+# - CVE-2022-35256
# 16.13.2-r0:
# - CVE-2021-44531
# - CVE-2021-44532
@@ -83,64 +110,109 @@
# - CVE-2017-14919
# 6.11.1-r0:
# - CVE-2017-1000381
-#
+# 0:
+# - CVE-2021-43803
+# - CVE-2022-32212
+# - CVE-2023-44487
pkgname=nodejs
# Note: Update only to even-numbered versions (e.g. 6.y.z, 8.y.z)!
# Odd-numbered versions are supported only for 9 months by upstream.
-pkgver=16.15.0
-pkgrel=1
+pkgver=20.12.2
+pkgrel=0
pkgdesc="JavaScript runtime built on V8 engine - LTS version"
url="https://nodejs.org/"
-arch="all !riscv64" # hangs indefinitely on builders
+arch="all"
license="MIT"
-depends="ca-certificates nghttp2-libs>=1.41"
+depends="ca-certificates"
makedepends="
+ ada-dev
+ base64-dev
brotli-dev
c-ares-dev
icu-dev
linux-headers
nghttp2-dev
- openssl1.1-compat-dev
- python3
+ openssl-dev
py3-jinja2
+ python3
samurai
zlib-dev
"
install="$pkgname.post-upgrade"
-subpackages="$pkgname-dev $pkgname-doc"
+subpackages="
+ $pkgname-dev
+ $pkgname-libs
+ $pkgname-doc
+ "
provider_priority=100 # highest priority (other provider is nodejs-current)
-provides="nodejs-lts=$pkgver" # for backward compatibility
+provides="nodejs-lts=$pkgver-r$pkgrel" # for backward compatibility
replaces="nodejs-current nodejs-lts" # nodejs-lts for backward compatibility
source="https://nodejs.org/dist/v$pkgver/node-v$pkgver.tar.gz
disable-running-gyp-on-shared-deps.patch
- fix-build-with-system-c-ares.patch
+ system-ada.patch
+ system-base64.patch
+ base64.gyp
+ $pkgname.pc.in
"
builddir="$srcdir/node-v$pkgver"
prepare() {
default_prepare
+ # openssl.cnf is required for build.
+ mv deps/openssl/nodejs-openssl.cnf .
+
# Remove bundled dependencies that we're not using.
- rm -rf deps/brotli \
+ #
+ # NOTE: nghttp3 and ngtcp2 are only used when building with OpenSSL
+ # that supports QUIC. After the QUIC support is added to openssl, add
+ # options --shared-nghttp3 and --shared-ngtcp2.
+ rm -rf deps/ada/*.cpp \
+ deps/base64/* \
+ deps/brotli \
deps/cares \
- deps/openssl \
+ deps/corepack \
+ deps/nghttp2 \
+ deps/nghttp3 \
+ deps/ngtcp2 \
+ deps/openssl/* \
deps/v8/third_party/jinja2 \
deps/zlib \
tools/inspector_protocol/jinja2
+
+ mv nodejs-openssl.cnf deps/openssl/
+
+ cp "$srcdir"/base64.gyp deps/base64/
}
build() {
# Add defines recommended in libuv readme.
local common_flags="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
+ # -Os overwrites the optimizations enabled by BUILDTYPE=Release.
# Compiling with O2 instead of Os increases binary size by ~10%
# (53.1 MiB -> 58.6 MiB), but also increases performance by ~20%
# according to v8/web-tooling-benchmark. Node.js is quite huge anyway;
# there are better options for size constrained environments.
- export CFLAGS="${CFLAGS/-Os/-O2} $common_flags"
- export CXXFLAGS="${CXXFLAGS/-Os/-O2} $common_flags"
- export CPPFLAGS="${CPPFLAGS/-Os/-O2} $common_flags"
+ export CFLAGS="${CFLAGS/-Os} $common_flags"
+ export CXXFLAGS="${CXXFLAGS/-Os} $common_flags"
+ export CPPFLAGS="${CPPFLAGS/-Os} $common_flags"
+
+ # When building shared libnode.so, the resulting package size is +15 %
+ # (~8 MiB), so we rather build it twice to keep the node binary smaller
+ # (there are currently no packages using libnode.so).
+ msg 'Building node binary'
+ _build
+ cp out/Release/node out/
+ msg 'Building libnode.so'
+ _build --shared
+ cp out/Release/lib/libnode.so* out/Release/
+
+ sed "s/@VERSION@/$pkgver/" "$srcdir"/$pkgname.pc.in > out/Release/$pkgname.pc
+}
+
+_build() {
# NOTE: We use bundled libuv because they don't care much about backward
# compatibility and it has happened several times in past that we
# couldn't upgrade nodejs package in stable branches to fix CVEs due to
@@ -151,18 +223,21 @@ build() {
# it in a standalone aport.
#
# TODO: Fix and enable corepack.
- python3 configure.py --prefix=/usr \
+ python3 configure.py \
+ --prefix=/usr \
+ --ninja \
+ --enable-lto \
--shared-brotli \
--shared-zlib \
--shared-openssl \
--shared-cares \
--shared-nghttp2 \
- --ninja \
--openssl-use-def-ca-store \
--with-icu-default-data-dir=$(icu-config --icudatadir) \
--with-intl=system-icu \
--without-corepack \
- --without-npm
+ --without-npm \
+ "$@"
make BUILDTYPE=Release
}
@@ -173,10 +248,20 @@ check() {
./node -e 'console.log("Hello, world!")'
./node -e "require('assert').equal(process.versions.node, '$pkgver')"
+ ./node -e 'require("assert").equal(
+ Buffer.from(Buffer.from("foo").toString("base64"), "base64").toString("ascii"),
+ "foo")'
}
package() {
make DESTDIR="$pkgdir" install
+
+ # node binary built without libnode.so.
+ install -D -m755 out/node -t "$pkgdir"/usr/bin/
+
+ install -D -m644 out/Release/$pkgname.pc -t "$pkgdir"/usr/lib/pkgconfig/
+
+ (cd "$pkgdir"/usr/lib; ln -sf libnode.so.* libnode.so)
}
dev() {
@@ -185,7 +270,10 @@ dev() {
}
sha512sums="
-fb06f14ee76e858bdc6c159557cceae95ece1abcb1be20fd063dfd4348d1e89b144095c03814cd16ead70675beaa38b298124216c240c062e9c72f08de66d753 node-v16.15.0.tar.gz
-dbe8167b61518f8f59176759d69834d57bf3e6a5a5fd3dfc2359cafe0325da08b27f8220d278ed77f50c9f63a03313eabbbb0eaca3e592e5bb4e0d5be0ced373 disable-running-gyp-on-shared-deps.patch
-30ca1ce7f9512c943950b8eec98bca99d24c740ebaa14619292fe5ed931dcf603ca90afb1d704ca7f545e421752ba4dde81c0c5bbb5242eb1726739ca627e15f fix-build-with-system-c-ares.patch
+25d35c0be251e557ba8b3115b75f38aa20000e2abcabcfd40143528c64d4db8a1eba338847f90be539e4918e62fb52840ff0ae9a8f5224f03335fc28d575cb36 node-v20.12.2.tar.gz
+8c264eefc0bfa9dd57656f9f515e940d5c21b8d836dc549031ee559ba909643f4f2495b8b392ee9976c5eed7c3b4a09db876bbe0f7fcd5b2bf63fafca37bffc2 disable-running-gyp-on-shared-deps.patch
+4fc09500212ebc178801e7419c840ccebc239ff06edcb28910315e39bfc772a3967f5ff2abff03845269e730643be161134ac95bab899069fa57dd64be98defa system-ada.patch
+94db1f150cb962bf19f42e0ef7cec2c0e007d1909611d03a393095720cc8db58322e638ea3c3280b4412f47615963c88e69c71b4c5adf84292b9fc7f3be3b110 system-base64.patch
+bb0f74d8fb1ef07fd457670b9073a3cecadb3ac7d4fea008e8f17c091a62d15ef50646be457a50ac24c4129085d4da21beedd03af0739dded5d636916482f082 base64.gyp
+f908fa93f6194ec4f6c5e9d76ed7c918721c7f5d46afcc12de1f84683c185401a27a174b7a7c6a76085a4d0826f964e7088bf5596d4e6901a15bf751846299a6 nodejs.pc.in
"
diff --git a/main/nodejs/base64.gyp b/main/nodejs/base64.gyp
new file mode 100644
index 00000000000..17023dcefcc
--- /dev/null
+++ b/main/nodejs/base64.gyp
@@ -0,0 +1,15 @@
+{
+ 'targets': [
+ {
+ 'target_name': 'base64',
+ 'type': 'shared_library',
+ 'include_dirs': ['/usr/include'],
+ 'direct_dependent_settings': {
+ 'include_dirs': ['/usr/include'],
+ 'linkflags': ['-lbase64'],
+ 'ldflags': ['-lbase64'],
+ 'libraries': ['-lbase64']
+ }
+ },
+ ]
+}
diff --git a/main/nodejs/disable-running-gyp-on-shared-deps.patch b/main/nodejs/disable-running-gyp-on-shared-deps.patch
index f646201acc1..ce3cbe224c1 100644
--- a/main/nodejs/disable-running-gyp-on-shared-deps.patch
+++ b/main/nodejs/disable-running-gyp-on-shared-deps.patch
@@ -7,14 +7,16 @@ Author: Stephen Gallagher <sgallagh@redhat.com>
Modified 2016-11-26 by Jakub Jirutka <jakub@jirutka.cz> to update for
Node.js 7.2.0
+diff --git a/Makefile b/Makefile
+index 94013466..de3f5e9a 100644
--- a/Makefile
+++ b/Makefile
-@@ -141,7 +141,7 @@
- echo "'test-code-cache' target is a noop"
+@@ -169,7 +169,7 @@ with-code-cache test-code-cache:
+ $(warning '$@' target is a noop)
out/Makefile: config.gypi common.gypi node.gyp \
- deps/uv/uv.gyp deps/llhttp/llhttp.gyp deps/zlib/zlib.gyp \
+ deps/uv/uv.gyp deps/llhttp/llhttp.gyp \
+ deps/simdutf/simdutf.gyp deps/ada/ada.gyp \
tools/v8_gypfiles/toolchain.gypi tools/v8_gypfiles/features.gypi \
tools/v8_gypfiles/inspector.gypi tools/v8_gypfiles/v8.gyp
- $(PYTHON) tools/gyp_node.py -f make
diff --git a/main/nodejs/fix-build-with-system-c-ares.patch b/main/nodejs/fix-build-with-system-c-ares.patch
deleted file mode 100644
index 8121891d048..00000000000
--- a/main/nodejs/fix-build-with-system-c-ares.patch
+++ /dev/null
@@ -1,535 +0,0 @@
-From aff98a5667c22794e2eaf658f6dfbee54cdd4a3b Mon Sep 17 00:00:00 2001
-From: Felix Yan <felixonmars@archlinux.org>
-Date: Thu, 12 Aug 2021 02:44:43 +0800
-Subject: [PATCH 1/2] deps: fix building with system c-ares on Linux
-Patch-Source: https://github.com/nodejs/node/pull/39739
-
-The change in #39724 breaks building with system c-ares
-(`--shared-cares`):
-```
-In file included from ../src/cares_wrap.cc:25:
-../src/cares_wrap.h:25:11: fatal error: ares_nameser.h: No such file or
-directory
- 25 | # include <ares_nameser.h>
- | ^~~~~~~~~~~~~~~~
-```
-
-Since `ares_nameser.h` isn't available with a default system c-ares
-installation, let's copy it as our private header here.
-
-Tested to build fine on Arch Linux with shared c-ares.
----
- src/ares_nameser.h | 482 +++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 482 insertions(+)
- create mode 100644 src/ares_nameser.h
-
-diff --git a/src/ares_nameser.h b/src/ares_nameser.h
-new file mode 100644
-index 000000000000..5270e5a3a6a0
---- /dev/null
-+++ b/src/ares_nameser.h
-@@ -0,0 +1,482 @@
-+
-+#ifndef ARES_NAMESER_H
-+#define ARES_NAMESER_H
-+
-+#ifdef HAVE_ARPA_NAMESER_H
-+# include <arpa/nameser.h>
-+#endif
-+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-+# include <arpa/nameser_compat.h>
-+#endif
-+
-+/* ============================================================================
-+ * arpa/nameser.h may or may not provide ALL of the below defines, so check
-+ * each one individually and set if not
-+ * ============================================================================
-+ */
-+
-+#ifndef NS_PACKETSZ
-+# define NS_PACKETSZ 512 /* maximum packet size */
-+#endif
-+
-+#ifndef NS_MAXDNAME
-+# define NS_MAXDNAME 256 /* maximum domain name */
-+#endif
-+
-+#ifndef NS_MAXCDNAME
-+# define NS_MAXCDNAME 255 /* maximum compressed domain name */
-+#endif
-+
-+#ifndef NS_MAXLABEL
-+# define NS_MAXLABEL 63
-+#endif
-+
-+#ifndef NS_HFIXEDSZ
-+# define NS_HFIXEDSZ 12 /* #/bytes of fixed data in header */
-+#endif
-+
-+#ifndef NS_QFIXEDSZ
-+# define NS_QFIXEDSZ 4 /* #/bytes of fixed data in query */
-+#endif
-+
-+#ifndef NS_RRFIXEDSZ
-+# define NS_RRFIXEDSZ 10 /* #/bytes of fixed data in r record */
-+#endif
-+
-+#ifndef NS_INT16SZ
-+# define NS_INT16SZ 2
-+#endif
-+
-+#ifndef NS_INADDRSZ
-+# define NS_INADDRSZ 4
-+#endif
-+
-+#ifndef NS_IN6ADDRSZ
-+# define NS_IN6ADDRSZ 16
-+#endif
-+
-+#ifndef NS_CMPRSFLGS
-+# define NS_CMPRSFLGS 0xc0 /* Flag bits indicating name compression. */
-+#endif
-+
-+#ifndef NS_DEFAULTPORT
-+# define NS_DEFAULTPORT 53 /* For both TCP and UDP. */
-+#endif
-+
-+/* ============================================================================
-+ * arpa/nameser.h should provide these enumerations always, so if not found,
-+ * provide them
-+ * ============================================================================
-+ */
-+#ifndef HAVE_ARPA_NAMESER_H
-+
-+typedef enum __ns_class {
-+ ns_c_invalid = 0, /* Cookie. */
-+ ns_c_in = 1, /* Internet. */
-+ ns_c_2 = 2, /* unallocated/unsupported. */
-+ ns_c_chaos = 3, /* MIT Chaos-net. */
-+ ns_c_hs = 4, /* MIT Hesiod. */
-+ /* Query class values which do not appear in resource records */
-+ ns_c_none = 254, /* for prereq. sections in update requests */
-+ ns_c_any = 255, /* Wildcard match. */
-+ ns_c_max = 65536
-+} ns_class;
-+
-+typedef enum __ns_type {
-+ ns_t_invalid = 0, /* Cookie. */
-+ ns_t_a = 1, /* Host address. */
-+ ns_t_ns = 2, /* Authoritative server. */
-+ ns_t_md = 3, /* Mail destination. */
-+ ns_t_mf = 4, /* Mail forwarder. */
-+ ns_t_cname = 5, /* Canonical name. */
-+ ns_t_soa = 6, /* Start of authority zone. */
-+ ns_t_mb = 7, /* Mailbox domain name. */
-+ ns_t_mg = 8, /* Mail group member. */
-+ ns_t_mr = 9, /* Mail rename name. */
-+ ns_t_null = 10, /* Null resource record. */
-+ ns_t_wks = 11, /* Well known service. */
-+ ns_t_ptr = 12, /* Domain name pointer. */
-+ ns_t_hinfo = 13, /* Host information. */
-+ ns_t_minfo = 14, /* Mailbox information. */
-+ ns_t_mx = 15, /* Mail routing information. */
-+ ns_t_txt = 16, /* Text strings. */
-+ ns_t_rp = 17, /* Responsible person. */
-+ ns_t_afsdb = 18, /* AFS cell database. */
-+ ns_t_x25 = 19, /* X_25 calling address. */
-+ ns_t_isdn = 20, /* ISDN calling address. */
-+ ns_t_rt = 21, /* Router. */
-+ ns_t_nsap = 22, /* NSAP address. */
-+ ns_t_nsap_ptr = 23, /* Reverse NSAP lookup (deprecated). */
-+ ns_t_sig = 24, /* Security signature. */
-+ ns_t_key = 25, /* Security key. */
-+ ns_t_px = 26, /* X.400 mail mapping. */
-+ ns_t_gpos = 27, /* Geographical position (withdrawn). */
-+ ns_t_aaaa = 28, /* Ip6 Address. */
-+ ns_t_loc = 29, /* Location Information. */
-+ ns_t_nxt = 30, /* Next domain (security). */
-+ ns_t_eid = 31, /* Endpoint identifier. */
-+ ns_t_nimloc = 32, /* Nimrod Locator. */
-+ ns_t_srv = 33, /* Server Selection. */
-+ ns_t_atma = 34, /* ATM Address */
-+ ns_t_naptr = 35, /* Naming Authority PoinTeR */
-+ ns_t_kx = 36, /* Key Exchange */
-+ ns_t_cert = 37, /* Certification record */
-+ ns_t_a6 = 38, /* IPv6 address (deprecates AAAA) */
-+ ns_t_dname = 39, /* Non-terminal DNAME (for IPv6) */
-+ ns_t_sink = 40, /* Kitchen sink (experimentatl) */
-+ ns_t_opt = 41, /* EDNS0 option (meta-RR) */
-+ ns_t_apl = 42, /* Address prefix list (RFC3123) */
-+ ns_t_ds = 43, /* Delegation Signer (RFC4034) */
-+ ns_t_sshfp = 44, /* SSH Key Fingerprint (RFC4255) */
-+ ns_t_rrsig = 46, /* Resource Record Signature (RFC4034) */
-+ ns_t_nsec = 47, /* Next Secure (RFC4034) */
-+ ns_t_dnskey = 48, /* DNS Public Key (RFC4034) */
-+ ns_t_tkey = 249, /* Transaction key */
-+ ns_t_tsig = 250, /* Transaction signature. */
-+ ns_t_ixfr = 251, /* Incremental zone transfer. */
-+ ns_t_axfr = 252, /* Transfer zone of authority. */
-+ ns_t_mailb = 253, /* Transfer mailbox records. */
-+ ns_t_maila = 254, /* Transfer mail agent records. */
-+ ns_t_any = 255, /* Wildcard match. */
-+ ns_t_zxfr = 256, /* BIND-specific, nonstandard. */
-+ ns_t_caa = 257, /* Certification Authority Authorization. */
-+ ns_t_max = 65536
-+} ns_type;
-+
-+typedef enum __ns_opcode {
-+ ns_o_query = 0, /* Standard query. */
-+ ns_o_iquery = 1, /* Inverse query (deprecated/unsupported). */
-+ ns_o_status = 2, /* Name server status query (unsupported). */
-+ /* Opcode 3 is undefined/reserved. */
-+ ns_o_notify = 4, /* Zone change notification. */
-+ ns_o_update = 5, /* Zone update message. */
-+ ns_o_max = 6
-+} ns_opcode;
-+
-+typedef enum __ns_rcode {
-+ ns_r_noerror = 0, /* No error occurred. */
-+ ns_r_formerr = 1, /* Format error. */
-+ ns_r_servfail = 2, /* Server failure. */
-+ ns_r_nxdomain = 3, /* Name error. */
-+ ns_r_notimpl = 4, /* Unimplemented. */
-+ ns_r_refused = 5, /* Operation refused. */
-+ /* these are for BIND_UPDATE */
-+ ns_r_yxdomain = 6, /* Name exists */
-+ ns_r_yxrrset = 7, /* RRset exists */
-+ ns_r_nxrrset = 8, /* RRset does not exist */
-+ ns_r_notauth = 9, /* Not authoritative for zone */
-+ ns_r_notzone = 10, /* Zone of record different from zone section */
-+ ns_r_max = 11,
-+ /* The following are TSIG extended errors */
-+ ns_r_badsig = 16,
-+ ns_r_badkey = 17,
-+ ns_r_badtime = 18
-+} ns_rcode;
-+
-+#endif /* HAVE_ARPA_NAMESER_H */
-+
-+
-+/* ============================================================================
-+ * arpa/nameser_compat.h typically sets these. However on some systems
-+ * arpa/nameser.h does, but may not set all of them. Lets conditionally
-+ * define each
-+ * ============================================================================
-+ */
-+
-+#ifndef PACKETSZ
-+# define PACKETSZ NS_PACKETSZ
-+#endif
-+
-+#ifndef MAXDNAME
-+# define MAXDNAME NS_MAXDNAME
-+#endif
-+
-+#ifndef MAXCDNAME
-+# define MAXCDNAME NS_MAXCDNAME
-+#endif
-+
-+#ifndef MAXLABEL
-+# define MAXLABEL NS_MAXLABEL
-+#endif
-+
-+#ifndef HFIXEDSZ
-+# define HFIXEDSZ NS_HFIXEDSZ
-+#endif
-+
-+#ifndef QFIXEDSZ
-+# define QFIXEDSZ NS_QFIXEDSZ
-+#endif
-+
-+#ifndef RRFIXEDSZ
-+# define RRFIXEDSZ NS_RRFIXEDSZ
-+#endif
-+
-+#ifndef INDIR_MASK
-+# define INDIR_MASK NS_CMPRSFLGS
-+#endif
-+
-+#ifndef NAMESERVER_PORT
-+# define NAMESERVER_PORT NS_DEFAULTPORT
-+#endif
-+
-+
-+/* opcodes */
-+#ifndef O_QUERY
-+# define O_QUERY 0 /* ns_o_query */
-+#endif
-+#ifndef O_IQUERY
-+# define O_IQUERY 1 /* ns_o_iquery */
-+#endif
-+#ifndef O_STATUS
-+# define O_STATUS 2 /* ns_o_status */
-+#endif
-+#ifndef O_NOTIFY
-+# define O_NOTIFY 4 /* ns_o_notify */
-+#endif
-+#ifndef O_UPDATE
-+# define O_UPDATE 5 /* ns_o_update */
-+#endif
-+
-+
-+/* response codes */
-+#ifndef SERVFAIL
-+# define SERVFAIL ns_r_servfail
-+#endif
-+#ifndef NOTIMP
-+# define NOTIMP ns_r_notimpl
-+#endif
-+#ifndef REFUSED
-+# define REFUSED ns_r_refused
-+#endif
-+#if defined(_WIN32) && !defined(HAVE_ARPA_NAMESER_COMPAT_H) && defined(NOERROR)
-+# undef NOERROR /* it seems this is already defined in winerror.h */
-+#endif
-+#ifndef NOERROR
-+# define NOERROR ns_r_noerror
-+#endif
-+#ifndef FORMERR
-+# define FORMERR ns_r_formerr
-+#endif
-+#ifndef NXDOMAIN
-+# define NXDOMAIN ns_r_nxdomain
-+#endif
-+/* Non-standard response codes, use numeric values */
-+#ifndef YXDOMAIN
-+# define YXDOMAIN 6 /* ns_r_yxdomain */
-+#endif
-+#ifndef YXRRSET
-+# define YXRRSET 7 /* ns_r_yxrrset */
-+#endif
-+#ifndef NXRRSET
-+# define NXRRSET 8 /* ns_r_nxrrset */
-+#endif
-+#ifndef NOTAUTH
-+# define NOTAUTH 9 /* ns_r_notauth */
-+#endif
-+#ifndef NOTZONE
-+# define NOTZONE 10 /* ns_r_notzone */
-+#endif
-+#ifndef TSIG_BADSIG
-+# define TSIG_BADSIG 16 /* ns_r_badsig */
-+#endif
-+#ifndef TSIG_BADKEY
-+# define TSIG_BADKEY 17 /* ns_r_badkey */
-+#endif
-+#ifndef TSIG_BADTIME
-+# define TSIG_BADTIME 18 /* ns_r_badtime */
-+#endif
-+
-+
-+/* classes */
-+#ifndef C_IN
-+# define C_IN 1 /* ns_c_in */
-+#endif
-+#ifndef C_CHAOS
-+# define C_CHAOS 3 /* ns_c_chaos */
-+#endif
-+#ifndef C_HS
-+# define C_HS 4 /* ns_c_hs */
-+#endif
-+#ifndef C_NONE
-+# define C_NONE 254 /* ns_c_none */
-+#endif
-+#ifndef C_ANY
-+# define C_ANY 255 /* ns_c_any */
-+#endif
-+
-+
-+/* types */
-+#ifndef T_A
-+# define T_A 1 /* ns_t_a */
-+#endif
-+#ifndef T_NS
-+# define T_NS 2 /* ns_t_ns */
-+#endif
-+#ifndef T_MD
-+# define T_MD 3 /* ns_t_md */
-+#endif
-+#ifndef T_MF
-+# define T_MF 4 /* ns_t_mf */
-+#endif
-+#ifndef T_CNAME
-+# define T_CNAME 5 /* ns_t_cname */
-+#endif
-+#ifndef T_SOA
-+# define T_SOA 6 /* ns_t_soa */
-+#endif
-+#ifndef T_MB
-+# define T_MB 7 /* ns_t_mb */
-+#endif
-+#ifndef T_MG
-+# define T_MG 8 /* ns_t_mg */
-+#endif
-+#ifndef T_MR
-+# define T_MR 9 /* ns_t_mr */
-+#endif
-+#ifndef T_NULL
-+# define T_NULL 10 /* ns_t_null */
-+#endif
-+#ifndef T_WKS
-+# define T_WKS 11 /* ns_t_wks */
-+#endif
-+#ifndef T_PTR
-+# define T_PTR 12 /* ns_t_ptr */
-+#endif
-+#ifndef T_HINFO
-+# define T_HINFO 13 /* ns_t_hinfo */
-+#endif
-+#ifndef T_MINFO
-+# define T_MINFO 14 /* ns_t_minfo */
-+#endif
-+#ifndef T_MX
-+# define T_MX 15 /* ns_t_mx */
-+#endif
-+#ifndef T_TXT
-+# define T_TXT 16 /* ns_t_txt */
-+#endif
-+#ifndef T_RP
-+# define T_RP 17 /* ns_t_rp */
-+#endif
-+#ifndef T_AFSDB
-+# define T_AFSDB 18 /* ns_t_afsdb */
-+#endif
-+#ifndef T_X25
-+# define T_X25 19 /* ns_t_x25 */
-+#endif
-+#ifndef T_ISDN
-+# define T_ISDN 20 /* ns_t_isdn */
-+#endif
-+#ifndef T_RT
-+# define T_RT 21 /* ns_t_rt */
-+#endif
-+#ifndef T_NSAP
-+# define T_NSAP 22 /* ns_t_nsap */
-+#endif
-+#ifndef T_NSAP_PTR
-+# define T_NSAP_PTR 23 /* ns_t_nsap_ptr */
-+#endif
-+#ifndef T_SIG
-+# define T_SIG 24 /* ns_t_sig */
-+#endif
-+#ifndef T_KEY
-+# define T_KEY 25 /* ns_t_key */
-+#endif
-+#ifndef T_PX
-+# define T_PX 26 /* ns_t_px */
-+#endif
-+#ifndef T_GPOS
-+# define T_GPOS 27 /* ns_t_gpos */
-+#endif
-+#ifndef T_AAAA
-+# define T_AAAA 28 /* ns_t_aaaa */
-+#endif
-+#ifndef T_LOC
-+# define T_LOC 29 /* ns_t_loc */
-+#endif
-+#ifndef T_NXT
-+# define T_NXT 30 /* ns_t_nxt */
-+#endif
-+#ifndef T_EID
-+# define T_EID 31 /* ns_t_eid */
-+#endif
-+#ifndef T_NIMLOC
-+# define T_NIMLOC 32 /* ns_t_nimloc */
-+#endif
-+#ifndef T_SRV
-+# define T_SRV 33 /* ns_t_srv */
-+#endif
-+#ifndef T_ATMA
-+# define T_ATMA 34 /* ns_t_atma */
-+#endif
-+#ifndef T_NAPTR
-+# define T_NAPTR 35 /* ns_t_naptr */
-+#endif
-+#ifndef T_KX
-+# define T_KX 36 /* ns_t_kx */
-+#endif
-+#ifndef T_CERT
-+# define T_CERT 37 /* ns_t_cert */
-+#endif
-+#ifndef T_A6
-+# define T_A6 38 /* ns_t_a6 */
-+#endif
-+#ifndef T_DNAME
-+# define T_DNAME 39 /* ns_t_dname */
-+#endif
-+#ifndef T_SINK
-+# define T_SINK 40 /* ns_t_sink */
-+#endif
-+#ifndef T_OPT
-+# define T_OPT 41 /* ns_t_opt */
-+#endif
-+#ifndef T_APL
-+# define T_APL 42 /* ns_t_apl */
-+#endif
-+#ifndef T_DS
-+# define T_DS 43 /* ns_t_ds */
-+#endif
-+#ifndef T_SSHFP
-+# define T_SSHFP 44 /* ns_t_sshfp */
-+#endif
-+#ifndef T_RRSIG
-+# define T_RRSIG 46 /* ns_t_rrsig */
-+#endif
-+#ifndef T_NSEC
-+# define T_NSEC 47 /* ns_t_nsec */
-+#endif
-+#ifndef T_DNSKEY
-+# define T_DNSKEY 48 /* ns_t_dnskey */
-+#endif
-+#ifndef T_TKEY
-+# define T_TKEY 249 /* ns_t_tkey */
-+#endif
-+#ifndef T_TSIG
-+# define T_TSIG 250 /* ns_t_tsig */
-+#endif
-+#ifndef T_IXFR
-+# define T_IXFR 251 /* ns_t_ixfr */
-+#endif
-+#ifndef T_AXFR
-+# define T_AXFR 252 /* ns_t_axfr */
-+#endif
-+#ifndef T_MAILB
-+# define T_MAILB 253 /* ns_t_mailb */
-+#endif
-+#ifndef T_MAILA
-+# define T_MAILA 254 /* ns_t_maila */
-+#endif
-+#ifndef T_ANY
-+# define T_ANY 255 /* ns_t_any */
-+#endif
-+#ifndef T_ZXFR
-+# define T_ZXFR 256 /* ns_t_zxfr */
-+#endif
-+#ifndef T_CAA
-+# define T_CAA 257 /* ns_t_caa */
-+#endif
-+#ifndef T_MAX
-+# define T_MAX 65536 /* ns_t_max */
-+#endif
-+
-+
-+#endif /* ARES_NAMESER_H */
-
-From db4643979ee676b3a3d6cdf2fb597d399cf8013f Mon Sep 17 00:00:00 2001
-From: Felix Yan <felixonmars@archlinux.org>
-Date: Fri, 13 Aug 2021 00:01:59 +0800
-Subject: [PATCH 2/2] build: ignore cpplint for third-party ares_nameser.h
-
----
- Makefile | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/Makefile b/Makefile
-index ec4c774748cd..c418995c53c1 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1289,6 +1289,7 @@ jslint-ci: lint-js-ci
- LINT_CPP_ADDON_DOC_FILES_GLOB = test/addons/??_*/*.cc test/addons/??_*/*.h
- LINT_CPP_ADDON_DOC_FILES = $(wildcard $(LINT_CPP_ADDON_DOC_FILES_GLOB))
- LINT_CPP_EXCLUDE ?=
-+LINT_CPP_EXCLUDE += src/ares_nameser.h
- LINT_CPP_EXCLUDE += src/node_root_certs.h
- LINT_CPP_EXCLUDE += $(LINT_CPP_ADDON_DOC_FILES)
- LINT_CPP_EXCLUDE += $(wildcard test/js-native-api/??_*/*.cc test/js-native-api/??_*/*.h test/node-api/??_*/*.cc test/node-api/??_*/*.h)
diff --git a/main/nodejs/nodejs.pc.in b/main/nodejs/nodejs.pc.in
new file mode 100644
index 00000000000..12577552501
--- /dev/null
+++ b/main/nodejs/nodejs.pc.in
@@ -0,0 +1,10 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=${exec_prefix}/lib
+includedir=${prefix}/include
+
+Name: nodejs
+Description: JavaScript Runtime
+Version: @VERSION@
+Libs: -L${libdir} -lnode
+Cflags: -I${includedir}/node
diff --git a/main/nodejs/system-ada.patch b/main/nodejs/system-ada.patch
new file mode 100644
index 00000000000..b956177cc33
--- /dev/null
+++ b/main/nodejs/system-ada.patch
@@ -0,0 +1,36 @@
+diff --git a/deps/ada/ada.gyp b/deps/ada/ada.gyp
+index 55cea003..b5a08656 100644
+--- a/deps/ada/ada.gyp
++++ b/deps/ada/ada.gyp
+@@ -6,12 +6,14 @@
+ 'targets': [
+ {
+ 'target_name': 'ada',
+- 'type': 'static_library',
+- 'include_dirs': ['.'],
++ 'type': 'shared_library',
++ 'include_dirs': ['/usr/include/ada'],
+ 'direct_dependent_settings': {
+- 'include_dirs': ['.'],
+- },
+- 'sources': [ '<@(ada_sources)' ]
++ 'include_dirs': ['/usr/include/ada'],
++ 'linkflags': ['-lada'],
++ 'ldflags': ['-lada'],
++ 'libraries': ['-lada']
++ }
+ },
+ ]
+ }
+diff --git a/node.gyp b/node.gyp
+index f092c332..06fcd510 100644
+--- a/node.gyp
++++ b/node.gyp
+@@ -465,6 +465,7 @@
+ 'dependencies': [
+ 'deps/histogram/histogram.gyp:histogram',
+ 'deps/uvwasi/uvwasi.gyp:uvwasi',
++ 'deps/ada/ada.gyp:ada',
+ ],
+
+ 'msvs_settings': {
diff --git a/main/nodejs/system-base64.patch b/main/nodejs/system-base64.patch
new file mode 100644
index 00000000000..39902781d33
--- /dev/null
+++ b/main/nodejs/system-base64.patch
@@ -0,0 +1,33 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sun, 19 Nov 2023 22:45:01 +0100
+Subject: [PATCH] Link with shared libbase64
+
+The second part is our modified base64.gyp.
+
+--- a/node.gyp
++++ b/node.gyp
+@@ -512,7 +512,8 @@
+ 'dependencies': [
+ 'deps/histogram/histogram.gyp:histogram',
+ 'deps/uvwasi/uvwasi.gyp:uvwasi',
+ 'deps/ada/ada.gyp:ada',
++ 'deps/base64/base64.gyp:base64'
+ ],
+
+ 'msvs_settings': {
+@@ -1117,6 +1119,7 @@
+ 'deps/histogram/histogram.gyp:histogram',
+ 'deps/uvwasi/uvwasi.gyp:uvwasi',
+ 'deps/ada/ada.gyp:ada',
++ 'deps/base64/base64.gyp:base64',
+ ],
+
+ 'includes': [
+@@ -1228,6 +1231,7 @@
+ 'deps/histogram/histogram.gyp:histogram',
+ 'deps/uvwasi/uvwasi.gyp:uvwasi',
+ 'deps/ada/ada.gyp:ada',
++ 'deps/base64/base64.gyp:base64',
+ ],
+
+ 'includes': [
diff --git a/main/npth/APKBUILD b/main/npth/APKBUILD
index 265e456b465..967b45a68f0 100644
--- a/main/npth/APKBUILD
+++ b/main/npth/APKBUILD
@@ -1,18 +1,20 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=npth
pkgver=1.6
-pkgrel=1
+pkgrel=4
pkgdesc="The New GNU Portable Threads library"
url="https://gnupg.org/related_software/npth/"
arch="all"
-license="LGPL-3.0-or-later or GPL-2.0-or-later or (LGPL-3.0-or-later and GPL-2.0-or-later)"
+license="LGPL-2.0-or-later"
subpackages="$pkgname-dev"
source="https://gnupg.org/ftp/gcrypt/npth/npth-$pkgver.tar.bz2"
-builddir="$srcdir/$pkgname-$pkgver"
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -25,12 +27,10 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
diff --git a/main/nrpe/APKBUILD b/main/nrpe/APKBUILD
index 876c666ec70..aee979c21e4 100644
--- a/main/nrpe/APKBUILD
+++ b/main/nrpe/APKBUILD
@@ -1,17 +1,17 @@
# Maintainer: Jeff Bilyk <jbilyk@gmail.com>
pkgname=nrpe
-pkgver=4.0.3
-pkgrel=3
+pkgver=4.1.0
+pkgrel=2
pkgusers="nagios"
pkggroups="nagios"
pkgdesc="NRPE allows you to remotely execute Nagios plugins on other Linux/Unix machines."
-url="http://www.nagios.org/download/addons"
+url="https://www.nagios.org/downloads/nagios-core-addons/"
arch="all"
-license="GPL"
-makedepends="openssl1.1-compat-dev autoconf"
+license="GPL-2.0-or-later"
+makedepends="openssl-dev>3"
install="nrpe.pre-install"
-subpackages="$pkgname-plugin"
-source="https://downloads.sourceforge.net/nagios/nrpe-$pkgver.tar.gz
+subpackages="$pkgname-plugin $pkgname-openrc"
+source="https://github.com/NagiosEnterprises/nrpe/releases/download/nrpe-$pkgver/nrpe-$pkgver.tar.gz
sample-config.patch
nrpe.initd
nrpe.confd"
@@ -57,7 +57,9 @@ plugin() {
make DESTDIR="$subpkgdir" install-plugin
}
-sha512sums="31d932c481c8a53bd0f8865fb3cfeeb1466b9b05fa89382aa056aa9343a09843b51fe5398fd0388e6bba99e9c3d8093f6033799fd83afd43012bfe8fdc5a33e3 nrpe-4.0.3.tar.gz
+sha512sums="
+a47935eecc65d646737166f98f5f160e3d1d5bbd245e006e8cd0758af75db083f870db6c02c1edd0d44cf9a91909ba26df8eee1620a7ac4d9f98032f2cce8981 nrpe-4.1.0.tar.gz
5949a019a9e699559c66d506029e8c7a2daa298dfd254cab3d8049eec59ccec03efe5a5f32190fbc1f3fdc884cd204636f0eb445793758886d199efae46ef1ce sample-config.patch
b2f23bab97384ef8f1760c79d0cbadb4e81d4bb8134887a38662033a7f0c30480222b9ecb78c3ae276bd8b35470b3db316143f591baa2c535f5fb26c34ad2824 nrpe.initd
-05a0f1f5f75345370cae3262f9988d537e24dfcbb6c14a1ff3486193625481045d0844c035f7be491e74ca9ad45ed0fae7b7005616936cc274cd7e8a851c8628 nrpe.confd"
+05a0f1f5f75345370cae3262f9988d537e24dfcbb6c14a1ff3486193625481045d0844c035f7be491e74ca9ad45ed0fae7b7005616936cc274cd7e8a851c8628 nrpe.confd
+"
diff --git a/main/nsd/APKBUILD b/main/nsd/APKBUILD
index efabee49522..267e20d0379 100644
--- a/main/nsd/APKBUILD
+++ b/main/nsd/APKBUILD
@@ -4,15 +4,15 @@
# Contributor: Iggy Jackson <iggy@theiggy.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=nsd
-pkgver=4.5.0
+pkgver=4.9.1
pkgrel=0
pkgdesc="Authoritative only, high performance and simple DNS server"
url="https://www.nlnetlabs.nl/projects/nsd"
arch="all"
license="BSD-3-Clause"
-makedepends="openssl1.1-compat-dev libevent-dev"
+makedepends="openssl-dev>3 libevent-dev"
install="$pkgname.pre-install $pkgname.pre-upgrade"
-subpackages="$pkgname-doc $pkgname-dbg $pkgname-openrc"
+subpackages="$pkgname-doc $pkgname-dbg $pkgname-openrc $pkgname-bash-completion"
pkgusers="nsd"
pkggroups="nsd"
source="https://www.nlnetlabs.nl/downloads/nsd/nsd-$pkgver.tar.gz
@@ -20,6 +20,7 @@ source="https://www.nlnetlabs.nl/downloads/nsd/nsd-$pkgver.tar.gz
config.patch
tsig-openssl.patch
"
+options="!check"
# secfixes:
# 4.3.4-r0:
@@ -36,7 +37,6 @@ build() {
--with-xfrdir=/var/db/nsd \
--enable-ratelimit \
--enable-ratelimit-default-is-off \
- --enable-root-server
make
}
@@ -49,13 +49,18 @@ package() {
install -d "$pkgdir"/usr/share/doc/$pkgname
cp -a "$builddir"/doc/* "$builddir"/contrib \
"$pkgdir"/usr/share/doc/$pkgname/
+ rm "$pkgdir"/usr/share/doc/nsd/contrib/nsd.service
+
+ mkdir -p "$pkgdir"/usr/share/bash-completion/completions
+ mv "$pkgdir"/usr/share/doc/nsd/contrib/autocomplete_nsd-control.bash \
+ "$pkgdir"/usr/share/bash-completion/completions/nsd-control
install -d -m 755 -o nsd -g nsd "$pkgdir"/var/db/nsd
rm -fr "$pkgdir"/run
}
sha512sums="
-0309e1ff083b6f2118ba6fd59425319c21f31558d30e17a40eb8f1e53dee9e3e766d7b53eb50462130ba17b454a3559dc786d344cb779468d255732bbc6bc5da nsd-4.5.0.tar.gz
+65cd38aa8a41aee57a6950747de448bc4007a2d2c095152f1d22006f85faa7f0732ec4aa0aeae9f46bc69bff17164d8fe384bbc3441d0484364c4af938b511c1 nsd-4.9.1.tar.gz
bc2b27d98b99db067c7c4b152ee40ae81b8ee66989f873ca0c21f57333c3734bb342866f68d5837f10bb56cb598fafc794095c02b8bc97ef6dace450cae526a6 nsd.initd
5b192f2151114d1853fb17f89324d9cc7ec16aa4d057c4f86b81ce8385b69eeb128df737e12597705c2acd33cdfd5857ed3234e4be153a36ba1dcf4175232701 config.patch
3a9085320ceb4b63d2cada23f730f515b306d641c782a0b1b0b9c4cef0e473f5e6accbce8bbbfdb2ce0275adb947f5705aa3e0f1e4809775e2910173456b7e5b tsig-openssl.patch
diff --git a/main/nspr/APKBUILD b/main/nspr/APKBUILD
index c84daf70464..df5b3f11d6e 100644
--- a/main/nspr/APKBUILD
+++ b/main/nspr/APKBUILD
@@ -1,31 +1,32 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=nspr
-pkgver=4.34
-pkgrel=1
+pkgver=4.35
+pkgrel=4
pkgdesc="Netscape Portable Runtime"
url="https://www.mozilla.org/projects/nspr/"
arch="all"
license="MPL-2.0"
options="!check" # No test suite.
# -dev package does not ship any symlinks so dependency cannot be autodetected
-depends_dev="nspr linux-headers"
+depends_dev="$pkgname=$pkgver-r$pkgrel linux-headers"
makedepends="autoconf automake linux-headers"
subpackages="$pkgname-dev"
source="https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v$pkgver/src/nspr-$pkgver.tar.gz
- fix-getproto.patch
- fix-sgidefs-usage.patch
+ lfs64.patch
"
prepare() {
mkdir build inst
default_prepare
+ update_config_sub
}
build() {
local conf=
- if [ "$CARCH" = "x86_64" ];then
- conf="--enable-64bit"
- fi
+ case "$CARCH" in
+ arm*|x86) conf="";;
+ *) conf="--enable-64bit";;
+ esac
cd "$builddir"/build
# ./nspr/pr/include/md/_linux.h tests only __GLIBC__ version
# to detect c-library features, list musl features here for now.
@@ -58,7 +59,6 @@ package() {
}
sha512sums="
-4cfac886c14cf7df4c4b79fa1c3bc92e1b14260c9c3018fa2562060d62fecb4e66c0b4e8f7edf4f4823def784a919d99dde88a89674f0cd8a644310b0569ead4 nspr-4.34.tar.gz
-7062cc03e38541282226781e67c886c78ca693f7ee96df96509c9429470d294ca6b87ebe05ea809920b9ef78eaa0a0d21ae575a1ac438f148d0c1dc915424613 fix-getproto.patch
-69e804907d1a8867912511818d9827e4d7fd36ff44253cb21f4a5527610076874ddf5aada87717ef6454162c21248c9f7c3395376c585129134950c12f90ac0f fix-sgidefs-usage.patch
+502815833116e25f79ddf71d1526484908aa92fbc55f8a892729cb404a4daafcc0470a89854cd080d2d20299fdb7d9662507c5362c7ae661cbacf308ac56ef7f nspr-4.35.tar.gz
+626208e91c296bb26cee84e2b5dcc2ff2d576e06dacf7008655590c0b76ea21cb33cd96994fad3b0e771e8d7d60a3d90f71f81f33a8e9c1b7ce8536f5c6cab8a lfs64.patch
"
diff --git a/main/nspr/fix-getproto.patch b/main/nspr/fix-getproto.patch
deleted file mode 100644
index cb1a9b2977a..00000000000
--- a/main/nspr/fix-getproto.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/nspr/pr/src/misc/prnetdb.c
-+++ b/nspr/pr/src/misc/prnetdb.c
-@@ -58,9 +58,7 @@
- * an int, and glibc's flavor takes five arguments.
- */
-
--#if defined(SOLARIS) || (defined(BSDI) && defined(_REENTRANT)) \
-- || (defined(LINUX) && defined(_REENTRANT) \
-- && defined(__GLIBC__) && __GLIBC__ < 2)
-+#if defined(SOLARIS) || (defined(BSDI) && defined(_REENTRANT))
- #define _PR_HAVE_GETPROTO_R
- #define _PR_HAVE_GETPROTO_R_POINTER
- #endif
diff --git a/main/nspr/fix-sgidefs-usage.patch b/main/nspr/fix-sgidefs-usage.patch
deleted file mode 100644
index 3719d6452a2..00000000000
--- a/main/nspr/fix-sgidefs-usage.patch
+++ /dev/null
@@ -1,40 +0,0 @@
---- a/nspr/pr/include/md/_linux.cfg
-+++ b/nspr/pr/include/md/_linux.cfg
-@@ -498,8 +498,8 @@
-
- #elif defined(__mips__)
-
--/* For _ABI64 */
--#include <sgidefs.h>
-+/* For _MIPS_SIM_ABI64 */
-+#include <asm/sgidefs.h>
-
- #ifdef __MIPSEB__
- #define IS_BIG_ENDIAN 1
-@@ -511,7 +511,7 @@
- #error "Unknown MIPS endianness."
- #endif
-
--#if _MIPS_SIM == _ABI64
-+#if _MIPS_SIM == _MIPS_SIM_ABI64
-
- #define IS_64
-
-@@ -555,7 +555,7 @@
- #define PR_BYTES_PER_WORD_LOG2 3
- #define PR_BYTES_PER_DWORD_LOG2 3
-
--#else /* _ABI64 */
-+#else /* _MIPS_SIM_ABI64 */
-
- #define PR_BYTES_PER_BYTE 1
- #define PR_BYTES_PER_SHORT 2
-@@ -597,7 +597,7 @@
- #define PR_BYTES_PER_WORD_LOG2 2
- #define PR_BYTES_PER_DWORD_LOG2 3
-
--#endif /* _ABI64 */
-+#endif /* _MIPS_SIM_ABI64 */
-
- #elif defined(__arm__)
-
diff --git a/main/nspr/lfs64.patch b/main/nspr/lfs64.patch
new file mode 100644
index 00000000000..2201d49c8ba
--- /dev/null
+++ b/main/nspr/lfs64.patch
@@ -0,0 +1,15 @@
+diff --git a/nspr/pr/include/md/_unixos.h b/nspr/pr/include/md/_unixos.h
+index 7d444cd..40ec47e 100644
+--- a/nspr/pr/include/md/_unixos.h
++++ b/nspr/pr/include/md/_unixos.h
+@@ -588,8 +588,8 @@ typedef struct stat64 _MDStat64;
+ typedef off64_t _MDOff64_t;
+
+ #elif defined(_PR_HAVE_OFF64_T)
+-typedef struct stat64 _MDStat64;
+-typedef off64_t _MDOff64_t;
++typedef struct stat _MDStat64;
++typedef off_t _MDOff64_t;
+ #elif defined(_PR_HAVE_LARGE_OFF_T)
+ typedef struct stat _MDStat64;
+ typedef off_t _MDOff64_t;
diff --git a/main/nss-pam-ldapd/APKBUILD b/main/nss-pam-ldapd/APKBUILD
index 073f527a425..316f8e0b596 100644
--- a/main/nss-pam-ldapd/APKBUILD
+++ b/main/nss-pam-ldapd/APKBUILD
@@ -1,19 +1,18 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=nss-pam-ldapd
pkgver=0.9.11
-pkgrel=2
+pkgrel=4
pkgdesc="An nsswitch module which uses directory servers"
url="https://arthurdejong.org/nss-pam-ldapd/"
arch="all"
-license="LGPL-2.0-or-later"
+license="LGPL-2.1-or-later"
makedepends="autoconf automake linux-pam-dev openldap-dev musl-nscd-dev"
install="nss-pam-ldapd.pre-install"
subpackages="$pkgname-doc $pkgname-openrc"
source="https://arthurdejong.org/nss-pam-ldapd/nss-pam-ldapd-$pkgver.tar.gz
10-define-netdb-internal.patch
nslcd.initd"
-
-[ "$CARCH" = "riscv64" ] && options="$options textrels"
+options="!check"
prepare() {
default_prepare
@@ -21,7 +20,6 @@ prepare() {
}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -35,7 +33,6 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
install -Dm755 "$srcdir"/nslcd.initd "$pkgdir"/etc/init.d/nslcd
}
diff --git a/main/nss/APKBUILD b/main/nss/APKBUILD
new file mode 100644
index 00000000000..d26d36a891a
--- /dev/null
+++ b/main/nss/APKBUILD
@@ -0,0 +1,165 @@
+# Contributor: Łukasz Jendrysik <scadu@yandex.com>
+# Contributor: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=nss
+pkgver=3.99
+pkgrel=0
+pkgdesc="Mozilla Network Security Services"
+url="https://developer.mozilla.org/docs/Mozilla/Projects/NSS"
+arch="all"
+license="MPL-2.0"
+depends_dev="nspr-dev"
+makedepends="
+ $depends_dev
+ bash
+ bsd-compat-headers
+ linux-headers
+ gyp
+ perl
+ sqlite-dev
+ zlib-dev
+ "
+subpackages="$pkgname-dev $pkgname-tools"
+source="https://ftp.mozilla.org/pub/security/nss/releases/NSS_${pkgver//./_}_RTM/src/nss-$pkgver.tar.gz
+ gyp-config.patch
+ no-werror.patch
+ nss.pc.in
+ nss-util.pc.in
+ nss-softokn.pc.in
+ nss-config.in
+ "
+
+# secfixes:
+# 3.98-r0:
+# - CVE-2023-5388
+# 3.76.1-r0:
+# - CVE-2022-1097
+# 3.73-r0:
+# - CVE-2021-43527
+# 3.58-r0:
+# - CVE-2020-25648
+# 3.55-r0:
+# - CVE-2020-12400
+# - CVE-2020-12401
+# - CVE-2020-12403
+# - CVE-2020-6829
+# 3.53.1-r0:
+# - CVE-2020-12402
+# 3.49-r0:
+# - CVE-2019-17023
+# 3.47.1-r0:
+# - CVE-2019-11745
+# 3.41-r0:
+# - CVE-2018-12404
+# 3.39-r0:
+# - CVE-2018-12384
+
+build() {
+ cd nss
+ CFLAGS="$CFLAGS -O2 -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto" \
+ ./build.sh \
+ --opt \
+ --system-nspr \
+ --system-sqlite \
+ --enable-libpkix
+}
+
+check() {
+ cd nss/tests
+ # other tests are failing for some reason and prompt an interactive password
+ export NSS_TESTS="cipher lowhash libpkix"
+ export NSS_CYCLES=standard
+ HOST=localhost DOMSUF=localdomain bash ./all.sh
+}
+
+package() {
+ replaces="nss-dev libnss"
+
+ local nss_vmajor=$(awk '/#define.*NSS_VMAJOR/ {print $3}' nss/lib/nss/nss.h)
+ local nss_vminor=$(awk '/#define.*NSS_VMINOR/ {print $3}' nss/lib/nss/nss.h)
+ local nss_vpatch=$(awk '/#define.*NSS_VPATCH/ {print $3}' nss/lib/nss/nss.h)
+ local nspr_version="$(pkg-config --modversion nspr)"
+
+ # pkgconfig files
+ mkdir -p "$pkgdir"/usr/lib/pkgconfig
+ local _pc; for _pc in nss.pc nss-util.pc nss-softokn.pc; do
+ sed "$srcdir"/$_pc.in \
+ -e "s,%libdir%,/usr/lib,g" \
+ -e "s,%prefix%,/usr,g" \
+ -e "s,%exec_prefix%,/usr/bin,g" \
+ -e "s,%includedir%,/usr/include/nss,g" \
+ -e "s,%SOFTOKEN_VERSION%,$pkgver,g" \
+ -e "s,%NSPR_VERSION%,$nspr_version,g" \
+ -e "s,%NSS_VERSION%,$pkgver,g" \
+ -e "s,%NSSUTIL_VERSION%,$pkgver,g" \
+ > "$pkgdir"/usr/lib/pkgconfig/$_pc
+ done
+ ln -sf nss.pc "$pkgdir"/usr/lib/pkgconfig/mozilla-nss.pc
+ chmod 644 "$pkgdir"/usr/lib/pkgconfig/*.pc
+
+ # nss-config
+ mkdir -p "$pkgdir"/usr/bin
+ sed "$srcdir"/nss-config.in \
+ -e "s,@libdir@,/usr/lib,g" \
+ -e "s,@prefix@,/usr/bin,g" \
+ -e "s,@exec_prefix@,/usr/bin,g" \
+ -e "s,@includedir@,/usr/include/nss,g" \
+ -e "s,@MOD_MAJOR_VERSION@,${nss_vmajor},g" \
+ -e "s,@MOD_MINOR_VERSION@,${nss_vminor},g" \
+ -e "s,@MOD_PATCH_VERSION@,${nss_vpatch},g" \
+ > "$pkgdir"/usr/bin/nss-config
+ chmod 755 "$pkgdir"/usr/bin/nss-config
+
+ local minor=${pkgver#*.}
+ minor=${minor%.*}
+ find dist/Release/lib -name "*.so" | while IFS= read -r file; do
+ install -Dm755 $file \
+ "$pkgdir"/usr/lib/${file##*/}.$minor
+ ln -s ${file##*/}.$minor "$pkgdir"/usr/lib/${file##*/}
+ done
+
+ for file in certutil cmsutil crlutil modutil pk12util shlibsign \
+ signtool signver ssltap; do
+ install -Dm755 dist/Release/bin/$file -t "$pkgdir"/usr/bin/
+ done
+
+ install -Dm644 dist/public/nss/*.h -t "$pkgdir"/usr/include/nss/
+ install -Dm644 dist/private/nss/blapi.h dist/private/nss/alghmac.h -t "$pkgdir"/usr/include/nss/private/
+}
+
+dev() {
+ # we cannot use default_dev because we need the .so symlinks in main package
+ local i
+ pkgdesc="Development files for nss"
+ depends="$pkgname=$pkgver-r$pkgrel $depends_dev"
+
+ amove usr/bin/nss-config
+
+ cd "$pkgdir"
+ for i in usr/include usr/lib/pkgconfig; do
+ if [ -e "$pkgdir/$i" ] || [ -L "$pkgdir/$i" ]; then
+ d="$subpkgdir/${i%/*}" # dirname $i
+ mkdir -p "$d"
+ mv "$pkgdir/$i" "$d"
+ rmdir "$pkgdir/${i%/*}" 2>/dev/null || true
+ fi
+ done
+}
+
+tools() {
+ pkgdesc="Tools for the Network Security Services"
+ replaces="nss"
+
+ amove usr/bin
+}
+
+sha512sums="
+8ae032f3cb8eadfe524505d20e430b90ed25af2b4732b2cf286c435b0fcd5701d2f5c48bd2cfb3f9aa0bfdf503c1f3d5394cf34f860f51a1141cc4a7586bba32 nss-3.99.tar.gz
+fba19cc35986dde6e5994ce67ab29fb4417814e12d6ae82c406600832eb8db79a0fdea4fd5eb6c5e77d565bfebb9e154e190796f67c06097ddae1539084243bb gyp-config.patch
+20046e6adf3d1cfcd8ddf2b92fe3f79678d569c653d26126dde6a967ab6c90a798b9a6bb6351f82d49dbd751d0637c5e46aa98dbe7342c8cd604c7e3dc8ce48a no-werror.patch
+75dbd648a461940647ff373389cc73bc8ec609139cd46c91bcce866af02be6bcbb0524eb3dfb721fbd5b0bc68c20081ed6f7debf6b24317f2a7ba823e8d3c531 nss.pc.in
+0f2efa8563b11da68669d281b4459289a56f5a3a906eb60382126f3adcfe47420cdcedc6ab57727a3afeeffa2bbb4c750b43bef8b5f343a75c968411dfa30e09 nss-util.pc.in
+09c69d4cc39ec9deebc88696a80d0f15eb2d8c94d9daa234a2adfec941b63805eb4ce7f2e1943857b938bddcaee1beac246a0ec627b71563d9f846e6119a4a15 nss-softokn.pc.in
+2971669e128f06a9af40a5ba88218fa7c9eecfeeae8b0cf42e14f31ed12bf6fa4c5ce60289e078f50e2669a9376b56b45d7c29d726a7eac69ebe1d1e22dc710b nss-config.in
+"
diff --git a/main/nss/gyp-config.patch b/main/nss/gyp-config.patch
new file mode 100644
index 00000000000..426426966d3
--- /dev/null
+++ b/main/nss/gyp-config.patch
@@ -0,0 +1,49 @@
+diff --git a/nss/coreconf/config.gypi b/nss/coreconf/config.gypi
+index 6900f79..9188d53 100644
+--- a/nss/coreconf/config.gypi
++++ b/nss/coreconf/config.gypi
+@@ -35,7 +35,7 @@
+ ['OS=="mac"', {
+ 'use_system_sqlite%': 1,
+ },{
+- 'use_system_sqlite%': 0,
++ 'use_system_sqlite%': 1,
+ }],
+ ['OS=="mac" or OS=="ios" or OS=="solaris" or OS=="win"', {
+ 'cc_use_gnu_ld%': 0,
+@@ -102,8 +102,8 @@
+ 'disable_intel_hw_sha%': 0,
+ 'disable_tests%': 0,
+ 'disable_chachapoly%': 0,
+- 'disable_deprecated_seed%': 0,
+- 'disable_deprecated_rc2%': 0,
++ 'disable_deprecated_seed%': 1,
++ 'disable_deprecated_rc2%': 1,
+ 'disable_dbm%': 1,
+ 'disable_libpkix%': 1,
+ 'disable_werror%': 0,
+diff --git a/nss/nss.gyp b/nss/nss.gyp
+index 2cf713a..10c9b63 100644
+--- a/nss/nss.gyp
++++ b/nss/nss.gyp
+@@ -210,20 +210,6 @@
+ 'cmd/vfychain/vfychain.gyp:vfychain',
+ 'cmd/vfyserv/vfyserv.gyp:vfyserv',
+ 'cmd/mpitests/mpitests.gyp:mpi_tests',
+- 'gtests/base_gtest/base_gtest.gyp:base_gtest',
+- 'gtests/certhigh_gtest/certhigh_gtest.gyp:certhigh_gtest',
+- 'gtests/cryptohi_gtest/cryptohi_gtest.gyp:cryptohi_gtest',
+- 'gtests/der_gtest/der_gtest.gyp:der_gtest',
+- 'gtests/certdb_gtest/certdb_gtest.gyp:certdb_gtest',
+- 'gtests/freebl_gtest/freebl_gtest.gyp:freebl_gtest',
+- 'gtests/mozpkix_gtest/mozpkix_gtest.gyp:mozpkix_gtest',
+- 'gtests/nss_bogo_shim/nss_bogo_shim.gyp:nss_bogo_shim',
+- 'gtests/pkcs11testmodule/pkcs11testmodule.gyp:pkcs11testmodule',
+- 'gtests/pk11_gtest/pk11_gtest.gyp:pk11_gtest',
+- 'gtests/smime_gtest/smime_gtest.gyp:smime_gtest',
+- 'gtests/softoken_gtest/softoken_gtest.gyp:softoken_gtest',
+- 'gtests/ssl_gtest/ssl_gtest.gyp:ssl_gtest',
+- 'gtests/util_gtest/util_gtest.gyp:util_gtest',
+ 'lib/ckfw/builtins/testlib/builtins-testlib.gyp:nssckbi-testlib',
+ ],
+ 'conditions': [
diff --git a/main/nss/no-werror.patch b/main/nss/no-werror.patch
new file mode 100644
index 00000000000..9055ae39755
--- /dev/null
+++ b/main/nss/no-werror.patch
@@ -0,0 +1,12 @@
+diff --git a/nss/coreconf/werror.py b/nss/coreconf/werror.py
+index 2f622c5..286cd46 100644
+--- a/nss/coreconf/werror.py
++++ b/nss/coreconf/werror.py
+@@ -38,7 +38,6 @@ def main():
+ print('-DNSS_NO_GCC48')
+ return
+
+- print('-Werror')
+ print('-Wall')
+
+ def set_warning(warning, contra=''):
diff --git a/main/nss/nss-config.in b/main/nss/nss-config.in
new file mode 100644
index 00000000000..f8f893e71a7
--- /dev/null
+++ b/main/nss/nss-config.in
@@ -0,0 +1,145 @@
+#!/bin/sh
+
+prefix=@prefix@
+
+major_version=@MOD_MAJOR_VERSION@
+minor_version=@MOD_MINOR_VERSION@
+patch_version=@MOD_PATCH_VERSION@
+
+usage()
+{
+ cat <<EOF
+Usage: nss-config [OPTIONS] [LIBRARIES]
+Options:
+ [--prefix[=DIR]]
+ [--exec-prefix[=DIR]]
+ [--includedir[=DIR]]
+ [--libdir[=DIR]]
+ [--version]
+ [--libs]
+ [--cflags]
+Dynamic Libraries:
+ nss
+ nssutil
+ ssl
+ smime
+EOF
+ exit $1
+}
+
+if test $# -eq 0; then
+ usage 1 1>&2
+fi
+
+lib_ssl=yes
+lib_smime=yes
+lib_nss=yes
+lib_nssutil=yes
+
+while test $# -gt 0; do
+ case "$1" in
+ -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+ *) optarg= ;;
+ esac
+
+ case $1 in
+ --prefix=*)
+ prefix=$optarg
+ ;;
+ --prefix)
+ echo_prefix=yes
+ ;;
+ --exec-prefix=*)
+ exec_prefix=$optarg
+ ;;
+ --exec-prefix)
+ echo_exec_prefix=yes
+ ;;
+ --includedir=*)
+ includedir=$optarg
+ ;;
+ --includedir)
+ echo_includedir=yes
+ ;;
+ --libdir=*)
+ libdir=$optarg
+ ;;
+ --libdir)
+ echo_libdir=yes
+ ;;
+ --version)
+ echo ${major_version}.${minor_version}.${patch_version}
+ ;;
+ --cflags)
+ echo_cflags=yes
+ ;;
+ --libs)
+ echo_libs=yes
+ ;;
+ ssl)
+ lib_ssl=yes
+ ;;
+ smime)
+ lib_smime=yes
+ ;;
+ nss)
+ lib_nss=yes
+ ;;
+ nssutil)
+ lib_nssutil=yes
+ ;;
+ *)
+ usage 1 1>&2
+ ;;
+ esac
+ shift
+done
+
+# Set variables that may be dependent upon other variables
+if test -z "$exec_prefix"; then
+ exec_prefix=`pkg-config --variable=exec_prefix nss`
+fi
+if test -z "$includedir"; then
+ includedir=`pkg-config --variable=includedir nss`
+fi
+if test -z "$libdir"; then
+ libdir=`pkg-config --variable=libdir nss`
+fi
+
+if test "$echo_prefix" = "yes"; then
+ echo $prefix
+fi
+
+if test "$echo_exec_prefix" = "yes"; then
+ echo $exec_prefix
+fi
+
+if test "$echo_includedir" = "yes"; then
+ echo $includedir
+fi
+
+if test "$echo_libdir" = "yes"; then
+ echo $libdir
+fi
+
+if test "$echo_cflags" = "yes"; then
+ echo -I$includedir
+fi
+
+if test "$echo_libs" = "yes"; then
+ libdirs="-Wl,-rpath-link,$libdir -L$libdir"
+ if test -n "$lib_ssl"; then
+ libdirs="$libdirs -lssl${major_version}"
+ fi
+ if test -n "$lib_smime"; then
+ libdirs="$libdirs -lsmime${major_version}"
+ fi
+ if test -n "$lib_nss"; then
+ libdirs="$libdirs -lnss${major_version}"
+ fi
+ if test -n "$lib_nssutil"; then
+ libdirs="$libdirs -lnssutil${major_version}"
+ fi
+ echo $libdirs
+fi
+
diff --git a/main/nss/nss-softokn.pc.in b/main/nss/nss-softokn.pc.in
new file mode 100644
index 00000000000..50485ac13f3
--- /dev/null
+++ b/main/nss/nss-softokn.pc.in
@@ -0,0 +1,11 @@
+prefix=%prefix%
+exec_prefix=%exec_prefix%
+libdir=%libdir%
+includedir=%includedir%
+
+Name: NSS-SOFTOKN
+Description: Network Security Services Softoken PKCS #11 Module
+Version: %SOFTOKEN_VERSION%
+Requires: nspr >= %NSPR_VERSION%, nss-util >= %NSSUTIL_VERSION%
+Libs: -lfreebl3 -lnssdbm3 -lsoftokn3
+Cflags: -I${includedir}/private
diff --git a/main/nss/nss-util.pc.in b/main/nss/nss-util.pc.in
new file mode 100644
index 00000000000..1310248e94a
--- /dev/null
+++ b/main/nss/nss-util.pc.in
@@ -0,0 +1,11 @@
+prefix=%prefix%
+exec_prefix=%exec_prefix%
+libdir=%libdir%
+includedir=%includedir%
+
+Name: NSS-UTIL
+Description: Network Security Services Utility Library
+Version: %NSSUTIL_VERSION%
+Requires: nspr >= %NSPR_VERSION%
+Libs: -L${libdir} -lnssutil3
+Cflags: -I${includedir}
diff --git a/main/nss/nss.pc.in b/main/nss/nss.pc.in
new file mode 100644
index 00000000000..d47b9e14699
--- /dev/null
+++ b/main/nss/nss.pc.in
@@ -0,0 +1,11 @@
+prefix=%prefix%
+exec_prefix=%exec_prefix%
+libdir=%libdir%
+includedir=%includedir%
+
+Name: NSS
+Description: Network Security Services
+Version: %NSS_VERSION%
+Requires: nspr >= %NSPR_VERSION%
+Libs: -lssl3 -lsmime3 -lnss3 -lnssutil3
+Cflags: -I${includedir}
diff --git a/main/ntfs-3g/APKBUILD b/main/ntfs-3g/APKBUILD
index 51417dfc236..1be9d17c3db 100644
--- a/main/ntfs-3g/APKBUILD
+++ b/main/ntfs-3g/APKBUILD
@@ -3,12 +3,12 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=ntfs-3g
_pkgreal=ntfs-3g_ntfsprogs
-pkgver=2022.5.17
-pkgrel=0
+pkgver=2022.10.3
+pkgrel=3
pkgdesc="Stable, full-featured, read-write NTFS"
url="https://www.tuxera.com/company/open-source/"
arch="all"
-license="GPL-2.0-or-later AND LGPL-2.0-or-later"
+license="GPL-2.0-only"
options="!check" # No test suite
makedepends="attr-dev util-linux-dev linux-headers"
subpackages="
@@ -23,6 +23,8 @@ source="https://tuxera.com/opensource/ntfs-3g_ntfsprogs-$pkgver.tgz
builddir="$srcdir/$_pkgreal-$pkgver"
# secfixes:
+# 2022.10.3-r0:
+# - CVE-2022-40284
# 2022.5.17-r0:
# - CVE-2021-46790
# - CVE-2022-30783
@@ -63,5 +65,5 @@ progs() {
}
sha512sums="
-25e6d3412958576b0cd614f5d93201c0d7e8bbee78fbaf956718a3825c1435b3f0c3631ea1cc60b5b1be6e9ae7d58c0c03b0bebb69edee3bf181a966734336df ntfs-3g_ntfsprogs-2022.5.17.tgz
+891589483954423b19bef6e8a174fb4311ad92b6397a0db80f77c72b746bf18c2fa12457a571947f92755637a6bc784188920d4f017ae12a420819ab0d74af59 ntfs-3g_ntfsprogs-2022.10.3.tgz
"
diff --git a/main/numactl/APKBUILD b/main/numactl/APKBUILD
index ce5f9e5cf9a..983256f4bf9 100644
--- a/main/numactl/APKBUILD
+++ b/main/numactl/APKBUILD
@@ -1,38 +1,45 @@
# Maintainer: Daniel Sabogal <dsabogalcc@gmail.com>
pkgname=numactl
-pkgver=2.0.14
+pkgver=2.0.18
pkgrel=0
pkgdesc="Simple NUMA policy support"
url="https://github.com/numactl/numactl"
arch="all"
license="LGPL-2.1-only"
-makedepends="autoconf automake libtool linux-headers"
+makedepends="linux-headers"
subpackages="$pkgname-dev $pkgname-doc $pkgname-tools"
-source="numactl-$pkgver.tar.gz::https://github.com/numactl/numactl/archive/v$pkgver.tar.gz
- musl.patch"
+source="https://github.com/numactl/numactl/releases/download/v$pkgver/numactl-$pkgver.tar.gz"
case "$CARCH" in
- s390x) options="!check";; # FAIL: distance test
- mips*) options="!check";; # XXX: numa support not enabled on builder
+ppc64le)
+ # no numa support in builder's kernel
+ options="$options !check"
+ ;;
esac
-prepare() {
- default_prepare
-
- ./autogen.sh
-}
-
-check() {
- make check VERBOSE=1 TESTS='test/distance test/nodemap test/tbitmap'
-}
-
build() {
./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
--prefix=/usr \
--mandir=/usr/share/man
make
}
+check() {
+ local tests="test/nodemap test/tbitmap"
+
+ # riscv64 builder: "FAIL test/distance (exit status: 139)"
+ case "$CARCH" in
+ riscv64) ;;
+ *)
+ tests="test/distance $tests"
+ ;;
+ esac
+
+ make check VERBOSE=1 TESTS="$tests"
+}
+
package() {
make DESTDIR="$pkgdir" install
@@ -44,9 +51,9 @@ tools() {
pkgdesc="NUMA policy control tools"
license="GPL-2.0-only"
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr
+ amove usr/bin
}
-sha512sums="adaf405f092fd9653f26d00f8c80cb83852c56ebd5d00e714e20d505008e74aa7105b0fb7aa55a605deac0d1491ceff57de931037d33e7944fca105bc6510ed4 numactl-2.0.14.tar.gz
-c24affa5a8a8ea83d7f0ee384dc0629e17a5c4201357132f770f894ad4236772116d96d8389d54fb99095af40d1ccbffc3170b5fb9cc88cfca39179f50bee9c9 musl.patch"
+sha512sums="
+17abe7a3744065edb5ec1e27135873629031c509313809ca99e0d9254f7a5cb00cce5b32173e811e9b9d7cb407aabdcbe3c6be6e3b094ad3e7d696a154b7f1ec numactl-2.0.18.tar.gz
+"
diff --git a/main/numactl/musl.patch b/main/numactl/musl.patch
deleted file mode 100644
index 009233f6308..00000000000
--- a/main/numactl/musl.patch
+++ /dev/null
@@ -1,21 +0,0 @@
---- numactl-2.0.11/syscall.c.orig
-+++ numactl-2.0.11/syscall.c
-@@ -115,14 +115,16 @@
-
- #endif
-
--#if defined(__GLIBC__) && __GLIBC_PREREQ(2, 11)
-+#if defined(__GLIBC__)
-+# if __GLIBC_PREREQ(2,11)
-
- /* glibc 2.11 seems to have working 6 argument sycall. Use the
- glibc supplied syscall in this case.
- The version cut-off is rather arbitary and could be probably
- earlier. */
-
--#define syscall6 syscall
-+# define syscall6 syscall
-+#endif
- #elif defined(__x86_64__)
- /* 6 argument calls on x86-64 are often buggy in both glibc and
- asm/unistd.h. Add a working version here. */
diff --git a/main/nvme-cli/APKBUILD b/main/nvme-cli/APKBUILD
new file mode 100644
index 00000000000..82201da4077
--- /dev/null
+++ b/main/nvme-cli/APKBUILD
@@ -0,0 +1,50 @@
+# Contributor: Florian Heigl <florian.heigl@gmail.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=nvme-cli
+pkgver=2.8
+pkgrel=0
+pkgdesc="NVM-Express user space tooling for Linux"
+arch="all"
+url="https://github.com/linux-nvme/nvme-cli"
+license="GPL-2.0-or-later"
+makedepends="
+ bash
+ libnvme-dev
+ linux-headers
+ meson
+ util-linux-dev
+ uuidgen
+ zlib-dev
+ "
+checkdepends="
+ py3-nose2
+ "
+subpackages="
+ $pkgname-doc
+ $pkgname-bash-completion
+ $pkgname-zsh-completion
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/linux-nvme/nvme-cli/archive/v$pkgver.tar.gz"
+options="!check" # needs pci nvme stuff
+
+build() {
+ abuild-meson \
+ -Db_lto=true \
+ -Ddocs=man \
+ -Dudevrulesdir=/usr/lib/udev/rules.d/ \
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --print-errorlogs --no-rebuild -C output
+}
+
+package() {
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+ rm -rf "$pkgdir"/usr/lib/systemd
+}
+
+sha512sums="
+1be0bed4e1bf8a25229f301c2b00b78d2de4eaf8ff2b815fa75e44dd35ddd7787604152bdf00696130df3281206a734c5f408c3f2127440e05c2e4b1cdbb79d4 nvme-cli-2.8.tar.gz
+"
diff --git a/main/obex-data-server/APKBUILD b/main/obex-data-server/APKBUILD
index 28e06a4f0b6..46edd8eb874 100644
--- a/main/obex-data-server/APKBUILD
+++ b/main/obex-data-server/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=obex-data-server
pkgver=0.4.6
-pkgrel=4
+pkgrel=6
pkgdesc="D-Bus service for Obex access"
url="http://wiki.muiline.com/obex-data-server"
license="GPL-2.0-or-later"
@@ -9,8 +9,9 @@ arch="all"
makedepends="dbus-glib-dev openobex-dev libusb-compat-dev bluez-dev
gdk-pixbuf-dev"
subpackages="$pkgname-doc"
-source="http://tadas.dailyda.com/software/obex-data-server-$pkgver.tar.gz
+source="https://dev.alpinelinux.org/archive/obex-data-server/obex-data-server-$pkgver.tar.gz
obex-data-server-0.4.6-build-fixes-1.patch"
+options="!check"
build() {
./configure \
diff --git a/main/oidentd/APKBUILD b/main/oidentd/APKBUILD
index 57ffe6865b1..7ebe0eccee9 100644
--- a/main/oidentd/APKBUILD
+++ b/main/oidentd/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=oidentd
pkgver=2.5.0
-pkgrel=0
+pkgrel=2
pkgdesc="Configurable IDENT server that supports NAT/IP masq"
url="https://oidentd.janikrabe.com"
arch="all"
@@ -14,6 +14,12 @@ source="https://files.janikrabe.com/pub/oidentd/releases/$pkgver/oidentd-$pkgver
$pkgname.initd
$pkgname.confd
"
+options="!check"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
./configure \
@@ -22,7 +28,8 @@ build() {
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
- --infodir=/usr/share/info
+ --infodir=/usr/share/info \
+ have_sockaddr_storage=1
make
}
@@ -33,6 +40,8 @@ package() {
install -D -m644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
}
-sha512sums="31ff2cad2afaa9f07a0aa35ad904047de78f168f9e6d6a3fcf7397eb89e6b930c30741eb1de44e3c2c24f48ca7d860cafd2771f464b336d400ab6d98384e9320 oidentd-2.5.0.tar.xz
+sha512sums="
+31ff2cad2afaa9f07a0aa35ad904047de78f168f9e6d6a3fcf7397eb89e6b930c30741eb1de44e3c2c24f48ca7d860cafd2771f464b336d400ab6d98384e9320 oidentd-2.5.0.tar.xz
8f4efbd888ab729be6e04197a6f05080a2c5cc3d0c2b6944529f087a9be3a5e4946138aed9c8d74bdce64664e9ba5f2533859e950c6083ce778dac5147cb6a60 oidentd.initd
-387acc88fb9331ea57614785abc679dea69401c2d6d266c1481da208d8f9c9d5fb15619aab3871fff51aa5871bd1bd5f55baa7ba9748e8ced97d7d1fbabb1b40 oidentd.confd"
+387acc88fb9331ea57614785abc679dea69401c2d6d266c1481da208d8f9c9d5fb15619aab3871fff51aa5871bd1bd5f55baa7ba9748e8ced97d7d1fbabb1b40 oidentd.confd
+"
diff --git a/main/one-context/APKBUILD b/main/one-context/APKBUILD
index 44a2e1ac8e8..61247ddef21 100644
--- a/main/one-context/APKBUILD
+++ b/main/one-context/APKBUILD
@@ -1,20 +1,23 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=one-context
-pkgver=0.5.5
+pkgver=0.9.0
pkgrel=0
pkgdesc="Contextualization scripts for OpenNebula guests"
url="https://github.com/jirutka/one-context/"
arch="noarch"
license="MIT"
-depends="blkid"
-source="https://github.com/jirutka/$pkgname/archive/v$pkgver/$pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+depends="blkid partx sfdisk"
+source="https://github.com/jirutka/one-context/archive/v$pkgver/one-context-$pkgver.tar.gz"
-package() {
- cd "$builddir"
+check() {
+ make check
+}
- PREFIX=/usr DESTDIR="$pkgdir" DISTRO=alpine ./install
+package() {
+ make install PREFIX=/usr DESTDIR="$pkgdir"
}
-sha512sums="7d82a77a766ccf050b1f46aaa5ef43b0cdeb4413ef65d9304c965eacfe1ba293b693963513e5f3e98e104c93353b5a0429894f28a8f9a9cdd6c64d6579a2a548 one-context-0.5.5.tar.gz"
+sha512sums="
+21d4464ef7f56880634b97fdfca6766423a758c7726e9f9c7980f0eee4a1ee368a3c0fa4c0f94df7a2377e2b1ae2642adc3970e2d045e0d8ee8bcd70689acd21 one-context-0.9.0.tar.gz
+"
diff --git a/main/oniguruma/APKBUILD b/main/oniguruma/APKBUILD
index 03f839d21b4..4cf7915ddd1 100644
--- a/main/oniguruma/APKBUILD
+++ b/main/oniguruma/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=oniguruma
-pkgver=6.9.8
+pkgver=6.9.9
pkgrel=0
pkgdesc="a regular expressions library"
url="https://github.com/kkos/oniguruma"
@@ -42,5 +42,5 @@ package() {
}
sha512sums="
-6f541e8cecf73b029e54d4e11a6ddffe058d6c47674086df5a3921323351032819aca2719d35584648c3bffce6779d976a7513eabd4645362b3af701e59c67ca oniguruma-6.9.8.tar.gz
+7c89247d8504c635687dc61b39b39b5afefa4851b24409a8eab31273f1cbc88f3db89095ae4b135bd034147d2616c2e18fc74887300b89532eedeab75677f437 oniguruma-6.9.9.tar.gz
"
diff --git a/main/open-iscsi/0001-Don-t-use-GNU-sed.patch b/main/open-iscsi/0001-Don-t-use-GNU-sed.patch
deleted file mode 100644
index b3b34060a56..00000000000
--- a/main/open-iscsi/0001-Don-t-use-GNU-sed.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 0cb6851315f2fa4e8c6551e2f5fcabe540c382c8 Mon Sep 17 00:00:00 2001
-From: Leonardo Arena <rnalrd@alpinelinux.org>
-Date: Wed, 16 Feb 2022 08:52:48 +0000
-Subject: [PATCH] Don't use GNU sed
-
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 8c9be16..52fc99f 100644
---- a/Makefile
-+++ b/Makefile
-@@ -6,7 +6,7 @@
- # that you want everything installed into.
- DESTDIR ?=
-
--SED = /usr/bin/sed
-+SED = /bin/sed
-
- prefix = /usr
- exec_prefix = /
---
-2.35.1
-
diff --git a/main/open-iscsi/APKBUILD b/main/open-iscsi/APKBUILD
index e0be7339415..4e3f9ad1990 100644
--- a/main/open-iscsi/APKBUILD
+++ b/main/open-iscsi/APKBUILD
@@ -1,51 +1,56 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=open-iscsi
-pkgver=2.1.6
-pkgrel=0
+pkgver=2.1.9
+pkgrel=1
pkgdesc="High performance, transport independent, multi-platform iSCSI initiator"
url="https://www.open-iscsi.com"
arch="all"
license="GPL-2.0-only"
-makedepends="autoconf automake kmod-dev libmount libtool linux-headers openssl1.1-compat-dev
- open-isns-dev util-linux-dev"
+makedepends="kmod-dev libmount linux-headers openssl-dev>3
+ open-isns-dev util-linux-dev meson bash perl"
options="!check"
subpackages="$pkgname-dev $pkgname-libs $pkgname-doc $pkgname-openrc"
source="$pkgname-$pkgver.tar.gz::https://github.com/open-iscsi/open-iscsi/archive/$pkgver.tar.gz
iscsid.initd
iscsid.confd
iscsid.conf
+ bash.patch
musl-fixes.patch
add-missing-headers.patch
dont-use-lib64.patch
remove-werror.patch
- 0001-Don-t-use-GNU-sed.patch
"
-
build() {
- make prefix=/usr \
- exec_prefix=/usr \
- localstatedir=/var \
- sysconfdir=/etc \
- mandir=/usr/share/man \
- OPTFLAGS="$CFLAGS -DNO_SYSTEMD"
+ # musl doesn't have glob_onlydir but by spec it's also not guaranteed to return only dirs anyway
+ CFLAGS="$CFLAGS -DGLOB_ONLYDIR=0" \
+ abuild-meson \
+ -Db_lto=true \
+ -Dno_systemd=true \
+ -Drulesdir="/usr/lib/udev/rules.d" \
+ . output
+ meson compile -C output
+}
+
+check() {
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
- make prefix=/usr exec_prefix=/usr DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
install -Dm755 "$srcdir"/iscsid.initd "$pkgdir"/etc/init.d/iscsid
install -Dm644 "$srcdir"/iscsid.confd "$pkgdir"/etc/conf.d/iscsid
install -Dm644 "$srcdir"/iscsid.conf "$pkgdir"/etc/iscsi/iscsid.conf
}
sha512sums="
-4a32a76c1c32d7d1a01fe3a0f88ce9616a54323ec043757be73051eb41ebae8de90ce057acce72fb6fe07aa47e814c9bc6ee88b13fa7d7769ca10c5175974f1d open-iscsi-2.1.6.tar.gz
+25c28da5918b775ca54d3e55591eca0b4f7b5be33d803cad28fce1e9b2334b43cee1423a4e1819497b322e0f420dcd8d74226f442ca432233d1753565b11a5bb open-iscsi-2.1.9.tar.gz
52e273d20d3c95c943409d3b6251f0447e19a822d32ff33d3c8dc1e9b8c6065ab72b823fe9cb72f5d92256d3a219417a3847dc59815d29f727fc59c4e49716a8 iscsid.initd
3ba1825ee8b39ce2c58d70b59d6c2d6a954a8c65ce9adf920fb44d046cfe0f7f54bcc70f3f3c24754f0e866abdc92b4a1716fb516c45278b217532b97a6d948a iscsid.confd
4cc7c1923047616d908806aab96d468cb7b99ff9f8a9e02a039866b66db4ae856bd9f414854712d8a57c21614674f4468736bce26a4199c2ff054a165bca26e0 iscsid.conf
+89e44837a1d7fcd3b7de88ae7f25a3c2d3ff24cf01bbe752882e56d25e9ee41ef57dac9d21257057b9a4fcd6fe18650b7f4926f934d348fdb6080e6b42e43ac1 bash.patch
1b89ffd6de0dc7bb63fc2702a97e49df4369158c66ee609acfc041b1677c07fbd964b7a709f1f324fa51a9842d4d3e11611d9783e18d526372d468163c0ac8db musl-fixes.patch
104b559eb368459a7151657fbca63927b6b1032bda272e903a1633c8b9d3ed199f2c5cca0e6741bcd5fa6e860d1ff2d111caf58d60d9f0a736ad767e8ae0427b add-missing-headers.patch
86a9c4be4abd34821f156f9df586c530dc2b0efc96e961cb15fd22846856cc1e76aae85806e8d0eb9f3d3e3acd7f73fe8d2a1de8944903b503e256e6a99bb2dd dont-use-lib64.patch
d99ef789d1aab1e7ba81e3f2b334a9518f1174cd53b4600bfd7e866973cdfa87664b2161c994ae7c35526a7d9165e0e2b3036f7dacc139b90fa3d0a90b6f6599 remove-werror.patch
-be397383b812e3d4cfdfc28745bfb3cab7e1d765a10f9532f48541c9686b1767818c4177d3aae7aeaad1bc1647b333c75db27fe42d075f4eb1581a5dd5426a6e 0001-Don-t-use-GNU-sed.patch
"
diff --git a/main/open-iscsi/bash.patch b/main/open-iscsi/bash.patch
new file mode 100644
index 00000000000..d4fd7d52072
--- /dev/null
+++ b/main/open-iscsi/bash.patch
@@ -0,0 +1,79 @@
+diff --git a/etc/systemd/ibft-rule-generator b/etc/systemd/ibft-rule-generator
+index a464fd6..f0fcd32 100644
+--- a/etc/systemd/ibft-rule-generator
++++ b/etc/systemd/ibft-rule-generator
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #
+ # Systemd rule generator for ibft interfaces
+ #
+diff --git a/iscsiuio/src/unix/build_date.sh b/iscsiuio/src/unix/build_date.sh
+index 65888fe..be999c8 100755
+--- a/iscsiuio/src/unix/build_date.sh
++++ b/iscsiuio/src/unix/build_date.sh
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #
+ # build the build_date.c and build_date.h files
+ #
+diff --git a/libopeniscsiusr/docs/list-man-pages.sh b/libopeniscsiusr/docs/list-man-pages.sh
+index dda8277..044eb71 100755
+--- a/libopeniscsiusr/docs/list-man-pages.sh
++++ b/libopeniscsiusr/docs/list-man-pages.sh
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #
+ # list man pages found given one or more ??? passed in
+ #
+diff --git a/utils/iscsi-gen-initiatorname.sh.template b/utils/iscsi-gen-initiatorname.sh.template
+index 5c2bfdf..86148f0 100644
+--- a/utils/iscsi-gen-initiatorname.sh.template
++++ b/utils/iscsi-gen-initiatorname.sh.template
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #
+ # iscsi-gen-initiatorname
+ #
+diff --git a/utils/iscsi_discovery.sh b/utils/iscsi_discovery.sh
+index be2f390..fbe066b 100755
+--- a/utils/iscsi_discovery.sh
++++ b/utils/iscsi_discovery.sh
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #
+ # Copyright (C) Voltaire Ltd. 2006. ALL RIGHTS RESERVED.
+ #
+diff --git a/utils/iscsi_fw_login.sh.template b/utils/iscsi_fw_login.sh.template
+index aae9e4c..6758da2 100644
+--- a/utils/iscsi_fw_login.sh.template
++++ b/utils/iscsi_fw_login.sh.template
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #
+ # iscsi_fw_login -- login to iscsi firmware targets, if any
+ #
+diff --git a/utils/iscsi_offload.sh b/utils/iscsi_offload.sh
+index 1869fe1..5de465a 100755
+--- a/utils/iscsi_offload.sh
++++ b/utils/iscsi_offload.sh
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!/bin/sh
+ #
+ # iscsi_offload
+ #
+@@ -239,7 +239,7 @@ if iscsiadm -m iface -I $ioe_iface > /dev/null 2>&1 ; then
+ ioe_mac=$(iscsiadm -m iface -I $ioe_iface 2> /dev/null| sed -n "s/iface\.hwaddress = \(.*\)/\1/p")
+ ioe_mod=$(iscsiadm -m iface -I $ioe_iface 2> /dev/null| sed -n "s/iface\.transport_name = \(.*\)/\1/p")
+ ipaddr=$(iscsiadm -m iface -I $ioe_iface 2> /dev/null| sed -n "s/iface\.ipaddress = \(.*\)/\1/p")
+- if [ "$ipaddr" == "<empty>" ] ; then
++ if [ "$ipaddr" = "<empty>" ] ; then
+ ipaddr=
+ fi
+ elif [ "$mod" = "be2iscsi" ] ; then
diff --git a/main/open-isns/APKBUILD b/main/open-isns/APKBUILD
index c730938b494..ac2f27fcd89 100644
--- a/main/open-isns/APKBUILD
+++ b/main/open-isns/APKBUILD
@@ -1,48 +1,31 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=open-isns
-pkgver=0.101
-pkgrel=2
+pkgver=0.102
+pkgrel=1
pkgdesc="iSNS server and client for Linux"
url="https://github.com/open-iscsi/open-isns"
arch="all"
license="LGPL-2.1-or-later"
-makedepends="autoconf automake openssl1.1-compat-dev musl-dev"
+makedepends="meson openssl-dev>3 musl-dev"
options="!check"
subpackages="$pkgname-dev $pkgname-doc $pkgname-lib"
source="$pkgname-$pkgver.tar.gz::https://github.com/open-iscsi/open-isns/archive/v$pkgver.tar.gz
"
-prepare() {
- default_prepare
- update_config_sub
- autoreconf -fi
-}
-
build() {
- CFLAGS="$CFLAGS -Wno-error" \
- ./configure \
- --host=$CHOST \
- --build=$CBUILD \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --enable-shared
- make all
+ abuild-meson . output
+ meson compile -C output
}
package() {
- make DESTDIR="$pkgdir" install
- make DESTDIR="$pkgdir" install_hdrs
- make DESTDIR="$pkgdir" install_lib
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
rm -rf "$pkgdir"/usr/lib/systemd
- rm -rf "$pkgdir"/usr/lib/*.a
}
lib() {
- cd "$builddir"
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/lib "$subpkgdir"/usr
+ amove usr/lib
}
-sha512sums="e5a392127b0d85f36e9e4aa963c0c502af8c5aea0aba6d12abb4425649969dcc20ba6e87a99083626d981438439b17b71a86320f816042d82ed5dbe7e7a63e77 open-isns-0.101.tar.gz"
+sha512sums="
+f5ae8af89b85565181c2f6def9834d9dab0a15d5d9b28721cce116c5580173ed9adba219e1ede48988cb57f047578db4ece458c4a7db598412c7583e56393d2b open-isns-0.102.tar.gz
+"
diff --git a/main/open-lldp/APKBUILD b/main/open-lldp/APKBUILD
index a4038b5c7ad..7c050233acb 100644
--- a/main/open-lldp/APKBUILD
+++ b/main/open-lldp/APKBUILD
@@ -1,35 +1,45 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=open-lldp
-_realname=lldpad
-pkgver=0.9.46
-pkgrel=5
+pkgver=1.1
+pkgrel=1
pkgdesc="Open Source implementation of the IEEE standard 802.1AB Link Layer Discovery Protocol (LLDP)"
url="http://www.open-lldp.org"
arch="all"
license="GPL-2.0-only"
-makedepends="autoconf automake bash flex libtool libconfig-dev libnl-dev
- readline-dev linux-headers bsd-compat-headers"
+makedepends="
+ autoconf
+ automake
+ bsd-compat-headers
+ flex
+ libconfig-dev
+ libnl3-dev
+ libtool
+ linux-headers
+ readline-dev
+ "
subpackages="
$pkgname-dev
$pkgname-doc
- $pkgname-bash-completion:bashcomp:noarch
+ $pkgname-openrc
+ $pkgname-bash-completion
"
-source="http://ftp-osl.osuosl.org/pub/open-lldp/open-lldp-$pkgver.tar.gz
- clif.h.patch
- $pkgname.initd
- $pkgname.confd
+source="$pkgname-$pkgver.tar.gz::https://github.com/intel/openlldp/archive/refs/tags/v$pkgver.tar.gz
+ reopenstdout.patch
+ lldpad.initd
+ lldpad.confd
"
+ # clif.h.patch
+builddir="$srcdir/openlldp-$pkgver"
prepare() {
default_prepare
- sed -i 's/ln -T -s/ln -s/' Makefile.am
- sed -i -e 's/-Werror//' Makefile.am configure.ac
+ # sed -i 's/ln -T -s/ln -s/' Makefile.am
+ # sed -i -e 's/-Werror//' Makefile.am configure.ac
./bootstrap.sh
}
build() {
- export CFLAGS="$CFLAGS -fgnu89-inline -fcommon"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -40,27 +50,24 @@ build() {
make
}
+check() {
+ make check
+}
+
package() {
make DESTDIR="$pkgdir" install
- mkdir -p "$pkgdir"/usr/include/dcbd
- # ln -s /usr/include/lldpad "$pkgdir"/usr/include/dcbd
- ln -s /usr/include/lldpad/lldp_dcbx_cmds.h "$pkgdir"/usr/include/dcbd/clif_cmds.h
- install -m755 -D ../../$pkgname.initd "$pkgdir"/etc/init.d/$_realname
- install -m644 -D ../../$pkgname.confd "$pkgdir"/etc/conf.d/$_realname
+ rm -r "$pkgdir"/usr/lib/systemd
+
+ install -Dm755 "$srcdir"/lldpad.initd "$pkgdir"/etc/init.d/lldpad
+ install -Dm644 "$srcdir"/lldpad.confd "$pkgdir"/etc/conf.d/lldpad
mkdir -p "$pkgdir"/usr/share/bash-completion
mv "$pkgdir"/etc/bash_completion.d "$pkgdir"/usr/share/bash-completion/completions
}
-bashcomp() {
- depends=""
- pkgdesc="Bash completions for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
-
- amove usr/share/bash-completion/completions
-}
-
-sha512sums="45982ba69c159ca386970d49de8cee70b654e762b60d95c96a4794ee696e6c889694bb12eb1454e6c176152c949e67af38974a431838c3788d9bc42751c60878 open-lldp-0.9.46.tar.gz
-fd9eca241564e76df2b97d8048b788fc35c3d791a1784386e68bf92dfd39076b356546adee42028007483f0cdb579b0da519d0376791d0f902f7e83df60d9306 clif.h.patch
-cfd618d2414ec1624e66105b5357de93414b0320badf63b78cbab9b5bb493bd8ef7cac9a22ba4d60418037d2d6636469a20dc288906348c2332beb786f67f808 open-lldp.initd
-8f8a68b9764e3b2be0cc01a37debb099e3d9021c354eb8d584a5123c470002f1f61ecc5688e5d958c8c576fd36df7a65233192221849a8fc51e999a7c5ea5678 open-lldp.confd"
+sha512sums="
+794bd2d43e7b6e76a1aa9d1e650f24a52b4cb66166058ce4ec3f0c6567bcdff149ca86ab9108e82be14f7e7bf43c7486479edc23d851e739a2a22de7038ecb35 open-lldp-1.1.tar.gz
+74cf3d7ef3c6d00cf05713bf5ef505292b6cfd7d6e080993947e88a44d725906d7243d59ee12bb468c093dc26937a5efe8fb644eca1d4c5b545825ce78253362 reopenstdout.patch
+d8c7d3c449a9c557814f70a5af15b1b8e34f4c465293aa962bc3a8310e24f8363cf15e75d3cbdc8894ca7a0b1e1962daaaba75ecb0caf770471ae0988e85be7b lldpad.initd
+5dc09090913e55bde9aab3ad33eb7889942bb7a0583ae1a94cc31f6c8e34ccae18c02f2c191e157f81f2949cc91998d673b37d60522dc9c476d63136512f2b58 lldpad.confd
+"
diff --git a/main/open-lldp/lldpad.confd b/main/open-lldp/lldpad.confd
new file mode 100644
index 00000000000..be4069e1649
--- /dev/null
+++ b/main/open-lldp/lldpad.confd
@@ -0,0 +1 @@
+#command_args="-f /etc/lldpad.conf"
diff --git a/main/open-lldp/lldpad.initd b/main/open-lldp/lldpad.initd
new file mode 100755
index 00000000000..f5807a45a08
--- /dev/null
+++ b/main/open-lldp/lldpad.initd
@@ -0,0 +1,12 @@
+#!/sbin/openrc-run
+
+name="lldpad"
+command="/usr/sbin/lldpad"
+command_args="$command_args -p"
+command_background=true
+pidfile=/run/$RC_SVCNAME.pid
+
+depend() {
+ need net
+ after firewall
+}
diff --git a/main/open-lldp/open-lldp.confd b/main/open-lldp/open-lldp.confd
deleted file mode 100644
index a4d4b1de802..00000000000
--- a/main/open-lldp/open-lldp.confd
+++ /dev/null
@@ -1,2 +0,0 @@
-# Remove existing pid file at startup
-OPTS="-d -f /etc/lldpad.conf"
diff --git a/main/open-lldp/open-lldp.initd b/main/open-lldp/open-lldp.initd
deleted file mode 100755
index 468473a6407..00000000000
--- a/main/open-lldp/open-lldp.initd
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/sbin/openrc-run
-
-NAME="lldpad"
-DAEMON="/usr/sbin/$NAME"
-pidfile=/var/run/$NAME.pid
-
-depend() {
- need net
- after firewall
-}
-
-start() {
- ebegin "Starting ${NAME}"
- start-stop-daemon --start --quiet --pidfile ${pidfile} \
- --exec ${DAEMON} -- ${OPTS}
- eend $?
-}
-
-stop() {
- ebegin "Stopping ${NAME}"
- start-stop-daemon --stop --exec ${DAEMON}
- eend $?
-}
-
diff --git a/main/open-lldp/reopenstdout.patch b/main/open-lldp/reopenstdout.patch
new file mode 100644
index 00000000000..bf098e1616f
--- /dev/null
+++ b/main/open-lldp/reopenstdout.patch
@@ -0,0 +1,13 @@
+diff --git a/test/lldp_clif_test.c b/test/lldp_clif_test.c
+index 11a3e9c..3154c98 100644
+--- a/test/lldp_clif_test.c
++++ b/test/lldp_clif_test.c
+@@ -64,7 +64,7 @@ static void unhook_stdout()
+ {
+ if (hook_fd != -1) {
+ dup2(hook_fd, STDOUT_FILENO);
+- stdout = fdopen(STDOUT_FILENO, "w");
++ //stdout = fdopen(STDOUT_FILENO, "w");
+ close(hook_fd);
+ hook_fd = -1;
+
diff --git a/main/openjade/APKBUILD b/main/openjade/APKBUILD
index ac9eacc1126..c3df238c024 100644
--- a/main/openjade/APKBUILD
+++ b/main/openjade/APKBUILD
@@ -1,19 +1,17 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Sören Tempel <soeren+alpine@soeren-tempel.net>
+# Maintainer:
pkgname=openjade
pkgver=1.3.2
-pkgrel=6
+pkgrel=9
pkgdesc="Implementation of the DSSSL style language"
-url="http://openjade.sourceforge.net"
+url="https://openjade.sourceforge.net/"
arch="all"
license="custom"
-depends=""
-depends_dev=""
+options="!check" # no testsuite
makedepends="$depends_dev opensp-dev perl libtool autoconf"
-install=""
subpackages="$pkgname-dev $pkgname-libs $pkgname-doc"
-source="https://prdownloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+source="https://prdownloads.sourceforge.net/openjade/openjade-$pkgver.tar.gz
openjade-1.3.2-msggen.pl.patch
openjade-1.3.2-ldflags.patch
openjade-1.3.2-deplibs.patch
@@ -22,8 +20,6 @@ source="https://prdownloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
openjade-1.3.2-respect-ldflags.patch
"
-builddir="$srcdir"/$pkgname-$pkgver
-
prepare() {
default_prepare
update_config_guess
diff --git a/main/openjpeg/APKBUILD b/main/openjpeg/APKBUILD
index 5e703ba7f2b..5969956ab0b 100644
--- a/main/openjpeg/APKBUILD
+++ b/main/openjpeg/APKBUILD
@@ -1,18 +1,17 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=openjpeg
-pkgver=2.5.0
+pkgver=2.5.2
pkgrel=0
pkgdesc="Open-source implementation of JPEG2000 image codec"
url="https://www.openjpeg.org/"
arch="all"
options="!check" # No test suite.
-license="BSD-2-Clause-NetBSD"
+license="BSD-2-Clause"
# Some of the development CMake files installed by -dev depend on tools provided by the -tools subpackage
depends_dev="$pkgname-tools"
makedepends="libpng-dev tiff-dev lcms2-dev doxygen cmake samurai"
subpackages="$pkgname-dev $pkgname-tools"
source="https://github.com/uclouvain/openjpeg/archive/v$pkgver/openjpeg-v$pkgver.tar.gz
- fix-cmakelists.patch
"
# secfixes:
@@ -73,6 +72,5 @@ tools() {
}
sha512sums="
-08975a2dd79f1e29fd1824249a5fbe66026640ed787b3a3aa8807c2c69f994240ff33e2132f8bf15bbc2202bef7001f98e42d487231d4eebc8e503538658049a openjpeg-v2.5.0.tar.gz
-b50cd382d08647db18f202769aae7df87613a18143a30e360e8f00aba1ec1b7fd0a153685dbea3950bc5623b06c314326777c4fb7aff56adfc6b17bc74c933e5 fix-cmakelists.patch
+24c058b3e0710e689ba7fd6bce8a88353ce64e825b2e5bbf6b00ca3f2a2ec1e9c70a72e0252a5c89d10c537cf84d55af54bf2f16c58ca01db98c2018cf132e1a openjpeg-v2.5.2.tar.gz
"
diff --git a/main/openjpeg/fix-cmakelists.patch b/main/openjpeg/fix-cmakelists.patch
deleted file mode 100644
index ee5fb013b17..00000000000
--- a/main/openjpeg/fix-cmakelists.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -148,7 +148,7 @@
- # We could install *.cmake files in share/ however those files contains
- # hardcoded path to libraries on a multi-arch system (fedora/debian) those
- # path will be different (lib/i386-linux-gnu vs lib/x86_64-linux-gnu)
-- set(OPENJPEG_INSTALL_PACKAGE_DIR "${OPENJPEG_INSTALL_LIB_DIR}/${OPENJPEG_INSTALL_SUBDIR}")
-+ set(OPENJPEG_INSTALL_PACKAGE_DIR "${OPENJPEG_INSTALL_LIB_DIR}/cmake/${OPENJPEG_INSTALL_SUBDIR}")
- endif()
-
- if (APPLE)
diff --git a/main/openldap/0001-Fix-build-issue-in-clients-tools-common.c.patch b/main/openldap/0001-Fix-build-issue-in-clients-tools-common.c.patch
new file mode 100644
index 00000000000..6790d460786
--- /dev/null
+++ b/main/openldap/0001-Fix-build-issue-in-clients-tools-common.c.patch
@@ -0,0 +1,26 @@
+From 1dcef12a5d3ffd679b2ea5b6ecb30a5dee6dd68e Mon Sep 17 00:00:00 2001
+From: Lars Kellogg-Stedman <lars@oddbit.com>
+Date: Fri, 19 Aug 2022 22:49:57 -0400
+Subject: [PATCH 1/8] Fix build issue in clients/tools/common.c
+
+---
+ clients/tools/common.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/clients/tools/common.c b/clients/tools/common.c
+index b88f219..681249a 100644
+--- a/clients/tools/common.c
++++ b/clients/tools/common.c
+@@ -1414,8 +1414,8 @@ tool_bind( LDAP *ld )
+ msgbuf[0] = 0;
+
+ #ifdef LDAP_CONTROL_PASSWORDPOLICYREQUEST
++ LDAPControl c;
+ if ( ppolicy ) {
+- LDAPControl c;
+ c.ldctl_oid = LDAP_CONTROL_PASSWORDPOLICYREQUEST;
+ c.ldctl_value.bv_val = NULL;
+ c.ldctl_value.bv_len = 0;
+--
+2.37.1
+
diff --git a/main/openldap/0002-Add-UNIX_LINK_LIBS-to-slapi-Makefile.patch b/main/openldap/0002-Add-UNIX_LINK_LIBS-to-slapi-Makefile.patch
new file mode 100644
index 00000000000..953139bbddd
--- /dev/null
+++ b/main/openldap/0002-Add-UNIX_LINK_LIBS-to-slapi-Makefile.patch
@@ -0,0 +1,23 @@
+From 5837703b7d7ead28ac155c4fc89c2af3adf51a56 Mon Sep 17 00:00:00 2001
+From: Lars Kellogg-Stedman <lars@oddbit.com>
+Date: Fri, 19 Aug 2022 22:51:03 -0400
+Subject: [PATCH 2/8] Add UNIX_LINK_LIBS to slapi Makefile
+
+---
+ servers/slapd/slapi/Makefile.in | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/servers/slapd/slapi/Makefile.in b/servers/slapd/slapi/Makefile.in
+index 0e46f78..dd29cca 100644
+--- a/servers/slapd/slapi/Makefile.in
++++ b/servers/slapd/slapi/Makefile.in
+@@ -37,6 +37,7 @@
+ XXLIBS =
+ MOD_LIBS = $(MODULES_LIBS)
+ NT_LINK_LIBS = $(AC_LIBS) -L.. -lslapd $(@BUILD_LIBS_DYNAMIC@_LDAP_LIBS)
++UNIX_LINK_LIBS = ../../../libraries/libldap/libldap.la $(LTHREAD_LIBS)
+
+ XINCPATH = -I$(srcdir)/.. -I$(srcdir)
+ XDEFS = $(MODULES_CPPFLAGS)
+--
+2.37.1
diff --git a/main/openldap/openldap-mqtt-overlay.patch b/main/openldap/0003-Add-mqtt-overlay.patch
index 42d5b94ea84..c7ea47c158f 100644
--- a/main/openldap/openldap-mqtt-overlay.patch
+++ b/main/openldap/0003-Add-mqtt-overlay.patch
@@ -1,6 +1,18 @@
+From b2251604bdf2ed66471c9be546a8aab9f973ede2 Mon Sep 17 00:00:00 2001
+From: Lars Kellogg-Stedman <lars@oddbit.com>
+Date: Fri, 19 Aug 2022 22:53:36 -0400
+Subject: [PATCH 3/8] Add mqtt overlay
+
+---
+ contrib/slapd-modules/mqtt/Makefile | 45 ++++
+ contrib/slapd-modules/mqtt/mqtt.c | 389 ++++++++++++++++++++++++++++
+ 2 files changed, 434 insertions(+)
+ create mode 100644 contrib/slapd-modules/mqtt/Makefile
+ create mode 100644 contrib/slapd-modules/mqtt/mqtt.c
+
diff --git a/contrib/slapd-modules/mqtt/Makefile b/contrib/slapd-modules/mqtt/Makefile
new file mode 100644
-index 0000000..2cb4db7
+index 0000000..5f62aab
--- /dev/null
+++ b/contrib/slapd-modules/mqtt/Makefile
@@ -0,0 +1,45 @@
@@ -51,7 +63,7 @@ index 0000000..2cb4db7
+ done
diff --git a/contrib/slapd-modules/mqtt/mqtt.c b/contrib/slapd-modules/mqtt/mqtt.c
new file mode 100644
-index 0000000..b3a0a31
+index 0000000..143d776
--- /dev/null
+++ b/contrib/slapd-modules/mqtt/mqtt.c
@@ -0,0 +1,389 @@
@@ -444,4 +456,6 @@ index 0000000..b3a0a31
+{
+ return mqtt_init_overlay();
+}
+--
+2.37.1
diff --git a/main/openldap/fix-manpages.patch b/main/openldap/0004-Fix-manpages.patch
index a2a7364fcbb..3ec08bcc02e 100644
--- a/main/openldap/fix-manpages.patch
+++ b/main/openldap/0004-Fix-manpages.patch
@@ -1,14 +1,23 @@
+From 08334cb28550230ab73aa1bc60ad4f62d6f85486 Mon Sep 17 00:00:00 2001
+From: Lars Kellogg-Stedman <lars@oddbit.com>
+Date: Fri, 19 Aug 2022 22:54:43 -0400
+Subject: [PATCH 4/8] Fix manpages
+
Various manual pages changes:
* removes LIBEXECDIR from slapd.8
* removes references to non-existing manpages (bz 624616)
Patch-Source: https://src.fedoraproject.org/rpms/openldap/blob/f27/f/openldap-manpages.patch
+---
+ doc/man/man1/ldapmodify.1 | 3 +--
+ doc/man/man8/slapd.8 | 8 ++++----
+ 2 files changed, 5 insertions(+), 6 deletions(-)
diff --git a/doc/man/man1/ldapmodify.1 b/doc/man/man1/ldapmodify.1
-index 3def6da..466c772 100644
+index 1104e9f..161f2ff 100644
--- a/doc/man/man1/ldapmodify.1
+++ b/doc/man/man1/ldapmodify.1
-@@ -397,8 +397,7 @@ exit status and a diagnostic message being written to standard error.
+@@ -382,8 +382,7 @@ exit status and a diagnostic message being written to standard error.
.BR ldap_add_ext (3),
.BR ldap_delete_ext (3),
.BR ldap_modify_ext (3),
@@ -19,7 +28,7 @@ index 3def6da..466c772 100644
The OpenLDAP Project <http://www.openldap.org/>
.SH ACKNOWLEDGEMENTS
diff --git a/doc/man/man8/slapd.8 b/doc/man/man8/slapd.8
-index b739f4d..e2a1a00 100644
+index a93fcbc..1e64855 100644
--- a/doc/man/man8/slapd.8
+++ b/doc/man/man8/slapd.8
@@ -5,7 +5,7 @@
@@ -29,9 +38,9 @@ index b739f4d..e2a1a00 100644
-.B LIBEXECDIR/slapd
+.B slapd
[\c
- .BR \-4 | \-6 ]
+ .BR \-V [ V [ V ]]
[\c
-@@ -317,7 +317,7 @@ the LDAP databases defined in the default config file, just type:
+@@ -332,7 +332,7 @@ the LDAP databases defined in the default config file, just type:
.LP
.nf
.ft tt
@@ -40,7 +49,7 @@ index b739f4d..e2a1a00 100644
.ft
.fi
.LP
-@@ -328,7 +328,7 @@ on voluminous debugging which will be printed on standard error, type:
+@@ -343,7 +343,7 @@ on voluminous debugging which will be printed on standard error, type:
.LP
.nf
.ft tt
@@ -49,7 +58,7 @@ index b739f4d..e2a1a00 100644
.ft
.fi
.LP
-@@ -336,7 +336,7 @@ To test whether the configuration file is correct or not, type:
+@@ -351,7 +351,7 @@ To test whether the configuration file is correct or not, type:
.LP
.nf
.ft tt
@@ -59,5 +68,5 @@ index b739f4d..e2a1a00 100644
.fi
.LP
--
-1.8.1.4
+2.37.1
diff --git a/main/openldap/fix-lloadd-tests.patch b/main/openldap/0005-Correct-command-line-syntax-in-lloadd-tests.patch
index d32f5340eb6..563704ed528 100644
--- a/main/openldap/fix-lloadd-tests.patch
+++ b/main/openldap/0005-Correct-command-line-syntax-in-lloadd-tests.patch
@@ -1,10 +1,18 @@
-From: Jakub Jirutka <jakub@jirutka.cz>
-Date: Sun, 31 Oct 2021 01:20:07 +0200
-Subject: [PATCH] Fix lloadd tests - wrong ldapcompare usage
+From aef7e9c3c6678016c103243eb6476bc8b5e0e721 Mon Sep 17 00:00:00 2001
+From: Lars Kellogg-Stedman <lars@oddbit.com>
+Date: Fri, 19 Aug 2022 22:44:04 -0400
+Subject: [PATCH 5/8] Correct command line syntax in lloadd tests
+---
+ tests/scripts/lloadd/test004-monitor | 6 +++---
+ tests/scripts/lloadd/test007-coherence | 8 ++++----
+ 2 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/tests/scripts/lloadd/test004-monitor b/tests/scripts/lloadd/test004-monitor
+index 9ab4045..677e3e7 100755
--- a/tests/scripts/lloadd/test004-monitor
+++ b/tests/scripts/lloadd/test004-monitor
-@@ -218,7 +218,7 @@
+@@ -218,7 +218,7 @@ fi
# wait for it to settle
echo "Waiting until connections are established..."
for i in 0 1 2 3 4 5; do
@@ -13,7 +21,7 @@ Subject: [PATCH] Fix lloadd tests - wrong ldapcompare usage
'olmOutgoingConnections:4' > /dev/null 2>&1
RC=$?
if test $RC = 6 ; then
-@@ -269,7 +269,7 @@
+@@ -269,7 +269,7 @@ fi
# wait for it to settle
echo "Waiting until connections are established..."
for i in 0 1 2 3 4 5; do
@@ -22,7 +30,7 @@ Subject: [PATCH] Fix lloadd tests - wrong ldapcompare usage
'olmOutgoingConnections:13' > /dev/null 2>&1
RC=$?
if test $RC = 6 ; then
-@@ -306,7 +306,7 @@
+@@ -306,7 +306,7 @@ fi
# wait for it to settle
echo "Waiting until global counters are updated..."
for i in 0 1 2 3 4 5; do
@@ -31,9 +39,11 @@ Subject: [PATCH] Fix lloadd tests - wrong ldapcompare usage
'olmCompletedOps:2' > /dev/null 2>&1
RC=$?
if test $RC = 6 ; then
+diff --git a/tests/scripts/lloadd/test007-coherence b/tests/scripts/lloadd/test007-coherence
+index a78d8e7..7b91c28 100755
--- a/tests/scripts/lloadd/test007-coherence
+++ b/tests/scripts/lloadd/test007-coherence
-@@ -239,7 +239,7 @@
+@@ -239,7 +239,7 @@ fi
# wait for it to settle
echo "Waiting until connections are established..."
for i in 0 1 2 3 4 5; do
@@ -42,7 +52,7 @@ Subject: [PATCH] Fix lloadd tests - wrong ldapcompare usage
'olmOutgoingConnections:4' > /dev/null 2>&1
RC=$?
if test $RC = 6 ; then
-@@ -291,7 +291,7 @@
+@@ -291,7 +291,7 @@ fi
# wait for it to settle
echo "Waiting until connections are established..."
for i in 0 1 2 3 4 5; do
@@ -51,7 +61,7 @@ Subject: [PATCH] Fix lloadd tests - wrong ldapcompare usage
'olmOutgoingConnections:13' > /dev/null 2>&1
RC=$?
if test $RC = 6 ; then
-@@ -338,7 +338,7 @@
+@@ -338,7 +338,7 @@ fi
# wait for it to settle
echo "Waiting until global counters are updated..."
for i in 0 1 2 3 4 5; do
@@ -60,7 +70,7 @@ Subject: [PATCH] Fix lloadd tests - wrong ldapcompare usage
'olmCompletedOps:20' > /dev/null 2>&1
RC=$?
if test $RC = 6 ; then
-@@ -443,7 +443,7 @@
+@@ -443,7 +443,7 @@ fi
# wait for it to settle
echo "Waiting until global counters are updated..."
for i in 0 1 2 3 4 5; do
@@ -69,3 +79,6 @@ Subject: [PATCH] Fix lloadd tests - wrong ldapcompare usage
'olmCompletedOps:28' > /dev/null 2>&1
RC=$?
if test $RC = 6 ; then
+--
+2.37.1
+
diff --git a/main/openldap/0007-Use-correct-extension-for-slapd-modules.patch b/main/openldap/0007-Use-correct-extension-for-slapd-modules.patch
new file mode 100644
index 00000000000..cf2e4e7c595
--- /dev/null
+++ b/main/openldap/0007-Use-correct-extension-for-slapd-modules.patch
@@ -0,0 +1,44 @@
+From: Lars Kellogg-Stedman <lars@oddbit.com>
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Fri, 19 Aug 2022 22:32:10 -0400
+Subject: [PATCH 7/8] Use correct extension for slapd modules
+
+The example slapd.conf and slapd.ldif provided by this package attempts
+to load modules with a .la suffix, but the package only provides .so
+modules.
+
+Update the example slapd.conf to use the correct extension.
+
+See https://gitlab.alpinelinux.org/alpine/aports/-/issues/13866
+
+diff --git a/servers/slapd/slapd.conf b/servers/slapd/slapd.conf
+--- a/servers/slapd/slapd.conf
++++ b/servers/slapd/slapd.conf
+@@ -15,8 +15,8 @@ argsfile %LOCALSTATEDIR%/run/slapd.args
+
+ # Load dynamic backend modules:
+ modulepath %MODULEDIR%
+-moduleload back_mdb.la
+-# moduleload back_ldap.la
++moduleload back_mdb.so
++# moduleload back_ldap.so
+
+ # Sample security restrictions
+ # Require integrity protection (prevent hijacking)
+
+diff --git a/servers/slapd/slapd.ldif b/servers/slapd/slapd.ldif
+--- a/servers/slapd/slapd.ldif
++++ b/servers/slapd/slapd.ldif
+@@ -30,9 +30,9 @@
+ objectClass: olcModuleList
+ cn: module
+ olcModulepath: %MODULEDIR%
+-olcModuleload: back_mdb.la
+-#olcModuleload: back_ldap.la
+-#olcModuleload: back_passwd.la
++olcModuleload: back_mdb.so
++#olcModuleload: back_ldap.so
++#olcModuleload: back_passwd.so
+
+ dn: cn=schema,cn=config
+ objectClass: olcSchemaConfig
diff --git a/main/openldap/0008-Remove-pidfile-and-argsfile.patch b/main/openldap/0008-Remove-pidfile-and-argsfile.patch
new file mode 100644
index 00000000000..4c91d724439
--- /dev/null
+++ b/main/openldap/0008-Remove-pidfile-and-argsfile.patch
@@ -0,0 +1,35 @@
+From: Lars Kellogg-Stedman <lars@oddbit.com>
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sat, 20 Aug 2022 08:37:28 -0400
+Subject: [PATCH 8/8] Remove pidfile and argsfile
+
+Under Alpine Linux, OpenRC manages a pid file on its own; it's not
+necessary for slapd to manage one separately. This commit removes the
+pidfile and argsfile directives from the example configuration.
+
+diff --git a/servers/slapd/slapd.conf b/servers/slapd/slapd.conf
+--- a/servers/slapd/slapd.conf
++++ b/servers/slapd/slapd.conf
+@@ -10,9 +10,6 @@
+ # service AND an understanding of referrals.
+ #referral ldap://root.openldap.org
+
+-pidfile %LOCALSTATEDIR%/run/slapd.pid
+-argsfile %LOCALSTATEDIR%/run/slapd.args
+-
+ # Load dynamic backend modules:
+ modulepath %MODULEDIR%
+ moduleload back_mdb.so
+diff --git a/servers/slapd/slapd.ldif b/servers/slapd/slapd.ldif
+--- a/servers/slapd/slapd.ldif
++++ b/servers/slapd/slapd.ldif
+@@ -9,9 +9,6 @@
+ #
+ # Define global ACLs to disable default read access.
+ #
+-olcArgsFile: %LOCALSTATEDIR%/run/slapd.args
+-olcPidFile: %LOCALSTATEDIR%/run/slapd.pid
+-#
+ # Do not enable referrals until AFTER you have a working directory
+ # service AND an understanding of referrals.
+ #olcReferral: ldap://root.openldap.org
diff --git a/main/openldap/0009-Include-more-schemas-in-default-config.patch b/main/openldap/0009-Include-more-schemas-in-default-config.patch
new file mode 100644
index 00000000000..dedd099eb34
--- /dev/null
+++ b/main/openldap/0009-Include-more-schemas-in-default-config.patch
@@ -0,0 +1,44 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sun, 6 Nov 2022 00:57:00 +0100
+Subject: [PATCH] Include more schemas in default config
+
+The default configuration of the openldap apk has only one schema
+configured: core.ldif. This is very limiting and most admins will want
+to add nis.ldif, inetorgperson.ldif, and the dependency cosine.ldif to
+manage user accounts on a Linux-based system.
+
+This is easily done with include: lines in slapd.ldif. The trick is,
+you need to add these lines before you import slapd.ldif during initial
+configuration. Otherwise, it's kind of painful to add after the fact.
+
+Other distributions (Debian and derivatives) include these schema as
+part of their OpenLDAP package, so it's not out of the ordinary.
+
+See https://gitlab.alpinelinux.org/alpine/aports/-/issues/13867
+
+diff --git a/servers/slapd/slapd.ldif b/servers/slapd/slapd.ldif
+--- a/servers/slapd/slapd.ldif
++++ b/servers/slapd/slapd.ldif
+@@ -39,6 +39,9 @@
+ cn: schema
+
+ include: file://%SYSCONFDIR%/schema/core.ldif
++include: file://%SYSCONFDIR%/schema/cosine.ldif
++include: file://%SYSCONFDIR%/schema/inetorgperson.ldif
++include: file://%SYSCONFDIR%/schema/nis.ldif
+
+ # Frontend settings
+ #
+diff --git a/servers/slapd/slapd.conf b/servers/slapd/slapd.conf
+--- a/servers/slapd/slapd.conf
++++ b/servers/slapd/slapd.conf
+@@ -3,6 +3,9 @@
+ # This file should NOT be world readable.
+ #
+ include %SYSCONFDIR%/schema/core.schema
++include %SYSCONFDIR%/schema/cosine.schema
++include %SYSCONFDIR%/schema/inetorgperson.schema
++include %SYSCONFDIR%/schema/nis.schema
+
+ # Define global ACLs to disable default read access.
+
diff --git a/main/openldap/APKBUILD b/main/openldap/APKBUILD
index 9eceec851f6..5bc697095b8 100644
--- a/main/openldap/APKBUILD
+++ b/main/openldap/APKBUILD
@@ -32,7 +32,7 @@
# - CVE-2017-9287
#
pkgname=openldap
-pkgver=2.6.2
+pkgver=2.6.7
pkgrel=0
pkgdesc="LDAP Server"
url="https://www.openldap.org/"
@@ -44,17 +44,18 @@ depends_dev="
cyrus-sasl-dev
libevent-dev
libsodium-dev
- openssl1.1-compat-dev
util-linux-dev
"
makedepends="
$depends_dev
+ argon2-dev
autoconf
automake
db-dev
groff
libtool
mosquitto-dev
+ openssl-dev
unixodbc-dev
"
provides="$pkgname-back-monitor=$pkgver-r$pkgrel" # for backward compatibility (Alpine <3.15)
@@ -80,13 +81,14 @@ install="
$pkgname-lloadd.pre-install
"
source="https://www.openldap.org/software/download/OpenLDAP/openldap-release/openldap-$pkgver.tgz
- openldap-2.4-ppolicy.patch
- openldap-2.4.11-libldap_r.patch
- openldap-mqtt-overlay.patch
- fix-manpages.patch
- fix-lloadd-tests.patch
- cacheflush.patch
- tests-make-add-missing-dependency.patch
+ 0001-Fix-build-issue-in-clients-tools-common.c.patch
+ 0002-Add-UNIX_LINK_LIBS-to-slapi-Makefile.patch
+ 0003-Add-mqtt-overlay.patch
+ 0004-Fix-manpages.patch
+ 0005-Correct-command-line-syntax-in-lloadd-tests.patch
+ 0007-Use-correct-extension-for-slapd-modules.patch
+ 0008-Remove-pidfile-and-argsfile.patch
+ 0009-Include-more-schemas-in-default-config.patch
lloadd.conf
slapd.initd
@@ -143,7 +145,6 @@ _overlays="
unique
valsort
"
-_overlay_pkgs=""
for _name in $_overlays; do
subpackages="$subpackages $pkgname-overlay-$_name:_overlay"
_overlay_pkgs="$_overlay_pkgs $pkgname-overlay-$_name"
@@ -159,7 +160,9 @@ _extra_modules="
# Some tests hang on aarch64
case "$CARCH" in
- aarch64 | arm* | x86) options="!check"
+s390x|aarch64|arm*|x86)
+ options="!check"
+ ;;
esac
prepare() {
@@ -223,6 +226,7 @@ _configure() {
check() {
# FIXME: Failing network tests on some platforms.
+ rm -f tests/scripts/test018-syncreplication-persist
rm -f tests/scripts/test063-delta-multiprovider
rm -f tests/scripts/test079-proxy-timeout
@@ -259,6 +263,7 @@ package() {
install -D -m 640 -g ldap "$srcdir"/lloadd.conf -t etc/openldap/
install -d -m 700 -o ldap -g ldap \
+ run/openldap \
var/lib/openldap \
var/lib/openldap/openldap-data \
var/lib/openldap/openldap-lloadd
@@ -377,17 +382,18 @@ _overlay() {
}
sha512sums="
-a490a760ec954710e78821877744e8a6caa4e4f47cc292baae8106af2a4b62c16b7e8003af05ae16f58b28464d89e5459f9e4cf33241fe440c0c6ca041364420 openldap-2.6.2.tgz
-f0014ceb13f0ce6a791be09b613727a12e7d18420c25ab1cad835c2efae436653a667ece3043c355efe790840744b74ca3214142c00b349ffc1cb45016995096 openldap-2.4-ppolicy.patch
-23ac28366cde7e0aa06fc22de86a266a41ec53b0ec39b41af2c2e6f0faee87be93e86af1ebeba71364e8571a836f8aefecee8b485052c6a768d0d3809a60b8ba openldap-2.4.11-libldap_r.patch
-3c8cf27752cbc33ffb3cd10a9c67a16dff7188e512ce674076e96f552759e152a82e0bc5a8fdc9ac6866a7dbeb0e4724248e2f94a7e9c7862f26ffeb24409c0b openldap-mqtt-overlay.patch
-0f43a4b8c6d436ad0a39d804af58da13732e3ebb0e18404f794db39af8f9140e553429eaf0ad4e4480212bf24eb9286a8397f1228a5352b210b25bd30a5f7016 fix-manpages.patch
-ca9b40fae4f5e5678ea49b951144d9b6536753f578b6eab237db69a658b0bcde69bd4abda697f96a043f3eedf317e19d196a959663dc81b20130603a24d16549 fix-lloadd-tests.patch
-60c1ec62003a33036de68402544e25a71715ed124a3139056a94ed1ba02fb8148ee510ab8f182a308105a2f744b9787e67112bcd8cd0d800cdb6f5409c4f63ff cacheflush.patch
-c2bed5880849c99c60ace5aed22386862f8c6164d13e4add4efe8ce03a59d249f65c2782ad790c5285ed187dc97528f4a7cc3eafa50722a6061006d5357b2b5c tests-make-add-missing-dependency.patch
+ea207b84fdb7bc6cdff2bc1201fcdde6a907f5766f9637589d956ca86ecf61d4e732ab7d80f33b18b691644e1f5fa39b00ff2c7f4084c9b85760ee693a7c451e openldap-2.6.7.tgz
+8fa57c43c2d51cd2d1d297b4dd4edd9a15b549b6d5beb8038f66f65cb1d7c93b8fda326c33b4f9356ea99e63703c553662deefc87222f23a1e5517fbf2fabdeb 0001-Fix-build-issue-in-clients-tools-common.c.patch
+a47f909a2ddc1efa12c369243ba59c5b312bebf67f5106d92b575ce9cb694540a9053a1cf6e9811c1ba1da8a9ea36062c357ff7e94d4bf8b4c2457fc4fdaaaec 0002-Add-UNIX_LINK_LIBS-to-slapi-Makefile.patch
+81a9b769bc5b6b599c17381a9f6515f2c479d82f4d728627c83a746403fc3401529dc47146390a4b66a3a4e074cd09c850d3fabe1a097d92066ce16c4443a0fb 0003-Add-mqtt-overlay.patch
+0552438d010a3cf225aa90b8c7744a8dbf853885f34a42f6dfc92e08a8b5b86c0082b1548498c6bc55522ca4ac8e3699cfba63be2279d9dcbbffa2690901f632 0004-Fix-manpages.patch
+f88de2f92a31f1b906e850daa1b518fc90822e668c9ca99c33934304d260237a1406cb845c2f4985bcc1c1c49355784287cb8e27f724ab6833a8e90912decf73 0005-Correct-command-line-syntax-in-lloadd-tests.patch
+30af37e70a53a55c56bb0e74eee770a00abe83d4b0a787845363ccff564b49b8ba20c907bb976442b4dc2278db7b0a039a11c85dd40a547af6de9a7f1591328f 0007-Use-correct-extension-for-slapd-modules.patch
+eaadec2a58a7f117c67b10673e26fe8c38e40ae4c1ae5fda9004c9bbebca81b6cd51cc482f28d94dacd8154ed800fd1e90f48807970f54652bfc021f8039806e 0008-Remove-pidfile-and-argsfile.patch
+1c2a18280ea06f8095f013c110f8b1b0779c3dc89aa19158cdedbe3a7e1019e7ea5a503cba4d3e3ae824423ded22b2ef334665d2281969ac3b0efb96de34e37e 0009-Include-more-schemas-in-default-config.patch
c47a415a2a9cd98bb448820b981f40df82b4825e0ebcc8a5fb3c604d15e8f57ea1578afca6b3aa90351fd13e7ddba7dc7452bdb669df4a402f02990ca154e34e lloadd.conf
-2d286ff7cc56153204f3ab79c464d083801a40cc9bbb0b5cc1fb19de63d6e81c953b1ab0edd256d9ba48144bbda9a0c0d628bfec1342129aa2727344dea5fa9e slapd.initd
-64dc4c0aa0abe3d9f7d2aef25fe4c8e23c53df2421067947ac4d096c9e942b26356cb8577ebc41b52d88d0b0a03b2a3e435fe86242671f9b36555a5f82ee0e3a slapd.confd
-3e21241cee5db25331380d1302ccdb2854c3eb0ebcd41224bc4be59a2ef15e4ad585f161d0033a57ef906ee23e25d0e2769feb30ecf13fb34abf4fe42eb01c3e lloadd.initd
-fdc32900b5eb1618890e75e370108b4e6be38afbb8741806dc94ff79d14e723e297a62e4ed7b93a9a2777f58445cf28e9d54be13b814678e9ab5208bc6d38495 lloadd.confd
+d8bd06f56a816851015488cccb352657df09f1aed9990fc2870208ffb1c5c499ac1d7592c42e8fa6e4a26a6bb2535f57e91d3a2aecfb38cf15d86de20e0e69a7 slapd.initd
+5898139481b3317b257ce1bfab401dd4e111a8f7ebb02262a8dcb165c6416fba1e5bb070cdf618918f018d2ad942d9514ce6a9b2ab1c57ac30ec75fb53b04af1 slapd.confd
+60667ed6fe2a4fa590f3b3ab6b33e338d6f78334ed234941a8912cf6fe646d1a70b2480586faa18c33c9e130cb53347c9681900ebaa66c900ed76d93a7876d40 lloadd.initd
+de18b02336ebfff79b681ae4781ed0fa29903162ab9fb64328750f0ae8f6c2533dac69d5430efb56f10734642a3f4cd81c50bdb2920b6f70ad89c87acabecbe2 lloadd.confd
"
diff --git a/main/openldap/cacheflush.patch b/main/openldap/cacheflush.patch
deleted file mode 100644
index 330e4c67aa7..00000000000
--- a/main/openldap/cacheflush.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/libraries/liblmdb/mdb.c
-+++ b/libraries/liblmdb/mdb.c
-@@ -77,8 +77,7 @@
-
- #if defined(__mips) && defined(__linux)
- /* MIPS has cache coherency issues, requires explicit cache control */
--#include <asm/cachectl.h>
--extern int cacheflush(char *addr, int nbytes, int cache);
-+#include <sys/cachectl.h>
- #define CACHEFLUSH(addr, bytes, cache) cacheflush(addr, bytes, cache)
- #else
- #define CACHEFLUSH(addr, bytes, cache)
diff --git a/main/openldap/lloadd.confd b/main/openldap/lloadd.confd
index d29a61044f8..62d23fb1ed7 100644
--- a/main/openldap/lloadd.confd
+++ b/main/openldap/lloadd.confd
@@ -11,9 +11,9 @@
# Additional arguments to pass to lloadd.
#command_args=
-# Number of milliseconds to wait after starting and check that daemon is
-# still running.
+# Number of milliseconds to wait after starting to check if the daemon is still
+# running (used only with start-stop-daemon). Set to empty string to disable.
#start_wait=50
-# Uncomment to use process supervisor.
-#supervisor="supervise-daemon"
+# Uncomment to run with process supervisor.
+# supervisor="supervise-daemon"
diff --git a/main/openldap/lloadd.initd b/main/openldap/lloadd.initd
index e6eadc2a878..2eb7121b034 100644
--- a/main/openldap/lloadd.initd
+++ b/main/openldap/lloadd.initd
@@ -25,6 +25,8 @@ start_stop_daemon_args="
${start_wait:+--wait $start_wait}
${start_stop_daemon_args:-}
"
+# See https://github.com/OpenRC/openrc/pull/558
+supervise_daemon_args=" $supervise_daemon_args"
required_files="$cfgfile"
diff --git a/main/openldap/openldap-2.4-ppolicy.patch b/main/openldap/openldap-2.4-ppolicy.patch
deleted file mode 100644
index 6a35ad1dfad..00000000000
--- a/main/openldap/openldap-2.4-ppolicy.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -urN ./clients.orig/tools/common.c ./clients/tools/common.c
---- ./clients.orig/tools/common.c 2007-09-01 01:13:50.000000000 +0200
-+++ ./clients/tools/common.c 2008-01-13 21:50:06.000000000 +0100
-@@ -1411,8 +1411,8 @@
- int nsctrls = 0;
-
- #ifdef LDAP_CONTROL_PASSWORDPOLICYREQUEST
-+ LDAPControl c;
- if ( ppolicy ) {
-- LDAPControl c;
- c.ldctl_oid = LDAP_CONTROL_PASSWORDPOLICYREQUEST;
- c.ldctl_value.bv_val = NULL;
- c.ldctl_value.bv_len = 0;
diff --git a/main/openldap/openldap-2.4.11-libldap_r.patch b/main/openldap/openldap-2.4.11-libldap_r.patch
deleted file mode 100644
index 9bee1746bb4..00000000000
--- a/main/openldap/openldap-2.4.11-libldap_r.patch
+++ /dev/null
@@ -1,11 +0,0 @@
-diff -Nuar openldap-2.4.11.orig/servers/slapd/slapi/Makefile.in openldap-2.4.11/servers/slapd/slapi/Makefile.in
---- openldap-2.4.11.orig/servers/slapd/slapi/Makefile.in 2008-02-11 15:26:49.000000000 -0800
-+++ openldap-2.4.11/servers/slapd/slapi/Makefile.in 2008-10-14 02:10:18.402799262 -0700
-@@ -37,6 +37,7 @@
- XLIBS = $(LIBRARY)
- XXLIBS =
- NT_LINK_LIBS = $(AC_LIBS)
-+UNIX_LINK_LIBS = ../../../libraries/libldap/libldap.la $(LTHREAD_LIBS)
-
- XINCPATH = -I$(srcdir)/.. -I$(srcdir)
- XDEFS = $(MODULES_CPPFLAGS)
diff --git a/main/openldap/slapd.confd b/main/openldap/slapd.confd
index f69f92b4ab0..ff8613d8cb5 100644
--- a/main/openldap/slapd.confd
+++ b/main/openldap/slapd.confd
@@ -4,9 +4,20 @@
cfgfile="/etc/openldap/slapd.conf"
# Location of the configuration directory (OpenLDAP 2.3+).
-#cfgdir=""
+#cfgdir=
-# To enable both the standard unciphered server and the ssl encrypted
-# one uncomment this line or set any other server starting options
-# you may desire.
-#command_args="-h 'ldaps:// ldap:// ldapi://%2fvar%2frun%2fopenldap%2fslapd.sock'"
+# A space-separated list of LDAP URIs to serve.
+# slapd will by default serve ldap:/// (LDAP over TCP on all interfaces on port
+# 389). For example, to listen both on LDAP port 389 and LDAP over TLS port
+# 636, set to "ldap:// ldaps://". Refer to slapd(8) for more information.
+#listen_uris=
+
+# Additional arguments to pass to slapd.
+#command_args=
+
+# Number of milliseconds to wait after starting to check if the daemon is still
+# running (used only with start-stop-daemon). Set to empty string to disable.
+#start_wait=50
+
+# Uncomment to run with process supervisor.
+# supervisor="supervise-daemon"
diff --git a/main/openldap/slapd.initd b/main/openldap/slapd.initd
index 367b16b97a4..49b7776d97b 100644
--- a/main/openldap/slapd.initd
+++ b/main/openldap/slapd.initd
@@ -1,19 +1,33 @@
#!/sbin/openrc-run
-: ${pidfile:="/run/openldap/slapd.pid"}
-
name="LDAP server"
+description_checkconfig="Check configuration files for errors"
+
extra_commands="checkconfig"
-description_checkconfig="Check slapd.conf for errors"
+
+: ${start_wait=50} # milliseconds
command="/usr/sbin/slapd"
-# OPTS is for backward compatibility
cfg_opt="${cfgdir:+"-F $cfgdir"} ${cfgfile:+"-f $cfgfile"}"
-command_args="-u ldap -g ldap $cfg_opt ${command_args:-${OPTS:-}}"
+command_args="
+ -u ldap -g ldap
+ -l DAEMON
+ ${listen_uris:+-h \"$listen_uris\"}
+ -d0
+ $cfg_opt
+ ${command_args-}
+ "
+command_background=yes
+pidfile="/run/$RC_SVCNAME.pid"
stopsig=2
+
start_stop_daemon_args="
- ${KRB5_KTNAME:+"--env KRB5_KTNAME=$KRB5_KTNAME"}"
+ ${start_wait:+--wait $start_wait}
+ ${start_stop_daemon_args-}
+ "
+# See https://github.com/OpenRC/openrc/pull/558
+supervise_daemon_args=" $supervise_daemon_args"
depend() {
need net
@@ -23,7 +37,12 @@ depend() {
}
start_pre() {
- checkpath --directory --owner ldap:ldap "${pidfile%/*}"
+ export KRB5_KTNAME
+
+ # NOTE: This directory is not used by default, it's created mainly for
+ # backward compatibility.
+ checkpath -d -o ldap:ldap /run/openldap || return 1
+
/usr/sbin/slaptest -u -Q $cfg_opt || /usr/sbin/slaptest -u $cfg_opt
}
diff --git a/main/openldap/tests-make-add-missing-dependency.patch b/main/openldap/tests-make-add-missing-dependency.patch
deleted file mode 100644
index 5e77514be5b..00000000000
--- a/main/openldap/tests-make-add-missing-dependency.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/tests/progs/Makefile.in b/tests/progs/Makefile.in
-index 13f1e8b..e4f4ccf 100644
---- a/tests/progs/Makefile.in
-+++ b/tests/progs/Makefile.in
-@@ -56,7 +56,7 @@ slapd-modify: slapd-modify.o $(OBJS) $(XLIBS)
- slapd-bind: slapd-bind.o $(OBJS) $(XLIBS)
- $(LTLINK) -o $@ slapd-bind.o $(OBJS) $(LIBS)
-
--ldif-filter: ldif-filter.o $(XLIBS)
-+ldif-filter: ldif-filter.o $(OBJS) $(XLIBS)
- $(LTLINK) -o $@ ldif-filter.o $(OBJS) $(LIBS)
-
- slapd-mtread: slapd-mtread.o $(OBJS) $(XLIBS)
diff --git a/main/opennhrp/APKBUILD b/main/opennhrp/APKBUILD
index 2e55785619d..9efd33be303 100644
--- a/main/opennhrp/APKBUILD
+++ b/main/opennhrp/APKBUILD
@@ -1,15 +1,14 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=opennhrp
pkgver=0.14.1
-pkgrel=7
+pkgrel=12
pkgdesc="NBMA Next Hop Resolution Protocol daemon"
-url="https://sourceforge.net/projects/opennhrp"
+url="https://sourceforge.net/projects/opennhrp/"
arch="all"
-license="GPL-2.0"
-depends=
+license="MIT AND (BSD-2-Clause OR GPL-2.0-or-later)"
makedepends="c-ares-dev linux-headers"
-subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2
+subpackages="$pkgname-doc $pkgname-openrc"
+source="https://downloads.sourceforge.net/opennhrp/opennhrp-$pkgver.tar.bz2
0001-peer-reset-interface-nat-cie-when-server-does-not-de.patch
0002-all-fix-includes-and-types-to-honor-standards.patch
0003-netlink-honor-configured-route-table-for-shortcut-de.patch
@@ -23,34 +22,23 @@ source="https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2
$pkgname.initd
$pkgname.confd
"
-
-_builddir="$srcdir"/$pkgname-$pkgver
+options="!check"
prepare() {
- local i
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch)
- msg "Applying $i"
- patch -p1 < "$srcdir"/$i || return 1
- ;;
- esac
- done
+ default_prepare
sed -i -e 's/-Werror//' Make.rules
}
build() {
- cd "$_builddir"
- make || return 1
+ make
}
package() {
- cd "$_builddir"
make DESTDIR="$pkgdir" install
install -Dm755 "$srcdir"/opennhrp.initd "$pkgdir"/etc/init.d/opennhrp
install -Dm644 "$srcdir"/opennhrp.confd "$pkgdir"/etc/conf.d/opennhrp
}
+
sha512sums="dd0d5debf86d195256995406909c7406d4b60dcdd3a47fca95fd7053b1691e1863b430ff9d65e8633c2d49c747abb4fdc10b45bdef0d0bfa733e94e33c476785 opennhrp-0.14.1.tar.bz2
7d6d73dfc7c078d6af6f5df7b4e06703f40675a9746c9191c227b85cc857537502ab501c7e01085e36eafe39dc1a2468ebf139a92ac67522606968abe53e74cd 0001-peer-reset-interface-nat-cie-when-server-does-not-de.patch
19a5822e9d6f5be06084213c11e2bb09a4283d2fe6a010cd04b9a3724208581b624c9edb323b6f84e06b1a9d67c2129341c171eeb9eedacc37ff43099c94ac30 0002-all-fix-includes-and-types-to-honor-standards.patch
diff --git a/main/openntpd/APKBUILD b/main/openntpd/APKBUILD
index f88938dfd5f..3bf3a5432c0 100644
--- a/main/openntpd/APKBUILD
+++ b/main/openntpd/APKBUILD
@@ -2,7 +2,7 @@
pkgname=openntpd
pkgver=6.8_p1
_pkgver=${pkgver/_/}
-pkgrel=6
+pkgrel=9
pkgdesc="Lightweight NTP server ported from OpenBSD"
url="http://www.openntpd.org/"
subpackages="openntpd-doc openntpd-openrc"
@@ -52,6 +52,6 @@ sha512sums="
200056bedb9c757aae1ce5d3f6655175ec058cb479429fe4704955f3a3fa15e8a9cb578ae4898ddb4cfc08c9742bbab6a7c92b5e569f06a148e40c448360b58f openntpd-6.8p1.tar.gz
290311e5cd074d5bd1e6374ba9b4776e4acf792d47011c43412e236766b73be2b0e5f0091bd3ad79d0b637754531889b199e66c64952765bbcd1bade0d2ebe94 ntp-user.patch
4b27edb9b778a8a0437735e010f0606cd03a46d10bb054a6527929d46de44ba470bc81017cb2a61956fc8049879e498aadf545a89a35be1237e26eeac98ef3e3 libtls-standalone.patch
-01c3d9ed18741981fb2d8ebb509cd71801b57f57fcac48ed727687a6402dbad8a791ace1e63c0069a07b0dbcbc98c917885c942dab9616d25dde429f1fb9c348 openntpd.confd
+a893f0a46509ef7a868cb153e90701cd67e5e08df0cd1cf50f3a2b8da027cbd3b3fcde77d3dd4c3e8c8135c54f4aab61d5f85c02bb0199bc26a4631ffc431f64 openntpd.confd
009eb7c7cf290c9302d9585ce7dffb2195e7e73c8bd3274b158efde10b537919c5dc4a47038f2fca6d650bcd79e8333395faa06d98f28327a328368fd59a1618 openntpd.initd
"
diff --git a/main/openntpd/openntpd.confd b/main/openntpd/openntpd.confd
index ec002b74f55..c8d4adec5e2 100644
--- a/main/openntpd/openntpd.confd
+++ b/main/openntpd/openntpd.confd
@@ -1,3 +1,2 @@
-# See ntpd(8) man page ... some popular options:
-# -s Set the time immediately at startup
+# See ntpd(8) man page for available options.
#NTPD_OPTS=
diff --git a/main/openobex/APKBUILD b/main/openobex/APKBUILD
index 3b59d24da81..754e2ed0c35 100644
--- a/main/openobex/APKBUILD
+++ b/main/openobex/APKBUILD
@@ -1,39 +1,37 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=openobex
pkgver=1.7.2
-pkgrel=3
+pkgrel=5
pkgdesc="Implementation of the OBject EXchange (OBEX) protocol"
url="http://dev.zuckschwerdt.org/openobex/"
arch="all"
-license="GPL LGPL"
-depends=
+license="GPL-2.0-or-later AND LGPL-2.1-or-later"
depends_dev="libusb-dev"
-makedepends="$depends_dev bluez-dev cmake eudev-dev libxml2-utils docbook-xsl"
+makedepends="$depends_dev bluez-dev cmake eudev-dev libxml2-utils docbook-xsl samurai"
subpackages="$pkgname-dev $pkgname-doc $pkgname-apps"
source="https://downloads.sourceforge.net/project/openobex/openobex/$pkgver/openobex-$pkgver-Source.tar.gz"
-
-_builddir="$srcdir"/openobex-$pkgver-Source
+builddir="$srcdir"/openobex-$pkgver-Source
+options="!check"
build() {
- cd "$_builddir"
- cmake \
+ cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=/usr/lib \
-DCMAKE_BUILD_TYPE=MinSizeRel \
- -DCMAKE_SKIP_RPATH=ON \
- || return 1
- make && make openobex-apps || return 1
+ -DCMAKE_SKIP_RPATH=ON
+ cmake --build build --target all openobex-apps
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ DESTDIR="$pkgdir" cmake --install build
}
apps() {
pkgdesc="Applications for using OBEX"
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+
+ amove usr/bin
}
-sha512sums="22f1b0d99e7186da9fa12b510ef9dbb6f7d76777d58b235ab2f627703d07b6f6b0488cdc9c6d8c0ab7bc86d6d19117c55fff9273fed02736c0210f9b1788bf4d openobex-1.7.2-Source.tar.gz"
+sha512sums="
+22f1b0d99e7186da9fa12b510ef9dbb6f7d76777d58b235ab2f627703d07b6f6b0488cdc9c6d8c0ab7bc86d6d19117c55fff9273fed02736c0210f9b1788bf4d openobex-1.7.2-Source.tar.gz
+"
diff --git a/main/openrc/0001-call-sbin-mkmntdirs-in-localmount-OpenRC-service.patch b/main/openrc/0001-call-sbin-mkmntdirs-in-localmount-OpenRC-service.patch
index 3d4106009a1..c2b4f024eb2 100644
--- a/main/openrc/0001-call-sbin-mkmntdirs-in-localmount-OpenRC-service.patch
+++ b/main/openrc/0001-call-sbin-mkmntdirs-in-localmount-OpenRC-service.patch
@@ -1,14 +1,19 @@
-From 78245081fe109ed7777b79ba9c99890d56c21272 Mon Sep 17 00:00:00 2001
+From 908f77d4f1930c1ac0be036d3d2e10ff15f84fbf Mon Sep 17 00:00:00 2001
From: Natanael Copa <ncopa@alpinelinux.org>
Date: Wed, 1 Feb 2017 04:04:52 +0000
Subject: [PATCH] call /sbin/mkmntdirs in localmount OpenRC service
---
- init.d/localmount.in | 2 ++
- 1 file changed, 2 insertions(+)
+ init.d/localmount.in | 2 ++
+ src/meson.build | 1 +
+ src/mkmntdirs/meson.build | 5 +++
+ src/mkmntdirs/mkmntdirs.c | 67 +++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 75 insertions(+)
+ create mode 100644 src/mkmntdirs/meson.build
+ create mode 100644 src/mkmntdirs/mkmntdirs.c
diff --git a/init.d/localmount.in b/init.d/localmount.in
-index c571504a..14189396 100644
+index 8a66eb8d..19693b6b 100644
--- a/init.d/localmount.in
+++ b/init.d/localmount.in
@@ -21,6 +21,8 @@ depend()
@@ -20,6 +25,102 @@ index c571504a..14189396 100644
# Mount local filesystems in /etc/fstab.
# The types variable must start with no, and must be a type
local critical= types="noproc" x= no_netdev= rc=
+diff --git a/src/meson.build b/src/meson.build
+index 76f6d8a1..0f640eec 100644
+--- a/src/meson.build
++++ b/src/meson.build
+@@ -12,6 +12,7 @@ subdir('is_newer_than')
+ subdir('is_older_than')
+ subdir('kill_all')
+ subdir('mark_service')
++subdir('mkmntdirs')
+ subdir('mountinfo')
+ subdir('on_ac_power')
+ subdir('openrc')
+diff --git a/src/mkmntdirs/meson.build b/src/mkmntdirs/meson.build
+new file mode 100644
+index 00000000..20f9762d
+--- /dev/null
++++ b/src/mkmntdirs/meson.build
+@@ -0,0 +1,5 @@
++executable('mkmntdirs',
++ ['mkmntdirs.c'],
++ c_args : cc_branding_flags,
++ install: true,
++ install_dir: sbindir)
+diff --git a/src/mkmntdirs/mkmntdirs.c b/src/mkmntdirs/mkmntdirs.c
+new file mode 100644
+index 00000000..eaeae732
+--- /dev/null
++++ b/src/mkmntdirs/mkmntdirs.c
+@@ -0,0 +1,67 @@
++/*
++ * Create mount directories in fstab
++ *
++ * Copyright(c) 2008 Natanael Copa <natanael.copa@gmail.com>
++ * May be distributed under the terms of GPL-2
++ *
++ * usage: mkmntdirs [fstab]
++ *
++ */
++
++#include <sys/stat.h>
++#include <sys/types.h>
++
++#include <err.h>
++#include <mntent.h>
++#include <stdio.h>
++#include <string.h>
++
++
++#ifdef DEBUG
++#define mkdir_recursive(p) puts((p))
++#else
++static void mkdir_recursive(char *path)
++{
++ char *s = path;
++ while (1) {
++ int c = '\0';
++ while (*s) {
++ if (*s == '/') {
++ do {
++ ++s;
++ } while (*s == '/');
++ c = *s; /* Save the current char */
++ *s = '\0'; /* and replace it with nul. */
++ break;
++ }
++ ++s;
++ }
++ mkdir(path, 0755);
++ if (c == '\0')
++ return;
++ *s = c;
++ }
++}
++#endif
++
++int main(int argc, const char *argv[])
++{
++ const char *filename = "/etc/fstab";
++ FILE *f;
++ struct mntent *ent;
++ if (argc == 2)
++ filename = argv[1];
++
++ f = setmntent(filename, "r");
++ if (f == NULL)
++ err(1, "%s", filename);
++
++ while ((ent = getmntent(f)) != NULL) {
++ if (strcmp(ent->mnt_dir, "none") != 0)
++ mkdir_recursive(ent->mnt_dir);
++ }
++
++ endmntent(f);
++ return 0;
++}
++
--
-2.33.1
+2.37.1
diff --git a/main/openrc/0003-rc-pull-in-sysinit-and-boot-as-stacked-levels-when-n.patch b/main/openrc/0003-rc-pull-in-sysinit-and-boot-as-stacked-levels-when-n.patch
index 546ccb79687..265a51e3716 100644
--- a/main/openrc/0003-rc-pull-in-sysinit-and-boot-as-stacked-levels-when-n.patch
+++ b/main/openrc/0003-rc-pull-in-sysinit-and-boot-as-stacked-levels-when-n.patch
@@ -21,8 +21,8 @@ Fixes issue #54.
diff --git a/src/rc/rc.c b/src/rc/rc.c
index ef46925d..82786074 100644
---- a/src/rc/rc.c
-+++ b/src/rc/rc.c
+--- a/src/openrc/rc.c
++++ b/src/openrc/rc.c
@@ -729,6 +729,7 @@ int main(int argc, char **argv)
const char *bootlevel = NULL;
char *newlevel = NULL;
diff --git a/main/openrc/0009-Based-on-the-vrf-patch-it-adds-support-to-run-servic.patch b/main/openrc/0009-Based-on-the-vrf-patch-it-adds-support-to-run-servic.patch
new file mode 100644
index 00000000000..bd149d98d3c
--- /dev/null
+++ b/main/openrc/0009-Based-on-the-vrf-patch-it-adds-support-to-run-servic.patch
@@ -0,0 +1,30 @@
+From 2f7405254f16cbb33ddb7c57eb20606a92b6c84a Mon Sep 17 00:00:00 2001
+From: Thomas Liske <thomas@fiasko-nw.net>
+Date: Sat, 16 Sep 2023 18:25:42 +0200
+Subject: [PATCH] Based on the vrf patch it adds support to run services in
+ netns namespaces. It is even possible to stack both options and run services
+ in a VRF inside a netns namespace.
+
+---
+ sh/openrc-run.sh.in | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/sh/openrc-run.sh.in b/sh/openrc-run.sh.in
+index 5eb4224c..2a6605db 100644
+--- a/sh/openrc-run.sh.in
++++ b/sh/openrc-run.sh.in
+@@ -242,6 +242,11 @@ if [ -n "$vrf" ]; then
+ RC_VRF_EXEC="/sbin/ip vrf exec $vrf"
+ fi
+
++# Add ip netns if configured to run in a netns (netns+vrf may stack)
++if [ -n "$netns" ]; then
++ RC_VRF_EXEC="/sbin/ip netns exec $netns $RC_VRF_EXEC"
++fi
++
+ # load service supervisor functions
+ sourcex "@LIBEXECDIR@/sh/runit.sh"
+ sourcex "@LIBEXECDIR@/sh/s6.sh"
+--
+2.39.2
+
diff --git a/main/openrc/0009-fix-bootmisc-mv-error.patch b/main/openrc/0009-fix-bootmisc-mv-error.patch
deleted file mode 100644
index e87f9bb70e5..00000000000
--- a/main/openrc/0009-fix-bootmisc-mv-error.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From: Dermot Bradley <dermot_bradley@yahoo.com>
-Date: Sat, 29 Jan 2022 19:28 +0000
-Subject: prevent a bootmisc trying to move a nonexistant file
-
-During boot if the "previous_dmesg" setting is enabled in
-/etc/conf.d/bootmisc then during the 1st boot of a machine the
-bootmisc init.d script will attempt to move a nonexistant dmesg
-file, so generating an error on the console.
-
-Modify the script to only move an existing file.
-
-Upstream has merged this as PR 496 so it will be in the next release.
-
----
-
-diff -aur a/init.d/bootmisc.in b/init.d/bootmisc.in
---- a/init.d/bootmisc.in
-+++ b/init.d/bootmisc.in
-@@ -226,7 +226,7 @@
- case "$RC_SYS" in
- VSERVER|OPENVZ|LXC|SYSTEMD-NSPAWN) ;;
- *)
-- if yesno ${previous_dmesg:-no}; then
-+ if yesno ${previous_dmesg:-no} && [ -e /var/log/dmesg ]; then
- mv /var/log/dmesg /var/log/dmesg.old
- fi
- dmesg > /var/log/dmesg
diff --git a/main/openrc/0010-noexec-devfs.patch b/main/openrc/0010-noexec-devfs.patch
deleted file mode 100644
index 9a8928c1669..00000000000
--- a/main/openrc/0010-noexec-devfs.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/init.d/devfs.in
-+++ b/init.d/devfs.in
-@@ -24,8 +24,9 @@ mount_dev()
- action=--mount
- conf_d_dir="${RC_SERVICE%/*/*}/conf.d"
- msg=Mounting
-- # Some devices require exec, Bug #92921
-- mountopts="exec,nosuid,mode=0755"
-+ # Some devices require exec, https://bugs.gentoo.org/92921
-+ # Users with such requirements can use an fstab entry for /dev
-+ mountopts="noexec,nosuid,mode=0755"
- if yesno ${skip_mount_dev:-no} ; then
- einfo "/dev will not be mounted due to user request"
- return 0
diff --git a/main/openrc/APKBUILD b/main/openrc/APKBUILD
index 4182b9c2246..af29e66468a 100644
--- a/main/openrc/APKBUILD
+++ b/main/openrc/APKBUILD
@@ -1,23 +1,28 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=openrc
-pkgver=0.44.10
+pkgver=0.54
_ver=${pkgver/_git*/}
-pkgrel=7
+pkgrel=1
pkgdesc="OpenRC manages the services, startup and shutdown of a host"
url="https://github.com/OpenRC/openrc"
arch="all"
license="BSD-2-Clause"
depends="ifupdown-any"
-makedepends="bsd-compat-headers linux-headers meson"
+makedepends_host="bsd-compat-headers libcap-dev linux-headers"
+makedepends_build="meson"
checkdepends="sed"
-subpackages="$pkgname-dbg $pkgname-doc $pkgname-dev
+subpackages="
+ $pkgname-dbg
+ $pkgname-doc
+ $pkgname-tools::noarch
+ $pkgname-static
+ $pkgname-dev
agetty-openrc:_agetty_openrc:noarch
$pkgname-bash-completion
$pkgname-zsh-completion
"
install="$pkgname.post-install $pkgname.post-upgrade"
source="$pkgname-$pkgver.tar.gz::https://github.com/OpenRC/openrc/archive/$pkgver.tar.gz
-
0001-call-sbin-mkmntdirs-in-localmount-OpenRC-service.patch
0002-fsck-don-t-add-C0-to-busybox-fsck.patch
0003-rc-pull-in-sysinit-and-boot-as-stacked-levels-when-n.patch
@@ -26,9 +31,10 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/OpenRC/openrc/archive/$pkgve
0006-Add-support-for-starting-services-in-a-specified-VRF.patch
0007-Clean-up-staticroute-config-remove-irrelevant-parts-.patch
0008-bootmisc-switch-wipe_tmp-setting-to-no-by-default.patch
- 0009-fix-bootmisc-mv-error.patch
- 0010-noexec-devfs.patch
- seedrng.patch
+ 0009-Based-on-the-vrf-patch-it-adds-support-to-run-servic.patch
+
+ supervise-daemon-defaults.patch
+ sysctl-readme.patch
openrc.logrotate
hostname.initd
@@ -44,6 +50,8 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/OpenRC/openrc/archive/$pkgve
test-networking.sh
"
options="!check" # not updated to meson build system, require makefile build
+provides="ifupdown-ng-openrc=0.12.1-r4"
+replaces="alpine-baselayout" # due to move of mkmntdirs
# secfixes:
# 0.44.6-r1:
@@ -54,16 +62,19 @@ prepare() {
# meson overrides this with the aports tag,
# we get there first :)
sed -i -e "s|@VCS_TAG@|$pkgver|" \
- src/common/version.h.in \
- src/common/version.in
+ src/shared/version.h.in \
+ src/shared/version.in
}
build() {
+ if [ -z "$BOOTSTRAP" ]; then
+ local lto="-Db_lto=true"
+ fi
abuild-meson \
+ $lto \
-Dzsh-completions=true \
-Dbash-completions=true \
-Dpam=false \
- -Dsplit-usr=false \
-Dpkgconfig=true \
--default-library=both \
--prefix=/ \
@@ -88,6 +99,11 @@ package() {
DESTDIR="$pkgdir" meson install --no-rebuild -C output
+ # place .so's in /lib so fancy ancient separate partition /usr configs can
+ # load them
+ mv "$pkgdir"/usr/lib/*.so* "$pkgdir"/usr/lib/*.a \
+ "$pkgdir"/lib/
+
# Alpine does not use openrc as its init so delete
# openrc-init & openrc-shutdown to avoid confusion.
rm -f "$pkgdir"/sbin/openrc-init "$pkgdir"/sbin/openrc-shutdown
@@ -115,12 +131,12 @@ package() {
# additional documentation considered useful
mkdir -p "$pkgdir"/usr/share/doc/$pkgname/
- install -m644 ChangeLog ./*.md "$pkgdir"/usr/share/doc/$pkgname/
+ install -m644 ./*.md "$pkgdir"/usr/share/doc/$pkgname/
# we use a virtual keymaps services to allow users to set their
# keymaps either with the OpenRC loadkeys service provided by
# the kbd aport or with the loadkmap service provided by the
- # busybox-initscripts aport.
+ # busybox-openrc aport.
rm -f "$pkgdir/etc/init.d/keymaps" \
"$pkgdir/etc/conf.d/keymaps"
@@ -130,8 +146,19 @@ package() {
# openrc upstream removed service(8) for whatever reason, put it back
ln -s /sbin/rc-service "$pkgdir"/sbin/service
- # remove deprecated /sbin/runscript to avoid conflict with minicom
- rm "$pkgdir"/sbin/runscript
+ install -Dm755 "$pkgdir"/usr/share/openrc/support/deptree2dot/deptree2dot \
+ -t "$pkgdir"/usr/bin/
+ rm -r "$pkgdir"/usr/share/openrc/support/deptree2dot/deptree2dot
+}
+
+doc() {
+ default_doc
+ amove usr/share/openrc/support
+}
+
+tools() {
+ depends="perl"
+ amove usr/bin/deptree2dot
}
_agetty_openrc() {
@@ -143,28 +170,28 @@ _agetty_openrc() {
}
sha512sums="
-0e41f5268c6b8c325a6773511ca58c38ba52a1987aa47165794df8a99359bd1bfcb99d30e0d129b9242a2661663234f6f85c92c55c891dbb6c5b8a11d93edea4 openrc-0.44.10.tar.gz
-6085d127f7385eb86a00676a263c8613748fb0cbbf064bc908d346a1b368e226d8a3014e871d281f57d334a70ec1301269fe431e085f0e907b4f6ef8a99bf07f 0001-call-sbin-mkmntdirs-in-localmount-OpenRC-service.patch
+25a7c6b042608627b4cabb98208205c0cffafefcfa62ab4c7a6747a134583c3c6d54adcbb0d837cae6fbae5b082b964b60ebd1762e90efeae23a14bc5f1e348e openrc-0.54.tar.gz
+257861f5f0562e9b9a9fccebae474bd75c4bb51f005a2b8132fd551f061f65863de46c5bc4437f137b4a9d3ca741f9de9274bfa7b418eda70497ed4b5fd3056d 0001-call-sbin-mkmntdirs-in-localmount-OpenRC-service.patch
3f47b4f7e6c5b7fb53ff8a13470fbada67f7470e5eba71a683e6c022162c3905f560d561c3d61698e3fde367d6ae715edf76e99949f52a22a3bbf79debc33f64 0002-fsck-don-t-add-C0-to-busybox-fsck.patch
-61c72be18283108163bde4349616e55adb535bd34312ee09f90fcd85277ffe17dcef792bbf465877c0d8b1fec87a3836f714d8d849a9cf322902a89bc1256e13 0003-rc-pull-in-sysinit-and-boot-as-stacked-levels-when-n.patch
+0bd69d9e8e9c321a5e67cf924be07b9dd0b58801143c18f74bebf442958fc878e46a65f07cc2842566a8c3434e788ef3ca0c90c607de6b10931f01324bfc1b11 0003-rc-pull-in-sysinit-and-boot-as-stacked-levels-when-n.patch
71a743bf969110a27259405ef4b4dc4fad608b8e49039fd6afb1b1486d0f1dfccc3ef5275410fa3d6d1554ccee59c5a3424be4f2919e14453ebb709282c588a7 0004-make-consolefont-service-compatible-with-busyboxs-se.patch
9e2ae6c8e189ceae0f3f2662d9504f796e9a6a987a26ee2e10add85746b6596eb04cc256dc532a39f711b4e1aa07f1d12a384ef45d23cab49878b887bf0a878c 0005-Support-early-loading-of-keymap-if-kbd-is-installed.patch
8bf00b82d7fc0eb1b529ec735009f91d277141ba7e5c04e23d10bbcf36eb453f0b31d48aec45e50b5be4c14f611acc4454933f3cefdf8beab07d851328223464 0006-Add-support-for-starting-services-in-a-specified-VRF.patch
431ac28808e684bea5511386bf5f06efe7f509f1dbe7e15ae6309563d813deae8f3edd872a0943ef8088e3cf778d7bc5ebd15a893dc4a08f4022b7a56bbafc63 0007-Clean-up-staticroute-config-remove-irrelevant-parts-.patch
475f4ea63b9b5d7eb9c623e96b6cc3d3072abcb7194d0045b84e0688836c8514fccfc68b0eae0b4bee60878cdea8042c3ce7e48406ee7a2f0e4a3e128a153468 0008-bootmisc-switch-wipe_tmp-setting-to-no-by-default.patch
-354b2df343ddf82aedba104039bbdb1dd5fdd9c4abac52f89e881341443b73fcf000ed9e8b88e9610f1c3218cb89722ff6a774e1ef2f7fe71fa6ff62b75f572b 0009-fix-bootmisc-mv-error.patch
-0535d7837ae0c695f25208199f4dec3a4031558366da346a8a1dd13c0fa2a044f14088b75eca37ce0f4a681e85c82b84aac3d65aac9176639e82b33a9355cb2a 0010-noexec-devfs.patch
-715af2188cf4d1ed42f75b31ad718f5c533ea6f8cfc3c5df0fd7fc4240cd342dc637b7edf358c5da1e77d700618adaa7927ddaeae60698dd9f130dd64d83d8d5 seedrng.patch
+d7b8b1facd7fb9a6a8350912644cce3956947bcaa8bcb645f9c26a2bb0d062970efaa14bd66a7987f0748daff7b5a8e701b45b3fcca7c7c7e393ac262728f1a6 0009-Based-on-the-vrf-patch-it-adds-support-to-run-servic.patch
+1323a8476580f7b56a9cf1b24b26b10da76c5916cf23d7dab01f08a3261751341dfe01d1ed884df8e6ea17ff6a52021cc40fb3101e99b77d4ae7f3f61ee330e8 supervise-daemon-defaults.patch
+903ff555275a67ff08da91badb55d9fa6c6a2901e8ef09ca8366bd74d69757491c8336347f04551268ecf053c8ae974f50decd869926894dd94e382008e3e925 sysctl-readme.patch
12bb6354e808fbf47bbab963de55ee7901738b4a912659982c57ef2777fff9a670e867fcb8ec316a76b151032c92dc89a950d7d1d835ef53f753a8f3b41d2cec openrc.logrotate
-493f27d588e64bb2bb542b32493ed05873f4724e8ad1751002982d7b4e07963cfb72f93603b2d678f305177cf9556d408a87b793744c6b7cd46cf9be4b744c02 hostname.initd
-c06eac7264f6cc6888563feeae5ca745aae538323077903de1b19102e4f16baa34c18b8c27af5dd5423e7670834e2261e9aa55f2b1ec8d8fdc2be105fe894d55 hwdrivers.initd
-7113c930f7f5fb5b345b115db175f8e5837e3541b3e022d5cecf1b59067ed4b40b2adea2324a008035b97d653311217ac5cf961b4d0fc8b714a8b2505883cdc6 modules.initd
-61857beb0ce1b462ff4bde595ee3808d12b1c51935e6a6bc263bf26a4adc99b434676277e270d82ed2886ceb9c82cb2a5604887bc25fef20bec223097c4d0ee4 modloop.initd
-eb2d9fd0b7e76d7000ca3df911cdf0df78f1198d5f60a69e00933bc40212b8923e5eaf2967f070aa687e13c1dbc5a5d9eb2dc98d42dfc90b8e9dd5de0c76810d networking.initd
+afbb4cb4f2d6c2a5cf81ee2b5da8dfcd1f573e8168f1f3586681222ccfc59d6dda65eca3f2cb97c94ce7af4da60db0c4c6c643c014358dcecf94a6152466c89c hostname.initd
+594d0b8c8a8eafdcbf6f566ec43797cbe98debfa5d9ee8b2e78344d8031184c23cf1a22588fbb4b0aaf2769458bef233332b4f8da71337db4df6a431c4bafa8f hwdrivers.initd
+bc152c2b5eb37a08035f289b21e85d41461914e8b1f3c6a6a87ba0dd0cfeb20c9a5e6d7dab132e345339245a7ae1ffcb741f5bfde76fb8e0c87e4de5e0b1faf0 modules.initd
+47bea7e48444fc15f30b1da168e3d33b124c7f3480e08adcf93c5d301504cc6e73d96b254833fe20e906e353053eba8e8f410f238a3d4cd65743718a800939e5 modloop.initd
+aa1dd3d31872d7ec308b534044e490136de47a3e72575a96522f60c5740ee3b953a17e05013359d27985ac16b048ff8fff76e8ac1103802a4fb75a31d2185d45 networking.initd
80e43ded522e2d48b876131c7c9997debd43f3790e0985801a8c1dd60bc6e09f625b35a127bf225eb45a65eec7808a50d1c08a5e8abceafc61726211e061e0a2 modloop.confd
d76c75c58e6f4b0801edac4e081b725ef3d50a9a8c9bbb5692bf4d0f804af7d383bf71a73d5d03ed348a89741ef0b2427eb6a7cbf5a9b9ff60a240639fa6ec88 sysfsconf.initd
990855f875513a85c2b737685ac5bfdfa86f8dadacf00c1826a456547f99b69d4ecf1b9a09c0ce002f1df618b44b1febabe53f95a2c0cd02b504d565bccb50c8 firstboot.initd
2d5f9f6d41b7c0a8643cfdee1ce3c399bfe4ebff54421f33ab1e74c1c4c1b96a49e54b5cd69f0339a060342e4e5a11067bbff68c39fa487919259d73e8e46ed1 sysctl.initd
-35682e1742196133b79e4a0b21fe8df039a982ba4fdd0181b1e3872f3885e40726179d4996fec83a1da11ff314d71f8910609c1c05acb3d0f9b923147e2f1d55 machine-id.initd
+a60129f4bed134a27773c61994d114b3a5d1ab9f20097b096956f5bb696c056f4a608577cabb34c32b51899c69dce3bd0d8ffa61f5b66fd00fc5085d1ebba54f machine-id.initd
af17947aa3954e317dc06580da829200e0b0f2ddc37ce842c3fc7fc0d8ca2f40220e4f4665f61b4b5ec47c96416db0127e2ed979b9421bf21df89d4c4f998b7f test-networking.sh
"
diff --git a/main/openrc/hostname.initd b/main/openrc/hostname.initd
index bd208749fac..cf4c5ce34c3 100644
--- a/main/openrc/hostname.initd
+++ b/main/openrc/hostname.initd
@@ -1,5 +1,8 @@
#!/sbin/openrc-run
+# Copyright (c) Natanael Copa
+# This code is licensed under BSD-2-Clause
+
description="Sets the hostname of the machine."
depend() {
diff --git a/main/openrc/hwdrivers.initd b/main/openrc/hwdrivers.initd
index 80184c9710b..9bc5278ffa2 100644
--- a/main/openrc/hwdrivers.initd
+++ b/main/openrc/hwdrivers.initd
@@ -1,5 +1,8 @@
#!/sbin/openrc-run
+# Copyright (c) Natanael Copa
+# This code is licensed under BSD-2-Clause
+
depend() {
need sysfs dev
before checkfs fsck
@@ -16,10 +19,10 @@ start() {
fi
ebegin "Loading hardware drivers"
- find /sys -name modalias -type f -print0 | xargs -0 sort -u \
+ find /sys -name modalias -type f -print0 2> /dev/null | xargs -0 sort -u \
| xargs modprobe -b -a 2> /dev/null
# we run it twice so we detect all devices
- find /sys -name modalias -type f -print0 | xargs -0 sort -u \
+ find /sys -name modalias -type f -print0 2> /dev/null | xargs -0 sort -u \
| xargs modprobe -b -a 2> /dev/null
# check if framebuffer drivers got pulled in
diff --git a/main/openrc/machine-id.initd b/main/openrc/machine-id.initd
index bdd06986687..60e1821244b 100644
--- a/main/openrc/machine-id.initd
+++ b/main/openrc/machine-id.initd
@@ -1,5 +1,8 @@
#!/sbin/openrc-run
+# Copyright (c) Natanael Copa
+# This code is licensed under BSD-2-Clause
+
description="Generate machine-id if needed"
depend() {
diff --git a/main/openrc/modloop.initd b/main/openrc/modloop.initd
index fb7006c2a2b..41f8462bb72 100755
--- a/main/openrc/modloop.initd
+++ b/main/openrc/modloop.initd
@@ -1,5 +1,8 @@
#!/sbin/openrc-run
+# Copyright (c) Natanael Copa
+# This code is licensed under BSD-2-Clause
+
# script that will mount image with modules
depend() {
diff --git a/main/openrc/modules.initd b/main/openrc/modules.initd
index 3cd141ec29e..d702d5856c7 100644
--- a/main/openrc/modules.initd
+++ b/main/openrc/modules.initd
@@ -1,5 +1,8 @@
#!/sbin/openrc-run
+# Copyright (c) Natanael Copa
+# This code is licensed under BSD-2-Clause
+
description="Loads a user defined list of kernel modules."
depend()
diff --git a/main/openrc/networking.initd b/main/openrc/networking.initd
index 578044f433b..adae1b66cb0 100644
--- a/main/openrc/networking.initd
+++ b/main/openrc/networking.initd
@@ -1,5 +1,8 @@
#!/sbin/openrc-run
+# Copyright (c) Natanael Copa
+# This code is licensed under BSD-2-Clause
+#
# note that the spoofprotect, syncoockies and ip_forward options are set in
# /etc/sysctl.conf
@@ -28,7 +31,7 @@ find_ifaces() {
fi
if command -v "$ifquery" >/dev/null; then
- $ifquery -i "$cfgfile" --list --auto
+ $ifquery -i "$cfgfile" --list -a
return
fi
diff --git a/main/openrc/openrc.post-install b/main/openrc/openrc.post-install
index 1c273502c1d..6bcdbbfbd46 100644
--- a/main/openrc/openrc.post-install
+++ b/main/openrc/openrc.post-install
@@ -3,8 +3,8 @@
rc_update() {
local svc="$1"
local level="$2"
- mkdir -p /etc/runlevels/$level
- ln -sf /etc/init.d/$svc /etc/runlevels/$level
+ mkdir -p etc/runlevels/$level
+ ln -sf /etc/init.d/$svc etc/runlevels/$level
}
if [ ! -d etc/rcS.d ] && [ ! -d etc/rcL.d ]; then
@@ -23,7 +23,7 @@ for i in etc/rc[SL].d/*; do
rc.local) svc=local;;
*) svc=$oldsvc;;
esac
-
+
# add the service to correct "runlevel"
case "$svc" in
syslog|klogd)
@@ -35,4 +35,3 @@ for i in etc/rc[SL].d/*; do
rm $i
done
-
diff --git a/main/openrc/openrc.post-upgrade b/main/openrc/openrc.post-upgrade
index 8884202be10..9b487c88530 100644
--- a/main/openrc/openrc.post-upgrade
+++ b/main/openrc/openrc.post-upgrade
@@ -1,18 +1,20 @@
#!/bin/sh
+ver_old=$2
+
# in 0.8.0-r1 the state dir moved from /libexec/rc/init.d to /lib/rc/init.d
# and with 0.10 it moved to /run/openrc
-mkdir -p /run/openrc
-for dir in /libexec /lib; do
+mkdir -p run/openrc
+for dir in libexec lib; do
[ -d $dir/rc/init.d ] || continue
for i in $dir/rc/init.d/* ; do
[ -e "$i" ] || continue
- if [ -e /run/openrc/${i##*/} ]; then
+ if [ -e run/openrc/${i##*/} ]; then
rm -r $i
else
- mv $i /run/openrc/
+ mv $i run/openrc/
fi
done
@@ -20,8 +22,8 @@ for dir in /libexec /lib; do
done
# create rc.local compat
-if [ -f /etc/rc.local ]; then
- cat >/etc/local.d/rc.local-compat.start<<__EOF__
+if [ -f etc/rc.local ]; then
+ cat >etc/local.d/rc.local-compat.start<<__EOF__
#!/bin/sh
# this is only here for compatibility reasons
@@ -29,7 +31,35 @@ if [ -f /etc/rc.local ]; then
. /etc/rc.local
fi
__EOF__
- chmod +x /etc/local.d/rc.local-compat.start
+ chmod +x etc/local.d/rc.local-compat.start
+fi
+
+rename_service() {
+ oldname="$1"
+ newname="$2"
+
+ ret=1
+ for link in run/openrc/*/${oldname} etc/runlevels/*/${oldname}; do
+ newlink="${link%/*}/${newname}"
+ if [ -L "$link" ] && ! [ -L "$newlink" ]; then
+ target="$(readlink $link)"
+ ln -s "${target%/*}/$newname" "$newlink"
+ rm "$link"
+ ret=0
+ continue
+ fi
+ if [ -d "$link" ] && ! [ -d "$newlink" ]; then
+ mv "$link" "$newlink"
+ ret=0
+ fi
+ done
+
+ return $ret
+}
+
+if [ "$(apk version -t "$ver_old" '0.45-r0')" = '<' ]; then
+ # in 0.45 urandom was renamed to seedrng
+ rename_service urandom seedrng
fi
exit 0
diff --git a/main/openrc/seedrng.patch b/main/openrc/seedrng.patch
deleted file mode 100644
index ff61d810c2e..00000000000
--- a/main/openrc/seedrng.patch
+++ /dev/null
@@ -1,640 +0,0 @@
-From 076c2552aeff88a27fe275dfaae61dedf4bb4bd5 Mon Sep 17 00:00:00 2001
-From: "Jason A. Donenfeld" <Jason@zx2c4.com>
-Date: Thu, 24 Mar 2022 22:07:16 -0600
-Subject: [PATCH] Use seedrng for seeding the random number generator
-
-The RNG can't actually be seeded from a shell script, due to the
-reliance on ioctls. For this reason, the seedrng project provides a
-basic script meant to be copy and pasted into projects like OpenRC and
-tweaked as needed: https://git.zx2c4.com/seedrng/about/
-
-This commit imports it into OpenRC and wires up /etc/init.d/urandom to
-call it. It shouldn't be called by other things on the system, so it
-lives in rc_sbindir.
-
-Closes #506.
-Closes #507.
-
-Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
----
- AUTHORS | 1 +
- conf.d/urandom | 9 +-
- init.d/urandom.in | 41 ++--
- src/rc/Makefile | 6 +-
- src/rc/meson.build | 10 +-
- src/rc/seedrng.c | 453 +++++++++++++++++++++++++++++++++++++++++++++
- 6 files changed, 499 insertions(+), 21 deletions(-)
- create mode 100644 src/rc/seedrng.c
-
-diff --git a/AUTHORS b/AUTHORS
-index 0616d5175..ede0f471b 100644
---- a/AUTHORS
-+++ b/AUTHORS
-@@ -43,6 +43,7 @@ Ian Stakenvicius <axs@gentoo.org>
- Jakob Drexel <jake42@rommel.stw.uni-erlangen.de>
- James Le Cuirot <chewi@aura-online.co.uk>
- Jan Psota <jasiu@belsznica.pl>
-+Jason A. Donenfeld <Jason@zx2c4.com>
- Jason Zaman <jason@perfinion.com>
- Joe Harvell <jharvell@dogpad.net>
- Joe M <joe9mail@gmail.com>
-diff --git a/conf.d/urandom b/conf.d/urandom
-index f721a2491..744e4f702 100644
---- a/conf.d/urandom
-+++ b/conf.d/urandom
-@@ -2,4 +2,11 @@
- # (say for crypt swap), so you will need to customize this
- # behavior. If you have /var on a separate partition, then
- # make sure this path lives on your root device somewhere.
--urandom_seed="/var/lib/misc/random-seed"
-+seed_dir="/var/lib/seedrng"
-+lock_file="/var/run/seedrng.lock"
-+
-+# Set this to true if you do not want seed files to actually
-+# credit the RNG. Set this if you plan to replicate this
-+# file system image and do not have the wherewithal to first
-+# delete the contents of /var/lib/seedrng.
-+skip_credit="false"
-diff --git a/init.d/urandom.in b/init.d/urandom.in
-index 0d6ab66e0..cda431fdb 100644
---- a/init.d/urandom.in
-+++ b/init.d/urandom.in
-@@ -1,5 +1,5 @@
- #!@SBINDIR@/openrc-run
--# Copyright (c) 2007-2015 The OpenRC Authors.
-+# Copyright (c) 2007-2022 The OpenRC Authors.
- # See the Authors file at the top-level directory of this distribution and
- # https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
- #
-@@ -9,7 +9,10 @@
- # This file may not be copied, modified, propagated, or distributed
- # except according to the terms contained in the LICENSE file.
-
--: ${urandom_seed:=${URANDOM_SEED:-/var/lib/misc/random-seed}}
-+export SEEDRNG_SEED_DIR="${seed_dir:-/var/lib/seedrng}"
-+export SEEDRNG_LOCK_FILE="${lock_file:-/var/run/seedrng.lock}"
-+export SEEDRNG_SKIP_CREDIT="${skip_credit:-false}"
-+: ${urandom_seed:=${SEEDRNG_SEED_DIR}/../misc/random-seed}
- description="Initializes the random number generator."
-
- depend()
-@@ -21,33 +24,35 @@ depend()
-
- save_seed()
- {
-- local psz=1
--
-- if [ -e /proc/sys/kernel/random/poolsize ]; then
-- : $(( psz = $(cat /proc/sys/kernel/random/poolsize) / 4096 ))
-- fi
--
- ( # sub shell to prevent umask pollution
- umask 077
-- dd if=/dev/urandom of="$urandom_seed" count=${psz} 2>/dev/null
-+ dd if=/dev/urandom of="$urandom_seed" count=1 2>/dev/null
- )
- }
-
- start()
- {
-- [ -c /dev/urandom ] || return
-- if [ -f "$urandom_seed" ]; then
-- ebegin "Initializing random number generator"
-- cat "$urandom_seed" > /dev/urandom
-- eend $? "Error initializing random number generator"
-+ if [ "$RC_UNAME" = Linux ]; then
-+ seedrng
-+ else
-+ [ -c /dev/urandom ] || return
-+ if [ -f "$urandom_seed" ]; then
-+ ebegin "Initializing random number generator"
-+ cat "$urandom_seed" > /dev/urandom
-+ eend $? "Error initializing random number generator"
-+ fi
-+ rm -f "$urandom_seed" && save_seed
- fi
-- rm -f "$urandom_seed" && save_seed
- return 0
- }
-
- stop()
- {
-- ebegin "Saving random seed"
-- save_seed
-- eend $? "Failed to save random seed"
-+ if [ "$RC_UNAME" = Linux ]; then
-+ seedrng
-+ else
-+ ebegin "Saving random seed"
-+ save_seed
-+ eend $? "Failed to save random seed"
-+ fi
- }
-diff --git a/src/rc/Makefile b/src/rc/Makefile
-index fd796d920..62539f134 100644
---- a/src/rc/Makefile
-+++ b/src/rc/Makefile
-@@ -15,7 +15,7 @@ endif
-
- ifeq (${OS},Linux)
- SRCS+= kill_all.c openrc-init.c openrc-shutdown.c rc-sysvinit.c broadcast.c \
-- rc-wtmp.c
-+ rc-wtmp.c seedrng.c
- endif
-
- CLEANFILES= version.h rc-selinux.o
-@@ -47,6 +47,7 @@ RC_SBINPROGS= mark_service_starting mark_service_started \
-
- ifeq (${OS},Linux)
- RC_BINPROGS+= kill_all
-+RC_SBINPROGS+= seedrng
- SBINPROGS+= openrc-init openrc-shutdown
- endif
-
-@@ -180,3 +181,6 @@ shell_var: shell_var.o
-
- swclock: swclock.o _usage.o rc-misc.o
- ${CC} ${LOCAL_CFLAGS} ${LOCAL_LDFLAGS} ${CFLAGS} ${LDFLAGS} -o $@ $^ ${LDADD}
-+
-+seedrng: seedrng.o
-+ ${CC} ${LOCAL_CFLAGS} ${LOCAL_LDFLAGS} ${CFLAGS} ${LDFLAGS} -o $@ $^ ${LDADD}
-diff --git a/src/rc/meson.build b/src/rc/meson.build
-index 8fdf3ac3b..b724c51f2 100644
---- a/src/rc/meson.build
-+++ b/src/rc/meson.build
-@@ -268,7 +268,15 @@ if os == 'Linux'
- link_with: [libeinfo,librc],
- install: true,
- install_dir: rc_bindir)
-- endif
-+
-+ executable('seedrng',
-+ ['seedrng.c'],
-+ c_args : cc_branding_flags,
-+ include_directories: [incdir, einfo_incdir, rc_incdir],
-+ link_with: [libeinfo, librc],
-+ install: true,
-+ install_dir: rc_sbindir)
-+endif
-
- executable('shell_var',
- ['shell_var.c'],
-diff --git a/src/rc/seedrng.c b/src/rc/seedrng.c
-new file mode 100644
-index 000000000..c1f941457
---- /dev/null
-+++ b/src/rc/seedrng.c
-@@ -0,0 +1,453 @@
-+/*
-+ * seedrng.c
-+ * Seed kernel RNG from seed file, based on code from:
-+ * https://git.zx2c4.com/seedrng/about/
-+ */
-+
-+/*
-+ * Copyright (c) 2022 The OpenRC Authors.
-+ * See the Authors file at the top-level directory of this distribution and
-+ * https://github.com/OpenRC/openrc/blob/HEAD/AUTHORS
-+ *
-+ * This file is part of OpenRC. It is subject to the license terms in
-+ * the LICENSE file found in the top-level directory of this
-+ * distribution and at https://github.com/OpenRC/openrc/blob/HEAD/LICENSE
-+ * This file may not be copied, modified, propagated, or distributed
-+ * except according to the terms contained in the LICENSE file.
-+ */
-+
-+#include <linux/random.h>
-+#include <sys/random.h>
-+#include <sys/ioctl.h>
-+#include <sys/file.h>
-+#include <sys/stat.h>
-+#include <sys/types.h>
-+#include <fcntl.h>
-+#include <poll.h>
-+#include <unistd.h>
-+#include <time.h>
-+#include <errno.h>
-+#include <endian.h>
-+#include <stdbool.h>
-+#include <stdint.h>
-+#include <string.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+
-+#include "rc.h"
-+#include "einfo.h"
-+#include "helpers.h"
-+
-+#ifndef GRND_INSECURE
-+#define GRND_INSECURE 0x0004 /* Apparently some headers don't ship with this yet. */
-+#endif
-+
-+static const char *SEED_DIR;
-+static const char *LOCK_FILE;
-+static char *CREDITABLE_SEED;
-+static char *NON_CREDITABLE_SEED;
-+
-+enum blake2s_lengths {
-+ BLAKE2S_BLOCK_LEN = 64,
-+ BLAKE2S_HASH_LEN = 32,
-+ BLAKE2S_KEY_LEN = 32
-+};
-+
-+enum seedrng_lengths {
-+ MAX_SEED_LEN = 512,
-+ MIN_SEED_LEN = BLAKE2S_HASH_LEN
-+};
-+
-+struct blake2s_state {
-+ uint32_t h[8];
-+ uint32_t t[2];
-+ uint32_t f[2];
-+ uint8_t buf[BLAKE2S_BLOCK_LEN];
-+ unsigned int buflen;
-+ unsigned int outlen;
-+};
-+
-+#define le32_to_cpup(a) le32toh(*(a))
-+#define cpu_to_le32(a) htole32(a)
-+#ifndef ARRAY_SIZE
-+#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
-+#endif
-+#ifndef DIV_ROUND_UP
-+#define DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
-+#endif
-+
-+static inline void cpu_to_le32_array(uint32_t *buf, unsigned int words)
-+{
-+ while (words--) {
-+ *buf = cpu_to_le32(*buf);
-+ ++buf;
-+ }
-+}
-+
-+static inline void le32_to_cpu_array(uint32_t *buf, unsigned int words)
-+{
-+ while (words--) {
-+ *buf = le32_to_cpup(buf);
-+ ++buf;
-+ }
-+}
-+
-+static inline uint32_t ror32(uint32_t word, unsigned int shift)
-+{
-+ return (word >> (shift & 31)) | (word << ((-shift) & 31));
-+}
-+
-+static const uint32_t blake2s_iv[8] = {
-+ 0x6A09E667UL, 0xBB67AE85UL, 0x3C6EF372UL, 0xA54FF53AUL,
-+ 0x510E527FUL, 0x9B05688CUL, 0x1F83D9ABUL, 0x5BE0CD19UL
-+};
-+
-+static const uint8_t blake2s_sigma[10][16] = {
-+ { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
-+ { 14, 10, 4, 8, 9, 15, 13, 6, 1, 12, 0, 2, 11, 7, 5, 3 },
-+ { 11, 8, 12, 0, 5, 2, 15, 13, 10, 14, 3, 6, 7, 1, 9, 4 },
-+ { 7, 9, 3, 1, 13, 12, 11, 14, 2, 6, 5, 10, 4, 0, 15, 8 },
-+ { 9, 0, 5, 7, 2, 4, 10, 15, 14, 1, 11, 12, 6, 8, 3, 13 },
-+ { 2, 12, 6, 10, 0, 11, 8, 3, 4, 13, 7, 5, 15, 14, 1, 9 },
-+ { 12, 5, 1, 15, 14, 13, 4, 10, 0, 7, 6, 3, 9, 2, 8, 11 },
-+ { 13, 11, 7, 14, 12, 1, 3, 9, 5, 0, 15, 4, 8, 6, 2, 10 },
-+ { 6, 15, 14, 9, 11, 3, 0, 8, 12, 2, 13, 7, 1, 4, 10, 5 },
-+ { 10, 2, 8, 4, 7, 6, 1, 5, 15, 11, 9, 14, 3, 12, 13, 0 },
-+};
-+
-+static void blake2s_set_lastblock(struct blake2s_state *state)
-+{
-+ state->f[0] = -1;
-+}
-+
-+static void blake2s_increment_counter(struct blake2s_state *state, const uint32_t inc)
-+{
-+ state->t[0] += inc;
-+ state->t[1] += (state->t[0] < inc);
-+}
-+
-+static void blake2s_init_param(struct blake2s_state *state, const uint32_t param)
-+{
-+ int i;
-+
-+ memset(state, 0, sizeof(*state));
-+ for (i = 0; i < 8; ++i)
-+ state->h[i] = blake2s_iv[i];
-+ state->h[0] ^= param;
-+}
-+
-+static void blake2s_init(struct blake2s_state *state, const size_t outlen)
-+{
-+ blake2s_init_param(state, 0x01010000 | outlen);
-+ state->outlen = outlen;
-+}
-+
-+static void blake2s_compress(struct blake2s_state *state, const uint8_t *block, size_t nblocks, const uint32_t inc)
-+{
-+ uint32_t m[16];
-+ uint32_t v[16];
-+ int i;
-+
-+ while (nblocks > 0) {
-+ blake2s_increment_counter(state, inc);
-+ memcpy(m, block, BLAKE2S_BLOCK_LEN);
-+ le32_to_cpu_array(m, ARRAY_SIZE(m));
-+ memcpy(v, state->h, 32);
-+ v[ 8] = blake2s_iv[0];
-+ v[ 9] = blake2s_iv[1];
-+ v[10] = blake2s_iv[2];
-+ v[11] = blake2s_iv[3];
-+ v[12] = blake2s_iv[4] ^ state->t[0];
-+ v[13] = blake2s_iv[5] ^ state->t[1];
-+ v[14] = blake2s_iv[6] ^ state->f[0];
-+ v[15] = blake2s_iv[7] ^ state->f[1];
-+
-+#define G(r, i, a, b, c, d) do { \
-+ a += b + m[blake2s_sigma[r][2 * i + 0]]; \
-+ d = ror32(d ^ a, 16); \
-+ c += d; \
-+ b = ror32(b ^ c, 12); \
-+ a += b + m[blake2s_sigma[r][2 * i + 1]]; \
-+ d = ror32(d ^ a, 8); \
-+ c += d; \
-+ b = ror32(b ^ c, 7); \
-+} while (0)
-+
-+#define ROUND(r) do { \
-+ G(r, 0, v[0], v[ 4], v[ 8], v[12]); \
-+ G(r, 1, v[1], v[ 5], v[ 9], v[13]); \
-+ G(r, 2, v[2], v[ 6], v[10], v[14]); \
-+ G(r, 3, v[3], v[ 7], v[11], v[15]); \
-+ G(r, 4, v[0], v[ 5], v[10], v[15]); \
-+ G(r, 5, v[1], v[ 6], v[11], v[12]); \
-+ G(r, 6, v[2], v[ 7], v[ 8], v[13]); \
-+ G(r, 7, v[3], v[ 4], v[ 9], v[14]); \
-+} while (0)
-+ ROUND(0);
-+ ROUND(1);
-+ ROUND(2);
-+ ROUND(3);
-+ ROUND(4);
-+ ROUND(5);
-+ ROUND(6);
-+ ROUND(7);
-+ ROUND(8);
-+ ROUND(9);
-+
-+#undef G
-+#undef ROUND
-+
-+ for (i = 0; i < 8; ++i)
-+ state->h[i] ^= v[i] ^ v[i + 8];
-+
-+ block += BLAKE2S_BLOCK_LEN;
-+ --nblocks;
-+ }
-+}
-+
-+static void blake2s_update(struct blake2s_state *state, const void *inp, size_t inlen)
-+{
-+ const size_t fill = BLAKE2S_BLOCK_LEN - state->buflen;
-+ const uint8_t *in = inp;
-+
-+ if (!inlen)
-+ return;
-+ if (inlen > fill) {
-+ memcpy(state->buf + state->buflen, in, fill);
-+ blake2s_compress(state, state->buf, 1, BLAKE2S_BLOCK_LEN);
-+ state->buflen = 0;
-+ in += fill;
-+ inlen -= fill;
-+ }
-+ if (inlen > BLAKE2S_BLOCK_LEN) {
-+ const size_t nblocks = DIV_ROUND_UP(inlen, BLAKE2S_BLOCK_LEN);
-+ blake2s_compress(state, in, nblocks - 1, BLAKE2S_BLOCK_LEN);
-+ in += BLAKE2S_BLOCK_LEN * (nblocks - 1);
-+ inlen -= BLAKE2S_BLOCK_LEN * (nblocks - 1);
-+ }
-+ memcpy(state->buf + state->buflen, in, inlen);
-+ state->buflen += inlen;
-+}
-+
-+static void blake2s_final(struct blake2s_state *state, uint8_t *out)
-+{
-+ blake2s_set_lastblock(state);
-+ memset(state->buf + state->buflen, 0, BLAKE2S_BLOCK_LEN - state->buflen);
-+ blake2s_compress(state, state->buf, 1, state->buflen);
-+ cpu_to_le32_array(state->h, ARRAY_SIZE(state->h));
-+ memcpy(out, state->h, state->outlen);
-+}
-+
-+static size_t determine_optimal_seed_len(void)
-+{
-+ size_t ret = 0;
-+ char poolsize_str[11] = { 0 };
-+ int fd = open("/proc/sys/kernel/random/poolsize", O_RDONLY);
-+
-+ if (fd < 0 || read(fd, poolsize_str, sizeof(poolsize_str) - 1) < 0) {
-+ ewarn("Unable to determine pool size, falling back to %u bits: %s", MIN_SEED_LEN * 8, strerror(errno));
-+ ret = MIN_SEED_LEN;
-+ } else
-+ ret = DIV_ROUND_UP(strtoul(poolsize_str, NULL, 10), 8);
-+ if (fd >= 0)
-+ close(fd);
-+ if (ret < MIN_SEED_LEN)
-+ ret = MIN_SEED_LEN;
-+ else if (ret > MAX_SEED_LEN)
-+ ret = MAX_SEED_LEN;
-+ return ret;
-+}
-+
-+static int read_new_seed(uint8_t *seed, size_t len, bool *is_creditable)
-+{
-+ ssize_t ret;
-+ int urandom_fd;
-+
-+ *is_creditable = false;
-+ ret = getrandom(seed, len, GRND_NONBLOCK);
-+ if (ret == (ssize_t)len) {
-+ *is_creditable = true;
-+ return 0;
-+ }
-+ if (ret == -1 && errno == ENOSYS) {
-+ struct pollfd random_fd = {
-+ .fd = open("/dev/random", O_RDONLY),
-+ .events = POLLIN
-+ };
-+ if (random_fd.fd < 0)
-+ return -errno;
-+ *is_creditable = poll(&random_fd, 1, 0) == 1;
-+ close(random_fd.fd);
-+ } else if (getrandom(seed, len, GRND_INSECURE) == (ssize_t)len)
-+ return 0;
-+ urandom_fd = open("/dev/urandom", O_RDONLY);
-+ if (urandom_fd < 0)
-+ return -errno;
-+ ret = read(urandom_fd, seed, len);
-+ if (ret == (ssize_t)len)
-+ ret = 0;
-+ else
-+ ret = -errno ? -errno : -EIO;
-+ close(urandom_fd);
-+ return ret;
-+}
-+
-+static int seed_rng(uint8_t *seed, size_t len, bool credit)
-+{
-+ struct {
-+ int entropy_count;
-+ int buf_size;
-+ uint8_t buffer[MAX_SEED_LEN];
-+ } req = {
-+ .entropy_count = credit ? len * 8 : 0,
-+ .buf_size = len
-+ };
-+ int random_fd, ret;
-+
-+ if (len > sizeof(req.buffer))
-+ return -EFBIG;
-+ memcpy(req.buffer, seed, len);
-+
-+ random_fd = open("/dev/random", O_RDWR);
-+ if (random_fd < 0)
-+ return -errno;
-+ ret = ioctl(random_fd, RNDADDENTROPY, &req);
-+ if (ret)
-+ ret = -errno ? -errno : -EIO;
-+ close(random_fd);
-+ return ret;
-+}
-+
-+static int seed_from_file_if_exists(const char *filename, bool credit, struct blake2s_state *hash)
-+{
-+ uint8_t seed[MAX_SEED_LEN];
-+ ssize_t seed_len;
-+ int fd, dfd, ret = 0;
-+
-+ fd = open(filename, O_RDONLY);
-+ if (fd < 0 && errno == ENOENT)
-+ return 0;
-+ else if (fd < 0) {
-+ ret = -errno;
-+ eerror("Unable to open seed file: %s", strerror(errno));
-+ return ret;
-+ }
-+ dfd = open(SEED_DIR, O_DIRECTORY | O_RDONLY);
-+ if (dfd < 0) {
-+ ret = -errno;
-+ close(fd);
-+ eerror("Unable to open seed directory: %s", strerror(errno));
-+ return ret;
-+ }
-+ seed_len = read(fd, seed, sizeof(seed));
-+ if (seed_len < 0) {
-+ ret = -errno;
-+ eerror("Unable to read seed file: %s", strerror(errno));
-+ }
-+ close(fd);
-+ if (ret) {
-+ close(dfd);
-+ return ret;
-+ }
-+ if ((unlink(filename) < 0 || fsync(dfd) < 0) && seed_len) {
-+ ret = -errno;
-+ eerror("Unable to remove seed after reading, so not seeding: %s", strerror(errno));
-+ }
-+ close(dfd);
-+ if (ret)
-+ return ret;
-+ if (!seed_len)
-+ return 0;
-+
-+ blake2s_update(hash, &seed_len, sizeof(seed_len));
-+ blake2s_update(hash, seed, seed_len);
-+
-+ einfo("Seeding %zd bits %s crediting", seed_len * 8, credit ? "and" : "without");
-+ ret = seed_rng(seed, seed_len, credit);
-+ if (ret < 0)
-+ eerror("Unable to seed: %s", strerror(-ret));
-+ return ret;
-+}
-+
-+static void populate_global_paths(void)
-+{
-+ SEED_DIR = getenv("SEEDRNG_SEED_DIR");
-+ if (!SEED_DIR || !*SEED_DIR)
-+ SEED_DIR = "/var/lib/seedrng";
-+ LOCK_FILE = getenv("SEEDRNG_LOCK_FILE");
-+ if (!LOCK_FILE || !*LOCK_FILE)
-+ LOCK_FILE = "/var/run/seedrng.lock";
-+ xasprintf(&CREDITABLE_SEED, "%s/seed.credit", SEED_DIR);
-+ xasprintf(&NON_CREDITABLE_SEED, "%s/seed.no-credit", SEED_DIR);
-+}
-+
-+int main(int argc _unused, char *argv[] _unused)
-+{
-+ static const char seedrng_prefix[] = "SeedRNG v1 Old+New Prefix";
-+ static const char seedrng_failure[] = "SeedRNG v1 No New Seed Failure";
-+ int ret, fd, lock, program_ret = 0;
-+ uint8_t new_seed[MAX_SEED_LEN];
-+ size_t new_seed_len;
-+ bool new_seed_creditable;
-+ struct timespec realtime = { 0 }, boottime = { 0 };
-+ struct blake2s_state hash;
-+
-+ umask(0077);
-+ if (getuid())
-+ eerrorx("This rc helper program requires root");
-+
-+ populate_global_paths();
-+ blake2s_init(&hash, BLAKE2S_HASH_LEN);
-+ blake2s_update(&hash, seedrng_prefix, strlen(seedrng_prefix));
-+ clock_gettime(CLOCK_REALTIME, &realtime);
-+ clock_gettime(CLOCK_BOOTTIME, &boottime);
-+ blake2s_update(&hash, &realtime, sizeof(realtime));
-+ blake2s_update(&hash, &boottime, sizeof(boottime));
-+
-+ if (mkdir(SEED_DIR, 0700) < 0 && errno != EEXIST)
-+ eerrorx("Unable to create \"%s\" directory: %s", SEED_DIR, strerror(errno));
-+
-+ lock = open(LOCK_FILE, O_WRONLY | O_CREAT, 0000);
-+ if (lock < 0 || flock(lock, LOCK_EX) < 0)
-+ eerrorx("Unable to open lock file: %s", strerror(errno));
-+
-+ ret = seed_from_file_if_exists(NON_CREDITABLE_SEED, false, &hash);
-+ if (ret < 0)
-+ program_ret |= 1 << 1;
-+ ret = seed_from_file_if_exists(CREDITABLE_SEED, !rc_yesno(getenv("SEEDRNG_SKIP_CREDIT")), &hash);
-+ if (ret < 0)
-+ program_ret |= 1 << 2;
-+
-+ new_seed_len = determine_optimal_seed_len();
-+ ret = read_new_seed(new_seed, new_seed_len, &new_seed_creditable);
-+ if (ret < 0) {
-+ eerror("Unable to read new seed: %s", strerror(-ret));
-+ new_seed_len = BLAKE2S_HASH_LEN;
-+ strncpy((char *)new_seed, seedrng_failure, new_seed_len);
-+ program_ret |= 1 << 3;
-+ }
-+ blake2s_update(&hash, &new_seed_len, sizeof(new_seed_len));
-+ blake2s_update(&hash, new_seed, new_seed_len);
-+ blake2s_final(&hash, new_seed + new_seed_len - BLAKE2S_HASH_LEN);
-+
-+ einfo("Saving %zu bits of %s seed for next boot", new_seed_len * 8, new_seed_creditable ? "creditable" : "non-creditable");
-+ fd = open(NON_CREDITABLE_SEED, O_WRONLY | O_CREAT | O_TRUNC, 0400);
-+ if (fd < 0) {
-+ eerror("Unable to open seed file for writing: %s", strerror(errno));
-+ program_ret |= 1 << 4;
-+ goto out;
-+ }
-+ if (write(fd, new_seed, new_seed_len) != (ssize_t)new_seed_len || fsync(fd) < 0) {
-+ eerror("Unable to write seed file: %s", strerror(errno));
-+ program_ret |= 1 << 5;
-+ goto out;
-+ }
-+ if (new_seed_creditable && rename(NON_CREDITABLE_SEED, CREDITABLE_SEED) < 0) {
-+ ewarn("Unable to make new seed creditable: %s", strerror(errno));
-+ program_ret |= 1 << 6;
-+ }
-+out:
-+ close(fd);
-+ close(lock);
-+ return program_ret;
-+}
diff --git a/main/openrc/supervise-daemon-defaults.patch b/main/openrc/supervise-daemon-defaults.patch
new file mode 100644
index 00000000000..53a70bb9c12
--- /dev/null
+++ b/main/openrc/supervise-daemon-defaults.patch
@@ -0,0 +1,31 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Wed, 16 Nov 2022 01:47:34 +0100
+Subject: [PATCH] Provide more reasonable defaults for supervise-daemon
+
+The vendor's default parameters for the supervise-daemon are unreasonable
+or even unusable for most of the services (empirically found), especially
+respawn_delay=0 (i.e. respawn crashed service immediately).
+
+--- a/etc/rc.conf
++++ b/etc/rc.conf
+@@ -315,3 +315,20 @@
+ # If this is set to no, we do not send sigkill to all processes in the
+ # cgroup.
+ #rc_send_sigkill="YES"
++
++##############################################################################
++# SUPERVISE DAEMON CONFIGURATION VARIABLES
++# These variables sets more reasonable defaults for supervise-daemon(8).
++# They may be overriden on a per service basis.
++
++# Wait this number of seconds before restarting a daemon after it crashes.
++respawn_delay=2
++
++# Sets the maximum number of times a daemon will be respawned during a respawn
++# period. If a daemon dies more than this number of times during a respawn
++# period, supervise-daemon(8) will give up trying to respawn it and exit.
++# 0 means unlimited.
++respawn_max=5
++
++# Sets the length in seconds of a respawn period.
++respawn_period=1800
diff --git a/main/openrc/sysctl-readme.patch b/main/openrc/sysctl-readme.patch
new file mode 100644
index 00000000000..df61aa10790
--- /dev/null
+++ b/main/openrc/sysctl-readme.patch
@@ -0,0 +1,11 @@
+diff --git a/sysctl.d/README b/sysctl.d/README
+index ca3e030..1b056a7 100644
+--- a/sysctl.d/README
++++ b/sysctl.d/README
+@@ -10,4 +10,5 @@ with .conf, or it will not be read.
+
+ The recommended location for local system settings is /etc/sysctl.d/local.conf
+ but as long as you follow the rules for the name of the file, anything will
+-work. see the sysctl.conf(5) man page for details of the format.
++work. see the sysctl.conf(5) man page for details of the format. This manpage
++can be found in the `procps-doc` package.
diff --git a/main/openresolv/APKBUILD b/main/openresolv/APKBUILD
index 5a0a583cabf..aeb3915189a 100644
--- a/main/openresolv/APKBUILD
+++ b/main/openresolv/APKBUILD
@@ -1,15 +1,16 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=openresolv
-pkgver=3.12.0
-pkgrel=1
+pkgver=3.13.2
+pkgrel=0
pkgdesc="A framework for managing DNS information"
url="https://roy.marples.name/projects/openresolv"
arch="noarch"
license="BSD-2-Clause"
subpackages="$pkgname-doc"
-source="http://roy.marples.name/downloads/openresolv/openresolv-$pkgver.tar.xz
+source="$pkgname-$pkgver.tar.gz::https://github.com/NetworkConfiguration/openresolv/archive/refs/tags/v$pkgver.tar.gz
detect_init-remove-irrelevant.patch
"
+options="!check"
build() {
# NOTE: Don't set --prefix, it should be /.
@@ -28,6 +29,6 @@ package() {
}
sha512sums="
-60348ca35114b105c8b3121e5f2d301311fcc7251a9be60c45fedc27267cfd94e413e77c7d5c91d0a0ccb8f1b4288bc147582b0ac9be64afcaa96ad3d833f26f openresolv-3.12.0.tar.xz
-6789cab6a2a22ff6f0fb640a3c1d76449b460605c216c313c1c999f906ab2e2af7d9c63fda55ef394813768fe916d59c50c083bc768528d2819790a173e92c40 detect_init-remove-irrelevant.patch
+5471178db5336f2d6ae08b1baf0fb45b76f0eb8fa313f25f3beb360749c87897b69d835c64733ee4ec18f72150259e4ba79cfe13dd69e5ff65a7e5b50f543136 openresolv-3.13.2.tar.gz
+4532f62530c8922f91ca9bb78b1fdb8f68801b0a4643af5e1a57faa7b1640e0b453c8603040c2a3315bbf1ee0c4f39c6fe696fde3ec9569d61a0ed086b3afaaa detect_init-remove-irrelevant.patch
"
diff --git a/main/openresolv/detect_init-remove-irrelevant.patch b/main/openresolv/detect_init-remove-irrelevant.patch
index e34d037e21e..f4e91149379 100644
--- a/main/openresolv/detect_init-remove-irrelevant.patch
+++ b/main/openresolv/detect_init-remove-irrelevant.patch
@@ -4,9 +4,11 @@ Subject: Remove support for init systems we don't have, add support for s6
Don't waste resources looking for init systems we don't have in Alpine.
+diff --git a/resolvconf.in b/resolvconf.in
+index d1cdc71..42023ff 100644
--- a/resolvconf.in
+++ b/resolvconf.in
-@@ -299,74 +299,19 @@
+@@ -299,80 +299,25 @@ detect_init()
[ -n "$RESTARTCMD" ] && return 0
# Detect the running init system.
@@ -39,6 +41,12 @@ Don't waste resources looking for init systems we don't have in Alpine.
- then
- /usr/sbin/invoke-rc.d $1 restart
- fi'
+ elif [ -x /usr/bin/s6-rc ] && [ -x /usr/bin/s6-svc ]; then
+ RESTARTCMD='
+ if s6-rc -a list | grep -qFx $1-srv
+ then
+ s6-svc -r /run/service/$1-srv
+ fi'
- elif [ -x /sbin/service ]; then
- # Old RedHat
- RCDIR=/etc/init.d
@@ -82,6 +90,6 @@ Don't waste resources looking for init systems we don't have in Alpine.
+ # TODO: Test if this works correctly.
+ elif [ -x /bin/s6-svc ] && [ -e /run/s6-rc ]; then
+ RESTARTCMD='/bin/s6-svc -r /run/service/$1'
+ elif [ -d /etc/dinit.d ] && command -v dinitctl >/dev/null 2>&1; then
+ RESTARTCMD='dinitctl --quiet restart --ignore-unstarted $1'
else
- for x in /etc/init.d/rc.d /etc/rc.d /etc/init.d; do
- [ -d $x ] || continue
diff --git a/main/opensbi/APKBUILD b/main/opensbi/APKBUILD
index 727a5dc41b7..f030e23381c 100644
--- a/main/opensbi/APKBUILD
+++ b/main/opensbi/APKBUILD
@@ -2,13 +2,14 @@
# Maintainer: Milan P. Stanić <mps@arvanta.net>
pkgname=opensbi
# XXX: Updates require rebuilds of main/u-boot.
-pkgver=1.0
+pkgver=1.4
pkgrel=0
pkgdesc="risc-v open source supervisor binary interface"
-url=" https://github.com/riscv/opensbi"
+url="https://github.com/riscv/opensbi"
arch="riscv64"
license="BSD-2-Clause"
options="!check" # no tests
+makedepends="bash python3"
source="$pkgname-$pkgver.tar.gz::https://github.com/riscv/opensbi/archive/refs/tags/v$pkgver.tar.gz"
build() {
@@ -22,5 +23,5 @@ package() {
}
sha512sums="
-7efc2440df1aa7b3bfdd7b44f9c87f8cf15d0aff5a318b742bc591f7599a68e383bbae161a507fb0bb5520cb49fd7ff0f8f0bf5897868319f0f74270addfea26 opensbi-1.0.tar.gz
+11833ccca1f16ca5d19580862a0f25d303f7696214c47c30f78f221e16fc35f385f4388d96370c4aa8d43f7f7d5a804c8b55dc845bd316421d9d8ad9509b7ba4 opensbi-1.4.tar.gz
"
diff --git a/main/opensmtpd/APKBUILD b/main/opensmtpd/APKBUILD
deleted file mode 100644
index 87f48b33691..00000000000
--- a/main/opensmtpd/APKBUILD
+++ /dev/null
@@ -1,93 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Contributor: Jonathan Curran <jonathan@curran.in>
-# Contributor: Shiz <hi@shiz.me>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-#
-# secfixes:
-# 6.6.2p1-r0:
-# - CVE-2020-7247
-pkgname=opensmtpd
-pkgver=6.8.0p2
-pkgrel=4
-pkgdesc="Secure, reliable, lean, and easy-to configure SMTP server"
-url="https://www.opensmtpd.org/"
-arch="all"
-license="ISC"
-depends="!postfix ca-certificates"
-makedepends="automake autoconf libtool mandoc db-dev libasr-dev libevent-dev
- fts-dev zlib-dev openssl1.1-compat-dev bison flex-dev linux-pam-dev"
-install="$pkgname.pre-install"
-subpackages="$pkgname-dbg $pkgname-pam $pkgname-openrc $pkgname-doc"
-source="https://www.opensmtpd.org/archives/opensmtpd-$pkgver.tar.gz
- smtpd.initd
- smtpd.confd
- aliases
- smtpd.conf.patch
- "
-options="suid !check"
-
-prepare() {
- default_prepare
- cp -ar "$builddir" "$builddir-pam"
-}
-
-build() {
- cd "$builddir"
- _build
-
- cd "$builddir-pam"
- _build --with-auth-pam
-}
-
-_build() {
- ./configure \
- --prefix=/usr \
- --sysconfdir=/etc/smtpd \
- --with-libssl=/usr/include/openssl \
- --mandir=/usr/share/man \
- --libexecdir=/usr/lib \
- --with-path-mbox=/var/mail \
- --with-path-pidfile=/run \
- --with-path-socket=/run \
- --with-table-db \
- --with-user-queue=smtpq \
- --with-group-queue=smtpq \
- --with-user-smtpd=smtpd \
- --with-path-socket=/run \
- --with-libs="-lfts" \
- --with-pie \
- --with-path-CAfile=/etc/ssl/certs/ca-certificates.crt \
- --with-mantype=doc \
- "$@"
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" -C "$builddir" install
-
- install -Dm755 "$srcdir"/smtpd.initd "$pkgdir"/etc/init.d/smtpd
- install -Dm644 "$srcdir"/smtpd.confd "$pkgdir"/etc/conf.d/smtpd
- install -Dm644 "$srcdir"/aliases "$pkgdir"/etc/smtpd/aliases
-
- # Create compatibility symlinks for mailq, newaliases, makemap and sendmail.
- local binary; for binary in mailq newaliases makemap sendmail; do
- ln -s /usr/sbin/smtpctl "$pkgdir"/usr/sbin/$binary
- done
-
- install -Dm755 "$builddir-pam"/mk/smtpd/smtpd "$pkgdir"/usr/sbin/smtpd-pam
-}
-
-pam() {
- pkgdesc="OpenSMTPD with PAM support"
- depends="$pkgname=$pkgver-r$pkgrel"
-
- amove usr/sbin/smtpd-pam
-}
-
-sha512sums="
-48f152b75575146fdd09bdf47123041ea62fefb6e5de33a69826bf91a2126a918f8db1caffadb2f142a1a21de8126d492de88cb65bdf169e61c0b22d3e78d290 opensmtpd-6.8.0p2.tar.gz
-cce0c3b014a02d46c77d4de6495cf8e7e48d17c89c27432f121060d6712ae3606a6e5d51a74cf5504e826f7dd72176297dc83c9e6623f8e3fe9a952c8d02add1 smtpd.initd
-e68fca4a7e0ceda271ad61c5a6592a859789bea9ccb6417258f7a0b45d92163ed6097c208d3fdfb78bf978a6a01b6f3678e047e3ce972b2c521419d54a992e0a smtpd.confd
-51d47b34eb3d728daa45f29d6434cc75db28dfa69b6fb3ecd873121df85b296a2d2c81016d765a07778aa26a496e4b29c09a30b82678cf42596a536734b5deca aliases
-8639757c0190ca96dd32530b5b7e26637dab3204fd3750385eb495964e787157a8d3a084d109709889e5b2ca99f9e51da2192030fdfe9440f431531299a8e103 smtpd.conf.patch
-"
diff --git a/main/opensmtpd/aliases b/main/opensmtpd/aliases
deleted file mode 100644
index 02c802dd4a5..00000000000
--- a/main/opensmtpd/aliases
+++ /dev/null
@@ -1,63 +0,0 @@
-# Aliases in this file will NOT be expanded in the header from
-# Mail, but WILL be visible over networks or from /usr/lib/opensmtpd/mail.local.
-#
-# >>>>>>>>>> The program "newaliases" must be run after
-# >> NOTE >> this file is updated for any changes to
-# >>>>>>>>>> show through to smtpd.
-#
-
-# Well-known aliases -- this should be filled in!
-# root: your-every-day-user
-
-# Basic system aliases -- these MUST be present
-MAILER-DAEMON: postmaster
-postmaster: root
-operator: root
-
-# General redirections for important pseudo accounts
-daemon: root
-uucp: root
-
-# Redirections for pseudo accounts that should not receive mail
-bin: /dev/null
-adm: /dev/null
-lp: /dev/null
-sync: /dev/null
-shutdown: /dev/null
-halt: /dev/null
-mail: /dev/null
-news: /dev/null
-man: /dev/null
-cron: /dev/null
-ftp: /dev/null
-sshd: /dev/null
-at: /dev/null
-squid: /dev/null
-gdm: /dev/null
-xfs: /dev/null
-games: /dev/null
-named: /dev/null
-mysql: /dev/null
-postgres: /dev/null
-apache: /dev/null
-nut: /dev/null
-cyrus: /dev/null
-vpopmail: /dev/null
-ntp: /dev/null
-postfix: /dev/null
-smmsp: /dev/null
-distcc: /dev/null
-guest: /dev/null
-nobody: /dev/null
-
-# RFC 2142: NETWORK OPERATIONS MAILBOX NAMES
-abuse: root
-# noc: root
-security: root
-
-# RFC 2142: SUPPORT MAILBOX NAMES FOR SPECIFIC INTERNET SERVICES
-# hostmaster: root
-# usenet: root
-# news: usenet
-# webmaster: root
-# ftp: root \ No newline at end of file
diff --git a/main/opensmtpd/opensmtpd.pre-install b/main/opensmtpd/opensmtpd.pre-install
deleted file mode 100644
index 2c3f80dcf40..00000000000
--- a/main/opensmtpd/opensmtpd.pre-install
+++ /dev/null
@@ -1,9 +0,0 @@
-#!/bin/sh
-
-addgroup -S smtpd 2>/dev/null
-addgroup -S smtpq 2>/dev/null
-adduser -S -D -H -h /dev/null -s /sbin/nologin -G smtpd -g 'SMTP Daemon' smtpd 2>/dev/null
-adduser -S -D -H -h /dev/null -s /sbin/nologin -G smtpq -g 'SMTPD Queue' smtpq 2>/dev/null
-mkdir -p /var/mail
-
-exit 0
diff --git a/main/opensmtpd/smtpd.conf.patch b/main/opensmtpd/smtpd.conf.patch
deleted file mode 100644
index 7161374deee..00000000000
--- a/main/opensmtpd/smtpd.conf.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-"listen on localhost" and "listen on all" doesn't work on Linux
-
---- a/usr.sbin/smtpd/smtpd.conf
-+++ b/usr.sbin/smtpd/smtpd.conf
-@@ -1,13 +1,11 @@
--# $OpenBSD: smtpd.conf,v 1.10 2018/05/24 11:40:17 gilles Exp $
--
- # This is the smtpd server system-wide configuration file.
- # See smtpd.conf(5) for more information.
-
--table aliases file:/etc/mail/aliases
-+table aliases file:/etc/smtpd/aliases
-
--# To accept external mail, replace with: listen on all
-+# To accept external mail, add something like: listen on eth0
- #
--listen on localhost
-+listen on lo
-
- action "local" maildir alias <aliases>
- action "relay" relay
diff --git a/main/opensmtpd/smtpd.confd b/main/opensmtpd/smtpd.confd
deleted file mode 100644
index 6866267a5f6..00000000000
--- a/main/opensmtpd/smtpd.confd
+++ /dev/null
@@ -1,8 +0,0 @@
-# Configuration for /etc/init.d/smtpd
-
-# Use PAM?
-# Note: You have to install package opensmtpd-pam to enable PAM.
-#use_pam=no
-
-# Additional arguments for smtpd.
-#command_args=
diff --git a/main/opensmtpd/smtpd.initd b/main/opensmtpd/smtpd.initd
deleted file mode 100644
index e72fa4173d3..00000000000
--- a/main/opensmtpd/smtpd.initd
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/sbin/openrc-run
-
-name="OpenSMTPD"
-extra_commands="checkconfig"
-description_checkconfig="Check configuration file for errors"
-
-command=/usr/sbin/smtpd
-[ "$use_pam" = yes ] && command=/usr/sbin/smtpd-pam
-
-command_args="-F ${command_args:-$SMTPD_OPTS}" # SMTPD_OPTS is deprecated
-command_background=yes
-
-pidfile=/run/$RC_SVCNAME.pid
-required_files=/etc/smtpd/smtpd.conf
-
-depend() {
- need net localmount
- after bootmisc firewall
- use logger dns
- provide mta
-}
-
-start_pre() {
- checkconfig
-}
-
-checkconfig() {
- if [ "$use_pam" = yes ] && [ ! -x "$command" ]; then
- eerror "\$use_pam=yes, but opensmtpd-pam is not installed"
- return 1
- fi
-
- ebegin "Checking $name configuration"
-
- # Don't output anything unless something is *not* ok.
- local out rc=0
- out=$($command -n 2>&1) || rc=$?
- [ "$rc" -eq 0 ] || printf '%s\n' "$out" >&2
-
- eend $rc
-}
diff --git a/main/opensp/APKBUILD b/main/opensp/APKBUILD
index f29502f72f2..b0a408498a1 100644
--- a/main/opensp/APKBUILD
+++ b/main/opensp/APKBUILD
@@ -4,11 +4,11 @@
pkgname=opensp
_realname=OpenSP
pkgver=1.5.2
-pkgrel=1
+pkgrel=5
pkgdesc="Implementation of the DSSSL style language"
-url="http://openjade.sourceforge.net"
+url="https://openjade.sourceforge.net/"
arch="all"
-license="custom"
+license="ICU"
makedepends="$depends_dev xmlto"
subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
source="https://prdownloads.sourceforge.net/openjade/$_realname-$pkgver.tar.gz
diff --git a/main/openssh/APKBUILD b/main/openssh/APKBUILD
index 1a513db4c62..0b8feae7602 100644
--- a/main/openssh/APKBUILD
+++ b/main/openssh/APKBUILD
@@ -3,29 +3,28 @@
# Contributor: Will Sinatra <wpsinatra@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=openssh
-pkgver=9.0_p1
+pkgver=9.7_p1
_myver=${pkgver%_*}${pkgver#*_}
-pkgrel=1
+pkgrel=3
pkgdesc="Port of OpenBSD's free SSH release"
url="https://www.openssh.com/portable.html"
arch="all"
-license="BSD"
+license="SSH-OpenSSH"
options="suid"
depends="openssh-client openssh-sftp-server openssh-server"
+makedepends_build="autoconf automake"
makedepends_host="
- autoconf
- automake
linux-headers
- openssl1.1-compat-dev
+ openssl-dev>3
zlib-dev
"
-[ -z "$BOOTSTRAP" ] && makedepends_host="$makedepends_host utmps-dev utmps-static"
#
# NOTE: if you edit this file, please make sure that it builds with `BOOTSTRAP=1 abuild -r`
#
# build bootstrap sshd without libedit, linux-pam and krb5
if [ -z "$BOOTSTRAP" ]; then
- makedepends_host="$makedepends_host libedit-dev linux-pam-dev krb5-dev libfido2-dev"
+ makedepends_host="$makedepends_host libedit-dev linux-pam-dev krb5-dev libfido2-dev
+ utmps-dev utmps-static"
subpackages="$pkgname-client-krb5:_client_krb5
$pkgname-server-pam:_server_with_flavor
$pkgname-server-krb5:_server_with_flavor
@@ -44,21 +43,24 @@ subpackages="$pkgname-dbg
$pkgname-sftp-server:_sftp_server
$pkgname-server-common:_server_common:noarch
$pkgname-server
+ $pkgname-server-common-openrc
"
source="https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-$_myver.tar.gz
fix-utmp.patch
- sftp-interactive.patch
disable-forwarding-by-default.patch
- fix-verify-dns-segfault.patch
avoid-redefined-warnings-when-building-with-utmps.patch
- gss-serv.c.patch
+ default-internal-sftp.patch
+ include-config-dir.patch
sshd.initd
sshd.confd
+ sshd.pam
"
# secfixes:
+# 9.6_p1-r0:
+# - CVE-2023-48795
# 8.8_p1-r0:
# - CVE-2021-41617
# 8.5_p1-r0:
@@ -78,6 +80,8 @@ source="https://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-$_myver.tar
# - CVE-2016-10010
# - CVE-2016-10011
# - CVE-2016-10012
+# 0:
+# - CVE-2023-38408
builddir="$srcdir"/$pkgname-$_myver
@@ -106,6 +110,8 @@ _do_configure() {
--with-cflags="$CFLAGS $_extra_cflags" \
--with-libs="$_extra_libs" \
--with-ldflags="$LDFLAGS" \
+ --disable-utmp \
+ --disable-wtmp \
--disable-lastlog \
--disable-strip \
--with-privsep-path=/var/empty \
@@ -124,7 +130,7 @@ build() {
if [ -z "$BOOTSTRAP" ]; then
msg "Building openssh with pam support..."
- _do_configure --without-kerberos5 --with-pam
+ _do_configure --without-kerberos5 --with-pam --with-pam-service=sshd
make
mv sshd sshd.pam
@@ -146,7 +152,7 @@ check() {
# Run all tests except the t-exec tests which fail on the
# builders for some reason but pass locally (needs further
# investigation).
-# TEST_SSH_UNSAFE_PERMISSIONS=1 make -j1 file-tests interop-tests unit
+ TEST_SSH_UNSAFE_PERMISSIONS=1 make -j1 file-tests interop-tests unit
if [ -z "$BOOTSTRAP" ]; then
msg "verify pam build"
@@ -171,9 +177,13 @@ package() {
if [ -z "$BOOTSTRAP" ]; then
install -m755 -t "$pkgdir"/usr/sbin/ sshd.pam sshd.krb5
install -m755 -t "$pkgdir"/usr/bin/ ssh.krb5
+ install -Dm644 "$srcdir"/sshd.pam "$pkgdir"/etc/pam.d/sshd
fi
mkdir -p "$pkgdir"/var/empty
+ mkdir -p "$pkgdir"/etc/ssh/ssh_config.d
+ mkdir -p "$pkgdir"/etc/ssh/sshd_config.d
+
install -D -m755 "$srcdir"/sshd.initd \
"$pkgdir"/etc/init.d/sshd
install -D -m644 "$srcdir"/sshd.confd \
@@ -190,7 +200,7 @@ package() {
keygen() {
pkgdesc="ssh helper program for generating keys"
- depends=
+ depends="libcrypto3>=3.1.0"
amove usr/bin/ssh-keygen
}
@@ -199,42 +209,43 @@ _client_krb5() {
pkgdesc="OpenBSD's SSH client with kerberos support"
depends="openssh-keygen=$pkgver-r$pkgrel openssh-client-common=$pkgver-r$pkgrel !openssh-client-default"
provides="openssh-client=$pkgver-r$pkgrel"
- provider_priority=0
+ provider_priority=1
amove usr/bin/ssh.krb5
mv "$subpkgdir"/usr/bin/ssh.krb5 "$subpkgdir"/usr/bin/ssh
}
_ssh_sk_helper() {
- pkgdesc="OpenSSH libfido2 security key helper"
- depends="openssh-keygen=$pkgver-r$pkgrel openssh-server-common=$pkgver-r$pkgrel"
- amove usr/lib/ssh/ssh-sk-helper
+ pkgdesc="OpenSSH libfido2 security key helper"
+ depends="openssh-keygen=$pkgver-r$pkgrel openssh-server-common=$pkgver-r$pkgrel"
+ amove usr/lib/ssh/ssh-sk-helper
}
_client_default() {
pkgdesc="OpenBSD's SSH client"
depends="openssh-keygen=$pkgver-r$pkgrel openssh-client-common=$pkgver-r$pkgrel !openssh-client-krb5"
provides="openssh-client=$pkgver-r$pkgrel"
- provider_priority=1
+ provider_priority=2
amove usr/bin/ssh
}
_client_common() {
pkgdesc="OpenBSD's SSH client common files"
- depends=""
+ depends="libcrypto3>=3.1.0"
install -d "$subpkgdir"/usr/lib/ssh \
"$subpkgdir"/var/empty
amove usr/bin
amove etc/ssh/ssh_config
+ amove etc/ssh/ssh_config.d
amove etc/ssh/moduli
}
keysign() {
pkgdesc="ssh helper program for host-based authentication"
- depends="openssh-client=$pkgver-r$pkgrel"
+ depends="openssh-client=$pkgver-r$pkgrel libcrypto3>=3.1.0"
amove usr/lib/ssh/ssh-keysign
}
@@ -251,8 +262,7 @@ _server_common() {
depends=""
amove etc/ssh/sshd_config
- amove etc/init.d/sshd
- amove etc/conf.d/sshd
+ amove etc/ssh/sshd_config.d
}
server() {
@@ -267,17 +277,22 @@ _server_with_flavor() {
pkgdesc="OpenSSH server with $_flavor support"
depends="openssh-keygen=$pkgver-r$pkgrel openssh-server-common=$pkgver-r$pkgrel"
+ # pam flavor also ships a pam entry
+ if [ "$_flavor" = "pam" ]; then
+ amove etc/pam.d/sshd
+ fi
+
amove usr/sbin/sshd.$_flavor
}
sha512sums="
-613ae95317e734868c6a60d9cc5af47a889baa3124bbdd2b31bb51dd6b57b136f4cfcb5604cca78a03bd500baab9b9b45eaf77e038b1ed776c86dce0437449a9 openssh-9.0p1.tar.gz
-f35fffcd26635249ce5d820e7b3e406e586f2d2d7f6a045f221e2f9fb53aebc1ab1dd1e603b3389462296ed77921a1d08456e7aaa3825cbed08f405b381a58e1 fix-utmp.patch
-c1d09c65dbc347f0904edc30f91aa9a24b0baee50309536182455b544f1e3f85a8cecfa959e32be8b101d8282ef06dde3febbbc3f315489339dcf04155c859a9 sftp-interactive.patch
+0cafc17d22851605a4a5495a1d82c2b3fbbe6643760aad226dbf2a25b5f49d4375c3172833706ea3cb6c05d5d02a40feb9a7e790eae5c4570dd344a43e94ca55 openssh-9.7p1.tar.gz
+b10a9eb167cfbb23b144fdb03f30a0363be9a715ceb3c202c971ec4f36160e434cc6bbad91d0e49106189e07152067f7e227df28b5a1b82f3901cb36cba321b5 fix-utmp.patch
8df35d72224cd255eb0685d2c707b24e5eb24f0fdd67ca6cc0f615bdbd3eeeea2d18674a6af0c6dab74c2d8247e2370d0b755a84c99f766a431bc50c40b557de disable-forwarding-by-default.patch
-b0d1fc89bd46ebfc8c7c00fd897732e67a6cda996811c14d99392685bb0b508b52c9dc3188b1a84c0ffa3f72f57189cc615a76b81796dd1b5f552542bd53f84d fix-verify-dns-segfault.patch
e85754b2b6c4c37b432d166e63d6293e58c9c8bb6ebd8d3527c83afa2337f14c06d6a4e008ffcc0afd7dc3409e960b89c1dde41d2543c4be7d4813d477ff3a5e avoid-redefined-warnings-when-building-with-utmps.patch
-f659641b841981f78b03281b7a01add9fbf35b91c0f21c11335a56d7e389ddf965d83d18d73b724385311cdb597b6d6c46446cbc702cdd4d15e8f43591306cb3 gss-serv.c.patch
-50e407d72bfafc7fb276a1e56b1701f8cd91dfcbad2304bec516d69fc5e8334857ef96510dff76d0c407f29955dc2b18570d6f7b557688ceb641280f8279af83 sshd.initd
+1fb55aae445dfd9ededeba1f204a0c3e4a752128ad0a388f473ace074e68b040112f309192243621fd4f16b0d1cce4f083612b1639c3e18166abf92babe52c93 default-internal-sftp.patch
+ff73563e6018e94a1b2dd320cf32426f3945c0f4aa509eeb95783c34dd5c5c8dec91f6d71e4d538c4735539a4d8c724cf61d71513887d8a96b84109ae3a5562e include-config-dir.patch
+2cab1b844d4efb53f848308b4aaedbe74888d2e85bcb2e4dfdae7c18ac3ecea707829072a4276fbe90dfe2f537bbf48127d96f29ec5154e96c0bfb7437910d53 sshd.initd
be7dd5f6d319b2e03528525a66a58310d43444606713786b913a17a0fd9311869181d0fb7927a185d71d392674857dea3c97b6b8284886227d47b36193471a09 sshd.confd
+5d3b62d724d930bafb6263d0600828771e667751cb5ba5070414dce7c3d0559bebdfb05960b721cfd20c81d3ad824291ffb10498798171c8bbbcbf389b706265 sshd.pam
"
diff --git a/main/openssh/default-internal-sftp.patch b/main/openssh/default-internal-sftp.patch
new file mode 100644
index 00000000000..5128410a8d9
--- /dev/null
+++ b/main/openssh/default-internal-sftp.patch
@@ -0,0 +1,14 @@
+set the default sftp to internal.
+this is better than the extra one, because it requires no extra support files
+with ChrootDirectory, and it does not fork so it is faster.
+--- a/sshd_config
++++ b/sshd_config
+@@ -107,7 +107,7 @@
+ #Banner none
+
+ # override default of no subsystems
+-Subsystem sftp /usr/libexec/sftp-server
++Subsystem sftp internal-sftp
+
+ # Example of overriding settings on a per-user basis
+ #Match User anoncvs
diff --git a/main/openssh/fix-utmp.patch b/main/openssh/fix-utmp.patch
index 275e80590dd..8add964c236 100644
--- a/main/openssh/fix-utmp.patch
+++ b/main/openssh/fix-utmp.patch
@@ -1,6 +1,29 @@
---- openssh-6.8p1.orig/loginrec.c 2015-03-17 07:49:20.000000000 -0200
-+++ openssh-6.8p1/loginrec.c 2015-03-19 10:45:45.780276841 -0200
-@@ -783,7 +783,7 @@
+diff -rNU3 openssh-9.0p1.old/loginrec.c openssh-9.0p1/loginrec.c
+--- openssh-9.0p1.old/loginrec.c 2022-04-06 02:47:48.000000000 +0200
++++ openssh-9.0p1/loginrec.c 2022-07-11 14:59:44.848827188 +0200
+@@ -763,10 +763,6 @@
+ set_utmpx_time(li, utx);
+ utx->ut_pid = li->pid;
+
+- /* strncpy(): Don't necessarily want null termination */
+- strncpy(utx->ut_user, li->username,
+- MIN_SIZEOF(utx->ut_user, li->username));
+-
+ if (li->type == LTYPE_LOGOUT)
+ return;
+
+@@ -775,6 +771,10 @@
+ * for logouts.
+ */
+
++ /* strncpy(): Don't necessarily want null termination */
++ strncpy(utx->ut_user, li->username,
++ MIN_SIZEOF(utx->ut_user, li->username));
++
+ # ifdef HAVE_HOST_IN_UTMPX
+ strncpy(utx->ut_host, li->hostname,
+ MIN_SIZEOF(utx->ut_host, li->hostname));
+@@ -787,7 +787,7 @@
if (li->hostaddr.sa.sa_family == AF_INET)
utx->ut_addr = li->hostaddr.sa_in.sin_addr.s_addr;
# endif
diff --git a/main/openssh/fix-verify-dns-segfault.patch b/main/openssh/fix-verify-dns-segfault.patch
deleted file mode 100644
index 11b65c28971..00000000000
--- a/main/openssh/fix-verify-dns-segfault.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-Handle case when answer=NULL due to zero answers
-
-diff --git a/openbsd-compat/getrrsetbyname.c b/openbsd-compat/getrrsetbyname.c
-index dc6fe05..28622b5 100644
---- a/openbsd-compat/getrrsetbyname.c
-+++ b/openbsd-compat/getrrsetbyname.c
-@@ -268,7 +268,7 @@ getrrsetbyname(const char *hostname, unsigned int rdclass,
- }
- rrset->rri_rdclass = response->query->class;
- rrset->rri_rdtype = response->query->type;
-- rrset->rri_ttl = response->answer->ttl;
-+ rrset->rri_ttl = response->answer ? response->answer->ttl : 0;
- rrset->rri_nrdatas = response->header.ancount;
-
- #ifdef HAVE_HEADER_AD
-@@ -276,6 +276,17 @@ getrrsetbyname(const char *hostname, unsigned int rdclass,
- if (response->header.ad == 1)
- rrset->rri_flags |= RRSET_VALIDATED;
- #endif
-+ /* allocate memory for signatures */
-+ if (rrset->rri_nsigs > 0) {
-+ rrset->rri_sigs = calloc(rrset->rri_nsigs, sizeof(struct rdatainfo));
-+ if (rrset->rri_sigs == NULL) {
-+ result = ERRSET_NOMEMORY;
-+ goto fail;
-+ }
-+ }
-+
-+ if (response->answer == NULL || response->header.ancount == 0)
-+ goto done;
-
- /* copy name from answer section */
- rrset->rri_name = strdup(response->answer->name);
-@@ -298,15 +309,6 @@ getrrsetbyname(const char *hostname, unsigned int rdclass,
- goto fail;
- }
-
-- /* allocate memory for signatures */
-- if (rrset->rri_nsigs > 0) {
-- rrset->rri_sigs = calloc(rrset->rri_nsigs, sizeof(struct rdatainfo));
-- if (rrset->rri_sigs == NULL) {
-- result = ERRSET_NOMEMORY;
-- goto fail;
-- }
-- }
--
- /* copy answers & signatures */
- for (rr = response->answer, index_ans = 0, index_sig = 0;
- rr; rr = rr->next) {
-@@ -334,6 +336,7 @@ getrrsetbyname(const char *hostname, unsigned int rdclass,
- }
- free_dns_response(response);
-
-+done:
- *res = rrset;
- return (ERRSET_SUCCESS);
-
diff --git a/main/openssh/gss-serv.c.patch b/main/openssh/gss-serv.c.patch
deleted file mode 100644
index 03cd73f72ef..00000000000
--- a/main/openssh/gss-serv.c.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-Author: Milan P. Stanić <mps@arvanta.net>
-Date: Fri Mar 4 14:53:04 2022 +0000
-
-include sys/param.h to fix missing #define MAXHOSTNAMELEN
-
---- a/gss-serv.c 2022-03-04 14:40:34.947952759 +0000
-+++ b/gss-serv.c 2022-03-04 14:40:50.448023670 +0000
-@@ -29,6 +29,7 @@
- #ifdef GSSAPI
-
- #include <sys/types.h>
-+#include <sys/param.h>
-
- #include <stdarg.h>
- #include <string.h>
diff --git a/main/openssh/include-config-dir.patch b/main/openssh/include-config-dir.patch
new file mode 100644
index 00000000000..c4ad935b657
--- /dev/null
+++ b/main/openssh/include-config-dir.patch
@@ -0,0 +1,26 @@
+--- a/ssh_config
++++ b/ssh_config
+@@ -17,6 +17,10 @@
+ # list of available options, their meanings and defaults, please see the
+ # ssh_config(5) man page.
+
++# Include configuration snippets before processing this file to allow the
++# snippets to override directives set in this file.
++Include /etc/ssh/ssh_config.d/*.conf
++
+ # Host *
+ # ForwardAgent no
+ # ForwardX11 no
+--- a/sshd_config
++++ b/sshd_config
+@@ -10,6 +10,10 @@
+ # possible, but leave them commented. Uncommented options override the
+ # default value.
+
++# Include configuration snippets before processing this file to allow the
++# snippets to override directives set in this file.
++Include /etc/ssh/sshd_config.d/*.conf
++
+ #Port 22
+ #AddressFamily any
+ #ListenAddress 0.0.0.0
diff --git a/main/openssh/sftp-interactive.patch b/main/openssh/sftp-interactive.patch
deleted file mode 100644
index ab14f3a6ba2..00000000000
--- a/main/openssh/sftp-interactive.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/sftp.c 2014-10-24 10:32:15.793544472 +0500
-+++ b/sftp.c 2014-10-24 10:35:22.329199875 +0500
-@@ -2076,8 +2076,10 @@
- signal(SIGINT, SIG_IGN);
-
- if (el == NULL) {
-- if (interactive)
-+ if (interactive) {
- printf("sftp> ");
-+ fflush(stdout);
-+ }
- if (fgets(cmd, sizeof(cmd), infile) == NULL) {
- if (interactive)
- printf("\n");
diff --git a/main/openssh/sshd.initd b/main/openssh/sshd.initd
index e801d9615c0..2221d0f7c44 100644
--- a/main/openssh/sshd.initd
+++ b/main/openssh/sshd.initd
@@ -50,7 +50,7 @@ generate_host_keys() {
}
get_conf() {
- awk "/^$1/{ print \$2 }" "$cfgfile" 2>/dev/null
+ awk "/^$1\s/{ print \$2; exit }" "$cfgfile" /etc/ssh/sshd_config.d/*.conf 2>/dev/null
}
conf_enabled() {
diff --git a/main/openssh/sshd.pam b/main/openssh/sshd.pam
new file mode 100644
index 00000000000..fab227a8982
--- /dev/null
+++ b/main/openssh/sshd.pam
@@ -0,0 +1,6 @@
+#%PAM-1.0
+
+auth include base-auth
+account include base-account
+password include base-password
+session include base-session
diff --git a/main/openssl/APKBUILD b/main/openssl/APKBUILD
index 511b38a9287..ce0902cd985 100644
--- a/main/openssl/APKBUILD
+++ b/main/openssl/APKBUILD
@@ -1,28 +1,78 @@
# Contributor: Ariadne Conill <ariadne@dereferenced.org>
-# Maintainer: Timo Teras <timo.teras@iki.fi>
+# Contributor: Timo Teras <timo.teras@iki.fi>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=openssl
-pkgver=1.1.1p
-_abiver=${pkgver%.*}
-pkgrel=0
-pkgdesc="toolkit for transport layer security (TLS) - version 1.1"
+pkgver=3.3.0
+_abiver=${pkgver%.*.*}
+pkgrel=1
+pkgdesc="Toolkit for Transport Layer Security (TLS)"
url="https://www.openssl.org/"
arch="all"
-license="OpenSSL"
-replaces="libressl"
+license="Apache-2.0"
+replaces="openssl"
makedepends_build="perl"
makedepends_host="linux-headers"
makedepends="$makedepends_host $makedepends_build"
-subpackages="$pkgname-dbg $pkgname-libs-static:_static $pkgname-dev
- $pkgname-doc libcrypto$_abiver:_libcrypto libssl$_abiver:_libssl"
+subpackages="$pkgname-dbg $pkgname-libs-static $pkgname-dev $pkgname-doc
+ $pkgname-misc::noarch libcrypto$_abiver:_libcrypto libssl$_abiver:_libssl"
source="https://www.openssl.org/source/openssl-$pkgver.tar.gz
man-section.patch
- ppc64.patch
"
builddir="$srcdir/openssl-$pkgver"
# secfixes:
-# 1.1.1n-r0:
+# 3.2.1-r2:
+# - CVE-2024-2511
+# 3.1.4-r5:
+# - CVE-2024-0727
+# 3.1.4-r4:
+# - CVE-2023-6237
+# 3.1.4-r3:
+# - CVE-2023-6129
+# 3.1.4-r1:
+# - CVE-2023-5678
+# 3.1.4-r0:
+# - CVE-2023-5363
+# 3.1.2-r0:
+# - CVE-2023-3817
+# 3.1.1-r3:
+# - CVE-2023-3446
+# 3.1.1-r2:
+# - CVE-2023-2975
+# 3.1.1-r0:
+# - CVE-2023-2650
+# 3.1.0-r4:
+# - CVE-2023-1255
+# 3.1.0-r2:
+# - CVE-2023-0465
+# 3.1.0-r1:
+# - CVE-2023-0464
+# 3.0.8-r0:
+# - CVE-2022-4203
+# - CVE-2022-4304
+# - CVE-2022-4450
+# - CVE-2023-0215
+# - CVE-2023-0216
+# - CVE-2023-0217
+# - CVE-2023-0286
+# - CVE-2023-0401
+# 3.0.7-r2:
+# - CVE-2022-3996
+# 3.0.7-r0:
+# - CVE-2022-3786
+# - CVE-2022-3602
+# 3.0.6-r0:
+# - CVE-2022-3358
+# 3.0.5-r0:
+# - CVE-2022-2097
+# 3.0.3-r0:
+# - CVE-2022-1343
+# - CVE-2022-1434
+# - CVE-2022-1473
+# 3.0.2-r0:
# - CVE-2022-0778
+# 3.0.1-r0:
+# - CVE-2021-4044
# 1.1.1l-r0:
# - CVE-2021-3711
# - CVE-2021-3712
@@ -51,14 +101,17 @@ builddir="$srcdir/openssl-$pkgver"
# 0:
# - CVE-2022-1292
# - CVE-2022-2068
+# - CVE-2022-2274
+# - CVE-2023-0466
+# - CVE-2023-4807
build() {
local _target _optflags
# openssl will prepend crosscompile always core CC et al
- CC=${CC#${CROSS_COMPILE}}
- CXX=${CXX#${CROSS_COMPILE}}
- CPP=${CPP#${CROSS_COMPILE}}
+ CC=${CC#"$CROSS_COMPILE"}
+ CXX=${CXX#"$CROSS_COMPILE"}
+ CPP=${CPP#"$CROSS_COMPILE"}
# determine target OS for openssl
case "$CARCH" in
@@ -72,8 +125,9 @@ build() {
ppc64le) _target="linux-ppc64le" ;;
x86) _target="linux-elf" ;;
x86_64) _target="linux-x86_64"; _optflags="enable-ec_nistp_64_gcc_128" ;;
- s390x) _target="linux64-s390x";;
- riscv64) _target="linux-generic64";;
+ s390x) _target="linux64-s390x";;
+ riscv64) _target="linux64-riscv64";;
+ loongarch64) _target="linux64-loongarch64";;
*) msg "Unable to determine architecture from (CARCH=$CARCH)" ; return 1 ;;
esac
@@ -93,6 +147,7 @@ build() {
--prefix=/usr \
--libdir=lib \
--openssldir=/etc/ssl \
+ enable-ktls \
shared \
no-zlib \
no-async \
@@ -101,9 +156,6 @@ build() {
no-mdc2 \
no-rc5 \
no-ec2m \
- no-sm2 \
- no-sm4 \
- no-ssl2 \
no-ssl3 \
no-seed \
no-weak-ssl-ciphers \
@@ -111,6 +163,10 @@ build() {
$CPPFLAGS \
$CFLAGS \
$LDFLAGS -Wa,--noexecstack
+
+ # dump configuration into logs
+ perl configdata.pm --dump
+
make
}
@@ -123,21 +179,32 @@ check() {
}
package() {
- make DESTDIR="$pkgdir" install_sw install_ssldirs install_man_docs
+ depends="libssl$_abiver=$pkgver-r$pkgrel libcrypto$_abiver=$pkgver-r$pkgrel"
+ provides="openssl3=$pkgver-r$pkgrel"
+ replaces="openssl3"
+
+ make DESTDIR="$pkgdir" install
# remove the script c_rehash
rm "$pkgdir"/usr/bin/c_rehash
- #mv -f "$pkgdir"/usr/bin/openssl "$pkgdir"/usr/bin/openssl$_abiver
}
dev() {
+ provides="openssl3-dev=$pkgver-r$pkgrel"
+ replaces="openssl3-dev"
+
default_dev
- replaces="libressl-dev"
- provides="openssl1.1-compat-dev=${pkgver}-r${pkgrel}"
+}
+
+misc() {
+ depends="$pkgname=$pkgver-r$pkgrel perl"
+ pkgdesc="Various perl scripts from $pkgname"
+
+ amove etc/ssl/misc
}
_libcrypto() {
pkgdesc="Crypto library from openssl"
- replaces="libressl2.7-libcrypto"
+ replaces="libcrypto1.1"
mkdir -p "$subpkgdir"/lib "$subpkgdir"/usr/lib
mv "$pkgdir"/etc "$subpkgdir"/
for i in "$pkgdir"/usr/lib/libcrypto*; do
@@ -145,10 +212,12 @@ _libcrypto() {
ln -s ../../lib/${i##*/} "$subpkgdir"/usr/lib/${i##*/}
done
mv "$pkgdir"/usr/lib/engines-$_abiver "$subpkgdir"/usr/lib/
+ mv "$pkgdir"/usr/lib/ossl-modules "$subpkgdir"/usr/lib/
}
_libssl() {
pkgdesc="SSL shared libraries"
+ depends="libcrypto$_abiver=$pkgver-r$pkgrel"
mkdir -p "$subpkgdir"/lib "$subpkgdir"/usr/lib
for i in "$pkgdir"/usr/lib/libssl*; do
@@ -157,13 +226,7 @@ _libssl() {
done
}
-_static() {
- default_static
- provides="openssl1.1-compat-libs-static=${pkgver}-r${pkgrel}"
-}
-
sha512sums="
-203470b1cd37bdbfabfec5ef37fc97c991d9943f070c988316f6396b09dae7cea16ac884bd8646dbf7dd1ed40ebde6bdfa5700beee2d714d07c97cc70b4e48d9 openssl-1.1.1p.tar.gz
-43c3255118db6f5f340dc865c0f25ccbcafe5bf7507585244ca59b4d27daf533d6c3171aa32a8685cbb6200104bec535894b633de13feaadff87ab86739a445a man-section.patch
-e040f23770d52b988578f7ff84d77563340f37c026db7643db8e4ef18e795e27d10cb42cb8656da4d9c57a28283a2828729d70f940edc950c3422a54fea55509 ppc64.patch
+1f9daeee6542e1b831c65f1f87befaef98ccedc3abc958c9d17f064ef771924c30849e3ff880f94eed4aaa9d81ea105e3bc8815e6d2e4d6b60b5e890f14fc5da openssl-3.3.0.tar.gz
+8c44e990fe8a820f649631b9f81cf28225b7516065169a7f68e2dd7c067b30df9b2c6cb88fa826afbc9fcdaf156360aabf7c498d2d9ed452968815b12b004809 man-section.patch
"
diff --git a/main/openssl/man-section.patch b/main/openssl/man-section.patch
index 0606897f45e..c1f96cede25 100644
--- a/main/openssl/man-section.patch
+++ b/main/openssl/man-section.patch
@@ -3,52 +3,29 @@ Date: Sun, 5 Nov 2017 15:09:09 +0100
Subject: man-section
---
- Configurations/unix-Makefile.tmpl | 6 ++++--
- util/process_docs.pl | 3 ++-
- 2 files changed, 6 insertions(+), 3 deletions(-)
+ Configurations/unix-Makefile.tmpl | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl
-index 1292053546f5..c034d21884d8 100644
+index f88a70f4828e..fceda4a1161c 100644
--- a/Configurations/unix-Makefile.tmpl
+++ b/Configurations/unix-Makefile.tmpl
-@@ -183,7 +183,8 @@ HTMLDIR=$(DOCDIR)/html
+@@ -317,7 +317,8 @@ HTMLDIR=$(DOCDIR)/html
# MANSUFFIX is for the benefit of anyone who may want to have a suffix
# appended after the manpage file section number. "ssl" is popular,
# resulting in files such as config.5ssl rather than config.5.
--MANSUFFIX=
+-MANSUFFIX=ossl
+MANSUFFIX=ssl
+MANSECTION=SSL
HTMLSUFFIX=html
# For "optional" echo messages, to get "real" silence
-@@ -726,7 +727,8 @@ uninstall_runtime: uninstall_programs uninstall_runtime_libs
- @[ -n "$(INSTALLTOP)" ] || (echo INSTALLTOP should not be empty; exit 1)
- @$(ECHO) "*** Installing manpages"
- $(PERL) $(SRCDIR)/util/process_docs.pl \
-- "--destdir=$(DESTDIR)$(MANDIR)" --type=man --suffix=$(MANSUFFIX)
-+ "--destdir=$(DESTDIR)$(MANDIR)" --type=man --suffix=$(MANSUFFIX) \
-+ --mansection=$(MANSECTION)
-
- uninstall_man_docs:
- @$(ECHO) "*** Uninstalling manpages"
-diff --git a/util/process_docs.pl b/util/process_docs.pl
-index 30b149eb8fcc..424155ea808e 100755
---- a/util/process_docs.pl
-+++ b/util/process_docs.pl
-@@ -37,6 +37,7 @@ GetOptions(\%options,
- 'type=s', # The result type, 'man' or 'html'
- 'suffix:s', # Suffix to add to the extension.
- # Only used with type=man
-+ 'mansection:s', # Section to put to manpage in
- 'remove', # To remove files rather than writing them
- 'dry-run|n', # Only output file names on STDOUT
- 'debug|D+',
-@@ -97,7 +98,7 @@ foreach my $section (sort @{$options{section}}) {
- my $name = uc $podname;
- my $suffix = { man => ".$podinfo{section}".($options{suffix} // ""),
- html => ".html" } -> {$options{type}};
-- my $generate = { man => "pod2man --name=$name --section=$podinfo{section} --center=OpenSSL --release=$config{version} \"$podpath\"",
-+ my $generate = { man => "pod2man --name=$name --section=$podinfo{section}$options{mansection} --center=OpenSSL --release=$config{version} \"$podpath\"",
- html => "pod2html \"--podroot=$options{sourcedir}\" --htmldir=$updir --podpath=man1:man3:man5:man7 \"--infile=$podpath\" \"--title=$podname\" --quiet"
- } -> {$options{type}};
- my $output_dir = catdir($options{destdir}, "man$podinfo{section}");
+@@ -1520,7 +1521,7 @@ EOF
+ my $pod = $gen0;
+ return <<"EOF";
+ $args{src}: $pod
+- pod2man --name=$name --section=$section\$(MANSUFFIX) --center=OpenSSL \\
++ pod2man --name=$name --section=$section\$(MANSECTION) --center=OpenSSL \\
+ --release=\$(VERSION) $pod >\$\@
+ EOF
+ } elsif (platform->isdef($args{src})) {
diff --git a/main/openssl/ppc64.patch b/main/openssl/ppc64.patch
deleted file mode 100644
index c75ceedba2c..00000000000
--- a/main/openssl/ppc64.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From 34ab13b7d8e3e723adb60be8142e38b7c9cd382a Mon Sep 17 00:00:00 2001
-From: Andy Polyakov <appro@openssl.org>
-Date: Sun, 5 May 2019 18:25:50 +0200
-Subject: [PATCH] crypto/perlasm/ppc-xlate.pl: add linux64v2 flavour
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This is a big endian ELFv2 configuration. ELFv2 was already being
-used for little endian, and big endian was traditionally ELFv1
-but there are practical configurations that use ELFv2 with big
-endian nowadays (Adélie Linux, Void Linux, possibly Gentoo, etc.)
-
-Reviewed-by: Paul Dale <paul.dale@oracle.com>
-Reviewed-by: Richard Levitte <levitte@openssl.org>
-(Merged from https://github.com/openssl/openssl/pull/8883)
----
- crypto/perlasm/ppc-xlate.pl | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/crypto/perlasm/ppc-xlate.pl b/crypto/perlasm/ppc-xlate.pl
-index e52f2f6ea62..5fcd0526dff 100755
---- a/crypto/perlasm/ppc-xlate.pl
-+++ b/crypto/perlasm/ppc-xlate.pl
-@@ -49,7 +49,7 @@
- /osx/ && do { $name = "_$name";
- last;
- };
-- /linux.*(32|64le)/
-+ /linux.*(32|64(le|v2))/
- && do { $ret .= ".globl $name";
- if (!$$type) {
- $ret .= "\n.type $name,\@function";
-@@ -80,7 +80,7 @@
- };
- my $text = sub {
- my $ret = ($flavour =~ /aix/) ? ".csect\t.text[PR],7" : ".text";
-- $ret = ".abiversion 2\n".$ret if ($flavour =~ /linux.*64le/);
-+ $ret = ".abiversion 2\n".$ret if ($flavour =~ /linux.*64(le|v2)/);
- $ret;
- };
- my $machine = sub {
-@@ -186,7 +186,7 @@
-
- # Some ABIs specify vrsave, special-purpose register #256, as reserved
- # for system use.
--my $no_vrsave = ($flavour =~ /aix|linux64le/);
-+my $no_vrsave = ($flavour =~ /aix|linux64(le|v2)/);
- my $mtspr = sub {
- my ($f,$idx,$ra) = @_;
- if ($idx == 256 && $no_vrsave) {
-@@ -318,7 +318,7 @@ sub vfour {
- if ($label) {
- my $xlated = ($GLOBALS{$label} or $label);
- print "$xlated:";
-- if ($flavour =~ /linux.*64le/) {
-+ if ($flavour =~ /linux.*64(le|v2)/) {
- if ($TYPES{$label} =~ /function/) {
- printf "\n.localentry %s,0\n",$xlated;
- }
-
-From 098404128383ded87ba390dd74ecd9e2ffa6f530 Mon Sep 17 00:00:00 2001
-From: Andy Polyakov <appro@openssl.org>
-Date: Sun, 5 May 2019 18:30:55 +0200
-Subject: [PATCH] Configure: use ELFv2 ABI on some ppc64 big endian systems
-
-If _CALL_ELF is defined to be 2, it's an ELFv2 system.
-Conditionally switch to the v2 perlasm scheme.
-
-Reviewed-by: Paul Dale <paul.dale@oracle.com>
-Reviewed-by: Richard Levitte <levitte@openssl.org>
-(Merged from https://github.com/openssl/openssl/pull/8883)
----
- Configure | 10 +++++++---
- 1 file changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/Configure b/Configure
-index 22082deb4c7..e303d98deb3 100755
---- a/Configure
-+++ b/Configure
-@@ -1402,8 +1402,15 @@
- my %predefined_C = compiler_predefined($config{CROSS_COMPILE}.$config{CC});
- my %predefined_CXX = $config{CXX}
- ? compiler_predefined($config{CROSS_COMPILE}.$config{CXX})
- : ();
-
-+unless ($disabled{asm}) {
-+ # big endian systems can use ELFv2 ABI
-+ if ($target eq "linux-ppc64") {
-+ $target{perlasm_scheme} = "linux64v2" if ($predefined_C{_CALL_ELF} == 2);
-+ }
-+}
-+
- # Check for makedepend capabilities.
- if (!$disabled{makedepend}) {
- if ($config{target} =~ /^(VC|vms)-/) {
diff --git a/main/openssl3/APKBUILD b/main/openssl3/APKBUILD
deleted file mode 100644
index 5b1535f1bc1..00000000000
--- a/main/openssl3/APKBUILD
+++ /dev/null
@@ -1,172 +0,0 @@
-# Contributor: Ariadne Conill <ariadne@dereferenced.org>
-# Contributor: Timo Teras <timo.teras@iki.fi>
-# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
-pkgname=openssl3
-pkgver=3.0.3
-_abiver=${pkgver%.*.*}
-pkgrel=0
-pkgdesc="Toolkit for Transport Layer Security (TLS)"
-url="https://www.openssl.org/"
-arch="all"
-license="Apache-2.0"
-replaces="libressl openssl"
-makedepends_build="perl"
-makedepends_host="linux-headers"
-makedepends="$makedepends_host $makedepends_build"
-subpackages="$pkgname-dbg $pkgname-libs-static $pkgname-dev $pkgname-doc
- libcrypto$_abiver:_libcrypto libssl$_abiver:_libssl"
-source="https://www.openssl.org/source/openssl-$pkgver.tar.gz
- man-section.patch
- "
-builddir="$srcdir/openssl-$pkgver"
-pcprefix="openssl3:pc:"
-sonameprefix="openssl3:so:"
-
-# secfixes:
-# 3.0.3-r0:
-# - CVE-2022-1292
-# - CVE-2022-1343
-# - CVE-2022-1434
-# - CVE-2022-1473
-# 3.0.2-r0:
-# - CVE-2022-0778
-# 3.0.1-r0:
-# - CVE-2021-4044
-# 1.1.1l-r0:
-# - CVE-2021-3711
-# - CVE-2021-3712
-# 1.1.1k-r0:
-# - CVE-2021-3449
-# - CVE-2021-3450
-# 1.1.1j-r0:
-# - CVE-2021-23841
-# - CVE-2021-23840
-# - CVE-2021-23839
-# 1.1.1i-r0:
-# - CVE-2020-1971
-# 1.1.1g-r0:
-# - CVE-2020-1967
-# 1.1.1d-r3:
-# - CVE-2019-1551
-# 1.1.1d-r1:
-# - CVE-2019-1547
-# - CVE-2019-1549
-# - CVE-2019-1563
-# 1.1.1b-r1:
-# - CVE-2019-1543
-# 1.1.1a-r0:
-# - CVE-2018-0734
-# - CVE-2018-0735
-
-build() {
- local _target _optflags
-
- # openssl will prepend crosscompile always core CC et al
- CC=${CC#${CROSS_COMPILE}}
- CXX=${CXX#${CROSS_COMPILE}}
- CPP=${CPP#${CROSS_COMPILE}}
-
- # determine target OS for openssl
- case "$CARCH" in
- aarch64*) _target="linux-aarch64" ;;
- arm*) _target="linux-armv4" ;;
- mips64*) _target="linux64-mips64" ;;
- # explicit _optflags is needed to prevent automatic -mips3 addition
- mips*) _target="linux-mips32"; _optflags="-mips32" ;;
- ppc) _target="linux-ppc" ;;
- ppc64) _target="linux-ppc64" ;;
- ppc64le) _target="linux-ppc64le" ;;
- x86) _target="linux-elf" ;;
- x86_64) _target="linux-x86_64"; _optflags="enable-ec_nistp_64_gcc_128" ;;
- s390x) _target="linux64-s390x";;
- riscv64) _target="linux-generic64";;
- *) msg "Unable to determine architecture from (CARCH=$CARCH)" ; return 1 ;;
- esac
-
- # Configure assumes --options are for it, so can't use
- # gcc's --sysroot fake this by overriding CC
- [ -n "$CBUILDROOT" ] && CC="$CC --sysroot=$CBUILDROOT"
-
- # when cross building do not enable threads as libatomic is not avaiable
- if [ "$CBUILD" != "$CHOST" ]; then
- case $CARCH in
- riscv64) _optflags="$_optflags no-threads";;
- esac
- fi
-
- perl ./Configure \
- $_target \
- --prefix=/usr \
- --libdir=lib \
- --openssldir=/etc/ssl3 \
- shared \
- no-zlib \
- no-async \
- no-comp \
- no-idea \
- no-mdc2 \
- no-rc5 \
- no-ec2m \
- no-sm2 \
- no-sm4 \
- no-ssl3 \
- no-seed \
- no-weak-ssl-ciphers \
- $_optflags \
- $CPPFLAGS \
- $CFLAGS \
- $LDFLAGS -Wa,--noexecstack
- make
-}
-
-check() {
- # AFALG tests have a sporadic test failure, just delete the broken
- # test for now.
- rm -f test/recipes/30-test_afalg.t
-
- make test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- # remove the script c_rehash
- rm "$pkgdir"/usr/bin/c_rehash
- mv -f "$pkgdir"/usr/bin/openssl "$pkgdir"/usr/bin/openssl$_abiver
-
- rm -r "$pkgdir"/etc/ssl3/certs "$pkgdir"/etc/ssl3/misc
- ln -fs ../ssl/cert.pem ../ssl/certs ../ssl/ct_log_list.cnf \
- "$pkgdir"/etc/ssl3/
-}
-
-dev() {
- default_dev
- replaces="libressl-dev"
-}
-
-_libcrypto() {
- pkgdesc="Crypto library from openssl"
- replaces="libressl2.7-libcrypto libcrypto1.1"
- mkdir -p "$subpkgdir"/lib "$subpkgdir"/usr/lib
- mv "$pkgdir"/etc "$subpkgdir"/
- for i in "$pkgdir"/usr/lib/libcrypto*; do
- mv $i "$subpkgdir"/lib/
- ln -s ../../lib/${i##*/} "$subpkgdir"/usr/lib/${i##*/}
- done
- mv "$pkgdir"/usr/lib/engines-$_abiver "$subpkgdir"/usr/lib/
- mv "$pkgdir"/usr/lib/ossl-modules "$subpkgdir"/usr/lib/
-}
-
-_libssl() {
- pkgdesc="SSL shared libraries"
-
- mkdir -p "$subpkgdir"/lib "$subpkgdir"/usr/lib
- for i in "$pkgdir"/usr/lib/libssl*; do
- mv $i "$subpkgdir"/lib/
- ln -s ../../lib/${i##*/} "$subpkgdir"/usr/lib/${i##*/}
- done
-}
-
-sha512sums="
-949472025211fabdaf2564122f0a9a3baef0facb6373e90cf6c4485164a50898050b179722d0b358c4d8cf1787384ea30d5fd03b98757634631d3e8978509b1a openssl-3.0.3.tar.gz
-8c44e990fe8a820f649631b9f81cf28225b7516065169a7f68e2dd7c067b30df9b2c6cb88fa826afbc9fcdaf156360aabf7c498d2d9ed452968815b12b004809 man-section.patch
-"
diff --git a/main/openssl3/man-section.patch b/main/openssl3/man-section.patch
deleted file mode 100644
index c1f96cede25..00000000000
--- a/main/openssl3/man-section.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From: Debian OpenSSL Team <pkg-openssl-devel@lists.alioth.debian.org>
-Date: Sun, 5 Nov 2017 15:09:09 +0100
-Subject: man-section
-
----
- Configurations/unix-Makefile.tmpl | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl
-index f88a70f4828e..fceda4a1161c 100644
---- a/Configurations/unix-Makefile.tmpl
-+++ b/Configurations/unix-Makefile.tmpl
-@@ -317,7 +317,8 @@ HTMLDIR=$(DOCDIR)/html
- # MANSUFFIX is for the benefit of anyone who may want to have a suffix
- # appended after the manpage file section number. "ssl" is popular,
- # resulting in files such as config.5ssl rather than config.5.
--MANSUFFIX=ossl
-+MANSUFFIX=ssl
-+MANSECTION=SSL
- HTMLSUFFIX=html
-
- # For "optional" echo messages, to get "real" silence
-@@ -1520,7 +1521,7 @@ EOF
- my $pod = $gen0;
- return <<"EOF";
- $args{src}: $pod
-- pod2man --name=$name --section=$section\$(MANSUFFIX) --center=OpenSSL \\
-+ pod2man --name=$name --section=$section\$(MANSECTION) --center=OpenSSL \\
- --release=\$(VERSION) $pod >\$\@
- EOF
- } elsif (platform->isdef($args{src})) {
diff --git a/main/openvpn-ad-check/APKBUILD b/main/openvpn-ad-check/APKBUILD
index 4f67033cbe5..7b69602e44b 100644
--- a/main/openvpn-ad-check/APKBUILD
+++ b/main/openvpn-ad-check/APKBUILD
@@ -2,38 +2,21 @@
# Maintainer: Alan Lacerda <alacerda@alpinelinux.org>
pkgname=openvpn-ad-check
pkgver=1.1
-pkgrel=2
+pkgrel=4
pkgdesc="Authenticate OpenVPN users against AD server and verify if they are member of a specific group."
url="https://sourceforge.net/p/openvpnadcheck"
arch="noarch"
-license="GPL"
+license="GPL-3.0-only"
depends="openvpn lua-ldap"
-depends_dev=""
-makedepends="$depends_dev"
-install=""
-subpackages=""
-source="https://sourceforge.net/projects/openvpnadcheck/files/$pkgname-$pkgver.tgz"
-
-_builddir="$srcdir/$pkgname"
-prepare() {
- local i
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
-}
-
-build() {
- cd "$_builddir"
-}
+source="https://sourceforge.net/projects/openvpnadcheck/files/openvpn-ad-check-$pkgver.tgz"
+builddir="$srcdir/openvpn-ad-check"
+options="!check" # no tests
package() {
- mkdir -p "$pkgdir"/etc/openvpn
- cd "$_builddir"
- install -c * "$pkgdir"/etc/openvpn
- chmod 644 "$pkgdir"/etc/openvpn/openvpnadcheck.conf
+ install -Dm755 openvpnadcheck.lua -t "$pkgdir"/etc/openvpn
+ install -Dm644 openvpnadcheck.conf -t "$pkgdir"/etc/openvpn
}
-sha512sums="0d2237acb3b227184b4f7c1ff34516d1dc0a04b09faba940afa9c8bb179cd608f43939f851109662dd0956ba9b8e24e2aad416e140554cc5b4006202fad2feab openvpn-ad-check-1.1.tgz"
+sha512sums="
+0d2237acb3b227184b4f7c1ff34516d1dc0a04b09faba940afa9c8bb179cd608f43939f851109662dd0956ba9b8e24e2aad416e140554cc5b4006202fad2feab openvpn-ad-check-1.1.tgz
+"
diff --git a/main/openvpn-auth-ldap/APKBUILD b/main/openvpn-auth-ldap/APKBUILD
index 1732efa8d15..719512d9ab5 100644
--- a/main/openvpn-auth-ldap/APKBUILD
+++ b/main/openvpn-auth-ldap/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=openvpn-auth-ldap
pkgver=2.0.4
-pkgrel=4
+pkgrel=6
pkgdesc="LDAP authentication and authorization plugin for OpenVPN 2.x"
url="https://github.com/threerings/openvpn-auth-ldap/"
arch="all"
@@ -34,7 +34,7 @@ build() {
--infodir=/usr/share/info \
--with-openvpn=/usr \
--with-objc-runtime=GNU \
- CFLAGS="-fPIC" \
+ CFLAGS="$CFLAGS -fPIC" \
OBJCFLAGS="-std=gnu11"
make
}
@@ -49,6 +49,8 @@ package() {
install -D -m 640 -g openvpn auth-ldap.conf "$pkgdir"/etc/openvpn/auth-ldap.conf
}
-sha512sums="ffa1f1617acd3f4e96d3abea7e5611d8b8406c92ff1298ac0520f2d42f188116904187d3ca8c0ae88e0bcc6449ec4c8494a18770a4635c1ee7301baaaddfa12e auth-ldap-2.0.4.tar.gz
+sha512sums="
+ffa1f1617acd3f4e96d3abea7e5611d8b8406c92ff1298ac0520f2d42f188116904187d3ca8c0ae88e0bcc6449ec4c8494a18770a4635c1ee7301baaaddfa12e auth-ldap-2.0.4.tar.gz
7d33287dde5ef338797d395f6e254d6e3116cbc274f89fc44b0de7f624d51c23c5734229279023c5b818d1ce7313f761770ee2f60c1975713feefdf03f040374 default-config.patch
-e6f826558a8542e3372c23692b9006ae5978110cd599ccde4756ace6bedd0c6a249738b00ba29e7121727246e001154f7aeb3804864fbc935e0acbb17b7d2a27 fix-make-install.patch"
+e6f826558a8542e3372c23692b9006ae5978110cd599ccde4756ace6bedd0c6a249738b00ba29e7121727246e001154f7aeb3804864fbc935e0acbb17b7d2a27 fix-make-install.patch
+"
diff --git a/main/openvpn/APKBUILD b/main/openvpn/APKBUILD
index d8f9db201d8..81a490b2d7c 100644
--- a/main/openvpn/APKBUILD
+++ b/main/openvpn/APKBUILD
@@ -1,18 +1,26 @@
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=openvpn
-pkgver=2.5.7
+pkgver=2.6.10
pkgrel=0
pkgdesc="Robust, and highly configurable VPN (Virtual Private Network)"
url="https://openvpn.net/"
arch="all"
-license="custom"
+license="GPL-2.0-only WITH openvpn-openssl-exception"
subpackages="$pkgname-doc $pkgname-dev $pkgname-openrc $pkgname-auth-pam:pam"
depends="iproute2-minimal" # needs just /sbin/ip
-depends_dev="openssl1.1-compat-dev" # openvpn-plugin.h includes openssl/x509.h
-makedepends="$depends_dev lzo-dev linux-pam-dev linux-headers"
+depends_dev="openssl-dev" # openvpn-plugin.h includes openssl/x509.h
+makedepends="
+ $depends_dev
+ libcap-ng-dev
+ linux-headers
+ linux-pam-dev
+ lz4-dev
+ lzo-dev
+ "
+checkdepends="cmocka-dev"
install="$pkgname.pre-install"
-source="https://swupdate.openvpn.net/community/releases/openvpn-$pkgver.tar.gz
+source="https://build.openvpn.net/downloads/releases/openvpn-$pkgver.tar.gz
openvpn.initd
openvpn.confd
openvpn.up
@@ -20,6 +28,9 @@ source="https://swupdate.openvpn.net/community/releases/openvpn-$pkgver.tar.gz
"
# secfixes:
+# 2.6.7-r0:
+# - CVE-2023-46849
+# - CVE-2023-46850
# 2.5.6-r0:
# - CVE-2022-0547
# 2.5.2-r0:
@@ -75,7 +86,7 @@ pam() {
}
sha512sums="
-b90dc9ddb9c3bc8eda9ffa0507bb82c46347a44fb05861859665ac6f9759345054f47bc86073dcaf06d56b1e403e94d887aa0480e17188075c19c909daf18844 openvpn-2.5.7.tar.gz
+2220d453db5b1e00cdddc4f7417eeb39ac7089e951c0cfb39da461f525517dbe94802ae1fb4625997fc8dec22c8359427da05618db4fb64d3e9fdcf0cb2ee861 openvpn-2.6.10.tar.gz
42eda00f64727e6a1c3c74a02a5e99f34bd1361935fef8f807f16515e553ae644d3b054f40e8a352138db646aa3553e3f4ce6f5c10354191bef745ff99245f46 openvpn.initd
1f14d4bd7a4a026c276af048ce647501c15358c6b0d184e95c49be5b8184188c8edafb76ed94835cdbb314187ee3b5b3ccd852e3a47add0599814c402309bece openvpn.confd
cdb73c9a5b1eb56e9cbd29955d94297ce5a87079419cd626d6a0b6680d88cbf310735a53f794886df02030b687eaea553c7c569a8ea1282a149441add1c65760 openvpn.up
diff --git a/main/opus/APKBUILD b/main/opus/APKBUILD
index ac56f8dda2c..185a5fa0f42 100644
--- a/main/opus/APKBUILD
+++ b/main/opus/APKBUILD
@@ -1,35 +1,51 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=opus
-pkgver=1.3.1
-pkgrel=1
+pkgver=1.4
+pkgrel=0
pkgdesc="Codec designed for interactive speech and audio transmission over the Internet"
url="https://www.opus-codec.org/"
arch="all"
license="BSD-3-Clause"
+makedepends="meson"
subpackages="$pkgname-dev $pkgname-doc"
-source="https://archive.mozilla.org/pub/opus/opus-$pkgver.tar.gz"
+source="https://github.com/xiph/opus/releases/download/v$pkgver/opus-$pkgver.tar.gz
+ arm32.patch
+ "
+
+case "$CARCH" in
+arm*)
+ # the tests pass, but with contention armhf is really slow, and they can take
+ # over 20 minutes on one test
+ options="$options !check"
+ ;;
+esac
+
+# secfixes:
+# 0:
+# - CVE-2022-25345
build() {
- CFLAGS="${CFLAGS/-Os/-O2}" ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --localstatedir=/var \
- --enable-custom-modes
- make
+ CFLAGS="${CFLAGS/-Os/-O2}" \
+ CPPFLAGS="${CPPFLAGS/-Os/-O2}" \
+ abuild-meson \
+ -Db_lto=true \
+ -Dcustom-modes=true \
+ -Dtests="$(want_check && echo enabled || echo disabled)" \
+ . output
+ meson compile -C output
}
check() {
- make check
+ meson test -t10 --no-rebuild --print-errorlogs -C output
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
-sha512sums="6cd5e4d8a0551ed5fb59488c07a5cc18a241d1fde5f9eb9f16cd4e77abcdb4134dd51ad1d737be1e6039bfa56912510b8648152f2478a1f21c7c1d9ce32933cd opus-1.3.1.tar.gz"
+sha512sums="
+1ecd39e0add24de12823bf7c936bb67441228721e2cdae0edbfcf3cee0894bcc6edf2a1d0ca5cdfdad1565803bf39cc4c985ad32710c2a9582f850adeb5ca631 opus-1.4.tar.gz
+4218a3bc31efb91aa6b9cb2ac5928e63c34fd3b5aac61c68fa13b5a5fee00f902a1a03c61735d0610b0ded8f5b5e789494ea24165383bd4501d6a16e422e8eb6 arm32.patch
+"
diff --git a/main/opus/arm32.patch b/main/opus/arm32.patch
new file mode 100644
index 00000000000..364d7f5d5a7
--- /dev/null
+++ b/main/opus/arm32.patch
@@ -0,0 +1,27 @@
+Patch-Source: https://github.com/xiph/opus/pull/267
+--
+From d94583359bcf8f1b52cc93b7ca6ced9664fb2a7e Mon Sep 17 00:00:00 2001
+From: Vilius <orion1vi@protonmail.com>
+Date: Sun, 27 Nov 2022 03:13:09 +0200
+Subject: [PATCH] Meson: Fix unknown variable have_arm_intrinsics_or_asm
+
+---
+ silk/meson.build | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/silk/meson.build b/silk/meson.build
+index 917048b2d..a3e3f9eb3 100644
+--- a/silk/meson.build
++++ b/silk/meson.build
+@@ -25,6 +25,11 @@ if host_cpu_family in ['x86', 'x86_64'] and opus_conf.has('OPUS_HAVE_RTCD')
+ silk_sources += sources['SILK_SOURCES_X86_RTCD']
+ endif
+
++have_arm_intrinsics_or_asm = have_arm_ne10
++if (intrinsics_support.length() + asm_optimization.length() + inline_optimization.length()) > 0
++ have_arm_intrinsics_or_asm = true
++endif
++
+ if host_cpu_family in ['arm', 'aarch64'] and have_arm_intrinsics_or_asm
+ if opus_conf.has('OPUS_HAVE_RTCD')
+ silk_sources += sources['SILK_SOURCES_ARM_RTCD']
diff --git a/main/opusfile/APKBUILD b/main/opusfile/APKBUILD
index decf3e3b6a9..cb2ecb21bfc 100644
--- a/main/opusfile/APKBUILD
+++ b/main/opusfile/APKBUILD
@@ -1,18 +1,28 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=opusfile
pkgver=0.12
-pkgrel=2
+pkgrel=6
pkgdesc="High-level API for decoding and seeking within .opus files"
url="https://www.opus-codec.org/"
arch="all"
license="BSD-3-Clause"
-depends_dev="openssl1.1-compat-dev"
+depends_dev="openssl-dev>3"
makedepends="$depends_dev libogg-dev opus-dev"
subpackages="$pkgname-dev $pkgname-doc"
source="https://downloads.xiph.org/releases/opus/opusfile-$pkgver.tar.gz
+ $pkgname-CVE-2022-47021.patch::https://github.com/xiph/opusfile/commit/0a4cd796df5b030cb866f3f4a5e41a4b92caddf5.patch
fix-conflict.patch
"
+# secfixes:
+# 0.12-r4:
+# - CVE-2022-47021
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
./configure \
--build=$CBUILD \
@@ -34,5 +44,8 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="e25e6968a3183ac0628ce1000840fd6f9f636e92ba984d6a72b76fb2a98ec632d2de4c66a8e4c05ef30655c2a4a13ab35f89606fa7d79a54cfa8506543ca57af opusfile-0.12.tar.gz
-b902b8c25506d3730a2a3bafcc5542671df8f35c588d05e54e883071c853c2e6e572dde80a8f7f39a58780a509c2d14b963040a3cab633edfc400cfca08060de fix-conflict.patch"
+sha512sums="
+e25e6968a3183ac0628ce1000840fd6f9f636e92ba984d6a72b76fb2a98ec632d2de4c66a8e4c05ef30655c2a4a13ab35f89606fa7d79a54cfa8506543ca57af opusfile-0.12.tar.gz
+d5b9f45a26b2721d0e929932bebcb5382daad394f54c694daca2119dfb01217afb4d68606c45353542888ba589d66f27bacad3644be34b4c119d51fba64662c8 opusfile-CVE-2022-47021.patch
+b902b8c25506d3730a2a3bafcc5542671df8f35c588d05e54e883071c853c2e6e572dde80a8f7f39a58780a509c2d14b963040a3cab633edfc400cfca08060de fix-conflict.patch
+"
diff --git a/main/orc/APKBUILD b/main/orc/APKBUILD
index 5d30e7dc96a..5edb6a414a5 100644
--- a/main/orc/APKBUILD
+++ b/main/orc/APKBUILD
@@ -2,31 +2,27 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=orc
-pkgver=0.4.32
+pkgver=0.4.37
pkgrel=0
-pkgdesc="The Oil Run-time Compiler"
+pkgdesc="Oil Run-time Compiler"
url="https://gstreamer.freedesktop.org/modules/orc.html"
arch="all"
license="BSD-2-Clause"
+depends_dev="$pkgname-compiler=$pkgver-r$pkgrel"
makedepends="linux-headers meson"
subpackages="$pkgname-dev $pkgname-compiler"
source="https://gstreamer.freedesktop.org/src/orc/orc-$pkgver.tar.xz"
-case "$CARCH" in
- # FIXME: Test exec_opcodes_sys fails on armhf.
- # FIXME: MIPS DSP Module Rev2 is required for tests on mips*.
- arm*|mips*) options="!check";;
-esac
-
build() {
abuild-meson \
+ -Db_lto=true \
-Dorc-test=disabled \
. output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
check() {
- meson test --no-rebuild -v -C output
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
@@ -35,8 +31,10 @@ package() {
compiler() {
pkgdesc="Orc compiler"
- mkdir -p "$subpkgdir"/usr/
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+
+ amove usr/bin
}
-sha512sums="63e2ab05bc23e07cd5c1ed3192515ec3b1f666abb4f9ea5de4bd72461f3a5d7066860e2ad38f35d0acd81fadfa06f2a18d61838eae89c74dec6a78099a343567 orc-0.4.32.tar.xz"
+sha512sums="
+73c1e6e3bf66ceda94eb009675b0728ec844acc238959a4e741cbd6b69b7231b544fb85bb093641319d761bcfc0a9f84da864ab7bcf5dd1c263aa75f7b9d2310 orc-0.4.37.tar.xz
+"
diff --git a/main/ortp/APKBUILD b/main/ortp/APKBUILD
index b0b407c3d6f..91cebdde00e 100644
--- a/main/ortp/APKBUILD
+++ b/main/ortp/APKBUILD
@@ -1,16 +1,19 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=ortp
-pkgver=5.1.45
+pkgver=5.3.38
pkgrel=0
pkgdesc="oRTP is a library implemeting Real-time Transport Protocol (RFC3550), licensed under LGPL"
-url="http://www.linphone.org/technical-corner/ortp"
+url="https://www.linphone.org/technical-corner/ortp"
arch="all"
options="!check" #no test avail
-license="LGPL-2.0-or-later VSL"
+license="LGPL-2.0-or-later"
makedepends="cmake bctoolbox-dev samurai"
subpackages="$pkgname-doc $pkgname-dev"
-source="https://gitlab.linphone.org/BC/public/ortp/-/archive/$pkgver/ortp-$pkgver.tar.gz"
+source="https://gitlab.linphone.org/BC/public/ortp/-/archive/$pkgver/ortp-$pkgver.tar.gz
+ fix-pkgconfig-pc-file.patch
+ fix-cmake-path.patch
+ "
build() {
cmake -B build -G Ninja \
@@ -20,7 +23,8 @@ build() {
-DCMAKE_BUILD_TYPE=MinSizeRel \
-DCMAKE_SKIP_INSTALL_RPATH=ON \
-DENABLE_STATIC=NO \
- -DENABLE_SHARED=YES .
+ -DENABLE_UNIT_TESTS=OFF \
+ -DBUILD_SHARED_LIBS=YES .
cmake --build build
}
@@ -29,5 +33,7 @@ package() {
}
sha512sums="
-912f528530f85dbd33baae74da434f909e482265d0a58760eb8fbb365be05c6c9d1bda1ed532e57ecb7e63813db57fea8e199cad2bfe2968b212baf570fc8992 ortp-5.1.45.tar.gz
+83a5d549767f92352235a1ae146c9c98f0fb83fc52101fd7f955ae978231b978d376742689d951f045eee1f639ed973169775068b546089049cc34573da7f251 ortp-5.3.38.tar.gz
+f889b47bf3d6a47d05b56c14a601328d636ea858a5abef0873b3bef329822a7271ada2ed2d8c4b09edddb59882f54752a8fcc3d8d067ee832631af7161505222 fix-pkgconfig-pc-file.patch
+19613325809a3086403ef87d67a12707d85e56d455b7fd57dae5e09635743d2d04c41f85b3b60441ee60ef93f4143c531dc7cbdc4818e64d8611c70bf5b38c15 fix-cmake-path.patch
"
diff --git a/main/ortp/fix-cmake-path.patch b/main/ortp/fix-cmake-path.patch
new file mode 100644
index 00000000000..6b06448445b
--- /dev/null
+++ b/main/ortp/fix-cmake-path.patch
@@ -0,0 +1,13 @@
+Adapted from https://github.com/OpenMandrivaAssociation/ortp/blob/master/ortp-5.3.6-cmake-fix_cmake_path.patch
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -212,7 +212,7 @@ if (ENABLE_PACKAGE_SOURCE)
+ endif()
+
+ include(CMakePackageConfigHelpers)
+-set(CMAKE_MODULES_INSTALL_DIR "${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/cmake")
++set(CMAKE_MODULES_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}/")
+ configure_package_config_file("cmake/${PROJECT_NAME}Config.cmake.in" "${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake"
+ INSTALL_DESTINATION "${CMAKE_MODULES_INSTALL_DIR}"
+ NO_SET_AND_CHECK_MACRO
diff --git a/main/ortp/fix-pkgconfig-pc-file.patch b/main/ortp/fix-pkgconfig-pc-file.patch
new file mode 100644
index 00000000000..cc3c2e7442b
--- /dev/null
+++ b/main/ortp/fix-pkgconfig-pc-file.patch
@@ -0,0 +1,18 @@
+Patch-Source: https://github.com/OpenMandrivaAssociation/ortp/blob/master/ortp-4.4.6-cmake-fix-pkgconfig-pc-file.patch
+
+--- a/ortp.pc.in
++++ b/ortp.pc.in
+@@ -1,4 +1,3 @@
+-# This is a comment
+ prefix=@prefix@
+ exec_prefix=@exec_prefix@
+-includedir=@includedir@
++includedir=@includedir@/ortp
+@@ -6,5 +5,5 @@ includedir=@includedir@
+ Name: oRTP
+ Description: Implement the RFC3550 (RTP) with a easy to use API with high and low level access.
+ Version: @ORTP_PKGCONFIG_VERSION@
+-Libs: -L@libdir@ -lortp @ORTPDEPS_LIBS@
+-Cflags: -I@includedir@ @ORTPDEPS_CFLAGS@
++Libs: -lortp @ORTPDEPS_LIBS@
++Cflags: -I@includedir@/ortp @ORTPDEPS_CFLAGS@
diff --git a/main/p11-kit/APKBUILD b/main/p11-kit/APKBUILD
index 5166a3dc667..172c2108fab 100644
--- a/main/p11-kit/APKBUILD
+++ b/main/p11-kit/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=p11-kit
-pkgver=0.24.1
+pkgver=0.25.3
pkgrel=0
pkgdesc="Library for loading and sharing PKCS#11 modules"
url="https://p11-glue.freedesktop.org/"
@@ -19,13 +19,16 @@ source="https://github.com/p11-glue/p11-kit/releases/download/$pkgver/p11-kit-$p
build() {
abuild-meson \
+ -Db_lto=true \
+ -Dbackend_max_links=4 \
+ -Dtest="$(want_check && echo true || echo false)" \
-Dtrust_paths=/etc/ssl/certs/ca-certificates.crt \
. output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
check() {
- meson test --no-rebuild -v -C output
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
@@ -35,28 +38,21 @@ package() {
trust() {
pkgdesc="System trust module from $pkgname"
- mkdir -p "$subpkgdir"/usr/share/p11-kit/modules \
- "$subpkgdir"/usr/lib/pkcs11 \
- "$subpkgdir"/usr/bin
-
- mv "$pkgdir"/usr/share/p11-kit/modules/p11-kit-trust.module \
- "$subpkgdir"/usr/share/p11-kit/modules/
- mv "$pkgdir"/usr/lib/pkcs11/p11-kit-trust.so \
- "$subpkgdir"/usr/lib/pkcs11/
- mv "$pkgdir"/usr/bin/trust "$subpkgdir"/usr/bin/
+
+ amove \
+ usr/share/p11-kit/modules/p11-kit-trust.module \
+ usr/lib/pkcs11/p11-kit-trust.so \
+ usr/bin/trust
}
server() {
pkgdesc="Server and client commands for $pkgname"
- mkdir -p "$subpkgdir"/usr/lib/pkcs11 \
- "$subpkgdir"/usr/libexec/p11-kit \
- "$subpkgdir"/etc/init.d
- mv "$pkgdir"/usr/lib/pkcs11/p11-kit-client.so \
- "$subpkgdir"/usr/lib/pkcs11
- mv "$pkgdir"/usr/libexec/p11-kit/p11-kit-server \
- "$subpkgdir"/usr/libexec/p11-kit
+
+ amove \
+ usr/lib/pkcs11/p11-kit-client.so \
+ usr/libexec/p11-kit/p11-kit-server
}
sha512sums="
-8cf170c714bb9e0cf3df93e8ec55b8e3c55cabf2c6a27f177ac6de8b8028985df2ca0216d3215d6828dc2ae3095c4e1a4febe8cb26b88ec321defc66bb011e81 p11-kit-0.24.1.tar.xz
+ad2d393bf122526cbba18dc9d5a13f2c1cad7d70125ec90ffd02059dfa5ef30ac59dfc0bb9bc6380c8f317e207c9e87e895f1945634f56ddf910c2958868fb4c p11-kit-0.25.3.tar.xz
"
diff --git a/main/p7zip/APKBUILD b/main/p7zip/APKBUILD
deleted file mode 100644
index b8de20a47dc..00000000000
--- a/main/p7zip/APKBUILD
+++ /dev/null
@@ -1,69 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Contributor: Valery Kartel <valery.kartel@gmail.com>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=p7zip
-pkgver=17.04
-pkgrel=2
-pkgdesc="Command-line port of the 7zip compression utility"
-url="https://github.com/jinfeihan57/p7zip"
-# armhf: ftbfs, sigbus
-arch="all !armhf"
-license="LGPL-2.0-or-later"
-subpackages="$pkgname-doc"
-makedepends="
- bash
- nasm
- yasm
- "
-source="https://github.com/jinfeihan57/p7zip/archive/v$pkgver/p7zip-v$pkgver.tar.gz"
-
-case "$CARCH" in
- s390x) options="$options !check";; # dealocks on s390x
-esac
-
-# secfixes:
-# 16.02-r3:
-# - CVE-2018-5996
-# - CVE-2018-10115
-# 16.02-r2:
-# - CVE-2017-17969
-# 16.02-r1:
-# - CVE-2016-9296
-
-prepare() {
- default_prepare
-
- local makefile="makefile.linux_any_cpu_gcc_4.X"
- case "$CARCH" in
- x86) makefile="makefile.linux_x86_asm_gcc_4.X" ;;
- x86_64) makefile="makefile.linux_amd64_asm" ;;
- esac
-
- ln -sf $makefile makefile.machine
-
- sed -e "s,g++,${CXX:-g++}," -i makefile.machine
- sed -e "s,gcc,${CC:-gcc}," -i makefile.machine
-}
-
-build() {
- make all3 OPTFLAGS="$CXXFLAGS -O2"
-}
-
-check() {
- make test
-}
-
-package() {
- make install DEST_DIR="$pkgdir" DEST_HOME="/usr" \
- DEST_MAN="/usr/share/man" \
- DEST_SHARE_DOC="/usr/share/doc/$pkgname"
-
- install -Dm755 contrib/gzip-like_CLI_wrapper_for_7z/$pkgname \
- "$pkgdir"/usr/bin/$pkgname
- install -Dm644 contrib/gzip-like_CLI_wrapper_for_7z/man1/$pkgname.1 \
- "$pkgdir"/usr/share/man/man1/$pkgname.1
-}
-
-sha512sums="
-ad176db5b657b1c39584f6792c47978d94f2f1ccb1cf5bdb0f52ab31a7356b3822f4a922152c4253f4aa7e79166ba052b6592530b7a38f548cd555fe9c008be3 p7zip-v17.04.tar.gz
-"
diff --git a/main/pahole/APKBUILD b/main/pahole/APKBUILD
new file mode 100644
index 00000000000..3e1fb196212
--- /dev/null
+++ b/main/pahole/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Dominique Martinet <dominique.martinet@atmark-techno.com>
+# Maintainer: Dominique Martinet <dominique.martinet@atmark-techno.com>
+pkgname=pahole
+pkgver=1.25
+pkgrel=0
+pkgdesc="dwarf manipulation utilities"
+url="https://git.kernel.org/pub/scm/devel/pahole/pahole.git"
+arch="all"
+license="GPL-2.0-only"
+options="!check" # no test
+makedepends="cmake elfutils-dev libdwarf-dev zlib-dev libbpf-dev
+ linux-headers musl-obstack-dev argp-standalone samurai"
+subpackages="$pkgname-doc"
+source="https://git.kernel.org/pub/scm/devel/pahole/pahole.git/snapshot/pahole-v$pkgver.tar.gz"
+builddir="$srcdir/$pkgname-v$pkgver"
+
+build() {
+ # use libbpf installed uapi headers as we need something
+ # newer than linux-headers provides
+ export CFLAGS="$CFLAGS -I/usr/include/bpf/uapi"
+
+ cmake -B build -G Ninja . \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=None \
+ -D__LIB=lib \
+ -DCMAKE_MODULE_PATH=/usr/lib/cmake \
+ -DLIBBPF_EMBEDDED=OFF
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --build build --target install
+}
+
+sha512sums="
+79070ed90edae752588fa4213bd180c770cae7870b2c016fba8e265f34d9f3e0ca82fb8cdf39275b5c3f53119d9fb225b1ee5c87a5f95df5beef37d32b4fde15 pahole-v1.25.tar.gz
+"
diff --git a/main/pam-pgsql/APKBUILD b/main/pam-pgsql/APKBUILD
index eb4957f9c83..0e6aa81aaf8 100644
--- a/main/pam-pgsql/APKBUILD
+++ b/main/pam-pgsql/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=pam-pgsql
pkgver=0.7.3.2
-pkgrel=1
+pkgrel=3
pkgdesc="PAM module to authenticate using a PostgreSQL database"
url="https://sourceforge.net/projects/pam-pgsql/"
arch="all"
@@ -11,7 +11,6 @@ makedepends="$depends_dev linux-pam-dev libpq-dev libgcrypt-dev
bsd-compat-headers"
subpackages="$pkgname-doc"
source="https://downloads.sourceforge.net/project/pam-pgsql/pam-pgsql/0.7/pam-pgsql-$pkgver.tar.gz"
-builddir="$srcdir"/pam-pgsql-$pkgver
prepare() {
default_prepare
@@ -22,7 +21,8 @@ build() {
./configure \
--build=$CBUILD \
--host=$CHOST \
- --prefix=/usr
+ --prefix=/usr \
+ --libdir=/lib # for pam module
make
}
@@ -34,4 +34,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="d5766e56a13b0b4762fba10d624d12f130f2675f1f1772eaaf275b599f44adcf98287c2636462ba3faf46af139eb1bd157918c0c783040796562f37dec17a6d9 pam-pgsql-0.7.3.2.tar.gz"
+sha512sums="
+d5766e56a13b0b4762fba10d624d12f130f2675f1f1772eaaf275b599f44adcf98287c2636462ba3faf46af139eb1bd157918c0c783040796562f37dec17a6d9 pam-pgsql-0.7.3.2.tar.gz
+"
diff --git a/main/pango/APKBUILD b/main/pango/APKBUILD
index 47069a762a3..f63742873b3 100644
--- a/main/pango/APKBUILD
+++ b/main/pango/APKBUILD
@@ -1,18 +1,29 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Contributor: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Simon Zeni <simon@bl4ckb0ne.ca>
pkgname=pango
-pkgver=1.50.7
+pkgver=1.52.2
pkgrel=0
pkgdesc="library for layout and rendering of text"
url="https://www.pango.org/"
arch="all"
license="LGPL-2.1-or-later"
depends_dev="pango-tools=$pkgver-r$pkgrel"
-makedepends="meson cairo-dev expat-dev gobject-introspection-dev help2man
- fontconfig-dev glib-dev harfbuzz-dev libxft-dev fribidi-dev
- gtk-doc"
-checkdepends="ttf-dejavu ttf-cantarell ttf-droid ttf-tlwg"
+makedepends="
+ cairo-dev
+ expat-dev
+ fontconfig-dev
+ fribidi-dev
+ glib-dev
+ gobject-introspection-dev
+ gtk-doc
+ harfbuzz-dev
+ help2man
+ libxft-dev
+ meson
+ "
+checkdepends="font-dejavu font-cantarell font-droid font-tlwg"
install="$pkgname.pre-deinstall"
triggers="$pkgname.trigger=/usr/lib/pango/*/modules"
subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc $pkgname-tools"
@@ -26,14 +37,15 @@ source="https://download.gnome.org/sources/pango/${pkgver%.*}/pango-$pkgver.tar.
build() {
abuild-meson \
+ -Db_lto=true \
-Dintrospection=enabled \
-Dgtk_doc=false \
build
- meson compile ${JOBS:+-j ${JOBS}} -C build
+ meson compile -C build
}
check() {
- meson test --no-rebuild -v -C build
+ meson test --no-rebuild --print-errorlogs -C build
}
package() {
@@ -42,11 +54,11 @@ package() {
tools() {
pkgdesc="$pkgdesc (tools)"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/* "$subpkgdir"/usr/bin
+
+ amove usr/bin
}
sha512sums="
-4d754ed753fc34074c2a8751459406af7eb1eccb227c6158287f7e2921614d918cae47d078d4a2b4c098b641e40274e81bf1ec6b6a1b147efd550626665767d3 pango-1.50.7.tar.xz
-3623ef34e08427c70b4f2f89eefe13258646a935c450d9ad703c30018343aef245749e6a3708f299fd696d9f1ec0eeab116131e51918fc1765f61545202aaab0 disable-broken-test.patch
+6b3d762d133e7c900c6dfa85f43c950699930f6149cb3c90bf0e787f1b5a126a0b90220b90e649f84e4c244e44c46d4b575d5d7afeb305232c333712effc0981 pango-1.52.2.tar.xz
+b347c5dcdbe2a19f1d801193a3d309d3c14ff8474759b3ec74cc7d4714a3ac6aacce8b4ae770ba5172524a7be5654820839c5edd689d3957a2b55fedc875a5fb disable-broken-test.patch
"
diff --git a/main/pango/disable-broken-test.patch b/main/pango/disable-broken-test.patch
index 09282f9036d..66b2d7b3ed9 100644
--- a/main/pango/disable-broken-test.patch
+++ b/main/pango/disable-broken-test.patch
@@ -1,11 +1,13 @@
diff -U3 -r a/tests/meson.build b/tests/meson.build
---- a/tests/meson.build 2022-04-25 20:59:39.989114880 +0200
-+++ b/tests/meson.build 2022-04-25 21:00:00.013429487 +0200
-@@ -61,7 +61,5 @@
-
+diff --git a/tests/meson.build b/tests/meson.build
+index 8b4bfa3..287a001 100644
+--- a/tests/meson.build
++++ b/tests/meson.build
+@@ -62,7 +62,6 @@
if host_system != 'darwin'
tests += [
-- [ 'test-layout', [ 'test-layout.c', 'test-common.c' ], [ libpangocairo_dep, libpangoft2_dep ] ],
+ [ 'test-layout', [ 'test-layout.c', 'test-common.c' ], [ libpangocairo_dep, libpangoft2_dep ] ],
- [ 'test-fonts', [ 'test-fonts.c', 'test-common.c' ], [ libpangocairo_dep, libpangoft2_dep ] ],
+ [ 'test-no-fonts', [ 'test-no-fonts.c' ], [ libpangocairo_dep, libpangoft2_dep ] ],
]
endif
diff --git a/main/parallel/APKBUILD b/main/parallel/APKBUILD
index cb4cbeb8c65..8c980f0cd4a 100644
--- a/main/parallel/APKBUILD
+++ b/main/parallel/APKBUILD
@@ -1,23 +1,16 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@alpinelinux.org>
pkgname=parallel
-pkgver=20220622
+pkgver=20240322
pkgrel=0
pkgdesc="Shell tool for executing jobs in parallel"
arch="noarch"
url="https://www.gnu.org/software/parallel"
license="GPL-3.0-or-later"
options="!check" # Test suite not part of src pkg
-depends="autoconf automake perl"
+depends="perl"
subpackages="$pkgname-doc $pkgname-bash-completion $pkgname-zsh-completion"
-source="https://ftp.gnu.org/gnu/parallel/parallel-$pkgver.tar.bz2
- completion-dir.patch
- "
-
-prepare() {
- default_prepare
- autoreconf -fvi
-}
+source="https://ftp.gnu.org/gnu/parallel/parallel-$pkgver.tar.bz2"
build() {
./configure \
@@ -35,6 +28,5 @@ package() {
}
sha512sums="
-d01d86cd2ac373534d147eee8aa666fe26e7207362ea9c036c3744125f72c936d15cf2059429636454f21c8e8c6b3a60c8d761ddfde97ba7388d2cd00495bfa4 parallel-20220622.tar.bz2
-9c44648d220d2c9eb15e5d0dca25f0a62091f8f9e1233df04d31639c7833ddc1d60a654a261b352a37894f4ed445f5c26ce39cbe145982cfc95991ad873de0fc completion-dir.patch
+5eefc4dd8c320b3607eabc14924317340d74bbc56e4b0ede8cf7091380b433e6c8b2dac61711921516591396997b3e18a7737e0a06724ed7190cf3a8b37258af parallel-20240322.tar.bz2
"
diff --git a/main/parallel/completion-dir.patch b/main/parallel/completion-dir.patch
deleted file mode 100644
index 1d93fc62f94..00000000000
--- a/main/parallel/completion-dir.patch
+++ /dev/null
@@ -1,18 +0,0 @@
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -167,12 +167,12 @@
- cd parallel-$(YYYYMMDD) && \
- ./configure && make -j && sudo make -j install
-
--zshcompletiondir=${datarootdir}/zsh/site-functions
-+zshcompletiondir=${DESTDIR}/${datarootdir}/zsh/site-functions
- zshcompletion=${zshcompletiondir}/_parallel
- install-data-hook:
-- mkdir -p ${datarootdir}/bash-completion/completions
-+ mkdir -p ${DESTDIR}/${datarootdir}/bash-completion/completions
- mkdir -p ${zshcompletiondir}
-- parallel --shell-completion bash > ${datarootdir}/bash-completion/completions/parallel
-+ ./src/parallel --shell-completion bash > ${DESTDIR}/${datarootdir}/bash-completion/completions/parallel
- echo '#compdef parallel' > ${zshcompletion}
- echo '(( $$+functions[_comp_parallel] )) ||' >> ${zshcompletion}
- echo ' eval "$$(parallel --shell-completion auto)" &&' >> ${zshcompletion}
diff --git a/main/parted/APKBUILD b/main/parted/APKBUILD
index b0d10697104..627b4735ca7 100644
--- a/main/parted/APKBUILD
+++ b/main/parted/APKBUILD
@@ -1,14 +1,25 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=parted
-pkgver=3.5
-pkgrel=0
+pkgver=3.6
+pkgrel=2
pkgdesc="Utility to create, destroy, resize, check and copy partitions"
url="https://www.gnu.org/software/parted/parted.html"
arch="all"
license="GPL-3.0-or-later"
+makedepends="
+ bash
+ lvm2-dev
+ ncurses-dev
+ readline-dev
+ util-linux-dev
+ "
+checkdepends="
+ coreutils
+ eudev
+ perl
+ util-linux
+ "
subpackages="$pkgname-dev $pkgname-doc"
-checkdepends="perl eudev util-linux"
-makedepends="readline-dev ncurses-dev lvm2-dev bash util-linux-dev"
source="https://ftp.gnu.org/gnu/parted/parted-$pkgver.tar.xz
fix-includes.patch
fix-libintl-header-s390x.patch
@@ -31,16 +42,18 @@ build() {
}
check() {
- make check
+ make check || {
+ cat tests/test-suite.log
+ return 1
+ }
}
package() {
make DESTDIR="$pkgdir" install
- rm -rf "$pkgdir"/usr/lib/charset.alias
- rmdir -p "$pkgdir"/usr/lib 2>/dev/null || true
}
+
sha512sums="
-87fc69e947de5f0b670ee5373a7cdf86180cd782f6d7280f970f217f73f55ee1b1b018563f48954f3a54fdde5974b33e07eee68c9ccdf08e621d3dc0e3ce126a parted-3.5.tar.xz
+034a44b25718acba175212019d24f092972a791c5bd1d921ae91e17478657a77c5c5dd0c832bed7968c3a07ec6c65c0785acfac2f90c1ca5e1692f3c141693ef parted-3.6.tar.xz
55ee63c218d1867c0f2c596e7c3eec5c42af160181456cc551fe3d432eabed0ac2dd3a3955ff0c375f76aeec8071e7f55a32834b87a0d39b8ef30361f671bfdd fix-includes.patch
444a7e2fb3235dfd218f6b71fb25adde107d001f638d988ee1fa79686d8efee94a9499e27bdfdd75f9718760b448938b70a90a74285b93a39338d21f4ab4c9dc fix-libintl-header-s390x.patch
ba86cd2591d8e920e474faf28a32f9eaca9482e168c53eae5d392276aefaf6c46b66a0d5fc4a18b7186bf38f7288bd79de8ba8019c1cd38a5e2102904ce75723 parted-include-sysmacros.patch
diff --git a/main/patch/0003-memory-allocation.patch b/main/patch/0003-memory-allocation.patch
new file mode 100644
index 00000000000..c816b48de06
--- /dev/null
+++ b/main/patch/0003-memory-allocation.patch
@@ -0,0 +1,88 @@
+Patch-Source: https://github.com/mirror/patch/commit/61d7788b83b302207a67b82786f4fd79e3538f30
+--
+From 61d7788b83b302207a67b82786f4fd79e3538f30 Mon Sep 17 00:00:00 2001
+From: Andreas Gruenbacher <agruen@gnu.org>
+Date: Thu, 27 Jun 2019 11:10:43 +0200
+Subject: [PATCH] Don't crash when RLIMIT_NOFILE is set to RLIM_INFINITY
+
+* src/safe.c (min_cached_fds): Define minimum number of cached dir file
+descriptors.
+(max_cached_fds): Change type to rlim_t to allow storing RLIM_INFINITY.
+(init_dirfd_cache): Set max_cached_fds to RLIM_INFINITY when RLIMIT_NOFILE is
+RLIM_INFINITY. Set the initial hash table size to min_cached_fds, independent
+of RLIMIT_NOFILE: patches commonly only affect one or a few files, so a small
+hash table will usually suffice; if needed, the hash table will grow.
+(insert_cached_dirfd): Don't shrink the cache when max_cached_fds is
+RLIM_INFINITY.
+---
+ src/safe.c | 36 +++++++++++++++++++++++-------------
+ 1 file changed, 23 insertions(+), 13 deletions(-)
+
+diff --git a/src/safe.c b/src/safe.c
+index 5a7202f..f147b0e 100644
+--- a/src/safe.c
++++ b/src/safe.c
+@@ -67,7 +67,8 @@ struct cached_dirfd {
+ };
+
+ static Hash_table *cached_dirfds = NULL;
+-static size_t max_cached_fds;
++static rlim_t min_cached_fds = 8;
++static rlim_t max_cached_fds;
+ LIST_HEAD (lru_list);
+
+ static size_t hash_cached_dirfd (const void *entry, size_t table_size)
+@@ -98,11 +99,17 @@ static void init_dirfd_cache (void)
+ {
+ struct rlimit nofile;
+
+- max_cached_fds = 8;
+ if (getrlimit (RLIMIT_NOFILE, &nofile) == 0)
+- max_cached_fds = MAX (nofile.rlim_cur / 4, max_cached_fds);
++ {
++ if (nofile.rlim_cur == RLIM_INFINITY)
++ max_cached_fds = RLIM_INFINITY;
++ else
++ max_cached_fds = MAX (nofile.rlim_cur / 4, min_cached_fds);
++ }
++ else
++ max_cached_fds = min_cached_fds;
+
+- cached_dirfds = hash_initialize (max_cached_fds,
++ cached_dirfds = hash_initialize (min_cached_fds,
+ NULL,
+ hash_cached_dirfd,
+ compare_cached_dirfds,
+@@ -148,20 +155,23 @@ static void insert_cached_dirfd (struct cached_dirfd *entry, int keepfd)
+ if (cached_dirfds == NULL)
+ init_dirfd_cache ();
+
+- /* Trim off the least recently used entries */
+- while (hash_get_n_entries (cached_dirfds) >= max_cached_fds)
++ if (max_cached_fds != RLIM_INFINITY)
+ {
+- struct cached_dirfd *last =
+- list_entry (lru_list.prev, struct cached_dirfd, lru_link);
+- if (&last->lru_link == &lru_list)
+- break;
+- if (last->fd == keepfd)
++ /* Trim off the least recently used entries */
++ while (hash_get_n_entries (cached_dirfds) >= max_cached_fds)
+ {
+- last = list_entry (last->lru_link.prev, struct cached_dirfd, lru_link);
++ struct cached_dirfd *last =
++ list_entry (lru_list.prev, struct cached_dirfd, lru_link);
+ if (&last->lru_link == &lru_list)
+ break;
++ if (last->fd == keepfd)
++ {
++ last = list_entry (last->lru_link.prev, struct cached_dirfd, lru_link);
++ if (&last->lru_link == &lru_list)
++ break;
++ }
++ remove_cached_dirfd (last);
+ }
+- remove_cached_dirfd (last);
+ }
+
+ /* Only insert if the parent still exists. */
diff --git a/main/patch/0004-fix-memleak.patch b/main/patch/0004-fix-memleak.patch
new file mode 100644
index 00000000000..0209e99acce
--- /dev/null
+++ b/main/patch/0004-fix-memleak.patch
@@ -0,0 +1,100 @@
+Patch-Source: https://github.com/archlinux/svntogit-packages/blob/c08d2ec698bc46d4134fc2028d5ac9df1db6e89d/trunk/19599883ffb6a450d2884f081f8ecf68edbed7ee.patch
+From 19599883ffb6a450d2884f081f8ecf68edbed7ee Mon Sep 17 00:00:00 2001
+From: Jean Delvare <jdelvare@suse.de>
+Date: Thu, 3 May 2018 14:31:55 +0200
+Subject: [PATCH] Don't leak temporary file on failed ed-style patch
+
+Now that we write ed-style patches to a temporary file before we
+apply them, we need to ensure that the temporary file is removed
+before we leave, even on fatal error.
+
+* src/pch.c (do_ed_script): Use global TMPEDNAME instead of local
+ tmpname. Don't unlink the file directly, instead tag it for removal
+ at exit time.
+* src/patch.c (cleanup): Unlink TMPEDNAME at exit.
+
+This closes bug #53820:
+https://savannah.gnu.org/bugs/index.php?53820
+
+Fixes: 123eaff0d5d1 ("Fix arbitrary command execution in ed-style patches (CVE-2018-1000156)")
+---
+ src/common.h | 2 ++
+ src/patch.c | 1 +
+ src/pch.c | 11 +++++------
+ 3 files changed, 8 insertions(+), 6 deletions(-)
+
+diff --git a/src/common.h b/src/common.h
+index 904a3f8..53c5e32 100644
+--- a/src/common.h
++++ b/src/common.h
+@@ -94,10 +94,12 @@ XTERN char const *origsuff;
+ XTERN char const * TMPINNAME;
+ XTERN char const * TMPOUTNAME;
+ XTERN char const * TMPPATNAME;
++XTERN char const * TMPEDNAME;
+
+ XTERN bool TMPINNAME_needs_removal;
+ XTERN bool TMPOUTNAME_needs_removal;
+ XTERN bool TMPPATNAME_needs_removal;
++XTERN bool TMPEDNAME_needs_removal;
+
+ #ifdef DEBUGGING
+ XTERN int debug;
+diff --git a/src/patch.c b/src/patch.c
+index 3fcaec5..9146597 100644
+--- a/src/patch.c
++++ b/src/patch.c
+@@ -1999,6 +1999,7 @@ cleanup (void)
+ remove_if_needed (TMPINNAME, &TMPINNAME_needs_removal);
+ remove_if_needed (TMPOUTNAME, &TMPOUTNAME_needs_removal);
+ remove_if_needed (TMPPATNAME, &TMPPATNAME_needs_removal);
++ remove_if_needed (TMPEDNAME, &TMPEDNAME_needs_removal);
+ remove_if_needed (TMPREJNAME, &TMPREJNAME_needs_removal);
+ output_files (NULL);
+ }
+diff --git a/src/pch.c b/src/pch.c
+index 79a3c99..1bb3153 100644
+--- a/src/pch.c
++++ b/src/pch.c
+@@ -2396,7 +2396,6 @@ do_ed_script (char const *inname, char const *outname,
+ file_offset beginning_of_this_line;
+ size_t chars_read;
+ FILE *tmpfp = 0;
+- char const *tmpname;
+ int tmpfd;
+ pid_t pid;
+
+@@ -2411,12 +2410,13 @@ do_ed_script (char const *inname, char const *outname,
+ invalid commands and treats the next line as a new command, which
+ can lead to arbitrary command execution. */
+
+- tmpfd = make_tempfile (&tmpname, 'e', NULL, O_RDWR | O_BINARY, 0);
++ tmpfd = make_tempfile (&TMPEDNAME, 'e', NULL, O_RDWR | O_BINARY, 0);
+ if (tmpfd == -1)
+- pfatal ("Can't create temporary file %s", quotearg (tmpname));
++ pfatal ("Can't create temporary file %s", quotearg (TMPEDNAME));
++ TMPEDNAME_needs_removal = true;
+ tmpfp = fdopen (tmpfd, "w+b");
+ if (! tmpfp)
+- pfatal ("Can't open stream for file %s", quotearg (tmpname));
++ pfatal ("Can't open stream for file %s", quotearg (TMPEDNAME));
+ }
+
+ for (;;) {
+@@ -2457,7 +2457,7 @@ do_ed_script (char const *inname, char const *outname,
+ write_fatal ();
+
+ if (lseek (tmpfd, 0, SEEK_SET) == -1)
+- pfatal ("Can't rewind to the beginning of file %s", quotearg (tmpname));
++ pfatal ("Can't rewind to the beginning of file %s", quotearg (TMPEDNAME));
+
+ if (inerrno != ENOENT)
+ {
+@@ -2484,7 +2484,6 @@ do_ed_script (char const *inname, char const *outname,
+ pfatal ("Failed to duplicate standard input");
+
+ fclose (tmpfp);
+- safe_unlink (tmpname);
+
+ if (ofp)
+ {
diff --git a/main/patch/APKBUILD b/main/patch/APKBUILD
index c87fd38beb3..b7ed0f10ffd 100644
--- a/main/patch/APKBUILD
+++ b/main/patch/APKBUILD
@@ -2,22 +2,23 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=patch
pkgver=2.7.6
-pkgrel=7
+pkgrel=10
pkgdesc="Utility to apply diffs to files"
url="https://www.gnu.org/software/patch/patch.html"
arch="all"
license="GPL-3.0-or-later"
-depends=""
makedepends="autoconf automake"
# testsuite needs coreutils due to bug in busybox `cat -ve`
# http://lists.busybox.net/pipermail/busybox/2018-April/086401.html
checkdepends="coreutils bash ed"
subpackages="$pkgname-doc"
-source="https://ftp.gnu.org/gnu/$pkgname/$pkgname-$pkgver.tar.xz
- CVE-2018-6951.patch
- CVE-2018-6952.patch
+source="https://ftp.gnu.org/gnu/patch/patch-$pkgver.tar.xz
0001-Allow-input-files-to-be-missing-for-ed-style-patches.patch
0002-Fix-arbitrary-command-execution-in-ed-style-patches-.patch
+ 0003-memory-allocation.patch
+ 0004-fix-memleak.patch
+ CVE-2018-6951.patch
+ CVE-2018-6952.patch
CVE-2019-13636.patch
CVE-2019-13638.patch
CVE-2019-20633.patch
@@ -40,6 +41,8 @@ builddir="$srcdir"/$pkgname-$pkgver
prepare() {
default_prepare
+ update_config_sub
+
aclocal && autoheader && autoconf && automake --add-missing
}
@@ -71,10 +74,12 @@ package() {
sha512sums="
fcca87bdb67a88685a8a25597f9e015f5e60197b9a269fa350ae35a7991ed8da553939b4bbc7f7d3cfd863c67142af403b04165633acbce4339056a905e87fbd patch-2.7.6.tar.xz
-db51d0b791d38dd4f1b373621ee18620ae339b172f58a79420fdaa4a4b1b1d9df239cf61bbddc4e6a4896b28b8cffc7c99161eb5e2facaec8df86a1bf7755bc0 CVE-2018-6951.patch
-5d2eaef629bae92e5b4e5e57d140c24a73e2811306d5f2854858f846646b034d2da315071f478bcf6f8d856a065b9bb073f76322e8e3a42616bc212281ce6945 CVE-2018-6952.patch
33e8a82f5ee6b896fd434e7de1ca9e16e8d317941a021bea8c53afd5bf210774e8727df22f8d8f63f255de10de5a26428047bc710b033423d1e7a459cbbaf83a 0001-Allow-input-files-to-be-missing-for-ed-style-patches.patch
d0d46e28c5fdcd5fe16826cbcf39d5a74fdf2593375d5206aa7bad759f16dbebeca3bf259239f99c13344579044a3de1000d705065cc19e917266bca6e5c0630 0002-Fix-arbitrary-command-execution-in-ed-style-patches-.patch
+3dd30ef35da27f83678fe61ae132de0e9f7c3262831ada5decbe8ac970bf928d7fad9c99f58484f90898b15ce11f297cd078588c29f8528e582842a9bd66d74f 0003-memory-allocation.patch
+94a8dc8eddd814f0837a8cb673f09d8a6cd12072b46466d94e01d8273ef7499a9d0568f5cae53ef80983b36cb00de272ae8054a7a5755c043bc01c1bafdc96a2 0004-fix-memleak.patch
+db51d0b791d38dd4f1b373621ee18620ae339b172f58a79420fdaa4a4b1b1d9df239cf61bbddc4e6a4896b28b8cffc7c99161eb5e2facaec8df86a1bf7755bc0 CVE-2018-6951.patch
+5d2eaef629bae92e5b4e5e57d140c24a73e2811306d5f2854858f846646b034d2da315071f478bcf6f8d856a065b9bb073f76322e8e3a42616bc212281ce6945 CVE-2018-6952.patch
029b92bb899d0b1165cfe7f55b5a4c2d7090852f52e5c85a6bb1cf5913c914a5c68c6c34517e84f0a020a56d21814f8c18b934c8ebe059ba4eddece78a3a258c CVE-2019-13636.patch
d60f8c2364fca9b73aa73b5914cfd6571d11528d13fa7703ccfa93730cbdf8a6e4c9ca04cb7d02a40d33c38075890790b490052d5217e728b0948991da937980 CVE-2019-13638.patch
e988836c90946282e70fca0fe29a52405a357b14bfdc8fce3afb680d7d1b25c4bf9d9cbc5612e3bb2d9379192635d7f1bf1b7b16c23b13d77450ec87dc5e3fe4 CVE-2019-20633.patch
diff --git a/main/patchelf/APKBUILD b/main/patchelf/APKBUILD
new file mode 100644
index 00000000000..cab0ad89375
--- /dev/null
+++ b/main/patchelf/APKBUILD
@@ -0,0 +1,39 @@
+# Contributor: Leo <thinkabit.ukim@gmail.com>
+# Contributor: Michael Koloberdin <koloberdin@gmail.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=patchelf
+pkgver=0.18.0
+pkgrel=3
+pkgdesc="Small utility to modify the dynamic linker and RPATH of ELF executables"
+url="https://nixos.org/patchelf.html"
+arch="all"
+license="GPL-3.0-or-later"
+subpackages="$pkgname-doc $pkgname-zsh-completion"
+source="$pkgname-$pkgver-2.tar.gz::https://github.com/NixOS/patchelf/releases/download/$pkgver/patchelf-$pkgver.tar.gz
+ fix-completion.patch
+ "
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr
+ make
+}
+
+check() {
+ case "$CARCH" in
+ ppc64le) ;;
+ x86) ;;
+ *) make -C tests -j1 check ;;
+ esac
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+ff08b24212d90a2d6e5987b181fffaa365efbfe2d4191462dd9d0f6655d78a719df1db0add192764677712e5a37a0efeaafdbaa904021c0d63cf5abfa37ab685 patchelf-0.18.0-2.tar.gz
+5c28fe4a918f951c89663aba95b5e10c9290d0cd27edb91fe807b763b4f61b6c2331a9475260eb9a6c9b58640ef2141c533632a116770809d10bb414cc1b2542 fix-completion.patch
+"
diff --git a/main/patchelf/fix-completion.patch b/main/patchelf/fix-completion.patch
new file mode 100644
index 00000000000..49fb5b00f3e
--- /dev/null
+++ b/main/patchelf/fix-completion.patch
@@ -0,0 +1,57 @@
+Patch-Source: https://github.com/NixOS/patchelf/pull/495
+--
+From 72a19b93228aa7867345c58aace000a28032c8a8 Mon Sep 17 00:00:00 2001
+From: wzy <32936898+Freed-Wu@users.noreply.github.com>
+Date: Thu, 4 May 2023 23:33:27 +0800
+Subject: [PATCH] Fix wrong completion
+
+---
+ completions/zsh/_patchelf | 18 +++++++++---------
+ 1 file changed, 9 insertions(+), 9 deletions(-)
+
+diff --git a/completions/zsh/_patchelf b/completions/zsh/_patchelf
+index c674549a..080fa268 100644
+--- a/completions/zsh/_patchelf
++++ b/completions/zsh/_patchelf
+@@ -2,32 +2,32 @@
+
+ local options=(
+ '--page-size[Uses the given page size]:SIZE'
+- '--set-interpreter[Change the dynamic loader of executable]:INTERPRETER:dynamic loader:_files'
+- '(- : *)--print-interpreter[Prints the ELF interpreter of the executable]'
+- '(- : *)--print-os-abi[Prints the OS ABI of the executable]'
++ '--set-interpreter[Change the dynamic loader of executable]:INTERPRETER:_files'
++ '(-)--print-interpreter[Prints the ELF interpreter of the executable]'
++ '(-)--print-os-abi[Prints the OS ABI of the executable]'
+ '--set-os-abi[Changes the OS ABI of the executable]:ABI:(none sysv hpux netbsd gnu linux solaris aix irix freebsd tru64 modesto openbsd arm_aeabi arm standalone)'
+- '(- : *)--print-soname[Prints DT_SONAME entry of .dynamic section]'
++ '(-)--print-soname[Prints DT_SONAME entry of .dynamic section]'
+ '--set-soname[Sets DT_SONAME entry of a library to SONAME]:SONAME'
+ '--set-rpath[Change the DT_RUNPATH of the executable or library to RUNPATH]:RUNPATH:_dirs'
+ '--remove-rpath[Removes the DT_RPATH or DT_RUNPATH entry of the executable or library]'
+ '--shrink-rpath[Remove from the DT_RUNPATH or DT_RPATH all directories that do not contain a library referenced by DT_NEEDED fields of the executable or library]'
+ '--allowed-rpath-prefixes[Combined with the "--shrink-rpath" option, this can be used for further rpath tuning]:PREFIXES'
+- '(- : *)--print-rpath[Prints the DT_RUNPATH or DT_RPATH for an executable or library]'
++ '(-)--print-rpath[Prints the DT_RUNPATH or DT_RPATH for an executable or library]'
+ '--force-rpath[Forces the use of the obsolete DT_RPATH in the file instead of DT_RUNPATH]'
+ '--add-needed[Adds a declared dependency on a dynamic library]:LIBRARY'
+- '*--replace-needed[Replaces a declared dependency on a dynamic library with another one]:a declared dependency:LIB_ORIG:another declared dependency:LIB_NEW'
++ '*--replace-needed[Replaces a declared dependency on a dynamic library with another one]:a declared dependency::another declared dependency'
+ '--remove-needed[Removes a declared dependency on LIBRARY]:LIBRARY'
+- '(- : *)--print-needed[Prints all DT_NEEDED entries of the executable]'
++ '(-)--print-needed[Prints all DT_NEEDED entries of the executable]'
+ '--no-default-lib[Marks the object so that the search for dependencies of this object will ignore any default library search paths]'
+ '--no-sort[Do not sort program headers or section headers]'
+ '--add-debug-tag[Adds DT_DEBUG tag to the .dynamic section if not yet present in an ELF object]'
+- '(- : *)--print-execstack[Prints the state of the executable flag of the GNU_STACK program header, if present]'
++ '(-)--print-execstack[Prints the state of the executable flag of the GNU_STACK program header, if present]'
+ '--clear-execstack[Clears the executable flag of the GNU_STACK program header, or adds a new header]'
+ '--set-execstack[Sets the executable flag of the GNU_STACK program header, or adds a new header]'
+ '--rename-dynamic-symbols[Renames dynamic symbols]:NAME_MAP_FILE'
+ '--output[Set the output file name]:FILE:_files'
+ '--debug[Prints details of the changes made to the input file]'
+- '--version[Shows the version of patchelf]'
++ "(- : *)"'--version[Shows the version of patchelf]'
+ "(- : *)"{-h,--help}'[Show list of command-line options]'
+ )
+
diff --git a/main/patchutils/APKBUILD b/main/patchutils/APKBUILD
index e166122c101..eb5dfe78640 100644
--- a/main/patchutils/APKBUILD
+++ b/main/patchutils/APKBUILD
@@ -3,7 +3,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=patchutils
pkgver=0.4.2
-pkgrel=0
+pkgrel=2
pkgdesc="A collection of programs for manipulating patch files"
options="!check" # 6 tests fail
url="http://cyberelk.net/tim/patchutils/"
diff --git a/main/pax-utils/APKBUILD b/main/pax-utils/APKBUILD
index b376070fcfc..ada6ab2a0c5 100644
--- a/main/pax-utils/APKBUILD
+++ b/main/pax-utils/APKBUILD
@@ -2,32 +2,38 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=pax-utils
-pkgver=1.3.4
-pkgrel=0
+pkgver=1.3.7
+pkgrel=2
pkgdesc="ELF related utils for ELF 32/64 binaries"
url="https://wiki.gentoo.org/wiki/Hardened/PaX_Utilities"
arch="all"
license="GPL-2.0-only"
depends="scanelf"
+makedepends_build="meson"
makedepends_host="linux-headers libcap-dev"
-makedepends="$makedepends_host"
checkdepends="bash python3 py3-elftools"
-[ -n "$BOOTSTRAP" ] && options="$options !check" # prevent python dependency
-source="https://dev.gentoo.org/~xen0n/distfiles/pax-utils-$pkgver.tar.xz"
subpackages="$pkgname-doc scanelf:_scanelf lddtreepax:_lddtreepax:noarch"
+[ -n "$BOOTSTRAP" ] && options="$options !check" # prevent python dependency
+source="https://dev.gentoo.org/~sam/distfiles/app-misc/pax-utils/pax-utils-$pkgver.tar.xz"
build() {
- make USE_CAP=yes
+ if [ -z "$BOOTSTRAP" ]; then
+ local lto="-Db_lto=true"
+ fi
+ abuild-meson \
+ $lto \
+ -Dlddtree_implementation=sh \
+ -Duse_seccomp=false \
+ . output
+ meson compile -C output
}
check() {
- # Use py3
- sed -i '1 s:^.*$:#!/usr/bin/python3:' lddtree.py
- make check
+ meson test --print-errorlogs --no-rebuild -C output
}
package() {
- make DESTDIR="$pkgdir/" install
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
# Don't conflict with main/lddtree
mv "$pkgdir"/usr/bin/lddtree "$pkgdir"/usr/bin/lddtreepax
@@ -37,18 +43,17 @@ _scanelf() {
depends=""
pkgdesc="Scan ELF binaries for stuff"
replaces="pax-utils"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/scanelf "$subpkgdir"/usr/bin/
+
+ amove usr/bin/scanelf
}
_lddtreepax() {
depends="python3 py3-elftools"
pkgdesc="Read and package ELF dependency trees"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/lddtreepax "$subpkgdir"/usr/bin
+ amove usr/bin/lddtreepax
}
sha512sums="
-44a475860823e8b70b1d09d69e5fba3ed8298511d07e1e7b09ce62237cb8b1ecee8fc2fc550d6853d0b9f8db3c350bf78ced49d5f210997b294dc10e36627fcd pax-utils-1.3.4.tar.xz
+f1b87a564573da838a02c4cc10e0d5f9754c3b004ecb172a6290b48a8179b30695ae556942457dfac3caf07b91dd56eb1d801475c35e9708e4d671aa507f9576 pax-utils-1.3.7.tar.xz
"
diff --git a/main/pciutils/APKBUILD b/main/pciutils/APKBUILD
index 3088a7b145a..b8724ec1e89 100644
--- a/main/pciutils/APKBUILD
+++ b/main/pciutils/APKBUILD
@@ -1,24 +1,21 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=pciutils
-pkgver=3.8.0
+pkgver=3.12.0
pkgrel=0
pkgdesc="PCI bus configuration space access library and tools"
url="http://mj.ucw.cz/pciutils.html"
arch="all"
license="GPL-2.0-only"
-depends="hwids-pci"
+depends="hwdata-pci"
makedepends="linux-headers"
options="!check"
subpackages="$pkgname-doc $pkgname-dev $pkgname-libs"
-source="https://www.kernel.org/pub/software/utils/pciutils/pciutils-$pkgver.tar.gz
- fix-linking-pci-malloc-Makefile.patch
- pread.patch
+source="$pkgname-$pkgver.tar.gz::https://github.com/pciutils/pciutils/archive/refs/tags/v$pkgver.tar.gz
"
build() {
- sed -i -e "106s/^/\#/" Makefile
- make OPT="$CFLAGS" ZLIB=no \
+ make OPT="$CFLAGS -fPIC -flto=auto" ZLIB=no \
SHARED=yes \
PREFIX=/usr \
SHAREDIR=/usr/share/hwdata \
@@ -31,14 +28,7 @@ package() {
SHARED=yes \
SHAREDIR="$pkgdir"/usr/share/hwdata \
MANDIR="$pkgdir"/usr/share/man \
- install
-
- install -d "$pkgdir"/usr/lib
- ln -s libpci.so.${pkgver%%.*} "$pkgdir"/usr/lib/libpci.so
- install -D -m 644 lib/libpci.pc "$pkgdir"/usr/lib/pkgconfig/libpci.pc
- for i in config.h header.h pci.h types.h; do
- install -D -m 644 lib/$i "$pkgdir"/usr/include/pci/$i
- done
+ install install-lib
# this is now supplied by the hwids package
rm -rf "$pkgdir"/usr/sbin/update-pciids
@@ -47,7 +37,5 @@ package() {
}
sha512sums="
-49b8ccc87cc82326744de7f0306c0245a5bb87740d3e96b18378cc07477ca176bd3ffaf699bfe9954d61381c57f65aa703c07fa6406fe2be289917dc1715600d pciutils-3.8.0.tar.gz
-520b39602078e4325d7dac2d460547b360f7b52c668d88cf3d776c59246c8cfcb537b7b4f50575da9d2fcea1e207b3e99626ce4f23df890d2565b7dac1db2d94 fix-linking-pci-malloc-Makefile.patch
-aa1d3272500180256929b39a5fc4ea38ddb6a9fad090d732832ded9cc396303cf56efc91cfdeb76edbcfefc9a7c8eb058562c3c2b09a9090a59d3e68c27cec62 pread.patch
+2157cda808acd685b985bd8b8e63bd868a042c6316859bb5bfd08f6de52172570dd6780fb3390a5abbf3b4c16d7e4bec05b4034caeee28b5a11cb3a8efc299ce pciutils-3.12.0.tar.gz
"
diff --git a/main/pciutils/fix-linking-pci-malloc-Makefile.patch b/main/pciutils/fix-linking-pci-malloc-Makefile.patch
deleted file mode 100644
index a2b5f01f11c..00000000000
--- a/main/pciutils/fix-linking-pci-malloc-Makefile.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- pciutils-3.2.1/Makefile.orig
-+++ pciutils-3.2.1/Makefile
-@@ -2,7 +2,7 @@
- # (c) 1998--2013 Martin Mares <mj@ucw.cz>
-
- OPT=-O2
--CFLAGS=$(OPT) -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes
-+CFLAGS=$(OPT) -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes -fPIC
-
- VERSION=3.2.1
- DATE=2013-11-10
diff --git a/main/pciutils/pread.patch b/main/pciutils/pread.patch
deleted file mode 100644
index 6e0843a6cca..00000000000
--- a/main/pciutils/pread.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- ./lib/pread.h.orig
-+++ ./lib/pread.h
-@@ -12,8 +12,8 @@
- * don't define it.
- */
-
--#if defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ > 0
--/* glibc 2.1 or newer -> pread/pwrite supported automatically */
-+#if (defined(__GLIBC__) && __GLIBC__ == 2 && __GLIBC_MINOR__ > 0) || (_POSIX_VERSION >= 200809L)
-+ /* glibc 2.1 or newer or posix 2008 -> pread/pwrite supported automatically */
-
- #elif defined(i386) && defined(__GLIBC__)
- /* glibc 2.0 on i386 -> call syscalls directly */
diff --git a/main/pcmciautils/APKBUILD b/main/pcmciautils/APKBUILD
index b4b0c8d07ba..cd2979ed083 100644
--- a/main/pcmciautils/APKBUILD
+++ b/main/pcmciautils/APKBUILD
@@ -1,33 +1,24 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=pcmciautils
pkgver=018
-pkgrel=1
+pkgrel=4
pkgdesc="Utilities for inserting and removing PCMCIA cards"
url="http://kernel.org/pub/linux/utils/kernel/pcmcia/pcmcia.html"
arch="all"
-license="GPL"
+license="GPL-2.0-only"
subpackages="$pkgname-doc"
-depends=
makedepends="sysfsutils-dev bison flex"
options="!check"
-source="https://sources.archlinux.org/other/${pkgname}/${pkgname}-${pkgver}.tar.xz
+source="https://sources.archlinux.org/other/pcmciautils/pcmciautils-$pkgver.tar.xz
unsigned.patch
disable_yywrap.patch
"
-builddir="$srcdir"/$pkgname-$pkgver
-
-prepare() {
- cd "$builddir"
- default_prepare || return 1
-}
build() {
- cd "$builddir"
- make -j1 LEX=flex || return 1
+ make -j1 LEX=flex
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir"/ install
ln -sf pccardctl "$pkgdir"/sbin/lspcmcia
}
diff --git a/main/pcre/APKBUILD b/main/pcre/APKBUILD
index 8c3bef5bb17..eb90e3abcf0 100644
--- a/main/pcre/APKBUILD
+++ b/main/pcre/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=pcre
pkgver=8.45
-pkgrel=2
+pkgrel=3
pkgdesc="Perl-compatible regular expression library"
url="https://www.pcre.org/"
arch="all"
@@ -26,6 +26,7 @@ source="https://downloads.sourceforge.net/project/pcre/pcre/$pkgver/pcre-$pkgver
prepare() {
default_prepare
+ update_config_sub
# update libtool so it won't use system libs when a sysroot is provided
libtoolize -f &&
@@ -41,6 +42,7 @@ build() {
mips*) export CPPFLAGS="$CPPFLAGS -DSLJIT_IS_FPU_AVAILABLE=0 -DSLJIT_MIPS_R1=1";;
s390x) _enable_jit="";;
riscv*) _enable_jit="";;
+ loongarch64) _enable_jit="";;
esac
./configure \
diff --git a/main/pcre2/APKBUILD b/main/pcre2/APKBUILD
index e32fb727dd2..bb65c1d6801 100644
--- a/main/pcre2/APKBUILD
+++ b/main/pcre2/APKBUILD
@@ -1,35 +1,34 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=pcre2
-pkgver=10.40
+pkgver=10.43
pkgrel=0
pkgdesc="Perl-compatible regular expression library"
url="https://pcre.org/"
arch="all"
license="BSD-3-Clause"
-depends_dev="libedit-dev zlib-dev"
+depends_dev="
+ libedit-dev
+ zlib-dev
+ "
makedepends="$depends_dev"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-tools
- libpcre2-16:_libpcre libpcre2-32:_libpcre"
+subpackages="
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-tools
+ libpcre2-16:_libpcre
+ libpcre2-32:_libpcre
+ "
source="https://github.com/PhilipHazel/pcre2/releases/download/pcre2-$pkgver/pcre2-$pkgver.tar.bz2"
-case "$CARCH" in
- s390x) _enable_jit="";; # https://bugs.exim.org/show_bug.cgi?id=2468
- riscv*) _enable_jit="" ;;
- *) _enable_jit="--enable-jit";;
-esac
-
# secfixes:
+# 10.41-r0:
+# - CVE-2022-41409
# 10.40-r0:
# - CVE-2022-1586
# - CVE-2022-1587
build() {
- case "$CARCH" in
- mips64*) export CPPFLAGS="$CPPFLAGS -DSLJIT_IS_FPU_AVAILABLE=0";;
- mips*) export CPPFLAGS="$CPPFLAGS -DSLJIT_IS_FPU_AVAILABLE=0 -DSLJIT_MIPS_R1=1";;
- esac
-
# Note: Forced -O3 is recommended (needed?) for Julia.
./configure \
CFLAGS="$CFLAGS -O3" \
@@ -42,19 +41,13 @@ build() {
--enable-pcre2-32 \
--enable-pcre2grep-libz \
--enable-pcre2test-libedit \
- --with-match-limit-depth=8192 \
- $_enable_jit
+ --enable-jit
make
}
-# Note: RunTest and pcre2_jit_test generates some binaries in .libs that needs
-# to disable MPROTECT on grsecurity kernel. That's why it's so complicated...
check() {
./RunTest
-
- if [ -n "$_enable_jit" ]; then
- ./pcre2_jit_test
- fi
+ ./pcre2_jit_test
}
package() {
@@ -65,17 +58,15 @@ _libpcre() {
local bits="${subpkgname##*-}"
pkgdesc="PCRE2 with $bits bit character support"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libpcre2-$bits.so* "$subpkgdir"/usr/lib/
+ amove usr/lib/libpcre2-$bits.so*
}
tools() {
pkgdesc="Auxiliary utilities for PCRE2"
- mkdir -p "$subpkgdir"/usr/
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+ amove usr/bin
}
sha512sums="
-00e7b48a6554b9127cb6fe24c5cacf72783416a9754ec88f62f73c52f46ed72c86c1869e62c91a31b2ff2cbafbbedabca44b3f1eb7670bc92f49d8401c7374e8 pcre2-10.40.tar.bz2
+8ac1520c32e9e5672404aaf6104e23c9ee5c3c28ad28ff101435599d813cbb20e0491a3fd34e012b4411b3e0366a4c6dfa3f02d093acaa6ff0ab25478bb7ade9 pcre2-10.43.tar.bz2
"
diff --git a/main/pcsc-lite/APKBUILD b/main/pcsc-lite/APKBUILD
index 6a215ab4712..726a5a8b25b 100644
--- a/main/pcsc-lite/APKBUILD
+++ b/main/pcsc-lite/APKBUILD
@@ -2,7 +2,7 @@
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=pcsc-lite
-pkgver=1.9.8
+pkgver=2.0.1
pkgrel=0
pkgdesc="Middleware to access a smart card using SCard API (PC/SC)"
url="https://pcsclite.apdu.fr/"
@@ -16,11 +16,11 @@ makedepends="
$depends_dev
flex
libcap-ng-utils
- perl
perl-dev
"
install="$pkgname.pre-install $pkgname.pre-upgrade"
subpackages="
+ $pkgname-static
$pkgname-dev
$pkgname-doc
$pkgname-spy-libs:spylibs
@@ -47,7 +47,8 @@ build() {
--enable-usbdropdir=/usr/lib/pcsc/drivers \
--disable-libsystemd \
--disable-polkit \
- --disable-strict
+ --disable-strict \
+ --enable-static
make
}
@@ -60,12 +61,9 @@ package() {
make DESTDIR="$pkgdir" install
- install -D -m755 "$srcdir/pcscd.initd" "$pkgdir/etc/init.d/pcscd"
+ install -D -m755 "$srcdir"/pcscd.initd "$pkgdir"/etc/init.d/pcscd
- mkdir -p "$pkgdir/usr/lib/pcsc/drivers"
-
- # grant sysfs access
- filecap "$pkgdir/usr/sbin/pcscd" "dac_override"
+ mkdir -p "$pkgdir"/usr/lib/pcsc/drivers
}
spylibs() {
@@ -86,10 +84,10 @@ dev() {
# move back the /usr/lib/libpcsclite.so
# see http://bugs.alpinelinux.org/issues/3236 (and 6392)
- mv "$subpkgdir/usr/lib/libpcsclite.so" "$pkgdir/usr/lib/libpcsclite.so"
+ mv "$subpkgdir"/usr/lib/libpcsclite.so "$pkgdir"/usr/lib/libpcsclite.so
}
sha512sums="
-6275eee849c5572264f5a1ef1ea2a2db5fec9c4129b348bd6e2c1d4444c46c945b8ecab682c003913e9d06da7034b383199b6e392ae178ffae296017e7c61812 pcsc-lite-1.9.8.tar.bz2
-df1dc4e38b3f843812c5bf88d12765bd9ffe6246868ab2ab61d4e2bcd5131687d07b530e4d339749a40d2d785bde6aac0ab98807b15f2c293c2bd53acf3090a9 pcscd.initd
+af007f00f43e8d897710580f6f27814c9e7d3ca489ff01edf2e3b979e46267915aa04d9c15f225a420fa681de936e42a1d4779d962717cf9a9f4a3d1ca31502b pcsc-lite-2.0.1.tar.bz2
+5a8b3cb5b4ed9884c1032ec3c4c51167b8771185e8ea4122e40de4a92135cc3687a1df43bc877cf5ebcfe9392a17035873d8c052d58243eb681a3e93a44c5773 pcscd.initd
"
diff --git a/main/pcsc-lite/pcscd.initd b/main/pcsc-lite/pcscd.initd
index a495303051b..f75f97d2adb 100644
--- a/main/pcsc-lite/pcscd.initd
+++ b/main/pcsc-lite/pcscd.initd
@@ -3,9 +3,11 @@ description="PC/SC Smart Card Daemon"
command=/usr/sbin/pcscd
# EXTRA_OPTS is for backward compatibility only (Alpine <3.16)
-command_args="${cfgfile:+--config $cfgfile} ${command_args:-$EXTRA_OPTS}"
+command_args="${cfgfile:+--config $cfgfile} --foreground ${command_args:-$EXTRA_OPTS}"
+command_background=true
command_user="pcscd:pcscd"
-pidfile=/run/pcscd/pcscd.pid
+pidfile=/run/pcscd.pid
+capabilities="^cap_dac_override"
depend() {
need localmount
diff --git a/main/perdition/APKBUILD b/main/perdition/APKBUILD
index 23e8c55a693..a33ae62b5a4 100644
--- a/main/perdition/APKBUILD
+++ b/main/perdition/APKBUILD
@@ -1,12 +1,12 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perdition
pkgver=2.2
-pkgrel=3
+pkgrel=6
pkgdesc="A Mail retrieval proxy"
url="http://horms.net/projects/perdition/"
arch="all"
license="GPL-2.0-or-later"
-makedepends="gdbm-dev openssl1.1-compat-dev popt-dev vanessa_adt-dev vanessa_logger-dev
+makedepends="gdbm-dev openssl-dev>3 popt-dev vanessa_adt-dev vanessa_logger-dev
vanessa_socket-dev"
install=$pkgname.pre-install
subpackages="$pkgname-doc $pkgname-openrc"
@@ -15,6 +15,11 @@ source="http://horms.net/projects/perdition/download/$pkgver/perdition-$pkgver.t
perdition.confd
"
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
./configure \
--build=$CBUILD \
diff --git a/main/perl-apache-logformat-compiler/APKBUILD b/main/perl-apache-logformat-compiler/APKBUILD
index 22d28702be0..37dce766cbb 100644
--- a/main/perl-apache-logformat-compiler/APKBUILD
+++ b/main/perl-apache-logformat-compiler/APKBUILD
@@ -1,28 +1,25 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-apache-logformat-compiler
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Apache-LogFormat-Compiler
pkgver=0.36
-pkgrel=1
-pkgdesc="Compile a log format string to perl-code"
-url="https://metacpan.org/release/Apache-LogFormat-Compiler"
+pkgrel=3
+pkgdesc="Compile a log format string to perl-code "
+url="https://metacpan.org/release/Apache-LogFormat-Compiler/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-posix-strftime-compiler"
-makedepends="perl-test-requires perl-http-message perl-try-tiny perl-uri perl-test-mocktime perl-module-build-tiny"
+makedepends="perl-dev perl-module-build-tiny perl-module-build"
+checkdepends="perl-uri perl-http-message perl-test-mocktime perl-test-requires perl-try-tiny"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/K/KA/KAZEBURO/Apache-LogFormat-Compiler-$pkgver.tar.gz"
-
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- perl Build.PL --installdirs vendor --destdir "$pkgdir"
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
./Build
}
@@ -31,8 +28,10 @@ check() {
}
package() {
- ./Build install
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="a6f7f0f9f98401a70e4bb6bd4862e9e520e8b968c5e0f25853da57b12bf6d67357ddc8d2fe985668520758e5745b5d7783f6c656c35efd823f4325f267fdbfee Apache-LogFormat-Compiler-0.36.tar.gz"
+sha512sums="
+a6f7f0f9f98401a70e4bb6bd4862e9e520e8b968c5e0f25853da57b12bf6d67357ddc8d2fe985668520758e5745b5d7783f6c656c35efd823f4325f267fdbfee Apache-LogFormat-Compiler-0.36.tar.gz
+"
diff --git a/main/perl-apache-session/APKBUILD b/main/perl-apache-session/APKBUILD
index f0a594eb8e6..589373a816a 100644
--- a/main/perl-apache-session/APKBUILD
+++ b/main/perl-apache-session/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-apache-session
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Apache-Session
pkgver=1.94
-pkgrel=0
+pkgrel=1
pkgdesc="A persistence framework for session data"
url="https://metacpan.org/release/Apache-Session/"
arch="noarch"
diff --git a/main/perl-archive-zip/APKBUILD b/main/perl-archive-zip/APKBUILD
index 3a91e892bec..b3126cb4703 100644
--- a/main/perl-archive-zip/APKBUILD
+++ b/main/perl-archive-zip/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-archive-zip
-_pkgname=Archive-Zip
+_pkgreal=Archive-Zip
pkgver=1.68
-pkgrel=1
+pkgrel=3
pkgdesc="Provide a perl interface to ZIP archive files."
url="https://metacpan.org/release/Archive-Zip"
arch="noarch"
@@ -13,7 +13,7 @@ checkdepends="perl-test-mockmodule perl-super perl-sub-identify perl-test-simple
subpackages="$pkgname-doc"
options="!check"
source="https://cpan.metacpan.org/authors/id/P/PH/PHRED/Archive-Zip-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
prepare() {
default_prepare
diff --git a/main/perl-astro-suntime/APKBUILD b/main/perl-astro-suntime/APKBUILD
index 68cf379eb12..4d6645280c2 100644
--- a/main/perl-astro-suntime/APKBUILD
+++ b/main/perl-astro-suntime/APKBUILD
@@ -1,10 +1,10 @@
# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-astro-suntime
_pkgreal=Astro-SunTime
pkgver=0.06
-pkgrel=3
+pkgrel=4
pkgdesc="A functional module for calculating sunrise/sunset times"
url="https://metacpan.org/release/Astro-SunTime/"
arch="noarch"
diff --git a/main/perl-async-mergepoint/APKBUILD b/main/perl-async-mergepoint/APKBUILD
index 06ddfcdfa14..17a21e3cc20 100644
--- a/main/perl-async-mergepoint/APKBUILD
+++ b/main/perl-async-mergepoint/APKBUILD
@@ -1,26 +1,24 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Sheila Aman <sheila@vulpine.house>
# Maintainer: Sheila Aman <sheila@vulpine.house>
pkgname=perl-async-mergepoint
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Async-MergePoint
pkgver=0.04
-pkgrel=3
+pkgrel=5
pkgdesc="resynchronise diverged control flow"
-url="https://metacpan.org/release/Async-MergePoint"
+url="https://metacpan.org/release/Async-MergePoint/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-module-build perl-test-fatal"
+makedepends="perl-dev perl-module-build perl-test-fatal"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Async-MergePoint-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- perl Build.PL installdirs=vendor
-}
-
build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
./Build
}
@@ -29,8 +27,10 @@ check() {
}
package() {
- ./Build install destdir="$pkgdir"
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="23ea745523795facfe32943c355693c4ee8a28946a94af5b207751cf07fc286e051ac8c7c2e2e33b90a922d3e233decff4da8a68b2b1f84099440d719e10dc8b Async-MergePoint-0.04.tar.gz"
+sha512sums="
+23ea745523795facfe32943c355693c4ee8a28946a94af5b207751cf07fc286e051ac8c7c2e2e33b90a922d3e233decff4da8a68b2b1f84099440d719e10dc8b Async-MergePoint-0.04.tar.gz
+"
diff --git a/main/perl-authen-sasl/APKBUILD b/main/perl-authen-sasl/APKBUILD
index aa5b6de0be2..b732c186b5e 100644
--- a/main/perl-authen-sasl/APKBUILD
+++ b/main/perl-authen-sasl/APKBUILD
@@ -1,8 +1,8 @@
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-authen-sasl
-_realname=Authen-SASL
-pkgver=2.16
-pkgrel=3
+_pkgreal=Authen-SASL
+pkgver=2.1700
+pkgrel=0
pkgdesc="SASL Authentication framework for perl"
url="https://metacpan.org/release/Authen-SASL"
arch="noarch"
@@ -10,9 +10,9 @@ license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-digest-hmac"
makedepends="perl-module-install"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/G/GB/GBARR/Authen-SASL-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/E/EH/EHUELS/Authen-SASL-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
@@ -30,4 +30,6 @@ package() {
find "$pkgdir" -name perllocal.pod -delete
}
-sha512sums="d472b8b07b8915e65a219c0a40a7b6f25ca4fb767df301f426224b8f6ebf24d66fcb4422a1f421c39631e84585af06f6c64e41abe11e1e505d03e43a9f86bd6f Authen-SASL-2.16.tar.gz"
+sha512sums="
+f2b7bef711535b2f11f2c75948c83df0d73cb830ecf101ecd36bc7435bf27677a526b5530e314798805d8a6c5be922909436ba2c9b84abedf7f36d2aa3e0727a Authen-SASL-2.1700.tar.gz
+"
diff --git a/main/perl-b-cow/APKBUILD b/main/perl-b-cow/APKBUILD
index bb90d1bfcd7..df63407ab36 100644
--- a/main/perl-b-cow/APKBUILD
+++ b/main/perl-b-cow/APKBUILD
@@ -4,7 +4,7 @@
pkgname=perl-b-cow
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=B-COW
-pkgver=0.004
+pkgver=0.007
pkgrel=2
pkgdesc="B::COW additional B helpers to check COW status"
url="https://metacpan.org/release/B-COW/"
@@ -32,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="97beaac8056e4aaeafb535a8e69f103632eb3746fa815313f84612414081155ab640299c18b4cb7b9ff0f61263cc1b9ce25de3313bbefce318163902a4503292 B-COW-0.004.tar.gz"
+sha512sums="
+889e5a57f679735f4f064bc59a7e4c1bec994cb123c83742a165e2ba62a17619e36659b3f0125b6dd6a15616da7100a9d04b66de293a8bf700847d294fe0a2c2 B-COW-0.007.tar.gz
+"
diff --git a/main/perl-b-hooks-endofscope/APKBUILD b/main/perl-b-hooks-endofscope/APKBUILD
index 59ff52efab7..94519ef1dc0 100644
--- a/main/perl-b-hooks-endofscope/APKBUILD
+++ b/main/perl-b-hooks-endofscope/APKBUILD
@@ -1,41 +1,38 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 4
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-b-hooks-endofscope
-_pkgreal=B-Hooks-EndOfScope
-pkgver=0.26
+pkgver=0.28
pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=B-Hooks-EndOfScope
pkgdesc="Execute code after a scope finished compilation"
url="https://metacpan.org/release/B-Hooks-EndOfScope/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl perl-sub-exporter-progressive perl-module-runtime perl-module-implementation perl-variable-magic"
-makedepends="perl-dev"
+depends="perl perl-sub-exporter-progressive perl-module-implementation"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/B-Hooks-EndOfScope-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-
- default_prepare
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
sha512sums="
-e7333f061889d5d97cd793ad557ec1a2c5a918c977f1af22ce004d5d67f7781fcf171f427c31ed6a2a2d02d12e6ad3e15e1c80cad498f83263ff384ab0ec297c B-Hooks-EndOfScope-0.26.tar.gz
+692d6ccc5d86f4fdd23491983ec4358a0be61d9ed23ab2e9a0b767395482447c44ff1a78e10ce72f393f542db3879712bc3077e74dbab13d902c302cae3750fe B-Hooks-EndOfScope-0.28.tar.gz
"
diff --git a/main/perl-boolean/APKBUILD b/main/perl-boolean/APKBUILD
index 86bb7939c81..d9e9e25a577 100644
--- a/main/perl-boolean/APKBUILD
+++ b/main/perl-boolean/APKBUILD
@@ -1,31 +1,29 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-boolean
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=boolean
pkgver=0.46
-pkgrel=2
+pkgrel=4
pkgdesc="Boolean support for Perl"
-url="https://metacpan.org/release/boolean"
+url="https://metacpan.org/release/boolean/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/I/IN/INGY/boolean-$pkgver.tar.gz"
-
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -34,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="910653882f501cbf9420d775a79a000c62632a98643ac5e9f3d99765652e7c8c073f251bc36f0b69c9b259762bebeaeac18376e78494977d912da538939bb296 boolean-0.46.tar.gz"
+sha512sums="
+910653882f501cbf9420d775a79a000c62632a98643ac5e9f3d99765652e7c8c073f251bc36f0b69c9b259762bebeaeac18376e78494977d912da538939bb296 boolean-0.46.tar.gz
+"
diff --git a/main/perl-business-hours/APKBUILD b/main/perl-business-hours/APKBUILD
index db4a3a86f6b..2c2a79251d6 100644
--- a/main/perl-business-hours/APKBUILD
+++ b/main/perl-business-hours/APKBUILD
@@ -1,31 +1,29 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-business-hours
-_pkgname=Business-Hours
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Business-Hours
pkgver=0.13
-pkgrel=2
-pkgdesc="Calculate business hours in a time period"
+pkgrel=4
+pkgdesc="Perl module for Business-Hours"
url="https://metacpan.org/release/Business-Hours/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-set-intspan"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/B/BP/BPS/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-prepare() {
- default_prepare
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
+source="https://cpan.metacpan.org/authors/id/B/BP/BPS/Business-Hours-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
- make test
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
@@ -33,4 +31,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="2fb0c5c017f4dd5eaeaf394b7534348473bf47009020d23d5fb642ae67a06d8041f6dae4d554e8e36412cecf447a300f30bcacf4f8aab3c357ea81b6a5c55d7c Business-Hours-0.13.tar.gz"
+sha512sums="
+2fb0c5c017f4dd5eaeaf394b7534348473bf47009020d23d5fb642ae67a06d8041f6dae4d554e8e36412cecf447a300f30bcacf4f8aab3c357ea81b6a5c55d7c Business-Hours-0.13.tar.gz
+"
diff --git a/main/perl-cache-cache/APKBUILD b/main/perl-cache-cache/APKBUILD
index 699fe8a0f36..4b934388933 100644
--- a/main/perl-cache-cache/APKBUILD
+++ b/main/perl-cache-cache/APKBUILD
@@ -1,29 +1,29 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Sheila Aman <sheila@vulpine.house>
# Maintainer: Sheila Aman <sheila@vulpine.house>
pkgname=perl-cache-cache
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Cache-Cache
pkgver=1.08
-pkgrel=3
-pkgdesc="Perl modules for cache-handling for applications"
+pkgrel=5
+pkgdesc="Perl module for Cache-Cache"
url="https://metacpan.org/release/Cache-Cache/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl perl-error perl-digest-sha1"
-makedepends="perl-ipc-sharelite"
+depends="perl perl-error perl-digest-sha1 perl-ipc-sharelite"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/Cache-Cache-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
+
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -32,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="7b0f215b9c765840a1ca1e831735aeff610288048c352889408d514d41820b9315d2de03712b4ad6637d9f0db59467240a0918c22c1257a3f87bc62add4f0e06 Cache-Cache-1.08.tar.gz"
+sha512sums="
+7b0f215b9c765840a1ca1e831735aeff610288048c352889408d514d41820b9315d2de03712b4ad6637d9f0db59467240a0918c22c1257a3f87bc62add4f0e06 Cache-Cache-1.08.tar.gz
+"
diff --git a/main/perl-cache-simple-timedexpiry/APKBUILD b/main/perl-cache-simple-timedexpiry/APKBUILD
index cd617bec17e..5552afffd53 100644
--- a/main/perl-cache-simple-timedexpiry/APKBUILD
+++ b/main/perl-cache-simple-timedexpiry/APKBUILD
@@ -1,19 +1,19 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-cache-simple-timedexpiry
-_pkgname="Cache-Simple-TimedExpiry"
+_pkgreal=Cache-Simple-TimedExpiry
pkgver=0.27
-pkgrel=3
+pkgrel=5
pkgdesc="Cache::Simple::TimedExpiry perl module"
url="https://metacpan.org/release/Cache-Simple-TimedExpiry/"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
makedepends="perl-module-install"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/J/JE/JESSE/Cache-Simple-TimedExpiry-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
diff --git a/main/perl-canary-stability/APKBUILD b/main/perl-canary-stability/APKBUILD
index b50d8a7d26d..9be3268efcc 100644
--- a/main/perl-canary-stability/APKBUILD
+++ b/main/perl-canary-stability/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
-# Maintainer:
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=perl-canary-stability
pkgver=2013
-pkgrel=1
+pkgrel=3
pkgdesc="CPAN/Canary-Stability - canary to check perl compatability for schmorp's modules"
url="https://metacpan.org/release/Canary-Stability"
arch="noarch"
@@ -14,20 +14,19 @@ source="https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN/Canary-Stability-$pkg
builddir="$srcdir"/Canary-Stability-$pkgver
build() {
- cd "$builddir"
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
make
}
check() {
- cd "$builddir"
make test
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="9dfb0e6d136048050aac7c29e1fc79dc2a7703c8800582aa837c5d9b9934c48bfcb0a9ef1c6b5bb7e71a10a709e7f7431b3c79ea12b8d9f374b33bfd4a3e468d Canary-Stability-2013.tar.gz"
+sha512sums="
+9dfb0e6d136048050aac7c29e1fc79dc2a7703c8800582aa837c5d9b9934c48bfcb0a9ef1c6b5bb7e71a10a709e7f7431b3c79ea12b8d9f374b33bfd4a3e468d Canary-Stability-2013.tar.gz
+"
diff --git a/main/perl-capture-tiny/APKBUILD b/main/perl-capture-tiny/APKBUILD
index 63f2f0af8c6..15dabf48fed 100644
--- a/main/perl-capture-tiny/APKBUILD
+++ b/main/perl-capture-tiny/APKBUILD
@@ -1,36 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-capture-tiny
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Capture-Tiny
pkgver=0.48
-pkgrel=2
+pkgrel=4
pkgdesc="Capture STDOUT and STDERR from Perl, XS or external programs"
url="https://metacpan.org/release/Capture-Tiny/"
arch="noarch"
license="Apache-2.0"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Capture-Tiny-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="96d140b33a5ee147804925353ec5b49b806fa9c98b4ac23ec9c9494828f52ac72fd6f69c08e14ada18e5187dc4cece3d72901ce07b12eef20595322161a98437 Capture-Tiny-0.48.tar.gz"
+sha512sums="
+96d140b33a5ee147804925353ec5b49b806fa9c98b4ac23ec9c9494828f52ac72fd6f69c08e14ada18e5187dc4cece3d72901ce07b12eef20595322161a98437 Capture-Tiny-0.48.tar.gz
+"
diff --git a/main/perl-carp-clan/APKBUILD b/main/perl-carp-clan/APKBUILD
index cb2783a03e7..d02131be56f 100644
--- a/main/perl-carp-clan/APKBUILD
+++ b/main/perl-carp-clan/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: Mika Havela <mika.havela@gmail.com>
# Maintainer: Mika Havela <mika.havela@gmail.com>
pkgname=perl-carp-clan
-_realname=Carp-Clan
+_pkgreal=Carp-Clan
pkgver=6.08
-pkgrel=1
+pkgrel=2
pkgdesc="Perl - Report errors from perspective of caller of a 'clan' of modules"
url="https://metacpan.org/pod/Carp::Clan"
arch="noarch"
@@ -12,9 +12,11 @@ depends="perl perl-test-exception"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/Carp-Clan-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
prepare() {
+ default_prepare
+
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
}
diff --git a/main/perl-carp/APKBUILD b/main/perl-carp/APKBUILD
index 54ddbcfce4e..5daae60440a 100644
--- a/main/perl-carp/APKBUILD
+++ b/main/perl-carp/APKBUILD
@@ -3,11 +3,11 @@
pkgname=perl-carp
_pkgreal=Carp
pkgver=1.50
-pkgrel=1
+pkgrel=3
pkgdesc="alternative warn and die for modules"
url="https://metacpan.org/release/Carp"
arch="noarch"
-license="GPL-1.0-or-later OR Artisitc-1.0-Perl"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX/Carp-$pkgver.tar.gz"
diff --git a/main/perl-cgi-emulate-psgi/APKBUILD b/main/perl-cgi-emulate-psgi/APKBUILD
index d5b42588f47..2f2b8bc9703 100644
--- a/main/perl-cgi-emulate-psgi/APKBUILD
+++ b/main/perl-cgi-emulate-psgi/APKBUILD
@@ -1,29 +1,31 @@
-# Automatically generated by apkbuild-cpan, template 2
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-cgi-emulate-psgi
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=CGI-Emulate-PSGI
pkgver=0.23
-pkgrel=2
+pkgrel=4
pkgdesc="PSGI adapter for CGI"
url="https://metacpan.org/release/CGI-Emulate-PSGI/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-http-message perl-cgi"
+makedepends="perl-dev"
checkdepends="perl-test-requires"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM/CGI-Emulate-PSGI-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
+check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make
+ make test
}
package() {
@@ -31,9 +33,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="0e1017175ccab53ef50993c9884990dc85c7cdb30744f4bac2df4486a63fd5fd24e7f4b0e473d39b1f2b4dfdcf12756016edbc39e0fb725c6c610c21e6a7f96a CGI-Emulate-PSGI-0.23.tar.gz"
+sha512sums="
+0e1017175ccab53ef50993c9884990dc85c7cdb30744f4bac2df4486a63fd5fd24e7f4b0e473d39b1f2b4dfdcf12756016edbc39e0fb725c6c610c21e6a7f96a CGI-Emulate-PSGI-0.23.tar.gz
+"
diff --git a/main/perl-cgi-fast/APKBUILD b/main/perl-cgi-fast/APKBUILD
index a4df536de02..7dc476e500c 100644
--- a/main/perl-cgi-fast/APKBUILD
+++ b/main/perl-cgi-fast/APKBUILD
@@ -4,7 +4,7 @@
pkgname=perl-cgi-fast
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=CGI-Fast
-pkgver=2.16
+pkgver=2.17
pkgrel=0
pkgdesc="CGI Interface for Fast CGI"
url="https://metacpan.org/release/CGI-Fast/"
@@ -32,5 +32,5 @@ package() {
}
sha512sums="
-50dce23855809f53c722a9ed7839469400baafdf8cf006cce4a7686a0e9a1a6ee500ffbd3bb418ecfa7d14efa3f9adb96c37dea8282a3d05b9c0e7e723bc7e37 CGI-Fast-2.16.tar.gz
+4e64442b4c5dab9ab25799e9c34020d4750047f387c0f4a392bdcc3f22d417ab9d60215c4e21d7b2824da026433e547d9e760bf6ab5e260cbcde85265031ceac CGI-Fast-2.17.tar.gz
"
diff --git a/main/perl-cgi-psgi/APKBUILD b/main/perl-cgi-psgi/APKBUILD
index 3070bc0637d..2919b64dd2b 100644
--- a/main/perl-cgi-psgi/APKBUILD
+++ b/main/perl-cgi-psgi/APKBUILD
@@ -1,30 +1,29 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-cgi-psgi
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=CGI-PSGI
pkgver=0.15
-pkgrel=3
+pkgrel=5
pkgdesc="Adapt CGI.pm to the PSGI protocol"
url="https://metacpan.org/release/CGI-PSGI/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-cgi"
-makedepends="perl-module-install"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/CGI-PSGI-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -33,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="5cdb32846dab5e35a81b52611bb109c66c72db98ddc6fe93a5b91335a1f03cc6ed396c415fb5ee311ce78d72e45e4986b5809569b6394d601af24d4d117fe96f CGI-PSGI-0.15.tar.gz"
+sha512sums="
+5cdb32846dab5e35a81b52611bb109c66c72db98ddc6fe93a5b91335a1f03cc6ed396c415fb5ee311ce78d72e45e4986b5809569b6394d601af24d4d117fe96f CGI-PSGI-0.15.tar.gz
+"
diff --git a/main/perl-cgi-session/APKBUILD b/main/perl-cgi-session/APKBUILD
index 085e139e0e3..5cee68102c8 100644
--- a/main/perl-cgi-session/APKBUILD
+++ b/main/perl-cgi-session/APKBUILD
@@ -1,19 +1,19 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-cgi-session
-_name=CGI-Session
+_pkgreal=CGI-Session
pkgver=4.48
-pkgrel=3
+pkgrel=5
pkgdesc="perl module for persistent session data in CGI applications"
url="https://metacpan.org/pod/CGI::Session"
arch="noarch"
-license="PerlArtistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
options="!check" # failing test
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/M/MA/MARKSTOS/CGI-Session-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- cd "$srcdir"/$_name-$pkgver
perl Makefile.PL INSTALLDIRS=vendor
make MAN1EXT=1p MAN3EXT=3pm
}
@@ -23,7 +23,6 @@ check() {
}
package() {
- cd "$srcdir"/$_name-$pkgver
make install MAN1EXT=1p MAN3EXT=3pm DESTDIR="$pkgdir"
find "$pkgdir" -name perllocal.pod -delete
find "$pkgdir" -name .packlist -delete
diff --git a/main/perl-cgi/APKBUILD b/main/perl-cgi/APKBUILD
index 6c02586cc73..daceb8895d2 100644
--- a/main/perl-cgi/APKBUILD
+++ b/main/perl-cgi/APKBUILD
@@ -1,41 +1,46 @@
-# Automatically generated by apkbuild-cpan, template 2
+# Automatically generated by apkbuild-cpan, template 4
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-cgi
-_pkgreal=CGI
-pkgver=4.54
+pkgver=4.64
pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=CGI
pkgdesc="Handle Common Gateway Interface requests and responses"
-url="https://metacpan.org/release/CGI"
+url="https://metacpan.org/release/CGI/"
arch="noarch"
license="Artistic-2.0"
-depends="perl perl-html-parser"
-checkdepends="perl-test-nowarnings perl-test-warn perl-test-deep"
+depends="perl perl-html-parser perl-uri"
+checkdepends="perl-test-nowarnings perl-test-warn"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/L/LE/LEEJO/CGI-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
+ make
}
-build() {
+check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make
+ make test
}
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
}
sha512sums="
-be7ecdd9eab81ad95d527aac2f10ef7a15322675fe002558c6ab4951f496a8964025b7d0426241fb3f61aba103964a40f99acc05a39c84a2434f70d90ac47be6 CGI-4.54.tar.gz
+1c94b0f1f952165381ec16a4f206edc6c4f7eec06d18004a87230cad4484ce86c631d18eddc0b86cadfc02ac182a9c143c07acea9e79913759e47f117ba87a4d CGI-4.64.tar.gz
"
diff --git a/main/perl-class-accessor-chained/APKBUILD b/main/perl-class-accessor-chained/APKBUILD
index f47af24470a..d554728f03b 100644
--- a/main/perl-class-accessor-chained/APKBUILD
+++ b/main/perl-class-accessor-chained/APKBUILD
@@ -1,37 +1,36 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-class-accessor-chained
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Class-Accessor-Chained
pkgver=0.01
-pkgrel=2
-pkgdesc="make chained accessors"
+pkgrel=4
+pkgdesc="Perl module for Class-Accessor-Chained"
url="https://metacpan.org/release/Class-Accessor-Chained/"
arch="noarch"
-license="GPL PerlArtistic"
-cpandepends="perl-class-accessor"
-cpanmakedepends=""
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends perl-module-build"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-class-accessor"
+makedepends="perl-dev perl-module-build"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/R/RC/RCLAMP/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/R/RC/RCLAMP/Class-Accessor-Chained-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- perl Build.PL installdirs=vendor || return 1
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
+ ./Build
}
-build() {
- cd "$_builddir"
- ./Build && ./Build test
+check() {
+ ./Build test
}
package() {
- cd "$_builddir"
- ./Build install destdir="$pkgdir" || return 1
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="b2728d12dd3bd01169b43ef6cc5d0e8f82660ed80f5473415025ce3d5e93c059cd9ef4fbad2b0481e0efc7478cbdff7bec0042ea3bd6bddac51d78ee5bf25a04 Class-Accessor-Chained-0.01.tar.gz"
+sha512sums="
+b2728d12dd3bd01169b43ef6cc5d0e8f82660ed80f5473415025ce3d5e93c059cd9ef4fbad2b0481e0efc7478cbdff7bec0042ea3bd6bddac51d78ee5bf25a04 Class-Accessor-Chained-0.01.tar.gz
+"
diff --git a/main/perl-class-accessor/APKBUILD b/main/perl-class-accessor/APKBUILD
index 9b37cc04d1c..a9d458c96da 100644
--- a/main/perl-class-accessor/APKBUILD
+++ b/main/perl-class-accessor/APKBUILD
@@ -2,14 +2,14 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-class-accessor
pkgver=0.51
-pkgrel=2
+pkgrel=4
pkgdesc="Class::Accessor perl module"
url="https://metacpan.org/pod/Class::Accessor"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
subpackages="$pkgname-doc"
-source="https://search.cpan.org/CPAN/authors/id/K/KA/KASEI/Class-Accessor-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/K/KA/KASEI/Class-Accessor-$pkgver.tar.gz"
builddir="$srcdir"/Class-Accessor-$pkgver
build() {
@@ -26,4 +26,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="be11acea4747c59e3e524c75d818e0391756cbc08eebff71dca280e737ce228209e76310649298e536e07db1c856d5a71dd64aefc55b49e33cfcb2b3439eab0b Class-Accessor-0.51.tar.gz"
+sha512sums="
+be11acea4747c59e3e524c75d818e0391756cbc08eebff71dca280e737ce228209e76310649298e536e07db1c856d5a71dd64aefc55b49e33cfcb2b3439eab0b Class-Accessor-0.51.tar.gz
+"
diff --git a/main/perl-class-container/APKBUILD b/main/perl-class-container/APKBUILD
index 237af60e681..17c25935e04 100644
--- a/main/perl-class-container/APKBUILD
+++ b/main/perl-class-container/APKBUILD
@@ -1,47 +1,36 @@
-# Automatically generated by apkbuild-cpan, template 2
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-class-container
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Class-Container
pkgver=0.13
-pkgrel=2
+pkgrel=4
pkgdesc="Glues object frameworks together transparently"
url="https://metacpan.org/release/Class-Container/"
arch="noarch"
-license="GPL PerlArtistic"
-cpandepends="perl-params-validate"
-cpanmakedepends=""
-cpancheckdepends=""
-depends="$cpandepends"
-makedepends="perl-dev perl-module-build $cpanmakedepends"
-checkdepends="$cpancheckdepends"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-params-validate"
+makedepends="perl-dev perl-module-build"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/K/KW/KWILLIAMS/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/K/KW/KWILLIAMS/Class-Container-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
-
- cd "$builddir"
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- perl Build.PL installdirs=vendor
-}
-
build() {
- cd "$builddir"
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
./Build
}
-package() {
- cd "$builddir"
- ./Build install destdir="$pkgdir"
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
check() {
- cd "$builddir"
./Build test
}
-sha512sums="c51284e377942930384e22ff8d17489fa279eecc87a68acd88bffd8a134d2f2930b40008df98d12bddc46845175d2ce9f630522379692c2f630f2618928c6acd Class-Container-0.13.tar.gz"
+package() {
+ ./Build install --destdir="$pkgdir"
+ find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
+}
+
+sha512sums="
+c51284e377942930384e22ff8d17489fa279eecc87a68acd88bffd8a134d2f2930b40008df98d12bddc46845175d2ce9f630522379692c2f630f2618928c6acd Class-Container-0.13.tar.gz
+"
diff --git a/main/perl-class-data-inheritable/APKBUILD b/main/perl-class-data-inheritable/APKBUILD
index dba2845a722..281f80e7559 100644
--- a/main/perl-class-data-inheritable/APKBUILD
+++ b/main/perl-class-data-inheritable/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-class-data-inheritable
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Class-Data-Inheritable
pkgver=0.09
-pkgrel=0
+pkgrel=1
pkgdesc="Inheritable, overridable class data"
url="https://metacpan.org/release/Class-Data-Inheritable/"
arch="noarch"
diff --git a/main/perl-class-inspector/APKBUILD b/main/perl-class-inspector/APKBUILD
index bd7e8bf54d9..0583b2aaeb2 100644
--- a/main/perl-class-inspector/APKBUILD
+++ b/main/perl-class-inspector/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-class-inspector
pkgver=1.36
-pkgrel=2
+pkgrel=3
pkgdesc="Class::Inspector perl module"
url="https://metacpan.org/release/Class-Inspector/"
arch="noarch"
diff --git a/main/perl-class-load/APKBUILD b/main/perl-class-load/APKBUILD
index af480f949fb..2979a708c25 100644
--- a/main/perl-class-load/APKBUILD
+++ b/main/perl-class-load/APKBUILD
@@ -1,36 +1,32 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-class-load
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Class-Load
pkgver=0.25
-pkgrel=2
+pkgrel=4
pkgdesc="A working (require Class::Name) and more"
url="https://metacpan.org/release/Class-Load/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="
perl perl-data-optlist perl-module-runtime perl-module-implementation perl-try-tiny
- perl-namespace-clean perl-package-stash
+ perl-package-stash
"
-makedepends="perl-test-fatal perl-test-requires"
-checkdepends="perl-test-needs"
+makedepends="perl-dev"
+checkdepends="perl-test-needs perl-test-fatal"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/Class-Load-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -39,4 +35,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="feacb4ae99358d3dc45b23b2d7cc814603e59a72424e7e0620d4939fa6d6206a1bb123c010b49013ce4764df11dc7c04fc1d7bd5783c61a391310bcb653e7ca4 Class-Load-0.25.tar.gz"
+sha512sums="
+feacb4ae99358d3dc45b23b2d7cc814603e59a72424e7e0620d4939fa6d6206a1bb123c010b49013ce4764df11dc7c04fc1d7bd5783c61a391310bcb653e7ca4 Class-Load-0.25.tar.gz
+"
diff --git a/main/perl-class-method-modifiers/APKBUILD b/main/perl-class-method-modifiers/APKBUILD
index 249f821545c..b7bb86ffd84 100644
--- a/main/perl-class-method-modifiers/APKBUILD
+++ b/main/perl-class-method-modifiers/APKBUILD
@@ -1,32 +1,30 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-class-method-modifiers
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Class-Method-Modifiers
-pkgver=2.13
-pkgrel=2
+pkgver=2.15
+pkgrel=1
pkgdesc="Provides Moose-like method modifiers"
url="https://metacpan.org/release/Class-Method-Modifiers/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-test-fatal perl-test-requires"
-checkdepends="perl-test-needs"
+makedepends="perl-dev"
+checkdepends="perl-test-needs perl-test-fatal"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/Class-Method-Modifiers-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -35,5 +33,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-
-sha512sums="379afff763b647b787dd2049d9a8b928ca88be34e50c91c0848c5652efb1e4b40d8cacd2a1d5f6ce7bb254b9e65801b7c1a710f9807458a129af0af470f5ebbe Class-Method-Modifiers-2.13.tar.gz"
+sha512sums="
+427d21418516ff296b5a536a2d1f13b81b92d36f1c17c2366bc65fd2f05bf6afc7d02a4257033f53ee14d806b43e8d4322c6eac256d1c0e892926c4e7f878995 Class-Method-Modifiers-2.15.tar.gz
+"
diff --git a/main/perl-class-mix/APKBUILD b/main/perl-class-mix/APKBUILD
index 2302e01bd30..c457b7e7774 100644
--- a/main/perl-class-mix/APKBUILD
+++ b/main/perl-class-mix/APKBUILD
@@ -1,29 +1,24 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-class-mix
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Class-Mix
pkgver=0.006
-pkgrel=2
-pkgdesc="Dynamic class mixing"
+pkgrel=4
+pkgdesc="dynamic class mixing"
url="https://metacpan.org/release/Class-Mix/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-params-classify"
-makedepends="perl-module-build"
+makedepends="perl-dev perl-module-build"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM/Class-Mix-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- perl Build.PL installdirs=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
./Build
}
@@ -32,8 +27,10 @@ check() {
}
package() {
- ./Build install destdir="$pkgdir"
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="f1e52d189a57b4a6e4b7b093cd561881bcccec03dcf7286d69b592865343ab413ab35e42c14dd92ceb0089df1df33df4ff2a502026fde060ef246e77c8d21af1 Class-Mix-0.006.tar.gz"
+sha512sums="
+f1e52d189a57b4a6e4b7b093cd561881bcccec03dcf7286d69b592865343ab413ab35e42c14dd92ceb0089df1df33df4ff2a502026fde060ef246e77c8d21af1 Class-Mix-0.006.tar.gz
+"
diff --git a/main/perl-class-returnvalue/APKBUILD b/main/perl-class-returnvalue/APKBUILD
index dd770dcf885..e9229f3bfe9 100644
--- a/main/perl-class-returnvalue/APKBUILD
+++ b/main/perl-class-returnvalue/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-class-returnvalue
pkgver=0.55
-pkgrel=3
+pkgrel=5
pkgdesc="Class::ReturnValue perl module"
url="https://metacpan.org/release/Class-ReturnValue/"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="Artistic-1.0-Perl"
depends="perl perl-devel-stacktrace"
makedepends="perl-module-install"
subpackages="$pkgname-doc"
diff --git a/main/perl-class-singleton/APKBUILD b/main/perl-class-singleton/APKBUILD
index e051676ec7e..5795d6dbdd8 100644
--- a/main/perl-class-singleton/APKBUILD
+++ b/main/perl-class-singleton/APKBUILD
@@ -4,8 +4,8 @@ pkgname=perl-class-singleton
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Class-Singleton
pkgver=1.6
-pkgrel=0
-pkgdesc="Implementation of a "Singleton" class "
+pkgrel=2
+pkgdesc="Implementation of a \"Singleton\" class"
url="https://metacpan.org/release/Class-Singleton/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
diff --git a/main/perl-class-tiny/APKBUILD b/main/perl-class-tiny/APKBUILD
index 3a39d3a4a95..7ee25d01155 100644
--- a/main/perl-class-tiny/APKBUILD
+++ b/main/perl-class-tiny/APKBUILD
@@ -1,28 +1,30 @@
-# Automatically generated by apkbuild-cpan, template 2
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-class-tiny
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Class-Tiny
pkgver=1.008
-pkgrel=1
+pkgrel=3
pkgdesc="Minimalist class construction"
url="https://metacpan.org/release/Class-Tiny/"
arch="noarch"
license="Apache-2.0"
depends="perl"
+makedepends="perl-dev"
+checkdepends="perl-test-failwarnings"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Class-Tiny-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
-
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
+check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make
+ make test
}
package() {
@@ -30,9 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="908eb8547e01036ef361f0a8623d028b1e733ea003fc227788b9c18d0db544a70dbe47de18822f9699a19156f36eac73caeb4849d44eea14ada1128afdb7efbd Class-Tiny-1.008.tar.gz"
+sha512sums="
+908eb8547e01036ef361f0a8623d028b1e733ea003fc227788b9c18d0db544a70dbe47de18822f9699a19156f36eac73caeb4849d44eea14ada1128afdb7efbd Class-Tiny-1.008.tar.gz
+"
diff --git a/main/perl-clone/APKBUILD b/main/perl-clone/APKBUILD
index 1f6c600f027..d7be3d8354a 100644
--- a/main/perl-clone/APKBUILD
+++ b/main/perl-clone/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-clone
-_pkgname=Clone
-pkgver=0.45
+_pkgreal=Clone
+pkgver=0.46
pkgrel=2
pkgdesc="Clone perl module"
url="https://metacpan.org/release/Clone"
@@ -12,9 +12,9 @@ depends="perl"
makedepends="perl-dev"
checkdepends="perl-b-cow"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC/Clone-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/G/GA/GARU/Clone-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
@@ -30,4 +30,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="4d91580fb60876cca7670411748e42e6af0eaba8fac25d60e7a50685ae7b1e697e12c8a2835693e3e4abf3c13c060a2740344eb804ec26ed274b895f599340af Clone-0.45.tar.gz"
+sha512sums="
+f8bb1010364e94c7cc8bba25681cd9fd737ec2935a8be960ac53099359729fc679190a115dd082fccd239b35762dee2b3be3adbddce37e4ceae6fe934fbad545 Clone-0.46.tar.gz
+"
diff --git a/main/perl-common-sense/APKBUILD b/main/perl-common-sense/APKBUILD
index 8959b403937..dda6a3d85dc 100644
--- a/main/perl-common-sense/APKBUILD
+++ b/main/perl-common-sense/APKBUILD
@@ -1,25 +1,28 @@
-# Automatically generated by apkbuild-cpan, template 1
-# Contributor:
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
pkgname=perl-common-sense
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=common-sense
pkgver=3.75
-pkgrel=2
-pkgdesc="Implementation of sane defaults for Perl programs"
-url="https://metacpan.org/release/common-sense"
+pkgrel=4
+pkgdesc="Perl module for common-sense"
+url="https://metacpan.org/release/common-sense/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN/common-sense-$pkgver.tar.gz"
-
-builddir="$srcdir"/$_pkgreal-$pkgver
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- perl Makefile.PL INSTALLDIRS=vendor
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -28,4 +31,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="cb6034d9ff721a4122e0215db8ad5279ec4b189c3364593d427d70a1e84a1583a0e1447e276aa9a4fcaeb2f9d47a465a5bc4c0f842c803d3ddf91755311f4af4 common-sense-3.75.tar.gz"
+sha512sums="
+cb6034d9ff721a4122e0215db8ad5279ec4b189c3364593d427d70a1e84a1583a0e1447e276aa9a4fcaeb2f9d47a465a5bc4c0f842c803d3ddf91755311f4af4 common-sense-3.75.tar.gz
+"
diff --git a/main/perl-compress-raw-bzip2/APKBUILD b/main/perl-compress-raw-bzip2/APKBUILD
index 2144ef8257e..699ea8511d9 100644
--- a/main/perl-compress-raw-bzip2/APKBUILD
+++ b/main/perl-compress-raw-bzip2/APKBUILD
@@ -1,25 +1,26 @@
+# Automatically generated by apkbuild-cpan, template 4
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-compress-raw-bzip2
-_pkgname=Compress-Raw-Bzip2
-pkgver=2.201
+pkgver=2.211
pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Compress-Raw-Bzip2
pkgdesc="Perl low-level interface to bzip2 compression library"
-url="https://metacpan.org/release/PMQS/Compress-Raw-Bzip2-$pkgver"
+url="https://metacpan.org/release/Compress-Raw-Bzip2/"
arch="all"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-dev"
-source="https://cpan.metacpan.org/authors/id/P/PM/PMQS/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-prepare() {
- default_prepare
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
+makedepends="bzip2-dev perl-dev"
+source="https://cpan.metacpan.org/authors/id/P/PM/PMQS/Compress-Raw-Bzip2-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 BUILD_BZIP2=0 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
make
}
@@ -30,12 +31,11 @@ check() {
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
# remove man pages already provided by perl-doc
rm -rf "$pkgdir"/usr/share/man
}
sha512sums="
-003f76be1b5204f417beafb9c05d1cbb900c512b36ad74fb8b995e634c3955649a61438b7056fd0bd2ec7860396e18b24faca7a18cd6be8fd9167c86227f8229 Compress-Raw-Bzip2-2.201.tar.gz
+d3eb1245c07b0c7834a76229fa0b46a6b444bb3bd46a901184a2105f234b5d080f64fe79dfe3fc97dedb2e60235db794cefef0f81adb248c03f9cf11a7c596d1 Compress-Raw-Bzip2-2.211.tar.gz
"
diff --git a/main/perl-compress-raw-zlib/APKBUILD b/main/perl-compress-raw-zlib/APKBUILD
index bd2b0154ecf..48895f8a021 100644
--- a/main/perl-compress-raw-zlib/APKBUILD
+++ b/main/perl-compress-raw-zlib/APKBUILD
@@ -1,21 +1,26 @@
+# Automatically generated by apkbuild-cpan, template 4
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-compress-raw-zlib
-_pkgname=Compress-Raw-Zlib
-pkgver=2.202
+pkgver=2.211
pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Compress-Raw-Zlib
pkgdesc="Perl low-level interface to zlib compression library"
-url="https://metacpan.org/release/Compress-Raw-Zlib"
+url="https://metacpan.org/release/Compress-Raw-Zlib/"
arch="all"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
makedepends="perl-dev zlib-dev"
-source="https://cpan.metacpan.org/authors/id/P/PM/PMQS/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+source="https://cpan.metacpan.org/authors/id/P/PM/PMQS/Compress-Raw-Zlib-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 BUILD_ZLIB=0 perl Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 BUILD_ZLIB=0 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
make
}
@@ -26,12 +31,11 @@ check() {
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
# man pages are already provided by perl-doc
rm -rf "$pkgdir"/usr/share/man
}
sha512sums="
-add25f83ecd83fe3beaad12a6f8b37ca046fdfccfa44c03f32b104a9ec6c132407dc606ba0e30fad67151f1b1d4f6886991b19948c12e2964df13a6daa703e72 Compress-Raw-Zlib-2.202.tar.gz
+463ddfec976dd20fa66172f39818521565736c65ef7abfabf3d53475e7baf87452644a06dd1051437a36820a00f874fc710d5ff7f8cea139cf06d324c34bb6da Compress-Raw-Zlib-2.211.tar.gz
"
diff --git a/main/perl-config-autoconf/APKBUILD b/main/perl-config-autoconf/APKBUILD
index e0b9eefdfa3..83ebaa9581b 100644
--- a/main/perl-config-autoconf/APKBUILD
+++ b/main/perl-config-autoconf/APKBUILD
@@ -1,12 +1,13 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-config-autoconf
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Config-AutoConf
pkgver=0.320
-pkgrel=0
-pkgdesc="Pure Perl implementation of some AutoConf macros"
-url="https://metacpan.org/release/Config-AutoConf"
+pkgrel=2
+pkgdesc="A module to implement some of AutoConf macros in pure perl."
+url="https://metacpan.org/release/Config-AutoConf/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-capture-tiny"
@@ -15,19 +16,14 @@ subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/A/AM/AMBS/Config-AutoConf-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
-
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
diff --git a/main/perl-config-grammar/APKBUILD b/main/perl-config-grammar/APKBUILD
index ae6c4305325..1e1159f0689 100644
--- a/main/perl-config-grammar/APKBUILD
+++ b/main/perl-config-grammar/APKBUILD
@@ -2,7 +2,7 @@
pkgname=perl-config-grammar
_pkgreal=Config-Grammar
pkgver=1.13
-pkgrel=2
+pkgrel=4
pkgdesc="A grammar-based, user-friendly config parser"
url="https://metacpan.org/release/Config-Grammar/"
arch="noarch"
@@ -11,22 +11,27 @@ depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/D/DS/DSCHWEI/$_pkgreal-$pkgver.tar.gz"
-_builddir="$srcdir/$_pkgreal-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
prepare() {
- cd "$_builddir"
+ default_prepare
+
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
}
build() {
- cd "$_builddir"
- make && make test
+ make
+}
+
+check() {
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="51b165ccec452e48906d3c8972bb68841de93f0ece11104fea837eebefa1569e921a7532f7e4a3d204e73cf4c9b592f8707fc4741481c99b67d1b7a3eb5644d9 Config-Grammar-1.13.tar.gz"
+sha512sums="
+51b165ccec452e48906d3c8972bb68841de93f0ece11104fea837eebefa1569e921a7532f7e4a3d204e73cf4c9b592f8707fc4741481c99b67d1b7a3eb5644d9 Config-Grammar-1.13.tar.gz
+"
diff --git a/main/perl-config-inifiles/APKBUILD b/main/perl-config-inifiles/APKBUILD
index 7c7479a22bb..350d219f253 100644
--- a/main/perl-config-inifiles/APKBUILD
+++ b/main/perl-config-inifiles/APKBUILD
@@ -1,39 +1,35 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-config-inifiles
-_pkgname=Config-IniFiles
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Config-IniFiles
pkgver=3.000003
-pkgrel=1
+pkgrel=3
pkgdesc="A module for reading .ini-style configuration files."
-url="https://metacpan.org/release/Config-IniFiles"
+url="https://metacpan.org/release/Config-IniFiles/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl perl-list-moreutils perl-io-stringy"
-makedepends="perl-module-build"
+depends="perl perl-io-stringy"
+makedepends="perl-dev perl-module-build"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-prepare() {
- default_prepare
-
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
+source="https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/Config-IniFiles-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make
+ perl Build.PL --installdirs=vendor
+ ./Build
}
check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
+ ./Build test
}
package() {
- make DESTDIR="$pkgdir" install
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="29278b7f6aaf9ffcc0cd8b48ca0e1f1084b10278e50764b2b93e3e9b156ef13d6e54f779f41d0a6cbf6e0b23da1b73a3bb83fbf873add0a604693a41312b91f5 Config-IniFiles-3.000003.tar.gz"
+sha512sums="
+29278b7f6aaf9ffcc0cd8b48ca0e1f1084b10278e50764b2b93e3e9b156ef13d6e54f779f41d0a6cbf6e0b23da1b73a3bb83fbf873add0a604693a41312b91f5 Config-IniFiles-3.000003.tar.gz
+"
diff --git a/main/perl-control-x10/APKBUILD b/main/perl-control-x10/APKBUILD
index 0cc9f82e2d7..fc7cdcba837 100644
--- a/main/perl-control-x10/APKBUILD
+++ b/main/perl-control-x10/APKBUILD
@@ -1,17 +1,17 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-control-x10
-_realname=ControlX10-CM11
+_pkgreal=ControlX10-CM11
pkgver=2.09
-pkgrel=4
+pkgrel=5
pkgdesc="Perl extension for X10 'ActiveHome' Controller"
url="https://metacpan.org/release/ControlX10-CM11"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/B/BB/BBIRTH/$_realname-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
+source="https://cpan.metacpan.org/authors/id/B/BB/BBIRTH/ControlX10-CM11-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
diff --git a/main/perl-convert-asn1/APKBUILD b/main/perl-convert-asn1/APKBUILD
index e9adba95924..f5b0de12547 100644
--- a/main/perl-convert-asn1/APKBUILD
+++ b/main/perl-convert-asn1/APKBUILD
@@ -4,7 +4,7 @@
pkgname=perl-convert-asn1
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Convert-ASN1
-pkgver=0.33
+pkgver=0.34
pkgrel=0
pkgdesc="Convert between perl data structures and ASN.1 encoded packets"
url="https://metacpan.org/release/Convert-ASN1/"
@@ -36,5 +36,5 @@ package() {
}
sha512sums="
-be66298816d41965d1d579ea60186f62d0f00585fbeba8422eee71e4ec4a06026d36eab5144c305da2525c5d652b5f1eed7ade039d93136bfc81d28b496c74f8 Convert-ASN1-0.33.tar.gz
+f19734b5c267705467b59ddb4c4c7e0e23916da2aac2ac59629fef1c06e033d032fd27c68533beb3f928c02d8780e52ada2092630c72ef3da4561eadafd7936a Convert-ASN1-0.34.tar.gz
"
diff --git a/main/perl-convert-binhex/APKBUILD b/main/perl-convert-binhex/APKBUILD
index 9f14f90ed0e..a9dae023d4b 100644
--- a/main/perl-convert-binhex/APKBUILD
+++ b/main/perl-convert-binhex/APKBUILD
@@ -1,30 +1,35 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-convert-binhex
-_realname=Convert-BinHex
+_pkgreal=Convert-BinHex
pkgver=1.125
-pkgrel=3
+pkgrel=7
pkgdesc="Extract data from Macintosh BinHex files"
url="https://metacpan.org/release/Convert-BinHex/"
arch="noarch"
-license="Artistic-1.0 GPL+"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
-install=
+checkdepends="perl-file-slurp perl-test-most"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/S/ST/STEPHEN/Convert-BinHex-$pkgver.tar.gz"
+options="!check" # checkdepends in community/
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- cd "$srcdir/$_realname-$pkgver"
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make || return 1
+check() {
+ make test
}
package() {
- cd "$srcdir/$_realname-$pkgver"
make DESTDIR="$pkgdir" install
# creates file collision among perl modules
find "$pkgdir" -name perllocal.pod -delete
}
-sha512sums="c088feb0d9dd2c56d79e4fe21494e5957f763bfb4afbd0335ba099f4babbc7790951897730faf097d61ebca4a262f6676a9532d8861c2deca5a6d61ffdd6f115 Convert-BinHex-1.125.tar.gz"
+sha512sums="
+c088feb0d9dd2c56d79e4fe21494e5957f763bfb4afbd0335ba099f4babbc7790951897730faf097d61ebca4a262f6676a9532d8861c2deca5a6d61ffdd6f115 Convert-BinHex-1.125.tar.gz
+"
diff --git a/main/perl-convert-color/APKBUILD b/main/perl-convert-color/APKBUILD
index ee9b12e72da..ff27f0e011d 100644
--- a/main/perl-convert-color/APKBUILD
+++ b/main/perl-convert-color/APKBUILD
@@ -1,37 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-convert-color
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Convert-Color
-pkgver=0.11
-pkgrel=2
+pkgver=0.17
+pkgrel=1
pkgdesc="color space conversions and named lookups"
url="https://metacpan.org/release/Convert-Color/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-list-utilsby perl-module-pluggable"
-makedepends="perl-test-number-delta perl-module-build"
+makedepends="perl-dev perl-module-build"
+checkdepends="perl-test2-suite rgb"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Convert-Color-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- perl Build.PL installdirs=vendor || return 1
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
+ ./Build
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- ./Build && ./Build test
+check() {
+ ./Build test
}
package() {
- cd "$_builddir"
- ./Build install destdir="$pkgdir" || return 1
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="add90dff917a8fbc553fbd67826bb66b59319f7331dc7e13c79c525b1cbc6ab2f01161a20caacf2de90b28794451b34e3f60b5f21a413177ba7e92a349fffaf6 Convert-Color-0.11.tar.gz"
+sha512sums="
+edcbdc0d2775b7e5f814fc3fd16d4e089f89a3141a0e8776bf783aade5a7f20fa05cb4a46bd01bf16d2d9f41af46bca72de087c56c02fd088fe8b619bc26cb27 Convert-Color-0.17.tar.gz
+"
diff --git a/main/perl-convert-tnef/APKBUILD b/main/perl-convert-tnef/APKBUILD
index a2613419159..f3ebb5b9327 100644
--- a/main/perl-convert-tnef/APKBUILD
+++ b/main/perl-convert-tnef/APKBUILD
@@ -1,29 +1,34 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-convert-tnef
-_realname=Convert-TNEF
+_pkgreal=Convert-TNEF
pkgver=0.18
-pkgrel=4
+pkgrel=7
pkgdesc="Perl module to read TNEF files"
url="https://metacpan.org/release/Convert-TNEF"
arch="noarch"
-license="Artistic-Perl-1.0 GPL+"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
+checkdepends="perl-io-stringy perl-mime-tools"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DO/DOUGW/$_realname-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/D/DO/DOUGW/Convert-TNEF-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- cd "$srcdir/$_realname-$pkgver"
-
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
make
}
+check() {
+ make test
+}
+
package() {
- cd "$srcdir/$_realname-$pkgver"
make DESTDIR="$pkgdir" install
# creates file collision among perl modules
find "$pkgdir" -name perllocal.pod -delete
}
-sha512sums="00cbe54169c535e6d6d3b53a06eb47808a129d6397c73b5f2b53b93efba20f81d078c16edb7b0108bc037e2cb7f1c92719633519ea17088442ea8f63864eaf07 Convert-TNEF-0.18.tar.gz"
+sha512sums="
+00cbe54169c535e6d6d3b53a06eb47808a129d6397c73b5f2b53b93efba20f81d078c16edb7b0108bc037e2cb7f1c92719633519ea17088442ea8f63864eaf07 Convert-TNEF-0.18.tar.gz
+"
diff --git a/main/perl-convert-uulib/APKBUILD b/main/perl-convert-uulib/APKBUILD
index f7c7e8e9ddd..47e18407bcb 100644
--- a/main/perl-convert-uulib/APKBUILD
+++ b/main/perl-convert-uulib/APKBUILD
@@ -1,15 +1,15 @@
# Automatically generated by apkbuild-cpan, template 3
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-convert-uulib
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Convert-UUlib
-pkgver=1.71
-pkgrel=1
+pkgver=1.8
+pkgrel=3
pkgdesc="Perl module for Convert-UUlib"
url="https://metacpan.org/release/Convert-UUlib/"
arch="all"
-license="(GPL-2.0-or-later OR Artistic-1.0-Perl) AND GPL-2.0-or-later AND ZLib"
+license="(GPL-1.0-or-later OR Artistic-1.0-Perl) AND GPL-2.0-or-later AND Zlib"
depends="perl perl-common-sense"
makedepends="perl-dev perl-canary-stability"
subpackages="$pkgname-doc"
@@ -33,5 +33,5 @@ package() {
}
sha512sums="
-6ca67737a29709903322f506063c4c65e17a15a2cef40959cbf1309ba608867516f554bdec426e217ec610f84e76197d41cb8a2ac7d57fb640728b0e2ae5ef31 Convert-UUlib-1.71.tar.gz
+4ea39cf36e7406c9e8a8e0c50778594f004b91a53f7aa0f90d8e127791d85bad00d8d5586bb35180b2605c5552567d0ae62f048de92fb85b9d99a8f14d9a0a40 Convert-UUlib-1.8.tar.gz
"
diff --git a/main/perl-cpan-meta-check/APKBUILD b/main/perl-cpan-meta-check/APKBUILD
index ba125445d2b..3f76e0cd24f 100644
--- a/main/perl-cpan-meta-check/APKBUILD
+++ b/main/perl-cpan-meta-check/APKBUILD
@@ -1,33 +1,29 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-cpan-meta-check
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=CPAN-Meta-Check
-pkgver=0.014
-pkgrel=2
+pkgver=0.018
+pkgrel=0
pkgdesc="Verify requirements in a CPAN::Meta object"
url="https://metacpan.org/release/CPAN-Meta-Check/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl perl-module-metadata>=1.000023"
-makedepends="perl-test-deep"
+depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/L/LE/LEONT/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/L/LE/LEONT/CPAN-Meta-Check-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -36,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="a10af09a7ce771ca3983adea8053d141750fd09849609a28e7f973831fd3a3ece55281841aec93c099154bb59135986da4983bf612ae4e956c45dbb3f2770f5e CPAN-Meta-Check-0.014.tar.gz"
+sha512sums="
+ea340287e4f14a5ea00f7fe0decc424ff3ac1af9615cf41905e36be37b1b5f3401d3d44d4aef1d0f4a253f46f0170e1a1607b669ab975ba78d7c1497f0583169 CPAN-Meta-Check-0.018.tar.gz
+"
diff --git a/main/perl-cpanel-json-xs/APKBUILD b/main/perl-cpanel-json-xs/APKBUILD
index f622426cb9a..135ae991e56 100644
--- a/main/perl-cpanel-json-xs/APKBUILD
+++ b/main/perl-cpanel-json-xs/APKBUILD
@@ -3,7 +3,7 @@
pkgname=perl-cpanel-json-xs
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Cpanel-JSON-XS
-pkgver=4.30
+pkgver=4.37
pkgrel=0
pkgdesc="cPanel fork of JSON::XS, fast and correct serializing"
url="https://metacpan.org/release/Cpanel-JSON-XS/"
@@ -31,7 +31,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-
sha512sums="
-5acb7374485624bef193f77e7338242fae41d89153cb941917b6bd01a40645f58566ea96ba7aecb356253bf93f43b107000a6c02b29d8229b98bde18ce3cff71 Cpanel-JSON-XS-4.30.tar.gz
+f1b5fc161711815f33b3e05a19111d9c94ef817c952eb3d317cb8bc3fd973acdb645a6b129cb21345dccf4a161de069f0ab2d3cb807e7f6b20ebe2527ef48978 Cpanel-JSON-XS-4.37.tar.gz
"
diff --git a/main/perl-cps/APKBUILD b/main/perl-cps/APKBUILD
index 5f3968ee60b..af201321d72 100644
--- a/main/perl-cps/APKBUILD
+++ b/main/perl-cps/APKBUILD
@@ -1,26 +1,25 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Sheila Aman <sheila@vulpine.house>
# Maintainer: Sheila Aman <sheila@vulpine.house>
pkgname=perl-cps
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=CPS
pkgver=0.19
-pkgrel=3
+pkgrel=5
pkgdesc="manage flow of control in Continuation-Passing Style"
url="https://metacpan.org/release/CPS/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl-future perl-sub-name"
-makedepends="perl-test-identity perl-test-refcount perl-test-fatal perl-dev perl-module-build"
+depends="perl perl-future"
+makedepends="perl-dev perl-module-build"
+checkdepends="perl-test-identity perl-test-refcount perl-test-fatal"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/CPS-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- perl Build.PL installdirs=vendor
-}
-
build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
./Build
}
@@ -29,8 +28,10 @@ check() {
}
package() {
- ./Build install destdir="$pkgdir"
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="58479ba56554c6028db34fccc3942eba9e6cd7bfd5a1ee90b540db6d3ed3ef3b61aee354829cde386bc2beef134ee057dd96a5fd1e074d1389f46c8c54a312b0 CPS-0.19.tar.gz"
+sha512sums="
+58479ba56554c6028db34fccc3942eba9e6cd7bfd5a1ee90b540db6d3ed3ef3b61aee354829cde386bc2beef134ee057dd96a5fd1e074d1389f46c8c54a312b0 CPS-0.19.tar.gz
+"
diff --git a/main/perl-crypt-des/APKBUILD b/main/perl-crypt-des/APKBUILD
index 32d8ee6f866..2d937c3fbb5 100644
--- a/main/perl-crypt-des/APKBUILD
+++ b/main/perl-crypt-des/APKBUILD
@@ -2,40 +2,32 @@
pkgname=perl-crypt-des
_pkgreal=Crypt-DES
pkgver=2.07
-pkgrel=10
-pkgdesc="unknown"
+pkgrel=14
+pkgdesc="Perl DES encryption module"
url="https://metacpan.org/release/Crypt-DES/"
arch="all"
-license="GPL PerlArtistic"
-cpandepends=""
-cpanmakedepends=""
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/D/DP/DPARIS/$_pkgreal-$pkgver.tar.gz
"
-_builddir="$srcdir/$_pkgreal-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
+build() {
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make && make test
+check() {
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="95d40280850290fb2f9b2f26be2f47f2241e0aeeb842bd02c56d667062d65b3b65b9a87c045cbee50604f95f8a0d0b033c92334520de19022decaf77f77c7678 Crypt-DES-2.07.tar.gz"
+sha512sums="
+95d40280850290fb2f9b2f26be2f47f2241e0aeeb842bd02c56d667062d65b3b65b9a87c045cbee50604f95f8a0d0b033c92334520de19022decaf77f77c7678 Crypt-DES-2.07.tar.gz
+"
diff --git a/main/perl-crypt-eksblowfish/APKBUILD b/main/perl-crypt-eksblowfish/APKBUILD
index 134bd14d18c..108e4b5732c 100644
--- a/main/perl-crypt-eksblowfish/APKBUILD
+++ b/main/perl-crypt-eksblowfish/APKBUILD
@@ -1,39 +1,36 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-crypt-eksblowfish
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Crypt-Eksblowfish
pkgver=0.009
-pkgrel=10
+pkgrel=13
pkgdesc="the Eksblowfish block cipher"
url="https://metacpan.org/release/Crypt-Eksblowfish/"
arch="all"
-license="GPL PerlArtistic"
-cpandepends="perl-class-mix"
-cpanmakedepends=" "
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends perl-module-build"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-class-mix"
+makedepends="perl-dev perl-module-build"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM/Crypt-Eksblowfish-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- perl Build.PL installdirs=vendor || return 1
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
+ ./Build
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- ./Build && ./Build test
+check() {
+ ./Build test
}
package() {
- cd "$_builddir"
- ./Build install destdir="$pkgdir" || return 1
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="ca66a1ca4fd71388f25dc77c943e2416ed8534576309dd75f19a7219457418140c1bd21887d61918c34d3d6f9e11ea822b4661d30c6edf7f3673bbcd9a00a51b Crypt-Eksblowfish-0.009.tar.gz"
+sha512sums="
+ca66a1ca4fd71388f25dc77c943e2416ed8534576309dd75f19a7219457418140c1bd21887d61918c34d3d6f9e11ea822b4661d30c6edf7f3673bbcd9a00a51b Crypt-Eksblowfish-0.009.tar.gz
+"
diff --git a/main/perl-crypt-openssl-guess/APKBUILD b/main/perl-crypt-openssl-guess/APKBUILD
index 3685dabdc42..008083e4545 100644
--- a/main/perl-crypt-openssl-guess/APKBUILD
+++ b/main/perl-crypt-openssl-guess/APKBUILD
@@ -4,8 +4,8 @@
pkgname=perl-crypt-openssl-guess
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Crypt-OpenSSL-Guess
-pkgver=0.13
-pkgrel=0
+pkgver=0.15
+pkgrel=1
pkgdesc="Guess OpenSSL include path"
url="https://metacpan.org/release/Crypt-OpenSSL-Guess/"
arch="noarch"
@@ -32,5 +32,5 @@ package() {
}
sha512sums="
-1b3286d536bcb7545be636e33b5ff37bf334fbb7f3a99f4fcb32cf1166b1bc7cc179e9d39af1c7ac537630a75066353a1d7a0ab97816757a444dc0068029da97 Crypt-OpenSSL-Guess-0.13.tar.gz
+d7527be1f07847fbafc10b30c00c43e7fdcd4db27535b16cac98c5b6507d138c14cebcdb3c4ef07dc3016a93fea95155548cc7d83a0309fbc13b7d3b9607bf5d Crypt-OpenSSL-Guess-0.15.tar.gz
"
diff --git a/main/perl-crypt-openssl-random/APKBUILD b/main/perl-crypt-openssl-random/APKBUILD
index 67936d29624..ea6e28b1682 100644
--- a/main/perl-crypt-openssl-random/APKBUILD
+++ b/main/perl-crypt-openssl-random/APKBUILD
@@ -1,37 +1,38 @@
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Automatically generated by apkbuild-cpan, template 4
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-crypt-openssl-random
-_pkgname=Crypt-OpenSSL-Random
-pkgver=0.15
-pkgrel=10
-pkgdesc="RSA encoding and decoding, using the openSSL libraries"
-url="https://metacpan.org/pod/Crypt::OpenSSL::Random"
+pkgver=0.16
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Crypt-OpenSSL-Random
+pkgdesc="OpenSSL/LibreSSL pseudo-random number generator access"
+url="https://metacpan.org/release/Crypt-OpenSSL-Random/"
arch="all"
-license="Artistic-1.0 GPL+"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-dev openssl1.1-compat-dev perl-crypt-openssl-guess"
+makedepends="perl-dev openssl-dev>3 perl-crypt-openssl-guess"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/R/RU/RURBAN/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-prepare() {
- default_prepare
-
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
-}
+source="https://cpan.metacpan.org/authors/id/R/RU/RURBAN/Crypt-OpenSSL-Random-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
make
}
-package() {
- make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
-sha512sums="bba8ce86b97ce2d6271be503efff6e6e0ff60a797282a2b7cb9c6c0592b69cc43344f9738b4790e5fc165a7273ff01e35ada481cf8c4dfde38cb7ad741d97530 Crypt-OpenSSL-Random-0.15.tar.gz"
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+832033ca87f36b34c9d4774cb01b6f96ef3b1dfd9441c504e534e12a25d1f95b6d3d59add2bbdf84680f2df41aebe87f01fa5b94b4d08e11ce91329b64edb29d Crypt-OpenSSL-Random-0.16.tar.gz
+"
diff --git a/main/perl-crypt-openssl-rsa/APKBUILD b/main/perl-crypt-openssl-rsa/APKBUILD
index a520d644cb7..a1419a23402 100644
--- a/main/perl-crypt-openssl-rsa/APKBUILD
+++ b/main/perl-crypt-openssl-rsa/APKBUILD
@@ -1,20 +1,19 @@
# Automatically generated by apkbuild-cpan, template 3
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-crypt-openssl-rsa
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Crypt-OpenSSL-RSA
-pkgver=0.32
+pkgver=0.33
pkgrel=3
pkgdesc="RSA encoding and decoding, using the openSSL libraries"
url="https://metacpan.org/release/Crypt-OpenSSL-RSA/"
arch="all"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-crypt-openssl-random"
-makedepends="perl-dev openssl1.1-compat-dev perl-crypt-openssl-guess"
+makedepends="perl-dev openssl-dev>3 perl-crypt-openssl-guess"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/T/TO/TODDR/Crypt-OpenSSL-RSA-$pkgver.tar.gz
- no-sslv23-padding.patch"
+source="https://cpan.metacpan.org/authors/id/T/TO/TODDR/Crypt-OpenSSL-RSA-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
build() {
@@ -34,6 +33,5 @@ package() {
}
sha512sums="
-2972611a8fa4e9c44fd09c9e7fa32f0abd377230f14dcdfa99edab87bba2199c6a0cab4d1e08bdf3057959c0efd3343eb989e46f4befd572b15540e59f1e3c64 Crypt-OpenSSL-RSA-0.32.tar.gz
-29adc89126f829303add1a7b211e8282334bfd8d694b7a7a07df7e230cba2a0845a65454b3a33420ddabe00e7ce66325fa18661736e53be8a664f79e3bcfc65d no-sslv23-padding.patch
+7bfa802ec41925ec9fa6937c5eea0d21f6f554a1d1d57ed679ed03b260cf08c0a397df11880de6d67abacfd843ad2c4f28b20ac58d80e183c2a83c91deb926bf Crypt-OpenSSL-RSA-0.33.tar.gz
"
diff --git a/main/perl-crypt-openssl-rsa/no-sslv23-padding.patch b/main/perl-crypt-openssl-rsa/no-sslv23-padding.patch
deleted file mode 100644
index 465a0c55b58..00000000000
--- a/main/perl-crypt-openssl-rsa/no-sslv23-padding.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- Crypt-OpenSSL-RSA-0.32.orig/RSA.xs
-+++ Crypt-OpenSSL-RSA-0.32/RSA.xs
-@@ -640,12 +640,6 @@
- CODE:
- p_rsa->padding = RSA_PKCS1_OAEP_PADDING;
-
--void
--use_sslv23_padding(p_rsa)
-- rsaData* p_rsa;
-- CODE:
-- p_rsa->padding = RSA_SSLV23_PADDING;
--
- # Sign text. Returns the signature.
-
- SV*
diff --git a/main/perl-crypt-rijndael/APKBUILD b/main/perl-crypt-rijndael/APKBUILD
index 077cb8b82be..4b75bb57e12 100644
--- a/main/perl-crypt-rijndael/APKBUILD
+++ b/main/perl-crypt-rijndael/APKBUILD
@@ -4,7 +4,7 @@ pkgname=perl-crypt-rijndael
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Crypt-Rijndael
pkgver=1.16
-pkgrel=2
+pkgrel=4
pkgdesc="Crypt::CBC compliant Rijndael encryption module"
url="https://metacpan.org/release/Crypt-Rijndael/"
arch="all"
diff --git a/main/perl-crypt-ssleay/APKBUILD b/main/perl-crypt-ssleay/APKBUILD
index 284cc3ab92d..4c5bf8bb5f1 100644
--- a/main/perl-crypt-ssleay/APKBUILD
+++ b/main/perl-crypt-ssleay/APKBUILD
@@ -1,48 +1,42 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Leonardo Arena <rnalrd@gmail.com>
# Maintainer:
pkgname=perl-crypt-ssleay
-_realname=Crypt-SSLeay
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Crypt-SSLeay
pkgver=0.72
-pkgrel=17
-pkgdesc="OpenSSL Support for LWP"
+pkgrel=21
+pkgdesc="OpenSSL support for LWP"
url="https://metacpan.org/release/Crypt-SSLeay/"
arch="all"
-license="GPL PerlArtistic"
-cpandepends=""
-cpanmakedepends=""
-depends="$cpandepends perl-path-class perl-try-tiny"
-makedepends="zlib-dev openssl1.1-compat-dev perl-dev $cpanmakedepends"
+license="Artistic-2.0"
+depends="perl perl-lwp-protocol-https"
+makedepends="perl-dev zlib-dev openssl-dev>3 perl-path-class perl-try-tiny"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/N/NA/NANIS/$_realname-$pkgver.tar.gz
- libressl.patch
+source="https://cpan.metacpan.org/authors/id/N/NA/NANIS/Crypt-SSLeay-$pkgver.tar.gz
Crypt-SSLeay-0.72-Fix-building-on-Perl-without-dot-in-INC.patch
+ libressl.patch
"
-
-builddir="$srcdir/$_realname-$pkgver"
-
-prepare() {
- cd "$builddir"
- default_prepare
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- cd "$builddir"
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
- cd "$builddir"
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="af7a2878df94e116e9aad9a0f028f2e4f89074aaf31672915162f86e55211632d65c1cb00f3ebd25644d77adf8eecdd244dba6a004d93ab90289ab34fe4caaf4 Crypt-SSLeay-0.72.tar.gz
+sha512sums="
+af7a2878df94e116e9aad9a0f028f2e4f89074aaf31672915162f86e55211632d65c1cb00f3ebd25644d77adf8eecdd244dba6a004d93ab90289ab34fe4caaf4 Crypt-SSLeay-0.72.tar.gz
+c8362c5d6afcdf08f70e7aefde8c1b0bcb798093dad66d3c54324b8ce1e758be021cbc36c2fe5d91782dc8cd2d75ac65ac12271280da4743638e4d1df88be3f8 Crypt-SSLeay-0.72-Fix-building-on-Perl-without-dot-in-INC.patch
2e64924c2213368c1043afa01b622c8040d59cdf469be444885fb8e1f5c61c6755b427290cf7bba6e33f30f378a1910c56a3ae4306e4bd0f32f3e16335ada453 libressl.patch
-c8362c5d6afcdf08f70e7aefde8c1b0bcb798093dad66d3c54324b8ce1e758be021cbc36c2fe5d91782dc8cd2d75ac65ac12271280da4743638e4d1df88be3f8 Crypt-SSLeay-0.72-Fix-building-on-Perl-without-dot-in-INC.patch"
+"
diff --git a/main/perl-crypt-x509/APKBUILD b/main/perl-crypt-x509/APKBUILD
index e105cc12a3f..1c87dd6aef8 100644
--- a/main/perl-crypt-x509/APKBUILD
+++ b/main/perl-crypt-x509/APKBUILD
@@ -1,28 +1,24 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-crypt-x509
-_pkgname=Crypt-X509
-pkgver=0.54
-pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Crypt-X509
+pkgver=0.55
+pkgrel=1
pkgdesc="Parse a X.509 certificate"
url="https://metacpan.org/release/Crypt-X509/"
arch="noarch"
-license="Artistic-1.0-Perl"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-convert-asn1"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/M/MR/MRSCOTTY/Crypt-X509-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-prepare() {
- default_prepare
-
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
@@ -36,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="df5b155322432e0a9cae2a9ef2408a2692891f1ccb8ca438d38a4671a16df367c860ed549eb307342a5e74b88ea75a4e78386f86092ee87f5b897c11987ee771 Crypt-X509-0.54.tar.gz"
+sha512sums="
+b7c72ccc57f132fa754e4372846b148914c2b4b94957716e3db55f2d7459f0d77fddb0aae9750191b887b9a5cea0dfc6704fb32a5bfbdebdb4f33a2ccfa3fb00 Crypt-X509-0.55.tar.gz
+"
diff --git a/main/perl-cryptx/APKBUILD b/main/perl-cryptx/APKBUILD
new file mode 100644
index 00000000000..160d41c9700
--- /dev/null
+++ b/main/perl-cryptx/APKBUILD
@@ -0,0 +1,41 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Timothy Legge <timlegge@gmail.com>
+# Maintainer: Timothy Legge <timlegge@gmail.com>
+pkgname=perl-cryptx
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=CryptX
+pkgver=0.080
+pkgrel=0
+pkgdesc="Cryptographic toolkit"
+url="https://metacpan.org/release/CryptX/"
+arch="all"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+makedepends="perl-dev"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/M/MI/MIK/CryptX-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+# secfixes:
+# 0.079-r0:
+# - CVE-2019-17362
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
+}
+
+sha512sums="
+5702f59f28c70858eb2e78046c6415a816d94f45214092d4e2e938c0655a37e58e5295b2a7f753ee42e0fe4c2ce5632c068d80c7b3055cce1ecb0e5784fca475 CryptX-0.080.tar.gz
+"
diff --git a/main/perl-css-minifier-xs/APKBUILD b/main/perl-css-minifier-xs/APKBUILD
index 8865041a8f4..b020e361d55 100644
--- a/main/perl-css-minifier-xs/APKBUILD
+++ b/main/perl-css-minifier-xs/APKBUILD
@@ -4,7 +4,7 @@ pkgname=perl-css-minifier-xs
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=CSS-Minifier-XS
pkgver=0.13
-pkgrel=2
+pkgrel=4
pkgdesc="XS based CSS minifier"
url="https://metacpan.org/release/CSS-Minifier-XS/"
arch="all"
diff --git a/main/perl-css-squish/APKBUILD b/main/perl-css-squish/APKBUILD
index cacb057f50a..6c11bd55488 100644
--- a/main/perl-css-squish/APKBUILD
+++ b/main/perl-css-squish/APKBUILD
@@ -2,36 +2,31 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-css-squish
pkgver=0.10
-pkgrel=2
+pkgrel=5
pkgdesc="CSS::Squish perl module"
url="https://metacpan.org/release/CSS-Squish/"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl perl-uri perl-test-longstring"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/T/TS/TSIBLEY/CSS-Squish-$pkgver.tar.gz"
-_builddir="$srcdir"/CSS-Squish-$pkgver
-prepare() {
- local i
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
-}
+builddir="$srcdir"/CSS-Squish-$pkgver
build() {
- cd "$_builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make && make test || return 1
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="82140c51a1e0cbed5e63a04134f56f8dcc0b383aa6b7b40574cf6636d3f92373cdd0eb474045daa8c5769cea7cd2b60bc7b36804ebea090541174d9a9e0ba6ac CSS-Squish-0.10.tar.gz"
+sha512sums="
+82140c51a1e0cbed5e63a04134f56f8dcc0b383aa6b7b40574cf6636d3f92373cdd0eb474045daa8c5769cea7cd2b60bc7b36804ebea090541174d9a9e0ba6ac CSS-Squish-0.10.tar.gz
+"
diff --git a/main/perl-data-guid/APKBUILD b/main/perl-data-guid/APKBUILD
index f6aec246d0a..052f62239eb 100644
--- a/main/perl-data-guid/APKBUILD
+++ b/main/perl-data-guid/APKBUILD
@@ -4,8 +4,8 @@
pkgname=perl-data-guid
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Data-GUID
-pkgver=0.050
-pkgrel=0
+pkgver=0.051
+pkgrel=1
pkgdesc="globally unique identifiers"
url="https://metacpan.org/release/Data-GUID/"
arch="noarch"
@@ -32,5 +32,5 @@ package() {
}
sha512sums="
-64a081261e740602ea2e1ca833f0a5df9790b69f199c7b9d7936318fa307d2e473610f592499aa5cce48ce150e80601cd1d5238b6186f608b3e794e4d3377532 Data-GUID-0.050.tar.gz
+75b22311e8ac3b84a82187e4b6d9877de0282c09f723899a6ac423643ab6bf2e49ee20ddd210ed809e0698950d75885bb8a6986c6b2dc8cfbf5e68032f6a3530 Data-GUID-0.051.tar.gz
"
diff --git a/main/perl-data-hexdump/APKBUILD b/main/perl-data-hexdump/APKBUILD
index 054af0db6ed..1ce19cce5cf 100644
--- a/main/perl-data-hexdump/APKBUILD
+++ b/main/perl-data-hexdump/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-data-hexdump
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Data-HexDump
pkgver=0.04
-pkgrel=0
+pkgrel=1
pkgdesc="Perl module for Data-HexDump"
url="https://metacpan.org/release/Data-HexDump/"
arch="noarch"
diff --git a/main/perl-data-optlist/APKBUILD b/main/perl-data-optlist/APKBUILD
index 2df7efee46b..5e76d5480cf 100644
--- a/main/perl-data-optlist/APKBUILD
+++ b/main/perl-data-optlist/APKBUILD
@@ -4,8 +4,8 @@
pkgname=perl-data-optlist
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Data-OptList
-pkgver=0.112
-pkgrel=0
+pkgver=0.114
+pkgrel=1
pkgdesc="parse and validate simple name/value option pairs"
url="https://metacpan.org/release/Data-OptList/"
arch="noarch"
@@ -32,5 +32,5 @@ package() {
}
sha512sums="
-79198ef244b4e5cb5201f938f228f20158ccdde76ff9d200b706104ddac5dc3ac8da3280ba335a60fd66d16202b803447ac7709a7d84e514d3a3dc59327ddc71 Data-OptList-0.112.tar.gz
+72f60ad7d9a6d87ffecfbc0f6f6d48dad2816dd4431d7e82e8ab834e0852da27420fd52fb2a1138254d80bf8b98b94b9fa25b878e1bb155221543a78219ee16a Data-OptList-0.114.tar.gz
"
diff --git a/main/perl-data-page-pageset/APKBUILD b/main/perl-data-page-pageset/APKBUILD
index 977fb5810b2..d68b410ad43 100644
--- a/main/perl-data-page-pageset/APKBUILD
+++ b/main/perl-data-page-pageset/APKBUILD
@@ -1,39 +1,36 @@
-# Automatically generated by apkbuild-cpan, template 1
-# Contributor:
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-data-page-pageset
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Data-Page-Pageset
pkgver=1.02
-pkgrel=3
+pkgrel=5
pkgdesc="change long page list to be shorter and well navigate"
url="https://metacpan.org/release/Data-Page-Pageset/"
arch="noarch"
-license="GPL PerlArtistic"
-cpandepends="perl-data-page perl-test-exception perl-class-accessor"
-cpanmakedepends=" "
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends perl-module-build"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-data-page perl-class-accessor"
+makedepends="perl-dev perl-module-build"
+checkdepends="perl-test-exception"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/C/CH/CHUNZI/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/C/CH/CHUNZI/Data-Page-Pageset-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- perl Build.PL installdirs=vendor || return 1
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
+ ./Build
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- ./Build && ./Build test
+check() {
+ ./Build test
}
package() {
- cd "$_builddir"
- ./Build install destdir="$pkgdir" || return 1
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="d6676511e6b9cb0c110d6f535120e04f110e53a18bf9ce65e6f346d616d9020cea6f7d9514e264fee0220ef100a1bce2e863d276fbaaa113ba8f920cf5bd2610 Data-Page-Pageset-1.02.tar.gz"
+sha512sums="
+d6676511e6b9cb0c110d6f535120e04f110e53a18bf9ce65e6f346d616d9020cea6f7d9514e264fee0220ef100a1bce2e863d276fbaaa113ba8f920cf5bd2610 Data-Page-Pageset-1.02.tar.gz
+"
diff --git a/main/perl-data-page/APKBUILD b/main/perl-data-page/APKBUILD
index 7ad0b27d384..68ebf78cb89 100644
--- a/main/perl-data-page/APKBUILD
+++ b/main/perl-data-page/APKBUILD
@@ -1,31 +1,29 @@
-# Automatically generated by apkbuild-cpan, template 1
-# Contributor:
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-data-page
-_pkgname=Data-Page
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Data-Page
pkgver=2.03
-pkgrel=2
+pkgrel=4
pkgdesc="help when paging through sets of results"
url="https://metacpan.org/release/Data-Page/"
arch="noarch"
-license="Artistic-1.0-Perl GPL-1.0-or-later"
-depends="perl perl-class-accessor-chained perl-test-exception"
-makedepends="perl-module-build"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-class-accessor-chained"
+makedepends="perl-dev"
+checkdepends="perl-test-exception"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/Data-Page-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-prepare() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- perl Makefile.PL installdirs=vendor
-}
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -34,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="5c0c411e8b03163b2b88b7ab6432def0ddcce48987e98868897e89d0220665537f23d9a56b6d544a5c6fb67f615a2db582764ebcaa612cb2a8906ba660fc3c59 Data-Page-2.03.tar.gz"
+sha512sums="
+5c0c411e8b03163b2b88b7ab6432def0ddcce48987e98868897e89d0220665537f23d9a56b6d544a5c6fb67f615a2db582764ebcaa612cb2a8906ba660fc3c59 Data-Page-2.03.tar.gz
+"
diff --git a/main/perl-data-uuid/APKBUILD b/main/perl-data-uuid/APKBUILD
index c0b0cd5a9f9..c45d32182f3 100644
--- a/main/perl-data-uuid/APKBUILD
+++ b/main/perl-data-uuid/APKBUILD
@@ -1,11 +1,11 @@
-# Automatically generated by apkbuild-cpan, template 3
+# Automatically generated by apkbuild-cpan, template 4
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-data-uuid
+pkgver=1.227
+pkgrel=0
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Data-UUID
-pkgver=1.226
-pkgrel=3
pkgdesc="Globally/Universally Unique Identifiers (GUIDs/UUIDs)"
url="https://metacpan.org/release/Data-UUID/"
arch="all"
@@ -14,12 +14,15 @@ license="osf-1990(variant)"
depends="perl"
makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/Data-UUID-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/G/GT/GTERMARS/Data-UUID-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
make
}
@@ -30,7 +33,8 @@ check() {
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="61c13b1aab3263d7bf94ecfde758acbdd986879144adbc436d32e5f5e03d70c8475984458681ab1d73d71bf5169b368c1f21a576ce996e225b6d74b5afd061fe Data-UUID-1.226.tar.gz"
+sha512sums="
+4b9ae792fba12232b49e799064c774b5a9b55b3019041e4ed0da6d7478b68815676295f888aa957dc4f0b8fca1fa88b3394992d2ea9ed79763769f262ad0835f Data-UUID-1.227.tar.gz
+"
diff --git a/main/perl-date-format/APKBUILD b/main/perl-date-format/APKBUILD
deleted file mode 100644
index b84050ecf0b..00000000000
--- a/main/perl-date-format/APKBUILD
+++ /dev/null
@@ -1,32 +0,0 @@
-# Contributor: Mika Havela <mika.havela@gmail.com>
-# Maintainer: Mika Havela <mika.havela@gmail.com>
-pkgname=perl-date-format
-_realname=TimeDate
-pkgver=2.33
-pkgrel=0
-pkgdesc="Perl - Date formating subroutines"
-url="https://metacpan.org/release/TimeDate"
-arch="noarch"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC/$_realname-$pkgver.tar.gz"
-
-builddir="$srcdir/$_realname-$pkgver"
-
-build() {
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- make
-}
-
-check() {
- make test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- # creates file collision among perl modules
- find "$pkgdir" -name perllocal.pod -delete
-}
-
-sha512sums="a3a20a0d9439e68bf621c66fad0598e6257345727be79c87c7cc99994b3a58eb738787fedb720beb069e9758ad1347c15313f64411806dd0f4dfbcca5061c820 TimeDate-2.33.tar.gz"
diff --git a/main/perl-datetime-format-mail/APKBUILD b/main/perl-datetime-format-mail/APKBUILD
index ce1a700012a..37862306528 100644
--- a/main/perl-datetime-format-mail/APKBUILD
+++ b/main/perl-datetime-format-mail/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-datetime-format-mail
pkgver=0.403
-pkgrel=2
+pkgrel=4
pkgdesc="DateTime::Format::Mail perl module"
url="https://metacpan.org/release/DateTime-Format-Mail/"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl perl-datetime perl-params-validate"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/B/BO/BOOK/DateTime-Format-Mail-$pkgver.tar.gz"
diff --git a/main/perl-datetime-format-w3cdtf/APKBUILD b/main/perl-datetime-format-w3cdtf/APKBUILD
index cd29cdc5963..90a4ca3b563 100644
--- a/main/perl-datetime-format-w3cdtf/APKBUILD
+++ b/main/perl-datetime-format-w3cdtf/APKBUILD
@@ -2,29 +2,23 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-datetime-format-w3cdtf
pkgver=0.08
-pkgrel=0
+pkgrel=4
pkgdesc="DateTime::Format::W3CDTF perl module"
url="https://metacpan.org/release/DateTime-Format-W3CDTF/"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl perl-datetime"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/G/GW/GWILLIAMS/DateTime-Format-W3CDTF-$pkgver.tar.gz"
-
builddir="$srcdir"/DateTime-Format-W3CDTF-$pkgver
-prepare() {
- default_prepare
- local i
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i ;;
- esac
- done
-}
build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- make && make test
+ make
+}
+
+check() {
+ make test
}
package() {
@@ -32,4 +26,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="d7b04870909432a7a98189dc2239ec201f9132e5a5b6db5d3284351a7db31324c1451538880d215073f8fa1e0f909b99a51354e8e87d6c4cf11d90ea184c9b4e DateTime-Format-W3CDTF-0.08.tar.gz"
+sha512sums="
+d7b04870909432a7a98189dc2239ec201f9132e5a5b6db5d3284351a7db31324c1451538880d215073f8fa1e0f909b99a51354e8e87d6c4cf11d90ea184c9b4e DateTime-Format-W3CDTF-0.08.tar.gz
+"
diff --git a/main/perl-datetime-locale/APKBUILD b/main/perl-datetime-locale/APKBUILD
index d37aad88a69..65745e1114b 100644
--- a/main/perl-datetime-locale/APKBUILD
+++ b/main/perl-datetime-locale/APKBUILD
@@ -1,38 +1,49 @@
+# Automatically generated by apkbuild-cpan, template 4
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-datetime-locale
-pkgver=1.35
+pkgver=1.42
pkgrel=0
-pkgdesc="DateTime::Locale perl module"
-url="https://metacpan.org/release/DateTime-Locale"
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=DateTime-Locale
+pkgdesc="Localization support for DateTime.pm"
+url="https://metacpan.org/release/DateTime-Locale/"
arch="noarch"
-license="Artistic-1.0-Perl GPL-1.0-or-later"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="
- perl perl-cpan-meta-check perl-dist-checkconflicts perl-file-sharedir
- perl-file-sharedir-install perl-list-moreutils perl-namespace-autoclean perl-params-validate
- perl-params-validationcompiler perl-scalar-list-utils perl-test-fatal perl-test-requires
- perl-test-warnings
+ perl perl-dist-checkconflicts perl-file-sharedir perl-namespace-autoclean
+ perl-params-validationcompiler perl-specio
+ "
+makedepends="perl-dist-checkconflicts perl-file-sharedir-install"
+checkdepends="
+ perl-test-file-sharedir perl-ipc-system-simple perl-path-tiny perl-test2-plugin-nowarnings
+ perl-test2-suite perl-cpan-meta-check
"
-checkdepends="perl-test-file-sharedir perl-ipc-system-simple"
subpackages="$pkgname-doc"
-source="https://search.cpan.org/CPAN/authors/id/D/DR/DROLSKY/DateTime-Locale-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/DateTime-Locale-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-builddir="$srcdir"/DateTime-Locale-$pkgver
build() {
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
+ # These just seem to be examples, and are available as man pages
+ rm -v "$pkgdir"/usr/share/perl5/vendor_perl/DateTime/Locale/*.pod
+}
sha512sums="
-74dc707b499e70d5ec74b6b0c907b184eaba775eeae49348b5f14da960ef9d6d4ed47288755f2d3da817b920690445681e09e809a49702dab5e55ecd4ae4c39f DateTime-Locale-1.35.tar.gz
+12b29d3b8f4511217125efc0607f382960941759ceb9a102e3934dced2b58eb1b509c0b7b1dcbe49638586e67cc537ec065e7f2280bd3f983c28919f8bcc0ca0 DateTime-Locale-1.42.tar.gz
"
diff --git a/main/perl-datetime-timezone/APKBUILD b/main/perl-datetime-timezone/APKBUILD
index bd9a8f41ce4..598a5f0a5cb 100644
--- a/main/perl-datetime-timezone/APKBUILD
+++ b/main/perl-datetime-timezone/APKBUILD
@@ -1,17 +1,18 @@
-# Automatically generated by apkbuild-cpan, template 3
+# Automatically generated by apkbuild-cpan, template 4
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-datetime-timezone
+pkgver=2.62
+pkgrel=0
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=DateTime-TimeZone
-pkgver=2.52
-pkgrel=0
pkgdesc="Time zone object base class and factory"
url="https://metacpan.org/release/DateTime-TimeZone/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl perl-specio perl-class-singleton perl-module-runtime
- perl-params-validationcompiler perl-try-tiny perl-namespace-autoclean
+depends="
+ perl perl-specio perl-class-singleton perl-module-runtime perl-params-validationcompiler
+ perl-try-tiny perl-namespace-autoclean
"
checkdepends="perl-test-requires perl-test-fatal"
subpackages="$pkgname-doc"
@@ -20,7 +21,10 @@ builddir="$srcdir/$_pkgreal-$pkgver"
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
make
}
@@ -31,10 +35,8 @@ check() {
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-
sha512sums="
-697aaaf6e312b7fa57af0449ea14893f04e5c4c657cf34cb5f5892d7dd2d69532c68ff2b086472f39e26f119106fc4671395fc4fe6a8dd131f018abf5765d7af DateTime-TimeZone-2.52.tar.gz
+7608a47b5acbf61904f66cc945bd96ff1042af6a6d3077905d238239dfdb8cd4a4dc3c75d21c37308d2ed716c64557c7a0fae41e47403a6771cf2f53cbb22afb DateTime-TimeZone-2.62.tar.gz
"
diff --git a/main/perl-datetime/APKBUILD b/main/perl-datetime/APKBUILD
index 1507918e305..70818138f5b 100644
--- a/main/perl-datetime/APKBUILD
+++ b/main/perl-datetime/APKBUILD
@@ -4,8 +4,8 @@
pkgname=perl-datetime
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=DateTime
-pkgver=1.58
-pkgrel=1
+pkgver=1.65
+pkgrel=0
pkgdesc="A date and time object for Perl"
url="https://metacpan.org/release/DateTime/"
arch="all"
@@ -35,7 +35,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-
sha512sums="
-2d337c06bb5125c4b81f5a1bff3c83366e53c86765333d76b7e80f39f209b1e1d3a3251395fb5f5778dc35ab356823a9e1d3f7a4f84ff919cc202b641487be31 DateTime-1.58.tar.gz
+53b8bb5085420104d9cd2b6df076d353684ec6f347caf17f858c9c09e052aa19421bf980d130dbbe0094b791ff071ee99d8222509717008e5a3cd354639f7720 DateTime-1.65.tar.gz
"
diff --git a/main/perl-dbd-mysql/APKBUILD b/main/perl-dbd-mysql/APKBUILD
index 54fa8f04280..cb47869c398 100644
--- a/main/perl-dbd-mysql/APKBUILD
+++ b/main/perl-dbd-mysql/APKBUILD
@@ -2,19 +2,19 @@
# Contributor: Jeff Bilyk <jbilyk at gmail>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-dbd-mysql
-_pkgname=DBD-mysql
-pkgver=4.050
-pkgrel=5
+_pkgreal=DBD-mysql
+pkgver=4.052
+pkgrel=0
pkgdesc="Perl CPAN DBD::Mysql module"
-url="http://search.cpan.org/~capttofu/DBD-mysql/"
+url="https://metacpan.org/dist/DBD-mysql"
arch="all"
-license="GPL PerlArtistic"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-dbi"
-makedepends="perl perl-dev mariadb-connector-c-dev zlib-dev perl-devel-checklib"
+makedepends="perl-dev mariadb-connector-c-dev zlib-dev perl-devel-checklib"
source="https://cpan.metacpan.org/authors/id/D/DV/DVEEDEN/DBD-mysql-$pkgver.tar.gz"
subpackages="$pkgname-doc"
options="!check" # requires a running dbms
-builddir="$srcdir"/${_pkgname}-$pkgver
+builddir="$srcdir/$_pkgreal-$pkgver"
prepare() {
default_prepare
@@ -23,20 +23,19 @@ prepare() {
}
build() {
- cd "$builddir"
make
}
-package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
- find "$pkgdir" -name perllocal.pod -delete
-}
-
check() {
- cd "$builddir"
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
-sha512sums="910f5b4ba7a7890d50a79f37d04ec8971a4f62acd0fe30bf3ab634f66e3128f0cd6513e5c9da8c807a0f4477d0cc766682ea8dd0d8072d02821b78df51f37879 DBD-mysql-4.050.tar.gz"
+package() {
+ make DESTDIR="$pkgdir" install
+ find "$pkgdir" -name perllocal.pod -delete
+}
+
+sha512sums="
+7dd04209e656cc0221a757fa79bb979f4baf7834c2235b43754346792b416db7886df2907376b0c40f2def567d7c3ec153266ab5d57beb01f4eb2613a7467619 DBD-mysql-4.052.tar.gz
+"
diff --git a/main/perl-dbd-odbc/APKBUILD b/main/perl-dbd-odbc/APKBUILD
index f3695888fd2..8fd9fda8655 100644
--- a/main/perl-dbd-odbc/APKBUILD
+++ b/main/perl-dbd-odbc/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: Jeff Bilyk <jbilyk at gmail>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-dbd-odbc
-_pkgname=DBD-ODBC
+_pkgreal=DBD-ODBC
pkgver=1.61
-pkgrel=3
+pkgrel=5
pkgdesc="Perl CPAN DBD::ODBC module"
url="https://metacpan.org/release/DBD-ODBC/"
arch="all"
@@ -12,9 +12,11 @@ depends="perl perl-dbi"
makedepends="perl-dev unixodbc-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/M/MJ/MJEVANS/DBD-ODBC-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
+builddir="$srcdir/$_pkgreal-$pkgver"
prepare() {
+ default_prepare
+
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
}
diff --git a/main/perl-dbd-pg/APKBUILD b/main/perl-dbd-pg/APKBUILD
index 8168d9a6775..685a5b1ad4a 100644
--- a/main/perl-dbd-pg/APKBUILD
+++ b/main/perl-dbd-pg/APKBUILD
@@ -1,12 +1,13 @@
-# Automatically generated by apkbuild-cpan, template 2
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-dbd-pg
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=DBD-Pg
-pkgver=3.15.1
-pkgrel=1
-pkgdesc="DBI PostgreSQL interface"
-url="https://metacpan.org/release/DBD-Pg"
+pkgver=3.18.0
+pkgrel=0
+pkgdesc="Perl module for DBD-Pg"
+url="https://metacpan.org/release/DBD-Pg/"
arch="all"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-dbi"
@@ -15,16 +16,15 @@ subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/T/TU/TURNSTEP/DBD-Pg-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
-
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
+check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make
+ make test
}
package() {
@@ -32,11 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
sha512sums="
-9714b7f69e7f788652fb7f045eb703c940330576fe83849021d9c0fa48a5cceba7bc119e10a22eefa1d43e1c65bead701711e42738f27c3153e1aa0eb44c977e DBD-Pg-3.15.1.tar.gz
+0a81d1993f22a923776ab57f1437dbee2b5c42de091e274355dbcc9bb07e3db0c22126d0037de8de43fafeab9c947db1e3692087127027a0b13eed538fc2e1ee DBD-Pg-3.18.0.tar.gz
"
diff --git a/main/perl-dbd-sqlite/APKBUILD b/main/perl-dbd-sqlite/APKBUILD
index 1af7822287f..f3aca6f5704 100644
--- a/main/perl-dbd-sqlite/APKBUILD
+++ b/main/perl-dbd-sqlite/APKBUILD
@@ -4,8 +4,8 @@
pkgname=perl-dbd-sqlite
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=DBD-SQLite
-pkgver=1.70
-pkgrel=2
+pkgver=1.74
+pkgrel=0
pkgdesc="Self Contained SQLite RDBMS in a DBI Driver"
url="https://metacpan.org/release/DBD-SQLite/"
arch="all"
@@ -15,7 +15,6 @@ makedepends="perl-dev sqlite-dev"
subpackages="$pkgname-dev $pkgname-doc"
source="https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI/DBD-SQLite-$pkgver.tar.gz
perl-DBD-SQLite-bz543982.patch
- fix-test.patch
"
builddir="$srcdir/$_pkgreal-$pkgver"
@@ -36,7 +35,6 @@ package() {
}
sha512sums="
-163d53a8a214202a39b346ae023f9d10255c69dde537bc764a4ef312b62ef7b02ae1400e6c1a59d0483fd98abba6c36939214c13f5d9b3a2727c41753ba59060 DBD-SQLite-1.70.tar.gz
+46bb26ffac07ca6d25d44101bd59fe7ebb397d159154fe10528e4ca4ee270e62159a40be0325099237ce28fb6ce11b5dc1da5396c3e9a3e0e03062a65c16cbab DBD-SQLite-1.74.tar.gz
00961932f9f89d9b46e6134150c2628aadd4cfa7159cb1604de023fedc919087fbf982b72fd51610e1ca390234cd939e74430b270131d0b30cedb97ba6203b49 perl-DBD-SQLite-bz543982.patch
-e8417991c28a7030a3db8de2d77540163fcd3fc32b412434443ec12e492d02854390dabea8c56ec821e8cd3994a7b41206ef7450e04044ae4515ce2dfce4ad54 fix-test.patch
"
diff --git a/main/perl-dbd-sqlite/fix-test.patch b/main/perl-dbd-sqlite/fix-test.patch
deleted file mode 100644
index fd3455f91a2..00000000000
--- a/main/perl-dbd-sqlite/fix-test.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/t/51_table_column_metadata.t
-+++ b/t/51_table_column_metadata.t
-@@ -19,7 +19,7 @@
- my $data = $dbh->$call_func(undef, 'foo', 'id', 'table_column_metadata');
- ok $data && ref $data eq ref {}, "got a metadata";
- ok $data->{auto_increment}, "id is auto incremental";
-- is $data->{data_type} => 'integer', "data type is correct";
-+ is $data->{data_type} => 'INTEGER', "data type is correct";
- ok $data->{primary}, "id is a primary key";
- ok !$data->{not_null}, "id is not null";
- }
diff --git a/main/perl-dbi/APKBUILD b/main/perl-dbi/APKBUILD
index b6a38647282..93e01766e6b 100644
--- a/main/perl-dbi/APKBUILD
+++ b/main/perl-dbi/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-dbi
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=DBI
pkgver=1.643
-pkgrel=4
+pkgrel=6
pkgdesc="Database independent interface for Perl"
url="https://metacpan.org/release/DBI/"
arch="all"
diff --git a/main/perl-dbix-dbschema/APKBUILD b/main/perl-dbix-dbschema/APKBUILD
index b3bc2a6e97a..3c040594180 100644
--- a/main/perl-dbix-dbschema/APKBUILD
+++ b/main/perl-dbix-dbschema/APKBUILD
@@ -1,12 +1,12 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-dbix-dbschema
-pkgver=0.45
+pkgver=0.47
pkgrel=2
pkgdesc="DBIx::DBSchema perl module"
url="https://metacpan.org/release/DBIx-DBSchema/"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl perl-dbi"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/I/IV/IVAN/DBIx-DBSchema-$pkgver.tar.gz"
@@ -26,4 +26,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="808d83898b1265b6dcdd5e9727fb0fed50935dba893cae40ead5d0d344edcf6f342a3ed2e7ad63efbb94e0cc07c0615153c29d14132c13ac9b071d77a9069770 DBIx-DBSchema-0.45.tar.gz"
+sha512sums="
+f40342d586f3c2665c3eb38cd52bb47ed33fde18363d3377e47b63be5262e542e140ac45b5ed059b9b8d41d50bb04d2de6c51ef1cb8c8a35a55ec969dca8673f DBIx-DBSchema-0.47.tar.gz
+"
diff --git a/main/perl-dbix-searchbuilder/APKBUILD b/main/perl-dbix-searchbuilder/APKBUILD
index 341df64ad77..045db2ec22c 100644
--- a/main/perl-dbix-searchbuilder/APKBUILD
+++ b/main/perl-dbix-searchbuilder/APKBUILD
@@ -1,34 +1,38 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-dbix-searchbuilder
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=DBIx-SearchBuilder
-pkgver=1.71
+pkgver=1.81
pkgrel=0
pkgdesc="Encapsulate SQL queries and rows in simple perl objects"
url="https://metacpan.org/release/DBIx-SearchBuilder/"
arch="noarch"
-license="GPL-1.0-or-later Artistic-1.0-Perl"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="
- perl perl-class-returnvalue perl-dbi perl-cache-simple-timedexpiry perl-class-accessor
- perl-clone perl-want perl-dbix-dbschema
+ perl
+ perl-cache-simple-timedexpiry
+ perl-class-accessor
+ perl-class-returnvalue
+ perl-clone
+ perl-dbi
+ perl-dbix-dbschema
+ perl-want
"
-makedepends="perl-dbd-sqlite perl-module-install"
+makedepends="perl-dbd-sqlite"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/B/BP/BPS/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/B/BP/BPS/DBIx-SearchBuilder-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -38,5 +42,5 @@ package() {
}
sha512sums="
-696b427d3128d30c2655ca194614b628ec46af8daef763cd4363ae07be5b0bb16d2d1c04539f45be8e37d2d816526bfbc1627ea591e6bce127580906d4ae8ead DBIx-SearchBuilder-1.71.tar.gz
+611dc2868255ff84ff94eff3083886c76d4aee00e3d4b92cd4cb1f0db35e3ef7b5c5a2be8a86aa28c5d7b9f6cc4af86496c8d44e074fb6092aaa1f69464a342a DBIx-SearchBuilder-1.81.tar.gz
"
diff --git a/main/perl-devel-checkbin/APKBUILD b/main/perl-devel-checkbin/APKBUILD
index ebeaa42777e..b6b7fd93170 100644
--- a/main/perl-devel-checkbin/APKBUILD
+++ b/main/perl-devel-checkbin/APKBUILD
@@ -1,41 +1,36 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-devel-checkbin
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Devel-CheckBin
pkgver=0.04
-pkgrel=1
+pkgrel=3
pkgdesc="check that a command is available"
-url="https://search.cpan.org/dist/Devel-CheckBin/"
+url="https://metacpan.org/release/Devel-CheckBin/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-module-build"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://search.cpan.org/CPAN/authors/id/T/TO/TOKUHIROM/$_pkgreal-$pkgver.tar.gz"
-
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- perl Makefile.PL installdirs=vendor
-}
+source="https://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM/Devel-CheckBin-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
- cd "$_builddir"
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
- cd "$_builddir"
make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="7b28092fa2e6309ddc09976dcfadabbad9be678352c5b97a7938bf7e73944454e5c3c198aaf1a39939f24544e436ec4323925e77fa91e8d92e3986702c840f44 Devel-CheckBin-0.04.tar.gz"
+sha512sums="
+7b28092fa2e6309ddc09976dcfadabbad9be678352c5b97a7938bf7e73944454e5c3c198aaf1a39939f24544e436ec4323925e77fa91e8d92e3986702c840f44 Devel-CheckBin-0.04.tar.gz
+"
diff --git a/main/perl-devel-checklib/APKBUILD b/main/perl-devel-checklib/APKBUILD
index 586c6b98b25..6f8f39a2c3e 100644
--- a/main/perl-devel-checklib/APKBUILD
+++ b/main/perl-devel-checklib/APKBUILD
@@ -1,31 +1,30 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor:
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-devel-checklib
-_pkgname=Devel-CheckLib
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Devel-CheckLib
pkgver=1.16
-pkgrel=0
-pkgdesc="Check if a library is installed"
-url="https://metacpan.org/dist/Devel-CheckLib"
+pkgrel=2
+pkgdesc="check that a library is available"
+url="https://metacpan.org/release/Devel-CheckLib/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-io-captureoutput"
+makedepends="perl-dev"
checkdepends="perl-capture-tiny"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/M/MA/MATTN/Devel-CheckLib-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-prepare() {
- default_prepare
+builddir="$srcdir/$_pkgreal-$pkgver"
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
+check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make
+ make test
}
package() {
@@ -33,11 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
sha512sums="
919da046cdd1f48e0ccd8a7734a98f3144c0005c8303b02b43aeedcd2cfc148c78f502f26a80ea2612279e2becf4948b408d8cbd4b7cc514519c5954ae4139cb Devel-CheckLib-1.16.tar.gz
"
diff --git a/main/perl-devel-globaldestruction/APKBUILD b/main/perl-devel-globaldestruction/APKBUILD
index bc1dbea11fe..9a29f08d17f 100644
--- a/main/perl-devel-globaldestruction/APKBUILD
+++ b/main/perl-devel-globaldestruction/APKBUILD
@@ -1,36 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-devel-globaldestruction
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Devel-GlobalDestruction
pkgver=0.14
-pkgrel=2
-pkgdesc="unknown"
+pkgrel=4
+pkgdesc="Provides function returning the equivalent of C<\${^GLOBAL_PHASE} eq 'DESTRUCT'> for older perls."
url="https://metacpan.org/release/Devel-GlobalDestruction/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-sub-exporter-progressive"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/H/HA/HAARG/Devel-GlobalDestruction-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="75c346feae98897fb202dea0295f0225bf3cac59f21915da5dd1cdcf845052f4f8bcd0362d357020fb0facb6358175112b3685860ca1c1f173421c7c6a54f45d Devel-GlobalDestruction-0.14.tar.gz"
+sha512sums="
+75c346feae98897fb202dea0295f0225bf3cac59f21915da5dd1cdcf845052f4f8bcd0362d357020fb0facb6358175112b3685860ca1c1f173421c7c6a54f45d Devel-GlobalDestruction-0.14.tar.gz
+"
diff --git a/main/perl-devel-overloadinfo/APKBUILD b/main/perl-devel-overloadinfo/APKBUILD
index 82e3c8da6ad..04fa3cc194f 100644
--- a/main/perl-devel-overloadinfo/APKBUILD
+++ b/main/perl-devel-overloadinfo/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-devel-overloadinfo
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Devel-OverloadInfo
pkgver=0.007
-pkgrel=0
+pkgrel=1
pkgdesc="introspect overloaded operators"
url="https://metacpan.org/release/Devel-OverloadInfo/"
arch="noarch"
diff --git a/main/perl-devel-stacktrace-ashtml/APKBUILD b/main/perl-devel-stacktrace-ashtml/APKBUILD
index 2ef034b0d91..b9da6801d30 100644
--- a/main/perl-devel-stacktrace-ashtml/APKBUILD
+++ b/main/perl-devel-stacktrace-ashtml/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-devel-stacktrace-ashtml
pkgver=0.15
-pkgrel=2
+pkgrel=4
pkgdesc="Devel::StackTrace::AsHTML perl module"
url="https://metacpan.org/release/Devel-StackTrace-AsHTML/"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl perl-devel-stacktrace"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Devel-StackTrace-AsHTML-$pkgver.tar.gz"
diff --git a/main/perl-devel-stacktrace/APKBUILD b/main/perl-devel-stacktrace/APKBUILD
index d68089a62b1..8706e4d1291 100644
--- a/main/perl-devel-stacktrace/APKBUILD
+++ b/main/perl-devel-stacktrace/APKBUILD
@@ -1,29 +1,28 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Sheila Aman <sheila@vulpine.house>
# Maintainer: Sheila Aman <sheila@vulpine.house>
pkgname=perl-devel-stacktrace
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Devel-StackTrace
-pkgver=2.04
-pkgrel=3
+pkgver=2.05
+pkgrel=0
pkgdesc="An object representing a stack trace"
url="https://metacpan.org/release/Devel-StackTrace/"
arch="noarch"
license="Artistic-2.0"
depends="perl"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Devel-StackTrace-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -32,4 +31,6 @@ 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/main/perl-devel-symdump/APKBUILD b/main/perl-devel-symdump/APKBUILD
index b99c61a5d75..8ff2260c39a 100644
--- a/main/perl-devel-symdump/APKBUILD
+++ b/main/perl-devel-symdump/APKBUILD
@@ -1,36 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-devel-symdump
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Devel-Symdump
pkgver=2.18
-pkgrel=2
+pkgrel=4
pkgdesc="dump symbol names or the symbol table"
url="https://metacpan.org/release/Devel-Symdump/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/A/AN/ANDK/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/A/AN/ANDK/Devel-Symdump-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="4e8e1ee723e3e02d2f0c100dace40d7722f6366402cff24fb50c8616a863628bc2faa02210754132afa7cbebbd90c75ea6f173e15bbcfaa5158dfcfdfd03da73 Devel-Symdump-2.18.tar.gz"
+sha512sums="
+4e8e1ee723e3e02d2f0c100dace40d7722f6366402cff24fb50c8616a863628bc2faa02210754132afa7cbebbd90c75ea6f173e15bbcfaa5158dfcfdfd03da73 Devel-Symdump-2.18.tar.gz
+"
diff --git a/main/perl-device-serialport/APKBUILD b/main/perl-device-serialport/APKBUILD
index c5dc74c8f48..d75652bbff9 100644
--- a/main/perl-device-serialport/APKBUILD
+++ b/main/perl-device-serialport/APKBUILD
@@ -1,33 +1,35 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-device-serialport
-_realname=Device-SerialPort
+_pkgreal=Device-SerialPort
pkgver=1.04
-pkgrel=16
+pkgrel=21
pkgdesc="Linux/POSIX emulation of Win32::SerialPort functions."
-url="http://search.cpan.org/~cook/"
+url="https://metacpan.org/dist/Device-SerialPort"
arch="all"
-license="GPL PerlArtistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
makedepends="perl-dev"
-install=
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/C/CO/COOK/$_realname-$pkgver.tar.gz"
-
-_builddir="$srcdir/$_realname-$pkgver"
+source="https://cpan.metacpan.org/authors/id/C/CO/COOK/Device-SerialPort-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- cd $_builddir
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make || return 1
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ make test
}
package() {
- cd $_builddir
make DESTDIR="$pkgdir" install
# creates file collision among perl modules
find "$pkgdir" -name perllocal.pod -delete
}
-sha512sums="4b25a7d29091322d516e0aa20693caabe95a8521b3fdc425d1c03e3312fb59a6883268db7eaf79b32586569502fb656c875dd2b6b1d7a4341d9bd6916e04ee44 Device-SerialPort-1.04.tar.gz"
+sha512sums="
+4b25a7d29091322d516e0aa20693caabe95a8521b3fdc425d1c03e3312fb59a6883268db7eaf79b32586569502fb656c875dd2b6b1d7a4341d9bd6916e04ee44 Device-SerialPort-1.04.tar.gz
+"
diff --git a/main/perl-digest-hmac/APKBUILD b/main/perl-digest-hmac/APKBUILD
index 7e90d9c75ac..1e4bc219472 100644
--- a/main/perl-digest-hmac/APKBUILD
+++ b/main/perl-digest-hmac/APKBUILD
@@ -1,10 +1,10 @@
# Automatically generated by apkbuild-cpan, template 3
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-digest-hmac
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Digest-HMAC
pkgver=1.04
-pkgrel=1
+pkgrel=2
pkgdesc="Keyed-Hashing for Message Authentication Perl module"
url="https://metacpan.org/release/Digest-HMAC/"
arch="noarch"
diff --git a/main/perl-digest-md5/APKBUILD b/main/perl-digest-md5/APKBUILD
index 818ae62d901..eda6736c75d 100644
--- a/main/perl-digest-md5/APKBUILD
+++ b/main/perl-digest-md5/APKBUILD
@@ -4,15 +4,14 @@
pkgname=perl-digest-md5
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Digest-MD5
-pkgver=2.58
-pkgrel=3
+pkgver=2.59
+pkgrel=1
pkgdesc="Perl interface to the MD-5 algorithm"
url="https://metacpan.org/release/Digest-MD5/"
arch="all"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
makedepends="perl-dev"
-subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/T/TO/TODDR/Digest-MD5-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
@@ -31,8 +30,10 @@ package() {
make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
- # prevent conflict with main/perl
- rm -f "$pkgdir"/usr/share/man/man3/Digest::MD5.3pm
+ # man pages are already provided by perl-doc
+ rm -rf "$pkgdir"/usr/share/man
}
-sha512sums="d1f186c0aa4145f6429e06e998c57e93b19e69e0194adcac18410daf18d653e9efe1fade99561fefe25a1dab16e88dccb1e0590a9932829c7c63ded0ba5a4d3e Digest-MD5-2.58.tar.gz"
+sha512sums="
+478fb39b47bd31d032a0c801ddb26b7c08059e5b8a5d0253dacf26f656733ca0042a3347c08799221f521c7571dbc214fbf1883748795e0cc3617a8a531af748 Digest-MD5-2.59.tar.gz
+"
diff --git a/main/perl-digest-sha1/APKBUILD b/main/perl-digest-sha1/APKBUILD
index a19415db9f3..090239ae6b2 100644
--- a/main/perl-digest-sha1/APKBUILD
+++ b/main/perl-digest-sha1/APKBUILD
@@ -1,40 +1,34 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-digest-sha1
-_realname=Digest-SHA1
+_pkgreal=Digest-SHA1
pkgver=2.13
-pkgrel=15
+pkgrel=18
pkgdesc="Perl interface to the SHA-1 algorithm"
url="https://metacpan.org/release/Digest-SHA1/"
arch="all"
-license="GPL PerlArtistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
makedepends="perl-dev"
-install=
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/G/GA/GAAS/$_realname-$pkgver.tar.gz
+source="https://cpan.metacpan.org/authors/id/G/GA/GAAS/Digest-SHA1-$pkgver.tar.gz
perl-digest-sha1-check-object.patch
"
+builddir="$srcdir/$_pkgreal-$pkgver"
+options="!check"
prepare() {
- cd "$srcdir/$_realname-$pkgver"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
+ default_prepare
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor \
- OPTIMIZE="$CFLAGS" || return 1
+ OPTIMIZE="$CFLAGS"
}
build() {
- cd "$srcdir/$_realname-$pkgver"
- make || return 1
+ make
}
package() {
- cd "$srcdir/$_realname-$pkgver"
make DESTDIR="$pkgdir" install
# creates file collision among perl modules
find "$pkgdir" -name perllocal.pod -delete
diff --git a/main/perl-dist-checkconflicts/APKBUILD b/main/perl-dist-checkconflicts/APKBUILD
index 0c5ec54b5c5..231206cf6f1 100644
--- a/main/perl-dist-checkconflicts/APKBUILD
+++ b/main/perl-dist-checkconflicts/APKBUILD
@@ -1,35 +1,38 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-dist-checkconflicts
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Dist-CheckConflicts
pkgver=0.11
-pkgrel=2
+pkgrel=4
pkgdesc="declare version conflicts for your dist"
url="https://metacpan.org/release/Dist-CheckConflicts/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl perl-list-moreutils perl-module-runtime"
-makedepends="perl-test-fatal"
+depends="perl perl-module-runtime"
+makedepends="perl-dev"
+checkdepends="perl-test-fatal"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DO/DOY/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/D/DO/DOY/Dist-CheckConflicts-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="6c3f8546c1c7904bbc2a3c1135d145cbff95997c3032e9129afc98bdd98578dd9219af444f357dd8e9b1f08442a2fdd9d6f7fe8768f8ef165e71570f5ae246ad Dist-CheckConflicts-0.11.tar.gz"
+sha512sums="
+6c3f8546c1c7904bbc2a3c1135d145cbff95997c3032e9129afc98bdd98578dd9219af444f357dd8e9b1f08442a2fdd9d6f7fe8768f8ef165e71570f5ae246ad Dist-CheckConflicts-0.11.tar.gz
+"
diff --git a/main/perl-email-address-list/APKBUILD b/main/perl-email-address-list/APKBUILD
index e72f2a99ad5..b2af7054341 100644
--- a/main/perl-email-address-list/APKBUILD
+++ b/main/perl-email-address-list/APKBUILD
@@ -1,11 +1,11 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-email-address-list
pkgver=0.06
-pkgrel=2
+pkgrel=4
pkgdesc="RFC close address list parsing"
url="https://metacpan.org/release/Email-Address-List/"
arch="noarch"
-license="GPL+ or Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl perl-email-address"
makedepends="perl-json perl-module-install"
subpackages="$pkgname-doc"
diff --git a/main/perl-email-address/APKBUILD b/main/perl-email-address/APKBUILD
index 4d3c9d03e37..696084d11e3 100644
--- a/main/perl-email-address/APKBUILD
+++ b/main/perl-email-address/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-email-address
-pkgver=1.912
-pkgrel=2
+pkgver=1.913
+pkgrel=1
pkgdesc="RFC 2822 Address Parsing and Creation"
url="https://metacpan.org/release/Email-Address"
arch="noarch"
@@ -30,4 +30,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="fd8a8c09829f725609aa84c79ad89d1e44cbfb70cc44cae6a9f31174589404f56cf60ab3a4186137f7ff9838a3fe34a95a7c584e0eec2e5d1d79c919610f6e1a Email-Address-1.912.tar.gz"
+sha512sums="
+3c12c052cf7bc5738763f35e81eb328f990494774703ac204b516cec7faa985d262af79126e4068cb084ee4f3b56b1704bbe219288ff8efe5e61b6a62fcea901 Email-Address-1.913.tar.gz
+"
diff --git a/main/perl-email-date-format/APKBUILD b/main/perl-email-date-format/APKBUILD
index 9097daa6529..f8f1dd0a278 100644
--- a/main/perl-email-date-format/APKBUILD
+++ b/main/perl-email-date-format/APKBUILD
@@ -1,35 +1,36 @@
-# Automatically generated by apkbuild-cpan, template 1
-# Contributor:
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-email-date-format
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Email-Date-Format
-pkgver=1.005
-pkgrel=2
+pkgver=1.008
+pkgrel=1
pkgdesc="produce RFC 2822 date strings"
url="https://metacpan.org/release/Email-Date-Format/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-capture-tiny"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/Email-Date-Format-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="23daefa45874211f053d05ac3c3f3c7c3a86d9b623fdcec3bd9f6f7b4c8e5ad1ac8038146bdc85cc950b21b43b0ad843f8a52ad2183d868d3a62ea96292e34ca Email-Date-Format-1.005.tar.gz"
+sha512sums="
+24c97cd3b739c2f3c298b9ec168c4614bb71b13a0106f351990443cc86506e4e121f9c647bde6f08080a876f36adeb3fcef566d87ded9bddcbec6f3191f508be Email-Date-Format-1.008.tar.gz
+"
diff --git a/main/perl-encode-hanextra/APKBUILD b/main/perl-encode-hanextra/APKBUILD
index 664a6f0ed18..b0abf7199c9 100644
--- a/main/perl-encode-hanextra/APKBUILD
+++ b/main/perl-encode-hanextra/APKBUILD
@@ -1,35 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Maintainer: Valery Kartel <valery.kartel@gmail.com>
pkgname=perl-encode-hanextra
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Encode-HanExtra
pkgver=0.23
-pkgrel=8
-pkgdesc="Perl module for Encode-HanExtra"
+pkgrel=11
+pkgdesc="Extra sets of Chinese encodings"
url="https://metacpan.org/release/Encode-HanExtra/"
arch="all"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+license="MIT"
depends="perl"
makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/A/AU/AUDREYT/$_pkgreal-$pkgver.tar.gz
- perl-5.26.patch"
-
+source="https://cpan.metacpan.org/authors/id/A/AU/AUDREYT/Encode-HanExtra-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
+
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make && make test
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="218083b9b3b4517cfc714169479cba0689a3586d9abb24bcc79d3401d37dd9412cb4e878b6aad06676d5c4f0e03cc69dcaf2e5f48036e2da6f336508c381e462 Encode-HanExtra-0.23.tar.gz
-91044f483f87951094ebbbb326165f31fe8e616b7189f45a97d4d65e60ad751d956bbf5425c3fe213e15e0c027209edb348a398755ef8fb23499493161fae955 perl-5.26.patch"
+sha512sums="
+218083b9b3b4517cfc714169479cba0689a3586d9abb24bcc79d3401d37dd9412cb4e878b6aad06676d5c4f0e03cc69dcaf2e5f48036e2da6f336508c381e462 Encode-HanExtra-0.23.tar.gz
+"
diff --git a/main/perl-encode-hanextra/perl-5.26.patch b/main/perl-encode-hanextra/perl-5.26.patch
deleted file mode 100644
index 7848467b1e3..00000000000
--- a/main/perl-encode-hanextra/perl-5.26.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/Makefile.PL b/Makefile.PL
-index 9e6cf51..333c7cd 100644
---- a/Makefile.PL
-+++ b/Makefile.PL
-@@ -5,6 +5,7 @@
- #
- use 5.007002;
- use strict;
-+BEGIN { push @INC, '.'; }
- use inc::Module::Install;
- use Config;
-
diff --git a/main/perl-encode-locale/APKBUILD b/main/perl-encode-locale/APKBUILD
index baa4d79c8f2..c5e56edbf59 100644
--- a/main/perl-encode-locale/APKBUILD
+++ b/main/perl-encode-locale/APKBUILD
@@ -1,19 +1,18 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-encode-locale
-_realname=Encode-Locale
+_pkgreal=Encode-Locale
pkgver=1.05
-pkgrel=3
+pkgrel=5
pkgdesc="Perl module - Determine the locale encoding"
-url="http://search.cpan.org/~gaas"
+url="https://metacpan.org/dist/Encode-Locale"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-install=
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/G/GA/GAAS/$_realname-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/G/GA/GAAS/Encode-Locale-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
@@ -30,4 +29,6 @@ package() {
find "$pkgdir" -name perllocal.pod -delete
}
-sha512sums="68ed5732fd3645eca2ea54080067677a48f90fc5a594a1b453a322f3127e67a984d539cb5fd41ac63a03b9dab693c070b65e3c70a2a677dc61b4634f3e212d06 Encode-Locale-1.05.tar.gz"
+sha512sums="
+68ed5732fd3645eca2ea54080067677a48f90fc5a594a1b453a322f3127e67a984d539cb5fd41ac63a03b9dab693c070b65e3c70a2a677dc61b4634f3e212d06 Encode-Locale-1.05.tar.gz
+"
diff --git a/main/perl-encode/APKBUILD b/main/perl-encode/APKBUILD
index faf70e06002..53eacfdd33a 100644
--- a/main/perl-encode/APKBUILD
+++ b/main/perl-encode/APKBUILD
@@ -4,7 +4,7 @@
pkgname=perl-encode
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Encode
-pkgver=3.18
+pkgver=3.21
pkgrel=0
pkgdesc="character encodings in Perl"
url="https://metacpan.org/release/Encode/"
@@ -41,32 +41,30 @@ utils() {
pkgdesc="$pkgdesc (utilities)"
depends="$pkgname perl"
provides="$pkgname-piconv"
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+
+ amove usr/bin
}
dev() {
default_dev
replaces="perl-dev"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/enc2xs "$subpkgdir"/usr/bin
- local file; for file in $(find "$pkgdir" -name "*.e2x"); do
- file=${file#$pkgdir/}
- mkdir -p "$subpkgdir"/${file%/*}
- mv "$pkgdir"/$file "$subpkgdir"/$file
+
+ amove usr/bin/enc2xs
+
+ local file; find "$pkgdir" -name "*.e2x" | while read -r file; do
+ amove "${file#"$pkgdir"}"
done
}
doc() {
default_doc
replaces="perl-doc"
- local file; for file in $(find "$pkgdir" -name "*.pod"); do
- file=${file#$pkgdir/}
- mkdir -p "$subpkgdir"/${file%/*}
- mv "$pkgdir"/$file "$subpkgdir"/$file
+
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
done
}
sha512sums="
-f16efcfd4f7a27fbfabbcadd9ff6c16c77abe4284c03ac203fcaa6585f2b2b6cbf5bb6983f5b065c8963b0925b08f928d6141d4c885a1353e68c048f2a994920 Encode-3.18.tar.gz
+413b22ff4175bc32b1081c9bb2db0b290379bf318de5ef94e86165fa68a197a68c64da538915e50a1d0c5f7db0de058e9c7248a024bca1301bc7b1d5b41f2467 Encode-3.21.tar.gz
"
diff --git a/main/perl-error/APKBUILD b/main/perl-error/APKBUILD
index fd08d168ea6..21f8b9049a1 100644
--- a/main/perl-error/APKBUILD
+++ b/main/perl-error/APKBUILD
@@ -1,8 +1,8 @@
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-error
-_realname=Error
+_pkgreal=Error
pkgver=0.17029
-pkgrel=1
+pkgrel=2
pkgdesc="Perl module error/exception handling in an OO-ish way"
url="https://metacpan.org/release/Error"
arch="noarch"
@@ -10,9 +10,11 @@ license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/Error-$pkgver.tar.gz"
-builddir="$srcdir"/$_realname-$pkgver
+builddir="$srcdir/$_pkgreal-$pkgver"
prepare() {
+ default_prepare
+
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
}
diff --git a/main/perl-eval-closure/APKBUILD b/main/perl-eval-closure/APKBUILD
index b29a6d41371..23c07b0af24 100644
--- a/main/perl-eval-closure/APKBUILD
+++ b/main/perl-eval-closure/APKBUILD
@@ -1,35 +1,38 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-eval-closure
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Eval-Closure
pkgver=0.14
-pkgrel=2
+pkgrel=4
pkgdesc="safely and cleanly create closures via string eval"
url="https://metacpan.org/release/Eval-Closure/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl perl-try-tiny"
-makedepends="perl-test-fatal perl-test-requires"
+depends="perl"
+makedepends="perl-dev"
+checkdepends="perl-test-fatal perl-test-requires"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DO/DOY/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/D/DO/DOY/Eval-Closure-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="fc55206bd39c4cb39360d06b6f39a65743f34b5e59d1a1ce99bf5831b9d88a03fb6dadf32fa9f0868e140fce719d53a7b13027f397cdd7f6ca05cc81277bdc08 Eval-Closure-0.14.tar.gz"
+sha512sums="
+fc55206bd39c4cb39360d06b6f39a65743f34b5e59d1a1ce99bf5831b9d88a03fb6dadf32fa9f0868e140fce719d53a7b13027f397cdd7f6ca05cc81277bdc08 Eval-Closure-0.14.tar.gz
+"
diff --git a/main/perl-exception-class/APKBUILD b/main/perl-exception-class/APKBUILD
index bc57b4eec82..2ad0a5153df 100644
--- a/main/perl-exception-class/APKBUILD
+++ b/main/perl-exception-class/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-exception-class
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Exception-Class
pkgver=1.45
-pkgrel=0
+pkgrel=1
pkgdesc="A module that allows you to declare real exception classes in Perl"
url="https://metacpan.org/release/Exception-Class/"
arch="noarch"
diff --git a/main/perl-exporter-tiny/APKBUILD b/main/perl-exporter-tiny/APKBUILD
index 84b6210c285..aeba872b6c6 100644
--- a/main/perl-exporter-tiny/APKBUILD
+++ b/main/perl-exporter-tiny/APKBUILD
@@ -1,34 +1,30 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-exporter-tiny
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Exporter-Tiny
-pkgver=1.002002
+pkgver=1.006002
pkgrel=1
-pkgdesc="An exporter with the features of Sub::Exporter but only core dependencies"
+pkgdesc="an exporter with the features of Sub::Exporter but only core dependencies"
url="https://metacpan.org/release/Exporter-Tiny/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-test-warnings perl-test-fatal"
+makedepends="perl-dev"
+checkdepends="perl-test-fatal perl-test-warnings"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/T/TO/TOBYINK/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/T/TO/TOBYINK/Exporter-Tiny-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
-
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -37,4 +33,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="b6d39ba1824f6c9d68cf75e7f28fd896c2c475e419f0b1aadec58d4e7e5c8d3fd7bf85d841758772055470de56ad7a3ad6787cfd9d6c5d61d8449cf8f40bda8d Exporter-Tiny-1.002002.tar.gz"
+sha512sums="
+684dc97d854686910928f413bd84df3e2d2b351c2304116d5c567ec74eb7384f4085881f2bdeaf96dcf9ade2a959076ebd2bde3977dd5b876f75daaf6ca9d763 Exporter-Tiny-1.006002.tar.gz
+"
diff --git a/main/perl-exporter/APKBUILD b/main/perl-exporter/APKBUILD
index 264950e4a11..0f315cebc4d 100644
--- a/main/perl-exporter/APKBUILD
+++ b/main/perl-exporter/APKBUILD
@@ -1,40 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-exporter
-_pkgname=Exporter
-pkgver=5.74
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Exporter
+pkgver=5.78
pkgrel=1
pkgdesc="Implements default import method for modules"
-url="https://metacpan.org/release/Exporter"
+url="https://metacpan.org/release/Exporter/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/T/TO/TODDR/Exporter-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-prepare() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-doc() {
- default_doc
- replaces="perl-doc"
+ # man pages are already provided by perl-doc
+ rm -rf "$pkgdir"/usr/share/man
}
-sha512sums="e5233d2851f456a15b3e79069e45edac657898d4ce423ae9942767ce02d873ce1be10f995f0a3b10b66095ac5fe742c21585928d00f63eddb528a6c4a994e6fc Exporter-5.74.tar.gz"
+sha512sums="
+e3fb5b64902dd5ca4f0222a7204d76c87da3657cf2f3c1833e5ff8c5dfd47669d47be5ea5d1a87ef6c4aa747bbfe4375ec23ee0ccb8fa2420093f677e3917fef Exporter-5.78.tar.gz
+"
diff --git a/main/perl-extutils-cchecker/APKBUILD b/main/perl-extutils-cchecker/APKBUILD
index 9ed2aaa1eea..c52578ff780 100644
--- a/main/perl-extutils-cchecker/APKBUILD
+++ b/main/perl-extutils-cchecker/APKBUILD
@@ -1,22 +1,27 @@
+# Automatically generated by apkbuild-cpan, template 4
# Contributor: Sheila Aman <sheila@vulpine.house>
# Maintainer: Sheila Aman <sheila@vulpine.house>
pkgname=perl-extutils-cchecker
-_pkgreal=ExtUtils-CChecker
-pkgver=0.11
+pkgver=0.12
pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=ExtUtils-CChecker
pkgdesc="Perl module configuration-time utilities for using C headers, libraries, or OS features"
url="https://metacpan.org/release/ExtUtils-CChecker/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl-test-exception"
-makedepends="perl-dev perl-module-build"
-checkdepends="perl-test-fatal"
+depends="perl"
+makedepends="perl-module-build"
+checkdepends="perl-test2-suite"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/ExtUtils-CChecker-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- PERL_MM_USE_DEFAULT=1 perl Build.PL INSTALLDIRS=vendor
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
./Build
}
@@ -25,8 +30,9 @@ check() {
}
package() {
- ./Build install --destdir "$pkgdir" --installdirs vendor
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
+ ./Build install --destdir="$pkgdir"
}
-sha512sums="4b638e5082443eafcf2f3586ec8ff20ee62b054f8bc24149dd7a2549f57ca748618f76c057f456eadca4e5c4099071ee2d1c8993a13e2f5ea8924cd92319dd8c ExtUtils-CChecker-0.11.tar.gz"
+sha512sums="
+d0408d88d6c33de799959f42f296d1d05187a12b943a4aee93a79d608a56d972d0f90e6d64712b2722563ba36fc59092cbfb6608d9a39a97b7c1efebefeab979 ExtUtils-CChecker-0.12.tar.gz
+"
diff --git a/main/perl-extutils-config/APKBUILD b/main/perl-extutils-config/APKBUILD
index 8768b50d798..29a0aa11867 100644
--- a/main/perl-extutils-config/APKBUILD
+++ b/main/perl-extutils-config/APKBUILD
@@ -1,36 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-extutils-config
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=ExtUtils-Config
pkgver=0.008
-pkgrel=2
+pkgrel=4
pkgdesc="A wrapper for perl's configuration"
url="https://metacpan.org/release/ExtUtils-Config/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/L/LE/LEONT/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/L/LE/LEONT/ExtUtils-Config-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="7775e2212b4605e60559c7e63604b8f2b4c56f4846e64f9f4454f3f5d0a7a21f618143e6c61eafabf5d9ee9bca8f722c04aedeaf9c51f59924de68c272b86db2 ExtUtils-Config-0.008.tar.gz"
+sha512sums="
+7775e2212b4605e60559c7e63604b8f2b4c56f4846e64f9f4454f3f5d0a7a21f618143e6c61eafabf5d9ee9bca8f722c04aedeaf9c51f59924de68c272b86db2 ExtUtils-Config-0.008.tar.gz
+"
diff --git a/main/perl-extutils-helpers/APKBUILD b/main/perl-extutils-helpers/APKBUILD
index 26662fe5d3e..0a48a4c156e 100644
--- a/main/perl-extutils-helpers/APKBUILD
+++ b/main/perl-extutils-helpers/APKBUILD
@@ -1,36 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-extutils-helpers
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=ExtUtils-Helpers
pkgver=0.026
-pkgrel=2
+pkgrel=4
pkgdesc="Various portability utilities for module builders"
url="https://metacpan.org/release/ExtUtils-Helpers/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/L/LE/LEONT/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/L/LE/LEONT/ExtUtils-Helpers-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="372d801f43003c571758823a84bfe418876f1b48e3d8c35f888ca41469f6771a33aa30cf893a4c4a68ea62c6e8c8c6ab2ef44ee783dbf9f25e18bc0389359399 ExtUtils-Helpers-0.026.tar.gz"
+sha512sums="
+372d801f43003c571758823a84bfe418876f1b48e3d8c35f888ca41469f6771a33aa30cf893a4c4a68ea62c6e8c8c6ab2ef44ee783dbf9f25e18bc0389359399 ExtUtils-Helpers-0.026.tar.gz
+"
diff --git a/main/perl-extutils-installpaths/APKBUILD b/main/perl-extutils-installpaths/APKBUILD
index 2862988a78b..5670321c478 100644
--- a/main/perl-extutils-installpaths/APKBUILD
+++ b/main/perl-extutils-installpaths/APKBUILD
@@ -1,32 +1,29 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-extutils-installpaths
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=ExtUtils-InstallPaths
pkgver=0.012
-pkgrel=2
+pkgrel=4
pkgdesc="Build.PL install path logic made easy"
url="https://metacpan.org/release/ExtUtils-InstallPaths/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-extutils-config"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/L/LE/LEONT/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/L/LE/LEONT/ExtUtils-InstallPaths-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -35,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="92a4e9ebb387d330ae67b0716b96b27165d08503d2915d8301b3a6aa185f962940e761d21fd400033e6a814e276918e0662da3740ca2852a53cf0fe54f3d7660 ExtUtils-InstallPaths-0.012.tar.gz"
+sha512sums="
+92a4e9ebb387d330ae67b0716b96b27165d08503d2915d8301b3a6aa185f962940e761d21fd400033e6a814e276918e0662da3740ca2852a53cf0fe54f3d7660 ExtUtils-InstallPaths-0.012.tar.gz
+"
diff --git a/main/perl-extutils-pkgconfig/APKBUILD b/main/perl-extutils-pkgconfig/APKBUILD
index 3db72787aca..b9bedb619a0 100644
--- a/main/perl-extutils-pkgconfig/APKBUILD
+++ b/main/perl-extutils-pkgconfig/APKBUILD
@@ -1,32 +1,30 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-extutils-pkgconfig
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=ExtUtils-PkgConfig
pkgver=1.16
-pkgrel=3
-pkgdesc="simplistic interface to pkg-config"
+pkgrel=5
+pkgdesc="Perl module for ExtUtils-PkgConfig"
url="https://metacpan.org/release/ExtUtils-PkgConfig/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/X/XA/XAOC/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/X/XA/XAOC/ExtUtils-PkgConfig-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-check() {
- make test
-}
-
-prepare() {
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
+check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make
+ make test
}
package() {
@@ -34,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="a872fd54aa5bf3137ace9c44457dfc047ea6d283accc453e824b609b6996a8e2fab685459f38a8236419155df01a18421671426a7237639a47ab32e18c9b4191 ExtUtils-PkgConfig-1.16.tar.gz"
+sha512sums="
+a872fd54aa5bf3137ace9c44457dfc047ea6d283accc453e824b609b6996a8e2fab685459f38a8236419155df01a18421671426a7237639a47ab32e18c9b4191 ExtUtils-PkgConfig-1.16.tar.gz
+"
diff --git a/main/perl-fcgi-procmanager/APKBUILD b/main/perl-fcgi-procmanager/APKBUILD
index 5939a53a113..6284ed6e1a0 100644
--- a/main/perl-fcgi-procmanager/APKBUILD
+++ b/main/perl-fcgi-procmanager/APKBUILD
@@ -3,11 +3,11 @@
pkgname=perl-fcgi-procmanager
_pkgreal=FCGI-ProcManager
pkgver=0.28
-pkgrel=2
+pkgrel=4
pkgdesc="Functions for managing FastCGI applications"
url="https://metacpan.org/release/FCGI-ProcManager/"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/A/AR/ARODLAND/FCGI-ProcManager-$pkgver.tar.gz"
@@ -20,7 +20,7 @@ build() {
}
check() {
- make test
+ make test
}
package() {
diff --git a/main/perl-fcgi/APKBUILD b/main/perl-fcgi/APKBUILD
index 5ae4c34f3bc..3abf84c76ea 100644
--- a/main/perl-fcgi/APKBUILD
+++ b/main/perl-fcgi/APKBUILD
@@ -1,8 +1,8 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-fcgi
-_realname=FCGI
+_pkgreal=FCGI
pkgver=0.82
-pkgrel=1
+pkgrel=3
pkgdesc="Perl Fast CGI module"
url="https://metacpan.org/pod/FCGI"
arch="all"
@@ -13,7 +13,7 @@ subpackages="$pkgname-doc"
options="!check" # makedepends missing
source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/FCGI-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
diff --git a/main/perl-file-copy-recursive/APKBUILD b/main/perl-file-copy-recursive/APKBUILD
index b3ef98976ed..252cd8e44bc 100644
--- a/main/perl-file-copy-recursive/APKBUILD
+++ b/main/perl-file-copy-recursive/APKBUILD
@@ -2,8 +2,8 @@
# Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
pkgname=perl-file-copy-recursive
pkgver=0.45
-_realname=File-Copy-Recursive-$pkgver
-pkgrel=2
+_pkgreal=File-Copy-Recursive
+pkgrel=3
pkgdesc="Perl extension for recursively copying files and directories"
url="https://metacpan.org/release/File-Copy-Recursive"
arch="noarch"
@@ -12,9 +12,9 @@ depends="perl"
checkdepends="perl-test-deep perl-test-exception"
options="!check" # requires several new pkgs which will ! begin in main
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DM/DMUEY/$_realname.tar.gz"
+source="https://cpan.metacpan.org/authors/id/D/DM/DMUEY/File-Copy-Recursive-$pkgver.tar.gz"
-builddir="$srcdir/$_realname"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
diff --git a/main/perl-file-listing/APKBUILD b/main/perl-file-listing/APKBUILD
index fcf5b090dea..c0081b97787 100644
--- a/main/perl-file-listing/APKBUILD
+++ b/main/perl-file-listing/APKBUILD
@@ -4,7 +4,7 @@
pkgname=perl-file-listing
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=File-Listing
-pkgver=6.14
+pkgver=6.16
pkgrel=0
pkgdesc="Parse directory listing"
replaces="perl-libwww"
@@ -32,5 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-
-sha512sums="858339b15a455db570d15b02e801ab0e0afd47da71685002083cbcc1a0f89783fcad4e840e0381f186046ab2f355dc0f593dc8c9c0a2da0fc6f17a35265924ab File-Listing-6.14.tar.gz"
+sha512sums="
+2d18f0cf7dbf30bb752c5d70132e90dd346e6fb795cb61664b8f11bfba67ec357235f5cb5a87752cf65ba9d000a6c7976548f0aed0f833048ca1b06aed991eca File-Listing-6.16.tar.gz
+"
diff --git a/main/perl-file-next/APKBUILD b/main/perl-file-next/APKBUILD
index 66eac98d47d..883154d8965 100644
--- a/main/perl-file-next/APKBUILD
+++ b/main/perl-file-next/APKBUILD
@@ -3,7 +3,7 @@
pkgname=perl-file-next
_pkgreal=File-Next
pkgver=1.18
-pkgrel=2
+pkgrel=3
pkgdesc="Perl module for taint-safe file-finding"
url="https://metacpan.org/release/File-Next"
arch="noarch"
diff --git a/main/perl-file-remove/APKBUILD b/main/perl-file-remove/APKBUILD
index 23fdd36f447..433b4e034db 100644
--- a/main/perl-file-remove/APKBUILD
+++ b/main/perl-file-remove/APKBUILD
@@ -4,7 +4,7 @@ pkgname=perl-file-remove
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=File-Remove
pkgver=1.61
-pkgrel=0
+pkgrel=1
pkgdesc="Remove files and directories"
url="https://metacpan.org/release/File-Remove/"
arch="noarch"
@@ -30,7 +30,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-
sha512sums="
2ff999f7d71349b7e4a7db8728cfe2b5669c76fb27ca42fe006b0e0061bb73a29d556f3e3da88c004a4dd23bf2d9e12a1e1054b85237e8c14fb2b58c1086971f File-Remove-1.61.tar.gz
"
diff --git a/main/perl-file-rsync/APKBUILD b/main/perl-file-rsync/APKBUILD
index ba9848336ea..1832508bfea 100644
--- a/main/perl-file-rsync/APKBUILD
+++ b/main/perl-file-rsync/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-file-rsync
-_realname=File-RsyncP
+_pkgreal=File-RsyncP
pkgver=0.76
-pkgrel=2
+pkgrel=5
pkgdesc="Perl rsync client"
url="https://metacpan.org/pod/File::RsyncP"
arch="all"
@@ -11,20 +11,24 @@ license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/C/CB/CBARRATT/$_realname-$pkgver.tar.gz
+source="https://cpan.metacpan.org/authors/id/C/CB/CBARRATT/File-RsyncP-$pkgver.tar.gz
perl-file-rsync-parallell-build-fix.patch
"
-builddir="$srcdir/$_realname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- chmod +w */config.guess
+ chmod +w ./*/config.guess
update_config_guess
update_config_sub
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
make config && make
}
+check() {
+ make test
+}
+
package() {
make DESTDIR="$pkgdir" install
# creates file collision among perl modules
diff --git a/main/perl-file-sharedir-install/APKBUILD b/main/perl-file-sharedir-install/APKBUILD
index 83ef6d4213e..75e0f0b7fc1 100644
--- a/main/perl-file-sharedir-install/APKBUILD
+++ b/main/perl-file-sharedir-install/APKBUILD
@@ -1,34 +1,30 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-file-sharedir-install
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=File-ShareDir-Install
-pkgver=0.13
+pkgver=0.14
pkgrel=2
pkgdesc="Install shared files"
url="https://metacpan.org/release/File-ShareDir-Install/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-module-build-tiny"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/File-ShareDir-Install-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
- make test
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
@@ -36,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="a119e38491fad8ae0ebd95913e3b608e09a2b99376a5160e75083a28abe4f83c4f6a36df216365527ff87bf8ec095254b16a2f6d2515c69f34609df8672605ca File-ShareDir-Install-0.13.tar.gz"
+sha512sums="
+92c1c3899bc58d3e1686fef775ac09e9aab7e3ce6b61d1a8e754127dc1f84627cf1e23e78a5d0042934e011685c0676c706ef7964778c06e073e8725155af34d File-ShareDir-Install-0.14.tar.gz
+"
diff --git a/main/perl-file-sharedir/APKBUILD b/main/perl-file-sharedir/APKBUILD
index c52c9b524fa..033aec86226 100644
--- a/main/perl-file-sharedir/APKBUILD
+++ b/main/perl-file-sharedir/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-file-sharedir
-_pkgname=File-ShareDir
+_pkgreal=File-ShareDir
pkgver=1.118
-pkgrel=0
+pkgrel=1
pkgdesc="Locate per-dist and per-module shared files"
url="https://metacpan.org/release/File-ShareDir/"
arch="noarch"
@@ -11,9 +11,9 @@ license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-class-inspector"
makedepends="perl-file-sharedir-install perl-inc-latest"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/R/RE/REHSACK/$_pkgname-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/R/RE/REHSACK/File-ShareDir-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
@@ -29,5 +29,4 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-
sha512sums="890f33e96333f7b07707d722e59e7da9a287112062814ef294594ac67f2f7349f905c009e6cd70d3af3a4de85335b074ec5a61194f9b0495f3e793d6ca635853 File-ShareDir-1.118.tar.gz"
diff --git a/main/perl-file-slurp-tiny/APKBUILD b/main/perl-file-slurp-tiny/APKBUILD
index 8a606cdc6cb..7819f360948 100644
--- a/main/perl-file-slurp-tiny/APKBUILD
+++ b/main/perl-file-slurp-tiny/APKBUILD
@@ -1,35 +1,36 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-file-slurp-tiny
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=File-Slurp-Tiny
pkgver=0.004
-pkgrel=2
-pkgdesc="A simple, sane and efficient file slurper"
+pkgrel=4
+pkgdesc="A simple, sane and efficient file slurper [DISCOURAGED]"
url="https://metacpan.org/release/File-Slurp-Tiny/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/L/LE/LEONT/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/L/LE/LEONT/File-Slurp-Tiny-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="916af1da5375ced4ebc00cb2b908e53b027e7b4fcad9069d5109eb2c0623faaa1d2d4fc8aeefb22861c7304ec913696cec85c280a82fd9aa7236c902427bc5cf File-Slurp-Tiny-0.004.tar.gz"
+sha512sums="
+916af1da5375ced4ebc00cb2b908e53b027e7b4fcad9069d5109eb2c0623faaa1d2d4fc8aeefb22861c7304ec913696cec85c280a82fd9aa7236c902427bc5cf File-Slurp-Tiny-0.004.tar.gz
+"
diff --git a/main/perl-file-slurp/APKBUILD b/main/perl-file-slurp/APKBUILD
index 42b56adfd3b..f5d34760b59 100644
--- a/main/perl-file-slurp/APKBUILD
+++ b/main/perl-file-slurp/APKBUILD
@@ -1,30 +1,29 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-file-slurp
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=File-Slurp
pkgver=9999.32
-pkgrel=1
+pkgrel=3
pkgdesc="Simple and Efficient Reading/Writing/Modifying of Complete Files"
-url="https://metacpan.org/release/File-Slurp"
+url="https://metacpan.org/release/File-Slurp/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/C/CA/CAPOEIRAB/File-Slurp-$pkgver.tar.gz"
-
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- default_prepare
-}
-
build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -33,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="413337e0257e95e8e8d2aabf684bec81e746000a741809935b058490b8c42b494064f724e618b250330d8bb67a0a7a2a5adad17e3e6c96d4b193531a192a4d56 File-Slurp-9999.32.tar.gz"
+sha512sums="
+413337e0257e95e8e8d2aabf684bec81e746000a741809935b058490b8c42b494064f724e618b250330d8bb67a0a7a2a5adad17e3e6c96d4b193531a192a4d56 File-Slurp-9999.32.tar.gz
+"
diff --git a/main/perl-file-slurper/APKBUILD b/main/perl-file-slurper/APKBUILD
index 952719134ba..45e2f33bbdf 100644
--- a/main/perl-file-slurper/APKBUILD
+++ b/main/perl-file-slurper/APKBUILD
@@ -1,29 +1,31 @@
-# Automatically generated by apkbuild-cpan, template 2
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-file-slurper
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=File-Slurper
-pkgver=0.012
+pkgver=0.014
pkgrel=1
pkgdesc="A simple, sane and efficient module to slurp a file"
-url="https://metacpan.org/release/File-Slurper"
+url="https://metacpan.org/release/File-Slurper/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
checkdepends="perl-test-warnings"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/L/LE/LEONT/File-Slurper-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
+check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make
+ make test
}
package() {
@@ -31,9 +33,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="276b510c85b4e28fff4b8bd77c81031367b073426138743efb5d54fe01fa9825409f86090788779e96625b43207d1f864f348cc11554c51d36868dfed568f2bb File-Slurper-0.012.tar.gz"
+sha512sums="
+45474865b8c4a360ad04423c510c62f2a796081544499cf9ed335ffefe9d4087a844a1f988dfbd21b38237942eeead045923121e9786607c5270520b2b0af577 File-Slurper-0.014.tar.gz
+"
diff --git a/main/perl-file-tail/APKBUILD b/main/perl-file-tail/APKBUILD
index dedc4844f2a..935a9a71859 100644
--- a/main/perl-file-tail/APKBUILD
+++ b/main/perl-file-tail/APKBUILD
@@ -1,31 +1,29 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-file-tail
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=File-Tail
pkgver=1.3
-pkgrel=3
-pkgdesc="Perl extension for reading from continously updated files"
+pkgrel=5
+pkgdesc="Perl module for File-Tail"
url="https://metacpan.org/release/File-Tail/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/M/MG/MGRABNAR/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/M/MG/MGRABNAR/File-Tail-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
- make test
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
@@ -33,4 +31,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="942f87880d0d8b79c521248cdbc449daafbd117a2a3700e2dbcc7fe7a6046e5783e8616b6c32de513f85a56663b63c4dde217e9e124216ba6a605c645db2bde9 File-Tail-1.3.tar.gz"
+sha512sums="
+942f87880d0d8b79c521248cdbc449daafbd117a2a3700e2dbcc7fe7a6046e5783e8616b6c32de513f85a56663b63c4dde217e9e124216ba6a605c645db2bde9 File-Tail-1.3.tar.gz
+"
diff --git a/main/perl-file-temp/APKBUILD b/main/perl-file-temp/APKBUILD
index e0f5fbfe6e1..b6cbe4ed767 100644
--- a/main/perl-file-temp/APKBUILD
+++ b/main/perl-file-temp/APKBUILD
@@ -4,13 +4,12 @@ pkgname=perl-file-temp
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=File-Temp
pkgver=0.2311
-pkgrel=0
+pkgrel=2
pkgdesc="return name and handle of a temporary file safely"
url="https://metacpan.org/release/File-Temp/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/File-Temp-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
@@ -28,7 +27,9 @@ check() {
package() {
make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
+ # man pages are already provided by perl-doc
+ rm -rf "$pkgdir"/usr/share/man
+}
sha512sums="2db3f03f4d25013c60585cd3e6aa7e68fe9bb26f1957adf6674e9cae9e963a41c559d36862943703f567d116c82747b4fae0612253a784addeb53d7867a232d1 File-Temp-0.2311.tar.gz"
diff --git a/main/perl-file-which/APKBUILD b/main/perl-file-which/APKBUILD
index 899df456ebf..d648dfe609c 100644
--- a/main/perl-file-which/APKBUILD
+++ b/main/perl-file-which/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-file-which
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=File-Which
pkgver=1.27
-pkgrel=0
+pkgrel=1
pkgdesc="Perl implementation of the which utility as an API"
url="https://metacpan.org/release/File-Which/"
arch="noarch"
diff --git a/main/perl-filesys-notify-simple/APKBUILD b/main/perl-filesys-notify-simple/APKBUILD
index 5d97b8679ed..d3f2c40f165 100644
--- a/main/perl-filesys-notify-simple/APKBUILD
+++ b/main/perl-filesys-notify-simple/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-filesys-notify-simple
pkgver=0.14
-pkgrel=1
+pkgrel=2
pkgdesc="Filesys::Notify::Simple perl module"
url="https://metacpan.org/release/Filesys-Notify-Simple"
arch="noarch"
diff --git a/main/perl-font-afm/APKBUILD b/main/perl-font-afm/APKBUILD
index e591b1b2f0e..270a9b1a03b 100644
--- a/main/perl-font-afm/APKBUILD
+++ b/main/perl-font-afm/APKBUILD
@@ -1,34 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-font-afm
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Font-AFM
pkgver=1.20
-pkgrel=2
-pkgdesc="Interface to Adobe Font Metrics files"
+pkgrel=4
+pkgdesc="Perl module for Font-AFM"
url="https://metacpan.org/release/Font-AFM/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/G/GA/GAAS/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/G/GA/GAAS/Font-AFM-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="1fc74f0dbbed52937d512465a021148e93b2e0698189a6fc17eb1aa8951c934b0060a0256883118dc2a3a9086025468e0a851706306876568466bf4638fdb618 Font-AFM-1.20.tar.gz"
+sha512sums="
+1fc74f0dbbed52937d512465a021148e93b2e0698189a6fc17eb1aa8951c934b0060a0256883118dc2a3a9086025468e0a851706306876568466bf4638fdb618 Font-AFM-1.20.tar.gz
+"
diff --git a/main/perl-future/APKBUILD b/main/perl-future/APKBUILD
index e53d532ad7b..e547accbe81 100644
--- a/main/perl-future/APKBUILD
+++ b/main/perl-future/APKBUILD
@@ -1,29 +1,24 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-future
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Future
-pkgver=0.48
-pkgrel=0
+pkgver=0.50
+pkgrel=1
pkgdesc="represent an operation awaiting completion"
-url="https://metacpan.org/release/Future"
+url="https://metacpan.org/release/Future/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-module-build"
-checkdepends="perl-test-refcount perl-test-fatal perl-test-identity"
+makedepends="perl-dev perl-module-build"
+checkdepends="perl-test2-suite"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Future-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
-
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- perl Build.PL installdirs=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
./Build
}
@@ -32,9 +27,10 @@ check() {
}
package() {
- ./Build install destdir="$pkgdir"
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-
-sha512sums="ea12357d3b789b2e73394ffa885509c73811c5a0fbc1ddcf3af12a26b82ed2e651b2ae3bc48fb65ea1c2373cb9236f0794453885f3812b59f744d1b44991cc2d Future-0.48.tar.gz"
+sha512sums="
+d8c0011d0dcee9bb0317a394da34925d6a5e214ff8706158268d546f5b0e6d8fad7a8edafda2eada15bcca20d2da9ae722018c6dd0ff9a69bae1c0759776f616 Future-0.50.tar.gz
+"
diff --git a/main/perl-gd/APKBUILD b/main/perl-gd/APKBUILD
index fc2f8d3d774..246e383e6ee 100644
--- a/main/perl-gd/APKBUILD
+++ b/main/perl-gd/APKBUILD
@@ -4,8 +4,8 @@
pkgname=perl-gd
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=GD
-pkgver=2.75
-pkgrel=1
+pkgver=2.78
+pkgrel=0
pkgdesc="Perl interface to the gd2 graphics library"
url="https://metacpan.org/release/GD/"
arch="all"
@@ -13,7 +13,7 @@ license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
makedepends="perl-dev perl-extutils-pkgconfig gd-dev libjpeg-turbo-dev zlib-dev
libpng-dev freetype-dev libwebp-dev"
-checkdepends="perl-test-fork"
+checkdepends="perl-test-fork perl-test-nowarnings"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/R/RU/RURBAN/GD-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
@@ -35,5 +35,5 @@ package() {
}
sha512sums="
-d58af8973a419193e5ce9d141a7f6e4ab64d995d3752ec0fa7e5c3a580f6f037563ea97fe71ddefe1cea0d50e49de632f2d9de89c02dab9d7b40041a03e8c0c3 GD-2.75.tar.gz
+ef3df42c003f105fd1c313ea9e8b8b1e75912b4fdb274e73f2e4f5664a0adb8479a2e62fae5a493e37c36865f9dc37207d2d31e96316eb18a3c5384e07858591 GD-2.78.tar.gz
"
diff --git a/main/perl-gdgraph/APKBUILD b/main/perl-gdgraph/APKBUILD
index ea50c20c4d6..24c91442131 100644
--- a/main/perl-gdgraph/APKBUILD
+++ b/main/perl-gdgraph/APKBUILD
@@ -4,8 +4,8 @@
pkgname=perl-gdgraph
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=GDGraph
-pkgver=1.54
-pkgrel=3
+pkgver=1.56
+pkgrel=1
pkgdesc="Produces charts with GD"
url="https://metacpan.org/release/GDGraph/"
arch="noarch"
@@ -14,9 +14,8 @@ depends="perl perl-gdtextutil perl-gd"
makedepends="perl-dev"
checkdepends="perl-capture-tiny perl-test-exception"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/R/RU/RUZ/GDGraph-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/B/BP/BPS/GDGraph-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-options="!check" # tests fail due to tiff related issues (gd built without tiff)
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
@@ -35,5 +34,5 @@ package() {
}
sha512sums="
-0dd0da5fa0e879cf2addcbfdd02ee8e9e6af715b88b451dc29fe5028f30d7ba7fa0e126d07e7bb4f9a63e40b3be95a9cc0f6c061ea8644ba0ee7fdd2a7964fce GDGraph-1.54.tar.gz
+4a336e02cf3ca75b41ccef42d8790b00d7ff60c63686f49c3b0d1fe8ff29ce76c52d4603f74c9b2704e1f1d2ca71f2313dcb692ae10261dbf8e0e05a7172dc71 GDGraph-1.56.tar.gz
"
diff --git a/main/perl-gdtextutil/APKBUILD b/main/perl-gdtextutil/APKBUILD
index 2067f862510..ae3d89d9f60 100644
--- a/main/perl-gdtextutil/APKBUILD
+++ b/main/perl-gdtextutil/APKBUILD
@@ -1,36 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Maintainer: Valery Kartel <valery.kartel@gmail.com>
pkgname=perl-gdtextutil
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=GDTextUtil
pkgver=0.86
-pkgrel=2
-pkgdesc="text utilities for GD"
+pkgrel=4
+pkgdesc="Perl module for GDTextUtil"
url="https://metacpan.org/release/GDTextUtil/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-gd"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/M/MV/MVERB/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/M/MV/MVERB/GDTextUtil-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="0c503df81249b0b53a8e87d65f684cf7ff01184ef1fc0166d2f295332d4cb553b6b714f42d6915cd0798f899213cd9cffef12bd30f5fcab0abfa4d0be97c8b18 GDTextUtil-0.86.tar.gz"
+sha512sums="
+0c503df81249b0b53a8e87d65f684cf7ff01184ef1fc0166d2f295332d4cb553b6b714f42d6915cd0798f899213cd9cffef12bd30f5fcab0abfa4d0be97c8b18 GDTextUtil-0.86.tar.gz
+"
diff --git a/main/perl-getopt-long/APKBUILD b/main/perl-getopt-long/APKBUILD
index 8ee0feb3a05..af48c0c6f62 100644
--- a/main/perl-getopt-long/APKBUILD
+++ b/main/perl-getopt-long/APKBUILD
@@ -1,41 +1,38 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-getopt-long
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Getopt-Long
-pkgver=2.52
+pkgver=2.57
pkgrel=1
pkgdesc="Module to handle parsing command line options"
url="https://metacpan.org/release/Getopt-Long/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/J/JV/JV/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/J/JV/JV/Getopt-Long-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-doc() {
- default_doc
- replaces="perl-doc"
+ # man pages are already provided by perl-doc
+ rm -rf "$pkgdir"/usr/share/man
}
-sha512sums="eead028f9b4dc51e2123dc11edc485e6f51bfd2060c89bdd964ab2bf436b3e8a749bbc2f489661268906e207fc4d47f7dea6ec9559769b732dd525e46619a378 Getopt-Long-2.52.tar.gz"
+sha512sums="
+6b07f683b6f1371bc7f9b018ec659c049d58de25194965c6e2ba3a288e6802ba07257aa5d447bc082f0481d0956798d9f17521faf6a31d896bb3be0d17953b49 Getopt-Long-2.57.tar.gz
+"
diff --git a/main/perl-hash-multivalue/APKBUILD b/main/perl-hash-multivalue/APKBUILD
index b3e5fb70c57..3887772783c 100644
--- a/main/perl-hash-multivalue/APKBUILD
+++ b/main/perl-hash-multivalue/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-hash-multivalue
pkgver=0.16
-pkgrel=2
+pkgrel=4
pkgdesc="Hash::MultiValue perl module"
url="https://metacpan.org/release/Hash-MultiValue/"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/A/AR/ARISTOTLE/Hash-MultiValue-$pkgver.tar.gz"
diff --git a/main/perl-heap/APKBUILD b/main/perl-heap/APKBUILD
index ee783585793..ac3fe8f3011 100644
--- a/main/perl-heap/APKBUILD
+++ b/main/perl-heap/APKBUILD
@@ -1,29 +1,29 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Sheila Aman <sheila@vulpine.house>
# Maintainer: Sheila Aman <sheila@vulpine.house>
pkgname=perl-heap
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Heap
pkgver=0.80
-pkgrel=4
-pkgdesc="Perl extensions for keeping data partially sorted"
+pkgrel=6
+pkgdesc="Perl module for Heap"
url="https://metacpan.org/release/Heap/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/J/JM/JMM/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/J/JM/JMM/Heap-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -32,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="133e2668a90de8cea13302464188415fa30e4a0a85fb51af7409ff2e3466e33a6daf172b2466f046c5275db6ab19bb573e8b2d14acf616b110bdd60869865690 Heap-0.80.tar.gz"
+sha512sums="
+133e2668a90de8cea13302464188415fa30e4a0a85fb51af7409ff2e3466e33a6daf172b2466f046c5275db6ab19bb573e8b2d14acf616b110bdd60869865690 Heap-0.80.tar.gz
+"
diff --git a/main/perl-html-formatter/APKBUILD b/main/perl-html-formatter/APKBUILD
index 97b2a142f05..fe8655ad2b9 100644
--- a/main/perl-html-formatter/APKBUILD
+++ b/main/perl-html-formatter/APKBUILD
@@ -4,7 +4,7 @@
pkgname=perl-html-formatter
_pkgreal=HTML-Formatter
pkgver=2.16
-pkgrel=2
+pkgrel=3
pkgdesc="Base class for HTML formatters"
url="https://metacpan.org/release/HTML-Formatter/"
arch="noarch"
diff --git a/main/perl-html-formattext-withlinks-andtables/APKBUILD b/main/perl-html-formattext-withlinks-andtables/APKBUILD
index 719b220d6c4..ff3df705e04 100644
--- a/main/perl-html-formattext-withlinks-andtables/APKBUILD
+++ b/main/perl-html-formattext-withlinks-andtables/APKBUILD
@@ -1,35 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-html-formattext-withlinks-andtables
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=HTML-FormatText-WithLinks-AndTables
pkgver=0.07
-pkgrel=2
-pkgdesc="Perl module for HTML-FormatText-WithLinks-AndTables"
+pkgrel=4
+pkgdesc="Converts HTML to Text with tables intact"
url="https://metacpan.org/release/HTML-FormatText-WithLinks-AndTables/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl perl-html-formattext-withlinks"
-checkdepends="perl-test-pod"
+depends="perl perl-html-formattext-withlinks perl-html-tree perl-html-formatter"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DA/DALEEVANS/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/D/DA/DALEEVANS/HTML-FormatText-WithLinks-AndTables-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- if [ -e Build.PL ]; then
- perl Build.PL installdirs=vendor
- else
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- fi
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
+ find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="3deea4406f7f9dd55d22d60c169d3889be7ef802a43507fb8b608c45ecdff52f743c9cb3a4703f1e44cdcf033c4c64b4c993192fe1a39efc9eae78c6fb66ff3e HTML-FormatText-WithLinks-AndTables-0.07.tar.gz"
+sha512sums="
+3deea4406f7f9dd55d22d60c169d3889be7ef802a43507fb8b608c45ecdff52f743c9cb3a4703f1e44cdcf033c4c64b4c993192fe1a39efc9eae78c6fb66ff3e HTML-FormatText-WithLinks-AndTables-0.07.tar.gz
+"
diff --git a/main/perl-html-formattext-withlinks/APKBUILD b/main/perl-html-formattext-withlinks/APKBUILD
index 87942f169a2..21b5f3df278 100644
--- a/main/perl-html-formattext-withlinks/APKBUILD
+++ b/main/perl-html-formattext-withlinks/APKBUILD
@@ -4,7 +4,7 @@
pkgname=perl-html-formattext-withlinks
_pkgreal=HTML-FormatText-WithLinks
pkgver=0.15
-pkgrel=4
+pkgrel=5
pkgdesc="HTML to text conversion with links as footnotes"
url="https://metacpan.org/release/HTML-FormatText-WithLinks/"
arch="noarch"
diff --git a/main/perl-html-mason/APKBUILD b/main/perl-html-mason/APKBUILD
index 2f400156369..1f96f4fb615 100644
--- a/main/perl-html-mason/APKBUILD
+++ b/main/perl-html-mason/APKBUILD
@@ -1,9 +1,10 @@
-# Automatically generated by apkbuild-cpan, template 2
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-html-mason
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=HTML-Mason
-pkgver=1.59
+pkgver=1.60
pkgrel=1
pkgdesc="High-performance, dynamic web site authoring system"
url="https://metacpan.org/release/HTML-Mason/"
@@ -13,21 +14,21 @@ depends="
perl perl-cache-cache perl-log-any perl-html-parser perl-class-container perl-params-validate
perl-exception-class perl-cgi
"
+makedepends="perl-dev"
checkdepends="perl-test-deep"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/HTML-Mason-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
-
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
+check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make
+ make test
}
package() {
@@ -35,9 +36,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="3a8053d976345c7bd1d04aab659e3b4dd541264ece806e6d3bda605b6ecb16887ecce9a310bf27890aab40a129c81ba2dbad60c2edd80681a53d159becb3eda1 HTML-Mason-1.59.tar.gz"
+sha512sums="
+16f3acbe312020012b073aaa1b140978f97d77be64f85289089a5eeb25bdc97733ce51d68e871f640c54a8e5cd91127e81bb69076b522f2d8dc27e393d88c022 HTML-Mason-1.60.tar.gz
+"
diff --git a/main/perl-html-parser/APKBUILD b/main/perl-html-parser/APKBUILD
index 4e34e5d396d..36661c0a4a3 100644
--- a/main/perl-html-parser/APKBUILD
+++ b/main/perl-html-parser/APKBUILD
@@ -1,11 +1,11 @@
-# Automatically generated by apkbuild-cpan, template 3
+# Automatically generated by apkbuild-cpan, template 4
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-html-parser
+pkgver=3.82
+pkgrel=0
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=HTML-Parser
-pkgver=3.78
-pkgrel=1
pkgdesc="HTML parser class"
url="https://metacpan.org/release/HTML-Parser/"
arch="all"
@@ -18,7 +18,10 @@ builddir="$srcdir/$_pkgreal-$pkgver"
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
make
}
@@ -29,9 +32,8 @@ check() {
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
sha512sums="
-5bbed1324d79f7d677c31eb6e95c51c46742d596c30ec1efbee90c387eebf90b357b0b0cbb3da35326a3a2429bad837f957393bc0316ea1b0170c094467b06d3 HTML-Parser-3.78.tar.gz
+c3c173097eabe46dc95cf408915f1f33cdac2dab2430ea144258741cdcd4c8b90c5b11f4e1114da2703a4412aecfea778e003a3d8eb4c61ee433f64b07489d18 HTML-Parser-3.82.tar.gz
"
diff --git a/main/perl-html-quoted/APKBUILD b/main/perl-html-quoted/APKBUILD
index b977de3f3ba..2b335088305 100644
--- a/main/perl-html-quoted/APKBUILD
+++ b/main/perl-html-quoted/APKBUILD
@@ -1,16 +1,16 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-html-quoted
-pkgver=0.04
-pkgrel=2
+pkgver=0.05
+pkgrel=1
pkgdesc="HTML::Quoted perl module"
url="https://metacpan.org/release/HTML-Quoted/"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl perl-html-parser"
makedepends="perl-module-install"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/T/TS/TSIBLEY/HTML-Quoted-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/B/BP/BPS/HTML-Quoted-$pkgver.tar.gz"
builddir="$srcdir/HTML-Quoted-$pkgver"
@@ -28,4 +28,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="a13fb07d683741ec32679780d7183c849c534fb79e2b5f5613f9142e2b877938712d8bf20bb1e540ad5f4532cd7f2fcbf42bc3be5e931d7a4a2ae12bd0af0cc0 HTML-Quoted-0.04.tar.gz"
+sha512sums="
+5a9d9b2c9a5d7730ea304e3088ddbf51a9e2367b975e51831a8ed6468e39383575b0d1fa86269f762361cfc7dd9b9caa784d59989260bbb8b610917b5237af25 HTML-Quoted-0.05.tar.gz
+"
diff --git a/main/perl-html-rewriteattributes/APKBUILD b/main/perl-html-rewriteattributes/APKBUILD
index 8c19bd422d4..01c644cbdcf 100644
--- a/main/perl-html-rewriteattributes/APKBUILD
+++ b/main/perl-html-rewriteattributes/APKBUILD
@@ -1,33 +1,29 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-html-rewriteattributes
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=HTML-RewriteAttributes
pkgver=0.05
-pkgrel=3
-pkgdesc="Concise attribute rewriting"
+pkgrel=5
+pkgdesc="concise attribute rewriting"
url="https://metacpan.org/release/HTML-RewriteAttributes/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-html-tagset perl-uri perl-html-parser"
-makedepends="perl-module-install"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/T/TS/TSIBLEY/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/T/TS/TSIBLEY/HTML-RewriteAttributes-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -36,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="6a654dd2767010781f7fd145110dda4ebe71ed82aa6fea5932fa301b23f885d928c7dc0cea562ab5c5cd4f0881dadd590c4a4ae052285fcd261ac4ee9d25eb70 HTML-RewriteAttributes-0.05.tar.gz"
+sha512sums="
+6a654dd2767010781f7fd145110dda4ebe71ed82aa6fea5932fa301b23f885d928c7dc0cea562ab5c5cd4f0881dadd590c4a4ae052285fcd261ac4ee9d25eb70 HTML-RewriteAttributes-0.05.tar.gz
+"
diff --git a/main/perl-html-scrubber/APKBUILD b/main/perl-html-scrubber/APKBUILD
index 98d53fde6bb..abcdd91913f 100644
--- a/main/perl-html-scrubber/APKBUILD
+++ b/main/perl-html-scrubber/APKBUILD
@@ -1,29 +1,39 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-html-scrubber
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=HTML-Scrubber
pkgver=0.19
-pkgrel=1
-pkgdesc="Perl extension for scrubbing/sanitizing html"
-url="https://metacpan.org/release/HTML-Scrubber"
+pkgrel=3
+pkgdesc="Perl extension for scrubbing/sanitizing HTML"
+url="https://metacpan.org/release/HTML-Scrubber/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-html-parser"
-makedepends="perl-module-build"
+makedepends="perl-dev"
+checkdepends="perl-test-memory-cycle perl-test-differences"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/N/NI/NIGELM/HTML-Scrubber-$pkgver.tar.gz"
-
builddir="$srcdir/$_pkgreal-$pkgver"
+options="!check" # missing checkdepends
build() {
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
package() {
make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="6894c58315f38e81d645b999cca180b1e86a64e8ae913df5891a6293c9c4950d99f1d1c5a03b7d584aff381afc49c16fe2e06541203c8dea881479cc981ee262 HTML-Scrubber-0.19.tar.gz"
+sha512sums="
+6894c58315f38e81d645b999cca180b1e86a64e8ae913df5891a6293c9c4950d99f1d1c5a03b7d584aff381afc49c16fe2e06541203c8dea881479cc981ee262 HTML-Scrubber-0.19.tar.gz
+"
diff --git a/main/perl-html-tagset/APKBUILD b/main/perl-html-tagset/APKBUILD
index 157a803df09..ffc74ac4981 100644
--- a/main/perl-html-tagset/APKBUILD
+++ b/main/perl-html-tagset/APKBUILD
@@ -1,35 +1,38 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 4
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-html-tagset
+pkgver=3.24
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=HTML-Tagset
-pkgver=3.20
-pkgrel=3
-pkgdesc="data tables useful in parsing HTML"
+pkgdesc="Data tables useful in parsing HTML"
url="https://metacpan.org/release/HTML-Tagset/"
arch="noarch"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+license="Artistic-2.0"
depends="perl"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/P/PE/PETDANCE/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/P/PE/PETDANCE/HTML-Tagset-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="b53c099a96b493c3d03c51fcf3d58dd3b830069583f2d07477175ea234c43e91a0b380c82a71126f971faf2768e832af34967d08d899db7653d65613d6530072 HTML-Tagset-3.20.tar.gz"
+sha512sums="
+e13e4f0dcc49cf8c4ab7cacfa82fb0c8be3a24f7013ab55003b1c0079cbd5b8bb6912ce1b8af794f89791a097c31558b113c9845807e428ccf5d97c3c38b9e24 HTML-Tagset-3.24.tar.gz
+"
diff --git a/main/perl-html-tree/APKBUILD b/main/perl-html-tree/APKBUILD
index 1870179ea7e..d962ae14eeb 100644
--- a/main/perl-html-tree/APKBUILD
+++ b/main/perl-html-tree/APKBUILD
@@ -1,35 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 2
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-html-tree
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=HTML-Tree
pkgver=5.07
-pkgrel=2
+pkgrel=5
pkgdesc="Work with HTML in a DOM-like tree structure"
url="https://metacpan.org/release/HTML-Tree/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-html-tagset perl-html-parser"
-makedepends="perl-module-build perl-test-fatal"
+makedepends="perl-dev perl-module-build"
+checkdepends="perl-uri perl-test-fatal perl-test-leaktrace"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/K/KE/KENTNL/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/K/KE/KENTNL/HTML-Tree-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare || return 1
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- perl Build.PL installdirs=vendor || return 1
+ perl Build.PL --installdirs=vendor
+ ./Build
}
-build() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- ./Build && ./Build test
+check() {
+ ./Build test
}
package() {
- ./Build install destdir="$pkgdir" || return 1
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-
-sha512sums="a1faaf547d7db323388d5f6b289ab96887de5a80add55aefd380e4b540948514550a86785bdccf0776dfff38085b6bd3e98228f96231264217adcfc2f132c5de HTML-Tree-5.07.tar.gz"
+sha512sums="
+a1faaf547d7db323388d5f6b289ab96887de5a80add55aefd380e4b540948514550a86785bdccf0776dfff38085b6bd3e98228f96231264217adcfc2f132c5de HTML-Tree-5.07.tar.gz
+"
diff --git a/main/perl-http-body/APKBUILD b/main/perl-http-body/APKBUILD
index d78ff6b8e21..d958eb0b663 100644
--- a/main/perl-http-body/APKBUILD
+++ b/main/perl-http-body/APKBUILD
@@ -1,30 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-http-body
-pkgver=1.22
-pkgrel=1
-pkgdesc="HTTP::Body perl module"
-url="https://search.cpan.org/dist/HTTP-Body/"
+pkgver=1.23
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=HTTP-Body
+pkgdesc="HTTP Body Parser"
+url="https://metacpan.org/release/HTTP-Body/"
arch="noarch"
-license="GPL-2.0 or Artistic"
-depends="perl perl-http-message perl-uri"
-makedepends="perl-test-deep"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-http-message"
+checkdepends="perl-test-deep"
subpackages="$pkgname-doc"
-source="https://search.cpan.org/CPAN/authors/id/G/GE/GETTY/HTTP-Body-$pkgver.tar.gz"
-builddir="$srcdir"/HTTP-Body-$pkgver
+source="https://cpan.metacpan.org/authors/id/G/GE/GETTY/HTTP-Body-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="62665989d76699a3c3747d8f4e23d2009488bc229220bcf6fc07fc425e6ac5118f6ea48c75af681c2f29e9ed644d7a7979368cc36df77aca0544786b523c9cfe HTTP-Body-1.22.tar.gz"
+sha512sums="
+b02fb8652ceebdaa858ff12fe759ded62eefa7f23e5bf8b90e31a52d4433f13d29986f9646141b92a6a4ea58e1be007c6f675c3e2b26559fa0ff9333e69f3ebb HTTP-Body-1.23.tar.gz
+"
diff --git a/main/perl-http-cookiejar/APKBUILD b/main/perl-http-cookiejar/APKBUILD
new file mode 100644
index 00000000000..1d2df34ba83
--- /dev/null
+++ b/main/perl-http-cookiejar/APKBUILD
@@ -0,0 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=perl-http-cookiejar
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=HTTP-CookieJar
+pkgver=0.014
+pkgrel=1
+pkgdesc="minimalist HTTP user agent cookie jar"
+url="https://metacpan.org/release/HTTP-CookieJar/"
+arch="noarch"
+license="Apache-2.0"
+depends="perl perl-http-date"
+checkdepends="perl-uri perl-test-deep perl-test-requires"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/HTTP-CookieJar-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ 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/main/perl-http-cookies/APKBUILD b/main/perl-http-cookies/APKBUILD
index 991f993c950..b7702f7f4c2 100644
--- a/main/perl-http-cookies/APKBUILD
+++ b/main/perl-http-cookies/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-http-cookies
_pkgreal=HTTP-Cookies
-pkgver=6.10
+pkgver=6.11
pkgrel=0
pkgdesc="HTTP cookie jars"
url="https://metacpan.org/release/HTTP-Cookies"
@@ -30,6 +30,6 @@ 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/main/perl-http-daemon/APKBUILD b/main/perl-http-daemon/APKBUILD
index c72534632c6..888144968dc 100644
--- a/main/perl-http-daemon/APKBUILD
+++ b/main/perl-http-daemon/APKBUILD
@@ -1,34 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-http-daemon
-pkgver=6.14
-pkgrel=0
-pkgdesc="HTTP::Daemon perl module"
-url="https://metacpan.org/release/HTTP-Daemon"
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=HTTP-Daemon
+pkgver=6.16
+pkgrel=2
+pkgdesc="A simple http server class"
+replaces="perl-libwww"
+url="https://metacpan.org/release/HTTP-Daemon/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl perl-http-date perl-http-message"
-makedepends="perl-module-build-tiny"
+depends="perl perl-http-date perl-http-message perl-lwp-mediatypes"
+makedepends="perl-dev perl-module-build-tiny perl-module-build"
checkdepends="perl-test-needs"
-replaces="perl-libwww"
-subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/O/OA/OALDERS/HTTP-Daemon-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-builddir="$srcdir"/HTTP-Daemon-$pkgver
build() {
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- make
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
+ ./Build
}
check() {
- make test
+ ./Build test
}
package() {
- make DESTDIR="$pkgdir" install
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
sha512sums="
-baae522b24211d04bc53d0f89f9e7b6b98681772eb79e28a72aa2b57c023a92e1264923abc2fefc24e28be265e17530541fd9d3a559d5bcfca00a8f5b0e9d85e HTTP-Daemon-6.14.tar.gz
+09e3c5c98c6f22bcb494eae9a28990d52a98c3b1be1b0ca001fc364b3891f7f43f0468aa7274070c64ca11c6b6313591e064084c0b2f5bc6b8bd71708f390d64 HTTP-Daemon-6.16.tar.gz
"
diff --git a/main/perl-http-date/APKBUILD b/main/perl-http-date/APKBUILD
index 6e38d703a05..37d3679c537 100644
--- a/main/perl-http-date/APKBUILD
+++ b/main/perl-http-date/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-http-date
-_pkgname=HTTP-Date
-pkgver=6.05
-pkgrel=1
+_pkgreal=HTTP-Date
+pkgver=6.06
+pkgrel=0
pkgdesc="Perl module date conversion routines"
url="https://metacpan.org/pod/HTTP::Date"
arch="noarch"
@@ -12,7 +12,7 @@ depends="perl"
replaces="perl-libwww"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/O/OA/OALDERS/HTTP-Date-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
@@ -30,4 +30,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="08a427a860161cd0d7a34a4fa3eb6bf6439c2504478a308ff560de0e6620c20df46f004cfcb719e3d19e35fdb650728d6983ffce1423f4d9da06f91d85c7b927 HTTP-Date-6.05.tar.gz"
+sha512sums="
+e1555a9b5dff3b2041594f9b480f12a022eb03b0f1628f884fc88a3aed687ba7a6c7d743198c4ca7ba32df22a98fd070bd4a2bc2494703ec72e16303c9cfb3e6 HTTP-Date-6.06.tar.gz
+"
diff --git a/main/perl-http-message/APKBUILD b/main/perl-http-message/APKBUILD
index 91cabaf2b60..030c08b126f 100644
--- a/main/perl-http-message/APKBUILD
+++ b/main/perl-http-message/APKBUILD
@@ -2,16 +2,19 @@
# Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house>
pkgname=perl-http-message
_pkgreal=HTTP-Message
-pkgver=6.37
+_author=OALDERS
+_au=${_author%%"${_author#??}"}
+_a=${_author%%"${_author#?}"}
+pkgver=6.45
pkgrel=0
pkgdesc="HTTP style message"
url="https://metacpan.org/release/HTTP-Message"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl perl-http-date perl-uri perl-io-html perl-encode-locale perl-lwp-mediatypes"
+depends="perl perl-clone>=0.46 perl-http-date perl-uri perl-io-html perl-encode-locale perl-lwp-mediatypes"
checkdepends="perl-try-tiny perl-test-needs"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/O/OA/OALDERS/HTTP-Message-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/$_a/$_au/$_author/HTTP-Message-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
prepare() {
@@ -33,5 +36,5 @@ package() {
}
sha512sums="
-28fd5d189135e50fa38d7eecd4f12c8ad177a80da0093109243041fc8d207b12e1f24800e0e86a40dffc382b18a493e33cbd41dbd3a26438214dd77e1e90c9cf HTTP-Message-6.37.tar.gz
+b72ab9068c5f9ddb41f89b2a84887393f2c1bd14b462a1a60c03b4560800cfbf37c76f4bdd7c08f1ce9bf616242c2e39e0ff93859ed61268c48c978322a6d03d HTTP-Message-6.45.tar.gz
"
diff --git a/main/perl-http-negotiate/APKBUILD b/main/perl-http-negotiate/APKBUILD
index 09112d71572..2e3d17b56ba 100644
--- a/main/perl-http-negotiate/APKBUILD
+++ b/main/perl-http-negotiate/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-http-negotiate
pkgver=6.01
-pkgrel=3
+pkgrel=5
pkgdesc="HTTP::Negotiate perl module"
url="https://metacpan.org/release/HTTP-Negotiate/"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl perl-http-message"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/G/GA/GAAS/HTTP-Negotiate-$pkgver.tar.gz"
diff --git a/main/perl-importer/APKBUILD b/main/perl-importer/APKBUILD
index d6d2ad4dd20..8fa49d9a540 100644
--- a/main/perl-importer/APKBUILD
+++ b/main/perl-importer/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-importer
pkgver=0.026
-pkgrel=1
+pkgrel=3
pkgdesc="Alternative but compatible interface to modules that export symbols."
url="https://metacpan.org/release/Importer"
arch="noarch"
-license="PerlArtistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/E/EX/EXODIST/Importer-$pkgver.tar.gz"
diff --git a/main/perl-inc-latest/APKBUILD b/main/perl-inc-latest/APKBUILD
index 4e58f5460ce..ccf1659ba51 100644
--- a/main/perl-inc-latest/APKBUILD
+++ b/main/perl-inc-latest/APKBUILD
@@ -1,11 +1,11 @@
# Automatically generated by apkbuild-cpan, template 3
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=perl-inc-latest
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=inc-latest
pkgver=0.500
-pkgrel=1
+pkgrel=3
pkgdesc="use modules bundled in inc/ if they are newer than installed ones"
url="https://metacpan.org/release/inc-latest/"
arch="noarch"
@@ -31,4 +31,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="b312d1dfce963322796bc0127f0ecd82c12baacf9e5df40d9acc093221edd80f3696ce6d9f185ed24b21983147363d1d0ff3e273b8b5ce7559a6f16983a1385c inc-latest-0.500.tar.gz"
+sha512sums="
+b312d1dfce963322796bc0127f0ecd82c12baacf9e5df40d9acc093221edd80f3696ce6d9f185ed24b21983147363d1d0ff3e273b8b5ce7559a6f16983a1385c inc-latest-0.500.tar.gz
+"
diff --git a/main/perl-inline-c/APKBUILD b/main/perl-inline-c/APKBUILD
index 38553604125..997d4ccf833 100644
--- a/main/perl-inline-c/APKBUILD
+++ b/main/perl-inline-c/APKBUILD
@@ -1,38 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-inline-c
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Inline-C
pkgver=0.82
-pkgrel=0
-pkgdesc="Perl module for Inline-C"
-url="https://metacpan.org/dist/Inline-C"
+pkgrel=3
+pkgdesc="C Language Support for Inline"
+url="https://metacpan.org/release/Inline-C/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-options="!check" # fixme: add checkdepends
-depends="perl"
-makedepends="perl-file-sharedir-install"
+depends="perl perl-parse-recdescent perl-inline"
+makedepends="perl-dev perl-file-sharedir-install"
+checkdepends="perl-yaml-libyaml perl-test-warn perl-file-copy-recursive"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/E/ET/ETJ/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/E/ET/ETJ/Inline-C-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- default_prepare
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
+options="!check" # no perl-pegex
build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
- make install DESTDIR="$pkgdir"
- find "$pkgdir" -name perllocal.pod -delete
+ make DESTDIR="$pkgdir" install
+ find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
sha512sums="
diff --git a/main/perl-inline/APKBUILD b/main/perl-inline/APKBUILD
index 0d79001b457..59ff520daa1 100644
--- a/main/perl-inline/APKBUILD
+++ b/main/perl-inline/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-inline
-_pkgname=Inline
+_pkgreal=Inline
pkgver=0.86
-pkgrel=1
+pkgrel=2
pkgdesc="Write Perl subroutines in other programming languages"
url="https://metacpan.org/pod/distribution/Inline/lib/Inline.pod"
arch="noarch"
@@ -12,7 +12,7 @@ depends="perl"
checkdepends="perl-test-warn"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/I/IN/INGY/Inline-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
+builddir="$srcdir/$_pkgreal-$pkgver"
prepare() {
default_prepare
diff --git a/main/perl-io-captureoutput/APKBUILD b/main/perl-io-captureoutput/APKBUILD
deleted file mode 100644
index 708f84eddbf..00000000000
--- a/main/perl-io-captureoutput/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor:
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
-pkgname=perl-io-captureoutput
-_pkgreal=IO-CaptureOutput
-pkgver=1.1105
-pkgrel=1
-pkgdesc="capture STDOUT and STDERR from Perl code, subprocesses or XS"
-url="https://metacpan.org/pod/IO::CaptureOutput"
-arch="noarch"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/$_pkgreal-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- default_prepare
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
-build() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="8ca9485982d6bfae08ec322c28efd8f673f2a6705421ac5d680c228c436e7a5c8e18a16ff9712062631c35a91e6d19d9518263135db469c47083ce30814cf064 IO-CaptureOutput-1.1105.tar.gz"
diff --git a/main/perl-io-html/APKBUILD b/main/perl-io-html/APKBUILD
index dc7c8c55740..eb6ab409214 100644
--- a/main/perl-io-html/APKBUILD
+++ b/main/perl-io-html/APKBUILD
@@ -4,7 +4,7 @@ pkgname=perl-io-html
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=IO-HTML
pkgver=1.004
-pkgrel=0
+pkgrel=1
pkgdesc="Open an HTML file with automatic charset detection"
url="https://metacpan.org/release/IO-HTML/"
arch="noarch"
diff --git a/main/perl-io-multiplex/APKBUILD b/main/perl-io-multiplex/APKBUILD
index ae5e4f19e4e..a72795d889f 100644
--- a/main/perl-io-multiplex/APKBUILD
+++ b/main/perl-io-multiplex/APKBUILD
@@ -1,17 +1,17 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-io-multiplex
-_realname=IO-Multiplex
+_pkgreal=IO-Multiplex
pkgver=1.16
-pkgrel=3
+pkgrel=5
pkgdesc="Perl module to manage IO on many file handles"
url="https://metacpan.org/pod/IO::Multiplex"
arch="noarch"
-license="Artistic-Perl-1.0 OR GPL-1.0-or-later"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/B/BB/BBB/$_realname-$pkgver.tar.gz"
-builddir="$srcdir"/$_realname-$pkgver
+source="https://cpan.metacpan.org/authors/id/B/BB/BBB/IO-Multiplex-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
diff --git a/main/perl-io-socket-inet6/APKBUILD b/main/perl-io-socket-inet6/APKBUILD
index 75ef8a430a0..43b4a77bc6d 100644
--- a/main/perl-io-socket-inet6/APKBUILD
+++ b/main/perl-io-socket-inet6/APKBUILD
@@ -1,29 +1,24 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-io-socket-inet6
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=IO-Socket-INET6
pkgver=2.73
-pkgrel=0
-pkgdesc="Object interface for AF_INET|AF_INET6 domain sockets"
-url="https://metacpan.org/pod/IO::Socket::INET6"
+pkgrel=2
+pkgdesc="[ DEPRECATED!! ] Object interface for AF_INET/AF_INET6 domain sockets"
+url="https://metacpan.org/release/IO-Socket-INET6/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-socket6"
-makedepends="perl-module-build"
-options="!check" # No ipv6 in buildozer
+makedepends="perl-dev perl-module-build"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/IO-Socket-INET6-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- perl Build.PL installdirs=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
./Build
}
@@ -32,7 +27,7 @@ check() {
}
package() {
- ./Build install destdir="$pkgdir"
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
diff --git a/main/perl-io-socket-ssl/APKBUILD b/main/perl-io-socket-ssl/APKBUILD
index eea17721805..e1bbde43ff6 100644
--- a/main/perl-io-socket-ssl/APKBUILD
+++ b/main/perl-io-socket-ssl/APKBUILD
@@ -3,7 +3,7 @@
pkgname=perl-io-socket-ssl
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=IO-Socket-SSL
-pkgver=2.074
+pkgver=2.085
pkgrel=0
pkgdesc="Nearly transparent SSL encapsulation for IO::Socket::INET."
url="https://metacpan.org/release/IO-Socket-SSL/"
@@ -31,5 +31,5 @@ package() {
}
sha512sums="
-cafbf11a986b8fb5ce06bdf1e7a83741e2eef74d4bf054f0e0cd490959eddf54d32d3d4e786de52750dccc07139d8a1b5d5979080d0f1c1464e0004ccf98a6b0 IO-Socket-SSL-2.074.tar.gz
+c4e045e88f69579d53a3663ed8f74d342fe3529e24e06d9e7d299debafdb840839c6f5bccb579b4d03f7501615439dba4661ac006312f379a2598a3030634cfd IO-Socket-SSL-2.085.tar.gz
"
diff --git a/main/perl-io-stringy/APKBUILD b/main/perl-io-stringy/APKBUILD
index 7ab047b2d02..c202e5d06df 100644
--- a/main/perl-io-stringy/APKBUILD
+++ b/main/perl-io-stringy/APKBUILD
@@ -1,18 +1,18 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-io-stringy
-_realname=IO-Stringy
+_pkgreal=IO-Stringy
pkgver=2.113
-pkgrel=1
+pkgrel=3
pkgdesc="A Perl module for I/O on in-core objects like strings and arrays"
url="https://metacpan.org/pod/IO::Stringy"
arch="noarch"
-license="Artistic-Perl-1.0 OR GPL-1.0-or-later"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/C/CA/CAPOEIRAB/IO-Stringy-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
@@ -29,6 +29,4 @@ package() {
find "$pkgdir" -name perllocal.pod -delete
}
-
-
sha512sums="5af104766c20b4336649dc4a19554ad204506c2476b4bf7d8ad7c2cfab15f0296efadb9019cd57e770a2a3c5f5686f7f010bddbd6efd51d300c54ca36286f094 IO-Stringy-2.113.tar.gz"
diff --git a/main/perl-io-tty/APKBUILD b/main/perl-io-tty/APKBUILD
index 9b55e70daed..932ac1287e4 100644
--- a/main/perl-io-tty/APKBUILD
+++ b/main/perl-io-tty/APKBUILD
@@ -4,8 +4,8 @@
pkgname=perl-io-tty
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=IO-Tty
-pkgver=1.16
-pkgrel=4
+pkgver=1.20
+pkgrel=0
pkgdesc="Pseudo ttys and constants"
url="https://metacpan.org/release/IO-Tty/"
arch="all"
@@ -14,7 +14,8 @@ depends="perl"
makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/T/TO/TODDR/IO-Tty-$pkgver.tar.gz
-disable-failing-test.patch"
+ disable-failing-test.patch
+ "
builddir="$srcdir/$_pkgreal-$pkgver"
# On the builders, tests fail randomly on ARM when using Perl 5.36.0
@@ -39,8 +40,7 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-
sha512sums="
-a6f28a8796992645c4b2ddab5b3a76f49e61a891442078ef8249088d077108ea63bb4c8000cf39d15d13801b82e1cfcbe6ea0e6542789ab28385d83e03f6a9de IO-Tty-1.16.tar.gz
+a411dcc3da4adf4913ceaca7d97198041c6870ac8b579a1d5c2517d984fab4cc8108962b23ee694da9e0c952f35d695e636ff35589873b95a86c2bf8c1838ee4 IO-Tty-1.20.tar.gz
37c8aae630d4ee80b20b3540ed7fb5840b9a995e2ee489cbad8ace503ac9f596b38d01cb46e55d339898cc60d23581b451b71b27a6b871bc8ef84d1be2600427 disable-failing-test.patch
"
diff --git a/main/perl-io/APKBUILD b/main/perl-io/APKBUILD
index 62ad5a0e7ac..350e26a0769 100644
--- a/main/perl-io/APKBUILD
+++ b/main/perl-io/APKBUILD
@@ -4,7 +4,7 @@
pkgname=perl-io
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=IO
-pkgver=1.48
+pkgver=1.55
pkgrel=1
pkgdesc="Perl core IO modules"
url="https://metacpan.org/release/IO/"
@@ -12,7 +12,6 @@ arch="all"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
makedepends="perl-dev"
-subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/T/TO/TODDR/IO-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
@@ -30,8 +29,11 @@ check() {
package() {
make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
+
+ # man pages are already provided by perl-doc
+ rm -rf "$pkgdir"/usr/share/man
}
sha512sums="
-2fbbd870785d6413ff49f75972eb8b18ec641545be939b958f6ab5301c7ef8fb448e7b23593f91a3607ee6a121411c2b21d4c2cec64bfba8086caf89b52d81d6 IO-1.48.tar.gz
+e52fc6e06400e3fb54e0017d25bdbd6a67b8a39a1f326af86af914623901f3e3629f9b51bf3e8a3619cf087cdecbf9cf4bf72b1f790b4f8df78ed86eadacd6a2 IO-1.55.tar.gz
"
diff --git a/main/perl-ipc-run/APKBUILD b/main/perl-ipc-run/APKBUILD
new file mode 100644
index 00000000000..ce7226864e6
--- /dev/null
+++ b/main/perl-ipc-run/APKBUILD
@@ -0,0 +1,36 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=perl-ipc-run
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=IPC-Run
+pkgver=20231003.0
+pkgrel=0
+pkgdesc="system() and background procs w/ piping, redirs, ptys (Unix, Win32)"
+url="https://metacpan.org/release/IPC-Run/"
+arch="noarch"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-io-tty"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/T/TO/TODDR/IPC-Run-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
+}
+
+sha512sums="
+81b94715e61f2a302ba4cfbd03f6af14ab66d438dfdf58187ccf8b0f7ff562fd343ef560ad48dad8118342dd493530560ac89beca6de2818663d556d18feff90 IPC-Run-20231003.0.tar.gz
+"
diff --git a/main/perl-ipc-run3/APKBUILD b/main/perl-ipc-run3/APKBUILD
index 617372fe2b6..ef9fb9a8e0f 100644
--- a/main/perl-ipc-run3/APKBUILD
+++ b/main/perl-ipc-run3/APKBUILD
@@ -1,25 +1,33 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-ipc-run3
-pkgver=0.048
-pkgrel=2
+pkgver=0.049
+pkgrel=1
pkgdesc="IPC::Run3 perl module"
url="https://metacpan.org/pod/IPC::Run3"
arch="noarch"
-license="GPL-2.0 or Artistic-1.0-Perl"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/IPC-Run3-$pkgver.tar.gz"
builddir="$srcdir"/IPC-Run3-$pkgver
build() {
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- make && make test
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
+ make
+}
+
+check() {
+ make test
}
package() {
make DESTDIR="$pkgdir" install
- 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/main/perl-ipc-sharelite/APKBUILD b/main/perl-ipc-sharelite/APKBUILD
index 1e95fc26eae..9ae0544d222 100644
--- a/main/perl-ipc-sharelite/APKBUILD
+++ b/main/perl-ipc-sharelite/APKBUILD
@@ -1,40 +1,32 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
-# Maintainer:
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=perl-ipc-sharelite
pkgver=0.17
-pkgrel=8
+pkgrel=12
pkgdesc="Lightweight interface to shared memory"
url="https://metacpan.org/pod/IPC::ShareLite"
arch="all"
-license="PerlArtistic GPL"
-depends=""
-depends_dev=""
-makedepends="$depends_dev perl-dev"
-install=""
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/A/AN/ANDYA/IPC-ShareLite-$pkgver.tar.gz"
-_builddir="$srcdir"/IPC-ShareLite-$pkgver
-prepare() {
- local i
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
-}
+builddir="$srcdir"/IPC-ShareLite-$pkgver
build() {
- cd "$_builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make || return 1
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="f796f6766df11205755de4672ff8a586690545ccaa2f91c3fc65f106f3b61e1cbd86ee3e97dadf787809e3be32f503670cb67dafc9b18eee30d59d8be03b5ee9 IPC-ShareLite-0.17.tar.gz"
+sha512sums="
+f796f6766df11205755de4672ff8a586690545ccaa2f91c3fc65f106f3b61e1cbd86ee3e97dadf787809e3be32f503670cb67dafc9b18eee30d59d8be03b5ee9 IPC-ShareLite-0.17.tar.gz
+"
diff --git a/main/perl-ipc-system-simple/APKBUILD b/main/perl-ipc-system-simple/APKBUILD
index 9e9dfdcbb6d..7c30726b3f1 100644
--- a/main/perl-ipc-system-simple/APKBUILD
+++ b/main/perl-ipc-system-simple/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-ipc-system-simple
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=IPC-System-Simple
pkgver=1.30
-pkgrel=2
+pkgrel=3
pkgdesc="Run commands simply, with detailed diagnostics"
url="https://metacpan.org/release/IPC-System-Simple/"
arch="noarch"
diff --git a/main/perl-javascript-minifier-xs/APKBUILD b/main/perl-javascript-minifier-xs/APKBUILD
index 611e9ac6dfd..59aa9a90d03 100644
--- a/main/perl-javascript-minifier-xs/APKBUILD
+++ b/main/perl-javascript-minifier-xs/APKBUILD
@@ -4,7 +4,7 @@ pkgname=perl-javascript-minifier-xs
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=JavaScript-Minifier-XS
pkgver=0.15
-pkgrel=1
+pkgrel=3
pkgdesc="XS based JavaScript minifier"
url="https://metacpan.org/release/JavaScript-Minifier-XS/"
arch="all"
diff --git a/main/perl-javascript-minifier/APKBUILD b/main/perl-javascript-minifier/APKBUILD
index 5c20b8f72c6..d6ac8b9da00 100644
--- a/main/perl-javascript-minifier/APKBUILD
+++ b/main/perl-javascript-minifier/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-javascript-minifier
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=JavaScript-Minifier
pkgver=1.16
-pkgrel=0
+pkgrel=1
pkgdesc="Perl extension for minifying JavaScript code"
url="https://metacpan.org/release/JavaScript-Minifier/"
arch="noarch"
@@ -31,5 +31,4 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-
sha512sums="08341a6d329dd4f2bb8529c66135d9f25aff06c5f36f605d80a540aee21a6624aeb43ca45cd33378b88285af8d1771f894ab6083c7ba323cfdfe4fbbd10fe729 JavaScript-Minifier-1.16.tar.gz"
diff --git a/main/perl-json-maybexs/APKBUILD b/main/perl-json-maybexs/APKBUILD
index 73a8574408e..c661a7a2e8c 100644
--- a/main/perl-json-maybexs/APKBUILD
+++ b/main/perl-json-maybexs/APKBUILD
@@ -3,13 +3,14 @@
pkgname=perl-json-maybexs
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=JSON-MaybeXS
-pkgver=1.004003
-pkgrel=0
+pkgver=1.004005
+pkgrel=1
pkgdesc="Use L<Cpanel::JSON::XS> with a fallback to L<JSON::XS> and L<JSON::PP>"
url="https://metacpan.org/release/JSON-MaybeXS/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
checkdepends="perl-test-needs"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/JSON-MaybeXS-$pkgver.tar.gz"
@@ -31,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="4690be671ea59f82ab24cc5c72d0f4a98a21f40d33c0acac853a2b15eac38933f7af3e1212ee6b5479d5e639246ebb5726c25e837996722fcfef7029dd5ed6fe JSON-MaybeXS-1.004003.tar.gz"
+sha512sums="
+f483549f08bb829c7958fd36d33ece8550ed13d53f559d3a8a0915045a11443a01fcbd3ad767f09759d24ec98c2eeced4e550a1fb333a1fc929b7086e1506edf JSON-MaybeXS-1.004005.tar.gz
+"
diff --git a/main/perl-json/APKBUILD b/main/perl-json/APKBUILD
index db4664d87e9..e3caa236ae3 100644
--- a/main/perl-json/APKBUILD
+++ b/main/perl-json/APKBUILD
@@ -1,8 +1,8 @@
# Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house>
pkgname=perl-json
_pkgreal=JSON
-pkgver=4.06
-pkgrel=0
+pkgver=4.10
+pkgrel=1
pkgdesc="Perl module implementing a JSON encoder/decoder"
url="https://metacpan.org/release/JSON"
arch="noarch"
@@ -27,4 +27,6 @@ package() {
find "$pkgdir" -name .packlist -delete
}
-sha512sums="880b68c5b952afc4cde4924a538b69e5c3fc2c14578eb55ad1bf90a8500589d187e272770d5776626c20ae4f23b22b5575e8d45a56bcb020ca2dc5f32f80a079 JSON-4.06.tar.gz"
+sha512sums="
+2aa0c40fbff23d3df84cfa729d00a32a69e06ea83d082b25b7223f90cb157fa3c2e72342fadcd2ebe09b5848a0e3a7d2caec6d1753e95952a56e3e9367f343e3 JSON-4.10.tar.gz
+"
diff --git a/main/perl-ldap/APKBUILD b/main/perl-ldap/APKBUILD
index db7edc971de..f7552d72540 100644
--- a/main/perl-ldap/APKBUILD
+++ b/main/perl-ldap/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-ldap
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=perl-ldap
pkgver=0.68
-pkgrel=1
+pkgrel=2
pkgdesc="LDAP client library"
provides="perl-net-ldap=$pkgver-r$pkgrel"
replaces="perl-net-ldap"
diff --git a/main/perl-libwww/APKBUILD b/main/perl-libwww/APKBUILD
index 2a3a9a581d8..c6e7e672efc 100644
--- a/main/perl-libwww/APKBUILD
+++ b/main/perl-libwww/APKBUILD
@@ -1,35 +1,34 @@
+# Automatically generated by apkbuild-cpan, template 4
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-libwww
-_realname=libwww-perl
-pkgver=6.67
+pkgver=6.77
pkgrel=0
-pkgdesc="Perl module - World Wide Web library"
-url="https://metacpan.org/pod/LWP"
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=libwww-perl
+pkgdesc="The World-Wide Web library for Perl"
+url="https://metacpan.org/release/libwww-perl/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="
- perl perl-http-date perl-http-cookies perl-net-http perl-http-daemon perl-html-parser
- perl-file-listing perl-www-robotrules perl-http-negotiate perl-uri perl-http-message
- perl-lwp-mediatypes perl-encode-locale perl-try-tiny
+ perl perl-http-date perl-http-cookies perl-net-http perl-html-parser perl-file-listing
+ perl-www-robotrules perl-http-negotiate perl-uri perl-http-message perl-lwp-mediatypes
+ perl-encode-locale perl-try-tiny
+ "
+checkdepends="
+ perl-test-needs perl-test-leaktrace perl-http-daemon perl-test-fatal
+ perl-test-requiresinternet perl-http-cookiejar
"
-makedepends="perl-test-fatal perl-test-requiresinternet"
-checkdepends="perl-test-needs perl-test-leaktrace"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/O/OA/OALDERS/libwww-perl-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
-
-prepare() {
- default_prepare
-
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- rm -v t/base/protocols/nntp.t
-}
-
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
make
}
@@ -40,9 +39,8 @@ check() {
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
sha512sums="
-0e0c148e7d7e29e813e880e18be63d86b04a1b74fa7862e988727d7a9e6497e17baa7a90f79608f4edb83552d468c8b9be0ea7562a3777d305ae8891a04e496e libwww-perl-6.67.tar.gz
+66aa1928da3362a496da543473a0ce1a7cc3885ebb5bf449ab0cdd18ce7836835b80ec8919cf6d0e63107eda03e1fe9d05ba39422a32e144034ef02632d43659 libwww-perl-6.77.tar.gz
"
diff --git a/main/perl-list-allutils/APKBUILD b/main/perl-list-allutils/APKBUILD
index 30184b47126..715eb6c9b07 100644
--- a/main/perl-list-allutils/APKBUILD
+++ b/main/perl-list-allutils/APKBUILD
@@ -1,31 +1,28 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-list-allutils
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=List-AllUtils
pkgver=0.19
-pkgrel=0
+pkgrel=2
pkgdesc="Combines List::Util, List::SomeUtils and List::UtilsBy in one bite-sized package"
-url="https://metacpan.org/release/List-AllUtils"
+url="https://metacpan.org/release/List-AllUtils/"
arch="noarch"
license="Artistic-2.0"
-depends="perl perl-scalar-list-utils perl-list-utilsby perl-list-someutils"
+depends="perl perl-list-utilsby perl-list-someutils"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/List-AllUtils-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
-
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
diff --git a/main/perl-list-moreutils-xs/APKBUILD b/main/perl-list-moreutils-xs/APKBUILD
index a904d201669..ddc61e3dd9f 100644
--- a/main/perl-list-moreutils-xs/APKBUILD
+++ b/main/perl-list-moreutils-xs/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-list-moreutils-xs
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=List-MoreUtils-XS
pkgver=0.430
-pkgrel=2
+pkgrel=4
pkgdesc="Provide the stuff missing in List::Util in XS"
url="https://metacpan.org/release/List-MoreUtils-XS/"
arch="all"
diff --git a/main/perl-list-moreutils/APKBUILD b/main/perl-list-moreutils/APKBUILD
index 35ed46467bf..b7f687bee64 100644
--- a/main/perl-list-moreutils/APKBUILD
+++ b/main/perl-list-moreutils/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-list-moreutils
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=List-MoreUtils
pkgver=0.430
-pkgrel=0
+pkgrel=1
pkgdesc="Provide the stuff missing in List::Util"
url="https://metacpan.org/release/List-MoreUtils/"
arch="noarch"
diff --git a/main/perl-list-someutils-xs/APKBUILD b/main/perl-list-someutils-xs/APKBUILD
index edf1c146174..9aeaede5795 100644
--- a/main/perl-list-someutils-xs/APKBUILD
+++ b/main/perl-list-someutils-xs/APKBUILD
@@ -1,44 +1,38 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-list-someutils-xs
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=List-SomeUtils-XS
pkgver=0.58
-pkgrel=4
+pkgrel=7
pkgdesc="XS implementation for List::SomeUtils"
-url="https://metacpan.org/release/List-SomeUtils-XS"
+url="https://metacpan.org/release/List-SomeUtils-XS/"
arch="all"
license="Artistic-2.0"
-cpanmakedepends="perl-test-leaktrace perl-test-warnings"
depends="perl"
-makedepends="perl-dev $cpanmakedepends"
+makedepends="perl-dev"
+checkdepends="perl-test-leaktrace perl-test-warnings"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/List-SomeUtils-XS-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
-
- cd "$builddir"
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
- cd "$builddir"
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
- cd "$builddir"
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="f89f5a35224a69a59c1d512a819bd725b324f0968ea447824a42c741c4ba66ee9522db939bd3e75d190e0f2f75d54100912b83a86d5e7dd1079025a57a245c38 List-SomeUtils-XS-0.58.tar.gz"
+sha512sums="
+f89f5a35224a69a59c1d512a819bd725b324f0968ea447824a42c741c4ba66ee9522db939bd3e75d190e0f2f75d54100912b83a86d5e7dd1079025a57a245c38 List-SomeUtils-XS-0.58.tar.gz
+"
diff --git a/main/perl-list-someutils/APKBUILD b/main/perl-list-someutils/APKBUILD
index dd35e0fa7d4..0ce7bb1053c 100644
--- a/main/perl-list-someutils/APKBUILD
+++ b/main/perl-list-someutils/APKBUILD
@@ -1,29 +1,31 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-list-someutils
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=List-SomeUtils
-pkgver=0.58
+pkgver=0.59
pkgrel=1
pkgdesc="Provide the stuff missing in List::Util"
-url="https://metacpan.org/release/List-SomeUtils"
+url="https://metacpan.org/release/List-SomeUtils/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl perl-module-implementation perl-list-someutils-xs"
-makedepends="perl-test-leaktrace"
+depends="perl perl-module-implementation"
+makedepends="perl-dev"
+checkdepends="perl-test-leaktrace"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/List-SomeUtils-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
+check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make && make test
+ make test
}
package() {
@@ -31,4 +33,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="e45f05dbd82914bf804cc1ee00c808b6f8b4f2c80f852db55b3efb13cfe1601c34926e4c7966887a75ef49fd0fb2bd43adf48d12c72687464ece4e2b5a697ff4 List-SomeUtils-0.58.tar.gz"
+sha512sums="
+e8120f3231ae91ec1d60a90281bca6d109fc0df0d98ddb45528fcac186854acb7e5805f77c0cbca589ff0e0f2ecb5eac1a86d10be52e9a4902f59f84fd0a3d79 List-SomeUtils-0.59.tar.gz
+"
diff --git a/main/perl-list-utilsby/APKBUILD b/main/perl-list-utilsby/APKBUILD
index c96ad21153a..a15427e1717 100644
--- a/main/perl-list-utilsby/APKBUILD
+++ b/main/perl-list-utilsby/APKBUILD
@@ -1,37 +1,36 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-list-utilsby
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=List-UtilsBy
-pkgver=0.11
+pkgver=0.12
pkgrel=2
pkgdesc="higher-order list utility functions"
url="https://metacpan.org/release/List-UtilsBy/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-module-build"
+makedepends="perl-dev perl-module-build"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/List-UtilsBy-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- perl Build.PL installdirs=vendor
-}
-
build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
./Build
}
check() {
- ./Build test
+ ./Build test
}
package() {
- ./Build install destdir="$pkgdir"
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="7c912b805e1e21d5d683224b63125bc8385d79c7115d88c08ca28fc1778ec8d22ad4aaf366731df438365a5233108926cbffee284c2e2d37346b47984dbbd4c9 List-UtilsBy-0.11.tar.gz"
+sha512sums="
+8be14ef99a49f3e6ff524d08244522a8724857f7aa7af70db4475befcfc7ab34c75041942ef7c737565567c7f578a0d8ecdde1a61d193572e0010838fb1db0de List-UtilsBy-0.12.tar.gz
+"
diff --git a/main/perl-locale-maketext-fuzzy/APKBUILD b/main/perl-locale-maketext-fuzzy/APKBUILD
index 7d14861af90..16c7da875e2 100644
--- a/main/perl-locale-maketext-fuzzy/APKBUILD
+++ b/main/perl-locale-maketext-fuzzy/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-locale-maketext-fuzzy
pkgver=0.11
-pkgrel=3
+pkgrel=5
pkgdesc="Locale::Maketext::Fuzzy perl module"
url="https://metacpan.org/release/Locale-Maketext-Fuzzy/"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/A/AU/AUDREYT/Locale-Maketext-Fuzzy-$pkgver.tar.gz
diff --git a/main/perl-locale-maketext-lexicon/APKBUILD b/main/perl-locale-maketext-lexicon/APKBUILD
index c560df0dffe..e01e924a6a5 100644
--- a/main/perl-locale-maketext-lexicon/APKBUILD
+++ b/main/perl-locale-maketext-lexicon/APKBUILD
@@ -2,36 +2,31 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-locale-maketext-lexicon
pkgver=1.00
-pkgrel=2
+pkgrel=6
pkgdesc="Locale::Maketext::Lexicon perl module"
url="https://metacpan.org/release/Locale-Maketext-Lexicon/"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/D/DR/DRTECH/Locale-Maketext-Lexicon-$pkgver.tar.gz"
-_builddir="$srcdir"/Locale-Maketext-Lexicon-$pkgver
-prepare() {
- local i
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
-}
+builddir="$srcdir"/Locale-Maketext-Lexicon-$pkgver
build() {
- cd "$_builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make && make test || return 1
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="b16a4296048aa77809780f6f55e944a67ce3287708bff4fc88d8ee487a6493580a7129a740ee65c6c74fa27e4343964fa8a5269f66fffc308354e723ed4afa60 Locale-Maketext-Lexicon-1.00.tar.gz"
+sha512sums="
+b16a4296048aa77809780f6f55e944a67ce3287708bff4fc88d8ee487a6493580a7129a740ee65c6c74fa27e4343964fa8a5269f66fffc308354e723ed4afa60 Locale-Maketext-Lexicon-1.00.tar.gz
+"
diff --git a/main/perl-log-any/APKBUILD b/main/perl-log-any/APKBUILD
index 2c5e37f3cc2..bbd24ed140a 100644
--- a/main/perl-log-any/APKBUILD
+++ b/main/perl-log-any/APKBUILD
@@ -1,29 +1,30 @@
-# Automatically generated by apkbuild-cpan, template 2
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-log-any
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Log-Any
-pkgver=1.710
+pkgver=1.717
pkgrel=0
pkgdesc="Bringing loggers and listeners together"
-url="https://metacpan.org/release/Log-Any"
+url="https://metacpan.org/release/Log-Any/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/P/PR/PREACTION/Log-Any-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
-
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
+check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make
+ make test
}
package() {
@@ -31,12 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-
sha512sums="
-1aff56c1c4c51d4e9aae43add704dd2da86ea320ee095a613bd569c2f0ea546c98d27a1e0854f9b88cc1772bf438ee3be80ba2f61e8c15f39497035993f122e3 Log-Any-1.710.tar.gz
+feabda26eefebd7fe63ba63750b11e00f217778f0fa801adf3b52342400155230b620b3f2b08630e4b472a328a6c13a84294d35c52968f2fc1206b61fee0d20e Log-Any-1.717.tar.gz
"
diff --git a/main/perl-log-dispatch/APKBUILD b/main/perl-log-dispatch/APKBUILD
index b1e5c76f16f..1c103b190ec 100644
--- a/main/perl-log-dispatch/APKBUILD
+++ b/main/perl-log-dispatch/APKBUILD
@@ -4,7 +4,7 @@
pkgname=perl-log-dispatch
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Log-Dispatch
-pkgver=2.70
+pkgver=2.71
pkgrel=1
pkgdesc="Dispatches messages to one or more outputs"
url="https://metacpan.org/release/Log-Dispatch/"
@@ -14,7 +14,6 @@ depends="
perl perl-module-runtime perl-dist-checkconflicts perl-devel-globaldestruction
perl-namespace-autoclean perl-params-validationcompiler perl-try-tiny perl-specio
"
-makedepends="perl-dist-checkconflicts"
checkdepends="perl-test-needs perl-test-fatal perl-ipc-run3"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Log-Dispatch-$pkgver.tar.gz"
@@ -36,4 +35,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="c4c8cfb9e74b3176d5f95e3f9fbc86303321caa3e608a7ec318786ecd80d2238fd06a3b74ded65d5d3fab5c3a1297f99c92c62b1136b27d3b5396fd3fca602f6 Log-Dispatch-2.70.tar.gz"
+sha512sums="
+b3aac1e0dab7b4c02fe98ac3c82854d9413c97510e390ace26fa5630cdaece628f9ea4e4c925ec10d1e6e386cc24617b348f5df837e6465cc9f49d465eb0e386 Log-Dispatch-2.71.tar.gz
+"
diff --git a/main/perl-lwp-mediatypes/APKBUILD b/main/perl-lwp-mediatypes/APKBUILD
index bdb52f662c3..b2f35207cba 100644
--- a/main/perl-lwp-mediatypes/APKBUILD
+++ b/main/perl-lwp-mediatypes/APKBUILD
@@ -1,20 +1,19 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-lwp-mediatypes
-_pkgname=LWP-MediaTypes
+_pkgreal=LWP-MediaTypes
pkgver=6.04
-pkgrel=1
+pkgrel=3
pkgdesc="Perl module - guess media type for a file or a URL"
-url="http://search.cpan.org/~gaas"
+url="https://metacpan.org/dist/LWP-MediaTypes"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
checkdepends="perl-test-fatal"
-install=
replaces="perl-libwww"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/O/OA/OALDERS/LWP-MediaTypes-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
prepare() {
default_prepare
@@ -22,22 +21,21 @@ prepare() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make
}
check() {
- cd $builddir
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
- cd $builddir
make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="0610627ef3efdfde3c89bad273931c9cbde5c6da0bd782d59ce26dc4445cd538be9041d722f08206d96d69d5e3643b15150ef29b9e92e3968833f2ae1b6dc53f LWP-MediaTypes-6.04.tar.gz"
+sha512sums="
+0610627ef3efdfde3c89bad273931c9cbde5c6da0bd782d59ce26dc4445cd538be9041d722f08206d96d69d5e3643b15150ef29b9e92e3968833f2ae1b6dc53f LWP-MediaTypes-6.04.tar.gz
+"
diff --git a/main/perl-lwp-protocol-https/APKBUILD b/main/perl-lwp-protocol-https/APKBUILD
index 3ea42d37766..5649e23440d 100644
--- a/main/perl-lwp-protocol-https/APKBUILD
+++ b/main/perl-lwp-protocol-https/APKBUILD
@@ -1,37 +1,51 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 4
# Contributor: Sheila Aman <sheila@vulpine.house>
# Maintainer: Sheila Aman <sheila@vulpine.house>
pkgname=perl-lwp-protocol-https
+pkgver=6.14
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=LWP-Protocol-https
-pkgver=6.10
-pkgrel=1
pkgdesc="Provide https support for LWP::UserAgent"
url="https://metacpan.org/release/LWP-Protocol-https/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl perl-libwww perl-mozilla-ca perl-io-socket-ssl perl-net-http"
-checkdepends="perl-test-requiresinternet"
+depends="
+ perl
+ perl-io-socket-ssl
+ perl-libwww
+ perl-net-http
+ "
+checkdepends="
+ perl-test-needs
+ perl-test-requiresinternet
+ "
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/O/OA/OALDERS/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/O/OA/OALDERS/LWP-Protocol-https-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
+# secfixes:
+# 6.11-r0:
+# - CVE-2014-3230
build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-
-sha512sums="4d3c89dab6fadcb574c176977ca6debba177ee3f817e87319d9cd81e0a0b09214e271c2e97edc456dad2f4a1ebf8c6266a4ae52c3a93144880a5b32db97e7a31 LWP-Protocol-https-6.10.tar.gz"
+sha512sums="
+8f220c307833a803a8539a1c794598097133f24017edda9030eba2ff558d54104040fbae64d7068e99b9e03142e6e96a8b11c478e2a5571e908754a385b59fab LWP-Protocol-https-6.14.tar.gz
+"
diff --git a/main/perl-lwp-useragent-determined/APKBUILD b/main/perl-lwp-useragent-determined/APKBUILD
index 0063bbb8794..e2c4b56f1d3 100644
--- a/main/perl-lwp-useragent-determined/APKBUILD
+++ b/main/perl-lwp-useragent-determined/APKBUILD
@@ -3,29 +3,32 @@
pkgname=perl-lwp-useragent-determined
_pkgreal=LWP-UserAgent-Determined
pkgver=1.07
-pkgrel=2
+pkgrel=4
pkgdesc="a virtual browser that retries errors"
url="https://metacpan.org/release/LWP-UserAgent-Determined/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-libwww"
-install=
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/A/AL/ALEXMV/$_pkgreal-$pkgver.tar.gz"
-_builddir="$srcdir/$_pkgreal-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- cd $_builddir
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make || return 1
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ make test
}
package() {
- cd $_builddir
make DESTDIR="$pkgdir" install
# creates file collision among perl modules
find "$pkgdir" -name perllocal.pod -delete
}
-sha512sums="bed056468366bf86f0711a23c5bdb502a614efa2fd80d632f8d43d33295309d0ee88e439933cb3eda99192ad7d7025d0a7f6f0a53a45e79e70512771bb58ae7d LWP-UserAgent-Determined-1.07.tar.gz"
+sha512sums="
+bed056468366bf86f0711a23c5bdb502a614efa2fd80d632f8d43d33295309d0ee88e439933cb3eda99192ad7d7025d0a7f6f0a53a45e79e70512771bb58ae7d LWP-UserAgent-Determined-1.07.tar.gz
+"
diff --git a/main/perl-mail-authenticationresults/APKBUILD b/main/perl-mail-authenticationresults/APKBUILD
index ce9496e6091..105cbcb80c2 100644
--- a/main/perl-mail-authenticationresults/APKBUILD
+++ b/main/perl-mail-authenticationresults/APKBUILD
@@ -3,13 +3,13 @@
pkgname=perl-mail-authenticationresults
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Mail-AuthenticationResults
-pkgver=2.20210112
+pkgver=2.20231031
pkgrel=0
pkgdesc="Object Oriented Authentication-Results Headers"
url="https://metacpan.org/release/Mail-AuthenticationResults/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl perl-json"
+depends="perl perl-json perl-clone"
makedepends="perl-test-exception"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/M/MB/MBRADSHAW/Mail-AuthenticationResults-$pkgver.tar.gz"
@@ -31,5 +31,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-
-sha512sums="2168e8761947008670840ac1b534e2c374399120197d907b8d5c654bcb00baa5f7075caffa00a06eac5628a7583d96aeb9f077a1103266ad774aaff05f8f0130 Mail-AuthenticationResults-2.20210112.tar.gz"
+sha512sums="
+fc1a1f9099e1d3c3a2185bb2ba9f53be6799779b71dc1e7524e117b78e3868e9d264668bde188e787868a303d62262e9ded2fa9e1657d1987e9cbe488d06ed8e Mail-AuthenticationResults-2.20231031.tar.gz
+"
diff --git a/main/perl-mail-dkim/APKBUILD b/main/perl-mail-dkim/APKBUILD
index c56d69354e6..6596a0def50 100644
--- a/main/perl-mail-dkim/APKBUILD
+++ b/main/perl-mail-dkim/APKBUILD
@@ -1,29 +1,29 @@
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Automatically generated by apkbuild-cpan, template 3
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-mail-dkim
-_pkgname=Mail-DKIM
-pkgver=1.20220520
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Mail-DKIM
+pkgver=1.20240124
pkgrel=0
pkgdesc="Signs/verifies Internet mail with DKIM/DomainKey signatures"
-url="https://metacpan.org/pod/Mail::DKIM"
+url="https://metacpan.org/release/Mail-DKIM/"
arch="noarch"
-license="Artistic-Perl-1.0 GPL+"
-depends="
- perl perl-net-dns perl-net-ip perl-mailtools perl-crypt-openssl-rsa perl-yaml-libyaml
- perl-net-dns-resolver-mock perl-mail-authenticationresults
- "
-checkdepends="perl-test-requiresinternet"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-net-dns perl-mailtools perl-crypt-openssl-rsa perl-mail-authenticationresults perl-cryptx"
+checkdepends="perl-test-requiresinternet perl-yaml-libyaml perl-net-dns perl-net-dns-resolver-mock"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/M/MB/MBRADSHAW/Mail-DKIM-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
+check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make
+ make test
}
package() {
@@ -31,10 +31,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- make test
-}
-
sha512sums="
-e2ea3b29b7aa687ce333cd06c0e80a16decca22c0b8c30f4a11967d8801f77338441e41a85560da3fe7cacb9cbb7b4041d607d49c85f3c192ca1a205f1fcd920 Mail-DKIM-1.20220520.tar.gz
+5453bca0e27906193084f0faf94b06c3a01cc835d4d226a0281793ea5e7105b4907090f25769dc5f51b6b816eacb5abceb56a046716a80a0288f3332c655c1c8 Mail-DKIM-1.20240124.tar.gz
"
diff --git a/main/perl-mail-domainkeys/APKBUILD b/main/perl-mail-domainkeys/APKBUILD
index 76aca844577..c2b9c49e2d6 100644
--- a/main/perl-mail-domainkeys/APKBUILD
+++ b/main/perl-mail-domainkeys/APKBUILD
@@ -1,30 +1,34 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-mail-domainkeys
-_realname=Mail-DomainKeys
+_pkgreal=Mail-DomainKeys
pkgver=1.0
-pkgrel=4
+pkgrel=5
pkgdesc="A perl implementation of DomainKeys"
-url="http://search.cpan.org/~anthonyu/Mail-DomainKeys-1.0/"
+url="https://metacpan.org/dist/Mail-DomainKeys"
arch="noarch"
-license="Artistic-Perl-1.0 GPL+"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
-install=
+checkdepends="perl-crypt-openssl-rsa perl-mailtools perl-net-dns"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/A/AN/ANTHONYU/$_realname-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/A/AN/ANTHONYU/Mail-DomainKeys-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- cd "$srcdir/$_realname-$pkgver"
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make || return 1
+check() {
+ make test
}
package() {
- cd "$srcdir/$_realname-$pkgver"
make DESTDIR="$pkgdir" install
# creates file collision among perl modules
find "$pkgdir" -name perllocal.pod -delete
}
-sha512sums="359f77c6c0eaa1bd1267dbda08371c4b7826ea6e3ad79f677f40653d0aa47822e01db033802fd4a1532a8ed46f05bb90f339171040be693670e26f8bb62b600f Mail-DomainKeys-1.0.tar.gz"
+sha512sums="
+359f77c6c0eaa1bd1267dbda08371c4b7826ea6e3ad79f677f40653d0aa47822e01db033802fd4a1532a8ed46f05bb90f339171040be693670e26f8bb62b600f Mail-DomainKeys-1.0.tar.gz
+"
diff --git a/main/perl-mail-imapclient/APKBUILD b/main/perl-mail-imapclient/APKBUILD
index 80eb7c970cb..e02676a81f5 100644
--- a/main/perl-mail-imapclient/APKBUILD
+++ b/main/perl-mail-imapclient/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-mail-imapclient
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Mail-IMAPClient
pkgver=3.43
-pkgrel=0
+pkgrel=1
pkgdesc="IMAP4 client library"
url="https://metacpan.org/release/Mail-IMAPClient/"
arch="noarch"
diff --git a/main/perl-mail-spf/APKBUILD b/main/perl-mail-spf/APKBUILD
index 4ceed13f4d4..ed087c16dbf 100644
--- a/main/perl-mail-spf/APKBUILD
+++ b/main/perl-mail-spf/APKBUILD
@@ -1,42 +1,46 @@
+# Automatically generated by apkbuild-cpan, template 4
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-mail-spf
-_realname=Mail-SPF
-pkgver=2.9.0
-pkgrel=4
+pkgver=3.20240206
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Mail-SPF
pkgdesc="An object-oriented implementation of Sender Policy Framework"
-url="http://search.cpan.org/~jmehnle/Mail-SPF-v2.006/"
+url="https://metacpan.org/release/Mail-SPF/"
arch="noarch"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl perl-error perl-net-dns perl-uri perl-netaddr-ip perl-net-dns-resolver-programmable"
-makedepends="perl-module-build"
-install=
+license="BSD-3-Clause"
+depends="perl perl-error perl-net-dns perl-uri perl-netaddr-ip"
+checkdepends="perl-net-dns-resolver-programmable"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/J/JM/JMEHNLE/mail-spf/$_realname-v$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/M/MB/MBRADSHAW/Mail-SPF-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_realname-v$pkgver"
-prepare() {
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
+ make
}
-build() {
- cd "$_builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make || return 1
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
make DESTDIR="$pkgdir" install
- mv "$pkgdir"/usr/share/perl5/vendor_perl/* "$pkgdir"/usr/lib/perl5/vendor_perl
- rm -fr "$pkgdir"/usr/share/perl5
- rm -fr "$pkgdir"/usr/bin "$pkgdir"/usr/sbin
+
+ cd "$pkgdir"
+ # conflicts with libspf2-tools
+ rm -vrf usr/bin
+ # delete their man pages as well
+ rm -vrf usr/share/man/man1
}
-sha512sums="22bf98c4981f121ed85bb5cbc1ebcb2607ada5052bcea0dd8de692e3473a2ebdd3066acd944bb12f0efe64605e4bf7dc695a1549b7608239d0efc059339df60b Mail-SPF-v2.9.0.tar.gz"
+sha512sums="
+eb2a4f496e828e6da30f967a1d4f91daab096f0cc2b37544a96e075fa5b5a251f0581a82e7323fb34b9808372b2a6b43dd979f79725b744a3172160a75be5ff5 Mail-SPF-3.20240206.tar.gz
+"
diff --git a/main/perl-mailtools/APKBUILD b/main/perl-mailtools/APKBUILD
index 91fd141b3a9..83ab72dae63 100644
--- a/main/perl-mailtools/APKBUILD
+++ b/main/perl-mailtools/APKBUILD
@@ -1,32 +1,31 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-mailtools
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=MailTools
pkgver=2.21
-pkgrel=2
-pkgdesc="Various e-mail related modules"
+pkgrel=4
+pkgdesc="Various ancient e-mail related modules"
+provides="perl-mail-tools=$pkgver"
+replaces="perl-mail-tools"
url="https://metacpan.org/release/MailTools/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-replaces=perl-mail-tools
-provides="perl-mail-tools=$pkgver"
depends="perl perl-timedate"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/M/MA/MARKOV/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/M/MA/MARKOV/MailTools-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -35,4 +34,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="70c7e5760691a1fc0a2812c48a632896db9bf719d3cb07a63c3a4456c5a365855c7f71c7436c84e5085374628f26ad31fcf13e74b3b7242911da59b7916065a0 MailTools-2.21.tar.gz"
+sha512sums="
+70c7e5760691a1fc0a2812c48a632896db9bf719d3cb07a63c3a4456c5a365855c7f71c7436c84e5085374628f26ad31fcf13e74b3b7242911da59b7916065a0 MailTools-2.21.tar.gz
+"
diff --git a/main/perl-math-round/APKBUILD b/main/perl-math-round/APKBUILD
index c12bf4c0a26..c81c2c43423 100644
--- a/main/perl-math-round/APKBUILD
+++ b/main/perl-math-round/APKBUILD
@@ -1,37 +1,32 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-math-round
-pkgver=0.07
-pkgrel=2
+pkgver=0.08
+pkgrel=1
pkgdesc="Math::Round perl module"
url="https://metacpan.org/release/Math-Round/"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/G/GR/GROMMEL/Math-Round-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/N/NE/NEILB/Math-Round-$pkgver.tar.gz"
-_builddir="$srcdir"/Math-Round-$pkgver
-prepare() {
- local i
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
-}
+builddir="$srcdir"/Math-Round-$pkgver
build() {
- cd "$_builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make && make test || return 1
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="7b25c907b4d2c7d8f9d9318991739ea6dfd104d75f9d7f88057739a21072a003306669a9affafed752a20ec97d6341560216492a80ac49f7b456ea54121211b7 Math-Round-0.07.tar.gz"
+sha512sums="
+00ef34f541acef09b80588492a3502ac13d1c6c806709b5403a59dc757540b8a9094f2b304f4242a2a8f67d90c06ed7c52626b56e9309fd01b07229ff538f15a Math-Round-0.08.tar.gz
+"
diff --git a/main/perl-metrics-any/APKBUILD b/main/perl-metrics-any/APKBUILD
index 77194fb7edd..5062894de33 100644
--- a/main/perl-metrics-any/APKBUILD
+++ b/main/perl-metrics-any/APKBUILD
@@ -4,7 +4,7 @@
pkgname=perl-metrics-any
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Metrics-Any
-pkgver=0.07
+pkgver=0.10
pkgrel=0
pkgdesc="abstract collection of monitoring metrics"
url="https://metacpan.org/release/Metrics-Any/"
@@ -12,7 +12,7 @@ arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
makedepends="perl-module-build"
-checkdepends="perl-test-fatal"
+checkdepends="perl-test2-suite"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Metrics-Any-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
@@ -33,5 +33,5 @@ package() {
}
sha512sums="
-69eb7c029ed89497ee3a19bbf0547fbfa0b23a3a0e64768497fecc8bd27b3c45c65b672c9bf834b6480742a3b2ae383d3f0363439887a88d3ad6ba7503fee40f Metrics-Any-0.07.tar.gz
+5d0261459fa0f315470b48297e726c4a9e91a8318b30321147d4d9cc2f37a4fb0f8225fc0c2dc01c03f6c96e7316eb2b08905d244be94efc254920c8d681ee52 Metrics-Any-0.10.tar.gz
"
diff --git a/main/perl-mime-base64/APKBUILD b/main/perl-mime-base64/APKBUILD
index de7e8f4a539..a0852ac97a5 100644
--- a/main/perl-mime-base64/APKBUILD
+++ b/main/perl-mime-base64/APKBUILD
@@ -4,7 +4,7 @@ pkgname=perl-mime-base64
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=MIME-Base64
pkgver=3.16
-pkgrel=3
+pkgrel=5
pkgdesc="Encoding and decoding of base64 strings"
url="https://metacpan.org/release/MIME-Base64/"
arch="all"
diff --git a/main/perl-mime-lite/APKBUILD b/main/perl-mime-lite/APKBUILD
index 9b7718d1109..8ab4ac33243 100644
--- a/main/perl-mime-lite/APKBUILD
+++ b/main/perl-mime-lite/APKBUILD
@@ -3,7 +3,7 @@
pkgname=perl-mime-lite
_pkgreal=MIME-Lite
pkgver=3.033
-pkgrel=0
+pkgrel=1
pkgdesc="low-calorie MIME generator"
url="https://metacpan.org/release/MIME-Lite"
arch="noarch"
diff --git a/main/perl-mime-tools/APKBUILD b/main/perl-mime-tools/APKBUILD
index a621fddaac9..3b14de02f45 100644
--- a/main/perl-mime-tools/APKBUILD
+++ b/main/perl-mime-tools/APKBUILD
@@ -1,36 +1,39 @@
+# Automatically generated by apkbuild-cpan, template 4
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-mime-tools
-_realname=MIME-tools
-pkgver=5.509
-pkgrel=3
+pkgver=5.514
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=MIME-tools
pkgdesc="Perl modules for parsing (and creating!) MIME entities"
-url="http://search.cpan.org/~doneill/MIME-tools-$pkgver/"
+url="https://metacpan.org/release/MIME-tools/"
arch="noarch"
-license="PerlArtistic GPL"
-depends="perl perl-io-stringy perl-mailtools perl-convert-binhex"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-mailtools perl-convert-binhex"
checkdepends="perl-test-deep perl-test-pod"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DS/DSKOLL/$_realname-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
+source="https://cpan.metacpan.org/authors/id/D/DS/DSKOLL/MIME-tools-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
+ make
}
-build() {
+check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make || return 1
+ make test
}
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-check() {
- make test
}
-sha512sums="0407b09916144eafbee0c75758306e0f44c27db0e8aabf033267f9903f676f0415de99927dcfdb69f9e9d4123d63c280f526dff92e0d97744761c888df90667a MIME-tools-5.509.tar.gz"
+sha512sums="
+1f80d436305bada1ed46104ba25a1bbd877cf358294c0e4101d7018ba5eb7f208debf62125b66378a0b8b9103a4e488165881c1b2bc6fa2964b6986a66c36b27 MIME-tools-5.514.tar.gz
+"
diff --git a/main/perl-mime-types/APKBUILD b/main/perl-mime-types/APKBUILD
index 180078d7920..71d80c81685 100644
--- a/main/perl-mime-types/APKBUILD
+++ b/main/perl-mime-types/APKBUILD
@@ -1,11 +1,11 @@
-# Automatically generated by apkbuild-cpan, template 3
+# Automatically generated by apkbuild-cpan, template 4
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-mime-types
+pkgver=2.26
+pkgrel=0
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=MIME-Types
-pkgver=2.21
-pkgrel=0
pkgdesc="Definition of MIME types"
url="https://metacpan.org/release/MIME-Types/"
arch="noarch"
@@ -17,7 +17,10 @@ builddir="$srcdir/$_pkgreal-$pkgver"
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
make
}
@@ -28,9 +31,15 @@ check() {
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
}
sha512sums="
-223aacf8f8ea3c8dd3059791bb86d3203684fb632d972639d88d9e176a5fee428c5fd637cbeee65b52f008ad70a92cef3f82f524926fc5fa55ea24ca0448f4ad MIME-Types-2.21.tar.gz
+cde3a8c6cbde16143732cf2ac4d648eff167917970357daf0162370cbba375b2aa546af472a73b2a4b26086919ddcc49bd9da999251946a40aee8abb60af2d75 MIME-Types-2.26.tar.gz
"
diff --git a/main/perl-module-build-tiny/APKBUILD b/main/perl-module-build-tiny/APKBUILD
index 28f56173e4e..9d852762a2a 100644
--- a/main/perl-module-build-tiny/APKBUILD
+++ b/main/perl-module-build-tiny/APKBUILD
@@ -1,42 +1,42 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-module-build-tiny
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Module-Build-Tiny
-pkgver=0.039
-pkgrel=2
+pkgver=0.047
+pkgrel=0
pkgdesc="A tiny replacement for Module::Build"
url="https://metacpan.org/release/Module-Build-Tiny/"
arch="noarch"
-license="GPL PerlArtistic"
-cpandepends="perl-extutils-installpaths perl-extutils-config perl-extutils-helpers perl-test-harness"
-cpanmakedepends=" "
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="
+ perl
+ perl-extutils-config
+ perl-extutils-helpers
+ perl-extutils-installpaths
+ "
+makedepends="perl-module-build"
+checkdepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/L/LE/LEONT/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/L/LE/LEONT/Module-Build-Tiny-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- if [ -e Build.PL ]; then
- perl Build.PL --installdirs=vendor || return 1
- else
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- fi
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
+ ./Build
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- ./Build && ./Build test
+check() {
+ ./Build test
}
package() {
- cd "$_builddir"
- ./Build install --destdir="$pkgdir" --create_packlist=0 || return 1
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="26ca6fe4c1792b26bb2b4711035847f4215ea7c37234fbe24fc07432682fd9d3b6016dbdb2ecb455a7b13f6bea13994826c7f84f21075f0a6e575fa74672903a Module-Build-Tiny-0.039.tar.gz"
+sha512sums="
+505e8a1a1d7e4f73a820352b476c938769bee1b069eaee0df7a95ea5651f109dfb106faf82bf423ca96b15d0148fd890342ad214b4fa6481d15b8f494fe48a30 Module-Build-Tiny-0.047.tar.gz
+"
diff --git a/main/perl-module-build/APKBUILD b/main/perl-module-build/APKBUILD
index 710a1e35b5e..5e75be70289 100644
--- a/main/perl-module-build/APKBUILD
+++ b/main/perl-module-build/APKBUILD
@@ -1,38 +1,36 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-module-build
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Module-Build
-pkgver=0.4231
+pkgver=0.4234
pkgrel=1
pkgdesc="Build and install Perl modules"
-url="https://metacpan.org/release/Module-Build"
+url="https://metacpan.org/release/Module-Build/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/L/LE/LEONT/Module-Build-$pkgver.tar.gz"
-
builddir="$srcdir/$_pkgreal-$pkgver"
-check() {
- ./Build test
-}
-
-prepare() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- perl Build.PL installdirs=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
./Build
}
+check() {
+ ./Build test
+}
+
package() {
- ./Build install destdir="$pkgdir"
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="ee1dc18a7df3fe67e7f954d5e1e071aa0a6f5bce6783b768bceb01f071e64ac8be63f410c932c7c16764e5d4f52fc664ce11a12f26f6afc75a26f79883efad70 Module-Build-0.4231.tar.gz"
+sha512sums="
+e2bbdd64f98b424ea7fd20e2ba301d34b77c9f2ecec28e3191fda63a056a12c0fb1cab1496419e9e9b8054db1a8d3fe92e1f033cdcdf021e1a086c8859905eca Module-Build-0.4234.tar.gz
+"
diff --git a/main/perl-module-implementation/APKBUILD b/main/perl-module-implementation/APKBUILD
index 908663f1a2b..8d78f5b0ae2 100644
--- a/main/perl-module-implementation/APKBUILD
+++ b/main/perl-module-implementation/APKBUILD
@@ -1,34 +1,31 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-module-implementation
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Module-Implementation
pkgver=0.09
-pkgrel=3
+pkgrel=5
pkgdesc="Loads one of several alternate underlying implementations for a module"
url="https://metacpan.org/release/Module-Implementation/"
arch="noarch"
license="Artistic-2.0"
-depends="perl perl-module-runtime perl-try-tiny perl-test-taint"
-makedepends="perl-test-fatal perl-test-requires"
+depends="perl perl-module-runtime perl-try-tiny"
+makedepends="perl-dev"
+checkdepends="perl-test-requires perl-test-fatal"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Module-Implementation-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
- make test
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
@@ -36,4 +33,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="049f967ba1bd8a3914968b34006030ae318d99ac629a0f34736f1c2b5392490c30aa0914e777eaefda7f0f58755d2d3363a266b90db59b53fe145ef68e1d953c Module-Implementation-0.09.tar.gz"
+sha512sums="
+049f967ba1bd8a3914968b34006030ae318d99ac629a0f34736f1c2b5392490c30aa0914e777eaefda7f0f58755d2d3363a266b90db59b53fe145ef68e1d953c Module-Implementation-0.09.tar.gz
+"
diff --git a/main/perl-module-install/APKBUILD b/main/perl-module-install/APKBUILD
index a0cd3305aec..9ec1f95a02e 100644
--- a/main/perl-module-install/APKBUILD
+++ b/main/perl-module-install/APKBUILD
@@ -1,35 +1,36 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-module-install
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Module-Install
-pkgver=1.19
-pkgrel=2
-pkgdesc="Perl module for Module-Install"
+pkgver=1.21
+pkgrel=1
+pkgdesc="Standalone, extensible Perl module installer"
url="https://metacpan.org/release/Module-Install/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl"
-makedepends="perl-dev perl-file-remove perl-module-build perl-module-scandeps perl-yaml-tiny"
+depends="perl perl-yaml-tiny perl-module-build perl-module-scandeps perl-file-remove"
+makedepends="perl-dev perl-yaml-tiny"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/Module-Install-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-check() {
- make test
-}
-
-prepare() {
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
package() {
make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="68a255402c98955cfcb5a8a99555fe511b89d5fccf96ee1c498cab347c8945f3abe53485ea936f7419420d9c7beb52c861516f4cfd299812cebf80eab50fa5ba Module-Install-1.19.tar.gz"
+sha512sums="
+f3dd1dfcae81704f1aa9ac409abd22c9e0d5d66c048adac13da19ab88559d717427b5471b7a065db8312d4d44e829afea52567cd0993e4016df0e10c760ada85 Module-Install-1.21.tar.gz
+"
diff --git a/main/perl-module-metadata/APKBUILD b/main/perl-module-metadata/APKBUILD
index 7645bd54132..a90871fa180 100644
--- a/main/perl-module-metadata/APKBUILD
+++ b/main/perl-module-metadata/APKBUILD
@@ -1,41 +1,38 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-module-metadata
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Module-Metadata
-pkgver=1.000037
-pkgrel=1
+pkgver=1.000038
+pkgrel=2
pkgdesc="Gather package and POD information from perl module files"
-url="https://metacpan.org/release/Module-Metadata"
+url="https://metacpan.org/release/Module-Metadata/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/Module-Metadata-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-doc() {
- default_doc
- replaces="perl-doc"
+ # man pages are already provided by perl-doc
+ rm -rf "$pkgdir"/usr/share/man
}
-sha512sums="b11084c9e3ba9a49350e069fb7743d1bb989e0b3891a822f351915c78579d75a76853c05e546e3ae8e3a0378fbc98fdb1edebc416e2e7462d69346d964f6057b Module-Metadata-1.000037.tar.gz"
+sha512sums="
+49a37dd054b739bc8b23b633d2ac7ce4b288b6acaeb147e5eb159557ec85b5f6b61687a857d39174f086a5b4ac73108b14e715e879c3559db2a13bd38457c985 Module-Metadata-1.000038.tar.gz
+"
diff --git a/main/perl-module-pluggable/APKBUILD b/main/perl-module-pluggable/APKBUILD
index 83768c91a95..654a373645b 100644
--- a/main/perl-module-pluggable/APKBUILD
+++ b/main/perl-module-pluggable/APKBUILD
@@ -1,36 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-module-pluggable
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Module-Pluggable
pkgver=5.2
-pkgrel=2
+pkgrel=4
pkgdesc="automatically give your module the ability to have plugins"
url="https://metacpan.org/release/Module-Pluggable/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/S/SI/SIMONW/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/S/SI/SIMONW/Module-Pluggable-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="7df8ee6713c8e0d4df756736c43c2033632cb8887c82ed5b9f38476dbf402b5daa3af83d3b2bd1228afb020ce5855831812f86299b63518e04e0929390b0c5f5 Module-Pluggable-5.2.tar.gz"
+sha512sums="
+7df8ee6713c8e0d4df756736c43c2033632cb8887c82ed5b9f38476dbf402b5daa3af83d3b2bd1228afb020ce5855831812f86299b63518e04e0929390b0c5f5 Module-Pluggable-5.2.tar.gz
+"
diff --git a/main/perl-module-refresh/APKBUILD b/main/perl-module-refresh/APKBUILD
index c5e3d39531e..294052dc593 100644
--- a/main/perl-module-refresh/APKBUILD
+++ b/main/perl-module-refresh/APKBUILD
@@ -1,33 +1,29 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-module-refresh
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Module-Refresh
-pkgver=0.17
-pkgrel=3
+pkgver=0.18
+pkgrel=2
pkgdesc="Refresh %INC files when updated on disk"
url="https://metacpan.org/release/Module-Refresh/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-path-class perl-module-install"
+makedepends="perl-dev perl-path-class"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/A/AL/ALEXMV/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/B/BP/BPS/Module-Refresh-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -36,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="48bbcf14d5c6f13217b41c9a4683fd5ff492d3d33f8d6d50e89eae8a6336f306358e0070ecf1617d68c6eb9f91caaec6e1048e09b741d3fa0a19f6d38a75f17f Module-Refresh-0.17.tar.gz"
+sha512sums="
+9e950cab0119253123af1f1fe06a8f833a3019fab5e87b2d4602dcda8a1a9b94862158c3c64ceb070239d95b158c0809557049908f68f3f51c55b242d0804b2b Module-Refresh-0.18.tar.gz
+"
diff --git a/main/perl-module-runtime/APKBUILD b/main/perl-module-runtime/APKBUILD
index 5b5dbd2cdf0..e453b5f2e2b 100644
--- a/main/perl-module-runtime/APKBUILD
+++ b/main/perl-module-runtime/APKBUILD
@@ -1,38 +1,36 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-module-runtime
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Module-Runtime
pkgver=0.016
-pkgrel=4
+pkgrel=6
pkgdesc="runtime module handling"
url="https://metacpan.org/release/Module-Runtime/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-test-pod perl-test-pod-coverage perl-module-build"
+makedepends="perl-dev perl-module-build"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM/Module-Runtime-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-check() {
- ./Build test
-}
-
-prepare() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- perl Build.PL installdirs=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
./Build
}
+check() {
+ ./Build test
+}
+
package() {
- ./Build install destdir="$pkgdir" || return 1
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="64a362ee897646173dbbdd8794f863d93379d45d7ac20d3ae890d77b4ec3f5e36aaff66c41b4a6a33b28bf492216283528755550ab09e466ceafb4f0cfbaeb9e Module-Runtime-0.016.tar.gz"
+sha512sums="
+64a362ee897646173dbbdd8794f863d93379d45d7ac20d3ae890d77b4ec3f5e36aaff66c41b4a6a33b28bf492216283528755550ab09e466ceafb4f0cfbaeb9e Module-Runtime-0.016.tar.gz
+"
diff --git a/main/perl-module-scandeps/APKBUILD b/main/perl-module-scandeps/APKBUILD
index 696f68e9d7a..0f319e0e54c 100644
--- a/main/perl-module-scandeps/APKBUILD
+++ b/main/perl-module-scandeps/APKBUILD
@@ -3,14 +3,14 @@
pkgname=perl-module-scandeps
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Module-ScanDeps
-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-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-checkdepends="perl-test-requires"
+checkdepends="perl-ipc-run3 perl-test-requires"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/R/RS/RSCHUPP/Module-ScanDeps-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
@@ -32,5 +32,5 @@ package() {
}
sha512sums="
-c7164d768b6401a0d01516f5a09ddf2a0399355738ff17d04757aeb235b47f8d973083d0425ca53757588916c7fb2959d8c042361055a0e8eab7bf6d4c31d6fd Module-ScanDeps-1.31.tar.gz
+314a8098883995d876bfae7760b569ade56eed1940e50f92a509fd0f2c0020d57da859bb8848c56a9e1dcb4acd62cd246c39424bc1c30d71c6defc9f491518b9 Module-ScanDeps-1.35.tar.gz
"
diff --git a/main/perl-module-util/APKBUILD b/main/perl-module-util/APKBUILD
index 2ccc54a8644..4229aaec36a 100644
--- a/main/perl-module-util/APKBUILD
+++ b/main/perl-module-util/APKBUILD
@@ -1,37 +1,36 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-module-util
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Module-Util
pkgver=1.09
-pkgrel=2
+pkgrel=5
pkgdesc="Module name tools and transformations"
url="https://metacpan.org/release/Module-Util/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-module-build"
+makedepends="perl-dev perl-module-build"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/M/MA/MATTLAW/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/M/MA/MATTLAW/Module-Util-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- perl Build.PL installdirs=vendor || return 1
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
+ ./Build
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- ./Build && ./Build test
+check() {
+ ./Build test
}
package() {
- cd "$_builddir"
- ./Build install destdir="$pkgdir" || return 1
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="6669216598c5a3b41964e65792fa5bdea9675150bf2ef908ed3e154b9fbc207de0b766feaebc2656a5379393cf8acafa5e27aeb694b9a56d8ff3b5f9c35837ad Module-Util-1.09.tar.gz"
+sha512sums="
+6669216598c5a3b41964e65792fa5bdea9675150bf2ef908ed3e154b9fbc207de0b766feaebc2656a5379393cf8acafa5e27aeb694b9a56d8ff3b5f9c35837ad Module-Util-1.09.tar.gz
+"
diff --git a/main/perl-module-versions-report/APKBUILD b/main/perl-module-versions-report/APKBUILD
index 9582a4b3cb4..2ebf669438a 100644
--- a/main/perl-module-versions-report/APKBUILD
+++ b/main/perl-module-versions-report/APKBUILD
@@ -2,36 +2,31 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-module-versions-report
pkgver=1.06
-pkgrel=2
+pkgrel=5
pkgdesc="Module::Versions::Report perl module"
url="https://metacpan.org/release/Module-Versions-Report/"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/J/JE/JESSE/Module-Versions-Report-$pkgver.tar.gz"
-_builddir="$srcdir"/Module-Versions-Report-$pkgver
-prepare() {
- local i
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
-}
+builddir="$srcdir"/Module-Versions-Report-$pkgver
build() {
- cd "$_builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make && make test || return 1
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="e9cd5025f5ab586a41d6ecb9f1a1aaa9dcfd902899709ac62817168dc690bfbfe195ef8fd1246d4cc55157bf90f048719891fbeaec4ed1aa885c3ba3e3db08f1 Module-Versions-Report-1.06.tar.gz"
+sha512sums="
+e9cd5025f5ab586a41d6ecb9f1a1aaa9dcfd902899709ac62817168dc690bfbfe195ef8fd1246d4cc55157bf90f048719891fbeaec4ed1aa885c3ba3e3db08f1 Module-Versions-Report-1.06.tar.gz
+"
diff --git a/main/perl-moo/APKBUILD b/main/perl-moo/APKBUILD
index 12c9b89d388..5c99aedfd7a 100644
--- a/main/perl-moo/APKBUILD
+++ b/main/perl-moo/APKBUILD
@@ -4,14 +4,13 @@
pkgname=perl-moo
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Moo
-pkgver=2.005004
+pkgver=2.005005
pkgrel=1
pkgdesc="Minimalist Object Orientation (with Moose compatibility)"
url="https://metacpan.org/release/Moo/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-class-method-modifiers perl-sub-quote perl-role-tiny"
-checkdepends="perl-test-fatal"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/H/HA/HAARG/Moo-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
@@ -30,4 +29,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="a1335d180cd19dc7189bc1663efd5a05650d579c5e5d049fc4059a382d1eeb882fdd9cd2b107fdd40499e22a5c6196fc47c1334145101def531e5f5fd3cd0edf Moo-2.005004.tar.gz"
+sha512sums="
+e6b6cc491bb55ab0a7a57418d210da52990e8aa559fcf83c25838624caa0de1c919a229bab2b9c7e7c99cc9904706b64db169860d2c404449731e400ea1c5f79 Moo-2.005005.tar.gz
+"
diff --git a/main/perl-mozilla-ca/APKBUILD b/main/perl-mozilla-ca/APKBUILD
index f7f350ec52d..96ef1743a32 100644
--- a/main/perl-mozilla-ca/APKBUILD
+++ b/main/perl-mozilla-ca/APKBUILD
@@ -1,38 +1,38 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 4
# Contributor: Sheila Aman <sheila@vulpine.house>
# Maintainer: Sheila Aman <sheila@vulpine.house>
pkgname=perl-mozilla-ca
-_pkgreal=Mozilla-CA
-pkgver=20211001
+pkgver=20240313
pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Mozilla-CA
pkgdesc="Mozilla's CA cert bundle in PEM format"
-url="https://metacpan.org/release/Mozilla-CA"
+url="https://metacpan.org/release/Mozilla-CA/"
arch="noarch"
license="MPL-2.0"
depends="perl"
subpackages="$pkgname-doc"
-source="https://search.cpan.org/CPAN/authors/id/A/AB/ABH/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/L/LW/LWP/Mozilla-CA-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
-
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
sha512sums="
-dc3d96de93b4b193861142afe5f8120a09faa0c105ba0cc2832e4d0c9f2611bbefa8046620a67267e6c374e5abde0ad829279f62acf8a7e411fd75c182745969 Mozilla-CA-20211001.tar.gz
+b5666f30a483e0abeb04182d8c02e8d3c3457672debf628152f3566ed7f5fc4942d7ac186b14802cd549d35abe2fc93cd505373d8a9af77fee57a2948d9a4984 Mozilla-CA-20240313.tar.gz
"
diff --git a/main/perl-mro-compat/APKBUILD b/main/perl-mro-compat/APKBUILD
index 404f114771d..0004e1de167 100644
--- a/main/perl-mro-compat/APKBUILD
+++ b/main/perl-mro-compat/APKBUILD
@@ -1,32 +1,32 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-mro-compat
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=MRO-Compat
pkgver=0.15
-pkgrel=0
+pkgrel=2
pkgdesc="mro::* interface compatibility for Perls < 5.9.5"
url="https://metacpan.org/release/MRO-Compat/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/H/HA/HAARG/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/H/HA/HAARG/MRO-Compat-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-check() {
- make test
-}
-
-prepare() {
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
package() {
make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
diff --git a/main/perl-namespace-autoclean/APKBUILD b/main/perl-namespace-autoclean/APKBUILD
index 21eeb3731f8..9c615d43019 100644
--- a/main/perl-namespace-autoclean/APKBUILD
+++ b/main/perl-namespace-autoclean/APKBUILD
@@ -5,7 +5,7 @@
pkgname=perl-namespace-autoclean
_pkgreal=namespace-autoclean
pkgver=0.29
-pkgrel=2
+pkgrel=3
pkgdesc="Keep imports out of your namespace"
url="https://metacpan.org/release/namespace-autoclean/"
arch="noarch"
diff --git a/main/perl-namespace-clean/APKBUILD b/main/perl-namespace-clean/APKBUILD
index 3a0fb4da212..00a47b2cb59 100644
--- a/main/perl-namespace-clean/APKBUILD
+++ b/main/perl-namespace-clean/APKBUILD
@@ -1,36 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-namespace-clean
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=namespace-clean
pkgver=0.27
-pkgrel=2
+pkgrel=4
pkgdesc="Keep imports and functions out of your namespace"
url="https://metacpan.org/release/namespace-clean/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl perl-package-stash perl-sub-name perl-sub-identify perl-b-hooks-endofscope"
+depends="perl perl-package-stash perl-b-hooks-endofscope"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/R/RI/RIBASUSHI/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/R/RI/RIBASUSHI/namespace-clean-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="4422640656602e44c6d3675e55a0e699f8c0e07abbaf11f0b0905043f90e13bb95ee0eaa4c4a08c853296825dd8ef33c806e0a7c284a70448e35ac3354545744 namespace-clean-0.27.tar.gz"
+sha512sums="
+4422640656602e44c6d3675e55a0e699f8c0e07abbaf11f0b0905043f90e13bb95ee0eaa4c4a08c853296825dd8ef33c806e0a7c284a70448e35ac3354545744 namespace-clean-0.27.tar.gz
+"
diff --git a/main/perl-net-cidr-lite/APKBUILD b/main/perl-net-cidr-lite/APKBUILD
index fa23e030514..7df980cae36 100644
--- a/main/perl-net-cidr-lite/APKBUILD
+++ b/main/perl-net-cidr-lite/APKBUILD
@@ -1,11 +1,11 @@
# Automatically generated by apkbuild-cpan, template 3
# Contributor: Matt Smith <mcs@darkregion.net>
-# Maintainer: Matt Smith <mcs@darkregion.net>
+# Maintainer: Matt Smith <mcs@darkregion.net>
pkgname=perl-net-cidr-lite
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Net-CIDR-Lite
pkgver=0.22
-pkgrel=0
+pkgrel=1
pkgdesc="Perl extension for merging IPv4 or IPv6 CIDR addresses"
url="https://metacpan.org/release/Net-CIDR-Lite/"
arch="noarch"
diff --git a/main/perl-net-cidr/APKBUILD b/main/perl-net-cidr/APKBUILD
index 19165baf262..271d42a7a86 100644
--- a/main/perl-net-cidr/APKBUILD
+++ b/main/perl-net-cidr/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-net-cidr
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Net-CIDR
pkgver=0.21
-pkgrel=1
+pkgrel=2
pkgdesc="Manipulate IPv4/IPv6 netblocks in CIDR notation"
url="https://metacpan.org/release/Net-CIDR/"
arch="noarch"
diff --git a/main/perl-net-dns-resolver-mock/APKBUILD b/main/perl-net-dns-resolver-mock/APKBUILD
index df7fe9c5c8f..1522a331c41 100644
--- a/main/perl-net-dns-resolver-mock/APKBUILD
+++ b/main/perl-net-dns-resolver-mock/APKBUILD
@@ -3,13 +3,14 @@
pkgname=perl-net-dns-resolver-mock
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Net-DNS-Resolver-Mock
-pkgver=1.20200215
+pkgver=1.20230216
pkgrel=1
pkgdesc="Mock a DNS Resolver object for testing"
url="https://metacpan.org/release/Net-DNS-Resolver-Mock/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-net-dns"
+makedepends="perl-dev"
checkdepends="perl-test-exception"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/M/MB/MBRADSHAW/Net-DNS-Resolver-Mock-$pkgver.tar.gz"
@@ -31,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="92ac244dc2a7b939b1e8e8c71eb9ce65fdf1494dd08c62e6fc3720ffa82acc7c354bd7dcb8c77d9e52ee132773864b4b3ba869303af7363001ff5e9125c06802 Net-DNS-Resolver-Mock-1.20200215.tar.gz"
+sha512sums="
+832fdae88ef915251bd71ebacd3223cd8adb269cbb2e9724c617b31cfa65c92471ce93273070143c629e0a3f3bda54bcd5d55ae78fd60eae6c929bb7da7e1290 Net-DNS-Resolver-Mock-1.20230216.tar.gz
+"
diff --git a/main/perl-net-dns-resolver-programmable/APKBUILD b/main/perl-net-dns-resolver-programmable/APKBUILD
index 8c7bdcb26d4..de92fc2b991 100644
--- a/main/perl-net-dns-resolver-programmable/APKBUILD
+++ b/main/perl-net-dns-resolver-programmable/APKBUILD
@@ -1,19 +1,19 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-net-dns-resolver-programmable
-_pkgname=Net-DNS-Resolver-Programmable
+_pkgreal=Net-DNS-Resolver-Programmable
pkgver=0.009
-pkgrel=2
+pkgrel=4
pkgdesc="Programmable DNS resolver perl class for offline emulation of DNS"
url="https://metacpan.org/pod/Net::DNS::Resolver::Programmable"
arch="noarch"
-license="Perl Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl perl-net-dns"
makedepends="perl-module-build"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/B/BI/BIGPRESH/$_pkgname-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/B/BI/BIGPRESH/Net-DNS-Resolver-Programmable-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
perl Makefile.PL INSTALLDIRS=vendor
diff --git a/main/perl-net-dns/APKBUILD b/main/perl-net-dns/APKBUILD
index 9b97174a2b4..b009bc524d9 100644
--- a/main/perl-net-dns/APKBUILD
+++ b/main/perl-net-dns/APKBUILD
@@ -1,11 +1,11 @@
-# Automatically generated by apkbuild-cpan, template 3
+# Automatically generated by apkbuild-cpan, template 4
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-net-dns
+pkgver=1.44
+pkgrel=0
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Net-DNS
-pkgver=1.34
-pkgrel=0
pkgdesc="Perl Interface to the Domain Name System"
url="https://metacpan.org/release/Net-DNS/"
arch="noarch"
@@ -17,7 +17,10 @@ builddir="$srcdir/$_pkgreal-$pkgver"
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
make
}
@@ -28,9 +31,15 @@ check() {
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
+}
+
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
}
sha512sums="
-890b5e7b574a546337571a8c7f5836650a7de41301ce2386d973041f0f1da0bd40c69cfc3625fccd01685502017b42d23cd75e95f40a1ffd7bcc796385899032 Net-DNS-1.34.tar.gz
+9de622a58d658799f8b3b636408d4e64ce8e4db7623f6e28809e12fb86802c8995e39ee3e0753e13ce8fdc8119fc6a449abc8fd768e72adca205d51fdb774bbe Net-DNS-1.44.tar.gz
"
diff --git a/main/perl-net-http/APKBUILD b/main/perl-net-http/APKBUILD
index 1daab39eb33..d84c2a4be9d 100644
--- a/main/perl-net-http/APKBUILD
+++ b/main/perl-net-http/APKBUILD
@@ -4,8 +4,8 @@
pkgname=perl-net-http
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Net-HTTP
-pkgver=6.22
-pkgrel=0
+pkgver=6.23
+pkgrel=1
pkgdesc="Low-level HTTP connection (client)"
replaces="perl-libwww"
url="https://metacpan.org/release/Net-HTTP/"
@@ -33,5 +33,5 @@ package() {
}
sha512sums="
-8d0af85baee8a3b257995c6dd277c2eb578d1feeec89f3e4be0548959d2cf07934764d9d16a542a50f72a4611e3f4b6335ff7e969a28cd74fbb0ec3961588131 Net-HTTP-6.22.tar.gz
+be926d12f6a8be504f221b54dbe9b1cbe1ff18b7dc8075ce308cc8c436ed9e4fe959516ce81c858a70de80df13cedd8cd78fd153cc5eb763f1bc3c9893ceaa05 Net-HTTP-6.23.tar.gz
"
diff --git a/main/perl-net-ip/APKBUILD b/main/perl-net-ip/APKBUILD
index 7a828cd7560..a4b9255ac85 100644
--- a/main/perl-net-ip/APKBUILD
+++ b/main/perl-net-ip/APKBUILD
@@ -1,30 +1,33 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-net-ip
-_realname=Net-IP
+_pkgreal=Net-IP
pkgver=1.26
-pkgrel=3
+pkgrel=7
pkgdesc="Perl extension for manipulating IPv4/IPv6 addresses"
-url="http://search.cpan.org/~manu/Net-IP-1.25/"
+url="https://metacpan.org/dist/Net-IP"
arch="noarch"
-license="Artistic-Perl-1.0 GPL+"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
-install=
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/M/MA/MANU/$_realname-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/M/MA/MANU/Net-IP-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- cd "$srcdir/$_realname-$pkgver"
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make || return 1
+check() {
+ make test
}
package() {
- cd "$srcdir/$_realname-$pkgver"
make DESTDIR="$pkgdir" install
# creates file collision among perl modules
find "$pkgdir" -name perllocal.pod -delete
}
-sha512sums="c561f32b6ca5dc082e2bc6c47000a2ca0f5ee7abb47105f5b1bf98cb76723287416de0a767ea63c18f87964df7f3982c7258fe1208afa22cff0378ae3509d9eb Net-IP-1.26.tar.gz"
+sha512sums="
+c561f32b6ca5dc082e2bc6c47000a2ca0f5ee7abb47105f5b1bf98cb76723287416de0a767ea63c18f87964df7f3982c7258fe1208afa22cff0378ae3509d9eb Net-IP-1.26.tar.gz
+"
diff --git a/main/perl-net-libidn/APKBUILD b/main/perl-net-libidn/APKBUILD
index 2974f72926e..fd9f9f56198 100644
--- a/main/perl-net-libidn/APKBUILD
+++ b/main/perl-net-libidn/APKBUILD
@@ -1,31 +1,35 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-net-libidn
-_realname=Net-LibIDN
+_pkgreal=Net-LibIDN
pkgver=0.12
-pkgrel=11
+pkgrel=15
pkgdesc="Perl bindings for GNU Libidn"
url="http://www.net-dns.org/"
arch="all"
-license="Artistic-Perl-1.0 GPL+"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
makedepends="libidn-dev perl-dev"
-install=""
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/T/TH/THOR/$_realname-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/T/TH/THOR/Net-LibIDN-$pkgver.tar.gz"
+
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_realname-$pkgver"
build() {
- cd "$_builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make || return 1
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ make test
}
package() {
- cd "$_builddir"
make DESTDIR="$pkgdir" install
- # creates file collision among perl modules
+ # creates file collision among perl modules
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="2c80d0e3d4635e225e8866a1ef6335e3b8642662101e89fde6529aa07acc1eaf8adbe20fadd1d44898651f9d67a3d00c11ff71a22a2aa3027e81643e700d79ee Net-LibIDN-0.12.tar.gz"
+sha512sums="
+2c80d0e3d4635e225e8866a1ef6335e3b8642662101e89fde6529aa07acc1eaf8adbe20fadd1d44898651f9d67a3d00c11ff71a22a2aa3027e81643e700d79ee Net-LibIDN-0.12.tar.gz
+"
diff --git a/main/perl-net-openssh/APKBUILD b/main/perl-net-openssh/APKBUILD
index 5f33f36e593..4030dce4774 100644
--- a/main/perl-net-openssh/APKBUILD
+++ b/main/perl-net-openssh/APKBUILD
@@ -4,8 +4,8 @@
pkgname=perl-net-openssh
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Net-OpenSSH
-pkgver=0.82
-pkgrel=0
+pkgver=0.84
+pkgrel=1
pkgdesc="Perl SSH client package implemented on top of OpenSSH"
options="!check" # make test is interactive
url="https://metacpan.org/release/Net-OpenSSH/"
@@ -28,5 +28,5 @@ package() {
}
sha512sums="
-ff13519ba04ebb4ecc3185cc1c32ca6b46a8cc55108f35aeb424738676a41cd7a898443f91d64fe4877e2ab6b4ed30fa15dd3da02aa11a4892ff2c9944035314 Net-OpenSSH-0.82.tar.gz
+eae50ddc609654432c77080dbfd1dbfd76a7651a1a4e85c0a0f01547b329761a6676faabec931a3b4ff5c74bfa4f529cf649249ad57e73305e67b33da891a555 Net-OpenSSH-0.84.tar.gz
"
diff --git a/main/perl-net-rblclient/APKBUILD b/main/perl-net-rblclient/APKBUILD
index e9d5c73e874..32a67da9bfe 100644
--- a/main/perl-net-rblclient/APKBUILD
+++ b/main/perl-net-rblclient/APKBUILD
@@ -1,17 +1,16 @@
# Contributor: Michael Mason <ms13sp@gmail.com>
-# Maintainer: Michael Mason <ms13sp@gmail.com>
+# Maintainer: Michael Mason <ms13sp@gmail.com>
pkgname=perl-net-rblclient
-_realname=Net-RBLClient
+_pkgreal=Net-RBLClient
pkgver=0.5
-pkgrel=5
+pkgrel=8
pkgdesc="Queries multiple Realtime Blackhole Lists in parallel"
url="https://metacpan.org/release/Net-RBLClient/"
arch="noarch"
-license="Artistic GPL-2.0"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
-install=
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/A/AB/ABLUM/$_realname-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/A/AB/ABLUM/Net-RBLClient-$pkgver.tar.gz"
builddir="$srcdir/RBLCLient-$pkgver"
build() {
@@ -24,7 +23,6 @@ check() {
}
package() {
- cd "$srcdir/RBLCLient-$pkgver"
make DESTDIR="$pkgdir" install
# creates file collision among perl modules
find "$pkgdir" -name perllocal.pod -delete
diff --git a/main/perl-net-server/APKBUILD b/main/perl-net-server/APKBUILD
index 6aeef8320a9..d3bfabd7c9d 100644
--- a/main/perl-net-server/APKBUILD
+++ b/main/perl-net-server/APKBUILD
@@ -1,36 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-net-server
-_realname=Net-Server
-pkgver=2.010
-pkgrel=0
-pkgdesc="Extensible, general Perl server engine"
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Net-Server
+pkgver=2.014
+pkgrel=2
+pkgdesc="Extensible Perl internet server"
url="https://metacpan.org/release/Net-Server/"
arch="noarch"
-license="Artistic-1.0 GPL+"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-install=
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/R/RH/RHANDOM/$_realname-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
-
-prepare() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
+source="https://cpan.metacpan.org/authors/id/R/RH/RHANDOM/Net-Server-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
+ find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="b4c1a85263e81c4ad6f32e28acb5176002ad591a1140dca060b706901758f48d3c63c4077606d772540e18fc6fa6772e71d213d0a4940e903c597b0e0f844365 Net-Server-2.010.tar.gz"
+sha512sums="
+6b1bbfeed13af5f9dba76873899e162497234b5cc8fc08bf749fd86e0377bd9184a9807df61f27645634d0ff8d8e6c8c14b700b3d283fbbb7d1d844e6608c9c2 Net-Server-2.014.tar.gz
+"
diff --git a/main/perl-net-smtp-ssl/APKBUILD b/main/perl-net-smtp-ssl/APKBUILD
index c9e81408465..f48cd6f4465 100644
--- a/main/perl-net-smtp-ssl/APKBUILD
+++ b/main/perl-net-smtp-ssl/APKBUILD
@@ -1,37 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-net-smtp-ssl
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Net-SMTP-SSL
pkgver=1.04
-pkgrel=2
+pkgrel=4
pkgdesc="SSL support for Net::SMTP"
url="https://metacpan.org/release/Net-SMTP-SSL/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl perl-io-socket-ssl perl-net-ssleay"
+depends="perl perl-io-socket-ssl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/Net-SMTP-SSL-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="dfbf59e5d895add19f5684c999c941ab56a58be39492a02e5a9bdac47039bf388279eda734c6b0422d228ac14efed899b3572561e6a34cfd9582423252efb509 Net-SMTP-SSL-1.04.tar.gz"
+sha512sums="
+dfbf59e5d895add19f5684c999c941ab56a58be39492a02e5a9bdac47039bf388279eda734c6b0422d228ac14efed899b3572561e6a34cfd9582423252efb509 Net-SMTP-SSL-1.04.tar.gz
+"
diff --git a/main/perl-net-smtp-tls-butmaintained/APKBUILD b/main/perl-net-smtp-tls-butmaintained/APKBUILD
index d32826c7674..fb72ba91a2f 100644
--- a/main/perl-net-smtp-tls-butmaintained/APKBUILD
+++ b/main/perl-net-smtp-tls-butmaintained/APKBUILD
@@ -1,36 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Maintainer: Valery Kartel <valery.kartel@gmail.com>
pkgname=perl-net-smtp-tls-butmaintained
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Net-SMTP-TLS-ButMaintained
pkgver=0.24
-pkgrel=2
+pkgrel=4
pkgdesc="An SMTP client supporting TLS and AUTH (DEPRECATED, use Net::SMTPS instead)"
url="https://metacpan.org/release/Net-SMTP-TLS-ButMaintained/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-net-ssleay perl-io-socket-ssl perl-digest-hmac"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/F/FA/FAYLAND/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/F/FA/FAYLAND/Net-SMTP-TLS-ButMaintained-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="28c5145ed5a3ce2beecbe95dde33c6892a4384102f0fe7c795bc92206e34257cae5c993e8c748b462c87a494eab399e45e56737bc3c424aa155613bbee2e4588 Net-SMTP-TLS-ButMaintained-0.24.tar.gz"
+sha512sums="
+28c5145ed5a3ce2beecbe95dde33c6892a4384102f0fe7c795bc92206e34257cae5c993e8c748b462c87a494eab399e45e56737bc3c424aa155613bbee2e4588 Net-SMTP-TLS-ButMaintained-0.24.tar.gz
+"
diff --git a/main/perl-net-snmp/APKBUILD b/main/perl-net-snmp/APKBUILD
index d39fa758105..576e021d333 100644
--- a/main/perl-net-snmp/APKBUILD
+++ b/main/perl-net-snmp/APKBUILD
@@ -1,36 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Sheila Aman <sheila@vulpine.house>
# Maintainer: Sheila Aman <sheila@vulpine.house>
pkgname=perl-net-snmp
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Net-SNMP
pkgver=6.0.1
-pkgrel=5
+pkgrel=8
pkgdesc="Object oriented interface to SNMP"
url="https://metacpan.org/release/Net-SNMP/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl perl-crypt-des perl-crypt-rijndael perl-digest-sha1"
-makedepends="perl-module-build"
+depends="perl"
+makedepends="perl-dev perl-module-build"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DT/DTOWN/$_pkgreal-v$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/D/DT/DTOWN/Net-SNMP-v$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-v$pkgver"
-prepare() {
- default_prepare
- perl Build.PL installdirs=vendor
-}
-
build() {
- ./Build
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
check() {
- ./Build test
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- ./Build install destdir="$pkgdir"
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="5e38d4a934661201d42fd4a2d08aeca8c4522e0e430303eec7af38d16ea0aee131a4ec563bf87874376fe4995a674a24451f2a12b71a9c51ed3632e6f65314df Net-SNMP-v6.0.1.tar.gz"
+sha512sums="
+5e38d4a934661201d42fd4a2d08aeca8c4522e0e430303eec7af38d16ea0aee131a4ec563bf87874376fe4995a674a24451f2a12b71a9c51ed3632e6f65314df Net-SNMP-v6.0.1.tar.gz
+"
diff --git a/main/perl-net-snpp/APKBUILD b/main/perl-net-snpp/APKBUILD
index fa9b2551da0..cd79cbb0c20 100644
--- a/main/perl-net-snpp/APKBUILD
+++ b/main/perl-net-snpp/APKBUILD
@@ -1,31 +1,35 @@
# Contributor: Jeff Bilyk <jbilyk@gmail.com>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-net-snpp
-_realname=Net-SNPP
+_pkgreal=Net-SNPP
pkgver=1.17
-pkgrel=4
+pkgrel=7
pkgdesc="Perl Simple Network Pager Protocol Client"
-url="http://search.cpan.org/~tobeya/"
+url="https://metacpan.org/dist/Net-SNPP"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+options="!check" # fixme: failing tests
depends="perl"
-install=
-source="https://cpan.metacpan.org/authors/id/T/TO/TOBEYA/$_realname-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/T/TO/TOBEYA/Net-SNPP-$pkgver.tar.gz"
-_builddir="$srcdir/$_realname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- cd $_builddir
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make || return 1
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ make test
}
package() {
- cd $_builddir
make DESTDIR="$pkgdir" install
# creates file collision among perl modules
find "$pkgdir" -name perllocal.pod -delete
}
-sha512sums="aa1e47736226cc528513f5339579aa20f1aabbc5c0ddee2e4ca24beb0f797f50805fcf547fc6b8d0564be9331256706894d2619ee5a32c574a21d3738d86dcda Net-SNPP-1.17.tar.gz"
+sha512sums="
+aa1e47736226cc528513f5339579aa20f1aabbc5c0ddee2e4ca24beb0f797f50805fcf547fc6b8d0564be9331256706894d2619ee5a32c574a21d3738d86dcda Net-SNPP-1.17.tar.gz
+"
diff --git a/main/perl-net-ssleay/APKBUILD b/main/perl-net-ssleay/APKBUILD
index 91c3bcb0802..973a91f1dde 100644
--- a/main/perl-net-ssleay/APKBUILD
+++ b/main/perl-net-ssleay/APKBUILD
@@ -1,19 +1,19 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-net-ssleay
-_realname=Net-SSLeay
-pkgver=1.92
-pkgrel=1
+_pkgreal=Net-SSLeay
+pkgver=1.94
+pkgrel=0
pkgdesc="Perl extension for using OpenSSL"
url="https://metacpan.org/release/Net-SSLeay"
arch="all"
license="Artistic-2.0"
depends="perl"
-makedepends="perl-dev openssl1.1-compat-dev zlib-dev"
+makedepends="perl-dev openssl-dev>3 zlib-dev"
checkdepends="perl-test-exception perl-test-warn perl-test-nowarnings"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/C/CH/CHRISN/Net-SSLeay-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
@@ -28,9 +28,9 @@ package() {
make DESTDIR="$pkgdir" install
# creates file collision among perl modules
- find "$pkgdir" -name perllocal.pod -delete
+ find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
sha512sums="
-e9d9161ebeb7be90f4c7a0ea98f1034892ce6d33aa72872683177b19daa1f4c5819f85ea9a052a076ec8d7c21705f6c344aef64680bc881bf3218d38e8b7b173 Net-SSLeay-1.92.tar.gz
+f1461667269f3da56ff7e1724b5511b95c34582250f8336e9f93d30f3b30d4a5360eb27622b9730bba11df75e00d717c7f0cea2120d20206723db136a8509375 Net-SSLeay-1.94.tar.gz
"
diff --git a/main/perl-net-telnet/APKBUILD b/main/perl-net-telnet/APKBUILD
index bafafee60ad..ca4f4b8e0ed 100644
--- a/main/perl-net-telnet/APKBUILD
+++ b/main/perl-net-telnet/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-net-telnet
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Net-Telnet
pkgver=3.05
-pkgrel=0
+pkgrel=1
pkgdesc="Interact with TELNET port or other TCP ports"
url="https://metacpan.org/release/Net-Telnet/"
arch="noarch"
diff --git a/main/perl-netaddr-ip/APKBUILD b/main/perl-netaddr-ip/APKBUILD
index 64ccf5920f7..8ce665d209b 100644
--- a/main/perl-netaddr-ip/APKBUILD
+++ b/main/perl-netaddr-ip/APKBUILD
@@ -1,34 +1,34 @@
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-netaddr-ip
-_realname=NetAddr-IP
+_pkgreal=NetAddr-IP
pkgver=4.079
-pkgrel=7
+pkgrel=12
pkgdesc="Perl extension for managing IPv4 and IPv6 addresses and subnets"
-url="http://search.cpan.org/~miker/NetAddr-IP-$pkgver/"
+url="https://metacpan.org/dist/NetAddr-IP"
arch="all"
-license="GPL-2.0 and Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
makedepends="perl-dev"
-install=""
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/M/MI/MIKER/$_realname-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/M/MI/MIKER/NetAddr-IP-$pkgver.tar.gz"
-_builddir="$srcdir/$_realname-$pkgver"
-prepare() {
- return 0
-}
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- cd $_builddir
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make || return 1
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ make test
}
package() {
- cd $_builddir
make DESTDIR="$pkgdir" install
# creates file collision among perl modules
find "$pkgdir" -name perllocal.pod -delete
}
-sha512sums="8ebc8ffb914cf72c041441f96de0e9c982eebdb8c26dbf15f885d0113b3634e4851d81f13f555c14d1fdf0ab95ae2ce880ed124e6c200e391adae3b1d6d3eb65 NetAddr-IP-4.079.tar.gz"
+sha512sums="
+8ebc8ffb914cf72c041441f96de0e9c982eebdb8c26dbf15f885d0113b3634e4851d81f13f555c14d1fdf0ab95ae2ce880ed124e6c200e391adae3b1d6d3eb65 NetAddr-IP-4.079.tar.gz
+"
diff --git a/main/perl-package-anon/APKBUILD b/main/perl-package-anon/APKBUILD
index 09265d4c0fb..75cef37e1dd 100644
--- a/main/perl-package-anon/APKBUILD
+++ b/main/perl-package-anon/APKBUILD
@@ -1,38 +1,38 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-package-anon
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Package-Anon
pkgver=0.05
-pkgrel=11
+pkgrel=14
pkgdesc="Anonymous packages"
url="https://metacpan.org/release/Package-Anon/"
arch="all"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpanmakedepends="perl-sub-exporter"
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
+depends="perl"
+makedepends="perl-dev"
+checkdepends="perl-sub-exporter"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/A/AU/AUGGY/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/A/AU/AUGGY/Package-Anon-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- cd "$builddir"
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$builddir"
+check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make && make test
+ make test
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="73adf4eb8348ad51e678d7d777f7c13599eaaa53e776a35df768ee1afcf781801c980c786c658addad80ae5fe852fefb3600722ea7b02d928653543aa28d9d51 Package-Anon-0.05.tar.gz"
+sha512sums="
+73adf4eb8348ad51e678d7d777f7c13599eaaa53e776a35df768ee1afcf781801c980c786c658addad80ae5fe852fefb3600722ea7b02d928653543aa28d9d51 Package-Anon-0.05.tar.gz
+"
diff --git a/main/perl-package-deprecationmanager/APKBUILD b/main/perl-package-deprecationmanager/APKBUILD
index 695f265efde..f64d11e998d 100644
--- a/main/perl-package-deprecationmanager/APKBUILD
+++ b/main/perl-package-deprecationmanager/APKBUILD
@@ -1,37 +1,38 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-package-deprecationmanager
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Package-DeprecationManager
-pkgver=0.17
-pkgrel=2
+pkgver=0.18
+pkgrel=1
pkgdesc="Manage deprecation warnings for your distribution"
url="https://metacpan.org/release/Package-DeprecationManager/"
arch="noarch"
license="Artistic-2.0"
-depends="
- perl perl-list-moreutils perl-sub-install perl-params-util perl-test-fatal perl-test-requires
- perl-package-stash perl-test-warnings perl-sub-name
- "
+depends="perl perl-sub-install perl-params-util perl-package-stash"
+makedepends="perl-dev"
+checkdepends="perl-test-fatal perl-test-warnings"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Package-DeprecationManager-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="57bf79df657895342ca5b8d13f155d85f34d1a85415570b112138b6c50c5d08b421a1707671fbf807918cc334006e4558a626a7201c60096924fc2200c751cde Package-DeprecationManager-0.17.tar.gz"
+sha512sums="
+e0e34fd9b90d0266d782b85fe9a74c4bde217009488c75143c0ef2114d8c53f58a01c34214909705628c3816267b288b1b05d341fa8fae7a3fcc6bbdbf2f6031 Package-DeprecationManager-0.18.tar.gz
+"
diff --git a/main/perl-package-stash-xs/APKBUILD b/main/perl-package-stash-xs/APKBUILD
index c5baaaecc03..ec2d34c029a 100644
--- a/main/perl-package-stash-xs/APKBUILD
+++ b/main/perl-package-stash-xs/APKBUILD
@@ -1,37 +1,34 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-package-stash-xs
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Package-Stash-XS
pkgver=0.30
-pkgrel=0
-pkgdesc="faster and more correct implementation of the Package::Stash API"
+pkgrel=3
+pkgdesc="Faster and more correct implementation of the Package::Stash API"
url="https://metacpan.org/release/Package-Stash-XS/"
arch="all"
-license="GPL PerlArtistic"
-cpandepends=""
-cpanmakedepends="perl-test-requires perl-test-fatal perl-yaml
- perl-module-runtime perl-sub-name perl-pod-coverage"
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
-checkdepends="perl-package-anon perl-test-needs"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+makedepends="perl-dev"
+checkdepends="perl-test-needs perl-test-fatal"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/Package-Stash-XS-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- cd "$builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
- cd "$builddir"
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
diff --git a/main/perl-package-stash/APKBUILD b/main/perl-package-stash/APKBUILD
index c7ab751200d..b8d9bc4bc2d 100644
--- a/main/perl-package-stash/APKBUILD
+++ b/main/perl-package-stash/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-package-stash
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Package-Stash
pkgver=0.40
-pkgrel=0
+pkgrel=1
pkgdesc="Routines for manipulating stashes"
url="https://metacpan.org/release/Package-Stash/"
arch="noarch"
diff --git a/main/perl-parallel-forkmanager/APKBUILD b/main/perl-parallel-forkmanager/APKBUILD
index 44b7bab857e..c20a076e38b 100644
--- a/main/perl-parallel-forkmanager/APKBUILD
+++ b/main/perl-parallel-forkmanager/APKBUILD
@@ -1,35 +1,38 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-parallel-forkmanager
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Parallel-ForkManager
pkgver=2.02
-pkgrel=3
-pkgdesc="unknown"
+pkgrel=5
+pkgdesc="A simple parallel processing fork manager"
url="https://metacpan.org/release/Parallel-ForkManager/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-moo"
-makedepends="perl-test-warn"
+makedepends="perl-dev"
+checkdepends="perl-test-warn"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/Y/YA/YANICK/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/Y/YA/YANICK/Parallel-ForkManager-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="2b390ec8f252e7bf2b6be8d602b231b1fd347bc5256bf7f16a6d56f67256938f3d96b7a28c92c662d8b91441b7fa4cb5922c655e64a7a4a9332eb58f19b6bcfb Parallel-ForkManager-2.02.tar.gz"
+sha512sums="
+2b390ec8f252e7bf2b6be8d602b231b1fd347bc5256bf7f16a6d56f67256938f3d96b7a28c92c662d8b91441b7fa4cb5922c655e64a7a4a9332eb58f19b6bcfb Parallel-ForkManager-2.02.tar.gz
+"
diff --git a/main/perl-params-classify/APKBUILD b/main/perl-params-classify/APKBUILD
index 69eb3799643..7fe431dd9cb 100644
--- a/main/perl-params-classify/APKBUILD
+++ b/main/perl-params-classify/APKBUILD
@@ -1,32 +1,36 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-params-classify
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Params-Classify
pkgver=0.015
-pkgrel=6
+pkgrel=9
pkgdesc="argument type classification"
url="https://metacpan.org/release/Params-Classify/"
arch="all"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-dev perl-module-build perl-test-pod-coverage perl-test-pod"
+makedepends="perl-dev perl-module-build"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/Z/ZE/ZEFRAM/Params-Classify-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- perl Build.PL installdirs=vendor || return 1
+ perl Build.PL --installdirs=vendor
+ ./Build
}
check() {
- ./Build && ./Build test
+ ./Build test
}
package() {
- ./Build install destdir="$pkgdir" || return 1
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="1c41590a3f06d21d5f23e12371b0aee5d4249f773bfb0738e955fbdccdccc6e495744c50d3b91305a6b470e022475446705c8eb8e8d05ca1ed037d369a67617c Params-Classify-0.015.tar.gz"
+sha512sums="
+1c41590a3f06d21d5f23e12371b0aee5d4249f773bfb0738e955fbdccdccc6e495744c50d3b91305a6b470e022475446705c8eb8e8d05ca1ed037d369a67617c Params-Classify-0.015.tar.gz
+"
diff --git a/main/perl-params-util/APKBUILD b/main/perl-params-util/APKBUILD
index bf00eb4b6d4..3af26c588a2 100644
--- a/main/perl-params-util/APKBUILD
+++ b/main/perl-params-util/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-params-util
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Params-Util
pkgver=1.102
-pkgrel=2
+pkgrel=4
pkgdesc="Simple, compact and correct param-checking functions"
url="https://metacpan.org/release/Params-Util/"
arch="all"
@@ -33,6 +33,4 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-
-
sha512sums="e2587b62545cf0572cc8f719ea8e5411d710789c3cbcab4038c5b01f86073a010d32191551f6aeea1bdae22d49e7d34358250b4e7ece9f261a598854af187194 Params-Util-1.102.tar.gz"
diff --git a/main/perl-params-validate/APKBUILD b/main/perl-params-validate/APKBUILD
index 19eefbd528c..02538320a5b 100644
--- a/main/perl-params-validate/APKBUILD
+++ b/main/perl-params-validate/APKBUILD
@@ -3,7 +3,7 @@
pkgname=perl-params-validate
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Params-Validate
-pkgver=1.30
+pkgver=1.31
pkgrel=2
pkgdesc="Validate method/function parameters"
url="https://metacpan.org/release/Params-Validate/"
@@ -31,4 +31,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="ca6b54a55dc003be6933ad5a9353abf96f2decfc681354fabc974e9666b89b3afe8394cd0a13ec91a5f84c825cbc0b4697a4977bf773feabfefab57006c9f20e Params-Validate-1.30.tar.gz"
+sha512sums="
+8b20db8725df35b4dd9201dea764254d993cfa8a73b2ccebd7a9ba492cde36b589f66c26b287fe2f0ec1ebfafd53872cd164bee1727d1453265e030a927556d9 Params-Validate-1.31.tar.gz
+"
diff --git a/main/perl-params-validationcompiler/APKBUILD b/main/perl-params-validationcompiler/APKBUILD
index b88407a8eed..99c85c1450a 100644
--- a/main/perl-params-validationcompiler/APKBUILD
+++ b/main/perl-params-validationcompiler/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-params-validationcompiler
_pkgreal=Params-ValidationCompiler
-pkgver=0.30
+pkgver=0.31
pkgrel=1
pkgdesc="Params::ValidationCompiler perl module"
url="https://metacpan.org/release/Params-ValidationCompiler"
@@ -31,4 +31,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="5911f9317f0b72e17c72435420a3b6b9f36780ab70715510c46e847970094e730169b9b3085f29cb23ee0aca2e78f7f9edd0d093859a1062869f35c90172bf05 Params-ValidationCompiler-0.30.tar.gz"
+sha512sums="
+e3265cc6a5fc9761dd6ae82c3875711c5766242ab0f1edd74cc74296fdac22b6c23e48ba4768e895701ca8a00bd81677056713124b8edaa0b340eae1b33cf9c4 Params-ValidationCompiler-0.31.tar.gz
+"
diff --git a/main/perl-parse-recdescent/APKBUILD b/main/perl-parse-recdescent/APKBUILD
index 386bcd3af1b..cecf19f18a9 100644
--- a/main/perl-parse-recdescent/APKBUILD
+++ b/main/perl-parse-recdescent/APKBUILD
@@ -1,28 +1,33 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-parse-recdescent
-_realname=Parse-RecDescent
+_pkgreal=Parse-RecDescent
pkgver=1.967015
-pkgrel=3
+pkgrel=6
pkgdesc="Generate Recursive-Descent Parsers"
-url="http://search.cpan.org/~dconway/Parse-RecDescent-1.96.0/"
+url="https://metacpan.org/dist/Parse-RecDescent"
arch="noarch"
-license="Artistic-Perl-1.0 GPL+"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
checkdepends="perl-test-pod perl-test-warn"
-install=
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/J/JT/JTBRAUN/$_realname-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
+source="https://cpan.metacpan.org/authors/id/J/JT/JTBRAUN/Parse-RecDescent-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
prepare() {
+ default_prepare
+
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
}
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make || return 1
+ make
+}
+
+check() {
+ make test
}
package() {
@@ -30,8 +35,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- make test
-}
-
-sha512sums="38adbfc9a88f09d0465d862b845f48c0921ce462ffccaa7ce8b5f1b7090f33f70e7f00f9ee787fd698b5539804412c44f03e7942cf675d53a17a84c3510e5aa4 Parse-RecDescent-1.967015.tar.gz"
+sha512sums="
+38adbfc9a88f09d0465d862b845f48c0921ce462ffccaa7ce8b5f1b7090f33f70e7f00f9ee787fd698b5539804412c44f03e7942cf675d53a17a84c3510e5aa4 Parse-RecDescent-1.967015.tar.gz
+"
diff --git a/main/perl-parse-syslog/APKBUILD b/main/perl-parse-syslog/APKBUILD
index a22b83ca139..53f77bf89d9 100644
--- a/main/perl-parse-syslog/APKBUILD
+++ b/main/perl-parse-syslog/APKBUILD
@@ -1,11 +1,11 @@
# Automatically generated by apkbuild-cpan, template 3
# Contributor: Michael Mason <ms13sp@gmail.com>
-# Maintainer: Michael Mason <ms13sp@gmail.com>
+# Maintainer: Michael Mason <ms13sp@gmail.com>
pkgname=perl-parse-syslog
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Parse-Syslog
pkgver=1.10
-pkgrel=6
+pkgrel=7
pkgdesc="Perl module for Parse-Syslog"
url="https://metacpan.org/release/Parse-Syslog/"
arch="noarch"
diff --git a/main/perl-parse-yapp/APKBUILD b/main/perl-parse-yapp/APKBUILD
index 8c0ea85e26f..d32138445eb 100644
--- a/main/perl-parse-yapp/APKBUILD
+++ b/main/perl-parse-yapp/APKBUILD
@@ -3,7 +3,7 @@
pkgname=perl-parse-yapp
_pkgreal=Parse-Yapp
pkgver=1.21
-pkgrel=1
+pkgrel=3
pkgdesc="Perl module for Parse-Yapp"
url="https://metacpan.org/release/Parse-Yapp/"
arch="noarch"
diff --git a/main/perl-path-class/APKBUILD b/main/perl-path-class/APKBUILD
index 948f7adf2ab..587ff78c140 100644
--- a/main/perl-path-class/APKBUILD
+++ b/main/perl-path-class/APKBUILD
@@ -1,36 +1,36 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-path-class
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Path-Class
pkgver=0.37
-pkgrel=2
+pkgrel=4
pkgdesc="Cross-platform path specification manipulation"
url="https://metacpan.org/release/Path-Class/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-module-build"
+makedepends="perl-dev perl-module-build"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/K/KW/KWILLIAMS/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/K/KW/KWILLIAMS/Path-Class-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- perl Build.PL installdirs=vendor || return 1
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
+ ./Build
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- ./Build && ./Build test
+check() {
+ ./Build test
}
package() {
- cd "$_builddir"
- ./Build install destdir="$pkgdir" || return 1
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="044d86f85eebff96bdff8fc11e97884eb4e06d56ecd2d3bfdc045135da6f08c40e644e0e5c1a779a8ef5d6c7c04e159e47721b4e637a92fed7d298b5f798ef83 Path-Class-0.37.tar.gz"
+sha512sums="
+044d86f85eebff96bdff8fc11e97884eb4e06d56ecd2d3bfdc045135da6f08c40e644e0e5c1a779a8ef5d6c7c04e159e47721b4e637a92fed7d298b5f798ef83 Path-Class-0.37.tar.gz
+"
diff --git a/main/perl-path-tiny/APKBUILD b/main/perl-path-tiny/APKBUILD
index 0a0ef4023fd..b24a68a3a41 100644
--- a/main/perl-path-tiny/APKBUILD
+++ b/main/perl-path-tiny/APKBUILD
@@ -4,8 +4,8 @@
pkgname=perl-path-tiny
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Path-Tiny
-pkgver=0.122
-pkgrel=0
+pkgver=0.144
+pkgrel=1
pkgdesc="File path utility"
url="https://metacpan.org/release/Path-Tiny/"
arch="noarch"
@@ -33,5 +33,5 @@ package() {
}
sha512sums="
-cca49e56208f767469d37a081817b386eaf2ce2164cc97fd652c2faccc99f483805425e1bf346466871c156f9fe36f5a3f65e96c5b219af33e3e2016144f2c6d Path-Tiny-0.122.tar.gz
+a6360ff3c81dac6026a7610b4934a415db04060a7792e37d38eec6f7b46970eeb42840da25fc0b4eab21eaa7b5f011c6d92ba5382dcea49e57e4fc693c4620d5 Path-Tiny-0.144.tar.gz
"
diff --git a/main/perl-pathtools/APKBUILD b/main/perl-pathtools/APKBUILD
index 51c75ec1331..d08032c2b5f 100644
--- a/main/perl-pathtools/APKBUILD
+++ b/main/perl-pathtools/APKBUILD
@@ -1,44 +1,40 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-pathtools
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=PathTools
pkgver=3.75
-pkgrel=6
-pkgdesc="The combined distribution for the File::Spec and Cwd modules"
+pkgrel=10
+pkgdesc="Tools for working with directory and file names"
url="https://metacpan.org/release/PathTools/"
arch="all"
-license="GPL PerlArtistic"
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX/$_pkgreal-$pkgver.tar.gz"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+makedepends="perl-dev"
+source="https://cpan.metacpan.org/authors/id/X/XS/XSAWYERX/PathTools-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
+options="!check" # need updating for perl 5.38
build() {
- cd "$builddir"
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
make
}
check() {
- cd "$builddir"
- make test
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-doc() {
- default_doc
- replaces="perl-doc"
+ # man pages are already provided by perl-doc
+ rm -rf "$pkgdir"/usr/share/man
}
-sha512sums="bab592a64df391a50b70717cd5fa042ca395e83790dbc447abd72ef81f0e7caf7b8ce1158102d77d470765c572e6773cd907e4884532350bd2f15da667b9a993 PathTools-3.75.tar.gz"
+sha512sums="
+bab592a64df391a50b70717cd5fa042ca395e83790dbc447abd72ef81f0e7caf7b8ce1158102d77d470765c572e6773cd907e4884532350bd2f15da667b9a993 PathTools-3.75.tar.gz
+"
diff --git a/main/perl-php-serialization/APKBUILD b/main/perl-php-serialization/APKBUILD
index 872f555b4b2..b08723aaf60 100644
--- a/main/perl-php-serialization/APKBUILD
+++ b/main/perl-php-serialization/APKBUILD
@@ -1,31 +1,34 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-php-serialization
-_realname=PHP-Serialization
+_pkgreal=PHP-Serialization
pkgver=0.34
-pkgrel=3
+pkgrel=6
pkgdesc="Simple flexible means of converting the output of PHP's serialize() into the equivalent Perl memory structure, and vice versa."
-url="http://search.cpan.org/~bobtfish/PHP-Serialization-$pkgver"
+url="https://metacpan.org/dist/PHP-Serialization"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-install=
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/B/BO/BOBTFISH/$_realname-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/B/BO/BOBTFISH/PHP-Serialization-$pkgver.tar.gz"
-_builddir="$srcdir/$_realname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- cd $_builddir
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make && make test || return 1
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ make test
}
package() {
- cd $_builddir
make DESTDIR="$pkgdir" install
# creates file collision among perl modules
find "$pkgdir" -name perllocal.pod -delete
}
-sha512sums="72218973f21ab71419751cf818e6bd998235aa74bf8ae60ec4a6080ba169d0d7fcefde4f433ce3f6f30ed3084a651deb8aa3a5dd818fc6ebf3fb6188def4efe7 PHP-Serialization-0.34.tar.gz"
+sha512sums="
+72218973f21ab71419751cf818e6bd998235aa74bf8ae60ec4a6080ba169d0d7fcefde4f433ce3f6f30ed3084a651deb8aa3a5dd818fc6ebf3fb6188def4efe7 PHP-Serialization-0.34.tar.gz
+"
diff --git a/main/perl-pod-coverage/APKBUILD b/main/perl-pod-coverage/APKBUILD
index b5fc8644ef9..1cce09d8c9b 100644
--- a/main/perl-pod-coverage/APKBUILD
+++ b/main/perl-pod-coverage/APKBUILD
@@ -1,20 +1,23 @@
# Contributor: Mika Havela <mika.havela@gmail.com>
# Maintainer: Mika Havela <mika.havela@gmail.com>
pkgname=perl-pod-coverage
-_realname=Pod-Coverage
+_pkgreal=Pod-Coverage
pkgver=0.23
-pkgrel=2
+pkgrel=6
pkgdesc="Perl - Checks if the documentation of a module is comprehensive"
-url="http://search.cpan.org/~rclamp/$_realname-$pkgver"
+url="https://metacpan.org/dist/Pod-Coverage"
arch="noarch"
-license="Artistic-1.0-Perl or GPL-1.0-or-later"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl perl-devel-symdump perl-test-pod perl-pod-parser"
-source="https://cpan.metacpan.org/authors/id/R/RC/RCLAMP/$_realname-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
+source="https://cpan.metacpan.org/authors/id/R/RC/RCLAMP/Pod-Coverage-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
make
+}
+
+check() {
make test
}
@@ -24,4 +27,6 @@ package() {
find "$pkgdir" -name perllocal.pod -delete
}
-sha512sums="64760bcaf37b22a1308b665bcccb9273e3f7d12c9a96e4a2c4a0fddd4b528e2b476dcfeb654dc52ef3f40f64f2e7a1e860647f139dc53909c7696f406b7a312e Pod-Coverage-0.23.tar.gz"
+sha512sums="
+64760bcaf37b22a1308b665bcccb9273e3f7d12c9a96e4a2c4a0fddd4b528e2b476dcfeb654dc52ef3f40f64f2e7a1e860647f139dc53909c7696f406b7a312e Pod-Coverage-0.23.tar.gz
+"
diff --git a/main/perl-pod-parser/APKBUILD b/main/perl-pod-parser/APKBUILD
index 846341012ae..a1306349549 100644
--- a/main/perl-pod-parser/APKBUILD
+++ b/main/perl-pod-parser/APKBUILD
@@ -1,10 +1,10 @@
# Automatically generated by apkbuild-cpan, template 3
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=perl-pod-parser
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Pod-Parser
-pkgver=1.65
+pkgver=1.67
pkgrel=0
pkgdesc="Modules for parsing/translating POD format documents"
url="https://metacpan.org/release/Pod-Parser/"
@@ -32,5 +32,5 @@ package() {
}
sha512sums="
-0449ff9fcf8cbb5724d48d27da332a8c281c4412d0aa28464852f1557825070a729df2c620276f141effaeea742a840c8fc391261d8c8165a615cd539bbcce36 Pod-Parser-1.65.tar.gz
+62cfbb9da1f4ccb224fb3e3d3f952f6c1579728ad7dcd7f2ef0b0393dabe8caa06cd5e259a875b58066fe0a519b3db1d26a40ae5aa23d1eff06e20547cac1e33 Pod-Parser-1.67.tar.gz
"
diff --git a/main/perl-posix-strftime-compiler/APKBUILD b/main/perl-posix-strftime-compiler/APKBUILD
index c549e9fd525..456155b5c16 100644
--- a/main/perl-posix-strftime-compiler/APKBUILD
+++ b/main/perl-posix-strftime-compiler/APKBUILD
@@ -4,17 +4,18 @@
pkgname=perl-posix-strftime-compiler
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=POSIX-strftime-Compiler
-pkgver=0.44
+pkgver=0.46
pkgrel=0
pkgdesc="GNU C library compatible strftime for loggers and servers"
url="https://metacpan.org/release/POSIX-strftime-Compiler/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl tzdata"
-makedepends="perl-module-build perl-module-build-tiny"
+makedepends="perl-module-build-tiny"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/K/KA/KAZEBURO/POSIX-strftime-Compiler-$pkgver.tar.gz
- change-timezone-name.patch"
+ change-timezone-name.patch
+ "
builddir="$srcdir/$_pkgreal-$pkgver"
build() {
@@ -32,5 +33,7 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="34852966a46f55a65e4ee90af3aec6478456d3a7fc8f8b8e8fc4e704a8361f46abfad5fe0f356eb3432fb2e232e65004818b19f298293cc0172d576cfe34c3e1 POSIX-strftime-Compiler-0.44.tar.gz
-372ca8d3b8dfe35cbb6f67023341e59d6bca558d6a8bf8f02e79fb1f44c8d42a7c798b82e3e8732ebe7a46588912f6a533018bd4256419cd32a1257f11f5b467 change-timezone-name.patch"
+sha512sums="
+cee80a7b2f6b79dbb706898b713a4bb05bc57ecb3ef6c1644bce3682cc35d584c528aced6cd71b926e2fe549c95644ad59ecf780ba064adbb3bc9c54c8d4c459 POSIX-strftime-Compiler-0.46.tar.gz
+372ca8d3b8dfe35cbb6f67023341e59d6bca558d6a8bf8f02e79fb1f44c8d42a7c798b82e3e8732ebe7a46588912f6a533018bd4256419cd32a1257f11f5b467 change-timezone-name.patch
+"
diff --git a/main/perl-probe-perl/APKBUILD b/main/perl-probe-perl/APKBUILD
index d93d6db7d11..725cbd3179a 100644
--- a/main/perl-probe-perl/APKBUILD
+++ b/main/perl-probe-perl/APKBUILD
@@ -1,35 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-probe-perl
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Probe-Perl
pkgver=0.03
-pkgrel=2
+pkgrel=4
pkgdesc="Information about the currently running perl"
url="https://metacpan.org/release/Probe-Perl/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/K/KW/KWILLIAMS/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/K/KW/KWILLIAMS/Probe-Perl-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- perl Makefile.PL INSTALLDIRS=vendor || return 1
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make install DESTDIR="$pkgdir" || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="739bdb9d1a74eb77ab885a5aca861a1915cadbb1002bb4cb0d21fc6940ae6b3aa64ee52951ac8b2dca41c9e8fe188e17ae5f3c848c4a1caaf66fec5d25bef49c Probe-Perl-0.03.tar.gz"
+sha512sums="
+739bdb9d1a74eb77ab885a5aca861a1915cadbb1002bb4cb0d21fc6940ae6b3aa64ee52951ac8b2dca41c9e8fe188e17ae5f3c848c4a1caaf66fec5d25bef49c Probe-Perl-0.03.tar.gz
+"
diff --git a/main/perl-proc-wait3/APKBUILD b/main/perl-proc-wait3/APKBUILD
index 38eda84905b..d28c7edd90c 100644
--- a/main/perl-proc-wait3/APKBUILD
+++ b/main/perl-proc-wait3/APKBUILD
@@ -1,37 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-proc-wait3
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Proc-Wait3
pkgver=0.05
-pkgrel=7
+pkgrel=10
pkgdesc="Perl extension for wait3 system call"
url="https://metacpan.org/release/Proc-Wait3/"
arch="all"
-license="GPL PerlArtistic"
-cpandepends=""
-cpanmakedepends=""
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/C/CT/CTILMES/$_pkgreal-$pkgver.tar.gz"
-
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
+source="https://cpan.metacpan.org/authors/id/C/CT/CTILMES/Proc-Wait3-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- cd "$_builddir"
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="6af398422cc79fb02f544226b22dcbd3b3b25ae186da4e5e2d9f3d172fa0c59c7813d404397a8f47f426bde04d7936d939241d197085277b5e57981ac7be274d Proc-Wait3-0.05.tar.gz"
+sha512sums="
+6af398422cc79fb02f544226b22dcbd3b3b25ae186da4e5e2d9f3d172fa0c59c7813d404397a8f47f426bde04d7936d939241d197085277b5e57981ac7be274d Proc-Wait3-0.05.tar.gz
+"
diff --git a/main/perl-protocol-websocket/APKBUILD b/main/perl-protocol-websocket/APKBUILD
index 474dc923819..9d7d6db7cfe 100644
--- a/main/perl-protocol-websocket/APKBUILD
+++ b/main/perl-protocol-websocket/APKBUILD
@@ -3,7 +3,7 @@
pkgname=perl-protocol-websocket
_pkgreal=Protocol-WebSocket
pkgver=0.26
-pkgrel=1
+pkgrel=2
pkgdesc="WebSocket protocol"
url="https://metacpan.org/release/Protocol-WebSocket"
arch="noarch"
@@ -31,4 +31,6 @@ package() {
./Build install --destdir="$pkgdir"
}
-sha512sums="82384cdbeafc7b37fd4a97471c414e6653d311d1f4cc21de5ea4bbc3e06589df8e0a909e781470e8a84d3d74f6907a851f222338cea3f1f1aa6eb4a276149357 Protocol-WebSocket-0.26.tar.gz"
+sha512sums="
+82384cdbeafc7b37fd4a97471c414e6653d311d1f4cc21de5ea4bbc3e06589df8e0a909e781470e8a84d3d74f6907a851f222338cea3f1f1aa6eb4a276149357 Protocol-WebSocket-0.26.tar.gz
+"
diff --git a/main/perl-regexp-common/APKBUILD b/main/perl-regexp-common/APKBUILD
index 6be05feae85..8cfa1b76ec3 100644
--- a/main/perl-regexp-common/APKBUILD
+++ b/main/perl-regexp-common/APKBUILD
@@ -1,32 +1,31 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-regexp-common
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Regexp-Common
pkgver=2017060201
-pkgrel=2
+pkgrel=4
pkgdesc="Provide commonly requested regular expressions"
url="https://metacpan.org/release/Regexp-Common/"
arch="noarch"
-license="MIT"
+license="MIT OR Artistic-2.0"
depends="perl"
+makedepends="perl-dev"
+checkdepends="perl-test-regexp"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/A/AB/ABIGAIL/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/A/AB/ABIGAIL/Regexp-Common-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- default_prepare
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
+options="!check" # take forever
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -35,4 +34,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="fd046d775214bdca42f868557559595360b069121a75fc119f45e064091000968d9d84154f8a0f06072ecff169dccecf68be58f99a7196932fcb4ffcbd678608 Regexp-Common-2017060201.tar.gz"
+sha512sums="
+fd046d775214bdca42f868557559595360b069121a75fc119f45e064091000968d9d84154f8a0f06072ecff169dccecf68be58f99a7196932fcb4ffcbd678608 Regexp-Common-2017060201.tar.gz
+"
diff --git a/main/perl-regexp-ipv6/APKBUILD b/main/perl-regexp-ipv6/APKBUILD
index 4d8f6a089f3..0c1124c3fac 100644
--- a/main/perl-regexp-ipv6/APKBUILD
+++ b/main/perl-regexp-ipv6/APKBUILD
@@ -2,36 +2,31 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-regexp-ipv6
pkgver=0.03
-pkgrel=2
+pkgrel=5
pkgdesc="Regexp::IPv6 perl module"
url="https://metacpan.org/release/Regexp-IPv6/"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/S/SA/SALVA/Regexp-IPv6-$pkgver.tar.gz"
-_builddir="$srcdir"/Regexp-IPv6-$pkgver
-prepare() {
- local i
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
-}
+builddir="$srcdir"/Regexp-IPv6-$pkgver
build() {
- cd "$_builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make && make test || return 1
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="e4d226d3f925f01e03bf610dfd397babdb7ef823b4df6189aaf87a84e75c242e32073dd90a96719f8ce8969af42806c59b24e600534c330a983e1e301574d29f Regexp-IPv6-0.03.tar.gz"
+sha512sums="
+e4d226d3f925f01e03bf610dfd397babdb7ef823b4df6189aaf87a84e75c242e32073dd90a96719f8ce8969af42806c59b24e600534c330a983e1e301574d29f Regexp-IPv6-0.03.tar.gz
+"
diff --git a/main/perl-role-basic/APKBUILD b/main/perl-role-basic/APKBUILD
index f19e819d7a6..d49a5941373 100644
--- a/main/perl-role-basic/APKBUILD
+++ b/main/perl-role-basic/APKBUILD
@@ -1,37 +1,36 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-role-basic
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Role-Basic
pkgver=0.13
-pkgrel=2
+pkgrel=4
pkgdesc="Just roles. Nothing else."
url="https://metacpan.org/release/Role-Basic/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-module-build"
+makedepends="perl-dev perl-module-build"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/O/OV/OVID/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/O/OV/OVID/Role-Basic-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- perl Build.PL installdirs=vendor || return 1
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
+ ./Build
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- ./Build && ./Build test
+check() {
+ ./Build test
}
package() {
- cd "$_builddir"
- ./Build install destdir="$pkgdir" || return 1
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="685f758e1afc4441b3ac507d52e0d18b6f64081f74fa0a768c81c7c9fad7b7ec30497002cff22449a65ab78c27671a4fe7a7213c45d28cc4077bb855fcce1438 Role-Basic-0.13.tar.gz"
+sha512sums="
+685f758e1afc4441b3ac507d52e0d18b6f64081f74fa0a768c81c7c9fad7b7ec30497002cff22449a65ab78c27671a4fe7a7213c45d28cc4077bb855fcce1438 Role-Basic-0.13.tar.gz
+"
diff --git a/main/perl-role-tiny/APKBUILD b/main/perl-role-tiny/APKBUILD
index c807bd9d419..b891b7faaf1 100644
--- a/main/perl-role-tiny/APKBUILD
+++ b/main/perl-role-tiny/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-role-tiny
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Role-Tiny
pkgver=2.002004
-pkgrel=1
+pkgrel=2
pkgdesc="Roles: a nouvelle cuisine portion size slice of Moose"
url="https://metacpan.org/release/Role-Tiny/"
arch="noarch"
@@ -29,5 +29,4 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-
sha512sums="f66a799a0cd4e989adc173f6d913967df7aa6b9ffda934c2a80c0a91dcfe4edce606bd27cf1b4d857d52d0aa770224315ae4e915e4e735c6a9483a6cf5ce02f1 Role-Tiny-2.002004.tar.gz"
diff --git a/main/perl-scalar-list-utils/APKBUILD b/main/perl-scalar-list-utils/APKBUILD
deleted file mode 100644
index 844602ba2c1..00000000000
--- a/main/perl-scalar-list-utils/APKBUILD
+++ /dev/null
@@ -1,44 +0,0 @@
-# Automatically generated by apkbuild-cpan, template 1
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=perl-scalar-list-utils
-_pkgreal=Scalar-List-Utils
-pkgver=1.62
-pkgrel=1
-pkgdesc="Common Scalar and List utility subroutines"
-url="https://metacpan.org/release/Scalar-List-Utils"
-arch="all"
-license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-makedepends="perl-dev"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Scalar-List-Utils-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- default_prepare
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
-build() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make
-}
-
-check() {
- make test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-doc() {
- default_doc
- replaces="perl-doc"
-}
-
-sha512sums="
-3f641ab51a229356e3b23e576f2da96ff59bf54484a14caa78c89111ff060998c7c6f780d608f3ee90d4538b45a78e1327427b9ef92aa34cf1cf59dd8a3d084e Scalar-List-Utils-1.62.tar.gz
-"
diff --git a/main/perl-scope-guard/APKBUILD b/main/perl-scope-guard/APKBUILD
index 2811c295787..1422dac3013 100644
--- a/main/perl-scope-guard/APKBUILD
+++ b/main/perl-scope-guard/APKBUILD
@@ -2,36 +2,31 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-scope-guard
pkgver=0.21
-pkgrel=2
+pkgrel=5
pkgdesc="Scope::Guard perl module"
url="https://metacpan.org/release/Scope-Guard/"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/C/CH/CHOCOLATE/Scope-Guard-$pkgver.tar.gz"
-_builddir="$srcdir"/Scope-Guard-$pkgver
-prepare() {
- local i
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
-}
+builddir="$srcdir"/Scope-Guard-$pkgver
build() {
- cd "$_builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make && make test || return 1
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="65492e08ab79dc323649166e83ffc13c6f1fffaa9c60d581d8854dfe427a54a3c3c5e4d8b90308d4b1a31a1a54c7977b4e1d36fc9005c6e716c2361ce187fc9f Scope-Guard-0.21.tar.gz"
+sha512sums="
+65492e08ab79dc323649166e83ffc13c6f1fffaa9c60d581d8854dfe427a54a3c3c5e4d8b90308d4b1a31a1a54c7977b4e1d36fc9005c6e716c2361ce187fc9f Scope-Guard-0.21.tar.gz
+"
diff --git a/main/perl-scope-upper/APKBUILD b/main/perl-scope-upper/APKBUILD
index 407ceaede9c..b5e9309cfcd 100644
--- a/main/perl-scope-upper/APKBUILD
+++ b/main/perl-scope-upper/APKBUILD
@@ -1,10 +1,10 @@
-# Automatically generated by apkbuild-cpan, template 1
-# Contributor:
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-scope-upper
-_pkgname=Scope-Upper
-pkgver=0.33
-pkgrel=1
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Scope-Upper
+pkgver=0.34
+pkgrel=2
pkgdesc="Act on upper scopes."
url="https://metacpan.org/release/Scope-Upper/"
arch="all"
@@ -12,21 +12,18 @@ license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/V/VP/VPIT/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+source="https://cpan.metacpan.org/authors/id/V/VP/VPIT/Scope-Upper-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
check() {
- make test
-}
-
-build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make
+ make test
}
package() {
@@ -35,5 +32,5 @@ package() {
}
sha512sums="
-ecc7abbcac6ce014632c0b289d97f0a7b15357720765207a8c91dd595ca9cb4082fc69642ef0524a3ea3e569528070bb7e97bd4196872cf74fe440469e76ec58 Scope-Upper-0.33.tar.gz
+f24e169c8c03e146af1a05aa967aeb8d7ffc8aa8401ea72dd89d6e16f5f49f73e62f316a9bfbbf18f40be059ecd087fd23d82606c4e9d64fa001118f2f61d31f Scope-Upper-0.34.tar.gz
"
diff --git a/main/perl-server-starter/APKBUILD b/main/perl-server-starter/APKBUILD
index 9eb705ca69f..934245a7278 100644
--- a/main/perl-server-starter/APKBUILD
+++ b/main/perl-server-starter/APKBUILD
@@ -1,24 +1,25 @@
-# Automatically generated by apkbuild-cpan, template 2
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-server-starter
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Server-Starter
pkgver=0.35
-pkgrel=1
+pkgrel=4
pkgdesc="a superdaemon for hot-deploying server programs"
url="https://metacpan.org/release/Server-Starter/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-module-build>=0.4229"
-checkdepends="perl-test-tcp>=2.22 perl-test-sharedfork>=0.35 perl-test-requires>=0.10"
+makedepends="perl-dev perl-module-build"
+checkdepends="perl-test-tcp perl-test-requires perl-test-sharedfork"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/K/KA/KAZUHO/Server-Starter-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- perl Build.PL installdirs=vendor
+ perl Build.PL --installdirs=vendor
./Build
}
@@ -27,8 +28,10 @@ check() {
}
package() {
- ./Build install destdir="$pkgdir"
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="d9ba5be08424b1b37ebaa765fbb6318353214cb8d8381227eae2b6445bbd21d853888a72fbcef2ba99dd6ba97bed6217af9e8f44b371bc15ec5d9c97b00c17d2 Server-Starter-0.35.tar.gz"
+sha512sums="
+d9ba5be08424b1b37ebaa765fbb6318353214cb8d8381227eae2b6445bbd21d853888a72fbcef2ba99dd6ba97bed6217af9e8f44b371bc15ec5d9c97b00c17d2 Server-Starter-0.35.tar.gz
+"
diff --git a/main/perl-set-intspan/APKBUILD b/main/perl-set-intspan/APKBUILD
index 17a9e868755..c0f88abd7e4 100644
--- a/main/perl-set-intspan/APKBUILD
+++ b/main/perl-set-intspan/APKBUILD
@@ -1,31 +1,28 @@
-# Automatically generated by apkbuild-cpan, template 1
-# Contributor:
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-set-intspan
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Set-IntSpan
pkgver=1.19
-pkgrel=3
+pkgrel=5
pkgdesc="Manages sets of integers, newsrc style"
-url="https://metacpan.org/release/Set-IntSpan"
+url="https://metacpan.org/release/Set-IntSpan/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/S/SW/SWMCD/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/S/SW/SWMCD/Set-IntSpan-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -34,4 +31,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="de743bc26e4e9daf0bff636279219776421a31d1b3fa5d8e9232e051f2396cbfdd339dacd4aadc006cf31527935550c8659d8c80cbaed5942895239ab36c9cd9 Set-IntSpan-1.19.tar.gz"
+sha512sums="
+de743bc26e4e9daf0bff636279219776421a31d1b3fa5d8e9232e051f2396cbfdd339dacd4aadc006cf31527935550c8659d8c80cbaed5942895239ab36c9cd9 Set-IntSpan-1.19.tar.gz
+"
diff --git a/main/perl-snmp-session/APKBUILD b/main/perl-snmp-session/APKBUILD
index db834626ba3..5379bdc8bd2 100644
--- a/main/perl-snmp-session/APKBUILD
+++ b/main/perl-snmp-session/APKBUILD
@@ -1,17 +1,16 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-snmp-session
-_name=SNMP_Session
-pkgver=1.13
-pkgrel=4
+pkgver=1.16
+pkgrel=2
pkgdesc="A SNMP Perl Module"
url="https://github.com/sleinen/snmp-session"
arch="noarch"
-license="PerlArtistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
+options="!check" # no testsuite
depends="perl"
-# note this project has moved to: https://github.com/sleinen/snmp-session/
-# but the new location has no release tags, so fall back to archives for now
-source="https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/snmp-session/$_name-$pkgver.tar.gz"
-builddir="$srcdir/$_name-$pkgver"
+subpackages="$pkgname-doc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/sleinen/snmp-session/archive/refs/tags/v$pkgver.tar.gz"
+builddir="$srcdir/snmp-session-$pkgver"
build() {
perl Makefile.PL INSTALLDIRS=vendor
@@ -24,4 +23,6 @@ package() {
find "$pkgdir" -name .packlist -delete
}
-sha512sums="5185739cfe1c37f7087136b23f3fb1eb5daa9d1ab2036d8bbf36438b0a9ede354daca73567529c96297f2621842dfb4c7832101306cee1540ee950b4d0bfe6a8 SNMP_Session-1.13.tar.gz"
+sha512sums="
+fa0baa4423088198ea533d432118ab4760540416673ef72ae13ad9544f76ebccb42ae274337a392be33c74ed682e623d9f77ce43cadb9d2c9bf401b404583e4e perl-snmp-session-1.16.tar.gz
+"
diff --git a/main/perl-socket-getaddrinfo/APKBUILD b/main/perl-socket-getaddrinfo/APKBUILD
index 0ea2d9e5746..27fee342e6a 100644
--- a/main/perl-socket-getaddrinfo/APKBUILD
+++ b/main/perl-socket-getaddrinfo/APKBUILD
@@ -3,7 +3,7 @@
pkgname=perl-socket-getaddrinfo
_pkgreal=Socket-GetAddrInfo
pkgver=0.22
-pkgrel=3
+pkgrel=5
pkgdesc="Perl interface for get{addr,name}info(3)"
url="https://metacpan.org/release/Socket-GetAddrInfo/"
arch="noarch"
diff --git a/main/perl-socket/APKBUILD b/main/perl-socket/APKBUILD
index 56255f312c4..82d77da94c9 100644
--- a/main/perl-socket/APKBUILD
+++ b/main/perl-socket/APKBUILD
@@ -1,43 +1,40 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 4
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-socket
-_pkgreal=Socket
-pkgver=2.034
+pkgver=2.038
pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Socket
pkgdesc="networking constants and support functions"
url="https://metacpan.org/release/Socket/"
arch="all"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
makedepends="perl-dev"
-subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Socket-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-doc() {
- default_doc
- replaces="perl-doc"
+ # man pages are already provided by perl-doc
+ rm -rf "$pkgdir"/usr/share/man
}
sha512sums="
-aa89ca0fbafc53e7f6bbedd47ce1b7502677aadd53da7a73ab0d4ca8bd04a6357a7d540600cb847283edb631d5beb7195cb0ed091392d1d1fd476003488cc2d5 Socket-2.034.tar.gz
+68e2ed41e7c30cb3bc90c3fb3d2c4894fa6517f5828dec8f3700dd382b5539f581408324ed957b3708e1cec48c54d48f5b69b5089e04bb329699461859106cd5 Socket-2.038.tar.gz
"
diff --git a/main/perl-socket6/APKBUILD b/main/perl-socket6/APKBUILD
index 14c83d20a54..cae491f41c2 100644
--- a/main/perl-socket6/APKBUILD
+++ b/main/perl-socket6/APKBUILD
@@ -1,29 +1,29 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Sheila Aman <sheila@vulpine.house>
# Maintainer: Sheila Aman <sheila@vulpine.house>
pkgname=perl-socket6
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Socket6
pkgver=0.29
-pkgrel=6
-pkgdesc="perl module for IPV6 operations"
+pkgrel=9
+pkgdesc="Perl module for Socket6"
url="https://metacpan.org/release/Socket6/"
arch="all"
-license="BSD-3-Clause"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/U/UM/UMEMOTO/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/U/UM/UMEMOTO/Socket6-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -32,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="51d05a04563519010f515a50fb1082c4e72eb4537137ad55f117458c71ec8429a5674083bd68adcbbf2e57632a1cb1bf60693ea98364e7f96c826ff8c9655b33 Socket6-0.29.tar.gz"
+sha512sums="
+51d05a04563519010f515a50fb1082c4e72eb4537137ad55f117458c71ec8429a5674083bd68adcbbf2e57632a1cb1bf60693ea98364e7f96c826ff8c9655b33 Socket6-0.29.tar.gz
+"
diff --git a/main/perl-specio/APKBUILD b/main/perl-specio/APKBUILD
index 3abaed87593..1450df57905 100644
--- a/main/perl-specio/APKBUILD
+++ b/main/perl-specio/APKBUILD
@@ -2,7 +2,7 @@
pkgname=perl-specio
_pkgreal=Specio
pkgver=0.48
-pkgrel=0
+pkgrel=1
pkgdesc="Type constraints and coercions for Perl"
url="https://metacpan.org/release/Specio"
arch="noarch"
diff --git a/main/perl-stream-buffered/APKBUILD b/main/perl-stream-buffered/APKBUILD
index ce61c5760e0..b0aa9354844 100644
--- a/main/perl-stream-buffered/APKBUILD
+++ b/main/perl-stream-buffered/APKBUILD
@@ -1,32 +1,28 @@
-# Automatically generated by apkbuild-cpan, template 1
-# Contributor:
-# Maintainer:
+# Automatically generated by apkbuild-cpan, template 3
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=perl-stream-buffered
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Stream-Buffered
-pkgdesc="Temporary buffer to save bytes"
pkgver=0.03
-pkgrel=2
+pkgrel=5
+pkgdesc="temporary buffer to save bytes"
url="https://metacpan.org/release/Stream-Buffered/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-module-install"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DO/DOY/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/D/DO/DOY/Stream-Buffered-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -35,4 +31,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="cbc418846f61fd46163f85d2ce53c3d08ebc164a4e775b7e9fee4dc143daa3655983723099d1ded53f0054506c550038680d1f95e11d1399fef6ff6b38f9712e Stream-Buffered-0.03.tar.gz"
+sha512sums="
+cbc418846f61fd46163f85d2ce53c3d08ebc164a4e775b7e9fee4dc143daa3655983723099d1ded53f0054506c550038680d1f95e11d1399fef6ff6b38f9712e Stream-Buffered-0.03.tar.gz
+"
diff --git a/main/perl-string-shellquote/APKBUILD b/main/perl-string-shellquote/APKBUILD
index 5392a2303f7..3d9e08d8e4c 100644
--- a/main/perl-string-shellquote/APKBUILD
+++ b/main/perl-string-shellquote/APKBUILD
@@ -1,36 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-string-shellquote
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=String-ShellQuote
pkgver=1.04
-pkgrel=2
-pkgdesc="unknown"
+pkgrel=5
+pkgdesc="Perl module for String-ShellQuote"
url="https://metacpan.org/release/String-ShellQuote/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/R/RO/ROSCH/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/R/RO/ROSCH/String-ShellQuote-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="f5b472985fb9c15d5c82c03b5c6c90a3a545ada854b90a96cfb7b0f57b8a817707ed91ca0f20344a2b8d200fe365ea737a9b39b64d526310d41ac2466552236d String-ShellQuote-1.04.tar.gz"
+sha512sums="
+f5b472985fb9c15d5c82c03b5c6c90a3a545ada854b90a96cfb7b0f57b8a817707ed91ca0f20344a2b8d200fe365ea737a9b39b64d526310d41ac2466552236d String-ShellQuote-1.04.tar.gz
+"
diff --git a/main/perl-struct-dumb/APKBUILD b/main/perl-struct-dumb/APKBUILD
index e2017f9fb50..4095270390b 100644
--- a/main/perl-struct-dumb/APKBUILD
+++ b/main/perl-struct-dumb/APKBUILD
@@ -1,31 +1,25 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-struct-dumb
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Struct-Dumb
-pkgver=0.12
+pkgver=0.14
pkgrel=1
-pkgdesc="Make simple lightweight record-like structures"
+pkgdesc="make simple lightweight record-like structures"
url="https://metacpan.org/release/Struct-Dumb/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-module-build"
-checkdepends="perl-test-fatal"
+makedepends="perl-dev perl-module-build"
+checkdepends="perl-test2-suite"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Struct-Dumb-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
-
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- perl Build.PL installdirs=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
./Build
}
@@ -34,8 +28,10 @@ check() {
}
package() {
- ./Build install destdir="$pkgdir"
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="52b8e2e7b0f073d1e24c941529989f1bd94d29e8c84abfc811baf3955bba5951b235128953260a149e9e52ee31c0759498cc9c3a283e350e618e8b004e50a132 Struct-Dumb-0.12.tar.gz"
+sha512sums="
+d59e9e63b21ef0afbfc36398a8eeabc3d2bfd7fb94da2d39dd0af8251cca88bc5c1cf476329a35a23012afdfbba3ee40ffa1a6ee53d435405bd81af5e3bfd90d Struct-Dumb-0.14.tar.gz
+"
diff --git a/main/perl-sub-exporter-progressive/APKBUILD b/main/perl-sub-exporter-progressive/APKBUILD
index 1f305627aba..82a184ea6fb 100644
--- a/main/perl-sub-exporter-progressive/APKBUILD
+++ b/main/perl-sub-exporter-progressive/APKBUILD
@@ -1,37 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-sub-exporter-progressive
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Sub-Exporter-Progressive
pkgver=0.001013
-pkgrel=2
+pkgrel=4
pkgdesc="Only use Sub::Exporter if you need it"
url="https://metacpan.org/release/Sub-Exporter-Progressive/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-sub-exporter"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/F/FR/FREW/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/F/FR/FREW/Sub-Exporter-Progressive-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="28d0ac6a380a4fc1515bd69320bcfd073c0c0e92ea34bb924972aa46fb2f6912485d686f0eca5d5b885d8b06927250dfaacd1a7ff86ba029f879a183cba546c4 Sub-Exporter-Progressive-0.001013.tar.gz"
+sha512sums="
+28d0ac6a380a4fc1515bd69320bcfd073c0c0e92ea34bb924972aa46fb2f6912485d686f0eca5d5b885d8b06927250dfaacd1a7ff86ba029f879a183cba546c4 Sub-Exporter-Progressive-0.001013.tar.gz
+"
diff --git a/main/perl-sub-exporter/APKBUILD b/main/perl-sub-exporter/APKBUILD
index 88186455f14..8d3b0aa10a5 100644
--- a/main/perl-sub-exporter/APKBUILD
+++ b/main/perl-sub-exporter/APKBUILD
@@ -3,7 +3,7 @@
pkgname=perl-sub-exporter
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Sub-Exporter
-pkgver=0.988
+pkgver=0.991
pkgrel=0
pkgdesc="a sophisticated exporter for custom-built routines"
url="https://metacpan.org/release/Sub-Exporter/"
@@ -31,5 +31,5 @@ package() {
}
sha512sums="
-e992739097eca3aab0465e33ca60d91e4b08ee40d7cd041be4452873790e438bb1fb293331f919ae1e9b879fc063d17586218a9e97838cf61216172d6bdba273 Sub-Exporter-0.988.tar.gz
+7829bbca1eb332156ba33dd0cbde7f57c178ad56cc03e76c1b7d5327c94ce15bb5172894eeef011e12e472071a7d7a07f514a1121535d96ae05ed0ef6734b329 Sub-Exporter-0.991.tar.gz
"
diff --git a/main/perl-sub-identify/APKBUILD b/main/perl-sub-identify/APKBUILD
index 60c90bf7361..f44e702ac9a 100644
--- a/main/perl-sub-identify/APKBUILD
+++ b/main/perl-sub-identify/APKBUILD
@@ -1,10 +1,11 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-sub-identify
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Sub-Identify
pkgver=0.14
-pkgrel=7
+pkgrel=10
pkgdesc="Retrieve names of code references"
url="https://metacpan.org/release/Sub-Identify/"
arch="all"
@@ -12,21 +13,18 @@ license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/R/RG/RGARCIA/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/R/RG/RGARCIA/Sub-Identify-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-check() {
- make test
-}
-prepare() {
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
+check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make
+ make test
}
package() {
@@ -34,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="f69f542c84c5c3ca1f1c7f5f58fd2cf19279a65229f43117c31f24ab0e49d5f329bef2bc00f22252fd2e52b4e17f16b279dac438920668e046e59f2e22e52c14 Sub-Identify-0.14.tar.gz"
+sha512sums="
+f69f542c84c5c3ca1f1c7f5f58fd2cf19279a65229f43117c31f24ab0e49d5f329bef2bc00f22252fd2e52b4e17f16b279dac438920668e046e59f2e22e52c14 Sub-Identify-0.14.tar.gz
+"
diff --git a/main/perl-sub-info/APKBUILD b/main/perl-sub-info/APKBUILD
index 127317db53b..a964725f0d7 100644
--- a/main/perl-sub-info/APKBUILD
+++ b/main/perl-sub-info/APKBUILD
@@ -1,38 +1,36 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor:
-# Maintainer:
+# Automatically generated by apkbuild-cpan, template 3
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=perl-sub-info
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Sub-Info
pkgver=0.002
-pkgrel=2
+pkgrel=5
pkgdesc="Tool for inspecting subroutines."
url="https://metacpan.org/release/Sub-Info/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl perl-importer perl-test-simple"
+depends="perl perl-importer"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/E/EX/EXODIST/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/E/EX/EXODIST/Sub-Info-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare || return 1
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
-package() {
- make DESTDIR="$pkgdir" install || return 1
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
-sha512sums="e3ad2c8b270a44f9de2d5b71845a4a21f363a234edf2ddb9942c2fb2e4d765eedff3653a047f025b9d1dfaeff32ddd58aeff7f81fa42e6f4b57f5ca6311519b3 Sub-Info-0.002.tar.gz"
+package() {
+ make DESTDIR="$pkgdir" install
+ find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
+}
+
+sha512sums="
+e3ad2c8b270a44f9de2d5b71845a4a21f363a234edf2ddb9942c2fb2e4d765eedff3653a047f025b9d1dfaeff32ddd58aeff7f81fa42e6f4b57f5ca6311519b3 Sub-Info-0.002.tar.gz
+"
diff --git a/main/perl-sub-install/APKBUILD b/main/perl-sub-install/APKBUILD
index 22b00d0fdf9..be5f8d08412 100644
--- a/main/perl-sub-install/APKBUILD
+++ b/main/perl-sub-install/APKBUILD
@@ -1,37 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-sub-install
-pkgver=0.928
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Sub-Install
+pkgver=0.929
pkgrel=2
-pkgdesc="Sub::Install perl module"
+pkgdesc="install subroutines into packages easily"
url="https://metacpan.org/release/Sub-Install/"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/Sub-Install-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir"/Sub-Install-$pkgver
-prepare() {
- local i
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make && make test || return 1
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="3f25df9f5992075968830d4235e9f6520c526331b9180391e41483241d43253a61ad8dc381d77aaeb6c6fb841cfc5c097598e62abb46208894275c393a133ade Sub-Install-0.928.tar.gz"
+sha512sums="
+f51992531607af97ff6b8700bf23a2918261d05f24886781f36e2676c130df5d109a42ad3d6f8d089a6ee2c050af27ec5fc2ef9610ee993eca6549866a4fe8d7 Sub-Install-0.929.tar.gz
+"
diff --git a/main/perl-sub-name/APKBUILD b/main/perl-sub-name/APKBUILD
index 58b321114d3..b10f22e6778 100644
--- a/main/perl-sub-name/APKBUILD
+++ b/main/perl-sub-name/APKBUILD
@@ -1,39 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-sub-name
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Sub-Name
-pkgver=0.26
-pkgrel=4
-pkgdesc="(re)name a sub"
+pkgver=0.27
+pkgrel=1
+pkgdesc="(Re)name a sub"
url="https://metacpan.org/release/Sub-Name/"
arch="all"
-license="GPL PerlArtistic"
-cpandepends=""
-cpanmakedepends=" perl-devel-checkbin "
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/Sub-Name-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
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/main/perl-sub-quote/APKBUILD b/main/perl-sub-quote/APKBUILD
index c0868105b57..3282990f717 100644
--- a/main/perl-sub-quote/APKBUILD
+++ b/main/perl-sub-quote/APKBUILD
@@ -1,29 +1,31 @@
-# Automatically generated by apkbuild-cpan, template 2
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-sub-quote
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Sub-Quote
-pkgver=2.006006
+pkgver=2.006008
pkgrel=1
pkgdesc="Efficient generation of subroutines via string eval"
-url="https://metacpan.org/release/Sub-Quote"
+url="https://metacpan.org/release/Sub-Quote/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
checkdepends="perl-test-fatal"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/H/HA/HAARG/Sub-Quote-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
+check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make
+ make test
}
package() {
@@ -31,9 +33,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="19cd0504f039f3218d3f47b3b44714f0baed73a13f97c4552eb1816b7b03186b1bbdf48cc70c2cae616eb9ec81721b30217c7f788176d389df694c9b355ead64 Sub-Quote-2.006006.tar.gz"
+sha512sums="
+474c02953555e815c64270299a2ea36a172c11ff739d77a3f5133f4c40d5ec48ad60c09465bd93864c254f180ba73d8381752ac649f8d4f729199f3088e71e26 Sub-Quote-2.006008.tar.gz
+"
diff --git a/main/perl-sub-uplevel/APKBUILD b/main/perl-sub-uplevel/APKBUILD
index afb4258183a..a73a7e10af7 100644
--- a/main/perl-sub-uplevel/APKBUILD
+++ b/main/perl-sub-uplevel/APKBUILD
@@ -1,35 +1,34 @@
# Contributor: Mika Havela <mika.havela@gmail.com>
# Maintainer: Mika Havela <mika.havela@gmail.com>
pkgname=perl-sub-uplevel
-_realname=Sub-Uplevel
+_pkgreal=Sub-Uplevel
pkgver=0.2800
-pkgrel=2
+pkgrel=5
pkgdesc="Perl - Apparently run a function in a higher stack frame"
-url="http://search.cpan.org/~dagolden/$_realname-$pkgver/"
+url="https://metacpan.org/dist/Sub-Uplevel"
arch="noarch"
-license="Artistic GPL"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
-#subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/$_realname-$pkgver.tar.gz"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Sub-Uplevel-$pkgver.tar.gz"
-_builddir="$srcdir/$_realname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- cd "$_builddir"
+build() {
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make || return 1
- make test || return 1
+check() {
+ make test
}
package() {
- cd "$_builddir"
make DESTDIR="$pkgdir" install
# creates file collision among perl modules
find "$pkgdir" -name perllocal.pod -delete
}
-sha512sums="655bab9441bc81e4002db2e715b5c1f771ee35a03bc643a44d4a279aca55431fe17e64332919311a51db2dc02c16b5f97c5751595e61ad0ab96cd0a10ac2d230 Sub-Uplevel-0.2800.tar.gz"
+sha512sums="
+655bab9441bc81e4002db2e715b5c1f771ee35a03bc643a44d4a279aca55431fe17e64332919311a51db2dc02c16b5f97c5751595e61ad0ab96cd0a10ac2d230 Sub-Uplevel-0.2800.tar.gz
+"
diff --git a/main/perl-super/APKBUILD b/main/perl-super/APKBUILD
index 95bb6ab809c..21b30732d59 100644
--- a/main/perl-super/APKBUILD
+++ b/main/perl-super/APKBUILD
@@ -1,8 +1,8 @@
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-super
-_pkgname=SUPER
+_pkgreal=SUPER
pkgver=1.20190531
-pkgrel=1
+pkgrel=2
pkgdesc="Control superclass method dispatch"
url="https://metacpan.org/pod/SUPER"
arch="noarch"
@@ -11,29 +11,25 @@ depends="perl"
makedepends="perl-dev perl-module-build perl-sub-identify"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/C/CH/CHROMATIC/SUPER-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
prepare() {
default_prepare
- cd "$builddir"
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
PERL_MM_USE_DEFAULT=1 perl Build.PL INSTALLDIRS=vendor
}
build() {
- cd "$builddir"
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
make
}
check() {
- cd "$builddir"
make test
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
diff --git a/main/perl-switch/APKBUILD b/main/perl-switch/APKBUILD
index 1b18d96aa72..872ecfc65e0 100644
--- a/main/perl-switch/APKBUILD
+++ b/main/perl-switch/APKBUILD
@@ -2,36 +2,31 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-switch
pkgver=2.17
-pkgrel=2
+pkgrel=5
pkgdesc="A switch statement for Perl"
url="https://metacpan.org/release/Switch/"
arch="noarch"
-license="Perl"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/C/CH/CHORNY/Switch-$pkgver.tar.gz"
-_builddir="$srcdir"/Switch-$pkgver
-prepare() {
- local i
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
-}
+builddir="$srcdir"/Switch-$pkgver
build() {
- cd "$_builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make || return 1
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
+}
+
+check() {
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="8faf3585c7b8a0552c7de7fad7b0ab89a8c3f3d55cb090d5656ae0925f8d328d9b466bd5bcbca76eaeaf56eceab11654137ba8a9bb03f79b91f00338ab2483ab Switch-2.17.tar.gz"
+sha512sums="
+8faf3585c7b8a0552c7de7fad7b0ab89a8c3f3d55cb090d5656ae0925f8d328d9b466bd5bcbca76eaeaf56eceab11654137ba8a9bb03f79b91f00338ab2483ab Switch-2.17.tar.gz
+"
diff --git a/main/perl-symbol-global-name/APKBUILD b/main/perl-symbol-global-name/APKBUILD
index c6ceae1cb5b..576bebd1e3b 100644
--- a/main/perl-symbol-global-name/APKBUILD
+++ b/main/perl-symbol-global-name/APKBUILD
@@ -1,33 +1,29 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-symbol-global-name
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Symbol-Global-Name
pkgver=0.05
-pkgrel=3
-pkgdesc="Finds name and type of a global variable"
+pkgrel=5
+pkgdesc="finds name and type of a global variable"
url="https://metacpan.org/release/Symbol-Global-Name/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-module-install"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/A/AL/ALEXMV/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/A/AL/ALEXMV/Symbol-Global-Name-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -36,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="23c14ac5d022f3d61af63d26bf3740eca4080a0bd72719e998b991dc93cf53b668615ef1718ac5e43e8bb227b050a381e75af4c83ddbe90840c7ab2255052c0b Symbol-Global-Name-0.05.tar.gz"
+sha512sums="
+23c14ac5d022f3d61af63d26bf3740eca4080a0bd72719e998b991dc93cf53b668615ef1718ac5e43e8bb227b050a381e75af4c83ddbe90840c7ab2255052c0b Symbol-Global-Name-0.05.tar.gz
+"
diff --git a/main/perl-syntax-keyword-try/APKBUILD b/main/perl-syntax-keyword-try/APKBUILD
new file mode 100644
index 00000000000..151b9148c01
--- /dev/null
+++ b/main/perl-syntax-keyword-try/APKBUILD
@@ -0,0 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: rubicon <rubicon@mailo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
+pkgname=perl-syntax-keyword-try
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Syntax-Keyword-Try
+pkgver=0.29
+pkgrel=2
+pkgdesc="C<try/catch/finally> syntax for perl"
+url="https://metacpan.org/release/Syntax-Keyword-Try/"
+arch="all"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl perl-xs-parse-keyword"
+makedepends="perl-dev perl-module-build"
+checkdepends="perl-test2-suite"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Syntax-Keyword-Try-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+ find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
+}
+
+sha512sums="
+269ea66916c39852262bc60b1661e90adf55489f1369a745a3c3ba24dd4335203a46d8bf8ddd39dcdefc4ae3314ce06b1fa7956d0a4bd23bba6fb809adaa1814 Syntax-Keyword-Try-0.29.tar.gz
+"
diff --git a/main/perl-sys-hostname-long/APKBUILD b/main/perl-sys-hostname-long/APKBUILD
index 740250f8a55..f04e31c05c6 100644
--- a/main/perl-sys-hostname-long/APKBUILD
+++ b/main/perl-sys-hostname-long/APKBUILD
@@ -1,20 +1,20 @@
# Contributor: Jeff Bilyk <jbilyk@gmail.com>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-sys-hostname-long
-_pkgname=Sys-Hostname-Long
+_pkgreal=Sys-Hostname-Long
pkgver=1.5
-pkgrel=4
+pkgrel=6
pkgdesc="Perl Module to get full hostname"
-url="http://search.cpan.org/~scott/"
+url="https://metacpan.org/dist/Sys-Hostname-Long"
arch="noarch"
license="Artistic-1.0-Perl GPL-1.0-or-later"
depends="perl"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/S/SC/SCOTT/$_pkgname-$pkgver.tar.gz
+source="https://cpan.metacpan.org/authors/id/S/SC/SCOTT/Sys-Hostname-Long-$pkgver.tar.gz
hostname-f.patch
"
options="net"
-builddir="$srcdir/$_pkgname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
prepare() {
default_prepare
@@ -37,5 +37,7 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="e34a5f17e65eb9c8d3aa213a6d930be4d0b6981dae3bf600e782b0e9863e6584061285a894f9f54daff7520bcadbb3e8cd6b1f9f973ad1c1b72c79e9f588133b Sys-Hostname-Long-1.5.tar.gz
-47ea5f1a35ac286f9f858fb42e8f4b59801cf99d8c61238238095abb8aee6ff706a8763e5d564dd4582bd7d80c3b966632833958cee1b007b71b5ca10b2f0c90 hostname-f.patch"
+sha512sums="
+e34a5f17e65eb9c8d3aa213a6d930be4d0b6981dae3bf600e782b0e9863e6584061285a894f9f54daff7520bcadbb3e8cd6b1f9f973ad1c1b72c79e9f588133b Sys-Hostname-Long-1.5.tar.gz
+47ea5f1a35ac286f9f858fb42e8f4b59801cf99d8c61238238095abb8aee6ff706a8763e5d564dd4582bd7d80c3b966632833958cee1b007b71b5ca10b2f0c90 hostname-f.patch
+"
diff --git a/main/perl-sys-mmap/APKBUILD b/main/perl-sys-mmap/APKBUILD
index 19dc3fb7ed8..29ef7c82439 100644
--- a/main/perl-sys-mmap/APKBUILD
+++ b/main/perl-sys-mmap/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-sys-mmap
-_realname=Sys-Mmap
+_pkgreal=Sys-Mmap
pkgver=0.20
-pkgrel=3
+pkgrel=5
pkgdesc="Uses mmap to map in a file as a Perl variable"
url="https://metacpan.org/pod/Sys::Mmap"
arch="all"
@@ -12,7 +12,7 @@ depends="perl"
makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/T/TO/TODDR/Sys-Mmap-$pkgver.tar.gz"
-builddir="$srcdir/Sys-Mmap-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
diff --git a/main/perl-term-readkey/APKBUILD b/main/perl-term-readkey/APKBUILD
index 1130678c7f4..11e60a5257b 100644
--- a/main/perl-term-readkey/APKBUILD
+++ b/main/perl-term-readkey/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-term-readkey
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=TermReadKey
pkgver=2.38
-pkgrel=7
+pkgrel=9
pkgdesc="Change terminal modes, and perform non-blocking reads"
url="https://metacpan.org/release/TermReadKey/"
arch="all"
diff --git a/main/perl-term-table/APKBUILD b/main/perl-term-table/APKBUILD
index 652615458c9..bce89e94b2d 100644
--- a/main/perl-term-table/APKBUILD
+++ b/main/perl-term-table/APKBUILD
@@ -1,30 +1,28 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor:
-# Maintainer:
+# Automatically generated by apkbuild-cpan, template 3
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=perl-term-table
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Term-Table
-pkgver=0.016
+pkgver=0.018
pkgrel=0
pkgdesc="Format a header and rows into a table"
-url="https://metacpan.org/release/Term-Table"
+url="https://metacpan.org/release/Term-Table/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl perl-importer"
-makedepends="perl-test-simple"
+depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/E/EX/EXODIST/Term-Table-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
-
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
+check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make
+ make test
}
package() {
@@ -32,11 +30,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
sha512sums="
-b35700fba336f57e479d818ef74fc746979b3acb081a7cde816b39c5fb65bedd5217257426ba22bdcaf8d73292cd98efd23295144a996f7bd117ada775cdfe5b Term-Table-0.016.tar.gz
+99670976b884482697d667cf5db3cc3ff60e511270eab7e0df0cd922cfcc38297d143f03579df153a62db201db8d9e81e5f8bdaa94015d0b9ee9a5c033470621 Term-Table-0.018.tar.gz
"
diff --git a/main/perl-test-cpan-meta/APKBUILD b/main/perl-test-cpan-meta/APKBUILD
index f806319e610..fb8ec21dc98 100644
--- a/main/perl-test-cpan-meta/APKBUILD
+++ b/main/perl-test-cpan-meta/APKBUILD
@@ -3,11 +3,11 @@
pkgname=perl-test-cpan-meta
_pkgreal=Test-CPAN-Meta
pkgver=0.25
-pkgrel=2
+pkgrel=4
pkgdesc="Validate your CPAN META.json files"
url="https://metacpan.org/release/Test-CPAN-Meta/"
arch="noarch"
-license="Artistic-2"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/B/BA/BARBIE/$_pkgreal-$pkgver.tar.gz"
diff --git a/main/perl-test-deep/APKBUILD b/main/perl-test-deep/APKBUILD
index 0909a4131e7..4d3b86a4100 100644
--- a/main/perl-test-deep/APKBUILD
+++ b/main/perl-test-deep/APKBUILD
@@ -1,12 +1,12 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-test-deep
-pkgver=1.130
-pkgrel=3
+pkgver=1.204
+pkgrel=2
pkgdesc="Test::Deep perl module"
url="https://metacpan.org/release/Test-Deep/"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl perl-test-simple perl-test-nowarnings"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/Test-Deep-$pkgver.tar.gz"
@@ -28,5 +28,5 @@ package() {
}
sha512sums="
-de34197c97d44c68dd43372fa5a4d905a2ad636b5503c5f1443476a85b921f42cd07d475af8901dfee9deff1f29deef440c1783cdcc7f93c5f5030c4548ff9cf Test-Deep-1.130.tar.gz
+1a11b221810b7b23a6d3f71546e264ea3636fa36c73def760f756da69e6937ca3e1c1123505b80241360459d09fc4b9ab614d1c6826593695f6577f60595a8ae Test-Deep-1.204.tar.gz
"
diff --git a/main/perl-test-eol/APKBUILD b/main/perl-test-eol/APKBUILD
index 6931065c840..8110dc7e913 100644
--- a/main/perl-test-eol/APKBUILD
+++ b/main/perl-test-eol/APKBUILD
@@ -3,7 +3,7 @@
pkgname=perl-test-eol
_pkgreal=Test-EOL
pkgver=2.02
-pkgrel=0
+pkgrel=1
pkgdesc="Check the correct line endings in your project"
url="https://metacpan.org/release/Test-EOL/"
arch="noarch"
diff --git a/main/perl-test-exception/APKBUILD b/main/perl-test-exception/APKBUILD
index 89c0e29c9f4..61714bdcc63 100644
--- a/main/perl-test-exception/APKBUILD
+++ b/main/perl-test-exception/APKBUILD
@@ -1,35 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-test-exception
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-Exception
pkgver=0.43
-pkgrel=2
-pkgdesc="Perl - Test exception based code"
+pkgrel=4
+pkgdesc="Test exception-based code"
url="https://metacpan.org/release/Test-Exception/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-sub-uplevel"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/E/EX/EXODIST/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/E/EX/EXODIST/Test-Exception-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
- make || return 1
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make install DESTDIR=$pkgdir
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="f5ab65ce7b142ab7a96b0075838826a7f6b975a151a285e00d99db307bea07b359d5ca44eb678ba93d97b2ae37a112f0002ae1c06bb6e5654b80ce8c5473aa20 Test-Exception-0.43.tar.gz"
+sha512sums="
+f5ab65ce7b142ab7a96b0075838826a7f6b975a151a285e00d99db307bea07b359d5ca44eb678ba93d97b2ae37a112f0002ae1c06bb6e5654b80ce8c5473aa20 Test-Exception-0.43.tar.gz
+"
diff --git a/main/perl-test-failwarnings/APKBUILD b/main/perl-test-failwarnings/APKBUILD
index 74abc55c8d1..53c73e32abe 100644
--- a/main/perl-test-failwarnings/APKBUILD
+++ b/main/perl-test-failwarnings/APKBUILD
@@ -1,38 +1,38 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-test-failwarnings
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-FailWarnings
pkgver=0.008
-pkgrel=3
+pkgrel=5
pkgdesc="Add test failures if warnings are caught"
url="https://metacpan.org/release/Test-FailWarnings/"
arch="noarch"
license="Apache-2.0"
depends="perl"
-makedepends="perl-capture-tiny"
+makedepends="perl-dev"
+checkdepends="perl-capture-tiny"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Test-FailWarnings-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
- make test
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="7bffcc18191326095d99ad01be6426f4d9d927f769a156318f9abfea67da6adfecb657bad89390740c9f531fe69c717afa1d250258eed63d127bf10cbbf2bd51 Test-FailWarnings-0.008.tar.gz"
+sha512sums="
+7bffcc18191326095d99ad01be6426f4d9d927f769a156318f9abfea67da6adfecb657bad89390740c9f531fe69c717afa1d250258eed63d127bf10cbbf2bd51 Test-FailWarnings-0.008.tar.gz
+"
diff --git a/main/perl-test-fatal/APKBUILD b/main/perl-test-fatal/APKBUILD
index 728fc56780d..9af494bf50a 100644
--- a/main/perl-test-fatal/APKBUILD
+++ b/main/perl-test-fatal/APKBUILD
@@ -1,29 +1,29 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Sheila Aman <sheila@vulpine.house>
# Maintainer: Sheila Aman <sheila@vulpine.house>
pkgname=perl-test-fatal
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-Fatal
-pkgver=0.016
-pkgrel=3
+pkgver=0.017
+pkgrel=1
pkgdesc="incredibly simple helpers for testing code with exceptions"
url="https://metacpan.org/release/Test-Fatal/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-try-tiny"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/Test-Fatal-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -32,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="395d56cfc62fa5888458ec124710b5333f4c7396653e2755a69b08c738ca3d7503e8e413a10c8a55042fba15e90fa5331bb0bf9c59d3677c2ae5e710435120b5 Test-Fatal-0.016.tar.gz"
+sha512sums="
+e88bb9749bd1cbc4ed169e13bcd5a1ac7411873d8ae00d8b7ecf1dfc39ed9a02f0286d885876913c69b5c90033144d5fda6a5517ef64175d13e284d3c971a6e7 Test-Fatal-0.017.tar.gz
+"
diff --git a/main/perl-test-file-sharedir/APKBUILD b/main/perl-test-file-sharedir/APKBUILD
index 8b341f6131d..113981087b6 100644
--- a/main/perl-test-file-sharedir/APKBUILD
+++ b/main/perl-test-file-sharedir/APKBUILD
@@ -1,29 +1,30 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor:
-# Maintainer:
+# Automatically generated by apkbuild-cpan, template 3
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=perl-test-file-sharedir
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-File-ShareDir
pkgver=1.001002
-pkgrel=2
+pkgrel=5
pkgdesc="Create a Fake ShareDir for your modules for testing."
url="https://metacpan.org/release/Test-File-ShareDir/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-class-tiny perl-file-sharedir perl-file-copy-recursive perl-path-tiny perl-scope-guard"
+makedepends="perl-dev"
checkdepends="perl-test-fatal"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/K/KE/KENTNL/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/K/KE/KENTNL/Test-File-ShareDir-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
+check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make
+ make test
}
package() {
@@ -31,9 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
-}
-
-sha512sums="858fd7483a63fe4742e48663d64088b811658c9d24dfc730ae1fb5786818949133de98f1cc3a705f67ad97fed1144420a96c22e2cfa663c79953c33f1633f00e Test-File-ShareDir-1.001002.tar.gz"
+sha512sums="
+858fd7483a63fe4742e48663d64088b811658c9d24dfc730ae1fb5786818949133de98f1cc3a705f67ad97fed1144420a96c22e2cfa663c79953c33f1633f00e Test-File-ShareDir-1.001002.tar.gz
+"
diff --git a/main/perl-test-fork/APKBUILD b/main/perl-test-fork/APKBUILD
index 4ae1288a464..530cda7426a 100644
--- a/main/perl-test-fork/APKBUILD
+++ b/main/perl-test-fork/APKBUILD
@@ -1,11 +1,11 @@
# Automatically generated by apkbuild-cpan, template 3
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=perl-test-fork
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-Fork
pkgver=0.02
-pkgrel=1
+pkgrel=3
pkgdesc="test code which forks"
url="https://metacpan.org/release/Test-Fork/"
arch="noarch"
@@ -31,4 +31,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="854f92eabc786735dfbc3c7d0ad29e4e65ee8c99bac1bebab79876c064dec60cbdfd7ef1f5a04d7a5f5dc73b633e903d4d68c4caedd5890914707b829bca46fa Test-Fork-0.02.tar.gz"
+sha512sums="
+854f92eabc786735dfbc3c7d0ad29e4e65ee8c99bac1bebab79876c064dec60cbdfd7ef1f5a04d7a5f5dc73b633e903d4d68c4caedd5890914707b829bca46fa Test-Fork-0.02.tar.gz
+"
diff --git a/main/perl-test-harness/APKBUILD b/main/perl-test-harness/APKBUILD
index 97f408395d2..4c768dfde3a 100644
--- a/main/perl-test-harness/APKBUILD
+++ b/main/perl-test-harness/APKBUILD
@@ -1,31 +1,33 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-test-harness
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-Harness
-pkgver=3.44
+pkgver=3.48
pkgrel=0
-pkgdesc="Run Perl standard test scripts with statistics"
+pkgdesc="Perl module for Test-Harness"
url="https://metacpan.org/release/Test-Harness/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
subpackages="$pkgname-doc $pkgname-utils"
-source="https://cpan.metacpan.org/authors/id/L/LE/LEONT/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/L/LE/LEONT/Test-Harness-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
+check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make && make test
+ make test
}
package() {
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
@@ -33,20 +35,19 @@ utils() {
pkgdesc="$pkgdesc (utilities)"
depends="$pkgname perl"
replaces="perl-utils"
- mkdir -p "$subpkgdir"/usr || return 1
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+
+ amove usr/bin
}
doc() {
default_doc
replaces="perl-doc"
- local file; for file in $(find "$pkgdir" -name "*.pod"); do
- file=${file#$pkgdir/}
- mkdir -p "$subpkgdir"/${file%/*} || return 1
- mv "$pkgdir"/$file "$subpkgdir"/$file || return 1
+
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
done
}
sha512sums="
-908f0105bfa6c6e4578a4e08180d799d0ca7299c2206280fe64b9229fe3c05abdb000364d853a078f39f7d3129a8f91b7030976e1dfab726c6c6fd16e0970ef1 Test-Harness-3.44.tar.gz
+7d65b48157ec7bc63553144f68e6233c07d21a4d127cefd5f77b2193c47f4d96325b15a9eb029ed62a19340f65659fcef0796ff7c6b07e5b5b8d539ddeee485c Test-Harness-3.48.tar.gz
"
diff --git a/main/perl-test-identity/APKBUILD b/main/perl-test-identity/APKBUILD
index ddb29af0e46..81747037f0f 100644
--- a/main/perl-test-identity/APKBUILD
+++ b/main/perl-test-identity/APKBUILD
@@ -1,35 +1,36 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Sheila Aman <sheila@vulpine.house>
# Maintainer: Sheila Aman <sheila@vulpine.house>
pkgname=perl-test-identity
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-Identity
pkgver=0.01
-pkgrel=3
+pkgrel=5
pkgdesc="assert the referential identity of a reference"
url="https://metacpan.org/release/Test-Identity/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-module-build"
+makedepends="perl-dev perl-module-build"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Test-Identity-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- perl Build.PL installdirs=vendor
-}
-
build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
./Build
}
+
check() {
./Build test
}
package() {
- ./Build install destdir="$pkgdir"
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="eee20978e2e39a11c5649b4609840f02686482f8fe4c0c2de639bfd9749ba9a08202f70b660432f1142ff800824ee2a6e9e43873f3f089041cd3e864ff502c32 Test-Identity-0.01.tar.gz"
+sha512sums="
+eee20978e2e39a11c5649b4609840f02686482f8fe4c0c2de639bfd9749ba9a08202f70b660432f1142ff800824ee2a6e9e43873f3f089041cd3e864ff502c32 Test-Identity-0.01.tar.gz
+"
diff --git a/main/perl-test-leaktrace/APKBUILD b/main/perl-test-leaktrace/APKBUILD
index 9c88cff446f..52b042857d2 100644
--- a/main/perl-test-leaktrace/APKBUILD
+++ b/main/perl-test-leaktrace/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-test-leaktrace
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-LeakTrace
pkgver=0.17
-pkgrel=2
+pkgrel=4
pkgdesc="Perl module for Test-LeakTrace"
url="https://metacpan.org/release/Test-LeakTrace/"
arch="all"
diff --git a/main/perl-test-longstring/APKBUILD b/main/perl-test-longstring/APKBUILD
index 169360e2532..ddf8c9d34e4 100644
--- a/main/perl-test-longstring/APKBUILD
+++ b/main/perl-test-longstring/APKBUILD
@@ -1,18 +1,18 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-test-longstring
-_pkgname=Test-LongString
+_pkgreal=Test-LongString
pkgver=0.17
-pkgrel=2
+pkgrel=4
pkgdesc="Tests strings for equality"
url="https://metacpan.org/release/Test-LongString/"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/R/RG/RGARCIA/$_pkgname-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/R/RG/RGARCIA/Test-LongString-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
diff --git a/main/perl-test-manifest/APKBUILD b/main/perl-test-manifest/APKBUILD
index 3c092a010e9..0edfb81f718 100644
--- a/main/perl-test-manifest/APKBUILD
+++ b/main/perl-test-manifest/APKBUILD
@@ -4,7 +4,7 @@
pkgname=perl-test-manifest
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-Manifest
-pkgver=2.023
+pkgver=2.024
pkgrel=0
pkgdesc="interact with a t/test_manifest file"
url="https://metacpan.org/release/Test-Manifest/"
@@ -32,5 +32,5 @@ package() {
}
sha512sums="
-7a3b25e5cf468f72ed43e9cec7c79b6f58bf797851019a3c381abf3cca7c2ba3ca9d864339c90eb42bd0c451110f92b6f5af1cf94e033815d0164476053bbf6a Test-Manifest-2.023.tar.gz
+e68b6e262296689b882e1c920b9592cd83f285bba11bbae93c5519c2f19504ecd58de8d6593c39a0b99f4c93fbde3a3236735bb6fa526918ffcf49cc8ccfad5e Test-Manifest-2.024.tar.gz
"
diff --git a/main/perl-test-metrics-any/APKBUILD b/main/perl-test-metrics-any/APKBUILD
index df15c704c2e..c69b1d2a366 100644
--- a/main/perl-test-metrics-any/APKBUILD
+++ b/main/perl-test-metrics-any/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-test-metrics-any
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-Metrics-Any
pkgver=0.01
-pkgrel=1
+pkgrel=2
pkgdesc="assert that code produces metrics via L<Metrics::Any>"
url="https://metacpan.org/release/Test-Metrics-Any/"
arch="noarch"
diff --git a/main/perl-test-mockmodule/APKBUILD b/main/perl-test-mockmodule/APKBUILD
index 76aff55732c..be6dc3f49d6 100644
--- a/main/perl-test-mockmodule/APKBUILD
+++ b/main/perl-test-mockmodule/APKBUILD
@@ -1,10 +1,10 @@
# Automatically generated by apkbuild-cpan, template 3
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-test-mockmodule
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-MockModule
pkgver=0.177.0
-pkgrel=0
+pkgrel=1
pkgdesc="Override subroutines in a module for unit testing"
url="https://metacpan.org/release/Test-MockModule/"
arch="noarch"
diff --git a/main/perl-test-mockobject/APKBUILD b/main/perl-test-mockobject/APKBUILD
index fa38e387136..56b44104498 100644
--- a/main/perl-test-mockobject/APKBUILD
+++ b/main/perl-test-mockobject/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: Jeff Bilyk <jbilyk@gmail.com>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-test-mockobject
-_pkgname=Test-MockObject
+_pkgreal=Test-MockObject
pkgver=1.20200122
-pkgrel=1
+pkgrel=2
pkgdesc="Perl Mock part of an object or class"
url="https://metacpan.org/release/Test-MockObject/"
arch="noarch"
@@ -12,8 +12,8 @@ depends="perl"
makedepends="perl-dev"
checkdepends="perl-test-warn perl-test-exception perl-universal-isa perl-universal-can"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/C/CH/CHROMATIC/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+source="https://cpan.metacpan.org/authors/id/C/CH/CHROMATIC/Test-MockObject-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
diff --git a/main/perl-test-mockrandom/APKBUILD b/main/perl-test-mockrandom/APKBUILD
index f37fc3c45cd..03c59d4a003 100644
--- a/main/perl-test-mockrandom/APKBUILD
+++ b/main/perl-test-mockrandom/APKBUILD
@@ -1,31 +1,29 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-test-mockrandom
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-MockRandom
pkgver=1.01
-pkgrel=3
+pkgrel=5
pkgdesc="Replaces random number generation with non-random number generation"
url="https://metacpan.org/release/Test-MockRandom/"
arch="noarch"
license="Apache-2.0"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Test-MockRandom-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -34,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="e222bd0d3d7673b403e80d1633ddaca0ee35f96f2245e8df859d661edc7efc09b9a96d3718f25b6614395d1f24d66c9498e842cec476cf8c5b12464d585f85e7 Test-MockRandom-1.01.tar.gz"
+sha512sums="
+e222bd0d3d7673b403e80d1633ddaca0ee35f96f2245e8df859d661edc7efc09b9a96d3718f25b6614395d1f24d66c9498e842cec476cf8c5b12464d585f85e7 Test-MockRandom-1.01.tar.gz
+"
diff --git a/main/perl-test-mocktime/APKBUILD b/main/perl-test-mocktime/APKBUILD
index 77da6af4bb1..1563022a33d 100644
--- a/main/perl-test-mocktime/APKBUILD
+++ b/main/perl-test-mocktime/APKBUILD
@@ -1,30 +1,29 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-test-mocktime
-_pkgname=Test-MockTime
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Test-MockTime
pkgver=0.17
-pkgrel=2
+pkgrel=4
pkgdesc="Replaces actual time with simulated time"
url="https://metacpan.org/release/Test-MockTime/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DD/DDICK/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-prepare() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
+source="https://cpan.metacpan.org/authors/id/D/DD/DDICK/Test-MockTime-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -33,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="ad73be430e3a483a61209bacf4bfa170d6eec6597d3c0efcf5de167f9c129fbf656581dcdceeba88bd98e530371db2542894ded793f9d46e4155c612e2b7cac5 Test-MockTime-0.17.tar.gz"
+sha512sums="
+ad73be430e3a483a61209bacf4bfa170d6eec6597d3c0efcf5de167f9c129fbf656581dcdceeba88bd98e530371db2542894ded793f9d46e4155c612e2b7cac5 Test-MockTime-0.17.tar.gz
+"
diff --git a/main/perl-test-needs/APKBUILD b/main/perl-test-needs/APKBUILD
index 4a5c785ff3d..f0b6fd669a7 100644
--- a/main/perl-test-needs/APKBUILD
+++ b/main/perl-test-needs/APKBUILD
@@ -3,8 +3,8 @@
pkgname=perl-test-needs
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-Needs
-pkgver=0.002009
-pkgrel=0
+pkgver=0.002010
+pkgrel=1
pkgdesc="Skip tests when modules not available"
url="https://metacpan.org/release/Test-Needs/"
arch="noarch"
@@ -31,5 +31,5 @@ package() {
}
sha512sums="
-758f22ca9b024f7d3252ff575ae84453e64f4ef4e18d3233cdaa3b81d9212cf48e41fde529047e7355678d5e53345bd51210a45dd9545c3bf8ffe16f96a9500d Test-Needs-0.002009.tar.gz
+1dde33f0b161a9cb99d1add141706ae015472a16620c38c159e3ae9654d749c275c7a4a979082c2720999305bf25129e7b178a9afdd6f4b4dfc9ee00281c76eb Test-Needs-0.002010.tar.gz
"
diff --git a/main/perl-test-notabs/APKBUILD b/main/perl-test-notabs/APKBUILD
index c38689fd798..326485dc02d 100644
--- a/main/perl-test-notabs/APKBUILD
+++ b/main/perl-test-notabs/APKBUILD
@@ -3,7 +3,7 @@
pkgname=perl-test-notabs
_pkgreal=Test-NoTabs
pkgver=2.02
-pkgrel=2
+pkgrel=3
pkgdesc="Check the presence of tabs in your project"
url="https://metacpan.org/release/Test-NoTabs/"
arch="noarch"
diff --git a/main/perl-test-nowarnings/APKBUILD b/main/perl-test-nowarnings/APKBUILD
index 1c3b0a8ec18..79ffcf75355 100644
--- a/main/perl-test-nowarnings/APKBUILD
+++ b/main/perl-test-nowarnings/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-test-nowarnings
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-NoWarnings
pkgver=1.06
-pkgrel=0
+pkgrel=1
pkgdesc="Test::NoWarnings perl module"
url="https://metacpan.org/release/Test-NoWarnings/"
arch="noarch"
diff --git a/main/perl-test-number-delta/APKBUILD b/main/perl-test-number-delta/APKBUILD
index bf0ba3c7831..0ec6cae387e 100644
--- a/main/perl-test-number-delta/APKBUILD
+++ b/main/perl-test-number-delta/APKBUILD
@@ -1,36 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-test-number-delta
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-Number-Delta
pkgver=1.06
-pkgrel=2
+pkgrel=4
pkgdesc="Compare the difference between numbers against a given tolerance"
url="https://metacpan.org/release/Test-Number-Delta/"
arch="noarch"
license="Apache-2.0"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/D/DA/DAGOLDEN/Test-Number-Delta-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="87d64aad1ffc180ac9105d8f80aa1086ae9f6d11d7fead6f77daca6b0440320ed49dc628bed88b67836c091116fa43402b4a902e8319997fbad7a0fa19edfd79 Test-Number-Delta-1.06.tar.gz"
+sha512sums="
+87d64aad1ffc180ac9105d8f80aa1086ae9f6d11d7fead6f77daca6b0440320ed49dc628bed88b67836c091116fa43402b4a902e8319997fbad7a0fa19edfd79 Test-Number-Delta-1.06.tar.gz
+"
diff --git a/main/perl-test-output/APKBUILD b/main/perl-test-output/APKBUILD
index a33560a6ee7..bbb5f804225 100644
--- a/main/perl-test-output/APKBUILD
+++ b/main/perl-test-output/APKBUILD
@@ -4,7 +4,7 @@
pkgname=perl-test-output
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-Output
-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,6 @@ 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/main/perl-test-pod-coverage/APKBUILD b/main/perl-test-pod-coverage/APKBUILD
index d9d0d6360a0..7125dad7606 100644
--- a/main/perl-test-pod-coverage/APKBUILD
+++ b/main/perl-test-pod-coverage/APKBUILD
@@ -1,35 +1,33 @@
# Contributor: Mika Havela <mika.havela@gmail.com>
# Maintainer: Mika Havela <mika.havela@gmail.com>
pkgname=perl-test-pod-coverage
-_realname=Test-Pod-Coverage
+_pkgreal=Test-Pod-Coverage
pkgver=1.10
-pkgrel=2
+pkgrel=5
pkgdesc="Perl - Check for pod coverage in your distribution."
url="https://metacpan.org/release/Test-Pod-Coverage/"
arch="noarch"
-license="Artistic GPL"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl perl-pod-coverage perl-test-pod perl-devel-symdump"
-install=
source="https://cpan.metacpan.org/authors/id/N/NE/NEILB/Test-Pod-Coverage-$pkgver.tar.gz"
-_builddir="$srcdir/$_realname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- cd "$_builddir"
+build() {
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- make || return 1
- make test || return 1
+check() {
+ make test
}
package() {
- cd "$_builddir"
make DESTDIR="$pkgdir" install
# creates file collision among perl modules
find "$pkgdir" -name perllocal.pod -delete
}
-sha512sums="ebcebb900f4367984245d1915937200e2de8586a6e6ea9c9b71588e56caf68808ee73c21e633434ab5c43b80b42dd56cb0cbd4e67519e928270e1eda06c1d02c Test-Pod-Coverage-1.10.tar.gz"
+sha512sums="
+ebcebb900f4367984245d1915937200e2de8586a6e6ea9c9b71588e56caf68808ee73c21e633434ab5c43b80b42dd56cb0cbd4e67519e928270e1eda06c1d02c Test-Pod-Coverage-1.10.tar.gz
+"
diff --git a/main/perl-test-pod/APKBUILD b/main/perl-test-pod/APKBUILD
index 36b16b016c7..c85086c8ef9 100644
--- a/main/perl-test-pod/APKBUILD
+++ b/main/perl-test-pod/APKBUILD
@@ -1,31 +1,29 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-test-pod
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-Pod
pkgver=1.52
-pkgrel=2
+pkgrel=4
pkgdesc="check for POD errors in files"
url="https://metacpan.org/release/Test-Pod/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/Test-Pod-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -34,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="9b078488e1da8b907f5f3a46452aa9bfd49db61f1539d076dccebf9a8b476eaf0f539f00badc9c500b1e732a8827331b2286375924986efb990367767eeb8365 Test-Pod-1.52.tar.gz"
+sha512sums="
+9b078488e1da8b907f5f3a46452aa9bfd49db61f1539d076dccebf9a8b476eaf0f539f00badc9c500b1e732a8827331b2286375924986efb990367767eeb8365 Test-Pod-1.52.tar.gz
+"
diff --git a/main/perl-test-refcount/APKBUILD b/main/perl-test-refcount/APKBUILD
index d32de5d2d2e..6e15f8a47a0 100644
--- a/main/perl-test-refcount/APKBUILD
+++ b/main/perl-test-refcount/APKBUILD
@@ -1,26 +1,24 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Sheila Aman <sheila@vulpine.house>
# Maintainer: Sheila Aman <sheila@vulpine.house>
pkgname=perl-test-refcount
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-Refcount
pkgver=0.10
-pkgrel=3
+pkgrel=5
pkgdesc="assert reference counts on objects"
-url="https://metacpan.org/release/Test-Refcount"
+url="https://metacpan.org/release/Test-Refcount/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-module-build"
+makedepends="perl-dev perl-module-build"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/Test-Refcount-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- perl Build.PL installdirs=vendor
-}
-
build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
./Build
}
@@ -29,8 +27,10 @@ check() {
}
package() {
- ./Build install destdir="$pkgdir"
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="7fac2a6bcb96da0ed61c53aaa2278e1ac998bd62314b95f307fe6ee032fd7d89264968f3ad78066186b112af0ba45960d5d1c81822bcd5f218418ea81236c4e1 Test-Refcount-0.10.tar.gz"
+sha512sums="
+7fac2a6bcb96da0ed61c53aaa2278e1ac998bd62314b95f307fe6ee032fd7d89264968f3ad78066186b112af0ba45960d5d1c81822bcd5f218418ea81236c4e1 Test-Refcount-0.10.tar.gz
+"
diff --git a/main/perl-test-requires/APKBUILD b/main/perl-test-requires/APKBUILD
index ef181592f9c..3c518de9d53 100644
--- a/main/perl-test-requires/APKBUILD
+++ b/main/perl-test-requires/APKBUILD
@@ -1,30 +1,30 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-test-requires
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-Requires
pkgver=0.11
-pkgrel=1
+pkgrel=3
pkgdesc="Checks to see if the module can be loaded"
url="https://metacpan.org/release/Test-Requires/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/T/TO/TOKUHIROM/Test-Requires-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
-
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
+check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make && make test
+ make test
}
package() {
@@ -32,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="770ea2469e386296fe1ded3630fa9b7f30ee22acd3522fb83ad95171ccb96812ef2fc5fa30d658a405dc1c435d35b6d476cc054021d74e04b419b517f6f898fa Test-Requires-0.11.tar.gz"
+sha512sums="
+770ea2469e386296fe1ded3630fa9b7f30ee22acd3522fb83ad95171ccb96812ef2fc5fa30d658a405dc1c435d35b6d476cc054021d74e04b419b517f6f898fa Test-Requires-0.11.tar.gz
+"
diff --git a/main/perl-test-requiresinternet/APKBUILD b/main/perl-test-requiresinternet/APKBUILD
index 662d0ea4c33..20839a85675 100644
--- a/main/perl-test-requiresinternet/APKBUILD
+++ b/main/perl-test-requiresinternet/APKBUILD
@@ -2,7 +2,7 @@
pkgname=perl-test-requiresinternet
_pkgreal=Test-RequiresInternet
pkgver=0.05
-pkgrel=3
+pkgrel=4
pkgdesc="Easily test network connectivity"
url="https://metacpan.org/release/Test-RequiresInternet/"
arch="noarch"
diff --git a/main/perl-test-script/APKBUILD b/main/perl-test-script/APKBUILD
index 4283b70ff80..6998a64493f 100644
--- a/main/perl-test-script/APKBUILD
+++ b/main/perl-test-script/APKBUILD
@@ -1,39 +1,34 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-test-script
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-Script
pkgver=1.29
-pkgrel=0
+pkgrel=2
pkgdesc="Basic cross-platform tests for scripts"
-url="https://metacpan.org/release/Test-Script"
+url="https://metacpan.org/release/Test-Script/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-depends="perl-ipc-run3 perl-probe-perl perl-test-simple"
+depends="perl perl-probe-perl perl-capture-tiny"
makedepends="perl-dev $cpanmakedepends"
-checkdepends="perl-test2-suite perl-capture-tiny"
+checkdepends="perl-test2-suite"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/P/PL/PLICEASE/Test-Script-$pkgver.tar.gz"
-
builddir="$srcdir/$_pkgreal-$pkgver"
-check() {
- cd "$builddir"
- make test
-}
-
-prepare() {
- cd "$builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
- cd "$builddir"
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
+}
+
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
diff --git a/main/perl-test-sharedfork/APKBUILD b/main/perl-test-sharedfork/APKBUILD
index d40a15f4519..9f7da3d0d77 100644
--- a/main/perl-test-sharedfork/APKBUILD
+++ b/main/perl-test-sharedfork/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-test-sharedfork
pkgver=0.35
-pkgrel=2
+pkgrel=3
pkgdesc="Test::SharedFork perl module"
url="https://metacpan.org/release/Test-SharedFork"
arch="noarch"
diff --git a/main/perl-test-simple/APKBUILD b/main/perl-test-simple/APKBUILD
index 628d818d7d0..3ad4148519e 100644
--- a/main/perl-test-simple/APKBUILD
+++ b/main/perl-test-simple/APKBUILD
@@ -4,8 +4,8 @@
pkgname=perl-test-simple
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-Simple
-pkgver=1.302190
-pkgrel=1
+pkgver=1.302198
+pkgrel=0
pkgdesc="Basic utilities for writing tests"
url="https://metacpan.org/release/Test-Simple/"
arch="noarch"
@@ -34,5 +34,5 @@ package() {
}
sha512sums="
-f9add3bcbec5d080034878f457795c2febba78712ae74611fc513bd771d7e63a4364ae4be98e913e0c758afbe10dcd618b1b087da23e969c7398da7006cda869 Test-Simple-1.302190.tar.gz
+b59ed1033338219cd6352f825ed3657b6dc8e2cd38ac7ccd062181b2e2076d6ba48a7d559a20f75e68718165874231c2434f3a73b78d645947d129ebf1d8b04e Test-Simple-1.302198.tar.gz
"
diff --git a/main/perl-test-taint/APKBUILD b/main/perl-test-taint/APKBUILD
index 21a63b1339d..d63873605e8 100644
--- a/main/perl-test-taint/APKBUILD
+++ b/main/perl-test-taint/APKBUILD
@@ -1,33 +1,29 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-test-taint
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-Taint
pkgver=1.08
-pkgrel=5
+pkgrel=8
pkgdesc="Checks for taintedness of variables"
-url="https://metacpan.org/release/Test-Taint"
+url="https://metacpan.org/release/Test-Taint/"
arch="all"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpanmakedepends="perl-test-pod perl-test-pod-coverage"
depends="perl"
-makedepends="perl-dev $cpanmakedepends"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/P/PE/PETDANCE/Test-Taint-$pkgver.tar.gz"
-
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -36,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="2a7e3a60756c802dc33ac0b2a4102463de59fe92ba3cd83cb02e01e9f7aa13978c7a8ac7dcfdcf3c0d934af40e5189421874da819be9258e91080b777be71b20 Test-Taint-1.08.tar.gz"
+sha512sums="
+2a7e3a60756c802dc33ac0b2a4102463de59fe92ba3cd83cb02e01e9f7aa13978c7a8ac7dcfdcf3c0d934af40e5189421874da819be9258e91080b777be71b20 Test-Taint-1.08.tar.gz
+"
diff --git a/main/perl-test-tcp/APKBUILD b/main/perl-test-tcp/APKBUILD
index 4ffdaf5bb8a..84e1e4a130a 100644
--- a/main/perl-test-tcp/APKBUILD
+++ b/main/perl-test-tcp/APKBUILD
@@ -1,32 +1,36 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-test-tcp
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-TCP
pkgver=2.22
-pkgrel=1
-pkgdesc="Testing TCP program"
-url="https://metacpan.org/release/Test-TCP"
+pkgrel=3
+pkgdesc="testing TCP program"
+url="https://metacpan.org/release/Test-TCP/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-test-sharedfork"
-makedepends="perl-module-build"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/M/MI/MIYAGAWA/Test-TCP-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
- make install DESTDIR=$pkgdir
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="2e0c8cf710f9702eee9b00422d7133efe87575805361d72becd2c3de671c765baf84827b601d26091e8a6b8595e6d9f168f90b7cfda402d668deb6fc277e37ad Test-TCP-2.22.tar.gz"
+sha512sums="
+2e0c8cf710f9702eee9b00422d7133efe87575805361d72becd2c3de671c765baf84827b601d26091e8a6b8595e6d9f168f90b7cfda402d668deb6fc277e37ad Test-TCP-2.22.tar.gz
+"
diff --git a/main/perl-test-warn/APKBUILD b/main/perl-test-warn/APKBUILD
index 64f2e9a5bcf..ad1a05beba8 100644
--- a/main/perl-test-warn/APKBUILD
+++ b/main/perl-test-warn/APKBUILD
@@ -1,32 +1,29 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-test-warn
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-Warn
-pkgver=0.36
+pkgver=0.37
pkgrel=2
pkgdesc="Perl extension to test methods for warnings"
-url="https://metacpan.org/release/Test-Warn"
+url="https://metacpan.org/release/Test-Warn/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-sub-uplevel"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/B/BI/BIGJ/Test-Warn-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
-
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -35,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="f1f671d740267f8f360011ae1f2fede9894ad02e099f8fc9707d39a1bfec5507b113bb630e4dfeb56113e121b3ffeef8c7f112be5b201995fc21b3c2efdad2d2 Test-Warn-0.36.tar.gz"
+sha512sums="
+908f3c5c68463ab72f70759032116465f4f63519dd5112666dd6ddcfd5e52163fd433d9eb459dafd721d85c64464549476c6e0bfcfff56d27cf44689fadfce67 Test-Warn-0.37.tar.gz
+"
diff --git a/main/perl-test-warnings/APKBUILD b/main/perl-test-warnings/APKBUILD
index 6ab089fd402..eabf9347265 100644
--- a/main/perl-test-warnings/APKBUILD
+++ b/main/perl-test-warnings/APKBUILD
@@ -4,7 +4,7 @@
pkgname=perl-test-warnings
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test-Warnings
-pkgver=0.031
+pkgver=0.033
pkgrel=0
pkgdesc="Test for warnings and the lack of them"
url="https://metacpan.org/release/Test-Warnings/"
@@ -32,5 +32,5 @@ package() {
}
sha512sums="
-02ddd342b6aa8771dd6ea3b7385c5eb970173633d49a3535bc46c3f98a66cd6e81895fc5f38cbe23366c8fa0f96121b51a8180b0d4ef0f2d8c658bb559c72c58 Test-Warnings-0.031.tar.gz
+dc49e345b2b5d2dd42d83b4351025f2c0db0216ef8388b02db77d5078e5eda0b5aab1491b07a0009923acc73b30c4ef6d77d406e85b0f958f575007c6ca1e6e8 Test-Warnings-0.033.tar.gz
"
diff --git a/main/perl-test-without-module/APKBUILD b/main/perl-test-without-module/APKBUILD
index b4f75fea1c7..263b3079083 100644
--- a/main/perl-test-without-module/APKBUILD
+++ b/main/perl-test-without-module/APKBUILD
@@ -1,8 +1,8 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-test-without-module
_pkgreal="Test-Without-Module"
-pkgver=0.20
-pkgrel=2
+pkgver=0.21
+pkgrel=1
pkgdesc="Test::Without::Module perl module"
url="https://metacpan.org/pod/Test::Without::Module"
arch="noarch"
@@ -27,4 +27,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="e92353cee46e712ddc6515c5872a61a84eb4186f9ce736bbf0fcca2979bfa7143588c05e683d31fc22cbaaa792ce8364768310f9de621e881cc207b80cf14d87 Test-Without-Module-0.20.tar.gz"
+sha512sums="
+0d9230e15fa46001458a8e4a1ad97d24a8766b9df8326d166da92763a01624d01972d023951d3c58e9bbfd4e0d23e92d610565873a622eaaf87c8ec2a4f0a7f7 Test-Without-Module-0.21.tar.gz
+"
diff --git a/main/perl-test-without/APKBUILD b/main/perl-test-without/APKBUILD
index 15109de3bd3..01fa3d1b8a6 100644
--- a/main/perl-test-without/APKBUILD
+++ b/main/perl-test-without/APKBUILD
@@ -2,7 +2,7 @@
pkgname=perl-test-without
_pkgreal="Test-Without"
pkgver=0.10
-pkgrel=2
+pkgrel=3
pkgdesc="Test::Without perl module"
url="https://metacpan.org/pod/Test::Without"
arch="noarch"
diff --git a/main/perl-test2-plugin-nowarnings/APKBUILD b/main/perl-test2-plugin-nowarnings/APKBUILD
index 7590e1b9e9f..e7f34310b49 100644
--- a/main/perl-test2-plugin-nowarnings/APKBUILD
+++ b/main/perl-test2-plugin-nowarnings/APKBUILD
@@ -1,31 +1,38 @@
+# Automatically generated by apkbuild-cpan, template 4
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-test2-plugin-nowarnings
-_pkgreal="Test2-Plugin-NoWarnings"
-pkgver=0.09
-pkgrel=1
-pkgdesc="Test2::Plugin::NoWarnings perl module"
-url="https://metacpan.org/release/Test2-Plugin-NoWarnings"
+pkgver=0.10
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Test2-Plugin-NoWarnings
+pkgdesc="Fail tests if warnings are generated"
+url="https://metacpan.org/release/Test2-Plugin-NoWarnings/"
arch="noarch"
license="Artistic-2.0"
-depends="perl perl-ipc-run3 perl-test2-suite perl-test-simple"
-checkdepends="perl-capture-tiny"
+depends="perl perl-test2-suite"
+checkdepends="perl-ipc-run3 perl-module-pluggable"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/D/DR/DROLSKY/Test2-Plugin-NoWarnings-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="3b93d6c4522e913c4bc9d589b650f784327bed1a36a0dc18943dd2ea34654215333753cb532d5ffff6f0ef0af9ce0859e9744637cff89a1a1a5b936149f9b455 Test2-Plugin-NoWarnings-0.09.tar.gz"
+sha512sums="
+31f749911e9df452e20d17c4cff30afea1f4ef10a11c7d7de92d60b6701b84bf98190ccb5d70867804793fe269b0027a8f9b494a21c1d676480e8ce2823a4b4d Test2-Plugin-NoWarnings-0.10.tar.gz
+"
diff --git a/main/perl-test2-suite/APKBUILD b/main/perl-test2-suite/APKBUILD
index ba8fd254ef8..014e473c96f 100644
--- a/main/perl-test2-suite/APKBUILD
+++ b/main/perl-test2-suite/APKBUILD
@@ -4,7 +4,7 @@
pkgname=perl-test2-suite
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Test2-Suite
-pkgver=0.000145
+pkgver=0.000159
pkgrel=0
pkgdesc="Distribution with a rich set of tools built upon the Test2 framework."
url="https://metacpan.org/release/Test2-Suite/"
@@ -32,5 +32,5 @@ package() {
}
sha512sums="
-3e6725542351549eebd5064cab161671d172953ec4261e520f72d6de0604890f779daa349fcd45c7832f5184bf42e19ca1e6e095ad0f4e66fe660f5303bffcad Test2-Suite-0.000145.tar.gz
+ab132e87f0db5dde0ebd95b260236d95120445c89db497e92519335e989d8571481f2497898cd5fae25cb2065db1aa8902a9f2d37cf2163475caca1298629a3f Test2-Suite-0.000159.tar.gz
"
diff --git a/main/perl-text-autoformat/APKBUILD b/main/perl-text-autoformat/APKBUILD
index cd4dc6f64db..32b02697b82 100644
--- a/main/perl-text-autoformat/APKBUILD
+++ b/main/perl-text-autoformat/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-text-autoformat
-_pkgname=Text-Autoformat
+_pkgreal=Text-Autoformat
pkgver=1.75
-pkgrel=1
+pkgrel=2
pkgdesc="Text::Autoformat perl module"
url="https://metacpan.org/release/Text-Autoformat"
arch="noarch"
@@ -12,7 +12,7 @@ depends="perl perl-text-reform"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/N/NE/NEILB/Text-Autoformat-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
diff --git a/main/perl-text-csv/APKBUILD b/main/perl-text-csv/APKBUILD
index e64ab731917..5893edeee39 100644
--- a/main/perl-text-csv/APKBUILD
+++ b/main/perl-text-csv/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-text-csv
-_pkgname=Text-CSV
-pkgver=2.01
+_pkgreal=Text-CSV
+pkgver=2.04
pkgrel=0
pkgdesc="Manipulate comma-separated value strings"
url="https://metacpan.org/release/Text-CSV"
@@ -11,7 +11,7 @@ depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/I/IS/ISHIGAKI/Text-CSV-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
@@ -29,5 +29,5 @@ package() {
}
sha512sums="
-45c215686437e111fcd8d6c0adc9c6e0bac9df37fcd47e7bd9fcf4872859e59a296caae3573b77955cdaf42284b4c88fcc6774bd6ac11d701ae54f6a3741991a Text-CSV-2.01.tar.gz
+72673380a955ee888a78aca4188326c1adbdc9508a25752d76eb6f50064181763336b4983bffb944c88110ceb48dde356c092f8189369001513799f220d5021d Text-CSV-2.04.tar.gz
"
diff --git a/main/perl-text-password-pronounceable/APKBUILD b/main/perl-text-password-pronounceable/APKBUILD
index 0d6ffea9534..d20f75d4c8d 100644
--- a/main/perl-text-password-pronounceable/APKBUILD
+++ b/main/perl-text-password-pronounceable/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-text-password-pronounceable
pkgver=0.30
-pkgrel=3
+pkgrel=5
pkgdesc="Text::Password::Pronounceable perl module"
url="https://metacpan.org/release/Text-Password-Pronounceable/"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
makedepends="perl-module-install"
subpackages="$pkgname-doc"
diff --git a/main/perl-text-reform/APKBUILD b/main/perl-text-reform/APKBUILD
index b3de5ce6589..ba249c3820d 100644
--- a/main/perl-text-reform/APKBUILD
+++ b/main/perl-text-reform/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-text-reform
pkgver=1.20
-pkgrel=2
+pkgrel=4
pkgdesc="Text::Reform perl module"
url="https://metacpan.org/release/Text-Reform"
arch="noarch"
-license="GPL-1.0-or-later or Artistic-1.0-Perl"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/C/CH/CHORNY/Text-Reform-$pkgver.tar.gz"
diff --git a/main/perl-text-soundex/APKBUILD b/main/perl-text-soundex/APKBUILD
index d78b3d32f9e..c164d338e3f 100644
--- a/main/perl-text-soundex/APKBUILD
+++ b/main/perl-text-soundex/APKBUILD
@@ -1,39 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-text-soundex
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Text-Soundex
pkgver=3.05
-pkgrel=6
-pkgdesc="Implementation of the soundex algorithm"
+pkgrel=9
+pkgdesc="Perl module for Text-Soundex"
url="https://metacpan.org/release/Text-Soundex/"
arch="all"
-license="GPL PerlArtistic"
-cpandepends=""
-cpanmakedepends=" "
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/R/RJ/RJBS/Text-Soundex-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="f7ea405cb5960cc2e3f5e257c18c1bbb499c5244ad6a6d14612f07329fd2177ad71dcdde85129e65c65541d61e45d7e9e4097c37ca6cead9783838900b3ebbec Text-Soundex-3.05.tar.gz"
+sha512sums="
+f7ea405cb5960cc2e3f5e257c18c1bbb499c5244ad6a6d14612f07329fd2177ad71dcdde85129e65c65541d61e45d7e9e4097c37ca6cead9783838900b3ebbec Text-Soundex-3.05.tar.gz
+"
diff --git a/main/perl-text-vfile-asdata/APKBUILD b/main/perl-text-vfile-asdata/APKBUILD
index 58de7bd845d..9dc088a99dc 100644
--- a/main/perl-text-vfile-asdata/APKBUILD
+++ b/main/perl-text-vfile-asdata/APKBUILD
@@ -1,34 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-text-vfile-asdata
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Text-vFile-asData
pkgver=0.08
-pkgrel=2
+pkgrel=4
pkgdesc="parse vFile formatted files into data structures"
url="https://metacpan.org/release/Text-vFile-asData/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-class-accessor-chained"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/R/RC/RCLAMP/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/R/RC/RCLAMP/Text-vFile-asData-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="04ec51061a7dc1c19d00edfcb3740deae7c70372e8d5eba868e2e62326f0084fbb3f8237f7cffaf1a5d2f49a5ceac7dcc7ea391e1effe78923b6b0e523b2728b Text-vFile-asData-0.08.tar.gz"
+sha512sums="
+04ec51061a7dc1c19d00edfcb3740deae7c70372e8d5eba868e2e62326f0084fbb3f8237f7cffaf1a5d2f49a5ceac7dcc7ea391e1effe78923b6b0e523b2728b Text-vFile-asData-0.08.tar.gz
+"
diff --git a/main/perl-text-wikiformat/APKBUILD b/main/perl-text-wikiformat/APKBUILD
index 71ec9a7e85a..775ca00ec23 100644
--- a/main/perl-text-wikiformat/APKBUILD
+++ b/main/perl-text-wikiformat/APKBUILD
@@ -1,37 +1,36 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=perl-text-wikiformat
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Text-WikiFormat
pkgver=0.81
-pkgrel=2
+pkgrel=4
pkgdesc="module for translating Wiki formatted text into other formats"
url="https://metacpan.org/release/Text-WikiFormat/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-uri"
-makedepends="perl-module-build"
+makedepends="perl-dev perl-module-build"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/C/CY/CYCLES/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/C/CY/CYCLES/Text-WikiFormat-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- perl Build.PL installdirs=vendor || return 1
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
+ ./Build
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- ./Build && ./Build test
+check() {
+ ./Build test
}
package() {
- cd "$_builddir"
- ./Build install destdir="$pkgdir" || return 1
+ ./Build install --destdir="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="60c781b9bda9dbd5f533a1cef326110f7aebe79078e38ba8ecf2e9d6c1b93cad552077a2015748186d04b7cd457fc63ab297ca24c01e321f1869dfafc4f1b4e2 Text-WikiFormat-0.81.tar.gz"
+sha512sums="
+60c781b9bda9dbd5f533a1cef326110f7aebe79078e38ba8ecf2e9d6c1b93cad552077a2015748186d04b7cd457fc63ab297ca24c01e321f1869dfafc4f1b4e2 Text-WikiFormat-0.81.tar.gz
+"
diff --git a/main/perl-text-wrapper/APKBUILD b/main/perl-text-wrapper/APKBUILD
index 26058a41577..87a04763547 100644
--- a/main/perl-text-wrapper/APKBUILD
+++ b/main/perl-text-wrapper/APKBUILD
@@ -1,32 +1,29 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-text-wrapper
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Text-Wrapper
pkgver=1.05
-pkgrel=3
+pkgrel=5
pkgdesc="Word wrap text by breaking long lines"
url="https://metacpan.org/release/Text-Wrapper/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/C/CJ/CJM/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/C/CJ/CJM/Text-Wrapper-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -35,4 +32,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="8efd94ad7880069a37205a4b6e38d4b03ce8d83869994916abb831498e1e3d1bc23df39e8546b5b0953db7e0c8e7ef29aa237f8cf20452dc9e4263e49e31dad9 Text-Wrapper-1.05.tar.gz"
+sha512sums="
+8efd94ad7880069a37205a4b6e38d4b03ce8d83869994916abb831498e1e3d1bc23df39e8546b5b0953db7e0c8e7ef29aa237f8cf20452dc9e4263e49e31dad9 Text-Wrapper-1.05.tar.gz
+"
diff --git a/main/perl-time-hires/APKBUILD b/main/perl-time-hires/APKBUILD
index 2702486011a..8645529a083 100644
--- a/main/perl-time-hires/APKBUILD
+++ b/main/perl-time-hires/APKBUILD
@@ -1,46 +1,39 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Valery Kartel <valery.kartel@gmail.com>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-time-hires
-_pkgname=Time-HiRes
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=Time-HiRes
pkgver=1.9764
-pkgrel=3
+pkgrel=7
pkgdesc="High resolution alarm, sleep, gettimeofday, interval timers"
-url="http://search.cpan.org/~jhi/Time-HiRes/"
+url="https://metacpan.org/release/Time-HiRes/"
arch="all"
-license="GPL-1.0-only Artistic-1.0-Perl"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
makedepends="perl-dev"
-subpackages="$pkgname-doc"
-options="!check" # see comment below
source="https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC/Time-HiRes-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
+check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make
+ make test
}
package() {
make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
-}
-
-check() {
- # tests depends on hi res support of timestamps in filesystem
- # we cannot guarantee that we have that so skip tests for now
- # make test
- return 0
-}
-doc() {
- default_doc
- replaces="perl-doc"
+ # man pages are already provided by perl-doc
+ rm -rf "$pkgdir"/usr/share/man
}
-sha512sums="2c250784e0375539690173eaf19390389c59c218dade036ff150e2e4445e7916438d9598000bc3dbffaa2da5ee183850dedf0b6d9c99d76bfc75bb23fa7022bc Time-HiRes-1.9764.tar.gz"
+sha512sums="
+2c250784e0375539690173eaf19390389c59c218dade036ff150e2e4445e7916438d9598000bc3dbffaa2da5ee183850dedf0b6d9c99d76bfc75bb23fa7022bc Time-HiRes-1.9764.tar.gz
+"
diff --git a/main/perl-time-parsedate/APKBUILD b/main/perl-time-parsedate/APKBUILD
index 4e492bd9acb..39896d5a915 100644
--- a/main/perl-time-parsedate/APKBUILD
+++ b/main/perl-time-parsedate/APKBUILD
@@ -1,19 +1,21 @@
-# Automatically generated by apkbuild-cpan, template 2
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Timothy Legge <timlegge@gmail.com>
# Maintainer: Timothy Legge <timlegge@gmail.com>
pkgname=perl-time-parsedate
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Time-ParseDate
pkgver=2015.103
-pkgrel=4
+pkgrel=6
pkgdesc="Parse and format time values"
+replaces="perl-time-modules"
url="https://metacpan.org/release/Time-ParseDate/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/M/MU/MUIR/modules/Time-ParseDate-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-replaces=perl-time-modules
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
@@ -31,4 +33,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="3c5bf09198289a889e606c806fbb225e729fa1a0af6d04056b75c4c61110e6135fce0eccd8c58a2f1db364d7d624b417f4960bdfa376d2fb9b16ecf090879fd0 Time-ParseDate-2015.103.tar.gz"
+sha512sums="
+3c5bf09198289a889e606c806fbb225e729fa1a0af6d04056b75c4c61110e6135fce0eccd8c58a2f1db364d7d624b417f4960bdfa376d2fb9b16ecf090879fd0 Time-ParseDate-2015.103.tar.gz
+"
diff --git a/main/perl-timedate/APKBUILD b/main/perl-timedate/APKBUILD
index d3f2f31934c..52d6f8f6929 100644
--- a/main/perl-timedate/APKBUILD
+++ b/main/perl-timedate/APKBUILD
@@ -1,35 +1,30 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-timedate
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=TimeDate
pkgver=2.33
-pkgrel=1
-pkgdesc="Perl TimeDate module"
-url="https://metacpan.org/release/TimeDate"
+pkgrel=4
+pkgdesc="Perl module for TimeDate"
+provides="perl-time-date=$pkgver-r$pkgrel perl-date-format=$pkgver-r$pkgrel"
+replaces="perl-time-date perl-date-format"
+url="https://metacpan.org/release/TimeDate/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/A/AT/ATOOMIC/TimeDate-$pkgver.tar.gz"
-
-replaces="perl-time-date"
-provides="perl-time-date=$pkgver"
-
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -38,4 +33,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="a3a20a0d9439e68bf621c66fad0598e6257345727be79c87c7cc99994b3a58eb738787fedb720beb069e9758ad1347c15313f64411806dd0f4dfbcca5061c820 TimeDate-2.33.tar.gz"
+sha512sums="
+a3a20a0d9439e68bf621c66fad0598e6257345727be79c87c7cc99994b3a58eb738787fedb720beb069e9758ad1347c15313f64411806dd0f4dfbcca5061c820 TimeDate-2.33.tar.gz
+"
diff --git a/main/perl-tk/APKBUILD b/main/perl-tk/APKBUILD
index 9447924d0c1..216fc8e127b 100644
--- a/main/perl-tk/APKBUILD
+++ b/main/perl-tk/APKBUILD
@@ -5,11 +5,11 @@ pkgname=perl-tk
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Tk
pkgver=804.036
-pkgrel=2
+pkgrel=5
pkgdesc="Tk - a Graphical User Interface Toolkit"
url="https://metacpan.org/release/Tk/"
arch="all"
-license="unrestricted"
+license="TCL AND HPND-Pbmplus AND CC-BY-SA-3.0 AND MIT-open-group AND MIT"
depends="perl"
makedepends="perl-dev libx11-dev libpng-dev"
subpackages="$pkgname-doc"
diff --git a/main/perl-tree-dag_node/APKBUILD b/main/perl-tree-dag_node/APKBUILD
index 3591306dbd4..181a89a7079 100644
--- a/main/perl-tree-dag_node/APKBUILD
+++ b/main/perl-tree-dag_node/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-tree-dag_node
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Tree-DAG_Node
pkgver=1.32
-pkgrel=0
+pkgrel=1
pkgdesc="An N-ary tree"
url="https://metacpan.org/release/Tree-DAG_Node/"
arch="noarch"
diff --git a/main/perl-try-tiny/APKBUILD b/main/perl-try-tiny/APKBUILD
index 4524149c742..0115df9cc7c 100644
--- a/main/perl-try-tiny/APKBUILD
+++ b/main/perl-try-tiny/APKBUILD
@@ -1,31 +1,30 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Sheila Aman <sheila@vulpine.house>
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-try-tiny
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Try-Tiny
pkgver=0.31
-pkgrel=0
-pkgdesc="minimal try/catch with proper preservation of \$@"
-url="https://search.cpan.org/dist/Try-Tiny/"
+pkgrel=2
+pkgdesc="Minimal try/catch with proper preservation of \$@"
+url="https://metacpan.org/release/Try-Tiny/"
arch="noarch"
license="MIT"
-depends="perl perl-capture-tiny perl-pod-coverage"
-makedepends="grep perl-sub-name"
+depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://search.cpan.org/CPAN/authors/id/E/ET/ETHER/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/Try-Tiny-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
diff --git a/main/perl-type-tiny/APKBUILD b/main/perl-type-tiny/APKBUILD
index aafcb76221a..777e58b810e 100644
--- a/main/perl-type-tiny/APKBUILD
+++ b/main/perl-type-tiny/APKBUILD
@@ -4,8 +4,8 @@
pkgname=perl-type-tiny
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Type-Tiny
-pkgver=1.014000
-pkgrel=0
+pkgver=2.004000
+pkgrel=1
pkgdesc="tiny, yet Moo(se)-compatible type constraint"
url="https://metacpan.org/release/Type-Tiny/"
arch="noarch"
@@ -33,5 +33,5 @@ package() {
}
sha512sums="
-afd9fc38f64e90a1632177f6967aefe2107c264cd54b14216059be5e91ae34ba76aa0f15887212b7adeaabc558d01fd75762085fa53556d9a6a2adf5726608cf Type-Tiny-1.014000.tar.gz
+a28a0fdfe48c8ce7f7313bfa6645094337dfb12d76401d9947a649763379a912f480ff418f0023d1e0c5851ffa347823669192a9eb8081341db7525d84c82220 Type-Tiny-2.004000.tar.gz
"
diff --git a/main/perl-universal-can/APKBUILD b/main/perl-universal-can/APKBUILD
index 78b6b884704..8778e46c7ea 100644
--- a/main/perl-universal-can/APKBUILD
+++ b/main/perl-universal-can/APKBUILD
@@ -1,18 +1,19 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor:
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-universal-can
-_pkgname=UNIVERSAL-can
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=UNIVERSAL-can
pkgver=1.20140328
-pkgrel=1
+pkgrel=3
pkgdesc="work around buggy code calling UNIVERSAL::can() as a function"
url="https://metacpan.org/release/UNIVERSAL-can/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/C/CH/CHROMATIC/UNIVERSAL-can-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
@@ -30,4 +31,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="6fb032b968fa87d95e6fa6897575c6374a2d43fe9d505e339e593bad398b444b9818c8214fe7ac67fa2cfa1013e5c6337c507c3ea6104c711e3ee3d5635f0bc0 UNIVERSAL-can-1.20140328.tar.gz"
+sha512sums="
+6fb032b968fa87d95e6fa6897575c6374a2d43fe9d505e339e593bad398b444b9818c8214fe7ac67fa2cfa1013e5c6337c507c3ea6104c711e3ee3d5635f0bc0 UNIVERSAL-can-1.20140328.tar.gz
+"
diff --git a/main/perl-universal-isa/APKBUILD b/main/perl-universal-isa/APKBUILD
index a2b53590ee4..3bbf8663990 100644
--- a/main/perl-universal-isa/APKBUILD
+++ b/main/perl-universal-isa/APKBUILD
@@ -1,18 +1,19 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor:
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-universal-isa
-_pkgname=UNIVERSAL-isa
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=UNIVERSAL-isa
pkgver=1.20171012
-pkgrel=1
+pkgrel=3
pkgdesc="Attempt to recover from people calling UNIVERSAL::isa as a function"
url="https://metacpan.org/release/UNIVERSAL-isa/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/UNIVERSAL-isa-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
@@ -30,4 +31,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="abc2943b1706c681734cc03d995859a7d853741ab2013b530aa9f290d8625c5074ec594062c97760044cc1261a20448b9f059287a8f3dae7ba8c303397610518 UNIVERSAL-isa-1.20171012.tar.gz"
+sha512sums="
+abc2943b1706c681734cc03d995859a7d853741ab2013b530aa9f290d8625c5074ec594062c97760044cc1261a20448b9f059287a8f3dae7ba8c303397610518 UNIVERSAL-isa-1.20171012.tar.gz
+"
diff --git a/main/perl-unix-syslog/APKBUILD b/main/perl-unix-syslog/APKBUILD
index 42cc0bb4967..318030313a6 100644
--- a/main/perl-unix-syslog/APKBUILD
+++ b/main/perl-unix-syslog/APKBUILD
@@ -1,31 +1,34 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=perl-unix-syslog
-_realname=Unix-Syslog
+_pkgreal=Unix-Syslog
pkgver=1.1
-pkgrel=17
+pkgrel=21
pkgdesc="Perl interface to the UNIX syslog(3) calls"
-url="http://search.cpan.org/~mharnisch/Unix-Syslog/"
+url="https://metacpan.org/dist/Unix-Syslog"
arch="all"
license="Artistic-2.0"
depends="perl"
makedepends="perl-dev"
-install=
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/M/MH/MHARNISCH/$_realname-$pkgver.tar.gz"
-builddir="$srcdir/$_realname-$pkgver"
+source="https://cpan.metacpan.org/authors/id/M/MH/MHARNISCH/Unix-Syslog-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
build() {
- cd "$builddir"
PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
make
}
+check() {
+ make test
+}
+
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
# creates file collision among perl modules
find "$pkgdir" -name perllocal.pod -delete
}
-sha512sums="cb1ea3846844b7c82e081f3bb778c698b681d1875b83201b1beef2267a288890c6fc62af8edbfbc04553a9caa1ebafa429130e784f31c9531719b11a4c47c3ba Unix-Syslog-1.1.tar.gz"
+sha512sums="
+cb1ea3846844b7c82e081f3bb778c698b681d1875b83201b1beef2267a288890c6fc62af8edbfbc04553a9caa1ebafa429130e784f31c9531719b11a4c47c3ba Unix-Syslog-1.1.tar.gz
+"
diff --git a/main/perl-uri/APKBUILD b/main/perl-uri/APKBUILD
index 68bba845867..8b32466ae03 100644
--- a/main/perl-uri/APKBUILD
+++ b/main/perl-uri/APKBUILD
@@ -1,25 +1,27 @@
-# Automatically generated by apkbuild-cpan, template 3
+# Automatically generated by apkbuild-cpan, template 4
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-uri
+pkgver=5.28
+pkgrel=0
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=URI
-pkgver=5.10
-pkgrel=0
pkgdesc="Uniform Resource Identifiers (absolute and relative)"
+replaces="perl-uri-escape"
url="https://metacpan.org/release/URI/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-checkdepends="perl-test-needs"
+checkdepends="perl-test-warnings perl-test-needs perl-test-fatal"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/O/OA/OALDERS/URI-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-replaces="perl-uri-escape"
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
make
}
@@ -30,11 +32,8 @@ check() {
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-
-
sha512sums="
-6ce53b258c2f1115e58ca858beec0c055452993b83abf3ebf23784e00fcbe636f3b7a460a2016923f9fab0e0bbd112475048eb9671d6d1e1c3b4db33a503efb5 URI-5.10.tar.gz
+ffa2a560641cbb81f720d1b572371a237826627974735684e130ad42c5184cd143c4cd337d600346258892165f3b658cc94711d189a870f990ff8148c72968e5 URI-5.28.tar.gz
"
diff --git a/main/perl-variable-magic/APKBUILD b/main/perl-variable-magic/APKBUILD
index e14b909cd46..b5d8e76c3c6 100644
--- a/main/perl-variable-magic/APKBUILD
+++ b/main/perl-variable-magic/APKBUILD
@@ -1,39 +1,39 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 4
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-variable-magic
+pkgver=0.64
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Variable-Magic
-pkgver=0.62
-pkgrel=6
-pkgdesc="Associate user-defined magic to variables from Perl."
+pkgdesc="Associate user-defined magic to variables from Perl"
url="https://metacpan.org/release/Variable-Magic/"
arch="all"
-license="GPL PerlArtistic"
-cpandepends=""
-cpanmakedepends=" "
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/V/VP/VPIT/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/V/VP/VPIT/Variable-Magic-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
+ make DESTDIR="$pkgdir" install
}
-sha512sums="fdaad8ab1a16a4723e30a155086f7f9ecad60b021b0ca5d449a0bc001b858a53e2857cfdc3fc4e3dcc28e2f59a14f3531afd93e3f71fda3b8fcaa8bc50d0c380 Variable-Magic-0.62.tar.gz"
+sha512sums="
+ba7eead52b9684a7ce0112a6b29b9739d52bd111d7985cf6b721a3d193d7a0513205c3547ec9504239cf4a3bd50de844cb6f7bb83906118c12b8d7b92c455a6a Variable-Magic-0.64.tar.gz
+"
diff --git a/main/perl-want/APKBUILD b/main/perl-want/APKBUILD
index ff28288251b..3d396e33e5b 100644
--- a/main/perl-want/APKBUILD
+++ b/main/perl-want/APKBUILD
@@ -1,39 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-want
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=Want
pkgver=0.29
-pkgrel=7
-pkgdesc="unknown"
+pkgrel=10
+pkgdesc="Perl module for Want"
url="https://metacpan.org/release/Want/"
arch="all"
-license="GPL PerlArtistic"
-cpandepends=""
-cpanmakedepends=" "
-depends="$cpandepends"
-makedepends="perl-dev $cpanmakedepends"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+makedepends="perl-dev"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/R/RO/ROBIN/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/R/RO/ROBIN/Want-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
-_builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
+ make
}
-build() {
- cd "$_builddir"
- export CFLAGS=`perl -MConfig -E 'say $Config{ccflags}'`
- make && make test
+check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="08df985de16b5e9dd67d6ed38d319da2511e92098f95a861a5a695eed8d77eaf412671b626e4da29b536147ad4da4a8cfdfd789ef204dac240073091481f3c1a Want-0.29.tar.gz"
+sha512sums="
+08df985de16b5e9dd67d6ed38d319da2511e92098f95a861a5a695eed8d77eaf412671b626e4da29b536147ad4da4a8cfdfd789ef204dac240073091481f3c1a Want-0.29.tar.gz
+"
diff --git a/main/perl-www-robotrules/APKBUILD b/main/perl-www-robotrules/APKBUILD
index 3d8d38db3c3..c0d58e3940c 100644
--- a/main/perl-www-robotrules/APKBUILD
+++ b/main/perl-www-robotrules/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-www-robotrules
pkgver=6.02
-pkgrel=3
+pkgrel=5
pkgdesc="WWW::RobotRules perl module"
url="https://metacpan.org/release/WWW-RobotRules/"
arch="noarch"
-license="GPL-2.0 or Artistic"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl perl-uri"
replaces="perl-libwww"
subpackages="$pkgname-doc"
diff --git a/main/perl-x10/APKBUILD b/main/perl-x10/APKBUILD
index af5774d1edd..01d10d013e9 100644
--- a/main/perl-x10/APKBUILD
+++ b/main/perl-x10/APKBUILD
@@ -1,10 +1,10 @@
# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-x10
_pkgreal=X10
pkgver=0.04
-pkgrel=4
+pkgrel=6
pkgdesc="Perl module for X10"
url="https://metacpan.org/release/X10/"
arch="noarch"
diff --git a/main/perl-xml-namespacesupport/APKBUILD b/main/perl-xml-namespacesupport/APKBUILD
index d7c0317f37d..2ff7b6ef267 100644
--- a/main/perl-xml-namespacesupport/APKBUILD
+++ b/main/perl-xml-namespacesupport/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-xml-namespacesupport
pkgver=1.12
-pkgrel=3
+pkgrel=5
pkgdesc="Generic namespace helpers (ported from SAX2)"
url="https://metacpan.org/release/XML-NamespaceSupport"
arch="noarch"
-license="GPL"
+license="GPL-1.0-or-later"
depends="perl"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/P/PE/PERIGRIN/XML-NamespaceSupport-$pkgver.tar.gz"
diff --git a/main/perl-xml-parser/APKBUILD b/main/perl-xml-parser/APKBUILD
index 4bf7b3fdb26..98326450b57 100644
--- a/main/perl-xml-parser/APKBUILD
+++ b/main/perl-xml-parser/APKBUILD
@@ -1,40 +1,36 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-xml-parser
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=XML-Parser
-pkgver=2.46
-pkgrel=3
+pkgver=2.47
+pkgrel=0
pkgdesc="A perl module for parsing XML documents"
-url="https://metacpan.org/release/XML-Parser"
+url="https://metacpan.org/release/XML-Parser/"
arch="all"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-cpandepends="perl-libwww"
-depends="$cpandepends"
+depends="perl perl-libwww"
makedepends="perl-dev expat-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/T/TO/TODDR/XML-Parser-$pkgver.tar.gz"
-
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- cd "$builddir"
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
- cd "$builddir"
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
- cd "$builddir"
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
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/main/perl-xml-rss/APKBUILD b/main/perl-xml-rss/APKBUILD
index 7ceff986012..b049fdbadb9 100644
--- a/main/perl-xml-rss/APKBUILD
+++ b/main/perl-xml-rss/APKBUILD
@@ -4,14 +4,14 @@
pkgname=perl-xml-rss
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=XML-RSS
-pkgver=1.62
+pkgver=1.63
pkgrel=0
pkgdesc="creates and updates RSS files"
url="https://metacpan.org/release/XML-RSS/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl perl-datetime-format-w3cdtf perl-xml-parser perl-html-parser perl-datetime-format-mail"
-makedepends="perl-dev perl-module-build"
+makedepends="perl-module-build"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/S/SH/SHLOMIF/XML-RSS-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
@@ -31,4 +31,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="fc075e7b7ccd168c3a915170adcf63cc84cb0e465f9c88b52800c747f8363719b60e1606ce77bc910915d9b0fd1838ae4e93f1699389e08a51836f87b03bbfd5 XML-RSS-1.62.tar.gz"
+sha512sums="
+ce094ed0018d639a8a4bc88b3a7a5212f86e93426145045ef906e189ff0495556749d12e6b88abc13e5baa9ae6b2bb471048dd238f826ebe37569ae4ebba3115 XML-RSS-1.63.tar.gz
+"
diff --git a/main/perl-xml-sax-base/APKBUILD b/main/perl-xml-sax-base/APKBUILD
index 31a4ce47b61..919ab8ed38c 100644
--- a/main/perl-xml-sax-base/APKBUILD
+++ b/main/perl-xml-sax-base/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
-# Maintainer:
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=perl-xml-sax-base
pkgver=1.09
-pkgrel=3
+pkgrel=5
pkgdesc="Base class SAX Drivers and Filters"
url="https://metacpan.org/release/XML-SAX-Base"
arch="noarch"
diff --git a/main/perl-xml-sax/APKBUILD b/main/perl-xml-sax/APKBUILD
index 44ab900c3e1..27cd56bcca6 100644
--- a/main/perl-xml-sax/APKBUILD
+++ b/main/perl-xml-sax/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
-# Maintainer:
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=perl-xml-sax
pkgver=1.02
-pkgrel=1
+pkgrel=3
pkgdesc="Simple API for XML"
url="https://metacpan.org/release/XML-SAX"
arch="noarch"
@@ -29,4 +29,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="bb30ddbbcf27803825d2f0936257e102999a197cb14bd77fa8b7a469f3a24fb7d861ef4eb03230e5581e4ed88beb8676cbb907b2cb63e9ef1a64b2c211ebdc5a XML-SAX-1.02.tar.gz"
+sha512sums="
+bb30ddbbcf27803825d2f0936257e102999a197cb14bd77fa8b7a469f3a24fb7d861ef4eb03230e5581e4ed88beb8676cbb907b2cb63e9ef1a64b2c211ebdc5a XML-SAX-1.02.tar.gz
+"
diff --git a/main/perl-xml-simple/APKBUILD b/main/perl-xml-simple/APKBUILD
index ac2b5d560cb..133bbe5f308 100644
--- a/main/perl-xml-simple/APKBUILD
+++ b/main/perl-xml-simple/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=perl-xml-simple
pkgver=2.25
-pkgrel=2
+pkgrel=3
pkgdesc="Simple XML parser for Perl"
url="https://metacpan.org/release/XML-Simple"
arch="noarch"
diff --git a/main/perl-xml-xpath/APKBUILD b/main/perl-xml-xpath/APKBUILD
index 61d054d2ea6..c5ba392ff86 100644
--- a/main/perl-xml-xpath/APKBUILD
+++ b/main/perl-xml-xpath/APKBUILD
@@ -1,14 +1,13 @@
-# Automatically generated by apkbuild-cpan, template 2
-# Contributor: Sheila Aman <sheila@vulpine.house>
-# Maintainer: Sheila Aman <sheila@vulpine.house>
+# Contributor: Síle Ekaterin Liszka <sheila@vulpine.house>
+# Maintainer: Síle Ekaterin Liszka <sheila@vulpine.house>
pkgname=perl-xml-xpath
_pkgreal=XML-XPath
-pkgver=1.47
-pkgrel=0
+pkgver=1.48
+pkgrel=1
pkgdesc="Parse and evaluate XPath statements."
url="https://metacpan.org/release/XML-XPath/"
arch="noarch"
-license="Artistic-2.0"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
depends="perl perl-xml-parser"
makedepends="perl-path-tiny"
subpackages="$pkgname-doc"
@@ -30,5 +29,5 @@ package() {
}
sha512sums="
-823cd309c185536a37ada566d4f9f445e9fb83b4e7cc442a9c4e141f6ebb7c911abec260c015ea9d3c6cbc06139a607310746fec87347a591d87375b92c5e859 XML-XPath-1.47.tar.gz
+c7347dd6e052e0145577ee624da5cef2ee8088ea434351ea2461e0bb3746c114fe571af1bc971333e046feb7dab808c6c84ab385310acbc9e8a9a89025969e48 XML-XPath-1.48.tar.gz
"
diff --git a/main/perl-xs-parse-keyword/APKBUILD b/main/perl-xs-parse-keyword/APKBUILD
new file mode 100644
index 00000000000..46a7aa6efb6
--- /dev/null
+++ b/main/perl-xs-parse-keyword/APKBUILD
@@ -0,0 +1,37 @@
+# Automatically generated by apkbuild-cpan, template 3
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+pkgname=perl-xs-parse-keyword
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
+_pkgreal=XS-Parse-Keyword
+pkgver=0.39
+pkgrel=0
+pkgdesc="XS functions to assist in parsing keyword syntax"
+url="https://metacpan.org/release/XS-Parse-Keyword/"
+arch="all"
+license="GPL-1.0-or-later OR Artistic-1.0-Perl"
+depends="perl"
+makedepends="perl-dev perl-module-build perl-extutils-cchecker"
+checkdepends="perl-test2-suite"
+subpackages="$pkgname-doc"
+source="https://cpan.metacpan.org/authors/id/P/PE/PEVANS/XS-Parse-Keyword-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgreal-$pkgver"
+
+build() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ perl Build.PL --installdirs=vendor
+ ./Build
+}
+
+check() {
+ ./Build test
+}
+
+package() {
+ ./Build install --destdir="$pkgdir"
+ find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
+}
+
+sha512sums="
+41ac31707b473d729a7e63d4607caa77fca9da00580b931576361416d78002f56acd04a0fee0c4dd09ffc1796a914f6ae934bdbce8fcc4c9222064c6e419b7ce XS-Parse-Keyword-0.39.tar.gz
+"
diff --git a/main/perl-yaml-libyaml/APKBUILD b/main/perl-yaml-libyaml/APKBUILD
index d890107e5c7..59727ac686d 100644
--- a/main/perl-yaml-libyaml/APKBUILD
+++ b/main/perl-yaml-libyaml/APKBUILD
@@ -1,44 +1,48 @@
-# Automatically generated by apkbuild-cpan, template 2
+# Automatically generated by apkbuild-cpan, template 4
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Maintainer: Valery Kartel <valery.kartel@gmail.com>
pkgname=perl-yaml-libyaml
+pkgver=0.89
+pkgrel=0
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=YAML-LibYAML
-pkgver=0.83
-pkgrel=1
pkgdesc="Perl YAML Serialization using XS and libyaml"
-url="https://metacpan.org/release/YAML-LibYAML"
+provides="perl-yaml-xs=$pkgver-r$pkgrel"
+url="https://metacpan.org/release/YAML-LibYAML/"
arch="all"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
-provides="perl-yaml-xs=$pkgver-r$pkgrel"
depends="perl"
makedepends="perl-dev"
subpackages="$pkgname-doc"
source="https://cpan.metacpan.org/authors/id/T/TI/TINITA/YAML-LibYAML-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- default_prepare
-
+build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL \
+ INSTALLDIRS=vendor \
+ NO_PACKLIST=1 \
+ NO_PERLLOCAL=1
+ make
}
-build() {
+check() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make
+ make test
}
package() {
make DESTDIR="$pkgdir" install
- find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-check() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- make test
+doc() {
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
+ done
+ default_doc
}
sha512sums="
-4d70846dae3f5e18e96da786037a6cf09cf06ebdc472243406bf828021071ebaf6f9ac0bab6a88c5208ffeb72c7012cbc054ebf5d6be0f562084db68d3de7451 YAML-LibYAML-0.83.tar.gz
+24697f9625534facf23c22a96af26468c48cc91225af9879baa3039db8158fe0ff740acea527d33651d90e1c8ce24e804b02744812b72aae7b28aa6d88ba68c7 YAML-LibYAML-0.89.tar.gz
"
diff --git a/main/perl-yaml-syck/APKBUILD b/main/perl-yaml-syck/APKBUILD
index 235bf9942c5..c55f1d838b3 100644
--- a/main/perl-yaml-syck/APKBUILD
+++ b/main/perl-yaml-syck/APKBUILD
@@ -5,7 +5,7 @@ pkgname=perl-yaml-syck
#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=YAML-Syck
pkgver=1.34
-pkgrel=2
+pkgrel=4
pkgdesc="Fast, lightweight YAML loader and dumper"
url="https://metacpan.org/release/YAML-Syck/"
arch="all"
diff --git a/main/perl-yaml-tiny/APKBUILD b/main/perl-yaml-tiny/APKBUILD
index d715f587d20..bec8f5fe525 100644
--- a/main/perl-yaml-tiny/APKBUILD
+++ b/main/perl-yaml-tiny/APKBUILD
@@ -1,37 +1,37 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-yaml-tiny
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=YAML-Tiny
-pkgver=1.73
-pkgrel=2
+pkgver=1.74
+pkgrel=1
pkgdesc="Read/Write YAML files with as little code as possible"
url="https://metacpan.org/release/YAML-Tiny/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
-makedepends="perl-json-maybexs"
+makedepends="perl-dev"
+checkdepends="perl-json-maybexs"
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/$_pkgreal-$pkgver.tar.gz"
-
+source="https://cpan.metacpan.org/authors/id/E/ET/ETHER/YAML-Tiny-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-prepare() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
-
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
- make test
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ make test
}
package() {
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="5999e220025aa8076e5e0e9e73e80c2da21660e77f6744d73e8e29962221d02d33a36e9829c44abf7d4f45abae069d8e121c8019bd1600b7e64db5e54efd9987 YAML-Tiny-1.73.tar.gz"
+sha512sums="
+2da59bf583b09a60e8e1bac7c21fc4300ae3ee2092ffd77cbf3778c65c7d0bdf68fa3616665d276f4d4df2437526d36d497ac53be79baa182f84f37640bfcad4 YAML-Tiny-1.74.tar.gz
+"
diff --git a/main/perl-yaml/APKBUILD b/main/perl-yaml/APKBUILD
index d7d962ccebd..14b529226d2 100644
--- a/main/perl-yaml/APKBUILD
+++ b/main/perl-yaml/APKBUILD
@@ -1,32 +1,30 @@
-# Automatically generated by apkbuild-cpan, template 1
+# Automatically generated by apkbuild-cpan, template 3
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=perl-yaml
+#_pkgreal is used by apkbuild-cpan to find modules at MetaCpan
_pkgreal=YAML
-pkgver=1.30
-pkgrel=2
-pkgdesc="YAML Ain't Markup Language (tm)"
-url="https://metacpan.org/release/YAML"
+pkgver=1.31
+pkgrel=0
+pkgdesc="YAML Ain't Markup Language™"
+url="https://metacpan.org/release/YAML/"
arch="noarch"
license="GPL-1.0-or-later OR Artistic-1.0-Perl"
depends="perl"
checkdepends="perl-test-yaml perl-test-deep"
-options="!check" # multiple test dependencies are in community and several packages in main depends on it
subpackages="$pkgname-doc"
-source="https://cpan.metacpan.org/authors/id/T/TI/TINITA/$_pkgreal-$pkgver.tar.gz"
+source="https://cpan.metacpan.org/authors/id/I/IN/INGY/YAML-$pkgver.tar.gz"
builddir="$srcdir/$_pkgreal-$pkgver"
-
-prepare() {
- export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
-}
+options="!check" # checkdepends in community
build() {
export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
+ PERL_MM_USE_DEFAULT=1 perl -I. Makefile.PL INSTALLDIRS=vendor
make
}
check() {
+ export CFLAGS=$(perl -MConfig -E 'say $Config{ccflags}')
make test
}
@@ -35,4 +33,6 @@ package() {
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
}
-sha512sums="f73f2d9f3cd96edeb05ec098c859755dd6b80bf1a00049f8de2889ebbf4f41df9fcc1540116afa8648e965a0b780d993f256af2c5ffc03a9f1ba7df1f0cc8941 YAML-1.30.tar.gz"
+sha512sums="
+7f6af46348c4288541b611cb0d0f6d63a3d671417cadb3e9d60fed1c2c7664b35202b3ee8d15ef68400758604a3b2cb8a04c11b3e9badfd6f9222cf24f4a9edc YAML-1.31.tar.gz
+"
diff --git a/main/perl/APKBUILD b/main/perl/APKBUILD
index 49b9a720e2e..b4150eb2a3c 100644
--- a/main/perl/APKBUILD
+++ b/main/perl/APKBUILD
@@ -2,27 +2,32 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Contributor: Valery Kartel <valery.kartel@gmail.com>
pkgname=perl
-pkgver=5.36.0
+pkgver=5.38.2
pkgrel=0
pkgdesc="Larry Wall's Practical Extraction and Report Language"
url="https://www.perl.org/"
arch="all"
-license="Artistic-Perl OR GPL-1.0-or-later"
-options="!fhs"
-depends_dev="perl-utils"
+license="Artistic-1.0-Perl OR GPL-1.0-or-later"
+depends_dev="perl-utils=$pkgver-r$pkgrel"
makedepends="bzip2-dev zlib-dev"
subpackages="$pkgname-doc $pkgname-dev $pkgname-utils::noarch miniperl"
-source="https://www.cpan.org/src/5.0/perl-$pkgver.tar.gz
- musl-locale.patch
+source="https://www.cpan.org/src/5.0/perl-$pkgver.tar.xz
+ digest-sha-cflags.patch
musl-skip-dst-test.patch
skip-test-due-to-busybox-ps.patch
musl-stack-size.patch
- zlib-no-zsolo.patch
"
-# Tests too slow, and some failures on mips64.
-[ "$CARCH" = "mips64" ] && options="$options !check"
+# creates empty usr/local/{lib,share} for local sitedirs
+options="!fhs"
+
+# in perl core, removed from main/perl-scalar-list-utils
+provides="
+ perl-scalar-list-utils=$pkgver-r$pkgrel
+ "
# secfixes:
+# 5.38.1-r0:
+# - CVE-2023-47038
# 5.34.0-r1:
# - CVE-2021-36770
# 5.30.3-r0:
@@ -44,16 +49,13 @@ source="https://www.cpan.org/src/5.0/perl-$pkgver.tar.gz
# - CVE-2017-12837
# - CVE-2017-12883
-
_privlib=/usr/share/perl5/core_perl
_archlib=/usr/lib/perl5/core_perl
prepare() {
+ # most sources are readonly but we patch some
chmod +w "$builddir"/*.c
default_prepare
- sed -e 's/less -R/less/g' \
- -e 's/libswanted="\(.*\) nsl\(.*\)"/libswanted="\1\2"/g' \
- -i ./Configure
# Ensure that we never accidentally bundle zlib or bzip2
rm -rf cpan/Compress-Raw-Zlib/zlib-src
@@ -62,15 +64,16 @@ prepare() {
}
build() {
- BUILD_ZLIB=0
- BUILD_BZIP2=0
- BZIP2_LIB=/usr/lib
- BZIP2_INCLUDE=/usr/include
+ export BUILD_ZLIB=0
+ export BUILD_BZIP2=0
+ export BZIP2_LIB=/usr/lib
+ export BZIP2_INCLUDE=/usr/include
+
+ # language runtime
+ export CFLAGS="$CFLAGS -O2 -flto=auto"
- export BUILD_ZLIB BUILD_BZIP2 BZIP2_LIB BZIP2_INCLUDE
./Configure -des \
-Dcccdlflags='-fPIC' \
- -Dcccdlflags='-fPIC' \
-Dccdlflags='-rdynamic' \
-Dprefix=/usr \
-Dprivlib=$_privlib \
@@ -95,6 +98,8 @@ build() {
-Dman3ext='3pm' \
-Dcf_by='Alpine' \
-Ud_csh \
+ -Ud_fpos64_t \
+ -Ud_off64_t \
-Dusenm
make libperl.so && make
}
@@ -113,75 +118,78 @@ check() {
package() {
make DESTDIR="$pkgdir" install
- if [ -n "$(find $pkgdir/usr/local -type f)" ]; then
+
+ # omit global flto afterward
+ # perl saves compile-time cflags and applies them to every future build
+ sed -i \
+ -e "s| -flto=auto||g" \
+ "$pkgdir"/usr/lib/perl5/core_perl/Config_heavy.pl
+
+ if [ -n "$(find "$pkgdir"/usr/local -type f)" ]; then
error "files found under /usr/local"
return 1
fi
+
+ install -Dm755 miniperl \
+ -t "$pkgdir"/usr/bin/
+
+ # delete files starting with a dot,
+ # but really just usr/lib/perl5/core_perl/.packlist
find "$pkgdir" -name '.*' -delete
}
miniperl() {
- install -Dm755 "$builddir"/$subpkgname \
- "$subpkgdir"/usr/bin/$subpkgname
+ amove usr/bin/miniperl
}
doc() {
- default_doc
- local file; for file in $(find "$pkgdir" -name "*.pod"); do
- file=${file#$pkgdir/}
- mkdir -p "$subpkgdir"/${file%/*}
- mv "$pkgdir"/$file "$subpkgdir"/$file
+ local file; find "$pkgdir" -name "*.pod" | while read -r file; do
+ amove "${file#"$pkgdir"}"
done
+ default_doc
}
dev() {
- mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/$_archlib "$subpkgdir"/$_privlib
- mv "$pkgdir"/$_archlib/Devel "$subpkgdir"/$_archlib/
- mv "$pkgdir"/$_privlib/Encode "$subpkgdir"/$_privlib/
-
- mv "$pkgdir"/usr/bin/h2xs \
- "$pkgdir"/usr/bin/perlivp \
- "$pkgdir"/usr/bin/enc2xs \
- "$pkgdir"/usr/bin/xsubpp \
- "$subpkgdir"/usr/bin/
+ amove \
+ $_archlib/Devel \
+ $_privlib/Encode \
+ usr/bin/h2xs \
+ usr/bin/perlivp \
+ usr/bin/enc2xs \
+ usr/bin/xsubpp
default_dev
}
utils() {
pkgdesc="$pkgdesc (misc utilities)"
- depends="$pkgname"
- mkdir -p "$subpkgdir"/usr/bin
- local file
- for file in \
- corelist \
- cpan \
- encguess \
- libnetcfg \
- h2ph \
- instmodsh \
- json_pp \
- perlbug \
- perlthanks \
- piconv \
- pl2pm \
- prove \
- ptar \
- ptardiff \
- ptargrep \
- shasum \
- splain \
- zipdetails
- do
- mv "$pkgdir"/usr/bin/$file "$subpkgdir"/usr/bin/
- done
+ depends="$pkgname=$pkgver-r$pkgrel"
+
+ amove \
+ usr/bin/corelist \
+ usr/bin/cpan \
+ usr/bin/encguess \
+ usr/bin/libnetcfg \
+ usr/bin/h2ph \
+ usr/bin/instmodsh \
+ usr/bin/json_pp \
+ usr/bin/perlbug \
+ usr/bin/perlthanks \
+ usr/bin/piconv \
+ usr/bin/pl2pm \
+ usr/bin/prove \
+ usr/bin/ptar \
+ usr/bin/ptardiff \
+ usr/bin/ptargrep \
+ usr/bin/shasum \
+ usr/bin/splain \
+ usr/bin/zipdetails
}
sha512sums="
-76f2dbc764443c66bc3bfcc214a7c851f155de75b0f94a2923e10caa6ec9b8fd5aaafcfa65964cd3584eb7a6e4fea766abb5e0e840c5ae4237587ee047cd82dd perl-5.36.0.tar.gz
-a78b5fb1a2b6f60b401329cfd2d8349d4fdcc19628cde0e9b840b82e1a02e705f7d7413fe206aa13ed714ab93a65b62ac3d85dfd526ca8048621d5d89b22f0ef musl-locale.patch
+0ca51e447c7a18639627c281a1c7ae6662c773745ea3c86bede46336d5514ecc97ded2c61166e1ac15635581489dc596368907aa3a775b34db225b76d7402d10 perl-5.38.2.tar.xz
+59afa4c166e4808d355e19cd70748540ffce9da5c6919c71648be7678de328409f9121ddea33415add73fc01a22e95ed9d9629f31b8ba20b3bbfc04dab926c63 digest-sha-cflags.patch
3eaec691bc38e208ba4f34130ae45e50b6c339fa50093d0b0f6d7f24cb5b7c2a3734ca714a279c4b51173f82e46a8e7a3e70bfc7d7471a18c55a2102140e4186 musl-skip-dst-test.patch
ba9cb1ff4a6e8e4c31bf4ef132c071ac919ffe45842cf5e98c8ca72d78ef4803883b57a0e7b8037da0079561a6ce9e6bd8d127892ac1bcb047638cb3ba3157f6 skip-test-due-to-busybox-ps.patch
c004d6612ec754e5947255a2e2d15b5581f187c32495aeeec9f4fa286919bd9f40c72b63db61e3f4004b09288af2063a6a14b67e5c289e9a8b23ebd7c216e16f musl-stack-size.patch
-4d7a4a199af08f08ef174c1117120a0ac8f7272bc981de2038dc4e1a429674e94c552e1af13326a837b0fe664dbf75d4528467e2a8c1b9d3f9bb2c61c112ae14 zlib-no-zsolo.patch
"
diff --git a/main/perl/digest-sha-cflags.patch b/main/perl/digest-sha-cflags.patch
new file mode 100644
index 00000000000..0e4e8b369a1
--- /dev/null
+++ b/main/perl/digest-sha-cflags.patch
@@ -0,0 +1,17 @@
+don't override cflags with -O1 on x86*
+--
+diff --git a/cpan/Digest-SHA/Makefile.PL b/cpan/Digest-SHA/Makefile.PL
+index af2c0c3..3606225 100644
+--- a/cpan/Digest-SHA/Makefile.PL
++++ b/cpan/Digest-SHA/Makefile.PL
+@@ -66,10 +66,6 @@ if ($^O eq 'VMS') {
+
+ # Enhance performance on Intel when using gcc
+
+-if ($Config{archname} =~ /^i[3456]86/ && $Config{ccname} eq 'gcc') {
+- push(@extra, OPTIMIZE => '-O1 -fomit-frame-pointer');
+-}
+-
+ my $fussy = '-Wall -Wextra -Wconversion -Wcast-align -Wpointer-arith ';
+ push(@extra, CCFLAGS => $fussy . $Config{ccflags}) if $opt_w;
+
diff --git a/main/perl/musl-locale.patch b/main/perl/musl-locale.patch
deleted file mode 100644
index 65839f1fe75..00000000000
--- a/main/perl/musl-locale.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-diff --git a/locale.c b/locale.c
-index 7653340..7243cb1 100644
---- a/locale.c
-+++ b/locale.c
-@@ -581,6 +581,10 @@ S_emulate_setlocale(const int category,
-
- return (char *) querylocale(mask, cur_obj);
-
-+# elif defined(_NL_LOCALE_NAME)
-+
-+ return (char *) nl_langinfo_l(_NL_LOCALE_NAME(category), cur_obj);
-+
- # else
-
- /* If this assert fails, adjust the size of curlocales in intrpvar.h */
-@@ -737,7 +741,7 @@ S_emulate_setlocale(const int category,
-
- /* Here, we are switching locales. */
-
--# ifndef HAS_QUERYLOCALE
-+# if !defined(HAS_QUERYLOCALE) && !defined(_NL_LOCALE_NAME)
-
- if (strEQ(locale, "")) {
-
-@@ -1094,6 +1098,12 @@ S_emulate_setlocale(const int category,
- locale = querylocale(mask, new_obj);
- }
-
-+# elif defined(_NL_LOCALE_NAME)
-+
-+ if (strEQ(locale, "")) {
-+ locale = nl_langinfo_l(_NL_LOCALE_NAME(category), new_obj);
-+ }
-+
- # else
-
- /* Here, 'locale' is the return value */
diff --git a/main/perl/zlib-no-zsolo.patch b/main/perl/zlib-no-zsolo.patch
deleted file mode 100644
index 80bcf3ba4d5..00000000000
--- a/main/perl/zlib-no-zsolo.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/cpan/Compress-Raw-Zlib/Makefile.PL
-+++ b/cpan/Compress-Raw-Zlib/Makefile.PL
-@@ -91,7 +91,7 @@
- NAME => 'Compress::Raw::Zlib',
- VERSION_FROM => 'lib/Compress/Raw/Zlib.pm',
- INC => $OPT_ZLIB_INCLUDE ,
-- DEFINE => "-DNO_VIZ -DZ_SOLO $OLD_ZLIB $WALL $OPT_Z_PREFIX -DGZIP_OS_CODE=$GZIP_OS_CODE $USE_PPPORT_H -DPerl_crz_BUILD_ZLIB=$BUILD_ZLIB" ,
-+ DEFINE => "-DNO_VIZ $OLD_ZLIB $WALL $OPT_Z_PREFIX -DGZIP_OS_CODE=$GZIP_OS_CODE $USE_PPPORT_H -DPerl_crz_BUILD_ZLIB=$BUILD_ZLIB" ,
- XS => { 'Zlib.xs' => 'Zlib.c'},
- 'depend' => { 'Makefile' => 'config.in' },
- 'clean' => { FILES => '*.c constants.h constants.xs' },
diff --git a/main/pgpool/APKBUILD b/main/pgpool/APKBUILD
index 7e3f929b090..ea7bbc0ebe0 100644
--- a/main/pgpool/APKBUILD
+++ b/main/pgpool/APKBUILD
@@ -1,29 +1,38 @@
# Contributor: Cameron <cbanta@gmail.com>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=pgpool
-_pkgname="$pkgname-II"
-pkgver=4.3.2
+pkgver=4.5.1
+_pkgver="${pkgver//./_}"
pkgrel=0
pkgdesc="A connection pooling/replication server for PostgreSQL"
url="https://www.pgpool.net/"
arch="all"
license="custom"
-makedepends="libpq-dev linux-headers"
+makedepends="
+ autoconf
+ automake
+ bison
+ flex
+ libpq-dev
+ libtool
+ linux-headers
+ openssl-dev
+ "
pkgusers="postgres"
pkggroups="postgres"
install="$pkgname.pre-install $pkgname.post-upgrade"
subpackages="$pkgname-openrc $pkgname-doc $pkgname-static $pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://www.pgpool.net/download.php?f=$_pkgname-$pkgver.tar.gz
+source="https://github.com/pgpool/pgpool2/archive/V$_pkgver/pgpool2-$_pkgver.tar.gz
$pkgname.initd
$pkgname.confd
$pkgname.logrotated
- musl-compat.patch
"
-builddir="$srcdir/$_pkgname-$pkgver"
+builddir="$srcdir/pgpool2-$_pkgver"
prepare() {
default_prepare
- update_config_sub
+
+ autoreconf -fiv
# Fix listen address.
# pgpool resolves localhost to ::1 (IPv6) and fails to bind on ::1:9999.
@@ -41,7 +50,7 @@ build() {
--infodir=/usr/share/info \
--with-openssl \
--disable-rpath
- make
+ make -j1
}
check() {
@@ -63,7 +72,7 @@ package() {
}
doc() {
- local docdir="$subpkgdir"/usr/share/doc/$_pkgname
+ local docdir="$subpkgdir"/usr/share/doc/$pkgname
default_doc
mkdir -p "$docdir"
@@ -75,9 +84,8 @@ doc() {
}
sha512sums="
-771426257eddb5c48504c80a2c8cccf44a18f7ea50df55654b7e9e017bda561a73a3e1f0db79785785ff6893d6df26f73b55310d0184ef3301838d12290d3d4c pgpool-4.3.2.tar.gz
-71b8239b1b29e2c4a8312b300122ced1452bbe60fc7937e80172c7c5e3d6be71e5aee58f6d3d687b0e35df6ccdc27125a12ae9098f7c2d07e76b8103abca3556 pgpool.initd
-0e40a681b068ce5c7f03c342c1217b170601a507cacdf120b9a308df65f2065e6085b292a393802d1955079f7ec434a412e6d871f688ad83bc33fa34aca37cfe pgpool.confd
+fee71e1c5513fa82f5263028e2a26e5dee88c792fc925edf1390642d7ae90e93615ffc1c1a6755302aac5b15ad09540d172899545022c423c92c04b6e147b72a pgpool2-4_5_1.tar.gz
+9e54835f2a907f4b7a521d7d52cf04f69e1edfe591d9618cb2a1514953e5ba9e0d5ef543f0d6ee281fef21e64b7a6ff4a26a7f54fadbfc2d3bc7009d10dbccbf pgpool.initd
+7e605cea31ae32127ec1aca9e47a6652e87243214bde202d49a405652784e68b4dbff7d364345259d327bc37041c60c146e6f674a4aa72c6214bdba3740e700e pgpool.confd
c9aa2ea9484ed29cb57cdff4004fa9dd4780d73c69db3378effb2e0ecd3ae178771c6a847a28e1a9cc6492ada4321584afb92c9b592119fb11898b42191f22b1 pgpool.logrotated
-37e8314f2dab6889c35edb679906db3997c4d5eba704a7337ff82926d400f2ab780103b6a162b1effa74c0d7f8d6655b62cddd2017d3ea7a5de5f370871ab088 musl-compat.patch
"
diff --git a/main/pgpool/musl-compat.patch b/main/pgpool/musl-compat.patch
deleted file mode 100644
index 04a74ec10fa..00000000000
--- a/main/pgpool/musl-compat.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/src/tools/pgproto/read.c
-+++ b/src/tools/pgproto/read.c
-@@ -26,6 +26,7 @@
- #include "pgproto/fe_memutils.h"
- #include <libpq-fe.h>
- #include "pgproto/read.h"
-+#include <sys/select.h>
-
- static char read_char(PGconn *conn);
- static int read_int32(PGconn *conn);
diff --git a/main/pgpool/pgpool.confd b/main/pgpool/pgpool.confd
index 938bd56b529..e83c55d0ca6 100644
--- a/main/pgpool/pgpool.confd
+++ b/main/pgpool/pgpool.confd
@@ -1,4 +1,4 @@
-# Configuration file for /etc/init.d/pgpool
+# Configuration for /etc/init.d/pgpool
# Path to the pgpool.conf configuration file.
#config_file="/etc/pgpool/pgpool.conf"
@@ -18,3 +18,6 @@
# Additional options for pgpool(1).
#command_args=""
+
+# Uncomment to run with process supervisor.
+# supervisor="supervise-daemon"
diff --git a/main/pgpool/pgpool.initd b/main/pgpool/pgpool.initd
index effd4a75f26..2d676a1c7f4 100644
--- a/main/pgpool/pgpool.initd
+++ b/main/pgpool/pgpool.initd
@@ -1,13 +1,15 @@
#!/sbin/openrc-run
+name="pgpool-II"
+
: ${command_user:="postgres:postgres"}
: ${config_file:="/etc/pgpool/pgpool.conf"}
: ${hba_file:="/etc/pgpool/pool_hba.conf"}
: ${key_file:="/etc/pgpool/pool_key"}
: ${pcp_file:="/etc/pgpool/pcp.conf"}
: ${logfile="/var/log/pgpool/pgpool.log"}
+: ${start_wait:=2}
-name="pgpool-II"
command="/usr/bin/pgpool"
command_args="
--dont-detach
@@ -18,8 +20,13 @@ command_args="
$command_args
"
command_background="yes"
+
pidfile="/run/$RC_SVCNAME.pid"
-start_stop_daemon_args="--wait 2 ${logfile:+"--stderr $logfile"}"
+error_log="$logfile"
+start_stop_daemon_args="--wait $start_wait"
+# The leading space is to avoid fallback to $start_stop_daemon_args when this
+# is empty (supervise-daemon doesn't support --wait).
+supervise_daemon_args=" $supervise_daemon_args"
required_files="$config_file"
diff --git a/main/pgtcl/APKBUILD b/main/pgtcl/APKBUILD
index bb880b187b3..e804851dc5b 100644
--- a/main/pgtcl/APKBUILD
+++ b/main/pgtcl/APKBUILD
@@ -1,30 +1,40 @@
# Contributor: G.J.R. Timmer <gjr.timmer@gmail.com>
-# Maintainer: G.J.R. Timmer <gjr.timmer@gmail.com>
+# Maintainer: rubicon <rubicon@mailo.com>
pkgname=pgtcl
-_pkgname=Pgtcl
-pkgver=2.1.0
-pkgrel=1
+pkgver=3.0.1
+pkgrel=0
pkgdesc="Tcl client side interface to PostgreSQL (libpgtcl)"
url="https://flightaware.github.io/Pgtcl/"
arch="all"
license="BSD-3-Clause"
-makedepends="libpq-dev tcl-dev docbook2x"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/flightaware/$_pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+depends="tcl"
+makedepends="autoconf libpq-dev tcl-dev"
+checkdepends="postgresql"
+subpackages="$pkgname-doc $pkgname-dev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/flightaware/Pgtcl/archive/v$pkgver.tar.gz
+ pgtcl-tests.patch
+ "
+builddir="$srcdir/Pgtcl-$pkgver"
-prepare() {
- default_prepare || return 1
+ERROR_CLEANUP="$ERROR_CLEANUP srcdir"
- cd "$builddir"
- sed -i -e 's/docbook2man/docbook2x-man/g' \
- -e 's|sh \./fix-fi\.sh man/\*||g' \
- doc/Makefile
+cleanup_srcdir() {
+ if [ -f "$_data_dir"/postmaster.pid ]; then
+ local pg_pid="$(head -1 "$_data_dir"/postmaster.pid)"
+ msg "Killing PostgreSQL test server with PID: $pg_pid"
+ kill "$pg_pid"
+ fi
+ default_cleanup_srcdir
}
-build() {
- cd "$builddir"
+prepare() {
+ default_prepare
+ sed -i "s/@USER@/${USER:-$(id -un)}/" tests/conninfo.tcl
+ autoupdate
+ autoreconf -fiv
+}
+build() {
local x64_flags
case "$CARCH" in
aarch64 | x86_64) x64_flags="--enable-64bit";;
@@ -37,19 +47,40 @@ build() {
--mandir=/usr/share/man \
--disable-rpath \
--enable-threads \
- $x64_flags \
- || return 1
- make || return 1
+ $x64_flags
+ make
}
-package() {
- cd "$builddir"
+check() {
+ export PATH="/usr/libexec/postgresql:$PATH"
+ _data_dir="$srcdir"/pgtcltest
+ local socket_dir="$srcdir"
- make DESTDIR="$pkgdir" install || return 1
- make -C doc DESTDIR="$pkgdir" all || return 1
+ rm -vrf "$_data_dir"
+ mkdir -vp "$_data_dir"
+ pg_ctl initdb -D "$_data_dir"
+ pg_ctl start -D "$_data_dir" -o -k"$socket_dir"
+ createdb -h "$socket_dir" pgtcl
+
+ make test TESTFLAGS="-verbose pbtels -notfile 'sqlite3.test'"
+ cd tests
+ psql -h "$socket_dir" -d pgtcl -c '\i create.sql'
+ local test; for test in import*.tcl; do
+ msg "Testing $test"
+ time tclsh $test
+ done
+
+ pg_ctl stop -D "$_data_dir" -m immediate
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
# Remove empty directories.
- rmdir "$pkgdir"/usr/bin "$pkgdir"/usr/include
+ rmdir -v "$pkgdir"/usr/bin
}
-sha512sums="895f81548d5fde128b258cfb9cad732f539089a7c89bad08b7bc8a229d7f2ecdb9b31a374ddb3fb392ed3e20ba45cca47c2dccfa6ab86e617177f7021d08b3b3 pgtcl-2.1.0.tar.gz"
+sha512sums="
+a50eca8d48b88439747e43e32c7e79e325ac73d2864467e0713b3c8e2ea811942780baef3283796c4eb9ee618b55fa10af75737e4972f77293c6eca831213e66 pgtcl-3.0.1.tar.gz
+8c9f5bf024919dd59f29ecc99d1be305169c1a6a8dcad1ff0bcaefda4e1d206731b867340167adf44f7e607745152a7745a4d1dc4a67f835de469990ed9e1cd8 pgtcl-tests.patch
+"
diff --git a/main/pgtcl/pgtcl-tests.patch b/main/pgtcl/pgtcl-tests.patch
new file mode 100644
index 00000000000..445c2232aac
--- /dev/null
+++ b/main/pgtcl/pgtcl-tests.patch
@@ -0,0 +1,91 @@
+--- a/tests/conninfo.tcl
++++ b/tests/conninfo.tcl
+@@ -4,8 +4,8 @@
+ array set conninfo {
+ host localhost
+ port 5432
+- dbname ####
+- user ####
++ dbname pgtcl
++ user @USER@
+ }
+
+ # Or copy and fill out the above datastructure into ~/.conninfo
+--- a/tests/pgtcl.test
++++ b/tests/pgtcl.test
+@@ -1045,7 +1045,7 @@
+ lappend res [string equal $val $val2]
+ ::pg::disconnect $conn
+
+- lappend res [regexp {(7|8|9|10|11|12)0([0-9])[012]([0-9])} $val]
++ lappend res [regexp {(7|8|9|10|11|12|13|14)0([0-9])[012]([0-9])} $val]
+
+ } -result [list 1 1]
+
+@@ -1079,9 +1079,9 @@
+ lappend res [string equal $val $val2]
+ ::pg::disconnect $conn
+
+- set match [regexp {(7|8|9|10|11|12)\.([0-9])\.([0-9])} $val]
++ set match [regexp {(7|8|9|10|11|12|13|14)\.([0-9])\.([0-9])} $val]
+ if {!$match} {
+- set match [regexp {^(10|11|12)\.[1-9][0-9]* \(.*} $val]
++ set match [regexp {^(10|11|12|13|14)\.[1-9][0-9]*} $val]
+ }
+ lappend res $match
+
+--- a/tests/import_sampledata.tcl
++++ b/tests/import_sampledata.tcl
+@@ -4,6 +4,8 @@
+ # $Id$
+ #
+
++lappend auto_path ..
++
+ package require Pgtcl
+
+ if {[file exists conninfo.tcl]} {
+--- a/tests/import_sampledata_connobj.tcl
++++ b/tests/import_sampledata_connobj.tcl
+@@ -5,6 +5,8 @@
+ # $Id$
+ #
+
++lappend auto_path ..
++
+ package require Pgtcl
+
+ if {[file exists conninfo.tcl]} {
+--- a/tests/import_sampledata_onetransaction.tcl
++++ b/tests/import_sampledata_onetransaction.tcl
+@@ -5,6 +5,8 @@
+ # $Id$
+ #
+
++lappend auto_path ..
++
+ package require Pgtcl
+
+ if {[file exists conninfo.tcl]} {
+--- a/tests/import_sampledata_prepared.tcl
++++ b/tests/import_sampledata_prepared.tcl
+@@ -5,6 +5,8 @@
+ # $Id$
+ #
+
++lappend auto_path ..
++
+ package require Pgtcl
+
+ if {[file exists conninfo.tcl]} {
+--- a/tests/import_sampledata_prepared_onetransaction.tcl
++++ b/tests/import_sampledata_prepared_onetransaction.tcl
+@@ -5,6 +5,8 @@
+ # $Id$
+ #
+
++lappend auto_path ..
++
+ package require Pgtcl
+
+ if {[file exists conninfo.tcl]} {
diff --git a/main/pigz/APKBUILD b/main/pigz/APKBUILD
index 90f0009c193..a7749a567e1 100644
--- a/main/pigz/APKBUILD
+++ b/main/pigz/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: William Pitcock <nenolod@dereferenced.org>
-# Maintainer:
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=pigz
-pkgver=2.7
-pkgrel=0
+pkgver=2.8
+pkgrel=1
pkgdesc="Parallel implementation of gzip"
url="https://zlib.net/pigz/"
arch="all"
@@ -12,7 +12,7 @@ subpackages="$pkgname-doc"
source="https://zlib.net/pigz/pigz-$pkgver.tar.gz"
build() {
- make pigz
+ make LDFLAGS="$LDFLAGS" CFLAGS="$CFLAGS -O3 -flto=auto" pigz
}
check() {
@@ -20,12 +20,11 @@ check() {
}
package() {
- for i in pigz unpigz; do
- install -Dm755 $i -t "$pkgdir"/usr/bin
- done
+ install -Dm755 pigz -t "$pkgdir"/usr/bin
+ ln -s pigz "$pkgdir"/usr/bin/unpigz
install -Dm644 pigz.1 -t "$pkgdir"/usr/share/man/man1
}
sha512sums="
-9f9f61de4a0307fc057dc4e31a98bd8d706d9e709ecde0be02a871534fddf6a1fe1321158aa72708603aaaece43f83d2423b127f7689b6219b23aea4f989e8f5 pigz-2.7.tar.gz
+ae3d9d593e1645d65f9ab77aa828600c9af4bb30d0a073da7ae3dd805e65b87efaf6a0efb980f2d0168e475ae506eba194547d6479956dabb9d88293a9078a7f pigz-2.8.tar.gz
"
diff --git a/main/pinentry/APKBUILD b/main/pinentry/APKBUILD
index 510d145dfba..169813b8f94 100644
--- a/main/pinentry/APKBUILD
+++ b/main/pinentry/APKBUILD
@@ -1,14 +1,19 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=pinentry
-pkgver=1.2.0
+pkgver=1.3.0
pkgrel=0
pkgdesc="Collection of simple PIN or passphrase entry dialogs which utilize the Assuan protocol"
url="https://www.gnupg.org/aegypten2/"
arch="all"
license="GPL-2.0-or-later"
-install="$pkgname.post-install $pkgname.post-upgrade $pkgname-curses-ss.post-install"
-makedepends="ncurses-dev libcap-dev libgpg-error-dev libassuan-dev gcr-dev libsecret-dev"
+install="
+ $pkgname.post-install
+ $pkgname.post-upgrade
+ $pkgname-curses-ss.post-install
+ $pkgname-curses-ss.post-deinstall
+ "
+makedepends="ncurses-dev libcap-dev libgpg-error-dev libassuan-dev libsecret-dev"
subpackages="$pkgname-doc $pkgname-tty $pkgname-curses-ss:_curses_ss"
source="https://gnupg.org/ftp/gcrypt/pinentry/pinentry-$pkgver.tar.bz2"
@@ -69,5 +74,5 @@ tty() {
}
sha512sums="
-19cea79aa3982d1f0d75220c8e24ca38d6c49475c6f4c5aa7101151b4690db23ed316096a4a411136e716ba4eb471f48f9b09556e5c9837533c2356b9b384b63 pinentry-1.2.0.tar.bz2
+1bbac81c6811cffc8969a46494e6daa6b8447802f47ff6fa3e4dc9ac244cf6e5f629834c9b6a60770d06bff6c9932ad4059f10d2fdf93fd9e26fd5d21c0e3732 pinentry-1.3.0.tar.bz2
"
diff --git a/main/pinentry/pinentry-curses-ss.post-deinstall b/main/pinentry/pinentry-curses-ss.post-deinstall
new file mode 100644
index 00000000000..3be22979758
--- /dev/null
+++ b/main/pinentry/pinentry-curses-ss.post-deinstall
@@ -0,0 +1,12 @@
+#!/bin/sh
+
+if [ "$(readlink /usr/bin/pinentry)" = "pinentry-curses-ss" ]; then
+ rm /usr/bin/pinentry
+
+ # restore symlink to pinentry-curses, if exists
+ if [ -x "/usr/bin/pinentry-curses" ]; then
+ ln -sfv pinentry-curses /usr/bin/pinentry
+ fi
+fi
+
+exit 0
diff --git a/main/pingu/APKBUILD b/main/pingu/APKBUILD
index 5f8f21f3435..3aa13c1941c 100644
--- a/main/pingu/APKBUILD
+++ b/main/pingu/APKBUILD
@@ -2,22 +2,19 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=pingu
pkgver=1.5
-pkgrel=2
+pkgrel=5
pkgdesc="Small daemon that pings hosts and executes a script when status change"
-url="https://git.alpinelinux.org/cgit/pingu"
+url="https://github.com/ncopa/pingu"
arch="all"
license="GPL"
makedepends="libev-dev lua-dev asciidoc linux-headers"
-depends=
-subpackages="$pkgname-doc lua-pingu:_lua mtu"
+subpackages="$pkgname-doc $pkgname-openrc lua-pingu:_lua mtu"
+options="!check"
source="pingu-$pkgver.tar.gz::https://github.com/ncopa/pingu/archive/v$pkgver.tar.gz
pingu.initd
"
-builddir="$srcdir"/$pkgname-$pkgver
-
build() {
- cd "$_builddir"
./configure \
--prefix=/usr \
--localstatedir=/var \
@@ -27,7 +24,6 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
install -m644 -D pingu.conf "$pkgdir"/etc/pingu/pingu.conf
install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
@@ -35,14 +31,12 @@ package() {
mtu() {
pkgdesc="Utility to detect MTU"
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+ amove usr/bin
}
_lua() {
pkgdesc="lua module for pingu client"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib "$pkgdir"/usr/share "$subpkgdir"/usr/
+ amove usr/lib usr/share
}
sha512sums="71e5fbe93f831f24d168957cdeaff2817a22f407575316d6515755bec760d10724821070549eaab562924237b96976a1a776ca903d5fe0cd9f9b69a38eadd8c9 pingu-1.5.tar.gz
diff --git a/main/pixman/APKBUILD b/main/pixman/APKBUILD
index 694f27e0488..d8e6936e092 100644
--- a/main/pixman/APKBUILD
+++ b/main/pixman/APKBUILD
@@ -1,36 +1,43 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=pixman
-pkgver=0.40.0
-pkgrel=3
+pkgver=0.43.2
+pkgrel=0
pkgdesc="Low-level pixel manipulation library"
url="https://gitlab.freedesktop.org/pixman"
arch="all"
license="MIT"
makedepends="meson libpng-dev linux-headers"
subpackages="$pkgname-static $pkgname-dev $pkgname-dbg"
-source="https://gitlab.freedesktop.org/pixman/pixman/-/archive/pixman-$pkgver/pixman-pixman-$pkgver.tar.gz
- https://gitlab.freedesktop.org/pixman/pixman/-/commit/04f662a3ee0dbab1b4755a6faf491751f6f29627.patch
+source="https://www.x.org/releases/individual/lib/pixman-$pkgver.tar.xz
+ scaling-test.patch
"
-builddir="$srcdir/pixman-pixman-$pkgver"
case "$CARCH" in
# broken test (likely due to endianness assumptions)
s390x) options="!check" ;;
- aarch64) simd="-Da64-neon=enabled" ;;
esac
-
build() {
+ case "$CARCH" in
+ armhf)
+ # target-specific builtin not available
+ local lto=false
+ ;;
+ *)
+ local lto=true
+ ;;
+ esac
# We need to increase the stacksize here: https://gitlab.gnome.org/GNOME/librsvg/-/issues/595
- LDFLAGS="$LDFLAGS -Wl,-z,stack-size=2097152" abuild-meson \
+ LDFLAGS="$LDFLAGS -Wl,-z,stack-size=2097152" \
+ abuild-meson \
+ -Db_lto=$lto \
-Ddefault_library=both \
- $simd \
. output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
check() {
- meson test -C output -t 10
+ meson test --no-rebuild --print-errorlogs -C output -t 10
}
package() {
@@ -38,6 +45,6 @@ package() {
}
sha512sums="
-18774e22add5c5442edede5467fa07234c2b9e57a79d88110f25424e4253c6ab0c2921e951c5686cefebf4724ff19ad053d0c28f4d2f8d642bbcf6fc71764ef6 pixman-pixman-0.40.0.tar.gz
-4c383bd629dfab9dc3b491a9b06c4192b0f4fb417d62dba494b0efa622fc557ab570d24ac1ef4a9cc0a8104d383dde4f687978c5456f39290a591e34e41e31a2 04f662a3ee0dbab1b4755a6faf491751f6f29627.patch
+1a1d21b86b3c6784c4c2606b7069723b4dbb747eac9fce95bca86516787840379ffd49abc42d11e7143e85c32c85496f33c2562c7a910ca6f963599affdc3224 pixman-0.43.2.tar.xz
+78837937b59bd1b6d2a916bf73152908186fbedebf2be4fe2a89e978ac787b7827a3858970c9b69445d737545f786732394b62ac54751f5996cbedc492aefd59 scaling-test.patch
"
diff --git a/main/pixman/scaling-test.patch b/main/pixman/scaling-test.patch
new file mode 100644
index 00000000000..0c52cdadd5b
--- /dev/null
+++ b/main/pixman/scaling-test.patch
@@ -0,0 +1,14 @@
+fails on arm most likely due to comments in
+https://gitlab.freedesktop.org/pixman/pixman/-/merge_requests/40
+diff --git a/test/meson.build b/test/meson.build
+index 59a0d42..42c7ef3 100644
+--- a/test/meson.build
++++ b/test/meson.build
+@@ -48,7 +48,6 @@ tests = [
+ 'cover-test',
+ 'blitters-test',
+ 'affine-test',
+- 'scaling-test',
+ 'composite',
+ 'tolerance-test',
+ ]
diff --git a/main/pjproject/APKBUILD b/main/pjproject/APKBUILD
index 63faba2d92a..af2f64f24fe 100644
--- a/main/pjproject/APKBUILD
+++ b/main/pjproject/APKBUILD
@@ -1,22 +1,30 @@
# Contributor: Michael Mason <ms13sp@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=pjproject
-pkgver=2.12.1
-pkgrel=0
-pkgdesc="CLI Softphone"
+pkgver=2.14
+pkgrel=1
+pkgdesc="Open source multimedia communication library"
url="https://www.pjsip.org/pjsua.htm"
arch="all"
license="GPL-2.0-or-later"
-depends_dev="openssl1.1-compat-dev alsa-lib-dev gsm-dev speex-dev speexdsp-dev
+depends_dev="openssl-dev>3 alsa-lib-dev gsm-dev speex-dev speexdsp-dev
portaudio-dev libsrtp-dev libsamplerate-dev"
-makedepends="$depends_dev linux-headers"
-subpackages="$pkgname-dbg $pkgname-dev pjsua"
-source="https://github.com/pjsip/pjproject/archive/$pkgver/pjproject-$pkgver.tar.gz
+makedepends="$depends_dev linux-headers python3-dev py3-setuptools swig"
+subpackages="$pkgname-dbg $pkgname-dev py3-pjsua-pyc py3-pjsua:py3 pjsua"
+source="$pkgname-$pkgver.tar.gz::https://github.com/pjsip/pjproject/archive/refs/tags/$pkgver.tar.gz
pjproject_no_third_party.patch
- execinfo.patch
"
+options="!check"
# secfixes:
+# 2.14-r0:
+# - CVE-2023-38703
+# 2.13.1-r0:
+# - CVE-2023-27585
+# 2.13-r0:
+# - CVE-2022-31031
+# - CVE-2022-39244
+# - CVE-2022-39269
# 2.12.1-r0:
# - CVE-2022-24754
# - CVE-2022-24763
@@ -68,7 +76,6 @@ prepare() {
}
build() {
- cd "$builddir"
export CFLAGS="-DNDEBUG $CFLAGS"
./configure \
--build=$CBUILD \
@@ -90,23 +97,32 @@ build() {
# rm -r third_party
make dep
make all
+
+ cd pjsip-apps/src/swig/python
+ make
}
package() {
- cd "$builddir"
install -d "$pkgdir"/usr/lib
make -j1 DESTDIR="$pkgdir" prefix=/usr install
rm -f "$pkgdir"/usr/lib/*.a
+
+ cd pjsip-apps/src/swig/python
+ python3 setup.py install --skip-build --root="$pkgdir"
}
pjsua() {
- pkgdesc="pjsua is an open source command line SIP user agent (softphone)"
+ pkgdesc="Open source command line SIP user agent (softphone)"
cd "$builddir"/pjsip-apps/bin/
install -D -m755 pjsua "$subpkgdir"/usr/bin/pjsua
}
+py3() {
+ pkgdesc="$pkgdesc (Python bindings)"
+ amove usr/lib/python*
+}
+
sha512sums="
-9087456024b8886e56660cebc45c7093b3b91cd6b08a3926fa2c0de452989ac84ceb4e27413c0311bde95f271341ee44d9681f81f83602a4e16151f1831d773b pjproject-2.12.1.tar.gz
+5732f3cc46a6a3021d57da9abf4d4ef5233466379557e9c27fc529b4476f439ec2664d567bea802cd032a1c1db5bd0baeabfc70638f557be5e4b4a1faa910d2b pjproject-2.14.tar.gz
fe53b4e8a654dc4025a4bf6350f405953609abc9e7ed967882cb9eb9e6a659e348a0c3c7496c8093562a0dcc4a40459896d8ee1da7275dd089244338111bccbb pjproject_no_third_party.patch
-59337a5ddf5f989b1cb5644cc644f4b7efc17f8f92ef595667813662eaeee4ad25494a3386385b1114c604fd028f9b22f150cf32879c03e9255d737dee20f436 execinfo.patch
"
diff --git a/main/pjproject/execinfo.patch b/main/pjproject/execinfo.patch
deleted file mode 100644
index 30b5fa2aa7e..00000000000
--- a/main/pjproject/execinfo.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-diff --git a/pjlib-util/src/pjlib-util-test/main.c b/pjlib-util/src/pjlib-util-test/main.c
-index 7178b09..5b5a8ec 100644
---- a/pjlib-util/src/pjlib-util-test/main.c
-+++ b/pjlib-util/src/pjlib-util-test/main.c
-@@ -33,7 +33,7 @@ static void init_signals()
- sigaction(SIGALRM, &act, NULL);
- }
-
--#elif PJ_LINUX || PJ_DARWINOS
-+#elif (PJ_LINUX && defined(__GLIBC__)) || PJ_DARWINOS
-
- #include <execinfo.h>
- #include <signal.h>
-diff --git a/pjlib/src/pjlib-test/main.c b/pjlib/src/pjlib-test/main.c
-index caebfa8..d3ca1b1 100644
---- a/pjlib/src/pjlib-test/main.c
-+++ b/pjlib/src/pjlib-test/main.c
-@@ -54,7 +54,7 @@ static void init_signals()
- sigaction(SIGALRM, &act, NULL);
- }
-
--#elif PJ_LINUX || PJ_DARWINOS
-+#elif (PJ_LINUX && defined(__GLIBC__)) || PJ_DARWINOS
-
- #include <execinfo.h>
- #include <signal.h>
-diff --git a/pjmedia/src/test/main.c b/pjmedia/src/test/main.c
-index fc91756..4ad230e 100644
---- a/pjmedia/src/test/main.c
-+++ b/pjmedia/src/test/main.c
-@@ -32,7 +32,7 @@
- #endif
-
-
--#if PJ_LINUX || PJ_DARWINOS
-+#if (PJ_LINUX && defined(__GLIBC__)) || PJ_DARWINOS
-
- #include <execinfo.h>
- #include <signal.h>
-diff --git a/pjnath/src/pjnath-test/main.c b/pjnath/src/pjnath-test/main.c
-index fffdc4f..78a64ab 100644
---- a/pjnath/src/pjnath-test/main.c
-+++ b/pjnath/src/pjnath-test/main.c
-@@ -32,7 +32,7 @@ static void init_signals()
- sigaction(SIGALRM, &act, NULL);
- }
-
--#elif PJ_LINUX || PJ_DARWINOS
-+#elif (PJ_LINUX && defined(__GLIBC__)) || PJ_DARWINOS
-
- #include <execinfo.h>
- #include <signal.h>
-diff --git a/pjsip-apps/src/pjsua/main.c b/pjsip-apps/src/pjsua/main.c
-index 5396ff0..4fe8dfc 100644
---- a/pjsip-apps/src/pjsua/main.c
-+++ b/pjsip-apps/src/pjsua/main.c
-@@ -80,7 +80,7 @@ static void setup_signal_handler(void)
- SetConsoleCtrlHandler(&CtrlHandler, TRUE);
- }
-
--#elif PJ_LINUX || PJ_DARWINOS
-+#elif (PJ_LINUX && defined(__GLIBC__)) || PJ_DARWINOS
-
- #include <execinfo.h>
- #include <signal.h>
-diff --git a/pjsip/src/test/main.c b/pjsip/src/test/main.c
-index 914c592..ff594ab 100644
---- a/pjsip/src/test/main.c
-+++ b/pjsip/src/test/main.c
-@@ -33,7 +33,7 @@ static void usage()
- puts(" -l,--log-level N Set log level (0-6)");
- }
-
--#if PJ_LINUX || PJ_DARWINOS
-+#if (PJ_LINUX && defined(__GLIBC__)) || PJ_DARWINOS
-
- #include <execinfo.h>
- #include <signal.h>
diff --git a/main/pjproject/libpjsua2-install.patch b/main/pjproject/libpjsua2-install.patch
deleted file mode 100644
index 706c82db40c..00000000000
--- a/main/pjproject/libpjsua2-install.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 4fafe94319a6b714ebb4086fe0be69c3ca9ff5ab Mon Sep 17 00:00:00 2001
-From: Hubert LOBIT <hubert.lobit@allocloud.com>
-Date: Thu, 18 Mar 2021 19:00:54 +0100
-Subject: [PATCH] Fix installation of libpjsua2 shared libraries
-
----
- Makefile | 5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 31a6d39d4..74e246a44 100644
---- a/Makefile
-+++ b/Makefile
-@@ -121,9 +121,10 @@ cmp_wav:
-
- install:
- mkdir -p $(DESTDIR)$(libdir)/
-- cp -af $(APP_LIB_FILES) $(DESTDIR)$(libdir)/
- if [ "$(PJ_EXCLUDE_PJSUA2)x" = "x" ] ; then \
-- cp -af $(PJ_DIR)/pjsip/lib/libpjsua2-$(LIB_SUFFIX) $(DESTDIR)$(libdir)/; \
-+ cp -af $(APP_LIBXX_FILES) $(DESTDIR)$(libdir)/; \
-+ else \
-+ cp -af $(APP_LIB_FILES) $(DESTDIR)$(libdir)/; \
- fi
- mkdir -p $(DESTDIR)$(includedir)/
- for d in pjlib pjlib-util pjnath pjmedia pjsip; do \
diff --git a/main/pkgconf/APKBUILD b/main/pkgconf/APKBUILD
index 746abef1ee1..9cac699d7e8 100644
--- a/main/pkgconf/APKBUILD
+++ b/main/pkgconf/APKBUILD
@@ -1,21 +1,21 @@
# Maintainer: Ariadne Conill <ariadne@dereferenced.org>
pkgname=pkgconf
-pkgver=1.8.0
+pkgver=2.2.0
pkgrel=0
pkgdesc="development framework configuration tools"
-url="https://git.sr.ht/~kaniini/pkgconf"
+url="https://gitea.treehouse.systems/ariadne/pkgconf"
arch="all"
license="ISC"
replaces="pkgconfig"
provides="pkgconfig=1"
-subpackages="$pkgname-doc $pkgname-dev"
-source="https://distfiles.dereferenced.org/pkgconf/pkgconf-$pkgver.tar.xz"
checkdepends="kyua atf"
+subpackages="$pkgname-doc $pkgname-dev"
+source="https://distfiles.ariadne.space/pkgconf/pkgconf-$pkgver.tar.xz
+ "
-prepare() {
- default_prepare
- update_config_sub
-}
+# secfixes:
+# 1.9.4-r0:
+# - CVE-2023-24056
build() {
./configure \
@@ -51,5 +51,5 @@ dev() {
}
sha512sums="
-58204006408ad5ce91222ed3c93c2e0b61c04fa83c0a8ad337b747b583744578dbebd4ad5ccbc577689637caa1c5dc246b7795ac46e39c6666b1aa78199b7c28 pkgconf-1.8.0.tar.xz
+c4ff254c7323bdebc2595037df60e33f17fc5c222d7500a4b9d8b18c8b451ac35cd3ac90d31c920c23e9495ece2b82422de61e13286d43de3a5d1fe8211bd944 pkgconf-2.2.0.tar.xz
"
diff --git a/main/pm-utils/APKBUILD b/main/pm-utils/APKBUILD
index 5343f3e832d..13d61aaf48f 100644
--- a/main/pm-utils/APKBUILD
+++ b/main/pm-utils/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=pm-utils
pkgver=1.4.1
-pkgrel=3
+pkgrel=5
pkgdesc="small collection of scripts that handle suspend and resume on behalf of HAL"
url="https://pm-utils.freedesktop.org/wiki/"
arch="all"
diff --git a/main/pmacct/APKBUILD b/main/pmacct/APKBUILD
index 0a149a7666f..d0b55fb0925 100644
--- a/main/pmacct/APKBUILD
+++ b/main/pmacct/APKBUILD
@@ -1,13 +1,28 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=pmacct
-pkgver=1.7.5
-pkgrel=0
+pkgver=1.7.8
+pkgrel=1
pkgdesc="Measure, account, classify, aggregate and export IPv4 and IPv6 traffic"
url="http://www.pmacct.net/"
arch="all"
license="GPL-2.0-or-later"
-makedepends="bsd-compat-headers libpcap-dev mariadb-connector-c-dev libpq-dev
- zlib-dev jansson-dev sqlite-dev libnetfilter_log-dev"
+makedepends="
+ autoconf
+ automake
+ bsd-compat-headers
+ hiredis-dev
+ jansson-dev
+ libmaxminddb-dev
+ libnetfilter_log-dev
+ libpcap-dev
+ libpq-dev
+ libtool
+ mariadb-connector-c-dev
+ numactl-dev
+ rabbitmq-c-dev
+ sqlite-dev
+ zlib-dev
+ "
subpackages="$pkgname-doc $pkgname-openrc"
source="http://www.pmacct.net/pmacct-$pkgver.tar.gz
pmacctd.initd
@@ -17,10 +32,16 @@ source="http://www.pmacct.net/pmacct-$pkgver.tar.gz
nfacctd.conf
uacctd.conf
"
+options="!check"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
- # Requires extensive rework to work with -fno-common
- CFLAGS="$CFLAGS -fcommon" \
+ CFLAGS="$CFLAGS -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -28,9 +49,12 @@ build() {
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
+ --enable-ebfp \
+ --enable-geoipv2 \
--enable-pgsql \
- --enable-64bit \
--enable-mysql \
+ --enable-rabbitmq \
+ --enable-redis \
--enable-sqlite3 \
--enable-jansson \
--enable-nflog
@@ -46,18 +70,20 @@ package() {
install -m644 -D "$srcdir"/nfacctd.conf "$pkgdir"/etc/nfacctd.conf
install -m644 -D "$srcdir"/sfacctd.conf "$pkgdir"/etc/sfacctd.conf
install -m644 -D "$srcdir"/uacctd.conf "$pkgdir"/etc/uacctd.conf
- ln -s /etc/init.d/pmacctd "$pkgdir"/etc/init.d/nfacctd &>/dev/null
- ln -s /etc/init.d/pmacctd "$pkgdir"/etc/init.d/sfacctd &>/dev/null
- ln -s /etc/init.d/pmacctd "$pkgdir"/etc/init.d/uacctd &>/dev/null
- mkdir -p $pkgdir/usr/share/doc/pmacct/sql
- cp sql/README.* $pkgdir/usr/share/doc/pmacct
- cp sql/* $pkgdir/usr/share/doc/pmacct/sql
+ ln -s /etc/init.d/pmacctd "$pkgdir"/etc/init.d/nfacctd
+ ln -s /etc/init.d/pmacctd "$pkgdir"/etc/init.d/sfacctd
+ ln -s /etc/init.d/pmacctd "$pkgdir"/etc/init.d/uacctd
+ mkdir -p "$pkgdir"/usr/share/doc/pmacct/sql
+ cp sql/README.* "$pkgdir"/usr/share/doc/pmacct
+ cp sql/* "$pkgdir"/usr/share/doc/pmacct/sql
}
-sha512sums="b8ae79e04104470d126318c3acaac2f11c6e00cff34724240a8f2d8a5bb296b25af43c98870f4f0fd6a5d9739095028301dcc45ef9794f9e43a50b93fe12e107 pmacct-1.7.5.tar.gz
+sha512sums="
+df576644688ddb1957aa1583b101b96d86ab404c1416e0709b1bc85d691d13841bdb92a37a4526bc9273101dd11e3134d2fb35c06d2cbcde8e5bf7e84751a1c2 pmacct-1.7.8.tar.gz
62418cf66d44099ca93926d3ef9fc2d9b93922fd6edbb1d079d4f10063ad63bf922e60ebf128a86282bd0891afbddc380f9723fa1e82e128dd79feccc759645d pmacctd.initd
6078607dde8619f8fa5698f217c40a7e46ed85843923abecc87652d2e9df6db677898ee1965367247e6ac838d907533a8b1c7ab0515f3f2dc6f3fd4eb14bd5be pmacctd.confd
119f69c0ba49609ddbe8455cfa53cb45f94b5dc26b745292bc30422f97a3002dfc5e8b6d63ef17e8a8a5497adbcd64c9edf4476336e5c27144e1d2094a8e6c0a pmacctd.conf
a02d3b0c2ce56a11d965c395033ebec8e64581b7e9f60a128e8864521eeacf69a0d6a3994b47d3f3c252cd4b8ebbdc3406711fe305a80267aa151bc2da60f93f sfacctd.conf
8534411d0bb2c56d627c30f7fa60253fe5a4a2cf3119eb429f414d71cf181fa1ce94b1bb31d5e0f9fbf996afeb2cf7af39e14bd86948f00de8d2ee44ad874434 nfacctd.conf
-a02d3b0c2ce56a11d965c395033ebec8e64581b7e9f60a128e8864521eeacf69a0d6a3994b47d3f3c252cd4b8ebbdc3406711fe305a80267aa151bc2da60f93f uacctd.conf"
+a02d3b0c2ce56a11d965c395033ebec8e64581b7e9f60a128e8864521eeacf69a0d6a3994b47d3f3c252cd4b8ebbdc3406711fe305a80267aa151bc2da60f93f uacctd.conf
+"
diff --git a/main/po4a/APKBUILD b/main/po4a/APKBUILD
index 69c6845598e..427aedbd5d5 100644
--- a/main/po4a/APKBUILD
+++ b/main/po4a/APKBUILD
@@ -1,34 +1,34 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Contributor: Christian Kampka <christian@kampka.net>
-# Maintainer:
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=po4a
-pkgver=0.66
+pkgver=0.71
pkgrel=0
pkgdesc="Tools for helping translation of documentation"
url="https://po4a.org"
arch="noarch"
license="GPL-2.0-or-later"
options="!check" # test_requires missing: SGMLS and Unicode::GCString
-depends="gettext perl perl-pod-parser"
+depends="gettext perl perl-pod-parser perl-syntax-keyword-try"
makedepends="diffutils docbook-xsl perl-module-build"
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/mquinson/po4a/archive/v$pkgver.tar.gz"
+subpackages="$pkgname-doc $pkgname-lang"
+source="https://github.com/mquinson/po4a/releases/download/v$pkgver/po4a-$pkgver.tar.gz"
build() {
- perl Build.PL installdirs=vendor create_packlist=0
- perl Build
+ perl Build.PL \
+ --installdirs=vendor \
+ --create_packlist=0
+ ./Build
}
check() {
- perl Build test
+ ./Build test
}
package() {
- perl Build destdir=$pkgdir install
- # remove perllocal.pod and .packlist
- find $pkgdir \( -name .packlist -o -name perllocal.pod \) -delete
+ ./Build install --destdir="$pkgdir"
}
sha512sums="
-d8caad948613168e341c44abb1c7a3ff09f8bbcf7a9fb575485f7b39fbcbe6866179c3f77dd8f53a31f3a78774fff0160549720e051f4a272f4504849a8dd38f po4a-0.66.tar.gz
+67ba925433d95ebd6675ce2e58b2664a07a00016ca4b5029845e485dfad1804737a00935e2da162e2488e4c21b947e7fa32b40ac3d9b28d4729d8f93c3f2040b po4a-0.71.tar.gz
"
diff --git a/main/policyd-spf-fs/APKBUILD b/main/policyd-spf-fs/APKBUILD
index ab95fbb761e..1a849883480 100644
--- a/main/policyd-spf-fs/APKBUILD
+++ b/main/policyd-spf-fs/APKBUILD
@@ -2,33 +2,33 @@
# Maintainer: Timo Teras <timo.teras@iki.fi>
pkgname=policyd-spf-fs
pkgver=23
-pkgrel=3
+pkgrel=8
pkgdesc="Policy daemon for checking SPF records in postfix"
-url="http://www.freestone.net/software/policyd-spf-fs/"
+url="https://www.freestone.net/software/policyd-spf-fs/"
arch="all"
-license="GPL"
-depends=""
+license="LGPL-2.1-or-later OR BSD-2-Clause"
makedepends="libspf2-dev"
-install=
-subpackages=""
-source="http://www.freestone.net/ftp/policyd-spf-fs/${pkgname}_$pkgver.tar.gz
+source="https://www.freestone.net/ftp/policyd-spf-fs/policyd-spf-fs_$pkgver.tar.gz
+ format-security.patch
policyd-spf-fs-localpolicy-fix.patch
fix-makefile.patch
"
builddir="$srcdir"/${pkgname}_$pkgver
+options="!check"
build() {
- cd "$builddir"
- make CFLAGS+=-DHAVE_NS_TYPE LIBS="-lspf2" || return 1
+ make CFLAGS+=-DHAVE_NS_TYPE LIBS="-lspf2"
}
package() {
- cd "$builddir"
mkdir -p "$pkgdir"/usr/bin
make PREFIX="$pkgdir"/usr install
}
-sha512sums="2288ea42f25a20261a24ac33dc0ade0e6bdb4266a1f14db5d2cc2a0a5929aa0884c7e55578039d6205c6bb467e351a75231619a48bd0db80ed8c9988bde390f7 policyd-spf-fs_23.tar.gz
+sha512sums="
+2288ea42f25a20261a24ac33dc0ade0e6bdb4266a1f14db5d2cc2a0a5929aa0884c7e55578039d6205c6bb467e351a75231619a48bd0db80ed8c9988bde390f7 policyd-spf-fs_23.tar.gz
+ca7956954c8d8344e473a95eaa680b5f14da8656ef3904d60a56c426e109e051ec923b1c9ee990d664dd984d6e8923c530ba6193b89c0a416ad5a4cc9bd59f92 format-security.patch
89a90f717538f0440d7ad98a979f3b3209dc1d85751786dc5eae867c009db8902a65694614e105aea4ed79c64a8d57cae8fc9f8902b01fdd395bd95e50e53f78 policyd-spf-fs-localpolicy-fix.patch
-b2df1dc4e7982a2e9766f2d80d1a60d9f7a5d5eea9dbb8e8c64cab9c8aebbfb62f786e1f1f5d0e946f28d77009a4c50fd18ac9fac08767aaa888e321ddd308d5 fix-makefile.patch"
+b2df1dc4e7982a2e9766f2d80d1a60d9f7a5d5eea9dbb8e8c64cab9c8aebbfb62f786e1f1f5d0e946f28d77009a4c50fd18ac9fac08767aaa888e321ddd308d5 fix-makefile.patch
+"
diff --git a/main/policyd-spf-fs/format-security.patch b/main/policyd-spf-fs/format-security.patch
new file mode 100644
index 00000000000..8a0dee35e7e
--- /dev/null
+++ b/main/policyd-spf-fs/format-security.patch
@@ -0,0 +1,22 @@
+diff --git a/policyd-spf-fs.c b/policyd-spf-fs.c
+index 198ba98..fd03019 100644
+--- a/policyd-spf-fs.c
++++ b/policyd-spf-fs.c
+@@ -359,7 +359,7 @@ static void pf_response(SPF_client_options_t *opts, SPF_response_t *spf_respo
+ case SPF_RESULT_PASS:
+ strcpy(result, POSTFIX_DUNNO);
+ printf("action=PREPEND X-%s\n",SPF_response_get_received_spf(spf_response));
+- snprintf(spf_comment, RESULTSIZE, SPF_response_get_received_spf(spf_response));
++ snprintf(spf_comment, RESULTSIZE, "%s", SPF_response_get_received_spf(spf_response));
+ break;
+ case SPF_RESULT_FAIL:
+ strcpy(result, POSTFIX_REJECT);
+@@ -386,7 +386,7 @@ static void pf_response(SPF_client_options_t *opts, SPF_response_t *spf_respo
+ default:
+ strcpy(result, POSTFIX_DUNNO);
+ printf("action=PREPEND X-%s\n",SPF_response_get_received_spf(spf_response));
+- snprintf(spf_comment, RESULTSIZE, SPF_response_get_received_spf(spf_response));
++ snprintf(spf_comment, RESULTSIZE, "%s", SPF_response_get_received_spf(spf_response));
+ break;
+ }
+
diff --git a/main/poppler/APKBUILD b/main/poppler/APKBUILD
index 3a1abe1cd38..8b7f03d58e3 100644
--- a/main/poppler/APKBUILD
+++ b/main/poppler/APKBUILD
@@ -1,17 +1,15 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=poppler
-pkgver=22.06.0
-pkgrel=0
+pkgver=24.02.0
+pkgrel=1
pkgdesc="PDF rendering library based on xpdf 3.0"
url="https://poppler.freedesktop.org/"
arch="all"
-options="!check" # Requires dl of testfiles and only checks qt5 libs
-# temp allow textrels on riscv64
-[ "$CARCH" = "riscv64" ] && options="$options textrels"
license="GPL-2.0-or-later"
depends_dev="cairo-dev glib-dev"
makedepends="
$depends_dev
+ boost-dev
cmake
fontconfig-dev
gobject-introspection-dev
@@ -19,6 +17,7 @@ makedepends="
libjpeg-turbo-dev
libpng-dev
libxml2-dev
+ nss-dev
openjpeg-dev
openjpeg-tools
samurai
@@ -26,9 +25,8 @@ makedepends="
zlib-dev
"
subpackages="$pkgname-dev $pkgname-doc $pkgname-glib $pkgname-utils"
-source="https://poppler.freedesktop.org/poppler-$pkgver.tar.xz
- dont-enforce-build-type.patch
- "
+source="https://poppler.freedesktop.org/poppler-$pkgver.tar.xz"
+options="!check" # Requires dl of testfiles and only checks qt5 libs
# secfixes:
# 0.80.0-r0:
@@ -56,15 +54,20 @@ build() {
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
fi
cmake -B build -G Ninja \
- -DCMAKE_BUILD_TYPE=MinSizeRel \
- -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_CPP_TESTS="$(want_check && echo ON || echo OFF)" \
+ -DBUILD_GTK_TESTS="$(want_check && echo ON || echo OFF)" \
+ -DBUILD_MANUAL_TESTS="$(want_check && echo ON || echo OFF)" \
+ -DBUILD_QT5_TESTS="$(want_check && echo ON || echo OFF)" \
+ -DBUILD_QT6_TESTS="$(want_check && echo ON || echo OFF)" \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_INSTALL_LIBDIR=lib \
- -DENABLE_UNSTABLE_API_ABI_HEADERS=ON \
- -DBUILD_QT5_TESTS=OFF \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DENABLE_BOOST=ON \
+ -DENABLE_GPGME=OFF \
+ -DENABLE_LIBCURL=OFF \
-DENABLE_QT5=OFF \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_C_FLAGS="$CFLAGS" \
- -DENABLE_BOOST=OFF \
+ -DENABLE_QT6=OFF \
+ -DENABLE_UNSTABLE_API_ABI_HEADERS=ON \
$CMAKE_CROSSOPTS
cmake --build build
}
@@ -75,32 +78,29 @@ check() {
}
package() {
- DESTDIR="$pkgdir" cmake --build build --target install
+ DESTDIR="$pkgdir" cmake --install build
}
utils() {
pkgdesc="Poppler's xpdf-workalike command line utilities"
- install -d "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
+
+ amove usr/bin
}
glib() {
pkgdesc="Glib wrapper for poppler"
replaces="poppler-gtk"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libpoppler-glib.so.* \
- "$pkgdir"/usr/lib/girepository* \
- "$subpkgdir"/usr/lib/
+
+ amove usr/lib/libpoppler-glib.so.*
+ amove usr/lib/girepository*
}
_cpp() {
pkgdesc="Pure C++ wrapper for poppler"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libpoppler-cpp.so.* \
- "$subpkgdir"/usr/lib/
+
+ amove usr/lib/libpoppler-cpp.so.*
}
sha512sums="
-79e1a1440a0903ea6238dcc7afc4ecdf1f8cc53af94ec5649f631fca568711d48a7ec4046fccb8520818420dc21e4ad1aaf602c22b13f9ce22f4d06edc83c8a3 poppler-22.06.0.tar.xz
-b4141912e73e9a0baaf7b69d0901db24b4aba854c6aff8e01389ac760e4d23606ff29c37626747f24184f1bfc97e25d53a0f99b24eef7661ac9805ea3311802a dont-enforce-build-type.patch
+95a208d21ac4d2d308a7ab3da43b95092ef78cd55ebe873c97e0d6c12d8b9d5c4614f83087616c35e1ed9d67ca606a5e008a98698bd12a332a8206ed4cf55500 poppler-24.02.0.tar.xz
"
diff --git a/main/poppler/dont-enforce-build-type.patch b/main/poppler/dont-enforce-build-type.patch
deleted file mode 100644
index 52968803665..00000000000
--- a/main/poppler/dont-enforce-build-type.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/cmake/modules/PopplerMacros.cmake b/cmake/modules/PopplerMacros.cmake
-index 2aed028..fdbe318 100644
---- a/cmake/modules/PopplerMacros.cmake
-+++ b/cmake/modules/PopplerMacros.cmake
-@@ -75,21 +75,6 @@ if(WIN32)
- "${CMAKE_INSTALL_PREFIX}/bin" )
- endif(WIN32)
-
--if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
-- set(CMAKE_BUILD_TYPE RelWithDebInfo)
--endif(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
--
--string(TOUPPER "${CMAKE_BUILD_TYPE}" _CMAKE_BUILD_TYPE_UPPER)
--set(_known_build_types RELWITHDEBINFO;RELEASE;DEBUG;DEBUGFULL;PROFILE)
--# We override CMAKE_CXX_FLAGS_${_CMAKE_BUILD_TYPE_UPPER} below. If the user
--# selects a CMAKE_BUILD_TYPE that is not handled by the logic below, we will
--# end up dropping the previous flags (e.g. those set in a cross-compilation
--# CMake toolchain file). To avoid surprising compilation errors, we emit an
--# error in that case, so that the user can handle the passed CMAKE_BUILD_TYPE
--# in the compiler flags logic below.
--if (NOT "${_CMAKE_BUILD_TYPE_UPPER}" IN_LIST _known_build_types)
-- message(FATAL_ERROR "Unsupported CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}")
--endif()
- set(_save_cflags "${CMAKE_C_FLAGS}")
- set(_save_cxxflags "${CMAKE_CXX_FLAGS}")
-
diff --git a/main/popt/APKBUILD b/main/popt/APKBUILD
index 6f11ae264cc..86a349d7f08 100644
--- a/main/popt/APKBUILD
+++ b/main/popt/APKBUILD
@@ -1,22 +1,26 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=popt
-pkgver=1.18
-pkgrel=0
+pkgver=1.19
+pkgrel=3
pkgdesc="commandline option parser"
url="https://github.com/rpm-software-management/popt"
arch="all"
license="MIT"
-subpackages="$pkgname-doc $pkgname-dev"
+subpackages="$pkgname-doc $pkgname-static $pkgname-dev"
source="http://ftp.rpm.org/popt/releases/popt-${pkgver%.*}.x/popt-$pkgver.tar.gz"
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
- --libdir=/lib \
- --disable-static
+ --libdir=/lib
make
}
@@ -32,4 +36,6 @@ package() {
mv "$pkgdir"/lib/pkgconfig "$pkgdir"/usr/lib
}
-sha512sums="86422e8762adda3d02d46c20ac74ffe389d4f991d552b6fea729f007345b6426cbeb71160284e2deaa2ce44ce754a9e6cf6ccbd64bff9bc2253df40cdc2f79a5 popt-1.18.tar.gz"
+sha512sums="
+5d1b6a15337e4cd5991817c1957f97fc4ed98659870017c08f26f754e34add31d639d55ee77ca31f29bb631c0b53368c1893bd96cf76422d257f7997a11f6466 popt-1.19.tar.gz
+"
diff --git a/main/portaudio/APKBUILD b/main/portaudio/APKBUILD
index c0d3b74fde1..10f87419b76 100644
--- a/main/portaudio/APKBUILD
+++ b/main/portaudio/APKBUILD
@@ -3,7 +3,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=portaudio
pkgver=19.7.0
-pkgrel=0
+pkgrel=2
pkgdesc="A cross-platform, open-source C language library for real-time audio input and output"
url="http://www.portaudio.com/"
license="MIT"
@@ -34,7 +34,6 @@ prepare() {
autoreconf -if
cd bindings/cpp
- update_config_sub
autoreconf -if
}
@@ -82,7 +81,6 @@ _cxx() {
amove usr/lib/libportaudiocpp*
}
-
sha512sums="
7e347a174109b661a685bcd617cc8fe00929c6fbf28f142fd7709a8ddbb9b5ed6e805be6647a44b4b9441b79e3474561de6f8e351b4ffc024952ed3e0e27ac1c portaudio-v19.7.0.tar.gz
d58e7f8717f9d451535546e16939a959f63ccdd21bcbbc8e08efde2722382b068603bae6d93449476b206c85160d8084d39b39748b4fb43ab2b6eaee704ba1f8 portaudio-pkgconfig-alsa.patch
diff --git a/main/postfix-policyd-spf-perl/APKBUILD b/main/postfix-policyd-spf-perl/APKBUILD
index 2a4c2818803..67d203601cf 100644
--- a/main/postfix-policyd-spf-perl/APKBUILD
+++ b/main/postfix-policyd-spf-perl/APKBUILD
@@ -1,20 +1,19 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=postfix-policyd-spf-perl
pkgver=2.011
-pkgrel=0
+pkgrel=2
pkgdesc="A Sender Policy Framework implementation"
url="http://www.openspf.org/Software"
arch="all"
-license="GPL"
+license="GPL-2.0-or-later"
+options="!check"
depends="perl perl-mail-spf perl-netaddr-ip perl-sys-hostname-long"
-makedepends=""
-install=
-subpackages=""
source="https://launchpad.net/$pkgname/trunk/$pkgver/+download/$pkgname-$pkgver.tar.gz"
package() {
- cd "$srcdir/$pkgname-$pkgver"
- install -m755 -D "$srcdir"/$pkgname-$pkgver/$pkgname "$pkgdir"/usr/bin/$pkgname
+ install -Dm755 -D postfix-policyd-spf-perl -t "$pkgdir"/usr/bin
}
-sha512sums="22fc00bf74912056a67e937a460ac1fd878f1cb1a3bfa7b19bc5f1e6bc1c36d815dcf8c945e818d242ed5e72a6295bb0e1569446e06b09aefb2842993b8016ba postfix-policyd-spf-perl-2.011.tar.gz"
+sha512sums="
+22fc00bf74912056a67e937a460ac1fd878f1cb1a3bfa7b19bc5f1e6bc1c36d815dcf8c945e818d242ed5e72a6295bb0e1569446e06b09aefb2842993b8016ba postfix-policyd-spf-perl-2.011.tar.gz
+"
diff --git a/main/postfix/APKBUILD b/main/postfix/APKBUILD
index c826dabc055..5952532043b 100644
--- a/main/postfix/APKBUILD
+++ b/main/postfix/APKBUILD
@@ -2,17 +2,15 @@
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=postfix
-pkgver=3.7.2
-pkgrel=2
+pkgver=3.9.0
+pkgrel=1
pkgdesc="Secure and fast drop-in replacement for Sendmail (MTA)"
url="https://www.postfix.org/"
arch="all"
license="IPL-1.0 EPL-2.0"
-depends="musl>=1.1.24-r7"
makedepends="
coreutils
cyrus-sasl-dev
- hiredis-dev
icu-dev
libpq-dev
linux-headers
@@ -20,7 +18,7 @@ makedepends="
m4
mariadb-connector-c-dev
openldap-dev
- openssl1.1-compat-dev
+ openssl-dev>3
pcre2-dev
perl
sqlite-dev
@@ -34,7 +32,6 @@ subpackages="
$pkgname-mysql:_mv_dict
$pkgname-pcre:_mv_dict
$pkgname-pgsql:_mv_dict
- $pkgname-redis:_mv_dict
$pkgname-sqlite:_mv_dict
$pkgname-stone
"
@@ -46,9 +43,6 @@ source="https://de.postfix.org/ftpmirror/official/postfix-$pkgver.tar.gz
$pkgname.initd
postfix-install.patch
lmdb-default.patch
- postfix-redis.patch
- dict_redis.c
- dict_redis.h
"
_shared_libs() {
@@ -63,7 +57,6 @@ prepare() {
-e "/^#define ALIAS_DB_MAP/s|:/etc/aliases|:/etc/postfix/aliases|" \
src/util/sys_defs.h
sed -i -e "s:/usr/local/:/usr/:g" conf/master.cf
- cp "$srcdir"/dict_redis.* src/global/
}
build() {
@@ -103,12 +96,6 @@ build() {
# lmdb (make it default)
ccargs="$ccargs -DHAS_LMDB $(pkg-config --cflags lmdb) -DDEF_DB_TYPE=\\\"lmdb\\\""
- # redis
- ccargs="$ccargs -DHAS_REDIS $(pkg-config --cflags hiredis)"
-
- #
- # AUXLIBS_CDB="$cdb_libs" \
-
# compile
make DEBUG="" \
OPT="$CFLAGS" \
@@ -120,7 +107,6 @@ build() {
AUXLIBS_PGSQL="$(pkg-config --libs libpq)" \
AUXLIBS_SQLITE="$(pkg-config --libs sqlite3)" \
AUXLIBS_LMDB="$(pkg-config --libs lmdb)" \
- AUXLIBS_REDIS="$(pkg-config --libs hiredis)" \
config_directory=/etc/postfix \
meta_directory=/etc/postfix \
daemon_directory=/usr/libexec/postfix \
@@ -171,7 +157,7 @@ package() {
"$pkgdir"/var/spool/postfix/public
cd "$pkgdir"/etc/postfix/
- for map in ldap mysql pcre pgsql sqlite lmdb redis; do
+ for map in ldap mysql pcre pgsql sqlite lmdb; do
msg "split $map"
_mvline "^\s*$map" "$map" dynamicmaps.cf
done
@@ -207,11 +193,8 @@ stone() {
find src/smtpstone -mindepth 1 -perm 0755 -exec cp {} "$subpkgdir"/usr/bin \;
}
sha512sums="
-23bb1af6bf3743c741f108da136f64613f9062d121dc459944ac192275335952cd309ffec6c380f5d36430605eec538c2549c3fdee9d4597f739d9d1b0a033fc postfix-3.7.2.tar.gz
+46faaf529a6d2edc5ea747ee0d73a028f7061a923da0ea4b1e1828d935b15f5782d83f7a8472e7c74b45ea0e96666c871efd352934bead28a88ddd3561ade324 postfix-3.9.0.tar.gz
2752e69c4e1857bdcf29444ffb458bca818bc60b9c77c20823c5f5b87c36cb5e0f3217a625a7fe5788d5bfcef7570a1f2149e1233fcd23ccf7ee14190aff47a2 postfix.initd
25cd34f23ca909d4e33aaf3239d1e397260abc7796d9a4456dee4f005682fd3a58aab8106126e5218c95bdddae415a3ef7e2223cd3b0d7b1e2bd76158bb7eaf8 postfix-install.patch
0769e2e503486f8dd6fa21f2c534ad7df7a9f1bb57dde2f0ad61863a3e615d0a6dc18132b27796eb28cd81afb2b4e97c65c9d490a391f835aa3b7b18e74252c5 lmdb-default.patch
-56119ecf73fc7b8f3b8e206f2eca05dab1fb0752d9c37e804faebe5fcfa7feca49b8da871ffc9c7f6a247107fef854e09eaf72fc55cea3ca02960db3f8b13c95 postfix-redis.patch
-717d65aa7c3d12e0a269693ec460a3ed1dcac5709b64ba1a467d64f45c32e9b140d360673a1e38fe1d4182b8422c4a7a2c9df00f86bf6d9c12601b32db4ee6a1 dict_redis.c
-bc8888f1741adaea0217a1debee990c28970a207f1790fa1921579d4c925cf56bf7efd438dee743e8c043e73d7c8f4928d5cd98bc3b273c55ba17ccceaf14987 dict_redis.h
"
diff --git a/main/postfix/dict_redis.c b/main/postfix/dict_redis.c
deleted file mode 100644
index eae24718b14..00000000000
--- a/main/postfix/dict_redis.c
+++ /dev/null
@@ -1,250 +0,0 @@
-/*++
-/* NAME
-/* dict_redis 3
-/* SUMMARY
-/* dictionary manager interface to Redis databases
-/* SYNOPSIS
-/* #include <dict_redis.h>
-/*
-/* DICT *dict_redis_open(name, open_flags, dict_flags)
-/* const char *name;
-/* int open_flags;
-/* int dict_flags;
-/* DESCRIPTION
-/* dict_redis_open() creates a dictionary of type 'redis'. This
-/* dictionary is an interface for the postfix key->value mappings
-/* to redis. The result is a pointer to the installed dictionary,
-/* or a null pointer in case of problems.
-/* .PP
-/* Arguments:
-/* .IP name
-/* Either the path to the Redis configuration file (if it
-/* starts with '/' or '.'), or the prefix which will be used to
-/* obtain main.cf configuration parameters for this search.
-/*
-/* In the first case, the configuration parameters below are
-/* specified in the file as \fIname\fR=\fIvalue\fR pairs.
-/*
-/* In the second case, the configuration parameters are
-/* prefixed with the value of \fIname\fR and an underscore,
-/* and they are specified in main.cf. For example, if this
-/* value is \fIredisDB\fR, the parameters would look like
-/* \fIredisDB_host\fR, \fIpredisDB_prefix\fR, and so on.
-/* .IP other_name
-/* reference for outside use.
-/* .IP open_flags
-/* unused.
-/* .IP dict_flags
-/* See dict_open(3).
-/*
-/* .PP
-/* Configuration parameters:
-/* .IP host
-/* IP address of the redis server hosting the database.
-/* .IP port
-/* Port number to connect to the above.
-/* .IP prefix
-/* Prefix to add to the key when looking it up.
-/* .PP
-/* For example, if you want the map to reference databases on
-/* redis host "127.0.0.1" and prefix the query with VDOM:
-/* Then the configuration file
-/* should read:
-/* .PP
-/* host = 127.0.0.1
-/* .br
-/* port = 6379
-/* .br
-/* prefix = VDOM:
-/* .PP
-/* SEE ALSO
-/* dict(3) generic dictionary manager
-/* HISTORY
-/* .ad
-/* .fi
-/* This feature was introduced with Postfix 3.7.
-/* AUTHOR(S)
-/* Titus Jose
-/* titus.nitt@gmail.com
-/*
-/* Updated by:
-/* Duncan Bellamy
-/* dunk@denkimushi.com
-/*--*/
-
-#include <sys_defs.h>
-
-#ifdef HAS_REDIS
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-/* Utility library. */
-
-#include <msg.h>
-#include <dict.h>
-#include <mymalloc.h>
-#include <vstring.h>
-#include <stringops.h>
-
-/* Global library. */
-
-#include <cfg_parser.h>
-
-/* Application-specific. */
-
-#include <dict_redis.h>
-#include <hiredis.h>
-
-typedef struct {
- DICT dict;
- CFG_PARSER *parser;
- redisContext *c;
- char *host;
- int port;
- char *prefix;
- VSTRING *result;
-} DICT_REDIS;
-
-/* internal function declarations */
-static const char *dict_redis_lookup(DICT *, const char *);
-DICT *dict_redis_open(const char *, int, int);
-static void dict_redis_close(DICT *);
-static void redis_parse_config(DICT_REDIS *, const char *);
-
-
-static const char *dict_redis_lookup(DICT *dict, const char *name)
-{
- const char *myname = "dict_redis_lookup";
- DICT_REDIS *dict_redis = (DICT_REDIS *) dict;
- redisReply *reply;
- const char *r;
- int error;
-
- dict->error = 0;
-
- if (msg_verbose)
- msg_info("%s: Requesting key %s%s", dict_redis->host, dict_redis->prefix, name);
-
- /*
- * Optionally fold the key.
- */
- if (dict->flags & DICT_FLAG_FOLD_FIX) {
- if (dict->fold_buf == 0)
- dict->fold_buf = vstring_alloc(10);
- vstring_strcpy(dict->fold_buf, name);
- name = lowercase(vstring_str(dict->fold_buf));
- }
-
- /*
- * TODO(wietse) domain match, substring query, and key format support as in
- * memcache_table.
- */
- reply = redisCommand(dict_redis->c, "GET %s%s", dict_redis->prefix, name);
- error = dict->error;
- if (reply->str) {
- vstring_strcpy(dict_redis->result, reply->str);
- r = vstring_str(dict_redis->result);
- } else {
- error = 1;
- }
- freeReplyObject(reply);
- return ((error == 0 && *r) ? r : 0);
-}
-
-/* redis_parse_config - parse redis configuration file */
-
-static void redis_parse_config(DICT_REDIS *dict_redis, const char *rediscf)
-{
- const char *myname = "redis_parse_config";
- CFG_PARSER *p = dict_redis->parser;
-
-#if 0
-
- /*
- * TODO(wietse) substring query and key format support as in
- * memcache_table.
- */
- dict_redis->key_format = cfg_get_str(p, "key_format", "%s", 0, 0);
-#endif
- dict_redis->port = cfg_get_int(p, "port", 6379, 0, 0);
- dict_redis->host = cfg_get_str(p, "host", "127.0.0.1", 1, 0);
- dict_redis->prefix = cfg_get_str(p, "prefix", "", 0, 0);
- dict_redis->result = vstring_alloc(10);
-}
-
-/* dict_redis_open - open redis data base */
-
-DICT *dict_redis_open(const char *name, int open_flags, int dict_flags)
-{
- DICT_REDIS *dict_redis;
- CFG_PARSER *parser;
-
- /*
- * Sanity check.
- */
- if (open_flags != O_RDONLY)
- return (dict_surrogate(DICT_TYPE_REDIS, name, open_flags, dict_flags,
- "%s:%s map requires O_RDONLY access mode",
- DICT_TYPE_REDIS, name));
-
- /*
- * Open the configuration file.
- */
- if ((parser = cfg_parser_alloc(name)) == 0)
- return (dict_surrogate(DICT_TYPE_REDIS, name, open_flags, dict_flags,
- "open %s: %m", name));
-
- dict_redis = (DICT_REDIS *) dict_alloc(DICT_TYPE_REDIS, name,
- sizeof(DICT_REDIS));
- dict_redis->dict.lookup = dict_redis_lookup;
- dict_redis->dict.close = dict_redis_close;
- dict_redis->dict.flags = dict_flags;
- dict_redis->parser = parser;
- redis_parse_config(dict_redis, name);
- dict_redis->dict.owner = cfg_get_owner(dict_redis->parser);
- dict_redis->c = redisConnect(dict_redis->host, dict_redis->port);
- if (dict_redis->c == 0 || dict_redis->c->err) {
- msg_warn("%s:%s: Cannot connect to Redis server %s",
- DICT_TYPE_REDIS, name, dict_redis->host);
- dict_redis->dict.close((DICT *) dict_redis);
- return (dict_surrogate(DICT_TYPE_REDIS, name, open_flags, dict_flags,
- "open %s: %m", name));
- }
-#if 0
-
- /*
- * TODO(wietse) domain match, substring query, and key format support as in
- * memcache_table.
- */
- dict_redis->dbc_ctxt = 0;
- db_common_parse(&dict_redis->dict, &dict_redis->dbc_ctxt,
- dict_redis->key_format, 1);
- db_common_parse_domain(dict_redis->parser, dict_redis->dbc_ctxt);
- if (db_common_dict_partial(dict_redis->dbc_ctxt))
- /* Breaks recipient delimiters */
- dict_redis->dict.flags |= DICT_FLAG_PATTERN;
- else
- dict_redis->dict.flags |= DICT_FLAG_FIXED;
-#endif
- return (DICT_DEBUG (&dict_redis->dict));
-}
-
-/* dict_redis_close - close redis database */
-
-static void dict_redis_close(DICT *dict)
-{
- DICT_REDIS *dict_redis = (DICT_REDIS *) dict;
-
- if (dict_redis->c)
- redisFree(dict_redis->c);
- cfg_parser_free(dict_redis->parser);
- myfree(dict_redis->host);
- myfree(dict_redis->prefix);
- vstring_free(dict_redis->result);
- if (dict->fold_buf)
- vstring_free(dict->fold_buf);
- dict_free(dict);
-}
-
-#endif
diff --git a/main/postfix/dict_redis.h b/main/postfix/dict_redis.h
deleted file mode 100644
index b078c4ef888..00000000000
--- a/main/postfix/dict_redis.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#ifndef _DICT_REDIS_H_INCLUDED_
-#define _DICT_REDIS_H_INCLUDED_
-
-/*++
-/* NAME
-/* dict_redis 3h
-/* SUMMARY
-/* dictionary manager interface to redis databases
-/* SYNOPSIS
-/* #include <dict_redis.h>
-/* DESCRIPTION
-/* .nf
-
- /*
- * Utility library.
- */
-#include <dict.h>
-
- /*
- * External interface.
- */
-#define DICT_TYPE_REDIS "redis"
-
-extern DICT *dict_redis_open(const char *, int, int);
-
-/* LICENSE
-/* .ad
-/* .fi
-/* The Secure Mailer license must be distributed with this software.
-/* AUTHOR(S)
-/* Titus Jose
-/* titus.nitt@gmail.com
-/*
-/* Updated by:
-/* Duncan Bellamy
-/* dunk@denkimushi.com
-/*--*/
-
-#endif
diff --git a/main/postfix/postfix-redis.patch b/main/postfix/postfix-redis.patch
deleted file mode 100644
index 28e8d84043a..00000000000
--- a/main/postfix/postfix-redis.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-diff -Nurp a/conf/dynamicmaps.cf b/conf/dynamicmaps.cf
---- a/conf/dynamicmaps.cf 2014-05-30 12:38:33.000000000 +0100
-+++ b/conf/dynamicmaps.cf 2020-08-15 08:59:29.358727776 +0100
-@@ -5,5 +5,6 @@ lmdb ${LIB_PREFIX}lmdb${LIB_SUFFIX} dict
- mysql ${LIB_PREFIX}mysql${LIB_SUFFIX} dict_mysql_open
- pcre ${LIB_PREFIX}pcre${LIB_SUFFIX} dict_pcre_open
- pgsql ${LIB_PREFIX}pgsql${LIB_SUFFIX} dict_pgsql_open
-+redis ${LIB_PREFIX}redis${LIB_SUFFIX} dict_redis_open
- sdbm ${LIB_PREFIX}sdbm${LIB_SUFFIX} dict_sdbm_open mkmap_sdbm_open
- sqlite ${LIB_PREFIX}sqlite${LIB_SUFFIX} dict_sqlite_open
-diff -Nurp a/conf/postfix-files b/conf/postfix-files
---- a/conf/postfix-files 2019-01-29 22:24:42.000000000 +0000
-+++ b/conf/postfix-files 2020-08-15 08:59:59.590574025 +0100
-@@ -78,6 +78,7 @@ $shlib_directory/${LIB_PREFIX}lmdb${LIB_
- $shlib_directory/${LIB_PREFIX}mysql${LIB_SUFFIX}:f:root:-:755
- $shlib_directory/${LIB_PREFIX}pcre${LIB_SUFFIX}:f:root:-:755
- $shlib_directory/${LIB_PREFIX}pgsql${LIB_SUFFIX}:f:root:-:755
-+$shlib_directory/${LIB_PREFIX}redis${LIB_SUFFIX}:f:root:-:755
- $shlib_directory/${LIB_PREFIX}sdbm${LIB_SUFFIX}:f:root:-:755
- $shlib_directory/${LIB_PREFIX}sqlite${LIB_SUFFIX}:f:root:-:755
- $meta_directory/dynamicmaps.cf.d:d:root:-:755
-diff -Nurp a/makedefs b/makedefs
---- a/makedefs 2020-05-06 15:10:47.000000000 +0100
-+++ b/makedefs 2020-08-15 09:02:11.765901819 +0100
-@@ -1167,7 +1167,7 @@ DEFINED_MAP_TYPES=`
-
- # Propagate AUXLIBS_FOO or merge them into global AUXLIBS (i.e. SYSLIBS).
-
--PLUGGABLE_MAPS="CDB LDAP LMDB MYSQL PCRE PGSQL SDBM SQLITE"
-+PLUGGABLE_MAPS="CDB LDAP LMDB MYSQL PCRE PGSQL REDIS SDBM SQLITE"
-
- case "$dynamicmaps" in
- yes) for name in $PLUGGABLE_MAPS
-diff -Nurp a/src/global/mail_dict.c b/src/global/mail_dict.c
---- a/src/global/mail_dict.c 2014-06-22 01:42:55.000000000 +0100
-+++ b/src/global/mail_dict.c 2020-08-15 09:03:33.445486419 +0100
-@@ -45,6 +45,7 @@
- #include <dict_ldap.h>
- #include <dict_mysql.h>
- #include <dict_pgsql.h>
-+#include <dict_redis.h>
- #include <dict_sqlite.h>
- #include <dict_memcache.h>
- #include <mail_dict.h>
-@@ -68,6 +69,9 @@ static const DICT_OPEN_INFO dict_open_in
- #ifdef HAS_PGSQL
- DICT_TYPE_PGSQL, dict_pgsql_open,
- #endif
-+#ifdef HAS_REDIS
-+ DICT_TYPE_REDIS, dict_redis_open,
-+#endif
- #ifdef HAS_SQLITE
- DICT_TYPE_SQLITE, dict_sqlite_open,
- #endif
-diff -Nurp a/src/global/Makefile.in b/src/global/Makefile.in
---- a/src/global/Makefile.in 2020-01-12 13:50:56.000000000 +0000
-+++ b/src/global/Makefile.in 2020-08-15 09:12:53.593101032 +0100
-@@ -3,7 +3,7 @@ SRCS = abounce.c anvil_clnt.c been_here.
- canon_addr.c cfg_parser.c cleanup_strerror.c cleanup_strflags.c \
- clnt_stream.c conv_time.c db_common.c debug_peer.c debug_process.c \
- defer.c deliver_completed.c deliver_flock.c deliver_pass.c \
-- deliver_request.c dict_ldap.c dict_mysql.c dict_pgsql.c \
-+ deliver_request.c dict_ldap.c dict_mysql.c dict_pgsql.c dict_redis.c \
- dict_proxy.c dict_sqlite.c domain_list.c dot_lockfile.c dot_lockfile_as.c \
- dsb_scan.c dsn.c dsn_buf.c dsn_mask.c dsn_print.c dsn_util.c \
- ehlo_mask.c ext_prop.c file_id.c flush_clnt.c header_opts.c \
-@@ -78,13 +78,13 @@ OBJS = abounce.o anvil_clnt.o been_here.
- # MAP_OBJ is for maps that may be dynamically loaded with dynamicmaps.cf.
- # When hard-linking these maps, makedefs sets NON_PLUGIN_MAP_OBJ=$(MAP_OBJ),
- # otherwise it sets the PLUGIN_* macros.
--MAP_OBJ = dict_ldap.o dict_mysql.o dict_pgsql.o dict_sqlite.o mkmap_cdb.o \
-+MAP_OBJ = dict_ldap.o dict_mysql.o dict_pgsql.o dict_redis.o dict_sqlite.o mkmap_cdb.o \
- mkmap_lmdb.o mkmap_sdbm.o
- HDRS = abounce.h anvil_clnt.h been_here.h bounce.h bounce_log.h \
- canon_addr.h cfg_parser.h cleanup_user.h clnt_stream.h config.h \
- conv_time.h db_common.h debug_peer.h debug_process.h defer.h \
- deliver_completed.h deliver_flock.h deliver_pass.h deliver_request.h \
-- dict_ldap.h dict_mysql.h dict_pgsql.h dict_proxy.h dict_sqlite.h domain_list.h \
-+ dict_ldap.h dict_mysql.h dict_pgsql.h dict_redis.h dict_proxy.h dict_sqlite.h domain_list.h \
- dot_lockfile.h dot_lockfile_as.h dsb_scan.h dsn.h dsn_buf.h \
- dsn_mask.h dsn_print.h dsn_util.h ehlo_mask.h ext_prop.h \
- file_id.h flush_clnt.h header_opts.h header_token.h input_transp.h \
-@@ -131,7 +131,7 @@ LIBS = ../../lib/lib$(LIB_PREFIX)util$(L
- LIB_DIR = ../../lib
- INC_DIR = ../../include
- PLUGIN_MAP_SO = $(LIB_PREFIX)ldap$(LIB_SUFFIX) $(LIB_PREFIX)mysql$(LIB_SUFFIX) \
-- $(LIB_PREFIX)pgsql$(LIB_SUFFIX) $(LIB_PREFIX)sqlite$(LIB_SUFFIX) \
-+ $(LIB_PREFIX)pgsql$(LIB_SUFFIX) $(LIB_PREFIX)redis$(LIB_SUFFIX) $(LIB_PREFIX)sqlite$(LIB_SUFFIX) \
- $(LIB_PREFIX)lmdb$(LIB_SUFFIX) $(LIB_PREFIX)cdb$(LIB_SUFFIX) \
- $(LIB_PREFIX)sdbm$(LIB_SUFFIX)
- MAKES =
-@@ -167,6 +167,9 @@ $(LIB_PREFIX)mysql$(LIB_SUFFIX): dict_my
- $(LIB_PREFIX)pgsql$(LIB_SUFFIX): dict_pgsql.o
- $(PLUGIN_LD) $(SHLIB_RPATH) -o $@ dict_pgsql.o $(AUXLIBS_PGSQL)
-
-+$(LIB_PREFIX)redis$(LIB_SUFFIX): dict_redis.o
-+ $(PLUGIN_LD) $(SHLIB_RPATH) -o $@ dict_redis.o $(AUXLIBS_REDIS)
-+
- $(LIB_PREFIX)sqlite$(LIB_SUFFIX): dict_sqlite.o
- $(PLUGIN_LD) $(SHLIB_RPATH) -o $@ dict_sqlite.o $(AUXLIBS_SQLITE)
-
-@@ -521,6 +524,8 @@ surrogate_test: mail_dict surrogate.ref
- echo get foo| $(SHLIB_ENV) $(VALGRIND) ./mail_dict mysql:/xx read >>surrogate.tmp 2>&1
- echo get foo| $(SHLIB_ENV) $(VALGRIND) ./mail_dict pgsql:/xx write >>surrogate.tmp 2>&1
- echo get foo| $(SHLIB_ENV) $(VALGRIND) ./mail_dict pgsql:/xx read >>surrogate.tmp 2>&1
-+ echo get foo| $(SHLIB_ENV) $(VALGRIND) ./mail_dict redis:/xx write >>surrogate.tmp 2>&1
-+ echo get foo| $(SHLIB_ENV) $(VALGRIND) ./mail_dict redis:/xx read >>surrogate.tmp 2>&1
- echo get foo| $(SHLIB_ENV) $(VALGRIND) ./mail_dict sqlite:/xx write >>surrogate.tmp 2>&1
- echo get foo| $(SHLIB_ENV) $(VALGRIND) ./mail_dict sqlite:/xx read >>surrogate.tmp 2>&1
- echo get foo| $(SHLIB_ENV) $(VALGRIND) ./mail_dict memcache:/xx read >>surrogate.tmp 2>&1
-@@ -1183,6 +1188,17 @@ dict_pgsql.o: db_common.h
- dict_pgsql.o: dict_pgsql.c
- dict_pgsql.o: dict_pgsql.h
- dict_pgsql.o: string_list.h
-+dict_redis.o: ../../include/dict.h
-+dict_redis.o: ../../include/msg.h
-+dict_redis.o: ../../include/mymalloc.h
-+dict_redis.o: ../../include/vbuf.h
-+dict_redis.o: ../../include/vstream.h
-+dict_redis.o: ../../include/vstring.h
-+dict_redis.o: ../../include/stringops.h
-+dict_redis.o: ../../include/sys_defs.h
-+dict_redis.o: cfg_parser.h
-+dict_redis.o: dict_redis.c
-+dict_redis.o: dict_redis.h
- dict_proxy.o: ../../include/argv.h
- dict_proxy.o: ../../include/attr.h
- dict_proxy.o: ../../include/check_arg.h
-@@ -1768,6 +1784,7 @@ mail_dict.o: dict_ldap.h
- mail_dict.o: dict_memcache.h
- mail_dict.o: dict_mysql.h
- mail_dict.o: dict_pgsql.h
-+mail_dict.o: dict_redis.h
- mail_dict.o: dict_proxy.h
- mail_dict.o: dict_sqlite.h
- mail_dict.o: dynamicmaps.h
diff --git a/main/postgresql-common/APKBUILD b/main/postgresql-common/APKBUILD
index b84c36af695..cba62e5a1fb 100644
--- a/main/postgresql-common/APKBUILD
+++ b/main/postgresql-common/APKBUILD
@@ -1,8 +1,8 @@
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
pkgname=postgresql-common
-pkgver=1.1
-pkgrel=0
+pkgver=1.2
+pkgrel=1
pkgdesc="Common files for PostgreSQL"
url="https://www.postgresql.org/"
arch="noarch"
@@ -25,18 +25,20 @@ package() {
mkdir -p "$pkgdir"
install -D -m755 "$srcdir"/pg_versions "$pkgdir"/usr/sbin/pg_versions
-
- install -D -m755 "$srcdir"/postgresql.initd "$pkgdir"/etc/init.d/postgresql
- install -D -m644 "$srcdir"/postgresql.confd "$pkgdir"/etc/conf.d/postgresql
}
openrc() {
- default_openrc
+ pkgdesc="OpenRC init scripts for PostgreSQL"
+ depends=""
replaces="postgresql-openrc" # for backward compatibility
+ # Do not set install_if here.
+
+ install -D -m755 "$srcdir"/postgresql.initd "$subpkgdir"/etc/init.d/postgresql
+ install -D -m644 "$srcdir"/postgresql.confd "$subpkgdir"/etc/conf.d/postgresql
}
sha512sums="
-f9887e260bbcccb1a96030d3065459f1c0b4b8c50e62008ab1e0964e5b281de330e3d25b311eb88a729c23342193bedb3549913b24facd4f39c1398f819c0d8c pg_versions
-41590b3009c2d6e3b215bd8f1fa7f06a15c382a7609b60b171dae67dd7b5f71e651a2d3f6a8af0e9376ca94200ded745ae864f0b34565c6ccd7857389574e9e5 postgresql.initd
-611cca04bdf97284bca2c85688e3512dd5fcce2c1d40dcf2082855008cbe988dccbdc589af5021a120b2de10455b3700712f99d1b60da1e10ee953516f030db5 postgresql.confd
+3da6244dc23d89fd337ff76cdf619d9a13ef0545cb169b8592ad871e3e79719667e685d42acbd0aacee4c2aa556753530642cb24cc1322a2068f639d0b874b2b pg_versions
+6db1ae70b0a2ac1e5985139f56a0f2e3e0e93e0604a79807e73052097718141c16865473cd372a03e02565360ef92b28ef53b7a8d477841be65e541a8821b66b postgresql.initd
+b82351afd7eb89530b1b86aa6d362e8710035a3623c4b8125723038103634274312fc88dd8a18b2e387cca9e9ae4158b76479b59bc7ff6ba0b15a7a806e21cd5 postgresql.confd
"
diff --git a/main/postgresql-common/pg_versions b/main/postgresql-common/pg_versions
index 994ca76024d..c40fb08c7c3 100644
--- a/main/postgresql-common/pg_versions
+++ b/main/postgresql-common/pg_versions
@@ -141,8 +141,8 @@ set_default() {
[ "$pgver" = latest ] && pgver=$(list | head -n1)
- [ -f /usr/libexec/postgresql$1/PG_VERSION ] \
- || die 101 "postgresql$1-client is not installed"
+ [ -f /usr/libexec/postgresql"$pgver"/PG_VERSION ] \
+ || die 101 "postgresql$pgver-client is not installed"
create_links "$pgver" || rc=1
clean_broken_links || rc=1
diff --git a/main/postgresql-common/postgresql-common.trigger b/main/postgresql-common/postgresql-common.trigger
index 8520b54b34e..da2e2dc02b3 100644
--- a/main/postgresql-common/postgresql-common.trigger
+++ b/main/postgresql-common/postgresql-common.trigger
@@ -59,7 +59,7 @@ latest_ver=$(apk list -Pa postgresql \
default_ver=$(pg_versions get-default -q) || exit 0
-if [ "$default_ver" -lt "$latest_ver" ]; then
+if [ "$latest_ver" ] && [ "$default_ver" -lt "$latest_ver" ]; then
cat >&2 <<-EOF
*
* You are using 'postgresql$default_ver'. It's recommended to upgrade to the latest
diff --git a/main/postgresql-common/postgresql.confd b/main/postgresql-common/postgresql.confd
index cec10fca9d8..fbf2b04c0bb 100644
--- a/main/postgresql-common/postgresql.confd
+++ b/main/postgresql-common/postgresql.confd
@@ -2,6 +2,10 @@
#
# For more information about shutdown modes see
# https://www.postgresql.org/docs/13/server-shutdown.html.
+#
+# NOTE: If you need to export environment variables for the database process,
+# just add `export VAR=VAL` here (e.g. `export PGPASSFILE="/path/to/.pgpass"`).
+# Config variable 'env_vars' is deprecated.
# Which port and socket to bind PostgreSQL.
# This may be overriden in postgresql.conf.
@@ -34,12 +38,7 @@
# -B is the number of shared buffers (has to be at least 2x the value for -N)
# Please read man postgres(1) for more options. Many of these options can be
# set directly in the configuration file.
-#pg_opts="-N 512 -B 1024"
-
-# Pass extra environment variables. If you have to export environment variables
-# for the database process, this can be done here.
-# Don't forget to escape quotes.
-#env_vars="PGPASSFILE=\"/path/to/.pgpass\""
+# pg_opts="-N 512 -B 1024"
# Location of postmaster.log.
#logfile="/var/log/postgresql/postmaster.log"
@@ -62,10 +61,19 @@
# Where the data directory is located/to be created.
#data_dir="/var/lib/postgresql/$pg_version/data"
-# Location of configuration files. Fallbacks to $data_dir if not defined and
-# /etc/postgresql/postgresql.conf doesn't exist.
+# Where the configuration files are localed/to be created.
+# If left at the default value and /etc/postgresql/postgresql.conf doesn't
+# exist when starting the service, it fallbacks to $data_dir.
#conf_dir="/etc/postgresql"
-# Additional options to pass to initdb.
-# See man initdb(1) for available options.
-#initdb_opts="--locale=en_US.UTF-8"
+# Additional options to pass to initdb. See man initdb(1) for available options.
+#
+# The init script's default is
+# "-E UTF-8 --locale-provider=icu --icu-locale=en-001-x-icu --data-checksums",
+# for PostgreSQL 15+ and "-E UTF-8 --locale=C --data-checksums" for older.
+#
+# NOTE: musl libc doesn't support locales; if you use a locale other than "C",
+# postgres will work, but it will still behave like with "C". You can and
+# should use ICU-based collations instead of libc, but only since
+# PostgreSQL 15, they can be used as the (default) database collation.
+# initdb_opts=
diff --git a/main/postgresql-common/postgresql.initd b/main/postgresql-common/postgresql.initd
index a4ba83c64c7..bb487f40cc5 100644
--- a/main/postgresql-common/postgresql.initd
+++ b/main/postgresql-common/postgresql.initd
@@ -30,7 +30,6 @@ description_setup="Initialize a new $name cluster"
: ${conf_dir:="/etc/postgresql"}
: ${logfile:="/var/log/postgresql/postmaster.log"}
: ${env_vars:=}
-: ${initdb_opts:=}
: ${pg_opts:=}
: ${port:=5432}
@@ -59,6 +58,7 @@ start_pre() {
check_deprecated_var rude_quit stop_fast_timeout
check_deprecated_var force_timeout stop_force_timeout
check_deprecated_var force_quit stop_force_timeout
+ check_deprecated_var env_vars 'export NAME=VALUE'
# For backward compatibility only.
[ "$rude_quit" = no ] && [ "stop_fast_timeout" -eq 10 ] && stop_fast_timeout=0
@@ -223,6 +223,12 @@ setup() {
eend 1 "$data_dir/base already exists!"; return 1
fi
+ if [ "$pg_version" -ge 15 ]; then
+ : ${initdb_opts:="-E UTF-8 --locale-provider=icu --icu-locale=en-001-x-icu --data-checksums"}
+ else
+ : ${initdb_opts:="-E UTF-8 --locale=C --data-checksums"}
+ fi
+
# If data_dir exists, backup configs.
if [ -d "$data_dir" ]; then
bkpdir="$(mktemp -d)"
diff --git a/main/postgresql13/disable-broken-tests.patch b/main/postgresql13/disable-broken-tests.patch
deleted file mode 100644
index 1ebccbc416b..00000000000
--- a/main/postgresql13/disable-broken-tests.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-These tests fail due to some really weird linking issue like:
-
- ERROR: could not load library "<builddir>/tmp_install/usr/lib/postgresql/libpqwalreceiver.so": Error loading shared library libpq.so.5: No such file or directory (needed by <builddir>/tmp_install/usr/lib/postgresql/libpqwalreceiver.so)
-
-psql dynamically loads libpq and libpqwalreceiver libs using pg_dlopen()
-which is an alias for dlopen() on Linux. The above message comes from
-src/backend/utils/fmgr/dfmgr.c. The part "Error loading ..." is from
-pg_dlerror() which is alias for dlerror().
-
-LD_LIBRARY_PATH is set and passed correctly. However, the error
-disappeared when I've copied libpq.so* to /usr/lib...
-
-Also:
-
- $ LD_LIBRARY_PATH=$(pwd) ldd postgresql/libpqwalreceiver.so
- ldd (0x280d565e000)
- libpq.so.5 => <builddir>/tmp_install/usr/lib/libpq.so.5 (0x280d520d000)
- libc.musl-x86_64.so.1 => ldd (0x280d565e000)
- libssl.so.43 => /lib/libssl.so.43 (0x280d4fc2000)
- libcrypto.so.41 => /lib/libcrypto.so.41 (0x280d4c1c000)
- libldap_r-2.4.so.2 => /usr/lib/libldap_r-2.4.so.2 (0x280d49d6000)
- liblber-2.4.so.2 => /usr/lib/liblber-2.4.so.2 (0x280d47c9000)
- libsasl2.so.3 => /usr/lib/libsasl2.so.3 (0x280d45b0000)
- Error relocating postgresql/libpqwalreceiver.so: appendStringInfoChar: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: MyLatch: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: MemoryContextDelete: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: errstart: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: pg_atoi: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: TupleDescGetAttInMetadata: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: WalReceiverFunctions: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: WaitLatchOrSocket: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: MemoryContextReset: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: pfree: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: errmsg: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: tuplestore_puttuple: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: pchomp: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: appendStringInfoString: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: errfinish: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: pstrdup: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: palloc0: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: errdetail: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: ResetLatch: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: work_mem: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: AllocSetContextCreate: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: CurrentMemoryContext: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: tuplestore_begin_heap: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: BuildTupleFromCStrings: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: errcode: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: MyDatabaseId: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: GetDatabaseEncodingName: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: palloc: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: pg_lsn_in: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: ProcessInterrupts: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: elog_start: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: DirectFunctionCall1Coll: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: elog_finish: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: CreateTemplateTupleDesc: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: InterruptPending: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: TupleDescInitEntry: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: initStringInfo: symbol not found w
-
-These symbols are really not provided by libpq.
-
-I wasted one day trying to figure out what's going on here, but still
-have no idea. :(
-
---- a/src/test/regress/parallel_schedule
-+++ b/src/test/regress/parallel_schedule
-@@ -73,7 +73,7 @@
- # ----------
- # Another group of parallel tests
- # ----------
--test: brin gin gist spgist privileges init_privs security_label collate matview lock replica_identity rowsecurity object_address tablesample groupingsets drop_operator password identity generated join_hash
-+test: brin gin gist spgist privileges init_privs security_label collate matview lock replica_identity rowsecurity tablesample groupingsets drop_operator password identity generated join_hash
-
- # ----------
- # Another group of parallel tests
-@@ -89,7 +89,7 @@
- test: write_parallel
-
- # no relation related tests can be put in this group
--test: publication subscription
-+test: publication
-
- # ----------
- # Another group of parallel tests
---- a/src/test/modules/dummy_seclabel/Makefile
-+++ b/src/test/modules/dummy_seclabel/Makefile
-@@ -6,7 +6,7 @@
- EXTENSION = dummy_seclabel
- DATA = dummy_seclabel--1.0.sql
-
--REGRESS = dummy_seclabel
-+#REGRESS = dummy_seclabel
-
- ifdef USE_PGXS
- PG_CONFIG = pg_config
---- a/contrib/postgres_fdw/Makefile
-+++ b/contrib/postgres_fdw/Makefile
-@@ -10,7 +10,7 @@
- EXTENSION = postgres_fdw
- DATA = postgres_fdw--1.0.sql
-
--REGRESS = postgres_fdw
-+#REGRESS = postgres_fdw
-
- ifdef USE_PGXS
- PG_CONFIG = pg_config
---- a/contrib/dblink/Makefile
-+++ b/contrib/dblink/Makefile
-@@ -10,7 +10,7 @@
- dblink--unpackaged--1.0.sql
- PGFILEDESC = "dblink - connect to other PostgreSQL databases"
-
--REGRESS = paths dblink
-+#REGRESS = paths dblink
- REGRESS_OPTS = --dlpath=$(top_builddir)/src/test/regress
- EXTRA_CLEAN = sql/paths.sql expected/paths.out
-
diff --git a/main/postgresql13/disable-test-collate.icu.utf8.patch b/main/postgresql13/disable-test-collate.icu.utf8.patch
deleted file mode 100644
index b539576723f..00000000000
--- a/main/postgresql13/disable-test-collate.icu.utf8.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Regression test collate.icu.utf8 fails with the following error:
-
- ERROR: collations with different collate and ctype values are not supported by ICU
- CONTEXT: SQL statement "CREATE COLLATION test1 (provider = icu, lc_collate = 'C', lc_ctype = 'C.UTF-8');"
- PL/pgSQL function inline_code_block line 3 at EXECUTE
-
-I don't know how to fix nor what's the cause. Unsetting LC_COLLATE (it's set
-to `C` by /etc/profile.d/locale.sh) or setting it to `C.UTF-8` didn't help.
-
---- a/src/test/regress/parallel_schedule
-+++ b/src/test/regress/parallel_schedule
-@@ -78,7 +78,7 @@
- # ----------
- # Another group of parallel tests
- # ----------
--test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan collate.icu.utf8 incremental_sort
-+test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan incremental_sort
-
- # rules cannot run concurrently with any test that creates
- # a view or rule in the public schema
diff --git a/main/postgresql13/fix-test-temp-schema-cleanup.patch b/main/postgresql13/fix-test-temp-schema-cleanup.patch
deleted file mode 100644
index 45ced2c05fc..00000000000
--- a/main/postgresql13/fix-test-temp-schema-cleanup.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-A nasty workaround for the faulty test.
-
-Related to https://www.postgresql.org/message-id/20220304.113347.2105652521035137491.horikyota.ntt@gmail.com
-but pg_terminate_backend() accepts the second argument since PostgreSQL 14.
---- a/src/test/isolation/expected/temp-schema-cleanup.out
-+++ b/src/test/isolation/expected/temp-schema-cleanup.out
-@@ -86,6 +86,7 @@
- SELECT pg_terminate_backend(pg_backend_pid());
-
- FATAL: terminating connection due to administrator command
-+FATAL: terminating connection due to administrator command
- server closed the connection unexpectedly
- This probably means the server terminated abnormally
- before or while processing the request.
diff --git a/main/postgresql13/initdb.patch b/main/postgresql13/initdb.patch
deleted file mode 100644
index 59a872a4998..00000000000
--- a/main/postgresql13/initdb.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c
---- a/src/bin/initdb/initdb.c
-+++ b/src/bin/initdb/initdb.c
-@@ -3259,9 +3259,7 @@
- /* translator: This is a placeholder in a shell command. */
- appendPQExpBuffer(start_db_cmd, " -l %s start", _("logfile"));
-
-- printf(_("\nSuccess. You can now start the database server using:\n\n"
-- " %s\n\n"),
-- start_db_cmd->data);
-+ printf(_("\nSuccess.\n\n"));
-
- destroyPQExpBuffer(start_db_cmd);
-
diff --git a/main/postgresql13/plperl-5.36-new-warnings-category.patch b/main/postgresql13/plperl-5.36-new-warnings-category.patch
deleted file mode 100644
index 68f906d2eaf..00000000000
--- a/main/postgresql13/plperl-5.36-new-warnings-category.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From: rubicon <rubicon@mailo.com>
-Date: Thu, 02 Jun 2022 09:57:43 +0000
-Subject: [PATCH] Fix compatibility of PL/Perl testsuite with Perl 5.36
-
-Perl 5.36 moves the "Useless use of sort in scalar context" warning
-from the old "void" category to a new "scalar" category. This causes
-the PL/Perl testsuite to fail because the expected warning is not
-produced when it sets warnings in the "void" category as FATAL.
-
-This patch adds the "scalar" category to the list of FATAL warnings,
-so the warning is produced as expected by the testsuite. The "void"
-category needs to be kept for compatibility with older Perl versions.
-
-Reference: https://perldoc.perl.org/perl5360delta#Changes-to-Existing-Diagnostics
-
-
---- a/src/pl/plperl/expected/plperl.out
-+++ b/src/pl/plperl/expected/plperl.out
-@@ -725,7 +725,7 @@
- CONTEXT: PL/Perl anonymous code block
- -- check that we can "use warnings" (in this case to turn a warn into an error)
- -- yields "ERROR: Useless use of sort in scalar context."
--DO $do$ use warnings FATAL => qw(void) ; my @y; my $x = sort @y; 1; $do$ LANGUAGE plperl;
-+DO $do$ use warnings FATAL => qw(void scalar) ; my @y; my $x = sort @y; 1; $do$ LANGUAGE plperl;
- ERROR: Useless use of sort in scalar context at line 1.
- CONTEXT: PL/Perl anonymous code block
- -- make sure functions marked as VOID without an explicit return work
---- a/src/pl/plperl/sql/plperl.sql
-+++ b/src/pl/plperl/sql/plperl.sql
-@@ -470,7 +470,7 @@
-
- -- check that we can "use warnings" (in this case to turn a warn into an error)
- -- yields "ERROR: Useless use of sort in scalar context."
--DO $do$ use warnings FATAL => qw(void) ; my @y; my $x = sort @y; 1; $do$ LANGUAGE plperl;
-+DO $do$ use warnings FATAL => qw(void scalar) ; my @y; my $x = sort @y; 1; $do$ LANGUAGE plperl;
-
- -- make sure functions marked as VOID without an explicit return work
- CREATE OR REPLACE FUNCTION myfuncs() RETURNS void AS $$
diff --git a/main/postgresql14/disable-broken-tests.patch b/main/postgresql14/disable-broken-tests.patch
deleted file mode 100644
index 1ebccbc416b..00000000000
--- a/main/postgresql14/disable-broken-tests.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-These tests fail due to some really weird linking issue like:
-
- ERROR: could not load library "<builddir>/tmp_install/usr/lib/postgresql/libpqwalreceiver.so": Error loading shared library libpq.so.5: No such file or directory (needed by <builddir>/tmp_install/usr/lib/postgresql/libpqwalreceiver.so)
-
-psql dynamically loads libpq and libpqwalreceiver libs using pg_dlopen()
-which is an alias for dlopen() on Linux. The above message comes from
-src/backend/utils/fmgr/dfmgr.c. The part "Error loading ..." is from
-pg_dlerror() which is alias for dlerror().
-
-LD_LIBRARY_PATH is set and passed correctly. However, the error
-disappeared when I've copied libpq.so* to /usr/lib...
-
-Also:
-
- $ LD_LIBRARY_PATH=$(pwd) ldd postgresql/libpqwalreceiver.so
- ldd (0x280d565e000)
- libpq.so.5 => <builddir>/tmp_install/usr/lib/libpq.so.5 (0x280d520d000)
- libc.musl-x86_64.so.1 => ldd (0x280d565e000)
- libssl.so.43 => /lib/libssl.so.43 (0x280d4fc2000)
- libcrypto.so.41 => /lib/libcrypto.so.41 (0x280d4c1c000)
- libldap_r-2.4.so.2 => /usr/lib/libldap_r-2.4.so.2 (0x280d49d6000)
- liblber-2.4.so.2 => /usr/lib/liblber-2.4.so.2 (0x280d47c9000)
- libsasl2.so.3 => /usr/lib/libsasl2.so.3 (0x280d45b0000)
- Error relocating postgresql/libpqwalreceiver.so: appendStringInfoChar: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: MyLatch: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: MemoryContextDelete: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: errstart: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: pg_atoi: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: TupleDescGetAttInMetadata: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: WalReceiverFunctions: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: WaitLatchOrSocket: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: MemoryContextReset: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: pfree: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: errmsg: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: tuplestore_puttuple: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: pchomp: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: appendStringInfoString: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: errfinish: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: pstrdup: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: palloc0: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: errdetail: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: ResetLatch: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: work_mem: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: AllocSetContextCreate: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: CurrentMemoryContext: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: tuplestore_begin_heap: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: BuildTupleFromCStrings: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: errcode: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: MyDatabaseId: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: GetDatabaseEncodingName: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: palloc: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: pg_lsn_in: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: ProcessInterrupts: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: elog_start: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: DirectFunctionCall1Coll: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: elog_finish: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: CreateTemplateTupleDesc: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: InterruptPending: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: TupleDescInitEntry: symbol not found
- Error relocating postgresql/libpqwalreceiver.so: initStringInfo: symbol not found w
-
-These symbols are really not provided by libpq.
-
-I wasted one day trying to figure out what's going on here, but still
-have no idea. :(
-
---- a/src/test/regress/parallel_schedule
-+++ b/src/test/regress/parallel_schedule
-@@ -73,7 +73,7 @@
- # ----------
- # Another group of parallel tests
- # ----------
--test: brin gin gist spgist privileges init_privs security_label collate matview lock replica_identity rowsecurity object_address tablesample groupingsets drop_operator password identity generated join_hash
-+test: brin gin gist spgist privileges init_privs security_label collate matview lock replica_identity rowsecurity tablesample groupingsets drop_operator password identity generated join_hash
-
- # ----------
- # Another group of parallel tests
-@@ -89,7 +89,7 @@
- test: write_parallel
-
- # no relation related tests can be put in this group
--test: publication subscription
-+test: publication
-
- # ----------
- # Another group of parallel tests
---- a/src/test/modules/dummy_seclabel/Makefile
-+++ b/src/test/modules/dummy_seclabel/Makefile
-@@ -6,7 +6,7 @@
- EXTENSION = dummy_seclabel
- DATA = dummy_seclabel--1.0.sql
-
--REGRESS = dummy_seclabel
-+#REGRESS = dummy_seclabel
-
- ifdef USE_PGXS
- PG_CONFIG = pg_config
---- a/contrib/postgres_fdw/Makefile
-+++ b/contrib/postgres_fdw/Makefile
-@@ -10,7 +10,7 @@
- EXTENSION = postgres_fdw
- DATA = postgres_fdw--1.0.sql
-
--REGRESS = postgres_fdw
-+#REGRESS = postgres_fdw
-
- ifdef USE_PGXS
- PG_CONFIG = pg_config
---- a/contrib/dblink/Makefile
-+++ b/contrib/dblink/Makefile
-@@ -10,7 +10,7 @@
- dblink--unpackaged--1.0.sql
- PGFILEDESC = "dblink - connect to other PostgreSQL databases"
-
--REGRESS = paths dblink
-+#REGRESS = paths dblink
- REGRESS_OPTS = --dlpath=$(top_builddir)/src/test/regress
- EXTRA_CLEAN = sql/paths.sql expected/paths.out
-
diff --git a/main/postgresql14/disable-test-collate.icu.utf8.patch b/main/postgresql14/disable-test-collate.icu.utf8.patch
deleted file mode 100644
index d430b717324..00000000000
--- a/main/postgresql14/disable-test-collate.icu.utf8.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Regression test collate.icu.utf8 fails with the following error:
-
- ERROR: collations with different collate and ctype values are not supported by ICU
- CONTEXT: SQL statement "CREATE COLLATION test1 (provider = icu, lc_collate = 'C', lc_ctype = 'C.UTF-8');"
- PL/pgSQL function inline_code_block line 3 at EXECUTE
-
-I don't know how to fix nor what's the cause. Unsetting LC_COLLATE (it's set
-to `C` by /etc/profile.d/locale.sh) or setting it to `C.UTF-8` didn't help.
-
---- a/src/test/regress/parallel_schedule
-+++ b/src/test/regress/parallel_schedule
-@@ -86,7 +86,7 @@
- # ----------
- # Another group of parallel tests
- # ----------
--test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan tidrangescan collate.icu.utf8 incremental_sort
-+test: create_table_like alter_generic alter_operator misc async dbsize misc_functions sysviews tsrf tid tidscan tidrangescan incremental_sort
-
- # rules cannot run concurrently with any test that creates
- # a view or rule in the public schema
diff --git a/main/postgresql14/APKBUILD b/main/postgresql15/APKBUILD
index d27dc6bc4ab..48c180a4fb5 100644
--- a/main/postgresql14/APKBUILD
+++ b/main/postgresql15/APKBUILD
@@ -2,29 +2,37 @@
# Contributor: G.J.R. Timmer <gjr.timmer@gmail.com>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
_pkgname=postgresql
-pkgver=14.4
-pkgrel=0
-_majorver=${pkgver%%.*}
+pkgver=15.6
+pkgrel=2
+_majorver=${pkgver%%[_.]*}
# Should this aport provide libpq* and libecpg*? true/false
# Exactly one postgresql aport must be the default one!
-_default_ver=true
+_default_ver=false
pkgname=$_pkgname$_majorver
pkgdesc="A sophisticated object-relational DBMS, version $_majorver"
url="https://www.postgresql.org/"
-arch="all"
+arch="all !riscv64 !loongarch64"
license="PostgreSQL"
-_llvmver=14
+_llvmver=16
depends="$pkgname-client postgresql-common tzdata"
depends_dev="
libpq-dev
libecpg-dev
- clang
+ clang$_llvmver
icu-dev
llvm$_llvmver
- openssl1.1-compat-dev
+ lz4-dev
+ openssl-dev
+ zstd-dev
+ "
+checkdepends="
+ diffutils
+ icu-data-full
+ perl-ipc-run
"
-checkdepends="diffutils"
makedepends="$depends_dev
+ bison
+ flex
libxml2-dev
linux-headers
llvm$_llvmver-dev
@@ -35,7 +43,6 @@ makedepends="$depends_dev
tcl-dev
util-linux-dev
zlib-dev
- bison flex
"
pkgusers="postgres"
pkggroups="postgres"
@@ -65,26 +72,46 @@ subpackages="
$pkgname-openrc
"
source="https://ftp.postgresql.org/pub/source/v$pkgver/postgresql-$pkgver.tar.bz2
+ fix-tests-on-musl.patch
initdb.patch
perl-rpath.patch
per-version-dirs.patch
unix_socket_directories.patch
- disable-broken-tests.patch
- disable-test-collate.icu.utf8.patch
disable-html-docs.patch
remove-libecpg_compat.patch
czech-snowball-stemmer.patch
make-split-headers.patch
jit-datalayout-mismatch-on-s390x-and-x86.patch
pg_config-add-major-version.patch
+ dont-use-locale-a-on-musl.patch
+ icu-collations-hack.patch
+ fix-test-check_guc.patch
+ fix-test-postgres_fdw.patch
libpgport-pkglibdir.patch.txt
external-libpq.patch.txt
pltcl_create_tables.sql
"
builddir="$srcdir/$_pkgname-$pkgver"
+options="net"
# secfixes:
+# 15.6-r0:
+# - CVE-2024-0985
+# 15.5-r0:
+# - CVE-2023-5868
+# - CVE-2023-5869
+# - CVE-2023-5870
+# 15.4-r0:
+# - CVE-2023-39418
+# - CVE-2023-39417
+# 15.3-r0:
+# - CVE-2023-2454
+# - CVE-2023-2455
+# 15.2-r0:
+# - CVE-2022-41862
+# 14.5-r0:
+# - CVE-2022-2625
# 14.3-r0:
# - CVE-2022-1552
# 14.1-r0:
@@ -177,6 +204,9 @@ _client_cmds="
prepare() {
default_prepare
+ # FIXME: This test is broken, skip it for now.
+ sed -i '/test_pg_dump/d' src/test/modules/Makefile
+
if $_default_ver; then
cp -rl "$builddir" "$builddir-ifaces"
else
@@ -192,6 +222,8 @@ build() {
export PYTHON=/usr/bin/python3
export CFLAGS="${CFLAGS/-Os/-O2}"
export CPPFLAGS="${CPPFLAGS/-Os/-O2}"
+ # older clang versions don't have a 'clang' exe anymore.
+ export CLANG=clang-$_llvmver
_configure --with-ldap
make world
@@ -212,6 +244,7 @@ _configure() {
case "$CARCH" in
riscv64) _extra_opts='--disable-spinlocks';;
esac
+ want_check && _extra_opts="$_extra_opts --enable-tap-tests"
./configure \
--build=$CBUILD \
@@ -235,6 +268,8 @@ _configure() {
--with-perl \
--with-python \
--with-tcl \
+ --with-lz4 \
+ --with-zstd \
$_extra_opts \
"$@"
}
@@ -243,6 +278,10 @@ check() {
_run_tests src/test
_run_tests src/pl
_run_tests contrib
+
+ if $_default_ver; then
+ _run_tests src/interfaces/libpq
+ fi
}
package() {
@@ -428,9 +467,6 @@ plpython3_contrib() {
make -C contrib/hstore_plpython DESTDIR="$subpkgdir" install
make -C contrib/ltree_plpython DESTDIR="$subpkgdir" install
- cd "$subpkgdir"/$_datadir/extension/
- rm ./*plpython2* ./*plpythonu*
-
_contrib_common
}
@@ -514,20 +550,23 @@ _setdiff() {
}
sha512sums="
-dd2f80248684e331d2ffb1e26cd2a285df1fb18710807a0c31aedabf917912ce9267f8ca26318e5371d916c6fe476f8a17886d82d3ff86a974e6f24c19a6aafb postgresql-14.4.tar.bz2
+d9f158d844ec21bc5a7eccad9193dfe026d3df46a011980412ad7d150b3894c01754be0053bed530976047d7eff657204ac321138ba8da6eac8fb7b93b9520ad postgresql-15.6.tar.bz2
+e3b05a2df199440cd558cd729aac9ee53cda6dd675f0ecdecda27d6158cc1b2f3f3fdb2b69657adba93886f4331183ec9f63c71868f34020a5ff82575e0a4202 fix-tests-on-musl.patch
73080f61ae274a214966d2d010de49c8c90eb3180e4f56d86a9e23063eaddbe7f8d2c40ed414591c16bc9cfe88577866af2a965c2b6effb54965d19ef96a3fa9 initdb.patch
27e00b58fe5c3899c66fc0dde51846c14701bcfedd132b106d676783ba603e8cbdc6e620f29b52dc892bdaa9302052788cf5e575a1659f61c017a12e0d2ee4d0 perl-rpath.patch
-92d28f91b57a01afc81a00d386e87b9e2aa812f341a1578f262af372ee905530205592eda595111827582acceacd1bf244d1df130330003f05e74e4ddb5a7c4f per-version-dirs.patch
+6d992f53bf8b3e914933f89bc3f01591de2b707cf809aeee4210f9d59e2dc11e3fce697f50a7660f54925a2f0a6154eaeab0f59a969f76572dac5ff6f08faa71 per-version-dirs.patch
d0040599d7646b709af4e3413bf0c228090f256395e806f3fee230ccc6037ed9c0df1cd160d01b6a73b25a742fdd3fb070733a14a78f53d297fbdbbb44f6f878 unix_socket_directories.patch
-c4179fcd8b71791cdc41ea7b622cf82e9bd42ac1de66999234b98a83c0c508c79c492a9301274fe859c06a3f1a8b17b53ab97541ab76801a985f8f0b9b8716e7 disable-broken-tests.patch
-30ce932ca34ffcd78ec20e7ead09faa3abe147faea776e073628985c7d9aa3a40b1e6f2ee681a0ffe5dc502770eea333cb752ed34c5471a9cee663bc5f6225e3 disable-test-collate.icu.utf8.patch
2e33e1ae38d60e0daf3ed18e6eaa9ddf6762b4b1bb7e51f1d2690e3df9d602aa1a700e603ba3ee69314a75a963131c7dc67c1b1f8b7eb5564e9c4253e81a4db4 disable-html-docs.patch
d8eb4274a54b94bed4a2ded7ae775c5a95ca0f051b831b859ccf78bf6d2ea6fe89a9a0611771f6ad85573995a7e3af1fdf5859e20cae3267a52239f12e1b61c3 remove-libecpg_compat.patch
673707b331cd09c105d18f39e83ec39371886d5d8cf706b6ebbd30ace294fa3377c391bea1ab409c001644c90ac718e3250cbc4acd9224bc0e7ac1f86c832424 czech-snowball-stemmer.patch
5262f4944844bccc839c4441570b9eb2e0792390234ebfdb8ebb7b83380ce5f5de84b038cb03045526da202a185af9c3972c2ae1b9e0e743a95c6e84f4621cf9 make-split-headers.patch
c24986becfd73546a062612335e53b4da34829e42a0c30e85ed7481924f13b1fd0a0e5079d680905a52afea1e99f2210cc3692c529a34a74cd6961c88cce9163 jit-datalayout-mismatch-on-s390x-and-x86.patch
7790e4e4374f7bdc6b4484ba87a5fa709d30d3cbdce61ee7bf9c5dfce40cb51c7bd54ab42f4050fb48eede08ef573624d819128e57cc8c976e01202854740308 pg_config-add-major-version.patch
-f8ed2b7b96fd22cd87c982151e659d82bcae10033a97f403f7847fce6daa8fc580e998cfb3813af9cb59a12f0c6bcc276397c28b1fc48321eed8c7ba5f3f92ed libpgport-pkglibdir.patch.txt
+b0688d66fdd7d612c24d9aa69bdd80d30787d2d6409b4524c79b41797144fc743213460e6de9c536bfb72da089f92cf89731f15137b1407fd04ca97fd393bfd2 dont-use-locale-a-on-musl.patch
+a98e5ecdd421f68f11b55bf07bf60280cf80508f89c5d21a084c7e7aa3be0a22c88b8e2ce611a13dd5c11efdd052eb9018271b549040c30663b9fd9b7c4fc611 icu-collations-hack.patch
+b64e75778fcb7a8221cf1a3d81c6a1ade3910e3398f63dd6f9be743b1dd7e392ea626dda8da976f4149f838c18ba536e7c9f9da268ae7e03b78268304d89bafc fix-test-check_guc.patch
+1698362340f0b1f18c4ddecef41bcc9ea2998eaab49b285134415544ab13f44a0265def194768fc7180b4b04d4964cdcaf0252184eaa12d8e417193fb5cf7795 fix-test-postgres_fdw.patch
+cde5fbf5a39e5de18a40ec1d9ac919dcf166e0ca178a6b9dbdfded8d16b4969b91917a2550bbf33eccd1ecb3bd9e0753a47012e60f4efe720bbef2a2c5368529 libpgport-pkglibdir.patch.txt
6078defb3da67e7df96665cc130d32b69eebfcaf49d92eef368ea8eea8bb311fab56064c104bc97f53da9cd925301bef696b506af33e0b66d65bc6cd41ec7499 external-libpq.patch.txt
5c9bfd9e295dcf678298bf0aa974347a7c311d6e7c2aa76a6920fcb751d01fd1ab77abbec11f3c672f927ad9deaa88e04e370c0b5cd1b60087554c474b748731 pltcl_create_tables.sql
"
diff --git a/main/postgresql14/czech-snowball-stemmer.patch b/main/postgresql15/czech-snowball-stemmer.patch
index eb84c0511b0..eb84c0511b0 100644
--- a/main/postgresql14/czech-snowball-stemmer.patch
+++ b/main/postgresql15/czech-snowball-stemmer.patch
diff --git a/main/postgresql13/disable-html-docs.patch b/main/postgresql15/disable-html-docs.patch
index 6fbf90373c9..6fbf90373c9 100644
--- a/main/postgresql13/disable-html-docs.patch
+++ b/main/postgresql15/disable-html-docs.patch
diff --git a/main/postgresql15/dont-use-locale-a-on-musl.patch b/main/postgresql15/dont-use-locale-a-on-musl.patch
new file mode 100644
index 00000000000..ce61856d4e2
--- /dev/null
+++ b/main/postgresql15/dont-use-locale-a-on-musl.patch
@@ -0,0 +1,31 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Wed, 03 Aug 2022 20:40:33 +0200
+Subject: [PATCH] Don't generate collations based on locale(1)
+
+When the PostgreSQL cluster is initialized (using initdb(1)) or the
+DB administrator calls `pg_import_system_collations()` directly, this
+function creates COLLATIONs in the system catalog (pg_collations).
+If the locale(1) command is available, this function creates COLLATIONs
+based on the `locale -a` output.
+
+The locale(1) command is normally not available on Alpine Linux, so it
+does nothing and only the default and ICU-based COLLATIONs are created.
+However, there's a musl-locales package that provides locale(1), but it
+doesn't implement any collations. This package just provides locale
+translations. So if the user happens to have locale(1) installed and they
+initialize the cluster or call `pg_import_system_collations()`, they end
+up with dozens of libc-based COLLATIONs in the system catalog that
+actually do not work! They will all behave like "C", because musl libc
+doesn't implement locales.
+
+--- a/src/backend/commands/collationcmds.c
++++ b/src/backend/commands/collationcmds.c
+@@ -401,7 +401,7 @@
+
+
+ /* will we use "locale -a" in pg_import_system_collations? */
+-#if defined(HAVE_LOCALE_T) && !defined(WIN32)
++#if defined(HAVE_LOCALE_T) && !defined(WIN32) && defined(__GLIBC__) // XXX-Patched
+ #define READ_LOCALE_A_OUTPUT
+ #endif
+
diff --git a/main/postgresql13/external-libpq.patch.txt b/main/postgresql15/external-libpq.patch.txt
index e148edd1b8f..e148edd1b8f 100644
--- a/main/postgresql13/external-libpq.patch.txt
+++ b/main/postgresql15/external-libpq.patch.txt
diff --git a/main/postgresql15/fix-test-check_guc.patch b/main/postgresql15/fix-test-check_guc.patch
new file mode 100644
index 00000000000..48502e95978
--- /dev/null
+++ b/main/postgresql15/fix-test-check_guc.patch
@@ -0,0 +1,13 @@
+--- a/src/test/modules/test_misc/t/003_check_guc.pl
++++ b/src/test/modules/test_misc/t/003_check_guc.pl
+@@ -36,6 +36,10 @@
+
+ # use the sample file from the temp install
+ my $share_dir = $node->config_data('--sharedir');
++# XXX-Patched: --sharedir returns /usr/share/...
++if (-d "../../../../tmp_install") {
++ $share_dir = "../../../../tmp_install" . $share_dir
++}
+ my $sample_file = "$share_dir/postgresql.conf.sample";
+
+ # List of all the GUCs found in the sample file.
diff --git a/main/postgresql15/fix-test-postgres_fdw.patch b/main/postgresql15/fix-test-postgres_fdw.patch
new file mode 100644
index 00000000000..7fdd8467e32
--- /dev/null
+++ b/main/postgresql15/fix-test-postgres_fdw.patch
@@ -0,0 +1,13 @@
+The list of options is different due to linking with a newer libpq library.
+
+--- a/contrib/postgres_fdw/expected/postgres_fdw.out
++++ b/contrib/postgres_fdw/expected/postgres_fdw.out
+@@ -9728,7 +9728,7 @@
+ END;
+ $d$;
+ ERROR: invalid option "password"
+-HINT: Valid options in this context are: service, passfile, channel_binding, connect_timeout, dbname, host, hostaddr, port, options, application_name, keepalives, keepalives_idle, keepalives_interval, keepalives_count, tcp_user_timeout, sslmode, sslcompression, sslcert, sslkey, sslrootcert, sslcrl, sslcrldir, sslsni, requirepeer, ssl_min_protocol_version, ssl_max_protocol_version, gssencmode, krbsrvname, gsslib, target_session_attrs, use_remote_estimate, fdw_startup_cost, fdw_tuple_cost, extensions, updatable, truncatable, fetch_size, batch_size, async_capable, parallel_commit, keep_connections
++HINT: Valid options in this context are: service, passfile, channel_binding, connect_timeout, dbname, host, hostaddr, port, options, application_name, keepalives, keepalives_idle, keepalives_interval, keepalives_count, tcp_user_timeout, sslmode, sslcompression, sslcert, sslkey, sslcertmode, sslrootcert, sslcrl, sslcrldir, sslsni, requirepeer, require_auth, ssl_min_protocol_version, ssl_max_protocol_version, gssencmode, krbsrvname, gsslib, gssdelegation, target_session_attrs, load_balance_hosts, use_remote_estimate, fdw_startup_cost, fdw_tuple_cost, extensions, updatable, truncatable, fetch_size, batch_size, async_capable, parallel_commit, keep_connections
+ CONTEXT: SQL statement "ALTER SERVER loopback_nopw OPTIONS (ADD password 'dummypw')"
+ PL/pgSQL function inline_code_block line 3 at EXECUTE
+ -- If we add a password for our user mapping instead, we should get a different
diff --git a/main/postgresql15/fix-tests-on-musl.patch b/main/postgresql15/fix-tests-on-musl.patch
new file mode 100644
index 00000000000..405ac8fb1a4
--- /dev/null
+++ b/main/postgresql15/fix-tests-on-musl.patch
@@ -0,0 +1,96 @@
+Patch-Source: https://github.com/postgres/postgres/commit/8a92b70c11ba2b5f0d2b2611d9453dd90f618629
+--
+From 8a92b70c11ba2b5f0d2b2611d9453dd90f618629 Mon Sep 17 00:00:00 2001
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Date: Tue, 26 Mar 2024 11:44:49 -0400
+Subject: [PATCH] Allow "make check"-style testing to work with musl C library.
+
+The musl dynamic linker saves a pointer to the process' environment
+value of LD_LIBRARY_PATH very early in startup. When we move/clobber
+the environment to make more room for ps status strings, we clobber
+that value and thereby prevent libraries from being found via
+LD_LIBRARY_PATH, which breaks the use of a temporary installation
+for testing purposes. To fix, stop collecting usable space for
+ps status if we notice that the variable we are about to clobber
+is LD_LIBRARY_PATH. This will result in some reduction in how long
+the ps status can be, but it's only likely to occur in temporary
+test contexts, so it doesn't seem like a big problem. In any case,
+we don't have to do it if we see we are on glibc, which surely is
+where the majority of our Linux testing is done.
+
+Thomas Munro, Bruce Momjian, and Tom Lane, per report from Wolfgang
+Walther. Back-patch to all supported branches, with the hope that
+we'll set up a buildfarm animal to test on this platform.
+
+Discussion: https://postgr.es/m/fddd1cd6-dc16-40a2-9eb5-d7fef2101488@technowledgy.de
+---
+ src/backend/utils/misc/ps_status.c | 35 ++++++++++++++++++++++++++----
+ 1 file changed, 31 insertions(+), 4 deletions(-)
+
+diff --git a/src/backend/utils/misc/ps_status.c b/src/backend/utils/misc/ps_status.c
+index 5d829e6e483a3..9da6377402024 100644
+--- a/src/backend/utils/misc/ps_status.c
++++ b/src/backend/utils/misc/ps_status.c
+@@ -107,7 +107,8 @@ static char **save_argv;
+ * (The original argv[] will not be overwritten by this routine, but may be
+ * overwritten during init_ps_display. Also, the physical location of the
+ * environment strings may be moved, so this should be called before any code
+- * that might try to hang onto a getenv() result.)
++ * that might try to hang onto a getenv() result. But see hack for musl
++ * within.)
+ *
+ * Note that in case of failure this cannot call elog() as that is not
+ * initialized yet. We rely on write_stderr() instead.
+@@ -122,7 +123,7 @@ save_ps_display_args(int argc, char **argv)
+
+ /*
+ * If we're going to overwrite the argv area, count the available space.
+- * Also move the environment to make additional room.
++ * Also move the environment strings to make additional room.
+ */
+ {
+ char *end_of_area = NULL;
+@@ -151,7 +152,33 @@ save_ps_display_args(int argc, char **argv)
+ for (i = 0; environ[i] != NULL; i++)
+ {
+ if (end_of_area + 1 == environ[i])
+- end_of_area = environ[i] + strlen(environ[i]);
++ {
++ /*
++ * The musl dynamic linker keeps a static pointer to the
++ * initial value of LD_LIBRARY_PATH, if that is defined in the
++ * process's environment. Therefore, we must not overwrite the
++ * value of that setting and thus cannot advance end_of_area
++ * beyond it. Musl does not define any identifying compiler
++ * symbol, so we have to do this unless we see a symbol
++ * identifying a Linux libc we know is safe.
++ */
++#if defined(__linux__) && (!defined(__GLIBC__) && !defined(__UCLIBC__))
++ if (strncmp(environ[i], "LD_LIBRARY_PATH=", 16) == 0)
++ {
++ /*
++ * We can overwrite the name, but stop at the equals sign.
++ * Future loop iterations will not find any more
++ * contiguous space, but we don't break early because we
++ * need to count the total number of environ[] entries.
++ */
++ end_of_area = environ[i] + 15;
++ }
++ else
++#endif
++ {
++ end_of_area = environ[i] + strlen(environ[i]);
++ }
++ }
+ }
+
+ ps_buffer = argv[0];
+@@ -183,7 +210,7 @@ save_ps_display_args(int argc, char **argv)
+ * If we're going to change the original argv[] then make a copy for
+ * argument parsing purposes.
+ *
+- * (NB: do NOT think to remove the copying of argv[], even though
++ * NB: do NOT think to remove the copying of argv[], even though
+ * postmaster.c finishes looking at argv[] long before we ever consider
+ * changing the ps display. On some platforms, getopt() keeps pointers
+ * into the argv array, and will get horribly confused when it is
diff --git a/main/postgresql15/icu-collations-hack.patch b/main/postgresql15/icu-collations-hack.patch
new file mode 100644
index 00000000000..1e12ebe84df
--- /dev/null
+++ b/main/postgresql15/icu-collations-hack.patch
@@ -0,0 +1,893 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Wed, 03 Aug 2022 20:40:33 +0200
+Subject: [PATCH] Hack to generate usable ICU-based collations with
+ icu-data-en
+
+This is a downstream patch for Alpine Linux, it should never be
+upstreamed in this form!
+
+When the PostgreSQL cluster is initialized (using initdb(1)) or the
+DB administrator calls `pg_import_system_collations()` directly, this
+function creates COLLATIONs in the system catalog (pg_collations).
+There are two types: libc-based and ICU-based. The latter are created
+based on *locales* (not collations) known to ICU, i.e. based on the ICU
+data installed at the time.
+
+collationcmds.c includes the following comment:
+> We use uloc_countAvailable()/uloc_getAvailable() rather than
+> ucol_countAvailable()/ucol_getAvailable(). The former returns a full
+> set of language+region combinations, whereas the latter only returns
+> language+region combinations if they are distinct from the language's
+> base collation. So there might not be a de-DE or en-GB, which would be
+> confusing.
+
+There's a problem with this approach: locales and collations are two
+different things. ICU data may include collation algorithms and data for
+all or some languages, but not locales (language + country/region).
+The collation data is small compared to locales. There are ~800 locales
+(combinations of language, country and variants), but only 98 collations.
+There's a mapping between collations and locales hidden somewhere in ICU
+data.
+
+Since full ICU data is very big (30 MiB), we have created a stripped down
+variant with only English locale (package icu-data-en, 2.6 MiB). It also
+includes a subset of 18 collations that cover hundreds of languages.
+
+When the cluster is initialized or `pg_import_system_collations()` is
+called directly and only icu-data-en (default) is installed, the user
+ends up with only und, en and en_GB ICU-based COLLATIONs. The user can
+create missing COLLATIONs manually, but this a) is not expected nor
+reasonable behaviour, b) it's not easy to find out for which locales
+there's a collation available for.
+
+I couldn't find any way how to list all language+country variants for the
+given collation. It can be constructed when we iterate over all locales,
+but this approach is useless when we don't have the locale data
+available... I should also note that the reverse lookup (locale ->
+collation) is not a problem for ICU when full locale data is stripped.
+
+So I ended up with a very ugly workaround: pre-generating a list of
+collation -> locale mapping and embedding it in the collationcmds.c
+source. Then we replace `uloc_countAvailable()`/`uloc_getAvailable()`
+with `ucol_countAvailable()` / `ucol_getAvailable()` to iterate over
+the collations instead of locales and lookup the locales in the
+pre-generated list.
+
+This data is quite stable, there's a very low risk of getting outdated in
+a way that would be a problem.
+
+`icu_coll_locales` has been generated using the following code:
+
+ #include <stdio.h>
+ #include <string.h>
+ #include <unicode/ucol.h>
+
+ // Copy-pasted from collationcmds.c.
+ static char *get_icu_language_tag(const char *localename) {
+ char buf[ULOC_FULLNAME_CAPACITY];
+ UErrorCode status = U_ZERO_ERROR;
+
+ uloc_toLanguageTag(localename, buf, sizeof(buf), true, &status);
+
+ if (U_FAILURE(status)) {
+ fprintf(stderr, "could not convert locale name \"%s\" to language tag: %s\n",
+ localename, u_errorName(status));
+ return strdup(localename);
+ }
+ return strdup(buf);
+ }
+
+ int main() {
+ UErrorCode status = U_ZERO_ERROR;
+
+ for (int i = 0; i < uloc_countAvailable(); i++) {
+ const char *locale = uloc_getAvailable(i);
+
+ UCollator *collator = ucol_open(locale, &status);
+ const char *actual_locale = ucol_getLocaleByType(collator, ULOC_ACTUAL_LOCALE, &status);
+
+ // Strip @.*
+ char *ptr = strchr(actual_locale, '@');
+ if (ptr != NULL) {
+ *ptr = '\0';
+ }
+ if (strcmp(actual_locale, "root") == 0) {
+ actual_locale = "";
+ }
+ if (strcmp(actual_locale, locale) != 0) {
+ printf("\"%s\", \"%s\",\n", actual_locale, get_icu_language_tag(locale));
+ }
+ ucol_close(collator);
+ }
+ return 0;
+ }
+
+compiled and executed using:
+
+ gcc -o main main.c $(pkg-config --libs icu-uc icu-io) && ./main | sort | uniq
+
+--- a/src/backend/commands/collationcmds.c
++++ b/src/backend/commands/collationcmds.c
+@@ -572,6 +572,715 @@
+
+ return result;
+ }
++
++/*
++ * XXX-Patched: Added a static mapping: collation name (parent) to locale (children)
++ * I'm gonna burn in hell for this...
++ */
++static char* icu_coll_locales[] = {
++ "", "agq",
++ "", "agq-CM",
++ "", "ak",
++ "", "ak-GH",
++ "", "asa",
++ "", "asa-TZ",
++ "", "ast",
++ "", "ast-ES",
++ "", "bas",
++ "", "bas-CM",
++ "", "bem",
++ "", "bem-ZM",
++ "", "bez",
++ "", "bez-TZ",
++ "", "bm",
++ "", "bm-ML",
++ "", "brx",
++ "", "brx-IN",
++ "", "ca",
++ "", "ca-AD",
++ "", "ca-ES",
++ "", "ca-FR",
++ "", "ca-IT",
++ "", "ccp",
++ "", "ccp-BD",
++ "", "ccp-IN",
++ "", "ce",
++ "", "ce-RU",
++ "", "cgg",
++ "", "cgg-UG",
++ "", "ckb",
++ "", "ckb-IQ",
++ "", "ckb-IR",
++ "", "dav",
++ "", "dav-KE",
++ "", "de",
++ "", "de-AT",
++ "", "de-BE",
++ "", "de-CH",
++ "", "de-DE",
++ "", "de-IT",
++ "", "de-LI",
++ "", "de-LU",
++ "", "dje",
++ "", "dje-NE",
++ "", "doi",
++ "", "doi-IN",
++ "", "dua",
++ "", "dua-CM",
++ "", "dyo",
++ "", "dyo-SN",
++ "", "dz",
++ "", "dz-BT",
++ "", "ebu",
++ "", "ebu-KE",
++ "", "en",
++ "", "en-001",
++ "", "en-150",
++ "", "en-AE",
++ "", "en-AG",
++ "", "en-AI",
++ "", "en-AS",
++ "", "en-AT",
++ "", "en-AU",
++ "", "en-BB",
++ "", "en-BE",
++ "", "en-BI",
++ "", "en-BM",
++ "", "en-BS",
++ "", "en-BW",
++ "", "en-BZ",
++ "", "en-CA",
++ "", "en-CC",
++ "", "en-CH",
++ "", "en-CK",
++ "", "en-CM",
++ "", "en-CX",
++ "", "en-CY",
++ "", "en-DE",
++ "", "en-DG",
++ "", "en-DK",
++ "", "en-DM",
++ "", "en-ER",
++ "", "en-FI",
++ "", "en-FJ",
++ "", "en-FK",
++ "", "en-FM",
++ "", "en-GB",
++ "", "en-GD",
++ "", "en-GG",
++ "", "en-GH",
++ "", "en-GI",
++ "", "en-GM",
++ "", "en-GU",
++ "", "en-GY",
++ "", "en-HK",
++ "", "en-IE",
++ "", "en-IL",
++ "", "en-IM",
++ "", "en-IN",
++ "", "en-IO",
++ "", "en-JE",
++ "", "en-JM",
++ "", "en-KE",
++ "", "en-KI",
++ "", "en-KN",
++ "", "en-KY",
++ "", "en-LC",
++ "", "en-LR",
++ "", "en-LS",
++ "", "en-MG",
++ "", "en-MH",
++ "", "en-MO",
++ "", "en-MP",
++ "", "en-MS",
++ "", "en-MT",
++ "", "en-MU",
++ "", "en-MV",
++ "", "en-MW",
++ "", "en-MY",
++ "", "en-NA",
++ "", "en-NF",
++ "", "en-NG",
++ "", "en-NL",
++ "", "en-NR",
++ "", "en-NU",
++ "", "en-NZ",
++ "", "en-PG",
++ "", "en-PH",
++ "", "en-PK",
++ "", "en-PN",
++ "", "en-PR",
++ "", "en-PW",
++ "", "en-RW",
++ "", "en-SB",
++ "", "en-SC",
++ "", "en-SD",
++ "", "en-SE",
++ "", "en-SG",
++ "", "en-SH",
++ "", "en-SI",
++ "", "en-SL",
++ "", "en-SS",
++ "", "en-SX",
++ "", "en-SZ",
++ "", "en-TC",
++ "", "en-TK",
++ "", "en-TO",
++ "", "en-TT",
++ "", "en-TV",
++ "", "en-TZ",
++ "", "en-UG",
++ "", "en-UM",
++ "", "en-US",
++ "", "en-VC",
++ "", "en-VG",
++ "", "en-VI",
++ "", "en-VU",
++ "", "en-WS",
++ "", "en-ZA",
++ "", "en-ZM",
++ "", "en-ZW",
++ "", "eu",
++ "", "eu-ES",
++ "", "ewo",
++ "", "ewo-CM",
++ "", "ff",
++ "", "ff-Latn",
++ "", "ff-Latn-BF",
++ "", "ff-Latn-CM",
++ "", "ff-Latn-GH",
++ "", "ff-Latn-GM",
++ "", "ff-Latn-GN",
++ "", "ff-Latn-GW",
++ "", "ff-Latn-LR",
++ "", "ff-Latn-MR",
++ "", "ff-Latn-NE",
++ "", "ff-Latn-NG",
++ "", "ff-Latn-SL",
++ "", "ff-Latn-SN",
++ "", "fr",
++ "", "fr-BE",
++ "", "fr-BF",
++ "", "fr-BI",
++ "", "fr-BJ",
++ "", "fr-BL",
++ "", "fr-CD",
++ "", "fr-CF",
++ "", "fr-CG",
++ "", "fr-CH",
++ "", "fr-CI",
++ "", "fr-CM",
++ "", "fr-DJ",
++ "", "fr-DZ",
++ "", "fr-FR",
++ "", "fr-GA",
++ "", "fr-GF",
++ "", "fr-GN",
++ "", "fr-GP",
++ "", "fr-GQ",
++ "", "fr-HT",
++ "", "fr-KM",
++ "", "fr-LU",
++ "", "fr-MA",
++ "", "fr-MC",
++ "", "fr-MF",
++ "", "fr-MG",
++ "", "fr-ML",
++ "", "fr-MQ",
++ "", "fr-MR",
++ "", "fr-MU",
++ "", "fr-NC",
++ "", "fr-NE",
++ "", "fr-PF",
++ "", "fr-PM",
++ "", "fr-RE",
++ "", "fr-RW",
++ "", "fr-SC",
++ "", "fr-SN",
++ "", "fr-SY",
++ "", "fr-TD",
++ "", "fr-TG",
++ "", "fr-TN",
++ "", "fr-VU",
++ "", "fr-WF",
++ "", "fr-YT",
++ "", "fur",
++ "", "fur-IT",
++ "", "fy",
++ "", "fy-NL",
++ "", "ga",
++ "", "ga-GB",
++ "", "ga-IE",
++ "", "gd",
++ "", "gd-GB",
++ "", "gsw",
++ "", "gsw-CH",
++ "", "gsw-FR",
++ "", "gsw-LI",
++ "", "guz",
++ "", "guz-KE",
++ "", "gv",
++ "", "gv-IM",
++ "", "ia",
++ "", "ia-001",
++ "", "id",
++ "", "id-ID",
++ "", "ii",
++ "", "ii-CN",
++ "", "it",
++ "", "it-CH",
++ "", "it-IT",
++ "", "it-SM",
++ "", "it-VA",
++ "", "jgo",
++ "", "jgo-CM",
++ "", "jmc",
++ "", "jmc-TZ",
++ "", "jv",
++ "", "jv-ID",
++ "", "kab",
++ "", "kab-DZ",
++ "", "kam",
++ "", "kam-KE",
++ "", "kde",
++ "", "kde-TZ",
++ "", "kea",
++ "", "kea-CV",
++ "", "kgp",
++ "", "kgp-BR",
++ "", "khq",
++ "", "khq-ML",
++ "", "ki",
++ "", "ki-KE",
++ "", "kkj",
++ "", "kkj-CM",
++ "", "kln",
++ "", "kln-KE",
++ "", "ks",
++ "", "ks-Arab",
++ "", "ks-Arab-IN",
++ "", "ks-Deva",
++ "", "ks-Deva-IN",
++ "", "ksb",
++ "", "ksb-TZ",
++ "", "ksf",
++ "", "ksf-CM",
++ "", "ksh",
++ "", "ksh-DE",
++ "", "kw",
++ "", "kw-GB",
++ "", "lag",
++ "", "lag-TZ",
++ "", "lb",
++ "", "lb-LU",
++ "", "lg",
++ "", "lg-UG",
++ "", "lrc",
++ "", "lrc-IQ",
++ "", "lrc-IR",
++ "", "lu",
++ "", "lu-CD",
++ "", "luo",
++ "", "luo-KE",
++ "", "luy",
++ "", "luy-KE",
++ "", "mai",
++ "", "mai-IN",
++ "", "mas",
++ "", "mas-KE",
++ "", "mas-TZ",
++ "", "mer",
++ "", "mer-KE",
++ "", "mfe",
++ "", "mfe-MU",
++ "", "mg",
++ "", "mg-MG",
++ "", "mgh",
++ "", "mgh-MZ",
++ "", "mgo",
++ "", "mgo-CM",
++ "", "mi",
++ "", "mi-NZ",
++ "", "mni",
++ "", "mni-Beng",
++ "", "mni-Beng-IN",
++ "", "ms",
++ "", "ms-BN",
++ "", "ms-ID",
++ "", "ms-MY",
++ "", "ms-SG",
++ "", "mua",
++ "", "mua-CM",
++ "", "mzn",
++ "", "mzn-IR",
++ "", "naq",
++ "", "naq-NA",
++ "", "nd",
++ "", "nd-ZW",
++ "", "nl",
++ "", "nl-AW",
++ "", "nl-BE",
++ "", "nl-BQ",
++ "", "nl-CW",
++ "", "nl-NL",
++ "", "nl-SR",
++ "", "nl-SX",
++ "", "nmg",
++ "", "nmg-CM",
++ "", "nnh",
++ "", "nnh-CM",
++ "", "nus",
++ "", "nus-SS",
++ "", "nyn",
++ "", "nyn-UG",
++ "", "os",
++ "", "os-GE",
++ "", "os-RU",
++ "", "pcm",
++ "", "pcm-NG",
++ "", "pt",
++ "", "pt-AO",
++ "", "pt-BR",
++ "", "pt-CH",
++ "", "pt-CV",
++ "", "pt-GQ",
++ "", "pt-GW",
++ "", "pt-LU",
++ "", "pt-MO",
++ "", "pt-MZ",
++ "", "pt-PT",
++ "", "pt-ST",
++ "", "pt-TL",
++ "", "qu",
++ "", "qu-BO",
++ "", "qu-EC",
++ "", "qu-PE",
++ "", "rm",
++ "", "rm-CH",
++ "", "rn",
++ "", "rn-BI",
++ "", "rof",
++ "", "rof-TZ",
++ "", "rw",
++ "", "rw-RW",
++ "", "rwk",
++ "", "rwk-TZ",
++ "", "sa",
++ "", "sa-IN",
++ "", "sah",
++ "", "sah-RU",
++ "", "saq",
++ "", "saq-KE",
++ "", "sat",
++ "", "sat-Olck",
++ "", "sat-Olck-IN",
++ "", "sbp",
++ "", "sbp-TZ",
++ "", "sc",
++ "", "sc-IT",
++ "", "sd",
++ "", "sd-Arab",
++ "", "sd-Arab-PK",
++ "", "sd-Deva",
++ "", "sd-Deva-IN",
++ "", "seh",
++ "", "seh-MZ",
++ "", "ses",
++ "", "ses-ML",
++ "", "sg",
++ "", "sg-CF",
++ "", "shi",
++ "", "shi-Latn",
++ "", "shi-Latn-MA",
++ "", "shi-Tfng",
++ "", "shi-Tfng-MA",
++ "", "sn",
++ "", "sn-ZW",
++ "", "so",
++ "", "so-DJ",
++ "", "so-ET",
++ "", "so-KE",
++ "", "so-SO",
++ "", "su",
++ "", "su-Latn",
++ "", "su-Latn-ID",
++ "", "sw",
++ "", "sw-CD",
++ "", "sw-KE",
++ "", "sw-TZ",
++ "", "sw-UG",
++ "", "teo",
++ "", "teo-KE",
++ "", "teo-UG",
++ "", "tg",
++ "", "tg-TJ",
++ "", "ti",
++ "", "ti-ER",
++ "", "ti-ET",
++ "", "tt",
++ "", "tt-RU",
++ "", "twq",
++ "", "twq-NE",
++ "", "tzm",
++ "", "tzm-MA",
++ "", "vai",
++ "", "vai-Latn",
++ "", "vai-Latn-LR",
++ "", "vai-Vaii",
++ "", "vai-Vaii-LR",
++ "", "vun",
++ "", "vun-TZ",
++ "", "wae",
++ "", "wae-CH",
++ "", "xh",
++ "", "xh-ZA",
++ "", "xog",
++ "", "xog-UG",
++ "", "yav",
++ "", "yav-CM",
++ "", "yrl",
++ "", "yrl-BR",
++ "", "yrl-CO",
++ "", "yrl-VE",
++ "", "zgh",
++ "", "zgh-MA",
++ "", "zu",
++ "", "zu-ZA",
++ "af", "af-NA",
++ "af", "af-ZA",
++ "am", "am-ET",
++ "ar", "ar-001",
++ "ar", "ar-AE",
++ "ar", "ar-BH",
++ "ar", "ar-DJ",
++ "ar", "ar-DZ",
++ "ar", "ar-EG",
++ "ar", "ar-EH",
++ "ar", "ar-ER",
++ "ar", "ar-IL",
++ "ar", "ar-IQ",
++ "ar", "ar-JO",
++ "ar", "ar-KM",
++ "ar", "ar-KW",
++ "ar", "ar-LB",
++ "ar", "ar-LY",
++ "ar", "ar-MA",
++ "ar", "ar-MR",
++ "ar", "ar-OM",
++ "ar", "ar-PS",
++ "ar", "ar-QA",
++ "ar", "ar-SA",
++ "ar", "ar-SD",
++ "ar", "ar-SO",
++ "ar", "ar-SS",
++ "ar", "ar-SY",
++ "ar", "ar-TD",
++ "ar", "ar-TN",
++ "ar", "ar-YE",
++ "as", "as-IN",
++ "az", "az-Cyrl",
++ "az", "az-Cyrl-AZ",
++ "az", "az-Latn",
++ "az", "az-Latn-AZ",
++ "be", "be-BY",
++ "bg", "bg-BG",
++ "bn", "bn-BD",
++ "bn", "bn-IN",
++ "bo", "bo-CN",
++ "bo", "bo-IN",
++ "br", "br-FR",
++ "bs", "bs-Latn",
++ "bs", "bs-Latn-BA",
++ "bs_Cyrl", "bs-Cyrl-BA",
++ "ceb", "ceb-PH",
++ "chr", "chr-US",
++ "cs", "cs-CZ",
++ "cy", "cy-GB",
++ "da", "da-DK",
++ "da", "da-GL",
++ "dsb", "dsb-DE",
++ "ee", "ee-GH",
++ "ee", "ee-TG",
++ "el", "el-CY",
++ "el", "el-GR",
++ "eo", "eo-001",
++ "es", "es-419",
++ "es", "es-AR",
++ "es", "es-BO",
++ "es", "es-BR",
++ "es", "es-BZ",
++ "es", "es-CL",
++ "es", "es-CO",
++ "es", "es-CR",
++ "es", "es-CU",
++ "es", "es-DO",
++ "es", "es-EA",
++ "es", "es-EC",
++ "es", "es-ES",
++ "es", "es-GQ",
++ "es", "es-GT",
++ "es", "es-HN",
++ "es", "es-IC",
++ "es", "es-MX",
++ "es", "es-NI",
++ "es", "es-PA",
++ "es", "es-PE",
++ "es", "es-PH",
++ "es", "es-PR",
++ "es", "es-PY",
++ "es", "es-SV",
++ "es", "es-US",
++ "es", "es-UY",
++ "es", "es-VE",
++ "et", "et-EE",
++ "fa", "fa-IR",
++ "ff_Adlm", "ff-Adlm-BF",
++ "ff_Adlm", "ff-Adlm-CM",
++ "ff_Adlm", "ff-Adlm-GH",
++ "ff_Adlm", "ff-Adlm-GM",
++ "ff_Adlm", "ff-Adlm-GN",
++ "ff_Adlm", "ff-Adlm-GW",
++ "ff_Adlm", "ff-Adlm-LR",
++ "ff_Adlm", "ff-Adlm-MR",
++ "ff_Adlm", "ff-Adlm-NE",
++ "ff_Adlm", "ff-Adlm-NG",
++ "ff_Adlm", "ff-Adlm-SL",
++ "ff_Adlm", "ff-Adlm-SN",
++ "fi", "fi-FI",
++ "fil", "fil-PH",
++ "fo", "fo-DK",
++ "fo", "fo-FO",
++ "gl", "gl-ES",
++ "gu", "gu-IN",
++ "ha", "ha-GH",
++ "ha", "ha-NE",
++ "ha", "ha-NG",
++ "haw", "haw-US",
++ "he", "he-IL",
++ "hi", "hi-IN",
++ "hi", "hi-Latn",
++ "hi", "hi-Latn-IN",
++ "hr", "hr-BA",
++ "hr", "hr-HR",
++ "hsb", "hsb-DE",
++ "hu", "hu-HU",
++ "hy", "hy-AM",
++ "ig", "ig-NG",
++ "is", "is-IS",
++ "ja", "ja-JP",
++ "ka", "ka-GE",
++ "kk", "kk-KZ",
++ "kl", "kl-GL",
++ "km", "km-KH",
++ "kn", "kn-IN",
++ "ko", "ko-KP",
++ "ko", "ko-KR",
++ "kok", "kok-IN",
++ "ku", "ku-TR",
++ "ky", "ky-KG",
++ "lkt", "lkt-US",
++ "ln", "ln-AO",
++ "ln", "ln-CD",
++ "ln", "ln-CF",
++ "ln", "ln-CG",
++ "lo", "lo-LA",
++ "lt", "lt-LT",
++ "lv", "lv-LV",
++ "mk", "mk-MK",
++ "ml", "ml-IN",
++ "mn", "mn-MN",
++ "mr", "mr-IN",
++ "mt", "mt-MT",
++ "my", "my-MM",
++ "ne", "ne-IN",
++ "ne", "ne-NP",
++ "no", "nb",
++ "no", "nb-NO",
++ "no", "nb-SJ",
++ "no", "nn",
++ "no", "nn-NO",
++ "om", "om-ET",
++ "om", "om-KE",
++ "or", "or-IN",
++ "pa", "pa-Arab",
++ "pa", "pa-Arab-PK",
++ "pa", "pa-Guru",
++ "pa", "pa-Guru-IN",
++ "pl", "pl-PL",
++ "ps", "ps-AF",
++ "ps", "ps-PK",
++ "ro", "ro-MD",
++ "ro", "ro-RO",
++ "ru", "ru-BY",
++ "ru", "ru-KG",
++ "ru", "ru-KZ",
++ "ru", "ru-MD",
++ "ru", "ru-RU",
++ "ru", "ru-UA",
++ "se", "se-FI",
++ "se", "se-NO",
++ "se", "se-SE",
++ "si", "si-LK",
++ "sk", "sk-SK",
++ "sl", "sl-SI",
++ "smn", "smn-FI",
++ "sq", "sq-AL",
++ "sq", "sq-MK",
++ "sq", "sq-XK",
++ "sr", "sr-Cyrl",
++ "sr", "sr-Cyrl-BA",
++ "sr", "sr-Cyrl-ME",
++ "sr", "sr-Cyrl-RS",
++ "sr", "sr-Cyrl-XK",
++ "sr_Latn", "sr-Latn-BA",
++ "sr_Latn", "sr-Latn-ME",
++ "sr_Latn", "sr-Latn-RS",
++ "sr_Latn", "sr-Latn-XK",
++ "sv", "sv-AX",
++ "sv", "sv-FI",
++ "sv", "sv-SE",
++ "ta", "ta-IN",
++ "ta", "ta-LK",
++ "ta", "ta-MY",
++ "ta", "ta-SG",
++ "te", "te-IN",
++ "th", "th-TH",
++ "tk", "tk-TM",
++ "to", "to-TO",
++ "tr", "tr-CY",
++ "tr", "tr-TR",
++ "ug", "ug-CN",
++ "uk", "uk-UA",
++ "ur", "ur-IN",
++ "ur", "ur-PK",
++ "uz", "uz-Arab",
++ "uz", "uz-Arab-AF",
++ "uz", "uz-Cyrl",
++ "uz", "uz-Cyrl-UZ",
++ "uz", "uz-Latn",
++ "uz", "uz-Latn-UZ",
++ "vi", "vi-VN",
++ "wo", "wo-SN",
++ "yi", "yi-001",
++ "yo", "yo-BJ",
++ "yo", "yo-NG",
++ "zh", "yue",
++ "zh", "yue-Hans",
++ "zh", "yue-Hans-CN",
++ "zh", "yue-Hant",
++ "zh", "yue-Hant-HK",
++ "zh", "zh-Hans",
++ "zh", "zh-Hans-CN",
++ "zh", "zh-Hans-HK",
++ "zh", "zh-Hans-MO",
++ "zh", "zh-Hans-SG",
++ "zh", "zh-Hant",
++ "zh", "zh-Hant-HK",
++ "zh", "zh-Hant-MO",
++ "zh", "zh-Hant-TW",
++ NULL, NULL,
++};
++
+ #endif /* USE_ICU */
+
+
+@@ -772,18 +1481,19 @@
+ * Start the loop at -1 to sneak in the root locale without too much
+ * code duplication.
+ */
+- for (i = -1; i < uloc_countAvailable(); i++)
++ for (i = -1; i < ucol_countAvailable(); i++) /* XXX-Patched: changed from uloc_countAvailable() */
+ {
+ const char *name;
+ char *langtag;
+ char *icucomment;
+ const char *iculocstr;
+ Oid collid;
++ char **ptr; /* XXX-Patched: added */
+
+ if (i == -1)
+ name = ""; /* ICU root locale */
+ else
+- name = uloc_getAvailable(i);
++ name = ucol_getAvailable(i); /* XXX-Patched: changed from uloc_getAvailable() */
+
+ langtag = get_icu_language_tag(name);
+ iculocstr = U_ICU_VERSION_MAJOR_NUM >= 54 ? langtag : name;
+@@ -812,6 +1523,44 @@
+ CreateComments(collid, CollationRelationId, 0,
+ icucomment);
+ }
++
++ /*
++ * XXX-Patched: The following block is added to create collations also for derived
++ * locales (combination of language+country/region).
++ * It's terribly inefficient, but in the big picture, it doesn't matter that much
++ * (it's typically called only once in the life of the cluster).
++ */
++ for (ptr = icu_coll_locales; *ptr != NULL; ptr++)
++ {
++ /*
++ * icu_coll_locales is a 1D array of pairs: collation name and locale (langtag).
++ * ptr++ moves pointer to the second string of the pair and it's a post-increment,
++ * so after the comparison with name is evaluated.
++ */
++ if (strcmp(*ptr++, name) == 0) {
++ const char *langtag;
++
++ langtag = pstrdup(*ptr);
++ collid = CollationCreate(psprintf("%s-x-icu", langtag),
++ nspid, GetUserId(),
++ COLLPROVIDER_ICU, true, -1,
++ NULL, NULL, langtag,
++ get_collation_actual_version(COLLPROVIDER_ICU, langtag),
++ true, true);
++
++ if (OidIsValid(collid))
++ {
++ ncreated++;
++
++ CommandCounterIncrement();
++
++ icucomment = get_icu_locale_comment(langtag);
++ if (icucomment)
++ CreateComments(collid, CollationRelationId, 0,
++ icucomment);
++ }
++ }
++ }
+ }
+ }
+ #endif /* USE_ICU */
diff --git a/main/postgresql14/initdb.patch b/main/postgresql15/initdb.patch
index e7607100f7e..e7607100f7e 100644
--- a/main/postgresql14/initdb.patch
+++ b/main/postgresql15/initdb.patch
diff --git a/main/postgresql14/jit-datalayout-mismatch-on-s390x-and-x86.patch b/main/postgresql15/jit-datalayout-mismatch-on-s390x-and-x86.patch
index 807a5f1b767..807a5f1b767 100644
--- a/main/postgresql14/jit-datalayout-mismatch-on-s390x-and-x86.patch
+++ b/main/postgresql15/jit-datalayout-mismatch-on-s390x-and-x86.patch
diff --git a/main/postgresql14/libpgport-pkglibdir.patch.txt b/main/postgresql15/libpgport-pkglibdir.patch.txt
index 6eff456f4f2..cb862fc344d 100644
--- a/main/postgresql14/libpgport-pkglibdir.patch.txt
+++ b/main/postgresql15/libpgport-pkglibdir.patch.txt
@@ -71,14 +71,21 @@ Description: Move libpgport/libpgcommon/libpgfeutils from libdir to pkglibdir
rm -f $@
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
-@@ -549,8 +549,8 @@ libpq = -L$(libpq_builddir) -lpq
- # on client link lines, since that also appears in $(LIBS).
- # libpq_pgport_shlib is the same idea, but for use in client shared libraries.
- ifdef PGXS
+@@ -599,7 +599,7 @@
+ ifeq ($(PORTNAME),darwin)
+ libpq_pgport = $(libpq)
+ else ifdef PGXS
-libpq_pgport = -L$(libdir) -lpgcommon -lpgport $(libpq)
--libpq_pgport_shlib = -L$(libdir) -lpgcommon_shlib -lpgport_shlib $(libpq)
+libpq_pgport = -L$(pkglibdir) -lpgcommon -lpgport $(libpq)
-+libpq_pgport_shlib = -L$(pkglibdir) -lpgcommon_shlib -lpgport_shlib $(libpq)
else
libpq_pgport = -L$(top_builddir)/src/common -lpgcommon -L$(top_builddir)/src/port -lpgport $(libpq)
+ endif
+@@ -610,7 +610,7 @@
+ # done if they don't, since they will have satisfied all their references
+ # from these libraries.)
+ ifdef PGXS
+-libpq_pgport_shlib = -L$(libdir) -lpgcommon_shlib -lpgport_shlib $(libpq)
++libpq_pgport_shlib = -L$(pkglibdir) -lpgcommon_shlib -lpgport_shlib $(libpq)
+ else
libpq_pgport_shlib = -L$(top_builddir)/src/common -lpgcommon_shlib -L$(top_builddir)/src/port -lpgport_shlib $(libpq)
+ endif
diff --git a/main/postgresql13/make-split-headers.patch b/main/postgresql15/make-split-headers.patch
index 1a280a49c98..1a280a49c98 100644
--- a/main/postgresql13/make-split-headers.patch
+++ b/main/postgresql15/make-split-headers.patch
diff --git a/main/postgresql14/per-version-dirs.patch b/main/postgresql15/per-version-dirs.patch
index a81e1259311..28c4df148d4 100644
--- a/main/postgresql14/per-version-dirs.patch
+++ b/main/postgresql15/per-version-dirs.patch
@@ -54,15 +54,30 @@ Patch-Source: https://sources.debian.org/src/postgresql-14/14.0-1/debian/patches
configdata = get_configdata(my_exec_path, &configdata_len);
/* no arguments -> print everything */
---- a/src/test/perl/TestLib.pm
-+++ b/src/test/perl/TestLib.pm
-@@ -591,6 +591,10 @@ sub check_pg_config
+--- a/src/test/perl/PostgreSQL/Test/Utils.pm
++++ b/src/test/perl/PostgreSQL/Test/Utils.pm
+@@ -721,6 +721,14 @@
or die "could not execute pg_config";
chomp($stdout);
$stdout =~ s/\r$//;
-+ # Alpine's pg_config is not relocatable, manually check for correct location
-+ if (-d "../../../build/tmp_install/usr/include/postgresql") {
-+ $stdout = "../../../build/tmp_install/usr/include/postgresql";
++ # XXX-Patched: Alpine's pg_config is not relocatable, manually check for correct location
++ if (-d "../../../tmp_install/usr/include/postgresql") {
++ my $result = IPC::Run::run [ 'pg_config', '--major-version' ], '>',
++ \$stdout, '2>', \$stderr;
++ chomp($stdout);
++ $stdout =~ s/\r$//;
++ $stdout = "../../../tmp_install/usr/include/postgresql/" . $stdout . "/server";
++ }
+
+ open my $header_h, '<', "$stdout/$header_path" or die "$!";
+
+@@ -759,6 +767,10 @@
+ or die "could not execute pg_config";
+ chomp($stdout);
+ $stdout =~ s/\r$//;
++ # XXX-Patched: Alpine's pg_config is not relocatable, manually check for correct location
++ if (-d "../../../tmp_install/usr/include/postgresql") {
++ $stdout = "../../../tmp_install/usr/include/postgresql";
+ }
open my $pg_config_h, '<', "$stdout/pg_config.h" or die "$!";
diff --git a/main/postgresql13/perl-rpath.patch b/main/postgresql15/perl-rpath.patch
index 6e522dbe67e..6e522dbe67e 100644
--- a/main/postgresql13/perl-rpath.patch
+++ b/main/postgresql15/perl-rpath.patch
diff --git a/main/postgresql13/pg_config-add-major-version.patch b/main/postgresql15/pg_config-add-major-version.patch
index 8f10f366d4e..8f10f366d4e 100644
--- a/main/postgresql13/pg_config-add-major-version.patch
+++ b/main/postgresql15/pg_config-add-major-version.patch
diff --git a/main/postgresql13/pltcl_create_tables.sql b/main/postgresql15/pltcl_create_tables.sql
index 76c7a954af3..76c7a954af3 100644
--- a/main/postgresql13/pltcl_create_tables.sql
+++ b/main/postgresql15/pltcl_create_tables.sql
diff --git a/main/postgresql13/postgresql13.post-install b/main/postgresql15/postgresql15.post-install
index 476959a55a3..476959a55a3 100644
--- a/main/postgresql13/postgresql13.post-install
+++ b/main/postgresql15/postgresql15.post-install
diff --git a/main/postgresql13/postgresql13.pre-deinstall b/main/postgresql15/postgresql15.pre-deinstall
index db24e86452f..db24e86452f 100644
--- a/main/postgresql13/postgresql13.pre-deinstall
+++ b/main/postgresql15/postgresql15.pre-deinstall
diff --git a/main/postgresql13/remove-libecpg_compat.patch b/main/postgresql15/remove-libecpg_compat.patch
index ff5fab07fad..ff5fab07fad 100644
--- a/main/postgresql13/remove-libecpg_compat.patch
+++ b/main/postgresql15/remove-libecpg_compat.patch
diff --git a/main/postgresql13/unix_socket_directories.patch b/main/postgresql15/unix_socket_directories.patch
index e7de03ed664..e7de03ed664 100644
--- a/main/postgresql13/unix_socket_directories.patch
+++ b/main/postgresql15/unix_socket_directories.patch
diff --git a/main/postgresql13/APKBUILD b/main/postgresql16/APKBUILD
index d863275a1de..3829a652304 100644
--- a/main/postgresql13/APKBUILD
+++ b/main/postgresql16/APKBUILD
@@ -2,29 +2,37 @@
# Contributor: G.J.R. Timmer <gjr.timmer@gmail.com>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
_pkgname=postgresql
-pkgver=13.7
-pkgrel=0
-_majorver=${pkgver%%.*}
+pkgver=16.2
+pkgrel=3
+_majorver=${pkgver%%[_.]*}
# Should this aport provide libpq* and libecpg*? true/false
# Exactly one postgresql aport must be the default one!
-_default_ver=false
+_default_ver=true
pkgname=$_pkgname$_majorver
pkgdesc="A sophisticated object-relational DBMS, version $_majorver"
url="https://www.postgresql.org/"
arch="all"
license="PostgreSQL"
-_llvmver=13
+_llvmver=16
depends="$pkgname-client postgresql-common tzdata"
depends_dev="
libpq-dev
libecpg-dev
- clang
+ clang$_llvmver
icu-dev
llvm$_llvmver
- openssl1.1-compat-dev
+ lz4-dev
+ openssl-dev
+ zstd-dev
+ "
+checkdepends="
+ diffutils
+ icu-data-full
+ perl-ipc-run
"
-checkdepends="diffutils"
makedepends="$depends_dev
+ bison
+ flex
libxml2-dev
linux-headers
llvm$_llvmver-dev
@@ -35,7 +43,6 @@ makedepends="$depends_dev
tcl-dev
util-linux-dev
zlib-dev
- bison flex
"
pkgusers="postgres"
pkggroups="postgres"
@@ -65,42 +72,41 @@ subpackages="
$pkgname-openrc
"
source="https://ftp.postgresql.org/pub/source/v$pkgver/postgresql-$pkgver.tar.bz2
+ fix-tests-on-musl.patch
initdb.patch
perl-rpath.patch
per-version-dirs.patch
unix_socket_directories.patch
- disable-broken-tests.patch
- disable-test-collate.icu.utf8.patch
disable-html-docs.patch
remove-libecpg_compat.patch
czech-snowball-stemmer.patch
make-split-headers.patch
- jit-datalayout-mismatch-on-s390x.patch
+ jit-datalayout-mismatch-on-s390x-and-x86.patch
pg_config-add-major-version.patch
- fix-test-temp-schema-cleanup.patch
- plperl-5.36-new-warnings-category.patch
+ dont-use-locale-a-on-musl.patch
+ icu-collations-hack.patch
+ skip-test-icu.patch
+ fix-test-check_guc.patch
libpgport-pkglibdir.patch.txt
external-libpq.patch.txt
pltcl_create_tables.sql
"
builddir="$srcdir/$_pkgname-$pkgver"
+options="net"
+
+case "$CARCH" in
+ # XXX: Tests are broken.
+ riscv64) options="$options !check"
+esac
# secfixes:
-# 13.7-r0:
-# - CVE-2022-1552
-# 13.5-r0:
-# - CVE-2021-23214
-# - CVE-2021-23222
-# 13.4-r0:
-# - CVE-2021-3677
-# 13.3-r0:
-# - CVE-2021-32027
-# - CVE-2021-32028
-# - CVE-2021-32029
-# 13.2-r0:
-# - CVE-2021-3393
-# - CVE-2021-20229
+# 16.2-r0:
+# - CVE-2024-0985
+# 16.1-r0:
+# - CVE-2023-5868
+# - CVE-2023-5869
+# - CVE-2023-5870
_bindir=usr/libexec/$pkgname
_datadir=usr/share/$pkgname
@@ -121,6 +127,7 @@ _client_cmds="
createuser
dropdb
dropuser
+ pg_amcheck
pg_basebackup
pg_dump
pg_dumpall
@@ -138,6 +145,9 @@ _client_cmds="
prepare() {
default_prepare
+ # FIXME: This test is broken, skip it for now.
+ sed -i '/test_pg_dump/d' src/test/modules/Makefile
+
if $_default_ver; then
cp -rl "$builddir" "$builddir-ifaces"
else
@@ -145,13 +155,17 @@ prepare() {
patch -p1 < "$srcdir"/external-libpq.patch.txt
fi
# Note: This must be applied after clonning $builddir-ifaces.
+ msg 'libpgport-pkglibdir.patch'
patch -p1 < "$srcdir"/libpgport-pkglibdir.patch.txt
}
build() {
+ export LLVM_CONFIG="/usr/lib/llvm$_llvmver/bin/llvm-config"
export PYTHON=/usr/bin/python3
export CFLAGS="${CFLAGS/-Os/-O2}"
export CPPFLAGS="${CPPFLAGS/-Os/-O2}"
+ # older clang versions don't have a 'clang' exe anymore.
+ export CLANG=clang-$_llvmver
_configure --with-ldap
make world
@@ -172,6 +186,7 @@ _configure() {
case "$CARCH" in
riscv64) _extra_opts='--disable-spinlocks';;
esac
+ want_check && _extra_opts="$_extra_opts --enable-tap-tests"
./configure \
--build=$CBUILD \
@@ -191,10 +206,11 @@ _configure() {
--with-openssl \
--with-uuid=e2fs \
--with-llvm \
- --with-icu \
--with-perl \
--with-python \
--with-tcl \
+ --with-lz4 \
+ --with-zstd \
$_extra_opts \
"$@"
}
@@ -203,6 +219,10 @@ check() {
_run_tests src/test
_run_tests src/pl
_run_tests contrib
+
+ if $_default_ver; then
+ _run_tests src/interfaces/libpq
+ fi
}
package() {
@@ -388,9 +408,6 @@ plpython3_contrib() {
make -C contrib/hstore_plpython DESTDIR="$subpkgdir" install
make -C contrib/ltree_plpython DESTDIR="$subpkgdir" install
- cd "$subpkgdir"/$_datadir/extension/
- rm ./*plpython2* ./*plpythonu*
-
_contrib_common
}
@@ -474,22 +491,23 @@ _setdiff() {
}
sha512sums="
-9254f21519c8d4e926f70082503bb5593c91064a3d2a4ea18ac503dfd9aa94751d6f01ce00fca9fec9b2b7af40caf8d0951b661dd8be4d6aa87c1e35b6fa7a41 postgresql-13.7.tar.bz2
-1f8e7dc58f5b0a12427cf2fd904ffa898a34f23f3332c8382b94e0d991c007289e7913a69e04498f3d93fc5701855796c207b4b1cc4a0b366f586050124d7fcc initdb.patch
+3194941cc3f1ec86b6cf4f08c6422d268d99890441f8fc9ab87b6a7fd16c990fa230b544308644cbef54e6960c4984e3703752e40930bdc0537b7bfda3ab7ccf postgresql-16.2.tar.bz2
+e3b05a2df199440cd558cd729aac9ee53cda6dd675f0ecdecda27d6158cc1b2f3f3fdb2b69657adba93886f4331183ec9f63c71868f34020a5ff82575e0a4202 fix-tests-on-musl.patch
+73080f61ae274a214966d2d010de49c8c90eb3180e4f56d86a9e23063eaddbe7f8d2c40ed414591c16bc9cfe88577866af2a965c2b6effb54965d19ef96a3fa9 initdb.patch
27e00b58fe5c3899c66fc0dde51846c14701bcfedd132b106d676783ba603e8cbdc6e620f29b52dc892bdaa9302052788cf5e575a1659f61c017a12e0d2ee4d0 perl-rpath.patch
-92d28f91b57a01afc81a00d386e87b9e2aa812f341a1578f262af372ee905530205592eda595111827582acceacd1bf244d1df130330003f05e74e4ddb5a7c4f per-version-dirs.patch
+6d992f53bf8b3e914933f89bc3f01591de2b707cf809aeee4210f9d59e2dc11e3fce697f50a7660f54925a2f0a6154eaeab0f59a969f76572dac5ff6f08faa71 per-version-dirs.patch
d0040599d7646b709af4e3413bf0c228090f256395e806f3fee230ccc6037ed9c0df1cd160d01b6a73b25a742fdd3fb070733a14a78f53d297fbdbbb44f6f878 unix_socket_directories.patch
-c4179fcd8b71791cdc41ea7b622cf82e9bd42ac1de66999234b98a83c0c508c79c492a9301274fe859c06a3f1a8b17b53ab97541ab76801a985f8f0b9b8716e7 disable-broken-tests.patch
-14703da0a9441ae1bbad9fe124c4c267526975a22080c5f3e8c3a323164b743158ee10fcff31f18131a64e765c89125410652b317da46e92e962f251079f5a9a disable-test-collate.icu.utf8.patch
2e33e1ae38d60e0daf3ed18e6eaa9ddf6762b4b1bb7e51f1d2690e3df9d602aa1a700e603ba3ee69314a75a963131c7dc67c1b1f8b7eb5564e9c4253e81a4db4 disable-html-docs.patch
d8eb4274a54b94bed4a2ded7ae775c5a95ca0f051b831b859ccf78bf6d2ea6fe89a9a0611771f6ad85573995a7e3af1fdf5859e20cae3267a52239f12e1b61c3 remove-libecpg_compat.patch
-2bd10c4911a50432a00d47bf423c2bb120bacd01a04b41430aa427ae15eafeb3f61e386893211fd147bc7972e4e7f9075ec9e0cd18d50caac14ab0eddb707ef7 czech-snowball-stemmer.patch
+9cd5fa30f98acf11c5e4bd4593ea5bc8dbda81309133f30925d4c1689e9125f73d08d22208964b5fdcd1b328af2dc9ccdd6a6fe588e448b33a030f984a7b357f czech-snowball-stemmer.patch
5262f4944844bccc839c4441570b9eb2e0792390234ebfdb8ebb7b83380ce5f5de84b038cb03045526da202a185af9c3972c2ae1b9e0e743a95c6e84f4621cf9 make-split-headers.patch
-87f470bb8d08050dd955bd6f1da291891970027e6cd001452efc0bd6a57ac46187082393cd5910c289fc6e1daaf0967415393629379c07aed4e78b8e87e5fff7 jit-datalayout-mismatch-on-s390x.patch
-7790e4e4374f7bdc6b4484ba87a5fa709d30d3cbdce61ee7bf9c5dfce40cb51c7bd54ab42f4050fb48eede08ef573624d819128e57cc8c976e01202854740308 pg_config-add-major-version.patch
-1826ad7dfea705b9f62bb913e45865b9d9aefec9b6115aa9f4a648caa8ce85767ebf342ca1acbc49ca645599360d6218a2b6cd022930d240f2c5702b9e87281b fix-test-temp-schema-cleanup.patch
-d3f4c0d3e290ef561dd76800f5597c39ebc9f670c7d2779cc4c44345718e1ba70f0c1dee4a49750921273255491cf1805bf9007b3bd15bc25dc181eb55e6c8cc plperl-5.36-new-warnings-category.patch
-f8ed2b7b96fd22cd87c982151e659d82bcae10033a97f403f7847fce6daa8fc580e998cfb3813af9cb59a12f0c6bcc276397c28b1fc48321eed8c7ba5f3f92ed libpgport-pkglibdir.patch.txt
+c24986becfd73546a062612335e53b4da34829e42a0c30e85ed7481924f13b1fd0a0e5079d680905a52afea1e99f2210cc3692c529a34a74cd6961c88cce9163 jit-datalayout-mismatch-on-s390x-and-x86.patch
+04751b23c7085b40829c6d2d63bb428e04b11d79aa58804045f2ed52d096e75304b1c7d0f8f37e3398156f18f69e6f6f2879ece46209c091b4348bc39d181511 pg_config-add-major-version.patch
+b0688d66fdd7d612c24d9aa69bdd80d30787d2d6409b4524c79b41797144fc743213460e6de9c536bfb72da089f92cf89731f15137b1407fd04ca97fd393bfd2 dont-use-locale-a-on-musl.patch
+e1949917fa3ea7cfc25b843d22139694628f73b0eb763a92a23f19d0a87230d805a2454657652c200e916d6fc6ef1b16d2d7cb27b0195d4b69f8583f64d11b65 icu-collations-hack.patch
+3ae334478ab6008022bda261e695a7957ae5c6037760925f98260f01b17568372c1284a5abf547a3c0fcae5fbb4a54e172f118de1afa1e81a839ee6f9544efd9 skip-test-icu.patch
+b64e75778fcb7a8221cf1a3d81c6a1ade3910e3398f63dd6f9be743b1dd7e392ea626dda8da976f4149f838c18ba536e7c9f9da268ae7e03b78268304d89bafc fix-test-check_guc.patch
+cde5fbf5a39e5de18a40ec1d9ac919dcf166e0ca178a6b9dbdfded8d16b4969b91917a2550bbf33eccd1ecb3bd9e0753a47012e60f4efe720bbef2a2c5368529 libpgport-pkglibdir.patch.txt
6078defb3da67e7df96665cc130d32b69eebfcaf49d92eef368ea8eea8bb311fab56064c104bc97f53da9cd925301bef696b506af33e0b66d65bc6cd41ec7499 external-libpq.patch.txt
5c9bfd9e295dcf678298bf0aa974347a7c311d6e7c2aa76a6920fcb751d01fd1ab77abbec11f3c672f927ad9deaa88e04e370c0b5cd1b60087554c474b748731 pltcl_create_tables.sql
"
diff --git a/main/postgresql13/czech-snowball-stemmer.patch b/main/postgresql16/czech-snowball-stemmer.patch
index 54bf2f0dfd1..96d9d72c78e 100644
--- a/main/postgresql13/czech-snowball-stemmer.patch
+++ b/main/postgresql16/czech-snowball-stemmer.patch
@@ -15,18 +15,18 @@ File czech.stop was extracted from http://www.pgsql.cz/data/czech.tar.gz
diff --git a/src/backend/snowball/dict_snowball.c b/src/backend/snowball/dict_snowball.c
--- a/src/backend/snowball/dict_snowball.c
+++ b/src/backend/snowball/dict_snowball.c
-@@ -44,6 +44,7 @@
- #include "snowball/libstemmer/stem_ISO_8859_2_romanian.h"
- #include "snowball/libstemmer/stem_KOI8_R_russian.h"
- #include "snowball/libstemmer/stem_UTF_8_arabic.h"
+@@ -49,6 +49,7 @@
+ #include "snowball/libstemmer/stem_UTF_8_armenian.h"
+ #include "snowball/libstemmer/stem_UTF_8_basque.h"
+ #include "snowball/libstemmer/stem_UTF_8_catalan.h"
+#include "snowball/libstemmer/stem_UTF_8_czech.h"
#include "snowball/libstemmer/stem_UTF_8_danish.h"
#include "snowball/libstemmer/stem_UTF_8_dutch.h"
#include "snowball/libstemmer/stem_UTF_8_english.h"
-@@ -110,6 +111,7 @@
- STEMMER_MODULE(romanian, PG_LATIN2, ISO_8859_2),
- STEMMER_MODULE(russian, PG_KOI8R, KOI8_R),
- STEMMER_MODULE(arabic, PG_UTF8, UTF_8),
+@@ -123,6 +124,7 @@
+ STEMMER_MODULE(armenian, PG_UTF8, UTF_8),
+ STEMMER_MODULE(basque, PG_UTF8, UTF_8),
+ STEMMER_MODULE(catalan, PG_UTF8, UTF_8),
+ STEMMER_MODULE(czech, PG_UTF8, UTF_8),
STEMMER_MODULE(danish, PG_UTF8, UTF_8),
STEMMER_MODULE(dutch, PG_UTF8, UTF_8),
@@ -34,27 +34,30 @@ diff --git a/src/backend/snowball/dict_snowball.c b/src/backend/snowball/dict_sn
diff --git a/src/backend/snowball/Makefile b/src/backend/snowball/Makefile
--- a/src/backend/snowball/Makefile
+++ b/src/backend/snowball/Makefile
-@@ -41,6 +41,7 @@
- stem_ISO_8859_2_romanian.o \
- stem_KOI8_R_russian.o \
- stem_UTF_8_arabic.o \
+@@ -46,6 +46,7 @@
+ stem_UTF_8_armenian.o \
+ stem_UTF_8_basque.o \
+ stem_UTF_8_catalan.o \
+ stem_UTF_8_czech.o \
stem_UTF_8_danish.o \
stem_UTF_8_dutch.o \
stem_UTF_8_english.o \
-@@ -70,6 +71,7 @@
- # must come after creation of that language
- LANGUAGES= \
- arabic arabic \
-+ czech czech \
- danish danish \
- dutch dutch \
- english english \
-diff --git a/src/backend/snowball/stem_UTF_8_czech.c b/src/backend/snowball/stem_UTF_8_czech.c
+diff --git a/src/backend/snowball/snowball_create.pl b/src/backend/snowball/snowball_create.pl
+--- a/src/backend/snowball/snowball_create.pl
++++ b/src/backend/snowball/snowball_create.pl
+@@ -14,6 +14,7 @@
+ armenian
+ basque
+ catalan
++ czech
+ danish
+ dutch
+ english
+diff --git a/src/backend/snowball/libstemmer/stem_UTF_8_czech.c b/src/backend/snowball/libstemmer/stem_UTF_8_czech.c
new file mode 100644
index 000000000000..d23663fa077f
--- /dev/null
-+++ b/src/backend/snowball/stem_UTF_8_czech.c
++++ b/src/backend/snowball/libstemmer/stem_UTF_8_czech.c
@@ -0,0 +1,894 @@
+/* This file was generated automatically by the Snowball to ISO C compiler */
+/* http://snowballstem.org/ */
@@ -946,7 +949,7 @@ index 000000000000..d23663fa077f
+ return 1;
+}
+
-+extern struct SN_env * czech_UTF_8_create_env(void) { return SN_create_env(0, 2, 0); }
++extern struct SN_env * czech_UTF_8_create_env(void) { return SN_create_env(0, 2); }
+
+extern void czech_UTF_8_close_env(struct SN_env * z) { SN_close_env(z, 0); }
+
diff --git a/main/postgresql14/disable-html-docs.patch b/main/postgresql16/disable-html-docs.patch
index 6fbf90373c9..6fbf90373c9 100644
--- a/main/postgresql14/disable-html-docs.patch
+++ b/main/postgresql16/disable-html-docs.patch
diff --git a/main/postgresql16/dont-use-locale-a-on-musl.patch b/main/postgresql16/dont-use-locale-a-on-musl.patch
new file mode 100644
index 00000000000..ce61856d4e2
--- /dev/null
+++ b/main/postgresql16/dont-use-locale-a-on-musl.patch
@@ -0,0 +1,31 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Wed, 03 Aug 2022 20:40:33 +0200
+Subject: [PATCH] Don't generate collations based on locale(1)
+
+When the PostgreSQL cluster is initialized (using initdb(1)) or the
+DB administrator calls `pg_import_system_collations()` directly, this
+function creates COLLATIONs in the system catalog (pg_collations).
+If the locale(1) command is available, this function creates COLLATIONs
+based on the `locale -a` output.
+
+The locale(1) command is normally not available on Alpine Linux, so it
+does nothing and only the default and ICU-based COLLATIONs are created.
+However, there's a musl-locales package that provides locale(1), but it
+doesn't implement any collations. This package just provides locale
+translations. So if the user happens to have locale(1) installed and they
+initialize the cluster or call `pg_import_system_collations()`, they end
+up with dozens of libc-based COLLATIONs in the system catalog that
+actually do not work! They will all behave like "C", because musl libc
+doesn't implement locales.
+
+--- a/src/backend/commands/collationcmds.c
++++ b/src/backend/commands/collationcmds.c
+@@ -401,7 +401,7 @@
+
+
+ /* will we use "locale -a" in pg_import_system_collations? */
+-#if defined(HAVE_LOCALE_T) && !defined(WIN32)
++#if defined(HAVE_LOCALE_T) && !defined(WIN32) && defined(__GLIBC__) // XXX-Patched
+ #define READ_LOCALE_A_OUTPUT
+ #endif
+
diff --git a/main/postgresql14/external-libpq.patch.txt b/main/postgresql16/external-libpq.patch.txt
index e148edd1b8f..e148edd1b8f 100644
--- a/main/postgresql14/external-libpq.patch.txt
+++ b/main/postgresql16/external-libpq.patch.txt
diff --git a/main/postgresql16/fix-test-check_guc.patch b/main/postgresql16/fix-test-check_guc.patch
new file mode 100644
index 00000000000..48502e95978
--- /dev/null
+++ b/main/postgresql16/fix-test-check_guc.patch
@@ -0,0 +1,13 @@
+--- a/src/test/modules/test_misc/t/003_check_guc.pl
++++ b/src/test/modules/test_misc/t/003_check_guc.pl
+@@ -36,6 +36,10 @@
+
+ # use the sample file from the temp install
+ my $share_dir = $node->config_data('--sharedir');
++# XXX-Patched: --sharedir returns /usr/share/...
++if (-d "../../../../tmp_install") {
++ $share_dir = "../../../../tmp_install" . $share_dir
++}
+ my $sample_file = "$share_dir/postgresql.conf.sample";
+
+ # List of all the GUCs found in the sample file.
diff --git a/main/postgresql16/fix-tests-on-musl.patch b/main/postgresql16/fix-tests-on-musl.patch
new file mode 100644
index 00000000000..405ac8fb1a4
--- /dev/null
+++ b/main/postgresql16/fix-tests-on-musl.patch
@@ -0,0 +1,96 @@
+Patch-Source: https://github.com/postgres/postgres/commit/8a92b70c11ba2b5f0d2b2611d9453dd90f618629
+--
+From 8a92b70c11ba2b5f0d2b2611d9453dd90f618629 Mon Sep 17 00:00:00 2001
+From: Tom Lane <tgl@sss.pgh.pa.us>
+Date: Tue, 26 Mar 2024 11:44:49 -0400
+Subject: [PATCH] Allow "make check"-style testing to work with musl C library.
+
+The musl dynamic linker saves a pointer to the process' environment
+value of LD_LIBRARY_PATH very early in startup. When we move/clobber
+the environment to make more room for ps status strings, we clobber
+that value and thereby prevent libraries from being found via
+LD_LIBRARY_PATH, which breaks the use of a temporary installation
+for testing purposes. To fix, stop collecting usable space for
+ps status if we notice that the variable we are about to clobber
+is LD_LIBRARY_PATH. This will result in some reduction in how long
+the ps status can be, but it's only likely to occur in temporary
+test contexts, so it doesn't seem like a big problem. In any case,
+we don't have to do it if we see we are on glibc, which surely is
+where the majority of our Linux testing is done.
+
+Thomas Munro, Bruce Momjian, and Tom Lane, per report from Wolfgang
+Walther. Back-patch to all supported branches, with the hope that
+we'll set up a buildfarm animal to test on this platform.
+
+Discussion: https://postgr.es/m/fddd1cd6-dc16-40a2-9eb5-d7fef2101488@technowledgy.de
+---
+ src/backend/utils/misc/ps_status.c | 35 ++++++++++++++++++++++++++----
+ 1 file changed, 31 insertions(+), 4 deletions(-)
+
+diff --git a/src/backend/utils/misc/ps_status.c b/src/backend/utils/misc/ps_status.c
+index 5d829e6e483a3..9da6377402024 100644
+--- a/src/backend/utils/misc/ps_status.c
++++ b/src/backend/utils/misc/ps_status.c
+@@ -107,7 +107,8 @@ static char **save_argv;
+ * (The original argv[] will not be overwritten by this routine, but may be
+ * overwritten during init_ps_display. Also, the physical location of the
+ * environment strings may be moved, so this should be called before any code
+- * that might try to hang onto a getenv() result.)
++ * that might try to hang onto a getenv() result. But see hack for musl
++ * within.)
+ *
+ * Note that in case of failure this cannot call elog() as that is not
+ * initialized yet. We rely on write_stderr() instead.
+@@ -122,7 +123,7 @@ save_ps_display_args(int argc, char **argv)
+
+ /*
+ * If we're going to overwrite the argv area, count the available space.
+- * Also move the environment to make additional room.
++ * Also move the environment strings to make additional room.
+ */
+ {
+ char *end_of_area = NULL;
+@@ -151,7 +152,33 @@ save_ps_display_args(int argc, char **argv)
+ for (i = 0; environ[i] != NULL; i++)
+ {
+ if (end_of_area + 1 == environ[i])
+- end_of_area = environ[i] + strlen(environ[i]);
++ {
++ /*
++ * The musl dynamic linker keeps a static pointer to the
++ * initial value of LD_LIBRARY_PATH, if that is defined in the
++ * process's environment. Therefore, we must not overwrite the
++ * value of that setting and thus cannot advance end_of_area
++ * beyond it. Musl does not define any identifying compiler
++ * symbol, so we have to do this unless we see a symbol
++ * identifying a Linux libc we know is safe.
++ */
++#if defined(__linux__) && (!defined(__GLIBC__) && !defined(__UCLIBC__))
++ if (strncmp(environ[i], "LD_LIBRARY_PATH=", 16) == 0)
++ {
++ /*
++ * We can overwrite the name, but stop at the equals sign.
++ * Future loop iterations will not find any more
++ * contiguous space, but we don't break early because we
++ * need to count the total number of environ[] entries.
++ */
++ end_of_area = environ[i] + 15;
++ }
++ else
++#endif
++ {
++ end_of_area = environ[i] + strlen(environ[i]);
++ }
++ }
+ }
+
+ ps_buffer = argv[0];
+@@ -183,7 +210,7 @@ save_ps_display_args(int argc, char **argv)
+ * If we're going to change the original argv[] then make a copy for
+ * argument parsing purposes.
+ *
+- * (NB: do NOT think to remove the copying of argv[], even though
++ * NB: do NOT think to remove the copying of argv[], even though
+ * postmaster.c finishes looking at argv[] long before we ever consider
+ * changing the ps display. On some platforms, getopt() keeps pointers
+ * into the argv array, and will get horribly confused when it is
diff --git a/main/postgresql16/icu-collations-hack.patch b/main/postgresql16/icu-collations-hack.patch
new file mode 100644
index 00000000000..f9b42ba330b
--- /dev/null
+++ b/main/postgresql16/icu-collations-hack.patch
@@ -0,0 +1,892 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Wed, 03 Aug 2022 20:40:33 +0200
+Subject: [PATCH] Hack to generate usable ICU-based collations with
+ icu-data-en
+
+This is a downstream patch for Alpine Linux, it should never be
+upstreamed in this form!
+
+When the PostgreSQL cluster is initialized (using initdb(1)) or the
+DB administrator calls `pg_import_system_collations()` directly, this
+function creates COLLATIONs in the system catalog (pg_collations).
+There are two types: libc-based and ICU-based. The latter are created
+based on *locales* (not collations) known to ICU, i.e. based on the ICU
+data installed at the time.
+
+collationcmds.c includes the following comment:
+> We use uloc_countAvailable()/uloc_getAvailable() rather than
+> ucol_countAvailable()/ucol_getAvailable(). The former returns a full
+> set of language+region combinations, whereas the latter only returns
+> language+region combinations if they are distinct from the language's
+> base collation. So there might not be a de-DE or en-GB, which would be
+> confusing.
+
+There's a problem with this approach: locales and collations are two
+different things. ICU data may include collation algorithms and data for
+all or some languages, but not locales (language + country/region).
+The collation data is small compared to locales. There are ~800 locales
+(combinations of language, country and variants), but only 98 collations.
+There's a mapping between collations and locales hidden somewhere in ICU
+data.
+
+Since full ICU data is very big (30 MiB), we have created a stripped down
+variant with only English locale (package icu-data-en, 2.6 MiB). It also
+includes a subset of 18 collations that cover hundreds of languages.
+
+When the cluster is initialized or `pg_import_system_collations()` is
+called directly and only icu-data-en (default) is installed, the user
+ends up with only und, en and en_GB ICU-based COLLATIONs. The user can
+create missing COLLATIONs manually, but this a) is not expected nor
+reasonable behaviour, b) it's not easy to find out for which locales
+there's a collation available for.
+
+I couldn't find any way how to list all language+country variants for the
+given collation. It can be constructed when we iterate over all locales,
+but this approach is useless when we don't have the locale data
+available... I should also note that the reverse lookup (locale ->
+collation) is not a problem for ICU when full locale data is stripped.
+
+So I ended up with a very ugly workaround: pre-generating a list of
+collation -> locale mapping and embedding it in the collationcmds.c
+source. Then we replace `uloc_countAvailable()`/`uloc_getAvailable()`
+with `ucol_countAvailable()` / `ucol_getAvailable()` to iterate over
+the collations instead of locales and lookup the locales in the
+pre-generated list.
+
+This data is quite stable, there's a very low risk of getting outdated in
+a way that would be a problem.
+
+`icu_coll_locales` has been generated using the following code:
+
+ #include <stdio.h>
+ #include <string.h>
+ #include <unicode/ucol.h>
+
+ // Copy-pasted from collationcmds.c.
+ static char *get_icu_language_tag(const char *localename) {
+ char buf[ULOC_FULLNAME_CAPACITY];
+ UErrorCode status = U_ZERO_ERROR;
+
+ uloc_toLanguageTag(localename, buf, sizeof(buf), true, &status);
+
+ if (U_FAILURE(status)) {
+ fprintf(stderr, "could not convert locale name \"%s\" to language tag: %s\n",
+ localename, u_errorName(status));
+ return strdup(localename);
+ }
+ return strdup(buf);
+ }
+
+ int main() {
+ UErrorCode status = U_ZERO_ERROR;
+
+ for (int i = 0; i < uloc_countAvailable(); i++) {
+ const char *locale = uloc_getAvailable(i);
+
+ UCollator *collator = ucol_open(locale, &status);
+ const char *actual_locale = ucol_getLocaleByType(collator, ULOC_ACTUAL_LOCALE, &status);
+
+ // Strip @.*
+ char *ptr = strchr(actual_locale, '@');
+ if (ptr != NULL) {
+ *ptr = '\0';
+ }
+ if (strcmp(actual_locale, "root") == 0) {
+ actual_locale = "";
+ }
+ if (strcmp(actual_locale, locale) != 0) {
+ printf("\"%s\", \"%s\",\n", actual_locale, get_icu_language_tag(locale));
+ }
+ ucol_close(collator);
+ }
+ return 0;
+ }
+
+compiled and executed using:
+
+ gcc -o main main.c $(pkg-config --libs icu-uc icu-io) && ./main | sort | uniq
+
+--- a/src/backend/commands/collationcmds.c
++++ b/src/backend/commands/collationcmds.c
+@@ -632,6 +632,715 @@
+
+ return result;
+ }
++
++/*
++ * XXX-Patched: Added a static mapping: collation name (parent) to locale (children)
++ * I'm gonna burn in hell for this...
++ */
++static char* icu_coll_locales[] = {
++ "", "agq",
++ "", "agq-CM",
++ "", "ak",
++ "", "ak-GH",
++ "", "asa",
++ "", "asa-TZ",
++ "", "ast",
++ "", "ast-ES",
++ "", "bas",
++ "", "bas-CM",
++ "", "bem",
++ "", "bem-ZM",
++ "", "bez",
++ "", "bez-TZ",
++ "", "bm",
++ "", "bm-ML",
++ "", "brx",
++ "", "brx-IN",
++ "", "ca",
++ "", "ca-AD",
++ "", "ca-ES",
++ "", "ca-FR",
++ "", "ca-IT",
++ "", "ccp",
++ "", "ccp-BD",
++ "", "ccp-IN",
++ "", "ce",
++ "", "ce-RU",
++ "", "cgg",
++ "", "cgg-UG",
++ "", "ckb",
++ "", "ckb-IQ",
++ "", "ckb-IR",
++ "", "dav",
++ "", "dav-KE",
++ "", "de",
++ "", "de-AT",
++ "", "de-BE",
++ "", "de-CH",
++ "", "de-DE",
++ "", "de-IT",
++ "", "de-LI",
++ "", "de-LU",
++ "", "dje",
++ "", "dje-NE",
++ "", "doi",
++ "", "doi-IN",
++ "", "dua",
++ "", "dua-CM",
++ "", "dyo",
++ "", "dyo-SN",
++ "", "dz",
++ "", "dz-BT",
++ "", "ebu",
++ "", "ebu-KE",
++ "", "en",
++ "", "en-001",
++ "", "en-150",
++ "", "en-AE",
++ "", "en-AG",
++ "", "en-AI",
++ "", "en-AS",
++ "", "en-AT",
++ "", "en-AU",
++ "", "en-BB",
++ "", "en-BE",
++ "", "en-BI",
++ "", "en-BM",
++ "", "en-BS",
++ "", "en-BW",
++ "", "en-BZ",
++ "", "en-CA",
++ "", "en-CC",
++ "", "en-CH",
++ "", "en-CK",
++ "", "en-CM",
++ "", "en-CX",
++ "", "en-CY",
++ "", "en-DE",
++ "", "en-DG",
++ "", "en-DK",
++ "", "en-DM",
++ "", "en-ER",
++ "", "en-FI",
++ "", "en-FJ",
++ "", "en-FK",
++ "", "en-FM",
++ "", "en-GB",
++ "", "en-GD",
++ "", "en-GG",
++ "", "en-GH",
++ "", "en-GI",
++ "", "en-GM",
++ "", "en-GU",
++ "", "en-GY",
++ "", "en-HK",
++ "", "en-IE",
++ "", "en-IL",
++ "", "en-IM",
++ "", "en-IN",
++ "", "en-IO",
++ "", "en-JE",
++ "", "en-JM",
++ "", "en-KE",
++ "", "en-KI",
++ "", "en-KN",
++ "", "en-KY",
++ "", "en-LC",
++ "", "en-LR",
++ "", "en-LS",
++ "", "en-MG",
++ "", "en-MH",
++ "", "en-MO",
++ "", "en-MP",
++ "", "en-MS",
++ "", "en-MT",
++ "", "en-MU",
++ "", "en-MV",
++ "", "en-MW",
++ "", "en-MY",
++ "", "en-NA",
++ "", "en-NF",
++ "", "en-NG",
++ "", "en-NL",
++ "", "en-NR",
++ "", "en-NU",
++ "", "en-NZ",
++ "", "en-PG",
++ "", "en-PH",
++ "", "en-PK",
++ "", "en-PN",
++ "", "en-PR",
++ "", "en-PW",
++ "", "en-RW",
++ "", "en-SB",
++ "", "en-SC",
++ "", "en-SD",
++ "", "en-SE",
++ "", "en-SG",
++ "", "en-SH",
++ "", "en-SI",
++ "", "en-SL",
++ "", "en-SS",
++ "", "en-SX",
++ "", "en-SZ",
++ "", "en-TC",
++ "", "en-TK",
++ "", "en-TO",
++ "", "en-TT",
++ "", "en-TV",
++ "", "en-TZ",
++ "", "en-UG",
++ "", "en-UM",
++ "", "en-US",
++ "", "en-VC",
++ "", "en-VG",
++ "", "en-VI",
++ "", "en-VU",
++ "", "en-WS",
++ "", "en-ZA",
++ "", "en-ZM",
++ "", "en-ZW",
++ "", "eu",
++ "", "eu-ES",
++ "", "ewo",
++ "", "ewo-CM",
++ "", "ff",
++ "", "ff-Latn",
++ "", "ff-Latn-BF",
++ "", "ff-Latn-CM",
++ "", "ff-Latn-GH",
++ "", "ff-Latn-GM",
++ "", "ff-Latn-GN",
++ "", "ff-Latn-GW",
++ "", "ff-Latn-LR",
++ "", "ff-Latn-MR",
++ "", "ff-Latn-NE",
++ "", "ff-Latn-NG",
++ "", "ff-Latn-SL",
++ "", "ff-Latn-SN",
++ "", "fr",
++ "", "fr-BE",
++ "", "fr-BF",
++ "", "fr-BI",
++ "", "fr-BJ",
++ "", "fr-BL",
++ "", "fr-CD",
++ "", "fr-CF",
++ "", "fr-CG",
++ "", "fr-CH",
++ "", "fr-CI",
++ "", "fr-CM",
++ "", "fr-DJ",
++ "", "fr-DZ",
++ "", "fr-FR",
++ "", "fr-GA",
++ "", "fr-GF",
++ "", "fr-GN",
++ "", "fr-GP",
++ "", "fr-GQ",
++ "", "fr-HT",
++ "", "fr-KM",
++ "", "fr-LU",
++ "", "fr-MA",
++ "", "fr-MC",
++ "", "fr-MF",
++ "", "fr-MG",
++ "", "fr-ML",
++ "", "fr-MQ",
++ "", "fr-MR",
++ "", "fr-MU",
++ "", "fr-NC",
++ "", "fr-NE",
++ "", "fr-PF",
++ "", "fr-PM",
++ "", "fr-RE",
++ "", "fr-RW",
++ "", "fr-SC",
++ "", "fr-SN",
++ "", "fr-SY",
++ "", "fr-TD",
++ "", "fr-TG",
++ "", "fr-TN",
++ "", "fr-VU",
++ "", "fr-WF",
++ "", "fr-YT",
++ "", "fur",
++ "", "fur-IT",
++ "", "fy",
++ "", "fy-NL",
++ "", "ga",
++ "", "ga-GB",
++ "", "ga-IE",
++ "", "gd",
++ "", "gd-GB",
++ "", "gsw",
++ "", "gsw-CH",
++ "", "gsw-FR",
++ "", "gsw-LI",
++ "", "guz",
++ "", "guz-KE",
++ "", "gv",
++ "", "gv-IM",
++ "", "ia",
++ "", "ia-001",
++ "", "id",
++ "", "id-ID",
++ "", "ii",
++ "", "ii-CN",
++ "", "it",
++ "", "it-CH",
++ "", "it-IT",
++ "", "it-SM",
++ "", "it-VA",
++ "", "jgo",
++ "", "jgo-CM",
++ "", "jmc",
++ "", "jmc-TZ",
++ "", "jv",
++ "", "jv-ID",
++ "", "kab",
++ "", "kab-DZ",
++ "", "kam",
++ "", "kam-KE",
++ "", "kde",
++ "", "kde-TZ",
++ "", "kea",
++ "", "kea-CV",
++ "", "kgp",
++ "", "kgp-BR",
++ "", "khq",
++ "", "khq-ML",
++ "", "ki",
++ "", "ki-KE",
++ "", "kkj",
++ "", "kkj-CM",
++ "", "kln",
++ "", "kln-KE",
++ "", "ks",
++ "", "ks-Arab",
++ "", "ks-Arab-IN",
++ "", "ks-Deva",
++ "", "ks-Deva-IN",
++ "", "ksb",
++ "", "ksb-TZ",
++ "", "ksf",
++ "", "ksf-CM",
++ "", "ksh",
++ "", "ksh-DE",
++ "", "kw",
++ "", "kw-GB",
++ "", "lag",
++ "", "lag-TZ",
++ "", "lb",
++ "", "lb-LU",
++ "", "lg",
++ "", "lg-UG",
++ "", "lrc",
++ "", "lrc-IQ",
++ "", "lrc-IR",
++ "", "lu",
++ "", "lu-CD",
++ "", "luo",
++ "", "luo-KE",
++ "", "luy",
++ "", "luy-KE",
++ "", "mai",
++ "", "mai-IN",
++ "", "mas",
++ "", "mas-KE",
++ "", "mas-TZ",
++ "", "mer",
++ "", "mer-KE",
++ "", "mfe",
++ "", "mfe-MU",
++ "", "mg",
++ "", "mg-MG",
++ "", "mgh",
++ "", "mgh-MZ",
++ "", "mgo",
++ "", "mgo-CM",
++ "", "mi",
++ "", "mi-NZ",
++ "", "mni",
++ "", "mni-Beng",
++ "", "mni-Beng-IN",
++ "", "ms",
++ "", "ms-BN",
++ "", "ms-ID",
++ "", "ms-MY",
++ "", "ms-SG",
++ "", "mua",
++ "", "mua-CM",
++ "", "mzn",
++ "", "mzn-IR",
++ "", "naq",
++ "", "naq-NA",
++ "", "nd",
++ "", "nd-ZW",
++ "", "nl",
++ "", "nl-AW",
++ "", "nl-BE",
++ "", "nl-BQ",
++ "", "nl-CW",
++ "", "nl-NL",
++ "", "nl-SR",
++ "", "nl-SX",
++ "", "nmg",
++ "", "nmg-CM",
++ "", "nnh",
++ "", "nnh-CM",
++ "", "nus",
++ "", "nus-SS",
++ "", "nyn",
++ "", "nyn-UG",
++ "", "os",
++ "", "os-GE",
++ "", "os-RU",
++ "", "pcm",
++ "", "pcm-NG",
++ "", "pt",
++ "", "pt-AO",
++ "", "pt-BR",
++ "", "pt-CH",
++ "", "pt-CV",
++ "", "pt-GQ",
++ "", "pt-GW",
++ "", "pt-LU",
++ "", "pt-MO",
++ "", "pt-MZ",
++ "", "pt-PT",
++ "", "pt-ST",
++ "", "pt-TL",
++ "", "qu",
++ "", "qu-BO",
++ "", "qu-EC",
++ "", "qu-PE",
++ "", "rm",
++ "", "rm-CH",
++ "", "rn",
++ "", "rn-BI",
++ "", "rof",
++ "", "rof-TZ",
++ "", "rw",
++ "", "rw-RW",
++ "", "rwk",
++ "", "rwk-TZ",
++ "", "sa",
++ "", "sa-IN",
++ "", "sah",
++ "", "sah-RU",
++ "", "saq",
++ "", "saq-KE",
++ "", "sat",
++ "", "sat-Olck",
++ "", "sat-Olck-IN",
++ "", "sbp",
++ "", "sbp-TZ",
++ "", "sc",
++ "", "sc-IT",
++ "", "sd",
++ "", "sd-Arab",
++ "", "sd-Arab-PK",
++ "", "sd-Deva",
++ "", "sd-Deva-IN",
++ "", "seh",
++ "", "seh-MZ",
++ "", "ses",
++ "", "ses-ML",
++ "", "sg",
++ "", "sg-CF",
++ "", "shi",
++ "", "shi-Latn",
++ "", "shi-Latn-MA",
++ "", "shi-Tfng",
++ "", "shi-Tfng-MA",
++ "", "sn",
++ "", "sn-ZW",
++ "", "so",
++ "", "so-DJ",
++ "", "so-ET",
++ "", "so-KE",
++ "", "so-SO",
++ "", "su",
++ "", "su-Latn",
++ "", "su-Latn-ID",
++ "", "sw",
++ "", "sw-CD",
++ "", "sw-KE",
++ "", "sw-TZ",
++ "", "sw-UG",
++ "", "teo",
++ "", "teo-KE",
++ "", "teo-UG",
++ "", "tg",
++ "", "tg-TJ",
++ "", "ti",
++ "", "ti-ER",
++ "", "ti-ET",
++ "", "tt",
++ "", "tt-RU",
++ "", "twq",
++ "", "twq-NE",
++ "", "tzm",
++ "", "tzm-MA",
++ "", "vai",
++ "", "vai-Latn",
++ "", "vai-Latn-LR",
++ "", "vai-Vaii",
++ "", "vai-Vaii-LR",
++ "", "vun",
++ "", "vun-TZ",
++ "", "wae",
++ "", "wae-CH",
++ "", "xh",
++ "", "xh-ZA",
++ "", "xog",
++ "", "xog-UG",
++ "", "yav",
++ "", "yav-CM",
++ "", "yrl",
++ "", "yrl-BR",
++ "", "yrl-CO",
++ "", "yrl-VE",
++ "", "zgh",
++ "", "zgh-MA",
++ "", "zu",
++ "", "zu-ZA",
++ "af", "af-NA",
++ "af", "af-ZA",
++ "am", "am-ET",
++ "ar", "ar-001",
++ "ar", "ar-AE",
++ "ar", "ar-BH",
++ "ar", "ar-DJ",
++ "ar", "ar-DZ",
++ "ar", "ar-EG",
++ "ar", "ar-EH",
++ "ar", "ar-ER",
++ "ar", "ar-IL",
++ "ar", "ar-IQ",
++ "ar", "ar-JO",
++ "ar", "ar-KM",
++ "ar", "ar-KW",
++ "ar", "ar-LB",
++ "ar", "ar-LY",
++ "ar", "ar-MA",
++ "ar", "ar-MR",
++ "ar", "ar-OM",
++ "ar", "ar-PS",
++ "ar", "ar-QA",
++ "ar", "ar-SA",
++ "ar", "ar-SD",
++ "ar", "ar-SO",
++ "ar", "ar-SS",
++ "ar", "ar-SY",
++ "ar", "ar-TD",
++ "ar", "ar-TN",
++ "ar", "ar-YE",
++ "as", "as-IN",
++ "az", "az-Cyrl",
++ "az", "az-Cyrl-AZ",
++ "az", "az-Latn",
++ "az", "az-Latn-AZ",
++ "be", "be-BY",
++ "bg", "bg-BG",
++ "bn", "bn-BD",
++ "bn", "bn-IN",
++ "bo", "bo-CN",
++ "bo", "bo-IN",
++ "br", "br-FR",
++ "bs", "bs-Latn",
++ "bs", "bs-Latn-BA",
++ "bs_Cyrl", "bs-Cyrl-BA",
++ "ceb", "ceb-PH",
++ "chr", "chr-US",
++ "cs", "cs-CZ",
++ "cy", "cy-GB",
++ "da", "da-DK",
++ "da", "da-GL",
++ "dsb", "dsb-DE",
++ "ee", "ee-GH",
++ "ee", "ee-TG",
++ "el", "el-CY",
++ "el", "el-GR",
++ "eo", "eo-001",
++ "es", "es-419",
++ "es", "es-AR",
++ "es", "es-BO",
++ "es", "es-BR",
++ "es", "es-BZ",
++ "es", "es-CL",
++ "es", "es-CO",
++ "es", "es-CR",
++ "es", "es-CU",
++ "es", "es-DO",
++ "es", "es-EA",
++ "es", "es-EC",
++ "es", "es-ES",
++ "es", "es-GQ",
++ "es", "es-GT",
++ "es", "es-HN",
++ "es", "es-IC",
++ "es", "es-MX",
++ "es", "es-NI",
++ "es", "es-PA",
++ "es", "es-PE",
++ "es", "es-PH",
++ "es", "es-PR",
++ "es", "es-PY",
++ "es", "es-SV",
++ "es", "es-US",
++ "es", "es-UY",
++ "es", "es-VE",
++ "et", "et-EE",
++ "fa", "fa-IR",
++ "ff_Adlm", "ff-Adlm-BF",
++ "ff_Adlm", "ff-Adlm-CM",
++ "ff_Adlm", "ff-Adlm-GH",
++ "ff_Adlm", "ff-Adlm-GM",
++ "ff_Adlm", "ff-Adlm-GN",
++ "ff_Adlm", "ff-Adlm-GW",
++ "ff_Adlm", "ff-Adlm-LR",
++ "ff_Adlm", "ff-Adlm-MR",
++ "ff_Adlm", "ff-Adlm-NE",
++ "ff_Adlm", "ff-Adlm-NG",
++ "ff_Adlm", "ff-Adlm-SL",
++ "ff_Adlm", "ff-Adlm-SN",
++ "fi", "fi-FI",
++ "fil", "fil-PH",
++ "fo", "fo-DK",
++ "fo", "fo-FO",
++ "gl", "gl-ES",
++ "gu", "gu-IN",
++ "ha", "ha-GH",
++ "ha", "ha-NE",
++ "ha", "ha-NG",
++ "haw", "haw-US",
++ "he", "he-IL",
++ "hi", "hi-IN",
++ "hi", "hi-Latn",
++ "hi", "hi-Latn-IN",
++ "hr", "hr-BA",
++ "hr", "hr-HR",
++ "hsb", "hsb-DE",
++ "hu", "hu-HU",
++ "hy", "hy-AM",
++ "ig", "ig-NG",
++ "is", "is-IS",
++ "ja", "ja-JP",
++ "ka", "ka-GE",
++ "kk", "kk-KZ",
++ "kl", "kl-GL",
++ "km", "km-KH",
++ "kn", "kn-IN",
++ "ko", "ko-KP",
++ "ko", "ko-KR",
++ "kok", "kok-IN",
++ "ku", "ku-TR",
++ "ky", "ky-KG",
++ "lkt", "lkt-US",
++ "ln", "ln-AO",
++ "ln", "ln-CD",
++ "ln", "ln-CF",
++ "ln", "ln-CG",
++ "lo", "lo-LA",
++ "lt", "lt-LT",
++ "lv", "lv-LV",
++ "mk", "mk-MK",
++ "ml", "ml-IN",
++ "mn", "mn-MN",
++ "mr", "mr-IN",
++ "mt", "mt-MT",
++ "my", "my-MM",
++ "ne", "ne-IN",
++ "ne", "ne-NP",
++ "no", "nb",
++ "no", "nb-NO",
++ "no", "nb-SJ",
++ "no", "nn",
++ "no", "nn-NO",
++ "om", "om-ET",
++ "om", "om-KE",
++ "or", "or-IN",
++ "pa", "pa-Arab",
++ "pa", "pa-Arab-PK",
++ "pa", "pa-Guru",
++ "pa", "pa-Guru-IN",
++ "pl", "pl-PL",
++ "ps", "ps-AF",
++ "ps", "ps-PK",
++ "ro", "ro-MD",
++ "ro", "ro-RO",
++ "ru", "ru-BY",
++ "ru", "ru-KG",
++ "ru", "ru-KZ",
++ "ru", "ru-MD",
++ "ru", "ru-RU",
++ "ru", "ru-UA",
++ "se", "se-FI",
++ "se", "se-NO",
++ "se", "se-SE",
++ "si", "si-LK",
++ "sk", "sk-SK",
++ "sl", "sl-SI",
++ "smn", "smn-FI",
++ "sq", "sq-AL",
++ "sq", "sq-MK",
++ "sq", "sq-XK",
++ "sr", "sr-Cyrl",
++ "sr", "sr-Cyrl-BA",
++ "sr", "sr-Cyrl-ME",
++ "sr", "sr-Cyrl-RS",
++ "sr", "sr-Cyrl-XK",
++ "sr_Latn", "sr-Latn-BA",
++ "sr_Latn", "sr-Latn-ME",
++ "sr_Latn", "sr-Latn-RS",
++ "sr_Latn", "sr-Latn-XK",
++ "sv", "sv-AX",
++ "sv", "sv-FI",
++ "sv", "sv-SE",
++ "ta", "ta-IN",
++ "ta", "ta-LK",
++ "ta", "ta-MY",
++ "ta", "ta-SG",
++ "te", "te-IN",
++ "th", "th-TH",
++ "tk", "tk-TM",
++ "to", "to-TO",
++ "tr", "tr-CY",
++ "tr", "tr-TR",
++ "ug", "ug-CN",
++ "uk", "uk-UA",
++ "ur", "ur-IN",
++ "ur", "ur-PK",
++ "uz", "uz-Arab",
++ "uz", "uz-Arab-AF",
++ "uz", "uz-Cyrl",
++ "uz", "uz-Cyrl-UZ",
++ "uz", "uz-Latn",
++ "uz", "uz-Latn-UZ",
++ "vi", "vi-VN",
++ "wo", "wo-SN",
++ "yi", "yi-001",
++ "yo", "yo-BJ",
++ "yo", "yo-NG",
++ "zh", "yue",
++ "zh", "yue-Hans",
++ "zh", "yue-Hans-CN",
++ "zh", "yue-Hant",
++ "zh", "yue-Hant-HK",
++ "zh", "zh-Hans",
++ "zh", "zh-Hans-CN",
++ "zh", "zh-Hans-HK",
++ "zh", "zh-Hans-MO",
++ "zh", "zh-Hans-SG",
++ "zh", "zh-Hant",
++ "zh", "zh-Hant-HK",
++ "zh", "zh-Hant-MO",
++ "zh", "zh-Hant-TW",
++ NULL, NULL,
++};
++
+ #endif /* USE_ICU */
+
+
+@@ -942,17 +1651,18 @@
+ * Start the loop at -1 to sneak in the root locale without too much
+ * code duplication.
+ */
+- for (i = -1; i < uloc_countAvailable(); i++)
++ for (i = -1; i < ucol_countAvailable(); i++) /* XXX-Patched: changed from uloc_countAvailable() */
+ {
+ const char *name;
+ char *langtag;
+ char *icucomment;
+ Oid collid;
++ char **ptr; /* XXX-Patched: added */
+
+ if (i == -1)
+ name = ""; /* ICU root locale */
+ else
+- name = uloc_getAvailable(i);
++ name = ucol_getAvailable(i); /* XXX-Patched: changed from uloc_getAvailable() */
+
+ langtag = icu_language_tag(name, ERROR);
+
+@@ -979,6 +1689,44 @@
+ if (icucomment)
+ CreateComments(collid, CollationRelationId, 0,
+ icucomment);
++ }
++
++ /*
++ * XXX-Patched: The following block is added to create collations also for derived
++ * locales (combination of language+country/region).
++ * It's terribly inefficient, but in the big picture, it doesn't matter that much
++ * (it's typically called only once in the life of the cluster).
++ */
++ for (ptr = icu_coll_locales; *ptr != NULL; ptr++)
++ {
++ /*
++ * icu_coll_locales is a 1D array of pairs: collation name and locale (langtag).
++ * ptr++ moves pointer to the second string of the pair and it's a post-increment,
++ * so after the comparison with name is evaluated.
++ */
++ if (strcmp(*ptr++, name) == 0) {
++ const char *langtag;
++
++ langtag = pstrdup(*ptr);
++ collid = CollationCreate(psprintf("%s-x-icu", langtag),
++ nspid, GetUserId(),
++ COLLPROVIDER_ICU, true, -1,
++ NULL, NULL, langtag, NULL,
++ get_collation_actual_version(COLLPROVIDER_ICU, langtag),
++ true, true);
++
++ if (OidIsValid(collid))
++ {
++ ncreated++;
++
++ CommandCounterIncrement();
++
++ icucomment = get_icu_locale_comment(langtag);
++ if (icucomment)
++ CreateComments(collid, CollationRelationId, 0,
++ icucomment);
++ }
++ }
+ }
+ }
+ }
diff --git a/main/postgresql16/initdb.patch b/main/postgresql16/initdb.patch
new file mode 100644
index 00000000000..e7607100f7e
--- /dev/null
+++ b/main/postgresql16/initdb.patch
@@ -0,0 +1,14 @@
+diff --git a/src/bin/initdb/initdb.c b/src/bin/initdb/initdb.c
+--- a/src/bin/initdb/initdb.c
++++ b/src/bin/initdb/initdb.c
+@@ -3259,9 +3259,7 @@
+ /* translator: This is a placeholder in a shell command. */
+ appendPQExpBuffer(start_db_cmd, " -l %s start", _("logfile"));
+
+- printf(_("\nSuccess. You can now start the database server using:\n\n"
+- " %s\n\n"),
+- start_db_cmd->data);
++ printf(_("\nSuccess.\n\n"));
+
+ destroyPQExpBuffer(start_db_cmd);
+ }
diff --git a/main/postgresql13/jit-datalayout-mismatch-on-s390x.patch b/main/postgresql16/jit-datalayout-mismatch-on-s390x-and-x86.patch
index bce5c61e159..807a5f1b767 100644
--- a/main/postgresql13/jit-datalayout-mismatch-on-s390x.patch
+++ b/main/postgresql16/jit-datalayout-mismatch-on-s390x-and-x86.patch
@@ -1,27 +1,34 @@
-Patch-Source: https://src.fedoraproject.org/rpms/postgresql/blob/f35/f/postgresql-datalayout-mismatch-on-s390.patch
-From 0edaa982336823d4d7af8f10b91579fe0099ef3d Mon Sep 17 00:00:00 2001
From: Tom Stellard <tstellar@redhat.com>
-Date: Tue, 20 Apr 2021 20:14:21 -0700
-Subject: [PATCH] jit: Workaround potential datalayout mismatch on s390x
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sat, 18 Dec 2021 23:09:03 +0100
+Subject: [PATCH] jit: Workaround datalayout mismatch on s390x and x86
-LLVM's s390x target uses a different datalayout for z13 and newer processors.
-If llvmjit_types.bc is compiled to target a processor older than z13, and
-then the JIT runs on a z13 or newer processor, then there will be a mismatch
-in datalayouts between llvmjit_types.bc and the JIT engine. This mismatch
-causes the JIT to fail at runtime.
----
- src/backend/jit/llvm/llvmjit.c | 46 ++++++++++++++++++++++++++++++++--
- 1 file changed, 44 insertions(+), 2 deletions(-)
+This patch is based on https://src.fedoraproject.org/rpms/postgresql/blob/f35/f/postgresql-datalayout-mismatch-on-s390.patch.
+
+Original description:
+
+> LLVM's s390x target uses a different datalayout for z13 and newer processors.
+> If llvmjit_types.bc is compiled to target a processor older than z13, and
+> then the JIT runs on a z13 or newer processor, then there will be a mismatch
+> in datalayouts between llvmjit_types.bc and the JIT engine. This mismatch
+> causes the JIT to fail at runtime.
+
+We encountered an analogous problem even on x86 (legacy 32bit arch).
+However, I didn't wanna waste my time researching what exact CPU features
+are problematic on this dead architecture, so I just disabled usage of any
+host specific CPU features when creating the JIT on x86. And while I was on
+it, I also conditioned the s390x workaround for s390x only. -jirutka
diff --git a/src/backend/jit/llvm/llvmjit.c b/src/backend/jit/llvm/llvmjit.c
index 98a27f08bf..05b6438ba8 100644
--- a/src/backend/jit/llvm/llvmjit.c
+++ b/src/backend/jit/llvm/llvmjit.c
-@@ -776,6 +776,35 @@ llvm_compile_module(LLVMJitContext *context)
+@@ -776,7 +776,38 @@
errhidecontext(true)));
}
-+/*
++#if defined(__s390__) || defined(__s390x__)
+ /*
+ * For the systemz target, LLVM uses a different datalayout for z13 and newer
+ * CPUs than it does for older CPUs. This can cause a mismatch in datalayouts
+ * in the case where the llvm_types_module is compiled with a pre-z13 CPU
@@ -49,11 +56,13 @@ index 98a27f08bf..05b6438ba8 100644
+ LLVMDisposeTargetData(llvm_layoutref);
+ return ret;
+}
++#endif
+
- /*
++/*
* Per session initialization.
*/
-@@ -785,6 +814,7 @@ llvm_session_initialize(void)
+ static void
+@@ -785,6 +816,7 @@
MemoryContext oldcontext;
char *error = NULL;
char *cpu = NULL;
@@ -61,26 +70,31 @@ index 98a27f08bf..05b6438ba8 100644
char *features = NULL;
LLVMTargetMachineRef opt0_tm;
LLVMTargetMachineRef opt3_tm;
-@@ -816,10 +846,17 @@ llvm_session_initialize(void)
+@@ -815,11 +847,22 @@
+ * latter is needed because some CPU architectures default to enabling
* features not all CPUs have (weird, huh).
*/
++#if !defined(__i386__) && !defined(__i386) // XXX: quick workaround for 32-bit x86
cpu = LLVMGetHostCPUName();
- features = LLVMGetHostCPUFeatures();
+ features = host_features = LLVMGetHostCPUFeatures();
elog(DEBUG2, "LLVMJIT detected CPU \"%s\", with features \"%s\"",
cpu, features);
++#endif
++#if defined(__s390__) || defined(__s390x__)
+ if (needs_systemz_workaround())
+ {
+ const char *no_vector =",-vector";
+ features = malloc(sizeof(char) * (strlen(host_features) + strlen(no_vector) + 1));
+ sprintf(features, "%s%s", host_features, no_vector);
+ }
++#endif
+
opt0_tm =
LLVMCreateTargetMachine(llvm_targetref, llvm_triple, cpu, features,
LLVMCodeGenLevelNone,
-@@ -833,8 +870,13 @@ llvm_session_initialize(void)
+@@ -833,8 +876,13 @@
LLVMDisposeMessage(cpu);
cpu = NULL;
@@ -95,6 +109,3 @@ index 98a27f08bf..05b6438ba8 100644
/* force symbols in main binary to be loaded */
LLVMLoadLibraryPermanently(NULL);
---
-2.27.0
-
diff --git a/main/postgresql13/libpgport-pkglibdir.patch.txt b/main/postgresql16/libpgport-pkglibdir.patch.txt
index 6eff456f4f2..cb862fc344d 100644
--- a/main/postgresql13/libpgport-pkglibdir.patch.txt
+++ b/main/postgresql16/libpgport-pkglibdir.patch.txt
@@ -71,14 +71,21 @@ Description: Move libpgport/libpgcommon/libpgfeutils from libdir to pkglibdir
rm -f $@
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
-@@ -549,8 +549,8 @@ libpq = -L$(libpq_builddir) -lpq
- # on client link lines, since that also appears in $(LIBS).
- # libpq_pgport_shlib is the same idea, but for use in client shared libraries.
- ifdef PGXS
+@@ -599,7 +599,7 @@
+ ifeq ($(PORTNAME),darwin)
+ libpq_pgport = $(libpq)
+ else ifdef PGXS
-libpq_pgport = -L$(libdir) -lpgcommon -lpgport $(libpq)
--libpq_pgport_shlib = -L$(libdir) -lpgcommon_shlib -lpgport_shlib $(libpq)
+libpq_pgport = -L$(pkglibdir) -lpgcommon -lpgport $(libpq)
-+libpq_pgport_shlib = -L$(pkglibdir) -lpgcommon_shlib -lpgport_shlib $(libpq)
else
libpq_pgport = -L$(top_builddir)/src/common -lpgcommon -L$(top_builddir)/src/port -lpgport $(libpq)
+ endif
+@@ -610,7 +610,7 @@
+ # done if they don't, since they will have satisfied all their references
+ # from these libraries.)
+ ifdef PGXS
+-libpq_pgport_shlib = -L$(libdir) -lpgcommon_shlib -lpgport_shlib $(libpq)
++libpq_pgport_shlib = -L$(pkglibdir) -lpgcommon_shlib -lpgport_shlib $(libpq)
+ else
libpq_pgport_shlib = -L$(top_builddir)/src/common -lpgcommon_shlib -L$(top_builddir)/src/port -lpgport_shlib $(libpq)
+ endif
diff --git a/main/postgresql14/make-split-headers.patch b/main/postgresql16/make-split-headers.patch
index 1a280a49c98..1a280a49c98 100644
--- a/main/postgresql14/make-split-headers.patch
+++ b/main/postgresql16/make-split-headers.patch
diff --git a/main/postgresql13/per-version-dirs.patch b/main/postgresql16/per-version-dirs.patch
index a81e1259311..28c4df148d4 100644
--- a/main/postgresql13/per-version-dirs.patch
+++ b/main/postgresql16/per-version-dirs.patch
@@ -54,15 +54,30 @@ Patch-Source: https://sources.debian.org/src/postgresql-14/14.0-1/debian/patches
configdata = get_configdata(my_exec_path, &configdata_len);
/* no arguments -> print everything */
---- a/src/test/perl/TestLib.pm
-+++ b/src/test/perl/TestLib.pm
-@@ -591,6 +591,10 @@ sub check_pg_config
+--- a/src/test/perl/PostgreSQL/Test/Utils.pm
++++ b/src/test/perl/PostgreSQL/Test/Utils.pm
+@@ -721,6 +721,14 @@
or die "could not execute pg_config";
chomp($stdout);
$stdout =~ s/\r$//;
-+ # Alpine's pg_config is not relocatable, manually check for correct location
-+ if (-d "../../../build/tmp_install/usr/include/postgresql") {
-+ $stdout = "../../../build/tmp_install/usr/include/postgresql";
++ # XXX-Patched: Alpine's pg_config is not relocatable, manually check for correct location
++ if (-d "../../../tmp_install/usr/include/postgresql") {
++ my $result = IPC::Run::run [ 'pg_config', '--major-version' ], '>',
++ \$stdout, '2>', \$stderr;
++ chomp($stdout);
++ $stdout =~ s/\r$//;
++ $stdout = "../../../tmp_install/usr/include/postgresql/" . $stdout . "/server";
++ }
+
+ open my $header_h, '<', "$stdout/$header_path" or die "$!";
+
+@@ -759,6 +767,10 @@
+ or die "could not execute pg_config";
+ chomp($stdout);
+ $stdout =~ s/\r$//;
++ # XXX-Patched: Alpine's pg_config is not relocatable, manually check for correct location
++ if (-d "../../../tmp_install/usr/include/postgresql") {
++ $stdout = "../../../tmp_install/usr/include/postgresql";
+ }
open my $pg_config_h, '<', "$stdout/pg_config.h" or die "$!";
diff --git a/main/postgresql14/perl-rpath.patch b/main/postgresql16/perl-rpath.patch
index 6e522dbe67e..6e522dbe67e 100644
--- a/main/postgresql14/perl-rpath.patch
+++ b/main/postgresql16/perl-rpath.patch
diff --git a/main/postgresql14/pg_config-add-major-version.patch b/main/postgresql16/pg_config-add-major-version.patch
index 8f10f366d4e..577317ee0d8 100644
--- a/main/postgresql14/pg_config-add-major-version.patch
+++ b/main/postgresql16/pg_config-add-major-version.patch
@@ -32,7 +32,7 @@ version of the default postgresql.
/* Adjust this to match the number of items filled below */
- *configdata_len = 23;
+ *configdata_len = 24;
- configdata = (ConfigData *) palloc(*configdata_len * sizeof(ConfigData));
+ configdata = palloc_array(ConfigData, *configdata_len);
configdata[i].name = pstrdup("BINDIR");
@@ -193,6 +193,11 @@
diff --git a/main/postgresql14/pltcl_create_tables.sql b/main/postgresql16/pltcl_create_tables.sql
index 76c7a954af3..76c7a954af3 100644
--- a/main/postgresql14/pltcl_create_tables.sql
+++ b/main/postgresql16/pltcl_create_tables.sql
diff --git a/main/postgresql14/postgresql14.post-install b/main/postgresql16/postgresql16.post-install
index 476959a55a3..476959a55a3 100644
--- a/main/postgresql14/postgresql14.post-install
+++ b/main/postgresql16/postgresql16.post-install
diff --git a/main/postgresql14/postgresql14.pre-deinstall b/main/postgresql16/postgresql16.pre-deinstall
index db24e86452f..db24e86452f 100644
--- a/main/postgresql14/postgresql14.pre-deinstall
+++ b/main/postgresql16/postgresql16.pre-deinstall
diff --git a/main/postgresql14/remove-libecpg_compat.patch b/main/postgresql16/remove-libecpg_compat.patch
index ff5fab07fad..ff5fab07fad 100644
--- a/main/postgresql14/remove-libecpg_compat.patch
+++ b/main/postgresql16/remove-libecpg_compat.patch
diff --git a/main/postgresql16/skip-test-icu.patch b/main/postgresql16/skip-test-icu.patch
new file mode 100644
index 00000000000..5804a97a735
--- /dev/null
+++ b/main/postgresql16/skip-test-icu.patch
@@ -0,0 +1,32 @@
+--- a/src/test/icu/t/010_database.pl
++++ b/src/test/icu/t/010_database.pl
+@@ -69,18 +69,19 @@
+ 0,
+ "LOCALE works for ICU locales if LC_COLLATE and LC_CTYPE are specified");
+
++# XXX-Patched: This test doesn't pass probably due to our ICU patch.
+ # Test that ICU-specific LOCALE without LC_COLLATE and LC_CTYPE must
+ # be specified with ICU_LOCALE
+-my ($ret, $stdout, $stderr) = $node1->psql(
+- 'postgres',
+- q{CREATE DATABASE dbicu3 LOCALE_PROVIDER icu LOCALE '@colStrength=primary'
+- TEMPLATE template0 ENCODING UTF8});
+-isnt($ret, 0,
+- "ICU-specific locale must be specified with ICU_LOCALE: exit code not 0");
+-like(
+- $stderr,
+- qr/ERROR: invalid LC_COLLATE locale name/,
+- "ICU-specific locale must be specified with ICU_LOCALE: error message");
++#my ($ret, $stdout, $stderr) = $node1->psql(
++# 'postgres',
++# q{CREATE DATABASE dbicu3 LOCALE_PROVIDER icu LOCALE '@colStrength=primary'
++# TEMPLATE template0 ENCODING UTF8});
++#isnt($ret, 0,
++# "ICU-specific locale must be specified with ICU_LOCALE: exit code not 0");
++#like(
++# $stderr,
++# qr/ERROR: invalid LC_COLLATE locale name/,
++# "ICU-specific locale must be specified with ICU_LOCALE: error message");
+
+
+ done_testing();
diff --git a/main/postgresql14/unix_socket_directories.patch b/main/postgresql16/unix_socket_directories.patch
index e7de03ed664..e7de03ed664 100644
--- a/main/postgresql14/unix_socket_directories.patch
+++ b/main/postgresql16/unix_socket_directories.patch
diff --git a/main/pound/APKBUILD b/main/pound/APKBUILD
deleted file mode 100644
index 6434121caca..00000000000
--- a/main/pound/APKBUILD
+++ /dev/null
@@ -1,45 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=pound
-pkgver=2.8
-pkgrel=1
-pkgdesc="A reverse proxy, load balancer, and SSL wrapper"
-url="http://www.apsis.ch/pound/index_html"
-arch="all"
-license="GPL"
-makedepends="pcre-dev openssl-dev openssl"
-subpackages="$pkgname-doc"
-source="http://www.apsis.ch/$pkgname/Pound-$pkgver.tgz
- openssl-1.1.patch
- pound.cfg
- $pkgname.initd"
-
-builddir="$srcdir"/Pound-$pkgver
-prepare() {
- default_prepare
- update_config_sub
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc/pound \
- --with-owner=root \
- --with-group=root
- make
-}
-
-package() {
- install -d "$pkgdir"/usr/sbin
- make DESTDIR="$pkgdir" install
- install -Dm755 "$srcdir"/pound.initd "$pkgdir"/etc/init.d/pound
- install -Dm644 "$srcdir"/pound.cfg "$pkgdir"/etc/pound.cfg
-}
-
-sha512sums="
-cf0b865b17d3628e273626e07733f1320e4768702c0f64c8ef0f78d46667f770b223bdc7dca88016a95e5ebd23ae646f95a9b2f4a54a5a80001a10047f07eacc Pound-2.8.tgz
-bc1ba9b6cca1e0cddc95ba519fb2ef11c8252e6585582d0ee26d083d360edc8e8baf52c2708c77895aa2c1453297180f80b9e2aa2a9f8c3c2cafd188447603b1 openssl-1.1.patch
-9471e5abe3e0ee83165ed01a7081a4d14075c6c21b9f9d7c3fb239aa78c38eae74394a7c7e7e7753d218a7ce5cae388823570d19b702a829baa93e949a8946b8 pound.cfg
-cd014677ef7e724d5bd0a101436d0269d2fc18b4cd90ff71eaa690967754d3e4bfe5d0a439099967487b6256121ccc734b01880d96dff50d28242829715e7776 pound.initd
-"
diff --git a/main/pound/openssl-1.1.patch b/main/pound/openssl-1.1.patch
deleted file mode 100644
index d16b5ef7330..00000000000
--- a/main/pound/openssl-1.1.patch
+++ /dev/null
@@ -1,345 +0,0 @@
-From a2c9dde4d055ea8942afb150b7fc3a807d4e5d60 Mon Sep 17 00:00:00 2001
-From: Sergey Poznyakoff <gray@gnu.org>
-Date: Wed, 28 Feb 2018 13:44:01 +0000
-Subject: [PATCH] Support for Openssl 1.1
-
----
- .gitignore | 15 ++++++++
- config.c | 17 +++++++--
- http.c | 12 ++++++-
- pound.h | 4 ++-
- svc.c | 101 +++++++++++++++++++++++++++++++++++++++++++----------
- 5 files changed, 125 insertions(+), 24 deletions(-)
- create mode 100644 .gitignore
-
-diff --git a/.gitignore b/.gitignore
-new file mode 100644
-index 0000000..1afa3b2
---- /dev/null
-+++ b/.gitignore
-@@ -0,0 +1,15 @@
-+Makefile
-+*.orig
-+*.rej
-+core
-+config.h
-+config.log
-+config.status
-+stamp-h1
-+.emacs*
-+*.o
-+*~
-+dh2048.h
-+dh512.h
-+pound
-+poundctl
-diff --git a/config.c b/config.c
-index d41a3ee..e8fec0f 100644
---- a/config.c
-+++ b/config.c
-@@ -174,6 +174,16 @@ conf_fgets(char *buf, const int max)
- }
- }
-
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+# define general_name_string(n) \
-+ strndup(ASN1_STRING_get0_data(n->d.dNSName), \
-+ ASN1_STRING_length(n->d.dNSName) + 1)
-+#else
-+# define general_name_string(n) \
-+ strndup(ASN1_STRING_data(n->d.dNSName), \
-+ ASN1_STRING_length(n->d.dNSName) + 1)
-+#endif
-+
- unsigned char **
- get_subjectaltnames(X509 *x509, unsigned int *count)
- {
-@@ -194,8 +204,7 @@ get_subjectaltnames(X509 *x509, unsigned int *count)
- name = sk_GENERAL_NAME_pop(san_stack);
- switch(name->type) {
- case GEN_DNS:
-- temp[local_count] = strndup(ASN1_STRING_data(name->d.dNSName), ASN1_STRING_length(name->d.dNSName)
-- + 1);
-+ temp[local_count] = general_name_string(name);
- if(temp[local_count] == NULL)
- conf_err("out of memory");
- local_count++;
-@@ -565,7 +574,9 @@ parse_service(const char *svc_name)
- pthread_mutex_init(&res->mut, NULL);
- if(svc_name)
- strncpy(res->name, svc_name, KEY_SIZE);
--#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ if((res->sessions = lh_TABNODE_new(t_hash, t_cmp)) == NULL)
-+#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
- if((res->sessions = LHM_lh_new(TABNODE, t)) == NULL)
- #else
- if((res->sessions = lh_new(LHASH_HASH_FN(t_hash), LHASH_COMP_FN(t_cmp))) == NULL)
-diff --git a/http.c b/http.c
-index dd211e4..c8e756a 100644
---- a/http.c
-+++ b/http.c
-@@ -527,12 +527,22 @@ log_bytes(char *res, const LONG cnt)
-
- /* Cleanup code. This should really be in the pthread_cleanup_push, except for bugs in some implementations */
-
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+# define clear_error()
-+#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
-+# define clear_error() \
-+ if(ssl != NULL) { ERR_clear_error(); ERR_remove_thread_state(NULL); }
-+#else
-+# define clear_error() \
-+ if(ssl != NULL) { ERR_clear_error(); ERR_remove_state(0); }
-+#endif
-+
- #define clean_all() { \
- if(ssl != NULL) { BIO_ssl_shutdown(cl); } \
- if(be != NULL) { BIO_flush(be); BIO_reset(be); BIO_free_all(be); be = NULL; } \
- if(cl != NULL) { BIO_flush(cl); BIO_reset(cl); BIO_free_all(cl); cl = NULL; } \
- if(x509 != NULL) { X509_free(x509); x509 = NULL; } \
-- if(ssl != NULL) { ERR_clear_error(); ERR_remove_state(0); } \
-+ clear_error(); \
- }
-
- /*
-diff --git a/pound.h b/pound.h
-index fa22c36..9603b91 100644
---- a/pound.h
-+++ b/pound.h
-@@ -344,7 +344,9 @@ typedef struct _tn {
- /* maximal session key size */
- #define KEY_SIZE 127
-
--#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ DEFINE_LHASH_OF(TABNODE);
-+#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
- DECLARE_LHASH_OF(TABNODE);
- #endif
-
-diff --git a/svc.c b/svc.c
-index 60ba488..063b92c 100644
---- a/svc.c
-+++ b/svc.c
-@@ -27,10 +27,17 @@
-
- #include "pound.h"
-
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+# define TABNODE_GET_DOWN_LOAD(t) lh_TABNODE_get_down_load(t)
-+# define TABNODE_SET_DOWN_LOAD(t,n) lh_TABNODE_set_down_load(t,n)
-+#else
- #ifndef LHASH_OF
- #define LHASH_OF(x) LHASH
- #define CHECKED_LHASH_OF(type, h) h
- #endif
-+# define TABNODE_GET_DOWN_LOAD(t) (CHECKED_LHASH_OF(TABNODE, t)->down_load)
-+# define TABNODE_SET_DOWN_LOAD(t,n) (CHECKED_LHASH_OF(TABNODE, t)->down_load = n)
-+#endif
-
- /*
- * Add a new key/content pair to a hash table
-@@ -58,7 +65,9 @@ t_add(LHASH_OF(TABNODE) *const tab, const char *key, const void *content, const
- }
- memcpy(t->content, content, cont_len);
- t->last_acc = time(NULL);
--#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ if((old = lh_TABNODE_insert(tab, t)) != NULL) {
-+#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
- if((old = LHM_lh_insert(TABNODE, tab, t)) != NULL) {
- #else
- if((old = (TABNODE *)lh_insert(tab, t)) != NULL) {
-@@ -82,7 +91,9 @@ t_find(LHASH_OF(TABNODE) *const tab, char *const key)
- TABNODE t, *res;
-
- t.key = key;
--#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ if((res = lh_TABNODE_retrieve(tab, &t)) != NULL) {
-+#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
- if((res = (TABNODE *)LHM_lh_retrieve(TABNODE, tab, &t)) != NULL) {
- #else
- if((res = (TABNODE *)lh_retrieve(tab, &t)) != NULL) {
-@@ -102,7 +113,9 @@ t_remove(LHASH_OF(TABNODE) *const tab, char *const key)
- TABNODE t, *res;
-
- t.key = key;
--#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ if((res = lh_TABNODE_delete(tab, &t)) != NULL) {
-+#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
- if((res = LHM_lh_delete(TABNODE, tab, &t)) != NULL) {
- #else
- if((res = (TABNODE *)lh_delete(tab, &t)) != NULL) {
-@@ -127,7 +140,9 @@ t_old_doall_arg(TABNODE *t, ALL_ARG *a)
- TABNODE *res;
-
- if(t->last_acc < a->lim)
--#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ if((res = lh_TABNODE_delete(a->tab, t)) != NULL) {
-+#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
- if((res = LHM_lh_delete(TABNODE, a->tab, t)) != NULL) {
- #else
- if((res = lh_delete(a->tab, t)) != NULL) {
-@@ -145,6 +160,10 @@ IMPLEMENT_LHASH_DOALL_ARG_FN(t_old, TABNODE, ALL_ARG)
- IMPLEMENT_LHASH_DOALL_ARG_FN(t_old, TABNODE *, ALL_ARG *)
- #endif
-
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+IMPLEMENT_LHASH_DOALL_ARG(TABNODE,ALL_ARG);
-+#endif
-+
- /*
- * Expire all old nodes
- */
-@@ -156,14 +175,16 @@ t_expire(LHASH_OF(TABNODE) *const tab, const time_t lim)
-
- a.tab = tab;
- a.lim = lim;
-- down_load = CHECKED_LHASH_OF(TABNODE, tab)->down_load;
-- CHECKED_LHASH_OF(TABNODE, tab)->down_load = 0;
--#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+ down_load = TABNODE_GET_DOWN_LOAD(tab);
-+ TABNODE_SET_DOWN_LOAD(tab, 0);
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ lh_TABNODE_doall_ALL_ARG(tab, t_old_doall_arg, &a);
-+#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
- LHM_lh_doall_arg(TABNODE, tab, LHASH_DOALL_ARG_FN(t_old), ALL_ARG, &a);
- #else
- lh_doall_arg(tab, LHASH_DOALL_ARG_FN(t_old), &a);
- #endif
-- CHECKED_LHASH_OF(TABNODE, tab)->down_load = down_load;
-+ TABNODE_SET_DOWN_LOAD(tab, down_load);
- return;
- }
-
-@@ -173,7 +194,9 @@ t_cont_doall_arg(TABNODE *t, ALL_ARG *arg)
- TABNODE *res;
-
- if(memcmp(t->content, arg->content, arg->cont_len) == 0)
--#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ if((res = lh_TABNODE_delete(arg->tab, t)) != NULL) {
-+#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
- if((res = LHM_lh_delete(TABNODE, arg->tab, t)) != NULL) {
- #else
- if((res = lh_delete(arg->tab, t)) != NULL) {
-@@ -203,15 +226,16 @@ t_clean(LHASH_OF(TABNODE) *const tab, void *const content, const size_t cont_len
- a.tab = tab;
- a.content = content;
- a.cont_len = cont_len;
-- down_load = CHECKED_LHASH_OF(TABNODE, tab)->down_load;
-- CHECKED_LHASH_OF(TABNODE, tab)->down_load = 0;
--#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+ down_load = TABNODE_GET_DOWN_LOAD(tab);
-+ TABNODE_SET_DOWN_LOAD(tab, 0);
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ lh_TABNODE_doall_ALL_ARG(tab, t_cont_doall_arg, &a);
-+#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
- LHM_lh_doall_arg(TABNODE, tab, LHASH_DOALL_ARG_FN(t_cont), ALL_ARG, &a);
- #else
- lh_doall_arg(tab, LHASH_DOALL_ARG_FN(t_cont), &a);
- #endif
-- CHECKED_LHASH_OF(TABNODE, tab)->down_load = down_load;
-- return;
-+ TABNODE_SET_DOWN_LOAD(tab, down_load);
- }
-
- /*
-@@ -1262,6 +1286,31 @@ RSA_tmp_callback(/* not used */SSL *ssl, /* not used */int is_export, int keylen
- return res;
- }
-
-+static int
-+generate_key(RSA **ret_rsa, unsigned long bits)
-+{
-+#if OPENSSL_VERSION_NUMBER > 0x00908000L
-+ int rc = 0;
-+ RSA *rsa;
-+
-+ rsa = RSA_new();
-+ if (rsa) {
-+ BIGNUM *bne = BN_new();
-+ if (BN_set_word(bne, RSA_F4))
-+ rc = RSA_generate_key_ex(rsa, bits, bne, NULL);
-+ BN_free(bne);
-+ if (rc)
-+ *ret_rsa = rsa;
-+ else
-+ RSA_free(rsa);
-+ }
-+ return rc;
-+#else
-+ *ret_rsa = RSA_generate_key(bits, RSA_F4, NULL, NULL);
-+ return *ret_rsa != NULL;
-+#endif
-+}
-+
- /*
- * Periodically regenerate ephemeral RSA keys
- * runs every T_RSA_KEYS seconds
-@@ -1274,8 +1323,9 @@ do_RSAgen(void)
- RSA *t_RSA1024_keys[N_RSA_KEYS];
-
- for(n = 0; n < N_RSA_KEYS; n++) {
-- t_RSA512_keys[n] = RSA_generate_key(512, RSA_F4, NULL, NULL);
-- t_RSA1024_keys[n] = RSA_generate_key(1024, RSA_F4, NULL, NULL);
-+ /* FIXME: Error handling */
-+ generate_key(&t_RSA512_keys[n], 512);
-+ generate_key(&t_RSA1024_keys[n], 1024);
- }
- if(ret_val = pthread_mutex_lock(&RSA_mut))
- logmsg(LOG_WARNING, "thr_RSAgen() lock: %s", strerror(ret_val));
-@@ -1329,11 +1379,11 @@ init_timer(void)
- * Pre-generate ephemeral RSA keys
- */
- for(n = 0; n < N_RSA_KEYS; n++) {
-- if((RSA512_keys[n] = RSA_generate_key(512, RSA_F4, NULL, NULL)) == NULL) {
-+ if(!generate_key(&RSA512_keys[n], 512)) {
- logmsg(LOG_WARNING,"RSA_generate(%d, 512) failed", n);
- return;
- }
-- if((RSA1024_keys[n] = RSA_generate_key(1024, RSA_F4, NULL, NULL)) == NULL) {
-+ if(!generate_key(&RSA1024_keys[n], 1024)) {
- logmsg(LOG_WARNING,"RSA_generate(%d, 1024) failed", n);
- return;
- }
-@@ -1420,6 +1470,10 @@ IMPLEMENT_LHASH_DOALL_ARG_FN(t_dump, TABNODE, DUMP_ARG)
- IMPLEMENT_LHASH_DOALL_ARG_FN(t_dump, TABNODE *, DUMP_ARG *)
- #endif
-
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+IMPLEMENT_LHASH_DOALL_ARG(TABNODE,DUMP_ARG);
-+#endif
-+
- /*
- * write sessions to the control socket
- */
-@@ -1430,7 +1484,9 @@ dump_sess(const int control_sock, LHASH_OF(TABNODE) *const sess, BACKEND *const
-
- a.control_sock = control_sock;
- a.backends = backends;
--#if OPENSSL_VERSION_NUMBER >= 0x10000000L
-+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
-+ lh_TABNODE_doall_DUMP_ARG(sess, t_dump_doall_arg, &a);
-+#elif OPENSSL_VERSION_NUMBER >= 0x10000000L
- LHM_lh_doall_arg(TABNODE, sess, LHASH_DOALL_ARG_FN(t_dump), DUMP_ARG, &a);
- #else
- lh_doall_arg(sess, LHASH_DOALL_ARG_FN(t_dump), &a);
-@@ -1664,6 +1720,13 @@ thr_control(void *arg)
- }
- }
-
-+#ifndef SSL3_ST_SR_CLNT_HELLO_A
-+# define SSL3_ST_SR_CLNT_HELLO_A (0x110|SSL_ST_ACCEPT)
-+#endif
-+#ifndef SSL23_ST_SR_CLNT_HELLO_A
-+# define SSL23_ST_SR_CLNT_HELLO_A (0x210|SSL_ST_ACCEPT)
-+#endif
-+
- void
- SSLINFO_callback(const SSL *ssl, int where, int rc)
- {
diff --git a/main/pound/pound.cfg b/main/pound/pound.cfg
deleted file mode 100644
index 664ea53c9ed..00000000000
--- a/main/pound/pound.cfg
+++ /dev/null
@@ -1,54 +0,0 @@
-## Minimal sample pound.cfg
-##
-## see pound(8) for details
-
-
-######################################################################
-## global options:
-
-User "nobody"
-Group "nobody"
-#RootJail /chroot/pound
-
-## Logging: (goes to syslog by default)
-## 0 no logging
-## 1 normal
-## 2 extended
-## 3 Apache-style (common log format)
-LogLevel 1
-
-## check backend every X secs:
-Alive 30
-
-## use hardware-accelleration card supported by openssl(1):
-#SSLEngine <hw>
-
-
-######################################################################
-## listen, redirect and ... to:
-
-## redirect all requests on port 8888 ("ListenHTTP") to the local webserver see "UrlGroup" below):
-ListenHTTP
-Address 127.0.0.1
-Port 8888
-
-## allow PUT and DELETE also (by default only GET, POST and HEAD)?:
-xHTTP 0
-
-Service
-URL ".*"
-
-BackEnd
-Address 127.0.0.1
-Port 80
-Priority 1
-
-## End Backend
-End
-
-## End Service
-End
-
-## End listener
-End
-
diff --git a/main/pound/pound.initd b/main/pound/pound.initd
deleted file mode 100644
index 51be0ecc4ee..00000000000
--- a/main/pound/pound.initd
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/sbin/openrc-run
-# Copyright 1999-2004 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/www-servers/pound/files/pound.init-1.9,v 1.1 2005/07/07 15:45:08 mkennedy Exp $
-
-depend() {
- need net
- after firewall
-}
-
-start() {
- ebegin "Starting pound"
- if [ ! -f "/etc/pound.cfg" ]; then
- eend 1 "configfile /etc/pound.cfg not found."
- fi
- start-stop-daemon --quiet --start --exec /usr/sbin/pound \
- -- -f /etc/pound.cfg -p /var/run/pound.pid
- eend $?
-}
-
-stop() {
- ebegin "Stopping pound"
- start-stop-daemon --quiet --stop --pidfile /var/run/pound.pid
- eend $?
-}
-
diff --git a/main/powerpc-utils/APKBUILD b/main/powerpc-utils/APKBUILD
index 40f2956e07f..7a27182b821 100644
--- a/main/powerpc-utils/APKBUILD
+++ b/main/powerpc-utils/APKBUILD
@@ -1,26 +1,23 @@
# Maintainer: Roberto Oliveira <robertoguimaraes8@gmail.com>
pkgname=powerpc-utils
pkgver=1.3.6
-pkgrel=0
+pkgrel=1
pkgdesc="Maintenance utilities for PowerPC platforms"
url="https://github.com/nfont/powerpc-utils"
arch="ppc ppc64 ppc64le"
options="!check" # No test suite.
-license="GPL-2.0+"
+license="GPL-2.0-or-later"
makedepends="autoconf automake zlib-dev"
depends="bash bc"
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/nfont/$pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
+source="$pkgname-$pkgver.tar.gz::https://github.com/nfont/powerpc-utils/archive/v$pkgver.tar.gz"
prepare() {
default_prepare
- cd "$builddir"
./autogen.sh
}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -31,7 +28,6 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
diff --git a/main/powertop/APKBUILD b/main/powertop/APKBUILD
index c71dda48f81..0572da47217 100644
--- a/main/powertop/APKBUILD
+++ b/main/powertop/APKBUILD
@@ -1,29 +1,45 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer:
+# Maintainer: Steven Guikal <void@fluix.one>
pkgname=powertop
-pkgver=2.14
-pkgrel=0
+pkgver=2.15
+pkgrel=4
pkgdesc="Power consumption monitor"
-url="https://01.org/powertop"
+url="https://github.com/fenrus75/powertop"
arch="all"
license="GPL-2.0-only"
-makedepends="linux-headers ncurses-dev pciutils-dev zlib-dev libnl-dev
- gettext-dev automake autoconf libtool autoconf-archive"
+makedepends="
+ autoconf
+ autoconf-archive
+ automake
+ gettext-dev
+ libnl3-dev
+ libtool
+ linux-headers
+ ncurses-dev
+ pciutils-dev
+ xz
+ zlib-dev
+ "
subpackages="
$pkgname-doc
$pkgname-bash-completion
"
-source="$pkgname-$pkgver.tar.gz::https://github.com/fenrus75/powertop/archive/v$pkgver.tar.gz
- musl-fix-headers.patch
- "
+source="$pkgname-$pkgver.tar.gz::https://github.com/fenrus75/powertop/releases/download/v$pkgver/powertop.tar.gz"
+builddir="$srcdir/$pkgname"
+options="!check" # no tests
prepare() {
default_prepare
- autoreconf -fi
+ NOCONFIGURE=1 ./autogen.sh
}
build() {
- LIBS="-lintl" ./configure --prefix=/usr --disable-nls
+ LIBS="-lintl" \
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --disable-nls
make
}
@@ -32,6 +48,5 @@ package() {
}
sha512sums="
-f3e25901fb29405e0c8016643855a209cf9dba589fe9dd3e27c291d44699cebeb00dc8c7264c24436db08deb496759bd106666cb52d9ebd5f831bbb99e30f20f powertop-2.14.tar.gz
-d3bb0e8eaa56fe9ef5aed5d7bea4860be2135fc163ec0c669dc2d01f5ee46ee22ee58cac0835518dc1a4e2939748cf57f2ab37e8d0d879bbc0161d66db7d1919 musl-fix-headers.patch
+8aa71c15a3931f1b62fd22920c8f16d552a3b81335d87ad210121419fd74263ac6956eec7fb0d607247fee71658923a0e049717de946031604085e5d8c108a85 powertop-2.15.tar.gz
"
diff --git a/main/powertop/musl-fix-headers.patch b/main/powertop/musl-fix-headers.patch
deleted file mode 100644
index 9839d15bf6f..00000000000
--- a/main/powertop/musl-fix-headers.patch
+++ /dev/null
@@ -1,22 +0,0 @@
---- ./src/devices/devfreq.h.orig
-+++ ./src/devices/devfreq.h
-@@ -25,6 +25,7 @@
- #ifndef _INCLUDE_GUARD_DEVFREQ_H
- #define _INCLUDE_GUARD_DEVFREQ_H
-
-+#include <sys/time.h>
- #include "device.h"
- #include "../parameters/parameters.h"
-
-diff --git a/src/perf/perf.h b/src/perf/perf.h
-index ee072ae06d24..932588a684f9 100644
---- a/src/perf/perf.h
-+++ b/src/perf/perf.h
-@@ -26,6 +26,7 @@
- #define _INCLUDE_GUARD_PERF_H_
-
- #include <iostream>
-+#include <stdio.h>
-
-
- extern "C" {
diff --git a/main/ppp/0001-Revert-lock-path-to-var-lock-435.patch b/main/ppp/0001-Revert-lock-path-to-var-lock-435.patch
new file mode 100644
index 00000000000..4a81b255674
--- /dev/null
+++ b/main/ppp/0001-Revert-lock-path-to-var-lock-435.patch
@@ -0,0 +1,61 @@
+From 99cbf5e269994482edaf64624be8b1c806f9587c Mon Sep 17 00:00:00 2001
+From: Dominique Martinet <asmadeus@codewreck.org>
+Date: Tue, 10 Oct 2023 10:05:50 +0900
+Subject: [PATCH] Revert lock path to /var/lock (#435)
+
+lock dir changed on linux from /var/lock to /run/pppd/lock with
+pppd-2.5.0, which makes pppd fail to start if the distribution does not
+pre-create the directory.
+
+This reverts it back to /var/lock.
+
+The paths for other OS should be identical as LOCALSTATEDIR should be
+/var, but also revert them back as well just in case.
+Since the variable is no longer used remove it from makefiles.
+
+Fixes: 66a8c74c3f73 ("Let ./configure control the paths for pppd")
+Fixes: #419
+
+Signed-off-by: Dominique Martinet <dominique.martinet@atmark-techno.com>
+Co-authored-by: Dominique Martinet <dominique.martinet@atmark-techno.com>
+---
+ pppd/Makefile.am | 2 +-
+ pppd/pathnames.h | 6 +++---
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/pppd/Makefile.am b/pppd/Makefile.am
+index e5bedf26af96..7cb30053322e 100644
+--- a/pppd/Makefile.am
++++ b/pppd/Makefile.am
+@@ -83,7 +83,7 @@ pppd_SOURCES = \
+ upap.c \
+ utils.c
+
+-pppd_CPPFLAGS = -DSYSCONFDIR=\"${sysconfdir}\" -DLOCALSTATEDIR=\"${localstatedir}\" -DPPPD_RUNTIME_DIR='"@PPPD_RUNTIME_DIR@"' -DPPPD_LOGFILE_DIR='"@PPPD_LOGFILE_DIR@"'
++pppd_CPPFLAGS = -DSYSCONFDIR=\"${sysconfdir}\" -DPPPD_RUNTIME_DIR='"@PPPD_RUNTIME_DIR@"' -DPPPD_LOGFILE_DIR='"@PPPD_LOGFILE_DIR@"'
+ pppd_LDFLAGS =
+ pppd_LIBS =
+
+diff --git a/pppd/pathnames.h b/pppd/pathnames.h
+index de2fb6889005..12609a969429 100644
+--- a/pppd/pathnames.h
++++ b/pppd/pathnames.h
+@@ -120,12 +120,12 @@
+ #define PPP_PATH_PPPDB PPP_PATH_VARRUN "/pppd2.tdb"
+
+ #ifdef __linux__
+-#define PPP_PATH_LOCKDIR PPP_PATH_VARRUN "/lock"
++#define PPP_PATH_LOCKDIR "/var/lock"
+ #else
+ #ifdef SVR4
+-#define PPP_PATH_LOCKDIR LOCALSTATEDIR "/spool/locks"
++#define PPP_PATH_LOCKDIR "/var/spool/locks"
+ #else
+-#define PPP_PATH_LOCKDIR LOCALSTATEDIR "/spool/lock"
++#define PPP_PATH_LOCKDIR "/var/spool/lock"
+ #endif
+ #endif
+
+--
+2.39.2
+
diff --git a/main/ppp/0011-build-sys-don-t-put-connect-errors-log-to-etc-ppp.patch b/main/ppp/0011-build-sys-don-t-put-connect-errors-log-to-etc-ppp.patch
index a99cc1ca763..5ab5c98de4f 100644
--- a/main/ppp/0011-build-sys-don-t-put-connect-errors-log-to-etc-ppp.patch
+++ b/main/ppp/0011-build-sys-don-t-put-connect-errors-log-to-etc-ppp.patch
@@ -23,55 +23,19 @@ index 6d10836..78d6939 100644
.LP
\fBSAY\fR strings must be enclosed in single or double quotes. If
carriage return and line feed are needed in the string to be output,
-diff --git a/linux/Makefile.top b/linux/Makefile.top
-index f63d45e..f42efd5 100644
---- a/linux/Makefile.top
-+++ b/linux/Makefile.top
-@@ -5,6 +5,8 @@ BINDIR = $(DESTDIR)/sbin
- INCDIR = $(DESTDIR)/include
- MANDIR = $(DESTDIR)/share/man
- ETCDIR = $(INSTROOT)@SYSCONF@/ppp
-+RUNDIR = $(INSTROOT)/var/run/ppp
-+LOGDIR = $(INSTROOT)/var/log/ppp
-
- # uid 0 = root
- INSTALL= install
-@@ -16,7 +18,7 @@ all:
- cd pppstats; $(MAKE) $(MFLAGS) all
- cd pppdump; $(MAKE) $(MFLAGS) all
-
--install: $(BINDIR) $(MANDIR)/man8 install-progs install-devel
-+install: $(BINDIR) $(RUNDIR) $(LOGDIR) $(MANDIR)/man8 install-progs install-devel
-
- install-progs:
- cd chat; $(MAKE) $(MFLAGS) install
-@@ -44,6 +46,10 @@ $(MANDIR)/man8:
- $(INSTALL) -d -m 755 $@
- $(ETCDIR):
- $(INSTALL) -d -m 755 $@
-+$(RUNDIR):
-+ $(INSTALL) -d -m 755 $@
-+$(LOGDIR):
-+ $(INSTALL) -d -m 755 $@
-
- clean:
- rm -f `find . -name '*.[oas]' -print`
diff --git a/pppd/pathnames.h b/pppd/pathnames.h
-index a427cb8..bef3160 100644
+index de2fb68..84cf008 100644
--- a/pppd/pathnames.h
+++ b/pppd/pathnames.h
-@@ -28,9 +28,9 @@
- #define _PATH_AUTHUP _ROOT_PATH "/etc/ppp/auth-up"
- #define _PATH_AUTHDOWN _ROOT_PATH "/etc/ppp/auth-down"
- #define _PATH_TTYOPT _ROOT_PATH "/etc/ppp/options."
--#define _PATH_CONNERRS _ROOT_PATH "/etc/ppp/connect-errors"
-+#define _PATH_CONNERRS _ROOT_PATH "/var/log/ppp/connect-errors"
- #define _PATH_PEERFILES _ROOT_PATH "/etc/ppp/peers/"
--#define _PATH_RESOLV _ROOT_PATH "/etc/ppp/resolv.conf"
-+#define _PATH_RESOLV _ROOT_PATH "/var/run/ppp/resolv.conf"
+@@ -105,9 +105,9 @@
+ #define PPP_PATH_AUTHDOWN PPP_PATH_CONFDIR "/auth-down"
+ #define PPP_PATH_TTYOPT PPP_PATH_CONFDIR "/options."
+ #define PPP_PATH_PEERFILES PPP_PATH_CONFDIR "/peers/"
+-#define PPP_PATH_RESOLV PPP_PATH_CONFDIR "/resolv.conf"
++#define PPP_PATH_RESOLV "/run/ppp/resolv.conf"
- #define _PATH_USEROPT ".ppprc"
- #define _PATH_PSEUDONYM ".ppp_pseudonym"
---
-1.8.3.1
-
+-#define PPP_PATH_CONNERRS PPP_PATH_VARLOG "/connect-errors"
++#define PPP_PATH_CONNERRS "/var/log/ppp/connect-errors"
+
+ #define PPP_PATH_USEROPT ".ppprc"
+ #define PPP_PATH_PSEUDONYM ".ppp_pseudonym"
diff --git a/main/ppp/APKBUILD b/main/ppp/APKBUILD
index c6e4e1744d0..2630b615505 100644
--- a/main/ppp/APKBUILD
+++ b/main/ppp/APKBUILD
@@ -1,79 +1,104 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=ppp
-pkgver=2.4.9
-pkgrel=4
+pkgver=2.5.0
+pkgrel=5
pkgdesc="A daemon which implements the PPP protocol for dial-up networking"
url="https://ppp.samba.org/"
arch="all"
license="BSD-3-Clause AND BSD-4-Clause AND BSD-4-Clause-Shortened AND GPL-2.0-or-later AND HPND AND LGPL-2.0-or-later AND Public-Domain AND RSA-MD"
-makedepends="bsd-compat-headers linux-headers openssl1.1-compat-dev libpcap-dev"
-subpackages="$pkgname-doc $pkgname-dev $pkgname-chat $pkgname-radius
- $pkgname-atm $pkgname-pppoe $pkgname-l2tp $pkgname-winbind
- $pkgname-passprompt $pkgname-passwordfd $pkgname-minconn
- $pkgname-openrc $pkgname-daemon
- "
-
# for compatibility reasons the 'ppp' package is an empty meta package
# that pulls in all except -dev and -doc subpackages
-depends="$pkgname-chat $pkgname-radius
- $pkgname-atm $pkgname-pppoe $pkgname-l2tp $pkgname-winbind
- $pkgname-passprompt $pkgname-passwordfd $pkgname-minconn
- $pkgname-daemon
- "
-
+depends="
+ $pkgname-chat
+ $pkgname-radius
+ $pkgname-atm
+ $pkgname-pppoe
+ $pkgname-l2tp
+ $pkgname-winbind
+ $pkgname-passprompt
+ $pkgname-passwordfd
+ $pkgname-minconn
+ $pkgname-daemon
+ "
+makedepends="
+ autoconf
+ automake
+ bsd-compat-headers
+ libpcap-dev
+ libtool
+ linux-headers
+ openssl-dev>3
+ "
+subpackages="
+ $pkgname-doc
+ $pkgname-dev
+ $pkgname-chat
+ $pkgname-radius
+ $pkgname-atm
+ $pkgname-pppoe
+ $pkgname-l2tp
+ $pkgname-winbind
+ $pkgname-passprompt
+ $pkgname-passwordfd
+ $pkgname-minconn
+ $pkgname-openrc
+ $pkgname-daemon
+ "
source="https://github.com/paulusmack/ppp/archive/ppp-$pkgver.tar.gz
- musl-fix-headers.patch
- fix-paths.patch
0011-build-sys-don-t-put-connect-errors-log-to-etc-ppp.patch
- fix-pppd-magic.h.patch
+ fix-paths.patch
+ musl-fix-headers.patch
+ 0001-Revert-lock-path-to-var-lock-435.patch
ip-down
ip-up
pppd.initd
- fix-linux-5.15-include.patch
+ pppd.confd
"
-
builddir="$srcdir"/$pkgname-$pkgname-$pkgver
+options="!check"
# secfixes:
+# 2.4.9-r6:
+# - CVE-2022-4603
# 2.4.8-r1:
# - CVE-2020-8597
-build() {
+prepare() {
+ default_prepare
+ autoreconf -fvi
+}
+
+build() {
# fix CFLAGS
# -D_GNU_SOURCE is needed for IPv6 to work apparently
export CFLAGS="$CFLAGS -D_GNU_SOURCE"
- sed -i "s:-O2 -pipe -Wall -g:${CFLAGS}:" pppd/Makefile.linux
- sed -i "s:-g -O2:${CFLAGS}:" pppd/plugins/Makefile.linux
- sed -i "s:-O2:${CFLAGS}:" pppstats/Makefile.linux
- sed -i "s:-O2 -g -pipe:${CFLAGS}:" chat/Makefile.linux
- sed -i "s:-O:${CFLAGS}:" pppdump/Makefile.linux
- # enable active filter
- sed -i "s:^#FILTER=y:FILTER=y:" pppd/Makefile.linux
- # enable ipv6 support
- sed -i "s:^#HAVE_INET6=y:HAVE_INET6=y:" pppd/Makefile.linux
- # Enable Microsoft proprietary Callback Control Protocol
- sed -i "s:^#CBCP=y:CBCP=y:" pppd/Makefile.linux
- sed -i "s:^#CBCP=y:CBCP=y:" pppd/Makefile.linux
- sed -i "s:^#USE_CRYPT=y:USE_CRYPT=y:" pppd/Makefile.linux
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
- --localstatedir=/var
- make COPTS="$CFLAGS"
+ --localstatedir=/var \
+ --sysconfdir=/etc \
+ --with-runtime-dir=/run/ppp \
+ --with-logfile-dir=/var/log/ppp \
+ --enable-cbcp \
+ --enable-microsoft-extensions \
+ --enable-multilink \
+ --enable-peap \
+ --disable-systemd
+ make
}
package() {
- make INSTROOT="$pkgdir" install
+ make DESTDIR="$pkgdir" install
install -Dm644 include/net/ppp_defs.h \
"$pkgdir"/usr/include/net/ppp_defs.h
install -D -m755 "$srcdir"/ip-up "$pkgdir"/etc/ppp/ip-up
install -D -m755 "$srcdir"/ip-down "$pkgdir"/etc/ppp/ip-down
install -D -m755 "$srcdir"/pppd.initd "$pkgdir"/etc/init.d/pppd
- install -D -m644 etc.ppp/options "$pkgdir"/etc/ppp/options
- install -D -m600 etc.ppp/pap-secrets "$pkgdir"/etc/ppp/pap-secrets
- install -D -m600 etc.ppp/chap-secrets "$pkgdir"/etc/ppp/chap-secrets
+ install -D -m644 "$srcdir"/pppd.confd "$pkgdir"/etc/conf.d/pppd
+
+ mkdir -p "$pkgdir"/var/log/ppp/
# busybox ifup/ifdown needs pon/poff
install -D -m644 scripts/pon.1 "$pkgdir"/usr/share/man/man1/pon.1
@@ -83,7 +108,7 @@ package() {
install -d "$pkgdir"/usr/share/doc/ppp
for i in scripts/*; do
case $i in
- pon|poff|*.1) continue;
+ pon|poff|*.1|Makefile*) continue;
esac
if [ -f "$i" ]; then
cp $i "$pkgdir"/usr/share/doc/ppp/
@@ -113,7 +138,6 @@ winbind() {
_mv usr/lib/pppd/$pkgver/winbind.so 755
}
-
passprompt() {
pkgdesc="pppd plugin to invoke an external PAP password prompter"
depends="ppp-daemon"
@@ -146,7 +170,7 @@ pppoe() {
pkgdesc="pppd plugin for kernel-mode PPPoE on Linux"
depends="ppp-daemon"
license="GPL-2.0-or-later"
- _mv usr/lib/pppd/$pkgver/rp-pppoe.so 755
+ _mv usr/lib/pppd/$pkgver/pppoe.so 755
_mv usr/sbin/pppoe-discovery 755
}
@@ -177,14 +201,19 @@ daemon() {
mv "$pkgdir"/* "$subpkgdir"/
}
+openrc() {
+ default_openrc
+ install_if="ppp-daemon=$pkgver-r$pkgrel openrc"
+}
+
sha512sums="
-c309f8f69f534c05547cd2f66dade0e0f198ea4c2928a7e899e660280786b3e965437a67b8c5bb81c59d0fa1818b4eb7b701d2dce015a420d380422d2bca4e1a ppp-2.4.9.tar.gz
-29fe71a64d1370aa9a939767261a5d3b69c35e56e2fba0598477cf4986ad6dc4aff3dfa12562e8acf38272bad5b3773c8a5104599da872f7dd995bf2e64bfb58 musl-fix-headers.patch
-7b84e2085c5e399a8f9e0cb928a7b4d5077f42755efa8961c848e287a8b8b78f3a123b59fbac76610ce8fe1f81fa103188b2e3ad4ffd82d14cb82243e2edeb91 fix-paths.patch
-b490971d03fef4de66b61123f80a0087270bcb88466ae8ed98ea9a08b35d4c7c46b2dadd304e2970a4206bb5760a14370d7e3873de6240119d88e927ecef840c 0011-build-sys-don-t-put-connect-errors-log-to-etc-ppp.patch
-d1067defff79d6c9f67121a9214e41a1bcca1e3b8a345ad905d223fdb8835142bad7cc3b556a3eca509ddf51cf808741773f31f4dca74e834b612a15854a5e6b fix-pppd-magic.h.patch
+cf62410a952053f9aa71c5179453831152e958fcad9e77df2ddac864e39aa71af0b746e54b91e8fa3ad6295d6d2b1bb736e36dc05521b495f573468679133324 ppp-2.5.0.tar.gz
+1e1962503ea7639b2683920c73a848d680d1daf444fb978a42639f1671b2c38282d181be120fbf035220bcfe8768229897b7e5a59e6ddf09d4edb3666ebf3399 0011-build-sys-don-t-put-connect-errors-log-to-etc-ppp.patch
+f8ad85423ccf19a6cea66e9debea81dc1842bf499b279b77c058cc2ff10aae7f48c3430a63050b97c4f535f5dcca449261fc7476f90cb2d30dfca9359490d6bd fix-paths.patch
+8efb0750fb64cc6cbb3e5fce4a79e842db3c7fd08c3c1899cda4201a80f9ec7a4c88d88be833579b9470c1d851f01fbf2cd82b51912ebc4f05bbb168f6e73bc3 musl-fix-headers.patch
+218f5ae25f059f4ab614d6c613f8317dd136a59378f31e3b7c868f79869a17a79f1d88bf226828e7a21db07337f5c2328ce3f4579d747b9bfe1082b1023193f0 0001-Revert-lock-path-to-var-lock-435.patch
160260bd2a788beaac395eadb38efbfd1e0e1a458fe151555acacf2c4f3a12381d644672c664f9793db6e3459a4f05a54e3ff6d407b0d37e8014b15bd0f11bcc ip-down
8258c95a6b6e8e94d6001b5cd3a99bd3270f29ba0f2e5050a26c8d5f1b67eead8d039e71ce86a784d45e620047b0a2bb14b258d80a9ea62084ba588a4c2e2d84 ip-up
-bd6f43588b037367ffdb57f5e331492dcaa5969003e219c2dc8b90e6be1aa407282ff6114b91d1379ebeff766983fa0622456520cc0ac592b4f0b1496acf21bf pppd.initd
-c8e8a05c1857ae98aa712683d7af9cd2df5a229aed4ef1f55e430cbb5468db93103b5a772191d33d063882525769fca667d0ac3a6233fdd42e61a58ead896b6c fix-linux-5.15-include.patch
+845d99cefd9e3ebfd4ff61dbf86d5bc1a698abbf204fed5a577fbc873e378c6d5d35712331b97dfd9fa37d1f7157a034f2584521f3a28ec18b883ab8d420e028 pppd.initd
+9ffc7c98662491694f305bd4b2e245acef0a6b36d31a8b6b8d7aea742c350369b780285745b111529373a4b5b7fe46f4673efd60b4a3250030d33204a30f5b8c pppd.confd
"
diff --git a/main/ppp/fix-linux-5.15-include.patch b/main/ppp/fix-linux-5.15-include.patch
deleted file mode 100644
index 1d9e3da33d7..00000000000
--- a/main/ppp/fix-linux-5.15-include.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/pppd/Makefile.linux
-+++ b/pppd/Makefile.linux
-@@ -91,7 +91,7 @@
-
- INCLUDE_DIRS= -I../include
-
--COMPILE_FLAGS= -DHAVE_PATHS_H -DIPX_CHANGE -DHAVE_MMAP -pipe
-+COMPILE_FLAGS= -DHAVE_PATHS_H -DHAVE_MMAP -pipe
-
- CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS) '-DDESTDIR="@DESTDIR@"'
-
diff --git a/main/ppp/fix-paths.patch b/main/ppp/fix-paths.patch
index 69142587264..5d2b7228a9b 100644
--- a/main/ppp/fix-paths.patch
+++ b/main/ppp/fix-paths.patch
@@ -1,12 +1,13 @@
+diff --git a/pppd/plugins/radius/pathnames.h b/pppd/plugins/radius/pathnames.h
+index 3a00d2c..c606f33 100644
--- a/pppd/plugins/radius/pathnames.h
+++ b/pppd/plugins/radius/pathnames.h
@@ -22,7 +22,7 @@
/* normally defined in the Makefile */
- #ifndef _PATH_ETC_RADIUSCLIENT_CONF
--#define _PATH_ETC_RADIUSCLIENT_CONF "/etc/radiusclient.conf"
-+#define _PATH_ETC_RADIUSCLIENT_CONF "/etc/radiusclient/radiusclient.conf"
+ #ifndef PPP_PATH_ETC_RADIUSCLIENT_CONF
+-#define PPP_PATH_ETC_RADIUSCLIENT_CONF SYSCONFDIR "/radiusclient.conf"
++#define PPP_PATH_ETC_RADIUSCLIENT_CONF SYSCONFDIR "/radiusclient/radiusclient.conf"
#endif
#endif /* PATHNAMES_H */
-
diff --git a/main/ppp/fix-pppd-magic.h.patch b/main/ppp/fix-pppd-magic.h.patch
deleted file mode 100644
index 01a89d52041..00000000000
--- a/main/ppp/fix-pppd-magic.h.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/pppd/magic.h 2019-12-31 02:31:26.000000000 +0100
-+++ b/pppd/magic.h 2020-02-06 20:52:49.263657502 +0100
-@@ -42,6 +42,8 @@
- * $Id: magic.h,v 1.5 2003/06/11 23:56:26 paulus Exp $
- */
-
-+#include <sys/cdefs.h>
-+
- void magic_init (void); /* Initialize the magic number generator */
- u_int32_t magic (void); /* Returns the next magic number */
-
diff --git a/main/ppp/musl-fix-headers.patch b/main/ppp/musl-fix-headers.patch
index 37ddbbb7623..9e0ee3b88b6 100644
--- a/main/ppp/musl-fix-headers.patch
+++ b/main/ppp/musl-fix-headers.patch
@@ -1,8 +1,8 @@
diff --git a/pppd/sys-linux.c b/pppd/sys-linux.c
-index 6d71530..86d224e 100644
+index 561b150..c9a8469 100644
--- a/pppd/sys-linux.c
+++ b/pppd/sys-linux.c
-@@ -102,19 +102,11 @@
+@@ -110,19 +110,11 @@
#define MAX_ADDR_LEN 7
#endif
diff --git a/main/ppp/pppd.confd b/main/ppp/pppd.confd
new file mode 100644
index 00000000000..76357a494f0
--- /dev/null
+++ b/main/ppp/pppd.confd
@@ -0,0 +1 @@
+PPPD_OPTS=""
diff --git a/main/ppp/pppd.initd b/main/ppp/pppd.initd
index 30bd641da16..df26ef867f7 100755
--- a/main/ppp/pppd.initd
+++ b/main/ppp/pppd.initd
@@ -3,11 +3,11 @@
name="pppd"
command="/usr/sbin/${SVCNAME}"
command_args="nodetach ${PPPD_OPTS}"
-pidfile="/var/run/$SVCNAME.pid"
+pidfile="/run/$RC_SVCNAME.pid"
command_background=true
start_pre() {
- checkpath --directory /var/run/ppp
+ checkpath --directory /run/ppp
modprobe pptp
}
diff --git a/main/pptpd/APKBUILD b/main/pptpd/APKBUILD
deleted file mode 100644
index 1c1ed0d0776..00000000000
--- a/main/pptpd/APKBUILD
+++ /dev/null
@@ -1,56 +0,0 @@
-# Contributor: Danilo Godec <danilo.godec@agenda.si>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=pptpd
-pkgver=1.4.0
-pkgrel=2
-pkgdesc="PoPToP - PPTP Daemon, Linux as Microsoft VPN Server"
-url="http://www.poptop.org/"
-arch="all"
-license="GPL-2.0-or-later"
-depends="ppp-daemon"
-makedepends="ppp-dev"
-install=""
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://sourceforge.net/projects/poptop/files/$pkgname/$pkgname-$pkgver/$pkgname-$pkgver.tar.gz/download
- fix_MSG_TRYHARD.patch
- pptpd.patch
- pptpd.confd
- pptpd.initd
- options.pptp
- pptpd.conf
- "
-
-_builddir="$srcdir"/$pkgname-$pkgver
-prepare() {
- local i
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
-}
-
-build() {
- cd "$_builddir"
- ./configure --prefix=/usr --sysconfdir=/etc || return 1
- make || return 1
-}
-
-package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
- install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
- install -Dm755 "$srcdir"/pptpd.initd "$pkgdir"/etc/init.d/pptpd
- install -Dm644 "$srcdir"/pptpd.confd "$pkgdir"/etc/conf.d/pptpd
- install -Dm644 "$srcdir"/options.pptp "$pkgdir"/etc/ppp/options.pptp
- install -Dm644 "$srcdir"/pptpd.conf "$pkgdir"/etc/
-}
-
-sha512sums="cfb4caef3025c0721e7fabf8b7bf595739f2d3048555b30616cdadc37e70ba9e1c50561c25091dd617b5448da2816aeaf83aea0fc2ef6b0dd5e3fe35d9591484 pptpd-1.4.0.tar.gz
-718e9fd6a53322f2f390ee4d07b2b4f88b6dd3ad130d4471a4e12e82910942982a06865c06296ff26f08e87aa65f4f7ee4a020cf7c2ff0d67ca5bfb794fe10bc fix_MSG_TRYHARD.patch
-2adbd7203451fe63472fdd443afcf9c85b66d1d4965574f94a7e99a29fdd7f37cfe1eb0f82afebef0e6e11726e0702208e75e90f9867b1103f1d5e401f8ba47f pptpd.patch
-59f118715cf6c36442687a58f46a54519fb5125383e85c4fa352a4c97f8a4e19f46c9715330550755eb9691e8174b70cdfab48fbd14c2707364e8083d6baa488 pptpd.confd
-7ccca8dd0c5ecc8bc0352b8e3bed30c7e9ab3591d07ffdf62a7305406a4685b638446d4b0a65753ceaa5bae4f63fb39f9bf6b590e1837851c0a6676d305b3612 pptpd.initd
-acf235a1c34f34cded7f2c56d6757fec099032ffaefae003e79b0517ad3fc53e19698e8c644193da9613707f8923b9c78f9e642aa0d9c785db1d4e51717a486e options.pptp
-ed6022b6711b0e6b3e336220d6da7ec9dd7d3a0679fc9219d0931f3b165296b80bc21e23123cc0ed621d76d06d5ad3435659eb7b924daa735ee1a069c1ebcbc1 pptpd.conf"
diff --git a/main/pptpd/fix_MSG_TRYHARD.patch b/main/pptpd/fix_MSG_TRYHARD.patch
deleted file mode 100644
index 3e30295ca68..00000000000
--- a/main/pptpd/fix_MSG_TRYHARD.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/bcrelay.c
-+++ b/bcrelay.c
-@@ -61,6 +61,10 @@
- // software to your hearts content. You are free to redistribute it as
- // long as it is accompanied with the source and my credit is included.
-
-+#ifndef MSG_TRYHARD
-+ # define MSG_TRYHARD MSG_DONTROUTE
-+#endif
-+
- #ifdef HAVE_CONFIG_H
- #include "config.h"
- #endif
diff --git a/main/pptpd/options.pptp b/main/pptpd/options.pptp
deleted file mode 100644
index 645c6e24d76..00000000000
--- a/main/pptpd/options.pptp
+++ /dev/null
@@ -1,11 +0,0 @@
-lock
-debug
-auth
-+chap
-+chapms
-+chapms-v2
-mppe-40
-mppe-128
-mppe-stateless
-name test02
-proxyarp
diff --git a/main/pptpd/pptpd.conf b/main/pptpd/pptpd.conf
deleted file mode 100644
index 258f5d5ccc1..00000000000
--- a/main/pptpd/pptpd.conf
+++ /dev/null
@@ -1,88 +0,0 @@
-################################################################################
-#
-# Sample PoPToP configuration file
-#
-# for PoPToP version 1.0.0
-#
-################################################################################
-
-# TAG: speed
-#
-# Specifies the speed for the PPP daemon to talk at.
-# Some PPP daemons will ignore this value.
-#
-speed 115200
-
-# TAG: option
-#
-# Specifies the location of the PPP options file.
-# By default PPP looks in '/etc/ppp/options'
-#
-#option /this/is/the/options/file
-option /etc/ppp/options.pptp
-
-# TAG: debug
-#
-# Turns on (more) debugging to syslog.
-#
-debug
-
-# TAG: localip
-# TAG: remoteip
-#
-# Specifies the local and remote IP address ranges.
-#
-# You can specify single IP addresses seperated by commas or you can
-# specify ranges, or both. For example:
-#
-# 192.168.0.234,192.168.0.245-249,192.168.0.254
-#
-# IMPORTANT RESTRICTIONS:
-#
-# 1. No spaces are permitted between commas or within addresses.
-#
-# 2. If you give more IP addresses than MAX_CONNECTIONS, it will
-# start at the beginning of the list and go until it gets
-# MAX_CONNECTIONS IPs. Others will be ignored.
-#
-# 3. No shortcuts in ranges! ie. 234-8 does not mean 234 to 238,
-# you must type 234-238 if you mean this.
-#
-# 4. If you give a single localIP, that's ok - all local IPs will
-# be set to the given one. You MUST still give at least one remote
-# IP for each simultaneous client.
-#
-#localip 192.168.0.234-238,192.168.0.245
-#remoteip 192.168.1.234-238,192.168.1.245
-
-localip 192.168.0.1
-remoteip 192.168.1.100-199
-
-# TAG: ipxnets
-#
-# This gives the range of IPX networks to allocate to clients. By
-# default IPX network number allocation is not handled internally.
-# By putting a low and high network number here a pool of IPX networks
-# can be defined. If this is done then there must be one IPX network
-# per client.
-#
-# The format is a pair of hex numbers without any 0x prefix separated
-# by a hyphen.
-#
-#ipxnets 00001000-00001FFF
-
-# TAG: listen
-#
-# Defines the IP address of the local interface on which pptpd
-# should listen for connections. The default is to listen on all
-# local interfaces (even ones brought up by pptp connections, thus
-# permitting pptp tunnels inside the pptp tunnels).
-#
-#listen 192.168.0.1
-
-# TAG: pidfile
-#
-# This defines the file name in which pptpd should store its process
-# ID (or pid). The default is /var/run/pptpd.pid.
-#
-pidfile /var/run/pptpd.pid
diff --git a/main/pptpd/pptpd.confd b/main/pptpd/pptpd.confd
deleted file mode 100644
index 1169e57f1c7..00000000000
--- a/main/pptpd/pptpd.confd
+++ /dev/null
@@ -1,5 +0,0 @@
-# Config file for /etc/init.d/pptpd
-
-# Any extra options you want to pass to pptpd
-# on start-up should be put here.
-PPTPD_OPTS=""
diff --git a/main/pptpd/pptpd.initd b/main/pptpd/pptpd.initd
deleted file mode 100644
index d2dc4d107af..00000000000
--- a/main/pptpd/pptpd.initd
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/sbin/openrc-run
-
-depend() {
- need net
-}
-
-start() {
- ebegin "Starting pptpd"
- start-stop-daemon --start --quiet --exec /usr/sbin/pptpd -- ${PPTPD_OPTS}
- eend $?
-}
-
-stop() {
- ebegin "Stopping pptpd"
- start-stop-daemon --stop --quiet --pidfile /var/run/pptpd.pid
- result=$?
- start-stop-daemon --stop --quiet --exec /usr/sbin/pptpctrl
- result=$(( $result + $? ))
- eend $result
-}
diff --git a/main/pptpd/pptpd.patch b/main/pptpd/pptpd.patch
deleted file mode 100644
index c2118889da1..00000000000
--- a/main/pptpd/pptpd.patch
+++ /dev/null
@@ -1,32 +0,0 @@
---- pptpd-1.3.4/Makefile.am
-+++ pptpd-1.3.4-orig/Makefile.am
-@@ -11,7 +11,8 @@
- ## warning with -Wmissing-prototypes).
- ## -Wmissing-prototypes removed (eg, Linux 2.2.6 headers
- ## aren't up to it).
--CFLAGS = -O2 -fno-builtin -Wall -DSBINDIR='"$(sbindir)"'
-+OPTFLAGS=-O2
-+CFLAGS = $(OPTFLAGS) -fno-builtin -Wall -DSBINDIR='"$(sbindir)"'
- #CFLAGS = -O2 -fno-builtin -Wall -ansi -DSBINDIR='"$(sbindir)"'
- #CFLAGS = -O2 -fno-builtin -Wall -ansi -pedantic -Wmissing-prototypes -Werror -DSBINDIR='"$(sbindir)"'
-
---- pptpd-1.3.4/plugins/Makefile
-+++ pptpd-1.3.4-orig/plugins/Makefile
-@@ -3,7 +3,7 @@
- CFLAGS = $(COPTS) -I.. -I../../include -fPIC
- LDFLAGS = -shared
- LDADD = -lutil
--INSTALL = install -o root
-+INSTALL = install
- prefix = /usr/local
-
- PLUGINS = pptpd-logwtmp.so
-@@ -18,7 +18,7 @@
- %.so: %.c
- $(CC) -o $@ $(LDFLAGS) $(CFLAGS) $^ $(LDADD)
-
--LIBDIR ?= $(DESTDIR)$(prefix)/lib/pptpd
-+LIBDIR = $(DESTDIR)$(prefix)/lib/pptpd
-
- install: $(PLUGINS)
- $(INSTALL) -d $(LIBDIR)
diff --git a/main/privoxy/APKBUILD b/main/privoxy/APKBUILD
index 496f9e905d3..9aba1bb019c 100644
--- a/main/privoxy/APKBUILD
+++ b/main/privoxy/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=privoxy
-pkgver=3.0.33
-pkgrel=0
+pkgver=3.0.34
+pkgrel=2
pkgdesc="web proxy with advanced filtering capabilities"
url="https://www.privoxy.org/"
arch="all"
@@ -43,10 +43,9 @@ builddir="$srcdir/$pkgname-$pkgver-stable"
# - CVE-2021-20215
prepare() {
- update_config_sub
default_prepare
- aclocal && autoheader && autoconf
+ autoreconf -fvi
}
build() {
@@ -81,8 +80,8 @@ package() {
}
sha512sums="
-9684455dbce7f6d8f5defd31aa9a7316e0c1dc896525ab4d562d0359462b541b1c366dea9db07b798f3e00b9cbcc44f494d8c431bcb10f2cb05b5bca3cfeaf75 privoxy-3.0.33-stable-src.tar.gz
+f963419ae2cb6dd72cd892fa043768d99a4118792833de2e666d6a800fbe9a7fcb0641f15e3211e0b01a74609c65aeb60af1051f1a19daa1048314599679b685 privoxy-3.0.34-stable-src.tar.gz
346bda3a2108547569af3397c77e092c54fa0c20bc6d3bb1d4c202b4e2b8d9c13018eab0a326cd9632310ec8052600ee7db4b6011610faec386c399cdd01af9c privoxy.initd
-118caaeac3aba751584c5bdfc737bf5bfeddf1a62fda1f44bcd4654ae2e33183bc1ce6fc66d4a1bdd79766e42e669b1615a6d46d528a1bd49cabdf98385a3bb9 privoxy.logrotate
+18fc06c7f0c0dff5e1ace89c5557fc52bb207e183ca2227361512894895888134156fbb0b80ab14cbe8b1458cbe214739b2d797b249a4e658c2410d62021d642 privoxy.logrotate
1059feed20a31d7d2b5d1f44b7b1af40373d87dbd9e7e83c8998ac1b4e27dfbfdfeb6a9ea7934e15d0c14fed1fd03fb63d2ec8d2a6b53e5884a21dc8df4828fc privoxy-alpine.patch
"
diff --git a/main/privoxy/privoxy.logrotate b/main/privoxy/privoxy.logrotate
index aa7463bd572..b9182120f25 100644
--- a/main/privoxy/privoxy.logrotate
+++ b/main/privoxy/privoxy.logrotate
@@ -4,6 +4,6 @@
create 0640 privoxy privoxy
sharedscripts
postrotate
- killall -HUP privoxy 2>/dev/null || true
+ busybox killall -HUP privoxy 2>/dev/null || true
endscript
}
diff --git a/main/procps/APKBUILD b/main/procps-ng/APKBUILD
index 425ce3a21a0..31e78a8021b 100644
--- a/main/procps/APKBUILD
+++ b/main/procps-ng/APKBUILD
@@ -1,33 +1,34 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=procps
-pkgver=3.3.17
-pkgrel=1
+pkgname=procps-ng
+pkgver=4.0.4
+pkgrel=0
pkgdesc="Utilities for monitoring your system and processes on your system"
url="https://gitlab.com/procps-ng/procps"
arch="all"
license="GPL-2.0-or-later AND LGPL-2.1-or-later"
-makedepends="ncurses-dev gettext-dev autoconf automake libtool"
-checkdepends="dejagnu"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-lang libproc"
-source="https://gitlab.com/procps-ng/procps/-/archive/v$pkgver/procps-v$pkgver.tar.gz
- musl-fixes.patch
+makedepends="
+ gettext-dev
+ ncurses-dev
"
-builddir="$srcdir/$pkgname-v$pkgver"
+checkdepends="dejagnu"
+subpackages="$pkgname-dev $pkgname-doc $pkgname-lang libproc2"
+source="$pkgname-$pkgver.tar.xz::https://sourceforge.net/projects/procps-ng/files/Production/procps-ng-$pkgver.tar.xz/download"
-prepare() {
- # NOTE: Name of the tarball's top-level directory contains SHA1.
- ln -fs $srcdir/$pkgname-v$pkgver-* "$builddir"
+# used to be named procps
+provides="procps=$pkgver-r$pkgrel"
+replaces="procps"
- default_prepare
+case "$CARCH" in
+x86)
+ # TODO, FAIL: strtod_nol_or_err("123") != 123.000000
+ # https://gitlab.com/procps-ng/procps/-/issues/271
+ options="$options !check"
+ ;;
+esac
- # force misc/git-version-gen use the correct version (instead of UNKNOWN);
- # however only do it if the upstream tarball really misses it.
- if test ! -f .tarball_version ; then
- rm -f .version
- echo "$pkgver" > .tarball-version
- fi
- ./autogen.sh
-}
+# secfixes:
+# 4.0.4-r0:
+# - CVE-2023-4016
build() {
export LIBS="$LIBS -lintl"
@@ -46,12 +47,16 @@ build() {
--disable-w-from \
--disable-kill \
--disable-rpath \
- --with-ncurses
+ --with-ncurses \
+ --disable-modern-top
make
}
check() {
- make check
+ make check || {
+ cat test-suite.log
+ return 1
+ }
}
package() {
@@ -72,14 +77,12 @@ package() {
&& mv "$pkgdir"/lib/pkgconfig "$pkgdir"/usr/lib/
}
-libproc() {
+libproc2() {
pkgdesc="Library for monitoring system and processes"
- install -d "$subpkgdir"/
- mv "$pkgdir"/lib "$subpkgdir"/
+ amove lib
}
sha512sums="
-070076cf6bbbd8b6b342af361035f11d9c7381c5d1e2e430a5f2584ff55656254e8f863a40ca75a38870a5007d1b22a0d452bef13fa0ab89e4bf9676826fd788 procps-v3.3.17.tar.gz
-54975d8fd87ff39551a04fb9f7ff6ffcec6fa2f7933a59c3f3d2b927cc0a21263259e864a9775a96f0996511f249fa72c1975010098fe12cff22202cdde1ed87 musl-fixes.patch
+94375544e2422fefc23d7634063c49ef1be62394c46039444f85e6d2e87e45cfadc33accba5ca43c96897b4295bfb0f88d55a30204598ddb26ef66f0420cefb4 procps-ng-4.0.4.tar.xz
"
diff --git a/main/procps/musl-fixes.patch b/main/procps/musl-fixes.patch
deleted file mode 100644
index d6ccd494ec4..00000000000
--- a/main/procps/musl-fixes.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-Pulling in utmpx.h which does not have UT_HOSTSIZE, UT_LINESIZE & UT_NAMESIZE defined.
-
-Causing:
-w.c: In function 'print_from':
-w.c:236:43: error: 'UT_HOSTSIZE' undeclared (first use in this function)
- 236 | print_display_or_interface(u->ut_host, UT_HOSTSIZE, fromlen - len);
- | ^~~~~~~~~~~
-w.c:236:43: note: each undeclared identifier is reported only once for each function it appears in
-w.c: In function 'getproc':
-w.c:357:12: error: 'UT_NAMESIZE' undeclared (first use in this function)
- 357 | char buf[UT_NAMESIZE + 1];
-....
-
-proc/escape.c:237:30: error: 'CODESET' undeclared (first use in this function)
- 237 | char *enc = nl_langinfo(CODESET);
-
---- a/w.c
-+++ b/w.c
-@@ -55,11 +55,7 @@
- #include <termios.h>
- #include <time.h>
- #include <unistd.h>
--#ifdef HAVE_UTMPX_H
--# include <utmpx.h>
--#else
--# include <utmp.h>
--#endif
-+#include <utmp.h>
- #include <arpa/inet.h>
-
- static int ignoreuser = 0; /* for '-u' */
---- a/proc/escape.c
-+++ b/proc/escape.c
-@@ -21,6 +21,7 @@
- #include <sys/types.h>
- #include <string.h>
- #include <limits.h>
-+#include <langinfo.h>
- #include "procps.h"
- #include "escape.h"
- #include "readproc.h"
diff --git a/main/protobuf-c/APKBUILD b/main/protobuf-c/APKBUILD
index 0952f3b3c1b..3924f8cf0d6 100644
--- a/main/protobuf-c/APKBUILD
+++ b/main/protobuf-c/APKBUILD
@@ -1,23 +1,28 @@
# Contributor: TBK <alpin@jjtc.eu>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=protobuf-c
-pkgver=1.4.0
-pkgrel=1
+pkgver=1.5.0
+pkgrel=0
pkgdesc="Protocol Buffers implementation in C"
url="https://github.com/protobuf-c/protobuf-c"
arch="all"
license="BSD-2-Clause"
depends_dev="$pkgname-compiler=$pkgver-r$pkgrel"
-makedepends="protobuf-dev"
+makedepends="autoconf automake libtool abseil-cpp-dev protobuf-dev"
subpackages="$pkgname-compiler $pkgname-dev"
source="https://github.com/protobuf-c/protobuf-c/releases/download/v$pkgver/protobuf-c-$pkgver.tar.gz"
# secfixes:
+# 1.4.1-r0:
+# - CVE-2022-33070
# 1.3.2-r0:
# - CVE-2021-3121
build() {
- ./configure --prefix=/usr \
+ CFLAGS="$CFLAGS -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -std=c++17 -flto=auto" \
+ ./configure \
+ --prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info
@@ -40,5 +45,5 @@ compiler() {
}
sha512sums="
-6a2e5031b85b5986e863661437dea002eba217257a50a27db88d29fa1a3db1014ed6ec7c21d89df700d181b18e169d1037146cb6475c10cd5a068a91e522e3c3 protobuf-c-1.4.0.tar.gz
+175c9fc901cab88308730eea982dd62b1e0decdceb80aa53be163f17a440b4acecb834a784beab5cd71186413a322a323f4539758a8727ca51801cf92f9bd3da protobuf-c-1.5.0.tar.gz
"
diff --git a/main/protobuf/APKBUILD b/main/protobuf/APKBUILD
index 5a62e24b69e..f29be63c6d8 100644
--- a/main/protobuf/APKBUILD
+++ b/main/protobuf/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=protobuf
_gemname=google-protobuf
-pkgver=3.21.1
-_tstver=5ec7f0c4a113e2f18ac2c6cc7df51ad6afc24081
-pkgrel=0
+pkgver=24.4
+_rubyver=3.$pkgver
+pkgrel=1
pkgdesc="Library for extensible, efficient structure packing"
-url="https://github.com/google/protobuf"
+url="https://github.com/protocolbuffers/protobuf"
arch="all"
license="BSD-3-Clause"
depends="
@@ -15,16 +15,20 @@ depends="
libprotobuf=$pkgver-r$pkgrel
libprotobuf-lite=$pkgver-r$pkgrel
"
-depends_dev="zlib-dev"
+depends_dev="
+ protoc=$pkgver-r$pkgrel
+ zlib-dev
+ "
makedepends="
$depends_dev
- autoconf
- automake
- libtool
+ abseil-cpp-dev
+ cmake
ruby
ruby-dev
ruby-rake
+ samurai
"
+checkdepends="gtest-dev"
subpackages="
ruby-$_gemname:_ruby
$pkgname-dev
@@ -34,37 +38,40 @@ subpackages="
libprotobuf
libprotobuf-lite
"
-# googletest 1.8 is not enought for protobuf
-# https://github.com/google/googletest/issues/2267
-source="$pkgname-$pkgver.tar.gz::https://github.com/protocolbuffers/protobuf/archive/v$pkgver.tar.gz
- googletest-$_tstver.tar.gz::https://github.com/google/googletest/archive/$_tstver.tar.gz
+ # exclude.patch
+source="$pkgname-$pkgver.tar.gz::https://github.com/protocolbuffers/protobuf/archive/refs/tags/v$pkgver.tar.gz
+ exclude.patch
+ protoc-cmake.patch
ruby-fix-cflags.patch
skip-failing-tests.patch
+ soversion.patch
trim-rakefile.patch
"
-prepare() {
- default_prepare
-
- ./autogen.sh
-
- # symlink tests to the test directory
- rm -rf third_party/googletest
- ln -sf "$srcdir"/googletest-$_tstver \
- "$builddir"/third_party/googletest
-}
+# fails some
+case "$CARCH" in
+armhf) options="$options !check" ;;
+esac
build() {
- CXXFLAGS="$CXXFLAGS -fno-delete-null-pointer-checks -Wno-error" \
- ./configure --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --localstatedir=/var
- make
+ export CFLAGS="$CFLAGS -DNDEBUG -O2 -flto=auto"
+ export CXXFLAGS="$CXXFLAGS -DNDEBUG -O2 -flto=auto -Wno-deprecated-declarations"
+
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=ON \
+ -Dprotobuf_BUILD_TESTS="$(want_check && echo ON || echo OFF)" \
+ -Dprotobuf_BUILD_LIBPROTOC=ON \
+ -Dprotobuf_ABSL_PROVIDER="package" \
+ -Dprotobuf_ALLOW_CCACHE=ON \
+ -Dprotobuf_USE_EXTERNAL_GTEST=ON
+ cmake --build build
cd "$builddir"/ruby
+ export PATH="$PATH:$builddir/build"
+
# Generate proto files for built-in protocols.
rake genproto
@@ -75,31 +82,26 @@ build() {
--no-document \
--verbose \
$_gemname
-
- # build test-suite
- local test; for test in googletest googlemock; do
- cd "$builddir/third_party/googletest/$test"
- autoreconf -vfi
- ./configure
- make
- done
}
# TODO: Run tests for ruby gem.
check() {
- make check
+ ctest --test-dir build --output-on-failure
}
package() {
- make DESTDIR="$pkgdir" install
-}
+ DESTDIR="$pkgdir" cmake --install build
-_ruby() {
- depends=""
- pkgdesc="Ruby bindings to Google's data interchange format"
+ sed -i \
+ -e "/Requires:/s|;| |g" \
+ -e "/Requires:/s|::|_|g" \
+ "$pkgdir"/usr/lib/pkgconfig/protobuf.pc
+
+ install -Dm644 editors/proto.vim \
+ "$pkgdir"/usr/share/vim/vimfiles/syntax/proto.vim
- local gemdir="$subpkgdir/$(ruby -e 'puts Gem.default_dir')"
- cd "$builddir"/ruby/dist
+ local gemdir="$pkgdir/$(ruby -e 'puts Gem.default_dir')"
+ cd ruby/dist
mkdir -p "$gemdir"
cp -r extensions gems specifications "$gemdir"/
@@ -108,8 +110,15 @@ _ruby() {
find "$gemdir"/gems/ -name "*.so" -delete
# Remove unnecessary files.
- cd "$gemdir"/gems/$_gemname-$pkgver
- rm -r ext/ tests/
+ cd "$gemdir"/gems/$_gemname-$_rubyver
+ rm -r ext/
+}
+
+_ruby() {
+ depends=""
+ pkgdesc="Ruby bindings to Google's data interchange format"
+
+ amove usr/lib/ruby/gems
}
vim() {
@@ -117,51 +126,43 @@ vim() {
depends=""
install_if="$pkgname=$pkgver-r$pkgrel vim"
- install -Dm644 "$builddir"/editors/proto.vim \
- "$subpkgdir"/usr/share/vim/vimfiles/syntax/proto.vim
+ amove usr/share/vim/vimfiles/syntax/proto.vim
}
libprotoc() {
depends=""
pkgdesc="Runtime library for Protocol Buffer compiler"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libprotoc*.so.* "$subpkgdir"/usr/lib
+ amove usr/lib/libprotoc.so.*
}
protoc() {
depends=""
pkgdesc="Protocol buffer compiler binary and library"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/protoc "$subpkgdir"/usr/bin
+ amove usr/bin/protoc*
}
libprotobuf() {
depends=""
pkgdesc="Runtime library for C++ users of protocol buffers"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libprotobuf.so.* "$subpkgdir"/usr/lib
+ amove usr/lib/libprotobuf.so.*
}
lite() {
depends=""
pkgdesc="Runtime library for C++ users with 'lite runtime' setting of protocol buffers"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libprotobuf-lite.so.* "$subpkgdir"/usr/lib
-}
-
-dev() {
- depends_dev="$depends_dev protoc=$pkgver-r$pkgrel"
- default_dev
+ amove usr/lib/libprotobuf-lite.so.*
}
sha512sums="
-ea8496f56299659f9cdfaa80df97a2bfb8af1586f5bce00bd7e8445b152fd3c8386219fbb521e5337aa0470ccb4ca327ba1e19b5f4c6c8514ddfaa50e4308297 protobuf-3.21.1.tar.gz
-623b077b3334958fafcbc34aa85891883277994af33be530efd903f47738a3e3562001cbf3b6da1a5e7d03803c5bd51bcc1fab81490db85d5a4f2b15e7de1495 googletest-5ec7f0c4a113e2f18ac2c6cc7df51ad6afc24081.tar.gz
-d5f482acdb0b4f48e88b70a14cb343bea177875f2125065c760d02c89a7658e55a82c531b5a5a0cc5270ae186cd01ccd17110d2d22dbc48a2f1240b3148ff3cb ruby-fix-cflags.patch
-1bd542ea4d4b605bf8396769ddc65f86f13f214bb4a58ece4494d5451bd9ae547041af28dd500784f73d4417664466d2b031a81aa96eb6f0877c253731eb8e6d skip-failing-tests.patch
-444c018aaaa07958f8ec2b62ece281439cb0e3340c3d0bc19ed5bf29f9ff415c08777a7106e2f908e6bbbcca5288c1ddd9c791438390038d5e0f3ffdd08773be trim-rakefile.patch
+52b6ab5587d03cbd1f35cf3cdc388e1710fa50f3031559ac53cf754965407ded7602cdead56080444ab695588112cc3391a1d7fdd5e565d90d0af7ad08706315 protobuf-24.4.tar.gz
+0d46d105a0670ab5cfcb04ed534927a71613234a88efede0b20d426e1caaa708e6ff275a09c5dab7786fe26e69e0882f022b893302e4869006b4ac55fc6172e5 exclude.patch
+16b8ee0e50dbb2144ddb83654a63e410b4218e667b6b8b77c7b6f9797508f63c3e8be0f9711841bb6ebbed0883cda2394b219a62b468240f65f4dac418b5a56e protoc-cmake.patch
+0cb202a6151ae3746c09e85f2e4ce9abb0d810d4a3c84cb647fde407cf8d13894d3c9b340e06d7a3a85669da1899db265d26d8309d59249f841a40a66e045c83 ruby-fix-cflags.patch
+46b6644ccf6e142ef26cddd818466caab2696b685f3865061fe0e45b65cefc5598add4a8479842ca1aae948d37b3c2c6944913c62a00422fa91b694277986c73 skip-failing-tests.patch
+850dc1d6fd3ea01f1689fd700ac35e7da0882092ab34c616702e01bdf4b5327b8ab27381ecf291431a94f54c89d31707a4a171929937e880543974cb64f9e685 soversion.patch
+13514a456a50d7243baa23fe43586fc4544cda87b9e2a5afe9d2fac8afca8e8853f9b42232c3fff4c5cf2df443af32f944f451daa1d604d80fd03ee4e7abed3e trim-rakefile.patch
"
diff --git a/main/protobuf/exclude.patch b/main/protobuf/exclude.patch
new file mode 100644
index 00000000000..9c63c0a01b8
--- /dev/null
+++ b/main/protobuf/exclude.patch
@@ -0,0 +1,40 @@
+don't install the utf8_range lib into disk.
+also remove it from .pc/cmake, it's statically linked into protobuf and never needed on disk after
+--
+diff --git a/cmake/install.cmake b/cmake/install.cmake
+index e7eb210..73e1897 100644
+--- a/cmake/install.cmake
++++ b/cmake/install.cmake
+@@ -4,7 +4,6 @@ foreach(_target IN LISTS protobuf_ABSL_USED_TARGETS)
+ string(REPLACE :: _ _modified_target ${_target})
+ list(APPEND _pc_targets ${_modified_target})
+ endforeach()
+-list(APPEND _pc_targets "utf8_range")
+
+ set(_protobuf_PC_REQUIRES "")
+ set(_sep "")
+diff --git a/cmake/protobuf-config.cmake.in b/cmake/protobuf-config.cmake.in
+index 44805c7..1a8d243 100644
+--- a/cmake/protobuf-config.cmake.in
++++ b/cmake/protobuf-config.cmake.in
+@@ -4,7 +4,6 @@ include("${CMAKE_CURRENT_LIST_DIR}/protobuf-options.cmake")
+ # Depend packages
+ @_protobuf_FIND_ZLIB@
+ @_protobuf_FIND_ABSL@
+-@_protobuf_FIND_UTF8_RANGE@
+
+ # Imported targets
+ include("${CMAKE_CURRENT_LIST_DIR}/protobuf-targets.cmake")
+diff --git a/cmake/utf8_range.cmake b/cmake/utf8_range.cmake
+index f411a8c..770f94c 100644
+--- a/cmake/utf8_range.cmake
++++ b/cmake/utf8_range.cmake
+@@ -8,7 +8,7 @@ if (NOT TARGET utf8_range)
+ endif()
+
+ set(utf8_range_ENABLE_INSTALL ${protobuf_INSTALL} CACHE BOOL "Set install")
+- add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/third_party/utf8_range third_party/utf8_range)
++ add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/third_party/utf8_range third_party/utf8_range EXCLUDE_FROM_ALL)
+ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/third_party/utf8_range)
+ endif ()
+
diff --git a/main/protobuf/protoc-cmake.patch b/main/protobuf/protoc-cmake.patch
new file mode 100644
index 00000000000..4c1ae7af075
--- /dev/null
+++ b/main/protobuf/protoc-cmake.patch
@@ -0,0 +1,27 @@
+Patch-Source: https://github.com/protocolbuffers/protobuf/pull/13206
+--
+From 2e62ef1eaa2e712afc5f87aa2c55d478fe96230d Mon Sep 17 00:00:00 2001
+From: Antonio Rojas <arojas@archlinux.org>
+Date: Wed, 5 Jul 2023 13:03:11 +0200
+Subject: [PATCH] Handle BUILD_TYPE=None in protobuf-module.cmake
+
+Fixes Protobuf_PROTOC_EXECUTABLE being undefined in that case.
+---
+ cmake/protobuf-module.cmake.in | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/cmake/protobuf-module.cmake.in b/cmake/protobuf-module.cmake.in
+index 0bb05e38fad..e5b2b2e4b3a 100644
+--- a/cmake/protobuf-module.cmake.in
++++ b/cmake/protobuf-module.cmake.in
+@@ -153,6 +153,10 @@ if(NOT Protobuf_PROTOC_EXECUTABLE AND TARGET protobuf::protoc)
+ get_target_property(Protobuf_PROTOC_EXECUTABLE protobuf::protoc
+ IMPORTED_LOCATION_NOCONFIG)
+ endif()
++ if(NOT EXISTS "${Protobuf_PROTOC_EXECUTABLE}")
++ get_target_property(Protobuf_PROTOC_EXECUTABLE protobuf::protoc
++ IMPORTED_LOCATION_NONE)
++ endif()
+ endif()
+
+ # Version info variable
diff --git a/main/protobuf/ruby-fix-cflags.patch b/main/protobuf/ruby-fix-cflags.patch
index 19fddc4b6a6..24b1d57c0d0 100644
--- a/main/protobuf/ruby-fix-cflags.patch
+++ b/main/protobuf/ruby-fix-cflags.patch
@@ -1,11 +1,13 @@
Using builder flags
---- a/ruby/ext/google/protobuf_c/extconf.rb 2021-10-05 00:43:33.000000000 +0000
-+++ b/ruby/ext/google/protobuf_c/extconf.rb 2021-10-06 12:04:49.732008151 +0000
-@@ -3,9 +3,9 @@
- require 'mkmf'
+diff --git a/ruby/ext/google/protobuf_c/extconf.rb b/ruby/ext/google/protobuf_c/extconf.rb
+index b7c439b..0bbc15c 100755
+--- a/ruby/ext/google/protobuf_c/extconf.rb
++++ b/ruby/ext/google/protobuf_c/extconf.rb
+@@ -7,9 +7,9 @@ ext_name = "google/protobuf_c"
+ dir_config(ext_name)
- if RUBY_PLATFORM =~ /darwin/ || RUBY_PLATFORM =~ /linux/
+ if RUBY_PLATFORM =~ /darwin/ || RUBY_PLATFORM =~ /linux/ || RUBY_PLATFORM =~ /freebsd/
- $CFLAGS += " -std=gnu99 -O3 -DNDEBUG -fvisibility=hidden -Wall -Wsign-compare -Wno-declaration-after-statement"
+ $CFLAGS += " -std=gnu99 -DNDEBUG -fvisibility=hidden -Wall -Wsign-compare -Wno-declaration-after-statement"
else
@@ -13,4 +15,4 @@ Using builder flags
+ $CFLAGS += " -std=gnu99 -DNDEBUG"
end
-
+ if RUBY_PLATFORM =~ /linux/
diff --git a/main/protobuf/skip-failing-tests.patch b/main/protobuf/skip-failing-tests.patch
index 08ccd180451..9333d494906 100644
--- a/main/protobuf/skip-failing-tests.patch
+++ b/main/protobuf/skip-failing-tests.patch
@@ -1,10 +1,13 @@
--- a/src/google/protobuf/any_test.cc
+++ b/src/google/protobuf/any_test.cc
-@@ -60,13 +60,6 @@
+@@ -62,16 +62,6 @@
EXPECT_EQ(12345, submessage.int32_value());
}
-TEST(AnyTest, TestPackFromSerializationExceedsSizeLimit) {
+-#if defined(_MSC_VER) && defined(_M_IX86)
+- GTEST_SKIP() << "This toolchain can't allocate that much memory.";
+-#endif
- protobuf_unittest::TestAny submessage;
- submessage.mutable_text()->resize(INT_MAX, 'a');
- protobuf_unittest::TestAny message;
@@ -16,125 +19,66 @@
payload.set_int32_value(13);
--- a/src/google/protobuf/arena_unittest.cc
+++ b/src/google/protobuf/arena_unittest.cc
-@@ -1375,11 +1375,11 @@
+@@ -1392,11 +1392,9 @@
options.initial_block_size = arena_block.size();
Arena arena_2(options);
EXPECT_EQ(1024, arena_2.SpaceAllocated());
- EXPECT_EQ(0, arena_2.SpaceUsed());
-+// EXPECT_EQ(0, arena_2.SpaceUsed());
EXPECT_EQ(1024, arena_2.Reset());
Arena::CreateArray<char>(&arena_2, 55);
EXPECT_EQ(1024, arena_2.SpaceAllocated());
- EXPECT_EQ(Align8(55), arena_2.SpaceUsed());
-+// EXPECT_EQ(Align8(55), arena_2.SpaceUsed());
EXPECT_EQ(1024, arena_2.Reset());
}
-@@ -1418,11 +1418,11 @@
+@@ -1460,11 +1458,9 @@
*Arena::Create<int64_t>(&arena) = 42;
EXPECT_GE(arena.SpaceAllocated(), 8);
- EXPECT_EQ(8, arena.SpaceUsed());
-+// EXPECT_EQ(8, arena.SpaceUsed());
*Arena::Create<int64_t>(&arena) = 42;
EXPECT_GE(arena.SpaceAllocated(), 16);
- EXPECT_EQ(16, arena.SpaceUsed());
-+// EXPECT_EQ(16, arena.SpaceUsed());
}
}
---- a/src/google/protobuf/compiler/cpp/message_size_unittest.cc
-+++ b/src/google/protobuf/compiler/cpp/message_size_unittest.cc
-@@ -137,16 +137,6 @@
- EXPECT_EQ(sizeof(protobuf_unittest::OneString), sizeof(MockGenerated));
- }
-
--TEST(GeneratedMessageTest, MoreStringSize) {
-- struct MockGenerated : public MockMessageBase { // 16 bytes
-- int has_bits[1]; // 4 bytes
-- int cached_size; // 4 bytes
-- MockRepeatedPtrField data; // 24 bytes
-- };
-- GOOGLE_CHECK_MESSAGE_SIZE(MockGenerated, 48);
-- EXPECT_EQ(sizeof(protobuf_unittest::MoreString), sizeof(MockGenerated));
--}
--
- TEST(GeneratedMessageTest, Int32MessageSize) {
- struct MockGenerated : public MockMessageBase { // 16 bytes
- int has_bits[1]; // 4 bytes
--- a/src/google/protobuf/extension_set_unittest.cc
+++ b/src/google/protobuf/extension_set_unittest.cc
-@@ -868,17 +868,17 @@
+@@ -779,17 +779,11 @@
} while (0)
- TEST_REPEATED_EXTENSIONS_SPACE_USED(int32, int32_t, 101);
-- TEST_REPEATED_EXTENSIONS_SPACE_USED(int64, int64_t, 102);
-+ //TEST_REPEATED_EXTENSIONS_SPACE_USED(int64, int64_t, 102);
- TEST_REPEATED_EXTENSIONS_SPACE_USED(uint32, uint32_t, 103);
-- TEST_REPEATED_EXTENSIONS_SPACE_USED(uint64, uint64_t, 104);
-+ //TEST_REPEATED_EXTENSIONS_SPACE_USED(uint64, uint64_t, 104);
- TEST_REPEATED_EXTENSIONS_SPACE_USED(sint32, int32_t, 105);
-- TEST_REPEATED_EXTENSIONS_SPACE_USED(sint64, int64_t, 106);
-+ //TEST_REPEATED_EXTENSIONS_SPACE_USED(sint64, int64_t, 106);
- TEST_REPEATED_EXTENSIONS_SPACE_USED(fixed32, uint32_t, 107);
-- TEST_REPEATED_EXTENSIONS_SPACE_USED(fixed64, uint64_t, 108);
-+ //TEST_REPEATED_EXTENSIONS_SPACE_USED(fixed64, uint64_t, 108);
- TEST_REPEATED_EXTENSIONS_SPACE_USED(sfixed32, int32_t, 109);
-- TEST_REPEATED_EXTENSIONS_SPACE_USED(sfixed64, int64_t, 110);
-+ //TEST_REPEATED_EXTENSIONS_SPACE_USED(sfixed64, int64_t, 110);
- TEST_REPEATED_EXTENSIONS_SPACE_USED(float, float, 111);
-- TEST_REPEATED_EXTENSIONS_SPACE_USED(double, double, 112);
-+ //TEST_REPEATED_EXTENSIONS_SPACE_USED(double, double, 112);
- TEST_REPEATED_EXTENSIONS_SPACE_USED(bool, bool, true);
- TEST_REPEATED_EXTENSIONS_SPACE_USED(nested_enum, int,
- unittest::TestAllTypes::FOO);
---- a/src/google/protobuf/io/zero_copy_stream_unittest.cc
-+++ b/src/google/protobuf/io/zero_copy_stream_unittest.cc
-@@ -717,21 +717,6 @@
- }
- }
+ TEST_SCALAR_EXTENSIONS_SPACE_USED(int32, 101);
+- TEST_SCALAR_EXTENSIONS_SPACE_USED(int64, 102);
+ TEST_SCALAR_EXTENSIONS_SPACE_USED(uint32, 103);
+- TEST_SCALAR_EXTENSIONS_SPACE_USED(uint64, 104);
+ TEST_SCALAR_EXTENSIONS_SPACE_USED(sint32, 105);
+- TEST_SCALAR_EXTENSIONS_SPACE_USED(sint64, 106);
+ TEST_SCALAR_EXTENSIONS_SPACE_USED(fixed32, 107);
+- TEST_SCALAR_EXTENSIONS_SPACE_USED(fixed64, 108);
+ TEST_SCALAR_EXTENSIONS_SPACE_USED(sfixed32, 109);
+- TEST_SCALAR_EXTENSIONS_SPACE_USED(sfixed64, 110);
+ TEST_SCALAR_EXTENSIONS_SPACE_USED(float, 111);
+- TEST_SCALAR_EXTENSIONS_SPACE_USED(double, 112);
+ TEST_SCALAR_EXTENSIONS_SPACE_USED(bool, true);
+ #undef TEST_SCALAR_EXTENSIONS_SPACE_USED
+ {
+--- a/src/google/protobuf/wire_format_unittest.inc
++++ b/src/google/protobuf/wire_format_unittest.inc
+@@ -1591,6 +1591,7 @@
--// Verifies that outputs up to kint32max can be created.
--TEST_F(IoTest, LargeOutput) {
-- std::string str;
-- StringOutputStream output(&str);
-- void* unused_data;
-- int size;
-- // Repeatedly calling Next should eventually grow the buffer to kint32max.
-- do {
-- EXPECT_TRUE(output.Next(&unused_data, &size));
-- } while (str.size() < std::numeric_limits<int>::max());
-- // Further increases should be possible.
-- output.Next(&unused_data, &size);
-- EXPECT_GT(size, 0);
--}
--
+ // Test the old VerifyUTF8String() function, which may still be called by old
+ // generated code.
++#if 0
+ TEST_F(Utf8ValidationTest, OldVerifyUTF8String) {
+ std::string data(kInvalidUTF8String);
- // To test files, we create a temporary file, write, read, truncate, repeat.
- TEST_F(IoTest, FileIo) {
---- a/src/google/protobuf/repeated_field_unittest.cc
-+++ b/src/google/protobuf/repeated_field_unittest.cc
-@@ -372,22 +372,6 @@
- EXPECT_EQ(0, field.Capacity());
+@@ -1609,7 +1610,7 @@
+ WireFormat::SERIALIZE);
+ }
}
-
--TEST(RepeatedField, ReserveLowerClamp) {
-- int clamped_value = internal::CalculateReserveSize<bool, sizeof(void*)>(0, 1);
-- EXPECT_GE(clamped_value, 8 / sizeof(bool));
-- EXPECT_EQ((internal::RepeatedFieldLowerClampLimit<bool, sizeof(void*)>()),
-- clamped_value);
-- // EXPECT_EQ(clamped_value, (internal::CalculateReserveSize<bool,
-- // sizeof(void*)>( clamped_value, 2)));
-
-- clamped_value = internal::CalculateReserveSize<int, sizeof(void*)>(0, 1);
-- EXPECT_GE(clamped_value, 8 / sizeof(int));
-- EXPECT_EQ((internal::RepeatedFieldLowerClampLimit<int, sizeof(void*)>()),
-- clamped_value);
-- // EXPECT_EQ(clamped_value, (internal::CalculateReserveSize<int,
-- // sizeof(void*)>( clamped_value, 2)));
--}
--
- TEST(RepeatedField, ReserveGrowth) {
- // Make sure the field capacity doubles in size on repeated reservation.
- for (int size = internal::RepeatedFieldLowerClampLimit<int, sizeof(void*)>(),
++#endif
+
+ TEST(RepeatedVarint, Int32) {
+ RepeatedField<int32_t> v;
diff --git a/main/protobuf/soversion.patch b/main/protobuf/soversion.patch
new file mode 100644
index 00000000000..25d695927e8
--- /dev/null
+++ b/main/protobuf/soversion.patch
@@ -0,0 +1,39 @@
+Patch-Source: https://gitlab.archlinux.org/archlinux/packaging/packages/protobuf/-/blob/e93df92fead2d46cc2825a866af3f402d498439c/soversion.patch
+use an soversion that actually makes sense and not just the full pkgver
+--
+diff --git a/cmake/libprotobuf-lite.cmake b/cmake/libprotobuf-lite.cmake
+index 9b1de677b4f..276c99c489e 100644
+--- a/cmake/libprotobuf-lite.cmake
++++ b/cmake/libprotobuf-lite.cmake
+@@ -30,6 +30,7 @@ if(protobuf_BUILD_SHARED_LIBS)
+ endif()
+ set_target_properties(libprotobuf-lite PROPERTIES
+ VERSION ${protobuf_VERSION}
++ SOVERSION ${protobuf_VERSION_MINOR}
+ OUTPUT_NAME ${LIB_PREFIX}protobuf-lite
+ DEBUG_POSTFIX "${protobuf_DEBUG_POSTFIX}")
+ add_library(protobuf::libprotobuf-lite ALIAS libprotobuf-lite)
+diff --git a/cmake/libprotobuf.cmake b/cmake/libprotobuf.cmake
+index aa3efc9a68a..0f34d20b97d 100644
+--- a/cmake/libprotobuf.cmake
++++ b/cmake/libprotobuf.cmake
+@@ -33,6 +33,7 @@ if(protobuf_BUILD_SHARED_LIBS)
+ endif()
+ set_target_properties(libprotobuf PROPERTIES
+ VERSION ${protobuf_VERSION}
++ SOVERSION ${protobuf_VERSION_MINOR}
+ OUTPUT_NAME ${LIB_PREFIX}protobuf
+ DEBUG_POSTFIX "${protobuf_DEBUG_POSTFIX}")
+ add_library(protobuf::libprotobuf ALIAS libprotobuf)
+diff --git a/cmake/libprotoc.cmake b/cmake/libprotoc.cmake
+index 72b4a1abb92..91e8bbeb04e 100644
+--- a/cmake/libprotoc.cmake
++++ b/cmake/libprotoc.cmake
+@@ -24,6 +24,7 @@ endif()
+ set_target_properties(libprotoc PROPERTIES
+ COMPILE_DEFINITIONS LIBPROTOC_EXPORTS
+ VERSION ${protobuf_VERSION}
++ SOVERSION ${protobuf_VERSION_MINOR}
+ OUTPUT_NAME ${LIB_PREFIX}protoc
+ DEBUG_POSTFIX "${protobuf_DEBUG_POSTFIX}")
+ add_library(protobuf::libprotoc ALIAS libprotoc)
diff --git a/main/protobuf/trim-rakefile.patch b/main/protobuf/trim-rakefile.patch
index 2a70dd64949..d8a3b87803b 100644
--- a/main/protobuf/trim-rakefile.patch
+++ b/main/protobuf/trim-rakefile.patch
@@ -1,5 +1,7 @@
---- a/ruby/Rakefile 2021-10-06 10:20:37.207462826 +0000
-+++ b/ruby/Rakefile 2021-10-06 10:26:17.086024004 +0000
+diff --git a/ruby/Rakefile b/ruby/Rakefile
+index c05e115..20144b7 100644
+--- a/ruby/Rakefile
++++ b/ruby/Rakefile
@@ -1,6 +1,4 @@
require "rubygems"
-require "rubygems/package_task"
@@ -7,9 +9,9 @@
require "rake/testtask"
spec = Gem::Specification.load("google-protobuf.gemspec")
-@@ -89,66 +89,12 @@
- FileUtils.cp("../third_party/utf8_range/range2-sse.c", "ext/google/protobuf_c/third_party/utf8_range")
- FileUtils.cp("../third_party/utf8_range/LICENSE", "ext/google/protobuf_c/third_party/utf8_range")
+@@ -95,57 +93,6 @@ else
+ FileUtils.cp(utf8_root+"/range2-neon.c", "ext/google/protobuf_c")
+ FileUtils.cp(utf8_root+"/range2-sse.c", "ext/google/protobuf_c")
end
-
- Rake::ExtensionTask.new("protobuf_c", spec) do |ext|
@@ -49,7 +51,7 @@
- ['x86-mingw32', 'x64-mingw32', 'x64-mingw-ucrt', 'x86_64-linux', 'x86-linux'].each do |plat|
- RakeCompilerDock.sh <<-"EOT", platform: plat
- bundle && \
-- IN_DOCKER=true rake native:#{plat} pkg/#{spec.full_name}-#{plat}.gem RUBY_CC_VERSION=3.1.0:3.0.0:2.7.0:2.6.0:2.5.0
+- IN_DOCKER=true rake native:#{plat} pkg/#{spec.full_name}-#{plat}.gem RUBY_CC_VERSION=3.1.0:3.0.0:2.7.0:2.6.0
- EOT
- end
- end
@@ -57,7 +59,7 @@
- if RUBY_PLATFORM =~ /darwin/
- task 'gem:native' do
- system "rake genproto"
-- system "rake cross native gem RUBY_CC_VERSION=3.1.0:3.0.0:2.7.0:2.6.0:2.5.1"
+- system "rake cross native gem RUBY_CC_VERSION=3.1.0:3.0.0:2.7.0:2.6.0"
- end
- else
- task 'gem:native' => [:genproto, 'gem:windows', 'gem:java']
@@ -65,12 +67,13 @@
end
task :genproto => genproto_output
-
- task :clean do
+@@ -154,9 +101,6 @@ task :clean do
sh "rm -f #{genproto_output.join(' ')}"
--end
--
--Gem::PackageTask.new(spec) do |pkg|
end
- Rake::TestTask.new(:test => [:build, :genproto]) do |t|
+-Gem::PackageTask.new(spec) do |pkg|
+-end
+-
+ # Skip build/genproto in Bazel builds, where we expect this to
+ # be done already.
+ Rake::TestTask.new(:test => ENV['BAZEL'] == 'true' ? [] : [:build, :genproto]) do |t|
diff --git a/main/proxychains-ng/APKBUILD b/main/proxychains-ng/APKBUILD
index 25fdad5e457..8dca750a763 100644
--- a/main/proxychains-ng/APKBUILD
+++ b/main/proxychains-ng/APKBUILD
@@ -1,18 +1,16 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=proxychains-ng
-pkgver=4.16
-pkgrel=0
+pkgver=4.17
+pkgrel=1
pkgdesc="This tool provides proxy server support to any app."
url="https://github.com/rofl0r/proxychains-ng"
arch="all"
-license="GPL-2.0"
+license="GPL-2.0-only"
options="!check"
-source="https://github.com/rofl0r/$pkgname/archive/v$pkgver.zip"
-builddir="$srcdir"/$pkgname-$pkgver
+source="https://github.com/rofl0r/proxychains-ng/releases/download/v$pkgver/proxychains-ng-$pkgver.tar.xz"
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -22,11 +20,10 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install install-config
ln -s proxychains4 "$pkgdir"/usr/bin/proxychains
}
sha512sums="
-f9c0ae33a8b678e5461ca39b19cf64fadd4f91c93d6328bb965ba58b2205613bb2614b0bb5c68d2d29d7071becb97a2faab729fa8b0a9ccf39218a9bbbca90c7 v4.16.zip
+aa35ae27305065a7f296cbf99b3308b2ac759287761a5d234ddaa558292467fae88c33a3ced1d71329cf6a7e8f56aa4e2ffd4274d57d87857f13ca8393d5d983 proxychains-ng-4.17.tar.xz
"
diff --git a/main/psmisc/APKBUILD b/main/psmisc/APKBUILD
index 6c3f3a56140..31d0ef61399 100644
--- a/main/psmisc/APKBUILD
+++ b/main/psmisc/APKBUILD
@@ -1,17 +1,14 @@
# Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
pkgname=psmisc
-pkgver=23.5
+pkgver=23.7
pkgrel=0
pkgdesc="set of some small useful utilities that use the proc filesystem"
url="https://gitlab.com/psmisc/psmisc"
arch="all"
license="GPL-2.0-or-later"
-makedepends="gettext-dev libintl ncurses-dev"
+makedepends="gettext-dev linux-headers ncurses-dev"
subpackages="$pkgname-doc $pkgname-lang"
-source="https://downloads.sourceforge.net/psmisc/psmisc-$pkgver.tar.xz
- include_limits.patch
- musl_ptregs.patch
- "
+source="https://downloads.sourceforge.net/psmisc/psmisc-$pkgver.tar.xz"
build() {
./configure \
@@ -33,7 +30,5 @@ check() {
}
sha512sums="
-e908220350491a595ceaf96025a9aa14d832cacc8901545d0864152053fedaf9dc10f45fb2870aa2a00e4d9d8947243038357e14a82b04ab5d20c53e7f841a8d psmisc-23.5.tar.xz
-63dea6a65c4cabcfa06d225950bc78fd6ac42f7445b8d10bde5e86dd8d96eb89823e486d7635b78562da058642f87289356c416225563a8e1ccfc2e32d81e884 include_limits.patch
-73dec9791e8cdb85cd3d9ef9be4d16e0fef481c6edc334ed9e954829444b1a92b87f7a3a2e6c1d09ac207bed828f214f5f2a95caa66540a7f2a6c58a6b8f6f2c musl_ptregs.patch
+8180d24355b3b0f3102044916d078b1aa9a1af3d84f1e14db79e33e505390167012adbb1a8a5f47a692f3a14aba1eb5f1f8f37f328392e8635b89966af9b2128 psmisc-23.7.tar.xz
"
diff --git a/main/psmisc/include_limits.patch b/main/psmisc/include_limits.patch
deleted file mode 100644
index 1b474bc8f60..00000000000
--- a/main/psmisc/include_limits.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-Author: Breno Leitao <brenohl@br.ibm.com>
-Date: Thu Apr 6 13:59:57 2017 -0300
-
- peekfd: Include headers for ppc64
-
- Currently peekfd fails to build on ppc64le architecture with musl
- because it does not find reference for __WORDSIZE.
-
- This patch just includes reference for this macro if it was not
- previously defined.
-
-Index: psmisc-22.21/src/peekfd.c
-===================================================================
---- psmisc-22.21.orig/src/peekfd.c
-+++ psmisc-22.21/src/peekfd.c
-@@ -37,6 +37,14 @@
-
- #include "i18n.h"
-
-+#if !defined(PATH_MAX)
-+#include <limits.h>
-+#endif
-+
-+#if !defined(__WORDSIZE)
-+#include <bits/reg.h>
-+#endif
-+
- #ifdef I386
- #define REG_ORIG_ACCUM orig_eax
- #define REG_ACCUM eax
-Index: psmisc-22.21/src/pstree.c
-===================================================================
---- psmisc-22.21.orig/src/pstree.c
-+++ psmisc-22.21/src/pstree.c
-@@ -45,6 +45,10 @@
- #include "i18n.h"
- #include "comm.h"
-
-+#if !defined(PATH_MAX)
-+#include <limits.h>
-+#endif
-+
- #ifdef WITH_SELINUX
- #include <selinux/selinux.h>
- #else
diff --git a/main/psmisc/musl_ptregs.patch b/main/psmisc/musl_ptregs.patch
deleted file mode 100644
index 29fee6a2a10..00000000000
--- a/main/psmisc/musl_ptregs.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-Author: Breno Leitao <brenohl@br.ibm.com>
-Date: Thu Apr 6 14:03:00 2017 -0300
-
- peekfd: Avoid pt_regs clash
-
-Index: psmisc-22.21/src/peekfd.c
-===================================================================
---- a/src/peekfd.c.old
-+++ b/src/peekfd.c
-@@ -27,7 +27,9 @@
- #include <sys/types.h>
- #include <sys/wait.h>
- #include <sys/syscall.h>
-+#define pt_regs uapi_pt_regs
- #include <asm/ptrace.h>
-+#undef pt_regs
- #include <byteswap.h>
- #include <endian.h>
- #include <sys/user.h>
-
diff --git a/main/pspg/APKBUILD b/main/pspg/APKBUILD
index 5d27dada7c9..eda09046c3a 100644
--- a/main/pspg/APKBUILD
+++ b/main/pspg/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=pspg
-pkgver=5.5.4
+pkgver=5.8.2
pkgrel=0
pkgdesc="A unix pager optimized for psql"
url="https://github.com/okbob/pspg"
@@ -9,7 +9,8 @@ arch="all"
options="!check" # there is no tests
license="BSD-2-Clause"
makedepends="automake autoconf libpq-dev ncurses-dev readline-dev"
-source="https://github.com/okbob/pspg/archive/$pkgver/$pkgname-$pkgver.tar.gz"
+subpackages="$pkgname-doc"
+source="https://github.com/okbob/pspg/archive/$pkgver/pspg-$pkgver.tar.gz"
prepare() {
default_prepare
@@ -17,6 +18,8 @@ prepare() {
}
build() {
+ # getpass
+ CFLAGS="$CFLAGS -D_BSD_SOURCE" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -28,8 +31,9 @@ build() {
package() {
make DESTDIR="$pkgdir" install
+ install -Dm644 pspg.1 -t "$pkgdir"/usr/share/man/man1/
}
sha512sums="
-f13f4d7424d7b172a1fc5f963e7390a53f73f5c53ea4af7a9bed32dabc99f657e46cae550e8d5c7dd756b3496dd2ad665f3fd6551e54f9add1b3aef491709572 pspg-5.5.4.tar.gz
+b64fd77c201e99881c8bc1afe435341ffedbd2ca40577e4f5a6e24bf8b0529f2106317452f87551a26b8c8a1907595440bce77dfd79b6293144165b106ec9517 pspg-5.8.2.tar.gz
"
diff --git a/main/psqlodbc/APKBUILD b/main/psqlodbc/APKBUILD
index 5929e5c2acf..c5c21bf598d 100644
--- a/main/psqlodbc/APKBUILD
+++ b/main/psqlodbc/APKBUILD
@@ -1,23 +1,20 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=psqlodbc
-pkgver=13.01.0000
+pkgver=16.00.0000
pkgrel=0
pkgdesc="PostgreSQL ODBC driver"
-url="https://www.postgresql.org"
+url="https://odbc.postgresql.org/"
arch="all"
license="GPL-2.0-or-later"
makedepends="libpq-dev unixodbc-dev libtool"
source="https://ftp.postgresql.org/pub/odbc/versions/src/psqlodbc-$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
-
prepare() {
default_prepare
update_config_sub
}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -26,14 +23,13 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
+
sha512sums="
-34f9e64d2fe45b90f08fdec3afa9f841cfda2d3d92b2755942aa24f2dde6f909601c0aa0b5d4dc03318708effe195f634058cf252536180f514ea9f3b18536e4 psqlodbc-13.01.0000.tar.gz
+ad971cd29e431225d03faf5ebc0ba7a9f17d20dd70106867f05df8dc1e509413d4db533101a1b3418480ad758b7626c178ec345c5ff7e9409f7fcfbea9427166 psqlodbc-16.00.0000.tar.gz
"
diff --git a/main/pssh/APKBUILD b/main/pssh/APKBUILD
index 25b174cadb1..5102e3708e5 100644
--- a/main/pssh/APKBUILD
+++ b/main/pssh/APKBUILD
@@ -1,32 +1,36 @@
# Contributor: Johannes Matheis <jomat+alpinebuild@jmt.gr>
-# Maintainer: Johannes Matheis <jomat+alpinebuild@jmt.gr>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=pssh
-pkgver=2.3.4
+pkgver=2.3.5
pkgrel=2
pkgdesc="PSSH provides parallel versions of OpenSSH and related tools: pssh, pscp, prsync, pnuke, and pslurp"
url="https://github.com/lilydjwg/pssh"
arch="noarch"
license="BSD-3-Clause"
depends="python3 cmd:ssh"
-makedepends="py3-setuptools"
-checkdepends="py3-tox"
+makedepends="py3-setuptools py3-gpep517 py3-wheel py3-installer"
options="!check" # failing test
-subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/lilydjwg/pssh/archive/v2.3.4.tar.gz"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/lilydjwg/pssh/archive/v$pkgver.tar.gz"
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- python3 setup.py test
+ python3 -m unittest discover
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
install -d "$pkgdir"/usr/libexec/pssh
mv "$pkgdir"/usr/bin/pssh-askpass "$pkgdir"/usr/libexec/pssh
}
-sha512sums="7abf327ca53dda2402465254e447eb837babdd2b4d865abb5b52a1135bd234694b84c1148cb3e4ed0198271ed29333fc1b5d0d01dc653fcf6d3e5b9f170b9d4e pssh-2.3.4.tar.gz"
+sha512sums="
+47515b05c9ee2bb302e25d5404736184ad04e22afdeb77bea799d80adadd977af2744e124bd06b751bb06ad05baed6b577cc636b808f32db83edda669598e3ee pssh-2.3.5.tar.gz
+"
diff --git a/main/pstree/APKBUILD b/main/pstree/APKBUILD
index 535dc3c8b3b..84916c88958 100644
--- a/main/pstree/APKBUILD
+++ b/main/pstree/APKBUILD
@@ -1,26 +1,28 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Sören Tempel <soeren+alpine@soeren-tempel.net>
pkgname=pstree
-pkgver=2.39
-pkgrel=1
+pkgver=2.40
+pkgrel=2
pkgdesc="A small tool to list processes as a tree"
-url="http://www.thp.uni-duisburg.de/pstree/"
+url="https://github.com/FredHucht/pstree"
arch="all"
-license="GPL"
+license="GPL-3.0-or-later"
depends="!psmisc" # also provides pstree
subpackages="$pkgname-doc"
-source="https://fossies.org/linux/misc/pstree-$pkgver.tar.gz"
+options="!check" # no test suite
+source="$pkgname-$pkgver.tar.gz::https://github.com/FredHucht/pstree/archive/refs/tags/v$pkgver.tar.gz"
build() {
- ${CC:-gcc} ${CFLAGS} -o "$srcdir"/$pkgname \
- "$srcdir"/$pkgname.c || return 1
+ ${CC:-gcc} $CFLAGS -o $pkgname $pkgname.c
}
package() {
- install -Dm755 "$srcdir"/$pkgname \
- "$pkgdir"/usr/bin/$pkgname || return 1
- install -Dm644 "$srcdir"/$pkgname.1 \
- "$pkgdir"/usr/share/man/man1/$pkgname.1 || return 1
+ install -Dm755 $pkgname \
+ "$pkgdir"/usr/bin/$pkgname
+ install -Dm644 $pkgname.1 \
+ "$pkgdir"/usr/share/man/man1/$pkgname.1
}
-sha512sums="31ec81b4adb563068a3006312e1e42b026d41107c7756c54f8b38d143b32426fc702602c7eb925a55c62be5cb3ef7d562e6ba032ec7a0788d0c45f5d5b5b0662 pstree-2.39.tar.gz"
+sha512sums="
+574e6ff5b476a5831ada91965755600ba487a13e4a4121357ee322583f61ec3a129df9dffd169e47071b15a6b57487d26d1180a5c8e8c05031eec56797e75b33 pstree-2.40.tar.gz
+"
diff --git a/main/pth/APKBUILD b/main/pth/APKBUILD
deleted file mode 100644
index adf49401cf5..00000000000
--- a/main/pth/APKBUILD
+++ /dev/null
@@ -1,40 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=pth
-pkgver=2.0.7
-pkgrel=5
-pkgdesc="GNU Portable Threads"
-options="!libc_musl" # This is only for uclibc
-url="https://www.gnu.org/software/pth"
-arch="all"
-license="LGPL-2.1-or-later"
-subpackages="$pkgname-dev $pkgname-doc"
-source="https://ftp.gnu.org/gnu/pth/pth-$pkgver.tar.gz
- pth-2.0.5-parallelfix.patch
- pth-2.0.6-ldflags.patch
- pth-2.0.6-sigstack.patch
- "
-
-prepare() {
- default_prepare
- update_config_sub
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --localstatedir=/var \
- --mandir=/usr/share/man
- make
-}
-
-package() {
- make -j1 DESTDIR="$pkgdir" install
-}
-
-sha512sums="f79d74047c50e06f3198356f88647c5c1c8a04ebdd94641fc31d5ab0fd2750d86615fcb81da2f98d7ea73d012a501195d3fa09060571d18dcfdaec5d7a0ecb12 pth-2.0.7.tar.gz
-bda7d23a6dd15097c72428003ece7e453b8c1791573853a711dda7bb432593d847053bef436b55050f4a80edd7574e1178ef9fbe001eb20d91c717b8cae43957 pth-2.0.5-parallelfix.patch
-099c8221d0011dd5284a96d216ed5315619ae377c3c0a01d15af2976aec57e286166601740b139852f340b36fdc7c5ce62f69faf268d6feaabe70db2bbfdf372 pth-2.0.6-ldflags.patch
-0011405ae5e8371390adb2a718277d675db5bc085fe5c5f6054ba1bb08f2276d9e5f4d5c083e833417893173210b1e791a2d0f0a9b6d13194f11c9f587397635 pth-2.0.6-sigstack.patch"
diff --git a/main/pth/pth-2.0.5-parallelfix.patch b/main/pth/pth-2.0.5-parallelfix.patch
deleted file mode 100644
index 1c8200a4cb2..00000000000
--- a/main/pth/pth-2.0.5-parallelfix.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/Makefile.in 2005-11-08 05:58:55.000000000 +1100
-+++ b/Makefile.in 2005-11-08 06:29:02.000000000 +1100
-@@ -148,10 +148,9 @@
-
- # be aware of libtool when building the objects
- .SUFFIXES:
--.SUFFIXES: .c .o .lo
--.c.o:
-+%.o: %.c $(TARGET_PREQ)
- $(CC) -c $(CPPFLAGS) $(CFLAGS) $<
--.c.lo:
-+%.lo: %.c $(TARGET_PREQ)
- $(LIBTOOL) --mode=compile --quiet $(CC) -c $(CPPFLAGS) $(CFLAGS) $<
-
- # the default target
diff --git a/main/pth/pth-2.0.6-ldflags.patch b/main/pth/pth-2.0.6-ldflags.patch
deleted file mode 100644
index 7a4a5ab3000..00000000000
--- a/main/pth/pth-2.0.6-ldflags.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Index: pth-2.0.6/Makefile.in
-===================================================================
---- pth-2.0.6.orig/Makefile.in
-+++ pth-2.0.6/Makefile.in
-@@ -168,10 +168,10 @@ pth_p.h: $(S)pth_p.h.in
-
- # build the static and possibly shared libraries
- libpth.la: $(LOBJS)
-- $(LIBTOOL) --mode=link --quiet $(CC) -o libpth.la $(LOBJS) \
-+ $(LIBTOOL) --mode=link --quiet $(CC) $(LDFLAGS) -o libpth.la $(LOBJS) \
- -rpath $(libdir) -version-info `$(SHTOOL) version -lc -dlibtool $(_VERSION_FILE)`
- libpthread.la: pthread.lo $(LOBJS)
-- $(LIBTOOL) --mode=link --quiet $(CC) -o libpthread.la pthread.lo $(LOBJS) \
-+ $(LIBTOOL) --mode=link --quiet $(CC) $(LDFLAGS) -o libpthread.la pthread.lo $(LOBJS) \
- -rpath $(libdir) -version-info `$(SHTOOL) version -lc -dlibtool $(_VERSION_FILE)`
-
- # build the manual pages
diff --git a/main/pth/pth-2.0.6-sigstack.patch b/main/pth/pth-2.0.6-sigstack.patch
deleted file mode 100644
index 3914dea7ac6..00000000000
--- a/main/pth/pth-2.0.6-sigstack.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -urNp pth-2.0.6.old/aclocal.m4 pth-2.0.6/aclocal.m4
---- pth-2.0.6.old/aclocal.m4 2004-12-31 21:33:19.000000000 +0200
-+++ pth-2.0.6/aclocal.m4 2006-09-20 14:46:59.000000000 +0300
-@@ -1522,6 +1522,7 @@ int main(int argc, char *argv[])
- int sksize;
- char result[1024];
- int i;
-+exit (1);
- sksize = 32768;
- skbuf = (char *)malloc(sksize*2+2*sizeof(union alltypes));
- if (skbuf == NULL)
-diff -urNp pth-2.0.6.old/configure pth-2.0.6/configure
---- pth-2.0.6.old/configure 2005-11-22 09:49:21.000000000 +0200
-+++ pth-2.0.6/configure 2006-09-20 14:55:23.000000000 +0300
-@@ -24735,6 +24735,7 @@ int main(int argc, char *argv[])
- int sksize;
- char result[1024];
- int i;
-+exit (1);
- sksize = 32768;
- skbuf = (char *)malloc(sksize*2+2*sizeof(union alltypes));
- if (skbuf == NULL)
diff --git a/main/putty/APKBUILD b/main/putty/APKBUILD
index 0c81c23d327..5c250ea981a 100644
--- a/main/putty/APKBUILD
+++ b/main/putty/APKBUILD
@@ -1,18 +1,22 @@
# Maintainer: Jeff Bilyk <jbilyk@alpinelinux.org>
pkgname=putty
-pkgver=0.77
+pkgver=0.81
pkgrel=0
pkgdesc="SSH and telnet client"
url="https://www.chiark.greenend.org.uk/~sgtatham/putty/"
arch="all"
license="MIT"
depends="ncurses-terminfo-base"
-makedepends="cmake linux-headers perl samurai"
+makedepends="cmake gtk+3.0-dev linux-headers perl samurai"
subpackages="$pkgname-doc"
source="https://the.earth.li/~sgtatham/putty/$pkgver/putty-$pkgver.tar.gz"
options="!check" # no test suite
# secfixes:
+# 0.81-r0:
+# - CVE-2024-31497
+# 0.80-r0:
+# - CVE-2023-48795
# 0.76-r0:
# - CVE-2021-36367
# 0.74-r0:
@@ -38,5 +42,5 @@ package() {
}
sha512sums="
-35eb1e3f98a07611365bedc492c69a5475ce9b3d920ecebc78c76813505684c16cfcbfbb2306c1106fb5a9b72ca3dd52cbd39b9e9805c6689c9a9464910c0e7d putty-0.77.tar.gz
+d86f2fd0e126b18275d58cf64334b3b27c450899a1c2be2502de9faa2ef58f7fc8efc5d45f25c8395623f1e21917aa02407343bb2fee44c4c00b9f81267d5ecd putty-0.81.tar.gz
"
diff --git a/main/pwgen/APKBUILD b/main/pwgen/APKBUILD
index bf1f6c38e92..147fbd7d029 100644
--- a/main/pwgen/APKBUILD
+++ b/main/pwgen/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=pwgen
pkgver=2.08
-pkgrel=1
+pkgrel=3
pkgdesc="A Password Generator"
url="https://github.com/tytso/pwgen"
arch="all"
diff --git a/main/py3-alabaster/APKBUILD b/main/py3-alabaster/APKBUILD
index 4c4d2cf08ad..41f07c61aa4 100644
--- a/main/py3-alabaster/APKBUILD
+++ b/main/py3-alabaster/APKBUILD
@@ -2,26 +2,30 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-alabaster
_pkgname=alabaster
-pkgver=0.7.12
-pkgrel=5
-pkgdesc="Modified Kr Sphinx doc theme"
-url="https://github.com/bitprophet/alabaster"
+pkgver=0.7.16
+pkgrel=1
+pkgdesc="Lightweight, configurable Sphinx theme"
+url="https://alabaster.readthedocs.io/en/latest/"
arch="noarch"
license="BSD-3-Clause"
depends="python3"
-makedepends="py3-setuptools"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/bitprophet/$_pkgname/archive/$pkgver.tar.gz"
+makedepends="py3-flit-core py3-gpep517"
+subpackages="$pkgname-pyc"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/sphinx-doc/alabaster/archive/$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
replaces="py-alabaster" # Backwards compatibility
provides="py-alabaster=$pkgver-r$pkgrel" # Backwards compatibility
+options="!check"
build() {
- python3 setup.py build
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
}
-sha512sums="e6bcfbf02ee83eaa33c71b8a3d1cb767cc4bfc2b95f79a86a59292988e28abea32a7d55be9a9cdfa9592efed5de3afd7604f9bb65e1f90ba5f377ec54d540f9e alabaster-0.7.12.tar.gz"
+sha512sums="
+a2a38a4923e47a89310de0128a8be3b1304b548810ef9f04bc2b4db0664f752e8db85c32bcdaec1565c9310753ab1d2b4a69789bf75ea5ba2d1ff60bd04a20d2 alabaster-0.7.16.tar.gz
+"
diff --git a/main/py3-appdirs/APKBUILD b/main/py3-appdirs/APKBUILD
index 330420c0e29..fff9502cfbd 100644
--- a/main/py3-appdirs/APKBUILD
+++ b/main/py3-appdirs/APKBUILD
@@ -3,25 +3,32 @@
pkgname=py3-appdirs
_pkgname=appdirs
pkgver=1.4.4
-pkgrel=3
+pkgrel=8
pkgdesc="A small Python module for determining appropriate platform-specific dirs."
url="https://pypi.org/project/appdirs/"
arch="noarch"
license="MIT"
depends="python3"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/a/appdirs/appdirs-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
build() {
- python3 setup.py build
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
}
check() {
- PYTHONPATH="$PWD/build/lib" python3 test/test_api.py
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
}
-sha512sums="8b0cdd9fd471d45b186aa47607691cf378dabd3edc7b7026a57bd6d6f57698e86f440818a5e23ba4288b35d6bb8cb6eb0106eae8aab09d8863ee15025d300883 appdirs-1.4.4.tar.gz"
+sha512sums="
+8b0cdd9fd471d45b186aa47607691cf378dabd3edc7b7026a57bd6d6f57698e86f440818a5e23ba4288b35d6bb8cb6eb0106eae8aab09d8863ee15025d300883 appdirs-1.4.4.tar.gz
+"
diff --git a/main/py3-asn1/APKBUILD b/main/py3-asn1/APKBUILD
deleted file mode 100644
index 83853d91a7a..00000000000
--- a/main/py3-asn1/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Peter Bui <pnutzh4x0r@gmail.com>
-# Maintainer: Drew DeVault <sir@cmpwn.com>
-pkgname=py3-asn1
-pkgver=0.4.8
-pkgrel=2
-pkgdesc="Python3 ASN1 library"
-url="http://snmplabs.com/pyasn1/"
-arch="noarch"
-license="BSD-2-Clause"
-depends="python3"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/p/pyasn1/pyasn1-$pkgver.tar.gz"
-builddir="$srcdir/pyasn1-$pkgver"
-
-replaces="py-asn1" # Backwards compatibility
-provides="py-asn1=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="e64e70b325c8067f87ace7c0673149e82fe564aa4b0fa146d29b43cb588ecd6e81b1b82803b8cfa7a17d3d0489b6d88b4af5afb3aa0052bf92e8a1769fe8f7b0 pyasn1-0.4.8.tar.gz"
diff --git a/main/py3-atomicwrites/APKBUILD b/main/py3-atomicwrites/APKBUILD
deleted file mode 100644
index a2b1acd28cb..00000000000
--- a/main/py3-atomicwrites/APKBUILD
+++ /dev/null
@@ -1,28 +0,0 @@
-# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
-pkgname=py3-atomicwrites
-_pkgname=python-atomicwrites
-pkgver=1.4.0
-pkgrel=2
-pkgdesc="Powerful Python3 library for atomic file writes"
-url="https://github.com/untitaker/python-atomicwrites"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-options="!check" # requires pytest which depends on this aport (cyclic dep)
-source="https://github.com/untitaker/python-atomicwrites/archive/$pkgver/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-replaces="py-atomicwrites" # Backwards compatibility
-provides="py-atomicwrites=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="49b0eaa1058ebe1501756e6186264973537f5dea1c1d653f0dc7b2aa03635459f935a16a5a8fec4abfb55d29078df9d09f47bd2e7766a5aaf3063fe1261f63a1 python-atomicwrites-1.4.0.tar.gz"
diff --git a/main/py3-attrs/APKBUILD b/main/py3-attrs/APKBUILD
deleted file mode 100644
index bbd71049f11..00000000000
--- a/main/py3-attrs/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Jean-Louis Fuchs <jean-louis.fuchs@adfinis-sygroup.ch>
-# Maintainer: Jean-Louis Fuchs <jean-louis.fuchs@adfinis-sygroup.ch>
-pkgname=py3-attrs
-pkgver=21.4.0
-pkgrel=0
-pkgdesc="Python classes without boilerplate"
-url="http://www.attrs.org"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-source="py-attrs-$pkgver.tar.gz::https://github.com/python-attrs/attrs/archive/$pkgver.tar.gz
- check.py
- "
-builddir="$srcdir/attrs-$pkgver"
-
-replaces="py-attrs" # Backwards compatibility
-provides="py-attrs=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH="$builddir/src" python3 "$srcdir"/check.py
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-sha512sums="
-aa45891f9beb00a2e03ae9326e0daa5789eb32164a1ee3a3fea618e2db30778d66bcce7f664134a99e1e45f7ee5040aa13ebc0d3d405acf57c580de6b35cfd76 py-attrs-21.4.0.tar.gz
-36bcb4ec145f29e79fc019dc39672f13dc94e1c07225968af51f19e17b2aede0b23dafdff265f1e77a251e53af9802bcf1db5068900ee0a03e1bfc1051c01ef9 check.py
-"
diff --git a/main/py3-attrs/check.py b/main/py3-attrs/check.py
deleted file mode 100644
index 08af9829fb7..00000000000
--- a/main/py3-attrs/check.py
+++ /dev/null
@@ -1,10 +0,0 @@
-import attr
-
-@attr.s
-class SomeClass(object):
- a_number = attr.ib(default=42)
- list_of_numbers = attr.ib(default=attr.Factory(list))
-
-a = SomeClass()
-assert a.a_number == 42
-assert isinstance(a.list_of_numbers, list)
diff --git a/main/py3-babel/APKBUILD b/main/py3-babel/APKBUILD
index b6e662bfcc6..ab015d2fa9f 100644
--- a/main/py3-babel/APKBUILD
+++ b/main/py3-babel/APKBUILD
@@ -2,16 +2,19 @@
# Maintainer: Kaarle Ritvanen <kunkku@alpinelinux.org>
pkgname=py3-babel
_pkgname=Babel
-pkgver=2.9.1
-pkgrel=1
+pkgver=2.14.0
+pkgrel=2
pkgdesc="Python3 i18n tool"
-url="http://babel.pocoo.org/"
+url="https://babel.pocoo.org/"
arch="noarch"
license="BSD-3-Clause"
-depends="python3 py3-tz"
-makedepends="py3-setuptools"
+depends="py3-tz py3-setuptools"
+makedepends="py3-gpep517 py3-wheel"
+checkdepends="py3-pytest py3-pytest-freezegun"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
+options="!check" # freezegun not in main
replaces="py-babel" # Backwards compatibility
provides="py-babel=$pkgver-r$pkgrel" # Backwards compatibility
@@ -21,13 +24,22 @@ provides="py-babel=$pkgver-r$pkgrel" # Backwards compatibility
# - CVE-2021-42771
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
sha512sums="
-89a2ce18301b522907bb66ec5453cbcd4c6b2d494d6928c9c62dc07bd8b6983982db571a85e251a1ea413b6f76fbd515f65c67c9bccf5441c62d351a57f2f4d0 Babel-2.9.1.tar.gz
+cfcd93bc5e57e3d23b8fb67f77fdeeb08183cc5ef9a6e044085a090cec3d722cf658e740c639f5a834df11a4cff0dacafdbba435184d77a78d56fc0bb6b62fd2 Babel-2.14.0.tar.gz
"
diff --git a/main/py3-bcrypt/APKBUILD b/main/py3-bcrypt/APKBUILD
deleted file mode 100644
index 606c2aad31a..00000000000
--- a/main/py3-bcrypt/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=py3-bcrypt
-_pkgname=bcrypt
-pkgver=3.2.2
-pkgrel=0
-pkgdesc="Modern password hashing for your software and your servers"
-url="https://github.com/pyca/bcrypt"
-arch="all"
-license="Apache-2.0"
-depends="py3-six py3-cffi"
-makedepends="python3-dev py3-setuptools py3-cparser libffi-dev"
-checkdepends="py3-pytest"
-source="$pkgname-$pkgver.tar.gz::https://github.com/pyca/$_pkgname/archive/$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="
-2aa5cf2a1c117cb6c7c92cbd41515da332f2bec1d37c36e0732add12e61fb2e83837e3c980f7f77ffc454b3a85ecb6829981d77662218aa4e56efba07d9d7070 py3-bcrypt-3.2.2.tar.gz
-"
diff --git a/main/py3-build/APKBUILD b/main/py3-build/APKBUILD
deleted file mode 100644
index 5210a0608c1..00000000000
--- a/main/py3-build/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-build
-_pkgname=build
-pkgver=0.8.0
-pkgrel=0
-pkgdesc="Correct PEP517 package builder"
-url="https://github.com/pypa/build"
-arch="noarch"
-license="MIT"
-depends="python3 py3-packaging py3-pep517 py3-tomli"
-# Test suite is not shipped at the moment
-options="!check"
-makedepends="py3-setuptools py3-wheel"
-source="https://files.pythonhosted.org/packages/source/b/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces=py-build # Backwards compatibility
-provides=py-build=$pkgver-r$pkgrel # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="
-758b633141b5a7cd8eeaa1a5215ea659935b74197aaa6ce1ec0a4fd12d7dda41e0a5d1470811ae5a1507fed0b59aed649e5f2ac940ae76133217acb9313517a6 build-0.8.0.tar.gz
-"
diff --git a/main/py3-cairo/APKBUILD b/main/py3-cairo/APKBUILD
index 93eeda53049..ea3c52c61e6 100644
--- a/main/py3-cairo/APKBUILD
+++ b/main/py3-cairo/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=py3-cairo
-pkgver=1.21.0
+pkgver=1.26.0
pkgrel=1
pkgdesc="Python3 bindings for the cairo graphics library"
url="http://cairographics.org/pycairo/"
@@ -8,10 +8,8 @@ arch="all"
license="LGPL-2.0-or-later"
makedepends="python3-dev cairo-dev meson"
checkdepends="py3-pytest"
-subpackages="$pkgname-dev"
-source="https://github.com/pygobject/pycairo/releases/download/v$pkgver/pycairo-$pkgver.tar.gz
- fix-tests.patch
- "
+subpackages="$pkgname-pyc $pkgname-dev"
+source="https://github.com/pygobject/pycairo/releases/download/v$pkgver/pycairo-$pkgver.tar.gz"
builddir="$srcdir"/pycairo-$pkgver
replaces="py-cairo" # Backwards compatibility
@@ -19,20 +17,21 @@ provides="py-cairo=$pkgver-r$pkgrel" # Backwards compatibility
build() {
abuild-meson \
+ -Db_lto=true \
-Dtests="$(want_check && echo true || echo false)" \
. output
meson compile -C output
}
check() {
- meson test -v --no-rebuild -C output
+ meson test --print-errorlogs --no-rebuild -C output
}
package() {
DESTDIR="$pkgdir" meson install --no-rebuild -C output
+ python3 -m compileall "$pkgdir"/usr/lib
}
sha512sums="
-0de226b05d0a358f3546e4a0d5bf342f124373718d4900c891a09c1ede11e3ed1fb9bee163c00acfc215044683ddf0b29c8573b7454f9c39f957a47d63c34baf pycairo-1.21.0.tar.gz
-eb533b5877f4350e14a9b7d830373af7a50028d1b9f70d53f67def5ac2a300c7e6e82dc9a6fe108763f3de81f4ab3437fc665f38c0b72df52ff966106f843401 fix-tests.patch
+5313f0d408a6e6ce6e70ac92291be5dd8651e01fbf9411d0467061afa21849cde27db273f2a13b4c3c931183f63f75f31fc0f0d3283b8f339ba88e71eab432f1 pycairo-1.26.0.tar.gz
"
diff --git a/main/py3-cairo/fix-tests.patch b/main/py3-cairo/fix-tests.patch
deleted file mode 100644
index 5689a2ef9fa..00000000000
--- a/main/py3-cairo/fix-tests.patch
+++ /dev/null
@@ -1,33 +0,0 @@
---- a/tests/test_surface.py
-+++ b/tests/test_surface.py
-@@ -262,18 +262,6 @@
- with pytest.raises(TypeError):
- cairo.SVGSurface.version_to_string(object())
-
--
--@pytest.mark.skipif(not hasattr(cairo.SVGSurface, "get_document_unit"),
-- reason="too old cairo")
--def test_svg_surface_get_document_unit():
-- with cairo.SVGSurface(None, 10, 10) as surface:
-- assert surface.get_document_unit() == cairo.SVGUnit.PT
-- surface.set_document_unit(cairo.SVGUnit.PX)
-- assert surface.get_document_unit() == cairo.SVGUnit.PX
-- with pytest.raises(cairo.Error):
-- surface.set_document_unit(cairo.SVGUnit.PX)
--
--
- def test_svg_surface_restrict_to_version():
- surface = cairo.SVGSurface(None, 10, 10)
- surface.restrict_to_version(cairo.SVG_VERSION_1_1)
-
---- a/tests/test_typing.py
-+++ b/tests/test_typing.py
-@@ -16,7 +16,7 @@
- names = set()
- for key, value in vars(t).items():
- if key in ["XlibSurface", "XCBSurface", "Win32PrintingSurface",
-- "Win32Surface"]:
-+ "Win32Surface", "TeeSurface"]:
- continue
- if key.startswith("_"):
- continue
diff --git a/main/py3-calver/APKBUILD b/main/py3-calver/APKBUILD
new file mode 100644
index 00000000000..05b16e16d86
--- /dev/null
+++ b/main/py3-calver/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=py3-calver
+pkgver=2022.06.26
+pkgrel=3
+pkgdesc="Setuptools extension for CalVer package versions"
+url="https://github.com/di/calver"
+license="Apache-2.0"
+arch="noarch"
+depends="python3"
+makedepends="py3-gpep517 py3-installer py3-setuptools py3-wheel"
+checkdepends="py3-pretend"
+subpackages="$pkgname-pyc"
+source="https://github.com/di/calver/archive/$pkgver/py3-calver-$pkgver.tar.gz
+ version-placeholder.patch"
+builddir="$srcdir/calver-$pkgver"
+options="!check" #pytest circular dep
+
+prepare() {
+ default_prepare
+
+ # set module version
+ sed "s/@VERSION@/$pkgver/" -i setup.py
+}
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ PYTHONPATH=build/lib pytest
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+4d436cead8930cae1a71eddef9f0ecd2881f8cb632c3814dc75390b061a909e7ca969a604a5fded1c66647947856d540e2180bd3ce4bed5087b4dbc9d5edb393 py3-calver-2022.06.26.tar.gz
+32920f16e7efd7a463b1ff2fc584d348a92e33ea4ced27678fb8740c72de722da23ceab83dc9855d31e86fd7f617a92eb6ebbac351fa9596c0f2e9f401bd6ada version-placeholder.patch
+"
diff --git a/main/py3-calver/version-placeholder.patch b/main/py3-calver/version-placeholder.patch
new file mode 100644
index 00000000000..0e5d9c987d7
--- /dev/null
+++ b/main/py3-calver/version-placeholder.patch
@@ -0,0 +1,11 @@
+Prepare placeholder for setting the module version
+
+--- a/setup.py
++++ b/setup.py
+@@ -42,5 +42,5 @@ setup(
+ "use_calver = calver.integration:version",
+ ],
+ },
+- version=calver_version(True),
++ version="@VERSION@",
+ )
diff --git a/main/py3-certifi/APKBUILD b/main/py3-certifi/APKBUILD
index 47a0f5d19ea..cc1323a522d 100644
--- a/main/py3-certifi/APKBUILD
+++ b/main/py3-certifi/APKBUILD
@@ -1,35 +1,39 @@
# Contributor: Peter Bui <pnutzh4x0r@gmail.com>
# Maintainer: Dmitry Romanenko <dmitry@romanenko.in>
pkgname=py3-certifi
-pkgver=2021.10.8
-pkgrel=0
+pkgver=2024.2.2
+pkgrel=1
pkgdesc="Python3 package for providing Mozilla's CA Bundle"
-url="https://pypi.python.org/pypi/certifi"
+url="https://pypi.org/project/certifi"
arch="noarch"
license="MPL-2.0"
-depends="python3 ca-certificates-bundle"
-makedepends="py3-setuptools"
+depends="ca-certificates-bundle"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/c/certifi/certifi-$pkgver.tar.gz
use-alpine-system-certs.patch
"
builddir="$srcdir/certifi-$pkgver"
-options="!check" # no tests provided
+options="!check" # no tests
replaces="py-certifi" # Backwards compatibility
provides="py-certifi=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
# Remove bundled certificates, we use system certificates
rm -f "$pkgdir"/usr/lib/python3*/site-packages/certifi/cacert.pem
}
sha512sums="
-06dc41a471f16f6c52751854e82fb42011c9388651cff55761298b86ba437d431e6325ab039ef330f2b2c5f69f5ba43dc468e7ca3df205a8bb31468f43711fbe certifi-2021.10.8.tar.gz
-10c8859f31cf259ee29a2ba8b08130f76aa93a64c41fa1abc0202a599fa1084321b4bbbd8599a219d7c20159e5b1fd318c259d6f7e8ddc37a7ad57b9bb684abb use-alpine-system-certs.patch
+2191710dc2cfdf781df498c3ecd5f38dfc5215e2c2dc402cdcd484376dbd7fe2e442793cc856e93f6033c1fc43cb77c71d2dc785dbfe0d8cd10fd3120ee3c2fd certifi-2024.2.2.tar.gz
+1002ff4648c79ced36c27dde110415091685d0a73f346068b38f0110a3439ce01a5db94121a709bda4b91c1a6d1d760c69f7e304aec27690cfe28ca5be725796 use-alpine-system-certs.patch
"
diff --git a/main/py3-certifi/use-alpine-system-certs.patch b/main/py3-certifi/use-alpine-system-certs.patch
index 7b9b820b23e..586af64e5cc 100644
--- a/main/py3-certifi/use-alpine-system-certs.patch
+++ b/main/py3-certifi/use-alpine-system-certs.patch
@@ -8,35 +8,59 @@ this package as a dependency for other packages without worries.
This is based on the patch used by Debian
diff --git a/certifi/core.py b/certifi/core.py
-index 5d2b8cd..7e19df9 100644
+index de02898..9c0235f 100644
--- a/certifi/core.py
+++ b/certifi/core.py
-@@ -8,11 +8,12 @@ This module returns the installation location of cacert.pem or its contents.
+@@ -6,13 +6,13 @@ This module returns the installation location of cacert.pem or its contents.
"""
- import os
+ import sys
+ALPINE_CA_CERTS_PATH = '/etc/ssl/certs/ca-certificates.crt'
-+
- try:
- from importlib.resources import path as get_path, read_text
+
+ if sys.version_info >= (3, 11):
+
+ from importlib.resources import as_file, files
- _CACERT_CTX = None
- _CACERT_PATH = None
+ _CACERT_PATH = ALPINE_CA_CERTS_PATH
- def where():
+ def where() -> str:
# This is slightly terrible, but we want to delay extracting the file
-@@ -51,10 +52,8 @@ except ImportError:
+@@ -45,8 +45,7 @@ elif sys.version_info >= (3, 7):
+
+ from importlib.resources import path as get_path, read_text
+
+- _CACERT_CTX = None
+- _CACERT_PATH = None
++ _CACERT_PATH = ALPINE_CA_CERTS_PATH
+
+ def where() -> str:
+ # This is slightly terrible, but we want to delay extracting the
+@@ -71,10 +70,11 @@ elif sys.version_info >= (3, 7):
+ _CACERT_CTX = get_path("certifi", "cacert.pem")
+ _CACERT_PATH = str(_CACERT_CTX.__enter__())
+
+- return _CACERT_PATH
++ return ALPINE_CA_CERTS_PATH
+
+ def contents() -> str:
+- return read_text("certifi", "cacert.pem", encoding="ascii")
++ with open(where(), "r", encoding="ascii") as data:
++ return data.read()
+
+ else:
+ import os
+@@ -100,9 +100,7 @@ else:
# If we don't have importlib.resources, then we will just do the old logic
# of assuming we're on the filesystem and munge the path directly.
- def where():
+ def where() -> str:
- f = os.path.dirname(__file__)
-
- return os.path.join(f, "cacert.pem")
-
+ return ALPINE_CA_CERTS_PATH
-
- def contents():
-- return read_text("certifi", "cacert.pem", encoding="ascii")
-+ with open(where(), "r", encoding="ascii") as data:
-+ return data.read()
+ def contents() -> str:
+- return read_text("certifi", "cacert.pem", encoding="ascii")
++ with open(where(), "r", encoding="ascii") as data:
++ return data.read()
diff --git a/main/py3-cffi/APKBUILD b/main/py3-cffi/APKBUILD
index 269993509b8..01e4692e1b0 100644
--- a/main/py3-cffi/APKBUILD
+++ b/main/py3-cffi/APKBUILD
@@ -1,39 +1,52 @@
# Contributor:
-# Maintainer:
+# Maintainer: Peter Shkenev <santurysim@gmail.com>
pkgname=py3-cffi
_pkgname=cffi
-pkgver=1.15.1
-pkgrel=0
+pkgver=1.16.0
+pkgrel=1
pkgdesc="Foreign function interface for calling C code from Python3"
url="http://cffi.readthedocs.org/"
arch="all"
license="MIT"
depends="py3-cparser"
-makedepends="python3-dev py3-setuptools libffi-dev"
+makedepends="
+ libffi-dev
+ python3-dev
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
checkdepends="py3-pytest"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
+ fix-setuptools-deprecation.patch
+ "
builddir="$srcdir/$_pkgname-$pkgver"
replaces="py-cffi" # Backwards compatibility
provides="py-cffi=$pkgver-r$pkgrel" # Backwards compatibility
-case "$CARCH" in
- ppc64le|x86|aarch64) options="!check" # test failures
-esac
-
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- python3 setup.py build_ext -i
- python3 -m pytest --disable-pytest-warnings c/ testing/ || true
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+
+ PYTHONPATH="$(echo "$builddir"/build/lib.linux-*)" \
+ .testenv/bin/python3 -m pytest \
+ --disable-pytest-warnings testing/
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
sha512sums="
-e99cafcb029076abc29e435b490fa0573ee2856f4051b7ca8a5b38cd125d56dd9dae8b189f59ceb3d728a675da8ee83239e09e19f8b0feeddea4b186ab5173a5 cffi-1.15.1.tar.gz
+fd2588115092202aa9289c9d4e0a0b3e264b5e9ec1dc192950f31aeb412fd9f9d4e5c96a3f9c6762987b58ccc1e229f2012ddda89211797104df672d8ed51152 cffi-1.16.0.tar.gz
+cf6fd617176abb034d2f781712ffecff440202b6d21868a02857e9a47748c76b0cf5712907d45fc05b745a18e9b5dd603b32771912d3bd2bd594421a7f607297 fix-setuptools-deprecation.patch
"
diff --git a/main/py3-cffi/fix-setuptools-deprecation.patch b/main/py3-cffi/fix-setuptools-deprecation.patch
new file mode 100644
index 00000000000..b52590d29d5
--- /dev/null
+++ b/main/py3-cffi/fix-setuptools-deprecation.patch
@@ -0,0 +1,8 @@
+--- a/setup.cfg
++++ b/setup.cfg
+@@ -1,5 +1,4 @@
+ [metadata]
+-license_file = LICENSE
+ license_files = LICENSE
+ project_urls =
+ Documentation = http://cffi.readthedocs.org/
diff --git a/main/py3-cffi/musl-compat.patch b/main/py3-cffi/musl-compat.patch
deleted file mode 100644
index e69de29bb2d..00000000000
--- a/main/py3-cffi/musl-compat.patch
+++ /dev/null
diff --git a/main/py3-chardet/APKBUILD b/main/py3-chardet/APKBUILD
index 0ec0a38c2a0..f2d19947898 100644
--- a/main/py3-chardet/APKBUILD
+++ b/main/py3-chardet/APKBUILD
@@ -2,31 +2,39 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
_pkgname=chardet
pkgname=py3-$_pkgname
-pkgver=4.0.0
-pkgrel=3
+pkgver=5.2.0
+pkgrel=1
pkgdesc="The Universal Character Encoding Detector"
url="https://github.com/chardet/chardet/"
arch="noarch"
license="LGPL-2.1-or-later"
depends="python3"
-makedepends="py3-setuptools"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
checkdepends="py3-pytest"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/chardet/chardet/archive/refs/tags/$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
replaces="py-chardet" # Backwards compatibility
provides="py-chardet=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- python3 -m pytest
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="ebd7f420e1094445270db993f6373ffe7370419e002b0bb13299dc6c9b0f7c4e77b0f44f871fba6371e6869e7c86728514367db377e3137487a3acf50cb81e96 chardet-4.0.0.tar.gz"
+sha512sums="
+3c6614882b251e53322eb75fdd01c3d7664c5f611bbfc1480fa10d57f02906b4be42a8b7ff4d3bdc00465340a2ca46b31f1f0d25f64d4f69df0ac0876e71e87f py3-chardet-5.2.0.tar.gz
+"
diff --git a/main/py3-charset-normalizer/APKBUILD b/main/py3-charset-normalizer/APKBUILD
index 7252199ca89..34814ed43f7 100644
--- a/main/py3-charset-normalizer/APKBUILD
+++ b/main/py3-charset-normalizer/APKBUILD
@@ -1,31 +1,43 @@
# Contributor: Bart Ribbers <bribbers@disroot.org>
# Maintainer: Andy Postnikov <apostnikov@gmail.com>
pkgname=py3-charset-normalizer
-pkgver=2.0.10
-pkgrel=0
+pkgver=3.3.2
+pkgrel=1
pkgdesc="offers you an alternative to Universal Charset Encoding Detector, also known as Chardet"
url="https://github.com/ousret/charset_normalizer"
arch="noarch"
license="MIT"
depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest-cov"
-options="!check" # py3-pytest-cov is not in main repository
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/c/charset-normalizer/charset-normalizer-$pkgver.tar.gz"
builddir="$srcdir/charset-normalizer-$pkgver"
+prepare() {
+ default_prepare
+
+ # community/py3-pytest-cov not available
+ sed -i '/cov-report/d' setup.cfg
+}
+
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- pytest
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
sha512sums="
-ee4934978a7939d7d4575dc0018b4c92f1c43fff45e3976907c21937b0a3db03d2d19d3e13431f59b5dfb86b14fac9665767433577c1bd3d4eca1f3c88d74ab5 charset-normalizer-2.0.10.tar.gz
+227dd9496e080310b3262fe0ffc32b5ebed16e5b3a294877555c0b04dee0cb073a2a0a4fa8dbad3029703ffaf1857acf24d9b87ca74d75fa2f0ba8fd3413e9c4 charset-normalizer-3.3.2.tar.gz
"
diff --git a/main/py3-coverage/APKBUILD b/main/py3-coverage/APKBUILD
index ea2d367955e..b422281517a 100644
--- a/main/py3-coverage/APKBUILD
+++ b/main/py3-coverage/APKBUILD
@@ -1,14 +1,16 @@
# Maintainer: Valery Kartel <valery.kartel@gmail.com>
# Contributor: Valery Kartel <valery.kartel@gmail.com>
pkgname=py3-coverage
-pkgver=5.5
-pkgrel=1
+pkgver=6.5.0
+pkgrel=6
pkgdesc="Code coverage measurement for Python"
-options="!check" # Requires unpackaged 'flaky'
-url="https://pypi.python.org/pypi/coverage"
+options="!check" # Requires 'xdist'
+url="https://pypi.org/project/coverage"
arch="all"
license="Apache-2.0"
-makedepends="python3-dev py3-setuptools"
+makedepends="python3-dev py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/c/coverage/coverage-$pkgver.tar.gz"
builddir="$srcdir/coverage-$pkgver"
@@ -16,16 +18,19 @@ replaces="py-coverage" # Backwards compatibility
provides="py-coverage=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
}
check() {
- python3 setup.py test
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
}
+
sha512sums="
-fb78b4920a2f18afb9545a6f13910f491708443965881954fff6ee8553ab3d6bd898f7a95df1091435e8d5627ac850b880a6233e716a6acb934ecc195ec2ee52 coverage-5.5.tar.gz
+4f2ec0bf69a83471a2b5a73b6a2212372ee6e32ccc4c72e0d33eef915939152f3213ab60e1a22ce2b72791e706c2223b0c81c87b95bbfadd1e828fa1a9fff120 coverage-6.5.0.tar.gz
"
diff --git a/main/py3-cparser/APKBUILD b/main/py3-cparser/APKBUILD
index 7648c4152ba..2e3525542f3 100644
--- a/main/py3-cparser/APKBUILD
+++ b/main/py3-cparser/APKBUILD
@@ -1,15 +1,17 @@
# Contributor:
-# Maintainer:
+# Maintainer: Peter Shkenev <santurysim@gmail.com>
pkgname=py3-cparser
_pkgname=pycparser
-pkgver=2.20
-pkgrel=2
+pkgver=2.22
+pkgrel=1
pkgdesc="C parser written in Python3"
url="https://github.com/eliben/pycparser"
arch="noarch"
license="BSD-3-Clause"
depends="python3"
-makedepends="py3-setuptools"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
@@ -17,15 +19,22 @@ replaces="py-cparser" # Backwards compatibility
provides="py-cparser=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- python3 tests/all_tests.py
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="ff0853c9f981b43b4f2e879350715c07b02cf9dab223d4980d8fe0a3138c98041b5f848a9355ae4f1cb45e7f137c03a88843008e18d77af9250e0d9c55f5ca1b pycparser-2.20.tar.gz"
+sha512sums="
+c9a81c78d87162f71281a32a076b279f4f7f2e17253fe14c89c6db5f9b3554a6563ff700c385549a8b51ef8832f99f7bb4ac07f22754c7c475dd91feeb0cf87f pycparser-2.22.tar.gz
+"
diff --git a/main/py3-dbus/APKBUILD b/main/py3-dbus/APKBUILD
index 5c2a69d5dfb..6a744492b60 100644
--- a/main/py3-dbus/APKBUILD
+++ b/main/py3-dbus/APKBUILD
@@ -2,45 +2,39 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=py3-dbus
_pkgname=dbus-python
-pkgver=1.2.18
-pkgrel=1
+pkgver=1.3.2
+pkgrel=5
pkgdesc="Python3 bindings for DBUS"
-url="http://www.freedesktop.org/wiki/Software/DBusBindings"
+url="https://www.freedesktop.org/wiki/Software/DBusBindings"
arch="all"
license="MIT"
depends="python3"
depends_dev="py3-dbus"
-makedepends="dbus-glib-dev python3-dev py3-sphinx py3-sphinx_rtd_theme"
+makedepends="dbus-glib-dev python3-dev meson"
checkdepends="bash dbus py3-gobject3 py3-tappy"
-subpackages="$pkgname-dev $pkgname-doc"
+subpackages="$pkgname-dev"
source="https://dbus.freedesktop.org/releases/dbus-python/$_pkgname-$pkgver.tar.gz"
-
builddir="$srcdir/$_pkgname-$pkgver"
-replaces="py-dbus" # Backwards compatibility
-provides="py-dbus=$pkgver-r$pkgrel" # Backwards compatibility
-
-
build() {
- python3 setup.py build
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --enable-documentation \
- PYTHON_VERSION=3
- make
+ abuild-meson \
+ -Dtests="$(want_check && echo true || echo false)" \
+ . output
+ meson compile -C output
}
check() {
- make check
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
- python3 setup.py install --skip-build --prefix=/usr --root="$pkgdir"
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
+
+ local pyminor="$(python3 -c 'import sys; print("%i" % sys.version_info.minor)')"
+
+ mv dbus_python.egg-info/ "$pkgdir"/usr/lib/python3.$pyminor/site-packages/dbus_python-$pkgver-py3.$pyminor.egg-info/
}
sha512sums="
-72f422c59637392bd78b741b66dff2afadcc706452c3e82fdc14b1dc052a0c5cb8a85e2758d18c5cbdc08004419a0b3c16b67b99688d96307084403e72585900 dbus-python-1.2.18.tar.gz
+9b2885c9c2914142c72487f766b1cdd28a255d9f5a87eaf8f4eb420c6e096a77f210ac5a4fac9843c6531974872880cc28b7e45940e198856e984dcc0715519a dbus-python-1.3.2.tar.gz
"
diff --git a/main/py3-distlib/10-remove-funky-test.patch b/main/py3-distlib/10-remove-funky-test.patch
new file mode 100644
index 00000000000..34b3a098dd8
--- /dev/null
+++ b/main/py3-distlib/10-remove-funky-test.patch
@@ -0,0 +1,11 @@
+--- distlib-0.3.7.orig/tests/test_util.py
++++ distlib-0.3.7/tests/test_util.py
+@@ -717,8 +717,6 @@
+ os.makedirs(path)
+ path = os.path.join(path, 'test')
+ self.assertTrue(self.fileop.is_writable(path))
+- if os.name == 'posix':
+- self.assertFalse(self.fileop.is_writable('/etc'))
+
+ def test_byte_compile(self):
+ path = os.path.join(self.workdir, 'hello.py')
diff --git a/main/py3-distlib/APKBUILD b/main/py3-distlib/APKBUILD
index 8ac8fcd0b6d..69fdf1238cc 100644
--- a/main/py3-distlib/APKBUILD
+++ b/main/py3-distlib/APKBUILD
@@ -1,35 +1,38 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
+# Maintainer: Peter Shkenev <santurysim@gmail.com>
pkgname=py3-distlib
-pkgver=0.3.4
+pkgver=0.3.8
pkgrel=1
pkgdesc="Distribution utilities"
-options="!check" # 1 test in tests/test_locator.py fails
-url="https://bitbucket.org/pypa/distlib"
+url="https://github.com/pypa/distlib"
arch="noarch"
license="PSF-2.0"
depends="python3"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/d/distlib/distlib-$pkgver.zip"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/pypa/distlib/archive/refs/tags/$pkgver.tar.gz
+ 10-remove-funky-test.patch
+ "
builddir="$srcdir/distlib-$pkgver"
-prepare() {
- default_prepare
- rm distlib/*.exe
-}
-
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- PYTHONHASHSEED=0 python3 setup.py test
+ PYTHONHASHSEED=0 python3 -m unittest discover tests
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/distlib*.whl
+
+ rm "$pkgdir"/usr/lib/python3*/site-packages/distlib/*.exe
}
sha512sums="
-87b5c151517a8043a4d714b561cc0758bd3209b71baf9dcd573a853bd036c54ac2359809b5e2d65cdeee3488757fdc63a2b1abb15e7e189bd601cde1fc85648c distlib-0.3.4.zip
+98dc6459f54783598aad8ee3b8d80c0092a5d08d4272ad212faeef5e30cf9029b718231681f39d26e48588bb676bae7919f1431ddb51eb3917725f99a5c90457 py3-distlib-0.3.8.tar.gz
+c77d21ec087abe6dbd80bcfc20f3b26d881ff7f42e2ba37185fe6315934afda5be23eed7cc522ecf01d696ba031ed83a2a43e87cd7be6ee7a7963eaa95afebe7 10-remove-funky-test.patch
"
diff --git a/main/py3-dnspython/0001-ignore-setuptools-scm.patch b/main/py3-dnspython/0001-ignore-setuptools-scm.patch
deleted file mode 100644
index f51527d7d98..00000000000
--- a/main/py3-dnspython/0001-ignore-setuptools-scm.patch
+++ /dev/null
@@ -1,10 +0,0 @@
-diff --git a/setup.cfg b/setup.cfg
---- a/setup.cfg
-+++ b/setup.cfg
-@@ -43,5 +43,5 @@
- python_requires = >=3.6
- test_suite = tests
--setup_requires = setuptools>=44; wheel; setuptools_scm[toml]>=3.4.3
-+setup_requires = setuptools>=44; wheel
-
- [options.extras_require]
diff --git a/main/py3-dnspython/APKBUILD b/main/py3-dnspython/APKBUILD
index 2dfc32b81db..1a909923733 100644
--- a/main/py3-dnspython/APKBUILD
+++ b/main/py3-dnspython/APKBUILD
@@ -2,38 +2,42 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=py3-dnspython
_pyname=dnspython
-pkgver=2.2.1
-pkgrel=0
-pkgdesc="A DNS toolkit for Python3"
+pkgver=2.6.1
+pkgrel=1
+pkgdesc="DNS toolkit for Python3"
url="https://www.dnspython.org/"
arch="all"
license="ISC"
-makedepends="py3-setuptools py3-wheel python3-dev cython"
+makedepends="
+ cython
+ py3-gpep517
+ py3-hatchling
+ py3-wheel
+ python3-dev
+ "
checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
source="https://github.com/rthalley/dnspython/archive/v$pkgver/dnspython-$pkgver.tar.gz
- 0001-ignore-setuptools-scm.patch"
+ pyproject-set-license-to-table.patch
+ "
builddir="$srcdir/$_pyname-$pkgver"
options="!check" # network tests are failing on CI
replaces="py-dnspython" # Backwards compatibility
provides="py-dnspython=$pkgver-r$pkgrel" # Backwards compatibility
-prepare() {
- default_prepare
-
- # set version in setup.cfg
- sed -i "3 a version = $pkgver" setup.cfg
-}
-
build() {
- python3 setup.py build --cython-compile
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
package() {
- python3 setup.py install --cython-compile --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
sha512sums="
-ec545468f604d6131f07259ca154c4f71d445d12c336ac1da0d2f025d6478ada76320a7235119312fed85da071ef309d2531e541d3c2340a50deaf3f4dd7b4eb dnspython-2.2.1.tar.gz
-4177952fbce925bd123260738b9768343e11eaaf842638287d357c36bbb11ffc602163a2e10d90752dcc807a0e5d8e5d847dae48a9567da897d38fe81e117584 0001-ignore-setuptools-scm.patch
+77e9c69ac70e9e31a11188b968d28b8f2890b053b2cce0e608eefad7fd2c2b0f30c074222b2e5e85c0b4b8705f2e45acfa8b016a7808cc421df1d77f2561d978 dnspython-2.6.1.tar.gz
+38830a1f23146d3f2f38dd0030334e630142514c913be388af29c680d023e13fbce0944cef6744f43ce0e9680e1e3850f530de26ed3f9f170f84876707c3a8be pyproject-set-license-to-table.patch
"
diff --git a/main/py3-dnspython/pyproject-set-license-to-table.patch b/main/py3-dnspython/pyproject-set-license-to-table.patch
new file mode 100644
index 00000000000..5070563be03
--- /dev/null
+++ b/main/py3-dnspython/pyproject-set-license-to-table.patch
@@ -0,0 +1,23 @@
+From a542004a4272e38403c7d0e2ce0b7329fc6df669 Mon Sep 17 00:00:00 2001
+From: Bob Halley <halley@dnspython.org>
+Date: Tue, 5 Mar 2024 05:58:28 -0800
+Subject: [PATCH] Set license to a TOML table to avoid PEP 639 metadata for
+ now.
+
+---
+ pyproject.toml | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/pyproject.toml b/pyproject.toml
+index 3108d587..6f60295d 100644
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -6,7 +6,7 @@ build-backend = "hatchling.build"
+ name = "dnspython"
+ description = "DNS toolkit"
+ authors = [{ name = "Bob Halley", email = "halley@dnspython.org" }]
+-license = "ISC"
++license = { text = "ISC" }
+ classifiers = [
+ "Development Status :: 5 - Production/Stable",
+ "Intended Audience :: Developers",
diff --git a/main/py3-docutils/APKBUILD b/main/py3-docutils/APKBUILD
index ee07666ea7e..fe9d2dca83e 100644
--- a/main/py3-docutils/APKBUILD
+++ b/main/py3-docutils/APKBUILD
@@ -1,15 +1,16 @@
# Contributor: Matt Smith <mcs@darkregion.net>
# Maintainer: Matt Smith <mcs@darkregion.net>
pkgname=py3-docutils
-pkgver=0.16
-pkgrel=4
+pkgver=0.20.1
+pkgrel=2
pkgdesc="Documentation Utilities for Python3"
-url="https://pypi.python.org/pypi/docutils"
+url="https://pypi.org/project/docutils"
arch="noarch"
license="BSD-2-Clause AND GPL-3.0-or-later AND Python-2.0"
depends="python3"
-makedepends="py3-setuptools"
-subpackages="$pkgname-doc::noarch"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/d/docutils/docutils-$pkgver.tar.gz"
builddir="$srcdir/docutils-$pkgver"
@@ -17,43 +18,26 @@ replaces="py-docutils" # Backwards compatibility
provides="py-docutils=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
}
check() {
- python3 test/alltests.py
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
# Remove .py extension and add version suffix to executable files.
local path; for path in "$pkgdir"/usr/bin/*.py; do
- mv "$path" "${path/.py/-3}"
+ mv "$path" "${path/.py/}"
+ ln -sfv "$(basename "${path/.py/}")" "$path"
+ ln -sfv "$(basename "${path/.py/}")" "${path/.py/}-3"
done
-
- cd "$pkgdir"/usr/bin
- local bin; for bin in *-3; do
- ln -s "$bin" "$pkgdir"/usr/bin/"${bin/-3/}"
- done
-}
-
-doc() {
- replaces=""
- provides=""
- pkgdesc="$pkgdesc (documentation)"
- local docdir="$subpkgdir/usr/share/doc/$pkgname"
- local licdir="$subpkgdir/usr/share/licenses/$pkgname"
-
- cd "$builddir"
-
- mkdir -p "$docdir"
- cp -R docs/* "$docdir"/
- cp ./*.txt "$docdir"/
-
- mkdir -p "$licdir"
- rm -f licenses/docutils.conf
- cp licenses/* "$licdir"/
}
-sha512sums="4e0c6662924cac6b8f28bb77a4f50eafd637c1083990a23dbd905d8a05362a18dae96e63408ed43b595b693ca755c7961d1282129d3215ed3774af0dddcc0466 docutils-0.16.tar.gz"
+sha512sums="
+a0ddca315d03677003036d6a8052ac96fbd3fcc4508564938ea684d79bedb4d322d83449c7b26e55b19b0aadd6e46ca9ac409bb16279a20f06c70e9c15ef5eb0 docutils-0.20.1.tar.gz
+"
diff --git a/main/py3-editables/APKBUILD b/main/py3-editables/APKBUILD
new file mode 100644
index 00000000000..9dc7f3dc502
--- /dev/null
+++ b/main/py3-editables/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Duncan Bellamy <dunk@denkimushi.com>
+# Maintainer: Duncan Bellamy <dunk@denkimushi.com>
+pkgname=py3-editables
+pkgver=0.5
+pkgrel=2
+pkgdesc="library for creating editable wheels"
+url="https://github.com/pfmoore/editables"
+arch="noarch"
+license="MIT"
+options="!check" #pytest circular dep
+depends="python3"
+makedepends="py3-gpep517 py3-installer py3-flit-core py3-wheel"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/e/editables/editables-$pkgver.tar.gz"
+builddir="$srcdir/editables-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+eba54a4624d4df6b2aaf33a46da1dfd4b218da4f89c5832401b074eae089bc59e1eae9e16291374c9f0406923e4c9d02682dabbc91ad263203cb897ba7dc796f editables-0.5.tar.gz
+"
diff --git a/main/py3-elementpath/APKBUILD b/main/py3-elementpath/APKBUILD
index 4f12fddb2ed..bdbde113cb4 100644
--- a/main/py3-elementpath/APKBUILD
+++ b/main/py3-elementpath/APKBUILD
@@ -1,32 +1,44 @@
# Contributor: Aiden Grossman <agrossman154@yahoo.com>
# Maintainer: Aiden Grossman <agrossman154@yahoo.com>
pkgname=py3-elementpath
-pkgver=2.5.3
+pkgver=4.4.0
pkgrel=0
pkgdesc="XPath 1.0/2.0 parsers and selectors for ElementTree and lxml"
url="https://github.com/sissaschool/elementpath"
arch="noarch"
license="MIT"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest py3-lxml"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/sissaschool/elementpath/archive/refs/tags/v$pkgver.tar.gz"
builddir="$srcdir/elementpath-$pkgver/"
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- # disabled tests fails on locale differences
- pytest \
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ # first: AssertionError: ElementPathError not raised
+ # rest: AssertionError: First sequence is not a list: -1
+ .testenv/bin/python3 -m pytest \
+ --deselect tests/test_collations.py::CollationsTest::test_context_activation \
--deselect tests/test_xpath2_functions.py::XPath2FunctionsTest::test_compare_function \
- --deselect tests/test_xpath30.py::XPath30FunctionsTest::test_compare_function
+ --deselect tests/test_xpath2_functions.py::LxmlXPath2FunctionsTest::test_compare_function \
+ --deselect tests/test_xpath30.py::XPath30FunctionsTest::test_compare_function \
+ --deselect tests/test_xpath30.py::LxmlXPath30FunctionsTest::test_compare_function \
+ --deselect tests/test_xpath31.py::XPath31FunctionsTest::test_compare_function \
+ --deselect tests/test_xpath31.py::LxmlXPath31FunctionsTest::test_compare_function
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
sha512sums="
-da561446ac3a059c60480084648ebc1190d0ec1dc495dfa128dc2598d5762ae1067f39be36fc6bca466e6785aae80edf6dc1415a2885bfbb2d54b97ca6611572 py3-elementpath-2.5.3.tar.gz
+8171cb004dba68d84dd26a9ac5e8feeb9cc87eb518cc232b3128dadd7ad92840903fe2d02eb4428e4e4df7590bf6c68bdae180ad678bccb969686875b0a84ae1 py3-elementpath-4.4.0.tar.gz
"
diff --git a/main/py3-elftools/APKBUILD b/main/py3-elftools/APKBUILD
index f1d6c1b8f80..021cbe13b62 100644
--- a/main/py3-elftools/APKBUILD
+++ b/main/py3-elftools/APKBUILD
@@ -1,33 +1,39 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer:
+# Maintainer: Peter Shkenev <santurysim@gmail.com>
pkgname=py3-elftools
_pkgname=py${pkgname##py3-}
-pkgver=0.27
-pkgrel=3
+pkgver=0.30
+pkgrel=1
pkgdesc="Parsing ELF and DWARF in Python"
url="https://github.com/eliben/pyelftools"
arch="noarch"
license="Unlicense"
depends="python3"
-makedepends="py3-setuptools"
-subpackages="$pkgname-doc"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc $pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/eliben/$_pkgname/archive/v$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- python3 test/run_all_unittests.py
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 test/run_all_unittests.py
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
mkdir -p "$pkgdir"/usr/share/doc/$pkgname
install -m644 README.rst CHANGES \
"$pkgdir"/usr/share/doc/$pkgname/doc
}
-sha512sums="bb0a00e5500016e3d4f64be0a728e190f84b11a805f78d668b5a74716a30400e6794946f198ef4a3f3b8f64a63deb1b5a96180b09e56b7357b988b28e25fad0a py3-elftools-0.27.tar.gz"
+sha512sums="
+5bd4c797f90307e351d541b8de8f76124c66e497b68b811f7012e1271c902beb6ab530a424b338777d12277d44f9b5f89f049e05d9fc2ec36a90b6fa16f1c1a4 py3-elftools-0.30.tar.gz
+"
diff --git a/main/py3-exceptiongroup/APKBUILD b/main/py3-exceptiongroup/APKBUILD
deleted file mode 100644
index 4bb96e0fa4a..00000000000
--- a/main/py3-exceptiongroup/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Contributor: Michał Polański <michal@polanski.me>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=py3-exceptiongroup
-pkgver=1.0.0_rc8
-_pkgver=${pkgver/_/}
-pkgrel=0
-pkgdesc="Backport of PEP 654 (exception groups)"
-url="https://github.com/agronholm/exceptiongroup"
-license="MIT"
-arch="noarch"
-depends="python3"
-makedepends="py3-build py3-flit-core py3-installer py3-wheel"
-checkdepends="py3-pytest"
-source="https://github.com/agronholm/exceptiongroup/archive/$_pkgver/py3-exceptiongroup-$pkgver.tar.gz
- use-flit-core.patch
- "
-builddir="$srcdir/exceptiongroup-$_pkgver"
-
-prepare() {
- default_prepare
-
- sed -i "s/%VERSION%/$_pkgver/" src/exceptiongroup/__init__.py
-}
-
-build() {
- python3 -m build --no-isolation --wheel
-}
-
-check() {
- PYTHONPATH=src pytest
-}
-
-package() {
- python3 -m installer -d "$pkgdir" \
- dist/exceptiongroup-$_pkgver-py3-none-any.whl
-}
-
-sha512sums="
-f7f1700403f345755a1e32c77eb43744b366b1f55446e1898dd960988d23396ad8334bef072ecc7ec5ac7075300f0f3e8e9a0d454d9dd80677ae55b4166fc6e4 py3-exceptiongroup-1.0.0_rc8.tar.gz
-0b52b660790138e33d0641910197b2257f859ac0f24f5f99e717362f5266793a97703afad3dc51673bc021c31dae21342857c9d10d713a028be4870c12761869 use-flit-core.patch
-"
diff --git a/main/py3-exceptiongroup/use-flit-core.patch b/main/py3-exceptiongroup/use-flit-core.patch
deleted file mode 100644
index ede931dc5f1..00000000000
--- a/main/py3-exceptiongroup/use-flit-core.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-Use flit_core directly instead of a thin wrapper
-and get rid of setuptools_scm.
-
---- a/pyproject.toml
-+++ b/pyproject.toml
-@@ -1,6 +1,6 @@
- [build-system]
--requires = ["flit_scm"]
--build-backend = "flit_scm:buildapi"
-+requires = ["flit_core >=3.4,<4"]
-+build-backend = "flit_core.buildapi"
-
- [project]
- name = "exceptiongroup"
-@@ -36,11 +36,6 @@ exclude = [
- ".pre-commit-config.yaml"
- ]
-
--[tool.setuptools_scm]
--version_scheme = "post-release"
--local_scheme = "dirty-tag"
--write_to = "src/exceptiongroup/_version.py"
--
- [tool.black]
- target-version = ['py37']
-
---- a/src/exceptiongroup/__init__.py
-+++ b/src/exceptiongroup/__init__.py
-@@ -4,7 +4,8 @@ import os
- import sys
-
- from ._catch import catch
--from ._version import version as __version__ # noqa: F401
-+
-+__version__ = "%VERSION%"
-
- if sys.version_info < (3, 11):
- from ._exceptions import BaseExceptionGroup, ExceptionGroup
diff --git a/main/py3-extras/APKBUILD b/main/py3-extras/APKBUILD
index e753274654d..5056db7f198 100644
--- a/main/py3-extras/APKBUILD
+++ b/main/py3-extras/APKBUILD
@@ -3,14 +3,15 @@
pkgname=py3-extras
_pkgname=extras
pkgver=1.0.0
-pkgrel=5
+pkgrel=10
pkgdesc="Useful extra bits for Python - things that shold be in the standard library"
-url="https://pypi.python.org/pypi/extras/"
+url="https://pypi.org/project/extras/"
arch="noarch"
license="MIT"
depends="python3"
-makedepends="py3-setuptools"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
checkdepends="py3-testtools"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
replaces="py-extras" # Backwards Compatibility
@@ -18,15 +19,22 @@ provides="py-extras=$pkgver-r$pkgrel" # Backwards Compatibility
options="!check" # py3-testtools depends on this
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- python3 setup.py test
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m unittest -v
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="510c796628f28db90bb96c7c9ba5fc9b2b950d2968e219efe67f3899bbe7ef68fe5de1494f8fd640f13a1ccd329e7dac9cd38aa965ab1e07c4cd287c04da50fb extras-1.0.0.tar.gz"
+sha512sums="
+510c796628f28db90bb96c7c9ba5fc9b2b950d2968e219efe67f3899bbe7ef68fe5de1494f8fd640f13a1ccd329e7dac9cd38aa965ab1e07c4cd287c04da50fb extras-1.0.0.tar.gz
+"
diff --git a/main/py3-filelock/APKBUILD b/main/py3-filelock/APKBUILD
deleted file mode 100644
index aa54e47128c..00000000000
--- a/main/py3-filelock/APKBUILD
+++ /dev/null
@@ -1,34 +0,0 @@
-# Contributor: Dmitry Romanenko <dmitry@romanenko.in>
-# Maintainer: Dmitry Romanenko <dmitry@romanenko.in>
-pkgname=py3-filelock
-_pkgname=filelock
-pkgver=3.4.2
-pkgrel=0
-pkgdesc="A platform independent file lock for Python3"
-url="https://github.com/benediktschmitt/py-filelock"
-arch="noarch"
-license="Unlicense"
-depends="python3"
-checkdepends="py3-pytest py3-pytest-timeout"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/f/$_pkgname/$_pkgname-$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-replaces="py-filelock" # Backwards compatibility
-provides="py-filelock=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHONPATH=$PWD/src python3 -m pytest -xvv ./tests/test_filelock.py
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="
-0244058588029ae739a71d8cdc9f7f5003af2c829e74c67a144fcbba847153afe6d0f4edee11f6111dd47a0d6826e3aebabd95e9d075457bf50059ca06e0cce4 filelock-3.4.2.tar.gz
-"
diff --git a/main/py3-fixtures/APKBUILD b/main/py3-fixtures/APKBUILD
index 4e3ece91b81..a3a11dc4080 100644
--- a/main/py3-fixtures/APKBUILD
+++ b/main/py3-fixtures/APKBUILD
@@ -1,18 +1,26 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=py3-fixtures
-pkgver=4.0.0
-pkgrel=0
+pkgver=4.1.0
+pkgrel=2
pkgdesc="Fixtures, reusable state for writing clean tests and more."
-url="https://pypi.python.org/pypi/fixtures/"
+url="https://pypi.org/project/fixtures/"
arch="noarch"
license="MIT"
depends="
py3-pbr
python3
"
-makedepends="py3-setuptools"
-checkdepends="py3-testtools py3-mock"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+checkdepends="
+ py3-mock
+ py3-testtools
+ "
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/f/fixtures/fixtures-$pkgver.tar.gz"
builddir="$srcdir/fixtures-$pkgver"
options="!check" # py3-testtools depends on this
@@ -21,16 +29,22 @@ replaces="py-fixtures" # Backwards compatibility
provides="py-fixtures=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- python3 -m testtools.run
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m testtools.run
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
+
sha512sums="
-dcd67c3df9efc16f2a21b6d2917a5b7e45ecc09d1ddbd1de98a5b4b717ea7da0fc82e1054f494255b419a792e841145110c77a1772444f4019fc02e9917c5b80 fixtures-4.0.0.tar.gz
+6897449fdefd07abe7714186b366fdf4505283f6747f8fa4d17044bc45da58eb36e69d89381527ccecb98e6c62c58bc6d4f558af41cbfc87b0221ae60ba71ff6 fixtures-4.1.0.tar.gz
"
diff --git a/main/py3-fixtures/python-3.9-support.patch b/main/py3-fixtures/python-3.9-support.patch
deleted file mode 100644
index 1abff3f7fee..00000000000
--- a/main/py3-fixtures/python-3.9-support.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-From fe830674abd4926d96d38f9992f3e31b00cd891a Mon Sep 17 00:00:00 2001
-From: Stephen Finucane <stephenfin@redhat.com>
-Date: Thu, 25 Feb 2021 11:37:42 +0000
-Subject: [PATCH 2/4] Fix tests on Python 3.9
-
-I'm not entirely sure this is correct, but it's the only thing I can
-find related to changes in classmethod in Python 3.9.
-
-Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
----
- fixtures/_fixtures/monkeypatch.py | 9 +++-
- fixtures/tests/_fixtures/test_monkeypatch.py | 48 ++++++++++++++------
- 2 files changed, 42 insertions(+), 15 deletions(-)
-
-diff --git a/fixtures/_fixtures/monkeypatch.py b/fixtures/_fixtures/monkeypatch.py
-index b5e8564..710a79c 100644
---- a/fixtures/_fixtures/monkeypatch.py
-+++ b/fixtures/_fixtures/monkeypatch.py
-@@ -83,9 +83,11 @@ def _coerce_values(obj, name, new_value, sentinel):
- # bound state rather than having it bound to the new object
- # it has been patched onto.
- captured_method = new_value
-+
- @functools.wraps(old_value)
- def avoid_get(*args, **kwargs):
- return captured_method(*args, **kwargs)
-+
- new_value = avoid_get
-
- return (new_value, old_value)
-@@ -138,18 +140,21 @@ def _setUp(self):
- __import__(location, {}, {})
- except ImportError:
- pass
-+
- components = location.split('.')
- current = __import__(components[0], {}, {})
- for component in components[1:]:
- current = getattr(current, component)
- sentinel = object()
-- new_value, old_value = _coerce_values(current, attribute,
-- self.new_value, sentinel)
-+ new_value, old_value = _coerce_values(
-+ current, attribute, self.new_value, sentinel)
-+
- if self.new_value is self.delete:
- if old_value is not sentinel:
- delattr(current, attribute)
- else:
- setattr(current, attribute, new_value)
-+
- if old_value is sentinel:
- self.addCleanup(self._safe_delete, current, attribute)
- else:
-diff --git a/fixtures/tests/_fixtures/test_monkeypatch.py b/fixtures/tests/_fixtures/test_monkeypatch.py
-index 6f11fab..746f6dd 100644
---- a/fixtures/tests/_fixtures/test_monkeypatch.py
-+++ b/fixtures/tests/_fixtures/test_monkeypatch.py
-@@ -14,6 +14,7 @@
- # limitations under that license.
-
- import functools
-+import sys
-
- import testtools
- from testtools.matchers import Is
-@@ -32,7 +33,7 @@ def foo_cls(cls): pass
-
- class D(object):
- def bar(self): pass
-- def bar_two_args(self, arg):
-+ def bar_two_args(self, arg=None):
- return (self, arg)
- @classmethod
- def bar_cls(cls):
-@@ -188,14 +189,27 @@ def test_patch_classmethod_with_classmethod(self):
- 'fixtures.tests._fixtures.test_monkeypatch.C.foo_cls',
- D.bar_cls_args)
- with fixture:
-- cls, target_class = C.foo_cls()
-- self.expectThat(cls, Is(D))
-- self.expectThat(target_class, Is(C))
-- cls, target_class = C().foo_cls()
-- self.expectThat(cls, Is(D))
-- self.expectThat(target_class, Is(C))
-- self._check_restored_static_or_class_method(oldmethod, oldmethod_inst,
-- C, 'foo_cls')
-+ # Python 3.9 changes the behavior of the classmethod decorator so
-+ # that it now honours the descriptor binding protocol [1].
-+ # This means we're now going to call the monkeypatched classmethod
-+ # the way we would have if it hadn't been monkeypatched: simply
-+ # with the class
-+ #
-+ # https://bugs.python.org/issue19072
-+ if sys.version_info >= (3, 9):
-+ cls, = C.foo_cls()
-+ self.expectThat(cls, Is(D))
-+ cls, = C().foo_cls()
-+ self.expectThat(cls, Is(D))
-+ else:
-+ cls, target_class = C.foo_cls()
-+ self.expectThat(cls, Is(D))
-+ self.expectThat(target_class, Is(C))
-+ cls, target_class = C().foo_cls()
-+ self.expectThat(cls, Is(D))
-+ self.expectThat(target_class, Is(C))
-+ self._check_restored_static_or_class_method(
-+ oldmethod, oldmethod_inst, C, 'foo_cls')
-
- def test_patch_classmethod_with_function(self):
- oldmethod = C.foo_cls
-@@ -222,12 +236,20 @@ def test_patch_classmethod_with_boundmethod(self):
- with fixture:
- slf, cls = C.foo_cls()
- self.expectThat(slf, Is(d))
-- self.expectThat(cls, Is(C))
-+ # See note in test_patch_classmethod_with_classmethod on changes in
-+ # Python 3.9
-+ if sys.version_info >= (3, 9):
-+ self.expectThat(cls, Is(None))
-+ else:
-+ self.expectThat(cls, Is(C))
- slf, cls = C().foo_cls()
- self.expectThat(slf, Is(d))
-- self.expectThat(cls, Is(C))
-- self._check_restored_static_or_class_method(oldmethod, oldmethod_inst,
-- C, 'foo_cls')
-+ if sys.version_info >= (3, 9):
-+ self.expectThat(cls, Is(None))
-+ else:
-+ self.expectThat(cls, Is(C))
-+ self._check_restored_static_or_class_method(
-+ oldmethod, oldmethod_inst, C, 'foo_cls')
-
- def test_patch_function_with_staticmethod(self):
- oldmethod = fake_no_args
diff --git a/main/py3-flit-core/APKBUILD b/main/py3-flit-core/APKBUILD
index 28d5b06056b..c1cc6fc2800 100644
--- a/main/py3-flit-core/APKBUILD
+++ b/main/py3-flit-core/APKBUILD
@@ -1,13 +1,14 @@
# Maintainer: Kevin Daudt <kdaudt@alpinelinux.org>
pkgname=py3-flit-core
-pkgver=3.7.1
-pkgrel=0
+pkgver=3.9.0
+pkgrel=1
pkgdesc="simple packaging tool for simple packages (core)"
url="https://flit.readthedocs.io/"
arch="noarch"
license="BSD-3-Clause"
makedepends="py3-installer"
checkdepends="py3-pytest py3-testpath"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/f/flit/flit-$pkgver.tar.gz"
builddir="$srcdir/flit-$pkgver/flit_core"
options="!check" # py3-testpath depends on this
@@ -16,6 +17,8 @@ options="!check" # py3-testpath depends on this
replaces="py3-flit<3.5.1-r3"
build() {
+ # don't need this with py3.11 for tomli
+ rm -rf flit_core/vendor/
python3 build_dists.py
}
@@ -32,5 +35,5 @@ package() {
}
sha512sums="
-336e81b034da2f38d7decb32c8961ce62d30f6fd2cb4778b09c956eb400277673d4c94cd57cf08fa7f115f8836aadb0469197d0096f833da9317db8a4f75baed flit-3.7.1.tar.gz
+3cbca4530fe463e27fb43130e0d00681e63434bdd552bd61b4a2f3b7967729d9d9a49c69b1a2380ed99bcca1e66a38e592f41cbe38a471d3e7297ab00cdabc29 flit-3.9.0.tar.gz
"
diff --git a/main/py3-funcsigs/APKBUILD b/main/py3-funcsigs/APKBUILD
index f4c01e92076..3c6b37e41a2 100644
--- a/main/py3-funcsigs/APKBUILD
+++ b/main/py3-funcsigs/APKBUILD
@@ -3,25 +3,32 @@
pkgname=py3-funcsigs
_pkgname=funcsigs
pkgver=1.0.2
-pkgrel=6
+pkgrel=10
pkgdesc="Python3 function signatures from PEP362 for Python 3.2+"
url="http://funcsigs.readthedocs.org"
arch="noarch"
license="Apache-2.0"
depends="python3"
-makedepends="py3-setuptools"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
replaces="py-funcsigs" # Backwards compatibility
provides="py-funcsigs=$pkgver-r$pkgrel" # Backwards compatibility
+options="!check"
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="4e583bb7081bb1d6c0fe5a6935ca03032d562b93ef5c11b51a72ce9e7ac12902451cc2233c7e6f70440629d88d8e6e9625965ee408100b80b0024f3a6204afda funcsigs-1.0.2.tar.gz"
+sha512sums="
+4e583bb7081bb1d6c0fe5a6935ca03032d562b93ef5c11b51a72ce9e7ac12902451cc2233c7e6f70440629d88d8e6e9625965ee408100b80b0024f3a6204afda funcsigs-1.0.2.tar.gz
+"
diff --git a/main/py3-future/APKBUILD b/main/py3-future/APKBUILD
index fbe87dd2533..457bb038861 100644
--- a/main/py3-future/APKBUILD
+++ b/main/py3-future/APKBUILD
@@ -2,18 +2,19 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=py3-future
_pkgname=future
-pkgver=0.18.2
-pkgrel=5
+pkgver=1.0.0
+pkgrel=1
pkgdesc="Easy, clean, reliable Python 2/3 compatibility"
-url="http://python-future.org/"
+url="https://python-future.org/"
arch="noarch"
license="MIT"
depends="python3"
# It can be built without it but it misses a lot of functionality
-makedepends="py3-setuptools"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://pypi.io/packages/source/f/future/future-$pkgver.tar.gz
- python-3.9-support.patch
+ test_ftp.patch
"
builddir="$srcdir/$_pkgname-$pkgver"
@@ -21,18 +22,23 @@ replaces="py-future" # Backwards compatibility
provides="py-future=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- PYTHONPATH="$builddir/build/lib" python3 -m pytest
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest -v -k "not test_isinstance_recursion_limit and not test_subclass_recursion_limit"
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
sha512sums="
-91c025f7d94bcdf93df838fab67053165a414fc84e8496f92ecbb910dd55f6b6af5e360bbd051444066880c5a6877e75157bd95e150ead46e5c605930dfc50f2 py3-future-0.18.2.tar.gz
-9023400decb26f9ba466e2690a6f87d2738811bea4927638826bee96abef2b83faf462430948ec2b3a15aaabe22a4b29f86ae2244633f78ca3766ee7592979a7 python-3.9-support.patch
+8e28d53172e3ae7b3b27c424a48fb698a6e86bf1c648cdf74e7fd57d34901a9bda18429fe4e176d70be67fc6c80b7f961b3021356594e38b5f294406af40bc61 py3-future-1.0.0.tar.gz
+e045ba2f5a3d29ab78b75f6211e4b40ec8333d6fcb53bf09803fedecc0728f929753aa7745eda3275fcbc7087bbe22b1e2df455e6750e80b608fdc2a1a1e67f0 test_ftp.patch
"
diff --git a/main/py3-future/python-3.9-support.patch b/main/py3-future/python-3.9-support.patch
deleted file mode 100644
index 83e83d5809c..00000000000
--- a/main/py3-future/python-3.9-support.patch
+++ /dev/null
@@ -1,194 +0,0 @@
-From c341d5497788923cc6ea0bd1358279f2147aa167 Mon Sep 17 00:00:00 2001
-From: Alexander Shadchin <shadchin@yandex-team.ru>
-Date: Sun, 15 Nov 2020 13:01:39 +0300
-Subject: [PATCH 1/7] Add support Python 3.9
-Patch-Source: https://github.com/PythonCharmers/python-future/pull/578
-
----
- src/future/backports/xmlrpc/client.py | 7 ++++---
- src/future/moves/_dummy_thread.py | 5 ++++-
- src/future/standard_library/__init__.py | 2 +-
- 3 files changed, 9 insertions(+), 5 deletions(-)
-
-diff --git a/src/future/backports/xmlrpc/client.py b/src/future/backports/xmlrpc/client.py
-index b78e5bad..0bcd90c9 100644
---- a/src/future/backports/xmlrpc/client.py
-+++ b/src/future/backports/xmlrpc/client.py
-@@ -134,10 +134,11 @@
- from future.builtins import bytes, dict, int, range, str
-
- import base64
--# Py2.7 compatibility hack
--base64.encodebytes = base64.encodestring
--base64.decodebytes = base64.decodestring
- import sys
-+if sys.version_info < (3, 9):
-+ # Py2.7 compatibility hack
-+ base64.encodebytes = base64.encodestring
-+ base64.decodebytes = base64.decodestring
- import time
- from datetime import datetime
- from future.backports.http import client as http_client
-diff --git a/src/future/moves/_dummy_thread.py b/src/future/moves/_dummy_thread.py
-index 688d249b..e5dca348 100644
---- a/src/future/moves/_dummy_thread.py
-+++ b/src/future/moves/_dummy_thread.py
-@@ -2,7 +2,10 @@
- from future.utils import PY3
-
- if PY3:
-- from _dummy_thread import *
-+ try:
-+ from _dummy_thread import *
-+ except ImportError:
-+ from _thread import *
- else:
- __future_module__ = True
- from dummy_thread import *
-diff --git a/src/future/standard_library/__init__.py b/src/future/standard_library/__init__.py
-index cff02f95..41c4f36d 100644
---- a/src/future/standard_library/__init__.py
-+++ b/src/future/standard_library/__init__.py
-@@ -125,7 +125,7 @@
- # 'Tkinter': 'tkinter',
- '_winreg': 'winreg',
- 'thread': '_thread',
-- 'dummy_thread': '_dummy_thread',
-+ 'dummy_thread': '_dummy_thread' if sys.version_info < (3, 9) else '_thread',
- # 'anydbm': 'dbm', # causes infinite import loop
- # 'whichdb': 'dbm', # causes infinite import loop
- # anydbm and whichdb are handled by fix_imports2
-
-From 90e3e4d7146324bd88a5453ba17a43412174f013 Mon Sep 17 00:00:00 2001
-From: Alexander Shadchin <shadchin@yandex-team.ru>
-Date: Sun, 15 Nov 2020 13:09:44 +0300
-Subject: [PATCH 3/7] Fix tests
-
----
- tests/test_future/test_standard_library.py | 3 ++-
- tests/test_future/test_urllib_toplevel.py | 5 +++--
- 2 files changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/tests/test_future/test_standard_library.py b/tests/test_future/test_standard_library.py
-index 3ac5d2d7..820bf47a 100644
---- a/tests/test_future/test_standard_library.py
-+++ b/tests/test_future/test_standard_library.py
-@@ -422,7 +422,8 @@ def test_urllib_imports_install_hooks(self):
-
- def test_underscore_prefixed_modules(self):
- import _thread
-- import _dummy_thread
-+ if sys.version_info < (3, 9):
-+ import _dummy_thread
- import _markupbase
- self.assertTrue(True)
-
-diff --git a/tests/test_future/test_urllib_toplevel.py b/tests/test_future/test_urllib_toplevel.py
-index 11e77201..68bc4c96 100644
---- a/tests/test_future/test_urllib_toplevel.py
-+++ b/tests/test_future/test_urllib_toplevel.py
-@@ -781,8 +781,9 @@ def test_unquoting(self):
- "%s" % result)
- self.assertRaises((TypeError, AttributeError), urllib_parse.unquote, None)
- self.assertRaises((TypeError, AttributeError), urllib_parse.unquote, ())
-- with support.check_warnings(('', BytesWarning), quiet=True):
-- self.assertRaises((TypeError, AttributeError), urllib_parse.unquote, bytes(b''))
-+ if sys.version_info < (3, 9):
-+ with support.check_warnings(('', BytesWarning), quiet=True):
-+ self.assertRaises((TypeError, AttributeError), urllib_parse.unquote, bytes(b''))
-
- def test_unquoting_badpercent(self):
- # Test unquoting on bad percent-escapes
-
-From 32641e1e8f22e326f8cb77dbcd8b2172ece797e2 Mon Sep 17 00:00:00 2001
-From: Alexander Shadchin <shadchin@yandex-team.ru>
-Date: Sun, 15 Nov 2020 13:30:06 +0300
-Subject: [PATCH 5/7] Fix test_pow for Python 3.8+
-
----
- tests/test_future/test_builtins.py | 3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/tests/test_future/test_builtins.py b/tests/test_future/test_builtins.py
-index 3921a608..f5dbec64 100644
---- a/tests/test_future/test_builtins.py
-+++ b/tests/test_future/test_builtins.py
-@@ -1304,7 +1304,8 @@ def test_pow(self):
- self.assertAlmostEqual(pow(-1, 1/3), 0.5 + 0.8660254037844386j)
-
- # Raises TypeError in Python < v3.5, ValueError in v3.5:
-- self.assertRaises((TypeError, ValueError), pow, -1, -2, 3)
-+ if sys.version_info < (3, 8):
-+ self.assertRaises((TypeError, ValueError), pow, -1, -2, 3)
- self.assertRaises(ValueError, pow, 1, 2, 0)
-
- self.assertRaises(TypeError, pow)
-
-From e7a2f76afa12ac4201c25dac9f93197016a19a7c Mon Sep 17 00:00:00 2001
-From: Alexander Shadchin <shadchin@yandex-team.ru>
-Date: Sun, 15 Nov 2020 13:53:28 +0300
-Subject: [PATCH 6/7] Fix test_ftp for Python 3.8+
-
----
- tests/test_future/test_urllib2.py | 9 ++++-----
- 1 file changed, 4 insertions(+), 5 deletions(-)
-
-diff --git a/tests/test_future/test_urllib2.py b/tests/test_future/test_urllib2.py
-index 2d69dad1..bd8e75c5 100644
---- a/tests/test_future/test_urllib2.py
-+++ b/tests/test_future/test_urllib2.py
-@@ -691,10 +691,6 @@ def connect_ftp(self, user, passwd, host, port, dirs,
- h = NullFTPHandler(data)
- h.parent = MockOpener()
-
-- # MIME guessing works in Python 3.8!
-- guessed_mime = None
-- if sys.hexversion >= 0x03080000:
-- guessed_mime = "image/gif"
- for url, host, port, user, passwd, type_, dirs, filename, mimetype in [
- ("ftp://localhost/foo/bar/baz.html",
- "localhost", ftplib.FTP_PORT, "", "", "I",
-@@ -713,7 +709,10 @@ def connect_ftp(self, user, passwd, host, port, dirs,
- ["foo", "bar"], "", None),
- ("ftp://localhost/baz.gif;type=a",
- "localhost", ftplib.FTP_PORT, "", "", "A",
-- [], "baz.gif", guessed_mime),
-+ [], "baz.gif", None),
-+ ("ftp://localhost/baz.gif",
-+ "localhost", ftplib.FTP_PORT, "", "", "I",
-+ [], "baz.gif", "image/gif"),
- ]:
- req = Request(url)
- req.timeout = None
-
-From 21ae5c76eb49edfff73d5a2319bf42ab0378da48 Mon Sep 17 00:00:00 2001
-From: Alexander Shadchin <shadchin@yandex-team.ru>
-Date: Fri, 11 Jun 2021 22:03:18 +0300
-Subject: [PATCH 7/7] Fix tests
-
----
- tests/test_future/test_urllib_toplevel.py | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/tests/test_future/test_urllib_toplevel.py b/tests/test_future/test_urllib_toplevel.py
-index 68bc4c96..923b2e8a 100644
---- a/tests/test_future/test_urllib_toplevel.py
-+++ b/tests/test_future/test_urllib_toplevel.py
-@@ -120,7 +120,7 @@ def setUp(self):
- finally:
- f.close()
- self.pathname = support.TESTFN
-- self.returned_obj = urlopen("file:%s" % self.pathname)
-+ self.returned_obj = urlopen("file:%s" % urllib_parse.quote(self.pathname))
-
- def tearDown(self):
- """Shut down the open object"""
-@@ -167,7 +167,7 @@ def test_info(self):
- self.assertIsInstance(self.returned_obj.info(), email_message.Message)
-
- def test_geturl(self):
-- self.assertEqual(self.returned_obj.geturl(), self.pathname)
-+ self.assertEqual(self.returned_obj.geturl(), urllib_parse.quote(self.pathname))
-
- def test_getcode(self):
- self.assertIsNone(self.returned_obj.getcode())
diff --git a/main/py3-future/test_ftp.patch b/main/py3-future/test_ftp.patch
new file mode 100644
index 00000000000..1fe23fe6dce
--- /dev/null
+++ b/main/py3-future/test_ftp.patch
@@ -0,0 +1,15 @@
+Adapted from https://github.com/python-mechanize/mechanize/commit/1324b09b661aaac7d4cdc7e1e9d49e1c3851db2c
+
+
+--- a/tests/test_future/test_urllib2.py
++++ b/tests/test_future/test_urllib2.py
+@@ -709,7 +709,8 @@
+ ["foo", "bar"], "", None),
+ ("ftp://localhost/baz.gif;type=a",
+ "localhost", ftplib.FTP_PORT, "", "", "A",
+- [], "baz.gif", None),
++ [], "baz.gif",
++ "image/gif" if sys.version_info >= (3, 11) else None),
+ ("ftp://localhost/baz.gif",
+ "localhost", ftplib.FTP_PORT, "", "", "I",
+ [], "baz.gif", "image/gif"),
diff --git a/main/py3-gobject3/APKBUILD b/main/py3-gobject3/APKBUILD
index 0be37272b3b..06110b898e8 100644
--- a/main/py3-gobject3/APKBUILD
+++ b/main/py3-gobject3/APKBUILD
@@ -1,16 +1,23 @@
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=py3-gobject3
-pkgver=3.42.1
+pkgver=3.48.2
pkgrel=0
pkgdesc="Python bindings for the GObject library"
url="https://wiki.gnome.org/Projects/PyGObject/"
arch="all"
license="LGPL-2.1-or-later"
-makedepends="python3-dev py3-cairo-dev gobject-introspection-dev
- libffi-dev glib-dev meson"
-checkdepends="py3-pytest gtk+3.0-dev xvfb-run ibus ttf-dejavu"
+makedepends="
+ glib-dev
+ gobject-introspection-dev
+ libffi-dev
+ meson
+ py3-cairo-dev
+ py3-setuptools
+ python3-dev
+ "
+checkdepends="py3-pytest gtk+3.0-dev xvfb-run ibus font-dejavu"
depends="python3"
subpackages="$pkgname-dev:_dev"
options="!check" # Need ibus which is in community/
@@ -21,19 +28,17 @@ replaces="py-gobject3" # Backwards compatibility
provides="py-gobject3=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- abuild-meson \
- -Dpython=python3 \
- . output
+ abuild-meson -Db_lto=true . output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
check() {
- PYGI_TEST_VERBOSE="1" xvfb-run meson test --no-rebuild -v -C output
+ PYGI_TEST_VERBOSE="1" xvfb-run -a meson test --no-rebuild --print-errorlogs -C output
}
package() {
- DESTDIR="$pkgdir" ninja -C "$builddir"/output install
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
_dev() {
@@ -44,5 +49,5 @@ _dev() {
}
sha512sums="
-b044d395f8334057be632fd56f670ae8405d9fc375bcbd7a0a3b2dcfb8efb06bad45e62e92d2ee5432e503642dba11d6f9bf91f26bf135fa5f9a871657105a18 pygobject-3.42.1.tar.xz
+11619f73be5894fae82b261779f33390d1aec51b02bcf285c58f3c76ee46dfc1b3f435e4662176fde5ca899aee5afc453f8f0ba28e15e15330a52354cf737d45 pygobject-3.48.2.tar.xz
"
diff --git a/main/py3-gpep517/APKBUILD b/main/py3-gpep517/APKBUILD
new file mode 100644
index 00000000000..0ed1ad62edd
--- /dev/null
+++ b/main/py3-gpep517/APKBUILD
@@ -0,0 +1,36 @@
+# Maintainer: Peter Shkenev <santurysim@gmail.com>
+pkgname=py3-gpep517
+_pkgname=gpep517
+pkgver=15
+pkgrel=2
+pkgdesc="Minimal backend script to aid installing Python packages through PEP 517-compliant build systems"
+url="https://github.com/mgorny/gpep517/"
+arch="noarch"
+license="MIT"
+depends="py3-installer python3"
+subpackages="$pkgname-pyc"
+source="https://github.com/mgorny/gpep517/archive/v$pkgver/gpep517-v$pkgver.tar.gz
+ gpep517
+
+ default-bytecode-levels.patch
+ "
+builddir="$srcdir/$_pkgname-$pkgver"
+
+check() {
+ python3 -m gpep517 --help
+}
+
+package() {
+ local sitedir="$(python3 -c 'import site;print(site.getsitepackages()[0])')"
+ mkdir -p "$pkgdir/$sitedir"
+ cp -a gpep517 "$pkgdir/$sitedir"
+ python3 -m compileall "$pkgdir/$sitedir"
+
+ install -Dm755 "$srcdir"/gpep517 -t "$pkgdir"/usr/bin
+}
+
+sha512sums="
+7c3b878220e907ef801301eadc0e3031dd3c31770cc50bb7119ab32f9244c8a33792b4896ddeffc5d4b7be9f1d881fba5179de155f11845f510e455be59fb92e gpep517-v15.tar.gz
+3e90bf2d94006672c66f5082812115903054b6e05a5d37aa9a0fd33f7b2c8368f13e5fbd3ea815c386d6155dcbf8babd69faa9ca27b95f35b35a4ef47974efd7 gpep517
+d3174ce9ac13d124578fc5ace0bd7a2c8582a8075d5355bf781bfa7218155cd00a7a707e76f26bcb933c6f49786a59bb63147b3e2f9645d36c97647865250894 default-bytecode-levels.patch
+"
diff --git a/main/py3-gpep517/default-bytecode-levels.patch b/main/py3-gpep517/default-bytecode-levels.patch
new file mode 100644
index 00000000000..55aa77ab718
--- /dev/null
+++ b/main/py3-gpep517/default-bytecode-levels.patch
@@ -0,0 +1,16 @@
+diff --git a/gpep517/__main__.py b/gpep517/__main__.py
+index d519c75..2dc0b49 100644
+--- a/gpep517/__main__.py
++++ b/gpep517/__main__.py
+@@ -350,9 +350,9 @@ def add_install_args(parser):
+ f"(default: {sys.executable})")
+ group.add_argument("--optimize",
+ type=parse_optimize_arg,
+- default=[],
++ default=[0],
+ help="Comma-separated list of optimization levels "
+- "to compile bytecode for (default: none), pass 'all' "
++ "to compile bytecode for (default: 0), 0s 'all' "
+ "to enable all known optimization levels (currently: "
+ f"{', '.join(str(x) for x in ALL_OPT_LEVELS)})")
+
diff --git a/main/py3-gpep517/gpep517 b/main/py3-gpep517/gpep517
new file mode 100644
index 00000000000..b8b10c0c09d
--- /dev/null
+++ b/main/py3-gpep517/gpep517
@@ -0,0 +1,6 @@
+#!/usr/bin/python3
+# -*- coding: utf-8 -*-
+import sys
+from gpep517.__main__ import main
+if __name__ == "__main__":
+ sys.exit(main())
diff --git a/main/py3-hatch-vcs/APKBUILD b/main/py3-hatch-vcs/APKBUILD
new file mode 100644
index 00000000000..23fd62f173b
--- /dev/null
+++ b/main/py3-hatch-vcs/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Duncan Bellamy <dunk@denkimushi.com>
+# Maintainer: Duncan Bellamy <dunk@denkimushi.com>
+pkgname=py3-hatch-vcs
+pkgver=0.4.0
+pkgrel=2
+pkgdesc="Hatch plugin for versioning with your preferred VCS"
+url="https://github.com/ofek/hatch-vcs"
+arch="noarch"
+license="MIT"
+depends="python3 py3-hatchling py3-setuptools_scm"
+makedepends="py3-gpep517 py3-installer py3-wheel"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/h/hatch-vcs/hatch_vcs-$pkgver.tar.gz"
+builddir="$srcdir/hatch_vcs-$pkgver"
+options="!check" #pytest circular dep
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
+}
+
+sha512sums="
+8689d3939b384b66c8153b88e82c55c4ec59a971dae6138c8d70995d332d62c870d611f0be5d2e47640f6c80cb55d1d8e556d6b3f0085f94dd505aaf7fdb93bd hatch_vcs-0.4.0.tar.gz
+"
diff --git a/main/py3-hatchling/APKBUILD b/main/py3-hatchling/APKBUILD
new file mode 100644
index 00000000000..98efbd2e797
--- /dev/null
+++ b/main/py3-hatchling/APKBUILD
@@ -0,0 +1,25 @@
+# Contributor: Duncan Bellamy <dunk@denkimushi.com>
+# Maintainer: Duncan Bellamy <dunk@denkimushi.com>
+pkgname=py3-hatchling
+pkgver=1.24.1
+pkgrel=0
+pkgdesc="Modern, extensible Python build backend"
+url="https://hatch.pypa.io/latest/"
+license="MIT"
+arch="noarch"
+depends="python3 py3-editables py3-packaging py3-pathspec py3-pluggy py3-trove-classifiers"
+makedepends="py3-installer"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/py3/h/hatchling/hatchling-$pkgver-py3-none-any.whl"
+options="!check"
+
+package() {
+ # this causes a lot of circular dependencies, namely this depends on
+ # poetry-core, which needs jsonschema, which needs this
+ python3 -m installer -d "$pkgdir" \
+ "$srcdir"/hatchling-$pkgver-py3-none-any.whl
+}
+
+sha512sums="
+9e423c719f2eba90d949efb1dbdad22ae71cad0e8490c5ee37fdf0a51bb63084f5bf288259c5ab97a4a19b1a36709a553f7e2fa2662c2daf243ce1fe751fcf8a hatchling-1.24.1-py3-none-any.whl
+"
diff --git a/main/py3-html5lib/APKBUILD b/main/py3-html5lib/APKBUILD
new file mode 100644
index 00000000000..37cee3bcd72
--- /dev/null
+++ b/main/py3-html5lib/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
+# Contributor: Stefan Wagner <stw@bit-strickerei.de>
+# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
+pkgname=py3-html5lib
+_pkgname=html5lib
+pkgver=1.1
+pkgrel=5
+pkgdesc="A Python HTML parser"
+options="!check" # 1 test fail TypeError: object of type 'MarkDecorator' has no len()
+url="https://github.com/html5lib/html5lib-python"
+arch="noarch"
+license="MIT"
+depends="py3-six py3-webencodings"
+#checkdepends="py3-pytest py3-pytest-expect py3-mock"
+makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+builddir="$srcdir"/$_pkgname-$pkgver
+
+replaces="py-html5lib" # Backwards compatibility
+provides="py-html5lib=$pkgver-r$pkgrel" # Backwards compatibility
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ py.test-3
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+af7c29591007fded99be6c38e3d0ae5a4ac32d71d26046a615918ae732cb1c1ecbf754f47ceca1a53726c3843f3ecea7af87a7362281b45ff3af495815818626 html5lib-1.1.tar.gz
+"
diff --git a/main/py3-hypothesis/APKBUILD b/main/py3-hypothesis/APKBUILD
deleted file mode 100644
index c5b64ba1268..00000000000
--- a/main/py3-hypothesis/APKBUILD
+++ /dev/null
@@ -1,41 +0,0 @@
-# Contributor: Drew DeVault <sir@cmpwn.com>
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=py3-hypothesis
-pkgver=6.48.2
-pkgrel=0
-pkgdesc="Advanced property-based (QuickCheck-like) testing for Python"
-options="!check"
-url="https://hypothesis.works/"
-arch="noarch"
-license="MPL-2.0"
-depends="py3-attrs py3-sortedcontainers py3-exceptiongroup"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest py3-coverage py3-tz py3-numpy py3-dateutil py3-pexpect"
-source="py-hypothesis-$pkgver.tar.gz::https://github.com/HypothesisWorks/hypothesis-python/archive/hypothesis-python-$pkgver.tar.gz
- "
-builddir="$srcdir/hypothesis-hypothesis-python-$pkgver/hypothesis-python"
-
-replaces="py-hypothesis" # Backwards compatibility
-provides="py-hypothesis=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- # In python3 mock is actually unittest.mock
- sed -e 's/from mock/from unittest.mock/' -i tests/cover/test_regressions.py
- sed -e 's/from mock/from unittest.mock/' -i tests/cover/test_reflection.py
-
- rm -rf tests/lark tests/dpcontracts tests/pandas
- PYTHONPATH="$PWD/build/lib" pytest-3 -v -k "not test_healthcheck_traceback_is_hidden"
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="
-3c38941cb17b0a22e547a8da84821b0e83f70da3e4476e8865d91eea90dc0175782084dc2a02b17b8db7a9e177e076a7e4d4044f0cad86f2e658ae01a6be2775 py-hypothesis-6.48.2.tar.gz
-"
diff --git a/main/py3-idna/APKBUILD b/main/py3-idna/APKBUILD
index a96be3c9816..5bcd5454669 100644
--- a/main/py3-idna/APKBUILD
+++ b/main/py3-idna/APKBUILD
@@ -2,33 +2,48 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=py3-idna
_pkgname=idna
-pkgver=3.3
-pkgrel=2
+pkgver=3.7
+pkgrel=0
pkgdesc="IDNA 2008 and UTS #46 for Python3"
url="https://github.com/kjd/idna"
arch="noarch"
license="BSD-3-Clause"
depends="python3"
-makedepends="py3-setuptools"
+makedepends="
+ py3-gpep517
+ py3-flit-core
+ py3-installer
+ py3-wheel
+ "
checkdepends="py3-pytest"
-source="idna-$pkgver.tar.gz::https://github.com/kjd/idna/archive/v$pkgver.tar.gz"
+subpackages="$pkgname-pyc"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/kjd/idna/archive/v$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
replaces="py-idna" # Backwards compatibility
provides="py-idna=$pkgver-r$pkgrel" # Backwards compatibility
+# secfixes:
+# 3.7-r0:
+# - CVE-2024-3651
+
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- pytest
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/$_pkgname-$pkgver-py3-none-any.whl
}
sha512sums="
-7f6b688eaee199c8644e3bd48b95ca4a2a75d431a1d7ff56f12c3b516715a12e2038b06d4a3d821ea1f3c8d20cbe21c8001967db543996da86f716daff729fc8 idna-3.3.tar.gz
+f753f37ae58fdb7b776c37757f7827c874eb13535db6427bc2a724e7ff1e28c2e3eb287a13eb97c37ee588d2c5217fe592f64ec305b122726ef5576c5317a34b idna-3.7.tar.gz
"
diff --git a/main/py3-imagesize/APKBUILD b/main/py3-imagesize/APKBUILD
index b2da8181c67..ee31cc88fe4 100644
--- a/main/py3-imagesize/APKBUILD
+++ b/main/py3-imagesize/APKBUILD
@@ -1,15 +1,16 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=py3-imagesize
-pkgver=1.3.0
-pkgrel=0
+pkgver=1.4.1
+pkgrel=4
pkgdesc="Getting image size from png/jpeg/jpeg2000/gif file"
url="https://github.com/shibukawa/imagesize_py"
arch="noarch"
license="MIT"
depends="python3"
-makedepends="py3-setuptools"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/i/imagesize/imagesize-$pkgver.tar.gz"
builddir="$srcdir/imagesize-$pkgver"
@@ -17,17 +18,20 @@ replaces="py-imagesize" # Backwards compatibility
provides="py-imagesize=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
}
check() {
- py.test-3 test/test_get.py -v
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest -v \
+ --deselect=test/test_get_filelike.py
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
}
sha512sums="
-3686e513f03cc16f5237ca206cd1bf131eea968015ee4906f620ab1c8932ed24d19881807225a02fa319d0465da4b01851ec0bd0a47146ef914053185bc0c755 imagesize-1.3.0.tar.gz
+f191d7fe34a01ab21b0f4f6519df8ab2a53c1ca54956f4d825d9cec5bd5f4c569491bdc26cb36fcaad2c453c35e51f69379f091362e206453aaefbda4802daa4 imagesize-1.4.1.tar.gz
"
diff --git a/main/py3-iniconfig/APKBUILD b/main/py3-iniconfig/APKBUILD
index b6690d01ae7..ffc96ae8a3b 100644
--- a/main/py3-iniconfig/APKBUILD
+++ b/main/py3-iniconfig/APKBUILD
@@ -1,28 +1,53 @@
+# Contributor: mio <miyopan@e.email>
# Contributor: Justin Berthault <justin.berthault@zaclys.net>
-# Maintainer: Justin Berthault <justin.berthault@zaclys.net>
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
pkgname=py3-iniconfig
_pyname=iniconfig
-pkgver=1.1.1
-pkgrel=2
+pkgver=2.0.0
+pkgrel=1
pkgdesc="brain-dead simple config-ini parsing"
-url="https://github.com/RonnyPfannschmidt/iniconfig"
+url="https://github.com/pytest-dev/iniconfig"
arch="noarch"
license="MIT"
-makedepends="py3-setuptools py3-py"
-source="https://files.pythonhosted.org/packages/source/i/$_pyname/$_pyname-$pkgver.tar.gz"
-options="!check" # pytest needed, circular dep
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ py3-py
+ py3-hatch-vcs
+ py3-hatchling
+ "
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/i/$_pyname/$_pyname-$pkgver.tar.gz
+ https://github.com/pytest-dev/$_pyname/raw/v$pkgver/testing/test_iniconfig.py
+ unittest_tests.patch
+ "
builddir="$srcdir/$_pyname-$pkgver"
+prepare() {
+ cp "$srcdir"/test_iniconfig.py "$builddir"/test_iniconfig.py
+ default_prepare
+}
+
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- python3 setup.py test
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m unittest -v
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="c9341db7e3ec2204b6a674fca7824cbeb492e3576d5ac3f084b234c82842b28f2f6acbfdb812e183f4334a95b990551f942a4caf548f5ce7ef14885f931535ee iniconfig-1.1.1.tar.gz"
+sha512sums="
+f0287115595a1ba074c5c77c3f7840efc2fef6c95c5ff3deaaf278c78b328f92187c358d5dd074b62c033db47952d99fc6d5164d4a48c81ba2c53d571eb76090 iniconfig-2.0.0.tar.gz
+3c0023cce2d7c37ae7e8086ab35a68d1b482502f241ed54de46830e09a4692cc548906f4ff70a638d03f5e0a5e06c079b6ef83a8398880ecf510b9db2e1d68a6 test_iniconfig.py
+c0c1344e284745f39fd27b053cab81a9f34d7a94583e66e696060968b00b089bf05bdbff3f5e03cd2168387a6511a5453eed586db4ab3256a660b2ccc6516920 unittest_tests.patch
+"
diff --git a/main/py3-iniconfig/unittest_tests.patch b/main/py3-iniconfig/unittest_tests.patch
new file mode 100644
index 00000000000..6a9f744132a
--- /dev/null
+++ b/main/py3-iniconfig/unittest_tests.patch
@@ -0,0 +1,477 @@
+--- a/test_iniconfig.py
++++ b/test_iniconfig.py
+@@ -1,5 +1,5 @@
+ from __future__ import annotations
+-import pytest
++import unittest
+ from iniconfig import IniConfig, ParseError, __all__ as ALL
+ from iniconfig._parse import _ParsedLine as PL
+ from iniconfig import iscommentline
+@@ -42,264 +42,270 @@
+ }
+
+
+-@pytest.fixture(params=sorted(check_tokens))
+-def input_expected(request: pytest.FixtureRequest) -> tuple[str, list[PL]]:
++class TestIniConfig(unittest.TestCase):
+
+- return check_tokens[request.param]
+
++ def input_expected(self, key: str) -> tuple[str, list[PL]]:
++ # Sample usage: self.input_expected("value")
++ # Sample output: ('value = 1', [_ParsedLine(lineno=0, section=None,
++ # name='value', value='1')])
++ return check_tokens[key]
+
+-@pytest.fixture
+-def input(input_expected: tuple[str, list[PL]]) -> str:
+- return input_expected[0]
+
++ def input(self, input_expected: tuple[str, list[PL]]) -> str:
++ # Sample usage: self.input(self.input_expected("value"))
++ return input_expected[0]
+
+-@pytest.fixture
+-def expected(input_expected: tuple[str, list[PL]]) -> list[PL]:
+- return input_expected[1]
+
++ def expected(self, input_expected: tuple[str, list[PL]]) -> list[PL]:
++ # Sample usage: self.expected(self.input_expected("value"))
++ return input_expected[1]
+
+-def parse(input: str) -> list[PL]:
+- from iniconfig._parse import parse_lines
+
+- return parse_lines("sample", input.splitlines(True))
++ def parse(self, input: str) -> list[PL]:
++ # Sample usage: self.parse(self.input(self.input_expected("value")))
++ from iniconfig._parse import parse_lines
++ return parse_lines("sample", input.splitlines(True))
+
+
+-def parse_a_error(input: str) -> ParseError:
+- try:
+- parse(input)
+- except ParseError as e:
+- return e
+- else:
+- raise ValueError(input)
++ def parse_a_error(self, input: str) -> ParseError:
++ try:
++ self.parse(input)
++ except ParseError as e:
++ return e
++ else:
++ raise ValueError(input)
+
+
+-def test_tokenize(input: str, expected: list[PL]) -> None:
+- parsed = parse(input)
+- assert parsed == expected
++ def test_tokenize(self) -> None:
++ for i in sorted(check_tokens):
++ with self.subTest(i=i):
++ input_expected = self.input_expected(i)
++ parsed = self.parse(self.input(input_expected))
++ expected = self.expected(input_expected)
++ self.assertEqual(parsed, expected)
+
+
+-def test_parse_empty() -> None:
+- parsed = parse("")
+- assert not parsed
+- ini = IniConfig("sample", "")
+- assert not ini.sections
++ def test_parse_empty(self) -> None:
++ parsed = self.parse("")
++ self.assertFalse(parsed)
++ ini = IniConfig("sample", "")
++ self.assertFalse(ini.sections)
+
+
+-def test_ParseError() -> None:
+- e = ParseError("filename", 0, "hello")
+- assert str(e) == "filename:1: hello"
++ def test_ParseError(self) -> None:
++ e = ParseError("filename", 0, "hello")
++ self.assertEqual(str(e), "filename:1: hello")
+
+
+-def test_continuation_needs_perceeding_token() -> None:
+- err = parse_a_error(" Foo")
+- assert err.lineno == 0
++ def test_continuation_needs_perceeding_token(self) -> None:
++ err = self.parse_a_error(" Foo")
++ self.assertEqual(err.lineno, 0)
+
+
+-def test_continuation_cant_be_after_section() -> None:
+- err = parse_a_error("[section]\n Foo")
+- assert err.lineno == 1
++ def test_continuation_cant_be_after_section(self) -> None:
++ err = self.parse_a_error("[section]\n Foo")
++ self.assertEqual(err.lineno, 1)
+
+
+-def test_section_cant_be_empty() -> None:
+- err = parse_a_error("[]")
+- assert err.lineno == 0
++ def test_section_cant_be_empty(self) -> None:
++ err = self.parse_a_error("[]")
++ self.assertEqual(err.lineno, 0)
+
+
+-@pytest.mark.parametrize(
+- "line",
+- [
+- "!!",
+- ],
+-)
+-def test_error_on_weird_lines(line: str) -> None:
+- parse_a_error(line)
++ def test_error_on_weird_lines(self) -> None:
++ line = [ "!!", ]
++ for l in line:
++ with self.subTest(l=l):
++ self.parse_a_error(l)
+
+
+-def test_iniconfig_from_file(tmp_path: Path) -> None:
+- path = tmp_path / "test.txt"
+- path.write_text("[metadata]\nname=1")
++ def test_iniconfig_from_file(self) -> None:
++ path = Path("test.txt")
++ path.write_text("[metadata]\nname=1")
+
+- config = IniConfig(path=str(path))
+- assert list(config.sections) == ["metadata"]
+- config = IniConfig(str(path), "[diff]")
+- assert list(config.sections) == ["diff"]
+- with pytest.raises(TypeError):
+- IniConfig(data=path.read_text()) # type: ignore
++ config = IniConfig(path=str(path))
++ self.assertEqual(list(config.sections), ["metadata"])
++ config = IniConfig(str(path), "[diff]")
++ self.assertEqual(list(config.sections), ["diff"])
++ with self.assertRaises(TypeError):
++ IniConfig(data=path.read_text()) # type: ignore
+
+
+-def test_iniconfig_section_first() -> None:
+- with pytest.raises(ParseError) as excinfo:
+- IniConfig("x", data="name=1")
+- assert excinfo.value.msg == "no section header defined"
++ def test_iniconfig_section_first(self) -> None:
++ with self.assertRaisesRegex(ParseError, "no section header defined"):
++ IniConfig("x", data="name=1")
+
+
+-def test_iniconig_section_duplicate_fails() -> None:
+- with pytest.raises(ParseError) as excinfo:
+- IniConfig("x", data="[section]\n[section]")
+- assert "duplicate section" in str(excinfo.value)
++ def test_iniconfig_section_duplicate_fails(self) -> None:
++ with self.assertRaisesRegex(ParseError, "duplicate section"):
++ IniConfig("x", data="[section]\n[section]")
+
+
+-def test_iniconfig_duplicate_key_fails() -> None:
+- with pytest.raises(ParseError) as excinfo:
+- IniConfig("x", data="[section]\nname = Alice\nname = bob")
++ def test_iniconfig_duplicate_key_fails(self) -> None:
++ with self.assertRaisesRegex(ParseError, "duplicate name"):
++ IniConfig("x", data="[section]\nname = Alice\nname = bob")
+
+- assert "duplicate name" in str(excinfo.value)
+
++ def test_iniconfig_lineof(self) -> None:
++ config = IniConfig(
++ "x.ini",
++ data=("[section]\nvalue = 1\n[section2]\n# comment\nvalue =2"),
++ )
+
+-def test_iniconfig_lineof() -> None:
+- config = IniConfig(
+- "x.ini",
+- data=("[section]\nvalue = 1\n[section2]\n# comment\nvalue =2"),
+- )
++ self.assertIs(config.lineof("missing"), None)
++ self.assertEqual(config.lineof("section"), 1)
++ self.assertEqual(config.lineof("section2"), 3)
++ self.assertEqual(config.lineof("section", "value"), 2)
++ self.assertEqual(config.lineof("section2", "value"), 5)
+
+- assert config.lineof("missing") is None
+- assert config.lineof("section") == 1
+- assert config.lineof("section2") == 3
+- assert config.lineof("section", "value") == 2
+- assert config.lineof("section2", "value") == 5
++ self.assertEqual(config["section"].lineof("value"), 2)
++ self.assertEqual(config["section2"].lineof("value"), 5)
+
+- assert config["section"].lineof("value") == 2
+- assert config["section2"].lineof("value") == 5
+
++ def test_iniconfig_get_convert(self) -> None:
++ config = IniConfig("x", data="[section]\nint = 1\nfloat = 1.1")
++ self.assertEqual(config.get("section", "int"), "1")
++ self.assertEqual(config.get("section", "int", convert=int), 1)
+
+-def test_iniconfig_get_convert() -> None:
+- config = IniConfig("x", data="[section]\nint = 1\nfloat = 1.1")
+- assert config.get("section", "int") == "1"
+- assert config.get("section", "int", convert=int) == 1
+
++ def test_iniconfig_get_missing(self) -> None:
++ config = IniConfig("x", data="[section]\nint = 1\nfloat = 1.1")
++ self.assertEqual(config.get("section", "missing", default=1), 1)
++ self.assertIs(config.get("section", "missing"), None)
+
+-def test_iniconfig_get_missing() -> None:
+- config = IniConfig("x", data="[section]\nint = 1\nfloat = 1.1")
+- assert config.get("section", "missing", default=1) == 1
+- assert config.get("section", "missing") is None
+
++ def test_section_get(self) -> None:
++ config = IniConfig("x", data="[section]\nvalue=1")
++ section = config["section"]
++ self.assertEqual(section.get("value", convert=int), 1)
++ self.assertEqual(section.get("value", 1), "1")
++ self.assertEqual(section.get("missing", 2), 2)
+
+-def test_section_get() -> None:
+- config = IniConfig("x", data="[section]\nvalue=1")
+- section = config["section"]
+- assert section.get("value", convert=int) == 1
+- assert section.get("value", 1) == "1"
+- assert section.get("missing", 2) == 2
+
++ def test_missing_section(self) -> None:
++ config = IniConfig("x", data="[section]\nvalue=1")
++ with self.assertRaises(KeyError):
++ config["other"]
+
+-def test_missing_section() -> None:
+- config = IniConfig("x", data="[section]\nvalue=1")
+- with pytest.raises(KeyError):
+- config["other"]
+
++ def test_section_getitem(self) -> None:
++ config = IniConfig("x", data="[section]\nvalue=1")
++ self.assertEqual(config["section"]["value"], "1")
++ self.assertEqual(config["section"]["value"], "1")
+
+-def test_section_getitem() -> None:
+- config = IniConfig("x", data="[section]\nvalue=1")
+- assert config["section"]["value"] == "1"
+- assert config["section"]["value"] == "1"
+
++ def test_section_iter(self) -> None:
++ config = IniConfig("x", data="[section]\nvalue=1")
++ names = list(config["section"])
++ self.assertEqual(names, ["value"])
++ items = list(config["section"].items())
++ self.assertEqual(items, [("value", "1")])
+
+-def test_section_iter() -> None:
+- config = IniConfig("x", data="[section]\nvalue=1")
+- names = list(config["section"])
+- assert names == ["value"]
+- items = list(config["section"].items())
+- assert items == [("value", "1")]
+
++ def test_config_iter(self) -> None:
++ config = IniConfig(
++ "x.ini",
++ data=dedent(
++ """
++ [section1]
++ value=1
++ [section2]
++ value=2
++ """
++ ),
++ )
++ l = list(config)
++ self.assertEqual(len(l), 2)
++ self.assertEqual(l[0].name, "section1")
++ self.assertEqual(l[0]["value"], "1")
++ self.assertEqual(l[1].name, "section2")
++ self.assertEqual(l[1]["value"], "2")
+
+-def test_config_iter() -> None:
+- config = IniConfig(
+- "x.ini",
+- data=dedent(
+- """
+- [section1]
+- value=1
+- [section2]
+- value=2
+- """
+- ),
+- )
+- l = list(config)
+- assert len(l) == 2
+- assert l[0].name == "section1"
+- assert l[0]["value"] == "1"
+- assert l[1].name == "section2"
+- assert l[1]["value"] == "2"
+
++ def test_config_contains(self) -> None:
++ config = IniConfig(
++ "x.ini",
++ data=dedent(
++ """
++ [section1]
++ value=1
++ [section2]
++ value=2
++ """
++ ),
++ )
++ self.assertNotIn("xyz", config)
++ self.assertIn("section1", config)
++ self.assertIn("section2", config)
+
+-def test_config_contains() -> None:
+- config = IniConfig(
+- "x.ini",
+- data=dedent(
+- """
+- [section1]
+- value=1
+- [section2]
+- value=2
+- """
+- ),
+- )
+- assert "xyz" not in config
+- assert "section1" in config
+- assert "section2" in config
+
++ def test_iter_file_order(self) -> None:
++ config = IniConfig(
++ "x.ini",
++ data=dedent("""
++ [section2] #cpython dict ordered before section
++ value = 1
++ value2 = 2 # dict ordered before value
++ [section]
++ a = 1
++ b = 2
++ """
++ ),
++ )
++ l = list(config)
++ secnames = [x.name for x in l]
++ self.assertEqual(secnames, ["section2", "section"])
++ self.assertEqual(list(config["section2"]), ["value", "value2"])
++ self.assertEqual(list(config["section"]), ["a", "b"])
+
+-def test_iter_file_order() -> None:
+- config = IniConfig(
+- "x.ini",
+- data="""
+-[section2] #cpython dict ordered before section
+-value = 1
+-value2 = 2 # dict ordered before value
+-[section]
+-a = 1
+-b = 2
+-""",
+- )
+- l = list(config)
+- secnames = [x.name for x in l]
+- assert secnames == ["section2", "section"]
+- assert list(config["section2"]) == ["value", "value2"]
+- assert list(config["section"]) == ["a", "b"]
+
++ def test_example_pypirc(self) -> None:
++ config = IniConfig(
++ "pypirc",
++ data=dedent(
++ """
++ [distutils]
++ index-servers =
++ pypi
++ other
+
+-def test_example_pypirc() -> None:
+- config = IniConfig(
+- "pypirc",
+- data=dedent(
+- """
+- [distutils]
+- index-servers =
+- pypi
+- other
++ [pypi]
++ repository: <repository-url>
++ username: <username>
++ password: <password>
+
+- [pypi]
+- repository: <repository-url>
+- username: <username>
+- password: <password>
++ [other]
++ repository: http://example.com/pypi
++ username: <username>
++ password: <password>
++ """
++ ),
++ )
++ distutils, pypi, other = list(config)
++ self.assertEqual(distutils["index-servers"], "pypi\nother")
++ self.assertEqual(pypi["repository"], "<repository-url>")
++ self.assertEqual(pypi["username"], "<username>")
++ self.assertEqual(pypi["password"], "<password>")
++ self.assertEqual(["repository", "username", "password"], list(other))
+
+- [other]
+- repository: http://example.com/pypi
+- username: <username>
+- password: <password>
+- """
+- ),
+- )
+- distutils, pypi, other = list(config)
+- assert distutils["index-servers"] == "pypi\nother"
+- assert pypi["repository"] == "<repository-url>"
+- assert pypi["username"] == "<username>"
+- assert pypi["password"] == "<password>"
+- assert ["repository", "username", "password"] == list(other)
+
++ def test_api_import(self) -> None:
++ self.assertEqual(ALL, ["IniConfig", "ParseError", "COMMENTCHARS",
++ "iscommentline"])
+
+-def test_api_import() -> None:
+- assert ALL == ["IniConfig", "ParseError", "COMMENTCHARS", "iscommentline"]
+
++ def test_iscommentline_true(self) -> None:
++ line = [
++ "#qwe",
++ " #qwe",
++ ";qwe",
++ " ;qwe",
++ ]
++ for l in line:
++ with self.subTest(l=l):
++ self.assertTrue(iscommentline(l))
+
+-@pytest.mark.parametrize(
+- "line",
+- [
+- "#qwe",
+- " #qwe",
+- ";qwe",
+- " ;qwe",
+- ],
+-)
+-def test_iscommentline_true(line: str) -> None:
+- assert iscommentline(line)
++
++if __name__ == "__main__":
++ unittest.main()
diff --git a/main/py3-installer/APKBUILD b/main/py3-installer/APKBUILD
index 1bbd91bbdcf..e90fbb381fb 100644
--- a/main/py3-installer/APKBUILD
+++ b/main/py3-installer/APKBUILD
@@ -1,35 +1,40 @@
# Contributor: Sean McAvoy <seanmcavoy@gmail.com>
# Maintainer: Sean McAvoy <seanmcavoy@gmail.com>
pkgname=py3-installer
-pkgver=0.5.1
-pkgrel=1
+pkgver=0.7.0
+pkgrel=2
pkgdesc="low-level library for installing from a Python wheel distribution"
url="https://github.com/pypa/installer"
arch="noarch"
license="MIT"
depends="python3"
checkdepends="py3-pytest"
-source="https://files.pythonhosted.org/packages/source/i/installer/installer-$pkgver.tar.gz
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/py3/i/installer/installer-$pkgver-py3-none-any.whl
default-bytecode-levels.patch
"
-builddir="$srcdir/installer-$pkgver"
# checkdepends causes weird circular behaviour,
# because py3-pytest depends on this down the chain
options="!check"
-build() {
- python3 setup.py build
-}
+unpack() {
+ default_unpack
-check() {
- PYTHONPATH="$builddir/build/lib:$PYTHONPATH" pytest
+ # we have to use the wheel because py3-installer is the base to be able to
+ # install generated wheels, so we don't have it when building it itself
+ mkdir -p "$builddir"
+ unzip -d "$builddir" "$srcdir"/installer-$pkgver-py3-none-any.whl
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ local sitedir="$(python3 -c 'import site;print(site.getsitepackages()[0])')"
+ mkdir -p "$pkgdir/$sitedir"
+ cp -a installer* "$pkgdir/$sitedir"
+
+ python3 -m compileall "$pkgdir/$sitedir"
}
sha512sums="
-fcdbd0001c8b87cb73f49453c7be30c52579eec6d9134b8e9406aab59bfdf7899360fbbe9cc37c9db54356e5408322aea80307d73231b136918f7d2af013afd1 installer-0.5.1.tar.gz
-fa5046b07cd4dcb04d3112c6a24ad613b77213c98e2e8b33994cc8f8fe4acae1460d4efd9610a6d9b61dd896fb02c18cd7d0b8890c4d174fb52e9d04dcbef95d default-bytecode-levels.patch
+8e10013521238ef8fb2f5ab4bd00f6154c05046011cad8824d96b7cdc4ed235b87e534d1e163a47a11dbfb5bb3cf19d9a2ea3edd1e9c9ce5fbc9a375010c36dc installer-0.7.0-py3-none-any.whl
+d389b34e2de943823978b1a8a782a6e14a50b577870e71a95a4482ffbbf3a79217e0aa00673166f5e75d6ce9c07ee4d029d7baa8b37c0914a2429e2e04df4dd4 default-bytecode-levels.patch
"
diff --git a/main/py3-installer/default-bytecode-levels.patch b/main/py3-installer/default-bytecode-levels.patch
index e5b525da76d..d588e66f447 100644
--- a/main/py3-installer/default-bytecode-levels.patch
+++ b/main/py3-installer/default-bytecode-levels.patch
@@ -2,9 +2,11 @@ the previous default of 0, 1 causes opt-1 bytecode to also be generated,
which is not used without passing `-O` to `python3` anyway, and doubles
the size of the resulting package
---- a/src/installer/__main__.py
-+++ b/src/installer/__main__.py
-@@ -29,7 +29,7 @@
+diff --git a/installer/__main__.py b/installer/__main__.py
+index 51014b9..2a389e8 100644
+--- a/installer/__main__.py
++++ b/installer/__main__.py
+@@ -36,7 +36,7 @@ def _get_main_parser() -> argparse.ArgumentParser:
metavar="level",
type=int,
choices=[0, 1, 2],
@@ -13,7 +15,7 @@ the size of the resulting package
)
parser.add_argument(
"--no-compile-bytecode",
-@@ -68,7 +68,7 @@
+@@ -81,7 +81,7 @@ def _main(cli_args: Sequence[str], program: Optional[str] = None) -> None:
if args.no_compile_bytecode:
bytecode_levels = []
elif not bytecode_levels:
diff --git a/main/py3-jinja2/APKBUILD b/main/py3-jinja2/APKBUILD
index 24e874759ad..363936c31de 100644
--- a/main/py3-jinja2/APKBUILD
+++ b/main/py3-jinja2/APKBUILD
@@ -2,16 +2,16 @@
# Maintainer: Matt Smith <mcs@darkregion.net>
pkgname=py3-jinja2
_pkgname=Jinja2
-pkgver=3.1.2
-pkgrel=0
+pkgver=3.1.3
+pkgrel=1
pkgdesc="A small but fast and easy to use stand-alone python template engine"
url="https://palletsprojects.com/p/jinja/"
arch="noarch"
license="BSD-3-Clause"
depends="py3-markupsafe"
checkdepends="py3-pytest"
-makedepends="python3-dev py3-setuptools"
-subpackages="$pkgname-doc"
+makedepends="python3-dev py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc $pkgname-doc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
@@ -20,15 +20,19 @@ builddir="$srcdir/$_pkgname-$pkgver"
# - CVE-2020-28493
build() {
- python3 setup.py build
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
}
check() {
- PYTHONPATH=build/lib pytest
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ # test_elif_deep fails on s390x
+ .testenv/bin/python3 -m pytest -W ignore::DeprecationWarning \
+ -k "not test_elif_deep"
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
local docdir="$pkgdir/usr/share/doc/$pkgname"
# Note: The documentation in the docs directory needs to be generated
@@ -41,5 +45,5 @@ package() {
}
sha512sums="
-5dfe122c1beef5305b34d25f22f96607bd3a6cba098b03091850ea36fefe62b645a7218d7584b35bea252393ac922c9bb3654a9e90f23bcfb273e811fcf2f2c1 Jinja2-3.1.2.tar.gz
+5c36d0cd094b40626511f30c561176c095c49ef4066c2752a9edc3e6feb2430dafa866c17deebddcd0168aa1f0fd3944916d592c5c999639b8152e7c1009c700 Jinja2-3.1.3.tar.gz
"
diff --git a/main/py3-lxc/APKBUILD b/main/py3-lxc/APKBUILD
index cf0fba07556..985a74bfbb5 100644
--- a/main/py3-lxc/APKBUILD
+++ b/main/py3-lxc/APKBUILD
@@ -1,24 +1,27 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=py3-lxc
-pkgver=3.0.4
-pkgrel=3
+pkgver=5.0.0
+pkgrel=4
pkgdesc="Python3 bindings for LXC"
options="!check" # No testsuite
url="https://linuxcontainers.org"
arch="all"
license="LGPL-2.1-or-later"
depends="python3"
-makedepends="python3-dev py3-setuptools lxc-dev"
+makedepends="lxc-dev python3-dev py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
source="https://linuxcontainers.org/downloads/lxc/python3-lxc-$pkgver.tar.gz"
builddir="$srcdir/python3-lxc-$pkgver"
build() {
- python3 setup.py build
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
}
-sha512sums="37660fe97a2171cc3346c31e736ead8a38e328bfcbea621d6b563042fcd1e70c48b97440f6263fb0f6f02a4f1704af2241661bc526921c124a6456c06a497828 python3-lxc-3.0.4.tar.gz"
+sha512sums="
+4a1c9af0c322fbfe13ab0778e438ad4bc4ffde153e7fb55b594b6381c6875a93b7d0476bd1d7bcd7344a2d6de81ce6f5fd96519926a32b4acea27acf1bcd2011 python3-lxc-5.0.0.tar.gz
+"
diff --git a/main/py3-lxml/APKBUILD b/main/py3-lxml/APKBUILD
index 606c65c7f21..41c720d0fd3 100644
--- a/main/py3-lxml/APKBUILD
+++ b/main/py3-lxml/APKBUILD
@@ -3,19 +3,33 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=py3-lxml
_pkgname=lxml
-pkgver=4.9.0
+pkgver=5.1.0
pkgrel=0
pkgdesc="Python3 LXML Library"
url="https://lxml.de/"
arch="all"
license="BSD-3-Clause AND ZPL-2.0 AND ElementTree"
-makedepends="python3-dev libxml2-dev libxslt-dev py3-setuptools"
+makedepends="
+ cython
+ libxml2-dev
+ libxslt-dev
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ python3-dev
+ "
+checkdepends="py3-html5lib"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
+ libxml-2.11.0.patch
tests-fix-encoding-name.patch
+ fix-test_elementtree-with-expat-2.6.0.patch
"
builddir="$srcdir/$_pkgname-$pkgver"
# secfixes:
+# 4.9.2-r0:
+# - CVE-2022-2309
# 4.6.5-r0:
# - CVE-2021-43818
# 4.6.2-r0:
@@ -24,18 +38,28 @@ builddir="$srcdir/$_pkgname-$pkgver"
# - CVE-2021-28957
build() {
- python3 setup.py build
+ export CFLAGS="$CFLAGS -flto=auto"
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --config-json '{"--build-option": ["--with-cython"]}' \
+ --output-fd 3 3>&1 >&2
}
check() {
- make test3
+ local testpy3="$builddir"/.testenv/bin/python3
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ make PYTHON="$testpy3" PYTHON3="$testpy3" test
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
sha512sums="
-e96190c2a588d941d6340e52bfed7cbf6d3d8e35cef8c90a42fc437d535609cf7ac3644237b8521fefd09d3d63dc48a2e274d408cdc666378e237cff21cef3f4 lxml-4.9.0.tar.gz
+a538f322686a1b2c63211d915db900116b7db467a1cce0a0ad7a93e6c15195a66dc6d091301d1918f2cb513ee3168be939945ae60aa470fd9604f6d46e9eb375 lxml-5.1.0.tar.gz
+6436f87042563bb3a08bd7d0216fdb284d639b1a72fde77dce75d7c3e63f4f18ba115df9540fe4298f558df53f9dbfbd781374138544e8e5d9cb5ca5928f343c libxml-2.11.0.patch
ef5ba4064166443e07040db315173a4d0cb0d83eb3cd49623f210253a25433ec1c408d6d8e538f93498a211bc1695fdaa3e39f8ac75f36a3319c38bd96ba73eb tests-fix-encoding-name.patch
+7edb98daa4ea776c18c0b59fed6e54d4bb6e1c14101cdc768a4e5c803b6d94147dc2e13dc5fb3a48e6faa952ef1f7a16712fb6b0306351db6c4e0063f432fac1 fix-test_elementtree-with-expat-2.6.0.patch
"
diff --git a/main/py3-lxml/fix-test_elementtree-with-expat-2.6.0.patch b/main/py3-lxml/fix-test_elementtree-with-expat-2.6.0.patch
new file mode 100644
index 00000000000..a75644bc2c4
--- /dev/null
+++ b/main/py3-lxml/fix-test_elementtree-with-expat-2.6.0.patch
@@ -0,0 +1,100 @@
+From 3ccc7d583e325ceb0ebdf8fc295bbb7fc8cd404d Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
+Date: Sat, 2 Mar 2024 06:51:01 +0100
+Subject: [PATCH] Fix test_elementtree with Expat 2.6.0 (GH-407)
+
+Feeding the parser by too small chunks defers parsing to prevent
+CVE-2023-52425. Future versions of Expat may be more reactive.
+
+Heavily inspired by https://github.com/python/cpython/commit/4a08e7b3431cd32a0daf22a33421cd3035343dc4
+
+We cannot use a @fails_with_expat_2_6_0 decorator
+because the test passes in ETreePullTestCase.
+
+See https://github.com/python/cpython/issues/115133
+See https://github.com/advisories/GHSA-gh68-jm46-84rf
+Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
+---
+ src/lxml/tests/test_elementtree.py | 62 +++++++++++++++++++-----------
+ 1 file changed, 39 insertions(+), 23 deletions(-)
+
+diff --git a/src/lxml/tests/test_elementtree.py b/src/lxml/tests/test_elementtree.py
+index 8ccf4442a..ef923c5ce 100644
+--- a/src/lxml/tests/test_elementtree.py
++++ b/src/lxml/tests/test_elementtree.py
+@@ -10,6 +10,7 @@
+ import io
+ import operator
+ import os
++import pyexpat
+ import re
+ import sys
+ import textwrap
+@@ -4383,29 +4384,44 @@ def assert_event_tags(self, parser, expected, max_events=None):
+ self.assertEqual([(action, elem.tag) for action, elem in events],
+ expected)
+
+- def test_simple_xml(self):
+- for chunk_size in (None, 1, 5):
+- #with self.subTest(chunk_size=chunk_size):
+- parser = self.etree.XMLPullParser()
+- self.assert_event_tags(parser, [])
+- self._feed(parser, "<!-- comment -->\n", chunk_size)
+- self.assert_event_tags(parser, [])
+- self._feed(parser,
+- "<root>\n <element key='value'>text</element",
+- chunk_size)
+- self.assert_event_tags(parser, [])
+- self._feed(parser, ">\n", chunk_size)
+- self.assert_event_tags(parser, [('end', 'element')])
+- self._feed(parser, "<element>text</element>tail\n", chunk_size)
+- self._feed(parser, "<empty-element/>\n", chunk_size)
+- self.assert_event_tags(parser, [
+- ('end', 'element'),
+- ('end', 'empty-element'),
+- ])
+- self._feed(parser, "</root>\n", chunk_size)
+- self.assert_event_tags(parser, [('end', 'root')])
+- root = self._close_and_return_root(parser)
+- self.assertEqual(root.tag, 'root')
++ def test_simple_xml(self, chunk_size=None):
++ parser = self.etree.XMLPullParser()
++ self.assert_event_tags(parser, [])
++ self._feed(parser, "<!-- comment -->\n", chunk_size)
++ self.assert_event_tags(parser, [])
++ self._feed(parser,
++ "<root>\n <element key='value'>text</element",
++ chunk_size)
++ self.assert_event_tags(parser, [])
++ self._feed(parser, ">\n", chunk_size)
++ self.assert_event_tags(parser, [('end', 'element')])
++ self._feed(parser, "<element>text</element>tail\n", chunk_size)
++ self._feed(parser, "<empty-element/>\n", chunk_size)
++ self.assert_event_tags(parser, [
++ ('end', 'element'),
++ ('end', 'empty-element'),
++ ])
++ self._feed(parser, "</root>\n", chunk_size)
++ self.assert_event_tags(parser, [('end', 'root')])
++ root = self._close_and_return_root(parser)
++ self.assertEqual(root.tag, 'root')
++
++ def test_simple_xml_chunk_1(self):
++ if self.etree is not etree and pyexpat.version_info >= (2, 6, 0):
++ raise unittest.SkipTest(
++ "Feeding the parser by too small chunks defers parsing"
++ )
++ self.test_simple_xml(chunk_size=1)
++
++ def test_simple_xml_chunk_5(self):
++ if self.etree is not etree and pyexpat.version_info >= (2, 6, 0):
++ raise unittest.SkipTest(
++ "Feeding the parser by too small chunks defers parsing"
++ )
++ self.test_simple_xml(chunk_size=5)
++
++ def test_simple_xml_chunk_22(self):
++ self.test_simple_xml(chunk_size=22)
+
+ def test_feed_while_iterating(self):
+ parser = self.etree.XMLPullParser()
diff --git a/main/py3-lxml/libxml-2.11.0.patch b/main/py3-lxml/libxml-2.11.0.patch
new file mode 100644
index 00000000000..fc039a2c485
--- /dev/null
+++ b/main/py3-lxml/libxml-2.11.0.patch
@@ -0,0 +1,12 @@
+diff --git a/src/lxml/tests/test_io.py b/src/lxml/tests/test_io.py
+index cbdbcef..efbd3fd 100644
+--- a/src/lxml/tests/test_io.py
++++ b/src/lxml/tests/test_io.py
+@@ -312,6 +312,7 @@ class _IOTestCaseBase(HelperTestCase):
+ self.assertEqual(5, len(boms))
+ xml = uxml.encode("utf-16")
+ self.assertTrue(xml[:2] in boms, repr(xml[:2]))
++ return True
+
+ f = tempfile.NamedTemporaryFile(delete=False)
+ try:
diff --git a/main/py3-mako/APKBUILD b/main/py3-mako/APKBUILD
index a618b49e7af..e98ab795de5 100644
--- a/main/py3-mako/APKBUILD
+++ b/main/py3-mako/APKBUILD
@@ -2,34 +2,41 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-mako
_pkgname=Mako
-pkgver=1.2.0
-pkgrel=0
+pkgver=1.3.2
+pkgrel=2
pkgdesc="Python3 fast templating language"
url="https://www.makotemplates.org/"
arch="noarch"
license="MIT"
depends="python3 py3-markupsafe"
-makedepends="py3-setuptools"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
checkdepends="py3-babel py3-pytest"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
replaces="py-mako" # Backwards compatibility
provides="py-mako=$pkgver-r$pkgrel" # Backwards compatibility
+# secfixes:
+# 1.2.2-r0:
+# - CVE-2022-40023
+
build() {
- python3 setup.py build
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
}
check() {
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
# unpackaged py3-lingua
- python3 -m pytest --ignore test/ext/test_linguaplugin.py
+ .testenv/bin/python3 -m pytest --ignore test/ext/test_linguaplugin.py
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
}
sha512sums="
-ad608016d7785a735a28ea18f697be4882da747e3da32e4a7c7be4bf846d37e4d3374d78e62ef85607ae9f3f73ee35dc78b473347e4110c059a504be2c497c6e Mako-1.2.0.tar.gz
+acde7b4be929fdd97f2a3fc133966ffc44b5706dbdd3f1af0fee16620b3c82d12b1a67b7292a229084ebb4f0c392e8db1b2844112baa3c6a5fd2be8777b04897 Mako-1.3.2.tar.gz
"
diff --git a/main/py3-markdown/APKBUILD b/main/py3-markdown/APKBUILD
index ec4c984655c..5feeb2432c6 100644
--- a/main/py3-markdown/APKBUILD
+++ b/main/py3-markdown/APKBUILD
@@ -2,31 +2,42 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-markdown
_pkgname=Markdown
-pkgver=3.3.4
-pkgrel=2
+pkgver=3.6
+pkgrel=0
pkgdesc="Python3 implementation of Markdown"
url="https://python-markdown.github.io/"
arch="noarch"
license="BSD-3-Clause"
-depends="python3"
-makedepends="py3-setuptools"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
checkdepends="py3-coverage py3-yaml"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
replaces="py-markdown" # Backwards compatibility
provides="py-markdown=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- python3 -m unittest discover tests
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m unittest discover tests
}
package() {
- python3 setup.py install --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="37422619dd8f542bfcf7975c92e76a39e4eeeb42386727d52037869cee1617f8efcb74a382a9c7cb903907ebf3643a27ba0de583bc0dbd327a36e72bbf8520af Markdown-3.3.4.tar.gz"
+sha512sums="
+a523f75ea72fa71f4f0f1a59523bb1a6c5c7605ba5a0be4dc37aa5bd5c87e32563f5253404485c99c13caa27501c9003aea524154a7999a22e6497829492b997 py3-markdown-3.6.tar.gz
+"
diff --git a/main/py3-markupsafe/APKBUILD b/main/py3-markupsafe/APKBUILD
index c04719b1b4e..410d4ed0e36 100644
--- a/main/py3-markupsafe/APKBUILD
+++ b/main/py3-markupsafe/APKBUILD
@@ -2,14 +2,16 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-markupsafe
_pkgname=MarkupSafe
-pkgver=2.1.1
-pkgrel=0
+pkgver=2.1.5
+pkgrel=1
pkgdesc="Implements a XML/HTML/XHTML Markup safe string"
-url="https://github.com/mitsuhiko/markupsafe"
+url="https://github.com/pallets/markupsafe"
arch="all"
license="BSD-3-Clause"
depends="python3"
-makedepends="python3-dev py3-setuptools"
+makedepends="python3-dev py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="pytest"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
@@ -17,18 +19,20 @@ replaces="py-markupsafe" # Backwards compatibility
provides="py-markupsafe=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
}
check() {
- python3 setup.py test
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
find "$pkgdir" -name "*.c" -delete
}
sha512sums="
-1d9bf55614b4e0aeca726ebda7bab2829452212f03f2295efdd0340f3dd05eefc9733d6dd0e37f0d06a432ce00ed7d06b28c9e817fc25212675006577f468b3e MarkupSafe-2.1.1.tar.gz
+3ba5af43d23c266377f5d32b11e1faa7955ea8c67eb1c32886c308527f93e75e387294d0eec7794c0c20aad0c705b27f3d1f86b04202f3b63068d12d4053cc71 MarkupSafe-2.1.5.tar.gz
"
diff --git a/main/py3-meld3/APKBUILD b/main/py3-meld3/APKBUILD
index fc972b266a4..54a60bbcc52 100644
--- a/main/py3-meld3/APKBUILD
+++ b/main/py3-meld3/APKBUILD
@@ -1,15 +1,16 @@
# Contributor: Peter Bui <pnutzh4x0r@gmail.com>
-# Maintainer:
+# Maintainer: Peter Shkenev <santurysim@gmail.com>
pkgname=py3-meld3
_pkgname=meld3
pkgver=2.0.1
-pkgrel=2
+pkgrel=8
pkgdesc="An HTML/XML templating engine"
url="https://github.com/supervisor/meld3"
arch="noarch"
-license="ZPL"
+license="ZPL-2.1"
depends="python3"
-makedepends="python3-dev py3-setuptools"
+makedepends="python3-dev py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
@@ -17,11 +18,22 @@ replaces="py-meld3" # Backwards compatibility
provides="py-meld3=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m unittest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="b8203e0a71c7a0e5e38b265d80365b4b86a5bf66cc7e9c58d67e6beca563b992bc71f8e1afd8782ab2a60f0ada60405279dea894d6767326ff1ffcf66f255e1e meld3-2.0.1.tar.gz"
+sha512sums="
+b8203e0a71c7a0e5e38b265d80365b4b86a5bf66cc7e9c58d67e6beca563b992bc71f8e1afd8782ab2a60f0ada60405279dea894d6767326ff1ffcf66f255e1e meld3-2.0.1.tar.gz
+"
diff --git a/main/py3-mimeparse/APKBUILD b/main/py3-mimeparse/APKBUILD
index c6f283d187e..79a3b107b2c 100644
--- a/main/py3-mimeparse/APKBUILD
+++ b/main/py3-mimeparse/APKBUILD
@@ -1,30 +1,38 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
+# Maintainer: Peter Shkenev <santurysim@gmail.com>
pkgname=py3-mimeparse
_pkgname=python-mimeparse
pkgver=1.6.0
-pkgrel=4
+pkgrel=10
pkgdesc="Basic functions for parsing mime-types and matching media-ranges"
-url="https://github.com/dbtsai/python-mimeparse"
+url="https://github.com/falconry/python-mimeparse"
arch="noarch"
license="MIT"
-makedepends="py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/dbtsai/python-mimeparse/archive/$pkgver.tar.gz"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/falconry/python-mimeparse/archive/$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
replaces="py-mimeparse" # Backwards compatibility
provides="py-mimeparse=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- python3 mimeparse_test.py
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 mimeparse_test.py
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="31752e6019be3a766fa429d27eab071bb77e1c812e6a241d8b84838eda206549877fb3369200338a603d4d93fbbbaaa16f6cf47391aeac65675fd271a5f39259 py3-mimeparse-1.6.0.tar.gz"
+sha512sums="
+31752e6019be3a766fa429d27eab071bb77e1c812e6a241d8b84838eda206549877fb3369200338a603d4d93fbbbaaa16f6cf47391aeac65675fd271a5f39259 py3-mimeparse-1.6.0.tar.gz
+"
diff --git a/main/py3-mock/APKBUILD b/main/py3-mock/APKBUILD
index 9bb8b4d833c..5e1922433e2 100644
--- a/main/py3-mock/APKBUILD
+++ b/main/py3-mock/APKBUILD
@@ -2,14 +2,14 @@
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-mock
_pkgname=mock
-pkgver=4.0.3
+pkgver=5.1.0
pkgrel=2
pkgdesc="Python3 Mocking and Patching Library for Testing"
url="https://github.com/testing-cabal/mock"
arch="noarch"
license="BSD-2-Clause"
-depends="python3 py3-pbr py3-six"
-makedepends="py3-setuptools"
+makedepends="py3-gpep517 py3-setuptools py3-wheel py3-pbr"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/m/mock/mock-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
checkdepends="py3-pytest"
@@ -18,16 +18,20 @@ replaces="py-mock" # Backwards compatibility
provides="py-mock=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
}
check() {
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
# The skipped test checks internal Python unittest behavior and fails
- python3 -m pytest -k "not test_bool_not_called"
+ .testenv/bin/python3 -m pytest -k "not test_bool_not_called"
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" .dist/*.whl
}
-sha512sums="aa4275344a40fd3eea75c1c305f82dd6a561d2a4584b7acd0a85f3a9b34d0cfd1722770d74ae26c04d871d844a3189186d7f087017ddf850d6c378cc98676ea5 mock-4.0.3.tar.gz"
+sha512sums="
+26b7350fddf2eca82b6dfaafc58cacbd4031fd787b1afc463ee13eff778846941120fd89755e4783bfad389f01cfbdd64f2feab5a12ac2bd4ca6407c0f2e973c mock-5.1.0.tar.gz
+"
diff --git a/main/py3-more-itertools/APKBUILD b/main/py3-more-itertools/APKBUILD
index 96a91022bc2..c020c4681d8 100644
--- a/main/py3-more-itertools/APKBUILD
+++ b/main/py3-more-itertools/APKBUILD
@@ -2,44 +2,36 @@
# Maintainer: TBK <alpine@jjtc.eu>
pkgname=py3-more-itertools
_pkgname=more-itertools
-pkgver=8.13.0
-pkgrel=0
+pkgver=10.2.0
+pkgrel=1
pkgdesc="More routines for operating on iterables, beyond itertools"
url="https://github.com/more-itertools/more-itertools"
arch="noarch"
license="MIT"
depends="python3"
-makedepends="py3-installer"
-source="https://github.com/more-itertools/more-itertools/archive/v$pkgver/more-itertools-$pkgver.tar.gz
- https://files.pythonhosted.org/packages/py3/m/more_itertools/more_itertools-$pkgver-py3-none-any.whl
- "
+makedepends="py3-gpep517 py3-flit-core py3-wheel py3-installer"
+subpackages="$pkgname-pyc"
+source="https://github.com/more-itertools/more-itertools/archive/v$pkgver/more-itertools-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
replaces="py-more-itertools" # Backwards compatibility
provides="py-more-itertools=$pkgver-r$pkgrel" # Backwards compatibility
-prepare() {
- default_prepare
-
- # use tests from GitHub tarball, but source code from wheel
- unzip -q "$srcdir"/more_itertools-$pkgver-py3-none-any.whl -d "$srcdir"/wheel
-}
-
build() {
- # install directly from pypi tarball to avoid circular dep with py3-setuptools
- return 0
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- PYTHONPATH="$srcdir/wheel" python3 -m unittest
+ python3 -m unittest
}
package() {
python3 -m installer -d "$pkgdir" \
- "$srcdir"/more_itertools-$pkgver-py3-none-any.whl
+ .dist/*.whl
}
sha512sums="
-c723d46ccd16ce26e5cd53971959ffcf617558d17a0fb584d1df2f27e5a24e39e62c0dbe42be7bd8ea9c2f60a055feb9fbb21ccd2a4439e0bb2365ce805bb44d more-itertools-8.13.0.tar.gz
-71b94d28a498dc103d6180ee5b8f75572ae204eada9cd2cbd66c1783a34db9d4579820a178e06ba29645efe4bb3d4f1a745931c65d992814712afd1358a6c06d more_itertools-8.13.0-py3-none-any.whl
+910f053338a4e9ac2786e22d4736bad3bf0f424e65372815b80cb2c62a5a8eda08ca4b7802b0576ac79a1d56b070827a033fdbe6497888f6f373e7e37137c727 more-itertools-10.2.0.tar.gz
"
diff --git a/main/py3-olefile/APKBUILD b/main/py3-olefile/APKBUILD
index c40275302e7..d578f432bd3 100644
--- a/main/py3-olefile/APKBUILD
+++ b/main/py3-olefile/APKBUILD
@@ -2,12 +2,13 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=py3-olefile
pkgver=0.46
-pkgrel=6
+pkgrel=10
pkgdesc="Python module to read/write MS OLE2 files"
url="https://www.decalage.info/olefile"
arch="noarch"
license="BSD-2-Clause"
-makedepends="python3-dev py3-setuptools"
+makedepends="python3-dev py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
source="https://github.com/decalage2/olefile/releases/download/v$pkgver/olefile-$pkgver.tar.gz"
builddir="$srcdir"/${pkgname/py3-/}-$pkgver
@@ -15,15 +16,22 @@ provides="py-olefile=$pkgver-r$pkgrel" # backwards compatibility
replaces="py-olefile" # backwards compatiblity
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- python3 setup.py test
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m unittest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="285dff1eb250d464e338f892dca3e465504523fd956ceeb8bfe40eb9a82510713f64f490749a23bfdc911555f8d9c49580af5b03a15063c2598bb1a39999778f olefile-0.46.tar.gz"
+sha512sums="
+285dff1eb250d464e338f892dca3e465504523fd956ceeb8bfe40eb9a82510713f64f490749a23bfdc911555f8d9c49580af5b03a15063c2598bb1a39999778f olefile-0.46.tar.gz
+"
diff --git a/main/py3-ordered-set/APKBUILD b/main/py3-ordered-set/APKBUILD
index 38ff65d50f8..00ff89b299f 100644
--- a/main/py3-ordered-set/APKBUILD
+++ b/main/py3-ordered-set/APKBUILD
@@ -1,28 +1,36 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer:
+# Maintainer: Peter Shkenev <santurysim@gmail.com>
pkgname=py3-ordered-set
-pkgver=4.0.2
-pkgrel=3
+pkgver=4.1.0
+pkgrel=6
pkgdesc="MutableSet that remembers its order"
-url="https://github.com/LuminosoInsight/ordered-set"
+url="https://github.com/rspeer/ordered-set"
arch="noarch"
license="MIT"
depends="python3"
+makedepends="py3-gpep517 py3-flit-core py3-installer"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
source="https://pypi.io/packages/source/o/ordered-set/ordered-set-$pkgver.tar.gz"
builddir="$srcdir/ordered-set-$pkgver"
+# pytest -> setuptools -> setuptools-stage0 -> this
+options="!check"
-package() {
- # Can't use setuptools since setuptools depends on this
- local _site_pkgs="$(python3 -c 'import site; print(site.getsitepackages()[0])')"
- local _py3ver=$(python3 -c 'import sys; print("{}.{}".format(sys.version_info.major, sys.version_info.minor))')
-
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
- mkdir -p "$pkgdir"/"$_site_pkgs"
- cp -rv ordered_set.egg-info \
- "$pkgdir"/$_site_pkgs/ordered_set-$pkgver-py$_py3ver.egg-info
- cp -rv ordered_set.py "$pkgdir"/$_site_pkgs/
+check() {
+ pytest
+}
- python3 -m compileall -f -q "$pkgdir"/$_site_pkgs/*.py
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/ordered_set-*.whl
}
-sha512sums="d7031ae90fdaf116c27415170a7197be34ff4b977a03684a6fb53dc453845a97cd32b9666ed3ae58fb7bc722ff3b2b4f2e156578841033759b490b359a5619b4 ordered-set-4.0.2.tar.gz"
+sha512sums="
+f12d19f7d9cf0ebcc414d97798f0959ff69a77146839cc6a9067c864f9e0be795795c4d648f736fd7448ddf89666ce37f23e7380d1c9b1678a4787961e4e1e79 ordered-set-4.1.0.tar.gz
+"
diff --git a/main/py3-packaging/APKBUILD b/main/py3-packaging/APKBUILD
index 273d1783f67..f57125de743 100644
--- a/main/py3-packaging/APKBUILD
+++ b/main/py3-packaging/APKBUILD
@@ -1,17 +1,19 @@
# Contributor: Breno Leitao <breno.leitao@gmail.com>
-# Maintainer:
+# Maintainer: Peter Shkenev <santurysim@gmail.com>
pkgname=py3-packaging
_pkgname=packaging
-pkgver=21.3
-pkgrel=0
+pkgver=24.0
+pkgrel=1
pkgdesc="Core utilities for Python3 packages"
options="!check" # Requires py3-pytest which requires py3-setuptools
-url="https://pypi.python.org/pypi/packaging"
+url="https://pypi.org/project/packaging"
arch="noarch"
license="Apache-2.0 AND BSD-2-Clause"
-depends="python3 py3-parsing py3-six"
+depends="python3 py3-parsing"
+makedepends="py3-flit-core py3-gpep517"
# disable check to break circular dep with py3-setuptools
checkdepends="py3-pytest py3-pretend"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/p/packaging/packaging-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
@@ -21,24 +23,25 @@ provides="py-packaging=$pkgver-r$pkgrel" # Backwards compatibility
[ "$CARCH" = s390x ] && options="$options !check" # fails a lot
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
check() {
- PYTHONPATH="$PWD/build/lib" python3 -m pytest \
- --ignore=tests/test_manylinux.py \
- --ignore=tests/test_markers.py \
- --ignore=tests/test_specifiers.py \
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest \
--ignore=tests/test_tags.py \
- --ignore=tests/test_version.py
- # tests that require https://pypi.org/project/pretend/ are disabled
- # above because py3-pretend hasn't been packaged for Alpine Linux
+ --deselect \
+ tests/test_manylinux.py::test_is_manylinux_compatible_old
}
sha512sums="
-2e3aa276a4229ac7dc0654d586799473ced9761a83aa4159660d37ae1a2a8f30e987248dd0e260e2834106b589f259a57ce9936eef0dcc3c430a99ac6b663e05 packaging-21.3.tar.gz
+b6af704f93bcb7611a06eb2bfa94d8dc4bb1e5e9898af7c0eb85e67cf1ebdb858e272ca18019be4daaa43ac3f73b1cb2e690d8b50a4252380a2dc9f2d0e03a58 packaging-24.0.tar.gz
"
diff --git a/main/py3-parsing/APKBUILD b/main/py3-parsing/APKBUILD
index db32860af0d..a1b61ae1eb4 100644
--- a/main/py3-parsing/APKBUILD
+++ b/main/py3-parsing/APKBUILD
@@ -2,35 +2,37 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=py3-parsing
_pkgname=pyparsing
-pkgver=2.4.7
-pkgrel=3
-pkgdesc="An object-oriented approach to text processing"
+pkgver=3.1.2
+pkgrel=1
+pkgdesc="Object-oriented approach to text processing"
url="https://github.com/pyparsing/pyparsing"
arch="noarch"
license="MIT"
depends="python3"
+makedepends="py3-flit-core py3-gpep517"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
+options="!check" # too low level, and needs unpackaged railroad
replaces="py-parsing" # Backwards compatibility
provides="py-parsing=$pkgver-r$pkgrel" # Backwards compatibility
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
check() {
python3 -m unittest
}
package() {
- # Can't use setuptools since setuptools depends on this
- local _site_pkgs="$(python3 -c 'import site; print(site.getsitepackages()[0])')"
- local _py3ver=$(python3 -c 'import sys; print("{}.{}".format(sys.version_info.major, sys.version_info.minor))')
-
- mkdir -p "$pkgdir/$_site_pkgs"
-
- cp -rv $_pkgname.egg-info \
- "$pkgdir/$_site_pkgs"/$_pkgname-$pkgver-py$_py3ver.egg-info
- cp -rv pyparsing.py "$pkgdir/$_site_pkgs"
-
- python3 -m compileall -f -q "$pkgdir/$_site_pkgs"/*.py
+ python3 -m installer -d "$pkgdir" \
+ .dist/pyparsing-$pkgver-py3-none-any.whl
}
-sha512sums="0b9f8f18907f65cb3af1b48ed57989e183f28d71646f2b2f820e772476f596ca15ee1a689f3042f18458206457f4683d10daa6e73dfd3ae82d5e4405882f9dd2 pyparsing-2.4.7.tar.gz"
+sha512sums="
+1134949f3576edbec4438eefe952eb5cc6e734fb060905d714b6a77f71e90d364b01345df5e7b8fb5ffa798c530be9c65f6d152b3f591cba787660c4dd8894d2 pyparsing-3.1.2.tar.gz
+"
diff --git a/main/py3-pathspec/APKBUILD b/main/py3-pathspec/APKBUILD
new file mode 100644
index 00000000000..c397848883e
--- /dev/null
+++ b/main/py3-pathspec/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=py3-pathspec
+_pyname=pathspec
+pkgver=0.12.1
+pkgrel=2
+pkgdesc="Utility library for gitignore style pattern matching of file paths"
+url="https://github.com/cpburnz/python-path-specification"
+license="MPL-2.0"
+arch="noarch"
+depends="python3"
+makedepends="py3-flit-core py3-gpep517"
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://files.pythonhosted.org/packages/source/p/pathspec/pathspec-$pkgver.tar.gz"
+builddir="$srcdir/$_pyname-$pkgver"
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 -m unittest
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/pathspec-$pkgver-py3-none-any.whl
+}
+
+sha512sums="
+19d1a8ae5936e76eacd691b0e2fb33d0de376556751a9ae007f6b09d0aa36af7d171101df620cab3e93c9913be578ff3d6bba9d4460351ac248e5c9e015380ad py3-pathspec-0.12.1.tar.gz
+"
diff --git a/main/py3-pbr/APKBUILD b/main/py3-pbr/APKBUILD
index cdc178f8e4b..17b479df393 100644
--- a/main/py3-pbr/APKBUILD
+++ b/main/py3-pbr/APKBUILD
@@ -2,14 +2,15 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=py3-pbr
_pkgname=pbr
-pkgver=5.9.0
-pkgrel=0
+pkgver=5.11.1
+pkgrel=5
pkgdesc="Python3 Build Reasonableness"
-url="https://pypi.python.org/pypi/pbr"
+url="https://pypi.org/project/pbr"
arch="noarch"
license="Apache-2.0"
-depends="python3"
-makedepends="py3-setuptools"
+depends="py3-setuptools"
+makedepends="py3-gpep517 py3-wheel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
options="!check" # requires testscenarios from pypi
@@ -18,13 +19,16 @@ replaces="py-pbr" # Backwards compatibility
provides="py-pbr=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
sha512sums="
-b36cc331664b91899a884bb1bc6980174ba2463db35c591d480d0b5a49dd37781132893e488c6a9238fbd2ec16589652d66b01a8c2701d02ff5c0b04e9c6121b pbr-5.9.0.tar.gz
+466dc5ce2622c43451186698f00d405141878449ffe9f7771b0057e8356bf12b426a9bfefff7e5843f1b3f963af3ffc9c4a42fa91a9407b79617abea046ff438 pbr-5.11.1.tar.gz
"
diff --git a/main/py3-pep517/APKBUILD b/main/py3-pep517/APKBUILD
deleted file mode 100644
index acf99048e3a..00000000000
--- a/main/py3-pep517/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer: psykose <alice@ayaya.dev>
-pkgname=py3-pep517
-pkgver=0.12.0
-pkgrel=2
-pkgdesc="Wrappers to build python3 packgaes with PEP 517 hooks"
-options="!check" # Requires testpath
-url="https://github.com/pypa/pep517"
-arch="noarch"
-license="MIT"
-depends="python3 py3-tomli"
-source="https://pypi.io/packages/source/p/pep517/pep517-$pkgver.tar.gz"
-builddir="$srcdir/pep517-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-package() {
- python3 setup.py install --root="$pkgdir"
-}
-
-sha512sums="
-5af1fd2e35414d2a91104c967c48e554c9f838d598e14bc55f9a824c16ba484c817a90065b6734568fc77660bd85b309347392774fb4d54dd969dab8680768e7 pep517-0.12.0.tar.gz
-"
diff --git a/main/py3-pexpect/APKBUILD b/main/py3-pexpect/APKBUILD
index 66f4fee56f9..5734e8c767b 100644
--- a/main/py3-pexpect/APKBUILD
+++ b/main/py3-pexpect/APKBUILD
@@ -2,23 +2,23 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=py3-pexpect
_pkgname=pexpect
-pkgver=4.8.0
-pkgrel=2
+pkgver=4.9
+pkgrel=1
pkgdesc="Make Python a better tool for controlling and automating other programs"
-url="http://pexpect.readthedocs.org/en/stable"
+url="https://pexpect.readthedocs.io/en/stable/"
arch="noarch"
license="ISC"
depends="python3 py3-ptyprocess"
-makedepends="py3-setuptools"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
checkdepends="py3-pytest bash coreutils"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/pexpect/$_pkgname/archive/$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
-replaces="py-pexpect" # Backwards compatibility
-provides="py-pexpect=$pkgver-r$pkgrel" # Backwards compatibility
-
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
@@ -26,10 +26,17 @@ check() {
_tests_colors="not test_async_replwrap_multiline and not REPLWrapTestCase"
# tests that have 'python' hardcoded
_tests_py2="not test_100000 and not test_run_exit"
- python3 -m pytest -k "$_tests_colors and $_tests_py2"
+
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest -k "$_tests_colors and $_tests_py2"
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="f141e1368ceea15209b04555a524443cd9cf36d4a3677b63f7a2b079d41aae3fb8656612772732f4097b803c55a05f9bb7e3b427d11ae5357666406669ae6867 py3-pexpect-4.8.0.tar.gz"
+
+sha512sums="
+222aa3a2aba174f1f9c9e5bbf71aa59fbc1c1830fce6691ecb01ec4f0613b1f2141da489a6bd7bfd226f46d98d52a16e1f5a5b7345bcf6557110bfd52cd5f31e py3-pexpect-4.9.tar.gz
+"
diff --git a/main/py3-pluggy/APKBUILD b/main/py3-pluggy/APKBUILD
index 6ef16a64500..a60df3a8a47 100644
--- a/main/py3-pluggy/APKBUILD
+++ b/main/py3-pluggy/APKBUILD
@@ -3,8 +3,8 @@
# Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
pkgname=py3-pluggy
_pkgname=pluggy
-pkgver=1.0.0
-pkgrel=0
+pkgver=1.4.0
+pkgrel=1
pkgdesc="Plugin management and hook calling for Python"
# Needs py3-pytest for checkdepends, which require py3-pluggy
# in depends, so disable here to break a circular dependency
@@ -12,29 +12,34 @@ options="!check"
url="https://pluggy.readthedocs.io/en/latest/"
arch="noarch"
license="MIT"
-depends="python3"
-makedepends="py3-setuptools py3-wheel"
-checkdepends="py3-pytest"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
- eliminate-setuptools_scm.patch
+makedepends="
+ py3-gpep517
+ py3-setuptools_scm
+ py3-wheel
"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
build() {
- python3 setup.py build
+ SETUPTOOLS_SCM_PRETEND_VERSION="$pkgver" \
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- rm tox.ini
- python3 -m pytest
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-
sha512sums="
-cf0bcbb4330c24ce473614befa19548f33fb39fa0ad094e1eae786202d7adadc28e16499f80ab96b630091765404ca5c5b6f9a55bc605e03514d8ab50cf9ae00 pluggy-1.0.0.tar.gz
-08ec25cbe7dcdc7e81e8fd3de9e6e7d91f490011a5314cea4d3bc3e44b03d921847a7587ccb3292ada22f6e1d499072b98e7d54846fe1216aabc6359bf4a3f5f eliminate-setuptools_scm.patch
+ac21a0c68cfcb9c7c401e5c48404f7447489b75befe8bc8b6e7ea84f24a1c6dbfb3de024577dd9e36ca9f538f9867ef836ba13018e3b8b348bba3e9bbd0c4dfd pluggy-1.4.0.tar.gz
"
diff --git a/main/py3-pluggy/eliminate-setuptools_scm.patch b/main/py3-pluggy/eliminate-setuptools_scm.patch
deleted file mode 100644
index 5acc6cf6b65..00000000000
--- a/main/py3-pluggy/eliminate-setuptools_scm.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 72c0ac15d6ed0e960232b2766ba80ad635351aaa Mon Sep 17 00:00:00 2001
-From: Maxim Karasev <begs@disroot.org>
-Date: Thu, 14 Apr 2022 00:15:48 +0300
-Subject: [PATCH] Eliminate setuptools_scm
-
----
- pyproject.toml | 4 ----
- setup.cfg | 2 --
- setup.py | 2 +-
- 3 files changed, 1 insertion(+), 7 deletions(-)
-
-diff --git a/pyproject.toml b/pyproject.toml
-index 15eba26..2498da1 100644
---- a/pyproject.toml
-+++ b/pyproject.toml
-@@ -1,13 +1,9 @@
- [build-system]
- requires = [
- "setuptools",
-- "setuptools-scm",
- "wheel",
- ]
-
--[tool.setuptools_scm]
--write_to = "src/pluggy/_version.py"
--
- [tool.towncrier]
- package = "pluggy"
- package_dir = "src/pluggy"
-diff --git a/setup.cfg b/setup.cfg
-index ad964c7..f922858 100644
---- a/setup.cfg
-+++ b/setup.cfg
-@@ -38,8 +38,6 @@ install_requires =
- python_requires = >=3.6
- package_dir =
- =src
--setup_requires =
-- setuptools-scm
-
- [options.extras_require]
- dev =
-diff --git a/setup.py b/setup.py
-index ed44237..6f99bf6 100644
---- a/setup.py
-+++ b/setup.py
-@@ -2,4 +2,4 @@ from setuptools import setup
-
-
- if __name__ == "__main__":
-- setup(use_scm_version={"write_to": "src/pluggy/_version.py"})
-+ setup(version='1.0.0')
---
-2.35.2
-
diff --git a/main/py3-ply/APKBUILD b/main/py3-ply/APKBUILD
deleted file mode 100644
index ecf81828cfa..00000000000
--- a/main/py3-ply/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: tcely <py3-ply+aports@tcely.33mail.com>
-# Contributor: Keith Maxwell <keith.maxwell@gmail.com>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-_pkgname=ply
-pkgname=py3-$_pkgname
-pkgver=3.11
-pkgrel=5
-pkgdesc="Python Lex & Yacc"
-url="https://www.dabeaz.com/ply/"
-arch="noarch"
-license="BSD-3-Clause"
-depends="python3"
-checkdepends="py3-six"
-makedepends="python3-dev"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/dabeaz/$_pkgname/archive/$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- PYTHON=python3 make test
-
- cd test
- python3 testcpp.py
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="c36e4ea0eb5bb7cca8cc34aa62dd711be755e44f1336a0093d7c9c1ea4d5d8cae8316416a2109ba24bb2b71f7a971b0b34a7ea45c43d4c7c63c513156945fc17 ply-3.11.tar.gz"
diff --git a/main/py3-pretend/APKBUILD b/main/py3-pretend/APKBUILD
index 95d076623db..bffb0d5fca2 100644
--- a/main/py3-pretend/APKBUILD
+++ b/main/py3-pretend/APKBUILD
@@ -1,21 +1,23 @@
# Contributor: Michał Polański <michal@polanski.me>
# Maintainer: Michał Polański <michal@polanski.me>
pkgname=py3-pretend
-_pyname=pretend
pkgver=1.0.9
-pkgrel=2
+pkgrel=7
pkgdesc="Library for stubbing in Python"
url="https://github.com/alex/pretend"
license="BSD-3-Clause"
arch="noarch"
depends="python3"
-makedepends="py3-setuptools"
+makedepends="py3-gpep517 py3-installer py3-setuptools py3-wheel"
checkdepends="py3-pytest"
-source="$_pyname-$pkgver.tar.gz::https://github.com/alex/pretend/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$_pyname-$pkgver"
+subpackages="$pkgname-pyc"
+source="https://github.com/alex/pretend/archive/v$pkgver/py3-pretend-$pkgver.tar.gz"
+builddir="$srcdir/pretend-$pkgver"
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
@@ -23,7 +25,10 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir" --skip-build
+ python3 -m installer -d "$pkgdir" \
+ .dist/pretend-$pkgver-py2.py3-none-any.whl
}
-sha512sums="976e3272557aecfb11e4147a868ea96e23546e277d57d726f41b945103bef3451039716e6bbc5082d691fa1fd331c06b3d0f8b254deb0510948153571326eaf0 pretend-1.0.9.tar.gz"
+sha512sums="
+976e3272557aecfb11e4147a868ea96e23546e277d57d726f41b945103bef3451039716e6bbc5082d691fa1fd331c06b3d0f8b254deb0510948153571326eaf0 py3-pretend-1.0.9.tar.gz
+"
diff --git a/main/py3-ptyprocess/APKBUILD b/main/py3-ptyprocess/APKBUILD
index 32a07880591..ed4d9e006ef 100644
--- a/main/py3-ptyprocess/APKBUILD
+++ b/main/py3-ptyprocess/APKBUILD
@@ -3,7 +3,7 @@
pkgname=py3-ptyprocess
_pkgname=ptyprocess
pkgver=0.7.0
-pkgrel=2
+pkgrel=6
pkgdesc="Run a subprocess in a pseudo terminal"
url="https://github.com/pexpect/ptyprocess"
arch="noarch"
@@ -11,6 +11,7 @@ license="ISC"
depends="python3"
makedepends="py3-setuptools"
checkdepends="bash"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
@@ -26,8 +27,9 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-
-sha512sums="791d8f2e79900627215ce80ce67ee9c79173dbc08297c6219d5058f9b80c5e323b93049e6836a70c4073f43548d22e3cf310f2e9948ef12f96bcaa15b0ddb2f3 ptyprocess-0.7.0.tar.gz"
+sha512sums="
+791d8f2e79900627215ce80ce67ee9c79173dbc08297c6219d5058f9b80c5e323b93049e6836a70c4073f43548d22e3cf310f2e9948ef12f96bcaa15b0ddb2f3 ptyprocess-0.7.0.tar.gz
+"
diff --git a/main/py3-py/0001-remove-setuptools_scm.patch b/main/py3-py/0001-remove-setuptools_scm.patch
index 34a9728c32e..aa036573814 100644
--- a/main/py3-py/0001-remove-setuptools_scm.patch
+++ b/main/py3-py/0001-remove-setuptools_scm.patch
@@ -1,22 +1,20 @@
diff --git a/setup.py b/setup.py
-index d097daa..672c6d4 100644
+index 5948ef0..97d5f10 100644
--- a/setup.py
+++ b/setup.py
-@@ -1,13 +1,15 @@
+@@ -1,13 +1,13 @@
from setuptools import setup, find_packages
++from py._version import version
-+ver = {}
-+with open("py/_version.py") as f:
-+ exec(f.read(), ver)
def main():
setup(
name='py',
-+ version=ver['version'],
++ version=version,
description='library with cross-python path, ini-parsing, io, code, log facilities',
long_description=open('README.rst').read(),
- use_scm_version={"write_to": "py/_version.py"},
-- setup_requires=["setuptools-scm"],
+- setup_requires=["setuptools_scm"],
url='https://py.readthedocs.io/',
license='MIT license',
platforms=['unix', 'linux', 'osx', 'cygwin', 'win32'],
diff --git a/main/py3-py/APKBUILD b/main/py3-py/APKBUILD
index e4172434c19..c110743c11a 100644
--- a/main/py3-py/APKBUILD
+++ b/main/py3-py/APKBUILD
@@ -1,18 +1,18 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-py
-pkgver=1.10.0
-pkgrel=2
+pkgver=1.11.0
+pkgrel=3
pkgdesc="Python3 library with cross-python path, ini-parsing, io, code, log facilities"
url="https://py.readthedocs.io"
arch="noarch"
license="MIT"
depends="python3"
makedepends="py3-setuptools"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/p/py/py-$pkgver.tar.gz
0001-remove-setuptools_scm.patch
"
-options="!check" # Broken
builddir="$srcdir/py-$pkgver"
replaces="py-py" # Backwards compatibility
@@ -36,12 +36,16 @@ build() {
}
check() {
- python3 setup.py test
+ # python3 setup.py test
+ # TypeError: <module>.__dict__ is not a dictionary
+ PYTHONPATH=build/lib python3 -c 'import py'
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 setup.py install --skip-build --root="$pkgdir"
}
-sha512sums="7a0eb964067bc01fa4f8ffe70b043abfd4619134fbee2935713e28382085d0b8972c319ed665a643b879b18ce662db8a9bd722937af7cf36c233214eea211dd1 py-1.10.0.tar.gz
-387457b20851c86a4e5198eb9c43ddf3ab8e4a9461a2b1ff7cd3813ce4f713769e08a2e1ce15901b7762f6fd0863d1736ffc7733673f251470653000f678f43b 0001-remove-setuptools_scm.patch"
+sha512sums="
+ce8dd791f9f6dd7e60a6caad32ff5cb816389a0840436efdedf4e0d4b0bfa09f7aea9e7c31d89903c72fe6ef17170a85af480525ba92c458ed73501a0420f2c4 py-1.11.0.tar.gz
+eedb84da521cda62ccca158faaae39f7e5915ec11123d8083a4a5817766e388e4b3ed2ca09c0f91fe2b6f7efd3f0212fd8b73e54097ea444c2c4b7da0151d0e7 0001-remove-setuptools_scm.patch
+"
diff --git a/main/py3-pygments/APKBUILD b/main/py3-pygments/APKBUILD
index dc0707435be..e111445af76 100644
--- a/main/py3-pygments/APKBUILD
+++ b/main/py3-pygments/APKBUILD
@@ -1,19 +1,20 @@
+# Maintainer: Julien Voisin <julien.voisin@dustri.org>
# Contributor: Peter Bui <pnutzh4x0r@gmail.com>
-# Maintainer: Matt Smith <mcs@darkregion.net>
pkgname=py3-pygments
-_pkgname=Pygments
-pkgver=2.11.2
-pkgrel=0
+pkgver=2.17.2
+pkgrel=1
pkgdesc="Syntax highlighting package written in Python"
url="https://pygments.org/"
arch="noarch"
license="BSD-2-Clause"
depends="python3"
-makedepends="py3-setuptools"
+makedepends="py3-setuptools py3-gpep517 py3-wheel py3-installer"
checkdepends="py3-pytest py3-lxml py3-wcag-contrast-ratio"
-subpackages="$pkgname-doc"
-source="https://files.pythonhosted.org/packages/source/P/Pygments/Pygments-$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
+subpackages="$pkgname-pyc $pkgname-doc"
+source="https://files.pythonhosted.org/packages/source/P/Pygments/pygments-$pkgver.tar.gz
+ build-with-setuptools.patch
+ "
+builddir="$srcdir/pygments-$pkgver"
options="!check" # causes issues when bootstrapping (py3-pytest depends on this)
replaces="py-pygments" # Backwards compatibility
@@ -24,15 +25,20 @@ provides="py-pygments=$pkgver-r$pkgrel" # Backwards compatibility
# - CVE-2021-20270
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- python3 -m pytest
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/Pygments*.whl
mkdir -p "$pkgdir"/usr/bin
ln -s pygmentize "$pkgdir"/usr/bin/pygmentize-3
@@ -57,5 +63,6 @@ doc() {
}
sha512sums="
-606ff0c35fa47882f4c5c3794827132e1ee6ccbb4895ae858f9c93ea0c92b73163c9f4d630b51a8bb782ba0b4944a66d1059ad5d017d3191a0a5b30c1e5b8f9f Pygments-2.11.2.tar.gz
+a3408a21f4c0a9f1a81d4fae5c2924f66f1f17daf98a52c4379d6953625354f47bb8db3005e6ab09407627f592843efde12afb14e1271c1e685973eb4c238d89 pygments-2.17.2.tar.gz
+132d410a0964fc27624e53c13bc72fc5b13a726752cb60ce8ab082c29ba24aba80a49a32805f942258cd10e07e334428695b4cae9ae0ddc984e934df0c2e1f08 build-with-setuptools.patch
"
diff --git a/main/py3-pygments/build-with-setuptools.patch b/main/py3-pygments/build-with-setuptools.patch
new file mode 100644
index 00000000000..db620c52a86
--- /dev/null
+++ b/main/py3-pygments/build-with-setuptools.patch
@@ -0,0 +1,31 @@
+py3-hatchling is currently in community/ while py3-pygments is in main/.
+An aport in main/ cannot depend upon one in community/, so build with
+py3-setuptools while waiting for py3-hatchling to be moved to main/.
+
+
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -1,6 +1,7 @@
+ [build-system]
+-requires = ["hatchling"]
+-build-backend = "hatchling.build"
++# setuptools added pyproject.toml support in v61.0.0
++requires = ["setuptools >= 61"]
++build-backend = "setuptools.build_meta"
+
+ [project]
+ name = "Pygments"
+@@ -54,9 +55,8 @@
+ [project.scripts]
+ pygmentize = "pygments.cmdline:main"
+
+-# Temporary workaround for https://github.com/pypa/hatch/issues/1054
+-[tool.hatch.build.targets.wheel]
+-packages = ["pygments"]
++[tool.setuptools.dynamic]
++version = {attr = "pygments.__version__" }
+
+-[tool.hatch.version]
+-path = "pygments/__init__.py"
++[tool.setuptools.packages.find]
++include = ["pygments", "pygments.*"]
diff --git a/main/py3-pynacl/APKBUILD b/main/py3-pynacl/APKBUILD
deleted file mode 100644
index d9d4becc300..00000000000
--- a/main/py3-pynacl/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=py3-pynacl
-pkgver=1.5.0
-pkgrel=0
-pkgdesc="Python3 binding to the Networking and Cryptography (NaCl) library"
-url="https://github.com/pyca/pynacl"
-arch="all"
-license="Apache-2.0"
-depends="py3-cffi py3-six"
-makedepends="py3-setuptools python3-dev libffi-dev py3-wheel"
-checkdepends="py3-pytest py3-hypothesis"
-source="https://github.com/pyca/pynacl/archive/$pkgver/pynacl-$pkgver.tar.gz
- ppc64le-disable-configure-segfaultcheck.patch
- "
-builddir="$srcdir/pynacl-$pkgver"
-
-replaces="py-pynacl" # Backwards compatibility
-provides="py-pynacl=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir" --skip-build
-}
-
-sha512sums="
-905d3a7ce7f758b31a5d34471d5a0202fd2ba3d904a7ec59a158bcd1ea572fc87e29fc144c733d151cbaa48788c939808bc51d00acc973fe6d190eefdd3bfd59 pynacl-1.5.0.tar.gz
-a96f649bb7d1552612f46668ce1c27dd4bb62e0e6459a02e9769a967c54ebe8467c3e8c515789a65838f5c55c96f381fabea4cc07fde8857a65f7dafa062c07c ppc64le-disable-configure-segfaultcheck.patch
-"
diff --git a/main/py3-pynacl/ppc64le-disable-configure-segfaultcheck.patch b/main/py3-pynacl/ppc64le-disable-configure-segfaultcheck.patch
deleted file mode 100644
index ccc61af682a..00000000000
--- a/main/py3-pynacl/ppc64le-disable-configure-segfaultcheck.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/src/libsodium/configure
-+++ b/src/libsodium/configure
-@@ -8742,7 +8742,11 @@
- signal(SIGSEGV, sig);
- signal(SIGBUS, sig);
- #if !defined(__SANITIZE_ADDRESS__) && !defined(__EMSCRIPTEN__)
-+#ifndef __powerpc64__
- for (i = 0; i < 10000000; i += 1024) { x[-i] = x[i] = (unsigned char) i; }
-+#else
-+exit(0);
-+#endif
- #endif
- free((void *) x);
- exit(1)
diff --git a/main/py3-pytest-timeout/APKBUILD b/main/py3-pytest-timeout/APKBUILD
index 37bf1e647db..12dc3c92dda 100644
--- a/main/py3-pytest-timeout/APKBUILD
+++ b/main/py3-pytest-timeout/APKBUILD
@@ -2,32 +2,36 @@
# Maintainer: Oleg Titov <oleg.titov@gmail.com>
pkgname=py3-pytest-timeout
_pyname=pytest-timeout
-pkgver=1.4.2
-pkgrel=2
+pkgver=2.3.1
+pkgrel=1
pkgdesc="py.test plugin to abort hanging tests"
url="https://github.com/pytest-dev/pytest-timeout/"
arch="noarch"
license="MIT"
depends="py3-pytest"
-makedepends="py3-setuptools"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
checkdepends="py3-pexpect"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/p/pytest-timeout/pytest-timeout-$pkgver.tar.gz"
builddir="$srcdir/$_pyname-$pkgver"
-options="!check" # tests broken
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- PYTHONPATH="$PWD/build/lib" python3 -m pytest -x
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest -x
}
package() {
- python3 setup.py install \
- --prefix=/usr \
- --root="$pkgdir" \
- --single-version-externally-managed
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="3446ecdb5aaad5fbca12df4e7f4f40c6c1a12895d3ed9f3a3ee24800ce36deed3cb8c09a4cc72220c962b06f821cfd55bf7eebbca23664c56abf2d0e5bc8fbea pytest-timeout-1.4.2.tar.gz"
+sha512sums="
+f200d625d11f76173521f4e2e4e09d57f6613d9b1420c57893b454ec496d5f11b32390b95eb995b403d15f8563b742a58fa0e0cbad42246b4049787a389ad83e pytest-timeout-2.3.1.tar.gz
+"
diff --git a/main/py3-pytest/0001-remove-setuptools_scm.patch b/main/py3-pytest/0001-remove-setuptools_scm.patch
deleted file mode 100644
index f32cecbc63e..00000000000
--- a/main/py3-pytest/0001-remove-setuptools_scm.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/pyproject.toml b/pyproject.toml
-index 5d32b75..d962832 100644
---- a/pyproject.toml
-+++ b/pyproject.toml
-@@ -2,14 +2,10 @@
- requires = [
- # sync with setup.py until we discard non-pep-517/518
- "setuptools>=45.0",
-- "setuptools-scm[toml]>=6.2.3",
- "wheel",
- ]
- build-backend = "setuptools.build_meta"
-
--[tool.setuptools_scm]
--write_to = "src/_pytest/_version.py"
--
- [tool.pytest.ini_options]
- minversion = "2.0"
- addopts = "-rfEX -p pytester --strict-markers"
-diff --git a/setup.cfg b/setup.cfg
-index 93abbc8..c05bd14 100644
---- a/setup.cfg
-+++ b/setup.cfg
-@@ -56,7 +56,6 @@ package_dir =
- =src
- setup_requires =
- setuptools
-- setuptools-scm>=6.0
- zip_safe = no
-
- [options.entry_points]
diff --git a/main/py3-pytest/APKBUILD b/main/py3-pytest/APKBUILD
index cfaa4e76e82..58c22ba9062 100644
--- a/main/py3-pytest/APKBUILD
+++ b/main/py3-pytest/APKBUILD
@@ -1,30 +1,22 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-pytest
-pkgver=7.1.2
+pkgver=8.1.1
pkgrel=1
pkgdesc="Python3 testing library"
url="https://docs.pytest.org/en/latest/"
arch="noarch"
license="MIT"
depends="
- py3-atomicwrites
- py3-attrs
py3-iniconfig
- py3-more-itertools
py3-packaging
py3-pluggy
py3-py
- py3-pygments
- py3-six
- py3-tomli
- py3-wcwidth
- python3
"
-makedepends="py3-setuptools"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
checkdepends="bash py3-hypothesis py3-virtualenv py3-xmlschema"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/p/pytest/pytest-$pkgver.tar.gz
- 0001-remove-setuptools_scm.patch
"
builddir="$srcdir/pytest-$pkgver"
options="!check" # causes bootstrapping issues because of checkdepends
@@ -39,12 +31,14 @@ prepare() {
}
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- python3 -m venv --system-site-packages test-env
- test-env/bin/python3 setup.py install
+ python3 -m venv --clear --without-pip --system-site-packages test-env
+ test-env/bin/python3 -m installer .dist/pytest*.whl
test-env/bin/python3 -m pytest
}
@@ -56,10 +50,10 @@ package() {
ln -s $name-3 "$pkgdir"/usr/bin/$name
done
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/pytest*.whl
}
sha512sums="
-e61c9b0a8fc053626da307d6bac1f5caab451c4948ef7c7f2e2f991c3433a55f81ec0d9412fca646c02f22e695c71e873ee48fc0ab0aad337ce01b70628df494 pytest-7.1.2.tar.gz
-3e8f2ed789b668371a51c25bd3ff1c31132fc8a1e415437034023cd2537d1a27d759058156664730a8c381c2a2a536813b739b1d8fbb2534c6d8ed374629e979 0001-remove-setuptools_scm.patch
+f1a9f69cd4eca3ab36c36bc666bf70b099125ed6e17b89d13554c3f13b100d05abfd0b35516660d00ca4fb9eca81164ab02bc8f7a9a8d90fd4302bf399cd88c0 pytest-8.1.1.tar.gz
"
diff --git a/main/py3-requests/APKBUILD b/main/py3-requests/APKBUILD
index da9cd87c9f4..893fb80d308 100644
--- a/main/py3-requests/APKBUILD
+++ b/main/py3-requests/APKBUILD
@@ -1,10 +1,10 @@
# Contributor: Peter Bui <pnutzh4x0r@gmail.com>
-# Maintainer: Drew DeVault <sir@cmpwn.com>
+# Maintainer: Steven Guikal <void@fluix.one>
pkgname=py3-requests
-pkgver=2.28.1
-pkgrel=0
+pkgver=2.31.0
+pkgrel=2
pkgdesc="HTTP request library for Python3"
-url="http://www.python-requests.org/"
+url="https://requests.readthedocs.io/"
arch="noarch"
license="Apache-2.0"
# Requirements for tests are not available in main
@@ -16,7 +16,8 @@ depends="
py3-urllib3
python3
"
-makedepends="py3-setuptools"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/r/requests/requests-$pkgver.tar.gz"
builddir="$srcdir/requests-$pkgver"
@@ -24,13 +25,16 @@ replaces="py-requests" # Backwards compatibility
provides="py-requests=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
sha512sums="
-c123ec07171c2c7c34e4173b97750adfa313b4312d91c0d58e4eb8750361604017e5b370c23ec886d2cbf704f9074ec5ad0fa9c2cd8e6f9521532adafff39d41 requests-2.28.1.tar.gz
+ce50d64973752f4cf7f7c7c91401669854b55c66d7465bea3689772fae8a6b646cf6720d84a2984bbe6fd78fc8b9ce0aa377f291fb6d7c20c7c2a4be8193acdd requests-2.31.0.tar.gz
"
diff --git a/main/py3-setuptools-stage0/APKBUILD b/main/py3-setuptools-stage0/APKBUILD
deleted file mode 100644
index 5206b65e01f..00000000000
--- a/main/py3-setuptools-stage0/APKBUILD
+++ /dev/null
@@ -1,71 +0,0 @@
-# Maintainer: psykose <alice@ayaya.dev>
-pkgname=py3-setuptools-stage0
-_pkgname=setuptools
-pkgver=52.0.0
-pkgrel=0
-pkgdesc="Collection of enhancements to the Python3 distutils"
-options="!check" # Tests require packages out of main/
-url="https://pypi.python.org/pypi/setuptools"
-arch="noarch"
-license="MIT"
-depends="
- py3-appdirs
- py3-ordered-set
- py3-packaging
- py3-parsing
- python3
- "
-source="$_pkgname-$pkgver.tar.gz::https://github.com/pypa/$_pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
-
-# provides bootstrap for main/py3-setuptools
-provides="py3-setuptools-bootstrap"
-provider_priority=1 # lowest
-
-export SETUPTOOLS_INSTALL_WINDOWS_SPECIFIC_FILES=0
-
-prepare() {
- default_prepare
-
- # Unbundle
- rm -rf pkg_resources/extern pkg_resources/_vendor \
- setuptools/extern setuptools/_vendor
-
- # Upstream devendoring logic is badly broken, see:
- # https://bugs.archlinux.org/task/58670
- # https://github.com/pypa/pip/issues/5429
- # https://github.com/pypa/setuptools/issues/1383
- # The simplest fix is to simply rewrite import paths to use the canonical
- # location in the first place
- for _module in setuptools pkg_resources '' ; do
- find . -name \*.py -exec sed -i \
- -e 's/from '$_module.extern' import/import/' \
- -e 's/from '$_module.extern'./from /' \
- -e 's/import '$_module.extern'./import /' \
- -e "s/__import__('$_module.extern./__import__('/" \
- {} +
- done
-
- # Fix post-release tag
- sed -e '/tag_build = .post/d' \
- -e '/tag_date = 1/d' \
- -i setup.cfg
-
- python3 bootstrap.py
-}
-
-build() {
- python3 setup.py build
-}
-
-package() {
- # Otherwise it complains that build/scripts-3.9 cannot be found
- # no other changes noted
- mkdir -p build/scripts-3.9
-
- python3 setup.py install --root="$pkgdir" --skip-build
-}
-
-sha512sums="
-f397181a94d1bd3afbf2d1279554df9d448af963886c53ab391eeb6482a4fc6baf9434b5c6a8da36ae0e1d8f5274c93cb2b37d996112880cb2bad8c7767ac1b1 setuptools-52.0.0.tar.gz
-"
diff --git a/main/py3-setuptools/APKBUILD b/main/py3-setuptools/APKBUILD
index 93f41b78939..be5dcb3d449 100644
--- a/main/py3-setuptools/APKBUILD
+++ b/main/py3-setuptools/APKBUILD
@@ -1,30 +1,30 @@
# Contributor: Andrew Manison <amanison@anselsystems.com>
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Contributor: Leo <thinkabit.ukim@gmail.com>
-# Maintainer: psykose <alice@ayaya.dev>
+# Maintainer: Peter Shkenev <santurysim@gmail.com>
pkgname=py3-setuptools
-_pkgname=${pkgname#py3-}
-# Be very careful when upgrading major versions as upstream
-# is prone to deprecating stuff that breaks perfectly acceptable
-# setup.py and setup.cfg
-pkgver=59.4.0
+pkgver=69.5.1
pkgrel=0
pkgdesc="Collection of enhancements to the Python3 distutils"
options="!check" # Tests require packages out of main/
-url="https://pypi.python.org/pypi/setuptools"
+url="https://pypi.org/project/setuptools"
arch="noarch"
license="MIT"
+# everything is vendored
depends="
- py3-appdirs
- py3-more-itertools
- py3-ordered-set
py3-packaging
- py3-parsing
python3
"
-makedepends="py3-setuptools-bootstrap"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/pypa/$_pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir"/$_pkgname-$pkgver
+# depends="
+# py3-appdirs
+# py3-more-itertools
+# py3-ordered-set
+# py3-packaging
+# python3
+# "
+subpackages="$pkgname-pyc"
+source="$pkgname-$pkgver.tar.gz::https://pypi.io/packages/source/s/setuptools/setuptools-$pkgver.tar.gz"
+builddir="$srcdir"/setuptools-$pkgver
provides="py-setuptools=$pkgver-r$pkgrel" # Backwards compatibility
replaces="py-setuptools" # Backwards compatiblity
@@ -40,8 +40,8 @@ prepare() {
default_prepare
# Unbundle
- rm -rf pkg_resources/extern pkg_resources/_vendor \
- setuptools/extern setuptools/_vendor
+ # rm -rf pkg_resources/extern pkg_resources/_vendor \
+ # setuptools/extern setuptools/_vendor
# Upstream devendoring logic is badly broken, see:
# https://bugs.archlinux.org/task/58670
@@ -49,14 +49,14 @@ prepare() {
# https://github.com/pypa/setuptools/issues/1383
# The simplest fix is to simply rewrite import paths to use the canonical
# location in the first place
- for _module in setuptools pkg_resources '' ; do
- find . -name \*.py -exec sed -i \
- -e 's/from '$_module.extern' import/import/' \
- -e 's/from '$_module.extern'./from /' \
- -e 's/import '$_module.extern'./import /' \
- -e "s/__import__('$_module.extern./__import__('/" \
- {} +
- done
+ # for _module in setuptools pkg_resources '' ; do
+ # find . -name \*.py -exec sed -i \
+ # -e 's/from '$_module.extern' import/import/' \
+ # -e 's/from '$_module.extern'./from /' \
+ # -e 's/import '$_module.extern'./import /' \
+ # -e "s/__import__('$_module.extern./__import__('/" \
+ # {} +
+ # done
# Fix post-release tag
sed -e '/tag_build = .post/d' \
@@ -69,13 +69,14 @@ build() {
}
package() {
- # Otherwise it complains that build/scripts-3.10 cannot be found
+ local pyver="$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')"
+ # Otherwise it complains that build/scripts-3.12 cannot be found
# no other changes noted
- mkdir -p build/scripts-3.10
+ mkdir -p build/scripts-"$pyver"
python3 setup.py install --root="$pkgdir" --skip-build
}
sha512sums="
-4a7454e376e003cb3ff9ccf39cc3fb98ce7aae9ff97198c639e5e7dccc2307b5d3a2562ff3cc30e1b9bfa67ab4b9fe29b71887220e7a001df2075c1dc7e92641 setuptools-59.4.0.tar.gz
+81f4a5184976a0d4aa070261bb56458c54ec6a479786fa469e98cb336e9a1691b281ae771abe41bc5398fac15b2dd039c07cf014ee00572f46908ce6830fcb6a py3-setuptools-69.5.1.tar.gz
"
diff --git a/main/py3-setuptools_scm/APKBUILD b/main/py3-setuptools_scm/APKBUILD
new file mode 100644
index 00000000000..3b6ff8c0c72
--- /dev/null
+++ b/main/py3-setuptools_scm/APKBUILD
@@ -0,0 +1,44 @@
+# Contributor: Dmitry Romanenko <dmitry@romanenko.in>
+# Maintainer: Peter Shkenev <santurysim@gmail.com>
+pkgname=py3-setuptools_scm
+_pkgname=setuptools-scm
+pkgver=8.0.4
+pkgrel=2
+pkgdesc="The blessed package to manage your versions by scm tags"
+url="https://github.com/pypa/setuptools_scm"
+arch="noarch"
+license="MIT"
+depends="py3-setuptools py3-packaging"
+makedepends="py3-gpep517 py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
+ typing-ext.patch
+ "
+builddir="$srcdir"/$_pkgname-$pkgver
+options="!check" # here -> pytest -> pluggin -> here
+
+replaces="py-setuptools_scm" # Backwards compatibility
+provides="py-setuptools_scm=$pkgver-r$pkgrel" # Backwards compatibility
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ TZ=UTC .testenv/bin/python3 -m pytest -k 'not test_pip_download and not test_pyproject_support_with_git and not test_pretend_version_named_pyproject_integration'
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
+}
+
+sha512sums="
+1b584f20dfad115f379a97de9e96bb3b36ab00986381748c2f395facd26ce01a6556ccfbabeb8f0cf9ce8720b26ce3a00040dba02cc689701ccf1d31f13277da setuptools-scm-8.0.4.tar.gz
+152457a9d480ebf6e48bc1b7546c95df3aebd540991348f95202ddaa162d765f71bbf1e9cd4ce4afa20532d0016a3ed138d4626a4a45de6d3069558a0e691c2e typing-ext.patch
+"
diff --git a/main/py3-setuptools_scm/typing-ext.patch b/main/py3-setuptools_scm/typing-ext.patch
new file mode 100644
index 00000000000..e137e62582d
--- /dev/null
+++ b/main/py3-setuptools_scm/typing-ext.patch
@@ -0,0 +1,67 @@
+--- a/src/setuptools_scm/_file_finders/__init__.py
++++ b/src/setuptools_scm/_file_finders/__init__.py
+@@ -10,7 +10,7 @@
+ from .._entrypoints import iter_entry_points
+
+ if TYPE_CHECKING:
+- from typing_extensions import TypeGuard
++ from typing import TypeGuard
+
+
+ log = _log.log.getChild("file_finder")
+--- a/src/setuptools_scm/_integration/toml.py
++++ b/src/setuptools_scm/_integration/toml.py
+@@ -15,7 +15,7 @@
+ from tomli import loads as load_toml
+
+ if TYPE_CHECKING:
+- from typing_extensions import TypeAlias
++ from typing import TypeAlias
+
+ from .. import _log
+
+--- a/src/setuptools_scm/_types.py
++++ b/src/setuptools_scm/_types.py
+@@ -10,7 +10,7 @@
+
+
+ if TYPE_CHECKING:
+- from typing_extensions import TypeAlias
++ from typing import TypeAlias
+ from . import version
+
+ PathT: TypeAlias = Union["os.PathLike[str]", str]
+--- a/src/setuptools_scm/version.py
++++ b/src/setuptools_scm/version.py
+@@ -17,8 +17,8 @@
+ from . import _modify_version
+
+ if TYPE_CHECKING:
+- from typing_extensions import Concatenate
+- from typing_extensions import ParamSpec
++ from typing import Concatenate
++ from typing import ParamSpec
+
+ _P = ParamSpec("_P")
+
+--- a/testing/conftest.py
++++ b/testing/conftest.py
+@@ -8,7 +8,7 @@
+ from typing import Iterator
+
+ import pytest
+-from typing_extensions import Self
++from typing import Self
+
+ from .wd_wrapper import WorkDir
+ from setuptools_scm._run_cmd import run
+--- a/pyproject.toml
++++ b/pyproject.toml
+@@ -42,7 +42,6 @@
+ "packaging>=20",
+ "setuptools",
+ 'tomli>=1; python_version < "3.11"',
+- "typing-extensions",
+ ]
+ [project.optional-dependencies]
+ docs = [
diff --git a/main/py3-six/APKBUILD b/main/py3-six/APKBUILD
index c690bd974b6..94da874f65b 100644
--- a/main/py3-six/APKBUILD
+++ b/main/py3-six/APKBUILD
@@ -1,33 +1,34 @@
-# Maintainer: Drew DeVault <sir@cmpwn.com>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
pkgname=py3-six
_pkgname=six
pkgver=1.16.0
-pkgrel=1
+pkgrel=9
pkgdesc="Python 2 and 3 compatibility library"
-url="https://pypi.python.org/pypi/six"
+url="https://pypi.org/project/six"
arch="noarch"
license="MIT"
depends="python3"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/benjaminp/$_pkgname/archive/$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
replaces="py-six" # Backwards compatibility
provides="py-six=$pkgver-r$pkgrel" # Backwards compatibility
-# circular dependency with pytest
-#checkdepends="pytest py3-pytest"
-options="!check"
-
build() {
- python3 setup.py build
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
}
check() {
- python3 -m pytest -rfsxX
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest -rfsxX
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
}
sha512sums="
diff --git a/main/py3-snowballstemmer/APKBUILD b/main/py3-snowballstemmer/APKBUILD
index c177dc00cb4..a516991e630 100644
--- a/main/py3-snowballstemmer/APKBUILD
+++ b/main/py3-snowballstemmer/APKBUILD
@@ -3,25 +3,27 @@
pkgname=py3-snowballstemmer
_pkgname=snowballstemmer
pkgver=2.2.0
-pkgrel=0
+pkgrel=4
pkgdesc="Snowball stemming library collection for Python3"
url="https://github.com/shibukawa/snowball_py"
arch="noarch"
license="BSD-3-Clause"
depends="python3"
-makedepends="py3-setuptools"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
replaces="py-snowballstemmer" # Backwards compatibility
provides="py-snowballstemmer=$pkgver-r$pkgrel" # Backwards compatibility
+options="!check"
build() {
- python3 setup.py build
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
}
sha512sums="
diff --git a/main/py3-sortedcontainers/APKBUILD b/main/py3-sortedcontainers/APKBUILD
index 5ec46e139f2..0b6cdb32f4e 100644
--- a/main/py3-sortedcontainers/APKBUILD
+++ b/main/py3-sortedcontainers/APKBUILD
@@ -3,14 +3,15 @@
pkgname=py3-sortedcontainers
_pkgname=python-sortedcontainers
pkgver=2.4.0
-pkgrel=1
+pkgrel=5
pkgdesc="Python library for sorting collections and containers"
url="http://www.grantjenks.com/docs/sortedcontainers"
license="Apache-2.0"
arch="noarch"
depends="python3"
-makedepends="py3-setuptools"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
checkdepends="py3-pytest"
+subpackages="$pkgname-pyc"
source="$_pkgname-$pkgver.tar.gz::https://github.com/grantjenks/python-sortedcontainers/archive/v$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
@@ -18,15 +19,17 @@ replaces="py-sortedcontainers" # Backwards compatibility
provides="py-sortedcontainers=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
}
check() {
- PYTHONPATH="$PWD"/build/lib python3 -m pytest
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir" --skip-build
+ python3 -m installer -d "$pkgdir" .dist/*.whl
}
sha512sums="
diff --git a/main/py3-sphinx/APKBUILD b/main/py3-sphinx/APKBUILD
index 174335cf065..2ab562ea724 100644
--- a/main/py3-sphinx/APKBUILD
+++ b/main/py3-sphinx/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-sphinx
-pkgver=4.3.0
+pkgver=7.2.6
pkgrel=1
pkgdesc="Python Documentation Generator"
# checkdepends require 'imagemagick' and 'py3-html5lib' which
@@ -17,9 +17,9 @@ depends="
py3-docutils
py3-imagesize
py3-jinja2
+ py3-packaging
py3-pygments
py3-requests
- py3-setuptools
py3-snowballstemmer
py3-alabaster
py3-sphinxcontrib-applehelp
@@ -29,14 +29,18 @@ depends="
py3-sphinxcontrib-serializinghtml
py3-sphinxcontrib-qthelp
"
+makedepends="py3-gpep517 py3-flit-core py3-installer"
# imagemagick is for tests/test_ext_imgconverter.py::test_ext_imgconverter
# which calls the 'convert' binary
checkdepends="py3-pytest py3-funcsigs py3-pluggy imagemagick py3-html5lib"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/sphinx-doc/sphinx/archive/v$pkgver.tar.gz"
builddir="$srcdir/sphinx-$pkgver"
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
@@ -44,20 +48,10 @@ check() {
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-
- # TODO: The binaries with the -3 postfix should be
- # considered deprecated and removed in a future release.
- local path; for path in "$pkgdir"/usr/bin/*; do
- mv "$path" "$path"-3
- done
-
- cd "$pkgdir"/usr/bin
- local name; for name in *-3; do
- ln -s -- $name "$pkgdir"/usr/bin/${name%-3}
- done
+ python3 -m installer -d "$pkgdir" \
+ .dist/sphinx-*.whl
}
sha512sums="
-9d791779a4a6879f9217d26ac9795c63ed5225663096fb4a571fff422442a7ad207a5bc0a7bdc9b164982a77c7085827318d439fce5e5453b62dc28b58ae90eb py3-sphinx-4.3.0.tar.gz
+204e859318ad5044639f2e682098b07c7cc675b54ba801feeb3322290bfd15316cc15a2cae8fa6a55e6ec6d1e9690790e5402652eb04720bfe96e172f4c8bdbc py3-sphinx-7.2.6.tar.gz
"
diff --git a/main/py3-sphinx_rtd_theme/APKBUILD b/main/py3-sphinx_rtd_theme/APKBUILD
deleted file mode 100644
index 69d6e2c186d..00000000000
--- a/main/py3-sphinx_rtd_theme/APKBUILD
+++ /dev/null
@@ -1,33 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
-pkgname=py3-sphinx_rtd_theme
-_pkgname=sphinx_rtd_theme
-pkgver=0.4.3
-pkgrel=5
-pkgdesc="Sphinx theme for readthedocs.org"
-url="https://github.com/snide/sphinx_rtd_theme"
-arch="noarch"
-license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-options="!check" # readthedocs_ext is missing
-source="$_pkgname-$pkgver.tar.gz::https://github.com/snide/$_pkgname/archive/$pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$pkgver"
-
-replaces="py-sphinx_rtd_theme" # Backwards compatibility
-provides="py-sphinx_rtd_theme=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- py.test-3
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="6e5d4d0c44ea8acdf382dd589a194be2777e4c4f66f27705eb32d0507cf71b9d289df860bc3d9845242629cd92d62154040f9063f1c05ff6f329e210e14a6a9a sphinx_rtd_theme-0.4.3.tar.gz"
diff --git a/main/py3-sphinxcontrib-applehelp/APKBUILD b/main/py3-sphinxcontrib-applehelp/APKBUILD
index f1fc86ce288..d78dfa4b7cf 100644
--- a/main/py3-sphinxcontrib-applehelp/APKBUILD
+++ b/main/py3-sphinxcontrib-applehelp/APKBUILD
@@ -1,23 +1,34 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=py3-sphinxcontrib-applehelp
_pyname=sphinxcontrib-applehelp
-pkgver=1.0.2
-pkgrel=2
+pkgver=1.0.4
+pkgrel=3
pkgdesc="Sphinx applehelp extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-applehelp"
+url="https://pypi.org/project/sphinxcontrib-applehelp"
arch="noarch"
license="BSD-2-Clause"
depends="python3"
-makedepends="py3-setuptools"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pyname%${_pyname#?}}/$_pyname/$_pyname-$pkgver.tar.gz"
builddir="$srcdir"/$_pyname-$pkgver
+options="!check"
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
-sha512sums="1325ac83ff15dd28d6f2791caf64e6c08d1dd2f0946dc8891f5c4d8fd062a1e8650c9c39a7459195ef41f3b425f5b8d6c5e277ea85621a36dd870ca5162508da sphinxcontrib-applehelp-1.0.2.tar.gz"
+sha512sums="
+998249b6ac2061d3fefec508396f407af450794d2c08a255c9384e9b1a6222bb83af5421115790cb689ebf5dce1ca846ae3fcb71b60ea6183d79262969a26218 sphinxcontrib-applehelp-1.0.4.tar.gz
+"
diff --git a/main/py3-sphinxcontrib-devhelp/APKBUILD b/main/py3-sphinxcontrib-devhelp/APKBUILD
index f105ce0f41f..a4d3d6f35d6 100644
--- a/main/py3-sphinxcontrib-devhelp/APKBUILD
+++ b/main/py3-sphinxcontrib-devhelp/APKBUILD
@@ -1,23 +1,34 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=py3-sphinxcontrib-devhelp
_pyname=sphinxcontrib-devhelp
-pkgver=1.0.2
+pkgver=1.0.5
pkgrel=2
pkgdesc="Sphinx devhelp extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-devhelp"
+url="https://pypi.org/project/sphinxcontrib-devhelp"
arch="noarch"
license="BSD-2-Clause"
depends="python3"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pyname%${_pyname#?}}/$_pyname/$_pyname-$pkgver.tar.gz"
+makedepends="py3-gpep517 py3-flit-core py3-setuptools py3-wheel"
+checkdepends="py3-pytest py3-sphinx"
+subpackages="$pkgname-pyc"
+source="$_pyname-$pkgver.tar.gz::https://github.com/sphinx-doc/sphinxcontrib-devhelp/archive/refs/tags/$pkgver.tar.gz"
builddir="$srcdir"/$_pyname-$pkgver
+options="!check" # py3-sphinx is a circular dep
build() {
- python3 setup.py build
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
}
-sha512sums="83b46eaf26df3932ea2136cfda1c0fca4fc08ce8bca564845b3efe5bb00d6c8c93991f4edd4913d4ec796e2d85bd2c7265adf28e98f42e8094daeb5ac11a0eb1 sphinxcontrib-devhelp-1.0.2.tar.gz"
+sha512sums="
+d8d6f5429389c100bf81f0030a34713f6d9b0285866b4e912f21e0b490f3a501360f54be2fae9ce82ba025568f9a2f761013a64397289f94bdc06607baeb5bd0 sphinxcontrib-devhelp-1.0.5.tar.gz
+"
diff --git a/main/py3-sphinxcontrib-htmlhelp/APKBUILD b/main/py3-sphinxcontrib-htmlhelp/APKBUILD
index 15d461565e6..2f1e824b834 100644
--- a/main/py3-sphinxcontrib-htmlhelp/APKBUILD
+++ b/main/py3-sphinxcontrib-htmlhelp/APKBUILD
@@ -1,30 +1,40 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=py3-sphinxcontrib-htmlhelp
_pyname=sphinxcontrib-htmlhelp
-pkgver=2.0.0
-pkgrel=1
+pkgver=2.0.1
+pkgrel=3
pkgdesc="Sphinx htmlhelp extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-htmlhelp"
+url="https://pypi.org/project/sphinxcontrib-htmlhelp"
arch="noarch"
license="BSD-2-Clause"
depends="python3"
-makedepends="py3-setuptools"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
options="!check" # cyclic dependency
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pyname%${_pyname#?}}/$_pyname/$_pyname-$pkgver.tar.gz"
builddir="$srcdir"/$_pyname-$pkgver
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- python3 setup.py test
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m unittest discover
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
sha512sums="
-6ed673966615f3e818e00de4b7e59c27f0a0d7b494294f804540777c580480870c36002c08d8ad626b7b41a676fe40edc0b0b5ffc6ad8080f38f59c24e157636 sphinxcontrib-htmlhelp-2.0.0.tar.gz
+7957ad688d7f9d44c0413fd747147e8e261136d48ed159fef4e668dcab76c54103028102a9ed893bfadbd175b88543e0d1414b8e01a716810d44b92edfbd79e5 sphinxcontrib-htmlhelp-2.0.1.tar.gz
"
diff --git a/main/py3-sphinxcontrib-jsmath/APKBUILD b/main/py3-sphinxcontrib-jsmath/APKBUILD
index 70b0b542774..e705037ba47 100644
--- a/main/py3-sphinxcontrib-jsmath/APKBUILD
+++ b/main/py3-sphinxcontrib-jsmath/APKBUILD
@@ -2,22 +2,26 @@
pkgname=py3-sphinxcontrib-jsmath
_pyname=sphinxcontrib-jsmath
pkgver=1.0.1
-pkgrel=2
+pkgrel=8
pkgdesc="Sphinx jsmath extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-jsmath"
+url="https://pypi.org/project/sphinxcontrib-jsmath"
arch="noarch"
license="BSD-2-Clause"
depends="python3"
-makedepends="py3-setuptools"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pyname%${_pyname#?}}/$_pyname/$_pyname-$pkgver.tar.gz"
builddir="$srcdir"/$_pyname-$pkgver
+options="!check"
build() {
- python3 setup.py build
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
}
-sha512sums="c1e6488f5c0ca4567c27ec7c597c9db321ac32ce354c4ad62fea534b2ae1c0acb183a921f46216bbc3891f14acfaac05ddf324b8fdaf99828df07bc91aa7e5c7 sphinxcontrib-jsmath-1.0.1.tar.gz"
+sha512sums="
+c1e6488f5c0ca4567c27ec7c597c9db321ac32ce354c4ad62fea534b2ae1c0acb183a921f46216bbc3891f14acfaac05ddf324b8fdaf99828df07bc91aa7e5c7 sphinxcontrib-jsmath-1.0.1.tar.gz
+"
diff --git a/main/py3-sphinxcontrib-qthelp/APKBUILD b/main/py3-sphinxcontrib-qthelp/APKBUILD
index 8ea97994aca..fc8fb7347f4 100644
--- a/main/py3-sphinxcontrib-qthelp/APKBUILD
+++ b/main/py3-sphinxcontrib-qthelp/APKBUILD
@@ -1,23 +1,34 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=py3-sphinxcontrib-qthelp
_pyname=sphinxcontrib-qthelp
-pkgver=1.0.3
+pkgver=1.0.6
pkgrel=2
pkgdesc="Sphinx qthelp extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-qthelp"
+url="https://pypi.org/project/sphinxcontrib-qthelp"
arch="noarch"
license="BSD-2-Clause"
depends="python3"
-makedepends="py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pyname%${_pyname#?}}/$_pyname/$_pyname-$pkgver.tar.gz"
+makedepends="py3-gpep517 py3-flit-core py3-setuptools py3-wheel"
+checkdepends="py3-pytest py3-sphinx"
+subpackages="$pkgname-pyc"
+source="$_pyname-$pkgver.tar.gz::https://github.com/sphinx-doc/sphinxcontrib-qthelp/archive/refs/tags/$pkgver.tar.gz"
builddir="$srcdir"/$_pyname-$pkgver
+options="!check" # py3-sphinx is a circular dep
build() {
- python3 setup.py build
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
+}
+
+check() {
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
}
-sha512sums="29f77e4b3f1a4868c2a34dbd853415e5d813f482cd23b982aeed42d53acba09b896d77ba930c34cce8af043bb7d64a19acff610430e942038d95a410b6e0b5fa sphinxcontrib-qthelp-1.0.3.tar.gz"
+sha512sums="
+44948edcb892ff2873ef9fee588a5685ae267cb374d3fe5dc25a29d72a77ee5ed195999d08228508cac4b3043d3db6392ce329b4548d91e0b9e6f72b7cf4bc07 sphinxcontrib-qthelp-1.0.6.tar.gz
+"
diff --git a/main/py3-sphinxcontrib-serializinghtml/APKBUILD b/main/py3-sphinxcontrib-serializinghtml/APKBUILD
index 080a75e3bac..a2a0e32a31c 100644
--- a/main/py3-sphinxcontrib-serializinghtml/APKBUILD
+++ b/main/py3-sphinxcontrib-serializinghtml/APKBUILD
@@ -1,30 +1,34 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=py3-sphinxcontrib-serializinghtml
_pyname=sphinxcontrib-serializinghtml
-pkgver=1.1.5
-pkgrel=1
+pkgver=1.1.9
+pkgrel=2
pkgdesc="Sphinx serializinghtml extension"
-url="https://pypi.python.org/pypi/sphinxcontrib-serializinghtml"
+url="https://pypi.org/project/sphinxcontrib-serializinghtml"
arch="noarch"
license="BSD-2-Clause"
depends="python3"
-makedepends="py3-setuptools"
-options="!check" # cyclic dependency
-source="https://files.pythonhosted.org/packages/source/${_pyname%${_pyname#?}}/$_pyname/$_pyname-$pkgver.tar.gz"
+makedepends="py3-gpep517 py3-flit-core py3-setuptools py3-wheel"
+checkdepends="py3-pytest py3-sphinx"
+subpackages="$pkgname-pyc"
+source="$_pyname-$pkgver.tar.gz::https://github.com/sphinx-doc/sphinxcontrib-serializinghtml/archive/refs/tags/$pkgver.tar.gz"
builddir="$srcdir"/$_pyname-$pkgver
+options="!check" # py3-sphinx is a circular dep
build() {
- python3 setup.py build
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
}
check() {
- python3 setup.py test
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
}
sha512sums="
-c5aabe4d29fd0455c269f8054089fdd61e1de5c35aa407740fc3baae4cfb3235d9fd5515c0489b0becd12abc8f18d0f42aa169ed315c00f30ba87e64ce851667 sphinxcontrib-serializinghtml-1.1.5.tar.gz
+f40dc6159232a39e4926bbb867470314b060574c6f5b39117bab5d15f97126b4833ee97777131bf60b3a8e4968419ad4c32d8b42e5fe175ce70fc3fe9ef8a1cd sphinxcontrib-serializinghtml-1.1.9.tar.gz
"
diff --git a/main/py3-sphinxcontrib-websupport/APKBUILD b/main/py3-sphinxcontrib-websupport/APKBUILD
index 280a6cb0563..85bd6e32b45 100644
--- a/main/py3-sphinxcontrib-websupport/APKBUILD
+++ b/main/py3-sphinxcontrib-websupport/APKBUILD
@@ -2,29 +2,38 @@
pkgname=py3-sphinxcontrib-websupport
_pkgname=sphinxcontrib-websupport
pkgver=1.2.4
-pkgrel=1
+pkgrel=8
pkgdesc="Sphinx API for Web Apps"
-url="https://pypi.python.org/pypi/sphinxcontrib-websupport"
+url="https://pypi.org/project/sphinxcontrib-websupport"
arch="noarch"
license="BSD-2-Clause"
-makedepends="python3-dev py3-setuptools"
-source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
+depends="python3 py3-jinja2 py3-docutils py3-sphinx"
+makedepends="python3-dev py3-setuptools py3-wheel py3-gpep517"
+checkdepends="py3-sphinxcontrib-serializinghtml py3-pytest"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz
+ remove-six.patch
+ "
builddir="$srcdir"/$_pkgname-$pkgver
-check() {
- cd "$builddir"
- python3 setup.py check
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
-build() {
- cd "$builddir"
- python3 setup.py build
+check() {
+ python3 -m venv --clear --without-pip --system-site-packages test-env
+ test-env/bin/python3 -m installer .dist/*.whl
+ test-env/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
sha512sums="
d1ccfb6a9ecfa6adbdf2298f4ded345cacefbc5a450b8dafc6faadbcd0dd79a8dbefcab4d1cedf34c65fc271aab754392bea8ab8ae82852323784a9e1717914c sphinxcontrib-websupport-1.2.4.tar.gz
+675cea49f1ae25d250e84d95808fbd5e551f469b1d1be73400971eab8a43e28acd8675d01493d452c9a7b794ad7c1f77e8e46338c2bdf4ec297976056f4f3367 remove-six.patch
"
diff --git a/main/py3-sphinxcontrib-websupport/remove-six.patch b/main/py3-sphinxcontrib-websupport/remove-six.patch
new file mode 100644
index 00000000000..5f5c821141d
--- /dev/null
+++ b/main/py3-sphinxcontrib-websupport/remove-six.patch
@@ -0,0 +1,26 @@
+Patch-Source: https://github.com/sphinx-doc/sphinxcontrib-websupport/pull/47
+--
+From a249f8f962bb4687b780482c6c5a1cc3dc60629f Mon Sep 17 00:00:00 2001
+From: Takeshi KOMIYA <i.tkomiya@gmail.com>
+Date: Mon, 15 Mar 2021 01:23:16 +0900
+Subject: [PATCH] Drop test dependency: six
+
+---
+ setup.py | 1 -
+ tests/test_searchadapters.py | 3 ++-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/tests/test_searchadapters.py b/tests/test_searchadapters.py
+index 9589633..eb6e19f 100644
+--- a/tests/test_searchadapters.py
++++ b/tests/test_searchadapters.py
+@@ -9,7 +9,8 @@
+ :license: BSD, see LICENSE for details.
+ """
+
+-from six import StringIO
++from io import StringIO
++
+ import pytest
+
+ from sphinxcontrib.websupport import WebSupport
diff --git a/main/py3-tappy/APKBUILD b/main/py3-tappy/APKBUILD
index 5ae70273095..60cdb85a06d 100644
--- a/main/py3-tappy/APKBUILD
+++ b/main/py3-tappy/APKBUILD
@@ -1,14 +1,15 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=py3-tappy
_pkgname=tap.py
-pkgver=3.0
+pkgver=3.1
pkgrel=4
pkgdesc="Python3 Test Anything Protocol (TAP) tools"
url="https://github.com/python-tap/tappy"
arch="noarch"
license="BSD-2-Clause"
depends="python3"
-makedepends="py3-babel py3-setuptools"
+makedepends="py3-babel py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://files.pythonhosted.org/packages/source/t/tap.py/tap.py-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
@@ -16,15 +17,19 @@ replaces="py-tappy" # Backwards compatibility
provides="py-tappy=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
}
check() {
- python3 -m tap
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m tap
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
}
-sha512sums="58b0928dd28ba525d9bb5edfab5606cb67af15e75a5f03d2648280d30377e2aa23b314ed41dba3b09b7dfa1aefead53674df43b6087e552b9aa937472838e7db py3-tappy-3.0.tar.gz"
+sha512sums="
+4a3b5c5fb54ee1343cfee9bc154e812066d745c020a2c3391761c3e407b7b8428412c799df4963a385e4563ffe3b31e16055cb76ab5940ab6156e57dcf4a4d3a py3-tappy-3.1.tar.gz
+"
diff --git a/main/py3-testtools/APKBUILD b/main/py3-testtools/APKBUILD
index 89ad751774b..594f01f0f41 100644
--- a/main/py3-testtools/APKBUILD
+++ b/main/py3-testtools/APKBUILD
@@ -2,25 +2,30 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=py3-testtools
_pkgname=testtools
-pkgver=2.5.0
+pkgver=2.7.1
pkgrel=1
pkgdesc="Extensions to the Python standard library unit testing framework"
-url="https://pypi.python.org/pypi/testtools"
+url="https://pypi.org/project/testtools"
arch="noarch"
license="MIT"
-depends="python3 py3-pbr py3-fixtures py3-extras py3-setuptools"
+depends="python3 py3-hatch-vcs py3-fixtures"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir"/$_pkgname-$pkgver
options="!check" # needs community/py3-twisted and testscenarios from pypi
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
sha512sums="
-6adbf9e90f0647a44130e99cd94e4c0cbfab3a1b5c28b6bb124d061defe69d8043186cfe554099936effe16a6b07d59927bfeb6820f5a0fb34970ff243030fd4 testtools-2.5.0.tar.gz
+78af1c2af6f93671074dafedeaaf3ddbcc806e78c3153a3b90f88874c967e34a18cb85e5649b08fabb4ba4ae649eeb401e79c77c3b9233d9eee2a3c2267a4596 testtools-2.7.1.tar.gz
"
diff --git a/main/py3-toml/APKBUILD b/main/py3-toml/APKBUILD
deleted file mode 100644
index 58355352991..00000000000
--- a/main/py3-toml/APKBUILD
+++ /dev/null
@@ -1,31 +0,0 @@
-# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=py3-toml
-_pyname=toml
-pkgver=0.10.2
-pkgrel=3
-pkgdesc="Python3 library for TOML"
-options="!check" # No testsuite on PYPI
-url="https://github.com/uiri/toml"
-arch="noarch"
-license="MIT"
-depends="python3"
-checkdepends="py3-pytest"
-source="https://files.pythonhosted.org/packages/source/${_pyname%${_pyname#?}}/$_pyname/$_pyname-$pkgver.tar.gz"
-builddir="$srcdir/"$_pyname-$pkgver
-
-replaces="py-toml" # Backwards compatibility
-provides="py-toml=$pkgver-r$pkgrel" # Backwards compatibility
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 setup.py test
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-sha512sums="ede2c8fed610a3827dba828f6e7ab7a8dbd5745e8ef7c0cd955219afdc83b9caea714deee09e853627f05ad1c525dc60426a6e9e16f58758aa028cb4d3db4b39 toml-0.10.2.tar.gz"
diff --git a/main/py3-tomli/APKBUILD b/main/py3-tomli/APKBUILD
deleted file mode 100644
index f7666a41a22..00000000000
--- a/main/py3-tomli/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Contributor: Michał Polański <michal@polanski.me>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=py3-tomli
-pkgver=2.0.1
-pkgrel=1
-pkgdesc="Lil' TOML parser"
-url="https://github.com/hukkin/tomli"
-license="MIT"
-arch="noarch"
-depends="python3"
-makedepends="py3-installer"
-source="https://github.com/hukkin/tomli/archive/$pkgver/tomli-$pkgver.tar.gz
- https://files.pythonhosted.org/packages/py3/t/tomli/tomli-$pkgver-py3-none-any.whl
- "
-builddir="$srcdir/tomli-$pkgver"
-
-build() {
- # both py3-pep517 and py3-flit need tomli, so we need to fetch the wheel
- # directly from PyPI to avoid a circular dependency
- return 0
-}
-
-check() {
- # use tests from GitHub tarball, but source code from wheel
- unzip -q "$srcdir"/tomli-$pkgver-py3-none-any.whl -d "$srcdir"/wheel
- PYTHONPATH="$srcdir/wheel" python3 -m unittest
-}
-
-package() {
- python3 -m installer -d "$pkgdir" "$srcdir"/tomli-$pkgver-py3-none-any.whl
-}
-
-sha512sums="
-a467f8d48cdbd7213bd9b6f85fd48ba142ab7c9656c40bb30785e1c4b37a9e29eaed420f183458ad20112baee8413ebbec87755332795c8f02235d1018c3aa5c tomli-2.0.1.tar.gz
-b6164b03d3db360093f92e644e87a37a0ce20d63d7e9e271fcafd727f4fdb73ad6b301aaf32b3d2839f6eedbc8ea499dafba7335b8fdfc4667e30ed50c9805b4 tomli-2.0.1-py3-none-any.whl
-"
diff --git a/main/py3-trove-classifiers/APKBUILD b/main/py3-trove-classifiers/APKBUILD
new file mode 100644
index 00000000000..2e841aec7b2
--- /dev/null
+++ b/main/py3-trove-classifiers/APKBUILD
@@ -0,0 +1,40 @@
+# Contributor: Michał Polański <michal@polanski.me>
+# Maintainer: Michał Polański <michal@polanski.me>
+pkgname=py3-trove-classifiers
+pkgver=2024.3.3
+pkgrel=2
+pkgdesc="Canonical source for classifiers on PyPI"
+url="https://github.com/pypa/trove-classifiers"
+license="Apache-2.0"
+arch="noarch"
+depends="python3"
+makedepends="py3-calver py3-gpep517 py3-installer py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
+source="https://github.com/pypa/trove-classifiers/archive/$pkgver/py3-trove-classifiers-$pkgver.tar.gz"
+builddir="$srcdir/trove-classifiers-$pkgver"
+options="!check" #pytest circular dep
+
+prepare() {
+ default_prepare
+
+ echo "Version: $pkgver" > PKG-INFO
+}
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
+
+check() {
+ pytest
+}
+
+package() {
+ python3 -m installer -d "$pkgdir" \
+ .dist/trove_classifiers-$pkgver-py3-none-any.whl
+}
+
+sha512sums="
+f4298eeb69881aa17f6559bf3749ae7a23c3c48e31bcefc19748290be59296e0bacc2bb5ba12410ab1c45ee13f2c5858295cd4ceb5755185efccd74f96b5a4a8 py3-trove-classifiers-2024.3.3.tar.gz
+"
diff --git a/main/py3-tz/APKBUILD b/main/py3-tz/APKBUILD
index aa36db7e414..f24592da9c8 100644
--- a/main/py3-tz/APKBUILD
+++ b/main/py3-tz/APKBUILD
@@ -1,14 +1,15 @@
# Contributor: Peter Bui <pnutzh4x0r@gmail.com>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=py3-tz
-pkgver=2022.1
-pkgrel=0
+pkgver=2024.1
+pkgrel=1
pkgdesc="Python3 definitions of world timezone"
-url="http://pytz.sourceforge.net/"
+url="https://pythonhosted.org/pytz/"
arch="noarch"
license="MIT"
depends="python3"
-makedepends="py3-setuptools"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+subpackages="$pkgname-pyc"
source="https://pypi.python.org/packages/source/p/pytz/pytz-$pkgver.tar.gz"
builddir="$srcdir/pytz-$pkgver"
@@ -16,18 +17,20 @@ replaces="py-tz" # Backwards compatibility
provides="py-tz=$pkgver-r$pkgrel" # Backwards compatibility
build() {
- python3 setup.py build
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
}
check() {
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
cd pytz/tests
- python3 test_tzinfo.py
+ ../../.testenv/bin/python3 test_tzinfo.py
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
}
sha512sums="
-7737aa28626743026b7de932b27bf44d7b209f495d9dd7f90c6448ec271e007f23004fcd04982e2ca6d0a4075206e1dae7b8836319c299b5559c514366d518a6 pytz-2022.1.tar.gz
+cc1e4c9b34c62791cea277a0ce188d975e62135cb15bccfb49dc1a9366c7697ead9c67956846699f18b90db4c66e6c5fe1a91a524d01ae821c0eaa613550ea74 pytz-2024.1.tar.gz
"
diff --git a/main/py3-urllib3/APKBUILD b/main/py3-urllib3/APKBUILD
index 6d384d65923..5e7b08a6dfe 100644
--- a/main/py3-urllib3/APKBUILD
+++ b/main/py3-urllib3/APKBUILD
@@ -2,15 +2,20 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=py3-urllib3
_pkgname=urllib3
-pkgver=1.26.9
-pkgrel=0
+pkgver=1.26.18
+pkgrel=1
pkgdesc="HTTP library with thread-safe connection pooling, file post, and more"
url="https://github.com/urllib3/urllib3"
arch="noarch"
license="MIT"
depends="python3"
-makedepends="py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/urllib3/urllib3/archive/$pkgver.tar.gz"
+makedepends="
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
+subpackages="$pkgname-pyc"
+source="https://github.com/urllib3/urllib3/releases/download/$pkgver/urllib3-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
options="!check" # needs py3-tornado from community
@@ -18,19 +23,26 @@ replaces="py-urllib3" # Backwards compatibility
provides="py-urllib3=$pkgver-r$pkgrel" # Backwards compatibility
# secfixes:
+# 1.26.18-r0:
+# - CVE-2023-45803
+# 1.26.17-r0:
+# - CVE-2023-43804
# 1.25.9-r0:
# - CVE-2020-26137
# 1.26.4-r0:
# - CVE-2021-28363
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
sha512sums="
-328994450c2053681acf81d6dc6132b3d2408d728cb0e44f571d794f673fe212f2211142b26bacc1c5a076cc20c40e37cecbc3ffb5673b6399419b1345d0c0d2 py3-urllib3-1.26.9.tar.gz
+c89e93a032bf6b11375c06ef7c5abc1868f93e7655cfdca09e9bd939ad415d206ea159fe151ecd2e5f725e0e18a831c7a5382ad01dbc32264154fc8af7aec156 urllib3-1.26.18.tar.gz
"
diff --git a/main/py3-wcag-contrast-ratio/APKBUILD b/main/py3-wcag-contrast-ratio/APKBUILD
deleted file mode 100644
index 08742557d10..00000000000
--- a/main/py3-wcag-contrast-ratio/APKBUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-# Contributor: Michał Polański <michal@polanski.me>
-# Maintainer: Michał Polański <michal@polanski.me>
-pkgname=py3-wcag-contrast-ratio
-pkgver=0.9
-pkgrel=0
-pkgdesc="Library for computing contrast ratios, as required by WCAG 2.0"
-url="https://github.com/gsnedders/wcag-contrast-ratio"
-license="MIT"
-arch="noarch"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest py3-hypothesis"
-source="https://github.com/gsnedders/wcag-contrast-ratio/archive/$pkgver/py3-wcag-contrast-ratio-$pkgver.tar.gz"
-builddir="$srcdir/wcag-contrast-ratio-$pkgver"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- pytest test.py
-}
-
-package() {
- python3 setup.py install --root="$pkgdir" --skip-build
-}
-
-sha512sums="
-70ff827b092cec884ba7e969deb8b5de944844b8d5536669f2c607061fbf569c217cec93268215deb9fdebc041efd992ed0cc89e0da013f9a1be8eeeb420cec5 py3-wcag-contrast-ratio-0.9.tar.gz
-"
diff --git a/main/py3-wcwidth/APKBUILD b/main/py3-wcwidth/APKBUILD
index 5c62b91ad45..d6f5a1f6205 100644
--- a/main/py3-wcwidth/APKBUILD
+++ b/main/py3-wcwidth/APKBUILD
@@ -2,15 +2,15 @@
# Maintainer: Thomas Boerger <thomas@webhippie.de>
pkgname=py3-wcwidth
_pkgname=wcwidth
-pkgver=0.2.5
-pkgrel=2
+pkgver=0.2.13
+pkgrel=1
pkgdesc="Measures number of Terminal column cells of wide-character codes"
-url="https://pypi.python.org/pypi/wcwidth"
+url="https://pypi.org/project/wcwidth"
arch="noarch"
license="MIT"
-depends="python3"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest-cov"
+subpackages="$pkgname-pyc"
source="https://files.pythonhosted.org/packages/source/${_pkgname:0:1}/$_pkgname/$_pkgname-$pkgver.tar.gz"
builddir="$srcdir/$_pkgname-$pkgver"
@@ -20,17 +20,22 @@ provides="py-wcwidth=$pkgver-r$pkgrel" # Backwards compatibility
options="$options !check"
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- python3 -m pytest
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
sha512sums="
-567604186fc6810cc794828f656aebda380a85d9a0dadde7743fadcd43cf29b022016055ee2a5c077399ac7c07f48d6d4ee4fa91a44e6efed96b7a8659280a97 wcwidth-0.2.5.tar.gz
+1eadda149936cf2eefe5d09c411774dc87c8a358f2dd92d74f427d7b47f07c05557e849c46122d44788c2bd7c97eb85fc5f902d9a158d68ab9e352c5185ba2d5 wcwidth-0.2.13.tar.gz
"
diff --git a/main/py3-webencodings/APKBUILD b/main/py3-webencodings/APKBUILD
new file mode 100644
index 00000000000..7b138f19cb6
--- /dev/null
+++ b/main/py3-webencodings/APKBUILD
@@ -0,0 +1,32 @@
+# Contributor: Stefan Wagner <stw@bit-strickerei.de>
+# Maintainer: Stefan Wagner <stw@bit-strickerei.de>
+pkgname=py3-webencodings
+_pkgname=webencodings
+pkgver=0.5.1
+pkgrel=8
+pkgdesc="Character encoding for the web"
+url="https://github.com/gsnedders/python-webencodings"
+arch="noarch"
+license="MIT"
+depends="python3"
+makedepends="py3-setuptools"
+checkdepends="pytest"
+subpackages="$pkgname-pyc"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/gsnedders/python-$_pkgname/archive/v$pkgver.tar.gz"
+builddir="$srcdir"/python-$_pkgname-$pkgver
+
+build() {
+ python3 setup.py build
+}
+
+check() {
+ py.test-3
+}
+
+package() {
+ python3 setup.py install --skip-build --root="$pkgdir"
+}
+
+sha512sums="
+c5cb34f35fb5bc7ffb88c19eb3262dedbf6231c0ee2871dccbc0f9497193d8209fc20703d451a2bb41a5ff913e63abf7481f7a8f9886c953724e9cf71c34cb74 webencodings-0.5.1.tar.gz
+"
diff --git a/main/py3-wheel/APKBUILD b/main/py3-wheel/APKBUILD
index eb6d4cdf3b6..adf2df19127 100644
--- a/main/py3-wheel/APKBUILD
+++ b/main/py3-wheel/APKBUILD
@@ -1,37 +1,49 @@
# Contributor: Antoine Fontaine <antoine.fontaine@epfl.ch>
-# Maintainer: psykose <alice@ayaya.dev>
+# Maintainer: Peter Shkenev <santurysim@gmail.com>
pkgname=py3-wheel
-_pyname=wheel
-pkgver=0.37.1
-pkgrel=0
+pkgver=0.42.0
+pkgrel=1
pkgdesc="built-package format for Python"
-options="!check" # Testsuite fails
url="https://github.com/pypa/wheel"
arch="noarch"
license="MIT"
-subpackages="$pkgname-doc"
depends="python3 py3-packaging"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
-_pypiprefix="${_pyname%${_pyname#?}}"
-source="https://files.pythonhosted.org/packages/source/$_pypiprefix/$_pyname/$_pyname-$pkgver.tar.gz
+makedepends="
+ py3-flit-core
+ py3-gpep517
+ "
+checkdepends="py3-pytest py3-setuptools python3-dev"
+subpackages="$pkgname-pyc"
+source="https://files.pythonhosted.org/packages/source/w/wheel/wheel-$pkgver.tar.gz
use-system-packaging.patch
"
-builddir="$srcdir"/$_pyname-$pkgver
-options="!check"
+builddir="$srcdir"/wheel-$pkgver
+options="!check" # circular with pytest
+
+prepare() {
+ default_prepare
-build() {
rm -rf src/wheel/vendored
+}
+
+build() {
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
+}
- python3 setup.py build
+check() {
+ python3 -m venv --clear --without-pip --system-site-packages test-env
+ test-env/bin/python3 setup.py install
+ test-env/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
- install -Dm 0644 "$srcdir"/$_pyname-$pkgver/docs/index.rst "$pkgdir/usr/share/doc/py3-wheel"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
sha512sums="
-c977a740c17abd1fa4b4c2382a33f3ff887baa4231c36990d988cb8531496074e39744786ef6ac0da9c9af4977bce5b2da145377a3ac15eea918f8125bff66ec wheel-0.37.1.tar.gz
-e20281a6fd42cf6dd24be9edf6b469cc7da0c03012127f5224a03c7cd40c785a8f7ae8e4c9829b590e5ca1242300224dcb7c3e571a9347736608512065a27065 use-system-packaging.patch
+4816261c0f6d8971a80665f66868ec9cb082f2189b6e31e083a0d3a6080e159f06a4152f44eda1147a2b907b5aead0f63bbac725aacb56bb8be13fc77da2b79c wheel-0.42.0.tar.gz
+ce2081deefbbddf020a6e3fa4be7eed57f8cc53103fb4c7aa0fe2d129482d040df6b246768832979237f755d7af6f7779db085bc2c5d1485b25ffb26d302898e use-system-packaging.patch
"
diff --git a/main/py3-wheel/use-system-packaging.patch b/main/py3-wheel/use-system-packaging.patch
index 89445665878..9437d983b7d 100644
--- a/main/py3-wheel/use-system-packaging.patch
+++ b/main/py3-wheel/use-system-packaging.patch
@@ -1,21 +1,63 @@
Upstream vendors packaging, use system packaging instead
+diff --git a/setup.py b/setup.py
+index 78b124e..e5025c9 100644
+--- a/setup.py
++++ b/setup.py
+@@ -4,7 +4,7 @@
+ from distutils.core import setup
+
+ packages = \
+-['wheel', 'wheel.cli', 'wheel.vendored', 'wheel.vendored.packaging']
++['wheel', 'wheel.cli']
+
+ package_data = \
+ {'': ['*']}
diff --git a/src/wheel/bdist_wheel.py b/src/wheel/bdist_wheel.py
-index 80e43d0..6bb272c 100644
+index 2f93c47..78cdd90 100644
--- a/src/wheel/bdist_wheel.py
+++ b/src/wheel/bdist_wheel.py
-@@ -19,13 +19,13 @@ from glob import iglob
+@@ -19,6 +19,7 @@ from email.policy import EmailPolicy
+ from glob import iglob
from shutil import rmtree
- from sysconfig import get_config_var
from zipfile import ZIP_DEFLATED, ZIP_STORED
+from packaging import tags
- import pkg_resources
-
- from .pkginfo import write_pkg_info
+ import setuptools
+ from setuptools import Command
+@@ -27,8 +28,7 @@ from . import __version__ as wheel_version
from .macosx_libfile import calculate_macosx_platform_tag
from .metadata import pkginfo_to_metadata
+ from .util import log
-from .vendored.packaging import tags
+-from .vendored.packaging import version as _packaging_version
++from packaging import version as _packaging_version
from .wheelfile import WheelFile
- from . import __version__ as wheel_version
+
+diff --git a/src/wheel/metadata.py b/src/wheel/metadata.py
+index b391c96..ffa1706 100644
+--- a/src/wheel/metadata.py
++++ b/src/wheel/metadata.py
+@@ -12,7 +12,7 @@ from email.message import Message
+ from email.parser import Parser
+ from typing import Iterator
+
+-from .vendored.packaging.requirements import Requirement
++from packaging.requirements import Requirement
+
+
+ def _nonblank(str):
+diff --git a/tests/test_bdist_wheel.py b/tests/test_bdist_wheel.py
+index d202469..95ea27d 100644
+--- a/tests/test_bdist_wheel.py
++++ b/tests/test_bdist_wheel.py
+@@ -20,7 +20,7 @@ from wheel.bdist_wheel import (
+ remove_readonly,
+ remove_readonly_exc,
+ )
+-from wheel.vendored.packaging import tags
++from packaging import tags
+ from wheel.wheelfile import WheelFile
+
+ DEFAULT_FILES = {
diff --git a/main/py3-xmlschema/APKBUILD b/main/py3-xmlschema/APKBUILD
index f7fa7063a9a..659be6895f7 100644
--- a/main/py3-xmlschema/APKBUILD
+++ b/main/py3-xmlschema/APKBUILD
@@ -1,32 +1,37 @@
# Contributor: Aiden Grossman <agrossman154@yahoo.com>
# Maintainer: Aiden Grossman <agrossman154@yahoo.com>
pkgname=py3-xmlschema
-pkgver=1.11.2
+pkgver=3.3.0
pkgrel=0
pkgdesc="XML schema validator and conversion library"
url="https://github.com/sissaschool/xmlschema"
arch="noarch"
license="MIT"
depends="py3-elementpath"
-makedepends="py3-setuptools"
-checkdepends="py3-pytest"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
+checkdepends="py3-pytest py3-jinja2"
+options="net" # tests access xml.xsd from w3.org
+subpackages="$pkgname-pyc"
source="$pkgname-$pkgver.tar.gz::https://github.com/sissaschool/xmlschema/archive/refs/tags/v$pkgver.tar.gz"
builddir="$srcdir/xmlschema-$pkgver/"
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- # disabled test requires install/fake install
- pytest \
- --deselect tests/test_etree_import.py::TestElementTreeImport::test_element_tree_import_script
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
sha512sums="
-5340ed06392fdcfdf2236176ef0a003b6be7be637682b9854c0b996f987361ea895c976ba311309d9514175cb4091765f3edbae3c7d86fbbf3aed26a9ea4cf53 py3-xmlschema-1.11.2.tar.gz
+49749877112c1baf46bdf409d3d97da91438ac8049183a7612164273877accaf4b3c031a680caac29400ec1390c91797f608ac0abf51019a24320055f5da60d5 py3-xmlschema-3.3.0.tar.gz
"
diff --git a/main/py3-yaml/APKBUILD b/main/py3-yaml/APKBUILD
index a8724e1b76d..05f3f674653 100644
--- a/main/py3-yaml/APKBUILD
+++ b/main/py3-yaml/APKBUILD
@@ -1,17 +1,26 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=py3-yaml
_pkgname=PyYAML
-pkgver=6.0
-pkgrel=0
+pkgver=6.0.1
+pkgrel=3
pkgdesc="Python3 bindings for YAML"
url="https://pyyaml.org/"
arch="all"
license="MIT"
-depends="python3"
-makedepends="python3-dev yaml-dev cython py3-setuptools"
-source="$_pkgname-$pkgver.tar.gz::https://github.com/yaml/pyyaml/archive/$pkgver.tar.gz"
+makedepends="
+ cython
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ python3-dev
+ yaml-dev
+ "
+subpackages="$pkgname-pyc"
+source="$_pkgname-$pkgver.tar.gz::https://github.com/yaml/pyyaml/archive/$pkgver.tar.gz
+ cython3.patch
+ "
builddir="$srcdir/pyyaml-$pkgver"
replaces="py-yaml" # Backwards compatibility
@@ -29,17 +38,23 @@ prepare() {
}
build() {
- python3 setup.py --with-libyaml build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
check() {
- python3 setup.py test
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 setup.py test
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" \
+ .dist/*.whl
}
sha512sums="
-cbcacc3560a035e2082867e93a9733f8660ea4c7f60573d07642f33a5453dcdc88d67299c3bcb97c27b843202a45d40de7444eb5e815bd4955129c9fc8ae04ad PyYAML-6.0.tar.gz
+1c74a92a4ad7d47854dc7bcb2e89b3c8e0b14fa815c7dbfbc22b24480dbba6c81e971c77ee384c494a960914b95f06edf943d7431925a5ed674a0ba830d258e0 PyYAML-6.0.1.tar.gz
+73c76d8e1f83a5b938bdf2c2ff7503db5c0391b8c90a3c2b60049ba0c2f62e6b541c1ed68093c24eb3675dcffbe8d27289ae0966a0bf8b076f35ca98396f1e17 cython3.patch
"
diff --git a/main/py3-yaml/cython3.patch b/main/py3-yaml/cython3.patch
new file mode 100644
index 00000000000..7a750b4499f
--- /dev/null
+++ b/main/py3-yaml/cython3.patch
@@ -0,0 +1,296 @@
+Patch-Source: https://github.com/yaml/pyyaml/pull/607
+works for us as is
+--
+From 6ee5f07061e53e98b6b8a76c0d1555fdc1399397 Mon Sep 17 00:00:00 2001
+From: Thomas A Caswell <tcaswell@gmail.com>
+Date: Mon, 24 Jan 2022 18:39:55 -0500
+Subject: [PATCH] WIP: Attempt to get pyyaml to build with cython 3.0
+
+This is cribbed from h5py's setup_build.py.
+
+While this works and the tests pass, it drops a lot of the configuration that
+used to be possible / support for other Pythons / setting the include path /
+...
+---
+ setup.py | 236 ++++++++++++++++++++-----------------------------------
+ 1 file changed, 86 insertions(+), 150 deletions(-)
+
+diff --git a/setup.py b/setup.py
+index 944e7fa2..6be43400 100644
+--- a/setup.py
++++ b/setup.py
+@@ -66,23 +66,29 @@
+
+
+ import sys, os, os.path, pathlib, platform, shutil, tempfile, warnings
+-
++import os.path as op
+ # for newer setuptools, enable the embedded distutils before importing setuptools/distutils to avoid warnings
+-os.environ['SETUPTOOLS_USE_DISTUTILS'] = 'local'
++os.environ["SETUPTOOLS_USE_DISTUTILS"] = "local"
+
+-from setuptools import setup, Command, Distribution as _Distribution, Extension as _Extension
++from setuptools import setup, Command, Distribution, Extension
+ from setuptools.command.build_ext import build_ext as _build_ext
++
+ # NB: distutils imports must remain below setuptools to ensure we use the embedded version
+ from distutils import log
+-from distutils.errors import DistutilsError, CompileError, LinkError, DistutilsPlatformError
++from distutils.errors import (
++ DistutilsError,
++ CompileError,
++ LinkError,
++ DistutilsPlatformError,
++)
+
+ with_cython = False
+-if 'sdist' in sys.argv or os.environ.get('PYYAML_FORCE_CYTHON') == '1':
++if "sdist" in sys.argv or os.environ.get("PYYAML_FORCE_CYTHON") == "1":
+ # we need cython here
+ with_cython = True
+ try:
+- from Cython.Distutils.extension import Extension as _Extension
+- from Cython.Distutils import build_ext as _build_ext
++ import Cython # noqa
++
+ with_cython = True
+ except ImportError:
+ if with_cython:
+@@ -96,147 +102,82 @@
+
+ # on Windows, disable wheel generation warning noise
+ windows_ignore_warnings = [
+-"Unknown distribution option: 'python_requires'",
+-"Config variable 'Py_DEBUG' is unset",
+-"Config variable 'WITH_PYMALLOC' is unset",
+-"Config variable 'Py_UNICODE_SIZE' is unset",
+-"Cython directive 'language_level' not set"
++ "Unknown distribution option: 'python_requires'",
++ "Config variable 'Py_DEBUG' is unset",
++ "Config variable 'WITH_PYMALLOC' is unset",
++ "Config variable 'Py_UNICODE_SIZE' is unset",
++ "Cython directive 'language_level' not set",
+ ]
+
+-if platform.system() == 'Windows':
++if platform.system() == "Windows":
+ for w in windows_ignore_warnings:
+- warnings.filterwarnings('ignore', w)
+-
+-
+-class Distribution(_Distribution):
+- def __init__(self, attrs=None):
+- _Distribution.__init__(self, attrs)
+- if not self.ext_modules:
+- return
+- for idx in range(len(self.ext_modules)-1, -1, -1):
+- ext = self.ext_modules[idx]
+- if not isinstance(ext, Extension):
+- continue
+- setattr(self, ext.attr_name, None)
+- self.global_options = [
+- (ext.option_name, None,
+- "include %s (default if %s is available)"
+- % (ext.feature_description, ext.feature_name)),
+- (ext.neg_option_name, None,
+- "exclude %s" % ext.feature_description),
+- ] + self.global_options
+- self.negative_opt = self.negative_opt.copy()
+- self.negative_opt[ext.neg_option_name] = ext.option_name
+-
+- def has_ext_modules(self):
+- if not self.ext_modules:
+- return False
+- for ext in self.ext_modules:
+- with_ext = self.ext_status(ext)
+- if with_ext is None or with_ext:
+- return True
+- return False
+-
+- def ext_status(self, ext):
+- implementation = platform.python_implementation()
+- if implementation not in ['CPython', 'PyPy']:
+- return False
+- if isinstance(ext, Extension):
+- # the "build by default" behavior is implemented by this returning None
+- with_ext = getattr(self, ext.attr_name) or os.environ.get('PYYAML_FORCE_{0}'.format(ext.feature_name.upper()))
+- try:
+- with_ext = int(with_ext) # attempt coerce envvar to int
+- except TypeError:
+- pass
+- return with_ext
+- else:
+- return True
+-
+-
+-class Extension(_Extension):
+-
+- def __init__(self, name, sources, feature_name, feature_description,
+- feature_check, **kwds):
+- if not with_cython:
+- for filename in sources[:]:
+- base, ext = os.path.splitext(filename)
+- if ext == '.pyx':
+- sources.remove(filename)
+- sources.append('%s.c' % base)
+- _Extension.__init__(self, name, sources, **kwds)
+- self.feature_name = feature_name
+- self.feature_description = feature_description
+- self.feature_check = feature_check
+- self.attr_name = 'with_' + feature_name.replace('-', '_')
+- self.option_name = 'with-' + feature_name
+- self.neg_option_name = 'without-' + feature_name
++ warnings.filterwarnings("ignore", w)
++
++
++COMPILER_SETTINGS = {
++ "libraries": ["yaml"],
++ "include_dirs": ["yaml"],
++ "library_dirs": [],
++ "define_macros": [],
++}
++
++MODULES = ["_yaml"]
++EXTRA_LIBRARIES = {}
++EXTRA_SRC = {}
++
++
++def localpath(*args):
++ return op.abspath(op.join(op.dirname(__file__), *args))
+
+
+ class build_ext(_build_ext):
++ @staticmethod
++ def _make_extensions():
++ """Produce a list of Extension instances which can be passed to
++ cythonize().
++
++ This is the point at which custom directories, MPI options, etc.
++ enter the build process.
++ """
++ settings = COMPILER_SETTINGS.copy()
++
++ # TODO: should this only be done on UNIX?
++ if os.name != "nt":
++ settings["runtime_library_dirs"] = settings["library_dirs"]
++
++ def make_extension(module):
++ sources = [localpath("yaml", module + ".pyx")] + EXTRA_SRC.get(module, [])
++ settings["libraries"] += EXTRA_LIBRARIES.get(module, [])
++ print(("yaml." + module, sources, settings))
++ ext = Extension("yaml." + module, sources, **settings)
++ ext._needs_stub = False
++ return ext
++
++ return [make_extension(m) for m in MODULES]
+
+ def run(self):
+- optional = True
+- disabled = True
+- for ext in self.extensions:
+- with_ext = self.distribution.ext_status(ext)
+- if with_ext is None:
+- disabled = False
+- elif with_ext:
+- optional = False
+- disabled = False
+- break
+- if disabled:
+- return
+- try:
+- _build_ext.run(self)
+- except DistutilsPlatformError:
+- exc = sys.exc_info()[1]
+- if optional:
+- log.warn(str(exc))
+- log.warn("skipping build_ext")
+- else:
+- raise
+-
+- def get_source_files(self):
+- self.check_extensions_list(self.extensions)
+- filenames = []
+- for ext in self.extensions:
+- if with_cython:
+- self.cython_sources(ext.sources, ext)
+- for filename in ext.sources:
+- filenames.append(filename)
+- base = os.path.splitext(filename)[0]
+- for ext in ['c', 'h', 'pyx', 'pxd']:
+- filename = '%s.%s' % (base, ext)
+- if filename not in filenames and os.path.isfile(filename):
+- filenames.append(filename)
+- return filenames
+-
+- def get_outputs(self):
+- self.check_extensions_list(self.extensions)
+- outputs = []
+- for ext in self.extensions:
+- fullname = self.get_ext_fullname(ext.name)
+- filename = os.path.join(self.build_lib,
+- self.get_ext_filename(fullname))
+- if os.path.isfile(filename):
+- outputs.append(filename)
+- return outputs
+-
+- def build_extensions(self):
+- self.check_extensions_list(self.extensions)
+- for ext in self.extensions:
+- with_ext = self.distribution.ext_status(ext)
+- if with_ext is not None and not with_ext:
+- continue
+- if with_cython:
+- ext.sources = self.cython_sources(ext.sources, ext)
+- try:
+- self.build_extension(ext)
+- except (CompileError, LinkError):
+- if with_ext is not None:
+- raise
+- log.warn("Error compiling module, falling back to pure Python")
++ """Distutils calls this method to run the command"""
++
++ from Cython.Build import cythonize
++
++ # This allows ccache to recognise the files when pip builds in a temp
++ # directory. It speeds up repeatedly running tests through tox with
++ # ccache configured (CC="ccache gcc"). It should have no effect if
++ # ccache is not in use.
++ os.environ["CCACHE_BASEDIR"] = op.dirname(op.abspath(__file__))
++ os.environ["CCACHE_NOHASHDIR"] = "1"
++
++ # Run Cython
++ print("Executing cythonize()")
++ self.extensions = cythonize(
++ self._make_extensions(), force=self.force, language_level=3
++ )
++
++ print(self.extensions)
++ for ex in self.extensions:
++ ex._needs_stub = False
++ # Perform the build
++ super().run()
+
+
+ class test(Command):
+@@ -299,16 +240,11 @@ def run(self):
+ download_url=DOWNLOAD_URL,
+ classifiers=CLASSIFIERS,
+ project_urls=PROJECT_URLS,
+-
+- package_dir={'': 'lib'},
+- packages=['yaml', '_yaml'],
+- ext_modules=[
+- Extension('yaml._yaml', ['yaml/_yaml.pyx'],
+- 'libyaml', "LibYAML bindings", LIBYAML_CHECK,
+- libraries=['yaml']),
+- ],
+-
++ package_dir={"": "lib"},
++ packages=["yaml", "_yaml"],
++ # To trick build into running build_ext
++ ext_modules=[Extension("yaml.x", ["x.c"])],
+ distclass=Distribution,
+ cmdclass=cmdclass,
+- python_requires='>=3.6',
++ python_requires=">=3.6",
+ )
diff --git a/main/python3/APKBUILD b/main/python3/APKBUILD
index 90036aa175a..6d580da114b 100644
--- a/main/python3/APKBUILD
+++ b/main/python3/APKBUILD
@@ -1,35 +1,38 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
# Contributor: Sheila Aman <sheila@vulpine.house>
-
pkgname=python3
# the python3-tkinter's pkgver needs to be synchronized with this.
-pkgver=3.10.5
-_bluez_ver=5.64
+pkgver=3.12.3
_basever="${pkgver%.*}"
-pkgrel=0
-pkgdesc="A high-level scripting language"
+pkgrel=1
+pkgdesc="High-level scripting language"
url="https://www.python.org/"
arch="all"
license="PSF-2.0"
+# pyc0 comes last because the files are named without a unique substring
subpackages="
$pkgname-dbg
$pkgname-dev
$pkgname-doc
$pkgname-tests::noarch
- pythonispython3
+ $pkgname-pyc:_default_pyc
+ $pkgname-pycache-pyc2
+ $pkgname-pycache-pyc1
+ $pkgname-pycache-pyc0
+ $pkgname-gdbm
+ pyc:_pyc_meta:noarch
"
+depends="libssl3>=3.3.0"
makedepends="
!gettext-dev
- autoconf
- autoconf-archive
- automake
+ bluez-headers
bzip2-dev
expat-dev
- gdbm-dev>=1.18.1-r0
+ gdbm-dev
libffi-dev
- libtool
linux-headers
mpdecimal-dev
+ musl-libintl
ncurses-dev
openssl-dev
readline-dev
@@ -39,16 +42,19 @@ makedepends="
zlib-dev
"
source="https://www.python.org/ftp/python/$pkgver/Python-$pkgver.tar.xz
- https://www.kernel.org/pub/linux/bluetooth/bluez-$_bluez_ver.tar.xz
- fix-xattrs-glibc.patch
+ externally-managed
musl-find_library.patch
- custom-bluetooth-h-path.patch
- arm-alignment.patch
"
options="net" # Required for tests
builddir="$srcdir/Python-$pkgver"
# secfixes:
+# 3.11.5-r0:
+# - CVE-2023-40217
+# 3.11.1-r0:
+# - CVE-2022-45061
+# 3.10.5-r0:
+# - CVE-2015-20107
# 3.9.5-r0:
# - CVE-2021-29921
# 3.9.4-r0:
@@ -70,31 +76,41 @@ builddir="$srcdir/Python-$pkgver"
# 3.6.8-r1:
# - CVE-2019-5010
+# was briefly present, and is in 3.16
+provides="pythonispython3=$pkgver-r$pkgrel"
+
prepare() {
default_prepare
# force system libs
- rm -r Modules/expat \
- Modules/_ctypes/darwin* \
- Modules/_ctypes/libffi*
-
- mv "$srcdir"/bluez-$_bluez_ver/lib "$srcdir"/bluez-$_bluez_ver/bluetooth
+ rm -r Modules/expat
+}
- # Speed up LTO
- sed -i -e "s|-flto |-flto=4 |g" configure configure.ac
+build() {
+ # set thread stack size to 2MB so we don't segfault before we hit
+ # sys.getrecursionlimit()
+ # note: raised from 1 as we ran into some stack limit on x86_64 too
+ # sometimes, but not recursion
+ local stacksize=0x200000
- autoreconf -fi
+ # we want -O2 here for more speed for such a large interpreter.
+ export CFLAGS_NODIST="$CFLAGS -O2 -DTHREAD_STACK_SIZE=$stacksize"
+ export CXXFLAGS_NODIST="$CXXFLAGS -O2"
+ export LDFLAGS_NODIST="$LDFLAGS"
- sed "s|@bluetoothdir@|\"$srcdir/bluez-$_bluez_ver\"|g" -i setup.py
-}
+ case "$CARCH" in
+ ppc64le)
+ # FIXME: on ppc64le, the stack-clash-protection from gcc seems to segfault
+ # python.. sometimes. not sure if python or gcc bug (probably former)
+ # for an easy reproduction, run the testsuite of community/py3-lmdb
+ export CFLAGS_NODIST="${CFLAGS_NODIST/-fstack-clash-protection}"
+ export CXXFLAGS_NODIST="${CXXFLAGS_NODIST/-fstack-clash-protection}"
+ ;;
+ esac
-build() {
- # -Os overwrites --enable-optimizations
- export CFLAGS="${CFLAGS/-Os/}"
+ # we set them via NODIST to not propagate them and duplicate them to modules
+ unset LDFLAGS CFLAGS CXXFLAGS CPPFLAGS
- # Include bluez headers. Python only needs bluetooth/bluetoot.h and doesn't
- # link against bluez. Depending on bluez-dev introduces a circular dep:
- # Python -> bluez -> glib -> meson -> python
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -107,21 +123,10 @@ build() {
--with-computed-gotos \
--with-dbmliborder=gdbm:ndbm \
--with-system-expat \
- --with-system-ffi \
--with-system-libmpdec \
- --without-ensurepip \
- --with-bluetoothdir="$srcdir/bluez-$_bluez_ver"
+ --without-ensurepip
- # set thread stack size to 1MB so we don't segfault before we hit
- # sys.getrecursionlimit()
- # s390x needs more stack space due to its calling convention
- # ppc64le reaches recursionlimit before segfault
- local stacksize=0x100000
- case "$CARCH" in
- s390x) stacksize=0x200000;;
- ppc64le) stacksize=0x200000;;
- esac
- make EXTRA_CFLAGS="$CFLAGS -DTHREAD_STACK_SIZE=$stacksize"
+ make
}
check() {
@@ -144,37 +149,23 @@ EOF
local fail
# musl related
- fail="test__locale test_locale test_strptime test_re" # various musl locale deficiencies
+ fail="test__locale" # various musl locale deficiencies
+ fail="$fail test_locale"
+ fail="$fail test_re"
fail="$fail test_c_locale_coercion"
fail="$fail test_datetime" # hangs if 'tzdata' installed
fail="$fail test_os" # fpathconf, ttyname errno values
- fail="$fail test_posix" # sched_[gs]etscheduler not impl
- fail="$fail test_shutil" # lchmod, requires real unzip
# FIXME: failures needing investigation
- fail="$fail test_faulthandler test_gdb" # hangs(?)
- fail="$fail test_tokenize test_tools" # SLOW (~60s)
- fail="$fail test_capi" # test.test_capi.EmbeddingTests
- fail="$fail test_threadsignals" # test_{,r}lock_acquire_interruption
- fail="$fail test_time" # strftime/strptime %Z related
- fail="$fail test_cmath test_math" # hang(?) on x86
- fail="$fail test_hash test_plistlib" # fail on armhf
fail="$fail test_ctypes" # fail on aarch64 (ctypes.test.test_win32.Structures)
- fail="$fail test_cmd_line_script" # fails on x86_64
- fail="$fail test_multiprocessing_main_handling" # fails on x86_64
- fail="$fail test_runpy" # fails on x86_64
- fail="$fail test_threading" # hangs on all arches (except x86_64?)
- fail="$fail test_selectors" # AssertionError: 'Python' not found in '' (python3.9)
- fail="$fail test_nntplib"
- fail="$fail test_asyncio" # hangs; routinely problematic (e.g. bpo-39101, bpo-41891, bpo-42183)
# kernel related
fail="$fail test_fcntl" # wants DNOTIFY, we don't have it
+ # test_clock_settime returns Function not implemented instead of the
+ # expected permission error in docker (CI). Disable for now.
case "$CARCH" in
- ppc64le)
- fail="$fail test_buffer"
- ;;
+ ppc64le) fail="$fail test_time";;
esac
make quicktest TESTOPTS="-j${JOBS:-$(nproc)} --exclude $fail"
@@ -183,16 +174,16 @@ EOF
package() {
make -j1 DESTDIR="$pkgdir" EXTRA_CFLAGS="$CFLAGS" install maninstall
install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
+
+ install -Dm644 "$srcdir"/externally-managed \
+ "$pkgdir"/usr/lib/python$_basever/EXTERNALLY-MANAGED
+
# those are provided by python3-tkinter
rm -r "$pkgdir"/usr/bin/idle* "$pkgdir"/usr/lib/python*/idlelib \
"$pkgdir"/usr/lib/python*/tkinter
- # TODO(Leo): some stuff still wants /usr/bin/python to be python2
- # which is a bummer because they are holding back progress but they
- # are important enough that we need to do it
- #
- # Python3 is the canonical python for the moment
- # ln -s /usr/bin/python3 "$pkgdir"/usr/bin/python
+ ln -s python3 "$pkgdir"/usr/bin/python
+ ln -s python3-config "$pkgdir"/usr/bin/python-config
}
dev() {
@@ -207,29 +198,56 @@ dev() {
tests() {
pkgdesc="The test modules from the main python package"
- cd "$pkgdir"/usr/lib/python$_basever
- local i; for i in */test */tests; do
- mkdir -p "$subpkgdir"/usr/lib/python$_basever/"$i"
- mv "$i"/* "$subpkgdir"/usr/lib/python$_basever/"$i"
- rm -rf "$i"
- done
- mv "$pkgdir"/usr/lib/python$_basever/test \
- "$subpkgdir"/usr/lib/python$_basever/
+ amove usr/lib/python$_basever/test
+}
+
+gdbm() {
+ pkgdesc="Python backend for GNU gdbm"
+
+ amove usr/lib/python3*/lib-dynload/_gdbm.cpython*
+}
+
+_pyc_meta() {
+ pkgdesc="Meta package for pulling in all -pyc packages"
+ depends=""
+ mkdir -p "$subpkgdir"
+}
+
+# python3-pyc, to install pyc by default
+_default_pyc() {
+ pkgdesc="$pkgdesc (install .pyc cache files)"
+ install_if="$pkgname=$pkgver-r$pkgrel"
+ depends="
+ $pkgname-pycache-pyc0=$pkgver-r$pkgrel
+ pyc
+ "
+
+ mkdir -p "$subpkgdir"
+}
+
+pyc0() {
+ pkgdesc="$pkgdesc (.pyc pycache files)"
+
+ cd "$pkgdir"
+ amove $(find usr/lib/python3* -name "*.pyc")
+}
+
+pyc1() {
+ pkgdesc="$pkgdesc (.opt-1.pyc pycache files)"
+
+ cd "$pkgdir"
+ amove $(find usr/lib/python3* -name "*.opt-1.pyc")
}
-pythonispython3() {
- pkgdesc="python -> python3 symlink"
- depends="python3"
+pyc2() {
+ pkgdesc="$pkgdesc (.opt-2.pyc pycache files)"
- mkdir -p "$subpkgdir"/usr/bin
- ln -s python3 "$subpkgdir"/usr/bin/python
+ cd "$pkgdir"
+ amove $(find usr/lib/python3* -name "*.opt-2.pyc")
}
sha512sums="
-aa7f58a9b31de9824185b3e7bfa7da0dcf64ae9e89840664eae9d98d9048a650fa012cd5b873a62ff44b65b856db86f095c4003117406ec5e9583ec5f7e78e90 Python-3.10.5.tar.xz
-f11f9974b29c5c6fce3890d7e42425c1cb02e42c1b8f49c5cc4b249234e67b64317d0e5e82721e2fbf1b53269c8569a9c869d59ce42b5e927f6622f0753e53cd bluez-5.64.tar.xz
-fe123dd871f7a3fa868c499a957b94f1d815a1e1de964aaff1116c579defd4d9d1e9b7eb418cf114b169b97426ed603bf4b1e61b45ec483df06abe988c6a30ee fix-xattrs-glibc.patch
+4a2213b108e7f1f1525baa8348e68b2a2336d925e60d0a59f0225fc470768a2c8031edafc0b8243f94dbae18afda335ee5adf2785328c2218fd64cbb439f13a4 Python-3.12.3.tar.xz
+46dd8230ee2ab66e9c4157c10b2bd9c414fd7f30be0bee73e21a9eea88f63fff362d47828e0fc77ddc59df097b414b21505f8b5f98bc866381115c58ae3f4862 externally-managed
ab8eaa2858d5109049b1f9f553198d40e0ef8d78211ad6455f7b491af525bffb16738fed60fc84e960c4889568d25753b9e4a1494834fea48291b33f07000ec2 musl-find_library.patch
-14b00953cdb5fe757b38dbf759d7203c3504b46e330494ec195db92290640ec640fb29cc4456208a25dadc028ebaf211b0df71f458a3b76023fdafb4f91ff46a custom-bluetooth-h-path.patch
-a84483246e413650a904c34c18f5e4f4168c39067d069f48557c330de6eb3db19fd96a4d453d742db3dcb7c7f962722903f62823c752ff90510c89830435ffc0 arm-alignment.patch
"
diff --git a/main/python3/arm-alignment.patch b/main/python3/arm-alignment.patch
deleted file mode 100644
index a7a4b394d9d..00000000000
--- a/main/python3/arm-alignment.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-Author: Dave Jones <dave.jones@canonical.com>
-Description: Use aligned access for _sha3 module on ARM.
---- a/Modules/_sha3/sha3module.c
-+++ b/Modules/_sha3/sha3module.c
-@@ -64,6 +64,12 @@
- #define PLATFORM_BYTE_ORDER IS_BIG_ENDIAN
- #endif
-
-+/* Bus error on 32-bit ARM due to un-aligned memory accesses; 64-bit ARM
-+ * doesn't complain but un-aligned memory accesses are sub-optimal */
-+#if defined(__arm__) || defined(__aarch64__)
-+#define NO_MISALIGNED_ACCESSES
-+#endif
-+
- /* mangle names */
- #define KeccakF1600_FastLoop_Absorb _PySHA3_KeccakF1600_FastLoop_Absorb
- #define Keccak_HashFinal _PySHA3_Keccak_HashFinal
diff --git a/main/python3/custom-bluetooth-h-path.patch b/main/python3/custom-bluetooth-h-path.patch
deleted file mode 100644
index 3d836e3f88a..00000000000
--- a/main/python3/custom-bluetooth-h-path.patch
+++ /dev/null
@@ -1,63 +0,0 @@
---- a/configure.ac
-+++ b/configure.ac
-@@ -2223,17 +2223,28 @@
- sys/param.h sys/random.h sys/select.h sys/sendfile.h sys/socket.h sys/statvfs.h \
- sys/stat.h sys/syscall.h sys/sys_domain.h sys/termio.h sys/time.h \
- sys/times.h sys/types.h sys/uio.h sys/un.h sys/utsname.h sys/wait.h pty.h \
--libutil.h sys/resource.h netpacket/packet.h sysexits.h bluetooth.h \
-+libutil.h sys/resource.h netpacket/packet.h sysexits.h \
- linux/tipc.h linux/random.h spawn.h util.h alloca.h endian.h \
- sys/endian.h sys/sysmacros.h linux/auxvec.h sys/auxv.h linux/memfd.h linux/wait.h sys/memfd.h \
- sys/mman.h sys/eventfd.h)
- AC_HEADER_DIRENT
- AC_HEADER_MAJOR
-
-+AC_ARG_WITH([bluetoothdir],
-+ [AS_HELP_STRING([--with-bluetoothdir=DIR], [Path to bluetooth/bluetooth.h header])],
-+ [bluetoothdir=$withval],
-+ [bluetoothdir=""])
-+
-+if test "$bluetoothdir" != ""
-+then
-+ BLUETOOTH_CFLAGS="-I$bluetoothdir"
-+ AC_SUBST([BLUETOOTH_CFLAGS], [$BLUETOOTH_CFLAGS])
-+fi
-+
- # bluetooth/bluetooth.h has been known to not compile with -std=c99.
- # http://permalink.gmane.org/gmane.linux.bluez.kernel/22294
- SAVE_CFLAGS=$CFLAGS
--CFLAGS="-std=c99 $CFLAGS"
-+CFLAGS="-std=c99 $CFLAGS $BLUETOOTH_CFLAGS"
- AC_CHECK_HEADERS(bluetooth/bluetooth.h)
- CFLAGS=$SAVE_CFLAGS
-
-diff --git a/setup.py b/setup.py
-index bd5f736..9381135 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1221,13 +1221,16 @@ class PyBuildExt(build_ext):
- self.add(Extension('_crypt', ['_cryptmodule.c'], libraries=libs))
-
- def detect_socket(self):
-+ bluetooth_includes = [@bluetoothdir@]
- # socket(2)
- kwargs = {'depends': ['socketmodule.h']}
- if MACOS:
- # Issue #35569: Expose RFC 3542 socket options.
- kwargs['extra_compile_args'] = ['-D__APPLE_USE_RFC_3542']
-
-- self.add(Extension('_socket', ['socketmodule.c'], **kwargs))
-+ self.add(Extension('_socket', ['socketmodule.c'],
-+ include_dirs=bluetooth_includes,
-+ **kwargs))
-
- def detect_dbm_gdbm(self):
- # Modules that provide persistent dictionary-like semantics. You will
-@@ -2435,6 +2438,7 @@ class PyBuildExt(build_ext):
- return [v.strip() for v in value.split(sep) if v.strip()]
-
- openssl_includes = split_var('OPENSSL_INCLUDES', '-I')
-+ openssl_includes = openssl_includes + (@bluetoothdir@,)
- openssl_libdirs = split_var('OPENSSL_LDFLAGS', '-L')
- openssl_libs = split_var('OPENSSL_LIBS', '-l')
- openssl_rpath = config_vars.get('OPENSSL_RPATH')
diff --git a/main/python3/externally-managed b/main/python3/externally-managed
new file mode 100644
index 00000000000..b13f594df8c
--- /dev/null
+++ b/main/python3/externally-managed
@@ -0,0 +1,22 @@
+[externally-managed]
+Error=
+ The system-wide python installation should be maintained using the system
+ package manager (apk) only.
+
+ If the package in question is not packaged already (and hence installable via
+ "apk add py3-somepackage"), please consider installing it inside a virtual
+ environment, e.g.:
+
+ python3 -m venv /path/to/venv
+ . /path/to/venv/bin/activate
+ pip install mypackage
+
+ To exit the virtual environment, run:
+
+ deactivate
+
+ The virtual environment is not deleted, and can be re-entered by re-sourcing
+ the activate file.
+
+ To automatically manage virtual environments, consider using pipx (from the
+ pipx package).
diff --git a/main/python3/fix-xattrs-glibc.patch b/main/python3/fix-xattrs-glibc.patch
deleted file mode 100644
index 871236f66b3..00000000000
--- a/main/python3/fix-xattrs-glibc.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
-index 12f72f5..d54d085 100644
---- a/Modules/posixmodule.c
-+++ b/Modules/posixmodule.c
-@@ -234,8 +234,9 @@ corresponding Unix manual entries for more information on calls.");
- # 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/main/quagga/APKBUILD b/main/quagga/APKBUILD
index b757d273d14..918febefd0f 100644
--- a/main/quagga/APKBUILD
+++ b/main/quagga/APKBUILD
@@ -1,11 +1,12 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=quagga
pkgver=1.2.4
-pkgrel=5
+pkgrel=9
pkgdesc="A free routing daemon replacing Zebra supporting RIP, OSPF, BGP and NHRP"
-url="http://quagga.net/"
+url="https://www.nongnu.org/quagga/"
arch="all"
license="GPL-2.0-or-later"
+options="!check" # no testsuite
depends="iproute2"
replaces="quagga-nhrp"
provides="quagga-nhrp=$pkgver"
@@ -29,6 +30,10 @@ source="https://github.com/Quagga/quagga/releases/download/quagga-$pkgver/quagga
# 1.1.1-r0:
# - CVE-2017-5495
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
quagga_cv_ipforward_method=proc \
@@ -69,10 +74,13 @@ package() {
install -Dm644 "$srcdir/zebra.confd" "$pkgdir"/etc/conf.d/zebra
install -o quagga -g quagga -d -m755 "$pkgdir"/etc/quagga
}
-sha512sums="3e72440bcccfd3c1a449a62b7ff8623441256399a2bee0a39fa0a19694a5a78ac909c5c2128a24735bc034ea8b0811827293b480a2584a3a4c8ae36be9cf1fcd quagga-1.2.4.tar.gz
+
+sha512sums="
+3e72440bcccfd3c1a449a62b7ff8623441256399a2bee0a39fa0a19694a5a78ac909c5c2128a24735bc034ea8b0811827293b480a2584a3a4c8ae36be9cf1fcd quagga-1.2.4.tar.gz
264103030fa8d57e7e7bd8a271b258dd8bae86242e15431060e20827b62de46be6f59617c216161aa7bc141c9e18a5aecbdb342545288340024c40f46c717aa4 0001-nhrpd-change-ipsec-SA-count-to-32-bit.patch
dfa33341119fe51caa7bc33b44256f57361f2e3f8192862cca215b312ceb68e6a8c264dbf2a43d6244e6152bfad110cb0fdbefb065d95dd50389cf613d9720b3 1001-bgpd-allow-using-ebgp-multihop-for-ibgp-connections.patch
5ef5c5e6d70d991b33b13a062e25b6fbde395dceee36aea29384b0640a48d2957ed5f50d416a1f2f770bf69bae2340133e35b1114be7e1fa722eb6d3d021f37a dont-hook-core-signals.patch
13b5b57e10df013bd2d931abc49bf76b8c4dee59dbceab22c9f151ccb988b2c5f7167f2909027d5e0f990b59da8de115667b02484aee9a67d347625700f6cacd bgpd.initd
7099135b6e20ad81322e7ec5ec4f0734c0ace60a69c282ad458b9700e39258831ecf29d5eaba0cd0f44bf17004283f17a80c0c1d90e8f407ababe89a75e60850 zebra.initd
-900972c6f98e561dfacf384111251db262326e8764b8c763a5ef639fa11c7949c03eef5e3bce324a4b1964fe45416d2db74ae1b6bc967f7d4ba48c2eeda017c4 zebra.confd"
+900972c6f98e561dfacf384111251db262326e8764b8c763a5ef639fa11c7949c03eef5e3bce324a4b1964fe45416d2db74ae1b6bc967f7d4ba48c2eeda017c4 zebra.confd
+"
diff --git a/main/rabbitmq-c/APKBUILD b/main/rabbitmq-c/APKBUILD
index e43a9ebff63..20c11c7ac13 100644
--- a/main/rabbitmq-c/APKBUILD
+++ b/main/rabbitmq-c/APKBUILD
@@ -1,28 +1,31 @@
# Contributor: Fabio Ribeiro <fabiorphp@gmail.com>
# Maintainer: Fabio Ribeiro <fabiorphp@gmail.com>
pkgname=rabbitmq-c
-pkgver=0.11.0
-pkgrel=3
+pkgver=0.14.0
+pkgrel=0
pkgdesc="RabbitMQ C client"
url="https://github.com/alanxz/rabbitmq-c"
arch="all"
license="MIT"
depends_dev="popt-dev"
-makedepends="$depends_dev openssl1.1-compat-dev cmake xmlto doxygen samurai"
-subpackages="$pkgname-utils $pkgname-doc::noarch $pkgname-dev"
+makedepends="$depends_dev openssl-dev>3 cmake xmlto doxygen samurai"
+subpackages="$pkgname-utils $pkgname-doc::noarch $pkgname-static $pkgname-dev"
source="$pkgname-$pkgver.tar.gz::https://github.com/alanxz/rabbitmq-c/archive/v$pkgver.tar.gz"
+# secfixes:
+# 0.14.0-r0:
+# - CVE-2023-35789
+
build() {
cmake -B build -G Ninja \
- -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
- -DCMAKE_C_FLAGS="$CFLAGS" \
-DBUILD_STATIC_LIBS=ON \
-DBUILD_SHARED_LIBS=ON \
-DENABLE_SSL_SUPPORT=ON \
- -DBUILD_TESTS=ON \
- -DBUILD_TOOLS=ON
+ -DBUILD_TOOLS=ON \
+ -DBUILD_TOOLS_DOCS=ON
cmake --build build
}
@@ -33,24 +36,14 @@ check() {
package() {
DESTDIR="$pkgdir" cmake --build build --target install
- rm -f "$pkgdir"/usr/lib/*.a
}
utils() {
pkgdesc="$pkgdesc (command line utilities)"
- mkdir -p "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
-}
-
-doc() {
- pkgdesc="$pkgdesc (documentation and examples)"
-
- mkdir -p "$subpkgdir"/usr/share/"$pkgname"
- cp -a "$builddir"/build/docs "$builddir"/examples \
- "$subpkgdir"/usr/share/"$pkgname"/
+ amove usr/bin
}
sha512sums="
-0c3dbb6e2b862e9f25e3f76df798ea272bbd81de2865950b95adf1f1e5791eb20d7c9d5a76cb7d2fda54bad5f12bdf69cbfa7e9fd1afdede6f9ec729ca2287de rabbitmq-c-0.11.0.tar.gz
+18cb429bcfa457e359128bf458c8b9f60b1c929a8ca3a8206f40d6390d7d4c6f4c5140eb7e9ab7b401d035fc48324cbe963d058100ab65ef3faba59e7f95607e rabbitmq-c-0.14.0.tar.gz
"
diff --git a/main/radvd/APKBUILD b/main/radvd/APKBUILD
index 90626d33839..d8b40d390d1 100644
--- a/main/radvd/APKBUILD
+++ b/main/radvd/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=radvd
pkgver=2.19
-pkgrel=2
+pkgrel=4
pkgdesc="IPv6 router advertisement daemon"
url="http://www.litech.org/radvd"
arch="all"
-license="BSD with advertising"
+license="BSD-Advertising-Acknowledgement"
makedepends="flex bison libdaemon-dev linux-headers check-dev"
install="$pkgname.pre-install"
subpackages="$pkgname-doc $pkgname-openrc"
@@ -21,6 +21,11 @@ case "$CARCH" in
mips*) options="!check";;
esac
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
./configure \
--build=$CBUILD \
diff --git a/main/rarian/APKBUILD b/main/rarian/APKBUILD
index d41be593fc9..16371131305 100644
--- a/main/rarian/APKBUILD
+++ b/main/rarian/APKBUILD
@@ -1,26 +1,24 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=rarian
pkgver=0.8.1
-pkgrel=7
+pkgrel=11
pkgdesc="Documentation meta-data library, designed as a replacement for Scrollkeeper."
url="https://rarian.freedesktop.org/"
arch="all"
options="!check" # No test suite.
-license="GPL-2.0+, LGPL-2.1+, Zlib"
+license="GPL-2.0-or-later AND LGPL-2.1-or-later AND Zlib"
subpackages="$pkgname-dev"
depends="bash"
makedepends="libxslt-dev"
-source="https://download.gnome.org/sources/$pkgname/0.8/$pkgname-$pkgver.tar.bz2
+source="https://download.gnome.org/sources/rarian/0.8/rarian-$pkgver.tar.bz2
user-segfault.patch"
prepare() {
- cd "$builddir"
update_config_sub
default_prepare
}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -33,7 +31,6 @@ build() {
}
package() {
- cd "$builddir"
make -j1 DESTDIR="$pkgdir" install
}
diff --git a/main/raspberrypi-bootloader/APKBUILD b/main/raspberrypi-bootloader/APKBUILD
index 08110040037..b3bba710cbb 100644
--- a/main/raspberrypi-bootloader/APKBUILD
+++ b/main/raspberrypi-bootloader/APKBUILD
@@ -1,39 +1,47 @@
# Contributor: Marian Buschsieweke <marian.buschsieweke@ovgu.de>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=raspberrypi-bootloader
-pkgver=1.20220331
+# To match Alpine kernel schedule, use master branch commit id rather than older stable tagged releases
+# Keep by-the-date release numbering for consistency
+_commit=86ff592ac45b8b7e9d26a4f14da128d30b8d5674
+pkgver=1.20240417
pkgrel=0
pkgdesc="Bootloader files for the Raspberry Pi"
-url=https://github.com/raspberrypi/firmware
+url="https://github.com/raspberrypi/rpi-firmware"
arch="armhf armv7 aarch64"
license="custom"
+triggers="raspberrypi-bootloader-common.trigger=/boot"
options="!check !strip !tracedeps !spdx"
-source="$pkgname-$pkgver.tar.gz::https://github.com/raspberrypi/firmware/archive/$pkgver.tar.gz"
+source="$pkgname-$pkgver.tar.gz::https://github.com/raspberrypi/rpi-firmware/archive/$_commit.tar.gz
+ update-raspberrypi-bootloader"
subpackages="$pkgname-common $pkgname-experimental $pkgname-debug $pkgname-cutdown $pkgname-doc"
depends="$pkgname-common=$pkgver-r$pkgrel"
-builddir="$srcdir/firmware-$pkgver"
+builddir="$srcdir/rpi-firmware-$_commit"
package() {
local fw; for fw in bootcode.bin fixup.dat fixup4.dat start.elf start4.elf; do
- install -D "$builddir"/boot/$fw \
+ install -D "$builddir"/$fw \
"$pkgdir"/boot/$fw
done
- install -Dm 644 "$builddir"/boot/LICENCE.broadcom \
+ install -Dm 644 "$builddir"/LICENCE.broadcom \
"$pkgdir"/usr/share/licenses/$pkgname/COPYING
+ install -D -m755 "$srcdir"/update-raspberrypi-bootloader \
+ "$pkgdir"/sbin/update-raspberrypi-bootloader
}
common() {
pkgdesc="Common files used by Raspberry Pi bootloaders"
depends=
- amove boot/bootcode.bin
+ amove boot/bootcode.bin \
+ sbin/update-raspberrypi-bootloader
}
experimental() {
pkgdesc="Experimental firmware with additional codecs"
depends="$pkgname-common=$pkgver-r$pkgrel"
local fw; for fw in start_x.elf start4x.elf fixup_x.dat fixup4x.dat; do
- install -D "$builddir"/boot/$fw \
+ install -D "$builddir"/$fw \
"$subpkgdir"/boot/$fw
done
}
@@ -42,7 +50,7 @@ debug() {
pkgdesc="Debug firmware"
depends="$pkgname-common=$pkgver-r$pkgrel"
local fw; for fw in start_db.elf start4db.elf fixup_db.dat fixup4db.dat; do
- install -D "$builddir"/boot/$fw \
+ install -D "$builddir"/$fw \
"$subpkgdir"/boot/$fw
done
}
@@ -51,11 +59,12 @@ cutdown() {
pkgdesc="Cut-down firmware for lower memory settings"
depends="$pkgname-common=$pkgver-r$pkgrel"
local fw; for fw in start_cd.elf start4cd.elf fixup_cd.dat fixup4cd.dat; do
- install -D "$builddir"/boot/$fw \
+ install -D "$builddir"/$fw \
"$subpkgdir"/boot/$fw
done
}
sha512sums="
-c510ddb5eb1c6ea1aa69f0063551445dd21092f68e19b64b885558d2c47735d4e9f781ef9674fbe3a9894d66eb07ccbb004541c9a85005318911fabda899c2cc raspberrypi-bootloader-1.20220331.tar.gz
+f8fb1626733256a00398f72da23e3c02610db3673a5ed4d92d7a9e764bc4e21bc7ecee55148fa4cf0f582ce6edcebb4ed06b06f82cb52689f676bb186d362ade raspberrypi-bootloader-1.20240417.tar.gz
+35af8c7bdd3ab6f2bbc0290d8cb2adbe333639e9e3d9d03f3d0b981e6814a0ab56fb508e0e34e44ae3a325909cab3a76819fb6844d7eafe394996f7a0db83c0e update-raspberrypi-bootloader
"
diff --git a/main/raspberrypi-bootloader/raspberrypi-bootloader-common.trigger b/main/raspberrypi-bootloader/raspberrypi-bootloader-common.trigger
new file mode 100644
index 00000000000..037e2183963
--- /dev/null
+++ b/main/raspberrypi-bootloader/raspberrypi-bootloader-common.trigger
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+exec update-raspberrypi-bootloader
diff --git a/main/raspberrypi-bootloader/update-raspberrypi-bootloader b/main/raspberrypi-bootloader/update-raspberrypi-bootloader
new file mode 100644
index 00000000000..899bd73e852
--- /dev/null
+++ b/main/raspberrypi-bootloader/update-raspberrypi-bootloader
@@ -0,0 +1,47 @@
+#!/bin/sh
+
+if grep -q '^disable_trigger=1' /etc/update-raspberrypi-bootloader.conf 2>/dev/null; then
+ exit 0
+fi
+
+# see https://www.raspberrypi.com/documentation/computers/config_txt.html#kernel
+# use the last found kernel for for example vmlinuz-rpi16k gets preference over
+# vmlinuz-rpi
+for i in /boot/vmlinuz* /boot/vmlinuz-lts /boot/vmlinuz-rpi /boot/vmlinuz-rpi*; do
+ if [ -e "$i" ]; then
+ kernel="${i#/boot/}"
+ initramfs="initramfs${kernel#vmlinuz}"
+ fi
+done
+
+if [ -z "$kernel" ]; then
+ echo "$0: WARNING: no kernel found" >&2
+ exit
+fi
+
+case "$(uname -m)" in
+ aarch64) arm_64bit=1;;
+ *) arm_64bit=0;;
+esac
+
+cat > /boot/config.txt.new <<-EOF
+ # do not modify this file as it will be overwritten on upgrade.
+ # create and/or modify usercfg.txt instead.
+ # https://www.raspberrypi.com/documentation/computers/config_txt.html
+ #
+
+ kernel=$kernel
+ initramfs $initramfs
+ arm_64bit=$arm_64bit
+ include usercfg.txt
+EOF
+
+if diff -bBN /boot/config.txt.new /boot/config.txt >/dev/null; then
+ rm -f /boot/config.txt.new
+else
+ mv -f /boot/config.txt /boot/config.txt.old 2>/dev/null
+ mv -f /boot/config.txt.new /boot/config.txt
+ echo "$0: INFO: replaced config.txt and saved config.txt.old"
+fi
+
+echo "Configured kernel $kernel / $initramfs"
diff --git a/main/raspberrypi-userland/10-local-rpi.rules b/main/raspberrypi-userland/10-local-rpi.rules
new file mode 100644
index 00000000000..43ad6db430c
--- /dev/null
+++ b/main/raspberrypi-userland/10-local-rpi.rules
@@ -0,0 +1,7 @@
+# VC4 GPU devices created by vchiq driver: make them accessible to video group
+
+KERNEL=="vchiq", GROUP="video", MODE="0660"
+KERNEL=="vc-mem", GROUP="video", MODE="0660"
+KERNEL=="vcsm-cma", GROUP="video", MODE="0660"
+KERNEL=="vcio", GROUP="video", MODE="0660"
+
diff --git a/main/raspberrypi-userland/APKBUILD b/main/raspberrypi-userland/APKBUILD
new file mode 100644
index 00000000000..95f203a5a27
--- /dev/null
+++ b/main/raspberrypi-userland/APKBUILD
@@ -0,0 +1,104 @@
+# Maintainer: Timo Teräs <timo.teras@iki.fi>
+pkgname=raspberrypi-userland
+pkgver=0.20231020
+pkgrel=0
+_commit="96a7334ae9d5fc9db7ac92e59852377df63f1848"
+pkgdesc="Raspberry Pi tools for interfacing to GPU (deprecated)'"
+url="https://github.com/raspberrypi/userland"
+arch="armhf armv7 aarch64"
+license="BSD-3-Clause"
+provides="raspberrypi=$pkgver-r$pkgrel" # for backward compatibility
+replaces="raspberrypi" # for backward compatibility
+depends_dev="linux-headers $pkgname-static $pkgname-libs"
+makedepends="cmake samurai $depends_dev"
+options="!fhs !check"
+subpackages="$pkgname-dev $pkgname-doc $pkgname-static $pkgname-libs $pkgname-udev:udev"
+source="$pkgname-$_commit.tar.gz::https://github.com/raspberrypi/userland/archive/$_commit.tar.gz
+ dont-build-moved-utils.patch
+ 10-local-rpi.rules
+ "
+builddir="$srcdir/userland-$_commit"
+
+prepare() {
+ default_prepare
+ sed -i 's/ bash / sh /g' host_applications/linux/apps/raspicam/CMakeLists.txt
+}
+
+build() {
+ case "$CARCH" in
+ arm*) local _arm64=off;;
+ aarch64) local _arm64=on;;
+ esac
+ cmake -B build -G Ninja \
+ -DCMAKE_C_FLAGS="$CFLAGS -D_GNU_SOURCE" \
+ -DARM64=$_arm64 \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_RPATH=/opt/vc/lib \
+ -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--no-as-needed"
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --build build --target install
+
+ # nuke the unwanted stuff
+ rm -rf "$pkgdir"/opt/vc/src
+
+ # move main binaries to /usr/bin (purposely omit those moved into utils package)
+ mkdir -p "$pkgdir"/usr/bin
+ for _app in mmal_vc_diag raspistill raspivid raspividyuv raspiyuv vcsmem \
+ tvservice vchiq_test; do
+ [ -f "$pkgdir"/opt/vc/bin/"$_app" ] && mv "$pkgdir"/opt/vc/bin/"$_app" "$pkgdir"/usr/bin/"$_app"
+ done
+
+ install -Dm644 -t "$pkgdir"/lib/udev/rules.d/ "$srcdir"/10-local-rpi.rules
+
+ mkdir -p "$pkgdir"/usr/share
+ mv "$pkgdir"/opt/vc/man "$pkgdir"/usr/share
+}
+
+static() {
+ pkgdesc="Static files for $pkgname (deprecated)"
+ provides="raspberrypi-static=$pkgver-r$pkgrel" # for backward compatibility
+ replaces="raspberrypi-static" # for backward compatibility
+
+ amove opt/vc/lib/*.a
+}
+
+libs() {
+ pkgdesc="Raspberry Pi libraries for interfacing to GPU (deprecated)"
+ provides="raspberrypi-libs=$pkgver-r$pkgrel" # for backward compatibility
+ replaces="raspberrypi-libs" # for backward compatibility
+
+ amove opt/vc/lib
+}
+
+dev() {
+ pkgdesc="Raspberry Pi tools for interfacing to GPU (deprecated development files)"
+ provides="raspberrypi-dev=$pkgver-r$pkgrel" # for backward compatibility
+ replaces="raspberrypi-dev" # for backward compatibility
+ default_dev
+ amove opt/vc/lib/pkgconfig
+}
+
+udev() {
+ pkgdesc="VC4 GPU vchiq udev rules"
+ install="$subpkgname.post-install"
+ install_if="$pkgname-libs=$pkgver-r$pkgrel eudev"
+ depends=""
+
+ amove lib/udev/rules.d
+}
+
+doc() {
+ provides="raspberrypi-doc=$pkgver-r$pkgrel" # for backward compatibility
+ replaces="raspberrypi-doc" # for backward compatibility
+
+ default_doc
+}
+
+sha512sums="
+246a547cd411f893fe903b92a362b27467e2a3d7f3fd8bab6d9dc6f826d09781a341482826926bd3e94b7609c6a1a8a05726548e6e577f5b64d2130cc3e0fb71 raspberrypi-userland-96a7334ae9d5fc9db7ac92e59852377df63f1848.tar.gz
+b9bc1dd0c596b81eeab90238685b7bc6b6a7d8606467d7444892dd4b2f0f53c43964087f3a2f5c8072fcc90549476453331542f9eff44c883e0c6fc2be8d7ad5 dont-build-moved-utils.patch
+256d1faa31ff43fbbc0fbbf814cb92aaa66f3fc1630e2260fefa6d206baa3bf2c98fc44aefb70a34ea0a092bf208b151a9c0ed1dc0f140fcc59d08ca1a629d6a 10-local-rpi.rules
+"
diff --git a/main/raspberrypi-userland/dont-build-moved-utils.patch b/main/raspberrypi-userland/dont-build-moved-utils.patch
new file mode 100644
index 00000000000..7daa1d91771
--- /dev/null
+++ b/main/raspberrypi-userland/dont-build-moved-utils.patch
@@ -0,0 +1,20 @@
+--- a/host_applications/linux/CMakeLists.txt
++++ b/host_applications/linux/CMakeLists.txt
+@@ -1,17 +1,13 @@
+ # linux apps
+
+ add_subdirectory(libs/bcm_host)
+-add_subdirectory(apps/gencmd)
+ add_subdirectory(apps/tvservice)
+-add_subdirectory(apps/vcmailbox)
+ if(NOT ARM64)
+ add_subdirectory(apps/raspicam)
+ add_subdirectory(libs/sm)
+ add_subdirectory(apps/smem)
+ endif()
+ add_subdirectory(libs/debug_sym)
+-add_subdirectory(apps/dtoverlay)
+-add_subdirectory(apps/dtmerge)
+
+ if(ALL_APPS)
+ add_subdirectory(apps/vcdbg)
diff --git a/main/raspberrypi-userland/raspberrypi-userland-udev.post-install b/main/raspberrypi-userland/raspberrypi-userland-udev.post-install
new file mode 100644
index 00000000000..c2ba0a207f9
--- /dev/null
+++ b/main/raspberrypi-userland/raspberrypi-userland-udev.post-install
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+if [ -S /run/udev/control ]; then
+ udevadm control --reload-rules
+ udevadm trigger --sysname-match=vcio --sysname-match=vchiq --sysname-match=vc-mem --sysname-match=vcsm-cma
+fi
+
+exit 0
+
diff --git a/main/raspberrypi/APKBUILD b/main/raspberrypi/APKBUILD
deleted file mode 100644
index 9b1b5068fda..00000000000
--- a/main/raspberrypi/APKBUILD
+++ /dev/null
@@ -1,66 +0,0 @@
-# Maintainer: Timo Teräs <timo.teras@iki.fi>
-pkgname=raspberrypi
-pkgver=0.20220324
-pkgrel=0
-_commit="c4fd1b8986c6d6d4ae5cd51e65a8bbeb495dfa4e"
-pkgdesc="Raspberry Pi support tools"
-url="https://github.com/raspberrypi/userland"
-arch="armhf armv7 aarch64"
-license="BSD-3-Clause"
-depends_dev="linux-headers raspberrypi-static raspberrypi-libs"
-makedepends="cmake samurai $depends_dev"
-options="!fhs !check"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-static $pkgname-libs"
-source="raspberrypi-$_commit.tar.gz::https://github.com/raspberrypi/userland/archive/$_commit.tar.gz"
-builddir="$srcdir/userland-$_commit"
-
-prepare() {
- default_prepare
- sed -i 's/ bash / sh /g' host_applications/linux/apps/raspicam/CMakeLists.txt
-}
-
-build() {
- case "$CARCH" in
- arm*) local _arm64=off;;
- aarch64) local _arm64=on;;
- esac
- cmake -B build -G Ninja \
- -DCMAKE_C_FLAGS="$CFLAGS -D_GNU_SOURCE" \
- -DARM64=$_arm64 \
- -DCMAKE_BUILD_TYPE=MinSizeRel \
- -DCMAKE_INSTALL_RPATH=/opt/vc/lib \
- -DCMAKE_SHARED_LINKER_FLAGS="-Wl,--no-as-needed"
- cmake --build build
-}
-
-package() {
- DESTDIR="$pkgdir" cmake --build build --target install
-
- # nuke the unwanted stuff
- rm -rf "$pkgdir"/opt/vc/src
-}
-
-static() {
- pkgdesc="Static files for $pkgname"
-
- mkdir -p "$subpkgdir"/opt/vc/lib
- mv "$pkgdir"/opt/vc/lib/*.a "$subpkgdir"/opt/vc/lib
-}
-
-libs() {
- pkgdesc="Raspberry Pi support libraries"
-
- mkdir -p "$subpkgdir"/opt/vc/lib
- mv "$pkgdir"/opt/vc/lib/* "$subpkgdir"/opt/vc/lib
-}
-
-doc() {
- mkdir -p "$subpkgdir"/usr/share
- mv "$pkgdir"/opt/vc/man "$subpkgdir"/usr/share
-
- default_doc
-}
-
-sha512sums="
-e59cf4d6b3fba79c5ded69a1f6c99efedd067afbfa9edfaaeebf2d8a6ab7dc3c44ea0cfb79227e5b2dd4308a56390341cb7c1aa9c9072b2a94e31240c5d68006 raspberrypi-c4fd1b8986c6d6d4ae5cd51e65a8bbeb495dfa4e.tar.gz
-"
diff --git a/main/razor/APKBUILD b/main/razor/APKBUILD
index eb95fe15b85..c388721f75b 100644
--- a/main/razor/APKBUILD
+++ b/main/razor/APKBUILD
@@ -3,9 +3,9 @@
pkgname=razor
_realname=razor-agents
pkgver=2.85
-pkgrel=12
+pkgrel=15
pkgdesc="Vipul's Razor is a distributed, collaborative spam detection and filtering network"
-url="http://razor.sourceforge.net/"
+url="https://razor.sourceforge.net/"
arch="all"
license="Artistic-2.0"
depends="perl perl-digest-sha1 perl-getopt-long perl-uri"
diff --git a/main/rdfind/APKBUILD b/main/rdfind/APKBUILD
new file mode 100644
index 00000000000..396c0bc75f3
--- /dev/null
+++ b/main/rdfind/APKBUILD
@@ -0,0 +1,36 @@
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=rdfind
+pkgver=1.6.0
+pkgrel=1
+pkgdesc="Redundant data find - a program that finds duplicate files"
+url="http://rdfind.pauldreik.se"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="nettle-dev automake autoconf libtool"
+subpackages="$pkgname-doc"
+source="https://rdfind.pauldreik.se/rdfind-$pkgver.tar.gz
+ disable-makefile-test-failing.patch"
+
+prepare() {
+ default_prepare
+ ./bootstrap.sh
+}
+
+build() {
+ ./configure --prefix=/usr
+ make -s
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir/" install
+}
+
+sha512sums="
+21d135551bd2d71a71dfe1e4faece6e980db3df18f34433b7b0a5da9e21ccc9067337892025afa9b4b1fd6069732a144b5b7b8e0441cbc9821a71a8b934cced1 rdfind-1.6.0.tar.gz
+ab53fabe698ed9fa31f31ed4828ce8f8b5582412a8ad97d2706aac3d1f6b21150ac8a73443e89c18a26b479b1cb4139e640d5c08c463cd01c7387dc311d10f1d disable-makefile-test-failing.patch
+"
diff --git a/main/rdfind/disable-makefile-test-failing.patch b/main/rdfind/disable-makefile-test-failing.patch
new file mode 100644
index 00000000000..50fcf3c9c81
--- /dev/null
+++ b/main/rdfind/disable-makefile-test-failing.patch
@@ -0,0 +1,44 @@
+diff --git a/Makefile.in b/Makefile.in
+index fc5907f..9c91865 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -497,16 +497,12 @@ rdfind_SOURCES = rdfind.cc Checksum.cc Dirlist.cc Fileinfo.cc Rdutil.cc \
+ #these are the test scripts to execute - I do not know how to glob here,
+ #feedback welcome.
+ TESTS = testcases/largefilesupport.sh \
+- testcases/hardlink_fails.sh \
+- testcases/symlinking_action.sh \
+ testcases/verify_filesize_option.sh \
+ testcases/verify_maxfilesize_option.sh \
+- testcases/verify_dryrun_option.sh \
+ testcases/verify_ranking.sh \
+ testcases/verify_deterministic_operation.sh \
+ testcases/checksum_options.sh \
+- testcases/md5collisions.sh \
+- testcases/sha1collisions.sh
++ testcases/md5collisions.sh
+
+ AUXFILES = testcases/common_funcs.sh \
+ testcases/md5collisions/letter_of_rec.ps \
+diff --git a/Makefile.am b/Makefile.am
+index 446eb39..aad38f7 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -9,16 +9,12 @@ rdfind_SOURCES = rdfind.cc Checksum.cc Dirlist.cc Fileinfo.cc Rdutil.cc \
+ #these are the test scripts to execute - I do not know how to glob here,
+ #feedback welcome.
+ TESTS=testcases/largefilesupport.sh \
+- testcases/hardlink_fails.sh \
+- testcases/symlinking_action.sh \
+ testcases/verify_filesize_option.sh \
+ testcases/verify_maxfilesize_option.sh \
+- testcases/verify_dryrun_option.sh \
+ testcases/verify_ranking.sh \
+ testcases/verify_deterministic_operation.sh \
+ testcases/checksum_options.sh \
+- testcases/md5collisions.sh \
+- testcases/sha1collisions.sh
++ testcases/md5collisions.sh
+
+ AUXFILES=testcases/common_funcs.sh \
+ testcases/md5collisions/letter_of_rec.ps \
diff --git a/main/rdiff-backup/0001-Resolve-runtime-dependency-on-setuptools-to-get-vers.patch b/main/rdiff-backup/0001-Resolve-runtime-dependency-on-setuptools-to-get-vers.patch
deleted file mode 100644
index 475c67c0c1d..00000000000
--- a/main/rdiff-backup/0001-Resolve-runtime-dependency-on-setuptools-to-get-vers.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-From e5d1fc3d706315e80bb1a8b8b6960a827475408b Mon Sep 17 00:00:00 2001
-From: Eric L <ericzolf@users.noreply.github.com>
-Date: Tue, 28 Jul 2020 07:12:46 +0200
-Subject: [PATCH] Resolve runtime dependency on setuptools to get version
- (#427)
-
-CHG: depend on importlib-metadata instead of setuptools to get rdiff-backup veersion, closes #418
----
- README.md | 4 +++-
- docs/DEVELOP.md | 3 ++-
- setup.py | 2 +-
- src/rdiff_backup/Globals.py | 19 +++++++++++++++----
- tools/build_wheels.sh | 2 ++
- tox.ini | 2 +-
- tox_root.ini | 2 +-
- tox_slow.ini | 2 +-
- 8 files changed, 26 insertions(+), 10 deletions(-)
-
-diff --git a/README.md b/README.md
-index 4997513..7b52d8f 100644
---- a/README.md
-+++ b/README.md
-@@ -125,9 +125,11 @@ sudo pip3 install rdiff-backup
- You need to make sure that the following requirements are met:
-
- * Python 3.5 or higher
--* librsync 1.0.0
-+* librsync 1.0.0 or higher
- * pylibacl (optional, to support ACLs)
- * pyxattr (optional, to support extended attributes) - the xattr library (without py) isn't regularly tested but should work and you will be helped
-+* if Python's version is 3.7.x or below, importlib-metadata 1.x
-+ (or alternatively setuptools)
- * SSH for remote operations
-
- ```
-diff --git a/docs/DEVELOP.md b/docs/DEVELOP.md
-index accc5dc..12b1156 100644
---- a/docs/DEVELOP.md
-+++ b/docs/DEVELOP.md
-@@ -136,7 +136,8 @@ The same pre-requisites as for the installation of rdiff-backup also apply for b
- * librsync 1.0.0 or higher
- * pylibacl (optional, to support ACLs)
- * pyxattr (optional, to support extended attributes) - even if the xattr library (without py) isn't part of our CI/CD pipeline, feel free to use it for your development
--* python3-setuptools (for a proper version instead of DEV)
-+* if Python's version is 3.7.x or below, importlib-metadata 1.x
-+ (or alternatively setuptools)
-
- Additionally are following pre-requisites needed:
-
-diff --git a/setup.py b/setup.py
-index f1d41fd..6e1bb10 100755
---- a/setup.py
-+++ b/setup.py
-@@ -222,6 +222,6 @@ setup(
- 'build_py': build_py,
- 'clean': clean,
- },
-- install_requires=['setuptools'],
-+ install_requires=['importlib-metadata ~= 1.0 ; python_version < "3.8"'],
- setup_requires=['setuptools_scm'],
- )
-diff --git a/src/rdiff_backup/Globals.py b/src/rdiff_backup/Globals.py
-index caad32c..2843630 100644
---- a/src/rdiff_backup/Globals.py
-+++ b/src/rdiff_backup/Globals.py
-@@ -24,11 +24,22 @@ from . import log
-
- # The current version of rdiff-backup
- # Get it from package info or fall back to DEV version.
-+# importlib/metadata is the new approach, pkg_resources the old one, kept for
-+# compatibility reasons (and because importlib_metadata -for Python < 3.8-
-+# isn't yet packaged for all distros).
- try:
-- import pkg_resources
-- version = pkg_resources.get_distribution("rdiff-backup").version
--except BaseException:
-- version = "DEV"
-+ from importlib import metadata
-+ version = metadata.version('rdiff-backup')
-+except ImportError:
-+ try: # the fallback library for Python below 3.8
-+ import importlib_metadata as metadata
-+ version = metadata.version('rdiff-backup')
-+ except ImportError:
-+ try: # the old method requiring setuptools to be installed
-+ import pkg_resources
-+ version = pkg_resources.get_distribution("rdiff-backup").version
-+ except BaseException: # if everything else fails...
-+ version = "DEV-no-metadata"
-
- # If this is set, use this value in seconds as the current time
- # instead of reading it from the clock.
-diff --git a/tools/build_wheels.sh b/tools/build_wheels.sh
-index 5efe343..748cb69 100755
---- a/tools/build_wheels.sh
-+++ b/tools/build_wheels.sh
-@@ -8,6 +8,8 @@ yum install -y librsync-devel
-
- # Compile wheels
- for PYBIN in $pybindirs; do
-+ "${PYBIN}/pip" install --user \
-+ 'importlib-metadata ~= 1.0 ; python_version < "3.8"'
- "${PYBIN}/pip" wheel /io/ -w dist/
- done
-
-diff --git a/tox.ini b/tox.ini
-index 59e2d06..91ce683 100644
---- a/tox.ini
-+++ b/tox.ini
-@@ -17,7 +17,7 @@ passenv = RDIFF_TEST_* RDIFF_BACKUP_*
- setenv =
- COVERAGE_FILE = {envlogdir}/coverage.sqlite
- deps =
-- setuptools
-+ importlib-metadata ~= 1.0 ; python_version < "3.8"
- pyxattr
- pylibacl
- coverage
-diff --git a/tox_root.ini b/tox_root.ini
-index cf79bb3..7cf5292 100644
---- a/tox_root.ini
-+++ b/tox_root.ini
-@@ -20,7 +20,7 @@ isolated_build_env = .package.root
- # or explicitly the RDIFF_* ones:
- passenv = SUDO_USER SUDO_UID SUDO_GID RDIFF_TEST_* RDIFF_BACKUP_*
- deps =
-- setuptools
-+ importlib-metadata ~= 1.0 ; python_version < "3.8"
- pyxattr
- pylibacl
- #whitelist_externals = env
-diff --git a/tox_slow.ini b/tox_slow.ini
-index 64edd84..940fb1b 100644
---- a/tox_slow.ini
-+++ b/tox_slow.ini
-@@ -12,7 +12,7 @@ envlist = py35, py36, py37, py38
- [testenv]
- passenv = RDIFF_TEST_* RDIFF_BACKUP_*
- deps =
-- setuptools
-+ importlib-metadata ~= 1.0 ; python_version < "3.8"
- pyxattr
- pylibacl
- # whitelist_externals =
---
-2.29.1
-
diff --git a/main/rdiff-backup/0002-remove-setuptools_scm.patch b/main/rdiff-backup/0002-remove-setuptools_scm.patch
index af5b53ded03..1f462330b5a 100644
--- a/main/rdiff-backup/0002-remove-setuptools_scm.patch
+++ b/main/rdiff-backup/0002-remove-setuptools_scm.patch
@@ -1,8 +1,8 @@
diff --git a/setup.py b/setup.py
-index 6e1bb10..f0e9142 100755
+index 834eefd..2386da0 100755
--- a/setup.py
+++ b/setup.py
-@@ -136,7 +136,6 @@ class clean(distutils.command.clean.clean):
+@@ -227,7 +227,6 @@ class clean(distutils.command.clean.clean):
setup(
name="rdiff-backup",
@@ -10,9 +10,9 @@ index 6e1bb10..f0e9142 100755
description="Backup and Restore utility, easy to use, efficient, locally and remotely usable",
long_description="""
rdiff-backup is a simple backup tool which can be used locally and remotely,
-@@ -223,5 +222,4 @@ setup(
- 'clean': clean,
+@@ -355,5 +354,4 @@ setup(
+ 'psutil',
+ ]
},
- install_requires=['importlib-metadata ~= 1.0 ; python_version < "3.8"'],
- setup_requires=['setuptools_scm'],
)
diff --git a/main/rdiff-backup/APKBUILD b/main/rdiff-backup/APKBUILD
index 3edc45d52b5..616bfe7a4fc 100644
--- a/main/rdiff-backup/APKBUILD
+++ b/main/rdiff-backup/APKBUILD
@@ -1,22 +1,28 @@
# Contributor: Jeremy Thomerson <jeremy@thomersonfamily.com>
# Maintainer: Jeremy Thomerson <jeremy@thomersonfamily.com>
pkgname=rdiff-backup
-pkgver=2.0.5
-pkgrel=5
+pkgver=2.2.6
+pkgrel=1
pkgdesc="Reverse differential backup tool"
# Requires unpackaged 'xattr'
options="!check"
url="https://rdiff-backup.net/"
arch="all"
license="GPL-2.0-or-later"
-depends="python3"
-makedepends="librsync-dev python3-dev py3-setuptools"
+depends="python3 py3-yaml"
+makedepends="
+ librsync-dev
+ python3-dev
+ py3-gpep517
+ py3-setuptools
+ py3-wheel
+ "
subpackages="
+ $pkgname-pyc
$pkgname-doc
- $pkgname-bash-completion:bashcomp:noarch
+ $pkgname-bash-completion
"
source="https://github.com/rdiff-backup/rdiff-backup/releases/download/v$pkgver/rdiff-backup-$pkgver.tar.gz
- 0001-Resolve-runtime-dependency-on-setuptools-to-get-vers.patch
0002-remove-setuptools_scm.patch
0003-fix-version.patch
"
@@ -28,24 +34,17 @@ prepare() {
}
build() {
- python3 setup.py build
+ gpep517 build-wheel \
+ --wheel-dir .dist \
+ --output-fd 3 3>&1 >&2
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-bashcomp() {
- depends=""
- pkgdesc="Bash completions for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
-
- amove usr/share/bash-completion
+ python3 -m installer -d "$pkgdir" .dist/*.whl
}
sha512sums="
-59482e6d78bc887fc99efd4b4779e9b41c7e4b0427e51b80b18a550d0051e4213a0c200296154759d1734f511f7abe3175d171f018c59c55e5abdfd0a890cfbd rdiff-backup-2.0.5.tar.gz
-10788ac9ab17849e3f22a4fcfc9b7cd4ea528067591c00f58fb2f41fbb5773e904665d116d92f21fada4b18147e5d1eb31a042be011021a280e2cb87f6683ed0 0001-Resolve-runtime-dependency-on-setuptools-to-get-vers.patch
-4130fd33ab9048e266f7c9a3c0d069e45df27a7a1cf31265c035e8b75f4283d675624064e6a181e2c282b2d2b91975ae07564a37c2ff60f48e46aeae0f7bc120 0002-remove-setuptools_scm.patch
+7370dcbb71f087252f8c599b0fbf58260ec7e026e023648bfab63c39b062120862ab8b60173e2bf2352e16d404bb561c72fe19aa9aed9d49cff56225b91f5c63 rdiff-backup-2.2.6.tar.gz
+01014af9e1c562398b153900fe2db3e429408ce75dd72211121277d3f1b9133416f4ed4adedfe9d1da0a26fdb12c6c59f152cb02a717bf96bf61c64ef25f8586 0002-remove-setuptools_scm.patch
236314c5d51d600abbfb55f084b47e0d60e3182be69803bb0abeff50e0d8750ab29b603abbf39b1a6aa94fe7a6593e121abb330bb8a348fcc27c7a0c3f4bed0b 0003-fix-version.patch
"
diff --git a/main/re2c/APKBUILD b/main/re2c/APKBUILD
index c2a74f9e202..6f5fb03118f 100644
--- a/main/re2c/APKBUILD
+++ b/main/re2c/APKBUILD
@@ -1,13 +1,13 @@
# Contributor: Jeff Bilyk <jbilyk at gmail>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=re2c
-pkgver=3.0
+pkgver=3.1
pkgrel=0
pkgdesc="Lexer generator for C, C++ and Go"
url="http://www.re2c.org"
arch="all"
license="Public-Domain"
-checkdepends="python3"
+makedepends="python3"
subpackages="$pkgname-doc"
source="https://github.com/skvadrik/re2c/releases/download/$pkgver/re2c-$pkgver.tar.xz"
@@ -15,7 +15,13 @@ source="https://github.com/skvadrik/re2c/releases/download/$pkgver/re2c-$pkgver.
# 1.3-r1:
# - CVE-2020-11958
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -35,5 +41,5 @@ package() {
}
sha512sums="
-147f5d2be36cbfe014cd0089297b4994ee95ed3179dec3c84222555636d937e2bdd22373a648efe59decf6810ce1d9d89d96908761a19aed848fa4185a3ca4cb re2c-3.0.tar.xz
+649c5e103f8012e2717a0c36af135601dfa0a090c3e400bbf466537e7038ad73bc9e0ed36c3717b7c3c785c24ad024d40c7c31998325a14caf4984c4f19cd998 re2c-3.1.tar.xz
"
diff --git a/main/readline/APKBUILD b/main/readline/APKBUILD
index 584155bfbe8..21908b9a6bd 100644
--- a/main/readline/APKBUILD
+++ b/main/readline/APKBUILD
@@ -1,17 +1,18 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=readline
-pkgver=8.1.2
+pkgver=8.2.10
pkgrel=0
_myver=${pkgver%.*}
pkgdesc="GNU readline library"
url="https://tiswww.cwru.edu/php/chet/readline/rltop.html"
arch="all"
options="!check"
-license="GPL-2.0-or-later"
+license="GPL-3.0-or-later"
makedepends_host="ncurses-dev chrpath"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc libhistory"
source="https://ftp.gnu.org/gnu/readline/readline-$_myver.tar.gz
fix-ncurses-underlinking.patch
+ fix-rl_do_undo-crash.patch
inputrc
"
patch_args="-p0" # patchlevel used by upstream patches
@@ -41,27 +42,35 @@ build() {
package() {
make -C "$builddir" DESTDIR="$pkgdir" install
- # verfy that its not underlinked as upstream designed it
+ # verify that it is not underlinked as upstream designed it
if ! readelf -d "$pkgdir"/usr/lib/libreadline.so | grep -q 'NEEDED.*ncurses'; then
error "readline needs to be linked against ncurses"
return 1
fi
rmdir "$pkgdir"/usr/bin
- mkdir -p "$pkgdir"/etc
- install -m644 "$srcdir"/inputrc "$pkgdir"/etc/inputrc
+ install -Dm644 "$srcdir"/inputrc "$pkgdir"/etc/inputrc
chrpath -d "$pkgdir"/usr/lib/*.so.*
}
libhistory() {
pkgdesc="GNU History Library"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/$subpkgname.* "$subpkgdir"/usr/lib
+
+ amove usr/lib/libhistory.so.*
}
sha512sums="
-27790d0461da3093a7fee6e89a51dcab5dc61928ec42e9228ab36493b17220641d5e481ea3d8fee5ee0044c70bf960f55c7d3f1a704cf6b9c42e5c269b797e00 readline-8.1.tar.gz
+0a451d459146bfdeecc9cdd94bda6a6416d3e93abd80885a40b334312f16eb890f8618a27ca26868cebbddf1224983e631b1cbc002c1a4d1cd0d65fba9fea49a readline-8.2.tar.gz
b8e2f9a5c9294b49d35c2e1bbde523f01390dd3c8729f3a78e79799a236515ec723af795ba91b0a662a30e8c31df0f63bc80771e82cd31b4673f41428a5049ae fix-ncurses-underlinking.patch
+ddb9308005996106c4bc369ed5726c2479aeb73287ef30a1dc4d6c54fad78f8b1ea46d89b75bd7b00c54acd0ee0d9d17debf922e2260caea2df212e2f9d5109e fix-rl_do_undo-crash.patch
5dbe872e94166aaed7ca2edec5a34ef9b13b254381e252cc6d851877b461579903cbb5b5dc588eabececcf1ebe636f6cb4da406cd01b64757f8c7e7f62e9a276 inputrc
-cfbef10bdeb562a302ccf214878d02ebadf799343b3d2d7996a282f81bcfde83997ba6dcc9a8477af4dd7c73bca74105ca00a81e42ed13321672bd2930550e54 readline81-001.patch
-e47c029b82cf3a4d44e85c4348f7e059c56726694c190d84186822e1c893e1c006e7ec75f33c36791112f81abd792a2e2fdae9a65cd128f3c89ff4ffd9a9a1ff readline81-002.patch
+ea3800a62e992b3e594d78e77b6c4b662fb8c501b81010277e478656bb3b56db7747ba40c6c3d68c3ec5ab8e9e41be104788ec52268135d7e642ff40dea421a8 readline82-001.patch
+2d4058c5c886498486d8514c238c0a05c0a97409011a7da40745e842977f0a29754e8b678f7e6e7a47c00df7e2e4c522d34d473118a24524af3824eed912e74a readline82-002.patch
+796df5a5bc4fc4077158621ac5359a7ccf81261e55880e6e70577ba24b50bd4fce4f2c70521d69a776f6ae8890d14d4f5c95cb9ba7c10f1065978c70626faeab readline82-003.patch
+dc5e4cb6b7a058f433c9c6a587772a4c63e0aeef9c59f45f3f859a007cdbaa46dfd560c43cfe51b9c5c0a3a4d662c100540afc6026b2f8544984867ea3b52661 readline82-004.patch
+f20bcea5ce592edd0e41e0d725611ce536ceffc9ab176511ba6786ae802160b277c412ccbb2ce175da656bdfe5f0fd3f3ace11752cf1a152abff64c90f67a53a readline82-005.patch
+0a2737b2e566fafd60da8c0c7abcbaef24139165fb62a422d257b4cf38835b1e9b7a639c9e64228bbaac432d6a9ce62363b134284e55f3473df788f6433fbe63 readline82-006.patch
+e96dafe28f20b1092af08422b9be99965e3a973a0c19f7c57669a6a7fbf74ad4cc3490fa2ad50a1845644a65b0a0e001cfc7ad29528b3b36827a1b9a2c9a96e7 readline82-007.patch
+a92a00a6b6fefc576ef26cf7522525ac99c1a05de510ca8bd5a72a6db40fb4dc5c277931efa1f4a91e7cf72c9da5287bb14bfa8f0668d36bec40e3ccd7cbe418 readline82-008.patch
+57c084c6186befac58a3432c483c9f879cd199d6947ad7dd29f0d60e67ae4ddf5ee8d861b0231b41582868dd6556ae2dda95a849caf11cbd3692fcd2f8663452 readline82-009.patch
+b611b42e31601ea5fcd7de59e6c1cdd3fece7cc8287e0e495ddfc4d5e8f765b3c6567b728fe0a317d6cb00240b772fa4c26f374c8bf361355a9d262bc5133874 readline82-010.patch
"
diff --git a/main/readline/fix-rl_do_undo-crash.patch b/main/readline/fix-rl_do_undo-crash.patch
new file mode 100644
index 00000000000..513c8b144a9
--- /dev/null
+++ b/main/readline/fix-rl_do_undo-crash.patch
@@ -0,0 +1,127 @@
+Patch-Source: https://sources.debian.org/data/main/r/readline/8.2-3/debian/patches/fix-rl_do_undo-crash.diff
+
+https://git.savannah.gnu.org/cgit/bash.git/patch/?id=277c21d2b2c6730f6cbda428180b08bacdcecc80
+
+From 277c21d2b2c6730f6cbda428180b08bacdcecc80 Mon Sep 17 00:00:00 2001
+From: Chet Ramey <chet.ramey@case.edu>
+Date: Mon, 6 Mar 2023 10:50:45 -0500
+Subject: readline fix for rl_undo_list pointer aliasing; arith command sets
+ word_top
+
+--- histlib.h
++++ histlib.h
+@@ -1,6 +1,6 @@
+ /* histlib.h -- internal definitions for the history library. */
+
+-/* Copyright (C) 1989-2009,2021-2022 Free Software Foundation, Inc.
++/* Copyright (C) 1989-2009,2021-2023 Free Software Foundation, Inc.
+
+ This file contains the GNU History Library (History), a set of
+ routines for managing the text of previously typed lines.
+@@ -84,6 +84,7 @@ extern int _hs_history_patsearch (const
+
+ /* history.c */
+ extern void _hs_replace_history_data (int, histdata_t *, histdata_t *);
++extern int _hs_search_history_data (histdata_t *);
+ extern int _hs_at_end_of_history (void);
+
+ /* histfile.c */
+--- history.c
++++ history.c
+@@ -1,6 +1,6 @@
+ /* history.c -- standalone history library */
+
+-/* Copyright (C) 1989-2021 Free Software Foundation, Inc.
++/* Copyright (C) 1989-2023 Free Software Foundation, Inc.
+
+ This file contains the GNU History Library (History), a set of
+ routines for managing the text of previously typed lines.
+@@ -460,7 +460,7 @@ _hs_replace_history_data (int which, his
+ }
+
+ last = -1;
+- for (i = 0; i < history_length; i++)
++ for (i = history_length - 1; i >= 0; i--)
+ {
+ entry = the_history[i];
+ if (entry == 0)
+@@ -477,7 +477,27 @@ _hs_replace_history_data (int which, his
+ entry = the_history[last];
+ entry->data = new; /* XXX - we don't check entry->old */
+ }
+-}
++}
++
++int
++_hs_search_history_data (histdata_t *needle)
++{
++ register int i;
++ HIST_ENTRY *entry;
++
++ if (history_length == 0 || the_history == 0)
++ return -1;
++
++ for (i = history_length - 1; i >= 0; i--)
++ {
++ entry = the_history[i];
++ if (entry == 0)
++ continue;
++ if (entry->data == needle)
++ return i;
++ }
++ return -1;
++}
+
+ /* Remove history element WHICH from the history. The removed
+ element is returned to you so you can free the line, data,
+--- misc.c
++++ misc.c
+@@ -339,6 +339,9 @@ rl_maybe_replace_line (void)
+ xfree (temp->line);
+ FREE (temp->timestamp);
+ xfree (temp);
++ /* XXX - what about _rl_saved_line_for_history? if the saved undo list
++ is rl_undo_list, and we just put that into a history entry, should
++ we set the saved undo list to NULL? */
+ }
+ return 0;
+ }
+@@ -386,14 +389,16 @@ _rl_free_saved_history_line (void)
+
+ if (_rl_saved_line_for_history)
+ {
+- if (rl_undo_list && rl_undo_list == (UNDO_LIST *)_rl_saved_line_for_history->data)
+- rl_undo_list = 0;
+- /* Have to free this separately because _rl_free_history entry can't:
+- it doesn't know whether or not this has application data. Only the
+- callers that know this is _rl_saved_line_for_history can know that
+- it's an undo list. */
+- if (_rl_saved_line_for_history->data)
+- _rl_free_undo_list ((UNDO_LIST *)_rl_saved_line_for_history->data);
++ UNDO_LIST *sentinel;
++
++ sentinel = (UNDO_LIST *)_rl_saved_line_for_history->data;
++
++ /* We should only free `data' if it's not the current rl_undo_list and
++ it's not the `data' member in a history entry somewhere. We have to
++ free it separately because only the callers know it's an undo list. */
++ if (sentinel && sentinel != rl_undo_list && _hs_search_history_data ((histdata_t *)sentinel) < 0)
++ _rl_free_undo_list (sentinel);
++
+ _rl_free_history_entry (_rl_saved_line_for_history);
+ _rl_saved_line_for_history = (HIST_ENTRY *)NULL;
+ }
+--- search.c
++++ search.c
+@@ -88,8 +88,10 @@ make_history_line_current (HIST_ENTRY *e
+
+ xlist = _rl_saved_line_for_history ? (UNDO_LIST *)_rl_saved_line_for_history->data : 0;
+ /* At this point, rl_undo_list points to a private search string list. */
+- if (rl_undo_list && rl_undo_list != (UNDO_LIST *)entry->data && rl_undo_list != xlist)
++ if (rl_undo_list && rl_undo_list != (UNDO_LIST *)entry->data && rl_undo_list != xlist &&
++ _hs_search_history_data ((histdata_t *)rl_undo_list) < 0)
+ rl_free_undo_list ();
++ rl_undo_list = 0; /* XXX */
+
+ /* Now we create a new undo list with a single insert for this text.
+ WE DON'T CHANGE THE ORIGINAL HISTORY ENTRY UNDO LIST */
diff --git a/main/redis/APKBUILD b/main/redis/APKBUILD
index 4ff8c7e482d..b6b9fb91d1b 100644
--- a/main/redis/APKBUILD
+++ b/main/redis/APKBUILD
@@ -2,15 +2,16 @@
# Contributor: Eivind Uggedal <eu@eju.no>
# Maintainer: TBK <alpine@jjtc.eu>
pkgname=redis
-pkgver=7.0.2
-pkgrel=0
+# CAUTION: Do not upgrade to 7.3+ (non-free license).
+pkgver=7.2.4
+pkgrel=1
pkgdesc="Advanced key-value store"
url="https://redis.io/"
arch="all"
license="BSD-3-Clause"
pkgusers="redis"
pkggroups="redis"
-makedepends="linux-headers"
+makedepends="linux-headers openssl-dev>3"
checkdepends="tcl procps"
install="$pkgname.pre-install $pkgname.post-install"
subpackages="$pkgname-openrc"
@@ -22,10 +23,26 @@ source="https://download.redis.io/releases/redis-$pkgver.tar.gz
$pkgname-sentinel.initd
$pkgname.logrotate
"
-# flaky tests are blocking some builders
-options="!check"
# secfixes:
+# 7.2.4-r0:
+# - CVE-2023-41056
+# 7.2.2-r0:
+# - CVE-2023-45145
+# 7.2.1-r0:
+# - CVE-2023-41053
+# 7.0.12-r0:
+# - CVE-2022-24834
+# - CVE-2023-36824
+# 7.0.8-r0:
+# - CVE-2022-35977
+# - CVE-2023-22458
+# 7.0.6-r0:
+# - CVE-2022-3647
+# 7.0.5-r0:
+# - CVE-2022-35951
+# 7.0.4-r0:
+# - CVE-2022-31144
# 6.2.7-r0:
# - CVE-2022-24735
# - CVE-2022-24736
@@ -54,10 +71,10 @@ options="!check"
# - CVE-2019-10193
build() {
- export CFLAGS="$CFLAGS -DUSE_MALLOC_USABLE_SIZE"
+ export CFLAGS="$CFLAGS -DUSE_MALLOC_USABLE_SIZE -O2 -flto=auto"
make USE_JEMALLOC=no \
MALLOC=libc \
- FINAL_LIBS="-lm -ldl -pthread" \
+ BUILD_TLS=yes \
all
}
@@ -86,7 +103,7 @@ package() {
}
sha512sums="
-bc8d679ecaad0220318b87be70476653f42b76815af61ff6f4e8885f5a5d17d41cea754fbf448f9e18e9a9f90227c5ac198fa9bc523370752f590ba01418a1b0 redis-7.0.2.tar.gz
+78590fb6680f229905c240ed8ce7a9a7153e5f8563577dbbb26aebf9bfbdcd7495d687f452bd95e0a86c76d772e1c497b506cf8d29bc97b62c9267f7d1e76f72 redis-7.2.4.tar.gz
7725486329f2aba8fe03a768f6d8ab78cc96ab6f2ca403af56c252ef7978f7628b580587b372969ca5dd6257780ef58571ce6dc5aca468c3b2a299033b41047f redis.conf.patch
a5dc411c2bd7edf61400e29accb375275dd888fda72a8f7e3889be475010c695a22f536be818ef9441e47285c00b451966db924362a7f56806586078c9e3ff8c sentinel.conf.patch
f6dcdad1edd6b5fb6aa28ba774bfc8aba035f316695da261fb2ad291b76f00f177479f9d74434d06c26bd15f131edc9a2f55c9880758cf0987800d2031069738 redis.initd
diff --git a/main/redis/redis.pre-install b/main/redis/redis.pre-install
index f7321312665..22622e58400 100644
--- a/main/redis/redis.pre-install
+++ b/main/redis/redis.pre-install
@@ -1,6 +1,6 @@
#!/bin/sh
addgroup -S redis 2>/dev/null
-adduser -S -D -H -h /var/lib/redis -s /bin/false -G redis -g redis redis 2>/dev/null
+adduser -S -D -H -h /var/lib/redis -s /sbin/nologin -G redis -g redis redis 2>/dev/null
exit 0
diff --git a/main/rgb/APKBUILD b/main/rgb/APKBUILD
new file mode 100644
index 00000000000..a2895b026b6
--- /dev/null
+++ b/main/rgb/APKBUILD
@@ -0,0 +1,29 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=rgb
+pkgver=1.1.0
+pkgrel=5
+pkgdesc="X.org utility to display an RGB color-name database"
+url="https://xorg.freedesktop.org/"
+arch="all"
+options="!check" # No tests.
+license="MIT"
+subpackages="$pkgname-doc"
+makedepends="util-macros xorgproto"
+source="https://www.x.org/releases/individual/app/rgb-$pkgver.tar.xz"
+
+build() {
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --mandir=/usr/share/man
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+}
+
+sha512sums="
+640888d64b2d328fff4a1652ba1299436e348bc3cbc90710d79c635acfa7f2fce0018adb818123b41ca008197ff1cbf87aab60501de36c163bed2d80d8556008 rgb-1.1.0.tar.xz
+"
diff --git a/main/rhash/APKBUILD b/main/rhash/APKBUILD
index 49af93be094..63678d02679 100644
--- a/main/rhash/APKBUILD
+++ b/main/rhash/APKBUILD
@@ -1,18 +1,18 @@
# Maintainer: Przemyslaw Pawelczyk <przemoc@zoho.com>
pkgname=rhash
-pkgver=1.4.3
+pkgver=1.4.4
pkgrel=0
pkgdesc="Utility for calculation and verification of hash sums and magnet links"
url="http://rhash.anz.ru"
arch="all"
license="0BSD"
-makedepends="openssl1.1-compat-dev"
+makedepends="openssl-dev>3"
subpackages="$pkgname-doc $pkgname-dev $pkgname-libs"
source="https://downloads.sourceforge.net/rhash/rhash-$pkgver-src.tar.gz"
builddir="$srcdir/RHash-$pkgver"
build() {
- # --build and --host are not recognized
+ # not autotools
./configure \
--prefix=/usr \
--sysconfdir=/etc \
@@ -22,15 +22,13 @@ build() {
}
check() {
- make -C "$builddir" test-shared
+ make test-shared
}
package() {
- make -j1 DESTDIR="$pkgdir" install
- make DESTDIR="$pkgdir" \
- install-lib-headers install-lib-shared install-lib-so-link
+ make -j1 DESTDIR="$pkgdir" install install-lib-headers install-lib-shared install-lib-so-link
}
sha512sums="
-d87ffcde28d8f25cf775c279fed457e52d24523ed9b695629dae694b3c22372247d18f6032f8ce13a0b70fa2953be408982e46659daaa7c4ab227ae89eaed9c7 rhash-1.4.3-src.tar.gz
+00a7e5e058b53ce20ae79509815452ed9cb699d1322b678220b72c61dea3ea2f8fa131acfade8bb6d9f6af913f0c3c472330841181b22314b8755166310c946f rhash-1.4.4-src.tar.gz
"
diff --git a/main/rhash/byteorder.patch b/main/rhash/byteorder.patch
deleted file mode 100644
index a0cb83d6bcb..00000000000
--- a/main/rhash/byteorder.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/librhash/byte_order.h b/librhash/byte_order.h
-index 1ea1096..b248b57 100644
---- a/librhash/byte_order.h
-+++ b/librhash/byte_order.h
-@@ -4,7 +4,7 @@
- #include "ustd.h"
- #include <stdlib.h>
-
--#if defined(__GLIBC__)
-+#if defined(__linux__)
- # include <endian.h>
- #endif
- #if defined(__FreeBSD__) || defined(__DragonFly__) || defined(__APPLE__)
diff --git a/main/rlog/APKBUILD b/main/rlog/APKBUILD
index e0ce19531ba..ce9715ef654 100644
--- a/main/rlog/APKBUILD
+++ b/main/rlog/APKBUILD
@@ -2,9 +2,9 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=rlog
pkgver=1.4
-pkgrel=5
+pkgrel=7
pkgdesc="A flexible message logging facility for C++ programs and libraries."
-url="https://www.arg0.net/rlog"
+url="https://code.google.com/archive/p/rlog/"
arch="all"
license="LGPL-2.1-or-later"
options="!check" # no testsuite
diff --git a/main/rng-tools/01-fix-ignorefail.patch b/main/rng-tools/01-fix-ignorefail.patch
new file mode 100644
index 00000000000..9e5c7cb4f19
--- /dev/null
+++ b/main/rng-tools/01-fix-ignorefail.patch
@@ -0,0 +1,27 @@
+From: Dermot Bradley <dermot_bradley@yahoo.com>
+Date: Mon, 10 Apr 2023 14:25 +0100
+
+When -i used, the fips_run_rng_test() should not be called in
+update_kernel_random().
+
+Upstream PR #189, already merged in master.
+
+---
+
+diff -aur a/rngd.c b/rngd.c
+--- a/rngd.c
++++ b/rngd.c
+@@ -728,10 +728,11 @@
+ unsigned char *buf, fips_ctx_t *fipsctx_in)
+ {
+ unsigned char *p;
+- int fips;
++ int fips = 0;
+ int rc;
+
+- fips = fips_run_rng_test(fipsctx_in, buf);
++ if (!arguments->ignorefail)
++ fips = fips_run_rng_test(fipsctx_in, buf);
+ if (fips && !arguments->ignorefail)
+ return 1;
+
diff --git a/main/rng-tools/02-fix-random_step-boundary.patch b/main/rng-tools/02-fix-random_step-boundary.patch
new file mode 100644
index 00000000000..66ec854aad9
--- /dev/null
+++ b/main/rng-tools/02-fix-random_step-boundary.patch
@@ -0,0 +1,23 @@
+From: Dermot Bradley <dermot_bradley@yahoo.com>
+Date: Mon, 10 Apr 2023 14:25 +0100
+
+As buffer size in do_loop() is FIPS_RNG_BUFFER_SIZE, so the random_step
+should not bigger. If random_step > FIPS_RNG_BUFFER_SIZE,
+update_kernel_random() will not write any date.
+
+Upstream PR #190, already merged in master.
+
+---
+
+diff -aur a/rngd.c b/rngd.c
+--- a/rngd.c
++++ b/rngd.c
+@@ -623,6 +623,8 @@
+ case 's':
+ if (sscanf(arg, "%i", &arguments->random_step) == 0)
+ argp_usage(state);
++ if (arguments->random_step > FIPS_RNG_BUFFER_SIZE || arguments->random_step < 0)
++ arguments->random_step = FIPS_RNG_BUFFER_SIZE;
+ break;
+ case 'W': {
+ int n;
diff --git a/main/rng-tools/03-correct-linux-poolsize.patch b/main/rng-tools/03-correct-linux-poolsize.patch
new file mode 100644
index 00000000000..f5134164c26
--- /dev/null
+++ b/main/rng-tools/03-correct-linux-poolsize.patch
@@ -0,0 +1,55 @@
+From: Dermot Bradley <dermot_bradley@yahoo.com>
+Date: Mon, 24 Apr 2023 15:37 +0100
+
+Change the size of the Linux poolsize from 4096 to 256 to reflect
+that of modern/recent Linux kernels.
+
+Upstream PR #196 submitted.
+
+---
+
+diff -aur a/rngd.8.in b/rngd.8.in
+--- a/rngd.8.in
++++ b/rngd.8.in
+@@ -108,7 +108,7 @@
+ Setting this too high will cause \fIrngd\fR to dominate the contents of the
+ entropy pool. Low values will hurt system performance during entropy
+ starves. Do not set \fIfill-watermark\fR above the size of the
+-entropy pool (usually 4096 bits). A value of 0 to this option will cause no
++entropy pool (usually 256 bits). A value of 0 to this option will cause no
+ watermark to be set.
+ .TP
+ \fB\-R\fI n\fR, \fB\-\-force-reseed=\fInnn\fR
+diff -aur a/rngd.c b/rngd.c
+--- a/rngd.c
++++ b/rngd.c
+@@ -120,7 +120,7 @@
+ "Number of bytes written to random-device at a time (default: 64)" },
+
+ { "fill-watermark", 'W', "n", 0,
+- "Do not stop feeding entropy to random-device until at least n bits of entropy are available in the pool (default: 3/4 of poolsize), 0 <= n <= 4096" },
++ "Do not stop feeding entropy to random-device until at least n bits of entropy are available in the pool (default: 3/4 of poolsize), 0 <= n <= 256" },
+
+ { "quiet", 'q', 0, 0, "Suppress all messages" },
+
+@@ -628,7 +628,7 @@
+ break;
+ case 'W': {
+ int n;
+- if ((sscanf(arg, "%i", &n) == 0) || (n < 0) || (n > 4096))
++ if ((sscanf(arg, "%i", &n) == 0) || (n < 0) || (n > 256))
+ argp_usage(state);
+ else
+ arguments->fill_watermark = n;
+diff -aur a/rngd_linux.c b/rngd_linux.c
+--- a/rngd_linux.c
++++ b/rngd_linux.c
+@@ -60,7 +60,7 @@
+ * randomdev is the path to the random device
+ */
+
+-#define DEFAULT_WATERMARK_GUESS 4096
++#define DEFAULT_WATERMARK_GUESS 256
+
+ void init_kernel_rng(const char* randomdev)
+ {
diff --git a/main/rng-tools/APKBUILD b/main/rng-tools/APKBUILD
index 451721b8937..3a9a58c2ddf 100644
--- a/main/rng-tools/APKBUILD
+++ b/main/rng-tools/APKBUILD
@@ -1,18 +1,16 @@
# Contributor: Dennis Przytarski <dennis@przytarski.com>
# Contributor: ScrumpyJack <scrumpyjack@st.ilet.to>
# Contributor: Dermot Bradley <dermot_bradley@yahoo.com>
-# Maintainer: Dermot Bradley <dermot_bradley@yahoo.com>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=rng-tools
#
-# NOTE: Please check with the maintainer *before* deciding to submit any
-# MR to update the package - in particular the package depends on
-# jitterentropy-library and care needs to be taken that both are aligned
-# (i.e. some necessary changes in *both* packages may not be released at
-# the same time and potentially upgrading rng-tools alone could break
-# the rngd jitter functionality).
+# NOTE: The package depends on jitterentropy-library and care needs to
+# be taken that both are aligned (i.e. some necessary changes in
+# *both* packages may not be released at the same time and potentially
+# upgrading rng-tools alone could break the rngd jitter functionality).
#
-pkgver=6.15
-pkgrel=0
+pkgver=6.16
+pkgrel=4
pkgdesc="Random number generator daemon"
url="https://github.com/nhorman/rng-tools"
arch="all"
@@ -24,11 +22,12 @@ makedepends="
curl-dev
jansson-dev
jitterentropy-library-dev
+ libcap-dev
librtlsdr-dev
libtool
libxml2-dev
linux-headers
- openssl1.1-compat-dev
+ openssl-dev>3
"
options="!check" # No useful tests to be performed.
subpackages="
@@ -38,6 +37,10 @@ subpackages="
rng-tools-extra-openrc:extra_openrc
"
source="rng-tools-$pkgver.tar.gz::https://github.com/nhorman/rng-tools/archive/v$pkgver.tar.gz
+ 01-fix-ignorefail.patch
+ 02-fix-random_step-boundary.patch
+ 03-correct-linux-poolsize.patch
+ README.Alpine
rngd.confd
rngd.confd-arm
rngd.initd
@@ -45,6 +48,12 @@ source="rng-tools-$pkgver.tar.gz::https://github.com/nhorman/rng-tools/archive/v
rngd-extra.confd-arm
rngd-extra.initd
"
+install="
+ $pkgname.pre-install
+ $pkgname.pre-upgrade
+ $pkgname-extra.pre-install
+ $pkgname-extra.pre-upgrade
+ "
prepare() {
default_prepare
@@ -66,6 +75,7 @@ build() {
--disable-silent-rules \
--with-nistbeacon \
--without-pkcs11 \
+ --with-qrypt \
--with-rtlsdr
make rngd rngtest
@@ -80,6 +90,7 @@ build() {
--disable-silent-rules \
--without-nistbeacon \
--without-pkcs11 \
+ --without-qrypt \
--without-rtlsdr
make
}
@@ -97,6 +108,9 @@ package() {
esac
install -m 644 -D "$srcdir"/"$_confd_file" "$pkgdir"/etc/conf.d/rngd
install -m 755 -D "$srcdir"/rngd.initd "$pkgdir"/etc/init.d/rngd
+
+ install -m 644 -D "$srcdir"/README.Alpine \
+ -t "$pkgdir"/usr/share/doc/$pkgname
}
extra() {
@@ -129,11 +143,15 @@ extra_openrc() {
}
sha512sums="
-44146d891c4f46675a031f2e5ff7755cfaf1abe3252f241c16e042d3bb5e988b77ff840382caca49d8cb9854af1e49369398a506de5e819167739ad33b58d180 rng-tools-6.15.tar.gz
-b33e1608fc73ac14d01f0b555e4abf60be79a711f0e66555b63019843c30ea53eae24d6ee543ebdcbd186108870cf0f346983d50c088c7afeca0af5303b926cf rngd.confd
-19b72997b4e981a1713e51b22bbf1974a49ea6eefbe3d69b32550041d9f8caed1ac494b448a406b609a23cc200fa9bf4e6d5833f06451ca6751889ffa834b915 rngd.confd-arm
-a7e69db8e6af7c319e278bb7d9825462c140884e6d08af6a2e6af465735e6a9328c540470dbdb7d6712546f2ddac42118bb3ef05326f7ed39411cd94896fb066 rngd.initd
-989ecd4c93575a3af4aa60c35ee037e873303116609d7d12bd49e557236cbe76820d63be2938c779c9baf23736f0913e6800d688a811323421f823b89d7949a6 rngd-extra.confd
-0e16b2a663cbfa17dbb559725b25f994a6d7ca82e975afb8a9f33678139ac0e0877f845ac41289d427300a233b0cd896cb35b1b64cc1ecdb9d78747844d4c577 rngd-extra.confd-arm
-15544d296e114c8d093187f3f743f5b7466b9df4e9f4351c78c4f9e7d4f92b9130dff2a1ff3cc228c643db2886a44e4abd3d767a785474a41f3dc1ff8684b181 rngd-extra.initd
+f4155dca8a54f47227f49ccf5f8453ddd50bd91a37b3b1659b5ad02278ed119028cee42918dd48552c79e19f2e2477277a41afa8e422395b2778b17fab09484d rng-tools-6.16.tar.gz
+6cef58eb21f814d2f74484114f1c8d5a57fcdf2eb1c0c34377716df5ff3b15a37f582099b67f9b75be1dd56a34c8c85573b1057a002efdd585af68d41f1e403d 01-fix-ignorefail.patch
+5999206a5d35e58973c5a5d3d4f73e1060b9d02b4653fd6bd3d140fa127a7bbdb2fe1108fc556ee6cf9628d6699a561e414a56e14fff125f0fb401c236ef5fd3 02-fix-random_step-boundary.patch
+11941117d3125529464b277b7d0e719a783c49ebb80d7132a89f134fe2b4e7c7c5f36f101ef2eca1d4ad65affcb889bc9542de0a98613bf8214e322af0aa8367 03-correct-linux-poolsize.patch
+ed483460a47f92d3debf8ba4cc14781b87b8b5dc0fc98f6ac84a3f5996355a69f4d077226e7aa5a0b07e8e1cbcabef86bc626ec5635f5e0c121cdf9f1728d72e README.Alpine
+489b9ea52b31c7e3aef495a76184df23becea679422a3e2232c8f2217f3d6b9bddd3fdd8d17e04cd9ab4a014e234daddd98078938a6afb0197cae71c5969baf1 rngd.confd
+c315e6306bb93233bcd75d216b778eea3487a75244335e13b9586c267dd4423c2a5f93119f3dd2da6aed847b8a0fe97d2cc62fc6a40141c1ea1cd9caf0f3ff8f rngd.confd-arm
+bcd342c69e8bfd2f281d4e759d94d66207b353b41e2f86d8530a5b463a601c114dafab03c21ec3845f762a8e5f8a594f01492311eabc7b94758234665de71f2a rngd.initd
+e46bedde2b543098e629d7ab43f7249ac7c30d0f97ade3be6411c453c30edd4a895c0d3fec1ad17d8296feb84535980bbd3e5de4d5ab754f3eebaf343382e310 rngd-extra.confd
+b5057431e379234a194c4ebe0b22d8b2e46a758aef4bdd7292d420a781cfb038fb6eb032e25bedd88e86f78ae8fffa0523fc52ed9a8f60f791130a040007c9c3 rngd-extra.confd-arm
+830f53b3ba54c662ecdb1a282b9719f15eec4856f2a78a4fa0922044e275ca6a867b8104d55b603027c8d97481b9c4bf10aa8105259a5025f7e7cc4038476b62 rngd-extra.initd
"
diff --git a/main/rng-tools/README.Alpine b/main/rng-tools/README.Alpine
new file mode 100644
index 00000000000..d106e444efb
--- /dev/null
+++ b/main/rng-tools/README.Alpine
@@ -0,0 +1,8 @@
+Recent linux kernels contain substantial changes to the way entropy is
+handled.
+
+I discussed the current situation of rngd and modern Linux kernels with the
+rng-tools maintainer in https://github.com/nhorman/rng-tools/issues/195"
+
+Based on his feedback it appears that rngd serves no practical purpose with
+modern Linux kernels and running it is not recommended.
diff --git a/main/rng-tools/rng-tools-extra.pre-install b/main/rng-tools/rng-tools-extra.pre-install
new file mode 120000
index 00000000000..8c512f8dd42
--- /dev/null
+++ b/main/rng-tools/rng-tools-extra.pre-install
@@ -0,0 +1 @@
+rng-tools.pre-install \ No newline at end of file
diff --git a/main/rng-tools/rng-tools-extra.pre-upgrade b/main/rng-tools/rng-tools-extra.pre-upgrade
new file mode 120000
index 00000000000..8c512f8dd42
--- /dev/null
+++ b/main/rng-tools/rng-tools-extra.pre-upgrade
@@ -0,0 +1 @@
+rng-tools.pre-install \ No newline at end of file
diff --git a/main/rng-tools/rng-tools.pre-install b/main/rng-tools/rng-tools.pre-install
new file mode 100644
index 00000000000..3ddcf93115e
--- /dev/null
+++ b/main/rng-tools/rng-tools.pre-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+addgroup -S rngd 2>/dev/null
+adduser -S -D -H -h /dev/null -s /sbin/nologin -G rngd \
+ -g "rngd" rngd 2>/dev/null
+
+exit 0
diff --git a/main/rng-tools/rng-tools.pre-upgrade b/main/rng-tools/rng-tools.pre-upgrade
new file mode 120000
index 00000000000..8c512f8dd42
--- /dev/null
+++ b/main/rng-tools/rng-tools.pre-upgrade
@@ -0,0 +1 @@
+rng-tools.pre-install \ No newline at end of file
diff --git a/main/rng-tools/rngd-extra.confd b/main/rng-tools/rngd-extra.confd
index d289ffd7a4b..8b6c760de47 100644
--- a/main/rng-tools/rngd-extra.confd
+++ b/main/rng-tools/rngd-extra.confd
@@ -39,7 +39,7 @@ EXCLUDE_ENTROPY_SOURCES=""
# many bits of entropy are available in pool. Value can be
# 0 <= n <= `sysctl kernel.random.poolsize` but is usually 75% of pool size.
#
-#WATERMARK=3072
+#WATERMARK=192
# Entropy source specific options:
@@ -62,7 +62,7 @@ EXCLUDE_ENTROPY_SOURCES=""
#
#JITTER_OPTIONS="buffer_size:16535 force_soft_timer:0 refill_thresh:16535"
#JITTER_OPTIONS="${JITTER_OPTIONS} retry_count:1 retry_delay:-1"
-#JITTER_OPTIONS="${JITTER_OPTIONS} thread_count:4 use_aes:1"
+#JITTER_OPTIONS="${JITTER_OPTIONS} thread_count:4 timeout:5 use_aes:1"
#
#
# nist options:
diff --git a/main/rng-tools/rngd-extra.confd-arm b/main/rng-tools/rngd-extra.confd-arm
index a7f5bd7c965..af6bf0c2f35 100644
--- a/main/rng-tools/rngd-extra.confd-arm
+++ b/main/rng-tools/rngd-extra.confd-arm
@@ -39,7 +39,7 @@ EXCLUDE_ENTROPY_SOURCES=""
# many bits of entropy are available in pool. Value can be
# 0 <= n <= `sysctl kernel.random.poolsize` but is usually 75% of pool size.
#
-#WATERMARK=3072
+#WATERMARK=192
# Entropy source specific options:
@@ -62,7 +62,7 @@ EXCLUDE_ENTROPY_SOURCES=""
#
#JITTER_OPTIONS="buffer_size:16535 force_soft_timer:0 refill_thresh:16535"
#JITTER_OPTIONS="${JITTER_OPTIONS} retry_count:1 retry_delay:-1"
-#JITTER_OPTIONS="${JITTER_OPTIONS} thread_count:4 use_aes:1"
+#JITTER_OPTIONS="${JITTER_OPTIONS} thread_count:4 timeout:5 use_aes:1"
#
# With the default jitter options Arm CPU-based devices typically experience
# continuous high CPU utilisation for several minutes after rngd starts.
@@ -73,8 +73,9 @@ EXCLUDE_ENTROPY_SOURCES=""
# - reduce the number of threads used to 1 in total, rather than 1 per core.
# - reduce the buffer size from 16535 to 4133 which reduces the time taken
# to fill the buffer (and so reduces the duration of CPU load).
+# - increase the timeout from 5 to 20 seconds.
#
-JITTER_OPTIONS="buffer_size:4133 refill_thresh:4133 thread_count:1"
+JITTER_OPTIONS="buffer_size:4133 refill_thresh:4133 thread_count:1 timeout:20"
#
#
# nist options:
diff --git a/main/rng-tools/rngd-extra.initd b/main/rng-tools/rngd-extra.initd
index 73248fd053a..9a98209da90 100644
--- a/main/rng-tools/rngd-extra.initd
+++ b/main/rng-tools/rngd-extra.initd
@@ -4,11 +4,10 @@ description="Random number generator daemon"
pidfile="/run/$RC_SVCNAME.pid"
command="/usr/sbin/rngd"
-command_args="-b -p $pidfile"
-start_stop_daemon_args="--wait 5"
+command_args="-b -p $pidfile -D rngd:rngd"
depend() {
- after urandom
+ after procfs urandom
provide entropy
}
diff --git a/main/rng-tools/rngd.confd b/main/rng-tools/rngd.confd
index aa3ccec124a..5211c1c27da 100644
--- a/main/rng-tools/rngd.confd
+++ b/main/rng-tools/rngd.confd
@@ -38,7 +38,7 @@ EXCLUDE_ENTROPY_SOURCES=""
# many bits of entropy are available in pool. Value can be
# 0 <= n <= `sysctl kernel.random.poolsize` but is usually 75% of pool size.
#
-#WATERMARK=3072
+#WATERMARK=192
# Entropy source specific options:
@@ -61,7 +61,7 @@ EXCLUDE_ENTROPY_SOURCES=""
#
#JITTER_OPTIONS="buffer_size:16535 force_soft_timer:0 refill_thresh:16535"
#JITTER_OPTIONS="${JITTER_OPTIONS} retry_count:1 retry_delay:-1"
-#JITTER_OPTIONS="${JITTER_OPTIONS} thread_count:4 use_aes:1"
+#JITTER_OPTIONS="${JITTER_OPTIONS} thread_count:4 timeout:5 use_aes:1"
#
#
# rdrand options:
diff --git a/main/rng-tools/rngd.confd-arm b/main/rng-tools/rngd.confd-arm
index c09a1f42c94..d7a75790b2e 100644
--- a/main/rng-tools/rngd.confd-arm
+++ b/main/rng-tools/rngd.confd-arm
@@ -38,7 +38,7 @@ EXCLUDE_ENTROPY_SOURCES=""
# many bits of entropy are available in pool. Value can be
# 0 <= n <= `sysctl kernel.random.poolsize` but is usually 75% of pool size.
#
-#WATERMARK=3072
+#WATERMARK=192
# Entropy source specific options:
@@ -61,7 +61,7 @@ EXCLUDE_ENTROPY_SOURCES=""
#
#JITTER_OPTIONS="buffer_size:16535 force_soft_timer:0 refill_thresh:16535"
#JITTER_OPTIONS="${JITTER_OPTIONS} retry_count:1 retry_delay:-1"
-#JITTER_OPTIONS="${JITTER_OPTIONS} thread_count:4 use_aes:1"
+#JITTER_OPTIONS="${JITTER_OPTIONS} thread_count:4 timeout:5 use_aes:1"
#
# With the default jitter options Arm CPU-based devices typically experience
# continuous high CPU utilisation for several minutes after rngd starts.
@@ -72,8 +72,9 @@ EXCLUDE_ENTROPY_SOURCES=""
# - reduce the number of threads used to 1 in total, rather than 1 per core.
# - reduce the buffer size from 16535 to 4133 which reduces the time taken
# to fill the buffer (and so reduces the duration of CPU load).
+# - increase the timeout from 5 to 20 seconds.
#
-JITTER_OPTIONS="buffer_size:4133 refill_thresh:4133 thread_count:1"
+JITTER_OPTIONS="buffer_size:4133 refill_thresh:4133 thread_count:1 timeout:20"
#
#
# rdrand options:
diff --git a/main/rng-tools/rngd.initd b/main/rng-tools/rngd.initd
index 65ac691375b..fde93885cad 100644
--- a/main/rng-tools/rngd.initd
+++ b/main/rng-tools/rngd.initd
@@ -4,11 +4,10 @@ description="Random number generator daemon"
pidfile="/run/$RC_SVCNAME.pid"
command="/usr/sbin/rngd"
-command_args="-b -p $pidfile"
-start_stop_daemon_args="--wait 5"
+command_args="-b -p $pidfile -D rngd:rngd"
depend() {
- after urandom
+ after procfs urandom
provide entropy
}
diff --git a/main/rp-pppoe/APKBUILD b/main/rp-pppoe/APKBUILD
index f22f0b9ec7b..fce486c908d 100644
--- a/main/rp-pppoe/APKBUILD
+++ b/main/rp-pppoe/APKBUILD
@@ -1,22 +1,23 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=rp-pppoe
-pkgver=3.15
-pkgrel=0
+pkgver=4.0
+pkgrel=1
pkgdesc="PPP over Ethernet client (for xDSL support)"
url="https://dianne.skoll.ca/projects/rp-pppoe/"
arch="all"
license="GPL-2.0-or-later"
makedepends="ppp-dev linux-headers"
subpackages="$pkgname-doc $pkgname-openrc"
-source="https://dianne.skoll.ca/projects/rp-pppoe/download/rp-pppoe-$pkgver.tar.gz
- musl-fix.patch
+source="$pkgname-$pkgver.tgz::https://salsa.debian.org/dskoll/rp-pppoe/-/archive/$pkgver/rp-pppoe-$pkgver.tar.gz
rp-pppoe.initd
"
-builddir="$srcdir"/$pkgname-$pkgver
+options="!check"
build() {
cd "$builddir"/src
+ # strlcpy
+ CFLAGS="$CFLAGS -D_BSD_SOURCE" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -35,7 +36,6 @@ package() {
}
sha512sums="
-a156c084e57361ab6a464c3205ffb85cf86d02f71f17f92c9567f1ab0ed300f10030832fd232084699dc842ac4891efc8c54c8165587bfc7b4c92724318a60d9 rp-pppoe-3.15.tar.gz
-5f7e9d50be7c4b007bc2f86cee42b8e5dc4ead6a8def618441c0db0ecb083a6631bd90d6292279c2188986820f7b8f488b41ff6cb186bb541e3e705858a21034 musl-fix.patch
+67d6bdc919826cb84363beb5e58cd27f9aeafa0082f58d697ea30d717ce6bca9aff9158df7afd0eca9ac2b3948929c616a8d25676b3fe6f18df1c10acb6bfd72 rp-pppoe-4.0.tgz
6d3457af1353f875cc007b69322636a89534f9c0cd4d598ad24fb29de4a38bdfabc8a717ca17896ca859eac2aea4a037e113c61c4d322cdf7247ca78a8609fa6 rp-pppoe.initd
"
diff --git a/main/rp-pppoe/musl-fix.patch b/main/rp-pppoe/musl-fix.patch
deleted file mode 100644
index d62fc8293d5..00000000000
--- a/main/rp-pppoe/musl-fix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- ./src/pppoe.h.orig
-+++ ./src/pppoe.h
-@@ -127,10 +127,6 @@
- #error Could not find a 32-bit integer type
- #endif
-
--#ifdef HAVE_LINUX_IF_ETHER_H
--#include <linux/if_ether.h>
--#endif
--
- #include <netinet/in.h>
-
- #ifdef HAVE_NETINET_IF_ETHER_H
diff --git a/main/rpcbind/APKBUILD b/main/rpcbind/APKBUILD
index 98c58fe9d51..8220611f16c 100644
--- a/main/rpcbind/APKBUILD
+++ b/main/rpcbind/APKBUILD
@@ -1,9 +1,9 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=rpcbind
pkgver=1.2.6
-pkgrel=0
+pkgrel=2
pkgdesc="portmap replacement which supports RPC over various protocols"
-url="http://rpcbind.sourceforge.net"
+url="https://rpcbind.sourceforge.net/"
arch="all"
options="!check" # No test suite.
license="BSD-3-Clause"
diff --git a/main/rpcsvc-proto/APKBUILD b/main/rpcsvc-proto/APKBUILD
index d345325c90d..3b389b00e75 100644
--- a/main/rpcsvc-proto/APKBUILD
+++ b/main/rpcsvc-proto/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=rpcsvc-proto
-pkgver=1.4.3
+pkgver=1.4.4
pkgrel=0
pkgdesc="rpcsvc protocol definitions from glibc"
url="https://github.com/thkukuk/rpcsvc-proto"
@@ -11,6 +11,11 @@ makedepends="musl-libintl"
subpackages="$pkgname-dev $pkgname-doc"
source="https://github.com/thkukuk/rpcsvc-proto/releases/download/v$pkgver/rpcsvc-proto-$pkgver.tar.xz"
+prepare() {
+ default_prepare
+ update_config_guess
+}
+
build() {
./configure --prefix=/usr
make
@@ -25,5 +30,5 @@ package() {
}
sha512sums="
-e46ba9ccdd6c520128bf3a154db90742f288a4d593b094a630141cdc5aeb834ffebf9b0eb6d5d0aad9faef3c445c75e2355cbc3e1382b50d29f4d2799441c6e9 rpcsvc-proto-1.4.3.tar.xz
+0138ac8fb2d8de3cb56f661bd1b6435fa0a35d3bd12c5cb7081c9ae1701e3620f47fe3dd002263db456655b61316749768e9a1a44325a1a6a542beae364a0393 rpcsvc-proto-1.4.4.tar.xz
"
diff --git a/main/rrdcollect/APKBUILD b/main/rrdcollect/APKBUILD
index a549269b188..72652f60279 100644
--- a/main/rrdcollect/APKBUILD
+++ b/main/rrdcollect/APKBUILD
@@ -2,21 +2,20 @@
# Maintainer: Michael Mason <ms13sp@gmail.com>
pkgname=rrdcollect
pkgver=0.2.10
-pkgrel=1
+pkgrel=5
pkgdesc="Read system statistical data and feed it to RRDtool"
-url="http://rrdcollect.sourceforge.net/"
+url="https://rrdcollect.sourceforge.net/"
arch="all"
license="GPL-2.0-or-later"
depends="rrdtool"
makedepends="libpcap-dev"
-subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.bz2
+subpackages="$pkgname-doc $pkgname-openrc"
+source="https://downloads.sourceforge.net/rrdcollect/rrdcollect-$pkgver.tar.bz2
rrdcollect.conf.patch
rrdcollect.initd"
+options="!check"
-builddir="$srcdir/$pkgname-$pkgver"
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -29,7 +28,6 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
install -m755 -D "$srcdir"/rrdcollect.initd \
"$pkgdir"/etc/init.d/rrdcollect
diff --git a/main/rrdtool/APKBUILD b/main/rrdtool/APKBUILD
index 125a6664b8b..645d28f683d 100644
--- a/main/rrdtool/APKBUILD
+++ b/main/rrdtool/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=rrdtool
-pkgver=1.7.2
-pkgrel=6
+pkgver=1.8.0
+pkgrel=5
pkgdesc="Data logging and graphing application"
url="http://www.rrdtool.org"
arch="all"
@@ -12,12 +12,12 @@ makedepends="libart-lgpl-dev libpng-dev freetype-dev perl-dev cairo-dev libxml2-
pango-dev lua lua-dev groff autoconf automake libtool"
checkdepends="diffutils"
subpackages="$pkgname-dev $pkgname-doc perl-rrd:perl_rrd lua-rrd:lua_rrd
- $pkgname-cached $pkgname-cgi $pkgname-utils librrd:libs"
+ $pkgname-cached $pkgname-cached-openrc:cached_openrc $pkgname-cgi $pkgname-utils librrd:libs"
source="https://github.com/oetiker/rrdtool-1.x/releases/download/v$pkgver/rrdtool-$pkgver.tar.gz
lua-install-cmod.patch
- libm-underlinking.patch
- no-posix-fallocate.patch
dont-install-in-usr-local.patch
+ fix-build-date-output.patch
+
rrdcached.initd
"
options="!check" # As of 1.7.2 1/22 tests fails.
@@ -25,13 +25,13 @@ options="!check" # As of 1.7.2 1/22 tests fails.
replaces="py-rrd" # Removed due to depending on EOL python 2
prepare() {
- cd "$builddir"
default_prepare
+ update_config_sub
+
libtoolize --force && aclocal && autoconf --force && automake --add-missing
}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -47,12 +47,10 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
export INSTALLDIRS=vendor
make DESTDIR="$pkgdir" install
find "$pkgdir" -name '.packlist' -delete
@@ -88,6 +86,13 @@ cached() {
"$subpkgdir"/var/lib/rrdcached/db \
"$subpkgdir"/var/lib/rrdcached/journal
mv "$pkgdir"/usr/bin/rrdcached "$subpkgdir"/usr/sbin
+}
+
+cached_openrc() {
+ depends=
+ pkgdesc="RRDtool data caching daemon (OpenRC init scripts)"
+ install_if="openrc ${subpkgname%-openrc}=$pkgver-r$pkgrel"
+
install -Dm755 "$srcdir"/rrdcached.initd "$subpkgdir"/etc/init.d/rrdcached
}
@@ -114,10 +119,9 @@ libs() {
}
sha512sums="
-453230efc68aeb4a12842d20a9d246ba478a79c2f6bfd9693a91837c1c1136abe8af177be64fe29aa40bf84ccfce7f2f15296aefe095e89b8b62aef5a7623e29 rrdtool-1.7.2.tar.gz
+8ae6f94d119e8d0e1ba7f2d0738f1ba008a4880d1022f1c0c5436f662d961fceec5c42e01c241493ece3d6f55c60fd7d1d264f93e678f3cf1251201dcde027c1 rrdtool-1.8.0.tar.gz
904fb16b065d879d8cec95e1f4bf67f5a3ff29afc023e8ba2b5636ba1cf5213f24279f2e9179e8a1acb889eee68b0b6527803aad14fcae9c3b98afdbf9e1f89f lua-install-cmod.patch
-49c1d9a8523d9b5a3e4df8e9cc8da58490d4329e88ec12021d50db0b45c780ed465a30521f3a397c0d28bab5d5c1a3839bbe1ae062d8bc645420d16690b9797c libm-underlinking.patch
-853f21b1d4935fd25184e8ac1be683a95952237705e6f7b9072a8247d1307e38c4b31117bcdc12ce1a812d7a6ac711cebfba833ef640b01e4fff1f2b7d0018ef no-posix-fallocate.patch
7b01d5b7c83270e0e45f3186cd0882c206173d2801678c98f1a427be1927898e602535a4cd9c808e2ab8fd393a1fb5267efae53c889c368a502a06d18cfae9aa dont-install-in-usr-local.patch
+616552f49f6a265b8e7112251277e5793d0cc2408b4ec80c2ba81a7edecba427d41b97adcff038b1ebad1aadaf9d272ebb09b1f15e03c1b4e0ef4fd7445596a8 fix-build-date-output.patch
c0c27b2c2dfa8e7ec1cb1160d2bda8d7996bbea67f4ce7779da029f583c35e5e415cf46e2a1e5cb8ed2e63d2c58a68fd7471ee6bd820db4c0f4eeeb5c252f8a3 rrdcached.initd
"
diff --git a/main/rrdtool/fix-build-date-output.patch b/main/rrdtool/fix-build-date-output.patch
new file mode 100644
index 00000000000..ba6d7639e8c
--- /dev/null
+++ b/main/rrdtool/fix-build-date-output.patch
@@ -0,0 +1,53 @@
+From e59f703bbcc0af949ee365206426b6394c340c6f Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Wolfgang=20St=C3=B6ggl?= <c72578@yahoo.de>
+Date: Wed, 23 Mar 2022 17:58:45 +0100
+Subject: [PATCH] Fix BUILD_DATE in rrdtool help output
+
+- This is a followup to #1102
+- Fixes segfault when running "rrdtool --help"
+- Change DATE_FMT to the same date format as the __DATE__ macro [1]:
+ mmm dd yyyy
+
+[1] https://gcc.gnu.org/onlinedocs/cpp/Standard-Predefined-Macros.html
+---
+ configure.ac | 2 +-
+ src/rrd_tool.c | 8 ++++++++
+ 2 files changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 4d2345855..5169b0d49 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -695,7 +695,7 @@ AC_MSG_RESULT(${COMP_PERL:-No Perl Modules will be built})
+
+ # Use reproducible build date and time
+ if test "$SOURCE_DATE_EPOCH"; then
+- DATE_FMT="%d %b %Y %H:%M:%S"
++ DATE_FMT="%b %d %Y %H:%M:%S"
+ BUILD_DATE=$(LC_ALL=C date -u -d "@$SOURCE_DATE_EPOCH" "+$DATE_FMT")
+ AC_DEFINE_UNQUOTED([BUILD_DATE], ["$BUILD_DATE"], [Use reproducible build date])
+ fi
+diff --git a/src/rrd_tool.c b/src/rrd_tool.c
+index 930d08272..cc6119d9a 100644
+--- a/src/rrd_tool.c
++++ b/src/rrd_tool.c
+@@ -45,11 +45,19 @@ static void PrintUsage(
+ char *cmd)
+ {
+
++#ifdef BUILD_DATE
++ const char *help_main =
++ N_("RRDtool %s"
++ " Copyright by Tobias Oetiker <tobi@oetiker.ch>\n"
++ " Compiled %s\n\n"
++ "Usage: rrdtool [options] command command_options\n");
++#else
+ const char *help_main =
+ N_("RRDtool %s"
+ " Copyright by Tobias Oetiker <tobi@oetiker.ch>\n"
+ " Compiled %s %s\n\n"
+ "Usage: rrdtool [options] command command_options\n");
++#endif
+
+ const char *help_list =
+ N_
diff --git a/main/rrdtool/libm-underlinking.patch b/main/rrdtool/libm-underlinking.patch
deleted file mode 100644
index 7de545f3957..00000000000
--- a/main/rrdtool/libm-underlinking.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/src/Makefile.am
-+++ b/src/Makefile.am
-@@ -128,7 +128,7 @@
-
- rrdtool_SOURCES = rrd_tool.c
- rrdtool_DEPENDENCIES = librrd.la
--rrdtool_LDADD = librrd.la
-+rrdtool_LDADD = librrd.la -lm
-
- rrdcached_SOURCES = rrd_daemon.c
- rrdcached_DEPENDENCIES = librrd.la librrdupd.la
diff --git a/main/rrdtool/no-posix-fallocate.patch b/main/rrdtool/no-posix-fallocate.patch
deleted file mode 100644
index 975aaa3a6f8..00000000000
--- a/main/rrdtool/no-posix-fallocate.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/configure.ac
-+++ b/configure.ac
-@@ -316,9 +316,6 @@
- #include <fcntl.h>])
- AC_CHECK_FUNCS(posix_fadvise)
-
--dnl can we use posix_fallocate
--AC_CHECK_FUNCS(posix_fallocate)
--
- CONFIGURE_PART(Libintl Processing)
-
- AM_GNU_GETTEXT_VERSION(0.17)
diff --git a/main/rsnapshot/APKBUILD b/main/rsnapshot/APKBUILD
index c051690e6f2..735a44625e1 100644
--- a/main/rsnapshot/APKBUILD
+++ b/main/rsnapshot/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=rsnapshot
-pkgver=1.4.4
+pkgver=1.4.5
pkgrel=0
pkgdesc="Local and remote filesystem snapshot utility"
url="https://rsnapshot.org/"
@@ -34,5 +34,5 @@ package() {
}
sha512sums="
-da45039457b9f3feb53b823f6ee36e8f7447d0689281d1bc857c6fedd450db2fdf8a98e66ba6e135a86654666888f7744ad9ff0aabbd605e1fc09dd5f1f7b838 rsnapshot-1.4.4.tar.gz
+6caa2d7c425d084d0bb393421a0ed1ba78fdd27f7d8cec4810bc4a9f88b3232aeff7e4682282178f7702e2adc7abc8e9201249bf2bcaa28faa16e30aaa62e18a rsnapshot-1.4.5.tar.gz
"
diff --git a/main/rssh/APKBUILD b/main/rssh/APKBUILD
index 7e1d00f4d81..856a207d56b 100644
--- a/main/rssh/APKBUILD
+++ b/main/rssh/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=rssh
pkgver=2.3.4
-pkgrel=2
+pkgrel=4
pkgdesc="Restricted shell for use with OpenSSH, allowing only scp, sftp, and/or rsync"
url="http://www.pizzashack.org/rssh/"
arch="all"
@@ -17,7 +17,7 @@ source="https://prdownloads.sourceforge.net/rssh/rssh-$pkgver.tar.gz
handle-rsync-v3-e-option.patch
verify-scp-options.patch
check-command-line-after-chroot.patch"
-options="suid"
+options="suid !check"
# secfixes:
# 2.3.4-r2:
diff --git a/main/rsync/APKBUILD b/main/rsync/APKBUILD
index 0d2d79b7994..a4adb4ef543 100644
--- a/main/rsync/APKBUILD
+++ b/main/rsync/APKBUILD
@@ -1,13 +1,22 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=rsync
-pkgver=3.2.4
+pkgver=3.3.0
pkgrel=0
pkgdesc="A file transfer program to keep remote files in sync"
url="https://rsync.samba.org/"
arch="all"
license="GPL-3.0-or-later"
-makedepends="perl acl-dev attr-dev popt-dev zlib-dev zstd-dev lz4-dev"
-subpackages="$pkgname-doc $pkgname-openrc rrsync"
+makedepends="
+ acl-dev
+ attr-dev
+ lz4-dev
+ perl
+ popt-dev
+ xxhash-dev
+ zlib-dev
+ zstd-dev
+ "
+subpackages="$pkgname-doc $pkgname-openrc rrsync::noarch"
source="https://download.samba.org/pub/rsync/rsync-$pkgver.tar.gz
rsyncd.initd
rsyncd.confd
@@ -16,8 +25,8 @@ source="https://download.samba.org/pub/rsync/rsync-$pkgver.tar.gz
"
# secfixes:
-# 3.2.4-r0:
-# - CVE-2020-14387
+# 3.2.4-r2:
+# - CVE-2022-29154
# 3.1.2-r7:
# - CVE-2017-16548
# - CVE-2017-17433
@@ -28,6 +37,8 @@ source="https://download.samba.org/pub/rsync/rsync-$pkgver.tar.gz
# delete the itemize test because it is flawed and depends on filesystem-specific behavior
prepare() {
default_prepare
+ update_config_sub
+
rm testsuite/itemize.test
# Prevent the aports version being used
@@ -35,9 +46,7 @@ prepare() {
}
build() {
- # Force IPv6 enabled, upstream bug https://bugzilla.samba.org/show_bug.cgi?id=10715
- CFLAGS="$CFLAGS -DINET6" \
-
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -47,14 +56,11 @@ build() {
--localstatedir=/var \
--enable-acl-support \
--enable-xattr-support \
+ --enable-xxhash \
--without-included-popt \
--without-included-zlib \
- --disable-xxhash \
--disable-openssl
- # xxhash and openssl support were implicitly disabled before via automagic
- # since nobody complained that those features were missing starting with 3.2.x
- # they cause errors unless they are expilcitly disabled. If you need those
- # features then open a MR
+ # openssl is disabled since xxh checksums are faster anyway
make
}
@@ -69,19 +75,19 @@ package() {
install -Dm644 "$srcdir"/rsyncd.conf "$pkgdir"/etc/rsyncd.conf
install -Dm644 "$srcdir"/rsyncd.confd "$pkgdir"/etc/conf.d/rsyncd
install -Dm644 "$srcdir"/rsyncd.logrotate "$pkgdir"/etc/logrotate.d/rsyncd
+ install -Dm755 support/rrsync -t "$pkgdir"/usr/bin/
+ install -Dm644 rrsync.1 -t "$pkgdir"/usr/share/man/man1/
}
rrsync() {
pkgdesc="Restricted rsync, restricts rsync to a subdir declared in .ssh/authorized_keys"
- depends="rsync perl"
- arch="noarch"
+ depends="rsync python3"
- cd "$builddir"
- install -D -m 755 ./support/rrsync "$subpkgdir"/usr/bin/rrsync
+ amove usr/bin/rrsync
}
sha512sums="
-96318e2754fbddf84d16df671c721e577766969dfa415925c4dc1be2e4e60a51246623747a8aec0c6e9c0824e6aa7335235ccd07f3d6fd901f8cf28e2d6e91b6 rsync-3.2.4.tar.gz
+df5c53bc2f2b0e7e30f475903e5e4296dc2fbcf08e9ea6c3c61462d0e52b067c27e82deeb4be79102c86e9aa55a825182e126f22df44dabf5b7328acb2a01d10 rsync-3.3.0.tar.gz
b9bf1aa02f96e4294642ead5751bd529ca1267c08e83a16342fba5736c3a8ec89568feb11fb737e974cb1bee7e00e7a8898d25844892366c6167b9ea8d1e647c rsyncd.initd
d91337cfb57e6e3b2a8ba1e24f7d851dd927bfc327da2212b9eb0acda0e1ca2f24987f6dcc4903eccc3bf170e0f115172b3cfa5a172700495296f26302c834d7 rsyncd.confd
3db8a2b364fc89132af6143af90513deb6be3a78c8180d47c969e33cb5edde9db88aad27758a6911f93781e3c9846aeadc80fffc761c355d6a28358853156b62 rsyncd.conf
diff --git a/main/rsyslog/APKBUILD b/main/rsyslog/APKBUILD
index 24ab5db3c4c..ff38f87fbfa 100644
--- a/main/rsyslog/APKBUILD
+++ b/main/rsyslog/APKBUILD
@@ -5,16 +5,17 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Cameron Banta <cbanta@gmail.com>
pkgname=rsyslog
-pkgver=8.2206.0
+pkgver=8.2404.0
pkgrel=0
pkgdesc="Enhanced multi-threaded syslogd with database support and more"
url="https://www.rsyslog.com/"
arch="all !s390x" # limited by czmq
-license="Apache-2.0 GPL-3.0-or-later LGPL-3.0-or-later"
+license="Apache-2.0 AND GPL-3.0-or-later AND LGPL-3.0-or-later"
options="!check"
makedepends="
autoconf
automake
+ bsd-compat-headers
byacc
curl-dev
czmq-dev
@@ -47,8 +48,6 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/rsyslog/rsyslog/archive/v$pk
$pkgname.initd
$pkgname.logrotate
$pkgname.conf
- musl-fix.patch
- queue.patch
"
# <subpackage>[:<module>...]
@@ -70,6 +69,7 @@ _plugins="
mmrm1stspace
mmsequence
mmsnmptrapd
+ mmtaghostname
mmutf8fix
mysql:ommysql
pgsql:ompgsql
@@ -105,6 +105,7 @@ prepare() {
}
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -136,6 +137,7 @@ build() {
--enable-mmdblookup \
--enable-mmfields \
--enable-mmpstrucdata \
+ --enable-mmtaghostname \
--enable-relp \
--enable-imfile \
--enable-imptcp \
@@ -170,7 +172,7 @@ package() {
}
_plugin() {
- local name="${subpkgname#$pkgname-}"
+ local name="${subpkgname#"$pkgname"-}"
pkgdesc="$name support for $pkgname"
depends="$pkgname=$pkgver-r$pkgrel"
@@ -190,10 +192,8 @@ _plugin() {
}
sha512sums="
-dd9ae692bb72fb96424e2dc8dc4c4e1f2d105e30cabae29ab0b9fa48cf1d1a2ed14fa00a8e8266c7dbe620fa6d0861353585cca7c00c48e2c299191a13719481 rsyslog-8.2206.0.tar.gz
+e7a615878fad6add84acd5029e0c6df0ad1669b8944771ddbf17ea968e073227fda005794e8d83ecd0c7d262ccdf0830c81dcf3ffff54ced6adbb5431ba96eef rsyslog-8.2404.0.tar.gz
bcd63c8df2ac63b80f3cb51ba7f544988df6cd875f4e81020e762dff30d7537f21b72c95a4b1c08baf15f4ed5f03defbf3f061673aabada5841f45ab9f579374 rsyslog.initd
-6bf69f14746d0523a4e9189593bc62e14a6e05c7e17922e4398df4b951abdde165e826290f6b6cdc8149199288f555d098178d93d2fae202463ebc523626161b rsyslog.logrotate
+acf0679e0aa7d8d28a2426d6744d3d6d857969b4a5307c4934fe1639868497769194b0fed59b85111bda3e2af5e69d99c130245cb149fed34cadba78d93def98 rsyslog.logrotate
451b861dc82d7a2810e6c9ff8f80b2c5149cc6b440baf5901149e7b6524a1179826787a924c84403c2e9d8fa7d4df2c909e7f0877ac0cd4e6faf2e37cba7c6c1 rsyslog.conf
-15745c8cdb730ae548d038ca4c04f9f48ef55c6e04949a8e86df356877563c0fcb9660445e47d3f9530925092d6dd80b2b2fc3f64a114ee85103d137327524cb musl-fix.patch
-ef2e000b1c42cb5beffb26393952c2a692791e78972ee4b6f187ca53e338122b2004cc5216381c042195f12cc58f37f186a04e12a65b5bdfdcdf76b73393efb7 queue.patch
"
diff --git a/main/rsyslog/musl-fix.patch b/main/rsyslog/musl-fix.patch
deleted file mode 100644
index 160a74c7d22..00000000000
--- a/main/rsyslog/musl-fix.patch
+++ /dev/null
@@ -1,13 +0,0 @@
---- a/runtime/rsyslog.h
-+++ b/runtime/rsyslog.h
-@@ -786,3 +786,10 @@
- #endif
-
- #endif /* multi-include protection */
-+
-+/* musl patches for alpine */
-+#define ACCESSPERMS (S_IRWXU|S_IRWXG|S_IRWXO)
-+#define GLOB_BRACE 0
-+#ifndef WAIT_ANY
-+#define WAIT_ANY (-1)
-+#endif
diff --git a/main/rsyslog/queue.patch b/main/rsyslog/queue.patch
deleted file mode 100644
index d35fc96fdf4..00000000000
--- a/main/rsyslog/queue.patch
+++ /dev/null
@@ -1,614 +0,0 @@
-From 444b2739a06c3995a47d37a193f579fdf2d1086a Mon Sep 17 00:00:00 2001
-From: Leonardo Arena <rnalrd@alpinelinux.org>
-Date: Tue, 2 May 2017 07:25:35 +0000
-Subject: [PATCH] queue
-
----
- plugins/imptcp/imptcp.c | 2 +-
- plugins/imptcp/queue.h | 574 ++++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 575 insertions(+), 1 deletion(-)
- create mode 100644 plugins/imptcp/queue.h
-
-diff --git a/plugins/imptcp/imptcp.c b/plugins/imptcp/imptcp.c
-index f50d513..8a6874e 100644
---- a/plugins/imptcp/imptcp.c
-+++ b/plugins/imptcp/imptcp.c
-@@ -50,7 +50,6 @@
- #include <sys/socket.h>
- #include <sys/un.h>
- #include <sys/epoll.h>
--#include <sys/queue.h>
- #include <netinet/tcp.h>
- #include <stdint.h>
- #include <zlib.h>
-@@ -59,6 +58,7 @@
- #if HAVE_FCNTL_H
- #include <fcntl.h>
- #endif
-+#include "queue.h"
- #include "rsyslog.h"
- #include "cfsysline.h"
- #include "prop.h"
-diff --git a/plugins/imptcp/queue.h b/plugins/imptcp/queue.h
-new file mode 100644
-index 0000000..daf4553
---- /dev/null
-+++ b/plugins/imptcp/queue.h
-@@ -0,0 +1,574 @@
-+/*
-+ * Copyright (c) 1991, 1993
-+ * The Regents of the University of California. All rights reserved.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ * 1. Redistributions of source code must retain the above copyright
-+ * notice, this list of conditions and the following disclaimer.
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ * notice, this list of conditions and the following disclaimer in the
-+ * documentation and/or other materials provided with the distribution.
-+ * 3. Neither the name of the University nor the names of its contributors
-+ * may be used to endorse or promote products derived from this software
-+ * without specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
-+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
-+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-+ * SUCH DAMAGE.
-+ *
-+ * @(#)queue.h 8.5 (Berkeley) 8/20/94
-+ */
-+
-+#ifndef _SYS_QUEUE_H_
-+#define _SYS_QUEUE_H_
-+
-+/*
-+ * This file defines five types of data structures: singly-linked lists,
-+ * lists, simple queues, tail queues, and circular queues.
-+ *
-+ * A singly-linked list is headed by a single forward pointer. The
-+ * elements are singly linked for minimum space and pointer manipulation
-+ * overhead at the expense of O(n) removal for arbitrary elements. New
-+ * elements can be added to the list after an existing element or at the
-+ * head of the list. Elements being removed from the head of the list
-+ * should use the explicit macro for this purpose for optimum
-+ * efficiency. A singly-linked list may only be traversed in the forward
-+ * direction. Singly-linked lists are ideal for applications with large
-+ * datasets and few or no removals or for implementing a LIFO queue.
-+ *
-+ * A list is headed by a single forward pointer (or an array of forward
-+ * pointers for a hash table header). The elements are doubly linked
-+ * so that an arbitrary element can be removed without a need to
-+ * traverse the list. New elements can be added to the list before
-+ * or after an existing element or at the head of the list. A list
-+ * may only be traversed in the forward direction.
-+ *
-+ * A simple queue is headed by a pair of pointers, one the head of the
-+ * list and the other to the tail of the list. The elements are singly
-+ * linked to save space, so elements can only be removed from the
-+ * head of the list. New elements can be added to the list after
-+ * an existing element, at the head of the list, or at the end of the
-+ * list. A simple queue may only be traversed in the forward direction.
-+ *
-+ * A tail queue is headed by a pair of pointers, one to the head of the
-+ * list and the other to the tail of the list. The elements are doubly
-+ * linked so that an arbitrary element can be removed without a need to
-+ * traverse the list. New elements can be added to the list before or
-+ * after an existing element, at the head of the list, or at the end of
-+ * the list. A tail queue may be traversed in either direction.
-+ *
-+ * A circle queue is headed by a pair of pointers, one to the head of the
-+ * list and the other to the tail of the list. The elements are doubly
-+ * linked so that an arbitrary element can be removed without a need to
-+ * traverse the list. New elements can be added to the list before or after
-+ * an existing element, at the head of the list, or at the end of the list.
-+ * A circle queue may be traversed in either direction, but has a more
-+ * complex end of list detection.
-+ *
-+ * For details on the use of these macros, see the queue(3) manual page.
-+ */
-+
-+/*
-+ * List definitions.
-+ */
-+#define LIST_HEAD(name, type) \
-+struct name { \
-+ struct type *lh_first; /* first element */ \
-+}
-+
-+#define LIST_HEAD_INITIALIZER(head) \
-+ { NULL }
-+
-+#define LIST_ENTRY(type) \
-+struct { \
-+ struct type *le_next; /* next element */ \
-+ struct type **le_prev; /* address of previous next element */ \
-+}
-+
-+/*
-+ * List functions.
-+ */
-+#define LIST_INIT(head) do { \
-+ (head)->lh_first = NULL; \
-+} while (/*CONSTCOND*/0)
-+
-+#define LIST_INSERT_AFTER(listelm, elm, field) do { \
-+ if (((elm)->field.le_next = (listelm)->field.le_next) != NULL) \
-+ (listelm)->field.le_next->field.le_prev = \
-+ &(elm)->field.le_next; \
-+ (listelm)->field.le_next = (elm); \
-+ (elm)->field.le_prev = &(listelm)->field.le_next; \
-+} while (/*CONSTCOND*/0)
-+
-+#define LIST_INSERT_BEFORE(listelm, elm, field) do { \
-+ (elm)->field.le_prev = (listelm)->field.le_prev; \
-+ (elm)->field.le_next = (listelm); \
-+ *(listelm)->field.le_prev = (elm); \
-+ (listelm)->field.le_prev = &(elm)->field.le_next; \
-+} while (/*CONSTCOND*/0)
-+
-+#define LIST_INSERT_HEAD(head, elm, field) do { \
-+ if (((elm)->field.le_next = (head)->lh_first) != NULL) \
-+ (head)->lh_first->field.le_prev = &(elm)->field.le_next;\
-+ (head)->lh_first = (elm); \
-+ (elm)->field.le_prev = &(head)->lh_first; \
-+} while (/*CONSTCOND*/0)
-+
-+#define LIST_REMOVE(elm, field) do { \
-+ if ((elm)->field.le_next != NULL) \
-+ (elm)->field.le_next->field.le_prev = \
-+ (elm)->field.le_prev; \
-+ *(elm)->field.le_prev = (elm)->field.le_next; \
-+} while (/*CONSTCOND*/0)
-+
-+#define LIST_FOREACH(var, head, field) \
-+ for ((var) = ((head)->lh_first); \
-+ (var); \
-+ (var) = ((var)->field.le_next))
-+
-+/*
-+ * List access methods.
-+ */
-+#define LIST_EMPTY(head) ((head)->lh_first == NULL)
-+#define LIST_FIRST(head) ((head)->lh_first)
-+#define LIST_NEXT(elm, field) ((elm)->field.le_next)
-+
-+
-+/*
-+ * Singly-linked List definitions.
-+ */
-+#define SLIST_HEAD(name, type) \
-+struct name { \
-+ struct type *slh_first; /* first element */ \
-+}
-+
-+#define SLIST_HEAD_INITIALIZER(head) \
-+ { NULL }
-+
-+#define SLIST_ENTRY(type) \
-+struct { \
-+ struct type *sle_next; /* next element */ \
-+}
-+
-+/*
-+ * Singly-linked List functions.
-+ */
-+#define SLIST_INIT(head) do { \
-+ (head)->slh_first = NULL; \
-+} while (/*CONSTCOND*/0)
-+
-+#define SLIST_INSERT_AFTER(slistelm, elm, field) do { \
-+ (elm)->field.sle_next = (slistelm)->field.sle_next; \
-+ (slistelm)->field.sle_next = (elm); \
-+} while (/*CONSTCOND*/0)
-+
-+#define SLIST_INSERT_HEAD(head, elm, field) do { \
-+ (elm)->field.sle_next = (head)->slh_first; \
-+ (head)->slh_first = (elm); \
-+} while (/*CONSTCOND*/0)
-+
-+#define SLIST_REMOVE_HEAD(head, field) do { \
-+ (head)->slh_first = (head)->slh_first->field.sle_next; \
-+} while (/*CONSTCOND*/0)
-+
-+#define SLIST_REMOVE(head, elm, type, field) do { \
-+ if ((head)->slh_first == (elm)) { \
-+ SLIST_REMOVE_HEAD((head), field); \
-+ } \
-+ else { \
-+ struct type *curelm = (head)->slh_first; \
-+ while(curelm->field.sle_next != (elm)) \
-+ curelm = curelm->field.sle_next; \
-+ curelm->field.sle_next = \
-+ curelm->field.sle_next->field.sle_next; \
-+ } \
-+} while (/*CONSTCOND*/0)
-+
-+#define SLIST_FOREACH(var, head, field) \
-+ for((var) = (head)->slh_first; (var); (var) = (var)->field.sle_next)
-+
-+/*
-+ * Singly-linked List access methods.
-+ */
-+#define SLIST_EMPTY(head) ((head)->slh_first == NULL)
-+#define SLIST_FIRST(head) ((head)->slh_first)
-+#define SLIST_NEXT(elm, field) ((elm)->field.sle_next)
-+
-+
-+/*
-+ * Singly-linked Tail queue declarations.
-+ */
-+#define STAILQ_HEAD(name, type) \
-+struct name { \
-+ struct type *stqh_first; /* first element */ \
-+ struct type **stqh_last; /* addr of last next element */ \
-+}
-+
-+#define STAILQ_HEAD_INITIALIZER(head) \
-+ { NULL, &(head).stqh_first }
-+
-+#define STAILQ_ENTRY(type) \
-+struct { \
-+ struct type *stqe_next; /* next element */ \
-+}
-+
-+/*
-+ * Singly-linked Tail queue functions.
-+ */
-+#define STAILQ_INIT(head) do { \
-+ (head)->stqh_first = NULL; \
-+ (head)->stqh_last = &(head)->stqh_first; \
-+} while (/*CONSTCOND*/0)
-+
-+#define STAILQ_INSERT_HEAD(head, elm, field) do { \
-+ if (((elm)->field.stqe_next = (head)->stqh_first) == NULL) \
-+ (head)->stqh_last = &(elm)->field.stqe_next; \
-+ (head)->stqh_first = (elm); \
-+} while (/*CONSTCOND*/0)
-+
-+#define STAILQ_INSERT_TAIL(head, elm, field) do { \
-+ (elm)->field.stqe_next = NULL; \
-+ *(head)->stqh_last = (elm); \
-+ (head)->stqh_last = &(elm)->field.stqe_next; \
-+} while (/*CONSTCOND*/0)
-+
-+#define STAILQ_INSERT_AFTER(head, listelm, elm, field) do { \
-+ if (((elm)->field.stqe_next = (listelm)->field.stqe_next) == NULL)\
-+ (head)->stqh_last = &(elm)->field.stqe_next; \
-+ (listelm)->field.stqe_next = (elm); \
-+} while (/*CONSTCOND*/0)
-+
-+#define STAILQ_REMOVE_HEAD(head, field) do { \
-+ if (((head)->stqh_first = (head)->stqh_first->field.stqe_next) == NULL) \
-+ (head)->stqh_last = &(head)->stqh_first; \
-+} while (/*CONSTCOND*/0)
-+
-+#define STAILQ_REMOVE(head, elm, type, field) do { \
-+ if ((head)->stqh_first == (elm)) { \
-+ STAILQ_REMOVE_HEAD((head), field); \
-+ } else { \
-+ struct type *curelm = (head)->stqh_first; \
-+ while (curelm->field.stqe_next != (elm)) \
-+ curelm = curelm->field.stqe_next; \
-+ if ((curelm->field.stqe_next = \
-+ curelm->field.stqe_next->field.stqe_next) == NULL) \
-+ (head)->stqh_last = &(curelm)->field.stqe_next; \
-+ } \
-+} while (/*CONSTCOND*/0)
-+
-+#define STAILQ_FOREACH(var, head, field) \
-+ for ((var) = ((head)->stqh_first); \
-+ (var); \
-+ (var) = ((var)->field.stqe_next))
-+
-+#define STAILQ_CONCAT(head1, head2) do { \
-+ if (!STAILQ_EMPTY((head2))) { \
-+ *(head1)->stqh_last = (head2)->stqh_first; \
-+ (head1)->stqh_last = (head2)->stqh_last; \
-+ STAILQ_INIT((head2)); \
-+ } \
-+} while (/*CONSTCOND*/0)
-+
-+/*
-+ * Singly-linked Tail queue access methods.
-+ */
-+#define STAILQ_EMPTY(head) ((head)->stqh_first == NULL)
-+#define STAILQ_FIRST(head) ((head)->stqh_first)
-+#define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next)
-+
-+
-+/*
-+ * Simple queue definitions.
-+ */
-+#define SIMPLEQ_HEAD(name, type) \
-+struct name { \
-+ struct type *sqh_first; /* first element */ \
-+ struct type **sqh_last; /* addr of last next element */ \
-+}
-+
-+#define SIMPLEQ_HEAD_INITIALIZER(head) \
-+ { NULL, &(head).sqh_first }
-+
-+#define SIMPLEQ_ENTRY(type) \
-+struct { \
-+ struct type *sqe_next; /* next element */ \
-+}
-+
-+/*
-+ * Simple queue functions.
-+ */
-+#define SIMPLEQ_INIT(head) do { \
-+ (head)->sqh_first = NULL; \
-+ (head)->sqh_last = &(head)->sqh_first; \
-+} while (/*CONSTCOND*/0)
-+
-+#define SIMPLEQ_INSERT_HEAD(head, elm, field) do { \
-+ if (((elm)->field.sqe_next = (head)->sqh_first) == NULL) \
-+ (head)->sqh_last = &(elm)->field.sqe_next; \
-+ (head)->sqh_first = (elm); \
-+} while (/*CONSTCOND*/0)
-+
-+#define SIMPLEQ_INSERT_TAIL(head, elm, field) do { \
-+ (elm)->field.sqe_next = NULL; \
-+ *(head)->sqh_last = (elm); \
-+ (head)->sqh_last = &(elm)->field.sqe_next; \
-+} while (/*CONSTCOND*/0)
-+
-+#define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do { \
-+ if (((elm)->field.sqe_next = (listelm)->field.sqe_next) == NULL)\
-+ (head)->sqh_last = &(elm)->field.sqe_next; \
-+ (listelm)->field.sqe_next = (elm); \
-+} while (/*CONSTCOND*/0)
-+
-+#define SIMPLEQ_REMOVE_HEAD(head, field) do { \
-+ if (((head)->sqh_first = (head)->sqh_first->field.sqe_next) == NULL) \
-+ (head)->sqh_last = &(head)->sqh_first; \
-+} while (/*CONSTCOND*/0)
-+
-+#define SIMPLEQ_REMOVE(head, elm, type, field) do { \
-+ if ((head)->sqh_first == (elm)) { \
-+ SIMPLEQ_REMOVE_HEAD((head), field); \
-+ } else { \
-+ struct type *curelm = (head)->sqh_first; \
-+ while (curelm->field.sqe_next != (elm)) \
-+ curelm = curelm->field.sqe_next; \
-+ if ((curelm->field.sqe_next = \
-+ curelm->field.sqe_next->field.sqe_next) == NULL) \
-+ (head)->sqh_last = &(curelm)->field.sqe_next; \
-+ } \
-+} while (/*CONSTCOND*/0)
-+
-+#define SIMPLEQ_FOREACH(var, head, field) \
-+ for ((var) = ((head)->sqh_first); \
-+ (var); \
-+ (var) = ((var)->field.sqe_next))
-+
-+/*
-+ * Simple queue access methods.
-+ */
-+#define SIMPLEQ_EMPTY(head) ((head)->sqh_first == NULL)
-+#define SIMPLEQ_FIRST(head) ((head)->sqh_first)
-+#define SIMPLEQ_NEXT(elm, field) ((elm)->field.sqe_next)
-+
-+
-+/*
-+ * Tail queue definitions.
-+ */
-+#define _TAILQ_HEAD(name, type, qual) \
-+struct name { \
-+ qual type *tqh_first; /* first element */ \
-+ qual type *qual *tqh_last; /* addr of last next element */ \
-+}
-+#define TAILQ_HEAD(name, type) _TAILQ_HEAD(name, struct type,)
-+
-+#define TAILQ_HEAD_INITIALIZER(head) \
-+ { NULL, &(head).tqh_first }
-+
-+#define _TAILQ_ENTRY(type, qual) \
-+struct { \
-+ qual type *tqe_next; /* next element */ \
-+ qual type *qual *tqe_prev; /* address of previous next element */\
-+}
-+#define TAILQ_ENTRY(type) _TAILQ_ENTRY(struct type,)
-+
-+/*
-+ * Tail queue functions.
-+ */
-+#define TAILQ_INIT(head) do { \
-+ (head)->tqh_first = NULL; \
-+ (head)->tqh_last = &(head)->tqh_first; \
-+} while (/*CONSTCOND*/0)
-+
-+#define TAILQ_INSERT_HEAD(head, elm, field) do { \
-+ if (((elm)->field.tqe_next = (head)->tqh_first) != NULL) \
-+ (head)->tqh_first->field.tqe_prev = \
-+ &(elm)->field.tqe_next; \
-+ else \
-+ (head)->tqh_last = &(elm)->field.tqe_next; \
-+ (head)->tqh_first = (elm); \
-+ (elm)->field.tqe_prev = &(head)->tqh_first; \
-+} while (/*CONSTCOND*/0)
-+
-+#define TAILQ_INSERT_TAIL(head, elm, field) do { \
-+ (elm)->field.tqe_next = NULL; \
-+ (elm)->field.tqe_prev = (head)->tqh_last; \
-+ *(head)->tqh_last = (elm); \
-+ (head)->tqh_last = &(elm)->field.tqe_next; \
-+} while (/*CONSTCOND*/0)
-+
-+#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \
-+ if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)\
-+ (elm)->field.tqe_next->field.tqe_prev = \
-+ &(elm)->field.tqe_next; \
-+ else \
-+ (head)->tqh_last = &(elm)->field.tqe_next; \
-+ (listelm)->field.tqe_next = (elm); \
-+ (elm)->field.tqe_prev = &(listelm)->field.tqe_next; \
-+} while (/*CONSTCOND*/0)
-+
-+#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \
-+ (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \
-+ (elm)->field.tqe_next = (listelm); \
-+ *(listelm)->field.tqe_prev = (elm); \
-+ (listelm)->field.tqe_prev = &(elm)->field.tqe_next; \
-+} while (/*CONSTCOND*/0)
-+
-+#define TAILQ_REMOVE(head, elm, field) do { \
-+ if (((elm)->field.tqe_next) != NULL) \
-+ (elm)->field.tqe_next->field.tqe_prev = \
-+ (elm)->field.tqe_prev; \
-+ else \
-+ (head)->tqh_last = (elm)->field.tqe_prev; \
-+ *(elm)->field.tqe_prev = (elm)->field.tqe_next; \
-+} while (/*CONSTCOND*/0)
-+
-+#define TAILQ_FOREACH(var, head, field) \
-+ for ((var) = ((head)->tqh_first); \
-+ (var); \
-+ (var) = ((var)->field.tqe_next))
-+
-+#define TAILQ_FOREACH_REVERSE(var, head, headname, field) \
-+ for ((var) = (*(((struct headname *)((head)->tqh_last))->tqh_last)); \
-+ (var); \
-+ (var) = (*(((struct headname *)((var)->field.tqe_prev))->tqh_last)))
-+
-+#define TAILQ_CONCAT(head1, head2, field) do { \
-+ if (!TAILQ_EMPTY(head2)) { \
-+ *(head1)->tqh_last = (head2)->tqh_first; \
-+ (head2)->tqh_first->field.tqe_prev = (head1)->tqh_last; \
-+ (head1)->tqh_last = (head2)->tqh_last; \
-+ TAILQ_INIT((head2)); \
-+ } \
-+} while (/*CONSTCOND*/0)
-+
-+/*
-+ * Tail queue access methods.
-+ */
-+#define TAILQ_EMPTY(head) ((head)->tqh_first == NULL)
-+#define TAILQ_FIRST(head) ((head)->tqh_first)
-+#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)
-+
-+#define TAILQ_LAST(head, headname) \
-+ (*(((struct headname *)((head)->tqh_last))->tqh_last))
-+#define TAILQ_PREV(elm, headname, field) \
-+ (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
-+
-+
-+/*
-+ * Circular queue definitions.
-+ */
-+#define CIRCLEQ_HEAD(name, type) \
-+struct name { \
-+ struct type *cqh_first; /* first element */ \
-+ struct type *cqh_last; /* last element */ \
-+}
-+
-+#define CIRCLEQ_HEAD_INITIALIZER(head) \
-+ { (void *)&head, (void *)&head }
-+
-+#define CIRCLEQ_ENTRY(type) \
-+struct { \
-+ struct type *cqe_next; /* next element */ \
-+ struct type *cqe_prev; /* previous element */ \
-+}
-+
-+/*
-+ * Circular queue functions.
-+ */
-+#define CIRCLEQ_INIT(head) do { \
-+ (head)->cqh_first = (void *)(head); \
-+ (head)->cqh_last = (void *)(head); \
-+} while (/*CONSTCOND*/0)
-+
-+#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \
-+ (elm)->field.cqe_next = (listelm)->field.cqe_next; \
-+ (elm)->field.cqe_prev = (listelm); \
-+ if ((listelm)->field.cqe_next == (void *)(head)) \
-+ (head)->cqh_last = (elm); \
-+ else \
-+ (listelm)->field.cqe_next->field.cqe_prev = (elm); \
-+ (listelm)->field.cqe_next = (elm); \
-+} while (/*CONSTCOND*/0)
-+
-+#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \
-+ (elm)->field.cqe_next = (listelm); \
-+ (elm)->field.cqe_prev = (listelm)->field.cqe_prev; \
-+ if ((listelm)->field.cqe_prev == (void *)(head)) \
-+ (head)->cqh_first = (elm); \
-+ else \
-+ (listelm)->field.cqe_prev->field.cqe_next = (elm); \
-+ (listelm)->field.cqe_prev = (elm); \
-+} while (/*CONSTCOND*/0)
-+
-+#define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \
-+ (elm)->field.cqe_next = (head)->cqh_first; \
-+ (elm)->field.cqe_prev = (void *)(head); \
-+ if ((head)->cqh_last == (void *)(head)) \
-+ (head)->cqh_last = (elm); \
-+ else \
-+ (head)->cqh_first->field.cqe_prev = (elm); \
-+ (head)->cqh_first = (elm); \
-+} while (/*CONSTCOND*/0)
-+
-+#define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \
-+ (elm)->field.cqe_next = (void *)(head); \
-+ (elm)->field.cqe_prev = (head)->cqh_last; \
-+ if ((head)->cqh_first == (void *)(head)) \
-+ (head)->cqh_first = (elm); \
-+ else \
-+ (head)->cqh_last->field.cqe_next = (elm); \
-+ (head)->cqh_last = (elm); \
-+} while (/*CONSTCOND*/0)
-+
-+#define CIRCLEQ_REMOVE(head, elm, field) do { \
-+ if ((elm)->field.cqe_next == (void *)(head)) \
-+ (head)->cqh_last = (elm)->field.cqe_prev; \
-+ else \
-+ (elm)->field.cqe_next->field.cqe_prev = \
-+ (elm)->field.cqe_prev; \
-+ if ((elm)->field.cqe_prev == (void *)(head)) \
-+ (head)->cqh_first = (elm)->field.cqe_next; \
-+ else \
-+ (elm)->field.cqe_prev->field.cqe_next = \
-+ (elm)->field.cqe_next; \
-+} while (/*CONSTCOND*/0)
-+
-+#define CIRCLEQ_FOREACH(var, head, field) \
-+ for ((var) = ((head)->cqh_first); \
-+ (var) != (const void *)(head); \
-+ (var) = ((var)->field.cqe_next))
-+
-+#define CIRCLEQ_FOREACH_REVERSE(var, head, field) \
-+ for ((var) = ((head)->cqh_last); \
-+ (var) != (const void *)(head); \
-+ (var) = ((var)->field.cqe_prev))
-+
-+/*
-+ * Circular queue access methods.
-+ */
-+#define CIRCLEQ_EMPTY(head) ((head)->cqh_first == (void *)(head))
-+#define CIRCLEQ_FIRST(head) ((head)->cqh_first)
-+#define CIRCLEQ_LAST(head) ((head)->cqh_last)
-+#define CIRCLEQ_NEXT(elm, field) ((elm)->field.cqe_next)
-+#define CIRCLEQ_PREV(elm, field) ((elm)->field.cqe_prev)
-+
-+#define CIRCLEQ_LOOP_NEXT(head, elm, field) \
-+ (((elm)->field.cqe_next == (void *)(head)) \
-+ ? ((head)->cqh_first) \
-+ : (elm->field.cqe_next))
-+#define CIRCLEQ_LOOP_PREV(head, elm, field) \
-+ (((elm)->field.cqe_prev == (void *)(head)) \
-+ ? ((head)->cqh_last) \
-+ : (elm->field.cqe_prev))
-+
-+#endif /* sys/queue.h */
---
-2.12.2
-
diff --git a/main/rsyslog/rsyslog.logrotate b/main/rsyslog/rsyslog.logrotate
index 8450db8e70c..86ff3d79b6b 100644
--- a/main/rsyslog/rsyslog.logrotate
+++ b/main/rsyslog/rsyslog.logrotate
@@ -6,6 +6,7 @@
{
notifempty
compress
+ missingok
sharedscripts
postrotate
/etc/init.d/rsyslog --ifstarted reload >/dev/null
diff --git a/main/rtapd/APKBUILD b/main/rtapd/APKBUILD
index 73250a5e89f..575f8d8f53f 100644
--- a/main/rtapd/APKBUILD
+++ b/main/rtapd/APKBUILD
@@ -2,20 +2,21 @@
# Maintainer: Michael Mason <ms13sp@gmail.com>
pkgname=rtapd
pkgver=1.7
-pkgrel=6
+pkgrel=10
pkgdesc="daemon for routing packets to rtnppd"
url="https://sourceforge.net/projects/rtnppd/"
arch="all"
-license="GPL"
+license="BSD-2-Clause"
depends="rtnppd"
makedepends="libpq-dev"
-subpackages="$pkgname-dbg"
+subpackages="$pkgname-dbg $pkgname-openrc"
source="https://downloads.sourceforge.net/rtnppd/rtapd-$pkgver.tar.gz
musl-strtoq.patch
Makefile.patch
$pkgname.initd
$pkgname.confd"
builddir="$srcdir"/$pkgname
+options="!check"
build() {
make
diff --git a/main/rtmpdump/APKBUILD b/main/rtmpdump/APKBUILD
index 567eeda2e0b..7b3c7d52269 100644
--- a/main/rtmpdump/APKBUILD
+++ b/main/rtmpdump/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=rtmpdump
pkgver=2.4_git20190330
-pkgrel=1
+pkgrel=4
pkgdesc="A tool to download rtmp:// and rtmpe:// streams"
url="http://rtmpdump.mplayerhq.hu/"
arch="all"
diff --git a/main/rtnppd/APKBUILD b/main/rtnppd/APKBUILD
index 2568ffe6a17..c3a3846d227 100644
--- a/main/rtnppd/APKBUILD
+++ b/main/rtnppd/APKBUILD
@@ -2,28 +2,27 @@
# Maintainer: Michael Mason <ms13sp@gmail.com>
pkgname=rtnppd
pkgver=1.7b
-pkgrel=8
+pkgrel=12
pkgdesc="A program route TNPP 3.8 (Telocator Network Paging Protocol) packets between serial and other links"
url="https://sourceforge.net/projects/rtnppd/"
arch="all"
-license="GPL"
-depends=""
+license="BSD-2-Clause"
makedepends="libpq-dev"
install="$pkgname.pre-install"
-subpackages="$pkgname-dbg"
-source="https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+subpackages="$pkgname-dbg $pkgname-openrc"
+source="https://downloads.sourceforge.net/rtnppd/rtnppd-$pkgver.tar.gz
$pkgname.initd
$pkgname.confd"
pkgusers="rtnppd"
pkggroups="rtnppd"
-builddir=$srcdir/"$pkgname"
+builddir="$srcdir/$pkgname"
+options="!check"
build() {
- cd "$builddir"
- make || return 1
+ make
}
+
package() {
- cd "$builddir"
#make DESTDIR="$pkgdir" install
install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
diff --git a/main/rtpproxy/APKBUILD b/main/rtpproxy/APKBUILD
index 03f0a696018..d685f13ceb7 100644
--- a/main/rtpproxy/APKBUILD
+++ b/main/rtpproxy/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=rtpproxy
pkgver=2.1.1
-pkgrel=0
+pkgrel=3
pkgdesc="RTP proxy"
url="https://www.rtpproxy.org/"
arch="all"
-license="BSD-2-CLause"
+license="BSD-2-Clause"
makedepends="libsndfile-dev"
install="$pkgname.pre-install"
subpackages="$pkgname-doc $pkgname-debug $pkgname-tools $pkgname-openrc"
@@ -14,9 +14,11 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/sippy/rtpproxy/archive/v$pkg
DEFFILEMODE.patch
musl-fix-headers.patch
define-byte-order.patch
+ format-security.patch
prevent-pthread-from-running-macro.patch
rtpproxy.confd
rtpproxy.initd"
+options="!check"
prepare() {
default_prepare
@@ -54,10 +56,13 @@ package() {
install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
}
-sha512sums="f8e520117671e8b46e5e99845efb6eca76d0861d6edae8dcd445dffb970a572e5eeb6e88ba5c9af0603b30dcf197feecb470716c3e32cfff5120ad21420556bd rtpproxy-2.1.1.tar.gz
+sha512sums="
+f8e520117671e8b46e5e99845efb6eca76d0861d6edae8dcd445dffb970a572e5eeb6e88ba5c9af0603b30dcf197feecb470716c3e32cfff5120ad21420556bd rtpproxy-2.1.1.tar.gz
9191c99c98e7576381f6da3fce44c8470b8cad150e8c23c22332caef5b7db81561694390934548cf855b45be895517d370d66cbec39565285f66e0e04c66ee1e DEFFILEMODE.patch
bd05f24bfa66cd9491135efe341359cc4b16b80fd9c45fbfc880c7a82ba53ad5f2317dd6bfbaecfd0dd42ba0d54a55041403ba6409b8deff568fcb095892956d musl-fix-headers.patch
8ab21c20ee87c0d9ef9a113b436eaecd34d93c596d761b2f4b8d746c34946acb41421ab24be6446dd2ad2c0c3e1cd894637d945e945a90e1af1eda091d91306f define-byte-order.patch
+6f51719aab8ddbb2870cff110e588a02aa19675a4e52113fc91f4bc271d38ac3d01e6186366aa0039e46d66e90308cd40bb4de4ba0d8dda5984b0551ff07abdf format-security.patch
ba54855fd147c8f166939b37a18c0576c55481c762c3f5b9e0ffa45e00eedeeaabb1d3fd4e45fe8f59f43064ecd852d87f83bcc8f746923219e9e3a795cf592e prevent-pthread-from-running-macro.patch
e2ab3705329ffd10a8a5723ac3a07a2f98547f29b7055e1616ebbd141d6beff9c81d44579af9f3486f7835a7ac7228ecfe49cf09208438ed490843c6b100a104 rtpproxy.confd
-84f05c765369aa5ef747361e57c557b2560ac734225f5aad99ba28f4178a73d2c937a316fa45f0d42cab27b1c9d033019d98ec67601f0b272b9b45c9196bf2fb rtpproxy.initd"
+84f05c765369aa5ef747361e57c557b2560ac734225f5aad99ba28f4178a73d2c937a316fa45f0d42cab27b1c9d033019d98ec67601f0b272b9b45c9196bf2fb rtpproxy.initd
+"
diff --git a/main/rtpproxy/format-security.patch b/main/rtpproxy/format-security.patch
new file mode 100644
index 00000000000..6411bec6f6d
--- /dev/null
+++ b/main/rtpproxy/format-security.patch
@@ -0,0 +1,13 @@
+diff --git a/src/rtpp_log_stand.c b/src/rtpp_log_stand.c
+index c1e4331..d02eeb4 100644
+--- a/src/rtpp_log_stand.c
++++ b/src/rtpp_log_stand.c
+@@ -273,7 +273,7 @@ _rtpp_log_write_va(struct rtpp_log_inst *rli, int level, const char *function,
+ fprintf(stderr, rli->format_se[0], rtpp_time_buff, strlvl(level),
+ call_id, function);
+ vfprintf(stderr, format, ap);
+- fprintf(stderr, rli->format_se[1]);
++ fprintf(stderr, "%s", rli->format_se[1]);
+ fflush(stderr);
+ _rtpp_log_unlock();
+ }
diff --git a/main/ruby-augeas/APKBUILD b/main/ruby-augeas/APKBUILD
index fc21a559ea4..c150c10c8b2 100644
--- a/main/ruby-augeas/APKBUILD
+++ b/main/ruby-augeas/APKBUILD
@@ -4,7 +4,7 @@
pkgname=ruby-augeas
_gemname=$pkgname
pkgver=0.5.0
-pkgrel=10
+pkgrel=13
pkgdesc="Ruby bindings for Augeas"
url="https://augeas.net/"
arch="all"
diff --git a/main/ruby-bundler/APKBUILD b/main/ruby-bundler/APKBUILD
index c01845bf83d..fe2bf42c781 100644
--- a/main/ruby-bundler/APKBUILD
+++ b/main/ruby-bundler/APKBUILD
@@ -1,14 +1,17 @@
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=ruby-bundler
_gemname=bundler
-pkgver=2.3.14
+pkgver=2.5.7
pkgrel=0
pkgdesc="Manage an application's gem dependencies"
url="https://bundler.io/"
arch="noarch"
license="MIT"
depends="ruby"
-makedepends="ruby-rake"
+makedepends="
+ ruby-rake
+ ruby-rdoc
+ "
subpackages="$pkgname-doc"
source="https://github.com/rubygems/rubygems/archive/bundler-v$pkgver.tar.gz
manpages.patch
@@ -17,7 +20,6 @@ builddir="$srcdir/rubygems-bundler-v$pkgver/bundler"
options="!check" # tests require deps not available in main repo
build() {
- rake build_metadata
gem build $_gemname.gemspec
}
@@ -46,6 +48,6 @@ package() {
}
sha512sums="
-f78818a8d36df758451c1fd7d421852992b0a7ff66227fa9489069b84edee1efa24ffab29291240fb5b8fb0a3f5f5f136ce04193b8fe068152402a5316b8c0c0 bundler-v2.3.14.tar.gz
-5c9cc8046120360f9daa3d94da092c8db452672b8fb46b1a8188fae690e4362a090c0fcce35487399aedfec2f7f6b212c0d873a065475871b76d09313964596a manpages.patch
+2cfca0887246cd4ac7cfea7bed02be1aaad4d77bc334306aad5205b6ebb6b9372e9898b0a7f557cc11455430bc3146c98c267bc9326da29868b181309283007a bundler-v2.5.7.tar.gz
+76c008a71af25db5dda7055c98330fcb864fe7ffb4a5de34a0ad2bea403b28e0d945faf05685abf525b98c67c305068808fc596882676bbb1eb418d83377db41 manpages.patch
"
diff --git a/main/ruby-bundler/manpages.patch b/main/ruby-bundler/manpages.patch
index e02e3275a6d..338f93c179c 100644
--- a/main/ruby-bundler/manpages.patch
+++ b/main/ruby-bundler/manpages.patch
@@ -2,12 +2,17 @@ From: Jakub Jirutka <jakub@jirutka.cz>
Date: Fri, 26 Mar 2021 23:17:29 +0100
Subject: [PATCH] Fix --help when man pages are moved out
-Allow to move man pages from the gem's directory to the standard system
-location (/usr/share/man) without breaking `bundler --help`.
+* Allow to move man pages from the gem's directory to the standard
+ system location (/usr/share/man) without breaking `bundler --help`.
+* Fallback to the bundled ronn pages when the man command is available,
+ but the bundler man pages are not (i.e. ruby-bundler-doc is not
+ installed).
+* Execute man with '-c' option to print the man page to the terminal
+ instead of using pager.
--- a/lib/bundler/cli.rb
+++ b/lib/bundler/cli.rb
-@@ -123,8 +123,9 @@
+@@ -121,16 +121,18 @@
end
man_path = File.expand_path("man", __dir__)
@@ -18,10 +23,13 @@ location (/usr/share/man) without breaking `bundler --help`.
+ [File.basename(man_name, ".*"), man_name]
end]
++
if man_pages.include?(command)
-@@ -132,7 +133,7 @@
- if Bundler.which("man") && man_path !~ %r{^file:/.+!/META-INF/jruby.home/.+}
- Kernel.exec "man #{man_page}"
+ man_page = man_pages[command]
+- if Bundler.which("man") && !man_path.match?(%r{^file:/.+!/META-INF/jruby.home/.+})
+- Kernel.exec("man", man_page)
++ if Bundler.which("man") && Kernel.system("man -w #{command} >/dev/null 2>&1") && !man_path.match?(%r{^file:/.+!/META-INF/jruby.home/.+})
++ Kernel.exec "man -c #{command}"
else
- puts File.read("#{man_path}/#{File.basename(man_page)}.ronn")
+ puts File.read("#{man_path}/#{man_page}.ronn")
diff --git a/main/ruby-debug/APKBUILD b/main/ruby-debug/APKBUILD
index d097620d14a..94bea280b5c 100644
--- a/main/ruby-debug/APKBUILD
+++ b/main/ruby-debug/APKBUILD
@@ -4,7 +4,7 @@ pkgname=ruby-debug
_gemname=debug
# Keep version in sync with "Bundled gems" (https://stdgems.org) for the
# packaged Ruby version.
-pkgver=1.4.0
+pkgver=1.9.2
pkgrel=0
pkgdesc="Debugging functionality for Ruby"
url="https://github.com/ruby/debug"
@@ -23,6 +23,11 @@ source="https://github.com/ruby/debug/archive/v$pkgver/$_gemname-$pkgver.tar.gz
"
builddir="$srcdir/$_gemname-$pkgver"
+case "$CARCH" in
+ # XXX: Tests are flaky on riscv64.
+ riscv64) options="!check";;
+esac
+
prepare() {
default_prepare
sed -i '/require .bundler/d' Rakefile
@@ -74,6 +79,6 @@ doc() {
}
sha512sums="
-824bb9ed7cc2b88d5fc99d8a629687662ffc09a6521adc3ae6c8befe0984e63fa0a3ef28967373b62bcb00eb3c07f38a1ada08a404e88448f4a06ac41272acef debug-1.4.0.tar.gz
-2e5a06047772eb2896a717fa89a9bb63e2ee46ec5f5eba450905f7c09fdd95132b2bfaaf880564438af969f1a3ddcc78d00553c5681f9c7425c43ae5fc26a494 gemspec.patch
+b65e7952f0020f79481273175abc382827283f667c52a29eee4f77303368e65ff71c517f8cd278b011ae81c335281d4303ab83e6c5d5c71cab9784cee56b8c63 debug-1.9.2.tar.gz
+7d08028768c0a5024b32d1254f131204610db68f4ecbd72cca0677f499c5e426fba079e65a127453ca1d9685b094cb8feeddaa27bce72821e03a73e3f2bf5244 gemspec.patch
"
diff --git a/main/ruby-debug/gemspec.patch b/main/ruby-debug/gemspec.patch
index 05dc3e71743..2092357b245 100644
--- a/main/ruby-debug/gemspec.patch
+++ b/main/ruby-debug/gemspec.patch
@@ -1,8 +1,11 @@
--- a/debug.gemspec
+++ b/debug.gemspec
-@@ -19,4 +19 @@
+@@ -18,7 +18 @@
+- # Specify which files should be added to the gem when it is released.
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
-- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
-- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
+- spec.files = Dir.chdir(File.expand_path(__dir__)) do
+- `git ls-files -z`.split("\x0").reject do |f|
+- (f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
+- end
- end
+ spec.files = Dir["exe/*", "ext/**/*", "lib/**/*.rb"]
diff --git a/main/ruby-matrix/APKBUILD b/main/ruby-matrix/APKBUILD
index c822975bc6a..53ae4290e17 100644
--- a/main/ruby-matrix/APKBUILD
+++ b/main/ruby-matrix/APKBUILD
@@ -5,7 +5,7 @@ _gemname=matrix
# Keep version in sync with "Bundled gems" (https://stdgems.org) for the
# packaged Ruby version.
pkgver=0.4.2
-pkgrel=0
+pkgrel=2
pkgdesc="An implementation of Matrix and Vector classes"
url="https://github.com/ruby/matrix"
arch="noarch"
diff --git a/main/ruby-minitest/APKBUILD b/main/ruby-minitest/APKBUILD
index b4f9529171f..31a92fb822f 100644
--- a/main/ruby-minitest/APKBUILD
+++ b/main/ruby-minitest/APKBUILD
@@ -4,19 +4,22 @@ pkgname=ruby-minitest
_gemname=minitest
# Keep version in sync with "Bundled gems" (https://stdgems.org) for the
# packaged Ruby version.
-pkgver=5.15.0
+pkgver=5.20.0
pkgrel=0
pkgdesc="Suite of testing facilities supporting TDD, BDD, mocking, and benchmarking for Ruby"
-url="https://github.com/seattlerb/minitest"
+url="https://github.com/minitest/minitest"
arch="noarch"
license="MIT"
depends="ruby"
makedepends="ruby-rdoc"
+checkdepends="ruby-rake"
subpackages="$pkgname-doc"
-source="https://github.com/seattlerb/minitest/archive/v$pkgver/$_gemname-$pkgver.tar.gz
+source="https://github.com/minitest/minitest/archive/v$pkgver/$_gemname-$pkgver.tar.gz
https://rubygems.org/downloads/$_gemname-$pkgver.gem
+ test-remove-hoe.patch
"
builddir="$srcdir/$_gemname-$pkgver"
+options="!check" # circular dependency on ruby-rake
prepare() {
default_prepare
@@ -61,6 +64,7 @@ doc() {
}
sha512sums="
-194d074fa83a87b21f551f86d2bb682bcbac53d5a23d4e0f81fbf570427c5cdfcb27e10618bea69037f9e55bea637ed96e52a10808c586ab4020d788556bda71 minitest-5.15.0.tar.gz
-5e97a7aa616966ffc60e10cdc0ba123a7e793f10283ec3b6bf36066177036788cb950ad566fbac49e613b93f08b9846534f463017cde966b4890c3a34a2286be minitest-5.15.0.gem
+4872ad67a92c3065e821042165b2a1feafbd71ef4713e522fcc04293c8262d09d916947a73e1709560ccf2491a67a1badaf9a8626fddf1643a7a429d719b125d minitest-5.20.0.tar.gz
+906dba1226ed301ad0d7aae2fa138670101e87b11ced69e0c362e65d74fee58a5341756fed8be1f2900863e19c11adcae35ed6ebe7372bb93be0c131dae85a3c minitest-5.20.0.gem
+fdfc066799a351c1b237c2991501dc0c5e394c6066c873e8cc32941adc4ef956b5550fffae5d62a275917c82075264504dd1b457370703c2b870bfb28510f2ef test-remove-hoe.patch
"
diff --git a/main/ruby-minitest/gemspec.patch b/main/ruby-minitest/gemspec.patch
deleted file mode 100644
index a21a0c5e6e3..00000000000
--- a/main/ruby-minitest/gemspec.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/webrick.gemspec
-+++ b/webrick.gemspec
-@@ -14,12 +14,6 @@
-
- s.require_path = %w{lib}
- s.files = [
-- "Gemfile",
-- "LICENSE.txt",
-- "README.md",
-- "Rakefile",
-- "bin/console",
-- "bin/setup",
- "lib/webrick.rb",
- "lib/webrick/accesslog.rb",
- "lib/webrick/cgi.rb",
diff --git a/main/ruby-minitest/test-remove-hoe.patch b/main/ruby-minitest/test-remove-hoe.patch
new file mode 100644
index 00000000000..5fd963daff9
--- /dev/null
+++ b/main/ruby-minitest/test-remove-hoe.patch
@@ -0,0 +1,16 @@
+Get rid of the "hoe" dependency.
+
+--- a/test/minitest/test_minitest_test_task.rb
++++ b/test/minitest/test_minitest_test_task.rb
+@@ -1,9 +1,9 @@
+ require "minitest/autorun"
+-require "hoe"
++#require "hoe" XXX-Patched
+
+ require "minitest/test_task"
+
+-Hoe.load_plugins # make sure Hoe::Test is loaded
++#Hoe.load_plugins # make sure Hoe::Test is loaded XXX-Patched
+
+ class TestHoeTest < Minitest::Test
+ PATH = "test/minitest/test_minitest_test_task.rb"
diff --git a/main/ruby-net-ftp/APKBUILD b/main/ruby-net-ftp/APKBUILD
index 22644a91d59..0cf69b52e3e 100644
--- a/main/ruby-net-ftp/APKBUILD
+++ b/main/ruby-net-ftp/APKBUILD
@@ -4,7 +4,7 @@ pkgname=ruby-net-ftp
_gemname=net-ftp
# Keep version in sync with "Bundled gems" (https://stdgems.org) for the
# packaged Ruby version.
-pkgver=0.1.3
+pkgver=0.3.4
pkgrel=0
pkgdesc="Support for the File Transfer Protocol"
url="https://github.com/ruby/net-ftp"
@@ -55,6 +55,6 @@ doc() {
}
sha512sums="
-73159513947e1574d15b4d73c87c6b7506e1ee8defc01fd5dfbd4dc7e9f4aa9e8a2a62ae397b3471d0276707d806c6f3252540e60d9b224d30a8cc23fe60b4d3 net-ftp-0.1.3.tar.gz
-0ea5e32697eed985a45ee0b6da44013a226e4abd4a8b053ac4e7cacabe72e93b0bde54f2aec87d026b47a06301e06d301bad1347ce1746c5c1526959f624ea69 gemspec.patch
+1f289b8b0481abf66bbe000cfdc08d8f32559d02ccee186159696e1b563aecc1178d975946d969064bdb8abf8f76d50b5d5bde0423e12bf2ba0b757796c9b046 net-ftp-0.3.4.tar.gz
+67384f6752b6446bf59197a0e95769f3e2ddbfdc019bee183154af9923adb805893206e7d03bd1d206718b154e649778b90338c69dc8f1c0a6b434eb0029e0a2 gemspec.patch
"
diff --git a/main/ruby-net-ftp/gemspec.patch b/main/ruby-net-ftp/gemspec.patch
index b28c0b4be16..f3647299783 100644
--- a/main/ruby-net-ftp/gemspec.patch
+++ b/main/ruby-net-ftp/gemspec.patch
@@ -3,6 +3,6 @@
@@ -26,4 +26 @@
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
-- `git ls-files -z 2>/dev/null`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
+- `git ls-files -z 2>/dev/null`.split("\x0").reject { |f| f.match(%r{^(bin|test|spec|features)/}) }
- end
+ spec.files = Dir["lib/**/*.rb"]
diff --git a/main/ruby-net-imap/APKBUILD b/main/ruby-net-imap/APKBUILD
index 374d044da09..ae7d348ae24 100644
--- a/main/ruby-net-imap/APKBUILD
+++ b/main/ruby-net-imap/APKBUILD
@@ -4,15 +4,19 @@ pkgname=ruby-net-imap
_gemname=net-imap
# Keep version in sync with "Bundled gems" (https://stdgems.org) for the
# packaged Ruby version.
-pkgver=0.2.3
+pkgver=0.4.10
pkgrel=0
pkgdesc="Ruby client api for Internet Message Access Protocol"
url="https://github.com/ruby/net-imap"
arch="noarch"
license="BSD-2-Clause AND Ruby"
depends="ruby"
-checkdepends="ruby-rake ruby-test-unit"
makedepends="ruby-rdoc"
+checkdepends="
+ ruby-rake
+ ruby-test-unit
+ ruby-test-unit-ruby-core
+ "
subpackages="$pkgname-doc"
source="https://github.com/ruby/net-imap/archive/v$pkgver/$_gemname-$pkgver.tar.gz
gemspec.patch
@@ -55,6 +59,6 @@ doc() {
}
sha512sums="
-69b6596a8ecc66788be10d11dad911351db6ff651f56e8dc5223f4c948efe0d2e53bd465ebf56edd96f1c414e3819413835c14b35a8e90b9f9ac59bfaa5611c6 net-imap-0.2.3.tar.gz
-4185c7402f16425c2c62ac074d0bab7406dcd9dd90d969836274e0599cea479501c402eab0d696cffe2afd5f4663434f13df9867811e2e0b14a5bc565d18ab04 gemspec.patch
+0f05588dc80cef7f121cbb40e2e9ddd6cd44e5ba96ca8451ea32339275d394f1233bc6a8bc30aa1de6852f49a469e0ee64a3821d08e12199e4af51fca4e79ccf net-imap-0.4.10.tar.gz
+5ea3ff02e7faffc61400df54a7ebfbd7d2c034e135c0211355a0603b587405271a978db8876aaf4f2f06c0247fb55b1ad02b2ec85e536ce3df4480e9e89b69f9 gemspec.patch
"
diff --git a/main/ruby-net-imap/gemspec.patch b/main/ruby-net-imap/gemspec.patch
index fcd2dc578e3..d1b9ca2eeb8 100644
--- a/main/ruby-net-imap/gemspec.patch
+++ b/main/ruby-net-imap/gemspec.patch
@@ -1,8 +1,16 @@
--- a/net-imap.gemspec
+++ b/net-imap.gemspec
-@@ -26,4 +26 @@
+@@ -23,12 +23,7 @@
+ spec.metadata["source_code_uri"] = spec.homepage
+ spec.metadata["changelog_uri"] = spec.homepage + "/releases"
+
+- # Specify which files should be added to the gem when it is released.
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
-- `git ls-files -z 2>/dev/null`.split("\x0").reject { |f| f.match(%r{^(bin|test|spec|features)/}) }
+- `git ls-files -z 2>/dev/null`.split("\x0")
+- .reject {|f| f.match(%r{^(bin|test|spec|benchmarks|features|rfcs)/}) }
- end
+ spec.files = Dir["lib/**/*.rb"]
+ spec.bindir = "exe"
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
+ spec.require_paths = ["lib"]
diff --git a/main/ruby-net-pop/APKBUILD b/main/ruby-net-pop/APKBUILD
index a4022c9c893..94ed0332580 100644
--- a/main/ruby-net-pop/APKBUILD
+++ b/main/ruby-net-pop/APKBUILD
@@ -4,8 +4,8 @@ pkgname=ruby-net-pop
_gemname=net-pop
# Keep version in sync with "Bundled gems" (https://stdgems.org) for the
# packaged Ruby version.
-pkgver=0.1.1
-pkgrel=0
+pkgver=0.1.2
+pkgrel=1
pkgdesc="Ruby client library for POP3"
url="https://github.com/ruby/net-pop"
arch="noarch"
@@ -55,6 +55,6 @@ doc() {
}
sha512sums="
-9a6a03cf8ce19711a1f9318910f0cb01ec5282695e986b68657fafc289ef32c084f2a9f5a038114f550ef1553bc99c8dda094191492b503c82a37a4a71124eb2 net-pop-0.1.1.tar.gz
-3f801d8fe740714cd75e6e0f1e1a967a2b9e3a3927d8b8040ca477ae0dc483b5670356bb18e375aaeedf008f0b7f04e6369e17f90adcbc416171c76933f04300 gemspec.patch
+5f7e78cb5499f1049c93732f88857d0b2bf9e864bcfc897beddd3fc86883204ff6c153ae9fc24715b1625fec5e2ec673e913a1495e43ec0e077e52d88aaf3448 net-pop-0.1.2.tar.gz
+7e618379d57cb5b2cab63ee4a489290c39e29783ffbbd32675f1acfab29d0590a5a0e1752b1abdd9a6019eb5a70fe7925a4b153626c3431f8b57aeac1cad0385 gemspec.patch
"
diff --git a/main/ruby-net-pop/gemspec.patch b/main/ruby-net-pop/gemspec.patch
index 2113be6a207..f4f6f87fa8d 100644
--- a/main/ruby-net-pop/gemspec.patch
+++ b/main/ruby-net-pop/gemspec.patch
@@ -2,6 +2,6 @@
+++ b/net-pop.gemspec
@@ -24,3 +24 @@
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
-- `git ls-files -z 2>/dev/null`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
+- `git ls-files -z 2>/dev/null`.split("\x0").reject { |f| f.match(%r{^(bin|test|spec|features)/}) }
- end
+ spec.files = Dir["lib/**/*.rb"]
diff --git a/main/ruby-net-smtp/APKBUILD b/main/ruby-net-smtp/APKBUILD
index 749bd321893..d110cda3379 100644
--- a/main/ruby-net-smtp/APKBUILD
+++ b/main/ruby-net-smtp/APKBUILD
@@ -4,8 +4,8 @@ pkgname=ruby-net-smtp
_gemname=net-smtp
# Keep version in sync with "Bundled gems" (https://stdgems.org) for the
# packaged Ruby version.
-pkgver=0.3.1
-pkgrel=0
+pkgver=0.4.0
+pkgrel=1
pkgdesc="Simple Mail Transfer Protocol client library for Ruby"
url="https://github.com/ruby/net-smtp"
arch="noarch"
@@ -16,6 +16,7 @@ makedepends="ruby-rdoc"
subpackages="$pkgname-doc"
source="https://github.com/ruby/net-smtp/archive/v$pkgver/$_gemname-$pkgver.tar.gz
gemspec.patch
+ renew-test-certs.patch
"
builddir="$srcdir/$_gemname-$pkgver"
@@ -55,6 +56,7 @@ doc() {
}
sha512sums="
-68807d204f7768a3d890c0fd1076b2d7f77be3df662549ae9cfb56c8f84491cf4948addeb47399cdc9e7580e175e9d20ddeca25da8daafb3a90b880cc39a81ae net-smtp-0.3.1.tar.gz
-60c241a759a25ce55822cd7f004520ccfad242eb19df02d00ad2f501b6b0c80da859ba01600a5c3f7e159601aedade5a57f3bfa8d58ad81c4d00be9d3c3232f5 gemspec.patch
+3a130daac6392dd9328bdc644e1089eb34f290658b06f4aee48ab9f407086446af9fe674c5f417251ffb04478e5a6f14829f2b13b3e62fadb65ac09a2fa35bc1 net-smtp-0.4.0.tar.gz
+82265f30a418ecf1248faec6f307aa4c4e4c3176325b0691d600a0fe85803caf8a10fd58391459e16bbd451b3482f543261ee3a4a6b580cc5a1576fe8afebc6e gemspec.patch
+778adaeedde876936df40e31e2d1b26438a5a8ebc96170822801536cd916ab602170266111b4100e3c609e4d7ceaf627643b432352e0951b6eed757819b7f16e renew-test-certs.patch
"
diff --git a/main/ruby-net-smtp/gemspec.patch b/main/ruby-net-smtp/gemspec.patch
index 93f50842947..fb71b9482b3 100644
--- a/main/ruby-net-smtp/gemspec.patch
+++ b/main/ruby-net-smtp/gemspec.patch
@@ -1,8 +1,5 @@
--- a/net-smtp.gemspec
+++ b/net-smtp.gemspec
-@@ -24,5 +24,4 @@
-
- spec.files = %w[
-- LICENSE.txt
- lib/net/smtp.rb
- net-smtp.gemspec
+@@ -25 +25 @@
+- spec.files = `git ls-files README.md NEWS.md LICENSE.txt lib`.split
++ spec.files = Dir["lib/**/*.rb"]
diff --git a/main/ruby-net-smtp/renew-test-certs.patch b/main/ruby-net-smtp/renew-test-certs.patch
new file mode 100644
index 00000000000..05d13c6cf78
--- /dev/null
+++ b/main/ruby-net-smtp/renew-test-certs.patch
@@ -0,0 +1,263 @@
+Patch-Source: https://github.com/ruby/net-smtp/pull/75
+--
+From 395d568acf5db6cf8753a72e109eb91d5cd8c47f Mon Sep 17 00:00:00 2001
+From: Sorah Fukumori <her@sorah.jp>
+Date: Mon, 1 Jan 2024 20:54:28 +0900
+Subject: [PATCH] Renew test certificates
+
+Replicating https://github.com/ruby/net-http/pull/169
+
+----
+
+The private key is replaced with a public known test key published at
+[RFC 9500].
+
+Also lifetime has been extended to 10 years from 4 years.
+
+[RFC 9500]: https://www.rfc-editor.org/rfc/rfc9500.html
+---
+ test/net/fixtures/Makefile | 15 ++++++
+ test/net/fixtures/cacert.pem | 44 ++++++++--------
+ test/net/fixtures/server.crt | 99 +++++++-----------------------------
+ test/net/fixtures/server.key | 55 ++++++++++----------
+ 4 files changed, 83 insertions(+), 130 deletions(-)
+ create mode 100644 test/net/fixtures/Makefile
+
+diff --git a/test/net/fixtures/Makefile b/test/net/fixtures/Makefile
+new file mode 100644
+index 0000000..88c232e
+--- /dev/null
++++ b/test/net/fixtures/Makefile
+@@ -0,0 +1,15 @@
++all:
++
++regen_certs:
++ touch server.key
++ make server.crt
++
++cacert.pem: server.key
++ openssl req -new -x509 -days 3650 -key server.key -out cacert.pem -subj "/C=JP/ST=Shimane/L=Matz-e city/O=Ruby Core Team/CN=Ruby Test CA/emailAddress=security@ruby-lang.org"
++
++server.csr:
++ openssl req -new -key server.key -out server.csr -subj "/C=JP/ST=Shimane/O=Ruby Core Team/OU=Ruby Test/CN=localhost"
++
++server.crt: server.csr cacert.pem
++ openssl x509 -days 3650 -CA cacert.pem -CAkey server.key -set_serial 00 -in server.csr -req -out server.crt
++ rm server.csr
+diff --git a/test/net/fixtures/cacert.pem b/test/net/fixtures/cacert.pem
+index f623bd6..24c83f1 100644
+--- a/test/net/fixtures/cacert.pem
++++ b/test/net/fixtures/cacert.pem
+@@ -1,24 +1,24 @@
+ -----BEGIN CERTIFICATE-----
+-MIID7TCCAtWgAwIBAgIJAIltvxrFAuSnMA0GCSqGSIb3DQEBCwUAMIGMMQswCQYD
+-VQQGEwJKUDEQMA4GA1UECAwHU2hpbWFuZTEUMBIGA1UEBwwLTWF0ei1lIGNpdHkx
+-FzAVBgNVBAoMDlJ1YnkgQ29yZSBUZWFtMRUwEwYDVQQDDAxSdWJ5IFRlc3QgQ0Ex
+-JTAjBgkqhkiG9w0BCQEWFnNlY3VyaXR5QHJ1YnktbGFuZy5vcmcwHhcNMTkwMTAy
+-MDI1ODI4WhcNMjQwMTAxMDI1ODI4WjCBjDELMAkGA1UEBhMCSlAxEDAOBgNVBAgM
+-B1NoaW1hbmUxFDASBgNVBAcMC01hdHotZSBjaXR5MRcwFQYDVQQKDA5SdWJ5IENv
+-cmUgVGVhbTEVMBMGA1UEAwwMUnVieSBUZXN0IENBMSUwIwYJKoZIhvcNAQkBFhZz
+-ZWN1cml0eUBydWJ5LWxhbmcub3JnMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+-CgKCAQEAznlbjRVhz1NlutHVrhcGnK8W0qug2ujKXv1njSC4U6nJF6py7I9EeehV
+-SaKePyv+I9z3K1LnfUHOtUbdwdKC77yN66A6q2aqzu5q09/NSykcZGOIF0GuItYI
+-3nvW3IqBddff2ffsyR+9pBjfb5AIPP08WowF9q4s1eGULwZc4w2B8PFhtxYANd7d
+-BvGLXFlcufv9tDtzyRi4t7eqxCRJkZQIZNZ6DHHIJrNxejOILfHLarI12yk8VK6L
+-2LG4WgGqyeePiRyd1o1MbuiAFYqAwpXNUbRKg5NaZGwBHZk8UZ+uFKt1QMBURO5R
+-WFy1c349jbWszTqFyL4Lnbg9HhAowQIDAQABo1AwTjAdBgNVHQ4EFgQU9tEiKdU9
+-I9derQyc5nWPnc34nVMwHwYDVR0jBBgwFoAU9tEiKdU9I9derQyc5nWPnc34nVMw
+-DAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAxj7F/u3C3fgq24N7hGRA
+-of7ClFQxGmo/IGT0AISzW3HiVYiFaikKhbO1NwD9aBpD8Zwe62sCqMh8jGV/b0+q
+-aOORnWYNy2R6r9FkASAglmdF6xn3bhgGD5ls4pCvcG9FynGnGc24g6MrjFNrBYUS
+-2iIZsg36i0IJswo/Dy6HLphCms2BMCD3DeWtfjePUiTmQHJo6HsQIKP/u4N4Fvee
+-uMBInei2M4VU74fLXbmKl1F9AEX7JDP3BKSZG19Ch5pnUo4uXM1uNTGsi07P4Y0s
+-K44+SKBC0bYEFbDK0eQWMrX3kIhkPxyIWhxdq9/NqPYjShuSEAhA6CSpmRg0pqc+
+-mA==
++MIID+zCCAuOgAwIBAgIUGMvHl3EhtKPKcgc3NQSAYfFuC+8wDQYJKoZIhvcNAQEL
++BQAwgYwxCzAJBgNVBAYTAkpQMRAwDgYDVQQIDAdTaGltYW5lMRQwEgYDVQQHDAtN
++YXR6LWUgY2l0eTEXMBUGA1UECgwOUnVieSBDb3JlIFRlYW0xFTATBgNVBAMMDFJ1
++YnkgVGVzdCBDQTElMCMGCSqGSIb3DQEJARYWc2VjdXJpdHlAcnVieS1sYW5nLm9y
++ZzAeFw0yNDAxMDExMTQ3MjNaFw0zMzEyMjkxMTQ3MjNaMIGMMQswCQYDVQQGEwJK
++UDEQMA4GA1UECAwHU2hpbWFuZTEUMBIGA1UEBwwLTWF0ei1lIGNpdHkxFzAVBgNV
++BAoMDlJ1YnkgQ29yZSBUZWFtMRUwEwYDVQQDDAxSdWJ5IFRlc3QgQ0ExJTAjBgkq
++hkiG9w0BCQEWFnNlY3VyaXR5QHJ1YnktbGFuZy5vcmcwggEiMA0GCSqGSIb3DQEB
++AQUAA4IBDwAwggEKAoIBAQCw+egZQ6eumJKq3hfKfED4dE/tL4FI5sjqont9ABVI
+++1GSqyi1bFBgsRjM0THllIdMbKmJtWwnKW8J+5OgNN8y6Xxv8JmM/Y5vQt2lis0f
++qXmG8UTz0VTWdlAXXmhUs6lSADvAaIe4RVrCsZ97L3ZQTryY7JRVcbB4khUN3Gp0
++yg+801SXzoFTTa+UGIRLE66jH51aa5VXu99hnv1OiH8tQrjdi8mH6uG/icq4XuIe
++NWMF32wHqIOOPvQcWV3M5D2vxJEj702Ku6k9OQXkAo17qRSEonWW4HtLbtmS8He1
++JNPc/n3dVUm+fM6NoDXPoLP7j55G9zKyqGtGAWXAj1MTAgMBAAGjUzBRMB0GA1Ud
++DgQWBBSJGVleDvFp9cu9R+E0/OKYzGkwkTAfBgNVHSMEGDAWgBSJGVleDvFp9cu9
++R+E0/OKYzGkwkTAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQBl
++8GLB8skAWlkSw/FwbUmEV3zyqu+p7PNP5YIYoZs0D74e7yVulGQ6PKMZH5hrZmHo
++orFSQU+VUUirG8nDGj7Rzce8WeWBxsaDGC8CE2dq6nC6LuUwtbdMnBrH0LRWAz48
++jGFF3jHtVz8VsGfoZTZCjukWqNXvU6hETT9GsfU+PZqbqcTVRPH52+XgYayKdIbD
++r97RM4X3+aXBHcUW0b76eyyi65RR/Xtvn8ioZt2AdX7T2tZzJyXJN3Hupp77s6Ui
++AZR35SToHCZeTZD12YBvLBdaTPLZN7O/Q/aAO9ZiJaZ7SbFOjz813B2hxXab4Fob
++2uJX6eMWTVxYK5D4M9lm
+ -----END CERTIFICATE-----
+diff --git a/test/net/fixtures/server.crt b/test/net/fixtures/server.crt
+index 5ca78a6..5d29237 100644
+--- a/test/net/fixtures/server.crt
++++ b/test/net/fixtures/server.crt
+@@ -1,82 +1,21 @@
+-Certificate:
+- Data:
+- Version: 3 (0x2)
+- Serial Number: 2 (0x2)
+- Signature Algorithm: sha256WithRSAEncryption
+- Issuer: C=JP, ST=Shimane, L=Matz-e city, O=Ruby Core Team, CN=Ruby Test CA/emailAddress=security@ruby-lang.org
+- Validity
+- Not Before: Jan 2 03:27:13 2019 GMT
+- Not After : Jan 1 03:27:13 2024 GMT
+- Subject: C=JP, ST=Shimane, O=Ruby Core Team, OU=Ruby Test, CN=localhost
+- Subject Public Key Info:
+- Public Key Algorithm: rsaEncryption
+- Public-Key: (2048 bit)
+- Modulus:
+- 00:e8:da:9c:01:2e:2b:10:ec:49:cd:5e:07:13:07:
+- 9c:70:9e:c6:74:bc:13:c2:e1:6f:c6:82:fd:e3:48:
+- e0:2c:a5:68:c7:9e:42:de:60:54:65:e6:6a:14:57:
+- 7a:30:d0:cc:b5:b6:d9:c3:d2:df:c9:25:97:54:67:
+- cf:f6:be:5e:cb:8b:ee:03:c5:e1:e2:f9:e7:f7:d1:
+- 0c:47:f0:b8:da:33:5a:ad:41:ad:e7:b5:a2:7b:b7:
+- bf:30:da:60:f8:e3:54:a2:bc:3a:fd:1b:74:d9:dc:
+- 74:42:e9:29:be:df:ac:b4:4f:eb:32:f4:06:f1:e1:
+- 8c:4b:a8:8b:fb:29:e7:b1:bf:1d:01:ee:73:0f:f9:
+- 40:dc:d5:15:79:d9:c6:73:d0:c0:dd:cb:e4:da:19:
+- 47:80:c6:14:04:72:fd:9a:7c:8f:11:82:76:49:04:
+- 79:cc:f2:5c:31:22:95:13:3e:5d:40:a6:4d:e0:a3:
+- 02:26:7d:52:3b:bb:ed:65:a1:0f:ed:6b:b0:3c:d4:
+- de:61:15:5e:d3:dd:68:09:9f:4a:57:a5:c2:a9:6d:
+- 86:92:c5:f4:a4:d4:b7:13:3b:52:63:24:05:e2:cc:
+- e3:8a:3c:d4:35:34:2b:10:bb:58:72:e7:e1:8d:1d:
+- 74:8c:61:16:20:3d:d0:1c:4e:8f:6e:fd:fe:64:10:
+- 4f:41
+- Exponent: 65537 (0x10001)
+- X509v3 extensions:
+- X509v3 Basic Constraints:
+- CA:FALSE
+- Netscape Comment:
+- OpenSSL Generated Certificate
+- X509v3 Subject Key Identifier:
+- ED:28:C2:7E:AB:4B:C8:E8:FE:55:6D:66:95:31:1C:2D:60:F9:02:36
+- X509v3 Authority Key Identifier:
+- keyid:F6:D1:22:29:D5:3D:23:D7:5E:AD:0C:9C:E6:75:8F:9D:CD:F8:9D:53
+-
+- Signature Algorithm: sha256WithRSAEncryption
+- 1d:b8:c5:8b:72:41:20:65:ad:27:6f:15:63:06:26:12:8d:9c:
+- ad:ca:f4:db:97:b4:90:cb:ff:35:94:bb:2a:a7:a1:ab:1e:35:
+- 2d:a5:3f:c9:24:b0:1a:58:89:75:3e:81:0a:2c:4f:98:f9:51:
+- fb:c0:a3:09:d0:0a:9b:e7:a2:b7:c3:60:40:c8:f4:6d:b2:6a:
+- 56:12:17:4c:00:24:31:df:9c:60:ae:b1:68:54:a9:e6:b5:4a:
+- 04:e6:92:05:86:d9:5a:dc:96:30:a5:58:de:14:99:0f:e5:15:
+- 89:3e:9b:eb:80:e3:bd:83:c3:ea:33:35:4b:3e:2f:d3:0d:64:
+- 93:67:7f:8d:f5:3f:0c:27:bc:37:5a:cc:d6:47:16:af:5a:62:
+- d2:da:51:f8:74:06:6b:24:ad:28:68:08:98:37:7d:ed:0e:ab:
+- 1e:82:61:05:d0:ba:75:a0:ab:21:b0:9a:fd:2b:54:86:1d:0d:
+- 1f:c2:d4:77:1f:72:26:5e:ad:8a:9f:09:36:6d:44:be:74:c2:
+- 5a:3e:ff:5c:9d:75:d6:38:7b:c5:39:f9:44:6e:a1:d1:8e:ff:
+- 63:db:c4:bb:c6:91:92:ca:5c:60:9b:1d:eb:0a:de:08:ee:bf:
+- da:76:03:65:62:29:8b:f8:7f:c7:86:73:1e:f6:1f:2d:89:69:
+- fd:be:bd:6e
+ -----BEGIN CERTIFICATE-----
+-MIID4zCCAsugAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBjDELMAkGA1UEBhMCSlAx
+-EDAOBgNVBAgMB1NoaW1hbmUxFDASBgNVBAcMC01hdHotZSBjaXR5MRcwFQYDVQQK
+-DA5SdWJ5IENvcmUgVGVhbTEVMBMGA1UEAwwMUnVieSBUZXN0IENBMSUwIwYJKoZI
+-hvcNAQkBFhZzZWN1cml0eUBydWJ5LWxhbmcub3JnMB4XDTE5MDEwMjAzMjcxM1oX
+-DTI0MDEwMTAzMjcxM1owYDELMAkGA1UEBhMCSlAxEDAOBgNVBAgMB1NoaW1hbmUx
+-FzAVBgNVBAoMDlJ1YnkgQ29yZSBUZWFtMRIwEAYDVQQLDAlSdWJ5IFRlc3QxEjAQ
+-BgNVBAMMCWxvY2FsaG9zdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+-AOjanAEuKxDsSc1eBxMHnHCexnS8E8Lhb8aC/eNI4CylaMeeQt5gVGXmahRXejDQ
+-zLW22cPS38kll1Rnz/a+XsuL7gPF4eL55/fRDEfwuNozWq1Bree1onu3vzDaYPjj
+-VKK8Ov0bdNncdELpKb7frLRP6zL0BvHhjEuoi/sp57G/HQHucw/5QNzVFXnZxnPQ
+-wN3L5NoZR4DGFARy/Zp8jxGCdkkEeczyXDEilRM+XUCmTeCjAiZ9Uju77WWhD+1r
+-sDzU3mEVXtPdaAmfSlelwqlthpLF9KTUtxM7UmMkBeLM44o81DU0KxC7WHLn4Y0d
+-dIxhFiA90BxOj279/mQQT0ECAwEAAaN7MHkwCQYDVR0TBAIwADAsBglghkgBhvhC
+-AQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQgQ2VydGlmaWNhdGUwHQYDVR0OBBYEFO0o
+-wn6rS8jo/lVtZpUxHC1g+QI2MB8GA1UdIwQYMBaAFPbRIinVPSPXXq0MnOZ1j53N
+-+J1TMA0GCSqGSIb3DQEBCwUAA4IBAQAduMWLckEgZa0nbxVjBiYSjZytyvTbl7SQ
+-y/81lLsqp6GrHjUtpT/JJLAaWIl1PoEKLE+Y+VH7wKMJ0Aqb56K3w2BAyPRtsmpW
+-EhdMACQx35xgrrFoVKnmtUoE5pIFhtla3JYwpVjeFJkP5RWJPpvrgOO9g8PqMzVL
+-Pi/TDWSTZ3+N9T8MJ7w3WszWRxavWmLS2lH4dAZrJK0oaAiYN33tDqsegmEF0Lp1
+-oKshsJr9K1SGHQ0fwtR3H3ImXq2Knwk2bUS+dMJaPv9cnXXWOHvFOflEbqHRjv9j
+-28S7xpGSylxgmx3rCt4I7r/adgNlYimL+H/HhnMe9h8tiWn9vr1u
++MIIDYTCCAkkCAQAwDQYJKoZIhvcNAQELBQAwgYwxCzAJBgNVBAYTAkpQMRAwDgYD
++VQQIDAdTaGltYW5lMRQwEgYDVQQHDAtNYXR6LWUgY2l0eTEXMBUGA1UECgwOUnVi
++eSBDb3JlIFRlYW0xFTATBgNVBAMMDFJ1YnkgVGVzdCBDQTElMCMGCSqGSIb3DQEJ
++ARYWc2VjdXJpdHlAcnVieS1sYW5nLm9yZzAeFw0yNDAxMDExMTQ3MjNaFw0zMzEy
++MjkxMTQ3MjNaMGAxCzAJBgNVBAYTAkpQMRAwDgYDVQQIDAdTaGltYW5lMRcwFQYD
++VQQKDA5SdWJ5IENvcmUgVGVhbTESMBAGA1UECwwJUnVieSBUZXN0MRIwEAYDVQQD
++DAlsb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCw+egZ
++Q6eumJKq3hfKfED4dE/tL4FI5sjqont9ABVI+1GSqyi1bFBgsRjM0THllIdMbKmJ
++tWwnKW8J+5OgNN8y6Xxv8JmM/Y5vQt2lis0fqXmG8UTz0VTWdlAXXmhUs6lSADvA
++aIe4RVrCsZ97L3ZQTryY7JRVcbB4khUN3Gp0yg+801SXzoFTTa+UGIRLE66jH51a
++a5VXu99hnv1OiH8tQrjdi8mH6uG/icq4XuIeNWMF32wHqIOOPvQcWV3M5D2vxJEj
++702Ku6k9OQXkAo17qRSEonWW4HtLbtmS8He1JNPc/n3dVUm+fM6NoDXPoLP7j55G
++9zKyqGtGAWXAj1MTAgMBAAEwDQYJKoZIhvcNAQELBQADggEBACtGNdj5TEtnJBYp
++M+LhBeU3oNteldfycEm993gJp6ghWZFg23oX8fVmyEeJr/3Ca9bAgDqg0t9a0npN
++oWKEY6wVKqcHgu3gSvThF5c9KhGbeDDmlTSVVNQmXWX0K2d4lS2cwZHH8mCm2mrY
++PDqlEkSc7k4qSiqigdS8i80Yk+lDXWsm8CjsiC93qaRM7DnS0WPQR0c16S95oM6G
++VklFKUSDAuFjw9aVWA/nahOucjn0w5fVW6lyIlkBslC1ChlaDgJmvhz+Ol3iMsE0
++kAmFNu2KKPVrpMWaBID49QwQTDyhetNLaVVFM88iUdA9JDoVMEuP1mm39JqyzHTu
++uBrdP4Q=
+ -----END CERTIFICATE-----
+diff --git a/test/net/fixtures/server.key b/test/net/fixtures/server.key
+index 7f2380e..6a83d5b 100644
+--- a/test/net/fixtures/server.key
++++ b/test/net/fixtures/server.key
+@@ -1,28 +1,27 @@
+------BEGIN PRIVATE KEY-----
+-MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDo2pwBLisQ7EnN
+-XgcTB5xwnsZ0vBPC4W/Ggv3jSOAspWjHnkLeYFRl5moUV3ow0My1ttnD0t/JJZdU
+-Z8/2vl7Li+4DxeHi+ef30QxH8LjaM1qtQa3ntaJ7t78w2mD441SivDr9G3TZ3HRC
+-6Sm+36y0T+sy9Abx4YxLqIv7Keexvx0B7nMP+UDc1RV52cZz0MDdy+TaGUeAxhQE
+-cv2afI8RgnZJBHnM8lwxIpUTPl1Apk3gowImfVI7u+1loQ/ta7A81N5hFV7T3WgJ
+-n0pXpcKpbYaSxfSk1LcTO1JjJAXizOOKPNQ1NCsQu1hy5+GNHXSMYRYgPdAcTo9u
+-/f5kEE9BAgMBAAECggEBAOHkwhc7DLh8IhTDNSW26oMu5OP2WU1jmiYAigDmf+OQ
+-DBgrZj+JQBci8qINQxL8XLukSZn5hvQCLc7Kbyu1/wyEEUFDxSGGwwzclodr9kho
+-LX2LDASPZrOSzD2+fPi2wTKmXKuS6Uc44OjQfZkYMNkz9r4Vkm8xGgOD3VipjIYX
+-QXlhhdqkXZcNABsihCV52GKkDFSVm8jv95YJc5xhoYCy/3a4/qPdF0aT2R7oYUej
+-hKrxVDskyooe8Zg/JTydZNV5GQEDmW01/K3r6XGT26oPi1AqMU1gtv/jkW56CRQQ
+-1got8smnqM+AV7Slf9R6DauIPdQJ2S8wsr/o8ISBsOECgYEA9YrqEP2gAYSGFXRt
+-liw0WI2Ant8BqXS6yvq1jLo/qWhLw/ph4Di73OQ2mpycVTpgfGr2wFPQR1XJ+0Fd
+-U+Ir/C3Q7FK4VIGHK7B0zNvZr5tEjlFfeRezo2JMVw5YWeSagIFcSwK+KqCTH9qc
+-pw/Eb8nB/4XNcpTZu7Fg0Wc+ooUCgYEA8sVaicn1Wxkpb45a4qfrA6wOr5xdJ4cC
+-A5qs7vjX2OdPIQOmoQhdI7bCWFXZzF33wA4YCws6j5wRaySLIJqdms8Gl9QnODy1
+-ZlA5gwKToBC/jqPmWAXSKb8EH7cHilaxU9OKnQ7CfwlGLHqjMtjrhR7KHlt3CVRs
+-oRmvsjZVXI0CgYAmPedslAO6mMhFSSfULrhMXmV82OCqYrrA6EEkVNGbcdnzAOkD
+-gfKIWabDd8bFY10po4Mguy0CHzNhBXIioWQWV5BlbhC1YKMLw+S9DzSdLAKGY9gJ
+-xQ4+UQ3wtRQ/k+IYR413RUsW2oFvgZ3KSyNeAb9MK6uuv84VdG/OzVSs/QKBgQDn
+-kap//l2EbObiWyaERunckdVcW0lcN+KK75J/TGwPoOwQsLvTpPe65kxRGGrtDsEQ
+-uCDk/+v3KkZPLgdrrTAih9FhJ+PVN8tMcb+6IM4SA4fFFr/UPJEwct0LJ3oQ0grJ
+-y+HPWFHb/Uurh7t99/4H98uR02sjQh1wOeEmm78mzQKBgQDm+LzGH0se6CXQ6cdZ
+-g1JRZeXkDEsrW3hfAsW62xJQmXcWxBoblP9OamMY+A06rM5og3JbDk5Zm6JsOaA8
+-wS2gw4ilp46jors4eQey8ux7kB9LzdBoDBBElnsbjLO8oBNZlVcYXg+6BOl/CUi7
+-2whRF0FEjKA8ehrNhAq+VFfFNw==
+------END PRIVATE KEY-----
++-----BEGIN RSA PRIVATE KEY-----
++MIIEowIBAAKCAQEAsPnoGUOnrpiSqt4XynxA+HRP7S+BSObI6qJ7fQAVSPtRkqso
++tWxQYLEYzNEx5ZSHTGypibVsJylvCfuToDTfMul8b/CZjP2Ob0LdpYrNH6l5hvFE
++89FU1nZQF15oVLOpUgA7wGiHuEVawrGfey92UE68mOyUVXGweJIVDdxqdMoPvNNU
++l86BU02vlBiESxOuox+dWmuVV7vfYZ79Toh/LUK43YvJh+rhv4nKuF7iHjVjBd9s
++B6iDjj70HFldzOQ9r8SRI+9NirupPTkF5AKNe6kUhKJ1luB7S27ZkvB3tSTT3P59
++3VVJvnzOjaA1z6Cz+4+eRvcysqhrRgFlwI9TEwIDAQABAoIBAEEYiyDP29vCzx/+
++dS3LqnI5BjUuJhXUnc6AWX/PCgVAO+8A+gZRgvct7PtZb0sM6P9ZcLrweomlGezI
++FrL0/6xQaa8bBr/ve/a8155OgcjFo6fZEw3Dz7ra5fbSiPmu4/b/kvrg+Br1l77J
++aun6uUAs1f5B9wW+vbR7tzbT/mxaUeDiBzKpe15GwcvbJtdIVMa2YErtRjc1/5B2
++BGVXyvlJv0SIlcIEMsHgnAFOp1ZgQ08aDzvilLq8XVMOahAhP1O2A3X8hKdXPyrx
++IVWE9bS9ptTo+eF6eNl+d7htpKGEZHUxinoQpWEBTv+iOoHsVunkEJ3vjLP3lyI/
++fY0NQ1ECgYEA3RBXAjgvIys2gfU3keImF8e/TprLge1I2vbWmV2j6rZCg5r/AS0u
++pii5CvJ5/T5vfJPNgPBy8B/yRDs+6PJO1GmnlhOkG9JAIPkv0RBZvR0PMBtbp6nT
++Y3yo1lwamBVBfY6rc0sLTzosZh2aGoLzrHNMQFMGaauORzBFpY5lU50CgYEAzPHl
++u5DI6Xgep1vr8QvCUuEesCOgJg8Yh1UqVoY/SmQh6MYAv1I9bLGwrb3WW/7kqIoD
++fj0aQV5buVZI2loMomtU9KY5SFIsPV+JuUpy7/+VE01ZQM5FdY8wiYCQiVZYju9X
++Wz5LxMNoz+gT7pwlLCsC4N+R8aoBk404aF1gum8CgYAJ7VTq7Zj4TFV7Soa/T1eE
++k9y8a+kdoYk3BASpCHJ29M5R2KEA7YV9wrBklHTz8VzSTFTbKHEQ5W5csAhoL5Fo
++qoHzFFi3Qx7MHESQb9qHyolHEMNx6QdsHUn7rlEnaTTyrXh3ifQtD6C0yTmFXUIS
++CW9wKApOrnyKJ9nI0HcuZQKBgQCMtoV6e9VGX4AEfpuHvAAnMYQFgeBiYTkBKltQ
++XwozhH63uMMomUmtSG87Sz1TmrXadjAhy8gsG6I0pWaN7QgBuFnzQ/HOkwTm+qKw
++AsrZt4zeXNwsH7QXHEJCFnCmqw9QzEoZTrNtHJHpNboBuVnYcoueZEJrP8OnUG3r
++UjmopwKBgAqB2KYYMUqAOvYcBnEfLDmyZv9BTVNHbR2lKkMYqv5LlvDaBxVfilE0
++2riO4p6BaAdvzXjKeRrGNEKoHNBpOSfYCOM16NjL8hIZB1CaV3WbT5oY+jp7Mzd5
++7d56RZOE+ERK2uz/7JX9VSsM/LbH9pJibd4e8mikDS9ntciqOH/3
++-----END RSA PRIVATE KEY-----
diff --git a/main/ruby-power_assert/APKBUILD b/main/ruby-power_assert/APKBUILD
index 4449dc9fefd..fd7a2222e78 100644
--- a/main/ruby-power_assert/APKBUILD
+++ b/main/ruby-power_assert/APKBUILD
@@ -4,8 +4,8 @@ pkgname=ruby-power_assert
_gemname=power_assert
# Keep version in sync with "Bundled gems" (https://stdgems.org) for the
# packaged Ruby version.
-pkgver=2.0.1
-pkgrel=0
+pkgver=2.0.3
+pkgrel=1
pkgdesc="Debug tool for Ruby that displays intermediate results of a method chain"
url="https://github.com/ruby/power_assert"
arch="noarch"
@@ -57,6 +57,6 @@ doc() {
}
sha512sums="
-717d163050e45d889bbf50ee5caf4d91b143a0df45d8ed1be9588595fd485f05662d59ae6166d44b5cf987d6b2a1e77f40441f2aefd1051ff9cf679d3bcdddc6 power_assert-2.0.1.tar.gz
+f5658d18b3b78e7757ddfc1ccdabc011076c009a7343eaad2748ca7aeb4d112bf19c70621cb938e7dcf1582c8bb7c5512017885ea51503b3ed274980b7d7c0b1 power_assert-2.0.3.tar.gz
eb4321b8ce33476e21f0cd6da92f1f2be93e0892f5e6043d6d5f5578160f1793993b10645c0b06b3b2df3e8190a10c83e5325c367001e222d98b290222c2edfe gemspec.patch
"
diff --git a/main/ruby-prime/APKBUILD b/main/ruby-prime/APKBUILD
index bf3078232f2..3847d144cfd 100644
--- a/main/ruby-prime/APKBUILD
+++ b/main/ruby-prime/APKBUILD
@@ -5,7 +5,7 @@ _gemname=prime
# Keep version in sync with "Bundled gems" (https://stdgems.org) for the
# packaged Ruby version.
pkgver=0.1.2
-pkgrel=0
+pkgrel=2
pkgdesc="Prime numbers and factorization library"
url="https://github.com/ruby/prime"
arch="noarch"
diff --git a/main/ruby-racc/APKBUILD b/main/ruby-racc/APKBUILD
new file mode 100644
index 00000000000..fe257638e13
--- /dev/null
+++ b/main/ruby-racc/APKBUILD
@@ -0,0 +1,79 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=ruby-racc
+_gemname=racc
+# Keep version in sync with "Bundled gems" (https://stdgems.org) for the
+# packaged Ruby version.
+pkgver=1.7.3
+pkgrel=0
+pkgdesc="LALR(1) parser generator for Ruby"
+url="https://github.com/ruby/racc"
+arch="all"
+license="BSD-2-Clause AND Ruby"
+depends="ruby"
+makedepends="
+ ruby-dev
+ ruby-rake
+ ruby-rake-compiler
+ ruby-rdoc
+ "
+checkdepends="
+ ruby-test-unit
+ ruby-test-unit-ruby-core
+ "
+subpackages="$pkgname-doc"
+source="https://github.com/ruby/racc/archive/v$pkgver/$_gemname-$pkgver.tar.gz"
+builddir="$srcdir/$_gemname-$pkgver"
+
+prepare() {
+ default_prepare
+ sed -i '/require .bundler/d' Rakefile
+}
+
+build() {
+ rake compile
+
+ gem build $_gemname.gemspec
+
+ gem install \
+ --local \
+ --install-dir dist \
+ --bindir dist/bin \
+ --ignore-dependencies \
+ --document ri \
+ --verbose \
+ $_gemname
+}
+
+check() {
+ rake test
+}
+
+package() {
+ local gemdir="$pkgdir/$(ruby -e 'puts Gem.default_dir')"
+
+ cd "$builddir"/dist
+
+ mkdir -p "$gemdir"
+ cp -r doc extensions gems specifications "$gemdir"/
+
+ mkdir -p "$pkgdir"/usr/bin
+ cp -r bin/* "$pkgdir"/usr/bin/
+
+ # Remove unnecessary files and rubbish...
+ find "$gemdir"/extensions/ -name mkmf.log -delete
+
+ cd "$gemdir"/gems/$_gemname-$pkgver
+ rm -r doc/ ext/
+ rm -f ChangeLog README.* TODO
+}
+
+doc() {
+ pkgdesc="$pkgdesc (ri docs)"
+
+ amove "$(ruby -e 'puts Gem.default_dir')"/doc
+}
+
+sha512sums="
+8412c021d3fc7f25ccf3a61d56c11df0d8c0b09852d99cc314c8b4931f9c22939dc43ef599801de9a64a69acbd897fb6f215f56702634f2c8b6d69ae3bdfa2b3 racc-1.7.3.tar.gz
+"
diff --git a/main/ruby-rake-compiler/APKBUILD b/main/ruby-rake-compiler/APKBUILD
new file mode 100644
index 00000000000..f1ab36b5656
--- /dev/null
+++ b/main/ruby-rake-compiler/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=ruby-rake-compiler
+_gemname=${pkgname#ruby-}
+pkgver=1.2.7
+pkgrel=0
+pkgdesc="Provide a standard and simplified way to build and package Ruby extensions"
+url="https://github.com/rake-compiler/rake-compiler"
+arch="noarch"
+license="MIT"
+depends="ruby ruby-rake"
+checkdepends="ruby-rspec"
+source="$pkgname-$pkgver.tar.gz::https://github.com/rake-compiler/$_gemname/archive/v$pkgver.tar.gz
+ gemfile-remove-unwanted-files.patch"
+builddir="$srcdir/$_gemname-$pkgver"
+options="!check" # ruby-rspec is not in main
+
+build() {
+ gem build $_gemname.gemspec
+}
+
+check() {
+ rspec spec
+}
+
+package() {
+ local gemdir="$pkgdir/$(ruby -e 'puts Gem.default_dir')"
+
+ gem install --local \
+ --install-dir "$gemdir" \
+ --bindir "$pkgdir/usr/bin" \
+ --ignore-dependencies \
+ --no-document \
+ --verbose \
+ $_gemname
+
+ # Remove unnecessary files and empty directories.
+ cd "$gemdir"
+ rm -r cache build_info doc
+}
+
+sha512sums="
+7405037092446e245028f73494acbeeb9b67cdcbc4e90832180d3c53d36df008b05a83e88e1919b884754e39365ca5685aa22cf8caf9e7f96786c11ac7208ead ruby-rake-compiler-1.2.7.tar.gz
+2744f66714b893e18491346db8c9691a5bed666ab14281506e4f370dbef2ba640f567deedfd028f3a7b698ab6004af8a2ea20702d72045df833cdbcaf77317a2 gemfile-remove-unwanted-files.patch
+"
diff --git a/main/ruby-rake-compiler/gemfile-remove-unwanted-files.patch b/main/ruby-rake-compiler/gemfile-remove-unwanted-files.patch
new file mode 100644
index 00000000000..6dba7a56c50
--- /dev/null
+++ b/main/ruby-rake-compiler/gemfile-remove-unwanted-files.patch
@@ -0,0 +1,25 @@
+--- a/rake-compiler.gemspec
++++ b/rake-compiler.gemspec
+@@ -23,12 +23,8 @@
+ s.add_development_dependency 'cucumber', '~> 1.1.4'
+
+ # components, files and paths
+- s.files = Dir.glob("features/**/*.{feature,rb}")
+- s.files += ["bin/rake-compiler"]
++ s.files = ["bin/rake-compiler"]
+ s.files += Dir.glob("lib/**/*.rb")
+- s.files += Dir.glob("tasks/**/*.rake")
+- s.files += ["Rakefile", "Gemfile"]
+- s.files += Dir.glob("*.{md,rdoc,txt,yml}")
+
+ s.bindir = 'bin'
+ s.executables = ['rake-compiler']
+@@ -37,8 +33,6 @@
+
+ # documentation
+ s.rdoc_options << '--main' << 'README.md' << '--title' << 'rake-compiler -- Documentation'
+-
+- s.extra_rdoc_files = %w(README.md LICENSE.txt History.md)
+
+ # project information
+ s.homepage = 'https://github.com/rake-compiler/rake-compiler'
diff --git a/main/ruby-rake/APKBUILD b/main/ruby-rake/APKBUILD
index 37d38b4ec32..872f37b9b2b 100644
--- a/main/ruby-rake/APKBUILD
+++ b/main/ruby-rake/APKBUILD
@@ -4,8 +4,8 @@ pkgname=ruby-rake
_gemname=rake
# Keep version in sync with "Bundled gems" (https://stdgems.org) for the
# packaged Ruby version.
-pkgver=13.0.6
-pkgrel=1
+pkgver=13.1.0
+pkgrel=0
pkgdesc="A Ruby task runner, inspired by make"
url="https://github.com/ruby/rake"
arch="noarch"
@@ -54,5 +54,5 @@ doc() {
}
sha512sums="
-1b438be96d8cedaf70e961b0bbd2217692b0b5537b2e1d5f599158e7da3e300cf6ab0c5f0c52fea89be0beb675effbbf563d24e55c84fb673b4982013355e03c rake-13.0.6.tar.gz
+aaea4566834e588ff5cf9f48892cb7aea40f0057db949eb0053755b2f601d5c19073128aedb1f3c98cace441518bbf9bc215ba45d9135123d5b3a48a1625a995 rake-13.1.0.tar.gz
"
diff --git a/main/ruby-rbs/APKBUILD b/main/ruby-rbs/APKBUILD
index c4eb11938e7..2701211898e 100644
--- a/main/ruby-rbs/APKBUILD
+++ b/main/ruby-rbs/APKBUILD
@@ -4,7 +4,7 @@ pkgname=ruby-rbs
_gemname=rbs
# Keep version in sync with "Bundled gems" (https://stdgems.org) for the
# packaged Ruby version.
-pkgver=2.1.0
+pkgver=3.3.2
pkgrel=0
pkgdesc="Type Signature for Ruby"
url="https://github.com/ruby/rbs"
@@ -59,6 +59,6 @@ doc() {
}
sha512sums="
-2f815e20223f6b7b29bbe46df191900c8aa2895f486ad3d2163cb7f8b654f676fc400de0fac2b699e645507bd077776e498a7ee80cab0eed0c779258af9a2004 rbs-2.1.0.tar.gz
-dccca910f2c936007882c762b9b40c95e6281b3ba1c08daaaa81b711acd7e45f61a8c7cd6bf26acb5fd33c4a0c8895934100d59508ecde6c9cf0f5befc78ac46 gemspec.patch
+ef0ac2bf65cebd12596c2e7cecd5eeb41abf169f18cdd8cfe056195150ebcb2544b2c65cbfdd63f6e9f2af3e95d5a312aa7db230b2bb03d44f995cf0522ae754 rbs-3.3.2.tar.gz
+39f59efc8ed4af86314e630c19cbefdf5df740c3baf8e51e184a58f8a42df7fb5c47d8f3563e97fff1f41d38d3d4d80ba665378ac82b24983a9aa49d4f7e11e4 gemspec.patch
"
diff --git a/main/ruby-rbs/gemspec.patch b/main/ruby-rbs/gemspec.patch
index 52e6c1646e0..63b477964da 100644
--- a/main/ruby-rbs/gemspec.patch
+++ b/main/ruby-rbs/gemspec.patch
@@ -1,8 +1,15 @@
--- a/rbs.gemspec
+++ b/rbs.gemspec
-@@ -29,4 +29 @@
+@@ -25,11 +25,7 @@
+ "public gem pushes."
+ end
+
+- # Specify which files should be added to the gem when it is released.
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
-- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|bin)/}) }
+- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features|bin|steep)/}) }
- end
+ spec.files = Dir["core/**/*.rbs", "exe/*", "ext/**/*", "lib/**/*.rb", "schema/**/*.json", "sig/**/*.rbs", "stdlib/**/*.rbs"]
+ spec.extensions = %w{ext/rbs_extension/extconf.rb}
+
+ spec.bindir = "exe"
diff --git a/main/ruby-rexml/APKBUILD b/main/ruby-rexml/APKBUILD
index 832f9f87f4e..7425456daa3 100644
--- a/main/ruby-rexml/APKBUILD
+++ b/main/ruby-rexml/APKBUILD
@@ -4,8 +4,8 @@ pkgname=ruby-rexml
_gemname=rexml
# Keep version in sync with "Bundled gems" (https://stdgems.org) for the
# packaged Ruby version.
-pkgver=3.2.5
-pkgrel=2
+pkgver=3.2.6
+pkgrel=1
pkgdesc="An XML toolkit for Ruby"
url="https://github.com/ruby/rexml"
arch="noarch"
@@ -14,7 +14,7 @@ depends="ruby"
checkdepends="ruby-test-unit"
makedepends="ruby-rdoc"
subpackages="$pkgname-doc"
-source="https://github.com/ruby/rexml/archive/v$pkgver/$pkgname-$pkgver.tar.gz"
+source="https://github.com/ruby/rexml/archive/v$pkgver/ruby-rexml-$pkgver.tar.gz"
builddir="$srcdir/$_gemname-$pkgver"
[ "$CARCH" = "s390x" ] && options="!check"
@@ -54,5 +54,5 @@ doc() {
}
sha512sums="
-9c62b789988b407bf4b02906768300b256734bfa342ef6b3551428ba2c1792b7e7e5a5480251d7df52318a5e5155757ab1377c0cc8d1d7c33278f33e367a5ca5 ruby-rexml-3.2.5.tar.gz
+bbf278ed25fbf4d814de9df3cbca691ab43d4e502a02b081e894ce82c161b1931d850df54074ef81c9cb470dca10a81c631da7ccbf908401818fca4c9a4aa5c4 ruby-rexml-3.2.6.tar.gz
"
diff --git a/main/ruby-rr/APKBUILD b/main/ruby-rr/APKBUILD
index 89b5202c84a..5d6018a43ff 100644
--- a/main/ruby-rr/APKBUILD
+++ b/main/ruby-rr/APKBUILD
@@ -2,8 +2,8 @@
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=ruby-rr
_gemname=rr
-pkgver=3.0.9
-pkgrel=0
+pkgver=3.1.0
+pkgrel=2
pkgdesc="Test double framework that features a rich selection of double techniques"
url="https://github.com/rr/rr"
arch="noarch"
@@ -53,6 +53,6 @@ doc() {
}
sha512sums="
-df285aa1c9c226765f33338ad267abfded568bfc2b76d7d966e20b68d849f071c2a3e3a6a666c70584993d26956a7ae0ccca8be68a66a862826c9203b0e04ee9 rr-3.0.9.tar.gz
-e8d2ee005b6cab9ff0abedb3611bf7b5292e8526aa9cac5957284f57d68790fe98c5d95b51517a27102923f36e846c57fdc74ae73e618e5d066b376edc6994c7 gemspec.patch
+d05d8421d5cd6e9225cbf5ca183c54cc510a3212f0629f7cee60887b18c874618cb67836503aed7665cef8443cc579306b84e030ae1ec0834f56298f5044a2fa rr-3.1.0.tar.gz
+6712e6b870d6145718ef656e0e299f1cf8749b9f695d9227f3ad7fd3ad19ec001f49be523ef245dccd84bca6ce24b4e397d8468b7a0c1c6af5edb7ef2508f11d gemspec.patch
"
diff --git a/main/ruby-rr/gemspec.patch b/main/ruby-rr/gemspec.patch
index a65bef180ce..93439e87ead 100644
--- a/main/ruby-rr/gemspec.patch
+++ b/main/ruby-rr/gemspec.patch
@@ -1,12 +1,17 @@
+diff --git a/rr.gemspec b/rr.gemspec
+index 398b1a8..9b12ebc 100644
--- a/rr.gemspec
+++ b/rr.gemspec
-@@ -2,3 +2,2 @@
-
--require 'rake'
+@@ -1,5 +1,4 @@
+ # encoding: utf-8
+-
require File.expand_path('../lib/rr/version', __FILE__)
-@@ -16,14 +15,3 @@
-- gem.files = FileList[
-+ gem.files = Dir[
+
+ Gem::Specification.new do |gem|
+@@ -13,19 +12,8 @@ Gem::Specification.new do |gem|
+ gem.license = 'MIT'
+
+ gem.files = Dir[
- 'Appraisals',
- 'CHANGES.md',
- 'CREDITS.md',
@@ -21,3 +26,6 @@
- 'spec/**/*'
- ].to_a
+ ]
+
+ gem.require_paths = ['lib']
+
diff --git a/main/ruby-rss/APKBUILD b/main/ruby-rss/APKBUILD
index 4dfaa4f6952..a20275c9ff4 100644
--- a/main/ruby-rss/APKBUILD
+++ b/main/ruby-rss/APKBUILD
@@ -2,8 +2,8 @@
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=ruby-rss
_gemname=rss
-pkgver=0.2.9
-pkgrel=1
+pkgver=0.3.0
+pkgrel=0
pkgdesc="RSS reading and writing for Ruby"
url="https://github.com/ruby/rss"
arch="noarch"
@@ -12,9 +12,7 @@ depends="ruby ruby-rexml"
checkdepends="ruby-test-unit"
makedepends="ruby-rdoc"
subpackages="$pkgname-doc"
-source="https://github.com/ruby/rss/archive/$pkgver/$pkgname-$pkgver.tar.gz
- gemspec.patch
- "
+source="https://github.com/ruby/rss/archive/$pkgver/ruby-rss-$pkgver.tar.gz"
builddir="$srcdir/$_gemname-$pkgver"
prepare() {
@@ -44,6 +42,9 @@ package() {
# Remove unnessecary files
cd "$gemdir"
rm -rf build_info cache extensions plugins
+
+ cd "$gemdir"/gems/$_gemname-$pkgver
+ rm README.* NEWS.*
}
doc() {
@@ -53,6 +54,5 @@ doc() {
}
sha512sums="
-dcb87c26bbc52a90b75f9ac97f7a59ddf821bba8f1843de2dc1ae9b9dffbaf51993a2c99e9ee02b08513a8ce94934afd867ba328dfda9244a73f2b147932af3d ruby-rss-0.2.9.tar.gz
-d5ba5d7cea9b2a19624f3acead6731176770dc94b24a1da28dcd5795172ee56145af1f513076fb96b6cf3d45d0587adf6632a6298bc1a3fe624f7f3ca5005f70 gemspec.patch
+86b7097e3dcf0da03284b44493be43e972a1facb2f20e81cc3303ea0c39336a364858f3d37e04a2397851ca897bd484284eb81cd6d6b55f4c0d77d811350688e ruby-rss-0.3.0.tar.gz
"
diff --git a/main/ruby-rss/gemspec.patch b/main/ruby-rss/gemspec.patch
deleted file mode 100644
index 91c5324b90f..00000000000
--- a/main/ruby-rss/gemspec.patch
+++ /dev/null
@@ -1,17 +0,0 @@
---- a/rss.gemspec
-+++ b/rss.gemspec
-@@ -13,14 +13,8 @@
-
- spec.files = [
- "#{spec.name}.gemspec",
-- "Gemfile",
-- "LICENSE.txt",
-- "NEWS.md",
-- "README.md",
-- "Rakefile",
- ]
- spec.files += Dir.glob("lib/**/*.rb")
-- spec.test_files += Dir.glob("test/**/*")
- spec.require_paths = ["lib"]
-
- spec.add_dependency "rexml"
diff --git a/main/ruby-test-unit-rr/APKBUILD b/main/ruby-test-unit-rr/APKBUILD
index 06d5e98533f..11213afe540 100644
--- a/main/ruby-test-unit-rr/APKBUILD
+++ b/main/ruby-test-unit-rr/APKBUILD
@@ -3,7 +3,7 @@
pkgname=ruby-test-unit-rr
_gemname=test-unit-rr
pkgver=1.0.5
-pkgrel=0
+pkgrel=2
pkgdesc="RR adapter for test-unit"
url="https://github.com/test-unit/test-unit-rr"
arch="noarch"
diff --git a/main/ruby-test-unit-ruby-core/APKBUILD b/main/ruby-test-unit-ruby-core/APKBUILD
new file mode 100644
index 00000000000..a56758186dc
--- /dev/null
+++ b/main/ruby-test-unit-ruby-core/APKBUILD
@@ -0,0 +1,46 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=ruby-test-unit-ruby-core
+_gemname=test-unit-ruby-core
+pkgver=1.0.5
+pkgrel=0
+pkgdesc="Additional test assertions for Ruby standard libraries"
+url="https://github.com/ruby/test-unit-ruby-core"
+arch="noarch"
+license="BSD-2-Clause AND Ruby"
+depends="ruby"
+makedepends="ruby-rdoc"
+subpackages="$pkgname-doc"
+source="https://github.com/ruby/test-unit-ruby-core/archive/v$pkgver/$_gemname-$pkgver.tar.gz"
+builddir="$srcdir/$_gemname-$pkgver"
+options="!check" # no tests provided
+
+build() {
+ gem build $_gemname.gemspec
+}
+
+package() {
+ local gemdir="$pkgdir/$(ruby -e 'puts Gem.default_dir')"
+
+ gem install \
+ --local \
+ --install-dir "$gemdir" \
+ --ignore-dependencies \
+ --document ri \
+ --verbose \
+ $_gemname
+
+ # Remove unnessecary files
+ cd "$gemdir"
+ rm -rf build_info cache extensions plugins
+}
+
+doc() {
+ pkgdesc="$pkgdesc (ri docs)"
+
+ amove "$(ruby -e 'puts Gem.default_dir')"/doc
+}
+
+sha512sums="
+5f107cc054abfa422c5a82c58b4a67de4c6c6cf60a0c3e18cc8408162cff5dd1689e1c61cff4900635f09b8ba908ec4394c2b5ef7e072c3eb4759463dc4b4f90 test-unit-ruby-core-1.0.5.tar.gz
+"
diff --git a/main/ruby-test-unit/APKBUILD b/main/ruby-test-unit/APKBUILD
index 2e043fa5abe..2f7107c12f9 100644
--- a/main/ruby-test-unit/APKBUILD
+++ b/main/ruby-test-unit/APKBUILD
@@ -4,7 +4,7 @@ pkgname=ruby-test-unit
_gemname=test-unit
# Keep version in sync with "Bundled gems" (https://stdgems.org) for the
# packaged Ruby version.
-pkgver=3.5.3
+pkgver=3.6.2
pkgrel=0
pkgdesc="An xUnit family unit testing framework for Ruby"
url="https://test-unit.github.io"
@@ -49,6 +49,6 @@ doc() {
}
sha512sums="
-e6960bdcc67c8667cc13f0a4cf8b412be767124b0e555294be71afff71e0ce9a34e7cfa7413e33ee3c8477928a479e9439ada9e50866c0e8890b4be8dd0b38a2 test-unit-3.5.3.tar.gz
+d523412e080ea0ce1ac968c64279fbdc90afaed3b2052f357993583ed89a77d9977022aac74f3170bfc3cb7e716f1665a9705e0ed95a8db5f205f1b984f52d94 test-unit-3.6.2.tar.gz
22f54fcf272856a9455d5a7276896ec329377b106ab47e3d376158eee72cf570f4487dd87606d730d061e7b06e5d7a0ff561cd8d279a64d8af0ac04e0f2dba92 gemspec.patch
"
diff --git a/main/ruby-typeprof/APKBUILD b/main/ruby-typeprof/APKBUILD
index a6db0b4414b..929514715fe 100644
--- a/main/ruby-typeprof/APKBUILD
+++ b/main/ruby-typeprof/APKBUILD
@@ -4,7 +4,7 @@ pkgname=ruby-typeprof
_gemname=typeprof
# Keep version in sync with "Bundled gems" (https://stdgems.org) for the
# packaged Ruby version.
-pkgver=0.21.2
+pkgver=0.21.11
pkgrel=0
pkgdesc="A type analysis tool for Ruby code based on abstract interpretation"
url="https://github.com/ruby/typeprof"
@@ -52,6 +52,6 @@ doc() {
}
sha512sums="
-53e9657ee0c98e131e8ec70400cb775cf643910e8985767742b50fda99285f33f787d810bcad08d9d633265577731a95fcf9a4e7568e4d6b0b603f14a6c10828 typeprof-0.21.2.tar.gz
-fca74df9bec09e886791b18c15a5e9b56ede5e7a980349d22ca49a2420a52b76f784966acd4dad6b230b199fefc8fb1bcaab98f34a9d2fa10a9a751c98b6c8b3 gemspec.patch
+3ef58d5cee24f037a32984a7f9757958f0276732918a58c27aed15b11e43d57da92d4fcf41eeb017d7fe8cacfd801f0fc9cdcf03cfc2e663f8660097cde8fb61 typeprof-0.21.11.tar.gz
+38b5f848ecf7c60c8c82bd57fabb4a1113789c31602058cc32de4d2c186acb5ec8f6d966b7ec09ccbc080640b5137477b49b5918015fd4859b1b91a7069869e2 gemspec.patch
"
diff --git a/main/ruby-typeprof/gemspec.patch b/main/ruby-typeprof/gemspec.patch
index 14d34d4b64d..c5c89753d52 100644
--- a/main/ruby-typeprof/gemspec.patch
+++ b/main/ruby-typeprof/gemspec.patch
@@ -1,8 +1,9 @@
--- a/typeprof.gemspec
+++ b/typeprof.gemspec
-@@ -25,4 +25 @@
+@@ -24,5 +24 @@
+- # Specify which files should be added to the gem when it is released.
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
-- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(doc|test|spec|features|smoke|testbed)/}) }
+- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(doc|test|spec|features|smoke|testbed|vscode)/}) }
- end
+ spec.files = Dir["exe/*", "lib/**/*.rb"]
diff --git a/main/ruby/APKBUILD b/main/ruby/APKBUILD
index 7a0ca065655..b7c061773db 100644
--- a/main/ruby/APKBUILD
+++ b/main/ruby/APKBUILD
@@ -3,6 +3,11 @@
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
#
# secfixes:
+# 3.1.4-r0:
+# - CVE-2023-28755
+# - CVE-2023-28756
+# 3.1.3-r0:
+# - CVE-2021-33621
# 3.1.2-r0:
# - CVE-2022-28738
# - CVE-2022-28739
@@ -53,7 +58,7 @@ pkgname=ruby
# When upgrading, upgrade also each ruby-<name> aport listed in file
# gems/bundled_gems. If some aport is missing or not in the main repo,
# create/move it.
-pkgver=3.1.2
+pkgver=3.3.0
_abiver="${pkgver%.*}.0"
pkgrel=0
pkgdesc="An object-oriented language for quick and easy programming"
@@ -69,10 +74,11 @@ depends_dev="
"
makedepends="$depends_dev
autoconf
+ cargo
gdbm-dev
libffi-dev
linux-headers
- openssl-dev
+ openssl-dev>3
readline-dev
yaml-dev
zlib-dev
@@ -133,8 +139,8 @@ build() {
# -O2 - ruby is a language runtime, so performance is crucial. Moreover,
# ruby 3.1.1 fails with Bus Error when compiled with -Os on armhf/armv7.
# This makes ruby-libs 7% bigger (13.4 -> 14.4 MiB).
- export CFLAGS="${CFLAGS/-Os/-O2} -fno-omit-frame-pointer -fno-strict-aliasing"
- export CPPFLAGS="${CPPFLAGS/-Os/-O2} -fno-omit-frame-pointer -fno-strict-aliasing"
+ export CFLAGS="${CFLAGS/-Os/} -fno-omit-frame-pointer -fno-strict-aliasing"
+ export CPPFLAGS="${CPPFLAGS/-Os/} -fno-omit-frame-pointer -fno-strict-aliasing"
# Needed for coroutine stuff
export LIBS="-lucontext"
@@ -142,6 +148,12 @@ build() {
# ruby saves path to install. we want use $PATH
export INSTALL=install
+ case "$CARCH" in
+ # Ruby segfaults when built with default (-O3).
+ # See https://bugs.ruby-lang.org/issues/20099.
+ s390x) export optflags="-O2";;
+ esac
+
# the configure script does not detect isnan/isinf as macros
export ac_cv_func_isnan=yes
export ac_cv_func_isinf=yes
@@ -239,9 +251,9 @@ full() {
}
sha512sums="
-9155d1150398eaea7c9954af61ecf8dfdb885cfcf63a67bbcf6c92e282cd3ccac0ff9234d039286a9623297b65197441438c37f707e31d270ce2fe11e8f38a44 ruby-3.1.2.tar.gz
+26074009b501fc793d71a74e419f34a6033c9353433919ca74ba2d24a3de432dbb11fd92c2bc285f0e4d951a6d6c74bf5b69a2ab36200c8c26e871746d6e0fc6 ruby-3.3.0.tar.gz
16fc1f35aee327d1ecac420b091beaa53c675e0504d5a6932004f17ca68a2c38f57b053b0a3903696f2232c5add160d363e3972a962f7f7bcb52e4e998c7315d test_insns-lower-recursion-depth.patch
-c1bc0c98fa90cba5d626a836de5e9504770bd56e5772eed2c3eb8337761a55fa71225d14ed7c3ff4191866a386174d151e95fa05a19b10165a179bbc736176e9 fix-get_main_stack.patch
-facf2adaf25e1781cbe280b42430ca0cc61e7cdacbfcf1e1c7df1b4acb4bc70c444d79b95d6d0596a94dfa67d51ced342b6dc2ff20ac28977ca715154cc53fa5 dont-install-bundled-gems.patch
+42cd45c1db089a1ae57834684479a502e357ddba82ead5fa34e64c13971e7ab7ad2919ddd60a104a817864dd3e2e35bdbedb679210eb41d82cab36a0687e43d4 fix-get_main_stack.patch
+a77da5e5eb7d60caf3f1cabb81e09b88dc505ddd746e34efd1908c0096621156d81cc65095b846ba9bdb66028891aefce883a43ddec6b56b5beb4aac5e4ee33f dont-install-bundled-gems.patch
000530316af1fca007fe8cee694b59e2e801674bcc1a2ebea95e67745d4afc0ce66c902fdbc88ee847a4fbf55115b183cd803cbf7c98ef685938efb3e2b7c991 fix-riscv64-build.patch
"
diff --git a/main/ruby/dont-install-bundled-gems.patch b/main/ruby/dont-install-bundled-gems.patch
index 2a913b99802..b125fa0629e 100644
--- a/main/ruby/dont-install-bundled-gems.patch
+++ b/main/ruby/dont-install-bundled-gems.patch
@@ -2,16 +2,16 @@ Don't install bundled gems - we package them separately.
--- a/tool/rbinstall.rb
+++ b/tool/rbinstall.rb
-@@ -1003,6 +1003,7 @@
+@@ -990,6 +990,7 @@
end
end
+=begin XXX-Patched
install?(:ext, :comm, :gem, :'bundled-gems') do
- if CONFIG['CROSS_COMPILING'] == 'yes'
- # The following hacky steps set "$ruby = BASERUBY" in tool/fake.rb
-@@ -1104,6 +1105,7 @@
- puts "skip installing bundled gems because of lacking zlib"
+ gem_dir = Gem.default_dir
+ install_dir = with_destdir(gem_dir)
+@@ -1057,6 +1058,7 @@
+ puts "skipped bundled gems: #{gems.join(' ')}"
end
end
+=end
diff --git a/main/ruby/fix-get_main_stack.patch b/main/ruby/fix-get_main_stack.patch
index b9ba371a428..864a3144b2a 100644
--- a/main/ruby/fix-get_main_stack.patch
+++ b/main/ruby/fix-get_main_stack.patch
@@ -1,8 +1,6 @@
-diff --git a/thread_pthread.c b/thread_pthread.c
-index 951885ffa0..cf90321d1d 100644
--- a/thread_pthread.c
+++ b/thread_pthread.c
-@@ -738,9 +738,6 @@ hpux_attr_getstackaddr(const pthread_attr_t *attr, void **addr)
+@@ -858,9 +858,6 @@
# define MAINSTACKADDR_AVAILABLE 0
# endif
#endif
@@ -12,7 +10,7 @@ index 951885ffa0..cf90321d1d 100644
#ifdef STACKADDR_AVAILABLE
/*
-@@ -822,6 +819,55 @@ get_stack(void **addr, size_t *size)
+@@ -942,6 +939,55 @@
return 0;
#undef CHECK_ERR
}
diff --git a/main/run-parts/APKBUILD b/main/run-parts/APKBUILD
index 11a64ef4a09..b19dbd04745 100644
--- a/main/run-parts/APKBUILD
+++ b/main/run-parts/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=run-parts
pkgver=4.11.2
-pkgrel=0
+pkgrel=2
pkgdesc="run-parts from the debianutils package"
url="https://packages.qa.debian.org/d/debianutils.html"
arch="all"
@@ -9,6 +9,7 @@ license="GPL-2.0-or-later"
subpackages="$pkgname-doc"
source="https://deb.debian.org/debian/pool/main/d/debianutils/debianutils_$pkgver.tar.xz"
builddir="$srcdir"/debianutils
+options="!check"
build() {
./configure \
diff --git a/main/rust-bindgen/APKBUILD b/main/rust-bindgen/APKBUILD
new file mode 100644
index 00000000000..3605fa58a52
--- /dev/null
+++ b/main/rust-bindgen/APKBUILD
@@ -0,0 +1,30 @@
+# Contributor: Milan P. Stanić <mps@arvanta.net>
+# Maintainer: Milan P. Stanić <mps@arvanta.net>
+
+pkgname=rust-bindgen
+pkgver=0.66.1
+pkgrel=0
+pkgdesc="automatically generates Rust FFI bindings to C (and some C++) libraries"
+url="https://github.com/rust-lang/rust-bindgen"
+makedepends="cargo clang cargo-auditable"
+arch="all"
+license="BSD-3-Clause"
+options="net !check" # no test
+source="$pkgname-$pkgver.tar.gz::https://github.com/rust-lang/rust-bindgen/archive/v$pkgver.tar.gz"
+
+prepare() {
+ default_prepare
+ cargo fetch --target="$CTARGET" --locked
+}
+
+build() {
+ cargo auditable build --release --frozen
+}
+
+package() {
+ install -Dm755 target/release/bindgen "$pkgdir"/usr/bin/bindgen
+}
+
+sha512sums="
+71e1ec6ce4933a7a5451aa5baa47f885b9ec6b692bf2a2b3d8c1f2cce2c3cd3d941f8b8e4dfd7c776e954a9d3824b67c435897521f726553b63a2f1cb81bba99 rust-bindgen-0.66.1.tar.gz
+"
diff --git a/main/rust/0001-Add-new-Tier-3-target-loongarch64-unknown-linux-musl.patch b/main/rust/0001-Add-new-Tier-3-target-loongarch64-unknown-linux-musl.patch
new file mode 100644
index 00000000000..dc119b781df
--- /dev/null
+++ b/main/rust/0001-Add-new-Tier-3-target-loongarch64-unknown-linux-musl.patch
@@ -0,0 +1,64 @@
+From 9499baeeabc8f4494460770714a9805ff8aeaaa8 Mon Sep 17 00:00:00 2001
+From: WANG Rui <wangrui@loongson.cn>
+Date: Mon, 5 Jun 2023 19:51:24 +0800
+Subject: [PATCH 01/12] Add new Tier-3 target: `loongarch64-unknown-linux-musl`
+
+MCP: https://github.com/rust-lang/compiler-team/issues/518
+---
+ compiler/rustc_target/src/spec/mod.rs | 1 +
+ .../targets/loongarch64_unknown_linux_musl.rs | 18 ++++++++++++++++++
+ src/doc/rustc/src/platform-support.md | 1 +
+ 3 files changed, 20 insertions(+)
+ create mode 100644 compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_musl.rs
+
+diff --git a/compiler/rustc_target/src/spec/mod.rs b/compiler/rustc_target/src/spec/mod.rs
+index 6c698c5b0..b3ee709c2 100644
+--- a/compiler/rustc_target/src/spec/mod.rs
++++ b/compiler/rustc_target/src/spec/mod.rs
+@@ -1402,6 +1402,7 @@ supported_targets! {
+ ("i686-unknown-linux-gnu", i686_unknown_linux_gnu),
+ ("i586-unknown-linux-gnu", i586_unknown_linux_gnu),
+ ("loongarch64-unknown-linux-gnu", loongarch64_unknown_linux_gnu),
++ ("loongarch64-unknown-linux-musl", loongarch64_unknown_linux_musl),
+ ("m68k-unknown-linux-gnu", m68k_unknown_linux_gnu),
+ ("csky-unknown-linux-gnuabiv2", csky_unknown_linux_gnuabiv2),
+ ("csky-unknown-linux-gnuabiv2hf", csky_unknown_linux_gnuabiv2hf),
+diff --git a/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_musl.rs b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_musl.rs
+new file mode 100644
+index 000000000..01a003ce8
+--- /dev/null
++++ b/compiler/rustc_target/src/spec/targets/loongarch64_unknown_linux_musl.rs
+@@ -0,0 +1,18 @@
++use crate::spec::{base, Target, TargetOptions};
++
++pub fn target() -> Target {
++ Target {
++ llvm_target: "loongarch64-unknown-linux-musl".into(),
++ pointer_width: 64,
++ data_layout: "e-m:e-p:64:64-i64:64-i128:128-n64-S128".into(),
++ arch: "loongarch64".into(),
++ options: TargetOptions {
++ cpu: "generic".into(),
++ features: "+f,+d".into(),
++ llvm_abiname: "lp64d".into(),
++ max_atomic_width: Some(64),
++ crt_static_default: false,
++ ..base::linux_musl::opts()
++ },
++ }
++}
+diff --git a/src/doc/rustc/src/platform-support.md b/src/doc/rustc/src/platform-support.md
+index f648a60b6..bc2427d6a 100644
+--- a/src/doc/rustc/src/platform-support.md
++++ b/src/doc/rustc/src/platform-support.md
+@@ -167,6 +167,7 @@ target | std | notes
+ `i686-unknown-freebsd` | ✓ | 32-bit FreeBSD [^x86_32-floats-return-ABI]
+ `i686-unknown-linux-musl` | ✓ | 32-bit Linux with MUSL [^x86_32-floats-return-ABI]
+ [`i686-unknown-uefi`](platform-support/unknown-uefi.md) | * | 32-bit UEFI
++[`loongarch64-unknown-linux-musl`](platform-support/loongarch-linux.md) | ? | | LoongArch64 Linux (LP64D ABI)
+ [`loongarch64-unknown-none`](platform-support/loongarch-none.md) | * | | LoongArch64 Bare-metal (LP64D ABI)
+ [`loongarch64-unknown-none-softfloat`](platform-support/loongarch-none.md) | * | | LoongArch64 Bare-metal (LP64S ABI)
+ [`nvptx64-nvidia-cuda`](platform-support/nvptx64-nvidia-cuda.md) | * | --emit=asm generates PTX code that [runs on NVIDIA GPUs]
+--
+2.44.0
+
diff --git a/main/rust/0002-tests-Add-loongarch64-unknown-linux-musl-target.patch b/main/rust/0002-tests-Add-loongarch64-unknown-linux-musl-target.patch
new file mode 100644
index 00000000000..1b2e31fd4f1
--- /dev/null
+++ b/main/rust/0002-tests-Add-loongarch64-unknown-linux-musl-target.patch
@@ -0,0 +1,26 @@
+From 440278d4971c82b366077d61f682105e197f9680 Mon Sep 17 00:00:00 2001
+From: WANG Rui <wangrui@loongson.cn>
+Date: Fri, 1 Mar 2024 11:43:27 +0800
+Subject: [PATCH 02/12] tests: Add loongarch64-unknown-linux-musl target
+
+---
+ tests/assembly/targets/targets-elf.rs | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/tests/assembly/targets/targets-elf.rs b/tests/assembly/targets/targets-elf.rs
+index 41f5df0fb..bf89790a5 100644
+--- a/tests/assembly/targets/targets-elf.rs
++++ b/tests/assembly/targets/targets-elf.rs
+@@ -231,6 +231,9 @@
+ // revisions: loongarch64_unknown_linux_gnu
+ // [loongarch64_unknown_linux_gnu] compile-flags: --target loongarch64-unknown-linux-gnu
+ // [loongarch64_unknown_linux_gnu] needs-llvm-components: loongarch
++// revisions: loongarch64_unknown_linux_musl
++// [loongarch64_unknown_linux_musl] compile-flags: --target loongarch64-unknown-linux-musl
++// [loongarch64_unknown_linux_musl] needs-llvm-components: loongarch
+ // revisions: loongarch64_unknown_none
+ // [loongarch64_unknown_none] compile-flags: --target loongarch64-unknown-none
+ // [loongarch64_unknown_none] needs-llvm-components: loongarch
+--
+2.44.0
+
diff --git a/main/rust/0005-configure.py-add-flag-for-loongarch64-musl-root.patch b/main/rust/0005-configure.py-add-flag-for-loongarch64-musl-root.patch
new file mode 100644
index 00000000000..9a6bccbe9d4
--- /dev/null
+++ b/main/rust/0005-configure.py-add-flag-for-loongarch64-musl-root.patch
@@ -0,0 +1,25 @@
+From ac3ab633b1d4ca35e49c7dfe8dbe5a6be7cbc303 Mon Sep 17 00:00:00 2001
+From: WANG Rui <wangrui@loongson.cn>
+Date: Mon, 11 Mar 2024 11:28:34 +0800
+Subject: [PATCH 05/12] configure.py: add flag for loongarch64 musl-root
+
+---
+ src/bootstrap/configure.py | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/src/bootstrap/configure.py b/src/bootstrap/configure.py
+index d34c19a47..cba7f98e8 100755
+--- a/src/bootstrap/configure.py
++++ b/src/bootstrap/configure.py
+@@ -130,6 +130,8 @@ v("musl-root-riscv32gc", "target.riscv32gc-unknown-linux-musl.musl-root",
+ "riscv32gc-unknown-linux-musl install directory")
+ v("musl-root-riscv64gc", "target.riscv64gc-unknown-linux-musl.musl-root",
+ "riscv64gc-unknown-linux-musl install directory")
++v("musl-root-loongarch64", "target.loongarch64-unknown-linux-musl.musl-root",
++ "loongarch64-unknown-linux-musl install directory")
+ v("qemu-armhf-rootfs", "target.arm-unknown-linux-gnueabihf.qemu-rootfs",
+ "rootfs in qemu testing, you probably don't want to use this")
+ v("qemu-aarch64-rootfs", "target.aarch64-unknown-linux-gnu.qemu-rootfs",
+--
+2.44.0
+
diff --git a/main/rust/0006-ci-Add-support-for-dist-loongarch64-musl.patch b/main/rust/0006-ci-Add-support-for-dist-loongarch64-musl.patch
new file mode 100644
index 00000000000..46cd5c22913
--- /dev/null
+++ b/main/rust/0006-ci-Add-support-for-dist-loongarch64-musl.patch
@@ -0,0 +1,121 @@
+From fb5f17d6958e86af31e719482001b13bec3b29ce Mon Sep 17 00:00:00 2001
+From: WANG Rui <wangrui@loongson.cn>
+Date: Tue, 5 Mar 2024 16:04:02 +0800
+Subject: [PATCH 06/12] ci: Add support for dist-loongarch64-musl
+
+---
+ src/ci/docker/README.md | 16 +++++++++
+ .../dist-loongarch64-musl/Dockerfile | 36 +++++++++++++++++++
+ .../loongarch64-unknown-linux-musl.defconfig | 15 ++++++++
+ src/ci/github-actions/ci.yml | 3 ++
+ 4 files changed, 70 insertions(+)
+ create mode 100644 src/ci/docker/host-x86_64/dist-loongarch64-musl/Dockerfile
+ create mode 100644 src/ci/docker/host-x86_64/dist-loongarch64-musl/loongarch64-unknown-linux-musl.defconfig
+
+diff --git a/src/ci/docker/README.md b/src/ci/docker/README.md
+index 2e6456837..c53cf28c0 100644
+--- a/src/ci/docker/README.md
++++ b/src/ci/docker/README.md
+@@ -274,6 +274,22 @@ For targets: `loongarch64-unknown-linux-gnu`
+ - C compiler > gcc version = 13.2.0
+ - C compiler > C++ = ENABLE -- to cross compile LLVM
+
++### `loongarch64-linux-musl.defconfig`
++
++For targets: `loongarch64-unknown-linux-musl`
++
++- Path and misc options > Prefix directory = /x-tools/${CT\_TARGET}
++- Path and misc options > Use a mirror = ENABLE
++- Path and misc options > Base URL = https://ci-mirrors.rust-lang.org/rustc
++- Target options > Target Architecture = loongarch
++- Target options > Bitness = 64-bit
++- Operating System > Target OS = linux
++- Operating System > Linux kernel version = 5.19.16
++- Binary utilities > Version of binutils = 2.41
++- C-library > musl version = 1.2.5
++- C compiler > gcc version = 13.2.0
++- C compiler > C++ = ENABLE -- to cross compile LLVM
++
+ ### `mips-linux-gnu.defconfig`
+
+ For targets: `mips-unknown-linux-gnu`
+diff --git a/src/ci/docker/host-x86_64/dist-loongarch64-musl/Dockerfile b/src/ci/docker/host-x86_64/dist-loongarch64-musl/Dockerfile
+new file mode 100644
+index 000000000..201e83b2c
+--- /dev/null
++++ b/src/ci/docker/host-x86_64/dist-loongarch64-musl/Dockerfile
+@@ -0,0 +1,36 @@
++FROM ubuntu:22.04
++
++COPY scripts/cross-apt-packages.sh /scripts/
++RUN sh /scripts/cross-apt-packages.sh
++
++COPY scripts/crosstool-ng.sh /scripts/
++RUN sh /scripts/crosstool-ng.sh
++
++COPY scripts/rustbuild-setup.sh /scripts/
++RUN sh /scripts/rustbuild-setup.sh
++WORKDIR /tmp
++
++COPY scripts/crosstool-ng-build.sh /scripts/
++COPY host-x86_64/dist-loongarch64-linux/loongarch64-unknown-linux-musl.defconfig /tmp/crosstool.defconfig
++RUN /scripts/crosstool-ng-build.sh
++
++COPY scripts/sccache.sh /scripts/
++RUN sh /scripts/sccache.sh
++
++ENV PATH=$PATH:/x-tools/loongarch64-unknown-linux-musl/bin
++
++ENV CC_loongarch64_unknown_linux_musl=loongarch64-unknown-linux-musl-gcc \
++ AR_loongarch64_unknown_linux_musl=loongarch64-unknown-linux-musl-ar \
++ CXX_loongarch64_unknown_linux_musl=loongarch64-unknown-linux-musl-g++
++
++ENV HOSTS=loongarch64-unknown-linux-musl
++
++ENV RUST_CONFIGURE_ARGS \
++ --enable-extended \
++ --enable-lld \
++ --disable-docs \
++ --set target.loongarch64-unknown-linux-musl.crt-static=false \
++ --set target.loongarch64-unknown-linux-musl.musl-root=/x-tools/loongarch64-unknown-linux-musl/loongarch64-unknown-linux-musl/sysroot/usr \
++ --build $HOSTS
++
++ENV SCRIPT python3 ../x.py dist --host $HOSTS --target $HOSTS
+diff --git a/src/ci/docker/host-x86_64/dist-loongarch64-musl/loongarch64-unknown-linux-musl.defconfig b/src/ci/docker/host-x86_64/dist-loongarch64-musl/loongarch64-unknown-linux-musl.defconfig
+new file mode 100644
+index 000000000..3ab676ed9
+--- /dev/null
++++ b/src/ci/docker/host-x86_64/dist-loongarch64-musl/loongarch64-unknown-linux-musl.defconfig
+@@ -0,0 +1,15 @@
++CT_CONFIG_VERSION="4"
++CT_EXPERIMENTAL=y
++CT_PREFIX_DIR="/x-tools/${CT_TARGET}"
++CT_USE_MIRROR=y
++CT_MIRROR_BASE_URL="https://ci-mirrors.rust-lang.org/rustc"
++CT_ARCH_LOONGARCH=y
++# CT_DEMULTILIB is not set
++CT_ARCH_USE_MMU=y
++CT_ARCH_ARCH="loongarch64"
++CT_KERNEL_LINUX=y
++CT_LINUX_V_5_19=y
++CT_LIBC_MUSL=y
++CT_CC_GCC_ENABLE_DEFAULT_PIE=y
++CT_CC_LANG_CXX=y
++CT_GETTEXT_NEEDED=y
+diff --git a/src/ci/github-actions/ci.yml b/src/ci/github-actions/ci.yml
+index f2effcbd8..81fc89ab8 100644
+--- a/src/ci/github-actions/ci.yml
++++ b/src/ci/github-actions/ci.yml
+@@ -392,6 +392,9 @@ jobs:
+ - name: dist-loongarch64-linux
+ <<: *job-linux-8c
+
++ - name: dist-loongarch64-musl
++ <<: *job-linux-8c
++
+ - name: dist-powerpc-linux
+ <<: *job-linux-8c
+
+--
+2.44.0
+
diff --git a/main/rust/0007-Promote-loongarch64-unknown-linux-musl-to-Tier-2-wit.patch b/main/rust/0007-Promote-loongarch64-unknown-linux-musl-to-Tier-2-wit.patch
new file mode 100644
index 00000000000..f42bb2ef2ae
--- /dev/null
+++ b/main/rust/0007-Promote-loongarch64-unknown-linux-musl-to-Tier-2-wit.patch
@@ -0,0 +1,47 @@
+From 713ed86a10cc2a95937d7165c05603ab12984f87 Mon Sep 17 00:00:00 2001
+From: WANG Rui <wangrui@loongson.cn>
+Date: Mon, 13 Nov 2023 19:45:27 +0800
+Subject: [PATCH 07/12] Promote loongarch64-unknown-linux-musl to Tier 2 with
+ host tools
+
+MCP: https://github.com/rust-lang/compiler-team/issues/518
+---
+ src/bootstrap/src/core/build_steps/llvm.rs | 1 +
+ src/tools/build-manifest/src/main.rs | 2 ++
+ 2 files changed, 3 insertions(+), 0 deletion(-)
+
+diff --git a/src/bootstrap/src/core/build_steps/llvm.rs b/src/bootstrap/src/core/build_steps/llvm.rs
+index 4b2d3e9ab..1409acc3b 100644
+--- a/src/bootstrap/src/core/build_steps/llvm.rs
++++ b/src/bootstrap/src/core/build_steps/llvm.rs
+@@ -201,6 +201,7 @@ pub(crate) fn is_ci_llvm_available(config: &Config, asserts: bool) -> bool {
+ ("arm-unknown-linux-gnueabihf", false),
+ ("armv7-unknown-linux-gnueabihf", false),
+ ("loongarch64-unknown-linux-gnu", false),
++ ("loongarch64-unknown-linux-musl", false),
+ ("mips-unknown-linux-gnu", false),
+ ("mips64-unknown-linux-gnuabi64", false),
+ ("mips64el-unknown-linux-gnuabi64", false),
+diff --git a/src/tools/build-manifest/src/main.rs b/src/tools/build-manifest/src/main.rs
+index 1ef8cf7de..8fb36c3c7 100644
+--- a/src/tools/build-manifest/src/main.rs
++++ b/src/tools/build-manifest/src/main.rs
+@@ -25,6 +25,7 @@ static HOSTS: &[&str] = &[
+ "i686-pc-windows-msvc",
+ "i686-unknown-linux-gnu",
+ "loongarch64-unknown-linux-gnu",
++ "loongarch64-unknown-linux-musl",
+ "mips-unknown-linux-gnu",
+ "mips64-unknown-linux-gnuabi64",
+ "mips64el-unknown-linux-gnuabi64",
+@@ -99,6 +100,7 @@ static TARGETS: &[&str] = &[
+ "i686-unknown-linux-musl",
+ "i686-unknown-uefi",
+ "loongarch64-unknown-linux-gnu",
++ "loongarch64-unknown-linux-musl",
+ "loongarch64-unknown-none",
+ "loongarch64-unknown-none-softfloat",
+ "m68k-unknown-linux-gnu",
+--
+2.44.0
+
diff --git a/main/rust/0008-vendor-libc-Add-support-for-loongarch64-linux-musl.patch b/main/rust/0008-vendor-libc-Add-support-for-loongarch64-linux-musl.patch
new file mode 100644
index 00000000000..6d541d1843f
--- /dev/null
+++ b/main/rust/0008-vendor-libc-Add-support-for-loongarch64-linux-musl.patch
@@ -0,0 +1,760 @@
+From 2e312d2600215e12e88ab9827f7b7c92abaa6606 Mon Sep 17 00:00:00 2001
+From: WANG Rui <wangrui@loongson.cn>
+Date: Tue, 26 Mar 2024 17:37:01 +0800
+Subject: [PATCH 08/12] vendor: libc: Add support for loongarch64-linux-musl
+
+---
+ .../linux/musl/b64/loongarch64/align.rs | 40 ++
+ .../linux/musl/b64/loongarch64/mod.rs | 663 ++++++++++++++++++
+ .../src/unix/linux_like/linux/musl/b64/mod.rs | 3 +
+ .../src/unix/linux_like/linux/musl/mod.rs | 3 +-
+ 4 files changed, 708 insertions(+), 1 deletions(-)
+ create mode 100644 vendor/libc/src/unix/linux_like/linux/musl/b64/loongarch64/align.rs
+ create mode 100644 vendor/libc/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs
+
+diff --git a/vendor/libc/src/unix/linux_like/linux/musl/b64/loongarch64/align.rs b/vendor/libc/src/unix/linux_like/linux/musl/b64/loongarch64/align.rs
+new file mode 100644
+index 000000000..dc191f51f
+--- /dev/null
++++ b/vendor/libc/src/unix/linux_like/linux/musl/b64/loongarch64/align.rs
+@@ -0,0 +1,40 @@
++s_no_extra_traits! {
++ #[allow(missing_debug_implementations)]
++ #[repr(align(16))]
++ pub struct max_align_t {
++ priv_: [f64; 4]
++ }
++}
++
++s! {
++ pub struct ucontext_t {
++ pub uc_flags: ::c_ulong,
++ pub uc_link: *mut ucontext_t,
++ pub uc_stack: ::stack_t,
++ pub uc_sigmask: ::sigset_t,
++ pub uc_mcontext: mcontext_t,
++ }
++
++ #[repr(align(16))]
++ pub struct mcontext_t {
++ pub __pc: ::c_ulonglong,
++ pub __gregs: [::c_ulonglong; 32],
++ pub __flags: ::c_uint,
++ pub __extcontext: [::c_ulonglong; 0],
++ }
++
++ #[repr(align(8))]
++ pub struct clone_args {
++ pub flags: ::c_ulonglong,
++ pub pidfd: ::c_ulonglong,
++ pub child_tid: ::c_ulonglong,
++ pub parent_tid: ::c_ulonglong,
++ pub exit_signal: ::c_ulonglong,
++ pub stack: ::c_ulonglong,
++ pub stack_size: ::c_ulonglong,
++ pub tls: ::c_ulonglong,
++ pub set_tid: ::c_ulonglong,
++ pub set_tid_size: ::c_ulonglong,
++ pub cgroup: ::c_ulonglong,
++ }
++}
+diff --git a/vendor/libc/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/vendor/libc/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs
+new file mode 100644
+index 000000000..dffbc2341
+--- /dev/null
++++ b/vendor/libc/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs
+@@ -0,0 +1,663 @@
++//! LoongArch-specific definitions for 64-bit linux-like values
++
++pub type c_char = i8;
++pub type wchar_t = ::c_int;
++
++pub type nlink_t = ::c_uint;
++pub type blksize_t = ::c_int;
++pub type fsblkcnt64_t = ::c_ulong;
++pub type fsfilcnt64_t = ::c_ulong;
++pub type __u64 = ::c_ulonglong;
++pub type __s64 = ::c_longlong;
++
++s! {
++ pub struct pthread_attr_t {
++ __size: [::c_ulong; 7],
++ }
++
++ pub struct stat {
++ pub st_dev: ::dev_t,
++ pub st_ino: ::ino_t,
++ pub st_mode: ::mode_t,
++ pub st_nlink: ::nlink_t,
++ pub st_uid: ::uid_t,
++ pub st_gid: ::gid_t,
++ pub st_rdev: ::dev_t,
++ __pad1: ::dev_t,
++ pub st_size: ::off_t,
++ pub st_blksize: ::blksize_t,
++ __pad2: ::c_int,
++ pub st_blocks: ::blkcnt_t,
++ pub st_atime: ::time_t,
++ pub st_atime_nsec: ::c_long,
++ pub st_mtime: ::time_t,
++ pub st_mtime_nsec: ::c_long,
++ pub st_ctime: ::time_t,
++ pub st_ctime_nsec: ::c_long,
++ __unused: [::c_int; 2usize],
++ }
++
++ pub struct stat64 {
++ pub st_dev: ::dev_t,
++ pub st_ino: ::ino64_t,
++ pub st_mode: ::mode_t,
++ pub st_nlink: ::nlink_t,
++ pub st_uid: ::uid_t,
++ pub st_gid: ::gid_t,
++ pub st_rdev: ::dev_t,
++ pub __pad1: ::dev_t,
++ pub st_size: ::off64_t,
++ pub st_blksize: ::blksize_t,
++ pub __pad2: ::c_int,
++ pub st_blocks: ::blkcnt_t,
++ pub st_atime: ::time_t,
++ pub st_atime_nsec: ::c_long,
++ pub st_mtime: ::time_t,
++ pub st_mtime_nsec: ::c_long,
++ pub st_ctime: ::time_t,
++ pub st_ctime_nsec: ::c_long,
++ __unused: [::c_int; 2],
++ }
++
++ pub struct statfs {
++ pub f_type: ::c_long,
++ pub f_bsize: ::c_long,
++ pub f_blocks: ::fsblkcnt_t,
++ pub f_bfree: ::fsblkcnt_t,
++ pub f_bavail: ::fsblkcnt_t,
++ pub f_files: ::fsfilcnt_t,
++ pub f_ffree: ::fsfilcnt_t,
++ pub f_fsid: ::fsid_t,
++ pub f_namelen: ::c_long,
++ pub f_frsize: ::c_long,
++ pub f_flags: ::c_long,
++ pub f_spare: [::c_long; 4],
++ }
++
++ pub struct statfs64 {
++ pub f_type: ::c_long,
++ pub f_bsize: ::c_long,
++ pub f_blocks: ::fsblkcnt64_t,
++ pub f_bfree: ::fsblkcnt64_t,
++ pub f_bavail: ::fsblkcnt64_t,
++ pub f_files: ::fsfilcnt64_t,
++ pub f_ffree: ::fsfilcnt64_t,
++ pub f_fsid: ::fsid_t,
++ pub f_namelen: ::c_long,
++ pub f_frsize: ::c_long,
++ pub f_flags: ::c_long,
++ pub f_spare: [::c_long; 4],
++ }
++
++ pub struct ipc_perm {
++ pub __key: ::key_t,
++ pub uid: ::uid_t,
++ pub gid: ::gid_t,
++ pub cuid: ::uid_t,
++ pub cgid: ::gid_t,
++ pub mode: ::c_uint,
++ pub __seq: ::c_ushort,
++ __pad2: ::c_ushort,
++ __unused1: ::c_ulong,
++ __unused2: ::c_ulong,
++ }
++
++ pub struct user_regs_struct {
++ pub regs: [u64; 32],
++ pub orig_a0: u64,
++ pub csr_era: u64,
++ pub csr_badv: u64,
++ pub reserved: [u64; 10],
++
++ }
++
++ pub struct user_fp_struct {
++ pub fpr: [u64; 32],
++ pub fcc: u64,
++ pub fcsr: u32,
++ }
++}
++
++pub const SYS_io_setup: ::c_long = 0;
++pub const SYS_io_destroy: ::c_long = 1;
++pub const SYS_io_submit: ::c_long = 2;
++pub const SYS_io_cancel: ::c_long = 3;
++pub const SYS_io_getevents: ::c_long = 4;
++pub const SYS_setxattr: ::c_long = 5;
++pub const SYS_lsetxattr: ::c_long = 6;
++pub const SYS_fsetxattr: ::c_long = 7;
++pub const SYS_getxattr: ::c_long = 8;
++pub const SYS_lgetxattr: ::c_long = 9;
++pub const SYS_fgetxattr: ::c_long = 10;
++pub const SYS_listxattr: ::c_long = 11;
++pub const SYS_llistxattr: ::c_long = 12;
++pub const SYS_flistxattr: ::c_long = 13;
++pub const SYS_removexattr: ::c_long = 14;
++pub const SYS_lremovexattr: ::c_long = 15;
++pub const SYS_fremovexattr: ::c_long = 16;
++pub const SYS_getcwd: ::c_long = 17;
++pub const SYS_lookup_dcookie: ::c_long = 18;
++pub const SYS_eventfd2: ::c_long = 19;
++pub const SYS_epoll_create1: ::c_long = 20;
++pub const SYS_epoll_ctl: ::c_long = 21;
++pub const SYS_epoll_pwait: ::c_long = 22;
++pub const SYS_dup: ::c_long = 23;
++pub const SYS_dup3: ::c_long = 24;
++pub const SYS_fcntl: ::c_long = 25;
++pub const SYS_inotify_init1: ::c_long = 26;
++pub const SYS_inotify_add_watch: ::c_long = 27;
++pub const SYS_inotify_rm_watch: ::c_long = 28;
++pub const SYS_ioctl: ::c_long = 29;
++pub const SYS_ioprio_set: ::c_long = 30;
++pub const SYS_ioprio_get: ::c_long = 31;
++pub const SYS_flock: ::c_long = 32;
++pub const SYS_mknodat: ::c_long = 33;
++pub const SYS_mkdirat: ::c_long = 34;
++pub const SYS_unlinkat: ::c_long = 35;
++pub const SYS_symlinkat: ::c_long = 36;
++pub const SYS_linkat: ::c_long = 37;
++pub const SYS_umount2: ::c_long = 39;
++pub const SYS_mount: ::c_long = 40;
++pub const SYS_pivot_root: ::c_long = 41;
++pub const SYS_nfsservctl: ::c_long = 42;
++pub const SYS_statfs: ::c_long = 43;
++pub const SYS_fstatfs: ::c_long = 44;
++pub const SYS_truncate: ::c_long = 45;
++pub const SYS_ftruncate: ::c_long = 46;
++pub const SYS_fallocate: ::c_long = 47;
++pub const SYS_faccessat: ::c_long = 48;
++pub const SYS_chdir: ::c_long = 49;
++pub const SYS_fchdir: ::c_long = 50;
++pub const SYS_chroot: ::c_long = 51;
++pub const SYS_fchmod: ::c_long = 52;
++pub const SYS_fchmodat: ::c_long = 53;
++pub const SYS_fchownat: ::c_long = 54;
++pub const SYS_fchown: ::c_long = 55;
++pub const SYS_openat: ::c_long = 56;
++pub const SYS_close: ::c_long = 57;
++pub const SYS_vhangup: ::c_long = 58;
++pub const SYS_pipe2: ::c_long = 59;
++pub const SYS_quotactl: ::c_long = 60;
++pub const SYS_getdents64: ::c_long = 61;
++pub const SYS_lseek: ::c_long = 62;
++pub const SYS_read: ::c_long = 63;
++pub const SYS_write: ::c_long = 64;
++pub const SYS_readv: ::c_long = 65;
++pub const SYS_writev: ::c_long = 66;
++pub const SYS_pread64: ::c_long = 67;
++pub const SYS_pwrite64: ::c_long = 68;
++pub const SYS_preadv: ::c_long = 69;
++pub const SYS_pwritev: ::c_long = 70;
++pub const SYS_sendfile: ::c_long = 71;
++pub const SYS_pselect6: ::c_long = 72;
++pub const SYS_ppoll: ::c_long = 73;
++pub const SYS_signalfd4: ::c_long = 74;
++pub const SYS_vmsplice: ::c_long = 75;
++pub const SYS_splice: ::c_long = 76;
++pub const SYS_tee: ::c_long = 77;
++pub const SYS_readlinkat: ::c_long = 78;
++pub const SYS_sync: ::c_long = 81;
++pub const SYS_fsync: ::c_long = 82;
++pub const SYS_fdatasync: ::c_long = 83;
++pub const SYS_sync_file_range: ::c_long = 84;
++pub const SYS_timerfd_create: ::c_long = 85;
++pub const SYS_timerfd_settime: ::c_long = 86;
++pub const SYS_timerfd_gettime: ::c_long = 87;
++pub const SYS_utimensat: ::c_long = 88;
++pub const SYS_acct: ::c_long = 89;
++pub const SYS_capget: ::c_long = 90;
++pub const SYS_capset: ::c_long = 91;
++pub const SYS_personality: ::c_long = 92;
++pub const SYS_exit: ::c_long = 93;
++pub const SYS_exit_group: ::c_long = 94;
++pub const SYS_waitid: ::c_long = 95;
++pub const SYS_set_tid_address: ::c_long = 96;
++pub const SYS_unshare: ::c_long = 97;
++pub const SYS_futex: ::c_long = 98;
++pub const SYS_set_robust_list: ::c_long = 99;
++pub const SYS_get_robust_list: ::c_long = 100;
++pub const SYS_nanosleep: ::c_long = 101;
++pub const SYS_getitimer: ::c_long = 102;
++pub const SYS_setitimer: ::c_long = 103;
++pub const SYS_kexec_load: ::c_long = 104;
++pub const SYS_init_module: ::c_long = 105;
++pub const SYS_delete_module: ::c_long = 106;
++pub const SYS_timer_create: ::c_long = 107;
++pub const SYS_timer_gettime: ::c_long = 108;
++pub const SYS_timer_getoverrun: ::c_long = 109;
++pub const SYS_timer_settime: ::c_long = 110;
++pub const SYS_timer_delete: ::c_long = 111;
++pub const SYS_clock_settime: ::c_long = 112;
++pub const SYS_clock_gettime: ::c_long = 113;
++pub const SYS_clock_getres: ::c_long = 114;
++pub const SYS_clock_nanosleep: ::c_long = 115;
++pub const SYS_syslog: ::c_long = 116;
++pub const SYS_ptrace: ::c_long = 117;
++pub const SYS_sched_setparam: ::c_long = 118;
++pub const SYS_sched_setscheduler: ::c_long = 119;
++pub const SYS_sched_getscheduler: ::c_long = 120;
++pub const SYS_sched_getparam: ::c_long = 121;
++pub const SYS_sched_setaffinity: ::c_long = 122;
++pub const SYS_sched_getaffinity: ::c_long = 123;
++pub const SYS_sched_yield: ::c_long = 124;
++pub const SYS_sched_get_priority_max: ::c_long = 125;
++pub const SYS_sched_get_priority_min: ::c_long = 126;
++pub const SYS_sched_rr_get_interval: ::c_long = 127;
++pub const SYS_restart_syscall: ::c_long = 128;
++pub const SYS_kill: ::c_long = 129;
++pub const SYS_tkill: ::c_long = 130;
++pub const SYS_tgkill: ::c_long = 131;
++pub const SYS_sigaltstack: ::c_long = 132;
++pub const SYS_rt_sigsuspend: ::c_long = 133;
++pub const SYS_rt_sigaction: ::c_long = 134;
++pub const SYS_rt_sigprocmask: ::c_long = 135;
++pub const SYS_rt_sigpending: ::c_long = 136;
++pub const SYS_rt_sigtimedwait: ::c_long = 137;
++pub const SYS_rt_sigqueueinfo: ::c_long = 138;
++pub const SYS_rt_sigreturn: ::c_long = 139;
++pub const SYS_setpriority: ::c_long = 140;
++pub const SYS_getpriority: ::c_long = 141;
++pub const SYS_reboot: ::c_long = 142;
++pub const SYS_setregid: ::c_long = 143;
++pub const SYS_setgid: ::c_long = 144;
++pub const SYS_setreuid: ::c_long = 145;
++pub const SYS_setuid: ::c_long = 146;
++pub const SYS_setresuid: ::c_long = 147;
++pub const SYS_getresuid: ::c_long = 148;
++pub const SYS_setresgid: ::c_long = 149;
++pub const SYS_getresgid: ::c_long = 150;
++pub const SYS_setfsuid: ::c_long = 151;
++pub const SYS_setfsgid: ::c_long = 152;
++pub const SYS_times: ::c_long = 153;
++pub const SYS_setpgid: ::c_long = 154;
++pub const SYS_getpgid: ::c_long = 155;
++pub const SYS_getsid: ::c_long = 156;
++pub const SYS_setsid: ::c_long = 157;
++pub const SYS_getgroups: ::c_long = 158;
++pub const SYS_setgroups: ::c_long = 159;
++pub const SYS_uname: ::c_long = 160;
++pub const SYS_sethostname: ::c_long = 161;
++pub const SYS_setdomainname: ::c_long = 162;
++pub const SYS_getrusage: ::c_long = 165;
++pub const SYS_umask: ::c_long = 166;
++pub const SYS_prctl: ::c_long = 167;
++pub const SYS_getcpu: ::c_long = 168;
++pub const SYS_gettimeofday: ::c_long = 169;
++pub const SYS_settimeofday: ::c_long = 170;
++pub const SYS_adjtimex: ::c_long = 171;
++pub const SYS_getpid: ::c_long = 172;
++pub const SYS_getppid: ::c_long = 173;
++pub const SYS_getuid: ::c_long = 174;
++pub const SYS_geteuid: ::c_long = 175;
++pub const SYS_getgid: ::c_long = 176;
++pub const SYS_getegid: ::c_long = 177;
++pub const SYS_gettid: ::c_long = 178;
++pub const SYS_sysinfo: ::c_long = 179;
++pub const SYS_mq_open: ::c_long = 180;
++pub const SYS_mq_unlink: ::c_long = 181;
++pub const SYS_mq_timedsend: ::c_long = 182;
++pub const SYS_mq_timedreceive: ::c_long = 183;
++pub const SYS_mq_notify: ::c_long = 184;
++pub const SYS_mq_getsetattr: ::c_long = 185;
++pub const SYS_msgget: ::c_long = 186;
++pub const SYS_msgctl: ::c_long = 187;
++pub const SYS_msgrcv: ::c_long = 188;
++pub const SYS_msgsnd: ::c_long = 189;
++pub const SYS_semget: ::c_long = 190;
++pub const SYS_semctl: ::c_long = 191;
++pub const SYS_semtimedop: ::c_long = 192;
++pub const SYS_semop: ::c_long = 193;
++pub const SYS_shmget: ::c_long = 194;
++pub const SYS_shmctl: ::c_long = 195;
++pub const SYS_shmat: ::c_long = 196;
++pub const SYS_shmdt: ::c_long = 197;
++pub const SYS_socket: ::c_long = 198;
++pub const SYS_socketpair: ::c_long = 199;
++pub const SYS_bind: ::c_long = 200;
++pub const SYS_listen: ::c_long = 201;
++pub const SYS_accept: ::c_long = 202;
++pub const SYS_connect: ::c_long = 203;
++pub const SYS_getsockname: ::c_long = 204;
++pub const SYS_getpeername: ::c_long = 205;
++pub const SYS_sendto: ::c_long = 206;
++pub const SYS_recvfrom: ::c_long = 207;
++pub const SYS_setsockopt: ::c_long = 208;
++pub const SYS_getsockopt: ::c_long = 209;
++pub const SYS_shutdown: ::c_long = 210;
++pub const SYS_sendmsg: ::c_long = 211;
++pub const SYS_recvmsg: ::c_long = 212;
++pub const SYS_readahead: ::c_long = 213;
++pub const SYS_brk: ::c_long = 214;
++pub const SYS_munmap: ::c_long = 215;
++pub const SYS_mremap: ::c_long = 216;
++pub const SYS_add_key: ::c_long = 217;
++pub const SYS_request_key: ::c_long = 218;
++pub const SYS_keyctl: ::c_long = 219;
++pub const SYS_clone: ::c_long = 220;
++pub const SYS_execve: ::c_long = 221;
++pub const SYS_mmap: ::c_long = 222;
++pub const SYS_fadvise64: ::c_long = 223;
++pub const SYS_swapon: ::c_long = 224;
++pub const SYS_swapoff: ::c_long = 225;
++pub const SYS_mprotect: ::c_long = 226;
++pub const SYS_msync: ::c_long = 227;
++pub const SYS_mlock: ::c_long = 228;
++pub const SYS_munlock: ::c_long = 229;
++pub const SYS_mlockall: ::c_long = 230;
++pub const SYS_munlockall: ::c_long = 231;
++pub const SYS_mincore: ::c_long = 232;
++pub const SYS_madvise: ::c_long = 233;
++pub const SYS_remap_file_pages: ::c_long = 234;
++pub const SYS_mbind: ::c_long = 235;
++pub const SYS_get_mempolicy: ::c_long = 236;
++pub const SYS_set_mempolicy: ::c_long = 237;
++pub const SYS_migrate_pages: ::c_long = 238;
++pub const SYS_move_pages: ::c_long = 239;
++pub const SYS_rt_tgsigqueueinfo: ::c_long = 240;
++pub const SYS_perf_event_open: ::c_long = 241;
++pub const SYS_accept4: ::c_long = 242;
++pub const SYS_recvmmsg: ::c_long = 243;
++pub const SYS_arch_specific_syscall: ::c_long = 244;
++pub const SYS_wait4: ::c_long = 260;
++pub const SYS_prlimit64: ::c_long = 261;
++pub const SYS_fanotify_init: ::c_long = 262;
++pub const SYS_fanotify_mark: ::c_long = 263;
++pub const SYS_name_to_handle_at: ::c_long = 264;
++pub const SYS_open_by_handle_at: ::c_long = 265;
++pub const SYS_clock_adjtime: ::c_long = 266;
++pub const SYS_syncfs: ::c_long = 267;
++pub const SYS_setns: ::c_long = 268;
++pub const SYS_sendmmsg: ::c_long = 269;
++pub const SYS_process_vm_readv: ::c_long = 270;
++pub const SYS_process_vm_writev: ::c_long = 271;
++pub const SYS_kcmp: ::c_long = 272;
++pub const SYS_finit_module: ::c_long = 273;
++pub const SYS_sched_setattr: ::c_long = 274;
++pub const SYS_sched_getattr: ::c_long = 275;
++pub const SYS_renameat2: ::c_long = 276;
++pub const SYS_seccomp: ::c_long = 277;
++pub const SYS_getrandom: ::c_long = 278;
++pub const SYS_memfd_create: ::c_long = 279;
++pub const SYS_bpf: ::c_long = 280;
++pub const SYS_execveat: ::c_long = 281;
++pub const SYS_userfaultfd: ::c_long = 282;
++pub const SYS_membarrier: ::c_long = 283;
++pub const SYS_mlock2: ::c_long = 284;
++pub const SYS_copy_file_range: ::c_long = 285;
++pub const SYS_preadv2: ::c_long = 286;
++pub const SYS_pwritev2: ::c_long = 287;
++pub const SYS_pkey_mprotect: ::c_long = 288;
++pub const SYS_pkey_alloc: ::c_long = 289;
++pub const SYS_pkey_free: ::c_long = 290;
++pub const SYS_statx: ::c_long = 291;
++pub const SYS_io_pgetevents: ::c_long = 292;
++pub const SYS_rseq: ::c_long = 293;
++pub const SYS_kexec_file_load: ::c_long = 294;
++pub const SYS_pidfd_send_signal: ::c_long = 424;
++pub const SYS_io_uring_setup: ::c_long = 425;
++pub const SYS_io_uring_enter: ::c_long = 426;
++pub const SYS_io_uring_register: ::c_long = 427;
++pub const SYS_open_tree: ::c_long = 428;
++pub const SYS_move_mount: ::c_long = 429;
++pub const SYS_fsopen: ::c_long = 430;
++pub const SYS_fsconfig: ::c_long = 431;
++pub const SYS_fsmount: ::c_long = 432;
++pub const SYS_fspick: ::c_long = 433;
++pub const SYS_pidfd_open: ::c_long = 434;
++pub const SYS_clone3: ::c_long = 435;
++pub const SYS_close_range: ::c_long = 436;
++pub const SYS_openat2: ::c_long = 437;
++pub const SYS_pidfd_getfd: ::c_long = 438;
++pub const SYS_faccessat2: ::c_long = 439;
++pub const SYS_process_madvise: ::c_long = 440;
++pub const SYS_epoll_pwait2: ::c_long = 441;
++pub const SYS_mount_setattr: ::c_long = 442;
++pub const SYS_quotactl_fd: ::c_long = 443;
++pub const SYS_landlock_create_ruleset: ::c_long = 444;
++pub const SYS_landlock_add_rule: ::c_long = 445;
++pub const SYS_landlock_restrict_self: ::c_long = 446;
++pub const SYS_process_mrelease: ::c_long = 448;
++pub const SYS_futex_waitv: ::c_long = 449;
++pub const SYS_set_mempolicy_home_node: ::c_long = 450;
++
++pub const O_APPEND: ::c_int = 1024;
++pub const O_DIRECT: ::c_int = 0x4000;
++pub const O_DIRECTORY: ::c_int = 0x10000;
++pub const O_LARGEFILE: ::c_int = 0;
++pub const O_NOFOLLOW: ::c_int = 0x20000;
++pub const O_CREAT: ::c_int = 64;
++pub const O_EXCL: ::c_int = 128;
++pub const O_NOCTTY: ::c_int = 256;
++pub const O_NONBLOCK: ::c_int = 2048;
++pub const O_SYNC: ::c_int = 1052672;
++pub const O_RSYNC: ::c_int = 1052672;
++pub const O_DSYNC: ::c_int = 4096;
++pub const O_ASYNC: ::c_int = 4096;
++
++pub const SIGSTKSZ: ::size_t = 16384;
++pub const MINSIGSTKSZ: ::size_t = 4096;
++
++pub const ENAMETOOLONG: ::c_int = 36;
++pub const ENOLCK: ::c_int = 37;
++pub const ENOSYS: ::c_int = 38;
++pub const ENOTEMPTY: ::c_int = 39;
++pub const ELOOP: ::c_int = 40;
++pub const ENOMSG: ::c_int = 42;
++pub const EIDRM: ::c_int = 43;
++pub const ECHRNG: ::c_int = 44;
++pub const EL2NSYNC: ::c_int = 45;
++pub const EL3HLT: ::c_int = 46;
++pub const EL3RST: ::c_int = 47;
++pub const ELNRNG: ::c_int = 48;
++pub const EUNATCH: ::c_int = 49;
++pub const ENOCSI: ::c_int = 50;
++pub const EL2HLT: ::c_int = 51;
++pub const EBADE: ::c_int = 52;
++pub const EBADR: ::c_int = 53;
++pub const EXFULL: ::c_int = 54;
++pub const ENOANO: ::c_int = 55;
++pub const EBADRQC: ::c_int = 56;
++pub const EBADSLT: ::c_int = 57;
++pub const EMULTIHOP: ::c_int = 72;
++pub const EOVERFLOW: ::c_int = 75;
++pub const ENOTUNIQ: ::c_int = 76;
++pub const EBADFD: ::c_int = 77;
++pub const EBADMSG: ::c_int = 74;
++pub const EREMCHG: ::c_int = 78;
++pub const ELIBACC: ::c_int = 79;
++pub const ELIBBAD: ::c_int = 80;
++pub const ELIBSCN: ::c_int = 81;
++pub const ELIBMAX: ::c_int = 82;
++pub const ELIBEXEC: ::c_int = 83;
++pub const EILSEQ: ::c_int = 84;
++pub const ERESTART: ::c_int = 85;
++pub const ESTRPIPE: ::c_int = 86;
++pub const EUSERS: ::c_int = 87;
++pub const ENOTSOCK: ::c_int = 88;
++pub const EDESTADDRREQ: ::c_int = 89;
++pub const EMSGSIZE: ::c_int = 90;
++pub const EPROTOTYPE: ::c_int = 91;
++pub const ENOPROTOOPT: ::c_int = 92;
++pub const EPROTONOSUPPORT: ::c_int = 93;
++pub const ESOCKTNOSUPPORT: ::c_int = 94;
++pub const EOPNOTSUPP: ::c_int = 95;
++pub const ENOTSUP: ::c_int = EOPNOTSUPP;
++pub const EPFNOSUPPORT: ::c_int = 96;
++pub const EAFNOSUPPORT: ::c_int = 97;
++pub const EADDRINUSE: ::c_int = 98;
++pub const EADDRNOTAVAIL: ::c_int = 99;
++pub const ENETDOWN: ::c_int = 100;
++pub const ENETUNREACH: ::c_int = 101;
++pub const ENETRESET: ::c_int = 102;
++pub const ECONNABORTED: ::c_int = 103;
++pub const ECONNRESET: ::c_int = 104;
++pub const ENOBUFS: ::c_int = 105;
++pub const EISCONN: ::c_int = 106;
++pub const ENOTCONN: ::c_int = 107;
++pub const ESHUTDOWN: ::c_int = 108;
++pub const ETOOMANYREFS: ::c_int = 109;
++pub const ETIMEDOUT: ::c_int = 110;
++pub const ECONNREFUSED: ::c_int = 111;
++pub const EHOSTDOWN: ::c_int = 112;
++pub const EHOSTUNREACH: ::c_int = 113;
++pub const EALREADY: ::c_int = 114;
++pub const EINPROGRESS: ::c_int = 115;
++pub const ESTALE: ::c_int = 116;
++pub const EUCLEAN: ::c_int = 117;
++pub const ENOTNAM: ::c_int = 118;
++pub const ENAVAIL: ::c_int = 119;
++pub const EISNAM: ::c_int = 120;
++pub const EREMOTEIO: ::c_int = 121;
++pub const EDQUOT: ::c_int = 122;
++pub const ENOMEDIUM: ::c_int = 123;
++pub const EMEDIUMTYPE: ::c_int = 124;
++pub const ECANCELED: ::c_int = 125;
++pub const ENOKEY: ::c_int = 126;
++pub const EKEYEXPIRED: ::c_int = 127;
++pub const EKEYREVOKED: ::c_int = 128;
++pub const EKEYREJECTED: ::c_int = 129;
++pub const EOWNERDEAD: ::c_int = 130;
++pub const ENOTRECOVERABLE: ::c_int = 131;
++pub const EHWPOISON: ::c_int = 133;
++pub const ERFKILL: ::c_int = 132;
++
++pub const SA_ONSTACK: ::c_int = 0x08000000;
++pub const SA_SIGINFO: ::c_int = 0x00000004;
++pub const SA_NOCLDWAIT: ::c_int = 0x00000002;
++
++pub const SIGCHLD: ::c_int = 17;
++pub const SIGBUS: ::c_int = 7;
++pub const SIGTTIN: ::c_int = 21;
++pub const SIGTTOU: ::c_int = 22;
++pub const SIGXCPU: ::c_int = 24;
++pub const SIGXFSZ: ::c_int = 25;
++pub const SIGVTALRM: ::c_int = 26;
++pub const SIGPROF: ::c_int = 27;
++pub const SIGWINCH: ::c_int = 28;
++pub const SIGUSR1: ::c_int = 10;
++pub const SIGUSR2: ::c_int = 12;
++pub const SIGCONT: ::c_int = 18;
++pub const SIGSTOP: ::c_int = 19;
++pub const SIGTSTP: ::c_int = 20;
++pub const SIGURG: ::c_int = 23;
++pub const SIGIO: ::c_int = 29;
++pub const SIGSYS: ::c_int = 31;
++pub const SIGSTKFLT: ::c_int = 16;
++pub const SIGPOLL: ::c_int = 29;
++pub const SIGPWR: ::c_int = 30;
++pub const SIG_SETMASK: ::c_int = 2;
++pub const SIG_BLOCK: ::c_int = 0;
++pub const SIG_UNBLOCK: ::c_int = 1;
++
++pub const F_GETLK: ::c_int = 5;
++pub const F_GETOWN: ::c_int = 9;
++pub const F_SETLK: ::c_int = 6;
++pub const F_SETLKW: ::c_int = 7;
++pub const F_SETOWN: ::c_int = 8;
++
++pub const VEOF: usize = 4;
++
++pub const POLLWRNORM: ::c_short = 0x100;
++pub const POLLWRBAND: ::c_short = 0x200;
++
++pub const SOCK_STREAM: ::c_int = 1;
++pub const SOCK_DGRAM: ::c_int = 2;
++
++pub const MAP_ANON: ::c_int = 0x0020;
++pub const MAP_GROWSDOWN: ::c_int = 0x0100;
++pub const MAP_DENYWRITE: ::c_int = 0x0800;
++pub const MAP_EXECUTABLE: ::c_int = 0x01000;
++pub const MAP_LOCKED: ::c_int = 0x02000;
++pub const MAP_NORESERVE: ::c_int = 0x04000;
++pub const MAP_POPULATE: ::c_int = 0x08000;
++pub const MAP_NONBLOCK: ::c_int = 0x010000;
++pub const MAP_STACK: ::c_int = 0x020000;
++pub const MAP_HUGETLB: ::c_int = 0x040000;
++pub const MAP_SYNC: ::c_int = 0x080000;
++
++pub const MCL_CURRENT: ::c_int = 0x0001;
++pub const MCL_FUTURE: ::c_int = 0x0002;
++pub const MCL_ONFAULT: ::c_int = 0x0004;
++pub const CBAUD: ::tcflag_t = 0o0010017;
++pub const TAB1: ::c_int = 0x00000800;
++pub const TAB2: ::c_int = 0x00001000;
++pub const TAB3: ::c_int = 0x00001800;
++pub const CR1: ::c_int = 0x00000200;
++pub const CR2: ::c_int = 0x00000400;
++pub const CR3: ::c_int = 0x00000600;
++pub const FF1: ::c_int = 0x00008000;
++pub const BS1: ::c_int = 0x00002000;
++pub const VT1: ::c_int = 0x00004000;
++pub const VWERASE: usize = 14;
++pub const VREPRINT: usize = 12;
++pub const VSUSP: usize = 10;
++pub const VSTART: usize = 8;
++pub const VSTOP: usize = 9;
++pub const VDISCARD: usize = 13;
++pub const VTIME: usize = 5;
++pub const IXON: ::tcflag_t = 0x00000400;
++pub const IXOFF: ::tcflag_t = 0x00001000;
++pub const ONLCR: ::tcflag_t = 0x4;
++pub const CSIZE: ::tcflag_t = 0x00000030;
++pub const CS6: ::tcflag_t = 0x00000010;
++pub const CS7: ::tcflag_t = 0x00000020;
++pub const CS8: ::tcflag_t = 0x00000030;
++pub const CSTOPB: ::tcflag_t = 0x00000040;
++pub const CREAD: ::tcflag_t = 0x00000080;
++pub const PARENB: ::tcflag_t = 0x00000100;
++pub const PARODD: ::tcflag_t = 0x00000200;
++pub const HUPCL: ::tcflag_t = 0x00000400;
++pub const CLOCAL: ::tcflag_t = 0x00000800;
++pub const ECHOKE: ::tcflag_t = 0x00000800;
++pub const ECHOE: ::tcflag_t = 0x00000010;
++pub const ECHOK: ::tcflag_t = 0x00000020;
++pub const ECHONL: ::tcflag_t = 0x00000040;
++pub const ECHOPRT: ::tcflag_t = 0x00000400;
++pub const ECHOCTL: ::tcflag_t = 0x00000200;
++pub const ISIG: ::tcflag_t = 0x00000001;
++pub const ICANON: ::tcflag_t = 0x00000002;
++pub const PENDIN: ::tcflag_t = 0x00004000;
++pub const NOFLSH: ::tcflag_t = 0x00000080;
++pub const CIBAUD: ::tcflag_t = 0o02003600000;
++pub const CBAUDEX: ::tcflag_t = 0o010000;
++pub const VSWTC: usize = 7;
++pub const OLCUC: ::tcflag_t = 0o000002;
++pub const NLDLY: ::tcflag_t = 0o000400;
++pub const CRDLY: ::tcflag_t = 0o003000;
++pub const TABDLY: ::tcflag_t = 0o014000;
++pub const BSDLY: ::tcflag_t = 0o020000;
++pub const FFDLY: ::tcflag_t = 0o100000;
++pub const VTDLY: ::tcflag_t = 0o040000;
++pub const XTABS: ::tcflag_t = 0o014000;
++pub const B57600: ::speed_t = 0o010001;
++pub const B115200: ::speed_t = 0o010002;
++pub const B230400: ::speed_t = 0o010003;
++pub const B460800: ::speed_t = 0o010004;
++pub const B500000: ::speed_t = 0o010005;
++pub const B576000: ::speed_t = 0o010006;
++pub const B921600: ::speed_t = 0o010007;
++pub const B1000000: ::speed_t = 0o010010;
++pub const B1152000: ::speed_t = 0o010011;
++pub const B1500000: ::speed_t = 0o010012;
++pub const B2000000: ::speed_t = 0o010013;
++pub const B2500000: ::speed_t = 0o010014;
++pub const B3000000: ::speed_t = 0o010015;
++pub const B3500000: ::speed_t = 0o010016;
++pub const B4000000: ::speed_t = 0o010017;
++
++pub const EDEADLK: ::c_int = 35;
++pub const EDEADLOCK: ::c_int = EDEADLK;
++pub const EXTPROC: ::tcflag_t = 0x00010000;
++pub const VEOL: usize = 11;
++pub const VEOL2: usize = 16;
++pub const VMIN: usize = 6;
++pub const IEXTEN: ::tcflag_t = 0x00008000;
++pub const TOSTOP: ::tcflag_t = 0x00000100;
++pub const FLUSHO: ::tcflag_t = 0x00001000;
++
++cfg_if! {
++ if #[cfg(libc_align)] {
++ mod align;
++ pub use self::align::*;
++ }
++}
+diff --git a/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs b/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs
+index 05586cdb4..d59343064 100644
+--- a/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs
++++ b/vendor/libc/src/unix/linux_like/linux/musl/b64/mod.rs
+@@ -157,6 +157,9 @@ cfg_if! {
+ } else if #[cfg(any(target_arch = "riscv64"))] {
+ mod riscv64;
+ pub use self::riscv64::*;
++ } else if #[cfg(any(target_arch = "loongarch64"))] {
++ mod loongarch64;
++ pub use self::loongarch64::*;
+ } else {
+ // Unknown target_arch
+ }
+diff --git a/vendor/libc/src/unix/linux_like/linux/musl/mod.rs b/vendor/libc/src/unix/linux_like/linux/musl/mod.rs
+index 97429a7f3..bb7c9b2de 100644
+--- a/vendor/libc/src/unix/linux_like/linux/musl/mod.rs
++++ b/vendor/libc/src/unix/linux_like/linux/musl/mod.rs
+@@ -905,7 +905,8 @@ cfg_if! {
+ target_arch = "mips64",
+ target_arch = "powerpc64",
+ target_arch = "s390x",
+- target_arch = "riscv64"))] {
++ target_arch = "riscv64",
++ target_arch = "loongarch64"))] {
+ mod b64;
+ pub use self::b64::*;
+ } else if #[cfg(any(target_arch = "x86",
+--
+2.44.0
+
diff --git a/main/rust/0009-vendor-libc-0.2.148-Add-support-for-loongarch64-linu.patch b/main/rust/0009-vendor-libc-0.2.148-Add-support-for-loongarch64-linu.patch
new file mode 100644
index 00000000000..c7d1985eb6e
--- /dev/null
+++ b/main/rust/0009-vendor-libc-0.2.148-Add-support-for-loongarch64-linu.patch
@@ -0,0 +1,761 @@
+From 82b58c66bc60152236fc3009147681dff0bc364e Mon Sep 17 00:00:00 2001
+From: WANG Rui <wangrui@loongson.cn>
+Date: Tue, 26 Mar 2024 16:27:33 +0800
+Subject: [PATCH 09/12] vendor: libc-0.2.148: Add support for
+ loongarch64-linux-musl
+
+---
+ .../linux/musl/b64/loongarch64/align.rs | 40 ++
+ .../linux/musl/b64/loongarch64/mod.rs | 663 ++++++++++++++++++
+ .../src/unix/linux_like/linux/musl/b64/mod.rs | 3 +
+ .../src/unix/linux_like/linux/musl/mod.rs | 3 +-
+ 4 files changed, 708 insertions(+), 1 deletions(-)
+ create mode 100644 vendor/libc-0.2.148/src/unix/linux_like/linux/musl/b64/loongarch64/align.rs
+ create mode 100644 vendor/libc-0.2.148/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs
+
+diff --git a/vendor/libc-0.2.148/src/unix/linux_like/linux/musl/b64/loongarch64/align.rs b/vendor/libc-0.2.148/src/unix/linux_like/linux/musl/b64/loongarch64/align.rs
+new file mode 100644
+index 000000000..dc191f51f
+--- /dev/null
++++ b/vendor/libc-0.2.148/src/unix/linux_like/linux/musl/b64/loongarch64/align.rs
+@@ -0,0 +1,40 @@
++s_no_extra_traits! {
++ #[allow(missing_debug_implementations)]
++ #[repr(align(16))]
++ pub struct max_align_t {
++ priv_: [f64; 4]
++ }
++}
++
++s! {
++ pub struct ucontext_t {
++ pub uc_flags: ::c_ulong,
++ pub uc_link: *mut ucontext_t,
++ pub uc_stack: ::stack_t,
++ pub uc_sigmask: ::sigset_t,
++ pub uc_mcontext: mcontext_t,
++ }
++
++ #[repr(align(16))]
++ pub struct mcontext_t {
++ pub __pc: ::c_ulonglong,
++ pub __gregs: [::c_ulonglong; 32],
++ pub __flags: ::c_uint,
++ pub __extcontext: [::c_ulonglong; 0],
++ }
++
++ #[repr(align(8))]
++ pub struct clone_args {
++ pub flags: ::c_ulonglong,
++ pub pidfd: ::c_ulonglong,
++ pub child_tid: ::c_ulonglong,
++ pub parent_tid: ::c_ulonglong,
++ pub exit_signal: ::c_ulonglong,
++ pub stack: ::c_ulonglong,
++ pub stack_size: ::c_ulonglong,
++ pub tls: ::c_ulonglong,
++ pub set_tid: ::c_ulonglong,
++ pub set_tid_size: ::c_ulonglong,
++ pub cgroup: ::c_ulonglong,
++ }
++}
+diff --git a/vendor/libc-0.2.148/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/vendor/libc-0.2.148/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs
+new file mode 100644
+index 000000000..dffbc2341
+--- /dev/null
++++ b/vendor/libc-0.2.148/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs
+@@ -0,0 +1,663 @@
++//! LoongArch-specific definitions for 64-bit linux-like values
++
++pub type c_char = i8;
++pub type wchar_t = ::c_int;
++
++pub type nlink_t = ::c_uint;
++pub type blksize_t = ::c_int;
++pub type fsblkcnt64_t = ::c_ulong;
++pub type fsfilcnt64_t = ::c_ulong;
++pub type __u64 = ::c_ulonglong;
++pub type __s64 = ::c_longlong;
++
++s! {
++ pub struct pthread_attr_t {
++ __size: [::c_ulong; 7],
++ }
++
++ pub struct stat {
++ pub st_dev: ::dev_t,
++ pub st_ino: ::ino_t,
++ pub st_mode: ::mode_t,
++ pub st_nlink: ::nlink_t,
++ pub st_uid: ::uid_t,
++ pub st_gid: ::gid_t,
++ pub st_rdev: ::dev_t,
++ __pad1: ::dev_t,
++ pub st_size: ::off_t,
++ pub st_blksize: ::blksize_t,
++ __pad2: ::c_int,
++ pub st_blocks: ::blkcnt_t,
++ pub st_atime: ::time_t,
++ pub st_atime_nsec: ::c_long,
++ pub st_mtime: ::time_t,
++ pub st_mtime_nsec: ::c_long,
++ pub st_ctime: ::time_t,
++ pub st_ctime_nsec: ::c_long,
++ __unused: [::c_int; 2usize],
++ }
++
++ pub struct stat64 {
++ pub st_dev: ::dev_t,
++ pub st_ino: ::ino64_t,
++ pub st_mode: ::mode_t,
++ pub st_nlink: ::nlink_t,
++ pub st_uid: ::uid_t,
++ pub st_gid: ::gid_t,
++ pub st_rdev: ::dev_t,
++ pub __pad1: ::dev_t,
++ pub st_size: ::off64_t,
++ pub st_blksize: ::blksize_t,
++ pub __pad2: ::c_int,
++ pub st_blocks: ::blkcnt_t,
++ pub st_atime: ::time_t,
++ pub st_atime_nsec: ::c_long,
++ pub st_mtime: ::time_t,
++ pub st_mtime_nsec: ::c_long,
++ pub st_ctime: ::time_t,
++ pub st_ctime_nsec: ::c_long,
++ __unused: [::c_int; 2],
++ }
++
++ pub struct statfs {
++ pub f_type: ::c_long,
++ pub f_bsize: ::c_long,
++ pub f_blocks: ::fsblkcnt_t,
++ pub f_bfree: ::fsblkcnt_t,
++ pub f_bavail: ::fsblkcnt_t,
++ pub f_files: ::fsfilcnt_t,
++ pub f_ffree: ::fsfilcnt_t,
++ pub f_fsid: ::fsid_t,
++ pub f_namelen: ::c_long,
++ pub f_frsize: ::c_long,
++ pub f_flags: ::c_long,
++ pub f_spare: [::c_long; 4],
++ }
++
++ pub struct statfs64 {
++ pub f_type: ::c_long,
++ pub f_bsize: ::c_long,
++ pub f_blocks: ::fsblkcnt64_t,
++ pub f_bfree: ::fsblkcnt64_t,
++ pub f_bavail: ::fsblkcnt64_t,
++ pub f_files: ::fsfilcnt64_t,
++ pub f_ffree: ::fsfilcnt64_t,
++ pub f_fsid: ::fsid_t,
++ pub f_namelen: ::c_long,
++ pub f_frsize: ::c_long,
++ pub f_flags: ::c_long,
++ pub f_spare: [::c_long; 4],
++ }
++
++ pub struct ipc_perm {
++ pub __key: ::key_t,
++ pub uid: ::uid_t,
++ pub gid: ::gid_t,
++ pub cuid: ::uid_t,
++ pub cgid: ::gid_t,
++ pub mode: ::c_uint,
++ pub __seq: ::c_ushort,
++ __pad2: ::c_ushort,
++ __unused1: ::c_ulong,
++ __unused2: ::c_ulong,
++ }
++
++ pub struct user_regs_struct {
++ pub regs: [u64; 32],
++ pub orig_a0: u64,
++ pub csr_era: u64,
++ pub csr_badv: u64,
++ pub reserved: [u64; 10],
++
++ }
++
++ pub struct user_fp_struct {
++ pub fpr: [u64; 32],
++ pub fcc: u64,
++ pub fcsr: u32,
++ }
++}
++
++pub const SYS_io_setup: ::c_long = 0;
++pub const SYS_io_destroy: ::c_long = 1;
++pub const SYS_io_submit: ::c_long = 2;
++pub const SYS_io_cancel: ::c_long = 3;
++pub const SYS_io_getevents: ::c_long = 4;
++pub const SYS_setxattr: ::c_long = 5;
++pub const SYS_lsetxattr: ::c_long = 6;
++pub const SYS_fsetxattr: ::c_long = 7;
++pub const SYS_getxattr: ::c_long = 8;
++pub const SYS_lgetxattr: ::c_long = 9;
++pub const SYS_fgetxattr: ::c_long = 10;
++pub const SYS_listxattr: ::c_long = 11;
++pub const SYS_llistxattr: ::c_long = 12;
++pub const SYS_flistxattr: ::c_long = 13;
++pub const SYS_removexattr: ::c_long = 14;
++pub const SYS_lremovexattr: ::c_long = 15;
++pub const SYS_fremovexattr: ::c_long = 16;
++pub const SYS_getcwd: ::c_long = 17;
++pub const SYS_lookup_dcookie: ::c_long = 18;
++pub const SYS_eventfd2: ::c_long = 19;
++pub const SYS_epoll_create1: ::c_long = 20;
++pub const SYS_epoll_ctl: ::c_long = 21;
++pub const SYS_epoll_pwait: ::c_long = 22;
++pub const SYS_dup: ::c_long = 23;
++pub const SYS_dup3: ::c_long = 24;
++pub const SYS_fcntl: ::c_long = 25;
++pub const SYS_inotify_init1: ::c_long = 26;
++pub const SYS_inotify_add_watch: ::c_long = 27;
++pub const SYS_inotify_rm_watch: ::c_long = 28;
++pub const SYS_ioctl: ::c_long = 29;
++pub const SYS_ioprio_set: ::c_long = 30;
++pub const SYS_ioprio_get: ::c_long = 31;
++pub const SYS_flock: ::c_long = 32;
++pub const SYS_mknodat: ::c_long = 33;
++pub const SYS_mkdirat: ::c_long = 34;
++pub const SYS_unlinkat: ::c_long = 35;
++pub const SYS_symlinkat: ::c_long = 36;
++pub const SYS_linkat: ::c_long = 37;
++pub const SYS_umount2: ::c_long = 39;
++pub const SYS_mount: ::c_long = 40;
++pub const SYS_pivot_root: ::c_long = 41;
++pub const SYS_nfsservctl: ::c_long = 42;
++pub const SYS_statfs: ::c_long = 43;
++pub const SYS_fstatfs: ::c_long = 44;
++pub const SYS_truncate: ::c_long = 45;
++pub const SYS_ftruncate: ::c_long = 46;
++pub const SYS_fallocate: ::c_long = 47;
++pub const SYS_faccessat: ::c_long = 48;
++pub const SYS_chdir: ::c_long = 49;
++pub const SYS_fchdir: ::c_long = 50;
++pub const SYS_chroot: ::c_long = 51;
++pub const SYS_fchmod: ::c_long = 52;
++pub const SYS_fchmodat: ::c_long = 53;
++pub const SYS_fchownat: ::c_long = 54;
++pub const SYS_fchown: ::c_long = 55;
++pub const SYS_openat: ::c_long = 56;
++pub const SYS_close: ::c_long = 57;
++pub const SYS_vhangup: ::c_long = 58;
++pub const SYS_pipe2: ::c_long = 59;
++pub const SYS_quotactl: ::c_long = 60;
++pub const SYS_getdents64: ::c_long = 61;
++pub const SYS_lseek: ::c_long = 62;
++pub const SYS_read: ::c_long = 63;
++pub const SYS_write: ::c_long = 64;
++pub const SYS_readv: ::c_long = 65;
++pub const SYS_writev: ::c_long = 66;
++pub const SYS_pread64: ::c_long = 67;
++pub const SYS_pwrite64: ::c_long = 68;
++pub const SYS_preadv: ::c_long = 69;
++pub const SYS_pwritev: ::c_long = 70;
++pub const SYS_sendfile: ::c_long = 71;
++pub const SYS_pselect6: ::c_long = 72;
++pub const SYS_ppoll: ::c_long = 73;
++pub const SYS_signalfd4: ::c_long = 74;
++pub const SYS_vmsplice: ::c_long = 75;
++pub const SYS_splice: ::c_long = 76;
++pub const SYS_tee: ::c_long = 77;
++pub const SYS_readlinkat: ::c_long = 78;
++pub const SYS_sync: ::c_long = 81;
++pub const SYS_fsync: ::c_long = 82;
++pub const SYS_fdatasync: ::c_long = 83;
++pub const SYS_sync_file_range: ::c_long = 84;
++pub const SYS_timerfd_create: ::c_long = 85;
++pub const SYS_timerfd_settime: ::c_long = 86;
++pub const SYS_timerfd_gettime: ::c_long = 87;
++pub const SYS_utimensat: ::c_long = 88;
++pub const SYS_acct: ::c_long = 89;
++pub const SYS_capget: ::c_long = 90;
++pub const SYS_capset: ::c_long = 91;
++pub const SYS_personality: ::c_long = 92;
++pub const SYS_exit: ::c_long = 93;
++pub const SYS_exit_group: ::c_long = 94;
++pub const SYS_waitid: ::c_long = 95;
++pub const SYS_set_tid_address: ::c_long = 96;
++pub const SYS_unshare: ::c_long = 97;
++pub const SYS_futex: ::c_long = 98;
++pub const SYS_set_robust_list: ::c_long = 99;
++pub const SYS_get_robust_list: ::c_long = 100;
++pub const SYS_nanosleep: ::c_long = 101;
++pub const SYS_getitimer: ::c_long = 102;
++pub const SYS_setitimer: ::c_long = 103;
++pub const SYS_kexec_load: ::c_long = 104;
++pub const SYS_init_module: ::c_long = 105;
++pub const SYS_delete_module: ::c_long = 106;
++pub const SYS_timer_create: ::c_long = 107;
++pub const SYS_timer_gettime: ::c_long = 108;
++pub const SYS_timer_getoverrun: ::c_long = 109;
++pub const SYS_timer_settime: ::c_long = 110;
++pub const SYS_timer_delete: ::c_long = 111;
++pub const SYS_clock_settime: ::c_long = 112;
++pub const SYS_clock_gettime: ::c_long = 113;
++pub const SYS_clock_getres: ::c_long = 114;
++pub const SYS_clock_nanosleep: ::c_long = 115;
++pub const SYS_syslog: ::c_long = 116;
++pub const SYS_ptrace: ::c_long = 117;
++pub const SYS_sched_setparam: ::c_long = 118;
++pub const SYS_sched_setscheduler: ::c_long = 119;
++pub const SYS_sched_getscheduler: ::c_long = 120;
++pub const SYS_sched_getparam: ::c_long = 121;
++pub const SYS_sched_setaffinity: ::c_long = 122;
++pub const SYS_sched_getaffinity: ::c_long = 123;
++pub const SYS_sched_yield: ::c_long = 124;
++pub const SYS_sched_get_priority_max: ::c_long = 125;
++pub const SYS_sched_get_priority_min: ::c_long = 126;
++pub const SYS_sched_rr_get_interval: ::c_long = 127;
++pub const SYS_restart_syscall: ::c_long = 128;
++pub const SYS_kill: ::c_long = 129;
++pub const SYS_tkill: ::c_long = 130;
++pub const SYS_tgkill: ::c_long = 131;
++pub const SYS_sigaltstack: ::c_long = 132;
++pub const SYS_rt_sigsuspend: ::c_long = 133;
++pub const SYS_rt_sigaction: ::c_long = 134;
++pub const SYS_rt_sigprocmask: ::c_long = 135;
++pub const SYS_rt_sigpending: ::c_long = 136;
++pub const SYS_rt_sigtimedwait: ::c_long = 137;
++pub const SYS_rt_sigqueueinfo: ::c_long = 138;
++pub const SYS_rt_sigreturn: ::c_long = 139;
++pub const SYS_setpriority: ::c_long = 140;
++pub const SYS_getpriority: ::c_long = 141;
++pub const SYS_reboot: ::c_long = 142;
++pub const SYS_setregid: ::c_long = 143;
++pub const SYS_setgid: ::c_long = 144;
++pub const SYS_setreuid: ::c_long = 145;
++pub const SYS_setuid: ::c_long = 146;
++pub const SYS_setresuid: ::c_long = 147;
++pub const SYS_getresuid: ::c_long = 148;
++pub const SYS_setresgid: ::c_long = 149;
++pub const SYS_getresgid: ::c_long = 150;
++pub const SYS_setfsuid: ::c_long = 151;
++pub const SYS_setfsgid: ::c_long = 152;
++pub const SYS_times: ::c_long = 153;
++pub const SYS_setpgid: ::c_long = 154;
++pub const SYS_getpgid: ::c_long = 155;
++pub const SYS_getsid: ::c_long = 156;
++pub const SYS_setsid: ::c_long = 157;
++pub const SYS_getgroups: ::c_long = 158;
++pub const SYS_setgroups: ::c_long = 159;
++pub const SYS_uname: ::c_long = 160;
++pub const SYS_sethostname: ::c_long = 161;
++pub const SYS_setdomainname: ::c_long = 162;
++pub const SYS_getrusage: ::c_long = 165;
++pub const SYS_umask: ::c_long = 166;
++pub const SYS_prctl: ::c_long = 167;
++pub const SYS_getcpu: ::c_long = 168;
++pub const SYS_gettimeofday: ::c_long = 169;
++pub const SYS_settimeofday: ::c_long = 170;
++pub const SYS_adjtimex: ::c_long = 171;
++pub const SYS_getpid: ::c_long = 172;
++pub const SYS_getppid: ::c_long = 173;
++pub const SYS_getuid: ::c_long = 174;
++pub const SYS_geteuid: ::c_long = 175;
++pub const SYS_getgid: ::c_long = 176;
++pub const SYS_getegid: ::c_long = 177;
++pub const SYS_gettid: ::c_long = 178;
++pub const SYS_sysinfo: ::c_long = 179;
++pub const SYS_mq_open: ::c_long = 180;
++pub const SYS_mq_unlink: ::c_long = 181;
++pub const SYS_mq_timedsend: ::c_long = 182;
++pub const SYS_mq_timedreceive: ::c_long = 183;
++pub const SYS_mq_notify: ::c_long = 184;
++pub const SYS_mq_getsetattr: ::c_long = 185;
++pub const SYS_msgget: ::c_long = 186;
++pub const SYS_msgctl: ::c_long = 187;
++pub const SYS_msgrcv: ::c_long = 188;
++pub const SYS_msgsnd: ::c_long = 189;
++pub const SYS_semget: ::c_long = 190;
++pub const SYS_semctl: ::c_long = 191;
++pub const SYS_semtimedop: ::c_long = 192;
++pub const SYS_semop: ::c_long = 193;
++pub const SYS_shmget: ::c_long = 194;
++pub const SYS_shmctl: ::c_long = 195;
++pub const SYS_shmat: ::c_long = 196;
++pub const SYS_shmdt: ::c_long = 197;
++pub const SYS_socket: ::c_long = 198;
++pub const SYS_socketpair: ::c_long = 199;
++pub const SYS_bind: ::c_long = 200;
++pub const SYS_listen: ::c_long = 201;
++pub const SYS_accept: ::c_long = 202;
++pub const SYS_connect: ::c_long = 203;
++pub const SYS_getsockname: ::c_long = 204;
++pub const SYS_getpeername: ::c_long = 205;
++pub const SYS_sendto: ::c_long = 206;
++pub const SYS_recvfrom: ::c_long = 207;
++pub const SYS_setsockopt: ::c_long = 208;
++pub const SYS_getsockopt: ::c_long = 209;
++pub const SYS_shutdown: ::c_long = 210;
++pub const SYS_sendmsg: ::c_long = 211;
++pub const SYS_recvmsg: ::c_long = 212;
++pub const SYS_readahead: ::c_long = 213;
++pub const SYS_brk: ::c_long = 214;
++pub const SYS_munmap: ::c_long = 215;
++pub const SYS_mremap: ::c_long = 216;
++pub const SYS_add_key: ::c_long = 217;
++pub const SYS_request_key: ::c_long = 218;
++pub const SYS_keyctl: ::c_long = 219;
++pub const SYS_clone: ::c_long = 220;
++pub const SYS_execve: ::c_long = 221;
++pub const SYS_mmap: ::c_long = 222;
++pub const SYS_fadvise64: ::c_long = 223;
++pub const SYS_swapon: ::c_long = 224;
++pub const SYS_swapoff: ::c_long = 225;
++pub const SYS_mprotect: ::c_long = 226;
++pub const SYS_msync: ::c_long = 227;
++pub const SYS_mlock: ::c_long = 228;
++pub const SYS_munlock: ::c_long = 229;
++pub const SYS_mlockall: ::c_long = 230;
++pub const SYS_munlockall: ::c_long = 231;
++pub const SYS_mincore: ::c_long = 232;
++pub const SYS_madvise: ::c_long = 233;
++pub const SYS_remap_file_pages: ::c_long = 234;
++pub const SYS_mbind: ::c_long = 235;
++pub const SYS_get_mempolicy: ::c_long = 236;
++pub const SYS_set_mempolicy: ::c_long = 237;
++pub const SYS_migrate_pages: ::c_long = 238;
++pub const SYS_move_pages: ::c_long = 239;
++pub const SYS_rt_tgsigqueueinfo: ::c_long = 240;
++pub const SYS_perf_event_open: ::c_long = 241;
++pub const SYS_accept4: ::c_long = 242;
++pub const SYS_recvmmsg: ::c_long = 243;
++pub const SYS_arch_specific_syscall: ::c_long = 244;
++pub const SYS_wait4: ::c_long = 260;
++pub const SYS_prlimit64: ::c_long = 261;
++pub const SYS_fanotify_init: ::c_long = 262;
++pub const SYS_fanotify_mark: ::c_long = 263;
++pub const SYS_name_to_handle_at: ::c_long = 264;
++pub const SYS_open_by_handle_at: ::c_long = 265;
++pub const SYS_clock_adjtime: ::c_long = 266;
++pub const SYS_syncfs: ::c_long = 267;
++pub const SYS_setns: ::c_long = 268;
++pub const SYS_sendmmsg: ::c_long = 269;
++pub const SYS_process_vm_readv: ::c_long = 270;
++pub const SYS_process_vm_writev: ::c_long = 271;
++pub const SYS_kcmp: ::c_long = 272;
++pub const SYS_finit_module: ::c_long = 273;
++pub const SYS_sched_setattr: ::c_long = 274;
++pub const SYS_sched_getattr: ::c_long = 275;
++pub const SYS_renameat2: ::c_long = 276;
++pub const SYS_seccomp: ::c_long = 277;
++pub const SYS_getrandom: ::c_long = 278;
++pub const SYS_memfd_create: ::c_long = 279;
++pub const SYS_bpf: ::c_long = 280;
++pub const SYS_execveat: ::c_long = 281;
++pub const SYS_userfaultfd: ::c_long = 282;
++pub const SYS_membarrier: ::c_long = 283;
++pub const SYS_mlock2: ::c_long = 284;
++pub const SYS_copy_file_range: ::c_long = 285;
++pub const SYS_preadv2: ::c_long = 286;
++pub const SYS_pwritev2: ::c_long = 287;
++pub const SYS_pkey_mprotect: ::c_long = 288;
++pub const SYS_pkey_alloc: ::c_long = 289;
++pub const SYS_pkey_free: ::c_long = 290;
++pub const SYS_statx: ::c_long = 291;
++pub const SYS_io_pgetevents: ::c_long = 292;
++pub const SYS_rseq: ::c_long = 293;
++pub const SYS_kexec_file_load: ::c_long = 294;
++pub const SYS_pidfd_send_signal: ::c_long = 424;
++pub const SYS_io_uring_setup: ::c_long = 425;
++pub const SYS_io_uring_enter: ::c_long = 426;
++pub const SYS_io_uring_register: ::c_long = 427;
++pub const SYS_open_tree: ::c_long = 428;
++pub const SYS_move_mount: ::c_long = 429;
++pub const SYS_fsopen: ::c_long = 430;
++pub const SYS_fsconfig: ::c_long = 431;
++pub const SYS_fsmount: ::c_long = 432;
++pub const SYS_fspick: ::c_long = 433;
++pub const SYS_pidfd_open: ::c_long = 434;
++pub const SYS_clone3: ::c_long = 435;
++pub const SYS_close_range: ::c_long = 436;
++pub const SYS_openat2: ::c_long = 437;
++pub const SYS_pidfd_getfd: ::c_long = 438;
++pub const SYS_faccessat2: ::c_long = 439;
++pub const SYS_process_madvise: ::c_long = 440;
++pub const SYS_epoll_pwait2: ::c_long = 441;
++pub const SYS_mount_setattr: ::c_long = 442;
++pub const SYS_quotactl_fd: ::c_long = 443;
++pub const SYS_landlock_create_ruleset: ::c_long = 444;
++pub const SYS_landlock_add_rule: ::c_long = 445;
++pub const SYS_landlock_restrict_self: ::c_long = 446;
++pub const SYS_process_mrelease: ::c_long = 448;
++pub const SYS_futex_waitv: ::c_long = 449;
++pub const SYS_set_mempolicy_home_node: ::c_long = 450;
++
++pub const O_APPEND: ::c_int = 1024;
++pub const O_DIRECT: ::c_int = 0x4000;
++pub const O_DIRECTORY: ::c_int = 0x10000;
++pub const O_LARGEFILE: ::c_int = 0;
++pub const O_NOFOLLOW: ::c_int = 0x20000;
++pub const O_CREAT: ::c_int = 64;
++pub const O_EXCL: ::c_int = 128;
++pub const O_NOCTTY: ::c_int = 256;
++pub const O_NONBLOCK: ::c_int = 2048;
++pub const O_SYNC: ::c_int = 1052672;
++pub const O_RSYNC: ::c_int = 1052672;
++pub const O_DSYNC: ::c_int = 4096;
++pub const O_ASYNC: ::c_int = 4096;
++
++pub const SIGSTKSZ: ::size_t = 16384;
++pub const MINSIGSTKSZ: ::size_t = 4096;
++
++pub const ENAMETOOLONG: ::c_int = 36;
++pub const ENOLCK: ::c_int = 37;
++pub const ENOSYS: ::c_int = 38;
++pub const ENOTEMPTY: ::c_int = 39;
++pub const ELOOP: ::c_int = 40;
++pub const ENOMSG: ::c_int = 42;
++pub const EIDRM: ::c_int = 43;
++pub const ECHRNG: ::c_int = 44;
++pub const EL2NSYNC: ::c_int = 45;
++pub const EL3HLT: ::c_int = 46;
++pub const EL3RST: ::c_int = 47;
++pub const ELNRNG: ::c_int = 48;
++pub const EUNATCH: ::c_int = 49;
++pub const ENOCSI: ::c_int = 50;
++pub const EL2HLT: ::c_int = 51;
++pub const EBADE: ::c_int = 52;
++pub const EBADR: ::c_int = 53;
++pub const EXFULL: ::c_int = 54;
++pub const ENOANO: ::c_int = 55;
++pub const EBADRQC: ::c_int = 56;
++pub const EBADSLT: ::c_int = 57;
++pub const EMULTIHOP: ::c_int = 72;
++pub const EOVERFLOW: ::c_int = 75;
++pub const ENOTUNIQ: ::c_int = 76;
++pub const EBADFD: ::c_int = 77;
++pub const EBADMSG: ::c_int = 74;
++pub const EREMCHG: ::c_int = 78;
++pub const ELIBACC: ::c_int = 79;
++pub const ELIBBAD: ::c_int = 80;
++pub const ELIBSCN: ::c_int = 81;
++pub const ELIBMAX: ::c_int = 82;
++pub const ELIBEXEC: ::c_int = 83;
++pub const EILSEQ: ::c_int = 84;
++pub const ERESTART: ::c_int = 85;
++pub const ESTRPIPE: ::c_int = 86;
++pub const EUSERS: ::c_int = 87;
++pub const ENOTSOCK: ::c_int = 88;
++pub const EDESTADDRREQ: ::c_int = 89;
++pub const EMSGSIZE: ::c_int = 90;
++pub const EPROTOTYPE: ::c_int = 91;
++pub const ENOPROTOOPT: ::c_int = 92;
++pub const EPROTONOSUPPORT: ::c_int = 93;
++pub const ESOCKTNOSUPPORT: ::c_int = 94;
++pub const EOPNOTSUPP: ::c_int = 95;
++pub const ENOTSUP: ::c_int = EOPNOTSUPP;
++pub const EPFNOSUPPORT: ::c_int = 96;
++pub const EAFNOSUPPORT: ::c_int = 97;
++pub const EADDRINUSE: ::c_int = 98;
++pub const EADDRNOTAVAIL: ::c_int = 99;
++pub const ENETDOWN: ::c_int = 100;
++pub const ENETUNREACH: ::c_int = 101;
++pub const ENETRESET: ::c_int = 102;
++pub const ECONNABORTED: ::c_int = 103;
++pub const ECONNRESET: ::c_int = 104;
++pub const ENOBUFS: ::c_int = 105;
++pub const EISCONN: ::c_int = 106;
++pub const ENOTCONN: ::c_int = 107;
++pub const ESHUTDOWN: ::c_int = 108;
++pub const ETOOMANYREFS: ::c_int = 109;
++pub const ETIMEDOUT: ::c_int = 110;
++pub const ECONNREFUSED: ::c_int = 111;
++pub const EHOSTDOWN: ::c_int = 112;
++pub const EHOSTUNREACH: ::c_int = 113;
++pub const EALREADY: ::c_int = 114;
++pub const EINPROGRESS: ::c_int = 115;
++pub const ESTALE: ::c_int = 116;
++pub const EUCLEAN: ::c_int = 117;
++pub const ENOTNAM: ::c_int = 118;
++pub const ENAVAIL: ::c_int = 119;
++pub const EISNAM: ::c_int = 120;
++pub const EREMOTEIO: ::c_int = 121;
++pub const EDQUOT: ::c_int = 122;
++pub const ENOMEDIUM: ::c_int = 123;
++pub const EMEDIUMTYPE: ::c_int = 124;
++pub const ECANCELED: ::c_int = 125;
++pub const ENOKEY: ::c_int = 126;
++pub const EKEYEXPIRED: ::c_int = 127;
++pub const EKEYREVOKED: ::c_int = 128;
++pub const EKEYREJECTED: ::c_int = 129;
++pub const EOWNERDEAD: ::c_int = 130;
++pub const ENOTRECOVERABLE: ::c_int = 131;
++pub const EHWPOISON: ::c_int = 133;
++pub const ERFKILL: ::c_int = 132;
++
++pub const SA_ONSTACK: ::c_int = 0x08000000;
++pub const SA_SIGINFO: ::c_int = 0x00000004;
++pub const SA_NOCLDWAIT: ::c_int = 0x00000002;
++
++pub const SIGCHLD: ::c_int = 17;
++pub const SIGBUS: ::c_int = 7;
++pub const SIGTTIN: ::c_int = 21;
++pub const SIGTTOU: ::c_int = 22;
++pub const SIGXCPU: ::c_int = 24;
++pub const SIGXFSZ: ::c_int = 25;
++pub const SIGVTALRM: ::c_int = 26;
++pub const SIGPROF: ::c_int = 27;
++pub const SIGWINCH: ::c_int = 28;
++pub const SIGUSR1: ::c_int = 10;
++pub const SIGUSR2: ::c_int = 12;
++pub const SIGCONT: ::c_int = 18;
++pub const SIGSTOP: ::c_int = 19;
++pub const SIGTSTP: ::c_int = 20;
++pub const SIGURG: ::c_int = 23;
++pub const SIGIO: ::c_int = 29;
++pub const SIGSYS: ::c_int = 31;
++pub const SIGSTKFLT: ::c_int = 16;
++pub const SIGPOLL: ::c_int = 29;
++pub const SIGPWR: ::c_int = 30;
++pub const SIG_SETMASK: ::c_int = 2;
++pub const SIG_BLOCK: ::c_int = 0;
++pub const SIG_UNBLOCK: ::c_int = 1;
++
++pub const F_GETLK: ::c_int = 5;
++pub const F_GETOWN: ::c_int = 9;
++pub const F_SETLK: ::c_int = 6;
++pub const F_SETLKW: ::c_int = 7;
++pub const F_SETOWN: ::c_int = 8;
++
++pub const VEOF: usize = 4;
++
++pub const POLLWRNORM: ::c_short = 0x100;
++pub const POLLWRBAND: ::c_short = 0x200;
++
++pub const SOCK_STREAM: ::c_int = 1;
++pub const SOCK_DGRAM: ::c_int = 2;
++
++pub const MAP_ANON: ::c_int = 0x0020;
++pub const MAP_GROWSDOWN: ::c_int = 0x0100;
++pub const MAP_DENYWRITE: ::c_int = 0x0800;
++pub const MAP_EXECUTABLE: ::c_int = 0x01000;
++pub const MAP_LOCKED: ::c_int = 0x02000;
++pub const MAP_NORESERVE: ::c_int = 0x04000;
++pub const MAP_POPULATE: ::c_int = 0x08000;
++pub const MAP_NONBLOCK: ::c_int = 0x010000;
++pub const MAP_STACK: ::c_int = 0x020000;
++pub const MAP_HUGETLB: ::c_int = 0x040000;
++pub const MAP_SYNC: ::c_int = 0x080000;
++
++pub const MCL_CURRENT: ::c_int = 0x0001;
++pub const MCL_FUTURE: ::c_int = 0x0002;
++pub const MCL_ONFAULT: ::c_int = 0x0004;
++pub const CBAUD: ::tcflag_t = 0o0010017;
++pub const TAB1: ::c_int = 0x00000800;
++pub const TAB2: ::c_int = 0x00001000;
++pub const TAB3: ::c_int = 0x00001800;
++pub const CR1: ::c_int = 0x00000200;
++pub const CR2: ::c_int = 0x00000400;
++pub const CR3: ::c_int = 0x00000600;
++pub const FF1: ::c_int = 0x00008000;
++pub const BS1: ::c_int = 0x00002000;
++pub const VT1: ::c_int = 0x00004000;
++pub const VWERASE: usize = 14;
++pub const VREPRINT: usize = 12;
++pub const VSUSP: usize = 10;
++pub const VSTART: usize = 8;
++pub const VSTOP: usize = 9;
++pub const VDISCARD: usize = 13;
++pub const VTIME: usize = 5;
++pub const IXON: ::tcflag_t = 0x00000400;
++pub const IXOFF: ::tcflag_t = 0x00001000;
++pub const ONLCR: ::tcflag_t = 0x4;
++pub const CSIZE: ::tcflag_t = 0x00000030;
++pub const CS6: ::tcflag_t = 0x00000010;
++pub const CS7: ::tcflag_t = 0x00000020;
++pub const CS8: ::tcflag_t = 0x00000030;
++pub const CSTOPB: ::tcflag_t = 0x00000040;
++pub const CREAD: ::tcflag_t = 0x00000080;
++pub const PARENB: ::tcflag_t = 0x00000100;
++pub const PARODD: ::tcflag_t = 0x00000200;
++pub const HUPCL: ::tcflag_t = 0x00000400;
++pub const CLOCAL: ::tcflag_t = 0x00000800;
++pub const ECHOKE: ::tcflag_t = 0x00000800;
++pub const ECHOE: ::tcflag_t = 0x00000010;
++pub const ECHOK: ::tcflag_t = 0x00000020;
++pub const ECHONL: ::tcflag_t = 0x00000040;
++pub const ECHOPRT: ::tcflag_t = 0x00000400;
++pub const ECHOCTL: ::tcflag_t = 0x00000200;
++pub const ISIG: ::tcflag_t = 0x00000001;
++pub const ICANON: ::tcflag_t = 0x00000002;
++pub const PENDIN: ::tcflag_t = 0x00004000;
++pub const NOFLSH: ::tcflag_t = 0x00000080;
++pub const CIBAUD: ::tcflag_t = 0o02003600000;
++pub const CBAUDEX: ::tcflag_t = 0o010000;
++pub const VSWTC: usize = 7;
++pub const OLCUC: ::tcflag_t = 0o000002;
++pub const NLDLY: ::tcflag_t = 0o000400;
++pub const CRDLY: ::tcflag_t = 0o003000;
++pub const TABDLY: ::tcflag_t = 0o014000;
++pub const BSDLY: ::tcflag_t = 0o020000;
++pub const FFDLY: ::tcflag_t = 0o100000;
++pub const VTDLY: ::tcflag_t = 0o040000;
++pub const XTABS: ::tcflag_t = 0o014000;
++pub const B57600: ::speed_t = 0o010001;
++pub const B115200: ::speed_t = 0o010002;
++pub const B230400: ::speed_t = 0o010003;
++pub const B460800: ::speed_t = 0o010004;
++pub const B500000: ::speed_t = 0o010005;
++pub const B576000: ::speed_t = 0o010006;
++pub const B921600: ::speed_t = 0o010007;
++pub const B1000000: ::speed_t = 0o010010;
++pub const B1152000: ::speed_t = 0o010011;
++pub const B1500000: ::speed_t = 0o010012;
++pub const B2000000: ::speed_t = 0o010013;
++pub const B2500000: ::speed_t = 0o010014;
++pub const B3000000: ::speed_t = 0o010015;
++pub const B3500000: ::speed_t = 0o010016;
++pub const B4000000: ::speed_t = 0o010017;
++
++pub const EDEADLK: ::c_int = 35;
++pub const EDEADLOCK: ::c_int = EDEADLK;
++pub const EXTPROC: ::tcflag_t = 0x00010000;
++pub const VEOL: usize = 11;
++pub const VEOL2: usize = 16;
++pub const VMIN: usize = 6;
++pub const IEXTEN: ::tcflag_t = 0x00008000;
++pub const TOSTOP: ::tcflag_t = 0x00000100;
++pub const FLUSHO: ::tcflag_t = 0x00001000;
++
++cfg_if! {
++ if #[cfg(libc_align)] {
++ mod align;
++ pub use self::align::*;
++ }
++}
+diff --git a/vendor/libc-0.2.148/src/unix/linux_like/linux/musl/b64/mod.rs b/vendor/libc-0.2.148/src/unix/linux_like/linux/musl/b64/mod.rs
+index f437355d9..fc1e275df 100644
+--- a/vendor/libc-0.2.148/src/unix/linux_like/linux/musl/b64/mod.rs
++++ b/vendor/libc-0.2.148/src/unix/linux_like/linux/musl/b64/mod.rs
+@@ -161,6 +161,9 @@ cfg_if! {
+ } else if #[cfg(any(target_arch = "riscv64"))] {
+ mod riscv64;
+ pub use self::riscv64::*;
++ } else if #[cfg(any(target_arch = "loongarch64"))] {
++ mod loongarch64;
++ pub use self::loongarch64::*;
+ } else {
+ // Unknown target_arch
+ }
+diff --git a/vendor/libc-0.2.148/src/unix/linux_like/linux/musl/mod.rs b/vendor/libc-0.2.148/src/unix/linux_like/linux/musl/mod.rs
+index 4c6053389..40b7ac786 100644
+--- a/vendor/libc-0.2.148/src/unix/linux_like/linux/musl/mod.rs
++++ b/vendor/libc-0.2.148/src/unix/linux_like/linux/musl/mod.rs
+@@ -791,7 +791,8 @@ cfg_if! {
+ target_arch = "mips64",
+ target_arch = "powerpc64",
+ target_arch = "s390x",
+- target_arch = "riscv64"))] {
++ target_arch = "riscv64",
++ target_arch = "loongarch64"))] {
+ mod b64;
+ pub use self::b64::*;
+ } else if #[cfg(any(target_arch = "x86",
+--
+2.44.0
+
diff --git a/main/rust/0010-vendor-libc-0.2.150-Add-support-for-loongarch64-linu.patch b/main/rust/0010-vendor-libc-0.2.150-Add-support-for-loongarch64-linu.patch
new file mode 100644
index 00000000000..8c88f920c8b
--- /dev/null
+++ b/main/rust/0010-vendor-libc-0.2.150-Add-support-for-loongarch64-linu.patch
@@ -0,0 +1,761 @@
+From 6396be7ffc6ca273bba0958c80547cb32281a964 Mon Sep 17 00:00:00 2001
+From: WANG Rui <wangrui@loongson.cn>
+Date: Mon, 4 Mar 2024 19:28:13 +0800
+Subject: [PATCH 10/12] vendor: libc-0.2.150: Add support for
+ loongarch64-linux-musl
+
+---
+ .../linux/musl/b64/loongarch64/align.rs | 40 ++
+ .../linux/musl/b64/loongarch64/mod.rs | 663 ++++++++++++++++++
+ .../src/unix/linux_like/linux/musl/b64/mod.rs | 3 +
+ .../src/unix/linux_like/linux/musl/mod.rs | 3 +-
+ 4 files changed, 708 insertions(+), 1 deletions(-)
+ create mode 100644 vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/loongarch64/align.rs
+ create mode 100644 vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs
+
+diff --git a/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/loongarch64/align.rs b/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/loongarch64/align.rs
+new file mode 100644
+index 000000000..dc191f51f
+--- /dev/null
++++ b/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/loongarch64/align.rs
+@@ -0,0 +1,40 @@
++s_no_extra_traits! {
++ #[allow(missing_debug_implementations)]
++ #[repr(align(16))]
++ pub struct max_align_t {
++ priv_: [f64; 4]
++ }
++}
++
++s! {
++ pub struct ucontext_t {
++ pub uc_flags: ::c_ulong,
++ pub uc_link: *mut ucontext_t,
++ pub uc_stack: ::stack_t,
++ pub uc_sigmask: ::sigset_t,
++ pub uc_mcontext: mcontext_t,
++ }
++
++ #[repr(align(16))]
++ pub struct mcontext_t {
++ pub __pc: ::c_ulonglong,
++ pub __gregs: [::c_ulonglong; 32],
++ pub __flags: ::c_uint,
++ pub __extcontext: [::c_ulonglong; 0],
++ }
++
++ #[repr(align(8))]
++ pub struct clone_args {
++ pub flags: ::c_ulonglong,
++ pub pidfd: ::c_ulonglong,
++ pub child_tid: ::c_ulonglong,
++ pub parent_tid: ::c_ulonglong,
++ pub exit_signal: ::c_ulonglong,
++ pub stack: ::c_ulonglong,
++ pub stack_size: ::c_ulonglong,
++ pub tls: ::c_ulonglong,
++ pub set_tid: ::c_ulonglong,
++ pub set_tid_size: ::c_ulonglong,
++ pub cgroup: ::c_ulonglong,
++ }
++}
+diff --git a/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs b/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs
+new file mode 100644
+index 000000000..dffbc2341
+--- /dev/null
++++ b/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/loongarch64/mod.rs
+@@ -0,0 +1,663 @@
++//! LoongArch-specific definitions for 64-bit linux-like values
++
++pub type c_char = i8;
++pub type wchar_t = ::c_int;
++
++pub type nlink_t = ::c_uint;
++pub type blksize_t = ::c_int;
++pub type fsblkcnt64_t = ::c_ulong;
++pub type fsfilcnt64_t = ::c_ulong;
++pub type __u64 = ::c_ulonglong;
++pub type __s64 = ::c_longlong;
++
++s! {
++ pub struct pthread_attr_t {
++ __size: [::c_ulong; 7],
++ }
++
++ pub struct stat {
++ pub st_dev: ::dev_t,
++ pub st_ino: ::ino_t,
++ pub st_mode: ::mode_t,
++ pub st_nlink: ::nlink_t,
++ pub st_uid: ::uid_t,
++ pub st_gid: ::gid_t,
++ pub st_rdev: ::dev_t,
++ __pad1: ::dev_t,
++ pub st_size: ::off_t,
++ pub st_blksize: ::blksize_t,
++ __pad2: ::c_int,
++ pub st_blocks: ::blkcnt_t,
++ pub st_atime: ::time_t,
++ pub st_atime_nsec: ::c_long,
++ pub st_mtime: ::time_t,
++ pub st_mtime_nsec: ::c_long,
++ pub st_ctime: ::time_t,
++ pub st_ctime_nsec: ::c_long,
++ __unused: [::c_int; 2usize],
++ }
++
++ pub struct stat64 {
++ pub st_dev: ::dev_t,
++ pub st_ino: ::ino64_t,
++ pub st_mode: ::mode_t,
++ pub st_nlink: ::nlink_t,
++ pub st_uid: ::uid_t,
++ pub st_gid: ::gid_t,
++ pub st_rdev: ::dev_t,
++ pub __pad1: ::dev_t,
++ pub st_size: ::off64_t,
++ pub st_blksize: ::blksize_t,
++ pub __pad2: ::c_int,
++ pub st_blocks: ::blkcnt_t,
++ pub st_atime: ::time_t,
++ pub st_atime_nsec: ::c_long,
++ pub st_mtime: ::time_t,
++ pub st_mtime_nsec: ::c_long,
++ pub st_ctime: ::time_t,
++ pub st_ctime_nsec: ::c_long,
++ __unused: [::c_int; 2],
++ }
++
++ pub struct statfs {
++ pub f_type: ::c_long,
++ pub f_bsize: ::c_long,
++ pub f_blocks: ::fsblkcnt_t,
++ pub f_bfree: ::fsblkcnt_t,
++ pub f_bavail: ::fsblkcnt_t,
++ pub f_files: ::fsfilcnt_t,
++ pub f_ffree: ::fsfilcnt_t,
++ pub f_fsid: ::fsid_t,
++ pub f_namelen: ::c_long,
++ pub f_frsize: ::c_long,
++ pub f_flags: ::c_long,
++ pub f_spare: [::c_long; 4],
++ }
++
++ pub struct statfs64 {
++ pub f_type: ::c_long,
++ pub f_bsize: ::c_long,
++ pub f_blocks: ::fsblkcnt64_t,
++ pub f_bfree: ::fsblkcnt64_t,
++ pub f_bavail: ::fsblkcnt64_t,
++ pub f_files: ::fsfilcnt64_t,
++ pub f_ffree: ::fsfilcnt64_t,
++ pub f_fsid: ::fsid_t,
++ pub f_namelen: ::c_long,
++ pub f_frsize: ::c_long,
++ pub f_flags: ::c_long,
++ pub f_spare: [::c_long; 4],
++ }
++
++ pub struct ipc_perm {
++ pub __key: ::key_t,
++ pub uid: ::uid_t,
++ pub gid: ::gid_t,
++ pub cuid: ::uid_t,
++ pub cgid: ::gid_t,
++ pub mode: ::c_uint,
++ pub __seq: ::c_ushort,
++ __pad2: ::c_ushort,
++ __unused1: ::c_ulong,
++ __unused2: ::c_ulong,
++ }
++
++ pub struct user_regs_struct {
++ pub regs: [u64; 32],
++ pub orig_a0: u64,
++ pub csr_era: u64,
++ pub csr_badv: u64,
++ pub reserved: [u64; 10],
++
++ }
++
++ pub struct user_fp_struct {
++ pub fpr: [u64; 32],
++ pub fcc: u64,
++ pub fcsr: u32,
++ }
++}
++
++pub const SYS_io_setup: ::c_long = 0;
++pub const SYS_io_destroy: ::c_long = 1;
++pub const SYS_io_submit: ::c_long = 2;
++pub const SYS_io_cancel: ::c_long = 3;
++pub const SYS_io_getevents: ::c_long = 4;
++pub const SYS_setxattr: ::c_long = 5;
++pub const SYS_lsetxattr: ::c_long = 6;
++pub const SYS_fsetxattr: ::c_long = 7;
++pub const SYS_getxattr: ::c_long = 8;
++pub const SYS_lgetxattr: ::c_long = 9;
++pub const SYS_fgetxattr: ::c_long = 10;
++pub const SYS_listxattr: ::c_long = 11;
++pub const SYS_llistxattr: ::c_long = 12;
++pub const SYS_flistxattr: ::c_long = 13;
++pub const SYS_removexattr: ::c_long = 14;
++pub const SYS_lremovexattr: ::c_long = 15;
++pub const SYS_fremovexattr: ::c_long = 16;
++pub const SYS_getcwd: ::c_long = 17;
++pub const SYS_lookup_dcookie: ::c_long = 18;
++pub const SYS_eventfd2: ::c_long = 19;
++pub const SYS_epoll_create1: ::c_long = 20;
++pub const SYS_epoll_ctl: ::c_long = 21;
++pub const SYS_epoll_pwait: ::c_long = 22;
++pub const SYS_dup: ::c_long = 23;
++pub const SYS_dup3: ::c_long = 24;
++pub const SYS_fcntl: ::c_long = 25;
++pub const SYS_inotify_init1: ::c_long = 26;
++pub const SYS_inotify_add_watch: ::c_long = 27;
++pub const SYS_inotify_rm_watch: ::c_long = 28;
++pub const SYS_ioctl: ::c_long = 29;
++pub const SYS_ioprio_set: ::c_long = 30;
++pub const SYS_ioprio_get: ::c_long = 31;
++pub const SYS_flock: ::c_long = 32;
++pub const SYS_mknodat: ::c_long = 33;
++pub const SYS_mkdirat: ::c_long = 34;
++pub const SYS_unlinkat: ::c_long = 35;
++pub const SYS_symlinkat: ::c_long = 36;
++pub const SYS_linkat: ::c_long = 37;
++pub const SYS_umount2: ::c_long = 39;
++pub const SYS_mount: ::c_long = 40;
++pub const SYS_pivot_root: ::c_long = 41;
++pub const SYS_nfsservctl: ::c_long = 42;
++pub const SYS_statfs: ::c_long = 43;
++pub const SYS_fstatfs: ::c_long = 44;
++pub const SYS_truncate: ::c_long = 45;
++pub const SYS_ftruncate: ::c_long = 46;
++pub const SYS_fallocate: ::c_long = 47;
++pub const SYS_faccessat: ::c_long = 48;
++pub const SYS_chdir: ::c_long = 49;
++pub const SYS_fchdir: ::c_long = 50;
++pub const SYS_chroot: ::c_long = 51;
++pub const SYS_fchmod: ::c_long = 52;
++pub const SYS_fchmodat: ::c_long = 53;
++pub const SYS_fchownat: ::c_long = 54;
++pub const SYS_fchown: ::c_long = 55;
++pub const SYS_openat: ::c_long = 56;
++pub const SYS_close: ::c_long = 57;
++pub const SYS_vhangup: ::c_long = 58;
++pub const SYS_pipe2: ::c_long = 59;
++pub const SYS_quotactl: ::c_long = 60;
++pub const SYS_getdents64: ::c_long = 61;
++pub const SYS_lseek: ::c_long = 62;
++pub const SYS_read: ::c_long = 63;
++pub const SYS_write: ::c_long = 64;
++pub const SYS_readv: ::c_long = 65;
++pub const SYS_writev: ::c_long = 66;
++pub const SYS_pread64: ::c_long = 67;
++pub const SYS_pwrite64: ::c_long = 68;
++pub const SYS_preadv: ::c_long = 69;
++pub const SYS_pwritev: ::c_long = 70;
++pub const SYS_sendfile: ::c_long = 71;
++pub const SYS_pselect6: ::c_long = 72;
++pub const SYS_ppoll: ::c_long = 73;
++pub const SYS_signalfd4: ::c_long = 74;
++pub const SYS_vmsplice: ::c_long = 75;
++pub const SYS_splice: ::c_long = 76;
++pub const SYS_tee: ::c_long = 77;
++pub const SYS_readlinkat: ::c_long = 78;
++pub const SYS_sync: ::c_long = 81;
++pub const SYS_fsync: ::c_long = 82;
++pub const SYS_fdatasync: ::c_long = 83;
++pub const SYS_sync_file_range: ::c_long = 84;
++pub const SYS_timerfd_create: ::c_long = 85;
++pub const SYS_timerfd_settime: ::c_long = 86;
++pub const SYS_timerfd_gettime: ::c_long = 87;
++pub const SYS_utimensat: ::c_long = 88;
++pub const SYS_acct: ::c_long = 89;
++pub const SYS_capget: ::c_long = 90;
++pub const SYS_capset: ::c_long = 91;
++pub const SYS_personality: ::c_long = 92;
++pub const SYS_exit: ::c_long = 93;
++pub const SYS_exit_group: ::c_long = 94;
++pub const SYS_waitid: ::c_long = 95;
++pub const SYS_set_tid_address: ::c_long = 96;
++pub const SYS_unshare: ::c_long = 97;
++pub const SYS_futex: ::c_long = 98;
++pub const SYS_set_robust_list: ::c_long = 99;
++pub const SYS_get_robust_list: ::c_long = 100;
++pub const SYS_nanosleep: ::c_long = 101;
++pub const SYS_getitimer: ::c_long = 102;
++pub const SYS_setitimer: ::c_long = 103;
++pub const SYS_kexec_load: ::c_long = 104;
++pub const SYS_init_module: ::c_long = 105;
++pub const SYS_delete_module: ::c_long = 106;
++pub const SYS_timer_create: ::c_long = 107;
++pub const SYS_timer_gettime: ::c_long = 108;
++pub const SYS_timer_getoverrun: ::c_long = 109;
++pub const SYS_timer_settime: ::c_long = 110;
++pub const SYS_timer_delete: ::c_long = 111;
++pub const SYS_clock_settime: ::c_long = 112;
++pub const SYS_clock_gettime: ::c_long = 113;
++pub const SYS_clock_getres: ::c_long = 114;
++pub const SYS_clock_nanosleep: ::c_long = 115;
++pub const SYS_syslog: ::c_long = 116;
++pub const SYS_ptrace: ::c_long = 117;
++pub const SYS_sched_setparam: ::c_long = 118;
++pub const SYS_sched_setscheduler: ::c_long = 119;
++pub const SYS_sched_getscheduler: ::c_long = 120;
++pub const SYS_sched_getparam: ::c_long = 121;
++pub const SYS_sched_setaffinity: ::c_long = 122;
++pub const SYS_sched_getaffinity: ::c_long = 123;
++pub const SYS_sched_yield: ::c_long = 124;
++pub const SYS_sched_get_priority_max: ::c_long = 125;
++pub const SYS_sched_get_priority_min: ::c_long = 126;
++pub const SYS_sched_rr_get_interval: ::c_long = 127;
++pub const SYS_restart_syscall: ::c_long = 128;
++pub const SYS_kill: ::c_long = 129;
++pub const SYS_tkill: ::c_long = 130;
++pub const SYS_tgkill: ::c_long = 131;
++pub const SYS_sigaltstack: ::c_long = 132;
++pub const SYS_rt_sigsuspend: ::c_long = 133;
++pub const SYS_rt_sigaction: ::c_long = 134;
++pub const SYS_rt_sigprocmask: ::c_long = 135;
++pub const SYS_rt_sigpending: ::c_long = 136;
++pub const SYS_rt_sigtimedwait: ::c_long = 137;
++pub const SYS_rt_sigqueueinfo: ::c_long = 138;
++pub const SYS_rt_sigreturn: ::c_long = 139;
++pub const SYS_setpriority: ::c_long = 140;
++pub const SYS_getpriority: ::c_long = 141;
++pub const SYS_reboot: ::c_long = 142;
++pub const SYS_setregid: ::c_long = 143;
++pub const SYS_setgid: ::c_long = 144;
++pub const SYS_setreuid: ::c_long = 145;
++pub const SYS_setuid: ::c_long = 146;
++pub const SYS_setresuid: ::c_long = 147;
++pub const SYS_getresuid: ::c_long = 148;
++pub const SYS_setresgid: ::c_long = 149;
++pub const SYS_getresgid: ::c_long = 150;
++pub const SYS_setfsuid: ::c_long = 151;
++pub const SYS_setfsgid: ::c_long = 152;
++pub const SYS_times: ::c_long = 153;
++pub const SYS_setpgid: ::c_long = 154;
++pub const SYS_getpgid: ::c_long = 155;
++pub const SYS_getsid: ::c_long = 156;
++pub const SYS_setsid: ::c_long = 157;
++pub const SYS_getgroups: ::c_long = 158;
++pub const SYS_setgroups: ::c_long = 159;
++pub const SYS_uname: ::c_long = 160;
++pub const SYS_sethostname: ::c_long = 161;
++pub const SYS_setdomainname: ::c_long = 162;
++pub const SYS_getrusage: ::c_long = 165;
++pub const SYS_umask: ::c_long = 166;
++pub const SYS_prctl: ::c_long = 167;
++pub const SYS_getcpu: ::c_long = 168;
++pub const SYS_gettimeofday: ::c_long = 169;
++pub const SYS_settimeofday: ::c_long = 170;
++pub const SYS_adjtimex: ::c_long = 171;
++pub const SYS_getpid: ::c_long = 172;
++pub const SYS_getppid: ::c_long = 173;
++pub const SYS_getuid: ::c_long = 174;
++pub const SYS_geteuid: ::c_long = 175;
++pub const SYS_getgid: ::c_long = 176;
++pub const SYS_getegid: ::c_long = 177;
++pub const SYS_gettid: ::c_long = 178;
++pub const SYS_sysinfo: ::c_long = 179;
++pub const SYS_mq_open: ::c_long = 180;
++pub const SYS_mq_unlink: ::c_long = 181;
++pub const SYS_mq_timedsend: ::c_long = 182;
++pub const SYS_mq_timedreceive: ::c_long = 183;
++pub const SYS_mq_notify: ::c_long = 184;
++pub const SYS_mq_getsetattr: ::c_long = 185;
++pub const SYS_msgget: ::c_long = 186;
++pub const SYS_msgctl: ::c_long = 187;
++pub const SYS_msgrcv: ::c_long = 188;
++pub const SYS_msgsnd: ::c_long = 189;
++pub const SYS_semget: ::c_long = 190;
++pub const SYS_semctl: ::c_long = 191;
++pub const SYS_semtimedop: ::c_long = 192;
++pub const SYS_semop: ::c_long = 193;
++pub const SYS_shmget: ::c_long = 194;
++pub const SYS_shmctl: ::c_long = 195;
++pub const SYS_shmat: ::c_long = 196;
++pub const SYS_shmdt: ::c_long = 197;
++pub const SYS_socket: ::c_long = 198;
++pub const SYS_socketpair: ::c_long = 199;
++pub const SYS_bind: ::c_long = 200;
++pub const SYS_listen: ::c_long = 201;
++pub const SYS_accept: ::c_long = 202;
++pub const SYS_connect: ::c_long = 203;
++pub const SYS_getsockname: ::c_long = 204;
++pub const SYS_getpeername: ::c_long = 205;
++pub const SYS_sendto: ::c_long = 206;
++pub const SYS_recvfrom: ::c_long = 207;
++pub const SYS_setsockopt: ::c_long = 208;
++pub const SYS_getsockopt: ::c_long = 209;
++pub const SYS_shutdown: ::c_long = 210;
++pub const SYS_sendmsg: ::c_long = 211;
++pub const SYS_recvmsg: ::c_long = 212;
++pub const SYS_readahead: ::c_long = 213;
++pub const SYS_brk: ::c_long = 214;
++pub const SYS_munmap: ::c_long = 215;
++pub const SYS_mremap: ::c_long = 216;
++pub const SYS_add_key: ::c_long = 217;
++pub const SYS_request_key: ::c_long = 218;
++pub const SYS_keyctl: ::c_long = 219;
++pub const SYS_clone: ::c_long = 220;
++pub const SYS_execve: ::c_long = 221;
++pub const SYS_mmap: ::c_long = 222;
++pub const SYS_fadvise64: ::c_long = 223;
++pub const SYS_swapon: ::c_long = 224;
++pub const SYS_swapoff: ::c_long = 225;
++pub const SYS_mprotect: ::c_long = 226;
++pub const SYS_msync: ::c_long = 227;
++pub const SYS_mlock: ::c_long = 228;
++pub const SYS_munlock: ::c_long = 229;
++pub const SYS_mlockall: ::c_long = 230;
++pub const SYS_munlockall: ::c_long = 231;
++pub const SYS_mincore: ::c_long = 232;
++pub const SYS_madvise: ::c_long = 233;
++pub const SYS_remap_file_pages: ::c_long = 234;
++pub const SYS_mbind: ::c_long = 235;
++pub const SYS_get_mempolicy: ::c_long = 236;
++pub const SYS_set_mempolicy: ::c_long = 237;
++pub const SYS_migrate_pages: ::c_long = 238;
++pub const SYS_move_pages: ::c_long = 239;
++pub const SYS_rt_tgsigqueueinfo: ::c_long = 240;
++pub const SYS_perf_event_open: ::c_long = 241;
++pub const SYS_accept4: ::c_long = 242;
++pub const SYS_recvmmsg: ::c_long = 243;
++pub const SYS_arch_specific_syscall: ::c_long = 244;
++pub const SYS_wait4: ::c_long = 260;
++pub const SYS_prlimit64: ::c_long = 261;
++pub const SYS_fanotify_init: ::c_long = 262;
++pub const SYS_fanotify_mark: ::c_long = 263;
++pub const SYS_name_to_handle_at: ::c_long = 264;
++pub const SYS_open_by_handle_at: ::c_long = 265;
++pub const SYS_clock_adjtime: ::c_long = 266;
++pub const SYS_syncfs: ::c_long = 267;
++pub const SYS_setns: ::c_long = 268;
++pub const SYS_sendmmsg: ::c_long = 269;
++pub const SYS_process_vm_readv: ::c_long = 270;
++pub const SYS_process_vm_writev: ::c_long = 271;
++pub const SYS_kcmp: ::c_long = 272;
++pub const SYS_finit_module: ::c_long = 273;
++pub const SYS_sched_setattr: ::c_long = 274;
++pub const SYS_sched_getattr: ::c_long = 275;
++pub const SYS_renameat2: ::c_long = 276;
++pub const SYS_seccomp: ::c_long = 277;
++pub const SYS_getrandom: ::c_long = 278;
++pub const SYS_memfd_create: ::c_long = 279;
++pub const SYS_bpf: ::c_long = 280;
++pub const SYS_execveat: ::c_long = 281;
++pub const SYS_userfaultfd: ::c_long = 282;
++pub const SYS_membarrier: ::c_long = 283;
++pub const SYS_mlock2: ::c_long = 284;
++pub const SYS_copy_file_range: ::c_long = 285;
++pub const SYS_preadv2: ::c_long = 286;
++pub const SYS_pwritev2: ::c_long = 287;
++pub const SYS_pkey_mprotect: ::c_long = 288;
++pub const SYS_pkey_alloc: ::c_long = 289;
++pub const SYS_pkey_free: ::c_long = 290;
++pub const SYS_statx: ::c_long = 291;
++pub const SYS_io_pgetevents: ::c_long = 292;
++pub const SYS_rseq: ::c_long = 293;
++pub const SYS_kexec_file_load: ::c_long = 294;
++pub const SYS_pidfd_send_signal: ::c_long = 424;
++pub const SYS_io_uring_setup: ::c_long = 425;
++pub const SYS_io_uring_enter: ::c_long = 426;
++pub const SYS_io_uring_register: ::c_long = 427;
++pub const SYS_open_tree: ::c_long = 428;
++pub const SYS_move_mount: ::c_long = 429;
++pub const SYS_fsopen: ::c_long = 430;
++pub const SYS_fsconfig: ::c_long = 431;
++pub const SYS_fsmount: ::c_long = 432;
++pub const SYS_fspick: ::c_long = 433;
++pub const SYS_pidfd_open: ::c_long = 434;
++pub const SYS_clone3: ::c_long = 435;
++pub const SYS_close_range: ::c_long = 436;
++pub const SYS_openat2: ::c_long = 437;
++pub const SYS_pidfd_getfd: ::c_long = 438;
++pub const SYS_faccessat2: ::c_long = 439;
++pub const SYS_process_madvise: ::c_long = 440;
++pub const SYS_epoll_pwait2: ::c_long = 441;
++pub const SYS_mount_setattr: ::c_long = 442;
++pub const SYS_quotactl_fd: ::c_long = 443;
++pub const SYS_landlock_create_ruleset: ::c_long = 444;
++pub const SYS_landlock_add_rule: ::c_long = 445;
++pub const SYS_landlock_restrict_self: ::c_long = 446;
++pub const SYS_process_mrelease: ::c_long = 448;
++pub const SYS_futex_waitv: ::c_long = 449;
++pub const SYS_set_mempolicy_home_node: ::c_long = 450;
++
++pub const O_APPEND: ::c_int = 1024;
++pub const O_DIRECT: ::c_int = 0x4000;
++pub const O_DIRECTORY: ::c_int = 0x10000;
++pub const O_LARGEFILE: ::c_int = 0;
++pub const O_NOFOLLOW: ::c_int = 0x20000;
++pub const O_CREAT: ::c_int = 64;
++pub const O_EXCL: ::c_int = 128;
++pub const O_NOCTTY: ::c_int = 256;
++pub const O_NONBLOCK: ::c_int = 2048;
++pub const O_SYNC: ::c_int = 1052672;
++pub const O_RSYNC: ::c_int = 1052672;
++pub const O_DSYNC: ::c_int = 4096;
++pub const O_ASYNC: ::c_int = 4096;
++
++pub const SIGSTKSZ: ::size_t = 16384;
++pub const MINSIGSTKSZ: ::size_t = 4096;
++
++pub const ENAMETOOLONG: ::c_int = 36;
++pub const ENOLCK: ::c_int = 37;
++pub const ENOSYS: ::c_int = 38;
++pub const ENOTEMPTY: ::c_int = 39;
++pub const ELOOP: ::c_int = 40;
++pub const ENOMSG: ::c_int = 42;
++pub const EIDRM: ::c_int = 43;
++pub const ECHRNG: ::c_int = 44;
++pub const EL2NSYNC: ::c_int = 45;
++pub const EL3HLT: ::c_int = 46;
++pub const EL3RST: ::c_int = 47;
++pub const ELNRNG: ::c_int = 48;
++pub const EUNATCH: ::c_int = 49;
++pub const ENOCSI: ::c_int = 50;
++pub const EL2HLT: ::c_int = 51;
++pub const EBADE: ::c_int = 52;
++pub const EBADR: ::c_int = 53;
++pub const EXFULL: ::c_int = 54;
++pub const ENOANO: ::c_int = 55;
++pub const EBADRQC: ::c_int = 56;
++pub const EBADSLT: ::c_int = 57;
++pub const EMULTIHOP: ::c_int = 72;
++pub const EOVERFLOW: ::c_int = 75;
++pub const ENOTUNIQ: ::c_int = 76;
++pub const EBADFD: ::c_int = 77;
++pub const EBADMSG: ::c_int = 74;
++pub const EREMCHG: ::c_int = 78;
++pub const ELIBACC: ::c_int = 79;
++pub const ELIBBAD: ::c_int = 80;
++pub const ELIBSCN: ::c_int = 81;
++pub const ELIBMAX: ::c_int = 82;
++pub const ELIBEXEC: ::c_int = 83;
++pub const EILSEQ: ::c_int = 84;
++pub const ERESTART: ::c_int = 85;
++pub const ESTRPIPE: ::c_int = 86;
++pub const EUSERS: ::c_int = 87;
++pub const ENOTSOCK: ::c_int = 88;
++pub const EDESTADDRREQ: ::c_int = 89;
++pub const EMSGSIZE: ::c_int = 90;
++pub const EPROTOTYPE: ::c_int = 91;
++pub const ENOPROTOOPT: ::c_int = 92;
++pub const EPROTONOSUPPORT: ::c_int = 93;
++pub const ESOCKTNOSUPPORT: ::c_int = 94;
++pub const EOPNOTSUPP: ::c_int = 95;
++pub const ENOTSUP: ::c_int = EOPNOTSUPP;
++pub const EPFNOSUPPORT: ::c_int = 96;
++pub const EAFNOSUPPORT: ::c_int = 97;
++pub const EADDRINUSE: ::c_int = 98;
++pub const EADDRNOTAVAIL: ::c_int = 99;
++pub const ENETDOWN: ::c_int = 100;
++pub const ENETUNREACH: ::c_int = 101;
++pub const ENETRESET: ::c_int = 102;
++pub const ECONNABORTED: ::c_int = 103;
++pub const ECONNRESET: ::c_int = 104;
++pub const ENOBUFS: ::c_int = 105;
++pub const EISCONN: ::c_int = 106;
++pub const ENOTCONN: ::c_int = 107;
++pub const ESHUTDOWN: ::c_int = 108;
++pub const ETOOMANYREFS: ::c_int = 109;
++pub const ETIMEDOUT: ::c_int = 110;
++pub const ECONNREFUSED: ::c_int = 111;
++pub const EHOSTDOWN: ::c_int = 112;
++pub const EHOSTUNREACH: ::c_int = 113;
++pub const EALREADY: ::c_int = 114;
++pub const EINPROGRESS: ::c_int = 115;
++pub const ESTALE: ::c_int = 116;
++pub const EUCLEAN: ::c_int = 117;
++pub const ENOTNAM: ::c_int = 118;
++pub const ENAVAIL: ::c_int = 119;
++pub const EISNAM: ::c_int = 120;
++pub const EREMOTEIO: ::c_int = 121;
++pub const EDQUOT: ::c_int = 122;
++pub const ENOMEDIUM: ::c_int = 123;
++pub const EMEDIUMTYPE: ::c_int = 124;
++pub const ECANCELED: ::c_int = 125;
++pub const ENOKEY: ::c_int = 126;
++pub const EKEYEXPIRED: ::c_int = 127;
++pub const EKEYREVOKED: ::c_int = 128;
++pub const EKEYREJECTED: ::c_int = 129;
++pub const EOWNERDEAD: ::c_int = 130;
++pub const ENOTRECOVERABLE: ::c_int = 131;
++pub const EHWPOISON: ::c_int = 133;
++pub const ERFKILL: ::c_int = 132;
++
++pub const SA_ONSTACK: ::c_int = 0x08000000;
++pub const SA_SIGINFO: ::c_int = 0x00000004;
++pub const SA_NOCLDWAIT: ::c_int = 0x00000002;
++
++pub const SIGCHLD: ::c_int = 17;
++pub const SIGBUS: ::c_int = 7;
++pub const SIGTTIN: ::c_int = 21;
++pub const SIGTTOU: ::c_int = 22;
++pub const SIGXCPU: ::c_int = 24;
++pub const SIGXFSZ: ::c_int = 25;
++pub const SIGVTALRM: ::c_int = 26;
++pub const SIGPROF: ::c_int = 27;
++pub const SIGWINCH: ::c_int = 28;
++pub const SIGUSR1: ::c_int = 10;
++pub const SIGUSR2: ::c_int = 12;
++pub const SIGCONT: ::c_int = 18;
++pub const SIGSTOP: ::c_int = 19;
++pub const SIGTSTP: ::c_int = 20;
++pub const SIGURG: ::c_int = 23;
++pub const SIGIO: ::c_int = 29;
++pub const SIGSYS: ::c_int = 31;
++pub const SIGSTKFLT: ::c_int = 16;
++pub const SIGPOLL: ::c_int = 29;
++pub const SIGPWR: ::c_int = 30;
++pub const SIG_SETMASK: ::c_int = 2;
++pub const SIG_BLOCK: ::c_int = 0;
++pub const SIG_UNBLOCK: ::c_int = 1;
++
++pub const F_GETLK: ::c_int = 5;
++pub const F_GETOWN: ::c_int = 9;
++pub const F_SETLK: ::c_int = 6;
++pub const F_SETLKW: ::c_int = 7;
++pub const F_SETOWN: ::c_int = 8;
++
++pub const VEOF: usize = 4;
++
++pub const POLLWRNORM: ::c_short = 0x100;
++pub const POLLWRBAND: ::c_short = 0x200;
++
++pub const SOCK_STREAM: ::c_int = 1;
++pub const SOCK_DGRAM: ::c_int = 2;
++
++pub const MAP_ANON: ::c_int = 0x0020;
++pub const MAP_GROWSDOWN: ::c_int = 0x0100;
++pub const MAP_DENYWRITE: ::c_int = 0x0800;
++pub const MAP_EXECUTABLE: ::c_int = 0x01000;
++pub const MAP_LOCKED: ::c_int = 0x02000;
++pub const MAP_NORESERVE: ::c_int = 0x04000;
++pub const MAP_POPULATE: ::c_int = 0x08000;
++pub const MAP_NONBLOCK: ::c_int = 0x010000;
++pub const MAP_STACK: ::c_int = 0x020000;
++pub const MAP_HUGETLB: ::c_int = 0x040000;
++pub const MAP_SYNC: ::c_int = 0x080000;
++
++pub const MCL_CURRENT: ::c_int = 0x0001;
++pub const MCL_FUTURE: ::c_int = 0x0002;
++pub const MCL_ONFAULT: ::c_int = 0x0004;
++pub const CBAUD: ::tcflag_t = 0o0010017;
++pub const TAB1: ::c_int = 0x00000800;
++pub const TAB2: ::c_int = 0x00001000;
++pub const TAB3: ::c_int = 0x00001800;
++pub const CR1: ::c_int = 0x00000200;
++pub const CR2: ::c_int = 0x00000400;
++pub const CR3: ::c_int = 0x00000600;
++pub const FF1: ::c_int = 0x00008000;
++pub const BS1: ::c_int = 0x00002000;
++pub const VT1: ::c_int = 0x00004000;
++pub const VWERASE: usize = 14;
++pub const VREPRINT: usize = 12;
++pub const VSUSP: usize = 10;
++pub const VSTART: usize = 8;
++pub const VSTOP: usize = 9;
++pub const VDISCARD: usize = 13;
++pub const VTIME: usize = 5;
++pub const IXON: ::tcflag_t = 0x00000400;
++pub const IXOFF: ::tcflag_t = 0x00001000;
++pub const ONLCR: ::tcflag_t = 0x4;
++pub const CSIZE: ::tcflag_t = 0x00000030;
++pub const CS6: ::tcflag_t = 0x00000010;
++pub const CS7: ::tcflag_t = 0x00000020;
++pub const CS8: ::tcflag_t = 0x00000030;
++pub const CSTOPB: ::tcflag_t = 0x00000040;
++pub const CREAD: ::tcflag_t = 0x00000080;
++pub const PARENB: ::tcflag_t = 0x00000100;
++pub const PARODD: ::tcflag_t = 0x00000200;
++pub const HUPCL: ::tcflag_t = 0x00000400;
++pub const CLOCAL: ::tcflag_t = 0x00000800;
++pub const ECHOKE: ::tcflag_t = 0x00000800;
++pub const ECHOE: ::tcflag_t = 0x00000010;
++pub const ECHOK: ::tcflag_t = 0x00000020;
++pub const ECHONL: ::tcflag_t = 0x00000040;
++pub const ECHOPRT: ::tcflag_t = 0x00000400;
++pub const ECHOCTL: ::tcflag_t = 0x00000200;
++pub const ISIG: ::tcflag_t = 0x00000001;
++pub const ICANON: ::tcflag_t = 0x00000002;
++pub const PENDIN: ::tcflag_t = 0x00004000;
++pub const NOFLSH: ::tcflag_t = 0x00000080;
++pub const CIBAUD: ::tcflag_t = 0o02003600000;
++pub const CBAUDEX: ::tcflag_t = 0o010000;
++pub const VSWTC: usize = 7;
++pub const OLCUC: ::tcflag_t = 0o000002;
++pub const NLDLY: ::tcflag_t = 0o000400;
++pub const CRDLY: ::tcflag_t = 0o003000;
++pub const TABDLY: ::tcflag_t = 0o014000;
++pub const BSDLY: ::tcflag_t = 0o020000;
++pub const FFDLY: ::tcflag_t = 0o100000;
++pub const VTDLY: ::tcflag_t = 0o040000;
++pub const XTABS: ::tcflag_t = 0o014000;
++pub const B57600: ::speed_t = 0o010001;
++pub const B115200: ::speed_t = 0o010002;
++pub const B230400: ::speed_t = 0o010003;
++pub const B460800: ::speed_t = 0o010004;
++pub const B500000: ::speed_t = 0o010005;
++pub const B576000: ::speed_t = 0o010006;
++pub const B921600: ::speed_t = 0o010007;
++pub const B1000000: ::speed_t = 0o010010;
++pub const B1152000: ::speed_t = 0o010011;
++pub const B1500000: ::speed_t = 0o010012;
++pub const B2000000: ::speed_t = 0o010013;
++pub const B2500000: ::speed_t = 0o010014;
++pub const B3000000: ::speed_t = 0o010015;
++pub const B3500000: ::speed_t = 0o010016;
++pub const B4000000: ::speed_t = 0o010017;
++
++pub const EDEADLK: ::c_int = 35;
++pub const EDEADLOCK: ::c_int = EDEADLK;
++pub const EXTPROC: ::tcflag_t = 0x00010000;
++pub const VEOL: usize = 11;
++pub const VEOL2: usize = 16;
++pub const VMIN: usize = 6;
++pub const IEXTEN: ::tcflag_t = 0x00008000;
++pub const TOSTOP: ::tcflag_t = 0x00000100;
++pub const FLUSHO: ::tcflag_t = 0x00001000;
++
++cfg_if! {
++ if #[cfg(libc_align)] {
++ mod align;
++ pub use self::align::*;
++ }
++}
+diff --git a/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/mod.rs b/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/mod.rs
+index 05586cdb4..d59343064 100644
+--- a/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/mod.rs
++++ b/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/b64/mod.rs
+@@ -157,6 +157,9 @@ cfg_if! {
+ } else if #[cfg(any(target_arch = "riscv64"))] {
+ mod riscv64;
+ pub use self::riscv64::*;
++ } else if #[cfg(any(target_arch = "loongarch64"))] {
++ mod loongarch64;
++ pub use self::loongarch64::*;
+ } else {
+ // Unknown target_arch
+ }
+diff --git a/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/mod.rs b/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/mod.rs
+index b67d55e99..d4cc61484 100644
+--- a/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/mod.rs
++++ b/vendor/libc-0.2.150/src/unix/linux_like/linux/musl/mod.rs
+@@ -794,7 +794,8 @@ cfg_if! {
+ target_arch = "mips64",
+ target_arch = "powerpc64",
+ target_arch = "s390x",
+- target_arch = "riscv64"))] {
++ target_arch = "riscv64",
++ target_arch = "loongarch64"))] {
+ mod b64;
+ pub use self::b64::*;
+ } else if #[cfg(any(target_arch = "x86",
+--
+2.44.0
+
diff --git a/main/rust/0011-vendor-compiler_builtins-Add-support-for-loongarch64.patch b/main/rust/0011-vendor-compiler_builtins-Add-support-for-loongarch64.patch
new file mode 100644
index 00000000000..f62dd43fc0f
--- /dev/null
+++ b/main/rust/0011-vendor-compiler_builtins-Add-support-for-loongarch64.patch
@@ -0,0 +1,42 @@
+From cb7423b824e8ca224f93cad7fa196b608dff8655 Mon Sep 17 00:00:00 2001
+From: WANG Rui <wangrui@loongson.cn>
+Date: Tue, 26 Mar 2024 17:41:40 +0800
+Subject: [PATCH 11/12] vendor: compiler_builtins: Add support for
+ loongarch64-linux-musl
+
+---
+ vendor/compiler_builtins/build.rs | 18 ++++++++++++++++++
+ 1 files changed, 18 insertions(+), 0 deletion(-)
+
+diff --git a/vendor/compiler_builtins/build.rs b/vendor/compiler_builtins/build.rs
+index 048611677..afbac6247 100644
+--- a/vendor/compiler_builtins/build.rs
++++ b/vendor/compiler_builtins/build.rs
+@@ -541,6 +541,24 @@ mod c {
+ ]);
+ }
+
++ if target_arch == "loongarch64" {
++ sources.extend(&[
++ ("__extenddftf2", "extenddftf2.c"),
++ ("__netf2", "comparetf2.c"),
++ ("__addtf3", "addtf3.c"),
++ ("__multf3", "multf3.c"),
++ ("__subtf3", "subtf3.c"),
++ ("__fixtfsi", "fixtfsi.c"),
++ ("__floatsitf", "floatsitf.c"),
++ ("__fixunstfsi", "fixunstfsi.c"),
++ ("__floatunsitf", "floatunsitf.c"),
++ ("__fe_getround", "fp_mode.c"),
++ ("__divtf3", "divtf3.c"),
++ ("__trunctfdf2", "trunctfdf2.c"),
++ ("__trunctfsf2", "trunctfsf2.c"),
++ ]);
++ }
++
+ // Remove the assembly implementations that won't compile for the target
+ if llvm_target[0] == "thumbv6m" || llvm_target[0] == "thumbv8m.base" || target_os == "uefi"
+ {
+--
+2.44.0
+
diff --git a/main/rust/0012-vendor-openssl-src-Add-support-for-loongarch64-linux.patch b/main/rust/0012-vendor-openssl-src-Add-support-for-loongarch64-linux.patch
new file mode 100644
index 00000000000..45cacb45814
--- /dev/null
+++ b/main/rust/0012-vendor-openssl-src-Add-support-for-loongarch64-linux.patch
@@ -0,0 +1,25 @@
+From 7179bedc985cebe2ff945ecf280754b3c0abae36 Mon Sep 17 00:00:00 2001
+From: WANG Rui <wangrui@loongson.cn>
+Date: Tue, 26 Mar 2024 17:42:25 +0800
+Subject: [PATCH 12/12] vendor: openssl-src: Add support for
+ loongarch64-linux-musl
+
+---
+ vendor/openssl-src/src/lib.rs | 1 +
+ 1 files changed, 1 insertions(+), 0 deletion(-)
+
+diff --git a/vendor/openssl-src/src/lib.rs b/vendor/openssl-src/src/lib.rs
+index 1264742dc..1ef018081 100644
+--- a/vendor/openssl-src/src/lib.rs
++++ b/vendor/openssl-src/src/lib.rs
+@@ -265,6 +265,7 @@ impl Build {
+ "i686-unknown-linux-gnu" => "linux-elf",
+ "i686-unknown-linux-musl" => "linux-elf",
+ "loongarch64-unknown-linux-gnu" => "linux-generic64",
++ "loongarch64-unknown-linux-musl" => "linux-generic64",
+ "mips-unknown-linux-gnu" => "linux-mips32",
+ "mips-unknown-linux-musl" => "linux-mips32",
+ "mips64-unknown-linux-gnuabi64" => "linux64-mips64",
+--
+2.44.0
+
diff --git a/main/rust/APKBUILD b/main/rust/APKBUILD
new file mode 100644
index 00000000000..d7208dc1849
--- /dev/null
+++ b/main/rust/APKBUILD
@@ -0,0 +1,504 @@
+# Contributor: Rasmus Thomsen <oss@cogitri.dev>
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Contributor: Shiz <hi@shiz.me>
+# Contributor: Jeizsm <jeizsm@gmail.com>
+# Contributor: Ariadne Conill <ariadne@dereferenced.org>
+# Contributor: Celeste <cielesti@protonmail.com>
+# Contributor: omni <omni+alpine@hack.org>
+# Maintainer: team/rust <alpine@ptrcnull.me>
+pkgname=rust
+pkgver=1.77.0
+_llvmver=17
+_bootver=1.76.0
+pkgrel=1
+pkgdesc="Rust Programming Language toolchain"
+url="https://www.rust-lang.org/"
+arch="all"
+license="Apache-2.0 AND MIT"
+
+# 'cc' is needed at runtime just for linking. Someday rustc might invoke
+# the linker directly, and then we'll only need 'ld'.
+# See: https://github.com/rust-lang/rust/issues/11937
+depends="gcc musl-dev"
+
+# * Rust is self-hosted, so you need rustc (and cargo) to build rustc...
+# The last revision of this abuild that does not depend on itself (uses
+# prebuilt rustc and cargo) is 2e6769eb39eaff3029d8298fc02856623c563cd8.
+# * Don't add libgit2-dev into make dependencies. There's no compatibility
+# guarantees between libgit2-sys and arbitrary system libgit2 versions;
+# when system libgit2 is upgraded to a new minor version, it may break
+# cargo and since we need cargo to rebuild cargo... this already happened
+# several times. For this reason we build cargo with vendored libgit2.
+makedepends_build="
+ !libgit2-dev
+ cargo-bootstrap>=$_bootver
+ coreutils
+ curl-dev
+ file
+ libssh2-dev
+ llvm$_llvmver-dev
+ llvm$_llvmver-test-utils
+ openssl-dev
+ python3
+ rust-bootstrap>=$_bootver
+ tar
+ wasi-libc
+ xz-dev
+ zlib-dev
+ "
+makedepends_host="
+ curl-dev
+ libssh2-dev
+ llvm$_llvmver-dev
+ openssl-dev
+ zlib-dev
+ "
+
+# XXX: This is a hack to allow this abuild to depend on itself. Adding "rust"
+# to makedepends would not work, because abuild implicitly removes $pkgname
+# and $subpackages from the abuild's dependencies.
+provides="rust-bootstrap=$pkgver-r$pkgrel"
+# This is needed for -src that contains some testing binaries.
+options="!archcheck"
+
+case "$CARCH" in
+arm*|riscv64)
+ # +crt-static still broken here, last checked with rust 1.75.0
+ options="$options !check"
+ ;;
+*)
+ ;;
+esac
+
+subpackages="
+ $pkgname-dbg
+ $pkgname-doc
+ $pkgname-clippy
+ $pkgname-gdb::noarch
+ $pkgname-lldb::noarch
+ $pkgname-src::noarch
+ $pkgname-wasm
+ cargo
+ cargo-bash-completions:_cargo_bashcomp:noarch
+ cargo-zsh-completion:_cargo_zshcomp:noarch
+ cargo-doc:_cargo_doc:noarch
+ rustfmt
+ "
+source="https://static.rust-lang.org/dist/rustc-$pkgver-src.tar.xz
+ alpine-move-py-scripts-to-share.patch
+ alpine-target.patch
+ do-not-install-libunwind-source.patch
+ gcc-eh-libunwind.patch
+ install-template-shebang.patch
+ musl-fix-linux_musl_base.patch
+ need-rpath.patch
+ need-ssp_nonshared.patch
+ no-export-ld-library-path.patch
+ revert-rustc_codegen_ssa-use-try_canonicalize-in-rpath.patch
+ system-wasm-ld.patch
+
+ 0001-Add-new-Tier-3-target-loongarch64-unknown-linux-musl.patch
+ 0002-tests-Add-loongarch64-unknown-linux-musl-target.patch
+ 0005-configure.py-add-flag-for-loongarch64-musl-root.patch
+ 0006-ci-Add-support-for-dist-loongarch64-musl.patch
+ 0007-Promote-loongarch64-unknown-linux-musl-to-Tier-2-wit.patch
+ 0008-vendor-libc-Add-support-for-loongarch64-linux-musl.patch
+ 0009-vendor-libc-0.2.148-Add-support-for-loongarch64-linu.patch
+ 0010-vendor-libc-0.2.150-Add-support-for-loongarch64-linu.patch
+ 0011-vendor-compiler_builtins-Add-support-for-loongarch64.patch
+ 0012-vendor-openssl-src-Add-support-for-loongarch64-linux.patch
+
+ check-rustc
+ "
+builddir="$srcdir/rustc-$pkgver-src"
+
+# secfixes:
+# 1.71.1-r0:
+# - CVE-2023-38497
+# 1.66.1-r0:
+# - CVE-2022-46176
+# 1.56.1-r0:
+# - CVE-2021-42574
+# 1.52.1-r1:
+# - CVE-2021-29922
+# 1.51.0-r2:
+# - CVE-2020-36323
+# - CVE-2021-31162
+# 1.34.2-r0:
+# - CVE-2019-12083
+# 1.26.0-r0:
+# - CVE-2019-16760
+
+if [ -z "$BOOTSTRAP" ]; then
+ makedepends_build="
+ $makedepends_build
+ patchelf
+ "
+ makedepends_host="
+ $makedepends_host
+ scudo-malloc
+ "
+fi
+
+# We have to add new architectures in multiple steps:
+# 1. Compile with the upstream triplets, compiling alpine's triplets in
+# 2. Compile again, now with our triplets selected as build/target, now that
+# rustc knows about them
+_build="$CBUILD"
+_target="$CTARGET"
+
+_rlibdir="usr/lib/rustlib/$_target/lib"
+_sharedir="usr/share/rust"
+
+ldpath="/$_rlibdir"
+
+export OPENSSL_NO_VENDOR=1
+export RUST_BACKTRACE=1
+
+export gztool="$(command -v pigz || echo gzip)"
+
+# this is useful for when we have to patch vendored projects
+_clear_vendor_checksums() {
+ sed -i 's/\("files":{\)[^}]*/\1/' vendor/$1/.cargo-checksum.json
+}
+
+_unpack_build_dist() {
+ local distname="$1" destdir="$2" tarball=
+
+ case "$distname" in
+ rust-src)
+ tarball="$builddir"/build/dist/rust-src-$pkgver.tar.gz
+ ;;
+ rust-std-*)
+ tarball="$builddir"/build/dist/rust-std-$pkgver-${distname#rust-std-*}.tar.gz
+ ;;
+ *)
+ tarball="$builddir"/build/dist/$distname-$pkgver-$_target.tar.gz
+ ;;
+ esac
+
+ tar -I "$gztool -d" -xf "$tarball" \
+ -C "$destdir" --strip-components=2 \
+ --exclude=manifest.in --no-same-owner
+}
+
+prepare() {
+ default_prepare
+ _clear_vendor_checksums libc
+ _clear_vendor_checksums libc-0.2.148
+ _clear_vendor_checksums libc-0.2.150
+ _clear_vendor_checksums compiler_builtins
+ _clear_vendor_checksums openssl-src
+}
+
+build() {
+ if [ "$_build" != "$_target" ]; then
+ export PKG_CONFIG_ALLOW_CROSS=1
+ fi
+
+ # absolutely do not set these here, rust "knows" what it's doing
+ unset CARGO_PROFILE_RELEASE_LTO
+ unset CARGO_PROFILE_RELEASE_OPT_LEVEL
+ unset CARGO_PROFILE_RELEASE_PANIC
+ unset CARGO_PROFILE_RELEASE_CODEGEN_UNITS
+
+ export CFLAGS="$CFLAGS -O2"
+ export CXXFLAGS="$CXXFLAGS -O2"
+
+ case "$CARCH" in
+ riscv64)
+ ;;
+ *)
+ local lto=--set="rust.lto=thin"
+ ;;
+ esac
+
+ case "$CARCH" in
+ aarch64|ppc64le|x86_64)
+ # this doesn't build on s390x, but since it's only useful with rust-analyzer,
+ # and we enable it on these arches only, just do that
+ local rust_analyzer="rust-analyzer-proc-macro-srv,"
+ ;;
+ *)
+ local rust_analyzer=""
+ ;;
+ esac
+
+ local targets="$_target" extra_conf_opts=
+ if subpackage_types_has wasm; then
+ targets="$targets,wasm32-wasi,wasm32-unknown-unknown"
+ extra_conf_opts='
+ --set=target.wasm32-unknown-unknown.sanitizers=false
+ --set=target.wasm32-unknown-unknown.profiler=false
+ --set=target.wasm32-unknown-unknown.linker=lld
+ --set=target.wasm32-wasi.sanitizers=false
+ --set=target.wasm32-wasi.profiler=false
+ --set=target.wasm32-wasi.wasi-root=/usr/share/wasi-sysroot
+ '
+ fi
+
+ ./configure \
+ --build="$_build" \
+ --host="$_target" \
+ --target="$targets" \
+ --prefix="/usr" \
+ --release-channel="stable" \
+ --enable-local-rust \
+ --local-rust-root="/usr" \
+ --llvm-root="/usr/lib/llvm$_llvmver" \
+ --disable-docs \
+ --enable-extended \
+ --tools="cargo,clippy,src,${rust_analyzer}rustdoc,rustfmt,rust-demangler" \
+ --enable-llvm-link-shared \
+ --enable-option-checking \
+ --enable-locked-deps \
+ --enable-profiler \
+ --enable-vendor \
+ --dist-compression-formats=gz \
+ --python="python3" \
+ --set="rust.musl-root=/usr" \
+ --set="rust.backtrace-on-ice=true" \
+ --set="rust.codegen-units=1" \
+ --set="rust.codegen-units-std=1" \
+ --set="rust.deny-warnings=false" \
+ --set="rust.parallel-compiler=false" \
+ --set="rust.remap-debuginfo=true" \
+ --set="rust.description=Alpine Linux $pkgver-r$pkgrel" \
+ $lto \
+ --set="target.$_target.llvm-config=/usr/lib/llvm$_llvmver/bin/llvm-config" \
+ --set="target.$_target.musl-root=/usr" \
+ --set="target.$_target.crt-static=false" \
+ --set="target.$_target.cc=${CROSS_COMPILE}cc" \
+ --set="target.$_target.cxx=${CROSS_COMPILE}c++" \
+ --set="target.$_target.ar=${CROSS_COMPILE}ar" \
+ --set="target.$_target.linker=${CROSS_COMPILE}cc" \
+ --set="target.$_build.musl-root=/usr" \
+ --set="target.$_build.crt-static=false" \
+ --set="target.$_build.cc=cc" \
+ --set="target.$_build.cxx=c++" \
+ --set="target.$_build.ar=ar" \
+ --set="target.$_build.linker=cc" \
+ $extra_conf_opts
+
+ python3 ./x.py dist --jobs ${JOBS:-2}
+}
+
+check() {
+ # At this moment lib/rustlib/$CTARGET/lib does not contain a complete
+ # copy of the .so libs from lib (they will be copied there during
+ # 'x.py install'). Thus we must set LD_LIBRARY_PATH for tests to work.
+
+ msg "Setting up test env..."
+
+ mkdir -p "$builddir/test-rustc"
+
+ _unpack_build_dist rustc "$builddir/test-rustc" &
+ _unpack_build_dist rust-std "$builddir/test-rustc" &
+ wait
+
+ export LD_LIBRARY_PATH="$builddir/test-rustc/lib/rustlib/$CTARGET/lib"
+
+ msg "Sanity checks..."
+ "$srcdir"/check-rustc "$builddir"/test-rustc/bin/rustc
+
+ # XXX: There's some problem with these tests, we will figure it out later.
+ # make check \
+ # LD_LIBRARY_PATH="$_stage0dir/lib" \
+ # VERBOSE=1
+
+ # these rebuild the whole compiler which takes a long time
+ # msg "Running tests for cargo..."
+ # CFG_DISABLE_CROSS_TESTS=1 python3 ./x.py test --no-fail-fast src/tools/cargo
+
+ unset LD_LIBRARY_PATH
+}
+
+package() {
+ # merged into main package
+ provides="$provides rust-stdlib=$pkgver-r$pkgrel"
+ replaces="rust-stdlib"
+
+ mkdir -p "$pkgdir/usr"
+
+ cd "$pkgdir"
+
+ _unpack_build_dist rustc "$pkgdir/usr" &
+ _unpack_build_dist rust-std "$pkgdir/usr" &
+ _unpack_build_dist rustc-dev "$pkgdir/usr" &
+ _unpack_build_dist rust-src "$pkgdir/usr" &
+ wait
+ _unpack_build_dist cargo "$pkgdir/usr" &
+ _unpack_build_dist clippy "$pkgdir/usr" &
+ _unpack_build_dist rustfmt "$pkgdir/usr" &
+ if subpackage_types_has wasm; then
+ _unpack_build_dist rust-std-wasm32-unknown-unknown "$pkgdir/usr" &
+ _unpack_build_dist rust-std-wasm32-wasi "$pkgdir/usr" &
+ fi
+ wait
+
+ # We don't want to include stuff like rust-llvm-* tools, as we will use the
+ # system tools.
+ rm -f usr/lib/rustlib/"$_target"/bin/rust-llvm-*
+
+ # Python scripts are noarch, so move them to /usr/share.
+ # Requires move-py-scripts-to-share.patch to be applied.
+ _mv usr/lib/rustlib/etc/*.py $_sharedir/etc/
+ rmdir -p usr/lib/rustlib/etc 2>/dev/null || true
+
+ _mv usr/etc/bash_completion.d/cargo usr/share/bash-completion/completions/
+ rmdir -p usr/etc/bash_completion.d 2>/dev/null || true
+
+ _mv usr/lib/rustlib/src/rust usr/src/
+ ln -s ../../../src/rust usr/lib/rustlib/src/rust
+
+ # Remove some clutter.
+ cd "$pkgdir"/usr/lib/rustlib
+ rm -f components install.log manifest-* rust-installer-version uninstall.sh
+ if [ "$_build" != "$_target" ]; then
+ rm -rf "$pkgdir"/usr/lib/rustlib/$_build
+ fi
+
+ # for some reason the tar archive gets some root-only files for rlibs
+ find "$pkgdir"/usr/lib/rustlib -type f -perm -600 -exec chmod 0644 {} \+
+ find "$pkgdir"/usr/lib/rustlib -type f -perm -700 -exec chmod 0755 {} \+
+
+ if [ -z "$BOOTSTRAP" ]; then
+ # link scudo to tools by default on architectures where it works well
+ # this is roughly 20+% faster with no downside except slightly higher
+ # memory use, but this is a compiler that already uses a ton of memory
+ case "$CARCH" in
+ arm*) ;;
+ *)
+ patchelf --add-needed libscudo.so \
+ "$pkgdir"/usr/bin/cargo \
+ "$pkgdir"/usr/bin/rustc \
+ "$pkgdir"/usr/bin/rustdoc
+ ;;
+ esac
+ fi
+}
+
+wasm() {
+ pkgdesc="WebAssembly targets for rust"
+ depends="rust=$pkgver-r$pkgrel lld wasi-libc"
+
+ amove usr/lib/rustlib/wasm32-*
+}
+
+analysis() {
+ pkgdesc="Compiler analysis data for the Rust standard library"
+ depends="$pkgname=$pkgver-r$pkgrel"
+
+ amove $_rlibdir/../analysis
+}
+
+gdb() {
+ pkgdesc="GDB pretty printers for Rust"
+ depends="$pkgname=$pkgver-r$pkgrel gdb"
+
+ amove usr/bin/rust-gdb*
+ amove $_sharedir/etc/gdb_*.py
+}
+
+lldb() {
+ pkgdesc="LLDB pretty printers for Rust"
+ depends="$pkgname=$pkgver-r$pkgrel lldb py3-lldb"
+
+ amove usr/bin/rust-lldb
+ amove $_sharedir/etc/lldb_*.py
+ amove usr/lib/rustlib/etc/lldb_commands
+}
+
+clippy() {
+ pkgdesc="Lints to catch common mistakes and improve your Rust code"
+ depends="$pkgname=$pkgver-r$pkgrel"
+
+ amove usr/bin/cargo-clippy
+ amove usr/bin/clippy-driver
+}
+
+src() {
+ pkgdesc="$pkgdesc (source code)"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ license="$license OFL-1.1 GPL-3.0-or-later GPL-3.0-with-GCC-exception CC-BY-SA-3.0 LGPL-3.0"
+
+ amove usr/src
+ amove usr/lib/rustlib/src
+}
+
+cargo() {
+ pkgdesc="The Rust package manager"
+ license="Apache-2.0 MIT UNLICENSE"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ # XXX: See comment on top-level provides=.
+ provides="cargo-bootstrap=$pkgver-r$pkgrel"
+
+ amove usr/bin/cargo
+}
+
+rustfmt() {
+ pkgdesc="Rust Code Formatter"
+ license="Apache-2.0"
+ depends="cargo=$pkgver-r$pkgrel"
+
+ amove usr/bin/rustfmt
+ amove usr/bin/cargo-fmt
+}
+
+_cargo_bashcomp() {
+ default_bashcomp
+
+ pkgdesc="Bash completions for cargo"
+ license="Apache-2.0 MIT"
+ install_if="cargo=$pkgver-r$pkgrel bash-completion"
+}
+
+_cargo_zshcomp() {
+ default_zshcomp
+
+ pkgdesc="ZSH completions for cargo"
+ license="Apache-2.0 MIT"
+ install_if="cargo=$pkgver-r$pkgrel zsh"
+}
+
+_cargo_doc() {
+ pkgdesc="The Rust package manager (documentation)"
+ license="Apache-2.0 MIT"
+ install_if="docs cargo=$pkgver-r$pkgrel"
+
+ # XXX: This is hackish!
+ cd "$pkgdir"/../$pkgname-doc
+ _mv usr/share/man/man1/cargo* "$subpkgdir"/usr/share/man/man1/
+}
+
+_mv() {
+ local dest; for dest; do true; done # get last argument
+ mkdir -p "$dest"
+ mv "$@"
+}
+
+sha512sums="
+59f19d9def93b613ac72925625e6662622f445506489b8f1cd405d037c28becd53ae1446b46edfd63734f6f236af2dc326a57a184f01bc10d497c96227f09034 rustc-1.77.0-src.tar.xz
+9de9d7ad05584e3cafddedcac409a4605a1d67e82260220deb3efd965603ee3148062b081c0cd736e50d82daad3a723fb6a7493fdf4dddfe36288645425a7946 alpine-move-py-scripts-to-share.patch
+3ff7914ff697b3ba29c5225fe8db58587c1a109d0690ef968b7e0d9453ece81be96aa502453292af3ba5d841d49e41d7e0d45b3ed700dcb944adb009ae7ef4cd alpine-target.patch
+b4f09270f4e1677975d12447be9960271b00ffb8ab55987864c306fa45b8f70bdb82fd89e5fa7ad1cf604a1c91fbac8f3753b29dc98e10e7f47edf13d9071d77 do-not-install-libunwind-source.patch
+d4531905520b3fc699fbf57b267130bdbca94e2773a710e8b4c618ae3895149312934dd92d1988860c6dd102af50e05264b49a01662d5621c26de3604c753d6a gcc-eh-libunwind.patch
+b283d31cc8d6559aa639d44f776e97c2a1e0f23c717b6784e549861b881555bd467fa6023180866aae81a9a58c5f83e306940ee645f3c6733a1bdef6130036c9 install-template-shebang.patch
+a32f3a9bcab771cce6be2ad936cd4edad3bb638f38da02e79c29cfed967eb0edcdf47ae892bbdd2959cebb5c74dee3fcc752dc2405f761d5c8ecc0021abb24a0 musl-fix-linux_musl_base.patch
+fdcfa99321d6913321e9cc5e7ec8a204bbcd78fbb9cc4a3ddac363ab313d7b00ffca95a70670190342cb8bbf7af8ca5547edffe06a79ead68e921ebbf0561d86 need-rpath.patch
+b6bf7be0b2eb2d31b4d9979852d5ec3ebc05d005b82e2f6b02394da6c43502729d32086ec2ffaf42f1006838ea5c2898b82a4172f9053fe08e978adcb711d5fa need-ssp_nonshared.patch
+da5ea8ea2360ba6fdc2b3f29063baf978af19f7ff106d0511912b1357e1e613dae0417d3b55fb2aafb4e97d1749cb01046d76c6a27a03e384468e2d26c2a30dc no-export-ld-library-path.patch
+74c0d14a68c2d7355f15ec3704d387556ad337e4991831e94951906d17aeb60387d20586a63cf6cdc62b46c60e1874340a250196ec2b3e75c268af1c41fae7e9 revert-rustc_codegen_ssa-use-try_canonicalize-in-rpath.patch
+5216e083a1709b3ecbbdeaaaf0e112ec88e7534952fdadf834ce864b55768e15d7d181c14127d4ef39f66ca2a94dd40eddb2c4ab297081d75e5f3a09dcbcfa56 system-wasm-ld.patch
+403cf84bf18587b0092d34bc17848bf4a9c46ebf053a696f026cb744559f2f93973258de3a1362cd369e5aae55bec90f77c835c8c583c8fe981e94d6351d25ee 0001-Add-new-Tier-3-target-loongarch64-unknown-linux-musl.patch
+ec62ef0adf45b1a066508b19c2791b3f2c5c97399b7f77c8c6340ce08e0e6489db81959c703fd22544dc4228cd35b98efe2229da4f13c655bcb179c4fb216a9d 0002-tests-Add-loongarch64-unknown-linux-musl-target.patch
+10ab89038206ed875fab64b7fa2d92500c19ecb5cdb3341bad37f37aebe1e253b0647469794a8afa344e9ade207bdc32b6d3418db1ce5872e7ee312179ced374 0005-configure.py-add-flag-for-loongarch64-musl-root.patch
+a776824a63752cd46bfe954985558502751f3a9e4cf70b46a3fd4513b188209b99e7c7b11e1998a89d2155a199b3b9f8ecc4389df4e8fc4b983a3d387a4fea06 0006-ci-Add-support-for-dist-loongarch64-musl.patch
+2473d80908b936cefdd99cb3c7e56ec6c714af0ae6d606f5459bfbe2d3713ac9e11ea642a8481b224d6c89074386802eb005a8a9d666d6a597a0cbcd35a19af9 0007-Promote-loongarch64-unknown-linux-musl-to-Tier-2-wit.patch
+6c4eee378995816f6da26bdea6c781e106be79ba9772d91544fbde781ab2f6de98809c6a8a6b553f1feef79ace06fb712ba87c3e554e227ad39426834fcd069a 0008-vendor-libc-Add-support-for-loongarch64-linux-musl.patch
+f3b3253106d391d0ea5390b3566704ee4d7aa4c08a5fc0b095b8ca0f0e8272c265ac99b500110653d9321438429f374726fb8291ab98017507df17e23879ef42 0009-vendor-libc-0.2.148-Add-support-for-loongarch64-linu.patch
+039a25e1ed0eae1226a021ce51b76b2ab287d2d807c912e835cef758b5ff6e97e37f8ce29ea3297c8258fd587c08ecc33665371335e3bd227549b901e2f4b8af 0010-vendor-libc-0.2.150-Add-support-for-loongarch64-linu.patch
+808e5cb5e3e0cc991ded0875e6f9cad7b72854f004ce5b626f45169ca10dc1d0d6f6b30bbe573b7daec82636edac94792522e7d9f5a13a67fd9fb0d9db1a0757 0011-vendor-compiler_builtins-Add-support-for-loongarch64.patch
+54ed2846e621aea0dd42e7a1e65bdea0d6ff2dcd396770f33ee1b9a3ed33e6b36e230643e3d444dd12285f30eceed7c66a9c83fbcd23c784fa5b9785aaf37ad1 0012-vendor-openssl-src-Add-support-for-loongarch64-linux.patch
+c31fdfe8a9b3411576c75da46645cf0465b9053000a2ab49cf9b2f2733f679d6d33acbf236d67a20e14935d094a685453b7f1840180249f39d610fd0902c3125 check-rustc
+"
diff --git a/main/rust/alpine-move-py-scripts-to-share.patch b/main/rust/alpine-move-py-scripts-to-share.patch
new file mode 100644
index 00000000000..a51d9b8612f
--- /dev/null
+++ b/main/rust/alpine-move-py-scripts-to-share.patch
@@ -0,0 +1,26 @@
+diff --git a/src/etc/rust-gdb b/src/etc/rust-gdb
+index 9abed30..c5326ae 100755
+--- a/src/etc/rust-gdb
++++ b/src/etc/rust-gdb
+@@ -12,7 +12,7 @@ fi
+
+ # Find out where the pretty printer Python module is
+ RUSTC_SYSROOT="$("$RUSTC" --print=sysroot)"
+-GDB_PYTHON_MODULE_DIRECTORY="$RUSTC_SYSROOT/lib/rustlib/etc"
++GDB_PYTHON_MODULE_DIRECTORY="$RUSTC_SYSROOT/share/rust/etc"
+ # Get the commit hash for path remapping
+ RUSTC_COMMIT_HASH="$("$RUSTC" -vV | sed -n 's/commit-hash: \([a-zA-Z0-9_]*\)/\1/p')"
+
+diff --git a/src/etc/rust-lldb b/src/etc/rust-lldb
+index bce72f1..ecac488 100755
+--- a/src/etc/rust-lldb
++++ b/src/etc/rust-lldb
+@@ -8,7 +8,7 @@ host=$(rustc -vV | sed -n -e 's/^host: //p')
+
+ # Find out where to look for the pretty printer Python module
+ RUSTC_SYSROOT=$(rustc --print sysroot)
+-RUST_LLDB="$RUSTC_SYSROOT/lib/rustlib/$host/bin/lldb"
++RUST_LLDB="$RUSTC_SYSROOT/share/rust/etc"
+
+ lldb=lldb
+ if [ -f "$RUST_LLDB" ]; then
diff --git a/main/rust/alpine-target.patch b/main/rust/alpine-target.patch
new file mode 100644
index 00000000000..fd79a882c0e
--- /dev/null
+++ b/main/rust/alpine-target.patch
@@ -0,0 +1,209 @@
+From: Shiz <hi@shiz.me>
+Updated by Rasmus Thomsen <oss@cogitri.dev> on 28th of July 2019
+Updated again by Ariadne Conill <ariadne@dereferenced.org> on 31 October 2020
+Date: Thu, 20 Aug 2017 01:52:36 +0200
+Last-Updated: Sat, 28 Oct 2017 20:23:00 +0200
+Subject: [PATCH] Add Alpine targets
+
+This adds `$arch-alpine-linux-musl` targets to Rust to encode our toolchain
+and distribution-specific quirks instead of polluting the main musl target of
+`$arch-unknown-linux-musl`.
+
+--- /dev/null
++++ rustc-1.48.0-src/compiler/rustc_target/src/spec/targets/aarch64_alpine_linux_musl.rs
+@@ -0,0 +1,13 @@
++use crate::spec::Target;
++
++pub fn target() -> Target {
++ let mut base = super::aarch64_unknown_linux_musl::target();
++
++ base.llvm_target = "aarch64-alpine-linux-musl".into();
++ base.options.vendor = "alpine".into();
++ base.options.crt_static_default = false;
++ base.options.static_position_independent_executables = true;
++ base.options.need_rpath = true;
++
++ base
++}
+--- /dev/null
++++ rustc-1.48.0-src/compiler/rustc_target/src/spec/targets/armv6_alpine_linux_musleabihf.rs
+@@ -0,0 +1,13 @@
++use crate::spec::Target;
++
++pub fn target() -> Target {
++ let mut base = super::arm_unknown_linux_musleabihf::target();
++
++ base.llvm_target = "armv6-alpine-linux-musleabihf".into();
++ base.options.vendor = "alpine".into();
++ base.options.crt_static_default = false;
++ base.options.static_position_independent_executables = true;
++ base.options.need_rpath = true;
++
++ base
++}
+--- /dev/null
++++ rustc-1.48.0-src/compiler/rustc_target/src/spec/targets/armv7_alpine_linux_musleabihf.rs
+@@ -0,0 +1,14 @@
++use crate::spec::Target;
++
++pub fn target() -> Target {
++ let mut base = super::armv7_unknown_linux_musleabihf::target();
++
++ base.llvm_target = "armv7-alpine-linux-musleabihf".into();
++ base.options.vendor = "alpine".into();
++ base.options.crt_static_default = false;
++ base.options.static_position_independent_executables = true;
++ base.options.need_rpath = true;
++ base.options.features = "+v7,+vfp3,-d32,+thumb-mode,+thumb2".into();
++
++ base
++}
+--- /dev/null
++++ rustc-1.48.0-src/compiler/rustc_target/src/spec/targets/i586_alpine_linux_musl.rs
+@@ -0,0 +1,14 @@
++use crate::spec::Target;
++
++pub fn target() -> Target {
++ let mut base = super::i686_unknown_linux_musl::target();
++
++ base.options.cpu = "pentium4".into();
++ base.llvm_target = "i586-alpine-linux-musl".into();
++ base.options.vendor = "alpine".into();
++ base.options.crt_static_default = false;
++ base.options.static_position_independent_executables = true;
++ base.options.need_rpath = true;
++
++ base
++}
+--- rustc-1.48.0-src.orig/compiler/rustc_target/src/spec/mod.rs
++++ rustc-1.48.0-src/compiler/rustc_target/src/spec/mod.rs
+@@ -1397,6 +1397,17 @@
+ }
+
+ supported_targets! {
++ ("i586-alpine-linux-musl", i586_alpine_linux_musl),
++ ("x86_64-alpine-linux-musl", x86_64_alpine_linux_musl),
++ ("aarch64-alpine-linux-musl", aarch64_alpine_linux_musl),
++ ("armv6-alpine-linux-musleabihf", armv6_alpine_linux_musleabihf),
++ ("armv7-alpine-linux-musleabihf", armv7_alpine_linux_musleabihf),
++ ("powerpc-alpine-linux-musl", powerpc_alpine_linux_musl),
++ ("powerpc64-alpine-linux-musl", powerpc64_alpine_linux_musl),
++ ("powerpc64le-alpine-linux-musl", powerpc64le_alpine_linux_musl),
++ ("s390x-alpine-linux-musl", s390x_alpine_linux_musl),
++ ("riscv64-alpine-linux-musl", riscv64_alpine_linux_musl),
++ ("loongarch64-alpine-linux-musl", loongarch64_alpine_linux_musl),
+ ("x86_64-unknown-linux-gnu", x86_64_unknown_linux_gnu),
+ ("x86_64-unknown-linux-gnux32", x86_64_unknown_linux_gnux32),
+ ("i686-unknown-linux-gnu", i686_unknown_linux_gnu),
+--- /dev/null
++++ rustc-1.48.0-src/compiler/rustc_target/src/spec/targets/powerpc64_alpine_linux_musl.rs
+@@ -0,0 +1,13 @@
++use crate::spec::Target;
++
++pub fn target() -> Target {
++ let mut base = super::powerpc64_unknown_linux_musl::target();
++
++ base.llvm_target = "powerpc64-alpine-linux-musl".into();
++ base.options.vendor = "alpine".into();
++ base.options.crt_static_default = false;
++ base.options.static_position_independent_executables = true;
++ base.options.need_rpath = true;
++
++ base
++}
+--- /dev/null
++++ rustc-1.48.0-src/compiler/rustc_target/src/spec/targets/powerpc64le_alpine_linux_musl.rs
+@@ -0,0 +1,13 @@
++use crate::spec::Target;
++
++pub fn target() -> Target {
++ let mut base = super::powerpc64le_unknown_linux_musl::target();
++
++ base.llvm_target = "powerpc64le-alpine-linux-musl".into();
++ base.options.vendor = "alpine".into();
++ base.options.crt_static_default = false;
++ base.options.static_position_independent_executables = true;
++ base.options.need_rpath = true;
++
++ base
++}
+--- /dev/null
++++ rustc-1.48.0-src/compiler/rustc_target/src/spec/targets/powerpc_alpine_linux_musl.rs
+@@ -0,0 +1,13 @@
++use crate::spec::Target;
++
++pub fn target() -> Target {
++ let mut base = super::powerpc_unknown_linux_musl::target();
++
++ base.llvm_target = "powerpc-alpine-linux-musl".into();
++ base.options.vendor = "alpine".into();
++ base.options.crt_static_default = false;
++ base.options.static_position_independent_executables = true;
++ base.options.need_rpath = true;
++
++ base
++}
+--- /dev/null
++++ rustc-1.48.0-src/compiler/rustc_target/src/spec/targets/s390x_alpine_linux_musl.rs
+@@ -0,0 +1,13 @@
++use crate::spec::Target;
++
++pub fn target() -> Target {
++ let mut base = super::s390x_unknown_linux_musl::target();
++
++ base.llvm_target = "s390x-alpine-linux-musl".into();
++ base.options.vendor = "alpine".into();
++ base.options.crt_static_default = false;
++ base.options.static_position_independent_executables = true;
++ base.options.need_rpath = true;
++
++ base
++}
+--- /dev/null
++++ rustc-1.48.0-src/compiler/rustc_target/src/spec/targets/x86_64_alpine_linux_musl.rs
+@@ -0,0 +1,13 @@
++use crate::spec::Target;
++
++pub fn target() -> Target {
++ let mut base = super::x86_64_unknown_linux_musl::target();
++
++ base.llvm_target = "x86_64-alpine-linux-musl".into();
++ base.options.vendor = "alpine".into();
++ base.options.crt_static_default = false;
++ base.options.static_position_independent_executables = true;
++ base.options.need_rpath = true;
++
++ base
++}
+--- /dev/null
++++ rustc-1.52.1-src/compiler/rustc_target/src/spec/targets/riscv64_alpine_linux_musl.rs
+@@ -0,0 +1,13 @@
++use crate::spec::Target;
++
++pub fn target() -> Target {
++ let mut base = super::riscv64gc_unknown_linux_musl::target();
++
++ base.llvm_target = "riscv64-alpine-linux-musl".into();
++ base.options.vendor = "alpine".into();
++ base.options.crt_static_default = false;
++ base.options.static_position_independent_executables = true;
++ base.options.need_rpath = true;
++
++ base
++}
+--- /dev/null
++++ rustc-1.77.0-src/compiler/rustc_target/src/spec/targets/loongarch64_alpine_linux_musl.rs
+@@ -0,0 +1,13 @@
++use crate::spec::Target;
++
++pub fn target() -> Target {
++ let mut base = super::loongarch64_unknown_linux_musl::target();
++
++ base.llvm_target = "loongarch64-alpine-linux-musl".into();
++ base.options.vendor = "alpine".into();
++ base.options.crt_static_default = false;
++ base.options.static_position_independent_executables = true;
++ base.options.need_rpath = true;
++
++ base
++}
diff --git a/main/rust/check-rustc b/main/rust/check-rustc
new file mode 100755
index 00000000000..d4b85be764d
--- /dev/null
+++ b/main/rust/check-rustc
@@ -0,0 +1,109 @@
+#!/bin/sh
+# vim: set ts=4:
+set -eu
+
+RUSTC="$1"
+TMPDIR="$(pwd)/.tmp-${0##*/}-$RANDOM"
+failed=0
+
+unset RUST_BACKTRACE
+unset RUSTC_CRT_STATIC
+
+
+_rustc() {
+ printf '\n$ rustc %s\n' "$*"
+ "$RUSTC" "$@"
+}
+
+die() {
+ printf '\033[1;31mERROR:\033[0m %s\n' "$1" >&2 # bold red
+ exit 1
+}
+
+fail() {
+ printf '\033[1;31mFAIL:\033[0m %s\n' "$1" >&2 # bold red
+ failed=$(( failed + 1 ))
+}
+
+assert_dynamic() {
+ readelf -l "$1" | grep -Fqw INTERP \
+ && readelf -d "$1" | grep -Fqw NEEDED || {
+ fail "$1 is not a dynamic executable!"
+ readelf -ld "$1"
+ }
+}
+
+assert_ok() {
+ "$1" || fail "$1 exited with status $?"
+}
+
+assert_panic() {
+ local status=0
+ "$1" || status=$? && [ "$status" = 101 ] \
+ || fail "$1 exited with status $status, but expected 101"
+}
+
+assert_pie() {
+ readelf -d "$1" | grep -Fw FLAGS_1 | grep -Fqw PIE || {
+ fail "$1 is not a PIE executable!"
+ readelf -d "$1"
+ }
+}
+
+assert_static() {
+ test -f "$1" \
+ && ! readelf -l "$1" | grep -Fqw INTERP \
+ && ! readelf -d "$1" | grep -Fqw NEEDED || {
+ fail "$1 is not a static executable!"
+ readelf -ld "$1"
+ }
+}
+
+
+#-------------------- M a i n --------------------
+
+test -d "$TMPDIR" && die "$TMPDIR already exists!"
+mkdir -p "$TMPDIR"
+trap "rm -R '$TMPDIR'" EXIT
+
+cd "$TMPDIR"
+
+cat >> hello_world.rs <<-EOF
+ fn main() {
+ println!("Hello, world!");
+ }
+EOF
+
+_rustc hello_world.rs
+assert_ok ./hello_world
+assert_dynamic hello_world
+assert_pie hello_world
+rm -f hello_world
+
+_rustc -C target-feature=-crt-static hello_world.rs
+assert_ok ./hello_world
+assert_dynamic hello_world
+assert_pie hello_world
+rm -f hello_world
+
+_rustc -C target-feature=+crt-static hello_world.rs
+assert_ok ./hello_world
+assert_static hello_world
+assert_pie hello_world
+rm -f hello_world
+
+
+cat >> panic.rs <<-EOF
+ fn main() {
+ panic!("This should panic");
+ }
+EOF
+
+_rustc -C target-feature=-crt-static panic.rs
+assert_panic ./panic
+
+_rustc -C target-feature=+crt-static panic.rs
+assert_panic ./panic
+
+
+[ "$failed" -eq 0 ] || die "$failed assertion(s) has failed"
diff --git a/main/rust/do-not-install-libunwind-source.patch b/main/rust/do-not-install-libunwind-source.patch
new file mode 100644
index 00000000000..3bcf3999749
--- /dev/null
+++ b/main/rust/do-not-install-libunwind-source.patch
@@ -0,0 +1,19 @@
+From: Dominic Meiser <alpine@msrd0.de>
+Date: Tue, 22 Dec 2020 23:31:28 +0100
+Subject: [PATCH] Do not install libunwind source
+
+This was added in rustc 1.48, but is incompatible with the Alpine Linux package since it removes all bundled
+dependencies prior to building.
+
+diff -Naur rustc-1.48.0-src.orig/src/bootstrap/dist.rs rustc-1.48.0-src/src/bootstrap/dist.rs
+--- a/src/bootstrap/src/core/build_steps/dist.rs
++++ b/src/bootstrap/src/core/build_steps/dist.rs
+@@ -909,7 +909,7 @@
+ copy_src_dirs(
+ builder,
+ &builder.src,
+- &["library", "src/llvm-project/libunwind"],
++ &["library"],
+ &[
+ // not needed and contains symlinks which rustup currently
+ // chokes on when unpacking.
diff --git a/main/rust/gcc-eh-libunwind.patch b/main/rust/gcc-eh-libunwind.patch
new file mode 100644
index 00000000000..eb29bf6cbed
--- /dev/null
+++ b/main/rust/gcc-eh-libunwind.patch
@@ -0,0 +1,37 @@
+From 88526c161aa3d0f0489639ee0c21c1c086ed13ea Mon Sep 17 00:00:00 2001
+From: Aleksei Nikiforov <aleksei.nikiforov@linux.ibm.com>
+Date: Thu, 28 Apr 2022 16:48:55 +0200
+Subject: [PATCH 1/2] When linking statically on musl-based system, also link
+ libc when gcc_eh is used instead of libunwind.
+
+Otherwise following errors are possible:
+
+$ rustc -C target-feature=+crt-static hello_world.rs
+error: linking with `cc` failed: exit status: 1
+ |
+ = note: "cc" "hello_world.hello_world.85b1eb1f-cgu.0.rcgu.o" "hello_world.hello_world.85b1eb1f-cgu.1.rcgu.o" "hello_world.hello_world.85b1eb1f-cgu.2.rcgu.o" "hello_world.hello_world.85b1eb1f-cgu.3.rcgu.o" "hello_world.hello_world.85b1eb1f-cgu.4.rcgu.o" "hello_world.hello_world.85b1eb1f-cgu.5.rcgu.o" "hello_world.hello_world.85b1eb1f-cgu.6.rcgu.o" "hello_world.hello_world.85b1eb1f-cgu.7.rcgu.o" "hello_world.p360wm7isvrz3vl.rcgu.o" "-Wl,--as-needed" "-L" "/usr/lib/rustlib/s390x-alpine-linux-musl/lib" "-Wl,--start-group" "-Wl,-Bstatic" "/usr/lib/rustlib/s390x-alpine-linux-musl/lib/libstd-290453869c457fa2.rlib" "/usr/lib/rustlib/s390x-alpine-linux-musl/lib/libpanic_unwind-cbf6379a7da8bab0.rlib" "/usr/lib/rustlib/s390x-alpine-linux-musl/lib/libminiz_oxide-a92dd9c70c39c672.rlib" "/usr/lib/rustlib/s390x-alpine-linux-musl/lib/libadler-d4dbc2eb60b8d045.rlib" "/usr/lib/rustlib/s390x-alpine-linux-musl/lib/libobject-e23cb707e37f1c09.rlib" "/usr/lib/rustlib/s390x-alpine-linux-musl/lib/libmemchr-70d429b287cab148.rlib" "/usr/lib/rustlib/s390x-alpine-linux-musl/lib/libaddr2line-ad67e2e2488bac33.rlib" "/usr/lib/rustlib/s390x-alpine-linux-musl/lib/libgimli-af4695e3f837f020.rlib" "/usr/lib/rustlib/s390x-alpine-linux-musl/lib/librustc_demangle-af414388b3a5e049.rlib" "/usr/lib/rustlib/s390x-alpine-linux-musl/lib/libstd_detect-0cbfc57a1d48d386.rlib" "/usr/lib/rustlib/s390x-alpine-linux-musl/lib/libhashbrown-542ee322b311bdfb.rlib" "/usr/lib/rustlib/s390x-alpine-linux-musl/lib/librustc_std_workspace_alloc-f412568a9ae32e92.rlib" "/usr/lib/rustlib/s390x-alpine-linux-musl/lib/libunwind-624d853e4eabb73e.rlib" "/usr/lib/rustlib/s390x-alpine-linux-musl/lib/libcfg_if-3afcf6ee80435613.rlib" "/usr/lib/rustlib/s390x-alpine-linux-musl/lib/liblibc-db67086a5554dc7a.rlib" "-lc" "/usr/lib/rustlib/s390x-alpine-linux-musl/lib/liballoc-55707620a5208b22.rlib" "/usr/lib/rustlib/s390x-alpine-linux-musl/lib/librustc_std_workspace_core-dbebf5ac373a4d82.rlib" "/usr/lib/rustlib/s390x-alpine-linux-musl/lib/libcore-8f983ad6f90a3ca2.rlib" "-Wl,--end-group" "/usr/lib/rustlib/s390x-alpine-linux-musl/lib/libcompiler_builtins-8976cae3a94d0248.rlib" "-Wl,-Bdynamic" "-lssp_nonshared" "-lgcc_eh" "-Wl,--eh-frame-hdr" "-Wl,-znoexecstack" "-L" "/usr/lib/rustlib/s390x-alpine-linux-musl/lib" "-o" "hello_world" "-Wl,--gc-sections" "-static-pie" "-Wl,-zrelro,-znow" "-nodefaultlibs"
+ = note: /usr/lib/gcc/s390x-alpine-linux-musl/11.2.1/../../../../s390x-alpine-linux-musl/bin/ld: /usr/lib/gcc/s390x-alpine-linux-musl/11.2.1/libgcc_eh.a(unwind-dw2.o): in function `__gthread_once':
+ /home/buildozer/aports/main/gcc/src/build/s390x-alpine-linux-musl/libgcc/./gthr-default.h:700: undefined reference to `pthread_once'
+ collect2: error: ld returned 1 exit status
+
+ = help: some `extern` functions couldn't be found; some native libraries may need to be installed or have their path specified
+ = note: use the `-l` flag to specify native libraries to link
+ = note: use the `cargo:rustc-link-lib` directive to specify the native libraries to link with Cargo (see https://doc.rust-lang.org/cargo/reference/build-scripts.html#cargorustc-link-libkindname)
+
+error: aborting due to previous error
+---
+
+--- a/library/unwind/src/lib.rs
++++ b/library/unwind/src/lib.rs
+@@ -53,7 +53,10 @@
+ #[link(name = "unwind", cfg(not(target_feature = "crt-static")))]
+ extern "C" {}
+ } else {
+- #[link(name = "unwind", kind = "static", modifiers = "-bundle", cfg(target_feature = "crt-static"))]
++ // on musl gcc_eh needs pthread_once from libc
++ #[link(name = "gcc_eh", kind = "static", modifiers = "-bundle", cfg(target_feature = "crt-static"))]
++ #[link(name = "c", kind = "static", modifiers = "-bundle", cfg(target_feature = "crt-static"))]
++ extern "C" {}
+ #[link(name = "gcc_s", cfg(not(target_feature = "crt-static")))]
+ extern "C" {}
+ }
diff --git a/main/rust/install-template-shebang.patch b/main/rust/install-template-shebang.patch
new file mode 100644
index 00000000000..db77ee9e5cf
--- /dev/null
+++ b/main/rust/install-template-shebang.patch
@@ -0,0 +1,10 @@
+The script seems to be POSIX-sh (+ local) compatible.
+
+--- a/src/tools/rust-installer/install-template.sh
++++ b/src/tools/rust-installer/install-template.sh
+@@ -1,4 +1,4 @@
+-#!/usr/bin/env bash
++#!/bin/sh
+
+ # No undefined variables
+ set -u
diff --git a/main/rust/musl-fix-linux_musl_base.patch b/main/rust/musl-fix-linux_musl_base.patch
new file mode 100644
index 00000000000..4ddb919425a
--- /dev/null
+++ b/main/rust/musl-fix-linux_musl_base.patch
@@ -0,0 +1,58 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sat, 08 Aug 2016 15:06:00 +0200
+Subject: [PATCH] Fix linux_musl_base for native musl host
+
+See https://github.com/rust-lang/rust/pull/40113
+
+--- a/compiler/rustc_target/src/spec/base/linux_musl.rs
++++ b/compiler/rustc_target/src/spec/base/linux_musl.rs
+@@ -1,16 +1,12 @@
+-use crate::spec::crt_objects;
+-use crate::spec::{base, LinkSelfContainedDefault, TargetOptions};
++use crate::spec::{base, TargetOptions};
+
+ pub fn opts() -> TargetOptions {
+ let mut base = base::linux::opts();
+
+ base.env = "musl".into();
+- base.pre_link_objects_self_contained = crt_objects::pre_musl_self_contained();
+- base.post_link_objects_self_contained = crt_objects::post_musl_self_contained();
+- base.link_self_contained = LinkSelfContainedDefault::InferredForMusl;
+
+ // These targets statically link libc by default
+- base.crt_static_default = true;
++ base.crt_static_default = false;
+
+ base
+ }
+--- a/compiler/rustc_target/src/spec/crt_objects.rs
++++ b/compiler/rustc_target/src/spec/crt_objects.rs
+@@ -58,28 +61,6 @@
+ (LinkOutputKind::StaticPicExe, &[obj]),
+ (LinkOutputKind::DynamicDylib, &[obj]),
+ (LinkOutputKind::StaticDylib, &[obj]),
+- ])
+-}
+-
+-pub(super) fn pre_musl_self_contained() -> CrtObjects {
+- new(&[
+- (LinkOutputKind::DynamicNoPicExe, &["crt1.o", "crti.o", "crtbegin.o"]),
+- (LinkOutputKind::DynamicPicExe, &["Scrt1.o", "crti.o", "crtbeginS.o"]),
+- (LinkOutputKind::StaticNoPicExe, &["crt1.o", "crti.o", "crtbegin.o"]),
+- (LinkOutputKind::StaticPicExe, &["rcrt1.o", "crti.o", "crtbeginS.o"]),
+- (LinkOutputKind::DynamicDylib, &["crti.o", "crtbeginS.o"]),
+- (LinkOutputKind::StaticDylib, &["crti.o", "crtbeginS.o"]),
+- ])
+-}
+-
+-pub(super) fn post_musl_self_contained() -> CrtObjects {
+- new(&[
+- (LinkOutputKind::DynamicNoPicExe, &["crtend.o", "crtn.o"]),
+- (LinkOutputKind::DynamicPicExe, &["crtendS.o", "crtn.o"]),
+- (LinkOutputKind::StaticNoPicExe, &["crtend.o", "crtn.o"]),
+- (LinkOutputKind::StaticPicExe, &["crtendS.o", "crtn.o"]),
+- (LinkOutputKind::DynamicDylib, &["crtendS.o", "crtn.o"]),
+- (LinkOutputKind::StaticDylib, &["crtendS.o", "crtn.o"]),
+ ])
+ }
+
diff --git a/main/rust/need-rpath.patch b/main/rust/need-rpath.patch
new file mode 100644
index 00000000000..6d3fb74c5eb
--- /dev/null
+++ b/main/rust/need-rpath.patch
@@ -0,0 +1,62 @@
+From: Shiz <hi@shiz.me>
+Date: Thu, 20 Aug 2017 01:48:22 +0200
+Subject: [PATCH] Add need_rpath target option to force RPATH generation
+
+This adds a `need_rpath` option to the target options in order to implicitly
+have the equivalent of `-C rpath` specified by default for final products
+(executables and dynamic libraries), so that RPATHs are always added.
+
+We have to skip this step in the bootstrap phase as it does its own manual
+RPATH additions, but unfortunately there's no clean way to detect this.
+As such, we have to resort to checking the `RUSTC_BOOTSTRAP` variable.
+Hacky hacky!
+
+--- a/compiler/rustc_target/src/spec/mod.rs
++++ b/compiler/rustc_target/src/spec/mod.rs
+@@ -1983,6 +1983,8 @@ pub struct TargetOptions {
+ pub allows_weak_linkage: bool,
+ /// Whether the linker support rpaths or not. Defaults to false.
+ pub has_rpath: bool,
++ /// Whether to force rpath support on by default. Defaults to false.
++ pub need_rpath: bool,
+ /// Whether to disable linking to the default libraries, typically corresponds
+ /// to `-nodefaultlibs`. Defaults to true.
+ pub no_default_libraries: bool,
+@@ -2317,6 +2319,7 @@ impl Default for TargetOptions {
+ default_dwarf_version: 4,
+ allows_weak_linkage: true,
+ has_rpath: false,
++ need_rpath: false,
+ no_default_libraries: true,
+ position_independent_executables: false,
+ static_position_independent_executables: false,
+@@ -3042,6 +3045,7 @@ impl Target {
+ key!(default_dwarf_version, u32);
+ key!(allows_weak_linkage, bool);
+ key!(has_rpath, bool);
++ key!(need_rpath, bool);
+ key!(no_default_libraries, bool);
+ key!(position_independent_executables, bool);
+ key!(static_position_independent_executables, bool);
+@@ -3297,6 +3301,7 @@ impl ToJson for Target {
+ target_option_val!(default_dwarf_version);
+ target_option_val!(allows_weak_linkage);
+ target_option_val!(has_rpath);
++ target_option_val!(need_rpath);
+ target_option_val!(no_default_libraries);
+ target_option_val!(position_independent_executables);
+ target_option_val!(static_position_independent_executables);
+--- a/compiler/rustc_codegen_ssa/src/back/link.rs.orig
++++ b/compiler/rustc_codegen_ssa/src/back/link.rs
+@@ -2036,7 +2036,10 @@
+ // FIXME (#2397): At some point we want to rpath our guesses as to
+ // where extern libraries might live, based on the
+ // add_lib_search_paths
+- if sess.opts.cg.rpath {
++ // XXX: hacky hacky
++ let bootstrap = env::var("RUSTC_BOOTSTRAP").is_ok();
++ if !bootstrap && !sess.crt_static(None) &&
++ (sess.opts.cg.rpath || sess.target.options.need_rpath) {
+ let libs = codegen_results
+ .crate_info
+ .used_crates
diff --git a/main/rust/need-ssp_nonshared.patch b/main/rust/need-ssp_nonshared.patch
new file mode 100644
index 00000000000..68b652e25d9
--- /dev/null
+++ b/main/rust/need-ssp_nonshared.patch
@@ -0,0 +1,29 @@
+this is needed for libssp-less __stack_chk_fail_local (on x86),
+the other Bdynamic patch seems to break the top hunk,
+so we need the bottom hack
+--
+diff --git a/library/std/src/sys/unix/mod.rs b/library/std/src/sys/unix/mod.rs
+index 68c9520..63f8a48 100644
+--- a/library/std/src/sys/pal/unix/mod.rs
++++ b/library/std/src/sys/pal/unix/mod.rs
+@@ -379,6 +379,9 @@ cfg_if::cfg_if! {
+ #[link(name = "dl", cfg(not(target_feature = "crt-static")))]
+ #[link(name = "log", cfg(not(target_feature = "crt-static")))]
+ extern "C" {}
++ } else if #[cfg(all(target_os = "linux", target_env = "musl"))] {
++ #[link(name = "ssp_nonshared", kind = "static")]
++ extern "C" {}
+ } else if #[cfg(target_os = "freebsd")] {
+ #[link(name = "execinfo")]
+ #[link(name = "pthread")]
+--- a/compiler/rustc_llvm/build.rs
++++ b/compiler/rustc_llvm/build.rs
+@@ -110,6 +110,8 @@
+ return;
+ }
+
++ println!("cargo:rustc-link-lib=ssp_nonshared");
++
+ restore_library_path();
+
+ let target = env::var("TARGET").expect("TARGET was not set");
diff --git a/main/rust/no-export-ld-library-path.patch b/main/rust/no-export-ld-library-path.patch
new file mode 100644
index 00000000000..feff239bdaa
--- /dev/null
+++ b/main/rust/no-export-ld-library-path.patch
@@ -0,0 +1,30 @@
+Patch-Source: https://github.com/chimera-linux/cports/blob/3dc313d1c83d20cc9ac221e6fe2992d80c64c071/main/rust/patches/0010-do-not-export-LD_LIBRARY_PATH.patch
+From 6f363ca048383740bdbebd63013bcedbb10f814a Mon Sep 17 00:00:00 2001
+From: Daniel Kolesa <daniel@octaforge.org>
+Date: Fri, 25 Feb 2022 00:39:21 +0100
+Subject: [PATCH 10/11] do not export LD_LIBRARY_PATH
+
+---
+ src/bootstrap/bootstrap.py | 6 ------
+ 1 file changed, 6 deletions(-)
+
+diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py
+index 7c36bb264..b4f9b7066 100644
+--- a/src/bootstrap/bootstrap.py
++++ b/src/bootstrap/bootstrap.py
+@@ -893,12 +893,6 @@ class RustBuild(object):
+ del env["CARGO_BUILD_TARGET"]
+ env["CARGO_TARGET_DIR"] = build_dir
+ env["RUSTC"] = self.rustc()
+- env["LD_LIBRARY_PATH"] = os.path.join(self.bin_root(), "lib") + \
+- (os.pathsep + env["LD_LIBRARY_PATH"]) \
+- if "LD_LIBRARY_PATH" in env else ""
+- env["DYLD_LIBRARY_PATH"] = os.path.join(self.bin_root(), "lib") + \
+- (os.pathsep + env["DYLD_LIBRARY_PATH"]) \
+- if "DYLD_LIBRARY_PATH" in env else ""
+ env["LIBRARY_PATH"] = os.path.join(self.bin_root(), "lib") + \
+ (os.pathsep + env["LIBRARY_PATH"]) \
+ if "LIBRARY_PATH" in env else ""
+--
+2.35.1
+
diff --git a/main/rust/revert-rustc_codegen_ssa-use-try_canonicalize-in-rpath.patch b/main/rust/revert-rustc_codegen_ssa-use-try_canonicalize-in-rpath.patch
new file mode 100644
index 00000000000..5d5794083a6
--- /dev/null
+++ b/main/rust/revert-rustc_codegen_ssa-use-try_canonicalize-in-rpath.patch
@@ -0,0 +1,39 @@
+This reverts upstream 5aeb6a326f2fa941061b60c9286665847fe0401e that is
+part of https://github.com/rust-lang/rust/pull/116487
+
+Since we always enable `-Crpath` with need-rpath.patch things like running
+`rustc hello_world.rs` would break, as we noticed with our check-rustc
+test.
+
+Related issue: https://github.com/rust-lang/rust/issues/119571
+
+--- a/compiler/rustc_codegen_ssa/src/back/rpath.rs
++++ b/compiler/rustc_codegen_ssa/src/back/rpath.rs
+@@ -1,7 +1,8 @@
+ use pathdiff::diff_paths;
+ use rustc_data_structures::fx::FxHashSet;
+-use rustc_fs_util::try_canonicalize;
++use std::env;
+ use std::ffi::OsString;
++use std::fs;
+ use std::path::{Path, PathBuf};
+
+ pub struct RPathConfig<'a> {
+@@ -81,11 +82,12 @@ fn get_rpath_relative_to_output(config:
+ // Mac doesn't appear to support $ORIGIN
+ let prefix = if config.is_like_osx { "@loader_path" } else { "$ORIGIN" };
+
+- // Strip filenames
+- let lib = lib.parent().unwrap();
+- let output = config.out_filename.parent().unwrap();
+- let lib = try_canonicalize(lib).unwrap();
+- let output = try_canonicalize(output).unwrap();
++ let cwd = env::current_dir().unwrap();
++ let mut lib = fs::canonicalize(&cwd.join(lib)).unwrap_or_else(|_| cwd.join(lib));
++ lib.pop(); // strip filename
++ let mut output = cwd.join(&config.out_filename);
++ output.pop(); // strip filename
++ let output = fs::canonicalize(&output).unwrap_or(output);
+ let relative = path_relative_from(&lib, &output)
+ .unwrap_or_else(|| panic!("couldn't create relative path from {output:?} to {lib:?}"));
+
diff --git a/main/rust/system-wasm-ld.patch b/main/rust/system-wasm-ld.patch
new file mode 100644
index 00000000000..c4422eb5019
--- /dev/null
+++ b/main/rust/system-wasm-ld.patch
@@ -0,0 +1,13 @@
+--- a/compiler/rustc_target/src/spec/base/wasm.rs
++++ b/compiler/rustc_target/src/spec/base/wasm.rs
+@@ -88,8 +88,8 @@ pub fn options() -> TargetOptions {
+ // arguments just yet
+ limit_rdylib_exports: false,
+
+- // we use the LLD shipped with the Rust toolchain by default
+- linker: Some("rust-lld".into()),
++ // we use the LLD shipped with the system by default
++ linker: Some("wasm-ld".into()),
+ linker_flavor: LinkerFlavor::WasmLld(Cc::No),
+
+ pre_link_args,
diff --git a/main/s390-tools/0009-link-libexecinfo.patch b/main/s390-tools/0009-link-libexecinfo.patch
deleted file mode 100644
index 4531dda6c84..00000000000
--- a/main/s390-tools/0009-link-libexecinfo.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/common.mak b/common.mak
-index 9c349e5..0a5fd69 100644
---- a/common.mak
-+++ b/common.mak
-@@ -244,6 +244,7 @@ else
- NO_PIE_LINKFLAGS :=
- NO_PIE_LDFLAGS :=
- endif
-+LDLIBS += $(LIBEXECINFO_LIBS)
-
- # Overwrite implicite makefile rules for having nice compile output
- %.o: %.c
diff --git a/main/s390-tools/APKBUILD b/main/s390-tools/APKBUILD
index e1e67989788..13933582b2c 100644
--- a/main/s390-tools/APKBUILD
+++ b/main/s390-tools/APKBUILD
@@ -1,25 +1,24 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Tuan Hoang <tmhoang@linux.ibm.com>
pkgname=s390-tools
-pkgver=2.21.0
-pkgrel=0
+pkgver=2.23.0
+pkgrel=2
pkgdesc="Tools for use with the s390 Linux kernel and device drivers"
url="https://github.com/ibm-s390-tools/s390-tools"
arch="s390x"
license="MIT"
options="!check" # No test suite
depends="bash"
-makedepends="linux-headers libexecinfo-dev zlib-dev fuse3-dev ncurses-dev openssl1.1-compat-dev libxml2-dev
- cryptsetup-dev json-c-dev net-snmp-dev curl-dev"
+makedepends="linux-headers zlib-dev fuse3-dev ncurses-dev openssl-dev>3 libxml2-dev
+ cryptsetup-dev json-c-dev net-snmp-dev curl-dev liblockfile-dev"
triggers="$pkgname.trigger=/boot"
-subpackages="$pkgname-doc"
+subpackages="$pkgname-doc $pkgname-dbg"
source="$pkgname-$pkgver.tar.gz::https://github.com/ibm-s390-tools/s390-tools/archive/v$pkgver.tar.gz
0002-musl-fixes.patch
0004-missing-time-header.patch
0006-define-path-mounted.patch
0007-tunedasd-no-need-error-h.patch
0008-iucvterm-no-nls.patch
- 0009-link-libexecinfo.patch
0010-musl-s390x-signal-def.patch
0200-dasdinfo-gnu-ext-hack.patch
@@ -29,6 +28,10 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/ibm-s390-tools/s390-tools/ar
bash.patch
argz.patch
iucvterm-gettext.patch
+ no-execinfo.patch
+ zipl-disable-fortify-source.patch
+ osasnmpd-Fix-missing-semicolon.patch
+ lfs64.patch
argz.c
argz.h
@@ -45,8 +48,8 @@ build() {
HAVE_GLIB=0 \
HAVE_GLIB2=0 \
HAVE_PFM=0 \
- DISTRELEASE="Alpine" \
- LIBEXECINFO_LIBS="-lexecinfo"
+ HAVE_LIBUDEV=0 \
+ DISTRELEASE="Alpine"
gcc -Wall -o mk-s390-cdboot "$srcdir"/mk-s390-cdboot.c
}
@@ -55,18 +58,18 @@ package() {
HAVE_GLIB=0 \
HAVE_GLIB2=0 \
HAVE_PFM=0 \
+ HAVE_LIBUDEV=0 \
install
install -Dm755 mk-s390-cdboot "$pkgdir"/sbin/mk-s390-cdboot
}
sha512sums="
-3f37e2c58cc2b7cdb4c7e51b0344e190cd5c6551ee310c6602238e2eeba0a29c6b95a3b20a582e6b4c4654108f9426ebc6b56c8a2f923a2539830b3e5341b5ca s390-tools-2.21.0.tar.gz
+839ea737db0bbfb2c726c757867e5d38b771282aa3484b90c3cc6376efa6c564874fe62879dccc8c5547a768e29aa5389ecf20d244574c5479887504addaee3b s390-tools-2.23.0.tar.gz
ca1ba0f4c76c1441589138fafbd9f6fc2423cc086301fcb18eb9f47f7884c279cf73cc9e74f4cde305775bd6fa5bf2f9450385ad02b5a20671e59c604823efb5 0002-musl-fixes.patch
6e0f8d999eef08677e9f80d1a07e01556474723b9b00435d463428eee22babe4489257ad5c8fffb650bd0fd5714cdac01dc926e1402f9741fc1327d177ece897 0004-missing-time-header.patch
e41548d83d53e4371afcee3601505520506d05b932aeb91f1ca86e589c010fa5d22777d4617c1e25adfc04fbcf45289cf65a8100108c878323e125e312579220 0006-define-path-mounted.patch
ecfbba213d2a705e2a5a2697090f659670ca1a12e4568c1de87f17d11d72a1a6c524b23b4db25c0558b4e8239c27afddb94d8887d93170b359d77985018f9b9c 0007-tunedasd-no-need-error-h.patch
bdbeb6f3873ede82487c7e4fcac84aa2bf8a922991ec32d029a64cd7142625f5a99920db0f1b6935805d7371ae5a7640c5ea577969937dd96c4f4f996b909ac3 0008-iucvterm-no-nls.patch
-c7875cf1cc2de462f481aa0c9bcad14b9bea6aeba18260d5e8686995aefcaa5cbf0e8811046ed25ab70e7c4ada6c7c353debbf3e2cdfefa06c599d8b4b762ee5 0009-link-libexecinfo.patch
f785a899583de8592422e5e46c4e4893196e3c7885e4a0bb4c717c3587db8c1a4c264c80337b1d0c31b39150f3c3b71b876fe156086ace3a542c12678ae7c85e 0010-musl-s390x-signal-def.patch
f5e06e28f77c44f591d74f383ce308a6bfb129b00b291601f2be8866dd1382c597348794be2109c9dc0fa8fdbbee509d036fa6c215e73c4c99f476d3c1cb5a83 0200-dasdinfo-gnu-ext-hack.patch
89ca081aabb5d0f8868ce171cf27265f127585dc57f9950b3ee24d31c1a9a0c25026da77724dc96be8d579768625fee9b2b1214647355dffb49e338dfce18092 0300-disable-program-using-gnu-ext.patch
@@ -75,6 +78,10 @@ f5e06e28f77c44f591d74f383ce308a6bfb129b00b291601f2be8866dd1382c597348794be2109c9
3577c2e0715a5553f5061354b3ff9d9ab2e52712b140fb24a84471c3d3e0d47acf74e00d4f05d7a94aa82942cf84f8ae0b30ac15dfe32d10ff2d24a7a7c0c41f bash.patch
5bc7b2b51bd298d0942ff2f96bb9e30d258100ce87b48285fd4dfeb24448f33a3c679789187d4355c487e64057d7f49a44c0d934bb5f427d18fd625e55de5b0c argz.patch
c3746ea9e5c638a7adc51bfd8ffebc34f2be45d8d816e9f5711ba8f238fe028f711c91c6732a08a8088e32261f769e2e41a079997295e146082212b8fa84a246 iucvterm-gettext.patch
+797ea51f24b2bb0ff0e14a5626d8b13d5ed93f083f7c3366d2e7b6be7102fc5f092c241686e6f5738ee0096d389e0d1490ebc87402541cba83b92c8059cacbdc no-execinfo.patch
+bb4925d3ad1c128af5f7072b94228a2efa4bd2a227dd2de6badec6b5d846b1fbf116228f8f514f3c5d86b1b51597d9bc2c47149d723e3b1944ceed6c5fe7fd60 zipl-disable-fortify-source.patch
+6563c53138d9a1a385a947bede29661c1c862d05102ee271cfda7270333e737444c2c576af99fa567a75b8659b03193bb0a437b0910d0476c6b6dbe4554e7fcf osasnmpd-Fix-missing-semicolon.patch
+ab1bc0273fdd529fe4dcf20d3d8760d30702d670bbef1f173951d12fe2a62344c8b81209296c103c2ae06c62b2a771121eb41e2d88c08b6a0e19027f9b23a947 lfs64.patch
2e573314d4c4ed90b61da28de22ae8e2f68ced5489f7e5e0b30f51b776efaf40c1f781d3b485418572d8f33a169fa6946b7358cbd4a7de5a3724b20ed622262b argz.c
50bd5c0f555963dadbfaa72df5bf0801a48743d6d0feddb6ebfa4ffa410196216c1860d3a577361e035169fea4217aef3f04d69394c59db65b60c5ea29eba8cb argz.h
5e19ccfce59a2a79863db676b0ea4280cb9016cda1a30dc233526f52425c305410dd148453b75c2613acac37e364305ee25f8e545d57c5059cca19a13bac2a5e Makefile.argz
diff --git a/main/s390-tools/lfs64.patch b/main/s390-tools/lfs64.patch
new file mode 100644
index 00000000000..ec15af585d4
--- /dev/null
+++ b/main/s390-tools/lfs64.patch
@@ -0,0 +1,43 @@
+diff --git a/dasdview/dasdview.c b/dasdview/dasdview.c
+index 92a30ea..8c999af 100644
+--- a/dasdview/dasdview.c
++++ b/dasdview/dasdview.c
+@@ -1865,7 +1865,7 @@ static void dasdview_view_standard(dasdview_info_t *info)
+
+ /* seek in SEEK_STEP steps */
+ for (i = 1; i <= j; i++) {
+- rc = lseek64(fd, SEEK_STEP, SEEK_CUR);
++ rc = lseek(fd, SEEK_STEP, SEEK_CUR);
+ if (rc == -1) {
+ printf("*** rc: %d (%d) ***\n", rc, errno);
+ printf("*** j: %llu ***\n", j);
+diff --git a/zipl/src/zipl-editenv.c b/zipl/src/zipl-editenv.c
+index a55e9df..2d62824 100644
+--- a/zipl/src/zipl-editenv.c
++++ b/zipl/src/zipl-editenv.c
+@@ -128,7 +128,7 @@ static int envblk_update(struct zipl_envblk *zeb)
+ if (fs_map(zeb->fd, zeb->offset, &blknr, zeb->size) != 0)
+ goto error_close;
+
+- if (lseek64(dev_fd, blknr * (uint64_t)zeb->size, SEEK_SET) < 0) {
++ if (lseek(dev_fd, blknr * (off_t)zeb->size, SEEK_SET) < 0) {
+ error_reason(strerror(errno));
+ goto error_close;
+ }
+diff --git a/zkey/zkey-cryptsetup.c b/zkey/zkey-cryptsetup.c
+index fae78c7..3238b69 100644
+--- a/zkey/zkey-cryptsetup.c
++++ b/zkey/zkey-cryptsetup.c
+@@ -490,10 +490,10 @@ static int keyfile_seek(int fd, size_t bytes)
+ {
+ size_t next_read;
+ ssize_t bytes_r;
+- off64_t r;
++ off_t r;
+ char *tmp;
+
+- r = lseek64(fd, bytes, SEEK_CUR);
++ r = lseek(fd, bytes, SEEK_CUR);
+ if (r > 0)
+ return 0;
+ if (r < 0 && errno != ESPIPE)
diff --git a/main/s390-tools/no-execinfo.patch b/main/s390-tools/no-execinfo.patch
new file mode 100644
index 00000000000..ba2f0c2fb05
--- /dev/null
+++ b/main/s390-tools/no-execinfo.patch
@@ -0,0 +1,56 @@
+diff --git a/libutil/util_panic.c b/libutil/util_panic.c
+index 59a9a9e..cc21e3d 100644
+--- a/libutil/util_panic.c
++++ b/libutil/util_panic.c
+@@ -9,7 +9,6 @@
+ * it under the terms of the MIT license. See LICENSE for details.
+ */
+
+-#include <execinfo.h>
+ #include <stdarg.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+@@ -26,6 +25,7 @@
+ */
+ static void print_backtrace(void)
+ {
++ #if 0
+ void *array[256];
+ size_t i, size;
+ char **strings;
+@@ -41,6 +41,7 @@ static void print_backtrace(void)
+ fprintf(stderr, " %s\n", strings[i]);
+
+ free(strings);
++ #endif
+ }
+
+ /*
+diff --git a/zdev/src/misc.c b/zdev/src/misc.c
+index 2f5cbc2..08a2524 100644
+--- a/zdev/src/misc.c
++++ b/zdev/src/misc.c
+@@ -10,7 +10,6 @@
+ #include <ctype.h>
+ #include <dirent.h>
+ #include <errno.h>
+-#include <execinfo.h>
+ #include <limits.h>
+ #include <signal.h>
+ #include <stdarg.h>
+@@ -1258,6 +1257,7 @@ void line_free(int argc, char **argv)
+ /* Used for debugging. */
+ void print_trace(void)
+ {
++ #if 0
+ void *bt[BACKTRACE_MAX];
+ char **bt_sym;
+ int num, i;
+@@ -1268,6 +1268,7 @@ void print_trace(void)
+ for (i = 0; i < num; i++)
+ fprintf(stderr, "DEBUG: %s\n", bt_sym[i]);
+ free(bt_sym);
++ #endif
+ }
+
+ /* Return a textual representation of @config. */
diff --git a/main/s390-tools/osasnmpd-Fix-missing-semicolon.patch b/main/s390-tools/osasnmpd-Fix-missing-semicolon.patch
new file mode 100644
index 00000000000..5d595fadce9
--- /dev/null
+++ b/main/s390-tools/osasnmpd-Fix-missing-semicolon.patch
@@ -0,0 +1,32 @@
+From c62f9306347f6d27a9130547693e1e456ac64a72 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jakub=20=C4=8Cajka?= <jcajka@redhat.com>
+Date: Fri, 1 Sep 2023 09:31:39 +0200
+Subject: [PATCH] osasnmpd: Fix missing semicolon
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+5.9.4 net-snmp started to require semicolon on the config_require there
+are no docs covering this change.
+
+Link: https://bugzilla.redhat.com/show_bug.cgi?id=2235734
+Closes: https://github.com/ibm-s390-linux/s390-tools/pull/155
+Signed-off-by: Jakub Čajka <jcajka@redhat.com>
+Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
+---
+ osasnmpd/ibmOSAMib.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/osasnmpd/ibmOSAMib.h b/osasnmpd/ibmOSAMib.h
+index 6dc2345d5..2b20684b0 100644
+--- a/osasnmpd/ibmOSAMib.h
++++ b/osasnmpd/ibmOSAMib.h
+@@ -16,7 +16,7 @@
+
+ /* we may use header_generic and header_simple_table from the util_funcs module */
+
+-config_require(util_funcs)
++config_require(util_funcs);
+
+
+ /* function prototypes */
diff --git a/main/s390-tools/zipl-disable-fortify-source.patch b/main/s390-tools/zipl-disable-fortify-source.patch
new file mode 100644
index 00000000000..dda888a8473
--- /dev/null
+++ b/main/s390-tools/zipl-disable-fortify-source.patch
@@ -0,0 +1,13 @@
+diff --git a/zipl/src/Makefile b/zipl/src/Makefile
+index 786bb7f..2a1e10a 100644
+--- a/zipl/src/Makefile
++++ b/zipl/src/Makefile
+@@ -4,7 +4,7 @@ include ../../common.mak
+ ALL_CPPFLAGS += -I../include -I../boot \
+ -DZFCPDUMP_IMAGE="STRINGIFY($(ZFCPDUMP_DIR)/$(ZFCPDUMP_IMAGE))" \
+ -DZFCPDUMP_INITRD="STRINGIFY($(ZFCPDUMP_DIR)/$(ZFCPDUMP_INITRD))" \
+- -D_FILE_OFFSET_BITS=64 $(NO_PIE_CFLAGS)
++ -D_FILE_OFFSET_BITS=64 -U_FORTIFY_SOURCE $(NO_PIE_CFLAGS)
+ ALL_LDFLAGS += -Wl,-z,noexecstack $(NO_PIE_LDFLAGS)
+
+ libs = $(rootdir)/libutil/libutil.a
diff --git a/main/s6-dns/APKBUILD b/main/s6-dns/APKBUILD
index f197f4a8703..c4b187426b5 100644
--- a/main/s6-dns/APKBUILD
+++ b/main/s6-dns/APKBUILD
@@ -1,16 +1,21 @@
-# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
# Contributor: John Regan <john@jrjrtech.com>
+# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
pkgname=s6-dns
-pkgver=2.3.5.4
+pkgver=2.3.7.1
pkgrel=0
pkgdesc="skarnet.org's DNS client libraries and command-line DNS client utilities"
-url="https://skarnet.org/software/$pkgname/"
+url=https://skarnet.org/software/s6-dns/
arch="all"
license="ISC"
options="!check"
-makedepends="skalibs-dev>=2.12"
+makedepends="skalibs-dev>=2.14"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
-source="https://skarnet.org/software/s6-dns/s6-dns-$pkgver.tar.gz"
+source="https://skarnet.org/software/s6-dns/s6-dns-$pkgver.tar.gz s6-dns.pc"
+
+prepare() {
+ default_prepare
+ sed -i -e "s/@@VERSION@@/$pkgver/g" -- "$srcdir"/*.pc
+}
build() {
./configure \
@@ -26,6 +31,7 @@ build() {
package() {
make DESTDIR="$pkgdir" install
+ install -D -m644 "$srcdir/s6-dns.pc" "$pkgdir/usr/lib/pkgconfig/s6-dns.pc"
}
doc() {
@@ -40,5 +46,6 @@ static() {
}
sha512sums="
-04c8fd40c71c9517f4e8d847a0ddf7d60a7759b4d7075035c2e00b4eb34e81edf4608df562929042c294ed671ab953e613374b577210ff49841ceb27dd563ae5 s6-dns-2.3.5.4.tar.gz
+9dabee86d9a27fb0e4a3c10563694bb5734c08c4d730a69daec17dad140274aa104bd6edbd501261c7a7c7bcee505f79134b7119457d5fbedcbb2be6b352ebb0 s6-dns-2.3.7.1.tar.gz
+2b285cf8691ad30e8ada115d2ee81b4d356eda042b0ab18cf3006069707963bedc922c9f3bf2051c11e4abc30abed2932fd6c3f1f8d4e0d54bf11e30c3741090 s6-dns.pc
"
diff --git a/main/s6-dns/s6-dns.pc b/main/s6-dns/s6-dns.pc
new file mode 100644
index 00000000000..3f3ace8a825
--- /dev/null
+++ b/main/s6-dns/s6-dns.pc
@@ -0,0 +1,7 @@
+Name: s6-dns
+Description: DNS clients and libraries from skarnet.org
+URL: https://skarnet.org/software/s6-dns/
+Version: @@VERSION@@
+Requires.private: skalibs
+Libs: -ls6dns
+Cflags: -I/usr/include/s6-dns
diff --git a/main/s6-linux-init/APKBUILD b/main/s6-linux-init/APKBUILD
index a971fc9d2ca..bde97b69b74 100644
--- a/main/s6-linux-init/APKBUILD
+++ b/main/s6-linux-init/APKBUILD
@@ -1,14 +1,14 @@
-# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
# Contributor: Laurent Bercot <ska-devel@skarnet.org>
+# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
pkgname=s6-linux-init
-pkgver=1.0.8.0
+pkgver=1.1.2.0
pkgrel=0
pkgdesc="Set of tools to create and run an s6-based init system"
-url="http://skarnet.org/software/$pkgname/"
+url=https://skarnet.org/software/s6-linux-init/
arch="all"
license="ISC"
options="!check"
-makedepends="skalibs-dev>=2.12 execline-dev s6-dev>=2.11 linux-headers"
+makedepends="skalibs-dev>=2.14 execline-dev s6-dev>=2.12 linux-headers"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
source="https://skarnet.org/software/s6-linux-init/s6-linux-init-$pkgver.tar.gz"
@@ -34,5 +34,5 @@ doc() {
}
sha512sums="
-b64319bc13a98e5f766a118ebd54ccec93163b38b2afc060fe4034a4f2312bb6ae68019e37706338f84c74aa527e5b2ac1f4b29d39255c2d436eab8608483346 s6-linux-init-1.0.8.0.tar.gz
+76376c4d407e665f67f733f1366dbacca58d268ebdbe22a9147cb102d519bd4c5887a345f66db2005d29ed9a841cb5a388c73c7d8df00d984cc4a25b9a813786 s6-linux-init-1.1.2.0.tar.gz
"
diff --git a/main/s6-linux-utils/APKBUILD b/main/s6-linux-utils/APKBUILD
index c5389ed4ef5..4e633b6bc03 100644
--- a/main/s6-linux-utils/APKBUILD
+++ b/main/s6-linux-utils/APKBUILD
@@ -1,14 +1,14 @@
-# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
# Contributor: Christian Kampka <christian@kampka.net>
+# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
pkgname=s6-linux-utils
-pkgver=2.6.0.0
-pkgrel=0
+pkgver=2.6.2.0
+pkgrel=3
pkgdesc="A set of tiny Linux-specific utilities optimized for simplicity and small size."
-url="http://skarnet.org/software/$pkgname/"
+url=https://skarnet.org/software/s6-linux-utils/
arch="all"
license="ISC"
options="!check"
-makedepends="skalibs-dev>=2.12 linux-headers"
+makedepends="skalibs-dev>=2.14 linux-headers"
subpackages="$pkgname-doc"
source="https://skarnet.org/software/s6-linux-utils/s6-linux-utils-$pkgver.tar.gz"
@@ -18,12 +18,15 @@ build() {
--enable-static \
--disable-allstatic \
--prefix=/usr \
- --libdir=/usr/lib
+ --libdir=/usr/lib \
+ --enable-multicall
make
}
package() {
make DESTDIR="$pkgdir" install
+ rm "$pkgdir"/usr/include/s6-linux-utils/config.h
+ rmdir -p "$pkgdir"/usr/include/s6-linux-utils || :
}
doc() {
@@ -33,5 +36,5 @@ doc() {
}
sha512sums="
-cecd745d473b200e10071d73191d5ec425533818a9775e882a2b8a2fbc98779f2309e17d41f844b171e0625b233804bc7af9585709e8e42dc73ff30afcee06e9 s6-linux-utils-2.6.0.0.tar.gz
+b7bc96ef3aa81bc01c6ca2a82591201be0966d8aa2b71545c963f67dba8441a05631e0ea593f0a693ee04d6d2637754e9543eddbfe70ed9c0529ff49081aa54d s6-linux-utils-2.6.2.0.tar.gz
"
diff --git a/main/s6-networking/APKBUILD b/main/s6-networking/APKBUILD
index c61e85240e3..673fccd4954 100644
--- a/main/s6-networking/APKBUILD
+++ b/main/s6-networking/APKBUILD
@@ -1,14 +1,14 @@
-# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
# Contributor: John Regan <john@jrjrtech.com>
+# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
pkgname=s6-networking
-pkgver=2.5.1.1
+pkgver=2.7.0.2
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"
license="ISC"
options="!check"
-makedepends="skalibs-dev>=2.12 execline-dev s6-dev>=2.11 s6-dns-dev bearssl bearssl-dev"
+makedepends="skalibs-dev>=2.14 execline-dev s6-dev>=2.12 s6-dns-dev bearssl bearssl-dev"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
source="https://skarnet.org/software/s6-networking/s6-networking-$pkgver.tar.gz"
@@ -41,5 +41,5 @@ static() {
}
sha512sums="
-a9c1970cad5b3aeee447cce7c858e8bd88ee378fe456cc68d032f195373dabf658eacf55d9fa39ec635e893116296c1c614b89d97c5045b90dbe745a52e24021 s6-networking-2.5.1.1.tar.gz
+49f80c68d639f2b7ac7451ca2ace828ca4e8c1eeffec4a9b31f8157c26a87228275ea14d8b6495b0af0879a961b37910aa2b769d8db56d8731d0827c96053631 s6-networking-2.7.0.2.tar.gz
"
diff --git a/main/s6-portable-utils/APKBUILD b/main/s6-portable-utils/APKBUILD
index a4ea808498c..9803924b03d 100644
--- a/main/s6-portable-utils/APKBUILD
+++ b/main/s6-portable-utils/APKBUILD
@@ -1,13 +1,13 @@
-# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
# Contributor: John Regan <john@jrjrtech.com>
+# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
pkgname=s6-portable-utils
-pkgver=2.2.5.0
-pkgrel=0
+pkgver=2.3.0.3
+pkgrel=1
pkgdesc="skarnet.org's tiny portable generic utilities"
-url="http://skarnet.org/software/$pkgname/"
+url=https://skarnet.org/software/s6-portable-utils/
arch="all"
license="ISC"
-makedepends="skalibs-dev>=2.12"
+makedepends="skalibs-dev>=2.14"
options="!check"
subpackages="$pkgname-doc"
source="https://skarnet.org/software/s6-portable-utils/s6-portable-utils-$pkgver.tar.gz"
@@ -18,12 +18,15 @@ build() {
--enable-static \
--disable-allstatic \
--prefix=/usr \
- --libdir=/usr/lib
+ --libdir=/usr/lib \
+ --enable-multicall
make
}
package() {
make DESTDIR="$pkgdir" install
+ rm "$pkgdir"/usr/include/s6-portable-utils/config.h
+ rmdir -p "$pkgdir"/usr/include/s6-portable-utils || :
}
doc() {
@@ -33,5 +36,5 @@ doc() {
}
sha512sums="
-2e90a1390140818268bd83629579098552c22160537874a90d4be94fae157cb9cdb864859c40847e8588fa9f62fb5af7bf89aa12561f1e6678a7cffc0f0a6d68 s6-portable-utils-2.2.5.0.tar.gz
+f75242ac6c06ffd5bd66b8a35bbdf39938cf3bfa6e79abd214af37e9e4acc732ca1760566862482bc964a5cca05bbce8bd24d7167b02dc66c5f397c85ee0d37f s6-portable-utils-2.3.0.3.tar.gz
"
diff --git a/main/s6-rc/APKBUILD b/main/s6-rc/APKBUILD
index bba882aa963..28efb4c0d02 100644
--- a/main/s6-rc/APKBUILD
+++ b/main/s6-rc/APKBUILD
@@ -1,14 +1,14 @@
-# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
# Contributor: Eivind Uggedal <eu@eju.no>
+# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
pkgname=s6-rc
-pkgver=0.5.3.2
+pkgver=0.5.4.2
pkgrel=0
pkgdesc="Service manager for s6-based systems"
-url="http://skarnet.org/software/$pkgname/"
+url=https://skarnet.org/software/s6-rc/
arch="all"
license="ISC"
options="!check"
-makedepends="skalibs-dev>=2.12 execline-dev s6-dev>=2.11"
+makedepends="skalibs-dev>=2.14 execline-dev s6-dev>=2.12"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
source="https://skarnet.org/software/s6-rc/s6-rc-$pkgver.tar.gz"
@@ -39,5 +39,5 @@ static() {
}
sha512sums="
-72963b2aa8e338503918d063102653d392cbd701823e35f87b45d9777fd512f7ad49ab47b94df0f9e5ef50a0dad5162f6f3526fa77dfaa3afb48ad8db4097051 s6-rc-0.5.3.2.tar.gz
+f04e94db957e6d0033e328cc63530f64c9db101815bcafdb00a23205f4e75039dd3e593f93d48e4d9877b0696ea734ca62f672d92ff31e4e07aa19d26d809443 s6-rc-0.5.4.2.tar.gz
"
diff --git a/main/s6/APKBUILD b/main/s6/APKBUILD
index 9bd23dfa339..eae1ed4afd5 100644
--- a/main/s6/APKBUILD
+++ b/main/s6/APKBUILD
@@ -1,14 +1,14 @@
-# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
# Contributor: John Regan <john@jrjrtech.com>
+# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
pkgname=s6
-pkgver=2.11.1.2
+pkgver=2.12.0.4
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"
license="ISC"
-makedepends="skalibs-dev>=2.12 execline-dev"
-depends="s6-ipcserver"
+makedepends="skalibs-dev>=2.14 execline-dev"
+depends="s6-ipcserver execline"
options="!check"
subpackages="$pkgname-ipcserver $pkgname-static $pkgname-dev $pkgname-doc $pkgname-openrc"
source="https://skarnet.org/software/s6/s6-$pkgver.tar.gz s6-svscanboot s6.initd"
@@ -46,7 +46,7 @@ ipcserver() {
}
sha512sums="
-31feb2b1704d9561aff9fccdcb284e13f4ceb0f530214db8a393bdc10267801fbe1fc30b4271ad9bdf189dc52e2844f3db40f8f3e9cd438ac12415a51661f17d s6-2.11.1.2.tar.gz
-bcb503c64fe4644b8f33775e94f03f08e422854247d14c9ff85f5d593b37fb2373fadf373da4226a1e2f4eba17a99fdcd40acb3645f8533f2f3e1a55c984f053 s6-svscanboot
-e7f4fcdc04fc7f72df4419018d048e14f80d50d01ebc284b6d208d6bada3201ca91be0a110930618a26fb0e6bcc1603de01467f6f1dc635c8dcae60f1a0b1b9b s6.initd
+dfdb9c0189177762a89d1f47e1d6b0a82bba5554baef4fa899b1c0a85c192d5e1dac2b929173d750df3707f0d699b28591f1eab3e63b8791e4a51af1c65e3e56 s6-2.12.0.4.tar.gz
+9104c3d18a36c8aaa51da553cc045881438ad55f251ba8155e90143cb9a0d3723d22cbbaeb0388e9bc162bda89d8028a6202b0b7ceca01c8d1f197bb990d128d s6-svscanboot
+d4ff33bbd674160f3d47ed8d566fe756ee5a54e1e8febd7d873f5f5158d1c4eeac1ddf460fbc6f23b75a8ee2d007117c3ababa6311ae9dcc5ad087dc4a154eee s6.initd
"
diff --git a/main/s6/s6-svscanboot b/main/s6/s6-svscanboot
index 6f3f5b78717..89cac2f7344 100644
--- a/main/s6/s6-svscanboot
+++ b/main/s6/s6-svscanboot
@@ -1,32 +1,26 @@
#!/bin/execlineb -S1
-foreground { redirfd -w 2 /dev/null mkdir -p /run/uncaught-logs }
+if { mkdir -p /run/uncaught-logs ${1}/s6-svscan-log }
if { chown catchlog:catchlog /run/uncaught-logs }
if { chmod 2700 /run/uncaught-logs }
-foreground { redirfd -w 2 /dev/null mkdir -p ${1}/.s6-svscan ${1}/s6-svscan-log }
-foreground { redirfd -w 2 /dev/null ln -sf /bin/false ${1}/.s6-svscan/crash }
-if
-{
- redirfd -w 1 ${1}/.s6-svscan/finish
- heredoc 0 "#!/bin/execlineb -P\ns6-svc -x -- \"${1}/s6-svscan-log\"\n"
- cat
-}
-if { chmod 0755 ${1}/.s6-svscan/finish }
+if { redirfd -w 1 ${1}/s6-svscan-log/notification-fd echo 3 }
foreground { redirfd -w 2 /dev/null mkfifo -m 0600 ${1}/s6-svscan-log/fifo }
+unexport ?
if
{
redirfd -w 1 ${1}/s6-svscan-log/run
- heredoc 0 "#!/bin/execlineb -P
-redirfd -w 2 /dev/console
+ heredoc 0 "#!/bin/execlineb -S1
+fdmove -c 1 2
redirfd -rnb 0 fifo
s6-setuidgid catchlog
exec -c
-s6-log t /run/uncaught-logs\n"
+s6-log -bpd3 -- t /run/uncaught-logs\n"
cat
}
if { chmod 0755 ${1}/s6-svscan-log/run }
redirfd -r 0 /dev/null
+redirfd -w 3 /dev/console
redirfd -wnb 1 ${1}/s6-svscan-log/fifo
fdmove -c 2 1
-s6-svscan -- ${1}
+s6-svscan -X3 -- ${1}
diff --git a/main/s6/s6.initd b/main/s6/s6.initd
index 9f984cc1356..38f1e7c9552 100644
--- a/main/s6/s6.initd
+++ b/main/s6/s6.initd
@@ -1,5 +1,5 @@
#!/sbin/openrc-run
-# Copyright 2016 Laurent Bercot
+# Copyright 2016-2023 Laurent Bercot
# Distributed under the terms of the ISC License.
#
# We currently start the supervision tree under OpenRC because
diff --git a/main/s6/s6.pre-install b/main/s6/s6.pre-install
index 614364261b9..6337333a93b 100644
--- a/main/s6/s6.pre-install
+++ b/main/s6/s6.pre-install
@@ -1,5 +1,5 @@
#!/bin/sh
addgroup -S catchlog 2>/dev/null
-adduser -S -D -h / -H -s /bin/false -G catchlog -g catchlog catchlog 2>/dev/null
+adduser -S -D -h / -H -s /sbin/nologin -G catchlog -g catchlog catchlog 2>/dev/null
exit 0
diff --git a/main/s6/s6.pre-upgrade b/main/s6/s6.pre-upgrade
index 614364261b9..81d576db4ee 100644..120000
--- a/main/s6/s6.pre-upgrade
+++ b/main/s6/s6.pre-upgrade
@@ -1,5 +1 @@
-#!/bin/sh
-
-addgroup -S catchlog 2>/dev/null
-adduser -S -D -h / -H -s /bin/false -G catchlog -g catchlog catchlog 2>/dev/null
-exit 0
+s6.pre-install \ No newline at end of file
diff --git a/main/samba/APKBUILD b/main/samba/APKBUILD
index 6950766a2f7..d17f253c4ee 100644
--- a/main/samba/APKBUILD
+++ b/main/samba/APKBUILD
@@ -1,17 +1,20 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=samba
-pkgver=4.15.7
-pkgrel=0
+pkgver=4.19.5
+pkgrel=2
pkgdesc="Tools to access a server's filespace and printers via SMB"
url="https://www.samba.org/"
arch="all"
-license="GPL-3.0-or-later LGPL-3.0-or-later"
+license="GPL-3.0-or-later AND LGPL-3.0-or-later"
+options="!check" # fixme: missing dependencies for '--enable-selftest'
subpackages="
- $pkgname-dev $pkgname-doc $pkgname-server-openrc
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-server-openrc
libwbclient
$pkgname-util-libs:_util_libs
- $pkgname-common::noarch
+ $pkgname-common:_common:noarch
$pkgname-common-tools:_common_tools
$pkgname-common-server-libs:_common_server_libs
libsmbclient
@@ -33,6 +36,7 @@ subpackages="
py3-$pkgname:_py3
$pkgname-test:_test
$pkgname-libs-py3:_libs_py3
+ libauth-$pkgname:_libauth
$pkgname-libs
"
@@ -51,7 +55,6 @@ makedepends="
dbus-dev
docbook-xsl
e2fsprogs-dev
- fuse-dev
gnutls-dev
iniparser-dev
jansson-dev
@@ -65,8 +68,10 @@ makedepends="
ncurses-dev
openldap-dev
perl
+ perl-json
perl-parse-yapp
popt-dev
+ py3-ldb
py3-tdb
py3-tevent
python3-dev
@@ -78,19 +83,17 @@ makedepends="
zlib-dev
$_dc_deps
"
-
-# vfs_btrfs patch from https://bugzilla.samba.org/show_bug.cgi?id=14790
source="
https://download.samba.org/pub/samba/stable/samba-$pkgver.tar.gz
+ netgroup.patch
getpwent_r.patch
musl_uintptr.patch
- netdb-defines.patch
- netapp.patch
missing-headers.patch
musl_rm_unistd_incl.patch
add_missing___compar_fn_t.patch
pidl.patch
samba-bgqd-include-signal-h.patch
+ default-config.patch
$pkgname.initd
$pkgname.confd
@@ -99,6 +102,31 @@ source="
pkggroups="winbind"
# secfixes:
+# 4.18.9-r0:
+# - CVE-2018-14628
+# 4.18.8-r0:
+# - CVE-2023-3961
+# - CVE-2023-4091
+# - CVE-2023-4154
+# - CVE-2023-42669
+# - CVE-2023-42670
+# 4.18.1-r0:
+# - CVE-2023-0225
+# 4.17.0-r0:
+# - CVE-2022-1615
+# - CVE-2022-32743
+# 4.16.7-r0:
+# - CVE-2022-42898
+# 4.16.6-r0:
+# - CVE-2022-3437
+# - CVE-2022-3592
+# 4.15.9-r0:
+# - CVE-2022-2031
+# - CVE-2021-3670
+# - CVE-2022-32744
+# - CVE-2022-32745
+# - CVE-2022-32746
+# - CVE-2022-32742
# 4.15.2-r0:
# - CVE-2016-2124
# - CVE-2020-25717
@@ -177,6 +205,8 @@ build() {
local _pdb_modules=pdb_tdbsam,pdb_ldap,pdb_ads,pdb_smbpasswd,pdb_wbc_sam,pdb_samba4
local _auth_modules=auth_unix,auth_wbc,auth_server,auth_netlogond,auth_script,auth_samba4
+ # pclose, ..
+ export CFLAGS="$CFLAGS -O2 -D_BSD_SOURCE -flto=auto"
./configure \
--prefix=/usr \
--sysconfdir=/etc/$pkgname \
@@ -195,8 +225,13 @@ build() {
--without-gettext \
--bundled-libraries=NONE,ntdb,roken,wind,hx509,asn1,heimbase,hcrypto,krb5,gssapi,heimntlm,hdb,kdc,cmocka \
--disable-rpath-install \
- --without-gpgme
- make -j"$(nproc)"
+ --without-gpgme \
+ --disable-fault-handling
+ make
+}
+
+check() {
+ make check
}
package() {
@@ -216,47 +251,31 @@ package() {
install -Dm644 "$srcdir/$pkgname.confd" "$pkgdir/etc/conf.d/$pkgname"
}
-_mv_files() {
- local i
- for i in "$@"; do
- case $i in
- */*) mkdir -p "$subpkgdir"/${i%/*};;
- *) mkdir -p "$subpkgdir";;
- esac
- mv "$pkgdir"/$i "$subpkgdir"/$i
- done
-}
-
-common() {
+_common() {
pkgdesc="Samba common files for both client an servers"
depends=
- cd "$pkgdir"
- _mv_files \
- etc \
- var
+ amove etc var
install -d -m700 "$subpkgdir"/var/lib/$pkgname/private
}
-# common-libs is an attempt to avoid libpython dependency for libsmbclient
+# samba-libs-py3 is an attempt to avoid libpython dependency for libsmbclient
_libs_py3() {
pkgdesc="Libraries that require libpython"
- depends=
- cd "$pkgdir"
- _mv_files \
+ depends="$pkgname-libs=$pkgver-r$pkgrel"
+ amove \
usr/lib/$pkgname/libsamba-net*samba4.so \
usr/lib/$pkgname/libsamba-python*samba4.so
- return 0
}
# may depend on samba-common-server-libs but not samba-server-libs
_common_tools() {
pkgdesc="Tools for Samba servers and clients"
- depends=
- cd "$pkgdir"
- _mv_files \
+ depends="$pkgname-libs=$pkgver-r$pkgrel"
+ amove \
usr/bin/net \
usr/bin/pdbedit \
usr/bin/profiles \
+ usr/bin/samba-log-parser \
usr/bin/smbcontrol \
usr/bin/smbpasswd \
usr/bin/testparm \
@@ -267,13 +286,12 @@ _common_tools() {
# should not depend on client libs
_common_server_libs() {
pkgdesc="Samba libraries shared by common-tools and servers" # not shared with clients
- depends=""
- cd "$pkgdir"
- _mv_files \
+ depends="$pkgname-libs=$pkgver-r$pkgrel"
+ amove \
usr/lib/libdcerpc-server-core.so.* \
usr/lib/libnetapi.so.* \
+ usr/lib/$pkgname/libRPC-SERVER-LOOP-samba4.so \
usr/lib/$pkgname/libdfs-server-ad-samba4.so \
- usr/lib/$pkgname/libnpa-tstream-samba4.so \
usr/lib/$pkgname/libprinting-migrate-samba4.so \
usr/lib/$pkgname/libsmbd-base-samba4.so \
usr/lib/$pkgname/libsmbldaphelper-samba4.so \
@@ -282,21 +300,22 @@ _common_server_libs() {
libsmbclient() {
pkgdesc="The SMB client library"
- depends=
- cd "$pkgdir"
- _mv_files \
+ depends="$pkgname-libs=$pkgver-r$pkgrel"
+ amove \
usr/lib/libsmbclient.so.*
}
# should only depend on samba-util-libs, libwbclient and samba-libs
_client_libs() {
pkgdesc="Samba libraries used by clients"
- depends=
- cd "$pkgdir"
- _mv_files \
+ depends="$pkgname-libs=$pkgver-r$pkgrel"
+ amove \
+ usr/lib/$pkgname/libad-claims-samba4.so \
+ usr/lib/$pkgname/libauthn-policy-util-samba4.so \
usr/lib/$pkgname/libcli-ldap-samba4.so \
usr/lib/$pkgname/libcmdline-contexts-samba4.so \
usr/lib/$pkgname/libdsdb-garbage-collect-tombstones-samba4.so \
+ usr/lib/$pkgname/libdsdb-module-samba4.so \
usr/lib/$pkgname/libgpo-samba4.so \
usr/lib/$pkgname/libhttp-samba4.so \
usr/lib/$pkgname/libmscat-samba4.so \
@@ -309,9 +328,11 @@ _client_libs() {
client() {
pkgdesc="Samba client programs"
- depends="$pkgname-common=$pkgver-r$pkgrel"
- cd "$pkgdir"
- _mv_files \
+ depends="
+ $pkgname-libs=$pkgver-r$pkgrel
+ $pkgname-common=$pkgver-r$pkgrel
+ "
+ amove \
usr/bin/cifsdd \
usr/bin/dumpmscat \
usr/bin/dbwrap_tool \
@@ -340,9 +361,8 @@ client() {
# should not pull in samba-client-libs
_server_libs() {
pkgdesc="Samba libraries shared by server and windbind"
- depends=
- cd "$pkgdir"
- _mv_files \
+ depends="$pkgname-libs=$pkgver-r$pkgrel"
+ amove \
usr/lib/$pkgname/libdcerpc-samba4.so \
usr/lib/$pkgname/libidmap-samba4.so \
usr/lib/$pkgname/libnss-info-samba4.so
@@ -351,11 +371,13 @@ _server_libs() {
# should not pull in samba-client-libs
winbind() {
pkgdesc="Samba user and group resolver"
- depends="$pkgname-common=$pkgver-r$pkgrel"
+ depends="
+ $pkgname-libs=$pkgver-r$pkgrel
+ $pkgname-common=$pkgver-r$pkgrel
+ "
install="winbind.pre-install winbind.pre-upgrade winbind.post-install
winbind.post-upgrade"
- cd "$pkgdir"
- _mv_files \
+ amove \
usr/sbin/winbindd \
usr/lib/$pkgname/idmap \
usr/lib/$pkgname/nss_info
@@ -367,8 +389,7 @@ winbind() {
_util_libs() {
pkgdesc="Samba utility libraries"
depends=
- cd "$pkgdir"
- _mv_files \
+ amove \
usr/lib/libsamba-util.so.* \
usr/lib/$pkgname/libgenrand-samba4.so \
usr/lib/$pkgname/libsocket-blocking-samba4.so \
@@ -376,25 +397,22 @@ _util_libs() {
usr/lib/$pkgname/libtime-basic-samba4.so \
usr/lib/$pkgname/libsys-rw-samba4.so \
usr/lib/$pkgname/libiov-buf-samba4.so \
+ usr/lib/$pkgname/libcom-err-samba4.so \
usr/lib/$pkgname/libreplace-samba4.so \
- usr/lib/$pkgname/libcom_err-samba4.so.*
+ usr/lib/$pkgname/libstable-sort-samba4.so
}
# should only depend on samba-util-libs
libwbclient() {
pkgdesc="Samba winbind client libraries"
depends=
- cd "$pkgdir"
- _mv_files \
- usr/lib/libwbclient.so.* \
- usr/lib/$pkgname/libwinbind-client-samba4.so
+ amove usr/lib/libwbclient.so.*
}
_winbind_clients() {
pkgdesc="Samba winbind client tools"
- depends=
- cd "$pkgdir"
- _mv_files \
+ depends="$pkgname-libs=$pkgver-r$pkgrel"
+ amove \
usr/bin/ntlm_auth \
usr/bin/wbinfo
}
@@ -402,37 +420,38 @@ _winbind_clients() {
_libnss_winbind() {
pkgdesc="Samba winbind NSS plugin"
depends=
- cd "$pkgdir"
- _mv_files \
+ amove \
usr/lib/libnss_winbind.so* \
usr/lib/libnss_wins.so*
}
_winbind_krb5_locator() {
pkgdesc="Samba winbind krb5 locator"
- depends=
- cd "$pkgdir"
- _mv_files \
+ depends="$pkgname-libs=$pkgver-r$pkgrel"
+ amove \
usr/lib/samba/krb5
}
_pam_winbind() {
pkgdesc="PAM module for winbind"
depends=
- cd "$pkgdir"
- _mv_files \
- usr/lib/security
+
+ mkdir -p "$subpkgdir"/lib/security
+ mv "$pkgdir"/usr/lib/security/* "$subpkgdir"/lib/security/
+ rmdir -p "$pkgdir"/usr/lib/security || true
}
dc() {
pkgdesc="Samba AD Domain Controller"
- depends="$pkgname-common=$pkgver-r$pkgrel
+ depends="
+ $pkgname-libs=$pkgver-r$pkgrel
+ $pkgname-common=$pkgver-r$pkgrel
$pkgname-server=$pkgver-r$pkgrel
$pkgname-winbind=$pkgver-r$pkgrel
py3-$pkgname=$pkgver-r$pkgrel
- $_dc_deps"
- cd "$pkgdir"
- _mv_files \
+ $_dc_deps
+ "
+ amove \
usr/bin/samba-tool \
usr/sbin/samba* \
usr/share/$pkgname \
@@ -445,8 +464,8 @@ dc() {
_dc_libs() {
pkgdesc="Samba AD Domain Controller libraries"
- cd "$pkgdir"
- _mv_files \
+ depends="$pkgname-libs=$pkgver-r$pkgrel"
+ amove \
usr/lib/libdcerpc-samr.so.* \
usr/lib/libdcerpc-server.so.* \
usr/lib/libsamba-policy.* \
@@ -455,12 +474,11 @@ _dc_libs() {
usr/lib/$pkgname/libLIBWBCLIENT-OLD-samba4.so \
usr/lib/$pkgname/libauth-unix-token-samba4.so \
usr/lib/$pkgname/libauth4-samba4.so \
- usr/lib/$pkgname/libcluster-samba4.so \
usr/lib/$pkgname/libdb-glue-samba4.so \
usr/lib/$pkgname/libdnsserver-common-samba4.so \
- usr/lib/$pkgname/libdsdb-module-samba4.so \
- usr/lib/$pkgname/libhdb-samba4.so.* \
- usr/lib/$pkgname/libkdc-samba4.so.* \
+ usr/lib/$pkgname/libgss-preauth-samba4.so \
+ usr/lib/$pkgname/libhdb-samba4.so* \
+ usr/lib/$pkgname/libkdc-samba4.so* \
usr/lib/$pkgname/libpac-samba4.so \
usr/lib/$pkgname/libposix-eadb-samba4.so \
usr/lib/$pkgname/libprocess-model-samba4.so \
@@ -473,42 +491,48 @@ _dc_libs() {
server() {
pkgdesc="Samba server"
- depends="$pkgname-common=$pkgver-r$pkgrel"
- cd "$pkgdir"
- _mv_files \
+ depends="
+ $pkgname-libs=$pkgver-r$pkgrel
+ $pkgname-common=$pkgver-r$pkgrel
+ "
+ amove \
usr/sbin/nmbd \
usr/sbin/smbd \
usr/sbin/eventlogadm \
usr/bin/smbstatus \
\
usr/lib/$pkgname/auth \
+ usr/lib/$pkgname/libREG-FULL-samba4.so \
+ usr/lib/$pkgname/libRPC-WORKER-samba4.so \
usr/lib/$pkgname/libxattr-tdb-samba4.so \
- usr/lib/$pkgname/vfs \
- usr/lib/$pkgname/samba-bgqd
+ usr/lib/$pkgname/rpcd_* \
+ usr/lib/$pkgname/samba-bgqd \
+ usr/lib/$pkgname/samba-dcerpcd \
+ usr/lib/$pkgname/vfs
}
-
pidl() {
pkgdesc="Perl IDL compiler"
depends="perl"
- cd "$pkgdir"
- _mv_files \
+ amove \
usr/bin/pidl \
usr/share/perl*
}
_py3() {
pkgdesc="Samba python libraries"
- depends="py3-tdb"
+ depends="
+ $pkgname-libs=$pkgver-r$pkgrel
+ py3-tdb
+ "
mkdir -p "$subpkgdir"/usr/lib
mv "$pkgdir"/usr/lib/python* "$subpkgdir"/usr/lib/
}
_test() {
pkgdesc="Samba server and client testing tools"
- depends=
- cd "$pkgdir"
- _mv_files \
+ depends="$pkgname-libs=$pkgver-r$pkgrel"
+ amove \
usr/bin/gentest \
usr/bin/locktest \
usr/bin/masktest \
@@ -518,31 +542,40 @@ _test() {
usr/lib/$pkgname/libtorture-samba4.so
}
+# avoid samba-libs and libsmbclient depending on pam
+_libauth() {
+ pkgdesc="Samba auth library shared by common-tools, server and clients"
+ depends="$pkgname-libs=$pkgver-r$pkgrel"
+
+ amove usr/lib/$pkgname/libauth-samba4.so
+}
+
# should only depend on samba-util-libs and libwbclient
libs() {
pkgdesc="Samba core libraries shared by common-tools, server and clients"
- depends=
- cd "$pkgdir"
+ depends="
+ $pkgname-util-libs=$pkgver-r$pkgrel
+ libwbclient=$pkgver-r$pkgrel
+ "
# heimdal libs
- _mv_files \
- usr/lib/$pkgname/libasn1-samba4.so.* \
- usr/lib/$pkgname/libgssapi-samba4.so.* \
- usr/lib/$pkgname/libhcrypto-samba4.so.* \
- usr/lib/$pkgname/libheimbase-samba4.so.* \
- usr/lib/$pkgname/libheimntlm-samba4.so.* \
- usr/lib/$pkgname/libhx509-samba4.so.* \
- usr/lib/$pkgname/libkrb5-samba4.so.* \
- usr/lib/$pkgname/libroken-samba4.so.* \
- usr/lib/$pkgname/libwind-samba4.so.*
-
- _mv_files \
+ amove \
+ usr/lib/$pkgname/libasn1-samba4.so* \
+ usr/lib/$pkgname/libgssapi-samba4.so* \
+ usr/lib/$pkgname/libhcrypto-samba4.so* \
+ usr/lib/$pkgname/libheimbase-samba4.so* \
+ usr/lib/$pkgname/libheimntlm-samba4.so* \
+ usr/lib/$pkgname/libhx509-samba4.so* \
+ usr/lib/$pkgname/libkrb5-samba4.so* \
+ usr/lib/$pkgname/libroken-samba4.so* \
+ usr/lib/$pkgname/libwind-samba4.so*
+
+ amove \
usr/lib/$pkgname/libCHARSET3-samba4.so \
usr/lib/$pkgname/libMESSAGING-SEND-samba4.so \
usr/lib/$pkgname/libMESSAGING-samba4.so \
usr/lib/$pkgname/libaddns-samba4.so \
usr/lib/$pkgname/libads-samba4.so \
usr/lib/$pkgname/libasn1util-samba4.so \
- usr/lib/$pkgname/libauth-samba4.so \
usr/lib/$pkgname/libauthkrb5-samba4.so \
usr/lib/$pkgname/libcli-cldap-samba4.so \
usr/lib/$pkgname/libcli-ldap-common-samba4.so \
@@ -551,6 +584,7 @@ libs() {
usr/lib/$pkgname/libcli-spoolss-samba4.so \
usr/lib/$pkgname/libcliauth-samba4.so \
usr/lib/$pkgname/libclidns-samba4.so \
+ usr/lib/$pkgname/libcluster-samba4.so \
usr/lib/$pkgname/libcmdline-samba4.so \
usr/lib/$pkgname/libcmocka-samba4.so \
usr/lib/$pkgname/libcommon-auth-samba4.so \
@@ -573,6 +607,7 @@ libs() {
usr/lib/$pkgname/libmsrpc3-samba4.so \
usr/lib/$pkgname/libndr-samba-samba4.so \
usr/lib/$pkgname/libndr-samba4.so \
+ usr/lib/$pkgname/libnpa-tstream-samba4.so \
usr/lib/$pkgname/libsamba-cluster-support-samba4.so \
usr/lib/$pkgname/libsamba-modules-samba4.so \
usr/lib/$pkgname/libsamba-security-samba4.so \
@@ -606,26 +641,26 @@ libs() {
usr/lib/libtevent-util.so.*
# exit with error if some stuff stayed at main pack
- rmdir "$pkgdir"/usr/lib/$pkgname \
- "$pkgdir"/usr/share \
- "$pkgdir"/usr/sbin \
- "$pkgdir"/usr/bin \
- "$pkgdir"/usr/lib \
- "$pkgdir"/usr
+ local leftovers="$(find "$pkgdir" -type f)"
+ if [ -n "$leftovers" ]; then
+ error "files left in main package:"
+ echo "$leftovers" >&2
+ return 1
+ fi
}
sha512sums="
-beffb09b5bcd62991398d39c7a8aec5fed0c51d550e2f0fb42b2e0a09094f4c6a8f29adf708c4969db12329f5c7343d2debd04315107b79bef59e99a4a7e4ce4 samba-4.15.7.tar.gz
+5b0934f2e44a28ffc4aa07e5495b339cf3a7548c49e29d1bae87de6c3a6f57c2a9130592dce782895079f559ed3bc8b5e4514c9c0fd8d5638aef68f0d0a3391f samba-4.19.5.tar.gz
+f997d0bca9de64a567bccc245bec41e4aa00bacb379d8e348678dcafcf7e723e8716608c5d2d266ad816439b8b93bb8ee28371308a01c9d9c50229f1fc8deb67 netgroup.patch
58de5e79fdfd06e828d478e112d581d333a8bee88d2602b92204d780f0d707b27dd84f8e2e6b00fca40da81c8fe99aa5bcec70d8b393d3a0a83199c72a4aa48b getpwent_r.patch
b7906d66fe55a980a54161ee3f311b51bcbce76b8d4c8cc1ba6d0c5bdf98232cb192b9d2c1aa7b3e2742f5b9848c6cf429347940eefe66c3e0eda1d5aac1bf93 musl_uintptr.patch
-1854577d0e4457e27da367a6c7ec0fb5cfd63cefea0a39181c9d6e78cf8d3eb50878cdddeea3daeec955d00263151c2f86ea754ff4276ef98bc52c0276d9ffe8 netdb-defines.patch
-3b4759dfcf6ec54f2131390c9eb7fd7dd23071e304905cdeaf7a9828fa888cb3dcb5c5bb6a07a634c51d0392ac47f6e22b937faf4354e3b07cfc0de7fdfa28e9 netapp.patch
-c0afe8b1dfddc5290c9aa611163d20adc3a546f54bba0081f739cda4255829f1a72bae422b6cb049aca82e58d4daf63ad5553f4c5c51671019bfbbc2781460f0 missing-headers.patch
+9642e0de5a39ab940e0f53040ae20fccdbde471bed9bcca713482f26e7c88451e405bd63d719d0548975c7c4c045b51b0006672d34ec4390c3b5a618ea6c8d85 missing-headers.patch
9bf4bbc8b03d9ea17d2f8ffeaf3a83541b171936a90bb8d75b08cc5afbdbaaec545c1b3782c90ae2ffc4568ab4e6f15fb21899d80c654a796301e16429c93b65 musl_rm_unistd_incl.patch
bc2df70e327fea5dfbd923600225f1448815d842c37d6937dd74eab7f7699d7f52cd7a8e28a61233974649cf86661a0107dce5019d33b71205e4b41bac73f4e2 add_missing___compar_fn_t.patch
c0bbe1186b150a9bb2a0b741a8cfbd7a5109e5fed1eaa07aaa38cf026ebe054d38cc01e2496f0cab7b40f743e1b7ecfbf8a4d5820810226c4152021df65f36dc pidl.patch
e98fd19f65d954f04f7e3b5be86e9c4bcc9ac090c40037de77bfeb266617747c514aeb42f3daf84113b2f3374480d25e368bc1fdebc1870458eda12329d2062e samba-bgqd-include-signal-h.patch
-96070e2461370437f48571e7de550c13a332fef869480cfe92e7cac73a998f6c2ee85d2580df58211953bebd0e577691aa710c8edddf3ea0f30e9d47d0a2fd44 samba.initd
+14666954aec4a0bc7a6730ba3a9afdbd4e27c083a038d9a1f5a033e4f0a42bc8408906612ea51f74bf743ff8a225242e54b0a518367fe526b110639bfbfdd071 default-config.patch
+e4ce11b699c5841d0aa83e0e912bb86cff1d8726308e7b75548e0fcc349518d3fefb68b902bf75404643494d610e491b080cfc2a4e4d82385c5d9b6657434771 samba.initd
e2b49cb394e758447ca97de155a61b4276499983a0a5c00b44ae621c5559b759a766f8d1c8d3ee98ad5560f4064a847a7a20cfa2e14f85c061bec8b80fd649eb samba.confd
3458a4e1f8a8b44c966afb339b2dca51615be049f594c14911fc4d8203623deee416b6fe881436e246fc7d49c97a2b3bf9c5f33ba774302b24190a1103d6b67d samba.logrotate
"
diff --git a/main/samba/default-config.patch b/main/samba/default-config.patch
new file mode 100644
index 00000000000..d7369c2447a
--- /dev/null
+++ b/main/samba/default-config.patch
@@ -0,0 +1,41 @@
+--- a/examples/smb.conf.default
++++ b/examples/smb.conf.default
+@@ -52,7 +52,7 @@
+
+ # this tells Samba to use a separate log file for each machine
+ # that connects
+- log file = /usr/local/samba/var/log.%m
++ log file = /var/log/samba/%m.log
+
+ # Put a capping on the size of the log files (in Kb).
+ max log size = 50
+@@ -70,7 +70,7 @@
+ # of the machine that is connecting.
+ # Note: Consider carefully the location in the configuration file of
+ # this line. The included file is read at that point.
+-; include = /usr/local/samba/lib/smb.conf.%m
++; include = /etc/samba/smb.%m.conf
+
+ # Configure Samba to use multiple interfaces
+ # If you have multiple network interfaces then you must list them
+@@ -108,6 +108,20 @@
+ ; delete user from group script = /usr/sbin/deluser %u %g
+ ; delete group script = /usr/sbin/groupdel %g
+
++# Enable usershares to give non-root users the capability to add, modify and
++# delete their own share definitions. See smb.conf(5).
++# To enable this, do:
++#
++# addgroup -S sambashare
++# mkdir /var/lib/samba/usershares
++# chown root:sambashare /var/lib/samba/usershares
++# chmod 1770 /var/lib/samba/usershares
++#
++# and uncomment the lines below
++; usershare path = /var/lib/samba/usershares
++; usershare max shares = 100
++; usershare allow guests = yes
++; usershare owner only = yes
+
+ #============================ Share Definitions ==============================
+ [homes]
diff --git a/main/samba/missing-headers.patch b/main/samba/missing-headers.patch
index 58c26aece68..6dd38420e62 100644
--- a/main/samba/missing-headers.patch
+++ b/main/samba/missing-headers.patch
@@ -1,5 +1,5 @@
diff --git a/lib/param/loadparm.h b/lib/param/loadparm.h
-index b5d79b9..3f4eae0 100644
+index af6b530..ad799f6 100644
--- a/lib/param/loadparm.h
+++ b/lib/param/loadparm.h
@@ -31,6 +31,7 @@
@@ -11,7 +11,7 @@ index b5d79b9..3f4eae0 100644
struct parmlist_entry {
struct parmlist_entry *prev, *next;
diff --git a/source3/lib/system_smbd.c b/source3/lib/system_smbd.c
-index 3b1ac9c..4044d75 100644
+index 73bffe0..2a03571 100644
--- a/source3/lib/system_smbd.c
+++ b/source3/lib/system_smbd.c
@@ -27,6 +27,8 @@
@@ -24,7 +24,7 @@ index 3b1ac9c..4044d75 100644
#ifndef HAVE_GETGROUPLIST
diff --git a/source4/torture/local/nss_tests.c b/source4/torture/local/nss_tests.c
-index 2cd6122..0c84ec2 100644
+index 2943122..c9b4da7 100644
--- a/source4/torture/local/nss_tests.c
+++ b/source4/torture/local/nss_tests.c
@@ -20,6 +20,8 @@
diff --git a/main/samba/netapp.patch b/main/samba/netapp.patch
deleted file mode 100644
index fea413c3b41..00000000000
--- a/main/samba/netapp.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-https://bugzilla.samba.org/show_bug.cgi?id=12776
-
-diff --git a/source3/include/client.h b/source3/include/client.h
-index db8260d..becdf77 100644
---- a/source3/include/client.h
-+++ b/source3/include/client.h
-@@ -61,6 +61,9 @@ struct cli_state {
- char *server_os;
- char *server_domain;
-
-+ /* is server_os spinstream2? true/false/not-yet-checked(-1) */
-+ int is_spinstream2;
-+
- char *share;
- char *dev;
-
-diff --git a/source3/libsmb/clientgen.c b/source3/libsmb/clientgen.c
-index bc5c1b1..6d6b725 100644
---- a/source3/libsmb/clientgen.c
-+++ b/source3/libsmb/clientgen.c
-@@ -111,6 +111,7 @@ struct cli_state *cli_state_create(TALLOC_CTX *mem_ctx,
- if (!cli->server_os) {
- goto error;
- }
-+ cli->is_spinstream2 = -1;
- cli->server_type = talloc_strdup(cli, "");
- if (!cli->server_type) {
- goto error;
-@@ -467,6 +468,24 @@ time_t cli_state_server_time(struct cli_state *cli)
- return t;
- }
-
-+bool cli_state_server_is_spinstream2(struct cli_state *cli)
-+{
-+ int *ret = &cli->is_spinstream2;
-+ if (*ret == -1) {
-+ if (*cli->server_os == '\0') {
-+ DEBUG(1, ("when checking if server is SpinStream2:"
-+ " server_os field is empty (should have"
-+ " been sent in Session Setup protocol"
-+ " response), so ... presuming not"));
-+ *ret = 0;
-+ }
-+ else {
-+ *ret = strequal(cli->server_os, "SpinStream2") ? 1 : 0;
-+ }
-+ }
-+ return *ret == 1;
-+}
-+
- struct cli_echo_state {
- bool is_smb2;
- };
-diff --git a/source3/libsmb/clireadwrite.c b/source3/libsmb/clireadwrite.c
-index 3987477..6371bc2 100644
---- a/source3/libsmb/clireadwrite.c
-+++ b/source3/libsmb/clireadwrite.c
-@@ -89,6 +89,13 @@ static size_t cli_write_max_bufsize(struct cli_state *cli,
- useable_space = 0xFFFFFF - data_offset;
- } else if (smb1cli_conn_capabilities(cli->conn) & CAP_LARGE_WRITEX) {
- useable_space = 0x1FFFF - data_offset;
-+ if (cli_state_server_is_spinstream2(cli))
-+ /*
-+ * SpinStream2 (NetApp OnTAP, up to 8.3.2, at least;
-+ * XXX may need to be more discerning than this)
-+ * can't handle writes > 64k
-+ */
-+ useable_space = MIN(useable_space, 64 * 1024);
- } else {
- return min_space;
- }
-diff --git a/source3/libsmb/proto.h b/source3/libsmb/proto.h
-index b453733..e334cc6 100644
---- a/source3/libsmb/proto.h
-+++ b/source3/libsmb/proto.h
-@@ -203,6 +203,7 @@ uint16_t cli_state_set_uid(struct cli_state *cli, uint16_t uid);
- bool cli_set_case_sensitive(struct cli_state *cli, bool case_sensitive);
- uint32_t cli_state_available_size(struct cli_state *cli, uint32_t ofs);
- time_t cli_state_server_time(struct cli_state *cli);
-+bool cli_state_server_is_spinstream2(struct cli_state *cli);
- struct tevent_req *cli_echo_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
- struct cli_state *cli, uint16_t num_echos,
- DATA_BLOB data);
-
-
diff --git a/main/samba/netdb-defines.patch b/main/samba/netdb-defines.patch
deleted file mode 100644
index d7d6446abd6..00000000000
--- a/main/samba/netdb-defines.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-diff --git a/nsswitch/wins.c b/nsswitch/wins.c
-index dccb6dd..bb24acb 100644
---- a/nsswitch/wins.c
-+++ b/nsswitch/wins.c
-@@ -39,6 +39,14 @@ static pthread_mutex_t wins_nss_mutex = PTHREAD_MUTEX_INITIALIZER;
- #define INADDRSZ 4
- #endif
-
-+#ifndef NETDB_INTERNAL
-+#define NETDB_INTERNAL -1
-+#endif
-+
-+#ifndef NETDB_SUCCESS
-+#define NETDB_SUCCESS 0
-+#endif
-+
- NSS_STATUS _nss_wins_gethostbyname_r(const char *hostname,
- struct hostent *he,
- char *buffer,
diff --git a/main/samba/netgroup.patch b/main/samba/netgroup.patch
new file mode 100644
index 00000000000..59237bdc5e4
--- /dev/null
+++ b/main/samba/netgroup.patch
@@ -0,0 +1,15 @@
+diff --git a/source3/wscript b/source3/wscript
+index b664b6f..db1fc8b 100644
+--- a/source3/wscript
++++ b/source3/wscript
+@@ -629,8 +629,8 @@ msg.msg_accrightslen = sizeof(fd);
+ headers='unistd.h sys/types.h dirent.h',
+ define='HAVE_DIRENT_D_OFF')
+
+- if (conf.CONFIG_SET('HAVE_GETDOMAINNAME')):
+- conf.DEFINE('HAVE_NETGROUP', '1')
++ # if (conf.CONFIG_SET('HAVE_GETDOMAINNAME')):
++ # conf.DEFINE('HAVE_NETGROUP', '1')
+
+ # Look for CUPS
+ if Options.options.with_cups: \ No newline at end of file
diff --git a/main/samba/samba.initd b/main/samba/samba.initd
index 71c7fb2c6f6..1de64e4a8f6 100644
--- a/main/samba/samba.initd
+++ b/main/samba/samba.initd
@@ -72,7 +72,7 @@ stop() {
reload() {
for i in $daemon_list; do
ebegin "Reloading $i"
- killall -HUP $i
+ busybox killall -HUP $i
eend $?
done
}
diff --git a/main/samurai/APKBUILD b/main/samurai/APKBUILD
index 652012cb6a4..908367aa0b0 100644
--- a/main/samurai/APKBUILD
+++ b/main/samurai/APKBUILD
@@ -1,8 +1,7 @@
-# Contributor: Drew DeVault <sir@cmpwn.com>
-# Maintainer: Drew DeVault <sir@cmpwn.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=samurai
pkgver=1.2
-pkgrel=2
+pkgrel=5
pkgdesc="ninja-compatible build tool written in C"
url="https://github.com/michaelforney/samurai"
arch="all"
@@ -22,7 +21,7 @@ provider_priority=10
# - CVE-2021-30219
build() {
- make
+ make CFLAGS="$CFLAGS -O2"
}
package() {
diff --git a/main/sanlock/APKBUILD b/main/sanlock/APKBUILD
new file mode 100644
index 00000000000..6997099d6e1
--- /dev/null
+++ b/main/sanlock/APKBUILD
@@ -0,0 +1,60 @@
+# Contributor: Patrycja Rosa <alpine@ptrcnull.me>
+# Maintainer: Guy Godfroy <guy.godfroy@gugod.fr>
+pkgname=sanlock
+pkgver=3.9.2
+pkgrel=0
+pkgdesc="lease manager that uses shared storage"
+url="https://pagure.io/sanlock"
+arch="all"
+license="LGPL-2.0-or-later AND GPL-2.0-only AND GPL-2.0-or-later"
+install="sanlock.pre-install"
+makedepends="
+ linux-headers
+ libaio-dev
+ util-linux-dev
+ python3
+ python3-dev
+ py3-setuptools
+ "
+checkdepends="py3-pytest"
+subpackages="$pkgname-dev $pkgname-doc $pkgname-openrc py3-sanlock:py3"
+source="
+ https://releases.pagure.org/sanlock/sanlock-$pkgver.tar.gz
+ c23.patch
+ basename-include.patch
+ sanlock.initd
+ sanlock.confd
+ wdmd.initd
+ wdmd.confd
+ "
+options="!check" # all tests are failing
+
+build() {
+ make
+}
+
+package() {
+ make DESTDIR="$pkgdir" LIBDIR="/usr/lib" install
+ install -Dm644 "$srcdir"/sanlock.confd \
+ "$pkgdir"/etc/conf.d/sanlock
+ install -Dm755 "$srcdir"/sanlock.initd \
+ "$pkgdir"/etc/init.d/sanlock
+ install -Dm644 "$srcdir"/wdmd.confd \
+ "$pkgdir"/etc/conf.d/wdmd
+ install -Dm755 "$srcdir"/wdmd.initd \
+ "$pkgdir"/etc/init.d/wdmd
+}
+
+py3() {
+ amove usr/lib/python3*
+}
+
+sha512sums="
+83dba53e730a0722f91fb25a5e4188b1677a038dbdc9a0b37513eea86125cc347b90544b4358027d5961322ae019eac31ed8788963f99fe1716be3ed697bf619 sanlock-3.9.2.tar.gz
+be8b51e1ca7cb66ff9f9f02977770c0b72115658985c3d272aab10bc98428f3851b1654b0c74d5b0ac1b935ddaf71af67c3919ca32d5c133ac7208890301833b c23.patch
+b95420bd114249b0680c6624f96c851a063038a84af85f2d31af949dc934753c2fccfda37af2274743cbf05b3bd5490a04d2d4e0472ecf232dc1726fb85f40e1 basename-include.patch
+51f0c88bb0aff1670dc01fec8c025cc347bca88d4e5e5555e31486d6d5de560c12e6404eaeac651c35037022555e79e6c6a2bb897d0f2c0e6a38ff884cbd9743 sanlock.initd
+0e8924efc6048e712497a8cdc8f272ae222017cb623583dd8308c7c4120242aecf08f2521b0ec6615952b6eca461762ac5a65b789295678311d02c5f7af2aaac sanlock.confd
+b447f28a3b7b14aafb3795ee97579644b299d8684945a663c18c9f0845ac35593ca6f337af74310ecfd3eb59c1ec8c1758c94055010d978579756cb1b49e5b3b wdmd.initd
+75191a957052f14f8ebb0cf9f89c93c03b1920be984d83f48cd812717a057bfe2682ccd8b7f5318cbe0b110ac04ca3cfde5a723540ac0b7b7c91a3e6415b7a6f wdmd.confd
+"
diff --git a/main/sanlock/basename-include.patch b/main/sanlock/basename-include.patch
new file mode 100644
index 00000000000..af51ead1b5f
--- /dev/null
+++ b/main/sanlock/basename-include.patch
@@ -0,0 +1,8 @@
+diff --git a/wdmd/main.c b/wdmd/main.c
+index 38a99f3..4483da3 100644
+--- a/wdmd/main.c
++++ b/wdmd/main.c
+@@ -36,2 +36,3 @@
+ #include <linux/watchdog.h>
++#include <libgen.h>
+
diff --git a/main/sanlock/c23.patch b/main/sanlock/c23.patch
new file mode 100644
index 00000000000..d19e51c7665
--- /dev/null
+++ b/main/sanlock/c23.patch
@@ -0,0 +1,40 @@
+diff --git a/src/sanlock_sock.c b/src/sanlock_sock.c
+index b83f9ae..305c16f 100644
+--- a/src/sanlock_sock.c
++++ b/src/sanlock_sock.c
+@@ -15,6 +15,8 @@
+ #include <sys/socket.h>
+ #include <sys/un.h>
+
++#include <string.h>
++
+ #include "sanlock.h"
+ #include "sanlock_sock.h"
+
+diff --git a/src/sanlock_sock.h b/src/sanlock_sock.h
+index 0121b9c..144e8d4 100644
+--- a/src/sanlock_sock.h
++++ b/src/sanlock_sock.h
+@@ -10,6 +10,8 @@
+ #ifndef __SANLOCK_SOCK_H__
+ #define __SANLOCK_SOCK_H__
+
++#include <stdint.h>
++
+ #define SANLK_SOCKET_NAME "sanlock.sock"
+
+ #define SM_MAGIC 0x04282010
+diff --git a/wdmd/wdmd.h b/wdmd/wdmd.h
+index b32598f..fd8427b 100644
+--- a/wdmd/wdmd.h
++++ b/wdmd/wdmd.h
+@@ -12,6 +12,9 @@
+
+ #define WDMD_NAME_SIZE 128
+
++#include <stdint.h>
++#include <string.h>
++
+ int wdmd_connect(void);
+ int wdmd_register(int con, char *name);
+ int wdmd_refcount_set(int con);
diff --git a/main/sanlock/sanlock.confd b/main/sanlock/sanlock.confd
new file mode 100644
index 00000000000..5cd18f14750
--- /dev/null
+++ b/main/sanlock/sanlock.confd
@@ -0,0 +1,5 @@
+#
+# Specify daemon options here.
+#
+
+sanlock_opts="-w 0 -U sanlock -G sanlock"
diff --git a/main/sanlock/sanlock.initd b/main/sanlock/sanlock.initd
new file mode 100644
index 00000000000..a776e9d9e9d
--- /dev/null
+++ b/main/sanlock/sanlock.initd
@@ -0,0 +1,11 @@
+#!/sbin/openrc-run
+
+name=sanlock
+command="/usr/sbin/$name"
+command_args="daemon $sanlock_opts"
+
+pidfile="/run/$name/$name.pid"
+
+depend() {
+ want wdmd
+}
diff --git a/main/sanlock/sanlock.pre-install b/main/sanlock/sanlock.pre-install
new file mode 100644
index 00000000000..f77b38e2562
--- /dev/null
+++ b/main/sanlock/sanlock.pre-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+addgroup -S sanlock 2>/dev/null
+adduser -S -D -H -s /sbin/nologin -G sanlock -g sanlock sanlock 2>/dev/null
+addgroup sanlock disk 2>/dev/null
+
+exit 0
diff --git a/main/sanlock/wdmd.confd b/main/sanlock/wdmd.confd
new file mode 100644
index 00000000000..802e7460b82
--- /dev/null
+++ b/main/sanlock/wdmd.confd
@@ -0,0 +1,5 @@
+#
+# Specify daemon options here.
+#
+
+wdmd_opts=""
diff --git a/main/sanlock/wdmd.initd b/main/sanlock/wdmd.initd
new file mode 100644
index 00000000000..eef1ba9b019
--- /dev/null
+++ b/main/sanlock/wdmd.initd
@@ -0,0 +1,7 @@
+#!/sbin/openrc-run
+
+name=wdmd
+command="/usr/sbin/$name"
+command_args="$wdmd_opts"
+
+pidfile="/run/$name/$name.pid"
diff --git a/main/sbsigntool/APKBUILD b/main/sbsigntool/APKBUILD
index 5ee5f07cbf7..c28aa66021f 100644
--- a/main/sbsigntool/APKBUILD
+++ b/main/sbsigntool/APKBUILD
@@ -2,14 +2,14 @@
# Contributor: Timo Teräs <timo.teras@iki.fi>
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=sbsigntool
-pkgver=0.9.4
-pkgrel=3
+pkgver=0.9.5
+pkgrel=2
_ccancommit=b1f28e17227f2320d07fe052a8a48942fe17caa5
pkgdesc="Secure Boot signing tools"
url="https://git.kernel.org/pub/scm/linux/kernel/git/jejb/sbsigntools.git/"
arch="all !armhf !s390x !ppc64le !mips !mips64" # limited by gnu-efi
-license="GPL-3.0-only WITH OpenSSL-Exception"
-makedepends="autoconf automake bash binutils-dev gnu-efi-dev help2man openssl1.1-compat-dev util-linux-dev"
+license="GPL-3.0-or-later WITH cryptsetup-OpenSSL-exception"
+makedepends="autoconf automake bash binutils-dev gnu-efi-dev help2man openssl-dev>3 util-linux-dev"
options="!check" # testsuite is not functional
subpackages="$pkgname-doc"
source="https://git.kernel.org/pub/scm/linux/kernel/git/jejb/sbsigntools.git/snapshot/sbsigntools-$pkgver.tar.gz
@@ -51,6 +51,8 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="953d3d9a7f92b837da966eabe3572163a29c5292e792d5ef17cf842d7373ffaa901377cb4ec68006a6ef2f9c97d48db8ffdd3a6d2853be67016d3484a118bba9 sbsigntools-0.9.4.tar.gz
+sha512sums="
+3b23bdf1855132a91e2063039bd4d14c5564e9cd8f551711aa89a91646ff783afb6e318479e9cf46eedbc914a1eade142398c774d8dbfef8fd1d65cbbe60aabd sbsigntools-0.9.5.tar.gz
35a1c1de05a755df50a75440865146dd363c47015be6fa84250888f01e6bab1661c3af5db0340e1fd7f9f84db388fb2d5fcd0d86d0e1bde34ed13b23d673d740 ccan-b1f28e17227f2320d07fe052a8a48942fe17caa5.tar.gz
-9bf0a12c7735d09e1562ad901676a7ca9572265abee88580d4f830723a28423062d5b77fe02f21414884aeb046e84cf09da599754eafaad660c5938469c460a9 0001-fix-autogen.patch"
+9bf0a12c7735d09e1562ad901676a7ca9572265abee88580d4f830723a28423062d5b77fe02f21414884aeb046e84cf09da599754eafaad660c5938469c460a9 0001-fix-autogen.patch
+"
diff --git a/main/sc/APKBUILD b/main/sc/APKBUILD
index 9b30983bec7..1c1fb57c6cc 100644
--- a/main/sc/APKBUILD
+++ b/main/sc/APKBUILD
@@ -2,20 +2,18 @@
# Maintainer: ScrumpyJack <scrumpyjack@st.ilet.to>
pkgname=sc
pkgver=7.16
-pkgrel=5
+pkgrel=8
pkgdesc="Speadsheet Calculator"
-url="https://github.com/dkastner/sc"
+url="https://github.com/erithmetic/sc"
arch="all"
license="Public-Domain"
-depends=""
-depends_dev=""
makedepends="ncurses-dev byacc"
-install=""
subpackages="$pkgname-doc"
-source="http://ibiblio.org/pub/linux/apps/financial/spreadsheet/$pkgname-$pkgver.tar.gz
- sc_7.16-2.patch"
-
-builddir="$srcdir/$pkgname-$pkgver"
+source="http://ibiblio.org/pub/linux/apps/financial/spreadsheet/sc-$pkgver.tar.gz
+ format-security.patch
+ sc_7.16-2.patch
+ "
+options="!check"
prepare() {
default_prepare
@@ -25,15 +23,17 @@ prepare() {
}
build() {
- cd "$builddir"
make
}
package() {
- cd "$builddir"
mkdir -p "$pkgdir/usr/bin" "$pkgdir/usr/lib" "$pkgdir/usr/share/doc" \
- "$pkgdir/usr/share/man/man1"
+ "$pkgdir/usr/share/man/man1"
make prefix="$pkgdir"/usr MANDIR="$pkgdir/usr/share/man/man1" install
}
-sha512sums="efa495ba21d01b578a53f09101ccc28b564437317e0860904ad59136a24df9619dfc8715339296ae1567eaa8d620cdabc9bc2784962bc1c93e3bbd086856407b sc-7.16.tar.gz
-cb025e84148085e37bfb0ee02bdda60e5ab146ded14f5f0da2f17b3dbf0ba330eef87e534f8a0085265e53295591de222350eb918bb0d1d2994894ce19b16862 sc_7.16-2.patch"
+
+sha512sums="
+efa495ba21d01b578a53f09101ccc28b564437317e0860904ad59136a24df9619dfc8715339296ae1567eaa8d620cdabc9bc2784962bc1c93e3bbd086856407b sc-7.16.tar.gz
+c5298dc9a7debf185027df30144efdc7ab4db425ff672b4466a542f1d376d28346ef82b6b5ba7e7d6e777420217724f8f474f495d558bbaa8164d4a6beb10de1 format-security.patch
+cb025e84148085e37bfb0ee02bdda60e5ab146ded14f5f0da2f17b3dbf0ba330eef87e534f8a0085265e53295591de222350eb918bb0d1d2994894ce19b16862 sc_7.16-2.patch
+"
diff --git a/main/sc/format-security.patch b/main/sc/format-security.patch
new file mode 100644
index 00000000000..7fce1960a84
--- /dev/null
+++ b/main/sc/format-security.patch
@@ -0,0 +1,49 @@
+diff --git a/vmtbl.c b/vmtbl.c
+index 8fb6b90..09f4dc4 100644
+--- a/vmtbl.c
++++ b/vmtbl.c
+@@ -18,6 +18,8 @@
+
+ #include "sc.h"
+
++#define error(fmt, ...) printf(fmt, __VA_ARGS__)
++
+ /*
+ * check to see if *rowp && *colp are currently allocated, if not expand the
+ * current size if we can.
+@@ -55,7 +57,7 @@ checkbounds(int *rowp, int *colp)
+ newptr = (type *)scxrealloc((char *)oldptr, \
+ (unsigned)(nelem * sizeof(type))); \
+ if (newptr == (type *)NULL) { \
+- error(msg); \
++ error("%s", msg); \
+ return (FALSE); \
+ } \
+ oldptr = newptr /* wait incase we can't alloc */
+@@ -117,7 +119,7 @@ growtbl(int rowcol, int toprow, int topcol)
+ if ((rowcol == GROWCOL) || (rowcol == GROWBOTH)) {
+ if ((rowcol == GROWCOL) && ((maxcols == ABSMAXCOLS) ||
+ (topcol >= ABSMAXCOLS))) {
+- error(nowider);
++ error("%s", nowider);
+ return (FALSE);
+ }
+
+@@ -172,7 +174,7 @@ growtbl(int rowcol, int toprow, int topcol)
+ for (i = 0; i < maxrows; i++) {
+ if ((tbl[i] = (struct ent **)scxrealloc((char *)tbl[i],
+ (unsigned)(newcols * sizeof(struct ent **)))) == (struct ent **)0) {
+- error(nowider);
++ error("%s", nowider);
+ return(FALSE);
+ }
+ for (nullit = ATBL(tbl, i, maxcols), cnt = 0;
+@@ -190,7 +192,7 @@ growtbl(int rowcol, int toprow, int topcol)
+ for (; i < newrows; i++) {
+ if ((tbl[i] = (struct ent **)scxmalloc((unsigned)(newcols *
+ sizeof(struct ent **)))) == (struct ent **)0) {
+- error(nowider);
++ error("%s", nowider);
+ return(FALSE);
+ }
+ for (nullit = tbl[i], cnt = 0; cnt < newcols; cnt++, nullit++)
diff --git a/main/scdoc/APKBUILD b/main/scdoc/APKBUILD
index ee2ed205677..4e1fa41d54b 100644
--- a/main/scdoc/APKBUILD
+++ b/main/scdoc/APKBUILD
@@ -1,28 +1,28 @@
# Contributor: Henrik Riomar <henrik.riomar@gmail.com>
-# Contributor: Drew DeVault <sir@cmpwn.com>
+# Contributor:
# Maintainer: Henrik Riomar <henrik.riomar@gmail.com>
pkgname=scdoc
-pkgver=1.11.2
+pkgver=1.11.3
pkgrel=0
pkgdesc="Simple man page generator written for POSIX systems written in C99"
url="https://git.sr.ht/~sircmpwn/scdoc"
license="MIT"
arch="all"
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~sircmpwn/$pkgname/archive/$pkgver.tar.gz"
-
-check() {
- make check
-}
+source="$pkgname-$pkgver.tar.gz::https://git.sr.ht/~sircmpwn/scdoc/archive/$pkgver.tar.gz"
build() {
make PREFIX="/usr"
}
+check() {
+ make check
+}
+
package() {
make DESTDIR="$pkgdir" PREFIX="/usr" install
}
sha512sums="
-3fbf1a74b222dd88410636124e4b6ca73f7e77f67d512cf430a878fefcaa5c6c13a1e9f6c0c9654de15353f94bb1bd528665acebc2293bebb325501d1eb6cda3 scdoc-1.11.2.tar.gz
+fbecc505b44c396890c53c05183d34336160dbd02993ee120421fc6e2a3ec78ba349747e8acfe97af956a0081c923309290ff97fb7babafbc3ca8addc9ec92f9 scdoc-1.11.3.tar.gz
"
diff --git a/main/scons/APKBUILD b/main/scons/APKBUILD
index dd1f0d550c8..d6d700b95fd 100644
--- a/main/scons/APKBUILD
+++ b/main/scons/APKBUILD
@@ -1,25 +1,27 @@
# Contributor: Nicolas Lorin <androw95220@gmail.com>
-# Maintainer:
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=scons
-pkgver=4.3.0
-pkgrel=0
+pkgver=4.7.0
+pkgrel=1
pkgdesc="Software construction system"
url="https://scons.org/"
arch="noarch"
license="MIT"
depends="python3"
-makedepends="py3-setuptools"
+makedepends="py3-gpep517 py3-setuptools py3-wheel"
checkdepends="xz"
-subpackages="$pkgname-doc"
+subpackages="$pkgname-pyc $pkgname-doc"
# fetching both sources, because only github tarball has tests
# and only sourceforge tarball has prebuilt manpages
# building the scons manpages requires working scons install...
source="https://github.com/SCons/scons/archive/$pkgver/scons-$pkgver.tar.gz
https://downloads.sourceforge.net/project/scons/scons/$pkgver/SCons-$pkgver.tar.gz
dont-install-manpages.patch
- broken-tests.patch
"
+# tests need py3-psutil from community
+options="!check"
+
prepare() {
default_prepare
@@ -30,15 +32,17 @@ prepare() {
}
build() {
- python3 setup.py build
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
}
check() {
- python3 runtest.py -a
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 runtest.py -a
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
+ python3 -m installer -d "$pkgdir" .dist/*.whl
# find and remove directories containing docbook files
find "$pkgdir" -name 'docbook' -type d -exec rm -rf {} +
@@ -51,8 +55,7 @@ package() {
}
sha512sums="
-2d91cf3045797c888d24db38d5b44576e56b271a2c4e9d28d7e16026451865f713990ff9e57fa3e0a1c19603c2d6adbbd1ba36d297c9dcce4db4139fcc51cd62 scons-4.3.0.tar.gz
-200e087a0a3de7d92d7da6bdb7f2dc0f5d9ff4908a9d6aef2feab8cacfb2e480b7d88efca8f7a84bd39620db2efceaca14f68e6edbf494b1c28b80e35ed14f2c SCons-4.3.0.tar.gz
+8be4d611c375c13467a1a437e0d47873f973584d9a1be0d1cbbd345685a8f477fc19fa59ab01bca1ab7be8af0034d5cfda360090ee4b347c41f7bfea363bfe6c scons-4.7.0.tar.gz
+d08fba3e7f058eb2eeee4a129d10b55affada6b192932f069271fcbc28fd8216b2bf7e94285d9c448235a3965a789d3a91db9ebae1945aa73306788009dd2e77 SCons-4.7.0.tar.gz
286dbd5230119237b2ef2ece572d70c8b22d78ac71c5ac7a7a23e1c8597ca6379f324293560276777b608eb7b7af070374e8df91b593e6c656d81e13367efccd dont-install-manpages.patch
-aa495ac6dd4d62b14021c852bc98bb0d308cd34960e870eb08b8780c069ece8779a8cd1637c3e5b6d90ff4c223bac99bbb3eda5a87f17ca696a37c8852001358 broken-tests.patch
"
diff --git a/main/scons/broken-tests.patch b/main/scons/broken-tests.patch
deleted file mode 100644
index c6b7552628e..00000000000
--- a/main/scons/broken-tests.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/SCons/ActionTests.py b/SCons/ActionTests.py
---- a/SCons/ActionTests.py
-+++ b/SCons/ActionTests.py
-@@ -2253,3 +2253,3 @@
- (3, 9): bytearray(b'3, 3, 0, 0,(),(),(|\x00S\x00),(),()'),
-- (3, 10): bytearray(b'3, 3, 0, 0,(N.),(),(|\x00S\x00),(),()'),
-+ (3, 10): bytearray(b'3, 3, 0, 0,(),(),(|\x00S\x00),(),()'),
- }
-
-diff --git a/testing/framework/TestSConsMSVS.py b/testing/framework/TestSConsMSVS.py
---- a/testing/framework/TestSConsMSVS.py
-+++ b/testing/framework/TestSConsMSVS.py
-@@ -661,2 +661,8 @@
- class TestSConsMSVS(TestSCons):
- """Subclass for testing MSVS-specific portions of SCons."""
-+
-+ def __init__(self):
-+ super().__init__()
-+ if sys.platform != 'win32':
-+ msg = "Skipping Visual Studio test on non-Windows platform '%s'\n" % sys.platform
-+ self.skip_test(msg)
diff --git a/main/screen/APKBUILD b/main/screen/APKBUILD
index 866293a50cb..735904a7a13 100644
--- a/main/screen/APKBUILD
+++ b/main/screen/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Michael Mason <ms13sp@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=screen
-pkgver=4.9.0
-pkgrel=0
+pkgver=4.9.1
+pkgrel=1
pkgdesc="Window manager that multiplexes a physical terminal"
url="https://www.gnu.org/software/screen/"
arch="all"
@@ -15,6 +15,8 @@ source="https://ftp.gnu.org/gnu/screen/screen-$pkgver.tar.gz
"
# secfixes:
+# 4.9.0-r3:
+# - CVE-2023-24626
# 4.8.0-r4:
# - CVE-2021-26937
# 4.8.0-r0:
@@ -26,8 +28,9 @@ prepare() {
}
build() {
- CFLAGS="$CFLAGS -DNONETHACK -DGETUTENT -I/usr/include/utmps" \
- LIBS="-lutmps -lskarnet" ./configure \
+ CFLAGS="$CFLAGS -DNONETHACK -DGETUTENT -I/usr/include/utmps -flto=auto" \
+ LIBS="-lutmps -lskarnet" \
+ ./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
@@ -53,6 +56,6 @@ package() {
}
sha512sums="
-18bbb085d77ecd02cbc02fa88a945c39f06e0c6de4eeaa16b278440dac5c9896811abbe0838144e997cd344ae08b9530399fa8fcb31a65fc571ead90e8307f84 screen-4.9.0.tar.gz
+1f278313528815f4246bb162ced611c5d77321d11055e8d853168dc804c75d5f78568056a23e46db0640e1605e5cad4a5ce05e95e50cf02bb322cb6f57e5a126 screen-4.9.1.tar.gz
82aca3e16c8cd7a3029d3b589ff2dd3471708d6287979ebb5cfdaedbd1f3012c0cd660b131e0cbe142b99786e49ef8b24c63159523d870e95ccf71ec94b82634 utmpx.patch
"
diff --git a/main/scstadmin/APKBUILD b/main/scstadmin/APKBUILD
index e706689ea19..638a602928e 100644
--- a/main/scstadmin/APKBUILD
+++ b/main/scstadmin/APKBUILD
@@ -2,36 +2,35 @@
# Maintainer:
pkgname=scstadmin
pkgver=2.2.0
-pkgrel=2
+pkgrel=7
pkgdesc="SCST administration tool written in perl"
-url="http://scst.sourceforge.net"
+url="https://scst.sourceforge.net/"
arch="noarch"
-license="GPL-2.0"
+license="GPL-2.0-only"
+options="!check" # no testsuite
depends="perl"
makedepends="perl-dev"
-install=
-subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/scst/$pkgname-$pkgver.tar.bz2
+subpackages="$pkgname-doc $pkgname-openrc"
+source="https://downloads.sourceforge.net/scst/scstadmin-$pkgver.tar.bz2
scstadmin.initd
"
-_builddir="$srcdir/$pkgname-$pkgver"
-
-prepare() {
- cd "$_builddir"/scstadmin.sysfs/scst-0.9.10
- PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor || return 1
- cd "$_builddir"
+build() {
+ cd scstadmin.sysfs/scst-0.9.10
+ PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor
}
package() {
- cd "$_builddir"/scstadmin.sysfs/scst-0.9.10
- make DESTDIR="$pkgdir" install || return 1
+ cd scstadmin.sysfs/scst-0.9.10
+ make DESTDIR="$pkgdir" install
- cd "$_builddir"
+ cd "$builddir"
mkdir -p "$pkgdir"/var/lib/scst/pr
- install -Dm755 scstadmin.sysfs/scstadmin "$pkgdir"/usr/sbin/scstadmin || return 1
- install -Dm755 "$srcdir"/scstadmin.initd "$pkgdir"/etc/init.d/scstadmin || return 1
+ install -Dm755 scstadmin.sysfs/scstadmin "$pkgdir"/usr/sbin/scstadmin
+ install -Dm755 "$srcdir"/scstadmin.initd "$pkgdir"/etc/init.d/scstadmin
}
-sha512sums="0c1ebf27203c63f3ec16a6c4ca159d4203da902ed8cc3fc6b8a415847c39a83294609c325e0c736e60a8e7cbb445ab2f3914dd9df980238363c6d8be98f0d08e scstadmin-2.2.0.tar.bz2
-ba39bb8e7bfd77cfcdac42c8f34867d1dbccd0f153307e1630ecc0d11a02fb8275aecd87ea8a05c2d1fa939457e434a5a8c26c69f6f1cf9a47ef486eb0ab43a3 scstadmin.initd"
+sha512sums="
+0c1ebf27203c63f3ec16a6c4ca159d4203da902ed8cc3fc6b8a415847c39a83294609c325e0c736e60a8e7cbb445ab2f3914dd9df980238363c6d8be98f0d08e scstadmin-2.2.0.tar.bz2
+ba39bb8e7bfd77cfcdac42c8f34867d1dbccd0f153307e1630ecc0d11a02fb8275aecd87ea8a05c2d1fa939457e434a5a8c26c69f6f1cf9a47ef486eb0ab43a3 scstadmin.initd
+"
diff --git a/main/scudo-malloc/0001-Add-makefile.patch b/main/scudo-malloc/0001-Add-makefile.patch
new file mode 100644
index 00000000000..47a0cc2d9cd
--- /dev/null
+++ b/main/scudo-malloc/0001-Add-makefile.patch
@@ -0,0 +1,68 @@
+From 64853e3c0a51103ffef34bb899ca92a3ea0cde1e Mon Sep 17 00:00:00 2001
+From: Natanael Copa <ncopa@alpinelinux.org>
+Date: Mon, 30 Oct 2023 21:59:49 +0100
+Subject: [PATCH] Add makefile
+
+---
+ compiler-rt/lib/scudo/standalone/Makefile | 42 +++++++++++++++++++++++
+ 1 file changed, 42 insertions(+)
+ create mode 100644 compiler-rt/lib/scudo/standalone/Makefile
+
+diff --git a/compiler-rt/lib/scudo/standalone/Makefile b/compiler-rt/lib/scudo/standalone/Makefile
+new file mode 100644
+index 00000000000..e9e5b95dd42
+--- /dev/null
++++ b/Makefile
+@@ -0,0 +1,49 @@
++CXX = c++
++AR = ar
++
++override CXXFLAGS+= -Wall -Wextra -Wno-mismatched-new-delete -std=c++17 -fvisibility=hidden -fno-exceptions -fno-rtti -pthread -fPIC -O3 -Iinclude -I. -DNDEBUG -DSCUDO_CAN_USE_PRIMARY64=0
++
++sources = $(wildcard *.cpp)
++objects = $(sources:%.cpp=%.o)
++
++test_skip = $(wildcard tests/wrappers_*_test.cpp)
++test_sources = $(filter-out $(test_skip), $(wildcard tests/*_test.cpp)) tests/scudo_unit_test_main.cpp
++test_objects = $(test_sources:%.cpp=%.o)
++
++gtest_libs = -lgtest
++
++CXXFLAGS_crc32 = -mcrc32
++
++TESTS ?= yes
++
++SCUDO_TEST=
++ifneq ($(TESTS),no)
++SCUDO_TEST=scudo_test
++endif
++
++.PHONY: all
++all: libscudo.so libscudo.a $(SCUDO_TEST)
++
++libscudo.so: $(objects)
++ $(CXX) $(objects) $(CXXFLAGS) $(LDFLAGS) -shared -o $@
++
++libscudo.a: $(objects)
++ $(AR) rcs $@ $(objects)
++
++scudo_test: $(objects) $(test_objects) libscudo.a
++ $(CXX) $(test_objects) -o $@ $(CXXFLAGS) -g $(LDFLAGS) -L. libscudo.a $(gtest_libs)
++
++.PHONY: test
++test: scudo_test
++ ./scudo_test
++
++crc32_hw.o: CXXFLAGS += $(CXXFLAGS_crc32)
++$(objects): CXXFLAGS += -ffreestanding -nostdinc++
++
++%.o: %.cpp
++ $(CXX) $< $(CXXFLAGS) -c -o $@
++
++clean:
++ -rm -f $(test_objects) $(objects) libscudo.a libscudo.so scudo_test
++
++
+--
+2.42.0
+
diff --git a/main/scudo-malloc/0001-scudo-Detach-the-hooks-from-Scudo-s-internal-impleme.patch b/main/scudo-malloc/0001-scudo-Detach-the-hooks-from-Scudo-s-internal-impleme.patch
new file mode 100644
index 00000000000..ac7ad9f9427
--- /dev/null
+++ b/main/scudo-malloc/0001-scudo-Detach-the-hooks-from-Scudo-s-internal-impleme.patch
@@ -0,0 +1,782 @@
+From 4f76810d4860d851f069aa0caca24c54ab698c3b Mon Sep 17 00:00:00 2001
+From: Chia-hung Duan <chiahungduan@google.com>
+Date: Thu, 24 Aug 2023 17:52:35 +0000
+Subject: [PATCH] [scudo] Detach the hooks from Scudo's internal implementation
+
+Move the invocation of hooks from Scudo internal to wrapper_c.cpp and
+wrapper_c_bionic.cpp respectively. Therefore, Scudo's core algorithm
+doesnt need to worry about the reentrant of hooks and leave the caring
+of reentrant to the hook users.
+
+Reviewed By: hctim, cferris, chelfi
+
+Differential Revision: https://reviews.llvm.org/D152188
+---
+ compiler-rt/lib/scudo/standalone/combined.h | 10 --
+ .../lib/scudo/standalone/tests/CMakeLists.txt | 8 --
+ .../standalone/tests/scudo_hooks_test.cpp | 114 ------------------
+ .../standalone/tests/wrappers_c_test.cpp | 64 +++++++++-
+ .../standalone/tests/wrappers_cpp_test.cpp | 34 ++++++
+ .../lib/scudo/standalone/wrappers_c.cpp | 1 +
+ .../lib/scudo/standalone/wrappers_c.inc | 73 ++++++++---
+ .../scudo/standalone/wrappers_c_bionic.cpp | 1 +
+ .../lib/scudo/standalone/wrappers_cpp.cpp | 63 ++++++++--
+ 9 files changed, 206 insertions(+), 162 deletions(-)
+ delete mode 100644 compiler-rt/lib/scudo/standalone/tests/scudo_hooks_test.cpp
+
+diff --git a/compiler-rt/lib/scudo/standalone/combined.h b/compiler-rt/lib/scudo/standalone/combined.h
+index e1db7a703011..8cc84adcd484 100644
+--- a/combined.h
++++ b/combined.h
+@@ -329,8 +329,6 @@ public:
+ #ifdef GWP_ASAN_HOOKS
+ if (UNLIKELY(GuardedAlloc.shouldSample())) {
+ if (void *Ptr = GuardedAlloc.allocate(Size, Alignment)) {
+- if (UNLIKELY(&__scudo_allocate_hook))
+- __scudo_allocate_hook(Ptr, Size);
+ Stats.lock();
+ Stats.add(StatAllocated, GuardedAllocSlotSize);
+ Stats.sub(StatFree, GuardedAllocSlotSize);
+@@ -535,9 +533,6 @@ public:
+ Chunk::SizeOrUnusedBytesMask;
+ Chunk::storeHeader(Cookie, Ptr, &Header);
+
+- if (UNLIKELY(&__scudo_allocate_hook))
+- __scudo_allocate_hook(TaggedPtr, Size);
+-
+ return TaggedPtr;
+ }
+
+@@ -551,9 +546,6 @@ public:
+ // being destroyed properly. Any other heap operation will do a full init.
+ initThreadMaybe(/*MinimalInit=*/true);
+
+- if (UNLIKELY(&__scudo_deallocate_hook))
+- __scudo_deallocate_hook(Ptr);
+-
+ if (UNLIKELY(!Ptr))
+ return;
+
+@@ -697,8 +689,6 @@ public:
+ void *NewPtr = allocate(NewSize, Chunk::Origin::Malloc, Alignment);
+ if (LIKELY(NewPtr)) {
+ memcpy(NewPtr, OldTaggedPtr, Min(NewSize, OldSize));
+- if (UNLIKELY(&__scudo_deallocate_hook))
+- __scudo_deallocate_hook(OldTaggedPtr);
+ quarantineOrDeallocateChunk(Options, OldTaggedPtr, &OldHeader, OldSize);
+ }
+ return NewPtr;
+diff --git a/compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt b/compiler-rt/lib/scudo/standalone/tests/CMakeLists.txt
+index cbb85ce3ec2e..71ad3830c88c 100644
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -137,11 +137,3 @@ set(SCUDO_CXX_UNIT_TEST_SOURCES
+ add_scudo_unittest(ScudoCxxUnitTest
+ SOURCES ${SCUDO_CXX_UNIT_TEST_SOURCES}
+ ADDITIONAL_RTOBJECTS RTScudoStandaloneCWrappers RTScudoStandaloneCxxWrappers)
+-
+-set(SCUDO_HOOKS_UNIT_TEST_SOURCES
+- scudo_hooks_test.cpp
+- scudo_unit_test_main.cpp
+- )
+-
+-add_scudo_unittest(ScudoHooksUnitTest
+- SOURCES ${SCUDO_HOOKS_UNIT_TEST_SOURCES})
+diff --git a/compiler-rt/lib/scudo/standalone/tests/scudo_hooks_test.cpp b/compiler-rt/lib/scudo/standalone/tests/scudo_hooks_test.cpp
+deleted file mode 100644
+index 7184ec12a8bb..000000000000
+--- a/tests/scudo_hooks_test.cpp
++++ /dev/null
+@@ -1,114 +0,0 @@
+-//===-- scudo_hooks_test.cpp ------------------------------------*- C++ -*-===//
+-//
+-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+-// See https://llvm.org/LICENSE.txt for license information.
+-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+-//
+-//===----------------------------------------------------------------------===//
+-
+-#include "tests/scudo_unit_test.h"
+-
+-#include "allocator_config.h"
+-#include "combined.h"
+-
+-namespace {
+-void *LastAllocatedPtr = nullptr;
+-size_t LastRequestSize = 0;
+-void *LastDeallocatedPtr = nullptr;
+-} // namespace
+-
+-// Scudo defines weak symbols that can be defined by a client binary
+-// to register callbacks at key points in the allocation timeline. In
+-// order to enforce those invariants, we provide definitions that
+-// update some global state every time they are called, so that tests
+-// can inspect their effects. An unfortunate side effect of this
+-// setup is that because those symbols are part of the binary, they
+-// can't be selectively enabled; that means that they will get called
+-// on unrelated tests in the same compilation unit. To mitigate this
+-// issue, we insulate those tests in a separate compilation unit.
+-extern "C" {
+-__attribute__((visibility("default"))) void __scudo_allocate_hook(void *Ptr,
+- size_t Size) {
+- LastAllocatedPtr = Ptr;
+- LastRequestSize = Size;
+-}
+-__attribute__((visibility("default"))) void __scudo_deallocate_hook(void *Ptr) {
+- LastDeallocatedPtr = Ptr;
+-}
+-}
+-
+-// Simple check that allocation callbacks, when registered, are called:
+-// 1) __scudo_allocate_hook is called when allocating.
+-// 2) __scudo_deallocate_hook is called when deallocating.
+-// 3) Both hooks are called when reallocating.
+-// 4) Neither are called for a no-op reallocation.
+-TEST(ScudoHooksTest, AllocateHooks) {
+- scudo::Allocator<scudo::DefaultConfig> Allocator;
+- constexpr scudo::uptr DefaultSize = 16U;
+- constexpr scudo::Chunk::Origin Origin = scudo::Chunk::Origin::Malloc;
+-
+- // Simple allocation and deallocation.
+- {
+- LastAllocatedPtr = nullptr;
+- LastRequestSize = 0;
+-
+- void *Ptr = Allocator.allocate(DefaultSize, Origin);
+-
+- EXPECT_EQ(Ptr, LastAllocatedPtr);
+- EXPECT_EQ(DefaultSize, LastRequestSize);
+-
+- LastDeallocatedPtr = nullptr;
+-
+- Allocator.deallocate(Ptr, Origin);
+-
+- EXPECT_EQ(Ptr, LastDeallocatedPtr);
+- }
+-
+- // Simple no-op, same size reallocation.
+- {
+- void *Ptr = Allocator.allocate(DefaultSize, Origin);
+-
+- LastAllocatedPtr = nullptr;
+- LastRequestSize = 0;
+- LastDeallocatedPtr = nullptr;
+-
+- void *NewPtr = Allocator.reallocate(Ptr, DefaultSize);
+-
+- EXPECT_EQ(Ptr, NewPtr);
+- EXPECT_EQ(nullptr, LastAllocatedPtr);
+- EXPECT_EQ(0U, LastRequestSize);
+- EXPECT_EQ(nullptr, LastDeallocatedPtr);
+- }
+-
+- // Reallocation in increasing size classes. This ensures that at
+- // least one of the reallocations will be meaningful.
+- {
+- void *Ptr = Allocator.allocate(0, Origin);
+-
+- for (scudo::uptr ClassId = 1U;
+- ClassId <= scudo::DefaultConfig::Primary::SizeClassMap::LargestClassId;
+- ++ClassId) {
+- const scudo::uptr Size =
+- scudo::DefaultConfig::Primary::SizeClassMap::getSizeByClassId(
+- ClassId);
+-
+- LastAllocatedPtr = nullptr;
+- LastRequestSize = 0;
+- LastDeallocatedPtr = nullptr;
+-
+- void *NewPtr = Allocator.reallocate(Ptr, Size);
+-
+- if (NewPtr != Ptr) {
+- EXPECT_EQ(NewPtr, LastAllocatedPtr);
+- EXPECT_EQ(Size, LastRequestSize);
+- EXPECT_EQ(Ptr, LastDeallocatedPtr);
+- } else {
+- EXPECT_EQ(nullptr, LastAllocatedPtr);
+- EXPECT_EQ(0U, LastRequestSize);
+- EXPECT_EQ(nullptr, LastDeallocatedPtr);
+- }
+-
+- Ptr = NewPtr;
+- }
+- }
+-}
+diff --git a/compiler-rt/lib/scudo/standalone/tests/wrappers_c_test.cpp b/compiler-rt/lib/scudo/standalone/tests/wrappers_c_test.cpp
+index c921da980cad..d0cc0fa3c650 100644
+--- a/tests/wrappers_c_test.cpp
++++ b/tests/wrappers_c_test.cpp
+@@ -37,6 +37,16 @@
+ #define HAVE_VALLOC 1
+ #endif
+
++struct AllocContext {
++ void *Ptr;
++ size_t Size;
++};
++struct DeallocContext {
++ void *Ptr;
++};
++static AllocContext AC;
++static DeallocContext DC;
++
+ extern "C" {
+ void malloc_enable(void);
+ void malloc_disable(void);
+@@ -45,6 +55,15 @@ int malloc_iterate(uintptr_t base, size_t size,
+ void *arg);
+ void *valloc(size_t size);
+ void *pvalloc(size_t size);
++
++__attribute__((visibility("default"))) void __scudo_allocate_hook(void *Ptr,
++ size_t Size) {
++ AC.Ptr = Ptr;
++ AC.Size = Size;
++}
++__attribute__((visibility("default"))) void __scudo_deallocate_hook(void *Ptr) {
++ DC.Ptr = Ptr;
++}
+ }
+
+ // Note that every C allocation function in the test binary will be fulfilled
+@@ -64,6 +83,8 @@ TEST(ScudoWrappersCDeathTest, Malloc) {
+ EXPECT_NE(P, nullptr);
+ EXPECT_LE(Size, malloc_usable_size(P));
+ EXPECT_EQ(reinterpret_cast<uintptr_t>(P) % FIRST_32_SECOND_64(8U, 16U), 0U);
++ EXPECT_EQ(P, AC.Ptr);
++ EXPECT_EQ(Size, AC.Size);
+
+ // An update to this warning in Clang now triggers in this line, but it's ok
+ // because the check is expecting a bad pointer and should fail.
+@@ -78,6 +99,7 @@ TEST(ScudoWrappersCDeathTest, Malloc) {
+ #endif
+
+ free(P);
++ EXPECT_EQ(P, DC.Ptr);
+ EXPECT_DEATH(free(P), "");
+
+ P = malloc(0U);
+@@ -93,9 +115,12 @@ TEST(ScudoWrappersCTest, Calloc) {
+ void *P = calloc(1U, Size);
+ EXPECT_NE(P, nullptr);
+ EXPECT_LE(Size, malloc_usable_size(P));
++ EXPECT_EQ(P, AC.Ptr);
++ EXPECT_EQ(Size, AC.Size);
+ for (size_t I = 0; I < Size; I++)
+ EXPECT_EQ((reinterpret_cast<uint8_t *>(P))[I], 0U);
+ free(P);
++ EXPECT_EQ(P, DC.Ptr);
+
+ P = calloc(1U, 0U);
+ EXPECT_NE(P, nullptr);
+@@ -146,14 +171,20 @@ TEST(ScudoWrappersCTest, Memalign) {
+ EXPECT_NE(P, nullptr);
+ EXPECT_LE(Size, malloc_usable_size(P));
+ EXPECT_EQ(reinterpret_cast<uintptr_t>(P) % Alignment, 0U);
++ EXPECT_EQ(P, AC.Ptr);
++ EXPECT_EQ(Size, AC.Size);
+ free(P);
++ EXPECT_EQ(P, DC.Ptr);
+
+ P = nullptr;
+ EXPECT_EQ(posix_memalign(&P, Alignment, Size), 0);
+ EXPECT_NE(P, nullptr);
+ EXPECT_LE(Size, malloc_usable_size(P));
+ EXPECT_EQ(reinterpret_cast<uintptr_t>(P) % Alignment, 0U);
++ EXPECT_EQ(P, AC.Ptr);
++ EXPECT_EQ(Size, AC.Size);
+ free(P);
++ EXPECT_EQ(P, DC.Ptr);
+ }
+
+ EXPECT_EQ(memalign(4096U, SIZE_MAX), nullptr);
+@@ -165,7 +196,10 @@ TEST(ScudoWrappersCTest, Memalign) {
+ for (size_t Alignment = 0U; Alignment <= 128U; Alignment++) {
+ P = memalign(Alignment, 1024U);
+ EXPECT_NE(P, nullptr);
++ EXPECT_EQ(P, AC.Ptr);
++ EXPECT_EQ(Size, AC.Size);
+ free(P);
++ EXPECT_EQ(P, DC.Ptr);
+ }
+ }
+ }
+@@ -176,7 +210,10 @@ TEST(ScudoWrappersCTest, AlignedAlloc) {
+ EXPECT_NE(P, nullptr);
+ EXPECT_LE(Alignment * 4U, malloc_usable_size(P));
+ EXPECT_EQ(reinterpret_cast<uintptr_t>(P) % Alignment, 0U);
++ EXPECT_EQ(P, AC.Ptr);
++ EXPECT_EQ(Alignment * 4U, AC.Size);
+ free(P);
++ EXPECT_EQ(P, DC.Ptr);
+
+ errno = 0;
+ P = aligned_alloc(Alignment, Size);
+@@ -186,31 +223,52 @@ TEST(ScudoWrappersCTest, AlignedAlloc) {
+
+ TEST(ScudoWrappersCDeathTest, Realloc) {
+ // realloc(nullptr, N) is malloc(N)
+- void *P = realloc(nullptr, 0U);
++ void *P = realloc(nullptr, Size);
+ EXPECT_NE(P, nullptr);
++ EXPECT_EQ(P, AC.Ptr);
++ EXPECT_EQ(Size, AC.Size);
+ free(P);
++ EXPECT_EQ(P, DC.Ptr);
+
+ P = malloc(Size);
+ EXPECT_NE(P, nullptr);
+ // realloc(P, 0U) is free(P) and returns nullptr
+ EXPECT_EQ(realloc(P, 0U), nullptr);
++ EXPECT_EQ(P, DC.Ptr);
+
+ P = malloc(Size);
+ EXPECT_NE(P, nullptr);
+ EXPECT_LE(Size, malloc_usable_size(P));
+ memset(P, 0x42, Size);
+
++ AC.Ptr = reinterpret_cast<void *>(0xdeadbeef);
++ void *OldP = P;
+ P = realloc(P, Size * 2U);
+ EXPECT_NE(P, nullptr);
+ EXPECT_LE(Size * 2U, malloc_usable_size(P));
+ for (size_t I = 0; I < Size; I++)
+ EXPECT_EQ(0x42, (reinterpret_cast<uint8_t *>(P))[I]);
++ if (OldP == P) {
++ EXPECT_EQ(AC.Ptr, reinterpret_cast<void *>(0xdeadbeef));
++ } else {
++ EXPECT_EQ(P, AC.Ptr);
++ EXPECT_EQ(Size * 2U, AC.Size);
++ EXPECT_EQ(OldP, DC.Ptr);
++ }
+
++ AC.Ptr = reinterpret_cast<void *>(0xdeadbeef);
++ OldP = P;
+ P = realloc(P, Size / 2U);
+ EXPECT_NE(P, nullptr);
+ EXPECT_LE(Size / 2U, malloc_usable_size(P));
+ for (size_t I = 0; I < Size / 2U; I++)
+ EXPECT_EQ(0x42, (reinterpret_cast<uint8_t *>(P))[I]);
++ if (OldP == P) {
++ EXPECT_EQ(AC.Ptr, reinterpret_cast<void *>(0xdeadbeef));
++ } else {
++ EXPECT_EQ(P, AC.Ptr);
++ EXPECT_EQ(Size / 2U, AC.Size);
++ }
+ free(P);
+
+ EXPECT_DEATH(P = realloc(P, Size), "");
+@@ -273,7 +331,11 @@ TEST(ScudoWrappersCTest, OtherAlloc) {
+ EXPECT_NE(P, nullptr);
+ EXPECT_EQ(reinterpret_cast<uintptr_t>(P) & (PageSize - 1), 0U);
+ EXPECT_LE(PageSize, malloc_usable_size(P));
++ EXPECT_EQ(P, AC.Ptr);
++ // Size will be rounded up to PageSize.
++ EXPECT_EQ(PageSize, AC.Size);
+ free(P);
++ EXPECT_EQ(P, DC.Ptr);
+
+ EXPECT_EQ(pvalloc(SIZE_MAX), nullptr);
+
+diff --git a/compiler-rt/lib/scudo/standalone/tests/wrappers_cpp_test.cpp b/compiler-rt/lib/scudo/standalone/tests/wrappers_cpp_test.cpp
+index 987e4099aa77..654bf5473178 100644
+--- a/tests/wrappers_cpp_test.cpp
++++ b/tests/wrappers_cpp_test.cpp
+@@ -24,47 +24,81 @@
+ #define SKIP_MISMATCH_TESTS 0
+ #endif
+
++struct AllocContext {
++ void *Ptr;
++ size_t Size;
++};
++struct DeallocContext {
++ void *Ptr;
++};
++static AllocContext AC;
++static DeallocContext DC;
++
+ void operator delete(void *, size_t) noexcept;
+ void operator delete[](void *, size_t) noexcept;
+
++extern "C" {
++__attribute__((visibility("default"))) void __scudo_allocate_hook(void *Ptr,
++ size_t Size) {
++ AC.Ptr = Ptr;
++ AC.Size = Size;
++}
++__attribute__((visibility("default"))) void __scudo_deallocate_hook(void *Ptr) {
++ DC.Ptr = Ptr;
++}
++}
+ // Note that every Cxx allocation function in the test binary will be fulfilled
+ // by Scudo. See the comment in the C counterpart of this file.
+
+ template <typename T> static void testCxxNew() {
+ T *P = new T;
+ EXPECT_NE(P, nullptr);
++ EXPECT_EQ(P, AC.Ptr);
++ EXPECT_EQ(sizeof(T), AC.Size);
+ memset(P, 0x42, sizeof(T));
+ EXPECT_DEATH(delete[] P, "");
+ delete P;
++ EXPECT_EQ(P, DC.Ptr);
+ EXPECT_DEATH(delete P, "");
+
+ P = new T;
+ EXPECT_NE(P, nullptr);
+ memset(P, 0x42, sizeof(T));
+ operator delete(P, sizeof(T));
++ EXPECT_EQ(P, DC.Ptr);
+
+ P = new (std::nothrow) T;
++ EXPECT_EQ(P, AC.Ptr);
++ EXPECT_EQ(sizeof(T), AC.Size);
+ EXPECT_NE(P, nullptr);
+ memset(P, 0x42, sizeof(T));
+ delete P;
++ EXPECT_EQ(P, DC.Ptr);
+
+ const size_t N = 16U;
+ T *A = new T[N];
+ EXPECT_NE(A, nullptr);
++ EXPECT_EQ(A, AC.Ptr);
++ EXPECT_EQ(sizeof(T) * N, AC.Size);
+ memset(A, 0x42, sizeof(T) * N);
+ EXPECT_DEATH(delete A, "");
+ delete[] A;
++ EXPECT_EQ(A, DC.Ptr);
+ EXPECT_DEATH(delete[] A, "");
+
+ A = new T[N];
+ EXPECT_NE(A, nullptr);
+ memset(A, 0x42, sizeof(T) * N);
+ operator delete[](A, sizeof(T) * N);
++ EXPECT_EQ(A, DC.Ptr);
+
+ A = new (std::nothrow) T[N];
++ EXPECT_EQ(A, AC.Ptr);
++ EXPECT_EQ(sizeof(T) * N, AC.Size);
+ EXPECT_NE(A, nullptr);
+ memset(A, 0x42, sizeof(T) * N);
+ delete[] A;
++ EXPECT_EQ(A, DC.Ptr);
+ }
+
+ class Pixel {
+diff --git a/compiler-rt/lib/scudo/standalone/wrappers_c.cpp b/compiler-rt/lib/scudo/standalone/wrappers_c.cpp
+index b4d51be716cc..0b204271c81c 100644
+--- a/wrappers_c.cpp
++++ b/wrappers_c.cpp
+@@ -12,6 +12,7 @@
+ #if !SCUDO_ANDROID || !_BIONIC
+
+ #include "allocator_config.h"
++#include "scudo/interface.h"
+ #include "wrappers_c.h"
+ #include "wrappers_c_checks.h"
+
+diff --git a/compiler-rt/lib/scudo/standalone/wrappers_c.inc b/compiler-rt/lib/scudo/standalone/wrappers_c.inc
+index a475927b9f51..0bd5eddfa0b1 100644
+--- a/wrappers_c.inc
++++ b/wrappers_c.inc
+@@ -17,6 +17,16 @@
+ #define SCUDO_MALLOC_ALIGNMENT FIRST_32_SECOND_64(8U, 16U)
+ #endif
+
++static void reportAllocation(void *ptr, size_t size) {
++ if (__scudo_allocate_hook && ptr)
++ __scudo_allocate_hook(ptr, size);
++}
++
++static void reportDeallocation(void *ptr) {
++ if (__scudo_deallocate_hook)
++ __scudo_deallocate_hook(ptr);
++}
++
+ extern "C" {
+
+ INTERFACE WEAK void *SCUDO_PREFIX(calloc)(size_t nmemb, size_t size) {
+@@ -28,11 +38,14 @@ INTERFACE WEAK void *SCUDO_PREFIX(calloc)(size_t nmemb, size_t size) {
+ }
+ scudo::reportCallocOverflow(nmemb, size);
+ }
+- return scudo::setErrnoOnNull(SCUDO_ALLOCATOR.allocate(
+- Product, scudo::Chunk::Origin::Malloc, SCUDO_MALLOC_ALIGNMENT, true));
++ void *Ptr = SCUDO_ALLOCATOR.allocate(Product, scudo::Chunk::Origin::Malloc,
++ SCUDO_MALLOC_ALIGNMENT, true);
++ reportAllocation(Ptr, Product);
++ return scudo::setErrnoOnNull(Ptr);
+ }
+
+ INTERFACE WEAK void SCUDO_PREFIX(free)(void *ptr) {
++ reportDeallocation(ptr);
+ SCUDO_ALLOCATOR.deallocate(ptr, scudo::Chunk::Origin::Malloc);
+ }
+
+@@ -75,8 +88,10 @@ INTERFACE WEAK struct __scudo_mallinfo2 SCUDO_PREFIX(mallinfo2)(void) {
+ #endif
+
+ INTERFACE WEAK void *SCUDO_PREFIX(malloc)(size_t size) {
+- return scudo::setErrnoOnNull(SCUDO_ALLOCATOR.allocate(
+- size, scudo::Chunk::Origin::Malloc, SCUDO_MALLOC_ALIGNMENT));
++ void *Ptr = SCUDO_ALLOCATOR.allocate(size, scudo::Chunk::Origin::Malloc,
++ SCUDO_MALLOC_ALIGNMENT);
++ reportAllocation(Ptr, size);
++ return scudo::setErrnoOnNull(Ptr);
+ }
+
+ #if SCUDO_ANDROID
+@@ -105,8 +120,10 @@ INTERFACE WEAK void *SCUDO_PREFIX(memalign)(size_t alignment, size_t size) {
+ scudo::reportAlignmentNotPowerOfTwo(alignment);
+ }
+ }
+- return SCUDO_ALLOCATOR.allocate(size, scudo::Chunk::Origin::Memalign,
+- alignment);
++ void *Ptr =
++ SCUDO_ALLOCATOR.allocate(size, scudo::Chunk::Origin::Memalign, alignment);
++ reportAllocation(Ptr, size);
++ return Ptr;
+ }
+
+ INTERFACE WEAK int SCUDO_PREFIX(posix_memalign)(void **memptr, size_t alignment,
+@@ -120,6 +137,8 @@ INTERFACE WEAK int SCUDO_PREFIX(posix_memalign)(void **memptr, size_t alignment,
+ SCUDO_ALLOCATOR.allocate(size, scudo::Chunk::Origin::Memalign, alignment);
+ if (UNLIKELY(!Ptr))
+ return ENOMEM;
++ reportAllocation(Ptr, size);
++
+ *memptr = Ptr;
+ return 0;
+ }
+@@ -134,26 +153,42 @@ INTERFACE WEAK void *SCUDO_PREFIX(pvalloc)(size_t size) {
+ scudo::reportPvallocOverflow(size);
+ }
+ // pvalloc(0) should allocate one page.
+- return scudo::setErrnoOnNull(
++ void *Ptr =
+ SCUDO_ALLOCATOR.allocate(size ? scudo::roundUp(size, PageSize) : PageSize,
+- scudo::Chunk::Origin::Memalign, PageSize));
++ scudo::Chunk::Origin::Memalign, PageSize);
++ reportAllocation(Ptr, scudo::roundUp(size, PageSize));
++
++ return scudo::setErrnoOnNull(Ptr);
+ }
+
+ INTERFACE WEAK void *SCUDO_PREFIX(realloc)(void *ptr, size_t size) {
+- if (!ptr)
+- return scudo::setErrnoOnNull(SCUDO_ALLOCATOR.allocate(
+- size, scudo::Chunk::Origin::Malloc, SCUDO_MALLOC_ALIGNMENT));
++ if (!ptr) {
++ void *Ptr = SCUDO_ALLOCATOR.allocate(size, scudo::Chunk::Origin::Malloc,
++ SCUDO_MALLOC_ALIGNMENT);
++ reportAllocation(Ptr, size);
++ return scudo::setErrnoOnNull(Ptr);
++ }
+ if (size == 0) {
++ reportDeallocation(ptr);
+ SCUDO_ALLOCATOR.deallocate(ptr, scudo::Chunk::Origin::Malloc);
+ return nullptr;
+ }
+- return scudo::setErrnoOnNull(
+- SCUDO_ALLOCATOR.reallocate(ptr, size, SCUDO_MALLOC_ALIGNMENT));
++
++ void *NewPtr = SCUDO_ALLOCATOR.reallocate(ptr, size, SCUDO_MALLOC_ALIGNMENT);
++ if (NewPtr != ptr) {
++ reportAllocation(NewPtr, size);
++ reportDeallocation(ptr);
++ }
++
++ return scudo::setErrnoOnNull(NewPtr);
+ }
+
+ INTERFACE WEAK void *SCUDO_PREFIX(valloc)(size_t size) {
+- return scudo::setErrnoOnNull(SCUDO_ALLOCATOR.allocate(
+- size, scudo::Chunk::Origin::Memalign, scudo::getPageSizeCached()));
++ void *Ptr = SCUDO_ALLOCATOR.allocate(size, scudo::Chunk::Origin::Memalign,
++ scudo::getPageSizeCached());
++ reportAllocation(Ptr, size);
++
++ return scudo::setErrnoOnNull(Ptr);
+ }
+
+ INTERFACE WEAK int SCUDO_PREFIX(malloc_iterate)(
+@@ -234,8 +269,12 @@ INTERFACE WEAK void *SCUDO_PREFIX(aligned_alloc)(size_t alignment,
+ }
+ scudo::reportInvalidAlignedAllocAlignment(alignment, size);
+ }
+- return scudo::setErrnoOnNull(
+- SCUDO_ALLOCATOR.allocate(size, scudo::Chunk::Origin::Malloc, alignment));
++
++ void *Ptr =
++ SCUDO_ALLOCATOR.allocate(size, scudo::Chunk::Origin::Malloc, alignment);
++ reportAllocation(Ptr, size);
++
++ return scudo::setErrnoOnNull(Ptr);
+ }
+
+ INTERFACE WEAK int SCUDO_PREFIX(malloc_info)(UNUSED int options, FILE *stream) {
+diff --git a/compiler-rt/lib/scudo/standalone/wrappers_c_bionic.cpp b/compiler-rt/lib/scudo/standalone/wrappers_c_bionic.cpp
+index 1b9fe67d920c..db824e6f7547 100644
+--- a/wrappers_c_bionic.cpp
++++ b/wrappers_c_bionic.cpp
+@@ -12,6 +12,7 @@
+ #if SCUDO_ANDROID && _BIONIC
+
+ #include "allocator_config.h"
++#include "scudo/interface.h"
+ #include "wrappers_c.h"
+ #include "wrappers_c_checks.h"
+
+diff --git a/compiler-rt/lib/scudo/standalone/wrappers_cpp.cpp b/compiler-rt/lib/scudo/standalone/wrappers_cpp.cpp
+index 374e36d72b3d..9ea2aaed1e78 100644
+--- a/wrappers_cpp.cpp
++++ b/wrappers_cpp.cpp
+@@ -12,6 +12,7 @@
+ #if !SCUDO_ANDROID || !_BIONIC
+
+ #include "allocator_config.h"
++#include "scudo/interface.h"
+ #include "wrappers_c.h"
+
+ #include <stdint.h>
+@@ -21,86 +22,124 @@ struct nothrow_t {};
+ enum class align_val_t : size_t {};
+ } // namespace std
+
++static void reportAllocation(void *ptr, size_t size) {
++ if (__scudo_allocate_hook && ptr)
++ __scudo_allocate_hook(ptr, size);
++}
++
++static void reportDeallocation(void *ptr) {
++ if (__scudo_deallocate_hook)
++ __scudo_deallocate_hook(ptr);
++}
++
+ INTERFACE WEAK void *operator new(size_t size) {
+- return Allocator.allocate(size, scudo::Chunk::Origin::New);
++ void *Ptr = Allocator.allocate(size, scudo::Chunk::Origin::New);
++ reportAllocation(Ptr, size);
++ return Ptr;
+ }
+ INTERFACE WEAK void *operator new[](size_t size) {
+- return Allocator.allocate(size, scudo::Chunk::Origin::NewArray);
++ void *Ptr = Allocator.allocate(size, scudo::Chunk::Origin::NewArray);
++ reportAllocation(Ptr, size);
++ return Ptr;
+ }
+ INTERFACE WEAK void *operator new(size_t size,
+ std::nothrow_t const &) NOEXCEPT {
+- return Allocator.allocate(size, scudo::Chunk::Origin::New);
++ void *Ptr = Allocator.allocate(size, scudo::Chunk::Origin::New);
++ reportAllocation(Ptr, size);
++ return Ptr;
+ }
+ INTERFACE WEAK void *operator new[](size_t size,
+ std::nothrow_t const &) NOEXCEPT {
+- return Allocator.allocate(size, scudo::Chunk::Origin::NewArray);
++ void *Ptr = Allocator.allocate(size, scudo::Chunk::Origin::NewArray);
++ reportAllocation(Ptr, size);
++ return Ptr;
+ }
+ INTERFACE WEAK void *operator new(size_t size, std::align_val_t align) {
+- return Allocator.allocate(size, scudo::Chunk::Origin::New,
+- static_cast<scudo::uptr>(align));
++ void *Ptr = Allocator.allocate(size, scudo::Chunk::Origin::New,
++ static_cast<scudo::uptr>(align));
++ reportAllocation(Ptr, size);
++ return Ptr;
+ }
+ INTERFACE WEAK void *operator new[](size_t size, std::align_val_t align) {
+- return Allocator.allocate(size, scudo::Chunk::Origin::NewArray,
+- static_cast<scudo::uptr>(align));
++ void *Ptr = Allocator.allocate(size, scudo::Chunk::Origin::NewArray,
++ static_cast<scudo::uptr>(align));
++ reportAllocation(Ptr, size);
++ return Ptr;
+ }
+ INTERFACE WEAK void *operator new(size_t size, std::align_val_t align,
+ std::nothrow_t const &) NOEXCEPT {
+- return Allocator.allocate(size, scudo::Chunk::Origin::New,
+- static_cast<scudo::uptr>(align));
++ void *Ptr = Allocator.allocate(size, scudo::Chunk::Origin::New,
++ static_cast<scudo::uptr>(align));
++ reportAllocation(Ptr, size);
++ return Ptr;
+ }
+ INTERFACE WEAK void *operator new[](size_t size, std::align_val_t align,
+ std::nothrow_t const &) NOEXCEPT {
+- return Allocator.allocate(size, scudo::Chunk::Origin::NewArray,
+- static_cast<scudo::uptr>(align));
++ void *Ptr = Allocator.allocate(size, scudo::Chunk::Origin::NewArray,
++ static_cast<scudo::uptr>(align));
++ reportAllocation(Ptr, size);
++ return Ptr;
+ }
+
+ INTERFACE WEAK void operator delete(void *ptr) NOEXCEPT {
++ reportDeallocation(ptr);
+ Allocator.deallocate(ptr, scudo::Chunk::Origin::New);
+ }
+ INTERFACE WEAK void operator delete[](void *ptr) NOEXCEPT {
++ reportDeallocation(ptr);
+ Allocator.deallocate(ptr, scudo::Chunk::Origin::NewArray);
+ }
+ INTERFACE WEAK void operator delete(void *ptr,
+ std::nothrow_t const &) NOEXCEPT {
++ reportDeallocation(ptr);
+ Allocator.deallocate(ptr, scudo::Chunk::Origin::New);
+ }
+ INTERFACE WEAK void operator delete[](void *ptr,
+ std::nothrow_t const &) NOEXCEPT {
++ reportDeallocation(ptr);
+ Allocator.deallocate(ptr, scudo::Chunk::Origin::NewArray);
+ }
+ INTERFACE WEAK void operator delete(void *ptr, size_t size) NOEXCEPT {
++ reportDeallocation(ptr);
+ Allocator.deallocate(ptr, scudo::Chunk::Origin::New, size);
+ }
+ INTERFACE WEAK void operator delete[](void *ptr, size_t size) NOEXCEPT {
++ reportDeallocation(ptr);
+ Allocator.deallocate(ptr, scudo::Chunk::Origin::NewArray, size);
+ }
+ INTERFACE WEAK void operator delete(void *ptr,
+ std::align_val_t align) NOEXCEPT {
++ reportDeallocation(ptr);
+ Allocator.deallocate(ptr, scudo::Chunk::Origin::New, 0,
+ static_cast<scudo::uptr>(align));
+ }
+ INTERFACE WEAK void operator delete[](void *ptr,
+ std::align_val_t align) NOEXCEPT {
++ reportDeallocation(ptr);
+ Allocator.deallocate(ptr, scudo::Chunk::Origin::NewArray, 0,
+ static_cast<scudo::uptr>(align));
+ }
+ INTERFACE WEAK void operator delete(void *ptr, std::align_val_t align,
+ std::nothrow_t const &) NOEXCEPT {
++ reportDeallocation(ptr);
+ Allocator.deallocate(ptr, scudo::Chunk::Origin::New, 0,
+ static_cast<scudo::uptr>(align));
+ }
+ INTERFACE WEAK void operator delete[](void *ptr, std::align_val_t align,
+ std::nothrow_t const &) NOEXCEPT {
++ reportDeallocation(ptr);
+ Allocator.deallocate(ptr, scudo::Chunk::Origin::NewArray, 0,
+ static_cast<scudo::uptr>(align));
+ }
+ INTERFACE WEAK void operator delete(void *ptr, size_t size,
+ std::align_val_t align) NOEXCEPT {
++ reportDeallocation(ptr);
+ Allocator.deallocate(ptr, scudo::Chunk::Origin::New, size,
+ static_cast<scudo::uptr>(align));
+ }
+ INTERFACE WEAK void operator delete[](void *ptr, size_t size,
+ std::align_val_t align) NOEXCEPT {
++ reportDeallocation(ptr);
+ Allocator.deallocate(ptr, scudo::Chunk::Origin::NewArray, size,
+ static_cast<scudo::uptr>(align));
+ }
+--
+2.42.0
+
diff --git a/main/scudo-malloc/APKBUILD b/main/scudo-malloc/APKBUILD
new file mode 100644
index 00000000000..0685090c0de
--- /dev/null
+++ b/main/scudo-malloc/APKBUILD
@@ -0,0 +1,52 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=scudo-malloc
+# tied to llvm version
+pkgver=17.0.6
+pkgrel=0
+pkgdesc="Standalone scudo malloc from compiler-rt"
+url="https://llvm.org"
+arch="all"
+license="Apache-2.0 WITH LLVM-exception"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="linux-headers"
+checkdepends="gtest-dev"
+subpackages="$pkgname-static $pkgname-dev"
+source="https://github.com/llvm/llvm-project/releases/download/llvmorg-${pkgver//_/-}/compiler-rt-${pkgver//_/}.src.tar.xz
+ 0001-Add-makefile.patch
+ 0001-scudo-Detach-the-hooks-from-Scudo-s-internal-impleme.patch
+ "
+builddir="$srcdir/compiler-rt-${pkgver//_/}.src/lib/scudo/standalone"
+
+build() {
+ local cflags_crc32=
+ unset CXXFLAGS
+ case "$CARCH" in
+ aarch64)
+ # this has broken emulation in aarch64 qemu (incl qemu-user),
+ # which causes it to abort instantly
+ CXXFLAGS="-DSCUDO_DISABLE_TBI"
+ cflags_crc32="-march=armv8-a+crc"
+ ;;
+ x86*) cflags_crc32="-mcrc32"
+ ;;
+ esac
+
+ msg "building libscudo"
+ make CXXFLAGS="$CXXFLAGS" CXXFLAGS_crc32="$cflags_crc32" TESTS="$(want_check && echo yes || echo no)"
+}
+
+check() {
+ make test
+}
+
+package() {
+ install -Dm755 libscudo.so -t "$pkgdir"/usr/lib/
+ install -Dm644 libscudo.a -t "$pkgdir"/usr/lib/
+ install -Dm644 include/scudo/interface.h -t "$pkgdir"/usr/include/scudo/
+}
+
+sha512sums="
+56dc9d304dd4ba8d28179077dd99ca7c820ce26dbc70d33b2ba41769928adc900f7618d3efef756b2fc92e322d2f25dba49be966d6583d2d8f1fce9283a9cdf7 compiler-rt-17.0.6.src.tar.xz
+1102a512adde2ef31aafa6011a4293d5fa361aa920f88ac20599aab84711e973315e6f6719631be11007aea869ae700e34ed57c7dc7724e8aacbc5b493632849 0001-Add-makefile.patch
+366aff393f2e4d0798e28e504f1d06d7a9fd56f3e4093e3057129a69a2ec9f0acbb789138ab52a006eab4f1f2008970fe283218c75f562076475f913e307e963 0001-scudo-Detach-the-hooks-from-Scudo-s-internal-impleme.patch
+"
diff --git a/main/seabios/APKBUILD b/main/seabios/APKBUILD
index 5804609ef40..32aac7025ab 100644
--- a/main/seabios/APKBUILD
+++ b/main/seabios/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=seabios
-pkgver=1.16.0
+pkgver=1.16.2
pkgrel=0
pkgdesc="Open-source legacy BIOS implementation"
url="https://seabios.org/SeaBIOS"
@@ -24,6 +24,7 @@ source="https://www.seabios.org/downloads/seabios-$pkgver.tar.gz
config.vga.virtio
config.vga.vmware
"
+options="!check"
_debug_level=1
_build_bios() {
@@ -95,7 +96,7 @@ _seavgabios() {
}
sha512sums="
-9daefcfb1c9edda4462a4b080c9bac552154d577ae19703a914928e43005e7a52edd86869c6507e94a7f0c61ce8b3e6f5dea38cd5146628cb138a130947c522f seabios-1.16.0.tar.gz
+46786f0dd50cc533610adab268313bf66ebf0ad16cd6919c29f8a80e8f908e641206e2b1559e8722e2e780ec817917dcdb6781d6ecd402287228db4038003b7a seabios-1.16.2.tar.gz
cb8d74650e3b7136cfb62cd63e4bb5db16664dc6207cff034e17f0ae89b21b350994d375ba40a16037951a5c6d924cf517afa5eae1365b279478216e9a64a0c7 0001-Workaround-for-a-win8.1-32-S4-resume-bug.patch
56d0120bb84dc9dad863438d5651d220ca8d84e272427b1d5e7cd143b69d7ccde6d2dd9b950062fa81b5892fb4afb7ab3cfad3a461b696c600770b243622af42 0002-reserve-more-memory-on-fseg.patch
dc77f693e2426a8a9b084f22d607d9bf6dfd0776cb86373a55d6e02f154f546b6fd616bb981783e914be51eb843311652a90b111fb573e32b3a8207d66aea218 config.coreboot
diff --git a/main/secureboot-hook/APKBUILD b/main/secureboot-hook/APKBUILD
index b5cc304b039..976f359888c 100644
--- a/main/secureboot-hook/APKBUILD
+++ b/main/secureboot-hook/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=secureboot-hook
-pkgver=0.1
-pkgrel=3
+pkgver=0.2
+pkgrel=1
pkgdesc="A kernel hook for generating signed UEFI Unified Kernel Image"
url="https://gitlab.alpinelinux.org/alpine/aports"
arch="noarch !armhf !s390x !ppc64le !mips !mips64" # limited by sbsigntool
@@ -23,6 +23,6 @@ package() {
}
sha512sums="
-10ef8d0a1fa7f3d323f69b1321fea02add512b40fc97b05b51f507544567bd6518816efaa46d2b50876c71d2e13acdcc25f92271b3f668d2be5e4e534ac4651c secureboot.hook
-88fd68ab53388517232abae098236feea44f7cffa0e72befb4112def457f7ef6b269e6003f02195c8dcb98414620de65a30a895abd4d29f221a4622180c47db0 secureboot.conf
+8cf0ea83f32f7cc546f2235dcf0258ada36cf738c5738d6ac31b935b158ac40de51d53784c310810be0f8f6ce3947d9e09d781eab716f6cc303948d47384f6a8 secureboot.hook
+0777b1ec63d7d21a2144737fb913a52b8deedadbec69b7450799c228950adf9213d5d40e52617841dbae3bf4451f37a18f833e94860fab2c7779779b5fa9f66d secureboot.conf
"
diff --git a/main/secureboot-hook/secureboot.conf b/main/secureboot-hook/secureboot.conf
index 122184928e0..39118c9e5a1 100644
--- a/main/secureboot-hook/secureboot.conf
+++ b/main/secureboot-hook/secureboot.conf
@@ -6,7 +6,7 @@
# stripped and newlines replaced with spaces).
#
# It should *not* contain an initrd= parameter! Example of a valid cmdline:
-# root=UUID=<uuid-of-your-root-fs> modules=ext4
+# root=UUID=<uuid-of-your-root-partition> modules=ext4
#
# Hook will be inactive until you set this parameter.
cmdline=
@@ -40,3 +40,12 @@ cmdline=
# Whether to backup old signed UEFI image (appends ".bak" to the file name).
#backup_old=yes
+
+# Kernel flavors to skip this hook for (e.g. "edge virt"). If empty, it runs
+# for all installed flavors.
+#skip_flavors=
+
+# Absolute path to the EFI Stub file to use. It can contain placeholders:
+# '{march}' will be replaced with the machine's architecture (e.g. "aa64",
+# "x64").
+#efistub_file="/usr/lib/gummiboot/linux{march}.efi.stub"
diff --git a/main/secureboot-hook/secureboot.hook b/main/secureboot-hook/secureboot.hook
index c70fb13b76b..39b778d6663 100644
--- a/main/secureboot-hook/secureboot.hook
+++ b/main/secureboot-hook/secureboot.hook
@@ -15,6 +15,8 @@ splash_image='/dev/null'
output_dir='/boot/efi/Alpine'
output_name='linux-{flavor}.efi'
backup_old=yes
+skip_flavors=
+efistub_file='/usr/lib/gummiboot/linux{march}.efi.stub'
die() {
printf "$HOOK_NAME: %s\n" "$2" >&2
@@ -30,12 +32,24 @@ fi
readonly FLAVOR=$1
readonly NEW_VERSION=$2
readonly OLD_VERSION=${3:-}
+case "$(cat /etc/apk/arch)" in
+ aarch64) readonly MARCH="aa64";;
+ arm*) readonly MARCH="arm";;
+ riscv64) readonly MARCH="riscv64";;
+ x86) readonly MARCH="ia32";;
+ x86_64) readonly MARCH="x64";;
+esac
# Hook triggered for the kernel removal, nothing to do here.
[ "$NEW_VERSION" ] || exit 0
. /etc/kernel-hooks.d/secureboot.conf
+[ "$skip_flavors" ] && for flavor in $skip_flavors; do
+ [ "$flavor" = "$FLAVOR" ] \
+ && die 0 "skipping UEFI image creation for $FLAVOR kernel"
+done
+
[ "$cmdline" ] \
|| die 0 "cmdline is not specified in /etc/kernel-hooks.d/$HOOK_NAME.conf, skipping hook!"
@@ -51,6 +65,7 @@ vmlinuz="/boot/vmlinuz-$FLAVOR"
output_name=$(echo "$output_name" \
| sed "s/{flavor}/$FLAVOR/; s/{version}/$NEW_VERSION/")
output="$output_dir/$output_name"
+efistub_file=$(echo "$efistub_file" | sed "s/{march}/$MARCH/")
[ "$microcode" ] || for path in /boot/intel-ucode.img /boot/amd-ucode.img; do
[ -f "$path" ] && microcode="$path"
@@ -69,6 +84,7 @@ echo "==> $HOOK_NAME: creating UEFI Unified Kernel Image with $vmlinuz"
/usr/bin/efi-mkuki \
-c "$cmdline" \
-s "$splash_image" \
+ -S "$efistub_file" \
-o "$tmpdir"/unsigned.efi \
"$vmlinuz" $microcode "$tmpdir"/initramfs
diff --git a/main/sed/APKBUILD b/main/sed/APKBUILD
index a4f9f5cd9dd..2aca13464a1 100644
--- a/main/sed/APKBUILD
+++ b/main/sed/APKBUILD
@@ -1,23 +1,19 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=sed
-pkgver=4.8
-pkgrel=0
-subpackages="$pkgname-doc"
+pkgver=4.9
+pkgrel=2
pkgdesc="GNU stream editor"
url="https://www.gnu.org/software/sed"
arch="all"
license="GPL-3.0-or-later"
-makedepends="perl"
-checkdepends="diffutils"
install="$pkgname.post-deinstall"
-# GNU's master site seems to be down. use a mirror for now
-#source="https://ftp.gnu.org/pub/gnu/$pkgname/$pkgname-$pkgver.tar.xz
-source="https://ftp.heanet.ie/mirrors/ftp.gnu.org/gnu/sed/sed-$pkgver.tar.xz
- "
-# testsuite fails because busybox provides a /usr/bin/timeout
-options="!check"
+makedepends="perl"
+checkdepends="diffutils coreutils"
+subpackages="$pkgname-doc"
+source="https://ftp.gnu.org/pub/gnu/sed/sed-$pkgver.tar.xz"
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -41,4 +37,6 @@ package() {
rmdir -p "$pkgdir"/usr/lib 2>/dev/null || true
}
-sha512sums="7de25d9bc2981c63321c2223f3fbcab61d7b0df4fcf7d4394b72400b91993e1288d8bf53948ed5fffcf5a98c75265726a68ad4fb98e1d571bf768603a108c1c8 sed-4.8.tar.xz"
+sha512sums="
+36157a4b4a2430cf421b7bd07f1675d680d9f1616be96cf6ad6ee74a9ec0fe695f8d0b1e1f0b008bbb33cc7fcde5e1c456359bbbc63f8aebdd4fedc3982cf6dc sed-4.9.tar.xz
+"
diff --git a/main/sendpage/APKBUILD b/main/sendpage/APKBUILD
index 5ef152f5025..82b8bba14b6 100644
--- a/main/sendpage/APKBUILD
+++ b/main/sendpage/APKBUILD
@@ -2,45 +2,34 @@
pkgname=sendpage
pkgver=1.0.3
_pkgver=1.000003
-pkgrel=5
+pkgrel=9
pkgdesc="SNPP server, client, queueing engine, modem control and TAP system"
-url="http://www.sendpage.org"
+url="https://sourceforge.net/projects/sendpage/"
arch="noarch"
-license="GPL"
+license="GPL-2.0-or-later"
depends="perl-mailtools perl-net-snpp perl-device-serialport
perl-dbi perl-sys-hostname-long perl-test-mockobject"
makedepends="perl-dev"
-install=""
subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$_pkgver.tar.gz"
-
-_builddir="$srcdir"/$pkgname-$_pkgver
-prepare() {
- local i
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
-}
+source="https://downloads.sourceforge.net/sourceforge/sendpage/sendpage-$_pkgver.tar.gz"
+builddir="$srcdir/sendpage-$_pkgver"
+options="!check"
build() {
- cd "$_builddir"
perl ./Makefile.PL \
PREFIX="/usr" \
- INSTALLSITELIB="/usr/lib/perl5/vendor_perl" \
- || return 1
- make || return 1
+ INSTALLSITELIB="/usr/lib/perl5/vendor_perl"
+ make
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
# Remove useless folder, since it has nothing of value in it
rm -r "$pkgdir"/usr/local
# Prevent perl file collisions
find "$pkgdir" -name perllocal.pod -delete
}
-sha512sums="d2ebf5332529baca94ab6de91556600a881d99991355915cfd373f658a0e8ba5d8322518f4ec39351f21f3e561c2c32d784159bc856969c05a306f1754767235 sendpage-1.000003.tar.gz"
+sha512sums="
+d2ebf5332529baca94ab6de91556600a881d99991355915cfd373f658a0e8ba5d8322518f4ec39351f21f3e561c2c32d784159bc856969c05a306f1754767235 sendpage-1.000003.tar.gz
+"
diff --git a/main/ser2net/APKBUILD b/main/ser2net/APKBUILD
index 419ce853472..3e0ad3929b4 100644
--- a/main/ser2net/APKBUILD
+++ b/main/ser2net/APKBUILD
@@ -2,24 +2,25 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=ser2net
pkgver=3.5.1
-pkgrel=0
+pkgrel=4
pkgdesc="A proxy that allows telnet/tcp connections to be made to serial ports"
-url="https://sourceforge.net/projects/ser2net"
+url="https://sourceforge.net/projects/ser2net/"
arch="all"
-license="GPL"
-depends=""
-depends_dev=""
+license="LGPL-2.1-only AND GPL-2.0-only"
makedepends="$depends_dev linux-headers"
-install=""
subpackages="$pkgname-doc $pkgname-openrc"
-source="https://sourceforge.net/projects/ser2net/files/ser2net/$pkgname-$pkgver.tar.gz
+source="https://sourceforge.net/projects/ser2net/files/ser2net/ser2net-$pkgver.tar.gz
$pkgname.confd
$pkgname.initd
"
-builddir="$srcdir/$pkgname-$pkgver"
+options="!check"
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -32,7 +33,6 @@ build() {
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
install -D -m755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
install -D -m644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
diff --git a/main/serf/APKBUILD b/main/serf/APKBUILD
index dde7af7824c..2c3bf2f5f66 100644
--- a/main/serf/APKBUILD
+++ b/main/serf/APKBUILD
@@ -1,20 +1,17 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=serf
-pkgver=1.3.9
-pkgrel=7
+pkgver=1.3.10
+pkgrel=0
pkgdesc="High-Performance Asynchronous HTTP Client Library"
-url="http://serf.apache.org/"
+url="https://serf.apache.org/"
arch="all"
license="Apache-2.0"
-makedepends="apr-util-dev apr-dev openssl1.1-compat-dev zlib-dev scons chrpath"
+makedepends="apr-util-dev apr-dev openssl-dev>3 zlib-dev scons chrpath"
subpackages="$pkgname-dev"
-source="https://archive.apache.org/dist/serf/serf-$pkgver.tar.bz2
- scons-py3.patch
- "
+source="https://archive.apache.org/dist/serf/serf-$pkgver.tar.bz2"
+options="!check"
build() {
- ln -s /usr/bin/python3 python
- export PATH="$PATH:."
scons CFLAGS="$CFLAGS" LINKFLAGS="$LDFLAGS" PREFIX=/usr
}
@@ -23,5 +20,6 @@ package() {
chrpath -d "$pkgdir"/usr/lib/libserf-1.so*
}
-sha512sums="9f5418d991840a08d293d1ecba70cd9534a207696d002f22dbe62354e7b005955112a0d144a76c89c7f7ad3b4c882e54974441fafa0c09c4aa25c49c021ca75d serf-1.3.9.tar.bz2
-61547b360d92c29569d60c1e137f009c214e95cffd2edd20a7374da5b659c258d34759252d6ad6958eb7da0aa58fbb374153ee92323f0b84dc4b350f2ede17a1 scons-py3.patch"
+sha512sums="
+19165274d35c694935cda33f99ef92a7663a5d9c540fb7fd6792aa0efe39941b2fa87ff8b61afd060c6676baec634fd33dc2e9d34ecbee45ed99dfaed077802c serf-1.3.10.tar.bz2
+"
diff --git a/main/serf/scons-py3.patch b/main/serf/scons-py3.patch
deleted file mode 100644
index 144f5e39eae..00000000000
--- a/main/serf/scons-py3.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- serf-1.3.9/SConstruct.orig 2019-07-26 17:49:30.910189251 +0000
-+++ serf-1.3.9/SConstruct 2019-07-26 17:49:54.073821735 +0000
-@@ -163,9 +163,9 @@
- suffix='.def', src_suffix='.h')
- })
-
--match = re.search('SERF_MAJOR_VERSION ([0-9]+).*'
-- 'SERF_MINOR_VERSION ([0-9]+).*'
-- 'SERF_PATCH_VERSION ([0-9]+)',
-+match = re.search(b'SERF_MAJOR_VERSION ([0-9]+).*'
-+ b'SERF_MINOR_VERSION ([0-9]+).*'
-+ b'SERF_PATCH_VERSION ([0-9]+)',
- env.File('serf.h').get_contents(),
- re.DOTALL)
- MAJOR, MINOR, PATCH = [int(x) for x in match.groups()]
-@@ -183,7 +183,7 @@
-
- unknown = opts.UnknownVariables()
- if unknown:
-- print 'Warning: Used unknown variables:', ', '.join(unknown.keys())
-+ print ('Warning: Used unknown variables:', ', '.join(unknown.keys()))
-
- apr = str(env['APR'])
- apu = str(env['APU'])
diff --git a/main/setup-box/APKBUILD b/main/setup-box/APKBUILD
index 678a14984fd..e4a17bfdbcf 100644
--- a/main/setup-box/APKBUILD
+++ b/main/setup-box/APKBUILD
@@ -2,47 +2,28 @@
# Maintainer: Alan Lacerda <alacerda@alpinelinux.org>
pkgname=setup-box
pkgver=1.0.1
-pkgrel=0
+pkgrel=2
pkgdesc="A tool to setup a variety of Alpine Linux Environments"
-url="https://git.alpinelinux.org/cgit/alacerda/setup-box/"
+url="https://git-old.alpinelinux.org/user/alacerda/setup-box/"
arch="noarch"
license="MIT"
depends="jq"
-depends_dev=""
-makedepends="$depends_dev"
-install=""
subpackages="$pkgname-doc"
-source="https://dev.alpinelinux.org/archive/$pkgname/$pkgname-$pkgver.tar.bz2"
-
-_builddir="$srcdir/$pkgname-$pkgver"
-prepare() {
- local i
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
-}
-
-doc () {
- mkdir -p "$subpkgdir"/usr/share/man/man1 || return 1
- mv "$_builddir"/usr/share/man/setup-box.1.gz "$subpkgdir"/usr/share/man/man1/ || return 1
-}
+source="https://dev.alpinelinux.org/archive/setup-box/setup-box-$pkgver.tar.bz2"
+options="!check"
build() {
- cd "$_builddir"
+ sed -i \
+ -e 's:@CONFIG_DIR@:/etc/setup-box:g' \
+ -e 's:@JSON_DIR@:/etc/setup-box/json:g' \
+ -e 's:@VERSION@:v$pkgver:g' \
+ setup-box
}
package() {
- cd "$_builddir"
- mkdir -p "$pkgdir"/etc/setup-box/json
- mkdir "$pkgdir"/sbin
- install -m 755 setup-box "$pkgdir"/sbin/$pkgname
- cp json/* "$pkgdir"/etc/setup-box/json
- sed -e 's:@CONFIG_DIR@:/etc/setup-box:g' -i "$pkgdir"/sbin/$pkgname
- sed -e 's:@JSON_DIR@:/etc/setup-box/json:g' -i "$pkgdir"/sbin/$pkgname
- sed -e 's:@VERSION@:v$pkgver:g' -i "$pkgdir"/sbin/$pkgname
+ install -Dm755 setup-box -t "$pkgdir"/sbin
+ install -Dm644 json/* -t "$pkgdir"/etc/setup-box/json
+ install -Dm644 usr/share/man/setup-box.1.gz -t "$pkgdir"/usr/share/man/man1
}
sha512sums="22891037b4a0ed8a60103959e21b2d99e4bdf0a518419141623373b6a7a1c0160c8bd761ca81637bef069078849d06952817eaef83fd5c426ae9693329c29e48 setup-box-1.0.1.tar.bz2"
diff --git a/main/sfic/APKBUILD b/main/sfic/APKBUILD
index 6e3365ae8a8..972edc4c55a 100644
--- a/main/sfic/APKBUILD
+++ b/main/sfic/APKBUILD
@@ -1,27 +1,18 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=sfic
pkgver=0.1.7
-pkgrel=6
+pkgrel=10
pkgdesc="Small and Simple File Integrity Checker"
-url="http://sfic.sourceforge.net/"
+url="https://sfic.sourceforge.net/"
arch="all"
-license="GPL"
-depends=""
+license="GPL-2.0-or-later"
makedepends="autoconf automake tdb-dev"
-source="https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
+subpackages="$pkgname-doc"
+source="https://downloads.sourceforge.net/sfic/sfic-$pkgver.tar.gz
sfic-0.1.7-signal.patch
limits.patch
automake.patch"
-subpackages="$pkgname-doc"
-
-builddir="$srcdir/$pkgname-$pkgver"
-
-check() {
- cd "$builddir"
- make check
-}
-
prepare() {
default_prepare
sed -i -e 's/^ /\t/' src/Makefile.am
@@ -31,7 +22,6 @@ prepare() {
}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -39,8 +29,11 @@ build() {
make
}
+check() {
+ make check
+}
+
package() {
- cd "$builddir"
make install DESTDIR="$pkgdir"
}
diff --git a/main/shared-mime-info/APKBUILD b/main/shared-mime-info/APKBUILD
index 95bf5750f81..896b5f56695 100644
--- a/main/shared-mime-info/APKBUILD
+++ b/main/shared-mime-info/APKBUILD
@@ -1,9 +1,9 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=shared-mime-info
-pkgver=2.2
+pkgver=2.4
pkgrel=0
pkgdesc="Freedesktop.org Shared MIME Info"
-url="http://freedesktop.org/Software/shared-mime-info"
+url="https://freedesktop.org/Software/shared-mime-info"
arch="all"
license="GPL-2.0-or-later"
makedepends="meson itstool libxml2-utils xmlto libxml2-dev glib-dev"
@@ -16,16 +16,17 @@ build() {
abuild-meson \
-Dupdate-mimedb=false \
. output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
check() {
- meson test --no-rebuild -v -C output
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
+
sha512sums="
-490d96daf4214ab6ac537761b67f3ff4716b95d7ea3fedd2e2ab7b0b02d946acad49790a25efcb5e949551dc4c39ba08911e59f06b198b61dcb1bc44799a2b2e shared-mime-info-2.2.tar.gz
+17b443c2c09a432d09e4c83db956f8c0c3a768cfa9ffb8c87cd2d7c9002b95d010094e2bc64dd35946205a0f8b2d87c4f8f0a1faec86443e2edd502aa8f7cc8f shared-mime-info-2.4.tar.gz
"
diff --git a/main/shared-mime-info/shared-mime-info.trigger b/main/shared-mime-info/shared-mime-info.trigger
index be5371242ae..7b2de5398e1 100644
--- a/main/shared-mime-info/shared-mime-info.trigger
+++ b/main/shared-mime-info/shared-mime-info.trigger
@@ -2,7 +2,7 @@
for i in "$@"; do
if [ -d "$i" ]; then
+ PKGSYSTEM_ENABLE_FSYNC=0 \
update-mime-database "$i" > /dev/null 2>&1
fi
done
-sync
diff --git a/main/sharutils/APKBUILD b/main/sharutils/APKBUILD
index 0418024c3a4..e078a5fafd9 100644
--- a/main/sharutils/APKBUILD
+++ b/main/sharutils/APKBUILD
@@ -1,17 +1,18 @@
# Contributor: A. Wilcox <awilfox@adelielinux.org>
-# Maintainer:
+# Maintainer: Will Sinatra <wpsinatra@gmail.com>
pkgname=sharutils
pkgver=4.15.2
-pkgrel=1
+pkgrel=6
pkgdesc="Utilities for manipulating shell archives"
url="https://www.gnu.org/software/sharutils/"
arch="all"
-license="GPL-3.0+"
+license="GPL-3.0-or-later"
depends="bzip2 xz"
makedepends="gettext-dev texinfo"
checkdepends="diffutils"
subpackages="$pkgname-lang $pkgname-doc"
source="https://ftp.gnu.org/gnu/sharutils/sharutils-$pkgver.tar.xz
+ format-security.patch
gcc-10.patch
"
@@ -41,5 +42,8 @@ package() {
rm "$pkgdir"/usr/lib/charset.alias
}
-sha512sums="80d0b804a0617e11e5c23dc0d59b218bbf93e40aaf5e9a5401a18ef9cb700390aab711e2b2e2f26c8fd5b8ef99a91d3405e01d02cadabcba7639979314e59f8d sharutils-4.15.2.tar.xz
-4b5addb5dd738a3f8ef07fdbfd3dc2b5c31c86062419388249fe324dc64450b5dcb19269b7f47236df1ba926254211c41b8ecfa39f0efe7b537ffd1b2de5bdba gcc-10.patch"
+sha512sums="
+80d0b804a0617e11e5c23dc0d59b218bbf93e40aaf5e9a5401a18ef9cb700390aab711e2b2e2f26c8fd5b8ef99a91d3405e01d02cadabcba7639979314e59f8d sharutils-4.15.2.tar.xz
+51d1cc212d812c7756fe219803e24a57a87de1362f44fdba22568d09b04234899465607ef7caab230bae40ab634971e744b421afedcede229d987616b305c73d format-security.patch
+4b5addb5dd738a3f8ef07fdbfd3dc2b5c31c86062419388249fe324dc64450b5dcb19269b7f47236df1ba926254211c41b8ecfa39f0efe7b537ffd1b2de5bdba gcc-10.patch
+"
diff --git a/main/sharutils/format-security.patch b/main/sharutils/format-security.patch
new file mode 100644
index 00000000000..978b8c35fbf
--- /dev/null
+++ b/main/sharutils/format-security.patch
@@ -0,0 +1,31 @@
+diff --git a/src/shar.c b/src/shar.c
+index 11cbada..2c3251d 100644
+--- a/src/shar.c
++++ b/src/shar.c
+@@ -931,7 +931,7 @@ print_header_stamp (FILE * fp)
+ free (c_dir);
+ }
+ else
+- error (0, errno, _("Cannot get current directory name"));
++ error (0, errno, "%s", _("Cannot get current directory name"));
+ }
+ }
+
+@@ -2154,7 +2154,7 @@ configure_shar (int * argc_p, char *** argv_p)
+ */
+ FILE * fp = freopen ("/dev/null", "w" FOPEN_BINARY, stderr);
+ if (fp != stderr)
+- error (SHAR_EXIT_FAILED, errno,
++ error (SHAR_EXIT_FAILED, errno, "%s",
+ _("reopening stderr to /dev/null"));
+ }
+
+@@ -2225,7 +2225,7 @@ configure_shar (int * argc_p, char *** argv_p)
+ if (HAVE_OPT(QUERY_USER))
+ {
+ if (HAVE_OPT(NET_HEADERS))
+- error (0, 0, _("PLEASE avoid -X shars on Usenet or public networks"));
++ error (0, 0, "%s", _("PLEASE avoid -X shars on Usenet or public networks"));
+
+ fputs ("shar_wish=\n", output);
+ }
diff --git a/main/shorewall-core/APKBUILD b/main/shorewall-core/APKBUILD
index 1728c7b4dbc..d2fc22e79bf 100644
--- a/main/shorewall-core/APKBUILD
+++ b/main/shorewall-core/APKBUILD
@@ -9,7 +9,7 @@ case $pkgver in
esac
_maj_min=${_maj_min_patch%.*}
-pkgrel=0
+pkgrel=1
pkgdesc="Core libraries for Shorewall"
url="https://shorewall.org/"
arch="noarch"
diff --git a/main/shorewall6/APKBUILD b/main/shorewall6/APKBUILD
index 79ff3ef4835..669ad745657 100644
--- a/main/shorewall6/APKBUILD
+++ b/main/shorewall6/APKBUILD
@@ -9,13 +9,13 @@ case $pkgver in
esac
_maj_min=${_maj_min_patch%.*}
-pkgrel=0
+pkgrel=1
pkgdesc="Files for the IPV6 Shorewall Firewall"
url="https://shorewall.org/"
arch="noarch"
license="GPL-2.0-or-later"
options="!check" # No test suite
-depends="shorewall-core perl ip6tables iproute2 perl-socket6"
+depends="shorewall-core perl iproute2 perl-socket6"
# coreutils for install -T
makedepends="coreutils bash"
subpackages="$pkgname-doc $pkgname-openrc"
diff --git a/main/simdjson/APKBUILD b/main/simdjson/APKBUILD
new file mode 100644
index 00000000000..dda766fc152
--- /dev/null
+++ b/main/simdjson/APKBUILD
@@ -0,0 +1,35 @@
+# Contributor: Grigory Kirillov <txgk@bk.ru>
+# Maintainer: Simon Zeni <simon@bl4ckb0ne.ca>
+pkgname=simdjson
+pkgver=3.6.0
+pkgrel=0
+pkgdesc="Parsing gigabytes of JSON per second"
+url="https://simdjson.org"
+arch="all"
+license="Apache-2.0"
+# tests take a very long time to compile and require downloading other JSON parsers
+options="!check"
+makedepends="cmake samurai"
+subpackages="$pkgname-static $pkgname-dev"
+source="https://github.com/simdjson/simdjson/archive/v$pkgver/simdjson-$pkgver.tar.gz"
+
+build() {
+ cmake -B builddir -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DBUILD_SHARED_LIBS=ON
+ cmake -B builddir-static -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=Release
+ cmake --build builddir
+ cmake --build builddir-static
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install builddir
+ DESTDIR="$pkgdir" cmake --install builddir-static
+}
+
+sha512sums="
+9e99093ac9f2d6490684210c2e8d80e6817e5b9fb391cd30494c0536cd3a3220623eeeac4af7aff604d73f558c2dffa07c8e17d2524f2b9b1904b1e2c91b8c81 simdjson-3.6.0.tar.gz
+"
diff --git a/main/sipcalc/APKBUILD b/main/sipcalc/APKBUILD
index 1e3a0f82ad3..12ba8561eae 100644
--- a/main/sipcalc/APKBUILD
+++ b/main/sipcalc/APKBUILD
@@ -2,26 +2,23 @@
# Maintainer: ScrumpyJack <scrumpyjack@st.ilet.to>
pkgname=sipcalc
pkgver=1.1.6
-pkgrel=1
+pkgrel=4
pkgdesc="Advanced console based ip subnet calculator"
url="https://www.routemeister.net/projects/sipcalc/"
arch="all"
-license="BSD"
+license="BSD-3-Clause"
options="!check" # no tests
subpackages="$pkgname-doc"
source="https://www.routemeister.net/projects/sipcalc/files/sipcalc-$pkgver.tar.gz"
build() {
- cd "$builddir"
./configure
make
}
package() {
- cd "$builddir"
mkdir -p "$pkgdir/usr/bin" "$pkgdir/usr/lib" "$pkgdir/usr/share/man/man1"
make prefix="$pkgdir"/usr MANDIR="$pkgdir"/usr/share/man/man1 install
-
}
sha512sums="
diff --git a/main/sipp/APKBUILD b/main/sipp/APKBUILD
index a10e960a75b..37c2b1660c7 100644
--- a/main/sipp/APKBUILD
+++ b/main/sipp/APKBUILD
@@ -2,37 +2,43 @@
# Contributor: Robert Boisvert <rdboisvert@gmail.com>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=sipp
-pkgver=3.6.0
-pkgrel=2
-pkgdesc="A test tool / traffic generator for the SIP protocol"
+pkgver=3.7.2
+pkgrel=0
+pkgdesc="Test tool / traffic generator for the SIP protocol"
url="https://github.com/SIPp/sipp"
arch="all"
license="GPL-2.0-or-later"
-depends=""
-depends_dev=""
-makedepends="linux-headers autoconf automake openssl1.1-compat-dev libpcap-dev ncurses-dev lksctp-tools-dev"
-install=""
-subpackages=""
+makedepends="
+ cmake
+ libpcap-dev
+ linux-headers
+ lksctp-tools-dev
+ ncurses-dev
+ openssl-dev>3
+ samurai
+ "
source="https://github.com/SIPp/sipp/releases/download/v$pkgver/sipp-$pkgver.tar.gz
+ libtinfo.patch
"
-
-builddir="$srcdir"/$pkgname-$pkgver
+options="!check" # tests have no direct target
build() {
- cd "$builddir"
- CFLAGS="$CFLAGS -D_GNU_SOURCE" \
- ./configure --prefix=/usr \
- --with-openssl \
- --with-pcap \
- --with-sctp
- make
+ cmake -B build -G Ninja -Wno-dev \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=None \
+ -DUSE_PCAP=1 \
+ -DUSE_SSL=1 \
+ -DUSE_SCTP=1
+
+ cmake --build build
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
- mkdir -p "$pkgdir"/usr/share/"$pkgname"
- install -m444 -D pcap/* "$pkgdir"/usr/share/"$pkgname"/
+ DESTDIR="$pkgdir" cmake --install build
+ install -m444 -D pcap/* -t "$pkgdir"/usr/share/"$pkgname"/
}
-sha512sums="eecbc18a18558a3fbc4f7c841d1fc8bd5be4b0c5d2bb363a12faf730f3c6a0773a24f07dbf062e68baf1a93b21686fa09258d0e08b45b4f941eb5d573bb25c12 sipp-3.6.0.tar.gz"
+sha512sums="
+5ccd73efe0dd9b9e2788a61c0a423726e3bb7002d1266931838bc18307c975f7cd15b795c1aedb900a7f97a929df4b085b0875914db6e96984bc3bd3952d390b sipp-3.7.2.tar.gz
+92b62f605b92a81ed56ba3f992d126ee70b06f3b08d5c30a3a6614f0844d6ebf1d9e0094ac93dd8c80271414ff414b3efb22117ab2c8eb5ff76fc49327a1dea0 libtinfo.patch
+"
diff --git a/main/sipp/libtinfo.patch b/main/sipp/libtinfo.patch
new file mode 100644
index 00000000000..27f211aabed
--- /dev/null
+++ b/main/sipp/libtinfo.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 9ef0cf9..1ac7131 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -180,7 +180,7 @@ endif()
+ if(CURSES_LIBRARY)
+ target_link_libraries(sipp dl ${CURSES_LIBRARY} pthread)
+ target_link_libraries(sipp_unittest dl ${CURSES_LIBRARY} pthread)
+- if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
++ if(false)
+ if(TINFO_LIBRARY)
+ target_link_libraries(sipp ${TINFO_LIBRARY})
+ target_link_libraries(sipp_unittest ${TINFO_LIBRARY})
diff --git a/main/sipsak/APKBUILD b/main/sipsak/APKBUILD
index d2423262a8a..0d5647e2bc3 100644
--- a/main/sipsak/APKBUILD
+++ b/main/sipsak/APKBUILD
@@ -1,13 +1,13 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=sipsak
-pkgver=0.9.7
-pkgrel=2
+pkgver=0.9.8.1
+pkgrel=1
pkgdesc="SIP swiss army knife"
url="https://github.com/nils-ohlmeier/sipsak"
arch="all"
license="GPL-2.0-or-later"
-makedepends="openssl1.1-compat-dev c-ares-dev autoconf automake"
+makedepends="openssl-dev>3 c-ares-dev autoconf automake"
subpackages="$pkgname-dbg $pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/nils-ohlmeier/sipsak/archive/$pkgver.tar.gz
musl-fix-strcasestr.patch
@@ -42,6 +42,8 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="088da5b5b81e7ff89bdc920dc8fdfc559ba36d599de9ba5ca22c35f2bea24f0c7c76e10125baa8ae517c3f03b1b936adacde4e236be8a13797651adc624f14a7 sipsak-0.9.7.tar.gz
+sha512sums="
+b018a463e028b1e6cb31507957b7d2c1836341e2456d0df366edc12937d788ac548da6434d310917c9e32e12c02b7ae1462443c2461152ee3a3ee9cbf35d4618 sipsak-0.9.8.1.tar.gz
95fb13a5b3bc108544e6ac3a0c5e7a00890926df02b390c1fdb3e28a3cf4aa7ef3ffafd904cc4665547135fe45b412c4b676ae1c52d133d8deef62f062ac909f musl-fix-strcasestr.patch
-7bdad66145b37ca1039f01e4b523b1555bda8fc387e6b4745d53e89473c0b23d675b403b83ff9b59a75002fd26345699d71720e4c15fd419a56122dbc68c8682 fix-aaaa-record-segfault.patch"
+7bdad66145b37ca1039f01e4b523b1555bda8fc387e6b4745d53e89473c0b23d675b403b83ff9b59a75002fd26345699d71720e4c15fd419a56122dbc68c8682 fix-aaaa-record-segfault.patch
+"
diff --git a/main/sircbot/APKBUILD b/main/sircbot/APKBUILD
index b7562ed1ac7..5ca68541f1d 100644
--- a/main/sircbot/APKBUILD
+++ b/main/sircbot/APKBUILD
@@ -2,9 +2,9 @@
_luaversions="5.1 5.2 5.3 5.4"
pkgname=sircbot
pkgver=0.4
-pkgrel=3
+pkgrel=6
pkgdesc="Minimalistic IRC bot"
-url="https://git.alpinelinux.org/cgit/sircbot/"
+url="https://git-old.alpinelinux.org/hosted/sircbot/"
arch="all"
license="GPL-2.0-only"
pkgusers="sircbot"
@@ -20,6 +20,7 @@ source="https://dev.alpinelinux.org/archive/sircbot/sircbot-$pkgver.tar.xz
sircbot.initd
sircbot.confd
"
+options="!check"
build() {
make
@@ -57,7 +58,6 @@ _split() {
done
}
-
for _v in $_luaversions; do
eval "split_${_v/./_}() { _split $_v; }"
done
diff --git a/main/skalibs/APKBUILD b/main/skalibs/APKBUILD
index 1c085cd4f7a..397592a33cc 100644
--- a/main/skalibs/APKBUILD
+++ b/main/skalibs/APKBUILD
@@ -1,16 +1,17 @@
-# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
# Contributor: John Regan <john@jrjrtech.com>
+# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
pkgname=skalibs
# NOTE: If you're upgrading to a new version that fixes some security
-# vulnerability, rebuild the following aports:
+# vulnerability in the APIs used by utmps (mainly timed ipcs),
+# rebuild the following aports:
# - busybox
# - mingetty
# - openssh
# - util-linux
-pkgver=2.12.0.0
+pkgver=2.14.1.1
pkgrel=0
pkgdesc="Set of general-purpose C programming libraries for skarnet.org software."
-url="https://skarnet.org/software/skalibs/"
+url=https://skarnet.org/software/skalibs/
arch="all"
license="ISC"
options="!check"
@@ -46,6 +47,6 @@ dev() {
}
sha512sums="
-7a431b47bb5be1d6f647da65026c7d3fa9c836b6a5e9984ae8b46dda9263a738ad1f26d76b6fe12b750f8338e9506fc8472f467c6d7d5b8369cadd602d9131bf skalibs-2.12.0.0.tar.gz
+01b3da7614ee626f838b62aff6fa2d4677ab5c5dfffcb3145232db9ac0b5bf70c063f4d83abdee809139fee721c75550eb997e2c3e265417b9493c98886236f9 skalibs-2.14.1.1.tar.gz
5771f0e72e7e7e9a45cafdf2e4508938a29ff9474845c897e383004b031ad142dee1b65d83a9a0168696782163cb4a32f82db4d7360413b433e68282cd4cc487 skalibs.pc
"
diff --git a/main/skytraq-datalogger/APKBUILD b/main/skytraq-datalogger/APKBUILD
index 414f2ac0c00..16563746b37 100644
--- a/main/skytraq-datalogger/APKBUILD
+++ b/main/skytraq-datalogger/APKBUILD
@@ -3,11 +3,11 @@
pkgname=skytraq-datalogger
pkgver=0.5.1
_pkgver=0.5-1
-pkgrel=2
+pkgrel=4
pkgdesc="Configuration and download tool for GPS data loggers based on Skytraq Venus 5 and 6 chipsets"
url="https://code.google.com/p/skytraq-datalogger/"
arch="all"
-license="GPL-2.0"
+license="GPL-2.0-or-later"
depends_dev="curl-dev"
makedepends="$depends_dev"
source="https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/skytraq-datalogger/skytraq-datalogger_$_pkgver.tar.gz
@@ -15,6 +15,7 @@ source="https://storage.googleapis.com/google-code-archive-downloads/v2/code.goo
agps-download.c.patch
"
builddir="$srcdir/$pkgname-$_pkgver"
+options="!check"
build() {
make
diff --git a/main/slang/APKBUILD b/main/slang/APKBUILD
index 31aa07d260a..11e20732bde 100644
--- a/main/slang/APKBUILD
+++ b/main/slang/APKBUILD
@@ -1,16 +1,27 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=slang
-pkgver=2.3.2
-pkgrel=0
+pkgver=2.3.3
+pkgrel=3
pkgdesc="Powerful interpreted language"
url="https://www.jedsoft.org/slang"
arch="all"
license="GPL-2.0-or-later"
-makedepends="ncurses-dev pcre-dev"
-subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
+makedepends="
+ libpng-dev
+ ncurses-dev
+ oniguruma-dev
+ zlib-dev
+ "
+subpackages="
+ $pkgname-static
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-oniguruma
+ $pkgname-png
+ $pkgname-zlib
+ "
source="https://www.jedsoft.org/releases/slang/slang-$pkgver.tar.bz2
disable-rpath.patch
- fix-slarray-32bit.patch
terminfo-in-etc.patch
skip-slsh-process-test.patch
"
@@ -22,7 +33,10 @@ build() {
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
- --localstatedir=/var
+ --localstatedir=/var \
+ --without-pcre \
+ --with-zlib=/usr/lib \
+ --with-zinc=/usr/include
make -j1
}
@@ -34,8 +48,27 @@ package() {
make -j1 DESTDIR="$pkgdir" install-all
}
-sha512sums="35cdfe8af66dac62ee89cca60fa87ddbd02cae63b30d5c0e3786e77b1893c45697ace4ac7e82d9832b8a9ac342560bc35997674846c5022341481013e76f74b5 slang-2.3.2.tar.bz2
-6cc7ee4493131e2c9ec48db1b5f97c5db9288e96c5073507307454dd02437b9076ffe1a4853097a7912fa7f47e694145ac1e7f7b17a29e642a8866af521cd940 disable-rpath.patch
-3a4d7c27734b6d29ce029000275a536744f6127c9bcb9eee168a63666e9b134bf72d3a27e0b6cfb90b968420a7778284b7cf1f1871031f0240f6394392e0b66c fix-slarray-32bit.patch
+oniguruma() {
+ pkgdesc="$pkgdesc (oniguruma module)"
+
+ amove usr/lib/slang/v2/modules/onig-module.so
+}
+
+png() {
+ pkgdesc="$pkgdesc (png module)"
+
+ amove usr/lib/slang/v2/modules/png-module.so
+}
+
+zlib() {
+ pkgdesc="$pkgdesc (zlib module)"
+
+ amove usr/lib/slang/v2/modules/zlib-module.so
+}
+
+sha512sums="
+f882f09e3fcd53427de0f233c9fc3ab15497f2323007be9a084696c8cf810ffe2726cd003149e757df26198b390b9f8c1ff411dc6473513457bd0f94722f8490 slang-2.3.3.tar.bz2
+0cb78c65faade7cb1ec683ba3ae84d7514df7af92a465a6af262979b43ae86bdd9fd289c9680e9158a0b01e2df4ddaa7c547d9707afc3c3b75d798f2225cbc0f disable-rpath.patch
a9fe12d220ec3458932784f1f7d40816cad9664ad5a3e19fe684e8f32eccc67ffc48acfa9852fccbe6741519f2acadbafc4b72817ae70804f93e2d913831d786 terminfo-in-etc.patch
-4a499a61a0abf119a362c46e761a4cd659a0de03f22acd2004a09fce339cde848f114a3a0beca176e3a42beeb8d0d2cd73ba788ccb01330b741afe9d8528164c skip-slsh-process-test.patch"
+4a499a61a0abf119a362c46e761a4cd659a0de03f22acd2004a09fce339cde848f114a3a0beca176e3a42beeb8d0d2cd73ba788ccb01330b741afe9d8528164c skip-slsh-process-test.patch
+"
diff --git a/main/slang/disable-rpath.patch b/main/slang/disable-rpath.patch
index a60e1178b0f..a2715863538 100644
--- a/main/slang/disable-rpath.patch
+++ b/main/slang/disable-rpath.patch
@@ -1,9 +1,11 @@
Upstream: no.
Reason: >>> WARNING: slang*: Redundant /usr/lib in rpath found
+diff --git a/modules/Makefile.in b/modules/Makefile.in
+index 34ac674..84e2b84 100644
--- a/modules/Makefile.in
+++ b/modules/Makefile.in
-@@ -89,7 +89,7 @@
+@@ -89,7 +89,7 @@ DEST_HELPDIR = $(DESTDIR)$(HELP_DIR)
# ---------------------------------------------------------------------------
RPATH = @RPATH@
@@ -12,14 +14,16 @@ Reason: >>> WARNING: slang*: Redundant /usr/lib in rpath found
INCS = $(SLANG_SRCINC)
COMPILE_CMD = $(CC_SHARED) $(INCS)
# ---------------------------------------------------------------------------
---- b/slsh/Makefile.in
+diff --git a/slsh/Makefile.in b/slsh/Makefile.in
+index addd343..8e4cc7b 100644
+--- a/slsh/Makefile.in
+++ b/slsh/Makefile.in
-@@ -77,7 +77,7 @@
+@@ -77,7 +77,7 @@ SLSYSWRAP_LIB = @LIB_SLSYSWRAP@
#----------------------------------------------------------------------------
@SET_MAKE@
SHELL = /bin/sh
--INST_LIBS = $(DEST_LIB_DIR) $(RPATH) $(SLANG_INST_LIB) -lslang $(READLINE_LIB) $(DYNAMIC_LIBS)
-+INST_LIBS = $(DEST_LIB_DIR) $(SLANG_INST_LIB) -lslang $(READLINE_LIB) $(DYNAMIC_LIBS)
+-INST_LIBS = $(DEST_LIB_DIR) $(RPATH) $(SLANG_INST_LIB) -lslang $(LDFLAGS) $(READLINE_LIB) $(DYNAMIC_LIBS)
++INST_LIBS = $(DEST_LIB_DIR) $(SLANG_INST_LIB) -lslang $(LDFLAGS) $(READLINE_LIB) $(DYNAMIC_LIBS)
DEFS = -DSLSH_CONF_DIR='"$(SLSH_CONF_DIR)"' -DSLSH_PATH='"$(SLSH_LIB_DIR)"' \
-DSLSH_CONF_DIR_ENV='$(SLSH_CONF_DIR_ENV)' -DSLSH_LIB_DIR_ENV='$(SLSH_LIB_DIR_ENV)' \
-DSLSH_PATH_ENV='$(SLSH_PATH_ENV)' $(SLSYSWRAP_DEF)
diff --git a/main/slang/fix-slarray-32bit.patch b/main/slang/fix-slarray-32bit.patch
deleted file mode 100644
index b8189c5562c..00000000000
--- a/main/slang/fix-slarray-32bit.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-Upstream: no idea. Patch from upstream mailing list.
-Reason: src/test/array.sl fails on 32bit archs:
-Testing array functions ...Unable to create a multi-dimensional array of the desired size
-./array.sl:166:<top-level>:Invalid Parameter
-URL: http://lists.jedsoft.org/lists/slang-users/2019/0000002.html
-
---- a/src/slarray.c
-+++ b/src/slarray.c
-@@ -369,7 +369,9 @@
- SLindex_Type new_num_elements;
- at->dims[i] = dims[i];
- new_num_elements = dims[i] * num_elements;
-- if (dims[i] && (new_num_elements/dims[i] != num_elements))
-+ if (dims[i]
-+ && ((new_num_elements/dims[i] != num_elements)
-+ || (new_num_elements < 0)))
- {
- throw_size_error (SL_Index_Error);
- free_array (at);
diff --git a/main/smartmontools/APKBUILD b/main/smartmontools/APKBUILD
index 0a50687998c..a4e26186b6f 100644
--- a/main/smartmontools/APKBUILD
+++ b/main/smartmontools/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=smartmontools
-pkgver=7.3
+pkgver=7.4
pkgrel=0
pkgdesc="Control and monitor S.M.A.R.T. enabled hard drives"
url="https://www.smartmontools.org/"
@@ -12,6 +12,10 @@ source="https://downloads.sourceforge.net/sourceforge/smartmontools/smartmontool
smartd.initd
smartd.confd
"
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
./configure \
@@ -34,7 +38,7 @@ package() {
}
sha512sums="
-08afe8b0a6a39e742160cd4e4c03fc7aff7b1ae8681b906360f0932277dc99e361b7606b2373bdf42425cf9453480a5f4344bc040ebc2fa26a03bd52f02a6ac0 smartmontools-7.3.tar.gz
+439fbf8d0e77fbe1d5a9fb100e655a7e47a82382ce8e1a4e942541a4dfbdff3391caa635e8d354d0e87c10ae79cb97aa6d24915f9f193620d763b384baf2e753 smartmontools-7.4.tar.gz
4a2cbdab37cf0d761924854be4a2f2deebed22ca8d8754dee9a5ec44229c608f5fffb19545d2b9c687ab010460acde51d4f5fccd74d6c80dab2b1a7401d59b9f smartd.initd
9088b97fbaac45e677e5ac14bc8a9edb4bd7a924717bb201db92f4a85447bb0e0254e716c8c8e60d4830b96e3221488fc80b30442b2e4a1b57741535aa2c3e7b smartd.confd
"
diff --git a/main/smokeping/APKBUILD b/main/smokeping/APKBUILD
index 7199d774fbb..933d6117b01 100644
--- a/main/smokeping/APKBUILD
+++ b/main/smokeping/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Jeff Bilyk <jbilyk@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=smokeping
-pkgver=2.7.3
-pkgrel=7
+pkgver=2.8.2
+pkgrel=3
pkgdesc="Smokeping network latency monitoring"
pkgusers="smokeping"
pkggroups="smokeping"
@@ -12,8 +12,13 @@ options="!check" # No test suite
source="https://oss.oetiker.ch/smokeping/pub/smokeping-$pkgver.tar.gz
smokeping.initd
musl-lc_numeric-utf8.patch
+ smokeping-config.patch
+ smokeping-silence.patch
+ smokeping-2.8.2-no-3rd-party.patch
+ smokeping-2.8.2-paths.patch
"
depends="
+ font-dejavu
fping
perl
perl-cgi
@@ -38,17 +43,18 @@ depends="
perl-snmp-session
perl-uri
rrdtool
- ttf-dejavu
"
makedepends="
- openssl1.1-compat-dev
+ autoconf
+ automake
+ openssl-dev>3
perl-dev
perl-try-tiny
zlib-dev
"
arch="noarch !riscv64"
license="GPL-2.0-or-later"
-subpackages="$pkgname-doc"
+subpackages="$pkgname-doc $pkgname-openrc"
_vendorlib=/usr/share/perl5/vendor_perl
@@ -84,50 +90,20 @@ package() {
# Next part here cleans up the mess that the Makefile leaves behind...
- mkdir -p "$pkgdir"/$_vendorlib
- mv "$pkgdir"/usr/lib/Smokeping.pm "$pkgdir"/$_vendorlib/
- mv "$pkgdir"/usr/lib/Smokeping "$pkgdir"/$_vendorlib/
-
- # Fix path to config file
- sed -i -e 's#/usr/etc/config#/etc/smokeping/config#' "$pkgdir"/usr/share/webapps/smokeping/smokeping.fcgi.dist
-
# Install cgi in the right spot and fix permissions
- mv "$pkgdir"/usr/share/webapps/smokeping/smokeping.fcgi.dist "$pkgdir"/usr/share/webapps/smokeping/smokeping.cgi
+ mv "$pkgdir"/usr/share/webapps/smokeping/smokeping.fcgi.dist \
+ "$pkgdir"/usr/share/webapps/smokeping/smokeping.cgi
chmod 755 "$pkgdir"/usr/share/webapps/smokeping/smokeping.cgi
- # Fix up some paths within smokeping.cgi
- sed -i -e 's:^use lib:#use lib:' \
- -e 's:/etc/config:/etc/smokeping/config:' \
- -e '1s:.*:#!/usr/bin/perl:' \
- "$pkgdir"/usr/bin/smokeping_cgi
-
- for i in smokeping smokeinfo; do
- sed -e 's:^use lib:#use lib:g' \
- -e 's:etc/config:etc/smokeping/config:' \
- -i "$pkgdir"/usr/bin/$i
- done
-
- sed -e 's#Smokeping::main("$FindBin::Bin/../etc/config")#Smokeping::main("/etc/smokeping/config")#' \
- -i "$pkgdir"/usr/bin/smokeping
+ # Fix path to config
+ sed -e 's:etc/config:etc/smokeping/config:' \
+ -i "$pkgdir"/usr/bin/smokeinfo
sed -e 's:etc/config.dist:etc/smokeping/config:' \
-i "$pkgdir"/usr/bin/tSmoke
- # config
- sed -e '/^imgcache/{s:\(^imgcache[ \t]*=\).*:\1 /var/lib/smokeping/.simg:}' \
- -e '/^imgurl/{s:\(^imgurl[ \t]*=\).*:\1 img:}' \
- -e '/^datadir/{s:\(^datadir[ \t]*=\).*:\1 /var/lib/smokeping:}' \
- -e '/^piddir/{s:\(^piddir[ \t]*=\).*:\1 /var/run/smokeping:}' \
- -e '/^cgiurl/{s#\(^cgiurl[ \t]*=\).*#\1 http://some.place.xyz/perl/smokeping.pl#}' \
- -e '/^smokemail/{s:\(^smokemail[ \t]*=\).*:\1 /etc/smokeping/smokemail:}' \
- -e '/^tmail/{s:\(^tmail[ \t]*=\).*:\1 /etc/smokeping/tmail:}' \
- -e '/^secrets/{s:\(^secrets[ \t]*=\).*:\1 /etc/smokeping/smokeping_secrets:}' \
- -e '/^template/{s:\(^template[ \t]*=\).*:\1 /etc/smokeping/basepage.html:}' \
- -e '/^sendmail/{s:usr/lib:usr/sbin:}' \
- -i "$pkgdir"/etc/smokeping/config
-
# Create softlink for image directory
- ln -s /var/lib/smokeping/.simg/ "$pkgdir"/usr/share/webapps/smokeping/img
+ ln -s /var/lib/smokeping/images/ "$pkgdir"/usr/share/webapps/smokeping/img
sed -e '/^<script/{s:cropper/:/cropper/:}' \
-i "$pkgdir"/etc/smokeping/basepage.html
@@ -139,10 +115,16 @@ package() {
install -d -o smokeping -g smokeping -m755 \
"$pkgdir"/var/lib/smokeping \
- "$pkgdir"/var/lib/smokeping/.simg \
- "$pkgdir"/var/run/smokeping
+ "$pkgdir"/var/lib/smokeping/images \
+ "$pkgdir"/run/smokeping
}
-sha512sums="d46d61539ffdd9cac41391aa813364260f90f84443c328b1c9233ab6ba3a0c157861694614e6c33e18b153f6a6afc0769c5fc7752b3ab52f114d984e53232830 smokeping-2.7.3.tar.gz
-58189cb39bb085022b0c1197ccc59e06412d1cfb62bace79a168a8c63952c1ccc051cddb48c1d9260a2b1246306d90e5c08323e35c21de66fa663e3f98325e02 smokeping.initd
-e6bc389d8edbc000f5ad65848308197b3eb1ddb24bfa9df9c05fa027103952484383b7e021bea86795dceccdcf3f3d51a24c22cae3a68dc5afa30a72b2dbf803 musl-lc_numeric-utf8.patch"
+sha512sums="
+6145d2da9c479b379def750ef97167cf8a7cdc8a68337829b8aee5d4303099b0e88f29c485fa22ddf4ee17e44d66b769a1fae49a414068c647cbc27d4d741a1b smokeping-2.8.2.tar.gz
+a1771417350b7e670877646752abdbaec901d6fb5ae360655dbdca2107b69ae48b1c218811fdaf0bc1ca57ea7c956993a8f095ef83e2f079ccb9d65511930caf smokeping.initd
+e6bc389d8edbc000f5ad65848308197b3eb1ddb24bfa9df9c05fa027103952484383b7e021bea86795dceccdcf3f3d51a24c22cae3a68dc5afa30a72b2dbf803 musl-lc_numeric-utf8.patch
+fc54c97977b043174ca26a475154c9f819a2d4b257d02c92a8850651c943da041c2e10d337d96e154f3c320102671b688ab2d9cac11393e0510d3c2b1a48c401 smokeping-config.patch
+e8dcb91da86b8ff02a264ec3ef564a15492f6d96c2ca9d15fe15dd913c259801c88bdfb03151a557abeea2b775425da9ee23c3e20e478c426c086637ae706763 smokeping-silence.patch
+f35c1f793d5765c7060fffd069fb691213f26048308af9bbb908cd6328080f6b1d155bffe60ff0281eb094dbfc28534b37d2ed955f103c9bac91915207c14c58 smokeping-2.8.2-no-3rd-party.patch
+acfee65f8b0f66521089ffbd000bf34d7e2c8bf0a23d77b1167288f390e651602621179121573bd0a3dc1129fc9a4dd3aa7c1206500ed92c7825f6625960d60a smokeping-2.8.2-paths.patch
+"
diff --git a/main/smokeping/smokeping-2.8.2-no-3rd-party.patch b/main/smokeping/smokeping-2.8.2-no-3rd-party.patch
new file mode 100644
index 00000000000..bd4734cb4e9
--- /dev/null
+++ b/main/smokeping/smokeping-2.8.2-no-3rd-party.patch
@@ -0,0 +1,26 @@
+diff --git a/Makefile.am b/Makefile.am
+index 1dc34c7..8c00ec5 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -16,7 +16,7 @@
+
+ AUTOMAKE_OPTIONS = foreign
+
+-SUBDIRS = lib thirdparty bin doc etc htdocs
++SUBDIRS = lib bin doc etc htdocs
+
+ EXTRA_DIST = COPYRIGHT CHANGES CONTRIBUTORS LICENSE cpanfile VERSION README.md
+
+diff --git a/configure.ac b/configure.ac
+index 33b75c5..4ce4a12 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -140,7 +140,7 @@ NOTES
+ exit 1
+ fi
+
+-AC_CONFIG_FILES([Makefile bin/Makefile doc/Makefile htdocs/Makefile etc/Makefile lib/Makefile thirdparty/Makefile etc/config.dist])
++AC_CONFIG_FILES([Makefile bin/Makefile doc/Makefile htdocs/Makefile etc/Makefile lib/Makefile etc/config.dist])
+
+ AC_SUBST(VERSION)
+
diff --git a/main/smokeping/smokeping-2.8.2-paths.patch b/main/smokeping/smokeping-2.8.2-paths.patch
new file mode 100644
index 00000000000..aef723204b7
--- /dev/null
+++ b/main/smokeping/smokeping-2.8.2-paths.patch
@@ -0,0 +1,107 @@
+diff --git a/bin/Makefile.am b/bin/Makefile.am
+index 2c6f3bc..68be89e 100644
+--- a/bin/Makefile.am
++++ b/bin/Makefile.am
+@@ -15,7 +15,8 @@
+ # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
+
+
+-dist_bin_SCRIPTS = smokeinfo smokeping smokeping_cgi tSmoke
++dist_bin_SCRIPTS = smokeinfo smokeping_cgi tSmoke
++dist_sbin_SCRIPTS = smokeping
+
+ install-exec-hook:
+ test "$(PERL5LIB)" = "" || cd "$(DESTDIR)$(bindir)" && $(PERL) -i -p -e 's{.*# PERL5LIB}{use lib (split /:/, q{$(PERL5LIB)}); # PERL5LIB}' $(dist_bin_SCRIPTS)
+diff --git a/bin/smokeinfo b/bin/smokeinfo
+index 2b38b86..ff96674 100755
+--- a/bin/smokeinfo
++++ b/bin/smokeinfo
+@@ -2,8 +2,7 @@
+ use strict;
+ use warnings;
+
+-use lib (split /:/, q{}); # PERL5LIB
+-use FindBin;use lib "$FindBin::RealBin/../lib";use lib "$FindBin::RealBin/../thirdparty/lib/perl5"; # LIBDIR
++use lib qw(/usr/share/smokeping);
+
+ use Smokeping::Info;
+ use Getopt::Long 2.25 qw(:config no_ignore_case);
+diff --git a/bin/smokeping b/bin/smokeping
+index 1dae42a..550beb5 100755
+--- a/bin/smokeping
++++ b/bin/smokeping
+@@ -4,13 +4,10 @@
+ use strict;
+ use warnings;
+
+-use FindBin;
+-use lib (split /:/, q{}); # PERL5LIB
+-use lib "$FindBin::RealBin/../lib";use lib "$FindBin::RealBin/../thirdparty/lib/perl5"; # LIBDIR
+-
++use lib qw(/usr/share/smokeping);
+ use Smokeping;
+
+-Smokeping::main("$FindBin::RealBin/../etc/config");
++Smokeping::main("/etc/smokeping/config");
+
+ =head1 NAME
+
+diff --git a/bin/smokeping_cgi b/bin/smokeping_cgi
+index 610118c..9a995c1 100755
+--- a/bin/smokeping_cgi
++++ b/bin/smokeping_cgi
+@@ -4,9 +4,7 @@
+ use strict;
+ use warnings;
+
+-use FindBin;
+-use lib (split /:/, q{}); # PERL5LIB
+-use lib "$FindBin::RealBin/../lib";use lib "$FindBin::RealBin/../thirdparty/lib/perl5"; # LIBDIR
++use lib qw(/usr/share/smokeping);
+
+ # don't bother with zombies
+ $SIG{CHLD} = 'IGNORE';
+@@ -17,7 +15,7 @@ use Smokeping;
+
+ use CGI::Fast;
+
+-my $cfg = (shift @ARGV) || "$FindBin::Bin/../etc/config";
++my $cfg = (shift @ARGV) || "/etc/smokeping/config";
+
+
+ while (my $q = new CGI::Fast) {
+diff --git a/bin/tSmoke b/bin/tSmoke
+index 6b56479..db9ef92 100755
+--- a/bin/tSmoke
++++ b/bin/tSmoke
+@@ -52,9 +52,7 @@ use warnings;
+ #
+ # Point the lib variables to your implementation
+
+-use lib (split /:/, q{}); # PERL5LIB
+-use FindBin;use lib "$FindBin::RealBin/../lib";use lib "$FindBin::RealBin/../thirdparty/lib/perl5"; # LIBDIR
+-
++use lib qw(/usr/share/smokeping);
+
+ use Smokeping;
+ use Net::SMTP;
+@@ -63,7 +61,7 @@ use Pod::Usage;
+ use RRDs;
+
+ # Point to your Smokeping config file
+-my $cfgfile = (shift @ARGV) || "$FindBin::Bin/../etc/config";
++my $cfgfile = "etc/config.dist";
+
+ # global variables
+ my $cfg;
+diff --git a/lib/Makefile.am b/lib/Makefile.am
+index 2209134..ab09330 100644
+--- a/lib/Makefile.am
++++ b/lib/Makefile.am
+@@ -31,5 +31,5 @@ MATCH := $(wildcard Smokeping/matchers/*.pm)
+
+ EXTRA_DIST = $(PM) $(SP) $(SORT) $(PROBE) $(MATCH)
+
+-perllibdir = $(prefix)/lib
++perllibdir = $(prefix)/share/smokeping
+ nobase_perllib_DATA = $(EXTRA_DIST)
diff --git a/main/smokeping/smokeping-config.patch b/main/smokeping/smokeping-config.patch
new file mode 100644
index 00000000000..febaa842c40
--- /dev/null
+++ b/main/smokeping/smokeping-config.patch
@@ -0,0 +1,135 @@
+diff --git a/etc/config.dist.in b/etc/config.dist.in
+index 8b9fdf3..b6f6180 100644
+--- a/etc/config.dist.in
++++ b/etc/config.dist.in
+@@ -1,19 +1,19 @@
+ *** General ***
+
+-owner = Peter Random
+-contact = some@address.nowhere
++owner = Super User
++contact = root@localhost
+ mailhost = my.mail.host
+-sendmail = @SENDMAIL@
++sendmail = /usr/sbin/sendmail
+ # NOTE: do not put the Image Cache below cgi-bin
+ # since all files under cgi-bin will be executed ... this is not
+ # good for images.
+-imgcache = @prefix@/cache
+-imgurl = cache
+-datadir = @prefix@/data
+-piddir = @prefix@/var
+-cgiurl = http://some.url/smokeping.cgi
+-smokemail = @prefix@/etc/smokemail.dist
+-tmail = @prefix@/etc/tmail.dist
++imgcache = /var/lib/smokeping/images
++imgurl = /smokeping/images
++datadir = /var/lib/smokeping
++piddir = /run/smokeping
++cgiurl = http://localhost/smokeping/sm.cgi
++smokemail = /etc/smokeping/smokemail
++tmail = /etc/smokeping/tmail
+ # specify this to get syslog logging
+ syslogfacility = local0
+ # each probe is now run in its own process
+@@ -21,8 +21,8 @@ syslogfacility = local0
+ # concurrentprobes = no
+
+ *** Alerts ***
+-to = alertee@address.somewhere
+-from = smokealert@company.xy
++to = root@localhost
++from = root@localhost
+
+ +someloss
+ type = loss
+@@ -47,7 +47,7 @@ AVERAGE 0.5 144 720
+
+ *** Presentation ***
+
+-template = @prefix@/etc/basepage.html.dist
++template = /etc/smokeping/basepage.html
+ htmltitle = yes
+ graphborders = no
+
+@@ -110,7 +110,7 @@ unison_tolerance = 2
+ binary = /usr/sbin/fping
+
+ *** Slaves ***
+-secrets=@prefix@/etc/smokeping_secrets.dist
++secrets=/etc/smokeping/smokeping_secrets
+ +boomer
+ display_name=boomer
+ color=0000ff
+@@ -121,28 +121,57 @@ color=00ff00
+
+ *** Targets ***
+
++#menuextra = <a target='_blank' href='/smokeping/tr.html{HOST}' class='{CLASS}' \
++# onclick="window.open(this.href,this.target, \
++# 'width=800,height=500,toolbar=no,location=no,status=no,scrollbars=no'); \
++# return false;">*</a>
++#
+ probe = FPing
+
+ menu = Top
+ title = Network Latency Grapher
+-remark = Welcome to the SmokePing website of xxx Company. \
++remark = Welcome to the SmokePing website of <b>Insert Company Name Here</b>. \
+ Here you will learn all about the latency of our network.
+
+-+ Test
+-menu= Targets
+-#parents = owner:/Test/James location:/
+++ Ping
+
+-++ James
++menu = Alpine
++title = Alpine Pings
+
+-menu = James
+-title =James
+-alerts = someloss
+-slaves = boomer slave2
+-host = james.address
++++ AlpinelinuxOrg
+
+-++ MultiHost
++menu = alpinelinux.org
++title = Alpine Linux Webserver
++host = alpinelinux.org
+
+-menu = Multihost
+-title = James and James as seen from Boomer
+-host = /Test/James /Test/James~boomer
++++ DocsAlpinelinuxOrg
++
++menu = docs.alpinelinux.org
++title = Alpine Linux Docs Webserver
++host = docs.alpinelinux.org
++
++++ PkgsAlpinelinuxOrg
++
++menu = pkgs.alpinelinux.org
++title = Alpine Linux Packages
++host = pkgs.alpinelinux.org
++
++#
++# Lots of more options are available, please have a look in the included documentation.
++#
++
++
++#++ James
++
++#menu = James
++#title =James
++#alerts = someloss
++#slaves = boomer slave2
++#host = james.address
++
++#++ MultiHost
++
++#menu = Multihost
++#title = James and James as seen from Boomer
++#host = /Test/James /Test/James~boomer
+
diff --git a/main/smokeping/smokeping-silence.patch b/main/smokeping/smokeping-silence.patch
new file mode 100644
index 00000000000..f515635846f
--- /dev/null
+++ b/main/smokeping/smokeping-silence.patch
@@ -0,0 +1,22 @@
+diff --git a/lib/Smokeping.pm b/lib/Smokeping.pm
+index 7b512e1..fe7d9dc 100644
+--- a/lib/Smokeping.pm
++++ b/lib/Smokeping.pm
+@@ -3658,7 +3658,7 @@ sub daemonize_me ($) {
+ }
+ print "Warning: no logging method specified. Messages will be lost.\n"
+ unless $logging;
+- print "Daemonizing $0 ...\n";
++ #print "Daemonizing $0 ...\n";
+ defined (my $pid = fork) or die "Can't fork: $!";
+ if ($pid) {
+ exit;
+@@ -3718,7 +3718,7 @@ sub daemonize_me ($) {
+ die "missing facility?" unless defined $fac;
+ $syslog_facility = $fac if defined $fac;
+ $syslog_priority = $pri if defined $pri;
+- print "Note: logging to syslog as $syslog_facility/$syslog_priority.\n";
++ #print "Note: logging to syslog as $syslog_facility/$syslog_priority.\n";
+ openlog(basename($0), 'pid', $syslog_facility);
+ eval {
+ syslog($syslog_priority, 'Starting syslog logging');
diff --git a/main/smokeping/smokeping.initd b/main/smokeping/smokeping.initd
index a497c7d132a..97001fa223b 100644
--- a/main/smokeping/smokeping.initd
+++ b/main/smokeping/smokeping.initd
@@ -20,13 +20,13 @@ checkconfig() {
start() {
checkconfig || return 1
- checkpath --directory --owner smokeping:smokeping /var/run/smokeping
+ checkpath --directory --owner smokeping:smokeping /run/smokeping
ebegin "Starting smokeping"
LC_ALL=C \
start-stop-daemon --start --name smokeping \
- --pidfile /var/run/smokeping/smokeping.pid \
- --exec /usr/bin/smokeping \
+ --pidfile /run/smokeping/smokeping.pid \
+ --exec /usr/sbin/smokeping \
--user smokeping:smokeping \
-- --config=/etc/smokeping/config
eend $?
@@ -35,7 +35,7 @@ start() {
stop() {
ebegin "Stopping smokeping"
start-stop-daemon --stop \
- --pidfile /var/run/smokeping/smokeping.pid
+ --pidfile /run/smokeping/smokeping.pid
eend $?
}
diff --git a/main/snappy/APKBUILD b/main/snappy/APKBUILD
index 9394c055329..4483d164fff 100644
--- a/main/snappy/APKBUILD
+++ b/main/snappy/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=snappy
-pkgver=1.1.9
-pkgrel=4
+pkgver=1.1.10
+pkgrel=2
_googletest_commit=18f8200e3079b0e54fa00cb7ac55d4c39dcf6da6
pkgdesc="Fast compression and decompression library"
url="https://github.com/google/snappy"
@@ -13,7 +13,7 @@ subpackages="$pkgname-dbg $pkgname-static $pkgname-dev $pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/google/snappy/archive/$pkgver.tar.gz
googletest-$_googletest_commit.tar.gz::https://github.com/google/googletest/archive/$_googletest_commit.tar.gz
cmakelists.patch
- fix-inline.patch
+ no-include-gtest.patch
rtti.patch
"
@@ -27,14 +27,14 @@ build() {
if [ "$CBUILD" != "$CHOST" ]; then
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
fi
+ CFLAGS="$CFLAGS -O2 -flto=auto -ffat-lto-objects -DNDEBUG" \
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto -ffat-lto-objects -DNDEBUG" \
cmake -B build -G Ninja \
- -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_BUILD_TYPE=None \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=/usr/lib \
-DBUILD_SHARED_LIBS=ON \
-DBUILD_STATIC_LIBS=ON \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_C_FLAGS="$CFLAGS" \
-DSNAPPY_BUILD_BENCHMARKS=OFF \
-DSNAPPY_BUILD_TESTS=ON \
$CMAKE_CROSSOPTS
@@ -49,15 +49,6 @@ check() {
package() {
DESTDIR="$pkgdir" cmake --install build
- # clean-up
- rm -r \
- "$pkgdir"/usr/include/gmock \
- "$pkgdir"/usr/include/gtest \
- "$pkgdir"/usr/lib/libgmock* \
- "$pkgdir"/usr/lib/libgtest* \
- "$pkgdir"/usr/lib/cmake/GTest \
- "$pkgdir"/usr/lib/pkgconfig
-
local file; for file in AUTHORS CONTRIBUTING.md COPYING NEWS README.md \
format_description.txt framing_format.txt; do
install -m644 -D $file "$pkgdir"/usr/share/doc/$pkgname/$file
@@ -65,9 +56,9 @@ package() {
}
sha512sums="
-f1f8a90f5f7f23310423574b1d8c9acb84c66ea620f3999d1060395205e5760883476837aba02f0aa913af60819e34c625d8308c18a5d7a9c4e190f35968b024 snappy-1.1.9.tar.gz
+3578597f1d4ec09104ce0296b825b013590351230dfe56c635081fd282ce7a13a34caf2c283ac77bd24065e2d27af6db068d1f84b98cec2fd39a0e37a0d77070 snappy-1.1.10.tar.gz
f77c747218dc5ae4858b2b4c58a401eb895493adf470a331d6bac32cd20542533ff3a77081db653bbc18b9f55f6864be04e1739ef4afaed7db39d7c698abf880 googletest-18f8200e3079b0e54fa00cb7ac55d4c39dcf6da6.tar.gz
8a891edf2f0b267b05c67d54945f11d723b058ddab5ac3f27b4f00678759d4a52b617d0c5724c7170a285eb068ffa4ffbbc5a9efa250964979b3969fc8730eb3 cmakelists.patch
-47aca85575dc53ed9cee127285e0545200d22c789a2bd8f03bb9a8cd93168b1b9b990c092d0b340122f800d2e4eafd0b718f04d09bc16ff4fe08cebb98daf741 fix-inline.patch
+1e9ad24b9ab0adf82922cd7042cad7dd1709c147812b775870a8ef67f47ddc81ee3fe697a04a4cc54f78d17e74c45d2770976be10468a7df32e5205f50ca8e93 no-include-gtest.patch
ec6a83d5e58deffd23f4b47e899b6645145548a823c2e1542812f05848a844839580a1b27aefa9beadba6b43f472abc38c42ea379db91da938837f4e69ae9cc0 rtti.patch
"
diff --git a/main/snappy/fix-inline.patch b/main/snappy/fix-inline.patch
deleted file mode 100644
index 96484e03fec..00000000000
--- a/main/snappy/fix-inline.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-Patch-Source: https://github.com/google/snappy/pull/128
-
---- a/snappy.cc
-+++ b/snappy.cc
-@@ -1014,7 +1014,7 @@
- }
-
- SNAPPY_ATTRIBUTE_ALWAYS_INLINE
--size_t AdvanceToNextTag(const uint8_t** ip_p, size_t* tag) {
-+inline size_t AdvanceToNextTag(const uint8_t** ip_p, size_t* tag) {
- const uint8_t*& ip = *ip_p;
- // This section is crucial for the throughput of the decompression loop.
- // The latency of an iteration is fundamentally constrained by the
diff --git a/main/snappy/no-include-gtest.patch b/main/snappy/no-include-gtest.patch
new file mode 100644
index 00000000000..84bfb877d01
--- /dev/null
+++ b/main/snappy/no-include-gtest.patch
@@ -0,0 +1,14 @@
+skips installing gtest
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index c3062e2..75f1265 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -313,7 +313,7 @@ if(SNAPPY_BUILD_TESTS)
+ set(build_gmock ON)
+
+ # This project is tested using GoogleTest.
+- add_subdirectory("third_party/googletest")
++ add_subdirectory("third_party/googletest" EXCLUDE_FROM_ALL)
+
+ # GoogleTest triggers a missing field initializers warning.
+ if(SNAPPY_HAVE_NO_MISSING_FIELD_INITIALIZERS)
diff --git a/main/sngtc_client/APKBUILD b/main/sngtc_client/APKBUILD
index 75e8e7d8805..53dcdd4a6de 100644
--- a/main/sngtc_client/APKBUILD
+++ b/main/sngtc_client/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=sngtc_client
pkgver=1.3.11
-pkgrel=1
+pkgrel=4
pkgdesc="Sangoma Media Transcode client and lib"
url="https://wiki.freepbx.org/display/MTC/Media+Transcoding"
arch="all"
-license="LGPL"
+license="custom AND GPL-2.0-or-later AND BSD-3-Clause"
options="!check" #no test suite
makedepends="ortp-dev linux-headers bctoolbox-dev"
subpackages="$pkgname-dev"
@@ -18,6 +18,7 @@ depends_dev="$pkgname=$pkgver-r$pkgrel"
source="https://ftp.sangoma.com/linux/transcoding/sng-tc-linux-$pkgver.x86_64.tgz
sngtc_client-dynamic-ortp.patch
musl-fix-types.patch
+ int-conversion.patch
ortp.patch
bctoolbox-underlinking.patch"
builddir="$srcdir"/sng-tc-linux-$pkgver.x86_64
@@ -46,6 +47,7 @@ sha512sums="
6bf871f7f0e9c70f1c7adae6f80756de335e3b1fd9afaa451c9adbc6896941157c17cf5e79ed8e753190057ac2d5ea03a0d40d587f13ec19c49d4d83f7baca90 sng-tc-linux-1.3.11.x86_64.tgz
2b784c56d1482ad9069502c408138d0c0b0ea6b393902d45b09200a3a588e02138c21a1fbee4d5715711e578130c30c607cae59f7ee24b8ce5bccd5a9c2fce14 sngtc_client-dynamic-ortp.patch
008447bf7c8f690cc9ee5efd232dee1b4f3f35e94827a518f88a7c46b4741b6d1e8418c32f099c807e61d7ae815467aed3a3b0134114e75574397ae324540067 musl-fix-types.patch
+f590257aeaadc000bee7892b0d7ce2c5296ecdd84022b6d33fb50262b2de04bdf8bc89b155c6cf844c404fa885e3340fd3e6306f88d391ccec728e1faf06b1e1 int-conversion.patch
5d1dcf45834e192f9c14681aa9e7f5fc58ae08b283f25f0565ac6522f8af06bf71585e3dd7c92ae727c86fa7bfbe7a27bd7bfcafe4913ab005d857a1fef34a56 ortp.patch
be6cc8a349b2dede19223cef2d888fc6ab183d832d75d77dfbd8b029b31814f9391d9b6af08d81e9765231faef0cdc9a3c50e7f847401d6ccc740f2cedd2f39c bctoolbox-underlinking.patch
"
diff --git a/main/sngtc_client/int-conversion.patch b/main/sngtc_client/int-conversion.patch
new file mode 100644
index 00000000000..0c5cc120c21
--- /dev/null
+++ b/main/sngtc_client/int-conversion.patch
@@ -0,0 +1,13 @@
+diff --git a/client/sngtc_client/sngtc_client.c b/client/sngtc_client/sngtc_client.c
+index b01c106..25e85af 100644
+--- a/client/sngtc_client/sngtc_client.c
++++ b/client/sngtc_client/sngtc_client.c
+@@ -1134,7 +1134,7 @@ static void *run_transcoding_session(void *arg)
+ /* go! */
+ globals.sessions_streaming++;
+
+- thread_id = syscall(SYS_gettid);
++ thread_id = (pthread_t)syscall(SYS_gettid);
+ pthread_setspecific(globals.thread_id_key, (void *)(long)thread_id);
+ local_sngtc_logger(SNGTC_LOGLEVEL_DEBUG, "Running session %d in thread %d\n", sessindex, thread_id);
+
diff --git a/main/snmptt/APKBUILD b/main/snmptt/APKBUILD
index 05f5d5d3946..56935f4e225 100644
--- a/main/snmptt/APKBUILD
+++ b/main/snmptt/APKBUILD
@@ -1,16 +1,17 @@
# Contributor: Jeff Bilyk <jbilyk at gmail>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=snmptt
-pkgver=1.4.2
+pkgver=1.5
pkgrel=0
pkgdesc="Translates traps received from snmptrapd into easy to understand messages"
-url="http://www.snmptt.org"
+url="http://www.snmptt.org/"
arch="noarch"
license="GPL-2.0-or-later"
pkgusers="snmptt"
pkggroups="snmptt"
depends="perl perl-config-inifiles perl-list-moreutils"
install="$pkgname.pre-install"
+options="!check"
subpackages="$pkgname-openrc"
source="https://downloads.sourceforge.net/snmptt/snmptt_$pkgver.tgz
snmptt.initd
@@ -36,6 +37,8 @@ package() {
install -D -m644 "$srcdir"/snmptt.confd "$pkgdir"/etc/conf.d/snmptt
}
-sha512sums="b8782aa5789227253c1b65c98771de7eba319f1f29b56224415f89d0c687515cd099f0ba7d0e304d43a9d054fa66335fe09d99545f50415745ac86b8b56a2b9d snmptt_1.4.2.tgz
+sha512sums="
+e6ec9cbe864bd4f897e71410562e303393674051f9cd2f27d8a9c0dad1c3449ebbe9ff676c2c784a40e25937ca25b76a0deba11b3187243e238014f70a74463e snmptt_1.5.tgz
233e781150fdb217991e0d9eae4de1430e01f54c9ae7354a6ebef6676595c5497863a4ab2a829e67473c7a901c120b2dbb7aa51e67fd49fd7643ff9efca633f8 snmptt.initd
-905f9c10b6daa43b112166c90d569c0737d569117c320a4a652ca22533195b559fe62628bf67bfc4df107db6af88a44ac4ffc58514c8dcc5bb45981240b90776 snmptt.confd"
+905f9c10b6daa43b112166c90d569c0737d569117c320a4a652ca22533195b559fe62628bf67bfc4df107db6af88a44ac4ffc58514c8dcc5bb45981240b90776 snmptt.confd
+"
diff --git a/main/snort-extra/APKBUILD b/main/snort-extra/APKBUILD
new file mode 100644
index 00000000000..fd162357b7d
--- /dev/null
+++ b/main/snort-extra/APKBUILD
@@ -0,0 +1,34 @@
+# Maintainer: Steve McMaster <code@mcmaster.io>
+pkgname=snort-extra
+pkgver=3.1.82.0
+pkgrel=0
+pkgdesc="External plugins for snort"
+url="https://github.com/snort3/snort3_extra"
+# snort
+arch="all !ppc64le !riscv64 !loongarch64"
+license="GPL-2.0-only"
+makedepends="
+ daq-dev
+ cmake
+ samurai
+ snort-dev
+ "
+source="https://www.snort.org/downloads/snortplus/snort3_extra-$pkgver.tar.gz"
+builddir="$srcdir/snort3_extra-$pkgver"
+options="!check" # doesn't have any tests
+
+build() {
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ cmake -B build -G Ninja -Wno-dev \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+ebd2e96f4aa0c2d373879a53a8f61935033581f527a8a336c3dc165ce9341645ac335462e6b4f5b43c84158e135f9330f6e81ebad629ff1da67157fe73bd4113 snort3_extra-3.1.82.0.tar.gz
+"
diff --git a/main/snort/APKBUILD b/main/snort/APKBUILD
index 13afbb45201..2b6cdb69e2f 100644
--- a/main/snort/APKBUILD
+++ b/main/snort/APKBUILD
@@ -1,80 +1,86 @@
+# Contributor: Steve McMaster <code@mcmaster.io>
# Contributor: Karim Kanso <kaz.kanso@gmail.com>
# Contributor: Michael Mason <ms13sp@gmail.com>
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=snort
-pkgver=2.9.19
+# pair with snort-extra
+pkgver=3.1.82.0
pkgrel=0
-pkgdesc="An open source network intrusion prevention and detection system"
+pkgdesc="Open source network intrusion prevention and detection system"
url="https://www.snort.org/"
-arch="all"
+# luajit
+arch="all !ppc64le !riscv64 !loongarch64"
license="GPL-2.0-only"
-makedepends="pcre-dev libpcap-dev libnet-dev libdnet-dev daq-dev daq-static
- bison flex zlib-dev libtirpc-dev xz-dev
- libnfnetlink-dev libnetfilter_queue-dev"
+depends="bash"
+makedepends="
+ bison
+ cmake
+ daq-dev
+ daq-static
+ flex-dev
+ hwloc-dev
+ libdnet-dev
+ libmnl-dev
+ libnet-dev
+ libnetfilter_queue-dev
+ libnfnetlink-dev
+ libpcap-dev
+ libtirpc-dev
+ luajit-dev
+ openssl-dev
+ pcre-dev
+ samurai
+ xz-dev
+ zlib-dev
+ "
install="$pkgname.pre-install"
+pkgusers="snort"
+pkggroups="snort"
subpackages="$pkgname-doc $pkgname-dev $pkgname-openrc"
-source="https://www.snort.org/downloads/archive/snort/snort-$pkgver.tar.gz
+source="https://www.snort.org/downloads/snortplus/snort3-$pkgver.tar.gz
+ gcc13.patch
+ no-libunwind.patch
+ logrotate
snort.initd
snort.confd
"
-pkgusers="snort"
-pkggroups="snort"
+builddir="$srcdir/snort3-$pkgver"
+options="!check" # needs cpputest from community
# secfixes:
# 2.9.18-r0:
# - CVE-2021-40114
-prepare() {
- default_prepare
- # correct paths in default config file
- sed -i -e 's|/usr/local|/usr|' etc/snort.conf
- sed -i -e 's|\.\./|/var/lib/snort/|' etc/snort.conf
-}
-
build() {
- export CFLAGS="$CFLAGS $(pkgconf --cflags libtirpc)"
- export LDFLAGS="$LDFLAGS $(pkgconf --libs libtirpc)"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --enable-ipv6 \
- --enable-gre \
- --enable-non-ether-decoders \
- --disable-open-appid
- make
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ cmake -B build -G Ninja -Wno-dev \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_SYSCONFDIR=/etc \
+ -DENABLE_UNIT_TESTS="$(want_check && echo ON || echo OFF)" \
+ -DENABLE_BENCHMARK_TESTS=OFF
+ cmake --build build
}
check() {
- ./src/snort --version > /dev/null
+ ctest --test-dir build --output-on-failure
}
package() {
- make -j1 DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
- install -D -m 755 ../snort.initd "$pkgdir"/etc/init.d/snort
- install -D -m 644 ../snort.confd "$pkgdir"/etc/conf.d/snort
- install -D -m 644 etc/snort.conf "$pkgdir"/etc/snort/snort.conf
- install -D -m 644 etc/gen-msg.map "$pkgdir"/etc/snort/gen-msg.map
- install -D -m 644 rpm/snort.logrotate "$pkgdir"/etc/logrotate.d/snort
- mkdir -p "$pkgdir"/usr/lib/snort_dynamicrules
- mkdir -p "$pkgdir"/var/lib/snort/rules
- mkdir -m 770 -p "$pkgdir"/var/log/snort && chown snort.snort "$pkgdir"/var/log/snort
- for file in classification.config reference.config threshold.conf \
- unicode.map sid-msg.map
- do
- ln -s /var/lib/snort/etc/$file "$pkgdir"/etc/snort/$file
- done
- touch "$pkgdir"/var/lib/snort/rules/white_list.rules
- touch "$pkgdir"/var/lib/snort/rules/black_list.rules
+ install -Dm 755 "$srcdir"/snort.initd "$pkgdir"/etc/init.d/snort
+ install -Dm 644 "$srcdir"/snort.confd "$pkgdir"/etc/conf.d/snort
+ install -Dm644 "$srcdir"/logrotate "$pkgdir"/etc/logrotate.d/snort
+ install -d -o snort -g snort -m 770 "$pkgdir"/var/log/snort "$pkgdir"/var/lib/snort
}
sha512sums="
-2c93193c0e90b9ec6f4cdde8af2311b10234aab3fd10679731c7091a8719bd71a59e8dccfbceeff4c2152a3c05d150e8924639ff8ce3b345382746687f14611c snort-2.9.19.tar.gz
-c71d11f4cde4aba432641d3915faec8070e9fea5b33c71f6b2872b2208871180b3c7dbbadd2ddaebe5f3280adf7c5c9daf1585afd331fe552486a675ff676e52 snort.initd
-b21491ba5798a5ce3a03a61ada391a667f1684aaf86e7536abb9dd975f6acefe75688c60b8ce28cbfb0c4e66ec19078e468792289d26f1f2e2d401609fd22771 snort.confd
+b7ed9e67946d857a9545e3a4616de11668d4f9f64d1d3b58d9c7218b105f8b7d6b2ce195239a1506d5a86fe80faa097860e35216d686bd3e5e495dd659d0324e snort3-3.1.82.0.tar.gz
+741c1d30a19f18ec33c9f10a696e510d5edc35969e12121920c2a05e6de18d3d74bda42ef7e9d01f60124c08b1e8f3f47e06b6baaa52f4fb7f6834a0d1ad77e6 gcc13.patch
+9fdf8bdf17fa84326fc1f04ee3bf0d14ce4df60c62f7ed3e6303644ae674316f6d6e4c5318791a01921a9bb64dd0de2304688eb98243e0f313ed3f2d93e1d33e no-libunwind.patch
+2d845baa9cd02237a6e60dc280ede896bf1facf7906d7d08e8dfa99d596a9fbe3de4227e6bedbd95375598b6940b9d874ccdd12d3f2c1ede282bac3a8e26b47e logrotate
+769840c6e8a7e353a2b2866b7b161195ce780fb3d5dda747325a95fcaf964c9aad29c5aba8c8ea48aa26ef810d81e82c1321104dd3e7374319e8176635e9b7d8 snort.initd
+8a1139cdd07a03a96c7f5f75164bf95cae4dbc24f637d8b4008b0cf41e4a7f97148621fe4a1c867e956e16dbe226eaf2284a50b73547d1afaacbd32ca9befae5 snort.confd
"
diff --git a/main/snort/gcc13.patch b/main/snort/gcc13.patch
new file mode 100644
index 00000000000..7bb01acc0a2
--- /dev/null
+++ b/main/snort/gcc13.patch
@@ -0,0 +1,12 @@
+diff --git a/src/network_inspectors/packet_capture/packet_capture.h b/src/network_inspectors/packet_capture/packet_capture.h
+index 3417f91..78aab9c 100644
+--- a/src/network_inspectors/packet_capture/packet_capture.h
++++ b/src/network_inspectors/packet_capture/packet_capture.h
+@@ -20,6 +20,7 @@
+ #ifndef PACKET_CAPTURE_H
+ #define PACKET_CAPTURE_H
+
++#include <cstdint>
+ #include <string>
+
+ void packet_capture_enable(const std::string&, const int16_t g = -1);
diff --git a/main/snort/logrotate b/main/snort/logrotate
new file mode 100644
index 00000000000..166debb0356
--- /dev/null
+++ b/main/snort/logrotate
@@ -0,0 +1,10 @@
+/var/log/snort/alert /var/log/snort/*log /var/log/snort/*/alert /var/log/snort/*/*log {
+ daily
+ rotate 7
+ missingok
+ compress
+ sharedscripts
+ postrotate
+ /etc/init.d/snortd restart 1>/dev/null || true
+ endscript
+}
diff --git a/main/snort/no-libunwind.patch b/main/snort/no-libunwind.patch
new file mode 100644
index 00000000000..95b38e825b6
--- /dev/null
+++ b/main/snort/no-libunwind.patch
@@ -0,0 +1,25 @@
+we never want libunwind for runtime backtrace on SIG*, so explicitly disable it
+--
+diff --git a/cmake/include_libraries.cmake b/cmake/include_libraries.cmake
+index 1a0b197..090af47 100644
+--- a/cmake/include_libraries.cmake
++++ b/cmake/include_libraries.cmake
+@@ -26,5 +26,4 @@ if (ENABLE_SAFEC)
+ endif (ENABLE_SAFEC)
+ find_package(ICONV QUIET)
+ find_package(UUID QUIET)
+-find_package(Libunwind)
+ find_package(NUMA QUIET)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 4cf2456..5153f35 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -43,7 +43,7 @@ if ( HAVE_ICONV )
+ LIST(APPEND EXTERNAL_INCLUDES ${ICONV_INCLUDE_DIR})
+ endif ()
+
+-if ( HAVE_LIBUNWIND )
++if ( false )
+ LIST(APPEND EXTERNAL_LIBRARIES ${LIBUNWIND_LIBRARIES})
+ LIST(APPEND EXTERNAL_INCLUDES ${LIBUNWIND_INCLUDE_DIRS})
+ endif ()
diff --git a/main/snort/snort.confd b/main/snort/snort.confd
index 83bc5eadb34..6a03b3bdf68 100644
--- a/main/snort/snort.confd
+++ b/main/snort/snort.confd
@@ -10,7 +10,7 @@ PIDFILE=/var/lib/snort/snort_$IFACE.pid
LOGDIR="/var/log/snort"
# Probably not this either
-CONF=/etc/snort/snort.conf
+CONF=/etc/snort/snort.lua
# Allow log files to be read by members of snort group (default is 077).
UMASK=037
diff --git a/main/snort/snort.initd b/main/snort/snort.initd
index 84e26741677..0000cc40776 100644
--- a/main/snort/snort.initd
+++ b/main/snort/snort.initd
@@ -1,38 +1,15 @@
#!/sbin/openrc-run
-# Copyright 1999-2004 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/www/viewcvs.gentoo.org/raw_cvs/gentoo-x86/net-analyzer/snort/files/snort.rc7,v 1.3 2007/04/22 06:21:15 dragonheart Exp $
+command="/usr/bin/snort"
+command_args="$SNORT_OPTS"
extra_commands="reload"
+required_files="$CONF"
depend() {
need net
after firewall
}
-checkconfig() {
- if [ ! -e $CONF ] ; then
- eerror "You need a configuration file to run snort"
- eerror "There is an example config in /etc/snort/snort.conf.distrib"
- return 1
- fi
-}
-
-start() {
- checkconfig || return 1
- ebegin "Starting snort"
- start-stop-daemon --start --quiet --exec /usr/bin/snort \
- --pidfile ${PIDFILE} \
- -- ${SNORT_OPTS} >/dev/null 2>&1
- eend $?
-}
-
-stop() {
- ebegin "Stopping snort"
- start-stop-daemon --stop --quiet --pidfile ${PIDFILE}
- eend $?
-}
-
reload() {
ebegin "Reloading snort rules"
start-stop-daemon --stop --quiet --signal HUP --pidfile ${PIDFILE}
diff --git a/main/snowball/APKBUILD b/main/snowball/APKBUILD
new file mode 100644
index 00000000000..d977b639d2a
--- /dev/null
+++ b/main/snowball/APKBUILD
@@ -0,0 +1,47 @@
+# Contributor: Duncan Bellamy <dunk@denkimushi.com>
+# Contributor: Francesco Colista <fcolista@alpinelinux.org>
+# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
+pkgname=snowball
+pkgver=2.2.0
+pkgrel=0
+pkgdesc="Snowball rule-based stemming algorithms"
+url="https://snowballstem.org/"
+arch="all"
+license="BSD-3-Clause"
+makedepends="perl"
+subpackages="$pkgname-doc libstemmer:_libstemmer libstemmer-dev:_libstemmerdev"
+source="$pkgname-$pkgver.tar.gz::https://github.com/snowballstem/snowball/archive/refs/tags/v$pkgver.tar.gz
+ libstemmer-library.patch"
+
+build() {
+ make
+}
+
+check() {
+ #check_utf8 check_iso_8859_1 check_iso_8859_2 check_koi8r
+ #all have missing sub-targets
+ make check_stemtest
+}
+
+package() {
+ install -d "$pkgdir"/usr/bin "$pkgdir"/usr/lib "$pkgdir"/usr/include
+ install snowball stemwords "$pkgdir"/usr/bin
+ install libstemmer.a "$pkgdir"/usr/lib
+ install include/libstemmer.h "$pkgdir"/usr/include
+ install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/LICENSE"
+}
+
+_libstemmer() {
+ install -d "$subpkgdir"/usr/lib
+ install "$builddir"/libstemmer.so.* "$subpkgdir"/usr/lib
+}
+
+_libstemmerdev() {
+ pkgdesc="Header files and development libraries for libstemmer"
+ default_dev
+ mv "$builddir"/libstemmer.so $subpkgdir/usr/lib
+}
+sha512sums="
+02c43313de9de2518ea51cfb11f1c29145fc046c7838329bfdefd70b604009ad44b6db8175c25b0db31f03db30a6aec5857aa35775a9c204ec976df9cae62957 snowball-2.2.0.tar.gz
+6e8976313c91b71a13e50c213b74cc037ff794bf38451e1a053813c00b963527c6ff1f7baece1645f15a38bce893c4484247f71a945275276cb7aa16a1414817 libstemmer-library.patch
+"
diff --git a/main/snowball/libstemmer-library.patch b/main/snowball/libstemmer-library.patch
new file mode 100644
index 00000000000..a71142535c9
--- /dev/null
+++ b/main/snowball/libstemmer-library.patch
@@ -0,0 +1,47 @@
+--- a/GNUmakefile
++++ b/GNUmakefile
+@@ -8,6 +8,8 @@
+ EXEEXT = .exe
+ endif
+
++MAJOR_VERSION := $(shell echo $(SNOWBALL_VERSION) | cut -d. -f1)
++
+ c_src_dir = src_c
+
+ JAVAC ?= javac
+@@ -170,12 +172,12 @@
+ JAVA_CLASSES = $(JAVA_SOURCES:.java=.class)
+ JAVA_RUNTIME_CLASSES=$(JAVARUNTIME_SOURCES:.java=.class)
+
+-CFLAGS=-O2 -W -Wall -Wmissing-prototypes -Wmissing-declarations
++CFLAGS=-fPIC -O2 -W -Wall -Wmissing-prototypes -Wmissing-declarations
+ CPPFLAGS=
+
+ INCLUDES=-Iinclude
+
+-all: snowball$(EXEEXT) libstemmer.a stemwords$(EXEEXT) $(C_OTHER_SOURCES) $(C_OTHER_HEADERS) $(C_OTHER_OBJECTS)
++all: snowball$(EXEEXT) libstemmer.a libstemmer.so stemwords$(EXEEXT) $(C_OTHER_SOURCES) $(C_OTHER_HEADERS) $(C_OTHER_OBJECTS)
+
+ algorithms.mk: libstemmer/mkalgorithms.pl libstemmer/modules.txt
+ libstemmer/mkalgorithms.pl algorithms.mk libstemmer/modules.txt
+@@ -224,6 +226,11 @@
+
+ libstemmer.a: libstemmer/libstemmer.o $(RUNTIME_OBJECTS) $(C_LIB_OBJECTS)
+ $(AR) -cru $@ $^
++
++libstemmer.so: libstemmer/libstemmer.o $(RUNTIME_OBJECTS) $(C_LIB_OBJECTS)
++ $(CC) $(CFLAGS) -shared $(LDFLAGS) -Wl,-soname,$@.$(MAJOR_VERSION),-version-script,libstemmer/symbol.map -o $@.$(SNOWBALL_VERSION) $^
++ ln -s $@.$(SNOWBALL_VERSION) $@.$(MAJOR_VERSION)
++ ln -s $@.$(SNOWBALL_VERSION) $@
+
+ examples/%.o: examples/%.c
+ $(CC) $(CFLAGS) $(INCLUDES) $(CPPFLAGS) -c -o $@ $<
+--- /dev/null
++++ b/libstemmer/symbol.map
+@@ -0,0 +1,6 @@
++SB_STEMMER_0 {
++ global:
++ sb_stemmer_*;
++ local:
++ *;
++};
diff --git a/main/sntpc/APKBUILD b/main/sntpc/APKBUILD
index 2e5ba94e6e5..9c725fcfe3a 100644
--- a/main/sntpc/APKBUILD
+++ b/main/sntpc/APKBUILD
@@ -2,14 +2,15 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=sntpc
pkgver=0.9
-pkgrel=7
+pkgrel=12
pkgdesc="Simple NTP client"
options="!check" # No testsuite
-url="https://git.alpinelinux.org/cgit/hosted/sntpc/"
+url="https://git-old.alpinelinux.org/hosted/sntpc/"
arch="all"
license="GPL-2.0-only"
subpackages="$pkgname-openrc"
source="https://dev.alpinelinux.org/archive/sntpc/sntpc-$pkgver.tar.xz
+ format-security.patch
gcc-10.patch
sntpc.initd
sntpc.confd
@@ -25,7 +26,10 @@ package() {
install -m644 -D "$srcdir"/sntpc.confd "$pkgdir"/etc/conf.d/sntpc
}
-sha512sums="c18bb0da4b7804bcbb81da65dd4ab6de4288d2475c441a7b1246631d2500b474d4e95e60cc7752762fb092b49bb6c9fd5e5290c69e247293b3e094e45d18f76d sntpc-0.9.tar.xz
+sha512sums="
+c18bb0da4b7804bcbb81da65dd4ab6de4288d2475c441a7b1246631d2500b474d4e95e60cc7752762fb092b49bb6c9fd5e5290c69e247293b3e094e45d18f76d sntpc-0.9.tar.xz
+d70f0360aad0ab759a0d8eb3595347a0b8298d307a0a047c8ec357e0f7e08c3e09b7ec4b51215846ffd6cba12a0f80c5e811af6bb8051e8ceb9178eb0e926948 format-security.patch
f8f6801f5eb3da257f60a1cb97aed52816226638d7ddb850864a8ebfd76355ba6c9c0fb8921dc10422bb68c782489fac107c776e84feb9ff20b5b4bfda25ec09 gcc-10.patch
-72a803a7393424c996b176d0e4df078b2af26b84650793cf3b7b187416878f467aca3a0c96a9cadead065d169ac80a29ae0ceb46ec4b3b26d6d552e30f3562e3 sntpc.initd
-2fcb7d45f4c6588fd5281c02161a4aebb7e0a9d259a2ac3aa6c3187617dc7029f05fbebbb227feace61cc706e37ca0acb18b0019a67c674c444498fd289a9975 sntpc.confd"
+7f48bb5be6e8cbebfc9c6d63f1dc1dd1bf51e4a5d3aa66fcffde27a4c41528a47f6a8ccfe6da054edf1025ae75b204de12e6852e4b321c4c0435d80c439607bb sntpc.initd
+2fcb7d45f4c6588fd5281c02161a4aebb7e0a9d259a2ac3aa6c3187617dc7029f05fbebbb227feace61cc706e37ca0acb18b0019a67c674c444498fd289a9975 sntpc.confd
+"
diff --git a/main/sntpc/format-security.patch b/main/sntpc/format-security.patch
new file mode 100644
index 00000000000..dfbe676be13
--- /dev/null
+++ b/main/sntpc/format-security.patch
@@ -0,0 +1,22 @@
+diff --git a/sntpc.c b/sntpc.c
+index 61724ad..13af85a 100644
+--- a/sntpc.c
++++ b/sntpc.c
+@@ -249,7 +249,7 @@ int main(int argc, char * const argv[])
+ background++;
+ break;
+ case 'h':
+- printf(usage_str);
++ printf("%s", usage_str);
+ return(0);
+ case 'i':
+ interval = atoi(optarg);
+@@ -267,7 +267,7 @@ int main(int argc, char * const argv[])
+ }
+ }
+ if (optind != (argc - 1)) {
+- printf(usage_str);
++ printf("%s", usage_str);
+ return 1;
+ }
+ ntphost = argv[optind];
diff --git a/main/sntpc/sntpc.initd b/main/sntpc/sntpc.initd
index f22af44bcc3..a9c6e973ce3 100644
--- a/main/sntpc/sntpc.initd
+++ b/main/sntpc/sntpc.initd
@@ -17,7 +17,7 @@ start() {
opts="-d"
fi
ebegin "$msg"
- start-stop-daemon --start --quiet --name sntpc \
+ start-stop-daemon --start --quiet \
--exec ${DAEMON} -- \
-i ${SNTPC_INTERVAL} $opts ${SNTPC_HOST}
eend $?
diff --git a/main/socat/APKBUILD b/main/socat/APKBUILD
index d705be3d2ff..72107e27e4f 100644
--- a/main/socat/APKBUILD
+++ b/main/socat/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Sheila Aman <sheila@vulpine.house>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=socat
-pkgver=1.7.4.3
+pkgver=1.8.0.0
pkgrel=0
pkgdesc="Multipurpose relay for binary protocols"
# test 58 CHILDDEFAULT: child process default properties... FAILED:
@@ -10,18 +10,15 @@ options="!check"
url="http://www.dest-unreach.org/socat/"
arch="all"
license="GPL-2.0-only WITH OpenSSL-Exception"
-makedepends="openssl1.1-compat-dev readline-dev linux-headers"
+makedepends="openssl-dev>3 readline-dev linux-headers"
checkdepends="bash"
-subpackages="$pkgname-doc"
+subpackages="$pkgname-doc $pkgname-scripts"
source="http://www.dest-unreach.org/socat/download/socat-$pkgver.tar.gz
use-linux-headers.patch
netdb-internal.patch
"
build() {
- # Just like Solaris, musl doesn't have getprotobynumber_r.
- # Setting the configure variable to 2 ensures it isn't used.
- sc_cv_getprotobynumber_r=2 \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -43,8 +40,15 @@ package() {
make DESTDIR="$pkgdir" install
}
+scripts() {
+ pkgdesc="$pkgdesc (helper scripts)"
+ depends="$pkgname=$pkgver-r$pkgrel bash"
+
+ amove usr/bin/socat-*.sh
+}
+
sha512sums="
-81cb34c245052b6a0ae38a711591358460b6070957af4a9eeb11a3cadb4aff184eeaedabbc7ecdc7fdf21a6126c06f90f19b24a87ce74b30bfd60a3879181046 socat-1.7.4.3.tar.gz
+edf459a9f1907a14025e13b3101ad29787f9a72795cffcd00017ce98847562884db29a95b9ae478a6a50868137548b142947c43fb18e975eb5853a763c42902c socat-1.8.0.0.tar.gz
2032b6528cb27b69d8fb6a6f64af32fcc1f6e4934bb0d7c8931b38ab7ad5e27f6f4344a6cf49751fa3178cd725f954e195373362f7d5929e587d7f0309346059 use-linux-headers.patch
22a6e0c2317a9317997c98114daac258ebbcc3d8e58e49a6ebf24781b98967afed47c63807282582fa0909076fe349281f05e4462faacb90e7aabc853903d6e6 netdb-internal.patch
"
diff --git a/main/sofia-sip/APKBUILD b/main/sofia-sip/APKBUILD
index a0a4f014381..a7604db36b4 100644
--- a/main/sofia-sip/APKBUILD
+++ b/main/sofia-sip/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=sofia-sip
-pkgver=1.13.8
+pkgver=1.13.17
pkgrel=0
pkgdesc="RFC3261 compliant SIP User-Agent library"
url="https://github.com/freeswitch/sofia-sip"
@@ -9,10 +9,20 @@ arch="all"
license="LGPL-2.1-only"
options="!check" #tests are broken
makedepends="automake autoconf libtool m4
-glib-dev openssl1.1-compat-dev lksctp-tools-dev"
+glib-dev openssl-dev>3 lksctp-tools-dev"
checkdepends="check-dev"
-subpackages="$pkgname-dev"
-source="$pkgname-$pkgver.tar.gz::https://github.com/freeswitch/sofia-sip/archive/v$pkgver.tar.gz"
+subpackages="$pkgname-dev $pkgname-dbg"
+source="$pkgname-$pkgver.tar.gz::https://github.com/freeswitch/sofia-sip/archive/v$pkgver.tar.gz
+ Support-forking-SIP-calls.patch
+ "
+
+# secfixes:
+# 1.13.11-r0:
+# - CVE-2023-22741
+# 1.13.8-r0:
+# - CVE-2022-31001
+# - CVE-2022-31002
+# - CVE-2022-31003
prepare() {
default_prepare
@@ -42,5 +52,6 @@ doc() {
make doxygen
}
sha512sums="
-f857eb9cf25d3306476bc6d0bda786385529021d498cf0c2c779cdbae31295af4ed59a67fb0c882b09bac738623d273a94ebbda360c7a2b3d7da140852ccc6fa sofia-sip-1.13.8.tar.gz
+356577d415d6dc4191f0f49f7fa1d6f33fafdb9e455556f83e091159055a215fc1ebfa9c7dc23b5f5e533b85e23afa7b1444170419fdf137aeb2ea048de77e08 sofia-sip-1.13.17.tar.gz
+e79ba6dbc742e0dba9bb7364cf78cf192950900c139f74a59dd4e1713e97d947959a4d4987c06d29fadfd9e7dd0f970389ba640756a88e80f3093d697396a1e4 Support-forking-SIP-calls.patch
"
diff --git a/main/sofia-sip/Support-forking-SIP-calls.patch b/main/sofia-sip/Support-forking-SIP-calls.patch
new file mode 100644
index 00000000000..b2e785f1ebe
--- /dev/null
+++ b/main/sofia-sip/Support-forking-SIP-calls.patch
@@ -0,0 +1,186 @@
+From 5cdc3a4866bf6e09c10a3cb18581ae32f6e42be1 Mon Sep 17 00:00:00 2001
+From: Alex Dowad <alexinbeijing@gmail.com>
+Date: Fri, 11 Aug 2023 16:00:49 +0200
+Subject: [PATCH] Support forking SIP calls
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+When a SIP call is forked, the client will send an INVITE with the
+same Call ID and same From tag as an earlier INVITE, but with a
+different Branch ID in the topmost Via header.
+
+There were two issues with sofia-sip which prevented call forking from
+working; first, its logic for merging SIP requests (as per RFC3261
+section 8.2.2.2) did not respect the Branch ID. It would merge requests
+with a different Branch ID, which is contrary to RFC3261 section 17.2.3.
+
+Second, sofia-sip has some logic for checking whether incoming requests
+are part of an established SIP dialog or not. The matching criteria
+were such that incoming INVITE requests forking a call would be
+treated as part of the already established dialog, and then an error
+would be returned to the client, essentially telling the client that
+this new INVITE is invalid because the call is already established.
+
+Therefore, add some extra matching conditions which ensure that an
+INVITE forking a call will not be treated as part of the previously
+established call leg. The matching conditions are as specific as
+possible, to minimize the chances of unintentionally affecting how
+other types of SIP messages are handled.
+
+Implementing these new matching conditions can only be done by
+recording the Branch ID for established calls, so we can check whether
+another INVITE which comes later has the same Branch ID or a different
+one. This requires adding a new member to nta_leg_s.
+
+Co-Authored-By: João Arruda <joao.arruda@gmail.com>
+---
+ libsofia-sip-ua/nta/nta.c | 49 +++++++++++++++++++++++++--------
+ libsofia-sip-ua/nua/nua_stack.c | 1 +
+ 2 files changed, 39 insertions(+), 11 deletions(-)
+
+diff --git a/libsofia-sip-ua/nta/nta.c b/libsofia-sip-ua/nta/nta.c
+index 773d2fa1..8b23bbad 100644
+--- a/libsofia-sip-ua/nta/nta.c
++++ b/libsofia-sip-ua/nta/nta.c
+@@ -399,6 +399,7 @@ struct nta_leg_s
+
+ url_t const *leg_url; /**< Match incoming requests. */
+ char const *leg_method; /**< Match incoming requests. */
++ char const *leg_branch_id; /**< Match incoming INVITE to identify forked calls */
+
+ uint32_t leg_seq; /**< Sequence number for next transaction */
+ uint32_t leg_rseq; /**< Remote sequence number */
+@@ -685,7 +686,8 @@ static nta_leg_t *leg_find(nta_agent_t const *sa,
+ url_t const *request_uri,
+ sip_call_id_t const *i,
+ char const *from_tag,
+- char const *to_tag);
++ char const *to_tag,
++ char const *branch_id);
+ static nta_leg_t *dst_find(nta_agent_t const *sa, url_t const *u0,
+ char const *method);
+ static void leg_recv(nta_leg_t *, msg_t *, sip_t *, tport_t *);
+@@ -3134,7 +3136,8 @@ void agent_recv_request(nta_agent_t *agent,
+ method_name, url,
+ sip->sip_call_id,
+ sip->sip_from->a_tag,
+- sip->sip_to->a_tag))) {
++ sip->sip_to->a_tag,
++ sip->sip_via ? sip->sip_via->v_branch : NULL))) {
+ /* Try existing dialog */
+ SU_DEBUG_5(("nta: %s (%u) %s\n",
+ method_name, cseq, "going to existing leg"));
+@@ -4316,6 +4319,7 @@ nta_leg_t *nta_leg_tcreate(nta_agent_t *agent,
+ su_home_t *home;
+ url_t *url;
+ char const *what = NULL;
++ sip_via_t *via = NULL;
+
+ if (agent == NULL)
+ return su_seterrno(EINVAL), NULL;
+@@ -4333,6 +4337,7 @@ nta_leg_t *nta_leg_tcreate(nta_agent_t *agent,
+ SIPTAG_TO_REF(to),
+ SIPTAG_TO_STR_REF(to_str),
+ SIPTAG_ROUTE_REF(route),
++ SIPTAG_VIA_REF(via),
+ NTATAG_TARGET_REF(contact),
+ NTATAG_REMOTE_CSEQ_REF(rseq),
+ SIPTAG_CSEQ_REF(cs),
+@@ -4353,6 +4358,13 @@ nta_leg_t *nta_leg_tcreate(nta_agent_t *agent,
+ return NULL;
+ home = leg->leg_home;
+
++ if (via) {
++ SU_DEBUG_9(("nta_leg_tcreate(): setting branch ID to: %s\n", via->v_branch));
++ leg->leg_branch_id = su_strdup(home, via->v_branch);
++ } else {
++ leg->leg_branch_id = NULL;
++ }
++
+ leg->leg_agent = agent;
+ nta_leg_bind(leg, callback, magic);
+
+@@ -4821,12 +4833,12 @@ nta_leg_by_replaces(nta_agent_t *sa, sip_replaces_t const *rp)
+
+ id->i_hash = msg_hash_string(id->i_id = rp->rp_call_id);
+
+- leg = leg_find(sa, NULL, NULL, id, from_tag, to_tag);
++ leg = leg_find(sa, NULL, NULL, id, from_tag, to_tag, NULL);
+
+ if (leg == NULL && strcmp(from_tag, "0") == 0)
+- leg = leg_find(sa, NULL, NULL, id, NULL, to_tag);
++ leg = leg_find(sa, NULL, NULL, id, NULL, to_tag, NULL);
+ if (leg == NULL && strcmp(to_tag, "0") == 0)
+- leg = leg_find(sa, NULL, NULL, id, from_tag, NULL);
++ leg = leg_find(sa, NULL, NULL, id, from_tag, NULL, NULL);
+ }
+
+ return leg;
+@@ -5054,7 +5066,8 @@ nta_leg_t *nta_leg_by_dialog(nta_agent_t const *agent,
+ NULL, url,
+ call_id,
+ remote_tag,
+- local_tag);
++ local_tag,
++ NULL);
+
+ if (to_be_freed) su_free(NULL, to_be_freed);
+
+@@ -5073,7 +5086,8 @@ nta_leg_t *leg_find(nta_agent_t const *sa,
+ url_t const *request_uri,
+ sip_call_id_t const *i,
+ char const *from_tag,
+- char const *to_tag)
++ char const *to_tag,
++ char const *branch_id)
+ {
+ hash_value_t hash = i->i_hash;
+ leg_htable_t const *lht = sa->sa_dialogs;
+@@ -5123,6 +5137,13 @@ nta_leg_t *leg_find(nta_agent_t const *sa,
+ if (leg_method && method_name && !su_casematch(method_name, leg_method))
+ continue;
+
++ /* Do not match if incoming INVITE To header has no tag AND the topmost Via
++ * Header branch ID in the incoming is different from the existing leg
++ * (this means it's a call being forked)
++ */
++ if (!to_tag && su_casematch(method_name, "INVITE") && branch_id && leg->leg_branch_id && !su_casematch(branch_id, leg->leg_branch_id))
++ continue;
++
+ /* Perfect match if both local and To have tag
+ * or local does not have tag.
+ */
+@@ -6238,10 +6259,16 @@ static nta_incoming_t *incoming_find(nta_agent_t const *agent,
+
+ /* RFC3261 - section 8.2.2.2 Merged Requests */
+ if (return_merge) {
+- if (irq->irq_cseq->cs_method == cseq->cs_method &&
+- strcmp(irq->irq_cseq->cs_method_name,
+- cseq->cs_method_name) == 0)
+- *return_merge = irq, return_merge = NULL;
++ /* RFC3261 - section 17.2.3 Matching Requests to Server Transactions */
++ if (irq->irq_via->v_branch &&
++ su_casematch(irq->irq_via->v_branch, v->v_branch) &&
++ su_casematch(irq->irq_via->v_host, v->v_host) &&
++ su_strmatch(irq->irq_via->v_port, v->v_port)) {
++ if (irq->irq_cseq->cs_method == cseq->cs_method &&
++ strcmp(irq->irq_cseq->cs_method_name,
++ cseq->cs_method_name) == 0)
++ *return_merge = irq, return_merge = NULL;
++ }
+ }
+ }
+
+diff --git a/libsofia-sip-ua/nua/nua_stack.c b/libsofia-sip-ua/nua/nua_stack.c
+index 2e4dacba..ddbea532 100644
+--- a/libsofia-sip-ua/nua/nua_stack.c
++++ b/libsofia-sip-ua/nua/nua_stack.c
+@@ -1084,6 +1084,7 @@ nua_handle_t *nua_stack_incoming_handle(nua_t *nua,
+ SIPTAG_CALL_ID(sip->sip_call_id),
+ SIPTAG_FROM(sip->sip_to),
+ SIPTAG_TO(sip->sip_from),
++ SIPTAG_VIA(sip->sip_via),
+ NTATAG_REMOTE_CSEQ(sip->sip_cseq->cs_seq),
+ TAG_END());
+
diff --git a/main/softhsm/APKBUILD b/main/softhsm/APKBUILD
index 5c4bcd1d025..60207bcc8c4 100644
--- a/main/softhsm/APKBUILD
+++ b/main/softhsm/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=softhsm
pkgver=2.6.1
-pkgrel=3
+pkgrel=4
pkgdesc="cryptographic store accessible through a PKCS #11"
url="https://www.opendnssec.org/softhsm/"
arch="all"
@@ -15,6 +15,12 @@ source="https://dist.opendnssec.org/source/softhsm-$pkgver.tar.gz
"
options="!check" # hangs on the builders
+prepare() {
+ default_prepare
+ update_config_guess
+ update_config_sub
+}
+
build() {
./configure \
--prefix=/usr \
diff --git a/main/source-highlight/APKBUILD b/main/source-highlight/APKBUILD
index c0b6b759e07..505b68f62b5 100644
--- a/main/source-highlight/APKBUILD
+++ b/main/source-highlight/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=source-highlight
pkgver=3.1.9
-pkgrel=5
+pkgrel=12
pkgdesc="Produces a document with syntax highlighting"
url="https://www.gnu.org/software/src-highlite/"
arch="all"
@@ -12,8 +12,14 @@ checkdepends="diffutils"
subpackages="$pkgname-dev $pkgname-doc"
source="https://ftp.gnu.org/gnu/src-highlite/source-highlight-$pkgver.tar.gz
gcc11.patch
+ gcc12.patch
"
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
./configure \
--build=$CBUILD \
@@ -34,4 +40,5 @@ package() {
sha512sums="
d8e154e9a5d62c77807e4e5d36c0faed5ce2964291be5f8b83e2968a6de52229503689a4ca2109a717ae2632a14b63ec937ca0430c91684c72063f6bc0294195 source-highlight-3.1.9.tar.gz
91b009a754648a32a6332ffcac99853f12bd3b88a462b524180bfd366d736fac79570401599ca67c820117768aea781c96931c730f6fe757a471cf83f1110eb7 gcc11.patch
+1348aa9eaf4167b65e197b82e7e21897e4a0290181a08999450dcac7a060f589fa9b644ecb7786a654f2fba216d2cab405955f506ab7da96ac1ff36f2b641156 gcc12.patch
"
diff --git a/main/source-highlight/gcc12.patch b/main/source-highlight/gcc12.patch
new file mode 100644
index 00000000000..b062f5df057
--- /dev/null
+++ b/main/source-highlight/gcc12.patch
@@ -0,0 +1,82 @@
+Patch-Source: https://git.savannah.gnu.org/cgit/src-highlite.git/commit/?id=ab9fe5cb9b85c5afab94f2a7f4b6d7d473c14ee9
+From ab9fe5cb9b85c5afab94f2a7f4b6d7d473c14ee9 Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyich@gmail.com>
+Date: Mon, 8 Nov 2021 23:30:42 +0000
+Subject: Fix tests build failure on clang and gcc-12
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Both gcc-12 and clang can't find ostream<<(..., std::pair<...>)
+overload when compile lib/tests/test_wordtokenizer_main.cpp and
+fail as:
+
+ ./../srchilite/tostringcollection.h:103:9:
+ error no match for «operator<<» (operand types are «std::ostringstream»
+ {aka «std::__cxx11::basic_ostringstream<char>»}
+ and «const std::pair<std::__cxx11::basic_string<char>,
+ std::__cxx11::basic_string<char> >»)
+ 103 | buf << (*it);
+ | ~~~~^~~~~~~~
+
+We fix it by placing overload to std namespace where std::pair<...>
+is defined to make ADL work predictably.
+
+clang also has a trouble compiling lib/tests/stdboosterror.h as:
+
+ ./stdboosterror.h:7:72: error: parameter declarator cannot be qualified
+ std_boost_exception(boost::regex_error(boost::regex_constants::error_bad_pattern));
+ ~~~~~~~~~~~~~~~~~~~~~~~~^
+
+gcc compiles it by accident: https://gcc.gnu.org/PR86564
+
+Let's disambiguate syntax by making it an explicit constructor call.
+---
+ lib/tests/stdboosterror.h | 2 +-
+ lib/tests/test_wordtokenizer_main.cpp | 10 ++++++++++
+ 2 files changed, 11 insertions(+), 1 deletion(-)
+
+diff --git a/lib/tests/stdboosterror.h b/lib/tests/stdboosterror.h
+index 568545b..d59bfa6 100644
+--- a/lib/tests/stdboosterror.h
++++ b/lib/tests/stdboosterror.h
+@@ -4,7 +4,7 @@
+ #include <boost/regex/pattern_except.hpp>
+
+ static boost::regex_error
+- std_boost_exception(boost::regex_error(boost::regex_constants::error_bad_pattern));
++ std_boost_exception = boost::regex_error(boost::regex_constants::error_bad_pattern);
+
+ /**
+ * returns the string representing a standard exception (which
+diff --git a/lib/tests/test_wordtokenizer_main.cpp b/lib/tests/test_wordtokenizer_main.cpp
+index 40e23b1..11ba389 100644
+--- a/lib/tests/test_wordtokenizer_main.cpp
++++ b/lib/tests/test_wordtokenizer_main.cpp
+@@ -11,6 +11,14 @@
+ using namespace std;
+ using namespace srchilite;
+
++/*
++ * We have to use 'std' namespaces because 'WordTokenizer::WordTokenizerResults::value_type'
++ * is an std::pair<std::string, std::string> in disguise. We have to place 'operator<<()'
++ * into the same namespace for ADL to work. Otherwise gcc-12 or clang-13 can't find the
++ * overload.
++ */
++namespace std {
++
+ static ostream &operator <<(ostream &os, const WordTokenizer::WordTokenizerResults::value_type &);
+
+ ostream &operator <<(ostream &os, const WordTokenizer::WordTokenizerResults::value_type &token) {
+@@ -23,6 +31,8 @@ ostream &operator <<(ostream &os, const WordTokenizer::WordTokenizerResults::val
+ return os;
+ }
+
++}
++
+ int main() {
+ WordTokenizer::WordTokenizerResults tokens;
+
+--
+cgit v1.1
+
diff --git a/main/spamassassin/APKBUILD b/main/spamassassin/APKBUILD
index 81c84992773..9c9dd346103 100644
--- a/main/spamassassin/APKBUILD
+++ b/main/spamassassin/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: Valery Kartel <valery.kartel@gmail.com>
-# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
+# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=spamassassin
_pkgreal=Mail-SpamAssassin
pkgver=3.4.6
-pkgrel=3
+pkgrel=7
pkgdesc="The Powerful #1 Open-Source Spam Filter"
url="https://metacpan.org/pod/Mail::SpamAssassin"
arch="all"
@@ -94,7 +94,7 @@ sha512sums="
7910852f04463a7363a2fc3b70a35adadf5714552e57c5b8ca57beaa534ee18d9f06526cdbcf8bcd5781e5ca778f98d2f84ef2efd1872fa550cfe1689440364a Mail-SpamAssassin-3.4.6.tar.gz
0a22933290a3abd147689bf3a9de4b6b277628c22966f353c5da932cd98560babf1d0bb9d92c456ea24decfb5af0bbc960192d29a90d9cab437e7986c75c8278 spamd.initd
274d3aa0d9aab05e83c8d5ad3e93a457649360021a67c8cb19088365bed681ebe26889cfa86f8c46a6044c7ee969231f2a71e3227adf8ad9e38d0286b9caf48d spamd.confd
-a08854bb12fbd4a5f32e2b3176de8d70c4b64aa58ed8debb6de21a4dabc5c5a750dd89a48dd518e5a3579b3e90b09085b736cae0b1cf3790a02226aa32d44b5c spamd.crond
+2ad52adfb6eb2ab28d59311853572ef4c5858e5b3cee1b8ff8c16f1d605e537e823746376bf468b6f041d953f24d5592940686024bc91153d5ec886d65fd16b3 spamd.crond
66a6daa7e9898864497e7d8e17efc6094aabc5a9a94afbc7da08acf4cf2430fad2cb0128b8db4be637f5dcabe3fa9f03490f9d7cbba3c1cc02b7824f63cd0965 Mail-SpamAssassin.patch
6eda2d1073bcf999a976de3e4e2c928a044d46962ce1a4f169078bfc017fb7d0f39d2fc78b17734c2d936649b34638abed3cf9ebeb51614531134289eb23afa6 fix-test.patch
a2d0625b2224641abd338879044f7dcb4c47d09cbc6318c978b88e70e40d0129a7d68e97458ea2d23afcc465f99805a6359153d09e9fc9da881de31ad7a27c4a taint.patch
diff --git a/main/spamassassin/spamd.crond b/main/spamassassin/spamd.crond
index bc03499b0e4..7e281536234 100644..100755
--- a/main/spamassassin/spamd.crond
+++ b/main/spamassassin/spamd.crond
@@ -10,7 +10,17 @@ pidfile="${pidfile:-/run/spamd.pid}"
if [ -f "$pidfile" ]; then
_pid="$(cat "$pidfile")"
fi
-/usr/bin/sa-update
+/usr/bin/sa-update && R=0 || R=$?
+case "$R" in
+0)
+ ;;
+1)
+ # "No fresh updates were available"; see sa-update(1)
+ exit 0
+ ;;
+*)
+ exit $R
+esac
if [ -n "$_pid" ]; then
kill -SIGHUP "$_pid"
fi
diff --git a/main/spandsp/APKBUILD b/main/spandsp/APKBUILD
index 1c80f95ff86..ef6c36ae16d 100644
--- a/main/spandsp/APKBUILD
+++ b/main/spandsp/APKBUILD
@@ -1,9 +1,9 @@
# Contributor: Carlo Landmeter
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=spandsp
pkgver=0.0.6
_ver=${pkgver/_/}
-pkgrel=1
+pkgrel=5
pkgdesc="SpanDSP is a library of DSP functions for telephony"
url="https://www.soft-switch.org/installing-spandsp.html"
arch="all"
@@ -12,15 +12,14 @@ makedepends="tiff-dev"
subpackages="$pkgname-dev"
source="https://deb.debian.org/debian/pool/main/s/spandsp/spandsp_$pkgver+dfsg.orig.tar.xz"
builddir="$srcdir"/$pkgname-$pkgver+dfsg
+options="!check"
prepare() {
- cd "$builddir"
default_prepare
update_config_sub
}
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -32,7 +31,6 @@ build() {
}
package() {
- cd "$builddir"
make -j1 DESTDIR="$pkgdir" install
}
diff --git a/main/spandsp3/APKBUILD b/main/spandsp3/APKBUILD
index 31e5782fdf1..5ebce5b2c96 100644
--- a/main/spandsp3/APKBUILD
+++ b/main/spandsp3/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=spandsp3
pkgver=0_git20201102
-pkgrel=0
+pkgrel=3
pkgdesc="SpanDSP is a library of DSP functions for telephony"
url="https://www.soft-switch.org/installing-spandsp.html"
arch="all"
diff --git a/main/spawn-fcgi/APKBUILD b/main/spawn-fcgi/APKBUILD
index 10cec2d46e9..1ba254b503a 100644
--- a/main/spawn-fcgi/APKBUILD
+++ b/main/spawn-fcgi/APKBUILD
@@ -1,35 +1,33 @@
-# Maintainer:
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
# Contributor: Eivind Uggedal <eu@eju.no>
pkgname=spawn-fcgi
-pkgver=1.6.4
+pkgver=1.6.5
pkgrel=4
pkgdesc="Spawn FastCGI applications"
-url="http://redmine.lighttpd.net/projects/spawn-fcgi/"
+url="https://redmine.lighttpd.net/projects/spawn-fcgi/"
arch="all"
license="BSD-3-Clause"
-depends=""
-makedepends=""
-subpackages="$pkgname-doc"
-source="https://www.lighttpd.net/download/$pkgname-$pkgver.tar.bz2
+subpackages="$pkgname-doc $pkgname-openrc"
+source="https://download.lighttpd.net/spawn-fcgi/releases-${pkgver%.*}.x/spawn-fcgi-$pkgver.tar.xz
$pkgname.confd
$pkgname.initd
"
-builddir="$srcdir/$pkgname-$pkgver"
+options="!check"
build() {
- cd "$builddir"
./configure --prefix=/usr
make
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
install -Dm644 "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
}
-sha512sums="defe3b0e21952f6a852237f4677b446757bd0dbccc6609beb2094c59b12de7814a76525554731ad3b52d10060bb0b4060b4f5c4fc3e14cd35f59c30cc583b6b9 spawn-fcgi-1.6.4.tar.bz2
+sha512sums="
+a6dc2a977953e1092c0b6808b134dfda77869a5c86801d04cfe9e00ee1dcd528d4e2c3adc906f6b6130d6f2cdafd436ba550197701c8b27bbc5a8419e02d269c spawn-fcgi-1.6.5.tar.xz
44fdc908b868d890713b1eee8f8f5a7ff1a26d0665aa368e76587d479934bbda0a3e4ccd53953fef524103630261c40495cd58963fdea11a47e2cd0f23e1dcf6 spawn-fcgi.confd
-c6b44dbdac2ac53d7c26acfa1d433dd81d12fce35e9ba0c7d1341e5da16c6453fdd65de073b22a091b425799b01f08385b3293e33f505d4c26764826e5ab9084 spawn-fcgi.initd"
+c6b44dbdac2ac53d7c26acfa1d433dd81d12fce35e9ba0c7d1341e5da16c6453fdd65de073b22a091b425799b01f08385b3293e33f505d4c26764826e5ab9084 spawn-fcgi.initd
+"
diff --git a/main/speedtest-cli/APKBUILD b/main/speedtest-cli/APKBUILD
deleted file mode 100644
index 85dd4ef230c..00000000000
--- a/main/speedtest-cli/APKBUILD
+++ /dev/null
@@ -1,26 +0,0 @@
-# Contributor: Francesco Colista <fcolista@alpinelinux.org>
-# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
-pkgname=speedtest-cli
-pkgver=2.1.3
-pkgrel=2
-pkgdesc="Command line interface for testing internet bandwidth using speedtest.net"
-url="https://github.com/sivel/speedtest-cli"
-arch="noarch"
-license="Apache-2.0"
-depends="python3"
-makedepends="py3-setuptools"
-source="$pkgname-$pkgver.tar.gz::https://github.com/sivel/speedtest-cli/archive/v$pkgver.tar.gz"
-
-build() {
- python3 setup.py build
-}
-
-check() {
- python3 tests/scripts/source.py
-}
-
-package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir"
-}
-
-sha512sums="e2ecd9b4eea95e3641045c3da217ec5a39846b26c1f773fdd31c6ffe3cb5e35341320fc1992f865af48afd1a704c4d4224f9ec4048abb69131ee2f32385ae94c speedtest-cli-2.1.3.tar.gz"
diff --git a/main/speex/APKBUILD b/main/speex/APKBUILD
index aba0c4e90eb..eb210102dc8 100644
--- a/main/speex/APKBUILD
+++ b/main/speex/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=speex
pkgver=1.2.1
-pkgrel=0
+pkgrel=2
pkgdesc="an audio compression format designed for speech"
url="https://www.speex.org/"
arch="all"
diff --git a/main/speexdsp/APKBUILD b/main/speexdsp/APKBUILD
index 21622e7216d..a515568641d 100644
--- a/main/speexdsp/APKBUILD
+++ b/main/speexdsp/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=speexdsp
pkgver=1.2.1
-pkgrel=0
+pkgrel=2
pkgdesc="A voice compression format (DSP)"
url="https://www.speex.org/"
arch="all"
diff --git a/main/spice-protocol/APKBUILD b/main/spice-protocol/APKBUILD
index 41276071bfc..a920128ecaf 100644
--- a/main/spice-protocol/APKBUILD
+++ b/main/spice-protocol/APKBUILD
@@ -1,23 +1,25 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=spice-protocol
-pkgver=0.14.3
-pkgrel=0
+pkgver=0.14.4
+pkgrel=1
pkgdesc="Spice protocol header files"
url="http://www.spice-space.org/"
arch="noarch"
-license="BSD-3-Clause LGPL-2.1-or-later"
+license="BSD-3-Clause AND LGPL-2.1-or-later"
options="!check" # No test suite
makedepends="meson"
source="https://www.spice-space.org/download/releases/spice-protocol-$pkgver.tar.xz"
build() {
abuild-meson build
- meson compile ${JOBS:+-j ${JOBS}} -C build/
+ meson compile -C build/
}
package() {
DESTDIR="$pkgdir" meson install --no-rebuild -C build
}
-sha512sums="9e35fd0d9be14074a482bdb20fe6954e5f0a616d0ad60da63a065435df2b169ec134a95d5756df73e2606c7497c9bf0427023d4e5ebfbb1abb181cf8020879a6 spice-protocol-0.14.3.tar.xz"
+sha512sums="
+c55677fd6da37303487f8245388cbd555715c736e15bca4a305c4374feafc655b74e549ea401949d72e17b2e6ad76f16c5add3963008a18a1fefedd4b4a001c1 spice-protocol-0.14.4.tar.xz
+"
diff --git a/main/spice/APKBUILD b/main/spice/APKBUILD
index de2a16c7d9e..5daef9f8b4b 100644
--- a/main/spice/APKBUILD
+++ b/main/spice/APKBUILD
@@ -1,34 +1,33 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=spice
-pkgver=0.15.0
-pkgrel=2
+pkgver=0.15.2
+pkgrel=1
pkgdesc="Implements the SPICE protocol"
url="http://www.spice-space.org/"
arch="all"
license="LGPL-2.0-or-later"
makedepends="
- meson
- spice-protocol
- glib-dev
+ cyrus-sasl-dev
gdk-pixbuf-dev
- pixman-dev
- openssl1.1-compat-dev
+ glib-dev
+ gst-plugins-base-dev
+ gstreamer-dev
libjpeg-turbo-dev
- zlib-dev
+ lz4-dev
+ meson
+ openssl-dev>3
opus-dev
- gstreamer-dev
- gst-plugins-base-dev
orc-dev
- lz4-dev
- cyrus-sasl-dev
- py3-six
+ pixman-dev
py3-parsing
+ py3-six
+ spice-protocol
+ zlib-dev
"
-subpackages="$pkgname-dev $pkgname-server"
+subpackages="$pkgname-dev"
source="https://www.spice-space.org/download/releases/spice-server/spice-$pkgver.tar.bz2
failing-tests.patch
- fix-build.patch
"
# secfixes:
@@ -48,31 +47,26 @@ source="https://www.spice-space.org/download/releases/spice-server/spice-$pkgver
build() {
abuild-meson \
+ -Db_lto=true \
-Dgstreamer=1.0 \
-Dlz4=true \
-Dsasl=true \
-Dopus=enabled \
-Dsmartcard=disabled \
. output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
check() {
- meson test --no-rebuild -v -C output
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
+ provides="$pkgname-server=$pkgver-r$pkgrel"
DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
-server() {
- pkgdesc="Server library for SPICE"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*server.so.* "$subpkgdir"/usr/lib/
-}
-
sha512sums="
-0a776d191c395ce1f7ebbbac47956a00a2765327d3127aeca6e232bd56fd4ccd28750ae1599eb6eb2909ac909cda517d5511faa631166db16b8b75bd4e7b86d9 spice-0.15.0.tar.bz2
-96f3f4e8d7d0582bf6ac23649cf90e4f23a8670bf251308fdc4736bcc243c977b50731b16047256a981259e3928e48e2b410624530748bcd285b3187f35fed88 failing-tests.patch
-b61ae910c08e26c7788682f6b5df8190c9db7802858f9ca05093bb1bafd226adc2f16382721e4f63cbc09b7196f9ac967d0175c1e16253028e94fa27372ab8e6 fix-build.patch
+c8f273b9e97ef38a03b331f7d32c5f0a09d540523fe626568c845152cbd22273a92b3a08bc13fa2e061b913ad16ceb7cbddf142655cd9cdcd8eb5f646fa6aa26 spice-0.15.2.tar.bz2
+4fe7665ba7ef63d92570a870eb74f907e9d68f465e6607de7f16233c1d4cd209f390b3d51e2f9da1dd2365027e0402c042396d049d8e78e1eebdd3f5c56686d5 failing-tests.patch
"
diff --git a/main/spice/failing-tests.patch b/main/spice/failing-tests.patch
index a32e0341489..413d7fd387d 100644
--- a/main/spice/failing-tests.patch
+++ b/main/spice/failing-tests.patch
@@ -1,8 +1,18 @@
diff --git a/server/tests/meson.build b/server/tests/meson.build
-index 09ba0f2..9833746 100644
+index 1ae7d37..e93334e 100644
--- a/server/tests/meson.build
+++ b/server/tests/meson.build
-@@ -52,7 +52,6 @@
+@@ -42,17 +42,14 @@ tests = [
+ ['test-dispatcher', true, 'cpp'],
+ ['test-options', true],
+ ['test-stat', true],
+- ['test-agent-msg-filter', true],
+ ['test-loop', true],
+ ['test-qxl-parsing', true, 'cpp'],
+- ['test-leaks', true],
+ ['test-vdagent', true],
+ ['test-fail-on-null-core-interface', true],
+ ['test-empty-success', true],
['test-channel', true, 'cpp'],
['test-stream-device', true, 'cpp'],
['test-set-ticket', true],
@@ -10,7 +20,7 @@ index 09ba0f2..9833746 100644
['test-record', true],
['test-display-no-ssl', false],
['test-display-streaming', false],
-@@ -62,10 +61,6 @@
+@@ -62,10 +59,6 @@ tests = [
['test-display-width-stride', false],
]
@@ -21,23 +31,3 @@ index 09ba0f2..9833746 100644
if spice_server_has_smartcard == true
tests += [['test-smartcard', true, 'cpp']]
endif
---- a/server/tests/meson.build
-+++ b/server/tests/meson.build
-@@ -42,7 +42,6 @@
- ['test-dispatcher', true, 'cpp'],
- ['test-options', true],
- ['test-stat', true],
-- ['test-agent-msg-filter', true],
- ['test-loop', true],
- ['test-qxl-parsing', true],
- ['test-leaks', true],
---- a/server/tests/meson.build
-+++ b/server/tests/meson.build
-@@ -44,7 +44,6 @@
- ['test-stat', true],
- ['test-loop', true],
- ['test-qxl-parsing', true],
-- ['test-leaks', true],
- ['test-vdagent', true],
- ['test-fail-on-null-core-interface', true],
- ['test-empty-success', true],
diff --git a/main/spice/fix-build.patch b/main/spice/fix-build.patch
deleted file mode 100644
index 76c2c3189ca..00000000000
--- a/main/spice/fix-build.patch
+++ /dev/null
@@ -1,7 +0,0 @@
-diff --git a/doxygen.sh a/doxygen.sh
-new file mode 100755
-index 0000000000..1a2485251c
---- /dev/null
-+++ a/doxygen.sh
-@@ -0,0 +1 @@
-+#!/bin/sh
diff --git a/main/spirv-headers/APKBUILD b/main/spirv-headers/APKBUILD
index a72e393fabf..99fadf30ced 100644
--- a/main/spirv-headers/APKBUILD
+++ b/main/spirv-headers/APKBUILD
@@ -2,8 +2,7 @@
# Maintainer: Simon Zeni <simon@bl4ckb0ne.ca>
pkgname=spirv-headers
_pkgname=SPIRV-Headers
-pkgver=1.3.216.0
-_pkgver=sdk-$pkgver
+pkgver=1.3.261.1
pkgrel=0
pkgdesc="Machine-readable files for the SPIR-V Registry"
options="!check" # No testsuite
@@ -11,8 +10,8 @@ url="https://github.com/KhronosGroup/SPIRV-Headers"
arch="noarch"
license="GPL-3.0-or-later"
makedepends="cmake samurai"
-source="$pkgname-$pkgver.tar.gz::https://github.com/KhronosGroup/SPIRV-Headers/archive/refs/tags/$_pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$_pkgver"
+source="$pkgname-$pkgver.tar.gz::https://github.com/KhronosGroup/SPIRV-Headers/archive/refs/tags/sdk-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-sdk-$pkgver"
build() {
cmake -B build -G Ninja \
@@ -28,5 +27,5 @@ package() {
}
sha512sums="
-951715cf62a643bfce6a3854f2206b95dd65e60b27355a2f290e829da0f06e19877e9dfcbf53f455b8a0524fb851a851742f3e16bb29be2f470cd62d3a8fc8f0 spirv-headers-1.3.216.0.tar.gz
+46d14e993d58e641ec4d2bb96e76f4f2bd8426fb1e33b77e7d053cea80dcf5ffae3d4d6136559d4a66387fba3a4e4a4a74ad5af83445a3be0d171e47414599e1 spirv-headers-1.3.261.1.tar.gz
"
diff --git a/main/spirv-llvm-translator/APKBUILD b/main/spirv-llvm-translator/APKBUILD
new file mode 100644
index 00000000000..03c827da582
--- /dev/null
+++ b/main/spirv-llvm-translator/APKBUILD
@@ -0,0 +1,65 @@
+# Contributor: Dennis Krupenik <dennis@krupenik.com>
+# Maintainer: Simon Zeni <simon@bl4ckb0ne.ca>
+pkgname=spirv-llvm-translator
+_pkgname=SPIRV-LLVM-Translator
+pkgver=17.0.0
+pkgrel=0
+pkgdesc="Library for bi-directional translation between SPIR-V and LLVM IR"
+url="https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
+arch="all"
+license="NCSA"
+_llvmver=${pkgver%%.*}
+depends_dev="
+ $pkgname=$pkgver-r$pkgrel
+ llvm$_llvmver-dev
+ spirv-tools-dev
+ "
+makedepends="
+ $depends_dev
+ clang
+ cmake
+ libxml2-dev
+ llvm$_llvmver-static
+ llvm$_llvmver-gtest
+ samurai
+ "
+checkdepends="llvm$_llvmver-test-utils"
+subpackages="$pkgname-dev $pkgname-libs"
+source="https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/v$pkgver/$_pkgname-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-$pkgver"
+options="!check" # invalid files passed to lit?
+
+case "$CARCH" in
+x86_64) ;;
+# Failing tests
+*) options="!check";;
+esac
+
+build() {
+ if [ "$CBUILD" != "$CHOST" ]; then
+ CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ fi
+ CC=clang \
+ CXX=clang++ \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_SHARED_LIBS=True \
+ -DLLVM_SPIRV_INCLUDE_TESTS=1 \
+ -DLLVM_EXTERNAL_LIT=/usr/lib/llvm$_llvmver/bin/lit \
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=/usr/include/spirv \
+ $CMAKE_CROSSOPTS
+ cmake --build build
+}
+
+check() {
+ ctest --test-dir build --output-on-failure
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+ee54e597c678755cb48d677f81184d66616c7be934b570e04f0106e64c15f1cab124177b757f08a7713fa7fce981c74d61304d4554e6d198e6c14c53abf1e81c SPIRV-LLVM-Translator-17.0.0.tar.gz
+"
diff --git a/main/spirv-tools/APKBUILD b/main/spirv-tools/APKBUILD
index 3be378ee143..ded624d43ac 100644
--- a/main/spirv-tools/APKBUILD
+++ b/main/spirv-tools/APKBUILD
@@ -2,8 +2,7 @@
# Maintainer: Simon Zeni <simon@bl4ckb0ne.ca>
pkgname=spirv-tools
_pkgname=SPIRV-Tools
-pkgver=1.3.216.0
-_pkgver=sdk-$pkgver
+pkgver=1.3.261.1
pkgrel=0
pkgdesc="API and commands for processing SPIR-V modules"
url="https://github.com/KhronosGroup/SPIRV-Tools"
@@ -12,14 +11,16 @@ license="Apache-2.0"
depends_dev="spirv-headers $pkgname=$pkgver-r$pkgrel"
makedepends="$depends_dev cmake samurai python3"
subpackages="$pkgname-dev $pkgname-dbg"
-source="$pkgname-$pkgver.tar.gz::https://github.com/KhronosGroup/SPIRV-tools/archive/refs/tags/$_pkgver.tar.gz"
-builddir="$srcdir/$_pkgname-$_pkgver"
+source="$pkgname-$pkgver.tar.gz::https://github.com/KhronosGroup/SPIRV-tools/archive/refs/tags/sdk-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-sdk-$pkgver"
build() {
if [ "$CBUILD" != "$CHOST" ]; then
CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
fi
+ # reduce size of debug syms, lto
+ CXXFLAGS="$CXXFLAGS -g1 -flto=auto" \
cmake -B build -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCMAKE_INSTALL_LIBDIR=lib \
@@ -44,5 +45,5 @@ package() {
}
sha512sums="
-85418189962611724488ea61f1b123c55c2f5ab9dd50d028c7ed1ed2965ff23e2679d514e863ac16b60a3c7c6b4fbd05e7c7ff398415e0435d72c96363b95188 spirv-tools-1.3.216.0.tar.gz
+cb356885d105083744abf97a88aebd0d3c462eaa9cbb7e556afcab5d574546a2156ef212b91c317767ccd0006b6020a5accc10ffcccb56cadcabadc98af82521 spirv-tools-1.3.261.1.tar.gz
"
diff --git a/main/sprunge/APKBUILD b/main/sprunge/APKBUILD
index d7e03d78313..66fc085e643 100644
--- a/main/sprunge/APKBUILD
+++ b/main/sprunge/APKBUILD
@@ -2,17 +2,17 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=sprunge
pkgver=0.7
-pkgrel=1
+pkgrel=2
pkgdesc="Helper script to paste things to http://sprunge.us"
url="http://sprunge.us"
arch="noarch"
license="GPL-2.0-only"
depends="curl"
subpackages="tpaste dpaste dpaste-de:dpaste_de ix"
+options="!check"
builddir="$srcdir"
package() {
- cd "$builddir"
mkdir -p "$pkgdir"/usr/bin
printf "#!/bin/sh\n\nexec curl -F 'sprunge=<-' http://sprunge.us" > \
"$pkgdir"/usr/bin/sprunge
@@ -20,7 +20,6 @@ package() {
}
tpaste() {
- cd "$builddir"
url="https://tpaste.us"
pkgdesc="Helper script to paste things to $url"
mkdir -p "$subpkgdir"/usr/bin
@@ -52,7 +51,6 @@ dpaste_de() {
}
ix() {
- cd "$builddir"
url="http://ix.io"
pkgdesc="Helper script to paste things to $url"
mkdir -p "$subpkgdir"/usr/bin
diff --git a/main/sqlite-tcl/APKBUILD b/main/sqlite-tcl/APKBUILD
index 2ada719380e..7136ae14295 100644
--- a/main/sqlite-tcl/APKBUILD
+++ b/main/sqlite-tcl/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
pkgname=sqlite-tcl
-pkgver=3.39.0
+pkgver=3.45.3
pkgrel=0
pkgdesc="Sqlite Tcl Extension Architecture (TEA)"
url="https://www.sqlite.org/"
@@ -13,9 +13,9 @@ options="!check" # no testsuite from upstream
# compute _ver
_a=${pkgver%%.*}
-_b=${pkgver#$_a.}
+_b=${pkgver#"$_a".}
_b=${_b%%.*}
-_c=${pkgver#$_a.$_b.}
+_c=${pkgver#"$_a"."$_b".}
_c=${_c%%.*}
case $pkgver in
*.*.*.*)_d=${pkgver##*.};;
@@ -27,7 +27,9 @@ esac
_ver=${_a}${_b}${_c}$_d
# these variables depend on _ver being set
-source="https://www.sqlite.org/2022/sqlite-autoconf-$_ver.tar.gz"
+source="https://www.sqlite.org/2024/sqlite-autoconf-$_ver.tar.gz
+ include-stdint.patch
+ "
builddir="$srcdir/sqlite-autoconf-$_ver/tea"
prepare() {
@@ -65,5 +67,6 @@ package() {
}
sha512sums="
-cc6e4d9a8e821f1feae2bc69d1eb212723624e67197defbf86b7b7f1e2e80e473798964bf3863fbce728800b262851b967c7b7de008e6ccf2707e671ebb27398 sqlite-autoconf-3390000.tar.gz
+ab4bb99186ccf81d288bc5150dacd5f8a32561303fbc0c607c24b5bb5ad44e0974655cea57d05122c62e957329f5260d170d2a71cbcf818501af29903c99a391 sqlite-autoconf-3450300.tar.gz
+65d9153a2460832f0a49c07a6306af039cf6c0993df63da62f6d093ac77344605186aa16b29d7c34ffa2f2e6d3d94872af5bad5ca2e2d739a3870b68610fd21a include-stdint.patch
"
diff --git a/main/sqlite-tcl/include-stdint.patch b/main/sqlite-tcl/include-stdint.patch
new file mode 100644
index 00000000000..e545a874b7f
--- /dev/null
+++ b/main/sqlite-tcl/include-stdint.patch
@@ -0,0 +1,10 @@
+--- a/generic/tclsqlite3.c
++++ b/generic/tclsqlite3.c
+@@ -73,6 +73,7 @@
+ # endif
+ # endif /* SQLITE_PTRSIZE */
+ # if defined(HAVE_STDINT_H)
++# include <stdint.h>
+ typedef uintptr_t uptr;
+ # elif SQLITE_PTRSIZE==4
+ typedef unsigned int uptr;
diff --git a/main/sqlite/APKBUILD b/main/sqlite/APKBUILD
index 71a0b05a735..ef0cdb26b69 100644
--- a/main/sqlite/APKBUILD
+++ b/main/sqlite/APKBUILD
@@ -2,20 +2,21 @@
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
pkgname=sqlite
# NOTE: pkgver needs to correspond with sqlite-tcl
-pkgver=3.39.0
+pkgver=3.45.3
pkgrel=0
pkgdesc="C library that implements an SQL database engine"
url="https://www.sqlite.org/"
arch="all"
license="blessing"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
makedepends="readline-dev"
subpackages="$pkgname-static $pkgname-doc $pkgname-dev $pkgname-libs"
# compute _ver
_a=${pkgver%%.*}
-_b=${pkgver#$_a.}
+_b=${pkgver#"$_a".}
_b=${_b%%.*}
-_c=${pkgver#$_a.$_b.}
+_c=${pkgver#"$_a"."$_b".}
_c=${_c%%.*}
case $pkgver in
*.*.*.*)_d=${pkgver##*.};;
@@ -28,8 +29,8 @@ _ver=${_a}${_b}${_c}$_d
# these variables depend on _ver being set
builddir="$srcdir/$pkgname-autoconf-$_ver"
-source="https://www.sqlite.org/2022/sqlite-autoconf-$_ver.tar.gz
- LICENSE.md::https://www.sqlite.org/src/raw?name=LICENSE.md&ci=version-$pkgver
+source="https://www.sqlite.org/2024/sqlite-autoconf-$_ver.tar.gz
+ $pkgname-$_ver-LICENSE.md::https://www.sqlite.org/src/raw?name=LICENSE.md&ci=version-$pkgver
"
# secfixes:
@@ -46,12 +47,11 @@ source="https://www.sqlite.org/2022/sqlite-autoconf-$_ver.tar.gz
# 3.28.0-r0:
# - CVE-2019-5018
# - CVE-2019-8457
+# 0:
+# - CVE-2022-35737
# additional CFLAGS to set
-_amalgamation="-DSQLITE_ENABLE_FTS4 \
- -DSQLITE_ENABLE_FTS3_PARENTHESIS \
- -DSQLITE_ENABLE_FTS3 \
- -DSQLITE_ENABLE_FTS5 \
+_amalgamation="-DSQLITE_ENABLE_FTS3_PARENTHESIS \
-DSQLITE_ENABLE_COLUMN_METADATA \
-DSQLITE_SECURE_DELETE \
-DSQLITE_ENABLE_UNLOCK_NOTIFY \
@@ -76,7 +76,7 @@ prepare() {
}
build() {
- export CFLAGS="$CFLAGS $_amalgamation"
+ export CFLAGS="$CFLAGS $_amalgamation -O2"
./configure \
--build="$CBUILD" \
--host="$CHOST" \
@@ -85,7 +85,9 @@ build() {
--enable-readline \
--enable-static \
--enable-dynamic-extensions \
- --enable-fts3
+ --enable-fts3 \
+ --enable-fts4 \
+ --enable-fts5
# rpath removal
sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool
@@ -103,25 +105,11 @@ package() {
install -Dm0644 sqlite3.1 \
"$pkgdir"/usr/share/man/man1/sqlite3.1
- install -Dm644 "$srcdir"/LICENSE.md \
+ install -Dm644 "$srcdir"/$pkgname-$_ver-LICENSE.md \
"$pkgdir"/usr/share/licenses/$pkgname/LICENSE.md
}
-libs() {
- replaces="sqlite"
- pkgdesc="Sqlite3 library"
-
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/lib "$subpkgdir"/usr/
-}
-
-static() {
- pkgdesc="Sqlite3 static library"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/lib*.a "$subpkgdir"/usr/lib/
-}
-
sha512sums="
-cc6e4d9a8e821f1feae2bc69d1eb212723624e67197defbf86b7b7f1e2e80e473798964bf3863fbce728800b262851b967c7b7de008e6ccf2707e671ebb27398 sqlite-autoconf-3390000.tar.gz
-8a347c292363e55a8c0fa0321e3f399bfe9c9aedcb6c838123f0eb3e2a4e078d096b7c152a4981e18ee9fa50c4ef913a33ed840aeed33aee0a46e95cd17f0814 LICENSE.md
+ab4bb99186ccf81d288bc5150dacd5f8a32561303fbc0c607c24b5bb5ad44e0974655cea57d05122c62e957329f5260d170d2a71cbcf818501af29903c99a391 sqlite-autoconf-3450300.tar.gz
+8a347c292363e55a8c0fa0321e3f399bfe9c9aedcb6c838123f0eb3e2a4e078d096b7c152a4981e18ee9fa50c4ef913a33ed840aeed33aee0a46e95cd17f0814 sqlite-3450300-LICENSE.md
"
diff --git a/main/sqsh/APKBUILD b/main/sqsh/APKBUILD
index 34f329067be..53dbb9263b7 100644
--- a/main/sqsh/APKBUILD
+++ b/main/sqsh/APKBUILD
@@ -7,17 +7,18 @@ case $pkgver in
*.*.*) _v=${pkgver%.*};;
*) _v=$pkgver;;
esac
-pkgrel=4
+pkgrel=8
pkgdesc="Sybase iSQL replacement"
-url="http://www.sqsh.org"
+url="https://sourceforge.net/projects/sqsh/"
arch="all"
-license="GPL"
+license="GPL-2.0-or-later"
makedepends="freetds-dev readline-dev ncurses-dev"
subpackages="$pkgname-doc"
source="https://downloads.sourceforge.net/project/sqsh/sqsh/sqsh-$_v/sqsh-$pkgver.tgz
tds-version.patch
freetds-1.2.patch
"
+options="!check"
prepare() {
default_prepare
diff --git a/main/squark/APKBUILD b/main/squark/APKBUILD
index 91aa534aace..1b27d74be91 100644
--- a/main/squark/APKBUILD
+++ b/main/squark/APKBUILD
@@ -1,9 +1,9 @@
# Maintainer: Timo Teras <timo.teras@iki.fi>
pkgname=squark
pkgver=0.6.1
-pkgrel=3
+pkgrel=6
pkgdesc="Squid User Authentication and Rating Kit"
-url="https://git.alpinelinux.org/cgit/squark/"
+url="https://git-old.alpinelinux.org/hosted/squark/"
arch="all"
license="GPL-2.0-only"
depends="haserl"
@@ -13,6 +13,7 @@ subpackages="$pkgname-dbg $pkgname-doc"
source="https://dev.alpinelinux.org/archive/squark/squark-$pkgver.tar.xz
gcc-10.patch
"
+options="!check"
prepare() {
default_prepare
diff --git a/main/squashfs-tools/APKBUILD b/main/squashfs-tools/APKBUILD
index 4e6f751cfd7..4ac7d72728e 100644
--- a/main/squashfs-tools/APKBUILD
+++ b/main/squashfs-tools/APKBUILD
@@ -1,16 +1,23 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=squashfs-tools
-pkgver=4.5.1
+pkgver=4.6.1
pkgrel=1
pkgdesc="Tools for squashfs, a highly compressed read-only filesystem for Linux"
url="https://github.com/plougher/squashfs-tools"
arch="all"
license="GPL-2.0-or-later"
-options="!check" # no testsuite
-makedepends="zlib-dev xz-dev lzo-dev lz4-dev attr-dev zstd-dev"
+makedepends="
+ attr-dev
+ lz4-dev
+ lzo-dev
+ xz-dev
+ zlib-dev
+ zstd-dev
+ "
+subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/plougher/squashfs-tools/archive/$pkgver.tar.gz
- fix-compat.patch
"
+options="!check" # no testsuite
# secfixes:
# 4.5-r1:
@@ -19,20 +26,19 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/plougher/squashfs-tools/arch
# - CVE-2021-40153
build() {
- make -C squashfs-tools XZ_SUPPORT=1 LZO_SUPPORT=1 LZ4_SUPPORT=1 ZSTD_SUPPORT=1
+ CFLAGS="$CFLAGS -O2 -flto=auto"\
+ CPPFLAGS="$CPPFLAGS -O2 -flto=auto" \
+ make -C squashfs-tools XZ_SUPPORT=1 LZO_SUPPORT=1 LZ4_SUPPORT=1 ZSTD_SUPPORT=1
}
package() {
- install -D -m 0755 -t "$pkgdir/usr/bin" \
- 'squashfs-tools/mksquashfs' \
- 'squashfs-tools/unsquashfs' \
- ;
-
- ln -f -s 'unsquashfs' "$pkgdir/usr/bin/sqfscat"
- ln -f -s 'unsquashfs' "$pkgdir/usr/bin/sqfstar"
+ make -C squashfs-tools \
+ INSTALL_MANPAGES_DIR="$pkgdir/usr/share/man/man1" \
+ INSTALL_PREFIX="$pkgdir/usr" \
+ USE_PREBUILT_MANPAGES=y \
+ install
}
sha512sums="
-b3934ea1e26c7508110312711465644a6d9674b6b5332a7d011e191fa3c1d4b8be694214794a0f6005263d0f4e18bab96af2f7ed66a178f8e3bb3a781cd44896 squashfs-tools-4.5.1.tar.gz
-157379cf4bafb72d717f14b1bc5dc350c97a9e68a7018e0febba4b1e59f9fd90c1de8485c4ffc48a035b53be8c3aa62046281291664bee4699100cec637b0bfa fix-compat.patch
+10e8a4b1e2327e062aef4f85860e76ebcd7a29e4c19e152ff7edec4a38316982b5bcfde4ab69da6bcb931258d264c2b6cb40cb5f635f9e6f6eba1ed5976267cb squashfs-tools-4.6.1.tar.gz
"
diff --git a/main/squashfs-tools/fix-compat.patch b/main/squashfs-tools/fix-compat.patch
deleted file mode 100644
index 8a5ff0697de..00000000000
--- a/main/squashfs-tools/fix-compat.patch
+++ /dev/null
@@ -1,12 +0,0 @@
---- a/squashfs-tools/action.c
-+++ b/squashfs-tools/action.c
-@@ -1905,6 +1905,9 @@
- return 1;
- }
-
-+#ifndef FNM_EXTMATCH
-+#define FNM_EXTMATCH 0
-+#endif
-
- TEST_FN(name, ACTION_ALL_LNK, \
- return fnmatch(atom->argv[0], action_data->name,
diff --git a/main/squid/APKBUILD b/main/squid/APKBUILD
index 091e366a9ae..1e46a2de75e 100644
--- a/main/squid/APKBUILD
+++ b/main/squid/APKBUILD
@@ -1,32 +1,51 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=squid
-pkgver=5.5
+pkgver=6.9
pkgrel=0
-pkgdesc="full-featured Web proxy cache server"
-url="http://www.squid-cache.org/"
+_langpack=20240307
+pkgdesc="Full-featured Web proxy cache server"
+url="https://www.squid-cache.org/"
install="squid.pre-install squid.pre-upgrade"
-pkgusers="squid"
-pkggroups="squid"
arch="all"
license="GPL-2.0-or-later"
depends="logrotate"
-makedepends="openssl1.1-compat-dev perl-dev autoconf automake heimdal-dev libtool
- libcap-dev linux-headers"
-subpackages="$pkgname-doc"
+makedepends="
+ heimdal-dev
+ libcap-dev
+ linux-headers
+ openssl-dev>3
+ perl-dev
+ "
+subpackages="$pkgname-openrc $pkgname-doc"
linguas="af ar az bg ca cs da de el es et fa fi fr he hu hy id it ja ka ko lt
- lv ms nl oc pl pt ro ru sk sl sr sv th tr uk uz vi zh"
+ lv ms nl oc pl pt ro ru sk sl spq sr sv th tr uk uz vi zh"
langdir="/usr/share/squid/errors"
-source="http://www.squid-cache.org/Versions/v${pkgver%%.*}/squid-$pkgver.tar.xz
-
+source="https://www.squid-cache.org/Versions/v${pkgver%%.*}/squid-$pkgver.tar.xz
+ squid-langpack-$_langpack.tar.gz.noauto::https://www.squid-cache.org/Versions/langpack/squid-langpack-$_langpack.tar.gz
$pkgname.initd
$pkgname.confd
$pkgname.logrotate
"
pkgusers="squid"
pkggroups="squid"
+options="!check"
# secfixes:
+# 6.6-r0:
+# - CVE-2023-50269
+# 6.5-r0:
+# - CVE-2023-49285
+# - CVE-2023-49286
+# 6.4-r0:
+# - CVE-2023-46847
+# - CVE-2023-46846
+# - CVE-2023-46724
+# - CVE-2023-46848
+# 6.1-r0:
+# - CVE-2023-49288
+# 5.7-r0:
+# - CVE-2022-41317
# 5.2-r0:
# - CVE-2021-41611
# - CVE-2021-28116
@@ -60,11 +79,24 @@ pkggroups="squid"
# - CVE-2018-1000027
# - CVE-2018-1172
-# link against gcc libatomic on riscv64
-[ "$CARCH" = "riscv64" ] && export LDFLAGS="$LDFLAGS -latomic"
+unpack() {
+ default_unpack
+ mkdir -p "$srcdir"/langpack
+ tar -xzf "$srcdir"/squid-langpack-$_langpack.tar.gz.noauto -C "$srcdir"/langpack
+}
+
+prepare() {
+ default_prepare
+
+ cd "$srcdir"/langpack
+ # create symlink names for languages
+ ./alias-link.sh ln rm . aliases
+ # delete non-translation files already installed
+ rm -r templates COPYRIGHT TRANSLATORS aliases alias-link.sh
+}
build() {
- case "$CARCH" in mips|mipsel*) export ac_cv_search___atomic_load_8=-latomic ;; esac
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -121,16 +153,20 @@ package() {
"$pkgdir"/var/log/squid \
"$pkgdir"/var/run/squid
chmod +x "$pkgdir"/usr/lib/squid/*
+
+ cp -r "$srcdir"/langpack/* "$pkgdir"/usr/share/squid/errors/
}
squid_kerb_auth() {
pkgdesc="Squid kerberos authentication helper"
- install -d "$subpkgdir"/usr/lib/squid
- mv "$pkgdir"/usr/lib/squid/squid_kerb_auth "$subpkgdir"/usr/lib/squid/
+
+ amove usr/lib/squid/squid_kerb_auth
}
+
sha512sums="
-f506f8cc01d59e36432d08eebd68332ef002c931425d6f95bbae7ed35281bbca453db85aba3d765913ce5d38160c48a328c322b31a1bcdcfc7f0a821d420d2c0 squid-5.5.tar.xz
-8320820c02c824ed96065e0b66cabdd80b11c23e911880a42f5bd7e3f6e7a5c1c6def910a1843cca810c62a7dc8ccdb9ae82c0cf52bf08259c3b50058232132d squid.initd
+2666551caca39fa6ca49b56b537645dd043ee0c99b805c433cf714172e6062590fd6ed942043df1a3b543f30c039f3ab701493187dc6a0a4a8311217417c366e squid-6.9.tar.xz
+e41fc9bca1f0f98943bc647fc7b468de808814579b39b204ae72d7bea77b26c9d8959764c559faef7873feb8d8dde504cd1d21cf1289b78f3b87b13da834f473 squid-langpack-20240307.tar.gz.noauto
+e3968a6b97baebfe18e1e978c76f6ef7a8a60cfb96dfc2d5199e91a84a065fe964aed6531aa04fe3824c5fd0644adec28ff81ff2f4fed424a29e636829b118d8 squid.initd
7292661de344e8a87d855c83afce49511685d2680effab3afab110e45144c0117935f3bf73ab893c9e6d43f7fb5ba013635e24f6da6daf0eeb895ef2e9b5baa9 squid.confd
89a703fa4f21b6c7c26e64a46fd52407e20f00c34146ade0bea0c4b63d050117c0f8e218f2256a1fbf6abb84f4ec9b0472c9a4092ff6e78f07c4f5a25d0892a5 squid.logrotate
"
diff --git a/main/squid/squid.initd b/main/squid/squid.initd
index 8a910001069..786393dd0da 100644
--- a/main/squid/squid.initd
+++ b/main/squid/squid.initd
@@ -72,6 +72,7 @@ checkconfig() {
start() {
checkconfig || return 1
checkpath -d /var/run/squid -m 0755 -o squid:squid
+ checkpath -d /var/log/squid -m 0750 -o squid:squid
ebegin "Starting ${SVCNAME}"
KRB5_KTNAME="${SQUID_KEYTAB}" /usr/sbin/squid ${SQUID_OPTS} -f /etc/squid/${SVCNAME}.conf
eend $? && sleep 1
diff --git a/main/squid/squid.pre-install b/main/squid/squid.pre-install
index 3c49c8642d1..7b2652b049d 100644
--- a/main/squid/squid.pre-install
+++ b/main/squid/squid.pre-install
@@ -1,7 +1,7 @@
#!/bin/sh
-addgroup -S squid 2>/dev/null
-adduser -S -D -h /var/cache/squid -G squid -g squid squid 2>/dev/null
+addgroup -S -g 31 squid 2>/dev/null
+adduser -S -D -h /var/cache/squid -G squid -u 31 -g squid squid 2>/dev/null
addgroup -S winbind 2>/dev/null
addgroup squid winbind 2>/dev/null
diff --git a/main/ssh-getkey-ldap/APKBUILD b/main/ssh-getkey-ldap/APKBUILD
index d40e3abdd55..cfa5b9558f6 100644
--- a/main/ssh-getkey-ldap/APKBUILD
+++ b/main/ssh-getkey-ldap/APKBUILD
@@ -2,23 +2,17 @@
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=ssh-getkey-ldap
pkgver=0.1.2
-pkgrel=0
+pkgrel=1
pkgdesc="A simple script to be used as AuthorizedKeysCommand in OpenSSH server to look up user's public keys in LDAP."
url="https://github.com/jirutka/ssh-getkey-ldap"
arch="noarch"
license="MIT"
depends="lua lua-ldap"
-makedepends=""
install="$pkgname.post-install"
-source="$pkgname-$pkgver.tar.gz::https://github.com/jirutka/$pkgname/archive/v$pkgver.tar.gz"
-builddir="$srcdir/$pkgname-$pkgver"
-
-build() {
- return 0
-}
+source="$pkgname-$pkgver.tar.gz::https://github.com/jirutka/ssh-getkey-ldap/archive/v$pkgver.tar.gz"
+options="!check"
package() {
- cd "$builddir"
DESTDIR="$pkgdir" PREFIX="/usr" ./install
}
diff --git a/main/sshfs/APKBUILD b/main/sshfs/APKBUILD
index cc05a968738..bd21e64fcdf 100644
--- a/main/sshfs/APKBUILD
+++ b/main/sshfs/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=sshfs
pkgver=3.7.3
-pkgrel=0
+pkgrel=1
pkgdesc="FUSE client based on the SSH File Transfer Protocol"
url="https://github.com/libfuse/sshfs"
arch="all"
@@ -14,7 +14,7 @@ options="!check" # requires FUSE kernel module to run tests
build() {
abuild-meson . output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
package() {
diff --git a/main/sshguard/APKBUILD b/main/sshguard/APKBUILD
index 5429b1f6087..99af6ad06cf 100644
--- a/main/sshguard/APKBUILD
+++ b/main/sshguard/APKBUILD
@@ -2,8 +2,8 @@
# Contributor: Michał Polański <michal@polanski.me>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=sshguard
-pkgver=2.4.2
-pkgrel=0
+pkgver=2.4.3
+pkgrel=1
pkgdesc="Protects hosts from brute-force attacks against SSH and other services"
url="https://www.sshguard.net/"
arch="all"
@@ -17,6 +17,7 @@ source="https://downloads.sourceforge.net/project/sshguard/sshguard/$pkgver/sshg
"
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -36,6 +37,8 @@ package() {
install -Dm644 "$srcdir"/sshguard.confd "$pkgdir"/etc/conf.d/sshguard
}
-sha512sums="f2fe35180af8698d4b2053e9ffbf17df9f033b0c2fcc045caa085467d14174e17aa266d2ef3ce9536037e54f7d3ea42de9e32e7faee65612894294793082862a sshguard-2.4.2.tar.gz
-e7f3960c9ea04a5a6bfb17fba79131f063a0128f3f2e85e1f4c6689c3c83c4ed8a65bebf9ae5c0b0925186282409bab660be3ac2483a6385652fe997e5f2bd2c sshguard.initd
-2d314943268dc5716bb564c236adc6695a22e38df31cb9f945e050cbb07864002975e7de2f3b2d492f961cf11328826a4a0b6db4284cd6d74de8a9ad02601e54 sshguard.confd"
+sha512sums="
+eeecea1007c1a21a28835a6d29c2cbffc647b3ab09a3525600e91b978d4ebdda9e6a7e2884da26bb1d7f64de561ac8bd1788bb776730d37b7a4fa49b22885b4a sshguard-2.4.3.tar.gz
+3dfd291b74fd7082ade5e3339e5641e546fb98cf88be29cc9744e5cd316b128580a17c4d1d36f6b03eec73491645c670759ca6f82fe2555eff34adb090df69cb sshguard.initd
+be29acae12bc51019febc283bb1c4fff0cd0a475a330a0ca1b4196bbc88a9a70922b82b7d56250e04d6491a4670ebb36d39c65c28fa0f20093355bd7ad3e4d2f sshguard.confd
+"
diff --git a/main/sshguard/sshguard.confd b/main/sshguard/sshguard.confd
index c1ca4378af8..c3a50036b45 100644
--- a/main/sshguard/sshguard.confd
+++ b/main/sshguard/sshguard.confd
@@ -4,4 +4,8 @@
# or SSHGuard won't start. See sshguard-setup(7) for reference.
# See sshguard(8) for available options.
-#SSGUARD_OPTS=""
+#command_args=""
+
+# Run with process supervisor. If you want to run the daemon with
+# start-stop-daemon instead, comment it out.
+supervisor="supervise-daemon"
diff --git a/main/sshguard/sshguard.initd b/main/sshguard/sshguard.initd
index ffff870ad0e..615a35c5e21 100644
--- a/main/sshguard/sshguard.initd
+++ b/main/sshguard/sshguard.initd
@@ -1,13 +1,18 @@
#!/sbin/openrc-run
-supervisor=supervise-daemon
name="SSHGuard"
description="Protects hosts from brute-force attacks against SSH and other services"
-command="/usr/sbin/sshguard"
-command_args="$SSHGUARD_OPTS"
+# Log startup errrors to syslog.
+: ${error_logger="logger -t sshguard -p daemon.err >/dev/null 2>&1"}
+
+command="/usr/sbin/sshguard"
+# $SSHGUARD_OPTS is only for backward compatibility (Alpine <3.19)
+command_args="$SSHGUARD_OPTS $command_args"
+command_background="yes"
+pidfile="/run/$RC_SVCNAME.pid"
depend() {
- after iptables
+ after firewall
use logger
}
diff --git a/main/sshpass/APKBUILD b/main/sshpass/APKBUILD
index 8a20520a913..a38060680a1 100644
--- a/main/sshpass/APKBUILD
+++ b/main/sshpass/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=sshpass
-pkgver=1.09
+pkgver=1.10
pkgrel=0
pkgdesc="Non-interactive SSH authentication utility"
url="https://sourceforge.net/projects/sshpass/"
@@ -9,6 +9,7 @@ arch="all"
license="GPL-2.0-or-later"
subpackages="$pkgname-doc"
source="https://downloads.sourceforge.net/sshpass/sshpass-$pkgver.tar.gz"
+options="!check"
build() {
./configure \
@@ -26,4 +27,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="9b4ba83ca4d34364e7c43e29f98493dc3d595d24dc68c2fe3c244600d92a0f8bc0a6a7f8f43d64c0b4d714eb196516f297d904fa66035a76dae89a3726c0f2ff sshpass-1.09.tar.gz"
+sha512sums="
+d0fbceb956baee79803fec8bd9a2e0d1e342cbc90fb8bb4baa5a01914f870393f43bd07b62aa1da208318b4971005b9bbccf0e926c590124de11a272169db81d sshpass-1.10.tar.gz
+"
diff --git a/main/ssmtp/APKBUILD b/main/ssmtp/APKBUILD
index 89e17a374d8..fff903b57c5 100644
--- a/main/ssmtp/APKBUILD
+++ b/main/ssmtp/APKBUILD
@@ -3,24 +3,22 @@
pkgname=ssmtp
pkgver=2.64
-pkgrel=17
+pkgrel=21
pkgdesc="Extremely simple MTA to get mail off the system to a mail hub"
subpackages="$pkgname-doc"
arch="all"
url="https://packages.debian.org/stable/mail/ssmtp"
-license="GPL-2.0"
-depends=
-makedepends="openssl1.1-compat-dev autoconf"
+license="GPL-2.0-or-later"
+makedepends="openssl-dev>3 autoconf"
options="!check"
-source="https://deb.debian.org/debian/pool/main/s/$pkgname/${pkgname}_${pkgver}.orig.tar.bz2
+source="https://deb.debian.org/debian/pool/main/s/ssmtp/ssmtp_$pkgver.orig.tar.bz2
+ cast.patch
generate_config.patch
libcrypto-underlinking.patch
inet6-getaddrinfo.patch
"
-_builddir="$srcdir"/$pkgname-$pkgver
build() {
- cd "$_builddir"
sed -i -e 's:$(CC) -o:$(CC) @LDFLAGS@ -o:' Makefile.in
autoconf
@@ -31,13 +29,11 @@ build() {
--mandir=/usr/share/man \
--sysconfdir=/etc \
--enable-ssl \
- --enable-inet6 \
- || return 1
+ --enable-inet6
make
}
package() {
- cd "$srcdir"/$pkgname-$pkgver
make prefix="$pkgdir"/usr \
etcdir="$pkgdir"/etc \
mandir="$pkgdir"/usr/share/man/man8 \
@@ -47,6 +43,7 @@ package() {
sha512sums="
911752e744420adf58552b9cf3a6e558d8b39103e5ad33a9ed4429b9a3a2091f7674aac11fe9bbd66747a61cdabe6bd638b80efcaadc86b057c12e2e235cca72 ssmtp_2.64.orig.tar.bz2
+e25707d508a220c24105078c2e1ec32c5c37b2aea68e43cb90a885bb31467ff693daf498b6c131244d638bf5facd5ca1446ee64ed79cb4fdf080fadc36f5b3dc cast.patch
a4273d7c5b50984994b35de052c450a872f0014c45c1d3bfe36f2edd4f224281aacea234be61c6e966da2c4d3e033042628b79b2216340001487e6bb3a55b6cd generate_config.patch
9da89ec5ea66dae8b7a22ffcf196c45005c0403e6505162dba05003feac38eb397f8aff4f140d720f826ea057f92e47302ec3c24bddf5786c10b214ec906e82f libcrypto-underlinking.patch
92dc128b2f6ce234843e8f1e6ddb72653825652544cd68f693457b3fdc4ee22b0f9861feec0dfd123d012c294c7083dd8d24a9a589a3c2ae5bcdde697d30a290 inet6-getaddrinfo.patch
diff --git a/main/ssmtp/cast.patch b/main/ssmtp/cast.patch
new file mode 100644
index 00000000000..ec534948844
--- /dev/null
+++ b/main/ssmtp/cast.patch
@@ -0,0 +1,38 @@
+fixes -Werror=int-conversion
+--
+diff --git a/ssmtp.c b/ssmtp.c
+index af4d1e5..9a28320 100644
+--- a/ssmtp.c
++++ b/ssmtp.c
+@@ -55,21 +55,21 @@ bool_t use_oldauth = False; /* use old AUTH LOGIN username style */
+
+ #define ARPADATE_LENGTH 32 /* Current date in RFC format */
+ char arpadate[ARPADATE_LENGTH];
+-char *auth_user = (char)NULL;
+-char *auth_pass = (char)NULL;
+-char *auth_method = (char)NULL; /* Mechanism for SMTP authentication */
+-char *mail_domain = (char)NULL;
+-char *from = (char)NULL; /* Use this as the From: address */
++char *auth_user = NULL;
++char *auth_pass = NULL;
++char *auth_method = NULL; /* Mechanism for SMTP authentication */
++char *mail_domain = NULL;
++char *from = NULL; /* Use this as the From: address */
+ char *hostname;
+ char *mailhost = "mailhub";
+-char *minus_f = (char)NULL;
+-char *minus_F = (char)NULL;
++char *minus_f = NULL;
++char *minus_F = NULL;
+ char *gecos;
+-char *prog = (char)NULL;
++char *prog = NULL;
+ char *root = NULL;
+ char *tls_cert = "/etc/ssl/certs/ssmtp.pem"; /* Default Certificate */
+-char *uad = (char)NULL;
+-char *config_file = (char)NULL; /* alternate configuration file */
++char *uad = NULL;
++char *config_file = NULL; /* alternate configuration file */
+
+ headers_t headers, *ht;
+
diff --git a/main/static-routing/APKBUILD b/main/static-routing/APKBUILD
index b55d852d957..cc903720c41 100644
--- a/main/static-routing/APKBUILD
+++ b/main/static-routing/APKBUILD
@@ -8,6 +8,7 @@ url="https://git.alpinelinux.org/cgit/aports/tree/main/static-routing"
arch="noarch"
license="GPL-2.0-only"
source="static-routing"
+options="!check"
package() {
install -D -m 755 "$srcdir/static-routing" "$pkgdir/etc/network/if-up.d/static-routing"
diff --git a/main/statserial/APKBUILD b/main/statserial/APKBUILD
index e89ca263815..f9395ec4220 100644
--- a/main/statserial/APKBUILD
+++ b/main/statserial/APKBUILD
@@ -2,42 +2,30 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=statserial
pkgver=1.1
-pkgrel=4
+pkgrel=8
pkgdesc="Display serial port modem status lines"
-url="http://sunsite.unc.edu/pub/Linux/system/Serial"
+url="https://ibiblio.org/pub/linux/system/serial"
arch="all"
-license="GPL"
-depends=""
-depends_dev="ncurses-dev"
-makedepends="$depends_dev"
-install=""
-subpackages=""
-source="http://ibiblio.org/pub/linux/system/serial/statserial-$pkgver.tar.gz
+license="GPL-2.0-or-later"
+makedepends="ncurses-dev"
+source="https://ibiblio.org/pub/linux/system/serial/statserial-$pkgver.tar.gz
statserial-1.patch
statserial-c.patch
makefile.patch
"
-_builddir="$srcdir"/$pkgname-$pkgver
+options="!check"
+
prepare() {
- local i
- cd "$_builddir"
- for i in $source; do
- case $i in
- *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
- esac
- done
+ default_prepare
sed -i -e "s/\/local//" Makefile
}
build() {
- cd "$_builddir"
- make CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" CC="${CC:-gcc}" || return 1
+ make CFLAGS="$CFLAGS" LDFLAGS="$LDFLAGS" CC="${CC:-gcc}"
}
package() {
- cd "$_builddir"
- mkdir -p $pkgdir/usr/bin
- install -m755 $pkgname $pkgdir/usr/bin/$pkgname
+ install -Dm755 statserial -t "$pkgdir"/usr/bin
}
sha512sums="070ec4b6fb4a432fd406571319d9431d55c6dd43ee9298c1907011038a57dd3efd5def434aeb6884fb195cc90aa961d2ad2ff0567c9c69173e6f4adc0509a805 statserial-1.1.tar.gz
diff --git a/main/stfl/APKBUILD b/main/stfl/APKBUILD
deleted file mode 100644
index 6a77b8946d7..00000000000
--- a/main/stfl/APKBUILD
+++ /dev/null
@@ -1,27 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=stfl
-pkgver=0.24
-pkgrel=2
-pkgdesc="The Structured Terminal Forms Language/Library"
-url="http://www.clifford.at/stfl/"
-arch="all"
-license="LGPL-3.0-or-later"
-makedepends="ncurses-dev"
-subpackages="$pkgname-dev"
-source="http://bygone.clairexen.net/stfl/stfl-$pkgver.tar.gz
- ncurses.patch"
-
-build() {
- make prefix=/usr
-}
-
-package() {
- make prefix=/usr DESTDIR="$pkgdir" install
- cd "$pkgdir"/usr/lib
- ln -s libstfl.so.0.24 libstfl.so.0
-}
-
-sha512sums="
-95df4574b1bc32d795751156dc5b93afbca3ba241607a3a55210c89dda61b9a26ad574bb5f729a0158c9052235dbf63d6c58b38e7f1061d14ab7062af6150fa0 stfl-0.24.tar.gz
-d445b7bebd53ab23765f8386d8e69080df1cf95ca7368dee98594176e5a99f73d741a14e81af1500dc249c2a485574a5323d16fffa12536f7f3f20049b636de6 ncurses.patch
-"
diff --git a/main/stfl/ncurses.patch b/main/stfl/ncurses.patch
deleted file mode 100644
index 215d35d0243..00000000000
--- a/main/stfl/ncurses.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-We need -D_XOPEN_SOURCE_EXTENDED for widechar in ncurses
-
-diff --git a/stfl_internals.h b/stfl_internals.h
-index 3f9f45b..1559626 100644
---- a/stfl_internals.h
-+++ b/stfl_internals.h
-@@ -28,7 +28,7 @@ extern "C" {
- #endif
-
- #include "stfl.h"
--#include <ncursesw/ncurses.h>
-+#include <ncurses.h>
- #include <pthread.h>
-
- struct stfl_widget_type;
---- ./Makefile.orig
-+++ ./Makefile
-@@ -21,7 +21,7 @@
- include Makefile.cfg
-
- export CC = gcc -pthread
--export CFLAGS += -I. -Wall -Os -ggdb -D_GNU_SOURCE -fPIC
-+export CFLAGS += -I. -Wall -Os -ggdb -D_GNU_SOURCE -D_XOPEN_SOURCE_EXTENDED -fPIC
- export LDLIBS += -lncursesw
-
- SONAME := libstfl.so.0
diff --git a/main/strace/APKBUILD b/main/strace/APKBUILD
index 1f4f0caa521..c5143adb948 100644
--- a/main/strace/APKBUILD
+++ b/main/strace/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=strace
-pkgver=5.18
+pkgver=6.8
pkgrel=0
pkgdesc="Diagnostic, debugging and instructional userspace tracer"
url="https://strace.io"
@@ -9,7 +9,7 @@ arch="all"
options="!check"
license="BSD-3-Clause"
# strace with libunwind doesn't work right on musl
-makedepends="autoconf automake binutils-dev elfutils-dev gawk linux-headers"
+makedepends="binutils-dev elfutils-dev gawk linux-headers"
subpackages="$pkgname-doc"
source="https://github.com/strace/strace/releases/download/v$pkgver/strace-$pkgver.tar.xz
disable-fortify.patch
@@ -17,10 +17,7 @@ source="https://github.com/strace/strace/releases/download/v$pkgver/strace-$pkgv
"
build() {
- case "$CLIBC" in
- musl) export CFLAGS="$CFLAGS -Dsigcontext_struct=sigcontext" ;;
- esac
-
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -37,11 +34,11 @@ check() {
}
package() {
- make -j1 DESTDIR="$pkgdir" install
+ make DESTDIR="$pkgdir" install
}
sha512sums="
-99418b84a5e2049cb6fe32eed19ddcb61bbefb25220550c67d92cd7bc3d44ae5d87ac228b3e1c207166b9bfdae55c624a0f4e603004599fb7ea3143bbccc749e strace-5.18.tar.xz
+c477724a77112a74a5236a38b7dbaa9b6199622a1d21cc6253cac80dc4ddea78aeaf8cddf4a51ee4119e00e1adaf95f64f64e20d9775ec3edd77cd82c8f7b30e strace-6.8.tar.xz
273b92ebf0069f19bef7ec26c7860e2af7ef01e782255c70ded1ae5e967f8f6bf031ecba96612c6083bf58f46278ba4ab3ec0fb35b08c8c8d668191f97adee52 disable-fortify.patch
44b1872cf996caa4970fa6c2875a3a2cffe4a38455e328d968bd7855ef9a05cf41190794dc137bc8667576635f5271057cf0e6cde9a6c7aee66afd1dba9bdba0 nlattr-fix.patch
"
diff --git a/main/strongswan/0001-charon-add-optional-source-and-remote-overrides-for-.patch b/main/strongswan/0001-charon-add-optional-source-and-remote-overrides-for-.patch
new file mode 100644
index 00000000000..5bfb92b8d19
--- /dev/null
+++ b/main/strongswan/0001-charon-add-optional-source-and-remote-overrides-for-.patch
@@ -0,0 +1,580 @@
+From 9be9c9d0c677725bd5b3353bf2ae032b1693285e Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
+Date: Mon, 21 Sep 2015 13:41:58 +0300
+Subject: [PATCH 1/3] charon: add optional source and remote overrides for
+ initiate
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This introduces support for specifying optional IKE SA specific
+source and remote address for child sa initiation. This allows
+to initiate wildcard connection for known address via vici.
+
+In addition this allows impler implementation of trap-any patches
+and is a prerequisite for dmvpn support.
+
+Signed-off-by: Timo Teräs <timo.teras@iki.fi>
+---
+ src/charon-cmd/cmd/cmd_connection.c | 2 +-
+ src/libcharon/control/controller.c | 42 +++++++++++-
+ src/libcharon/control/controller.h | 3 +
+ src/libcharon/plugins/stroke/stroke_control.c | 5 +-
+ src/libcharon/plugins/vici/vici_config.c | 2 +-
+ src/libcharon/plugins/vici/vici_control.c | 65 ++++++++++++++++---
+ .../processing/jobs/start_action_job.c | 2 +-
+ src/libcharon/sa/ike_sa_manager.c | 50 +++++++++++++-
+ src/libcharon/sa/ike_sa_manager.h | 8 ++-
+ src/libcharon/sa/trap_manager.c | 44 +++++--------
+ src/swanctl/commands/initiate.c | 40 +++++++++++-
+ 11 files changed, 216 insertions(+), 47 deletions(-)
+
+diff --git a/src/charon-cmd/cmd/cmd_connection.c b/src/charon-cmd/cmd/cmd_connection.c
+index 8e8d8236e..7df5bc9bf 100644
+--- a/src/charon-cmd/cmd/cmd_connection.c
++++ b/src/charon-cmd/cmd/cmd_connection.c
+@@ -439,7 +439,7 @@ static job_requeue_t initiate(private_cmd_connection_t *this)
+ child_cfg = create_child_cfg(this, peer_cfg);
+
+ if (charon->controller->initiate(charon->controller, peer_cfg, child_cfg,
+- controller_cb_empty, NULL, LEVEL_SILENT, 0, FALSE) != SUCCESS)
++ NULL, NULL, controller_cb_empty, NULL, LEVEL_SILENT, 0, FALSE) != SUCCESS)
+ {
+ terminate(pid);
+ }
+diff --git a/src/libcharon/control/controller.c b/src/libcharon/control/controller.c
+index 027f48e93..4ce8616a5 100644
+--- a/src/libcharon/control/controller.c
++++ b/src/libcharon/control/controller.c
+@@ -15,6 +15,28 @@
+ * for more details.
+ */
+
++/*
++ * Copyright (C) 2014 Timo Teräs <timo.teras@iki.fi>
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a copy
++ * of this software and associated documentation files (the "Software"), to deal
++ * in the Software without restriction, including without limitation the rights
++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++ * copies of the Software, and to permit persons to whom the Software is
++ * furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be included in
++ * all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++ * THE SOFTWARE.
++ */
++
+ #include "controller.h"
+
+ #include <sys/types.h>
+@@ -107,6 +129,16 @@ struct interface_listener_t {
+ */
+ ike_sa_t *ike_sa;
+
++ /**
++ * Our host hint.
++ */
++ host_t *my_host;
++
++ /**
++ * Other host hint.
++ */
++ host_t *other_host;
++
+ /**
+ * unique ID, used for various methods
+ */
+@@ -417,10 +449,15 @@ METHOD(job_t, initiate_execute, job_requeue_t,
+ ike_sa_t *ike_sa;
+ interface_listener_t *listener = &job->listener;
+ peer_cfg_t *peer_cfg = listener->peer_cfg;
++ host_t *my_host = listener->my_host;
++ host_t *other_host = listener->other_host;
+
+ ike_sa = charon->ike_sa_manager->checkout_by_config(charon->ike_sa_manager,
+- peer_cfg);
++ peer_cfg, my_host, other_host);
+ peer_cfg->destroy(peer_cfg);
++ DESTROY_IF(my_host);
++ DESTROY_IF(other_host);
++
+ if (!ike_sa)
+ {
+ DESTROY_IF(listener->child_cfg);
+@@ -499,6 +536,7 @@ METHOD(job_t, initiate_execute, job_requeue_t,
+
+ METHOD(controller_t, initiate, status_t,
+ private_controller_t *this, peer_cfg_t *peer_cfg, child_cfg_t *child_cfg,
++ host_t *my_host, host_t *other_host,
+ controller_cb_t callback, void *param, level_t max_level, u_int timeout,
+ bool limits)
+ {
+@@ -523,6 +561,8 @@ METHOD(controller_t, initiate, status_t,
+ .status = FAILED,
+ .child_cfg = child_cfg,
+ .peer_cfg = peer_cfg,
++ .my_host = my_host ? my_host->clone(my_host) : NULL,
++ .other_host = other_host ? other_host->clone(other_host) : NULL,
+ .lock = spinlock_create(),
+ .options.limits = limits,
+ },
+diff --git a/src/libcharon/control/controller.h b/src/libcharon/control/controller.h
+index 36a1d4631..a130fbb6b 100644
+--- a/src/libcharon/control/controller.h
++++ b/src/libcharon/control/controller.h
+@@ -81,6 +81,8 @@ struct controller_t {
+ *
+ * @param peer_cfg peer_cfg to use for IKE_SA setup
+ * @param child_cfg optional child_cfg to set up CHILD_SA from
++ * @param my_host optional address hint for source
++ * @param other_host optional address hint for destination
+ * @param cb logging callback
+ * @param param parameter to include in each call of cb
+ * @param max_level maximum log level for which cb is invoked
+@@ -95,6 +97,7 @@ struct controller_t {
+ */
+ status_t (*initiate)(controller_t *this,
+ peer_cfg_t *peer_cfg, child_cfg_t *child_cfg,
++ host_t *my_host, host_t *other_host,
+ controller_cb_t callback, void *param,
+ level_t max_level, u_int timeout, bool limits);
+
+diff --git a/src/libcharon/plugins/stroke/stroke_control.c b/src/libcharon/plugins/stroke/stroke_control.c
+index 2824c93cb..21ff6b31f 100644
+--- a/src/libcharon/plugins/stroke/stroke_control.c
++++ b/src/libcharon/plugins/stroke/stroke_control.c
+@@ -109,7 +109,7 @@ static void charon_initiate(private_stroke_control_t *this, peer_cfg_t *peer_cfg
+ if (msg->output_verbosity < 0)
+ {
+ charon->controller->initiate(charon->controller, peer_cfg, child_cfg,
+- NULL, NULL, 0, 0, FALSE);
++ NULL, NULL, NULL, NULL, 0, 0, FALSE);
+ }
+ else
+ {
+@@ -117,7 +117,8 @@ static void charon_initiate(private_stroke_control_t *this, peer_cfg_t *peer_cfg
+ status_t status;
+
+ status = charon->controller->initiate(charon->controller,
+- peer_cfg, child_cfg, (controller_cb_t)stroke_log,
++ peer_cfg, child_cfg, NULL, NULL,
++ (controller_cb_t)stroke_log,
+ &info, msg->output_verbosity, this->timeout, FALSE);
+ switch (status)
+ {
+diff --git a/src/libcharon/plugins/vici/vici_config.c b/src/libcharon/plugins/vici/vici_config.c
+index 522122562..b1486e337 100644
+--- a/src/libcharon/plugins/vici/vici_config.c
++++ b/src/libcharon/plugins/vici/vici_config.c
+@@ -2252,7 +2252,7 @@ static void run_start_action(private_vici_config_t *this, peer_cfg_t *peer_cfg,
+ DBG1(DBG_CFG, "initiating '%s'", child_cfg->get_name(child_cfg));
+ charon->controller->initiate(charon->controller,
+ peer_cfg->get_ref(peer_cfg), child_cfg->get_ref(child_cfg),
+- NULL, NULL, 0, 0, FALSE);
++ NULL, NULL, NULL, NULL, 0, 0, FALSE);
+ }
+ }
+
+diff --git a/src/libcharon/plugins/vici/vici_control.c b/src/libcharon/plugins/vici/vici_control.c
+index 1c236d249..811d8dbc7 100644
+--- a/src/libcharon/plugins/vici/vici_control.c
++++ b/src/libcharon/plugins/vici/vici_control.c
+@@ -15,6 +15,28 @@
+ * for more details.
+ */
+
++/*
++ * Copyright (C) 2014 Timo Teräs <timo.teras@iki.fi>
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a copy
++ * of this software and associated documentation files (the "Software"), to deal
++ * in the Software without restriction, including without limitation the rights
++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++ * copies of the Software, and to permit persons to whom the Software is
++ * furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be included in
++ * all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++ * THE SOFTWARE.
++ */
++
+ #include "vici_control.h"
+ #include "vici_builder.h"
+
+@@ -173,9 +195,11 @@ static child_cfg_t* find_child_cfg(char *name, char *pname, peer_cfg_t **out)
+ CALLBACK(initiate, vici_message_t*,
+ private_vici_control_t *this, char *name, u_int id, vici_message_t *request)
+ {
++ vici_message_t* msg;
+ peer_cfg_t *peer_cfg = NULL;
+ child_cfg_t *child_cfg;
+- char *child, *ike, *type, *sa;
++ host_t *my_host = NULL, *other_host = NULL;
++ char *child, *ike, *type, *sa, *my_host_str, *other_host_str;
+ int timeout;
+ bool limits;
+ controller_cb_t log_cb = NULL;
+@@ -189,6 +213,8 @@ CALLBACK(initiate, vici_message_t*,
+ timeout = request->get_int(request, 0, "timeout");
+ limits = request->get_bool(request, FALSE, "init-limits");
+ log.level = request->get_int(request, 1, "loglevel");
++ my_host_str = request->get_str(request, NULL, "my-host");
++ other_host_str = request->get_str(request, NULL, "other-host");
+
+ if (!child && !ike)
+ {
+@@ -199,31 +225,52 @@ CALLBACK(initiate, vici_message_t*,
+ log_cb = (controller_cb_t)log_vici;
+ }
+
++ if (my_host_str)
++ {
++ my_host = host_create_from_string(my_host_str, 0);
++ }
++ if (other_host_str)
++ {
++ other_host = host_create_from_string(other_host_str, 0);
++ }
++
++
+ type = child ? "CHILD_SA" : "IKE_SA";
+ sa = child ?: ike;
+
+ child_cfg = find_child_cfg(child, ike, &peer_cfg);
+
+- DBG1(DBG_CFG, "vici initiate %s '%s'", type, sa);
++ DBG1(DBG_CFG, "vici initiate %s '%s', me %H, other %H, limits %d", type, sa, my_host, other_host, limits);
+ if (!peer_cfg)
+ {
+- return send_reply(this, "%s config '%s' not found", type, sa);
++ msg = send_reply(this, "%s config '%s' not found", type, sa);
++ goto ret;
+ }
+- switch (charon->controller->initiate(charon->controller, peer_cfg, child_cfg,
+- log_cb, &log, log.level, timeout, limits))
++ switch (charon->controller->initiate(charon->controller,
++ peer_cfg, child_cfg,
++ my_host, other_host,
++ log_cb, &log, log.level, timeout, limits))
+ {
+ case SUCCESS:
+- return send_reply(this, NULL);
++ msg = send_reply(this, NULL);
++ break;
+ case OUT_OF_RES:
+- return send_reply(this, "%s '%s' not established after %dms", type,
++ msg = send_reply(this, "%s '%s' not established after %dms", type,
+ sa, timeout);
++ break;
+ case INVALID_STATE:
+- return send_reply(this, "establishing %s '%s' not possible at the "
++ msg = send_reply(this, "establishing %s '%s' not possible at the "
+ "moment due to limits", type, sa);
++ break;
+ case FAILED:
+ default:
+- return send_reply(this, "establishing %s '%s' failed", type, sa);
++ msg = send_reply(this, "establishing %s '%s' failed", type, sa);
++ break;
+ }
++ret:
++ if (my_host) my_host->destroy(my_host);
++ if (other_host) other_host->destroy(other_host);
++ return msg;
+ }
+
+ /**
+diff --git a/src/libcharon/processing/jobs/start_action_job.c b/src/libcharon/processing/jobs/start_action_job.c
+index 122e5cee9..dec458c84 100644
+--- a/src/libcharon/processing/jobs/start_action_job.c
++++ b/src/libcharon/processing/jobs/start_action_job.c
+@@ -84,7 +84,7 @@ METHOD(job_t, execute, job_requeue_t,
+ charon->controller->initiate(charon->controller,
+ peer_cfg->get_ref(peer_cfg),
+ child_cfg->get_ref(child_cfg),
+- NULL, NULL, 0, 0, FALSE);
++ NULL, NULL, NULL, NULL, 0, 0, FALSE);
+ }
+ }
+ children->destroy(children);
+diff --git a/src/libcharon/sa/ike_sa_manager.c b/src/libcharon/sa/ike_sa_manager.c
+index 7763ae844..f653cc514 100644
+--- a/src/libcharon/sa/ike_sa_manager.c
++++ b/src/libcharon/sa/ike_sa_manager.c
+@@ -16,6 +16,28 @@
+ * for more details.
+ */
+
++/*
++ * Copyright (C) 2014 Timo Teräs <timo.teras@iki.fi>
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a copy
++ * of this software and associated documentation files (the "Software"), to deal
++ * in the Software without restriction, including without limitation the rights
++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++ * copies of the Software, and to permit persons to whom the Software is
++ * furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be included in
++ * all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++ * THE SOFTWARE.
++ */
++
+ #include <string.h>
+ #include <inttypes.h>
+
+@@ -1498,7 +1520,8 @@ typedef struct {
+ } config_entry_t;
+
+ METHOD(ike_sa_manager_t, checkout_by_config, ike_sa_t*,
+- private_ike_sa_manager_t *this, peer_cfg_t *peer_cfg)
++ private_ike_sa_manager_t *this, peer_cfg_t *peer_cfg,
++ host_t *my_host, host_t *other_host)
+ {
+ enumerator_t *enumerator;
+ entry_t *entry;
+@@ -1509,7 +1532,17 @@ METHOD(ike_sa_manager_t, checkout_by_config, ike_sa_t*,
+ u_int segment;
+ int i;
+
+- DBG2(DBG_MGR, "checkout IKE_SA by config");
++ if (my_host && my_host->get_port(my_host) == 0)
++ {
++ my_host->set_port(my_host, IKEV2_UDP_PORT);
++ }
++ if (other_host && other_host->get_port(other_host) == 0)
++ {
++ other_host->set_port(other_host, IKEV2_UDP_PORT);
++ }
++
++ DBG2(DBG_MGR, "checkout IKE_SA by config '%s', me %H, other %H",
++ peer_cfg->get_name(peer_cfg), my_host, other_host);
+
+ if (!this->reuse_ikesa && peer_cfg->get_ike_version(peer_cfg) != IKEV1)
+ { /* IKE_SA reuse disabled by config (not possible for IKEv1) */
+@@ -1567,6 +1600,15 @@ METHOD(ike_sa_manager_t, checkout_by_config, ike_sa_t*,
+ continue;
+ }
+
++ if (my_host && !my_host->ip_equals(my_host, entry->ike_sa->get_my_host(entry->ike_sa)))
++ {
++ continue;
++ }
++ if (other_host && !other_host->ip_equals(other_host, entry->ike_sa->get_other_host(entry->ike_sa)))
++ {
++ continue;
++ }
++
+ current_peer = entry->ike_sa->get_peer_cfg(entry->ike_sa);
+ if (current_peer && current_peer->equals(current_peer, peer_cfg))
+ {
+@@ -1593,6 +1635,10 @@ METHOD(ike_sa_manager_t, checkout_by_config, ike_sa_t*,
+ {
+ ike_sa->set_peer_cfg(ike_sa, peer_cfg);
+ checkout_new(this, ike_sa);
++ if (my_host || other_host)
++ {
++ ike_sa->update_hosts(ike_sa, my_host, other_host, TRUE);
++ }
+ }
+ }
+ charon->bus->set_sa(charon->bus, ike_sa);
+diff --git a/src/libcharon/sa/ike_sa_manager.h b/src/libcharon/sa/ike_sa_manager.h
+index 004cc2216..50f8246f8 100644
+--- a/src/libcharon/sa/ike_sa_manager.h
++++ b/src/libcharon/sa/ike_sa_manager.h
+@@ -123,7 +123,8 @@ struct ike_sa_manager_t {
+ ike_sa_t* (*checkout_by_message) (ike_sa_manager_t* this, message_t *message);
+
+ /**
+- * Checkout an IKE_SA for initiation by a peer_config.
++ * Checkout an IKE_SA for initiation by a peer_config and optional
++ * source and remote host addresses.
+ *
+ * To initiate, a CHILD_SA may be established within an existing IKE_SA.
+ * This call checks for an existing IKE_SA by comparing the configuration.
+@@ -136,9 +137,12 @@ struct ike_sa_manager_t {
+ * @note The peer_config is always set on the returned IKE_SA.
+ *
+ * @param peer_cfg configuration used to find an existing IKE_SA
++ * @param my_host source host address for wildcard peer_cfg
++ * @param other_host remote host address for wildcard peer_cfg
+ * @return checked out/created IKE_SA
+ */
+- ike_sa_t *(*checkout_by_config)(ike_sa_manager_t* this, peer_cfg_t *peer_cfg);
++ ike_sa_t *(*checkout_by_config)(ike_sa_manager_t* this, peer_cfg_t *peer_cfg,
++ host_t *my_host, host_t *other_host);
+
+ /**
+ * Reset initiator SPI.
+diff --git a/src/libcharon/sa/trap_manager.c b/src/libcharon/sa/trap_manager.c
+index 1b85c66a5..35e19f86d 100644
+--- a/src/libcharon/sa/trap_manager.c
++++ b/src/libcharon/sa/trap_manager.c
+@@ -523,7 +523,7 @@ METHOD(trap_manager_t, acquire, void,
+ peer_cfg_t *peer;
+ child_cfg_t *child;
+ ike_sa_t *ike_sa;
+- host_t *host;
++ host_t *host, *my_host = NULL, *other_host = NULL;
+ uint32_t allocated_reqid;
+ bool wildcard, ignore = FALSE;
+
+@@ -603,37 +603,27 @@ METHOD(trap_manager_t, acquire, void,
+ this->lock->unlock(this->lock);
+
+ if (wildcard)
+- { /* the peer config would match IKE_SAs with other peers */
+- ike_sa = charon->ike_sa_manager->create_new(charon->ike_sa_manager,
+- peer->get_ike_version(peer), TRUE);
+- if (ike_sa)
+- {
+- ike_cfg_t *ike_cfg;
+- uint16_t port;
+- uint8_t mask;
+-
+- ike_sa->set_peer_cfg(ike_sa, peer);
+- ike_cfg = ike_sa->get_ike_cfg(ike_sa);
++ {
++ ike_cfg_t *ike_cfg;
++ uint16_t port;
++ uint8_t mask;
+
+- port = ike_cfg->get_other_port(ike_cfg);
+- data->dst->to_subnet(data->dst, &host, &mask);
+- host->set_port(host, port);
+- ike_sa->set_other_host(ike_sa, host);
++ ike_cfg = peer->get_ike_cfg(peer);
+
+- port = ike_cfg->get_my_port(ike_cfg);
+- data->src->to_subnet(data->src, &host, &mask);
+- host->set_port(host, port);
+- ike_sa->set_my_host(ike_sa, host);
++ port = ike_cfg->get_other_port(ike_cfg);
++ data->dst->to_subnet(data->dst, &other_host, &mask);
++ other_host->set_port(other_host, port);
+
+- charon->bus->set_sa(charon->bus, ike_sa);
+- }
+- }
+- else
+- {
+- ike_sa = charon->ike_sa_manager->checkout_by_config(
+- charon->ike_sa_manager, peer);
++ port = ike_cfg->get_my_port(ike_cfg);
++ data->src->to_subnet(data->src, &my_host, &mask);
++ my_host->set_port(my_host, port);
+ }
++ ike_sa = charon->ike_sa_manager->checkout_by_config(
++ charon->ike_sa_manager, peer,
++ my_host, other_host);
+ peer->destroy(peer);
++ DESTROY_IF(my_host);
++ DESTROY_IF(other_host);
+
+ if (ike_sa)
+ {
+diff --git a/src/swanctl/commands/initiate.c b/src/swanctl/commands/initiate.c
+index e0fffb907..dcaded59d 100644
+--- a/src/swanctl/commands/initiate.c
++++ b/src/swanctl/commands/initiate.c
+@@ -14,6 +14,28 @@
+ * for more details.
+ */
+
++/*
++ * Copyright (C) 2014 Timo Teräs <timo.teras@iki.fi>
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a copy
++ * of this software and associated documentation files (the "Software"), to deal
++ * in the Software without restriction, including without limitation the rights
++ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++ * copies of the Software, and to permit persons to whom the Software is
++ * furnished to do so, subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be included in
++ * all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
++ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
++ * THE SOFTWARE.
++ */
++
+ #include "command.h"
+
+ #include <errno.h>
+@@ -38,7 +60,7 @@ static int initiate(vici_conn_t *conn)
+ vici_req_t *req;
+ vici_res_t *res;
+ command_format_options_t format = COMMAND_FORMAT_NONE;
+- char *arg, *child = NULL, *ike = NULL;
++ char *arg, *child = NULL, *ike = NULL, *my_host = NULL, *other_host = NULL;
+ int ret = 0, timeout = 0, level = 1;
+
+ while (TRUE)
+@@ -65,6 +87,12 @@ static int initiate(vici_conn_t *conn)
+ case 'l':
+ level = atoi(arg);
+ continue;
++ case 'S':
++ my_host = arg;
++ continue;
++ case 'R':
++ other_host = arg;
++ continue;
+ case EOF:
+ break;
+ default:
+@@ -88,6 +116,14 @@ static int initiate(vici_conn_t *conn)
+ {
+ vici_add_key_valuef(req, "ike", "%s", ike);
+ }
++ if (my_host)
++ {
++ vici_add_key_valuef(req, "my-host", "%s", my_host);
++ }
++ if (other_host)
++ {
++ vici_add_key_valuef(req, "other-host", "%s", other_host);
++ }
+ if (timeout)
+ {
+ vici_add_key_valuef(req, "timeout", "%d", timeout * 1000);
+@@ -134,6 +170,8 @@ static void __attribute__ ((constructor))reg()
+ {"help", 'h', 0, "show usage information"},
+ {"child", 'c', 1, "initiate a CHILD_SA configuration"},
+ {"ike", 'i', 1, "initiate an IKE_SA, or name of child's parent"},
++ {"source", 'S', 1, "override source address"},
++ {"remote", 'R', 1, "override remote address"},
+ {"timeout", 't', 1, "timeout in seconds before detaching"},
+ {"raw", 'r', 0, "dump raw response message"},
+ {"pretty", 'P', 0, "dump raw response message in pretty print"},
+--
+2.43.0
+
diff --git a/main/strongswan/1002-vici-send-certificates-for-ike-sa-events.patch b/main/strongswan/0002-vici-send-certificates-for-ike-sa-events.patch
index 73129c78db8..e8c0cccf020 100644
--- a/main/strongswan/1002-vici-send-certificates-for-ike-sa-events.patch
+++ b/main/strongswan/0002-vici-send-certificates-for-ike-sa-events.patch
@@ -1,15 +1,21 @@
-Updated: 13 Mar 2022 by Nicolas Lorin <androw95220@gmail.com>
-From 62802d545bc6c9143d44511d25d2df435d3099aa Mon Sep 17 00:00:00 2001
+From 4e40c18f1f8706602f7dad9ded8904b7d60e79a1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
Date: Mon, 21 Sep 2015 13:42:05 +0300
-Subject: [PATCH 3/4] vici: send certificates for ike-sa events
+Subject: [PATCH 2/3] vici: send certificates for ike-sa events
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
+Signed-off-by: Timo Teräs <timo.teras@iki.fi>
+---
+ src/libcharon/plugins/vici/vici_query.c | 50 +++++++++++++++++++++----
+ 1 file changed, 42 insertions(+), 8 deletions(-)
+
+diff --git a/src/libcharon/plugins/vici/vici_query.c b/src/libcharon/plugins/vici/vici_query.c
+index bacb7b101..19acc0789 100644
--- a/src/libcharon/plugins/vici/vici_query.c
+++ b/src/libcharon/plugins/vici/vici_query.c
-@@ -379,7 +379,7 @@
+@@ -402,7 +402,7 @@ static void list_vips(private_vici_query_t *this, vici_builder_t *b,
* List details of an IKE_SA
*/
static void list_ike(private_vici_query_t *this, vici_builder_t *b,
@@ -18,7 +24,7 @@ Content-Transfer-Encoding: 8bit
{
time_t t;
ike_sa_id_t *id;
-@@ -388,6 +388,8 @@
+@@ -411,6 +411,8 @@ static void list_ike(private_vici_query_t *this, vici_builder_t *b,
uint32_t if_id;
uint16_t alg, ks;
host_t *host;
@@ -27,7 +33,7 @@ Content-Transfer-Encoding: 8bit
b->add_kv(b, "uniqueid", "%u", ike_sa->get_unique_id(ike_sa));
b->add_kv(b, "version", "%u", ike_sa->get_version(ike_sa));
-@@ -397,12 +399,44 @@
+@@ -420,11 +422,43 @@ static void list_ike(private_vici_query_t *this, vici_builder_t *b,
b->add_kv(b, "local-host", "%H", host);
b->add_kv(b, "local-port", "%d", host->get_port(host));
b->add_kv(b, "local-id", "%Y", ike_sa->get_my_id(ike_sa));
@@ -38,7 +44,7 @@ Content-Transfer-Encoding: 8bit
+ {
+ certificate_t *cert = auth_cfg->get(auth_cfg, AUTH_RULE_SUBJECT_CERT);
+ chunk_t encoding;
-
++
+ if (cert && cert->get_encoding(cert, CERT_ASN1_DER, &encoding))
+ {
+ b->add(b, VICI_KEY_VALUE, "local-cert-data", encoding);
@@ -47,7 +53,7 @@ Content-Transfer-Encoding: 8bit
+ }
+ enumerator->destroy(enumerator);
+ }
-+
+
host = ike_sa->get_other_host(ike_sa);
b->add_kv(b, "remote-host", "%H", host);
b->add_kv(b, "remote-port", "%d", host->get_port(host));
@@ -59,7 +65,7 @@ Content-Transfer-Encoding: 8bit
+ {
+ certificate_t *cert = auth_cfg->get(auth_cfg, AUTH_RULE_SUBJECT_CERT);
+ chunk_t encoding;
-
++
+ if (cert && cert->get_encoding(cert, CERT_ASN1_DER, &encoding))
+ {
+ b->add(b, VICI_KEY_VALUE, "remote-cert-data", encoding);
@@ -68,11 +74,10 @@ Content-Transfer-Encoding: 8bit
+ }
+ enumerator->destroy(enumerator);
+ }
-+
+
eap = ike_sa->get_other_eap_id(ike_sa);
- if (!eap->equals(eap, ike_sa->get_other_id(ike_sa)))
-@@ -532,7 +566,7 @@
+@@ -556,7 +590,7 @@ CALLBACK(list_sas, vici_message_t*,
b = vici_builder_create();
b->begin_section(b, ike_sa->get_name(ike_sa));
@@ -81,7 +86,7 @@ Content-Transfer-Encoding: 8bit
b->begin_section(b, "child-sas");
csas = ike_sa->create_child_sa_enumerator(ike_sa);
-@@ -1719,7 +1753,7 @@
+@@ -1774,7 +1808,7 @@ METHOD(listener_t, ike_updown, bool,
}
b->begin_section(b, ike_sa->get_name(ike_sa));
@@ -90,7 +95,7 @@ Content-Transfer-Encoding: 8bit
b->end_section(b);
this->dispatcher->raise_event(this->dispatcher,
-@@ -1744,10 +1778,10 @@
+@@ -1799,10 +1833,10 @@ METHOD(listener_t, ike_rekey, bool,
b = vici_builder_create();
b->begin_section(b, old->get_name(old));
b->begin_section(b, "old");
@@ -103,7 +108,7 @@ Content-Transfer-Encoding: 8bit
b->end_section(b);
b->end_section(b);
-@@ -1778,7 +1812,7 @@
+@@ -1833,7 +1867,7 @@ METHOD(listener_t, ike_update, bool,
b->add_kv(b, "remote-port", "%d", remote->get_port(remote));
b->begin_section(b, ike_sa->get_name(ike_sa));
@@ -112,7 +117,7 @@ Content-Transfer-Encoding: 8bit
b->end_section(b);
this->dispatcher->raise_event(this->dispatcher,
-@@ -1808,7 +1842,7 @@
+@@ -1863,7 +1897,7 @@ METHOD(listener_t, child_updown, bool,
}
b->begin_section(b, ike_sa->get_name(ike_sa));
@@ -121,7 +126,7 @@ Content-Transfer-Encoding: 8bit
b->begin_section(b, "child-sas");
snprintf(buf, sizeof(buf), "%s-%u", child_sa->get_name(child_sa),
-@@ -1843,7 +1877,7 @@
+@@ -1898,7 +1932,7 @@ METHOD(listener_t, child_rekey, bool,
b = vici_builder_create();
b->begin_section(b, ike_sa->get_name(ike_sa));
@@ -130,3 +135,6 @@ Content-Transfer-Encoding: 8bit
b->begin_section(b, "child-sas");
b->begin_section(b, old->get_name(old));
+--
+2.43.0
+
diff --git a/main/strongswan/1003-vici-add-support-for-individual-sa-state-changes.patch b/main/strongswan/0003-vici-add-support-for-individual-sa-state-changes.patch
index b2676c3e026..a3b8d4abb0c 100644
--- a/main/strongswan/1003-vici-add-support-for-individual-sa-state-changes.patch
+++ b/main/strongswan/0003-vici-add-support-for-individual-sa-state-changes.patch
@@ -1,17 +1,23 @@
-Updated: 13 Mar 2022 by Nicolas Lorin <androw95220@gmail.com>
-From 85538df79427beec3556505f2f74eb2f328171df Mon Sep 17 00:00:00 2001
+From a2c62d06d4640643cc5a216c80aded4a20aee715 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Timo=20Ter=C3=A4s?= <timo.teras@iki.fi>
Date: Mon, 21 Sep 2015 13:42:11 +0300
-Subject: [PATCH 4/4] vici: add support for individual sa state changes
+Subject: [PATCH 3/3] vici: add support for individual sa state changes
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Useful for monitoring and tracking full SA.
+Signed-off-by: Timo Teräs <timo.teras@iki.fi>
+---
+ src/libcharon/plugins/vici/vici_query.c | 105 ++++++++++++++++++++++++
+ 1 file changed, 105 insertions(+)
+
+diff --git a/src/libcharon/plugins/vici/vici_query.c b/src/libcharon/plugins/vici/vici_query.c
+index 19acc0789..e008885f7 100644
--- a/src/libcharon/plugins/vici/vici_query.c
+++ b/src/libcharon/plugins/vici/vici_query.c
-@@ -1685,8 +1719,16 @@
+@@ -1774,8 +1774,16 @@ static void manage_commands(private_vici_query_t *this, bool reg)
this->dispatcher->manage_event(this->dispatcher, "ike-updown", reg);
this->dispatcher->manage_event(this->dispatcher, "ike-rekey", reg);
this->dispatcher->manage_event(this->dispatcher, "ike-update", reg);
@@ -28,7 +34,7 @@ Useful for monitoring and tracking full SA.
manage_command(this, "list-sas", list_sas, reg);
manage_command(this, "list-policies", list_policies, reg);
manage_command(this, "list-conns", list_conns, reg);
-@@ -1787,6 +1829,45 @@
+@@ -1876,6 +1884,45 @@ METHOD(listener_t, ike_update, bool,
return TRUE;
}
@@ -74,7 +80,7 @@ Useful for monitoring and tracking full SA.
METHOD(listener_t, child_updown, bool,
private_vici_query_t *this, ike_sa_t *ike_sa, child_sa_t *child_sa, bool up)
{
-@@ -1866,6 +1947,62 @@
+@@ -1955,6 +2002,62 @@ METHOD(listener_t, child_rekey, bool,
return TRUE;
}
@@ -137,7 +143,7 @@ Useful for monitoring and tracking full SA.
METHOD(vici_query_t, destroy, void,
private_vici_query_t *this)
{
-@@ -1886,8 +2023,10 @@
+@@ -1975,8 +2078,10 @@ vici_query_t *vici_query_create(vici_dispatcher_t *dispatcher)
.ike_updown = _ike_updown,
.ike_rekey = _ike_rekey,
.ike_update = _ike_update,
@@ -148,3 +154,6 @@ Useful for monitoring and tracking full SA.
},
.destroy = _destroy,
},
+--
+2.43.0
+
diff --git a/main/strongswan/APKBUILD b/main/strongswan/APKBUILD
index fc3d45d0fca..668a9f8113e 100644
--- a/main/strongswan/APKBUILD
+++ b/main/strongswan/APKBUILD
@@ -2,25 +2,34 @@
# Contributor: Nicolas Lorin <androw95220@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=strongswan
-pkgver=5.9.6
-_pkgver=${pkgver//_rc/rc}
-pkgrel=0
+pkgver=5.9.13
+pkgrel=1
pkgdesc="IPsec-based VPN solution focused on security and ease of use, supporting IKEv1/IKEv2 and MOBIKE"
url="https://www.strongswan.org/"
arch="all"
pkgusers="ipsec"
pkggroups="ipsec"
license="GPL-2.0-or-later WITH OpenSSL-Exception"
-options="!check" # failing tests
depends="iproute2"
-makedepends="linux-headers python3 sqlite-dev openssl1.1-compat-dev curl-dev
- gmp-dev libcap-dev gettext-dev automake autoconf libtool"
+makedepends="
+ curl-dev
+ gettext-dev
+ gmp-dev
+ libcap-dev
+ linux-headers
+ openssl-dev>3
+ py3-setuptools
+ python3
+ sqlite-dev
+ "
install="$pkgname.pre-install"
-subpackages="$pkgname-doc $pkgname-dbg $pkgname-logfile $pkgname-openrc"
-source="https://download.strongswan.org/strongswan-$_pkgver.tar.bz2
+subpackages="$pkgname-doc $pkgname-dbg $pkgname-logfile $pkgname-openrc py3-vici-pyc py3-vici::noarch"
+source="https://download.strongswan.org/strongswan-$pkgver.tar.bz2
+ 0001-charon-add-optional-source-and-remote-overrides-for-.patch
+ 0002-vici-send-certificates-for-ike-sa-events.patch
+ 0003-vici-add-support-for-individual-sa-state-changes.patch
- 1002-vici-send-certificates-for-ike-sa-events.patch
- 1003-vici-add-support-for-individual-sa-state-changes.patch
+ disable_test_time_printf_hook.patch
strongswan.initd
charon.initd
@@ -28,7 +37,18 @@ source="https://download.strongswan.org/strongswan-$_pkgver.tar.bz2
charon-logfile.conf
"
+# 32bit archs seem to get stuck in rsa test suite at "generate" or "load"
+case "$CARCH" in
+ arm*|x86) options="!check";;
+esac
+
# secfixes:
+# 5.9.12-r0:
+# - CVE-2023-41913
+# 5.9.10-r0:
+# - CVE-2023-26463
+# 5.9.8-r0:
+# - CVE-2022-40617
# 5.9.1-r4:
# - CVE-2021-45079
# 5.9.1-r3:
@@ -46,11 +66,6 @@ source="https://download.strongswan.org/strongswan-$_pkgver.tar.bz2
# - CVE-2017-9022
# - CVE-2017-9023
-prepare() {
- default_prepare
- autoreconf -fiv
-}
-
build() {
# notes about configuration:
# - try to keep options in ./configure --help order
@@ -102,12 +117,17 @@ build() {
--enable-unity \
--enable-ha \
--enable-cmd \
+ --enable-python-eggs \
--enable-swanctl \
--enable-shared \
--disable-static \
--enable-bypass-lan \
$_aesni
make
+
+ cd src/libcharon/plugins/vici/python
+ make
+ python3 setup.py build
}
check() {
@@ -121,6 +141,9 @@ package() {
# for CRL caching
chown ipsec:ipsec "$pkgdir"/etc/ipsec.d/crls "$pkgdir"/etc/swanctl/x509crl
+
+ cd src/libcharon/plugins/vici/python/
+ python setup.py install --root="$pkgdir" --skip-build
}
logfile() {
@@ -133,12 +156,20 @@ logfile() {
install -m 2750 -o ipsec -g wheel -d "$subpkgdir/var/log/ipsec"
}
+vici() {
+ pkgdesc="Native Python interface for strongSwan's VICI protocol"
+
+ amove usr/lib/python*
+}
+
sha512sums="
-8efb7a55b074485b874e941e42462e97a404b4f84e2f90ed18ef66274731b22d167a571f6fd028dccc1f199f2e591c82616d0a832a5084e1981c6b867fe5bb6a strongswan-5.9.6.tar.bz2
-ff0196306f156d7f54de9f846227a7f04bb05e6df86dca2f09c01515df8a6bea6aedf826f1d95685b948477a228cec84fb3d8b8ceef6335074ad1d05ebb327ca 1002-vici-send-certificates-for-ike-sa-events.patch
-22cd56626936acd11fe98fe7956261bb10f9a7ea67b16d32b229d78c4008b1941d19b7fb6c24e87c167cfc9890aefdc5b61d539e2dc6a69bd2ac77e5278c9e89 1003-vici-add-support-for-individual-sa-state-changes.patch
+a929c1fb2a5e7d3064f6cd0be76703198406dad981f4b345311a004c18aa3c12adcb49eb33705fe4c3c31daf556cef5906d8753f5d9fbff5a27b732f93d8f19f strongswan-5.9.13.tar.bz2
+50ddcaa115237a31aa021c7be46ae9ec84f5f7c1f340af254026ebf47a0e53147373bf691c71d51cae3a871cb3d9635542c209d47457f608780f67f376258a13 0001-charon-add-optional-source-and-remote-overrides-for-.patch
+378060da77cd3ecec98f033953cf26170b765b12500b96067517e31f9cc904bff9bb2637b520906f6a9ccd2db39d085c38c3fcabedef8c441353f14920f7e33a 0002-vici-send-certificates-for-ike-sa-events.patch
+da04054d30adee03b9f21cbb7649cc30c7dfcef50a9aaea038ac8f35e5e9cb199a62c9e666ed6b7c4520dfca39d00eaee85a1ebe7de2def3b003e92e0b2bb4cc 0003-vici-add-support-for-individual-sa-state-changes.patch
+23e175fdd7445e06e5d7275903380a6a5e4c76d833b2680c8c9fcd704d5908990ded0bb408bba718cd67a41cb32c7ad308a6c93aeb7eae82f8bc5803f8e1bbc4 disable_test_time_printf_hook.patch
8b61e3ffbb39b837733e602ec329e626dc519bf7308d3d4192b497d18f38176789d23ef5afec51f8463ee1ddaf4d74546b965c03184132e217cbc27017e886c9 strongswan.initd
4ac8dc83f08998fe672d5446dc6071f95a6a437b9df7c19d5f1a41707fb44451ec37aa237d0b86b0a9edf36a9ce7c29ba8959a38b04536c994dd4300daf737e5 charon.initd
-0417de0c0aa779602b216f29b1ad58cc842f0b0fbb8f5238d39199125dac30eaae89d869b337f8f504f8427f074ee7a363f55e3b3875516fe1ed5f0ed7f34c6f charon.logrotate
+3eb0cd762a186d611a6322c1470581298c953b3e729fc85a13801611940eb896e8f6935e10eaa36884bd5c36600ba778d4af4c0ed1e9063436bd748268fd733b charon.logrotate
5896a9c5ecbef1a6c36b7bd31c83e18603f49105aedd4af80c42b0036c75950eac6e92abccfca09c9cb5bb3f3c4010f0daba068208e7dff05e7b1849d5a6e363 charon-logfile.conf
"
diff --git a/main/strongswan/charon.logrotate b/main/strongswan/charon.logrotate
index 4d42f64d8d1..2de03d817c2 100644
--- a/main/strongswan/charon.logrotate
+++ b/main/strongswan/charon.logrotate
@@ -1,6 +1,6 @@
/var/log/ipsec/charon {
missingok
postrotate
- killall -HUP charon
+ busybox killall -HUP charon
endscript
}
diff --git a/main/strongswan/disable_test_time_printf_hook.patch b/main/strongswan/disable_test_time_printf_hook.patch
new file mode 100644
index 00000000000..00adee2411e
--- /dev/null
+++ b/main/strongswan/disable_test_time_printf_hook.patch
@@ -0,0 +1,51 @@
+This test fail with
+
+ Running case 'printf_hooks': ++-+-+++++++++++++++++
+ Failure in 'test_time_printf_hook': buf != time_data[_i].out ("Jan 01 00:00:01 1970" != "Jan 01 01:00:01 1970") (suites/test_utils.c:967, i = 2)
+ Failure in 'test_time_printf_hook': buf != time_data[_i].out ("Jul 01 13:43:16 2012" != "Jul 01 15:43:16 2012") (suites/test_utils.c:967, i = 4)
+
+--- a/src/libstrongswan/tests/suites/test_utils.c
++++ b/src/libstrongswan/tests/suites/test_utils.c
+@@ -941,34 +941,6 @@ START_TEST(test_path_absolute)
+ END_TEST
+
+ /*******************************************************************************
+- * time_printf_hook
+- */
+-
+-static struct {
+- time_t in;
+- bool utc;
+- char *out;
+-} time_data[] = {
+- {UNDEFINED_TIME, FALSE, "--- -- --:--:-- ----"},
+- {UNDEFINED_TIME, TRUE , "--- -- --:--:-- UTC ----"},
+- {1, FALSE, "Jan 01 01:00:01 1970"},
+- {1, TRUE , "Jan 01 00:00:01 UTC 1970"},
+- {1341150196, FALSE, "Jul 01 15:43:16 2012"},
+- {1341150196, TRUE , "Jul 01 13:43:16 UTC 2012"},
+-};
+-
+-START_TEST(test_time_printf_hook)
+-{
+- char buf[32];
+- int len;
+-
+- len = snprintf(buf, sizeof(buf), "%T", &time_data[_i].in, time_data[_i].utc);
+- ck_assert(len >= 0 && len < sizeof(buf));
+- ck_assert_str_eq(buf, time_data[_i].out);
+-}
+-END_TEST
+-
+-/*******************************************************************************
+ * time_delta_printf_hook
+ */
+
+@@ -1321,7 +1293,6 @@ Suite *utils_suite_create()
+ suite_add_tcase(s, tc);
+
+ tc = tcase_create("printf_hooks");
+- tcase_add_loop_test(tc, test_time_printf_hook, 0, countof(time_data));
+ tcase_add_loop_test(tc, test_time_delta_printf_hook, 0, countof(time_delta_data));
+ suite_add_tcase(s, tc);
+
diff --git a/main/su-exec/APKBUILD b/main/su-exec/APKBUILD
index 43b6058cd47..f5c9222391b 100644
--- a/main/su-exec/APKBUILD
+++ b/main/su-exec/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=su-exec
pkgver=0.2
-pkgrel=1
+pkgrel=3
pkgdesc="switch user and group id, setgroups and exec"
url="https://github.com/ncopa/su-exec"
arch="all"
@@ -14,7 +14,7 @@ build() {
}
package() {
- install -D su-exec "$pkgdir"/sbin/su-exec || return 1
+ install -D su-exec "$pkgdir"/sbin/su-exec
}
sha512sums="68155a06c716b362aee1214f22cd325b3e934c05b653d3b084a720458fb04207c0681d218b72adfd5ae8fab0262f7ab90e49eb2e218d1b0d7d7af7911715d4e1 su-exec-0.2.tar.gz"
diff --git a/main/subunit/APKBUILD b/main/subunit/APKBUILD
index 976f063c9f3..a2e0fcfbe87 100644
--- a/main/subunit/APKBUILD
+++ b/main/subunit/APKBUILD
@@ -1,24 +1,24 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=subunit
-pkgver=1.4.0
-pkgrel=3
+pkgver=1.4.2
+pkgrel=7
pkgdesc="A streaming protocol for test results"
options="!check" # Dependencies for checking stuff are in testing/
url="https://launchpad.net/subunit"
arch="all"
license="Apache-2.0 AND BSD-3-Clause"
depends="python3 py3-extras py3-testtools"
-makedepends="check-dev cppunit-dev perl-dev python3-dev automake
- autoconf libtool"
-subpackages="$pkgname-dev $pkgname-libs"
+makedepends="
+ check-dev
+ cppunit-dev
+ perl-dev
+ py3-setuptools
+ python3-dev
+ "
+subpackages="$pkgname-pyc $pkgname-dev $pkgname-libs"
source="https://launchpad.net/subunit/trunk/$pkgver/+download/subunit-$pkgver.tar.gz"
-prepare() {
- default_prepare
- autoreconf -fi
-}
-
build() {
./configure \
--build=$CBUILD \
@@ -27,8 +27,12 @@ build() {
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
- --localstatedir=/var
+ --localstatedir=/var \
+ --disable-dependency-tracking \
+ --disable-static \
+ --with-pic
make
+ python3 setup.py build
}
check() {
@@ -37,9 +41,12 @@ check() {
package() {
make DESTDIR="$pkgdir" install
+ python3 setup.py install --skip-build --root="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
- rm -f "$pkgdir"/usr/lib/*.a
sed -i '1s|/usr/bin/env python$|/usr/bin/python3|' "$pkgdir"/usr/bin/*
+ rm -r "$pkgdir"/usr/lib/python3*/site-packages/subunit/tests/
}
-sha512sums="5d2e3cb96c09067ef4595c86648f13330c810b19e39c0b35bc9546c57bee957ddcf5cad7b8e3f92bda9b54dcdbf175863e2f6ba94020f880230459be7afdbbcf subunit-1.4.0.tar.gz"
+sha512sums="
+3acf96055ec0c49c4ac17c43a398c4e5173c9904652f54edd7597130e69224475670308b405d336e824dad667f51ec856cfca3a5e681fae756a67a0a400efabe subunit-1.4.2.tar.gz
+"
diff --git a/main/subversion/APKBUILD b/main/subversion/APKBUILD
index c11e028de8e..0fa0d02a17d 100644
--- a/main/subversion/APKBUILD
+++ b/main/subversion/APKBUILD
@@ -1,27 +1,49 @@
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=subversion
-pkgver=1.14.2
-pkgrel=3
+pkgver=1.14.3
+pkgrel=2
_py3c_ver=1.4
pkgdesc="Replacement for CVS, another versioning system (svn)"
url="https://subversion.apache.org/"
arch="all"
-license="Apache-2.0 BSD"
-makedepends="apache2-dev apr-util-dev autoconf automake e2fsprogs-dev libtool
- lz4-dev neon-dev perl-dev python3-dev serf-dev swig boost-dev"
+license="Apache-2.0 AND BSD-2-Clause"
+makedepends="
+ apache2-dev
+ apr-util-dev
+ autoconf
+ automake
+ boost-dev
+ e2fsprogs-dev
+ libtool
+ lz4-dev
+ neon-dev
+ perl-dev
+ python3-dev
+ serf-dev
+ swig
+ "
install="$pkgname.pre-install"
-subpackages="$pkgname-dev $pkgname-doc mod_dav_svn
+subpackages="
+ $pkgname-dev
+ $pkgname-doc
+ mod_dav_svn
$pkgname-bash-completion:bashcomp:noarch
- perl-$pkgname:pl py3-$pkgname:py $pkgname-libs
- $pkgname-openrc"
+ perl-$pkgname:pl
+ py3-$pkgname-pyc
+ py3-$pkgname:py
+ $pkgname-libs
+ $pkgname-openrc
+ $pkgname-tools
+ "
source="https://archive.apache.org/dist/subversion/subversion-$pkgver.tar.bz2
py3c-$_py3c_ver.tar.gz::https://github.com/encukou/py3c/archive/v$_py3c_ver.tar.gz
subversion-1.7.0-deplibs.patch
subversion-perl-deplibs.patch
subversion-1.12.0-linking.patch
svnserve.confd
- svnserve.initd"
+ svnserve.initd
+ "
# secfixes:
# 1.14.2-r0:
@@ -41,9 +63,6 @@ prepare() {
default_prepare
mv build-outputs.mk build-outputs.mk.old
PYTHON=python3 LIBTOOL_CONFIG=/usr/share/libtool/build-aux ./autogen.sh --release
- # fix shebangs
- sed -i -e 's|/usr/bin/env perl -w|/usr/bin/perl -w|' tools/hook-scripts/*.pl.in
- sed -e 's|/usr/bin/env python.*|/usr/bin/python3|' subversion/tests/cmdline/svneditor.py
}
build() {
@@ -65,8 +84,7 @@ build() {
--without-jdk \
--with-serf \
--with-utf8proc=internal
- make all
- make swig-pl-lib
+ make all swig-pl-lib tools
(cd subversion/bindings/swig/perl/native ; perl Makefile.PL)
# need override LD_RUN_PATH with something valid, otherwise we get
# empty rpath which is not a good idea.
@@ -91,7 +109,8 @@ package() {
make -j1 DESTDIR="$pkgdir" \
swig_pydir="$_pydir/libsvn"\
swig_pydir_extra="$_pydir/svn" \
- install install-swig-pl-lib install-swig-py
+ toolsdir=/usr/bin \
+ install install-swig-pl-lib install-swig-py install-tools
make pure_vendor_install -C subversion/bindings/swig/perl/native \
PERL_INSTALL_ROOT="$pkgdir"
find "$pkgdir" \( -name perllocal.pod -o -name .packlist \) -delete
@@ -99,45 +118,52 @@ package() {
install -Dm755 "$srcdir"/svnserve.initd "$pkgdir"/etc/init.d/svnserve
install -Dm644 "$srcdir"/svnserve.confd "$pkgdir"/etc/conf.d/svnserve
- mkdir -p "pkgdir"/usr/lib
+ mkdir -p "$pkgdir"/usr/lib
mv "$pkgdir"/usr/share/pkgconfig "$pkgdir"/usr/lib
+
+ install -Dm644 tools/client-side/bash_completion \
+ "$pkgdir"/usr/share/bash-completion/completions/$pkgname
+ cd "$pkgdir"/usr/share/bash-completion/completions
+ local i; for i in svn svnadmin svndumpfilter svnlook svnsync svnversion; do
+ ln -sf $pkgname $i
+ done
}
mod_dav_svn() {
pkgdesc="Apache httpd module for $pkgname server"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/apache2 "$subpkgdir"/usr/lib/
-}
-
-bashcomp() {
- depends=""
- pkgdesc="Bash completion for $pkgname"
- install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
- install -Dm644 "$builddir"/tools/client-side/bash_completion \
- "$subpkgdir"/usr/share/bash-completion/completions/$pkgname
- cd "$subpkgdir"/usr/share/bash-completion/completions
- local i; for i in svn svnadmin svndumpfilter svnlook svnsync svnversion; do
- ln -sf $pkgname $i
- done
+ amove usr/lib/apache2
}
pl() {
pkgdesc="Perl bindings to $pkgname"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*perl* "$subpkgdir"/usr/lib/
+
+ amove usr/lib/*perl*
}
py() {
pkgdesc="Python bindings to $pkgname"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/lib*swig*py* \
- "$pkgdir"/usr/lib/python* \
- "$subpkgdir"/usr/lib/
+
+ amove usr/lib/lib*swig*py*
+ amove usr/lib/python*
+}
+
+tools() {
+ pkgdesc="extra tools for subversion"
+
+ # this is the list from install-tools into toolsdir
+ amove usr/bin/diff* \
+ usr/bin/fsfs-* \
+ usr/bin/svn-* \
+ usr/bin/svnauthz* \
+ usr/bin/svnconflict \
+ usr/bin/svnmover \
+ usr/bin/svnraisetreeconflict \
+ usr/bin/x509-parser
}
sha512sums="
-20ada4688ca07d9fb8da4b7d53b5084568652a3b9418c65e688886bae950a16a3ff37710fcfc9c29ef14a89e75b2ceec4e9cf35d5876a7896ebc2b512cfb9ecc subversion-1.14.2.tar.bz2
+40b172492005fd3b0cd9e457b4444af8ea5d8ff8fc161a9a0c6dc3a7314c6ad4ff75a4676f68a1919ae6273ae03e34d04eba8c1c37b8c0b4ec70d6731b527b41 subversion-1.14.3.tar.bz2
db71db2c19a16ba5a430b676beb357faee5b67b161478932af13dd06be23b5505da85dbaf5b2447f95590fea55b833ee33fa19d3350ba3117f3364a9ab012ee6 py3c-1.4.tar.gz
fb219c45b80602d919176cc191394df09f90d0f5c7d24e6a36b166bd92777ecae67eeac1e49c0ffbb0e724396b3d2094dbb0bef17d01dc87d418b1cd554bd7c4 subversion-1.7.0-deplibs.patch
fd6e5f45cff4d3cf0d885a34c822b32141b13b199d99ad8e1b04d641c9c1ee27e73f5c556a4ad54a900b6d39cc14afad17b6738d8af44c76758f1a27b4d49f9a subversion-perl-deplibs.patch
diff --git a/main/supervisor/APKBUILD b/main/supervisor/APKBUILD
index 22cdf1c4bed..d2a1dd2c157 100644
--- a/main/supervisor/APKBUILD
+++ b/main/supervisor/APKBUILD
@@ -1,14 +1,18 @@
# Contributor: Peter Bui <pnutzh4x0r@gmail.com>
-# Maintainer:
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=supervisor
-pkgver=4.2.4
-pkgrel=0
+pkgver=4.2.5
+pkgrel=5
pkgdesc="system for controlling process state under UNIX"
url="http://supervisord.org/"
arch="noarch"
-license="BSD-4-Clause and BSD-3-Clause-Clear"
+license="BSD-4-Clause AND BSD-3-Clause-Clear"
+# setuptools is a runtime dependency,
+# see 4a92a58b46bf23924e243fb36bf3ba769a476178
depends="python3 py3-setuptools"
-subpackages="supervisor-openrc"
+makedepends="py3-gpep517 py3-wheel"
+checkdepends="py3-pytest"
+subpackages="$pkgname-pyc supervisor-openrc"
source="$pkgname-$pkgver.tar.gz::https://github.com/Supervisor/supervisor/archive/$pkgver.tar.gz
supervisord.conf
supervisord.initrd
@@ -21,22 +25,24 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/Supervisor/supervisor/archiv
# - CVE-2017-11610
build() {
- python3 setup.py build
+ gpep517 build-wheel --wheel-dir .dist --output-fd 3 3>&1 >&2
}
check() {
- python3 setup.py test
+ python3 -m venv --clear --without-pip --system-site-packages .testenv
+ .testenv/bin/python3 -m installer .dist/*.whl
+ .testenv/bin/python3 -m pytest
}
package() {
- python3 setup.py install --prefix=/usr --root="$pkgdir" --optimize=1
+ python3 -m installer -d "$pkgdir" .dist/*.whl
install -Dm600 "$srcdir/supervisord.conf" "$pkgdir/etc/supervisord.conf"
install -Dm755 "$srcdir/supervisord.initrd" "$pkgdir/etc/init.d/supervisord"
install -Dm644 "$srcdir/supervisord.logrotate" "$pkgdir/etc/logrotate.d/supervisord"
}
sha512sums="
-d1972a59d31a93e070255f2fd07d00b5ebc29e8c21034272c6721a2315c74e87b9292a9ef8cf876bbe0465927be1d4d4e764fbdc33353918af9d048c1ea5c3bd supervisor-4.2.4.tar.gz
+54feb6f9779326aad90f00a88097f2e68a3aefebfa2529782768c097f28d4d94583b345da6a95593f92bdf04177d61761e4f9e1f0bb48afa4abee005a0a078d1 supervisor-4.2.5.tar.gz
efdb2dba28cf310aebd730a9096838c5b879c457e4961c6b54d4da1db7238300f584cd714ca48a71ba891f780d819ee719c3b3dbbf92eb1213794833544f01b6 supervisord.conf
7f7c51239c2360c4d03e1167e90650e0474ce8a0ca79c5d491f5f04a78eb95c343ed25d81983cde2f82535420e9b663cde532665114124b06a98fd7d08410416 supervisord.initrd
881fd0893280cb5053f56128838af51b6c79d715559e7b04a268102fd7b6121c99ff4411ed7f443f21232146925d40e1fbe269e5fcefa3f86fa35ba9d3625193 supervisord.logrotate
diff --git a/main/swig/APKBUILD b/main/swig/APKBUILD
index f8430a61334..be1284d0dba 100644
--- a/main/swig/APKBUILD
+++ b/main/swig/APKBUILD
@@ -1,13 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=swig
-pkgver=4.0.2
-pkgrel=6
+pkgver=4.2.1
+pkgrel=2
pkgdesc="A compiler that makes it easy to integrate C and C++ code with scripting languages"
-url="http://www.swig.org/"
+url="https://www.swig.org/"
arch="all"
license="GPL-3.0-only"
depends="guile"
-makedepends="zlib-dev pcre-dev bison"
+makedepends="zlib-dev pcre2-dev bison"
checkdepends="boost-dev perl-dev python3-dev diffutils"
subpackages="$pkgname-doc"
source="https://downloads.sourceforge.net/swig/swig-$pkgver.tar.gz
@@ -25,8 +25,8 @@ build() {
check() {
(
-# export PATH="/usr/bin:/bin:/usr/sbin:/sbin"
- env
+ # ccache test seems broken with ccache in the path..
+ export PATH="/usr/bin:/bin:/usr/sbin:/sbin"
make -C CCache check
)
}
@@ -37,5 +37,7 @@ package() {
install -D -m644 LICENSE-UNIVERSITIES "$pkgdir"/usr/share/licenses/$pkgname/LICENSE-UNIVERSITIES
}
-sha512sums="05e7da70ce6d9a733b96c0bcfa3c1b82765bd859f48c74759bbf4bb1467acb1809caa310cba5e2b3280cd704fca249eaa0624821dffae1d2a75097c7f55d14ed swig-4.0.2.tar.gz
-62d6eecba01abe8ddd5a3b8a5512b57e63182b49d957bb81903c29dfccfaa62e75555dabc2c7b163afb8432328dd10e23bec0e3bf1d1d7622ec1119f5dab0a64 fix-test-sed-PATH.patch"
+sha512sums="
+019dee5a46d57e1030eef47cd5d007ccaadbdcd4e53cd30d7c795f0118ecf4406a78185534502c81c5f6d7bac0713256e7e19b20b5a2d14e2c552219edbaf5cf swig-4.2.1.tar.gz
+62d6eecba01abe8ddd5a3b8a5512b57e63182b49d957bb81903c29dfccfaa62e75555dabc2c7b163afb8432328dd10e23bec0e3bf1d1d7622ec1119f5dab0a64 fix-test-sed-PATH.patch
+"
diff --git a/main/swish-e/APKBUILD b/main/swish-e/APKBUILD
index 08ff85f2110..110692611fe 100644
--- a/main/swish-e/APKBUILD
+++ b/main/swish-e/APKBUILD
@@ -2,42 +2,41 @@
# Maintainer: Michael Mason <ms13sp@gmail.com>
pkgname=swish-e
pkgver=2.4.7
-pkgrel=12
+pkgrel=16
pkgdesc="Simple Web Indexing System for Humans - Enhanced"
url="http://www.swish-e.org/"
arch="all"
-license="GPL"
+license="GPL-2.0-or-later"
+options="!check" # fixme: failing tests
depends="perl-html-parser perl-html-tagset perl-libwww"
makedepends="perl-dev"
-install=
subpackages="$pkgname-dev $pkgname-doc"
#source="http://www.swish-e.org/distribution/$pkgname-$pkgver.tar.gz"
source="https://distfiles.macports.org/swish-e/swish-e-$pkgver.tar.gz
+ format-security.patch
zlib-shadowing.patch"
-builddir="$srcdir/$pkgname-$pkgver"
-
prepare() {
default_prepare
- update_config_sub || return 1
+ update_config_sub
}
build() {
- cd "$builddir"
-
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
- --infodir=/usr/share/info \
- || return 1
- make || return 1
+ --infodir=/usr/share/info
+ make
+}
+
+check() {
+ make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
# Move SwishSpiderConfig.pl because spider.pl won't run without default settings
@@ -45,5 +44,8 @@ package() {
}
-sha512sums="859cb0cacea093f4d6c19353cafe723067569b832485689128b5a86e416aca3a03e1f852b96acc4cb5e6b0f6814cac364d4bbce0a2928fd5ac5224e14022a666 swish-e-2.4.7.tar.gz
-33c637ac734a7a5e7be398728e3f109a20c9cb69fdb739339d3fbd0a2392fa135e442d8e682889b881e9bf049a3344f4f0e7b0cf5e009bd2ad40b1772e8910ec zlib-shadowing.patch"
+sha512sums="
+859cb0cacea093f4d6c19353cafe723067569b832485689128b5a86e416aca3a03e1f852b96acc4cb5e6b0f6814cac364d4bbce0a2928fd5ac5224e14022a666 swish-e-2.4.7.tar.gz
+8cadd53fb39ee17c85faba20acfd6e323f2253d2f90d57528600e61173c81d8a898309e0ba8fd2ec176f2b98833fb2c4d3b6a4ee90f8f2ad942186d77bd45c4f format-security.patch
+33c637ac734a7a5e7be398728e3f109a20c9cb69fdb739339d3fbd0a2392fa135e442d8e682889b881e9bf049a3344f4f0e7b0cf5e009bd2ad40b1772e8910ec zlib-shadowing.patch
+"
diff --git a/main/swish-e/format-security.patch b/main/swish-e/format-security.patch
new file mode 100644
index 00000000000..9b42ac936b2
--- /dev/null
+++ b/main/swish-e/format-security.patch
@@ -0,0 +1,13 @@
+diff --git a/src/result_output.c b/src/result_output.c
+index 48eeeca..9293e50 100644
+--- a/src/result_output.c
++++ b/src/result_output.c
+@@ -752,7 +752,7 @@ static void printPropertyResultControl(FILE * f, char *propname, char *subfmt, R
+ s = (char *) emalloc(MAXWORDLEN + 1);
+ n = strftime(s, (size_t) MAXWORDLEN, fmt, localtime(&(pv->value.v_date)));
+ if (n && f)
+- fprintf(f, s);
++ fprintf(f, "%s", s);
+ efree(s);
+ }
+ break;
diff --git a/main/sysfsutils/APKBUILD b/main/sysfsutils/APKBUILD
index 0c5b5f063f7..5cbd7164751 100644
--- a/main/sysfsutils/APKBUILD
+++ b/main/sysfsutils/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=sysfsutils
pkgver=2.1.1
-pkgrel=0
+pkgrel=3
pkgdesc="System Utilities Based on Sysfs"
url="https://github.com/linux-ras/sysfsutils"
arch="all"
diff --git a/main/sysklogd/APKBUILD b/main/sysklogd/APKBUILD
index 72ffdbd47d4..4969083cc72 100644
--- a/main/sysklogd/APKBUILD
+++ b/main/sysklogd/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=sysklogd
pkgver=1.5.1
-pkgrel=3
+pkgrel=5
pkgdesc="System and kernel log daemons"
url="https://github.com/troglobit/sysklogd"
arch="all"
@@ -39,9 +39,10 @@ package() {
install -D -m644 "$srcdir"/syslog.conf "$pkgdir"/etc/syslog.conf
}
-sha512sums="a72196a1a172d25be1c4791ef6256fe71fa2ba8c1383d230e646e93f8a65c3a57c535189726325da4c792fdb2e9cb119bba43c878816a8e78e78189fd32b12b7 sysklogd-1.5.1.tar.gz
+sha512sums="
+a72196a1a172d25be1c4791ef6256fe71fa2ba8c1383d230e646e93f8a65c3a57c535189726325da4c792fdb2e9cb119bba43c878816a8e78e78189fd32b12b7 sysklogd-1.5.1.tar.gz
d82caedfa61bfefc0162e5c416ff75a5cd8f60abe1cf8a3c5c4e7775aeb7bb64e712c783031659d3793378c8753578adf73ef79aac6a0e7cfbc5bbba5a74bd81 sysklogd.logrotate
-87a95d612b9841a022c91a219ff4f69f57badb7f84178f06fc8abec242df948540582f27146b34c6ce730a451ddfc5195b24237cd70c70896ef040148789dd20 sysklogd.daily
+19e7a744f51a3fd4ec26a2c6ddd8c780b8de9cc238dce3b5ecf1c063b81b09b5ae306fccaea958630991c4a1273bb70c532022fc05a752c8a59ac818f81a9c3d sysklogd.daily
eb4c2c411d75315e113efe40c8445dd2eb7aa88e3318ce3d7624916005ec82325a877c83f5816231fc25d5103ac5be1fc58a4d9593b99fea24c87805abd03039 sysklogd.initd
4553d85e93fb07e7d4a6ed0b47a3ea2044a5605adaac05223724c32a60bb8ae96d99ca95965c3931640beef234e976c1141b83f603aa8c6e8aca1dec20ca807c sysklogd.confd
1a5cf4a5dec3ecaa8258110820b64d6a8e1e768e841a3f0ade8d7827b91e73c2d8a49a9d8b74566373133627af88dd46d14e83ae1940a0b2e6cd6fe8710a7e7a sysklogd-1.4.2-caen-owl-klogd-drop-root.patch
@@ -50,4 +51,5 @@ eb4c2c411d75315e113efe40c8445dd2eb7aa88e3318ce3d7624916005ec82325a877c83f5816231
ab979b36f091c62ada916246723cd75a71319a6c3687c034167b9caafc53807e6d224e0d6c836bc4b81b61c1d02ec21a1cb19477396a416c62f097d4b9ccc678 sysklogd-1.5-build.patch
ceb1f7cb70f526dd285fc8bad5511cdef603fc1296f69cc0e7ec4901f11685fae083d028687765b233ca074dfbe0cdafa921de6c80a5cbced94de1059d9761ee ksym-fclose-fix.patch
0208662a0158ecb6b0a387bd1bf467c866105dac02767209aeaaaeb02762d6c2b814a2707315f8f6cd40f46c4b7744b74653e30973c31354998c27cd7c966dbd fix-includes.patch
-49f73b8a16b92d0cda56db9cfc16d5322e797590dfc998282a62560d54205042af953837f5f94b45a3de403fdf5f63efe65d72e9908c7185a2cd5941275abf33 syslog.conf"
+49f73b8a16b92d0cda56db9cfc16d5322e797590dfc998282a62560d54205042af953837f5f94b45a3de403fdf5f63efe65d72e9908c7185a2cd5941275abf33 syslog.conf
+"
diff --git a/main/sysklogd/sysklogd.daily b/main/sysklogd/sysklogd.daily
index 725c33e3175..197fe89f573 100755
--- a/main/sysklogd/sysklogd.daily
+++ b/main/sysklogd/sysklogd.daily
@@ -87,5 +87,5 @@ for LOG in $(syslogd_listfiles --auth); do
[ -f $LOG ] && savelog -g adm -m 640 -u root -c 7 $LOG
done
-killall -HUP syslogd
+busybox killall -HUP syslogd
diff --git a/main/syslinux/APKBUILD b/main/syslinux/APKBUILD
index 33c6581bbd0..7877769c51e 100644
--- a/main/syslinux/APKBUILD
+++ b/main/syslinux/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=syslinux
pkgver=6.04_pre1
-pkgrel=11
+pkgrel=15
_ver=${pkgver/_/-}
pkgdesc="Boot loader for the Linux operating system"
url="https://syslinux.org"
@@ -11,7 +11,6 @@ makedepends="linux-headers nasm perl util-linux-dev gnu-efi-dev"
depends="mtools blkid initramfs-generator"
triggers="syslinux.trigger=/boot"
install="syslinux.post-upgrade"
-options="textrels"
ldpath="/usr/share/syslinux"
subpackages="$pkgname-doc $pkgname-dev"
source="https://www.kernel.org/pub/linux/utils/boot/syslinux/Testing/${pkgver%_pre*}/syslinux-$_ver.tar.xz
@@ -28,6 +27,7 @@ x86_64) _loaderarch=efi64;;
esac
builddir="$srcdir"/$pkgname-$_ver
+options="textrels !check"
build() {
unset LDFLAGS
@@ -48,7 +48,7 @@ package() {
sha512sums="
7927dd39be8e2dcf4138a6fea33def67d19d938379d694f15b48fdd2f5924c028b7a9e7bd71d0c7c6630c203e9e2a54296628e530632ad5e6f55b1ebefe8fc98 syslinux-6.04-pre1.tar.xz
2fb759e483d51769d0259587fe1f48a92d4f95e350f8dc7f055a29da75670617260c0d1a467b63ac05c7719a8fe673ca7f6244011f78592cf750f11acb8d6bb4 update-extlinux.conf
-e605800d69aa678eb5ce334ebca2b8eb87d8f91fbf8a894e36118af6545477d000c465e54a37e731d3978bc17afdf35d39854440ad67b2291fea774eef4827b7 update-extlinux
+ebd33afdc8c0ea18867f9bc970e54da6b72fc8dddc0475b0d6b24f6c76a1d7d7b8568332f3f9b36122af273d5bd5ea940e8d4aaf978d86029d015329f74c480c update-extlinux
92fa48133ef702092d7acafae0e0e20f9355cd2b5fe199b96fcccba5a1e688c360de4d069391815255f5493228ad03998d20b99748323396d20d12a1f27c60cd 0018-prevent-pow-optimization.patch
6fb63b50a6c746445a58badc81cbf8525f38e2a7868b97ac21aa9d20c162f2318fab6c25505614700033a840aa5c06c3cef3065f11b5b5f4e514474194ff4b54 fix-sysmacros.patch
62a45f94107300b05a93be18a228c15ae9ce90addeee39a1ef35845077b493e72ebed35791bf8db21c406c379a83220cc4db4e1919c01fcd387ae10b2cfc8861 gcc-10.patch
diff --git a/main/syslinux/update-extlinux b/main/syslinux/update-extlinux
index bdb28160a23..e3d44c4fe66 100755
--- a/main/syslinux/update-extlinux
+++ b/main/syslinux/update-extlinux
@@ -90,7 +90,16 @@ if [ "x$root" = "x" ]; then
everbose "Root device is: $root"
fi
-rtimeout=$(( ${timeout} * 10 ))
+if [ -z "${timeout##*[!0-9]*}" ]; then
+ if [ -n "$warn_only" ]; then
+ ewarn "timeout ($timeout) must be an integer; flooring."
+ timeout=$(echo $timeout | cut -f1 -d.)
+ else
+ eerror "timeout ($timeout) must be an integer."
+ exit 1
+ fi
+fi
+rtimeout=$(( $timeout * 10 ))
syslinux_menu=menu.c32
menu_hidden=
diff --git a/main/syslog-ng/APKBUILD b/main/syslog-ng/APKBUILD
index 05b2cd6e8c4..28bc2b39fb5 100644
--- a/main/syslog-ng/APKBUILD
+++ b/main/syslog-ng/APKBUILD
@@ -4,29 +4,27 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: jv <jens@eisfair.org>
pkgname=syslog-ng
-pkgver=3.36.1
-pkgrel=0
+pkgver=4.6.0
+pkgrel=1
pkgdesc="Next generation logging daemon"
url="https://www.syslog-ng.com/products/open-source-log-management/"
arch="all"
license="GPL-2.0-or-later"
options="!check" # unit tests require https://github.com/Snaipe/Criterion with deps
makedepends="
+ bison
curl-dev
eventlog-dev
file
- bison
flex
- autoconf
- automake
- libtool
glib-dev
hiredis-dev
- ivykis-dev>=0.42.4
- libdbi-dev
+ ivykis-dev
json-c-dev
- openssl1.1-compat-dev
- pcre-dev
+ libdbi-dev
+ openssl-dev
+ pcre2-dev
+ py3-setuptools
python3-dev
rabbitmq-c-dev
"
@@ -36,9 +34,10 @@ subpackages="
$pkgname-dev
$pkgname-doc
$pkgname-openrc
- py3-$pkgname:_python3
+ $pkgname-python
"
source="https://github.com/balabit/syslog-ng/releases/download/syslog-ng-$pkgver/syslog-ng-$pkgver.tar.gz
+ pyversion.patch
$pkgname.conf
$pkgname.logrotate
$pkgname.initd
@@ -63,17 +62,9 @@ for _i in $_modules; do
subpackages="$subpackages $pkgname-${_i%%:*}:_module"
done
-prepare() {
- default_prepare
-
- # Remove bundled libraries
- rm -rf lib/ivykis
- rm -rf modules/afamqp/rabbitmq-c
- rm -rf modules/afmongodb/mongo-c-driver
- autoreconf -if
-}
-
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
./configure \
--prefix=/usr \
--sysconfdir=/etc/syslog-ng \
@@ -82,27 +73,29 @@ build() {
--enable-ipv6 \
--enable-manpages \
\
- --enable-sql \
+ --disable-geoip2 \
+ --disable-java \
+ --disable-java-modules \
--disable-linux-caps \
--disable-mongodb \
- --enable-json \
- --enable-amqp \
- --enable-stomp \
- --disable-smtp \
- --enable-http \
- --enable-redis \
- --enable-geoip \
- --disable-geoip2 \
+ --disable-python-modules \
--disable-riemann \
+ --disable-smtp \
--disable-systemd \
- --enable-python \
- --disable-java \
- --disable-java-modules \
+ --enable-amqp \
+ --enable-geoip \
+ --enable-http \
+ --enable-json \
--enable-native \
+ --enable-python \
--enable-rdrand \
+ --enable-redis \
+ --enable-sql \
+ --enable-stomp \
--with-ivykis=system \
--with-jsonc=system \
- --with-librabbitmq-client=system
+ --with-librabbitmq-client=system \
+ --with-python-packages=system
make
}
@@ -111,15 +104,15 @@ package() {
cd "$pkgdir"
- rm -rf run usr/lib/$pkgname/libtest
+ rm -r run
# getent module doesn't build properly as musl doesn't support reentrant
# getprotoby[number|name] funcs. The provided compat lib only patches
# solaris, which does provide reentrant versions under a different sig
- rm -f usr/lib/$pkgname/libtfgetent.so
+ rm usr/lib/$pkgname/libtfgetent.so
# Remove static file
- rm -f usr/lib/libsyslog-ng-native-connector.a
+ rm usr/lib/libsyslog-ng-native-connector.a
install -m 644 "$srcdir"/$pkgname.conf etc/$pkgname/$pkgname.conf
install -D -m 755 "$srcdir"/$pkgname.initd etc/init.d/$pkgname
@@ -133,48 +126,45 @@ scl() {
pkgdesc="$pkgdesc (configuration library)"
depends="$pkgname=$pkgver-r$pkgrel"
- _submv usr/share/syslog-ng/include/scl
+ amove usr/share/syslog-ng/include/scl
}
dev() {
default_dev
- _submv usr/share/syslog-ng/tools \
+ amove \
+ usr/share/syslog-ng/tools \
usr/share/syslog-ng/xsd
-}
-_python3() {
- pkgdesc="$pkgdesc (python3 module)"
-
- _submv usr/lib/syslog-ng/libmod-python.so
+ # this has to remain in main package
+ mkdir -p "$pkgdir"/usr/share/syslog-ng/include/
+ mv "$subpkgdir"/usr/share/syslog-ng/include/scl.conf \
+ "$pkgdir"/usr/share/syslog-ng/include/
+}
- local site_pkgs="$(python3 -c 'import site; print(site.getsitepackages()[0])')"
+python() {
+ pkgdesc="$pkgdesc (python module)"
- mkdir -p "$subpkgdir"/"$site_pkgs"
- mv "$pkgdir"/usr/lib/syslog-ng/python/* \
- "$subpkgdir"/"$site_pkgs"
+ amove \
+ usr/lib/syslog-ng/libmod-python.so \
+ usr/lib/syslog-ng/python \
+ etc/syslog-ng/python
}
_module() {
- local name="${subpkgname#$pkgname-}"
+ local name="${subpkgname#"$pkgname"-}"
pkgdesc="$pkgdesc (${name//-/ } module)"
local libname=$(printf '%s\n' $_modules | grep "^$name:" | cut -d: -f2)
local soname="lib${libname:-$name}.so"
- _submv usr/lib/syslog-ng/$soname
-}
-
-_submv() {
- local path; for path in "$@"; do
- mkdir -p "$subpkgdir/${path%/*}"
- mv "$pkgdir"/$path "$subpkgdir"/${path%/*}/
- done
+ amove usr/lib/syslog-ng/$soname
}
sha512sums="
-b74c10e708616f7f5f5d529de5c1a3ce8ac888c05aa4b0fcf390d70082e9bc3432f3752998a5a258663fd47b8e4d0c2735240a3e4eda28178579b18308ebb376 syslog-ng-3.36.1.tar.gz
-3fcdf42da3bd6ac4352925c686d07958b37780cd58de8c3c73835a442ffec51a0488390611bac011239b4e94f42c216ca178ba4b1b498bc0105c06cbaf8252f4 syslog-ng.conf
+7c4fbf1ac5377240afa7a1db8d72772399d2c62657fffc3c59e82b2dea6f12031f02320c4f567f981311bd1d8bbfd98962aeb59720ca857867a51b6bf83afb4b syslog-ng-4.6.0.tar.gz
+8faa3a07c1341c8c886703cd87a7a96dfb325687b8fb530a41f1cb5026f47ea4a55ca57d23487ab61b5a50bfc414ac2a55ef1a696332aa2f14c07f1ea7b4c10c pyversion.patch
+06f79f7350d08c968a2b2b8e0511857a35b784bf6e8e4ba047d0ff24ad0e05f0f0915af049b10deb4ae8c9be788f3824f3818e350e07796ceed93e144838c6a5 syslog-ng.conf
6b6c628f38bf82a47c38d4cdc1e04cf4cf604cca5b191bea6251a2977162a6da509e92690b7d6e7019d4dbb315fb30eb9531023caf7583d9e9abf24c28e1d06c syslog-ng.logrotate
873fef8815131f0acc618fa4911cd1eda59e260adc1eaae6eb91034900ce789f05ee48fa8afa4a87763026c18c87aef351e7ea76e0cbb46bcd5297f9ca14d527 syslog-ng.initd
"
diff --git a/main/syslog-ng/pyversion.patch b/main/syslog-ng/pyversion.patch
new file mode 100644
index 00000000000..920eb2b2859
--- /dev/null
+++ b/main/syslog-ng/pyversion.patch
@@ -0,0 +1,15 @@
+lie about the version to rename the folder to help apk upgrade a file to
+a directory
+diff --git a/modules/python-modules/setup.py b/modules/python-modules/setup.py
+index 1cf5706..4707ec7 100755
+--- a/modules/python-modules/setup.py
++++ b/modules/python-modules/setup.py
+@@ -24,7 +24,7 @@
+ from setuptools import setup
+
+ setup(name='syslogng',
+- version='1.0',
++ version='1.0.1',
+ description='syslog-ng Python Core & Modules',
+ author='Balazs Scheidler',
+ author_email='bazsi77@gmail.com',
diff --git a/main/syslog-ng/syslog-ng.conf b/main/syslog-ng/syslog-ng.conf
index 831bc6e3fb4..f4d391ce076 100644
--- a/main/syslog-ng/syslog-ng.conf
+++ b/main/syslog-ng/syslog-ng.conf
@@ -1,4 +1,4 @@
-@version:3.30
+@version: 4.3
@include "scl.conf"
# syslog-ng configuration file.
@@ -23,7 +23,7 @@ options {
# The default action of syslog-ng is to log a STATS line to the file every
# 10 minutes. That's pretty ugly after a while. Change it to every 12 hours
# so you get a nice daily update of how many messages syslog-ng missed (0).
- stats_freq(43200);
+ stats(freq(43200));
# Time to wait before a died connection is re-established (default is 60).
time_reopen(5);
diff --git a/main/talloc/APKBUILD b/main/talloc/APKBUILD
index 273edcbd0d6..8a9436964c3 100644
--- a/main/talloc/APKBUILD
+++ b/main/talloc/APKBUILD
@@ -1,8 +1,8 @@
# Contributor:
-# Maintainer:
+# Maintainer: Krassy Boykinov <kboykinov@teamcentrixx.com>
pkgname=talloc
-pkgver=2.3.4
-pkgrel=0
+pkgver=2.4.2
+pkgrel=1
pkgdesc="Memory pool management library"
url="https://talloc.samba.org"
arch="all"
@@ -46,12 +46,10 @@ package() {
_py3() {
pkgdesc="Python 3 binding for libtalloc"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libpytalloc-util.cpython* \
- "$pkgdir"/usr/lib/python3* "$subpkgdir"/usr/lib/
+ amove usr/lib/libpy* usr/lib/python3*
}
sha512sums="
-c46488deda99753fd79566d42cae88899b71196513a127813be2cb855e7f36b77132f0552297ee4153ba4d8f177cea3bb0dc93340caabf321c026657744684d9 talloc-2.3.4.tar.gz
+fb91665ffbe0cce96b1359940ff3ed21330c81c5331140788a26aa94f82b50492176e6000ff54b31d1a434bb1cb53a6a2c7894153545252a1fd91bda7c05a213 talloc-2.4.2.tar.gz
66d06f735fe591f3a888ced25c4c5a0068402001736ce52443d0670d42bf7144c7f69ff9c6299ecf4d9001f23c68403953c4bdc7325f4d094d304e4215ff90b1 always-libs.patch
"
diff --git a/main/tar/APKBUILD b/main/tar/APKBUILD
index 49784a234b0..5f703601116 100644
--- a/main/tar/APKBUILD
+++ b/main/tar/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=tar
-pkgver=1.34
-pkgrel=0
+pkgver=1.35
+pkgrel=2
pkgdesc="Utility used to store, backup, and transport files"
url="https://www.gnu.org/software/tar/"
arch="all"
@@ -9,17 +9,27 @@ license="GPL-3.0-or-later"
makedepends="acl-dev"
subpackages="$pkgname-doc"
source="https://ftp.gnu.org/gnu/tar/tar-$pkgver.tar.xz
- ignore-apk-tools-checksums.patch"
+ ignore-apk-tools-checksums.patch
+ "
# secfixes:
+# 1.34-r2:
+# - CVE-2022-48303
# 1.34-r0:
# - CVE-2021-20193
# 1.29-r1:
# - CVE-2016-6321
# 1.31-r0:
# - CVE-2018-20482
+# 0:
+# - CVE-2021-32803
+# - CVE-2021-32804
+# - CVE-2021-37701
build() {
+ if [ -z "$BOOTSTRAP" ]; then
+ export CFLAGS="$CFLAGS -flto=auto"
+ fi
gl_cv_func_gettimeofday_clobber=no \
gl_cv_func_tzset_clobber=no \
./configure \
@@ -33,19 +43,21 @@ build() {
}
check() {
- make check
+ make check || {
+ cat tests/testsuite.log
+ return 1
+ }
}
package() {
make DESTDIR="$pkgdir/" install
- rm -rf "$pkgdir"/usr/lib/charset.alias
- rmdir -p "$pkgdir"/usr/lib 2>/dev/null || true
-
mkdir "$pkgdir"/bin
mv "$pkgdir"/usr/bin/tar "$pkgdir"/bin/
ln -s /bin/tar "$pkgdir"/usr/bin/tar
}
-sha512sums="5e77c4a7b49983ad7d15238c2bce28be7a8aa437b4b1815fc00abd13096da308b6bba196cc6e3ed79d85e62823d520ae0d8fcda2d93873842cf84dc3369fc902 tar-1.34.tar.xz
-9cde0f1509328bc5fe2cb46642b53c7681c548cf28a2fb83eda7e9374c9c0ad27a0cd55b9c0cc93951def58dafa55ee71cace5493ddcb7966ee94dc5f1099739 ignore-apk-tools-checksums.patch"
+sha512sums="
+8b84ed661e6c878fa33eb5c1808d20351e6f40551ac63f96014fb0d0b9c72d5d94d8865d39e36bcb184fd250f84778a3b271bbd8bd2ceb69eece0c3568577510 tar-1.35.tar.xz
+e60c479c41e8f9bdfbc933857e26b3b7844fb04021a7d4a9cbd7fb44cc2acac98ea109a41dca38bff9b388eac8e17348310e42eb3c70fe5594d83ee0aca27102 ignore-apk-tools-checksums.patch
+"
diff --git a/main/tar/ignore-apk-tools-checksums.patch b/main/tar/ignore-apk-tools-checksums.patch
index c0a6ea35882..cd6a1e1cbc6 100644
--- a/main/tar/ignore-apk-tools-checksums.patch
+++ b/main/tar/ignore-apk-tools-checksums.patch
@@ -2,17 +2,16 @@ Make GNU tar ignore the apk-tools header fields
This should problably not be upstreamed
---- ./src/xheader.c.orig
-+++ ./src/xheader.c
-@@ -1779,7 +1779,10 @@
- /* We are storing all extended attributes using this rule even if some of them
- were stored by some previous rule (duplicates) -- we just have to make sure
+diff --git a/src/xheader.c b/src/xheader.c
+index 1347ce1..89b3a44 100644
+--- a/src/xheader.c
++++ b/src/xheader.c
+@@ -1777,5 +1777,8 @@ struct xhdr_tab const xhdr_tab[] = {
they are restored *only once* during extraction later on. */
-- { "SCHILY.xattr", xattr_coder, xattr_decoder, 0, true },
-+ { "SCHILY.xattr", xattr_coder, xattr_decoder, 0, true },
-+
-+ /* Ignore apk-tools headers */
-+ { "APK-TOOLS.", dummy_coder, dummy_decoder, 0, true },
+ { "SCHILY.xattr", xattr_coder, xattr_decoder, 0, true },
++ /* Ignore apk-tools headers */
++ { "APK-TOOLS", dummy_coder, dummy_decoder, 0, true },
++
{ NULL, NULL, NULL, 0, false }
};
diff --git a/main/tarsnap/APKBUILD b/main/tarsnap/APKBUILD
deleted file mode 100644
index 36c64dc5c95..00000000000
--- a/main/tarsnap/APKBUILD
+++ /dev/null
@@ -1,38 +0,0 @@
-# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Contributor: Eivind Uggedal <eu@eju.no>
-# Maintainer:
-pkgname=tarsnap
-pkgver=1.0.40
-pkgrel=0
-pkgdesc="Online backups for the truly paranoid"
-url="https://www.tarsnap.com/"
-arch="x86_64 x86 ppc64le aarch64"
-license="custom"
-makedepends="e2fsprogs-dev zlib-dev openssl1.1-compat-dev"
-subpackages="$pkgname-doc"
-source="https://www.tarsnap.com/download/tarsnap-autoconf-$pkgver.tgz"
-builddir="$srcdir"/$pkgname-autoconf-$pkgver
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc/$pkgname \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
-}
-
-check() {
- make check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- install -Dm644 COPYING "$pkgdir/usr/share/licenses/$pkgname/COPYING"
-}
-
-sha512sums="
-a4910c5cbea4a71218638703ba3140e5536a2c9bb7f35007115a7ae4a87fcd07b1be91d88e49240ee8db39be326bac049c0893c1406f215123d55a13b7b57941 tarsnap-autoconf-1.0.40.tgz
-"
diff --git a/main/tcl-tls/APKBUILD b/main/tcl-tls/APKBUILD
index 782fec55f40..79067daa3df 100644
--- a/main/tcl-tls/APKBUILD
+++ b/main/tcl-tls/APKBUILD
@@ -2,15 +2,16 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=tcl-tls
pkgver=1.7.22
-pkgrel=2
+pkgrel=4
pkgdesc="OpenSSL extension to Tcl"
url="https://core.tcl.tk/tcltls/"
arch="all"
license="TCL"
-makedepends="tcl-dev openssl1.1-compat-dev"
+makedepends="tcl-dev openssl-dev>3"
source="https://core.tcl.tk/tcltls/uv/tcltls-$pkgver.tar.gz"
builddir="$srcdir/tcltls-$pkgver"
+options="!check"
prepare() {
default_prepare
diff --git a/main/tcl/APKBUILD b/main/tcl/APKBUILD
index d83ade7664b..4603def9078 100644
--- a/main/tcl/APKBUILD
+++ b/main/tcl/APKBUILD
@@ -1,13 +1,14 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=tcl
-pkgver=8.6.12
+pkgver=8.6.14
_major=${pkgver%.*}
pkgrel=0
pkgdesc="The Tcl scripting language"
-url="http://tcl.sourceforge.net/"
+url="https://www.tcl-lang.org/"
arch="all"
license="TCL"
+depends="tzdata"
depends_dev="tcl"
makedepends="zlib-dev sqlite-dev"
subpackages="$pkgname-doc $pkgname-dev"
@@ -71,6 +72,6 @@ dev() {
}
sha512sums="
-15def824484309fff6831b436e33d91ab1c6b095178f427d1f58b9a04e5e676b18dfdf1d225c6ab9ec15dc233358c40789edc7daf91c5908a1837e9f337feb60 tcl8.6.12-src.tar.gz
+706603faa94153fcea2e2b2c594fb9d9862ce1aa3a65b864f14ce0757ea97c4106f065d1696e35f8cacc577db3d82ef1e93385c71a2399416816c4e1582237b0 tcl8.6.14-src.tar.gz
cd52cbe80fd2be227c9018dbe38fa0888302293402e7a57f2e231c195b7c1902f1b58bc87d19c9d123915ca757e871abf084c0ef23b1a7f187bc03ba93904cc2 tcl-stat64.patch
"
diff --git a/main/tcpdump/APKBUILD b/main/tcpdump/APKBUILD
index 2827e2c07a3..aef73df7c85 100644
--- a/main/tcpdump/APKBUILD
+++ b/main/tcpdump/APKBUILD
@@ -1,12 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=tcpdump
-pkgver=4.99.1
-pkgrel=3
+pkgver=4.99.4
+pkgrel=1
pkgdesc="A tool for network monitoring and data acquisition"
url="https://www.tcpdump.org/"
arch="all"
license="BSD-3-Clause"
-makedepends="libpcap-dev openssl1.1-compat-dev perl"
+makedepends="cmake samurai libpcap-dev openssl-dev>3"
+checkdepends="perl"
subpackages="$pkgname-doc"
source="https://www.tcpdump.org/release/tcpdump-$pkgver.tar.gz
"
@@ -87,28 +88,22 @@ source="https://www.tcpdump.org/release/tcpdump-$pkgver.tar.gz
# 4.9.1-r0:
# - CVE-2017-11108
-
-
build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --localstatedir=/var
- make
+ CFLAGS="$CFLAGS -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ cmake --build build
}
check() {
- make check
+ cmake --build build --target check
}
package() {
- make DESTDIR="$pkgdir" install
- rm -f "$pkgdir"/usr/bin/tcpdump.4*
+ DESTDIR="$pkgdir" cmake --install build
}
sha512sums="
-53d31355e1a6ef5a65bb3bf72454169fc80adf973a327a5768840e6ccf0550fbeb3c8a41f959635076d871df0619680321910a3a97879607f481cdaa8b7ceda7 tcpdump-4.99.1.tar.gz
+cb51e19574707d07c0de90dd4c301955897f2c9f2a69beb7162c08f59189f55625346d1602c8d66ab2b4c626ea4b0df1f08ed8734d2d7f536d0a7840c2d6d8df tcpdump-4.99.4.tar.gz
"
diff --git a/main/tcpflow/APKBUILD b/main/tcpflow/APKBUILD
index ef6bbef3f0a..99e76129c55 100644
--- a/main/tcpflow/APKBUILD
+++ b/main/tcpflow/APKBUILD
@@ -2,14 +2,16 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=tcpflow
pkgver=1.6.1
-pkgrel=6
+pkgrel=14
pkgdesc="A Tool for monitoring, capturing and storing TCP connections flows"
url="https://github.com/simsong/tcpflow"
arch="all"
license="GPL-3.0-only"
-makedepends="libpcap-dev zlib-dev boost-dev openssl1.1-compat-dev autoconf automake"
+makedepends="libpcap-dev zlib-dev boost-dev openssl-dev>3 autoconf automake"
subpackages="$pkgname-doc"
source="https://fossies.org/linux/misc/tcpflow-$pkgver.tar.gz
+ format-security.patch
+ fix-type.patch
"
# secfixes:
@@ -42,4 +44,8 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="8a54554f2e47f6b136396b245eaeeafbfe3833e250a1eaf1905fadc14ccf821ca0f7ed18bf976fefa1de3efeae4895413af2c675bb6690d87b1368639cb15148 tcpflow-1.6.1.tar.gz"
+sha512sums="
+8a54554f2e47f6b136396b245eaeeafbfe3833e250a1eaf1905fadc14ccf821ca0f7ed18bf976fefa1de3efeae4895413af2c675bb6690d87b1368639cb15148 tcpflow-1.6.1.tar.gz
+af26701e5cd89e13d35c13ce2ecafd3f8f819dcd239b433c77637e82402c6107973f15860af0dbac1888ae9e8d186e50674899d5f5e2bcbd8ffc89873069a00c format-security.patch
+acd5a8df5cef383e881a6e0097a74ff77945bddb098a11c177bb5dd361a95c73ce666f5548667a2ff2fb3b926a9fdd93306d7a1f90406b8a221cd4ac13a47eeb fix-type.patch
+"
diff --git a/main/tcpflow/fix-type.patch b/main/tcpflow/fix-type.patch
new file mode 100644
index 00000000000..b54a5974d1e
--- /dev/null
+++ b/main/tcpflow/fix-type.patch
@@ -0,0 +1,10 @@
+--- a/src/wifipcap/TimeVal.h
++++ b/src/wifipcap/TimeVal.h
+@@ -39,6 +39,7 @@
+
+ #include <iostream>
+ #include <iomanip>
++#include <cstdint>
+
+ #ifndef _WIN32
+ #include <sys/time.h>
diff --git a/main/tcpflow/format-security.patch b/main/tcpflow/format-security.patch
new file mode 100644
index 00000000000..7a86a20e2a5
--- /dev/null
+++ b/main/tcpflow/format-security.patch
@@ -0,0 +1,13 @@
+diff --git a/src/datalink.cpp b/src/datalink.cpp
+index 3e98285..f8b1322 100644
+--- a/src/datalink.cpp
++++ b/src/datalink.cpp
+@@ -174,7 +174,7 @@ void dl_ethernet(u_char *user, const struct pcap_pkthdr *h, const u_char *p)
+ std::string s(std::string("warning: caught std::logic_error ")
+ + e.what()
+ + std::string(" in packet"));
+- DEBUG(6)(s.c_str());
++ DEBUG(6)("%s", s.c_str());
+ }
+ }
+
diff --git a/main/tdb/APKBUILD b/main/tdb/APKBUILD
index 6d1432ea0e5..28127ef32e2 100644
--- a/main/tdb/APKBUILD
+++ b/main/tdb/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=tdb
-pkgver=1.4.7
-pkgrel=0
+pkgver=1.4.9
+pkgrel=1
pkgdesc="The tdb library"
url="https://tdb.samba.org/"
arch="all"
@@ -48,5 +48,5 @@ libs() {
}
sha512sums="
-2b5b20c299b60545943f106d854b6e0d4a559e16f08a7ed62fe57ee962bebc888c2e663bd5fef907aace05b316826fe8fbbf3f323b6d3427531e59ffe47d48e4 tdb-1.4.7.tar.gz
+6b0109075826b8630f6b5a7e7ade2fcff95c5d05338340af78219422610947c520707b3e484ff13fbd40bbfffe13977976e8ddcb1be7b13e13ac78b4e3ec06c2 tdb-1.4.9.tar.gz
"
diff --git a/main/termrec/APKBUILD b/main/termrec/APKBUILD
index 0c220a967ca..ed59a4b1172 100644
--- a/main/termrec/APKBUILD
+++ b/main/termrec/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: ScrumpyJack <scrumpyjack@st.ilet.to>
pkgname=termrec
pkgver=0.19
-pkgrel=0
+pkgrel=3
pkgdesc="termrec is a program for recording videos of terminal output"
url="http://angband.pl/termrec.html"
arch="all"
diff --git a/main/testdisk/APKBUILD b/main/testdisk/APKBUILD
index 1fff0593f0d..318d584b170 100644
--- a/main/testdisk/APKBUILD
+++ b/main/testdisk/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=testdisk
-pkgver=7.1
-pkgrel=1
+pkgver=7.2
+pkgrel=0
pkgdesc="A data recovery suite"
url="https://www.cgsecurity.org/wiki/TestDisk"
arch="all"
@@ -11,7 +11,6 @@ subpackages="$pkgname-doc"
source="https://www.cgsecurity.org/testdisk-$pkgver.tar.bz2"
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -23,13 +22,13 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
-sha512sums="ad6531eec45c1ed8d4a0ce6132692bb609c4c269fbca57f788ce808214e0b00b5fb1187745a859c5da8a3cb8de18b29904792d3246b15cedfa24bf24cbfe3df5 testdisk-7.1.tar.bz2"
+sha512sums="
+f99dd1c8f547c3d06e5459ba072438192a49d76c569de7915994beb269645092522d8136a212999382f88ca1d29c50f6482306d47197dc0994d168bcd4141f26 testdisk-7.2.tar.bz2
+"
diff --git a/main/tevent/APKBUILD b/main/tevent/APKBUILD
index 8fb1fbf869d..8e131f182e3 100644
--- a/main/tevent/APKBUILD
+++ b/main/tevent/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=tevent
-pkgver=0.11.0
-pkgrel=1
+pkgver=0.16.1
+pkgrel=0
pkgdesc="The tevent library"
url="https://tevent.samba.org/"
arch="all"
@@ -10,11 +10,10 @@ makedepends="libtirpc-dev python3-dev talloc-dev cmocka-dev"
replaces="samba"
subpackages="$pkgname-dev py3-$pkgname:_py3"
source="https://samba.org/ftp/tevent/tevent-$pkgver.tar.gz
- fix-public-header.patch
- python-3.10.patch
"
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -40,12 +39,9 @@ package() {
_py3() {
pkgdesc="Python 3 binding for the tevent library"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/python3* "$subpkgdir"/usr/lib/
+ amove usr/lib/python3*
}
sha512sums="
-740346b19bf290ff31b0c1b36e232021b8ad107c3ce27e0e8b1ec1a77485214b07a9b7837ba57f3650a50e4c04f530674e486b5fa4d118a1778259be63b49790 tevent-0.11.0.tar.gz
-ee4cce8591dfe31288975596d8464b7cc160580715f88e4fd19b5ae7e1a831650b072954731f015f52d76600597faee894f0174b9e92d18dca9629f9d056230c fix-public-header.patch
-8014ee4a58c4fdb432c93d999c102b6197d429a80be8553383d74e36d6d291862a64afa081ec17d1f45ae84a61bc0580f0f6eb969462839043828207d2235196 python-3.10.patch
+cda001d91728b2f28dd081e9c5f6d8ede345dcd9ce1dca04394860cd83090c15aa8dfef1c53b73e120bd17f0d95551fa9301eb4927963314556d016fe5420a39 tevent-0.16.1.tar.gz
"
diff --git a/main/tevent/fix-public-header.patch b/main/tevent/fix-public-header.patch
deleted file mode 100644
index 2b60347aba8..00000000000
--- a/main/tevent/fix-public-header.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-tevent.h needs sys/types.h for pid_t
-
-diff -ru tevent-0.9.37.orig/tevent.h tevent-0.9.37/tevent.h
---- tevent-0.9.37.orig/tevent.h 2018-07-12 05:51:30.000000000 +0000
-+++ tevent-0.9.37/tevent.h 2018-07-19 10:13:15.360128807 +0000
-@@ -31,6 +31,7 @@
- #include <stdint.h>
- #include <talloc.h>
- #include <sys/time.h>
-+#include <sys/types.h>
- #include <stdbool.h>
-
- struct tevent_context;
diff --git a/main/tevent/python-3.10.patch b/main/tevent/python-3.10.patch
deleted file mode 100644
index 9bba772c7ec..00000000000
--- a/main/tevent/python-3.10.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 02b187303369d3ce0c19dfb72ffa78f86a3911f0 Mon Sep 17 00:00:00 2001
-From: Joseph Sutton <josephsutton@catalyst.net.nz>
-Date: Wed, 28 Apr 2021 16:48:55 +1200
-Subject: [PATCH] Fix Python docstrings
-
-Signed-off-by: Joseph Sutton <josephsutton@catalyst.net.nz>
-Reviewed-by: Andrew Bartlett <abartlet@samba.org>
-Reviewed-by: Jeremy Allison <jra@samba.org>
-
-Autobuild-User(master): Jeremy Allison <jra@samba.org>
-Autobuild-Date(master): Sat Sep 4 00:55:32 UTC 2021 on sn-devel-184
----
- lib/ldb/pyldb.c | 2 +-
- lib/tdb/pytdb.c | 2 +-
- lib/tevent/pytevent.c | 2 +-
- source4/librpc/ndr/py_security.c | 2 +-
- 4 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/lib/tevent/pytevent.c b/lib/tevent/pytevent.c
-index 93375f71868..62dfe2419ff 100644
---- a/pytevent.c
-+++ b/pytevent.c
-@@ -573,7 +573,7 @@ static PyMethodDef py_tevent_context_methods[] = {
- { "add_timer", (PyCFunction)py_tevent_context_add_timer,
- METH_VARARGS, "S.add_timer(next_event, handler) -> timer" },
- { "add_timer_offset", (PyCFunction)py_tevent_context_add_timer_offset,
-- METH_VARARGS, "S.add_timer(offset_seconds, handler) -> timer" },
-+ METH_VARARGS, "S.add_timer_offset(offset_seconds, handler) -> timer" },
- { "add_fd", (PyCFunction)py_tevent_context_add_fd,
- METH_VARARGS, "S.add_fd(fd, flags, handler) -> fd" },
- {0},
---
-GitLab
-
diff --git a/main/texinfo/APKBUILD b/main/texinfo/APKBUILD
index 26dac7a66b6..761e2f09a81 100644
--- a/main/texinfo/APKBUILD
+++ b/main/texinfo/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=texinfo
-pkgver=6.8
+pkgver=7.1
pkgrel=1
pkgdesc="Utilities to work with and produce manuals, ASCII text, and on-line documentation from a single source file"
url="https://www.gnu.org/software/texinfo/"
@@ -12,6 +12,8 @@ makedepends="ncurses-dev perl-dev"
subpackages="$pkgname-doc"
source="https://ftp.gnu.org/gnu/texinfo/texinfo-$pkgver.tar.xz
fix-build-without-NLS.patch"
+install="texinfo.pre-deinstall"
+triggers="texinfo.trigger=/usr/share/info"
build() {
./configure \
@@ -24,12 +26,9 @@ build() {
package() {
make DESTDIR="$pkgdir"/ install
-
- rm -f "$pkgdir"/usr/share/info/dir
- gzip "$pkgdir"/usr/share/info/*
}
sha512sums="
-0ff9290b14e4d83e32b889cfa24e6d065f98b2a764daf6b92c6c895fddbb35258398da6257c113220d5a4d886f7b54b09c4b117ca5eacfee6797f9bffde0f909 texinfo-6.8.tar.xz
+ceab03e8422d800b08c7b44e8263b0a1f35bb7758d83a81136df6f3304a14daecda98a12a282afb85406d2ca2f665b2295e10b6f4064156ea1285d80d5d355db texinfo-7.1.tar.xz
4e81263afa0d3c58316e8104f9c155f0c11946fae7a9fa98ff3d86637e56be377fe584ca82df0786f4c74a180813cbcf87f25e0ee7bbbea9073eac20660f08d9 fix-build-without-NLS.patch
"
diff --git a/main/texinfo/texinfo.pre-deinstall b/main/texinfo/texinfo.pre-deinstall
new file mode 100644
index 00000000000..766dc679b7d
--- /dev/null
+++ b/main/texinfo/texinfo.pre-deinstall
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+rm -f usr/share/info/dir
diff --git a/main/texinfo/texinfo.trigger b/main/texinfo/texinfo.trigger
new file mode 100755
index 00000000000..75b69c63b6f
--- /dev/null
+++ b/main/texinfo/texinfo.trigger
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+infodir='/usr/share/info'
+
+rm -f "$infodir"/dir
+find "$infodir" \( -name "*.info" -o -name "*.info.gz" \) \
+ -exec install-info {} "$infodir"/dir \;
diff --git a/main/tftp-hpa/APKBUILD b/main/tftp-hpa/APKBUILD
index 0f0c3ff355c..d02190710e5 100644
--- a/main/tftp-hpa/APKBUILD
+++ b/main/tftp-hpa/APKBUILD
@@ -1,17 +1,19 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=tftp-hpa
pkgver=5.2
-pkgrel=4
+pkgrel=7
pkgdesc="Official tftp server"
url="https://www.kernel.org/pub/software/network/tftp/"
arch="all"
-license="BSD"
-subpackages="$pkgname-doc"
-source="https://www.kernel.org/pub/software/network/tftp/tftp-hpa/$pkgname-$pkgver.tar.xz
+license="BSD-4-Clause"
+subpackages="$pkgname-openrc $pkgname-doc"
+source="https://www.kernel.org/pub/software/network/tftp/tftp-hpa/tftp-hpa-$pkgver.tar.xz
in.tftpd.initd
in.tftpd.confd
fix-common.patch
+ fix-prompt-flush.patch
"
+options="!check"
build() {
./configure \
@@ -29,7 +31,10 @@ package() {
install -Dm644 "$srcdir"/in.tftpd.confd "$pkgdir"/etc/conf.d/in.tftpd
}
-sha512sums="a5198e923a6e58281f749dc77b3f3ed8579e56b6f0fd6a17482cc88bdc8d34b6702c7c709717885b9b937ecae459d9a832328a49a2e3536dc7432cdb39d2a394 tftp-hpa-5.2.tar.xz
+sha512sums="
+a5198e923a6e58281f749dc77b3f3ed8579e56b6f0fd6a17482cc88bdc8d34b6702c7c709717885b9b937ecae459d9a832328a49a2e3536dc7432cdb39d2a394 tftp-hpa-5.2.tar.xz
a836823eda80e43b8914b7b045b91703faded83d2b1482a0d17f0fb903cbc0ce17dd9e0c06a2f6e35724099614ef5a74d9ba8be80237fbbb29c632cea983779a in.tftpd.initd
8a5de40dde8a5e569fce4309e01341a77a4e36cdcb5fe602948d5b34ee2646bd83840158d7d61a45c17e71cc893f3e9bd04a38ebcc7a6a8fff98f46a50d74e96 in.tftpd.confd
-40127e7ce276a2bc015255dbeef2665bfe8ff006b1e1d8fb79797e946d6030fd74606cffe0bea11eaad276a693f223faaaf1c1ccb5f276b40fdad40b366172b7 fix-common.patch"
+40127e7ce276a2bc015255dbeef2665bfe8ff006b1e1d8fb79797e946d6030fd74606cffe0bea11eaad276a693f223faaaf1c1ccb5f276b40fdad40b366172b7 fix-common.patch
+6661c356710cfa44cf5170238242087be7d766e9363c7fb6655df6fd457562757be6069c39013a5311e3fbfc7e228e0924f15de747db782fbe35e10be7976bc9 fix-prompt-flush.patch
+"
diff --git a/main/tftp-hpa/fix-prompt-flush.patch b/main/tftp-hpa/fix-prompt-flush.patch
new file mode 100644
index 00000000000..a64b4a5b8bd
--- /dev/null
+++ b/main/tftp-hpa/fix-prompt-flush.patch
@@ -0,0 +1,13 @@
+doesn't flush by default, so the prompt is never printed
+diff --git a/tftp/main.c b/tftp/main.c
+index 4b09840..80e222e 100644
+--- a/tftp/main.c
++++ b/tftp/main.c
+@@ -806,6 +806,7 @@ static void command(void)
+ exit(0); /* EOF */
+ #else
+ fputs(prompt, stdout);
++ fflush(stdout);
+ if (fgets(line, LBUFLEN, stdin) == 0) {
+ if (feof(stdin)) {
+ exit(0);
diff --git a/main/thin-provisioning-tools/APKBUILD b/main/thin-provisioning-tools/APKBUILD
deleted file mode 100644
index dbcd5015b65..00000000000
--- a/main/thin-provisioning-tools/APKBUILD
+++ /dev/null
@@ -1,47 +0,0 @@
-# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
-# Maintainer:
-pkgname=thin-provisioning-tools
-pkgver=0.9.0
-pkgrel=3
-pkgdesc="suite of tools for manipulating the metadata of the dm-thin device-mapper target"
-url="https://github.com/jthornber/thin-provisioning-tools"
-arch="all"
-license="GPL-3.0-or-later"
-makedepends="expat-dev boost-dev libaio-dev linux-headers autoconf automake libtool gtest-dev"
-subpackages="$pkgname-doc"
-_realpkgver=${pkgver/_/-}
-source="thin-provisioning-tools-$_realpkgver.tar.gz::https://github.com/jthornber/thin-provisioning-tools/archive/v$_realpkgver.tar.gz
- paths.patch
-"
-options="!check" # various test failures
-
-prepare() {
- default_prepare
- autoreconf -fi
-}
-
-build() {
- ./configure \
- --prefix=/usr \
- --sysconfdir=/etc \
- --sbindir=/sbin \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --localstatedir=/var \
- --with-optimisation='' \
- --enable-testing
- make
-}
-
-check() {
- make unit-test
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="
-e1796fb3948847d72ca8247cae58017507c0a847a00201b93668eeb8fbfea4107c4c2affa5c211c149798a89b10474e83d2bd61a5545a668299be97aed591e0f thin-provisioning-tools-0.9.0.tar.gz
-ec7a752ab58bc4c30968ed4198bc6419120e3a811805647cc121a036b3ed084e7ce768c479ac5c5099ecf8c95835d40cfc24bff45834e72814f895517cb12c26 paths.patch
-"
diff --git a/main/thin-provisioning-tools/paths.patch b/main/thin-provisioning-tools/paths.patch
deleted file mode 100644
index 62ab93aa6e0..00000000000
--- a/main/thin-provisioning-tools/paths.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From ae702996a635214ac672ed91b2fbbe6052958d56 Mon Sep 17 00:00:00 2001
-From: "Alex Xu (Hello71)" <alex_y_xu@yahoo.ca>
-Date: Fri, 20 Aug 2021 09:59:06 -0400
-Subject: [PATCH] [build] use autoconf standard directories
-
----
- Makefile.in | 7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/Makefile.in b/Makefile.in
-index 32e1f30..1407d27 100644
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -204,10 +204,9 @@ LDFLAGS+=-static
- endif
-
- INSTALL:=@INSTALL@
--PREFIX:=@prefix@
--BINDIR:=$(DESTDIR)$(PREFIX)/sbin
--DATADIR:=$(DESTDIR)$(PREFIX)/share
--MANPATH:=$(DATADIR)/man
-+BINDIR:=$(DESTDIR)@sbindir@
-+DATADIR:=$(DESTDIR)@datarootdir@
-+MANPATH:=$(DESTDIR)@mandir@
-
- vpath %.cc $(TOP_DIR)
-
---
-2.33.0
-
diff --git a/main/tiff/APKBUILD b/main/tiff/APKBUILD
index 74571933752..8cb8a133bc7 100644
--- a/main/tiff/APKBUILD
+++ b/main/tiff/APKBUILD
@@ -2,20 +2,64 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Michael Mason <ms13sp@gmail.com>
pkgname=tiff
-pkgver=4.4.0
+pkgver=4.6.0t
pkgrel=0
pkgdesc="Provides support for the Tag Image File Format or TIFF"
url="https://gitlab.com/libtiff/libtiff"
arch="all"
license="libtiff"
-depends_dev="zlib-dev libjpeg-turbo-dev libwebp-dev xz-dev zstd-dev"
-makedepends="libtool autoconf automake $depends_dev"
+depends_dev="
+ zlib-dev
+ zstd-dev
+ "
+makedepends="
+ $depends_dev
+ cmake
+ libjpeg-turbo-dev
+ libwebp-dev
+ python3
+ samurai
+ "
checkdepends="diffutils"
-subpackages="$pkgname-doc $pkgname-dev $pkgname-tools libtiffxx:_libtiffxx"
-source="https://gitlab.com/libtiff/libtiff/-/archive/v$pkgver/libtiff-v$pkgver.tar.gz"
-builddir="$srcdir/libtiff-v$pkgver"
+subpackages="$pkgname-doc $pkgname-dev $pkgname-tools libtiffxx"
+source="http://www.libtiff.org/downloads/tiff-$pkgver.tar.gz"
# secfixes:
+# 4.5.0-r5:
+# - CVE-2023-0795
+# - CVE-2023-0796
+# - CVE-2023-0797
+# - CVE-2023-0798
+# - CVE-2023-0799
+# - CVE-2023-0800
+# - CVE-2023-0801
+# - CVE-2023-0802
+# - CVE-2023-0803
+# - CVE-2023-0804
+# 4.5.0-r3:
+# - CVE-2022-48281
+# 4.5.0-r0:
+# - CVE-2022-2953
+# - CVE-2022-3213
+# - CVE-2022-3570
+# - CVE-2022-3597
+# - CVE-2022-3598
+# - CVE-2022-3599
+# - CVE-2022-3626
+# - CVE-2022-3627
+# - CVE-2022-3970
+# 4.4.0-r1:
+# - CVE-2022-2056
+# - CVE-2022-2057
+# - CVE-2022-2058
+# - CVE-2022-2519
+# - CVE-2022-2520
+# - CVE-2022-2521
+# - CVE-2022-34526
+# 4.4.0-r0:
+# - CVE-2022-2867
+# - CVE-2022-2868
+# - CVE-2022-2869
# 4.3.0-r1:
# - CVE-2022-0561
# - CVE-2022-0562
@@ -26,6 +70,7 @@ builddir="$srcdir/libtiff-v$pkgver"
# - CVE-2022-0909
# - CVE-2022-0924
# - CVE-2022-22844
+# - CVE-2022-34266
# 4.2.0-r0:
# - CVE-2020-35521
# - CVE-2020-35522
@@ -76,32 +121,25 @@ builddir="$srcdir/libtiff-v$pkgver"
# 4.0.7-r1:
# - CVE-2017-5225
-prepare() {
- default_prepare
- autoreconf -fi
-}
-
build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --enable-cxx
- make
+ CFLAGS="$CFLAGS -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_BUILD_TYPE=MinSizeRel
+
+ cmake --build build
}
check() {
- make check
+ ctest --test-dir build --output-on-failure -j2
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
}
-_libtiffxx() {
+libtiffxx() {
pkgdesc="C++ binding to libtiff"
amove usr/lib/libtiffxx.so.*
@@ -114,5 +152,5 @@ tools() {
}
sha512sums="
-93955a2b802cf243e41d49048499da73862b5d3ffc005e3eddf0bf948a8bd1537f7c9e7f112e72d082549b4c49e256b9da9a3b6d8039ad8fc5c09a941b7e75d7 libtiff-v4.4.0.tar.gz
+bd877b4311d58692e46d77731bdc1cf701b7486b4dbc4d1e77c1e27fbe356bfaf2655cfc44020c92f6cfbc269ccd17722ee9f8785bf367624f227a85b6a298b0 tiff-4.6.0t.tar.gz
"
diff --git a/main/tig/APKBUILD b/main/tig/APKBUILD
index e6fa405cd1d..ce6b31f3ec8 100644
--- a/main/tig/APKBUILD
+++ b/main/tig/APKBUILD
@@ -1,19 +1,21 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
-# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
+# Maintainer: Celeste <cielesti@protonmail.com>
pkgname=tig
-pkgver=2.5.5
+pkgver=2.5.9
pkgrel=0
pkgdesc="Text-mode interface for the git revision control system"
url="https://jonas.github.io/tig/"
arch="all"
license="GPL-2.0-or-later"
-options="!check" # Tests are broken
depends="git"
-makedepends="ncurses-dev xmlto asciidoc"
+makedepends="ncurses-dev pcre2-dev"
+checkdepends="util-linux-misc"
subpackages="$pkgname-doc"
source="https://github.com/jonas/tig/releases/download/tig-$pkgver/tig-$pkgver.tar.gz"
build() {
+ CFLAGS="$CFLAGS -O2 -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -21,7 +23,11 @@ build() {
--sysconfdir=/etc \
--mandir=/usr/share/man \
--localstatedir=/var
- make all doc-man
+ make all
+}
+
+check() {
+ SHELL=/bin/sh script --return --quiet -c "make -j1 test" /dev/null
}
package() {
@@ -29,5 +35,5 @@ package() {
}
sha512sums="
-63f617dfcbd89de715573caa92ca83906cefa6a5229876f1d5390b4b58442b0bec958065b798d4e81729dc87bf6dcd2a392fbbab2cd66ca16df6e2e9d6362ca3 tig-2.5.5.tar.gz
+fbac05715812c49f1015f1da6999acaa5f994701025a64dc1283d3c8740d4887584d3fd274344c1f7f1638c8e63f938bb699d1d7cc8599d37ad43dcc53da789b tig-2.5.9.tar.gz
"
diff --git a/main/tinc/APKBUILD b/main/tinc/APKBUILD
index 61033ae7fee..ef0b4996aaa 100644
--- a/main/tinc/APKBUILD
+++ b/main/tinc/APKBUILD
@@ -2,13 +2,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=tinc
pkgver=1.0.36
-pkgrel=3
+pkgrel=6
pkgdesc="Virtual Private Network (VPN) daemon"
url="https://www.tinc-vpn.org"
arch="all"
license="GPL-2.0-or-later WITH OpenSSL-Exception"
-makedepends="zlib-dev lzo-dev openssl1.1-compat-dev linux-headers"
-subpackages="$pkgname-doc"
+makedepends="zlib-dev lzo-dev openssl-dev>3 linux-headers"
+subpackages="$pkgname-doc $pkgname-openrc"
source="https://www.tinc-vpn.org/packages/tinc-$pkgver.tar.gz
tincd.initd
tincd.lo.initd
@@ -24,6 +24,11 @@ check() {
make check
}
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
./configure \
--build=$CBUILD \
diff --git a/main/tiny-cloud/APKBUILD b/main/tiny-cloud/APKBUILD
index b42318cfebb..72f29419450 100644
--- a/main/tiny-cloud/APKBUILD
+++ b/main/tiny-cloud/APKBUILD
@@ -2,64 +2,103 @@
# Contributor: Jake Buchholz Göktürk <tomalok@gmail.com>
# Maintainer: Jake Buchholz Göktürk <tomalok@gmail.com>
pkgname=tiny-cloud
-pkgver=2.0.0
+pkgver=3.0.7
pkgrel=0
pkgdesc="Tiny Cloud instance bootstrapper"
url="https://gitlab.alpinelinux.org/alpine/cloud/tiny-cloud"
arch="noarch"
license="MIT"
-options="!check" # no tests provided
-depends="e2fsprogs-extra partx sfdisk"
-source="$url/-/archive/$pkgver/$pkgname-$pkgver.tar.gz"
+_alpine_deps="ifupdown-ng"
+_aws_deps="nvme-cli ifupdown-ng iproute2-minimal"
+makedepends="$_alpine_deps $_aws_deps"
+checkdepends="kyua xz lz4 zstd"
+depends="e2fsprogs-extra partx sfdisk yx openssh-server"
+source="
+ $url/-/archive/$pkgver/tiny-cloud-$pkgver.tar.gz
+ tiny-cloud-alpine.post-install
+ tiny-cloud-aws.post-install
+ tiny-cloud-azure.post-install
+ tiny-cloud-gcp.post-install
+ tiny-cloud-nocloud.post-install
+ tiny-cloud-oci.post-install
+ tiny-cloud-openrc.pre-upgrade
+ tiny-cloud.pre-upgrade
+"
subpackages="
- $pkgname-network
$pkgname-openrc
+ $pkgname-alpine
$pkgname-aws
$pkgname-azure
$pkgname-gcp
$pkgname-oci
+ $pkgname-nocloud
"
+check() {
+ make check
+}
+
package() {
make PREFIX="$pkgdir" core openrc
+ install="$pkgname.pre-upgrade"
+}
+
+openrc() {
+ install="$pkgname-openrc.pre-upgrade"
+ default_openrc
}
-network() {
- pkgdesc="Tiny Cloud - networking module"
- depends="ifupdown-ng iproute2-minimal $pkgname=$pkgver-r$pkgrel"
- cd "$builddir"
- make PREFIX="$subpkgdir" network
+alpine() {
+ pkgdesc="Tiny Cloud - Alpine installer module"
+ depends="$_alpine_deps $pkgname-nocloud=$pkgver-r$pkgrel"
+ install="$pkgname-alpine.post-install"
+ make -C "$builddir" PREFIX="$subpkgdir" alpine
}
aws() {
pkgdesc="Tiny Cloud - Amazon Web Services module"
- depends="nvme-cli $pkgname-network=$pkgver-r$pkgrel"
+ depends="$_aws_deps $pkgname=$pkgver-r$pkgrel"
provides="tiny-ec2-bootstrap"
- cd "$builddir"
- make PREFIX="$subpkgdir" aws
+ install="$pkgname-aws.post-install"
+ make -C "$builddir" PREFIX="$subpkgdir" aws
}
azure() {
pkgdesc="Tiny Cloud - Azure module"
depends="$pkgname=$pkgver-r$pkgrel"
- cd "$builddir"
- make PREFIX="$subpkgdir" azure
+ install="$pkgname-azure.post-install"
+ make -C "$builddir" PREFIX="$subpkgdir" azure
}
gcp() {
pkgdesc="Tiny Cloud - Google Cloud Platform module"
depends="$pkgname=$pkgver-r$pkgrel"
- cd "$builddir"
- make PREFIX="$subpkgdir" gcp
+ install="$pkgname-gcp.post-install"
+ make -C "$builddir" PREFIX="$subpkgdir" gcp
}
oci() {
pkgdesc="Tiny Cloud - Oracle Cloud Infrastructure module"
depends="$pkgname=$pkgver-r$pkgrel"
- cd "$builddir"
- make PREFIX="$subpkgdir" oci
+ install="$pkgname-oci.post-install"
+ make -C "$builddir" PREFIX="$subpkgdir" oci
+}
+
+nocloud() {
+ pkgdesc="Tiny Cloud - NoCloud module"
+ depends="$pkgname=$pkgver-r$pkgrel"
+ install="$pkgname-nocloud.post-install"
+ make -C "$builddir" PREFIX="$subpkgdir" nocloud
}
sha512sums="
-d3c1eb1daf1d298f34459ab2b54c1077b3bc037bbe0df3591cade85ba9d351a47f9ce42fabe5480505236731795679a32f0144998de689f35139aa28ac490d48 tiny-cloud-2.0.0.tar.gz
+4fa37d2bfaa01e234e5a90e6cb173cb79d96497d33ac98e16f67624c533fedbf47e9013901a5b7954c297c876ba1f59fb49b4ed1cb090f0225ed582db676e32b tiny-cloud-3.0.7.tar.gz
+9d41eae6f1eb7addec7aa8dfd8ebe8a2522772ae438e46b773121e9c7d3b9806b5abbe2e249361160727b4b0ed63df21e7cbc50e21aaecd6544310836ee7757e tiny-cloud-alpine.post-install
+0165ac30c5e78448373f44d596930e68bdb8e4c9a10441f13b3ec44a879482eca2904b6a2a2702f2d66510a3cc58935ce373ce1fb5ae2fa786372883253f3245 tiny-cloud-aws.post-install
+04752ec96f25dd5ceb7d8b7c63ac0e9f8f92fea675d115c24f0bebaa4cb16af147550f9d4c148e800273389da2c64e6304dc45333e25ae08d9aa4e33aff431c9 tiny-cloud-azure.post-install
+05b7ccbb441f7635b13b1c81e8341e74cbf6cd158b257c9286d31ca736c45ef64ef2778990f57b3f880372b442e0a677e95a0fbe2ec357e89627363707089a7c tiny-cloud-gcp.post-install
+df4f37aa7c27d7f011ef2aa6e3c1d88d25c9e117df947bd238c1fc3aa9aef9e9d66af679bb9e2c58564cbc8fb5a1ec51827063a91c0a8cb4efc1a7563cc5a172 tiny-cloud-nocloud.post-install
+e23482f9b6678a34c1ea98a55c76852e571f0c86717b26e449687e1691d4f00608a16e3f2a6119ee7d793c6853a3c4d4eac2e82a075ab0456d9f94f2e1110030 tiny-cloud-oci.post-install
+a2f795c1d9cce1a796cc92711b18459706b6573417d2ef43504c50a65f4808eaf8f8d48a20a4f198ade25c285188659a95d51e5cb34e4c64cf6384459397b850 tiny-cloud-openrc.pre-upgrade
+83217a30e495bcc18ad1a5d744806d499b5bdf929df3f18597216a25f465e5d4764ca66499d221bf5738b83639f1ec80de2a14e4b64aac80d51b285c01f0fc74 tiny-cloud.pre-upgrade
"
diff --git a/main/tiny-cloud/tiny-cloud-alpine.post-install b/main/tiny-cloud/tiny-cloud-alpine.post-install
new file mode 100644
index 00000000000..9ba96683426
--- /dev/null
+++ b/main/tiny-cloud/tiny-cloud-alpine.post-install
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+sed -Ee 's/^#?CLOUD=.*/CLOUD=alpine/' \
+ -Ee 's/^HOTPLUG_MODULES=.*/#HOTPLUG_MODULES=/' \
+ /lib/tiny-cloud/tiny-cloud.conf > /etc/tiny-cloud.conf
diff --git a/main/tiny-cloud/tiny-cloud-aws.post-install b/main/tiny-cloud/tiny-cloud-aws.post-install
new file mode 100644
index 00000000000..f29d4a802cb
--- /dev/null
+++ b/main/tiny-cloud/tiny-cloud-aws.post-install
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+sed -Ee 's/^#?CLOUD=.*/CLOUD=aws/' \
+ -Ee 's/^HOTPLUG_MODULES=.*/#HOTPLUG_MODULES=/' \
+ /lib/tiny-cloud/tiny-cloud.conf > /etc/tiny-cloud.conf
diff --git a/main/tiny-cloud/tiny-cloud-azure.post-install b/main/tiny-cloud/tiny-cloud-azure.post-install
new file mode 100644
index 00000000000..69cf792f8ce
--- /dev/null
+++ b/main/tiny-cloud/tiny-cloud-azure.post-install
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+sed -Ee 's/^#?CLOUD=.*/CLOUD=azure/' \
+ -Ee 's/^HOTPLUG_MODULES=.*/#HOTPLUG_MODULES=/' \
+ /lib/tiny-cloud/tiny-cloud.conf > /etc/tiny-cloud.conf
diff --git a/main/tiny-cloud/tiny-cloud-gcp.post-install b/main/tiny-cloud/tiny-cloud-gcp.post-install
new file mode 100644
index 00000000000..b1eceae999b
--- /dev/null
+++ b/main/tiny-cloud/tiny-cloud-gcp.post-install
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+sed -Ee 's/^#?CLOUD=.*/CLOUD=gcp/' \
+ -Ee 's/^HOTPLUG_MODULES=.*/#HOTPLUG_MODULES=/' \
+ /lib/tiny-cloud/tiny-cloud.conf > /etc/tiny-cloud.conf
diff --git a/main/tiny-cloud/tiny-cloud-nocloud.post-install b/main/tiny-cloud/tiny-cloud-nocloud.post-install
new file mode 100644
index 00000000000..23c6b536ffa
--- /dev/null
+++ b/main/tiny-cloud/tiny-cloud-nocloud.post-install
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+sed -Ee 's/^#?CLOUD=.*/CLOUD=nocloud/' \
+ -Ee 's/^HOTPLUG_MODULES=.*/#HOTPLUG_MODULES=/' \
+ /lib/tiny-cloud/tiny-cloud.conf > /etc/tiny-cloud.conf
diff --git a/main/tiny-cloud/tiny-cloud-oci.post-install b/main/tiny-cloud/tiny-cloud-oci.post-install
new file mode 100644
index 00000000000..a7aca52cb3b
--- /dev/null
+++ b/main/tiny-cloud/tiny-cloud-oci.post-install
@@ -0,0 +1,5 @@
+#!/bin/sh
+
+sed -Ee 's/^#?CLOUD=.*/CLOUD=oci/' \
+ -Ee 's/^HOTPLUG_MODULES=.*/#HOTPLUG_MODULES=/' \
+ /lib/tiny-cloud/tiny-cloud.conf > /etc/tiny-cloud.conf
diff --git a/main/tiny-cloud/tiny-cloud-openrc.pre-upgrade b/main/tiny-cloud/tiny-cloud-openrc.pre-upgrade
new file mode 100644
index 00000000000..7b386228d1a
--- /dev/null
+++ b/main/tiny-cloud/tiny-cloud-openrc.pre-upgrade
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# tiny-cloud-early needs to be in default, not sysinit or boot
+if [ -L /etc/runlevels/sysinit/tiny-cloud-early ] || \
+ [ -L /etc/runlevels/boot/tiny-cloud-early ]; then
+ rm /etc/runlevels/sysinit/tiny-cloud-early \
+ /etc/runlevels/boot/tiny-cloud-early
+ ln -sf /etc/init.d/tiny-cloud-early /etc/runlevels/default
+fi
+
+# tiny-cloud-net only existed during 3.0.0-rc
+if [ -L /etc/runlevels/default/tiny-cloud-net ]; then
+ rm /etc/runlevels/default/tiny-cloud-net
+ ln -sf /etc/init.d/tiny-cloud-boot /etc/runlevels/boot
+fi
diff --git a/main/tiny-cloud/tiny-cloud.pre-upgrade b/main/tiny-cloud/tiny-cloud.pre-upgrade
new file mode 100644
index 00000000000..c10f042180b
--- /dev/null
+++ b/main/tiny-cloud/tiny-cloud.pre-upgrade
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+# move config file from the pre-3.0.0 location
+if [ -f /etc/conf.d/tiny-cloud ]; then
+ mv /etc/conf.d/tiny-cloud /etc/tiny-cloud.conf
+fi
diff --git a/main/tinyproxy/APKBUILD b/main/tinyproxy/APKBUILD
index c9fe9c6b7ee..2699a9d04dc 100644
--- a/main/tinyproxy/APKBUILD
+++ b/main/tinyproxy/APKBUILD
@@ -2,19 +2,29 @@
# Maintainer: Michael Mason <ms13sp@gmail.com>
pkgname=tinyproxy
pkgver=1.11.1
-pkgrel=0
+pkgrel=3
pkgdesc="Lightweight HTTP proxy"
-pkgusers="tinyproxy"
-pkggroups="tinyproxy"
url="https://tinyproxy.github.io/"
arch="all"
license="GPL-2.0-or-later"
install="tinyproxy.pre-install"
subpackages="$pkgname-doc $pkgname-openrc"
source="https://github.com/tinyproxy/tinyproxy/releases/download/$pkgver/tinyproxy-$pkgver.tar.gz
- tinyproxy.initd"
+ CVE-2022-40468.patch
+ tinyproxy.initd
+ "
pkgusers="tinyproxy"
pkggroups="tinyproxy"
+options="!check"
+
+# secfixes:
+# 1.11.1-r2:
+# - CVE-2022-40468
+
+prepare() {
+ default_prepare
+ update_config_sub
+}
build() {
./configure \
@@ -36,5 +46,6 @@ package() {
sha512sums="
6ac7b57c33dcc87d6945c2b14f262e98d8c349c2492b3dd71f8028c4937df2a8e6ed7c913e8f6598b3e8ae83d5b51b9d5144c77f14f229df4aac5e094bcae6a6 tinyproxy-1.11.1.tar.gz
-e1b12989d1ee5eb6abe4749a687db4c2d0ddea1a3ec24a919d597a5cd673f509cce647ae7923993994dfb92b9f55fbf0ee0192c5f4e177da57599e917a2f4949 tinyproxy.initd
+57728d1621f78d4eff07bc39757abca5034148cfaa9ee9110607afbe5f39910df3d10bcc797899883c9876ff8f218eca571223d2e5b0145e149ae9d8909c8f92 CVE-2022-40468.patch
+0b4cf9c0904c766d227fc50bcdba4a602f9352009ab9c5b4b73e260414e4963f8010d83016605bae5a681f5af4dec12a76a57b2a84ebbf9ffe3709e78a4e29e8 tinyproxy.initd
"
diff --git a/main/tinyproxy/CVE-2022-40468.patch b/main/tinyproxy/CVE-2022-40468.patch
new file mode 100644
index 00000000000..c674c9b7f5a
--- /dev/null
+++ b/main/tinyproxy/CVE-2022-40468.patch
@@ -0,0 +1,28 @@
+From 3764b8551463b900b5b4e3ec0cd9bb9182191cb7 Mon Sep 17 00:00:00 2001
+From: rofl0r <rofl0r@users.noreply.github.com>
+Date: Thu, 8 Sep 2022 15:18:04 +0000
+Subject: [PATCH] prevent junk from showing up in error page in invalid
+ requests
+
+fixes #457
+---
+ src/reqs.c | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/reqs.c b/src/reqs.c
+index bce69819..45db118d 100644
+--- a/src/reqs.c
++++ b/src/reqs.c
+@@ -343,8 +343,12 @@ static struct request_s *process_request (struct conn_s *connptr,
+ goto fail;
+ }
+
++ /* zero-terminate the strings so they don't contain junk in error page */
++ request->method[0] = url[0] = request->protocol[0] = 0;
++
+ ret = sscanf (connptr->request_line, "%[^ ] %[^ ] %[^ ]",
+ request->method, url, request->protocol);
++
+ if (ret == 2 && !strcasecmp (request->method, "GET")) {
+ request->protocol[0] = 0;
+
diff --git a/main/tinyproxy/tinyproxy.initd b/main/tinyproxy/tinyproxy.initd
index dc8d3cc5f32..817c98306fa 100644
--- a/main/tinyproxy/tinyproxy.initd
+++ b/main/tinyproxy/tinyproxy.initd
@@ -15,6 +15,8 @@ output_log=/var/log/tinyproxy/${SVCNAME}.log
depend() {
config "$CONFFILE"
use dns
+ need net
+ after firewall
}
extra_started_commands="reload"
diff --git a/main/tinyxml2/APKBUILD b/main/tinyxml2/APKBUILD
index 1b42ce5a255..4caeb0e00d3 100644
--- a/main/tinyxml2/APKBUILD
+++ b/main/tinyxml2/APKBUILD
@@ -1,10 +1,10 @@
# Contributor: André Klitzing <aklitzing@gmail.com>
# Maintainer: André Klitzing <aklitzing@gmail.com>
pkgname=tinyxml2
-pkgver=9.0.0
+pkgver=10.0.0
pkgrel=0
pkgdesc="Simple, small and efficient C++ XML parser"
-url="http://www.grinninglizard.com/tinyxml2"
+url="https://github.com/leethomason/tinyxml2"
arch="all"
license="Zlib"
makedepends="meson"
@@ -15,16 +15,17 @@ build() {
abuild-meson \
-Dtests=true \
. output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
check() {
- meson test --no-rebuild -v -C output
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
+
sha512sums="
-9c5ce8131984690df302ca3e32314573b137180ed522c92fd631692979c942372a28f697fdb3d5e56bcf2d3dc596262b724d088153f3e1d721c9536f2a883367 tinyxml2-9.0.0.tar.gz
+a359d33bc12fad455b53d81011dbe12727cae0aabfaa5704f1a25807ca216dd854a571291029886c0beedeca5c3b6393dd49c4718773e18a0e008abbdb3de36a tinyxml2-10.0.0.tar.gz
"
diff --git a/main/tipidee/APKBUILD b/main/tipidee/APKBUILD
new file mode 100644
index 00000000000..5a51cd57a7d
--- /dev/null
+++ b/main/tipidee/APKBUILD
@@ -0,0 +1,86 @@
+# Contributor: Laurent Bercot <ska-devel@skarnet.org>
+# Maintainer: Laurent Bercot <ska-devel@skarnet.org>
+pkgname=tipidee
+pkgver=0.0.4.0
+pkgrel=0
+pkgdesc="The skarnet.org web server"
+url=https://skarnet.org/software/tipidee/
+arch="all"
+options="!check" # No test suite.
+license="ISC"
+depends="execline s6 s6-networking"
+makedepends="skalibs-dev>=2.14"
+subpackages="$pkgname-static $pkgname-dev $pkgname-libs $pkgname-doc $pkgname-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 \
+ --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"
+ logdir="$pkgdir/var/log/$name"
+ mkdir -p "$fn/log" "$logdir"
+ chown tipideelog:tipidee "$logdir"
+ chmod 02755 "$logdir"
+ 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"
+}
+
+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 -D -m 0644 "$srcdir/tipidee.conf" "$pkgdir/etc/tipidee.conf"
+ install -D -m 0644 "$srcdir/tipidee.confd" "$pkgdir/etc/conf.d/tipidee"
+ install -D -m 0755 "$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="
+d177f4c00db9855792dbddc4c96d2c75bd302443f29376e1d35d511d56964e5de11dd2cf4af3190d7465404c429eedfc17264715e4850d6b830a9e492ff25741 tipidee-0.0.4.0.tar.gz
+0de0d6bd39adfd6e65694335e9cf06cec7625032e6af5cf5e54ced5c009707ca4e27b2dbdff8b7825575fbef7cd98ac0333e07b1924f24fda23019c92c08023f httpd.run
+65cdbfb5a6485aed0203ed910af124b202994d5253cb365ed25432f0c906471dd30f96eb862b6f25004c6ec8ec4cb38a5b49cde717e7a00d7c9d7fd07025f225 httpsd.run
+b5af306fe7040f966b13da84bfb0c4b528683c03205519d08fe429ee826ffad27c9ddb32be8c8bf8b42ce7964ef15572e3c66a96494aed833ee951c769f81bd2 logger.run
+bb2681a3000133724bb8fd4918bc3209ea676c2e4f96ad8b298d8e7302aeebd6876341ea205f2d808f34e4c9b5c138bba032694c6069c17026b0ddf23702f9ba tipidee.conf
+7a999200ad21b2b0737ce82136bc8e055d7ab4a865b7727e6dc8df0eaeea6ace11eb5756b64231ce7938d11b5ec218944173ea1df3db059d033bf3f848c9a608 tipidee.confd
+0c994d75d677edfaf307ca0926784bed85872aa87585637ee86fc547dd85712e6681bb2ddecd196c6c189c142b882153d5eafbd760523392d48f8a8f7d143373 tipidee.initd
+"
diff --git a/main/tipidee/httpd.run b/main/tipidee/httpd.run
new file mode 100644
index 00000000000..356ad995240
--- /dev/null
+++ b/main/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/main/tipidee/httpsd.run b/main/tipidee/httpsd.run
new file mode 100644
index 00000000000..9d710158a0e
--- /dev/null
+++ b/main/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/main/tipidee/logger.run b/main/tipidee/logger.run
new file mode 100644
index 00000000000..3f178570339
--- /dev/null
+++ b/main/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/main/tipidee/tipidee.conf b/main/tipidee/tipidee.conf
new file mode 100644
index 00000000000..40bba13f9f9
--- /dev/null
+++ b/main/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/main/tipidee/tipidee.confd b/main/tipidee/tipidee.confd
new file mode 100644
index 00000000000..d47fb589f00
--- /dev/null
+++ b/main/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/main/tipidee/tipidee.initd b/main/tipidee/tipidee.initd
new file mode 100644
index 00000000000..75a2a1bb273
--- /dev/null
+++ b/main/tipidee/tipidee.initd
@@ -0,0 +1,65 @@
+#!/sbin/openrc-run
+
+description="Start/stop the tipidee services"
+
+depend()
+{
+ need s6
+ 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/main/tipidee/tipidee.post-deinstall b/main/tipidee/tipidee.post-deinstall
new file mode 100644
index 00000000000..3302f14184d
--- /dev/null
+++ b/main/tipidee/tipidee.post-deinstall
@@ -0,0 +1,3 @@
+#!/bin/execlineb -P
+
+rm -f etc/tipidee.conf.cdb
diff --git a/main/tipidee/tipidee.post-install b/main/tipidee/tipidee.post-install
new file mode 100644
index 00000000000..425ab5aaac3
--- /dev/null
+++ b/main/tipidee/tipidee.post-install
@@ -0,0 +1,3 @@
+#!/bin/execlineb -P
+
+tipidee-config
diff --git a/main/tipidee/tipidee.pre-install b/main/tipidee/tipidee.pre-install
new file mode 100644
index 00000000000..0ef043441f8
--- /dev/null
+++ b/main/tipidee/tipidee.pre-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+addgroup -S tipidee 2>/dev/null
+adduser -S -D -h / -H -s /sbin/nologin -G tipidee -g tipideelog tipideelog 2>/dev/null
+adduser -S -D -h / -H -s /sbin/nologin -G tipidee -g tipideed tipideed 2>/dev/null
+
+exit 0
diff --git a/main/tk/APKBUILD b/main/tk/APKBUILD
index 763329e2ebe..23f7658c1cd 100644
--- a/main/tk/APKBUILD
+++ b/main/tk/APKBUILD
@@ -1,10 +1,10 @@
-# Maintainer:
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=tk
-pkgver=8.6.12
+pkgver=8.6.14
_major=${pkgver%.*}
pkgrel=0
pkgdesc="GUI toolkit for the Tcl scripting language"
-url="http://tcl.sourceforge.net/"
+url="https://tcl.sourceforge.net/"
arch="all"
options="!check" # Requires a running X11 server.
license="TCL"
@@ -61,5 +61,5 @@ dev() {
}
sha512sums="
-afe51eb3e2071640ebc57f9ee6979fe91ee7856df8d3c9d55ae70c470cdae2306d2feeb791f46258f529a5c4a07b53974a7574cf3594818cd4e99077b30c697b tk8.6.12-src.tar.gz
+756903dfa56cf77c7934bb3680c9bef6027f99196f4e6a2e823b85c342ca860cbb4b42154f576cc88f7f1265d28ce2d84ab5f52f848b16cca0cf9af4c770183f tk8.6.14-src.tar.gz
"
diff --git a/main/tmux/APKBUILD b/main/tmux/APKBUILD
index c1683143771..53b8c02c10d 100644
--- a/main/tmux/APKBUILD
+++ b/main/tmux/APKBUILD
@@ -1,14 +1,14 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=tmux
-pkgver=3.3a
-pkgrel=0
+pkgver=3.4
+pkgrel=1
pkgdesc="Tool to control multiple terminals from a single terminal"
url="https://tmux.github.io"
arch="all"
license="ISC"
depends="ncurses-terminfo-base"
-makedepends="autoconf automake libevent-dev ncurses-dev"
+makedepends="bison libevent-dev ncurses-dev"
subpackages="$pkgname-doc"
source="https://github.com/tmux/tmux/releases/download/$pkgver/tmux-$pkgver.tar.gz"
@@ -17,13 +17,15 @@ source="https://github.com/tmux/tmux/releases/download/$pkgver/tmux-$pkgver.tar.
# - CVE-2020-27347
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
- --localstatedir=/var
+ --localstatedir=/var \
+ --enable-sixel
make
}
@@ -42,5 +44,5 @@ package() {
}
sha512sums="
-29a846df7d93601c42a22f84f606931dc65da1f70b67d351d0425f77ea3affe3e8218b2940d42cd3dadf3cd1aa95032daad3ecb14fbff0f69939d1beae0498c7 tmux-3.3a.tar.gz
+bd3880211d99d8ee15947000abf8a1832fdfa48b29b2df81b66d5969cf3f4e64e746f984f6139bfc57e3ebee7fe8dc7cbb6bccb779307607de6c376969fecbff tmux-3.4.tar.gz
"
diff --git a/main/tolua++/APKBUILD b/main/tolua++/APKBUILD
index 4194662d692..94924cf585f 100644
--- a/main/tolua++/APKBUILD
+++ b/main/tolua++/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=tolua++
pkgver=1.0.93
-pkgrel=4
+pkgrel=5
pkgdesc="a tool to integrate C/C++ code with Lua"
url="https://github.com/LuaDist/toluapp"
arch="all"
diff --git a/main/tree/0001-remove-03-cflag.patch b/main/tree/0001-remove-03-cflag.patch
deleted file mode 100644
index 137a9768959..00000000000
--- a/main/tree/0001-remove-03-cflag.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 44babc000ff274ce7dddcb8daa2662349a1d7382 Mon Sep 17 00:00:00 2001
-From: Leonardo Arena <rnalrd@gmail.com>
-Date: Tue, 4 Jan 2022 11:46:58 +0000
-Subject: [PATCH] remove -03 cflag
-
----
- Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 3df26e5..733b250 100644
---- a/Makefile
-+++ b/Makefile
-@@ -32,7 +32,7 @@ OBJS=tree.o list.o hash.o color.o file.o filter.o info.o unix.o xml.o json.o htm
-
- # Linux defaults:
- #CFLAGS=-ggdb -pedantic -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
--CFLAGS=-O3 -pedantic -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-+CFLAGS=-pedantic -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
- LDFLAGS=-s
-
- # Uncomment for FreeBSD:
---
-2.34.1
-
diff --git a/main/tree/APKBUILD b/main/tree/APKBUILD
index d5dc39ab703..c5fae5860b4 100644
--- a/main/tree/APKBUILD
+++ b/main/tree/APKBUILD
@@ -1,20 +1,19 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=tree
-pkgver=2.0.2
+pkgver=2.1.1
pkgrel=0
-pkgdesc="A recursive directory indented listing of files"
-url="http://mama.indstate.edu/users/ice/tree/"
+pkgdesc="Recursive directory indented listing of files"
+url="https://oldmanprogrammer.net/source.php?dir=projects/tree"
arch="all"
license="GPL-2.0-or-later"
makedepends="$depends_dev"
-options="!check"
subpackages="$pkgname-doc"
-source="http://mama.indstate.edu/users/ice/tree/src/tree-$pkgver.tgz
- 0001-remove-03-cflag.patch
- "
+source="https://gitlab.com/OldManProgrammer/unix-tree/-/archive/$pkgver/unix-tree-$pkgver.tar.gz"
+builddir="$srcdir/unix-tree-$pkgver"
+options="!check" # no tests
build() {
- make
+ make LDFLAGS="$LDFLAGS" CFLAGS="$CFLAGS"
}
package() {
@@ -22,6 +21,5 @@ package() {
}
sha512sums="
-5b9612ada9e3b1414d06daf5d7589f18480f232ba6ea29a004ceb7ff5b46c57610766bdb2babe9c20047dfea39cb233a6d92a60fcf2c38beccbebc94fb1eb20f tree-2.0.2.tgz
-5a700128a83f5ff1f5f3223db589e103e4c3eea5ea5af1d9c6a44216b03f64e258160ef1d7b154ee79255565d7cf2c9a2009d2abb2fd1c85cf2ff67e415199ba 0001-remove-03-cflag.patch
+997d20c5508d3eba026e9d621a4da2b3b0bf111d272bb7d705a9a0819d430887061e234f0a00ac3102c43413ef716c1371ee0620b8460fbd523d4a3790940a29 unix-tree-2.1.1.tar.gz
"
diff --git a/main/ttf-freefont/APKBUILD b/main/ttf-freefont/APKBUILD
deleted file mode 100644
index 0b915db7851..00000000000
--- a/main/ttf-freefont/APKBUILD
+++ /dev/null
@@ -1,29 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=ttf-freefont
-pkgver=20120503
-pkgrel=2
-pkgdesc="A set of free high-quality TrueType fonts covering the UCS character set"
-url="https://nongnu.org/freefont/"
-arch="noarch"
-license="GPL-3.0-or-later with exception"
-options="!check" # No test suite.
-depends="fontconfig encodings mkfontdir mkfontscale"
-makedepends="font-util-dev"
-source="https://ftp.gnu.org/gnu/freefont/freefont-ttf-$pkgver.zip"
-builddir="$srcdir/freefont-$pkgver"
-
-build() {
- return 0
-}
-
-package() {
- cd "$builddir"
- install -d "$pkgdir/usr/share/fonts/TTF"
- install -m644 *.ttf "$pkgdir/usr/share/fonts/TTF/"
- # Licensing exception is discussed in README in pkgver==20120503
- install -Dm644 README "$pkgdir/usr/share/licenses/$pkgname/README"
-}
-
-sha512sums="
-dcd6f525e8f97631c6f84ab4cc2a31af4614dcdb9a4d434bd890baf18e0c2934032f2915384fc27fbecf60d259d792e48f52d357b07e3ed2616d3c8c3544268e freefont-ttf-20120503.zip
-"
diff --git a/main/ttf-tlwg/APKBUILD b/main/ttf-tlwg/APKBUILD
deleted file mode 100644
index 544117c9aec..00000000000
--- a/main/ttf-tlwg/APKBUILD
+++ /dev/null
@@ -1,19 +0,0 @@
-# Contributor: Rasmus Thomsen <oss@cogitri.dev>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
-pkgname=ttf-tlwg
-pkgver=0.7.2
-pkgrel=0
-pkgdesc="The Thai TrueType fonts included here are Norasi and Garuda from the National Font project"
-url="https://linux.thai.net/projects/fonts-tlwg"
-arch="noarch"
-license="LPPL-1.3c AND GPL-2.0-only WITH Font-exception-2.0"
-options="!check" # No tests, only font files
-source="https://linux.thai.net/pub/thailinux/software/fonts-tlwg/fonts/ttf-tlwg-$pkgver.tar.xz"
-
-package() {
- mkdir -p "$pkgdir"/usr/share/fonts/ "$pkgdir"/etc/fonts/conf.d
- cp -r *.ttf "$pkgdir"/usr/share/fonts/
- cp -r fontconfig/conf.avail/*.conf "$pkgdir"/etc/fonts/conf.d
-}
-
-sha512sums="dd5865da81bbb10665c561ae188197a3bb0831162bf69795298f80f8aff1a210fce8e3d961476a878851376d15d95dd7d36144d53e8123a309ea883ced1a7e58 ttf-tlwg-0.7.2.tar.xz"
diff --git a/main/tunnel/APKBUILD b/main/tunnel/APKBUILD
index 0dc2c31c6b2..9121a25bebe 100644
--- a/main/tunnel/APKBUILD
+++ b/main/tunnel/APKBUILD
@@ -1,13 +1,15 @@
# Contributor: Kaarle Ritvanen <kunkku@alpinelinux.org>
# Maintainer: Kaarle Ritvanen <kunkku@alpinelinux.org>
pkgname=tunnel
-pkgver=1.0
-pkgrel=1
+pkgver=1.1
+pkgrel=0
pkgdesc="Script for configuring tunnel interfaces"
url="https://git.alpinelinux.org/aports/tree/main/tunnel"
arch=noarch
+depends="/bin/sh"
license="GPL-2.0-only"
source="tunnel"
+options="!check"
package() {
install -D -m 755 "$srcdir/tunnel" "$pkgdir/etc/network/if-pre-up.d/tunnel"
diff --git a/main/tzdata/APKBUILD b/main/tzdata/APKBUILD
index 31a7747530c..1364c0600c8 100644
--- a/main/tzdata/APKBUILD
+++ b/main/tzdata/APKBUILD
@@ -3,21 +3,22 @@
# Contributor: Ariadne Conill <ariadne@dereferenced.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=tzdata
-pkgver=2022a
-_tzcodever=2022a
+pkgver=2024a
+_tzcodever=$pkgver
_ptzver=0.5
-pkgrel=2
+pkgrel=1
pkgdesc="Timezone data"
url="https://www.iana.org/time-zones"
arch="all"
license="Public-Domain"
-subpackages="$pkgname-doc $pkgname-utils"
+subpackages="$pkgname-right $pkgname-doc $pkgname-utils"
source="https://www.iana.org/time-zones/repository/releases/tzcode$_tzcodever.tar.gz
https://www.iana.org/time-zones/repository/releases/tzdata$pkgver.tar.gz
https://dev.alpinelinux.org/archive/posixtz/posixtz-$_ptzver.tar.xz
0001-posixtz-ensure-the-file-offset-we-pass-to-lseek-is-o.patch
- 0002-fix-implicit-declaration-warnings-by-including-strin.patch"
+ 0002-fix-implicit-declaration-warnings-by-including-strin.patch
+ "
builddir="$srcdir"
_timezones="africa antarctica asia australasia europe northamerica \
@@ -25,7 +26,7 @@ _timezones="africa antarctica asia australasia europe northamerica \
options="!check" # Testsuite require nsgmls (SP)
build() {
- make cc="${CC:-gcc}" CFLAGS="$CFLAGS -DHAVE_STDINT_H=1"
+ make cc="${CC:-gcc}" CFLAGS="$CFLAGS -DHAVE_STDINT_H=1" \
TZDIR="/usr/share/zoneinfo"
cd "$builddir"/posixtz-$_ptzver
@@ -45,22 +46,24 @@ package() {
./zic -b fat -y ./yearistype -d "$pkgdir"/usr/share/zoneinfo -p America/New_York
install -m444 -t "$pkgdir"/usr/share/zoneinfo iso3166.tab zone1970.tab zone.tab
- mkdir -p "$pkgdir"/usr/sbin
- install -m755 zic zdump "$pkgdir"/usr/sbin
+ install -Dm755 -t "$pkgdir"/usr/sbin zic zdump
- mkdir -p "$pkgdir"/usr/share/man/man8
- install -m644 zic.8 zdump.8 "$pkgdir"/usr/share/man/man8
+ install -Dm644 -t "$pkgdir"/usr/share/man/man8 zic.8 zdump.8
rm -f "$pkgdir"/usr/share/zoneinfo/localtime
- install -Dm755 "$srcdir"/posixtz-$_ptzver/posixtz \
- "$pkgdir"/usr/bin/posixtz
+ install -Dm755 -t "$pkgdir"/usr/bin "$srcdir"/posixtz-$_ptzver/posixtz
- install -Dm644 "$srcdir"/leap-seconds.list "$pkgdir"/usr/share/zoneinfo/
+ install -Dm644 -t "$pkgdir"/usr/share/zoneinfo "$srcdir"/leap-seconds.list
+}
+
+right() {
+ pkgdesc="Timezone data for TAI-10 system clock"
+ amove usr/share/zoneinfo/right
}
sha512sums="
-3f047a6f414ae3df4a3d6bb9b39a1790833d191ae48e6320ab9438cd326dc455475186a02c44e4cde96b48101ab000880919b1e0e8092aed7254443ed2c831ed tzcode2022a.tar.gz
-542e4559beac8fd8c4af7d08d816fd12cfe7ffcb6f20bba4ff1c20eba717749ef96e5cf599b2fe03b5b8469c0467f8cb1c893008160da281055a123dd9e810d9 tzdata2022a.tar.gz
+46da8bfa762c7d109db93e5c060789097fc0e1e38bdad5bb8fec886ef47f138bd03b913a743cd5f7e23dc359a72bfd63e7ffc0de199d2b51e6a174361dbdc43c tzcode2024a.tar.gz
+1f09f1b2327cc9e1afc7e9045e83ee3377918dafe1bee2f282b6991828d03b3c70a4d3a17f9207dfb1361bb25bc214a8922a756e84fa114e9ba476226db57236 tzdata2024a.tar.gz
68dbaab9f4aef166ac2f2d40b49366527b840bebe17a47599fe38345835e4adb8a767910745ece9c384b57af815a871243c3e261a29f41d71f8054df3061b3fd posixtz-0.5.tar.xz
0f2a10ee2bb4007f57b59123d1a0b8ef6accf99e568f21537f0bb19f290fff46e24050f55f12569d7787be600e1b62aa790ea85a333153f3ea081a812c81b1b5 0001-posixtz-ensure-the-file-offset-we-pass-to-lseek-is-o.patch
fb322ab7867517ba39265d56d3576cbcea107c205d524e87015c1819bbb7361f7322232ee3b86ea9b8df2886e7e06a6424e3ac83b2006be290a33856c7d40ac4 0002-fix-implicit-declaration-warnings-by-including-strin.patch
diff --git a/main/u-boot/APKBUILD b/main/u-boot/APKBUILD
index bad02964ae6..f49183a662c 100644
--- a/main/u-boot/APKBUILD
+++ b/main/u-boot/APKBUILD
@@ -2,15 +2,15 @@
# Contributor: Timo Teras <timo.teras@iki.fi>
# Maintainer: Milan P. Stanić <mps@arvanta.net>
pkgname=u-boot
-pkgver=2022.04
+pkgver=2024.04
pkgrel=1
pkgdesc="u-boot bootloader common files"
url="https://www.denx.de/wiki/U-Boot/"
arch="all !s390x !ppc64le"
-license="GPL-2.0-or-later OFL-1.1 BSD-2-Clause BSD-3-Clause eCos-2.0 IBM-pibs
+license="GPL-2.0-or-later OFL-1.1 BSD-2-Clause BSD-3-Clause WITH eCos-exception-2.0 IBM-pibs
ISC LGPL-2.0-only LGPL-2.1-only X11"
options="!check" # no tests
-makedepends="$depends_dev
+makedepends="
bc
bison
dtc
@@ -18,6 +18,7 @@ makedepends="$depends_dev
gnutls-dev
linux-headers
openssl-dev
+ py3-elftools
py3-setuptools
python3-dev
swig
@@ -29,9 +30,7 @@ fi
source="https://ftp.denx.de/pub/u-boot/u-boot-${pkgver//_/-}.tar.bz2
README.txt
update-u-boot
- hifive-unmatched-ramdisk.patch
fix-tools-build.patch
- fix-build-with-binutils-2.38.patch
"
builddir="$srcdir"/u-boot-${pkgver//_/-}
@@ -53,23 +52,26 @@ arm*) board_configs="
raspberrypi:rpi_0_w,rpi,rpi_2,rpi_3_32b
wandboard:wandboard
qemu:qemu_arm
- odroid:odroid-xu3
- sunxi:LicheePi_Zero,Bananapi,Lamobo_R1,Cubieboard,Cubieboard2
+ odroid:odroid,odroid-xu3
+ sunxi:LicheePi_Zero,Bananapi,Lamobo_R1,Cubieboard,Cubieboard2,orangepi_pc
";;
aarch64) board_configs="
thunderx:thunderx_88xx
- raspberrypi:rpi_3
+ raspberrypi:rpi_3,rpi_arm64
odroid:odroid-c2,odroid-n2
+ snapdragon:starqltechn
+ exynos:a3y17lte,a5y17lte,a7y17lte
libretech:libretech-cc
- rockchip:rockpro64-rk3399
+ rockchip:rockpro64-rk3399,roc-pc-rk3399,roc-cc-rk3328,pinebook-pro-rk3399
qemu:qemu_arm64
- sunxi:pine64-lts,pinebook,orangepi_3,teres_i,a64-olinuxino,a64-olinuxino-emmc,nanopi_neo2
+ sunxi:pine64-lts,pinebook,orangepi_3,teres_i,a64-olinuxino,a64-olinuxino-emmc,nanopi_neo2,pine64_plus
";;
riscv64) board_configs="
- qemu:qemu-riscv64
+ qemu:qemu-riscv64,qemu-riscv64_smode
unleashed:sifive_unleashed
unmatched:sifive_unmatched
-";;
+ starfive:starfive_visionfive2
+ ";;
esac
for board_config in $board_configs; do
@@ -82,7 +84,6 @@ case "$CARCH" in
esac
build() {
- cd "$builddir"
touch include/config.h
LC_ALL=C date +'#define U_BOOT_DATE "%b %d %C%y"' > include/timestamp_autogenerated.h
LC_ALL=C date +'#define U_BOOT_TIME "%T"' >> include/timestamp_autogenerated.h
@@ -94,10 +95,15 @@ build() {
msg "Building u-boot for $board"
case "$board" in
- "pine64-lts"|"pinebook"|"teres_i"|"a64-olinuxino"|"a64-olinuxino-emmc")
- export BL31="/usr/share/arm-trusted-firmware/sun50i_a64/bl31.bin";;
+ "pine64-lts"|"pinebook"|"teres_i"|"a64-olinuxino"|"a64-olinuxino-emmc"|"pine64_plus")
+ export BL31="/usr/share/arm-trusted-firmware/sun50i_a64/bl31.bin"
+ export SCP=/dev/null;;
"orangepi_3")
export BL31="/usr/share/arm-trusted-firmware/sun50i_h6/bl31.bin";;
+ "pinebook-pro-rk3399"|"rockpro64-rk3399"|"roc-pc-rk3399")
+ export BL31="/usr/share/arm-trusted-firmware/rk3399/bl31.elf";;
+ "roc-cc-rk3328")
+ export BL31="/usr/share/arm-trusted-firmware/rk3328/bl31.elf";;
esac
export BUILD_DIR="$builddir"/build/$board
@@ -128,11 +134,11 @@ tools() {
mkdir -p $pkgdir
mkdir $subpkgdir
cd "$builddir"
- for tool in bmp_logo dumpimage env/fw_printenv \
+ for tool in dumpimage env/fw_printenv \
fit_check_sign fit_info gdb/gdbcont gdb/gdbsend gen_eth_addr img2srec \
- mkenvimage mkimage ncb proftool ubsha1 xway-swap-bytes; do
+ mkenvimage mkimage ncb proftool; do
install -D tools/$tool \
- $subpkgdir/usr/bin/$(basename $tool)
+ $subpkgdir/usr/bin/"$(basename $tool)"
done
install -Dm644 tools/env/fw_env.config \
"$subpkgdir/usr/share/doc/$pkgname/examples/fw_env.config"
@@ -162,6 +168,8 @@ _split_boards() {
case "$board" in
"sifive_unleashed") board_images="u-boot.itb spl/u-boot-spl.bin --" ;;
"sifive_unmatched") board_images="u-boot.itb spl/u-boot-spl.bin --" ;;
+ "starfive_visionfive2") board_images="u-boot.itb spl/u-boot-spl.bin.normal.out --" ;;
+ "pinebook-pro-rk3399"|"rockpro64-rk3399"|"roc-pc-rk3399"|"roc-cc-rk3328") board_images="u-boot-rockchip.bin --" ;;
esac
local ok=no
@@ -175,7 +183,7 @@ _split_boards() {
ok=yes
fi
done
- [ "$ok" = yes ] || return
+ [ "$ok" = yes ] || return
done
}
@@ -186,10 +194,8 @@ for board_config in $board_configs; do
done
sha512sums="
-113056e542db049eea3b1d1ccbbe52c79539a2f9bb6129d284ec9200dcffec7bd5969821913a9899631575b80991c84ad01bc845b4bba614e42e54466d9f0d64 u-boot-2022.04.tar.bz2
+a71270302b38e9e68a83b3acdf8f7635f72d9fa75169e3c2241cdfa21eab834b8f25dfd35c281191bccb2fcec1e86d6b64afcf1d2ed5cd4fdc02258cd75fc236 u-boot-2024.04.tar.bz2
f8c9bb6e84d6f0620c976ac7ad5dd7ec7ff9dfdd4b1d03d2bf6653e7beccf80bdf2debfc92fb1f696dba92fb40287d3c45897e0078951451d0835cb61a5f16d1 README.txt
-b5b5960a70c0edab38c208e5a41f2130c673334e05ef77dd4c839d59365d4243590a79bf3865914397b600550f4d0f69f8145e51a7ef05aa0190420fcc7ff02d update-u-boot
-1e8c95a37e7efb74f6519f66da44a0050417066aa2bd6d38e8a7e7135f501a9578dcc3701f66a170bf4cbd5c17b87d69ff80760979b1aa31d26e75be7cf7b97f hifive-unmatched-ramdisk.patch
-3b900d833ee7d82ee3bca6e8f8cb8e297359bb65c3f095a0d22377779eb8a233c5e566e5db6ce79f3076fbe6413d002941eb9cc450e3462337f46c1805472ce0 fix-tools-build.patch
-aff151d67a8d6b280ae1db6ad00d920c98ae6a39088f9c0e369e23fffb877dc843c2d6664257845aa365fce8babd19bbafaf91690ee3204201a8aadf9c5c942e fix-build-with-binutils-2.38.patch
+6cf882785fa12abcfdfa82119f6a3446229bc75f4c19d5751676625dda81df5ca428c2b631187ecbc39261b081b1a8b53bceeac9f43a3229f7610abc4d9862a2 update-u-boot
+83fc42c698f8236ba1f7d71383863e0bda255ada85bb885856a24b2036944d230d918a9d965d5ff90720726c9ee85ffda5e88eefc27b94ef9e7b4f456dcfb195 fix-tools-build.patch
"
diff --git a/main/u-boot/fix-build-with-binutils-2.38.patch b/main/u-boot/fix-build-with-binutils-2.38.patch
deleted file mode 100644
index 08e389f54c4..00000000000
--- a/main/u-boot/fix-build-with-binutils-2.38.patch
+++ /dev/null
@@ -1,42 +0,0 @@
->From version 2.38, binutils default to ISA spec version 20191213. This
-means that the csr read/write (csrr*/csrw*) instructions and fence.i
-instruction has separated from the `I` extension, become two standalone
-extensions: Zicsr and Zifencei. As the kernel uses those instruction,
-this causes the following build failure:
-
-arch/riscv/cpu/mtrap.S: Assembler messages:
-arch/riscv/cpu/mtrap.S:65: Error: unrecognized opcode `csrr a0,scause'
-arch/riscv/cpu/mtrap.S:66: Error: unrecognized opcode `csrr a1,sepc'
-arch/riscv/cpu/mtrap.S:67: Error: unrecognized opcode `csrr a2,stval'
-arch/riscv/cpu/mtrap.S:70: Error: unrecognized opcode `csrw sepc,a0'
-
-Signed-off-by: Alexandre Ghiti <alexandre.ghiti at canonical.com>
----
- arch/riscv/Makefile | 11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/arch/riscv/Makefile b/arch/riscv/Makefile
-index 0b80eb8d86..53d1194ffb 100644
---- a/arch/riscv/Makefile
-+++ b/arch/riscv/Makefile
-@@ -24,7 +24,16 @@ ifeq ($(CONFIG_CMODEL_MEDANY),y)
- CMODEL = medany
- endif
-
--ARCH_FLAGS = -march=$(ARCH_BASE)$(ARCH_A)$(ARCH_C) -mabi=$(ABI) \
-+RISCV_MARCH = $(ARCH_BASE)$(ARCH_A)$(ARCH_C)
-+
-+# Newer binutils versions default to ISA spec version 20191213 which moves some
-+# instructions from the I extension to the Zicsr and Zifencei extensions.
-+toolchain-need-zicsr-zifencei := $(call cc-option-yn, -mabi=$(ABI) -march=$(RISCV_MARCH)_zicsr_zifencei)
-+ifeq ($(toolchain-need-zicsr-zifencei),y)
-+ RISCV_MARCH := $(RISCV_MARCH)_zicsr_zifencei
-+endif
-+
-+ARCH_FLAGS = -march=$(RISCV_MARCH) -mabi=$(ABI) \
- -mcmodel=$(CMODEL)
-
- PLATFORM_CPPFLAGS += $(ARCH_FLAGS)
---
-2.32.0
-
diff --git a/main/u-boot/fix-tools-build.patch b/main/u-boot/fix-tools-build.patch
index 6f11baf43c6..f2606d5a345 100644
--- a/main/u-boot/fix-tools-build.patch
+++ b/main/u-boot/fix-tools-build.patch
@@ -1,17 +1,17 @@
Author: Milan P. Stanić <mps@arvanta.net>
-Date: Thu Jan 143 21:33:42 2022 +0000
+Date: 2023-04-04 10:07:00.033003320 +0200
musl libc doesn't have c_ospeed and c_ispeed types so disable
build of kwboot with this patch
---- a/tools/Makefile 2022-01-10 18:46:34.000000000 +0000
-+++ b/tools/Makefile 2022-01-14 20:26:13.814939412 +0000
-@@ -217,8 +217,6 @@
+--- a/tools/Makefile 2023-04-04 10:07:00.033003320 +0200
++++ b/tools/Makefile 2023-04-04 10:07:26.345003333 +0200
+@@ -213,8 +213,6 @@
- HOSTCFLAGS_ubsha1.o := -pedantic
+ hostprogs-$(CONFIG_NETCONSOLE) += ncb
-hostprogs-$(CONFIG_ARCH_KIRKWOOD) += kwboot
-hostprogs-$(CONFIG_ARCH_MVEBU) += kwboot
+
hostprogs-y += proftool
- hostprogs-$(CONFIG_STATIC_RELA) += relocate-rela
- hostprogs-$(CONFIG_RISCV) += prelink-riscv
+ proftool-objs = proftool.o lib/abuf.o
diff --git a/main/u-boot/hifive-unmatched-ramdisk.patch b/main/u-boot/hifive-unmatched-ramdisk.patch
deleted file mode 100644
index a6a1c16846b..00000000000
--- a/main/u-boot/hifive-unmatched-ramdisk.patch
+++ /dev/null
@@ -1,19 +0,0 @@
-On the HiFive1 the ramdisk is occasionally loaded to the wrong address
-range, causing boot to hang during ramdisk loading. This patch fixes
-this occasionally occurring issue.
-
-See https://lists.denx.de/pipermail/u-boot/2021-October/463798.html for
-details. As per https://lists.denx.de/pipermail/u-boot/2021-October/463844.html
-this patch should no longer be needed as soon as v2022.01 is released.
-
-diff -upr u-boot-2021.10.orig/include/configs/sifive-unmatched.h u-boot-2021.10/include/configs/sifive-unmatched.h
---- u-boot-2021.10.orig/include/configs/sifive-unmatched.h 2021-10-15 19:07:43.123472870 +0200
-+++ u-boot-2021.10/include/configs/sifive-unmatched.h 2021-10-15 19:08:27.357420781 +0200
-@@ -25,6 +25,7 @@
-
- #endif
-
-+#define CONFIG_SYS_BOOTMAPSZ (256 << 20)
- #define CONFIG_SYS_SDRAM_BASE 0x80000000
- #define CONFIG_SYS_INIT_SP_ADDR (CONFIG_SYS_SDRAM_BASE + SZ_2M)
-
diff --git a/main/u-boot/update-u-boot b/main/u-boot/update-u-boot
index a1ad1c8846e..bfef80a2da9 100755
--- a/main/u-boot/update-u-boot
+++ b/main/u-boot/update-u-boot
@@ -10,13 +10,16 @@ get_defaults() {
if [ -z "$board" -a -e /sys/firmware/devicetree/base/compatible ]; then
case "$(cat /sys/firmware/devicetree/base/compatible 2>/dev/null)" in
wand,*) board=wand ;;
+ pine64,pine64-plus*) board=pine64_plus ;;
+ pine64,pinebook-pro*) board=pinebook-pro-rk3399 ;;
esac
fi
if [ -z "$device" ]; then
case "$board" in
wand|cubie|cubie2) device=/dev/mmcblk0p0 ;;
- mx6cuboxi) device=/dev/mmcblk0 ;;
+ pinebook-pro-rk3399) device=/dev/mmcblk2 ;;
+ mx6cuboxi|*rk33*|pine64_plus) device=/dev/mmcblk0 ;;
esac
fi
@@ -62,7 +65,7 @@ while [ $# -gt 0 ]; do
wand|wandboard) board="wand" ;;
cubie|cubieboard) board="cubie" ;;
cuboxi|mx6cuboxi) board="mx6cuboxi" ;;
- pine64-lts|pinebook|orangepi_3|teres_i|a64-olinuxino|a64-olinuxino-emmc|nanopi_neo2) board="$1" ;;
+ pine64-lts|pinebook|orangepi_3|teres_i|a64-olinuxino|a64-olinuxino-emmc|nanopi_neo2|*rk33*|pine64_plus) board="$1" ;;
*) usage; exit 1;;
esac
shift
@@ -116,10 +119,16 @@ mx6cuboxi)
$dryrun dd if=$imagedir/mx6cuboxi/SPL of=$device bs=1k seek=1 status=none
$dryrun dd if=$imagedir/mx6cuboxi/u-boot.img of=$device bs=1k seek=69 status=none
;;
-pine64-lts|pinebook|orangepi_3|teres_i|a64-olinuxino|a64-olinuxino-emmc|nanopi_neo2)
+pine64-lts|pinebook|orangepi_3|teres_i|a64-olinuxino|a64-olinuxino-emmc|nanopi_neo2|pine64_plus)
[ -e "$imagedir/$board" ] || die "sunxi images not installed, apk add u-boot-sunxi"
$dryrun dd if=$imagedir/$board/u-boot-sunxi-with-spl.bin of=$device bs=1k seek=8 status=none
;;
+*rk33*)
+ [ -e "$imagedir/$board" ] || die "$board images not installed, apk add u-boot-$board"
+
+ echo "Writing u-boot image"
+ $dryrun dd conv=notrunc if=$imagedir/$board/u-boot-rockchip.bin of=$device seek=64
+ ;;
esac
$dryrun sync
) || die "U-Boot installation in $device failed"
diff --git a/main/ucarp/APKBUILD b/main/ucarp/APKBUILD
index 64da55d4689..b74ccf64a41 100644
--- a/main/ucarp/APKBUILD
+++ b/main/ucarp/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=ucarp
pkgver=1.5.2
-pkgrel=9
+pkgrel=11
pkgdesc="Share common IP and do fail over"
url="https://download.pureftpd.org/ucarp/README"
arch="all"
@@ -15,6 +15,7 @@ source="https://download.pureftpd.org/pub/ucarp/ucarp-$pkgver.tar.gz
vip-up-default.sh
vip-down-default.sh
"
+options="!check"
prepare() {
default_prepare
diff --git a/main/udev-init-scripts/APKBUILD b/main/udev-init-scripts/APKBUILD
index fe45f52264d..5aa1cc1634b 100644
--- a/main/udev-init-scripts/APKBUILD
+++ b/main/udev-init-scripts/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=udev-init-scripts
pkgver=35
-pkgrel=0
+pkgrel=1
pkgdesc="udev startup scripts for openrc"
url="https://gitweb.gentoo.org/repo/gentoo.git/tree/sys-fs/udev-init-scripts"
arch="noarch"
@@ -10,7 +10,6 @@ options="!check" # They are only scripts
license="GPL-2.0-only"
replaces="udev"
subpackages="$pkgname-openrc"
-install="$pkgname.post-install $pkgname.post-upgrade"
source="https://gitweb.gentoo.org/proj/udev-gentoo-scripts.git/snapshot/udev-gentoo-scripts-$pkgver.tar.gz
modloop.patch
"
@@ -24,6 +23,12 @@ package() {
make DESTDIR="$pkgdir" install
}
+openrc() {
+ provides="dev-openrc"
+ provider_priority=10
+ default_openrc
+}
+
sha512sums="
da9d2093149967e2e1b9bc7190ddfd55a87c9ae2177e3216f7cb2694fc9b64037eb6f2599ad8a4b7594ef32ced88fbb319c92904bc72a81ea5404945f8a8378a udev-gentoo-scripts-35.tar.gz
d68def2429e68dadae1c8f2c4f76207a5b21ef98f755792f2033695af9d28ae555588d02033179340edd4ce0de0436dbaf30f0e7ccd59ea0444ddb7c2a5495d0 modloop.patch
diff --git a/main/udev-init-scripts/udev-init-scripts.post-install b/main/udev-init-scripts/udev-init-scripts.post-install
deleted file mode 100644
index 0cc44989f8e..00000000000
--- a/main/udev-init-scripts/udev-init-scripts.post-install
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-if ! [ -e /etc/runlevels/sysinit/udev ]; then
- exit 0
-fi
-
-if ! [ /etc/runlevels/sysinit/udev-trigger ]; then
- ln -s /etc/init.d/udev-trigger /etc/runlevels/sysinit/udev-trigger
-fi
-
diff --git a/main/udev-init-scripts/udev-init-scripts.post-upgrade b/main/udev-init-scripts/udev-init-scripts.post-upgrade
deleted file mode 120000
index 0b54cffe15f..00000000000
--- a/main/udev-init-scripts/udev-init-scripts.post-upgrade
+++ /dev/null
@@ -1 +0,0 @@
-udev-init-scripts.post-install \ No newline at end of file
diff --git a/main/udns/APKBUILD b/main/udns/APKBUILD
index 29d30b20dd7..38e83ba928f 100644
--- a/main/udns/APKBUILD
+++ b/main/udns/APKBUILD
@@ -1,14 +1,14 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=udns
-pkgver=0.4
-pkgrel=1
+pkgver=0.5
+pkgrel=0
pkgdesc="DNS Resolver Library"
options="!check" # No testsuite
url="http://www.corpit.ru/mjt/udns.html"
arch="all"
license="LGPL-2.1-or-later"
subpackages="$pkgname-dev $pkgname-doc"
-source="http://www.corpit.ru/mjt/$pkgname/$pkgname-$pkgver.tar.gz"
+source="https://www.corpit.ru/mjt/udns/udns-$pkgver.tar.gz"
build() {
./configure
@@ -17,17 +17,21 @@ build() {
}
package() {
- install -D -m0755 dnsget "${pkgdir}/usr/bin/dnsget"
- install -D -m0755 rblcheck "${pkgdir}/usr/bin/rblcheck"
- install -D -m0755 ex-rdns "${pkgdir}/usr/bin/ex-rdns"
+ install -Dm755 dnsget rblcheck ex-rdns \
+ -t "$pkgdir"/usr/bin
- install -D -m0644 udns.h "${pkgdir}/usr/include/udns.h"
- install -D -m0755 libudns.so.0 "${pkgdir}/usr/lib/libudns.so.0"
- ln -s libudns.so.0 "${pkgdir}/usr/lib/libudns.so"
+ install -Dm644 udns.h \
+ -t "$pkgdir"/usr/include
+ install -Dm755 libudns.so.0 \
+ -t "$pkgdir"/usr/lib
+ ln -s libudns.so.0 "$pkgdir"/usr/lib/libudns.so
- install -D -m0644 dnsget.1 "${pkgdir}/usr/share/man/man1/dnsget.1"
- install -D -m0644 rblcheck.1 "${pkgdir}/usr/share/man/man1/rblcheck.1"
- install -D -m0644 udns.3 "${pkgdir}/usr/share/man/man3/udns.3"
+ install -Dm644 dnsget.1 rblcheck.1 \
+ -t "$pkgdir"/usr/share/man/man1
+ install -Dm644 udns.3 \
+ -t "$pkgdir"/usr/share/man/man3
}
-sha512sums="2990d57b3b6bf176a12ee07fd4391921e13634fc8409e8ce4df8dbe7b3556a116ae59ab328a1b6a95ebc94298f6b56ec7197a06a649d8d642b371b8ecef3e40b udns-0.4.tar.gz"
+sha512sums="
+ee6607a01a9b88563c180d9b48ead9e1e9ca606d8fa01daca23ec0756d10e6f9798c27bec35d0f322603a768571f815fbad505483b4d392eba422529d16bcc7f udns-0.5.tar.gz
+"
diff --git a/main/ulogd/APKBUILD b/main/ulogd/APKBUILD
index b475434dca8..8b22191eb5e 100644
--- a/main/ulogd/APKBUILD
+++ b/main/ulogd/APKBUILD
@@ -2,35 +2,50 @@
# Contributor: Michał Polański <michal@polanski.me>
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=ulogd
-pkgver=2.0.7
-pkgrel=8
+pkgver=2.0.8
+pkgrel=3
pkgdesc="Userspace logging daemon for netfilter/iptables related logging"
url="https://netfilter.org/projects/ulogd/"
arch="all"
license="GPL-2.0-only"
-makedepends="libmnl-dev libpcap-dev libnetfilter_acct-dev bsd-compat-headers
- libnfnetlink-dev libnetfilter_conntrack-dev libnetfilter_log-dev
- pkgconfig mariadb-connector-c-dev openssl1.1-compat-dev libpq-dev zlib-dev linux-headers
- autoconf automake libtool jansson-dev sqlite-dev"
+makedepends="
+ bsd-compat-headers
+ jansson-dev
+ libmnl-dev
+ libnetfilter_acct-dev
+ libnetfilter_conntrack-dev
+ libnetfilter_log-dev
+ libnfnetlink-dev
+ libpcap-dev
+ libpq-dev
+ linux-headers
+ mariadb-connector-c-dev
+ openssl-dev>3
+ sqlite-dev
+ zlib-dev
+ "
subpackages="
$pkgname-doc
$pkgname-openrc
"
source="https://www.netfilter.org/projects/ulogd/files/ulogd-$pkgver.tar.bz2
- musl-fixes.patch
ulogd.initd
ulogd.confd
ulogd.logrotate
"
+options="!check"
_modules="mysql pgsql json xml sqlite3"
for _module in $_modules; do
subpackages="$subpackages $pkgname-$_module:_plugin"
done
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
- export CFLAGS="$CFLAGS -D_GNU_SOURCE"
- autoreconf -vif
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -53,8 +68,7 @@ package() {
install -Dm644 ulogd.conf "$pkgdir"/usr/share/doc/ulogd/ulogd.conf.sample
install -Dm644 doc/ulogd.sgml "$pkgdir"/usr/share/doc/ulogd/ulogd.sgml
install -dm0755 "$pkgdir"/usr/share/ulogd
- for file in $(ls doc/*.sql)
- do
+ for file in $(ls doc/*.sql); do
install -Dm644 $file "$pkgdir"/usr/share/ulogd/$file
done
}
@@ -76,8 +90,9 @@ _plugin() {
;;
esac
}
-sha512sums="1ad12bcf91bebe8bf8580de38693318cdabd17146f1f65acf714334885cf13adf5f783abdf2dd67474ef12f82d2cfb84dd4859439bc7af10a0df58e4c7e48b09 ulogd-2.0.7.tar.bz2
-f65e051520645c5e1618b1ef9d570ebac77ec8d05972c9b58ca93475a9612a725b26634a71e9fb8e117ae004a2dc13da2a1368b549d2808bd299e39b8f8d6bab musl-fixes.patch
-8bfe0c6058a8f78af4d98895e6c757a11818f06e56d801792999a3de57abfdd6f4a2ae4fd41c4013230e55d90df4a01b7855fd0bf42c815673987f8747310203 ulogd.initd
-927475edf73605117ffaa6ae26316151b4c2cef6f49d2f552d0d57f2e294fc3799169c40db95b10d59a34d2176c1e0c263a7786aa4651d34a337fa906294950c ulogd.confd
-76d426411786010b73900b41cf2537c704cf48abbe464d10760d44420fd46fea72ae84f6b52c7c338f39630666ebe06ef05287d18e7dd7c5662bb72af0491b0e ulogd.logrotate"
+sha512sums="
+9f99f6f35bad5da4559d788dc3ba3dae17d4ae972737cae3313ecf68f08eaf5f55514fce6f30503437e4158fd30a06438b9249d5d20f6343964cbf690f87309d ulogd-2.0.8.tar.bz2
+1aef18f3c2f67231e9fd4ac3c8121ed337905e810714f817bc605b08f230396159d98072011d2aae4556dd241997d6abdba9fb804c3ae1b681a489c429662227 ulogd.initd
+0908e82de8b1a7be9281c4749d9cf396b6ef70b3eee868d83e390ffcea3bb2c4854351e0fde4be831282ec54da694bc4e4b144c2b2e13b314c625a8c10084e6d ulogd.confd
+82768ec7ffc53f82f4914d80c38da0a269fcc4e68b7955746c1d6c1e4f3fce48a927b4f29b5929d7fc2a01701160c41e05960bbeb1fd682705d589912789e69e ulogd.logrotate
+"
diff --git a/main/ulogd/musl-fixes.patch b/main/ulogd/musl-fixes.patch
deleted file mode 100644
index f50c65cce43..00000000000
--- a/main/ulogd/musl-fixes.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- a/src/ulogd.c
-+++ b/src/ulogd.c
-@@ -65,6 +65,7 @@
- #include <sys/time.h>
- #include <sys/stat.h>
- #include <sched.h>
-+#include <linux/limits.h>
- #include <ulogd/conffile.h>
- #include <ulogd/ulogd.h>
- #ifdef DEBUG
diff --git a/main/ulogd/ulogd.confd b/main/ulogd/ulogd.confd
index 6c4122ef427..9cf8d2747e6 100644
--- a/main/ulogd/ulogd.confd
+++ b/main/ulogd/ulogd.confd
@@ -1,4 +1,8 @@
# Configuration for /etc/init.d/ulogd
-# See ulogd(8) for available options
-#ulogd_opts=""
+# See ulogd(8) for available options.
+#command_args=""
+
+# Run with process supervisor. If you want to run the daemon with
+# start-stop-daemon instead, comment it out.
+supervisor="supervise-daemon"
diff --git a/main/ulogd/ulogd.initd b/main/ulogd/ulogd.initd
index a9b7b8972a0..c44646f555d 100644
--- a/main/ulogd/ulogd.initd
+++ b/main/ulogd/ulogd.initd
@@ -1,34 +1,31 @@
#!/sbin/openrc-run
-supervisor=supervise-daemon
-name="ulogd"
description="Netfilter userspace logging daemon"
-command="/usr/sbin/ulogd"
extra_started_commands="reload"
description_reload="Reload configuration"
-command_args="$ulogd_opts"
-command_user=root:wheel
+command="/usr/sbin/ulogd"
+# $ulogd_opts is only for backward compatibility (Alpine <3.19)
+command_args="$ulogd_opts $command_args"
+command_background="yes"
+command_user="root:wheel"
+pidfile="/run/$RC_SVCNAME.pid"
umask=027
+required_files="/etc/ulogd.conf"
+
depend() {
before firewall
}
-checkconfig() {
- if [ ! -e /etc/ulogd.conf ]; then
- eerror "/etc/ulogd.conf is missing"
- return 1
- fi
-}
-
reload() {
- ebegin "Reloading $name"
- supervise-daemon $RC_SVCNAME --signal HUP
- eend $?
-}
+ ebegin "Reloading $RC_SVCNAME"
-start_pre() {
- checkconfig || return $?
+ if [ "$supervisor" ]; then
+ $supervisor "$RC_SVCNAME" --signal HUP
+ else
+ start-stop-daemon --pidfile "$pidfile" --signal HUP
+ fi
+ eend $?
}
diff --git a/main/ulogd/ulogd.logrotate b/main/ulogd/ulogd.logrotate
index 81a495cd77d..b6801173abf 100644
--- a/main/ulogd/ulogd.logrotate
+++ b/main/ulogd/ulogd.logrotate
@@ -2,6 +2,6 @@
missingok
sharedscripts
postrotate
- killall -HUP ulogd 2> /dev/null || true
+ busybox killall -HUP ulogd 2> /dev/null || true
endscript
}
diff --git a/main/umix/APKBUILD b/main/umix/APKBUILD
index 9fc08b2ca59..b650e6bd5b0 100644
--- a/main/umix/APKBUILD
+++ b/main/umix/APKBUILD
@@ -2,39 +2,35 @@
# Maintainer: Michael Mason <ms13sp@gmail.com>
pkgname=umix
pkgver=1.0.2
-pkgrel=7
+pkgrel=10
pkgdesc="Program for adjusting soundcard volumes"
-url="http://umix.sf.net"
+url="https://umix.sourceforge.net/"
arch="all"
license="GPL-2.0-or-later"
-depends=""
makedepends="linux-headers ncurses-dev"
-install=""
subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz"
+source="https://downloads.sourceforge.net/umix/umix-$pkgver.tar.gz"
+options="!check"
-_builddir="$srcdir"/umix-$pkgver
prepare() {
- cd "$_builddir"
- update_config_sub || return 1
+ update_config_sub
}
build() {
- cd "$_builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--sysconfdir=/etc \
--mandir=/usr/share/man \
- --infodir=/usr/share/info \
- || return 1
- make || return 1
+ --infodir=/usr/share/info
+ make
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
+ make DESTDIR="$pkgdir" install
}
-sha512sums="9e59a26c0b6cd60bbcfa715694ed58e023c119840080ccb46d9e6b17a9613fd42c1346233a5185d02ece77e3f3e456e18be25573fd34e2f265c5b0b3dc593468 umix-1.0.2.tar.gz"
+sha512sums="
+9e59a26c0b6cd60bbcfa715694ed58e023c119840080ccb46d9e6b17a9613fd42c1346233a5185d02ece77e3f3e456e18be25573fd34e2f265c5b0b3dc593468 umix-1.0.2.tar.gz
+"
diff --git a/main/umurmur/APKBUILD b/main/umurmur/APKBUILD
index f7982916b13..4626dd35ef2 100644
--- a/main/umurmur/APKBUILD
+++ b/main/umurmur/APKBUILD
@@ -2,13 +2,13 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=umurmur
pkgver=0.2.20
-pkgrel=2
+pkgrel=6
pkgdesc="Minimalistic Mumble server primarily targeted to run on routers"
url="https://umurmur.net/"
arch="all"
license="BSD-3-Clause"
options="!check" # no test suite
-makedepends="libconfig-dev openssl1.1-compat-dev protobuf-c-dev autoconf automake"
+makedepends="libconfig-dev openssl-dev>3 protobuf-c-dev autoconf automake"
install="$pkgname.post-install"
subpackages="$pkgname-openrc"
pkgusers="umurmur"
@@ -48,7 +48,7 @@ package() {
sha512sums="
0913f5ba84b30fec4ae6a1521c442ff8c48121bbbca5de9082e04e41b36434fadb5f81cb2ea0bd0a8c63f6e541d15eeda3637667d8cc7113d38935ded320cef4 umurmur-0.2.20.tar.gz
27ae0f9191f252313c10cde7ad1b89920e60279b219cc491c9b8280341c77740413c5287a0d94fc96e2a340ea3a4c0af78965b66cb4d8e86fdb55e83c69fedee remove-crypto-mem-ctrl.patch
-1c22da6478738b8ac77aecbbf8e41260a957ddffec350020e56b622c70445ebf8dc28feb563b878f2c64132742d8e1e0cbcbd2a50f0c0b29a309ca29598d8c94 umurmur.initd
+0426bc25ae262712b5173ddb53a14257a12ea4794641169ebd4dc154a2f474511d8e03303669d4742e56d0f971d3c20fae9667283f729644b2f09c2dd234b19f umurmur.initd
ea5d4826d270f174b23ef4101586ffa3c6ba3311bc443595288dc1839f4127f5fa4bf64f9469037a2f947e3ddd22ac1895326db0fdd4122980d3fcaa0536621e umurmur.confd
0a5882dca2daf686716d7b78f916e4506c7b98e3460ccd56aace087dca88b686b659e32b325bf253922cc824049a800b06e5006ea04cc5539c82b63cda5cccea umurmur.conf
"
diff --git a/main/umurmur/umurmur.initd b/main/umurmur/umurmur.initd
index 0f9b3dbb272..3f7dcff2a8f 100644
--- a/main/umurmur/umurmur.initd
+++ b/main/umurmur/umurmur.initd
@@ -7,7 +7,6 @@ description="umurmurd - A minimalistic mumble server"
pidfile="/run/umurmurd/umurmurd.pid"
command="/usr/bin/umurmurd"
command_args="-c /etc/umurmur/umurmurd.conf -p ${pidfile} ${UMURMURD_OPTS}"
-start_stop_daemon_args="-p ${pidfile} -w 100"
depend() {
need net
diff --git a/main/umurmur/umurmur.post-install b/main/umurmur/umurmur.post-install
index adff9264e41..aa8c0ab0f61 100644
--- a/main/umurmur/umurmur.post-install
+++ b/main/umurmur/umurmur.post-install
@@ -1,6 +1,6 @@
#!/bin/sh
addgroup -S umurmur 2>/dev/null
-adduser -S -D -h /var/run/umurmurd -s /bin/false -G umurmur -g umurmur umurmur 2>/dev/null
+adduser -S -D -h /var/run/umurmurd -s /sbin/nologin -G umurmur -g umurmur umurmur 2>/dev/null
exit 0
diff --git a/main/unbound/APKBUILD b/main/unbound/APKBUILD
index 0e63aa2a57e..56fce719924 100644
--- a/main/unbound/APKBUILD
+++ b/main/unbound/APKBUILD
@@ -3,8 +3,8 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
pkgname=unbound
-pkgver=1.16.0
-pkgrel=0
+pkgver=1.19.3
+pkgrel=2
pkgdesc="Unbound is a validating, recursive, and caching DNS resolver"
url="https://nlnetlabs.nl/projects/unbound/about/"
arch="all"
@@ -19,7 +19,8 @@ _depends_migrate="
makedepends="$depends_dev
libevent-dev
linux-headers
- openssl-dev
+ openssl-dev>3
+ protobuf-c-dev
python3-dev
swig
"
@@ -47,6 +48,16 @@ source="https://unbound.net/downloads/unbound-$pkgver.tar.gz
"
# secfixes:
+# 1.19.2-r0:
+# - CVE-2024-1931
+# 1.19.1-r0:
+# - CVE-2023-50387
+# - CVE-2023-50868
+# 1.16.3-r0:
+# - CVE-2022-3204
+# 1.16.2-r0:
+# - CVE-2022-30698
+# - CVE-2022-30699
# 1.10.1-r0:
# - CVE-2020-12662
# - CVE-2020-12663
@@ -56,6 +67,8 @@ source="https://unbound.net/downloads/unbound-$pkgver.tar.gz
# - CVE-2019-16866
build() {
+ export CFLAGS="$CFLAGS -flto=auto"
+
PYTHON_VERSION=3 ./configure \
--build="$CBUILD" \
--host="$CHOST" \
@@ -71,6 +84,7 @@ build() {
--with-pthreads \
--disable-static \
--disable-rpath \
+ --enable-dnstap \
--with-ssl \
--without-pythonmodule \
--with-pyunbound
@@ -117,9 +131,9 @@ migrate() {
}
sha512sums="
-134679c0baad6738541295fcfbf8cc701c647b5d5cd00f87e50394bc7b5b74b7326ed2fc42f3282cae8094b4980c1e580d7b748b7151642c9060c449b644715f unbound-1.16.0.tar.gz
+f860614f090a5a081cceff8ca7f4b3d416c00a251ae14ceb6b4159dc8cd022f025592074d3d78aee2f86c3eeae9d1a314713e4740aa91062579143199accd159 unbound-1.19.3.tar.gz
05fec1829dfb5279f35a76eeab768d88b6dffee4477b1db693360021969bdcc89e309f71ea6cc63e0f921b1fc223a073b97892be2095ed93d7da917a59e09d00 conf.patch
7ab3f57ade3fe8add60bfce208efccc968728fac5c94c759c34aaa09aa71e0da06dd7c24ae0fecf9e2ccc869594226d68b24fe2b0a0b161b833e22c0de1b03b6 migrate-dnscache-to-unbound
-c8e29190a7ab2803bb528fcc008d9788c1d46ca96abd7273023778068156aa65330a99af76a755929d24dfa936a3900bd400368ddf7b89fb3bcef29dbaa32683 unbound.initd
+7ca4c42c00a86f737fd8f5024efce218c9d0dee8fb8708df60f7b292c25b4d3a35ed46a8a0a32847451bca988b5de2dbdddb7fed352170c03263281fc579582b unbound.initd
0ceae15d69deb24baa16990226de31fe743d84779a2595f31b4910b46ef925fc132cec1683d0a06141f707d9cbe517d731015702c60d9df4958ccfb9abd5a23f unbound.confd
"
diff --git a/main/unbound/unbound.initd b/main/unbound/unbound.initd
index c5c6d70c4b0..f0955fcda7c 100644
--- a/main/unbound/unbound.initd
+++ b/main/unbound/unbound.initd
@@ -12,7 +12,7 @@ description_reload="Kills all children and reloads the configuration."
: ${cfgfile:=${UNBOUND_CONFFILE:-/etc/unbound/$RC_SVCNAME.conf}}
command=/usr/sbin/unbound
-command_args="-d $command_args"
+command_args="-d -c $cfgfile $command_args"
command_background=yes
pidfile="/run/$RC_SVCNAME.pid"
diff --git a/main/unfs3/APKBUILD b/main/unfs3/APKBUILD
index a628608dcb3..3805041deb8 100644
--- a/main/unfs3/APKBUILD
+++ b/main/unfs3/APKBUILD
@@ -1,38 +1,29 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=unfs3
-pkgver=0.9.22
-pkgrel=6
+pkgver=0.10.0
+pkgrel=2
pkgdesc="user-space implementation of the NFSv3 server specification"
options="!check" # No testsuite
-url="http://unfs3.sourceforge.net/"
+url="https://unfs3.github.io/"
arch="all"
license="BSD-3-Clause"
depends="rpcbind"
makedepends="flex-dev libtirpc-dev byacc"
subpackages="$pkgname-doc $pkgname-openrc"
-source="https://downloads.sourceforge.net/unfs3/unfs3-$pkgver.tar.gz
- unfs3-0.9.22-musl.patch
- gcc-10.patch
- fix-tcp.patch
+source="$pkgname-$pkgver.tar.gz::https://github.com/unfs3/unfs3/releases/download/unfs3-$pkgver/unfs3-$pkgver.tar.gz
+ implicit.patch
+ lfs64.patch
unfs3.confd
unfs3.initd
"
build() {
- # -fcommon is required because of multiple definitions without extern
- # from a type generated by yacc
- export CFLAGS="$CFLAGS -fcommon $(pkgconf --cflags libtirpc)"
- export LDFLAGS="$LDFLAGS $(pkgconf --libs-only-L libtirpc)"
- export LIBS="$LIBS $(pkgconf --libs-only-l libtirpc)"
-
- sed -i '/LDFLAGS=/ s,-R/usr/ucblib,,' ./configure
-
./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
--mandir=/usr/share/man
- make -j1
+ make
}
package() {
@@ -42,10 +33,9 @@ package() {
}
sha512sums="
-b1e4b7f5b7b7de27bb5411c69363a6b40be0fcf1f772e283f0868a2155fa9ea4b9b8e7f05b1706e41cf09dd2ee4baab472a01bc4640ae47e3be2a19d8d3f5f9e unfs3-0.9.22.tar.gz
-f2221651fad842acb8b5fd637514caa07300f627efd5b168ee2939ab3b6ea55fdefa3c3f3336425e255ee7badd326528c722d4064a04936b5468aabc79cbca02 unfs3-0.9.22-musl.patch
-133a80a0e03281ab95f584a8b5f930dba07614e31d2dddbb63e62d793828aece2090014b4c635ffe101e6257f1b8d158fb4d115e6452a1490cbd338f3b13c58c gcc-10.patch
-af189b45ef26aede0899f1073b130ba4675811a5acebef95fd75adbcd20a8b8be33cac2d2d00164195df62fc5907c97ab2c0aa8927089597b5bd81e53a3829d1 fix-tcp.patch
+4d62b45f133a1929fc0faacfc7a483126767519332c5a311d44b1d048a6c580280299ffb70114a1c405666d730953d436957c04a3350329aa3de5256d0d3e85a unfs3-0.10.0.tar.gz
+5b564890003d3d4ba28e2efcdd42d920ba679d2f4154fb64d33a064b90a956ca4918d943fca71e1ffa2fa4b43a1af12b322bd9c5400e9ec3b4a33db14c5fa47f implicit.patch
+f02a60582f5959a9f5e504c3761a924e30180556432d262f3f12caf861d374d21da67d2ebed175db5acb16e97b70d2f730c8b1131bf6a1a3fc05bd739d7266c7 lfs64.patch
e3a3b7a71117482fd3214eadfd957f5cd3f05da268f748f931945c390f1d8e46e19b33d53b2ce0505c61745f8dd6285f7a9de409196fedef07d23ae029f1c035 unfs3.confd
105b1ac6d0a65b3ba19bb8ada17d1ae865cf14e71e6a3838df1e6d34d2738457f0019258fd10a4594783074c10be44db75417677290bdd6862ba73b4c370b07e unfs3.initd
"
diff --git a/main/unfs3/fix-tcp.patch b/main/unfs3/fix-tcp.patch
deleted file mode 100644
index 16b30e29847..00000000000
--- a/main/unfs3/fix-tcp.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-Patch-Source: https://github.com/madisongh/openembedded-core/blob/62851965fc180f33ed6feb62ff5ac14706e4732a/meta/recipes-devtools/unfs3/unfs3/0001-Add-listen-action-for-a-tcp-socket.patch
-From b42ab8e1aca951dd06c113159491b3fd5cf06f2e Mon Sep 17 00:00:00 2001
-From: Haiqing Bai <Haiqing.Bai@windriver.com>
-Date: Thu, 24 Oct 2019 09:39:04 +0800
-Subject: [PATCH] Add "listen" action for a tcp socket which does not call
- 'listen' after 'bind'
-
-It is found that /usr/bin/unfsd customus 100% cpu after starting qemu with 'nfs'
-option, and below lots of error messages shows when strace the process:
-
-poll([{fd=3, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND},{fd=4, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND},
-{fd=5, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND},{fd=6, events =POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}],
-4, 2000) = 2 ([{fd=4, revents=POLLHUP},{fd=6, revents=POLLHUP}])
-accept(4, 0x7ffd5e6dddc0, [128]) = -1 EINVAL (Invalid argument)
-accept(6, 0x7ffd5e6dddc0, [128]) = -1 EINVAL (Invalid argument)
-
-% time seconds usecs/call calls errors syscall
------- ----------- ----------- --------- --------- ----------------
- 70.87 0.005392 0 513886 513886 accept
- 29.13 0.002216 0 256943 poll
- 0.00 0.000000 0 4 read
-
-The root cause is that 'listen' is not called for the binded
-socket. The depended libtipc does not call 'listen' if found
-the incomming socket is binded, so 'accept' reports the error
-in the 'for' loop and cpu consumed.
-
-Upstream-Status: Pending
-
-Signed-off-by: Haiqing Bai <Haiqing.Bai@windriver.com>
----
- daemon.c | 7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/daemon.c b/daemon.c
-index 028a181..4c85903 100644
---- a/daemon.c
-+++ b/daemon.c
-@@ -814,6 +814,13 @@ static SVCXPRT *create_tcp_transport(unsigned int port)
- fprintf(stderr, "Couldn't bind to tcp port %d\n", port);
- exit(1);
- }
-+
-+ if (listen(sock, SOMAXCONN) < 0) {
-+ perror("listen");
-+ fprintf(stderr, "Couldn't listen on the address \n");
-+ close(sock);
-+ exit(1);
-+ }
- }
-
- transp = svctcp_create(sock, 0, 0);
---
-1.9.1
-
diff --git a/main/unfs3/gcc-10.patch b/main/unfs3/gcc-10.patch
deleted file mode 100644
index 715cf2b9a9b..00000000000
--- a/main/unfs3/gcc-10.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-Upstream: Unknown, should be
-Reason: Fixes compilation under gcc-10 which has -fno-common by default
-
-diff --git a/Config/exports.h b/Config/exports.h
-index 2c5edec..1dafc36 100644
---- a/Config/exports.h
-+++ b/Config/exports.h
-@@ -22,7 +22,7 @@
- extern exports exports_nfslist;
- /* Options cache */
- extern int exports_opts;
--const char *export_path;
-+extern const char *export_path;
- extern uint32 export_fsid;
- extern uint32 export_password_hash;
-
-diff --git a/Config/exports.y b/Config/exports.y
-index f30e8af..6b8fbf9 100644
---- a/Config/exports.y
-+++ b/Config/exports.y
-@@ -694,7 +694,7 @@ static e_host* find_host(struct in_addr remote, e_item *item,
-
- /* options cache */
- int exports_opts = -1;
--const char *export_path = NULL;
-+extern const char *export_path = NULL;
- uint32 export_fsid = 0;
- uint32 export_password_hash = 0;
-
-diff --git a/Config/y.tab.c b/Config/y.tab.c
-index b0761f4..3a61594 100644
---- a/Config/y.tab.c
-+++ b/Config/y.tab.c
-@@ -2248,7 +2248,7 @@ static e_host* find_host(struct in_addr remote, e_item *item,
-
- /* options cache */
- int exports_opts = -1;
--const char *export_path = NULL;
-+extern const char *export_path = NULL;
- uint32 export_fsid = 0;
- uint32 export_password_hash = 0;
-
diff --git a/main/unfs3/implicit.patch b/main/unfs3/implicit.patch
new file mode 100644
index 00000000000..d87b1076b65
--- /dev/null
+++ b/main/unfs3/implicit.patch
@@ -0,0 +1,25 @@
+strcmp, strdup
+diff --git a/attr.c b/attr.c
+index 6253e84..66227fa 100644
+--- a/attr.c
++++ b/attr.c
+@@ -9,6 +9,7 @@
+
+ #include <sys/types.h>
+ #include <sys/stat.h>
++#include <string.h>
+ #include <rpc/rpc.h>
+ #include <fcntl.h>
+ #include <time.h>
+diff --git a/locate.c b/locate.c
+index 6bbe71f..84e0fe5 100644
+--- a/locate.c
++++ b/locate.c
+@@ -27,6 +27,7 @@
+ #include "nfs.h"
+ #include "fh.h"
+ #include "daemon.h"
++#include "attr.h"
+
+ /*
+ * these are the brute-force file searching routines that are used
diff --git a/main/unfs3/lfs64.patch b/main/unfs3/lfs64.patch
new file mode 100644
index 00000000000..9b04fb311b0
--- /dev/null
+++ b/main/unfs3/lfs64.patch
@@ -0,0 +1,30 @@
+Patch-Source: https://github.com/unfs3/unfs3/commit/a4e5d128a1b93a7bd05d5dc78c886a072cf0f76b
+needed since https://github.com/bminor/musl/commit/25e6fee27f4a293728dd15b659170e7b9c7db9bc
+--
+From a4e5d128a1b93a7bd05d5dc78c886a072cf0f76b Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 14 Dec 2022 14:50:10 -0800
+Subject: [PATCH] Alias off64_t to off_t on linux if not defined
+
+Musl C library does not define off64_t and has 64-bit default off_t
+therefore define off64_t as an alias on linux as well when configure
+detects that off64_t is not provided by a linux system
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ nfs.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/nfs.h b/nfs.h
+index aded011..7996c67 100644
+--- a/nfs.h
++++ b/nfs.h
+@@ -62,7 +62,7 @@ typedef int32_t int32;
+ #endif
+
+ #ifndef HAVE_OFF64_T
+-#ifdef __APPLE__
++#if defined(__APPLE__) || defined(__linux__)
+ typedef off_t off64_t;
+ #endif
+ #endif
diff --git a/main/unfs3/unfs3-0.9.22-musl.patch b/main/unfs3/unfs3-0.9.22-musl.patch
deleted file mode 100644
index 31f3c6abdc3..00000000000
--- a/main/unfs3/unfs3-0.9.22-musl.patch
+++ /dev/null
@@ -1,34 +0,0 @@
---- unfs3-0.9.22/daemon.c
-+++ unfs3-0.9.22-musl/daemon.c
-@@ -110,7 +110,8 @@
- */
- struct in_addr get_remote(struct svc_req *rqstp)
- {
-- return (svc_getcaller(rqstp->rq_xprt))->sin_addr;
-+ struct sockaddr_in *sin = nfs_getrpccaller_in(rqstp->rq_xprt);
-+ return sin->sin_addr;
- }
-
- /*
-@@ -118,7 +119,8 @@
- */
- short get_port(struct svc_req *rqstp)
- {
-- return (svc_getcaller(rqstp->rq_xprt))->sin_port;
-+ struct sockaddr_in *sin = nfs_getrpccaller_in(rqstp->rq_xprt);
-+ return sin->sin_port;
- }
-
- /*
---- unfs3-0.9.22/daemon.h
-+++ unfs3-0.9.22-musl/daemon.h
-@@ -46,4 +46,9 @@
- extern int opt_brute_force;
- extern int opt_readable_executables;
-
-+static inline struct sockaddr_in *nfs_getrpccaller_in(SVCXPRT *xprt)
-+{
-+ return (struct sockaddr_in *)svc_getcaller(xprt);
-+}
-+
- #endif
diff --git a/main/unifont/APKBUILD b/main/unifont/APKBUILD
deleted file mode 100644
index fa8c51d8552..00000000000
--- a/main/unifont/APKBUILD
+++ /dev/null
@@ -1,25 +0,0 @@
-# Contributor: Breno Leitao <breno.leitao@gmail.com>
-# Maintainer:
-pkgname=unifont
-pkgver=14.0.02
-pkgrel=0
-pkgdesc="GNU Unifont glyphs"
-url="http://unifoundry.com/unifont.html"
-arch="all"
-options="!check" # No way to test fonts.
-license="GFDL-1.3-or-later GPL-2.0-or-later WITH Font-exception-2.0"
-depends="bdftopcf perl-gd"
-subpackages="$pkgname-dev $pkgname-doc"
-source="http://unifoundry.com/pub/unifont/unifont-$pkgver/unifont-$pkgver.tar.gz"
-
-build() {
- make DESTDIR="$pkgdir"
-}
-
-package() {
- make DESTDIR="$pkgdir" install
-}
-
-sha512sums="
-50d2fe300104bad7b8247a0e76a5a43493893bd91a87264095bec66b04c5ef0dda5169baef232a45f2366efb893cf44a2952770a23d4b87a48c051cf28ff74ff unifont-14.0.02.tar.gz
-"
diff --git a/main/unionfs-fuse/APKBUILD b/main/unionfs-fuse/APKBUILD
index da40ac0d4c1..8689aad785a 100644
--- a/main/unionfs-fuse/APKBUILD
+++ b/main/unionfs-fuse/APKBUILD
@@ -1,24 +1,35 @@
# Maintainer: Michael Zhou <zhoumichaely@gmail.com>
pkgname=unionfs-fuse
-pkgver=2.1
+pkgver=3.4
pkgrel=0
pkgdesc="Union Filesystem in Userspace"
url="https://github.com/rpodgorny/unionfs-fuse"
arch="all"
license="BSD-3-Clause"
-makedepends="fuse-dev linux-headers"
+depends="fuse3" # provides cmd:fusermount3
+makedepends="fuse3-dev linux-headers"
+checkdepends="py3-pytest cmd:fusermount"
+options="!check" # requires /dev/fuse
subpackages="$pkgname-doc"
source="$pkgname-$pkgver.tar.gz::https://github.com/rpodgorny/unionfs-fuse/archive/v$pkgver.tar.gz
0001-include-asm-ioctl.h-for-_IOC_SIZE.patch
+ test-exepath.patch
"
build() {
make
}
+check() {
+ make test
+}
+
package() {
make DESTDIR="$pkgdir" PREFIX=/usr install
}
-sha512sums="851e378f8c189d8a84d2a0cf47ce8f1e9cdda5e789a8c0c97aac6e0757c2f6480ca4d931a525bb94cec4af11789073ccda44ad01d7ed02de1c29ded72f578aa0 unionfs-fuse-2.1.tar.gz
-a3dedebb86446a0b992c18d4cc27f223eac554e9688c0cfd6e4806302cb6afce3f691a1cabd540626cdbd7ee94171d6c39b361292c12f2ce43d885d04cf65412 0001-include-asm-ioctl.h-for-_IOC_SIZE.patch"
+sha512sums="
+fb719c8548ab1fa43f236d5c3207d7e8e7a7dc45efed453e447e29452a7c4d03483c84b00fd615bac115781b333c8171d811b87a0227172010a2ab34224150f7 unionfs-fuse-3.4.tar.gz
+a3dedebb86446a0b992c18d4cc27f223eac554e9688c0cfd6e4806302cb6afce3f691a1cabd540626cdbd7ee94171d6c39b361292c12f2ce43d885d04cf65412 0001-include-asm-ioctl.h-for-_IOC_SIZE.patch
+281674f7754dced5ee50cbc979024ef294ba29761c9fe928bed6a473f1860e817f06c293eab2e7c0ba4241f33cc9425893261769c3dc973a6d7793e7d554dfd1 test-exepath.patch
+"
diff --git a/main/unionfs-fuse/test-exepath.patch b/main/unionfs-fuse/test-exepath.patch
new file mode 100644
index 00000000000..6144a186e38
--- /dev/null
+++ b/main/unionfs-fuse/test-exepath.patch
@@ -0,0 +1,33 @@
+--- a/test_all.py
++++ b/test_all.py
+@@ -10,6 +10,7 @@
+ import platform
+ import errno
+
++unionfs_srcdir = os.path.abspath('src')
+
+ def call(cmd):
+ return subprocess.check_output(cmd, shell=True, stderr=subprocess.STDOUT)
+@@ -37,8 +38,9 @@
+
+ class Common:
+ def setUp(self):
+- self.unionfs_path = os.path.abspath('src/unionfs')
+- self.unionfsctl_path = os.path.abspath('src/unionfsctl')
++ global unionfs_srcdir
++ self.unionfs_path = os.path.join(unionfs_srcdir, 'unionfs')
++ self.unionfsctl_path = os.path.join(unionfs_srcdir, 'unionfsctl')
+
+ self.tmpdir = tempfile.mkdtemp()
+ self.original_cwd = os.getcwd()
+--- a/Makefile
++++ b/Makefile
+@@ -12,7 +12,7 @@
+ clean: clean_coverage
+ $(MAKE) -C src/ clean
+
+-test: clean build
++test: build
+ python3 -m pytest
+
+ test_coverage: clean build_coverage coverage
diff --git a/main/unixodbc/APKBUILD b/main/unixodbc/APKBUILD
index 8442f57a932..f8af3f90b29 100644
--- a/main/unixodbc/APKBUILD
+++ b/main/unixodbc/APKBUILD
@@ -1,16 +1,16 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=unixodbc
-pkgver=2.3.11
+pkgver=2.3.12
pkgrel=0
pkgdesc="ODBC is an open specification to access Data Sources"
-url="http://www.unixodbc.org/"
+url="https://www.unixodbc.org/"
arch="all"
license="LGPL-2.0-or-later"
options="!check" # No test suite.
makedepends="readline-dev"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
-source="http://www.unixodbc.org/unixODBC-$pkgver.tar.gz"
+source="https://www.unixodbc.org/unixODBC-$pkgver.tar.gz"
builddir="$srcdir/unixODBC-$pkgver"
@@ -38,5 +38,5 @@ package() {
}
sha512sums="
-dddc32f90a7962e6988e1130a8093c6fb8b9ff532cad270d572250324aecbc739f45f9d8021d217313910bab25b08e69009b4f87456575535e93be1f46f5f13d unixODBC-2.3.11.tar.gz
+ca9d8db943195679a44db1fc09391dc6662ab1721112c93d448f04011e98502462ffe14b8364eb03707d851db456eced20eb61a22370392ca88d917038d45b56 unixODBC-2.3.12.tar.gz
"
diff --git a/main/unzip/08-allow-greater-hostver-values.patch b/main/unzip/08-allow-greater-hostver-values.patch
new file mode 100644
index 00000000000..3460787b886
--- /dev/null
+++ b/main/unzip/08-allow-greater-hostver-values.patch
@@ -0,0 +1,14 @@
+From: Santiago Vila <sanvila@debian.org>
+Subject: zipinfo.c: Do not crash when hostver byte is >= 100
+
+--- a/zipinfo.c
++++ b/zipinfo.c
+@@ -2114,7 +2114,7 @@
+ else
+ attribs[9] = (xattr & UNX_ISVTX)? 'T' : '-'; /* T==undefined */
+
+- sprintf(&attribs[12], "%u.%u", hostver/10, hostver%10);
++ sprintf(&attribs[11], "%2u.%u", hostver/10, hostver%10);
+ break;
+
+ } /* end switch (hostnum: external attributes format) */
diff --git a/main/unzip/13-remove-build-date.patch b/main/unzip/13-remove-build-date.patch
new file mode 100644
index 00000000000..bb60533cb01
--- /dev/null
+++ b/main/unzip/13-remove-build-date.patch
@@ -0,0 +1,17 @@
+From: Jérémy Bobbio <lunar@debian.org>
+Subject: Remove build date
+Bug-Debian: https://bugs.debian.org/782851
+ In order to make unzip build reproducibly, we remove the
+ (already optional) build date from the binary.
+
+--- a/unix/unix.c
++++ b/unix/unix.c
+@@ -1705,7 +1705,7 @@
+ #endif /* Sun */
+ #endif /* SGI */
+
+-#ifdef __DATE__
++#if 0
+ " on ", __DATE__
+ #else
+ "", ""
diff --git a/main/unzip/21-fix-warning-messages-on-big-files.patch b/main/unzip/21-fix-warning-messages-on-big-files.patch
new file mode 100644
index 00000000000..55a115af774
--- /dev/null
+++ b/main/unzip/21-fix-warning-messages-on-big-files.patch
@@ -0,0 +1,15 @@
+From: "Steven M. Schweda" <sms@antinode.info>
+Subject: Fix lame code in fileio.c
+Bug-Debian: https://bugs.debian.org/929502
+X-Debian-version: 6.0-23
+
+--- a/fileio.c
++++ b/fileio.c
+@@ -2477,6 +2477,7 @@
+ */
+ return (((zusz_t)sig[7]) << 56)
+ + (((zusz_t)sig[6]) << 48)
++ + (((zusz_t)sig[5]) << 40)
+ + (((zusz_t)sig[4]) << 32)
+ + (zusz_t)((((ulg)sig[3]) << 24)
+ + (((ulg)sig[2]) << 16)
diff --git a/main/unzip/APKBUILD b/main/unzip/APKBUILD
index 70129f08e76..75003ac0fbf 100644
--- a/main/unzip/APKBUILD
+++ b/main/unzip/APKBUILD
@@ -3,7 +3,7 @@
pkgname=unzip
pkgver=6.0
_pkgver=${pkgver//./}
-pkgrel=9
+pkgrel=14
pkgdesc="Extract PKZIP-compatible .zip files"
url="http://www.info-zip.org/UnZip.html"
arch="all"
@@ -11,22 +11,43 @@ license="custom"
subpackages="$pkgname-doc"
# normally ftp://ftp.info-zip.org/pub/infozip/src/$pkgname$_pkgver.zip
source="https://dev.alpinelinux.org/archive/unzip/unzip$_pkgver.tgz
+ 08-allow-greater-hostver-values.patch
10-unzip-handle-pkware-verify.patch
+ 13-remove-build-date.patch
20-unzip-uidgid-fix.patch
+ 21-fix-warning-messages-on-big-files.patch
+ unzip-6.0-exec-shield.patch
+ unzip-6.0-format-secure.patch
unzip-6.0-heap-overflow-infloop.patch
+ unzip-6.0-timestamp.patch
+ CVE-2014-8139.patch
CVE-2014-8140.patch
CVE-2014-8141.patch
CVE-2014-9636.patch
CVE-2014-9913.patch
CVE-2016-9844.patch
CVE-2018-1000035.patch
- fix-CVE-2014-8139.patch
- CVE-2019-13232.patch
CVE-2018-18384.patch
+ large-symlinks.patch
+ CVE-2021-4217.patch
+ CVE-2022-0529-and-CVE-2022-0530.patch
+
+ zipbomb-manpage.patch
+ zipbomb-part1.patch
+ zipbomb-part2.patch
+ zipbomb-part3.patch
+ zipbomb-part4.patch
+ zipbomb-part5.patch
+ zipbomb-part6.patch
+ zipbomb-switch.patch
"
builddir="$srcdir/$pkgname$_pkgver"
# secfixes:
+# 6.0-r11:
+# - CVE-2021-4217
+# - CVE-2022-0529
+# - CVE-2022-0530
# 6.0-r9:
# - CVE-2018-18384
# 6.0-r7:
@@ -69,16 +90,32 @@ package() {
sha512sums="
0694e403ebc57b37218e00ec1a406cae5cc9c5b52b6798e0d4590840b6cdbf9ddc0d9471f67af783e960f8fa2e620394d51384257dca23d06bcd90224a80ce5d unzip60.tgz
+d2d20e546c74e64b444b9d7053bc49119666e693e6ca32dfeed35245b86cdcae4430e49736b4c19ad6c0ea34e369b6015d7084afc5a61a015c506282cf6e0f32 08-allow-greater-hostver-values.patch
9d2914f22fb0075a2b6f72825c235f46eafd8d47b6fb6fcc8303fc69336e256b15923c002d2615bb6af733344c2315e4a8504d77bae301e10c11d4736faa2c81 10-unzip-handle-pkware-verify.patch
+0fbc26fa0eb1097e1c5fa5d9a7b29766a9b5a0b6c16681ea2ef093c8752940bc9c0eac08dc1420cc2cc77f9280589a323deb331ccd9c04031b96a683bebd4eac 13-remove-build-date.patch
57699582e9056af0817dcb67f8db67e6a1ff8208c137fbebcf559429e5f12b471b75d7e1ef938e5bbb5416074a51ac7342e4ce8057f4bbdcb0bf079b8d7832af 20-unzip-uidgid-fix.patch
+70545de519f522b0c0f3df516b019dd248f55f3e4e107a19ade5bd1774cc25fe1d012dad5ddde5915a807352dbbe5909a92136085308d24bbde3dd1324dcc4d1 21-fix-warning-messages-on-big-files.patch
+3c7f525687b198aaa8547a8b30e744f7f184943624279d5c70170d5b9bb3f0c0f27f3e69bc808dd0d144690107bc76a10c06e160bf99c54fd5684246208b7cff unzip-6.0-exec-shield.patch
+94560c730437ac2561d5e7550b91688dad1b828e1da96c9477e228e17b37e455ecdcd3a774e7db94dd902bbe12547d910602c0656b803768e5865b045d452dd7 unzip-6.0-format-secure.patch
b0b745cff474756447e699a13ff003871b33a4f7a24a91150e5a947eba5132fd90fbacf7580379fc13c5f638483b25cbc226f85b9cac9c7662b2f91927eb2bb3 unzip-6.0-heap-overflow-infloop.patch
+e387dc533142f0f702c04092da297e8dfc9b51e4ec7001e6e657d93a9a0f6382b1b39196f239190b8d52b8ecfa46a965627e503aaecdab86e59272af84bbc2c6 unzip-6.0-timestamp.patch
+13f9c54fcdde478c4afe391c8e7ef9c31b03228aaace5da38382612951cbfd60710fd3d931569297953be32b2c5906715aed4b1c05e28cc8fccbb27f38b57550 CVE-2014-8139.patch
028a97e781fb4e277df331fd40b848bbc002f1a5ceeb40e74477cf68d2f063ac2623e24afbeddfa0456940ecc7694fdb66ecd031cbcecad63079e8427fb731c9 CVE-2014-8140.patch
3dd21343d6e5ae7d19f2b2f9cf7310eac38dd7f598e1265e247559a48143c9dbffabd9fc0d7aff6d859ec9e646e85c2b7ee00a1b1a2e23bdf96192c22c58b058 CVE-2014-8141.patch
281c524a9adb1c0f1cb861548d96115f55152c1d76adca34bbaabcca410c5aaf5dd53d99360d7ea8ee9d0ab9eb62031cb40c5de4b5ecfd91535ac178cd3e7098 CVE-2014-9636.patch
9a62286acdbd5bf5f679d813017b93c25bdb06edaf48b2b53d3281ce3c30587158a777b07457c574d72350499f786dac6b4493092d7e08c17c07cb65ecc513b6 CVE-2014-9913.patch
8c4a4313072ff0d87eadb0f5472eb48f2802b835dd282305811a96de87a41fed48be60fbdd434e6b6359418f0559f7793deaa1d68161a0c0ead9f8574bb9f14c CVE-2016-9844.patch
6f757385a23fe6a034f676df6bf233243afa8743761e3d715e532d066fcd7dc8f8dcd6192be693258f3855837e5534490784378768abe7ce710fb869258d49b7 CVE-2018-1000035.patch
-13f9c54fcdde478c4afe391c8e7ef9c31b03228aaace5da38382612951cbfd60710fd3d931569297953be32b2c5906715aed4b1c05e28cc8fccbb27f38b57550 fix-CVE-2014-8139.patch
-d11758bda3b022f1adb4031bfbc770c6391e3470f3126ec5a4d3d2800d5452245eee26256f539d60adee33f01ba8ba8345299736cd9568da1242f6f739e4a598 CVE-2019-13232.patch
1edd66fbca3cfbfad7b19db0b1564b93f13b27b10ff157cf9907228184b56f1f4c87c2dd2a09afc1307ee86622f3aaeea46f8336c249249c8452304cf4d25272 CVE-2018-18384.patch
+d1ea86ee591e6d73853798bfcafb368338129a698a65732715b5bff36a5f8c242de42b8d2ef87cd8c41c8cd271780bd9efcc664d7f9b4261a6f10b1c4a8cf792 large-symlinks.patch
+bb54397ac6f84c9eae012b9e782f768ac4c715e20f2060e7b17b1770921cd6edb31adde9ebd6d9b735f935d6dc08daa751115fd817390a3942bb84b80f38d489 CVE-2021-4217.patch
+bff17d21399a2189ed497602a735eab55746a17e6d414d843068c0374ae09d8d5958c00731e9f35dbfbce6ec9f802cb83d1e7436363392a36a2e34b724d0d71c CVE-2022-0529-and-CVE-2022-0530.patch
+cb51b1ff5c1bc4a3acc8d4bb60c92cd74dec1b76799f00f542e793b1407964c00cfbda8153703e40a64d1cf89705d6ba16a4c11e7ca9a304eb3a14355546e5eb zipbomb-manpage.patch
+4f940afa1f6628a47faf6eb13116eab384bda05c841b0b286b18cafad9c4b567ef332a301b8fbdf07259acdf8f6bdb452487e086bce2a3f092daa4e9d9daefa6 zipbomb-part1.patch
+e20e97722e0daf48b97df540added603325d356c6597634afd694af3972bb62952dd0f92c10d98f8c9f28eb9d089f6f5b022e0beb8c6224e32fd2cfaadffa200 zipbomb-part2.patch
+7e11e29dde260f0245bc25eeb811d794515d1c523b42ea6004c7c6a2eda19b9de4dd7a8ecc03e5ff7d376e28a96c6f1b2b922d6b8b3963a9e4746231f3c257f4 zipbomb-part3.patch
+27d45a25a6a51415af609a4fdefcb7c95a1105d511a6e18e2a7464e9d3773ba2ccb25f138a3cc6ddc6e5e9c558b633ee60d273cebf562c2a7d1e99d3f229d1ba zipbomb-part4.patch
+48875d7e08d669637e26a7e800f8b2a3812d477e6f249c8d4962fdf93ba6d346f5b22b83d82cb65317b506dff84c441d42c0fe7d1c042a065619d39bdf25fdd0 zipbomb-part5.patch
+a788d57fe0fb9ae6106381d2a8fe566aa35bb037012139dc7c283fe5eb316056835dffa9ea9778c15a5b39e50a75329a135a0dffdfc6a53d575ef2013b1d478a zipbomb-part6.patch
+d86aba51101fdbe855c35f034d33d65a79c5c707d01de4709619f5d1316185777048b72c293f9506186677bcecf54a808e106ad59bb36835ef80615641c85d63 zipbomb-switch.patch
"
diff --git a/main/unzip/fix-CVE-2014-8139.patch b/main/unzip/CVE-2014-8139.patch
index 2465af0328c..2465af0328c 100644
--- a/main/unzip/fix-CVE-2014-8139.patch
+++ b/main/unzip/CVE-2014-8139.patch
diff --git a/main/unzip/CVE-2021-4217.patch b/main/unzip/CVE-2021-4217.patch
new file mode 100644
index 00000000000..5e5ae0e67d1
--- /dev/null
+++ b/main/unzip/CVE-2021-4217.patch
@@ -0,0 +1,54 @@
+From 731d698377dbd1f5b1b90efeb8094602ed59fc40 Mon Sep 17 00:00:00 2001
+From: Nils Bars <nils.bars@t-online.de>
+Date: Mon, 17 Jan 2022 16:53:16 +0000
+Subject: [PATCH] Fix null pointer dereference and use of uninitialized data
+
+This fixes a bug that causes use of uninitialized heap data if `readbuf` fails
+to read as many bytes as indicated by the extra field length attribute.
+Furthermore, this fixes a null pointer dereference if an archive contains an
+`EF_UNIPATH` extra field but does not have a filename set.
+---
+ fileio.c | 5 ++++-
+ process.c | 6 +++++-
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/fileio.c b/fileio.c
+index 6290824..95ea68b 100644
+--- a/fileio.c
++++ b/fileio.c
+@@ -2308,8 +2308,11 @@ int do_string(__G__ length, option) /* return PK-type error code */
+ seek_zipf(__G__ G.cur_zipfile_bufstart - G.extra_bytes +
+ (G.inptr-G.inbuf) + length);
+ } else {
+- if (readbuf(__G__ (char *)G.extra_field, length) == 0)
++ unsigned bytes_read = readbuf(__G__ (char *)G.extra_field, length);
++ if (bytes_read == 0)
+ return PK_EOF;
++ if (bytes_read != length)
++ return PK_ERR;
+ /* Looks like here is where extra fields are read */
+ if (getZip64Data(__G__ G.extra_field, length) != PK_COOL)
+ {
+diff --git a/process.c b/process.c
+index d2a846e..cba2463 100644
+--- a/process.c
++++ b/process.c
+@@ -2064,10 +2064,14 @@ int getUnicodeData(__G__ ef_buf, ef_len)
+ G.unipath_checksum = makelong(offset + ef_buf);
+ offset += 4;
+
++ if (!G.filename_full) {
++ /* Check if we have a unicode extra section but no filename set */
++ return PK_ERR;
++ }
++
+ /*
+ * Compute 32-bit crc
+ */
+-
+ chksum = crc32(chksum, (uch *)(G.filename_full),
+ strlen(G.filename_full));
+
+--
+2.25.1
+
diff --git a/main/unzip/CVE-2022-0529-and-CVE-2022-0530.patch b/main/unzip/CVE-2022-0529-and-CVE-2022-0530.patch
new file mode 100644
index 00000000000..8f5351e8cd8
--- /dev/null
+++ b/main/unzip/CVE-2022-0529-and-CVE-2022-0530.patch
@@ -0,0 +1,173 @@
+From: Steven M. Schweda <sms@antinode.info>
+Subject: Fix for CVE-2022-0529 and CVE-2022-0530
+Bug-Debian: https://bugs.debian.org/1010355
+X-Debian-version: 6.0-27
+
+--- a/fileio.c
++++ b/fileio.c
+@@ -171,8 +171,10 @@
+ static ZCONST char Far FilenameTooLongTrunc[] =
+ "warning: filename too long--truncating.\n";
+ #ifdef UNICODE_SUPPORT
++ static ZCONST char Far UFilenameCorrupt[] =
++ "error: Unicode filename corrupt.\n";
+ static ZCONST char Far UFilenameTooLongTrunc[] =
+- "warning: Converted unicode filename too long--truncating.\n";
++ "warning: Converted Unicode filename too long--truncating.\n";
+ #endif
+ static ZCONST char Far ExtraFieldTooLong[] =
+ "warning: extra field too long (%d). Ignoring...\n";
+@@ -2361,16 +2363,30 @@
+ /* convert UTF-8 to local character set */
+ fn = utf8_to_local_string(G.unipath_filename,
+ G.unicode_escape_all);
+- /* make sure filename is short enough */
+- if (strlen(fn) >= FILNAMSIZ) {
+- fn[FILNAMSIZ - 1] = '\0';
++
++ /* 2022-07-22 SMS, et al. CVE-2022-0530
++ * Detect conversion failure, emit message.
++ * Continue with unconverted name.
++ */
++ if (fn == NULL)
++ {
+ Info(slide, 0x401, ((char *)slide,
+- LoadFarString(UFilenameTooLongTrunc)));
+- error = PK_WARN;
++ LoadFarString(UFilenameCorrupt)));
++ error = PK_ERR;
++ }
++ else
++ {
++ /* make sure filename is short enough */
++ if (strlen(fn) >= FILNAMSIZ) {
++ fn[FILNAMSIZ - 1] = '\0';
++ Info(slide, 0x401, ((char *)slide,
++ LoadFarString(UFilenameTooLongTrunc)));
++ error = PK_WARN;
++ }
++ /* replace filename with converted UTF-8 */
++ strcpy(G.filename, fn);
++ free(fn);
+ }
+- /* replace filename with converted UTF-8 */
+- strcpy(G.filename, fn);
+- free(fn);
+ }
+ # endif /* UNICODE_WCHAR */
+ if (G.unipath_filename != G.filename_full)
+--- a/process.c
++++ b/process.c
+@@ -222,6 +222,8 @@
+ "\nwarning: Unicode Path version > 1\n";
+ static ZCONST char Far UnicodeMismatchError[] =
+ "\nwarning: Unicode Path checksum invalid\n";
++ static ZCONST char Far UFilenameTooLongTrunc[] =
++ "warning: filename too long (P1) -- truncating.\n";
+ #endif
+
+
+@@ -1915,7 +1917,7 @@
+ Sets both local header and central header fields. Not terribly clever,
+ but it means that this procedure is only called in one place.
+
+- 2014-12-05 SMS.
++ 2014-12-05 SMS. (oCERT.org report.) CVE-2014-8141.
+ Added checks to ensure that enough data are available before calling
+ makeint64() or makelong(). Replaced various sizeof() values with
+ simple ("4" or "8") constants. (The Zip64 structures do not depend
+@@ -1947,9 +1949,10 @@
+ ef_len - EB_HEADSIZE));
+ break;
+ }
++
+ if (eb_id == EF_PKSZ64)
+ {
+- int offset = EB_HEADSIZE;
++ unsigned offset = EB_HEADSIZE;
+
+ if ((G.crec.ucsize == Z64FLGL) || (G.lrec.ucsize == Z64FLGL))
+ {
+@@ -2046,7 +2049,7 @@
+ }
+ if (eb_id == EF_UNIPATH) {
+
+- int offset = EB_HEADSIZE;
++ unsigned offset = EB_HEADSIZE;
+ ush ULen = eb_len - 5;
+ ulg chksum = CRCVAL_INITIAL;
+
+@@ -2504,16 +2507,17 @@
+ int state_dependent;
+ int wsize = 0;
+ int max_bytes = MB_CUR_MAX;
+- char buf[9];
++ char buf[ MB_CUR_MAX+ 1]; /* ("+1" not really needed?) */
+ char *buffer = NULL;
+ char *local_string = NULL;
++ size_t buffer_size; /* CVE-2022-0529 */
+
+ for (wsize = 0; wide_string[wsize]; wsize++) ;
+
+ if (max_bytes < MAX_ESCAPE_BYTES)
+ max_bytes = MAX_ESCAPE_BYTES;
+-
+- if ((buffer = (char *)malloc(wsize * max_bytes + 1)) == NULL) {
++ buffer_size = wsize * max_bytes + 1; /* Reused below. */
++ if ((buffer = (char *)malloc( buffer_size)) == NULL) {
+ return NULL;
+ }
+
+@@ -2551,8 +2555,28 @@
+ } else {
+ /* no MB for this wide */
+ /* use escape for wide character */
+- char *escape_string = wide_to_escape_string(wide_string[i]);
+- strcat(buffer, escape_string);
++ size_t buffer_len;
++ size_t escape_string_len;
++ char *escape_string;
++ int err_msg = 0;
++
++ escape_string = wide_to_escape_string(wide_string[i]);
++ buffer_len = strlen( buffer);
++ escape_string_len = strlen( escape_string);
++
++ /* Append escape string, as space allows. */
++ /* 2022-07-18 SMS, et al. CVE-2022-0529 */
++ if (escape_string_len > buffer_size- buffer_len- 1)
++ {
++ escape_string_len = buffer_size- buffer_len- 1;
++ if (err_msg == 0)
++ {
++ err_msg = 1;
++ Info(slide, 0x401, ((char *)slide,
++ LoadFarString( UFilenameTooLongTrunc)));
++ }
++ }
++ strncat( buffer, escape_string, escape_string_len);
+ free(escape_string);
+ }
+ }
+@@ -2604,9 +2628,18 @@
+ ZCONST char *utf8_string;
+ int escape_all;
+ {
+- zwchar *wide = utf8_to_wide_string(utf8_string);
+- char *loc = wide_to_local_string(wide, escape_all);
+- free(wide);
++ zwchar *wide;
++ char *loc = NULL;
++
++ wide = utf8_to_wide_string( utf8_string);
++
++ /* 2022-07-25 SMS, et al. CVE-2022-0530 */
++ if (wide != NULL)
++ {
++ loc = wide_to_local_string( wide, escape_all);
++ free( wide);
++ }
++
+ return loc;
+ }
+
diff --git a/main/unzip/large-symlinks.patch b/main/unzip/large-symlinks.patch
new file mode 100644
index 00000000000..842d258270c
--- /dev/null
+++ b/main/unzip/large-symlinks.patch
@@ -0,0 +1,38 @@
+From mboxrd@z Thu Jan 1 00:00:00 1970
+From: Andreas Schwab <schwab@linux-m68k.org>
+Subject: Re: "git archive" seems to be broken wrt zip files
+Date: Sun, 11 Sep 2011 15:14:36 +0200
+Jeff King <peff@peff.net> writes:
+
+> IOW, the zip file looks right. I wonder if this is actually a bug in
+> "unzip".
+
+It is. This only happens if you have more then 16k entries and when one
+of the 16k entry infos is reused it happend to be previously used for a
+symlink entry.
+
+Here's a patch for unzip60 for reference:
+
+--- a/process.c
++++ b/process.c
+@@ -1751,6 +1751,12 @@ int process_cdir_file_hdr(__G) /* ret
+ = (G.crec.general_purpose_bit_flag & (1 << 11)) == (1 << 11);
+ #endif
+
++#ifdef SYMLINKS
++ /* Initialize the symlink flag, may be set by the platform-specific
++ mapattr function. */
++ G.pInfo->symlink = 0;
++#endif
++
+ return PK_COOL;
+
+ } /* end function process_cdir_file_hdr() */
+
+Andreas.
+
+--
+Andreas Schwab, schwab@linux-m68k.org
+GPG Key fingerprint = 58CA 54C7 6D53 942B 1756 01D3 44D5 214B 8276 4ED5
+"And now for something completely different."
+
diff --git a/main/unzip/unzip-6.0-exec-shield.patch b/main/unzip/unzip-6.0-exec-shield.patch
new file mode 100644
index 00000000000..74500aa5d48
--- /dev/null
+++ b/main/unzip/unzip-6.0-exec-shield.patch
@@ -0,0 +1,10 @@
+diff -up unzip60/crc_i386.S.exec-shield unzip60/crc_i386.S
+--- unzip60/crc_i386.S.exec-shield 2007-01-07 06:02:58.000000000 +0100
++++ unzip60/crc_i386.S 2009-11-18 11:16:39.630389312 +0100
+@@ -302,3 +302,6 @@ _crc32: /* ulg c
+ #endif /* i386 || _i386 || _I386 || __i386 */
+
+ #endif /* !USE_ZLIB && !CRC_TABLE_ONLY */
++
++.section .note.GNU-stack, "", @progbits
++.previous
diff --git a/main/unzip/unzip-6.0-format-secure.patch b/main/unzip/unzip-6.0-format-secure.patch
new file mode 100644
index 00000000000..81cf8605531
--- /dev/null
+++ b/main/unzip/unzip-6.0-format-secure.patch
@@ -0,0 +1,90 @@
+diff --git a/extract.c b/extract.c
+index eeb2f57..a0a4929 100644
+--- a/extract.c
++++ b/extract.c
+@@ -472,8 +472,8 @@ int extract_or_test_files(__G) /* return PK-type error code */
+ */
+ Info(slide, 0x401, ((char *)slide,
+ LoadFarString(CentSigMsg), j + blknum*DIR_BLKSIZ + 1));
+- Info(slide, 0x401, ((char *)slide,
+- LoadFarString(ReportMsg)));
++ Info(slide, 0x401,
++ ((char *)slide,"%s", LoadFarString(ReportMsg)));
+ error_in_archive = PK_BADERR;
+ }
+ reached_end = TRUE; /* ...so no more left to do */
+@@ -752,8 +752,8 @@ int extract_or_test_files(__G) /* return PK-type error code */
+
+ #ifndef SFX
+ if (no_endsig_found) { /* just to make sure */
+- Info(slide, 0x401, ((char *)slide, LoadFarString(EndSigMsg)));
+- Info(slide, 0x401, ((char *)slide, LoadFarString(ReportMsg)));
++ Info(slide, 0x401, ((char *)slide,"%s", LoadFarString(EndSigMsg)));
++ Info(slide, 0x401, ((char *)slide,"%s", LoadFarString(ReportMsg)));
+ if (!error_in_archive) /* don't overwrite stronger error */
+ error_in_archive = PK_WARN;
+ }
+diff --git a/list.c b/list.c
+index 15e0011..f7359c3 100644
+--- a/list.c
++++ b/list.c
+@@ -181,7 +181,7 @@ int list_files(__G) /* return PK-type error code */
+ Info(slide, 0x401,
+ ((char *)slide, LoadFarString(CentSigMsg), j));
+ Info(slide, 0x401,
+- ((char *)slide, LoadFarString(ReportMsg)));
++ ((char *)slide,"%s", LoadFarString(ReportMsg)));
+ return PK_BADERR; /* sig not found */
+ }
+ }
+@@ -507,7 +507,8 @@ int list_files(__G) /* return PK-type error code */
+ && (!G.ecrec.is_zip64_archive)
+ && (memcmp(G.sig, end_central_sig, 4) != 0)
+ ) { /* just to make sure again */
+- Info(slide, 0x401, ((char *)slide, LoadFarString(EndSigMsg)));
++ Info(slide, 0x401,
++ ((char *)slide,"%s", LoadFarString(EndSigMsg)));
+ error_in_archive = PK_WARN; /* didn't find sig */
+ }
+
+@@ -591,7 +592,7 @@ int get_time_stamp(__G__ last_modtime, nmember) /* return PK-type error code */
+ Info(slide, 0x401,
+ ((char *)slide, LoadFarString(CentSigMsg), j));
+ Info(slide, 0x401,
+- ((char *)slide, LoadFarString(ReportMsg)));
++ ((char *)slide,"%s", LoadFarString(ReportMsg)));
+ return PK_BADERR; /* sig not found */
+ }
+ }
+@@ -674,7 +675,7 @@ int get_time_stamp(__G__ last_modtime, nmember) /* return PK-type error code */
+ ---------------------------------------------------------------------------*/
+
+ if (memcmp(G.sig, end_central_sig, 4)) { /* just to make sure again */
+- Info(slide, 0x401, ((char *)slide, LoadFarString(EndSigMsg)));
++ Info(slide, 0x401, ((char *)slide,"%s", LoadFarString(EndSigMsg)));
+ error_in_archive = PK_WARN;
+ }
+ if (*nmember == 0L && error_in_archive <= PK_WARN)
+diff --git a/zipinfo.c b/zipinfo.c
+index 6e22cc8..ac5c61b 100644
+--- a/zipinfo.c
++++ b/zipinfo.c
+@@ -771,7 +771,7 @@ int zipinfo(__G) /* return PK-type error code */
+ Info(slide, 0x401,
+ ((char *)slide, LoadFarString(CentSigMsg), j));
+ Info(slide, 0x401,
+- ((char *)slide, LoadFarString(ReportMsg)));
++ ((char *)slide,"%s", LoadFarString(ReportMsg)));
+ error_in_archive = PK_BADERR; /* sig not found */
+ break;
+ }
+@@ -960,7 +960,8 @@ int zipinfo(__G) /* return PK-type error code */
+ && (!G.ecrec.is_zip64_archive)
+ && (memcmp(G.sig, end_central_sig, 4) != 0)
+ ) { /* just to make sure again */
+- Info(slide, 0x401, ((char *)slide, LoadFarString(EndSigMsg)));
++ Info(slide, 0x401,
++ ((char *)slide,"%s", LoadFarString(EndSigMsg)));
+ error_in_archive = PK_WARN; /* didn't find sig */
+ }
+
diff --git a/main/unzip/unzip-6.0-timestamp.patch b/main/unzip/unzip-6.0-timestamp.patch
new file mode 100644
index 00000000000..2aa9424eb8c
--- /dev/null
+++ b/main/unzip/unzip-6.0-timestamp.patch
@@ -0,0 +1,41 @@
+From: "Steven M. Schweda" <sms@antinode.info>
+Subject: Do not ignore extra fields containing Unix Timestamps
+Bug-Debian: https://bugs.debian.org/842993
+X-Debian-version: 6.0-21
+
+--- a/process.c
++++ b/process.c
+@@ -2914,10 +2914,13 @@
+ break;
+
+ case EF_IZUNIX2:
+- if (have_new_type_eb == 0) {
+- flags &= ~0x0ff; /* ignore any previous IZUNIX field */
++ if (have_new_type_eb == 0) { /* (< 1) */
+ have_new_type_eb = 1;
+ }
++ if (have_new_type_eb <= 1) {
++ /* Ignore any prior (EF_IZUNIX/EF_PKUNIX) UID/GID. */
++ flags &= 0x0ff;
++ }
+ #ifdef IZ_HAVE_UXUIDGID
+ if (have_new_type_eb > 1)
+ break; /* IZUNIX3 overrides IZUNIX2 e.f. block ! */
+@@ -2933,6 +2936,8 @@
+ /* new 3rd generation Unix ef */
+ have_new_type_eb = 2;
+
++ /* Ignore any prior EF_IZUNIX/EF_PKUNIX/EF_IZUNIX2 UID/GID. */
++ flags &= 0x0ff;
+ /*
+ Version 1 byte version of this extra field, currently 1
+ UIDSize 1 byte Size of UID field
+@@ -2953,8 +2958,6 @@
+ uid_size = *((EB_HEADSIZE + 1) + ef_buf);
+ gid_size = *((EB_HEADSIZE + uid_size + 2) + ef_buf);
+
+- flags &= ~0x0ff; /* ignore any previous UNIX field */
+-
+ if ( read_ux3_value((EB_HEADSIZE + 2) + ef_buf,
+ uid_size, &z_uidgid[0])
+ &&
diff --git a/main/unzip/zipbomb-manpage.patch b/main/unzip/zipbomb-manpage.patch
new file mode 100644
index 00000000000..bcee827a0e2
--- /dev/null
+++ b/main/unzip/zipbomb-manpage.patch
@@ -0,0 +1,25 @@
+From 6fe72291a5563cdbcd2bdd87e36528537b7cdcfb Mon Sep 17 00:00:00 2001
+From: Jakub Martisko <jamartis@redhat.com>
+Date: Mon, 18 Nov 2019 14:17:46 +0100
+Subject: [PATCH] update the man page
+
+---
+ man/unzip.1 | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/man/unzip.1 b/man/unzip.1
+index 21816d1..4d66073 100644
+--- a/man/unzip.1
++++ b/man/unzip.1
+@@ -850,6 +850,8 @@ the specified zipfiles were not found.
+ invalid options were specified on the command line.
+ .IP 11
+ no matching files were found.
++.IP 12
++invalid zip file with overlapped components (possible zip-bomb). The zip-bomb checks can be disabled by using the UNZIP_DISABLE_ZIPBOMB_DETECTION=TRUE environment variable.
+ .IP 50
+ the disk is (or was) full during extraction.
+ .IP 51
+--
+2.23.0
+
diff --git a/main/unzip/zipbomb-part1.patch b/main/unzip/zipbomb-part1.patch
new file mode 100644
index 00000000000..35cf8565229
--- /dev/null
+++ b/main/unzip/zipbomb-part1.patch
@@ -0,0 +1,25 @@
+From 41beb477c5744bc396fa1162ee0c14218ec12213 Mon Sep 17 00:00:00 2001
+From: Mark Adler <madler@alumni.caltech.edu>
+Date: Mon, 27 May 2019 08:20:32 -0700
+Subject: [PATCH] Fix bug in undefer_input() that misplaced the input state.
+
+---
+ fileio.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/fileio.c b/fileio.c
+index c042987..bc00d74 100644
+--- a/fileio.c
++++ b/fileio.c
+@@ -530,8 +530,10 @@ void undefer_input(__G)
+ * This condition was checked when G.incnt_leftover was set > 0 in
+ * defer_leftover_input(), and it is NOT allowed to touch G.csize
+ * before calling undefer_input() when (G.incnt_leftover > 0)
+- * (single exception: see read_byte()'s "G.csize <= 0" handling) !!
++ * (single exception: see readbyte()'s "G.csize <= 0" handling) !!
+ */
++ if (G.csize < 0L)
++ G.csize = 0L;
+ G.incnt = G.incnt_leftover + (int)G.csize;
+ G.inptr = G.inptr_leftover - (int)G.csize;
+ G.incnt_leftover = 0;
diff --git a/main/unzip/CVE-2019-13232.patch b/main/unzip/zipbomb-part2.patch
index 01e343a356f..903c8457636 100644
--- a/main/unzip/CVE-2019-13232.patch
+++ b/main/unzip/zipbomb-part2.patch
@@ -347,141 +347,3 @@ index 5b2a326..ed24a5b 100644
#define PK_DISK 50 /* disk full */
#define PK_EOF 51 /* unexpected EOF */
-From 6d351831be705cc26d897db44f878a978f4138fc Mon Sep 17 00:00:00 2001
-From: Mark Adler <madler@alumni.caltech.edu>
-Date: Thu, 25 Jul 2019 20:43:17 -0700
-Subject: [PATCH] Do not raise a zip bomb alert for a misplaced central
- directory.
-
-There is a zip-like file in the Firefox distribution, omni.ja,
-which is a zip container with the central directory placed at the
-start of the file instead of after the local entries as required
-by the zip standard. This commit marks the actual location of the
-central directory, as well as the end of central directory records,
-as disallowed locations. This now permits such containers to not
-raise a zip bomb alert, where in fact there are no overlaps.
----
- extract.c | 25 +++++++++++++++++++------
- process.c | 6 ++++++
- unzpriv.h | 10 ++++++++++
- 3 files changed, 35 insertions(+), 6 deletions(-)
-
-diff --git a/extract.c b/extract.c
-index 0973a33..1b73cb0 100644
---- a/extract.c
-+++ b/extract.c
-@@ -493,8 +493,11 @@ int extract_or_test_files(__G) /* return PK-type error code */
- }
- #endif /* !SFX || SFX_EXDIR */
-
-- /* One more: initialize cover structure for bomb detection. Start with a
-- span that covers the central directory though the end of the file. */
-+ /* One more: initialize cover structure for bomb detection. Start with
-+ spans that cover any extra bytes at the start, the central directory,
-+ the end of central directory record (including the Zip64 end of central
-+ directory locator, if present), and the Zip64 end of central directory
-+ record, if present. */
- if (G.cover == NULL) {
- G.cover = malloc(sizeof(cover_t));
- if (G.cover == NULL) {
-@@ -506,15 +509,25 @@ int extract_or_test_files(__G) /* return PK-type error code */
- ((cover_t *)G.cover)->max = 0;
- }
- ((cover_t *)G.cover)->num = 0;
-- if ((G.extra_bytes != 0 &&
-- cover_add((cover_t *)G.cover, 0, G.extra_bytes) != 0) ||
-- cover_add((cover_t *)G.cover,
-+ if (cover_add((cover_t *)G.cover,
- G.extra_bytes + G.ecrec.offset_start_central_directory,
-- G.ziplen) != 0) {
-+ G.extra_bytes + G.ecrec.offset_start_central_directory +
-+ G.ecrec.size_central_directory) != 0) {
- Info(slide, 0x401, ((char *)slide,
- LoadFarString(NotEnoughMemCover)));
- return PK_MEM;
- }
-+ if ((G.extra_bytes != 0 &&
-+ cover_add((cover_t *)G.cover, 0, G.extra_bytes) != 0) ||
-+ (G.ecrec.have_ecr64 &&
-+ cover_add((cover_t *)G.cover, G.ecrec.ec64_start,
-+ G.ecrec.ec64_end) != 0) ||
-+ cover_add((cover_t *)G.cover, G.ecrec.ec_start,
-+ G.ecrec.ec_end) != 0) {
-+ Info(slide, 0x401, ((char *)slide,
-+ LoadFarString(OverlappedComponents)));
-+ return PK_BOMB;
-+ }
-
- /*---------------------------------------------------------------------------
- The basic idea of this function is as follows. Since the central di-
-diff --git a/process.c b/process.c
-index d2e4dc3..d75d405 100644
---- a/process.c
-+++ b/process.c
-@@ -1408,6 +1408,10 @@ static int find_ecrec64(__G__ searchlen) /* return PK-class error */
-
- /* Now, we are (almost) sure that we have a Zip64 archive. */
- G.ecrec.have_ecr64 = 1;
-+ G.ecrec.ec_start -= ECLOC64_SIZE+4;
-+ G.ecrec.ec64_start = ecrec64_start_offset;
-+ G.ecrec.ec64_end = ecrec64_start_offset +
-+ 12 + makeint64(&byterec[ECREC64_LENGTH]);
-
- /* Update the "end-of-central-dir offset" for later checks. */
- G.real_ecrec_offset = ecrec64_start_offset;
-@@ -1542,6 +1546,8 @@ static int find_ecrec(__G__ searchlen) /* return PK-class error */
- makelong(&byterec[OFFSET_START_CENTRAL_DIRECTORY]);
- G.ecrec.zipfile_comment_length =
- makeword(&byterec[ZIPFILE_COMMENT_LENGTH]);
-+ G.ecrec.ec_start = G.real_ecrec_offset;
-+ G.ecrec.ec_end = G.ecrec.ec_start + 22 + G.ecrec.zipfile_comment_length;
-
- /* Now, we have to read the archive comment, BEFORE the file pointer
- is moved away backwards to seek for a Zip64 ECLOC64 structure.
-diff --git a/unzpriv.h b/unzpriv.h
-index dc9eff5..297b3c7 100644
---- a/unzpriv.h
-+++ b/unzpriv.h
-@@ -2185,6 +2185,16 @@ typedef struct VMStimbuf {
- int have_ecr64; /* valid Zip64 ecdir-record exists */
- int is_zip64_archive; /* Zip64 ecdir-record is mandatory */
- ush zipfile_comment_length;
-+ zusz_t ec_start, ec_end; /* offsets of start and end of the
-+ end of central directory record,
-+ including if present the Zip64
-+ end of central directory locator,
-+ which immediately precedes the
-+ end of central directory record */
-+ zusz_t ec64_start, ec64_end; /* if have_ecr64 is true, then these
-+ are the offsets of the start and
-+ end of the Zip64 end of central
-+ directory record */
- } ecdir_rec;
-
-
-From 41beb477c5744bc396fa1162ee0c14218ec12213 Mon Sep 17 00:00:00 2001
-From: Mark Adler <madler@alumni.caltech.edu>
-Date: Mon, 27 May 2019 08:20:32 -0700
-Subject: [PATCH] Fix bug in undefer_input() that misplaced the input state.
-
----
- fileio.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/fileio.c b/fileio.c
-index c042987..bc00d74 100644
---- a/fileio.c
-+++ b/fileio.c
-@@ -530,8 +530,10 @@ void undefer_input(__G)
- * This condition was checked when G.incnt_leftover was set > 0 in
- * defer_leftover_input(), and it is NOT allowed to touch G.csize
- * before calling undefer_input() when (G.incnt_leftover > 0)
-- * (single exception: see read_byte()'s "G.csize <= 0" handling) !!
-+ * (single exception: see readbyte()'s "G.csize <= 0" handling) !!
- */
-+ if (G.csize < 0L)
-+ G.csize = 0L;
- G.incnt = G.incnt_leftover + (int)G.csize;
- G.inptr = G.inptr_leftover - (int)G.csize;
- G.incnt_leftover = 0;
-
diff --git a/main/unzip/zipbomb-part3.patch b/main/unzip/zipbomb-part3.patch
new file mode 100644
index 00000000000..3b8d67b7732
--- /dev/null
+++ b/main/unzip/zipbomb-part3.patch
@@ -0,0 +1,112 @@
+From 6d351831be705cc26d897db44f878a978f4138fc Mon Sep 17 00:00:00 2001
+From: Mark Adler <madler@alumni.caltech.edu>
+Date: Thu, 25 Jul 2019 20:43:17 -0700
+Subject: [PATCH] Do not raise a zip bomb alert for a misplaced central
+ directory.
+
+There is a zip-like file in the Firefox distribution, omni.ja,
+which is a zip container with the central directory placed at the
+start of the file instead of after the local entries as required
+by the zip standard. This commit marks the actual location of the
+central directory, as well as the end of central directory records,
+as disallowed locations. This now permits such containers to not
+raise a zip bomb alert, where in fact there are no overlaps.
+---
+ extract.c | 25 +++++++++++++++++++------
+ process.c | 6 ++++++
+ unzpriv.h | 10 ++++++++++
+ 3 files changed, 35 insertions(+), 6 deletions(-)
+
+diff --git a/extract.c b/extract.c
+index 0973a33..1b73cb0 100644
+--- a/extract.c
++++ b/extract.c
+@@ -493,8 +493,11 @@ int extract_or_test_files(__G) /* return PK-type error code */
+ }
+ #endif /* !SFX || SFX_EXDIR */
+
+- /* One more: initialize cover structure for bomb detection. Start with a
+- span that covers the central directory though the end of the file. */
++ /* One more: initialize cover structure for bomb detection. Start with
++ spans that cover any extra bytes at the start, the central directory,
++ the end of central directory record (including the Zip64 end of central
++ directory locator, if present), and the Zip64 end of central directory
++ record, if present. */
+ if (G.cover == NULL) {
+ G.cover = malloc(sizeof(cover_t));
+ if (G.cover == NULL) {
+@@ -506,15 +509,25 @@ int extract_or_test_files(__G) /* return PK-type error code */
+ ((cover_t *)G.cover)->max = 0;
+ }
+ ((cover_t *)G.cover)->num = 0;
+- if ((G.extra_bytes != 0 &&
+- cover_add((cover_t *)G.cover, 0, G.extra_bytes) != 0) ||
+- cover_add((cover_t *)G.cover,
++ if (cover_add((cover_t *)G.cover,
+ G.extra_bytes + G.ecrec.offset_start_central_directory,
+- G.ziplen) != 0) {
++ G.extra_bytes + G.ecrec.offset_start_central_directory +
++ G.ecrec.size_central_directory) != 0) {
+ Info(slide, 0x401, ((char *)slide,
+ LoadFarString(NotEnoughMemCover)));
+ return PK_MEM;
+ }
++ if ((G.extra_bytes != 0 &&
++ cover_add((cover_t *)G.cover, 0, G.extra_bytes) != 0) ||
++ (G.ecrec.have_ecr64 &&
++ cover_add((cover_t *)G.cover, G.ecrec.ec64_start,
++ G.ecrec.ec64_end) != 0) ||
++ cover_add((cover_t *)G.cover, G.ecrec.ec_start,
++ G.ecrec.ec_end) != 0) {
++ Info(slide, 0x401, ((char *)slide,
++ LoadFarString(OverlappedComponents)));
++ return PK_BOMB;
++ }
+
+ /*---------------------------------------------------------------------------
+ The basic idea of this function is as follows. Since the central di-
+diff --git a/process.c b/process.c
+index d2e4dc3..d75d405 100644
+--- a/process.c
++++ b/process.c
+@@ -1408,6 +1408,10 @@ static int find_ecrec64(__G__ searchlen) /* return PK-class error */
+
+ /* Now, we are (almost) sure that we have a Zip64 archive. */
+ G.ecrec.have_ecr64 = 1;
++ G.ecrec.ec_start -= ECLOC64_SIZE+4;
++ G.ecrec.ec64_start = ecrec64_start_offset;
++ G.ecrec.ec64_end = ecrec64_start_offset +
++ 12 + makeint64(&byterec[ECREC64_LENGTH]);
+
+ /* Update the "end-of-central-dir offset" for later checks. */
+ G.real_ecrec_offset = ecrec64_start_offset;
+@@ -1542,6 +1546,8 @@ static int find_ecrec(__G__ searchlen) /* return PK-class error */
+ makelong(&byterec[OFFSET_START_CENTRAL_DIRECTORY]);
+ G.ecrec.zipfile_comment_length =
+ makeword(&byterec[ZIPFILE_COMMENT_LENGTH]);
++ G.ecrec.ec_start = G.real_ecrec_offset;
++ G.ecrec.ec_end = G.ecrec.ec_start + 22 + G.ecrec.zipfile_comment_length;
+
+ /* Now, we have to read the archive comment, BEFORE the file pointer
+ is moved away backwards to seek for a Zip64 ECLOC64 structure.
+diff --git a/unzpriv.h b/unzpriv.h
+index dc9eff5..297b3c7 100644
+--- a/unzpriv.h
++++ b/unzpriv.h
+@@ -2185,6 +2185,16 @@ typedef struct VMStimbuf {
+ int have_ecr64; /* valid Zip64 ecdir-record exists */
+ int is_zip64_archive; /* Zip64 ecdir-record is mandatory */
+ ush zipfile_comment_length;
++ zusz_t ec_start, ec_end; /* offsets of start and end of the
++ end of central directory record,
++ including if present the Zip64
++ end of central directory locator,
++ which immediately precedes the
++ end of central directory record */
++ zusz_t ec64_start, ec64_end; /* if have_ecr64 is true, then these
++ are the offsets of the start and
++ end of the Zip64 end of central
++ directory record */
+ } ecdir_rec;
+
+
diff --git a/main/unzip/zipbomb-part4.patch b/main/unzip/zipbomb-part4.patch
new file mode 100644
index 00000000000..beffa2c9987
--- /dev/null
+++ b/main/unzip/zipbomb-part4.patch
@@ -0,0 +1,25 @@
+From 5e2efcd633a4a1fb95a129a75508e7d769e767be Mon Sep 17 00:00:00 2001
+From: Mark Adler <madler@alumni.caltech.edu>
+Date: Sun, 9 Feb 2020 20:36:28 -0800
+Subject: [PATCH] Fix bug in UZbunzip2() that incorrectly updated G.incnt.
+
+The update assumed a full buffer, which is not always full. This
+could result in a false overlapped element detection when a small
+bzip2-compressed file was unzipped. This commit remedies that.
+---
+ extract.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/extract.c b/extract.c
+index d9866f9..0cb7bfc 100644
+--- a/extract.c
++++ b/extract.c
+@@ -3010,7 +3010,7 @@ __GDEF
+ #endif
+
+ G.inptr = (uch *)bstrm.next_in;
+- G.incnt = (G.inbuf + INBUFSIZ) - G.inptr; /* reset for other routines */
++ G.incnt -= G.inptr - G.inbuf; /* reset for other routines */
+
+ uzbunzip_cleanup_exit:
+ err = BZ2_bzDecompressEnd(&bstrm);
diff --git a/main/unzip/zipbomb-part5.patch b/main/unzip/zipbomb-part5.patch
new file mode 100644
index 00000000000..ca6a43a7c5b
--- /dev/null
+++ b/main/unzip/zipbomb-part5.patch
@@ -0,0 +1,26 @@
+From 5c572555cf5d80309a07c30cf7a54b2501493720 Mon Sep 17 00:00:00 2001
+From: Mark Adler <madler@alumni.caltech.edu>
+Date: Sun, 9 Feb 2020 21:39:09 -0800
+Subject: [PATCH] Fix bug in UZinflate() that incorrectly updated G.incnt.
+
+The update assumed a full buffer, which is not always full. This
+could result in a false overlapped element detection when a small
+deflate-compressed file was unzipped using an old zlib. This
+commit remedies that.
+---
+ inflate.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/inflate.c b/inflate.c
+index 2f5a015..70e3cc0 100644
+--- a/inflate.c
++++ b/inflate.c
+@@ -700,7 +700,7 @@ int UZinflate(__G__ is_defl64)
+ G.dstrm.total_out));
+
+ G.inptr = (uch *)G.dstrm.next_in;
+- G.incnt = (G.inbuf + INBUFSIZ) - G.inptr; /* reset for other routines */
++ G.incnt -= G.inptr - G.inbuf; /* reset for other routines */
+
+ uzinflate_cleanup_exit:
+ err = inflateReset(&G.dstrm);
diff --git a/main/unzip/zipbomb-part6.patch b/main/unzip/zipbomb-part6.patch
new file mode 100644
index 00000000000..3dce6e3421e
--- /dev/null
+++ b/main/unzip/zipbomb-part6.patch
@@ -0,0 +1,95 @@
+From 122050bac16fae82a460ff739fb1ca0f106e9d85 Mon Sep 17 00:00:00 2001
+From: Mark Adler <madler@alumni.caltech.edu>
+Date: Sat, 2 Jan 2021 13:09:34 -0800
+Subject: [PATCH] Determine Zip64 status entry-by-entry instead of for entire
+ file.
+
+Fixes a bug for zip files with mixed Zip64 and not Zip64 entries,
+which resulted in an incorrect data descriptor length. The bug is
+seen when a Zip64 entry precedes a non-Zip64 entry, in which case
+the data descriptor would have been assumed to be larger than it
+is, resulting in an incorrect bomb warning due to a perceived
+overlap with the next entry. This commit determines and saves the
+Zip64 status for each entry based on the central directory, and
+then computes the length of each data descriptor accordingly.
+---
+ extract.c | 5 +++--
+ globals.h | 2 --
+ process.c | 4 +---
+ unzpriv.h | 1 +
+ 4 files changed, 5 insertions(+), 7 deletions(-)
+
+diff --git a/extract.c b/extract.c
+index 504afd6..878817d 100644
+--- a/extract.c
++++ b/extract.c
+@@ -658,6 +658,7 @@ int extract_or_test_files(__G) /* return PK-type error code */
+ break;
+ }
+ }
++ G.pInfo->zip64 = FALSE;
+ if ((error = do_string(__G__ G.crec.extra_field_length,
+ EXTRA_FIELD)) != 0)
+ {
+@@ -2187,12 +2188,12 @@ static int extract_or_test_member(__G) /* return PK-type error code */
+ (clen == SIG && /* if not SIG, no signature */
+ ((G.lrec.csize & LOW) != SIG || /* if not SIG, have signature */
+ (ulen == SIG && /* if not SIG, no signature */
+- (G.zip64 ? G.lrec.csize >> 32 : G.lrec.ucsize) != SIG
++ (G.pInfo->zip64 ? G.lrec.csize >> 32 : G.lrec.ucsize) != SIG
+ /* if not SIG, have signature */
+ )))))
+ /* skip four more bytes to account for signature */
+ shy += 4 - readbuf((char *)buf, 4);
+- if (G.zip64)
++ if (G.pInfo->zip64)
+ shy += 8 - readbuf((char *)buf, 8); /* skip eight more for ZIP64 */
+ if (shy)
+ error = PK_ERR;
+diff --git a/globals.h b/globals.h
+index f9c6daf..a883c90 100644
+--- a/globals.h
++++ b/globals.h
+@@ -261,8 +261,6 @@ typedef struct Globals {
+ ecdir_rec ecrec; /* used in unzip.c, extract.c */
+ z_stat statbuf; /* used by main, mapname, check_for_newer */
+
+- int zip64; /* true if Zip64 info in extra field */
+-
+ int mem_mode;
+ uch *outbufptr; /* extract.c static */
+ ulg outsize; /* extract.c static */
+diff --git a/process.c b/process.c
+index d75d405..d643c6f 100644
+--- a/process.c
++++ b/process.c
+@@ -1903,8 +1903,6 @@ int getZip64Data(__G__ ef_buf, ef_len)
+ #define Z64FLGS 0xffff
+ #define Z64FLGL 0xffffffff
+
+- G.zip64 = FALSE;
+-
+ if (ef_len == 0 || ef_buf == NULL)
+ return PK_COOL;
+
+@@ -1943,7 +1941,7 @@ int getZip64Data(__G__ ef_buf, ef_len)
+ break; /* Expect only one EF_PKSZ64 block. */
+ #endif /* 0 */
+
+- G.zip64 = TRUE;
++ G.pInfo->zip64 = TRUE;
+ }
+
+ /* Skip this extra field block. */
+diff --git a/unzpriv.h b/unzpriv.h
+index 09f288e..75b3359 100644
+--- a/unzpriv.h
++++ b/unzpriv.h
+@@ -2034,6 +2034,7 @@ typedef struct min_info {
+ #ifdef UNICODE_SUPPORT
+ unsigned GPFIsUTF8: 1; /* crec gen_purpose_flag UTF-8 bit 11 is set */
+ #endif
++ unsigned zip64: 1; /* true if entry has Zip64 extra block */
+ #ifndef SFX
+ char Far *cfilname; /* central header version of filename */
+ #endif
diff --git a/main/unzip/zipbomb-switch.patch b/main/unzip/zipbomb-switch.patch
new file mode 100644
index 00000000000..c6d33c026b9
--- /dev/null
+++ b/main/unzip/zipbomb-switch.patch
@@ -0,0 +1,215 @@
+From 5b44c818b96193b3e240f38f61985fa2bc780eb7 Mon Sep 17 00:00:00 2001
+From: Jakub Martisko <jamartis@redhat.com>
+Date: Tue, 30 Nov 2021 15:42:17 +0100
+Subject: [PATCH] Add an option to disable the zipbomb detection
+
+This can be done by settting a newly introduced environment variable
+UNZIP_DISABLE_ZIPBOMB_DETECTION to {TRUE,True,true}. If the variable is unset, or
+set to any other value the zipbomb detection is left enabled.
+
+Example:
+ UNZIP_DISABLE_ZIPBOMB_DETECTION=True unzip ./zbsm.zip -d ./test
+---
+ extract.c | 85 ++++++++++++++++++++++++++++++-------------------------
+ unzip.c | 15 ++++++++--
+ unzip.h | 1 +
+ 3 files changed, 60 insertions(+), 41 deletions(-)
+
+diff --git a/extract.c b/extract.c
+index 878817d..3e58071 100644
+--- a/extract.c
++++ b/extract.c
+@@ -322,7 +322,8 @@ static ZCONST char Far BadExtraFieldCRC[] =
+ static ZCONST char Far NotEnoughMemCover[] =
+ "error: not enough memory for bomb detection\n";
+ static ZCONST char Far OverlappedComponents[] =
+- "error: invalid zip file with overlapped components (possible zip bomb)\n";
++ "error: invalid zip file with overlapped components (possible zip bomb)\n \
++To unzip the file anyway, rerun the command with UNZIP_DISABLE_ZIPBOMB_DETECTION=TRUE environmnent variable\n";
+
+
+
+@@ -502,35 +503,37 @@ int extract_or_test_files(__G) /* return PK-type error code */
+ the end of central directory record (including the Zip64 end of central
+ directory locator, if present), and the Zip64 end of central directory
+ record, if present. */
+- if (G.cover == NULL) {
++ if (uO.zipbomb == TRUE) {
++ if (G.cover == NULL) {
+ G.cover = malloc(sizeof(cover_t));
+ if (G.cover == NULL) {
+- Info(slide, 0x401, ((char *)slide,
+- LoadFarString(NotEnoughMemCover)));
+- return PK_MEM;
++ Info(slide, 0x401, ((char *)slide,
++ LoadFarString(NotEnoughMemCover)));
++ return PK_MEM;
+ }
+ ((cover_t *)G.cover)->span = NULL;
+ ((cover_t *)G.cover)->max = 0;
+- }
+- ((cover_t *)G.cover)->num = 0;
+- if (cover_add((cover_t *)G.cover,
+- G.extra_bytes + G.ecrec.offset_start_central_directory,
+- G.extra_bytes + G.ecrec.offset_start_central_directory +
+- G.ecrec.size_central_directory) != 0) {
++ }
++ ((cover_t *)G.cover)->num = 0;
++ if (cover_add((cover_t *)G.cover,
++ G.extra_bytes + G.ecrec.offset_start_central_directory,
++ G.extra_bytes + G.ecrec.offset_start_central_directory +
++ G.ecrec.size_central_directory) != 0) {
+ Info(slide, 0x401, ((char *)slide,
+- LoadFarString(NotEnoughMemCover)));
++ LoadFarString(NotEnoughMemCover)));
+ return PK_MEM;
+- }
+- if ((G.extra_bytes != 0 &&
+- cover_add((cover_t *)G.cover, 0, G.extra_bytes) != 0) ||
+- (G.ecrec.have_ecr64 &&
+- cover_add((cover_t *)G.cover, G.ecrec.ec64_start,
+- G.ecrec.ec64_end) != 0) ||
+- cover_add((cover_t *)G.cover, G.ecrec.ec_start,
+- G.ecrec.ec_end) != 0) {
++ }
++ if ((G.extra_bytes != 0 &&
++ cover_add((cover_t *)G.cover, 0, G.extra_bytes) != 0) ||
++ (G.ecrec.have_ecr64 &&
++ cover_add((cover_t *)G.cover, G.ecrec.ec64_start,
++ G.ecrec.ec64_end) != 0) ||
++ cover_add((cover_t *)G.cover, G.ecrec.ec_start,
++ G.ecrec.ec_end) != 0) {
+ Info(slide, 0x401, ((char *)slide,
+- LoadFarString(OverlappedComponents)));
++ LoadFarString(OverlappedComponents)));
+ return PK_BOMB;
++ }
+ }
+
+ /*---------------------------------------------------------------------------
+@@ -1222,10 +1225,12 @@ static int extract_or_test_entrylist(__G__ numchunk,
+
+ /* seek_zipf(__G__ pInfo->offset); */
+ request = G.pInfo->offset + G.extra_bytes;
+- if (cover_within((cover_t *)G.cover, request)) {
++ if (uO.zipbomb == TRUE) {
++ if (cover_within((cover_t *)G.cover, request)) {
+ Info(slide, 0x401, ((char *)slide,
+- LoadFarString(OverlappedComponents)));
++ LoadFarString(OverlappedComponents)));
+ return PK_BOMB;
++ }
+ }
+ inbuf_offset = request % INBUFSIZ;
+ bufstart = request - inbuf_offset;
+@@ -1758,17 +1763,19 @@ reprompt:
+ return IZ_CTRLC; /* cancel operation by user request */
+ }
+ #endif
+- error = cover_add((cover_t *)G.cover, request,
+- G.cur_zipfile_bufstart + (G.inptr - G.inbuf));
+- if (error < 0) {
++ if (uO.zipbomb == TRUE) {
++ error = cover_add((cover_t *)G.cover, request,
++ G.cur_zipfile_bufstart + (G.inptr - G.inbuf));
++ if (error < 0) {
+ Info(slide, 0x401, ((char *)slide,
+- LoadFarString(NotEnoughMemCover)));
++ LoadFarString(NotEnoughMemCover)));
+ return PK_MEM;
+- }
+- if (error != 0) {
++ }
++ if (error != 0) {
+ Info(slide, 0x401, ((char *)slide,
+- LoadFarString(OverlappedComponents)));
++ LoadFarString(OverlappedComponents)));
+ return PK_BOMB;
++ }
+ }
+ #ifdef MACOS /* MacOS is no preemptive OS, thus call event-handling by hand */
+ UserStop();
+@@ -2171,8 +2178,8 @@ static int extract_or_test_member(__G) /* return PK-type error code */
+ }
+
+ undefer_input(__G);
+-
+- if ((G.lrec.general_purpose_bit_flag & 8) != 0) {
++ if (uO.zipbomb == TRUE) {
++ if ((G.lrec.general_purpose_bit_flag & 8) != 0) {
+ /* skip over data descriptor (harder than it sounds, due to signature
+ * ambiguity)
+ */
+@@ -2189,16 +2196,16 @@ static int extract_or_test_member(__G) /* return PK-type error code */
+ ((G.lrec.csize & LOW) != SIG || /* if not SIG, have signature */
+ (ulen == SIG && /* if not SIG, no signature */
+ (G.pInfo->zip64 ? G.lrec.csize >> 32 : G.lrec.ucsize) != SIG
+- /* if not SIG, have signature */
++ /* if not SIG, have signature */
+ )))))
+- /* skip four more bytes to account for signature */
+- shy += 4 - readbuf((char *)buf, 4);
++ /* skip four more bytes to account for signature */
++ shy += 4 - readbuf((char *)buf, 4);
+ if (G.pInfo->zip64)
+- shy += 8 - readbuf((char *)buf, 8); /* skip eight more for ZIP64 */
++ shy += 8 - readbuf((char *)buf, 8); /* skip eight more for ZIP64 */
+ if (shy)
+- error = PK_ERR;
++ error = PK_ERR;
++ }
+ }
+-
+ return error;
+
+ } /* end function extract_or_test_member() */
+diff --git a/unzip.c b/unzip.c
+index 8dbfc95..abb3644 100644
+--- a/unzip.c
++++ b/unzip.c
+@@ -1329,10 +1329,9 @@ int uz_opts(__G__ pargc, pargv)
+ int *pargc;
+ char ***pargv;
+ {
+- char **argv, *s;
++ char **argv, *s, *zipbomb_envar;
+ int argc, c, error=FALSE, negative=0, showhelp=0;
+
+-
+ argc = *pargc;
+ argv = *pargv;
+
+@@ -1923,6 +1922,18 @@ opts_done: /* yes, very ugly...but only used by UnZipSFX with -x xlist */
+ else
+ G.extract_flag = TRUE;
+
++ /* Disable the zipbomb detection, this is the only option set only via the shell variables but it should at least not clash with something in the future. */
++ zipbomb_envar = getenv("UNZIP_DISABLE_ZIPBOMB_DETECTION");
++ uO.zipbomb = TRUE;
++ if (zipbomb_envar != NULL) {
++ /* strcasecmp might be a better approach here but it is POSIX-only */
++ if ((strcmp ("TRUE", zipbomb_envar) == 0)
++ || (strcmp ("True", zipbomb_envar) == 0)
++ || (strcmp ("true",zipbomb_envar) == 0)) {
++ uO.zipbomb = FALSE;
++ }
++ }
++
+ *pargc = argc;
+ *pargv = argv;
+ return PK_OK;
+diff --git a/unzip.h b/unzip.h
+index ed24a5b..e7665e8 100644
+--- a/unzip.h
++++ b/unzip.h
+@@ -559,6 +559,7 @@ typedef struct _UzpOpts {
+ #ifdef UNIX
+ int cflxflag; /* -^: allow control chars in extracted filenames */
+ #endif
++ int zipbomb;
+ #endif /* !FUNZIP */
+ } UzpOpts;
+
+--
+2.33.0
+
diff --git a/main/usb-modeswitch/APKBUILD b/main/usb-modeswitch/APKBUILD
index f845eda9786..1390c54e5f0 100644
--- a/main/usb-modeswitch/APKBUILD
+++ b/main/usb-modeswitch/APKBUILD
@@ -1,17 +1,17 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=usb-modeswitch
pkgver=2.6.1
-pkgrel=0
+pkgrel=3
_pkgdata=20191128
pkgdesc="A mode switching tool for controlling flip flop (multiple device) USB gear"
-url="http://www.draisberghof.de/usb_modeswitch/"
+url="https://www.draisberghof.de/usb_modeswitch/"
arch="all"
license="GPL-2.0-or-later"
-makedepends="libusb-compat-dev coreutils"
+makedepends="libusb-dev coreutils"
subpackages="$pkgname-doc $pkgname-udev::noarch"
options="!check" # no testsuite
-source="http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-$pkgver.tar.bz2
- http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-$_pkgdata.tar.bz2
+source="https://www.draisberghof.de/usb_modeswitch/usb-modeswitch-$pkgver.tar.bz2
+ https://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-$_pkgdata.tar.bz2
usb_modeswitch.setup"
prepare() {
@@ -48,6 +48,8 @@ udev() {
"$subpkgdir"/usr/sbin/
}
-sha512sums="5d800b45257ca1182a13155dc37b614ee2d93273ed226cc9d05b6ae423f9e88b7c9aca6829604bdb86f68707ddf2c51c9ad2bcf898b8261b2c5bb56a21351e1e usb-modeswitch-2.6.1.tar.bz2
+sha512sums="
+5d800b45257ca1182a13155dc37b614ee2d93273ed226cc9d05b6ae423f9e88b7c9aca6829604bdb86f68707ddf2c51c9ad2bcf898b8261b2c5bb56a21351e1e usb-modeswitch-2.6.1.tar.bz2
4b5954ad83f7281e42321c16f5cc5b956923cc0e2db5f238cc64b3ea37a419768f01f2e26310f2b4fe9a9a5b1d901517933effd6e6edd23bc9b8d0c039ed0ba2 usb-modeswitch-data-20191128.tar.bz2
-48bc921849c529059c35f00e9cb10e92fee32622d63291bbd7184039bbe4c4324591b4011b24cf9b6c4ed2a7ad90fe0d5287a58631de5114b36f70d4f6f3c250 usb_modeswitch.setup"
+48bc921849c529059c35f00e9cb10e92fee32622d63291bbd7184039bbe4c4324591b4011b24cf9b6c4ed2a7ad90fe0d5287a58631de5114b36f70d4f6f3c250 usb_modeswitch.setup
+"
diff --git a/main/usbutils/APKBUILD b/main/usbutils/APKBUILD
index 1d7e498d741..84a6d451537 100644
--- a/main/usbutils/APKBUILD
+++ b/main/usbutils/APKBUILD
@@ -1,17 +1,23 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=usbutils
-pkgver=014
-pkgrel=0
+pkgver=017
+pkgrel=1
pkgdesc="USB Device Utilities"
-url="http://linux-usb.sourceforge.net/"
+url="https://linux-usb.sourceforge.net/"
arch="all"
license="GPL-2.0-or-later"
-subpackages="$pkgname-doc"
-depends="hwids-usb"
+subpackages="$pkgname-doc $pkgname-dev"
+depends="hwdata-usb"
makedepends="libusb-dev eudev-dev autoconf automake bash libtool linux-headers"
-source="https://www.kernel.org/pub/linux/utils/usb/usbutils/usbutils-$pkgver.tar.xz
+source="$pkgname-$pkgver.tar.gz::https://github.com/gregkh/usbutils/archive/refs/tags/v$pkgver.tar.gz
hwdata.patch
"
+
+prepare() {
+ default_prepare
+ ./autogen.sh
+}
+
build() {
./configure \
--build=$CBUILD \
@@ -32,6 +38,6 @@ package() {
}
sha512sums="
-43c9f6ed14f8d01e014ef39a5d50b3b09031c6bda8261e0945b4cb4287c9107104175b386c2adc61dc7f9f476afb30f9a647a6ece6dee26b4133a4f10af72792 usbutils-014.tar.xz
-a4528968287aca8ce752c133e4bae4d7f0253f4d5bcd2a0e66186ca5a81a237e2f088bd9a4cd595be8b08c6a1ab27ca88b92aac7ff9c3d36176dca9a2b7b44fe hwdata.patch
+46fbeaa7459cc6a34cc4f1c6b124ea138636c756956bde66ed291e693ebbd9520cd4d4851c94bb0b1a3a1164f550a67f618fba1070bbbbdd55b6968191ebae91 usbutils-017.tar.gz
+2d93f40bec3c9bd5a810b11449fbc1e8a7edbcd8bf4ca4ea8fd320eca81f31f0d8be1e886e0711fe18104d31c99f04aeb1e73970df3a2e40bfd50c17738c5b9d hwdata.patch
"
diff --git a/main/usbutils/hwdata.patch b/main/usbutils/hwdata.patch
index 8a3bfbdd173..13fa2f8b8f5 100644
--- a/main/usbutils/hwdata.patch
+++ b/main/usbutils/hwdata.patch
@@ -9,12 +9,12 @@
vid = 0
did = 0
modes = myenum('Vendor', 'Class', 'Misc')
-@@ -463,7 +463,7 @@
+@@ -470,7 +470,7 @@
print(" -C, --no-color disable colors")
print(" -e, --endpoints display endpoint info")
print(" -f FILE, --usbids-path FILE")
- print(" override filename for /usr/share/usb.ids")
+ print(" override filename for /usr/share/hwdata/usb.ids")
+ print(" -w, --wakeup display power wakeup setting")
print()
print("Use lsusb.py -ciu to get a nice overview of your USB devices.")
-
diff --git a/main/userspace-rcu/APKBUILD b/main/userspace-rcu/APKBUILD
index 0f7b3280c61..1294d2a07c1 100644
--- a/main/userspace-rcu/APKBUILD
+++ b/main/userspace-rcu/APKBUILD
@@ -2,8 +2,8 @@
# Contributor: Fabian Affolter <fabian@affolter-engineering.ch>
# Maintainer: Fabian Affolter <fabian@affolter-engineering.ch>
pkgname=userspace-rcu
-pkgver=0.13.1
-pkgrel=0
+pkgver=0.14.0
+pkgrel=2
pkgdesc="Userspace RCU (read-copy-update) library"
url="https://liburcu.org/"
arch="all"
@@ -51,5 +51,5 @@ static() {
}
sha512sums="
-c86f2eb260cccb3cb6bd54ddbc0b46e60083fc99423e9403242ebed7f39a2a49c68af933ea6f373e2a9d4f9dc56f5befe030740891e28cf2fabe927a48ff8182 userspace-rcu-0.13.1.tar.bz2
+7297e51012f4c44ee27c0e18ed9d87bf24be34db68a5398394c1e683a045bb561cf74aa913398404c0ed5cb8011af728ea12947717fa5f27627e5ca78e63a40f userspace-rcu-0.14.0.tar.bz2
"
diff --git a/main/util-linux/0001-libblkid-Fix-segfault-when-blkid.conf-doesn-t-exist.patch b/main/util-linux/0001-libblkid-Fix-segfault-when-blkid.conf-doesn-t-exist.patch
new file mode 100644
index 00000000000..b1d83c05a6f
--- /dev/null
+++ b/main/util-linux/0001-libblkid-Fix-segfault-when-blkid.conf-doesn-t-exist.patch
@@ -0,0 +1,78 @@
+From 7e357241b413a01c37b0b4d064bc0a47e3259361 Mon Sep 17 00:00:00 2001
+From: Karel Zak <kzak@redhat.com>
+Date: Mon, 1 Apr 2024 12:14:50 +0200
+Subject: [PATCH] libblkid: Fix segfault when blkid.conf doesn't exist
+
+* Move 'line' and 'uevent' to the beginning of the LIBECONF code.
+* Remove unwanted space between function name and arguments.
+* Check for 'line' pointer before dereferencing.
+
+References: https://github.com/util-linux/util-linux/pull/2883
+Signed-off-by: Karel Zak <kzak@redhat.com>
+---
+ libblkid/src/config.c | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/libblkid/src/config.c b/libblkid/src/config.c
+index 7b8b04f92..66c1864f0 100644
+--- a/libblkid/src/config.c
++++ b/libblkid/src/config.c
+@@ -153,6 +153,8 @@ struct blkid_config *blkid_read_config(const char *filename)
+ #else /* !HAVE_LIBECONF */
+
+ static econf_file *file = NULL;
++ char *line = NULL;
++ bool uevent = false;
+ econf_err error;
+
+ if (filename) {
+@@ -187,7 +189,6 @@ struct blkid_config *blkid_read_config(const char *filename)
+ }
+ }
+
+- bool uevent = false;
+ if ((error = econf_getBoolValue(file, NULL, "SEND_UEVENT", &uevent))) {
+ if (error != ECONF_NOKEY) {
+ DBG(CONFIG, ul_debug("couldn't fetch SEND_UEVENT corrently: %s", econf_errString(error)));
+@@ -209,7 +210,6 @@ struct blkid_config *blkid_read_config(const char *filename)
+ }
+ }
+
+- char *line = NULL;
+ if ((error = econf_getStringValue(file, NULL, "EVALUATE", &line))) {
+ conf->nevals = 0;
+ if (error != ECONF_NOKEY) {
+@@ -219,7 +219,7 @@ struct blkid_config *blkid_read_config(const char *filename)
+ DBG(CONFIG, ul_debug("key CACHE_FILE not found, using built-in default "));
+ }
+ } else {
+- if (*line && parse_evaluate(conf, line) == -1)
++ if (line && *line && parse_evaluate(conf, line) == -1)
+ goto err;
+ }
+
+@@ -238,8 +238,8 @@ dflt:
+ if (f)
+ fclose(f);
+ #else
+- econf_free (file);
+- free (line);
++ econf_free(file);
++ free(line);
+ #endif
+ return conf;
+ err:
+@@ -248,8 +248,8 @@ err:
+ #ifndef HAVE_LIBECONF
+ fclose(f);
+ #else
+- econf_free (file);
+- free (line);
++ econf_free(file);
++ free(line);
+ #endif
+ return NULL;
+ }
+--
+2.44.0
+
diff --git a/main/util-linux/APKBUILD b/main/util-linux/APKBUILD
index 4c1c73d67f2..28b133102fd 100644
--- a/main/util-linux/APKBUILD
+++ b/main/util-linux/APKBUILD
@@ -2,26 +2,26 @@
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=util-linux
-pkgver=2.38
+pkgver=2.40
pkgrel=2
pkgdesc="Random collection of Linux utilities"
url="https://git.kernel.org/cgit/utils/util-linux/util-linux.git"
arch="all"
license="GPL-3.0-or-later AND GPL-2.0-or-later AND GPL-2.0-only AND
- LGPL-2.1-or-later AND BSD-3-Clause AND BSD-4-Clause-UC AND Public-Domain"
-makedepends_build="
- autoconf
- automake
- libtool
- "
+ GPL-1.0-only AND LGPL-2.1-or-later AND LGPL-1.0-only AND BSD-1-Clause AND
+ BSD-3-Clause AND BSD-4-Clause-UC AND MIT AND Public-Domain"
+checkdepends="findutils xz"
makedepends_host="
+ bash
libcap-ng-dev
linux-headers
ncurses-dev
+ sqlite-dev
zlib-dev
"
subpackages="
$pkgname-bash-completion
+ $pkgname-static
$pkgname-dev
$pkgname-openrc
@@ -44,14 +44,15 @@ subpackages="
mcookie:_mv_bin
mount:_mv_bin
partx:_mv_bin
+ setarch:_mv_bin
setpriv:_mv_bin
sfdisk:_mv_bin
umount:_mv_bin
uuidgen:_mv_bin
wipefs:_mv_bin
"
-if [ -z "$BOOTSTRAP" ]; then
- checkdepends="bash findutils xz procps coreutils"
+if [ -z "$BOOTSTRAP" ] && [ -z "$APORTS_BOOTSTRAP" ]; then
+ checkdepends="findutils xz procps coreutils"
makedepends_build="$makedepends_build asciidoctor"
makedepends_host="$makedepends_host
linux-pam-dev
@@ -69,30 +70,29 @@ if [ -z "$BOOTSTRAP" ]; then
_bootstrap_config="--enable-runuser --with-python=3 --with-econf"
else
options="!check"
- _bootstrap_config="--without-python --without-econf --disable-asciidoc --disable-login"
+ _bootstrap_config="--disable-runuser --without-python --without-econf --disable-asciidoc --disable-login"
fi
subpackages="$subpackages $pkgname-doc $pkgname-misc"
makedepends="$makedepends_build $makedepends_host"
+builddir="$srcdir/util-linux-$pkgver"
options="$options suid"
-# please fix me!
-if [ "$CARCH" = "x86" ] || [ "$CARCH" = "ppc64le" ]; then
- options="$options !check"
-fi
-
case $pkgver in
*.*.*) _v=${pkgver%.*};;
*.*) _v=$pkgver;;
esac
source="https://www.kernel.org/pub/linux/utils/util-linux/v$_v/util-linux-$pkgver.tar.xz
utmps.patch
+ 0001-libblkid-Fix-segfault-when-blkid.conf-doesn-t-exist.patch
ttydefaults.h
rfkill.confd
rfkill.initd
- login.pamd
+ su-l.pamd
"
# secfixes:
+# 2.40-r0:
+# - CVE-2024-28085
# 2.37.4-r0:
# - CVE-2022-0563
# 2.37.3-r0:
@@ -108,24 +108,21 @@ prepare() {
default_prepare
cp "$srcdir"/ttydefaults.h include/
- libtoolize --force
- aclocal -I m4
- autoconf
- automake --add-missing
-
- # FIXME: This test fails, dunno why.
- rm tests/ts/col/multibyte
- # FIXME: Fails on GitLab CI, but passes locally, dunno why.
- rm tests/ts/misc/setarch
- # XXX: Hangs on GitLab CI.
- rm tests/ts/lsns/*
- # XXX: succeeds in all actions but fails anyway
- rm tests/ts/lsfd/mkfds-directory
- # XXX: flakes 20% of the time
- rm tests/ts/hardlink/options
- # XXX: fail on aarch64
- rm tests/ts/lsfd/mkfds-symlink
- rm tests/ts/lsfd/mkfds-rw-character-device
+
+ # these fail on the package builders
+ rm -fv tests/ts/lsfd/mkfds-netlink-protocol
+ rm -fv tests/ts/lsfd/option-inet
+ # these are flakey on the package builders
+ rm -fv tests/ts/lsfd/mkfds-rw-character-device
+ rm -fv tests/ts/lsfd/mkfds-multiplexing
+
+ case "$CARCH" in
+ ppc64le)
+ # these fail on the CI builder
+ rm -fv tests/ts/lsfd/mkfds-unix-stream-requiring-sockdiag
+ rm -fv tests/ts/lsfd/mkfds-socketpair
+ ;;
+ esac
}
build() {
@@ -134,9 +131,11 @@ build() {
# and also much more space efficient - adds 4 kiB to each binary, that's
# 20 kiB in total for util-linux-*, versus 196 kiB (libskarnet.so).
# TODO: Find a better way (libutmps.so w/o dependency on libskarnet.so)?
- export UTMPX_CFLAGS=$(pkg-config --cflags --static utmps)
- export UTMPX_LIBS=$(pkg-config --libs --static utmps)
+ # also throw in lto when not bootstrapping
+ export CFLAGS="$CFLAGS -ffat-lto-objects -flto=auto $(pkg-config --cflags --static utmps)"
+ export LDFLAGS="$LDFLAGS $(pkg-config --libs --static utmps)"
fi
+
# --disable-chfn-chsh - chfn and chsh are provided by shadow package
./configure \
--build=$CBUILD \
@@ -147,10 +146,10 @@ build() {
--enable-newgrp \
--disable-uuidd \
--disable-nls \
- --disable-tls \
--disable-kill \
--disable-chfn-chsh \
--with-vendordir=/usr/lib \
+ --enable-fs-paths-extra=/usr/sbin \
$_bootstrap_config
make
}
@@ -160,7 +159,7 @@ check() {
}
package() {
- make -j1 DESTDIR="$pkgdir" -C "$builddir" install
+ make DESTDIR="$pkgdir" install
# Move to /bin to overwrite busybox's version.
mv "$pkgdir"/usr/bin/getopt \
@@ -169,6 +168,8 @@ package() {
# use pkg-config
install -D -m755 "$srcdir"/rfkill.initd "$pkgdir"/etc/init.d/rfkill
install -D -m644 "$srcdir"/rfkill.confd "$pkgdir"/etc/conf.d/rfkill
+
+ install -D -m644 "$srcdir"/su-l.pamd "$pkgdir"/etc/pam.d/su-l
}
_mv_bin() {
@@ -178,16 +179,74 @@ _mv_bin() {
install_if="$pkgname=$pkgver-r$pkgrel"
case "$binname" in
- agetty) pkgdesc="agetty program from util-linux";;
- blkid) pkgdesc="Block device identification tool from util-linux";;
- cfdisk) pkgdesc="Curses based partition table manipulator from util-linux";;
- flock) pkgdesc="File locker from util-linux";;
- logger) pkgdesc="Logger from util-linux";;
- lsblk) pkgdesc="Block device list tool from util-linux";;
- runuser) pkgdesc="Run a program with substitute user and group ID";;
- setpriv) pkgdesc="Run a program with different Linux privilege settings";;
- sfdisk) pkgdesc="Partition table manipulator from util-linux";;
- uuidgen) pkgdesc="UUID generator from util-linux";;
+ agetty)
+ license="Public-Domain"
+ pkgdesc="agetty program from util-linux"
+ ;;
+ blkid)
+ license="LGPL-1.0-only"
+ pkgdesc="Block device identification tool from util-linux"
+ ;;
+ cfdisk)
+ license="GPL-2.0-or-later"
+ pkgdesc="Curses based partition table manipulator from util-linux"
+ ;;
+ findmnt)
+ license="GPL-2.0-or-later"
+ pkgdesc="Find mount from util-linux"
+ ;;
+ flock)
+ license="MIT"
+ pkgdesc="File locker from util-linux"
+ ;;
+ fstrim)
+ license="GPL-2.0-or-later"
+ pkgdesc="File system trim from util-linux"
+ ;;
+ hexdump)
+ license="BSD-4-Clause-UC"
+ pkgdesc="Hexdump from util-linux"
+ ;;
+ logger)
+ license="BSD-4-Clause-UC"
+ pkgdesc="Logger from util-linux"
+ ;;
+ losetup)
+ license="GPL-2.0-or-later"
+ pkgdesc="Loop disk setup from util-linux"
+ ;;
+ lsblk)
+ license="GPL-2.0-or-later"
+ pkgdesc="Block device list tool from util-linux"
+ ;;
+ runuser)
+ license="GPL-2.0-or-later"
+ pkgdesc="Run a program with substitute user and group ID"
+ ;;
+ mcookie)
+ license="Public-Domain"
+ pkgdesc="Generate random numbers for xauth from util-linux"
+ ;;
+ partx)
+ license="GPL-2.0-or-later"
+ pkgdesc="Tell the kernel about disk partition changes from util-linux"
+ ;;
+ setpriv)
+ license="GPL-2.0-or-later"
+ pkgdesc="Run a program with different Linux privilege settings"
+ ;;
+ sfdisk)
+ license="GPL-1.0-or-later"
+ pkgdesc="Partition table manipulator from util-linux"
+ ;;
+ uuidgen)
+ license="GPL-1.0-only"
+ pkgdesc="UUID generator from util-linux"
+ ;;
+ wipefs)
+ license="GPL-2.0-or-later"
+ pkgdesc="Utility to wipe filesystems from device from util-linux"
+ ;;
esac
local dir; for dir in usr/bin usr/sbin bin sbin; do
if [ -e "$pkgdir"/$dir/$binname ]; then
@@ -204,16 +263,32 @@ _mv_lib() {
depends=
case "$libname" in
- libblkid) pkgdesc="Block device identification library from util-linux";;
- libfdisk) pkgdesc="Partitioning library for fdisk-like programs";;
- libmount) pkgdesc="Block device identification library from util-linux";;
- libsmartcols) pkgdesc="Formatting library for ls-like programs";;
- libuuid) pkgdesc="DCE compatible Universally Unique Identifier library";;
+ libblkid)
+ license="LGPL-2.1-or-later"
+ pkgdesc="Block device identification library from util-linux"
+ ;;
+ libfdisk)
+ license="LGPL-2.1-or-later"
+ pkgdesc="Partitioning library for fdisk-like programs"
+ ;;
+ libmount)
+ license="LGPL-2.1-or-later"
+ pkgdesc="Block device identification library from util-linux"
+ ;;
+ libsmartcols)
+ license="LGPL-2.1-or-later"
+ pkgdesc="Formatting library for ls-like programs"
+ ;;
+ libuuid)
+ license="BSD-3-Clause"
+ pkgdesc="DCE compatible Universally Unique Identifier library"
+ ;;
esac
amove lib/$libname.so.*
}
login() {
+ license="GPL-2.0-or-later AND BSD-1-Clause"
pkgdesc="Login utils from util-linux package: ${_login_cmds// /, }"
depends="runuser=$pkgver-r$pkgrel"
# Commands in conflict with shadow-login: newgrp login nologin su
@@ -235,8 +310,7 @@ login() {
return 1
done
- # install pam configuration for 'login'
- install -Dm644 "$srcdir"/login.pamd "$subpkgdir"/etc/pam.d/login
+ amove etc/pam.d/su-l
}
_login_doc() {
@@ -249,7 +323,8 @@ _login_doc() {
amove usr/share/man/man*/$cmd.*
done
- find "$subpkgdir"/usr/share/man -type f -exec gzip -9 {} \;
+ find "$subpkgdir"/usr/share/man -type f ! -name "*.gz" \
+ -exec gzip -9 {} \;
}
misc() {
@@ -266,6 +341,7 @@ misc() {
}
_py3() {
+ license="LGPL-2.1-or-later"
pkgdesc="python3 bindings to libmount"
depends=
@@ -273,10 +349,11 @@ _py3() {
}
sha512sums="
-d0f7888f457592067938e216695871ce6475a45d83a092cc3fd72b8cf8fca145ca5f3a99122f1744ef60b4f773055cf4e178dc6c59cd30837172aee0b5597e8c util-linux-2.38.tar.xz
-88736b554b60f836357a29f537d51658bb487dd316c92cc5160ba06bed5f8cf8e34bbfb8eb7370c4e4a2e75997a6e4bd2058201d227e41f83a18abbf4a73bdbd utmps.patch
+f06e61d4ee0e196223f7341ec75a16a6671f82d6e353823490ecff17e947bb169a6b65177e3ab0da6e733e079b24d6a77905a0e8bbfed82ca9aa22a3facb6180 util-linux-2.40.tar.xz
+c1c9cd816d20582438cda75a9c0ea4e687eee124e657172729aff410f52558be19cc5d649dae07c03f7618411e5aa6c23bcebc3fdf25529517a61b6b343966ef utmps.patch
+d0fbba3fb3a7ca56e6c2fbe63557bac01c25389e21c51ff5c111463a96a7b8e2eacbc5d02db811dbc3807031543ec1fc759a9669ed26e059dafdce8ae16a1558 0001-libblkid-Fix-segfault-when-blkid.conf-doesn-t-exist.patch
876bb9041eca1b2cca1e9aac898f282db576f7860aba690a95c0ac629d7c5b2cdeccba504dda87ff55c2a10b67165985ce16ca41a0694a267507e1e0cafd46d9 ttydefaults.h
401d2ccbdbfb0ebd573ac616c1077e2c2b79ff03e9221007759d8ac25eb522c401f705abbf7daac183d5e8017982b8ec5dd0a5ebad39507c5bb0a9f31f04ee97 rfkill.confd
-c4e7ba6d257496c99934add2ca532db16fb070ea2367554587c9fb4e24ab1d80b8ba3fd0fd4fdd5ef1374c3ec6414007369b292ee334ef23171d0232ef709db2 rfkill.initd
-8d1c7043719af9ee1473fdb482e054ca0e0fa1ac673cb9c7db96a6aad00382456225dea05267dab96e19d5f444a00681e8dbaf7399100c75424fd388d48ad68b login.pamd
+b0e11226c611fd52d54f599a40d23c4f748d5bd6971732dba2d25581aedaf5d2c62bcb49515d175569ff9aa1cf49a3dff25d1a5d4dcd89428c7020fc7ea3a581 rfkill.initd
+0c8e764308ac1d084ebb4246eb97203de983bc0170066c958a56b412d9fd2f98da7f78f059e59512542c56a2639d6b2da35eff6469a48ebce6b2c406e94a96a7 su-l.pamd
"
diff --git a/main/util-linux/login.pamd b/main/util-linux/login.pamd
deleted file mode 100644
index 49081c882f1..00000000000
--- a/main/util-linux/login.pamd
+++ /dev/null
@@ -1,6 +0,0 @@
-#%PAM-1.0
-# /bin/login opens an interactive session.
-auth include base-auth
-account include base-account
-password include base-password
-session include base-session
diff --git a/main/util-linux/rfkill.initd b/main/util-linux/rfkill.initd
index 1cc0335e45d..fc0c800d4f7 100644
--- a/main/util-linux/rfkill.initd
+++ b/main/util-linux/rfkill.initd
@@ -13,11 +13,13 @@ depend() {
restore() {
ebegin "Restoring rfkill configuration"
- for type in "$rfkillstatedir"/*; do
- status=$(cat "$type")
- type=$(basename "$type")
- rfkill "$status" "$type"
- done
+ if [ -d "$rfkillstatedir" ]; then
+ for type in "$rfkillstatedir"/*; do
+ status=$(cat "$type")
+ type=$(basename "$type")
+ rfkill "$status" "$type"
+ done
+ fi
eend 0
}
diff --git a/main/util-linux/su-l.pamd b/main/util-linux/su-l.pamd
new file mode 100644
index 00000000000..2bcc9b2f64e
--- /dev/null
+++ b/main/util-linux/su-l.pamd
@@ -0,0 +1,6 @@
+# basic PAM configuration for Alpine.
+auth sufficient pam_rootok.so
+auth include base-auth
+account include base-account
+password include base-password
+session include base-session
diff --git a/main/util-linux/utmps.patch b/main/util-linux/utmps.patch
index e4d2c951404..529bb2ac95e 100644
--- a/main/util-linux/utmps.patch
+++ b/main/util-linux/utmps.patch
@@ -2,16 +2,11 @@ From: Jakub Jirutka <jakub@jirutka.cz>
Date: Mon, 20 Dec 2021 18:52:00 +0100
Subject: [PATCH] Add support for utmps
-Allow to link programs that use utmpx.h with utmps by passing relevant -I
-and -l flags via variable UTMPX_CFLAGS and UTMPX_LIBS, respectively.
The following programs use utmpx.h: last, login, lslogins, agetty, wall, write.
Programs 'su' and 'runuser' include utmpx.h, but use only btmp which is not
supported on Alpine.
-'utmpdump' includes utmpx.h, but doesn't log anything, just parses utmp/wtmp
-files, so doesn't need to be linked with utmps.
-
--- a/include/pathnames.h
+++ b/include/pathnames.h
@@ -214,5 +214,13 @@
@@ -28,76 +23,3 @@ files, so doesn't need to be linked with utmps.
+
#endif /* PATHNAMES_H */
---- a/login-utils/Makemodule.am
-+++ b/login-utils/Makemodule.am
-@@ -5,7 +5,8 @@
- dist_noinst_DATA += login-utils/last.1.adoc
- MANLINKS += login-utils/lastb.1
- last_SOURCES = login-utils/last.c lib/monotonic.c
--last_LDADD = $(LDADD) libcommon.la $(REALTIME_LIBS)
-+last_CFLAGS = $(AM_CFLAGS) $(UTMPX_CFLAGS)
-+last_LDADD = $(LDADD) libcommon.la $(UTMPX_LIBS) $(REALTIME_LIBS)
-
- install-exec-hook-last:
- cd $(DESTDIR)$(usrbin_execdir) && ln -sf last lastb
-@@ -61,7 +62,9 @@
- login-utils/login.c \
- login-utils/logindefs.c \
- login-utils/logindefs.h
--login_LDADD = $(LDADD) libcommon.la -lpam
-+login_CFLAGS = $(AM_CFLAGS) $(UTMPX_CFLAGS)
-+login_LDADD = $(LDADD) libcommon.la $(UTMPX_LIBS) -lpam
-+
- if HAVE_LINUXPAM
- login_LDADD += -lpam_misc
- endif
-@@ -237,8 +242,8 @@
- login-utils/lslogins.c \
- login-utils/logindefs.c \
- login-utils/logindefs.h
--lslogins_LDADD = $(LDADD) libcommon.la libsmartcols.la
--lslogins_CFLAGS = $(AM_CFLAGS) -I$(ul_libsmartcols_incdir)
-+lslogins_LDADD = $(LDADD) libcommon.la libsmartcols.la $(UTMPX_LIBS)
-+lslogins_CFLAGS = $(AM_CFLAGS) $(UTMPX_CFLAGS) -I$(ul_libsmartcols_incdir)
- if HAVE_SELINUX
- lslogins_LDADD += -lselinux
- endif
---- a/term-utils/Makemodule.am
-+++ b/term-utils/Makemodule.am
-@@ -47,10 +47,11 @@
- MANPAGES += term-utils/agetty.8
- dist_noinst_DATA += term-utils/agetty.8.adoc
- agetty_SOURCES = term-utils/agetty.c
-+agetty_CFLAGS = $(AM_CFLAGS) $(UTMPX_CFLAGS)
- if USE_PLYMOUTH_SUPPORT
- agetty_SOURCES += lib/plymouth-ctrl.c
- endif
--agetty_LDADD = $(LDADD) libcommon.la
-+agetty_LDADD = $(LDADD) libcommon.la $(UTMPX_LIBS)
- if BSD
- agetty_LDADD += -lutil
- endif
-@@ -91,9 +92,9 @@
- term-utils/ttymsg.h
- MANPAGES += term-utils/wall.1
- dist_noinst_DATA += term-utils/wall.1.adoc
--wall_CFLAGS = $(SUID_CFLAGS) $(AM_CFLAGS)
-+wall_CFLAGS = $(SUID_CFLAGS) $(AM_CFLAGS) $(UTMPX_CFLAGS)
- wall_LDFLAGS = $(SUID_LDFLAGS) $(AM_LDFLAGS)
--wall_LDADD = $(LDADD) libcommon.la
-+wall_LDADD = $(LDADD) libcommon.la $(UTMPX_LIBS)
- if USE_TTY_GROUP
- if MAKEINSTALL_DO_CHOWN
- install-exec-hook-wall::
-@@ -111,9 +112,9 @@
- MANPAGES += term-utils/write.1
- dist_noinst_DATA += term-utils/write.1.adoc
- write_SOURCES = term-utils/write.c
--write_CFLAGS = $(SUID_CFLAGS) $(AM_CFLAGS)
-+write_CFLAGS = $(SUID_CFLAGS) $(AM_CFLAGS) $(UTMPX_CFLAGS)
- write_LDFLAGS = $(SUID_LDFLAGS) $(AM_LDFLAGS)
--write_LDADD = $(LDADD) libcommon.la
-+write_LDADD = $(LDADD) libcommon.la $(UTMPX_LIBS)
-
- if USE_TTY_GROUP
- if MAKEINSTALL_DO_CHOWN
diff --git a/main/util-macros/APKBUILD b/main/util-macros/APKBUILD
index cdfed076773..c180957cb06 100644
--- a/main/util-macros/APKBUILD
+++ b/main/util-macros/APKBUILD
@@ -1,12 +1,12 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=util-macros
-pkgver=1.19.3
+pkgver=1.20.0
pkgrel=0
pkgdesc="X.Org Autotools macros"
url="https://xorg.freedesktop.org"
arch="noarch"
license="MIT"
-source="https://www.x.org/releases/individual/util/util-macros-$pkgver.tar.bz2"
+source="https://www.x.org/releases/individual/util/util-macros-$pkgver.tar.xz"
build() {
./configure \
@@ -21,10 +21,9 @@ check() {
}
package() {
- make DESTDIR="$pkgdir" install
-
- mkdir -p "$pkgdir"/usr/lib
- mv "$pkgdir"/usr/share/pkgconfig "$pkgdir"/usr/lib
+ make pkgconfigdir=/usr/lib/pkgconfig DESTDIR="$pkgdir" install
}
-sha512sums="b9c7398a912c688a782eab5b1e0f6da2df11a430775c5c98fc3269f73a665de6eeb60d300a849e38d345714a6e51f74e9334cb6039767304cca4b93d823a53a2 util-macros-1.19.3.tar.bz2"
+sha512sums="
+76caefb118bf1675d7b2b96e1bbb04eb9a320b02e120839e55a22ef98538ecf00d0e686a67186fc8fdc8492d277ffe3125ae8b7ac61ce4739edc0de3f468d2eb util-macros-1.20.0.tar.xz
+"
diff --git a/main/utmps/APKBUILD b/main/utmps/APKBUILD
index 4585e6ea3ef..a011c9d3a32 100644
--- a/main/utmps/APKBUILD
+++ b/main/utmps/APKBUILD
@@ -8,16 +8,16 @@ pkgname=utmps
# - mingetty
# - openssh
# - util-linux
-pkgver=0.1.2.0
+pkgver=0.1.2.2
pkgrel=1
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="s6-ipcserver"
+depends="s6-ipcserver>=2.12"
depends_static="skalibs-static"
-makedepends="skalibs-dev>=2.11"
+makedepends="skalibs-dev>=2.14"
subpackages="$pkgname-static $pkgname-libs $pkgname-dev $pkgname-doc $pkgname-openrc"
source="https://skarnet.org/software/utmps/utmps-$pkgver.tar.gz
utmp-prepare.initd
@@ -67,7 +67,7 @@ package() {
}
sha512sums="
-a89c054584680ec1abeb145d244488433cbb3e837fbd77e8914c402e84ce7bc50615c8cf13e7f97316096417fcd5ed84a24f618b4714c640cd8e39fb6749b00d utmps-0.1.2.0.tar.gz
+57a73658ecb947af9dfad7a5e2931660ad1b8fa61d36c803c373e8aba13e9afa8398c1522765f5ea2b5df87d942cea17062faf30f589afa6acc744ff3ae4a409 utmps-0.1.2.2.tar.gz
05d730a7ac770e91617a9db2b250c818f7733a3cbba3e539dbea23efeea71f65b059ec7778648bbedc2a6ac3b7907ac49d786cdadcfb716b29d8e9ce514d0f3a utmp-prepare.initd
c939657b36512ab092c51d45978fda6bb8d206f7295f733ef05c1bbce5ae68ea9bd3979e6c99bf8bf569363764467b85d68d61968a11903395c9561c6c82d59c utmpd.initd
248c60c4f769a311f8167a38473e0de34aa2f73286552bc9344ba46558badcaa0f7d2fee282f31a031df242e474bef1e86e6527a7fd190d76600136bee851182 wtmpd.initd
diff --git a/main/utmps/utmps.pre-install b/main/utmps/utmps.pre-install
index 10b5b31ff06..fd7b522bcfd 100644
--- a/main/utmps/utmps.pre-install
+++ b/main/utmps/utmps.pre-install
@@ -1,5 +1,5 @@
#!/bin/sh
addgroup -S utmp 2>/dev/null
-adduser -S -D -H -s /bin/false -G utmp -g utmp utmp 2>/dev/null
+adduser -S -D -H -s /sbin/nologin -G utmp -g utmp utmp 2>/dev/null
exit 0
diff --git a/main/uvncrepeater/APKBUILD b/main/uvncrepeater/APKBUILD
index 828744be83c..f12d44b0c15 100644
--- a/main/uvncrepeater/APKBUILD
+++ b/main/uvncrepeater/APKBUILD
@@ -2,17 +2,18 @@
# Maintainer:
pkgname=uvncrepeater
pkgver=014
-pkgrel=8
+pkgrel=11
pkgdesc="VNC repeater based on ultravnc repeater"
url="http://koti.mbnet.fi/jtko/"
arch="all"
license="GPL-2.0-or-later"
-depends="openrc>=0.6"
install="$pkgname.pre-install"
+subpackages="$pkgname-openrc"
source="http://distcache.freebsd.org/ports-distfiles/repeater$pkgver.zip
uvncrepeater.confd
uvncrepeater.initd"
builddir="$srcdir/Ver$pkgver"
+options="!check"
prepare() {
default_prepare
diff --git a/main/uwsgi/APKBUILD b/main/uwsgi/APKBUILD
index db0f97db205..fedace57f3b 100644
--- a/main/uwsgi/APKBUILD
+++ b/main/uwsgi/APKBUILD
@@ -3,12 +3,12 @@
# Contributor: Jakub Jirutka <jakub@jirutka.cz>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=uwsgi
-pkgver=2.0.20
+pkgver=2.0.25.1
pkgrel=0
pkgdesc="uWSGI application container server"
-url="http://projects.unbit.it/uwsgi/"
+url="https://projects.unbit.it/uwsgi/"
arch="all"
-license="custom" # GPL-2.0-only + linking exception
+license="GPL-2.0-only WITH GCC-exception-2.0"
depends="mailcap"
install="$pkgname.pre-install $pkgname.post-upgrade"
pkgusers="uwsgi"
@@ -26,17 +26,18 @@ makedepends="
libxml2-dev
libxslt-dev
lua5.3-dev
- pcre-dev
+ openssl-dev
+ pcre2-dev
python3-dev
zeromq-dev
zlib-dev
"
-source="http://projects.unbit.it/downloads/uwsgi-$pkgver.tar.gz
+subpackages="$pkgname-openrc"
+source="$pkgname-$pkgver.tar.gz::https://github.com/unbit/uwsgi/archive/refs/tags/$pkgver.tar.gz
uwsgi.initd
uwsgi.ini
readme.emperor
alpine.buildconf
- musl-fix-python.patch
musl-ucontext.patch
"
options="!check"
@@ -124,15 +125,12 @@ for _p in $_plugins; do
subpackages="$subpackages uwsgi-${_p#*:}:_plugin"
done
-
prepare() {
default_prepare
cp "$srcdir"/alpine.buildconf buildconf/alpine.ini
}
build() {
- cd "$builddir"
-
msg "Building core"
# ccache seems to trigger some weird bug on musl
CC="gcc" python3 uwsgiconfig.py --build alpine
@@ -153,8 +151,6 @@ _build_plugin() {
}
package() {
- cd "$builddir"
-
install -m 755 -D uwsgi "$pkgdir"/usr/sbin/uwsgi
install -m 644 -D "$srcdir"/readme.emperor "$pkgdir"/etc/uwsgi/conf.d/readme.emperor
install -m 644 -D "$srcdir"/uwsgi.ini "$pkgdir"/etc/uwsgi/uwsgi.ini
@@ -205,11 +201,10 @@ _plugin() {
}
sha512sums="
-22677a8ad1ea886e1a3a153f486474ce064a55e5b12515322345116980f699f4e2e73267f991c300d904284e06f265ea821e71ba3c97832b6f25705475b498ff uwsgi-2.0.20.tar.gz
+3b2a78917b129f5a2f38f3538e30b132e4cd6e270df55365ccc0dc6b94641a262af1484c62b252d0a24121eb68417cb061210e89e2b7885992ab4ffa07092119 uwsgi-2.0.25.1.tar.gz
1fef8a30e8e20b0322cf464a2adf744a4b46a35f4c9e104acacab4c99b913c5a0b537783bdfedf8900a4e7397e08079b675be2414beb571fd0b330985ac676cc uwsgi.initd
370202e143d0e041a2e36905346080d3ca592c9a74705a8c4e142a1307d22b921c10e673d683ca284ea27d184474ed86edd7723a6e590d35a562ad7cf6afa529 uwsgi.ini
2798c9d2e49e29292ffe6a5a29b866301c78d5f322fc5d07dfa9569efdaa5220237a5f6744652fbdd957be29311ddaff190541333f042cbf0e907dfa98ce3e2a readme.emperor
f3cff00926929a5bb40afafb65fd5228582af35fbf524562282020c4c4ae9c659231b2381f4b3cceb18e8f3f6c888c21bdd8ed4ddcd81e92fbc6a0891800ce38 alpine.buildconf
-de68b16b44e554a79c073c9befa10566796316dbf4c375b4d6b633d80b0282694cca233f0a70f3d6570584324f14276826bbeb8f38b550c00087a05f9ba9227f musl-fix-python.patch
d4b93e51619af5f8839cdc7279c69462947910df03104cfe6180d606403940fc60ad5dac66425ce8acbab67cc0c4f3e13126da0a329720cb03c67d447cd94ad9 musl-ucontext.patch
"
diff --git a/main/uwsgi/musl-fix-python.patch b/main/uwsgi/musl-fix-python.patch
deleted file mode 100644
index b4b8fd240f5..00000000000
--- a/main/uwsgi/musl-fix-python.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/plugins/python/uwsgi_python.h b/plugins/python/uwsgi_python.h
-index 0c5c1c8..5c0dc6d 100644
---- a/plugins/python/uwsgi_python.h
-+++ b/plugins/python/uwsgi_python.h
-@@ -1,4 +1,8 @@
- #include <uwsgi.h>
-+/* seems like Python.h explicitlyl redefines _GNU_SOURCE */
-+#ifdef _GNU_SOURCE
-+#undef _GNU_SOURCE
-+#endif
- #include <Python.h>
-
- #include <frameobject.h>
diff --git a/main/v86d/APKBUILD b/main/v86d/APKBUILD
index 4e01aa78517..6f2e41a9b6f 100644
--- a/main/v86d/APKBUILD
+++ b/main/v86d/APKBUILD
@@ -1,29 +1,26 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=v86d
pkgver=0.1.10
-pkgrel=1
+pkgrel=4
pkgdesc="Userspace helper for uvesafb that runs x86 code in an emulated environment"
url="https://github.com/mjanusz/v86d"
arch="x86 x86_64"
-license="GPL-2.0"
-depends=""
+license="GPL-2.0-only"
makedepends="bash linux-headers"
source="v86d-$pkgver.tar.gz::https://github.com/mjanusz/v86d/archive/v86d-$pkgver.tar.gz
modprobe.uvesafb"
+builddir="$srcdir"/v86d-86d-$pkgver
+options="!check"
-_builddir="$srcdir"/v86d-86d-$pkgver
-build () {
- cd "$_builddir"
+build() {
./configure \
- --with-x86emu \
- || return 1
- make || return 1
+ --with-x86emu
+ make
}
package() {
- cd "$_builddir"
- make DESTDIR="$pkgdir" install || return 1
- install -D -m644 "$srcdir"/modprobe.uvesafb "$pkgdir"/etc/modprobe.d/uvesafb || return 1
+ make DESTDIR="$pkgdir" install
+ install -D -m644 "$srcdir"/modprobe.uvesafb "$pkgdir"/etc/modprobe.d/uvesafb
}
sha512sums="148b1676d932d1207da396defeae0fc39b664139eca5f29be98ceedc33e89566f7c35057df93249303c8e2c1bff0427430a077f88a85997e62ea96c29b5db9d1 v86d-0.1.10.tar.gz
diff --git a/main/vala/APKBUILD b/main/vala/APKBUILD
index 727a6b07c0d..3e72ea70dd1 100644
--- a/main/vala/APKBUILD
+++ b/main/vala/APKBUILD
@@ -1,14 +1,14 @@
# Contributor: Rasmus Thomsen <oss@cogitri.dev>
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
-# Maintainer: Rasmus Thomsen <oss@cogitri.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=vala
-pkgver=0.56.1
+pkgver=0.56.16
pkgrel=0
pkgdesc="Compiler for the GObject type system"
url="https://wiki.gnome.org/Projects/Vala"
arch="all"
license="LGPL-2.0-or-later"
-subpackages="$pkgname-dbg $pkgname-doc"
+subpackages="$pkgname-devhelp $pkgname-dbg $pkgname-doc"
depends="glib-dev"
makedepends="libxslt-dev bash flex bison gobject-introspection-dev graphviz-dev"
checkdepends="dbus-x11"
@@ -22,6 +22,8 @@ prepare() {
}
build() {
+ CFLAGS="$CFLAGS -O2 -flto=auto" \
+ CXXFLAGS="$CXXFLAGS -O2 -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -38,5 +40,5 @@ package() {
}
sha512sums="
-83c34ab0497a9b7a627db8c1dbfea9e76c94b902e298afb2c30ba9824717f2fe3b0e26b987feb93cd4ff0ce211d0ecd9a746cc18c00e41c4c6fd01d05947902f vala-0.56.1.tar.xz
+99f69c3c7a5ed89923b55cf035c6d9a5867577b2ecff92dddf5f21aaad1281786e5fcd775833b0f251417caf857f5fe7efbf134fbded427a7b29fa3acb00203a vala-0.56.16.tar.xz
"
diff --git a/main/valgrind/0001-Bug-478624-Valgrind-incompatibility-with-binutils-2..patch b/main/valgrind/0001-Bug-478624-Valgrind-incompatibility-with-binutils-2..patch
new file mode 100644
index 00000000000..1f6ae07b50b
--- /dev/null
+++ b/main/valgrind/0001-Bug-478624-Valgrind-incompatibility-with-binutils-2..patch
@@ -0,0 +1,136 @@
+From d35005cef8ad8207542738812705ceabf137d7e0 Mon Sep 17 00:00:00 2001
+From: Paul Floyd <pjfloyd@wanadoo.fr>
+Date: Sun, 17 Dec 2023 14:18:51 +0100
+Subject: [PATCH] Bug 478624 - Valgrind incompatibility with binutils-2.42 on
+ x86 with new nop patterns (unhandled instruction bytes: 0x2E 0x8D 0xB4 0x26)
+
+It was a bit of a struggle to get the testcase to build
+with both clang and gcc (oddly enough gcc was more difficult) so
+I just resorted to using .byte arrays.
+---
+ .gitignore | 1 +
+ NEWS | 2 ++
+ VEX/priv/guest_x86_toIR.c | 22 +++++++++++++-
+ none/tests/x86/Makefile.am | 2 ++
+ none/tests/x86/gnu_binutils_nop.c | 34 ++++++++++++++++++++++
+ none/tests/x86/gnu_binutils_nop.stderr.exp | 0
+ none/tests/x86/gnu_binutils_nop.vgtest | 2 ++
+ 7 files changed, 62 insertions(+), 1 deletion(-)
+ create mode 100644 none/tests/x86/gnu_binutils_nop.c
+ create mode 100644 none/tests/x86/gnu_binutils_nop.stderr.exp
+ create mode 100644 none/tests/x86/gnu_binutils_nop.vgtest
+
+diff --git a/VEX/priv/guest_x86_toIR.c b/VEX/priv/guest_x86_toIR.c
+index 5d6e6dc64..3b6efb387 100644
+--- a/VEX/priv/guest_x86_toIR.c
++++ b/VEX/priv/guest_x86_toIR.c
+@@ -8198,7 +8198,7 @@ DisResult disInstr_X86_WRK (
+ delta += 5;
+ goto decode_success;
+ }
+- /* Don't barf on recent binutils padding,
++ /* Don't barf on recent (2010) binutils padding,
+ all variants of which are: nopw %cs:0x0(%eax,%eax,1)
+ 66 2e 0f 1f 84 00 00 00 00 00
+ 66 66 2e 0f 1f 84 00 00 00 00 00
+@@ -8223,6 +8223,26 @@ DisResult disInstr_X86_WRK (
+ }
+ }
+
++ /* bug478624 GNU binutils uses a leal of esi into itself with
++ a zero offset and CS prefix as an 8 byte no-op (Dec 2023).
++ Since the CS prefix is hardly ever used we don't do much
++ to decode it, just a few cases for conditional branches.
++ So add handling here with other pseudo-no-ops.
++ */
++ if (code[0] == 0x2E && code[1] == 0x8D) {
++ if (code[2] == 0x74 && code[3] == 0x26 && code[4] == 0x00) {
++ DIP("leal %%cs:0(%%esi,%%eiz,1),%%esi\n");
++ delta += 5;
++ goto decode_success;
++ }
++ if (code[2] == 0xB4 && code[3] == 0x26 && code[4] == 0x00
++ && code[5] == 0x00 && code[6] == 0x00 && code[7] == 0x00) {
++ DIP("leal %%cs:0(%%esi,%%eiz,1),%%esi\n");
++ delta += 8;
++ goto decode_success;
++ }
++ }
++
+ // Intel CET requires the following opcodes to be treated as NOPs
+ // with any prefix and ModRM, SIB and disp combination:
+ // "0F 19", "0F 1C", "0F 1D", "0F 1E", "0F 1F"
+diff --git a/none/tests/x86/Makefile.am b/none/tests/x86/Makefile.am
+index 3ecd1ad3c..dbae86571 100644
+--- a/none/tests/x86/Makefile.am
++++ b/none/tests/x86/Makefile.am
+@@ -52,6 +52,7 @@ EXTRA_DIST = \
+ fxtract.stdout.exp fxtract.stderr.exp fxtract.vgtest \
+ fxtract.stdout.exp-older-glibc \
+ getseg.stdout.exp getseg.stderr.exp getseg.vgtest \
++ gnu_binutils_nop.stderr.exp gnu_binutils_nop.vgtest \
+ incdec_alt.stdout.exp incdec_alt.stderr.exp incdec_alt.vgtest \
+ int.stderr.exp int.stdout.exp int.disabled \
+ $(addsuffix .stderr.exp,$(INSN_TESTS)) \
+@@ -100,6 +101,7 @@ check_PROGRAMS = \
+ fpu_lazy_eflags \
+ fxtract \
+ getseg \
++ gnu_binutils_nop \
+ incdec_alt \
+ $(INSN_TESTS) \
+ int \
+diff --git a/none/tests/x86/gnu_binutils_nop.c b/none/tests/x86/gnu_binutils_nop.c
+new file mode 100644
+index 000000000..412a4c2cb
+--- /dev/null
++++ b/none/tests/x86/gnu_binutils_nop.c
+@@ -0,0 +1,34 @@
++int main(void)
++{
++ // GNU binutils uses various opcodes as alternatives for nop
++ // the idea is that it is faster to execute one large opcode
++ // with no side-effects than multiple repetitions of the
++ // single byte 'nop'. This gives more choice when code
++ // needs to be padded.
++
++ // the following is based on
++ // https://sourceware.org/cgit/binutils-gdb/tree/gas/config/tc-i386.c#n1256
++
++ // one byte
++ __asm__ __volatile__("nop");
++ // two bytes
++ __asm__ __volatile__("xchg %ax,%ax");
++ // three bytes
++ //__asm__ __volatile__("leal 0(%esi),%esi");
++ __asm__ __volatile__(".byte 0x8d,0x76,0x00");
++ // four bytes
++ //__asm__ __volatile__("leal 0(%esi,%eiz),%esi");
++ __asm__ __volatile__(".byte 0x8d,0x74,0x26,0x00");
++ // five bytes
++ //__asm__ __volatile__("leal %cs:0(%esi,%eiz),%esi");
++ __asm__ __volatile__(".byte 0x2e,0x8d,0x74,0x26,0x00");
++ // six bytes
++ //__asm__ __volatile__("leal 0L(%esi),%esi");
++ __asm__ __volatile__(".byte 0x8d,0xb6,0x00,0x00,0x00,0x00");
++ // seven bytes
++ //__asm__ __volatile__("leal 0L(%esi,%eiz),%esi");
++ __asm__ __volatile__(".byte 0x8d,0xb4,0x26,0x00,0x00,0x00,0x00");
++ // eight bytes
++ //__asm__ __volatile__("leal %cs:0L(%esi,%eiz),%esi");
++ __asm__ __volatile__(".byte 0x2e,0x8d,0xb4,0x26,0x00,0x00,0x00,0x00");
++}
+diff --git a/none/tests/x86/gnu_binutils_nop.stderr.exp b/none/tests/x86/gnu_binutils_nop.stderr.exp
+new file mode 100644
+index 000000000..e69de29bb
+diff --git a/none/tests/x86/gnu_binutils_nop.vgtest b/none/tests/x86/gnu_binutils_nop.vgtest
+new file mode 100644
+index 000000000..7f378dd53
+--- /dev/null
++++ b/none/tests/x86/gnu_binutils_nop.vgtest
+@@ -0,0 +1,2 @@
++prog: gnu_binutils_nop
++vgopts: -q
+--
+2.44.0
+
diff --git a/main/valgrind/APKBUILD b/main/valgrind/APKBUILD
index 9ebd0b295e5..4ba0bcd6271 100644
--- a/main/valgrind/APKBUILD
+++ b/main/valgrind/APKBUILD
@@ -1,27 +1,24 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=valgrind
-pkgver=3.19.0
-pkgrel=0
-pkgdesc="A tool to help find memory-management problems in programs"
+pkgver=3.22.0
+pkgrel=1
+pkgdesc="Tool to help find memory-management problems in programs"
url="https://valgrind.org/"
-# armv6 not supported upstream, broken with mips64 softfloat
-arch="all !armhf !mips64 !riscv64"
+# armv6/riscv64 not supported upstream
+arch="all !armhf !riscv64"
license="GPL-2.0-or-later"
# it seems like busybox sed works but the configure script requires GNU sed
-makedepends="sed perl bash autoconf automake libtool linux-headers"
+makedepends="sed perl linux-headers"
# from README_PACKAGERS:
# Don't strip the debug info off lib/valgrind/$platform/vgpreload*.so
# in the installation tree. Either Valgrind won't work at all, or it
# will still work if you do, but will generate less helpful error
# messages.
options="!strip"
-subpackages="$pkgname-dev $pkgname-doc"
+subpackages="$pkgname-scripts $pkgname-dev $pkgname-doc"
source="https://sourceware.org/pub/valgrind/valgrind-$pkgver.tar.bz2
- musl.supp
- uclibc.patch
- valgrind-3.13.0-malloc.patch
+ 0001-Bug-478624-Valgrind-incompatibility-with-binutils-2..patch
"
-builddir="$srcdir"/$pkgname-$pkgver
# Valgrind 3.19.0 added support for compiling the tests on musl.
# However, it seems they haven't tested this on many architectures.
@@ -32,19 +29,8 @@ case "$CARCH" in
aarch64|s390x|armv7|x86) options="$options !check"
esac
-prepare() {
- default_prepare
- cd "$builddir"
- cp "$srcdir"/musl.supp .
- aclocal && autoconf && automake --add-missing
- echo '#include <linux/a.out.h>' > include/a.out.h
-}
-
build() {
- cd "$builddir"
- # fails to build with ccache
- export CC="gcc"
- export CFLAGS="$CFLAGS -fno-stack-protector -no-pie"
+ export CFLAGS="${CFLAGS/-fno-plt} -fno-stack-protector -no-pie -U_FORTIFY_SOURCE"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -58,12 +44,10 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
# we have options=!strip above so we strip the /usr/bin/* manually
@@ -74,9 +58,20 @@ package() {
fi
}
+scripts() {
+ pkgdesc="$pkgdesc (perl+python cachegrind/callgrind script tools)"
+ depends="$pkgname=$pkgver-r$pkgrel python3 perl"
+
+ amove \
+ usr/bin/ms_print \
+ usr/bin/cg_merge \
+ usr/bin/cg_annotate \
+ usr/bin/cg_diff \
+ usr/bin/callgrind_control \
+ usr/bin/callgrind_annotate
+}
+
sha512sums="
-f720a89dc4c4989cc5714bff9efe97529f71990bcfad7a92b889ce099c4326d6da07fa4d5fbab2e9125e20f352354f6178471e49e419b613a3c82c2a1c667ab2 valgrind-3.19.0.tar.bz2
-49df485f158a7f4d354b2ed0d46dcc691f0490f50913c83dabfdd513b47ef1045f140fd59f54b560df05e4f3a4aba63de7124553b396189fa3ac89c908831e45 musl.supp
-d59a10db9037e120df2ee94a103402ca95a79abee9d8be63e4e1bca29c82dca775cc402a79b854ec11a2160a4d2da202c237369418e221d1925267ea2613fd5d uclibc.patch
-57086a768f3876b26b0e507bc159a73f0955f03d5af8cc30e21103e348ca67f2e58b5555a5a97f299751c6602692ad43d8346bb68a80917d740fb4d65bba9665 valgrind-3.13.0-malloc.patch
+2904c13f68245bbafcea70998c6bd20725271300a7e94b6751ca00916943595fc3fac8557da7ea8db31b54a43f092823a0a947bc142829da811d074e1fe49777 valgrind-3.22.0.tar.bz2
+250cac58cd1710d4d9a6a24b9acc596fa01e4d2255b98b46b8ed5c7af9e658489a69b51ca7e7d17ebf5b2a9023f561391e149311c20e99607d6b7e471110cbe5 0001-Bug-478624-Valgrind-incompatibility-with-binutils-2..patch
"
diff --git a/main/valgrind/musl.supp b/main/valgrind/musl.supp
deleted file mode 100644
index 864172a2426..00000000000
--- a/main/valgrind/musl.supp
+++ /dev/null
@@ -1,46 +0,0 @@
-# Suppressions for musl libc
-# See: https://www.openwall.com/lists/musl/2017/06/15/4
-
-{
- musl-dynlink-false-positive1
- Memcheck:Leak
- fun:calloc
- fun:load_direct_deps
- fun:load_deps
- fun:load_deps
- fun:__dls3
- fun:__dls2b
- fun:__dls2
-}
-
-{
- musl-dynlink-false-positive2
- Memcheck:Leak
- fun:calloc
- fun:load_direct_deps
- fun:load_deps
- fun:load_deps
- fun:__dls3
- fun:__dls2
-}
-
-{
- musl-dynlink-false-positive3
- Memcheck:Leak
- fun:calloc
- fun:load_library
- fun:load_preload
- fun:__dls3
- fun:__dls2b
- fun:__dls2
-}
-
-{
- musl-dynlink-false-positive4
- Memcheck:Leak
- fun:calloc
- fun:load_library
- fun:load_preload
- fun:__dls3
- fun:__dls2
-}
diff --git a/main/valgrind/uclibc.patch b/main/valgrind/uclibc.patch
deleted file mode 100644
index 69281ab2cb9..00000000000
--- a/main/valgrind/uclibc.patch
+++ /dev/null
@@ -1,10 +0,0 @@
---- ./coregrind/vg_preloaded.c.orig
-+++ ./coregrind/vg_preloaded.c
-@@ -42,6 +42,7 @@
- originates from Valgrind.
- ------------------------------------------------------------------ */
-
-+#include <features.h>
- #include "pub_core_basics.h"
- #include "pub_core_clreq.h"
- #include "pub_core_debuginfo.h" // Needed for pub_core_redir.h
diff --git a/main/valgrind/valgrind-3.13.0-malloc.patch b/main/valgrind/valgrind-3.13.0-malloc.patch
deleted file mode 100644
index d0eb795b84b..00000000000
--- a/main/valgrind/valgrind-3.13.0-malloc.patch
+++ /dev/null
@@ -1,24 +0,0 @@
---- valgrind-3.13.0/coregrind/m_replacemalloc/vg_replace_malloc.c
-+++ valgrind-3.13.0/coregrind/m_replacemalloc/vg_replace_malloc.c
-@@ -765,13 +765,15 @@ static void init(void);
- DO_INIT; \
- MALLOC_TRACE("realloc(%p,%llu)", ptrV, (ULong)new_size ); \
- \
-- if (ptrV == NULL) \
-- /* We need to call a malloc-like function; so let's use \
-- one which we know exists. */ \
-- return VG_REPLACE_FUNCTION_EZU(10010,VG_Z_LIBC_SONAME,malloc) \
-- (new_size); \
-+ if (ptrV == NULL) { \
-+ TRIGGER_MEMCHECK_ERROR_IF_UNDEFINED(new_size); \
-+ v = (void*)VALGRIND_NON_SIMD_CALL1( info.tl_malloc, new_size ); \
-+ MALLOC_TRACE(" = %p\n", v ); \
-+ return v; \
-+ } \
- if (new_size <= 0) { \
-- VG_REPLACE_FUNCTION_EZU(10050,VG_Z_LIBC_SONAME,free)(ptrV); \
-+ if (ptrV != NULL) \
-+ VALGRIND_NON_SIMD_CALL1( info.tl_free, ptrV ); \
- MALLOC_TRACE(" = 0\n"); \
- return NULL; \
- } \
diff --git a/main/vanessa_adt/APKBUILD b/main/vanessa_adt/APKBUILD
index 26ad040cbc1..265f66e19fc 100644
--- a/main/vanessa_adt/APKBUILD
+++ b/main/vanessa_adt/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=vanessa_adt
pkgver=0.0.9
-pkgrel=1
+pkgrel=3
pkgdesc="Library of abstract data types"
url="http://horms.net/projects/perdition/"
arch="all"
diff --git a/main/vanessa_logger/APKBUILD b/main/vanessa_logger/APKBUILD
index b49115c42d8..99b462b4261 100644
--- a/main/vanessa_logger/APKBUILD
+++ b/main/vanessa_logger/APKBUILD
@@ -1,7 +1,7 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=vanessa_logger
pkgver=0.0.10
-pkgrel=1
+pkgrel=3
pkgdesc="Logging library"
url="http://horms.net/projects/perdition/"
arch="all"
@@ -10,6 +10,7 @@ subpackages="$pkgname-dev $pkgname-doc"
source="http://horms.net/projects/vanessa/download/vanessa_logger/$pkgver/vanessa_logger-$pkgver.tar.bz2
fix-standard.patch
"
+options="!check"
prepare() {
update_config_sub
diff --git a/main/vanessa_socket/APKBUILD b/main/vanessa_socket/APKBUILD
index 79eba18554d..4807e54fd10 100644
--- a/main/vanessa_socket/APKBUILD
+++ b/main/vanessa_socket/APKBUILD
@@ -1,18 +1,15 @@
# Maintainer: Leonardo Arena <rnalrd@alpinelinux.org>
pkgname=vanessa_socket
pkgver=0.0.13
-pkgrel=0
+pkgrel=2
pkgdesc="User space TCP/IP pipe"
url="http://horms.net/projects/perdition/"
arch="all"
license="LGPL-2.0-or-later"
-depends=
depends_dev="popt-dev vanessa_logger-dev"
makedepends="$depends_dev"
-install=""
subpackages="$pkgname-dev $pkgname-doc"
-source="http://horms.net/projects/vanessa/download/$pkgname/$pkgver/$pkgname-$pkgver.tar.bz2"
-builddir="$srcdir"/$pkgname-$pkgver
+source="http://horms.net/projects/vanessa/download/vanessa_socket/$pkgver/vanessa_socket-$pkgver.tar.bz2"
prepare() {
default_prepare
@@ -21,7 +18,6 @@ prepare() {
build() {
export LDFLAGS="$LDFLAGS -lvanessa_logger"
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -33,12 +29,10 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
diff --git a/main/varnish/APKBUILD b/main/varnish/APKBUILD
index 0a675ea223d..202f39741a5 100644
--- a/main/varnish/APKBUILD
+++ b/main/varnish/APKBUILD
@@ -3,7 +3,7 @@
# Contributor: V.Krishn <vkrishn4@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=varnish
-pkgver=7.1.0
+pkgver=7.5.0
pkgrel=0
pkgdesc="High-performance HTTP accelerator"
url="https://www.varnish-cache.org/"
@@ -17,7 +17,6 @@ subpackages="$pkgname-dbg $pkgname-dev $pkgname-doc $pkgname-libs $pkgname-openr
pkgusers="varnish"
pkggroups="varnish"
-# 0001-r02451-fix.patch has been fixed upstream, remove it during next major release
source="https://varnish-cache.org/_downloads/varnish-$pkgver.tgz
varnishd.initd
varnishd.confd
@@ -26,13 +25,22 @@ source="https://varnish-cache.org/_downloads/varnish-$pkgver.tgz
varnishncsa.initd
varnishncsa.confd
varnishd.logrotate
- varnishreload::https://github.com/varnishcache/pkg-varnish-cache/raw/3ba24a8eee8cc5c082714034145b907402bbdb83/systemd/varnishreload"
+ varnishreload-$pkgver::https://github.com/varnishcache/pkg-varnish-cache/raw/35cba4e219b135b637bfd4fb27d98d548f21c20e/systemd/varnishreload"
case "$CARCH" in
- ppc64le) options="$options !check";; # tests fail
+ ppc64le|loongarch64) options="$options !check";; # tests fail
esac
# secfixes:
+# 7.5.0-r0:
+# - CVE-2024-30156 VSV00014
+# 7.4.2-r0:
+# - CVE-2023-44487 VSV00013
+# 7.2.1-r0:
+# - CVE-2022-45059 VSV00010
+# - CVE-2022-45060 VSV00011
+# 7.0.3-r0:
+# - CVE-2022-38150
# 7.0.2-r0:
# - CVE-2022-23959
# 6.6.1-r0:
@@ -44,10 +52,6 @@ esac
# 5.1.3-r0:
# - CVE-2017-12425
-prepare() {
- default_prepare
-}
-
build() {
./configure \
--build="$CBUILD" \
@@ -84,7 +88,7 @@ package() {
"$pkgdir"/var/log/varnish \
"$pkgdir"/var/lib/varnish
install -d -o root -g varnish -m750 "$pkgdir"/etc/varnish
- install -m755 "$srcdir"/varnishreload "$pkgdir"/usr/bin/varnishreload
+ install -m755 "$srcdir"/varnishreload-$pkgver "$pkgdir"/usr/bin/varnishreload
}
libs() {
@@ -95,7 +99,7 @@ libs() {
}
sha512sums="
-ad9ce0cdc759976fcb7044914d28863edd197167f583fab2d1bc57f4e5b86c224b7c948faf1f7364a2a16bde9c415375d011462bdc43026c5f7a60e65bd21f73 varnish-7.1.0.tgz
+ca77abcb21299942b2bfd433e5f964d2e974cdae92d6a8889217fcd81933a3b7bc1e70ba87d7e842a4f90b59d7948242155380054d67ad49aab8dcea343055a2 varnish-7.5.0.tgz
be449f7cab645f7e2db49f00992aaec254423bb90d4cabdfbf21b272871907420e30e07c0cc46562565739e9a226ce142abc274d99b9418c57ce359ed4be8c19 varnishd.initd
494431a4cf37c5bbd0d533a08f0bc27ef58b66be7d82f78b3ccbc343368f4a159f9b76a7a5d4271dd16fe5e3b7bc47dfc828d0c821ffb5343dfc62c08e29f506 varnishd.confd
c67a7898f40849989edcbe74e1a418e196f48e178ca30126bc13db226e4f4c2c2ba74d9d0650ef68ed88732917fc06b80ef1f62c2d9d2c14a89f26fd25aed0f7 varnishlog.initd
@@ -103,5 +107,5 @@ c67a7898f40849989edcbe74e1a418e196f48e178ca30126bc13db226e4f4c2c2ba74d9d0650ef68
e0b7d67bbd710f0a17b77837c581f128e6b746eff2b12e81d03d1ad040037e95bb00fb8007d89bc6dab18cfa659456078f310ac268f104774ef85ad068efecca varnishncsa.initd
a5426ff66b89d2afb6273f05e4117b3eec5ce0162a624d52c92b418960f72e58bd01224165613221af76ec241bd98e1eb985b2ef7b83a5b615e9ece67234dcc8 varnishncsa.confd
51cc6d46ff7439de93977ab87dfb0af399458c1e446475696f73342ae7a0c1a8ca8fc6e79e593659f1af30716a5f8a1ee5e3b1f5e7b35df40b45d47e7b0f2ffd varnishd.logrotate
-0f26757507d87b4a9144fd48b65bc04c891d49261df6f74f7cb66ca3521f1a3989318c9c9fe625213366987df13f0c24fdde2cdd2c303441545bf449052d6781 varnishreload
+282049f4d9ce2f64a3419678368e0933882e6bf959693df2125aa85e0fc280c59e0d42f830107e619d4760d01cc84e33dcf6b687a1ae9b40168f9c0a90c5d769 varnishreload-7.5.0
"
diff --git a/main/vde2/APKBUILD b/main/vde2/APKBUILD
deleted file mode 100644
index a3385680707..00000000000
--- a/main/vde2/APKBUILD
+++ /dev/null
@@ -1,63 +0,0 @@
-# Maintainer: Michael Zhou <zhoumichaely@gmail.com>
-pkgname=vde2
-pkgver=2.3.2
-pkgrel=16
-pkgdesc="VDE: Virtual Distributed Ethernet. User mode networking for QEMU, UML, etc."
-url="http://vde.sf.net"
-arch="all"
-options="!check" # No test suite.
-license="GPL"
-depends="openssl"
-install="vde2.pre-install"
-makedepends="linux-headers openssl1.1-compat-dev libpcap-dev python3-dev"
-subpackages="$pkgname-doc $pkgname-dev $pkgname-libs"
-source="https://downloads.sourceforge.net/project/vde/vde2/$pkgver/vde2-$pkgver.tar.gz
- musl-build-fix.patch
- vde_cryptcab-compile-against-openssl-1.1.0.patch
- inline.patch
- vde2.pre-up
- vde2.post-down
- "
-
-builddir="$srcdir"/$pkgname-$pkgver
-prepare() {
- cd "$builddir"
- default_prepare
-
- update_config_sub
-}
-
-build() {
- cd "$builddir"
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc
- make -C src/common
- make -j1 -C src/lib
- make
-}
-
-package() {
- cd "$builddir"
- make -j1 DESTDIR="$pkgdir" install
-
- install -Dm755 "$srcdir"/vde2.pre-up \
- "$pkgdir"/etc/network/if-pre-up.d/vde2
- install -Dm755 "$srcdir"/vde2.post-down \
- "$pkgdir"/etc/network/if-post-down.d/vde2
-}
-
-libs() {
- pkgdesc="Virtual Distributed Ethernet libraries"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/lib*.so.* "$subpkgdir"/usr/lib/
-}
-
-sha512sums="b502ceac8eebd30694a25d913c1d321b58ec8ae97dec0b09acc40455f7a97c05040ff395242c144580a9d9d5cb19292055bc94133ea1bde66bfdab40844533a8 vde2-2.3.2.tar.gz
-52d02c3a5a4f5526ed2e653e5720f012501215c0440e26105c585ea0501423da04047f6bad13a71b7378397a9d9274b191007d839876b675e206ed5be0f25372 musl-build-fix.patch
-e24f7728030c1bc89b885c58ecf443d0f7297f6c9f73d87fa37092a691dfac191e65fb07a11ed44b718bbd18011fdb4e034f66ef63a8fbb06dfb06fd51c3826a vde_cryptcab-compile-against-openssl-1.1.0.patch
-76692aafd60b5c329dd6572a0ef8308f4fcc330f6f8eb4326e11678cf6946e6947bd18a32b0a84cf4cda4a2048e2c73e82c77013368d3335f3145f2121df68d6 inline.patch
-71b29d538bba80b881f239d683215279089c14e8feec05bf27c159ead51094cdfb168281900fa4527f588c624e8f7687df8d3f79377e07d13ad64de613177df3 vde2.pre-up
-d1cf18146145dbe608842c694b05d2906e36553b0ba3fa1ec2e53dbf06027b9e4937ea61aee77c1ccbb73b818f19d55787051eb6d5b09a38c7d18a1dad629190 vde2.post-down"
diff --git a/main/vde2/inline.patch b/main/vde2/inline.patch
deleted file mode 100644
index b11840fda45..00000000000
--- a/main/vde2/inline.patch
+++ /dev/null
@@ -1,21 +0,0 @@
-diff --git a/src/vde_switch/fstp.c b/src/vde_switch/fstp.c
-index ac5e313..26c5a67 100644
---- a/src/vde_switch/fstp.c
-+++ b/src/vde_switch/fstp.c
-@@ -30,14 +30,14 @@ static int numports;
- #ifdef FSTP
- #include <fstp.h>
- /*********************** sending macro used by FSTP & Core ******************/
--void inline ltonstring(unsigned long l,unsigned char *s) {
-+static void ltonstring(unsigned long l,unsigned char *s) {
- s[3]=l; l>>=8;
- s[2]=l; l>>=8;
- s[1]=l; l>>=8;
- s[0]=l;
- }
-
--unsigned long inline nstringtol(unsigned char *s) {
-+static unsigned long nstringtol(unsigned char *s) {
- return (s[0]<<24)+(s[1]<<16)+(s[2]<<8)+s[3];
- }
-
diff --git a/main/vde2/musl-build-fix.patch b/main/vde2/musl-build-fix.patch
deleted file mode 100644
index c03459c6e9b..00000000000
--- a/main/vde2/musl-build-fix.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/src/vdetaplib/libvdetap.c b/src/vdetaplib/libvdetap.c
-index 00cd401..c70f290 100644
---- a/src/vdetaplib/libvdetap.c
-+++ b/src/vdetaplib/libvdetap.c
-@@ -121,6 +121,10 @@ int open(const char *path, int flags, ...)
- return native_open(path, flags, data);
- }
-
-+/* musl apparently defines open64 as a macro */
-+#ifdef open64
-+#undef open64
-+#endif
- int open64(const char *path, int flags, ...)
- {
- va_list ap;
diff --git a/main/vde2/vde2.post-down b/main/vde2/vde2.post-down
deleted file mode 100644
index be5f5b31d88..00000000000
--- a/main/vde2/vde2.post-down
+++ /dev/null
@@ -1,37 +0,0 @@
-#!/bin/sh
-
-VDE_SWITCH=/usr/bin/vde_switch
-SLIRPVDE=/usr/bin/slirpvde
-
-# this is not an interesting stanza for us
-if [ -z "$IF_VDE2_SWITCH" -a -z "$IF_VDE2_PLUG" -a -z "$IF_VDE2_SLIRP" ]; then
- exit 0
-fi
-
-PIDFILE="/var/run/vde2/$IFACE-plug.pid"
-CTLFILE="/var/run/vde2/$IFACE.ctl"
-if [ -f $PIDFILE ]; then
- start-stop-daemon --stop --quiet --pidfile $PIDFILE
- rm -f $PIDFILE
-fi
-
-PIDFILE="/var/run/vde2/$IFACE-slirp.pid"
-if [ -f $PIDFILE ]; then
- start-stop-daemon --stop --quiet --pidfile $PIDFILE \
- --exec $SLIRPVDE
- rm -f $PIDFILE
-fi
-
-PIDFILE="/var/run/vde2/$IFACE.pid"
-CTLDIR="/var/run/vde2/$IFACE.ctl"
-if [ -f $PIDFILE ]; then
- start-stop-daemon --stop --quiet --pidfile $PIDFILE \
- --exec $VDE_SWITCH
- rm -f $PIDFILE
-
- # set the tap interface to non-persistant, see #568363
- vde_tunctl -b -d $IFACE 1>/dev/null
-fi
-
-rm -rf $CTLDIR
-rm -f $CTLDIR.*
diff --git a/main/vde2/vde2.pre-install b/main/vde2/vde2.pre-install
deleted file mode 100644
index 3c3e08d47bf..00000000000
--- a/main/vde2/vde2.pre-install
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-
-addgroup -S vde2-net 2>/dev/null
-adduser -S -D -H -h /var/run/vde2 -s /sbin/nologin -G vde2-net -g vde2-net vde2-net 2>/dev/null
-
-exit 0
diff --git a/main/vde2/vde2.pre-up b/main/vde2/vde2.pre-up
deleted file mode 100644
index 991b382265b..00000000000
--- a/main/vde2/vde2.pre-up
+++ /dev/null
@@ -1,74 +0,0 @@
-#!/bin/sh
-
-VDE_SWITCH=/usr/bin/vde_switch
-VDE_PLUG=/usr/bin/vde_plug
-SLIRPVDE=/usr/bin/slirpvde
-DPIPE=/usr/bin/dpipe
-RUNDIR=/var/run/vde2
-
-USER=vde2-net
-GROUP=vde2-net
-
-if [ ! -x $VDE_SWITCH ] || [ ! -x $SLIRPVDE ]; then
- exit 0
-fi
-
-# this is not an interesting stanza for us
-if [ -z "$IF_VDE2_SWITCH" -a -z "$IF_VDE2_PLUG" -a -z "$IF_VDE2_SLIRP" ]; then
- exit 0
-fi
-
-
-# Create directory if missing
-if [ ! -d $RUNDIR ]; then
- mkdir -p $RUNDIR
- chown vde2-net:vde2-net $RUNDIR
- chmod 2770 $RUNDIR
-fi
-
-# vde2-switch [-|<args>]
-if [ -n "$IF_VDE2_SWITCH" ]; then
- set -- $IF_VDE2_SWITCH
- test "$1" = "-" && shift
- PIDFILE="$RUNDIR/$IFACE.pid"
- CTLDIR="$RUNDIR/$IFACE.ctl"
- MGMTFILE="$RUNDIR/$IFACE.mgmt"
-
- if [ "$METHOD" = "manual" ]; then
- TAPOPTS=""
- else
- TAPOPTS="-t $IFACE"
- fi
-
- # block to make sure the interface exists, see #568363
- vde_tunctl -b -t $IFACE 1>/dev/null
-
- start-stop-daemon --start --quiet --pidfile $PIDFILE \
- --exec $VDE_SWITCH -- \
- -s $CTLDIR -m 660 -g $GROUP -p $PIDFILE $TAPOPTS \
- -M $MGMTFILE --mgmtmode 660 -d "$@"
-fi
-
-# vde2-plug <dpipe_cmd2>
-if [ -n "$IF_VDE2_PLUG" ]; then
- set -- $IF_VDE2_PLUG
- PIDFILE="$RUNDIR/$IFACE-plug.pid"
- CTLDIR="$RUNDIR/$IFACE.ctl"
-
- start-stop-daemon --start --quiet --pidfile $PIDFILE \
- --make-pidfile --background \
- --exec $DPIPE -- $VDE_PLUG -g $GROUP -m 660 $CTLDIR = "$@"
-fi
-
-# vde2-slirp [-|<args>]
-if [ -n "$IF_VDE2_SLIRP" ]; then
- set -- $IF_VDE2_SLIRP
- test "$1" = "-" && shift
- PIDFILE="$RUNDIR/$IFACE-slirp.pid"
- CTLDIR="$RUNDIR/$IFACE.ctl"
-
- start-stop-daemon --start --quiet --pidfile $PIDFILE \
- --chuid $USER \
- --exec $SLIRPVDE -- \
- -s $CTLDIR -m 660 -p $PIDFILE -d "$@"
-fi
diff --git a/main/vde2/vde_cryptcab-compile-against-openssl-1.1.0.patch b/main/vde2/vde_cryptcab-compile-against-openssl-1.1.0.patch
deleted file mode 100644
index 227312eabbd..00000000000
--- a/main/vde2/vde_cryptcab-compile-against-openssl-1.1.0.patch
+++ /dev/null
@@ -1,92 +0,0 @@
---- a/src/vde_cryptcab/cryptcab.c 2011-11-23 16:41:17.000000000 +0000
-+++ b/src/vde_cryptcab/cryptcab.c 2017-03-20 22:54:20.452975075 +0000
-@@ -22,7 +22,7 @@
- exit(1);
- }
-
--static EVP_CIPHER_CTX ctx;
-+static EVP_CIPHER_CTX *ctx;
- static int ctx_initialized = 0;
- static int encryption_disabled = 0;
- static int nfd;
-@@ -30,6 +30,10 @@
- static struct vde_open_args open_args={.port=0,.group=NULL,.mode=0700};
- static int verbose = 0;
-
-+#if OPENSSL_VERSION_NUMBER < 0x10100000
-+#define EVP_CIPHER_CTX_reset(x) EVP_CIPHER_CTX_cleanup(x)
-+#endif
-+
- void vc_printlog(int priority, const char *format, ...)
- {
- va_list arg;
-@@ -103,19 +107,21 @@
- }
-
- if (!ctx_initialized) {
-- EVP_CIPHER_CTX_init (&ctx);
-+ ctx = EVP_CIPHER_CTX_new ();
-+ if (!ctx)
-+ return -1;
- ctx_initialized = 1;
- }
-
-- EVP_EncryptInit (&ctx, EVP_bf_cbc (), p->key, p->iv);
-- if (EVP_EncryptUpdate (&ctx, dst, &olen, src, len) != 1)
-+ EVP_EncryptInit (ctx, EVP_bf_cbc (), p->key, p->iv);
-+ if (EVP_EncryptUpdate (ctx, dst, &olen, src, len) != 1)
- {
- fprintf (stderr,"error in encrypt update\n");
- olen = -1;
- goto cleanup;
- }
-
-- if (EVP_EncryptFinal (&ctx, dst + olen, &tlen) != 1)
-+ if (EVP_EncryptFinal (ctx, dst + olen, &tlen) != 1)
- {
- fprintf (stderr,"error in encrypt final\n");
- olen = -1;
-@@ -124,7 +130,7 @@
- olen += tlen;
-
- cleanup:
-- EVP_CIPHER_CTX_cleanup(&ctx);
-+ EVP_CIPHER_CTX_reset(ctx);
- return olen;
- }
-
-@@ -138,19 +144,21 @@
- }
-
- if (!ctx_initialized) {
-- EVP_CIPHER_CTX_init (&ctx);
-+ ctx = EVP_CIPHER_CTX_new ();
-+ if (!ctx)
-+ return -1;
- ctx_initialized = 1;
- }
-
-- EVP_DecryptInit (&ctx, EVP_bf_cbc (), p->key, p->iv);
-- if (EVP_DecryptUpdate (&ctx, dst, &olen, src, len) != 1)
-+ EVP_DecryptInit (ctx, EVP_bf_cbc (), p->key, p->iv);
-+ if (EVP_DecryptUpdate (ctx, dst, &olen, src, len) != 1)
- {
- fprintf (stderr,"error in decrypt update\n");
- olen = -1;
- goto cleanup;
- }
-
-- if (EVP_DecryptFinal (&ctx, dst + olen, &tlen) != 1)
-+ if (EVP_DecryptFinal (ctx, dst + olen, &tlen) != 1)
- {
- fprintf (stderr,"error in decrypt final\n");
- olen = -1;
-@@ -159,7 +167,7 @@
- olen += tlen;
-
- cleanup:
-- EVP_CIPHER_CTX_cleanup(&ctx);
-+ EVP_CIPHER_CTX_reset (ctx);
- return olen;
- }
-
diff --git a/main/vim/APKBUILD b/main/vim/APKBUILD
index 3859f5ed0de..4ca0c1df109 100644
--- a/main/vim/APKBUILD
+++ b/main/vim/APKBUILD
@@ -3,14 +3,13 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=vim
-pkgver=9.0.0009
-pkgrel=0
+pkgver=9.1.0
+pkgrel=2
pkgdesc="Improved vi-style text editor"
url="https://www.vim.org/"
arch="all"
license="Vim"
options="!check" # some tests are failing
-depends="xxd"
makedepends="
gtk+3.0-dev
libx11-dev
@@ -20,12 +19,90 @@ makedepends="
python3-dev
ruby-dev
"
-subpackages="$pkgname-doc ${pkgname}diff::noarch $pkgname-tutor gvim xxd"
-source="$pkgname-$pkgver.tar.gz::https://github.com/vim/vim/archive/v$pkgver.tar.gz
+subpackages="
+ $pkgname-doc
+ ${pkgname}diff
+ $pkgname-tutor
+ $pkgname-common
+ gvim
+ xxd
+ "
+source="$pkgname-$pkgver.tar.gz::https://github.com/vim/vim/archive/refs/tags/v$pkgver.tar.gz
vimrc
"
# secfixes:
+# 9.0.2127-r0:
+# - CVE-2023-48706
+# 9.0.2112-r0:
+# - CVE-2023-48231
+# 9.0.2073-r0:
+# - CVE-2023-5535
+# 9.0.1994-r0:
+# - CVE-2023-5344
+# 9.0.1888-r0:
+# - CVE-2023-4733
+# - CVE-2023-4734
+# - CVE-2023-4735
+# - CVE-2023-4736
+# - CVE-2023-4738
+# - CVE-2023-4750
+# - CVE-2023-4752
+# - CVE-2023-4781
+# 9.0.1413-r0:
+# - CVE-2023-1264
+# 9.0.1395-r0:
+# - CVE-2023-1127
+# - CVE-2023-1170
+# - CVE-2023-1175
+# - CVE-2023-1355
+# 9.0.1251-r0:
+# - CVE-2023-0433
+# - CVE-2023-0512
+# 9.0.1198-r0:
+# - CVE-2023-0288
+# 9.0.1167-r0:
+# - CVE-2023-0049
+# - CVE-2023-0051
+# - CVE-2023-0054
+# 9.0.0999-r0:
+# - CVE-2022-4141
+# - CVE-2022-4292
+# - CVE-2022-4293
+# - CVE-2022-47024
+# 9.0.0815-r0:
+# - CVE-2022-3705
+# 9.0.0636-r0:
+# - CVE-2022-3352
+# 9.0.0598-r0:
+# - CVE-2022-3234
+# - CVE-2022-3235
+# - CVE-2022-3256
+# - CVE-2022-3278
+# 9.0.0437-r0:
+# - CVE-2022-3134
+# 9.0.0369-r0:
+# - CVE-2022-2980
+# - CVE-2022-2982
+# - CVE-2022-3016
+# - CVE-2022-3037
+# - CVE-2022-3099
+# 9.0.0270-r0:
+# - CVE-2022-2923
+# - CVE-2022-2946
+# 9.0.0224-r0:
+# - CVE-2022-2816
+# - CVE-2022-2817
+# - CVE-2022-2819
+# 9.0.0050-r0:
+# - CVE-2022-2264
+# - CVE-2022-2284
+# - CVE-2022-2285
+# - CVE-2022-2286
+# - CVE-2022-2287
+# - CVE-2022-2288
+# - CVE-2022-2289
+# - CVE-2022-2304
# 8.2.5170-r0:
# - CVE-2022-2124
# - CVE-2022-2125
@@ -110,11 +187,13 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/vim/vim/archive/v$pkgver.tar
prepare() {
# Read vimrc from /etc/vim
echo '#define SYS_VIMRC_FILE "/etc/vim/vimrc"' >> src/feature.h
+
cp -r "$builddir" "$builddir"-gvim
default_prepare
}
build() {
+ export CFLAGS="$CFLAGS -flto=auto"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -153,57 +232,74 @@ check() {
}
package() {
- make -j1 DESTDIR="$pkgdir/" install
+ depends="vim-common=$pkgver-r$pkgrel xxd=$pkgver-r$pkgrel"
+ provider_priority=10
+ replaces="gvim"
+
+ make -j1 DESTDIR="$pkgdir" install
install -Dm644 runtime/doc/uganda.txt \
"$pkgdir/usr/share/licenses/$pkgname/LICENSE"
install -Dm644 "$srcdir"/vimrc "$pkgdir"/etc/vim/vimrc
+
+ # only relevant to gvim
+ rm -r "$pkgdir"/usr/share/icons/
+ rm -r "$pkgdir"/usr/share/applications/
+}
+
+common() {
+ replaces="vim gvim"
+ arch="noarch"
+ amove etc/vim/vimrc
+ amove usr/share/vim
}
gvim() {
pkgdesc="advanced text editor, with GUI"
- provides="vim"
- cd "$builddir"-gvim
- make -j1 DESTDIR="$subpkgdir/" install
+ depends="vim-common=$pkgver-r$pkgrel xxd=$pkgver-r$pkgrel"
+ provides="vim=$pkgver-r$pkgrel"
+ provider_priority=1
+ replaces="vim"
- install -Dm644 runtime/doc/uganda.txt \
- "$subpkgdir/usr/share/licenses/$pkgname/LICENSE"
- install -Dm644 "$srcdir"/vimrc "$subpkgdir"/etc/vim/vimrc
- rm -rf "$subpkgdir"/usr/share/man
- rm "$subpkgdir/usr/bin/xxd"
+ make -C "$builddir"-gvim -j1 DESTDIR="$subpkgdir" install
+
+ rm "$subpkgdir"/usr/bin/vimdiff
+ rm "$subpkgdir"/usr/bin/vimtutor
+ rm -r "$subpkgdir"/usr/share/man
+ rm -r "$subpkgdir"/usr/share/vim
+ rm "$subpkgdir"/usr/bin/xxd
}
vimdiff() {
pkgdesc="view file diffs in vim"
- depends="diffutils vim"
+ depends="diffutils vim=$pkgver-r$pkgrel"
+ replaces="vim gvim"
+ arch="noarch"
options="!tracedeps"
+ provides="cmd:vimdiff=$pkgver-r$pkgrel"
- install -d "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/bin/vimdiff "$subpkgdir"/usr/bin
+ amove usr/bin/vimdiff
}
tutor() {
pkgdesc="vim tutor and tutor files"
- depends="vim"
- options="!tracedeps"
- local _v=$(echo ${pkgver%.*} | tr -d '.')
+ depends="vim=$pkgver-r$pkgrel"
+ replaces="gvim vim"
+ arch="noarch"
- install -d "$subpkgdir"/usr/bin
- install -d "$subpkgdir"/usr/share/vim/vim$_v/tutor
- mv "$pkgdir"/usr/bin/vimtutor "$subpkgdir"/usr/bin
- mv "$pkgdir"/usr/share/vim/vim$_v/tutor "$subpkgdir"/usr/share/vim/vim$_v/
+ amove usr/bin/vimtutor
+ amove usr/share/vim/vim*/tutor
}
xxd() {
pkgdesc="tool to make (or reverse) a hex dump"
depends=""
- echo "$pkgdir" "$subpkgdir"
- mkdir -p "$subpkgdir/usr/bin"
- mv "$pkgdir/usr/bin/xxd" \
- "$subpkgdir/usr/bin/"
+ replaces="gvim vim"
+
+ amove usr/bin/xxd
}
sha512sums="
-d6f725b29853a54282c12d161b145fc45064cdfba5721a57e7947df5aa846a8f9260c823fc8b8d2a879fc3c38b832b9ab7a2a4e3b3f941d78cdad97750eb3cae vim-9.0.0009.tar.gz
-9ed58e38fe9d72f934eb507b27c18590c33c648eb7ca2639a9afdcaa1c2c4e0873a4e4252d2b6cc28127d1ded227a1e8ac338c93958526f98a3b66dbdf6afcc8 vimrc
+d7038c5c413bfd1a125a893c0b1d3e498e9ce6b5df7d45ef536faac966ce2846b08fe2982010c31f30b34fda07ba2c6922d795806509d05d73768626edc70374 vim-9.1.0.tar.gz
+bb4ac5bd2862754e741e63d7b521fd9e0cb1ac19769b952672928fd26471e9486182cd8a46a7e6f25e5b87759106e642293534c5e90c3c3958308291acb26875 vimrc
"
diff --git a/main/vim/vimrc b/main/vim/vimrc
index 043453c7167..0c2ebe3ce04 100644
--- a/main/vim/vimrc
+++ b/main/vim/vimrc
@@ -12,7 +12,6 @@ set suffixes+=.info,.aux,.log,.dvi,.bbl,.out,.o,.lo
set nomodeline
syntax on
-autocmd BufRead APKBUILD set filetype=sh
if filereadable("/etc/vim/vimrc.local")
source /etc/vim/vimrc.local
diff --git a/main/vlan/APKBUILD b/main/vlan/APKBUILD
index 2d5d91f662f..ab184a059ad 100644
--- a/main/vlan/APKBUILD
+++ b/main/vlan/APKBUILD
@@ -2,11 +2,11 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=vlan
pkgver=2.3
-pkgrel=0
+pkgrel=1
pkgdesc="Scripts for configuring VLAN network interfaces"
url="https://wiki.alpinelinux.org/wiki/Vlan"
arch="noarch"
-license="GPL"
+license="GPL-2.0-only"
options="!check" # No testsuite
source="mvlan.post-down
mvlan.pre-up
diff --git a/main/vulkan-headers/APKBUILD b/main/vulkan-headers/APKBUILD
new file mode 100644
index 00000000000..980ee7f80e0
--- /dev/null
+++ b/main/vulkan-headers/APKBUILD
@@ -0,0 +1,34 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Contributor: Simon Zeni <simon@bl4ckb0ne.ca>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=vulkan-headers
+_pkgname=Vulkan-Headers
+# Please be VERY careful upgrading this - vulkan-headers breaks API even
+# on point releases. So please make sure everything using this still builds
+# after upgrades
+pkgver=1.3.261.1
+pkgrel=0
+arch="noarch"
+url="https://www.vulkan.org/"
+pkgdesc="Vulkan header files"
+license="Apache-2.0"
+makedepends="cmake samurai"
+source="https://github.com/khronosgroup/vulkan-headers/archive/refs/tags/sdk-$pkgver/vulkan-headers-v$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-sdk-$pkgver"
+options="!check" # No tests
+
+build() {
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+ad896b76e229da538e5f1fd992fc2643daec5ca330e2ee42d3360ea855561773379302a9e666c502af0d10c7b2820ee48e4f17f78a1f1c1a614e3e0f10fc2c4f vulkan-headers-v1.3.261.1.tar.gz
+"
diff --git a/main/vulkan-loader/APKBUILD b/main/vulkan-loader/APKBUILD
new file mode 100644
index 00000000000..beefb7dd069
--- /dev/null
+++ b/main/vulkan-loader/APKBUILD
@@ -0,0 +1,45 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Contributor: Simon Zeni <simon@bl4ckb0ne.ca>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=vulkan-loader
+_pkgname=Vulkan-Loader
+pkgver=1.3.261.1
+pkgrel=0
+arch="all"
+url="https://www.khronos.org/vulkan"
+pkgdesc="Vulkan Installable Client Driver (ICD) Loader"
+license="Apache-2.0"
+depends_dev="vulkan-headers"
+makedepends="$depends_dev
+ cmake
+ libx11-dev
+ libxrandr-dev
+ python3
+ samurai
+ wayland-dev
+ "
+source="https://github.com/khronosgroup/vulkan-loader/archive/refs/tags/sdk-$pkgver/vulkan-loader-sdk-$pkgver.tar.gz"
+subpackages="$pkgname-dbg $pkgname-dev"
+builddir="$srcdir/$_pkgname-sdk-$pkgver"
+options="!check" # No tests
+
+build() {
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_INSTALL_SYSCONFDIR=/etc \
+ -DCMAKE_INSTALL_DATADIR=share \
+ -DCMAKE_SKIP_RPATH=True \
+ -DVULKAN_HEADERS_INSTALL_DIR=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+24f233f8f0a765c442b471f59eeb4032c166d113017d873a758f591ac7c508271fc1d55ce632f59a86ab348ca9694e1df7d362752e8b86407037caf2a347a316 vulkan-loader-sdk-1.3.261.1.tar.gz
+"
diff --git a/main/vulkan-tools/APKBUILD b/main/vulkan-tools/APKBUILD
new file mode 100644
index 00000000000..c063df8fd83
--- /dev/null
+++ b/main/vulkan-tools/APKBUILD
@@ -0,0 +1,49 @@
+# Contributor: Bart Ribbers <bribbers@disroot.org>
+# Contributor: Simon Zeni <simon@bl4ckb0ne.ca>
+# Maintainer: Bart Ribbers <bribbers@disroot.org>
+pkgname=vulkan-tools
+_pkgname=Vulkan-Tools
+pkgver=1.3.261.1
+pkgrel=0
+arch="all"
+url="https://www.khronos.org/vulkan"
+pkgdesc="Vulkan Utilities and Tools"
+license="Apache-2.0"
+makedepends="
+ cmake
+ glslang-dev
+ libx11-dev
+ libxrandr-dev
+ python3
+ samurai
+ vulkan-headers
+ vulkan-loader-dev
+ wayland-dev
+ wayland-protocols-dev
+ "
+source="https://github.com/KhronosGroup/Vulkan-Tools/archive/refs/tags/sdk-$pkgver/vulkan-tools-sdk-$pkgver.tar.gz"
+builddir="$srcdir/$_pkgname-sdk-$pkgver"
+options="!check" # No tests
+
+build() {
+ CXXFLAGS="$CXXFLAGS -flto=auto" \
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DCMAKE_INSTALL_LIBDIR=lib \
+ -DCMAKE_INSTALL_SYSCONFDIR=/etc \
+ -DCMAKE_INSTALL_DATADIR=/usr/share \
+ -DCMAKE_SKIP_RPATH=True \
+ -DBUILD_CUBE=ON \
+ -DBUILD_VULKANINFO=ON \
+ -DGLSLANG_INSTALL_DIR=/usr
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+}
+
+sha512sums="
+43e180a74bdab839516352c8fcce24d0ea90b81571d9a55c72d67814c63b6515a80f242df8fbd47cfa51756858563060729260ea5b7edf64d9dbcb339e678f97 vulkan-tools-sdk-1.3.261.1.tar.gz
+"
diff --git a/main/wasi-compiler-rt/APKBUILD b/main/wasi-compiler-rt/APKBUILD
new file mode 100644
index 00000000000..5ef6695c996
--- /dev/null
+++ b/main/wasi-compiler-rt/APKBUILD
@@ -0,0 +1,66 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=wasi-compiler-rt
+# match llvm ver
+pkgver=17.0.6
+_llvmver="${pkgver%%.*}"
+_wasi_sdk_ver=wasi-sdk-21
+pkgrel=1
+pkgdesc="WASI LLVM compiler runtime"
+url="https://compiler-rt.llvm.org/"
+arch="all"
+options="!check" # TODO: check
+license="Apache-2.0 WITH LLVM-exception"
+makedepends="
+ clang
+ cmake
+ libxml2-dev
+ llvm$_llvmver-dev
+ llvm$_llvmver-static
+ llvm$_llvmver-gtest
+ python3-dev
+ samurai
+ wasi-libc
+ wasi-libcxx
+ zlib-dev
+ "
+source="https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/llvm-project-$pkgver.src.tar.xz
+ wasi-sdk-$_wasi_sdk_ver.tar.gz::https://github.com/WebAssembly/wasi-sdk/archive/refs/tags/$_wasi_sdk_ver.tar.gz
+ "
+builddir="$srcdir"/llvm-project-$pkgver.src
+
+prepare() {
+ default_prepare
+
+ mv "$srcdir"/wasi-sdk-$_wasi_sdk_ver/wasi-sdk.cmake "$builddir"
+ mv "$srcdir"/wasi-sdk-$_wasi_sdk_ver/cmake/Platform cmake
+}
+
+build() {
+ export CFLAGS="$CFLAGS -fno-exceptions --sysroot=/usr/share/wasi-sysroot"
+ cmake -B build -G Ninja -S compiler-rt -Wno-dev \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_MODULE_PATH="$builddir"/cmake \
+ -DCMAKE_TOOLCHAIN_FILE="$builddir"/wasi-sdk.cmake \
+ -DCMAKE_C_COMPILER_WORKS=ON \
+ -DCMAKE_CXX_COMPILER_WORKS=ON \
+ -DCOMPILER_RT_BAREMETAL_BUILD=ON \
+ -DCOMPILER_RT_INCLUDE_TESTS=OFF \
+ -DCOMPILER_RT_HAS_FPIC_FLAG=OFF \
+ -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \
+ -DCOMPILER_RT_OS_DIR=wasi \
+ -DWASI_SDK_PREFIX=/usr \
+ -DCMAKE_INSTALL_PREFIX=/usr/lib/llvm$_llvmver/lib/clang/$_llvmver/
+ cmake --build build
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+
+ rm -r "$pkgdir"/usr/lib/llvm$_llvmver/lib/clang/$_llvmver/include
+}
+
+sha512sums="
+6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30 llvm-project-17.0.6.src.tar.xz
+a4d3c857ebad46b46aee6f57cd2267f2d4a53ff439c5ea0ed0c33bcc07d373916d27631bb6640701d082773b3a10a0585a4212c64f0309b78d30e58866a76128 wasi-sdk-wasi-sdk-21.tar.gz
+"
diff --git a/main/wasi-libc/APKBUILD b/main/wasi-libc/APKBUILD
new file mode 100644
index 00000000000..978f5cfc6f1
--- /dev/null
+++ b/main/wasi-libc/APKBUILD
@@ -0,0 +1,37 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=wasi-libc
+pkgver=0.20231215
+_gitrev=c5264e2bbe532994d06b039005f2af91bedcc1a6
+pkgrel=0
+pkgdesc="WASI libc implementation for WebAssembly"
+url="https://github.com/WebAssembly/wasi-libc"
+arch="all"
+options="!check" # no testsuite
+# https://github.com/WebAssembly/wasi-libc/blob/main/LICENSE
+# wasi-libc - Apache License v2.0 WITH LLVM Exceptions AND
+# Apache License v2.0 AND MIT
+# dlmalloc/ - CC0
+# libc-bottom-half/cloudlibc/ - BSD-2-Clause
+# libc-top-half/musl/ - MIT
+license="Apache-2.0 WITH LLVM-exception AND Apache-2.0 AND MIT AND CC0-1.0 AND BSD-2-Clause"
+makedepends="clang llvm"
+source="wasi-libc-$_gitrev.tar.gz::https://github.com/WebAssembly/wasi-libc/archive/$_gitrev.tar.gz
+ no-double-build.patch
+ "
+builddir="$srcdir"/$pkgname-$_gitrev
+
+build() {
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=1773200#c4
+ make CC=clang BULK_MEMORY_SOURCES=
+ make CC=clang THREAD_MODEL=posix
+}
+
+package() {
+ make INSTALL_DIR="$pkgdir"/usr/share/wasi-sysroot install
+}
+
+sha512sums="
+dfd4ed2af4c00a47f8c475d841c8df574e2dce3a903ce461cc2b04c57b8cabd3ac0fc6ebb771a9b39c2c33c14b87d3edd3a0603ea02c9e759baef2399e42370a wasi-libc-c5264e2bbe532994d06b039005f2af91bedcc1a6.tar.gz
+8241854f3331e4e22756f4414afcd6cd766d48e2a1a38ad6c95903f84b6f6b718b1ed0eae2ef0fe78f2ab5c87352ffb44f1eca3ea03983173b80f72af5948651 no-double-build.patch
+"
diff --git a/main/wasi-libc/no-double-build.patch b/main/wasi-libc/no-double-build.patch
new file mode 100644
index 00000000000..013d3322d13
--- /dev/null
+++ b/main/wasi-libc/no-double-build.patch
@@ -0,0 +1,11 @@
+--- a/Makefile
++++ b/Makefile
+@@ -547,7 +547,7 @@
+ # This ignores whitespace because on Windows the output has CRLF line endings.
+ diff -wur "$(CURDIR)/expected/$(MULTIARCH_TRIPLE)" "$(SYSROOT_SHARE)"
+
+-install: finish
++install:
+ mkdir -p "$(INSTALL_DIR)"
+ cp -r "$(SYSROOT)/lib" "$(SYSROOT)/share" "$(SYSROOT)/include" "$(INSTALL_DIR)"
+
diff --git a/main/wasi-libcxx/APKBUILD b/main/wasi-libcxx/APKBUILD
new file mode 100644
index 00000000000..0eee6f6b6c8
--- /dev/null
+++ b/main/wasi-libcxx/APKBUILD
@@ -0,0 +1,136 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer:
+pkgname=wasi-libcxx
+# match llvm version
+pkgver=17.0.6
+_llvmver="${pkgver%%.*}"
+_wasi_sdk_ver=wasi-sdk-20
+pkgrel=1
+pkgdesc="WASI LLVM C++ standard library"
+url="https://libcxx.llvm.org/"
+arch="all"
+license="Apache-2.0 WITH LLVM-exception"
+makedepends="
+ clang
+ cmake
+ libxml2-dev
+ llvm$_llvmver-dev
+ llvm$_llvmver-static
+ python3-dev
+ samurai
+ wasi-libc
+ zlib-dev
+ "
+source="
+ https://github.com/llvm/llvm-project/releases/download/llvmorg-$pkgver/llvm-project-$pkgver.src.tar.xz
+ wasi-sdk-$_wasi_sdk_ver.tar.gz::https://github.com/WebAssembly/wasi-sdk/archive/refs/tags/$_wasi_sdk_ver.tar.gz
+ "
+builddir="$srcdir"/llvm-project-$pkgver.src
+# TODO: check, needs to somehow pass wasi sysroot include to lit..
+options="!check"
+
+prepare() {
+ default_prepare
+
+ mv "$srcdir"/wasi-sdk-$_wasi_sdk_ver/wasi-sdk.cmake "$builddir"
+ mv "$srcdir"/wasi-sdk-$_wasi_sdk_ver/cmake/Platform cmake
+}
+
+build() {
+ export CFLAGS="$CFLAGS -fno-exceptions --sysroot=/usr/share/wasi-sysroot"
+ export CXXFLAGS="$CXXFLAGS -fno-exceptions --sysroot=/usr/share/wasi-sysroot"
+
+ cmake -B build -G Ninja -S runtimes -Wno-dev \
+ -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_MODULE_PATH="$builddir"/cmake \
+ -DCMAKE_TOOLCHAIN_FILE="$builddir"/wasi-sdk.cmake \
+ -DCMAKE_C_COMPILER_WORKS=ON \
+ -DCMAKE_CXX_COMPILER_WORKS=ON \
+ -DCMAKE_STAGING_PREFIX=/usr/share/wasi-sysroot \
+ -DCXX_SUPPORTS_CXX11=ON \
+ -DLIBCXX_ABI_VERSION=2 \
+ -DLIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY=OFF \
+ -DLIBCXX_CXX_ABI=libcxxabi \
+ -DLIBCXX_CXX_ABI_INCLUDE_PATHS=libcxxabi/include \
+ -DLIBCXX_ENABLE_EXCEPTIONS=OFF \
+ -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF \
+ -DLIBCXX_ENABLE_FILESYSTEM=OFF \
+ -DLIBCXX_ENABLE_SHARED=OFF \
+ -DLIBCXX_ENABLE_THREADS=OFF \
+ -DLIBCXX_HAS_EXTERNAL_THREAD_API=OFF \
+ -DLIBCXX_HAS_MUSL_LIBC=ON \
+ -DLIBCXX_HAS_PTHREAD_API=OFF \
+ -DLIBCXX_HAS_WIN32_THREAD_API=OFF \
+ -DLIBCXX_INCLUDE_TESTS="$(want_check && echo ON || echo OFF)" \
+ -DLIBCXX_LIBDIR_SUFFIX=/wasm32-wasi \
+ -DLIBCXXABI_BUILD_EXTERNAL_THREAD_LIBRARY=OFF \
+ -DLIBCXXABI_ENABLE_EXCEPTIONS=OFF \
+ -DLIBCXXABI_ENABLE_PIC=OFF \
+ -DLIBCXXABI_ENABLE_SHARED=OFF \
+ -DLIBCXXABI_ENABLE_THREADS=OFF \
+ -DLIBCXXABI_HAS_EXTERNAL_THREAD_API=OFF \
+ -DLIBCXXABI_HAS_PTHREAD_API=OFF \
+ -DLIBCXXABI_HAS_WIN32_THREAD_API=OFF \
+ -DLIBCXXABI_INCLUDE_TESTS="$(want_check && echo ON || echo OFF)" \
+ -DLIBCXXABI_LIBCXX_INCLUDES="$builddir"/build-libcxx/include/c++/v1 \
+ -DLIBCXXABI_LIBCXX_PATH=libcxx \
+ -DLIBCXXABI_LIBDIR_SUFFIX=/wasm32-wasi \
+ -DLIBCXXABI_SILENT_TERMINATE:BOOL=ON \
+ -DUNIX=ON \
+ -DWASI_SDK_PREFIX=/usr
+ cmake --build build
+
+ cmake -B build-threads -G Ninja -S runtimes -Wno-dev \
+ -DLLVM_ENABLE_RUNTIMES="libcxx;libcxxabi" \
+ -DCMAKE_BUILD_TYPE=MinSizeRel \
+ -DCMAKE_MODULE_PATH="$builddir"/cmake \
+ -DCMAKE_TOOLCHAIN_FILE="$builddir"/wasi-sdk.cmake \
+ -DCMAKE_C_COMPILER_WORKS=ON \
+ -DCMAKE_CXX_COMPILER_WORKS=ON \
+ -DCMAKE_C_FLAGS="$CFLAGS -pthread" \
+ -DCMAKE_CXX_FLAGS="$CXXFLAGS -pthread" \
+ -DCMAKE_STAGING_PREFIX=/usr/share/wasi-sysroot \
+ -DCXX_SUPPORTS_CXX11=ON \
+ -DLIBCXX_ABI_VERSION=2 \
+ -DLIBCXX_BUILD_EXTERNAL_THREAD_LIBRARY=OFF \
+ -DLIBCXX_CXX_ABI=libcxxabi \
+ -DLIBCXX_CXX_ABI_INCLUDE_PATHS=libcxxabi/include \
+ -DLIBCXX_ENABLE_EXCEPTIONS=OFF \
+ -DLIBCXX_ENABLE_EXPERIMENTAL_LIBRARY=OFF \
+ -DLIBCXX_ENABLE_FILESYSTEM=OFF \
+ -DLIBCXX_ENABLE_SHARED=OFF \
+ -DLIBCXX_ENABLE_THREADS=ON \
+ -DLIBCXX_HAS_EXTERNAL_THREAD_API=OFF \
+ -DLIBCXX_HAS_MUSL_LIBC=ON \
+ -DLIBCXX_HAS_PTHREAD_API=ON \
+ -DLIBCXX_HAS_WIN32_THREAD_API=OFF \
+ -DLIBCXX_INCLUDE_TESTS="$(want_check && echo ON || echo OFF)" \
+ -DLIBCXX_LIBDIR_SUFFIX=/wasm32-wasi-threads \
+ -DLIBCXXABI_BUILD_EXTERNAL_THREAD_LIBRARY=OFF \
+ -DLIBCXXABI_ENABLE_EXCEPTIONS=OFF \
+ -DLIBCXXABI_ENABLE_PIC=OFF \
+ -DLIBCXXABI_ENABLE_SHARED=OFF \
+ -DLIBCXXABI_ENABLE_THREADS=ON \
+ -DLIBCXXABI_HAS_EXTERNAL_THREAD_API=OFF \
+ -DLIBCXXABI_HAS_PTHREAD_API=ON \
+ -DLIBCXXABI_HAS_WIN32_THREAD_API=OFF \
+ -DLIBCXXABI_INCLUDE_TESTS="$(want_check && echo ON || echo OFF)" \
+ -DLIBCXXABI_LIBCXX_INCLUDES="$builddir"/build-libcxx/include/c++/v1 \
+ -DLIBCXXABI_LIBCXX_PATH=libcxx \
+ -DLIBCXXABI_LIBDIR_SUFFIX=/wasm32-wasi-threads \
+ -DLIBCXXABI_SILENT_TERMINATE:BOOL=ON \
+ -DUNIX=ON \
+ -DWASI_SDK_PREFIX=/usr
+ cmake --build build-threads
+}
+
+package() {
+ DESTDIR="$pkgdir" cmake --install build
+ DESTDIR="$pkgdir" cmake --install build-threads
+}
+
+sha512sums="
+6d85bf749e0d77553cc215cbfa61cec4ac4f4f652847f56f946b6a892a99a5ea40b6ab8b39a9708a035001f007986941ccf17e4635260a8b0c1fa59e78d41e30 llvm-project-17.0.6.src.tar.xz
+130c2d7e709b8845e32d8d0f4b5361a570a5a11cbeefc65d5b8e42d571a9f7ed9279def336ff71eca368a4900ba8fa736cdf803e7820bf1459801e7da0d71c45 wasi-sdk-wasi-sdk-20.tar.gz
+"
diff --git a/main/wasi-sdk/APKBUILD b/main/wasi-sdk/APKBUILD
new file mode 100644
index 00000000000..010d5cd9ea4
--- /dev/null
+++ b/main/wasi-sdk/APKBUILD
@@ -0,0 +1,22 @@
+# Contributor: Alex Yam <alex@alexyam.com>
+# Maintainer: Patrycja Rosa <alpine@ptrcnull.me>
+pkgname=wasi-sdk
+pkgver=21
+pkgrel=0
+_llvmver=17
+pkgdesc="WASI-enabled WebAssembly C/C++ toolchain"
+url="https://github.com/WebAssembly/wasi-sdk"
+arch="noarch"
+depends="wasi-libc wasi-libcxx wasi-compiler-rt"
+options="!check" # no testsuite
+license="Apache-2.0"
+
+package() {
+ mkdir -p "$pkgdir"/etc/clang$_llvmver
+ cat > "$pkgdir"/etc/clang$_llvmver/wasm32-unknown-wasi.cfg <<-EOF
+ --sysroot /usr/share/wasi-sysroot
+ EOF
+
+ ln -svf wasm32-unknown-wasi.cfg \
+ "$pkgdir"/etc/clang$_llvmver/wasm32-unknown-wasi-threads.cfg
+}
diff --git a/main/wayland-protocols/APKBUILD b/main/wayland-protocols/APKBUILD
index 642684a9c19..fe6141153b8 100644
--- a/main/wayland-protocols/APKBUILD
+++ b/main/wayland-protocols/APKBUILD
@@ -1,7 +1,8 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
-# Maintainer: Valery Kartel <valery.kartel@gmail.com>
+# Contributor: Valery Kartel <valery.kartel@gmail.com>
+# Maintainer: Peter Shkenev <santurysim@gmail.com>
pkgname=wayland-protocols
-pkgver=1.25
+pkgver=1.35
pkgrel=0
pkgdesc="Protocols and protocol extensions complementing the Wayland core protocol"
url="https://wayland.freedesktop.org"
@@ -9,16 +10,22 @@ arch="noarch"
license="MIT"
provides="$pkgname-dev=$pkgver-r$pkgrel"
makedepends="meson wayland-dev"
-source="https://wayland.freedesktop.org/releases/wayland-protocols-$pkgver.tar.xz"
-options="!check" # tests are busted
+source="https://gitlab.freedesktop.org/wayland/wayland-protocols/-/releases/$pkgver/downloads/wayland-protocols-$pkgver.tar.xz"
+
+case "$CARCH" in
+ppc64le)
+ # xdg_toplevel_interface: symbol not found in a test
+ options="$options !check"
+ ;;
+esac
build() {
abuild-meson . output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
check() {
- meson test --no-rebuild -v -C output
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
@@ -26,5 +33,5 @@ package() {
}
sha512sums="
-8269694a0780e4d32f1982ff4cbb50b1ef85f08157b9486bc6d7e489c64665a9d9f959121d0eede7c7b108a604d974b64d74cfdef8b5f14304465309afb0768f wayland-protocols-1.25.tar.xz
+b4b915e145955f9c844d7ce4564ad13a854a4e7d4355913ef4cae7f09ab3e52ee69dceb6c76c9b7f82f1ab5c01071f0e5b00ce75cc7ab58274201eb4a4639710 wayland-protocols-1.35.tar.xz
"
diff --git a/main/wayland/APKBUILD b/main/wayland/APKBUILD
index 13d3ff37fa1..9974f54e752 100644
--- a/main/wayland/APKBUILD
+++ b/main/wayland/APKBUILD
@@ -1,42 +1,60 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Contributor: Bartłomiej Piotrowski <bpiotrowski@alpinelinux.org>
-# Maintainer: Valery Kartel <valery.kartel@gmail.com>
+# Contributor: Valery Kartel <valery.kartel@gmail.com>
+# Maintainer: Peter Shkenev <santurysim@gmail.com>
pkgname=wayland
-pkgver=1.21.0
-pkgrel=0
+pkgver=1.22.0
+pkgrel=4
pkgdesc="A computer display server protocol"
url="https://wayland.freedesktop.org"
arch="all"
license="MIT"
-depends="$pkgname-libs-client $pkgname-libs-cursor $pkgname-libs-egl $pkgname-libs-server"
-depends_dev="libffi-dev expat-dev"
-makedepends="$depends_dev libxml2-dev meson"
-subpackages="$pkgname-dbg $pkgname-dev $pkgname-libs-client:_libs $pkgname-libs-egl:_libs
- $pkgname-libs-cursor:_libs $pkgname-libs-server:_libs"
-source="https://gitlab.freedesktop.org/wayland/wayland/-/releases/$pkgver/downloads/wayland-$pkgver.tar.xz
- tests-ignore-debugger.patch
+depends_dev="
+ expat-dev
+ libffi-dev
"
+makedepends="
+ $depends_dev
+ libxml2-dev
+ meson
+ "
+subpackages="
+ $pkgname-dbg
+ $pkgname-dev
+ $pkgname-libs-client:_libs
+ $pkgname-libs-egl:_libs
+ $pkgname-libs-cursor:_libs
+ $pkgname-libs-server:_libs
+ "
+source="https://gitlab.freedesktop.org/wayland/wayland/-/releases/$pkgver/downloads/wayland-$pkgver.tar.xz"
build() {
abuild-meson \
+ -Db_lto=true \
-Ddocumentation=false \
. output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
check() {
- meson test --no-rebuild -v -C output
+ XDG_RUNTIME_DIR="$(mktemp -d)" \
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
+ depends="
+ $pkgname-libs-client=$pkgver-r$pkgrel
+ $pkgname-libs-cursor=$pkgver-r$pkgrel
+ $pkgname-libs-egl=$pkgver-r$pkgrel
+ $pkgname-libs-server=$pkgver-r$pkgrel
+ "
DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
dev() {
- mkdir -p "$subpkgdir"/usr
- mv "$pkgdir"/usr/bin "$pkgdir"/usr/share \
- "$subpkgdir"/usr
+ amove usr/share
+ amove usr/bin
default_dev
}
@@ -47,11 +65,9 @@ _libs() {
case "$name" in
egl) replaces="mesa-libwayland-egl";;
esac
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*-$name.so.* "$subpkgdir"/usr/lib
+ amove usr/lib/*-$name.so.*
}
sha512sums="
-5575216d30fdf5c63caa6bcad071e15f2a4f3acb12df776806073f65db37a50b5b5b3cc7957c5497636f4ac01893e2eaab26e453ded44b287acde01762f5fdc3 wayland-1.21.0.tar.xz
-0f65a55265e9134ab08cabf67f9d1919c85c4cb6b69129e78bc6c50057cafcaf143007716a0fa73b2eb43d6b605944c320a12a36dbb5f15fcd2f5e770248c480 tests-ignore-debugger.patch
+fb1974efc8433e97254eb83fe28974198f2b4d8246418eb3d34ce657055461e0c97bc06dd52e5066ae91bbe05bac611dc49a0937ba226ac6388d5a47241efb12 wayland-1.22.0.tar.xz
"
diff --git a/main/wayland/tests-ignore-debugger.patch b/main/wayland/tests-ignore-debugger.patch
deleted file mode 100644
index a0cf97be467..00000000000
--- a/main/wayland/tests-ignore-debugger.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/tests/test-runner.c b/tests/test-runner.c
-index 82a0a7b..8c7e90d 100644
---- a/tests/test-runner.c
-+++ b/tests/test-runner.c
-@@ -287,6 +287,9 @@ is_debugger_attached(void)
- pid_t pid;
- int pipefd[2];
-
-+ if (getenv("WAYLAND_TEST_IGNORE_DEBUGGER"))
-+ return 0;
-+
- if (pipe(pipefd) == -1) {
- perror("pipe");
- return 0;
diff --git a/main/wget/APKBUILD b/main/wget/APKBUILD
index af11d7e2043..df5de88eaec 100644
--- a/main/wget/APKBUILD
+++ b/main/wget/APKBUILD
@@ -3,17 +3,16 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Carlo Landmeter <clandmeter@alpinelinux.org>
pkgname=wget
-pkgver=1.21.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"
arch="all"
license="GPL-3.0-or-later WITH OpenSSL-Exception"
-makedepends="libidn2-dev openssl1.1-compat-dev perl"
+makedepends="libidn2-dev openssl-dev>3 perl zlib-dev pcre2-dev"
checkdepends="perl-http-daemon"
subpackages="$pkgname-doc"
-source="https://ftp.gnu.org/gnu/wget/wget-$pkgver.tar.gz
- "
+source="https://ftp.gnu.org/gnu/wget/wget-$pkgver.tar.gz"
# secfixes:
# 1.20.3-r0:
@@ -28,6 +27,7 @@ source="https://ftp.gnu.org/gnu/wget/wget-$pkgver.tar.gz
# - CVE-2017-13090
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -54,5 +54,5 @@ package() {
}
sha512sums="
-29889ecbf590dff0f39183d9e0621741d731a554d990e5c995a4644725dca62e8e19601d40db0ef7d62ebf54e5457c7409965e4832b6e60e4ccbc9c8caa30718 wget-1.21.3.tar.gz
+572aa54717e51a9eb9959e127c7afb696645088f32ff7df2cfe9d243957e34ee235e98988fa94649df023d2e3d62b6973e8c9f2eb92beba820dd96d5de2a950d wget-1.24.5.tar.gz
"
diff --git a/main/which/APKBUILD b/main/which/APKBUILD
index ac9ab2bf925..fdcc2022850 100644
--- a/main/which/APKBUILD
+++ b/main/which/APKBUILD
@@ -2,16 +2,15 @@
# Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
pkgname=which
pkgver=2.21
-pkgrel=2
+pkgrel=5
pkgdesc="A utility to show the full path of commands"
url="https://savannah.gnu.org/projects/which"
arch="all"
-license="GPL-3.0"
+license="GPL-2.0-or-later"
subpackages="$pkgname-doc"
source="https://ftp.gnu.org/gnu/which/which-$pkgver.tar.gz"
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -20,12 +19,10 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
}
diff --git a/main/wipe/APKBUILD b/main/wipe/APKBUILD
index c3c633ae207..5c6fc73736e 100644
--- a/main/wipe/APKBUILD
+++ b/main/wipe/APKBUILD
@@ -2,41 +2,35 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=wipe
pkgver=2.3.1
-pkgrel=0
+pkgrel=4
pkgdesc="Secure file wiping utility"
-url="http://wipe.sourceforge.net/"
+url="https://wipe.sourceforge.net/"
arch="all"
-license="GPL-2.0"
-depends=""
-depends_dev=""
-makedepends="$depends_dev linux-headers"
-install=""
+license="GPL-2.0-only"
+makedepends="linux-headers"
subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/${pkgname}/${pkgname}-${pkgver}.tar.bz2
+source="https://downloads.sourceforge.net/wipe/wipe-$pkgver.tar.bz2
stdint.patch
"
+options="!check"
-builddir="$srcdir"/wipe-$pkgver
prepare() {
update_config_sub
default_prepare
}
build() {
- cd "$builddir"
CPPFLAGS= ./configure \
--build=$CBUILD \
--host=$CHOST \
--prefix=/usr \
- --mandir=/usr/share/man \
- || return 1
- make || return 1
+ --mandir=/usr/share/man
+ make
}
package() {
- cd "$builddir"
install -d "$pkgdir"/usr/bin
- make prefix="$pkgdir"/usr mandir="$pkgdir"/usr/share/man install || return 1
+ make prefix="$pkgdir"/usr mandir="$pkgdir"/usr/share/man install
}
sha512sums="63870e68fa5dbf90abb686052f8dcc216ccb93b0c4f5cc10d60ccf43f3606ba91b46dc1e3d8b34d201f7ea657f70b45a61d5d04facf5b2a3e47d2286c46e7110 wipe-2.3.1.tar.bz2
diff --git a/main/wireguard-tools/APKBUILD b/main/wireguard-tools/APKBUILD
index 194d55962eb..3b5ee7703ca 100644
--- a/main/wireguard-tools/APKBUILD
+++ b/main/wireguard-tools/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Stuart Cardall <developer@it-offshore.co.uk>
pkgname=wireguard-tools
pkgver=1.0.20210914
-pkgrel=0
+pkgrel=3
pkgdesc="Next generation secure network tunnel: userspace tools"
arch="all"
url="https://www.wireguard.com"
@@ -10,7 +10,7 @@ url="https://www.wireguard.com"
# is a kernel project i think it is safe to assume it is GPL-2.0-only just
# like the kernel.
license="GPL-2.0-only"
-_wg_quick_deps="iproute2 ip6tables bash openresolv"
+_wg_quick_deps="iproute2 bash openresolv"
makedepends="libmnl-dev $_wg_quick_deps"
depends="$pkgname-wg $pkgname-wg-quick"
subpackages="
diff --git a/main/wireless-regdb/APKBUILD b/main/wireless-regdb/APKBUILD
index 477e708690f..64f30c5216e 100644
--- a/main/wireless-regdb/APKBUILD
+++ b/main/wireless-regdb/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Stefan Wagner <stw@bit-strickerei.de>
# Maintainer: Stefan Wagner <stw@bit-strickerei.de>
pkgname=wireless-regdb
-pkgver=2022.06.06
+pkgver=2024.01.23
pkgrel=0
pkgdesc="Central Regulatory Domain Database"
url="https://wireless.wiki.kernel.org/en/developers/regulatory/wireless-regdb"
@@ -15,9 +15,10 @@ package() {
install -D -m644 "$builddir"/regulatory.bin "$pkgdir"/usr/lib/crda/regulatory.bin
install -D -m644 "$builddir"/regulatory.bin.5 "$pkgdir"/usr/share/man/man5/regulatory.bin.5
install -D -m644 "$builddir"/regulatory.db "$pkgdir"/lib/firmware/regulatory.db
+ install -D -m644 "$builddir"/regulatory.db.5 "$pkgdir"/usr/share/man/man5/regulatory.bin.5
install -D -m644 "$builddir"/regulatory.db.p7s "$pkgdir"/lib/firmware/regulatory.db.p7s
}
sha512sums="
-ee6e79eeef3bf995120d31741bac9592771cbf918401f83d0ee059ba4119f7d9667607c5218bd9eeb0011dd7083264cf39a1a0ad3ebfd37dcfd957b01f248e0d wireless-regdb-2022.06.06.tar.xz
+09cf2308e459bbc5755cf648aa9afcfac7232391f189403000091eef3ae4265c99c0df3364160ef48a2efa3ce6443099ac735c1d82e03f0f24f7017872afbdba wireless-regdb-2024.01.23.tar.xz
"
diff --git a/main/wireless-tools/APKBUILD b/main/wireless-tools/APKBUILD
index ab1e40cd0f9..ef8a08ab76b 100644
--- a/main/wireless-tools/APKBUILD
+++ b/main/wireless-tools/APKBUILD
@@ -2,30 +2,32 @@
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=wireless-tools
pkgver=30_pre9
-pkgrel=1
+pkgrel=4
pkgdesc="Open Source wireless tools"
-url="http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html"
+url="https://hewlettpackard.github.io/wireless-tools/Tools.html"
arch="all"
license="GPL-2.0-only"
makedepends="linux-headers"
options="!check"
-subpackages="$pkgname-dev $pkgname-doc"
-source="http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/wireless_tools.${pkgver/_/.}.tar.gz
+subpackages="$pkgname-libs $pkgname-dev $pkgname-doc"
+source="https://hewlettpackard.github.io/wireless-tools/wireless_tools.${pkgver/_/.}.tar.gz
+ flags.patch
"
-
builddir="$srcdir"/wireless_tools.30
build() {
- cd "$builddir"
+ CFLAGS="$CFLAGS -flto=auto" \
make
}
package() {
- cd "$builddir"
make INSTALL_DIR="$pkgdir"/usr/sbin \
INSTALL_LIB="$pkgdir"/usr/lib \
INSTALL_INC="$pkgdir"/usr/include \
INSTALL_MAN="$pkgdir"/usr/share/man install
}
-sha512sums="0561923bca075af4754d21e1be303cbd1ce3558cb6481c9c12bc7d330a353acf8ad81a822488570e859480287999c3bb2a698c993556a92f0699743e0a527ff1 wireless_tools.30.pre9.tar.gz"
+sha512sums="
+0561923bca075af4754d21e1be303cbd1ce3558cb6481c9c12bc7d330a353acf8ad81a822488570e859480287999c3bb2a698c993556a92f0699743e0a527ff1 wireless_tools.30.pre9.tar.gz
+b5a06be4e4aca5319433e6f559a1bf9441c6d1d365760b3121495fd49b6ee8248c4a4a1c7cabd24d1974281b999dba916fef6e8241a2a7101e5ff7981325ab99 flags.patch
+"
diff --git a/main/wireless-tools/flags.patch b/main/wireless-tools/flags.patch
new file mode 100644
index 00000000000..b9039f034a0
--- /dev/null
+++ b/main/wireless-tools/flags.patch
@@ -0,0 +1,54 @@
+pass ldflags, read cflags, build shared, respect toolchain
+diff --git a/Makefile b/Makefile
+index 0078324..d722946 100644
+--- a/Makefile
++++ b/Makefile
+@@ -9,17 +9,17 @@ ifndef PREFIX
+ endif
+
+ ## Compiler to use (modify this for cross compile).
+-CC = gcc
++CC ?= gcc
+ ## Other tools you need to modify for cross compile (static lib only).
+-AR = ar
+-RANLIB = ranlib
++AR ?= ar
++RANLIB ?= ranlib
+
+ ## Uncomment this to build tools using static version of the library.
+ ## Mostly useful for embedded platforms without ldd, or to create
+ ## a local version (non-root).
+ ## Standard distros should comment that option to save space and to
+ ## build libiw.so used by third parties...
+-BUILD_STATIC = y
++#BUILD_STATIC = y
+
+ ## Uncomment this to build without using libm (less efficient).
+ ## This is mostly useful for embedded platforms without maths.
+@@ -104,7 +104,7 @@ ifdef BUILD_WE_ESSENTIAL
+ endif
+
+ # Other flags
+-CFLAGS=-Os -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow \
++CFLAGS+=-W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wshadow \
+ -Wpointer-arith -Wcast-qual -Winline -I.
+ #CFLAGS=-O2 -W -Wall -Wstrict-prototypes -I.
+ DEPFLAGS=-MMD
+@@ -119,7 +119,7 @@ all:: $(IWLIB) $(PROGS)
+ %.o: %.c wireless.h
+ $(CC) $(XCFLAGS) -c $<
+ %.so: %.c wireless.h
+- $(CC) $(XCFLAGS) $(PICFLAG) -c -o $@ $<
++ $(CC) $(XCFLAGS) $(PICFLAG) $(LDFLAGS) -c -o $@ $<
+
+ iwconfig: iwconfig.o $(IWLIB)
+
+@@ -147,7 +147,7 @@ wireless.h:
+
+ # Compilation of the dynamic library
+ $(DYNAMIC): $(OBJS:.o=.so)
+- $(CC) -shared -o $@ -Wl,-soname,$@ $(STRIPFLAGS) $(LIBS) -lc $^
++ $(CC) -shared -o $@ -Wl,-soname,$@ $(STRIPFLAGS) $(LIBS) $(LDFLAGS) -lc $^
+
+ # Compilation of the static library
+ $(STATIC): $(OBJS:.o=.so)
diff --git a/main/wpa_supplicant/0001-nl80211-add-extra-ies-only-if-allowed-by-driver.patch b/main/wpa_supplicant/0001-nl80211-add-extra-ies-only-if-allowed-by-driver.patch
new file mode 100644
index 00000000000..5a395d57b35
--- /dev/null
+++ b/main/wpa_supplicant/0001-nl80211-add-extra-ies-only-if-allowed-by-driver.patch
@@ -0,0 +1,69 @@
+From: David Bauer <mail@david-bauer.net>
+Date: Sun, 30 Jan 2022 20:22:00 +0100
+Subject: nl80211: add extra-ies only if allowed by driver
+
+Upgrading wpa_supplicant from 2.9 to 2.10 breaks broadcom-wl
+based adapters. The reason for it is hostapd tries to install additional
+IEs for scanning while the driver does not support this.
+
+The kernel indicates the maximum number of bytes for additional scan IEs
+using the NL80211_ATTR_MAX_SCAN_IE_LEN attribute. Save this value and
+only add additional scan IEs in case the driver can accommodate these
+additional IEs.
+
+Reported-by: Étienne Morice <neon.emorice@mail.com>
+Tested-by: Étienne Morice <neon.emorice@mail.com>
+Signed-off-by: David Bauer <mail@david-bauer.net>
+
+Bug: http://lists.infradead.org/pipermail/hostap/2022-January/040178.html
+Bug-ArchLinux: https://bugs.archlinux.org/task/73495
+Bug-Debian: https://bugs.debian.org/1004524
+Origin: http://lists.infradead.org/pipermail/hostap/2022-January/040185.html
+---
+ src/drivers/driver.h | 3 +++
+ src/drivers/driver_nl80211_capa.c | 4 ++++
+ src/drivers/driver_nl80211_scan.c | 2 +-
+ 3 files changed, 8 insertions(+), 1 deletion(-)
+
+diff --git a/src/drivers/driver.h b/src/drivers/driver.h
+index d3312a3..b5b6264 100644
+--- a/src/drivers/driver.h
++++ b/src/drivers/driver.h
+@@ -2052,6 +2052,9 @@ struct wpa_driver_capa {
+ /** Maximum number of iterations in a single scan plan */
+ u32 max_sched_scan_plan_iterations;
+
++ /** Maximum number of extra IE bytes for scans */
++ u16 max_scan_ie_len;
++
+ /** Whether sched_scan (offloaded scanning) is supported */
+ int sched_scan_supported;
+
+diff --git a/src/drivers/driver_nl80211_capa.c b/src/drivers/driver_nl80211_capa.c
+index 83868b7..b33b6ba 100644
+--- a/src/drivers/driver_nl80211_capa.c
++++ b/src/drivers/driver_nl80211_capa.c
+@@ -885,6 +885,10 @@ static int wiphy_info_handler(struct nl_msg *msg, void *arg)
+ nla_get_u32(tb[NL80211_ATTR_MAX_SCAN_PLAN_ITERATIONS]);
+ }
+
++ if (tb[NL80211_ATTR_MAX_SCAN_IE_LEN])
++ capa->max_scan_ie_len =
++ nla_get_u16(tb[NL80211_ATTR_MAX_SCAN_IE_LEN]);
++
+ if (tb[NL80211_ATTR_MAX_MATCH_SETS])
+ capa->max_match_sets =
+ nla_get_u8(tb[NL80211_ATTR_MAX_MATCH_SETS]);
+diff --git a/src/drivers/driver_nl80211_scan.c b/src/drivers/driver_nl80211_scan.c
+index 1316084..b0f0951 100644
+--- a/src/drivers/driver_nl80211_scan.c
++++ b/src/drivers/driver_nl80211_scan.c
+@@ -207,7 +207,7 @@ nl80211_scan_common(struct i802_bss *bss, u8 cmd,
+ wpa_printf(MSG_DEBUG, "nl80211: Passive scan requested");
+ }
+
+- if (params->extra_ies) {
++ if (params->extra_ies && drv->capa.max_scan_ie_len >= params->extra_ies_len) {
+ wpa_hexdump(MSG_MSGDUMP, "nl80211: Scan extra IEs",
+ params->extra_ies, params->extra_ies_len);
+ if (nla_put(msg, NL80211_ATTR_IE, params->extra_ies_len,
diff --git a/main/wpa_supplicant/0002-AP-guard-FT-SAE-code-with-CONFIG_IEEE80211R_AP.patch b/main/wpa_supplicant/0002-AP-guard-FT-SAE-code-with-CONFIG_IEEE80211R_AP.patch
new file mode 100644
index 00000000000..6509bcd9a9f
--- /dev/null
+++ b/main/wpa_supplicant/0002-AP-guard-FT-SAE-code-with-CONFIG_IEEE80211R_AP.patch
@@ -0,0 +1,56 @@
+From: Beniamino Galvani <bgalvani@redhat.com>
+Date: Mon, 4 Apr 2022 09:13:12 +0200
+Subject: AP: guard FT-SAE code with CONFIG_IEEE80211R_AP
+
+wpa_supplicant doesn't support FT in AP mode, but it still negotiates
+FT-SAE. This can lead to an authentication failure when the AP is
+started with key_mgmt="SAE FT-SAE" and the STA supports both.
+
+Ensure that FT-SAE is not negotiated when CONFIG_IEEE80211R_AP is not
+defined.
+
+Signed-off-by: Beniamino Galvani <bgalvani@redhat.com>
+---
+ src/ap/wpa_auth_ie.c | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/src/ap/wpa_auth_ie.c b/src/ap/wpa_auth_ie.c
+index 524922e..d63cbeb 100644
+--- a/src/ap/wpa_auth_ie.c
++++ b/src/ap/wpa_auth_ie.c
+@@ -228,11 +228,13 @@ int wpa_write_rsn_ie(struct wpa_auth_config *conf, u8 *buf, size_t len,
+ pos += RSN_SELECTOR_LEN;
+ num_suites++;
+ }
++#ifdef CONFIG_IEEE80211R_AP
+ if (conf->wpa_key_mgmt & WPA_KEY_MGMT_FT_SAE) {
+ RSN_SELECTOR_PUT(pos, RSN_AUTH_KEY_MGMT_FT_SAE);
+ pos += RSN_SELECTOR_LEN;
+ num_suites++;
+ }
++#endif /* CONFIG_IEEE80211R_AP */
+ #endif /* CONFIG_SAE */
+ if (conf->wpa_key_mgmt & WPA_KEY_MGMT_IEEE8021X_SUITE_B) {
+ RSN_SELECTOR_PUT(pos, RSN_AUTH_KEY_MGMT_802_1X_SUITE_B);
+@@ -670,8 +672,10 @@ wpa_validate_wpa_ie(struct wpa_authenticator *wpa_auth,
+ #ifdef CONFIG_SAE
+ else if (data.key_mgmt & WPA_KEY_MGMT_SAE)
+ selector = RSN_AUTH_KEY_MGMT_SAE;
++#ifdef CONFIG_IEEE80211R_AP
+ else if (data.key_mgmt & WPA_KEY_MGMT_FT_SAE)
+ selector = RSN_AUTH_KEY_MGMT_FT_SAE;
++#endif /* CONFIG_IEEE80211R_AP */
+ #endif /* CONFIG_SAE */
+ else if (data.key_mgmt & WPA_KEY_MGMT_IEEE8021X)
+ selector = RSN_AUTH_KEY_MGMT_UNSPEC_802_1X;
+@@ -778,8 +782,10 @@ wpa_validate_wpa_ie(struct wpa_authenticator *wpa_auth,
+ #ifdef CONFIG_SAE
+ else if (key_mgmt & WPA_KEY_MGMT_SAE)
+ sm->wpa_key_mgmt = WPA_KEY_MGMT_SAE;
++#ifdef CONFIG_IEEE80211R_AP
+ else if (key_mgmt & WPA_KEY_MGMT_FT_SAE)
+ sm->wpa_key_mgmt = WPA_KEY_MGMT_FT_SAE;
++#endif /* CONFIG_IEEE80211R_AP */
+ #endif /* CONFIG_SAE */
+ else if (key_mgmt & WPA_KEY_MGMT_IEEE8021X)
+ sm->wpa_key_mgmt = WPA_KEY_MGMT_IEEE8021X;
diff --git a/main/wpa_supplicant/APKBUILD b/main/wpa_supplicant/APKBUILD
index a73c3c2a36c..366fa7320a3 100644
--- a/main/wpa_supplicant/APKBUILD
+++ b/main/wpa_supplicant/APKBUILD
@@ -2,27 +2,35 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=wpa_supplicant
pkgver=2.10
-pkgrel=1
+pkgrel=11
pkgdesc="utility providing key negotiation for WPA wireless networks"
url="https://w1.fi/wpa_supplicant/"
arch="all"
options="!check" # has no tests
license="BSD-3-Clause"
subpackages="$pkgname-doc $pkgname-openrc"
-makedepends="linux-headers openssl1.1-compat-dev dbus-dev libnl3-dev pcsc-lite-dev"
+makedepends="linux-headers openssl-dev>3 dbus-dev libnl3-dev pcsc-lite-dev"
source="https://w1.fi/releases/wpa_supplicant-$pkgver.tar.gz
-
wpa_supplicant.initd
wpa_supplicant.confd
wpa_cli.confd
wpa_cli.initd
- eloop.patch
+ CVE-2023-52160.patch
+
+ unsafe-renegotiation-1.patch
+ unsafe-renegotiation-2.patch
+
+ 0001-nl80211-add-extra-ies-only-if-allowed-by-driver.patch
+ 0002-AP-guard-FT-SAE-code-with-CONFIG_IEEE80211R_AP.patch
config
- wpa_cli.sh"
+ wpa_cli.sh
+ "
# secfixes:
+# 2.10-r11:
+# - CVE-2023-52160
# 2.9-r13:
# - CVE-2021-30004
# 2.9-r12:
@@ -60,6 +68,7 @@ prepare() {
}
build() {
+ export CFLAGS="$CFLAGS -flto=auto"
cd "$builddir"/wpa_supplicant
make LIBDIR=/lib BINDIR=/sbin
make LIBDIR=/lib BINDIR=/sbin eapol_test
@@ -100,11 +109,15 @@ package() {
sha512sums="
021c2a48f45d39c1dc6557730be5debaee071bc0ff82a271638beee6e32314e353e49d39e2f0dc8dff6e094dcc7008cfe1c32d0c7a34a1a345a12a3f1c1e11a1 wpa_supplicant-2.10.tar.gz
-92c4cbaa9776a354275640c9411d2f547f4c0e00415af4ab30039f1a0be6a11082d49e2514905010f0abcc4a9276353276da9864e3d5f7264a0f0767c8cc9d78 wpa_supplicant.initd
+8e5f0958f6086c465d7a13e793be7dedc021fae2162f0f3b29d00919c355f13e1c257744ae99ae063cca525fb8fa03abd5c117efe0ba9c6812b560ce62366846 wpa_supplicant.initd
24bc4d46f3a8923890f233e433928c3f1204ab5f15a1c32b21dca220af89e2474026059e1040834db88cd3d8f6b61c46abb5cf18bda906e78dcd8fccd0f2a382 wpa_supplicant.confd
c3db077fa78dd296d90d07626cb4e684f87618a77ffd51c1ae04b47be7bc0db1e9a3e0f7442acef21c081f6bb782f150cbbd3d0bf245d6ab43f19da3899b53b9 wpa_cli.confd
f4b9c86530a2b10cd50e6014c9bee1d143714ab9f86bf29119dcd2c86dec5239c356518a36147d6418e4eb31aa4a7df3e5c86647779d2b4626bffcfe6685f362 wpa_cli.initd
-2be055dd1f7da5a3d8e79c2f2c0220ddd31df309452da18f290144d2112d6dbde0fc633bb2ad02c386a39d7785323acaf5f70e5969995a1e8303a094eb5fe232 eloop.patch
-ffb875d5bbcd876f33e7a40c78fdd024e0dd770e191fa39e4e29d25e66aaa919edf6956dcc813b17980949aac96a0d774954bb94ad3fe3716814de8bde990e05 config
+955c219a9e4e3e89f7f880561755059ea9f1ea27f5a5ec9f6a5b7c29195b06123c8eecfba324f3695bdb8cb53c401745c3d030a97e133dd1730351dc36c92fec CVE-2023-52160.patch
+9528735924faf876a7094de46760605e5e66e265187421a668be06dbf03d7b4db6b84cbad793fcd6bd614e3ba540f82f1f80660d75e8a6070eeb7e9abb54ed28 unsafe-renegotiation-1.patch
+a92ba3ed3f41022a8af9396d2b703ee47f78aa05c1fddb42919a7fe6a6fad71e3515c63457e97e252ae0a32c6c34d67ea6efe0278df1e141cf36e650237e5295 unsafe-renegotiation-2.patch
+fb328872087268056b035802f71df2f7af8d11699822fe68611201a07dc693c4fdb8c50dd4fd509ed6db4cca89f6003ce3303770951686a35633977f466f4fb5 0001-nl80211-add-extra-ies-only-if-allowed-by-driver.patch
+f8a5f5e18509b61ad6fb7ce78207c039fccfca6b71f494cbe9853bcb1b09025364554a45b6129a5b992f6327f72c8a97b660088d9c542f0e62a1c370a3c628a8 0002-AP-guard-FT-SAE-code-with-CONFIG_IEEE80211R_AP.patch
+9b8b1a914038e84ae2bf162d819d58aa449d249f3684bb86ecda6178956163941d4fc4e92fd14cc4ff3eec17a14e03f20c3a59e94841ed5b9811aef37fa9910e config
212c4265afce2e72b95a32cd785612d6c3e821b47101ead154136d184ac4add01434ada6c87edbb9a98496552e76e1a4d79c6b5840e3a5cfe5e6d602fceae576 wpa_cli.sh
"
diff --git a/main/wpa_supplicant/CVE-2023-52160.patch b/main/wpa_supplicant/CVE-2023-52160.patch
new file mode 100644
index 00000000000..07263730fd4
--- /dev/null
+++ b/main/wpa_supplicant/CVE-2023-52160.patch
@@ -0,0 +1,210 @@
+From 8e6485a1bcb0baffdea9e55255a81270b768439c Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <j@w1.fi>
+Date: Sat, 8 Jul 2023 19:55:32 +0300
+Subject: PEAP client: Update Phase 2 authentication requirements
+
+The previous PEAP client behavior allowed the server to skip Phase 2
+authentication with the expectation that the server was authenticated
+during Phase 1 through TLS server certificate validation. Various PEAP
+specifications are not exactly clear on what the behavior on this front
+is supposed to be and as such, this ended up being more flexible than
+the TTLS/FAST/TEAP cases. However, this is not really ideal when
+unfortunately common misconfiguration of PEAP is used in deployed
+devices where the server trust root (ca_cert) is not configured or the
+user has an easy option for allowing this validation step to be skipped.
+
+Change the default PEAP client behavior to be to require Phase 2
+authentication to be successfully completed for cases where TLS session
+resumption is not used and the client certificate has not been
+configured. Those two exceptions are the main cases where a deployed
+authentication server might skip Phase 2 and as such, where a more
+strict default behavior could result in undesired interoperability
+issues. Requiring Phase 2 authentication will end up disabling TLS
+session resumption automatically to avoid interoperability issues.
+
+Allow Phase 2 authentication behavior to be configured with a new phase1
+configuration parameter option:
+'phase2_auth' option can be used to control Phase 2 (i.e., within TLS
+tunnel) behavior for PEAP:
+ * 0 = do not require Phase 2 authentication
+ * 1 = require Phase 2 authentication when client certificate
+ (private_key/client_cert) is no used and TLS session resumption was
+ not used (default)
+ * 2 = require Phase 2 authentication in all cases
+
+Signed-off-by: Jouni Malinen <j@w1.fi>
+---
+ src/eap_peer/eap_config.h | 8 ++++++++
+ src/eap_peer/eap_peap.c | 40 +++++++++++++++++++++++++++++++++++---
+ src/eap_peer/eap_tls_common.c | 6 ++++++
+ src/eap_peer/eap_tls_common.h | 5 +++++
+ wpa_supplicant/wpa_supplicant.conf | 7 +++++++
+ 5 files changed, 63 insertions(+), 3 deletions(-)
+
+diff --git a/src/eap_peer/eap_config.h b/src/eap_peer/eap_config.h
+index 26744ab68..58d5a1359 100644
+--- a/src/eap_peer/eap_config.h
++++ b/src/eap_peer/eap_config.h
+@@ -471,6 +471,14 @@ struct eap_peer_config {
+ * 1 = use cryptobinding if server supports it
+ * 2 = require cryptobinding
+ *
++ * phase2_auth option can be used to control Phase 2 (i.e., within TLS
++ * tunnel) behavior for PEAP:
++ * 0 = do not require Phase 2 authentication
++ * 1 = require Phase 2 authentication when client certificate
++ * (private_key/client_cert) is no used and TLS session resumption was
++ * not used (default)
++ * 2 = require Phase 2 authentication in all cases
++ *
+ * EAP-WSC (WPS) uses following options: pin=Device_Password and
+ * uuid=Device_UUID
+ *
+diff --git a/src/eap_peer/eap_peap.c b/src/eap_peer/eap_peap.c
+index 12e30df29..608069719 100644
+--- a/src/eap_peer/eap_peap.c
++++ b/src/eap_peer/eap_peap.c
+@@ -67,6 +67,7 @@ struct eap_peap_data {
+ u8 cmk[20];
+ int soh; /* Whether IF-TNCCS-SOH (Statement of Health; Microsoft NAP)
+ * is enabled. */
++ enum { NO_AUTH, FOR_INITIAL, ALWAYS } phase2_auth;
+ };
+
+
+@@ -114,6 +115,19 @@ static void eap_peap_parse_phase1(struct eap_peap_data *data,
+ wpa_printf(MSG_DEBUG, "EAP-PEAP: Require cryptobinding");
+ }
+
++ if (os_strstr(phase1, "phase2_auth=0")) {
++ data->phase2_auth = NO_AUTH;
++ wpa_printf(MSG_DEBUG,
++ "EAP-PEAP: Do not require Phase 2 authentication");
++ } else if (os_strstr(phase1, "phase2_auth=1")) {
++ data->phase2_auth = FOR_INITIAL;
++ wpa_printf(MSG_DEBUG,
++ "EAP-PEAP: Require Phase 2 authentication for initial connection");
++ } else if (os_strstr(phase1, "phase2_auth=2")) {
++ data->phase2_auth = ALWAYS;
++ wpa_printf(MSG_DEBUG,
++ "EAP-PEAP: Require Phase 2 authentication for all cases");
++ }
+ #ifdef EAP_TNC
+ if (os_strstr(phase1, "tnc=soh2")) {
+ data->soh = 2;
+@@ -142,6 +156,7 @@ static void * eap_peap_init(struct eap_sm *sm)
+ data->force_peap_version = -1;
+ data->peap_outer_success = 2;
+ data->crypto_binding = OPTIONAL_BINDING;
++ data->phase2_auth = FOR_INITIAL;
+
+ if (config && config->phase1)
+ eap_peap_parse_phase1(data, config->phase1);
+@@ -454,6 +469,20 @@ static int eap_tlv_validate_cryptobinding(struct eap_sm *sm,
+ }
+
+
++static bool peap_phase2_sufficient(struct eap_sm *sm,
++ struct eap_peap_data *data)
++{
++ if ((data->phase2_auth == ALWAYS ||
++ (data->phase2_auth == FOR_INITIAL &&
++ !tls_connection_resumed(sm->ssl_ctx, data->ssl.conn) &&
++ !data->ssl.client_cert_conf) ||
++ data->phase2_eap_started) &&
++ !data->phase2_eap_success)
++ return false;
++ return true;
++}
++
++
+ /**
+ * eap_tlv_process - Process a received EAP-TLV message and generate a response
+ * @sm: Pointer to EAP state machine allocated with eap_peer_sm_init()
+@@ -568,6 +597,11 @@ static int eap_tlv_process(struct eap_sm *sm, struct eap_peap_data *data,
+ " - force failed Phase 2");
+ resp_status = EAP_TLV_RESULT_FAILURE;
+ ret->decision = DECISION_FAIL;
++ } else if (!peap_phase2_sufficient(sm, data)) {
++ wpa_printf(MSG_INFO,
++ "EAP-PEAP: Server indicated Phase 2 success, but sufficient Phase 2 authentication has not been completed");
++ resp_status = EAP_TLV_RESULT_FAILURE;
++ ret->decision = DECISION_FAIL;
+ } else {
+ resp_status = EAP_TLV_RESULT_SUCCESS;
+ ret->decision = DECISION_UNCOND_SUCC;
+@@ -887,8 +921,7 @@ continue_req:
+ /* EAP-Success within TLS tunnel is used to indicate
+ * shutdown of the TLS channel. The authentication has
+ * been completed. */
+- if (data->phase2_eap_started &&
+- !data->phase2_eap_success) {
++ if (!peap_phase2_sufficient(sm, data)) {
+ wpa_printf(MSG_DEBUG, "EAP-PEAP: Phase 2 "
+ "Success used to indicate success, "
+ "but Phase 2 EAP was not yet "
+@@ -1199,8 +1232,9 @@ static struct wpabuf * eap_peap_process(struct eap_sm *sm, void *priv,
+ static bool eap_peap_has_reauth_data(struct eap_sm *sm, void *priv)
+ {
+ struct eap_peap_data *data = priv;
++
+ return tls_connection_established(sm->ssl_ctx, data->ssl.conn) &&
+- data->phase2_success;
++ data->phase2_success && data->phase2_auth != ALWAYS;
+ }
+
+
+diff --git a/src/eap_peer/eap_tls_common.c b/src/eap_peer/eap_tls_common.c
+index 6193b4bdb..966cbd6c7 100644
+--- a/src/eap_peer/eap_tls_common.c
++++ b/src/eap_peer/eap_tls_common.c
+@@ -242,6 +242,12 @@ static int eap_tls_params_from_conf(struct eap_sm *sm,
+
+ sm->ext_cert_check = !!(params->flags & TLS_CONN_EXT_CERT_CHECK);
+
++ if (!phase2)
++ data->client_cert_conf = params->client_cert ||
++ params->client_cert_blob ||
++ params->private_key ||
++ params->private_key_blob;
++
+ return 0;
+ }
+
+diff --git a/src/eap_peer/eap_tls_common.h b/src/eap_peer/eap_tls_common.h
+index 9ac00121f..334863413 100644
+--- a/src/eap_peer/eap_tls_common.h
++++ b/src/eap_peer/eap_tls_common.h
+@@ -79,6 +79,11 @@ struct eap_ssl_data {
+ * tls_v13 - Whether TLS v1.3 or newer is used
+ */
+ int tls_v13;
++
++ /**
++ * client_cert_conf: Whether client certificate has been configured
++ */
++ bool client_cert_conf;
+ };
+
+
+diff --git a/wpa_supplicant/wpa_supplicant.conf b/wpa_supplicant/wpa_supplicant.conf
+index f0b82443e..1b09f57d3 100644
+--- a/wpa_supplicant/wpa_supplicant.conf
++++ b/wpa_supplicant/wpa_supplicant.conf
+@@ -1370,6 +1370,13 @@ fast_reauth=1
+ # * 0 = do not use cryptobinding (default)
+ # * 1 = use cryptobinding if server supports it
+ # * 2 = require cryptobinding
++# 'phase2_auth' option can be used to control Phase 2 (i.e., within TLS
++# tunnel) behavior for PEAP:
++# * 0 = do not require Phase 2 authentication
++# * 1 = require Phase 2 authentication when client certificate
++# (private_key/client_cert) is no used and TLS session resumption was
++# not used (default)
++# * 2 = require Phase 2 authentication in all cases
+ # EAP-WSC (WPS) uses following options: pin=<Device Password> or
+ # pbc=1.
+ #
+--
+cgit v1.2.3-18-g5258
+
diff --git a/main/wpa_supplicant/config b/main/wpa_supplicant/config
index d3d81419baa..35301ebd372 100644
--- a/main/wpa_supplicant/config
+++ b/main/wpa_supplicant/config
@@ -32,7 +32,7 @@ CONFIG_DRIVER_WEXT=y
CONFIG_DRIVER_NL80211=y
# QCA vendor extensions to nl80211
-#CONFIG_DRIVER_NL80211_QCA=y
+CONFIG_DRIVER_NL80211_QCA=y
# driver_nl80211.c requires libnl. If you are compiling it yourself
# you may need to point hostapd to your version of libnl.
@@ -324,7 +324,7 @@ CONFIG_BACKEND=file
CONFIG_IEEE80211W=y
#
# Support Operating Channel Validation
-#CONFIG_OCV=y
+CONFIG_OCV=y
# Select TLS implementation
# openssl = OpenSSL (default)
@@ -350,7 +350,7 @@ CONFIG_TLSV12=y
# Select which ciphers to use by default with OpenSSL if the user does not
# specify them.
-#CONFIG_TLS_DEFAULT_CIPHERS="DEFAULT:!EXP:!LOW"
+CONFIG_TLS_DEFAULT_CIPHERS="DEFAULT:@SECLEVEL=1"
# If CONFIG_TLS=internal is used, additional library and include paths are
# needed for LibTomMath. Alternatively, an integrated, minimal version of
@@ -413,9 +413,9 @@ CONFIG_CTRL_IFACE_DBUS_INTRO=y
#CONFIG_DEBUG_FILE=y
# Send debug messages to syslog instead of stdout
-#CONFIG_DEBUG_SYSLOG=y
+CONFIG_DEBUG_SYSLOG=y
# Set syslog facility for debug messages
-#CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON
+CONFIG_DEBUG_SYSLOG_FACILITY=LOG_DAEMON
# Add support for sending all debug messages (regardless of debug verbosity)
# to the Linux kernel tracing facility. This helps debug the entire stack by
@@ -486,7 +486,7 @@ CONFIG_DELAYED_MIC_ERROR_REPORT=y
# Should we attempt to use the getrandom(2) call that provides more reliable
# yet secure randomness source than /dev/random on Linux 3.17 and newer.
# Requires glibc 2.25 to build, falls back to /dev/random if unavailable.
-#CONFIG_GETRANDOM=y
+CONFIG_GETRANDOM=y
# IEEE 802.11n (High Throughput) support (mainly for AP mode)
#CONFIG_IEEE80211N=y
@@ -503,10 +503,10 @@ CONFIG_DELAYED_MIC_ERROR_REPORT=y
# This can be used to enable functionality to improve interworking with
# external networks (GAS/ANQP to learn more about the networks and network
# selection based on available credentials).
-#CONFIG_INTERWORKING=y
+CONFIG_INTERWORKING=y
# Hotspot 2.0
-#CONFIG_HS20=y
+CONFIG_HS20=y
# Enable interface matching in wpa_supplicant
#CONFIG_MATCH_IFACE=y
@@ -527,12 +527,12 @@ CONFIG_AP=y
CONFIG_P2P=y
# Enable TDLS support
-#CONFIG_TDLS=y
+CONFIG_TDLS=y
# Wi-Fi Display
# This can be used to enable Wi-Fi Display extensions for P2P using an external
# program to control the additional information exchanges in the messages.
-#CONFIG_WIFI_DISPLAY=y
+CONFIG_WIFI_DISPLAY=y
# Autoscan
# This can be used to enable automatic scan support in wpa_supplicant.
@@ -585,15 +585,15 @@ CONFIG_AUTOSCAN_PERIODIC=y
#
# For more details refer to:
# http://wireless.kernel.org/en/users/Documentation/acs
-#CONFIG_ACS=y
+CONFIG_ACS=y
# Support Multi Band Operation
#CONFIG_MBO=y
# Fast Initial Link Setup (FILS) (IEEE 802.11ai)
-#CONFIG_FILS=y
+CONFIG_FILS=y
# FILS shared key authentication with PFS
-#CONFIG_FILS_SK_PFS=y
+CONFIG_FILS_SK_PFS=y
# Support RSN on IBSS networks
# This is needed to be able to use mode=1 network profile with proto=RSN and
@@ -620,9 +620,16 @@ CONFIG_BGSCAN_SIMPLE=y
# Opportunistic Wireless Encryption (OWE)
# Experimental implementation of draft-harkins-owe-07.txt
-#CONFIG_OWE=y
+CONFIG_OWE=y
# Device Provisioning Protocol (DPP)
# This requires CONFIG_IEEE80211W=y to be enabled, too. (see
# wpa_supplicant/README-DPP for details)
#CONFIG_DPP=y
+
+# WPA3-Enterprise (SuiteB-192)
+CONFIG_SUITEB=y
+CONFIG_SUITEB192=y
+
+# IEEE 802.11n (high throughput) support
+CONFIG_IEEE80211N=y
diff --git a/main/wpa_supplicant/eloop.patch b/main/wpa_supplicant/eloop.patch
deleted file mode 100644
index bab2cee4e59..00000000000
--- a/main/wpa_supplicant/eloop.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-$OpenBSD: patch-src_utils_eloop_c,v 1.5 2015/09/29 11:57:54 dcoppa Exp $
-
-don't try to access list members to free them unless already initialised
-
---- a/src/utils/eloop.c.orig Sun Sep 27 21:02:05 2015
-+++ b/src/utils/eloop.c Mon Sep 28 09:35:05 2015
-@@ -1064,6 +1064,9 @@ void eloop_destroy(void)
- struct eloop_timeout *timeout, *prev;
- struct os_reltime now;
-
-+ if (eloop.timeout.prev == NULL)
-+ return;
-+
- os_get_reltime(&now);
- dl_list_for_each_safe(timeout, prev, &eloop.timeout,
- struct eloop_timeout, list) {
diff --git a/main/wpa_supplicant/unsafe-renegotiation-1.patch b/main/wpa_supplicant/unsafe-renegotiation-1.patch
new file mode 100644
index 00000000000..0802a1bab8d
--- /dev/null
+++ b/main/wpa_supplicant/unsafe-renegotiation-1.patch
@@ -0,0 +1,103 @@
+Patch-Source: https://w1.fi/cgit/hostap/commit/?id=566ce69a8d0e64093309cbde80235aa522fbf84e
+From 566ce69a8d0e64093309cbde80235aa522fbf84e Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <quic_jouni@quicinc.com>
+Date: Thu, 5 May 2022 00:07:44 +0300
+Subject: EAP peer: Workaround for servers that do not support safe TLS
+ renegotiation
+
+The TLS protocol design for renegotiation was identified to have a
+significant security flaw in 2009 and an extension to secure this design
+was published in 2010 (RFC 5746). However, some old RADIUS
+authentication servers without support for this are still used commonly.
+
+This is obviously not good from the security view point, but since there
+are cases where the user of a network service has no realistic means for
+getting the authentication server upgraded, TLS handshake may still need
+to be allowed to be able to use the network.
+
+OpenSSL 3.0 disabled the client side workaround by default and this
+resulted in issues connection to some networks with insecure
+authentication servers. With OpenSSL 3.0, the client is now enforcing
+security by refusing to authenticate with such servers. The pre-3.0
+behavior of ignoring this issue and leaving security to the server can
+now be enabled with a new phase1 parameter allow_unsafe_renegotiation=1.
+This should be used only when having to connect to a network that has an
+insecure authentication server that cannot be upgraded.
+
+The old (pre-2010) TLS renegotiation mechanism might open security
+vulnerabilities if the authentication server were to allow TLS
+renegotiation to be initiated. While this is unlikely to cause real
+issues with EAP-TLS, there might be cases where use of PEAP or TTLS with
+an authentication server that does not support RFC 5746 might result in
+a security vulnerability.
+
+Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
+---
+ src/crypto/tls.h | 1 +
+ src/crypto/tls_openssl.c | 5 +++++
+ src/eap_peer/eap_tls_common.c | 4 ++++
+ wpa_supplicant/wpa_supplicant.conf | 5 +++++
+ 4 files changed, 15 insertions(+)
+
+diff --git a/src/crypto/tls.h b/src/crypto/tls.h
+index ccaac94c9..7ea32ee4a 100644
+--- a/src/crypto/tls.h
++++ b/src/crypto/tls.h
+@@ -112,6 +112,7 @@ struct tls_config {
+ #define TLS_CONN_ENABLE_TLSv1_1 BIT(15)
+ #define TLS_CONN_ENABLE_TLSv1_2 BIT(16)
+ #define TLS_CONN_TEAP_ANON_DH BIT(17)
++#define TLS_CONN_ALLOW_UNSAFE_RENEGOTIATION BIT(18)
+
+ /**
+ * struct tls_connection_params - Parameters for TLS connection
+diff --git a/src/crypto/tls_openssl.c b/src/crypto/tls_openssl.c
+index 388c6b0f4..0d23f44ad 100644
+--- a/src/crypto/tls_openssl.c
++++ b/src/crypto/tls_openssl.c
+@@ -3081,6 +3081,11 @@ static int tls_set_conn_flags(struct tls_connection *conn, unsigned int flags,
+ SSL_clear_options(ssl, SSL_OP_NO_TICKET);
+ #endif /* SSL_OP_NO_TICKET */
+
++#ifdef SSL_OP_LEGACY_SERVER_CONNECT
++ if (flags & TLS_CONN_ALLOW_UNSAFE_RENEGOTIATION)
++ SSL_set_options(ssl, SSL_OP_LEGACY_SERVER_CONNECT);
++#endif /* SSL_OP_LEGACY_SERVER_CONNECT */
++
+ #ifdef SSL_OP_NO_TLSv1
+ if (flags & TLS_CONN_DISABLE_TLSv1_0)
+ SSL_set_options(ssl, SSL_OP_NO_TLSv1);
+diff --git a/src/eap_peer/eap_tls_common.c b/src/eap_peer/eap_tls_common.c
+index 06c9b211e..6193b4bdb 100644
+--- a/src/eap_peer/eap_tls_common.c
++++ b/src/eap_peer/eap_tls_common.c
+@@ -102,6 +102,10 @@ static void eap_tls_params_flags(struct tls_connection_params *params,
+ params->flags |= TLS_CONN_SUITEB_NO_ECDH;
+ if (os_strstr(txt, "tls_suiteb_no_ecdh=0"))
+ params->flags &= ~TLS_CONN_SUITEB_NO_ECDH;
++ if (os_strstr(txt, "allow_unsafe_renegotiation=1"))
++ params->flags |= TLS_CONN_ALLOW_UNSAFE_RENEGOTIATION;
++ if (os_strstr(txt, "allow_unsafe_renegotiation=0"))
++ params->flags &= ~TLS_CONN_ALLOW_UNSAFE_RENEGOTIATION;
+ }
+
+
+diff --git a/wpa_supplicant/wpa_supplicant.conf b/wpa_supplicant/wpa_supplicant.conf
+index a1dc769c9..b5304a77e 100644
+--- a/wpa_supplicant/wpa_supplicant.conf
++++ b/wpa_supplicant/wpa_supplicant.conf
+@@ -1370,6 +1370,11 @@ fast_reauth=1
+ # tls_suiteb=0 - do not apply Suite B 192-bit constraints on TLS (default)
+ # tls_suiteb=1 - apply Suite B 192-bit constraints on TLS; this is used in
+ # particular when using Suite B with RSA keys of >= 3K (3072) bits
++# allow_unsafe_renegotiation=1 - allow connection with a TLS server that does
++# not support safe renegotiation (RFC 5746); please note that this
++# workaround should be only when having to authenticate with an old
++# authentication server that cannot be updated to use secure TLS
++# implementation.
+ #
+ # Following certificate/private key fields are used in inner Phase2
+ # authentication when using EAP-TTLS or EAP-PEAP.
+--
+cgit v1.2.3-18-g5258
+
diff --git a/main/wpa_supplicant/unsafe-renegotiation-2.patch b/main/wpa_supplicant/unsafe-renegotiation-2.patch
new file mode 100644
index 00000000000..20466378d6f
--- /dev/null
+++ b/main/wpa_supplicant/unsafe-renegotiation-2.patch
@@ -0,0 +1,105 @@
+Patch-Source: https://w1.fi/cgit/hostap/commit/?id=a561d12d24c2c8bb0f825d4a3a55a5e47e845853
+From a561d12d24c2c8bb0f825d4a3a55a5e47e845853 Mon Sep 17 00:00:00 2001
+From: Jouni Malinen <quic_jouni@quicinc.com>
+Date: Wed, 4 May 2022 23:55:38 +0300
+Subject: EAP peer status notification for server not supporting RFC 5746
+
+Add a notification message to indicate reason for TLS handshake failure
+due to the server not supporting safe renegotiation (RFC 5746).
+
+Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
+---
+ src/ap/authsrv.c | 3 +++
+ src/crypto/tls.h | 3 ++-
+ src/crypto/tls_openssl.c | 15 +++++++++++++--
+ src/eap_peer/eap.c | 5 +++++
+ 4 files changed, 23 insertions(+), 3 deletions(-)
+
+diff --git a/src/ap/authsrv.c b/src/ap/authsrv.c
+index 516c1da74..fd9c96fad 100644
+--- a/src/ap/authsrv.c
++++ b/src/ap/authsrv.c
+@@ -169,6 +169,9 @@ static void authsrv_tls_event(void *ctx, enum tls_event ev,
+ wpa_printf(MSG_DEBUG, "authsrv: remote TLS alert: %s",
+ data->alert.description);
+ break;
++ case TLS_UNSAFE_RENEGOTIATION_DISABLED:
++ /* Not applicable to TLS server */
++ break;
+ }
+ }
+ #endif /* EAP_TLS_FUNCS */
+diff --git a/src/crypto/tls.h b/src/crypto/tls.h
+index 7ea32ee4a..7a2ee32df 100644
+--- a/src/crypto/tls.h
++++ b/src/crypto/tls.h
+@@ -22,7 +22,8 @@ enum tls_event {
+ TLS_CERT_CHAIN_SUCCESS,
+ TLS_CERT_CHAIN_FAILURE,
+ TLS_PEER_CERTIFICATE,
+- TLS_ALERT
++ TLS_ALERT,
++ TLS_UNSAFE_RENEGOTIATION_DISABLED,
+ };
+
+ /*
+diff --git a/src/crypto/tls_openssl.c b/src/crypto/tls_openssl.c
+index 0d23f44ad..912471ba2 100644
+--- a/src/crypto/tls_openssl.c
++++ b/src/crypto/tls_openssl.c
+@@ -4443,6 +4443,7 @@ int tls_connection_get_eap_fast_key(void *tls_ctx, struct tls_connection *conn,
+ static struct wpabuf *
+ openssl_handshake(struct tls_connection *conn, const struct wpabuf *in_data)
+ {
++ struct tls_context *context = conn->context;
+ int res;
+ struct wpabuf *out_data;
+
+@@ -4472,7 +4473,19 @@ openssl_handshake(struct tls_connection *conn, const struct wpabuf *in_data)
+ wpa_printf(MSG_DEBUG, "SSL: SSL_connect - want to "
+ "write");
+ else {
++ unsigned long error = ERR_peek_last_error();
++
+ tls_show_errors(MSG_INFO, __func__, "SSL_connect");
++
++ if (context->event_cb &&
++ ERR_GET_LIB(error) == ERR_LIB_SSL &&
++ ERR_GET_REASON(error) ==
++ SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED) {
++ context->event_cb(
++ context->cb_ctx,
++ TLS_UNSAFE_RENEGOTIATION_DISABLED,
++ NULL);
++ }
+ conn->failed++;
+ if (!conn->server && !conn->client_hello_generated) {
+ /* The server would not understand TLS Alert
+@@ -4495,8 +4508,6 @@ openssl_handshake(struct tls_connection *conn, const struct wpabuf *in_data)
+ if ((conn->flags & TLS_CONN_SUITEB) && !conn->server &&
+ os_strncmp(SSL_get_cipher(conn->ssl), "DHE-", 4) == 0 &&
+ conn->server_dh_prime_len < 3072) {
+- struct tls_context *context = conn->context;
+-
+ /*
+ * This should not be reached since earlier cert_cb should have
+ * terminated the handshake. Keep this check here for extra
+diff --git a/src/eap_peer/eap.c b/src/eap_peer/eap.c
+index 429b20d3a..729388f4f 100644
+--- a/src/eap_peer/eap.c
++++ b/src/eap_peer/eap.c
+@@ -2172,6 +2172,11 @@ static void eap_peer_sm_tls_event(void *ctx, enum tls_event ev,
+ eap_notify_status(sm, "remote TLS alert",
+ data->alert.description);
+ break;
++ case TLS_UNSAFE_RENEGOTIATION_DISABLED:
++ wpa_printf(MSG_INFO,
++ "TLS handshake failed due to the server not supporting safe renegotiation (RFC 5746); phase1 parameter allow_unsafe_renegotiation=1 can be used to work around this");
++ eap_notify_status(sm, "unsafe server renegotiation", "failure");
++ break;
+ }
+
+ os_free(hash_hex);
+--
+cgit v1.2.3-18-g5258
+
diff --git a/main/wpa_supplicant/wpa_supplicant.initd b/main/wpa_supplicant/wpa_supplicant.initd
index c1a4834d826..91f57e619a2 100644
--- a/main/wpa_supplicant/wpa_supplicant.initd
+++ b/main/wpa_supplicant/wpa_supplicant.initd
@@ -18,6 +18,7 @@ depend() {
after bootmisc modules entropy udev-settle
before dns dhcpcd net
keyword -shutdown
+ provide wlan
}
find_wireless() {
diff --git a/main/xcb-proto/APKBUILD b/main/xcb-proto/APKBUILD
index 29f7d038b33..d4f216dcfa7 100644
--- a/main/xcb-proto/APKBUILD
+++ b/main/xcb-proto/APKBUILD
@@ -1,13 +1,14 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=xcb-proto
-pkgver=1.15
-pkgrel=0
+pkgver=1.16.0
+pkgrel=1
pkgdesc="XML-XCB protocol descriptions"
options="!check" # no testsuite
url="https://xcb.freedesktop.org"
arch="noarch"
license="MIT"
makedepends="python3"
+subpackages="$pkgname-pyc"
source="https://xorg.freedesktop.org/archive/individual/proto/xcb-proto-$pkgver.tar.xz"
build() {
@@ -23,5 +24,5 @@ package() {
}
sha512sums="
-a333ac7c39f17ff2567419d09a9a77210c943a4e88d79eb152d416ae26bf6fb14e2446f9817abc806edd7aa3733bd4de5852b5ae90a25cbcc9d40e59c211aa36 xcb-proto-1.15.tar.xz
+54906f379a7aa2cbbfbbe54764c02dbf522ca8f6c54e07d4faae471aac3aee25d0359be38c808c8da887de228aed745582a78b2f56714b023bca8f3513b24972 xcb-proto-1.16.0.tar.xz
"
diff --git a/main/xcb-util/APKBUILD b/main/xcb-util/APKBUILD
index 4f7ed898c61..216ce6d8860 100644
--- a/main/xcb-util/APKBUILD
+++ b/main/xcb-util/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=xcb-util
-pkgver=0.4.0
+pkgver=0.4.1
pkgrel=3
pkgdesc="Utility libraries for X C-language Binding"
url="https://xcb.freedesktop.org/"
@@ -10,14 +10,10 @@ depends_dev="libxcb-dev util-macros"
makedepends="$depends_dev m4 gperf"
checkdepends="check-dev"
subpackages="$pkgname-dev"
-source="https://xcb.freedesktop.org/dist/xcb-util-$pkgver.tar.bz2"
-
-prepare() {
- default_prepare
- update_config_sub
-}
+source="https://xorg.freedesktop.org/archive/individual/lib/xcb-util-$pkgver.tar.xz"
build() {
+ CFLAGS="$CFLAGS -flto=auto" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -34,4 +30,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="e60aaa6f582eacd05896c5fd7c8417938318a1288146f3a5b339f77eed24e211c6099963f8813daa621c94173d2934228936b491c0ed79b09a8a67d835867d0e xcb-util-0.4.0.tar.bz2"
+sha512sums="
+da67f2f017d2a1788dcf35f28d6956e171303a622a1dd085cd3d69fdb2ed77965d83c557cc926ebf9b32e905eb2cbb5921987250192d78a2f5edc4d437ed7d2b xcb-util-0.4.1.tar.xz
+"
diff --git a/main/xen/APKBUILD b/main/xen/APKBUILD
index 60cfe8f749a..1810b054d63 100644
--- a/main/xen/APKBUILD
+++ b/main/xen/APKBUILD
@@ -1,11 +1,11 @@
# Contributor: Roger Pau Monne <roger.pau@entel.upc.edu>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=xen
-pkgver=4.16.1
-pkgrel=3
+pkgver=4.18.2
+pkgrel=1
pkgdesc="Xen hypervisor"
url="https://www.xenproject.org/"
-arch="x86_64 armv7 aarch64" # enable armv7 when builds with gcc8
+arch="x86_64 armv7 aarch64"
license="GPL-2.0-only"
depends="bash iproute2 logrotate"
depends_dev="
@@ -16,8 +16,6 @@ depends_dev="
dev86
e2fsprogs-dev
flex
- gettext
- glib-dev
gnutls-dev
libaio-dev
libcap-ng-dev
@@ -25,10 +23,11 @@ depends_dev="
linux-headers
lzo-dev
ncurses-dev
- openssl1.1-compat-dev
+ openssl-dev>3
pciutils-dev
perl
perl-dev
+ py3-setuptools
python3-dev
spice-dev
texinfo
@@ -47,6 +46,8 @@ options="!strip"
# 0:
# - CVE-2020-29568 XSA-349
# - CVE-2020-29569 XSA-350
+# - CVE-2022-21127
+# - CVE-2023-46840 XSA-450
# 4.7.0-r0:
# - CVE-2016-6258 XSA-182
# - CVE-2016-6259 XSA-183
@@ -262,6 +263,7 @@ options="!strip"
# - CVE-2021-28701 XSA-384
# 4.15.1-r1:
# - CVE-2021-28702 XSA-386
+# - CVE-2021-28703 XSA-387
# - CVE-2021-28710 XSA-390
# 4.15.1-r2:
# - CVE-2021-28704 XSA-388
@@ -288,6 +290,88 @@ options="!strip"
# - CVE-2022-21123 XSA-404
# - CVE-2022-21125 XSA-404
# - CVE-2022-21166 XSA-404
+# 4.16.1-r4:
+# - CVE-2022-26365 XSA-403
+# - CVE-2022-33740 XSA-403
+# - CVE-2022-33741 XSA-403
+# - CVE-2022-33742 XSA-403
+# 4.16.1-r5:
+# - CVE-2022-23816 XSA-407
+# - CVE-2022-23825 XSA-407
+# - CVE-2022-29900 XSA-407
+# 4.16.1-r6:
+# - CVE-2022-33745 XSA-408
+# 4.16.2-r1:
+# - CVE-2022-42327 XSA-412
+# - CVE-2022-42309 XSA-414
+# 4.16.2-r2:
+# - CVE-2022-23824 XSA-422
+# 4.17.0-r0:
+# - CVE-2022-42311 XSA-326
+# - CVE-2022-42312 XSA-326
+# - CVE-2022-42313 XSA-326
+# - CVE-2022-42314 XSA-326
+# - CVE-2022-42315 XSA-326
+# - CVE-2022-42316 XSA-326
+# - CVE-2022-42317 XSA-326
+# - CVE-2022-42318 XSA-326
+# - CVE-2022-33747 XSA-409
+# - CVE-2022-33746 XSA-410
+# - CVE-2022-33748 XSA-411
+# - CVE-2022-33749 XSA-413
+# - CVE-2022-42310 XSA-415
+# - CVE-2022-42319 XSA-416
+# - CVE-2022-42320 XSA-417
+# - CVE-2022-42321 XSA-418
+# - CVE-2022-42322 XSA-419
+# - CVE-2022-42323 XSA-419
+# - CVE-2022-42324 XSA-420
+# - CVE-2022-42325 XSA-421
+# - CVE-2022-42326 XSA-421
+# 4.17.0-r2:
+# - CVE-2022-42330 XSA-425
+# - CVE-2022-27672 XSA-426
+# 4.17.0-r5:
+# - CVE-2022-42332 XSA-427
+# - CVE-2022-42333 CVE-2022-43334 XSA-428
+# - CVE-2022-42331 XSA-429
+# - CVE-2022-42335 XSA-430
+# 4.17.1-r1:
+# - CVE-2022-42336 XSA-431
+# 4.17.1-r3:
+# - CVE-2023-20593 XSA-433
+# 4.17.1-r5:
+# - CVE-2023-34320 XSA-436
+# 4.17.2-r0:
+# - CVE-2023-20569 XSA-434
+# - CVE-2022-40982 XSA-435
+# 4.17.2-r1:
+# - CVE-2023-34321 XSA-437
+# - CVE-2023-34322 XSA-438
+# 4.17.2-r2:
+# - CVE-2023-20588 XSA-439
+# 4.17.2-r3:
+# - CVE-2023-34323 XSA-440
+# - CVE-2023-34326 XSA-442
+# - CVE-2023-34325 XSA-443
+# - CVE-2023-34327 XSA-444
+# - CVE-2023-34328 XSA-444
+# 4.17.2-r4:
+# - CVE-2023-46835 XSA-445
+# - CVE-2023-46836 XSA-446
+# 4.18.0-r2:
+# - CVE-2023-46837 XSA-447
+# 4.18.0-r3:
+# - CVE-2023-46839 XSA-449
+# 4.18.0-r4:
+# - CVE-2023-46841 XSA-451
+# 4.18.0-r5:
+# - CVE-2023-28746 XSA-452
+# - CVE-2024-2193 XSA-453
+# 4.18.2-r0:
+# - CVE-2023-46842 XSA-454
+# - CVE-2024-31142 XSA-455
+# - CVE-2024-2201 XSA-456
case "$CARCH" in
x86*)
@@ -305,7 +389,9 @@ esac
# subpackages="$pkgname-dbg"
#fi
subpackages="$subpackages $pkgname-doc $pkgname-dev $pkgname-libs
- $pkgname-hypervisor $pkgname-bridge $pkgname-qemu $pkgname-bash-completion"
+ $pkgname-hypervisor $pkgname-pyc $pkgname-bridge
+ $pkgname-bridge-openrc:bridge_openrc $pkgname-qemu
+ $pkgname-qemu-openrc:qemu_openrc $pkgname-bash-completion"
# grep _VERSION= stubdom/configure
_ZLIB_VERSION="1.2.3"
@@ -318,8 +404,7 @@ _POLARSSL_VERSION="1.1.4"
_TPMEMU_VERSION="0.7.4"
# grep ^IPXE_GIT_TAG tools/firmware/etherboot/Makefile
-_IPXE_GIT_TAG=3c040ad387099483102708bb1839110bc788cefb
-
+_IPXE_GIT_TAG=1d1cf74a5e58811822bee4b3da3cff7282fcdfca
source="https://downloads.xenproject.org/release/xen/$pkgver/xen-$pkgver.tar.gz
https://xenbits.xen.org/xen-extfiles/gmp-$_GMP_VERSION.tar.bz2
@@ -353,17 +438,6 @@ source="https://downloads.xenproject.org/release/xen/$pkgver/xen-$pkgver.tar.gz
xendriverdomain.initd
xen-pci.initd
xen-pci.confd
-
- xsa401-4.16-1.patch
- xsa401-4.16-2.patch
- xsa402-4.16-1.patch
- xsa402-4.16-2.patch
- xsa402-4.16-3.patch
- xsa402-4.16-4.patch
- xsa402-4.16-5.patch
- xsa404-4.16-1.patch
- xsa404-4.16-2.patch
- xsa404-4.16-3.patch
"
_seabios=/usr/share/seabios/bios-256k.bin
@@ -375,7 +449,8 @@ aarch64) export XEN_TARGET_ARCH="arm64";;
esac
prepare() {
- local i _failed=''
+ default_prepare
+ local i
for i in $source; do
case $i in
@@ -386,9 +461,6 @@ prepare() {
cp "$srcdir"/$p tools/firmware/etherboot/patches/
echo "$p" >> tools/firmware/etherboot/patches/series
;;
- *.patch) msg $i; patch -s -N -p1 -i "$srcdir"/$i \
- || _failed="$_failed $i"
- ;;
*/ipxe-git-*)
ln -s "$srcdir"/${i##*/} \
tools/firmware/etherboot/ipxe.tar.gz
@@ -398,13 +470,6 @@ prepare() {
;;
esac
done
- if [ -n "$_failed" ]; then
- error "Patches failed:"
- for i in $_failed; do
- echo $i
- done
- return 1
- fi
# remove all -Werror
msg "Eradicating -Werror..."
@@ -432,11 +497,6 @@ munge_cflags() {
unset LDFLAGS
unset LANG
unset LC_ALL
-
- case "$CARCH" in
- arm*) export CFLAGS="-mcpu=cortex-a15";;
- aarch64) export CFLAGS="-mcpu=cortex-a53";;
- esac
}
# These tasks are added as separate tasks to enable a packager
@@ -478,7 +538,7 @@ build_tools() {
munge_cflags
msg "Building tools..."
- make tools
+ NO_WERROR=1 make tools
}
build_docs() {
@@ -570,9 +630,23 @@ hypervisor() {
bridge() {
depends="dnsmasq"
pkgdesc="Bridge interface for XEN with dhcp"
+
+ mkdir -p "$subpkgdir"/etc/xen
+
+ cat ->>"$subpkgdir"/etc/xen/dnsmasq.conf <<EOF
+ #dhcp-host=somehost,10.0.4.3
+ #dhcp-host=otherhost,10.0.4.4
+EOF
+
+}
+
+bridge_openrc() {
+ depends=
+ pkgdesc="Bridge interface for XEN with dhcp (OpenRC init scripts)"
+ install_if="openrc ${subpkgname%-openrc}=$pkgver-r$pkgrel"
+
mkdir -p "$subpkgdir"/etc/conf.d \
- "$subpkgdir"/etc/init.d \
- "$subpkgdir"/etc/xen
+ "$subpkgdir"/etc/init.d
ln -s dnsmasq "$subpkgdir"/etc/init.d/dnsmasq.xenbr0
cat ->>"$subpkgdir"/etc/conf.d/dnsmasq.xenbr0 <<EOF
@@ -584,11 +658,6 @@ bridge() {
BRIDGE_MAC="00:16:3f:00:00:00"
DNSMASQ_CONFFILE="/etc/xen/dnsmasq.conf"
EOF
- cat ->>"$subpkgdir"/etc/xen/dnsmasq.conf <<EOF
- #dhcp-host=somehost,10.0.4.3
- #dhcp-host=otherhost,10.0.4.4
-EOF
-
}
qemu() {
@@ -598,13 +667,9 @@ qemu() {
depends="$depends seabios-bin"
;;
esac
- mkdir -p "$subpkgdir"/etc/conf.d \
- "$subpkgdir"/etc/init.d \
- "$subpkgdir"/usr/lib/xen/bin \
+ mkdir -p "$subpkgdir"/usr/lib/xen/bin \
"$subpkgdir"/usr/share/applications
- amove etc/conf.d/xenqemu
- amove etc/init.d/xenqemu
amove usr/lib/xen/bin/qemu*
mv "$pkgdir"/usr/share/qemu-xen/applications/qemu.desktop \
"$subpkgdir"/usr/share/applications/qemu-xen.desktop
@@ -628,8 +693,17 @@ qemu() {
esac
}
+qemu_openrc() {
+ depends=
+ pkgdesc="QEMU for XEN (OpenRC init scripts)"
+ install_if="openrc ${subpkgname%-openrc}=$pkgver-r$pkgrel"
+
+ amove etc/conf.d/xenqemu
+ amove etc/init.d/xenqemu
+}
+
sha512sums="
-eeabba9c263cd2425bca083e32b5ebfc6c716c00553759c144fd4b6f64a89836b260787fa25ba22c1f5c4ea65aaad7c95b8c2c1070d3377b1c43c9517aa7032a xen-4.16.1.tar.gz
+c5feb450155883b5d2e7f43b05a64e7215b661b7d2f438d8f5a0896bd57283379ee11ca8e2e7a1d8787813cc6f1a260253fcb8688ed7d61a2bfb636db1626941 xen-4.18.2.tar.gz
2e0b0fd23e6f10742a5517981e5171c6e88b0a93c83da701b296f5c0861d72c19782daab589a7eac3f9032152a0fc7eff7f5362db8fccc4859564a9aa82329cf gmp-4.3.2.tar.bz2
c2bc9ffc8583aeae71cee9ddcc4418969768d4e3764d47307da54f93981c0109fb07d84b061b3a3628bd00ba4d14a54742bc04848110eb3ae8ca25dbfbaabadb grub-0.97.tar.gz
1465b58279af1647f909450e394fe002ca165f0ff4a0254bfa9fe0e64316f50facdde2729d79a4e632565b4500cf4d6c74192ac0dd3bc9fe09129bbd67ba089d lwip-1.3.0.tar.gz
@@ -638,13 +712,13 @@ c2bc9ffc8583aeae71cee9ddcc4418969768d4e3764d47307da54f93981c0109fb07d84b061b3a36
88da614e4d3f4409c4fd3bb3e44c7587ba051e3fed4e33d526069a67e8180212e1ea22da984656f50e290049f60ddca65383e5983c0f8884f648d71f698303ad polarssl-1.1.4-gpl.tgz
4928b5b82f57645be9408362706ff2c4d9baa635b21b0d41b1c82930e8c60a759b1ea4fa74d7e6c7cae1b7692d006aa5cb72df0c3b88bf049779aa2b566f9d35 tpm_emulator-0.7.4.tar.gz
021b958fcd0d346c4ba761bcf0cc40f3522de6186cf5a0a6ea34a70504ce9622b1c2626fce40675bc8282cf5f5ade18473656abc38050f72f5d6480507a2106e zlib-1.2.3.tar.gz
-4ac1d07ce879a3a8c6c260380258c37f5e4ecddc880b27fb59afc38fbf3718e81b04a4dda2b58fe7a438a23175e00b6179fc067acbc4a75e33d93c4b85ff5d68 ipxe-git-3c040ad387099483102708bb1839110bc788cefb.tar.gz
+e27644cbb030c43e2841058003bedea6deb979ba71591f967e01312527ed869bb863f9a03fc7b5a266752433d30164929ea1b935953a245600ad713c9fb25cb5 ipxe-git-1d1cf74a5e58811822bee4b3da3cff7282fcdfca.tar.gz
b9c754220187955d01ffbb6e030dace9d9aaae755db1765d07e407858c71a2cb0de04e0ab2099cd121d9e1bc1978af06c7dbd2fd805e06eca12ac5d527f15a52 mini-os-__divmoddi4.patch
-fe3c253d03e1962ca4dd6bccd2e51817075450f51aa66e8ab9673bdd5a530dc08f1ed7817a1271ada028b0c34162f37cd6b24d84334403767caacd8206284cbb qemu-xen_paths.patch
+15de6a62394ef9f338fbe25a434fe5c3725abef5fd98966b863e14a58dc447014c49ed890c4d469f60d63a0db763f3e84f0407201d71eb9bfe42a00054eee1d8 qemu-xen_paths.patch
1c9cb24bf67a2e84466572198315d5501627addf1ccd55d8d83df8d77d269a6696cd45e4a55601495168284e3bff58fb39853f56c46aaddd14f6191821678cf6 hotplug-vif-vtrill.patch
8c9cfc6afca325df1d8026e21ed03fa8cd2c7e1a21a56cc1968301c5ab634bfe849951899e75d328951d7a41273d1e49a2448edbadec0029ed410c43c0549812 hotplug-Linux-iscsi-block-handle-lun-1.patch
-6c28470dab368ce94d94db9e66954e4d915394ea730f6d4abb198ae122dbd7412453d6d8054f0a348d43d7f807fb13294363162f8b19f47311e802ffa9a40a90 stubdom-hack.patch
-a8dda349cab62febf2ef506eb26d2ba494a649b1c37206519ae23f02a36f600b19996bb8a148e5f21a240ec53ecfcf971a07686b9ddcdad417563fdf39b2215f xenstored.initd
+ed0ab25cd1966df7df503d285c17ede434033665d1569f8fb28172f37a10222b30d662e2ea867519eb40843de58dc3a56883d6f66a4fafa0a6ee1056ba72c25d stubdom-hack.patch
+9430940692d6bfb58b1438e0f5f84cb703fbca9ce9cc157a1313ab1ceff63222a1ae31c991543b20c8fc84300df2b22f4614b27bbff32f82e17f27fcd953143c xenstored.initd
093f7fbd43faf0a16a226486a0776bade5dc1681d281c5946a3191c32d74f9699c6bf5d0ab8de9d1195a2461165d1660788e92a3156c9b3c7054d7b2d52d7ff0 xenstored.confd
1dd04f4bf1890771aa7eef0b6e46f7139487da0907d28dcdbef9fbe335dcf731ca391cfcb175dd82924f637a308de00a69ae981f67348c34f04489ec5e5dc3b7 xenconsoled.initd
30df69cc38d0bed26bc4d6e08a2b62cbdc654d5f663009a05cb3b83b3e3dc5e206362d3fd59abbb753ceb8d6d79eaa6e15d079bb8f4f35dc74667103faf4e85d xenconsoled.confd
@@ -656,14 +730,4 @@ b833ed7334d912b519f317caefcf278274964838ca5588a0d58d9e91817e6c5519eab42521b78f7f
bc40f7c0548162ce2181b34ea39064c0e1c529af95e0a282c78879916036cf7ac3c2cb7c433f8702a9fffe6e9257707d25fdccb6f8d045aef78b5e251a476309 xendriverdomain.initd
a46337bebce24337f00adbe08095b9f5128c1f440e2033329e5ace9fd817a31fb772d75c0ecc7cc06f34b1522ebf8b21874ee4d0881a0f29851b1c1235f29cf3 xen-pci.initd
2db5fa6edeeb028236460029b976a849f22b3a15d3929acc3911dc41f365b471c2b815eb111639bc230a69528b1571f3c2e9e8e1e81a6679e55387e39355aa99 xen-pci.confd
-070fcb4a4041bd9ed53fdca6ef743581be7b5ecee25bc51a4a1e4753aacabb3081834d8aa70db1f6220e5a689225ec2d90ea3df408bfdc72d84fd93cb8f45d72 xsa401-4.16-1.patch
-c7d88603b7377cfffd3f52117f546a9d9df09eb7f1937c7a91b7631f4b7ac2a0ce348b40955cbcdf46040f45657a06bb56282e62c9f57a2a15c3751da5013c8f xsa401-4.16-2.patch
-b9566e4353562aa138208155bccef14d010cb269b3189fb12f525a91a7f52646e5a5f76536f1b26c7c2aab19521b14eb507bf255e265207e2b9994b42722803b xsa402-4.16-1.patch
-f3374dd67733e0f7efdaa090e6b13ecec80a5848815f5abdb140433ad47e631a29a9f4645721d2ca8e88206a9bbcfc1dd1e90bb816081bb55afe6d908529b25a xsa402-4.16-2.patch
-b39b0d0acc5856c12adae7d02c8a1429d028feffa6a57fe8d7848cd54f29e97822cad32c5a97661a76eba1015d79e5b45c7c8fd0ecc196a813e53ac73a557fb3 xsa402-4.16-3.patch
-32fca661482d6faa6a2a3c9eb57d74631fcab55722e2a989bfb5a1c79019a73668e28ca901274c7233c5ff7e8be5b6beeb126b1dedeb16eb0c7a8d29068636c3 xsa402-4.16-4.patch
-e0adabcf5b226cb23f74f10adcf7e898eacb12b2e2e2b53721a548a9a7260161ced10cd5fde0c297786a9e03c51ca7553f0701d857831e79fd047897fbaceaf0 xsa402-4.16-5.patch
-dbf0cc76b4463eade25868ffbe56e44fb8a4e298ad3386d0b007dcda0b820de8c223ede98b7f161bd0a2339373f49e30f0055892173622f690567d3615de2d46 xsa404-4.16-1.patch
-dbc33bc90c67b120654c8a3900ddf24ec0610b96e654ba3fe59144de524ef52b102e4f12c4b0858a93bf7995a1d21f0ea0cb8af224136cc81f9fb76f75c8c47c xsa404-4.16-2.patch
-b28567937b867296f34fd6d4db7c9eab216856cad7ae81d38e40c75063459b86d04973e7f121956a0cafe4d1f457dd5d58c970d16a3cfa06784f80d4eecf0af9 xsa404-4.16-3.patch
"
diff --git a/main/xen/qemu-xen_paths.patch b/main/xen/qemu-xen_paths.patch
index 40d064fbc15..4b7af627258 100644
--- a/main/xen/qemu-xen_paths.patch
+++ b/main/xen/qemu-xen_paths.patch
@@ -1,6 +1,6 @@
--- a/tools/Makefile
+++ b/tools/Makefile
-@@ -245,6 +245,7 @@ subdir-all-qemu-xen-dir: qemu-xen-dir-fi
+@@ -244,6 +244,7 @@ subdir-all-qemu-xen-dir: qemu-xen-dir-fi
$(EXTRA_CFLAGS_QEMU_XEN)" \
--extra-ldflags="$(QEMU_UPSTREAM_RPATH)" \
--bindir=$(LIBEXEC_BIN) \
diff --git a/main/xen/stubdom-hack.patch b/main/xen/stubdom-hack.patch
index 2e7ddc89260..ef53529cfec 100644
--- a/main/xen/stubdom-hack.patch
+++ b/main/xen/stubdom-hack.patch
@@ -1,6 +1,6 @@
--- xen-4.15.0.orig/stubdom/Makefile
+++ xen-4.15.0/stubdom/Makefile
-@@ -186,7 +186,7 @@
+@@ -188,7 +188,7 @@
rm $@ -rf || :
mv gmp-$(GMP_VERSION) $@
#patch -d $@ -p0 < gmp.patch
diff --git a/main/xen/xenstored.initd b/main/xen/xenstored.initd
index 3d507bea800..1a84e612953 100644
--- a/main/xen/xenstored.initd
+++ b/main/xen/xenstored.initd
@@ -65,8 +65,7 @@ start() {
eend $? || return 1
ebegin "Setting domain0 name and domid record"
- /usr/bin/xenstore-write "/local/domain/0/name" "Domain-0" \
- && /usr/bin/xenstore-write "/local/domain/0/domid" 0
+ /usr/lib/xen/bin/xen-init-dom0
eend $?
}
diff --git a/main/xen/xsa401-4.16-1.patch b/main/xen/xsa401-4.16-1.patch
deleted file mode 100644
index 5c8c50617a2..00000000000
--- a/main/xen/xsa401-4.16-1.patch
+++ /dev/null
@@ -1,170 +0,0 @@
-From: Andrew Cooper <andrew.cooper3@citrix.com>
-Subject: x86/pv: Clean up _get_page_type()
-
-Various fixes for clarity, ahead of making complicated changes.
-
- * Split the overflow check out of the if/else chain for type handling, as
- it's somewhat unrelated.
- * Comment the main if/else chain to explain what is going on. Adjust one
- ASSERT() and state the bit layout for validate-locked and partial states.
- * Correct the comment about TLB flushing, as it's backwards. The problem
- case is when writeable mappings are retained to a page becoming read-only,
- as it allows the guest to bypass Xen's safety checks for updates.
- * Reduce the scope of 'y'. It is an artefact of the cmpxchg loop and not
- valid for use by subsequent logic. Switch to using ACCESS_ONCE() to treat
- all reads as explicitly volatile. The only thing preventing the validated
- wait-loop being infinite is the compiler barrier hidden in cpu_relax().
- * Replace one page_get_owner(page) with the already-calculated 'd' already in
- scope.
-
-No functional change.
-
-This is part of XSA-401 / CVE-2022-26362.
-
-Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
-Signed-off-by: George Dunlap <george.dunlap@eu.citrix.com>
-Reviewed-by: Jan Beulich <jbeulich@suse.com>
-Reviewed-by: George Dunlap <george.dunlap@citrix.com>
-
-diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
-index 796faca64103..ddd32f88c798 100644
---- a/xen/arch/x86/mm.c
-+++ b/xen/arch/x86/mm.c
-@@ -2935,16 +2935,17 @@ static int _put_page_type(struct page_info *page, unsigned int flags,
- static int _get_page_type(struct page_info *page, unsigned long type,
- bool preemptible)
- {
-- unsigned long nx, x, y = page->u.inuse.type_info;
-+ unsigned long nx, x;
- int rc = 0;
-
- ASSERT(!(type & ~(PGT_type_mask | PGT_pae_xen_l2)));
- ASSERT(!in_irq());
-
-- for ( ; ; )
-+ for ( unsigned long y = ACCESS_ONCE(page->u.inuse.type_info); ; )
- {
- x = y;
- nx = x + 1;
-+
- if ( unlikely((nx & PGT_count_mask) == 0) )
- {
- gdprintk(XENLOG_WARNING,
-@@ -2952,8 +2953,15 @@ static int _get_page_type(struct page_info *page, unsigned long type,
- mfn_x(page_to_mfn(page)));
- return -EINVAL;
- }
-- else if ( unlikely((x & PGT_count_mask) == 0) )
-+
-+ if ( unlikely((x & PGT_count_mask) == 0) )
- {
-+ /*
-+ * Typeref 0 -> 1.
-+ *
-+ * Type changes are permitted when the typeref is 0. If the type
-+ * actually changes, the page needs re-validating.
-+ */
- struct domain *d = page_get_owner(page);
-
- if ( d && shadow_mode_enabled(d) )
-@@ -2964,8 +2972,8 @@ static int _get_page_type(struct page_info *page, unsigned long type,
- {
- /*
- * On type change we check to flush stale TLB entries. It is
-- * vital that no other CPUs are left with mappings of a frame
-- * which is about to become writeable to the guest.
-+ * vital that no other CPUs are left with writeable mappings
-+ * to a frame which is intending to become pgtable/segdesc.
- */
- cpumask_t *mask = this_cpu(scratch_cpumask);
-
-@@ -2977,7 +2985,7 @@ static int _get_page_type(struct page_info *page, unsigned long type,
-
- if ( unlikely(!cpumask_empty(mask)) &&
- /* Shadow mode: track only writable pages. */
-- (!shadow_mode_enabled(page_get_owner(page)) ||
-+ (!shadow_mode_enabled(d) ||
- ((nx & PGT_type_mask) == PGT_writable_page)) )
- {
- perfc_incr(need_flush_tlb_flush);
-@@ -3008,7 +3016,14 @@ static int _get_page_type(struct page_info *page, unsigned long type,
- }
- else if ( unlikely((x & (PGT_type_mask|PGT_pae_xen_l2)) != type) )
- {
-- /* Don't log failure if it could be a recursive-mapping attempt. */
-+ /*
-+ * else, we're trying to take a new reference, of the wrong type.
-+ *
-+ * This (being able to prohibit use of the wrong type) is what the
-+ * typeref system exists for, but skip printing the failure if it
-+ * looks like a recursive mapping, as subsequent logic might
-+ * ultimately permit the attempt.
-+ */
- if ( ((x & PGT_type_mask) == PGT_l2_page_table) &&
- (type == PGT_l1_page_table) )
- return -EINVAL;
-@@ -3027,18 +3042,46 @@ static int _get_page_type(struct page_info *page, unsigned long type,
- }
- else if ( unlikely(!(x & PGT_validated)) )
- {
-+ /*
-+ * else, the count is non-zero, and we're grabbing the right type;
-+ * but the page hasn't been validated yet.
-+ *
-+ * The page is in one of two states (depending on PGT_partial),
-+ * and should have exactly one reference.
-+ */
-+ ASSERT((x & (PGT_type_mask | PGT_count_mask)) == (type | 1));
-+
- if ( !(x & PGT_partial) )
- {
-- /* Someone else is updating validation of this page. Wait... */
-+ /*
-+ * The page has been left in the "validate locked" state
-+ * (i.e. PGT_[type] | 1) which means that a concurrent caller
-+ * of _get_page_type() is in the middle of validation.
-+ *
-+ * Spin waiting for the concurrent user to complete (partial
-+ * or fully validated), then restart our attempt to acquire a
-+ * type reference.
-+ */
- do {
- if ( preemptible && hypercall_preempt_check() )
- return -EINTR;
- cpu_relax();
-- } while ( (y = page->u.inuse.type_info) == x );
-+ } while ( (y = ACCESS_ONCE(page->u.inuse.type_info)) == x );
- continue;
- }
-- /* Type ref count was left at 1 when PGT_partial got set. */
-- ASSERT((x & PGT_count_mask) == 1);
-+
-+ /*
-+ * The page has been left in the "partial" state
-+ * (i.e., PGT_[type] | PGT_partial | 1).
-+ *
-+ * Rather than bumping the type count, we need to try to grab the
-+ * validation lock; if we succeed, we need to validate the page,
-+ * then drop the general ref associated with the PGT_partial bit.
-+ *
-+ * We grab the validation lock by setting nx to (PGT_[type] | 1)
-+ * (i.e., non-zero type count, neither PGT_validated nor
-+ * PGT_partial set).
-+ */
- nx = x & ~PGT_partial;
- }
-
-@@ -3087,6 +3130,13 @@ static int _get_page_type(struct page_info *page, unsigned long type,
- }
-
- out:
-+ /*
-+ * Did we drop the PGT_partial bit when acquiring the typeref? If so,
-+ * drop the general reference that went along with it.
-+ *
-+ * N.B. validate_page() may have have re-set PGT_partial, not reflected in
-+ * nx, but will have taken an extra ref when doing so.
-+ */
- if ( (x & PGT_partial) && !(nx & PGT_partial) )
- put_page(page);
-
diff --git a/main/xen/xsa401-4.16-2.patch b/main/xen/xsa401-4.16-2.patch
deleted file mode 100644
index be58db59a51..00000000000
--- a/main/xen/xsa401-4.16-2.patch
+++ /dev/null
@@ -1,191 +0,0 @@
-From: Andrew Cooper <andrew.cooper3@citrix.com>
-Subject: x86/pv: Fix ABAC cmpxchg() race in _get_page_type()
-
-_get_page_type() suffers from a race condition where it incorrectly assumes
-that because 'x' was read and a subsequent a cmpxchg() succeeds, the type
-cannot have changed in-between. Consider:
-
-CPU A:
- 1. Creates an L2e referencing pg
- `-> _get_page_type(pg, PGT_l1_page_table), sees count 0, type PGT_writable_page
- 2. Issues flush_tlb_mask()
-CPU B:
- 3. Creates a writeable mapping of pg
- `-> _get_page_type(pg, PGT_writable_page), count increases to 1
- 4. Writes into new mapping, creating a TLB entry for pg
- 5. Removes the writeable mapping of pg
- `-> _put_page_type(pg), count goes back down to 0
-CPU A:
- 7. Issues cmpxchg(), setting count 1, type PGT_l1_page_table
-
-CPU B now has a writeable mapping to pg, which Xen believes is a pagetable and
-suitably protected (i.e. read-only). The TLB flush in step 2 must be deferred
-until after the guest is prohibited from creating new writeable mappings,
-which is after step 7.
-
-Defer all safety actions until after the cmpxchg() has successfully taken the
-intended typeref, because that is what prevents concurrent users from using
-the old type.
-
-Also remove the early validation for writeable and shared pages. This removes
-race conditions where one half of a parallel mapping attempt can return
-successfully before:
- * The IOMMU pagetables are in sync with the new page type
- * Writeable mappings to shared pages have been torn down
-
-This is part of XSA-401 / CVE-2022-26362.
-
-Reported-by: Jann Horn <jannh@google.com>
-Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
-Reviewed-by: Jan Beulich <jbeulich@suse.com>
-Reviewed-by: George Dunlap <george.dunlap@citrix.com>
-
-diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
-index ddd32f88c798..1693b580b152 100644
---- a/xen/arch/x86/mm.c
-+++ b/xen/arch/x86/mm.c
-@@ -2962,56 +2962,12 @@ static int _get_page_type(struct page_info *page, unsigned long type,
- * Type changes are permitted when the typeref is 0. If the type
- * actually changes, the page needs re-validating.
- */
-- struct domain *d = page_get_owner(page);
--
-- if ( d && shadow_mode_enabled(d) )
-- shadow_prepare_page_type_change(d, page, type);
-
- ASSERT(!(x & PGT_pae_xen_l2));
- if ( (x & PGT_type_mask) != type )
- {
-- /*
-- * On type change we check to flush stale TLB entries. It is
-- * vital that no other CPUs are left with writeable mappings
-- * to a frame which is intending to become pgtable/segdesc.
-- */
-- cpumask_t *mask = this_cpu(scratch_cpumask);
--
-- BUG_ON(in_irq());
-- cpumask_copy(mask, d->dirty_cpumask);
--
-- /* Don't flush if the timestamp is old enough */
-- tlbflush_filter(mask, page->tlbflush_timestamp);
--
-- if ( unlikely(!cpumask_empty(mask)) &&
-- /* Shadow mode: track only writable pages. */
-- (!shadow_mode_enabled(d) ||
-- ((nx & PGT_type_mask) == PGT_writable_page)) )
-- {
-- perfc_incr(need_flush_tlb_flush);
-- /*
-- * If page was a page table make sure the flush is
-- * performed using an IPI in order to avoid changing the
-- * type of a page table page under the feet of
-- * spurious_page_fault().
-- */
-- flush_mask(mask,
-- (x & PGT_type_mask) &&
-- (x & PGT_type_mask) <= PGT_root_page_table
-- ? FLUSH_TLB | FLUSH_FORCE_IPI
-- : FLUSH_TLB);
-- }
--
-- /* We lose existing type and validity. */
- nx &= ~(PGT_type_mask | PGT_validated);
- nx |= type;
--
-- /*
-- * No special validation needed for writable pages.
-- * Page tables and GDT/LDT need to be scanned for validity.
-- */
-- if ( type == PGT_writable_page || type == PGT_shared_page )
-- nx |= PGT_validated;
- }
- }
- else if ( unlikely((x & (PGT_type_mask|PGT_pae_xen_l2)) != type) )
-@@ -3092,6 +3048,56 @@ static int _get_page_type(struct page_info *page, unsigned long type,
- return -EINTR;
- }
-
-+ /*
-+ * One typeref has been taken and is now globally visible.
-+ *
-+ * The page is either in the "validate locked" state (PGT_[type] | 1) or
-+ * fully validated (PGT_[type] | PGT_validated | >0).
-+ */
-+
-+ if ( unlikely((x & PGT_count_mask) == 0) )
-+ {
-+ struct domain *d = page_get_owner(page);
-+
-+ if ( d && shadow_mode_enabled(d) )
-+ shadow_prepare_page_type_change(d, page, type);
-+
-+ if ( (x & PGT_type_mask) != type )
-+ {
-+ /*
-+ * On type change we check to flush stale TLB entries. It is
-+ * vital that no other CPUs are left with writeable mappings
-+ * to a frame which is intending to become pgtable/segdesc.
-+ */
-+ cpumask_t *mask = this_cpu(scratch_cpumask);
-+
-+ BUG_ON(in_irq());
-+ cpumask_copy(mask, d->dirty_cpumask);
-+
-+ /* Don't flush if the timestamp is old enough */
-+ tlbflush_filter(mask, page->tlbflush_timestamp);
-+
-+ if ( unlikely(!cpumask_empty(mask)) &&
-+ /* Shadow mode: track only writable pages. */
-+ (!shadow_mode_enabled(d) ||
-+ ((nx & PGT_type_mask) == PGT_writable_page)) )
-+ {
-+ perfc_incr(need_flush_tlb_flush);
-+ /*
-+ * If page was a page table make sure the flush is
-+ * performed using an IPI in order to avoid changing the
-+ * type of a page table page under the feet of
-+ * spurious_page_fault().
-+ */
-+ flush_mask(mask,
-+ (x & PGT_type_mask) &&
-+ (x & PGT_type_mask) <= PGT_root_page_table
-+ ? FLUSH_TLB | FLUSH_FORCE_IPI
-+ : FLUSH_TLB);
-+ }
-+ }
-+ }
-+
- if ( unlikely(((x & PGT_type_mask) == PGT_writable_page) !=
- (type == PGT_writable_page)) )
- {
-@@ -3120,13 +3126,25 @@ static int _get_page_type(struct page_info *page, unsigned long type,
-
- if ( unlikely(!(nx & PGT_validated)) )
- {
-- if ( !(x & PGT_partial) )
-+ /*
-+ * No special validation needed for writable or shared pages. Page
-+ * tables and GDT/LDT need to have their contents audited.
-+ *
-+ * per validate_page(), non-atomic updates are fine here.
-+ */
-+ if ( type == PGT_writable_page || type == PGT_shared_page )
-+ page->u.inuse.type_info |= PGT_validated;
-+ else
- {
-- page->nr_validated_ptes = 0;
-- page->partial_flags = 0;
-- page->linear_pt_count = 0;
-+ if ( !(x & PGT_partial) )
-+ {
-+ page->nr_validated_ptes = 0;
-+ page->partial_flags = 0;
-+ page->linear_pt_count = 0;
-+ }
-+
-+ rc = validate_page(page, type, preemptible);
- }
-- rc = validate_page(page, type, preemptible);
- }
-
- out:
diff --git a/main/xen/xsa402-4.16-1.patch b/main/xen/xsa402-4.16-1.patch
deleted file mode 100644
index b783383fc89..00000000000
--- a/main/xen/xsa402-4.16-1.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From: Andrew Cooper <andrew.cooper3@citrix.com>
-Subject: x86/page: Introduce _PAGE_* constants for memory types
-
-... rather than opencoding the PAT/PCD/PWT attributes in __PAGE_HYPERVISOR_*
-constants. These are going to be needed by forthcoming logic.
-
-No functional change.
-
-This is part of XSA-402.
-
-Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
-Reviewed-by: Jan Beulich <jbeulich@suse.com>
-
-diff --git a/xen/include/asm-x86/page.h b/xen/include/asm-x86/page.h
-index 1d080cffbe84..2e542050f65a 100644
---- a/xen/include/asm-x86/page.h
-+++ b/xen/include/asm-x86/page.h
-@@ -331,6 +331,14 @@ void efi_update_l4_pgtable(unsigned int l4idx, l4_pgentry_t);
-
- #define PAGE_CACHE_ATTRS (_PAGE_PAT | _PAGE_PCD | _PAGE_PWT)
-
-+/* Memory types, encoded under Xen's choice of MSR_PAT. */
-+#define _PAGE_WB ( 0)
-+#define _PAGE_WT ( _PAGE_PWT)
-+#define _PAGE_UCM ( _PAGE_PCD )
-+#define _PAGE_UC ( _PAGE_PCD | _PAGE_PWT)
-+#define _PAGE_WC (_PAGE_PAT )
-+#define _PAGE_WP (_PAGE_PAT | _PAGE_PWT)
-+
- /*
- * Debug option: Ensure that granted mappings are not implicitly unmapped.
- * WARNING: This will need to be disabled to run OSes that use the spare PTE
-@@ -349,8 +357,8 @@ void efi_update_l4_pgtable(unsigned int l4idx, l4_pgentry_t);
- #define __PAGE_HYPERVISOR_RX (_PAGE_PRESENT | _PAGE_ACCESSED)
- #define __PAGE_HYPERVISOR (__PAGE_HYPERVISOR_RX | \
- _PAGE_DIRTY | _PAGE_RW)
--#define __PAGE_HYPERVISOR_UCMINUS (__PAGE_HYPERVISOR | _PAGE_PCD)
--#define __PAGE_HYPERVISOR_UC (__PAGE_HYPERVISOR | _PAGE_PCD | _PAGE_PWT)
-+#define __PAGE_HYPERVISOR_UCMINUS (__PAGE_HYPERVISOR | _PAGE_UCM)
-+#define __PAGE_HYPERVISOR_UC (__PAGE_HYPERVISOR | _PAGE_UC)
- #define __PAGE_HYPERVISOR_SHSTK (__PAGE_HYPERVISOR_RO | _PAGE_DIRTY)
-
- #define MAP_SMALL_PAGES _PAGE_AVAIL0 /* don't use superpages mappings */
diff --git a/main/xen/xsa402-4.16-2.patch b/main/xen/xsa402-4.16-2.patch
deleted file mode 100644
index ebb2f5e221e..00000000000
--- a/main/xen/xsa402-4.16-2.patch
+++ /dev/null
@@ -1,213 +0,0 @@
-From: Andrew Cooper <andrew.cooper3@citrix.com>
-Subject: x86: Don't change the cacheability of the directmap
-
-Changeset 55f97f49b7ce ("x86: Change cache attributes of Xen 1:1 page mappings
-in response to guest mapping requests") attempted to keep the cacheability
-consistent between different mappings of the same page.
-
-The reason wasn't described in the changelog, but it is understood to be in
-regards to a concern over machine check exceptions, owing to errata when using
-mixed cacheabilities. It did this primarily by updating Xen's mapping of the
-page in the direct map when the guest mapped a page with reduced cacheability.
-
-Unfortunately, the logic didn't actually prevent mixed cacheability from
-occurring:
- * A guest could map a page normally, and then map the same page with
- different cacheability; nothing prevented this.
- * The cacheability of the directmap was always latest-takes-precedence in
- terms of guest requests.
- * Grant-mapped frames with lesser cacheability didn't adjust the page's
- cacheattr settings.
- * The map_domain_page() function still unconditionally created WB mappings,
- irrespective of the page's cacheattr settings.
-
-Additionally, update_xen_mappings() had a bug where the alias calculation was
-wrong for mfn's which were .init content, which should have been treated as
-fully guest pages, not Xen pages.
-
-Worse yet, the logic introduced a vulnerability whereby necessary
-pagetable/segdesc adjustments made by Xen in the validation logic could become
-non-coherent between the cache and main memory. The CPU could subsequently
-operate on the stale value in the cache, rather than the safe value in main
-memory.
-
-The directmap contains primarily mappings of RAM. PAT/MTRR conflict
-resolution is asymmetric, and generally for MTRR=WB ranges, PAT of lesser
-cacheability resolves to being coherent. The special case is WC mappings,
-which are non-coherent against MTRR=WB regions (except for fully-coherent
-CPUs).
-
-Xen must not have any WC cacheability in the directmap, to prevent Xen's
-actions from creating non-coherency. (Guest actions creating non-coherency is
-dealt with in subsequent patches.) As all memory types for MTRR=WB ranges
-inter-operate coherently, so leave Xen's directmap mappings as WB.
-
-Only PV guests with access to devices can use reduced-cacheability mappings to
-begin with, and they're trusted not to mount DoSs against the system anyway.
-
-Drop PGC_cacheattr_{base,mask} entirely, and the logic to manipulate them.
-Shift the later PGC_* constants up, to gain 3 extra bits in the main reference
-count. Retain the check in get_page_from_l1e() for special_pages() because a
-guest has no business using reduced cacheability on these.
-
-This reverts changeset 55f97f49b7ce6c3520c555d19caac6cf3f9a5df0
-
-This is CVE-2022-26363, part of XSA-402.
-
-Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
-Reviewed-by: George Dunlap <george.dunlap@citrix.com>
-
-diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
-index c6429b0f749a..ab32d13a1a0d 100644
---- a/xen/arch/x86/mm.c
-+++ b/xen/arch/x86/mm.c
-@@ -783,28 +783,6 @@ bool is_iomem_page(mfn_t mfn)
- return (page_get_owner(page) == dom_io);
- }
-
--static int update_xen_mappings(unsigned long mfn, unsigned int cacheattr)
--{
-- int err = 0;
-- bool alias = mfn >= PFN_DOWN(xen_phys_start) &&
-- mfn < PFN_UP(xen_phys_start + xen_virt_end - XEN_VIRT_START);
-- unsigned long xen_va =
-- XEN_VIRT_START + ((mfn - PFN_DOWN(xen_phys_start)) << PAGE_SHIFT);
--
-- if ( boot_cpu_has(X86_FEATURE_XEN_SELFSNOOP) )
-- return 0;
--
-- if ( unlikely(alias) && cacheattr )
-- err = map_pages_to_xen(xen_va, _mfn(mfn), 1, 0);
-- if ( !err )
-- err = map_pages_to_xen((unsigned long)mfn_to_virt(mfn), _mfn(mfn), 1,
-- PAGE_HYPERVISOR | cacheattr_to_pte_flags(cacheattr));
-- if ( unlikely(alias) && !cacheattr && !err )
-- err = map_pages_to_xen(xen_va, _mfn(mfn), 1, PAGE_HYPERVISOR);
--
-- return err;
--}
--
- #ifndef NDEBUG
- struct mmio_emul_range_ctxt {
- const struct domain *d;
-@@ -1009,47 +987,14 @@ get_page_from_l1e(
- goto could_not_pin;
- }
-
-- if ( pte_flags_to_cacheattr(l1f) !=
-- ((page->count_info & PGC_cacheattr_mask) >> PGC_cacheattr_base) )
-+ if ( (l1f & PAGE_CACHE_ATTRS) != _PAGE_WB && is_special_page(page) )
- {
-- unsigned long x, nx, y = page->count_info;
-- unsigned long cacheattr = pte_flags_to_cacheattr(l1f);
-- int err;
--
-- if ( is_special_page(page) )
-- {
-- if ( write )
-- put_page_type(page);
-- put_page(page);
-- gdprintk(XENLOG_WARNING,
-- "Attempt to change cache attributes of Xen heap page\n");
-- return -EACCES;
-- }
--
-- do {
-- x = y;
-- nx = (x & ~PGC_cacheattr_mask) | (cacheattr << PGC_cacheattr_base);
-- } while ( (y = cmpxchg(&page->count_info, x, nx)) != x );
--
-- err = update_xen_mappings(mfn, cacheattr);
-- if ( unlikely(err) )
-- {
-- cacheattr = y & PGC_cacheattr_mask;
-- do {
-- x = y;
-- nx = (x & ~PGC_cacheattr_mask) | cacheattr;
-- } while ( (y = cmpxchg(&page->count_info, x, nx)) != x );
--
-- if ( write )
-- put_page_type(page);
-- put_page(page);
--
-- gdprintk(XENLOG_WARNING, "Error updating mappings for mfn %" PRI_mfn
-- " (pfn %" PRI_pfn ", from L1 entry %" PRIpte ") for d%d\n",
-- mfn, get_gpfn_from_mfn(mfn),
-- l1e_get_intpte(l1e), l1e_owner->domain_id);
-- return err;
-- }
-+ if ( write )
-+ put_page_type(page);
-+ put_page(page);
-+ gdprintk(XENLOG_WARNING,
-+ "Attempt to change cache attributes of Xen heap page\n");
-+ return -EACCES;
- }
-
- return 0;
-@@ -2467,25 +2412,10 @@ static int mod_l4_entry(l4_pgentry_t *pl4e,
- */
- static int cleanup_page_mappings(struct page_info *page)
- {
-- unsigned int cacheattr =
-- (page->count_info & PGC_cacheattr_mask) >> PGC_cacheattr_base;
- int rc = 0;
- unsigned long mfn = mfn_x(page_to_mfn(page));
-
- /*
-- * If we've modified xen mappings as a result of guest cache
-- * attributes, restore them to the "normal" state.
-- */
-- if ( unlikely(cacheattr) )
-- {
-- page->count_info &= ~PGC_cacheattr_mask;
--
-- BUG_ON(is_special_page(page));
--
-- rc = update_xen_mappings(mfn, 0);
-- }
--
-- /*
- * If this may be in a PV domain's IOMMU, remove it.
- *
- * NB that writable xenheap pages have their type set and cleared by
-diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h
-index cb9052749963..8a9a43bb0a9d 100644
---- a/xen/include/asm-x86/mm.h
-+++ b/xen/include/asm-x86/mm.h
-@@ -69,25 +69,22 @@
- /* Set when is using a page as a page table */
- #define _PGC_page_table PG_shift(3)
- #define PGC_page_table PG_mask(1, 3)
-- /* 3-bit PAT/PCD/PWT cache-attribute hint. */
--#define PGC_cacheattr_base PG_shift(6)
--#define PGC_cacheattr_mask PG_mask(7, 6)
- /* Page is broken? */
--#define _PGC_broken PG_shift(7)
--#define PGC_broken PG_mask(1, 7)
-+#define _PGC_broken PG_shift(4)
-+#define PGC_broken PG_mask(1, 4)
- /* Mutually-exclusive page states: { inuse, offlining, offlined, free }. */
--#define PGC_state PG_mask(3, 9)
--#define PGC_state_inuse PG_mask(0, 9)
--#define PGC_state_offlining PG_mask(1, 9)
--#define PGC_state_offlined PG_mask(2, 9)
--#define PGC_state_free PG_mask(3, 9)
-+#define PGC_state PG_mask(3, 6)
-+#define PGC_state_inuse PG_mask(0, 6)
-+#define PGC_state_offlining PG_mask(1, 6)
-+#define PGC_state_offlined PG_mask(2, 6)
-+#define PGC_state_free PG_mask(3, 6)
- #define page_state_is(pg, st) (((pg)->count_info&PGC_state) == PGC_state_##st)
- /* Page is not reference counted (see below for caveats) */
--#define _PGC_extra PG_shift(10)
--#define PGC_extra PG_mask(1, 10)
-+#define _PGC_extra PG_shift(7)
-+#define PGC_extra PG_mask(1, 7)
-
- /* Count of references to this frame. */
--#define PGC_count_width PG_shift(10)
-+#define PGC_count_width PG_shift(7)
- #define PGC_count_mask ((1UL<<PGC_count_width)-1)
-
- /*
diff --git a/main/xen/xsa402-4.16-3.patch b/main/xen/xsa402-4.16-3.patch
deleted file mode 100644
index b4d2a4c835a..00000000000
--- a/main/xen/xsa402-4.16-3.patch
+++ /dev/null
@@ -1,284 +0,0 @@
-From: Andrew Cooper <andrew.cooper3@citrix.com>
-Subject: x86: Split cache_flush() out of cache_writeback()
-
-Subsequent changes will want a fully flushing version.
-
-Use the new helper rather than opencoding it in flush_area_local(). This
-resolves an outstanding issue where the conditional sfence is on the wrong
-side of the clflushopt loop. clflushopt is ordered with respect to older
-stores, not to younger stores.
-
-Rename gnttab_cache_flush()'s helper to avoid colliding in name.
-grant_table.c can see the prototype from cache.h so the build fails
-otherwise.
-
-This is part of XSA-402.
-
-Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
-Reviewed-by: Jan Beulich <jbeulich@suse.com>
-
-Xen 4.16 and earlier:
- * Also backport half of c/s 3330013e67396 "VT-d / x86: re-arrange cache
- syncing" to split cache_writeback() out of the IOMMU logic, but without the
- associated hooks changes.
-
-diff --git a/xen/arch/x86/flushtlb.c b/xen/arch/x86/flushtlb.c
-index 25798df50f54..0c912b8669f8 100644
---- a/xen/arch/x86/flushtlb.c
-+++ b/xen/arch/x86/flushtlb.c
-@@ -234,7 +234,7 @@ unsigned int flush_area_local(const void *va, unsigned int flags)
- if ( flags & FLUSH_CACHE )
- {
- const struct cpuinfo_x86 *c = &current_cpu_data;
-- unsigned long i, sz = 0;
-+ unsigned long sz = 0;
-
- if ( order < (BITS_PER_LONG - PAGE_SHIFT) )
- sz = 1UL << (order + PAGE_SHIFT);
-@@ -244,13 +244,7 @@ unsigned int flush_area_local(const void *va, unsigned int flags)
- c->x86_clflush_size && c->x86_cache_size && sz &&
- ((sz >> 10) < c->x86_cache_size) )
- {
-- alternative("", "sfence", X86_FEATURE_CLFLUSHOPT);
-- for ( i = 0; i < sz; i += c->x86_clflush_size )
-- alternative_input(".byte " __stringify(NOP_DS_PREFIX) ";"
-- " clflush %0",
-- "data16 clflush %0", /* clflushopt */
-- X86_FEATURE_CLFLUSHOPT,
-- "m" (((const char *)va)[i]));
-+ cache_flush(va, sz);
- flags &= ~FLUSH_CACHE;
- }
- else
-@@ -265,6 +259,80 @@ unsigned int flush_area_local(const void *va, unsigned int flags)
- return flags;
- }
-
-+void cache_flush(const void *addr, unsigned int size)
-+{
-+ /*
-+ * This function may be called before current_cpu_data is established.
-+ * Hence a fallback is needed to prevent the loop below becoming infinite.
-+ */
-+ unsigned int clflush_size = current_cpu_data.x86_clflush_size ?: 16;
-+ const void *end = addr + size;
-+
-+ addr -= (unsigned long)addr & (clflush_size - 1);
-+ for ( ; addr < end; addr += clflush_size )
-+ {
-+ /*
-+ * Note regarding the "ds" prefix use: it's faster to do a clflush
-+ * + prefix than a clflush + nop, and hence the prefix is added instead
-+ * of letting the alternative framework fill the gap by appending nops.
-+ */
-+ alternative_io("ds; clflush %[p]",
-+ "data16 clflush %[p]", /* clflushopt */
-+ X86_FEATURE_CLFLUSHOPT,
-+ /* no outputs */,
-+ [p] "m" (*(const char *)(addr)));
-+ }
-+
-+ alternative("", "sfence", X86_FEATURE_CLFLUSHOPT);
-+}
-+
-+void cache_writeback(const void *addr, unsigned int size)
-+{
-+ unsigned int clflush_size;
-+ const void *end = addr + size;
-+
-+ /* Fall back to CLFLUSH{,OPT} when CLWB isn't available. */
-+ if ( !boot_cpu_has(X86_FEATURE_CLWB) )
-+ return cache_flush(addr, size);
-+
-+ /*
-+ * This function may be called before current_cpu_data is established.
-+ * Hence a fallback is needed to prevent the loop below becoming infinite.
-+ */
-+ clflush_size = current_cpu_data.x86_clflush_size ?: 16;
-+ addr -= (unsigned long)addr & (clflush_size - 1);
-+ for ( ; addr < end; addr += clflush_size )
-+ {
-+/*
-+ * The arguments to a macro must not include preprocessor directives. Doing so
-+ * results in undefined behavior, so we have to create some defines here in
-+ * order to avoid it.
-+ */
-+#if defined(HAVE_AS_CLWB)
-+# define CLWB_ENCODING "clwb %[p]"
-+#elif defined(HAVE_AS_XSAVEOPT)
-+# define CLWB_ENCODING "data16 xsaveopt %[p]" /* clwb */
-+#else
-+# define CLWB_ENCODING ".byte 0x66, 0x0f, 0xae, 0x30" /* clwb (%%rax) */
-+#endif
-+
-+#define BASE_INPUT(addr) [p] "m" (*(const char *)(addr))
-+#if defined(HAVE_AS_CLWB) || defined(HAVE_AS_XSAVEOPT)
-+# define INPUT BASE_INPUT
-+#else
-+# define INPUT(addr) "a" (addr), BASE_INPUT(addr)
-+#endif
-+
-+ asm volatile (CLWB_ENCODING :: INPUT(addr));
-+
-+#undef INPUT
-+#undef BASE_INPUT
-+#undef CLWB_ENCODING
-+ }
-+
-+ asm volatile ("sfence" ::: "memory");
-+}
-+
- unsigned int guest_flush_tlb_flags(const struct domain *d)
- {
- bool shadow = paging_mode_shadow(d);
-diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
-index 66f8ce71741c..4c742cd8fe81 100644
---- a/xen/common/grant_table.c
-+++ b/xen/common/grant_table.c
-@@ -3431,7 +3431,7 @@ gnttab_swap_grant_ref(XEN_GUEST_HANDLE_PARAM(gnttab_swap_grant_ref_t) uop,
- return 0;
- }
-
--static int cache_flush(const gnttab_cache_flush_t *cflush, grant_ref_t *cur_ref)
-+static int _cache_flush(const gnttab_cache_flush_t *cflush, grant_ref_t *cur_ref)
- {
- struct domain *d, *owner;
- struct page_info *page;
-@@ -3525,7 +3525,7 @@ gnttab_cache_flush(XEN_GUEST_HANDLE_PARAM(gnttab_cache_flush_t) uop,
- return -EFAULT;
- for ( ; ; )
- {
-- int ret = cache_flush(&op, cur_ref);
-+ int ret = _cache_flush(&op, cur_ref);
-
- if ( ret < 0 )
- return ret;
-diff --git a/xen/drivers/passthrough/vtd/extern.h b/xen/drivers/passthrough/vtd/extern.h
-index 01e010a10d61..401079299725 100644
---- a/xen/drivers/passthrough/vtd/extern.h
-+++ b/xen/drivers/passthrough/vtd/extern.h
-@@ -76,7 +76,6 @@ int __must_check qinval_device_iotlb_sync(struct vtd_iommu *iommu,
- struct pci_dev *pdev,
- u16 did, u16 size, u64 addr);
-
--unsigned int get_cache_line_size(void);
- void flush_all_cache(void);
-
- uint64_t alloc_pgtable_maddr(unsigned long npages, nodeid_t node);
-diff --git a/xen/drivers/passthrough/vtd/iommu.c b/xen/drivers/passthrough/vtd/iommu.c
-index 8975c1de61bc..bc377c9bcfa4 100644
---- a/xen/drivers/passthrough/vtd/iommu.c
-+++ b/xen/drivers/passthrough/vtd/iommu.c
-@@ -31,6 +31,7 @@
- #include <xen/pci.h>
- #include <xen/pci_regs.h>
- #include <xen/keyhandler.h>
-+#include <asm/cache.h>
- #include <asm/msi.h>
- #include <asm/nops.h>
- #include <asm/irq.h>
-@@ -206,54 +207,6 @@ static void check_cleanup_domid_map(const struct domain *d,
- }
- }
-
--static void sync_cache(const void *addr, unsigned int size)
--{
-- static unsigned long clflush_size = 0;
-- const void *end = addr + size;
--
-- if ( clflush_size == 0 )
-- clflush_size = get_cache_line_size();
--
-- addr -= (unsigned long)addr & (clflush_size - 1);
-- for ( ; addr < end; addr += clflush_size )
--/*
-- * The arguments to a macro must not include preprocessor directives. Doing so
-- * results in undefined behavior, so we have to create some defines here in
-- * order to avoid it.
-- */
--#if defined(HAVE_AS_CLWB)
--# define CLWB_ENCODING "clwb %[p]"
--#elif defined(HAVE_AS_XSAVEOPT)
--# define CLWB_ENCODING "data16 xsaveopt %[p]" /* clwb */
--#else
--# define CLWB_ENCODING ".byte 0x66, 0x0f, 0xae, 0x30" /* clwb (%%rax) */
--#endif
--
--#define BASE_INPUT(addr) [p] "m" (*(const char *)(addr))
--#if defined(HAVE_AS_CLWB) || defined(HAVE_AS_XSAVEOPT)
--# define INPUT BASE_INPUT
--#else
--# define INPUT(addr) "a" (addr), BASE_INPUT(addr)
--#endif
-- /*
-- * Note regarding the use of NOP_DS_PREFIX: it's faster to do a clflush
-- * + prefix than a clflush + nop, and hence the prefix is added instead
-- * of letting the alternative framework fill the gap by appending nops.
-- */
-- alternative_io_2(".byte " __stringify(NOP_DS_PREFIX) "; clflush %[p]",
-- "data16 clflush %[p]", /* clflushopt */
-- X86_FEATURE_CLFLUSHOPT,
-- CLWB_ENCODING,
-- X86_FEATURE_CLWB, /* no outputs */,
-- INPUT(addr));
--#undef INPUT
--#undef BASE_INPUT
--#undef CLWB_ENCODING
--
-- alternative_2("", "sfence", X86_FEATURE_CLFLUSHOPT,
-- "sfence", X86_FEATURE_CLWB);
--}
--
- /* Allocate page table, return its machine address */
- uint64_t alloc_pgtable_maddr(unsigned long npages, nodeid_t node)
- {
-@@ -273,7 +226,7 @@ uint64_t alloc_pgtable_maddr(unsigned long npages, nodeid_t node)
- clear_page(vaddr);
-
- if ( (iommu_ops.init ? &iommu_ops : &vtd_ops)->sync_cache )
-- sync_cache(vaddr, PAGE_SIZE);
-+ cache_writeback(vaddr, PAGE_SIZE);
- unmap_domain_page(vaddr);
- cur_pg++;
- }
-@@ -1305,7 +1258,7 @@ int __init iommu_alloc(struct acpi_drhd_unit *drhd)
- iommu->nr_pt_levels = agaw_to_level(agaw);
-
- if ( !ecap_coherent(iommu->ecap) )
-- vtd_ops.sync_cache = sync_cache;
-+ vtd_ops.sync_cache = cache_writeback;
-
- /* allocate domain id bitmap */
- iommu->domid_bitmap = xzalloc_array(unsigned long, BITS_TO_LONGS(nr_dom));
-diff --git a/xen/drivers/passthrough/vtd/x86/vtd.c b/xen/drivers/passthrough/vtd/x86/vtd.c
-index 6681dccd6970..55f0faa521cb 100644
---- a/xen/drivers/passthrough/vtd/x86/vtd.c
-+++ b/xen/drivers/passthrough/vtd/x86/vtd.c
-@@ -47,11 +47,6 @@ void unmap_vtd_domain_page(const void *va)
- unmap_domain_page(va);
- }
-
--unsigned int get_cache_line_size(void)
--{
-- return ((cpuid_ebx(1) >> 8) & 0xff) * 8;
--}
--
- void flush_all_cache()
- {
- wbinvd();
-diff --git a/xen/include/asm-x86/cache.h b/xen/include/asm-x86/cache.h
-index 1f7173d8c72c..e4770efb22b9 100644
---- a/xen/include/asm-x86/cache.h
-+++ b/xen/include/asm-x86/cache.h
-@@ -11,4 +11,11 @@
-
- #define __read_mostly __section(".data.read_mostly")
-
-+#ifndef __ASSEMBLY__
-+
-+void cache_flush(const void *addr, unsigned int size);
-+void cache_writeback(const void *addr, unsigned int size);
-+
-+#endif
-+
- #endif
diff --git a/main/xen/xsa402-4.16-4.patch b/main/xen/xsa402-4.16-4.patch
deleted file mode 100644
index 21109225d7d..00000000000
--- a/main/xen/xsa402-4.16-4.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From: Andrew Cooper <andrew.cooper3@citrix.com>
-Subject: x86/amd: Work around CLFLUSH ordering on older parts
-
-On pre-CLFLUSHOPT AMD CPUs, CLFLUSH is weakely ordered with everything,
-including reads and writes to the address, and LFENCE/SFENCE instructions.
-
-This creates a multitude of problematic corner cases, laid out in the manual.
-Arrange to use MFENCE on both sides of the CLFLUSH to force proper ordering.
-
-This is part of XSA-402.
-
-Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
-Reviewed-by: Jan Beulich <jbeulich@suse.com>
-
-diff --git a/xen/arch/x86/cpu/amd.c b/xen/arch/x86/cpu/amd.c
-index a8e37dbb1f5c..b3b9a0df5fed 100644
---- a/xen/arch/x86/cpu/amd.c
-+++ b/xen/arch/x86/cpu/amd.c
-@@ -812,6 +812,14 @@ static void init_amd(struct cpuinfo_x86 *c)
- if (!cpu_has_lfence_dispatch)
- __set_bit(X86_FEATURE_MFENCE_RDTSC, c->x86_capability);
-
-+ /*
-+ * On pre-CLFLUSHOPT AMD CPUs, CLFLUSH is weakly ordered with
-+ * everything, including reads and writes to address, and
-+ * LFENCE/SFENCE instructions.
-+ */
-+ if (!cpu_has_clflushopt)
-+ setup_force_cpu_cap(X86_BUG_CLFLUSH_MFENCE);
-+
- switch(c->x86)
- {
- case 0xf ... 0x11:
-diff --git a/xen/arch/x86/flushtlb.c b/xen/arch/x86/flushtlb.c
-index 0c912b8669f8..dcbb4064012e 100644
---- a/xen/arch/x86/flushtlb.c
-+++ b/xen/arch/x86/flushtlb.c
-@@ -259,6 +259,13 @@ unsigned int flush_area_local(const void *va, unsigned int flags)
- return flags;
- }
-
-+/*
-+ * On pre-CLFLUSHOPT AMD CPUs, CLFLUSH is weakly ordered with everything,
-+ * including reads and writes to address, and LFENCE/SFENCE instructions.
-+ *
-+ * This function only works safely after alternatives have run. Luckily, at
-+ * the time of writing, we don't flush the caches that early.
-+ */
- void cache_flush(const void *addr, unsigned int size)
- {
- /*
-@@ -268,6 +275,8 @@ void cache_flush(const void *addr, unsigned int size)
- unsigned int clflush_size = current_cpu_data.x86_clflush_size ?: 16;
- const void *end = addr + size;
-
-+ alternative("", "mfence", X86_BUG_CLFLUSH_MFENCE);
-+
- addr -= (unsigned long)addr & (clflush_size - 1);
- for ( ; addr < end; addr += clflush_size )
- {
-@@ -283,7 +292,9 @@ void cache_flush(const void *addr, unsigned int size)
- [p] "m" (*(const char *)(addr)));
- }
-
-- alternative("", "sfence", X86_FEATURE_CLFLUSHOPT);
-+ alternative_2("",
-+ "sfence", X86_FEATURE_CLFLUSHOPT,
-+ "mfence", X86_BUG_CLFLUSH_MFENCE);
- }
-
- void cache_writeback(const void *addr, unsigned int size)
-diff --git a/xen/include/asm-x86/cpufeatures.h b/xen/include/asm-x86/cpufeatures.h
-index 7413febd7ad8..ff3157d52d13 100644
---- a/xen/include/asm-x86/cpufeatures.h
-+++ b/xen/include/asm-x86/cpufeatures.h
-@@ -47,6 +47,7 @@ XEN_CPUFEATURE(XEN_IBT, X86_SYNTH(27)) /* Xen uses CET Indirect Branch
-
- #define X86_BUG_FPU_PTRS X86_BUG( 0) /* (F)X{SAVE,RSTOR} doesn't save/restore FOP/FIP/FDP. */
- #define X86_BUG_NULL_SEG X86_BUG( 1) /* NULL-ing a selector preserves the base and limit. */
-+#define X86_BUG_CLFLUSH_MFENCE X86_BUG( 2) /* MFENCE needed to serialise CLFLUSH */
-
- /* Total number of capability words, inc synth and bug words. */
- #define NCAPINTS (FSCAPINTS + X86_NR_SYNTH + X86_NR_BUG) /* N 32-bit words worth of info */
diff --git a/main/xen/xsa402-4.16-5.patch b/main/xen/xsa402-4.16-5.patch
deleted file mode 100644
index 4806d25c6fa..00000000000
--- a/main/xen/xsa402-4.16-5.patch
+++ /dev/null
@@ -1,148 +0,0 @@
-From: Andrew Cooper <andrew.cooper3@citrix.com>
-Subject: x86/pv: Track and flush non-coherent mappings of RAM
-
-There are legitimate uses of WC mappings of RAM, e.g. for DMA buffers with
-devices that make non-coherent writes. The Linux sound subsystem makes
-extensive use of this technique.
-
-For such usecases, the guest's DMA buffer is mapped and consistently used as
-WC, and Xen doesn't interact with the buffer.
-
-However, a mischevious guest can use WC mappings to deliberately create
-non-coherency between the cache and RAM, and use this to trick Xen into
-validating a pagetable which isn't actually safe.
-
-Allocate a new PGT_non_coherent to track the non-coherency of mappings. Set
-it whenever a non-coherent writeable mapping is created. If the page is used
-as anything other than PGT_writable_page, force a cache flush before
-validation. Also force a cache flush before the page is returned to the heap.
-
-This is CVE-2022-26364, part of XSA-402.
-
-Reported-by: Jann Horn <jannh@google.com>
-Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
-Reviewed-by: George Dunlap <george.dunlap@citrix.com>
-Reviewed-by: Jan Beulich <jbeulich@suse.com>
-
-diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
-index ab32d13a1a0d..bab9624fabb7 100644
---- a/xen/arch/x86/mm.c
-+++ b/xen/arch/x86/mm.c
-@@ -997,6 +997,15 @@ get_page_from_l1e(
- return -EACCES;
- }
-
-+ /*
-+ * Track writeable non-coherent mappings to RAM pages, to trigger a cache
-+ * flush later if the target is used as anything but a PGT_writeable page.
-+ * We care about all writeable mappings, including foreign mappings.
-+ */
-+ if ( !boot_cpu_has(X86_FEATURE_XEN_SELFSNOOP) &&
-+ (l1f & (PAGE_CACHE_ATTRS | _PAGE_RW)) == (_PAGE_WC | _PAGE_RW) )
-+ set_bit(_PGT_non_coherent, &page->u.inuse.type_info);
-+
- return 0;
-
- could_not_pin:
-@@ -2454,6 +2463,19 @@ static int cleanup_page_mappings(struct page_info *page)
- }
- }
-
-+ /*
-+ * Flush the cache if there were previously non-coherent writeable
-+ * mappings of this page. This forces the page to be coherent before it
-+ * is freed back to the heap.
-+ */
-+ if ( __test_and_clear_bit(_PGT_non_coherent, &page->u.inuse.type_info) )
-+ {
-+ void *addr = __map_domain_page(page);
-+
-+ cache_flush(addr, PAGE_SIZE);
-+ unmap_domain_page(addr);
-+ }
-+
- return rc;
- }
-
-@@ -3028,6 +3050,22 @@ static int _get_page_type(struct page_info *page, unsigned long type,
- if ( unlikely(!(nx & PGT_validated)) )
- {
- /*
-+ * Flush the cache if there were previously non-coherent mappings of
-+ * this page, and we're trying to use it as anything other than a
-+ * writeable page. This forces the page to be coherent before we
-+ * validate its contents for safety.
-+ */
-+ if ( (nx & PGT_non_coherent) && type != PGT_writable_page )
-+ {
-+ void *addr = __map_domain_page(page);
-+
-+ cache_flush(addr, PAGE_SIZE);
-+ unmap_domain_page(addr);
-+
-+ page->u.inuse.type_info &= ~PGT_non_coherent;
-+ }
-+
-+ /*
- * No special validation needed for writable or shared pages. Page
- * tables and GDT/LDT need to have their contents audited.
- *
-diff --git a/xen/arch/x86/pv/grant_table.c b/xen/arch/x86/pv/grant_table.c
-index 0325618c9883..81c72e61ed55 100644
---- a/xen/arch/x86/pv/grant_table.c
-+++ b/xen/arch/x86/pv/grant_table.c
-@@ -109,7 +109,17 @@ int create_grant_pv_mapping(uint64_t addr, mfn_t frame,
-
- ol1e = *pl1e;
- if ( UPDATE_ENTRY(l1, pl1e, ol1e, nl1e, gl1mfn, curr, 0) )
-+ {
-+ /*
-+ * We always create mappings in this path. However, our caller,
-+ * map_grant_ref(), only passes potentially non-zero cache_flags for
-+ * MMIO frames, so this path doesn't create non-coherent mappings of
-+ * RAM frames and there's no need to calculate PGT_non_coherent.
-+ */
-+ ASSERT(!cache_flags || is_iomem_page(frame));
-+
- rc = GNTST_okay;
-+ }
-
- out_unlock:
- page_unlock(page);
-@@ -294,7 +304,18 @@ int replace_grant_pv_mapping(uint64_t addr, mfn_t frame,
- l1e_get_flags(ol1e), addr, grant_pte_flags);
-
- if ( UPDATE_ENTRY(l1, pl1e, ol1e, nl1e, gl1mfn, curr, 0) )
-+ {
-+ /*
-+ * Generally, replace_grant_pv_mapping() is used to destroy mappings
-+ * (n1le = l1e_empty()), but it can be a present mapping on the
-+ * GNTABOP_unmap_and_replace path.
-+ *
-+ * In such cases, the PTE is fully transplanted from its old location
-+ * via steal_linear_addr(), so we need not perform PGT_non_coherent
-+ * checking here.
-+ */
- rc = GNTST_okay;
-+ }
-
- out_unlock:
- page_unlock(page);
-diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h
-index 8a9a43bb0a9d..7464167ae192 100644
---- a/xen/include/asm-x86/mm.h
-+++ b/xen/include/asm-x86/mm.h
-@@ -53,8 +53,12 @@
- #define _PGT_partial PG_shift(8)
- #define PGT_partial PG_mask(1, 8)
-
-+/* Has this page been mapped writeable with a non-coherent memory type? */
-+#define _PGT_non_coherent PG_shift(9)
-+#define PGT_non_coherent PG_mask(1, 9)
-+
- /* Count of uses of this frame as its current type. */
--#define PGT_count_width PG_shift(8)
-+#define PGT_count_width PG_shift(9)
- #define PGT_count_mask ((1UL<<PGT_count_width)-1)
-
- /* Are the 'type mask' bits identical? */
diff --git a/main/xen/xsa404-4.16-1.patch b/main/xen/xsa404-4.16-1.patch
deleted file mode 100644
index c101279eb7d..00000000000
--- a/main/xen/xsa404-4.16-1.patch
+++ /dev/null
@@ -1,239 +0,0 @@
-From: Andrew Cooper <andrew.cooper3@citrix.com>
-Subject: x86/spec-ctrl: Make VERW flushing runtime conditional
-
-Currently, VERW flushing to mitigate MDS is boot time conditional per domain
-type. However, to provide mitigations for DRPW (CVE-2022-21166), we need to
-conditionally use VERW based on the trustworthiness of the guest, and the
-devices passed through.
-
-Remove the PV/HVM alternatives and instead issue a VERW on the return-to-guest
-path depending on the SCF_verw bit in cpuinfo spec_ctrl_flags.
-
-Introduce spec_ctrl_init_domain() and d->arch.verw to calculate the VERW
-disposition at domain creation time, and context switch the SCF_verw bit.
-
-For now, VERW flushing is used and controlled exactly as before, but later
-patches will add per-domain cases too.
-
-No change in behaviour.
-
-This is part of XSA-404.
-
-Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
-Reviewed-by: Jan Beulich <jbeulich@suse.com>
-Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
-
-diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
-index 1d08fb7e9aa6..d5cb09f86541 100644
---- a/docs/misc/xen-command-line.pandoc
-+++ b/docs/misc/xen-command-line.pandoc
-@@ -2258,9 +2258,8 @@ in place for guests to use.
- Use of a positive boolean value for either of these options is invalid.
-
- The booleans `pv=`, `hvm=`, `msr-sc=`, `rsb=` and `md-clear=` offer fine
--grained control over the alternative blocks used by Xen. These impact Xen's
--ability to protect itself, and Xen's ability to virtualise support for guests
--to use.
-+grained control over the primitives by Xen. These impact Xen's ability to
-+protect itself, and Xen's ability to virtualise support for guests to use.
-
- * `pv=` and `hvm=` offer control over all suboptions for PV and HVM guests
- respectively.
-diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
-index ef1812dc1402..1fe6644a71ae 100644
---- a/xen/arch/x86/domain.c
-+++ b/xen/arch/x86/domain.c
-@@ -863,6 +863,8 @@ int arch_domain_create(struct domain *d,
-
- d->arch.msr_relaxed = config->arch.misc_flags & XEN_X86_MSR_RELAXED;
-
-+ spec_ctrl_init_domain(d);
-+
- return 0;
-
- fail:
-@@ -2017,14 +2019,15 @@ static void __context_switch(void)
- void context_switch(struct vcpu *prev, struct vcpu *next)
- {
- unsigned int cpu = smp_processor_id();
-+ struct cpu_info *info = get_cpu_info();
- const struct domain *prevd = prev->domain, *nextd = next->domain;
- unsigned int dirty_cpu = read_atomic(&next->dirty_cpu);
-
- ASSERT(prev != next);
- ASSERT(local_irq_is_enabled());
-
-- get_cpu_info()->use_pv_cr3 = false;
-- get_cpu_info()->xen_cr3 = 0;
-+ info->use_pv_cr3 = false;
-+ info->xen_cr3 = 0;
-
- if ( unlikely(dirty_cpu != cpu) && dirty_cpu != VCPU_CPU_CLEAN )
- {
-@@ -2088,6 +2091,11 @@ void context_switch(struct vcpu *prev, struct vcpu *next)
- *last_id = next_id;
- }
- }
-+
-+ /* Update the top-of-stack block with the VERW disposition. */
-+ info->spec_ctrl_flags &= ~SCF_verw;
-+ if ( nextd->arch.verw )
-+ info->spec_ctrl_flags |= SCF_verw;
- }
-
- sched_context_switched(prev, next);
-diff --git a/xen/arch/x86/hvm/vmx/entry.S b/xen/arch/x86/hvm/vmx/entry.S
-index 49651f3c435a..5f5de45a1309 100644
---- a/xen/arch/x86/hvm/vmx/entry.S
-+++ b/xen/arch/x86/hvm/vmx/entry.S
-@@ -87,7 +87,7 @@ UNLIKELY_END(realmode)
-
- /* WARNING! `ret`, `call *`, `jmp *` not safe beyond this point. */
- /* SPEC_CTRL_EXIT_TO_VMX Req: %rsp=regs/cpuinfo Clob: */
-- ALTERNATIVE "", __stringify(verw CPUINFO_verw_sel(%rsp)), X86_FEATURE_SC_VERW_HVM
-+ DO_SPEC_CTRL_COND_VERW
-
- mov VCPU_hvm_guest_cr2(%rbx),%rax
-
-diff --git a/xen/arch/x86/spec_ctrl.c b/xen/arch/x86/spec_ctrl.c
-index c19464da70ce..21730aa03071 100644
---- a/xen/arch/x86/spec_ctrl.c
-+++ b/xen/arch/x86/spec_ctrl.c
-@@ -36,8 +36,8 @@ static bool __initdata opt_msr_sc_pv = true;
- static bool __initdata opt_msr_sc_hvm = true;
- static int8_t __initdata opt_rsb_pv = -1;
- static bool __initdata opt_rsb_hvm = true;
--static int8_t __initdata opt_md_clear_pv = -1;
--static int8_t __initdata opt_md_clear_hvm = -1;
-+static int8_t __read_mostly opt_md_clear_pv = -1;
-+static int8_t __read_mostly opt_md_clear_hvm = -1;
-
- /* Cmdline controls for Xen's speculative settings. */
- static enum ind_thunk {
-@@ -932,6 +932,13 @@ static __init void mds_calculations(uint64_t caps)
- }
- }
-
-+void spec_ctrl_init_domain(struct domain *d)
-+{
-+ bool pv = is_pv_domain(d);
-+
-+ d->arch.verw = pv ? opt_md_clear_pv : opt_md_clear_hvm;
-+}
-+
- void __init init_speculation_mitigations(void)
- {
- enum ind_thunk thunk = THUNK_DEFAULT;
-@@ -1196,21 +1203,20 @@ void __init init_speculation_mitigations(void)
- boot_cpu_has(X86_FEATURE_MD_CLEAR));
-
- /*
-- * Enable MDS defences as applicable. The PV blocks need using all the
-- * time, and the Idle blocks need using if either PV or HVM defences are
-- * used.
-+ * Enable MDS defences as applicable. The Idle blocks need using if
-+ * either PV or HVM defences are used.
- *
- * HVM is more complicated. The MD_CLEAR microcode extends L1D_FLUSH with
-- * equivelent semantics to avoid needing to perform both flushes on the
-- * HVM path. The HVM blocks don't need activating if our hypervisor told
-- * us it was handling L1D_FLUSH, or we are using L1D_FLUSH ourselves.
-+ * equivalent semantics to avoid needing to perform both flushes on the
-+ * HVM path. Therefore, we don't need VERW in addition to L1D_FLUSH.
-+ *
-+ * After calculating the appropriate idle setting, simplify
-+ * opt_md_clear_hvm to mean just "should we VERW on the way into HVM
-+ * guests", so spec_ctrl_init_domain() can calculate suitable settings.
- */
-- if ( opt_md_clear_pv )
-- setup_force_cpu_cap(X86_FEATURE_SC_VERW_PV);
- if ( opt_md_clear_pv || opt_md_clear_hvm )
- setup_force_cpu_cap(X86_FEATURE_SC_VERW_IDLE);
-- if ( opt_md_clear_hvm && !(caps & ARCH_CAPS_SKIP_L1DFL) && !opt_l1d_flush )
-- setup_force_cpu_cap(X86_FEATURE_SC_VERW_HVM);
-+ opt_md_clear_hvm &= !(caps & ARCH_CAPS_SKIP_L1DFL) && !opt_l1d_flush;
-
- /*
- * Warn the user if they are on MLPDS/MFBDS-vulnerable hardware with HT
-diff --git a/xen/include/asm-x86/cpufeatures.h b/xen/include/asm-x86/cpufeatures.h
-index ff3157d52d13..bd45a144ee78 100644
---- a/xen/include/asm-x86/cpufeatures.h
-+++ b/xen/include/asm-x86/cpufeatures.h
-@@ -35,8 +35,7 @@ XEN_CPUFEATURE(SC_RSB_HVM, X86_SYNTH(19)) /* RSB overwrite needed for HVM
- XEN_CPUFEATURE(XEN_SELFSNOOP, X86_SYNTH(20)) /* SELFSNOOP gets used by Xen itself */
- XEN_CPUFEATURE(SC_MSR_IDLE, X86_SYNTH(21)) /* (SC_MSR_PV || SC_MSR_HVM) && default_xen_spec_ctrl */
- XEN_CPUFEATURE(XEN_LBR, X86_SYNTH(22)) /* Xen uses MSR_DEBUGCTL.LBR */
--XEN_CPUFEATURE(SC_VERW_PV, X86_SYNTH(23)) /* VERW used by Xen for PV */
--XEN_CPUFEATURE(SC_VERW_HVM, X86_SYNTH(24)) /* VERW used by Xen for HVM */
-+/* Bits 23,24 unused. */
- XEN_CPUFEATURE(SC_VERW_IDLE, X86_SYNTH(25)) /* VERW used by Xen for idle */
- XEN_CPUFEATURE(XEN_SHSTK, X86_SYNTH(26)) /* Xen uses CET Shadow Stacks */
- XEN_CPUFEATURE(XEN_IBT, X86_SYNTH(27)) /* Xen uses CET Indirect Branch Tracking */
-diff --git a/xen/include/asm-x86/domain.h b/xen/include/asm-x86/domain.h
-index 92d54de0b9a1..2398a1d99da9 100644
---- a/xen/include/asm-x86/domain.h
-+++ b/xen/include/asm-x86/domain.h
-@@ -319,6 +319,9 @@ struct arch_domain
- uint32_t pci_cf8;
- uint8_t cmos_idx;
-
-+ /* Use VERW on return-to-guest for its flushing side effect. */
-+ bool verw;
-+
- union {
- struct pv_domain pv;
- struct hvm_domain hvm;
-diff --git a/xen/include/asm-x86/spec_ctrl.h b/xen/include/asm-x86/spec_ctrl.h
-index f76029523610..751355f471f4 100644
---- a/xen/include/asm-x86/spec_ctrl.h
-+++ b/xen/include/asm-x86/spec_ctrl.h
-@@ -24,6 +24,7 @@
- #define SCF_use_shadow (1 << 0)
- #define SCF_ist_wrmsr (1 << 1)
- #define SCF_ist_rsb (1 << 2)
-+#define SCF_verw (1 << 3)
-
- #ifndef __ASSEMBLY__
-
-@@ -32,6 +33,7 @@
- #include <asm/msr-index.h>
-
- void init_speculation_mitigations(void);
-+void spec_ctrl_init_domain(struct domain *d);
-
- extern bool opt_ibpb;
- extern bool opt_ssbd;
-diff --git a/xen/include/asm-x86/spec_ctrl_asm.h b/xen/include/asm-x86/spec_ctrl_asm.h
-index 02b3b18ce69f..5a590bac44aa 100644
---- a/xen/include/asm-x86/spec_ctrl_asm.h
-+++ b/xen/include/asm-x86/spec_ctrl_asm.h
-@@ -136,6 +136,19 @@
- #endif
- .endm
-
-+.macro DO_SPEC_CTRL_COND_VERW
-+/*
-+ * Requires %rsp=cpuinfo
-+ *
-+ * Issue a VERW for its flushing side effect, if indicated. This is a Spectre
-+ * v1 gadget, but the IRET/VMEntry is serialising.
-+ */
-+ testb $SCF_verw, CPUINFO_spec_ctrl_flags(%rsp)
-+ jz .L\@_verw_skip
-+ verw CPUINFO_verw_sel(%rsp)
-+.L\@_verw_skip:
-+.endm
-+
- .macro DO_SPEC_CTRL_ENTRY maybexen:req
- /*
- * Requires %rsp=regs (also cpuinfo if !maybexen)
-@@ -231,8 +244,7 @@
- #define SPEC_CTRL_EXIT_TO_PV \
- ALTERNATIVE "", \
- DO_SPEC_CTRL_EXIT_TO_GUEST, X86_FEATURE_SC_MSR_PV; \
-- ALTERNATIVE "", __stringify(verw CPUINFO_verw_sel(%rsp)), \
-- X86_FEATURE_SC_VERW_PV
-+ DO_SPEC_CTRL_COND_VERW
-
- /*
- * Use in IST interrupt/exception context. May interrupt Xen or PV context.
diff --git a/main/xen/xsa404-4.16-2.patch b/main/xen/xsa404-4.16-2.patch
deleted file mode 100644
index 732b26a6fcf..00000000000
--- a/main/xen/xsa404-4.16-2.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From: Andrew Cooper <andrew.cooper3@citrix.com>
-Subject: x86/spec-ctrl: Enumeration for MMIO Stale Data controls
-
-The three *_NO bits indicate non-susceptibility to the SSDP, FBSDP and PSDP
-data movement primitives.
-
-FB_CLEAR indicates that the VERW instruction has re-gained it's Fill Buffer
-flushing side effect. This is only enumerated on parts where VERW had
-previously lost it's flushing side effect due to the MDS/TAA vulnerabilities
-being fixed in hardware.
-
-FB_CLEAR_CTRL is available on a subset of FB_CLEAR parts where the Fill Buffer
-clearing side effect of VERW can be turned off for performance reasons.
-
-This is part of XSA-404.
-
-Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
-Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
-
-diff --git a/xen/arch/x86/spec_ctrl.c b/xen/arch/x86/spec_ctrl.c
-index 21730aa03071..d285538bde9f 100644
---- a/xen/arch/x86/spec_ctrl.c
-+++ b/xen/arch/x86/spec_ctrl.c
-@@ -323,7 +323,7 @@ static void __init print_details(enum ind_thunk thunk, uint64_t caps)
- * Hardware read-only information, stating immunity to certain issues, or
- * suggestions of which mitigation to use.
- */
-- printk(" Hardware hints:%s%s%s%s%s%s%s%s%s%s%s\n",
-+ printk(" Hardware hints:%s%s%s%s%s%s%s%s%s%s%s%s%s%s\n",
- (caps & ARCH_CAPS_RDCL_NO) ? " RDCL_NO" : "",
- (caps & ARCH_CAPS_IBRS_ALL) ? " IBRS_ALL" : "",
- (caps & ARCH_CAPS_RSBA) ? " RSBA" : "",
-@@ -332,13 +332,16 @@ static void __init print_details(enum ind_thunk thunk, uint64_t caps)
- (caps & ARCH_CAPS_SSB_NO) ? " SSB_NO" : "",
- (caps & ARCH_CAPS_MDS_NO) ? " MDS_NO" : "",
- (caps & ARCH_CAPS_TAA_NO) ? " TAA_NO" : "",
-+ (caps & ARCH_CAPS_SBDR_SSDP_NO) ? " SBDR_SSDP_NO" : "",
-+ (caps & ARCH_CAPS_FBSDP_NO) ? " FBSDP_NO" : "",
-+ (caps & ARCH_CAPS_PSDP_NO) ? " PSDP_NO" : "",
- (e8b & cpufeat_mask(X86_FEATURE_IBRS_ALWAYS)) ? " IBRS_ALWAYS" : "",
- (e8b & cpufeat_mask(X86_FEATURE_STIBP_ALWAYS)) ? " STIBP_ALWAYS" : "",
- (e8b & cpufeat_mask(X86_FEATURE_IBRS_FAST)) ? " IBRS_FAST" : "",
- (e8b & cpufeat_mask(X86_FEATURE_IBRS_SAME_MODE)) ? " IBRS_SAME_MODE" : "");
-
- /* Hardware features which need driving to mitigate issues. */
-- printk(" Hardware features:%s%s%s%s%s%s%s%s%s%s\n",
-+ printk(" Hardware features:%s%s%s%s%s%s%s%s%s%s%s%s\n",
- (e8b & cpufeat_mask(X86_FEATURE_IBPB)) ||
- (_7d0 & cpufeat_mask(X86_FEATURE_IBRSB)) ? " IBPB" : "",
- (e8b & cpufeat_mask(X86_FEATURE_IBRS)) ||
-@@ -353,7 +356,9 @@ static void __init print_details(enum ind_thunk thunk, uint64_t caps)
- (_7d0 & cpufeat_mask(X86_FEATURE_MD_CLEAR)) ? " MD_CLEAR" : "",
- (_7d0 & cpufeat_mask(X86_FEATURE_SRBDS_CTRL)) ? " SRBDS_CTRL" : "",
- (e8b & cpufeat_mask(X86_FEATURE_VIRT_SSBD)) ? " VIRT_SSBD" : "",
-- (caps & ARCH_CAPS_TSX_CTRL) ? " TSX_CTRL" : "");
-+ (caps & ARCH_CAPS_TSX_CTRL) ? " TSX_CTRL" : "",
-+ (caps & ARCH_CAPS_FB_CLEAR) ? " FB_CLEAR" : "",
-+ (caps & ARCH_CAPS_FB_CLEAR_CTRL) ? " FB_CLEAR_CTRL" : "");
-
- /* Compiled-in support which pertains to mitigations. */
- if ( IS_ENABLED(CONFIG_INDIRECT_THUNK) || IS_ENABLED(CONFIG_SHADOW_PAGING) )
-diff --git a/xen/include/asm-x86/msr-index.h b/xen/include/asm-x86/msr-index.h
-index 31964b88af7a..72bc32ba04ff 100644
---- a/xen/include/asm-x86/msr-index.h
-+++ b/xen/include/asm-x86/msr-index.h
-@@ -66,6 +66,11 @@
- #define ARCH_CAPS_IF_PSCHANGE_MC_NO (_AC(1, ULL) << 6)
- #define ARCH_CAPS_TSX_CTRL (_AC(1, ULL) << 7)
- #define ARCH_CAPS_TAA_NO (_AC(1, ULL) << 8)
-+#define ARCH_CAPS_SBDR_SSDP_NO (_AC(1, ULL) << 13)
-+#define ARCH_CAPS_FBSDP_NO (_AC(1, ULL) << 14)
-+#define ARCH_CAPS_PSDP_NO (_AC(1, ULL) << 15)
-+#define ARCH_CAPS_FB_CLEAR (_AC(1, ULL) << 17)
-+#define ARCH_CAPS_FB_CLEAR_CTRL (_AC(1, ULL) << 18)
-
- #define MSR_FLUSH_CMD 0x0000010b
- #define FLUSH_CMD_L1D (_AC(1, ULL) << 0)
-@@ -83,6 +88,7 @@
- #define MCU_OPT_CTRL_RNGDS_MITG_DIS (_AC(1, ULL) << 0)
- #define MCU_OPT_CTRL_RTM_ALLOW (_AC(1, ULL) << 1)
- #define MCU_OPT_CTRL_RTM_LOCKED (_AC(1, ULL) << 2)
-+#define MCU_OPT_CTRL_FB_CLEAR_DIS (_AC(1, ULL) << 3)
-
- #define MSR_RTIT_OUTPUT_BASE 0x00000560
- #define MSR_RTIT_OUTPUT_MASK 0x00000561
diff --git a/main/xen/xsa404-4.16-3.patch b/main/xen/xsa404-4.16-3.patch
deleted file mode 100644
index dab0c310fc7..00000000000
--- a/main/xen/xsa404-4.16-3.patch
+++ /dev/null
@@ -1,177 +0,0 @@
-From: Andrew Cooper <andrew.cooper3@citrix.com>
-Subject: x86/spec-ctrl: Add spec-ctrl=unpriv-mmio
-
-Per Xen's support statement, PCI passthrough should be to trusted domains
-because the overall system security depends on factors outside of Xen's
-control.
-
-As such, Xen, in a supported configuration, is not vulnerable to DRPW/SBDR.
-
-However, users who have risk assessed their configuration may be happy with
-the risk of DoS, but unhappy with the risk of cross-domain data leakage. Such
-users should enable this option.
-
-On CPUs vulnerable to MDS, the existing mitigations are the best we can do to
-mitigate MMIO cross-domain data leakage.
-
-On CPUs fixed to MDS but vulnerable MMIO stale data leakage, this option:
-
- * On CPUs susceptible to FBSDP, mitigates cross-domain fill buffer leakage
- using FB_CLEAR.
- * On CPUs susceptible to SBDR, mitigates RNG data recovery by engaging the
- srb-lock, previously used to mitigate SRBDS.
-
-Both mitigations require microcode from IPU 2022.1, May 2022.
-
-This is part of XSA-404.
-
-Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
-Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
----
-Backporting note: For Xen 4.7 and earlier with bool_t not aliasing bool, the
-ARCH_CAPS_FB_CLEAR hunk needs !!
-
-diff --git a/docs/misc/xen-command-line.pandoc b/docs/misc/xen-command-line.pandoc
-index d5cb09f86541..a642e43476a2 100644
---- a/docs/misc/xen-command-line.pandoc
-+++ b/docs/misc/xen-command-line.pandoc
-@@ -2235,7 +2235,7 @@ By default SSBD will be mitigated at runtime (i.e `ssbd=runtime`).
- ### spec-ctrl (x86)
- > `= List of [ <bool>, xen=<bool>, {pv,hvm,msr-sc,rsb,md-clear}=<bool>,
- > bti-thunk=retpoline|lfence|jmp, {ibrs,ibpb,ssbd,eager-fpu,
--> l1d-flush,branch-harden,srb-lock}=<bool> ]`
-+> l1d-flush,branch-harden,srb-lock,unpriv-mmio}=<bool> ]`
-
- Controls for speculative execution sidechannel mitigations. By default, Xen
- will pick the most appropriate mitigations based on compiled in support,
-@@ -2314,8 +2314,16 @@ Xen will enable this mitigation.
- On hardware supporting SRBDS_CTRL, the `srb-lock=` option can be used to force
- or prevent Xen from protect the Special Register Buffer from leaking stale
- data. By default, Xen will enable this mitigation, except on parts where MDS
--is fixed and TAA is fixed/mitigated (in which case, there is believed to be no
--way for an attacker to obtain the stale data).
-+is fixed and TAA is fixed/mitigated and there are no unprivileged MMIO
-+mappings (in which case, there is believed to be no way for an attacker to
-+obtain stale data).
-+
-+The `unpriv-mmio=` boolean indicates whether the system has (or will have)
-+less than fully privileged domains granted access to MMIO devices. By
-+default, this option is disabled. If enabled, Xen will use the `FB_CLEAR`
-+and/or `SRBDS_CTRL` functionality available in the Intel May 2022 microcode
-+release to mitigate cross-domain leakage of data via the MMIO Stale Data
-+vulnerabilities.
-
- ### sync_console
- > `= <boolean>`
-diff --git a/xen/arch/x86/spec_ctrl.c b/xen/arch/x86/spec_ctrl.c
-index d285538bde9f..099113ba41e6 100644
---- a/xen/arch/x86/spec_ctrl.c
-+++ b/xen/arch/x86/spec_ctrl.c
-@@ -67,6 +67,8 @@ static bool __initdata cpu_has_bug_msbds_only; /* => minimal HT impact. */
- static bool __initdata cpu_has_bug_mds; /* Any other M{LP,SB,FB}DS combination. */
-
- static int8_t __initdata opt_srb_lock = -1;
-+static bool __initdata opt_unpriv_mmio;
-+static bool __read_mostly opt_fb_clear_mmio;
-
- static int __init parse_spec_ctrl(const char *s)
- {
-@@ -184,6 +186,8 @@ static int __init parse_spec_ctrl(const char *s)
- opt_branch_harden = val;
- else if ( (val = parse_boolean("srb-lock", s, ss)) >= 0 )
- opt_srb_lock = val;
-+ else if ( (val = parse_boolean("unpriv-mmio", s, ss)) >= 0 )
-+ opt_unpriv_mmio = val;
- else
- rc = -EINVAL;
-
-@@ -392,7 +396,8 @@ static void __init print_details(enum ind_thunk thunk, uint64_t caps)
- opt_srb_lock ? " SRB_LOCK+" : " SRB_LOCK-",
- opt_ibpb ? " IBPB" : "",
- opt_l1d_flush ? " L1D_FLUSH" : "",
-- opt_md_clear_pv || opt_md_clear_hvm ? " VERW" : "",
-+ opt_md_clear_pv || opt_md_clear_hvm ||
-+ opt_fb_clear_mmio ? " VERW" : "",
- opt_branch_harden ? " BRANCH_HARDEN" : "");
-
- /* L1TF diagnostics, printed if vulnerable or PV shadowing is in use. */
-@@ -941,7 +946,9 @@ void spec_ctrl_init_domain(struct domain *d)
- {
- bool pv = is_pv_domain(d);
-
-- d->arch.verw = pv ? opt_md_clear_pv : opt_md_clear_hvm;
-+ d->arch.verw =
-+ (pv ? opt_md_clear_pv : opt_md_clear_hvm) ||
-+ (opt_fb_clear_mmio && is_iommu_enabled(d));
- }
-
- void __init init_speculation_mitigations(void)
-@@ -1196,6 +1203,18 @@ void __init init_speculation_mitigations(void)
- mds_calculations(caps);
-
- /*
-+ * Parts which enumerate FB_CLEAR are those which are post-MDS_NO and have
-+ * reintroduced the VERW fill buffer flushing side effect because of a
-+ * susceptibility to FBSDP.
-+ *
-+ * If unprivileged guests have (or will have) MMIO mappings, we can
-+ * mitigate cross-domain leakage of fill buffer data by issuing VERW on
-+ * the return-to-guest path.
-+ */
-+ if ( opt_unpriv_mmio )
-+ opt_fb_clear_mmio = caps & ARCH_CAPS_FB_CLEAR;
-+
-+ /*
- * By default, enable PV and HVM mitigations on MDS-vulnerable hardware.
- * This will only be a token effort for MLPDS/MFBDS when HT is enabled,
- * but it is somewhat better than nothing.
-@@ -1208,18 +1227,20 @@ void __init init_speculation_mitigations(void)
- boot_cpu_has(X86_FEATURE_MD_CLEAR));
-
- /*
-- * Enable MDS defences as applicable. The Idle blocks need using if
-- * either PV or HVM defences are used.
-+ * Enable MDS/MMIO defences as applicable. The Idle blocks need using if
-+ * either the PV or HVM MDS defences are used, or if we may give MMIO
-+ * access to untrusted guests.
- *
- * HVM is more complicated. The MD_CLEAR microcode extends L1D_FLUSH with
- * equivalent semantics to avoid needing to perform both flushes on the
-- * HVM path. Therefore, we don't need VERW in addition to L1D_FLUSH.
-+ * HVM path. Therefore, we don't need VERW in addition to L1D_FLUSH (for
-+ * MDS mitigations. L1D_FLUSH is not safe for MMIO mitigations.)
- *
- * After calculating the appropriate idle setting, simplify
- * opt_md_clear_hvm to mean just "should we VERW on the way into HVM
- * guests", so spec_ctrl_init_domain() can calculate suitable settings.
- */
-- if ( opt_md_clear_pv || opt_md_clear_hvm )
-+ if ( opt_md_clear_pv || opt_md_clear_hvm || opt_fb_clear_mmio )
- setup_force_cpu_cap(X86_FEATURE_SC_VERW_IDLE);
- opt_md_clear_hvm &= !(caps & ARCH_CAPS_SKIP_L1DFL) && !opt_l1d_flush;
-
-@@ -1284,14 +1305,19 @@ void __init init_speculation_mitigations(void)
- * On some SRBDS-affected hardware, it may be safe to relax srb-lock by
- * default.
- *
-- * On parts which enumerate MDS_NO and not TAA_NO, TSX is the only known
-- * way to access the Fill Buffer. If TSX isn't available (inc. SKU
-- * reasons on some models), or TSX is explicitly disabled, then there is
-- * no need for the extra overhead to protect RDRAND/RDSEED.
-+ * All parts with SRBDS_CTRL suffer SSDP, the mechanism by which stale RNG
-+ * data becomes available to other contexts. To recover the data, an
-+ * attacker needs to use:
-+ * - SBDS (MDS or TAA to sample the cores fill buffer)
-+ * - SBDR (Architecturally retrieve stale transaction buffer contents)
-+ * - DRPW (Architecturally latch stale fill buffer data)
-+ *
-+ * On MDS_NO parts, and with TAA_NO or TSX unavailable/disabled, and there
-+ * is no unprivileged MMIO access, the RNG data doesn't need protecting.
- */
- if ( cpu_has_srbds_ctrl )
- {
-- if ( opt_srb_lock == -1 &&
-+ if ( opt_srb_lock == -1 && !opt_unpriv_mmio &&
- (caps & (ARCH_CAPS_MDS_NO|ARCH_CAPS_TAA_NO)) == ARCH_CAPS_MDS_NO &&
- (!cpu_has_hle || ((caps & ARCH_CAPS_TSX_CTRL) && rtm_disabled)) )
- opt_srb_lock = 0;
diff --git a/main/xfsprogs/APKBUILD b/main/xfsprogs/APKBUILD
index 80a43211de4..acda7f265b9 100644
--- a/main/xfsprogs/APKBUILD
+++ b/main/xfsprogs/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=xfsprogs
-pkgver=5.18.0
+pkgver=6.7.0
pkgrel=0
pkgdesc="XFS filesystem utilities"
url="https://xfs.org/index.php/Main_Page"
@@ -10,7 +10,6 @@ license="LGPL-2.1-or-later"
makedepends="
attr-dev
bash
- gzip
inih-dev
linux-headers
python3
@@ -19,14 +18,11 @@ makedepends="
"
options="!check" # no test suite
subpackages="$pkgname-dev $pkgname-doc $pkgname-libs $pkgname-extra"
-source="https://www.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/xfsprogs-$pkgver.tar.gz
- fix-mmap.patch
- missing-signal.h.patch
- "
+source="https://mirrors.edge.kernel.org/pub/linux/utils/fs/xfs/xfsprogs/xfsprogs-$pkgver.tar.xz"
build() {
export DEBUG=-DNDEBUG
- export OPTIMIZER="$CFLAGS"
+ export OPTIMIZER="$CFLAGS -flto=auto"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -34,12 +30,12 @@ build() {
--sbindir=/sbin \
--libexecdir=/usr/lib \
--enable-gettext=no
- make SHELL=/bin/bash
+ make
}
package() {
make -j1 DIST_ROOT="$pkgdir" install install-dev
- find "$pkgdir" -name *.la -delete
+ rm -v "$pkgdir"/lib/libhandle.la
mv "$pkgdir"/sbin "$pkgdir"/usr
mkdir -p "$pkgdir"/sbin
for i in mkfs.xfs fsck.xfs xfs_repair; do
@@ -51,13 +47,12 @@ package() {
extra() {
depends="$pkgname python3" # python3 for xfs_scrub_all
pkgdesc="XFS filesystem extra utilities"
- mkdir -p "$subpkgdir"
+
+ # shellcheck disable=2115
rm -rf "$pkgdir"/lib "$pkgdir"/usr/lib
- mv "$pkgdir"/usr "$subpkgdir"/
+ amove usr/
}
sha512sums="
-5bd3ec269d5685a5215fd414ae36d41ba33ddbbe5a22e8b3ccb080629495fb156271754877260f4acde4b7df496049fe1a341ebad126c071a87d74dbf410e4f6 xfsprogs-5.18.0.tar.gz
-080161b211e20277e44f714961b36064536bb5cce72a6f93fef4996e296a3953d33c1a066ef371ccd5551622357105f9be9086ef917386f5d43f6a211b0bd7c9 fix-mmap.patch
-3dc132c45d93eeefe06ad3d53c39f325f4b003e3a230d5961599f7dac2026360ff57820be351b945385bfe1d6669cb182706696f59ae8d23f7c73dd7fe8d092a missing-signal.h.patch
+4f543e4c5c4e88e4f9ce16b82ca1151330f687469368fe7470b68e8bb21d1d3c7280eb2e691d3bdf24ae3d4fa2ee5764dc34637198bca0d4ffa65eea2f10ac74 xfsprogs-6.7.0.tar.xz
"
diff --git a/main/xfsprogs/fix-mmap.patch b/main/xfsprogs/fix-mmap.patch
deleted file mode 100644
index d0740f695b3..00000000000
--- a/main/xfsprogs/fix-mmap.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-diff --git a/io/mmap.c b/io/mmap.c
-index f9383e5..12f3fff 100644
---- a/io/mmap.c
-+++ b/io/mmap.c
-@@ -4,10 +4,10 @@
- * All Rights Reserved.
- */
-
--#include "command.h"
--#include "input.h"
- #include <sys/mman.h>
- #include <signal.h>
-+#include "command.h"
-+#include "input.h"
- #include "init.h"
- #include "io.h"
-
-@@ -20,6 +20,14 @@ static cmdinfo_t mwrite_cmd;
- static cmdinfo_t mremap_cmd;
- #endif /* HAVE_MREMAP */
-
-+#ifndef HAVE_MAP_SYNC
-+#define MAP_SYNC 0
-+#define MAP_SHARED_VALIDATE 0
-+#else
-+#include <asm-generic/mman.h>
-+#include <asm-generic/mman-common.h>
-+#endif /* HAVE_MAP_SYNC */
-+
- mmap_region_t *maptable;
- int mapcount;
- mmap_region_t *mapping;
diff --git a/main/xfsprogs/missing-signal.h.patch b/main/xfsprogs/missing-signal.h.patch
deleted file mode 100644
index 9ce7314f566..00000000000
--- a/main/xfsprogs/missing-signal.h.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/include/linux.h b/include/linux.h
-index 7bf59e0..ee25ec9 100644
---- a/include/linux.h
-+++ b/include/linux.h
-@@ -21,6 +21,7 @@
- #include <asm/types.h>
- #include <mntent.h>
- #include <fcntl.h>
-+#include <signal.h> /* For SIGKILL */
- #if defined(HAVE_FALLOCATE)
- #include <linux/falloc.h>
- #endif
diff --git a/main/xkbcomp/APKBUILD b/main/xkbcomp/APKBUILD
index 11450feabea..41f68bc6052 100644
--- a/main/xkbcomp/APKBUILD
+++ b/main/xkbcomp/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=xkbcomp
-pkgver=1.4.5
+pkgver=1.4.7
pkgrel=0
pkgdesc="XKBD keymap compiler"
url="https://xorg.freedesktop.org"
@@ -9,8 +9,7 @@ arch="all"
license="MIT"
makedepends="libx11-dev libxkbfile-dev util-macros"
subpackages="$pkgname-dev $pkgname-doc"
-source="https://www.x.org/releases/individual/app/xkbcomp-$pkgver.tar.bz2"
-
+source="https://www.x.org/releases/individual/app/xkbcomp-$pkgver.tar.xz"
build() {
./configure \
@@ -31,4 +30,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="2e84f8d6b083e2e818cb95e5d2a184da00e50d71b280e92d1a71465a9a4348f922f4ddccb42cfeee6f76705bbfc8580ef67aedd0d958aaa1ae6bbcc66ccd8154 xkbcomp-1.4.5.tar.bz2"
+sha512sums="
+6f468dce9d2499ab1022f4288d46f66af149dac0a161fb5b9dc0c262bc70c2c3d254db2c6fb5df1e2793c822e2d55c6da5fd037ce523a555b7c3de23e35c49ef xkbcomp-1.4.7.tar.xz
+"
diff --git a/main/xkeyboard-config/APKBUILD b/main/xkeyboard-config/APKBUILD
index 4ac9586ec27..740de0bf2c5 100644
--- a/main/xkeyboard-config/APKBUILD
+++ b/main/xkeyboard-config/APKBUILD
@@ -1,26 +1,26 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=xkeyboard-config
-pkgver=2.36
-pkgrel=2
+pkgver=2.41
+pkgrel=0
pkgdesc="X keyboard configuration files"
-url="https://github.com/freedesktop/xkeyboard-config"
+url="https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config"
arch="noarch"
license="MIT"
subpackages="$pkgname-dev $pkgname-doc $pkgname-lang"
depends_dev="$pkgname"
makedepends="gettext meson perl libxslt"
-source="$pkgname-$pkgver.tar.gz::https://github.com/freedesktop/xkeyboard-config/archive/refs/tags/xkeyboard-config-$pkgver.tar.gz
- fix-syntax-error.patch
+checkdepends="gawk"
+source="https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/archive/xkeyboard-config-$pkgver/xkeyboard-config-xkeyboard-config-$pkgver.tar.gz
"
builddir="$srcdir"/xkeyboard-config-xkeyboard-config-$pkgver
build() {
abuild-meson . output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
check() {
- meson test --no-rebuild -v -C output
+ meson test --no-rebuild --print-errorlogs -C output
}
package() {
@@ -28,6 +28,5 @@ package() {
}
sha512sums="
-c238b2584caa55638a5464bc2cb107eb7e7be856060796cc09fd7b5d5312126d17d043e5769f5a746d5cc64135738bac73f17206973b63284f346a5fabde750f xkeyboard-config-2.36.tar.gz
-ed8c5834cdaa87fd12a9c9faa292d905daee792ed9505f61ea488420a77e5fa07ebcd1fa641b637ab62e3035f6b12928c5583109c1cdcdd36f059d1053fc9579 fix-syntax-error.patch
+bae6ce7441154b8582cb431256899d748f8f45e24a28898e767e212d1233ea55d52de608ff760f37bb9930e47f1d0d840d085fd4129927e4a1ad3ab446f5b908 xkeyboard-config-xkeyboard-config-2.41.tar.gz
"
diff --git a/main/xkeyboard-config/fix-syntax-error.patch b/main/xkeyboard-config/fix-syntax-error.patch
deleted file mode 100644
index 8aa7ccb75a0..00000000000
--- a/main/xkeyboard-config/fix-syntax-error.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-Patch-Source: https://gitlab.freedesktop.org/xkeyboard-config/xkeyboard-config/-/commit/8ac41c50ab0aa7cd3a7e94313074115de2a172d2
-From 8ac41c50ab0aa7cd3a7e94313074115de2a172d2 Mon Sep 17 00:00:00 2001
-From: Benno Schulenberg <bensberg@telfort.nl>
-Date: Fri, 10 Jun 2022 12:05:52 +0200
-Subject: [PATCH] rules: use backslashes instead of slashes for line
- continuation :\
-
-This fixes #324.
-
-Reported-by: Adriaan de Groot
-
-Bug existed since commit c3c5d02a7e from six weeks ago.
-
-Signed-off-by: Benno Schulenberg <bensberg@telfort.nl>
----
- rules/0002-base.lists.part | 28 ++++++++++++++--------------
- 1 file changed, 14 insertions(+), 14 deletions(-)
-
-diff --git a/rules/0002-base.lists.part b/rules/0002-base.lists.part
-index 0af6db56..cb661240 100644
---- a/rules/0002-base.lists.part
-+++ b/rules/0002-base.lists.part
-@@ -37,18 +37,18 @@
- unitekkb1925 yahoo
-
- ! $inetmediakbds = \
-- a4_rfkb23 a4techKB21 a4techKBS8 acer_ferrari4k acer_laptop /
-- armada asus_laptop benqx btc5090 btc6301urf btc9019u /
-- cherrybluea cherryblueb cherrycyboard chicony042 /
-- compalfl90 compaqik13 compaqik18 creativedw7000 /
-- cymotionlinux dellm65 dellusbmm dexxa diamond dtk2000 /
-- emachines ennyah_dkb1008 fscaa1667g genius geniuscomfy /
-- geniuscomfy2 geniuskb19e hp5xx hpdv5 hpi6 hpxe3gc hpxe3gf /
-- hpxe4xxx hpxt1000 hpzt11xx inspiron latitude /
-- logidinovo logidinovoedge logitech_base logitech_g15 /
-- microsoft4000 microsoft7000 microsoftmult microsoftpro /
-- microsoftprooem mx1998 mx2500 mx2750 pc105 precision_m /
-- presario propeller samsung4500 samsung4510 scorpius /
-- silvercrest sk1300 sk2500 sk7100 sp_inet targa_v811 /
-- thinkpad thinkpad60 tm2030USB-102 tm2030USB-106 /
-+ a4_rfkb23 a4techKB21 a4techKBS8 acer_ferrari4k acer_laptop \
-+ armada asus_laptop benqx btc5090 btc6301urf btc9019u \
-+ cherrybluea cherryblueb cherrycyboard chicony042 \
-+ compalfl90 compaqik13 compaqik18 creativedw7000 \
-+ cymotionlinux dellm65 dellusbmm dexxa diamond dtk2000 \
-+ emachines ennyah_dkb1008 fscaa1667g genius geniuscomfy \
-+ geniuscomfy2 geniuskb19e hp5xx hpdv5 hpi6 hpxe3gc hpxe3gf \
-+ hpxe4xxx hpxt1000 hpzt11xx inspiron latitude \
-+ logidinovo logidinovoedge logitech_base logitech_g15 \
-+ microsoft4000 microsoft7000 microsoftmult microsoftpro \
-+ microsoftprooem mx1998 mx2500 mx2750 pc105 precision_m \
-+ presario propeller samsung4500 samsung4510 scorpius \
-+ silvercrest sk1300 sk2500 sk7100 sp_inet targa_v811 \
-+ thinkpad thinkpad60 tm2030USB-102 tm2030USB-106 \
- toshiba_s3000 trust trustda trust_slimline unitekkb1925
---
-GitLab
-
diff --git a/main/xl2tpd/APKBUILD b/main/xl2tpd/APKBUILD
index 66e06c48c15..abcdf1df501 100644
--- a/main/xl2tpd/APKBUILD
+++ b/main/xl2tpd/APKBUILD
@@ -1,8 +1,8 @@
# Contributor: Danilo Godec <danilo.godec@agenda.si>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=xl2tpd
-pkgver=1.3.17
-pkgrel=0
+pkgver=1.3.18
+pkgrel=1
pkgdesc="Layer 2 Tunnelling Protocol Daemon (RFC 2661)"
url="https://github.com/xelerance/xl2tpd/releases/tag/v1.3.14"
arch="all"
@@ -15,6 +15,7 @@ source="$pkgname-$pkgver.tar.gz::https://github.com/xelerance/xl2tpd/archive/v$p
xl2tpd.initd
options.xl2tpd
"
+options="!check"
build() {
make PREFIX=/usr
@@ -30,7 +31,7 @@ package() {
}
sha512sums="
-5a836dff40e7e30d67f6046b89cefb7df38a2cc5dcbf6eee4523e0b7541dcd43736f374e2055bcaaac2fee3bce4c7025ff56ea6c8174eebb3f4a20da77f5920c xl2tpd-1.3.17.tar.gz
+d1114777de5f3895429409fd5474da91fe9e9c218615eb989c9294de3e4e36dea7d8ea880a9b1b1ca18760e5709c8b8156c80d81401db479eaf215c026c3d861 xl2tpd-1.3.18.tar.gz
1d0924d71b96b6bbaccbdcb11468047d02126d01650b7379923489a39976559e10f0167848608586de689fbbf5ba7d8c584f5443f9b4731501f7bf54b1142b44 xl2tpd.confd
35155e758fe0404d7850600c9c0bcdd17e74cd2b95dea3d21761fbb3032757dccde42a9e34d68822c96f3c0fca475223e2f842e9067a99293f3668d99e858084 xl2tpd.initd
04b1c4bf07ef5e74efa49d627bb085ee76d2543f6e69312aab4d183297210831f2d9da66dd8ad7ec75d69ada1f30e4faf4c4b275d2fe9f75e4b496cf55426198 options.xl2tpd
diff --git a/main/xmlindent/APKBUILD b/main/xmlindent/APKBUILD
index 2e91159d660..7c55d0867dd 100644
--- a/main/xmlindent/APKBUILD
+++ b/main/xmlindent/APKBUILD
@@ -2,22 +2,21 @@
# Maintainer: Timo Teräs <timo.teras@iki.fi>
pkgname=xmlindent
pkgver=0.2.17
-pkgrel=1
+pkgrel=3
pkgdesc="An XML indenting utility"
-url="http://xmlindent.sourceforge.net/"
+url="https://xmlindent.sourceforge.net/"
arch="all"
license="GPL-3.0-or-later"
makedepends="flex-dev"
subpackages="$pkgname-doc"
source="https://sourceforge.net/projects/xmlindent/files/xmlindent/$pkgver/xmlindent-$pkgver.tar.gz"
+options="!check"
build() {
- cd "$builddir"
make
}
package() {
- cd "$builddir"
make PREFIX="$pkgdir"/usr install
}
diff --git a/main/xmlrpc-c/APKBUILD b/main/xmlrpc-c/APKBUILD
index b3477414f77..1091fbb7016 100644
--- a/main/xmlrpc-c/APKBUILD
+++ b/main/xmlrpc-c/APKBUILD
@@ -1,13 +1,13 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=xmlrpc-c
-pkgver=1.51.07
-pkgrel=1
+pkgver=1.51.08
+pkgrel=4
pkgdesc="This library provides a modular implementation of XML-RPC for C and C++"
-url="http://xmlrpc-c.sourceforge.net/"
+url="https://xmlrpc-c.sourceforge.net/"
arch="all"
license="BSD-3-Clause AND MIT"
depends_dev="libxml2-dev"
-makedepends="libtool curl-dev libxml2-dev zlib-dev"
+makedepends="libtool curl-dev libxml2-dev zlib-dev openssl-dev>3"
subpackages="
$pkgname-dev
$pkgname-doc
@@ -17,7 +17,11 @@ subpackages="
$pkgname-abyss
$pkgname-tools
"
-source="$pkgname-$pkgver.tar::https://sourceforge.net/projects/xmlrpc-c/files/Xmlrpc-c%20Super%20Stable/$pkgver/xmlrpc-c-$pkgver.tgz/download"
+source="https://downloads.sourceforge.net/project/xmlrpc-c/Xmlrpc-c%20Super%20Stable/$pkgver/xmlrpc-$pkgver.tgz
+ format-security.patch
+ "
+builddir="$srcdir/xmlrpc-$pkgver"
+options="!check"
prepare() {
default_prepare
@@ -52,34 +56,33 @@ tools() {
client() {
pkgdesc="C client libraries for xmlrpc-c"
replaces="$pkgname"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libxmlrpc_client.so.* "$subpkgdir"/usr/lib/
+
+ amove usr/lib/libxmlrpc_client.so.*
}
clientxx() {
replaces="libxml-c++"
pkgdesc="C++ client libraries for xmlrpc-c"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/libxmlrpc_client++.so.* "$subpkgdir"/usr/lib/
+
+ amove usr/lib/libxmlrpc_client++.so.*
}
cxx() {
pkgdesc="This library provides a modular implementation of XML-RPC for C++"
replaces="$pkgname"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*++* \
- "$pkgdir"/usr/lib/libxmlrpc_packetsocket.so.* \
- "$pkgdir"/usr/lib/libxmlrpc_cpp.so.* \
- "$subpkgdir"/usr/lib/
+
+ amove usr/lib/*++* \
+ usr/lib/libxmlrpc_packetsocket.so.* \
+ usr/lib/libxmlrpc_cpp.so.*
}
abyss() {
pkgdesc="Abyss server libraries for C++"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/*abyss* \
- "$subpkgdir"/usr/lib/
+
+ amove usr/lib/*abyss*
}
sha512sums="
-f6c33cb67ea79f492a101cedd6337ce6f573c76d22c3d6f193d2f6aa974c753d53ea3a46fff8c4724bb24029f7e173e11e5deb2c931a55298a530a9000fb4620 xmlrpc-c-1.51.07.tar
+df0d8e3730b529fb10fb2cf9511dc55143ad3c7b4cce5522b61ed0d212080f3ebf4b6aa8a28911ddbe90029fce6bea7df28ee51f36196900a855beff5bd3a1cd xmlrpc-1.51.08.tgz
+a47333110b84c530dc362104d5a9d99ae192a9db4c68fe536b98bfef0c076ff119162e4b6fec65ec98d9d5ccbcab32d5169db4d82a6e0fa080c89e9ff8f0cfef format-security.patch
"
diff --git a/main/xmlrpc-c/format-security.patch b/main/xmlrpc-c/format-security.patch
new file mode 100644
index 00000000000..b069475900c
--- /dev/null
+++ b/main/xmlrpc-c/format-security.patch
@@ -0,0 +1,13 @@
+diff --git a/src/xmlrpc_server_abyss.c b/src/xmlrpc_server_abyss.c
+index f22aee7..17f2426 100644
+--- a/src/xmlrpc_server_abyss.c
++++ b/src/xmlrpc_server_abyss.c
+@@ -780,7 +780,7 @@ createServer(xmlrpc_env * const envP,
+ ServerInit2(abyssServerP, &error);
+
+ if (error) {
+- xmlrpc_faultf(envP, error);
++ xmlrpc_faultf(envP, "%s", error);
+ xmlrpc_strfree(error);
+ }
+ }
diff --git a/main/xmlto/APKBUILD b/main/xmlto/APKBUILD
index 548474cbcb5..a02b30f6694 100644
--- a/main/xmlto/APKBUILD
+++ b/main/xmlto/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=xmlto
pkgver=0.0.28
-pkgrel=2
+pkgrel=4
pkgdesc="Convert xml to many other formats"
url="https://pagure.io/xmlto/"
arch="all"
@@ -12,7 +12,6 @@ subpackages="$pkgname-doc"
source="https://releases.pagure.org/xmlto/xmlto-$pkgver.tar.bz2"
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -22,12 +21,10 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make -j1 DESTDIR="$pkgdir" install
}
diff --git a/main/xorgproto/APKBUILD b/main/xorgproto/APKBUILD
index 1e13d8dcaa9..774a52188d3 100644
--- a/main/xorgproto/APKBUILD
+++ b/main/xorgproto/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: prspkt <prspkt@protonmail.com>
# Maintainer: prspkt <prspkt@protonmail.com>
pkgname=xorgproto
-pkgver=2022.1
+pkgver=2024.1
pkgrel=0
pkgdesc="Combined X.Org X11 protocol headers"
url="https://www.x.org"
@@ -42,7 +42,7 @@ provides="bigreqsproto=$pkgver-r$pkgrel
xineramaproto=$pkgver-r$pkgrel
xproto=$pkgver-r$pkgrel
"
-source="https://xorg.freedesktop.org/archive/individual/proto/xorgproto-$pkgver.tar.bz2"
+source="https://xorg.freedesktop.org/archive/individual/proto/xorgproto-$pkgver.tar.gz"
options="!check" # no tests
build() {
@@ -50,7 +50,7 @@ build() {
--datadir=/usr/lib \
-Dlegacy=true \
. output
- meson compile ${JOBS:+-j ${JOBS}} -C output
+ meson compile -C output
}
package() {
@@ -66,5 +66,5 @@ package() {
}
sha512sums="
-add275a9c0d005053f31fdca6da009142792a3c7e2cd4b56da93eed3a397adf52d91c441ff6455959b87559f402eb9f46fdd8932e951c7d2d96623975391202a xorgproto-2022.1.tar.bz2
+c2d67a98c5ba9b2f4d0b844c96dab342c497710753a8878b75dbf12ecd64b105c9ee3c5fd11eb91e45960420cf8dd7d02547072a32d5c53e58e009394fe33666 xorgproto-2024.1.tar.gz
"
diff --git a/main/xtables-addons-lts/APKBUILD b/main/xtables-addons-lts/APKBUILD
index 7ff43e0524b..d96d7ae04e0 100644
--- a/main/xtables-addons-lts/APKBUILD
+++ b/main/xtables-addons-lts/APKBUILD
@@ -1,26 +1,26 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=xtables-addons-lts
+_flavor=${pkgname##*-}
+_name=${pkgname%-*}
# when changing _ver we *must* bump _rel
-_name=xtables-addons
-_ver=3.21
-_rel=0
-
-_flavor=${FLAVOR:-lts}
+_ver=3.26
+_rel=2
+# when changing _kver make sure _krel=0 & _rel=0
_kpkg=linux-$_flavor
-_kver=5.15.51
+_kver=6.6.28
_krel=0
_kpkgver="$_kver-r$_krel"
_kabi="$_kver-$_krel-$_flavor"
-pkgname=$_name-$_flavor
pkgver=$_kver
-pkgrel=$(( $_krel + $_rel ))
+pkgrel=$(( _krel + _rel ))
pkgdesc="Iptables extensions kernel modules"
url="https://inai.de/projects/xtables-addons/"
arch="all !armhf !mips64 !riscv64"
-license="GPL-2.0"
+license="GPL-2.0-or-later"
depends="$_kpkg=$_kpkgver"
makedepends="$_kpkg-dev=$_kpkgver iptables-dev linux-headers"
install_if="$_kpkg=$_kpkgver $_name"
@@ -42,7 +42,6 @@ prepare() {
}
build() {
- cd "$builddir"
unset LDFLAGS
./configure \
--build=$CBUILD \
@@ -60,5 +59,5 @@ package() {
}
sha512sums="
-5ec30a14f7dffcaa87bbeb910b46ef5ba3bafc4b6f0ce1579eb21ca6395106fa9157b300f463b43169ea85ec9ff0d9a5377cb5ebc2bb2f637e2a1fe9ff61728e xtables-addons-3.21.tar.xz
+858126c5887a3a1d2c122e51fcfdb41a5ddb3fff45308a8dda46de06c0df9f4f8059466bc182cff5b2baa3efcef9240378a890ca8237aec4dfccb74523a56851 xtables-addons-3.26.tar.xz
"
diff --git a/main/xtables-addons-rpi/APKBUILD b/main/xtables-addons-rpi/APKBUILD
new file mode 100644
index 00000000000..86645772c2c
--- /dev/null
+++ b/main/xtables-addons-rpi/APKBUILD
@@ -0,0 +1,63 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+
+pkgname=xtables-addons-rpi
+_flavor=${pkgname##*-}
+_name=${pkgname%-*}
+# when changing _ver we *must* bump _rel
+_ver=3.26
+_rel=1
+# when changing _kver make sure _krel=0 & _rel=0
+_kpkg=linux-$_flavor
+_kver=6.6.21
+_krel=0
+
+_kpkgver="$_kver-r$_krel"
+_kabi="$_kver-$_krel-$_flavor"
+
+pkgver=$_kver
+pkgrel=$(( _krel + _rel ))
+
+pkgdesc="Iptables extensions kernel modules"
+url="https://inai.de/projects/xtables-addons/"
+arch="aarch64"
+license="GPL-2.0-or-later"
+depends="$_kpkg=$_kpkgver"
+makedepends="$_kpkg-dev=$_kpkgver iptables-dev linux-headers"
+install_if="$_kpkg=$_kpkgver $_name"
+source="https://inai.de/files/xtables-addons/xtables-addons-$_ver.tar.xz"
+builddir="$srcdir/$_name-$_ver"
+options="!check"
+
+prepare() {
+ default_prepare
+ local _kapkbuild="$startdir"/../../main/linux-$_flavor/APKBUILD
+ if [ -f $_kapkbuild ]; then
+ ( . $_kapkbuild
+ pkgname=$_name-$_flavor
+ [ "$_kver" != "$pkgver" ] && die "please update _kver to $pkgver"
+ [ "$_krel" != "$pkgrel" ] && die "please update _krel to $pkgrel"
+ return 0
+ )
+ fi
+}
+
+build() {
+ unset LDFLAGS
+ ./configure \
+ --build=$CBUILD \
+ --host=$CHOST \
+ --prefix=/usr \
+ --with-kbuild=/usr/src/linux-headers-$_kabi
+
+ cd extensions
+ make modules
+}
+
+package() {
+ cd "$builddir/extensions"
+ make DESTDIR="$pkgdir" modules_install
+}
+
+sha512sums="
+858126c5887a3a1d2c122e51fcfdb41a5ddb3fff45308a8dda46de06c0df9f4f8059466bc182cff5b2baa3efcef9240378a890ca8237aec4dfccb74523a56851 xtables-addons-3.26.tar.xz
+"
diff --git a/main/xtables-addons/APKBUILD b/main/xtables-addons/APKBUILD
index 9006c6930ff..f98d5c4209c 100644
--- a/main/xtables-addons/APKBUILD
+++ b/main/xtables-addons/APKBUILD
@@ -1,6 +1,6 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=xtables-addons
-pkgver=3.20
+pkgver=3.26
pkgrel=0
pkgdesc="Netfilter userspace extensions for iptables"
url="https://inai.de/projects/xtables-addons/"
@@ -26,5 +26,5 @@ package() {
}
sha512sums="
-0a38c12159dd555a31f24dc5a74d012b27723925df827edffe2343f6b8e61e838b5dc4776bafe37587e9622b9da1e9cd4220e4f576d58e78eb21ad18a419fb2e xtables-addons-3.20.tar.xz
+858126c5887a3a1d2c122e51fcfdb41a5ddb3fff45308a8dda46de06c0df9f4f8059466bc182cff5b2baa3efcef9240378a890ca8237aec4dfccb74523a56851 xtables-addons-3.26.tar.xz
"
diff --git a/main/xtrans/APKBUILD b/main/xtrans/APKBUILD
index 647db5c416a..d699f4047a5 100644
--- a/main/xtrans/APKBUILD
+++ b/main/xtrans/APKBUILD
@@ -1,16 +1,15 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=xtrans
-pkgver=1.4.0
-pkgrel=1
+pkgver=1.5.0
+pkgrel=0
pkgdesc="X transport library"
-url="http://xorg.freedesktop.org/"
+url="https://xorg.freedesktop.org/"
arch="noarch"
license="MIT"
makedepends="util-macros xmlto"
-source="https://www.x.org/releases/individual/lib/$pkgname-$pkgver.tar.bz2"
+source="https://www.x.org/releases/individual/lib/xtrans-$pkgver.tar.xz"
build() {
- cd "$builddir"
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -19,16 +18,16 @@ build() {
}
check() {
- cd "$builddir"
make check
}
package() {
- cd "$builddir"
make DESTDIR="$pkgdir" install
mkdir -p "$pkgdir"/usr/lib
mv "$pkgdir"/usr/share/pkgconfig "$pkgdir"/usr/lib
}
-sha512sums="4fea89a3455c0e13321cbefa43340016dbb59bdd0dbdb5b796c1a6d2a6b1fd63cf1327b769ab426286b9c54b32ec764a50cd2b46228e4e43b841bda6b94de214 xtrans-1.4.0.tar.bz2"
+sha512sums="
+e8091f11d4ad2b14e01de3eac56bdf2267ea26687ce66e3056374d0d02e049480c0b27c482f8828a0efd086f1e4c485108ca4dce3f83d66c1896effa3b38b228 xtrans-1.5.0.tar.xz
+"
diff --git a/main/xxhash/APKBUILD b/main/xxhash/APKBUILD
new file mode 100644
index 00000000000..53e3bb39ce8
--- /dev/null
+++ b/main/xxhash/APKBUILD
@@ -0,0 +1,41 @@
+# Contributor: Leo <thinkabit.ukim@gmail.com>
+# Contributor: Stuart Cardall <developer@it-offshore.co.uk>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=xxhash
+pkgver=0.8.2
+pkgrel=2
+pkgdesc="Extremely fast non-cryptographic hash algorithm"
+url="https://cyan4973.github.io/xxHash/"
+arch="all"
+license="BSD-2-Clause"
+subpackages="$pkgname-dev $pkgname-doc lib$pkgname:libs"
+source="$pkgname-$pkgver.tar.gz::https://github.com/Cyan4973/xxHash/archive/v$pkgver.tar.gz"
+builddir="$srcdir/xxHash-$pkgver"
+
+build() {
+ export CFLAGS="$CFLAGS -DXXH_FORCE_MEMORY_ACCESS=1 -flto=auto -O2"
+
+ case "$CARCH" in
+ x86*)
+ # only implemented for x86/x86_64
+ local dispatch="1"
+ ;;
+ *)
+ local dispatch="0"
+ ;;
+ esac
+ make DISPATCH="$dispatch"
+}
+
+check() {
+ make check
+}
+
+package() {
+ make DESTDIR="$pkgdir" PREFIX=/usr install
+ rm -rf "$pkgdir"/usr/lib/libxxhash.a
+}
+
+sha512sums="
+3e3eef21432fe88bc4dd9940ccad0308fdea3537b06fa5ac0e74c1bde53413dff29c8b3fc617a8a42b9ce88fcf213311d338a31b1ce73b3729342c9e68f06c78 xxhash-0.8.2.tar.gz
+"
diff --git a/main/xz/APKBUILD b/main/xz/APKBUILD
index 1e4bd3c428b..aae47c39f3a 100644
--- a/main/xz/APKBUILD
+++ b/main/xz/APKBUILD
@@ -1,21 +1,31 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=xz
-pkgver=5.2.5
-pkgrel=1
+pkgver=5.6.1
+pkgrel=3
pkgdesc="Library and CLI tools for XZ and LZMA compressed files"
-url="https://tukaani.org/xz"
+url="https://xz.tukaani.org/xz-utils/"
arch="all"
-license="GPL-2.0-or-later AND Public-Domain AND LGPL-2.1-or-later"
-subpackages="$pkgname-dev $pkgname-doc $pkgname-libs"
-source="https://tukaani.org/xz/xz-$pkgver.tar.xz
- xzgrep-ZDI-CAN-16587.patch"
+license="GPL-2.0-or-later AND 0BSD AND Public-Domain AND LGPL-2.1-or-later"
+makedepends="autoconf automake libtool gettext-tiny"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+subpackages="$pkgname-static $pkgname-dev $pkgname-doc $pkgname-libs"
+source="https://github.com/tukaani-project/xz/archive/refs/tags/v$pkgver/xz-$pkgver.tar.gz"
# secfixes:
# 5.2.5-r1:
# - CVE-2022-1271
+# 5.6.1-r2:
+# - CVE-2024-3094
+
+prepare() {
+ default_prepare
+ autoreconf -fi
+}
build() {
+ # compression utility
+ CFLAGS="$CFLAGS -O3" \
./configure \
--build=$CBUILD \
--host=$CHOST \
@@ -36,7 +46,10 @@ build() {
}
check() {
- LD_LIBRARY_PATH="$(pwd)/src/liblzma/.libs" make check
+ LD_LIBRARY_PATH="$(pwd)/src/liblzma/.libs" make check || {
+ cat tests/test-suite.log
+ return 1
+ }
}
package() {
@@ -44,6 +57,5 @@ package() {
}
sha512sums="
-59266068a51cb616eb31b67cd8f07ffeb2288d1391c61665ae2ec6814465afac80fec69248f6a2f2db45b44475af001296a99af6a32287226a9c41419173ccbb xz-5.2.5.tar.xz
-52b16268e333399444f433a11ccf3a9b020a6914ed23fc8e082128fec596011d7c6863d47414d4c0f245d20ebed4b3a50b422599b4b88d66f6c6eb2e74b9a939 xzgrep-ZDI-CAN-16587.patch
+6391794eee783302a3f276299fc92df3e81a05dee0eab61cbb8505858da6d535ae2ac5d067f6825d6963b1e4c3d9616039f495f11f99ecec692ccd79ec17ba8d xz-5.6.1.tar.gz
"
diff --git a/main/xz/xzgrep-ZDI-CAN-16587.patch b/main/xz/xzgrep-ZDI-CAN-16587.patch
deleted file mode 100644
index 406ded5903e..00000000000
--- a/main/xz/xzgrep-ZDI-CAN-16587.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From 69d1b3fc29677af8ade8dc15dba83f0589cb63d6 Mon Sep 17 00:00:00 2001
-From: Lasse Collin <lasse.collin@tukaani.org>
-Date: Tue, 29 Mar 2022 19:19:12 +0300
-Subject: [PATCH] xzgrep: Fix escaping of malicious filenames (ZDI-CAN-16587).
-
-Malicious filenames can make xzgrep to write to arbitrary files
-or (with a GNU sed extension) lead to arbitrary code execution.
-
-xzgrep from XZ Utils versions up to and including 5.2.5 are
-affected. 5.3.1alpha and 5.3.2alpha are affected as well.
-This patch works for all of them.
-
-This bug was inherited from gzip's zgrep. gzip 1.12 includes
-a fix for zgrep.
-
-The issue with the old sed script is that with multiple newlines,
-the N-command will read the second line of input, then the
-s-commands will be skipped because it's not the end of the
-file yet, then a new sed cycle starts and the pattern space
-is printed and emptied. So only the last line or two get escaped.
-
-One way to fix this would be to read all lines into the pattern
-space first. However, the included fix is even simpler: All lines
-except the last line get a backslash appended at the end. To ensure
-that shell command substitution doesn't eat a possible trailing
-newline, a colon is appended to the filename before escaping.
-The colon is later used to separate the filename from the grep
-output so it is fine to add it here instead of a few lines later.
-
-The old code also wasn't POSIX compliant as it used \n in the
-replacement section of the s-command. Using \<newline> is the
-POSIX compatible method.
-
-LC_ALL=C was added to the two critical sed commands. POSIX sed
-manual recommends it when using sed to manipulate pathnames
-because in other locales invalid multibyte sequences might
-cause issues with some sed implementations. In case of GNU sed,
-these particular sed scripts wouldn't have such problems but some
-other scripts could have, see:
-
- info '(sed)Locale Considerations'
-
-This vulnerability was discovered by:
-cleemy desu wayo working with Trend Micro Zero Day Initiative
-
-Thanks to Jim Meyering and Paul Eggert discussing the different
-ways to fix this and for coordinating the patch release schedule
-with gzip.
----
- src/scripts/xzgrep.in | 20 ++++++++++++--------
- 1 file changed, 12 insertions(+), 8 deletions(-)
-
-diff --git a/src/scripts/xzgrep.in b/src/scripts/xzgrep.in
-index b180936..e5186ba 100644
---- a/src/scripts/xzgrep.in
-+++ b/src/scripts/xzgrep.in
-@@ -180,22 +180,26 @@ for i; do
- { test $# -eq 1 || test $no_filename -eq 1; }; then
- eval "$grep"
- else
-+ # Append a colon so that the last character will never be a newline
-+ # which would otherwise get lost in shell command substitution.
-+ i="$i:"
-+
-+ # Escape & \ | and newlines only if such characters are present
-+ # (speed optimization).
- case $i in
- (*'
- '* | *'&'* | *'\'* | *'|'*)
-- i=$(printf '%s\n' "$i" |
-- sed '
-- $!N
-- $s/[&\|]/\\&/g
-- $s/\n/\\n/g
-- ');;
-+ i=$(printf '%s\n' "$i" | LC_ALL=C sed 's/[&\|]/\\&/g; $!s/$/\\/');;
- esac
-- sed_script="s|^|$i:|"
-+
-+ # $i already ends with a colon so don't add it here.
-+ sed_script="s|^|$i|"
-
- # Fail if grep or sed fails.
- r=$(
- exec 4>&1
-- (eval "$grep" 4>&-; echo $? >&4) 3>&- | sed "$sed_script" >&3 4>&-
-+ (eval "$grep" 4>&-; echo $? >&4) 3>&- |
-+ LC_ALL=C sed "$sed_script" >&3 4>&-
- ) || r=2
- exit $r
- fi >&3 5>&-
---
-2.35.1
-
diff --git a/main/yajl/APKBUILD b/main/yajl/APKBUILD
index 8007ae3704d..18d80d3dc77 100644
--- a/main/yajl/APKBUILD
+++ b/main/yajl/APKBUILD
@@ -1,41 +1,14 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=yajl
pkgver=2.1.0
-pkgrel=4
+pkgrel=8
pkgdesc="Yet Another JSON Library (YAJL)"
url="https://lloyd.github.io/yajl/"
arch="all"
license="MIT"
makedepends="cmake samurai"
-subpackages="$pkgname-dev $pkgname-tools"
-source="https://dev.alpinelinux.org/archive/yajl/yajl-$pkgver.tar.gz"
-
-# How to create archive from git:
-#
-# abuild snapshot
-#
-
-_gitrepo=yajl.git
-_giturl="git://github.com/lloyd/$_gitrepo"
-_gittag=$pkgver
-
-snapshot() {
- local _tarball=$pkgname-$pkgver.tar.gz
- msg "Creating $_tarball.."
- mkdir -p "$srcdir"
- cd "${SRCDEST:-$srcdir}"
- if ! [ -d "$_gitrepo" ]; then
- git clone --bare $_giturl
- else
- git --git-dir=$_gitrepo fetch
- fi
-
- git --git-dir=$_gitrepo archive --prefix=$pkgname-$pkgver/ \
- -o "$SRCDEST"/$_tarball $_gittag
-
- msg "Uploading $_tarball"
- scp "$SRCDEST"/$_tarball dev.alpinelinux.org:/archive/$pkgname/
-}
+subpackages="$pkgname-static $pkgname-dev $pkgname-tools"
+source="$pkgname-$pkgver-2.tar.gz::https://github.com/lloyd/yajl/archive/refs/tags/$pkgver.tar.gz"
build() {
cmake -B build -G Ninja \
@@ -50,6 +23,7 @@ package() {
mkdir -p "$pkgdir"/usr/lib
mv "$pkgdir"/usr/share/pkgconfig "$pkgdir"/usr/lib/
+ mv "$pkgdir"/usr/lib/libyajl_s.a "$pkgdir"/usr/lib/libyajl.a
}
check() {
@@ -59,11 +33,10 @@ check() {
tools() {
pkgdesc="JSON tools based on Yajl"
- mkdir -p "$subpkgdir"/usr/
- mv "$pkgdir"/usr/bin "$subpkgdir"/usr/
-}
+ amove usr/bin
+}
sha512sums="
-857101d8b99be22bde3c21ec1921ffcbbcd14735ff420728855e064631e6c4c4ceaec40b0e5c8b6d8cba1b36fe1ace0738f8e917e2f992107559b17ddf73de50 yajl-2.1.0.tar.gz
+9e786d080803df80ec03a9c2f447501e6e8e433a6baf636824bc1d50ecf4f5f80d7dfb1d47958aeb0a30fe459bd0ef033d41bc6a79e1dc6e6b5eade930b19b02 yajl-2.1.0-2.tar.gz
"
diff --git a/main/yaml/APKBUILD b/main/yaml/APKBUILD
index 8d94abd41b7..a6a9e5d5383 100644
--- a/main/yaml/APKBUILD
+++ b/main/yaml/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=yaml
pkgver=0.2.5
-pkgrel=0
+pkgrel=2
pkgdesc="YAML 1.1 parser and emitter written in C"
url="https://pyyaml.org/wiki/LibYAML"
arch="all"
@@ -10,6 +10,11 @@ license="MIT"
subpackages="$pkgname-static $pkgname-dev"
source="http://pyyaml.org/download/libyaml/yaml-$pkgver.tar.gz"
+prepare() {
+ default_prepare
+ update_config_sub
+}
+
build() {
./configure \
--build=$CBUILD \
@@ -30,4 +35,6 @@ package() {
make DESTDIR="$pkgdir" install
}
-sha512sums="dadd7d8e0d88b5ebab005e5d521d56d541580198aa497370966b98c904586e642a1cd4f3881094eb57624f218d50db77417bbfd0ffdce50340f011e35e8c4c02 yaml-0.2.5.tar.gz"
+sha512sums="
+dadd7d8e0d88b5ebab005e5d521d56d541580198aa497370966b98c904586e642a1cd4f3881094eb57624f218d50db77417bbfd0ffdce50340f011e35e8c4c02 yaml-0.2.5.tar.gz
+"
diff --git a/main/yash/APKBUILD b/main/yash/APKBUILD
new file mode 100644
index 00000000000..0f91646d967
--- /dev/null
+++ b/main/yash/APKBUILD
@@ -0,0 +1,107 @@
+# Contributor: Jakub Jirutka <jakub@jirutka.cz>
+# Maintainer: Jakub Jirutka <jakub@jirutka.cz>
+pkgname=yash
+pkgver=2.56.1
+pkgrel=0
+pkgdesc="Yet another shell"
+url="https://yash.osdn.jp"
+arch="all"
+license="GPL-2.0-or-later"
+makedepends="ncurses-dev"
+install="
+ $pkgname.post-install
+ $pkgname.pre-deinstall
+ $pkgname.post-upgrade
+ "
+subpackages="$pkgname-doc $pkgname-binsh"
+source="https://github.com/magicant/yash/releases/download/$pkgver/yash-$pkgver.tar.xz
+ default-yashrc.patch
+ sample-yashrc.patch
+ global-yashrc
+ "
+
+_compdir="usr/share/yash/completion"
+
+# Move some bigger completion files to separate subpackages.
+_comps="git:git:git[gkx]:git-*
+ openssh-client:ssh:ssh-*
+ subversion:svn
+ valgrind:valgrind
+ "
+for _i in $_comps; do
+ subpackages="$subpackages ${_i%%:*}-yash-completion:_completion:noarch"
+done
+subpackages="$subpackages $pkgname-completion::noarch"
+
+prepare() {
+ default_prepare
+
+ # XXX: Disable hanging tests.
+ sed -i -e 's/\bkill[24]-p.tst\b//g' \
+ -e 's/\bsignal[12]-y.tst\b//g' \
+ tests/Makefile.in
+
+ # Remove completions for programs that are not available on Alpine
+ # (just to decrease size of the package).
+ cd share/completion
+ rm carthage dnf pgawk useradd
+}
+
+build() {
+ sh ./configure \
+ --prefix=/usr \
+ --mandir=/usr/share/man \
+ --disable-nls
+ make
+}
+
+check() {
+ # FIXME: Fix broken tests.
+ make tests LANG=en_US.UTF-8 || true
+}
+
+package() {
+ make DESTDIR="$pkgdir" install
+ rm -Rf "$pkgdir"/usr/share/man/ja
+
+ install -D -m644 "$srcdir"/global-yashrc "$pkgdir"/etc/yashrc
+}
+
+_completion() {
+ local name="${subpkgname%-yash-completion}"
+ pkgdesc="Yash completions for $name"
+ depends="$pkgname-completion"
+ install_if="$pkgname-completion=$pkgver-r$pkgrel $name"
+
+ local files=$(printf '%s\n' $_comps \
+ | sed -En "s|^$name:(.*)|\1|p" \
+ | tr : ' ')
+ [ "$files" ] || die "$name not found in \$_comps"
+
+ local f; for f in $files; do
+ amove usr/share/yash/completion/$f
+ done
+}
+
+completion() {
+ pkgdesc="$pkgdesc (command-line completion)"
+ depends=""
+
+ amove usr/share/yash/completion
+}
+
+binsh() {
+ pkgdesc="yash as /bin/sh"
+ provides="/bin/sh"
+ provider_priority=50 # lower (other provider is busybox-binsh)
+
+ mkdir -p "$subpkgdir"/bin
+ ln -s /usr/bin/yash "$subpkgdir"/bin/sh
+}
+
+sha512sums="
+28e8bde5fc12e5178136b82ecdc0c52c37c98301245089b0d55c43266880e299237a5522e572883e5c51b7d9a0e9bf94fe265a9ebdbf346c28ff837b0f60cc00 yash-2.56.1.tar.xz
+8fe512d219204ddbbd59d683732c930970db08a23997c88e91035b60fd5141ea813c4d3ab2d7f19fcf6147fca59b085600a904de0c595dd92f24ab63e19ae91d default-yashrc.patch
+ac24612a82a353d65e2e1a6b99727363be62eb7801eae3109c4661d694d82ddd5c9fc1233443e69d8b26abab725eeaac2c4110e26b1b366983b13cbf7699ebf5 sample-yashrc.patch
+778b6a4fa415692293cc9a91074be373572106dc90aeb7490b37643a737f223861f05a7245e4889d8ffea975570f56fd746877726630b9486c481d3159a23e30 global-yashrc
+"
diff --git a/main/yash/default-yashrc.patch b/main/yash/default-yashrc.patch
new file mode 100644
index 00000000000..0d690b2e9cf
--- /dev/null
+++ b/main/yash/default-yashrc.patch
@@ -0,0 +1,25 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Tue, 09 May 2023 02:12:02 +0200
+Subject: [PATCH] Improve default .yashrc
+
+Make it easier to follow.
+
+--- a/share/initialization/default
++++ b/share/initialization/default
+@@ -12,10 +12,12 @@
+ You are seeing this message because a user-specific initialization script is
+ not found at ~/.yashrc. The current session has been loaded with common
+ settings that should be useful for many users. To suppress this message, copy
+-a sample initialization script from ${yashdatadir}/initialization/sample
+-to ~/.yashrc and make any customization in it if you want. For bare default
+-settings, put an empty file at ~/.yashrc. Without ~/.yashrc, you will see this
+-message again next time you start yash.
++a sample init script to ~/.yashrc and make any customization if you want:
++
++ cp ${yashdatadir}/initialization/sample ~/.yashrc
++
++For bare default settings, put an empty file at ~/.yashrc. Without ~/.yashrc,
++you will see this message again next time you start yash.
+
+ For more instructions, see the manual at: https://magicant.github.io/yash/doc/
+
diff --git a/main/yash/global-yashrc b/main/yash/global-yashrc
new file mode 100644
index 00000000000..8b502b81aa4
--- /dev/null
+++ b/main/yash/global-yashrc
@@ -0,0 +1,8 @@
+# Global initialization script for yash
+# Note that it's not loaded implicitly, it must be sourced in ~/.yashrc.
+
+# Ctrl + Left Arrow
+bindkey -e '\^[[1;5D' backward-emacsword
+
+# Ctrl + Rigt Arrow
+bindkey -e '\^[[1;5C' forward-emacsword
diff --git a/main/yash/sample-yashrc.patch b/main/yash/sample-yashrc.patch
new file mode 100644
index 00000000000..2313d745a27
--- /dev/null
+++ b/main/yash/sample-yashrc.patch
@@ -0,0 +1,27 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Tue, 09 May 2023 02:12:02 +0200
+Subject: [PATCH] Improve sample .yashrc
+
+Make yash behave similarly to other shells.
+
+--- a/share/initialization/sample
++++ b/share/initialization/sample
+@@ -2,10 +2,18 @@
+ # This is a sample initialization script for yash. Copy this file to ~/.yashrc
+ # and add your favorite customization to it.
+
++# Load global initialization script, if exists.
++if [ -f /etc/yashrc ]; then
++ . /etc/yashrc
++fi
+
+ # Firstly, load the common customization script.
+ # If you don't like settings applied in this script, remove this line.
+ . --autoload --no-alias initialization/common
++
++if [ -f ~/.profile ]; then
++ . ~/.profile
++fi
+
+ # These are additional aliases that are not defined in the common script.
+ # Uncomment to enable them.
diff --git a/main/yash/yash.post-install b/main/yash/yash.post-install
new file mode 100644
index 00000000000..6e4c5424c48
--- /dev/null
+++ b/main/yash/yash.post-install
@@ -0,0 +1,11 @@
+#!/bin/sh
+
+add-shell '/usr/bin/yash'
+
+cat >&2 <<EOF
+*
+* If you want command completion in yash, install yash-completion.
+*
+EOF
+
+exit 0
diff --git a/main/yash/yash.post-upgrade b/main/yash/yash.post-upgrade
new file mode 100644
index 00000000000..459a74ac1ed
--- /dev/null
+++ b/main/yash/yash.post-upgrade
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+ver_old=$2
+
+if [ "$(apk version -t "$ver_old" '2.53-r1')" = '<' ]; then
+ cat >&2 <<-EOF
+ *
+ * yash no longer depends on yash-completion. To keep using command completion,
+ * run: apk add yash-completion
+ *
+ EOF
+fi
+
+exit 0
diff --git a/main/yash/yash.pre-deinstall b/main/yash/yash.pre-deinstall
new file mode 100644
index 00000000000..7205565ee1b
--- /dev/null
+++ b/main/yash/yash.pre-deinstall
@@ -0,0 +1,3 @@
+#!/bin/sh
+remove-shell '/usr/bin/yash'
+exit 0
diff --git a/main/yasm/74184586228af6c362f970c84fce58da3fcbdec8.patch b/main/yasm/74184586228af6c362f970c84fce58da3fcbdec8.patch
deleted file mode 100644
index 3ec24e6f681..00000000000
--- a/main/yasm/74184586228af6c362f970c84fce58da3fcbdec8.patch
+++ /dev/null
@@ -1,18 +0,0 @@
-commit 74184586228af6c362f970c84fce58da3fcbdec8
-Author: Matt Oliver <protogonoi@gmail.com>
-Date: Tue Apr 4 00:34:47 2017 +1000
-
- fix memory errors when using gas processor with coff object output.
-
-diff --git a/modules/objfmts/coff/coff-objfmt.c b/modules/objfmts/coff/coff-objfmt.c
-index 6fcb0e3c..8f753bfe 100644
---- a/modules/objfmts/coff/coff-objfmt.c
-+++ b/modules/objfmts/coff/coff-objfmt.c
-@@ -290,6 +290,7 @@ coff_common_create(yasm_object *object)
- objfmt_coff->done_prolog = 0;
- objfmt_coff->unwind = NULL;
- objfmt_coff->ssym_imagebase = NULL;
-+ objfmt_coff->def_sym = NULL;
-
- return objfmt_coff;
- }
diff --git a/main/yasm/APKBUILD b/main/yasm/APKBUILD
deleted file mode 100644
index 0178d7cd218..00000000000
--- a/main/yasm/APKBUILD
+++ /dev/null
@@ -1,36 +0,0 @@
-# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
-pkgname=yasm
-pkgver=1.3.0
-pkgrel=2
-pkgdesc="A rewrite of NASM to allow for multiple syntax supported (NASM, TASM, GAS, etc.)"
-url="http://www.tortall.net/projects/yasm/"
-arch="all"
-license="BSD-2-Clause"
-subpackages="$pkgname-dev $pkgname-doc"
-source="http://www.tortall.net/projects/yasm/releases/yasm-$pkgver.tar.gz
- 74184586228af6c362f970c84fce58da3fcbdec8.patch"
-
-prepare() {
- default_prepare
- update_config_sub
-}
-
-build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr
- make
-}
-
-check() {
- make -j1 check
-}
-
-package() {
- make DESTDIR="$pkgdir" install
- install -Dm644 COPYING "$pkgdir"/usr/share/licenses/$pkgname/COPYING
-}
-
-sha512sums="572d3b45568b10f58e48f1188c2d6bcbdd16429c8afaccc8c6d37859b45635e106885d679e41d0bee78c23822108c7ae75aa7475eed5ba58057e0a6fe1b68645 yasm-1.3.0.tar.gz
-e0220f7d29a83fc107dfb134dad29c3246fdaa2bcba4a1182fb93e9fd810c53cc97062771c26ee4a34d5e8dea1feb3094647bdc68b4d45734a062eb8d4afa3d1 74184586228af6c362f970c84fce58da3fcbdec8.patch"
diff --git a/main/yx/APKBUILD b/main/yx/APKBUILD
index 7d591b328bc..1e56c84fe6b 100644
--- a/main/yx/APKBUILD
+++ b/main/yx/APKBUILD
@@ -1,7 +1,7 @@
# Contributor: Jake Buchholz Göktürk <tomalok@gmail.com>
# Maintainer: Jake Buchholz Göktürk <tomalok@gmail.com>
pkgname=yx
-pkgver=1.0.0
+pkgver=1.0.2
pkgrel=0
pkgdesc="A small shell tool that allows extraction of targeted data from YAML"
url="https://gitlab.com/tomalok/yx"
@@ -11,6 +11,7 @@ makedepends="yaml-dev"
source="
yx-$pkgver.tar.gz::https://gitlab.com/tomalok/yx/-/archive/$pkgver/yx-$pkgver.tar.gz
"
+subpackages="$pkgname-doc::noarch"
build() {
make
@@ -25,5 +26,5 @@ package() {
}
sha512sums="
-6243714acefacfa7b6c05f54088d7f8593a95a68662f1124db27ff519ed77a5e6e1f325bbbb1280e3994560bc375a4ae75cc7c76d7f5b0d34f957126766c7862 yx-1.0.0.tar.gz
+bc5f990f4a926bfa70a446d4d8d404c6d51dd36a28d0dc893c32b26543b1364470d5f7f37ee69a246716c021e3b33137393aafffca99e5da62aff2ee43af6eeb yx-1.0.2.tar.gz
"
diff --git a/main/zd1211-firmware/APKBUILD b/main/zd1211-firmware/APKBUILD
index 919e22e79ae..6912ffb2226 100644
--- a/main/zd1211-firmware/APKBUILD
+++ b/main/zd1211-firmware/APKBUILD
@@ -2,28 +2,21 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=zd1211-firmware
pkgver=1.5
-pkgrel=0
+pkgrel=2
pkgdesc="Firmware for ZyDAS ZD1211 USB-WLAN devices supported by the zd1211rw driver"
url="https://sourceforge.net/projects/zd1211/"
arch="noarch"
-license="GPL-2.0"
-depends=""
-depends_dev=""
-makedepends=""
-install=""
-subpackages=""
+license="GPL-2.0-only"
source="https://downloads.sourceforge.net/project/zd1211/zd1211-firmware/$pkgver/zd1211-firmware-$pkgver.tar.bz2"
-
-_builddir="$srcdir"/zd1211-firmware
-build() {
- return 0
-}
+builddir="$srcdir/zd1211-firmware"
+options="!check"
package() {
- cd "$_builddir"
- mkdir -p "$pkgdir"/lib/firmware/zd1211
- cp zd1211_ub zd1211_ur zd1211_uphr zd1211b_ub zd1211b_ur zd1211b_uphr \
- "$pkgdir"/lib/firmware/zd1211/
+ install -Dm644 zd1211_ub zd1211_ur zd1211_uphr \
+ zd1211b_ub zd1211b_ur zd1211b_uphr \
+ -t "$pkgdir"/lib/firmware/zd1211
}
-sha512sums="6a8d39318a8c136b2a780ebeb485a94bbb05fa12ad7104b707314e0108e49939b4dcd0035b19f07dac0ec7bdd12668ea281b48724e512b45ac5df9dedf035897 zd1211-firmware-1.5.tar.bz2"
+sha512sums="
+6a8d39318a8c136b2a780ebeb485a94bbb05fa12ad7104b707314e0108e49939b4dcd0035b19f07dac0ec7bdd12668ea281b48724e512b45ac5df9dedf035897 zd1211-firmware-1.5.tar.bz2
+"
diff --git a/main/zeromq/APKBUILD b/main/zeromq/APKBUILD
index 36e7d0119f8..933b54d7195 100644
--- a/main/zeromq/APKBUILD
+++ b/main/zeromq/APKBUILD
@@ -1,19 +1,23 @@
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=zeromq
-pkgver=4.3.4
-pkgrel=0
+pkgver=4.3.5
+pkgrel=2
pkgdesc="The ZeroMQ messaging library and tools"
url="https://zeromq.org/"
arch="all"
-license="LGPL-3.0-or-later with exceptions"
-makedepends="util-linux-dev libsodium-dev
- perl asciidoc xmlto autoconf automake
- "
-subpackages="libzmq-static $pkgname-dev $pkgname-doc libzmq:libs"
-source="https://github.com/zeromq/libzmq/releases/download/v$pkgver/zeromq-$pkgver.tar.gz
- test-driver.patch
+license="MPL-2.0"
+makedepends="
+ asciidoc
+ cmake
+ libsodium-dev
+ perl
+ samurai
+ util-linux-dev
+ xmlto
"
+subpackages="libzmq-static $pkgname-dev libzmq:libs"
+source="https://github.com/zeromq/libzmq/releases/download/v$pkgver/zeromq-$pkgver.tar.gz"
# secfixes:
# 4.3.3-r0:
@@ -24,24 +28,41 @@ source="https://github.com/zeromq/libzmq/releases/download/v$pkgver/zeromq-$pkgv
# - CVE-2019-6250
build() {
- ./configure \
- --build=$CBUILD \
- --host=$CHOST \
- --prefix=/usr \
- --sysconfdir=/etc \
- --mandir=/usr/share/man \
- --infodir=/usr/share/info \
- --with-libsodium
- make
+ cmake -B build -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_TESTS="$(want_check && echo ON || echo OFF)" \
+ -DBUILD_STATIC=OFF \
+ -DWITH_LIBSODIUM=ON \
+ -DENABLE_CURVE=ON \
+ -DWITH_DOC=OFF
+ cmake --build build
+
+ cmake -B build-static -G Ninja \
+ -DCMAKE_BUILD_TYPE=None \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_TESTS=OFF \
+ -DBUILD_STATIC=ON \
+ -DBUILD_SHARED=OFF \
+ -DWITH_LIBSODIUM=ON \
+ -DWITH_LIBSODIUM_STATIC=ON \
+ -DENABLE_CURVE=ON \
+ -DWITH_DOC=OFF
+ cmake --build build-static
}
check() {
- make check
+ ulimit -n 2048 # Fix test failure on the builders
+ ctest --test-dir build --output-on-failure -E test_security_curve --timeout 300 -j1
}
package() {
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install build
+ install -Dm644 build-static/lib/*.a -t "$pkgdir"/usr/lib
+ # just the readme
+ rm -r "$pkgdir"/usr/share/zmq
}
-sha512sums="e198ef9f82d392754caadd547537666d4fba0afd7d027749b3adae450516bcf284d241d4616cad3cb4ad9af8c10373d456de92dc6d115b037941659f141e7c0e zeromq-4.3.4.tar.gz
-64e4ae2c89469359480743beeb4f1e08976a4c52dbfd2dd33020463df78e927993319e456299682901001e0832ebed85291eea0decc1d27a58de78a6c891e660 test-driver.patch"
+sha512sums="
+a71d48aa977ad8941c1609947d8db2679fc7a951e4cd0c3a1127ae026d883c11bd4203cf315de87f95f5031aec459a731aec34e5ce5b667b8d0559b157952541 zeromq-4.3.5.tar.gz
+"
diff --git a/main/zeromq/test-driver.patch b/main/zeromq/test-driver.patch
deleted file mode 100644
index f8b7fe3898a..00000000000
--- a/main/zeromq/test-driver.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/config/test-driver
-+++ b/config/test-driver
-@@ -104,7 +104,7 @@
- trap "st=143; $do_exit" 15
-
- # Test script is run here.
--"$@" >$log_file 2>&1
-+: "$@" >$log_file 2>&1
- estatus=$?
- if test $enable_hard_errors = no && test $estatus -eq 99; then
- estatus=1
diff --git a/main/zfs-lts/APKBUILD b/main/zfs-lts/APKBUILD
index f5bf9736d00..b0694e68083 100644
--- a/main/zfs-lts/APKBUILD
+++ b/main/zfs-lts/APKBUILD
@@ -3,18 +3,17 @@
# when changing _ver we *must* bump _rel
_name=zfs
-_ver=2.1.5
-_rel=2
-
+_ver=2.2.3
+_rel=0
+# when changing _kver make sure _krel=0 & _rel=0
_flavor=${FLAVOR:-lts}
_kpkg=linux-$_flavor
-_kver=5.15.51
+_kver=6.6.28
_krel=0
_kpkgver="$_kver-r$_krel"
# for custom kernels set $FLAVOR
-_extra_flavors=
case $CARCH in
x86|x86_64|aarch64) _extra_flavors="virt";;
esac
@@ -24,7 +23,7 @@ _kabi="$_kver-$_krel-$_flavor"
pkgname=$_name-$_flavor
pkgver=$_kver
-pkgrel=$(( $_krel + $_rel ))
+pkgrel=$(( _krel + _rel ))
pkgdesc="ZFS Linux kernel modules"
url="https://openzfs.org"
@@ -35,12 +34,18 @@ depends="$_kpkg=$_kpkgver"
depends_dev="glib-dev e2fsprogs-dev util-linux-dev libtirpc-dev
$_kpkg-dev=$_kpkgver"
-makedepends="$depends_dev automake autoconf libtool linux-headers"
+makedepends="$depends_dev linux-headers"
install_if="zfs $_kpkg=$_kpkgver"
subpackages="$pkgname-dev"
source="https://github.com/openzfs/zfs/releases/download/zfs-$_ver/zfs-$_ver.tar.gz
+ aarch64-disable-neon.patch
"
builddir="$srcdir/$_name-$_ver"
+options="!check"
+
+# secfixes:
+# 2.2.1-r1:
+# - CVE-2023-49298
for f in $_extra_flavors; do
makedepends="$makedepends linux-$f-dev=$_kpkgver"
@@ -59,11 +64,9 @@ prepare() {
return 0
)
fi
- autoreconf -vif
}
build() {
- cd "$builddir"
local flavor= kabi=
for flavor in $_flavor $_extra_flavors; do
kabi="$_kver-$_krel-$flavor"
@@ -84,7 +87,6 @@ build() {
}
package() {
- cd "$builddir"
local flavor= kabi=
for flavor in $_flavor $_extra_flavors; do
kabi="$_kver-$_krel-$flavor"
@@ -110,5 +112,6 @@ dev() {
}
sha512sums="
-d9ccf1049cefa9167d25f71fbdca70092cd02368b60f09341e6489fb68dc5f89e87b026b0191f4d81181a8851449124d824a1d959d0e2fb29c8a3d624edc4f03 zfs-2.1.5.tar.gz
+e6c3df531a33f4bd198429e61b7630f1e965a03fd60d1b847bdf0d55c6d2af3abc38b5e8a63aa9ef9f969cc7eca36cb24a7641f6fb8c41ef2fa024d76cd28f3d zfs-2.2.3.tar.gz
+18966558e213b7516d3359884ced72618956db401cac32306662fa6304d3e31a28b030adcc8678704a30e6bbdee28120b2c6125e8285afacbb11a1645b39695a aarch64-disable-neon.patch
"
diff --git a/main/zfs-lts/aarch64-disable-neon.patch b/main/zfs-lts/aarch64-disable-neon.patch
new file mode 100644
index 00000000000..59838b80086
--- /dev/null
+++ b/main/zfs-lts/aarch64-disable-neon.patch
@@ -0,0 +1,158 @@
+ERROR: modpost: GPL-incompatible module zfs.ko uses GPL-only symbol 'kernel_neon_begin'
+ERROR: modpost: GPL-incompatible module zfs.ko uses GPL-only symbol 'kernel_neon_end'
+
+There is no way around this so just disable all zfs kernel SIMD on aarch64
+for the time being.
+
+diff --git a/include/os/linux/kernel/linux/simd.h b/include/os/linux/kernel/linux/simd.h
+index f4376b2..02f8110 100644
+--- a/include/os/linux/kernel/linux/simd.h
++++ b/include/os/linux/kernel/linux/simd.h
+@@ -31,9 +31,6 @@
+ #elif defined(__arm__)
+ #include <linux/simd_arm.h>
+
+-#elif defined(__aarch64__)
+-#include <linux/simd_aarch64.h>
+-
+ #elif defined(__powerpc__)
+ #include <linux/simd_powerpc.h>
+
+diff --git a/module/Kbuild.in b/module/Kbuild.in
+index 4395938..dc991b6 100644
+--- a/module/Kbuild.in
++++ b/module/Kbuild.in
+@@ -170,7 +170,6 @@ zfs-$(CONFIG_X86) += $(addprefix icp/,$(ICP_OBJS_X86))
+ zfs-$(CONFIG_UML_X86)+= $(addprefix icp/,$(ICP_OBJS_X86))
+ zfs-$(CONFIG_X86_64) += $(addprefix icp/,$(ICP_OBJS_X86_64))
+ zfs-$(CONFIG_ARM) += $(addprefix icp/,$(ICP_OBJS_ARM))
+-zfs-$(CONFIG_ARM64) += $(addprefix icp/,$(ICP_OBJS_ARM64))
+ zfs-$(CONFIG_PPC) += $(addprefix icp/,$(ICP_OBJS_PPC_PPC64))
+ zfs-$(CONFIG_PPC64) += $(addprefix icp/,$(ICP_OBJS_PPC_PPC64))
+
+@@ -258,7 +257,6 @@ ZCOMMON_OBJS_ARM64 := \
+ zfs-objs += $(addprefix zcommon/,$(ZCOMMON_OBJS))
+ zfs-$(CONFIG_X86) += $(addprefix zcommon/,$(ZCOMMON_OBJS_X86))
+ zfs-$(CONFIG_UML_X86)+= $(addprefix zcommon/,$(ZCOMMON_OBJS_X86))
+-zfs-$(CONFIG_ARM64) += $(addprefix zcommon/,$(ZCOMMON_OBJS_ARM64))
+
+
+ # Zstd uses -O3 by default, so we should follow
+@@ -485,7 +483,6 @@ ZFS_OBJS_PPC_PPC64 := \
+ zfs-objs += $(addprefix zfs/,$(ZFS_OBJS)) $(addprefix os/linux/zfs/,$(ZFS_OBJS_OS))
+ zfs-$(CONFIG_X86) += $(addprefix zfs/,$(ZFS_OBJS_X86))
+ zfs-$(CONFIG_UML_X86)+= $(addprefix zfs/,$(ZFS_OBJS_X86))
+-zfs-$(CONFIG_ARM64) += $(addprefix zfs/,$(ZFS_OBJS_ARM64))
+ zfs-$(CONFIG_PPC) += $(addprefix zfs/,$(ZFS_OBJS_PPC_PPC64))
+ zfs-$(CONFIG_PPC64) += $(addprefix zfs/,$(ZFS_OBJS_PPC_PPC64))
+
+diff --git a/module/icp/algs/blake3/blake3_impl.c b/module/icp/algs/blake3/blake3_impl.c
+index f3f48c2..df02487 100644
+--- a/module/icp/algs/blake3/blake3_impl.c
++++ b/module/icp/algs/blake3/blake3_impl.c
+@@ -30,7 +30,7 @@
+
+ #include "blake3_impl.h"
+
+-#if defined(__aarch64__) || \
++#if 0 || \
+ (defined(__x86_64) && defined(HAVE_SSE2)) || \
+ (defined(__PPC64__) && defined(__LITTLE_ENDIAN__))
+
+@@ -96,7 +96,7 @@ const blake3_ops_t blake3_sse2_impl = {
+ };
+ #endif
+
+-#if defined(__aarch64__) || \
++#if 0 || \
+ (defined(__x86_64) && defined(HAVE_SSE2)) || \
+ (defined(__PPC64__) && defined(__LITTLE_ENDIAN__))
+
+@@ -257,12 +257,12 @@ extern const blake3_ops_t blake3_generic_impl;
+
+ static const blake3_ops_t *const blake3_impls[] = {
+ &blake3_generic_impl,
+-#if defined(__aarch64__) || \
++#if 0 || \
+ (defined(__x86_64) && defined(HAVE_SSE2)) || \
+ (defined(__PPC64__) && defined(__LITTLE_ENDIAN__))
+ &blake3_sse2_impl,
+ #endif
+-#if defined(__aarch64__) || \
++#if 0 || \
+ (defined(__x86_64) && defined(HAVE_SSE4_1)) || \
+ (defined(__PPC64__) && defined(__LITTLE_ENDIAN__))
+ &blake3_sse41_impl,
+diff --git a/module/icp/algs/sha2/sha256_impl.c b/module/icp/algs/sha2/sha256_impl.c
+index 01ce5cb..69f8233 100644
+--- a/module/icp/algs/sha2/sha256_impl.c
++++ b/module/icp/algs/sha2/sha256_impl.c
+@@ -118,7 +118,7 @@ const sha256_ops_t sha256_shani_impl = {
+ };
+ #endif
+
+-#elif defined(__aarch64__) || (defined(__arm__) && __ARM_ARCH > 6)
++#elif (defined(__aarch64__) && 0) || (defined(__arm__) && __ARM_ARCH > 6)
+ static boolean_t sha256_have_neon(void)
+ {
+ return (kfpu_allowed() && zfs_neon_available());
+@@ -192,7 +192,7 @@ static const sha256_ops_t *const sha256_impls[] = {
+ #if defined(__x86_64) && defined(HAVE_SSE4_1)
+ &sha256_shani_impl,
+ #endif
+-#if defined(__aarch64__) || (defined(__arm__) && __ARM_ARCH > 6)
++#if 0 || (defined(__arm__) && __ARM_ARCH > 6)
+ &sha256_armv7_impl,
+ &sha256_neon_impl,
+ &sha256_armv8_impl,
+diff --git a/module/icp/algs/sha2/sha512_impl.c b/module/icp/algs/sha2/sha512_impl.c
+index 27b35a6..23f5ea5 100644
+--- a/module/icp/algs/sha2/sha512_impl.c
++++ b/module/icp/algs/sha2/sha512_impl.c
+@@ -88,7 +88,7 @@ const sha512_ops_t sha512_avx2_impl = {
+ };
+ #endif
+
+-#elif defined(__aarch64__)
++#elif defined(__aarch64__) && 0
+ extern void zfs_sha512_block_armv7(uint64_t s[8], const void *, size_t);
+ const sha512_ops_t sha512_armv7_impl = {
+ .is_supported = sha2_is_supported,
+@@ -164,7 +164,7 @@ static const sha512_ops_t *const sha512_impls[] = {
+ #if defined(__x86_64) && defined(HAVE_AVX2)
+ &sha512_avx2_impl,
+ #endif
+-#if defined(__aarch64__)
++#if 0
+ &sha512_armv7_impl,
+ &sha512_armv8_impl,
+ #endif
+diff --git a/module/zcommon/zfs_fletcher.c b/module/zcommon/zfs_fletcher.c
+index 619ddef..39dbd65 100644
+--- a/module/zcommon/zfs_fletcher.c
++++ b/module/zcommon/zfs_fletcher.c
+@@ -188,9 +188,6 @@ static const fletcher_4_ops_t *fletcher_4_impls[] = {
+ #if defined(__x86_64) && defined(HAVE_AVX512BW)
+ &fletcher_4_avx512bw_ops,
+ #endif
+-#if defined(__aarch64__) && !defined(__FreeBSD__)
+- &fletcher_4_aarch64_neon_ops,
+-#endif
+ };
+
+ /* Hold all supported implementations */
+diff --git a/module/zfs/vdev_raidz_math.c b/module/zfs/vdev_raidz_math.c
+index e12b961..62c0063 100644
+--- a/module/zfs/vdev_raidz_math.c
++++ b/module/zfs/vdev_raidz_math.c
+@@ -61,10 +61,6 @@ static const raidz_impl_ops_t *const raidz_all_maths[] = {
+ #if defined(__x86_64) && defined(HAVE_AVX512BW) /* only x86_64 for now */
+ &vdev_raidz_avx512bw_impl,
+ #endif
+-#if defined(__aarch64__) && !defined(__FreeBSD__)
+- &vdev_raidz_aarch64_neon_impl,
+- &vdev_raidz_aarch64_neonx2_impl,
+-#endif
+ #if defined(__powerpc__) && defined(__altivec__)
+ &vdev_raidz_powerpc_altivec_impl,
+ #endif
diff --git a/main/zfs-rpi/APKBUILD b/main/zfs-rpi/APKBUILD
index cc67292af06..61f86b20ffc 100644
--- a/main/zfs-rpi/APKBUILD
+++ b/main/zfs-rpi/APKBUILD
@@ -3,21 +3,20 @@
# when changing _ver we *must* bump _rel
_name=zfs
-_ver=2.1.5
-_rel=2
-
+_ver=2.2.3
+_rel=3
+# when changing _kver/_krel make sure _rel=0
_flavor=${FLAVOR:-rpi}
_kpkg=linux-$_flavor
-_kver=5.15.51
+_kver=6.6.21
_krel=0
_kpkgver="$_kver-r$_krel"
# for custom kernels set $FLAVOR
-_extra_flavors=
case $CARCH in
- armhf|armv7) _extra_flavors="rpi2";;
- aarch64) _extra_flavors="rpi4";;
+ armhf|armv7) _extra_flavors="";;
+ aarch64) _extra_flavors="";;
esac
_kpkg=linux-$_flavor
@@ -25,21 +24,29 @@ _kabi="$_kver-$_krel-$_flavor"
pkgname=$_name-$_flavor
pkgver=$_kver
-pkgrel=$(( $_krel + $_rel ))
+pkgrel=$(( _krel + _rel ))
pkgdesc="ZFS Linux kernel modules"
url="https://openzfs.org"
-arch="aarch64 armhf armv7"
+# armhf: NEON SIMD not available in BCM2835 (rpi1 & rpiZ)
+arch="aarch64 armv7"
license="CDDL-1.0"
depends="$_kpkg=$_kpkgver"
depends_dev="glib-dev e2fsprogs-dev util-linux-dev libtirpc-dev
$_kpkg-dev=$_kpkgver"
-makedepends="$depends_dev automake autoconf libtool linux-headers xz"
+makedepends="$depends_dev linux-headers xz"
install_if="zfs $_kpkg=$_kpkgver"
subpackages="$pkgname-dev"
-source="https://github.com/openzfs/zfs/releases/download/zfs-$_ver/zfs-$_ver.tar.gz"
+source="https://github.com/openzfs/zfs/releases/download/zfs-$_ver/zfs-$_ver.tar.gz
+ aarch64-disable-neon.patch
+ "
builddir="$srcdir/$_name-$_ver"
+options="!check"
+
+# secfixes:
+# 2.2.1-r1:
+# - CVE-2023-49298
for f in $_extra_flavors; do
makedepends="$makedepends linux-$f-dev=$_kpkgver"
@@ -58,11 +65,9 @@ prepare() {
return 0
)
fi
- autoreconf -vif
}
build() {
- cd "$builddir"
local flavor= kabi=
for flavor in $_flavor $_extra_flavors; do
kabi="$_kver-$_krel-$flavor"
@@ -83,7 +88,6 @@ build() {
}
package() {
- cd "$builddir"
local flavor= kabi=
for flavor in $_flavor $_extra_flavors; do
kabi="$_kver-$_krel-$flavor"
@@ -109,5 +113,6 @@ dev() {
}
sha512sums="
-d9ccf1049cefa9167d25f71fbdca70092cd02368b60f09341e6489fb68dc5f89e87b026b0191f4d81181a8851449124d824a1d959d0e2fb29c8a3d624edc4f03 zfs-2.1.5.tar.gz
+e6c3df531a33f4bd198429e61b7630f1e965a03fd60d1b847bdf0d55c6d2af3abc38b5e8a63aa9ef9f969cc7eca36cb24a7641f6fb8c41ef2fa024d76cd28f3d zfs-2.2.3.tar.gz
+18966558e213b7516d3359884ced72618956db401cac32306662fa6304d3e31a28b030adcc8678704a30e6bbdee28120b2c6125e8285afacbb11a1645b39695a aarch64-disable-neon.patch
"
diff --git a/main/zfs-rpi/aarch64-disable-neon.patch b/main/zfs-rpi/aarch64-disable-neon.patch
new file mode 100644
index 00000000000..59838b80086
--- /dev/null
+++ b/main/zfs-rpi/aarch64-disable-neon.patch
@@ -0,0 +1,158 @@
+ERROR: modpost: GPL-incompatible module zfs.ko uses GPL-only symbol 'kernel_neon_begin'
+ERROR: modpost: GPL-incompatible module zfs.ko uses GPL-only symbol 'kernel_neon_end'
+
+There is no way around this so just disable all zfs kernel SIMD on aarch64
+for the time being.
+
+diff --git a/include/os/linux/kernel/linux/simd.h b/include/os/linux/kernel/linux/simd.h
+index f4376b2..02f8110 100644
+--- a/include/os/linux/kernel/linux/simd.h
++++ b/include/os/linux/kernel/linux/simd.h
+@@ -31,9 +31,6 @@
+ #elif defined(__arm__)
+ #include <linux/simd_arm.h>
+
+-#elif defined(__aarch64__)
+-#include <linux/simd_aarch64.h>
+-
+ #elif defined(__powerpc__)
+ #include <linux/simd_powerpc.h>
+
+diff --git a/module/Kbuild.in b/module/Kbuild.in
+index 4395938..dc991b6 100644
+--- a/module/Kbuild.in
++++ b/module/Kbuild.in
+@@ -170,7 +170,6 @@ zfs-$(CONFIG_X86) += $(addprefix icp/,$(ICP_OBJS_X86))
+ zfs-$(CONFIG_UML_X86)+= $(addprefix icp/,$(ICP_OBJS_X86))
+ zfs-$(CONFIG_X86_64) += $(addprefix icp/,$(ICP_OBJS_X86_64))
+ zfs-$(CONFIG_ARM) += $(addprefix icp/,$(ICP_OBJS_ARM))
+-zfs-$(CONFIG_ARM64) += $(addprefix icp/,$(ICP_OBJS_ARM64))
+ zfs-$(CONFIG_PPC) += $(addprefix icp/,$(ICP_OBJS_PPC_PPC64))
+ zfs-$(CONFIG_PPC64) += $(addprefix icp/,$(ICP_OBJS_PPC_PPC64))
+
+@@ -258,7 +257,6 @@ ZCOMMON_OBJS_ARM64 := \
+ zfs-objs += $(addprefix zcommon/,$(ZCOMMON_OBJS))
+ zfs-$(CONFIG_X86) += $(addprefix zcommon/,$(ZCOMMON_OBJS_X86))
+ zfs-$(CONFIG_UML_X86)+= $(addprefix zcommon/,$(ZCOMMON_OBJS_X86))
+-zfs-$(CONFIG_ARM64) += $(addprefix zcommon/,$(ZCOMMON_OBJS_ARM64))
+
+
+ # Zstd uses -O3 by default, so we should follow
+@@ -485,7 +483,6 @@ ZFS_OBJS_PPC_PPC64 := \
+ zfs-objs += $(addprefix zfs/,$(ZFS_OBJS)) $(addprefix os/linux/zfs/,$(ZFS_OBJS_OS))
+ zfs-$(CONFIG_X86) += $(addprefix zfs/,$(ZFS_OBJS_X86))
+ zfs-$(CONFIG_UML_X86)+= $(addprefix zfs/,$(ZFS_OBJS_X86))
+-zfs-$(CONFIG_ARM64) += $(addprefix zfs/,$(ZFS_OBJS_ARM64))
+ zfs-$(CONFIG_PPC) += $(addprefix zfs/,$(ZFS_OBJS_PPC_PPC64))
+ zfs-$(CONFIG_PPC64) += $(addprefix zfs/,$(ZFS_OBJS_PPC_PPC64))
+
+diff --git a/module/icp/algs/blake3/blake3_impl.c b/module/icp/algs/blake3/blake3_impl.c
+index f3f48c2..df02487 100644
+--- a/module/icp/algs/blake3/blake3_impl.c
++++ b/module/icp/algs/blake3/blake3_impl.c
+@@ -30,7 +30,7 @@
+
+ #include "blake3_impl.h"
+
+-#if defined(__aarch64__) || \
++#if 0 || \
+ (defined(__x86_64) && defined(HAVE_SSE2)) || \
+ (defined(__PPC64__) && defined(__LITTLE_ENDIAN__))
+
+@@ -96,7 +96,7 @@ const blake3_ops_t blake3_sse2_impl = {
+ };
+ #endif
+
+-#if defined(__aarch64__) || \
++#if 0 || \
+ (defined(__x86_64) && defined(HAVE_SSE2)) || \
+ (defined(__PPC64__) && defined(__LITTLE_ENDIAN__))
+
+@@ -257,12 +257,12 @@ extern const blake3_ops_t blake3_generic_impl;
+
+ static const blake3_ops_t *const blake3_impls[] = {
+ &blake3_generic_impl,
+-#if defined(__aarch64__) || \
++#if 0 || \
+ (defined(__x86_64) && defined(HAVE_SSE2)) || \
+ (defined(__PPC64__) && defined(__LITTLE_ENDIAN__))
+ &blake3_sse2_impl,
+ #endif
+-#if defined(__aarch64__) || \
++#if 0 || \
+ (defined(__x86_64) && defined(HAVE_SSE4_1)) || \
+ (defined(__PPC64__) && defined(__LITTLE_ENDIAN__))
+ &blake3_sse41_impl,
+diff --git a/module/icp/algs/sha2/sha256_impl.c b/module/icp/algs/sha2/sha256_impl.c
+index 01ce5cb..69f8233 100644
+--- a/module/icp/algs/sha2/sha256_impl.c
++++ b/module/icp/algs/sha2/sha256_impl.c
+@@ -118,7 +118,7 @@ const sha256_ops_t sha256_shani_impl = {
+ };
+ #endif
+
+-#elif defined(__aarch64__) || (defined(__arm__) && __ARM_ARCH > 6)
++#elif (defined(__aarch64__) && 0) || (defined(__arm__) && __ARM_ARCH > 6)
+ static boolean_t sha256_have_neon(void)
+ {
+ return (kfpu_allowed() && zfs_neon_available());
+@@ -192,7 +192,7 @@ static const sha256_ops_t *const sha256_impls[] = {
+ #if defined(__x86_64) && defined(HAVE_SSE4_1)
+ &sha256_shani_impl,
+ #endif
+-#if defined(__aarch64__) || (defined(__arm__) && __ARM_ARCH > 6)
++#if 0 || (defined(__arm__) && __ARM_ARCH > 6)
+ &sha256_armv7_impl,
+ &sha256_neon_impl,
+ &sha256_armv8_impl,
+diff --git a/module/icp/algs/sha2/sha512_impl.c b/module/icp/algs/sha2/sha512_impl.c
+index 27b35a6..23f5ea5 100644
+--- a/module/icp/algs/sha2/sha512_impl.c
++++ b/module/icp/algs/sha2/sha512_impl.c
+@@ -88,7 +88,7 @@ const sha512_ops_t sha512_avx2_impl = {
+ };
+ #endif
+
+-#elif defined(__aarch64__)
++#elif defined(__aarch64__) && 0
+ extern void zfs_sha512_block_armv7(uint64_t s[8], const void *, size_t);
+ const sha512_ops_t sha512_armv7_impl = {
+ .is_supported = sha2_is_supported,
+@@ -164,7 +164,7 @@ static const sha512_ops_t *const sha512_impls[] = {
+ #if defined(__x86_64) && defined(HAVE_AVX2)
+ &sha512_avx2_impl,
+ #endif
+-#if defined(__aarch64__)
++#if 0
+ &sha512_armv7_impl,
+ &sha512_armv8_impl,
+ #endif
+diff --git a/module/zcommon/zfs_fletcher.c b/module/zcommon/zfs_fletcher.c
+index 619ddef..39dbd65 100644
+--- a/module/zcommon/zfs_fletcher.c
++++ b/module/zcommon/zfs_fletcher.c
+@@ -188,9 +188,6 @@ static const fletcher_4_ops_t *fletcher_4_impls[] = {
+ #if defined(__x86_64) && defined(HAVE_AVX512BW)
+ &fletcher_4_avx512bw_ops,
+ #endif
+-#if defined(__aarch64__) && !defined(__FreeBSD__)
+- &fletcher_4_aarch64_neon_ops,
+-#endif
+ };
+
+ /* Hold all supported implementations */
+diff --git a/module/zfs/vdev_raidz_math.c b/module/zfs/vdev_raidz_math.c
+index e12b961..62c0063 100644
+--- a/module/zfs/vdev_raidz_math.c
++++ b/module/zfs/vdev_raidz_math.c
+@@ -61,10 +61,6 @@ static const raidz_impl_ops_t *const raidz_all_maths[] = {
+ #if defined(__x86_64) && defined(HAVE_AVX512BW) /* only x86_64 for now */
+ &vdev_raidz_avx512bw_impl,
+ #endif
+-#if defined(__aarch64__) && !defined(__FreeBSD__)
+- &vdev_raidz_aarch64_neon_impl,
+- &vdev_raidz_aarch64_neonx2_impl,
+-#endif
+ #if defined(__powerpc__) && defined(__altivec__)
+ &vdev_raidz_powerpc_altivec_impl,
+ #endif
diff --git a/main/zfs/APKBUILD b/main/zfs/APKBUILD
index 2eeb75236dd..a77b75f35a7 100644
--- a/main/zfs/APKBUILD
+++ b/main/zfs/APKBUILD
@@ -1,28 +1,54 @@
# Contributor: Carlo Landmeter <clandmeter@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=zfs
-pkgver=2.1.5
-pkgrel=0
+pkgver=2.2.3
+pkgrel=1
pkgdesc="Advanced filesystem and volume manager"
url="https://openzfs.org"
arch="all"
license="CDDL-1.0"
provides="spl=$pkgver-r$pkgrel" # Mitigate upgrade conflicts
-depends_dev="attr-dev e2fsprogs-dev glib-dev libtirpc-dev openssl1.1-compat-dev util-linux-dev"
-makedepends="$depends_dev automake autoconf libtool linux-headers python3-dev py3-cffi py3-setuptools"
+depends_dev="
+ attr-dev
+ e2fsprogs-dev
+ glib-dev
+ libtirpc-dev
+ openssl-dev>3
+ "
+makedepends="
+ $depends_dev
+ linux-headers
+ py3-cffi
+ py3-distlib
+ py3-setuptools
+ python3-dev
+ util-linux-dev
+ "
options="!check" # need to be run on live system w/ ZFS loaded.
-subpackages="$pkgname-dev $pkgname-doc $pkgname-openrc $pkgname-libs $pkgname-dracut::noarch
- $pkgname-udev $pkgname-scripts $pkgname-utils-py:utils_py:noarch py3-pyzfs:pyzfs:noarch"
+subpackages="
+ $pkgname-bash-completion
+ $pkgname-dev
+ $pkgname-doc
+ $pkgname-dracut::noarch
+ $pkgname-libs
+ $pkgname-openrc
+ $pkgname-scripts
+ $pkgname-udev
+ $pkgname-utils-py:utils_py:noarch
+ py3-pyzfs-pyc
+ py3-pyzfs:pyzfs:noarch
+ "
source="https://github.com/openzfs/zfs/releases/download/zfs-$pkgver/zfs-$pkgver.tar.gz
- dont-fsck-or-mount-umount-fstab-entries.patch
+ alpine-bash-completion-dir.patch
"
-prepare() {
- default_prepare
- autoreconf -vif
-}
+# secfixes:
+# 2.2.1-r1:
+# - CVE-2023-49298
build() {
+ export CFLAGS="$CFLAGS -fno-tree-vectorize"
+ export CXXFLAGS="$CXXFLAGS -fno-tree-vectorize"
export LIBS="$LIBS -lintl"
./configure --prefix=/usr \
--with-tirpc \
@@ -49,40 +75,40 @@ package() {
dracut() {
pkgdesc="$pkgdesc (dracut)"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/dracut "$subpkgdir"/usr/lib
+ install_if="$pkgname=$pkgver-r$pkgrel dracut-modules"
+
+ amove usr/lib/dracut
}
udev() {
pkgdesc="$pkgdesc (udev)"
- mkdir -p "$subpkgdir"/lib
- mv "$pkgdir"/lib/udev "$subpkgdir"/lib
+
+ amove lib/udev
}
scripts() {
pkgdesc="$pkgdesc (scripts)"
- mkdir -p "$subpkgdir"/usr/share
- mv "$pkgdir"/usr/share/zfs "$subpkgdir"/usr/share
+
+ amove usr/share/zfs
}
utils_py() {
pkgdesc="$pkgdesc (python utils)"
depends="python3"
- mkdir -p "$subpkgdir"/usr/bin
- local file
- for file in arc_summary arcstat dbufstat; do
- mv "$pkgdir"/usr/bin/$file "$subpkgdir"/usr/bin
- done
+
+ amove usr/bin/arc_summary
+ amove usr/bin/arcstat
+ amove usr/bin/dbufstat
}
pyzfs() {
pkgdesc="$pkgdesc (Python lib to interact with ZFS)"
depends="python3 $pkgname"
- mkdir -p "$subpkgdir"/usr/lib
- mv "$pkgdir"/usr/lib/python* "$subpkgdir"/usr/lib
+
+ amove usr/lib/python3*
}
sha512sums="
-d9ccf1049cefa9167d25f71fbdca70092cd02368b60f09341e6489fb68dc5f89e87b026b0191f4d81181a8851449124d824a1d959d0e2fb29c8a3d624edc4f03 zfs-2.1.5.tar.gz
-3c2ffea6a6ea05a9953b965989198801d3528f281f9099401836fbdcdbae4f439ae65e3e68096ca7d9de7c39681aca3aa9cd71885fe14cfe17539fdd744a9925 dont-fsck-or-mount-umount-fstab-entries.patch
+e6c3df531a33f4bd198429e61b7630f1e965a03fd60d1b847bdf0d55c6d2af3abc38b5e8a63aa9ef9f969cc7eca36cb24a7641f6fb8c41ef2fa024d76cd28f3d zfs-2.2.3.tar.gz
+93f7aa5ccaa2d75093930914b291c0b030db5cca813e8cce179e24fc4a76cdeb236e63a9e51b4074dbeb896af1783766e02e4d4aa6134c2a1f1a1fd8fd15ba97 alpine-bash-completion-dir.patch
"
diff --git a/main/zfs/alpine-bash-completion-dir.patch b/main/zfs/alpine-bash-completion-dir.patch
new file mode 100644
index 00000000000..f740f8f951c
--- /dev/null
+++ b/main/zfs/alpine-bash-completion-dir.patch
@@ -0,0 +1,10 @@
+--- a/configure
++++ b/configure
+@@ -136424,6 +136424,7 @@ printf "%s\n" "no" >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking default bash completion directory" >&5
+ printf %s "checking default bash completion directory... " >&6; }
+ case "$VENDOR" in
++ alpine) bashcompletiondir=/usr/share/bash-completion/completions ;;
+ ubuntu) bashcompletiondir=/usr/share/bash-completion/completions ;;
+ debian) bashcompletiondir=/usr/share/bash-completion/completions ;;
+ freebsd) bashcompletiondir=$sysconfdir/bash_completion.d;;
diff --git a/main/zfs/dont-fsck-or-mount-umount-fstab-entries.patch b/main/zfs/dont-fsck-or-mount-umount-fstab-entries.patch
deleted file mode 100644
index 238516ce4f5..00000000000
--- a/main/zfs/dont-fsck-or-mount-umount-fstab-entries.patch
+++ /dev/null
@@ -1,98 +0,0 @@
---- a/etc/init.d/zfs-mount.in
-+++ b/etc/init.d/zfs-mount.in
-@@ -70,50 +70,6 @@ do_mount()
- zfs_action "Mounting ZFS filesystem(s)" \
- "$ZFS" mount -a$verbose$overlay "$MOUNT_EXTRA_OPTIONS"
-
-- # Require each volume/filesystem to have 'noauto' and no fsck
-- # option. This shouldn't really be necessary, as long as one
-- # can get zfs-import to run sufficiently early on in the boot
-- # process - before local mounts. This is just here in case/if
-- # this isn't possible.
-- check_boolean "$VERBOSE_MOUNT" && \
-- zfs_log_begin_msg "Mounting volumes and filesystems registered in fstab"
--
-- read_mtab "^/dev/(zd|zvol)"
-- read_fstab "^/dev/(zd|zvol)"
-- i=0; var="FSTAB_0"
-- while [ -n "$(eval echo "\$$var")" ]
-- do
-- mntpt=$(eval echo "\$$var")
-- dev=$(eval echo "\$FSTAB_dev_$i")
-- if ! in_mtab "$mntpt" && ! is_mounted "$mntpt" && [ -e "$dev" ]
-- then
-- check_boolean "$VERBOSE_MOUNT" && \
-- zfs_log_progress_msg "$mntpt "
-- fsck "$dev" && mount "$mntpt"
-- fi
--
-- i=$((i + 1))
-- var=$(eval echo "FSTAB_$i")
-- done
--
-- read_mtab "[[:space:]]zfs[[:space:]]"
-- read_fstab "[[:space:]]zfs[[:space:]]"
-- i=0; var=$(eval echo "FSTAB_$i")
-- while [ -n "$(eval echo "\$$var")" ]
-- do
-- mntpt=$(eval echo "\$$var")
-- if ! in_mtab "$mntpt" && ! is_mounted "$mntpt"
-- then
-- check_boolean "$VERBOSE_MOUNT" && \
-- zfs_log_progress_msg "$mntpt "
-- mount "$mntpt"
-- fi
--
-- i=$((i + 1))
-- var=$(eval echo "FSTAB_$i")
-- done
-- check_boolean "$VERBOSE_MOUNT" && zfs_log_end_msg 0
--
- return 0
- }
-
-@@ -128,44 +84,6 @@ do_unmount()
- # this isn't possible.
- zfs_action "Unmounting ZFS filesystems" "$ZFS" unmount -a
-
-- check_boolean "$VERBOSE_MOUNT" && \
-- zfs_log_begin_msg "Unmounting volumes and filesystems registered in fstab"
--
-- read_mtab "^/dev/(zd|zvol)"
-- read_fstab "^/dev/(zd|zvol)"
-- i=0; var="FSTAB_0"
-- while [ -n "$(eval echo "\$$var")" ]
-- do
-- mntpt=$(eval echo "\$$var")
-- dev=$(eval echo "\$FSTAB_dev_$i")
-- if in_mtab "$mntpt"
-- then
-- check_boolean "$VERBOSE_MOUNT" && \
-- zfs_log_progress_msg "$mntpt "
-- umount "$mntpt"
-- fi
--
-- i=$((i + 1))
-- var=$(eval echo "FSTAB_$i")
-- done
--
-- read_mtab "[[:space:]]zfs[[:space:]]"
-- read_fstab "[[:space:]]zfs[[:space:]]"
-- i=0; var="FSTAB_0"
-- while [ -n "$(eval echo "\$$var")" ]
-- do
-- mntpt=$(eval echo "\$$var")
-- if in_mtab "$mntpt"; then
-- check_boolean "$VERBOSE_MOUNT" && \
-- zfs_log_progress_msg "$mntpt "
-- umount "$mntpt"
-- fi
--
-- i=$((i + 1))
-- var=$(eval echo "FSTAB_$i")
-- done
-- check_boolean "$VERBOSE_MOUNT" && zfs_log_end_msg 0
--
- return 0
- }
-
diff --git a/main/zip/APKBUILD b/main/zip/APKBUILD
index 85413b74c5c..ff3c0d1d993 100644
--- a/main/zip/APKBUILD
+++ b/main/zip/APKBUILD
@@ -2,36 +2,38 @@
pkgname=zip
pkgver=3.0
_pkgver=${pkgver%.*}${pkgver##*.}
-pkgrel=9
+pkgrel=12
pkgdesc="Creates PKZIP-compatible .zip files"
url="http://www.info-zip.org/pub/infozip/Zip.html"
arch="all"
options="!check" # No test suite.
license="Info-ZIP"
depends="unzip" #unzip is needed for `zip -T`
-makedepends=""
subpackages="$pkgname-doc"
-source="https://downloads.sourceforge.net/infozip/${pkgname}${_pkgver}.tar.gz
+source="https://downloads.sourceforge.net/infozip/zip$_pkgver.tar.gz
10-zip-3.0-build.patch
20-zip-3.0-exec-stack.patch
30-zip-3.0-pic.patch
- 40-fix-zipnote.patch"
+ 40-fix-zipnote.patch
+ format-security.patch
+ "
-builddir="$srcdir"/${pkgname}${_pkgver}
+builddir="$srcdir"/${pkgname}$_pkgver
build() {
- cd "$builddir"
- make -f unix/Makefile LOCAL_ZIP="${CFLAGS} ${CPPFLAGS}" prefix=/usr generic
+ make -f unix/Makefile LOCAL_ZIP="$CFLAGS $CPPFLAGS" prefix=/usr generic
}
package() {
- cd "$builddir"
- make -f unix/Makefile prefix=${pkgdir}/usr MANDIR=${pkgdir}/usr/share/man/man1 install
+ make -f unix/Makefile prefix=$pkgdir/usr MANDIR=$pkgdir/usr/share/man/man1 install
install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE
}
-sha512sums="c1c3d62bf1426476c0f9919b568013d6d7b03514912035f09ee283226d94c978791ad2af5310021e96c4c2bf320bfc9d0b8f4045c48e4667e034d98197e1a9b3 zip30.tar.gz
+sha512sums="
+c1c3d62bf1426476c0f9919b568013d6d7b03514912035f09ee283226d94c978791ad2af5310021e96c4c2bf320bfc9d0b8f4045c48e4667e034d98197e1a9b3 zip30.tar.gz
e71f7c6f6dd6f8f576018581b155f324eaf6810a2f7c5c402843bdfc3ce6772f09be166b33ff34dcb703774694b18584c8de1763f29895c1d563661679f43d71 10-zip-3.0-build.patch
2a6824066543684e02731bd36930e0ffa6ab48162c61d5e7af08e8ea0795401271ef28bdd0f6ace865d91fdb1a05b643813cdd458a9fdf554f1ca298ea7f50e3 20-zip-3.0-exec-stack.patch
fcb2d728d79160128064af90eb17a9c03e980d9619c4d930c4dbf79cb13842c7bb694036dcbf5cd9b412efc6fc0b86bb94a88b3f110b6b63bf6bda2b97fe0568 30-zip-3.0-pic.patch
-f22649d1cbe94ffcacf622493400489393d6fac80067211e6ba12b85d7b062f76b041f318068731b267167e715b7749589bfe9205670a61c6e56e1ffdfaea29b 40-fix-zipnote.patch"
+f22649d1cbe94ffcacf622493400489393d6fac80067211e6ba12b85d7b062f76b041f318068731b267167e715b7749589bfe9205670a61c6e56e1ffdfaea29b 40-fix-zipnote.patch
+1d2147e97e9e19ac403ec6fb3466059dba96edeee2ac2a809b75c652d50d01d9ce717c1d9812359c8d13330369e60f6421afdb9e54e3e19d6bcf0ddf2405b15e format-security.patch
+"
diff --git a/main/zip/format-security.patch b/main/zip/format-security.patch
new file mode 100644
index 00000000000..94816432a06
--- /dev/null
+++ b/main/zip/format-security.patch
@@ -0,0 +1,24 @@
+diff --git a/zip.c b/zip.c
+index 439821f..862da02 100644
+--- a/zip.c
++++ b/zip.c
+@@ -1028,8 +1028,7 @@ local void help_extended()
+
+ for (i = 0; i < sizeof(text)/sizeof(char *); i++)
+ {
+- printf(text[i]);
+- putchar('\n');
++ puts(text[i]);
+ }
+ #ifdef DOS
+ check_for_windows("Zip");
+@@ -1225,8 +1224,7 @@ local void version_info()
+ CR_MAJORVER, CR_MINORVER, CR_BETA_VER, CR_VERSION_DATE);
+ for (i = 0; i < sizeof(cryptnote)/sizeof(char *); i++)
+ {
+- printf(cryptnote[i]);
+- putchar('\n');
++ puts(cryptnote[i]);
+ }
+ ++i; /* crypt support means there IS at least one compilation option */
+ #endif /* CRYPT */
diff --git a/main/zlib/APKBUILD b/main/zlib/APKBUILD
index 266ef15f808..4190d2deb37 100644
--- a/main/zlib/APKBUILD
+++ b/main/zlib/APKBUILD
@@ -1,20 +1,23 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=zlib
-pkgver=1.2.12
+pkgver=1.3.1
pkgrel=1
pkgdesc="A compression/decompression Library"
arch="all"
license="Zlib"
url="https://zlib.net/"
subpackages="$pkgname-static $pkgname-dev $pkgname-doc"
-source="https://zlib.net/zlib-$pkgver.tar.gz
- Fix-CC-logic-in-configure.patch
- configure-Pass-LDFLAGS-to-link-tests.patch
- crc32.patch
+source="https://zlib.net/fossils/zlib-$pkgver.tar.gz
"
+
# secfixes:
+# 1.2.12-r2:
+# - CVE-2022-37434
# 1.2.11-r4:
# - CVE-2018-25032
+# 0:
+# - CVE-2023-45853
+# - CVE-2023-6992
build() {
# we trade size for a little more speed.
@@ -37,8 +40,5 @@ package() {
}
sha512sums="
-cc2366fa45d5dfee1f983c8c51515e0cff959b61471e2e8d24350dea22d3f6fcc50723615a911b046ffc95f51ba337d39ae402131a55e6d1541d3b095d6c0a14 zlib-1.2.12.tar.gz
-faa19991e88cbfd624ac9ce4a0ba12e3d7d54f88680b1a0a156a542a45bafe2053d69c6f309327817f7cc74f5765204bbb3c56ff531efd29d8fd6bb682c78598 Fix-CC-logic-in-configure.patch
-76179eb7e498aef5bc88c3f826c6f2506a2d3c3a2e2560ef1825bd4a9297d68b0d2390619a4b3b0b2e6dde765431e5fba18fd15fbd1ad99827244f8f9bdbd909 configure-Pass-LDFLAGS-to-link-tests.patch
-38f0593a0bc17336d31191b7af684e31ec2eb34bd3add49bcb1f95c5e2bfb4405ffc341c2650d52c4fbf417ab4f80a0cc82fb868c9816b04d25210ae29a71f2c crc32.patch
+580677aad97093829090d4b605ac81c50327e74a6c2de0b85dd2e8525553f3ddde17556ea46f8f007f89e435493c9a20bc997d1ef1c1c2c23274528e3c46b94f zlib-1.3.1.tar.gz
"
diff --git a/main/zlib/Fix-CC-logic-in-configure.patch b/main/zlib/Fix-CC-logic-in-configure.patch
deleted file mode 100644
index f34c40445de..00000000000
--- a/main/zlib/Fix-CC-logic-in-configure.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 80d086357a55b94a13e43756cf3e131f25eef0e4 Mon Sep 17 00:00:00 2001
-From: Sam James <sam@gentoo.org>
-Date: Mon, 28 Mar 2022 08:40:45 +0100
-Subject: [PATCH] Fix CC logic in configure
-
-In https://github.com/madler/zlib/commit/e9a52aa129efe3834383e415580716a7c4027f8d,
-the logic was changed to try check harder for GCC, but it dropped
-the default setting of cc=${CC}. It was throwing away any pre-set CC value as
-a result.
-
-The rest of the script then cascades down a bad path because it's convinced
-it's not GCC or a GCC-like compiler.
-
-This led to e.g. misdetection of inability to build shared libs
-for say, multilib cases (w/ CC being one thing from the environment being used
-for one test (e.g. x86_64-unknown-linux-gnu-gcc -m32 and then 'cc' used for
-shared libs (but missing "-m32"!)). Obviously just one example of how
-the old logic could break.
-
-This restores the old default of 'CC' if nothing overrides it later
-in configure.
-
-Bug: https://bugs.gentoo.org/836308
-Signed-off-by: Sam James <sam@gentoo.org>
----
- configure | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/configure b/configure
-index 52ff4a04e..3fa3e8618 100755
---- a/configure
-+++ b/configure
-@@ -174,7 +174,10 @@ if test -z "$CC"; then
- else
- cc=${CROSS_PREFIX}cc
- fi
-+else
-+ cc=${CC}
- fi
-+
- cflags=${CFLAGS-"-O3"}
- # to force the asm version use: CFLAGS="-O3 -DASMV" ./configure
- case "$cc" in
diff --git a/main/zlib/configure-Pass-LDFLAGS-to-link-tests.patch b/main/zlib/configure-Pass-LDFLAGS-to-link-tests.patch
deleted file mode 100644
index 3689dd88d65..00000000000
--- a/main/zlib/configure-Pass-LDFLAGS-to-link-tests.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 37c9730ba474d274f4cc6a974943eef95087b9f6 Mon Sep 17 00:00:00 2001
-From: Khem Raj <raj.khem@gmail.com>
-Date: Tue, 8 Mar 2022 22:38:47 -0800
-Subject: [PATCH] configure: Pass LDFLAGS to link tests
-
-LDFLAGS can contain critical flags without which linking wont succeed
-therefore ensure that all configure tests involving link time checks are
-using LDFLAGS on compiler commandline along with CFLAGS to ensure the
-tests perform correctly. Without this some tests may fail resulting in
-wrong confgure result, ending in miscompiling the package
-
-Signed-off-by: Khem Raj <raj.khem@gmail.com>
----
- configure | 12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/configure b/configure
-index e974d1fd7..69dfa3f69 100755
---- a/configure
-+++ b/configure
-@@ -410,7 +410,7 @@ if test $shared -eq 1; then
- echo Checking for shared library support... | tee -a configure.log
- # we must test in two steps (cc then ld), required at least on SunOS 4.x
- if try $CC -w -c $SFLAGS $test.c &&
-- try $LDSHARED $SFLAGS -o $test$shared_ext $test.o; then
-+ try $LDSHARED $SFLAGS $LDFLAGS -o $test$shared_ext $test.o; then
- echo Building shared library $SHAREDLIBV with $CC. | tee -a configure.log
- elif test -z "$old_cc" -a -z "$old_cflags"; then
- echo No shared library support. | tee -a configure.log
-@@ -492,7 +492,7 @@ int main(void) {
- }
- EOF
- fi
-- if try $CC $CFLAGS -o $test $test.c; then
-+ if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
- sizet=`./$test`
- echo "Checking for a pointer-size integer type..." $sizet"." | tee -a configure.log
- else
-@@ -530,7 +530,7 @@ int main(void) {
- return 0;
- }
- EOF
-- if try $CC $CFLAGS -o $test $test.c; then
-+ if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
- echo "Checking for fseeko... Yes." | tee -a configure.log
- else
- CFLAGS="${CFLAGS} -DNO_FSEEKO"
-@@ -547,7 +547,7 @@ cat > $test.c <<EOF
- #include <errno.h>
- int main() { return strlen(strerror(errno)); }
- EOF
--if try $CC $CFLAGS -o $test $test.c; then
-+if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
- echo "Checking for strerror... Yes." | tee -a configure.log
- else
- CFLAGS="${CFLAGS} -DNO_STRERROR"
-@@ -654,7 +654,7 @@ int main()
- return (mytest("Hello%d\n", 1));
- }
- EOF
-- if try $CC $CFLAGS -o $test $test.c; then
-+ if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
- echo "Checking for vsnprintf() in stdio.h... Yes." | tee -a configure.log
-
- echo >> configure.log
-@@ -744,7 +744,7 @@ int main()
- }
- EOF
-
-- if try $CC $CFLAGS -o $test $test.c; then
-+ if try $CC $CFLAGS $LDFLAGS -o $test $test.c; then
- echo "Checking for snprintf() in stdio.h... Yes." | tee -a configure.log
-
- echo >> configure.log
diff --git a/main/zlib/crc32.patch b/main/zlib/crc32.patch
deleted file mode 100644
index 85a6a7e3ab4..00000000000
--- a/main/zlib/crc32.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From ec3df00224d4b396e2ac6586ab5d25f673caa4c2 Mon Sep 17 00:00:00 2001
-From: Mark Adler <madler@alumni.caltech.edu>
-Date: Wed, 30 Mar 2022 11:14:53 -0700
-Subject: [PATCH] Correct incorrect inputs provided to the CRC functions.
-
-The previous releases of zlib were not sensitive to incorrect CRC
-inputs with bits set above the low 32. This commit restores that
-behavior, so that applications with such bugs will continue to
-operate as before.
----
- crc32.c | 8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/crc32.c b/crc32.c
-index a1bdce5c2..451887bc7 100644
---- a/crc32.c
-+++ b/crc32.c
-@@ -630,7 +630,7 @@ unsigned long ZEXPORT crc32_z(crc, buf, len)
- #endif /* DYNAMIC_CRC_TABLE */
-
- /* Pre-condition the CRC */
-- crc ^= 0xffffffff;
-+ crc = (~crc) & 0xffffffff;
-
- /* Compute the CRC up to a word boundary. */
- while (len && ((z_size_t)buf & 7) != 0) {
-@@ -749,7 +749,7 @@ unsigned long ZEXPORT crc32_z(crc, buf, len)
- #endif /* DYNAMIC_CRC_TABLE */
-
- /* Pre-condition the CRC */
-- crc ^= 0xffffffff;
-+ crc = (~crc) & 0xffffffff;
-
- #ifdef W
-
-@@ -1077,7 +1077,7 @@ uLong ZEXPORT crc32_combine64(crc1, crc2, len2)
- #ifdef DYNAMIC_CRC_TABLE
- once(&made, make_crc_table);
- #endif /* DYNAMIC_CRC_TABLE */
-- return multmodp(x2nmodp(len2, 3), crc1) ^ crc2;
-+ return multmodp(x2nmodp(len2, 3), crc1) ^ (crc2 & 0xffffffff);
- }
-
- /* ========================================================================= */
-@@ -1112,5 +1112,5 @@ uLong crc32_combine_op(crc1, crc2, op)
- uLong crc2;
- uLong op;
- {
-- return multmodp(op, crc1) ^ crc2;
-+ return multmodp(op, crc1) ^ (crc2 & 0xffffffff);
- }
diff --git a/main/zmap/APKBUILD b/main/zmap/APKBUILD
index 167e60b1faf..d9945859cec 100644
--- a/main/zmap/APKBUILD
+++ b/main/zmap/APKBUILD
@@ -1,50 +1,49 @@
# Contributor: Sören Tempel <soeren+alpine@soeren-tempel.net>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=zmap
-pkgver=2.1.1
-pkgrel=8
-pkgdesc="A high performance internet scanner"
+pkgver=3.0.0
+pkgrel=0
+pkgdesc="High performance internet scanner"
url="https://www.zmap.io/"
arch="all"
license="Apache-2.0"
-makedepends="linux-headers cmake flex byacc hiredis-dev json-c-dev gengetopt
- libpcap-dev gmp-dev"
-checkdepends="bash"
+makedepends="
+ byacc
+ cmake
+ flex
+ gengetopt
+ gmp-dev
+ json-c-dev
+ libpcap-dev
+ libunistring-dev
+ linux-headers
+ samurai
+ "
subpackages="$pkgname-doc"
-source="$pkgname-$pkgver.tar.gz::https://github.com/$pkgname/$pkgname/archive/v$pkgver.tar.gz
- byacc.patch"
-builddir="$srcdir"/$pkgname-$pkgver
+source="$pkgname-$pkgver.tar.gz::https://github.com/zmap/zmap/archive/refs/tags/v$pkgver.tar.gz"
build() {
- cd "$builddir"
- cmake \
+ CFLAGS="$CFLAGS -flto=auto" \
+ cmake -B . -G Ninja \
-DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_INSTALL_LIBDIR=lib \
-DBUILD_SHARED_LIBS=True \
- -DCMAKE_BUILD_TYPE=MinSizeRel \
- -DCMAKE_CXX_COMPILER="${CXX:-g++}" \
- -DCMAKE_C_COMPILER="${CC:-gcc}" \
- -DCMAKE_CXX_FLAGS="$CXXFLAGS" \
- -DCMAKE_CXX_FLAGS="$CFLAGS" \
- -DWITH_JSON=ON \
- -DWITH_REDIS=ON
- make
+ -DCMAKE_BUILD_TYPE=MinSizeRel
+ cmake --build .
}
check() {
- cd "$builddir"/test
+ cd test
./test_big_group.sh
}
package() {
- cd "$builddir"
- make DESTDIR="$pkgdir" install
+ DESTDIR="$pkgdir" cmake --install .
- mkdir -p "$pkgdir"/usr/share/doc/$pkgname/
- install -m644 AUTHORS CHANGELOG.md INSTALL.md README.md \
- "$pkgdir"/usr/share/doc/$pkgname/
+ install -Dm644 AUTHORS CHANGELOG.md INSTALL.md README.md \
+ -t "$pkgdir"/usr/share/doc/$pkgname/
cp -a examples "$pkgdir"/usr/share/doc/$pkgname/
}
-sha512sums="9d62dceff77fa20ff5945516b0766340366175947130bb844f19c11dac7676e658bcdedd6be29ffc945706aa3cdc0e4ac207bd127b618592769a4d3e75892857 zmap-2.1.1.tar.gz
-08cc497d99e388af2c0dd0d8a2337fa901451dd0b256bd4cfcc91a12ff1da503773214d0768077aae56e70cc5c49724be88064dd25eeaa3947f2a993af4215b8 byacc.patch"
+sha512sums="
+3ea4d0e4052c2e4ab303f1ac8c35339bd3e282993b7bbd6b75d2a039df934e57f4d93883b5034c5d25e3f8b2e81f3a036cf1bf1fb2ad6620afa6f7fd3366b0f1 zmap-3.0.0.tar.gz
+"
diff --git a/main/zmap/byacc.patch b/main/zmap/byacc.patch
deleted file mode 100644
index 7fa594cba98..00000000000
--- a/main/zmap/byacc.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -upr zmap-2.1.1.orig/src/CMakeLists.txt zmap-2.1.1/src/CMakeLists.txt
---- zmap-2.1.1.orig/src/CMakeLists.txt 2015-10-10 06:59:56.963317056 +0200
-+++ zmap-2.1.1/src/CMakeLists.txt 2015-10-10 07:01:05.206393054 +0200
-@@ -122,7 +122,7 @@ add_custom_command(OUTPUT lexer.c
- )
-
- add_custom_command(OUTPUT parser.c
-- COMMAND byacc -d -o "${CMAKE_CURRENT_BINARY_DIR}/parser.c" "${CMAKE_CURRENT_SOURCE_DIR}/parser.y"
-+ COMMAND yacc -d -o "${CMAKE_CURRENT_BINARY_DIR}/parser.c" "${CMAKE_CURRENT_SOURCE_DIR}/parser.y"
- DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/parser.y"
- )
-
diff --git a/main/zonenotify/APKBUILD b/main/zonenotify/APKBUILD
index cacb1970737..ff37adf0aeb 100644
--- a/main/zonenotify/APKBUILD
+++ b/main/zonenotify/APKBUILD
@@ -1,13 +1,14 @@
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=zonenotify
pkgver=0.1
-pkgrel=4
+pkgrel=6
pkgdesc="Utility to send NS_NOTIFY packets to slave DNS servers"
arch="all"
url="https://github.com/morettoni/zonenotify"
license="BSD-2-Clause"
source="http://www.morettoni.net/bsd/zonenotify-$pkgver.tar.gz"
builddir="$srcdir"/$pkgname
+options="!check"
build() {
make
diff --git a/main/zsh/APKBUILD b/main/zsh/APKBUILD
index e376cf9eb48..a51ab1fbe7f 100644
--- a/main/zsh/APKBUILD
+++ b/main/zsh/APKBUILD
@@ -12,13 +12,15 @@
# - CVE-2018-1071
#
pkgname=zsh
-pkgver=5.8.1
-pkgrel=4
+pkgver=5.9
+pkgrel=3
pkgdesc="Very advanced and programmable command interpreter (shell)"
url="https://www.zsh.org/"
arch="all"
-license="custom"
+# GPL-2.0-only: license of Completion/Linux/Command/_qdbus
+license="MIT-Modern-Variant AND GPL-2.0-only"
makedepends="
+ autoconf
diffutils
libcap-dev
pcre-dev
@@ -36,8 +38,10 @@ subpackages="
$pkgname-vcs::noarch
$pkgname-zftp
"
-source="https://download.sourceforge.net/project/zsh/zsh/$pkgver/zsh-$pkgver.tar.xz
+source="https://sourceforge.net/projects/zsh/files/zsh/$pkgver/zsh-$pkgver.tar.xz
+ skip-test-failing-on-musl.patch
zsh-newuser-install-alpine.patch
+ implicit.patch
zprofile
zshenv
zshrc
@@ -61,7 +65,7 @@ _comps="android-tools::Unix/_adb
rsync::Unix/_rsync
subversion::Unix/_subversion
tmux::Unix/_tmux
- zfs::Unix/_zfs*:Unix/_zpool
+ zfs::Unix/_zfs*
"
for _i in $_comps; do
subpackages="$subpackages ${_i%%:*}-zsh-completion:_completion:noarch"
@@ -201,8 +205,10 @@ _completion() {
}
sha512sums="
-f54a5a47ed15d134902613f6169c985680afc45a67538505e11b66b348fcb367145e9b8ae2d9eac185e07ef5f97254b85df01ba97294002a8c036fd02ed5e76d zsh-5.8.1.tar.xz
+d9138b7f379ad942a5f46819d2dd52d31f3a1129f2a0d1b53d4c5cd43c318b60396da6d37c57c477b8e958fb750209aca0ae93f8c9dd42ac958de006a0ff067e zsh-5.9.tar.xz
+4fb6bf20f27ff4b36c5519dc0f7ac43b0cbf299ab0525c0f49920ed848166367207a58160eaa8d573e7ed0373540bde7a5363386e41a36945deba016a255a61d skip-test-failing-on-musl.patch
3be36a30af2c33c5d4d0412acd30fbb52fbaad49c692f12ab1a9c57d87cee62ad0b4737127585e2dc5824b98428ff097977f610a4d1fa3d83c9370b7cf2956f7 zsh-newuser-install-alpine.patch
+0fd193a92c24dfd3b97f6294469cad8c799c91c27bb1f298bb64dcd10982543e80ab9e63517915ff648096e85105044c9d2d4368977266f7e3f6b34e69277768 implicit.patch
66a6bdf8d915c818a2c31c35c90c2a19f91d15e2d8547d050e980ef63080f27033ef1f59da5befb30dbf46050ce907690a680e48db11711d40930420f7ec1c2b zprofile
e1c40649c940b91fb6dbcf9e7878e3c96d3729c8eee7b97cfe007d14d19add500863cef588ea4818ab83921fef9f9b4384c2003b26e9d753a8d59e9aca837d43 zshenv
a7f4f5267cf0a9d1e0c480e89ede0811435803e4822b522dfc0326a9015a44af5e3163160b5595dc055acfca28f56811521c728e020389c7a5e4e0e4b3811d38 zshrc
diff --git a/main/zsh/implicit.patch b/main/zsh/implicit.patch
new file mode 100644
index 00000000000..a840401becc
--- /dev/null
+++ b/main/zsh/implicit.patch
@@ -0,0 +1,550 @@
+https://bugs.gentoo.org/869539
+https://www.zsh.org/mla/workers/2022/msg00964.html
+--- a/configure.ac
++++ b/configure.ac
+@@ -583,11 +583,11 @@ if test x$zsh_cv_c_have_union_init = xye
+ fi
+
+ dnl Checking if compiler correctly cast signed to unsigned.
+ AC_CACHE_CHECK(if signed to unsigned casting is broken,
+ zsh_cv_c_broken_signed_to_unsigned_casting,
+-[AC_RUN_IFELSE([AC_LANG_SOURCE([[main(){return((int)(unsigned char)((char) -1) == 255);}]])],[zsh_cv_c_broken_signed_to_unsigned_casting=yes],[zsh_cv_c_broken_signed_to_unsigned_casting=no],[zsh_cv_c_broken_signed_to_unsigned_casting=no])])
++[AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(){return((int)(unsigned char)((char) -1) == 255);}]])],[zsh_cv_c_broken_signed_to_unsigned_casting=yes],[zsh_cv_c_broken_signed_to_unsigned_casting=no],[zsh_cv_c_broken_signed_to_unsigned_casting=no])])
+ AH_TEMPLATE([BROKEN_SIGNED_TO_UNSIGNED_CASTING],
+ [Define to 1 if compiler incorrectly cast signed to unsigned.])
+ if test x$zsh_cv_c_broken_signed_to_unsigned_casting = xyes; then
+ AC_DEFINE(BROKEN_SIGNED_TO_UNSIGNED_CASTING)
+ fi
+@@ -1044,21 +1044,21 @@ if test x$zsh_cv_long_is_64_bit = xyes;
+ else
+ AC_CACHE_CHECK(if off_t is 64 bit, zsh_cv_off_t_is_64_bit,
+ [AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ #include <sys/types.h>
+
+-main() { return sizeof(off_t) < 8; }
++int main() { return sizeof(off_t) < 8; }
+ ]])],[zsh_cv_off_t_is_64_bit=yes],[zsh_cv_off_t_is_64_bit=no],[zsh_cv_off_t_is_64_bit=no])])
+ if test x$zsh_cv_off_t_is_64_bit = xyes; then
+ AC_DEFINE(OFF_T_IS_64_BIT)
+ fi
+
+ AC_CACHE_CHECK(if ino_t is 64 bit, zsh_cv_ino_t_is_64_bit,
+ [AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ #include <sys/types.h>
+
+-main() { return sizeof(ino_t) < 8; }
++int main() { return sizeof(ino_t) < 8; }
+ ]])],[zsh_cv_ino_t_is_64_bit=yes],[zsh_cv_ino_t_is_64_bit=no],[zsh_cv_ino_t_is_64_bit=no])])
+ if test x$zsh_cv_ino_t_is_64_bit = xyes; then
+ AC_DEFINE(INO_T_IS_64_BIT)
+ fi
+
+@@ -1394,22 +1394,22 @@ zsh_cv_func_tgetent_accepts_null,
+ [AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ #include <fcntl.h>
+ #include <stdlib.h>
+ int tgetent(char *, char *);
+ char *tgetstr(char *, char **);
+-main()
++int main()
+ {
+ char buf[4096];
+ int r1 = tgetent(buf, "vt100");
+ int r2 = tgetent((char*)0,"vt100");
+ if (r1 >= 0 && r1 == r2) {
+ char tbuf[1024], *u;
+ u = tbuf;
+ tgetstr("cl", &u);
+ creat("conftest.tgetent", 0640);
+ }
+- exit((r1 != r2) || r2 == -1);
++ return((r1 != r2) || r2 == -1);
+ }
+ ]])],[if test -f conftest.tgetent; then
+ zsh_cv_func_tgetent_accepts_null=yes
+ else
+ zsh_cv_func_tgetent_accepts_null=no
+@@ -1422,22 +1422,22 @@ zsh_cv_func_tgetent_zero_success,
+ [AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ #include <fcntl.h>
+ #include <stdlib.h>
+ int tgetent(char *, char*);
+ char *tgetstr(char *, char **);
+-main()
++int main()
+ {
+ char buf[4096];
+ int r1 = tgetent(buf, "!@#$%^&*");
+ int r2 = tgetent(buf, "vt100");
+ if (r1 < 0 && r2 == 0) {
+ char tbuf[1024], *u;
+ u = tbuf;
+ tgetstr("cl", &u);
+ creat("conftest.tgetent0", 0640);
+ }
+- exit(r1 == r2);
++ return(r1 == r2);
+ }
+ ]])],[if test -f conftest.tgetent0; then
+ zsh_cv_func_tgetent_zero_success=yes
+ else
+ zsh_cv_func_tgetent_zero_success=no
+@@ -1860,27 +1860,27 @@ zsh_cv_rlim_t_is_longer,
+ #ifdef HAVE_SYS_TIME_H
+ #include <sys/time.h>
+ #endif
+ #include <sys/resource.h>
+ #include <stdlib.h>
+-main(){struct rlimit r;exit(sizeof(r.rlim_cur) <= sizeof(long));}]])],[zsh_cv_rlim_t_is_longer=yes],[zsh_cv_rlim_t_is_longer=no],[zsh_cv_rlim_t_is_longer=yes])])
++int main(){struct rlimit r;return(sizeof(r.rlim_cur) <= sizeof(long));}]])],[zsh_cv_rlim_t_is_longer=yes],[zsh_cv_rlim_t_is_longer=no],[zsh_cv_rlim_t_is_longer=yes])])
+ if test x$zsh_cv_rlim_t_is_longer = xyes; then
+ AC_CACHE_CHECK(if rlim_t is a quad,
+ zsh_cv_rlim_t_is_quad_t,
+ [AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ #ifdef HAVE_SYS_TIME_H
+ #include <sys/time.h>
+ #endif
+ #include <stdio.h>
+ #include <sys/resource.h>
+ #include <stdlib.h>
+-main() {
++int main() {
+ struct rlimit r;
+ char buf[20];
+ r.rlim_cur = 0;
+ sprintf(buf, "%qd", r.rlim_cur);
+- exit(strcmp(buf, "0"));
++ return(strcmp(buf, "0"));
+ }]])],[zsh_cv_rlim_t_is_quad_t=yes],[zsh_cv_rlim_t_is_quad_t=no],[zsh_cv_rlim_t_is_quad_t=no])])
+ if test x$zsh_cv_rlim_t_is_quad_t = xyes; then
+ AC_DEFINE(RLIM_T_IS_QUAD_T)
+ DEFAULT_RLIM_T=quad_t
+ else
+@@ -1894,11 +1894,11 @@ else
+ #ifdef HAVE_SYS_TIME_H
+ #include <sys/time.h>
+ #endif
+ #include <sys/resource.h>
+ #include <stdlib.h>
+- main(){struct rlimit r;r.rlim_cur=-1;exit(r.rlim_cur<0);}]])],[zsh_cv_type_rlim_t_is_unsigned=yes],[zsh_cv_type_rlim_t_is_unsigned=no],[zsh_cv_type_rlim_t_is_unsigned=no])])
++ int main(){struct rlimit r;r.rlim_cur=-1;return(r.rlim_cur<0);}]])],[zsh_cv_type_rlim_t_is_unsigned=yes],[zsh_cv_type_rlim_t_is_unsigned=no],[zsh_cv_type_rlim_t_is_unsigned=no])])
+ if test x$zsh_cv_type_rlim_t_is_unsigned = xyes; then
+ AC_DEFINE(RLIM_T_IS_UNSIGNED)
+ DEFAULT_RLIM_T="unsigned $DEFAULT_RLIM_T"
+ fi
+ fi
+@@ -2175,11 +2175,11 @@ zsh_cv_sys_fifo,
+ #include <fcntl.h>
+ #include <signal.h>
+ #include <unistd.h>
+ #include <stdlib.h>
+ #include <sys/stat.h>
+-main()
++int main()
+ {
+ char c;
+ int fd;
+ int pid, ret;
+ unlink("/tmp/fifo$$");
+@@ -2189,19 +2189,19 @@ main()
+ if(mknod("/tmp/fifo$$", 0010600, 0) < 0)
+ #endif
+ exit(1);
+ pid = fork();
+ if(pid < 0)
+- exit(1);
++ return(1);
+ if(pid) {
+ fd = open("/tmp/fifo$$", O_RDONLY);
+- exit(fd < 0 || read(fd, &c, 1) != 1 || c != 'x');
++ return(fd < 0 || read(fd, &c, 1) != 1 || c != 'x');
+ }
+ fd = open("/tmp/fifo$$", O_WRONLY);
+ ret = (fd < 0 || write(fd, "x", 1) < 1);
+ unlink("/tmp/fifo$$");
+- exit(ret);
++ return(ret);
+ }
+ ]])],[zsh_cv_sys_fifo=yes],[zsh_cv_sys_fifo=no],[zsh_cv_sys_fifo=yes])
+ ])
+ AH_TEMPLATE([HAVE_FIFOS],
+ [Define to 1 if system has working FIFOs.])
+@@ -2276,24 +2276,24 @@ AC_CACHE_CHECK(if link() works,
+ zsh_cv_sys_link,
+ [AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ #include <unistd.h>
+ #include <fcntl.h>
+ #include <stdlib.h>
+-main()
++int main()
+ {
+ int ret;
+ char *tmpfile, *newfile;
+ tmpfile="/tmp/zsh.linktest$$";
+ newfile="/tmp/zsh.linktest2$$";
+ unlink(tmpfile);
+ unlink(newfile);
+ if(creat(tmpfile, 0644) < 0)
+- exit(1);
++ return(1);
+ ret = link(tmpfile, newfile);
+ unlink(tmpfile);
+ unlink(newfile);
+- exit(ret<0);
++ return(ret<0);
+ }
+ ]])],[zsh_cv_sys_link=yes],[zsh_cv_sys_link=no],[zsh_cv_sys_link=yes])])
+ AH_TEMPLATE([HAVE_LINK],
+ [Define to 1 if system has working link().])
+ if test x$zsh_cv_sys_link = xyes; then
+@@ -2309,15 +2309,15 @@ zsh_cv_sys_killesrch,
+ [AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ #include <unistd.h>
+ #include <signal.h>
+ #include <errno.h>
+ #include <stdlib.h>
+-main()
++int main()
+ {
+ int pid = (getpid() + 10000) & 0xffffff;
+ while (pid && (kill(pid, 0) == 0 || errno != ESRCH)) pid >>= 1;
+- exit(errno!=ESRCH);
++ return(errno!=ESRCH);
+ }
+ ]])],[zsh_cv_sys_killesrch=yes],[zsh_cv_sys_killesrch=no],[zsh_cv_sys_killesrch=yes])])
+ AH_TEMPLATE([BROKEN_KILL_ESRCH],
+ [Define to 1 if kill(pid, 0) doesn't return ESRCH, ie BeOS R4.51.])
+ if test x$zsh_cv_sys_killesrch = xno; then
+@@ -2339,11 +2339,11 @@ if test x$signals_style = xPOSIX_SIGNALS
+ #include <stdlib.h>
+ int child=0;
+ void handler(sig)
+ int sig;
+ {if(sig==SIGCHLD) child=1;}
+-main() {
++int main() {
+ struct sigaction act;
+ sigset_t set;
+ int pid, ret;
+ act.sa_handler = &handler;
+ sigfillset(&act.sa_mask);
+@@ -2354,11 +2354,11 @@ main() {
+ pid=fork();
+ if(pid==0) return 0;
+ if(pid>0) {
+ sigemptyset(&set);
+ ret=sigsuspend(&set);
+- exit(child==0);
++ return(child==0);
+ }
+ }
+ ]])],[zsh_cv_sys_sigsuspend=yes],[zsh_cv_sys_sigsuspend=no],[zsh_cv_sys_sigsuspend=yes])])
+ if test x$zsh_cv_sys_sigsuspend = xno; then
+ AC_DEFINE(BROKEN_POSIX_SIGSUSPEND)
+@@ -2387,18 +2387,18 @@ case "x$zsh_working_tcsetpgrp" in
+ [AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ #include <sys/types.h>
+ #include <unistd.h>
+ #include <fcntl.h>
+ #include <stdlib.h>
+-main() {
++int main() {
+ int fd;
+ int ret;
+ fd=open("/dev/tty", O_RDWR);
+ if (fd < 0) exit(2);
+ ret=tcsetpgrp(fd, tcgetpgrp(fd));
+ if (ret < 0) exit(1);
+- exit(0);
++ return(0);
+ }
+ ]])],[zsh_cv_sys_tcsetpgrp=yes],[
+ case $? in
+ 1) zsh_cv_sys_tcsetpgrp=no;;
+ 2) zsh_cv_sys_tcsetpgrp=notty;;
+@@ -2434,19 +2434,19 @@ if test x$ac_cv_func_getpwnam = xyes; th
+ #include <pwd.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+-main() {
++int main() {
+ struct passwd *pw1, *pw2;
+ char buf[1024], name[1024];
+ sprintf(buf, "%d:%d", getpid(), rand());
+ pw1=getpwnam(buf);
+ if (pw1) strcpy(name, pw1->pw_name);
+ sprintf(buf, "%d:%d", rand(), getpid());
+ pw2=getpwnam(buf);
+- exit(pw1!=0 && pw2!=0 && !strcmp(name, pw2->pw_name));
++ return(pw1!=0 && pw2!=0 && !strcmp(name, pw2->pw_name));
+ }
+ ]])],[zsh_cv_sys_getpwnam_faked=no],[zsh_cv_sys_getpwnam_faked=yes],[zsh_cv_sys_getpwnam_faked=no])])
+ if test x$zsh_cv_sys_getpwnam_faked = xyes; then
+ AC_DEFINE(GETPWNAM_FAKED)
+ fi
+@@ -2763,22 +2763,20 @@ elif test "x$dynamic" = xyes; then
+ zsh_cv_sys_elf,
+ [AC_RUN_IFELSE([AC_LANG_SOURCE([[/* Test for whether ELF binaries are produced */
+ #include <fcntl.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+-main(argc, argv)
+-int argc;
+-char *argv[];
++int main(int argc, char *argv[])
+ {
+ char b[4];
+ int i = open(argv[0],O_RDONLY);
+ if(i == -1)
+ exit(1); /* fail */
+ if(read(i,b,4)==4 && b[0]==127 && b[1]=='E' && b[2]=='L' && b[3]=='F')
+- exit(0); /* succeed (yes, it's ELF) */
++ return(0); /* succeed (yes, it's ELF) */
+ else
+- exit(1); /* fail */
++ return(1); /* fail */
+ }]])],[zsh_cv_sys_elf=yes],[zsh_cv_sys_elf=no],[zsh_cv_sys_elf=yes])])
+
+ # We use [0-9]* in case statements, so need to change quoting
+ changequote(, )
+
+@@ -2908,11 +2908,11 @@ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[
+ EXTRA_LDFLAGS="${EXTRA_LDFLAGS=-rdynamic}"],[zsh_cvs_rdynamic_available=no])
+ LDFLAGS="$old_LDFLAGS")
+ AC_CACHE_CHECK(if your dlsym() needs a leading underscore,
+ zsh_cv_func_dlsym_needs_underscore,
+ [echo failed >conftestval && cat >conftest.c <<EOM
+-fred () { }
++void fred () { }
+ EOM
+ AC_TRY_COMMAND($CC -c $CFLAGS $CPPFLAGS $DLCFLAGS conftest.c 1>&AS_MESSAGE_LOG_FD) &&
+ AC_TRY_COMMAND($DLLD $LDFLAGS $DLLDFLAGS -o conftest.$DL_EXT conftest.o 1>&AS_MESSAGE_LOG_FD) &&
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ #include <stdio.h>
+@@ -2943,34 +2941,34 @@ char *zsh_gl_sym_addr ;
+ #define RTLD_LAZY 1
+ #endif
+
+ extern int fred() ;
+
+-main()
++int main()
+ {
+ void * handle ;
+ void * symbol ;
+ FILE *f=fopen("conftestval", "w");
+ if (!f) exit(1);
+ handle = dlopen("./conftest.$DL_EXT", RTLD_LAZY) ;
+ if (handle == NULL) {
+ fprintf (f, "dlopen failed") ;
+- exit(1);
++ return(1);
+ }
+ symbol = dlsym(handle, "fred") ;
+ if (symbol == NULL) {
+ /* try putting a leading underscore */
+ symbol = dlsym(handle, "_fred") ;
+ if (symbol == NULL) {
+ fprintf (f, "dlsym failed") ;
+- exit(1);
++ return(1);
+ }
+ fprintf (f, "yes") ;
+ }
+ else
+ fprintf (f, "no") ;
+- exit(0);
++ return(0);
+ }]])],[zsh_cv_func_dlsym_needs_underscore=`cat conftestval`],[zsh_cv_func_dlsym_needs_underscore=failed
+ dynamic=no],[zsh_cv_func_dlsym_needs_underscore=no])])
+ if test "x$zsh_cv_func_dlsym_needs_underscore" = xyes; then
+ AC_DEFINE(DLSYM_NEEDS_UNDERSCORE)
+ elif test "x$zsh_cv_func_dlsym_needs_underscore" != xno; then
+--- a/aczsh.m4.old
++++ b/aczsh.m4
+@@ -42,10 +42,11 @@ AC_DEFUN(zsh_64_BIT_TYPE,
+ [AC_RUN_IFELSE([AC_LANG_SOURCE([[
+ #ifdef HAVE_SYS_TYPES_H
+ #include <sys/types.h>
+ #endif
+
++int
+ main()
+ {
+ $1 foo = 0;
+ int bar = (int) foo;
+ return sizeof($1) != 8;
+@@ -144,33 +145,34 @@ char *zsh_gl_sym_addr ;
+ #endif
+ #ifndef RTLD_GLOBAL
+ #define RTLD_GLOBAL 0
+ #endif
+
++int
+ main()
+ {
+ void *handle1, *handle2;
+ void *(*zsh_getaddr1)(), *(*zsh_getaddr2)();
+ void *sym1, *sym2;
+ handle1 = dlopen("./conftest1.$DL_EXT", RTLD_LAZY | RTLD_GLOBAL);
+- if(!handle1) exit(1);
++ if(!handle1) return(1);
+ handle2 = dlopen("./conftest2.$DL_EXT", RTLD_LAZY | RTLD_GLOBAL);
+- if(!handle2) exit(1);
++ if(!handle2) return(1);
+ zsh_getaddr1 = (void *(*)()) dlsym(handle1, "${us}zsh_getaddr1");
+ zsh_getaddr2 = (void *(*)()) dlsym(handle2, "${us}zsh_getaddr2");
+ sym1 = zsh_getaddr1();
+ sym2 = zsh_getaddr2();
+- if(!sym1 || !sym2) exit(1);
+- if(sym1 != sym2) exit(1);
++ if(!sym1 || !sym2) return(1);
++ if(sym1 != sym2) return(1);
+ dlclose(handle1);
+ handle1 = dlopen("./conftest1.$DL_EXT", RTLD_LAZY | RTLD_GLOBAL);
+- if(!handle1) exit(1);
++ if(!handle1) return(1);
+ zsh_getaddr1 = (void *(*)()) dlsym(handle1, "${us}zsh_getaddr1");
+ sym1 = zsh_getaddr1();
+- if(!sym1) exit(1);
+- if(sym1 != sym2) exit(1);
+- exit(0);
++ if(!sym1) return(1);
++ if(sym1 != sym2) return(1);
++ return(0);
+ }
+ ]])],[zsh_cv_shared_$1=yes],
+ [zsh_cv_shared_$1=no],
+ [zsh_cv_shared_$1=no]
+ )
+@@ -226,23 +228,23 @@ char *zsh_gl_sym_addr ;
+ #endif
+ #ifndef RTLD_GLOBAL
+ #define RTLD_GLOBAL 0
+ #endif
+
+-
++int
+ main()
+ {
+ void *handle1, *handle2;
+ int (*fred1)(), (*fred2)();
+ handle1 = dlopen("./conftest1.$DL_EXT", RTLD_LAZY | RTLD_GLOBAL);
+- if(!handle1) exit(1);
++ if(!handle1) return(1);
+ handle2 = dlopen("./conftest2.$DL_EXT", RTLD_LAZY | RTLD_GLOBAL);
+- if(!handle2) exit(1);
++ if(!handle2) return(1);
+ fred1 = (int (*)()) dlsym(handle1, "${us}fred");
+ fred2 = (int (*)()) dlsym(handle2, "${us}fred");
+- if(!fred1 || !fred2) exit(1);
+- exit((*fred1)() != 42 || (*fred2)() != 69);
++ if(!fred1 || !fred2) return(1);
++ return((*fred1)() != 42 || (*fred2)() != 69);
+ }
+ ]])],[zsh_cv_sys_dynamic_clash_ok=yes],
+ [zsh_cv_sys_dynamic_clash_ok=no],
+ [zsh_cv_sys_dynamic_clash_ok=no]
+ )
+@@ -302,21 +304,22 @@ char *zsh_gl_sym_addr ;
+ #endif
+ #ifndef RTLD_GLOBAL
+ #define RTLD_GLOBAL 0
+ #endif
+
++int
+ main()
+ {
+ void *handle;
+ int (*barneysym)();
+ handle = dlopen("./conftest1.$DL_EXT", RTLD_LAZY | RTLD_GLOBAL);
+- if(!handle) exit(1);
++ if(!handle) return(1);
+ handle = dlopen("./conftest2.$DL_EXT", RTLD_LAZY | RTLD_GLOBAL);
+- if(!handle) exit(1);
++ if(!handle) return(1);
+ barneysym = (int (*)()) dlsym(handle, "${us}barney");
+- if(!barneysym) exit(1);
+- exit((*barneysym)() != 69);
++ if(!barneysym) return(1);
++ return((*barneysym)() != 69);
+ }
+ ]])],[zsh_cv_sys_dynamic_rtld_global=yes],
+ [zsh_cv_sys_dynamic_rtld_global=no],
+ [zsh_cv_sys_dynamic_rtld_global=no]
+ )
+@@ -372,19 +375,20 @@ char *zsh_gl_sym_addr ;
+ #endif
+ #ifndef RTLD_GLOBAL
+ #define RTLD_GLOBAL 0
+ #endif
+
++int
+ main()
+ {
+ void *handle;
+ int (*barneysym)();
+ handle = dlopen("./conftest1.$DL_EXT", RTLD_LAZY | RTLD_GLOBAL);
+- if(!handle) exit(1);
++ if(!handle) return(1);
+ barneysym = (int (*)()) dlsym(handle, "${us}barney");
+- if(!barneysym) exit(1);
+- exit((*barneysym)() != 69);
++ if(!barneysym) return(1);
++ return((*barneysym)() != 69);
+ }
+
+ int fred () { return 42; }
+ ]])],[zsh_cv_sys_dynamic_execsyms=yes],
+ [zsh_cv_sys_dynamic_execsyms=no],
+@@ -446,19 +450,20 @@ char *zsh_gl_sym_addr ;
+ #endif
+ #ifndef RTLD_GLOBAL
+ #define RTLD_GLOBAL 0
+ #endif
+
++int
+ main()
+ {
+ void *handle;
+ int (*barneysym)();
+ handle = dlopen("./conftest1.$DL_EXT", RTLD_LAZY | RTLD_GLOBAL);
+- if(!handle) exit(1);
++ if(!handle) return(1);
+ barneysym = (int (*)()) dlsym(handle, "${us}barney");
+- if(!barneysym) exit(1);
+- exit((*barneysym)() != 69);
++ if(!barneysym) return(1);
++ return((*barneysym)() != 69);
+ }
+
+ int fred () { return 42; }
+ ]])],[zsh_cv_sys_dynamic_strip_exe=yes],
+ [zsh_cv_sys_dynamic_strip_exe=no],
+@@ -514,19 +519,20 @@ char *zsh_gl_sym_addr ;
+ #endif
+ #ifndef RTLD_GLOBAL
+ #define RTLD_GLOBAL 0
+ #endif
+
++int
+ main()
+ {
+ void *handle;
+ int (*fredsym)();
+ handle = dlopen("./conftest1.$DL_EXT", RTLD_LAZY | RTLD_GLOBAL);
+- if(!handle) exit(1);
++ if(!handle) return(1);
+ fredsym = (int (*)()) dlsym(handle, "${us}fred");
+- if(!fredsym) exit(1);
+- exit((*fredsym)() != 42);
++ if(!fredsym) return(1);
++ return((*fredsym)() != 42);
+ }
+ ]])],[zsh_cv_sys_dynamic_strip_lib=yes],
+ [zsh_cv_sys_dynamic_strip_lib=no],
+ [zsh_cv_sys_dynamic_strip_lib=no]
+ )
+
diff --git a/main/zsh/skip-test-failing-on-musl.patch b/main/zsh/skip-test-failing-on-musl.patch
new file mode 100644
index 00000000000..ba04ce214b0
--- /dev/null
+++ b/main/zsh/skip-test-failing-on-musl.patch
@@ -0,0 +1,25 @@
+From: Jakub Jirutka <jakub@jirutka.cz>
+Date: Sun, 03 Jul 2022 01:52:19 +0200
+Subject: Skip test case in E02xtrace failing on musl
+
+--- a/Test/E02xtrace.ztst
++++ b/Test/E02xtrace.ztst
+@@ -150,7 +150,6 @@
+ test_cases=(
+ f # baseline
+ foo-bar # Dash
+- ヌ # Meta (the UTF-8 representation of this character has an 0x83 byte)
+ \$\'ba\\0z\' # Nul, escaped as though by ${(qqqq)}
+ )
+ for 1 in "$test_cases[@]"; do
+@@ -172,10 +171,6 @@
+ > # traced
+ > echo inner
+ >}
+->$'\M-c\M-\C-C\M-\C-L' () {
+-> # traced
+-> echo inner
+->}
+ >$'ba\C-@z' () {
+ > # traced
+ > echo inner
diff --git a/main/zstd/APKBUILD b/main/zstd/APKBUILD
index 8da8f493d26..e0ce02bb392 100644
--- a/main/zstd/APKBUILD
+++ b/main/zstd/APKBUILD
@@ -1,25 +1,27 @@
# Contributor: Leo <thinkabit.ukim@gmail.com>
# Contributor: stef <l0ls0fo2i@ctrlc.hu>
# Contributor: André Klitzing <aklitzing@gmail.com>
-# Maintainer: psykose <alice@ayaya.dev>
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=zstd
-pkgver=1.5.2
-pkgrel=3
+pkgver=1.5.6
+pkgrel=0
pkgdesc="Zstandard - Fast real-time compression algorithm"
url="https://www.zstd.net/"
arch="all"
-license="BSD-3-Clause GPL-2.0-or-later"
-depends_dev="$pkgname-static"
-makedepends="cmake grep samurai"
+license="BSD-3-Clause OR GPL-2.0-or-later"
+depends_dev="$pkgname=$pkgver-r$pkgrel"
+makedepends="grep meson"
checkdepends="file"
subpackages="
- $pkgname-static
$pkgname-libs
+ $pkgname-static
$pkgname-dev
$pkgname-doc
$pkgname-frugal
"
source="zstd-$pkgver.tar.gz::https://github.com/facebook/zstd/archive/v$pkgver.tar.gz"
+# we run the tests in build() for pgo, so it's tested from there.
+# options="!check"
# secfixes:
# 1.4.9-r0:
@@ -29,36 +31,59 @@ source="zstd-$pkgver.tar.gz::https://github.com/facebook/zstd/archive/v$pkgver.t
# 1.3.8-r0:
# - CVE-2019-11922
-export CFLAGS="${CFLAGS/-Os/-O2}"
-export CXXFLAGS="${CXXFLAGS/-Os/-O2}"
-
build() {
- if [ "$CBUILD" != "$CHOST" ]; then
- CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
+ export CFLAGS="${CFLAGS/-Os/-O3} -flto=auto -ffat-lto-objects"
+ export CXXFLAGS="${CXXFLAGS/-Os/-O3} -flto=auto -ffat-lto-objects"
+ export CPPFLAGS="${CPPFLAGS/-Os/-O3} -flto=auto -ffat-lto-objects"
+ if [ -z "$BOOTSTRAP" ]; then
+ local pgo=true
+ fi
+ # 2-stage pgo+lto build (non-bootstrap), standard meson usage.
+ # note that with clang,
+ # llvm-profdata merge --output=output/somefilename(?) output/*.profraw
+ # is needed.
+ # believe it or not, this is +30% faster on x86_64 than the default makefile build (same params)..
+ # maybe needs more testing
+ # shellcheck disable=2046
+ abuild-meson \
+ --default-library=both \
+ -Db_ndebug=true \
+ $(test $pgo = true && echo -Db_pgo=generate) \
+ -Dbin_contrib=true \
+ -Dbin_programs=true \
+ -Dbin_tests="$(want_check && echo true || echo false)" \
+ -Dbacktrace=disabled \
+ -Dmulti_thread=enabled \
+ -Dlz4=disabled \
+ -Dlzma=disabled \
+ -Dzlib=disabled \
+ build/meson output
+
+ meson compile -C output
+
+ if [ $pgo = true ]; then
+ meson test -t 4 --no-rebuild --print-errorlogs -C output
+ meson configure -Dbin_tests=false -Db_pgo=use output
+ meson compile -C output
fi
- cmake -B build-zstd -G Ninja -S build/cmake \
- -DCMAKE_INSTALL_PREFIX=/usr \
- -DCMAKE_BUILD_TYPE=None \
- -DBUILD_TESTING="$(want_check && echo ON || echo OFF)" \
- -DZSTD_PROGRAMS_LINK_SHARED=ON \
- $CMAKE_CROSSOPTS
- cmake --build build-zstd
}
check() {
- ctest --test-dir build-zstd --output-on-failure
+ # ran in build above, via pgo
+ return 0
+ #meson test -t 4 --no-rebuild --print-errorlogs -C output
}
package() {
- DESTDIR="$pkgdir" cmake --install build-zstd
- install -Dm755 build-zstd/programs/zstd-frugal -t "$pkgdir"/usr/bin
+ DESTDIR="$pkgdir" meson install --no-rebuild -C output
}
frugal() {
- pkgdesc="$pkgdesc (compressor only)"
+ pkgdesc="$pkgdesc (frugal cli)"
+
amove usr/bin/zstd-frugal
}
sha512sums="
-e107508a41fca50845cc2494e64adaba93efb95a2fa486fc962510a8ba4b2180d93067cae9870f119e88e5e8b28a046bc2240b0b23cdd8933d1fb1a6a9668c1e zstd-1.5.2.tar.gz
+ca12dffd86618ca008e1ecc79056c1129cb4e61668bf13a3cd5b2fa5c93bc9c92c80f64c1870c68b9c20009d9b3a834eac70db72242d5106125a1c53cccf8de8 zstd-1.5.6.tar.gz
"